@zebec-network/solana-payroll-sdk 2.1.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,20 +3,23 @@ import { type Commitment, PublicKey } from "@solana/web3.js";
3
3
  import { MultiTransactionPayload, TransactionPayload } from "@zebec-network/solana-common";
4
4
  import type { ZebecConfigs as ZebecConfigsIdl } from "@zebec-network/zebec_configs";
5
5
  import type { ZebecPayroll as ZebecPayrollIdl } from "@zebec-network/zebec_payroll";
6
- import type { CancelPayrollParams, ChangePayrollReceiverParams, CreateMultiplePayrollParams, CreatePayrollParams, InitYieldConfigParams, PayrollConfigInfo, PayrollMetadataInfo, SetTopupDelegateParams, TokenMetadata, TopupPayrollParams, UnlockNowParams, WithdrawPayrollParams, YieldDepositParams } from "./types.js";
6
+ import type { CancelMultiplePayrollParams, CancelPayrollParams, ChangePayrollReceiverParams, CreateMultiplePayrollParams, CreatePayrollParams, InitYieldConfigParams, PauseResumeMultiplePayrollParams, PauseResumePayrollParams, PayrollConfigInfo, PayrollMetadataInfo, SetMultipleTopupDelegateParams, SetTopupDelegateParams, TokenMetadata, TopupMultiplePayrollParams, TopupPayrollParams, UnlockNowParams, WithdrawMultiplePayrollParams, WithdrawPayrollParams, YieldDepositParams } from "./types.js";
7
7
  export declare function getPayrollConfig(configProgram: Program<ZebecConfigsIdl>, configName: string): Promise<PayrollConfigInfo>;
8
8
  export declare function getWhitelistedTokens(configProgram: Program<ZebecConfigsIdl>, configName: string, commitment?: "processed" | "confirmed" | "finalized"): Promise<TokenMetadata[]>;
9
9
  export declare function getPayrollMetadataInfo(program: Program<ZebecPayrollIdl>, payrollMetadata: Address, commitment?: Commitment): Promise<PayrollMetadataInfo>;
10
10
  export declare function createPayroll(payrollProgram: Program<ZebecPayrollIdl>, configProgram: Program<ZebecConfigsIdl>, params: CreatePayrollParams, payrollFeeBaseUrl: string): Promise<TransactionPayload>;
11
11
  export declare function createMultiplePayroll(payrollProgram: Program<ZebecPayrollIdl>, configProgram: Program<ZebecConfigsIdl>, params: CreateMultiplePayrollParams, payrollFeeBaseUrl: string): Promise<MultiTransactionPayload>;
12
12
  export declare function cancelPayroll(program: Program<ZebecPayrollIdl>, params: CancelPayrollParams): Promise<TransactionPayload>;
13
- export declare function pauseResumePayroll(program: Program<ZebecPayrollIdl>, params: {
14
- payrollMetadata: Address;
15
- }): Promise<TransactionPayload>;
13
+ export declare function cancelMultiplePayroll(program: Program<ZebecPayrollIdl>, params: CancelMultiplePayrollParams): Promise<MultiTransactionPayload>;
14
+ export declare function pauseResumePayroll(program: Program<ZebecPayrollIdl>, params: PauseResumePayrollParams): Promise<TransactionPayload>;
15
+ export declare function pauseResumeMultiplePayroll(program: Program<ZebecPayrollIdl>, params: PauseResumeMultiplePayrollParams): Promise<MultiTransactionPayload>;
16
16
  export declare function withdrawPayroll(payrollProgram: Program<ZebecPayrollIdl>, configProgram: Program<ZebecConfigsIdl>, params: WithdrawPayrollParams): Promise<TransactionPayload>;
17
+ export declare function withdrawMultiplePayroll(payrollProgram: Program<ZebecPayrollIdl>, configProgram: Program<ZebecConfigsIdl>, params: WithdrawMultiplePayrollParams): Promise<MultiTransactionPayload>;
17
18
  export declare function changePayrollReceiver(program: Program<ZebecPayrollIdl>, params: ChangePayrollReceiverParams): Promise<TransactionPayload>;
18
19
  export declare function setTopupDelegate(payrollProgram: Program<ZebecPayrollIdl>, configProgram: Program<ZebecConfigsIdl>, params: SetTopupDelegateParams): Promise<TransactionPayload>;
