@commercelayer/provisioning-sdk 1.0.4 → 2.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/lib/index.d.mts +665 -0
  2. package/lib/index.d.ts +665 -0
  3. package/lib/index.js +1 -0
  4. package/lib/index.mjs +1 -0
  5. package/package.json +22 -26
  6. package/lib/cjs/api.d.ts +0 -43
  7. package/lib/cjs/api.js +0 -45
  8. package/lib/cjs/client.d.ts +0 -42
  9. package/lib/cjs/client.js +0 -149
  10. package/lib/cjs/commercelayer.d.ts +0 -39
  11. package/lib/cjs/commercelayer.js +0 -130
  12. package/lib/cjs/common.d.ts +0 -5
  13. package/lib/cjs/common.js +0 -12
  14. package/lib/cjs/config.d.ts +0 -15
  15. package/lib/cjs/config.js +0 -19
  16. package/lib/cjs/debug.d.ts +0 -3
  17. package/lib/cjs/debug.js +0 -38
  18. package/lib/cjs/error.d.ts +0 -31
  19. package/lib/cjs/error.js +0 -77
  20. package/lib/cjs/index.d.ts +0 -7
  21. package/lib/cjs/index.js +0 -13
  22. package/lib/cjs/interceptor.d.ts +0 -25
  23. package/lib/cjs/interceptor.js +0 -2
  24. package/lib/cjs/jsonapi.d.ts +0 -6
  25. package/lib/cjs/jsonapi.js +0 -94
  26. package/lib/cjs/model.d.ts +0 -11
  27. package/lib/cjs/model.js +0 -3
  28. package/lib/cjs/query.d.ts +0 -17
  29. package/lib/cjs/query.js +0 -52
  30. package/lib/cjs/resource.d.ts +0 -86
  31. package/lib/cjs/resource.js +0 -194
  32. package/lib/cjs/resources/api_credentials.d.ts +0 -59
  33. package/lib/cjs/resources/api_credentials.js +0 -33
  34. package/lib/cjs/resources/application_memberships.d.ts +0 -57
  35. package/lib/cjs/resources/application_memberships.js +0 -41
  36. package/lib/cjs/resources/memberships.d.ts +0 -58
  37. package/lib/cjs/resources/memberships.js +0 -45
  38. package/lib/cjs/resources/organizations.d.ts +0 -84
  39. package/lib/cjs/resources/organizations.js +0 -42
  40. package/lib/cjs/resources/permissions.d.ts +0 -52
  41. package/lib/cjs/resources/permissions.js +0 -34
  42. package/lib/cjs/resources/roles.d.ts +0 -47
  43. package/lib/cjs/resources/roles.js +0 -42
  44. package/lib/cjs/resources/user.d.ts +0 -29
  45. package/lib/cjs/resources/user.js +0 -20
  46. package/lib/cjs/resources/versions.d.ts +0 -22
  47. package/lib/cjs/resources/versions.js +0 -16
  48. package/lib/cjs/static.d.ts +0 -12
  49. package/lib/cjs/static.js +0 -51
  50. package/lib/cjs/util.d.ts +0 -9
  51. package/lib/cjs/util.js +0 -16
  52. package/lib/esm/api.d.ts +0 -43
  53. package/lib/esm/api.js +0 -31
  54. package/lib/esm/client.d.ts +0 -42
  55. package/lib/esm/client.js +0 -144
  56. package/lib/esm/commercelayer.d.ts +0 -39
  57. package/lib/esm/commercelayer.js +0 -101
  58. package/lib/esm/common.d.ts +0 -5
  59. package/lib/esm/common.js +0 -8
  60. package/lib/esm/config.d.ts +0 -15
  61. package/lib/esm/config.js +0 -17
  62. package/lib/esm/debug.d.ts +0 -3
  63. package/lib/esm/debug.js +0 -36
  64. package/lib/esm/error.d.ts +0 -31
  65. package/lib/esm/error.js +0 -69
  66. package/lib/esm/index.d.ts +0 -7
  67. package/lib/esm/index.js +0 -4
  68. package/lib/esm/interceptor.d.ts +0 -25
  69. package/lib/esm/interceptor.js +0 -1
  70. package/lib/esm/jsonapi.d.ts +0 -6
  71. package/lib/esm/jsonapi.js +0 -87
  72. package/lib/esm/model.d.ts +0 -11
  73. package/lib/esm/model.js +0 -2
  74. package/lib/esm/query.d.ts +0 -17
  75. package/lib/esm/query.js +0 -45
  76. package/lib/esm/resource.d.ts +0 -86
  77. package/lib/esm/resource.js +0 -187
  78. package/lib/esm/resources/api_credentials.d.ts +0 -59
  79. package/lib/esm/resources/api_credentials.js +0 -31
  80. package/lib/esm/resources/application_memberships.d.ts +0 -57
  81. package/lib/esm/resources/application_memberships.js +0 -39
  82. package/lib/esm/resources/memberships.d.ts +0 -58
  83. package/lib/esm/resources/memberships.js +0 -43
  84. package/lib/esm/resources/organizations.d.ts +0 -84
  85. package/lib/esm/resources/organizations.js +0 -40
  86. package/lib/esm/resources/permissions.d.ts +0 -52
  87. package/lib/esm/resources/permissions.js +0 -32
  88. package/lib/esm/resources/roles.d.ts +0 -47
  89. package/lib/esm/resources/roles.js +0 -40
  90. package/lib/esm/resources/user.d.ts +0 -29
  91. package/lib/esm/resources/user.js +0 -18
  92. package/lib/esm/resources/versions.d.ts +0 -22
  93. package/lib/esm/resources/versions.js +0 -14
  94. package/lib/esm/static.d.ts +0 -12
  95. package/lib/esm/static.js +0 -25
  96. package/lib/esm/util.d.ts +0 -9
  97. package/lib/esm/util.js +0 -37
  98. package/lib/tsconfig.esm.tsbuildinfo +0 -1
  99. package/lib/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,665 @@
