From 16c60767d1469699b5e3a3ef7bb35dcb3601a0c4 Mon Sep 17 00:00:00 2001 From: blockiosaurus Date: Wed, 17 Apr 2024 10:38:12 -0400 Subject: [PATCH] Updating to Kinobi 0.18.4. --- .../js/src/generated/accounts/myPdaAccount.ts | 2 +- .../js/src/generated/errors/mplProjectName.ts | 6 +- .../js/src/generated/instructions/create.ts | 24 +- clients/rust/src/generated/accounts/mod.rs | 8 +- .../src/generated/accounts/my_pda_account.rs | 14 +- .../rust/src/generated/instructions/create.rs | 18 +- .../rust/src/generated/instructions/mod.rs | 4 +- clients/rust/src/generated/types/key.rs | 5 +- clients/rust/src/generated/types/mod.rs | 8 +- configs/kinobi.cjs | 26 ++- package.json | 6 +- pnpm-lock.yaml | 216 ++++++++++++++++-- 12 files changed, 281 insertions(+), 56 deletions(-) diff --git a/clients/js/src/generated/accounts/myPdaAccount.ts b/clients/js/src/generated/accounts/myPdaAccount.ts index 847cc0d..b85149a 100644 --- a/clients/js/src/generated/accounts/myPdaAccount.ts +++ b/clients/js/src/generated/accounts/myPdaAccount.ts @@ -152,7 +152,7 @@ export function findMyPdaAccountPda( string({ size: 'variable' }).serialize('myPdaAccount'), publicKeySerializer().serialize(programId), publicKeySerializer().serialize(seeds.authority), - string({ size: 'variable' }).serialize(seeds.name), + string().serialize(seeds.name), ]); } diff --git a/clients/js/src/generated/errors/mplProjectName.ts b/clients/js/src/generated/errors/mplProjectName.ts index d1cee52..9dc311e 100644 --- a/clients/js/src/generated/errors/mplProjectName.ts +++ b/clients/js/src/generated/errors/mplProjectName.ts @@ -17,7 +17,7 @@ const nameToErrorMap: Map = new Map(); /** InvalidSystemProgram: Invalid System Program */ export class InvalidSystemProgramError extends ProgramError { - readonly name: string = 'InvalidSystemProgram'; + override readonly name: string = 'InvalidSystemProgram'; readonly code: number = 0x0; // 0 @@ -30,7 +30,7 @@ nameToErrorMap.set('InvalidSystemProgram', InvalidSystemProgramError); /** DeserializationError: Error deserializing account */ export class DeserializationErrorError extends ProgramError { - readonly name: string = 'DeserializationError'; + override readonly name: string = 'DeserializationError'; readonly code: number = 0x1; // 1 @@ -43,7 +43,7 @@ nameToErrorMap.set('DeserializationError', DeserializationErrorError); /** SerializationError: Error serializing account */ export class SerializationErrorError extends ProgramError { - readonly name: string = 'SerializationError'; + override readonly name: string = 'SerializationError'; readonly code: number = 0x2; // 2 diff --git a/clients/js/src/generated/instructions/create.ts b/clients/js/src/generated/instructions/create.ts index fac07bf..81acf61 100644 --- a/clients/js/src/generated/instructions/create.ts +++ b/clients/js/src/generated/instructions/create.ts @@ -83,16 +83,28 @@ export function create( ); // Accounts. - const resolvedAccounts: ResolvedAccountsWithIndices = { - address: { index: 0, isWritable: true, value: input.address ?? null }, - authority: { index: 1, isWritable: false, value: input.authority ?? null }, - payer: { index: 2, isWritable: true, value: input.payer ?? null }, + const resolvedAccounts = { + address: { + index: 0, + isWritable: true as boolean, + value: input.address ?? null, + }, + authority: { + index: 1, + isWritable: false as boolean, + value: input.authority ?? null, + }, + payer: { + index: 2, + isWritable: true as boolean, + value: input.payer ?? null, + }, systemProgram: { index: 3, - isWritable: false, + isWritable: false as boolean, value: input.systemProgram ?? null, }, - }; + } satisfies ResolvedAccountsWithIndices; // Arguments. const resolvedArgs: CreateInstructionArgs = { ...input }; diff --git a/clients/rust/src/generated/accounts/mod.rs b/clients/rust/src/generated/accounts/mod.rs index c4fc605..87c3cc2 100644 --- a/clients/rust/src/generated/accounts/mod.rs +++ b/clients/rust/src/generated/accounts/mod.rs @@ -5,8 +5,8 @@ //! [https://github.com/metaplex-foundation/kinobi] //! -pub(crate) mod my_account; -pub(crate) mod my_pda_account; +pub(crate) mod r#my_account; +pub(crate) mod r#my_pda_account; -pub use self::my_account::*; -pub use self::my_pda_account::*; +pub use self::r#my_account::*; +pub use self::r#my_pda_account::*; diff --git a/clients/rust/src/generated/accounts/my_pda_account.rs b/clients/rust/src/generated/accounts/my_pda_account.rs index 98656e5..49636c3 100644 --- a/clients/rust/src/generated/accounts/my_pda_account.rs +++ b/clients/rust/src/generated/accounts/my_pda_account.rs @@ -20,9 +20,19 @@ pub struct MyPdaAccount { impl MyPdaAccount { pub const LEN: usize = 2; + /// Prefix values used to generate a PDA for this account. + /// + /// Values are positional and appear in the following order: + /// + /// 0. `MyPdaAccount::PREFIX` + /// 1. `crate::MPL_PROJECT_NAME_ID` + /// 2. authority (`Pubkey`) + /// 3. name (`String`) + pub const PREFIX: &'static [u8] = "myPdaAccount".as_bytes(); + pub fn create_pda( authority: Pubkey, - name: &str, + name: String, bump: u8, ) -> Result { solana_program::pubkey::Pubkey::create_program_address( @@ -37,7 +47,7 @@ impl MyPdaAccount { ) } - pub fn find_pda(authority: &Pubkey, name: &str) -> (solana_program::pubkey::Pubkey, u8) { + pub fn find_pda(authority: &Pubkey, name: String) -> (solana_program::pubkey::Pubkey, u8) { solana_program::pubkey::Pubkey::find_program_address( &[ "myPdaAccount".as_bytes(), diff --git a/clients/rust/src/generated/instructions/create.rs b/clients/rust/src/generated/instructions/create.rs index 82c5f14..f6136bb 100644 --- a/clients/rust/src/generated/instructions/create.rs +++ b/clients/rust/src/generated/instructions/create.rs @@ -80,7 +80,14 @@ pub struct CreateInstructionArgs { pub arg2: u32, } -/// Instruction builder. +/// Instruction builder for `Create`. +/// +/// ### Accounts: +/// +/// 0. `[writable, signer]` address +/// 1. `[]` authority +/// 2. `[writable, signer]` payer +/// 3. `[optional]` system_program (default to `11111111111111111111111111111111`) #[derive(Default)] pub struct CreateBuilder { address: Option, @@ -295,7 +302,14 @@ impl<'a, 'b> CreateCpi<'a, 'b> { } } -/// `create` CPI instruction builder. +/// Instruction builder for `Create` via CPI. +/// +/// ### Accounts: +/// +/// 0. `[writable, signer]` address +/// 1. `[]` authority +/// 2. `[writable, signer]` payer +/// 3. `[]` system_program pub struct CreateCpiBuilder<'a, 'b> { instruction: Box>, } diff --git a/clients/rust/src/generated/instructions/mod.rs b/clients/rust/src/generated/instructions/mod.rs index 1aa8252..abbed46 100644 --- a/clients/rust/src/generated/instructions/mod.rs +++ b/clients/rust/src/generated/instructions/mod.rs @@ -5,6 +5,6 @@ //! [https://github.com/metaplex-foundation/kinobi] //! -pub(crate) mod create; +pub(crate) mod r#create; -pub use self::create::*; +pub use self::r#create::*; diff --git a/clients/rust/src/generated/types/key.rs b/clients/rust/src/generated/types/key.rs index 97ab5ba..8df6d72 100644 --- a/clients/rust/src/generated/types/key.rs +++ b/clients/rust/src/generated/types/key.rs @@ -7,8 +7,11 @@ use borsh::BorshDeserialize; use borsh::BorshSerialize; +use num_derive::FromPrimitive; -#[derive(BorshSerialize, BorshDeserialize, Clone, Debug, Eq, PartialEq, PartialOrd, Hash)] +#[derive( + BorshSerialize, BorshDeserialize, Clone, Debug, Eq, PartialEq, PartialOrd, Hash, FromPrimitive, +)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub enum Key { Uninitialized, diff --git a/clients/rust/src/generated/types/mod.rs b/clients/rust/src/generated/types/mod.rs index 87cc04b..e507add 100644 --- a/clients/rust/src/generated/types/mod.rs +++ b/clients/rust/src/generated/types/mod.rs @@ -5,8 +5,8 @@ //! [https://github.com/metaplex-foundation/kinobi] //! -pub(crate) mod key; -pub(crate) mod my_data; +pub(crate) mod r#key; +pub(crate) mod r#my_data; -pub use self::key::*; -pub use self::my_data::*; +pub use self::r#key::*; +pub use self::r#my_data::*; diff --git a/configs/kinobi.cjs b/configs/kinobi.cjs index 065370d..b2310ef 100755 --- a/configs/kinobi.cjs +++ b/configs/kinobi.cjs @@ -10,20 +10,20 @@ const kinobi = k.createFromIdls([path.join(idlDir, "mpl_project_name_program.jso // Update programs. kinobi.update( - new k.UpdateProgramsVisitor({ + new k.updateProgramsVisitor({ mplProjectNameProgram: { name: "mplProjectName" }, }) ); // Update accounts. kinobi.update( - new k.UpdateAccountsVisitor({ + new k.updateAccountsVisitor({ myPdaAccount: { seeds: [ - k.stringConstantSeed("myPdaAccount"), - k.programSeed(), - k.publicKeySeed("authority", "The address of the authority"), - k.stringSeed("name", "The name of the account"), + k.constantPdaSeedNodeFromString("myPdaAccount"), + k.programIdPdaSeedNode(), + k.variablePdaSeedNode("authority", k.publicKeyTypeNode(), "The address of the authority"), + k.variablePdaSeedNode("name", k.stringTypeNode(), "The name of the account"), ], }, }) @@ -31,17 +31,19 @@ kinobi.update( // Update instructions. kinobi.update( - new k.UpdateInstructionsVisitor({ + new k.updateInstructionsVisitor({ create: { - bytesCreatedOnChain: k.bytesFromAccount("myAccount"), + byteDeltas: [ + k.instructionByteDeltaNode(k.accountLinkNode("myAccount")), + ], }, }) ); // Set ShankAccount discriminator. -const key = (name) => ({ field: "key", value: k.vEnum("Key", name) }); +const key = (name) => ({ field: "key", value: k.enumValueNode("Key", name) }); kinobi.update( - new k.SetAccountDiscriminatorFromFieldVisitor({ + new k.setAccountDiscriminatorFromFieldVisitor({ myAccount: key("MyAccount"), myPdaAccount: key("MyPdaAccount"), }) @@ -50,13 +52,13 @@ kinobi.update( // Render JavaScript. const jsDir = path.join(clientDir, "js", "src", "generated"); const prettier = require(path.join(clientDir, "js", ".prettierrc.json")); -kinobi.accept(new k.RenderJavaScriptVisitor(jsDir, { prettier })); +kinobi.accept(new k.renderJavaScriptVisitor(jsDir, { prettier })); // Render Rust. const crateDir = path.join(clientDir, "rust"); const rustDir = path.join(clientDir, "rust", "src", "generated"); kinobi.accept( - new k.RenderRustVisitor(rustDir, { + new k.renderRustVisitor(rustDir, { formatCode: true, crateFolder: crateDir, }) diff --git a/package.json b/package.json index e432493..d800688 100644 --- a/package.json +++ b/package.json @@ -16,10 +16,10 @@ "validator:stop": "amman stop" }, "devDependencies": { - "@metaplex-foundation/kinobi": "^0.16.0", - "@metaplex-foundation/shank-js": "^0.1.0", + "@metaplex-foundation/kinobi": "^0.18.4", + "@metaplex-foundation/shank-js": "^0.1.7", "@metaplex-foundation/amman": "^0.12.1", "typescript": "^4.9.4" }, "packageManager": "pnpm@8.9.0" -} +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c1b14f9..9f4f97c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,15 +1,19 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + devDependencies: '@metaplex-foundation/amman': specifier: ^0.12.1 version: 0.12.1(typescript@4.9.5) '@metaplex-foundation/kinobi': - specifier: ^0.16.0 - version: 0.16.0 + specifier: ^0.18.4 + version: 0.18.4(fastestsmallesttextencoderdecoder@1.0.22) '@metaplex-foundation/shank-js': - specifier: ^0.1.0 - version: 0.1.0 + specifier: ^0.1.7 + version: 0.1.7 typescript: specifier: ^4.9.4 version: 4.9.5 @@ -85,19 +89,23 @@ packages: resolution: {integrity: sha512-S9RulC2fFCFOQraz61bij+5YCHhSO9llJegK8c8Y6731fSi6snUSQJdCUqYS8AIgR0TKbQvdvgSyIIdbDFZbBA==} dev: true - /@metaplex-foundation/kinobi@0.16.0: - resolution: {integrity: sha512-/fYOLJy0fWZFRRIht2iFoWNOrdcmI4RblwLq0iA2cpcF8Im11uY/2tqrrD5noGKMhR1sBVUJHytiFDaP4CbtuQ==} + /@metaplex-foundation/kinobi@0.18.4(fastestsmallesttextencoderdecoder@1.0.22): + resolution: {integrity: sha512-at4rR31Rh3guC4YgyrmV31L2OxITaLnx42x7d1O/rFfg7APsFiT6ewgCrkZPRwwdfYMB/ado4lbB0X69uh9lkQ==} dependencies: - '@noble/hashes': 1.3.0 + '@noble/hashes': 1.4.0 + '@prettier/sync': 0.5.2(prettier@3.2.5) + '@solana/codecs-strings': 2.0.0-preview.1(fastestsmallesttextencoderdecoder@1.0.22) chalk: 4.1.2 + json-stable-stringify: 1.1.1 nunjucks: 3.2.4 - prettier: 2.8.8 + prettier: 3.2.5 transitivePeerDependencies: - chokidar + - fastestsmallesttextencoderdecoder dev: true - /@metaplex-foundation/rustbin@0.3.1: - resolution: {integrity: sha512-hWd2JPrnt2/nJzkBpZD3Y6ZfCUlJujv2K7qUfsxdS0jSwLrSrOvYwmNWFw6mc3lbULj6VP4WDyuy9W5/CHU/lQ==} + /@metaplex-foundation/rustbin@0.3.5: + resolution: {integrity: sha512-m0wkRBEQB/8krwMwKBvFugufZtYwMXiGHud2cTDAv+aGXK4M90y0Hx67/wpu+AqqoQfdV8VM9YezUOHKD+Z5kA==} dependencies: debug: 4.3.4 semver: 7.5.0 @@ -107,10 +115,10 @@ packages: - supports-color dev: true - /@metaplex-foundation/shank-js@0.1.0: - resolution: {integrity: sha512-ExTOIIZFJw8WNHfv+anJifP6/Al9gcWJaUXMifGOB6BxV/J0+jfMg13sm0uMlovU7/tiZSPboS09HXnKaykETg==} + /@metaplex-foundation/shank-js@0.1.7: + resolution: {integrity: sha512-tSAipn8Ho1UxlMC3jwJ5Opl+Y3lRm60VTkgRDfvzydb57lXW5G+K5MrZhEmhrFUuRYziV+e34CTo+ybpMp1Eqg==} dependencies: - '@metaplex-foundation/rustbin': 0.3.1 + '@metaplex-foundation/rustbin': 0.3.5 ansi-colors: 4.1.3 debug: 4.3.4 transitivePeerDependencies: @@ -125,10 +133,24 @@ packages: resolution: {integrity: sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==} dev: true + /@noble/hashes@1.4.0: + resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} + engines: {node: '>= 16'} + dev: true + /@noble/secp256k1@1.7.1: resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} dev: true + /@prettier/sync@0.5.2(prettier@3.2.5): + resolution: {integrity: sha512-Yb569su456XNx5BsH/Vyem7xD6g/y9iLmLUzRKM1a/dhU/D7HqqvkAG72znulXlMXztbV0iiu9O5AL8K98TzZQ==} + peerDependencies: + prettier: '*' + dependencies: + make-synchronized: 0.2.9 + prettier: 3.2.5 + dev: true + /@sideway/address@4.1.4: resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} dependencies: @@ -169,6 +191,38 @@ packages: buffer: 6.0.3 dev: true + /@solana/codecs-core@2.0.0-preview.1: + resolution: {integrity: sha512-0y3kgFSJAOApNGefEOgLRMiXOHVmcF29Xw3zmR4LDUABvytG3ecKMXGz5oLt3vdaU2CyN3tuUVeGmQjrd0U1kw==} + dependencies: + '@solana/errors': 2.0.0-preview.1 + dev: true + + /@solana/codecs-numbers@2.0.0-preview.1: + resolution: {integrity: sha512-NFA8itgcYUY3hkWMBpVRozd2poy1zfOvkIWZKx/D69oIMUtQTBpKrodRVBuhlBkAv12vDNkFljqVySpcMZMl7A==} + dependencies: + '@solana/codecs-core': 2.0.0-preview.1 + '@solana/errors': 2.0.0-preview.1 + dev: true + + /@solana/codecs-strings@2.0.0-preview.1(fastestsmallesttextencoderdecoder@1.0.22): + resolution: {integrity: sha512-kBAxE9ZD5/c8j9CkPxqc55dbo7R50Re3k94SXR+k13DZCCs37Fyn0/mAkw/S95fofbi/zsi4jSfmsT5vCZD75A==} + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + dependencies: + '@solana/codecs-core': 2.0.0-preview.1 + '@solana/codecs-numbers': 2.0.0-preview.1 + '@solana/errors': 2.0.0-preview.1 + fastestsmallesttextencoderdecoder: 1.0.22 + dev: true + + /@solana/errors@2.0.0-preview.1: + resolution: {integrity: sha512-mnBWfLVwMH4hxwb4sWZ7G7djQCMsyymjysvUPDiF89LueTBm1hfdxUv8Cy1uUCGsJ3jO3scdPwB4noOgr0rG/g==} + hasBin: true + dependencies: + chalk: 5.3.0 + commander: 12.0.0 + dev: true + /@solana/spl-token-registry@0.2.4574: resolution: {integrity: sha512-JzlfZmke8Rxug20VT/VpI2XsXlsqMlcORIUivF+Yucj7tFi7A0dXG7h+2UnD0WaZJw8BrUz2ABNkUnv89vbv1A==} engines: {node: '>=10'} @@ -398,6 +452,17 @@ packages: node-gyp-build: 4.6.0 dev: true + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + 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.2 + dev: true + /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -406,6 +471,11 @@ packages: supports-color: 7.2.0 dev: true + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + /check-more-types@2.24.0: resolution: {integrity: sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==} engines: {node: '>= 0.8.0'} @@ -438,6 +508,11 @@ packages: delayed-stream: 1.0.0 dev: true + /commander@12.0.0: + resolution: {integrity: sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==} + engines: {node: '>=18'} + dev: true + /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} dev: true @@ -496,6 +571,15 @@ packages: resolution: {integrity: sha512-aWS3UIVH+NPGCD1kki+DCU9Dua032iSsO43LqQpcs4R3+dVv7tX0qBGjiVHJHjplsoUM2XRO/KB92glqc68awg==} dev: true + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + dev: true + /delay@5.0.0: resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} engines: {node: '>=10'} @@ -563,6 +647,18 @@ packages: - utf-8-validate dev: true + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: true + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: true + /es6-promise@4.2.8: resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} dev: true @@ -618,6 +714,10 @@ packages: resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==} dev: true + /fastestsmallesttextencoderdecoder@1.0.22: + resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==} + dev: true + /file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} dev: true @@ -647,21 +747,65 @@ packages: resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} dev: true + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true + /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} dev: true + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + dev: true + /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} dev: true + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 + dev: true + /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} dev: true + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + dev: true + + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -687,6 +831,10 @@ packages: engines: {node: '>=8'} dev: true + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true @@ -736,10 +884,24 @@ packages: resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} dev: true + /json-stable-stringify@1.1.1: + resolution: {integrity: sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + isarray: 2.0.5 + jsonify: 0.0.1 + object-keys: 1.1.1 + dev: true + /json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true + /jsonify@0.0.1: + resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} + dev: true + /jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} @@ -761,6 +923,10 @@ packages: yallist: 4.0.0 dev: true + /make-synchronized@0.2.9: + resolution: {integrity: sha512-4wczOs8SLuEdpEvp3vGo83wh8rjJ78UsIk7DIX5fxdfmfMJGog4bQzxfvOwq7Q3yCHLC4jp1urPHIxRS/A93gA==} + dev: true + /map-stream@0.1.0: resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} dev: true @@ -828,6 +994,7 @@ packages: /node-gyp-build@4.6.0: resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==} hasBin: true + requiresBuild: true dev: true /npm-run-path@4.0.1: @@ -861,6 +1028,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} @@ -887,9 +1059,9 @@ packages: selective-whitespace: 1.0.4 dev: true - /prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} hasBin: true dev: true @@ -946,6 +1118,18 @@ packages: lru-cache: 6.0.0 dev: true + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + 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 + dev: true + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'}