20
+ export declare function setMultipleTopupDelegate(payrollProgram: Program<ZebecPayrollIdl>, configProgram: Program<ZebecConfigsIdl>, params: SetMultipleTopupDelegateParams): Promise<MultiTransactionPayload>;
19
21
  export declare function topupPayroll(payrollProgram: Program<ZebecPayrollIdl>, configProgram: Program<ZebecConfigsIdl>, params: TopupPayrollParams): Promise<TransactionPayload>;
22
+ export declare function topupMultiplePayroll(payrollProgram: Program<ZebecPayrollIdl>, configProgram: Program<ZebecConfigsIdl>, params: TopupMultiplePayrollParams): Promise<MultiTransactionPayload>;
20
23
  export declare function initYieldConfig(payrollProgram: Program<ZebecPayrollIdl>, params: InitYieldConfigParams): Promise<TransactionPayload>;
21
24
  export declare function yieldDeposit(payrollProgram: Program<ZebecPayrollIdl>, params: YieldDepositParams): Promise<TransactionPayload>;
22
25
  export declare function unlockNow(payrollProgram: Program<ZebecPayrollIdl>, params: UnlockNowParams): Promise<TransactionPayload>;
package/dist/services.js CHANGED
@@ -168,14 +168,15 @@ export async function getPayrollMetadataInfo(program, payrollMetadata, commitmen
168
168
  payrollRunId: utils.bytes.utf8.decode(Uint8Array.from(metadataInfo.payrollRunId).filter((byte) => byte !== 0)), // Remove padding zeros
169
169
  };
170
170
  }
171
- async function createPayload(program, payerKey, instructions, signers, addressLookupTableAccounts) {
171
+ function createTransactionPayload(program, payerKey, instructions, signers, addressLookupTableAccounts) {
172
172
  const errorMap = new Map();
173
173
  program.idl.errors.map((error) => errorMap.set(error.code, error.msg));
174
174
  const provider = program.provider;
175
175
  let signTransaction;
176
176
  if (provider instanceof AnchorProvider) {
177
177
  signTransaction = async (tx) => {
178
- return provider.wallet.signTransaction(tx);
178
+ const signed = await provider.wallet.signTransaction(tx);
179
+ return signed;
179
180
  };
180
181
  }
181
182
  return new TransactionPayload(program.provider.connection, errorMap, {
@@ -185,6 +186,22 @@ async function createPayload(program, payerKey, instructions, signers, addressLo
185
186
  addressLookupTableAccounts: addressLookupTableAccounts ?? [],
186
187
  }, signTransaction);
187
188
  }
189
+ function createMultiTransactionPayload(program, feePayer, transactionData) {
190
+ const errorMap = new Map();
191
+ program.idl.errors.map((error) => errorMap.set(error.code, error.msg));
192
+ const provider = program.provider;
193
+ let signAllTransactions;
194
+ if (provider instanceof AnchorProvider) {
195
+ signAllTransactions = async (txs) => {
196
+ const signed = provider.wallet.signAllTransactions(txs);
197
+ return signed;
198
+ };
199
+ }
200
+ return MultiTransactionPayload.create(program.provider.connection, errorMap, transactionData.map((data) => ({
201
+ ...data,
202
+ feePayer,
203
+ })), signAllTransactions);
204
+ }
188
205
  export async function createPayroll(payrollProgram, configProgram, params, payrollFeeBaseUrl) {
189
206
  const receiver = translateAddress(params.receiver);
190
207
  const sender = translateAddress(params.sender);
@@ -276,7 +293,9 @@ export async function createPayroll(payrollProgram, configProgram, params, payro
276
293
  senderId: Array.from(params.senderId),
277
294
  });
278
295
  ixs.push(createpayrollIx);
279
- return createPayload(payrollProgram, feePayer, ixs, [payrollMetadataKeypair]);
296
+ return createTransactionPayload(payrollProgram, feePayer, ixs, [
297
+ payrollMetadataKeypair,
298
+ ]);
280
299
  }
281
300
  export async function createMultiplePayroll(payrollProgram, configProgram, params, payrollFeeBaseUrl) {
282
301
  const sender = translateAddress(params.sender);
@@ -372,21 +391,11 @@ export async function createMultiplePayroll(payrollProgram, configProgram, param
372
391
  });
373
392
  instructions.push(createpayrollIx);
374
393
  return {
375
- feePayer,
376
394
  instructions,
377
395
  signers: [payrollMetadataKeypair],
378
396
  };
379
397
  }));
