@rexxhayanasi/elaina-baileys 1.2.0-rc.7 → 1.2.0-rc.8

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.
@@ -12,7 +12,7 @@ const makeBusinessSocket = (config) => {
12
12
  syncFullHistory: false,
13
13
  shouldIgnoreJid: () => false
14
14
  });
15
- const { authState, query, waUploadToServer } = sock;
15
+ const { authState, query, waUploadToServer, refreshMediaConn } = sock;
16
16
  const getCatalog = async ({ jid, limit, cursor }) => {
17
17
  var _a;
18
18
  jid = jid || ((_a = authState.creds.me) === null || _a === void 0 ? void 0 : _a.id);
@@ -254,6 +254,7 @@ const makeBusinessSocket = (config) => {
254
254
  return {
255
255
  ...sock,
256
256
  logger: config.logger,
257
+ refreshMediaConn,
257
258
  getOrderDetails,
258
259
  getCatalog,
259
260
  getCollections,
@@ -1,103 +1,54 @@
1
1
  "use strict";
2
2
 
3
- const Crypto = require("crypto");
4
- const Boom = require("@hapi/boom");
5
- const { WAProto } = require("../../WAProto");
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.prepareWAMessageMediaNewsletter = exports.getRawMediaUploadDataNewsletter = void 0;
6
5
 
7
- /**
8
- * Upload khusus newsletter (RAW)
9
- * CODE BY REXXHAYANASI REFERENCE BY WHISKEYSOCKETS
10
- */
11
- function getWAUploadToServerNewsletter(config, refreshMediaConn) {
12
- return async (buffer, uploadOpts = {}) => {
13
- if (!Buffer.isBuffer(buffer)) {
14
- throw new Boom("Newsletter upload expects Buffer");
15
- }
6
+ const crypto_1 = require("crypto");
7
+ const boom_1 = require("@hapi/boom");
8
+ const WAProto_1 = require("../../WAProto");
16
9
 
17
- const mediaConn = await refreshMediaConn();
18
- if (!mediaConn || !mediaConn.hosts?.length) {
19
- throw new Boom("Failed to obtain media connection for newsletter");
20
- }
21
-
22
- const host = mediaConn.hosts[0];
23
- const url = `https://${host.hostname}${host.uploadPath}`;
24
-
25
- const res = await fetch(url, {
26
- method: "POST",
27
- body: buffer,
28
- headers: {
29
- "Content-Type": "application/octet-stream",
30
- "Content-Length": buffer.length,
31
- },
32
- agent: config.fetchAgent,
33
- });
34
-
35
- if (!res.ok) {
36
- throw new Boom(`Newsletter upload failed: ${res.status}`);
37
- }
38
-
39
- const json = await res.json();
40
-
41
- return {
42
- mediaUrl: json.url,
43
- directPath: json.direct_path,
44
- };
45
- };
46
- }
47
-
48
- /**
49
- * Ambil metadata RAW newsletter
50
- */
51
- async function getRawMediaUploadDataNewsletter(buffer) {
52
- const fileSha256 = Crypto.createHash("sha256").update(buffer).digest();
10
+ function getRawMediaUploadDataNewsletter(buffer) {
11
+ if (!Buffer.isBuffer(buffer)) {
12
+ throw new boom_1.Boom("Newsletter media must be Buffer");
13
+ }
14
+ const fileSha256 = (0, crypto_1.createHash)("sha256").update(buffer).digest();
53
15
  return {
54
16
  buffer,
55
17
  fileSha256,
56
- fileLength: buffer.length,
18
+ fileLength: buffer.length
57
19
  };
58
20
  }
21
+ exports.getRawMediaUploadDataNewsletter = getRawMediaUploadDataNewsletter;
59
22
 
60
- /**
61
- * Builder message newsletter (PTV / media)
62
- */
63
23
  async function prepareWAMessageMediaNewsletter(message, options) {
64
- const mediaType = Object.keys(message)[0];
65
- if (!mediaType) throw new Boom("Invalid newsletter media");
66
-
24
+ if (!options || typeof options.upload !== "function") {
25
+ throw new boom_1.Boom("upload function is required");
26
+ }
27
+ const mediaType = Object.keys(message || {})[0];
28
+ if (!mediaType) {
29
+ throw new boom_1.Boom("Invalid newsletter media");
30
+ }
67
31
  const buffer = message[mediaType];
68
32
  if (!Buffer.isBuffer(buffer)) {
69
- throw new Boom("Newsletter media must be Buffer");
33
+ throw new boom_1.Boom("Newsletter media must be Buffer");
70
34
  }
71
-
72
- const uploadData = await getRawMediaUploadDataNewsletter(buffer);
73
-
74
- const upload = getWAUploadToServerNewsletter(
75
- {
76
- fetchAgent: options.fetchAgent,
77
- },
78
- options.refreshMediaConn
79
- );
80
-
81
- const uploaded = await upload(buffer);
82
-
35
+ const uploadData = getRawMediaUploadDataNewsletter(buffer);
36
+ const uploaded = await options.upload(buffer, {
37
+ mediaType,
38
+ fileEncSha256B64: uploadData.fileSha256.toString("base64"),
39
+ newsletter: true
40
+ });
83
41
  const proto = {};
84
42
  proto[`${mediaType}Message`] = {
85
43
  url: uploaded.mediaUrl,
86
44
  directPath: uploaded.directPath,
87
45
  fileSha256: uploadData.fileSha256,
88
46
  fileLength: uploadData.fileLength,
89
- mimetype: options.mimetype,
47
+ mimetype: options.mimetype
90
48
  };
91
-
92
49
  if (mediaType === "video") {
93
50
  proto.videoMessage.ptv = true;
94
51
  }
95
-
96
- return WAProto.Message.fromObject(proto);
52
+ return WAProto_1.WAProto.Message.fromObject(proto);
97
53
  }
98
-
99
- module.exports = {
100
- prepareWAMessageMediaNewsletter,
101
- getRawMediaUploadDataNewsletter,
102
- getWAUploadToServerNewsletter,
103
- };
54
+ exports.prepareWAMessageMediaNewsletter = prepareWAMessageMediaNewsletter;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rexxhayanasi/elaina-baileys",
3
- "version": "1.2.0-rc.7",
3
+ "version": "1.2.0-rc.8",
4
4
  "description": "Custom Baileys WhatsApp API",
5
5
  "keywords": [
6
6
  "baileys",
@@ -17,6 +17,9 @@
17
17
  ],
18
18
  "homepage": "https://whatsapp.com/channel/0029Vb70uHbD8SE2w5Q9M107",
19
19
  "license": "MIT",
20
+ "publishConfig": {
21
+ "tag": "experimental"
22
+ },
20
23
  "author": "RexxHayanasi",
21
24
  "main": "lib/index.js",
22
25
  "types": "lib/index.d.ts",