@adobe/aio-commerce-lib-events 0.1.0 → 0.2.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 +11 -0
- package/README.md +19 -2
- package/dist/cjs/commerce/index.cjs +1 -1
- package/dist/cjs/commerce/index.d.cts +13 -15
- package/dist/cjs/io-events/index.cjs +1 -1
- package/dist/cjs/io-events/index.d.cts +8 -9
- package/dist/cjs/ky-DBUULE7X.cjs +14 -0
- package/dist/es/commerce/index.d.ts +13 -15
- package/dist/es/commerce/index.js +1 -1
- package/dist/es/io-events/index.d.ts +8 -9
- package/dist/es/io-events/index.js +1 -1
- package/dist/es/ky-CkAM5Dyz.js +14 -0
- package/package.json +20 -9
- package/dist/cjs/ky-Rubdb7BL.cjs +0 -14
- package/dist/es/ky-6HcrUVIg.js +0 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @adobe/aio-commerce-lib-events
|
|
2
2
|
|
|
3
|
+
## 0.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#85](https://github.com/adobe/aio-commerce-sdk/pull/85) [`cd6e4d7`](https://github.com/adobe/aio-commerce-sdk/commit/cd6e4d786c82e964808b402c84e124e1db621e9e) Thanks [@iivvaannxx](https://github.com/iivvaannxx)! - All API functions are made explicitly asynchronous for consistent error handling via `Promise`. Fix type bugs with the factory functions used to instantiate new API clients.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [[`e0db24c`](https://github.com/adobe/aio-commerce-sdk/commit/e0db24c04aed9a6df72e80d5395aa41374570b6a)]:
|
|
12
|
+
- @adobe/aio-commerce-lib-auth@0.4.0
|
|
13
|
+
|
|
3
14
|
## 0.1.0
|
|
4
15
|
|
|
5
16
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
-
# `@adobe/aio-commerce-lib-
|
|
1
|
+
# `@adobe/aio-commerce-lib-core`
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> [!WARNING]
|
|
4
|
+
> This package is a work in progress and is not yet ready for use yet. You may be able to install it, but if you do, expect breaking changes.
|
|
5
|
+
|
|
6
|
+
This package provides an interface to interact with the Adobe I/O and Commerce Eventing APIs.
|
|
7
|
+
|
|
8
|
+
## Installation
|
|
9
|
+
|
|
10
|
+
```shell
|
|
11
|
+
pnpm install @adobe/aio-commerce-lib-events
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
See the [Usage Guide](./docs/usage.md) for more information.
|
|
17
|
+
|
|
18
|
+
## Contributing
|
|
19
|
+
|
|
20
|
+
This package is part of the Adobe Commerce SDK monorepo. See the [Contributing Guide](https://github.com/adobe/aio-commerce-sdk/blob/main/.github/CONTRIBUTING.md) and [Development Guide](https://github.com/adobe/aio-commerce-sdk/blob/main/.github/DEVELOPMENT.md) for development setup and guidelines.
|
|
@@ -11,4 +11,4 @@
|
|
|
11
11
|
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
12
12
|
* governing permissions and limitations under the License.
|
|
13
13
|
*/
|
|
14
|
-
const require_ky=require(`../ky-
|
|
14
|
+
const require_ky=require(`../ky-DBUULE7X.cjs`);let __adobe_aio_commerce_lib_core_error=require(`@adobe/aio-commerce-lib-core/error`);__adobe_aio_commerce_lib_core_error=require_ky.g(__adobe_aio_commerce_lib_core_error);let valibot=require(`valibot`);valibot=require_ky.g(valibot);function workspaceConfigurationSchema(propertyName){return valibot.union([valibot.pipe(require_ky.f(propertyName),valibot.empty()),valibot.pipe(require_ky.f(propertyName),valibot.parseJson(void 0,`Expected valid JSON string for property '${propertyName}'`),valibot.record(valibot.string(),valibot.unknown()),valibot.stringifyJson()),valibot.pipe(valibot.record(valibot.string(),valibot.unknown()),valibot.stringifyJson(void 0,`Expected valid JSON data for property '${propertyName}'`))])}const EventProviderGetByIdParamsSchema=valibot.object({providerId:require_ky.f(`providerId`)}),EventProviderCreateParamsSchema=valibot.object({providerId:require_ky.f(`providerId`),instanceId:require_ky.f(`instanceId`),label:valibot.optional(require_ky.f(`label`)),description:valibot.optional(require_ky.f(`description`)),associatedWorkspaceConfiguration:valibot.optional(workspaceConfigurationSchema(`associatedWorkspaceConfiguration`))});var endpoints_exports={};require_ky.h(endpoints_exports,{createEventProvider:()=>createEventProvider,getAllEventProviders:()=>getAllEventProviders,getEventProviderById:()=>getEventProviderById});async function getAllEventProviders(httpClient,fetchOptions){return httpClient.extend({hooks:{afterResponse:[require_ky.m()]}}).get(`eventing/eventProvider`,fetchOptions).json()}async function getEventProviderById(httpClient,params,fetchOptions){let validatedParams=require_ky.p(EventProviderGetByIdParamsSchema,params);return httpClient.extend({hooks:{afterResponse:[require_ky.m()]}}).get(`eventing/eventProvider/${validatedParams.providerId}`,fetchOptions).json()}async function createEventProvider(httpClient,params,fetchOptions){let validatedParams=require_ky.p(EventProviderCreateParamsSchema,params);return httpClient.extend({hooks:{afterResponse:[require_ky.m()]}}).post(`eventing/eventProvider`,{...fetchOptions,json:{eventProvider:{provider_id:validatedParams.providerId,instance_id:validatedParams.instanceId,label:validatedParams.label,description:validatedParams.description,workspace_configuration:validatedParams.associatedWorkspaceConfiguration}}}).json()}function fieldsSchema(propertyName){return valibot.array(valibot.object({name:require_ky.f(`${propertyName}[i].name`)}),`Expected an array of objects with a 'name' property for the property "${propertyName}"`)}const EventSubscriptionCreateParamsSchema=valibot.object({name:require_ky.f(`name`),providerId:valibot.optional(require_ky.f(`providerId`)),parent:valibot.optional(require_ky.f(`parent`)),fields:fieldsSchema(`fields`),destination:valibot.optional(require_ky.f(`destination`)),hipaaAuditRequired:valibot.optional(require_ky.d(`hipaaAuditRequired`)),prioritary:valibot.optional(require_ky.d(`prioritary`)),force:valibot.optional(require_ky.d(`force`))});var endpoints_exports$1={};require_ky.h(endpoints_exports$1,{createEventSubscription:()=>createEventSubscription,getAllEventSubscriptions:()=>getAllEventSubscriptions});async function getAllEventSubscriptions(httpClient,fetchOptions){return httpClient.extend({hooks:{afterResponse:[require_ky.m()]}}).get(`eventing/getEventSubscriptions`,fetchOptions).json()}async function createEventSubscription(httpClient,params,fetchOptions){let{force,...event}=require_ky.p(EventSubscriptionCreateParamsSchema,params);return httpClient.post(`eventing/eventSubscribe`,{...fetchOptions,json:{force,event:{name:event.name,parent:event.parent,fields:event.fields,destination:event.destination,hipaa_audit_required:event.hipaaAuditRequired,priority:event.prioritary,provider_id:event.providerId}}}).json().then(_res=>{})}const UpdateEventingConfigurationParamsSchema=valibot.partial(valibot.object({enabled:require_ky.d(`enabled`),providerId:require_ky.l(`providerId`),instanceId:require_ky.l(`instanceId`),merchantId:require_ky.u(`merchantId`),environmentId:require_ky.u(`environmentId`),workspaceConfiguration:workspaceConfigurationSchema(`workspaceConfiguration`)}));async function updateEventingConfiguration(httpClient,params,fetchOptions){let validatedParams=require_ky.p(UpdateEventingConfigurationParamsSchema,params);return httpClient.put(`eventing/updateConfiguration`,{...fetchOptions,json:{config:validatedParams}}).json()}const COMMERCE_SAAS_IMS_REQUIRED_SCOPES=[`openid`,`additional_info.projectedProductContext`,`commerce.accs`];function getCommerceUrl(config){let{baseUrl,storeViewCode,version}=config,commerceUrl=new URL(baseUrl.endsWith(`/`)?baseUrl:`${baseUrl}/`),uppercasedVersion=version?.toUpperCase();return config.flavor===`paas`?commerceUrl.pathname+=`rest/${storeViewCode}/${uppercasedVersion}`:config.flavor===`saas`&&(commerceUrl.pathname+=`${uppercasedVersion}`),commerceUrl.toString()}function buildCommerceHttpClientPaaS(params){let{auth,config,fetchOptions}=params,commerceUrl=getCommerceUrl(config),beforeRequestAuthHook=require_ky.i(auth),httpClient=require_ky.o.create({prefixUrl:commerceUrl,hooks:{beforeRequest:[beforeRequestAuthHook]}});return require_ky.t(httpClient,fetchOptions)}function buildCommerceHttpClientSaaS(params){let{auth,config,fetchOptions}=params,commerceUrl=getCommerceUrl(config),beforeRequestAuthHook=require_ky.a(auth)?require_ky.r(auth):require_ky.r(require_ky.n(auth,COMMERCE_SAAS_IMS_REQUIRED_SCOPES)),httpClient=require_ky.o.create({prefixUrl:commerceUrl,hooks:{beforeRequest:[beforeRequestAuthHook,request=>{request.headers.set(`Store`,config.storeViewCode)}]}});return require_ky.t(httpClient,fetchOptions)}function isPaaSParams(params){return params.config.flavor===`paas`}function isSaaSParams(params){return params.config.flavor===`saas`}function buildCommerceHttpClient(params){let flavor=params.config.flavor;if(isPaaSParams(params))return buildCommerceHttpClientPaaS(params);if(isSaaSParams(params))return buildCommerceHttpClientSaaS(params);throw Error(`Invalid Commerce configuration. Unknown flavor: ${flavor}`)}const DEFAULT_STORE_VIEW_CODE=`all`,DEFAULT_API_VERSION=`V1`;var AdobeCommerceHttpClient=class extends require_ky.s{constructor(params){let config={...params.config,storeViewCode:params.config.storeViewCode??`all`,version:params.config.version??`V1`},requiredParams={...params,config},httpClient=buildCommerceHttpClient(requiredParams);super(config,httpClient)}};function createCommerceEventsApiClient(params){return require_ky.c.create(new AdobeCommerceHttpClient(params),{...endpoints_exports,...endpoints_exports$1,updateEventingConfiguration})}function createCustomCommerceEventsApiClient(params,functions){return require_ky.c.create(new AdobeCommerceHttpClient(params),functions)}exports.createCommerceEventsApiClient=createCommerceEventsApiClient,exports.createCustomCommerceEventsApiClient=createCustomCommerceEventsApiClient,exports.createEventProvider=createEventProvider,exports.createEventSubscription=createEventSubscription,exports.getAllEventProviders=getAllEventProviders,exports.getAllEventSubscriptions=getAllEventSubscriptions,exports.getEventProviderById=getEventProviderById,exports.updateEventingConfiguration=updateEventingConfiguration;
|
|
@@ -12,10 +12,9 @@
|
|
|
12
12
|
* governing permissions and limitations under the License.
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
-
import * as ky0 from "ky";
|
|
16
|
-
import { Options } from "ky";
|
|
17
15
|
import * as v from "valibot";
|
|
18
16
|
import { CamelCasedPropertiesDeep } from "type-fest";
|
|
17
|
+
import * as ky0 from "ky";
|
|
19
18
|
|
|
20
19
|
//#region source/commerce/api/event-providers/schema.d.ts
|
|
21
20
|
declare const EventProviderGetByIdParamsSchema: v.ObjectSchema<{
|
|
@@ -64,12 +63,11 @@ type CommerceEventProviderManyResponse = CommerceEventProviderOneResponse[];
|
|
|
64
63
|
* @see https://developer.adobe.com/commerce/extensibility/events/api/#get-list-of-all-event-providers
|
|
65
64
|
*
|
|
66
65
|
* @param httpClient - The {@link AdobeCommerceHttpClient} to use to make the request.
|
|
67
|
-
* @param params - The parameters to list the event providers with.
|
|
68
66
|
* @param fetchOptions - The {@link Options} to use to make the request.
|
|
69
67
|
*
|
|
70
68
|
* @throws An {@link HTTPError} If the status code is not 2XX.
|
|
71
69
|
*/
|
|
72
|
-
declare function getAllEventProviders(httpClient: AdobeCommerceHttpClient$3, fetchOptions?: Options): Promise<CommerceEventProviderManyResponse>;
|
|
70
|
+
declare function getAllEventProviders(httpClient: AdobeCommerceHttpClient$3, fetchOptions?: Options$2): Promise<CommerceEventProviderManyResponse>;
|
|
73
71
|
/**
|
|
74
72
|
* Gets the info of the event provider with the given ID of the Commerce instance bound to the given {@link AdobeCommerceHttpClient}.
|
|
75
73
|
* @see https://developer.adobe.com/commerce/extensibility/events/api/#get-event-provider-by-id
|
|
@@ -81,7 +79,7 @@ declare function getAllEventProviders(httpClient: AdobeCommerceHttpClient$3, fet
|
|
|
81
79
|
* @throws A {@link CommerceSdkValidationError} If the parameters are in the wrong format.
|
|
82
80
|
* @throws An {@link HTTPError} If the status code is not 2XX.
|
|
83
81
|
*/
|
|
84
|
-
declare function getEventProviderById(httpClient: AdobeCommerceHttpClient$3, params: EventProviderGetByIdParams, fetchOptions?: Options): Promise<{
|
|
82
|
+
declare function getEventProviderById(httpClient: AdobeCommerceHttpClient$3, params: EventProviderGetByIdParams, fetchOptions?: Options$2): Promise<{
|
|
85
83
|
id: string;
|
|
86
84
|
providerId: string;
|
|
87
85
|
instanceId?: string | undefined;
|
|
@@ -100,7 +98,7 @@ declare function getEventProviderById(httpClient: AdobeCommerceHttpClient$3, par
|
|
|
100
98
|
* @throws A {@link CommerceSdkValidationError} If the parameters are in the wrong format.
|
|
101
99
|
* @throws An {@link HTTPError} If the status code is not 2XX.
|
|
102
100
|
*/
|
|
103
|
-
declare function createEventProvider(httpClient: AdobeCommerceHttpClient$3, params: EventProviderCreateParams, fetchOptions?: Options): Promise<{
|
|
101
|
+
declare function createEventProvider(httpClient: AdobeCommerceHttpClient$3, params: EventProviderCreateParams, fetchOptions?: Options$2): Promise<{
|
|
104
102
|
id: string;
|
|
105
103
|
providerId: string;
|
|
106
104
|
instanceId?: string | undefined;
|
|
@@ -164,7 +162,7 @@ type CommerceEventSubscriptionManyResponse = CommerceEventSubscriptionOneRespons
|
|
|
164
162
|
* @param httpClient - The {@link AdobeCommerceHttpClient} to use to make the request.
|
|
165
163
|
* @param fetchOptions - The {@link Options} to use to make the request.
|
|
166
164
|
*/
|
|
167
|
-
declare function getAllEventSubscriptions(httpClient: AdobeCommerceHttpClient$2, fetchOptions?: Options): Promise<CommerceEventSubscriptionManyResponse>;
|
|
165
|
+
declare function getAllEventSubscriptions(httpClient: AdobeCommerceHttpClient$2, fetchOptions?: Options$1): Promise<CommerceEventSubscriptionManyResponse>;
|
|
168
166
|
/**
|
|
169
167
|
* Creates an event subscription in the Commerce instance bound to the given {@link AdobeCommerceHttpClient}.
|
|
170
168
|
* @see https://developer.adobe.com/commerce/extensibility/events/api/#subscribe-to-events
|
|
@@ -176,7 +174,7 @@ declare function getAllEventSubscriptions(httpClient: AdobeCommerceHttpClient$2,
|
|
|
176
174
|
* @throws A {@link CommerceSdkValidationError} If the parameters are in the wrong format.
|
|
177
175
|
* @throws An {@link HTTPError} If the status code is not 2XX.
|
|
178
176
|
*/
|
|
179
|
-
declare function createEventSubscription(httpClient: AdobeCommerceHttpClient$2, params: EventSubscriptionCreateParams, fetchOptions?: Options): void
|
|
177
|
+
declare function createEventSubscription(httpClient: AdobeCommerceHttpClient$2, params: EventSubscriptionCreateParams, fetchOptions?: Options$1): Promise<void>;
|
|
180
178
|
//#endregion
|
|
181
179
|
//#region source/commerce/api/eventing-configuration/schema.d.ts
|
|
182
180
|
/** The schema of the parameters received by the `updateConfiguration` Commerce Eventing API endpoint. */
|
|
@@ -228,11 +226,11 @@ declare const UpdateEventingConfigurationParamsSchema: Omit<v.ObjectSchema<{
|
|
|
228
226
|
merchantId?: string | undefined;
|
|
229
227
|
environmentId?: string | undefined;
|
|
230
228
|
workspaceConfiguration?: string | undefined;
|
|
231
|
-
}, v.StringIssue | v.EmptyIssue<string> | v.ParseJsonIssue<string> | v.RecordIssue | v.StringifyJsonIssue<{
|
|
229
|
+
}, v.StringIssue | v.ObjectIssue | v.EmptyIssue<string> | v.ParseJsonIssue<string> | v.RecordIssue | v.StringifyJsonIssue<{
|
|
232
230
|
[x: string]: unknown;
|
|
233
231
|
}> | v.UnionIssue<v.StringIssue | v.EmptyIssue<string> | v.ParseJsonIssue<string> | v.RecordIssue | v.StringifyJsonIssue<{
|
|
234
232
|
[x: string]: unknown;
|
|
235
|
-
}>> | v.
|
|
233
|
+
}>> | v.BooleanIssue | v.RegexIssue<string>>;
|
|
236
234
|
readonly '~types'?: {
|
|
237
235
|
readonly input: {
|
|
238
236
|
enabled?: boolean | undefined;
|
|
@@ -252,11 +250,11 @@ declare const UpdateEventingConfigurationParamsSchema: Omit<v.ObjectSchema<{
|
|
|
252
250
|
environmentId?: string | undefined;
|
|
253
251
|
workspaceConfiguration?: string | undefined;
|
|
254
252
|
};
|
|
255
|
-
readonly issue: v.StringIssue | v.EmptyIssue<string> | v.ParseJsonIssue<string> | v.RecordIssue | v.StringifyJsonIssue<{
|
|
253
|
+
readonly issue: v.StringIssue | v.ObjectIssue | v.EmptyIssue<string> | v.ParseJsonIssue<string> | v.RecordIssue | v.StringifyJsonIssue<{
|
|
256
254
|
[x: string]: unknown;
|
|
257
255
|
}> | v.UnionIssue<v.StringIssue | v.EmptyIssue<string> | v.ParseJsonIssue<string> | v.RecordIssue | v.StringifyJsonIssue<{
|
|
258
256
|
[x: string]: unknown;
|
|
259
|
-
}>> | v.
|
|
257
|
+
}>> | v.BooleanIssue | v.RegexIssue<string>;
|
|
260
258
|
} | undefined;
|
|
261
259
|
};
|
|
262
260
|
/**
|
|
@@ -270,7 +268,7 @@ type UpdateEventingConfigurationParams = v.InferInput<typeof UpdateEventingConfi
|
|
|
270
268
|
* Updates the configuration of the Commerce Eventing API.
|
|
271
269
|
* @see https://developer.adobe.com/commerce/extensibility/events/api/#configure-commerce-eventing
|
|
272
270
|
*
|
|
273
|
-
* @param httpClient - The {@link
|
|
271
|
+
* @param httpClient - The {@link AdobeCommerceHttpClient} to use to make the request.
|
|
274
272
|
* @param params - The parameters to update the configuration with.
|
|
275
273
|
* @param fetchOptions - The {@link Options} to use to make the request.
|
|
276
274
|
*
|
|
@@ -287,7 +285,7 @@ declare function updateEventingConfiguration(httpClient: AdobeCommerceHttpClient
|
|
|
287
285
|
declare function createCommerceEventsApiClient(params: CommerceHttpClientParams): void 0<AdobeCommerceHttpClient, {
|
|
288
286
|
updateEventingConfiguration: typeof updateEventingConfiguration;
|
|
289
287
|
getAllEventSubscriptions(httpClient: AdobeCommerceHttpClient, fetchOptions?: ky0.Options): Promise<CommerceEventSubscriptionManyResponse>;
|
|
290
|
-
createEventSubscription(httpClient: AdobeCommerceHttpClient, params: EventSubscriptionCreateParams, fetchOptions?: ky0.Options): void
|
|
288
|
+
createEventSubscription(httpClient: AdobeCommerceHttpClient, params: EventSubscriptionCreateParams, fetchOptions?: ky0.Options): Promise<void>;
|
|
291
289
|
getAllEventProviders(httpClient: AdobeCommerceHttpClient, fetchOptions?: ky0.Options): Promise<CommerceEventProviderManyResponse>;
|
|
292
290
|
getEventProviderById(httpClient: AdobeCommerceHttpClient, params: EventProviderGetByIdParams, fetchOptions?: ky0.Options): Promise<{
|
|
293
291
|
id: string;
|
|
@@ -311,6 +309,6 @@ declare function createCommerceEventsApiClient(params: CommerceHttpClientParams)
|
|
|
311
309
|
* @param params - The parameters to build the Commerce HTTP client that will communicate with the Commerce Events API.
|
|
312
310
|
* @param functions - The API functions to include in the client.
|
|
313
311
|
*/
|
|
314
|
-
declare function createCustomCommerceEventsApiClient<TFunctions extends Record<string, ApiFunction<AdobeCommerceHttpClient,
|
|
312
|
+
declare function createCustomCommerceEventsApiClient<TFunctions extends Record<string, ApiFunction<AdobeCommerceHttpClient, any[], any>>>(params: CommerceHttpClientParams, functions: TFunctions): void 0<AdobeCommerceHttpClient, TFunctions>;
|
|
315
313
|
//#endregion
|
|
316
314
|
export { type CommerceEventProvider, type CommerceEventProviderManyResponse, type CommerceEventProviderOneResponse, type CommerceEventSubscription, type CommerceEventSubscriptionField, type CommerceEventSubscriptionManyResponse, type CommerceEventSubscriptionOneResponse, type CommerceEventSubscriptionRule, EventProviderCreateParams, EventProviderCreateParamsSchema, EventProviderGetByIdParams, EventProviderGetByIdParamsSchema, EventSubscriptionCreateParams, EventSubscriptionCreateParamsSchema, UpdateEventingConfigurationParams, UpdateEventingConfigurationParamsSchema, createCommerceEventsApiClient, createCustomCommerceEventsApiClient, createEventProvider, createEventSubscription, getAllEventProviders, getAllEventSubscriptions, getEventProviderById, updateEventingConfiguration };
|
|
@@ -11,4 +11,4 @@
|
|
|
11
11
|
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
12
12
|
* governing permissions and limitations under the License.
|
|
13
13
|
*/
|
|
14
|
-
const require_ky=require(`../ky-
|
|
14
|
+
const require_ky=require(`../ky-DBUULE7X.cjs`);let valibot=require(`valibot`);valibot=require_ky.g(valibot);const IO_EVENTS_IMS_REQUIRED_SCOPES=[`adobeio_api`];function buildIoEventsHttpClient(params){let{auth,config,fetchOptions}=params,beforeRequestAuthHook=require_ky.a(auth)?require_ky.r(auth):require_ky.r(require_ky.n(auth,IO_EVENTS_IMS_REQUIRED_SCOPES)),adobeIoBaseUrl=config.baseUrl,httpClient=require_ky.o.create({prefixUrl:adobeIoBaseUrl,headers:{Accept:`application/hal+json`},hooks:{beforeRequest:[beforeRequestAuthHook]}});return require_ky.t(httpClient,fetchOptions)}const DEFAULT_IO_EVENTS_BASE_URL=`https://api.adobe.io/events`;var AdobeIoEventsHttpClient=class extends require_ky.s{constructor(params){let config={...params.config,baseUrl:params.config?.baseUrl??`https://api.adobe.io/events`},httpClient=buildIoEventsHttpClient({...params,config});super(config,httpClient)}};const BASE64_ENCODED_STRING_REGEX=/^[A-Za-z0-9+/]*={0,2}$/,BASE64_ENCODED_STRING_LENGTH_REMAINDER=4;function isBase64EncodedString(value){return BASE64_ENCODED_STRING_REGEX.test(value)&&value.length%4==0}function encodeToBase64(value){return Buffer.from(value).toString(`base64`)}function tryDecodeFromBase64(value){return isBase64EncodedString(value)?Buffer.from(value,`base64`).toString(`utf-8`):value}function sampleEventTemplateSchema(fieldName){return valibot.pipe(valibot.union([valibot.pipe(require_ky.f(fieldName),valibot.transform(tryDecodeFromBase64),valibot.parseJson(void 0,`Expected valid JSON string for property '${fieldName}'`),valibot.record(valibot.string(),valibot.unknown()),valibot.stringifyJson()),valibot.record(valibot.string(),valibot.unknown()),valibot.array(valibot.unknown())]),valibot.stringifyJson(void 0,`Expected valid JSON data for property '${fieldName}'`),valibot.transform(encodeToBase64))}const GetAllEventMetadataForProviderSchema=valibot.object({providerId:require_ky.f(`providerId`)}),GetEventMetadataForEventAndProviderSchema=valibot.object({eventCode:require_ky.f(`eventCode`),providerId:require_ky.f(`providerId`)}),CreateEventMetadataForProviderSchema=valibot.object({consumerOrgId:require_ky.f(`consumerOrgId`),projectId:require_ky.f(`projectId`),workspaceId:require_ky.f(`workspaceId`),providerId:require_ky.f(`providerId`),label:require_ky.f(`label`),description:require_ky.f(`description`),eventCode:require_ky.f(`eventCode`),sampleEventTemplate:valibot.optional(sampleEventTemplateSchema(`sampleEventTemplate`))});var endpoints_exports={};require_ky.h(endpoints_exports,{createEventMetadataForProvider:()=>createEventMetadataForProvider,getAllEventMetadataForProvider:()=>getAllEventMetadataForProvider,getEventMetadataForEventAndProvider:()=>getEventMetadataForEventAndProvider});async function getAllEventMetadataForProvider(httpClient,params,fetchOptions){let validatedParams=require_ky.p(GetAllEventMetadataForProviderSchema,params);return httpClient.extend({hooks:{afterResponse:[require_ky.m()]}}).get(`providers/${validatedParams.providerId}/eventmetadata`,fetchOptions).json()}async function getEventMetadataForEventAndProvider(httpClient,params,fetchOptions){let validatedParams=require_ky.p(GetEventMetadataForEventAndProviderSchema,params);return httpClient.extend({hooks:{afterResponse:[require_ky.m()]}}).get(`providers/${validatedParams.providerId}/eventmetadata/${validatedParams.eventCode}`,fetchOptions).json()}async function createEventMetadataForProvider(httpClient,params,fetchOptions){let validatedParams=require_ky.p(CreateEventMetadataForProviderSchema,params);return httpClient.extend({hooks:{afterResponse:[require_ky.m()]}}).post(`${validatedParams.consumerOrgId}/${validatedParams.projectId}/${validatedParams.workspaceId}/providers/${validatedParams.providerId}/eventmetadata`,{...fetchOptions,json:{label:validatedParams.label,description:validatedParams.description,event_code:validatedParams.eventCode,sample_event_template:validatedParams.sampleEventTemplate}}).json()}function setQueryParamIfTruthy(queryParams,key,value){value&&queryParams.set(key,`${value}`)}function setArrayQueryParam(queryParams,key,values){if(values!==void 0&&values.length>0)for(let value of values)queryParams.set(key,`${value}`)}const VALID_EVENT_PROVIDER_TYPES=[`dx_commerce_events`,`3rd_party_custom_events`],VALID_DATA_RESIDENCY_REGIONS=[`va6`,`irl1`],EventProviderTypeSchema=valibot.picklist(VALID_EVENT_PROVIDER_TYPES),DataResidencyRegionSchema=valibot.picklist(VALID_DATA_RESIDENCY_REGIONS),EventProviderListAllParamsSchema=valibot.object({consumerOrgId:require_ky.f(`consumerOrgId`),withEventMetadata:valibot.optional(require_ky.d(`withEventMetadata`)),filterBy:valibot.optional(valibot.object({instanceId:valibot.optional(require_ky.f(`instanceId`)),providerTypes:valibot.optional(valibot.union([valibot.array(EventProviderTypeSchema,`Expected an array of event provider types`)]))}))}),EventProviderGetByIdParamsSchema=valibot.object({providerId:require_ky.f(`providerId`),withEventMetadata:valibot.optional(require_ky.d(`withEventMetadata`))}),EventProviderCreateParamsSchema=valibot.object({consumerOrgId:require_ky.f(`consumerOrgId`),projectId:require_ky.f(`projectId`),workspaceId:require_ky.f(`workspaceId`),label:require_ky.f(`label`),description:valibot.optional(require_ky.f(`description`)),docsUrl:valibot.optional(require_ky.f(`docsUrl`)),instanceId:valibot.optional(require_ky.f(`instanceId`)),providerType:valibot.optional(EventProviderTypeSchema),dataResidencyRegion:valibot.optional(DataResidencyRegionSchema)});var endpoints_exports$1={};require_ky.h(endpoints_exports$1,{createEventProvider:()=>createEventProvider,getAllEventProviders:()=>getAllEventProviders,getEventProviderById:()=>getEventProviderById});async function getAllEventProviders(httpClient,params,fetchOptions){let validatedParams=require_ky.p(EventProviderListAllParamsSchema,params),queryParams=new URLSearchParams,{providerTypes=[],instanceId}=validatedParams.filterBy??{};return setArrayQueryParam(queryParams,`providerMetadataIds`,providerTypes),setQueryParamIfTruthy(queryParams,`instanceId`,instanceId),setQueryParamIfTruthy(queryParams,`eventmetadata`,validatedParams.withEventMetadata),httpClient.extend({hooks:{afterResponse:[require_ky.m()]}}).get(`${validatedParams.consumerOrgId}/providers`,{...fetchOptions,searchParams:queryParams}).json()}async function getEventProviderById(httpClient,params,fetchOptions){let validatedParams=require_ky.p(EventProviderGetByIdParamsSchema,params),searchParams=new URLSearchParams;return setQueryParamIfTruthy(searchParams,`eventmetadata`,validatedParams.withEventMetadata),httpClient.extend({hooks:{afterResponse:[require_ky.m()]}}).get(`providers/${params.providerId}`,{...fetchOptions,searchParams}).json()}async function createEventProvider(httpClient,params,fetchOptions){let validatedParams=require_ky.p(EventProviderCreateParamsSchema,params);return httpClient.extend({hooks:{afterResponse:[require_ky.m()]}}).post(`${validatedParams.consumerOrgId}/${validatedParams.projectId}/${validatedParams.workspaceId}/providers`,{...fetchOptions,json:{...validatedParams,docs_url:validatedParams.docsUrl,provider_metadata:validatedParams.providerType,instance_id:validatedParams.instanceId,data_residency_region:validatedParams.dataResidencyRegion}}).json()}var shorthands_exports={};require_ky.h(shorthands_exports,{create3rdPartyCustomEventProvider:()=>create3rdPartyCustomEventProvider,createCommerceEventProvider:()=>createCommerceEventProvider,getAll3rdPartyCustomEventProviders:()=>getAll3rdPartyCustomEventProviders,getAllCommerceEventProviders:()=>getAllCommerceEventProviders});async function getAllCommerceEventProviders(httpClient,params,fetchOptions){return getAllEventProviders(httpClient,{...params,filterBy:{...params.filterBy,providerTypes:[`dx_commerce_events`]}},fetchOptions)}async function getAll3rdPartyCustomEventProviders(httpClient,params,fetchOptions){return getAllEventProviders(httpClient,{...params,filterBy:{...params.filterBy,providerTypes:[`3rd_party_custom_events`]}},fetchOptions)}async function createCommerceEventProvider(httpClient,params,fetchOptions){return createEventProvider(httpClient,{...params,providerType:`dx_commerce_events`},fetchOptions)}async function create3rdPartyCustomEventProvider(httpClient,params,fetchOptions){return createEventProvider(httpClient,{...params,providerType:`3rd_party_custom_events`},fetchOptions)}function createAdobeIoEventsApiClient(params){return require_ky.c.create(new AdobeIoEventsHttpClient(params),{...endpoints_exports$1,...endpoints_exports,...shorthands_exports})}function createCustomAdobeIoEventsApiClient(params,functions){return require_ky.c.create(new AdobeIoEventsHttpClient(params),functions)}exports.create3rdPartyCustomEventProvider=create3rdPartyCustomEventProvider,exports.createAdobeIoEventsApiClient=createAdobeIoEventsApiClient,exports.createCommerceEventProvider=createCommerceEventProvider,exports.createCustomAdobeIoEventsApiClient=createCustomAdobeIoEventsApiClient,exports.createEventMetadataForProvider=createEventMetadataForProvider,exports.createEventProvider=createEventProvider,exports.getAll3rdPartyCustomEventProviders=getAll3rdPartyCustomEventProviders,exports.getAllCommerceEventProviders=getAllCommerceEventProviders,exports.getAllEventMetadataForProvider=getAllEventMetadataForProvider,exports.getAllEventProviders=getAllEventProviders,exports.getEventMetadataForEventAndProvider=getEventMetadataForEventAndProvider,exports.getEventProviderById=getEventProviderById;
|
|
@@ -12,11 +12,10 @@
|
|
|
12
12
|
* governing permissions and limitations under the License.
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
-
import * as ky4 from "ky";
|
|
16
|
-
import { Options } from "ky";
|
|
17
15
|
import * as v from "valibot";
|
|
18
16
|
import * as type_fest0 from "type-fest";
|
|
19
17
|
import { CamelCasedPropertiesDeep, OmitDeep } from "type-fest";
|
|
18
|
+
import * as ky4 from "ky";
|
|
20
19
|
|
|
21
20
|
//#region source/io-events/api/event-metadata/schema.d.ts
|
|
22
21
|
/** The schema of the parameters received by the GET `providers/:id/eventmetadata` Adobe I/O Events API endpoint. */
|
|
@@ -71,7 +70,7 @@ type CreateEventMetadataForProviderParams = v.InferInput<typeof CreateEventMetad
|
|
|
71
70
|
* @throws A {@link CommerceSdkValidationError} If the parameters are in the wrong format.
|
|
72
71
|
* @throws An {@link HTTPError} If the status code is not 2XX.
|
|
73
72
|
*/
|
|
74
|
-
declare function getAllEventMetadataForProvider(httpClient: AdobeIoEventsHttpClient$3, params: GetAllEventMetadataForProviderParams, fetchOptions?: Options): Promise<{
|
|
73
|
+
declare function getAllEventMetadataForProvider(httpClient: AdobeIoEventsHttpClient$3, params: GetAllEventMetadataForProviderParams, fetchOptions?: Options$2): Promise<{
|
|
75
74
|
embedded: {
|
|
76
75
|
description: string;
|
|
77
76
|
label: string;
|
|
@@ -143,7 +142,7 @@ declare function getAllEventMetadataForProvider(httpClient: AdobeIoEventsHttpCli
|
|
|
143
142
|
* @throws A {@link CommerceSdkValidationError} If the parameters are in the wrong format.
|
|
144
143
|
* @throws An {@link HTTPError} If the status code is not 2XX.
|
|
145
144
|
*/
|
|
146
|
-
declare function getEventMetadataForEventAndProvider(httpClient: AdobeIoEventsHttpClient$3, params: GetEventMetadataForEventAndProviderParams, fetchOptions?: Options): Promise<{
|
|
145
|
+
declare function getEventMetadataForEventAndProvider(httpClient: AdobeIoEventsHttpClient$3, params: GetEventMetadataForEventAndProviderParams, fetchOptions?: Options$2): Promise<{
|
|
147
146
|
description: string;
|
|
148
147
|
label: string;
|
|
149
148
|
eventCode: string;
|
|
@@ -213,7 +212,7 @@ declare function getEventMetadataForEventAndProvider(httpClient: AdobeIoEventsHt
|
|
|
213
212
|
* @throws A {@link CommerceSdkValidationError} If the parameters are in the wrong format.
|
|
214
213
|
* @throws An {@link HTTPError} If the status code is not 2XX.
|
|
215
214
|
*/
|
|
216
|
-
declare function createEventMetadataForProvider(httpClient: AdobeIoEventsHttpClient$3, params: CreateEventMetadataForProviderParams, fetchOptions?: Options): Promise<{
|
|
215
|
+
declare function createEventMetadataForProvider(httpClient: AdobeIoEventsHttpClient$3, params: CreateEventMetadataForProviderParams, fetchOptions?: Options$2): Promise<{
|
|
217
216
|
description: string;
|
|
218
217
|
label: string;
|
|
219
218
|
eventCode: string;
|
|
@@ -322,7 +321,7 @@ type EventProviderCreateParams = v.InferInput<typeof EventProviderCreateParamsSc
|
|
|
322
321
|
* @param params - The parameters to list the event providers with.
|
|
323
322
|
* @param fetchOptions - The {@link Options} to use to make the request.
|
|
324
323
|
*/
|
|
325
|
-
declare function getAllEventProviders(httpClient: AdobeIoEventsHttpClient$2, params: EventProviderListAllParams, fetchOptions?: Options): Promise<{
|
|
324
|
+
declare function getAllEventProviders(httpClient: AdobeIoEventsHttpClient$2, params: EventProviderListAllParams, fetchOptions?: Options$1): Promise<{
|
|
326
325
|
embedded: {
|
|
327
326
|
providers: {
|
|
328
327
|
id: string;
|
|
@@ -446,7 +445,7 @@ declare function getAllEventProviders(httpClient: AdobeIoEventsHttpClient$2, par
|
|
|
446
445
|
* @throws A {@link CommerceSdkValidationError} If the parameters are in the wrong format.
|
|
447
446
|
* @throws An {@link HTTPError} If the status code is not 2XX.
|
|
448
447
|
*/
|
|
449
|
-
declare function getEventProviderById(httpClient: AdobeIoEventsHttpClient$2, params: EventProviderGetByIdParams, fetchOptions?: Options): Promise<{
|
|
448
|
+
declare function getEventProviderById(httpClient: AdobeIoEventsHttpClient$2, params: EventProviderGetByIdParams, fetchOptions?: Options$1): Promise<{
|
|
450
449
|
id: string;
|
|
451
450
|
instanceId?: string | undefined;
|
|
452
451
|
label: string;
|
|
@@ -553,7 +552,7 @@ declare function getEventProviderById(httpClient: AdobeIoEventsHttpClient$2, par
|
|
|
553
552
|
* @throws A {@link CommerceSdkValidationError} If the parameters are in the wrong format.
|
|
554
553
|
* @throws An {@link HTTPError} If the status code is not 2XX.
|
|
555
554
|
*/
|
|
556
|
-
declare function createEventProvider(httpClient: AdobeIoEventsHttpClient$2, params: EventProviderCreateParams, fetchOptions?: Options): Promise<{
|
|
555
|
+
declare function createEventProvider(httpClient: AdobeIoEventsHttpClient$2, params: EventProviderCreateParams, fetchOptions?: Options$1): Promise<{
|
|
557
556
|
id: string;
|
|
558
557
|
instanceId?: string | undefined;
|
|
559
558
|
label: string;
|
|
@@ -2028,7 +2027,7 @@ declare function createAdobeIoEventsApiClient(params: IoEventsHttpClientParams):
|
|
|
2028
2027
|
* @param params - The parameters to build the Adobe I/O Events HTTP client that will communicate with the Adobe I/O Events API.
|
|
2029
2028
|
* @param functions - The API functions to include in the client.
|
|
2030
2029
|
*/
|
|
2031
|
-
declare function createCustomAdobeIoEventsApiClient<TFunctions extends Record<string, ApiFunction<AdobeIoEventsHttpClient,
|
|
2030
|
+
declare function createCustomAdobeIoEventsApiClient<TFunctions extends Record<string, ApiFunction<AdobeIoEventsHttpClient, any[], any>>>(params: IoEventsHttpClientParams, functions: TFunctions): void 0<AdobeIoEventsHttpClient, TFunctions>;
|
|
2032
2031
|
//#endregion
|
|
2033
2032
|
//#region source/io-events/types.d.ts
|
|
2034
2033
|
type HALLink = {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*
|
|
4
|
+
* Copyright 2025 Adobe. All rights reserved.
|
|
5
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
7
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
10
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
11
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
12
|
+
* governing permissions and limitations under the License.
|
|
13
|
+
*/
|
|
14
|
+
var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from==`object`||typeof from==`function`)for(var keys=__getOwnPropNames(from),i=0,n=keys.length,key;i<n;i++)key=keys[i],!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:(k=>from[k]).bind(null,key),enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toESM=(mod,isNodeMode,target)=>(target=mod==null?{}:__create(__getProtoOf(mod)),__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,`default`,{value:mod,enumerable:!0}):target,mod));let __adobe_aio_commerce_lib_core_error=require(`@adobe/aio-commerce-lib-core/error`);__adobe_aio_commerce_lib_core_error=__toESM(__adobe_aio_commerce_lib_core_error);let valibot=require(`valibot`);valibot=__toESM(valibot);let __adobe_aio_commerce_lib_auth=require(`@adobe/aio-commerce-lib-auth`);__adobe_aio_commerce_lib_auth=__toESM(__adobe_aio_commerce_lib_auth);const UPPERCASE=/[\p{Lu}]/u,LOWERCASE=/[\p{Ll}]/u,LEADING_CAPITAL=/^[\p{Lu}](?![\p{Lu}])/gu,IDENTIFIER=/([\p{Alpha}\p{N}_]|$)/u,SEPARATORS=/[_.\- ]+/,LEADING_SEPARATORS=RegExp(`^`+SEPARATORS.source),SEPARATORS_AND_IDENTIFIER=new RegExp(SEPARATORS.source+IDENTIFIER.source,`gu`),NUMBERS_AND_IDENTIFIER=RegExp(`\\d+`+IDENTIFIER.source,`gu`),preserveCamelCase=(string,toLowerCase,toUpperCase,preserveConsecutiveUppercase$1)=>{let isLastCharLower=!1,isLastCharUpper=!1,isLastLastCharUpper=!1,isLastLastCharPreserved=!1;for(let index=0;index<string.length;index++){let character=string[index];isLastLastCharPreserved=index>2?string[index-3]===`-`:!0,isLastCharLower&&UPPERCASE.test(character)?(string=string.slice(0,index)+`-`+string.slice(index),isLastCharLower=!1,isLastLastCharUpper=isLastCharUpper,isLastCharUpper=!0,index++):isLastCharUpper&&isLastLastCharUpper&&LOWERCASE.test(character)&&(!isLastLastCharPreserved||preserveConsecutiveUppercase$1)?(string=string.slice(0,index-1)+`-`+string.slice(index-1),isLastLastCharUpper=isLastCharUpper,isLastCharUpper=!1,isLastCharLower=!0):(isLastCharLower=toLowerCase(character)===character&&toUpperCase(character)!==character,isLastLastCharUpper=isLastCharUpper,isLastCharUpper=toUpperCase(character)===character&&toLowerCase(character)!==character)}return string},preserveConsecutiveUppercase=(input,toLowerCase)=>(LEADING_CAPITAL.lastIndex=0,input.replaceAll(LEADING_CAPITAL,match=>toLowerCase(match))),postProcess=(input,toUpperCase)=>(SEPARATORS_AND_IDENTIFIER.lastIndex=0,NUMBERS_AND_IDENTIFIER.lastIndex=0,input.replaceAll(NUMBERS_AND_IDENTIFIER,(match,pattern,offset)=>[`_`,`-`].includes(input.charAt(offset+match.length))?match:toUpperCase(match)).replaceAll(SEPARATORS_AND_IDENTIFIER,(_,identifier)=>toUpperCase(identifier)));function camelCase(input,options){if(!(typeof input==`string`||Array.isArray(input)))throw TypeError("Expected the input to be `string | string[]`");if(options={pascalCase:!1,preserveConsecutiveUppercase:!1,...options},input=Array.isArray(input)?input.map(x=>x.trim()).filter(x=>x.length).join(`-`):input.trim(),input.length===0)return``;let toLowerCase=options.locale===!1?string=>string.toLowerCase():string=>string.toLocaleLowerCase(options.locale),toUpperCase=options.locale===!1?string=>string.toUpperCase():string=>string.toLocaleUpperCase(options.locale);return input.length===1?SEPARATORS.test(input)?``:options.pascalCase?toUpperCase(input):toLowerCase(input):(input!==toLowerCase(input)&&(input=preserveCamelCase(input,toLowerCase,toUpperCase,options.preserveConsecutiveUppercase)),input=input.replace(LEADING_SEPARATORS,``),input=options.preserveConsecutiveUppercase?preserveConsecutiveUppercase(input,toLowerCase):toLowerCase(input),options.pascalCase&&(input=toUpperCase(input.charAt(0))+input.slice(1)),postProcess(input,toUpperCase))}function buildObjectKeyTransformerResponseHook(transformer,recursive=!0){let transformObject=obj=>typeof obj!=`object`||!obj?obj:Array.isArray(obj)?recursive?obj.map(transformObject):obj:Object.fromEntries(Object.entries(obj).map(([key,value])=>{let transformedKey=transformer(key),transformedValue=recursive?transformObject(value):value;return[transformedKey,transformedValue]}));return(_req,_opt,response)=>response.json().then(data=>{let transformedData=transformObject(data);return Response.json(transformedData,response)})}function buildCamelCaseKeysResponseHook(){return buildObjectKeyTransformerResponseHook(camelCase)}function parseOrThrow(schema,input){let result=valibot.safeParse(schema,input);if(!result.success)throw new __adobe_aio_commerce_lib_core_error.CommerceSdkValidationError(`Invalid input`,{issues:result.issues});return result.output}const ALPHANUMERIC_OR_UNDERSCORE_REGEX=/^[a-zA-Z0-9_]+$/,ALPHANUMERIC_OR_UNDERSCORE_OR_HYPHEN_REGEX=/^[a-zA-Z0-9_-]+$/;function stringValueSchema(propertyName){return valibot.string(`Expected a string value for property '${propertyName}'`)}function booleanValueSchema(propertyName){return valibot.boolean(`Expected a boolean value for property '${propertyName}'`)}function alphaNumericOrUnderscoreSchema(name){return valibot.pipe(stringValueSchema(name),valibot.regex(ALPHANUMERIC_OR_UNDERSCORE_REGEX,`Only alphanumeric characters and underscores are allowed for "${name}"`))}function alphaNumericOrUnderscoreOrHyphenSchema(name){return valibot.pipe(stringValueSchema(name),valibot.regex(ALPHANUMERIC_OR_UNDERSCORE_OR_HYPHEN_REGEX,`Only alphanumeric characters, underscores, and hyphens are allowed for property "${name}"`))}var ApiClient=class{static create(client,functions){let wrapped={};for(let key in functions)if(Object.hasOwn(functions,key)){let fn=functions[key];wrapped[key]=((...args)=>fn(client,...args))}return wrapped}},HttpClientBase=class HttpClientBase{constructor(config,httpClient){this.config=Object.freeze(config),this.setHttpClient(httpClient)}setHttpClient(httpClient){this.httpClient=Object.freeze(httpClient),this.get=this.httpClient.get.bind(this.httpClient),this.post=this.httpClient.post.bind(this.httpClient),this.put=this.httpClient.put.bind(this.httpClient),this.delete=this.httpClient.delete.bind(this.httpClient),this.patch=this.httpClient.patch.bind(this.httpClient),this.head=this.httpClient.head.bind(this.httpClient),this.stop=this.httpClient.stop}extend(options){let client=Object.freeze(this.httpClient.extend(options));return new HttpClientBase(this.config,client)}},HTTPError=class extends Error{response;request;options;constructor(response,request,options){let code=response.status||response.status===0?response.status:``,title=response.statusText||``,status=`${code} ${title}`.trim(),reason=status?`status code ${status}`:`an unknown error`;super(`Request failed with ${reason}: ${request.method} ${request.url}`),this.name=`HTTPError`,this.response=response,this.request=request,this.options=options}},TimeoutError=class extends Error{request;constructor(request){super(`Request timed out: ${request.method} ${request.url}`),this.name=`TimeoutError`,this.request=request}};const supportsRequestStreams=(()=>{let duplexAccessed=!1,hasContentType=!1,supportsReadableStream=typeof globalThis.ReadableStream==`function`,supportsRequest=typeof globalThis.Request==`function`;if(supportsReadableStream&&supportsRequest)try{hasContentType=new globalThis.Request(`https://empty.invalid`,{body:new globalThis.ReadableStream,method:`POST`,get duplex(){return duplexAccessed=!0,`half`}}).headers.has(`Content-Type`)}catch(error){if(error instanceof Error&&error.message===`unsupported BodyInit type`)return!1;throw error}return duplexAccessed&&!hasContentType})(),supportsAbortController=typeof globalThis.AbortController==`function`,supportsAbortSignal=typeof globalThis.AbortSignal==`function`&&typeof globalThis.AbortSignal.any==`function`,supportsResponseStreams=typeof globalThis.ReadableStream==`function`,supportsFormData=typeof globalThis.FormData==`function`,requestMethods=[`get`,`post`,`put`,`patch`,`head`,`delete`],validate=()=>void 0,responseTypes={json:`application/json`,text:`text/*`,formData:`multipart/form-data`,arrayBuffer:`*/*`,blob:`*/*`,bytes:`*/*`},maxSafeTimeout=2147483647,usualFormBoundarySize=new TextEncoder().encode(`------WebKitFormBoundaryaxpyiPgbbPti10Rw`).length,stop=Symbol(`stop`),kyOptionKeys={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,onUploadProgress:!0,fetch:!0},requestOptionsRegistry={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,dispatcher:!0,duplex:!0,priority:!0},getBodySize=body=>{if(!body)return 0;if(body instanceof FormData){let size=0;for(let[key,value]of body)size+=usualFormBoundarySize,size+=new TextEncoder().encode(`Content-Disposition: form-data; name="${key}"`).length,size+=typeof value==`string`?new TextEncoder().encode(value).length:value.size;return size}if(body instanceof Blob)return body.size;if(body instanceof ArrayBuffer)return body.byteLength;if(typeof body==`string`)return new TextEncoder().encode(body).length;if(body instanceof URLSearchParams)return new TextEncoder().encode(body.toString()).length;if(`byteLength`in body)return body.byteLength;if(typeof body==`object`&&body)try{let jsonString=JSON.stringify(body);return new TextEncoder().encode(jsonString).length}catch{return 0}return 0},streamResponse=(response,onDownloadProgress)=>{let totalBytes=Number(response.headers.get(`content-length`))||0,transferredBytes=0;return response.status===204?(onDownloadProgress&&onDownloadProgress({percent:1,totalBytes,transferredBytes},new Uint8Array),new Response(null,{status:response.status,statusText:response.statusText,headers:response.headers})):new Response(new ReadableStream({async start(controller){let reader=response.body.getReader();onDownloadProgress&&onDownloadProgress({percent:0,transferredBytes:0,totalBytes},new Uint8Array);async function read(){let{done,value}=await reader.read();if(done){controller.close();return}if(onDownloadProgress){transferredBytes+=value.byteLength;let percent=totalBytes===0?0:transferredBytes/totalBytes;onDownloadProgress({percent,transferredBytes,totalBytes},value)}controller.enqueue(value),await read()}await read()}}),{status:response.status,statusText:response.statusText,headers:response.headers})},streamRequest=(request,onUploadProgress)=>{let totalBytes=getBodySize(request.body),transferredBytes=0;return new Request(request,{duplex:`half`,body:new ReadableStream({async start(controller){let reader=request.body instanceof ReadableStream?request.body.getReader():new Response(``).body.getReader();async function read(){let{done,value}=await reader.read();if(done){onUploadProgress&&onUploadProgress({percent:1,transferredBytes,totalBytes:Math.max(totalBytes,transferredBytes)},new Uint8Array),controller.close();return}transferredBytes+=value.byteLength;let percent=totalBytes===0?0:transferredBytes/totalBytes;(totalBytes<transferredBytes||percent===1)&&(percent=.99),onUploadProgress&&onUploadProgress({percent:Number(percent.toFixed(2)),transferredBytes,totalBytes},value),controller.enqueue(value),await read()}await read()}})})},isObject=value=>typeof value==`object`&&!!value,validateAndMerge=(...sources)=>{for(let source of sources)if((!isObject(source)||Array.isArray(source))&&source!==void 0)throw TypeError("The `options` argument must be an object");return deepMerge({},...sources)},mergeHeaders=(source1={},source2={})=>{let result=new globalThis.Headers(source1),isHeadersInstance=source2 instanceof globalThis.Headers,source=new globalThis.Headers(source2);for(let[key,value]of source.entries())isHeadersInstance&&value===`undefined`||value===void 0?result.delete(key):result.set(key,value);return result};function newHookValue(original,incoming,property){return Object.hasOwn(incoming,property)&&incoming[property]===void 0?[]:deepMerge(original[property]??[],incoming[property]??[])}const mergeHooks=(original={},incoming={})=>({beforeRequest:newHookValue(original,incoming,`beforeRequest`),beforeRetry:newHookValue(original,incoming,`beforeRetry`),afterResponse:newHookValue(original,incoming,`afterResponse`),beforeError:newHookValue(original,incoming,`beforeError`)}),deepMerge=(...sources)=>{let returnValue={},headers={},hooks={};for(let source of sources)if(Array.isArray(source))Array.isArray(returnValue)||(returnValue=[]),returnValue=[...returnValue,...source];else if(isObject(source)){for(let[key,value]of Object.entries(source))isObject(value)&&key in returnValue&&(value=deepMerge(returnValue[key],value)),returnValue={...returnValue,[key]:value};isObject(source.hooks)&&(hooks=mergeHooks(hooks,source.hooks),returnValue.hooks=hooks),isObject(source.headers)&&(headers=mergeHeaders(headers,source.headers),returnValue.headers=headers)}return returnValue},normalizeRequestMethod=input=>requestMethods.includes(input)?input.toUpperCase():input,defaultRetryOptions={limit:2,methods:[`get`,`put`,`head`,`delete`,`options`,`trace`],statusCodes:[408,413,429,500,502,503,504],afterStatusCodes:[413,429,503],maxRetryAfter:1/0,backoffLimit:1/0,delay:attemptCount=>.3*2**(attemptCount-1)*1e3},normalizeRetryOptions=(retry={})=>{if(typeof retry==`number`)return{...defaultRetryOptions,limit:retry};if(retry.methods&&!Array.isArray(retry.methods))throw Error(`retry.methods must be an array`);if(retry.statusCodes&&!Array.isArray(retry.statusCodes))throw Error(`retry.statusCodes must be an array`);return{...defaultRetryOptions,...retry}};async function timeout(request,init,abortController,options){return new Promise((resolve,reject)=>{let timeoutId=setTimeout(()=>{abortController&&abortController.abort(),reject(new TimeoutError(request))},options.timeout);options.fetch(request,init).then(resolve).catch(reject).then(()=>{clearTimeout(timeoutId)})})}async function delay(ms,{signal}){return new Promise((resolve,reject)=>{signal&&(signal.throwIfAborted(),signal.addEventListener(`abort`,abortHandler,{once:!0}));function abortHandler(){clearTimeout(timeoutId),reject(signal.reason)}let timeoutId=setTimeout(()=>{signal?.removeEventListener(`abort`,abortHandler),resolve()},ms)})}const findUnknownOptions=(request,options)=>{let unknownOptions={};for(let key in options)!(key in requestOptionsRegistry)&&!(key in kyOptionKeys)&&!(key in request)&&(unknownOptions[key]=options[key]);return unknownOptions},hasSearchParameters=search=>search===void 0?!1:Array.isArray(search)?search.length>0:search instanceof URLSearchParams?search.size>0:typeof search==`object`?Object.keys(search).length>0:typeof search==`string`?search.trim().length>0:!!search;var Ky=class Ky{static create(input,options){let ky$1=new Ky(input,options),function_=async()=>{if(typeof ky$1._options.timeout==`number`&&ky$1._options.timeout>maxSafeTimeout)throw RangeError(`The \`timeout\` option cannot be greater than ${maxSafeTimeout}`);await Promise.resolve();let response=await ky$1._fetch();for(let hook of ky$1._options.hooks.afterResponse){let modifiedResponse=await hook(ky$1.request,ky$1._options,ky$1._decorateResponse(response.clone()));modifiedResponse instanceof globalThis.Response&&(response=modifiedResponse)}if(ky$1._decorateResponse(response),!response.ok&&ky$1._options.throwHttpErrors){let error=new HTTPError(response,ky$1.request,ky$1._options);for(let hook of ky$1._options.hooks.beforeError)error=await hook(error);throw error}if(ky$1._options.onDownloadProgress){if(typeof ky$1._options.onDownloadProgress!=`function`)throw TypeError("The `onDownloadProgress` option must be a function");if(!supportsResponseStreams)throw Error("Streams are not supported in your environment. `ReadableStream` is missing.");return streamResponse(response.clone(),ky$1._options.onDownloadProgress)}return response},result=(ky$1._options.retry.methods.includes(ky$1.request.method.toLowerCase())?ky$1._retry(function_):function_()).finally(async()=>{ky$1.request.bodyUsed||await ky$1.request.body?.cancel()});for(let[type,mimeType]of Object.entries(responseTypes)){if(type===`bytes`&&typeof globalThis.Response?.prototype?.bytes!=`function`)continue;result[type]=async()=>{ky$1.request.headers.set(`accept`,ky$1.request.headers.get(`accept`)||mimeType);let response=await result;if(type===`json`){if(response.status===204||(await response.clone().arrayBuffer()).byteLength===0)return``;if(options.parseJson)return options.parseJson(await response.text())}return response[type]()}}return result}request;abortController;_retryCount=0;_input;_options;constructor(input,options={}){if(this._input=input,this._options={...options,headers:mergeHeaders(this._input.headers,options.headers),hooks:mergeHooks({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},options.hooks),method:normalizeRequestMethod(options.method??this._input.method??`GET`),prefixUrl:String(options.prefixUrl||``),retry:normalizeRetryOptions(options.retry),throwHttpErrors:options.throwHttpErrors!==!1,timeout:options.timeout??1e4,fetch:options.fetch??globalThis.fetch.bind(globalThis)},typeof this._input!=`string`&&!(this._input instanceof URL||this._input instanceof globalThis.Request))throw TypeError("`input` must be a string, URL, or Request");if(this._options.prefixUrl&&typeof this._input==`string`){if(this._input.startsWith(`/`))throw Error("`input` must not begin with a slash when using `prefixUrl`");this._options.prefixUrl.endsWith(`/`)||(this._options.prefixUrl+=`/`),this._input=this._options.prefixUrl+this._input}if(supportsAbortController&&supportsAbortSignal){let originalSignal=this._options.signal??this._input.signal;this.abortController=new globalThis.AbortController,this._options.signal=originalSignal?AbortSignal.any([originalSignal,this.abortController.signal]):this.abortController.signal}if(supportsRequestStreams&&(this._options.duplex=`half`),this._options.json!==void 0&&(this._options.body=this._options.stringifyJson?.(this._options.json)??JSON.stringify(this._options.json),this._options.headers.set(`content-type`,this._options.headers.get(`content-type`)??`application/json`)),this.request=new globalThis.Request(this._input,this._options),hasSearchParameters(this._options.searchParams)){let searchParams=`?`+(typeof this._options.searchParams==`string`?this._options.searchParams.replace(/^\?/,``):new URLSearchParams(this._options.searchParams).toString()),url=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,searchParams);(supportsFormData&&this._options.body instanceof globalThis.FormData||this._options.body instanceof URLSearchParams)&&!(this._options.headers&&this._options.headers[`content-type`])&&this.request.headers.delete(`content-type`),this.request=new globalThis.Request(new globalThis.Request(url,{...this.request}),this._options)}if(this._options.onUploadProgress){if(typeof this._options.onUploadProgress!=`function`)throw TypeError("The `onUploadProgress` option must be a function");if(!supportsRequestStreams)throw Error("Request streams are not supported in your environment. The `duplex` option for `Request` is not available.");this.request.body&&(this.request=streamRequest(this.request,this._options.onUploadProgress))}}_calculateRetryDelay(error){if(this._retryCount++,this._retryCount>this._options.retry.limit||error instanceof TimeoutError)throw error;if(error instanceof HTTPError){if(!this._options.retry.statusCodes.includes(error.response.status))throw error;let retryAfter=error.response.headers.get(`Retry-After`)??error.response.headers.get(`RateLimit-Reset`)??error.response.headers.get(`X-RateLimit-Reset`)??error.response.headers.get(`X-Rate-Limit-Reset`);if(retryAfter&&this._options.retry.afterStatusCodes.includes(error.response.status)){let after=Number(retryAfter)*1e3;Number.isNaN(after)?after=Date.parse(retryAfter)-Date.now():after>=Date.parse(`2024-01-01`)&&(after-=Date.now());let max=this._options.retry.maxRetryAfter??after;return after<max?after:max}if(error.response.status===413)throw error}let retryDelay=this._options.retry.delay(this._retryCount);return Math.min(this._options.retry.backoffLimit,retryDelay)}_decorateResponse(response){return this._options.parseJson&&(response.json=async()=>this._options.parseJson(await response.text())),response}async _retry(function_){try{return await function_()}catch(error){let ms=Math.min(this._calculateRetryDelay(error),maxSafeTimeout);if(this._retryCount<1)throw error;await delay(ms,{signal:this._options.signal});for(let hook of this._options.hooks.beforeRetry)if(await hook({request:this.request,options:this._options,error,retryCount:this._retryCount})===stop)return;return this._retry(function_)}}async _fetch(){for(let hook of this._options.hooks.beforeRequest){let result=await hook(this.request,this._options);if(result instanceof Request){this.request=result;break}if(result instanceof Response)return result}let nonRequestOptions=findUnknownOptions(this.request,this._options),mainRequest=this.request;return this.request=mainRequest.clone(),this._options.timeout===!1?this._options.fetch(mainRequest,nonRequestOptions):timeout(mainRequest,nonRequestOptions,this.abortController,this._options)}};const createInstance=defaults=>{let ky$1=(input,options)=>Ky.create(input,validateAndMerge(defaults,options));for(let method of requestMethods)ky$1[method]=(input,options)=>Ky.create(input,validateAndMerge(defaults,options,{method}));return ky$1.create=newDefaults=>createInstance(validateAndMerge(newDefaults)),ky$1.extend=newDefaults=>(typeof newDefaults==`function`&&(newDefaults=newDefaults(defaults??{})),createInstance(validateAndMerge(defaults,newDefaults))),ky$1.stop=stop,ky$1},ky=createInstance();var distribution_default=ky;function isAuthProvider(auth){return`getHeaders`in auth}function buildIntegrationAuthBeforeRequestHook(integrationAuth){let integrationAuthProvider=isAuthProvider(integrationAuth)?integrationAuth:(0,__adobe_aio_commerce_lib_auth.getIntegrationAuthProvider)(integrationAuth);return request=>{let headers=integrationAuthProvider.getHeaders(request.method.toUpperCase(),request.url);request.headers.set(`Authorization`,headers.Authorization)}}function buildImsAuthBeforeRequestHook(imsAuth){let imsAuthProvider=isAuthProvider(imsAuth)?imsAuth:(0,__adobe_aio_commerce_lib_auth.getImsAuthProvider)(imsAuth);return async request=>{let headers=await imsAuthProvider.getHeaders();request.headers.set(`Authorization`,headers.Authorization),request.headers.set(`x-api-key`,headers[`x-api-key`])}}function ensureImsScopes(imsAuth,requiredScopes){let scopes=new Set([...imsAuth.scopes??[],...requiredScopes]);return{...imsAuth,scopes:Array.from(scopes)}}function optionallyExtendKy(ky$1,options){return options?ky$1.extend(options):ky$1}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return isAuthProvider}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return ApiClient}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return booleanValueSchema}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return stringValueSchema}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return __toESM}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return __export}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return buildIntegrationAuthBeforeRequestHook}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return alphaNumericOrUnderscoreOrHyphenSchema}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return buildCamelCaseKeysResponseHook}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return ensureImsScopes}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return distribution_default}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return parseOrThrow}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return buildImsAuthBeforeRequestHook}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return HttpClientBase}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return optionallyExtendKy}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return alphaNumericOrUnderscoreSchema}});
|
|
@@ -13,9 +13,8 @@
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
import * as v from "valibot";
|
|
16
|
-
import * as ky0 from "ky";
|
|
17
|
-
import { Options } from "ky";
|
|
18
16
|
import { CamelCasedPropertiesDeep } from "type-fest";
|
|
17
|
+
import * as ky0 from "ky";
|
|
19
18
|
|
|
20
19
|
//#region source/commerce/api/event-providers/schema.d.ts
|
|
21
20
|
declare const EventProviderGetByIdParamsSchema: v.ObjectSchema<{
|
|
@@ -64,12 +63,11 @@ type CommerceEventProviderManyResponse = CommerceEventProviderOneResponse[];
|
|
|
64
63
|
* @see https://developer.adobe.com/commerce/extensibility/events/api/#get-list-of-all-event-providers
|
|
65
64
|
*
|
|
66
65
|
* @param httpClient - The {@link AdobeCommerceHttpClient} to use to make the request.
|
|
67
|
-
* @param params - The parameters to list the event providers with.
|
|
68
66
|
* @param fetchOptions - The {@link Options} to use to make the request.
|
|
69
67
|
*
|
|
70
68
|
* @throws An {@link HTTPError} If the status code is not 2XX.
|
|
71
69
|
*/
|
|
72
|
-
declare function getAllEventProviders(httpClient: AdobeCommerceHttpClient$3, fetchOptions?: Options): Promise<CommerceEventProviderManyResponse>;
|
|
70
|
+
declare function getAllEventProviders(httpClient: AdobeCommerceHttpClient$3, fetchOptions?: Options$2): Promise<CommerceEventProviderManyResponse>;
|
|
73
71
|
/**
|
|
74
72
|
* Gets the info of the event provider with the given ID of the Commerce instance bound to the given {@link AdobeCommerceHttpClient}.
|
|
75
73
|
* @see https://developer.adobe.com/commerce/extensibility/events/api/#get-event-provider-by-id
|
|
@@ -81,7 +79,7 @@ declare function getAllEventProviders(httpClient: AdobeCommerceHttpClient$3, fet
|
|
|
81
79
|
* @throws A {@link CommerceSdkValidationError} If the parameters are in the wrong format.
|
|
82
80
|
* @throws An {@link HTTPError} If the status code is not 2XX.
|
|
83
81
|
*/
|
|
84
|
-
declare function getEventProviderById(httpClient: AdobeCommerceHttpClient$3, params: EventProviderGetByIdParams, fetchOptions?: Options): Promise<{
|
|
82
|
+
declare function getEventProviderById(httpClient: AdobeCommerceHttpClient$3, params: EventProviderGetByIdParams, fetchOptions?: Options$2): Promise<{
|
|
85
83
|
id: string;
|
|
86
84
|
providerId: string;
|
|
87
85
|
instanceId?: string | undefined;
|
|
@@ -100,7 +98,7 @@ declare function getEventProviderById(httpClient: AdobeCommerceHttpClient$3, par
|
|
|
100
98
|
* @throws A {@link CommerceSdkValidationError} If the parameters are in the wrong format.
|
|
101
99
|
* @throws An {@link HTTPError} If the status code is not 2XX.
|
|
102
100
|
*/
|
|
103
|
-
declare function createEventProvider(httpClient: AdobeCommerceHttpClient$3, params: EventProviderCreateParams, fetchOptions?: Options): Promise<{
|
|
101
|
+
declare function createEventProvider(httpClient: AdobeCommerceHttpClient$3, params: EventProviderCreateParams, fetchOptions?: Options$2): Promise<{
|
|
104
102
|
id: string;
|
|
105
103
|
providerId: string;
|
|
106
104
|
instanceId?: string | undefined;
|
|
@@ -164,7 +162,7 @@ type CommerceEventSubscriptionManyResponse = CommerceEventSubscriptionOneRespons
|
|
|
164
162
|
* @param httpClient - The {@link AdobeCommerceHttpClient} to use to make the request.
|
|
165
163
|
* @param fetchOptions - The {@link Options} to use to make the request.
|
|
166
164
|
*/
|
|
167
|
-
declare function getAllEventSubscriptions(httpClient: AdobeCommerceHttpClient$2, fetchOptions?: Options): Promise<CommerceEventSubscriptionManyResponse>;
|
|
165
|
+
declare function getAllEventSubscriptions(httpClient: AdobeCommerceHttpClient$2, fetchOptions?: Options$1): Promise<CommerceEventSubscriptionManyResponse>;
|
|
168
166
|
/**
|
|
169
167
|
* Creates an event subscription in the Commerce instance bound to the given {@link AdobeCommerceHttpClient}.
|
|
170
168
|
* @see https://developer.adobe.com/commerce/extensibility/events/api/#subscribe-to-events
|
|
@@ -176,7 +174,7 @@ declare function getAllEventSubscriptions(httpClient: AdobeCommerceHttpClient$2,
|
|
|
176
174
|
* @throws A {@link CommerceSdkValidationError} If the parameters are in the wrong format.
|
|
177
175
|
* @throws An {@link HTTPError} If the status code is not 2XX.
|
|
178
176
|
*/
|
|
179
|
-
declare function createEventSubscription(httpClient: AdobeCommerceHttpClient$2, params: EventSubscriptionCreateParams, fetchOptions?: Options): void
|
|
177
|
+
declare function createEventSubscription(httpClient: AdobeCommerceHttpClient$2, params: EventSubscriptionCreateParams, fetchOptions?: Options$1): Promise<void>;
|
|
180
178
|
//#endregion
|
|
181
179
|
//#region source/commerce/api/eventing-configuration/schema.d.ts
|
|
182
180
|
/** The schema of the parameters received by the `updateConfiguration` Commerce Eventing API endpoint. */
|
|
@@ -228,11 +226,11 @@ declare const UpdateEventingConfigurationParamsSchema: Omit<v.ObjectSchema<{
|
|
|
228
226
|
merchantId?: string | undefined;
|
|
229
227
|
environmentId?: string | undefined;
|
|
230
228
|
workspaceConfiguration?: string | undefined;
|
|
231
|
-
}, v.StringIssue | v.EmptyIssue<string> | v.ParseJsonIssue<string> | v.RecordIssue | v.StringifyJsonIssue<{
|
|
229
|
+
}, v.StringIssue | v.ObjectIssue | v.EmptyIssue<string> | v.ParseJsonIssue<string> | v.RecordIssue | v.StringifyJsonIssue<{
|
|
232
230
|
[x: string]: unknown;
|
|
233
231
|
}> | v.UnionIssue<v.StringIssue | v.EmptyIssue<string> | v.ParseJsonIssue<string> | v.RecordIssue | v.StringifyJsonIssue<{
|
|
234
232
|
[x: string]: unknown;
|
|
235
|
-
}>> | v.
|
|
233
|
+
}>> | v.BooleanIssue | v.RegexIssue<string>>;
|
|
236
234
|
readonly '~types'?: {
|
|
237
235
|
readonly input: {
|
|
238
236
|
enabled?: boolean | undefined;
|
|
@@ -252,11 +250,11 @@ declare const UpdateEventingConfigurationParamsSchema: Omit<v.ObjectSchema<{
|
|
|
252
250
|
environmentId?: string | undefined;
|
|
253
251
|
workspaceConfiguration?: string | undefined;
|
|
254
252
|
};
|
|
255
|
-
readonly issue: v.StringIssue | v.EmptyIssue<string> | v.ParseJsonIssue<string> | v.RecordIssue | v.StringifyJsonIssue<{
|
|
253
|
+
readonly issue: v.StringIssue | v.ObjectIssue | v.EmptyIssue<string> | v.ParseJsonIssue<string> | v.RecordIssue | v.StringifyJsonIssue<{
|
|
256
254
|
[x: string]: unknown;
|
|
257
255
|
}> | v.UnionIssue<v.StringIssue | v.EmptyIssue<string> | v.ParseJsonIssue<string> | v.RecordIssue | v.StringifyJsonIssue<{
|
|
258
256
|
[x: string]: unknown;
|
|
259
|
-
}>> | v.
|
|
257
|
+
}>> | v.BooleanIssue | v.RegexIssue<string>;
|
|
260
258
|
} | undefined;
|
|
261
259
|
};
|
|
262
260
|
/**
|
|
@@ -270,7 +268,7 @@ type UpdateEventingConfigurationParams = v.InferInput<typeof UpdateEventingConfi
|
|
|
270
268
|
* Updates the configuration of the Commerce Eventing API.
|
|
271
269
|
* @see https://developer.adobe.com/commerce/extensibility/events/api/#configure-commerce-eventing
|
|
272
270
|
*
|
|
273
|
-
* @param httpClient - The {@link
|
|
271
|
+
* @param httpClient - The {@link AdobeCommerceHttpClient} to use to make the request.
|
|
274
272
|
* @param params - The parameters to update the configuration with.
|
|
275
273
|
* @param fetchOptions - The {@link Options} to use to make the request.
|
|
276
274
|
*
|
|
@@ -287,7 +285,7 @@ declare function updateEventingConfiguration(httpClient: AdobeCommerceHttpClient
|
|
|
287
285
|
declare function createCommerceEventsApiClient(params: CommerceHttpClientParams): void 0<AdobeCommerceHttpClient, {
|
|
288
286
|
updateEventingConfiguration: typeof updateEventingConfiguration;
|
|
289
287
|
getAllEventSubscriptions(httpClient: AdobeCommerceHttpClient, fetchOptions?: ky0.Options): Promise<CommerceEventSubscriptionManyResponse>;
|
|
290
|
-
createEventSubscription(httpClient: AdobeCommerceHttpClient, params: EventSubscriptionCreateParams, fetchOptions?: ky0.Options): void
|
|
288
|
+
createEventSubscription(httpClient: AdobeCommerceHttpClient, params: EventSubscriptionCreateParams, fetchOptions?: ky0.Options): Promise<void>;
|
|
291
289
|
getAllEventProviders(httpClient: AdobeCommerceHttpClient, fetchOptions?: ky0.Options): Promise<CommerceEventProviderManyResponse>;
|
|
292
290
|
getEventProviderById(httpClient: AdobeCommerceHttpClient, params: EventProviderGetByIdParams, fetchOptions?: ky0.Options): Promise<{
|
|
293
291
|
id: string;
|
|
@@ -311,6 +309,6 @@ declare function createCommerceEventsApiClient(params: CommerceHttpClientParams)
|
|
|
311
309
|
* @param params - The parameters to build the Commerce HTTP client that will communicate with the Commerce Events API.
|
|
312
310
|
* @param functions - The API functions to include in the client.
|
|
313
311
|
*/
|
|
314
|
-
declare function createCustomCommerceEventsApiClient<TFunctions extends Record<string, ApiFunction<AdobeCommerceHttpClient,
|
|
312
|
+
declare function createCustomCommerceEventsApiClient<TFunctions extends Record<string, ApiFunction<AdobeCommerceHttpClient, any[], any>>>(params: CommerceHttpClientParams, functions: TFunctions): void 0<AdobeCommerceHttpClient, TFunctions>;
|
|
315
313
|
//#endregion
|
|
316
314
|
export { type CommerceEventProvider, type CommerceEventProviderManyResponse, type CommerceEventProviderOneResponse, type CommerceEventSubscription, type CommerceEventSubscriptionField, type CommerceEventSubscriptionManyResponse, type CommerceEventSubscriptionOneResponse, type CommerceEventSubscriptionRule, EventProviderCreateParams, EventProviderCreateParamsSchema, EventProviderGetByIdParams, EventProviderGetByIdParamsSchema, EventSubscriptionCreateParams, EventSubscriptionCreateParamsSchema, UpdateEventingConfigurationParams, UpdateEventingConfigurationParamsSchema, createCommerceEventsApiClient, createCustomCommerceEventsApiClient, createEventProvider, createEventSubscription, getAllEventProviders, getAllEventSubscriptions, getEventProviderById, updateEventingConfiguration };
|
|
@@ -11,4 +11,4 @@
|
|
|
11
11
|
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
12
12
|
* governing permissions and limitations under the License.
|
|
13
13
|
*/
|
|
14
|
-
import{
|
|
14
|
+
import{a as isAuthProvider,c as ApiClient,d as booleanValueSchema,f as stringValueSchema,h as __export,i as buildIntegrationAuthBeforeRequestHook,l as alphaNumericOrUnderscoreOrHyphenSchema,m as buildCamelCaseKeysResponseHook,n as ensureImsScopes,o as distribution_default,p as parseOrThrow,r as buildImsAuthBeforeRequestHook,s as HttpClientBase,t as optionallyExtendKy,u as alphaNumericOrUnderscoreSchema}from"../ky-CkAM5Dyz.js";import{CommerceSdkValidationError}from"@adobe/aio-commerce-lib-core/error";import*as v from"valibot";function workspaceConfigurationSchema(propertyName){return v.union([v.pipe(stringValueSchema(propertyName),v.empty()),v.pipe(stringValueSchema(propertyName),v.parseJson(void 0,`Expected valid JSON string for property '${propertyName}'`),v.record(v.string(),v.unknown()),v.stringifyJson()),v.pipe(v.record(v.string(),v.unknown()),v.stringifyJson(void 0,`Expected valid JSON data for property '${propertyName}'`))])}const EventProviderGetByIdParamsSchema=v.object({providerId:stringValueSchema(`providerId`)}),EventProviderCreateParamsSchema=v.object({providerId:stringValueSchema(`providerId`),instanceId:stringValueSchema(`instanceId`),label:v.optional(stringValueSchema(`label`)),description:v.optional(stringValueSchema(`description`)),associatedWorkspaceConfiguration:v.optional(workspaceConfigurationSchema(`associatedWorkspaceConfiguration`))});var endpoints_exports={};__export(endpoints_exports,{createEventProvider:()=>createEventProvider,getAllEventProviders:()=>getAllEventProviders,getEventProviderById:()=>getEventProviderById});async function getAllEventProviders(httpClient,fetchOptions){return httpClient.extend({hooks:{afterResponse:[buildCamelCaseKeysResponseHook()]}}).get(`eventing/eventProvider`,fetchOptions).json()}async function getEventProviderById(httpClient,params,fetchOptions){let validatedParams=parseOrThrow(EventProviderGetByIdParamsSchema,params);return httpClient.extend({hooks:{afterResponse:[buildCamelCaseKeysResponseHook()]}}).get(`eventing/eventProvider/${validatedParams.providerId}`,fetchOptions).json()}async function createEventProvider(httpClient,params,fetchOptions){let validatedParams=parseOrThrow(EventProviderCreateParamsSchema,params);return httpClient.extend({hooks:{afterResponse:[buildCamelCaseKeysResponseHook()]}}).post(`eventing/eventProvider`,{...fetchOptions,json:{eventProvider:{provider_id:validatedParams.providerId,instance_id:validatedParams.instanceId,label:validatedParams.label,description:validatedParams.description,workspace_configuration:validatedParams.associatedWorkspaceConfiguration}}}).json()}function fieldsSchema(propertyName){return v.array(v.object({name:stringValueSchema(`${propertyName}[i].name`)}),`Expected an array of objects with a 'name' property for the property "${propertyName}"`)}const EventSubscriptionCreateParamsSchema=v.object({name:stringValueSchema(`name`),providerId:v.optional(stringValueSchema(`providerId`)),parent:v.optional(stringValueSchema(`parent`)),fields:fieldsSchema(`fields`),destination:v.optional(stringValueSchema(`destination`)),hipaaAuditRequired:v.optional(booleanValueSchema(`hipaaAuditRequired`)),prioritary:v.optional(booleanValueSchema(`prioritary`)),force:v.optional(booleanValueSchema(`force`))});var endpoints_exports$1={};__export(endpoints_exports$1,{createEventSubscription:()=>createEventSubscription,getAllEventSubscriptions:()=>getAllEventSubscriptions});async function getAllEventSubscriptions(httpClient,fetchOptions){return httpClient.extend({hooks:{afterResponse:[buildCamelCaseKeysResponseHook()]}}).get(`eventing/getEventSubscriptions`,fetchOptions).json()}async function createEventSubscription(httpClient,params,fetchOptions){let{force,...event}=parseOrThrow(EventSubscriptionCreateParamsSchema,params);return httpClient.post(`eventing/eventSubscribe`,{...fetchOptions,json:{force,event:{name:event.name,parent:event.parent,fields:event.fields,destination:event.destination,hipaa_audit_required:event.hipaaAuditRequired,priority:event.prioritary,provider_id:event.providerId}}}).json().then(_res=>{})}const UpdateEventingConfigurationParamsSchema=v.partial(v.object({enabled:booleanValueSchema(`enabled`),providerId:alphaNumericOrUnderscoreOrHyphenSchema(`providerId`),instanceId:alphaNumericOrUnderscoreOrHyphenSchema(`instanceId`),merchantId:alphaNumericOrUnderscoreSchema(`merchantId`),environmentId:alphaNumericOrUnderscoreSchema(`environmentId`),workspaceConfiguration:workspaceConfigurationSchema(`workspaceConfiguration`)}));async function updateEventingConfiguration(httpClient,params,fetchOptions){let validatedParams=parseOrThrow(UpdateEventingConfigurationParamsSchema,params);return httpClient.put(`eventing/updateConfiguration`,{...fetchOptions,json:{config:validatedParams}}).json()}const COMMERCE_SAAS_IMS_REQUIRED_SCOPES=[`openid`,`additional_info.projectedProductContext`,`commerce.accs`];function getCommerceUrl(config){let{baseUrl,storeViewCode,version}=config,commerceUrl=new URL(baseUrl.endsWith(`/`)?baseUrl:`${baseUrl}/`),uppercasedVersion=version?.toUpperCase();return config.flavor===`paas`?commerceUrl.pathname+=`rest/${storeViewCode}/${uppercasedVersion}`:config.flavor===`saas`&&(commerceUrl.pathname+=`${uppercasedVersion}`),commerceUrl.toString()}function buildCommerceHttpClientPaaS(params){let{auth,config,fetchOptions}=params,commerceUrl=getCommerceUrl(config),beforeRequestAuthHook=buildIntegrationAuthBeforeRequestHook(auth),httpClient=distribution_default.create({prefixUrl:commerceUrl,hooks:{beforeRequest:[beforeRequestAuthHook]}});return optionallyExtendKy(httpClient,fetchOptions)}function buildCommerceHttpClientSaaS(params){let{auth,config,fetchOptions}=params,commerceUrl=getCommerceUrl(config),beforeRequestAuthHook=isAuthProvider(auth)?buildImsAuthBeforeRequestHook(auth):buildImsAuthBeforeRequestHook(ensureImsScopes(auth,COMMERCE_SAAS_IMS_REQUIRED_SCOPES)),httpClient=distribution_default.create({prefixUrl:commerceUrl,hooks:{beforeRequest:[beforeRequestAuthHook,request=>{request.headers.set(`Store`,config.storeViewCode)}]}});return optionallyExtendKy(httpClient,fetchOptions)}function isPaaSParams(params){return params.config.flavor===`paas`}function isSaaSParams(params){return params.config.flavor===`saas`}function buildCommerceHttpClient(params){let flavor=params.config.flavor;if(isPaaSParams(params))return buildCommerceHttpClientPaaS(params);if(isSaaSParams(params))return buildCommerceHttpClientSaaS(params);throw Error(`Invalid Commerce configuration. Unknown flavor: ${flavor}`)}var AdobeCommerceHttpClient=class extends HttpClientBase{constructor(params){let config={...params.config,storeViewCode:params.config.storeViewCode??`all`,version:params.config.version??`V1`},requiredParams={...params,config},httpClient=buildCommerceHttpClient(requiredParams);super(config,httpClient)}};function createCommerceEventsApiClient(params){return ApiClient.create(new AdobeCommerceHttpClient(params),{...endpoints_exports,...endpoints_exports$1,updateEventingConfiguration})}function createCustomCommerceEventsApiClient(params,functions){return ApiClient.create(new AdobeCommerceHttpClient(params),functions)}export{createCommerceEventsApiClient,createCustomCommerceEventsApiClient,createEventProvider,createEventSubscription,getAllEventProviders,getAllEventSubscriptions,getEventProviderById,updateEventingConfiguration};
|
|
@@ -13,10 +13,9 @@
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
import * as v from "valibot";
|
|
16
|
-
import * as ky4 from "ky";
|
|
17
|
-
import { Options } from "ky";
|
|
18
16
|
import * as type_fest0 from "type-fest";
|
|
19
17
|
import { CamelCasedPropertiesDeep, OmitDeep } from "type-fest";
|
|
18
|
+
import * as ky4 from "ky";
|
|
20
19
|
|
|
21
20
|
//#region source/io-events/api/event-metadata/schema.d.ts
|
|
22
21
|
/** The schema of the parameters received by the GET `providers/:id/eventmetadata` Adobe I/O Events API endpoint. */
|
|
@@ -71,7 +70,7 @@ type CreateEventMetadataForProviderParams = v.InferInput<typeof CreateEventMetad
|
|
|
71
70
|
* @throws A {@link CommerceSdkValidationError} If the parameters are in the wrong format.
|
|
72
71
|
* @throws An {@link HTTPError} If the status code is not 2XX.
|
|
73
72
|
*/
|
|
74
|
-
declare function getAllEventMetadataForProvider(httpClient: AdobeIoEventsHttpClient$3, params: GetAllEventMetadataForProviderParams, fetchOptions?: Options): Promise<{
|
|
73
|
+
declare function getAllEventMetadataForProvider(httpClient: AdobeIoEventsHttpClient$3, params: GetAllEventMetadataForProviderParams, fetchOptions?: Options$2): Promise<{
|
|
75
74
|
embedded: {
|
|
76
75
|
description: string;
|
|
77
76
|
label: string;
|
|
@@ -143,7 +142,7 @@ declare function getAllEventMetadataForProvider(httpClient: AdobeIoEventsHttpCli
|
|
|
143
142
|
* @throws A {@link CommerceSdkValidationError} If the parameters are in the wrong format.
|
|
144
143
|
* @throws An {@link HTTPError} If the status code is not 2XX.
|
|
145
144
|
*/
|
|
146
|
-
declare function getEventMetadataForEventAndProvider(httpClient: AdobeIoEventsHttpClient$3, params: GetEventMetadataForEventAndProviderParams, fetchOptions?: Options): Promise<{
|
|
145
|
+
declare function getEventMetadataForEventAndProvider(httpClient: AdobeIoEventsHttpClient$3, params: GetEventMetadataForEventAndProviderParams, fetchOptions?: Options$2): Promise<{
|
|
147
146
|
description: string;
|
|
148
147
|
label: string;
|
|
149
148
|
eventCode: string;
|
|
@@ -213,7 +212,7 @@ declare function getEventMetadataForEventAndProvider(httpClient: AdobeIoEventsHt
|
|
|
213
212
|
* @throws A {@link CommerceSdkValidationError} If the parameters are in the wrong format.
|
|
214
213
|
* @throws An {@link HTTPError} If the status code is not 2XX.
|
|
215
214
|
*/
|
|
216
|
-
declare function createEventMetadataForProvider(httpClient: AdobeIoEventsHttpClient$3, params: CreateEventMetadataForProviderParams, fetchOptions?: Options): Promise<{
|
|
215
|
+
declare function createEventMetadataForProvider(httpClient: AdobeIoEventsHttpClient$3, params: CreateEventMetadataForProviderParams, fetchOptions?: Options$2): Promise<{
|
|
217
216
|
description: string;
|
|
218
217
|
label: string;
|
|
219
218
|
eventCode: string;
|
|
@@ -322,7 +321,7 @@ type EventProviderCreateParams = v.InferInput<typeof EventProviderCreateParamsSc
|
|
|
322
321
|
* @param params - The parameters to list the event providers with.
|
|
323
322
|
* @param fetchOptions - The {@link Options} to use to make the request.
|
|
324
323
|
*/
|
|
325
|
-
declare function getAllEventProviders(httpClient: AdobeIoEventsHttpClient$2, params: EventProviderListAllParams, fetchOptions?: Options): Promise<{
|
|
324
|
+
declare function getAllEventProviders(httpClient: AdobeIoEventsHttpClient$2, params: EventProviderListAllParams, fetchOptions?: Options$1): Promise<{
|
|
326
325
|
embedded: {
|
|
327
326
|
providers: {
|
|
328
327
|
id: string;
|
|
@@ -446,7 +445,7 @@ declare function getAllEventProviders(httpClient: AdobeIoEventsHttpClient$2, par
|
|
|
446
445
|
* @throws A {@link CommerceSdkValidationError} If the parameters are in the wrong format.
|
|
447
446
|
* @throws An {@link HTTPError} If the status code is not 2XX.
|
|
448
447
|
*/
|
|
449
|
-
declare function getEventProviderById(httpClient: AdobeIoEventsHttpClient$2, params: EventProviderGetByIdParams, fetchOptions?: Options): Promise<{
|
|
448
|
+
declare function getEventProviderById(httpClient: AdobeIoEventsHttpClient$2, params: EventProviderGetByIdParams, fetchOptions?: Options$1): Promise<{
|
|
450
449
|
id: string;
|
|
451
450
|
instanceId?: string | undefined;
|
|
452
451
|
label: string;
|
|
@@ -553,7 +552,7 @@ declare function getEventProviderById(httpClient: AdobeIoEventsHttpClient$2, par
|
|
|
553
552
|
* @throws A {@link CommerceSdkValidationError} If the parameters are in the wrong format.
|
|
554
553
|
* @throws An {@link HTTPError} If the status code is not 2XX.
|
|
555
554
|
*/
|
|
556
|
-
declare function createEventProvider(httpClient: AdobeIoEventsHttpClient$2, params: EventProviderCreateParams, fetchOptions?: Options): Promise<{
|
|
555
|
+
declare function createEventProvider(httpClient: AdobeIoEventsHttpClient$2, params: EventProviderCreateParams, fetchOptions?: Options$1): Promise<{
|
|
557
556
|
id: string;
|
|
558
557
|
instanceId?: string | undefined;
|
|
559
558
|
label: string;
|
|
@@ -2028,7 +2027,7 @@ declare function createAdobeIoEventsApiClient(params: IoEventsHttpClientParams):
|
|
|
2028
2027
|
* @param params - The parameters to build the Adobe I/O Events HTTP client that will communicate with the Adobe I/O Events API.
|
|
2029
2028
|
* @param functions - The API functions to include in the client.
|
|
2030
2029
|
*/
|
|
2031
|
-
declare function createCustomAdobeIoEventsApiClient<TFunctions extends Record<string, ApiFunction<AdobeIoEventsHttpClient,
|
|
2030
|
+
declare function createCustomAdobeIoEventsApiClient<TFunctions extends Record<string, ApiFunction<AdobeIoEventsHttpClient, any[], any>>>(params: IoEventsHttpClientParams, functions: TFunctions): void 0<AdobeIoEventsHttpClient, TFunctions>;
|
|
2032
2031
|
//#endregion
|
|
2033
2032
|
//#region source/io-events/types.d.ts
|
|
2034
2033
|
type HALLink = {
|
|
@@ -11,4 +11,4 @@
|
|
|
11
11
|
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
12
12
|
* governing permissions and limitations under the License.
|
|
13
13
|
*/
|
|
14
|
-
import{
|
|
14
|
+
import{a as isAuthProvider,c as ApiClient,d as booleanValueSchema,f as stringValueSchema,h as __export,m as buildCamelCaseKeysResponseHook,n as ensureImsScopes,o as distribution_default,p as parseOrThrow,r as buildImsAuthBeforeRequestHook,s as HttpClientBase,t as optionallyExtendKy}from"../ky-CkAM5Dyz.js";import*as v from"valibot";const IO_EVENTS_IMS_REQUIRED_SCOPES=[`adobeio_api`];function buildIoEventsHttpClient(params){let{auth,config,fetchOptions}=params,beforeRequestAuthHook=isAuthProvider(auth)?buildImsAuthBeforeRequestHook(auth):buildImsAuthBeforeRequestHook(ensureImsScopes(auth,IO_EVENTS_IMS_REQUIRED_SCOPES)),adobeIoBaseUrl=config.baseUrl,httpClient=distribution_default.create({prefixUrl:adobeIoBaseUrl,headers:{Accept:`application/hal+json`},hooks:{beforeRequest:[beforeRequestAuthHook]}});return optionallyExtendKy(httpClient,fetchOptions)}var AdobeIoEventsHttpClient=class extends HttpClientBase{constructor(params){let config={...params.config,baseUrl:params.config?.baseUrl??`https://api.adobe.io/events`},httpClient=buildIoEventsHttpClient({...params,config});super(config,httpClient)}};const BASE64_ENCODED_STRING_REGEX=/^[A-Za-z0-9+/]*={0,2}$/;function isBase64EncodedString(value){return BASE64_ENCODED_STRING_REGEX.test(value)&&value.length%4==0}function encodeToBase64(value){return Buffer.from(value).toString(`base64`)}function tryDecodeFromBase64(value){return isBase64EncodedString(value)?Buffer.from(value,`base64`).toString(`utf-8`):value}function sampleEventTemplateSchema(fieldName){return v.pipe(v.union([v.pipe(stringValueSchema(fieldName),v.transform(tryDecodeFromBase64),v.parseJson(void 0,`Expected valid JSON string for property '${fieldName}'`),v.record(v.string(),v.unknown()),v.stringifyJson()),v.record(v.string(),v.unknown()),v.array(v.unknown())]),v.stringifyJson(void 0,`Expected valid JSON data for property '${fieldName}'`),v.transform(encodeToBase64))}const GetAllEventMetadataForProviderSchema=v.object({providerId:stringValueSchema(`providerId`)}),GetEventMetadataForEventAndProviderSchema=v.object({eventCode:stringValueSchema(`eventCode`),providerId:stringValueSchema(`providerId`)}),CreateEventMetadataForProviderSchema=v.object({consumerOrgId:stringValueSchema(`consumerOrgId`),projectId:stringValueSchema(`projectId`),workspaceId:stringValueSchema(`workspaceId`),providerId:stringValueSchema(`providerId`),label:stringValueSchema(`label`),description:stringValueSchema(`description`),eventCode:stringValueSchema(`eventCode`),sampleEventTemplate:v.optional(sampleEventTemplateSchema(`sampleEventTemplate`))});var endpoints_exports={};__export(endpoints_exports,{createEventMetadataForProvider:()=>createEventMetadataForProvider,getAllEventMetadataForProvider:()=>getAllEventMetadataForProvider,getEventMetadataForEventAndProvider:()=>getEventMetadataForEventAndProvider});async function getAllEventMetadataForProvider(httpClient,params,fetchOptions){let validatedParams=parseOrThrow(GetAllEventMetadataForProviderSchema,params);return httpClient.extend({hooks:{afterResponse:[buildCamelCaseKeysResponseHook()]}}).get(`providers/${validatedParams.providerId}/eventmetadata`,fetchOptions).json()}async function getEventMetadataForEventAndProvider(httpClient,params,fetchOptions){let validatedParams=parseOrThrow(GetEventMetadataForEventAndProviderSchema,params);return httpClient.extend({hooks:{afterResponse:[buildCamelCaseKeysResponseHook()]}}).get(`providers/${validatedParams.providerId}/eventmetadata/${validatedParams.eventCode}`,fetchOptions).json()}async function createEventMetadataForProvider(httpClient,params,fetchOptions){let validatedParams=parseOrThrow(CreateEventMetadataForProviderSchema,params);return httpClient.extend({hooks:{afterResponse:[buildCamelCaseKeysResponseHook()]}}).post(`${validatedParams.consumerOrgId}/${validatedParams.projectId}/${validatedParams.workspaceId}/providers/${validatedParams.providerId}/eventmetadata`,{...fetchOptions,json:{label:validatedParams.label,description:validatedParams.description,event_code:validatedParams.eventCode,sample_event_template:validatedParams.sampleEventTemplate}}).json()}function setQueryParamIfTruthy(queryParams,key,value){value&&queryParams.set(key,`${value}`)}function setArrayQueryParam(queryParams,key,values){if(values!==void 0&&values.length>0)for(let value of values)queryParams.set(key,`${value}`)}const VALID_EVENT_PROVIDER_TYPES=[`dx_commerce_events`,`3rd_party_custom_events`],VALID_DATA_RESIDENCY_REGIONS=[`va6`,`irl1`],EventProviderTypeSchema=v.picklist(VALID_EVENT_PROVIDER_TYPES),DataResidencyRegionSchema=v.picklist(VALID_DATA_RESIDENCY_REGIONS),EventProviderListAllParamsSchema=v.object({consumerOrgId:stringValueSchema(`consumerOrgId`),withEventMetadata:v.optional(booleanValueSchema(`withEventMetadata`)),filterBy:v.optional(v.object({instanceId:v.optional(stringValueSchema(`instanceId`)),providerTypes:v.optional(v.union([v.array(EventProviderTypeSchema,`Expected an array of event provider types`)]))}))}),EventProviderGetByIdParamsSchema=v.object({providerId:stringValueSchema(`providerId`),withEventMetadata:v.optional(booleanValueSchema(`withEventMetadata`))}),EventProviderCreateParamsSchema=v.object({consumerOrgId:stringValueSchema(`consumerOrgId`),projectId:stringValueSchema(`projectId`),workspaceId:stringValueSchema(`workspaceId`),label:stringValueSchema(`label`),description:v.optional(stringValueSchema(`description`)),docsUrl:v.optional(stringValueSchema(`docsUrl`)),instanceId:v.optional(stringValueSchema(`instanceId`)),providerType:v.optional(EventProviderTypeSchema),dataResidencyRegion:v.optional(DataResidencyRegionSchema)});var endpoints_exports$1={};__export(endpoints_exports$1,{createEventProvider:()=>createEventProvider,getAllEventProviders:()=>getAllEventProviders,getEventProviderById:()=>getEventProviderById});async function getAllEventProviders(httpClient,params,fetchOptions){let validatedParams=parseOrThrow(EventProviderListAllParamsSchema,params),queryParams=new URLSearchParams,{providerTypes=[],instanceId}=validatedParams.filterBy??{};return setArrayQueryParam(queryParams,`providerMetadataIds`,providerTypes),setQueryParamIfTruthy(queryParams,`instanceId`,instanceId),setQueryParamIfTruthy(queryParams,`eventmetadata`,validatedParams.withEventMetadata),httpClient.extend({hooks:{afterResponse:[buildCamelCaseKeysResponseHook()]}}).get(`${validatedParams.consumerOrgId}/providers`,{...fetchOptions,searchParams:queryParams}).json()}async function getEventProviderById(httpClient,params,fetchOptions){let validatedParams=parseOrThrow(EventProviderGetByIdParamsSchema,params),searchParams=new URLSearchParams;return setQueryParamIfTruthy(searchParams,`eventmetadata`,validatedParams.withEventMetadata),httpClient.extend({hooks:{afterResponse:[buildCamelCaseKeysResponseHook()]}}).get(`providers/${params.providerId}`,{...fetchOptions,searchParams}).json()}async function createEventProvider(httpClient,params,fetchOptions){let validatedParams=parseOrThrow(EventProviderCreateParamsSchema,params);return httpClient.extend({hooks:{afterResponse:[buildCamelCaseKeysResponseHook()]}}).post(`${validatedParams.consumerOrgId}/${validatedParams.projectId}/${validatedParams.workspaceId}/providers`,{...fetchOptions,json:{...validatedParams,docs_url:validatedParams.docsUrl,provider_metadata:validatedParams.providerType,instance_id:validatedParams.instanceId,data_residency_region:validatedParams.dataResidencyRegion}}).json()}var shorthands_exports={};__export(shorthands_exports,{create3rdPartyCustomEventProvider:()=>create3rdPartyCustomEventProvider,createCommerceEventProvider:()=>createCommerceEventProvider,getAll3rdPartyCustomEventProviders:()=>getAll3rdPartyCustomEventProviders,getAllCommerceEventProviders:()=>getAllCommerceEventProviders});async function getAllCommerceEventProviders(httpClient,params,fetchOptions){return getAllEventProviders(httpClient,{...params,filterBy:{...params.filterBy,providerTypes:[`dx_commerce_events`]}},fetchOptions)}async function getAll3rdPartyCustomEventProviders(httpClient,params,fetchOptions){return getAllEventProviders(httpClient,{...params,filterBy:{...params.filterBy,providerTypes:[`3rd_party_custom_events`]}},fetchOptions)}async function createCommerceEventProvider(httpClient,params,fetchOptions){return createEventProvider(httpClient,{...params,providerType:`dx_commerce_events`},fetchOptions)}async function create3rdPartyCustomEventProvider(httpClient,params,fetchOptions){return createEventProvider(httpClient,{...params,providerType:`3rd_party_custom_events`},fetchOptions)}function createAdobeIoEventsApiClient(params){return ApiClient.create(new AdobeIoEventsHttpClient(params),{...endpoints_exports$1,...endpoints_exports,...shorthands_exports})}function createCustomAdobeIoEventsApiClient(params,functions){return ApiClient.create(new AdobeIoEventsHttpClient(params),functions)}export{create3rdPartyCustomEventProvider,createAdobeIoEventsApiClient,createCommerceEventProvider,createCustomAdobeIoEventsApiClient,createEventMetadataForProvider,createEventProvider,getAll3rdPartyCustomEventProviders,getAllCommerceEventProviders,getAllEventMetadataForProvider,getAllEventProviders,getEventMetadataForEventAndProvider,getEventProviderById};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*
|
|
4
|
+
* Copyright 2025 Adobe. All rights reserved.
|
|
5
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
7
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
10
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
11
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
12
|
+
* governing permissions and limitations under the License.
|
|
13
|
+
*/
|
|
14
|
+
import{CommerceSdkValidationError}from"@adobe/aio-commerce-lib-core/error";import*as v from"valibot";import{getImsAuthProvider,getIntegrationAuthProvider}from"@adobe/aio-commerce-lib-auth";var __defProp=Object.defineProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})};const UPPERCASE=/[\p{Lu}]/u,LOWERCASE=/[\p{Ll}]/u,LEADING_CAPITAL=/^[\p{Lu}](?![\p{Lu}])/gu,IDENTIFIER=/([\p{Alpha}\p{N}_]|$)/u,SEPARATORS=/[_.\- ]+/,LEADING_SEPARATORS=RegExp(`^`+SEPARATORS.source),SEPARATORS_AND_IDENTIFIER=new RegExp(SEPARATORS.source+IDENTIFIER.source,`gu`),NUMBERS_AND_IDENTIFIER=RegExp(`\\d+`+IDENTIFIER.source,`gu`),preserveCamelCase=(string,toLowerCase,toUpperCase,preserveConsecutiveUppercase$1)=>{let isLastCharLower=!1,isLastCharUpper=!1,isLastLastCharUpper=!1,isLastLastCharPreserved=!1;for(let index=0;index<string.length;index++){let character=string[index];isLastLastCharPreserved=index>2?string[index-3]===`-`:!0,isLastCharLower&&UPPERCASE.test(character)?(string=string.slice(0,index)+`-`+string.slice(index),isLastCharLower=!1,isLastLastCharUpper=isLastCharUpper,isLastCharUpper=!0,index++):isLastCharUpper&&isLastLastCharUpper&&LOWERCASE.test(character)&&(!isLastLastCharPreserved||preserveConsecutiveUppercase$1)?(string=string.slice(0,index-1)+`-`+string.slice(index-1),isLastLastCharUpper=isLastCharUpper,isLastCharUpper=!1,isLastCharLower=!0):(isLastCharLower=toLowerCase(character)===character&&toUpperCase(character)!==character,isLastLastCharUpper=isLastCharUpper,isLastCharUpper=toUpperCase(character)===character&&toLowerCase(character)!==character)}return string},preserveConsecutiveUppercase=(input,toLowerCase)=>(LEADING_CAPITAL.lastIndex=0,input.replaceAll(LEADING_CAPITAL,match=>toLowerCase(match))),postProcess=(input,toUpperCase)=>(SEPARATORS_AND_IDENTIFIER.lastIndex=0,NUMBERS_AND_IDENTIFIER.lastIndex=0,input.replaceAll(NUMBERS_AND_IDENTIFIER,(match,pattern,offset)=>[`_`,`-`].includes(input.charAt(offset+match.length))?match:toUpperCase(match)).replaceAll(SEPARATORS_AND_IDENTIFIER,(_,identifier)=>toUpperCase(identifier)));function camelCase(input,options){if(!(typeof input==`string`||Array.isArray(input)))throw TypeError("Expected the input to be `string | string[]`");if(options={pascalCase:!1,preserveConsecutiveUppercase:!1,...options},input=Array.isArray(input)?input.map(x=>x.trim()).filter(x=>x.length).join(`-`):input.trim(),input.length===0)return``;let toLowerCase=options.locale===!1?string=>string.toLowerCase():string=>string.toLocaleLowerCase(options.locale),toUpperCase=options.locale===!1?string=>string.toUpperCase():string=>string.toLocaleUpperCase(options.locale);return input.length===1?SEPARATORS.test(input)?``:options.pascalCase?toUpperCase(input):toLowerCase(input):(input!==toLowerCase(input)&&(input=preserveCamelCase(input,toLowerCase,toUpperCase,options.preserveConsecutiveUppercase)),input=input.replace(LEADING_SEPARATORS,``),input=options.preserveConsecutiveUppercase?preserveConsecutiveUppercase(input,toLowerCase):toLowerCase(input),options.pascalCase&&(input=toUpperCase(input.charAt(0))+input.slice(1)),postProcess(input,toUpperCase))}function buildObjectKeyTransformerResponseHook(transformer,recursive=!0){let transformObject=obj=>typeof obj!=`object`||!obj?obj:Array.isArray(obj)?recursive?obj.map(transformObject):obj:Object.fromEntries(Object.entries(obj).map(([key,value])=>{let transformedKey=transformer(key),transformedValue=recursive?transformObject(value):value;return[transformedKey,transformedValue]}));return(_req,_opt,response)=>response.json().then(data=>{let transformedData=transformObject(data);return Response.json(transformedData,response)})}function buildCamelCaseKeysResponseHook(){return buildObjectKeyTransformerResponseHook(camelCase)}function parseOrThrow(schema,input){let result=v.safeParse(schema,input);if(!result.success)throw new CommerceSdkValidationError(`Invalid input`,{issues:result.issues});return result.output}const ALPHANUMERIC_OR_UNDERSCORE_REGEX=/^[a-zA-Z0-9_]+$/,ALPHANUMERIC_OR_UNDERSCORE_OR_HYPHEN_REGEX=/^[a-zA-Z0-9_-]+$/;function stringValueSchema(propertyName){return v.string(`Expected a string value for property '${propertyName}'`)}function booleanValueSchema(propertyName){return v.boolean(`Expected a boolean value for property '${propertyName}'`)}function alphaNumericOrUnderscoreSchema(name){return v.pipe(stringValueSchema(name),v.regex(ALPHANUMERIC_OR_UNDERSCORE_REGEX,`Only alphanumeric characters and underscores are allowed for "${name}"`))}function alphaNumericOrUnderscoreOrHyphenSchema(name){return v.pipe(stringValueSchema(name),v.regex(ALPHANUMERIC_OR_UNDERSCORE_OR_HYPHEN_REGEX,`Only alphanumeric characters, underscores, and hyphens are allowed for property "${name}"`))}var ApiClient=class{static create(client,functions){let wrapped={};for(let key in functions)if(Object.hasOwn(functions,key)){let fn=functions[key];wrapped[key]=((...args)=>fn(client,...args))}return wrapped}},HttpClientBase=class HttpClientBase{constructor(config,httpClient){this.config=Object.freeze(config),this.setHttpClient(httpClient)}setHttpClient(httpClient){this.httpClient=Object.freeze(httpClient),this.get=this.httpClient.get.bind(this.httpClient),this.post=this.httpClient.post.bind(this.httpClient),this.put=this.httpClient.put.bind(this.httpClient),this.delete=this.httpClient.delete.bind(this.httpClient),this.patch=this.httpClient.patch.bind(this.httpClient),this.head=this.httpClient.head.bind(this.httpClient),this.stop=this.httpClient.stop}extend(options){let client=Object.freeze(this.httpClient.extend(options));return new HttpClientBase(this.config,client)}},HTTPError=class extends Error{response;request;options;constructor(response,request,options){let code=response.status||response.status===0?response.status:``,title=response.statusText||``,status=`${code} ${title}`.trim(),reason=status?`status code ${status}`:`an unknown error`;super(`Request failed with ${reason}: ${request.method} ${request.url}`),this.name=`HTTPError`,this.response=response,this.request=request,this.options=options}},TimeoutError=class extends Error{request;constructor(request){super(`Request timed out: ${request.method} ${request.url}`),this.name=`TimeoutError`,this.request=request}};const supportsRequestStreams=(()=>{let duplexAccessed=!1,hasContentType=!1,supportsReadableStream=typeof globalThis.ReadableStream==`function`,supportsRequest=typeof globalThis.Request==`function`;if(supportsReadableStream&&supportsRequest)try{hasContentType=new globalThis.Request(`https://empty.invalid`,{body:new globalThis.ReadableStream,method:`POST`,get duplex(){return duplexAccessed=!0,`half`}}).headers.has(`Content-Type`)}catch(error){if(error instanceof Error&&error.message===`unsupported BodyInit type`)return!1;throw error}return duplexAccessed&&!hasContentType})(),supportsAbortController=typeof globalThis.AbortController==`function`,supportsAbortSignal=typeof globalThis.AbortSignal==`function`&&typeof globalThis.AbortSignal.any==`function`,supportsResponseStreams=typeof globalThis.ReadableStream==`function`,supportsFormData=typeof globalThis.FormData==`function`,requestMethods=[`get`,`post`,`put`,`patch`,`head`,`delete`],responseTypes={json:`application/json`,text:`text/*`,formData:`multipart/form-data`,arrayBuffer:`*/*`,blob:`*/*`,bytes:`*/*`},maxSafeTimeout=2147483647,usualFormBoundarySize=new TextEncoder().encode(`------WebKitFormBoundaryaxpyiPgbbPti10Rw`).length,stop=Symbol(`stop`),kyOptionKeys={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,onUploadProgress:!0,fetch:!0},requestOptionsRegistry={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,dispatcher:!0,duplex:!0,priority:!0},getBodySize=body=>{if(!body)return 0;if(body instanceof FormData){let size=0;for(let[key,value]of body)size+=usualFormBoundarySize,size+=new TextEncoder().encode(`Content-Disposition: form-data; name="${key}"`).length,size+=typeof value==`string`?new TextEncoder().encode(value).length:value.size;return size}if(body instanceof Blob)return body.size;if(body instanceof ArrayBuffer)return body.byteLength;if(typeof body==`string`)return new TextEncoder().encode(body).length;if(body instanceof URLSearchParams)return new TextEncoder().encode(body.toString()).length;if(`byteLength`in body)return body.byteLength;if(typeof body==`object`&&body)try{let jsonString=JSON.stringify(body);return new TextEncoder().encode(jsonString).length}catch{return 0}return 0},streamResponse=(response,onDownloadProgress)=>{let totalBytes=Number(response.headers.get(`content-length`))||0,transferredBytes=0;return response.status===204?(onDownloadProgress&&onDownloadProgress({percent:1,totalBytes,transferredBytes},new Uint8Array),new Response(null,{status:response.status,statusText:response.statusText,headers:response.headers})):new Response(new ReadableStream({async start(controller){let reader=response.body.getReader();onDownloadProgress&&onDownloadProgress({percent:0,transferredBytes:0,totalBytes},new Uint8Array);async function read(){let{done,value}=await reader.read();if(done){controller.close();return}if(onDownloadProgress){transferredBytes+=value.byteLength;let percent=totalBytes===0?0:transferredBytes/totalBytes;onDownloadProgress({percent,transferredBytes,totalBytes},value)}controller.enqueue(value),await read()}await read()}}),{status:response.status,statusText:response.statusText,headers:response.headers})},streamRequest=(request,onUploadProgress)=>{let totalBytes=getBodySize(request.body),transferredBytes=0;return new Request(request,{duplex:`half`,body:new ReadableStream({async start(controller){let reader=request.body instanceof ReadableStream?request.body.getReader():new Response(``).body.getReader();async function read(){let{done,value}=await reader.read();if(done){onUploadProgress&&onUploadProgress({percent:1,transferredBytes,totalBytes:Math.max(totalBytes,transferredBytes)},new Uint8Array),controller.close();return}transferredBytes+=value.byteLength;let percent=totalBytes===0?0:transferredBytes/totalBytes;(totalBytes<transferredBytes||percent===1)&&(percent=.99),onUploadProgress&&onUploadProgress({percent:Number(percent.toFixed(2)),transferredBytes,totalBytes},value),controller.enqueue(value),await read()}await read()}})})},isObject=value=>typeof value==`object`&&!!value,validateAndMerge=(...sources)=>{for(let source of sources)if((!isObject(source)||Array.isArray(source))&&source!==void 0)throw TypeError("The `options` argument must be an object");return deepMerge({},...sources)},mergeHeaders=(source1={},source2={})=>{let result=new globalThis.Headers(source1),isHeadersInstance=source2 instanceof globalThis.Headers,source=new globalThis.Headers(source2);for(let[key,value]of source.entries())isHeadersInstance&&value===`undefined`||value===void 0?result.delete(key):result.set(key,value);return result};function newHookValue(original,incoming,property){return Object.hasOwn(incoming,property)&&incoming[property]===void 0?[]:deepMerge(original[property]??[],incoming[property]??[])}const mergeHooks=(original={},incoming={})=>({beforeRequest:newHookValue(original,incoming,`beforeRequest`),beforeRetry:newHookValue(original,incoming,`beforeRetry`),afterResponse:newHookValue(original,incoming,`afterResponse`),beforeError:newHookValue(original,incoming,`beforeError`)}),deepMerge=(...sources)=>{let returnValue={},headers={},hooks={};for(let source of sources)if(Array.isArray(source))Array.isArray(returnValue)||(returnValue=[]),returnValue=[...returnValue,...source];else if(isObject(source)){for(let[key,value]of Object.entries(source))isObject(value)&&key in returnValue&&(value=deepMerge(returnValue[key],value)),returnValue={...returnValue,[key]:value};isObject(source.hooks)&&(hooks=mergeHooks(hooks,source.hooks),returnValue.hooks=hooks),isObject(source.headers)&&(headers=mergeHeaders(headers,source.headers),returnValue.headers=headers)}return returnValue},normalizeRequestMethod=input=>requestMethods.includes(input)?input.toUpperCase():input,defaultRetryOptions={limit:2,methods:[`get`,`put`,`head`,`delete`,`options`,`trace`],statusCodes:[408,413,429,500,502,503,504],afterStatusCodes:[413,429,503],maxRetryAfter:1/0,backoffLimit:1/0,delay:attemptCount=>.3*2**(attemptCount-1)*1e3},normalizeRetryOptions=(retry={})=>{if(typeof retry==`number`)return{...defaultRetryOptions,limit:retry};if(retry.methods&&!Array.isArray(retry.methods))throw Error(`retry.methods must be an array`);if(retry.statusCodes&&!Array.isArray(retry.statusCodes))throw Error(`retry.statusCodes must be an array`);return{...defaultRetryOptions,...retry}};async function timeout(request,init,abortController,options){return new Promise((resolve,reject)=>{let timeoutId=setTimeout(()=>{abortController&&abortController.abort(),reject(new TimeoutError(request))},options.timeout);options.fetch(request,init).then(resolve).catch(reject).then(()=>{clearTimeout(timeoutId)})})}async function delay(ms,{signal}){return new Promise((resolve,reject)=>{signal&&(signal.throwIfAborted(),signal.addEventListener(`abort`,abortHandler,{once:!0}));function abortHandler(){clearTimeout(timeoutId),reject(signal.reason)}let timeoutId=setTimeout(()=>{signal?.removeEventListener(`abort`,abortHandler),resolve()},ms)})}const findUnknownOptions=(request,options)=>{let unknownOptions={};for(let key in options)!(key in requestOptionsRegistry)&&!(key in kyOptionKeys)&&!(key in request)&&(unknownOptions[key]=options[key]);return unknownOptions},hasSearchParameters=search=>search===void 0?!1:Array.isArray(search)?search.length>0:search instanceof URLSearchParams?search.size>0:typeof search==`object`?Object.keys(search).length>0:typeof search==`string`?search.trim().length>0:!!search;var Ky=class Ky{static create(input,options){let ky$1=new Ky(input,options),function_=async()=>{if(typeof ky$1._options.timeout==`number`&&ky$1._options.timeout>maxSafeTimeout)throw RangeError(`The \`timeout\` option cannot be greater than ${maxSafeTimeout}`);await Promise.resolve();let response=await ky$1._fetch();for(let hook of ky$1._options.hooks.afterResponse){let modifiedResponse=await hook(ky$1.request,ky$1._options,ky$1._decorateResponse(response.clone()));modifiedResponse instanceof globalThis.Response&&(response=modifiedResponse)}if(ky$1._decorateResponse(response),!response.ok&&ky$1._options.throwHttpErrors){let error=new HTTPError(response,ky$1.request,ky$1._options);for(let hook of ky$1._options.hooks.beforeError)error=await hook(error);throw error}if(ky$1._options.onDownloadProgress){if(typeof ky$1._options.onDownloadProgress!=`function`)throw TypeError("The `onDownloadProgress` option must be a function");if(!supportsResponseStreams)throw Error("Streams are not supported in your environment. `ReadableStream` is missing.");return streamResponse(response.clone(),ky$1._options.onDownloadProgress)}return response},result=(ky$1._options.retry.methods.includes(ky$1.request.method.toLowerCase())?ky$1._retry(function_):function_()).finally(async()=>{ky$1.request.bodyUsed||await ky$1.request.body?.cancel()});for(let[type,mimeType]of Object.entries(responseTypes)){if(type===`bytes`&&typeof globalThis.Response?.prototype?.bytes!=`function`)continue;result[type]=async()=>{ky$1.request.headers.set(`accept`,ky$1.request.headers.get(`accept`)||mimeType);let response=await result;if(type===`json`){if(response.status===204||(await response.clone().arrayBuffer()).byteLength===0)return``;if(options.parseJson)return options.parseJson(await response.text())}return response[type]()}}return result}request;abortController;_retryCount=0;_input;_options;constructor(input,options={}){if(this._input=input,this._options={...options,headers:mergeHeaders(this._input.headers,options.headers),hooks:mergeHooks({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},options.hooks),method:normalizeRequestMethod(options.method??this._input.method??`GET`),prefixUrl:String(options.prefixUrl||``),retry:normalizeRetryOptions(options.retry),throwHttpErrors:options.throwHttpErrors!==!1,timeout:options.timeout??1e4,fetch:options.fetch??globalThis.fetch.bind(globalThis)},typeof this._input!=`string`&&!(this._input instanceof URL||this._input instanceof globalThis.Request))throw TypeError("`input` must be a string, URL, or Request");if(this._options.prefixUrl&&typeof this._input==`string`){if(this._input.startsWith(`/`))throw Error("`input` must not begin with a slash when using `prefixUrl`");this._options.prefixUrl.endsWith(`/`)||(this._options.prefixUrl+=`/`),this._input=this._options.prefixUrl+this._input}if(supportsAbortController&&supportsAbortSignal){let originalSignal=this._options.signal??this._input.signal;this.abortController=new globalThis.AbortController,this._options.signal=originalSignal?AbortSignal.any([originalSignal,this.abortController.signal]):this.abortController.signal}if(supportsRequestStreams&&(this._options.duplex=`half`),this._options.json!==void 0&&(this._options.body=this._options.stringifyJson?.(this._options.json)??JSON.stringify(this._options.json),this._options.headers.set(`content-type`,this._options.headers.get(`content-type`)??`application/json`)),this.request=new globalThis.Request(this._input,this._options),hasSearchParameters(this._options.searchParams)){let searchParams=`?`+(typeof this._options.searchParams==`string`?this._options.searchParams.replace(/^\?/,``):new URLSearchParams(this._options.searchParams).toString()),url=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,searchParams);(supportsFormData&&this._options.body instanceof globalThis.FormData||this._options.body instanceof URLSearchParams)&&!(this._options.headers&&this._options.headers[`content-type`])&&this.request.headers.delete(`content-type`),this.request=new globalThis.Request(new globalThis.Request(url,{...this.request}),this._options)}if(this._options.onUploadProgress){if(typeof this._options.onUploadProgress!=`function`)throw TypeError("The `onUploadProgress` option must be a function");if(!supportsRequestStreams)throw Error("Request streams are not supported in your environment. The `duplex` option for `Request` is not available.");this.request.body&&(this.request=streamRequest(this.request,this._options.onUploadProgress))}}_calculateRetryDelay(error){if(this._retryCount++,this._retryCount>this._options.retry.limit||error instanceof TimeoutError)throw error;if(error instanceof HTTPError){if(!this._options.retry.statusCodes.includes(error.response.status))throw error;let retryAfter=error.response.headers.get(`Retry-After`)??error.response.headers.get(`RateLimit-Reset`)??error.response.headers.get(`X-RateLimit-Reset`)??error.response.headers.get(`X-Rate-Limit-Reset`);if(retryAfter&&this._options.retry.afterStatusCodes.includes(error.response.status)){let after=Number(retryAfter)*1e3;Number.isNaN(after)?after=Date.parse(retryAfter)-Date.now():after>=Date.parse(`2024-01-01`)&&(after-=Date.now());let max=this._options.retry.maxRetryAfter??after;return after<max?after:max}if(error.response.status===413)throw error}let retryDelay=this._options.retry.delay(this._retryCount);return Math.min(this._options.retry.backoffLimit,retryDelay)}_decorateResponse(response){return this._options.parseJson&&(response.json=async()=>this._options.parseJson(await response.text())),response}async _retry(function_){try{return await function_()}catch(error){let ms=Math.min(this._calculateRetryDelay(error),maxSafeTimeout);if(this._retryCount<1)throw error;await delay(ms,{signal:this._options.signal});for(let hook of this._options.hooks.beforeRetry)if(await hook({request:this.request,options:this._options,error,retryCount:this._retryCount})===stop)return;return this._retry(function_)}}async _fetch(){for(let hook of this._options.hooks.beforeRequest){let result=await hook(this.request,this._options);if(result instanceof Request){this.request=result;break}if(result instanceof Response)return result}let nonRequestOptions=findUnknownOptions(this.request,this._options),mainRequest=this.request;return this.request=mainRequest.clone(),this._options.timeout===!1?this._options.fetch(mainRequest,nonRequestOptions):timeout(mainRequest,nonRequestOptions,this.abortController,this._options)}};const createInstance=defaults=>{let ky$1=(input,options)=>Ky.create(input,validateAndMerge(defaults,options));for(let method of requestMethods)ky$1[method]=(input,options)=>Ky.create(input,validateAndMerge(defaults,options,{method}));return ky$1.create=newDefaults=>createInstance(validateAndMerge(newDefaults)),ky$1.extend=newDefaults=>(typeof newDefaults==`function`&&(newDefaults=newDefaults(defaults??{})),createInstance(validateAndMerge(defaults,newDefaults))),ky$1.stop=stop,ky$1};var distribution_default=createInstance();function isAuthProvider(auth){return`getHeaders`in auth}function buildIntegrationAuthBeforeRequestHook(integrationAuth){let integrationAuthProvider=isAuthProvider(integrationAuth)?integrationAuth:getIntegrationAuthProvider(integrationAuth);return request=>{let headers=integrationAuthProvider.getHeaders(request.method.toUpperCase(),request.url);request.headers.set(`Authorization`,headers.Authorization)}}function buildImsAuthBeforeRequestHook(imsAuth){let imsAuthProvider=isAuthProvider(imsAuth)?imsAuth:getImsAuthProvider(imsAuth);return async request=>{let headers=await imsAuthProvider.getHeaders();request.headers.set(`Authorization`,headers.Authorization),request.headers.set(`x-api-key`,headers[`x-api-key`])}}function ensureImsScopes(imsAuth,requiredScopes){let scopes=new Set([...imsAuth.scopes??[],...requiredScopes]);return{...imsAuth,scopes:Array.from(scopes)}}function optionallyExtendKy(ky$1,options){return options?ky$1.extend(options):ky$1}export{isAuthProvider as a,ApiClient as c,booleanValueSchema as d,stringValueSchema as f,__export as h,buildIntegrationAuthBeforeRequestHook as i,alphaNumericOrUnderscoreOrHyphenSchema as l,buildCamelCaseKeysResponseHook as m,ensureImsScopes as n,distribution_default as o,parseOrThrow as p,buildImsAuthBeforeRequestHook as r,HttpClientBase as s,optionallyExtendKy as t,alphaNumericOrUnderscoreSchema as u};
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@adobe/aio-commerce-lib-events",
|
|
3
3
|
"type": "module",
|
|
4
4
|
"author": "Adobe Inc.",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.2.0",
|
|
6
6
|
"private": false,
|
|
7
7
|
"engines": {
|
|
8
8
|
"node": ">=20 <=24"
|
|
@@ -34,6 +34,16 @@
|
|
|
34
34
|
},
|
|
35
35
|
"./package.json": "./package.json"
|
|
36
36
|
},
|
|
37
|
+
"imports": {
|
|
38
|
+
"#*": [
|
|
39
|
+
"./source/*.ts",
|
|
40
|
+
"./source/*/index.ts"
|
|
41
|
+
],
|
|
42
|
+
"#test/*": [
|
|
43
|
+
"./test/*.ts",
|
|
44
|
+
"./test/*/index.ts"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
37
47
|
"files": [
|
|
38
48
|
"dist",
|
|
39
49
|
"package.json",
|
|
@@ -41,17 +51,17 @@
|
|
|
41
51
|
"README.md"
|
|
42
52
|
],
|
|
43
53
|
"dependencies": {
|
|
44
|
-
"ky": "^1.9.0",
|
|
45
54
|
"valibot": "^1.1.0",
|
|
46
|
-
"@adobe/aio-commerce-lib-auth": "0.
|
|
55
|
+
"@adobe/aio-commerce-lib-auth": "0.4.0",
|
|
47
56
|
"@adobe/aio-commerce-lib-core": "0.4.1"
|
|
48
57
|
},
|
|
49
58
|
"devDependencies": {
|
|
50
|
-
"
|
|
51
|
-
"@aio-commerce-sdk/
|
|
59
|
+
"msw": "^2.11.1",
|
|
60
|
+
"@aio-commerce-sdk/aio-commerce-lib-api": "0.1.1",
|
|
52
61
|
"@aio-commerce-sdk/config-typedoc": "1.0.0",
|
|
53
|
-
"@aio-commerce-sdk/config-
|
|
54
|
-
"@aio-commerce-sdk/config-
|
|
62
|
+
"@aio-commerce-sdk/config-typescript": "1.0.0",
|
|
63
|
+
"@aio-commerce-sdk/config-tsdown": "1.0.0",
|
|
64
|
+
"@aio-commerce-sdk/config-vitest": "1.0.0"
|
|
55
65
|
},
|
|
56
66
|
"sideEffects": false,
|
|
57
67
|
"scripts": {
|
|
@@ -66,7 +76,8 @@
|
|
|
66
76
|
"lint": "biome lint --no-errors-on-unmatched",
|
|
67
77
|
"lint:fix": "biome lint --write --no-errors-on-unmatched",
|
|
68
78
|
"typecheck": "tsc --noEmit && echo '✅ No type errors found.'",
|
|
69
|
-
"test": "vitest run",
|
|
70
|
-
"test:
|
|
79
|
+
"test": "vitest run --coverage",
|
|
80
|
+
"test:ui": "vitest --ui --coverage",
|
|
81
|
+
"test:watch": "vitest --watch --coverage"
|
|
71
82
|
}
|
|
72
83
|
}
|
package/dist/cjs/ky-Rubdb7BL.cjs
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
*
|
|
4
|
-
* Copyright 2025 Adobe. All rights reserved.
|
|
5
|
-
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
7
|
-
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
*
|
|
9
|
-
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
10
|
-
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
11
|
-
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
12
|
-
* governing permissions and limitations under the License.
|
|
13
|
-
*/
|
|
14
|
-
var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from==`object`||typeof from==`function`)for(var keys=__getOwnPropNames(from),i=0,n=keys.length,key;i<n;i++)key=keys[i],!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:(k=>from[k]).bind(null,key),enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toESM=(mod,isNodeMode,target)=>(target=mod==null?{}:__create(__getProtoOf(mod)),__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,`default`,{value:mod,enumerable:!0}):target,mod));const __adobe_aio_commerce_lib_core_error=__toESM(require(`@adobe/aio-commerce-lib-core/error`)),valibot=__toESM(require(`valibot`)),__adobe_aio_commerce_lib_auth=__toESM(require(`@adobe/aio-commerce-lib-auth`)),UPPERCASE=/[\p{Lu}]/u,LOWERCASE=/[\p{Ll}]/u,LEADING_CAPITAL=/^[\p{Lu}](?![\p{Lu}])/gu,IDENTIFIER=/([\p{Alpha}\p{N}_]|$)/u,SEPARATORS=/[_.\- ]+/,LEADING_SEPARATORS=RegExp(`^`+SEPARATORS.source),SEPARATORS_AND_IDENTIFIER=new RegExp(SEPARATORS.source+IDENTIFIER.source,`gu`),NUMBERS_AND_IDENTIFIER=RegExp(`\\d+`+IDENTIFIER.source,`gu`),preserveCamelCase=(string,toLowerCase,toUpperCase,preserveConsecutiveUppercase$1)=>{let isLastCharLower=!1,isLastCharUpper=!1,isLastLastCharUpper=!1,isLastLastCharPreserved=!1;for(let index=0;index<string.length;index++){let character=string[index];isLastLastCharPreserved=index>2?string[index-3]===`-`:!0,isLastCharLower&&UPPERCASE.test(character)?(string=string.slice(0,index)+`-`+string.slice(index),isLastCharLower=!1,isLastLastCharUpper=isLastCharUpper,isLastCharUpper=!0,index++):isLastCharUpper&&isLastLastCharUpper&&LOWERCASE.test(character)&&(!isLastLastCharPreserved||preserveConsecutiveUppercase$1)?(string=string.slice(0,index-1)+`-`+string.slice(index-1),isLastLastCharUpper=isLastCharUpper,isLastCharUpper=!1,isLastCharLower=!0):(isLastCharLower=toLowerCase(character)===character&&toUpperCase(character)!==character,isLastLastCharUpper=isLastCharUpper,isLastCharUpper=toUpperCase(character)===character&&toLowerCase(character)!==character)}return string},preserveConsecutiveUppercase=(input,toLowerCase)=>(LEADING_CAPITAL.lastIndex=0,input.replaceAll(LEADING_CAPITAL,match=>toLowerCase(match))),postProcess=(input,toUpperCase)=>(SEPARATORS_AND_IDENTIFIER.lastIndex=0,NUMBERS_AND_IDENTIFIER.lastIndex=0,input.replaceAll(NUMBERS_AND_IDENTIFIER,(match,pattern,offset)=>[`_`,`-`].includes(input.charAt(offset+match.length))?match:toUpperCase(match)).replaceAll(SEPARATORS_AND_IDENTIFIER,(_,identifier)=>toUpperCase(identifier)));function camelCase(input,options){if(!(typeof input==`string`||Array.isArray(input)))throw TypeError("Expected the input to be `string | string[]`");if(options={pascalCase:!1,preserveConsecutiveUppercase:!1,...options},input=Array.isArray(input)?input.map(x=>x.trim()).filter(x=>x.length).join(`-`):input.trim(),input.length===0)return``;let toLowerCase=options.locale===!1?string=>string.toLowerCase():string=>string.toLocaleLowerCase(options.locale),toUpperCase=options.locale===!1?string=>string.toUpperCase():string=>string.toLocaleUpperCase(options.locale);if(input.length===1)return SEPARATORS.test(input)?``:options.pascalCase?toUpperCase(input):toLowerCase(input);let hasUpperCase=input!==toLowerCase(input);return hasUpperCase&&(input=preserveCamelCase(input,toLowerCase,toUpperCase,options.preserveConsecutiveUppercase)),input=input.replace(LEADING_SEPARATORS,``),input=options.preserveConsecutiveUppercase?preserveConsecutiveUppercase(input,toLowerCase):toLowerCase(input),options.pascalCase&&(input=toUpperCase(input.charAt(0))+input.slice(1)),postProcess(input,toUpperCase)}function buildObjectKeyTransformerResponseHook(transformer,recursive=!0){let transformObject=obj=>{if(typeof obj!=`object`||!obj)return obj;if(Array.isArray(obj))return recursive?obj.map(transformObject):obj;let transformedData=Object.fromEntries(Object.entries(obj).map(([key,value])=>{let transformedKey=transformer(key),transformedValue=recursive?transformObject(value):value;return[transformedKey,transformedValue]}));return transformedData};return(_req,_opt,response)=>response.json().then(data=>{let transformedData=transformObject(data);return new Response(JSON.stringify(transformedData),response)})}function buildCamelCaseKeysResponseHook(){return buildObjectKeyTransformerResponseHook(camelCase)}function parseOrThrow(schema,input){let result=valibot.safeParse(schema,input);if(!result.success)throw new __adobe_aio_commerce_lib_core_error.CommerceSdkValidationError(`Invalid input`,{issues:result.issues});return result.output}const ALPHANUMERIC_OR_UNDERSCORE_REGEX=/^[a-zA-Z0-9_]+$/,ALPHANUMERIC_OR_UNDERSCORE_OR_HYPHEN_REGEX=/^[a-zA-Z0-9_-]+$/;function stringValueSchema(propertyName){return valibot.string(`Expected a string value for property '${propertyName}'`)}function booleanValueSchema(propertyName){return valibot.boolean(`Expected a boolean value for property '${propertyName}'`)}function alphaNumericOrUnderscoreSchema(name){return valibot.pipe(stringValueSchema(name),valibot.regex(ALPHANUMERIC_OR_UNDERSCORE_REGEX,`Only alphanumeric characters and underscores are allowed for "${name}"`))}function alphaNumericOrUnderscoreOrHyphenSchema(name){return valibot.pipe(stringValueSchema(name),valibot.regex(ALPHANUMERIC_OR_UNDERSCORE_OR_HYPHEN_REGEX,`Only alphanumeric characters, underscores, and hyphens are allowed for property "${name}"`))}var ApiClient=class{static create(client,functions){let wrapped={};for(let key in functions)if(Object.hasOwn(functions,key)){let fn=functions[key];wrapped[key]=((...args)=>fn(client,...args))}return wrapped}},HttpClientBase=class HttpClientBase{#httpClient;constructor(config,httpClient){this.#httpClient=Object.freeze(httpClient),this.config=Object.freeze(config),this.get=this.#httpClient.get.bind(this.#httpClient),this.post=this.#httpClient.post.bind(this.#httpClient),this.put=this.#httpClient.put.bind(this.#httpClient),this.delete=this.#httpClient.delete.bind(this.#httpClient),this.patch=this.#httpClient.patch.bind(this.#httpClient),this.head=this.#httpClient.head.bind(this.#httpClient),this.stop=this.#httpClient.stop}extend(options){let client=Object.freeze(this.#httpClient.extend(options));return new HttpClientBase(this.config,client)}};function isAuthProvider(auth){return`getHeaders`in auth}function buildIntegrationAuthBeforeRequestHook(integrationAuth){let integrationAuthProvider=isAuthProvider(integrationAuth)?integrationAuth:(0,__adobe_aio_commerce_lib_auth.getIntegrationAuthProvider)(integrationAuth);return request=>{let headers=integrationAuthProvider.getHeaders(request.method.toUpperCase(),request.url);request.headers.set(`Authorization`,headers.Authorization)}}function buildImsAuthBeforeRequestHook(imsAuth){let imsAuthProvider=isAuthProvider(imsAuth)?imsAuth:(0,__adobe_aio_commerce_lib_auth.getImsAuthProvider)(imsAuth);return async request=>{let headers=await imsAuthProvider.getHeaders();request.headers.set(`Authorization`,headers.Authorization),request.headers.set(`x-api-key`,headers[`x-api-key`])}}function ensureImsScopes(imsAuth,requiredScopes){let scopes=new Set([...imsAuth.scopes??[],...requiredScopes]);return{...imsAuth,scopes:Array.from(scopes)}}function optionallyExtendKy(ky,options){return options?ky.extend(options):ky}Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return optionallyExtendKy}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return ensureImsScopes}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return buildImsAuthBeforeRequestHook}}),Object.defineProperty(exports,`e`,{enumerable:!0,get:function(){return buildIntegrationAuthBeforeRequestHook}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return isAuthProvider}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return HttpClientBase}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return ApiClient}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return alphaNumericOrUnderscoreOrHyphenSchema}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return alphaNumericOrUnderscoreSchema}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return booleanValueSchema}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return stringValueSchema}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return parseOrThrow}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return buildCamelCaseKeysResponseHook}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return __export}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return __toESM}});
|
package/dist/es/ky-6HcrUVIg.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
*
|
|
4
|
-
* Copyright 2025 Adobe. All rights reserved.
|
|
5
|
-
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
7
|
-
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
*
|
|
9
|
-
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
10
|
-
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
11
|
-
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
12
|
-
* governing permissions and limitations under the License.
|
|
13
|
-
*/
|
|
14
|
-
import{CommerceSdkValidationError}from"@adobe/aio-commerce-lib-core/error";import*as v from"valibot";import{getImsAuthProvider,getIntegrationAuthProvider}from"@adobe/aio-commerce-lib-auth";var __defProp=Object.defineProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})};const UPPERCASE=/[\p{Lu}]/u,LOWERCASE=/[\p{Ll}]/u,LEADING_CAPITAL=/^[\p{Lu}](?![\p{Lu}])/gu,IDENTIFIER=/([\p{Alpha}\p{N}_]|$)/u,SEPARATORS=/[_.\- ]+/,LEADING_SEPARATORS=RegExp(`^`+SEPARATORS.source),SEPARATORS_AND_IDENTIFIER=new RegExp(SEPARATORS.source+IDENTIFIER.source,`gu`),NUMBERS_AND_IDENTIFIER=RegExp(`\\d+`+IDENTIFIER.source,`gu`),preserveCamelCase=(string,toLowerCase,toUpperCase,preserveConsecutiveUppercase$1)=>{let isLastCharLower=!1,isLastCharUpper=!1,isLastLastCharUpper=!1,isLastLastCharPreserved=!1;for(let index=0;index<string.length;index++){let character=string[index];isLastLastCharPreserved=index>2?string[index-3]===`-`:!0,isLastCharLower&&UPPERCASE.test(character)?(string=string.slice(0,index)+`-`+string.slice(index),isLastCharLower=!1,isLastLastCharUpper=isLastCharUpper,isLastCharUpper=!0,index++):isLastCharUpper&&isLastLastCharUpper&&LOWERCASE.test(character)&&(!isLastLastCharPreserved||preserveConsecutiveUppercase$1)?(string=string.slice(0,index-1)+`-`+string.slice(index-1),isLastLastCharUpper=isLastCharUpper,isLastCharUpper=!1,isLastCharLower=!0):(isLastCharLower=toLowerCase(character)===character&&toUpperCase(character)!==character,isLastLastCharUpper=isLastCharUpper,isLastCharUpper=toUpperCase(character)===character&&toLowerCase(character)!==character)}return string},preserveConsecutiveUppercase=(input,toLowerCase)=>(LEADING_CAPITAL.lastIndex=0,input.replaceAll(LEADING_CAPITAL,match=>toLowerCase(match))),postProcess=(input,toUpperCase)=>(SEPARATORS_AND_IDENTIFIER.lastIndex=0,NUMBERS_AND_IDENTIFIER.lastIndex=0,input.replaceAll(NUMBERS_AND_IDENTIFIER,(match,pattern,offset)=>[`_`,`-`].includes(input.charAt(offset+match.length))?match:toUpperCase(match)).replaceAll(SEPARATORS_AND_IDENTIFIER,(_,identifier)=>toUpperCase(identifier)));function camelCase(input,options){if(!(typeof input==`string`||Array.isArray(input)))throw TypeError("Expected the input to be `string | string[]`");if(options={pascalCase:!1,preserveConsecutiveUppercase:!1,...options},input=Array.isArray(input)?input.map(x=>x.trim()).filter(x=>x.length).join(`-`):input.trim(),input.length===0)return``;let toLowerCase=options.locale===!1?string=>string.toLowerCase():string=>string.toLocaleLowerCase(options.locale),toUpperCase=options.locale===!1?string=>string.toUpperCase():string=>string.toLocaleUpperCase(options.locale);if(input.length===1)return SEPARATORS.test(input)?``:options.pascalCase?toUpperCase(input):toLowerCase(input);let hasUpperCase=input!==toLowerCase(input);return hasUpperCase&&(input=preserveCamelCase(input,toLowerCase,toUpperCase,options.preserveConsecutiveUppercase)),input=input.replace(LEADING_SEPARATORS,``),input=options.preserveConsecutiveUppercase?preserveConsecutiveUppercase(input,toLowerCase):toLowerCase(input),options.pascalCase&&(input=toUpperCase(input.charAt(0))+input.slice(1)),postProcess(input,toUpperCase)}function buildObjectKeyTransformerResponseHook(transformer,recursive=!0){let transformObject=obj=>{if(typeof obj!=`object`||!obj)return obj;if(Array.isArray(obj))return recursive?obj.map(transformObject):obj;let transformedData=Object.fromEntries(Object.entries(obj).map(([key,value])=>{let transformedKey=transformer(key),transformedValue=recursive?transformObject(value):value;return[transformedKey,transformedValue]}));return transformedData};return(_req,_opt,response)=>response.json().then(data=>{let transformedData=transformObject(data);return new Response(JSON.stringify(transformedData),response)})}function buildCamelCaseKeysResponseHook(){return buildObjectKeyTransformerResponseHook(camelCase)}function parseOrThrow(schema,input){let result=v.safeParse(schema,input);if(!result.success)throw new CommerceSdkValidationError(`Invalid input`,{issues:result.issues});return result.output}const ALPHANUMERIC_OR_UNDERSCORE_REGEX=/^[a-zA-Z0-9_]+$/,ALPHANUMERIC_OR_UNDERSCORE_OR_HYPHEN_REGEX=/^[a-zA-Z0-9_-]+$/;function stringValueSchema(propertyName){return v.string(`Expected a string value for property '${propertyName}'`)}function booleanValueSchema(propertyName){return v.boolean(`Expected a boolean value for property '${propertyName}'`)}function alphaNumericOrUnderscoreSchema(name){return v.pipe(stringValueSchema(name),v.regex(ALPHANUMERIC_OR_UNDERSCORE_REGEX,`Only alphanumeric characters and underscores are allowed for "${name}"`))}function alphaNumericOrUnderscoreOrHyphenSchema(name){return v.pipe(stringValueSchema(name),v.regex(ALPHANUMERIC_OR_UNDERSCORE_OR_HYPHEN_REGEX,`Only alphanumeric characters, underscores, and hyphens are allowed for property "${name}"`))}var ApiClient=class{static create(client,functions){let wrapped={};for(let key in functions)if(Object.hasOwn(functions,key)){let fn=functions[key];wrapped[key]=((...args)=>fn(client,...args))}return wrapped}},HttpClientBase=class HttpClientBase{#httpClient;constructor(config,httpClient){this.#httpClient=Object.freeze(httpClient),this.config=Object.freeze(config),this.get=this.#httpClient.get.bind(this.#httpClient),this.post=this.#httpClient.post.bind(this.#httpClient),this.put=this.#httpClient.put.bind(this.#httpClient),this.delete=this.#httpClient.delete.bind(this.#httpClient),this.patch=this.#httpClient.patch.bind(this.#httpClient),this.head=this.#httpClient.head.bind(this.#httpClient),this.stop=this.#httpClient.stop}extend(options){let client=Object.freeze(this.#httpClient.extend(options));return new HttpClientBase(this.config,client)}};function isAuthProvider(auth){return`getHeaders`in auth}function buildIntegrationAuthBeforeRequestHook(integrationAuth){let integrationAuthProvider=isAuthProvider(integrationAuth)?integrationAuth:getIntegrationAuthProvider(integrationAuth);return request=>{let headers=integrationAuthProvider.getHeaders(request.method.toUpperCase(),request.url);request.headers.set(`Authorization`,headers.Authorization)}}function buildImsAuthBeforeRequestHook(imsAuth){let imsAuthProvider=isAuthProvider(imsAuth)?imsAuth:getImsAuthProvider(imsAuth);return async request=>{let headers=await imsAuthProvider.getHeaders();request.headers.set(`Authorization`,headers.Authorization),request.headers.set(`x-api-key`,headers[`x-api-key`])}}function ensureImsScopes(imsAuth,requiredScopes){let scopes=new Set([...imsAuth.scopes??[],...requiredScopes]);return{...imsAuth,scopes:Array.from(scopes)}}function optionallyExtendKy(ky,options){return options?ky.extend(options):ky}export{optionallyExtendKy as b,ensureImsScopes as c,buildImsAuthBeforeRequestHook as d,buildIntegrationAuthBeforeRequestHook as e,isAuthProvider as f,HttpClientBase as g,ApiClient as h,alphaNumericOrUnderscoreOrHyphenSchema as i,alphaNumericOrUnderscoreSchema as j,booleanValueSchema as k,stringValueSchema as l,parseOrThrow as m,buildCamelCaseKeysResponseHook as n,__export as o};
|