380
- const errorMap = new Map();
381
- payrollProgram.idl.errors.map((error) => errorMap.set(error.code, error.msg));
382
- const provider = payrollProgram.provider;
383
- let signAllTransactions;
384
- if (provider instanceof AnchorProvider) {
385
- signAllTransactions = async (txns) => {
386
- return provider.wallet.signAllTransactions(txns);
387
- };
388
- }
389
- return MultiTransactionPayload.create(payrollProgram.provider.connection, errorMap, transactionData, signAllTransactions);
398
+ return createMultiTransactionPayload(payrollProgram, feePayer, transactionData);
390
399
  }
391
400
  export async function cancelPayroll(program, params) {
392
401
  const user = translateAddress(params.user);
@@ -421,7 +430,47 @@ export async function cancelPayroll(program, params) {
421
430
  payrollVault,
422
431
  payrollVaultAta,
423
432
  });
424
- return createPayload(program, feePayer, [ix]);
433
+ return createTransactionPayload(program, feePayer, [ix]);
434
+ }
435
+ export async function cancelMultiplePayroll(program, params) {
436
+ const user = translateAddress(params.user);
437
+ const feePayer = params.feePayer ? translateAddress(params.feePayer) : user;
438
+ const transactionData = await Promise.all(params.payrollMetadataList.map(async (address) => {
439
+ const payrollMetadata = translateAddress(address);
440
+ const payrollMetadataAccount = await program.account.paymentStream.fetch(payrollMetadata);
441
+ const payrollToken = payrollMetadataAccount.financials.streamToken;
442
+ const payroller = payrollMetadataAccount.parties.sender;
443
+ const receiver = payrollMetadataAccount.parties.receiver;
444
+ let otherParty;
445
+ if (user.equals(payroller)) {
446
+ otherParty = receiver;
447
+ }
448
+ else if (user.equals(receiver)) {
449
+ otherParty = payroller;
450
+ }
451
+ else {
452
+ throw new Error("User must be either payroller or receiver");
453
+ }
454
+ const userAta = getAssociatedTokenAddressSync(payrollToken, user, true);
455
+ const otherPartyAta = getAssociatedTokenAddressSync(payrollToken, otherParty, true);
456
+ const [payrollVault] = derivePayrollVaultPda(payrollMetadata, program.programId);
457
+ const payrollVaultAta = getAssociatedTokenAddressSync(payrollToken, payrollVault, true);
458
+ const ix = await createCancelPayrollInstruction(program, {
459
+ feePayer,
460
+ otherParty,
461
+ otherPartyAta,
462
+ signer: user,
463
+ signerAta: userAta,
464
+ payrollMetadata,
465
+ payrollToken,
466
+ payrollVault,
467
+ payrollVaultAta,
468
+ });
469
+ return {
470
+ instructions: [ix],
471
+ };
472
+ }));
473
+ return createMultiTransactionPayload(program, feePayer, transactionData);
425
474
  }
426
475
  export async function pauseResumePayroll(program, params) {
427
476
  const payrollMetadata = translateAddress(params.payrollMetadata);
@@ -431,7 +480,28 @@ export async function pauseResumePayroll(program, params) {
431
480
  payrollMetadata,
432
481
  user,
433
482
  });
434
- return createPayload(program, user, [ix]);
483
+ return createTransactionPayload(program, user, [ix]);
484
+ }
485
+ export async function pauseResumeMultiplePayroll(program, params) {
486
+ const transactionData = await Promise.all(params.payrollMetadataList.map(async (address) => {
487
+ const payrollMetadata = translateAddress(address);
488
+ const payrollMetadataAccount = await program.account.paymentStream.fetch(payrollMetadata);
489
+ const user = payrollMetadataAccount.parties.sender;
490
+ const ix = await createPauseResumePayrollInstruction(program, {
491
+ payrollMetadata,
492
+ user,
493
+ });
494
+ return {
495
+ user,
496
+ instructions: [ix],
497
+ };
498
+ }));
499
+ if (transactionData.length === 0) {
500
+ throw new Error("There should be at least one item in transaction data.");
501
+ }
502
+ // biome-ignore lint/style/noNonNullAssertion: there is at least one item in the list so 0 index will not be empty
503
+ const feePayer = transactionData[0].user;
504
+ return createMultiTransactionPayload(program, feePayer, transactionData);
435
505
  }
