@trufnetwork/sdk-js 0.3.5 → 0.3.7

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.
Files changed (55) hide show
  1. package/README.md +11 -36
  2. package/dist/cjs/client/browserClient.cjs +1 -0
  3. package/dist/cjs/client/browserClient.cjs.map +2 -2
  4. package/dist/cjs/client/client.cjs +71 -11
  5. package/dist/cjs/client/client.cjs.map +2 -2
  6. package/dist/cjs/client/nodeClient.cjs +1 -0
  7. package/dist/cjs/client/nodeClient.cjs.map +2 -2
  8. package/dist/cjs/contracts-api/action.cjs +4 -2
  9. package/dist/cjs/contracts-api/action.cjs.map +2 -2
  10. package/dist/cjs/contracts-api/composedAction.cjs +3 -53
  11. package/dist/cjs/contracts-api/composedAction.cjs.map +3 -3
  12. package/dist/cjs/contracts-api/deployStream.cjs +0 -14
  13. package/dist/cjs/contracts-api/deployStream.cjs.map +2 -2
  14. package/dist/cjs/contracts-api/roleManagement.cjs +133 -0
  15. package/dist/cjs/contracts-api/roleManagement.cjs.map +7 -0
  16. package/dist/cjs/index.common.cjs +2 -0
  17. package/dist/cjs/index.common.cjs.map +2 -2
  18. package/dist/cjs/types/role.cjs +19 -0
  19. package/dist/cjs/types/role.cjs.map +7 -0
  20. package/dist/esm/client/browserClient.mjs +1 -0
  21. package/dist/esm/client/browserClient.mjs.map +2 -2
  22. package/dist/esm/client/client.mjs +71 -11
  23. package/dist/esm/client/client.mjs.map +2 -2
  24. package/dist/esm/client/nodeClient.mjs +1 -0
  25. package/dist/esm/client/nodeClient.mjs.map +2 -2
  26. package/dist/esm/contracts-api/action.mjs +4 -2
  27. package/dist/esm/contracts-api/action.mjs.map +2 -2
  28. package/dist/esm/contracts-api/composedAction.mjs +3 -47
  29. package/dist/esm/contracts-api/composedAction.mjs.map +2 -2
  30. package/dist/esm/contracts-api/deployStream.mjs +0 -14
  31. package/dist/esm/contracts-api/deployStream.mjs.map +2 -2
  32. package/dist/esm/contracts-api/roleManagement.mjs +112 -0
  33. package/dist/esm/contracts-api/roleManagement.mjs.map +7 -0
  34. package/dist/esm/index.common.mjs +2 -0
  35. package/dist/esm/index.common.mjs.map +2 -2
  36. package/dist/esm/types/role.mjs +1 -0
  37. package/dist/esm/types/role.mjs.map +7 -0
  38. package/dist/tsconfig.build.tsbuildinfo +1 -1
  39. package/dist/types/client/browserClient.d.ts.map +1 -1
  40. package/dist/types/client/client.d.ts +39 -6
  41. package/dist/types/client/client.d.ts.map +1 -1
  42. package/dist/types/client/nodeClient.d.ts.map +1 -1
  43. package/dist/types/contracts-api/action.d.ts +1 -0
  44. package/dist/types/contracts-api/action.d.ts.map +1 -1
  45. package/dist/types/contracts-api/composedAction.d.ts +2 -4
  46. package/dist/types/contracts-api/composedAction.d.ts.map +1 -1
  47. package/dist/types/contracts-api/deployStream.d.ts +0 -1
  48. package/dist/types/contracts-api/deployStream.d.ts.map +1 -1
  49. package/dist/types/contracts-api/roleManagement.d.ts +41 -0
  50. package/dist/types/contracts-api/roleManagement.d.ts.map +1 -0
  51. package/dist/types/index.common.d.ts +2 -0
  52. package/dist/types/index.common.d.ts.map +1 -1
  53. package/dist/types/types/role.d.ts +33 -0
  54. package/dist/types/types/role.d.ts.map +1 -0
  55. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"composedAction.d.ts","sourceRoot":"","sources":["../../../src/contracts-api/composedAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,QAAQ,EAAS,OAAO,EAAC,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAKlC,eAAO,MAAM,sBAAsB,oCAAoC,CAAC;AAExE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,aAAa,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,aAAa,CAAC;IACtB;;OAEG;IACH,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,qBAAa,cAAe,SAAQ,MAAM;IACxC,SAAS,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;gBAGjD,UAAU,EAAE,OAAO,GAAG,QAAQ,EAC9B,UAAU,EAAE,UAAU,EACtB,oBAAoB,CAAC,EAAE,MAAM;IAM/B;;;;OAIG;IACU,kBAAkB,CAC7B,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,WAAW,EAAE,CAAC;IA2DzB;;;;OAIG;IACU,WAAW,CACtB,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IA+EtC;;;;;OAKG;WACW,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,MAAM,GAAG,cAAc;CAOxF"}
