@imjxsx/wapi 1.1.0-beta

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 (139) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +86 -0
  3. package/dist/auth/index.d.ts +4 -0
  4. package/dist/auth/index.d.ts.map +1 -0
  5. package/dist/auth/index.js +4 -0
  6. package/dist/auth/index.js.map +1 -0
  7. package/dist/auth/local.d.ts +17 -0
  8. package/dist/auth/local.d.ts.map +1 -0
  9. package/dist/auth/local.js +117 -0
  10. package/dist/auth/local.js.map +1 -0
  11. package/dist/auth/mongo.d.ts +24 -0
  12. package/dist/auth/mongo.d.ts.map +1 -0
  13. package/dist/auth/mongo.js +120 -0
  14. package/dist/auth/mongo.js.map +1 -0
  15. package/dist/auth/redis.d.ts +19 -0
  16. package/dist/auth/redis.d.ts.map +1 -0
  17. package/dist/auth/redis.js +116 -0
  18. package/dist/auth/redis.js.map +1 -0
  19. package/dist/bot/bot.d.ts +30 -0
  20. package/dist/bot/bot.d.ts.map +1 -0
  21. package/dist/bot/bot.js +62 -0
  22. package/dist/bot/bot.js.map +1 -0
  23. package/dist/bot/disconnect.d.ts +4 -0
  24. package/dist/bot/disconnect.d.ts.map +1 -0
  25. package/dist/bot/disconnect.js +12 -0
  26. package/dist/bot/disconnect.js.map +1 -0
  27. package/dist/bot/events/connection-update.d.ts +4 -0
  28. package/dist/bot/events/connection-update.d.ts.map +1 -0
  29. package/dist/bot/events/connection-update.js +84 -0
  30. package/dist/bot/events/connection-update.js.map +1 -0
  31. package/dist/bot/events/contacts-update.d.ts +3 -0
  32. package/dist/bot/events/contacts-update.d.ts.map +1 -0
  33. package/dist/bot/events/contacts-update.js +22 -0
  34. package/dist/bot/events/contacts-update.js.map +1 -0
  35. package/dist/bot/events/creds-update.d.ts +3 -0
  36. package/dist/bot/events/creds-update.d.ts.map +1 -0
  37. package/dist/bot/events/creds-update.js +17 -0
  38. package/dist/bot/events/creds-update.js.map +1 -0
  39. package/dist/bot/events/groups-update.d.ts +3 -0
  40. package/dist/bot/events/groups-update.d.ts.map +1 -0
  41. package/dist/bot/events/groups-update.js +22 -0
  42. package/dist/bot/events/groups-update.js.map +1 -0
  43. package/dist/bot/events/index.d.ts +6 -0
  44. package/dist/bot/events/index.d.ts.map +1 -0
  45. package/dist/bot/events/index.js +6 -0
  46. package/dist/bot/events/index.js.map +1 -0
  47. package/dist/bot/events/message-upsert.d.ts +3 -0
  48. package/dist/bot/events/message-upsert.d.ts.map +1 -0
  49. package/dist/bot/events/message-upsert.js +57 -0
  50. package/dist/bot/events/message-upsert.js.map +1 -0
  51. package/dist/bot/index.d.ts +2 -0
  52. package/dist/bot/index.d.ts.map +1 -0
  53. package/dist/bot/index.js +2 -0
  54. package/dist/bot/index.js.map +1 -0
  55. package/dist/bot/login.d.ts +3 -0
  56. package/dist/bot/login.d.ts.map +1 -0
  57. package/dist/bot/login.js +41 -0
  58. package/dist/bot/login.js.map +1 -0
  59. package/dist/bot/logout.d.ts +4 -0
  60. package/dist/bot/logout.d.ts.map +1 -0
  61. package/dist/bot/logout.js +10 -0
  62. package/dist/bot/logout.js.map +1 -0
  63. package/dist/bot/utils.d.ts +10 -0
  64. package/dist/bot/utils.d.ts.map +1 -0
  65. package/dist/bot/utils.js +101 -0
  66. package/dist/bot/utils.js.map +1 -0
  67. package/dist/cache/contacts.d.ts +8 -0
  68. package/dist/cache/contacts.d.ts.map +1 -0
  69. package/dist/cache/contacts.js +2 -0
  70. package/dist/cache/contacts.js.map +1 -0
  71. package/dist/cache/groups.d.ts +3 -0
  72. package/dist/cache/groups.d.ts.map +1 -0
  73. package/dist/cache/groups.js +2 -0
  74. package/dist/cache/groups.js.map +1 -0
  75. package/dist/cache/index.d.ts +3 -0
  76. package/dist/cache/index.d.ts.map +1 -0
  77. package/dist/cache/index.js +3 -0
  78. package/dist/cache/index.js.map +1 -0
  79. package/dist/context/context.d.ts +19 -0
  80. package/dist/context/context.d.ts.map +1 -0
  81. package/dist/context/context.js +142 -0
  82. package/dist/context/context.js.map +1 -0
  83. package/dist/context/index.d.ts +3 -0
  84. package/dist/context/index.d.ts.map +1 -0
  85. package/dist/context/index.js +3 -0
  86. package/dist/context/index.js.map +1 -0
  87. package/dist/context/message.d.ts +22 -0
  88. package/dist/context/message.d.ts.map +1 -0
  89. package/dist/context/message.js +170 -0
  90. package/dist/context/message.js.map +1 -0
  91. package/dist/index.d.ts +7 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +7 -0
  94. package/dist/index.js.map +1 -0
  95. package/dist/types/bot.d.ts +32 -0
  96. package/dist/types/bot.d.ts.map +1 -0
  97. package/dist/types/bot.js +2 -0
  98. package/dist/types/bot.js.map +1 -0
  99. package/dist/types/context.d.ts +15 -0
  100. package/dist/types/context.d.ts.map +1 -0
  101. package/dist/types/context.js +2 -0
  102. package/dist/types/context.js.map +1 -0
  103. package/dist/types/index.d.ts +4 -0
  104. package/dist/types/index.d.ts.map +1 -0
  105. package/dist/types/index.js +4 -0
  106. package/dist/types/index.js.map +1 -0
  107. package/dist/types/message.d.ts +15 -0
  108. package/dist/types/message.d.ts.map +1 -0
  109. package/dist/types/message.js +2 -0
  110. package/dist/types/message.js.map +1 -0
  111. package/dist/utils/crypto.d.ts +7 -0
  112. package/dist/utils/crypto.d.ts.map +1 -0
  113. package/dist/utils/crypto.js +33 -0
  114. package/dist/utils/crypto.js.map +1 -0
  115. package/dist/utils/fs.d.ts +9 -0
  116. package/dist/utils/fs.d.ts.map +1 -0
  117. package/dist/utils/fs.js +72 -0
  118. package/dist/utils/fs.js.map +1 -0
  119. package/dist/utils/helpers.d.ts +21 -0
  120. package/dist/utils/helpers.d.ts.map +1 -0
  121. package/dist/utils/helpers.js +68 -0
  122. package/dist/utils/helpers.js.map +1 -0
  123. package/dist/utils/index.d.ts +7 -0
  124. package/dist/utils/index.d.ts.map +1 -0
  125. package/dist/utils/index.js +7 -0
  126. package/dist/utils/index.js.map +1 -0
  127. package/dist/utils/jid.d.ts +11 -0
  128. package/dist/utils/jid.d.ts.map +1 -0
  129. package/dist/utils/jid.js +22 -0
  130. package/dist/utils/jid.js.map +1 -0
  131. package/dist/utils/message-builder.d.ts +13 -0
  132. package/dist/utils/message-builder.d.ts.map +1 -0
  133. package/dist/utils/message-builder.js +61 -0
  134. package/dist/utils/message-builder.js.map +1 -0
  135. package/dist/utils/utils.d.ts +2 -0
  136. package/dist/utils/utils.d.ts.map +1 -0
  137. package/dist/utils/utils.js +4 -0
  138. package/dist/utils/utils.js.map +1 -0
  139. package/package.json +62 -0