436
506
  export async function withdrawPayroll(payrollProgram, configProgram, params) {
437
507
  const [payrollConfig] = derivePayrollConfigPda(params.payrollConfigName, configProgram.programId);
@@ -461,7 +531,43 @@ export async function withdrawPayroll(payrollProgram, configProgram, params) {
461
531
  withdrawer,
462
532
  feePayer,
463
533
  });
464
- return createPayload(payrollProgram, withdrawer, [ix]);
534
+ return createTransactionPayload(payrollProgram, withdrawer, [ix]);
535
+ }
536
+ export async function withdrawMultiplePayroll(payrollProgram, configProgram, params) {
537
+ const [payrollConfig] = derivePayrollConfigPda(params.payrollConfigName, configProgram.programId);
538
+ const receiver = translateAddress(params.receiver);
539
+ const withdrawer = params.withdrawer
540
+ ? translateAddress(params.withdrawer)
541
+ : receiver;
542
+ const feePayer = params.feePayer
543
+ ? translateAddress(params.feePayer)
544
+ : params.withdrawer
545
+ ? withdrawer
546
+ : receiver;
547
+ const transactionData = await Promise.all(params.payrollMetadataList.map(async (address) => {
548
+ const payrollMetadata = translateAddress(address);
549
+ const payrollMetadataAccount = await payrollProgram.account.paymentStream.fetch(payrollMetadata);
550
+ const payrollToken = payrollMetadataAccount.financials.streamToken;
551
+ const receiverAta = getAssociatedTokenAddressSync(payrollToken, receiver, true);
552
+ const [payrollVault] = derivePayrollVaultPda(payrollMetadata, payrollProgram.programId);
553
+ const payrollVaultAta = getAssociatedTokenAddressSync(payrollToken, payrollVault, true);
554
+ const ix = await createWithdrawPayrollInstruction(payrollProgram, {
555
+ receiver,
556
+ receiverAta,
557
+ payrollConfig,
558
+ payrollMetadata,
559
+ payrollToken,
560
+ payrollVault,
561
+ payrollVaultAta,
562
+ withdrawer,
563
+ feePayer,
564
+ });
565
+ return {
566
+ feePayer: withdrawer,
567
+ instructions: [ix],
568
+ };
569
+ }));
570
+ return createMultiTransactionPayload(payrollProgram, withdrawer, transactionData);
465
571
  }
466
572
  export async function changePayrollReceiver(program, params) {
467
573
  const payrollMetadata = translateAddress(params.payrollMetadata);
@@ -472,7 +578,7 @@ export async function changePayrollReceiver(program, params) {
472
578
  newRecipient,
473
579
  signer,
474
580
  });
475
- return createPayload(program, signer, [ix]);
581
+ return createTransactionPayload(program, signer, [ix]);
476
582
  }
477
583
  export async function setTopupDelegate(payrollProgram, configProgram, params) {
478
584
  const sender = translateAddress(params.sender);
@@ -496,12 +602,39 @@ export async function setTopupDelegate(payrollProgram, configProgram, params) {
496
602
  }, {
497
603
  amount,
498
604
  });
499
- return createPayload(payrollProgram, sender, [ix]);
605
+ return createTransactionPayload(payrollProgram, sender, [ix]);
606
+ }
607
+ export async function setMultipleTopupDelegate(payrollProgram, configProgram, params) {
608
+ const sender = translateAddress(params.sender);
609
+ const [payrollConfig] = derivePayrollConfigPda(params.payrollConfigName, configProgram.programId);
610
+ const transactionData = await Promise.all(params.delegateInfoList.map(async (delegateInfo) => {
611
+ const payrollMetadata = translateAddress(delegateInfo.payrollMetadata);
612
+ const payrollMetadataAccount = await payrollProgram.account.paymentStream.fetch(payrollMetadata);
613
+ const payrollToken = payrollMetadataAccount.financials.streamToken;
614
+ const senderAta = getAssociatedTokenAddressSync(payrollToken, sender, true);
615
+ const [payrollVault] = derivePayrollVaultPda(payrollMetadata, payrollProgram.programId);
616
+ const payrollTokenDecimals = await getMintDecimals(payrollProgram.provider.connection, payrollToken);
617
+ const amount = new BN(BigNumber(delegateInfo.amount)
618
+ .multipliedBy(BigNumber(10).pow(payrollTokenDecimals))
619
+ .toFixed(0));
620
+ const ix = await createSetTopupDelegateInstruction(payrollProgram, {
621
+ sender,
622
+ senderAta,
623
+ payrollConfig,
624
+ payrollMetadata,
625
+ payrollToken,
626
+ payrollVault,
627
+ }, { amount });
628
+ return {
629
+ instructions: [ix],
630
+ };
631
+ }));
632
+ return createMultiTransactionPayload(payrollProgram, sender, transactionData);
500
633
  }
