scrapebadger 0.12.0 → 0.13.1

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/dist/index.mjs CHANGED
@@ -2,6 +2,9 @@ import { createHmac, timingSafeEqual } from 'crypto';
2
2
  import { EventEmitter } from 'events';
3
3
  import WebSocket from 'ws';
4
4
 
5
+ // src/internal/version.ts
6
+ var SDK_VERSION = "0.13.1";
7
+
5
8
  // src/internal/exceptions.ts
6
9
  var ScrapeBadgerError = class _ScrapeBadgerError extends Error {
7
10
  constructor(message) {
@@ -150,7 +153,7 @@ var BaseClient = class {
150
153
  "Content-Type": "application/json",
151
154
  Accept: "application/json",
152
155
  "X-API-Key": this.config.apiKey,
153
- "User-Agent": "scrapebadger-node/0.3.1",
156
+ "User-Agent": `scrapebadger-node/${SDK_VERSION}`,
154
157
  ...headers
155
158
  };
156
159
  const fetchOptions = {
@@ -4183,6 +4186,612 @@ var AmazonClient = class {
4183
4186
  }
4184
4187
  };
4185
4188
 
4189
+ // src/shopee/search.ts
4190
+ var SearchClient5 = class {
4191
+ client;
4192
+ constructor(client) {
4193
+ this.client = client;
4194
+ }
4195
+ /**
4196
+ * Search Shopee for products by keyword.
4197
+ *
4198
+ * @param params - Search parameters including keyword, market, pagination, and sort.
4199
+ * @returns Search result page with matched products and pagination metadata.
4200
+ * @throws AuthenticationError - If the API key is invalid.
4201
+ * @throws ValidationError - If the parameters are invalid.
4202
+ */
4203
+ async search(params) {
4204
+ return this.client.request("/v1/shopee/search", {
4205
+ params: {
4206
+ keyword: params.keyword,
4207
+ market: params.market,
4208
+ limit: params.limit,
4209
+ offset: params.offset,
4210
+ sort_by: params.sort_by
4211
+ }
4212
+ });
4213
+ }
4214
+ /**
4215
+ * List products within a specific Shopee category.
4216
+ *
4217
+ * @param categoryId - The Shopee category ID.
4218
+ * @param options - Optional parameters (market, limit, offset, sort_by).
4219
+ * @returns Search result page with products in the category.
4220
+ * @throws AuthenticationError - If the API key is invalid.
4221
+ * @throws ValidationError - If the category ID or market is invalid.
4222
+ */
4223
+ async categoryItems(categoryId, options = {}) {
4224
+ return this.client.request(
4225
+ `/v1/shopee/category/${categoryId}/items`,
4226
+ {
4227
+ params: {
4228
+ market: options.market,
4229
+ limit: options.limit,
4230
+ offset: options.offset,
4231
+ sort_by: options.sort_by
4232
+ }
4233
+ }
4234
+ );
4235
+ }
4236
+ };
4237
+
4238
+ // src/shopee/products.ts
4239
+ var ProductsClient3 = class {
4240
+ client;
4241
+ constructor(client) {
4242
+ this.client = client;
4243
+ }
4244
+ /**
4245
+ * Get full product detail (PDP) for a Shopee item.
4246
+ *
4247
+ * @param shopId - The Shopee shop identifier.
4248
+ * @param itemId - The Shopee item identifier.
4249
+ * @param options - Optional parameters (market).
4250
+ * @returns Full product detail including pricing, ratings, images, and variations.
4251
+ * @throws NotFoundError - If the product doesn't exist.
4252
+ * @throws AuthenticationError - If the API key is invalid.
4253
+ * @throws ValidationError - If the market code is invalid.
4254
+ */
4255
+ async get(shopId, itemId, options = {}) {
4256
+ return this.client.request(
4257
+ `/v1/shopee/product/${shopId}/${itemId}`,
4258
+ { params: { market: options.market } }
4259
+ );
4260
+ }
4261
+ };
4262
+
4263
+ // src/shopee/reviews.ts
4264
+ var ReviewsClient = class {
4265
+ client;
4266
+ constructor(client) {
4267
+ this.client = client;
4268
+ }
4269
+ /**
4270
+ * Get product reviews for a Shopee item.
4271
+ *
4272
+ * @param shopId - The Shopee shop identifier.
4273
+ * @param itemId - The Shopee item identifier.
4274
+ * @param options - Optional parameters (market, limit, offset, rating, filter).
4275
+ * @returns Reviews result page with review items and aggregate summary.
4276
+ * @throws NotFoundError - If the product doesn't exist.
4277
+ * @throws AuthenticationError - If the API key is invalid.
4278
+ * @throws ValidationError - If the parameters are invalid.
4279
+ */
4280
+ async get(shopId, itemId, options = {}) {
4281
+ return this.client.request(
4282
+ `/v1/shopee/product/${shopId}/${itemId}/reviews`,
4283
+ {
4284
+ params: {
4285
+ market: options.market,
4286
+ limit: options.limit,
4287
+ offset: options.offset,
4288
+ rating: options.rating,
4289
+ filter: options.filter
4290
+ }
4291
+ }
4292
+ );
4293
+ }
4294
+ };
4295
+
4296
+ // src/shopee/reference.ts
4297
+ var ReferenceClient3 = class {
4298
+ client;
4299
+ constructor(client) {
4300
+ this.client = client;
4301
+ }
4302
+ /**
4303
+ * Get all supported Shopee marketplaces.
4304
+ *
4305
+ * @returns Markets response with all supported Shopee markets (0 credits).
4306
+ */
4307
+ async markets() {
4308
+ return this.client.request("/v1/shopee/markets");
4309
+ }
4310
+ /**
4311
+ * Get the full category tree for a Shopee market.
4312
+ *
4313
+ * @param options - Optional parameters (market).
4314
+ * @returns Category tree with all top-level and nested category nodes.
4315
+ * @throws AuthenticationError - If the API key is invalid.
4316
+ * @throws ValidationError - If the market code is invalid.
4317
+ */
4318
+ async categories(options = {}) {
4319
+ return this.client.request("/v1/shopee/categories", {
4320
+ params: { market: options.market }
4321
+ });
4322
+ }
4323
+ };
4324
+
4325
+ // src/shopee/client.ts
4326
+ var ShopeeClient = class {
4327
+ /** Client for keyword search and category-item listing */
4328
+ search;
4329
+ /** Client for full product detail pages */
4330
+ products;
4331
+ /** Client for product reviews and rating summaries */
4332
+ reviews;
4333
+ /** Client for reference data (markets, category tree) */
4334
+ reference;
4335
+ /**
4336
+ * Create a new Shopee client.
4337
+ *
4338
+ * @param client - The base HTTP client for making requests.
4339
+ */
4340
+ constructor(client) {
4341
+ this.search = new SearchClient5(client);
4342
+ this.products = new ProductsClient3(client);
4343
+ this.reviews = new ReviewsClient(client);
4344
+ this.reference = new ReferenceClient3(client);
4345
+ }
4346
+ };
4347
+
4348
+ // src/tiktok/users.ts
4349
+ var UsersClient4 = class {
4350
+ client;
4351
+ constructor(client) {
4352
+ this.client = client;
4353
+ }
4354
+ /**
4355
+ * Get a TikTok user's full profile.
4356
+ *
4357
+ * @param username - The user's @handle (without the leading '@').
4358
+ * @param options - Optional parameters (region).
4359
+ * @returns The user profile response.
4360
+ * @throws NotFoundError - If the user doesn't exist.
4361
+ */
4362
+ async get(username, options = {}) {
4363
+ return this.client.request(`/v1/tiktok/users/${username}`, {
4364
+ params: { region: options.region }
4365
+ });
4366
+ }
4367
+ /**
4368
+ * Get a TikTok user's posted videos.
4369
+ *
4370
+ * @param username - The user's @handle.
4371
+ * @param options - Optional parameters (region, count, cursor).
4372
+ * @returns A cursor-paginated list of videos.
4373
+ */
4374
+ async videos(username, options = {}) {
4375
+ return this.client.request(`/v1/tiktok/users/${username}/videos`, {
4376
+ params: { region: options.region, count: options.count, cursor: options.cursor }
4377
+ });
4378
+ }
4379
+ /**
4380
+ * Get a TikTok user's followers (best-effort; often guest-gated).
4381
+ *
4382
+ * @deprecated Requires an authenticated session; currently returns 410.
4383
+ * Kept for forward-compatibility — the endpoint may be re-enabled when
4384
+ * session-based access is supported.
4385
+ *
4386
+ * @param username - The user's @handle.
4387
+ * @param options - Optional parameters (region, count, cursor).
4388
+ * @returns A cursor-paginated list of follower authors.
4389
+ */
4390
+ async followers(username, options = {}) {
4391
+ return this.client.request(`/v1/tiktok/users/${username}/followers`, {
4392
+ params: { region: options.region, count: options.count, cursor: options.cursor }
4393
+ });
4394
+ }
4395
+ /**
4396
+ * Get accounts a TikTok user follows (best-effort).
4397
+ *
4398
+ * @deprecated Requires an authenticated session; currently returns 410.
4399
+ * Kept for forward-compatibility — the endpoint may be re-enabled when
4400
+ * session-based access is supported.
4401
+ *
4402
+ * @param username - The user's @handle.
4403
+ * @param options - Optional parameters (region, count, cursor).
4404
+ * @returns A cursor-paginated list of followed authors.
4405
+ */
4406
+ async following(username, options = {}) {
4407
+ return this.client.request(`/v1/tiktok/users/${username}/following`, {
4408
+ params: { region: options.region, count: options.count, cursor: options.cursor }
4409
+ });
4410
+ }
4411
+ /**
4412
+ * Get a TikTok user's liked videos (only if their Liked tab is public).
4413
+ *
4414
+ * @deprecated Requires an authenticated session; currently returns 410.
4415
+ * Kept for forward-compatibility — the endpoint may be re-enabled when
4416
+ * session-based access is supported.
4417
+ *
4418
+ * @param username - The user's @handle.
4419
+ * @param options - Optional parameters (region, count).
4420
+ * @returns A cursor-paginated list of videos.
4421
+ */
4422
+ async liked(username, options = {}) {
4423
+ return this.client.request(`/v1/tiktok/users/${username}/liked`, {
4424
+ params: { region: options.region, count: options.count }
4425
+ });
4426
+ }
4427
+ /**
4428
+ * Get videos a TikTok user has reposted.
4429
+ *
4430
+ * @param username - The user's @handle.
4431
+ * @param options - Optional parameters (region, count).
4432
+ * @returns A cursor-paginated list of videos.
4433
+ */
4434
+ async reposts(username, options = {}) {
4435
+ return this.client.request(`/v1/tiktok/users/${username}/reposts`, {
4436
+ params: { region: options.region, count: options.count }
4437
+ });
4438
+ }
4439
+ };
4440
+
4441
+ // src/tiktok/videos.ts
4442
+ var VideosClient2 = class {
4443
+ client;
4444
+ constructor(client) {
4445
+ this.client = client;
4446
+ }
4447
+ /**
4448
+ * Get full metadata for a single TikTok video/post.
4449
+ *
4450
+ * @param videoId - The video/post id.
4451
+ * @param options - Optional parameters (region, username).
4452
+ * @returns The video detail response.
4453
+ * @throws NotFoundError - If the video doesn't exist.
4454
+ */
4455
+ async get(videoId, options = {}) {
4456
+ return this.client.request(`/v1/tiktok/videos/${videoId}`, {
4457
+ params: { region: options.region, username: options.username }
4458
+ });
4459
+ }
4460
+ /**
4461
+ * Get top-level comments on a TikTok video.
4462
+ *
4463
+ * @param videoId - The video/post id.
4464
+ * @param options - Optional parameters (region, count, cursor).
4465
+ * @returns A cursor-paginated list of comments.
4466
+ */
4467
+ async comments(videoId, options = {}) {
4468
+ return this.client.request(`/v1/tiktok/videos/${videoId}/comments`, {
4469
+ params: { region: options.region, count: options.count, cursor: options.cursor }
4470
+ });
4471
+ }
4472
+ /**
4473
+ * Get replies to a TikTok comment (best-effort).
4474
+ *
4475
+ * @param commentId - The comment id.
4476
+ * @param options - Parameters including the required `videoId` (region, count, cursor).
4477
+ * @returns A cursor-paginated list of reply comments.
4478
+ */
4479
+ async commentReplies(commentId, options) {
4480
+ return this.client.request(`/v1/tiktok/comments/${commentId}/replies`, {
4481
+ params: {
4482
+ video_id: options.videoId,
4483
+ region: options.region,
4484
+ count: options.count,
4485
+ cursor: options.cursor
4486
+ }
4487
+ });
4488
+ }
4489
+ /**
4490
+ * Get TikTok's related videos for a given video.
4491
+ *
4492
+ * @param videoId - The video/post id.
4493
+ * @param options - Optional parameters (region, count).
4494
+ * @returns A cursor-paginated list of related videos.
4495
+ */
4496
+ async related(videoId, options = {}) {
4497
+ return this.client.request(`/v1/tiktok/videos/${videoId}/related`, {
4498
+ params: { region: options.region, count: options.count }
4499
+ });
4500
+ }
4501
+ /**
4502
+ * Get subtitle/caption tracks for a TikTok video.
4503
+ *
4504
+ * @param videoId - The video/post id.
4505
+ * @param options - Optional parameters (region).
4506
+ * @returns The transcript response with subtitle tracks and voice-to-text.
4507
+ */
4508
+ async transcript(videoId, options = {}) {
4509
+ return this.client.request(`/v1/tiktok/videos/${videoId}/transcript`, {
4510
+ params: { region: options.region }
4511
+ });
4512
+ }
4513
+ /**
4514
+ * Get cheap unauthenticated oEmbed metadata for a TikTok URL.
4515
+ *
4516
+ * @param url - Full TikTok video or profile URL.
4517
+ * @param options - Optional parameters (region).
4518
+ * @returns The oEmbed metadata.
4519
+ */
4520
+ async oembed(url, options = {}) {
4521
+ return this.client.request("/v1/tiktok/oembed", {
4522
+ params: { url, region: options.region }
4523
+ });
4524
+ }
4525
+ };
4526
+
4527
+ // src/tiktok/search.ts
4528
+ var SearchClient6 = class {
4529
+ client;
4530
+ constructor(client) {
4531
+ this.client = client;
4532
+ }
4533
+ /**
4534
+ * General TikTok search — video results from the Top feed.
4535
+ *
4536
+ * @param params - Search parameters including query, region, count, cursor.
4537
+ * @returns A cursor-paginated list of videos.
4538
+ */
4539
+ async search(params) {
4540
+ return this.client.request("/v1/tiktok/search", {
4541
+ params: {
4542
+ query: params.query,
4543
+ region: params.region,
4544
+ count: params.count,
4545
+ cursor: params.cursor
4546
+ }
4547
+ });
4548
+ }
4549
+ /**
4550
+ * Search TikTok videos by keyword.
4551
+ *
4552
+ * @param params - Search parameters including query, region, count, cursor.
4553
+ * @returns A cursor-paginated list of videos.
4554
+ */
4555
+ async videos(params) {
4556
+ return this.client.request("/v1/tiktok/search/videos", {
4557
+ params: {
4558
+ query: params.query,
4559
+ region: params.region,
4560
+ count: params.count,
4561
+ cursor: params.cursor
4562
+ }
4563
+ });
4564
+ }
4565
+ /**
4566
+ * Search TikTok users by keyword.
4567
+ *
4568
+ * @param params - Search parameters including query, region, count, cursor.
4569
+ * @returns A cursor-paginated list of matching users.
4570
+ */
4571
+ async users(params) {
4572
+ return this.client.request("/v1/tiktok/search/users", {
4573
+ params: {
4574
+ query: params.query,
4575
+ region: params.region,
4576
+ count: params.count,
4577
+ cursor: params.cursor
4578
+ }
4579
+ });
4580
+ }
4581
+ /**
4582
+ * Search TikTok hashtags by keyword.
4583
+ *
4584
+ * @param params - Search parameters including query, region, count, cursor.
4585
+ * @returns A cursor-paginated list of matching hashtags.
4586
+ */
4587
+ async hashtags(params) {
4588
+ return this.client.request("/v1/tiktok/search/hashtags", {
4589
+ params: {
4590
+ query: params.query,
4591
+ region: params.region,
4592
+ count: params.count,
4593
+ cursor: params.cursor
4594
+ }
4595
+ });
4596
+ }
4597
+ };
4598
+
4599
+ // src/tiktok/music.ts
4600
+ var MusicClient = class {
4601
+ client;
4602
+ constructor(client) {
4603
+ this.client = client;
4604
+ }
4605
+ /**
4606
+ * Get TikTok sound/music detail.
4607
+ *
4608
+ * @param musicId - The sound/music id.
4609
+ * @param options - Optional parameters (region).
4610
+ * @returns The music detail response.
4611
+ * @throws NotFoundError - If the music doesn't exist.
4612
+ */
4613
+ async get(musicId, options = {}) {
4614
+ return this.client.request(`/v1/tiktok/music/${musicId}`, {
4615
+ params: { region: options.region }
4616
+ });
4617
+ }
4618
+ /**
4619
+ * Get videos using a given TikTok sound.
4620
+ *
4621
+ * @param musicId - The sound/music id.
4622
+ * @param options - Optional parameters (region, count, cursor).
4623
+ * @returns A cursor-paginated list of videos.
4624
+ */
4625
+ async videos(musicId, options = {}) {
4626
+ return this.client.request(`/v1/tiktok/music/${musicId}/videos`, {
4627
+ params: { region: options.region, count: options.count, cursor: options.cursor }
4628
+ });
4629
+ }
4630
+ };
4631
+
4632
+ // src/tiktok/hashtags.ts
4633
+ var HashtagsClient = class {
4634
+ client;
4635
+ constructor(client) {
4636
+ this.client = client;
4637
+ }
4638
+ /**
4639
+ * Get TikTok hashtag/challenge detail.
4640
+ *
4641
+ * @param name - The hashtag name (without the leading '#').
4642
+ * @param options - Optional parameters (region).
4643
+ * @returns The hashtag detail response.
4644
+ * @throws NotFoundError - If the hashtag doesn't exist.
4645
+ */
4646
+ async get(name, options = {}) {
4647
+ return this.client.request(`/v1/tiktok/hashtags/${name}`, {
4648
+ params: { region: options.region }
4649
+ });
4650
+ }
4651
+ /**
4652
+ * Get videos tagged with a TikTok hashtag.
4653
+ *
4654
+ * @param name - The hashtag name (without the leading '#').
4655
+ * @param options - Optional parameters (region, count, cursor).
4656
+ * @returns A cursor-paginated list of videos.
4657
+ */
4658
+ async videos(name, options = {}) {
4659
+ return this.client.request(`/v1/tiktok/hashtags/${name}/videos`, {
4660
+ params: { region: options.region, count: options.count, cursor: options.cursor }
4661
+ });
4662
+ }
4663
+ };
4664
+
4665
+ // src/tiktok/trending.ts
4666
+ var TrendingClient = class {
4667
+ client;
4668
+ constructor(client) {
4669
+ this.client = client;
4670
+ }
4671
+ /**
4672
+ * Get trending videos from the TikTok Explore feed.
4673
+ *
4674
+ * @param options - Optional parameters (region, count).
4675
+ * @returns A cursor-paginated list of trending videos.
4676
+ */
4677
+ async videos(options = {}) {
4678
+ return this.client.request("/v1/tiktok/trending/videos", {
4679
+ params: { region: options.region, count: options.count }
4680
+ });
4681
+ }
4682
+ /**
4683
+ * Get trending hashtags (mobile Discover surface — view_count + creators).
4684
+ *
4685
+ * @param options - Optional parameters (region, period, count).
4686
+ * @returns The trending hashtags response.
4687
+ */
4688
+ async hashtags(options = {}) {
4689
+ return this.client.request(
4690
+ "/v1/tiktok/trending/hashtags",
4691
+ { params: { region: options.region, period: options.period, count: options.count } }
4692
+ );
4693
+ }
4694
+ /**
4695
+ * Get trending songs/sounds (mobile hot-music feed — ranked by usage).
4696
+ *
4697
+ * @param options - Optional parameters (region, period, count).
4698
+ * @returns The trending songs response.
4699
+ */
4700
+ async songs(options = {}) {
4701
+ return this.client.request(
4702
+ "/v1/tiktok/trending/songs",
4703
+ { params: { region: options.region, period: options.period, count: options.count } }
4704
+ );
4705
+ }
4706
+ };
4707
+
4708
+ // src/tiktok/ads.ts
4709
+ var AdsClient = class {
4710
+ client;
4711
+ constructor(client) {
4712
+ this.client = client;
4713
+ }
4714
+ /**
4715
+ * Search TikTok's Commercial Content Library (ad transparency) by keyword or advertiser.
4716
+ *
4717
+ * @param params - Optional parameters (query, advertiser_id, region, days, sort, offset, search_id, count).
4718
+ * @returns The ad-library search response with ads and pagination.
4719
+ */
4720
+ async search(params = {}) {
4721
+ return this.client.request("/v1/tiktok/ads/search", {
4722
+ params: {
4723
+ query: params.query,
4724
+ advertiser_id: params.advertiser_id,
4725
+ region: params.region,
4726
+ days: params.days,
4727
+ sort: params.sort,
4728
+ offset: params.offset,
4729
+ search_id: params.search_id,
4730
+ count: params.count
4731
+ }
4732
+ });
4733
+ }
4734
+ };
4735
+
4736
+ // src/tiktok/reference.ts
4737
+ var ReferenceClient4 = class {
4738
+ client;
4739
+ constructor(client) {
4740
+ this.client = client;
4741
+ }
4742
+ /**
4743
+ * List supported TikTok content regions.
4744
+ *
4745
+ * @returns The regions response with all supported content regions.
4746
+ */
4747
+ async regions() {
4748
+ return this.client.request("/v1/tiktok/regions");
4749
+ }
4750
+ /**
4751
+ * Check the health of the TikTok scraper service.
4752
+ *
4753
+ * @returns The raw health payload from the scraper service.
4754
+ */
4755
+ async health() {
4756
+ return this.client.request("/v1/tiktok/health");
4757
+ }
4758
+ };
4759
+
4760
+ // src/tiktok/client.ts
4761
+ var TikTokClient = class {
4762
+ /** Client for profiles, videos, followers, following, liked, reposts */
4763
+ users;
4764
+ /** Client for video detail, comments, replies, related, transcript, oEmbed */
4765
+ videos;
4766
+ /** Client for keyword search across videos, users, and hashtags */
4767
+ search;
4768
+ /** Client for sound/music detail and videos using a sound */
4769
+ music;
4770
+ /** Client for hashtag detail and tagged videos */
4771
+ hashtags;
4772
+ /** Client for trending videos, hashtags, and songs */
4773
+ trending;
4774
+ /** Client for the Commercial Content Library (ad transparency) */
4775
+ ads;
4776
+ /** Client for reference data (regions) and service health */
4777
+ reference;
4778
+ /**
4779
+ * Create a new TikTok client.
4780
+ *
4781
+ * @param client - The base HTTP client for making requests.
4782
+ */
4783
+ constructor(client) {
4784
+ this.users = new UsersClient4(client);
4785
+ this.videos = new VideosClient2(client);
4786
+ this.search = new SearchClient6(client);
4787
+ this.music = new MusicClient(client);
4788
+ this.hashtags = new HashtagsClient(client);
4789
+ this.trending = new TrendingClient(client);
4790
+ this.ads = new AdsClient(client);
4791
+ this.reference = new ReferenceClient4(client);
4792
+ }
4793
+ };
4794
+
4186
4795
  // src/client.ts
4187
4796
  var ScrapeBadger = class {
4188
4797
  baseClient;
@@ -4198,6 +4807,10 @@ var ScrapeBadger = class {
4198
4807
  reddit;
4199
4808
  /** Amazon scraper API client — 14 endpoints */
4200
4809
  amazon;
4810
+ /** Shopee scraper API client — 6 endpoints across 11 markets */
4811
+ shopee;
4812
+ /** TikTok scraper API client — 26 endpoints */
4813
+ tiktok;
4201
4814
  /**
4202
4815
  * Create a new ScrapeBadger client.
4203
4816
  *
@@ -4238,9 +4851,11 @@ var ScrapeBadger = class {
4238
4851
  this.google = new GoogleClient(this.baseClient);
4239
4852
  this.reddit = new RedditClient(this.baseClient);
4240
4853
  this.amazon = new AmazonClient(this.baseClient);
4854
+ this.shopee = new ShopeeClient(this.baseClient);
4855
+ this.tiktok = new TikTokClient(this.baseClient);
4241
4856
  }
4242
4857
  };
4243
4858
 
4244
- export { AccountRestrictedError, AmazonClient, ListingsClient as AmazonListingsClient, ProductsClient2 as AmazonProductsClient, ReferenceClient2 as AmazonReferenceClient, SearchClient4 as AmazonSearchClient, SellersClient as AmazonSellersClient, AuthenticationError, CommunitiesClient, ConflictError, GeoClient, AiModeClient as GoogleAiModeClient, AutocompleteClient as GoogleAutocompleteClient, GoogleClient, FinanceClient as GoogleFinanceClient, FlightsClient as GoogleFlightsClient, HotelsClient as GoogleHotelsClient, ImagesClient as GoogleImagesClient, JobsClient as GoogleJobsClient, LensClient as GoogleLensClient, MapsClient as GoogleMapsClient, NewsClient as GoogleNewsClient, PatentsClient as GooglePatentsClient, ProductsClient as GoogleProductsClient, ScholarClient as GoogleScholarClient, SearchClient2 as GoogleSearchClient, ShoppingClient as GoogleShoppingClient, ShortsClient as GoogleShortsClient, TrendsClient2 as GoogleTrendsClient, VideosClient as GoogleVideosClient, InsufficientCreditsError, ListsClient, NotFoundError, RateLimitError, RedditClient, PostsClient as RedditPostsClient, SearchClient3 as RedditSearchClient, SubredditsClient as RedditSubredditsClient, UsersClient3 as RedditUsersClient, ScrapeBadger, ScrapeBadgerError, ServerError, SpacesClient, StreamClient, TimeoutError, TrendsClient, TweetsClient, TwitterClient, UsersClient, ValidationError, VintedClient, ItemsClient as VintedItemsClient, ReferenceClient as VintedReferenceClient, SearchClient as VintedSearchClient, UsersClient2 as VintedUsersClient, WebClient, WebSocketStreamError, collectAll, verifyWebhookSignature };
4859
+ export { AccountRestrictedError, AmazonClient, ListingsClient as AmazonListingsClient, ProductsClient2 as AmazonProductsClient, ReferenceClient2 as AmazonReferenceClient, SearchClient4 as AmazonSearchClient, SellersClient as AmazonSellersClient, AuthenticationError, CommunitiesClient, ConflictError, GeoClient, AiModeClient as GoogleAiModeClient, AutocompleteClient as GoogleAutocompleteClient, GoogleClient, FinanceClient as GoogleFinanceClient, FlightsClient as GoogleFlightsClient, HotelsClient as GoogleHotelsClient, ImagesClient as GoogleImagesClient, JobsClient as GoogleJobsClient, LensClient as GoogleLensClient, MapsClient as GoogleMapsClient, NewsClient as GoogleNewsClient, PatentsClient as GooglePatentsClient, ProductsClient as GoogleProductsClient, ScholarClient as GoogleScholarClient, SearchClient2 as GoogleSearchClient, ShoppingClient as GoogleShoppingClient, ShortsClient as GoogleShortsClient, TrendsClient2 as GoogleTrendsClient, VideosClient as GoogleVideosClient, InsufficientCreditsError, ListsClient, NotFoundError, RateLimitError, RedditClient, PostsClient as RedditPostsClient, SearchClient3 as RedditSearchClient, SubredditsClient as RedditSubredditsClient, UsersClient3 as RedditUsersClient, ScrapeBadger, ScrapeBadgerError, ServerError, ShopeeClient, ProductsClient3 as ShopeeProductsClient, ReferenceClient3 as ShopeeReferenceClient, ReviewsClient as ShopeeReviewsClient, SearchClient5 as ShopeeSearchClient, SpacesClient, StreamClient, AdsClient as TikTokAdsClient, TikTokClient, HashtagsClient as TikTokHashtagsClient, MusicClient as TikTokMusicClient, ReferenceClient4 as TikTokReferenceClient, SearchClient6 as TikTokSearchClient, TrendingClient as TikTokTrendingClient, UsersClient4 as TikTokUsersClient, VideosClient2 as TikTokVideosClient, TimeoutError, TrendsClient, TweetsClient, TwitterClient, UsersClient, ValidationError, VintedClient, ItemsClient as VintedItemsClient, ReferenceClient as VintedReferenceClient, SearchClient as VintedSearchClient, UsersClient2 as VintedUsersClient, WebClient, WebSocketStreamError, collectAll, verifyWebhookSignature };
4245
4860
  //# sourceMappingURL=index.mjs.map
4246
4861
  //# sourceMappingURL=index.mjs.map