scavio 0.30.1 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -32,15 +32,20 @@ var index_exports = {};
32
32
  __export(index_exports, {
33
33
  AI_PROMPT_TIMEOUT: () => AI_PROMPT_TIMEOUT,
34
34
  AirbnbNamespace: () => AirbnbNamespace,
35
+ AldiNamespace: () => AldiNamespace,
35
36
  AmazonNamespace: () => AmazonNamespace,
36
37
  AppStoreNamespace: () => AppStoreNamespace,
37
38
  BadRequestError: () => BadRequestError,
38
39
  BookingNamespace: () => BookingNamespace,
40
+ CVS_PRODUCT_TIMEOUT: () => CVS_PRODUCT_TIMEOUT,
41
+ CanadianTireNamespace: () => CanadianTireNamespace,
39
42
  CapterraNamespace: () => CapterraNamespace,
40
43
  ChatgptNamespace: () => ChatgptNamespace,
41
44
  CompaniesHouseNamespace: () => CompaniesHouseNamespace,
42
45
  CostcoNamespace: () => CostcoNamespace,
46
+ CvsNamespace: () => CvsNamespace,
43
47
  DEFAULT_MAX_REQUESTS_PER_SECOND: () => DEFAULT_MAX_REQUESTS_PER_SECOND,
48
+ DollarGeneralNamespace: () => DollarGeneralNamespace,
44
49
  EbayNamespace: () => EbayNamespace,
45
50
  ExtractNamespace: () => ExtractNamespace,
46
51
  G2Namespace: () => G2Namespace,
@@ -58,9 +63,11 @@ __export(index_exports, {
58
63
  KrogerNamespace: () => KrogerNamespace,
59
64
  KuaishouNamespace: () => KuaishouNamespace,
60
65
  LinkedInNamespace: () => LinkedInNamespace,
66
+ LowesNamespace: () => LowesNamespace,
61
67
  MAX_REQUESTS_PER_SECOND: () => MAX_REQUESTS_PER_SECOND,
62
68
  MercadoLibreNamespace: () => MercadoLibreNamespace,
63
69
  MetaAdsNamespace: () => MetaAdsNamespace,
70
+ MicroCenterNamespace: () => MicroCenterNamespace,
64
71
  MissingAPIKeyError: () => MissingAPIKeyError,
65
72
  NotFoundError: () => NotFoundError,
66
73
  RateLimitError: () => RateLimitError,
@@ -69,18 +76,22 @@ __export(index_exports, {
69
76
  RedfinNamespace: () => RedfinNamespace,
70
77
  RightmoveNamespace: () => RightmoveNamespace,
71
78
  SECNamespace: () => SECNamespace,
79
+ SamsClubNamespace: () => SamsClubNamespace,
72
80
  Scavio: () => Scavio,
73
81
  ScavioAPIError: () => ScavioAPIError,
74
82
  ScavioConnectionError: () => ScavioConnectionError,
75
83
  ScavioError: () => ScavioError,
76
84
  ScavioJobTimeoutError: () => ScavioJobTimeoutError,
77
85
  ScavioTimeoutError: () => ScavioTimeoutError,
86
+ SephoraNamespace: () => SephoraNamespace,
78
87
  TargetNamespace: () => TargetNamespace,
79
88
  ThreadsNamespace: () => ThreadsNamespace,
80
89
  TikTokNamespace: () => TikTokNamespace,
81
90
  TikTokShopNamespace: () => TikTokShopNamespace,
82
91
  TripadvisorNamespace: () => TripadvisorNamespace,
83
92
  TrustpilotNamespace: () => TrustpilotNamespace,
93
+ UltaNamespace: () => UltaNamespace,
94
+ WalgreensNamespace: () => WalgreensNamespace,
84
95
  WalmartNamespace: () => WalmartNamespace,
85
96
  XNamespace: () => XNamespace,
86
97
  YelpNamespace: () => YelpNamespace,
@@ -237,7 +248,7 @@ function parseRetryAfter(header) {
237
248
  var BASE_URL = "https://api.scavio.dev";
238
249
  var DEFAULT_TIMEOUT = 3e4;
239
250
  var DEFAULT_MAX_RETRIES = 2;
240
- var SDK_VERSION = true ? "0.30.1" : "0.0.0";
251
+ var SDK_VERSION = true ? "0.32.0" : "0.0.0";
241
252
  var USER_AGENT = `scavio-js/${SDK_VERSION}`;
242
253
  function isServerRuntime() {
243
254
  const g = globalThis;
@@ -2891,6 +2902,540 @@ var SpecsNamespace = class {
2891
2902
  }
2892
2903
  };
2893
2904
 
2905
+ // src/namespaces/lowes.ts
2906
+ var LowesNamespace = class {
2907
+ constructor(client) {
2908
+ this.client = client;
2909
+ }
2910
+ client;
2911
+ /**
2912
+ * Search Lowe's by keyword or category at one store: the store's price,
2913
+ * was-price and savings with the sale end date, brand, model number, rating,
2914
+ * review count, and stock for pickup, truck delivery, parcel shipping and
2915
+ * same-day delivery. Pass query or category_id; on_sale returns that
2916
+ * store's deals.
2917
+ *
2918
+ * Costs 2 credits.
2919
+ */
2920
+ async search(options) {
2921
+ return this.client._post("/api/v1/lowes/search", options);
2922
+ }
2923
+ /**
2924
+ * One Lowe's item at one store: price, was-price and savings, on-hand stock
2925
+ * with lead time per fulfillment method, stock at nearby stores, aisle and
2926
+ * bay, grouped specifications, UPC, dimensions, weight, rating, images, and
2927
+ * the store's hours.
2928
+ *
2929
+ * Costs 2 credits.
2930
+ */
2931
+ async product(options) {
2932
+ return this.client._post("/api/v1/lowes/product", options);
2933
+ }
2934
+ /**
2935
+ * Lowe's stores near a ZIP code, nearest first: store_id, name, address,
2936
+ * phone, coordinates, distance, time zone, opening hours and features.
2937
+ *
2938
+ * Costs 2 credits.
2939
+ */
2940
+ async stores(options) {
2941
+ return this.client._post("/api/v1/lowes/stores", options);
2942
+ }
2943
+ /**
2944
+ * One page of an item's customer reviews (10 per page): rating, title, text,
2945
+ * date, reviewer, recommended, helpful votes, verified and incentivized
2946
+ * flags, photos and brand replies, plus the average rating and count per star.
2947
+ *
2948
+ * Costs 1 credit.
2949
+ */
2950
+ async reviews(options) {
2951
+ return this.client._post("/api/v1/lowes/reviews", options);
2952
+ }
2953
+ };
2954
+
2955
+ // src/namespaces/sams-club.ts
2956
+ var SamsClubNamespace = class {
2957
+ constructor(client) {
2958
+ this.client = client;
2959
+ }
2960
+ client;
2961
+ /**
2962
+ * Search Sam's Club: item_id, price, was_price, savings_amount, unit price,
2963
+ * Instant Savings (amount, end date, purchase limit), rating, review count,
2964
+ * stock, pickup/delivery/shipping availability and aisle. The club is picked
2965
+ * by location and returned in data.club.
2966
+ *
2967
+ * Costs 1 credit.
2968
+ */
2969
+ async search(options) {
2970
+ return this.client._post("/api/v1/samsclub/search", options);
2971
+ }
2972
+ /**
2973
+ * One Sam's Club item: online price and the club shelf price (club_price)
2974
+ * with was price, savings and unit price, Instant Savings, rating histogram,
2975
+ * UPC, model, specifications, and per-method fulfillment with stock and
2976
+ * aisle. Pass club_id to price and stock a specific club.
2977
+ *
2978
+ * Costs 1 credit.
2979
+ */
2980
+ async product(options) {
2981
+ return this.client._post("/api/v1/samsclub/product", options);
2982
+ }
2983
+ /**
2984
+ * Sam's Club clubs near a US ZIP, nearest first: club_id, name, address,
2985
+ * coordinates, distance in miles, phone, opening hours, services and whether
2986
+ * the club is temporarily closed.
2987
+ *
2988
+ * Costs 1 credit.
2989
+ */
2990
+ async clubs(options) {
2991
+ return this.client._post("/api/v1/samsclub/clubs", options);
2992
+ }
2993
+ /**
2994
+ * Every item on Sam's Club Instant Savings, paged: price, was price and
2995
+ * savings amount, plus each offer's amount, end date, purchase limit and
2996
+ * channels.
2997
+ *
2998
+ * Costs 1 credit.
2999
+ */
3000
+ async savings(options = {}) {
3001
+ return this.client._post("/api/v1/samsclub/savings", options);
3002
+ }
3003
+ /**
3004
+ * Products in a Sam's Club category, paged, with the same fields as
3005
+ * search(). Clearance is category "1150109".
3006
+ *
3007
+ * Costs 1 credit.
3008
+ */
3009
+ async category(options) {
3010
+ return this.client._post("/api/v1/samsclub/category", options);
3011
+ }
3012
+ /**
3013
+ * Customer reviews for a Sam's Club item, 10 per page: rating, title, text,
3014
+ * author, date, verified purchase and helpful votes, plus the average rating,
3015
+ * total count and 1-5 star breakdown.
3016
+ *
3017
+ * Costs 1 credit.
3018
+ */
3019
+ async reviews(options) {
3020
+ return this.client._post("/api/v1/samsclub/reviews", options);
3021
+ }
3022
+ };
3023
+
3024
+ // src/namespaces/canadian-tire.ts
3025
+ var CanadianTireNamespace = class {
3026
+ constructor(client) {
3027
+ this.client = client;
3028
+ }
3029
+ client;
3030
+ /**
3031
+ * Search Canadian Tire by keyword or category at one store: the store's
3032
+ * price and regular price (CAD), price range for multi-variant items,
3033
+ * savings, badges (clearance, sale, rebate), rating, review count, brand,
3034
+ * part number, SKU, and stock at the store and online.
3035
+ *
3036
+ * Costs 1 credit.
3037
+ */
3038
+ async search(options) {
3039
+ return this.client._post("/api/v1/canadiantire/search", options);
3040
+ }
3041
+ /**
3042
+ * One product by code at one store: breadcrumb, images, rating, review
3043
+ * count, descriptions, features, specifications, price and regular price,
3044
+ * warranty, manuals, variants with their SKUs, and the store's price, stock,
3045
+ * and pickup and ship-to-home dates.
3046
+ *
3047
+ * Costs 1 credit.
3048
+ */
3049
+ async product(options) {
3050
+ return this.client._post("/api/v1/canadiantire/product", options);
3051
+ }
3052
+ /**
3053
+ * Canadian Tire stores near a postal code or coordinates, nearest first:
3054
+ * store_id, name, address, phone, coordinates, distance, weekly hours and
3055
+ * services. Pass sku to get each store's stock quantity and aisle for it.
3056
+ *
3057
+ * Costs 1 credit.
3058
+ */
3059
+ async stores(options) {
3060
+ return this.client._post("/api/v1/canadiantire/stores", options);
3061
+ }
3062
+ /**
3063
+ * Up to 50 SKUs at one store in one call: the store's price and regular
3064
+ * price, clearance and sale flags, price valid-until date, stock quantity,
3065
+ * aisle, online stock, and pickup and delivery dates. Unknown SKUs are
3066
+ * listed in not_found.
3067
+ *
3068
+ * Costs 1 credit.
3069
+ */
3070
+ async availability(options) {
3071
+ return this.client._post("/api/v1/canadiantire/availability", options);
3072
+ }
3073
+ /**
3074
+ * Every clearance item at one store, 100 per page, with clearance price,
3075
+ * regular price, stock at the store and the same fields as search().
3076
+ * In-stock items only by default.
3077
+ *
3078
+ * Costs 1 credit.
3079
+ */
3080
+ async clearance(options) {
3081
+ return this.client._post("/api/v1/canadiantire/clearance", options);
3082
+ }
3083
+ /**
3084
+ * Items on a deal at one store, 100 per page: sale prices, instant rebates,
3085
+ * special buys or Triangle Rewards loyalty offers, with the same fields as
3086
+ * search().
3087
+ *
3088
+ * Costs 1 credit.
3089
+ */
3090
+ async deals(options) {
3091
+ return this.client._post("/api/v1/canadiantire/deals", options);
3092
+ }
3093
+ };
3094
+
3095
+ // src/namespaces/dollar-general.ts
3096
+ var DollarGeneralNamespace = class {
3097
+ constructor(client) {
3098
+ this.client = client;
3099
+ }
3100
+ client;
3101
+ /**
3102
+ * Search Dollar General at one store: that store's price and original price,
3103
+ * available_quantity (units on hand at that store), inventory_status,
3104
+ * rating, review count, categories, digital coupons and promotions, UPC and
3105
+ * product URL.
3106
+ *
3107
+ * Costs 1 credit.
3108
+ */
3109
+ async search(options) {
3110
+ return this.client._post("/api/v1/dollargeneral/search", options);
3111
+ }
3112
+ /**
3113
+ * One product by UPC at one store: price, original price,
3114
+ * available_quantity, stock_status, nearby_stores_with_stock, rating, review
3115
+ * count, SKU, brand, description, highlights, images, categories, digital
3116
+ * coupons and promotions. An unknown UPC or store number is a 404.
3117
+ *
3118
+ * Costs 1 credit.
3119
+ */
3120
+ async product(options) {
3121
+ return this.client._post("/api/v1/dollargeneral/product", options);
3122
+ }
3123
+ /**
3124
+ * Dollar General stores near a US ZIP code or coordinates, nearest first (up
3125
+ * to 25): store_id, address, phone, coordinates, distance in miles, opening
3126
+ * hours and services. Pass upc and each store also carries its unit count of
3127
+ * that product.
3128
+ *
3129
+ * Costs 1 credit.
3130
+ */
3131
+ async stores(options) {
3132
+ return this.client._post("/api/v1/dollargeneral/stores", options);
3133
+ }
3134
+ /**
3135
+ * Products on sale or on clearance, priced and stocked at one store, 24 per
3136
+ * page. available_quantity > 0 means in stock at that store; the listing
3137
+ * covers the whole chain. Clearance items carry the current price only (no
3138
+ * was-price).
3139
+ *
3140
+ * Costs 1 credit.
3141
+ */
3142
+ async deals(options) {
3143
+ return this.client._post("/api/v1/dollargeneral/deals", options);
3144
+ }
3145
+ /**
3146
+ * Dollar General's current digital coupons, 30 per page: offer id and code,
3147
+ * summary, description, brand, company, value, offer type, category, minimum
3148
+ * quantity, start and expiration dates, and whether it is a manufacturer
3149
+ * coupon.
3150
+ *
3151
+ * Costs 1 credit.
3152
+ */
3153
+ async coupons(options = {}) {
3154
+ return this.client._post("/api/v1/dollargeneral/coupons", options);
3155
+ }
3156
+ };
3157
+
3158
+ // src/namespaces/sephora.ts
3159
+ var SephoraNamespace = class {
3160
+ constructor(client) {
3161
+ this.client = client;
3162
+ }
3163
+ client;
3164
+ /**
3165
+ * Search sephora.com products, 60 per page: product id, sku id, brand, name,
3166
+ * URL, image, price, list and sale price (with a price range when sizes are
3167
+ * priced differently), value price for sets, rating, review count, extra
3168
+ * colors, and bestseller, new, exclusive, online-only, limited-edition and
3169
+ * sponsored flags. Pass zip for same-day delivery eligibility. Also returns
3170
+ * category facets and related searches.
3171
+ *
3172
+ * Costs 1 credit.
3173
+ */
3174
+ async search(options) {
3175
+ return this.client._post("/api/v1/sephora/search", options);
3176
+ }
3177
+ /**
3178
+ * Products in a sephora.com category, 60 per page, in the same shape as
3179
+ * search(), plus the category's id, name and URL, total product count,
3180
+ * parent category, subcategories with product counts and breadcrumbs. An
3181
+ * unknown category is a 404.
3182
+ *
3183
+ * Costs 1 credit.
3184
+ */
3185
+ async category(options) {
3186
+ return this.client._post("/api/v1/sephora/category", options);
3187
+ }
3188
+ /**
3189
+ * One sephora.com product: rating, review count, loves count, price range,
3190
+ * description, suggested usage, breadcrumbs, a summary of what reviews say
3191
+ * with pro and con sentiment counts (no review text), and every shade or
3192
+ * size as a sku with price, list and sale price, in_stock, only_few_left,
3193
+ * ingredients, images, and pickup and same-day eligibility. An unknown
3194
+ * product is a 404.
3195
+ *
3196
+ * Costs 1 credit.
3197
+ */
3198
+ async product(options) {
3199
+ return this.client._post("/api/v1/sephora/product", options);
3200
+ }
3201
+ };
3202
+
3203
+ // src/namespaces/ulta.ts
3204
+ var UltaNamespace = class {
3205
+ constructor(client) {
3206
+ this.client = client;
3207
+ }
3208
+ client;
3209
+ /**
3210
+ * Search Ulta Beauty by keyword, 64 products per page plus sponsored
3211
+ * placements: product_id, sku_id, brand, name, URL, image, list and sale
3212
+ * price (low end and range when shades are priced differently), discount,
3213
+ * promo text, rating, review count, badge, variant label, limited-stock and
3214
+ * sponsored flags.
3215
+ *
3216
+ * Costs 1 credit.
3217
+ */
3218
+ async search(options) {
3219
+ return this.client._post("/api/v1/ulta/search", options);
3220
+ }
3221
+ /**
3222
+ * Products in an Ulta Beauty category, 64 per page plus sponsored
3223
+ * placements, with the category title and total_results and the same
3224
+ * product fields as search().
3225
+ *
3226
+ * Costs 1 credit.
3227
+ */
3228
+ async category(options) {
3229
+ return this.client._post("/api/v1/ulta/category", options);
3230
+ }
3231
+ /**
3232
+ * One Ulta Beauty product for the selected shade or size: list and sale
3233
+ * price, discount, availability, GTIN, rating, review count, badges,
3234
+ * description, usage, ingredients, breadcrumbs, images, every shade or size
3235
+ * variant, ship / pickup / same-day eligibility and the five most recent
3236
+ * customer reviews. An unknown product is a 404.
3237
+ *
3238
+ * Costs 1 credit.
3239
+ */
3240
+ async product(options) {
3241
+ return this.client._post("/api/v1/ulta/product", options);
3242
+ }
3243
+ /**
3244
+ * In-store pickup availability of one shade or size at the 10 Ulta Beauty
3245
+ * stores nearest a US ZIP: store id, name, address, distance in miles, open
3246
+ * now and hours label, curbside label, in_stock and the availability label.
3247
+ * In stock / out of stock per store, not unit counts.
3248
+ *
3249
+ * Costs 1 credit.
3250
+ */
3251
+ async stores(options) {
3252
+ return this.client._post("/api/v1/ulta/stores", options);
3253
+ }
3254
+ };
3255
+
3256
+ // src/namespaces/aldi.ts
3257
+ var AldiNamespace = class {
3258
+ constructor(client) {
3259
+ this.client = client;
3260
+ }
3261
+ client;
3262
+ /**
3263
+ * Search ALDI US at one store (store_id, or the nearest store to a zip):
3264
+ * product_id, name, brand, size, price and was_price for that store and
3265
+ * service_type, discount label, unit price, in_stock and stock_level,
3266
+ * category, in-store aisle location, ALDI exclusive-brand flag, dietary
3267
+ * labels, image and URL. Exact matches only unless include_related is set.
3268
+ *
3269
+ * Costs 1 credit.
3270
+ */
3271
+ async search(options) {
3272
+ return this.client._post("/api/v1/aldi/search", options);
3273
+ }
3274
+ /**
3275
+ * One ALDI US product by id or aldi.us URL at one store: price and
3276
+ * was_price for that store and service_type, unit price, stock, category,
3277
+ * brand, size, description, ingredients, allergen warnings, dietary labels
3278
+ * and images. An unknown product id is a 404.
3279
+ *
3280
+ * Costs 1 credit.
3281
+ */
3282
+ async product(options) {
3283
+ return this.client._post("/api/v1/aldi/product", options);
3284
+ }
3285
+ /**
3286
+ * ALDI US stores near a ZIP code, nearest first: store_id (for search and
3287
+ * product), name, street address, city, state, ZIP, coordinates and
3288
+ * distance in miles.
3289
+ *
3290
+ * Costs 1 credit.
3291
+ */
3292
+ async stores(options) {
3293
+ return this.client._post("/api/v1/aldi/stores", options);
3294
+ }
3295
+ };
3296
+
3297
+ // src/namespaces/micro-center.ts
3298
+ var MicroCenterNamespace = class {
3299
+ constructor(client) {
3300
+ this.client = client;
3301
+ }
3302
+ client;
3303
+ /**
3304
+ * Search Micro Center by keyword or category at one store, up to 96 per
3305
+ * page: product_id, SKU, name, brand, category, price and original price,
3306
+ * image, URL, highlights, and that store's stock (label as printed,
3307
+ * quantity, quantity_capped at 25+, in_stock, not_carried). Open-box count
3308
+ * and lowest price, rebate text and an in_store_only flag where shown.
3309
+ *
3310
+ * Costs 2 credits.
3311
+ */
3312
+ async search(options) {
3313
+ return this.client._post("/api/v1/microcenter/search", options);
3314
+ }
3315
+ /**
3316
+ * One product by id or URL: SKU, MPN, UPC, description, price, original
3317
+ * price, ship and pickup flags, images, rating, up to 10 recent reviews,
3318
+ * breadcrumbs and the full spec table. selected_store carries the store's
3319
+ * stock and each open-box unit (condition, warranty, price); stores_in_stock
3320
+ * is a yes/no per Micro Center store, not a unit count. An unknown product
3321
+ * id is a 404.
3322
+ *
3323
+ * Costs 2 credits.
3324
+ */
3325
+ async product(options) {
3326
+ return this.client._post("/api/v1/microcenter/product", options);
3327
+ }
3328
+ /**
3329
+ * Every Micro Center store with its 3-digit store_id, name, city, state and
3330
+ * store page URL; street address and ZIP where known. Optionally filtered by
3331
+ * state. The web store 029 is not listed but is accepted as a store_id.
3332
+ *
3333
+ * Costs 1 credit.
3334
+ */
3335
+ async stores(options = {}) {
3336
+ return this.client._post("/api/v1/microcenter/stores", options);
3337
+ }
3338
+ };
3339
+
3340
+ // src/namespaces/walgreens.ts
3341
+ var WalgreensNamespace = class {
3342
+ constructor(client) {
3343
+ this.client = client;
3344
+ }
3345
+ client;
3346
+ /**
3347
+ * Search Walgreens retail products, up to 70 per page: product id, SKU, UPC,
3348
+ * name, brand, size, regular and sale price, unit price, promotion, coupon,
3349
+ * loyalty and rebate messages, rating, review count, image, URL,
3350
+ * ship/pickup/delivery availability, online stock status and clearance flag.
3351
+ * Prices are national. Pass store_id for that store's availability text.
3352
+ *
3353
+ * Costs 2 credits.
3354
+ */
3355
+ async search(options) {
3356
+ return this.client._post("/api/v1/walgreens/search", options);
3357
+ }
3358
+ /**
3359
+ * One Walgreens retail product by id or URL: SKU, UPC, GTIN, brand, size,
3360
+ * regular and sale price, savings, unit price, rewards and rebate offers,
3361
+ * description, ingredients, warnings, rating, review count, category path,
3362
+ * images, ship and pickup availability and clearance flag. Prices are
3363
+ * national. An unknown id is a 404.
3364
+ *
3365
+ * Costs 2 credits.
3366
+ */
3367
+ async product(options) {
3368
+ return this.client._post("/api/v1/walgreens/product", options);
3369
+ }
3370
+ /**
3371
+ * Walgreens and Duane Reade stores near a US ZIP or coordinates, nearest
3372
+ * first: store_number, name, brand, address, phone, coordinates, distance in
3373
+ * miles, opening and closing time, time zone and store page URL. Paged with
3374
+ * total_results, total_pages and has_more.
3375
+ *
3376
+ * Costs 2 credits.
3377
+ */
3378
+ async stores(options) {
3379
+ return this.client._post("/api/v1/walgreens/stores", options);
3380
+ }
3381
+ /**
3382
+ * Live in-store stock of one product at up to 20 stores: per store the
3383
+ * status (In Stock, Out of Stock, or Not Available when the store does not
3384
+ * carry it), the unit count and in_stock. Store numbers Walgreens does not
3385
+ * recognise are listed in unknown_store_ids. An unknown product is a 404.
3386
+ *
3387
+ * Costs 4 credits.
3388
+ */
3389
+ async stock(options) {
3390
+ return this.client._post("/api/v1/walgreens/stock", options);
3391
+ }
3392
+ };
3393
+
3394
+ // src/namespaces/cvs.ts
3395
+ var CVS_PRODUCT_TIMEOUT = 12e4;
3396
+ var CvsNamespace = class {
3397
+ constructor(client) {
3398
+ this.client = client;
3399
+ }
3400
+ client;
3401
+ /**
3402
+ * Search CVS front-store products: product_id and sku_id, name, brand, URL,
3403
+ * regular and sale price, unit price, promotion text, rating, review count,
3404
+ * size, image, coupons (ExtraBucks rewards and manufacturer coupons) and
3405
+ * stock at one store (in store, pickup, same-day delivery) plus online ship
3406
+ * availability. Sponsored placements are excluded. Includes brand,
3407
+ * price-range and rating facets.
3408
+ *
3409
+ * Costs 1 credit.
3410
+ */
3411
+ async search(options) {
3412
+ return this.client._post("/api/v1/cvs/search", options);
3413
+ }
3414
+ /**
3415
+ * One CVS product by URL or id: regular and sale price, unit price,
3416
+ * promotion and its end date, rating, review count, UPC, size, description,
3417
+ * highlights, ingredients, directions, warnings, attributes, breadcrumbs,
3418
+ * images and every variant (SKU id, UPC, size, price, rating). An unknown
3419
+ * product is a 404. Can take 10-30+ seconds.
3420
+ *
3421
+ * Costs 1 credit.
3422
+ */
3423
+ async product(options) {
3424
+ return this.client._post("/api/v1/cvs/product", options, void 0, CVS_PRODUCT_TIMEOUT);
3425
+ }
3426
+ /**
3427
+ * Units available at one CVS store for up to 20 SKUs: in_store (on the
3428
+ * shelf), pickup and ship (online stock, chain-wide). same_day_delivery is
3429
+ * always null here; search returns same-day units. An unknown SKU or store
3430
+ * number reads as 0.
3431
+ *
3432
+ * Costs 1 credit.
3433
+ */
3434
+ async stock(options) {
3435
+ return this.client._post("/api/v1/cvs/stock", options);
3436
+ }
3437
+ };
3438
+
2894
3439
  // src/namespaces/trustpilot.ts
2895
3440
  var TrustpilotNamespace = class {
2896
3441
  constructor(client) {
@@ -3406,6 +3951,16 @@ var Scavio = class extends ScavioCore {
3406
3951
  kroger;
3407
3952
  decathlon;
3408
3953
  specs;
3954
+ lowes;
3955
+ samsClub;
3956
+ canadianTire;
3957
+ dollarGeneral;
3958
+ sephora;
3959
+ ulta;
3960
+ aldi;
3961
+ microCenter;
3962
+ walgreens;
3963
+ cvs;
3409
3964
  trustpilot;
3410
3965
  chatgpt;
3411
3966
  gemini;
@@ -3469,6 +4024,16 @@ var Scavio = class extends ScavioCore {
3469
4024
  this.kroger = new KrogerNamespace(this);
3470
4025
  this.decathlon = new DecathlonNamespace(this);
3471
4026
  this.specs = new SpecsNamespace(this);
4027
+ this.lowes = new LowesNamespace(this);
4028
+ this.samsClub = new SamsClubNamespace(this);
4029
+ this.canadianTire = new CanadianTireNamespace(this);
4030
+ this.dollarGeneral = new DollarGeneralNamespace(this);
4031
+ this.sephora = new SephoraNamespace(this);
4032
+ this.ulta = new UltaNamespace(this);
4033
+ this.aldi = new AldiNamespace(this);
4034
+ this.microCenter = new MicroCenterNamespace(this);
4035
+ this.walgreens = new WalgreensNamespace(this);
4036
+ this.cvs = new CvsNamespace(this);
3472
4037
  this.trustpilot = new TrustpilotNamespace(this);
3473
4038
  this.chatgpt = new ChatgptNamespace(this);
3474
4039
  this.gemini = new GeminiNamespace(this);
@@ -3580,15 +4145,20 @@ async function getSubtle() {
3580
4145
  0 && (module.exports = {
3581
4146
  AI_PROMPT_TIMEOUT,
3582
4147
  AirbnbNamespace,
4148
+ AldiNamespace,
3583
4149
  AmazonNamespace,
3584
4150
  AppStoreNamespace,
3585
4151
  BadRequestError,
3586
4152
  BookingNamespace,
4153
+ CVS_PRODUCT_TIMEOUT,
4154
+ CanadianTireNamespace,
3587
4155
  CapterraNamespace,
3588
4156
  ChatgptNamespace,
3589
4157
  CompaniesHouseNamespace,
3590
4158
  CostcoNamespace,
4159
+ CvsNamespace,
3591
4160
  DEFAULT_MAX_REQUESTS_PER_SECOND,
4161
+ DollarGeneralNamespace,
3592
4162
  EbayNamespace,
3593
4163
  ExtractNamespace,
3594
4164
  G2Namespace,
@@ -3606,9 +4176,11 @@ async function getSubtle() {
3606
4176
  KrogerNamespace,
3607
4177
  KuaishouNamespace,
3608
4178
  LinkedInNamespace,
4179
+ LowesNamespace,
3609
4180
  MAX_REQUESTS_PER_SECOND,
3610
4181
  MercadoLibreNamespace,
3611
4182
  MetaAdsNamespace,
4183
+ MicroCenterNamespace,
3612
4184
  MissingAPIKeyError,
3613
4185
  NotFoundError,
3614
4186
  RateLimitError,
@@ -3617,18 +4189,22 @@ async function getSubtle() {
3617
4189
  RedfinNamespace,
3618
4190
  RightmoveNamespace,
3619
4191
  SECNamespace,
4192
+ SamsClubNamespace,
3620
4193
  Scavio,
3621
4194
  ScavioAPIError,
3622
4195
  ScavioConnectionError,
3623
4196
  ScavioError,
3624
4197
  ScavioJobTimeoutError,
3625
4198
  ScavioTimeoutError,
4199
+ SephoraNamespace,
3626
4200
  TargetNamespace,
3627
4201
  ThreadsNamespace,
3628
4202
  TikTokNamespace,
3629
4203
  TikTokShopNamespace,
3630
4204
  TripadvisorNamespace,
3631
4205
  TrustpilotNamespace,
4206
+ UltaNamespace,
4207
+ WalgreensNamespace,
3632
4208
  WalmartNamespace,
3633
4209
  XNamespace,
3634
4210
  YelpNamespace,