@crawlora-org/sdk 1.2.0-sdk.18 → 1.3.0-sdk.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/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## v1.3.0-sdk.1
4
+
5
+ - Added `CrawloraClientError`, `CrawloraServerError`, and `CrawloraNetworkError`
6
+ subclasses of `CrawloraError` so callers can branch on 4xx vs 5xx vs transport
7
+ failures.
8
+ - Added `client.paginate(operationId, params, options?)`, an async iterator that
9
+ advances the page/offset query parameter and stops on an empty page.
10
+ - Added the generated `OperationIds` map for typo-safe dynamic operation ids,
11
+ e.g. `client.request(OperationIds.BingSearch, { q: "coffee" })`.
12
+ - The generator now shares a single language-neutral core with the Go and Python
13
+ SDKs; generated output is unchanged.
14
+
15
+ ## v1.2.0-sdk.19
16
+
17
+ - Regenerated the public SDK contract with the promoted Shopify endpoint family.
18
+ - Added the generated `shopify` group with 11 active Shopify operations.
19
+ - Updated the generated operation reference to 330 public SDK operations.
20
+
3
21
  ## v1.2.0-sdk.18
4
22
 
5
23
  - Regenerated the public SDK contract for the Shop.app endpoint family.
package/README.md CHANGED
@@ -142,6 +142,23 @@ The error includes `status`, optional API `code`, parsed `body`, response
142
142
  headers, capped at 30 seconds. Externally aborted requests fail with
143
143
  `Crawlora request aborted` and are not retried.
144
144
 
145
+ `CrawloraError` has three subclasses so you can branch on the failure kind:
146
+ `CrawloraClientError` (4xx, request rejected), `CrawloraServerError` (5xx), and
147
+ `CrawloraNetworkError` (transport failure, timeout, or abort before a response).
148
+
149
+ ## Pagination
150
+
151
+ `client.paginate` is an async iterator that advances the page/offset query
152
+ parameter and stops when a page returns no data:
153
+
154
+ ```js
155
+ for await (const page of crawlora.paginate("ebay-seller-feedback", { seller: "acme" })) {
156
+ for (const review of page.data) console.log(review);
157
+ }
158
+ ```
159
+
160
+ Override detection with `{ pageParam, start, step, maxPages }`.
161
+
145
162
  ## Examples
146
163
 
147
164
  Runnable examples live under `examples/` and skip cleanly when required
@@ -2,7 +2,7 @@
2
2
 
3
3
  Generated from `openapi/public.json`. Deprecated, admin, and internal operations are excluded from this SDK contract.
4
4
 
5
- Total operations: `319`
5
+ Total operations: `330`
6
6
 
7
7
  | Group | SDK method | Operation ID | HTTP | Params | Auth | Response | Notes |
8
8
  | --- | --- | --- | --- | --- | --- | --- | --- |
@@ -186,6 +186,17 @@ Total operations: `319`
186
186
  | shopApp | `shopApp.shopReviews` | `shop-app-shop-reviews` | `GET /shop-app/shops/{handle}/reviews` | `handle` (path string required)<br>`limit` (query number) | `ApiKeyAuth` | `ShopAppShopReviewsResponse` | |
187
187
  | shopApp | `shopApp.shopTypeahead` | `shop-app-shop-typeahead` | `GET /shop-app/shops/{handle}/typeahead` | `handle` (path string required)<br>`query` (query string required)<br>`limit` (query number) | `ApiKeyAuth` | `ShopAppShopTypeaheadResponse` | |
188
188
  | shopApp | `shopApp.suggestions` | `shop-app-suggestions` | `GET /shop-app/suggestions` | `query` (query string required)<br>`limit` (query number) | `ApiKeyAuth` | `ShopAppSuggestionsResponse` | |
189
+ | shopify | `shopify.collections` | `shopify-collections` | `GET /shopify/collections` | `url` (query string required)<br>`page` (query number)<br>`limit` (query number) | `ApiKeyAuth` | `ShopifyCollectionsResponse` | |
190
+ | shopify | `shopify.collectionProducts` | `shopify-collection-products` | `GET /shopify/collections/{handle}/products` | `handle` (path string required)<br>`url` (query string required)<br>`page` (query number)<br>`limit` (query number) | `ApiKeyAuth` | `ShopifyCollectionProductsResponse` | |
191
+ | shopify | `shopify.pages` | `shopify-pages` | `GET /shopify/pages` | `url` (query string required)<br>`page` (query number)<br>`limit` (query number) | `ApiKeyAuth` | `ShopifyPagesResponse` | |
192
+ | shopify | `shopify.page` | `shopify-page` | `GET /shopify/pages/{handle}` | `handle` (path string required)<br>`url` (query string required) | `ApiKeyAuth` | `ShopifyPageResponse` | |
193
+ | shopify | `shopify.products` | `shopify-products` | `GET /shopify/products` | `url` (query string required)<br>`page` (query number)<br>`limit` (query number) | `ApiKeyAuth` | `ShopifyProductsResponse` | |
194
+ | shopify | `shopify.product` | `shopify-product` | `GET /shopify/products/{handle}` | `handle` (path string required)<br>`url` (query string required) | `ApiKeyAuth` | `ShopifyProductResponse` | |
195
+ | shopify | `shopify.productRecommendations` | `shopify-product-recommendations` | `GET /shopify/products/{handle}/recommendations` | `handle` (path string required)<br>`url` (query string required)<br>`limit` (query number)<br>`intent` (query "related" \| "complementary") | `ApiKeyAuth` | `ShopifyProductRecommendationsResponse` | |
196
+ | shopify | `shopify.searchSuggest` | `shopify-search-suggest` | `GET /shopify/search/suggest` | `url` (query string required)<br>`q` (query string required)<br>`types` (query string)<br>`limit` (query number) | `ApiKeyAuth` | `ShopifySearchSuggestResponse` | |
197
+ | shopify | `shopify.sitemapUrls` | `shopify-sitemap-urls` | `GET /shopify/sitemap/urls` | `url` (query string required)<br>`type` (query "all" \| "products" \| "collections" \| "pages" \| "blogs" \| "agentic_discovery" \| "other")<br>`limit` (query number) | `ApiKeyAuth` | `ShopifySitemapUrlsResponse` | |
198
+ | shopify | `shopify.sitemaps` | `shopify-sitemaps` | `GET /shopify/sitemaps` | `url` (query string required) | `ApiKeyAuth` | `ShopifySitemapsResponse` | |
199
+ | shopify | `shopify.store` | `shopify-store` | `GET /shopify/store` | `url` (query string required) | `ApiKeyAuth` | `ShopifyStoreResponse` | |
189
200
  | similarWeb | `similarWeb.search` | `similarweb-search` | `GET /similarweb/search` | `q` (query string required) | `ApiKeyAuth` | `SimilarWebSearchResponse` | |
190
201
  | similarWeb | `similarWeb.web` | `similarweb-web` | `GET /similarweb/web/{domain}` | `domain` (path string required) | `ApiKeyAuth` | `SimilarWebWebResponse` | |
191
202
  | spotifyPodcasts | `spotifyPodcasts.categories` | `spotify-podcasts-categories` | `GET /spotify-podcasts/categories` | `uri` (query string)<br>`page_offset` (query number)<br>`page_limit` (query number)<br>`section_offset` (query number)<br>`section_limit` (query number)<br>`include_episode_content_ratings_v2` (query boolean) | `ApiKeyAuth` | `SpotifyPodcastsCategoriesResponse` | |