vinnleys 1.0.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.
Files changed (127) hide show
  1. package/README.md +108 -0
  2. package/WAProto/GenerateStatics.sh +3 -0
  3. package/WAProto/WAProto.proto +6922 -0
  4. package/WAProto/fix-imports.js +85 -0
  5. package/WAProto/index.d.ts +79257 -0
  6. package/WAProto/index.js +242946 -0
  7. package/engine-requirements.js +10 -0
  8. package/lib/Defaults/index.js +131 -0
  9. package/lib/Signal/Group/ciphertext-message.js +12 -0
  10. package/lib/Signal/Group/group-session-builder.js +30 -0
  11. package/lib/Signal/Group/group_cipher.js +82 -0
  12. package/lib/Signal/Group/index.js +12 -0
  13. package/lib/Signal/Group/keyhelper.js +18 -0
  14. package/lib/Signal/Group/sender-chain-key.js +26 -0
  15. package/lib/Signal/Group/sender-key-distribution-message.js +63 -0
  16. package/lib/Signal/Group/sender-key-message.js +66 -0
  17. package/lib/Signal/Group/sender-key-name.js +48 -0
  18. package/lib/Signal/Group/sender-key-record.js +41 -0
  19. package/lib/Signal/Group/sender-key-state.js +84 -0
  20. package/lib/Signal/Group/sender-message-key.js +26 -0
  21. package/lib/Signal/libsignal.js +431 -0
  22. package/lib/Signal/lid-mapping.js +277 -0
  23. package/lib/Socket/Client/index.js +3 -0
  24. package/lib/Socket/Client/types.js +11 -0
  25. package/lib/Socket/Client/websocket.js +54 -0
  26. package/lib/Socket/MessageBuilder.js +3728 -0
  27. package/lib/Socket/business.js +379 -0
  28. package/lib/Socket/chats.js +1198 -0
  29. package/lib/Socket/communities.js +431 -0
  30. package/lib/Socket/graphql.js +716 -0
  31. package/lib/Socket/groups.js +374 -0
  32. package/lib/Socket/index.js +24 -0
  33. package/lib/Socket/interop.js +463 -0
  34. package/lib/Socket/luxu.js +387 -0
  35. package/lib/Socket/message-builder.js +521 -0
  36. package/lib/Socket/messages-recv.js +1916 -0
  37. package/lib/Socket/messages-send.js +1511 -0
  38. package/lib/Socket/mex.js +54 -0
  39. package/lib/Socket/newsletter.js +636 -0
  40. package/lib/Socket/privacy.js +318 -0
  41. package/lib/Socket/socket.js +1114 -0
  42. package/lib/Socket/username.js +236 -0
  43. package/lib/Store/index.js +10 -0
  44. package/lib/Store/keyed-db.js +108 -0
  45. package/lib/Store/make-cache-manager-store.js +85 -0
  46. package/lib/Store/make-in-memory-store.js +244 -0
  47. package/lib/Store/make-ordered-dictionary.js +75 -0
  48. package/lib/Store/object-repository.js +32 -0
  49. package/lib/Types/Auth.js +2 -0
  50. package/lib/Types/Bussines.js +2 -0
  51. package/lib/Types/Call.js +2 -0
  52. package/lib/Types/Chat.js +8 -0
  53. package/lib/Types/Contact.js +2 -0
  54. package/lib/Types/Events.js +2 -0
  55. package/lib/Types/GroupMetadata.js +2 -0
  56. package/lib/Types/Label.js +25 -0
  57. package/lib/Types/LabelAssociation.js +7 -0
  58. package/lib/Types/Message.js +11 -0
  59. package/lib/Types/Mex.js +111 -0
  60. package/lib/Types/Product.js +2 -0
  61. package/lib/Types/Signal.js +2 -0
  62. package/lib/Types/Socket.js +3 -0
  63. package/lib/Types/State.js +56 -0
  64. package/lib/Types/USync.js +2 -0
  65. package/lib/Types/index.js +26 -0
  66. package/lib/Utils/auth-utils.js +302 -0
  67. package/lib/Utils/browser-utils.js +48 -0
  68. package/lib/Utils/business.js +231 -0
  69. package/lib/Utils/chat-utils.js +872 -0
  70. package/lib/Utils/companion-reg-client-utils.js +35 -0
  71. package/lib/Utils/crypto.js +118 -0
  72. package/lib/Utils/decode-wa-message.js +350 -0
  73. package/lib/Utils/event-buffer.js +622 -0
  74. package/lib/Utils/generics.js +403 -0
  75. package/lib/Utils/history.js +134 -0
  76. package/lib/Utils/identity-change-handler.js +50 -0
  77. package/lib/Utils/index.js +24 -0
  78. package/lib/Utils/link-preview.js +85 -0
  79. package/lib/Utils/logger.js +3 -0
  80. package/lib/Utils/lt-hash.js +8 -0
  81. package/lib/Utils/make-mutex.js +33 -0
  82. package/lib/Utils/message-composer.js +273 -0
  83. package/lib/Utils/message-retry-manager.js +265 -0
  84. package/lib/Utils/messages-media.js +870 -0
  85. package/lib/Utils/messages.js +1394 -0
  86. package/lib/Utils/noise-handler.js +201 -0
  87. package/lib/Utils/offline-node-processor.js +40 -0
  88. package/lib/Utils/pre-key-manager.js +106 -0
  89. package/lib/Utils/process-message.js +630 -0
  90. package/lib/Utils/reporting-utils.js +258 -0
  91. package/lib/Utils/signal.js +201 -0
  92. package/lib/Utils/stanza-ack.js +38 -0
  93. package/lib/Utils/sticker.js +133 -0
  94. package/lib/Utils/sync-action-utils.js +49 -0
  95. package/lib/Utils/tc-token-utils.js +163 -0
  96. package/lib/Utils/use-multi-file-auth-state.js +121 -0
  97. package/lib/Utils/use-sqlite-auth-state.js +162 -0
  98. package/lib/Utils/validate-connection.js +203 -0
  99. package/lib/WABinary/constants.js +1301 -0
  100. package/lib/WABinary/decode.js +262 -0
  101. package/lib/WABinary/encode.js +220 -0
  102. package/lib/WABinary/generic-utils.js +204 -0
  103. package/lib/WABinary/index.js +6 -0
  104. package/lib/WABinary/jid-utils.js +98 -0
  105. package/lib/WABinary/types.js +2 -0
  106. package/lib/WAM/BinaryInfo.js +10 -0
  107. package/lib/WAM/constants.js +22853 -0
  108. package/lib/WAM/encode.js +150 -0
  109. package/lib/WAM/index.js +4 -0
  110. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +53 -0
  111. package/lib/WAUSync/Protocols/USyncBusinessProtocol.js +43 -0
  112. package/lib/WAUSync/Protocols/USyncContactProtocol.js +54 -0
  113. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +57 -0
  114. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +30 -0
  115. package/lib/WAUSync/Protocols/USyncFeatureProtocol.js +58 -0
  116. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +30 -0
  117. package/lib/WAUSync/Protocols/USyncPictureProtocol.js +32 -0
  118. package/lib/WAUSync/Protocols/USyncSidelistProtocol.js +28 -0
  119. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +39 -0
  120. package/lib/WAUSync/Protocols/USyncTextStatusProtocol.js +38 -0
  121. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +27 -0
  122. package/lib/WAUSync/Protocols/index.js +12 -0
  123. package/lib/WAUSync/USyncQuery.js +151 -0
  124. package/lib/WAUSync/USyncUser.js +56 -0
  125. package/lib/WAUSync/index.js +3 -0
  126. package/lib/index.js +33 -0
  127. package/package.json +135 -0
