@heavstaltech/api 1.0.3 → 1.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 CHANGED
@@ -223,6 +223,23 @@ console.log(decoded);
223
223
  // Output: SOS
224
224
  ```
225
225
 
226
+
227
+ #### Text to Speech (Google TTS)
228
+ Convert text into audio using Google's engine.
229
+
230
+ ```javascript
231
+ import { tools } from '@heavstaltech/api';
232
+ import fs from 'fs';
233
+
234
+ // 1. English (Default)
235
+ const buffer = await tools.tts("Hello World", "en");
236
+
237
+ // 2. Other Languages (e.g., Japanese 'ja', Spanish 'es')
238
+ const bufferJP = await tools.tts("Konnichiwa", "ja");
239
+
240
+ fs.writeFileSync("voice.mp3", buffer);
241
+ ```
242
+
226
243
  ---
227
244
 
228
245
  ## 📝 License
package/dist/index.d.mts CHANGED
@@ -123,6 +123,7 @@ declare const wattpad: (query: string) => Promise<any[]>;
123
123
  * Encodes Text to Morse OR Decodes Morse to Text
124
124
  */
125
125
  declare const morse: (input: string, mode?: "encode" | "decode") => Promise<string>;
126
+ declare const tts: (text: string, lang?: string) => Promise<Buffer>;
126
127
  declare const chords: (query: string) => Promise<any>;
127
128
 
128
129
  declare const downloader: {
@@ -150,6 +151,7 @@ declare const tools: {
150
151
  result: string;
151
152
  }[]>;
152
153
  morse: (input: string, mode?: "encode" | "decode") => Promise<string>;
154
+ tts: (text: string, lang?: string) => Promise<Buffer>;
153
155
  };
154
156
  declare const _default: {
155
157
  downloader: {
@@ -177,7 +179,8 @@ declare const _default: {
177
179
  result: string;
178
180
  }[]>;
179
181
  morse: (input: string, mode?: "encode" | "decode") => Promise<string>;
182
+ tts: (text: string, lang?: string) => Promise<Buffer>;
180
183
  };
181
184
  };
182
185
 
183
- export { AUTHOR, type Author, type SocialResult, type TikTokResult, type TwitterResult, type UtilsResult, type YouTubeResult, type YouTubeSearchResult, chords, _default as default, downloader, fbdl, igdl, morse, play, remini, search, ssweb, styleText, tiktok, tiktokSlide, tools, twitter, wattpad, twitter as xdl, search$1 as ytSearch, ytmp3, ytmp4 };
186
+ export { AUTHOR, type Author, type SocialResult, type TikTokResult, type TwitterResult, type UtilsResult, type YouTubeResult, type YouTubeSearchResult, chords, _default as default, downloader, fbdl, igdl, morse, play, remini, search, ssweb, styleText, tiktok, tiktokSlide, tools, tts, twitter, wattpad, twitter as xdl, search$1 as ytSearch, ytmp3, ytmp4 };
package/dist/index.d.ts CHANGED
@@ -123,6 +123,7 @@ declare const wattpad: (query: string) => Promise<any[]>;
123
123
  * Encodes Text to Morse OR Decodes Morse to Text
124
124
  */
125
125
  declare const morse: (input: string, mode?: "encode" | "decode") => Promise<string>;
126
+ declare const tts: (text: string, lang?: string) => Promise<Buffer>;
126
127
  declare const chords: (query: string) => Promise<any>;
127
128
 
128
129
  declare const downloader: {
@@ -150,6 +151,7 @@ declare const tools: {
150
151
  result: string;
151
152
  }[]>;
152
153
  morse: (input: string, mode?: "encode" | "decode") => Promise<string>;
154
+ tts: (text: string, lang?: string) => Promise<Buffer>;
153
155
  };
154
156
  declare const _default: {
155
157
  downloader: {
@@ -177,7 +179,8 @@ declare const _default: {
177
179
  result: string;
178
180
  }[]>;
179
181
  morse: (input: string, mode?: "encode" | "decode") => Promise<string>;
182
+ tts: (text: string, lang?: string) => Promise<Buffer>;
180
183
  };
181
184
  };
182
185
 
183
- export { AUTHOR, type Author, type SocialResult, type TikTokResult, type TwitterResult, type UtilsResult, type YouTubeResult, type YouTubeSearchResult, chords, _default as default, downloader, fbdl, igdl, morse, play, remini, search, ssweb, styleText, tiktok, tiktokSlide, tools, twitter, wattpad, twitter as xdl, search$1 as ytSearch, ytmp3, ytmp4 };
186
+ export { AUTHOR, type Author, type SocialResult, type TikTokResult, type TwitterResult, type UtilsResult, type YouTubeResult, type YouTubeSearchResult, chords, _default as default, downloader, fbdl, igdl, morse, play, remini, search, ssweb, styleText, tiktok, tiktokSlide, tools, tts, twitter, wattpad, twitter as xdl, search$1 as ytSearch, ytmp3, ytmp4 };
package/dist/index.js CHANGED
@@ -685,6 +685,31 @@ var morse = async (input, mode = "encode") => {
685
685
  }
686
686
  });
687
687
  };
688
+ var tts = async (text, lang = "en") => {
689
+ return new Promise(async (resolve, reject) => {
690
+ try {
691
+ const GOOGLE_TTS_URL = "https://translate.google.com/translate_tts";
692
+ if (text.length > 200) {
693
+ throw new Error("Text is too long. Maximum 200 characters.");
694
+ }
695
+ const { data } = await axios4__default.default.get(GOOGLE_TTS_URL, {
696
+ params: {
697
+ ie: "UTF-8",
698
+ q: text,
699
+ tl: lang,
700
+ client: "tw-ob"
701
+ // The magic key to bypass auth
702
+ },
703
+ responseType: "arraybuffer",
704
+ // We need raw audio data
705
+ headers: HEADERS
706
+ });
707
+ resolve(data);
708
+ } catch (error) {
709
+ reject(new Error(`TTS Failed: ${error.message}`));
710
+ }
711
+ });
712
+ };
688
713
  var chords = async (query) => {
689
714
  try {
690
715
  const searchUrl = `https://www.gitagram.com/?s=${encodeURIComponent(query).replace(/%20/g, "+")}`;
@@ -725,7 +750,8 @@ var tools = {
725
750
  ssweb,
726
751
  remini,
727
752
  styleText,
728
- morse
753
+ morse,
754
+ tts
729
755
  };
