@quickshops/sdk 1.0.0 → 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 +88 -373
- package/esm/core.d.ts.map +1 -1
- package/esm/core.js +1 -0
- package/esm/core.js.map +1 -1
- package/esm/funcs/cart-cart-add-line.d.ts.map +1 -1
- package/esm/funcs/cart-cart-add-line.js +1 -0
- package/esm/funcs/cart-cart-add-line.js.map +1 -1
- package/esm/funcs/cart-cart-clear.d.ts.map +1 -1
- package/esm/funcs/cart-cart-clear.js +1 -0
- package/esm/funcs/cart-cart-clear.js.map +1 -1
- package/esm/funcs/cart-cart-create.d.ts.map +1 -1
- package/esm/funcs/cart-cart-create.js +1 -0
- package/esm/funcs/cart-cart-create.js.map +1 -1
- package/esm/funcs/cart-cart-get.d.ts.map +1 -1
- package/esm/funcs/cart-cart-get.js +1 -0
- package/esm/funcs/cart-cart-get.js.map +1 -1
- package/esm/funcs/cart-cart-remove-line.d.ts.map +1 -1
- package/esm/funcs/cart-cart-remove-line.js +1 -0
- package/esm/funcs/cart-cart-remove-line.js.map +1 -1
- package/esm/funcs/cart-cart-update-line.d.ts.map +1 -1
- package/esm/funcs/cart-cart-update-line.js +1 -0
- package/esm/funcs/cart-cart-update-line.js.map +1 -1
- package/esm/funcs/checkout-checkout-create-session.d.ts.map +1 -1
- package/esm/funcs/checkout-checkout-create-session.js +1 -0
- package/esm/funcs/checkout-checkout-create-session.js.map +1 -1
- package/esm/funcs/health-health-check.d.ts.map +1 -1
- package/esm/funcs/health-health-check.js +1 -0
- package/esm/funcs/health-health-check.js.map +1 -1
- package/esm/funcs/products-products-get-all.d.ts.map +1 -1
- package/esm/funcs/products-products-get-all.js +1 -0
- package/esm/funcs/products-products-get-all.js.map +1 -1
- package/esm/funcs/products-products-get-by-id.d.ts.map +1 -1
- package/esm/funcs/products-products-get-by-id.js +1 -0
- package/esm/funcs/products-products-get-by-id.js.map +1 -1
- package/esm/funcs/store-store-get.d.ts.map +1 -1
- package/esm/funcs/store-store-get.js +1 -0
- package/esm/funcs/store-store-get.js.map +1 -1
- package/esm/funcs/subscription-subscription-create-portal-session.d.ts.map +1 -1
- package/esm/funcs/subscription-subscription-create-portal-session.js +1 -0
- package/esm/funcs/subscription-subscription-create-portal-session.js.map +1 -1
- package/esm/hooks/hooks.d.ts.map +1 -1
- package/esm/hooks/hooks.js +1 -0
- package/esm/hooks/hooks.js.map +1 -1
- package/esm/hooks/index.d.ts.map +1 -1
- package/esm/hooks/index.js +1 -0
- package/esm/hooks/index.js.map +1 -1
- package/esm/hooks/types.d.ts.map +1 -1
- package/esm/hooks/types.js +1 -0
- package/esm/hooks/types.js.map +1 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/lib/base64.d.ts.map +1 -1
- package/esm/lib/base64.js +1 -0
- package/esm/lib/base64.js.map +1 -1
- package/esm/lib/config.d.ts +2 -2
- package/esm/lib/config.d.ts.map +1 -1
- package/esm/lib/config.js +3 -2
- package/esm/lib/config.js.map +1 -1
- package/esm/lib/encodings.d.ts.map +1 -1
- package/esm/lib/encodings.js +1 -0
- package/esm/lib/encodings.js.map +1 -1
- package/esm/lib/env.d.ts.map +1 -1
- package/esm/lib/env.js +1 -0
- package/esm/lib/env.js.map +1 -1
- package/esm/lib/files.d.ts.map +1 -1
- package/esm/lib/files.js +1 -0
- package/esm/lib/files.js.map +1 -1
- package/esm/lib/http.d.ts.map +1 -1
- package/esm/lib/http.js +1 -0
- package/esm/lib/http.js.map +1 -1
- package/esm/lib/logger.d.ts.map +1 -1
- package/esm/lib/logger.js +1 -0
- package/esm/lib/logger.js.map +1 -1
- package/esm/lib/matchers.d.ts.map +1 -1
- package/esm/lib/matchers.js +1 -0
- package/esm/lib/matchers.js.map +1 -1
- package/esm/lib/primitives.d.ts.map +1 -1
- package/esm/lib/primitives.js +1 -0
- package/esm/lib/primitives.js.map +1 -1
- package/esm/lib/retries.d.ts.map +1 -1
- package/esm/lib/retries.js +1 -0
- package/esm/lib/retries.js.map +1 -1
- package/esm/lib/schemas.d.ts.map +1 -1
- package/esm/lib/schemas.js +1 -0
- package/esm/lib/schemas.js.map +1 -1
- package/esm/lib/sdks.d.ts.map +1 -1
- package/esm/lib/sdks.js +1 -0
- package/esm/lib/sdks.js.map +1 -1
- package/esm/lib/security.d.ts.map +1 -1
- package/esm/lib/security.js +1 -0
- package/esm/lib/security.js.map +1 -1
- package/esm/lib/url.d.ts.map +1 -1
- package/esm/lib/url.js +1 -0
- package/esm/lib/url.js.map +1 -1
- package/esm/models/errors/cart-add-line.d.ts.map +1 -1
- package/esm/models/errors/cart-add-line.js +1 -0
- package/esm/models/errors/cart-add-line.js.map +1 -1
- package/esm/models/errors/cart-clear.d.ts.map +1 -1
- package/esm/models/errors/cart-clear.js +1 -0
- package/esm/models/errors/cart-clear.js.map +1 -1
- package/esm/models/errors/cart-create.d.ts.map +1 -1
- package/esm/models/errors/cart-create.js +1 -0
- package/esm/models/errors/cart-create.js.map +1 -1
- package/esm/models/errors/cart-get.d.ts.map +1 -1
- package/esm/models/errors/cart-get.js +1 -0
- package/esm/models/errors/cart-get.js.map +1 -1
- package/esm/models/errors/cart-remove-line.d.ts.map +1 -1
- package/esm/models/errors/cart-remove-line.js +1 -0
- package/esm/models/errors/cart-remove-line.js.map +1 -1
- package/esm/models/errors/cart-update-line.d.ts.map +1 -1
- package/esm/models/errors/cart-update-line.js +1 -0
- package/esm/models/errors/cart-update-line.js.map +1 -1
- package/esm/models/errors/checkout-create-session.d.ts.map +1 -1
- package/esm/models/errors/checkout-create-session.js +1 -0
- package/esm/models/errors/checkout-create-session.js.map +1 -1
- package/esm/models/errors/health-check.d.ts.map +1 -1
- package/esm/models/errors/health-check.js +1 -0
- package/esm/models/errors/health-check.js.map +1 -1
- package/esm/models/errors/http-client-errors.d.ts.map +1 -1
- package/esm/models/errors/http-client-errors.js +1 -0
- package/esm/models/errors/http-client-errors.js.map +1 -1
- package/esm/models/errors/index.d.ts.map +1 -1
- package/esm/models/errors/index.js +1 -0
- package/esm/models/errors/index.js.map +1 -1
- package/esm/models/errors/products-get-all.d.ts.map +1 -1
- package/esm/models/errors/products-get-all.js +1 -0
- package/esm/models/errors/products-get-all.js.map +1 -1
- package/esm/models/errors/products-get-by-id.d.ts.map +1 -1
- package/esm/models/errors/products-get-by-id.js +1 -0
- package/esm/models/errors/products-get-by-id.js.map +1 -1
- package/esm/models/errors/quickshops-default-error.d.ts.map +1 -1
- package/esm/models/errors/quickshops-default-error.js +1 -0
- package/esm/models/errors/quickshops-default-error.js.map +1 -1
- package/esm/models/errors/quickshops-error.d.ts.map +1 -1
- package/esm/models/errors/quickshops-error.js +1 -0
- package/esm/models/errors/quickshops-error.js.map +1 -1
- package/esm/models/errors/response-validation-error.d.ts.map +1 -1
- package/esm/models/errors/response-validation-error.js +1 -0
- package/esm/models/errors/response-validation-error.js.map +1 -1
- package/esm/models/errors/sdk-validation-error.d.ts.map +1 -1
- package/esm/models/errors/sdk-validation-error.js +1 -0
- package/esm/models/errors/sdk-validation-error.js.map +1 -1
- package/esm/models/errors/store-get.d.ts.map +1 -1
- package/esm/models/errors/store-get.js +1 -0
- package/esm/models/errors/store-get.js.map +1 -1
- package/esm/models/errors/subscription-create-portal-session.d.ts.map +1 -1
- package/esm/models/errors/subscription-create-portal-session.js +1 -0
- package/esm/models/errors/subscription-create-portal-session.js.map +1 -1
- package/esm/models/index.d.ts.map +1 -1
- package/esm/models/index.js +1 -0
- package/esm/models/index.js.map +1 -1
- package/esm/models/operations/cart-add-line.d.ts.map +1 -1
- package/esm/models/operations/cart-add-line.js +1 -0
- package/esm/models/operations/cart-add-line.js.map +1 -1
- package/esm/models/operations/cart-clear.d.ts.map +1 -1
- package/esm/models/operations/cart-clear.js +1 -0
- package/esm/models/operations/cart-clear.js.map +1 -1
- package/esm/models/operations/cart-create.d.ts.map +1 -1
- package/esm/models/operations/cart-create.js +1 -0
- package/esm/models/operations/cart-create.js.map +1 -1
- package/esm/models/operations/cart-get.d.ts.map +1 -1
- package/esm/models/operations/cart-get.js +1 -0
- package/esm/models/operations/cart-get.js.map +1 -1
- package/esm/models/operations/cart-remove-line.d.ts.map +1 -1
- package/esm/models/operations/cart-remove-line.js +1 -0
- package/esm/models/operations/cart-remove-line.js.map +1 -1
- package/esm/models/operations/cart-update-line.d.ts.map +1 -1
- package/esm/models/operations/cart-update-line.js +1 -0
- package/esm/models/operations/cart-update-line.js.map +1 -1
- package/esm/models/operations/checkout-create-session.d.ts.map +1 -1
- package/esm/models/operations/checkout-create-session.js +1 -0
- package/esm/models/operations/checkout-create-session.js.map +1 -1
- package/esm/models/operations/health-check.d.ts.map +1 -1
- package/esm/models/operations/health-check.js +1 -0
- package/esm/models/operations/health-check.js.map +1 -1
- package/esm/models/operations/index.d.ts.map +1 -1
- package/esm/models/operations/index.js +1 -0
- package/esm/models/operations/index.js.map +1 -1
- package/esm/models/operations/products-get-all.d.ts.map +1 -1
- package/esm/models/operations/products-get-all.js +1 -0
- package/esm/models/operations/products-get-all.js.map +1 -1
- package/esm/models/operations/products-get-by-id.d.ts.map +1 -1
- package/esm/models/operations/products-get-by-id.js +1 -0
- package/esm/models/operations/products-get-by-id.js.map +1 -1
- package/esm/models/operations/store-get.d.ts.map +1 -1
- package/esm/models/operations/store-get.js +1 -0
- package/esm/models/operations/store-get.js.map +1 -1
- package/esm/models/operations/subscription-create-portal-session.d.ts.map +1 -1
- package/esm/models/operations/subscription-create-portal-session.js +1 -0
- package/esm/models/operations/subscription-create-portal-session.js.map +1 -1
- package/esm/models/security.d.ts.map +1 -1
- package/esm/models/security.js +1 -0
- package/esm/models/security.js.map +1 -1
- package/esm/sdk/cart.d.ts.map +1 -1
- package/esm/sdk/cart.js +1 -0
- package/esm/sdk/cart.js.map +1 -1
- package/esm/sdk/checkout.d.ts.map +1 -1
- package/esm/sdk/checkout.js +1 -0
- package/esm/sdk/checkout.js.map +1 -1
- package/esm/sdk/health.d.ts.map +1 -1
- package/esm/sdk/health.js +1 -0
- package/esm/sdk/health.js.map +1 -1
- package/esm/sdk/index.d.ts.map +1 -1
- package/esm/sdk/index.js +1 -0
- package/esm/sdk/index.js.map +1 -1
- package/esm/sdk/products.d.ts.map +1 -1
- package/esm/sdk/products.js +1 -0
- package/esm/sdk/products.js.map +1 -1
- package/esm/sdk/sdk.d.ts.map +1 -1
- package/esm/sdk/sdk.js +1 -0
- package/esm/sdk/sdk.js.map +1 -1
- package/esm/sdk/store.d.ts.map +1 -1
- package/esm/sdk/store.js +1 -0
- package/esm/sdk/store.js.map +1 -1
- package/esm/sdk/subscription.d.ts.map +1 -1
- package/esm/sdk/subscription.js +1 -0
- package/esm/sdk/subscription.js.map +1 -1
- package/esm/types/async.d.ts.map +1 -1
- package/esm/types/async.js +1 -0
- package/esm/types/async.js.map +1 -1
- package/esm/types/blobs.d.ts.map +1 -1
- package/esm/types/blobs.js +1 -0
- package/esm/types/blobs.js.map +1 -1
- package/esm/types/const-date-time.d.ts.map +1 -1
- package/esm/types/const-date-time.js +1 -0
- package/esm/types/const-date-time.js.map +1 -1
- package/esm/types/default-to-zero-value.d.ts.map +1 -1
- package/esm/types/default-to-zero-value.js +1 -0
- package/esm/types/default-to-zero-value.js.map +1 -1
- package/esm/types/enums.d.ts.map +1 -1
- package/esm/types/enums.js +1 -0
- package/esm/types/enums.js.map +1 -1
- package/esm/types/fp.d.ts.map +1 -1
- package/esm/types/fp.js +1 -0
- package/esm/types/fp.js.map +1 -1
- package/esm/types/index.d.ts.map +1 -1
- package/esm/types/index.js +1 -0
- package/esm/types/index.js.map +1 -1
- package/esm/types/operations.d.ts.map +1 -1
- package/esm/types/operations.js +1 -0
- package/esm/types/operations.js.map +1 -1
- package/esm/types/primitives.d.ts.map +1 -1
- package/esm/types/primitives.js +1 -0
- package/esm/types/primitives.js.map +1 -1
- package/esm/types/rfcdate.d.ts.map +1 -1
- package/esm/types/rfcdate.js +1 -0
- package/esm/types/rfcdate.js.map +1 -1
- package/esm/types/smart-union.d.ts.map +1 -1
- package/esm/types/smart-union.js +1 -0
- package/esm/types/smart-union.js.map +1 -1
- package/esm/types/streams.d.ts.map +1 -1
- package/esm/types/streams.js +1 -0
- package/esm/types/streams.js.map +1 -1
- package/esm/types/unrecognized.d.ts.map +1 -1
- package/esm/types/unrecognized.js +1 -0
- package/esm/types/unrecognized.js.map +1 -1
- package/examples/healthHealthCheck.example.ts +1 -0
- package/jsr.json +1 -1
- package/package.json +3 -2
- package/src/core.ts +1 -0
- package/src/funcs/cart-cart-add-line.ts +1 -0
- package/src/funcs/cart-cart-clear.ts +1 -0
- package/src/funcs/cart-cart-create.ts +1 -0
- package/src/funcs/cart-cart-get.ts +1 -0
- package/src/funcs/cart-cart-remove-line.ts +1 -0
- package/src/funcs/cart-cart-update-line.ts +1 -0
- package/src/funcs/checkout-checkout-create-session.ts +1 -0
- package/src/funcs/health-health-check.ts +1 -0
- package/src/funcs/products-products-get-all.ts +1 -0
- package/src/funcs/products-products-get-by-id.ts +1 -0
- package/src/funcs/store-store-get.ts +1 -0
- package/src/funcs/subscription-subscription-create-portal-session.ts +1 -0
- package/src/hooks/hooks.ts +1 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/types.ts +1 -0
- package/src/index.ts +1 -0
- package/src/lib/base64.ts +1 -0
- package/src/lib/config.ts +3 -2
- package/src/lib/encodings.ts +1 -0
- package/src/lib/env.ts +1 -0
- package/src/lib/files.ts +1 -0
- package/src/lib/http.ts +1 -0
- package/src/lib/logger.ts +1 -0
- package/src/lib/matchers.ts +1 -0
- package/src/lib/primitives.ts +1 -0
- package/src/lib/retries.ts +1 -0
- package/src/lib/schemas.ts +1 -0
- package/src/lib/sdks.ts +1 -0
- package/src/lib/security.ts +1 -0
- package/src/lib/url.ts +1 -0
- package/src/models/errors/cart-add-line.ts +1 -0
- package/src/models/errors/cart-clear.ts +1 -0
- package/src/models/errors/cart-create.ts +1 -0
- package/src/models/errors/cart-get.ts +1 -0
- package/src/models/errors/cart-remove-line.ts +1 -0
- package/src/models/errors/cart-update-line.ts +1 -0
- package/src/models/errors/checkout-create-session.ts +1 -0
- package/src/models/errors/health-check.ts +1 -0
- package/src/models/errors/http-client-errors.ts +1 -0
- package/src/models/errors/index.ts +1 -0
- package/src/models/errors/products-get-all.ts +1 -0
- package/src/models/errors/products-get-by-id.ts +1 -0
- package/src/models/errors/quickshops-default-error.ts +1 -0
- package/src/models/errors/quickshops-error.ts +1 -0
- package/src/models/errors/response-validation-error.ts +1 -0
- package/src/models/errors/sdk-validation-error.ts +1 -0
- package/src/models/errors/store-get.ts +1 -0
- package/src/models/errors/subscription-create-portal-session.ts +1 -0
- package/src/models/index.ts +1 -0
- package/src/models/operations/cart-add-line.ts +1 -0
- package/src/models/operations/cart-clear.ts +1 -0
- package/src/models/operations/cart-create.ts +1 -0
- package/src/models/operations/cart-get.ts +1 -0
- package/src/models/operations/cart-remove-line.ts +1 -0
- package/src/models/operations/cart-update-line.ts +1 -0
- package/src/models/operations/checkout-create-session.ts +1 -0
- package/src/models/operations/health-check.ts +1 -0
- package/src/models/operations/index.ts +1 -0
- package/src/models/operations/products-get-all.ts +1 -0
- package/src/models/operations/products-get-by-id.ts +1 -0
- package/src/models/operations/store-get.ts +1 -0
- package/src/models/operations/subscription-create-portal-session.ts +1 -0
- package/src/models/security.ts +1 -0
- package/src/sdk/cart.ts +1 -0
- package/src/sdk/checkout.ts +1 -0
- package/src/sdk/health.ts +1 -0
- package/src/sdk/index.ts +1 -0
- package/src/sdk/products.ts +1 -0
- package/src/sdk/sdk.ts +1 -0
- package/src/sdk/store.ts +1 -0
- package/src/sdk/subscription.ts +1 -0
- package/src/types/async.ts +1 -0
- package/src/types/blobs.ts +1 -0
- package/src/types/const-date-time.ts +1 -0
- package/src/types/default-to-zero-value.ts +1 -0
- package/src/types/enums.ts +1 -0
- package/src/types/fp.ts +1 -0
- package/src/types/index.ts +1 -0
- package/src/types/operations.ts +1 -0
- package/src/types/primitives.ts +1 -0
- package/src/types/rfcdate.ts +1 -0
- package/src/types/smart-union.ts +1 -0
- package/src/types/streams.ts +1 -0
- package/src/types/unrecognized.ts +1 -0
package/README.md
CHANGED
|
@@ -1,45 +1,34 @@
|
|
|
1
|
-
# quickshops
|
|
1
|
+
# @quickshops/sdk
|
|
2
2
|
|
|
3
|
-
Developer-friendly
|
|
3
|
+
Developer-friendly and type-safe TypeScript SDK for the *QuickShops Headless API*.
|
|
4
4
|
|
|
5
|
-
[](https://quickshops.app)
|
|
6
|
+
[](https://quickshops.app)
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
<br /><br />
|
|
10
|
-
> [!IMPORTANT]
|
|
11
|
-
> This SDK is not yet ready for production use. To complete setup please follow the steps outlined in your [workspace](https://app.speakeasy.com/org/quickshops-hv1/quickshops-sdk). Delete this section before > publishing to a package manager.
|
|
12
|
-
|
|
13
|
-
<!-- Start Summary [summary] -->
|
|
14
8
|
## Summary
|
|
15
9
|
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
QuickShops Headless API for starter templates and custom storefronts. Use this SDK server-side to fetch products, manage carts, start checkout, and handle subscriptions.
|
|
11
|
+
|
|
12
|
+
This package is **closed source** and proprietary to QuickShops. Full docs: [docs.quickshops.app](https://docs.quickshops.app/sdk/installation).
|
|
18
13
|
|
|
19
|
-
<!-- Start Table of Contents [toc] -->
|
|
20
14
|
## Table of Contents
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
* [Contributions](#contributions)
|
|
36
|
-
|
|
37
|
-
<!-- End Table of Contents [toc] -->
|
|
38
|
-
|
|
39
|
-
<!-- Start SDK Installation [installation] -->
|
|
15
|
+
|
|
16
|
+
- [@quickshops/sdk](#quickshops-sdk)
|
|
17
|
+
- [Summary](#summary)
|
|
18
|
+
- [Table of Contents](#table-of-contents)
|
|
19
|
+
- [SDK Installation](#sdk-installation)
|
|
20
|
+
- [Requirements](#requirements)
|
|
21
|
+
- [SDK Example Usage](#sdk-example-usage)
|
|
22
|
+
- [Authentication](#authentication)
|
|
23
|
+
- [Available Resources and Operations](#available-resources-and-operations)
|
|
24
|
+
- [Error Handling](#error-handling)
|
|
25
|
+
- [Development](#development)
|
|
26
|
+
- [Maturity](#maturity)
|
|
27
|
+
- [License](#license)
|
|
28
|
+
|
|
40
29
|
## SDK Installation
|
|
41
30
|
|
|
42
|
-
The SDK can be installed with
|
|
31
|
+
The SDK can be installed with [npm](https://www.npmjs.com/), [pnpm](https://pnpm.io/), [bun](https://bun.sh/), or [yarn](https://classic.yarnpkg.com/en/).
|
|
43
32
|
|
|
44
33
|
### NPM
|
|
45
34
|
|
|
@@ -66,17 +55,12 @@ yarn add @quickshops/sdk
|
|
|
66
55
|
```
|
|
67
56
|
|
|
68
57
|
> [!NOTE]
|
|
69
|
-
> This package is published as an ES Module (ESM) only. For
|
|
70
|
-
> CommonJS, use `await import("@quickshops/sdk")` to import and use this package.
|
|
71
|
-
<!-- End SDK Installation [installation] -->
|
|
58
|
+
> This package is published as an ES Module (ESM) only. For CommonJS apps, use `await import("@quickshops/sdk")`.
|
|
72
59
|
|
|
73
|
-
<!-- Start Requirements [requirements] -->
|
|
74
60
|
## Requirements
|
|
75
61
|
|
|
76
|
-
For supported JavaScript runtimes,
|
|
77
|
-
<!-- End Requirements [requirements] -->
|
|
62
|
+
For supported JavaScript runtimes, see [RUNTIMES.md](RUNTIMES.md).
|
|
78
63
|
|
|
79
|
-
<!-- Start SDK Example Usage [usage] -->
|
|
80
64
|
## SDK Example Usage
|
|
81
65
|
|
|
82
66
|
### Example
|
|
@@ -84,403 +68,134 @@ For supported JavaScript runtimes, please consult [RUNTIMES.md](RUNTIMES.md).
|
|
|
84
68
|
```typescript
|
|
85
69
|
import { Quickshops } from "@quickshops/sdk";
|
|
86
70
|
|
|
87
|
-
const
|
|
88
|
-
serverURL: "https://api.
|
|
89
|
-
bearerAuth: process.env
|
|
71
|
+
const qs = new Quickshops({
|
|
72
|
+
serverURL: "https://api.quickshops.app",
|
|
73
|
+
bearerAuth: process.env.HEADLESS_API_KEY!,
|
|
90
74
|
});
|
|
91
75
|
|
|
92
76
|
async function run() {
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
console.log(result);
|
|
77
|
+
const { data: products } = await qs.products.productsGetAll();
|
|
78
|
+
console.log(products);
|
|
96
79
|
}
|
|
97
80
|
|
|
98
81
|
run();
|
|
99
|
-
|
|
100
82
|
```
|
|
101
|
-
<!-- End SDK Example Usage [usage] -->
|
|
102
83
|
|
|
103
|
-
|
|
84
|
+
Use the SDK in server-only code (API routes, server actions, loaders). Never expose your API key to the browser.
|
|
85
|
+
|
|
104
86
|
## Authentication
|
|
105
87
|
|
|
106
88
|
### Per-Client Security Schemes
|
|
107
89
|
|
|
108
90
|
This SDK supports the following security scheme globally:
|
|
109
91
|
|
|
110
|
-
| Name
|
|
111
|
-
|
|
|
92
|
+
| Name | Type | Scheme | Environment Variable |
|
|
93
|
+
| --- | --- | --- | --- |
|
|
112
94
|
| `bearerAuth` | http | HTTP Bearer | `QUICKSHOPS_BEARER_AUTH` |
|
|
113
95
|
|
|
114
|
-
|
|
96
|
+
Set `bearerAuth` when creating the client. API keys start with `qk_` and are sent as `Authorization: Bearer qk_...`.
|
|
97
|
+
|
|
115
98
|
```typescript
|
|
116
99
|
import { Quickshops } from "@quickshops/sdk";
|
|
117
100
|
|
|
118
|
-
const
|
|
119
|
-
serverURL: "https://api.
|
|
120
|
-
bearerAuth: process.env
|
|
101
|
+
const qs = new Quickshops({
|
|
102
|
+
serverURL: "https://api.quickshops.app",
|
|
103
|
+
bearerAuth: process.env.HEADLESS_API_KEY!,
|
|
121
104
|
});
|
|
122
105
|
|
|
123
|
-
|
|
124
|
-
const result = await quickshops.health.healthCheck();
|
|
125
|
-
|
|
126
|
-
console.log(result);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
run();
|
|
130
|
-
|
|
106
|
+
const { data: store } = await qs.store.storeGet();
|
|
131
107
|
```
|
|
132
|
-
<!-- End Authentication [security] -->
|
|
133
108
|
|
|
134
|
-
|
|
109
|
+
The API base URL is `https://api.quickshops.app` (the SDK adds `/v1` to each path).
|
|
110
|
+
|
|
135
111
|
## Available Resources and Operations
|
|
136
112
|
|
|
137
113
|
<details open>
|
|
138
114
|
<summary>Available methods</summary>
|
|
139
115
|
|
|
140
|
-
### [
|
|
141
|
-
|
|
142
|
-
* [cartGet](docs/sdks/cart/README.md#cartget) - Get cart
|
|
143
|
-
* [cartClear](docs/sdks/cart/README.md#cartclear) - Clear cart
|
|
144
|
-
* [cartCreate](docs/sdks/cart/README.md#cartcreate) - Create cart
|
|
145
|
-
* [cartUpdateLine](docs/sdks/cart/README.md#cartupdateline) - Update cart line quantity
|
|
146
|
-
* [cartRemoveLine](docs/sdks/cart/README.md#cartremoveline) - Remove cart line
|
|
147
|
-
* [cartAddLine](docs/sdks/cart/README.md#cartaddline) - Add cart line
|
|
148
|
-
|
|
149
|
-
### [Checkout](docs/sdks/checkout/README.md)
|
|
150
|
-
|
|
151
|
-
* [checkoutCreateSession](docs/sdks/checkout/README.md#checkoutcreatesession) - Create checkout session
|
|
152
|
-
|
|
153
|
-
### [Health](docs/sdks/health/README.md)
|
|
154
|
-
|
|
155
|
-
* [healthCheck](docs/sdks/health/README.md#healthcheck) - Health check
|
|
156
|
-
|
|
157
|
-
### [Products](docs/sdks/products/README.md)
|
|
116
|
+
### [Store](https://docs.quickshops.app/api/products)
|
|
158
117
|
|
|
159
|
-
*
|
|
160
|
-
* [productsGetById](docs/sdks/products/README.md#productsgetbyid) - Get product
|
|
118
|
+
* `storeGet` — Get store for API key
|
|
161
119
|
|
|
162
|
-
### [
|
|
120
|
+
### [Products](https://docs.quickshops.app/api/products)
|
|
163
121
|
|
|
164
|
-
*
|
|
122
|
+
* `productsGetAll` — List products
|
|
123
|
+
* `productsGetById` — Get product
|
|
165
124
|
|
|
166
|
-
### [
|
|
125
|
+
### [Cart](https://docs.quickshops.app/api/cart)
|
|
167
126
|
|
|
168
|
-
*
|
|
127
|
+
* `cartCreate` — Create cart
|
|
128
|
+
* `cartGet` — Get cart
|
|
129
|
+
* `cartAddLine` — Add cart line
|
|
130
|
+
* `cartUpdateLine` — Update cart line quantity
|
|
131
|
+
* `cartRemoveLine` — Remove cart line
|
|
132
|
+
* `cartClear` — Clear cart
|
|
169
133
|
|
|
170
|
-
|
|
171
|
-
<!-- End Available Resources and Operations [operations] -->
|
|
172
|
-
|
|
173
|
-
<!-- Start Standalone functions [standalone-funcs] -->
|
|
174
|
-
## Standalone functions
|
|
134
|
+
### [Checkout](https://docs.quickshops.app/api/checkout)
|
|
175
135
|
|
|
176
|
-
|
|
177
|
-
functions are ideal for use in applications running in the browser, serverless
|
|
178
|
-
runtimes or other environments where application bundle size is a primary
|
|
179
|
-
concern. When using a bundler to build your application, all unused
|
|
180
|
-
functionality will be either excluded from the final bundle or tree-shaken away.
|
|
136
|
+
* `checkoutCreateSession` — Create checkout session
|
|
181
137
|
|
|
182
|
-
|
|
138
|
+
### [Subscription](https://docs.quickshops.app/api/subscriptions)
|
|
183
139
|
|
|
184
|
-
|
|
140
|
+
* `subscriptionCreatePortalSession` — Create subscription portal session
|
|
185
141
|
|
|
186
|
-
|
|
142
|
+
### [Health](https://docs.quickshops.app/api/overview)
|
|
187
143
|
|
|
188
|
-
|
|
189
|
-
- [`cartCartClear`](docs/sdks/cart/README.md#cartclear) - Clear cart
|
|
190
|
-
- [`cartCartCreate`](docs/sdks/cart/README.md#cartcreate) - Create cart
|
|
191
|
-
- [`cartCartGet`](docs/sdks/cart/README.md#cartget) - Get cart
|
|
192
|
-
- [`cartCartRemoveLine`](docs/sdks/cart/README.md#cartremoveline) - Remove cart line
|
|
193
|
-
- [`cartCartUpdateLine`](docs/sdks/cart/README.md#cartupdateline) - Update cart line quantity
|
|
194
|
-
- [`checkoutCheckoutCreateSession`](docs/sdks/checkout/README.md#checkoutcreatesession) - Create checkout session
|
|
195
|
-
- [`healthHealthCheck`](docs/sdks/health/README.md#healthcheck) - Health check
|
|
196
|
-
- [`productsProductsGetAll`](docs/sdks/products/README.md#productsgetall) - List products
|
|
197
|
-
- [`productsProductsGetById`](docs/sdks/products/README.md#productsgetbyid) - Get product
|
|
198
|
-
- [`storeStoreGet`](docs/sdks/store/README.md#storeget) - Get store for API key
|
|
199
|
-
- [`subscriptionSubscriptionCreatePortalSession`](docs/sdks/subscription/README.md#subscriptioncreateportalsession) - Create subscription portal session
|
|
144
|
+
* `healthCheck` — Health check
|
|
200
145
|
|
|
201
146
|
</details>
|
|
202
|
-
<!-- End Standalone functions [standalone-funcs] -->
|
|
203
|
-
|
|
204
|
-
<!-- Start Retries [retries] -->
|
|
205
|
-
## Retries
|
|
206
|
-
|
|
207
|
-
Some of the endpoints in this SDK support retries. If you use the SDK without any configuration, it will fall back to the default retry strategy provided by the API. However, the default retry strategy can be overridden on a per-operation basis, or across the entire SDK.
|
|
208
|
-
|
|
209
|
-
To change the default retry strategy for a single API call, simply provide a retryConfig object to the call:
|
|
210
|
-
```typescript
|
|
211
|
-
import { Quickshops } from "@quickshops/sdk";
|
|
212
|
-
|
|
213
|
-
const quickshops = new Quickshops({
|
|
214
|
-
serverURL: "https://api.example.com",
|
|
215
|
-
bearerAuth: process.env["QUICKSHOPS_BEARER_AUTH"] ?? "",
|
|
216
|
-
});
|
|
217
|
-
|
|
218
|
-
async function run() {
|
|
219
|
-
const result = await quickshops.health.healthCheck({
|
|
220
|
-
retries: {
|
|
221
|
-
strategy: "backoff",
|
|
222
|
-
backoff: {
|
|
223
|
-
initialInterval: 1,
|
|
224
|
-
maxInterval: 50,
|
|
225
|
-
exponent: 1.1,
|
|
226
|
-
maxElapsedTime: 100,
|
|
227
|
-
},
|
|
228
|
-
retryConnectionErrors: false,
|
|
229
|
-
},
|
|
230
|
-
});
|
|
231
|
-
|
|
232
|
-
console.log(result);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
run();
|
|
236
|
-
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
If you'd like to override the default retry strategy for all operations that support retries, you can provide a retryConfig at SDK initialization:
|
|
240
|
-
```typescript
|
|
241
|
-
import { Quickshops } from "@quickshops/sdk";
|
|
242
|
-
|
|
243
|
-
const quickshops = new Quickshops({
|
|
244
|
-
serverURL: "https://api.example.com",
|
|
245
|
-
retryConfig: {
|
|
246
|
-
strategy: "backoff",
|
|
247
|
-
backoff: {
|
|
248
|
-
initialInterval: 1,
|
|
249
|
-
maxInterval: 50,
|
|
250
|
-
exponent: 1.1,
|
|
251
|
-
maxElapsedTime: 100,
|
|
252
|
-
},
|
|
253
|
-
retryConnectionErrors: false,
|
|
254
|
-
},
|
|
255
|
-
bearerAuth: process.env["QUICKSHOPS_BEARER_AUTH"] ?? "",
|
|
256
|
-
});
|
|
257
|
-
|
|
258
|
-
async function run() {
|
|
259
|
-
const result = await quickshops.health.healthCheck();
|
|
260
|
-
|
|
261
|
-
console.log(result);
|
|
262
|
-
}
|
|
263
147
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
```
|
|
267
|
-
<!-- End Retries [retries] -->
|
|
148
|
+
Method reference with request shapes: [docs.quickshops.app/sdk/installation](https://docs.quickshops.app/sdk/installation#method-reference).
|
|
268
149
|
|
|
269
|
-
<!-- Start Error Handling [errors] -->
|
|
270
150
|
## Error Handling
|
|
271
151
|
|
|
272
|
-
[`QuickshopsError`](
|
|
152
|
+
[`QuickshopsError`](https://docs.quickshops.app/sdk/error-handling) is the base class for HTTP error responses.
|
|
273
153
|
|
|
274
|
-
| Property
|
|
275
|
-
|
|
|
276
|
-
| `error.message`
|
|
277
|
-
| `error.statusCode`
|
|
278
|
-
| `error.headers`
|
|
279
|
-
| `error.body`
|
|
280
|
-
| `error.rawResponse` | `Response` | Raw HTTP response
|
|
281
|
-
| `error.data$`
|
|
154
|
+
| Property | Type | Description |
|
|
155
|
+
| --- | --- | --- |
|
|
156
|
+
| `error.message` | `string` | Error message |
|
|
157
|
+
| `error.statusCode` | `number` | HTTP status code, e.g. `404` |
|
|
158
|
+
| `error.headers` | `Headers` | Response headers |
|
|
159
|
+
| `error.body` | `string` | Response body |
|
|
160
|
+
| `error.rawResponse` | `Response` | Raw HTTP response |
|
|
161
|
+
| `error.data$` | `object` | Optional structured error payload |
|
|
282
162
|
|
|
283
163
|
### Example
|
|
164
|
+
|
|
284
165
|
```typescript
|
|
285
166
|
import { Quickshops } from "@quickshops/sdk";
|
|
286
167
|
import * as errors from "@quickshops/sdk/models/errors";
|
|
287
168
|
|
|
288
|
-
const
|
|
289
|
-
serverURL: "https://api.
|
|
290
|
-
bearerAuth: process.env
|
|
169
|
+
const qs = new Quickshops({
|
|
170
|
+
serverURL: "https://api.quickshops.app",
|
|
171
|
+
bearerAuth: process.env.HEADLESS_API_KEY!,
|
|
291
172
|
});
|
|
292
173
|
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
console.log(
|
|
298
|
-
} catch (error) {
|
|
299
|
-
// The base class for HTTP error responses
|
|
300
|
-
if (error instanceof errors.QuickshopsError) {
|
|
301
|
-
console.log(error.message);
|
|
302
|
-
console.log(error.statusCode);
|
|
303
|
-
console.log(error.body);
|
|
304
|
-
console.log(error.headers);
|
|
305
|
-
|
|
306
|
-
// Depending on the method different errors may be thrown
|
|
307
|
-
if (error instanceof errors.HealthCheckUnauthorizedError) {
|
|
308
|
-
console.log(error.data$.error); // string
|
|
309
|
-
console.log(error.data$.code); // string
|
|
310
|
-
}
|
|
311
|
-
}
|
|
174
|
+
try {
|
|
175
|
+
await qs.products.productsGetById({ productId: "prod_123" });
|
|
176
|
+
} catch (error) {
|
|
177
|
+
if (error instanceof errors.QuickshopsError) {
|
|
178
|
+
console.log(error.statusCode, error.message);
|
|
312
179
|
}
|
|
313
180
|
}
|
|
314
|
-
|
|
315
|
-
run();
|
|
316
|
-
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
### Error Classes
|
|
320
|
-
**Primary error:**
|
|
321
|
-
* [`QuickshopsError`](./src/models/errors/quickshops-error.ts): The base class for HTTP error responses.
|
|
322
|
-
|
|
323
|
-
<details><summary>Less common errors (62)</summary>
|
|
324
|
-
|
|
325
|
-
<br />
|
|
326
|
-
|
|
327
|
-
**Network errors:**
|
|
328
|
-
* [`ConnectionError`](./src/models/errors/http-client-errors.ts): HTTP client was unable to make a request to a server.
|
|
329
|
-
* [`RequestTimeoutError`](./src/models/errors/http-client-errors.ts): HTTP request timed out due to an AbortSignal signal.
|
|
330
|
-
* [`RequestAbortedError`](./src/models/errors/http-client-errors.ts): HTTP request was aborted by the client.
|
|
331
|
-
* [`InvalidRequestError`](./src/models/errors/http-client-errors.ts): Any input used to create a request is invalid.
|
|
332
|
-
* [`UnexpectedClientError`](./src/models/errors/http-client-errors.ts): Unrecognised or unexpected error.
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
**Inherit from [`QuickshopsError`](./src/models/errors/quickshops-error.ts)**:
|
|
336
|
-
* [`CartClearBadRequestError`](./src/models/errors/cart-clear-bad-request-error.ts): Response for status 400. Status code `400`. Applicable to 1 of 12 methods.*
|
|
337
|
-
* [`CartCreateBadRequestError`](./src/models/errors/cart-create-bad-request-error.ts): Response for status 400. Status code `400`. Applicable to 1 of 12 methods.*
|
|
338
|
-
* [`CartUpdateLineBadRequestError`](./src/models/errors/cart-update-line-bad-request-error.ts): Response for status 400. Status code `400`. Applicable to 1 of 12 methods.*
|
|
339
|
-
* [`CartRemoveLineBadRequestError`](./src/models/errors/cart-remove-line-bad-request-error.ts): Response for status 400. Status code `400`. Applicable to 1 of 12 methods.*
|
|
340
|
-
* [`CartAddLineBadRequestError`](./src/models/errors/cart-add-line-bad-request-error.ts): Response for status 400. Status code `400`. Applicable to 1 of 12 methods.*
|
|
341
|
-
* [`CheckoutCreateSessionBadRequestError`](./src/models/errors/checkout-create-session-bad-request-error.ts): Response for status 400. Status code `400`. Applicable to 1 of 12 methods.*
|
|
342
|
-
* [`SubscriptionCreatePortalSessionBadRequestError`](./src/models/errors/subscription-create-portal-session-bad-request-error.ts): Response for status 400. Status code `400`. Applicable to 1 of 12 methods.*
|
|
343
|
-
* [`HealthCheckUnauthorizedError`](./src/models/errors/health-check-unauthorized-error.ts): Response for status 401. Status code `401`. Applicable to 1 of 12 methods.*
|
|
344
|
-
* [`StoreGetUnauthorizedError`](./src/models/errors/store-get-unauthorized-error.ts): Response for status 401. Status code `401`. Applicable to 1 of 12 methods.*
|
|
345
|
-
* [`ProductsGetAllUnauthorizedError`](./src/models/errors/products-get-all-unauthorized-error.ts): Response for status 401. Status code `401`. Applicable to 1 of 12 methods.*
|
|
346
|
-
* [`ProductsGetByIdUnauthorizedError`](./src/models/errors/products-get-by-id-unauthorized-error.ts): Response for status 401. Status code `401`. Applicable to 1 of 12 methods.*
|
|
347
|
-
* [`CartGetUnauthorizedError`](./src/models/errors/cart-get-unauthorized-error.ts): Response for status 401. Status code `401`. Applicable to 1 of 12 methods.*
|
|
348
|
-
* [`CartClearUnauthorizedError`](./src/models/errors/cart-clear-unauthorized-error.ts): Response for status 401. Status code `401`. Applicable to 1 of 12 methods.*
|
|
349
|
-
* [`CartCreateUnauthorizedError`](./src/models/errors/cart-create-unauthorized-error.ts): Response for status 401. Status code `401`. Applicable to 1 of 12 methods.*
|
|
350
|
-
* [`CartUpdateLineUnauthorizedError`](./src/models/errors/cart-update-line-unauthorized-error.ts): Response for status 401. Status code `401`. Applicable to 1 of 12 methods.*
|
|
351
|
-
* [`CartRemoveLineUnauthorizedError`](./src/models/errors/cart-remove-line-unauthorized-error.ts): Response for status 401. Status code `401`. Applicable to 1 of 12 methods.*
|
|
352
|
-
* [`CartAddLineUnauthorizedError`](./src/models/errors/cart-add-line-unauthorized-error.ts): Response for status 401. Status code `401`. Applicable to 1 of 12 methods.*
|
|
353
|
-
* [`CheckoutCreateSessionUnauthorizedError`](./src/models/errors/checkout-create-session-unauthorized-error.ts): Response for status 401. Status code `401`. Applicable to 1 of 12 methods.*
|
|
354
|
-
* [`SubscriptionCreatePortalSessionUnauthorizedError`](./src/models/errors/subscription-create-portal-session-unauthorized-error.ts): Response for status 401. Status code `401`. Applicable to 1 of 12 methods.*
|
|
355
|
-
* [`HealthCheckForbiddenError`](./src/models/errors/health-check-forbidden-error.ts): Response for status 403. Status code `403`. Applicable to 1 of 12 methods.*
|
|
356
|
-
* [`StoreGetForbiddenError`](./src/models/errors/store-get-forbidden-error.ts): Response for status 403. Status code `403`. Applicable to 1 of 12 methods.*
|
|
357
|
-
* [`ProductsGetAllForbiddenError`](./src/models/errors/products-get-all-forbidden-error.ts): Response for status 403. Status code `403`. Applicable to 1 of 12 methods.*
|
|
358
|
-
* [`ProductsGetByIdForbiddenError`](./src/models/errors/products-get-by-id-forbidden-error.ts): Response for status 403. Status code `403`. Applicable to 1 of 12 methods.*
|
|
359
|
-
* [`CartGetForbiddenError`](./src/models/errors/cart-get-forbidden-error.ts): Response for status 403. Status code `403`. Applicable to 1 of 12 methods.*
|
|
360
|
-
* [`CartClearForbiddenError`](./src/models/errors/cart-clear-forbidden-error.ts): Response for status 403. Status code `403`. Applicable to 1 of 12 methods.*
|
|
361
|
-
* [`CartCreateForbiddenError`](./src/models/errors/cart-create-forbidden-error.ts): Response for status 403. Status code `403`. Applicable to 1 of 12 methods.*
|
|
362
|
-
* [`CartUpdateLineForbiddenError`](./src/models/errors/cart-update-line-forbidden-error.ts): Response for status 403. Status code `403`. Applicable to 1 of 12 methods.*
|
|
363
|
-
* [`CartRemoveLineForbiddenError`](./src/models/errors/cart-remove-line-forbidden-error.ts): Response for status 403. Status code `403`. Applicable to 1 of 12 methods.*
|
|
364
|
-
* [`CartAddLineForbiddenError`](./src/models/errors/cart-add-line-forbidden-error.ts): Response for status 403. Status code `403`. Applicable to 1 of 12 methods.*
|
|
365
|
-
* [`CheckoutCreateSessionForbiddenError`](./src/models/errors/checkout-create-session-forbidden-error.ts): Response for status 403. Status code `403`. Applicable to 1 of 12 methods.*
|
|
366
|
-
* [`SubscriptionCreatePortalSessionForbiddenError`](./src/models/errors/subscription-create-portal-session-forbidden-error.ts): Response for status 403. Status code `403`. Applicable to 1 of 12 methods.*
|
|
367
|
-
* [`StoreGetNotFoundError`](./src/models/errors/store-get-not-found-error.ts): Response for status 404. Status code `404`. Applicable to 1 of 12 methods.*
|
|
368
|
-
* [`ProductsGetByIdNotFoundError`](./src/models/errors/products-get-by-id-not-found-error.ts): Response for status 404. Status code `404`. Applicable to 1 of 12 methods.*
|
|
369
|
-
* [`CartGetNotFoundError`](./src/models/errors/cart-get-not-found-error.ts): Response for status 404. Status code `404`. Applicable to 1 of 12 methods.*
|
|
370
|
-
* [`CartUpdateLineNotFoundError`](./src/models/errors/cart-update-line-not-found-error.ts): Response for status 404. Status code `404`. Applicable to 1 of 12 methods.*
|
|
371
|
-
* [`CartRemoveLineNotFoundError`](./src/models/errors/cart-remove-line-not-found-error.ts): Response for status 404. Status code `404`. Applicable to 1 of 12 methods.*
|
|
372
|
-
* [`CartAddLineNotFoundError`](./src/models/errors/cart-add-line-not-found-error.ts): Response for status 404. Status code `404`. Applicable to 1 of 12 methods.*
|
|
373
|
-
* [`CartClearConflictError`](./src/models/errors/cart-clear-conflict-error.ts): Response for status 409. Status code `409`. Applicable to 1 of 12 methods.*
|
|
374
|
-
* [`CartCreateConflictError`](./src/models/errors/cart-create-conflict-error.ts): Response for status 409. Status code `409`. Applicable to 1 of 12 methods.*
|
|
375
|
-
* [`CartUpdateLineConflictError`](./src/models/errors/cart-update-line-conflict-error.ts): Response for status 409. Status code `409`. Applicable to 1 of 12 methods.*
|
|
376
|
-
* [`CartRemoveLineConflictError`](./src/models/errors/cart-remove-line-conflict-error.ts): Response for status 409. Status code `409`. Applicable to 1 of 12 methods.*
|
|
377
|
-
* [`CartAddLineConflictError`](./src/models/errors/cart-add-line-conflict-error.ts): Response for status 409. Status code `409`. Applicable to 1 of 12 methods.*
|
|
378
|
-
* [`CheckoutCreateSessionConflictError`](./src/models/errors/checkout-create-session-conflict-error.ts): Response for status 409. Status code `409`. Applicable to 1 of 12 methods.*
|
|
379
|
-
* [`SubscriptionCreatePortalSessionConflictError`](./src/models/errors/subscription-create-portal-session-conflict-error.ts): Response for status 409. Status code `409`. Applicable to 1 of 12 methods.*
|
|
380
|
-
* [`HealthCheckTooManyRequestsError`](./src/models/errors/health-check-too-many-requests-error.ts): Response for status 429. Status code `429`. Applicable to 1 of 12 methods.*
|
|
381
|
-
* [`StoreGetTooManyRequestsError`](./src/models/errors/store-get-too-many-requests-error.ts): Response for status 429. Status code `429`. Applicable to 1 of 12 methods.*
|
|
382
|
-
* [`ProductsGetAllTooManyRequestsError`](./src/models/errors/products-get-all-too-many-requests-error.ts): Response for status 429. Status code `429`. Applicable to 1 of 12 methods.*
|
|
383
|
-
* [`ProductsGetByIdTooManyRequestsError`](./src/models/errors/products-get-by-id-too-many-requests-error.ts): Response for status 429. Status code `429`. Applicable to 1 of 12 methods.*
|
|
384
|
-
* [`CartGetTooManyRequestsError`](./src/models/errors/cart-get-too-many-requests-error.ts): Response for status 429. Status code `429`. Applicable to 1 of 12 methods.*
|
|
385
|
-
* [`CartClearTooManyRequestsError`](./src/models/errors/cart-clear-too-many-requests-error.ts): Response for status 429. Status code `429`. Applicable to 1 of 12 methods.*
|
|
386
|
-
* [`CartCreateTooManyRequestsError`](./src/models/errors/cart-create-too-many-requests-error.ts): Response for status 429. Status code `429`. Applicable to 1 of 12 methods.*
|
|
387
|
-
* [`CartUpdateLineTooManyRequestsError`](./src/models/errors/cart-update-line-too-many-requests-error.ts): Response for status 429. Status code `429`. Applicable to 1 of 12 methods.*
|
|
388
|
-
* [`CartRemoveLineTooManyRequestsError`](./src/models/errors/cart-remove-line-too-many-requests-error.ts): Response for status 429. Status code `429`. Applicable to 1 of 12 methods.*
|
|
389
|
-
* [`CartAddLineTooManyRequestsError`](./src/models/errors/cart-add-line-too-many-requests-error.ts): Response for status 429. Status code `429`. Applicable to 1 of 12 methods.*
|
|
390
|
-
* [`CheckoutCreateSessionTooManyRequestsError`](./src/models/errors/checkout-create-session-too-many-requests-error.ts): Response for status 429. Status code `429`. Applicable to 1 of 12 methods.*
|
|
391
|
-
* [`SubscriptionCreatePortalSessionTooManyRequestsError`](./src/models/errors/subscription-create-portal-session-too-many-requests-error.ts): Response for status 429. Status code `429`. Applicable to 1 of 12 methods.*
|
|
392
|
-
* [`ResponseValidationError`](./src/models/errors/response-validation-error.ts): Type mismatch between the data returned from the server and the structure expected by the SDK. See `error.rawValue` for the raw value and `error.pretty()` for a nicely formatted multi-line string.
|
|
393
|
-
|
|
394
|
-
</details>
|
|
395
|
-
|
|
396
|
-
\* Check [the method documentation](#available-resources-and-operations) to see if the error is applicable.
|
|
397
|
-
<!-- End Error Handling [errors] -->
|
|
398
|
-
|
|
399
|
-
<!-- Start Custom HTTP Client [http-client] -->
|
|
400
|
-
## Custom HTTP Client
|
|
401
|
-
|
|
402
|
-
The TypeScript SDK makes API calls using an `HTTPClient` that wraps the native
|
|
403
|
-
[Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API). This
|
|
404
|
-
client is a thin wrapper around `fetch` and provides the ability to attach hooks
|
|
405
|
-
around the request lifecycle that can be used to modify the request or handle
|
|
406
|
-
errors and response.
|
|
407
|
-
|
|
408
|
-
The `HTTPClient` constructor takes an optional `fetcher` argument that can be
|
|
409
|
-
used to integrate a third-party HTTP client or when writing tests to mock out
|
|
410
|
-
the HTTP client and feed in fixtures.
|
|
411
|
-
|
|
412
|
-
The following example shows how to:
|
|
413
|
-
- route requests through a proxy server using [undici](https://www.npmjs.com/package/undici)'s ProxyAgent
|
|
414
|
-
- use the `"beforeRequest"` hook to add a custom header and a timeout to requests
|
|
415
|
-
- use the `"requestError"` hook to log errors
|
|
416
|
-
|
|
417
|
-
```typescript
|
|
418
|
-
import { Quickshops } from "@quickshops/sdk";
|
|
419
|
-
import { ProxyAgent } from "undici";
|
|
420
|
-
import { HTTPClient } from "@quickshops/sdk/lib/http";
|
|
421
|
-
|
|
422
|
-
const dispatcher = new ProxyAgent("http://proxy.example.com:8080");
|
|
423
|
-
|
|
424
|
-
const httpClient = new HTTPClient({
|
|
425
|
-
// 'fetcher' takes a function that has the same signature as native 'fetch'.
|
|
426
|
-
fetcher: (input, init) =>
|
|
427
|
-
// 'dispatcher' is specific to undici and not part of the standard Fetch API.
|
|
428
|
-
fetch(input, { ...init, dispatcher } as RequestInit),
|
|
429
|
-
});
|
|
430
|
-
|
|
431
|
-
httpClient.addHook("beforeRequest", (request) => {
|
|
432
|
-
const nextRequest = new Request(request, {
|
|
433
|
-
signal: request.signal || AbortSignal.timeout(5000)
|
|
434
|
-
});
|
|
435
|
-
|
|
436
|
-
nextRequest.headers.set("x-custom-header", "custom value");
|
|
437
|
-
|
|
438
|
-
return nextRequest;
|
|
439
|
-
});
|
|
440
|
-
|
|
441
|
-
httpClient.addHook("requestError", (error, request) => {
|
|
442
|
-
console.group("Request Error");
|
|
443
|
-
console.log("Reason:", `${error}`);
|
|
444
|
-
console.log("Endpoint:", `${request.method} ${request.url}`);
|
|
445
|
-
console.groupEnd();
|
|
446
|
-
});
|
|
447
|
-
|
|
448
|
-
const sdk = new Quickshops({ httpClient: httpClient });
|
|
449
181
|
```
|
|
450
|
-
<!-- End Custom HTTP Client [http-client] -->
|
|
451
182
|
|
|
452
|
-
|
|
453
|
-
## Debugging
|
|
183
|
+
See [error handling](https://docs.quickshops.app/sdk/error-handling) for typed errors and retries.
|
|
454
184
|
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
You can pass a logger that matches `console`'s interface as an SDK option.
|
|
458
|
-
|
|
459
|
-
> [!WARNING]
|
|
460
|
-
> Beware that debug logging will reveal secrets, like API tokens in headers, in log messages printed to a console or files. It's recommended to use this feature only during local development and not in production.
|
|
461
|
-
|
|
462
|
-
```typescript
|
|
463
|
-
import { Quickshops } from "@quickshops/sdk";
|
|
464
|
-
|
|
465
|
-
const sdk = new Quickshops({ debugLogger: console });
|
|
466
|
-
```
|
|
185
|
+
# Development
|
|
467
186
|
|
|
468
|
-
|
|
469
|
-
<!-- End Debugging [debug] -->
|
|
187
|
+
## Maturity
|
|
470
188
|
|
|
471
|
-
|
|
189
|
+
This SDK is in beta. There may be breaking changes between minor versions. Pin a specific package version in production.
|
|
472
190
|
|
|
473
|
-
|
|
191
|
+
## License
|
|
474
192
|
|
|
475
|
-
|
|
193
|
+
`@quickshops/sdk` is closed source software owned by QuickShops. All rights reserved.
|
|
476
194
|
|
|
477
|
-
|
|
478
|
-
to a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally
|
|
479
|
-
looking for the latest version.
|
|
195
|
+
You may install and use this SDK only to build applications that integrate with QuickShops. You may not copy, modify, sublicense, or redistribute the SDK except as permitted by QuickShops.
|
|
480
196
|
|
|
481
|
-
|
|
197
|
+
Questions: [quickshops.app](https://quickshops.app)
|
|
482
198
|
|
|
483
|
-
|
|
484
|
-
We look forward to hearing your feedback. Feel free to open a PR or an issue with a proof of concept and we'll do our best to include it in a future release.
|
|
199
|
+
### Made by QuickShops
|
|
485
200
|
|
|
486
|
-
|
|
201
|
+
Published and maintained by [QuickShops](https://quickshops.app).
|
package/esm/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,SAAS;CAAG"}
|
package/esm/core.js
CHANGED
package/esm/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,SAAS;CAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cart-cart-add-line.d.ts","sourceRoot":"","sources":["../../src/funcs/cart-cart-add-line.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cart-cart-add-line.d.ts","sourceRoot":"","sources":["../../src/funcs/cart-cart-add-line.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAM5C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAW,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,UAAU,CAAC,kBAAkB,EACtC,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CACX,MAAM,CACJ,UAAU,CAAC,mBAAmB,EAC5B,MAAM,CAAC,0BAA0B,GACjC,MAAM,CAAC,4BAA4B,GACnC,MAAM,CAAC,yBAAyB,GAChC,MAAM,CAAC,wBAAwB,GAC/B,MAAM,CAAC,wBAAwB,GAC/B,MAAM,CAAC,+BAA+B,GACtC,eAAe,GACf,uBAAuB,GACvB,eAAe,GACf,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,kBAAkB,CACrB,CACF,CAMA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cart-cart-add-line.js","sourceRoot":"","sources":["../../src/funcs/cart-cart-add-line.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cart-cart-add-line.js","sourceRoot":"","sources":["../../src/funcs/cart-cart-add-line.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cart-cart-clear.d.ts","sourceRoot":"","sources":["../../src/funcs/cart-cart-clear.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cart-cart-clear.d.ts","sourceRoot":"","sources":["../../src/funcs/cart-cart-clear.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAM5C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAW,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,UAAU,CAAC,gBAAgB,EACpC,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CACX,MAAM,CACJ,UAAU,CAAC,iBAAiB,EAC1B,MAAM,CAAC,wBAAwB,GAC/B,MAAM,CAAC,0BAA0B,GACjC,MAAM,CAAC,uBAAuB,GAC9B,MAAM,CAAC,sBAAsB,GAC7B,MAAM,CAAC,6BAA6B,GACpC,eAAe,GACf,uBAAuB,GACvB,eAAe,GACf,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,kBAAkB,CACrB,CACF,CAMA"}
|