501
634
  export async function topupPayroll(payrollProgram, configProgram, params) {
502
635
  const sender = translateAddress(params.sender);
503
636
  const payrollMetadata = translateAddress(params.payrollMetadata);
504
- const caller = params.caller ? translateAddress(params.caller) : sender;
637
+ const caller = translateAddress(params.caller);
505
638
  const payrollMetadataAccount = await payrollProgram.account.paymentStream.fetch(payrollMetadata);
506
639
  const payrollToken = payrollMetadataAccount.financials.streamToken;
507
640
  const senderAta = getAssociatedTokenAddressSync(payrollToken, sender, true);
@@ -524,7 +657,38 @@ export async function topupPayroll(payrollProgram, configProgram, params) {
524
657
  }, {
525
658
  extra: amount,
526
659
  });
527
- return createPayload(payrollProgram, caller, [ix]);
660
+ return createTransactionPayload(payrollProgram, caller, [ix]);
661
+ }
662
+ export async function topupMultiplePayroll(payrollProgram, configProgram, params) {
663
+ const caller = translateAddress(params.caller);
664
+ const [payrollConfig] = derivePayrollConfigPda(params.payrollConfigName, configProgram.programId);
665
+ const transactionData = await Promise.all(params.topupInfoList.map(async (topupInfo) => {
666
+ const sender = translateAddress(topupInfo.sender);
667
+ const payrollMetadata = translateAddress(topupInfo.payrollMetadata);
668
+ const payrollMetadataAccount = await payrollProgram.account.paymentStream.fetch(payrollMetadata);
669
+ const payrollToken = payrollMetadataAccount.financials.streamToken;
670
+ const senderAta = getAssociatedTokenAddressSync(payrollToken, sender, true);
671
+ const [payrollVault] = derivePayrollVaultPda(payrollMetadata, payrollProgram.programId);
672
+ const payrollVaultAta = getAssociatedTokenAddressSync(payrollToken, payrollVault, true);
673
+ const payrollTokenDecimals = await getMintDecimals(payrollProgram.provider.connection, payrollToken);
674
+ const amount = new BN(BigNumber(topupInfo.extra)
675
+ .multipliedBy(BigNumber(10).pow(payrollTokenDecimals))
676
+ .toFixed(0));
677
+ const ix = await createTopupPayrollInstruction(payrollProgram, {
678
+ caller,
679
+ sender,
680
+ senderAta,
681
+ payrollConfig,
682
+ payrollMetadata,
683
+ payrollToken,
684
+ payrollVault,
685
+ payrollVaultAta,
686
+ }, { extra: amount });
687
+ return {
688
+ instructions: [ix],
689
+ };
690
+ }));
691
+ return createMultiTransactionPayload(payrollProgram, caller, transactionData);
528
692
  }
529
693
  export async function initYieldConfig(payrollProgram, params) {
530
694
  const admin = translateAddress(params.admin);
@@ -548,7 +712,7 @@ export async function initYieldConfig(payrollProgram, params) {
548
712
  minUnlockAmount,
549
713
  unlockCooldown: new BN(params.unlockCooldown),
550
714
  });
551
- return createPayload(payrollProgram, admin, [ix]);
715
+ return createTransactionPayload(payrollProgram, admin, [ix]);
552
716
  }
553
717
  export async function yieldDeposit(payrollProgram, params) {
554
718
  const company = translateAddress(params.company);
@@ -569,12 +733,14 @@ export async function yieldDeposit(payrollProgram, params) {
569
733
  companyUsdtAta,
570
734
  usdtMint,
571
735
  }, { amount });