730
756
  var index_default = {
731
757
  downloader,
@@ -748,6 +774,7 @@ exports.styleText = styleText;
748
774
  exports.tiktok = tiktok;
749
775
  exports.tiktokSlide = tiktokSlide;
750
776
  exports.tools = tools;
777
+ exports.tts = tts;
751
778
  exports.twitter = twitter;
752
779
  exports.wattpad = wattpad;
753
780
  exports.xdl = twitter;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types.ts","../src/dl/tiktok.ts","../src/dl/social.ts","../src/dl/twitter.ts","../src/dl/youtube.ts","../src/utils/tools.ts","../src/index.ts"],"names":["axios","cheerio","USER_AGENTS","getRandomHeaders","cheerio2","cleanUrl","cheerio3","yts","ytdl","https","FormData","cheerio4","search"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,IAAM,MAAA,GAAiB;AAAA,EAC5B,IAAA,EAAM,eAAA;AAAA,EACN,MAAA,EAAQ;AACV;;;ACJA,IAAM,WAAA,GAAc;AAAA,EAClB,iHAAA;AAAA,EACA,uHAAA;AAAA,EACA,iHAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,mBAAmB,OAAO;AAAA,EAC9B,YAAA,EAAc,YAAY,IAAA,CAAK,KAAA,CAAM,KAAK,MAAA,EAAO,GAAI,WAAA,CAAY,MAAM,CAAC,CAAA;AAAA,EACxE,cAAA,EAAgB,kDAAA;AAAA,EAChB,QAAA,EAAU;AACZ,CAAA,CAAA;AAEA,IAAM,SAAA,GAAY,CAAC,GAAA,KAAgB,GAAA,GAAM,IAAI,OAAA,CAAQ,iBAAA,EAAmB,KAAK,CAAA,CAAE,OAAA,CAAQ,eAAA,EAAiB,EAAE,CAAA,CAAE,MAAK,GAAI,EAAA;AACrH,IAAM,QAAA,GAAW,CAAC,GAAA,KAAgB,GAAA,GAAM,IAAI,OAAA,CAAQ,QAAA,EAAU,OAAO,CAAA,GAAI,EAAA;AAEzE,IAAM,eAAA,GAAkB,OAAO,GAAA,KAAuC;AACpE,EAAA,IAAI;AACF,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAMA,uBAAA,CAAM,IAAA;AAAA,MAAK,qCAAA;AAAA,MAChC,IAAI,eAAA,CAAgB,EAAE,KAAA,EAAO,KAAK,CAAA;AAAA,MAClC,EAAE,OAAA,EAAS,gBAAA,EAAiB;AAAE,KAChC;AAEA,IAAA,IAAI,CAAC,IAAA,CAAK,KAAA,EAAO,MAAM,IAAI,MAAM,yBAAyB,CAAA;AAE1D,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ,MAAA;AAAA,MACR,MAAA,EAAQ,IAAA;AAAA,MACR,KAAA,EAAO,SAAA,CAAU,IAAA,CAAK,IAAI,CAAA;AAAA,MAC1B,KAAA,EAAO,QAAA,CAAS,IAAA,CAAK,KAAK,CAAA;AAAA,MAC1B,YAAA,EAAc,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,CAAC,CAAA,KAAW,CAAA,CAAE,CAAA,IAAK,CAAC,CAAA,CAAE,CAAC,GAAG,CAAC,CAAA;AAAA;AAAA,MAClE,SAAA,EAAW,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,CAAC,CAAA,KAAW,CAAA,CAAE,CAAA,EAAG,QAAA,CAAS,WAAW,CAAC,GAAG,CAAC,CAAA;AAAA,MAC9E,KAAA,EAAO,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,CAAC,CAAA,KAAW,CAAA,CAAE,CAAA,EAAG,QAAA,CAAS,OAAO,CAAC,GAAG,CAAC,CAAA;AAAA,MACtE,WAAA,EAAa,SAAA,CAAU,IAAA,CAAK,MAAM,CAAA;AAAA,MAClC,KAAA,EAAO;AAAA,KACT;AAAA,EAEF,SAAS,KAAA,EAAY;AACnB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,iBAAA,EAAoB,KAAA,CAAM,OAAO,CAAA,CAAE,CAAA;AAAA,EACrD;AACF,CAAA;AAMO,IAAM,MAAA,GAAS,OAAO,KAAA,KAAyC;AACpE,EAAA,OAAO,IAAI,OAAA,CAAQ,OAAO,OAAA,EAAS,MAAA,KAAW;AAC5C,IAAA,IAAI;AACF,MAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,CAAM,cAAc,CAAA;AACxC,MAAA,IAAI,IAAA;AAEJ,MAAA,IAAI;AACF,QAAA,IAAI,KAAA,EAAO;AACT,UAAA,MAAM,MAAA,GAAS,CAAA,+BAAA,EAAkC,kBAAA,CAAmB,KAAK,CAAC,CAAA,CAAA;AAC1E,UAAA,MAAM,QAAA,GAAW,MAAMA,uBAAA,CAAM,GAAA,CAAI,QAAQ,EAAE,OAAA,EAAS,gBAAA,EAAiB,EAAG,CAAA;AACxE,UAAA,IAAI,SAAS,IAAA,CAAK,IAAA,KAAS,GAAG,MAAM,IAAI,MAAM,8BAA8B,CAAA;AAC5E,UAAA,IAAA,GAAO,SAAS,IAAA,CAAK,IAAA;AAAA,QACvB,CAAA,MAAO;AACL,UAAA,MAAM,MAAA,GAAS,CAAA,qCAAA,CAAA;AACf,UAAA,MAAM,QAAA,GAAW,MAAMA,uBAAA,CAAM,IAAA;AAAA,YAAK,MAAA;AAAA,YAChC,IAAI,eAAA,CAAgB;AAAA,cAClB,QAAA,EAAU,KAAA;AAAA,cACV,KAAA,EAAO,GAAA;AAAA,cACP,MAAA,EAAQ,GAAA;AAAA,cACR,EAAA,EAAI;AAAA,aACL,CAAA;AAAA,YACD,EAAE,SAAS,EAAE,GAAG,kBAAiB,EAAG,QAAA,EAAU,uBAAsB;AAAE,WACxE;AAEA,UAAA,IAAI,CAAC,QAAA,CAAS,IAAA,CAAK,IAAA,EAAM,MAAA,IAAU,SAAS,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,MAAA,KAAW,CAAA,EAAG;AACzE,YAAA,MAAM,IAAI,KAAA,CAAM,CAAA,sBAAA,EAAyB,KAAK,CAAA,CAAE,CAAA;AAAA,UAClD;AACA,UAAA,IAAA,GAAO,QAAA,CAAS,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA;AAAA,QACpC;AAEA,QAAA,MAAM,MAAA,GAAuB;AAAA,UAC3B,MAAA,EAAQ,MAAA;AAAA,UACR,MAAA,EAAQ,IAAA;AAAA,UACR,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,cAAc,IAAA,CAAK,YAAA;AAAA,UACnB,cAAc,IAAA,CAAK,IAAA;AAAA,UACnB,WAAW,IAAA,CAAK,MAAA;AAAA,UAChB,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,OAAO,IAAA,CAAK,UAAA;AAAA,UACZ,OAAO,IAAA,CAAK,UAAA;AAAA,UACZ,UAAU,IAAA,CAAK,aAAA;AAAA,UACf,QAAQ,IAAA,CAAK,WAAA;AAAA,UACb,WAAW,IAAA,CAAK;AAAA,SAClB;AACA,QAAA,OAAA,CAAQ,MAAM,CAAA;AAAA,MAEhB,SAAS,YAAA,EAAc;AACrB,QAAA,IAAI,KAAA,EAAO;AACT,UAAA,OAAA,CAAQ,KAAK,qDAAqD,CAAA;AAClE,UAAA,MAAM,YAAA,GAAe,MAAM,eAAA,CAAgB,KAAK,CAAA;AAChD,UAAA,OAAA,CAAQ,YAAY,CAAA;AAAA,QACtB,CAAA,MAAO;AACL,UAAA,MAAM,YAAA;AAAA,QACR;AAAA,MACF;AAAA,IACF,SAAS,KAAA,EAAY;AACnB,MAAA,MAAA,CAAO;AAAA,QACL,MAAA,EAAQ,MAAA;AAAA,QACR,MAAA,EAAQ,KAAA;AAAA,QACR,OAAA,EAAS,MAAM,OAAA,IAAW;AAAA,OAC3B,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AACH;AAKO,IAAM,WAAA,GAAc,OAAO,GAAA,KAAuC;AACvE,EAAA,IAAI;AACF,IAAA,MAAM,QAAA,GAAW,MAAMA,uBAAA,CAAM,IAAA,CAAK,yBAAA,EAA2B;AAAA,MAC3D,EAAA,EAAI,GAAA;AAAA,MACJ,IAAA,EAAM,kCAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,MAAA,EAAQ,IAAA;AAAA,MACR,qBAAA,EAAuB,yCAAA;AAAA,MACvB,UAAA,EAAY;AAAA,KACd,EAAG;AAAA,MACD,SAAS,gBAAA;AAAiB,KAC3B,CAAA;AAED,IAAA,MAAM,CAAA,GAAYC,mBAAA,CAAA,IAAA,CAAK,QAAA,CAAS,IAAI,CAAA;AACpC,IAAA,MAAM,QAAA,GAAW,EAAE,yDAAyD,CAAA;AAC5E,IAAA,IAAI,SAAS,MAAA,KAAW,CAAA,EAAG,MAAM,IAAI,MAAM,wCAAwC,CAAA;AACnF,IAAA,MAAM,QAAA,GAAW,QAAA,CAAS,IAAA,CAAK,+CAA+C,CAAA;AAC9E,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ,MAAA;AAAA,MACR,MAAA,EAAQ,IAAA;AAAA,MACR,UAAU,QAAA,CAAS,IAAA,CAAK,iBAAiB,CAAA,CAAE,KAAK,OAAO,CAAA;AAAA,MACvD,OAAO,QAAA,CAAS,IAAA,CAAK,kDAAkD,CAAA,CAAE,IAAA,GAAO,IAAA,EAAK;AAAA,MACrF,YAAA,EAAc,QAAA,CAAS,IAAA,CAAK,GAAG,CAAA,CAAE,KAAA,EAAM,CAAE,IAAA,CAAK,KAAK,CAAA,CAAE,IAAA,CAAK,KAAK,CAAA;AAAA,MAC/D,UAAA,EAAY,SAAS,IAAA,CAAK,GAAG,EAAE,KAAA,EAAM,CAAE,KAAK,MAAM,CAAA;AAAA,MAClD,QAAA,EAAU,QAAA,CAAS,IAAA,CAAK,iBAAiB,CAAA,CAAE,IAAA,EAAK,CAAE,KAAA,CAAM,GAAG,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA;AAAA,MAC3E,KAAA,EAAO,QAAA,CAAS,EAAA,CAAG,CAAC,CAAA,CAAE,KAAK,MAAM,CAAA,CAAE,IAAA,EAAK,CAAE,IAAA,EAAK;AAAA,MAC/C,QAAA,EAAU,QAAA,CAAS,EAAA,CAAG,CAAC,CAAA,CAAE,KAAK,MAAM,CAAA,CAAE,IAAA,EAAK,CAAE,IAAA,EAAK;AAAA,MAClD,MAAA,EAAQ,QAAA,CAAS,EAAA,CAAG,CAAC,CAAA,CAAE,KAAK,MAAM,CAAA,CAAE,IAAA,EAAK,CAAE,IAAA,EAAK;AAAA,MAChD,SAAA,EAAW,QAAA,CAAS,EAAA,CAAG,CAAC,CAAA,CAAE,KAAK,MAAM,CAAA,CAAE,IAAA,EAAK,CAAE,IAAA,EAAK;AAAA,MACnD,KAAA,EAAO,QAAA,CAAS,EAAA,CAAG,CAAC,CAAA,CAAE,KAAK,MAAM,CAAA,CAAE,IAAA,EAAK,CAAE,IAAA;AAAK,KACjD;AAAA,EACF,SAAS,KAAA,EAAY;AAClB,IAAA,OAAO;AAAA,MACJ,MAAA,EAAQ,MAAA;AAAA,MACR,MAAA,EAAQ,KAAA;AAAA,MACR,KAAA,EAAO,OAAA;AAAA,MACP,OAAO,KAAA,CAAM;AAAA,KAChB;AAAA,EACH;AACF;AC1JA,IAAMC,YAAAA,GAAc;AAAA,EAClB,iHAAA;AAAA,EACA,uHAAA;AAAA,EACA,iHAAA;AAAA,EACA;AACF,CAAA;AACA,IAAMC,oBAAmB,OAAO;AAAA,EAC9B,YAAA,EAAcD,aAAY,IAAA,CAAK,KAAA,CAAM,KAAK,MAAA,EAAO,GAAIA,YAAAA,CAAY,MAAM,CAAC,CAAA;AAAA,EACxE,QAAA,EAAU,uFAAA;AAAA,EACV,iBAAA,EAAmB,gBAAA;AAAA,EACnB,iBAAA,EAAmB,mBAAA;AAAA,EACnB,YAAA,EAAc;AAChB,CAAA,CAAA;AAMO,IAAM,IAAA,GAAO,OAAO,GAAA,KAAyC;AAClE,EAAA,OAAO,IAAI,OAAA,CAAQ,OAAO,OAAA,EAAS,MAAA,KAAW;AAC5C,IAAA,IAAI;AACF,MAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAMF,uBAAAA,CAAM,IAAA;AAAA,QAAK,6BAAA;AAAA,QAChC,IAAI,eAAA,CAAgB;AAAA,UAClB,EAAA,EAAI,GAAA;AAAA,UACJ,MAAA,EAAQ;AAAA,SACT,CAAA;AAAA,QACD;AAAA,UACE,OAAA,EAAS;AAAA,YACP,GAAGG,iBAAAA,EAAiB;AAAA,YACpB,cAAA,EAAgB,kDAAA;AAAA,YAChB,QAAA,EAAU;AAAA;AAAA;AACZ;AACF,OACF;AAEA,MAAA,MAAM,CAAA,GAAYC,yBAAK,IAAI,CAAA;AAC3B,MAAA,MAAM,UAA0B,EAAC;AACjC,MAAA,MAAM,KAAA,GAAQ,EAAE,uBAAuB,CAAA,CAAE,GAAG,CAAC,CAAA,CAAE,IAAA,EAAK,CAAE,IAAA,EAAK;AAC3D,MAAA,MAAM,YAAY,CAAA,CAAE,iCAAiC,CAAA,CAAE,IAAA,CAAK,KAAK,CAAA,IAAK,EAAA;AACtE,MAAA,CAAA,CAAE,gBAAgB,CAAA,CAAE,IAAA,CAAK,CAAC,GAAG,EAAA,KAAO;AAClC,QAAA,MAAM,IAAA,GAAO,CAAA,CAAE,EAAE,CAAA,CAAE,KAAK,MAAM,CAAA;AAC9B,QAAA,IAAI,IAAA,EAAM;AACR,UAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,YACX,MAAA,EAAQ,MAAA;AAAA,YACR,MAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAM,OAAA;AAAA,YACN,OAAO,KAAA,IAAS,gBAAA;AAAA,YAChB,SAAA;AAAA,YACA,GAAA,EAAK;AAAA,WACN,CAAA;AAAA,QACH;AAAA,MACF,CAAC,CAAA;AAED,MAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,QAAA,MAAM,UAAA,GAAa,CAAA,CAAE,GAAG,CAAA,CAAE,KAAK,MAAM,CAAA;AACrC,QAAA,IAAG,UAAA,IAAc,UAAA,CAAW,UAAA,CAAW,MAAM,CAAA,EAAG;AAC7C,UAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,YACZ,MAAA,EAAQ,MAAA;AAAA,YACR,MAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAM,OAAA;AAAA,YACN,KAAA;AAAA,YACA,SAAA;AAAA,YACA,GAAA,EAAK;AAAA,WACL,CAAA;AAAA,QACJ,CAAA,MAAO;AACF,UAAA,MAAA,CAAO,IAAI,KAAA,CAAM,kDAAkD,CAAC,CAAA;AACpE,UAAA;AAAA,QACL;AAAA,MACF;AACA,MAAA,OAAA,CAAQ,OAAO,CAAA;AAAA,IAEjB,SAAS,KAAA,EAAY;AACnB,MAAA,MAAA,CAAO;AAAA,QACL,MAAA,EAAQ,MAAA;AAAA,QACR,MAAA,EAAQ,KAAA;AAAA,QACR,OAAA,EAAS,MAAM,OAAA,IAAW;AAAA,OAC3B,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AACH;AAMO,IAAM,IAAA,GAAO,OAAO,GAAA,KAAyC;AAClE,EAAA,OAAO,IAAI,OAAA,CAAQ,OAAO,OAAA,EAAS,MAAA,KAAW;AAC5C,IAAA,IAAI;AACF,MAAA,MAAM,eAAA,GAAkB,MAAMJ,uBAAAA,CAAM,GAAA,CAAI,oBAAA,EAAsB;AAAA,QAC5D,SAASG,iBAAAA;AAAiB,OAC3B,CAAA;AAED,MAAA,MAAM,EAAA,GAAaC,mBAAA,CAAA,IAAA,CAAK,eAAA,CAAgB,IAAI,CAAA;AAC5C,MAAA,MAAM,OAAA,GAAU,EAAA,CAAG,qBAAqB,CAAA,CAAE,GAAA,EAAI;AAC9C,MAAA,MAAM,MAAA,GAAS,EAAA,CAAG,oBAAoB,CAAA,CAAE,GAAA,EAAI;AAC5C,MAAA,MAAM,MAAA,GAAS,EAAA,CAAG,oBAAoB,CAAA,CAAE,GAAA,EAAI;AAC5C,MAAA,MAAM,UAAU,eAAA,CAAgB,OAAA,CAAQ,YAAY,CAAA,EAAG,IAAA,CAAK,GAAG,CAAA,IAAK,EAAA;AAEpE,MAAA,IAAI,CAAC,MAAA,EAAQ,MAAM,IAAI,MAAM,iCAAiC,CAAA;AAC9D,MAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAMJ,uBAAAA,CAAM,IAAA;AAAA,QAC3B,4BAAA;AAAA,QACA,IAAI,eAAA,CAAgB;AAAA,UAClB,IAAA,EAAM,GAAA;AAAA,UACN,OAAA;AAAA,UACA,MAAA;AAAA,UACA;AAAA,SACD,CAAA;AAAA,QACD;AAAA,UACE,OAAA,EAAS;AAAA,YACP,GAAGG,iBAAAA,EAAiB;AAAA,YACpB,cAAA,EAAgB,mCAAA;AAAA,YAChB,QAAA,EAAU,OAAA;AAAA,YACV,QAAA,EAAU,mBAAA;AAAA,YACV,SAAA,EAAW;AAAA;AACb;AACF,OACF;AAEA,MAAA,MAAM,CAAA,GAAYC,yBAAK,IAAI,CAAA;AAC3B,MAAA,MAAM,SAAyB,EAAC;AAChC,MAAA,CAAA,CAAE,OAAO,CAAA,CAAE,IAAA,CAAK,WAAY;AAC1B,QAAA,MAAM,EAAA,GAAK,EAAE,IAAI,CAAA;AACjB,QAAA,MAAM,MAAM,EAAA,CAAG,IAAA,CAAK,QAAQ,CAAA,CAAE,KAAK,KAAK,CAAA;AACxC,QAAA,MAAM,MAAA,GAAS,EAAA,CAAG,IAAA,CAAK,QAAQ,CAAA;AAC/B,QAAA,IAAI,GAAA,EAAK;AACP,UAAA,MAAA,CAAO,IAAA,CAAK;AAAA,YACV,MAAA,EAAQ,MAAA;AAAA,YACR,MAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAM,OAAA;AAAA,YACN,SAAA,EAAW,MAAA;AAAA,YACX,GAAA,EAAK;AAAA,WACN,CAAA;AAAA,QACH;AAAA,MACF,CAAC,CAAA;AAED,MAAA,CAAA,CAAE,eAAe,CAAA,CAAE,IAAA,CAAK,WAAY;AAClC,QAAA,MAAM,EAAA,GAAK,EAAE,IAAI,CAAA;AACjB,QAAA,MAAM,GAAA,GAAM,EAAA,CAAG,IAAA,CAAK,KAAK,CAAA;AACzB,QAAA,IAAI,GAAA,EAAK;AACP,UAAA,MAAA,CAAO,IAAA,CAAK;AAAA,YACV,MAAA,EAAQ,MAAA;AAAA,YACR,MAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAM,OAAA;AAAA,YACN,SAAA,EAAW,GAAA;AAAA,YACX,GAAA,EAAK;AAAA,WACN,CAAA;AAAA,QACH;AAAA,MACF,CAAC,CAAA;AAED,MAAA,IAAG,MAAA,CAAO,WAAW,CAAA,EAAG;AACrB,QAAA,CAAA,CAAE,cAAc,CAAA,CAAE,IAAA,CAAK,CAAC,GAAG,EAAA,KAAO;AAC9B,UAAA,MAAM,IAAA,GAAO,CAAA,CAAE,EAAE,CAAA,CAAE,KAAK,MAAM,CAAA;AAC9B,UAAA,IAAG,IAAA,IAAQ,SAAS,GAAA,EAAK;AACrB,YAAA,MAAA,CAAO,IAAA,CAAK;AAAA,cACT,MAAA,EAAQ,MAAA;AAAA,cACR,MAAA,EAAQ,IAAA;AAAA,cACR,IAAA,EAAM,OAAA;AAAA,cACN,GAAA,EAAK;AAAA,aACP,CAAA;AAAA,UACL;AAAA,QACJ,CAAC,CAAA;AAAA,MACJ;AAEA,MAAA,IAAI,MAAA,CAAO,WAAW,CAAA,EAAG;AACvB,QAAA,MAAM,WAAW,CAAA,CAAE,eAAe,CAAA,CAAE,IAAA,GAAO,IAAA,EAAK;AAChD,QAAA,MAAA,CAAO,IAAI,KAAA,CAAM,QAAA,IAAY,2CAA2C,CAAC,CAAA;AAAA,MAC3E,CAAA,MAAO;AACL,QAAA,OAAA,CAAQ,MAAM,CAAA;AAAA,MAChB;AAAA,IACF,SAAS,KAAA,EAAY;AACnB,MAAA,MAAA,CAAO;AAAA,QACL,MAAA,EAAQ,MAAA;AAAA,QACR,MAAA,EAAQ,KAAA;AAAA,QACR,OAAA,EAAS,MAAM,OAAA,IAAW;AAAA,OAC3B,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AACH;AClLA,IAAMF,YAAAA,GAAc;AAAA,EAClB,iHAAA;AAAA,EACA;AACF,CAAA;AACA,IAAMC,oBAAmB,OAAO;AAAA,EAC9B,YAAA,EAAcD,aAAY,IAAA,CAAK,KAAA,CAAM,KAAK,MAAA,EAAO,GAAIA,YAAAA,CAAY,MAAM,CAAC,CAAA;AAAA,EACxE,cAAA,EAAgB,mCAAA;AAAA,EAChB,QAAA,EAAU,oBAAA;AAAA,EACV,SAAA,EAAW;AACb,CAAA,CAAA;AAMO,IAAM,OAAA,GAAU,OAAO,GAAA,KAAwC;AACpE,EAAA,OAAO,IAAI,OAAA,CAAQ,OAAO,OAAA,EAAS,MAAA,KAAW;AAC5C,IAAA,IAAI;AACF,MAAA,MAAMG,SAAAA,GAAW,GAAA,CAAI,OAAA,CAAQ,OAAA,EAAS,aAAa,CAAA;AACnD,MAAA,MAAM,SAAS,IAAI,eAAA,CAAgB,EAAE,GAAA,EAAKA,WAAU,CAAA;AACpD,MAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAML,uBAAAA,CAAM,IAAA,CAAK,mCAAmC,MAAA,EAAQ;AAAA,QAC3E,SAASG,iBAAAA;AAAiB,OAC3B,CAAA;AACD,MAAA,MAAM,CAAA,GAAYG,yBAAK,IAAI,CAAA;AAC3B,MAAA,MAAM,OAAO,CAAA,CAAE,yCAAyC,CAAA,CAAE,IAAA,GAAO,IAAA,EAAK;AACtE,MAAA,MAAM,KAAA,GAAQ,CAAA,CAAE,wBAAwB,CAAA,CAAE,KAAK,KAAK,CAAA;AACpD,MAAA,MAAM,QAAA,GAAW,CAAA,CAAE,+CAA+C,CAAA,CAAE,KAAK,MAAM,CAAA;AAC/E,MAAA,MAAM,QAAA,GAAW,CAAA,CAAE,uCAAuC,CAAA,CAAE,KAAK,MAAM,CAAA;AACvE,MAAA,IAAI,KAAA,GAAQ,CAAA,CAAE,gIAAgI,CAAA,CAAE,KAAK,MAAM,CAAA;AAC3J,MAAA,IAAI,SAAS,CAAC,KAAA,CAAM,WAAW,MAAM,CAAA,UAAW,qBAAA,GAAwB,KAAA;AACxE,MAAA,IAAI,CAAC,QAAA,IAAY,CAAC,QAAA,EAAU;AAC1B,QAAA,MAAM,IAAI,MAAM,8DAA8D,CAAA;AAAA,MAChF;AACA,MAAA,MAAM,MAAA,GAAwB;AAAA,QAC5B,MAAA,EAAQ,MAAA;AAAA,QACR,MAAA,EAAQ,IAAA;AAAA,QACR,MAAM,IAAA,IAAQ,iBAAA;AAAA,QACd,WAAW,KAAA,IAAS,EAAA;AAAA,QACpB,QAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,OAAA,CAAQ,MAAM,CAAA;AAAA,IAChB,SAAS,KAAA,EAAY;AACnB,MAAA,MAAA,CAAO;AAAA,QACL,MAAA,EAAQ,MAAA;AAAA,QACR,MAAA,EAAQ,KAAA;AAAA,QACR,OAAA,EAAS,MAAM,OAAA,IAAW;AAAA,OAC3B,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AACH;AC/CO,IAAM,MAAA,GAAS,OAAO,KAAA,KAAkD;AAC7E,EAAA,OAAO,IAAI,OAAA,CAAQ,OAAO,OAAA,EAAS,MAAA,KAAW;AAC5C,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAMC,oBAAA,CAAI,KAAK,CAAA;AAC9B,MAAA,IAAI,CAAC,MAAA,CAAO,GAAA,IAAO,MAAA,CAAO,GAAA,CAAI,WAAW,CAAA,EAAG;AAC1C,QAAA,OAAO,MAAA,CAAO,IAAI,KAAA,CAAM,8BAA8B,CAAC,CAAA;AAAA,MACzD;AACA,MAAA,MAAM,IAAA,GAA8B,MAAA,CAAO,GAAA,CAAI,GAAA,CAAI,CAAC,IAAA,KAAc;AAChE,QAAA,OAAO;AAAA,UACL,MAAM,IAAA,CAAK,IAAA;AAAA,UACX,KAAK,IAAA,CAAK,GAAA;AAAA,UACV,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,aAAa,IAAA,CAAK,WAAA;AAAA,UAClB,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,WAAW,IAAA,CAAK,SAAA;AAAA,UAChB,SAAU,IAAA,CAAa,OAAA;AAAA,UACvB,WAAY,IAAA,CAAa,SAAA;AAAA,UACzB,OAAQ,IAAA,CAAa,KAAA;AAAA,UACrB,KAAM,IAAA,CAAa,GAAA;AAAA,UACnB,MAAA,EAAS,KAAa,MAAA,GAAS;AAAA,YAC7B,IAAA,EAAO,KAAa,MAAA,CAAO,IAAA;AAAA,YAC3B,GAAA,EAAM,KAAa,MAAA,CAAO;AAAA,WAC5B,GAAI,KAAA;AAAA,SACN;AAAA,MACF,CAAC,CAAA;AACD,MAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,IACd,SAAS,KAAA,EAAY;AACnB,MAAA,MAAA,CAAO;AAAA,QACL,OAAA,EAAS,MAAM,OAAA,IAAW;AAAA,OAC3B,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AACH;AAKO,IAAM,KAAA,GAAQ,OAAO,GAAA,KAAwC;AAClE,EAAA,OAAO,IAAI,OAAA,CAAQ,OAAO,OAAA,EAAS,MAAA,KAAW;AAC5C,IAAA,IAAI;AACF,MAAA,IAAI,CAACC,qBAAA,CAAK,WAAA,CAAY,GAAG,CAAA,EAAG;AAC1B,QAAA,MAAM,IAAI,MAAM,qBAAqB,CAAA;AAAA,MACvC;AACA,MAAA,MAAM,IAAA,GAAO,MAAMA,qBAAA,CAAK,OAAA,CAAQ,GAAG,CAAA;AACnC,MAAA,MAAM,MAAA,GAASA,qBAAA,CAAK,YAAA,CAAa,IAAA,CAAK,OAAA,EAAS;AAAA,QAC7C,OAAA,EAAS,cAAA;AAAA,QACT,MAAA,EAAQ;AAAA,OACT,CAAA;AACD,MAAA,IAAI,CAAC,MAAA,EAAQ,MAAM,IAAI,MAAM,uBAAuB,CAAA;AACpD,MAAA,MAAM,MAAA,GAAwB;AAAA,QAC5B,MAAA,EAAQ,MAAA;AAAA,QACR,KAAA,EAAO,KAAK,YAAA,CAAa,KAAA;AAAA,QACzB,SAAA,EAAW,KAAK,YAAA,CAAa,UAAA,CAAW,KAAK,YAAA,CAAa,UAAA,CAAW,MAAA,GAAS,CAAC,CAAA,CAAE,GAAA;AAAA;AAAA,QACjF,OAAA,EAAS,KAAK,YAAA,CAAa,gBAAA;AAAA,QAC3B,SAAA,EAAW,KAAK,YAAA,CAAa,WAAA;AAAA,QAC7B,KAAA,EAAO,KAAK,YAAA,CAAa,SAAA;AAAA,QACzB,QAAA,EAAU,KAAK,YAAA,CAAa,aAAA;AAAA,QAC5B,KAAK,MAAA,CAAO;AAAA,OACd;AACA,MAAA,OAAA,CAAQ,MAAM,CAAA;AAAA,IAChB,SAAS,KAAA,EAAY;AACnB,MAAA,MAAA,CAAO;AAAA,QACL,MAAA,EAAQ,MAAA;AAAA,QACR,MAAA,EAAQ,KAAA;AAAA,QACR,OAAA,EAAS,MAAM,OAAA,IAAW;AAAA,OAC3B,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AACH;AAKO,IAAM,KAAA,GAAQ,OAAO,GAAA,KAAwC;AAClE,EAAA,OAAO,IAAI,OAAA,CAAQ,OAAO,OAAA,EAAS,MAAA,KAAW;AAC5C,IAAA,IAAI;AACF,MAAA,IAAI,CAACA,qBAAA,CAAK,WAAA,CAAY,GAAG,CAAA,EAAG;AAC1B,QAAA,MAAM,IAAI,MAAM,qBAAqB,CAAA;AAAA,MACvC;AACA,MAAA,MAAM,IAAA,GAAO,MAAMA,qBAAA,CAAK,OAAA,CAAQ,GAAG,CAAA;AACnC,MAAA,MAAM,MAAA,GAASA,qBAAA,CAAK,YAAA,CAAa,IAAA,CAAK,OAAA,EAAS;AAAA,QAC7C,OAAA,EAAS,SAAA;AAAA,QACT,MAAA,EAAQ,CAAC,CAAA,KAAM,CAAA,CAAE,QAAA,KAAa,QAAQ,CAAA,CAAE,QAAA,KAAa,IAAA,IAAQ,CAAA,CAAE,SAAA,KAAc;AAAA,OAC9E,CAAA;AACD,MAAA,MAAM,WAAA,GAAc,MAAA,IAAUA,qBAAA,CAAK,YAAA,CAAa,KAAK,OAAA,EAAS;AAAA,QAC5D,OAAA,EAAS,SAAA;AAAA,QACT,QAAQ,CAAC,CAAA,KAAM,EAAE,QAAA,KAAa,IAAA,IAAQ,EAAE,QAAA,KAAa;AAAA,OACtD,CAAA;AACD,MAAA,IAAI,CAAC,WAAA,EAAa,MAAM,IAAI,MAAM,uBAAuB,CAAA;AACzD,MAAA,MAAM,MAAA,GAAwB;AAAA,QAC5B,MAAA,EAAQ,MAAA;AAAA,QACR,KAAA,EAAO,KAAK,YAAA,CAAa,KAAA;AAAA,QACzB,SAAA,EAAW,KAAK,YAAA,CAAa,UAAA,CAAW,KAAK,YAAA,CAAa,UAAA,CAAW,MAAA,GAAS,CAAC,CAAA,CAAE,GAAA;AAAA,QACjF,OAAA,EAAS,KAAK,YAAA,CAAa,gBAAA;AAAA,QAC3B,SAAA,EAAW,KAAK,YAAA,CAAa,WAAA;AAAA,QAC7B,KAAA,EAAO,KAAK,YAAA,CAAa,SAAA;AAAA,QACzB,QAAA,EAAU,KAAK,YAAA,CAAa,aAAA;AAAA,QAC5B,KAAK,WAAA,CAAY;AAAA,OACnB;AACA,MAAA,OAAA,CAAQ,MAAM,CAAA;AAAA,IAChB,SAAS,KAAA,EAAY;AACnB,MAAA,MAAA,CAAO;AAAA,QACL,MAAA,EAAQ,MAAA;AAAA,QACR,MAAA,EAAQ,KAAA;AAAA,QACR,OAAA,EAAS,MAAM,OAAA,IAAW;AAAA,OAC3B,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AACH;AAMO,IAAM,IAAA,GAAO,OAAO,KAAA,EAAe,IAAA,GAAsB,KAAA,KAAkC;AAChG,EAAA,IAAI;AACF,IAAA,MAAM,aAAA,GAAgB,MAAMD,oBAAA,CAAI,KAAK,CAAA;AACrC,IAAA,MAAM,MAAA,GAAS,cAAc,GAAA,CAAI,MAAA,CAAO,CAAC,CAAA,KAAW,CAAA,CAAE,SAAS,OAAO,CAAA;AACtE,IAAA,IAAI,MAAA,CAAO,WAAW,CAAA,EAAG;AACvB,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,4BAAA,EAA+B,KAAK,CAAA,CAAE,CAAA;AAAA,IACxD;AACA,IAAA,MAAM,UAAA,GAAa,OAAO,CAAC,CAAA;AAC3B,IAAA,IAAI,SAAS,KAAA,EAAO;AAClB,MAAA,OAAO,MAAM,KAAA,CAAM,UAAA,CAAW,GAAG,CAAA;AAAA,IACnC,CAAA,MAAO;AACL,MAAA,OAAO,MAAM,KAAA,CAAM,UAAA,CAAW,GAAG,CAAA;AAAA,IACnC;AAAA,EACF,SAAS,KAAA,EAAY;AACnB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,aAAA,EAAgB,KAAA,CAAM,OAAO,CAAA,CAAE,CAAA;AAAA,EACjD;AACF;ACnIA,IAAM,OAAA,GAAU;AAAA,EACd,YAAA,EAAc,iHAAA;AAAA,EACd,QAAA,EAAU;AACZ,CAAA;AAEA,IAAM,SAAA,GAAY,IAAIE,sBAAA,CAAM,KAAA,CAAM;AAAA,EAChC,kBAAA,EAAoB,KAAA;AAAA,EACpB,UAAA,EAAY;AACd,CAAC,CAAA;AAED,IAAM,SAAA,GAAoC;AAAA,EACxC,GAAA,EAAK,IAAA;AAAA,EAAM,GAAA,EAAK,MAAA;AAAA,EAAQ,GAAA,EAAK,MAAA;AAAA,EAAQ,GAAA,EAAK,KAAA;AAAA,EAAO,GAAA,EAAK,GAAA;AAAA,EAAK,GAAA,EAAK,MAAA;AAAA,EAChE,GAAA,EAAK,KAAA;AAAA,EAAO,GAAA,EAAK,MAAA;AAAA,EAAQ,GAAA,EAAK,IAAA;AAAA,EAAM,GAAA,EAAK,MAAA;AAAA,EAAQ,GAAA,EAAK,KAAA;AAAA,EAAO,GAAA,EAAK,MAAA;AAAA,EAClE,GAAA,EAAK,IAAA;AAAA,EAAM,GAAA,EAAK,IAAA;AAAA,EAAM,GAAA,EAAK,KAAA;AAAA,EAAO,GAAA,EAAK,MAAA;AAAA,EAAQ,GAAA,EAAK,MAAA;AAAA,EAAQ,GAAA,EAAK,KAAA;AAAA,EACjE,GAAA,EAAK,KAAA;AAAA,EAAO,GAAA,EAAK,GAAA;AAAA,EAAK,GAAA,EAAK,KAAA;AAAA,EAAO,GAAA,EAAK,MAAA;AAAA,EAAQ,GAAA,EAAK,KAAA;AAAA,EAAO,GAAA,EAAK,MAAA;AAAA,EAChE,GAAA,EAAK,MAAA;AAAA,EAAQ,GAAA,EAAK,MAAA;AAAA,EAClB,GAAA,EAAK,OAAA;AAAA,EAAS,GAAA,EAAK,OAAA;AAAA,EAAS,GAAA,EAAK,OAAA;AAAA,EAAS,GAAA,EAAK,OAAA;AAAA,EAAS,GAAA,EAAK,OAAA;AAAA,EAC7D,GAAA,EAAK,OAAA;AAAA,EAAS,GAAA,EAAK,OAAA;AAAA,EAAS,GAAA,EAAK,OAAA;AAAA,EAAS,GAAA,EAAK,OAAA;AAAA,EAAS,GAAA,EAAK,OAAA;AAAA,EAC7D,GAAA,EAAK,QAAA;AAAA,EAAU,GAAA,EAAK,QAAA;AAAA,EAAU,GAAA,EAAK,QAAA;AAAA,EAAU,GAAA,EAAK,QAAA;AAAA,EAAU,GAAA,EAAK,QAAA;AAAA,EACjE,GAAA,EAAK,OAAA;AAAA,EAAS,GAAA,EAAK,OAAA;AAAA,EAAS,GAAA,EAAK,QAAA;AAAA,EAAU,GAAA,EAAK,OAAA;AAAA,EAAS,GAAA,EAAK,QAAA;AAAA,EAC9D,GAAA,EAAK,QAAA;AAAA,EAAU,GAAA,EAAK,OAAA;AAAA,EAAS,GAAA,EAAK,OAAA;AAAA,EAAS,GAAA,EAAK,QAAA;AAAA,EAAU,GAAA,EAAK,QAAA;AAAA,EAC/D,GAAA,EAAK,QAAA;AAAA,EAAU,GAAA,EAAK,SAAA;AAAA,EAAW,GAAA,EAAK,QAAA;AAAA,EACpC,GAAA,EAAK;AACP,CAAA;AACA,IAAM,gBAAgB,MAAA,CAAO,WAAA;AAAA,EAC3B,MAAA,CAAO,OAAA,CAAQ,SAAS,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,IAAA,EAAM,IAAI,CAAA,KAAM,CAAC,IAAA,EAAM,IAAI,CAAC;AAC9D,CAAA;AAEO,IAAM,KAAA,GAAQ,OAAO,GAAA,EAAa,MAAA,GAAyC,SAAA,KAA+B;AAC/G,EAAA,OAAO,IAAI,OAAA,CAAQ,OAAO,OAAA,EAAS,MAAA,KAAW;AAC5C,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,mCAAA;AAChB,MAAA,MAAM,KAAA,GAAQ,EAAE,GAAA,EAAU,MAAA,EAAgB,YAAY,CAAA,EAAE;AACxD,MAAA,MAAM,EAAE,IAAA,EAAM,OAAA,EAAQ,GAAI,MAAMT,uBAAAA,CAAM,IAAA;AAAA,QAAK,GAAG,OAAO,CAAA,YAAA,CAAA;AAAA,QACnD,IAAI,gBAAgB,KAAY,CAAA;AAAA,QAAG;AAAA,UACnC,SAAS,EAAE,cAAA,EAAgB,oDAAoD,YAAA,EAAc,OAAA,CAAQ,YAAY,CAAA;AAAE;AACrH,OAAC;AACD,MAAA,IAAI,KAAK,MAAA,KAAW,SAAA,EAAW,MAAM,IAAI,MAAM,8BAA8B,CAAA;AAC7E,MAAA,MAAM,UAAU,OAAA,CAAQ,YAAY,CAAA,EAAG,IAAA,CAAK,EAAE,CAAA,IAAK,EAAA;AACnD,MAAA,MAAM,aAAA,GAAgB,MAAMA,uBAAAA,CAAM,GAAA,CAAI,GAAG,OAAO,CAAA,CAAA,EAAI,IAAA,CAAK,IAAI,CAAA,CAAA,EAAI;AAAA,QAC/D,SAAS,EAAE,QAAA,EAAU,SAAS,YAAA,EAAc,OAAA,CAAQ,YAAY,CAAA,EAAE;AAAA,QAClE,YAAA,EAAc;AAAA,OACf,CAAA;AACD,MAAA,OAAA,CAAQ,cAAc,IAAI,CAAA;AAAA,IAC5B,SAAS,KAAA,EAAY;AACnB,MAAA,MAAA,CAAO,IAAI,KAAA,CAAM,CAAA,cAAA,EAAiB,KAAA,CAAM,OAAO,EAAE,CAAC,CAAA;AAAA,IACpD;AAAA,EACF,CAAC,CAAA;AACH;AAEO,IAAM,MAAA,GAAS,OAAO,QAAA,EAAkB,MAAA,GAA2C,SAAA,KAA+B;AACvH,EAAA,OAAO,IAAI,OAAA,CAAQ,OAAO,OAAA,EAAS,MAAA,KAAW;AAC5C,IAAA,IAAI;AACF,MAAA,MAAM,YAAA,GAAe,CAAC,SAAA,EAAW,SAAA,EAAW,QAAQ,CAAA;AACpD,MAAA,MAAM,cAAA,GAAiB,YAAA,CAAa,QAAA,CAAS,MAAM,IAAI,MAAA,GAAS,SAAA;AAChE,MAAA,MAAM,SAAA,GAAY,MAAMA,uBAAAA,CAAM,GAAA,CAAI,UAAU,EAAE,YAAA,EAAc,eAAe,CAAA;AAC3E,MAAA,MAAM,IAAA,GAAO,IAAIU,yBAAA,EAAS;AAC1B,MAAA,IAAA,CAAK,MAAA,CAAO,iBAAiB,CAAA,EAAG;AAAA,QAC9B,MAAA,EAAQ,EAAE,2BAAA,EAA6B,QAAA,EAAU,eAAe,oCAAA;AAAqC,OACtG,CAAA;AACD,MAAA,IAAA,CAAK,OAAO,OAAA,EAAS,MAAA,CAAO,IAAA,CAAK,SAAA,CAAU,IAAI,CAAA,EAAG;AAAA,QAChD,QAAA,EAAU,wBAAA;AAAA,QACV,WAAA,EAAa;AAAA,OACd,CAAA;AACD,MAAA,MAAM,GAAA,GAAM,mCAAmC,cAAc,CAAA,CAAA;AAC7D,MAAA,MAAM,QAAA,GAAW,MAAMV,uBAAAA,CAAM,IAAA,CAAK,KAAK,IAAA,EAAM;AAAA,QAC3C,OAAA,EAAS;AAAA,UACP,GAAG,KAAK,UAAA,EAAW;AAAA,UACnB,YAAA,EAAc,cAAA;AAAA,UACd,YAAA,EAAc,YAAA;AAAA,UACd,iBAAA,EAAmB;AAAA,SACrB;AAAA,QACA,YAAA,EAAc,aAAA;AAAA,QACd,UAAA,EAAY;AAAA,OACb,CAAA;AACD,MAAA,OAAA,CAAQ,SAAS,IAAI,CAAA;AAAA,IACvB,SAAS,KAAA,EAAY;AACnB,MAAA,MAAA,CAAO,IAAI,KAAA,CAAM,CAAA,eAAA,EAAkB,KAAA,CAAM,OAAO,EAAE,CAAC,CAAA;AAAA,IACrD;AAAA,EACF,CAAC,CAAA;AACH;AAEO,IAAM,SAAA,GAAY,OAAO,IAAA,KAA8E;AAC5G,EAAA,OAAO,IAAI,OAAA,CAAQ,OAAO,OAAA,EAAS,MAAA,KAAW;AAC5C,IAAA,IAAI;AACF,MAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAMA,uBAAAA,CAAM,IAAI,CAAA,kCAAA,EAAqC,kBAAA,CAAmB,IAAI,CAAC,CAAA,CAAE,CAAA;AAChG,MAAA,MAAM,CAAA,GAAYW,yBAAK,IAAI,CAAA;AAC3B,MAAA,MAAM,SAA6D,EAAC;AACpE,MAAA,CAAA,CAAE,oBAAoB,CAAA,CAAE,IAAA,CAAK,CAAC,GAAG,EAAA,KAAO;AACtC,QAAA,MAAM,IAAA,GAAO,CAAA,CAAE,EAAE,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA,CAAE,KAAA,EAAM,CAAE,IAAA,EAAK,CAAE,IAAA,EAAK;AAClD,QAAA,MAAM,MAAA,GAAS,CAAA,CAAE,EAAE,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA,CAAE,EAAA,CAAG,CAAC,CAAA,CAAE,IAAA,EAAK,CAAE,IAAA,EAAK;AAClD,QAAA,IAAI,QAAQ,MAAA,EAAQ;AAClB,UAAA,MAAA,CAAO,KAAK,EAAE,MAAA,EAAQ,QAAQ,IAAA,EAAY,MAAA,EAAQ,QAAQ,CAAA;AAAA,QAC5D;AAAA,MACF,CAAC,CAAA;AACD,MAAA,OAAA,CAAQ,MAAM,CAAA;AAAA,IAChB,SAAS,KAAA,EAAY;AACnB,MAAA,MAAA,CAAO,IAAI,KAAA,CAAM,CAAA,kBAAA,EAAqB,KAAA,CAAM,OAAO,EAAE,CAAC,CAAA;AAAA,IACxD;AAAA,EACF,CAAC,CAAA;AACH;AAEO,IAAM,OAAA,GAAU,OAAO,KAAA,KAAkC;AAC9D,EAAA,IAAI;AACF,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAMX,wBAAM,GAAA,CAAI,CAAA,+BAAA,EAAkC,kBAAA,CAAmB,KAAK,CAAC,CAAA,CAAA,EAAI,EAAE,OAAA,EAAS,SAAS,CAAA;AACpH,IAAA,MAAM,CAAA,GAAYW,yBAAK,IAAI,CAAA;AAC3B,IAAA,MAAM,UAAiB,EAAC;AACxB,IAAA,CAAA,CAAE,aAAa,CAAA,CAAE,IAAA,CAAK,CAAC,GAAG,EAAA,KAAO;AAC9B,MAAA,MAAM,KAAA,GAAQ,EAAE,EAAE,CAAA,CAAE,KAAK,cAAc,CAAA,CAAE,IAAA,EAAK,CAAE,IAAA,EAAK;AACrD,MAAA,MAAM,KAAA,GAAQ,EAAE,EAAE,CAAA,CAAE,KAAK,YAAY,CAAA,CAAE,KAAK,KAAK,CAAA;AACjD,MAAA,MAAM,IAAA,GAAO,4BAA4B,CAAA,CAAE,EAAE,EAAE,IAAA,CAAK,mBAAmB,CAAA,CAAE,IAAA,CAAK,MAAM,CAAA;AACpF,MAAA,MAAM,KAAA,GAAQ,EAAE,EAAE,CAAA,CAAE,KAAK,aAAa,CAAA,CAAE,IAAA,EAAK,CAAE,IAAA,EAAK;AACpD,MAAA,IAAI,KAAA,EAAO,OAAA,CAAQ,IAAA,CAAK,EAAE,MAAA,EAAQ,QAAQ,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,CAAA;AAAA,IACxE,CAAC,CAAA;AACD,IAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACtB,MAAA,CAAA,CAAE,WAAW,CAAA,CAAE,IAAA,CAAK,CAAC,GAAG,EAAA,KAAO;AAC1B,QAAA,OAAA,CAAQ,IAAA,CAAK,EAAE,MAAA,EAAQ,MAAA,EAAQ,OAAO,CAAA,CAAE,EAAE,CAAA,CAAE,IAAA,CAAK,KAAK,CAAA,CAAE,IAAA,CAAK,KAAK,GAAG,CAAA;AAAA,MAC1E,CAAC,CAAA;AAAA,IACL;AACA,IAAA,OAAO,OAAA;AAAA,EACT,SAAS,KAAA,EAAY;AACnB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,gBAAA,EAAmB,KAAA,CAAM,OAAO,CAAA,CAAE,CAAA;AAAA,EACpD;AACF;AAMO,IAAM,KAAA,GAAQ,OAAO,KAAA,EAAe,IAAA,GAA4B,QAAA,KAA8B;AACnG,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,KAAY;AAC9B,IAAA,IAAI,SAAS,QAAA,EAAU;AACrB,MAAA,MAAM,MAAA,GAAS,KAAA,CACZ,WAAA,EAAY,CACZ,MAAM,EAAE,CAAA,CACR,GAAA,CAAI,CAAA,IAAA,KAAQ,UAAU,IAAI,CAAA,IAAK,IAAI,CAAA,CACnC,KAAK,GAAG,CAAA;AACX,MAAA,OAAA,CAAQ,MAAM,CAAA;AAAA,IAChB,CAAA,MAAO;AACL,MAAA,MAAM,MAAA,GAAS,MACZ,KAAA,CAAM,GAAG,EACT,GAAA,CAAI,CAAA,IAAA,KAAQ,aAAA,CAAc,IAAI,CAAA,KAAM,IAAA,KAAS,MAAM,GAAA,GAAM,IAAA,CAAK,EAC9D,IAAA,CAAK,EAAE,EACP,OAAA,CAAQ,MAAA,EAAQ,GAAG,CAAA,CAAE,IAAA,EAAK;AAC7B,MAAA,OAAA,CAAQ,MAAM,CAAA;AAAA,IAChB;AAAA,EACF,CAAC,CAAA;AACH;AAEO,IAAM,MAAA,GAAS,OAAO,KAAA,KAAgC;AAC3D,EAAA,IAAI;AACF,IAAA,MAAM,SAAA,GAAY,+BAA+B,kBAAA,CAAmB,KAAK,EAAE,OAAA,CAAQ,MAAA,EAAQ,GAAG,CAAC,CAAA,CAAA;AAC/F,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAMX,uBAAAA,CAAM,IAAI,SAAA,EAAW,EAAE,OAAA,EAAS,OAAA,EAAS,CAAA;AAChE,IAAA,MAAM,CAAA,GAAYW,yBAAK,IAAI,CAAA;AAC3B,IAAA,MAAM,cAAA,GAAiB,EAAE,0BAA0B,CAAA,CAAE,GAAG,CAAC,CAAA,CAAE,KAAK,IAAI,CAAA,CAAE,GAAG,CAAC,CAAA,CAAE,KAAK,GAAG,CAAA,CAAE,GAAG,CAAC,CAAA,CAAE,KAAK,MAAM,CAAA;AACvG,IAAA,IAAI,CAAC,cAAA,EAAgB,MAAM,IAAI,MAAM,iBAAiB,CAAA;AACtD,IAAA,MAAM,QAAA,GAAW,MAAMX,uBAAAA,CAAM,GAAA,CAAI,gBAAgB,EAAE,OAAA,EAAS,SAAS,CAAA;AACrE,IAAA,MAAM,KAAA,GAAgBW,mBAAA,CAAA,IAAA,CAAK,QAAA,CAAS,IAAI,CAAA;AACxC,IAAA,MAAM,SAAA,GAAY,MAAM,cAAc,CAAA;AACtC,IAAA,MAAM,SAAS,SAAA,CAAU,IAAA,CAAK,yBAAyB,CAAA,CAAE,IAAA,GAAO,IAAA,EAAK;AACrE,IAAA,MAAM,QAAQ,SAAA,CAAU,IAAA,CAAK,UAAU,CAAA,CAAE,IAAA,GAAO,IAAA,EAAK;AACrD,IAAA,MAAM,UAAU,KAAA,CAAM,mBAAmB,CAAA,CAAE,IAAA,GAAO,IAAA,EAAK;AACvD,IAAA,OAAO,EAAE,QAAQ,MAAA,EAAQ,KAAA,EAAO,QAAQ,GAAA,EAAK,cAAA,EAAgB,OAAO,OAAA,EAAQ;AAAA,EAC9E,SAAS,KAAA,EAAY;AACnB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,eAAA,EAAkB,KAAA,CAAM,OAAO,CAAA,CAAE,CAAA;AAAA,EACnD;AACF;;;ACnJO,IAAM,UAAA,GAAa;AAAA,EACxB,MAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAA,EAAK,OAAA;AAAA,EACL,KAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF;AACO,IAAMC,OAAAA,GAAS;AAAA,EACpB,OAAA,EAAS,MAAA;AAAA,EACT,OAAA;AAAA,EACA;AACF;AACO,IAAM,KAAA,GAAQ;AAAA,EACnB,KAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF;AACA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA;AAAA,EACA,MAAA,EAAAA,OAAAA;AAAA,EACA;AACF","file":"index.js","sourcesContent":["export interface Author {\n name: string;\n source: string;\n}\n\nexport const AUTHOR: Author = {\n name: \"HEAVSTAL TECH\",\n source: \"https://heavstal-tech.vercel.app\"\n};\n\nexport interface TikTokResult {\n author: Author;\n status: boolean;\n title: string;\n cover?: string;\n origin_cover?: string;\n no_watermark?: string;\n watermark?: string;\n music?: string;\n views?: number | string;\n likes?: number | string;\n comments?: number | string;\n shares?: number | string;\n downloads?: number | string;\n uniqueId?: string;\n profileUrl?: string;\n profileImage?: string;\n hashtags?: string[];\n slideImages?: string[];\n author_name?: string;\n}\n\nexport interface SocialResult {\n author: Author;\n status: boolean;\n type: 'video' | 'image';\n title?: string;\n thumbnail?: string;\n url: string;\n}\n\nexport interface YouTubeResult {\n author: Author;\n title: string;\n thumbnail: string;\n channel: string;\n published: string;\n views: string;\n url: string;\n duration?: number | string;\n status?: boolean;\n}\n\nexport interface YouTubeSearchResult {\n type: 'video' | 'channel' | 'list' | 'live';\n url: string;\n title: string;\n description?: string;\n image?: string;\n thumbnail?: string;\n seconds?: number;\n timestamp?: string;\n views?: number;\n ago?: string;\n author?: {\n name: string;\n url: string;\n };\n}\n\nexport interface UtilsResult {\n author: Author;\n status: boolean;\n data: Buffer | string | any;\n}\n\nexport interface TwitterResult {\n author: Author;\n status: boolean;\n desc: string;\n thumbnail: string;\n video_sd?: string;\n video_hd?: string;\n audio?: string;\n}\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport { AUTHOR, TikTokResult } from '../types';\n\nconst USER_AGENTS = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36',\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1'\n];\n\nconst getRandomHeaders = () => ({\n 'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)],\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n 'Accept': 'application/json, text/javascript, */*; q=0.01'\n});\n\nconst cleanText = (str: string) => str ? str.replace(/(<br?\\s?\\/?>)/gi, \" \\n\").replace(/(<([^>]+)>)/gi, \"\").trim() : \"\";\nconst cleanUrl = (url: string) => url ? url.replace('https:', 'http:') : \"\";\n\nconst lovetikFallback = async (url: string): Promise<TikTokResult> => {\n try {\n const { data } = await axios.post(\"https://lovetik.com/api/ajax/search\", \n new URLSearchParams({ query: url }), \n { headers: getRandomHeaders() }\n );\n\n if (!data.links) throw new Error(\"Lovetik: No links found\");\n\n return {\n author: AUTHOR,\n status: true,\n title: cleanText(data.desc),\n cover: cleanUrl(data.cover),\n no_watermark: cleanUrl(data.links.find((l: any) => l.a && !l.s)?.a), // Usually the first link is No WM\n watermark: cleanUrl(data.links.find((l: any) => l.s?.includes('Watermark'))?.a),\n music: cleanUrl(data.links.find((l: any) => l.t?.includes('Audio'))?.a),\n author_name: cleanText(data.author),\n views: \"N/A\"\n } as TikTokResult;\n\n } catch (error: any) {\n throw new Error(`Fallback Failed: ${error.message}`);\n }\n};\n\n/**\n * Main TikTok Function\n * Supports: URL Download & Search Query\n */\nexport const tiktok = async (input: string): Promise<TikTokResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n const isUrl = input.match(/tiktok\\.com/i);\n let data;\n \n try {\n if (isUrl) {\n const apiUrl = `https://www.tikwm.com/api/?url=${encodeURIComponent(input)}`;\n const response = await axios.get(apiUrl, { headers: getRandomHeaders() });\n if (response.data.code !== 0) throw new Error(\"Private video or Invalid URL\");\n data = response.data.data;\n } else {\n const apiUrl = `https://www.tikwm.com/api/feed/search`;\n const response = await axios.post(apiUrl, \n new URLSearchParams({\n keywords: input,\n count: '1',\n cursor: '0',\n HD: '1'\n }), \n { headers: { ...getRandomHeaders(), 'Cookie': 'current_language=en' } }\n );\n \n if (!response.data.data?.videos || response.data.data.videos.length === 0) {\n throw new Error(`No results found for: ${input}`);\n }\n data = response.data.data.videos[0];\n }\n\n const result: TikTokResult = {\n author: AUTHOR,\n status: true,\n title: data.title,\n cover: data.cover,\n origin_cover: data.origin_cover,\n no_watermark: data.play,\n watermark: data.wmplay,\n music: data.music,\n views: data.play_count,\n likes: data.digg_count,\n comments: data.comment_count,\n shares: data.share_count,\n downloads: data.download_count\n };\n resolve(result);\n\n } catch (primaryError) {\n if (isUrl) {\n console.warn(\"Primary TikTok API failed, switching to fallback...\");\n const fallbackData = await lovetikFallback(input);\n resolve(fallbackData);\n } else {\n throw primaryError;\n }\n }\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"TikTok processing failed\"\n });\n }\n });\n};\n\n/**\n * TikTok Slide Downloader\n */\nexport const tiktokSlide = async (url: string): Promise<TikTokResult> => {\n try {\n const response = await axios.post(\"https://api.ttsave.app/\", {\n id: url,\n hash: '1e3a27c51eb6370b0db6f9348a481d69',\n mode: 'slide',\n locale: 'en',\n loading_indicator_url: 'https://ttsave.app/images/slow-down.gif',\n unlock_url: 'https://ttsave.app/en/unlock'\n }, {\n headers: getRandomHeaders()\n });\n\n const $ = cheerio.load(response.data);\n const $element = $('div.flex.flex-col.items-center.justify-center.mt-2.mb-5');\n if ($element.length === 0) throw new Error(\"Slide not found or service unavailable\");\n const statsDiv = $element.find('div.flex.flex-row.items-center.justify-center');\n return {\n author: AUTHOR,\n status: true,\n uniqueId: $element.find('input#unique-id').attr('value'),\n title: $element.find('div.flex.flex-row.items-center.justify-center h2').text().trim(),\n profileImage: $element.find('a').first().find('img').attr('src'),\n profileUrl: $element.find('a').first().attr('href'),\n hashtags: $element.find('p.text-gray-600').text().split(' ').filter(Boolean),\n likes: statsDiv.eq(0).find('span').text().trim(),\n comments: statsDiv.eq(1).find('span').text().trim(),\n shares: statsDiv.eq(2).find('span').text().trim(),\n downloads: statsDiv.eq(3).find('span').text().trim(),\n views: statsDiv.eq(4).find('span').text().trim()\n };\n } catch (error: any) {\n return {\n author: AUTHOR,\n status: false,\n title: \"Error\",\n views: error.message\n } as TikTokResult;\n }\n};\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport { AUTHOR, SocialResult } from '../types';\n\nconst USER_AGENTS = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36',\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1'\n];\nconst getRandomHeaders = () => ({\n 'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)],\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',\n 'Accept-Language': 'en-US,en;q=0.5',\n 'Accept-Encoding': 'gzip, deflate, br',\n 'Connection': 'keep-alive'\n});\n\n/**\n * Facebook Video Downloader\n * Source: getmyfb.com\n */\nexport const fbdl = async (url: string): Promise<SocialResult[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const { data } = await axios.post(\"https://getmyfb.com/process\", \n new URLSearchParams({\n id: url,\n locale: \"en\"\n }), \n {\n headers: {\n ...getRandomHeaders(),\n \"Content-Type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n \"Cookie\": \"PHPSESSID=mtkljtmk74aiej5h6d846gjbo4; __cflb=04dToeZfC9vebXjRcJCMjjSQh5PprejufZXs2vHCt5; _token=K5Qobnj4QvoYKeLCW6uk\" //s\n }\n }\n );\n\n const $ = cheerio.load(data);\n const results: SocialResult[] = [];\n const title = $(\"div.results-item-text\").eq(0).text().trim();\n const thumbnail = $(\".results-item-image-wrapper img\").attr(\"src\") || \"\";\n $(\"a.btn-download\").each((i, el) => {\n const link = $(el).attr(\"href\");\n if (link) {\n results.push({\n author: AUTHOR,\n status: true,\n type: 'video',\n title: title || \"Facebook Video\",\n thumbnail: thumbnail,\n url: link\n });\n }\n });\n\n if (results.length === 0) {\n const singleLink = $(\"a\").attr(\"href\");\n if(singleLink && singleLink.startsWith('http')) {\n results.push({\n author: AUTHOR,\n status: true,\n type: 'video',\n title: title,\n thumbnail: thumbnail,\n url: singleLink\n })\n } else {\n reject(new Error(\"No Facebook video found (Private or Invalid URL)\"));\n return;\n }\n }\n resolve(results);\n\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"Facebook Download Failed\"\n });\n }\n });\n};\n\n/**\n * Instagram Downloader\n * Source: indown.io\n */\nexport const igdl = async (url: string): Promise<SocialResult[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const initialResponse = await axios.get(\"https://indown.io/\", {\n headers: getRandomHeaders()\n });\n \n const _$ = cheerio.load(initialResponse.data);\n const referer = _$(\"input[name=referer]\").val() as string;\n const locale = _$(\"input[name=locale]\").val() as string;\n const _token = _$(\"input[name=_token]\").val() as string;\n const cookies = initialResponse.headers[\"set-cookie\"]?.join(\" \") || \"\";\n\n if (!_token) throw new Error(\"Failed to fetch Instagram token\");\n const { data } = await axios.post(\n \"https://indown.io/download\",\n new URLSearchParams({\n link: url,\n referer,\n locale,\n _token,\n }),\n {\n headers: {\n ...getRandomHeaders(),\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n \"Cookie\": cookies,\n \"Origin\": \"https://indown.io\",\n \"Referer\": \"https://indown.io/\"\n },\n }\n );\n\n const $ = cheerio.load(data);\n const result: SocialResult[] = [];\n $(\"video\").each(function () {\n const $$ = $(this);\n const src = $$.find(\"source\").attr(\"src\");\n const poster = $$.attr(\"poster\");\n if (src) {\n result.push({\n author: AUTHOR,\n status: true,\n type: \"video\",\n thumbnail: poster,\n url: src,\n });\n }\n });\n\n $(\"img.img-fluid\").each(function () {\n const $$ = $(this);\n const src = $$.attr(\"src\");\n if (src) {\n result.push({\n author: AUTHOR,\n status: true,\n type: \"image\",\n thumbnail: src,\n url: src,\n });\n }\n });\n \n if(result.length === 0) {\n $(\".btn-group a\").each((i, el) => {\n const link = $(el).attr(\"href\");\n if(link && link !== \"#\") {\n result.push({\n author: AUTHOR,\n status: true,\n type: \"video\",\n url: link\n });\n }\n });\n }\n\n if (result.length === 0) {\n const errorMsg = $(\".alert-danger\").text().trim();\n reject(new Error(errorMsg || \"No media found. Account might be private.\"));\n } else {\n resolve(result);\n }\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"Instagram Download Failed\"\n });\n }\n });\n};\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport { AUTHOR, TwitterResult } from '../types';\nconst USER_AGENTS = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'\n];\nconst getRandomHeaders = () => ({\n 'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)],\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Origin': 'https://twdown.net',\n 'Referer': 'https://twdown.net/'\n});\n\n/**\n * Twitter/X Video Downloader\n * x.com and twitter.com links\n */\nexport const twitter = async (url: string): Promise<TwitterResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n const cleanUrl = url.replace(\"x.com\", \"twitter.com\");\n const config = new URLSearchParams({ URL: cleanUrl });\n const { data } = await axios.post('https://twdown.net/download.php', config, {\n headers: getRandomHeaders()\n });\n const $ = cheerio.load(data);\n const desc = $('div:nth-child(1) > div:nth-child(2) > p').text().trim();\n const thumb = $('div:nth-child(1) > img').attr('src'); \n const video_hd = $('tbody > tr:nth-child(1) > td:nth-child(4) > a').attr('href');\n const video_sd = $('tr:nth-child(2) > td:nth-child(4) > a').attr('href'); \n let audio = $('body > div.jumbotron > div > center > div.row > div > div:nth-child(5) > table > tbody > tr:nth-child(3) > td:nth-child(4) > a').attr('href');\n if (audio && !audio.startsWith('http')) audio = 'https://twdown.net/' + audio;\n if (!video_sd && !video_hd) {\n throw new Error(\"No media found. Account might be private or link is invalid.\");\n }\n const result: TwitterResult = {\n author: AUTHOR,\n status: true,\n desc: desc || \"X/Twitter Video\",\n thumbnail: thumb || \"\",\n video_sd,\n video_hd,\n audio\n };\n resolve(result);\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"X/Twitter Download Failed\"\n });\n }\n });\n};\n","import ytdl from '@distube/ytdl-core';\nimport yts from 'yt-search';\nimport { AUTHOR, YouTubeResult, YouTubeSearchResult } from '../types';\n\n/*\n * YouTube Search\n */\nexport const search = async (query: string): Promise<YouTubeSearchResult[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const result = await yts(query);\n if (!result.all || result.all.length === 0) {\n return reject(new Error(\"No results found on YouTube.\"));\n }\n const data: YouTubeSearchResult[] = result.all.map((item: any) => {\n return {\n type: item.type as 'video' | 'channel' | 'list' | 'live',\n url: item.url,\n title: item.title,\n description: item.description,\n image: item.image,\n thumbnail: item.thumbnail,\n seconds: (item as any).seconds,\n timestamp: (item as any).timestamp,\n views: (item as any).views,\n ago: (item as any).ago,\n author: (item as any).author ? {\n name: (item as any).author.name,\n url: (item as any).author.url\n } : undefined\n };\n });\n resolve(data);\n } catch (error: any) {\n reject({\n message: error.message || \"YouTube Search Failed\"\n });\n }\n });\n};\n\n/*\n * YouTube Audio Downloader\n */\nexport const ytmp3 = async (url: string): Promise<YouTubeResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n if (!ytdl.validateURL(url)) {\n throw new Error(\"Invalid YouTube URL\");\n }\n const info = await ytdl.getInfo(url);\n const format = ytdl.chooseFormat(info.formats, { \n quality: 'highestaudio',\n filter: 'audioonly' \n });\n if (!format) throw new Error(\"No audio stream found\");\n const result: YouTubeResult = {\n author: AUTHOR,\n title: info.videoDetails.title,\n thumbnail: info.videoDetails.thumbnails[info.videoDetails.thumbnails.length - 1].url, // Highest res\n channel: info.videoDetails.ownerChannelName,\n published: info.videoDetails.publishDate,\n views: info.videoDetails.viewCount,\n duration: info.videoDetails.lengthSeconds,\n url: format.url\n };\n resolve(result);\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"YouTube MP3 Failed\"\n });\n }\n });\n};\n\n/*\n * YouTube Video Downloader\n */\nexport const ytmp4 = async (url: string): Promise<YouTubeResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n if (!ytdl.validateURL(url)) {\n throw new Error(\"Invalid YouTube URL\");\n }\n const info = await ytdl.getInfo(url);\n const format = ytdl.chooseFormat(info.formats, { \n quality: 'highest',\n filter: (f) => f.hasAudio === true && f.hasVideo === true && f.container === 'mp4'\n });\n const finalFormat = format || ytdl.chooseFormat(info.formats, { \n quality: 'highest',\n filter: (f) => f.hasAudio === true && f.hasVideo === true\n });\n if (!finalFormat) throw new Error(\"No video stream found\");\n const result: YouTubeResult = {\n author: AUTHOR,\n title: info.videoDetails.title,\n thumbnail: info.videoDetails.thumbnails[info.videoDetails.thumbnails.length - 1].url,\n channel: info.videoDetails.ownerChannelName,\n published: info.videoDetails.publishDate,\n views: info.videoDetails.viewCount,\n duration: info.videoDetails.lengthSeconds,\n url: finalFormat.url\n };\n resolve(result);\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"YouTube MP4 Failed\"\n });\n }\n });\n};\n\n/**\n * YouTube Play (Search & Download)\n * Searches for a query, grabs the first result, and returns the download link\n */\nexport const play = async (query: string, type: 'mp3' | 'mp4' = 'mp3'): Promise<YouTubeResult> => {\n try {\n const searchResults = await yts(query);\n const videos = searchResults.all.filter((v: any) => v.type === 'video');\n if (videos.length === 0) {\n throw new Error(`No video results found for: ${query}`);\n }\n const firstVideo = videos[0];\n if (type === 'mp4') {\n return await ytmp4(firstVideo.url);\n } else {\n return await ytmp3(firstVideo.url);\n }\n } catch (error: any) {\n throw new Error(`Play Failed: ${error.message}`);\n }\n};\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport FormData from 'form-data';\nimport https from 'https';\nimport { AUTHOR, Author } from '../types';\n\nconst HEADERS = {\n 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'\n};\n\nconst ignoreSSL = new https.Agent({ \n rejectUnauthorized: false,\n servername: 'inferenceengine.vyro.ai'\n});\n\nconst MORSE_MAP: Record<string, string> = {\n 'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.',\n 'G': '--.', 'H': '....', 'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..',\n 'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.',\n 'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-',\n 'Y': '-.--', 'Z': '--..',\n '0': '-----', '1': '.----', '2': '..---', '3': '...--', '4': '....-',\n '5': '.....', '6': '-....', '7': '--...', '8': '---..', '9': '----.',\n '.': '.-.-.-', ',': '--..--', '?': '..--..', \"'\": '.----.', '!': '-.-.--',\n '/': '-..-.', '(': '-.--.', ')': '-.--.-', '&': '.-...', ':': '---...',\n ';': '-.-.-.', '=': '-...-', '+': '.-.-.', '-': '-....-', '_': '..--.-',\n '\"': '.-..-.', '$': '...-..-', '@': '.--.-.',\n ' ': '/' \n};\nconst REVERSE_MORSE = Object.fromEntries(\n Object.entries(MORSE_MAP).map(([char, code]) => [code, char])\n);\n\nexport const ssweb = async (url: string, device: 'desktop' | 'tablet' | 'phone' = 'desktop'): Promise<Buffer> => {\n return new Promise(async (resolve, reject) => {\n try {\n const baseURL = 'https://www.screenshotmachine.com';\n const param = { url: url, device: device, cacheLimit: 0 };\n const { data, headers } = await axios.post(`${baseURL}/capture.php`, \n new URLSearchParams(param as any), {\n headers: { 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8', 'User-Agent': HEADERS['User-Agent'] }\n });\n if (data.status !== 'success') throw new Error('Screenshot generation failed');\n const cookies = headers['set-cookie']?.join('') || '';\n const imageResponse = await axios.get(`${baseURL}/${data.link}`, {\n headers: { 'cookie': cookies, 'User-Agent': HEADERS['User-Agent'] },\n responseType: 'arraybuffer'\n });\n resolve(imageResponse.data);\n } catch (error: any) {\n reject(new Error(`SSWeb Failed: ${error.message}`));\n }\n });\n};\n\nexport const remini = async (imageUrl: string, method: 'enhance' | 'recolor' | 'dehaze' = 'enhance'): Promise<Buffer> => {\n return new Promise(async (resolve, reject) => {\n try {\n const validMethods = [\"enhance\", \"recolor\", \"dehaze\"];\n const selectedMethod = validMethods.includes(method) ? method : \"enhance\";\n const imgBuffer = await axios.get(imageUrl, { responseType: 'arraybuffer' });\n const form = new FormData();\n form.append(\"model_version\", 1, {\n header: { \"Content-Transfer-Encoding\": \"binary\", \"contentType\": \"multipart/form-data; charset=utf-8\" }\n });\n form.append(\"image\", Buffer.from(imgBuffer.data), {\n filename: \"enhance_image_body.jpg\",\n contentType: \"image/jpeg\",\n });\n const url = `https://inferenceengine.vyro.ai/${selectedMethod}`;\n const response = await axios.post(url, form, {\n headers: {\n ...form.getHeaders(),\n \"User-Agent\": \"okhttp/4.9.3\",\n \"Connection\": \"Keep-Alive\",\n \"Accept-Encoding\": \"gzip\"\n },\n responseType: 'arraybuffer',\n httpsAgent: ignoreSSL \n });\n resolve(response.data);\n } catch (error: any) {\n reject(new Error(`Remini Failed: ${error.message}`));\n }\n });\n};\n\nexport const styleText = async (text: string): Promise<{ author: Author, name: string, result: string }[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const { data } = await axios.get(`http://qaz.wtf/u/convert.cgi?text=${encodeURIComponent(text)}`);\n const $ = cheerio.load(data);\n const result: { author: Author, name: string, result: string }[] = [];\n $('table > tbody > tr').each((i, el) => {\n const name = $(el).find('td').first().text().trim();\n const styled = $(el).find('td').eq(1).text().trim();\n if (name && styled) {\n result.push({ author: AUTHOR, name: name, result: styled });\n }\n });\n resolve(result);\n } catch (error: any) {\n reject(new Error(`StyleText Failed: ${error.message}`));\n }\n });\n};\n\nexport const wattpad = async (query: string): Promise<any[]> => {\n try {\n const { data } = await axios.get(`https://www.wattpad.com/search/${encodeURIComponent(query)}`, { headers: HEADERS });\n const $ = cheerio.load(data);\n const results: any[] = [];\n $('.story-card').each((i, el) => {\n const title = $(el).find('.story-title').text().trim();\n const image = $(el).find('.cover img').attr('src');\n const link = 'https://www.wattpad.com' + $(el).find('a.story-card-data').attr('href');\n const reads = $(el).find('.read-count').text().trim(); \n if (title) results.push({ author: AUTHOR, title, image, link, reads });\n });\n if (results.length === 0) {\n $('div.cover').each((i, el) => {\n results.push({ author: AUTHOR, image: $(el).find('img').attr('src') });\n });\n }\n return results;\n } catch (error: any) {\n throw new Error(`Wattpad Failed: ${error.message}`);\n }\n};\n\n/**\n * Morse Code Engine\n * Encodes Text to Morse OR Decodes Morse to Text\n */\nexport const morse = async (input: string, mode: 'encode' | 'decode' = 'encode'): Promise<string> => {\n return new Promise((resolve) => {\n if (mode === 'encode') {\n const result = input\n .toUpperCase()\n .split('')\n .map(char => MORSE_MAP[char] || char)\n .join(' ');\n resolve(result);\n } else {\n const result = input\n .split(' ') \n .map(code => REVERSE_MORSE[code] || (code === '/' ? ' ' : code))\n .join('')\n .replace(/\\s+/g, ' ').trim();\n resolve(result);\n }\n });\n};\n\nexport const chords = async (query: string): Promise<any> => {\n try {\n const searchUrl = `https://www.gitagram.com/?s=${encodeURIComponent(query).replace(/%20/g, \"+\")}`;\n const { data } = await axios.get(searchUrl, { headers: HEADERS });\n const $ = cheerio.load(data); \n const firstResultUrl = $(\"table.table > tbody > tr\").eq(0).find(\"td\").eq(0).find(\"a\").eq(0).attr(\"href\");\n if (!firstResultUrl) throw new Error(\"No chords found\");\n const songPage = await axios.get(firstResultUrl, { headers: HEADERS });\n const $song = cheerio.load(songPage.data); \n const $hcontent = $song(\"div.hcontent\");\n const artist = $hcontent.find(\"div > a > span.subtitle\").text().trim();\n const title = $hcontent.find(\"h1.title\").text().trim();\n const content = $song(\"div.content > pre\").text().trim();\n return { author: AUTHOR, title, artist, url: firstResultUrl, chord: content };\n } catch (error: any) {\n throw new Error(`Chords Failed: ${error.message}`);\n }\n};\n","import { tiktok, tiktokSlide } from './dl/tiktok';\nimport { igdl, fbdl } from './dl/social';\nimport { twitter } from './dl/twitter';\nimport { search as ytSearch, ytmp3, ytmp4, play } from './dl/youtube';\nimport { ssweb, remini, styleText, wattpad, chords, morse } from './utils/tools';\n\nexport * from './types';\nexport { \n tiktok, \n tiktokSlide, \n igdl, \n fbdl,\n twitter,\n twitter as xdl,\n ytSearch, \n ytmp3, \n ytmp4, \n play,\n ssweb, \n remini, \n styleText, \n wattpad, \n chords,\n morse\n};\nexport const downloader = {\n tiktok,\n tiktokSlide,\n igdl,\n fbdl,\n twitter,\n xdl: twitter,\n ytmp3,\n ytmp4,\n play\n};\nexport const search = {\n youtube: ytSearch,\n wattpad,\n chords\n};\nexport const tools = {\n ssweb,\n remini,\n styleText,\n morse\n};\nexport default {\n downloader,\n search,\n tools\n};\n"]}