1
+ {"version":3,"file":"composedAction.d.ts","sourceRoot":"","sources":["../../../src/contracts-api/composedAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,QAAQ,EAAS,OAAO,EAAC,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,eAAO,MAAM,sBAAsB,oCAAoC,CAAC;AAExE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,aAAa,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,aAAa,CAAC;IACtB;;OAEG;IACH,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,qBAAa,cAAe,SAAQ,MAAM;gBAEtC,UAAU,EAAE,OAAO,GAAG,QAAQ,EAC9B,UAAU,EAAE,UAAU;IAKxB;;;;OAIG;IACU,kBAAkB,CAC7B,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,WAAW,EAAE,CAAC;IA2DzB;;;;OAIG;IACU,WAAW,CACtB,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAqCtC;;;;OAIG;WACW,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;CAMzD"}
@@ -10,7 +10,6 @@ export interface DeployStreamInput {
10
10
  kwilClient: Kwil<any>;
11
11
  kwilSigner: KwilSigner;
12
12
  synchronous?: boolean;
13
- neonConnectionString?: string;
14
13
  }
15
14
  export interface DeployStreamOutput {
16
15
  receipt: TxReceipt;
@@ -1 +1 @@
1
- {"version":3,"file":"deployStream.d.ts","sourceRoot":"","sources":["../../../src/contracts-api/deployStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,SAAS,EAAC,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAC,IAAI,EAAC,MAAM,oCAAoC,CAAC;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAI1C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,SAAS,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAuCrC"}
1
+ {"version":3,"file":"deployStream.d.ts","sourceRoot":"","sources":["../../../src/contracts-api/deployStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,SAAS,EAAC,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAC,IAAI,EAAC,MAAM,oCAAoC,CAAC;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAI1C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,SAAS,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAoBrC"}
@@ -0,0 +1,41 @@
1
+ import { KwilSigner, NodeKwil, WebKwil } from "@kwilteam/kwil-js";
2
+ import { GenericResponse } from "@kwilteam/kwil-js/dist/core/resreq";
3
+ import { TxReceipt } from "@kwilteam/kwil-js/dist/core/tx";
4
+ import { Action } from "./action";
5
+ import { AreMembersOfInput, GrantRoleInput, RevokeRoleInput, WalletMembership } from "../types/role";
6
+ /**
7
+ * RoleManagement provides convenient wrappers around the on-chain SQL actions
8
+ * that implement the RBAC system (grant_roles, revoke_roles, are_members_of).
9
+ */
10
+ export declare class RoleManagement extends Action {
11
+ constructor(kwilClient: WebKwil | NodeKwil, kwilSigner: KwilSigner);
12
+ private static normalizeOwner;
13
+ private static normalizeWallets;
14
+ /**
15
+ * Grants a role to the provided wallets.
16
+ * This calls the `grant_roles` action.
17
+ */
18
+ grantRole(input: GrantRoleInput, synchronous?: boolean): Promise<GenericResponse<TxReceipt>>;
19
+ /**
20
+ * Revokes a role from the provided wallets.
21
+ * This calls the `revoke_roles` action.
22
+ */
23
+ revokeRole(input: RevokeRoleInput, synchronous?: boolean): Promise<GenericResponse<TxReceipt>>;
24
+ /**
25
+ * Checks if the provided wallets are members of a role.
26
+ * This calls the `are_members_of` VIEW action.
27
+ *
28
+ * @returns an array matching the provided wallets order with membership flags.
29
+ */
30
+ areMembersOf(input: AreMembersOfInput): Promise<WalletMembership[]>;
31
+ /**
32
+ * Lists the members of a role with optional pagination.
33
+ * This calls the `list_role_members` VIEW action.
34
+ */
35
+ listRoleMembers(input: import("../types/role").ListRoleMembersInput): Promise<import("../types/role").RoleMember[]>;
36
+ /**
37
+ * Helper factory mirroring the pattern used by the other action wrappers.
38
+ */
39
+ static fromClient(kwilClient: WebKwil | NodeKwil, kwilSigner: KwilSigner): RoleManagement;
40
+ }
41
+ //# sourceMappingURL=roleManagement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roleManagement.d.ts","sourceRoot":"","sources":["../../../src/contracts-api/roleManagement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAS,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAKrG;;;GAGG;AACH,qBAAa,cAAe,SAAQ,MAAM;gBAC5B,UAAU,EAAE,OAAO,GAAG,QAAQ,EAAE,UAAU,EAAE,UAAU;IAIlE,OAAO,CAAC,MAAM,CAAC,cAAc;IAM7B,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAI/B;;;OAGG;IACU,SAAS,CACpB,KAAK,EAAE,cAAc,EACrB,WAAW,UAAQ,GAClB,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAsBtC;;;OAGG;IACU,UAAU,CACrB,KAAK,EAAE,eAAe,EACtB,WAAW,UAAQ,GAClB,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAsBtC;;;;;OAKG;IACU,YAAY,CACvB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAiB9B;;;OAGG;IACU,eAAe,CAC1B,KAAK,EAAE,OAAO,eAAe,EAAE,oBAAoB,GAClD,OAAO,CAAC,OAAO,eAAe,EAAE,UAAU,EAAE,CAAC;IAmBhD;;OAEG;WACW,UAAU,CACtB,UAAU,EAAE,OAAO,GAAG,QAAQ,EAC9B,UAAU,EAAE,UAAU,GACrB,cAAc;CAGlB"}
@@ -13,4 +13,6 @@ export { StreamType } from "./contracts-api/contractValues";
13
13
  export { Action } from "./contracts-api/action";
14
14
  export { PrimitiveAction } from "./contracts-api/primitiveAction";
15
15
  export { ComposedAction } from "./contracts-api/composedAction";
16
+ export { RoleManagement } from "./contracts-api/roleManagement";
17
+ export type { GrantRoleInput, RevokeRoleInput, AreMembersOfInput, WalletMembership } from "./types/role";
16
18
  //# sourceMappingURL=index.common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.common.d.ts","sourceRoot":"","sources":["../../src/index.common.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGjE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClF,YAAY,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAGhF,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.common.d.ts","sourceRoot":"","sources":["../../src/index.common.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGjE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClF,YAAY,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAGhF,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGhE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { EthereumAddress } from "../util/EthereumAddress";
2
+ export type OwnerIdentifier = "system" | EthereumAddress;
3
+ export interface GrantRoleInput {
4
+ owner: OwnerIdentifier;
5
+ roleName: string;
6
+ wallets: EthereumAddress[];
7
+ }
8
+ export interface RevokeRoleInput {
9
+ owner: OwnerIdentifier;
10
+ roleName: string;
11
+ wallets: EthereumAddress[];
12
+ }
13
+ export interface AreMembersOfInput {
14
+ owner: OwnerIdentifier;
15
+ roleName: string;
16
+ wallets: EthereumAddress[];
17
+ }
18
+ export interface WalletMembership {
19
+ wallet: string;
20
+ isMember: boolean;
21
+ }
22
+ export interface ListRoleMembersInput {
23
+ owner: OwnerIdentifier;
24
+ roleName: string;
25
+ limit?: number;
26
+ offset?: number;
27
+ }
28
+ export interface RoleMember {
29
+ wallet: string;
30
+ grantedAt: number;
31
+ grantedBy: string;
32
+ }
33
+ //# sourceMappingURL=role.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../../src/types/role.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,eAAe,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB;AAGD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trufnetwork/sdk-js",
3
- "version": "0.3.5",
3
+ "version": "0.3.7",
4
4
  "description": "TRUF.NETWORK SDK for JavaScript/TypeScript",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -81,6 +81,7 @@
81
81
  "tsx": "^4.19.1",
82
82
  "typescript": "^5.6.3",
83
83
  "vite-plugin-plain-text": "1.4.2",
84
- "vitest": "^2.1.3"
84
+ "vitest": "^2.1.3",
85
+ "dotenv": "^16.4.5"
85
86
  }
86
87
  }