@reactionary/commercetools 0.6.6 → 0.6.7
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/capabilities/company-registration.capability.js +137 -0
- package/capabilities/company.capability.js +306 -0
- package/capabilities/employee-invitation.capability.js +398 -0
- package/capabilities/employee.capability.js +346 -0
- package/capabilities/index.js +3 -0
- package/capabilities/profile.capability.js +10 -0
- package/core/capability-descriptors.js +65 -1
- package/core/client.js +2 -2
- package/factories/checkout/checkout.factory.js +6 -1
- package/factories/company/company.factory.js +80 -0
- package/factories/company-registration/company-registration.factory.js +36 -0
- package/factories/employee/employee.factory.js +61 -0
- package/factories/employee-invitation/employee-invitation.factory.js +61 -0
- package/index.js +8 -0
- package/package.json +2 -2
- package/schema/capabilities.schema.js +4 -0
- package/schema/commercetools.schema.js +18 -1
- package/src/capabilities/company-registration.capability.d.ts +21 -0
- package/src/capabilities/company.capability.d.ts +30 -0
- package/src/capabilities/employee-invitation.capability.d.ts +34 -0
- package/src/capabilities/employee.capability.d.ts +33 -0
- package/src/capabilities/index.d.ts +3 -0
- package/src/core/capability-descriptors.d.ts +1 -1
- package/src/core/initialize.types.d.ts +20 -0
- package/src/factories/company/company.factory.d.ts +25 -0
- package/src/factories/company-registration/company-registration.factory.d.ts +25 -0
- package/src/factories/employee/employee.factory.d.ts +22 -0
- package/src/factories/employee-invitation/employee-invitation.factory.d.ts +94 -0
- package/src/index.d.ts +8 -0
- package/src/schema/capabilities.schema.d.ts +24 -1
- package/src/schema/commercetools.schema.d.ts +57 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EmployeeInvitationPaginatedListSchema,
|
|
3
|
+
EmployeeInvitationSchema,
|
|
4
|
+
EmployeeIssuedInvitationSchema
|
|
5
|
+
} from "@reactionary/core";
|
|
6
|
+
const COMMERCERTOOLS_CUSTOM_OBJECT_CONTAINER_EMPLOYEE_INVITATIONS = "reactionary-employee-invitation";
|
|
7
|
+
const COMMERCERTOOLS_CUSTOM_OBJECT_CONTAINER_EMPLOYEE_INVITATIONS_INDEX = "reactionary-employee-invitation-index";
|
|
8
|
+
class CommercetoolsEmployeeInvitationFactory {
|
|
9
|
+
employeeInvitationSchema = EmployeeInvitationSchema;
|
|
10
|
+
employeeIssuedInvitationSchema = EmployeeIssuedInvitationSchema;
|
|
11
|
+
employeeInvitationPaginatedListSchema = EmployeeInvitationPaginatedListSchema;
|
|
12
|
+
parseEmployeeInvitation(context, data, payload) {
|
|
13
|
+
const result = {
|
|
14
|
+
identifier: {
|
|
15
|
+
key: data.key
|
|
16
|
+
},
|
|
17
|
+
company: data.value.company,
|
|
18
|
+
status: data.value.status,
|
|
19
|
+
email: data.value.email,
|
|
20
|
+
role: data.value.role,
|
|
21
|
+
validUntil: data.value.validUntil
|
|
22
|
+
};
|
|
23
|
+
return EmployeeInvitationSchema.parse(result);
|
|
24
|
+
}
|
|
25
|
+
parseEmployeeIssuedInvitation(context, data, payload) {
|
|
26
|
+
const invitation = this.parseEmployeeInvitation(context, data.invite, payload);
|
|
27
|
+
const result = {
|
|
28
|
+
...invitation,
|
|
29
|
+
securityToken: data.securityToken
|
|
30
|
+
};
|
|
31
|
+
return EmployeeIssuedInvitationSchema.parse(result);
|
|
32
|
+
}
|
|
33
|
+
parseEmployeeInvitationPaginatedList(context, data, query) {
|
|
34
|
+
const totalPages = query.search.paginationOptions.pageSize > 0 ? Math.ceil(data.length / query.search.paginationOptions.pageSize) : 0;
|
|
35
|
+
const result = {
|
|
36
|
+
identifier: query.search,
|
|
37
|
+
pageNumber: query.search.paginationOptions.pageNumber,
|
|
38
|
+
pageSize: query.search.paginationOptions.pageSize,
|
|
39
|
+
totalCount: data.length,
|
|
40
|
+
totalPages,
|
|
41
|
+
items: data.map((invitation) => this.parseEmployeeInvitation(context, invitation))
|
|
42
|
+
};
|
|
43
|
+
return EmployeeInvitationPaginatedListSchema.parse(result);
|
|
44
|
+
}
|
|
45
|
+
mapRole(role) {
|
|
46
|
+
switch (role) {
|
|
47
|
+
case "admin":
|
|
48
|
+
return "buyer-admin";
|
|
49
|
+
case "manager":
|
|
50
|
+
return "buyer-approver";
|
|
51
|
+
case "employee":
|
|
52
|
+
return "buyer";
|
|
53
|
+
}
|
|
54
|
+
return "buyer";
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export {
|
|
58
|
+
COMMERCERTOOLS_CUSTOM_OBJECT_CONTAINER_EMPLOYEE_INVITATIONS,
|
|
59
|
+
COMMERCERTOOLS_CUSTOM_OBJECT_CONTAINER_EMPLOYEE_INVITATIONS_INDEX,
|
|
60
|
+
CommercetoolsEmployeeInvitationFactory
|
|
61
|
+
};
|
package/index.js
CHANGED
|
@@ -9,6 +9,10 @@ export * from "./capabilities/product-associations.capability.js";
|
|
|
9
9
|
export * from "./capabilities/product.capability.js";
|
|
10
10
|
export * from "./capabilities/product-reviews.capability.js";
|
|
11
11
|
export * from "./capabilities/product-search.capability.js";
|
|
12
|
+
export * from "./capabilities/company-registration.capability.js";
|
|
13
|
+
export * from "./capabilities/company.capability.js";
|
|
14
|
+
export * from "./capabilities/employee.capability.js";
|
|
15
|
+
export * from "./capabilities/employee-invitation.capability.js";
|
|
12
16
|
export * from "./factories/product/product.factory.js";
|
|
13
17
|
export * from "./factories/checkout/checkout.factory.js";
|
|
14
18
|
export * from "./factories/product-search/product-search.factory.js";
|
|
@@ -24,5 +28,9 @@ export * from "./factories/product-associations/product-associations.factory.js"
|
|
|
24
28
|
export * from "./factories/product-reviews/product-reviews.factory.js";
|
|
25
29
|
export * from "./factories/product-list/product-list.factory.js";
|
|
26
30
|
export * from "./factories/identity/identity.factory.js";
|
|
31
|
+
export * from "./factories/company-registration/company-registration.factory.js";
|
|
32
|
+
export * from "./factories/company/company.factory.js";
|
|
33
|
+
export * from "./factories/employee/employee.factory.js";
|
|
34
|
+
export * from "./factories/employee-invitation/employee-invitation.factory.js";
|
|
27
35
|
export * from "./schema/capabilities.schema.js";
|
|
28
36
|
export * from "./schema/configuration.schema.js";
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reactionary/commercetools",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"types": "./src/index.d.ts",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"vitest": "^4.0.9",
|
|
9
9
|
"@nx/vite": "22.4.5",
|
|
10
|
-
"@reactionary/core": "0.6.
|
|
10
|
+
"@reactionary/core": "0.6.7",
|
|
11
11
|
"zod": "4.1.9",
|
|
12
12
|
"@commercetools/ts-client": "^4.9.1",
|
|
13
13
|
"@commercetools/platform-sdk": "^8.25.0",
|
|
@@ -38,6 +38,10 @@ const CommercetoolsCapabilitiesSchema = CapabilitiesSchema.pick({
|
|
|
38
38
|
category: EnabledCapabilitySchema.optional(),
|
|
39
39
|
store: EnabledCapabilitySchema.optional(),
|
|
40
40
|
profile: EnabledCapabilitySchema.optional(),
|
|
41
|
+
companyRegistration: EnabledCapabilitySchema.optional(),
|
|
42
|
+
company: EnabledCapabilitySchema.optional(),
|
|
43
|
+
employee: EnabledCapabilitySchema.optional(),
|
|
44
|
+
employeeInvitation: EnabledCapabilitySchema.optional(),
|
|
41
45
|
product: OverridableCapabilitySchema.optional(),
|
|
42
46
|
checkout: OverridableCapabilitySchema.optional()
|
|
43
47
|
}).partial();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseModelSchema, CartIdentifierSchema,
|
|
1
|
+
import { BaseModelSchema, CartIdentifierSchema, CheckoutIdentifierSchema, OrderIdentifierSchema, EmployeeInvitationSchema } from "@reactionary/core";
|
|
2
2
|
import * as z from "zod";
|
|
3
3
|
const CommercetoolsCartIdentifierSchema = CartIdentifierSchema.extend({
|
|
4
4
|
version: z.number().default(0)
|
|
@@ -20,10 +20,27 @@ const CommercetoolsCategoryLookupSchema = BaseModelSchema.extend({
|
|
|
20
20
|
key: z.string().optional(),
|
|
21
21
|
name: z.record(z.string(), z.string())
|
|
22
22
|
});
|
|
23
|
+
const CommercetoolsEmployeeInviteCustomObjectValueSchema = EmployeeInvitationSchema.omit({ identifier: true }).extend({
|
|
24
|
+
tokenHash: z.string(),
|
|
25
|
+
invitedBy: z.string(),
|
|
26
|
+
invitedDate: z.string(),
|
|
27
|
+
acceptedBy: z.string().optional(),
|
|
28
|
+
acceptedDate: z.string().optional(),
|
|
29
|
+
lastUpdatedBy: z.string(),
|
|
30
|
+
lastUpdatedDate: z.string()
|
|
31
|
+
});
|
|
32
|
+
const CommercetoolsEmployeeInviteCustomObjectSchema = z.looseObject({
|
|
33
|
+
key: z.string().meta({ description: "The unique identifier for the employee invitation." }),
|
|
34
|
+
value: CommercetoolsEmployeeInviteCustomObjectValueSchema,
|
|
35
|
+
container: z.string().meta({ description: "The container for the custom object. This is used to group related custom objects together and can be used as a namespace to avoid key collisions." }),
|
|
36
|
+
version: z.number().default(0)
|
|
37
|
+
});
|
|
23
38
|
export {
|
|
24
39
|
CommercetoolsCartIdentifierSchema,
|
|
25
40
|
CommercetoolsCategoryLookupSchema,
|
|
26
41
|
CommercetoolsCheckoutIdentifierSchema,
|
|
42
|
+
CommercetoolsEmployeeInviteCustomObjectSchema,
|
|
43
|
+
CommercetoolsEmployeeInviteCustomObjectValueSchema,
|
|
27
44
|
CommercetoolsOrderIdentifierSchema,
|
|
28
45
|
CommercetoolsResolveCategoryQueryByIdSchema,
|
|
29
46
|
CommercetoolsResolveCategoryQueryByKeySchema
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { MyCompanyDraft } from '@commercetools/platform-sdk';
|
|
2
|
+
import type { Cache, CompanyRegistrationFactory, CompanyRegistrationFactoryWithOutput, CompanyRegistrationMutationRegister, CompanyRegistrationQueryCheckRegistrationStatus, CompanyRegistrationRequest, RequestContext, Result } from '@reactionary/core';
|
|
3
|
+
import { CompanyRegistrationCapability } from '@reactionary/core';
|
|
4
|
+
import type { CommercetoolsAPI } from '../core/client.js';
|
|
5
|
+
import type { CommercetoolsCompanyRegistrationFactory } from '../factories/company-registration/company-registration.factory.js';
|
|
6
|
+
import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
|
|
7
|
+
export declare class CommercetoolsCompanyRegistrationCapability<TFactory extends CompanyRegistrationFactory = CommercetoolsCompanyRegistrationFactory> extends CompanyRegistrationCapability {
|
|
8
|
+
protected config: CommercetoolsConfiguration;
|
|
9
|
+
protected commercetools: CommercetoolsAPI;
|
|
10
|
+
protected factory: CompanyRegistrationFactoryWithOutput<TFactory>;
|
|
11
|
+
constructor(config: CommercetoolsConfiguration, cache: Cache, context: RequestContext, commercetools: CommercetoolsAPI, factory: CompanyRegistrationFactoryWithOutput<TFactory>);
|
|
12
|
+
protected getClient(): Promise<import("@commercetools/platform-sdk").ByProjectKeyMeRequestBuilder>;
|
|
13
|
+
/**
|
|
14
|
+
* Extension point.
|
|
15
|
+
* @param payload
|
|
16
|
+
* @returns
|
|
17
|
+
*/
|
|
18
|
+
protected requestRegistrationPayload(payload: CompanyRegistrationMutationRegister): MyCompanyDraft;
|
|
19
|
+
requestRegistration(payload: CompanyRegistrationMutationRegister): Promise<Result<CompanyRegistrationRequest>>;
|
|
20
|
+
checkRequestStatus(payload: CompanyRegistrationQueryCheckRegistrationStatus): Promise<Result<CompanyRegistrationRequest>>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { BusinessUnit, MyBusinessUnitUpdateAction, Address as CTAddress } from '@commercetools/platform-sdk';
|
|
2
|
+
import type { Cache, CompanyFactory, CompanyFactoryWithOutput, NotFoundError, Company, CompanyMutationAddShippingAddress, CompanyMutationMakeShippingAddressDefault, CompanyMutationRemoveShippingAddress, CompanyMutationUpdateShippingAddress, CompanyQueryById, RequestContext, Result, Address, CompanyPaginatedList, CompanyQueryList } from '@reactionary/core';
|
|
3
|
+
import { CompanyCapability } from '@reactionary/core';
|
|
4
|
+
import type { CommercetoolsAPI } from '../core/client.js';
|
|
5
|
+
import type { CommercetoolsCompanyFactory } from '../factories/company/company.factory.js';
|
|
6
|
+
import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
|
|
7
|
+
export declare class CommercetoolsCompanyCapability<TFactory extends CompanyFactory = CommercetoolsCompanyFactory> extends CompanyCapability {
|
|
8
|
+
protected config: CommercetoolsConfiguration;
|
|
9
|
+
protected commercetools: CommercetoolsAPI;
|
|
10
|
+
protected factory: CompanyFactoryWithOutput<TFactory>;
|
|
11
|
+
constructor(config: CommercetoolsConfiguration, cache: Cache, context: RequestContext, commercetools: CommercetoolsAPI, factory: CompanyFactoryWithOutput<TFactory>);
|
|
12
|
+
protected getClient(): Promise<import("@commercetools/platform-sdk").ByProjectKeyMeRequestBuilder>;
|
|
13
|
+
protected createCTAddressDraft(address: Address): CTAddress;
|
|
14
|
+
protected getBusinessUnit(key: string): Promise<BusinessUnit | null>;
|
|
15
|
+
protected updateBusinessUnit(key: string, version: number, actions: MyBusinessUnitUpdateAction[]): Promise<BusinessUnit>;
|
|
16
|
+
getById(payload: CompanyQueryById): Promise<Result<Company>>;
|
|
17
|
+
protected addShippingAddressPayload(payload: CompanyMutationAddShippingAddress): MyBusinessUnitUpdateAction[];
|
|
18
|
+
addShippingAddress(payload: CompanyMutationAddShippingAddress): Promise<Result<Company, NotFoundError>>;
|
|
19
|
+
protected updateShippingAddressPayload(payload: CompanyMutationUpdateShippingAddress, businessUnit: BusinessUnit): MyBusinessUnitUpdateAction[] | undefined;
|
|
20
|
+
updateShippingAddress(payload: CompanyMutationUpdateShippingAddress): Promise<Result<Company, NotFoundError>>;
|
|
21
|
+
protected removeShippingAddressPayload(payload: CompanyMutationRemoveShippingAddress, businessUnit: BusinessUnit): MyBusinessUnitUpdateAction[] | undefined;
|
|
22
|
+
removeShippingAddress(payload: CompanyMutationRemoveShippingAddress): Promise<Result<Company, NotFoundError>>;
|
|
23
|
+
protected makeShippingAddressDefaultPayload(payload: CompanyMutationMakeShippingAddressDefault, businessUnit: BusinessUnit): MyBusinessUnitUpdateAction[] | undefined;
|
|
24
|
+
makeShippingAddressDefault(payload: CompanyMutationMakeShippingAddressDefault): Promise<Result<Company, NotFoundError>>;
|
|
25
|
+
protected listCompaniesPayload(payload: CompanyQueryList): {
|
|
26
|
+
limit: number;
|
|
27
|
+
offset: number;
|
|
28
|
+
};
|
|
29
|
+
listCompanies(payload: CompanyQueryList): Promise<Result<CompanyPaginatedList>>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Associate, BusinessUnit, ByProjectKeyRequestBuilder, CustomObjectDraft } from '@commercetools/platform-sdk';
|
|
2
|
+
import type { Cache, EmployeeInvitationFactory, EmployeeInvitationFactoryWithOutput, NotFoundError, EmployeeInvitation, EmployeeInvitationQueryList, EmployeeInvitationStatus, EmployeeIssuedInvitation, EmployeeInvitationPaginatedList, EmployeeInvitationMutationAcceptInvitation, EmployeeInvitationMutationInviteEmployee, EmployeeInvitationMutationRevokeInvitation, CompanyIdentifier, PaginationOptions, RequestContext, Result } from '@reactionary/core';
|
|
3
|
+
import { EmployeeInvitationCapability } from '@reactionary/core';
|
|
4
|
+
import type { CommercetoolsAPI } from '../core/client.js';
|
|
5
|
+
import { type CommercetoolsEmployeeInvitationFactory } from '../factories/employee-invitation/employee-invitation.factory.js';
|
|
6
|
+
import type { CommercetoolsEmployeeInviteCustomObject } from '../schema/commercetools.schema.js';
|
|
7
|
+
import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
|
|
8
|
+
export declare class CommercetoolsEmployeeInvitationCapability<TFactory extends EmployeeInvitationFactory = CommercetoolsEmployeeInvitationFactory> extends EmployeeInvitationCapability {
|
|
9
|
+
protected config: CommercetoolsConfiguration;
|
|
10
|
+
protected commercetools: CommercetoolsAPI;
|
|
11
|
+
protected factory: EmployeeInvitationFactoryWithOutput<TFactory>;
|
|
12
|
+
constructor(config: CommercetoolsConfiguration, cache: Cache, context: RequestContext, commercetools: CommercetoolsAPI, factory: EmployeeInvitationFactoryWithOutput<TFactory>);
|
|
13
|
+
protected getClient(): Promise<import("@commercetools/platform-sdk").ByProjectKeyAsAssociateByAssociateIdRequestBuilder>;
|
|
14
|
+
protected getBusinessUnit(key: string, extraExpands?: string[]): Promise<BusinessUnit | null>;
|
|
15
|
+
protected findAssociateByEmail(businessUnit: BusinessUnit, email: string): Associate | undefined;
|
|
16
|
+
protected getAdminClient(): Promise<ByProjectKeyRequestBuilder>;
|
|
17
|
+
protected makeKeyFromCompanyIdentifier(companyIdentifier: CompanyIdentifier): string;
|
|
18
|
+
protected makeKeyFromEmail(email: string): string;
|
|
19
|
+
protected fetchInvitationIdsByKey(adminClient: ByProjectKeyRequestBuilder, key: string): Promise<string[]>;
|
|
20
|
+
protected addInvitationToEntityIndex(adminClient: ByProjectKeyRequestBuilder, indexKey: string, invitationId: string): Promise<void>;
|
|
21
|
+
protected addInvitationToEmailIndex(adminClient: ByProjectKeyRequestBuilder, email: string, invitationId: string): Promise<void>;
|
|
22
|
+
protected addInvitationToCompanyIndex(adminClient: ByProjectKeyRequestBuilder, companyIdentifier: CompanyIdentifier, invitationId: string): Promise<void>;
|
|
23
|
+
protected updateInvitationStatus(adminClient: ByProjectKeyRequestBuilder, invitationKey: string, invitation: CommercetoolsEmployeeInviteCustomObject, newStatus: EmployeeInvitationStatus): Promise<void>;
|
|
24
|
+
protected fetchInvitations(adminClient: ByProjectKeyRequestBuilder, indexKey: string, onlyActive: boolean, paginationOptions?: PaginationOptions): Promise<CommercetoolsEmployeeInviteCustomObject[]>;
|
|
25
|
+
protected fetchAllInvitationsForCompany(adminClient: ByProjectKeyRequestBuilder, companyIdentifier: CompanyIdentifier, onlyActive: boolean, paginationOptions?: PaginationOptions): Promise<CommercetoolsEmployeeInviteCustomObject[]>;
|
|
26
|
+
protected fetchAllInvitationsForUser(adminClient: ByProjectKeyRequestBuilder, userEmail: string, onlyActive: boolean, paginationOptions?: PaginationOptions): Promise<CommercetoolsEmployeeInviteCustomObject[]>;
|
|
27
|
+
protected fetchInvitationByKey(adminClient: ByProjectKeyRequestBuilder, invitationKey: string): Promise<CommercetoolsEmployeeInviteCustomObject | null>;
|
|
28
|
+
protected inviteEmployeePayload(payload: EmployeeInvitationMutationInviteEmployee, tokenHash: string): CustomObjectDraft;
|
|
29
|
+
protected createTokenHash(rawToken: string): Promise<string>;
|
|
30
|
+
inviteEmployee(payload: EmployeeInvitationMutationInviteEmployee): Promise<Result<EmployeeIssuedInvitation>>;
|
|
31
|
+
acceptInvitation(payload: EmployeeInvitationMutationAcceptInvitation): Promise<Result<EmployeeInvitation>>;
|
|
32
|
+
revokeInvitation(payload: EmployeeInvitationMutationRevokeInvitation): Promise<Result<void, NotFoundError>>;
|
|
33
|
+
listInvitations(payload: EmployeeInvitationQueryList): Promise<Result<EmployeeInvitationPaginatedList>>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Associate, BusinessUnit, MyBusinessUnitUpdateAction } from '@commercetools/platform-sdk';
|
|
2
|
+
import type { Cache, EmployeeFactory, EmployeeFactoryWithOutput, EmployeeMutationAssignRole, EmployeeMutationRemoveEmployee, EmployeeMutationUnassignRole, EmployeeQueryByEmail, EmployeeQueryList, NotFoundError, Employee, EmployeePaginatedList, RequestContext, Result } from '@reactionary/core';
|
|
3
|
+
import { EmployeeCapability } from '@reactionary/core';
|
|
4
|
+
import type { CommercetoolsAPI } from '../core/client.js';
|
|
5
|
+
import { type CommercetoolsEmployeeFactory } from '../factories/employee/employee.factory.js';
|
|
6
|
+
import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
|
|
7
|
+
export declare class CommercetoolsEmployeeCapability<TFactory extends EmployeeFactory = CommercetoolsEmployeeFactory> extends EmployeeCapability {
|
|
8
|
+
protected config: CommercetoolsConfiguration;
|
|
9
|
+
protected commercetools: CommercetoolsAPI;
|
|
10
|
+
protected factory: EmployeeFactoryWithOutput<TFactory>;
|
|
11
|
+
constructor(config: CommercetoolsConfiguration, cache: Cache, context: RequestContext, commercetools: CommercetoolsAPI, factory: EmployeeFactoryWithOutput<TFactory>);
|
|
12
|
+
protected getClient(): Promise<import("@commercetools/platform-sdk").ByProjectKeyAsAssociateByAssociateIdRequestBuilder>;
|
|
13
|
+
protected getAdminClient(): Promise<import("@commercetools/platform-sdk").ByProjectKeyRequestBuilder>;
|
|
14
|
+
getBusinessUnit(key: string, extraExpands?: string[]): Promise<BusinessUnit | null>;
|
|
15
|
+
protected updateBusinessUnit(key: string, version: number, actions: MyBusinessUnitUpdateAction[]): Promise<BusinessUnit>;
|
|
16
|
+
protected getAssociateRole(associate: Associate): string | undefined;
|
|
17
|
+
protected getRoles(associate: Associate): string[];
|
|
18
|
+
protected findAssociateByCustomerId(businessUnit: BusinessUnit, customerId: string): Associate | undefined;
|
|
19
|
+
findAssociateByEmail(businessUnit: BusinessUnit, email: string): Associate | undefined;
|
|
20
|
+
listEmployees(payload: EmployeeQueryList): Promise<Result<EmployeePaginatedList>>;
|
|
21
|
+
getByEmail(payload: EmployeeQueryByEmail): Promise<Result<Employee>>;
|
|
22
|
+
protected assignRolePayload(payload: EmployeeMutationAssignRole): MyBusinessUnitUpdateAction[];
|
|
23
|
+
assignRole(payload: EmployeeMutationAssignRole): Promise<Result<Employee, NotFoundError>>;
|
|
24
|
+
/**
|
|
25
|
+
* The CT role assigned when you have no other roles in the org
|
|
26
|
+
* @returns
|
|
27
|
+
*/
|
|
28
|
+
protected getDefaultRole(): string;
|
|
29
|
+
protected unassignRolePayload(payload: EmployeeMutationUnassignRole, associate: Associate): MyBusinessUnitUpdateAction[];
|
|
30
|
+
unassignRole(payload: EmployeeMutationUnassignRole): Promise<Result<Employee, NotFoundError>>;
|
|
31
|
+
protected removeEmployeePayload(payload: EmployeeMutationRemoveEmployee): MyBusinessUnitUpdateAction[];
|
|
32
|
+
removeEmployee(payload: EmployeeMutationRemoveEmployee): Promise<Result<void, NotFoundError>>;
|
|
33
|
+
}
|
|
@@ -13,3 +13,6 @@ export * from './product-search.capability.js';
|
|
|
13
13
|
export * from './store.capability.js';
|
|
14
14
|
export * from './order.capability.js';
|
|
15
15
|
export * from './checkout.capability.js';
|
|
16
|
+
export * from './company-registration.capability.js';
|
|
17
|
+
export * from './company.capability.js';
|
|
18
|
+
export * from './employee.capability.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type * as z from 'zod';
|
|
2
2
|
import { type CommercetoolsCapabilities, type CommercetoolsCapabilitiesSchema } from '../schema/capabilities.schema.js';
|
|
3
|
-
export declare const capabilityKeys: readonly ["product", "profile", "productSearch", "productAssociations", "productList", "productReviews", "identity", "cart", "inventory", "price", "category", "checkout", "store", "order", "orderSearch"];
|
|
3
|
+
export declare const capabilityKeys: readonly ["product", "profile", "productSearch", "productAssociations", "productList", "productReviews", "identity", "cart", "inventory", "price", "category", "checkout", "store", "order", "orderSearch", "companyRegistration", "company", "employee", "employeeInvitation"];
|
|
4
4
|
export type OverridableCapabilityKey = (typeof capabilityKeys)[number];
|
|
5
5
|
type ParsedCapabilities = z.infer<typeof CommercetoolsCapabilitiesSchema>;
|
|
6
6
|
export type CapabilityDescriptor = {
|
|
@@ -16,6 +16,10 @@ import type { CommercetoolsProductReviewsFactory } from '../factories/product-re
|
|
|
16
16
|
import type { CommercetoolsProductSearchFactory } from '../factories/product-search/product-search.factory.js';
|
|
17
17
|
import type { CommercetoolsProfileFactory } from '../factories/profile/profile.factory.js';
|
|
18
18
|
import type { CommercetoolsStoreFactory } from '../factories/store/store.factory.js';
|
|
19
|
+
import type { CommercetoolsCompanyRegistrationFactory } from '../factories/company-registration/company-registration.factory.js';
|
|
20
|
+
import type { CommercetoolsCompanyFactory } from '../factories/company/company.factory.js';
|
|
21
|
+
import type { CommercetoolsEmployeeFactory } from '../factories/employee/employee.factory.js';
|
|
22
|
+
import type { CommercetoolsEmployeeInvitationFactory } from '../factories/employee-invitation/employee-invitation.factory.js';
|
|
19
23
|
import type { CommercetoolsCartCapability } from '../capabilities/cart.capability.js';
|
|
20
24
|
import type { CommercetoolsCategoryCapability } from '../capabilities/category.capability.js';
|
|
21
25
|
import type { CommercetoolsCheckoutCapability } from '../capabilities/checkout.capability.js';
|
|
@@ -31,6 +35,10 @@ import type { CommercetoolsProductReviewsCapability } from '../capabilities/prod
|
|
|
31
35
|
import type { CommercetoolsProductSearchCapability } from '../capabilities/product-search.capability.js';
|
|
32
36
|
import type { CommercetoolsProfileCapability } from '../capabilities/profile.capability.js';
|
|
33
37
|
import type { CommercetoolsStoreCapability } from '../capabilities/store.capability.js';
|
|
38
|
+
import type { CommercetoolsCompanyRegistrationCapability } from '../capabilities/company-registration.capability.js';
|
|
39
|
+
import type { CommercetoolsCompanyCapability } from '../capabilities/company.capability.js';
|
|
40
|
+
import type { CommercetoolsEmployeeCapability } from '../capabilities/employee.capability.js';
|
|
41
|
+
import type { CommercetoolsEmployeeInvitationCapability } from '../capabilities/employee-invitation.capability.js';
|
|
34
42
|
type EnabledCapability<TCapability> = TCapability extends {
|
|
35
43
|
enabled: true;
|
|
36
44
|
} ? true : false;
|
|
@@ -61,6 +69,10 @@ type FactoryContractMap = {
|
|
|
61
69
|
category: CategoryFactory;
|
|
62
70
|
store: StoreFactory;
|
|
63
71
|
profile: ProfileFactory;
|
|
72
|
+
companyRegistration: CommercetoolsCompanyRegistrationFactory;
|
|
73
|
+
company: CommercetoolsCompanyFactory;
|
|
74
|
+
employee: CommercetoolsEmployeeFactory;
|
|
75
|
+
employeeInvitation: CommercetoolsEmployeeInvitationFactory;
|
|
64
76
|
};
|
|
65
77
|
type DefaultFactoryMap = {
|
|
66
78
|
product: CommercetoolsProductFactory;
|
|
@@ -78,6 +90,10 @@ type DefaultFactoryMap = {
|
|
|
78
90
|
category: CommercetoolsCategoryFactory;
|
|
79
91
|
store: CommercetoolsStoreFactory;
|
|
80
92
|
profile: CommercetoolsProfileFactory;
|
|
93
|
+
companyRegistration: CommercetoolsCompanyRegistrationFactory;
|
|
94
|
+
company: CommercetoolsCompanyFactory;
|
|
95
|
+
employee: CommercetoolsEmployeeFactory;
|
|
96
|
+
employeeInvitation: CommercetoolsEmployeeInvitationFactory;
|
|
81
97
|
};
|
|
82
98
|
type ResolvedFactoryMap<T extends CommercetoolsCapabilities> = {
|
|
83
99
|
[K in OverridableCapabilityKey]: ExtractCapabilityFactory<T[K], FactoryContractMap[K], DefaultFactoryMap[K]>;
|
|
@@ -98,6 +114,10 @@ type DefaultCapabilityMap<T extends CommercetoolsCapabilities> = {
|
|
|
98
114
|
category: CommercetoolsCategoryCapability<ResolvedFactoryMap<T>['category']>;
|
|
99
115
|
store: CommercetoolsStoreCapability<ResolvedFactoryMap<T>['store']>;
|
|
100
116
|
profile: CommercetoolsProfileCapability<ResolvedFactoryMap<T>['profile']>;
|
|
117
|
+
companyRegistration: CommercetoolsCompanyRegistrationCapability;
|
|
118
|
+
company: CommercetoolsCompanyCapability;
|
|
119
|
+
employee: CommercetoolsEmployeeCapability;
|
|
120
|
+
employeeInvitation: CommercetoolsEmployeeInvitationCapability;
|
|
101
121
|
};
|
|
102
122
|
type CapabilityImplementationMap<T extends CommercetoolsCapabilities> = {
|
|
103
123
|
[K in OverridableCapabilityKey]: ExtractCapabilityImplementation<T[K], DefaultCapabilityMap<T>[K]>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { BusinessUnit, BusinessUnitPagedQueryResponse, Address as CTAddress } from '@commercetools/platform-sdk';
|
|
2
|
+
import type { CompanyPaginatedListSchema, CompanySchema } from '@reactionary/core';
|
|
3
|
+
import { type AnyCompanyPaginatedListSchema, type AnyCompanySchema, type CompanyFactory, type CompanyQueryList, type RequestContext } from '@reactionary/core';
|
|
4
|
+
import type * as z from 'zod';
|
|
5
|
+
export declare class CommercetoolsCompanyFactory<TCompanySchema extends AnyCompanySchema = typeof CompanySchema, TCompanyPaginatedListSchema extends AnyCompanyPaginatedListSchema = typeof CompanyPaginatedListSchema> implements CompanyFactory<TCompanySchema, TCompanyPaginatedListSchema> {
|
|
6
|
+
readonly companySchema: TCompanySchema;
|
|
7
|
+
readonly companyPaginatedListSchema: TCompanyPaginatedListSchema;
|
|
8
|
+
constructor(companySchema: TCompanySchema, companyPaginatedListSchema: TCompanyPaginatedListSchema);
|
|
9
|
+
parseCompanyPaginatedList(context: RequestContext, data: BusinessUnitPagedQueryResponse, payload: CompanyQueryList): z.output<TCompanyPaginatedListSchema>;
|
|
10
|
+
parseCompany(_context: RequestContext, data: BusinessUnit): z.output<TCompanySchema>;
|
|
11
|
+
protected mapBusinessUnitStatus(status: string): 'active' | 'blocked';
|
|
12
|
+
protected parseAddress(address: CTAddress): {
|
|
13
|
+
identifier: {
|
|
14
|
+
nickName: string;
|
|
15
|
+
};
|
|
16
|
+
firstName: string;
|
|
17
|
+
lastName: string;
|
|
18
|
+
streetAddress: string;
|
|
19
|
+
streetNumber: string;
|
|
20
|
+
city: string;
|
|
21
|
+
region: string;
|
|
22
|
+
postalCode: string;
|
|
23
|
+
countryCode: string;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { BusinessUnit } from '@commercetools/platform-sdk';
|
|
2
|
+
import type { CompanyRegistrationFactory, CompanyRegistrationRequest, CompanyRegistrationRequestApprovalStatus, RequestContext } from '@reactionary/core';
|
|
3
|
+
export declare class CommercetoolsCompanyRegistrationFactory implements CompanyRegistrationFactory {
|
|
4
|
+
companyRegistrationRequestSchema: import("zod").ZodObject<{
|
|
5
|
+
identifier: import("zod").ZodObject<{
|
|
6
|
+
key: import("zod").ZodString;
|
|
7
|
+
}, import("zod/v4/core").$loose>;
|
|
8
|
+
companyIdentifier: import("zod").ZodObject<{
|
|
9
|
+
taxIdentifier: import("zod").ZodString;
|
|
10
|
+
}, import("zod/v4/core").$loose>;
|
|
11
|
+
name: import("zod").ZodString;
|
|
12
|
+
pointOfContact: import("zod").ZodObject<{
|
|
13
|
+
email: import("zod").ZodEmail;
|
|
14
|
+
phone: import("zod").ZodOptional<import("zod").ZodString>;
|
|
15
|
+
}, import("zod/v4/core").$loose>;
|
|
16
|
+
status: import("zod").ZodEnum<{
|
|
17
|
+
pending: "pending";
|
|
18
|
+
approved: "approved";
|
|
19
|
+
denied: "denied";
|
|
20
|
+
}>;
|
|
21
|
+
comment: import("zod").ZodOptional<import("zod").ZodString>;
|
|
22
|
+
}, import("zod/v4/core").$strip>;
|
|
23
|
+
parseCompanyRegistrationRequest(_context: RequestContext, data: BusinessUnit): CompanyRegistrationRequest;
|
|
24
|
+
mapBusinessUnitStatus(status: string): CompanyRegistrationRequestApprovalStatus;
|
|
25
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Associate } from '@commercetools/platform-sdk';
|
|
2
|
+
import type { EmployeePaginatedListSchema, EmployeeSchema } from '@reactionary/core';
|
|
3
|
+
import { type AnyEmployeePaginatedListSchema, type AnyEmployeeSchema, type CompanyIdentifier, type EmployeeFactory, type EmployeeQueryList, type EmployeeRole, type RequestContext } from '@reactionary/core';
|
|
4
|
+
import type * as z from 'zod';
|
|
5
|
+
type ParseEmployeeInput = {
|
|
6
|
+
company: CompanyIdentifier;
|
|
7
|
+
associate: Associate;
|
|
8
|
+
};
|
|
9
|
+
export type CommercetoolsEmployeeFactoryPaginatedInput = {
|
|
10
|
+
items: Associate[];
|
|
11
|
+
totalCount: number;
|
|
12
|
+
};
|
|
13
|
+
export declare class CommercetoolsEmployeeFactory<TEmployeeSchema extends AnyEmployeeSchema = typeof EmployeeSchema, TEmployeePaginatedListSchema extends AnyEmployeePaginatedListSchema = typeof EmployeePaginatedListSchema> implements EmployeeFactory<TEmployeeSchema, TEmployeePaginatedListSchema> {
|
|
14
|
+
readonly employeeSchema: TEmployeeSchema;
|
|
15
|
+
readonly employeePaginatedListSchema: TEmployeePaginatedListSchema;
|
|
16
|
+
constructor(employeeSchema: TEmployeeSchema, employeePaginatedListSchema: TEmployeePaginatedListSchema);
|
|
17
|
+
parseEmployee(_context: RequestContext, input: ParseEmployeeInput): z.output<TEmployeeSchema>;
|
|
18
|
+
parseEmployeePaginatedList(context: RequestContext, data: CommercetoolsEmployeeFactoryPaginatedInput, query: EmployeeQueryList): z.output<TEmployeePaginatedListSchema>;
|
|
19
|
+
mapRole(role: EmployeeRole): string;
|
|
20
|
+
protected parseRole(role: string | undefined): EmployeeRole;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type { EmployeeInvitationFactory, EmployeeInvitation, EmployeeInvitationPaginatedList, EmployeeIssuedInvitation, EmployeeInvitationMutationInviteEmployee, EmployeeInvitationQueryList, EmployeeRole, RequestContext } from '@reactionary/core';
|
|
2
|
+
import type { CommercetoolsEmployeeInviteCustomObject } from '../../schema/commercetools.schema.js';
|
|
3
|
+
export declare const COMMERCERTOOLS_CUSTOM_OBJECT_CONTAINER_EMPLOYEE_INVITATIONS = "reactionary-employee-invitation";
|
|
4
|
+
export declare const COMMERCERTOOLS_CUSTOM_OBJECT_CONTAINER_EMPLOYEE_INVITATIONS_INDEX = "reactionary-employee-invitation-index";
|
|
5
|
+
export type CommercetoolsEmployeeInvitationFactoryIssuedInvitationInput = {
|
|
6
|
+
invite: CommercetoolsEmployeeInviteCustomObject;
|
|
7
|
+
securityToken: string;
|
|
8
|
+
};
|
|
9
|
+
export declare class CommercetoolsEmployeeInvitationFactory implements EmployeeInvitationFactory {
|
|
10
|
+
employeeInvitationSchema: import("zod").ZodObject<{
|
|
11
|
+
identifier: import("zod").ZodObject<{
|
|
12
|
+
key: import("zod").ZodString;
|
|
13
|
+
}, import("zod/v4/core").$loose>;
|
|
14
|
+
company: import("zod").ZodObject<{
|
|
15
|
+
taxIdentifier: import("zod").ZodString;
|
|
16
|
+
}, import("zod/v4/core").$loose>;
|
|
17
|
+
status: import("zod").ZodEnum<{
|
|
18
|
+
invited: "invited";
|
|
19
|
+
accepted: "accepted";
|
|
20
|
+
revoked: "revoked";
|
|
21
|
+
rejected: "rejected";
|
|
22
|
+
}>;
|
|
23
|
+
email: import("zod").ZodEmail;
|
|
24
|
+
role: import("zod").ZodEnum<{
|
|
25
|
+
admin: "admin";
|
|
26
|
+
manager: "manager";
|
|
27
|
+
employee: "employee";
|
|
28
|
+
}>;
|
|
29
|
+
validUntil: import("zod").ZodString;
|
|
30
|
+
}, import("zod/v4/core").$loose>;
|
|
31
|
+
employeeIssuedInvitationSchema: import("zod").ZodObject<{
|
|
32
|
+
identifier: import("zod").ZodObject<{
|
|
33
|
+
key: import("zod").ZodString;
|
|
34
|
+
}, import("zod/v4/core").$loose>;
|
|
35
|
+
company: import("zod").ZodObject<{
|
|
36
|
+
taxIdentifier: import("zod").ZodString;
|
|
37
|
+
}, import("zod/v4/core").$loose>;
|
|
38
|
+
status: import("zod").ZodEnum<{
|
|
39
|
+
invited: "invited";
|
|
40
|
+
accepted: "accepted";
|
|
41
|
+
revoked: "revoked";
|
|
42
|
+
rejected: "rejected";
|
|
43
|
+
}>;
|
|
44
|
+
email: import("zod").ZodEmail;
|
|
45
|
+
role: import("zod").ZodEnum<{
|
|
46
|
+
admin: "admin";
|
|
47
|
+
manager: "manager";
|
|
48
|
+
employee: "employee";
|
|
49
|
+
}>;
|
|
50
|
+
validUntil: import("zod").ZodString;
|
|
51
|
+
securityToken: import("zod").ZodString;
|
|
52
|
+
}, import("zod/v4/core").$loose>;
|
|
53
|
+
employeeInvitationPaginatedListSchema: import("zod").ZodObject<{
|
|
54
|
+
pageNumber: import("zod").ZodNumber;
|
|
55
|
+
pageSize: import("zod").ZodNumber;
|
|
56
|
+
totalCount: import("zod").ZodNumber;
|
|
57
|
+
totalPages: import("zod").ZodNumber;
|
|
58
|
+
items: import("zod").ZodArray<import("zod").ZodObject<{
|
|
59
|
+
identifier: import("zod").ZodObject<{
|
|
60
|
+
key: import("zod").ZodString;
|
|
61
|
+
}, import("zod/v4/core").$loose>;
|
|
62
|
+
company: import("zod").ZodObject<{
|
|
63
|
+
taxIdentifier: import("zod").ZodString;
|
|
64
|
+
}, import("zod/v4/core").$loose>;
|
|
65
|
+
status: import("zod").ZodEnum<{
|
|
66
|
+
invited: "invited";
|
|
67
|
+
accepted: "accepted";
|
|
68
|
+
revoked: "revoked";
|
|
69
|
+
rejected: "rejected";
|
|
70
|
+
}>;
|
|
71
|
+
email: import("zod").ZodEmail;
|
|
72
|
+
role: import("zod").ZodEnum<{
|
|
73
|
+
admin: "admin";
|
|
74
|
+
manager: "manager";
|
|
75
|
+
employee: "employee";
|
|
76
|
+
}>;
|
|
77
|
+
validUntil: import("zod").ZodString;
|
|
78
|
+
}, import("zod/v4/core").$loose>>;
|
|
79
|
+
identifier: import("zod").ZodObject<{
|
|
80
|
+
company: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
81
|
+
taxIdentifier: import("zod").ZodString;
|
|
82
|
+
}, import("zod/v4/core").$loose>>;
|
|
83
|
+
email: import("zod").ZodOptional<import("zod").ZodEmail>;
|
|
84
|
+
paginationOptions: import("zod").ZodObject<{
|
|
85
|
+
pageNumber: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
86
|
+
pageSize: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
87
|
+
}, import("zod/v4/core").$loose>;
|
|
88
|
+
}, import("zod/v4/core").$loose>;
|
|
89
|
+
}, import("zod/v4/core").$strip>;
|
|
90
|
+
parseEmployeeInvitation(context: RequestContext, data: CommercetoolsEmployeeInviteCustomObject, payload?: EmployeeInvitationMutationInviteEmployee): EmployeeInvitation;
|
|
91
|
+
parseEmployeeIssuedInvitation(context: RequestContext, data: CommercetoolsEmployeeInvitationFactoryIssuedInvitationInput, payload?: EmployeeInvitationMutationInviteEmployee): EmployeeIssuedInvitation;
|
|
92
|
+
parseEmployeeInvitationPaginatedList(context: RequestContext, data: CommercetoolsEmployeeInviteCustomObject[], query: EmployeeInvitationQueryList): EmployeeInvitationPaginatedList;
|
|
93
|
+
mapRole(role: EmployeeRole): string;
|
|
94
|
+
}
|
package/src/index.d.ts
CHANGED
|
@@ -9,6 +9,10 @@ export * from './capabilities/product-associations.capability.js';
|
|
|
9
9
|
export * from './capabilities/product.capability.js';
|
|
10
10
|
export * from './capabilities/product-reviews.capability.js';
|
|
11
11
|
export * from './capabilities/product-search.capability.js';
|
|
12
|
+
export * from './capabilities/company-registration.capability.js';
|
|
13
|
+
export * from './capabilities/company.capability.js';
|
|
14
|
+
export * from './capabilities/employee.capability.js';
|
|
15
|
+
export * from './capabilities/employee-invitation.capability.js';
|
|
12
16
|
export * from './factories/product/product.factory.js';
|
|
13
17
|
export * from './factories/checkout/checkout.factory.js';
|
|
14
18
|
export * from './factories/product-search/product-search.factory.js';
|
|
@@ -24,5 +28,9 @@ export * from './factories/product-associations/product-associations.factory.js'
|
|
|
24
28
|
export * from './factories/product-reviews/product-reviews.factory.js';
|
|
25
29
|
export * from './factories/product-list/product-list.factory.js';
|
|
26
30
|
export * from './factories/identity/identity.factory.js';
|
|
31
|
+
export * from './factories/company-registration/company-registration.factory.js';
|
|
32
|
+
export * from './factories/company/company.factory.js';
|
|
33
|
+
export * from './factories/employee/employee.factory.js';
|
|
34
|
+
export * from './factories/employee-invitation/employee-invitation.factory.js';
|
|
27
35
|
export * from './schema/capabilities.schema.js';
|
|
28
36
|
export * from './schema/configuration.schema.js';
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import type { Cache, CartFactory, CartFactoryWithOutput, CartCapability, CategoryFactory, CategoryFactoryWithOutput, CategoryCapability, CheckoutFactory, CheckoutFactoryWithOutput, CheckoutCapability, IdentityFactory, IdentityFactoryWithOutput, IdentityCapability, InventoryFactory, InventoryFactoryWithOutput, InventoryCapability, OrderFactory, OrderFactoryWithOutput, OrderCapability, OrderSearchFactory, OrderSearchFactoryWithOutput, OrderSearchCapability, PriceFactory, PriceFactoryWithOutput, PriceCapability, ProductAssociationsFactory, ProductAssociationsFactoryWithOutput, ProductAssociationsCapability, ProductFactory, ProductFactoryWithOutput, ProductListFactory, ProductListFactoryWithOutput, ProductListCapability, ProductCapability, ProductReviewsFactory, ProductReviewsFactoryWithOutput, ProductReviewsCapability, ProductSearchFactory, ProductSearchFactoryWithOutput, ProductSearchCapability, ProfileFactory, ProfileFactoryWithOutput, ProfileCapability, RequestContext, StoreFactory, StoreFactoryWithOutput, StoreCapability } from '@reactionary/core';
|
|
1
|
+
import type { Cache, CartFactory, CartFactoryWithOutput, CartCapability, CategoryFactory, CategoryFactoryWithOutput, CategoryCapability, CheckoutFactory, CheckoutFactoryWithOutput, CheckoutCapability, IdentityFactory, IdentityFactoryWithOutput, IdentityCapability, InventoryFactory, InventoryFactoryWithOutput, InventoryCapability, OrderFactory, OrderFactoryWithOutput, OrderCapability, OrderSearchFactory, OrderSearchFactoryWithOutput, OrderSearchCapability, PriceFactory, PriceFactoryWithOutput, PriceCapability, ProductAssociationsFactory, ProductAssociationsFactoryWithOutput, ProductAssociationsCapability, ProductFactory, ProductFactoryWithOutput, ProductListFactory, ProductListFactoryWithOutput, ProductListCapability, ProductCapability, ProductReviewsFactory, ProductReviewsFactoryWithOutput, ProductReviewsCapability, ProductSearchFactory, ProductSearchFactoryWithOutput, ProductSearchCapability, ProfileFactory, ProfileFactoryWithOutput, ProfileCapability, RequestContext, StoreFactory, StoreFactoryWithOutput, StoreCapability, CompanyRegistrationCapability, CompanyCapability, EmployeeCapability, EmployeeInvitationCapability } from '@reactionary/core';
|
|
2
2
|
import type { CommercetoolsAPI } from '../core/client.js';
|
|
3
3
|
import type { CommercetoolsConfiguration } from './configuration.schema.js';
|
|
4
|
+
import type { CommercetoolsCompanyRegistrationFactory } from '../factories/company-registration/company-registration.factory.js';
|
|
5
|
+
import type { CommercetoolsCompanyFactory } from '../factories/company/company.factory.js';
|
|
6
|
+
import type { CommercetoolsEmployeeFactory } from '../factories/employee/employee.factory.js';
|
|
7
|
+
import type { CommercetoolsEmployeeInvitationFactory } from '../factories/employee-invitation/employee-invitation.factory.js';
|
|
4
8
|
import * as z from 'zod';
|
|
5
9
|
export declare const CommercetoolsCapabilitiesSchema: z.ZodObject<{
|
|
6
10
|
productSearch: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
@@ -42,6 +46,18 @@ export declare const CommercetoolsCapabilitiesSchema: z.ZodObject<{
|
|
|
42
46
|
profile: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
43
47
|
enabled: z.ZodBoolean;
|
|
44
48
|
}, z.core.$loose>>>;
|
|
49
|
+
companyRegistration: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
50
|
+
enabled: z.ZodBoolean;
|
|
51
|
+
}, z.core.$loose>>>;
|
|
52
|
+
company: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
53
|
+
enabled: z.ZodBoolean;
|
|
54
|
+
}, z.core.$loose>>>;
|
|
55
|
+
employee: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
56
|
+
enabled: z.ZodBoolean;
|
|
57
|
+
}, z.core.$loose>>>;
|
|
58
|
+
employeeInvitation: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
59
|
+
enabled: z.ZodBoolean;
|
|
60
|
+
}, z.core.$loose>>>;
|
|
45
61
|
product: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
46
62
|
enabled: z.ZodBoolean;
|
|
47
63
|
factory: z.ZodOptional<z.ZodUnknown>;
|
|
@@ -82,6 +98,9 @@ export type CommercetoolsStoreCapabilityConfig = CommercetoolsCapabilityConfig<S
|
|
|
82
98
|
export type CommercetoolsProfileCapabilityConfig = CommercetoolsCapabilityConfig<ProfileFactoryWithOutput<ProfileFactory>, ProfileCapability>;
|
|
83
99
|
export type CommercetoolsOrderCapabilityConfig = CommercetoolsCapabilityConfig<OrderFactoryWithOutput<OrderFactory>, OrderCapability>;
|
|
84
100
|
export type CommercetoolsOrderSearchCapabilityConfig = CommercetoolsCapabilityConfig<OrderSearchFactoryWithOutput<OrderSearchFactory>, OrderSearchCapability>;
|
|
101
|
+
export type CommercetoolsCompanyRegistrationCapabilityConfig = CommercetoolsCapabilityConfig<CommercetoolsCompanyRegistrationFactory, CompanyRegistrationCapability>;
|
|
102
|
+
export type CommercetoolsCompanyCapabilityConfig = CommercetoolsCapabilityConfig<CommercetoolsCompanyFactory, CompanyCapability>;
|
|
103
|
+
export type CommercetoolsEmployeeCapabilityConfig = CommercetoolsCapabilityConfig<CommercetoolsEmployeeFactory, EmployeeCapability>;
|
|
85
104
|
export type CommercetoolsCapabilityConfigMap<TProductFactory extends ProductFactory = ProductFactory, TProductCapability extends ProductCapability = ProductCapability, TCheckoutFactory extends CheckoutFactory = CheckoutFactory, TCheckoutCapability extends CheckoutCapability = CheckoutCapability> = {
|
|
86
105
|
product: EnabledCapabilityConfig<ProductFactoryWithOutput<TProductFactory>, TProductCapability>;
|
|
87
106
|
checkout: EnabledCapabilityConfig<CheckoutFactoryWithOutput<TCheckoutFactory>, TCheckoutCapability>;
|
|
@@ -98,6 +117,10 @@ export type CommercetoolsCapabilityConfigMap<TProductFactory extends ProductFact
|
|
|
98
117
|
profile: EnabledCapabilityConfig<ProfileFactoryWithOutput<ProfileFactory>, ProfileCapability>;
|
|
99
118
|
order: EnabledCapabilityConfig<OrderFactoryWithOutput<OrderFactory>, OrderCapability>;
|
|
100
119
|
orderSearch: EnabledCapabilityConfig<OrderSearchFactoryWithOutput<OrderSearchFactory>, OrderSearchCapability>;
|
|
120
|
+
companyRegistration: EnabledCapabilityConfig<CommercetoolsCompanyRegistrationFactory, CompanyRegistrationCapability>;
|
|
121
|
+
company: EnabledCapabilityConfig<CommercetoolsCompanyFactory, CompanyCapability>;
|
|
122
|
+
employee: EnabledCapabilityConfig<CommercetoolsEmployeeFactory, EmployeeCapability>;
|
|
123
|
+
employeeInvitation: EnabledCapabilityConfig<CommercetoolsEmployeeInvitationFactory, EmployeeInvitationCapability>;
|
|
101
124
|
};
|
|
102
125
|
type CommercetoolsCapabilitiesBase = z.infer<typeof CommercetoolsCapabilitiesSchema>;
|
|
103
126
|
export type CommercetoolsCapabilities<TProductFactory extends ProductFactory = ProductFactory, TProductCapability extends ProductCapability = ProductCapability, TCheckoutFactory extends CheckoutFactory = CheckoutFactory, TCheckoutCapability extends CheckoutCapability = CheckoutCapability> = Omit<CommercetoolsCapabilitiesBase, keyof CommercetoolsCapabilityConfigMap<TProductFactory, TProductCapability, TCheckoutFactory, TCheckoutCapability>> & Partial<CommercetoolsCapabilityConfigMap<TProductFactory, TProductCapability, TCheckoutFactory, TCheckoutCapability>>;
|