1
+ {"version":3,"sources":["../src/types.ts","../src/dl/tiktok.ts","../src/dl/social.ts","../src/dl/twitter.ts","../src/dl/youtube.ts","../src/utils/tools.ts","../src/index.ts"],"names":["axios","cheerio","USER_AGENTS","getRandomHeaders","cheerio2","cleanUrl","cheerio3","yts","ytdl","https","FormData","cheerio4","search"],"mappings":"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","file":"index.js","sourcesContent":["export interface Author {\n name: string;\n source: string;\n}\n\nexport const AUTHOR: Author = {\n name: \"HEAVSTAL TECH\",\n source: \"https://heavstal-tech.vercel.app\"\n};\n\nexport interface TikTokResult {\n author: Author;\n status: boolean;\n title: string;\n cover?: string;\n origin_cover?: string;\n no_watermark?: string;\n watermark?: string;\n music?: string;\n views?: number | string;\n likes?: number | string;\n comments?: number | string;\n shares?: number | string;\n downloads?: number | string;\n uniqueId?: string;\n profileUrl?: string;\n profileImage?: string;\n hashtags?: string[];\n slideImages?: string[];\n author_name?: string;\n}\n\nexport interface SocialResult {\n author: Author;\n status: boolean;\n type: 'video' | 'image';\n title?: string;\n thumbnail?: string;\n url: string;\n}\n\nexport interface YouTubeResult {\n author: Author;\n title: string;\n thumbnail: string;\n channel: string;\n published: string;\n views: string;\n url: string;\n duration?: number | string;\n status?: boolean;\n}\n\nexport interface YouTubeSearchResult {\n type: 'video' | 'channel' | 'list' | 'live';\n url: string;\n title: string;\n description?: string;\n image?: string;\n thumbnail?: string;\n seconds?: number;\n timestamp?: string;\n views?: number;\n ago?: string;\n author?: {\n name: string;\n url: string;\n };\n}\n\nexport interface UtilsResult {\n author: Author;\n status: boolean;\n data: Buffer | string | any;\n}\n\nexport interface TwitterResult {\n author: Author;\n status: boolean;\n desc: string;\n thumbnail: string;\n video_sd?: string;\n video_hd?: string;\n audio?: string;\n}\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport { AUTHOR, TikTokResult } from '../types';\n\nconst USER_AGENTS = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36',\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1'\n];\n\nconst getRandomHeaders = () => ({\n 'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)],\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n 'Accept': 'application/json, text/javascript, */*; q=0.01'\n});\n\nconst cleanText = (str: string) => str ? str.replace(/(<br?\\s?\\/?>)/gi, \" \\n\").replace(/(<([^>]+)>)/gi, \"\").trim() : \"\";\nconst cleanUrl = (url: string) => url ? url.replace('https:', 'http:') : \"\";\n\nconst lovetikFallback = async (url: string): Promise<TikTokResult> => {\n try {\n const { data } = await axios.post(\"https://lovetik.com/api/ajax/search\", \n new URLSearchParams({ query: url }), \n { headers: getRandomHeaders() }\n );\n\n if (!data.links) throw new Error(\"Lovetik: No links found\");\n\n return {\n author: AUTHOR,\n status: true,\n title: cleanText(data.desc),\n cover: cleanUrl(data.cover),\n no_watermark: cleanUrl(data.links.find((l: any) => l.a && !l.s)?.a), // Usually the first link is No WM\n watermark: cleanUrl(data.links.find((l: any) => l.s?.includes('Watermark'))?.a),\n music: cleanUrl(data.links.find((l: any) => l.t?.includes('Audio'))?.a),\n author_name: cleanText(data.author),\n views: \"N/A\"\n } as TikTokResult;\n\n } catch (error: any) {\n throw new Error(`Fallback Failed: ${error.message}`);\n }\n};\n\n/**\n * Main TikTok Function\n * Supports: URL Download & Search Query\n */\nexport const tiktok = async (input: string): Promise<TikTokResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n const isUrl = input.match(/tiktok\\.com/i);\n let data;\n \n try {\n if (isUrl) {\n const apiUrl = `https://www.tikwm.com/api/?url=${encodeURIComponent(input)}`;\n const response = await axios.get(apiUrl, { headers: getRandomHeaders() });\n if (response.data.code !== 0) throw new Error(\"Private video or Invalid URL\");\n data = response.data.data;\n } else {\n const apiUrl = `https://www.tikwm.com/api/feed/search`;\n const response = await axios.post(apiUrl, \n new URLSearchParams({\n keywords: input,\n count: '1',\n cursor: '0',\n HD: '1'\n }), \n { headers: { ...getRandomHeaders(), 'Cookie': 'current_language=en' } }\n );\n \n if (!response.data.data?.videos || response.data.data.videos.length === 0) {\n throw new Error(`No results found for: ${input}`);\n }\n data = response.data.data.videos[0];\n }\n\n const result: TikTokResult = {\n author: AUTHOR,\n status: true,\n title: data.title,\n cover: data.cover,\n origin_cover: data.origin_cover,\n no_watermark: data.play,\n watermark: data.wmplay,\n music: data.music,\n views: data.play_count,\n likes: data.digg_count,\n comments: data.comment_count,\n shares: data.share_count,\n downloads: data.download_count\n };\n resolve(result);\n\n } catch (primaryError) {\n if (isUrl) {\n console.warn(\"Primary TikTok API failed, switching to fallback...\");\n const fallbackData = await lovetikFallback(input);\n resolve(fallbackData);\n } else {\n throw primaryError;\n }\n }\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"TikTok processing failed\"\n });\n }\n });\n};\n\n/**\n * TikTok Slide Downloader\n */\nexport const tiktokSlide = async (url: string): Promise<TikTokResult> => {\n try {\n const response = await axios.post(\"https://api.ttsave.app/\", {\n id: url,\n hash: '1e3a27c51eb6370b0db6f9348a481d69',\n mode: 'slide',\n locale: 'en',\n loading_indicator_url: 'https://ttsave.app/images/slow-down.gif',\n unlock_url: 'https://ttsave.app/en/unlock'\n }, {\n headers: getRandomHeaders()\n });\n\n const $ = cheerio.load(response.data);\n const $element = $('div.flex.flex-col.items-center.justify-center.mt-2.mb-5');\n if ($element.length === 0) throw new Error(\"Slide not found or service unavailable\");\n const statsDiv = $element.find('div.flex.flex-row.items-center.justify-center');\n return {\n author: AUTHOR,\n status: true,\n uniqueId: $element.find('input#unique-id').attr('value'),\n title: $element.find('div.flex.flex-row.items-center.justify-center h2').text().trim(),\n profileImage: $element.find('a').first().find('img').attr('src'),\n profileUrl: $element.find('a').first().attr('href'),\n hashtags: $element.find('p.text-gray-600').text().split(' ').filter(Boolean),\n likes: statsDiv.eq(0).find('span').text().trim(),\n comments: statsDiv.eq(1).find('span').text().trim(),\n shares: statsDiv.eq(2).find('span').text().trim(),\n downloads: statsDiv.eq(3).find('span').text().trim(),\n views: statsDiv.eq(4).find('span').text().trim()\n };\n } catch (error: any) {\n return {\n author: AUTHOR,\n status: false,\n title: \"Error\",\n views: error.message\n } as TikTokResult;\n }\n};\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport { AUTHOR, SocialResult } from '../types';\n\nconst USER_AGENTS = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36',\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1'\n];\nconst getRandomHeaders = () => ({\n 'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)],\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',\n 'Accept-Language': 'en-US,en;q=0.5',\n 'Accept-Encoding': 'gzip, deflate, br',\n 'Connection': 'keep-alive'\n});\n\n/**\n * Facebook Video Downloader\n * Source: getmyfb.com\n */\nexport const fbdl = async (url: string): Promise<SocialResult[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const { data } = await axios.post(\"https://getmyfb.com/process\", \n new URLSearchParams({\n id: url,\n locale: \"en\"\n }), \n {\n headers: {\n ...getRandomHeaders(),\n \"Content-Type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n \"Cookie\": \"PHPSESSID=mtkljtmk74aiej5h6d846gjbo4; __cflb=04dToeZfC9vebXjRcJCMjjSQh5PprejufZXs2vHCt5; _token=K5Qobnj4QvoYKeLCW6uk\" //s\n }\n }\n );\n\n const $ = cheerio.load(data);\n const results: SocialResult[] = [];\n const title = $(\"div.results-item-text\").eq(0).text().trim();\n const thumbnail = $(\".results-item-image-wrapper img\").attr(\"src\") || \"\";\n $(\"a.btn-download\").each((i, el) => {\n const link = $(el).attr(\"href\");\n if (link) {\n results.push({\n author: AUTHOR,\n status: true,\n type: 'video',\n title: title || \"Facebook Video\",\n thumbnail: thumbnail,\n url: link\n });\n }\n });\n\n if (results.length === 0) {\n const singleLink = $(\"a\").attr(\"href\");\n if(singleLink && singleLink.startsWith('http')) {\n results.push({\n author: AUTHOR,\n status: true,\n type: 'video',\n title: title,\n thumbnail: thumbnail,\n url: singleLink\n })\n } else {\n reject(new Error(\"No Facebook video found (Private or Invalid URL)\"));\n return;\n }\n }\n resolve(results);\n\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"Facebook Download Failed\"\n });\n }\n });\n};\n\n/**\n * Instagram Downloader\n * Source: indown.io\n */\nexport const igdl = async (url: string): Promise<SocialResult[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const initialResponse = await axios.get(\"https://indown.io/\", {\n headers: getRandomHeaders()\n });\n \n const _$ = cheerio.load(initialResponse.data);\n const referer = _$(\"input[name=referer]\").val() as string;\n const locale = _$(\"input[name=locale]\").val() as string;\n const _token = _$(\"input[name=_token]\").val() as string;\n const cookies = initialResponse.headers[\"set-cookie\"]?.join(\" \") || \"\";\n\n if (!_token) throw new Error(\"Failed to fetch Instagram token\");\n const { data } = await axios.post(\n \"https://indown.io/download\",\n new URLSearchParams({\n link: url,\n referer,\n locale,\n _token,\n }),\n {\n headers: {\n ...getRandomHeaders(),\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n \"Cookie\": cookies,\n \"Origin\": \"https://indown.io\",\n \"Referer\": \"https://indown.io/\"\n },\n }\n );\n\n const $ = cheerio.load(data);\n const result: SocialResult[] = [];\n $(\"video\").each(function () {\n const $$ = $(this);\n const src = $$.find(\"source\").attr(\"src\");\n const poster = $$.attr(\"poster\");\n if (src) {\n result.push({\n author: AUTHOR,\n status: true,\n type: \"video\",\n thumbnail: poster,\n url: src,\n });\n }\n });\n\n $(\"img.img-fluid\").each(function () {\n const $$ = $(this);\n const src = $$.attr(\"src\");\n if (src) {\n result.push({\n author: AUTHOR,\n status: true,\n type: \"image\",\n thumbnail: src,\n url: src,\n });\n }\n });\n \n if(result.length === 0) {\n $(\".btn-group a\").each((i, el) => {\n const link = $(el).attr(\"href\");\n if(link && link !== \"#\") {\n result.push({\n author: AUTHOR,\n status: true,\n type: \"video\",\n url: link\n });\n }\n });\n }\n\n if (result.length === 0) {\n const errorMsg = $(\".alert-danger\").text().trim();\n reject(new Error(errorMsg || \"No media found. Account might be private.\"));\n } else {\n resolve(result);\n }\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"Instagram Download Failed\"\n });\n }\n });\n};\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport { AUTHOR, TwitterResult } from '../types';\nconst USER_AGENTS = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'\n];\nconst getRandomHeaders = () => ({\n 'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)],\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Origin': 'https://twdown.net',\n 'Referer': 'https://twdown.net/'\n});\n\n/**\n * Twitter/X Video Downloader\n * x.com and twitter.com links\n */\nexport const twitter = async (url: string): Promise<TwitterResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n const cleanUrl = url.replace(\"x.com\", \"twitter.com\");\n const config = new URLSearchParams({ URL: cleanUrl });\n const { data } = await axios.post('https://twdown.net/download.php', config, {\n headers: getRandomHeaders()\n });\n const $ = cheerio.load(data);\n const desc = $('div:nth-child(1) > div:nth-child(2) > p').text().trim();\n const thumb = $('div:nth-child(1) > img').attr('src'); \n const video_hd = $('tbody > tr:nth-child(1) > td:nth-child(4) > a').attr('href');\n const video_sd = $('tr:nth-child(2) > td:nth-child(4) > a').attr('href'); \n let audio = $('body > div.jumbotron > div > center > div.row > div > div:nth-child(5) > table > tbody > tr:nth-child(3) > td:nth-child(4) > a').attr('href');\n if (audio && !audio.startsWith('http')) audio = 'https://twdown.net/' + audio;\n if (!video_sd && !video_hd) {\n throw new Error(\"No media found. Account might be private or link is invalid.\");\n }\n const result: TwitterResult = {\n author: AUTHOR,\n status: true,\n desc: desc || \"X/Twitter Video\",\n thumbnail: thumb || \"\",\n video_sd,\n video_hd,\n audio\n };\n resolve(result);\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"X/Twitter Download Failed\"\n });\n }\n });\n};\n","import ytdl from '@distube/ytdl-core';\nimport yts from 'yt-search';\nimport { AUTHOR, YouTubeResult, YouTubeSearchResult } from '../types';\n\n/*\n * YouTube Search\n */\nexport const search = async (query: string): Promise<YouTubeSearchResult[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const result = await yts(query);\n if (!result.all || result.all.length === 0) {\n return reject(new Error(\"No results found on YouTube.\"));\n }\n const data: YouTubeSearchResult[] = result.all.map((item: any) => {\n return {\n type: item.type as 'video' | 'channel' | 'list' | 'live',\n url: item.url,\n title: item.title,\n description: item.description,\n image: item.image,\n thumbnail: item.thumbnail,\n seconds: (item as any).seconds,\n timestamp: (item as any).timestamp,\n views: (item as any).views,\n ago: (item as any).ago,\n author: (item as any).author ? {\n name: (item as any).author.name,\n url: (item as any).author.url\n } : undefined\n };\n });\n resolve(data);\n } catch (error: any) {\n reject({\n message: error.message || \"YouTube Search Failed\"\n });\n }\n });\n};\n\n/*\n * YouTube Audio Downloader\n */\nexport const ytmp3 = async (url: string): Promise<YouTubeResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n if (!ytdl.validateURL(url)) {\n throw new Error(\"Invalid YouTube URL\");\n }\n const info = await ytdl.getInfo(url);\n const format = ytdl.chooseFormat(info.formats, { \n quality: 'highestaudio',\n filter: 'audioonly' \n });\n if (!format) throw new Error(\"No audio stream found\");\n const result: YouTubeResult = {\n author: AUTHOR,\n title: info.videoDetails.title,\n thumbnail: info.videoDetails.thumbnails[info.videoDetails.thumbnails.length - 1].url, // Highest res\n channel: info.videoDetails.ownerChannelName,\n published: info.videoDetails.publishDate,\n views: info.videoDetails.viewCount,\n duration: info.videoDetails.lengthSeconds,\n url: format.url\n };\n resolve(result);\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"YouTube MP3 Failed\"\n });\n }\n });\n};\n\n/*\n * YouTube Video Downloader\n */\nexport const ytmp4 = async (url: string): Promise<YouTubeResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n if (!ytdl.validateURL(url)) {\n throw new Error(\"Invalid YouTube URL\");\n }\n const info = await ytdl.getInfo(url);\n const format = ytdl.chooseFormat(info.formats, { \n quality: 'highest',\n filter: (f) => f.hasAudio === true && f.hasVideo === true && f.container === 'mp4'\n });\n const finalFormat = format || ytdl.chooseFormat(info.formats, { \n quality: 'highest',\n filter: (f) => f.hasAudio === true && f.hasVideo === true\n });\n if (!finalFormat) throw new Error(\"No video stream found\");\n const result: YouTubeResult = {\n author: AUTHOR,\n title: info.videoDetails.title,\n thumbnail: info.videoDetails.thumbnails[info.videoDetails.thumbnails.length - 1].url,\n channel: info.videoDetails.ownerChannelName,\n published: info.videoDetails.publishDate,\n views: info.videoDetails.viewCount,\n duration: info.videoDetails.lengthSeconds,\n url: finalFormat.url\n };\n resolve(result);\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"YouTube MP4 Failed\"\n });\n }\n });\n};\n\n/**\n * YouTube Play (Search & Download)\n * Searches for a query, grabs the first result, and returns the download link\n */\nexport const play = async (query: string, type: 'mp3' | 'mp4' = 'mp3'): Promise<YouTubeResult> => {\n try {\n const searchResults = await yts(query);\n const videos = searchResults.all.filter((v: any) => v.type === 'video');\n if (videos.length === 0) {\n throw new Error(`No video results found for: ${query}`);\n }\n const firstVideo = videos[0];\n if (type === 'mp4') {\n return await ytmp4(firstVideo.url);\n } else {\n return await ytmp3(firstVideo.url);\n }\n } catch (error: any) {\n throw new Error(`Play Failed: ${error.message}`);\n }\n};\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport FormData from 'form-data';\nimport https from 'https';\nimport { AUTHOR, Author } from '../types';\n\nconst HEADERS = {\n 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'\n};\n\nconst ignoreSSL = new https.Agent({ \n rejectUnauthorized: false,\n servername: 'inferenceengine.vyro.ai'\n});\n\nconst MORSE_MAP: Record<string, string> = {\n 'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.',\n 'G': '--.', 'H': '....', 'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..',\n 'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.',\n 'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-',\n 'Y': '-.--', 'Z': '--..',\n '0': '-----', '1': '.----', '2': '..---', '3': '...--', '4': '....-',\n '5': '.....', '6': '-....', '7': '--...', '8': '---..', '9': '----.',\n '.': '.-.-.-', ',': '--..--', '?': '..--..', \"'\": '.----.', '!': '-.-.--',\n '/': '-..-.', '(': '-.--.', ')': '-.--.-', '&': '.-...', ':': '---...',\n ';': '-.-.-.', '=': '-...-', '+': '.-.-.', '-': '-....-', '_': '..--.-',\n '\"': '.-..-.', '$': '...-..-', '@': '.--.-.',\n ' ': '/' \n};\nconst REVERSE_MORSE = Object.fromEntries(\n Object.entries(MORSE_MAP).map(([char, code]) => [code, char])\n);\n\nexport const ssweb = async (url: string, device: 'desktop' | 'tablet' | 'phone' = 'desktop'): Promise<Buffer> => {\n return new Promise(async (resolve, reject) => {\n try {\n const baseURL = 'https://www.screenshotmachine.com';\n const param = { url: url, device: device, cacheLimit: 0 };\n const { data, headers } = await axios.post(`${baseURL}/capture.php`, \n new URLSearchParams(param as any), {\n headers: { 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8', 'User-Agent': HEADERS['User-Agent'] }\n });\n if (data.status !== 'success') throw new Error('Screenshot generation failed');\n const cookies = headers['set-cookie']?.join('') || '';\n const imageResponse = await axios.get(`${baseURL}/${data.link}`, {\n headers: { 'cookie': cookies, 'User-Agent': HEADERS['User-Agent'] },\n responseType: 'arraybuffer'\n });\n resolve(imageResponse.data);\n } catch (error: any) {\n reject(new Error(`SSWeb Failed: ${error.message}`));\n }\n });\n};\n\nexport const remini = async (imageUrl: string, method: 'enhance' | 'recolor' | 'dehaze' = 'enhance'): Promise<Buffer> => {\n return new Promise(async (resolve, reject) => {\n try {\n const validMethods = [\"enhance\", \"recolor\", \"dehaze\"];\n const selectedMethod = validMethods.includes(method) ? method : \"enhance\";\n const imgBuffer = await axios.get(imageUrl, { responseType: 'arraybuffer' });\n const form = new FormData();\n form.append(\"model_version\", 1, {\n header: { \"Content-Transfer-Encoding\": \"binary\", \"contentType\": \"multipart/form-data; charset=utf-8\" }\n });\n form.append(\"image\", Buffer.from(imgBuffer.data), {\n filename: \"enhance_image_body.jpg\",\n contentType: \"image/jpeg\",\n });\n const url = `https://inferenceengine.vyro.ai/${selectedMethod}`;\n const response = await axios.post(url, form, {\n headers: {\n ...form.getHeaders(),\n \"User-Agent\": \"okhttp/4.9.3\",\n \"Connection\": \"Keep-Alive\",\n \"Accept-Encoding\": \"gzip\"\n },\n responseType: 'arraybuffer',\n httpsAgent: ignoreSSL \n });\n resolve(response.data);\n } catch (error: any) {\n reject(new Error(`Remini Failed: ${error.message}`));\n }\n });\n};\n\nexport const styleText = async (text: string): Promise<{ author: Author, name: string, result: string }[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const { data } = await axios.get(`http://qaz.wtf/u/convert.cgi?text=${encodeURIComponent(text)}`);\n const $ = cheerio.load(data);\n const result: { author: Author, name: string, result: string }[] = [];\n $('table > tbody > tr').each((i, el) => {\n const name = $(el).find('td').first().text().trim();\n const styled = $(el).find('td').eq(1).text().trim();\n if (name && styled) {\n result.push({ author: AUTHOR, name: name, result: styled });\n }\n });\n resolve(result);\n } catch (error: any) {\n reject(new Error(`StyleText Failed: ${error.message}`));\n }\n });\n};\n\nexport const wattpad = async (query: string): Promise<any[]> => {\n try {\n const { data } = await axios.get(`https://www.wattpad.com/search/${encodeURIComponent(query)}`, { headers: HEADERS });\n const $ = cheerio.load(data);\n const results: any[] = [];\n $('.story-card').each((i, el) => {\n const title = $(el).find('.story-title').text().trim();\n const image = $(el).find('.cover img').attr('src');\n const link = 'https://www.wattpad.com' + $(el).find('a.story-card-data').attr('href');\n const reads = $(el).find('.read-count').text().trim(); \n if (title) results.push({ author: AUTHOR, title, image, link, reads });\n });\n if (results.length === 0) {\n $('div.cover').each((i, el) => {\n results.push({ author: AUTHOR, image: $(el).find('img').attr('src') });\n });\n }\n return results;\n } catch (error: any) {\n throw new Error(`Wattpad Failed: ${error.message}`);\n }\n};\n\n/**\n * Morse Code Engine\n * Encodes Text to Morse OR Decodes Morse to Text\n */\nexport const morse = async (input: string, mode: 'encode' | 'decode' = 'encode'): Promise<string> => {\n return new Promise((resolve) => {\n if (mode === 'encode') {\n const result = input\n .toUpperCase()\n .split('')\n .map(char => MORSE_MAP[char] || char)\n .join(' ');\n resolve(result);\n } else {\n const result = input\n .split(' ') \n .map(code => REVERSE_MORSE[code] || (code === '/' ? ' ' : code))\n .join('')\n .replace(/\\s+/g, ' ').trim();\n resolve(result);\n }\n });\n};\n\nexport const tts = async (text: string, lang: string = 'en'): Promise<Buffer> => {\n return new Promise(async (resolve, reject) => {\n try {\n const GOOGLE_TTS_URL = 'https://translate.google.com/translate_tts';\n \n // Limit text length (Google blocks long requests ~200 chars)\n if (text.length > 200) {\n throw new Error(\"Text is too long. Maximum 200 characters.\");\n }\n\n const { data } = await axios.get(GOOGLE_TTS_URL, {\n params: {\n ie: 'UTF-8',\n q: text,\n tl: lang,\n client: 'tw-ob' // The magic key to bypass auth\n },\n responseType: 'arraybuffer', // We need raw audio data\n headers: HEADERS\n });\n\n resolve(data);\n } catch (error: any) {\n reject(new Error(`TTS Failed: ${error.message}`));\n }\n });\n};\n\n\nexport const chords = async (query: string): Promise<any> => {\n try {\n const searchUrl = `https://www.gitagram.com/?s=${encodeURIComponent(query).replace(/%20/g, \"+\")}`;\n const { data } = await axios.get(searchUrl, { headers: HEADERS });\n const $ = cheerio.load(data); \n const firstResultUrl = $(\"table.table > tbody > tr\").eq(0).find(\"td\").eq(0).find(\"a\").eq(0).attr(\"href\");\n if (!firstResultUrl) throw new Error(\"No chords found\");\n const songPage = await axios.get(firstResultUrl, { headers: HEADERS });\n const $song = cheerio.load(songPage.data); \n const $hcontent = $song(\"div.hcontent\");\n const artist = $hcontent.find(\"div > a > span.subtitle\").text().trim();\n const title = $hcontent.find(\"h1.title\").text().trim();\n const content = $song(\"div.content > pre\").text().trim();\n return { author: AUTHOR, title, artist, url: firstResultUrl, chord: content };\n } catch (error: any) {\n throw new Error(`Chords Failed: ${error.message}`);\n }\n};\n","import { tiktok, tiktokSlide } from './dl/tiktok';\nimport { igdl, fbdl } from './dl/social';\nimport { twitter } from './dl/twitter';\nimport { search as ytSearch, ytmp3, ytmp4, play } from './dl/youtube';\nimport { ssweb, remini, styleText, wattpad, chords, morse, tts } from './utils/tools';\n\nexport * from './types';\nexport { \n tiktok, \n tiktokSlide, \n igdl, \n fbdl,\n twitter,\n twitter as xdl,\n ytSearch, \n ytmp3, \n ytmp4, \n play,\n ssweb,\n tts,\n remini, \n styleText, \n wattpad, \n chords,\n morse\n};\nexport const downloader = {\n tiktok,\n tiktokSlide,\n igdl,\n fbdl,\n twitter,\n xdl: twitter,\n ytmp3,\n ytmp4,\n play\n};\nexport const search = {\n youtube: ytSearch,\n wattpad,\n chords\n};\nexport const tools = {\n ssweb,\n remini,\n styleText,\n morse,\n tts\n};\nexport default {\n downloader,\n search,\n tools\n};\n"]}
package/dist/index.mjs CHANGED
@@ -654,6 +654,31 @@ var morse = async (input, mode = "encode") => {
654
654
  }
