@zervonex/baileys 3.0.2 → 3.0.4
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.
- package/README.md +38 -8
- package/WAProto/WAProtoCompile.js +1 -0
- package/WAProto/fetcher.js +17 -33
- package/WAProto/index.js +34 -26
- package/WAProto/parser.js +333 -312
- package/lib/Builders/AIRich.js +14 -14
- package/lib/Builders/base.js +3 -3
- package/lib/Builders/builders.js +460 -448
- package/lib/Defaults/index.js +1 -0
- package/lib/Socket/messages-recv.js +1 -1
- package/lib/Socket/messages-send.js +1 -1
- package/lib/Socket/newsletter.js +1 -0
- package/lib/Socket/socket.js +4 -3
- package/lib/Socket/zervonex-handler.js +1 -1
- package/lib/Utils/browser-utils.js +8 -4
- package/lib/Utils/chat-utils.js +1 -1
- package/lib/Utils/messages.js +91 -40
- package/lib/Utils/use-multi-file-auth-state.js +50 -157
- package/lib/Utils/validate-connection.js +19 -28
- package/lib/WABinary/generic-utils.js +43 -19
- package/lib/index.js +1 -1
- package/package.json +56 -91
|
@@ -6,10 +6,12 @@ import { getBinaryNodeChild, jidDecode, S_WHATSAPP_NET } from '../WABinary/index
|
|
|
6
6
|
import { Curve, hmacSign } from './crypto.js'
|
|
7
7
|
import { encodeBigEndian } from './generics.js'
|
|
8
8
|
import { createSignalIdentity } from './signal.js'
|
|
9
|
+
import { getPlatformType } from './browser-utils.js'
|
|
9
10
|
|
|
10
11
|
const PLATFORM_MAP = {
|
|
11
12
|
'Mac OS': proto.ClientPayload.WebInfo.WebSubPlatform.DARWIN,
|
|
12
|
-
Windows: proto.ClientPayload.WebInfo.WebSubPlatform.
|
|
13
|
+
'Windows': proto.ClientPayload.WebInfo.WebSubPlatform.WIN_HYBRID,
|
|
14
|
+
'WindowsStore': proto.ClientPayload.WebInfo.WebSubPlatform.WIN_STORE,
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
const getUserAgent = (config) => ({
|
|
@@ -18,12 +20,11 @@ const getUserAgent = (config) => ({
|
|
|
18
20
|
secondary: config.version[1],
|
|
19
21
|
tertiary: config.version[2],
|
|
20
22
|
},
|
|
21
|
-
platform:
|
|
22
|
-
? proto.ClientPayload.UserAgent.Platform.MACOS
|
|
23
|
-
: proto.ClientPayload.UserAgent.Platform.WEB,
|
|
23
|
+
platform: proto.ClientPayload.UserAgent.Platform.WEB,
|
|
24
24
|
releaseChannel: proto.ClientPayload.UserAgent.ReleaseChannel.RELEASE,
|
|
25
25
|
osVersion: '0.1',
|
|
26
26
|
device: 'Desktop',
|
|
27
|
+
deviceType: proto.ClientPayload.UserAgent.DeviceType.DESKTOP,
|
|
27
28
|
osBuildNumber: '0.1',
|
|
28
29
|
localeLanguageIso6391: 'en',
|
|
29
30
|
mnc: '000',
|
|
@@ -48,10 +49,16 @@ const getClientPayload = (config) => {
|
|
|
48
49
|
return payload
|
|
49
50
|
}
|
|
50
51
|
|
|
51
|
-
const
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
const buildHistorySyncConfig = () => {
|
|
53
|
+
const fields = proto.DeviceProps.HistorySyncConfig.fields
|
|
54
|
+
const config = {}
|
|
55
|
+
for (const [name, field] of Object.entries(fields)) {
|
|
56
|
+
if (field.type === 'bool') config[name] = true
|
|
57
|
+
}
|
|
58
|
+
config.storageQuotaMb = 569150
|
|
59
|
+
config.supportCallLogHistory = false
|
|
60
|
+
config.supportGroupHistory = false
|
|
61
|
+
return config
|
|
55
62
|
}
|
|
56
63
|
|
|
57
64
|
export const generateLoginNode = (userJid, config) => {
|
|
@@ -72,24 +79,8 @@ export const generateRegistrationNode = ({ registrationId, signedPreKey, signedI
|
|
|
72
79
|
os: config.browser[0],
|
|
73
80
|
platformType: getPlatformType(config.browser[1]),
|
|
74
81
|
requireFullSync: config.syncFullHistory,
|
|
75
|
-
historySyncConfig:
|
|
76
|
-
|
|
77
|
-
inlineInitialPayloadInE2EeMsg: true,
|
|
78
|
-
recentSyncDaysLimit: undefined,
|
|
79
|
-
supportCallLogHistory: false,
|
|
80
|
-
supportBotUserAgentChatHistory: true,
|
|
81
|
-
supportCagReactionsAndPolls: true,
|
|
82
|
-
supportBizHostedMsg: true,
|
|
83
|
-
supportRecentSyncChunkMessageCountTuning: true,
|
|
84
|
-
supportHostedGroupMsg: true,
|
|
85
|
-
supportFbidBotChatHistory: true,
|
|
86
|
-
supportAddOnHistorySyncMigration: undefined,
|
|
87
|
-
supportMessageAssociation: true,
|
|
88
|
-
supportGroupHistory: false,
|
|
89
|
-
onDemandReady: undefined,
|
|
90
|
-
supportGuestChat: undefined,
|
|
91
|
-
},
|
|
92
|
-
version: { primary: 10, secondary: 15, tertiary: 7 },
|
|
82
|
+
historySyncConfig: buildHistorySyncConfig(),
|
|
83
|
+
version: { primary: config.version[0], secondary: config.version[1], tertiary: config.version[2] },
|
|
93
84
|
}).finish()
|
|
94
85
|
|
|
95
86
|
return proto.ClientPayload.fromObject({
|
|
@@ -97,14 +88,14 @@ export const generateRegistrationNode = ({ registrationId, signedPreKey, signedI
|
|
|
97
88
|
passive: false,
|
|
98
89
|
pull: false,
|
|
99
90
|
devicePairingData: {
|
|
100
|
-
buildHash: appVersionBuf,
|
|
101
|
-
deviceProps: companionProto,
|
|
102
91
|
eRegid: encodeBigEndian(registrationId),
|
|
103
92
|
eKeytype: KEY_BUNDLE_TYPE,
|
|
104
93
|
eIdent: signedIdentityKey.public,
|
|
105
94
|
eSkeyId: encodeBigEndian(signedPreKey.keyId, 3),
|
|
106
95
|
eSkeyVal: signedPreKey.keyPair.public,
|
|
107
96
|
eSkeySig: signedPreKey.signature,
|
|
97
|
+
buildHash: appVersionBuf,
|
|
98
|
+
deviceProps: companionProto,
|
|
108
99
|
},
|
|
109
100
|
})
|
|
110
101
|
}
|
|
@@ -89,11 +89,11 @@ export const getButtonType = (message) => {
|
|
|
89
89
|
if (message.listMessage) return 'list'
|
|
90
90
|
if (message.buttonsMessage) return 'buttons'
|
|
91
91
|
const interactiveMsg = message.interactiveMessage || message.interactive
|
|
92
|
-
if (!interactiveMsg
|
|
93
|
-
const btn = interactiveMsg
|
|
92
|
+
if (!interactiveMsg) return null
|
|
93
|
+
const btn = interactiveMsg.nativeFlowMessage?.buttons?.[0]?.name
|
|
94
94
|
if (['review_and_pay', 'review_order', 'payment_info', 'payment_status', 'payment_method'].includes(btn)) return btn
|
|
95
|
-
|
|
96
|
-
return
|
|
95
|
+
// any interactiveMessage subtype (nativeFlow, carousel, shop, collection, bloksWidget, etc.)
|
|
96
|
+
return 'interactive'
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
// ─── Biz Binary Node (canonical single implementation) ────────────────────────
|
|
@@ -114,8 +114,8 @@ const LIST_TYPE_CONTENT = { tag: 'list', attrs: { v: '2', type: 'product_list' }
|
|
|
114
114
|
const DECISION_SOURCE = [{ tag: 'decision_source', attrs: { value: 'df' } }]
|
|
115
115
|
|
|
116
116
|
export const getBizBinaryNode = (message) => {
|
|
117
|
-
|
|
118
|
-
const firstButtonName =
|
|
117
|
+
|
|
118
|
+
const firstButtonName = message.interactiveMessage?.nativeFlowMessage?.buttons?.[0]?.name
|
|
119
119
|
const bizAttrs = { actual_actors: '2', host_storage: '2', privacy_mode_ts: `${Date.now() / 1000 | 0}` }
|
|
120
120
|
const qualityContent = {
|
|
121
121
|
tag: 'quality_control',
|
|
@@ -136,7 +136,9 @@ export const getBizBinaryNode = (message) => {
|
|
|
136
136
|
]
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
|
-
|
|
139
|
+
// any interactiveMessage subtype (nativeFlowMessage, carouselMessage, shopStorefrontMessage,
|
|
140
|
+
// collectionMessage, bloksWidget, or anything WA adds in future) gets MIXED_NATIVE_FLOW
|
|
141
|
+
if (message.interactiveMessage || message.buttonsMessage || message.templateMessage) {
|
|
140
142
|
return { tag: 'biz', attrs: bizAttrs, content: [MIXED_NATIVE_FLOW, qualityContent] }
|
|
141
143
|
}
|
|
142
144
|
if (message.listMessage) {
|
|
@@ -145,22 +147,44 @@ export const getBizBinaryNode = (message) => {
|
|
|
145
147
|
return { tag: 'biz', attrs: bizAttrs, content: [qualityContent] }
|
|
146
148
|
}
|
|
147
149
|
|
|
148
|
-
// Legacy alias — kept for back-compat,
|
|
150
|
+
// Legacy alias — kept for back-compat, used by messages-send.js
|
|
151
|
+
// Note: messages-send.js already calls normalizeMessageContent before passing in,
|
|
152
|
+
// so the viewOnceMessage unwrap here is a safety net only.
|
|
149
153
|
export const getButtonArgs = (message) => {
|
|
150
154
|
const msgContent = message.viewOnceMessage?.message || message
|
|
151
155
|
const interactiveMsg = msgContent.interactiveMessage || msgContent.interactive
|
|
152
|
-
const
|
|
153
|
-
const btnFirst = flowMsg?.buttons?.[0]?.name
|
|
156
|
+
const firstButtonName = interactiveMsg?.nativeFlowMessage?.buttons?.[0]?.name
|
|
154
157
|
const ts = Math.floor(Date.now() / 1000) - 77980457
|
|
155
|
-
const
|
|
156
|
-
const
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
158
|
+
const bizAttrs = { actual_actors: '2', host_storage: '2', privacy_mode_ts: `${ts}` }
|
|
159
|
+
const engagementNode = { tag: 'engagement', attrs: { customer_service_state: 'open', conversation_state: 'open' } }
|
|
160
|
+
|
|
161
|
+
const order_response_name = {
|
|
162
|
+
review_and_pay: 'order_details', review_order: 'order_status',
|
|
163
|
+
payment_info: 'payment_info', payment_status: 'payment_status',
|
|
164
|
+
payment_method: 'payment_method'
|
|
165
|
+
}
|
|
166
|
+
const flow_name = {
|
|
167
|
+
cta_catalog: 'cta_catalog', mpm: 'mpm',
|
|
168
|
+
call_permission_request: 'call_permission_request', call_request: 'call_permission_request',
|
|
169
|
+
view_catalog: 'automated_greeting_message_view_catalog',
|
|
170
|
+
automated_greeting_message_view_catalog: 'automated_greeting_message_view_catalog',
|
|
171
|
+
wa_pay_detail: 'wa_payment_transaction_details',
|
|
172
|
+
wa_payment_transaction_details: 'wa_payment_transaction_details',
|
|
173
|
+
send_location: 'send_location', open_webview: 'open_webview', galaxy_message: 'galaxy_message'
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
if (firstButtonName && order_response_name[firstButtonName]) {
|
|
177
|
+
return [{ tag: 'biz', attrs: { native_flow_name: order_response_name[firstButtonName] }, content: [] }]
|
|
178
|
+
}
|
|
179
|
+
// any interactiveMessage subtype or buttonsMessage gets an interactive native_flow node
|
|
180
|
+
if (interactiveMsg || msgContent.buttonsMessage) {
|
|
181
|
+
const name = (firstButtonName && flow_name[firstButtonName]) ? flow_name[firstButtonName] : 'mixed'
|
|
182
|
+
return [{ tag: 'biz', attrs: bizAttrs, content: [engagementNode, { tag: 'interactive', attrs: { type: 'native_flow', v: '1' }, content: [{ tag: 'native_flow', attrs: { v: '9', name }, content: [] }] }] }]
|
|
161
183
|
}
|
|
162
|
-
if (msgContent.listMessage)
|
|
163
|
-
|
|
184
|
+
if (msgContent.listMessage) {
|
|
185
|
+
return [{ tag: 'biz', attrs: bizAttrs, content: [engagementNode] }]
|
|
186
|
+
}
|
|
187
|
+
return [{ tag: 'biz', attrs: bizAttrs, content: [engagementNode] }]
|
|
164
188
|
}
|
|
165
189
|
|
|
166
190
|
// ─── Debug Utilities ──────────────────────────────────────────────────────────
|
|
@@ -176,4 +200,4 @@ export const binaryNodeToString = (node, i = 0) => {
|
|
|
176
200
|
const tag = `<${node.tag} ${Object.entries(node.attrs || {}).filter(([, v]) => v !== undefined).map(([k, v]) => `${k}='${v}'`).join(' ')}`
|
|
177
201
|
const content = children ? `>\n${children}\n${tabs(i)}</${node.tag}>` : '/>'
|
|
178
202
|
return tag + content
|
|
179
|
-
}
|
|
203
|
+
}
|
package/lib/index.js
CHANGED
|
@@ -29,7 +29,7 @@ const info = [
|
|
|
29
29
|
'╭──────────────────────────────────────────────────────────────╮',
|
|
30
30
|
'│ │',
|
|
31
31
|
'│ ◆ Package › @zervonex/baileys │',
|
|
32
|
-
'│ ◆ Version › 3.0.
|
|
32
|
+
'│ ◆ Version › 3.0.4 │',
|
|
33
33
|
'│ ◆ Status › Production Ready │',
|
|
34
34
|
'│ │',
|
|
35
35
|
'├──────────────────────────── ◇◆◇ ─────────────────────────────┤',
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@zervonex/baileys",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "3.0.
|
|
5
|
+
"version": "3.0.4",
|
|
6
6
|
"description": "Advanced WhatsApp Web API built on Baileys — interactive messages, buttons, carousels, products, events, payments, polls, albums, sticker packs and more.",
|
|
7
7
|
"keywords": [
|
|
8
8
|
"baileys",
|
|
@@ -72,47 +72,32 @@
|
|
|
72
72
|
"license": "MIT",
|
|
73
73
|
"author": "zervonex",
|
|
74
74
|
"main": "lib/index.js",
|
|
75
|
-
"types": "lib/index.d.ts",
|
|
76
75
|
"scripts": {
|
|
77
|
-
"build:all": "tsc && typedoc",
|
|
78
|
-
"build:docs": "typedoc",
|
|
79
|
-
"build:tsc": "tsc",
|
|
80
76
|
"generate:license": "npx license",
|
|
81
|
-
"
|
|
82
|
-
"changelog:preview": "conventional-changelog -p angular -u",
|
|
83
|
-
"changelog:update": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
|
|
84
|
-
"example": "node --inspect -r ts-node/register Example/example.ts",
|
|
85
|
-
"gen:protobuf": "sh WAProto/GenerateStatics.sh",
|
|
86
|
-
"lint": "eslint src --ext .js,.ts,.jsx,.tsx",
|
|
87
|
-
"lint:fix": "eslint src --fix --ext .js,.ts,.jsx,.tsx",
|
|
77
|
+
"gen:protobuf": "node ./WAProto/index.js",
|
|
88
78
|
"prepack": "echo 'Zervonex WhatsApp Library'",
|
|
89
79
|
"prepare": "echo 'Zervonex WhatsApp Library'",
|
|
90
80
|
"preinstall": "node ./engine-requirements.js",
|
|
91
|
-
"
|
|
92
|
-
"test": "jest"
|
|
81
|
+
"test": "node ./lib/index.js"
|
|
93
82
|
},
|
|
94
83
|
"files": [
|
|
95
84
|
"lib/**/*.js",
|
|
96
85
|
"lib/**/*.json",
|
|
97
|
-
"lib/**/*.d.ts",
|
|
98
|
-
"lib/**/*.map",
|
|
99
86
|
"WAProto/**/*.js",
|
|
100
87
|
"WAProto/**/*.json",
|
|
101
|
-
"WAProto/**/*.d.ts",
|
|
102
|
-
"WAProto/**/*.sh",
|
|
103
88
|
"engine-requirements.js"
|
|
104
89
|
],
|
|
105
90
|
"dependencies": {
|
|
106
91
|
"@adiwajshing/keyed-db": "^0.2.4",
|
|
107
|
-
"@cacheable/node-cache": "^1.
|
|
108
|
-
"@hapi/boom": "^
|
|
109
|
-
"@keyv/etcd": "^
|
|
110
|
-
"@keyv/memcache": "^
|
|
111
|
-
"@keyv/mongo": "^
|
|
112
|
-
"@keyv/mysql": "^
|
|
113
|
-
"@keyv/postgres": "^
|
|
114
|
-
"@keyv/redis": "^
|
|
115
|
-
"@keyv/sqlite": "^
|
|
92
|
+
"@cacheable/node-cache": "^3.1.1",
|
|
93
|
+
"@hapi/boom": "^10.0.1",
|
|
94
|
+
"@keyv/etcd": "^6.1.0",
|
|
95
|
+
"@keyv/memcache": "^6.1.0",
|
|
96
|
+
"@keyv/mongo": "^6.1.0",
|
|
97
|
+
"@keyv/mysql": "^6.1.0",
|
|
98
|
+
"@keyv/postgres": "^6.1.0",
|
|
99
|
+
"@keyv/redis": "^6.1.0",
|
|
100
|
+
"@keyv/sqlite": "^6.1.0",
|
|
116
101
|
"acorn": "^8.18.0",
|
|
117
102
|
"acorn-walk": "^8.3.5",
|
|
118
103
|
"async-mutex": "^0.5.0",
|
|
@@ -120,90 +105,71 @@
|
|
|
120
105
|
"cache-manager": "latest",
|
|
121
106
|
"fflate": "^0.8.2",
|
|
122
107
|
"ffmpeg-static": "^5.3.0",
|
|
123
|
-
"file-type": "^22.0
|
|
124
|
-
"gradient-string": "^
|
|
125
|
-
"keyv": "^
|
|
108
|
+
"file-type": "^22.2.0",
|
|
109
|
+
"gradient-string": "^3.0.0",
|
|
110
|
+
"keyv": "^6.1.0",
|
|
126
111
|
"libphonenumber-js": "^1.13.3",
|
|
127
112
|
"lru-cache": "^11.1.0",
|
|
128
|
-
"music-metadata": "^
|
|
129
|
-
"p-queue": "^
|
|
130
|
-
"pino": "^
|
|
113
|
+
"music-metadata": "^12.3.0",
|
|
114
|
+
"p-queue": "^10.0.0",
|
|
115
|
+
"pino": "^10.4.0",
|
|
131
116
|
"prismjs": "^1.30.0",
|
|
132
117
|
"protobufjs": "latest",
|
|
133
118
|
"qrcode-terminal": "^0.12.0",
|
|
134
119
|
"rlottie": "^0.1.2",
|
|
135
|
-
"undici": "^8.
|
|
120
|
+
"undici": "^8.12.3",
|
|
136
121
|
"unfurl.js": "^6.4.0",
|
|
137
122
|
"url-regex-safe": "^4.0.0",
|
|
138
123
|
"uuid": "latest",
|
|
139
124
|
"wa-sticker-formatter": "^4.4.4",
|
|
140
|
-
"whatsapp-rust-bridge": "
|
|
125
|
+
"whatsapp-rust-bridge": "^0.5.5",
|
|
141
126
|
"ws": "latest"
|
|
142
127
|
},
|
|
143
|
-
"devDependencies": {
|
|
144
|
-
"@eslint/eslintrc": "^3.3.1",
|
|
145
|
-
"@eslint/js": "^9.31.0",
|
|
146
|
-
"@types/jest": "^30.0.0",
|
|
147
|
-
"@types/node": "^20.9.0",
|
|
148
|
-
"@types/sharp": "^0.31.1",
|
|
149
|
-
"@types/ws": "^8.0.0",
|
|
150
|
-
"@typescript-eslint/eslint-plugin": "^8",
|
|
151
|
-
"@typescript-eslint/parser": "^8",
|
|
152
|
-
"@whiskeysockets/eslint-config": "^1.0.0",
|
|
153
|
-
"conventional-changelog": "^7.1.1",
|
|
154
|
-
"conventional-changelog-angular": "^8.0.0",
|
|
155
|
-
"esbuild-register": "^3.6.0",
|
|
156
|
-
"eslint": "^9",
|
|
157
|
-
"eslint-config-prettier": "^10.1.2",
|
|
158
|
-
"eslint-plugin-prettier": "^5.4.0",
|
|
159
|
-
"jest": "^25.0.0",
|
|
160
|
-
"jimp": "^1.6.0",
|
|
161
|
-
"jiti": "^2.4.2",
|
|
162
|
-
"json": "^11.0.0",
|
|
163
|
-
"lru-cache": "^11.1.0",
|
|
164
|
-
"open": "^8.4.2",
|
|
165
|
-
"pino-pretty": "^13.1.1",
|
|
166
|
-
"prettier": "^3.5.3",
|
|
167
|
-
"protobufjs-cli": "^1.1.3",
|
|
168
|
-
"release-it": "^21.1.1",
|
|
169
|
-
"ts-jest": "^27.0.3",
|
|
170
|
-
"ts-node": "^10.9.2",
|
|
171
|
-
"tsc-esm-fix": "^2.20.27",
|
|
172
|
-
"tsup": "^8.5.1",
|
|
173
|
-
"tsx": "^4.20.3",
|
|
174
|
-
"typedoc": "^0.27.9",
|
|
175
|
-
"typedoc-plugin-markdown": "4.4.2",
|
|
176
|
-
"typescript": "^5.8.2"
|
|
177
|
-
},
|
|
178
|
-
"peerDependencies": {
|
|
179
|
-
"jimp": "*",
|
|
180
|
-
"sharp": "*"
|
|
181
|
-
},
|
|
182
|
-
"peerDependenciesMeta": {
|
|
183
|
-
"jimp": {
|
|
184
|
-
"optional": true
|
|
185
|
-
},
|
|
186
|
-
"sharp": {
|
|
187
|
-
"optional": true
|
|
188
|
-
}
|
|
189
|
-
},
|
|
190
128
|
"overrides": {
|
|
191
129
|
"wa-sticker-formatter": {
|
|
192
|
-
"sharp": "^0.
|
|
130
|
+
"sharp": "^0.35.5",
|
|
193
131
|
"axios": "^1.6.0",
|
|
194
|
-
"file-type": "^22.0
|
|
195
|
-
"image-size": "^2.0.
|
|
132
|
+
"file-type": "^22.2.0",
|
|
133
|
+
"image-size": "^2.0.4"
|
|
196
134
|
},
|
|
135
|
+
"jest": "^29.0.0",
|
|
197
136
|
"tar": "^7.5.22",
|
|
198
|
-
"@tootallnate/once": "^3.0.1"
|
|
137
|
+
"@tootallnate/once": "^3.0.1",
|
|
138
|
+
"image-size": "^2.0.4",
|
|
139
|
+
"sqlite3": "^6.0.1",
|
|
140
|
+
"cacache": "^19.0.1",
|
|
141
|
+
"axios": "^1.6.0",
|
|
142
|
+
"file-type": "^22.2.0",
|
|
143
|
+
"sharp": "^0.35.5",
|
|
144
|
+
"release-it": {
|
|
145
|
+
"undici": "^8.12.3",
|
|
146
|
+
"basic-ftp": "^6.2.3"
|
|
147
|
+
},
|
|
148
|
+
"jimp": {
|
|
149
|
+
"file-type": "^22.2.0"
|
|
150
|
+
},
|
|
151
|
+
"esbuild": "^0.28.2",
|
|
152
|
+
"basic-ftp": "^6.2.3",
|
|
153
|
+
"music-metadata": {
|
|
154
|
+
"file-type": "^22.2.0"
|
|
155
|
+
},
|
|
156
|
+
"@jimp/core": {
|
|
157
|
+
"file-type": "^22.2.0"
|
|
158
|
+
}
|
|
199
159
|
},
|
|
200
160
|
"resolutions": {
|
|
201
|
-
"wa-sticker-formatter/sharp": "^0.
|
|
161
|
+
"wa-sticker-formatter/sharp": "^0.35.5",
|
|
202
162
|
"wa-sticker-formatter/axios": "^1.6.0",
|
|
203
|
-
"wa-sticker-formatter/file-type": "^22.0
|
|
204
|
-
"wa-sticker-formatter/image-size": "^2.0.
|
|
163
|
+
"wa-sticker-formatter/file-type": "^22.2.0",
|
|
164
|
+
"wa-sticker-formatter/image-size": "^2.0.4",
|
|
205
165
|
"tar": "^7.5.22",
|
|
206
|
-
"@tootallnate/once": "^3.0.1"
|
|
166
|
+
"@tootallnate/once": "^3.0.1",
|
|
167
|
+
"image-size": "^2.0.4",
|
|
168
|
+
"sqlite3": "^6.0.1",
|
|
169
|
+
"cacache": "^19.0.1",
|
|
170
|
+
"axios": "^1.6.0",
|
|
171
|
+
"file-type": "^22.2.0",
|
|
172
|
+
"sharp": "^0.35.5"
|
|
207
173
|
},
|
|
208
174
|
"packageManager": "yarn@4.9.2",
|
|
209
175
|
"engines": {
|
|
@@ -212,7 +178,6 @@
|
|
|
212
178
|
"exports": {
|
|
213
179
|
".": {
|
|
214
180
|
"import": "./lib/index.js",
|
|
215
|
-
"require": "./lib/index.cjs",
|
|
216
181
|
"default": "./lib/index.js"
|
|
217
182
|
},
|
|
218
183
|
"./lib/*": "./lib/*",
|