@usehercules/sdk 1.1.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/CHANGELOG.md +31 -0
- package/LICENSE +201 -0
- package/README.md +414 -0
- package/api-promise.d.mts +2 -0
- package/api-promise.d.mts.map +1 -0
- package/api-promise.d.ts +2 -0
- package/api-promise.d.ts.map +1 -0
- package/api-promise.js +6 -0
- package/api-promise.js.map +1 -0
- package/api-promise.mjs +2 -0
- package/api-promise.mjs.map +1 -0
- package/client.d.mts +189 -0
- package/client.d.mts.map +1 -0
- package/client.d.ts +189 -0
- package/client.d.ts.map +1 -0
- package/client.js +481 -0
- package/client.js.map +1 -0
- package/client.mjs +477 -0
- package/client.mjs.map +1 -0
- package/core/api-promise.d.mts +46 -0
- package/core/api-promise.d.mts.map +1 -0
- package/core/api-promise.d.ts +46 -0
- package/core/api-promise.d.ts.map +1 -0
- package/core/api-promise.js +74 -0
- package/core/api-promise.js.map +1 -0
- package/core/api-promise.mjs +70 -0
- package/core/api-promise.mjs.map +1 -0
- package/core/error.d.mts +46 -0
- package/core/error.d.mts.map +1 -0
- package/core/error.d.ts +46 -0
- package/core/error.d.ts.map +1 -0
- package/core/error.js +113 -0
- package/core/error.js.map +1 -0
- package/core/error.mjs +97 -0
- package/core/error.mjs.map +1 -0
- package/core/pagination.d.mts +55 -0
- package/core/pagination.d.mts.map +1 -0
- package/core/pagination.d.ts +55 -0
- package/core/pagination.d.ts.map +1 -0
- package/core/pagination.js +115 -0
- package/core/pagination.js.map +1 -0
- package/core/pagination.mjs +109 -0
- package/core/pagination.mjs.map +1 -0
- package/core/resource.d.mts +6 -0
- package/core/resource.d.mts.map +1 -0
- package/core/resource.d.ts +6 -0
- package/core/resource.d.ts.map +1 -0
- package/core/resource.js +11 -0
- package/core/resource.js.map +1 -0
- package/core/resource.mjs +7 -0
- package/core/resource.mjs.map +1 -0
- package/core/uploads.d.mts +3 -0
- package/core/uploads.d.mts.map +1 -0
- package/core/uploads.d.ts +3 -0
- package/core/uploads.d.ts.map +1 -0
- package/core/uploads.js +6 -0
- package/core/uploads.js.map +1 -0
- package/core/uploads.mjs +2 -0
- package/core/uploads.mjs.map +1 -0
- package/error.d.mts +2 -0
- package/error.d.mts.map +1 -0
- package/error.d.ts +2 -0
- package/error.d.ts.map +1 -0
- package/error.js +6 -0
- package/error.js.map +1 -0
- package/error.mjs +2 -0
- package/error.mjs.map +1 -0
- package/index.d.mts +7 -0
- package/index.d.mts.map +1 -0
- package/index.d.ts +7 -0
- package/index.d.ts.map +1 -0
- package/index.js +32 -0
- package/index.js.map +1 -0
- package/index.mjs +8 -0
- package/index.mjs.map +1 -0
- package/internal/builtin-types.d.mts +73 -0
- package/internal/builtin-types.d.mts.map +1 -0
- package/internal/builtin-types.d.ts +73 -0
- package/internal/builtin-types.d.ts.map +1 -0
- package/internal/builtin-types.js +4 -0
- package/internal/builtin-types.js.map +1 -0
- package/internal/builtin-types.mjs +3 -0
- package/internal/builtin-types.mjs.map +1 -0
- package/internal/detect-platform.d.mts +15 -0
- package/internal/detect-platform.d.mts.map +1 -0
- package/internal/detect-platform.d.ts +15 -0
- package/internal/detect-platform.d.ts.map +1 -0
- package/internal/detect-platform.js +162 -0
- package/internal/detect-platform.js.map +1 -0
- package/internal/detect-platform.mjs +157 -0
- package/internal/detect-platform.mjs.map +1 -0
- package/internal/errors.d.mts +3 -0
- package/internal/errors.d.mts.map +1 -0
- package/internal/errors.d.ts +3 -0
- package/internal/errors.d.ts.map +1 -0
- package/internal/errors.js +41 -0
- package/internal/errors.js.map +1 -0
- package/internal/errors.mjs +36 -0
- package/internal/errors.mjs.map +1 -0
- package/internal/headers.d.mts +20 -0
- package/internal/headers.d.mts.map +1 -0
- package/internal/headers.d.ts +20 -0
- package/internal/headers.d.ts.map +1 -0
- package/internal/headers.js +79 -0
- package/internal/headers.js.map +1 -0
- package/internal/headers.mjs +74 -0
- package/internal/headers.mjs.map +1 -0
- package/internal/parse.d.mts +12 -0
- package/internal/parse.d.mts.map +1 -0
- package/internal/parse.d.ts +12 -0
- package/internal/parse.d.ts.map +1 -0
- package/internal/parse.js +35 -0
- package/internal/parse.js.map +1 -0
- package/internal/parse.mjs +32 -0
- package/internal/parse.mjs.map +1 -0
- package/internal/request-options.d.mts +75 -0
- package/internal/request-options.d.mts.map +1 -0
- package/internal/request-options.d.ts +75 -0
- package/internal/request-options.d.ts.map +1 -0
- package/internal/request-options.js +14 -0
- package/internal/request-options.js.map +1 -0
- package/internal/request-options.mjs +10 -0
- package/internal/request-options.mjs.map +1 -0
- package/internal/shim-types.d.mts +17 -0
- package/internal/shim-types.d.mts.map +1 -0
- package/internal/shim-types.d.ts +17 -0
- package/internal/shim-types.d.ts.map +1 -0
- package/internal/shim-types.js +4 -0
- package/internal/shim-types.js.map +1 -0
- package/internal/shim-types.mjs +3 -0
- package/internal/shim-types.mjs.map +1 -0
- package/internal/shims.d.mts +20 -0
- package/internal/shims.d.mts.map +1 -0
- package/internal/shims.d.ts +20 -0
- package/internal/shims.d.ts.map +1 -0
- package/internal/shims.js +92 -0
- package/internal/shims.js.map +1 -0
- package/internal/shims.mjs +85 -0
- package/internal/shims.mjs.map +1 -0
- package/internal/to-file.d.mts +45 -0
- package/internal/to-file.d.mts.map +1 -0
- package/internal/to-file.d.ts +45 -0
- package/internal/to-file.d.ts.map +1 -0
- package/internal/to-file.js +91 -0
- package/internal/to-file.js.map +1 -0
- package/internal/to-file.mjs +88 -0
- package/internal/to-file.mjs.map +1 -0
- package/internal/tslib.js +81 -0
- package/internal/tslib.mjs +17 -0
- package/internal/types.d.mts +69 -0
- package/internal/types.d.mts.map +1 -0
- package/internal/types.d.ts +69 -0
- package/internal/types.d.ts.map +1 -0
- package/internal/types.js +4 -0
- package/internal/types.js.map +1 -0
- package/internal/types.mjs +3 -0
- package/internal/types.mjs.map +1 -0
- package/internal/uploads.d.mts +42 -0
- package/internal/uploads.d.mts.map +1 -0
- package/internal/uploads.d.ts +42 -0
- package/internal/uploads.d.ts.map +1 -0
- package/internal/uploads.js +141 -0
- package/internal/uploads.js.map +1 -0
- package/internal/uploads.mjs +131 -0
- package/internal/uploads.mjs.map +1 -0
- package/internal/utils/base64.d.mts +3 -0
- package/internal/utils/base64.d.mts.map +1 -0
- package/internal/utils/base64.d.ts +3 -0
- package/internal/utils/base64.d.ts.map +1 -0
- package/internal/utils/base64.js +38 -0
- package/internal/utils/base64.js.map +1 -0
- package/internal/utils/base64.mjs +33 -0
- package/internal/utils/base64.mjs.map +1 -0
- package/internal/utils/bytes.d.mts +4 -0
- package/internal/utils/bytes.d.mts.map +1 -0
- package/internal/utils/bytes.d.ts +4 -0
- package/internal/utils/bytes.d.ts.map +1 -0
- package/internal/utils/bytes.js +31 -0
- package/internal/utils/bytes.js.map +1 -0
- package/internal/utils/bytes.mjs +26 -0
- package/internal/utils/bytes.mjs.map +1 -0
- package/internal/utils/env.d.mts +9 -0
- package/internal/utils/env.d.mts.map +1 -0
- package/internal/utils/env.d.ts +9 -0
- package/internal/utils/env.d.ts.map +1 -0
- package/internal/utils/env.js +22 -0
- package/internal/utils/env.js.map +1 -0
- package/internal/utils/env.mjs +18 -0
- package/internal/utils/env.mjs.map +1 -0
- package/internal/utils/log.d.mts +37 -0
- package/internal/utils/log.d.mts.map +1 -0
- package/internal/utils/log.d.ts +37 -0
- package/internal/utils/log.d.ts.map +1 -0
- package/internal/utils/log.js +85 -0
- package/internal/utils/log.js.map +1 -0
- package/internal/utils/log.mjs +79 -0
- package/internal/utils/log.mjs.map +1 -0
- package/internal/utils/path.d.mts +15 -0
- package/internal/utils/path.d.mts.map +1 -0
- package/internal/utils/path.d.ts +15 -0
- package/internal/utils/path.d.ts.map +1 -0
- package/internal/utils/path.js +79 -0
- package/internal/utils/path.js.map +1 -0
- package/internal/utils/path.mjs +74 -0
- package/internal/utils/path.mjs.map +1 -0
- package/internal/utils/sleep.d.mts +2 -0
- package/internal/utils/sleep.d.mts.map +1 -0
- package/internal/utils/sleep.d.ts +2 -0
- package/internal/utils/sleep.d.ts.map +1 -0
- package/internal/utils/sleep.js +7 -0
- package/internal/utils/sleep.js.map +1 -0
- package/internal/utils/sleep.mjs +3 -0
- package/internal/utils/sleep.mjs.map +1 -0
- package/internal/utils/uuid.d.mts +5 -0
- package/internal/utils/uuid.d.mts.map +1 -0
- package/internal/utils/uuid.d.ts +5 -0
- package/internal/utils/uuid.d.ts.map +1 -0
- package/internal/utils/uuid.js +19 -0
- package/internal/utils/uuid.js.map +1 -0
- package/internal/utils/uuid.mjs +15 -0
- package/internal/utils/uuid.mjs.map +1 -0
- package/internal/utils/values.d.mts +18 -0
- package/internal/utils/values.d.mts.map +1 -0
- package/internal/utils/values.d.ts +18 -0
- package/internal/utils/values.d.ts.map +1 -0
- package/internal/utils/values.js +112 -0
- package/internal/utils/values.js.map +1 -0
- package/internal/utils/values.mjs +94 -0
- package/internal/utils/values.mjs.map +1 -0
- package/internal/utils.d.mts +7 -0
- package/internal/utils.d.mts.map +1 -0
- package/internal/utils.d.ts +7 -0
- package/internal/utils.d.ts.map +1 -0
- package/internal/utils.js +11 -0
- package/internal/utils.js.map +1 -0
- package/internal/utils.mjs +8 -0
- package/internal/utils.mjs.map +1 -0
- package/package.json +147 -0
- package/pagination.d.mts +2 -0
- package/pagination.d.mts.map +1 -0
- package/pagination.d.ts +2 -0
- package/pagination.d.ts.map +1 -0
- package/pagination.js +6 -0
- package/pagination.js.map +1 -0
- package/pagination.mjs +2 -0
- package/pagination.mjs.map +1 -0
- package/resource.d.mts +2 -0
- package/resource.d.mts.map +1 -0
- package/resource.d.ts +2 -0
- package/resource.d.ts.map +1 -0
- package/resource.js +6 -0
- package/resource.js.map +1 -0
- package/resource.mjs +2 -0
- package/resource.mjs.map +1 -0
- package/resources/beta/beta.d.mts +10 -0
- package/resources/beta/beta.d.mts.map +1 -0
- package/resources/beta/beta.d.ts +10 -0
- package/resources/beta/beta.d.ts.map +1 -0
- package/resources/beta/beta.js +17 -0
- package/resources/beta/beta.js.map +1 -0
- package/resources/beta/beta.mjs +12 -0
- package/resources/beta/beta.mjs.map +1 -0
- package/resources/beta/index.d.mts +3 -0
- package/resources/beta/index.d.mts.map +1 -0
- package/resources/beta/index.d.ts +3 -0
- package/resources/beta/index.d.ts.map +1 -0
- package/resources/beta/index.js +9 -0
- package/resources/beta/index.js.map +1 -0
- package/resources/beta/index.mjs +4 -0
- package/resources/beta/index.mjs.map +1 -0
- package/resources/beta/subscriptions/coupons.d.mts +151 -0
- package/resources/beta/subscriptions/coupons.d.mts.map +1 -0
- package/resources/beta/subscriptions/coupons.d.ts +151 -0
- package/resources/beta/subscriptions/coupons.d.ts.map +1 -0
- package/resources/beta/subscriptions/coupons.js +51 -0
- package/resources/beta/subscriptions/coupons.js.map +1 -0
- package/resources/beta/subscriptions/coupons.mjs +47 -0
- package/resources/beta/subscriptions/coupons.mjs.map +1 -0
- package/resources/beta/subscriptions/customers.d.mts +93 -0
- package/resources/beta/subscriptions/customers.d.mts.map +1 -0
- package/resources/beta/subscriptions/customers.d.ts +93 -0
- package/resources/beta/subscriptions/customers.d.ts.map +1 -0
- package/resources/beta/subscriptions/customers.js +57 -0
- package/resources/beta/subscriptions/customers.js.map +1 -0
- package/resources/beta/subscriptions/customers.mjs +53 -0
- package/resources/beta/subscriptions/customers.mjs.map +1 -0
- package/resources/beta/subscriptions/entitlements.d.mts +70 -0
- package/resources/beta/subscriptions/entitlements.d.mts.map +1 -0
- package/resources/beta/subscriptions/entitlements.d.ts +70 -0
- package/resources/beta/subscriptions/entitlements.d.ts.map +1 -0
- package/resources/beta/subscriptions/entitlements.js +38 -0
- package/resources/beta/subscriptions/entitlements.js.map +1 -0
- package/resources/beta/subscriptions/entitlements.mjs +34 -0
- package/resources/beta/subscriptions/entitlements.mjs.map +1 -0
- package/resources/beta/subscriptions/index.d.mts +6 -0
- package/resources/beta/subscriptions/index.d.mts.map +1 -0
- package/resources/beta/subscriptions/index.d.ts +6 -0
- package/resources/beta/subscriptions/index.d.ts.map +1 -0
- package/resources/beta/subscriptions/index.js +15 -0
- package/resources/beta/subscriptions/index.js.map +1 -0
- package/resources/beta/subscriptions/index.mjs +7 -0
- package/resources/beta/subscriptions/index.mjs.map +1 -0
- package/resources/beta/subscriptions/plans/entitlements.d.mts +48 -0
- package/resources/beta/subscriptions/plans/entitlements.d.mts.map +1 -0
- package/resources/beta/subscriptions/plans/entitlements.d.ts +48 -0
- package/resources/beta/subscriptions/plans/entitlements.d.ts.map +1 -0
- package/resources/beta/subscriptions/plans/entitlements.js +34 -0
- package/resources/beta/subscriptions/plans/entitlements.js.map +1 -0
- package/resources/beta/subscriptions/plans/entitlements.mjs +30 -0
- package/resources/beta/subscriptions/plans/entitlements.mjs.map +1 -0
- package/resources/beta/subscriptions/plans/index.d.mts +3 -0
- package/resources/beta/subscriptions/plans/index.d.mts.map +1 -0
- package/resources/beta/subscriptions/plans/index.d.ts +3 -0
- package/resources/beta/subscriptions/plans/index.d.ts.map +1 -0
- package/resources/beta/subscriptions/plans/index.js +9 -0
- package/resources/beta/subscriptions/plans/index.js.map +1 -0
- package/resources/beta/subscriptions/plans/index.mjs +4 -0
- package/resources/beta/subscriptions/plans/index.mjs.map +1 -0
- package/resources/beta/subscriptions/plans/plans.d.mts +87 -0
- package/resources/beta/subscriptions/plans/plans.d.mts.map +1 -0
- package/resources/beta/subscriptions/plans/plans.d.ts +87 -0
- package/resources/beta/subscriptions/plans/plans.d.ts.map +1 -0
- package/resources/beta/subscriptions/plans/plans.js +49 -0
- package/resources/beta/subscriptions/plans/plans.js.map +1 -0
- package/resources/beta/subscriptions/plans/plans.mjs +44 -0
- package/resources/beta/subscriptions/plans/plans.mjs.map +1 -0
- package/resources/beta/subscriptions/plans.d.mts +2 -0
- package/resources/beta/subscriptions/plans.d.mts.map +1 -0
- package/resources/beta/subscriptions/plans.d.ts +2 -0
- package/resources/beta/subscriptions/plans.d.ts.map +1 -0
- package/resources/beta/subscriptions/plans.js +6 -0
- package/resources/beta/subscriptions/plans.js.map +1 -0
- package/resources/beta/subscriptions/plans.mjs +3 -0
- package/resources/beta/subscriptions/plans.mjs.map +1 -0
- package/resources/beta/subscriptions/subscriptions.d.mts +130 -0
- package/resources/beta/subscriptions/subscriptions.d.mts.map +1 -0
- package/resources/beta/subscriptions/subscriptions.d.ts +130 -0
- package/resources/beta/subscriptions/subscriptions.d.ts.map +1 -0
- package/resources/beta/subscriptions/subscriptions.js +47 -0
- package/resources/beta/subscriptions/subscriptions.js.map +1 -0
- package/resources/beta/subscriptions/subscriptions.mjs +42 -0
- package/resources/beta/subscriptions/subscriptions.mjs.map +1 -0
- package/resources/beta/subscriptions.d.mts +2 -0
- package/resources/beta/subscriptions.d.mts.map +1 -0
- package/resources/beta/subscriptions.d.ts +2 -0
- package/resources/beta/subscriptions.d.ts.map +1 -0
- package/resources/beta/subscriptions.js +6 -0
- package/resources/beta/subscriptions.js.map +1 -0
- package/resources/beta/subscriptions.mjs +3 -0
- package/resources/beta/subscriptions.mjs.map +1 -0
- package/resources/beta.d.mts +2 -0
- package/resources/beta.d.mts.map +1 -0
- package/resources/beta.d.ts +2 -0
- package/resources/beta.d.ts.map +1 -0
- package/resources/beta.js +6 -0
- package/resources/beta.js.map +1 -0
- package/resources/beta.mjs +3 -0
- package/resources/beta.mjs.map +1 -0
- package/resources/index.d.mts +2 -0
- package/resources/index.d.mts.map +1 -0
- package/resources/index.d.ts +2 -0
- package/resources/index.d.ts.map +1 -0
- package/resources/index.js +7 -0
- package/resources/index.js.map +1 -0
- package/resources/index.mjs +3 -0
- package/resources/index.mjs.map +1 -0
- package/resources.d.mts +2 -0
- package/resources.d.mts.map +1 -0
- package/resources.d.ts +2 -0
- package/resources.d.ts.map +1 -0
- package/resources.js +5 -0
- package/resources.js.map +1 -0
- package/resources.mjs +2 -0
- package/resources.mjs.map +1 -0
- package/src/api-promise.ts +2 -0
- package/src/client.ts +766 -0
- package/src/core/README.md +3 -0
- package/src/core/api-promise.ts +92 -0
- package/src/core/error.ts +130 -0
- package/src/core/pagination.ts +177 -0
- package/src/core/resource.ts +11 -0
- package/src/core/uploads.ts +2 -0
- package/src/error.ts +2 -0
- package/src/index.ts +23 -0
- package/src/internal/README.md +3 -0
- package/src/internal/builtin-types.ts +93 -0
- package/src/internal/detect-platform.ts +196 -0
- package/src/internal/errors.ts +33 -0
- package/src/internal/headers.ts +97 -0
- package/src/internal/parse.ts +50 -0
- package/src/internal/request-options.ts +91 -0
- package/src/internal/shim-types.ts +26 -0
- package/src/internal/shims.ts +107 -0
- package/src/internal/to-file.ts +154 -0
- package/src/internal/types.ts +95 -0
- package/src/internal/uploads.ts +187 -0
- package/src/internal/utils/base64.ts +40 -0
- package/src/internal/utils/bytes.ts +32 -0
- package/src/internal/utils/env.ts +18 -0
- package/src/internal/utils/log.ts +126 -0
- package/src/internal/utils/path.ts +88 -0
- package/src/internal/utils/sleep.ts +3 -0
- package/src/internal/utils/uuid.ts +17 -0
- package/src/internal/utils/values.ts +105 -0
- package/src/internal/utils.ts +8 -0
- package/src/lib/.keep +4 -0
- package/src/pagination.ts +2 -0
- package/src/resource.ts +2 -0
- package/src/resources/beta/beta.ts +31 -0
- package/src/resources/beta/index.ts +12 -0
- package/src/resources/beta/subscriptions/coupons.ts +221 -0
- package/src/resources/beta/subscriptions/customers.ts +168 -0
- package/src/resources/beta/subscriptions/entitlements.ts +113 -0
- package/src/resources/beta/subscriptions/index.ts +48 -0
- package/src/resources/beta/subscriptions/plans/entitlements.ts +88 -0
- package/src/resources/beta/subscriptions/plans/index.ts +18 -0
- package/src/resources/beta/subscriptions/plans/plans.ts +159 -0
- package/src/resources/beta/subscriptions/plans.ts +3 -0
- package/src/resources/beta/subscriptions/subscriptions.ts +245 -0
- package/src/resources/beta/subscriptions.ts +3 -0
- package/src/resources/beta.ts +3 -0
- package/src/resources/index.ts +3 -0
- package/src/resources.ts +1 -0
- package/src/tsconfig.json +11 -0
- package/src/uploads.ts +2 -0
- package/src/version.ts +1 -0
- package/uploads.d.mts +2 -0
- package/uploads.d.mts.map +1 -0
- package/uploads.d.ts +2 -0
- package/uploads.d.ts.map +1 -0
- package/uploads.js +6 -0
- package/uploads.js.map +1 -0
- package/uploads.mjs +2 -0
- package/uploads.mjs.map +1 -0
- package/version.d.mts +2 -0
- package/version.d.mts.map +1 -0
- package/version.d.ts +2 -0
- package/version.d.ts.map +1 -0
- package/version.js +5 -0
- package/version.js.map +1 -0
- package/version.mjs +2 -0
- package/version.mjs.map +1 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { HerculesError } from '../../core/error';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Percent-encode everything that isn't safe to have in a path without encoding safe chars.
|
|
5
|
+
*
|
|
6
|
+
* Taken from https://datatracker.ietf.org/doc/html/rfc3986#section-3.3:
|
|
7
|
+
* > unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
|
|
8
|
+
* > sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
|
|
9
|
+
* > pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
|
|
10
|
+
*/
|
|
11
|
+
export function encodeURIPath(str: string) {
|
|
12
|
+
return str.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g, encodeURIComponent);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const EMPTY = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.create(null));
|
|
16
|
+
|
|
17
|
+
export const createPathTagFunction = (pathEncoder = encodeURIPath) =>
|
|
18
|
+
function path(statics: readonly string[], ...params: readonly unknown[]): string {
|
|
19
|
+
// If there are no params, no processing is needed.
|
|
20
|
+
if (statics.length === 1) return statics[0]!;
|
|
21
|
+
|
|
22
|
+
let postPath = false;
|
|
23
|
+
const invalidSegments = [];
|
|
24
|
+
const path = statics.reduce((previousValue, currentValue, index) => {
|
|
25
|
+
if (/[?#]/.test(currentValue)) {
|
|
26
|
+
postPath = true;
|
|
27
|
+
}
|
|
28
|
+
const value = params[index];
|
|
29
|
+
let encoded = (postPath ? encodeURIComponent : pathEncoder)('' + value);
|
|
30
|
+
if (
|
|
31
|
+
index !== params.length &&
|
|
32
|
+
(value == null ||
|
|
33
|
+
(typeof value === 'object' &&
|
|
34
|
+
// handle values from other realms
|
|
35
|
+
value.toString ===
|
|
36
|
+
Object.getPrototypeOf(Object.getPrototypeOf((value as any).hasOwnProperty ?? EMPTY) ?? EMPTY)
|
|
37
|
+
?.toString))
|
|
38
|
+
) {
|
|
39
|
+
encoded = value + '';
|
|
40
|
+
invalidSegments.push({
|
|
41
|
+
start: previousValue.length + currentValue.length,
|
|
42
|
+
length: encoded.length,
|
|
43
|
+
error: `Value of type ${Object.prototype.toString
|
|
44
|
+
.call(value)
|
|
45
|
+
.slice(8, -1)} is not a valid path parameter`,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return previousValue + currentValue + (index === params.length ? '' : encoded);
|
|
49
|
+
}, '');
|
|
50
|
+
|
|
51
|
+
const pathOnly = path.split(/[?#]/, 1)[0]!;
|
|
52
|
+
const invalidSegmentPattern = /(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi;
|
|
53
|
+
let match;
|
|
54
|
+
|
|
55
|
+
// Find all invalid segments
|
|
56
|
+
while ((match = invalidSegmentPattern.exec(pathOnly)) !== null) {
|
|
57
|
+
invalidSegments.push({
|
|
58
|
+
start: match.index,
|
|
59
|
+
length: match[0].length,
|
|
60
|
+
error: `Value "${match[0]}" can\'t be safely passed as a path parameter`,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
invalidSegments.sort((a, b) => a.start - b.start);
|
|
65
|
+
|
|
66
|
+
if (invalidSegments.length > 0) {
|
|
67
|
+
let lastEnd = 0;
|
|
68
|
+
const underline = invalidSegments.reduce((acc, segment) => {
|
|
69
|
+
const spaces = ' '.repeat(segment.start - lastEnd);
|
|
70
|
+
const arrows = '^'.repeat(segment.length);
|
|
71
|
+
lastEnd = segment.start + segment.length;
|
|
72
|
+
return acc + spaces + arrows;
|
|
73
|
+
}, '');
|
|
74
|
+
|
|
75
|
+
throw new HerculesError(
|
|
76
|
+
`Path parameters result in path with invalid segments:\n${invalidSegments
|
|
77
|
+
.map((e) => e.error)
|
|
78
|
+
.join('\n')}\n${path}\n${underline}`,
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return path;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* URI-encodes path params and ensures no unsafe /./ or /../ path segments are introduced.
|
|
87
|
+
*/
|
|
88
|
+
export const path = /* @__PURE__ */ createPathTagFunction(encodeURIPath);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* https://stackoverflow.com/a/2117523
|
|
5
|
+
*/
|
|
6
|
+
export let uuid4 = function () {
|
|
7
|
+
const { crypto } = globalThis as any;
|
|
8
|
+
if (crypto?.randomUUID) {
|
|
9
|
+
uuid4 = crypto.randomUUID.bind(crypto);
|
|
10
|
+
return crypto.randomUUID();
|
|
11
|
+
}
|
|
12
|
+
const u8 = new Uint8Array(1);
|
|
13
|
+
const randomByte = crypto ? () => crypto.getRandomValues(u8)[0]! : () => (Math.random() * 0xff) & 0xff;
|
|
14
|
+
return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) =>
|
|
15
|
+
(+c ^ (randomByte() & (15 >> (+c / 4)))).toString(16),
|
|
16
|
+
);
|
|
17
|
+
};
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { HerculesError } from '../../core/error';
|
|
4
|
+
|
|
5
|
+
// https://url.spec.whatwg.org/#url-scheme-string
|
|
6
|
+
const startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;
|
|
7
|
+
|
|
8
|
+
export const isAbsoluteURL = (url: string): boolean => {
|
|
9
|
+
return startsWithSchemeRegexp.test(url);
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export let isArray = (val: unknown): val is unknown[] => ((isArray = Array.isArray), isArray(val));
|
|
13
|
+
export let isReadonlyArray = isArray as (val: unknown) => val is readonly unknown[];
|
|
14
|
+
|
|
15
|
+
/** Returns an object if the given value isn't an object, otherwise returns as-is */
|
|
16
|
+
export function maybeObj(x: unknown): object {
|
|
17
|
+
if (typeof x !== 'object') {
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return x ?? {};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// https://stackoverflow.com/a/34491287
|
|
25
|
+
export function isEmptyObj(obj: Object | null | undefined): boolean {
|
|
26
|
+
if (!obj) return true;
|
|
27
|
+
for (const _k in obj) return false;
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// https://eslint.org/docs/latest/rules/no-prototype-builtins
|
|
32
|
+
export function hasOwn<T extends object = object>(obj: T, key: PropertyKey): key is keyof T {
|
|
33
|
+
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export function isObj(obj: unknown): obj is Record<string, unknown> {
|
|
37
|
+
return obj != null && typeof obj === 'object' && !Array.isArray(obj);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export const ensurePresent = <T>(value: T | null | undefined): T => {
|
|
41
|
+
if (value == null) {
|
|
42
|
+
throw new HerculesError(`Expected a value to be given but received ${value} instead.`);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return value;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export const validatePositiveInteger = (name: string, n: unknown): number => {
|
|
49
|
+
if (typeof n !== 'number' || !Number.isInteger(n)) {
|
|
50
|
+
throw new HerculesError(`${name} must be an integer`);
|
|
51
|
+
}
|
|
52
|
+
if (n < 0) {
|
|
53
|
+
throw new HerculesError(`${name} must be a positive integer`);
|
|
54
|
+
}
|
|
55
|
+
return n;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export const coerceInteger = (value: unknown): number => {
|
|
59
|
+
if (typeof value === 'number') return Math.round(value);
|
|
60
|
+
if (typeof value === 'string') return parseInt(value, 10);
|
|
61
|
+
|
|
62
|
+
throw new HerculesError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export const coerceFloat = (value: unknown): number => {
|
|
66
|
+
if (typeof value === 'number') return value;
|
|
67
|
+
if (typeof value === 'string') return parseFloat(value);
|
|
68
|
+
|
|
69
|
+
throw new HerculesError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export const coerceBoolean = (value: unknown): boolean => {
|
|
73
|
+
if (typeof value === 'boolean') return value;
|
|
74
|
+
if (typeof value === 'string') return value === 'true';
|
|
75
|
+
return Boolean(value);
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export const maybeCoerceInteger = (value: unknown): number | undefined => {
|
|
79
|
+
if (value == null) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
return coerceInteger(value);
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export const maybeCoerceFloat = (value: unknown): number | undefined => {
|
|
86
|
+
if (value == null) {
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
return coerceFloat(value);
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export const maybeCoerceBoolean = (value: unknown): boolean | undefined => {
|
|
93
|
+
if (value == null) {
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
return coerceBoolean(value);
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export const safeJSON = (text: string) => {
|
|
100
|
+
try {
|
|
101
|
+
return JSON.parse(text);
|
|
102
|
+
} catch (err) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
export * from './utils/values';
|
|
4
|
+
export * from './utils/base64';
|
|
5
|
+
export * from './utils/env';
|
|
6
|
+
export * from './utils/log';
|
|
7
|
+
export * from './utils/uuid';
|
|
8
|
+
export * from './utils/sleep';
|
package/src/lib/.keep
ADDED
package/src/resource.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { APIResource } from '../../core/resource';
|
|
4
|
+
import * as SubscriptionsAPI from './subscriptions/subscriptions';
|
|
5
|
+
import {
|
|
6
|
+
SubscriptionCancelParams,
|
|
7
|
+
SubscriptionCancelResponse,
|
|
8
|
+
SubscriptionCheckParams,
|
|
9
|
+
SubscriptionCheckResponse,
|
|
10
|
+
SubscriptionCheckoutParams,
|
|
11
|
+
SubscriptionCheckoutResponse,
|
|
12
|
+
Subscriptions,
|
|
13
|
+
} from './subscriptions/subscriptions';
|
|
14
|
+
|
|
15
|
+
export class Beta extends APIResource {
|
|
16
|
+
subscriptions: SubscriptionsAPI.Subscriptions = new SubscriptionsAPI.Subscriptions(this._client);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
Beta.Subscriptions = Subscriptions;
|
|
20
|
+
|
|
21
|
+
export declare namespace Beta {
|
|
22
|
+
export {
|
|
23
|
+
Subscriptions as Subscriptions,
|
|
24
|
+
type SubscriptionCancelResponse as SubscriptionCancelResponse,
|
|
25
|
+
type SubscriptionCheckResponse as SubscriptionCheckResponse,
|
|
26
|
+
type SubscriptionCheckoutResponse as SubscriptionCheckoutResponse,
|
|
27
|
+
type SubscriptionCancelParams as SubscriptionCancelParams,
|
|
28
|
+
type SubscriptionCheckParams as SubscriptionCheckParams,
|
|
29
|
+
type SubscriptionCheckoutParams as SubscriptionCheckoutParams,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
export { Beta } from './beta';
|
|
4
|
+
export {
|
|
5
|
+
Subscriptions,
|
|
6
|
+
type SubscriptionCancelResponse,
|
|
7
|
+
type SubscriptionCheckResponse,
|
|
8
|
+
type SubscriptionCheckoutResponse,
|
|
9
|
+
type SubscriptionCancelParams,
|
|
10
|
+
type SubscriptionCheckParams,
|
|
11
|
+
type SubscriptionCheckoutParams,
|
|
12
|
+
} from './subscriptions/index';
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { APIResource } from '../../../core/resource';
|
|
4
|
+
import { APIPromise } from '../../../core/api-promise';
|
|
5
|
+
import { CursorIDPage, type CursorIDPageParams, PagePromise } from '../../../core/pagination';
|
|
6
|
+
import { buildHeaders } from '../../../internal/headers';
|
|
7
|
+
import { RequestOptions } from '../../../internal/request-options';
|
|
8
|
+
import { path } from '../../../internal/utils/path';
|
|
9
|
+
|
|
10
|
+
export class Coupons extends APIResource {
|
|
11
|
+
/**
|
|
12
|
+
* Create Coupon
|
|
13
|
+
*/
|
|
14
|
+
create(body: CouponCreateParams, options?: RequestOptions): APIPromise<Coupon> {
|
|
15
|
+
return this._client.post('/v1/subscriptions/coupons', { body, ...options });
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Update Coupon
|
|
20
|
+
*/
|
|
21
|
+
update(
|
|
22
|
+
couponID: string,
|
|
23
|
+
body: CouponUpdateParams | null | undefined = {},
|
|
24
|
+
options?: RequestOptions,
|
|
25
|
+
): APIPromise<Coupon> {
|
|
26
|
+
return this._client.patch(path`/v1/subscriptions/coupons/${couponID}`, { body, ...options });
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* List Coupons
|
|
31
|
+
*/
|
|
32
|
+
list(
|
|
33
|
+
query: CouponListParams | null | undefined = {},
|
|
34
|
+
options?: RequestOptions,
|
|
35
|
+
): PagePromise<CouponsCursorIDPage, Coupon> {
|
|
36
|
+
return this._client.getAPIList('/v1/subscriptions/coupons', CursorIDPage<Coupon>, { query, ...options });
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Delete Coupon
|
|
41
|
+
*/
|
|
42
|
+
delete(couponID: string, options?: RequestOptions): APIPromise<void> {
|
|
43
|
+
return this._client.delete(path`/v1/subscriptions/coupons/${couponID}`, {
|
|
44
|
+
...options,
|
|
45
|
+
headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Get Coupon
|
|
51
|
+
*/
|
|
52
|
+
get(couponID: string, options?: RequestOptions): APIPromise<Coupon> {
|
|
53
|
+
return this._client.get(path`/v1/subscriptions/coupons/${couponID}`, options);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Validate Promo Code
|
|
58
|
+
*/
|
|
59
|
+
validate(body: CouponValidateParams, options?: RequestOptions): APIPromise<CouponValidateResponse> {
|
|
60
|
+
return this._client.post('/v1/subscriptions/coupons/validate', { body, ...options });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export type CouponsCursorIDPage = CursorIDPage<Coupon>;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* A coupon/promo code for discounts
|
|
68
|
+
*/
|
|
69
|
+
export interface Coupon {
|
|
70
|
+
/**
|
|
71
|
+
* An id for a data item
|
|
72
|
+
*/
|
|
73
|
+
id: string;
|
|
74
|
+
|
|
75
|
+
active: boolean;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* The promo code
|
|
79
|
+
*/
|
|
80
|
+
code: string;
|
|
81
|
+
|
|
82
|
+
created: string;
|
|
83
|
+
|
|
84
|
+
duration: 'once' | 'repeating' | 'forever';
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Number of times this coupon has been redeemed
|
|
88
|
+
*/
|
|
89
|
+
times_redeemed: number;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Fixed amount discount in cents
|
|
93
|
+
*/
|
|
94
|
+
amount_off?: number | null;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Currency for amount_off
|
|
98
|
+
*/
|
|
99
|
+
currency?: string | null;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Number of months for repeating duration
|
|
103
|
+
*/
|
|
104
|
+
duration_in_months?: number | null;
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Maximum number of times this coupon can be redeemed
|
|
108
|
+
*/
|
|
109
|
+
max_redemptions?: number | null;
|
|
110
|
+
|
|
111
|
+
name?: string | null;
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Percentage discount (1-100)
|
|
115
|
+
*/
|
|
116
|
+
percent_off?: number | null;
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Date after which the coupon can no longer be redeemed
|
|
120
|
+
*/
|
|
121
|
+
redeem_by?: string | null;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Validate promo code response
|
|
126
|
+
*/
|
|
127
|
+
export interface CouponValidateResponse {
|
|
128
|
+
/**
|
|
129
|
+
* Whether the promo code is valid
|
|
130
|
+
*/
|
|
131
|
+
valid: boolean;
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* A coupon/promo code for discounts
|
|
135
|
+
*/
|
|
136
|
+
coupon?: Coupon | null;
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Error message if invalid
|
|
140
|
+
*/
|
|
141
|
+
error?: string | null;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export interface CouponCreateParams {
|
|
145
|
+
/**
|
|
146
|
+
* The promo code customers will enter
|
|
147
|
+
*/
|
|
148
|
+
code: string;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Fixed amount discount in cents
|
|
152
|
+
*/
|
|
153
|
+
amount_off?: number;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Currency for amount_off
|
|
157
|
+
*/
|
|
158
|
+
currency?: string;
|
|
159
|
+
|
|
160
|
+
duration?: 'once' | 'repeating' | 'forever';
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Number of months for repeating duration
|
|
164
|
+
*/
|
|
165
|
+
duration_in_months?: number;
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Maximum number of redemptions
|
|
169
|
+
*/
|
|
170
|
+
max_redemptions?: number;
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Display name for the coupon
|
|
174
|
+
*/
|
|
175
|
+
name?: string;
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Percentage discount (1-100)
|
|
179
|
+
*/
|
|
180
|
+
percent_off?: number;
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Expiration date for the coupon
|
|
184
|
+
*/
|
|
185
|
+
redeem_by?: string;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
export interface CouponUpdateParams {
|
|
189
|
+
/**
|
|
190
|
+
* Whether the coupon is active
|
|
191
|
+
*/
|
|
192
|
+
active?: boolean;
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Display name for the coupon
|
|
196
|
+
*/
|
|
197
|
+
name?: string;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
export interface CouponListParams extends CursorIDPageParams {
|
|
201
|
+
active?: boolean;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
export interface CouponValidateParams {
|
|
205
|
+
/**
|
|
206
|
+
* The promo code to validate
|
|
207
|
+
*/
|
|
208
|
+
code: string;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
export declare namespace Coupons {
|
|
212
|
+
export {
|
|
213
|
+
type Coupon as Coupon,
|
|
214
|
+
type CouponValidateResponse as CouponValidateResponse,
|
|
215
|
+
type CouponsCursorIDPage as CouponsCursorIDPage,
|
|
216
|
+
type CouponCreateParams as CouponCreateParams,
|
|
217
|
+
type CouponUpdateParams as CouponUpdateParams,
|
|
218
|
+
type CouponListParams as CouponListParams,
|
|
219
|
+
type CouponValidateParams as CouponValidateParams,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { APIResource } from '../../../core/resource';
|
|
4
|
+
import { APIPromise } from '../../../core/api-promise';
|
|
5
|
+
import { CursorIDPage, type CursorIDPageParams, PagePromise } from '../../../core/pagination';
|
|
6
|
+
import { buildHeaders } from '../../../internal/headers';
|
|
7
|
+
import { RequestOptions } from '../../../internal/request-options';
|
|
8
|
+
import { path } from '../../../internal/utils/path';
|
|
9
|
+
|
|
10
|
+
export class Customers extends APIResource {
|
|
11
|
+
/**
|
|
12
|
+
* Create Customer
|
|
13
|
+
*/
|
|
14
|
+
create(body: CustomerCreateParams | null | undefined = {}, options?: RequestOptions): APIPromise<Customer> {
|
|
15
|
+
return this._client.post('/v1/subscriptions/customers', { body, ...options });
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Update Customer
|
|
20
|
+
*/
|
|
21
|
+
update(
|
|
22
|
+
customerID: string,
|
|
23
|
+
body: CustomerUpdateParams | null | undefined = {},
|
|
24
|
+
options?: RequestOptions,
|
|
25
|
+
): APIPromise<Customer> {
|
|
26
|
+
return this._client.patch(path`/v1/subscriptions/customers/${customerID}`, { body, ...options });
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* List Customers
|
|
31
|
+
*/
|
|
32
|
+
list(
|
|
33
|
+
query: CustomerListParams | null | undefined = {},
|
|
34
|
+
options?: RequestOptions,
|
|
35
|
+
): PagePromise<CustomersCursorIDPage, Customer> {
|
|
36
|
+
return this._client.getAPIList('/v1/subscriptions/customers', CursorIDPage<Customer>, {
|
|
37
|
+
query,
|
|
38
|
+
...options,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Delete Customer
|
|
44
|
+
*/
|
|
45
|
+
delete(customerID: string, options?: RequestOptions): APIPromise<void> {
|
|
46
|
+
return this._client.delete(path`/v1/subscriptions/customers/${customerID}`, {
|
|
47
|
+
...options,
|
|
48
|
+
headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Open Customer Portal
|
|
54
|
+
*/
|
|
55
|
+
billingPortal(
|
|
56
|
+
customerID: string,
|
|
57
|
+
body: CustomerBillingPortalParams | null | undefined = {},
|
|
58
|
+
options?: RequestOptions,
|
|
59
|
+
): APIPromise<CustomerBillingPortalResponse> {
|
|
60
|
+
return this._client.post(path`/v1/subscriptions/customers/${customerID}/billing_portal`, {
|
|
61
|
+
body,
|
|
62
|
+
...options,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Get Customer
|
|
68
|
+
*/
|
|
69
|
+
get(customerID: string, options?: RequestOptions): APIPromise<Customer> {
|
|
70
|
+
return this._client.get(path`/v1/subscriptions/customers/${customerID}`, options);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export type CustomersCursorIDPage = CursorIDPage<Customer>;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* A subscription customer
|
|
78
|
+
*/
|
|
79
|
+
export interface Customer {
|
|
80
|
+
/**
|
|
81
|
+
* An id for a data item
|
|
82
|
+
*/
|
|
83
|
+
id: string;
|
|
84
|
+
|
|
85
|
+
created: string;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Customer billing address
|
|
89
|
+
*/
|
|
90
|
+
address?: CustomerAddress | null;
|
|
91
|
+
|
|
92
|
+
email?: string | null;
|
|
93
|
+
|
|
94
|
+
name?: string | null;
|
|
95
|
+
|
|
96
|
+
phone?: string | null;
|
|
97
|
+
|
|
98
|
+
stripe_id?: string | null;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Customer billing address
|
|
103
|
+
*/
|
|
104
|
+
export interface CustomerAddress {
|
|
105
|
+
city?: string | null;
|
|
106
|
+
|
|
107
|
+
country?: string | null;
|
|
108
|
+
|
|
109
|
+
line1?: string | null;
|
|
110
|
+
|
|
111
|
+
line2?: string | null;
|
|
112
|
+
|
|
113
|
+
postal_code?: string | null;
|
|
114
|
+
|
|
115
|
+
state?: string | null;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Billing portal session URL
|
|
120
|
+
*/
|
|
121
|
+
export interface CustomerBillingPortalResponse {
|
|
122
|
+
url: string;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export interface CustomerCreateParams {
|
|
126
|
+
/**
|
|
127
|
+
* Customer billing address
|
|
128
|
+
*/
|
|
129
|
+
address?: CustomerAddress;
|
|
130
|
+
|
|
131
|
+
email?: string;
|
|
132
|
+
|
|
133
|
+
name?: string;
|
|
134
|
+
|
|
135
|
+
phone?: string;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export interface CustomerUpdateParams {
|
|
139
|
+
/**
|
|
140
|
+
* Customer billing address
|
|
141
|
+
*/
|
|
142
|
+
address?: CustomerAddress;
|
|
143
|
+
|
|
144
|
+
email?: string;
|
|
145
|
+
|
|
146
|
+
name?: string;
|
|
147
|
+
|
|
148
|
+
phone?: string;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export interface CustomerListParams extends CursorIDPageParams {}
|
|
152
|
+
|
|
153
|
+
export interface CustomerBillingPortalParams {
|
|
154
|
+
return_url?: string;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
export declare namespace Customers {
|
|
158
|
+
export {
|
|
159
|
+
type Customer as Customer,
|
|
160
|
+
type CustomerAddress as CustomerAddress,
|
|
161
|
+
type CustomerBillingPortalResponse as CustomerBillingPortalResponse,
|
|
162
|
+
type CustomersCursorIDPage as CustomersCursorIDPage,
|
|
163
|
+
type CustomerCreateParams as CustomerCreateParams,
|
|
164
|
+
type CustomerUpdateParams as CustomerUpdateParams,
|
|
165
|
+
type CustomerListParams as CustomerListParams,
|
|
166
|
+
type CustomerBillingPortalParams as CustomerBillingPortalParams,
|
|
167
|
+
};
|
|
168
|
+
}
|