655
655
  });
656
656
  };
657
+ var tts = async (text, lang = "en") => {
658
+ return new Promise(async (resolve, reject) => {
659
+ try {
660
+ const GOOGLE_TTS_URL = "https://translate.google.com/translate_tts";
661
+ if (text.length > 200) {
662
+ throw new Error("Text is too long. Maximum 200 characters.");
663
+ }
664
+ const { data } = await axios4.get(GOOGLE_TTS_URL, {
665
+ params: {
666
+ ie: "UTF-8",
667
+ q: text,
668
+ tl: lang,
669
+ client: "tw-ob"
670
+ // The magic key to bypass auth
671
+ },
672
+ responseType: "arraybuffer",
673
+ // We need raw audio data
674
+ headers: HEADERS
675
+ });
676
+ resolve(data);
677
+ } catch (error) {
678
+ reject(new Error(`TTS Failed: ${error.message}`));
679
+ }
680
+ });
681
+ };
657
682
  var chords = async (query) => {
658
683
  try {
659
684
  const searchUrl = `https://www.gitagram.com/?s=${encodeURIComponent(query).replace(/%20/g, "+")}`;
@@ -694,7 +719,8 @@ var tools = {
694
719
  ssweb,
695
720
  remini,
696
721
  styleText,
697
- morse
722
+ morse,
723
+ tts
698
724
  };
699
725
  var index_default = {
700
726
  downloader,
@@ -702,6 +728,6 @@ var index_default = {
702
728
  tools
703
729
  };
704
730
 
705
- export { AUTHOR, chords, index_default as default, downloader, fbdl, igdl, morse, play, remini, search2 as search, ssweb, styleText, tiktok, tiktokSlide, tools, twitter, wattpad, twitter as xdl, search as ytSearch, ytmp3, ytmp4 };
731
+ export { AUTHOR, chords, index_default as default, downloader, fbdl, igdl, morse, play, remini, search2 as search, ssweb, styleText, tiktok, tiktokSlide, tools, tts, twitter, wattpad, twitter as xdl, search as ytSearch, ytmp3, ytmp4 };
706
732
  //# sourceMappingURL=index.mjs.map
707
733
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types.ts","../src/dl/tiktok.ts","../src/dl/social.ts","../src/dl/twitter.ts","../src/dl/youtube.ts","../src/utils/tools.ts","../src/index.ts"],"names":["axios","cheerio","USER_AGENTS","getRandomHeaders","cheerio2","cleanUrl","cheerio3","search"],"mappings":"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","file":"index.mjs","sourcesContent":["export interface Author {\n name: string;\n source: string;\n}\n\nexport const AUTHOR: Author = {\n name: \"HEAVSTAL TECH\",\n source: \"https://heavstal-tech.vercel.app\"\n};\n\nexport interface TikTokResult {\n author: Author;\n status: boolean;\n title: string;\n cover?: string;\n origin_cover?: string;\n no_watermark?: string;\n watermark?: string;\n music?: string;\n views?: number | string;\n likes?: number | string;\n comments?: number | string;\n shares?: number | string;\n downloads?: number | string;\n uniqueId?: string;\n profileUrl?: string;\n profileImage?: string;\n hashtags?: string[];\n slideImages?: string[];\n author_name?: string;\n}\n\nexport interface SocialResult {\n author: Author;\n status: boolean;\n type: 'video' | 'image';\n title?: string;\n thumbnail?: string;\n url: string;\n}\n\nexport interface YouTubeResult {\n author: Author;\n title: string;\n thumbnail: string;\n channel: string;\n published: string;\n views: string;\n url: string;\n duration?: number | string;\n status?: boolean;\n}\n\nexport interface YouTubeSearchResult {\n type: 'video' | 'channel' | 'list' | 'live';\n url: string;\n title: string;\n description?: string;\n image?: string;\n thumbnail?: string;\n seconds?: number;\n timestamp?: string;\n views?: number;\n ago?: string;\n author?: {\n name: string;\n url: string;\n };\n}\n\nexport interface UtilsResult {\n author: Author;\n status: boolean;\n data: Buffer | string | any;\n}\n\nexport interface TwitterResult {\n author: Author;\n status: boolean;\n desc: string;\n thumbnail: string;\n video_sd?: string;\n video_hd?: string;\n audio?: string;\n}\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport { AUTHOR, TikTokResult } from '../types';\n\nconst USER_AGENTS = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36',\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1'\n];\n\nconst getRandomHeaders = () => ({\n 'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)],\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n 'Accept': 'application/json, text/javascript, */*; q=0.01'\n});\n\nconst cleanText = (str: string) => str ? str.replace(/(<br?\\s?\\/?>)/gi, \" \\n\").replace(/(<([^>]+)>)/gi, \"\").trim() : \"\";\nconst cleanUrl = (url: string) => url ? url.replace('https:', 'http:') : \"\";\n\nconst lovetikFallback = async (url: string): Promise<TikTokResult> => {\n try {\n const { data } = await axios.post(\"https://lovetik.com/api/ajax/search\", \n new URLSearchParams({ query: url }), \n { headers: getRandomHeaders() }\n );\n\n if (!data.links) throw new Error(\"Lovetik: No links found\");\n\n return {\n author: AUTHOR,\n status: true,\n title: cleanText(data.desc),\n cover: cleanUrl(data.cover),\n no_watermark: cleanUrl(data.links.find((l: any) => l.a && !l.s)?.a), // Usually the first link is No WM\n watermark: cleanUrl(data.links.find((l: any) => l.s?.includes('Watermark'))?.a),\n music: cleanUrl(data.links.find((l: any) => l.t?.includes('Audio'))?.a),\n author_name: cleanText(data.author),\n views: \"N/A\"\n } as TikTokResult;\n\n } catch (error: any) {\n throw new Error(`Fallback Failed: ${error.message}`);\n }\n};\n\n/**\n * Main TikTok Function\n * Supports: URL Download & Search Query\n */\nexport const tiktok = async (input: string): Promise<TikTokResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n const isUrl = input.match(/tiktok\\.com/i);\n let data;\n \n try {\n if (isUrl) {\n const apiUrl = `https://www.tikwm.com/api/?url=${encodeURIComponent(input)}`;\n const response = await axios.get(apiUrl, { headers: getRandomHeaders() });\n if (response.data.code !== 0) throw new Error(\"Private video or Invalid URL\");\n data = response.data.data;\n } else {\n const apiUrl = `https://www.tikwm.com/api/feed/search`;\n const response = await axios.post(apiUrl, \n new URLSearchParams({\n keywords: input,\n count: '1',\n cursor: '0',\n HD: '1'\n }), \n { headers: { ...getRandomHeaders(), 'Cookie': 'current_language=en' } }\n );\n \n if (!response.data.data?.videos || response.data.data.videos.length === 0) {\n throw new Error(`No results found for: ${input}`);\n }\n data = response.data.data.videos[0];\n }\n\n const result: TikTokResult = {\n author: AUTHOR,\n status: true,\n title: data.title,\n cover: data.cover,\n origin_cover: data.origin_cover,\n no_watermark: data.play,\n watermark: data.wmplay,\n music: data.music,\n views: data.play_count,\n likes: data.digg_count,\n comments: data.comment_count,\n shares: data.share_count,\n downloads: data.download_count\n };\n resolve(result);\n\n } catch (primaryError) {\n if (isUrl) {\n console.warn(\"Primary TikTok API failed, switching to fallback...\");\n const fallbackData = await lovetikFallback(input);\n resolve(fallbackData);\n } else {\n throw primaryError;\n }\n }\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"TikTok processing failed\"\n });\n }\n });\n};\n\n/**\n * TikTok Slide Downloader\n */\nexport const tiktokSlide = async (url: string): Promise<TikTokResult> => {\n try {\n const response = await axios.post(\"https://api.ttsave.app/\", {\n id: url,\n hash: '1e3a27c51eb6370b0db6f9348a481d69',\n mode: 'slide',\n locale: 'en',\n loading_indicator_url: 'https://ttsave.app/images/slow-down.gif',\n unlock_url: 'https://ttsave.app/en/unlock'\n }, {\n headers: getRandomHeaders()\n });\n\n const $ = cheerio.load(response.data);\n const $element = $('div.flex.flex-col.items-center.justify-center.mt-2.mb-5');\n if ($element.length === 0) throw new Error(\"Slide not found or service unavailable\");\n const statsDiv = $element.find('div.flex.flex-row.items-center.justify-center');\n return {\n author: AUTHOR,\n status: true,\n uniqueId: $element.find('input#unique-id').attr('value'),\n title: $element.find('div.flex.flex-row.items-center.justify-center h2').text().trim(),\n profileImage: $element.find('a').first().find('img').attr('src'),\n profileUrl: $element.find('a').first().attr('href'),\n hashtags: $element.find('p.text-gray-600').text().split(' ').filter(Boolean),\n likes: statsDiv.eq(0).find('span').text().trim(),\n comments: statsDiv.eq(1).find('span').text().trim(),\n shares: statsDiv.eq(2).find('span').text().trim(),\n downloads: statsDiv.eq(3).find('span').text().trim(),\n views: statsDiv.eq(4).find('span').text().trim()\n };\n } catch (error: any) {\n return {\n author: AUTHOR,\n status: false,\n title: \"Error\",\n views: error.message\n } as TikTokResult;\n }\n};\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport { AUTHOR, SocialResult } from '../types';\n\nconst USER_AGENTS = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36',\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1'\n];\nconst getRandomHeaders = () => ({\n 'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)],\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',\n 'Accept-Language': 'en-US,en;q=0.5',\n 'Accept-Encoding': 'gzip, deflate, br',\n 'Connection': 'keep-alive'\n});\n\n/**\n * Facebook Video Downloader\n * Source: getmyfb.com\n */\nexport const fbdl = async (url: string): Promise<SocialResult[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const { data } = await axios.post(\"https://getmyfb.com/process\", \n new URLSearchParams({\n id: url,\n locale: \"en\"\n }), \n {\n headers: {\n ...getRandomHeaders(),\n \"Content-Type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n \"Cookie\": \"PHPSESSID=mtkljtmk74aiej5h6d846gjbo4; __cflb=04dToeZfC9vebXjRcJCMjjSQh5PprejufZXs2vHCt5; _token=K5Qobnj4QvoYKeLCW6uk\" //s\n }\n }\n );\n\n const $ = cheerio.load(data);\n const results: SocialResult[] = [];\n const title = $(\"div.results-item-text\").eq(0).text().trim();\n const thumbnail = $(\".results-item-image-wrapper img\").attr(\"src\") || \"\";\n $(\"a.btn-download\").each((i, el) => {\n const link = $(el).attr(\"href\");\n if (link) {\n results.push({\n author: AUTHOR,\n status: true,\n type: 'video',\n title: title || \"Facebook Video\",\n thumbnail: thumbnail,\n url: link\n });\n }\n });\n\n if (results.length === 0) {\n const singleLink = $(\"a\").attr(\"href\");\n if(singleLink && singleLink.startsWith('http')) {\n results.push({\n author: AUTHOR,\n status: true,\n type: 'video',\n title: title,\n thumbnail: thumbnail,\n url: singleLink\n })\n } else {\n reject(new Error(\"No Facebook video found (Private or Invalid URL)\"));\n return;\n }\n }\n resolve(results);\n\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"Facebook Download Failed\"\n });\n }\n });\n};\n\n/**\n * Instagram Downloader\n * Source: indown.io\n */\nexport const igdl = async (url: string): Promise<SocialResult[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const initialResponse = await axios.get(\"https://indown.io/\", {\n headers: getRandomHeaders()\n });\n \n const _$ = cheerio.load(initialResponse.data);\n const referer = _$(\"input[name=referer]\").val() as string;\n const locale = _$(\"input[name=locale]\").val() as string;\n const _token = _$(\"input[name=_token]\").val() as string;\n const cookies = initialResponse.headers[\"set-cookie\"]?.join(\" \") || \"\";\n\n if (!_token) throw new Error(\"Failed to fetch Instagram token\");\n const { data } = await axios.post(\n \"https://indown.io/download\",\n new URLSearchParams({\n link: url,\n referer,\n locale,\n _token,\n }),\n {\n headers: {\n ...getRandomHeaders(),\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n \"Cookie\": cookies,\n \"Origin\": \"https://indown.io\",\n \"Referer\": \"https://indown.io/\"\n },\n }\n );\n\n const $ = cheerio.load(data);\n const result: SocialResult[] = [];\n $(\"video\").each(function () {\n const $$ = $(this);\n const src = $$.find(\"source\").attr(\"src\");\n const poster = $$.attr(\"poster\");\n if (src) {\n result.push({\n author: AUTHOR,\n status: true,\n type: \"video\",\n thumbnail: poster,\n url: src,\n });\n }\n });\n\n $(\"img.img-fluid\").each(function () {\n const $$ = $(this);\n const src = $$.attr(\"src\");\n if (src) {\n result.push({\n author: AUTHOR,\n status: true,\n type: \"image\",\n thumbnail: src,\n url: src,\n });\n }\n });\n \n if(result.length === 0) {\n $(\".btn-group a\").each((i, el) => {\n const link = $(el).attr(\"href\");\n if(link && link !== \"#\") {\n result.push({\n author: AUTHOR,\n status: true,\n type: \"video\",\n url: link\n });\n }\n });\n }\n\n if (result.length === 0) {\n const errorMsg = $(\".alert-danger\").text().trim();\n reject(new Error(errorMsg || \"No media found. Account might be private.\"));\n } else {\n resolve(result);\n }\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"Instagram Download Failed\"\n });\n }\n });\n};\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport { AUTHOR, TwitterResult } from '../types';\nconst USER_AGENTS = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'\n];\nconst getRandomHeaders = () => ({\n 'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)],\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Origin': 'https://twdown.net',\n 'Referer': 'https://twdown.net/'\n});\n\n/**\n * Twitter/X Video Downloader\n * x.com and twitter.com links\n */\nexport const twitter = async (url: string): Promise<TwitterResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n const cleanUrl = url.replace(\"x.com\", \"twitter.com\");\n const config = new URLSearchParams({ URL: cleanUrl });\n const { data } = await axios.post('https://twdown.net/download.php', config, {\n headers: getRandomHeaders()\n });\n const $ = cheerio.load(data);\n const desc = $('div:nth-child(1) > div:nth-child(2) > p').text().trim();\n const thumb = $('div:nth-child(1) > img').attr('src'); \n const video_hd = $('tbody > tr:nth-child(1) > td:nth-child(4) > a').attr('href');\n const video_sd = $('tr:nth-child(2) > td:nth-child(4) > a').attr('href'); \n let audio = $('body > div.jumbotron > div > center > div.row > div > div:nth-child(5) > table > tbody > tr:nth-child(3) > td:nth-child(4) > a').attr('href');\n if (audio && !audio.startsWith('http')) audio = 'https://twdown.net/' + audio;\n if (!video_sd && !video_hd) {\n throw new Error(\"No media found. Account might be private or link is invalid.\");\n }\n const result: TwitterResult = {\n author: AUTHOR,\n status: true,\n desc: desc || \"X/Twitter Video\",\n thumbnail: thumb || \"\",\n video_sd,\n video_hd,\n audio\n };\n resolve(result);\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"X/Twitter Download Failed\"\n });\n }\n });\n};\n","import ytdl from '@distube/ytdl-core';\nimport yts from 'yt-search';\nimport { AUTHOR, YouTubeResult, YouTubeSearchResult } from '../types';\n\n/*\n * YouTube Search\n */\nexport const search = async (query: string): Promise<YouTubeSearchResult[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const result = await yts(query);\n if (!result.all || result.all.length === 0) {\n return reject(new Error(\"No results found on YouTube.\"));\n }\n const data: YouTubeSearchResult[] = result.all.map((item: any) => {\n return {\n type: item.type as 'video' | 'channel' | 'list' | 'live',\n url: item.url,\n title: item.title,\n description: item.description,\n image: item.image,\n thumbnail: item.thumbnail,\n seconds: (item as any).seconds,\n timestamp: (item as any).timestamp,\n views: (item as any).views,\n ago: (item as any).ago,\n author: (item as any).author ? {\n name: (item as any).author.name,\n url: (item as any).author.url\n } : undefined\n };\n });\n resolve(data);\n } catch (error: any) {\n reject({\n message: error.message || \"YouTube Search Failed\"\n });\n }\n });\n};\n\n/*\n * YouTube Audio Downloader\n */\nexport const ytmp3 = async (url: string): Promise<YouTubeResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n if (!ytdl.validateURL(url)) {\n throw new Error(\"Invalid YouTube URL\");\n }\n const info = await ytdl.getInfo(url);\n const format = ytdl.chooseFormat(info.formats, { \n quality: 'highestaudio',\n filter: 'audioonly' \n });\n if (!format) throw new Error(\"No audio stream found\");\n const result: YouTubeResult = {\n author: AUTHOR,\n title: info.videoDetails.title,\n thumbnail: info.videoDetails.thumbnails[info.videoDetails.thumbnails.length - 1].url, // Highest res\n channel: info.videoDetails.ownerChannelName,\n published: info.videoDetails.publishDate,\n views: info.videoDetails.viewCount,\n duration: info.videoDetails.lengthSeconds,\n url: format.url\n };\n resolve(result);\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"YouTube MP3 Failed\"\n });\n }\n });\n};\n\n/*\n * YouTube Video Downloader\n */\nexport const ytmp4 = async (url: string): Promise<YouTubeResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n if (!ytdl.validateURL(url)) {\n throw new Error(\"Invalid YouTube URL\");\n }\n const info = await ytdl.getInfo(url);\n const format = ytdl.chooseFormat(info.formats, { \n quality: 'highest',\n filter: (f) => f.hasAudio === true && f.hasVideo === true && f.container === 'mp4'\n });\n const finalFormat = format || ytdl.chooseFormat(info.formats, { \n quality: 'highest',\n filter: (f) => f.hasAudio === true && f.hasVideo === true\n });\n if (!finalFormat) throw new Error(\"No video stream found\");\n const result: YouTubeResult = {\n author: AUTHOR,\n title: info.videoDetails.title,\n thumbnail: info.videoDetails.thumbnails[info.videoDetails.thumbnails.length - 1].url,\n channel: info.videoDetails.ownerChannelName,\n published: info.videoDetails.publishDate,\n views: info.videoDetails.viewCount,\n duration: info.videoDetails.lengthSeconds,\n url: finalFormat.url\n };\n resolve(result);\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"YouTube MP4 Failed\"\n });\n }\n });\n};\n\n/**\n * YouTube Play (Search & Download)\n * Searches for a query, grabs the first result, and returns the download link\n */\nexport const play = async (query: string, type: 'mp3' | 'mp4' = 'mp3'): Promise<YouTubeResult> => {\n try {\n const searchResults = await yts(query);\n const videos = searchResults.all.filter((v: any) => v.type === 'video');\n if (videos.length === 0) {\n throw new Error(`No video results found for: ${query}`);\n }\n const firstVideo = videos[0];\n if (type === 'mp4') {\n return await ytmp4(firstVideo.url);\n } else {\n return await ytmp3(firstVideo.url);\n }\n } catch (error: any) {\n throw new Error(`Play Failed: ${error.message}`);\n }\n};\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport FormData from 'form-data';\nimport https from 'https';\nimport { AUTHOR, Author } from '../types';\n\nconst HEADERS = {\n 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'\n};\n\nconst ignoreSSL = new https.Agent({ \n rejectUnauthorized: false,\n servername: 'inferenceengine.vyro.ai'\n});\n\nconst MORSE_MAP: Record<string, string> = {\n 'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.',\n 'G': '--.', 'H': '....', 'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..',\n 'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.',\n 'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-',\n 'Y': '-.--', 'Z': '--..',\n '0': '-----', '1': '.----', '2': '..---', '3': '...--', '4': '....-',\n '5': '.....', '6': '-....', '7': '--...', '8': '---..', '9': '----.',\n '.': '.-.-.-', ',': '--..--', '?': '..--..', \"'\": '.----.', '!': '-.-.--',\n '/': '-..-.', '(': '-.--.', ')': '-.--.-', '&': '.-...', ':': '---...',\n ';': '-.-.-.', '=': '-...-', '+': '.-.-.', '-': '-....-', '_': '..--.-',\n '\"': '.-..-.', '$': '...-..-', '@': '.--.-.',\n ' ': '/' \n};\nconst REVERSE_MORSE = Object.fromEntries(\n Object.entries(MORSE_MAP).map(([char, code]) => [code, char])\n);\n\nexport const ssweb = async (url: string, device: 'desktop' | 'tablet' | 'phone' = 'desktop'): Promise<Buffer> => {\n return new Promise(async (resolve, reject) => {\n try {\n const baseURL = 'https://www.screenshotmachine.com';\n const param = { url: url, device: device, cacheLimit: 0 };\n const { data, headers } = await axios.post(`${baseURL}/capture.php`, \n new URLSearchParams(param as any), {\n headers: { 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8', 'User-Agent': HEADERS['User-Agent'] }\n });\n if (data.status !== 'success') throw new Error('Screenshot generation failed');\n const cookies = headers['set-cookie']?.join('') || '';\n const imageResponse = await axios.get(`${baseURL}/${data.link}`, {\n headers: { 'cookie': cookies, 'User-Agent': HEADERS['User-Agent'] },\n responseType: 'arraybuffer'\n });\n resolve(imageResponse.data);\n } catch (error: any) {\n reject(new Error(`SSWeb Failed: ${error.message}`));\n }\n });\n};\n\nexport const remini = async (imageUrl: string, method: 'enhance' | 'recolor' | 'dehaze' = 'enhance'): Promise<Buffer> => {\n return new Promise(async (resolve, reject) => {\n try {\n const validMethods = [\"enhance\", \"recolor\", \"dehaze\"];\n const selectedMethod = validMethods.includes(method) ? method : \"enhance\";\n const imgBuffer = await axios.get(imageUrl, { responseType: 'arraybuffer' });\n const form = new FormData();\n form.append(\"model_version\", 1, {\n header: { \"Content-Transfer-Encoding\": \"binary\", \"contentType\": \"multipart/form-data; charset=utf-8\" }\n });\n form.append(\"image\", Buffer.from(imgBuffer.data), {\n filename: \"enhance_image_body.jpg\",\n contentType: \"image/jpeg\",\n });\n const url = `https://inferenceengine.vyro.ai/${selectedMethod}`;\n const response = await axios.post(url, form, {\n headers: {\n ...form.getHeaders(),\n \"User-Agent\": \"okhttp/4.9.3\",\n \"Connection\": \"Keep-Alive\",\n \"Accept-Encoding\": \"gzip\"\n },\n responseType: 'arraybuffer',\n httpsAgent: ignoreSSL \n });\n resolve(response.data);\n } catch (error: any) {\n reject(new Error(`Remini Failed: ${error.message}`));\n }\n });\n};\n\nexport const styleText = async (text: string): Promise<{ author: Author, name: string, result: string }[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const { data } = await axios.get(`http://qaz.wtf/u/convert.cgi?text=${encodeURIComponent(text)}`);\n const $ = cheerio.load(data);\n const result: { author: Author, name: string, result: string }[] = [];\n $('table > tbody > tr').each((i, el) => {\n const name = $(el).find('td').first().text().trim();\n const styled = $(el).find('td').eq(1).text().trim();\n if (name && styled) {\n result.push({ author: AUTHOR, name: name, result: styled });\n }\n });\n resolve(result);\n } catch (error: any) {\n reject(new Error(`StyleText Failed: ${error.message}`));\n }\n });\n};\n\nexport const wattpad = async (query: string): Promise<any[]> => {\n try {\n const { data } = await axios.get(`https://www.wattpad.com/search/${encodeURIComponent(query)}`, { headers: HEADERS });\n const $ = cheerio.load(data);\n const results: any[] = [];\n $('.story-card').each((i, el) => {\n const title = $(el).find('.story-title').text().trim();\n const image = $(el).find('.cover img').attr('src');\n const link = 'https://www.wattpad.com' + $(el).find('a.story-card-data').attr('href');\n const reads = $(el).find('.read-count').text().trim(); \n if (title) results.push({ author: AUTHOR, title, image, link, reads });\n });\n if (results.length === 0) {\n $('div.cover').each((i, el) => {\n results.push({ author: AUTHOR, image: $(el).find('img').attr('src') });\n });\n }\n return results;\n } catch (error: any) {\n throw new Error(`Wattpad Failed: ${error.message}`);\n }\n};\n\n/**\n * Morse Code Engine\n * Encodes Text to Morse OR Decodes Morse to Text\n */\nexport const morse = async (input: string, mode: 'encode' | 'decode' = 'encode'): Promise<string> => {\n return new Promise((resolve) => {\n if (mode === 'encode') {\n const result = input\n .toUpperCase()\n .split('')\n .map(char => MORSE_MAP[char] || char)\n .join(' ');\n resolve(result);\n } else {\n const result = input\n .split(' ') \n .map(code => REVERSE_MORSE[code] || (code === '/' ? ' ' : code))\n .join('')\n .replace(/\\s+/g, ' ').trim();\n resolve(result);\n }\n });\n};\n\nexport const chords = async (query: string): Promise<any> => {\n try {\n const searchUrl = `https://www.gitagram.com/?s=${encodeURIComponent(query).replace(/%20/g, \"+\")}`;\n const { data } = await axios.get(searchUrl, { headers: HEADERS });\n const $ = cheerio.load(data); \n const firstResultUrl = $(\"table.table > tbody > tr\").eq(0).find(\"td\").eq(0).find(\"a\").eq(0).attr(\"href\");\n if (!firstResultUrl) throw new Error(\"No chords found\");\n const songPage = await axios.get(firstResultUrl, { headers: HEADERS });\n const $song = cheerio.load(songPage.data); \n const $hcontent = $song(\"div.hcontent\");\n const artist = $hcontent.find(\"div > a > span.subtitle\").text().trim();\n const title = $hcontent.find(\"h1.title\").text().trim();\n const content = $song(\"div.content > pre\").text().trim();\n return { author: AUTHOR, title, artist, url: firstResultUrl, chord: content };\n } catch (error: any) {\n throw new Error(`Chords Failed: ${error.message}`);\n }\n};\n","import { tiktok, tiktokSlide } from './dl/tiktok';\nimport { igdl, fbdl } from './dl/social';\nimport { twitter } from './dl/twitter';\nimport { search as ytSearch, ytmp3, ytmp4, play } from './dl/youtube';\nimport { ssweb, remini, styleText, wattpad, chords, morse } from './utils/tools';\n\nexport * from './types';\nexport { \n tiktok, \n tiktokSlide, \n igdl, \n fbdl,\n twitter,\n twitter as xdl,\n ytSearch, \n ytmp3, \n ytmp4, \n play,\n ssweb, \n remini, \n styleText, \n wattpad, \n chords,\n morse\n};\nexport const downloader = {\n tiktok,\n tiktokSlide,\n igdl,\n fbdl,\n twitter,\n xdl: twitter,\n ytmp3,\n ytmp4,\n play\n};\nexport const search = {\n youtube: ytSearch,\n wattpad,\n chords\n};\nexport const tools = {\n ssweb,\n remini,\n styleText,\n morse\n};\nexport default {\n downloader,\n search,\n tools\n};\n"]}
1
+ {"version":3,"sources":["../src/types.ts","../src/dl/tiktok.ts","../src/dl/social.ts","../src/dl/twitter.ts","../src/dl/youtube.ts","../src/utils/tools.ts","../src/index.ts"],"names":["axios","cheerio","USER_AGENTS","getRandomHeaders","cheerio2","cleanUrl","cheerio3","search"],"mappings":"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","file":"index.mjs","sourcesContent":["export interface Author {\n name: string;\n source: string;\n}\n\nexport const AUTHOR: Author = {\n name: \"HEAVSTAL TECH\",\n source: \"https://heavstal-tech.vercel.app\"\n};\n\nexport interface TikTokResult {\n author: Author;\n status: boolean;\n title: string;\n cover?: string;\n origin_cover?: string;\n no_watermark?: string;\n watermark?: string;\n music?: string;\n views?: number | string;\n likes?: number | string;\n comments?: number | string;\n shares?: number | string;\n downloads?: number | string;\n uniqueId?: string;\n profileUrl?: string;\n profileImage?: string;\n hashtags?: string[];\n slideImages?: string[];\n author_name?: string;\n}\n\nexport interface SocialResult {\n author: Author;\n status: boolean;\n type: 'video' | 'image';\n title?: string;\n thumbnail?: string;\n url: string;\n}\n\nexport interface YouTubeResult {\n author: Author;\n title: string;\n thumbnail: string;\n channel: string;\n published: string;\n views: string;\n url: string;\n duration?: number | string;\n status?: boolean;\n}\n\nexport interface YouTubeSearchResult {\n type: 'video' | 'channel' | 'list' | 'live';\n url: string;\n title: string;\n description?: string;\n image?: string;\n thumbnail?: string;\n seconds?: number;\n timestamp?: string;\n views?: number;\n ago?: string;\n author?: {\n name: string;\n url: string;\n };\n}\n\nexport interface UtilsResult {\n author: Author;\n status: boolean;\n data: Buffer | string | any;\n}\n\nexport interface TwitterResult {\n author: Author;\n status: boolean;\n desc: string;\n thumbnail: string;\n video_sd?: string;\n video_hd?: string;\n audio?: string;\n}\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport { AUTHOR, TikTokResult } from '../types';\n\nconst USER_AGENTS = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36',\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1'\n];\n\nconst getRandomHeaders = () => ({\n 'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)],\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n 'Accept': 'application/json, text/javascript, */*; q=0.01'\n});\n\nconst cleanText = (str: string) => str ? str.replace(/(<br?\\s?\\/?>)/gi, \" \\n\").replace(/(<([^>]+)>)/gi, \"\").trim() : \"\";\nconst cleanUrl = (url: string) => url ? url.replace('https:', 'http:') : \"\";\n\nconst lovetikFallback = async (url: string): Promise<TikTokResult> => {\n try {\n const { data } = await axios.post(\"https://lovetik.com/api/ajax/search\", \n new URLSearchParams({ query: url }), \n { headers: getRandomHeaders() }\n );\n\n if (!data.links) throw new Error(\"Lovetik: No links found\");\n\n return {\n author: AUTHOR,\n status: true,\n title: cleanText(data.desc),\n cover: cleanUrl(data.cover),\n no_watermark: cleanUrl(data.links.find((l: any) => l.a && !l.s)?.a), // Usually the first link is No WM\n watermark: cleanUrl(data.links.find((l: any) => l.s?.includes('Watermark'))?.a),\n music: cleanUrl(data.links.find((l: any) => l.t?.includes('Audio'))?.a),\n author_name: cleanText(data.author),\n views: \"N/A\"\n } as TikTokResult;\n\n } catch (error: any) {\n throw new Error(`Fallback Failed: ${error.message}`);\n }\n};\n\n/**\n * Main TikTok Function\n * Supports: URL Download & Search Query\n */\nexport const tiktok = async (input: string): Promise<TikTokResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n const isUrl = input.match(/tiktok\\.com/i);\n let data;\n \n try {\n if (isUrl) {\n const apiUrl = `https://www.tikwm.com/api/?url=${encodeURIComponent(input)}`;\n const response = await axios.get(apiUrl, { headers: getRandomHeaders() });\n if (response.data.code !== 0) throw new Error(\"Private video or Invalid URL\");\n data = response.data.data;\n } else {\n const apiUrl = `https://www.tikwm.com/api/feed/search`;\n const response = await axios.post(apiUrl, \n new URLSearchParams({\n keywords: input,\n count: '1',\n cursor: '0',\n HD: '1'\n }), \n { headers: { ...getRandomHeaders(), 'Cookie': 'current_language=en' } }\n );\n \n if (!response.data.data?.videos || response.data.data.videos.length === 0) {\n throw new Error(`No results found for: ${input}`);\n }\n data = response.data.data.videos[0];\n }\n\n const result: TikTokResult = {\n author: AUTHOR,\n status: true,\n title: data.title,\n cover: data.cover,\n origin_cover: data.origin_cover,\n no_watermark: data.play,\n watermark: data.wmplay,\n music: data.music,\n views: data.play_count,\n likes: data.digg_count,\n comments: data.comment_count,\n shares: data.share_count,\n downloads: data.download_count\n };\n resolve(result);\n\n } catch (primaryError) {\n if (isUrl) {\n console.warn(\"Primary TikTok API failed, switching to fallback...\");\n const fallbackData = await lovetikFallback(input);\n resolve(fallbackData);\n } else {\n throw primaryError;\n }\n }\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"TikTok processing failed\"\n });\n }\n });\n};\n\n/**\n * TikTok Slide Downloader\n */\nexport const tiktokSlide = async (url: string): Promise<TikTokResult> => {\n try {\n const response = await axios.post(\"https://api.ttsave.app/\", {\n id: url,\n hash: '1e3a27c51eb6370b0db6f9348a481d69',\n mode: 'slide',\n locale: 'en',\n loading_indicator_url: 'https://ttsave.app/images/slow-down.gif',\n unlock_url: 'https://ttsave.app/en/unlock'\n }, {\n headers: getRandomHeaders()\n });\n\n const $ = cheerio.load(response.data);\n const $element = $('div.flex.flex-col.items-center.justify-center.mt-2.mb-5');\n if ($element.length === 0) throw new Error(\"Slide not found or service unavailable\");\n const statsDiv = $element.find('div.flex.flex-row.items-center.justify-center');\n return {\n author: AUTHOR,\n status: true,\n uniqueId: $element.find('input#unique-id').attr('value'),\n title: $element.find('div.flex.flex-row.items-center.justify-center h2').text().trim(),\n profileImage: $element.find('a').first().find('img').attr('src'),\n profileUrl: $element.find('a').first().attr('href'),\n hashtags: $element.find('p.text-gray-600').text().split(' ').filter(Boolean),\n likes: statsDiv.eq(0).find('span').text().trim(),\n comments: statsDiv.eq(1).find('span').text().trim(),\n shares: statsDiv.eq(2).find('span').text().trim(),\n downloads: statsDiv.eq(3).find('span').text().trim(),\n views: statsDiv.eq(4).find('span').text().trim()\n };\n } catch (error: any) {\n return {\n author: AUTHOR,\n status: false,\n title: \"Error\",\n views: error.message\n } as TikTokResult;\n }\n};\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport { AUTHOR, SocialResult } from '../types';\n\nconst USER_AGENTS = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36',\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1'\n];\nconst getRandomHeaders = () => ({\n 'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)],\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',\n 'Accept-Language': 'en-US,en;q=0.5',\n 'Accept-Encoding': 'gzip, deflate, br',\n 'Connection': 'keep-alive'\n});\n\n/**\n * Facebook Video Downloader\n * Source: getmyfb.com\n */\nexport const fbdl = async (url: string): Promise<SocialResult[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const { data } = await axios.post(\"https://getmyfb.com/process\", \n new URLSearchParams({\n id: url,\n locale: \"en\"\n }), \n {\n headers: {\n ...getRandomHeaders(),\n \"Content-Type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n \"Cookie\": \"PHPSESSID=mtkljtmk74aiej5h6d846gjbo4; __cflb=04dToeZfC9vebXjRcJCMjjSQh5PprejufZXs2vHCt5; _token=K5Qobnj4QvoYKeLCW6uk\" //s\n }\n }\n );\n\n const $ = cheerio.load(data);\n const results: SocialResult[] = [];\n const title = $(\"div.results-item-text\").eq(0).text().trim();\n const thumbnail = $(\".results-item-image-wrapper img\").attr(\"src\") || \"\";\n $(\"a.btn-download\").each((i, el) => {\n const link = $(el).attr(\"href\");\n if (link) {\n results.push({\n author: AUTHOR,\n status: true,\n type: 'video',\n title: title || \"Facebook Video\",\n thumbnail: thumbnail,\n url: link\n });\n }\n });\n\n if (results.length === 0) {\n const singleLink = $(\"a\").attr(\"href\");\n if(singleLink && singleLink.startsWith('http')) {\n results.push({\n author: AUTHOR,\n status: true,\n type: 'video',\n title: title,\n thumbnail: thumbnail,\n url: singleLink\n })\n } else {\n reject(new Error(\"No Facebook video found (Private or Invalid URL)\"));\n return;\n }\n }\n resolve(results);\n\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"Facebook Download Failed\"\n });\n }\n });\n};\n\n/**\n * Instagram Downloader\n * Source: indown.io\n */\nexport const igdl = async (url: string): Promise<SocialResult[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const initialResponse = await axios.get(\"https://indown.io/\", {\n headers: getRandomHeaders()\n });\n \n const _$ = cheerio.load(initialResponse.data);\n const referer = _$(\"input[name=referer]\").val() as string;\n const locale = _$(\"input[name=locale]\").val() as string;\n const _token = _$(\"input[name=_token]\").val() as string;\n const cookies = initialResponse.headers[\"set-cookie\"]?.join(\" \") || \"\";\n\n if (!_token) throw new Error(\"Failed to fetch Instagram token\");\n const { data } = await axios.post(\n \"https://indown.io/download\",\n new URLSearchParams({\n link: url,\n referer,\n locale,\n _token,\n }),\n {\n headers: {\n ...getRandomHeaders(),\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n \"Cookie\": cookies,\n \"Origin\": \"https://indown.io\",\n \"Referer\": \"https://indown.io/\"\n },\n }\n );\n\n const $ = cheerio.load(data);\n const result: SocialResult[] = [];\n $(\"video\").each(function () {\n const $$ = $(this);\n const src = $$.find(\"source\").attr(\"src\");\n const poster = $$.attr(\"poster\");\n if (src) {\n result.push({\n author: AUTHOR,\n status: true,\n type: \"video\",\n thumbnail: poster,\n url: src,\n });\n }\n });\n\n $(\"img.img-fluid\").each(function () {\n const $$ = $(this);\n const src = $$.attr(\"src\");\n if (src) {\n result.push({\n author: AUTHOR,\n status: true,\n type: \"image\",\n thumbnail: src,\n url: src,\n });\n }\n });\n \n if(result.length === 0) {\n $(\".btn-group a\").each((i, el) => {\n const link = $(el).attr(\"href\");\n if(link && link !== \"#\") {\n result.push({\n author: AUTHOR,\n status: true,\n type: \"video\",\n url: link\n });\n }\n });\n }\n\n if (result.length === 0) {\n const errorMsg = $(\".alert-danger\").text().trim();\n reject(new Error(errorMsg || \"No media found. Account might be private.\"));\n } else {\n resolve(result);\n }\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"Instagram Download Failed\"\n });\n }\n });\n};\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport { AUTHOR, TwitterResult } from '../types';\nconst USER_AGENTS = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'\n];\nconst getRandomHeaders = () => ({\n 'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)],\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Origin': 'https://twdown.net',\n 'Referer': 'https://twdown.net/'\n});\n\n/**\n * Twitter/X Video Downloader\n * x.com and twitter.com links\n */\nexport const twitter = async (url: string): Promise<TwitterResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n const cleanUrl = url.replace(\"x.com\", \"twitter.com\");\n const config = new URLSearchParams({ URL: cleanUrl });\n const { data } = await axios.post('https://twdown.net/download.php', config, {\n headers: getRandomHeaders()\n });\n const $ = cheerio.load(data);\n const desc = $('div:nth-child(1) > div:nth-child(2) > p').text().trim();\n const thumb = $('div:nth-child(1) > img').attr('src'); \n const video_hd = $('tbody > tr:nth-child(1) > td:nth-child(4) > a').attr('href');\n const video_sd = $('tr:nth-child(2) > td:nth-child(4) > a').attr('href'); \n let audio = $('body > div.jumbotron > div > center > div.row > div > div:nth-child(5) > table > tbody > tr:nth-child(3) > td:nth-child(4) > a').attr('href');\n if (audio && !audio.startsWith('http')) audio = 'https://twdown.net/' + audio;\n if (!video_sd && !video_hd) {\n throw new Error(\"No media found. Account might be private or link is invalid.\");\n }\n const result: TwitterResult = {\n author: AUTHOR,\n status: true,\n desc: desc || \"X/Twitter Video\",\n thumbnail: thumb || \"\",\n video_sd,\n video_hd,\n audio\n };\n resolve(result);\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"X/Twitter Download Failed\"\n });\n }\n });\n};\n","import ytdl from '@distube/ytdl-core';\nimport yts from 'yt-search';\nimport { AUTHOR, YouTubeResult, YouTubeSearchResult } from '../types';\n\n/*\n * YouTube Search\n */\nexport const search = async (query: string): Promise<YouTubeSearchResult[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const result = await yts(query);\n if (!result.all || result.all.length === 0) {\n return reject(new Error(\"No results found on YouTube.\"));\n }\n const data: YouTubeSearchResult[] = result.all.map((item: any) => {\n return {\n type: item.type as 'video' | 'channel' | 'list' | 'live',\n url: item.url,\n title: item.title,\n description: item.description,\n image: item.image,\n thumbnail: item.thumbnail,\n seconds: (item as any).seconds,\n timestamp: (item as any).timestamp,\n views: (item as any).views,\n ago: (item as any).ago,\n author: (item as any).author ? {\n name: (item as any).author.name,\n url: (item as any).author.url\n } : undefined\n };\n });\n resolve(data);\n } catch (error: any) {\n reject({\n message: error.message || \"YouTube Search Failed\"\n });\n }\n });\n};\n\n/*\n * YouTube Audio Downloader\n */\nexport const ytmp3 = async (url: string): Promise<YouTubeResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n if (!ytdl.validateURL(url)) {\n throw new Error(\"Invalid YouTube URL\");\n }\n const info = await ytdl.getInfo(url);\n const format = ytdl.chooseFormat(info.formats, { \n quality: 'highestaudio',\n filter: 'audioonly' \n });\n if (!format) throw new Error(\"No audio stream found\");\n const result: YouTubeResult = {\n author: AUTHOR,\n title: info.videoDetails.title,\n thumbnail: info.videoDetails.thumbnails[info.videoDetails.thumbnails.length - 1].url, // Highest res\n channel: info.videoDetails.ownerChannelName,\n published: info.videoDetails.publishDate,\n views: info.videoDetails.viewCount,\n duration: info.videoDetails.lengthSeconds,\n url: format.url\n };\n resolve(result);\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"YouTube MP3 Failed\"\n });\n }\n });\n};\n\n/*\n * YouTube Video Downloader\n */\nexport const ytmp4 = async (url: string): Promise<YouTubeResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n if (!ytdl.validateURL(url)) {\n throw new Error(\"Invalid YouTube URL\");\n }\n const info = await ytdl.getInfo(url);\n const format = ytdl.chooseFormat(info.formats, { \n quality: 'highest',\n filter: (f) => f.hasAudio === true && f.hasVideo === true && f.container === 'mp4'\n });\n const finalFormat = format || ytdl.chooseFormat(info.formats, { \n quality: 'highest',\n filter: (f) => f.hasAudio === true && f.hasVideo === true\n });\n if (!finalFormat) throw new Error(\"No video stream found\");\n const result: YouTubeResult = {\n author: AUTHOR,\n title: info.videoDetails.title,\n thumbnail: info.videoDetails.thumbnails[info.videoDetails.thumbnails.length - 1].url,\n channel: info.videoDetails.ownerChannelName,\n published: info.videoDetails.publishDate,\n views: info.videoDetails.viewCount,\n duration: info.videoDetails.lengthSeconds,\n url: finalFormat.url\n };\n resolve(result);\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"YouTube MP4 Failed\"\n });\n }\n });\n};\n\n/**\n * YouTube Play (Search & Download)\n * Searches for a query, grabs the first result, and returns the download link\n */\nexport const play = async (query: string, type: 'mp3' | 'mp4' = 'mp3'): Promise<YouTubeResult> => {\n try {\n const searchResults = await yts(query);\n const videos = searchResults.all.filter((v: any) => v.type === 'video');\n if (videos.length === 0) {\n throw new Error(`No video results found for: ${query}`);\n }\n const firstVideo = videos[0];\n if (type === 'mp4') {\n return await ytmp4(firstVideo.url);\n } else {\n return await ytmp3(firstVideo.url);\n }\n } catch (error: any) {\n throw new Error(`Play Failed: ${error.message}`);\n }\n};\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport FormData from 'form-data';\nimport https from 'https';\nimport { AUTHOR, Author } from '../types';\n\nconst HEADERS = {\n 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'\n};\n\nconst ignoreSSL = new https.Agent({ \n rejectUnauthorized: false,\n servername: 'inferenceengine.vyro.ai'\n});\n\nconst MORSE_MAP: Record<string, string> = {\n 'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.',\n 'G': '--.', 'H': '....', 'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..',\n 'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.',\n 'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-',\n 'Y': '-.--', 'Z': '--..',\n '0': '-----', '1': '.----', '2': '..---', '3': '...--', '4': '....-',\n '5': '.....', '6': '-....', '7': '--...', '8': '---..', '9': '----.',\n '.': '.-.-.-', ',': '--..--', '?': '..--..', \"'\": '.----.', '!': '-.-.--',\n '/': '-..-.', '(': '-.--.', ')': '-.--.-', '&': '.-...', ':': '---...',\n ';': '-.-.-.', '=': '-...-', '+': '.-.-.', '-': '-....-', '_': '..--.-',\n '\"': '.-..-.', '$': '...-..-', '@': '.--.-.',\n ' ': '/' \n};\nconst REVERSE_MORSE = Object.fromEntries(\n Object.entries(MORSE_MAP).map(([char, code]) => [code, char])\n);\n\nexport const ssweb = async (url: string, device: 'desktop' | 'tablet' | 'phone' = 'desktop'): Promise<Buffer> => {\n return new Promise(async (resolve, reject) => {\n try {\n const baseURL = 'https://www.screenshotmachine.com';\n const param = { url: url, device: device, cacheLimit: 0 };\n const { data, headers } = await axios.post(`${baseURL}/capture.php`, \n new URLSearchParams(param as any), {\n headers: { 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8', 'User-Agent': HEADERS['User-Agent'] }\n });\n if (data.status !== 'success') throw new Error('Screenshot generation failed');\n const cookies = headers['set-cookie']?.join('') || '';\n const imageResponse = await axios.get(`${baseURL}/${data.link}`, {\n headers: { 'cookie': cookies, 'User-Agent': HEADERS['User-Agent'] },\n responseType: 'arraybuffer'\n });\n resolve(imageResponse.data);\n } catch (error: any) {\n reject(new Error(`SSWeb Failed: ${error.message}`));\n }\n });\n};\n\nexport const remini = async (imageUrl: string, method: 'enhance' | 'recolor' | 'dehaze' = 'enhance'): Promise<Buffer> => {\n return new Promise(async (resolve, reject) => {\n try {\n const validMethods = [\"enhance\", \"recolor\", \"dehaze\"];\n const selectedMethod = validMethods.includes(method) ? method : \"enhance\";\n const imgBuffer = await axios.get(imageUrl, { responseType: 'arraybuffer' });\n const form = new FormData();\n form.append(\"model_version\", 1, {\n header: { \"Content-Transfer-Encoding\": \"binary\", \"contentType\": \"multipart/form-data; charset=utf-8\" }\n });\n form.append(\"image\", Buffer.from(imgBuffer.data), {\n filename: \"enhance_image_body.jpg\",\n contentType: \"image/jpeg\",\n });\n const url = `https://inferenceengine.vyro.ai/${selectedMethod}`;\n const response = await axios.post(url, form, {\n headers: {\n ...form.getHeaders(),\n \"User-Agent\": \"okhttp/4.9.3\",\n \"Connection\": \"Keep-Alive\",\n \"Accept-Encoding\": \"gzip\"\n },\n responseType: 'arraybuffer',\n httpsAgent: ignoreSSL \n });\n resolve(response.data);\n } catch (error: any) {\n reject(new Error(`Remini Failed: ${error.message}`));\n }\n });\n};\n\nexport const styleText = async (text: string): Promise<{ author: Author, name: string, result: string }[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const { data } = await axios.get(`http://qaz.wtf/u/convert.cgi?text=${encodeURIComponent(text)}`);\n const $ = cheerio.load(data);\n const result: { author: Author, name: string, result: string }[] = [];\n $('table > tbody > tr').each((i, el) => {\n const name = $(el).find('td').first().text().trim();\n const styled = $(el).find('td').eq(1).text().trim();\n if (name && styled) {\n result.push({ author: AUTHOR, name: name, result: styled });\n }\n });\n resolve(result);\n } catch (error: any) {\n reject(new Error(`StyleText Failed: ${error.message}`));\n }\n });\n};\n\nexport const wattpad = async (query: string): Promise<any[]> => {\n try {\n const { data } = await axios.get(`https://www.wattpad.com/search/${encodeURIComponent(query)}`, { headers: HEADERS });\n const $ = cheerio.load(data);\n const results: any[] = [];\n $('.story-card').each((i, el) => {\n const title = $(el).find('.story-title').text().trim();\n const image = $(el).find('.cover img').attr('src');\n const link = 'https://www.wattpad.com' + $(el).find('a.story-card-data').attr('href');\n const reads = $(el).find('.read-count').text().trim(); \n if (title) results.push({ author: AUTHOR, title, image, link, reads });\n });\n if (results.length === 0) {\n $('div.cover').each((i, el) => {\n results.push({ author: AUTHOR, image: $(el).find('img').attr('src') });\n });\n }\n return results;\n } catch (error: any) {\n throw new Error(`Wattpad Failed: ${error.message}`);\n }\n};\n\n/**\n * Morse Code Engine\n * Encodes Text to Morse OR Decodes Morse to Text\n */\nexport const morse = async (input: string, mode: 'encode' | 'decode' = 'encode'): Promise<string> => {\n return new Promise((resolve) => {\n if (mode === 'encode') {\n const result = input\n .toUpperCase()\n .split('')\n .map(char => MORSE_MAP[char] || char)\n .join(' ');\n resolve(result);\n } else {\n const result = input\n .split(' ') \n .map(code => REVERSE_MORSE[code] || (code === '/' ? ' ' : code))\n .join('')\n .replace(/\\s+/g, ' ').trim();\n resolve(result);\n }\n });\n};\n\nexport const tts = async (text: string, lang: string = 'en'): Promise<Buffer> => {\n return new Promise(async (resolve, reject) => {\n try {\n const GOOGLE_TTS_URL = 'https://translate.google.com/translate_tts';\n \n // Limit text length (Google blocks long requests ~200 chars)\n if (text.length > 200) {\n throw new Error(\"Text is too long. Maximum 200 characters.\");\n }\n\n const { data } = await axios.get(GOOGLE_TTS_URL, {\n params: {\n ie: 'UTF-8',\n q: text,\n tl: lang,\n client: 'tw-ob' // The magic key to bypass auth\n },\n responseType: 'arraybuffer', // We need raw audio data\n headers: HEADERS\n });\n\n resolve(data);\n } catch (error: any) {\n reject(new Error(`TTS Failed: ${error.message}`));\n }\n });\n};\n\n\nexport const chords = async (query: string): Promise<any> => {\n try {\n const searchUrl = `https://www.gitagram.com/?s=${encodeURIComponent(query).replace(/%20/g, \"+\")}`;\n const { data } = await axios.get(searchUrl, { headers: HEADERS });\n const $ = cheerio.load(data); \n const firstResultUrl = $(\"table.table > tbody > tr\").eq(0).find(\"td\").eq(0).find(\"a\").eq(0).attr(\"href\");\n if (!firstResultUrl) throw new Error(\"No chords found\");\n const songPage = await axios.get(firstResultUrl, { headers: HEADERS });\n const $song = cheerio.load(songPage.data); \n const $hcontent = $song(\"div.hcontent\");\n const artist = $hcontent.find(\"div > a > span.subtitle\").text().trim();\n const title = $hcontent.find(\"h1.title\").text().trim();\n const content = $song(\"div.content > pre\").text().trim();\n return { author: AUTHOR, title, artist, url: firstResultUrl, chord: content };\n } catch (error: any) {\n throw new Error(`Chords Failed: ${error.message}`);\n }\n};\n","import { tiktok, tiktokSlide } from './dl/tiktok';\nimport { igdl, fbdl } from './dl/social';\nimport { twitter } from './dl/twitter';\nimport { search as ytSearch, ytmp3, ytmp4, play } from './dl/youtube';\nimport { ssweb, remini, styleText, wattpad, chords, morse, tts } from './utils/tools';\n\nexport * from './types';\nexport { \n tiktok, \n tiktokSlide, \n igdl, \n fbdl,\n twitter,\n twitter as xdl,\n ytSearch, \n ytmp3, \n ytmp4, \n play,\n ssweb,\n tts,\n remini, \n styleText, \n wattpad, \n chords,\n morse\n};\nexport const downloader = {\n tiktok,\n tiktokSlide,\n igdl,\n fbdl,\n twitter,\n xdl: twitter,\n ytmp3,\n ytmp4,\n play\n};\nexport const search = {\n youtube: ytSearch,\n wattpad,\n chords\n};\nexport const tools = {\n ssweb,\n remini,\n styleText,\n morse,\n tts\n};\nexport default {\n downloader,\n search,\n tools\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@heavstaltech/api",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "A powerful multi-purpose scraper and API client for Social Media, Media processing, and Utilities. Supports ESM and CJS.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",