572
- return createPayload(payrollProgram, company, [ix]);
736
+ return createTransactionPayload(payrollProgram, company, [ix]);
573
737
  }
574
738
  export async function unlockNow(payrollProgram, params) {
575
739
  const company = translateAddress(params.company);
576
740
  const usdtMint = translateAddress(params.usdtMint);
577
- const feePayer = params.feePayer ? translateAddress(params.feePayer) : company;
741
+ const feePayer = params.feePayer
742
+ ? translateAddress(params.feePayer)
743
+ : company;
578
744
  const [companyDeposit] = deriveCompanyDepositPda(company, payrollProgram.programId);
579
745
  const [yieldConfig] = deriveYieldConfigPda(payrollProgram.programId);
580
746
  const [vault] = deriveYieldVaultPda(payrollProgram.programId);
@@ -590,7 +756,7 @@ export async function unlockNow(payrollProgram, params) {
590
756
  companyUsdtAta,
591
757
  usdtMint,
592
758
  });
593
- return createPayload(payrollProgram, feePayer, [ix]);
759
+ return createTransactionPayload(payrollProgram, feePayer, [ix]);
594
760
  }
595
761
  export async function getCompanyDeposit(payrollProgram, company) {
596
762
  const account = await payrollProgram.account.companyDeposit.fetch(translateAddress(company));
package/dist/types.d.ts CHANGED
@@ -138,9 +138,17 @@ export type CancelPayrollParams = {
138
138
  payrollMetadata: Address;
139
139
  user: Address;
140
140
  };
141
+ export type CancelMultiplePayrollParams = {
142
+ feePayer?: Address;
143
+ user: Address;
144
+ payrollMetadataList: Address[];
145
+ };
141
146
  export type PauseResumePayrollParams = {
142
147
  payrollMetadata: Address;
143
148
  };
149
+ export type PauseResumeMultiplePayrollParams = {
150
+ payrollMetadataList: Address[];
151
+ };
144
152
  export type WithdrawPayrollParams = {
145
153
  payrollConfigName: string;
146
154
  payrollMetadata: Address;
@@ -148,6 +156,13 @@ export type WithdrawPayrollParams = {
148
156
  feePayer?: Address;
149
157
  receiver: Address;
150
158
  };
159
+ export type WithdrawMultiplePayrollParams = {
160
+ payrollConfigName: string;
161
+ payrollMetadataList: Address[];
162
+ withdrawer?: Address;
163
+ feePayer?: Address;
164
+ receiver: Address;
165
+ };
151
166
  export type ChangePayrollReceiverParams = {
152
167
  payrollMetadata: Address;
153
168
  newRecipient: Address;
@@ -155,17 +170,34 @@ export type ChangePayrollReceiverParams = {
155
170
  };
156
171
  export type TopupPayrollParams = {
157
172
  payrollConfigName: string;
158
- caller?: Address;
173
+ caller: Address;
159
174
  sender: Address;
160
175
  payrollMetadata: Address;
161
176
  extra: Numeric;
162
177
  };
178
+ export type TopupMultiplePayrollParams = {
179
+ payrollConfigName: string;
180
+ caller: Address;
181
+ topupInfoList: {
182
+ sender: Address;
183
+ payrollMetadata: Address;
184
+ extra: Numeric;
185
+ }[];
186
+ };
163
187
  export type SetTopupDelegateParams = {
164
188
  payrollConfigName: string;
165
189
  sender: Address;
166
190
  payrollMetadata: Address;
167
191
  amount: Numeric;
168
192
  };
193
+ export type SetMultipleTopupDelegateParams = {
194
+ payrollConfigName: string;
195
+ sender: Address;
196
+ delegateInfoList: {
197
+ payrollMetadata: Address;
198
+ amount: Numeric;
199
+ }[];
200
+ };
169
201
  export type InitYieldConfigParams = {
170
202
  admin: Address;
171
203
  usdtMint: Address;
package/package.json CHANGED
@@ -43,5 +43,5 @@
43
43
  },
44
44
  "type": "module",
45
45
  "types": "dist/index.d.ts",
46
- "version": "2.1.1"
47
- }
46
+ "version": "2.2.0"
47
+ }