1
+ import { DocWithData } from 'jsonapi-typescript';
2
+
3
+ type Fetch = (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
4
+ type FetchResponse = DocWithData;
5
+ type FetchRequestOptions = RequestInit;
6
+ declare class FetchError extends Error {
7
+ #private;
8
+ static isFetchError: (error: any) => error is FetchError;
9
+ constructor(status: number, statusText: string, body?: any);
10
+ get errors(): any[] | undefined;
11
+ get status(): number;
12
+ get statusText(): string;
13
+ }
14
+
15
+ type InterceptorEventManager<S extends (RequestInterceptor | ResponseInterceptor), F extends (ErrorInterceptor | ResponseInterceptor)> = {
16
+ onSuccess?: S;
17
+ onFailure?: F;
18
+ };
19
+ type RequestEventManager = InterceptorEventManager<RequestInterceptor, ErrorInterceptor>;
20
+ type ResponseEventManager = InterceptorEventManager<ResponseInterceptor, ErrorInterceptor>;
21
+ type ErrorEventManager = InterceptorEventManager<ResponseInterceptor, ResponseInterceptor>;
22
+ type InterceptorManager = {
23
+ request?: RequestEventManager;
24
+ response?: ResponseEventManager;
25
+ rawReader?: ErrorEventManager;
26
+ };
27
+ type RequestObj = {
28
+ url: URL;
29
+ options: FetchRequestOptions;
30
+ };
31
+ type RequestInterceptor = (request: RequestObj) => RequestObj | Promise<RequestObj>;
32
+ type ResponseObj = Response;
33
+ type ResponseInterceptor = (response: ResponseObj) => ResponseObj | Promise<ResponseObj>;
34
+ type ApiHeadersList = 'x-ratelimit-limit' | 'x-ratelimit-count' | 'x-ratelimit-period' | 'x-ratelimit-interval' | 'x-ratelimit-remaining';
35
+ type ApiHeaders = {
36
+ [key in ApiHeadersList]: string | number | boolean;
37
+ };
38
+ type HeadersObj = Record<string, string> | ApiHeaders;
39
+ type ErrorObj = FetchError;
40
+ type ErrorInterceptor = (error: ErrorObj) => ErrorObj | Promise<ErrorObj>;
41
+ type InterceptorType = 'request' | 'response';
42
+
43
+ type RawResponseReader = {
44
+ id: number;
45
+ rawResponse?: any;
46
+ headers?: HeadersObj;
47
+ ok: boolean;
48
+ };
49
+
50
+ type RequestParams = Record<string, string | number | boolean>;
51
+ type RequestHeaders = Record<string, string>;
52
+ type RequestConfig = {
53
+ timeout?: number;
54
+ params?: RequestParams;
55
+ headers?: RequestHeaders;
56
+ userAgent?: string;
57
+ fetch?: Fetch;
58
+ };
59
+ type ApiConfig = {
60
+ domain?: string;
61
+ accessToken: string;
62
+ };
63
+ type ApiClientInitConfig = ApiConfig & RequestConfig;
64
+ type ApiClientConfig = Partial<ApiClientInitConfig>;
65
+ type Method = 'GET' | 'DELETE' | 'POST' | 'PUT' | 'PATCH';
66
+ declare class ApiClient {
67
+ #private;
68
+ static create(options: ApiClientInitConfig): ApiClient;
69
+ private constructor();
70
+ get interceptors(): InterceptorManager;
71
+ get requestHeaders(): RequestHeaders;
72
+ config(config: ApiClientConfig): this;
73
+ userAgent(userAgent: string): this;
74
+ request(method: Method, path: string, body?: any, options?: ApiClientConfig): Promise<FetchResponse>;
75
+ private customHeaders;
76
+ }
77
+
78
+ type Nullable<T> = T | null;
79
+ type CreateArrayWithLengthX<LENGTH extends number, ACC extends unknown[] = []> = ACC['length'] extends LENGTH ? ACC : CreateArrayWithLengthX<LENGTH, [...ACC, 1]>;
80
+ type NumericNumberRange<START_ARR extends number[], END extends number, ACC extends number = never> = START_ARR['length'] extends END ? ACC | END : NumericNumberRange<[...START_ARR, 1], END, ACC | START_ARR['length']>;
81
+ type PositiveNumberRange<MAX extends number> = NumericNumberRange<CreateArrayWithLengthX<1>, MAX>;
82
+ type StringKey<T> = Extract<keyof T, string>;
83
+
84
+ type QueryResType<T extends Resource> = T['type'];
85
+ type QueryInclude = string[];
86
+ type QueryResourceFields<R extends ResourceTypeLock> = keyof ResourceFields[R];
87
+ type QueryArrayFields<R extends Resource> = Array<QueryResourceFields<QueryResType<R>>>;
88
+ type QueryRecordFields = {
89
+ [key in keyof ResourceFields]?: Array<(QueryResourceFields<key>)>;
90
+ };
91
+ interface QueryParamsRetrieve<R extends Resource = Resource> {
92
+ include?: QueryInclude;
93
+ fields?: QueryArrayFields<R> | QueryRecordFields;
94
+ }
95
+ type QuerySortType = 'asc' | 'desc';
96
+ type QueryResourceSortable<R extends Resource> = ResourceSortFields[QueryResType<R>];
97
+ type QueryResourceSortableFields<R extends Resource> = StringKey<QueryResourceSortable<R>>;
98
+ type QueryArraySortable<R extends Resource> = Array<QueryResourceSortableFields<R> | `-${QueryResourceSortableFields<R>}`>;
99
+ type QueryRecordSortable<R extends Resource> = Partial<Record<keyof QueryResourceSortable<R>, QuerySortType>>;
100
+ type QueryFilter = Record<string, string | number | boolean | object | Array<string | number>>;
101
+ type QueryPageNumber = number;
102
+ type QueryPageSize = PositiveNumberRange<25>;
103
+ interface QueryParamsList<R extends Resource = Resource> extends QueryParamsRetrieve<R> {
104
+ sort?: QueryArraySortable<R> | QueryRecordSortable<R>;
105
+ filters?: QueryFilter;
106
+ pageNumber?: QueryPageNumber;
107
+ pageSize?: QueryPageSize;
108
+ }
109
+ type QueryParams<R extends Resource> = QueryParamsRetrieve<R> | QueryParamsList<R>;
110
+
111
+ type ResourceNull = {
112
+ id: null;
113
+ } & ResourceType;
114
+ type ResourceRel = ResourceId | ResourceNull;
115
+ type Metadata = Record<string, any>;
116
+ interface ResourceType {
117
+ readonly type: ResourceTypeLock;
118
+ }
119
+ interface ResourceId extends ResourceType {
120
+ readonly id: string;
121
+ }
122
+ interface ResourceBase {
123
+ reference?: Nullable<string>;
124
+ reference_origin?: Nullable<string>;
125
+ metadata?: Metadata;
126
+ }
127
+ interface Resource extends ResourceBase, ResourceId {
128
+ readonly created_at: string;
129
+ readonly updated_at: string;
130
+ }
131
+ interface ResourceCreate extends ResourceBase {
132
+ }
133
+ interface ResourceUpdate extends ResourceBase {
134
+ readonly id: string;
135
+ }
136
+ type ListMeta = {
137
+ readonly pageCount: number;
138
+ readonly recordCount: number;
139
+ readonly currentPage: number;
140
+ readonly recordsPerPage: number;
141
+ };
142
+ declare class ListResponse<R> extends Array<R> {
143
+ readonly meta: ListMeta;
144
+ constructor(meta: ListMeta, data: R[]);
145
+ first(): R | undefined;
146
+ last(): R | undefined;
147
+ get(index: number): R | undefined;
148
+ hasNextPage(): boolean;
149
+ hasPrevPage(): boolean;
150
+ getRecordCount(): number;
151
+ getPageCount(): number;
152
+ get recordCount(): number;
153
+ get pageCount(): number;
154
+ }
155
+
156
+ type ResourceSort = Pick<Resource, 'id' | 'reference' | 'reference_origin' | 'created_at' | 'updated_at'>;
157
+ type ResourceAdapterConfig = {};
158
+ type ResourcesInitConfig = ResourceAdapterConfig & ApiClientInitConfig;
159
+ type ResourcesConfig = Partial<ResourcesInitConfig>;
160
+ declare class ResourceAdapter {
161
+ #private;
162
+ constructor(config: ResourcesInitConfig);
163
+ private localConfig;
164
+ config(config: ResourcesConfig): this;
165
+ get client(): Readonly<ApiClient>;
166
+ retrieve<R extends Resource>(resource: ResourceId | ResourceType, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<R>;
167
+ list<R extends Resource>(resource: ResourceType, params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<R>>;
168
+ create<C extends ResourceCreate, R extends Resource>(resource: C & ResourceType, params?: QueryParamsRetrieve<R>, options?: ResourcesConfig): Promise<R>;
169
+ update<U extends ResourceUpdate, R extends Resource>(resource: U & ResourceId, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<R>;
170
+ delete(resource: ResourceId, options?: ResourcesConfig): Promise<void>;
171
+ fetch<R extends Resource>(resource: string | ResourceType, path: string, params?: QueryParams<R>, options?: ResourcesConfig): Promise<R | ListResponse<R>>;
172
+ action(cmd: Extract<Method, 'POST' | 'PATCH'>, path: string, payload?: any, options?: ResourcesConfig): Promise<void>;
173
+ }
174
+ declare abstract class ApiResourceBase<R extends Resource> {
175
+ static readonly TYPE: ResourceTypeLock;
176
+ protected readonly resources: ResourceAdapter;
177
+ constructor(adapter: ResourceAdapter);
178
+ abstract relationship(id: string | ResourceId | null): ResourceRel;
179
+ protected relationshipOneToOne<RR extends ResourceRel>(id: string | ResourceId | null): RR;
180
+ protected relationshipOneToMany<RR extends ResourceRel>(...ids: string[]): RR[];
181
+ abstract type(): ResourceTypeLock;
182
+ parse(resource: string): R | R[];
183
+ update(resource: ResourceUpdate, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<R>;
184
+ }
185
+ declare abstract class ApiResource<R extends Resource> extends ApiResourceBase<R> {
186
+ retrieve(id: string | ResourceId, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<R>;
187
+ list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<R>>;
188
+ count(filter?: QueryFilter | QueryParamsList, options?: ResourcesConfig): Promise<number>;
189
+ }
190
+ declare abstract class ApiSingleton<R extends Resource> extends ApiResourceBase<R> {
191
+ retrieve(params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<R>;
192
+ }
193
+
194
+ type VersionType = 'versions';
195
+ type VersionRel = ResourceRel & {
196
+ type: VersionType;
197
+ };
198
+ type VersionSort = Pick<Version, 'id'> & ResourceSort;
199
+ interface Version extends Resource {
200
+ readonly type: VersionType;
201
+ resource_type: string;
202
+ resource_id: string;
203
+ event: string;
204
+ changes: Record<string, any>;
205
+ who: Record<string, any>;
206
+ }
207
+ declare class Versions extends ApiResource<Version> {
208
+ static readonly TYPE: VersionType;
209
+ isVersion(resource: any): resource is Version;
210
+ relationship(id: string | ResourceId | null): VersionRel;
211
+ relationshipToMany(...ids: string[]): VersionRel[];
212
+ type(): VersionType;
213
+ }
214
+
215
+ type PermissionType = 'permissions';
216
+ type PermissionRel = ResourceRel & {
217
+ type: PermissionType;
218
+ };
219
+ type RoleRel$4 = ResourceRel & {
220
+ type: RoleType;
221
+ };
222
+ type PermissionSort = Pick<Permission, 'id'> & ResourceSort;
223
+ interface Permission extends Resource {
224
+ readonly type: PermissionType;
225
+ can_create: boolean;
226
+ can_read: boolean;
227
+ can_update: boolean;
228
+ can_destroy: boolean;
229
+ subject: string;
230
+ restrictions: Record<string, any>;
231
+ organization?: Nullable<Organization>;
232
+ role?: Nullable<Role>;
233
+ versions?: Nullable<Version[]>;
234
+ }
235
+ interface PermissionCreate extends ResourceCreate {
236
+ can_create: boolean;
237
+ can_read: boolean;
238
+ can_update: boolean;
239
+ can_destroy: boolean;
240
+ subject: string;
241
+ role: RoleRel$4;
242
+ }
243
+ interface PermissionUpdate extends ResourceUpdate {
244
+ can_create?: Nullable<boolean>;
245
+ can_read?: Nullable<boolean>;
246
+ can_update?: Nullable<boolean>;
247
+ can_destroy?: Nullable<boolean>;
248
+ }
249
+ declare class Permissions extends ApiResource<Permission> {
250
+ static readonly TYPE: PermissionType;
251
+ create(resource: PermissionCreate, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Permission>;
252
+ update(resource: PermissionUpdate, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Permission>;
253
+ organization(permissionId: string | Permission, params?: QueryParamsRetrieve<Organization>, options?: ResourcesConfig): Promise<Organization>;
254
+ role(permissionId: string | Permission, params?: QueryParamsRetrieve<Role>, options?: ResourcesConfig): Promise<Role>;
255
+ versions(permissionId: string | Permission, params?: QueryParamsList<Version>, options?: ResourcesConfig): Promise<ListResponse<Version>>;
256
+ isPermission(resource: any): resource is Permission;
257
+ relationship(id: string | ResourceId | null): PermissionRel;
258
+ relationshipToMany(...ids: string[]): PermissionRel[];
259
+ type(): PermissionType;
260
+ }
261
+
262
+ type RoleType = 'roles';
263
+ type RoleRel$3 = ResourceRel & {
264
+ type: RoleType;
265
+ };
266
+ type OrganizationRel$4 = ResourceRel & {
267
+ type: OrganizationType;
268
+ };
269
+ type RoleSort = Pick<Role, 'id'> & ResourceSort;
270
+ interface Role extends Resource {
271
+ readonly type: RoleType;
272
+ name: string;
273
+ kind: string;
274
+ organization?: Nullable<Organization>;
275
+ permissions?: Nullable<Permission[]>;
276
+ memberships?: Nullable<Membership[]>;
277
+ api_credentials?: Nullable<ApiCredential[]>;
278
+ versions?: Nullable<Version[]>;
279
+ }
280
+ interface RoleCreate extends ResourceCreate {
281
+ name: string;
282
+ organization: OrganizationRel$4;
283
+ }
284
+ interface RoleUpdate extends ResourceUpdate {
285
+ name?: Nullable<string>;
286
+ }
287
+ declare class Roles extends ApiResource<Role> {
288
+ static readonly TYPE: RoleType;
289
+ create(resource: RoleCreate, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Role>;
290
+ update(resource: RoleUpdate, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Role>;
291
+ organization(roleId: string | Role, params?: QueryParamsRetrieve<Organization>, options?: ResourcesConfig): Promise<Organization>;
292
+ permissions(roleId: string | Role, params?: QueryParamsList<Permission>, options?: ResourcesConfig): Promise<ListResponse<Permission>>;
293
+ memberships(roleId: string | Role, params?: QueryParamsList<Membership>, options?: ResourcesConfig): Promise<ListResponse<Membership>>;
294
+ api_credentials(roleId: string | Role, params?: QueryParamsList<ApiCredential>, options?: ResourcesConfig): Promise<ListResponse<ApiCredential>>;
295
+ versions(roleId: string | Role, params?: QueryParamsList<Version>, options?: ResourcesConfig): Promise<ListResponse<Version>>;
296
+ isRole(resource: any): resource is Role;
297
+ relationship(id: string | ResourceId | null): RoleRel$3;
298
+ relationshipToMany(...ids: string[]): RoleRel$3[];
299
+ type(): RoleType;
300
+ }
301
+
302
+ type ApplicationMembershipType = 'application_memberships';
303
+ type ApplicationMembershipRel$1 = ResourceRel & {
304
+ type: ApplicationMembershipType;
305
+ };
306
+ type ApiCredentialRel$1 = ResourceRel & {
307
+ type: ApiCredentialType;
308
+ };
309
+ type MembershipRel$1 = ResourceRel & {
310
+ type: MembershipType;
311
+ };
312
+ type OrganizationRel$3 = ResourceRel & {
313
+ type: OrganizationType;
314
+ };
315
+ type RoleRel$2 = ResourceRel & {
316
+ type: RoleType;
317
+ };
318
+ type ApplicationMembershipSort = Pick<ApplicationMembership, 'id'> & ResourceSort;
319
+ interface ApplicationMembership extends Resource {
320
+ readonly type: ApplicationMembershipType;
321
+ filters?: Nullable<Record<string, any>>;
322
+ api_credential?: Nullable<ApiCredential>;
323
+ membership?: Nullable<Membership>;
324
+ organization?: Nullable<Organization>;
325
+ role?: Nullable<Role>;
326
+ }
327
+ interface ApplicationMembershipCreate extends ResourceCreate {
328
+ filters?: Nullable<Record<string, any>>;
329
+ api_credential: ApiCredentialRel$1;
330
+ membership: MembershipRel$1;
331
+ organization: OrganizationRel$3;
332
+ role: RoleRel$2;
333
+ }
334
+ interface ApplicationMembershipUpdate extends ResourceUpdate {
335
+ filters?: Nullable<Record<string, any>>;
336
+ role?: Nullable<RoleRel$2>;
337
+ }
338
+ declare class ApplicationMemberships extends ApiResource<ApplicationMembership> {
339
+ static readonly TYPE: ApplicationMembershipType;
340
+ create(resource: ApplicationMembershipCreate, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ApplicationMembership>;
341
+ update(resource: ApplicationMembershipUpdate, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ApplicationMembership>;
342
+ delete(id: string | ResourceId, options?: ResourcesConfig): Promise<void>;
343
+ api_credential(applicationMembershipId: string | ApplicationMembership, params?: QueryParamsRetrieve<ApiCredential>, options?: ResourcesConfig): Promise<ApiCredential>;
344
+ membership(applicationMembershipId: string | ApplicationMembership, params?: QueryParamsRetrieve<Membership>, options?: ResourcesConfig): Promise<Membership>;
345
+ organization(applicationMembershipId: string | ApplicationMembership, params?: QueryParamsRetrieve<Organization>, options?: ResourcesConfig): Promise<Organization>;
346
+ role(applicationMembershipId: string | ApplicationMembership, params?: QueryParamsRetrieve<Role>, options?: ResourcesConfig): Promise<Role>;
347
+ isApplicationMembership(resource: any): resource is ApplicationMembership;
348
+ relationship(id: string | ResourceId | null): ApplicationMembershipRel$1;
349
+ relationshipToMany(...ids: string[]): ApplicationMembershipRel$1[];
350
+ type(): ApplicationMembershipType;
351
+ }
352
+
353
+ type MembershipType = 'memberships';
354
+ type MembershipRel = ResourceRel & {
355
+ type: MembershipType;
356
+ };
357
+ type OrganizationRel$2 = ResourceRel & {
358
+ type: OrganizationType;
359
+ };
360
+ type RoleRel$1 = ResourceRel & {
361
+ type: RoleType;
362
+ };
363
+ type ApplicationMembershipRel = ResourceRel & {
364
+ type: ApplicationMembershipType;
365
+ };
366
+ type MembershipSort = Pick<Membership, 'id'> & ResourceSort;
367
+ interface Membership extends Resource {
368
+ readonly type: MembershipType;
369
+ user_email: string;
370
+ user_first_name: string;
371
+ user_last_name: string;
372
+ status: 'pending' | 'active';
373
+ owner: boolean;
374
+ organization?: Nullable<Organization>;
375
+ role?: Nullable<Role>;
376
+ application_memberships?: Nullable<ApplicationMembership[]>;
377
+ versions?: Nullable<Version[]>;
378
+ }
379
+ interface MembershipCreate extends ResourceCreate {
380
+ user_email: string;
381
+ organization: OrganizationRel$2;
382
+ role: RoleRel$1;
383
+ application_memberships?: Nullable<ApplicationMembershipRel[]>;
384
+ }
385
+ interface MembershipUpdate extends ResourceUpdate {
386
+ role?: Nullable<RoleRel$1>;
387
+ application_memberships?: Nullable<ApplicationMembershipRel[]>;
388
+ }
389
+ declare class Memberships extends ApiResource<Membership> {
390
+ static readonly TYPE: MembershipType;
391
+ create(resource: MembershipCreate, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Membership>;
392
+ update(resource: MembershipUpdate, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Membership>;
393
+ delete(id: string | ResourceId, options?: ResourcesConfig): Promise<void>;
394
+ resend(membershipId: string | Membership, options?: ResourcesConfig): Promise<void>;
395
+ organization(membershipId: string | Membership, params?: QueryParamsRetrieve<Organization>, options?: ResourcesConfig): Promise<Organization>;
396
+ role(membershipId: string | Membership, params?: QueryParamsRetrieve<Role>, options?: ResourcesConfig): Promise<Role>;
397
+ application_memberships(membershipId: string | Membership, params?: QueryParamsList<ApplicationMembership>, options?: ResourcesConfig): Promise<ListResponse<ApplicationMembership>>;
398
+ versions(membershipId: string | Membership, params?: QueryParamsList<Version>, options?: ResourcesConfig): Promise<ListResponse<Version>>;
399
+ isMembership(resource: any): resource is Membership;
400
+ relationship(id: string | ResourceId | null): MembershipRel;
401
+ relationshipToMany(...ids: string[]): MembershipRel[];
402
+ type(): MembershipType;
403
+ }
404
+
405
+ type OrganizationType = 'organizations';
406
+ type OrganizationRel$1 = ResourceRel & {
407
+ type: OrganizationType;
408
+ };
409
+ type OrganizationSort = Pick<Organization, 'id'> & ResourceSort;
410
+ interface Organization extends Resource {
411
+ readonly type: OrganizationType;
412
+ name: string;
413
+ slug: string;
414
+ domain: string;
415
+ config?: Nullable<Record<string, any>>;
416
+ support_phone?: Nullable<string>;
417
+ support_email?: Nullable<string>;
418
+ logo_url?: Nullable<string>;
419
+ favicon_url?: Nullable<string>;
420
+ primary_color?: Nullable<string>;
421
+ contrast_color?: Nullable<string>;
422
+ gtm_id?: Nullable<string>;
423
+ gtm_id_test?: Nullable<string>;
424
+ discount_disabled?: Nullable<boolean>;
425
+ account_disabled?: Nullable<boolean>;
426
+ acceptance_disabled?: Nullable<boolean>;
427
+ max_concurrent_promotions: number;
428
+ max_concurrent_imports: number;
429
+ region?: Nullable<string>;
430
+ can_switch_live: boolean;
431
+ subscription_info: Record<string, any>;
432
+ memberships?: Nullable<Membership[]>;
433
+ roles?: Nullable<Role[]>;
434
+ permissions?: Nullable<Permission[]>;
435
+ api_credentials?: Nullable<ApiCredential[]>;
436
+ }
437
+ interface OrganizationCreate extends ResourceCreate {
438
+ name: string;
439
+ config?: Nullable<Record<string, any>>;
440
+ support_phone?: Nullable<string>;
441
+ support_email?: Nullable<string>;
442
+ logo_url?: Nullable<string>;
443
+ favicon_url?: Nullable<string>;
444
+ primary_color?: Nullable<string>;
445
+ contrast_color?: Nullable<string>;
446
+ gtm_id?: Nullable<string>;
447
+ gtm_id_test?: Nullable<string>;
448
+ discount_disabled?: Nullable<boolean>;
449
+ account_disabled?: Nullable<boolean>;
450
+ acceptance_disabled?: Nullable<boolean>;
451
+ region?: Nullable<string>;
452
+ }
453
+ interface OrganizationUpdate extends ResourceUpdate {
454
+ name?: Nullable<string>;
455
+ config?: Nullable<Record<string, any>>;
456
+ support_phone?: Nullable<string>;
457
+ support_email?: Nullable<string>;
458
+ logo_url?: Nullable<string>;
459
+ favicon_url?: Nullable<string>;
460
+ primary_color?: Nullable<string>;
461
+ contrast_color?: Nullable<string>;
462
+ gtm_id?: Nullable<string>;
463
+ gtm_id_test?: Nullable<string>;
464
+ discount_disabled?: Nullable<boolean>;
465
+ account_disabled?: Nullable<boolean>;
466
+ acceptance_disabled?: Nullable<boolean>;
467
+ }
468
+ declare class Organizations extends ApiResource<Organization> {
469
+ static readonly TYPE: OrganizationType;
470
+ create(resource: OrganizationCreate, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Organization>;
471
+ update(resource: OrganizationUpdate, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Organization>;
472
+ transfer_ownership(organizationId: string | Organization, payload: TransferOwnershipDataType, options?: ResourcesConfig): Promise<void>;
473
+ memberships(organizationId: string | Organization, params?: QueryParamsList<Membership>, options?: ResourcesConfig): Promise<ListResponse<Membership>>;
474
+ roles(organizationId: string | Organization, params?: QueryParamsList<Role>, options?: ResourcesConfig): Promise<ListResponse<Role>>;
475
+ permissions(organizationId: string | Organization, params?: QueryParamsList<Permission>, options?: ResourcesConfig): Promise<ListResponse<Permission>>;
476
+ api_credentials(organizationId: string | Organization, params?: QueryParamsList<ApiCredential>, options?: ResourcesConfig): Promise<ListResponse<ApiCredential>>;
477
+ isOrganization(resource: any): resource is Organization;
478
+ relationship(id: string | ResourceId | null): OrganizationRel$1;
479
+ relationshipToMany(...ids: string[]): OrganizationRel$1[];
480
+ type(): OrganizationType;
481
+ }
482
+
483
+ type TransferOwnershipDataType = {
484
+ type: 'organizations';
485
+ id: string;
486
+ new_owner_email: string;
487
+ };
488
+
489
+ type ApiCredentialType = 'api_credentials';
490
+ type ApiCredentialRel = ResourceRel & {
491
+ type: ApiCredentialType;
492
+ };
493
+ type OrganizationRel = ResourceRel & {
494
+ type: OrganizationType;
495
+ };
496
+ type RoleRel = ResourceRel & {
497
+ type: RoleType;
498
+ };
499
+ type ApiCredentialSort = Pick<ApiCredential, 'id' | 'mode'> & ResourceSort;
500
+ interface ApiCredential extends Resource {
501
+ readonly type: ApiCredentialType;
502
+ name: string;
503
+ kind: string;
504
+ confidential: boolean;
505
+ redirect_uri?: Nullable<string>;
506
+ client_id: string;
507
+ client_secret: string;
508
+ scopes: string;
509
+ expires_in?: Nullable<number>;
510
+ mode?: Nullable<string>;
511
+ custom?: Nullable<boolean>;
512
+ organization?: Nullable<Organization>;
513
+ role?: Nullable<Role>;
514
+ }
515
+ interface ApiCredentialCreate extends ResourceCreate {
516
+ name: string;
517
+ kind: string;
518
+ redirect_uri?: Nullable<string>;
519
+ expires_in?: Nullable<number>;
520
+ mode?: Nullable<string>;
521
+ custom?: Nullable<boolean>;
522
+ organization: OrganizationRel;
523
+ role?: Nullable<RoleRel>;
524
+ }
525
+ interface ApiCredentialUpdate extends ResourceUpdate {
526
+ name?: Nullable<string>;
527
+ redirect_uri?: Nullable<string>;
528
+ expires_in?: Nullable<number>;
529
+ role?: Nullable<RoleRel>;
530
+ }
531
+ declare class ApiCredentials extends ApiResource<ApiCredential> {
532
+ static readonly TYPE: ApiCredentialType;
533
+ create(resource: ApiCredentialCreate, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ApiCredential>;
534
+ update(resource: ApiCredentialUpdate, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ApiCredential>;
535
+ delete(id: string | ResourceId, options?: ResourcesConfig): Promise<void>;
536
+ organization(apiCredentialId: string | ApiCredential, params?: QueryParamsRetrieve<Organization>, options?: ResourcesConfig): Promise<Organization>;
537
+ role(apiCredentialId: string | ApiCredential, params?: QueryParamsRetrieve<Role>, options?: ResourcesConfig): Promise<Role>;
538
+ isApiCredential(resource: any): resource is ApiCredential;
539
+ relationship(id: string | ResourceId | null): ApiCredentialRel;
540
+ relationshipToMany(...ids: string[]): ApiCredentialRel[];
541
+ type(): ApiCredentialType;
542
+ }
543
+
544
+ type UserType = 'user';
545
+ type UserRel = ResourceRel & {
546
+ type: UserType;
547
+ };
548
+ type UserSort = Pick<User, 'id'> & ResourceSort;
549
+ interface User extends Resource {
550
+ readonly type: UserType;
551
+ email: string;
552
+ first_name: string;
553
+ last_name: string;
554
+ time_zone?: Nullable<string>;
555
+ otp_required_for_login: boolean;
556
+ }
557
+ interface UserUpdate extends ResourceUpdate {
558
+ email?: Nullable<string>;
559
+ first_name?: Nullable<string>;
560
+ last_name?: Nullable<string>;
561
+ time_zone?: Nullable<string>;
562
+ }
563
+ declare class Users extends ApiSingleton<User> {
564
+ static readonly TYPE: UserType;
565
+ update(resource: UserUpdate, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<User>;
566
+ isUser(resource: any): resource is User;
567
+ relationship(id: string | ResourceId | null): UserRel;
568
+ relationshipToMany(...ids: string[]): UserRel[];
569
+ type(): UserType;
570
+ }
571
+
572
+ type ResourceTypeLock = 'api_credentials' | 'application_memberships' | 'memberships' | 'organizations' | 'permissions' | 'roles' | 'user' | 'versions';
573
+ type ResourceFields = {
574
+ api_credentials: ApiCredential;
575
+ application_memberships: ApplicationMembership;
576
+ memberships: Membership;
577
+ organizations: Organization;
578
+ permissions: Permission;
579
+ roles: Role;
580
+ user: User;
581
+ versions: Version;
582
+ };
583
+ type ResourceSortFields = {
584
+ api_credentials: ApiCredentialSort;
585
+ application_memberships: ApplicationMembershipSort;
586
+ memberships: MembershipSort;
587
+ organizations: OrganizationSort;
588
+ permissions: PermissionSort;
589
+ roles: RoleSort;
590
+ user: UserSort;
591
+ versions: VersionSort;
592
+ };
593
+
594
+ declare enum ErrorType {
595
+ CLIENT = "client",
596
+ REQUEST = "request",
597
+ RESPONSE = "response",
598
+ CANCEL = "cancel",
599
+ PARSE = "parse",
600
+ TIMEOUT = "timeout"
601
+ }
602
+ declare class SdkError extends Error {
603
+ static NAME: string;
604
+ static isSdkError(error: any): error is SdkError;
605
+ type: ErrorType;
606
+ code?: string;
607
+ source?: Error;
608
+ constructor(error: {
609
+ message: string;
610
+ type?: ErrorType;
611
+ });
612
+ }
613
+ declare class ApiError extends SdkError {
614
+ static NAME: string;
615
+ static isApiError(error: any): error is ApiError;
616
+ errors: any[];
617
+ status?: number;
618
+ statusText?: string;
619
+ constructor(error: SdkError);
620
+ first(): any;
621
+ }
622
+
623
+ type SdkConfig = {};
624
+ type CommerceLayerInitConfig = SdkConfig & ResourcesInitConfig;
625
+ type CommerceLayerConfig = Partial<CommerceLayerInitConfig>;
626
+ declare class CommerceLayerProvisioningClient {
627
+ #private;
628
+ readonly openApiSchemaVersion = "1.0.4";
629
+ constructor(config: CommerceLayerInitConfig);
630
+ get api_credentials(): ApiCredentials;
631
+ get application_memberships(): ApplicationMemberships;
632
+ get memberships(): Memberships;
633
+ get organizations(): Organizations;
634
+ get permissions(): Permissions;
635
+ get roles(): Roles;
636
+ get user(): Users;
637
+ get versions(): Versions;
638
+ private get interceptors();
639
+ private localConfig;
640
+ config(config: CommerceLayerConfig): this;
641
+ resources(): readonly string[];
642
+ singletons(): readonly string[];
643
+ isSingleton(resource: ResourceTypeLock): boolean;
644
+ isApiError(error: any): error is ApiError;
645
+ addRequestInterceptor(onSuccess?: RequestInterceptor, onFailure?: ErrorInterceptor): number;
646
+ addResponseInterceptor(onSuccess?: ResponseInterceptor, onFailure?: ErrorInterceptor): number;
647
+ removeInterceptor(type: InterceptorType, id?: number): void;
648
+ addRawResponseReader(options?: {
649
+ headers: boolean;
650
+ }): RawResponseReader;
651
+ removeRawResponseReader(reader?: number | RawResponseReader): void;
652
+ }
653
+ declare const CommerceLayerProvisioning: (config: CommerceLayerInitConfig) => CommerceLayerProvisioningClient;
654
+
655
+ declare const CommerceLayerProvisioningStatic: {
656
+ resources: (sort?: boolean) => readonly string[];
657
+ singletons: (sort?: boolean) => readonly string[];
658
+ isSingleton: (resource: ResourceTypeLock) => boolean;
659
+ isSdkError: (error: unknown) => error is SdkError;
660
+ isApiError: (error: unknown) => error is ApiError;
661
+ init: (config: CommerceLayerInitConfig) => CommerceLayerProvisioningClient;
662
+ readonly schemaVersion: string;
663
+ };
664
+
665
+ export { type ApiCredential, type ApiCredentialCreate, type ApiCredentialSort, type ApiCredentialUpdate, ApiError, type ApplicationMembership, type ApplicationMembershipCreate, type ApplicationMembershipSort, type ApplicationMembershipUpdate, CommerceLayerProvisioning, CommerceLayerProvisioningClient, CommerceLayerProvisioningStatic, type ErrorObj, ErrorType, type HeadersObj, type Membership, type MembershipCreate, type MembershipSort, type MembershipUpdate, type Organization, type OrganizationCreate, type OrganizationSort, type OrganizationUpdate, type Permission, type PermissionCreate, type PermissionSort, type PermissionUpdate, type QueryParams, type QueryParamsList, type QueryParamsRetrieve, type RequestObj, type ResponseObj, type Role, type RoleCreate, type RoleSort, type RoleUpdate, SdkError, type User, type UserSort, type UserUpdate, type Version, type VersionSort, CommerceLayerProvisioning as default };