@@ -0,0 +1,151 @@
1
+ import { getBinaryNodeChild } from '../WABinary/index.js'
2
+ import { USyncBotProfileProtocol } from './Protocols/USyncBotProfileProtocol.js'
3
+ import { USyncLIDProtocol } from './Protocols/USyncLIDProtocol.js'
4
+ import { USyncBusinessProtocol } from './Protocols/USyncBusinessProtocol.js'
5
+ import { USyncPictureProtocol } from './Protocols/USyncPictureProtocol.js'
6
+ import { USyncTextStatusProtocol } from './Protocols/USyncTextStatusProtocol.js'
7
+ import { USyncSidelistProtocol } from './Protocols/USyncSidelistProtocol.js'
8
+ import { USyncFeatureProtocol } from './Protocols/USyncFeatureProtocol.js'
9
+ import {
10
+ USyncContactProtocol,
11
+ USyncDeviceProtocol,
12
+ USyncDisappearingModeProtocol,
13
+ USyncStatusProtocol,
14
+ USyncUsernameProtocol
15
+ } from './Protocols/index.js'
16
+
17
+ export class USyncQuery {
18
+ constructor() {
19
+ this.protocols = []
20
+ this.users = []
21
+ this.context = 'interactive'
22
+ this.mode = 'query'
23
+ }
24
+
25
+ withMode(mode) {
26
+ this.mode = mode
27
+ return this
28
+ }
29
+
30
+ withContext(context) {
31
+ this.context = context
32
+ return this
33
+ }
34
+
35
+ withUser(user) {
36
+ this.users.push(user)
37
+ return this
38
+ }
39
+
40
+ parseUSyncQueryResult(result) {
41
+ if (result?.attrs.type !== 'result') {
42
+ return
43
+ }
44
+ const protocolMap = Object.fromEntries(
45
+ this.protocols.map(protocol => [protocol.name, protocol.parser])
46
+ )
47
+ const queryResult = {
48
+ list: [],
49
+ sideList: []
50
+ }
51
+ const usyncNode = getBinaryNodeChild(result, 'usync')
52
+
53
+ const parseUserNodes = nodes => {
54
+ return nodes.reduce((acc, node) => {
55
+ const id = node?.attrs.jid
56
+ if (id) {
57
+ const data = Array.isArray(node?.content)
58
+ ? Object.fromEntries(
59
+ node.content.map(content => {
60
+ const protocol = content.tag
61
+ const parser = protocolMap[protocol]
62
+ if (!parser) {
63
+ return [protocol, null]
64
+ }
65
+ try {
66
+ return [protocol, parser(content)]
67
+ } catch (err) {
68
+ return [protocol, null]
69
+ }
70
+ })
71
+ )
72
+ : {}
73
+ acc.push({ ...data, id })
74
+ }
75
+ return acc
76
+ }, [])
77
+ }
78
+
79
+ const listNode = usyncNode ? getBinaryNodeChild(usyncNode, 'list') : undefined
80
+ if (listNode?.content && Array.isArray(listNode.content)) {
81
+ queryResult.list = parseUserNodes(listNode.content)
82
+ }
83
+
84
+ const sideListNode = usyncNode ? getBinaryNodeChild(usyncNode, 'side_list') : undefined
85
+ if (sideListNode?.content && Array.isArray(sideListNode.content)) {
86
+ queryResult.sideList = parseUserNodes(sideListNode.content)
87
+ }
88
+
89
+ return queryResult
90
+ }
91
+
92
+ withDeviceProtocol() {
93
+ this.protocols.push(new USyncDeviceProtocol())
94
+ return this
95
+ }
96
+
97
+ withContactProtocol() {
98
+ this.protocols.push(new USyncContactProtocol())
99
+ return this
100
+ }
101
+
102
+ withStatusProtocol() {
103
+ this.protocols.push(new USyncStatusProtocol())
104
+ return this
105
+ }
106
+
107
+ withDisappearingModeProtocol() {
108
+ this.protocols.push(new USyncDisappearingModeProtocol())
109
+ return this
110
+ }
111
+
112
+ withBotProfileProtocol() {
113
+ this.protocols.push(new USyncBotProfileProtocol())
114
+ return this
115
+ }
116
+
117
+ withLIDProtocol() {
118
+ this.protocols.push(new USyncLIDProtocol())
119
+ return this
120
+ }
121
+
122
+ withUsernameProtocol() {
123
+ this.protocols.push(new USyncUsernameProtocol())
124
+ return this
125
+ }
126
+
127
+ withBusinessProtocol(profileVersion) {
128
+ this.protocols.push(new USyncBusinessProtocol(profileVersion))
129
+ return this
130
+ }
131
+
132
+ withPictureProtocol(type) {
133
+ this.protocols.push(new USyncPictureProtocol(type))
134
+ return this
135
+ }
136
+
137
+ withTextStatusProtocol() {
138
+ this.protocols.push(new USyncTextStatusProtocol())
139
+ return this
140
+ }
141
+
142
+ withSidelistProtocol(useLidAddressing) {
143
+ this.protocols.push(new USyncSidelistProtocol(useLidAddressing))
144
+ return this
145
+ }
146
+
147
+ withFeatureProtocol(features) {
148
+ this.protocols.push(new USyncFeatureProtocol(features))
149
+ return this
150
+ }
151
+ }
@@ -0,0 +1,56 @@
1
+ export class USyncUser {
2
+ withId(id) {
3
+ this.id = id
4
+ return this
5
+ }
6
+
7
+ withLid(lid) {
8
+ this.lid = lid
9
+ return this
10
+ }
11
+
12
+ withPhone(phone) {
13
+ this.phone = phone
14
+ return this
15
+ }
16
+
17
+ withUsername(username) {
18
+ this.username = username
19
+ return this
20
+ }
21
+
22
+ withUsernameKey(usernameKey) {
23
+ this.usernameKey = usernameKey
24
+ return this
25
+ }
26
+
27
+ withType(type) {
28
+ this.type = type
29
+ return this
30
+ }
31
+
32
+ withPersonaId(personaId) {
33
+ this.personaId = personaId
34
+ return this
35
+ }
36
+
37
+ withPictureId(pictureId) {
38
+ this.pictureId = pictureId
39
+ return this
40
+ }
41
+
42
+ withVerifiedNameSerial(serial) {
43
+ this.verifiedNameSerial = serial
44
+ return this
45
+ }
46
+
47
+ withBusinessProfileTag(tag) {
48
+ this.businessProfileTag = tag
49
+ return this
50
+ }
51
+
52
+ withSidelistDelete(del = true) {
53
+ this.sidelistDelete = del
54
+ return this
55
+ }
56
+ }
@@ -0,0 +1,3 @@
1
+ export * from './Protocols/index.js'
2
+ export * from './USyncQuery.js'
3
+ export * from './USyncUser.js'
package/lib/index.js ADDED
@@ -0,0 +1,33 @@
1
+ import makeWASocket from './Socket/index.js';
2
+ import chalk from "chalk";
3
+ console.log(chalk.hex("#6f00f")(`
4
+ ⣿⣿⣿⣿⣿⣷⣿⣿⣿⡅⡹⢿⠆⠙⠋⠉⠻⠿⣿⣿⣿⣿⣿⣿⣮⠻⣦⡙⢷⡑⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣌⠡⠌⠂⣙⠻⣛⠻⠷⠐⠈⠛⢱⣮⣷⣽⣿
5
+ ⣿⣿⣿⣿⡇⢿⢹⣿⣶⠐⠁⠀⣀⣠⣤⠄⠀⠀⠈⠙⠻⣿⣿⣿⣦⣵⣌⠻⣷⢝⠦⠚⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢟⣻⣿⣊⡃⠀⣙⠿⣿⣿⣿⣎⢮⡀⢮⣽⣿⣿
6
+ ⢿⣿⣿⣿⣧⡸⡎⡛⡩⠖⠀⣴⣿⣿⣿⠀⠀⠀⠀⠸⠇⠀⠙⢿⣿⣿⣿⣷⣌⢷⣑⢷⣄⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣫⠶⠛⠉⠀⠁⠀⠈⠈⠀⠠⠜⠻⣿⣆⢿⣼⣿⣿⣿
7
+ ⢐⣿⣿⣿⣿⣧⢧⣧⢻⣦⢀⣹⣿⣿⣿⣇⠀⠄⠀⠀⠀⡀⠀⠈⢻⣿⣿⣿⣿⣷⣝⢦⡹⠷⡙⢿⣿⣿⣿⣿⣿⣿⣿⣿⠈⠁⠀⠀⠀⠁⠀⠀⠀⠱⣶⣄⡀⠀⠈⠛⠜⣿⣿⣿⣿
8
+ ⠀⠊⢫⣿⣏⣿⡌⣼⣄⢫⡌⣿⣿⣿⣿⣿⣦⡈⠲⣄⣤⣤⡡⢀⣠⣿⣿⣿⣿⣿⣿⣷⣼⣍⢬⣦⡙⣿⣿⣿⣿⣿⣯⢁⡄⠀⡀⡀⠀⠄⢈⣠⢪⠀⣿⣿⣿⣦⠀⢉⢂⠹⡿⣿⣿
9
+ ⠀⠀⠄⢹⢃⢻⣟⠙⣿⣦⠱⢻⣿⣿⣿⣿⣿⣿⣷⣬⣍⣭⣥⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⡙⢿⣼⡿⣿⣿⣿⣿⣿⣷⣄⠘⣱⢦⣤⡴⡿⢈⣼⣿⣿⣿⣇⣴⣶⣮⣅⢻⣿⡏
10
+ ⠀⠀⠈⠹⣇⢡⢿⡆⠻⣿⣷⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣍⡻⣿⣟⣻⣿⣿⣿⣿⣷⣦⣥⣬⣤⣴⣾⣿⣿⣿⣿⣷⣿⣿⣿⣿⣷⡜⠃
11
+ ⠀⠀⠀⢀⣘⠈⢂⠃⣧⡹⣿⣷⡄⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣮⣅⡙⢿⣟⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⡕⠂
12
+ ⠀⠀⠀⠀⠀⠀⠛⢷⣜⢷⡌⠻⣿⣿⣦⣝⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣹⣷⣦⣹⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠉⠃⠀⠉`));
13
+ console.log("\n")
14
+ console.log(chalk.hex("#6f00f")(`
15
+ ░█░█░▀█▀░█▀█░█▀█░█░█░█▀▀░█░█░█▀█░█▀▀░░░█▀▄░█▀█░▀█▀░█░░░█▀▀░█░█░█▀▀
16
+ ░▀▄▀░░█░░█░█░█░█░▄▀▄░▀▀█░░█░░█░█░█░░░░░█▀▄░█▀█░░█░░█░░░█▀▀░░█░░▀▀█
17
+ ░░▀░░▀▀▀░▀░▀░▀░▀░▀░▀░▀▀▀░░▀░░▀░▀░▀▀▀░░░▀▀░░▀░▀░▀▀▀░▀▀▀░▀▀▀░░▀░░▀▀▀
18
+ `));
19
+ console.log(chalk.yellow("\n✨ Modified Baileys ✨\n"));
20
+ console.log(chalk.magenta("Hi, Thanks For Using My Modified Baileys\n"));
21
+ console.log(chalk.cyan("Follow : @aboutvin7x For More Update"));;
22
+ export * from '../WAProto/index.js';
23
+ export * from './Utils/index.js';
24
+ export * from './Types/index.js';
25
+ export * from './Defaults/index.js';
26
+ export * from './WABinary/index.js';
27
+ export * from './WAM/index.js';
28
+ export * from './WAUSync/index.js';
29
+ export * from './Store/index.js';
30
+ export { makeWASocket };
31
+ export default makeWASocket;
32
+ //# sourceMappingURL=index.js.map
33
+ export * as MessageBuilder from './Socket/MessageBuilder.js';
package/package.json ADDED
@@ -0,0 +1,135 @@
1
+ {
2
+ "name": "vinnleys",
3
+ "version": "1.0.0",
4
+ "description": "A WebSockets library for interacting with WhatsApp Web.",
5
+ "keywords": [
6
+ "baileys",
7
+ "whatsapp",
8
+ "whatsapp-baileys"
9
+ ],
10
+ "homepage": "https://www.npmjs.com/package/vinnleys",
11
+ "repository": {
12
+ "url": "https://www.npmjs.com/package/vinnleys"
13
+ },
14
+ "license": "MIT",
15
+ "author": "VinnxsynC",
16
+ "main": "lib/index.js",
17
+ "files": [
18
+ "lib/**/*",
19
+ "WAProto/**/*",
20
+ "engine-requirements.js"
21
+ ],
22
+ "scripts": {
23
+ "build:all": "tsc && typedoc",
24
+ "build:docs": "typedoc",
25
+ "build:tsc": "tsc",
26
+ "changelog:last": "conventional-changelog -p angular -r 2",
27
+ "changelog:preview": "conventional-changelog -p angular -u",
28
+ "gen:protobuf": "sh WAProto/GenerateStatics.sh",
29
+ "lint": "eslint src --ext .js,.ts,.jsx,.tsx",
30
+ "lint:fix": "eslint src --fix --ext .js,.ts,.jsx,.tsx",
31
+ "prepack": "",
32
+ "prepare": "",
33
+ "preinstall": "node ./engine-requirements.js",
34
+ "release": "release-it",
35
+ "test": "jest"
36
+ },
37
+ "dependencies": {
38
+ "@cacheable/node-cache": "^1.4.0",
39
+ "@hapi/boom": "^9.1.3",
40
+ "async-mutex": "^0.5.0",
41
+ "libsignal": "^6.0.0",
42
+ "lru-cache": "^11.1.0",
43
+ "music-metadata": "^11.12.3",
44
+ "p-queue": "^9.0.0",
45
+ "pino": "^9.6",
46
+ "protobufjs": "^7.5.6",
47
+ "whatsapp-rust-bridge": "0.5.4",
48
+ "ws": "^8.13.0",
49
+ "chalk": "^4.1.2",
50
+ "cache-manager": "^7.2.8"
51
+ },
52
+ "devDependencies": {
53
+ "@eslint/eslintrc": "^3.3.1",
54
+ "@eslint/js": "^9.31.0",
55
+ "@types/jest": "^30.0.0",
56
+ "@types/node": "^20.9.0",
57
+ "@types/ws": "^8.0.0",
58
+ "@typescript-eslint/eslint-plugin": "^8",
59
+ "@typescript-eslint/parser": "^8",
60
+ "@whiskeysockets/eslint-config": "^1.0.0",
61
+ "conventional-changelog": "^7.1.1",
62
+ "conventional-changelog-angular": "^8.0.0",
63
+ "esbuild-register": "^3.6.0",
64
+ "eslint": "^9",
65
+ "eslint-config-prettier": "^10.1.2",
66
+ "eslint-plugin-prettier": "^5.4.0",
67
+ "jest": "^30.0.5",
68
+ "jimp": "^1.6.1",
69
+ "jiti": "^2.4.2",
70
+ "json": "^11.0.0",
71
+ "link-preview-js": "^3.0.0",
72
+ "lru-cache": "^11.1.0",
73
+ "open": "^8.4.2",
74
+ "pino-pretty": "^13.1.1",
75
+ "prettier": "^3.5.3",
76
+ "protobufjs-cli": "^1.1.3",
77
+ "release-it": "^20.0.1",
78
+ "ts-jest": "^29.4.0",
79
+ "tsc-esm-fix": "^3.1.2",
80
+ "tsx": "^4.20.3",
81
+ "typedoc": "^0.27.9",
82
+ "typedoc-plugin-markdown": "4.4.2",
83
+ "typescript": "^5.8.2"
84
+ },
85
+ "peerDependencies": {
86
+ "audio-decode": "^2.1.3",
87
+ "jimp": "^1.6.1",
88
+ "link-preview-js": "^3.0.0",
89
+ "sharp": "*"
90
+ },
91
+ "resolutions": {
92
+ "ajv@npm:^6.12.4": "^6.14.0",
93
+ "basic-ftp": "^5.2.4",
94
+ "brace-expansion@npm:^1.1.7": "^1.1.13",
95
+ "brace-expansion@npm:^2.0.1": "^2.0.3",
96
+ "flatted": "^3.4.2",
97
+ "glob@npm:^10.2.2": "^10.5.0",
98
+ "glob@npm:^10.3.10": "^10.5.0",
99
+ "glob@npm:^10.5.0": "^10.5.0",
100
+ "handlebars": "^4.7.9",
101
+ "ip-address": "^10.1.1",
102
+ "js-yaml@npm:^3.13.1": "^3.14.2",
103
+ "js-yaml@npm:^4.1.0": "^4.1.1",
104
+ "markdown-it": "^14.1.1",
105
+ "minimatch@npm:^3.0.4": "^3.1.5",
106
+ "minimatch@npm:^3.1.2": "^3.1.5",
107
+ "minimatch@npm:^5.0.1": "^5.1.8",
108
+ "minimatch@npm:^9.0.4": "^9.0.9",
109
+ "minimatch@npm:^9.0.5": "^9.0.9",
110
+ "picomatch@npm:^2.0.4": "^2.3.2",
111
+ "picomatch@npm:^2.3.1": "^2.3.2",
112
+ "picomatch@npm:^4.0.0": "^4.0.4",
113
+ "picomatch@npm:^4.0.2": "^4.0.4",
114
+ "socks": "^2.8.8",
115
+ "tar": "^7.5.11",
116
+ "tmp": "^0.2.5",
117
+ "underscore": "^1.13.8",
118
+ "yaml@npm:^2.6.1": "^2.8.4"
119
+ },
120
+ "peerDependenciesMeta": {
121
+ "audio-decode": {
122
+ "optional": true
123
+ },
124
+ "jimp": {
125
+ "optional": true
126
+ },
127
+ "link-preview-js": {
128
+ "optional": true
129
+ }
130
+ },
131
+ "packageManager": "yarn@4.9.2",
132
+ "engines": {
133
+ "node": ">=20.0.0"
134
+ }
135
+ }