@@ -0,0 +1,33 @@
1
+ import { createCipheriv, createDecipheriv, createHash, randomBytes } from "node:crypto";
2
+ export class AES256GCM {
3
+ key;
4
+ constructor(key) {
5
+ this.key = createHash("sha256").update(key).digest();
6
+ }
7
+ encrypt(value) {
8
+ const iv = randomBytes(12);
9
+ const cipher = createCipheriv("aes-256-gcm", this.key, iv);
10
+ const encrypted = Buffer.concat([
11
+ cipher.update(value),
12
+ cipher.final(),
13
+ ]);
14
+ const tag = cipher.getAuthTag();
15
+ return Buffer.concat([
16
+ iv,
17
+ tag,
18
+ encrypted,
19
+ ]);
20
+ }
21
+ decrypt(value) {
22
+ const iv = value.subarray(0, 12);
23
+ const tag = value.subarray(12, 28);
24
+ const data = value.subarray(28);
25
+ const decipher = createDecipheriv("aes-256-gcm", this.key, iv);
26
+ decipher.setAuthTag(tag);
27
+ return Buffer.concat([
28
+ decipher.update(data),
29
+ decipher.final(),
30
+ ]);
31
+ }
32
+ }
33
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAExF,MAAM,OAAO,SAAS;IACV,GAAG,CAAS;IACtB,YAAY,GAAW;QACrB,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;IACvD,CAAC;IACM,OAAO,CAAC,KAAa;QAC1B,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YACpB,MAAM,CAAC,KAAK,EAAE;SACf,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,EAAE;YACF,GAAG;YACH,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IACM,OAAO,CAAC,KAAa;QAC1B,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/D,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YACrB,QAAQ,CAAC,KAAK,EAAE;SACjB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ export declare class FS {
2
+ static readfile(path: string): Promise<Buffer | null>;
3
+ static writefile(path: string, data: Buffer): Promise<void>;
4
+ static rm(path: string): Promise<void>;
5
+ static mkdir(path: string): Promise<void>;
6
+ static exists(path: string): Promise<boolean>;
7
+ static readdir(path: string): Promise<string[]>;
8
+ }
9
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAGA,qBAAa,EAAE;WACA,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;WAgB9C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WAQpD,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WAW/B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WAUlC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAStC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAatD"}
@@ -0,0 +1,72 @@
1
+ import { isBuffer, toError } from "./index.js";
2
+ import fs from "node:fs";
3
+ export class FS {
4
+ static async readfile(path) {
5
+ try {
6
+ if (!(await this.exists(path))) {
7
+ return null;
8
+ }
9
+ const buffer = await fs.promises.readFile(path);
10
+ if (!isBuffer(buffer)) {
11
+ return null;
12
+ }
13
+ return buffer;
14
+ }
15
+ catch (e) {
16
+ console.error(toError(e));
17
+ return null;
18
+ }
19
+ }
20
+ static async writefile(path, data) {
21
+ try {
22
+ await fs.promises.writeFile(path, data);
23
+ }
24
+ catch (e) {
25
+ console.error(toError(e));
26
+ }
27
+ }
28
+ static async rm(path) {
29
+ try {
30
+ await fs.promises.rm(path, {
31
+ recursive: true,
32
+ force: true,
33
+ });
34
+ }
35
+ catch (e) {
36
+ console.error(e);
37
+ }
38
+ }
39
+ static async mkdir(path) {
40
+ try {
41
+ await fs.promises.mkdir(path, {
42
+ recursive: true,
43
+ });
44
+ }
45
+ catch (e) {
46
+ console.error(e);
47
+ }
48
+ }
49
+ static async exists(path) {
50
+ try {
51
+ await fs.promises.access(path);
52
+ return true;
53
+ }
54
+ catch {
55
+ return false;
56
+ }
57
+ }
58
+ static async readdir(path) {
59
+ try {
60
+ if (!(await this.exists(path))) {
61
+ return [];
62
+ }
63
+ const files = await fs.promises.readdir(path);
64
+ return files;
65
+ }
66
+ catch (e) {
67
+ console.error(toError(e));
68
+ return [];
69
+ }
70
+ }
71
+ }
72
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,OAAO,EAAE;IACb,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAY;QAChC,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,IAAY;QAC/C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAY;QAC1B,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;gBACzB,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAY;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE;gBAC5B,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAY;QAC9B,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAY;QAC/B,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC/B,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ import type { UUID } from "node:crypto";
2
+ import { Readable } from "node:stream";
3
+ export declare function isUUID(arg: unknown): arg is UUID;
4
+ export declare function isString(arg: unknown): arg is string;
5
+ export declare function toString(value: unknown): string;
6
+ export declare function isNumber(arg: unknown): arg is number;
7
+ export declare function isRecord(arg: unknown): arg is Record<PropertyKey, any>;
8
+ export declare function isArray(arg: unknown): arg is any[];
9
+ export declare function isBuffer(arg: unknown): arg is Buffer;
10
+ export declare function isReadable(arg: unknown): arg is Readable;
11
+ export declare function isUint8Array(arg: unknown): arg is Uint8Array;
12
+ export declare function isUint16Array(arg: unknown): arg is Uint16Array;
13
+ export declare function isUint32Array(arg: unknown): arg is Uint32Array;
14
+ export declare function isDate(arg: unknown): arg is Date;
15
+ export declare function isMap(arg: unknown): arg is Map<PropertyKey, any>;
16
+ export declare function isSet(arg: unknown): arg is Set<any>;
17
+ export declare function isURL(arg: unknown): arg is URL;
18
+ export declare function isLink(arg: unknown): arg is NonNullable<string>;
19
+ export declare function isError(arg: unknown): arg is Error;
20
+ export declare function toError(value: unknown): Error;
21
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,IAAI,CAEhD;AACD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAEpD;AACD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAK/C;AACD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAEpD;AACD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAEtE;AACD,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,GAAG,EAAE,CAElD;AACD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAEpD;AACD,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,QAAQ,CAExD;AACD,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,UAAU,CAE5D;AACD,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAE9D;AACD,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAE9D;AACD,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,IAAI,CAEhD;AACD,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAEhE;AACD,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAEnD;AACD,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,GAAG,CAE9C;AACD,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAQ/D;AACD,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,KAAK,CAElD;AACD,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAK7C"}
@@ -0,0 +1,68 @@
1
+ import { Readable } from "node:stream";
2
+ export function isUUID(arg) {
3
+ return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(toString(arg));
4
+ }
5
+ export function isString(arg) {
6
+ return typeof arg === "string";
7
+ }
8
+ export function toString(value) {
9
+ if (isRecord(value) || isArray(value)) {
10
+ value = JSON.stringify(value);
11
+ }
12
+ return isString(value) ? value : String(value);
13
+ }
14
+ export function isNumber(arg) {
15
+ return typeof arg === "number" && !isNaN(arg);
16
+ }
17
+ export function isRecord(arg) {
18
+ return Object.prototype.toString.call(arg) === "[object Object]";
19
+ }
20
+ export function isArray(arg) {
21
+ return Object.prototype.toString.call(arg) === "[object Array]";
22
+ }
23
+ export function isBuffer(arg) {
24
+ return Buffer.isBuffer(arg);
25
+ }
26
+ export function isReadable(arg) {
27
+ return arg instanceof Readable;
28
+ }
29
+ export function isUint8Array(arg) {
30
+ return arg instanceof Uint8Array;
31
+ }
32
+ export function isUint16Array(arg) {
33
+ return arg instanceof Uint16Array;
34
+ }
35
+ export function isUint32Array(arg) {
36
+ return arg instanceof Uint32Array;
37
+ }
38
+ export function isDate(arg) {
39
+ return arg instanceof Date;
40
+ }
41
+ export function isMap(arg) {
42
+ return arg instanceof Map;
43
+ }
44
+ export function isSet(arg) {
45
+ return arg instanceof Set;
46
+ }
47
+ export function isURL(arg) {
48
+ return arg instanceof URL;
49
+ }
50
+ export function isLink(arg) {
51
+ try {
52
+ new URL(toString(arg));
53
+ return true;
54
+ }
55
+ catch {
56
+ return false;
57
+ }
58
+ }
59
+ export function isError(arg) {
60
+ return arg instanceof Error;
61
+ }
62
+ export function toError(value) {
63
+ if (isError(value)) {
64
+ return value;
65
+ }
66
+ return new Error(toString(value));
67
+ }
68
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,UAAU,MAAM,CAAC,GAAY;IACjC,OAAO,gEAAgE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9F,CAAC;AACD,MAAM,UAAU,QAAQ,CAAC,GAAY;IACnC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;AACjC,CAAC;AACD,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC;AACD,MAAM,UAAU,QAAQ,CAAC,GAAY;IACnC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC;AACD,MAAM,UAAU,QAAQ,CAAC,GAAY;IACnC,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAC;AACnE,CAAC;AACD,MAAM,UAAU,OAAO,CAAC,GAAY;IAClC,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,gBAAgB,CAAC;AAClE,CAAC;AACD,MAAM,UAAU,QAAQ,CAAC,GAAY;IACnC,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AACD,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,OAAO,GAAG,YAAY,QAAQ,CAAC;AACjC,CAAC;AACD,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,OAAO,GAAG,YAAY,UAAU,CAAC;AACnC,CAAC;AACD,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,OAAO,GAAG,YAAY,WAAW,CAAC;AACpC,CAAC;AACD,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,OAAO,GAAG,YAAY,WAAW,CAAC;AACpC,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,GAAY;IACjC,OAAO,GAAG,YAAY,IAAI,CAAC;AAC7B,CAAC;AACD,MAAM,UAAU,KAAK,CAAC,GAAY;IAChC,OAAO,GAAG,YAAY,GAAG,CAAC;AAC5B,CAAC;AACD,MAAM,UAAU,KAAK,CAAC,GAAY;IAChC,OAAO,GAAG,YAAY,GAAG,CAAC;AAC5B,CAAC;AACD,MAAM,UAAU,KAAK,CAAC,GAAY;IAChC,OAAO,GAAG,YAAY,GAAG,CAAC;AAC5B,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,GAAY;IACjC,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AACD,MAAM,UAAU,OAAO,CAAC,GAAY;IAClC,OAAO,GAAG,YAAY,KAAK,CAAC;AAC9B,CAAC;AACD,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from "./crypto.js";
2
+ export * from "./fs.js";
3
+ export * from "./helpers.js";
4
+ export * from "./jid.js";
5
+ export * from "./message-builder.js";
6
+ export * from "./utils.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from "./crypto.js";
2
+ export * from "./fs.js";
3
+ export * from "./helpers.js";
4
+ export * from "./jid.js";
5
+ export * from "./message-builder.js";
6
+ export * from "./utils.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { JidServer } from "baileys";
2
+ export interface IJidDecoded {
3
+ jid: string;
4
+ server: JidServer | string;
5
+ }
6
+ export declare function decode(jid: unknown): IJidDecoded;
7
+ export declare function normalize(jid: unknown): string;
8
+ export declare function isGroup(jid: unknown): jid is `${string}@g.us`;
9
+ export declare function isPn(jid: unknown): jid is `${string}@s.whatsapp.net`;
10
+ export declare function isLid(jid: unknown): jid is `${string}@lid`;
11
+ //# sourceMappingURL=jid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jid.d.ts","sourceRoot":"","sources":["../../src/utils/jid.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;CAC5B;AACD,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,CAMhD;AACD,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAG9C;AACD,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,GAAG,MAAM,OAAO,CAE7D;AACD,wBAAgB,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,GAAG,MAAM,iBAAiB,CAEpE;AACD,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,GAAG,MAAM,MAAM,CAE1D"}
@@ -0,0 +1,22 @@
1
+ import { toString } from "./index.js";
2
+ export function decode(jid) {
3
+ const match = toString(jid).match(/^([\w-]+)(?::\d+)?@([\w.-]+)$/) ?? [];
4
+ return {
5
+ jid: match[1] ?? "",
6
+ server: match[2] ?? "",
7
+ };
8
+ }
9
+ export function normalize(jid) {
10
+ const decoded = decode(toString(jid));
11
+ return `${decoded.jid}@${decoded.server}`;
12
+ }
13
+ export function isGroup(jid) {
14
+ return /@g\.us$/.test(toString(jid));
15
+ }
16
+ export function isPn(jid) {
17
+ return /@s\.whatsapp\.net$/.test(toString(jid));
18
+ }
19
+ export function isLid(jid) {
20
+ return /@lid$/.test(toString(jid));
21
+ }
22
+ //# sourceMappingURL=jid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jid.js","sourceRoot":"","sources":["../../src/utils/jid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAOtC,MAAM,UAAU,MAAM,CAAC,GAAY;IACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,IAAI,EAAE,CAAC;IACzE,OAAO;QACL,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;QACnB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;KACvB,CAAC;AACJ,CAAC;AACD,MAAM,UAAU,SAAS,CAAC,GAAY;IACpC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;AAC5C,CAAC;AACD,MAAM,UAAU,OAAO,CAAC,GAAY;IAClC,OAAO,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AACD,MAAM,UAAU,IAAI,CAAC,GAAY;IAC/B,OAAO,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC;AACD,MAAM,UAAU,KAAK,CAAC,GAAY;IAChC,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare class MessageBuilder {
2
+ private parts;
3
+ private center;
4
+ addTitle(title: string, width?: number): MessageBuilder;
5
+ addSubTitle(subtitle: string, width?: number): MessageBuilder;
6
+ addDescription(description: string): MessageBuilder;
7
+ addLine(line: string): MessageBuilder;
8
+ addList(items: string[], prefix?: string): MessageBuilder;
9
+ addBlankLine(): MessageBuilder;
10
+ addFooter(footer: string, width?: number): MessageBuilder;
11
+ build(): string;
12
+ }
13
+ //# sourceMappingURL=message-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-builder.d.ts","sourceRoot":"","sources":["../../src/utils/message-builder.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM;IAMP,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc;IAOvD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc;IAO7D,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc;IAOnD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAOrC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc;IASzD,YAAY,IAAI,cAAc;IAI9B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc;IAOzD,KAAK,IAAI,MAAM;CAGvB"}
@@ -0,0 +1,61 @@
1
+ export class MessageBuilder {
2
+ parts = [];
3
+ center(text, width) {
4
+ if (text.length >= width) {
5
+ return text;
6
+ }
7
+ return " ".repeat(Math.floor((width - text.length) / 2)) + text;
8
+ }
9
+ addTitle(title, width) {
10
+ if (!title.length) {
11
+ return this;
12
+ }
13
+ this.parts.push(this.center(`*『* ${title} *』*`, width ?? 50));
14
+ return this;
15
+ }
16
+ addSubTitle(subtitle, width) {
17
+ if (!subtitle.length) {
18
+ return this;
19
+ }
20
+ this.parts.push(this.center(`*「* ${subtitle} *」*`, width ?? 25));
21
+ return this;
22
+ }
23
+ addDescription(description) {
24
+ if (!description.length) {
25
+ return this;
26
+ }
27
+ this.parts.push(`*»* ${description}`);
28
+ return this;
29
+ }
30
+ addLine(line) {
31
+ if (!line.length) {
32
+ return this;
33
+ }
34
+ this.parts.push(line);
35
+ return this;
36
+ }
37
+ addList(items, prefix) {
38
+ for (const item of items) {
39
+ if (!item) {
40
+ continue;
41
+ }
42
+ this.parts.push(`*${prefix ?? "•"}* ${item}`);
43
+ }
44
+ return this;
45
+ }
46
+ addBlankLine() {
47
+ this.parts.push("");
48
+ return this;
49
+ }
50
+ addFooter(footer, width) {
51
+ if (!footer.length) {
52
+ return this;
53
+ }
54
+ this.parts.push(this.center(`_${footer}_`, width ?? 50));
55
+ return this;
56
+ }
57
+ build() {
58
+ return this.parts.join("\n");
59
+ }
60
+ }
61
+ //# sourceMappingURL=message-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-builder.js","sourceRoot":"","sources":["../../src/utils/message-builder.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAc;IACjB,KAAK,GAAa,EAAE,CAAC;IACrB,MAAM,CAAC,IAAY,EAAE,KAAa;QACxC,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAClE,CAAC;IACM,QAAQ,CAAC,KAAa,EAAE,KAAc;QAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IACM,WAAW,CAAC,QAAgB,EAAE,KAAc;QACjD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,QAAQ,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IACM,cAAc,CAAC,WAAmB;QACvC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,WAAW,EAAE,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACM,OAAO,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACM,OAAO,CAAC,KAAe,EAAE,MAAe;QAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACM,YAAY;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IACM,SAAS,CAAC,MAAc,EAAE,KAAc;QAC7C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IACM,KAAK;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export declare function delay(ms: number): Promise<void>;
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErD"}
@@ -0,0 +1,4 @@
1
+ export async function delay(ms) {
2
+ return new Promise((resolve) => (setTimeout(resolve, ms)));
3
+ }
4
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,EAAU;IACpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC"}
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "@imjxsx/wapi",
3
+ "version": "1.1.0-beta",
4
+ "description": "Framework for developing bots for the WhatsApp application: fast, secure, and elegant, powered by Baileys and developed 100% in TypeScript.",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ }
14
+ },
15
+ "files": [
16
+ "./dist",
17
+ "./README.md"
18
+ ],
19
+ "keywords": [
20
+ "bot",
21
+ "whatsapp",
22
+ "baileys",
23
+ "lightweight",
24
+ "typescript",
25
+ "framework",
26
+ "nodejs",
27
+ "wapi"
28
+ ],
29
+ "author": "imjxsx",
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "git+https://github.com/imjxsx/wapi.git"
33
+ },
34
+ "bugs": {
35
+ "url": "https://github.com/imjxsx/wapi/issues"
36
+ },
37
+ "homepage": "https://github.com/imjxsx/wapi#readme",
38
+ "dependencies": {
39
+ "@hapi/boom": "10.0.1",
40
+ "@imjxsx/logger": "1.1.1",
41
+ "autolinker": "4.1.5",
42
+ "baileys": "7.0.0-rc.8",
43
+ "cheerio": "1.1.2"
44
+ },
45
+ "devDependencies": {
46
+ "@types/node": "20.19.5",
47
+ "@types/qrcode": "1.5.6",
48
+ "qrcode": "1.5.4",
49
+ "tsx": "4.20.6",
50
+ "typescript": "5.9.3",
51
+ "ioredis": "5.8.2",
52
+ "long": "5.3.2",
53
+ "mongodb": "7.0.0"
54
+ },
55
+ "engines": {
56
+ "node": ">=20.0.0"
57
+ },
58
+ "scripts": {
59
+ "dev": "tsx ./example/index",
60
+ "build": "tsc"
61
+ }
62
+ }