@reactionary/medusa 0.10.22 → 0.10.24
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/checkout.capability.js +7 -0
- package/capabilities/company-registration.capability.js +116 -0
- package/capabilities/company.capability.js +257 -0
- package/capabilities/employee-invitation.capability.js +221 -0
- package/capabilities/employee.capability.js +265 -0
- package/core/initialize.js +84 -0
- package/factories/company/company.factory.js +83 -0
- package/factories/company-registration/company-registration.factory.js +31 -0
- package/factories/employee/employee.factory.js +48 -0
- package/factories/employee-invitation/employee-invitation.factory.js +79 -0
- package/factories/index.js +4 -0
- package/index.js +4 -0
- package/package.json +2 -2
- package/schema/capabilities.schema.js +6 -1
- package/src/capabilities/company-registration.capability.d.ts +25 -0
- package/src/capabilities/company.capability.d.ts +37 -0
- package/src/capabilities/employee-invitation.capability.d.ts +18 -0
- package/src/capabilities/employee.capability.d.ts +37 -0
- package/src/core/initialize.types.d.ts +22 -2
- package/src/factories/company/company.factory.d.ts +45 -0
- package/src/factories/company-registration/company-registration.factory.d.ts +10 -0
- package/src/factories/employee/employee.factory.d.ts +32 -0
- package/src/factories/employee-invitation/employee-invitation.factory.d.ts +40 -0
- package/src/factories/index.d.ts +4 -0
- package/src/index.d.ts +4 -0
- package/src/schema/capabilities.schema.d.ts +30 -2
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type Address, type Cache, CompanyRegistrationCapability, type CompanyRegistrationFactory, type CompanyRegistrationFactoryWithOutput, type CompanyRegistrationMutationRegister, type CompanyRegistrationQueryCheckRegistrationStatus, type CompanyRegistrationRequest, type RequestContext, type Result } from '@reactionary/core';
|
|
2
|
+
import type { MedusaAPI } from '../core/client.js';
|
|
3
|
+
import type { MedusaCompanyRegistrationFactory } from '../factories/company-registration/company-registration.factory.js';
|
|
4
|
+
import type { MedusaRawCompany } from '../factories/company/company.factory.js';
|
|
5
|
+
import type { MedusaConfiguration } from '../schema/configuration.schema.js';
|
|
6
|
+
export declare class MedusaCompanyRegistrationCapability<TFactory extends CompanyRegistrationFactory = MedusaCompanyRegistrationFactory> extends CompanyRegistrationCapability {
|
|
7
|
+
medusaApi: MedusaAPI;
|
|
8
|
+
protected config: MedusaConfiguration;
|
|
9
|
+
protected factory: CompanyRegistrationFactoryWithOutput<TFactory>;
|
|
10
|
+
constructor(config: MedusaConfiguration, cache: Cache, context: RequestContext, medusaApi: MedusaAPI, factory: CompanyRegistrationFactoryWithOutput<TFactory>);
|
|
11
|
+
protected fetchCompany(companyId: string): Promise<MedusaRawCompany | null>;
|
|
12
|
+
protected addressPayload(address: Address): {
|
|
13
|
+
address_name: string;
|
|
14
|
+
first_name: string;
|
|
15
|
+
last_name: string;
|
|
16
|
+
street_address: string;
|
|
17
|
+
street_number: string;
|
|
18
|
+
city: string;
|
|
19
|
+
region: string;
|
|
20
|
+
postal_code: string;
|
|
21
|
+
country_code: string;
|
|
22
|
+
};
|
|
23
|
+
requestRegistration(payload: CompanyRegistrationMutationRegister): Promise<Result<CompanyRegistrationRequest>>;
|
|
24
|
+
checkRequestStatus(payload: CompanyRegistrationQueryCheckRegistrationStatus): Promise<Result<CompanyRegistrationRequest>>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type Address, type Cache, type Company, CompanyCapability, type CompanyFactory, type CompanyFactoryWithOutput, type CompanyMutationAddShippingAddress, type CompanyMutationMakeShippingAddressDefault, type CompanyMutationRemoveShippingAddress, type CompanyMutationUpdateShippingAddress, type CompanyPaginatedList, type CompanyQueryById, type CompanyQueryList, type NotFoundError, type RequestContext, type Result } from '@reactionary/core';
|
|
2
|
+
import type { MedusaAPI } from '../core/client.js';
|
|
3
|
+
import type { MedusaCompanyFactory, MedusaRawCompany, MedusaRawCompanyAddress } from '../factories/company/company.factory.js';
|
|
4
|
+
import type { MedusaConfiguration } from '../schema/configuration.schema.js';
|
|
5
|
+
export declare class MedusaCompanyCapability<TFactory extends CompanyFactory = MedusaCompanyFactory> extends CompanyCapability {
|
|
6
|
+
medusaApi: MedusaAPI;
|
|
7
|
+
protected config: MedusaConfiguration;
|
|
8
|
+
protected factory: CompanyFactoryWithOutput<TFactory>;
|
|
9
|
+
constructor(config: MedusaConfiguration, cache: Cache, context: RequestContext, medusaApi: MedusaAPI, factory: CompanyFactoryWithOutput<TFactory>);
|
|
10
|
+
protected fetchCompany(companyId: string): Promise<MedusaRawCompany | null>;
|
|
11
|
+
protected fetchCompanyOrThrow(companyId: string): Promise<MedusaRawCompany>;
|
|
12
|
+
protected fetchCompanyByTaxIdentifier(taxIdentifier: string): Promise<MedusaRawCompany | null>;
|
|
13
|
+
protected findAddress(company: MedusaRawCompany, nickName: string, type: 'billing' | 'shipping'): MedusaRawCompanyAddress | undefined;
|
|
14
|
+
protected addressPayload(address: Address): {
|
|
15
|
+
address_name: string;
|
|
16
|
+
first_name: string;
|
|
17
|
+
last_name: string;
|
|
18
|
+
street_address: string;
|
|
19
|
+
street_number: string;
|
|
20
|
+
city: string;
|
|
21
|
+
region: string;
|
|
22
|
+
postal_code: string;
|
|
23
|
+
country_code: string;
|
|
24
|
+
};
|
|
25
|
+
getById(payload: CompanyQueryById): Promise<Result<Company>>;
|
|
26
|
+
/**
|
|
27
|
+
* ponytail: there's no "list companies" route on this backend - membership is only discoverable via
|
|
28
|
+
* /store/customers/me/employees, which returns company id+name but not the full Company shape, so each
|
|
29
|
+
* distinct company id is re-fetched individually. Fine for the handful of companies a person typically
|
|
30
|
+
* belongs to; upgrade path: ask the backend for a proper GET /store/companies scoped to the caller.
|
|
31
|
+
*/
|
|
32
|
+
listCompanies(payload: CompanyQueryList): Promise<Result<CompanyPaginatedList>>;
|
|
33
|
+
addShippingAddress(payload: CompanyMutationAddShippingAddress): Promise<Result<Company, NotFoundError>>;
|
|
34
|
+
updateShippingAddress(payload: CompanyMutationUpdateShippingAddress): Promise<Result<Company, NotFoundError>>;
|
|
35
|
+
removeShippingAddress(payload: CompanyMutationRemoveShippingAddress): Promise<Result<Company, NotFoundError>>;
|
|
36
|
+
makeShippingAddressDefault(payload: CompanyMutationMakeShippingAddressDefault): Promise<Result<Company, NotFoundError>>;
|
|
37
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type Cache, type EmployeeInvitation, EmployeeInvitationCapability, type EmployeeInvitationFactory, type EmployeeInvitationFactoryWithOutput, type EmployeeInvitationMutationAcceptInvitation, type EmployeeInvitationMutationInviteEmployee, type EmployeeInvitationMutationRevokeInvitation, type EmployeeInvitationPaginatedList, type EmployeeInvitationQueryList, type EmployeeIssuedInvitation, type NotFoundError, type RequestContext, type Result } from '@reactionary/core';
|
|
2
|
+
import type { MedusaAPI } from '../core/client.js';
|
|
3
|
+
import { type MedusaEmployeeInvitationFactory } from '../factories/employee-invitation/employee-invitation.factory.js';
|
|
4
|
+
import type { MedusaConfiguration } from '../schema/configuration.schema.js';
|
|
5
|
+
export declare class MedusaEmployeeInvitationCapability<TFactory extends EmployeeInvitationFactory = MedusaEmployeeInvitationFactory> extends EmployeeInvitationCapability {
|
|
6
|
+
medusaApi: MedusaAPI;
|
|
7
|
+
protected config: MedusaConfiguration;
|
|
8
|
+
protected factory: EmployeeInvitationFactoryWithOutput<TFactory>;
|
|
9
|
+
constructor(config: MedusaConfiguration, cache: Cache, context: RequestContext, medusaApi: MedusaAPI, factory: EmployeeInvitationFactoryWithOutput<TFactory>);
|
|
10
|
+
protected resolveCompanyId(taxIdentifier: string): Promise<string | null>;
|
|
11
|
+
protected fetchCompany(companyId: string): Promise<{
|
|
12
|
+
tax_identifier: string;
|
|
13
|
+
} | null>;
|
|
14
|
+
inviteEmployee(payload: EmployeeInvitationMutationInviteEmployee): Promise<Result<EmployeeIssuedInvitation>>;
|
|
15
|
+
acceptInvitation(payload: EmployeeInvitationMutationAcceptInvitation): Promise<Result<EmployeeInvitation>>;
|
|
16
|
+
revokeInvitation(payload: EmployeeInvitationMutationRevokeInvitation): Promise<Result<void, NotFoundError>>;
|
|
17
|
+
listInvitations(payload: EmployeeInvitationQueryList): Promise<Result<EmployeeInvitationPaginatedList>>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type Cache, type CompanyIdentifier, type Employee, EmployeeCapability, type EmployeeFactory, type EmployeeFactoryWithOutput, type EmployeeMutationAssignRole, type EmployeeMutationRemoveEmployee, type EmployeeMutationUnassignRole, type EmployeePaginatedList, type EmployeeQueryByEmail, type EmployeeQueryList, type IdentityIdentifier, type NotFoundError, type RequestContext, type Result } from '@reactionary/core';
|
|
2
|
+
import type { MedusaAPI } from '../core/client.js';
|
|
3
|
+
import type { MedusaEmployeeFactory, MedusaRawEmployee } from '../factories/employee/employee.factory.js';
|
|
4
|
+
import type { MedusaConfiguration } from '../schema/configuration.schema.js';
|
|
5
|
+
export declare class MedusaEmployeeCapability<TFactory extends EmployeeFactory = MedusaEmployeeFactory> extends EmployeeCapability {
|
|
6
|
+
medusaApi: MedusaAPI;
|
|
7
|
+
protected config: MedusaConfiguration;
|
|
8
|
+
protected factory: EmployeeFactoryWithOutput<TFactory>;
|
|
9
|
+
constructor(config: MedusaConfiguration, cache: Cache, context: RequestContext, medusaApi: MedusaAPI, factory: EmployeeFactoryWithOutput<TFactory>);
|
|
10
|
+
protected resolveCompanyId(taxIdentifier: string): Promise<string | null>;
|
|
11
|
+
/**
|
|
12
|
+
* ponytail: there's no `customer_id` or `role` filter on the backend's employee list route, so
|
|
13
|
+
* resolving an employee by customer id, or listing by role, means scanning the company's employee
|
|
14
|
+
* list client-side via iterateCompanyEmployeePages. Upgrade path: ask the backend to add `customer_id`
|
|
15
|
+
* and `role` filters to `StoreGetEmployeeParams`.
|
|
16
|
+
*/
|
|
17
|
+
protected fetchCompanyEmployees(companyId: string, opts?: {
|
|
18
|
+
email?: string;
|
|
19
|
+
q?: string;
|
|
20
|
+
limit?: number;
|
|
21
|
+
offset?: number;
|
|
22
|
+
}): Promise<{
|
|
23
|
+
employees: MedusaRawEmployee[];
|
|
24
|
+
count: number;
|
|
25
|
+
}>;
|
|
26
|
+
protected iterateCompanyEmployeePages(companyId: string, opts?: {
|
|
27
|
+
email?: string;
|
|
28
|
+
q?: string;
|
|
29
|
+
}): AsyncGenerator<MedusaRawEmployee[]>;
|
|
30
|
+
protected findEmployeeByCustomerId(companyId: string, customerId: string): Promise<MedusaRawEmployee | undefined>;
|
|
31
|
+
listEmployees(payload: EmployeeQueryList): Promise<Result<EmployeePaginatedList>>;
|
|
32
|
+
getByEmail(payload: EmployeeQueryByEmail): Promise<Result<Employee>>;
|
|
33
|
+
protected updateEmployeeRole(company: CompanyIdentifier, employeeIdentifier: IdentityIdentifier, role: string): Promise<Result<Employee, NotFoundError>>;
|
|
34
|
+
assignRole(payload: EmployeeMutationAssignRole): Promise<Result<Employee, NotFoundError>>;
|
|
35
|
+
unassignRole(payload: EmployeeMutationUnassignRole): Promise<Result<Employee, NotFoundError>>;
|
|
36
|
+
removeEmployee(payload: EmployeeMutationRemoveEmployee): Promise<Result<void, NotFoundError>>;
|
|
37
|
+
}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import type { CartFactory, CategoryFactory, CheckoutFactory, ClientFromCapabilities, InventoryFactory, PersonalizationProfileFactory, OrderFactory, OrderSearchFactory, PriceFactory, ProductAssociationsFactory, ProductFactory, ProductSearchFactory, ProfileFactory } from '@reactionary/core';
|
|
1
|
+
import type { CartFactory, CategoryFactory, CheckoutFactory, ClientFromCapabilities, CompanyFactory, CompanyRegistrationFactory, EmployeeFactory, EmployeeInvitationFactory, InventoryFactory, PersonalizationProfileFactory, OrderFactory, OrderSearchFactory, PriceFactory, ProductAssociationsFactory, ProductFactory, ProductSearchFactory, ProfileFactory } from '@reactionary/core';
|
|
2
2
|
import type { MedusaCapabilities } from '../schema/capabilities.schema.js';
|
|
3
3
|
import type { MedusaCartFactory } from '../factories/cart/cart.factory.js';
|
|
4
4
|
import type { MedusaCategoryFactory } from '../factories/category/category.factory.js';
|
|
5
5
|
import type { MedusaCheckoutFactory } from '../factories/checkout/checkout.factory.js';
|
|
6
|
+
import type { MedusaCompanyFactory } from '../factories/company/company.factory.js';
|
|
7
|
+
import type { MedusaCompanyRegistrationFactory } from '../factories/company-registration/company-registration.factory.js';
|
|
8
|
+
import type { MedusaEmployeeFactory } from '../factories/employee/employee.factory.js';
|
|
9
|
+
import type { MedusaEmployeeInvitationFactory } from '../factories/employee-invitation/employee-invitation.factory.js';
|
|
6
10
|
import type { MedusaInventoryFactory } from '../factories/inventory/inventory.factory.js';
|
|
7
11
|
import type { MedusaOrderFactory } from '../factories/order/order.factory.js';
|
|
8
12
|
import type { MedusaOrderSearchFactory } from '../factories/order-search/order-search.factory.js';
|
|
@@ -15,6 +19,10 @@ import type { MedusaPersonalizationProfileFactory } from '../factories/personali
|
|
|
15
19
|
import type { MedusaCartCapability } from '../capabilities/cart.capability.js';
|
|
16
20
|
import type { MedusaCategoryCapability } from '../capabilities/category.capability.js';
|
|
17
21
|
import type { MedusaCheckoutCapability } from '../capabilities/checkout.capability.js';
|
|
22
|
+
import type { MedusaCompanyCapability } from '../capabilities/company.capability.js';
|
|
23
|
+
import type { MedusaCompanyRegistrationCapability } from '../capabilities/company-registration.capability.js';
|
|
24
|
+
import type { MedusaEmployeeCapability } from '../capabilities/employee.capability.js';
|
|
25
|
+
import type { MedusaEmployeeInvitationCapability } from '../capabilities/employee-invitation.capability.js';
|
|
18
26
|
import type { MedusaInventoryCapability } from '../capabilities/inventory.capability.js';
|
|
19
27
|
import type { MedusaOrderCapability } from '../capabilities/order.capability.js';
|
|
20
28
|
import type { MedusaOrderSearchCapability } from '../capabilities/order-search.capability.js';
|
|
@@ -26,7 +34,7 @@ import type { MedusaProfileCapability } from '../capabilities/profile.capability
|
|
|
26
34
|
import type { MedusaPersonalizationProfileCapability } from '../capabilities/personalization-profile.capability.js';
|
|
27
35
|
import type { MedusaProductRecommendationsCapability } from '../capabilities/product-recommendations.capability.js';
|
|
28
36
|
import type { MedusaIdentityCapability } from '../capabilities/identity.capability.js';
|
|
29
|
-
type OverridableCapabilityKey = 'product' | 'productSearch' | 'cart' | 'checkout' | 'category' | 'price' | 'order' | 'orderSearch' | 'inventory' | 'profile' | 'productAssociations' | 'personalizationProfile';
|
|
37
|
+
type OverridableCapabilityKey = 'product' | 'productSearch' | 'cart' | 'checkout' | 'category' | 'price' | 'order' | 'orderSearch' | 'inventory' | 'profile' | 'productAssociations' | 'personalizationProfile' | 'employee' | 'employeeInvitation' | 'company' | 'companyRegistration';
|
|
30
38
|
type EnabledCapability<TCapability> = TCapability extends {
|
|
31
39
|
enabled: true;
|
|
32
40
|
} ? true : false;
|
|
@@ -57,6 +65,10 @@ type FactoryContractMap = {
|
|
|
57
65
|
profile: ProfileFactory;
|
|
58
66
|
productAssociations: ProductAssociationsFactory;
|
|
59
67
|
personalizationProfile: PersonalizationProfileFactory;
|
|
68
|
+
employee: EmployeeFactory;
|
|
69
|
+
employeeInvitation: EmployeeInvitationFactory;
|
|
70
|
+
company: CompanyFactory;
|
|
71
|
+
companyRegistration: CompanyRegistrationFactory;
|
|
60
72
|
};
|
|
61
73
|
type DefaultFactoryMap = {
|
|
62
74
|
product: MedusaProductFactory;
|
|
@@ -71,6 +83,10 @@ type DefaultFactoryMap = {
|
|
|
71
83
|
profile: MedusaProfileFactory;
|
|
72
84
|
productAssociations: MedusaProductAssociationsFactory;
|
|
73
85
|
personalizationProfile: MedusaPersonalizationProfileFactory;
|
|
86
|
+
employee: MedusaEmployeeFactory;
|
|
87
|
+
employeeInvitation: MedusaEmployeeInvitationFactory;
|
|
88
|
+
company: MedusaCompanyFactory;
|
|
89
|
+
companyRegistration: MedusaCompanyRegistrationFactory;
|
|
74
90
|
};
|
|
75
91
|
type ResolvedFactoryMap<T extends MedusaCapabilities> = {
|
|
76
92
|
[K in OverridableCapabilityKey]: ExtractCapabilityFactory<T[K], FactoryContractMap[K], DefaultFactoryMap[K]>;
|
|
@@ -88,6 +104,10 @@ type DefaultCapabilityMap<T extends MedusaCapabilities> = {
|
|
|
88
104
|
profile: MedusaProfileCapability<ResolvedFactoryMap<T>['profile']>;
|
|
89
105
|
productAssociations: MedusaProductAssociationsCapability<ResolvedFactoryMap<T>['productAssociations']>;
|
|
90
106
|
personalizationProfile: MedusaPersonalizationProfileCapability<ResolvedFactoryMap<T>['personalizationProfile']>;
|
|
107
|
+
employee: MedusaEmployeeCapability<ResolvedFactoryMap<T>['employee']>;
|
|
108
|
+
employeeInvitation: MedusaEmployeeInvitationCapability<ResolvedFactoryMap<T>['employeeInvitation']>;
|
|
109
|
+
company: MedusaCompanyCapability<ResolvedFactoryMap<T>['company']>;
|
|
110
|
+
companyRegistration: MedusaCompanyRegistrationCapability<ResolvedFactoryMap<T>['companyRegistration']>;
|
|
91
111
|
identity: MedusaIdentityCapability;
|
|
92
112
|
productRecommendations: MedusaProductRecommendationsCapability;
|
|
93
113
|
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { CompanyPaginatedListSchema, CompanySchema } from '@reactionary/core';
|
|
2
|
+
import { type Address, type AnyCompanyPaginatedListSchema, type AnyCompanySchema, type CompanyFactory, type CompanyQueryList, type RequestContext } from '@reactionary/core';
|
|
3
|
+
import type * as z from 'zod';
|
|
4
|
+
export interface MedusaRawCompanyAddress {
|
|
5
|
+
id: string;
|
|
6
|
+
type: string;
|
|
7
|
+
is_default: boolean;
|
|
8
|
+
address_name?: string | null;
|
|
9
|
+
first_name: string;
|
|
10
|
+
last_name: string;
|
|
11
|
+
street_address: string;
|
|
12
|
+
street_number?: string | null;
|
|
13
|
+
city: string;
|
|
14
|
+
region?: string | null;
|
|
15
|
+
postal_code: string;
|
|
16
|
+
country_code: string;
|
|
17
|
+
}
|
|
18
|
+
export interface MedusaRawCompany {
|
|
19
|
+
id: string;
|
|
20
|
+
name: string;
|
|
21
|
+
email: string;
|
|
22
|
+
phone?: string | null;
|
|
23
|
+
logo_url?: string | null;
|
|
24
|
+
logo_alt_text?: string | null;
|
|
25
|
+
logo_width?: number | null;
|
|
26
|
+
logo_height?: number | null;
|
|
27
|
+
status: string;
|
|
28
|
+
tax_identifier: string;
|
|
29
|
+
duns_identifier?: string | null;
|
|
30
|
+
tin_identifier?: string | null;
|
|
31
|
+
is_custom_addresses_allowed: boolean;
|
|
32
|
+
is_self_management_of_shipping_addresses_allowed: boolean;
|
|
33
|
+
addresses?: MedusaRawCompanyAddress[];
|
|
34
|
+
}
|
|
35
|
+
export declare class MedusaCompanyFactory<TCompanySchema extends AnyCompanySchema = typeof CompanySchema, TCompanyPaginatedListSchema extends AnyCompanyPaginatedListSchema = typeof CompanyPaginatedListSchema> implements CompanyFactory<TCompanySchema, TCompanyPaginatedListSchema> {
|
|
36
|
+
readonly companySchema: TCompanySchema;
|
|
37
|
+
readonly companyPaginatedListSchema: TCompanyPaginatedListSchema;
|
|
38
|
+
constructor(companySchema: TCompanySchema, companyPaginatedListSchema: TCompanyPaginatedListSchema);
|
|
39
|
+
protected parseAddress(raw: MedusaRawCompanyAddress): Address;
|
|
40
|
+
parseCompany(_context: RequestContext, data: MedusaRawCompany): z.output<TCompanySchema>;
|
|
41
|
+
parseCompanyPaginatedList(context: RequestContext, data: {
|
|
42
|
+
items: MedusaRawCompany[];
|
|
43
|
+
totalCount: number;
|
|
44
|
+
}, query: CompanyQueryList): z.output<TCompanyPaginatedListSchema>;
|
|
45
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CompanyRegistrationRequestSchema } from '@reactionary/core';
|
|
2
|
+
import { type AnyCompanyRegistrationRequestSchema, type CompanyRegistrationFactory, type CompanyRegistrationRequestApprovalStatus, type RequestContext } from '@reactionary/core';
|
|
3
|
+
import type * as z from 'zod';
|
|
4
|
+
import type { MedusaRawCompany } from '../company/company.factory.js';
|
|
5
|
+
export declare class MedusaCompanyRegistrationFactory<TCompanyRegistrationRequestSchema extends AnyCompanyRegistrationRequestSchema = typeof CompanyRegistrationRequestSchema> implements CompanyRegistrationFactory<TCompanyRegistrationRequestSchema> {
|
|
6
|
+
readonly companyRegistrationRequestSchema: TCompanyRegistrationRequestSchema;
|
|
7
|
+
constructor(companyRegistrationRequestSchema: TCompanyRegistrationRequestSchema);
|
|
8
|
+
parseCompanyRegistrationRequest(_context: RequestContext, data: MedusaRawCompany): z.output<TCompanyRegistrationRequestSchema>;
|
|
9
|
+
protected parseStatus(status: string): CompanyRegistrationRequestApprovalStatus;
|
|
10
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { EmployeePaginatedListSchema, EmployeeSchema } from '@reactionary/core';
|
|
2
|
+
import { type AnyEmployeePaginatedListSchema, type AnyEmployeeSchema, type CompanyIdentifier, type EmployeeFactory, type EmployeeQueryList, type EmployeeRole, type RequestContext } from '@reactionary/core';
|
|
3
|
+
import type * as z from 'zod';
|
|
4
|
+
export interface MedusaRawEmployeeCustomer {
|
|
5
|
+
id: string;
|
|
6
|
+
email: string;
|
|
7
|
+
first_name?: string | null;
|
|
8
|
+
last_name?: string | null;
|
|
9
|
+
}
|
|
10
|
+
export interface MedusaRawEmployee {
|
|
11
|
+
id: string;
|
|
12
|
+
role: string;
|
|
13
|
+
spending_limit?: number;
|
|
14
|
+
company_id: string;
|
|
15
|
+
customer?: MedusaRawEmployeeCustomer | null;
|
|
16
|
+
}
|
|
17
|
+
export interface ParseEmployeeInput {
|
|
18
|
+
company: CompanyIdentifier;
|
|
19
|
+
employee: MedusaRawEmployee;
|
|
20
|
+
}
|
|
21
|
+
export declare class MedusaEmployeeFactory<TEmployeeSchema extends AnyEmployeeSchema = typeof EmployeeSchema, TEmployeePaginatedListSchema extends AnyEmployeePaginatedListSchema = typeof EmployeePaginatedListSchema> implements EmployeeFactory<TEmployeeSchema, TEmployeePaginatedListSchema> {
|
|
22
|
+
readonly employeeSchema: TEmployeeSchema;
|
|
23
|
+
readonly employeePaginatedListSchema: TEmployeePaginatedListSchema;
|
|
24
|
+
constructor(employeeSchema: TEmployeeSchema, employeePaginatedListSchema: TEmployeePaginatedListSchema);
|
|
25
|
+
parseEmployee(context: RequestContext, data: ParseEmployeeInput): z.output<TEmployeeSchema>;
|
|
26
|
+
parseEmployeePaginatedList(context: RequestContext, data: {
|
|
27
|
+
items: ParseEmployeeInput[];
|
|
28
|
+
totalCount: number;
|
|
29
|
+
}, query: EmployeeQueryList): z.output<TEmployeePaginatedListSchema>;
|
|
30
|
+
mapRole(role: EmployeeRole): string;
|
|
31
|
+
protected parseRole(role: string): EmployeeRole;
|
|
32
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { EmployeeInvitationPaginatedListSchema, EmployeeInvitationSchema, EmployeeIssuedInvitationSchema } from '@reactionary/core';
|
|
2
|
+
import { type AnyEmployeeInvitationPaginatedListSchema, type AnyEmployeeInvitationSchema, type AnyEmployeeIssuedInvitationSchema, type EmployeeInvitationFactory, type EmployeeInvitationQueryList, type EmployeeInvitationMutationInviteEmployee, type EmployeeInvitationStatus, type EmployeeRole, type RequestContext } from '@reactionary/core';
|
|
3
|
+
import type * as z from 'zod';
|
|
4
|
+
export interface MedusaRawEmployeeInvitation {
|
|
5
|
+
id: string;
|
|
6
|
+
email: string;
|
|
7
|
+
role: string;
|
|
8
|
+
status: string;
|
|
9
|
+
company_id: string;
|
|
10
|
+
company?: {
|
|
11
|
+
tax_identifier: string;
|
|
12
|
+
};
|
|
13
|
+
validUntil?: string | Date | null;
|
|
14
|
+
securityToken?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The backend's revoke route needs both a company id and an invitation id, and there is no
|
|
18
|
+
* company-agnostic single-invitation lookup route for an authenticated store customer, so both
|
|
19
|
+
* are encoded into the opaque EmployeeInvitationIdentifier.key. Medusa ids never contain ':'.
|
|
20
|
+
*/
|
|
21
|
+
export declare function makeInvitationKey(companyId: string, invitationId: string): string;
|
|
22
|
+
export declare function parseInvitationKey(key: string): {
|
|
23
|
+
companyId: string;
|
|
24
|
+
invitationId: string;
|
|
25
|
+
};
|
|
26
|
+
export declare class MedusaEmployeeInvitationFactory<TEmployeeInvitationSchema extends AnyEmployeeInvitationSchema = typeof EmployeeInvitationSchema, TEmployeeIssuedInvitationSchema extends AnyEmployeeIssuedInvitationSchema = typeof EmployeeIssuedInvitationSchema, TEmployeeInvitationPaginatedListSchema extends AnyEmployeeInvitationPaginatedListSchema = typeof EmployeeInvitationPaginatedListSchema> implements EmployeeInvitationFactory<TEmployeeInvitationSchema, TEmployeeIssuedInvitationSchema, TEmployeeInvitationPaginatedListSchema> {
|
|
27
|
+
readonly employeeInvitationSchema: TEmployeeInvitationSchema;
|
|
28
|
+
readonly employeeIssuedInvitationSchema: TEmployeeIssuedInvitationSchema;
|
|
29
|
+
readonly employeeInvitationPaginatedListSchema: TEmployeeInvitationPaginatedListSchema;
|
|
30
|
+
constructor(employeeInvitationSchema: TEmployeeInvitationSchema, employeeIssuedInvitationSchema: TEmployeeIssuedInvitationSchema, employeeInvitationPaginatedListSchema: TEmployeeInvitationPaginatedListSchema);
|
|
31
|
+
parseEmployeeInvitation(_context: RequestContext, data: MedusaRawEmployeeInvitation, _payload?: EmployeeInvitationMutationInviteEmployee): z.output<TEmployeeInvitationSchema>;
|
|
32
|
+
parseEmployeeIssuedInvitation(context: RequestContext, data: MedusaRawEmployeeInvitation, payload?: EmployeeInvitationMutationInviteEmployee): z.output<TEmployeeIssuedInvitationSchema>;
|
|
33
|
+
parseEmployeeInvitationPaginatedList(context: RequestContext, data: {
|
|
34
|
+
items: MedusaRawEmployeeInvitation[];
|
|
35
|
+
totalCount: number;
|
|
36
|
+
}, query: EmployeeInvitationQueryList): z.output<TEmployeeInvitationPaginatedListSchema>;
|
|
37
|
+
mapRole(role: EmployeeRole): string;
|
|
38
|
+
protected parseRole(role: string): EmployeeRole;
|
|
39
|
+
protected parseStatus(status: string): EmployeeInvitationStatus;
|
|
40
|
+
}
|
package/src/factories/index.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
export * from './cart/cart.factory.js';
|
|
2
2
|
export * from './category/category.factory.js';
|
|
3
3
|
export * from './checkout/checkout.factory.js';
|
|
4
|
+
export * from './company/company.factory.js';
|
|
5
|
+
export * from './company-registration/company-registration.factory.js';
|
|
6
|
+
export * from './employee/employee.factory.js';
|
|
7
|
+
export * from './employee-invitation/employee-invitation.factory.js';
|
|
4
8
|
export * from './identity/identity.factory.js';
|
|
5
9
|
export * from './inventory/inventory.factory.js';
|
|
6
10
|
export * from './order/order.factory.js';
|
package/src/index.d.ts
CHANGED
|
@@ -6,6 +6,10 @@ export * from './core/initialize.types.js';
|
|
|
6
6
|
export * from './core/client.js';
|
|
7
7
|
export * from './factories/index.js';
|
|
8
8
|
export * from './capabilities/cart.capability.js';
|
|
9
|
+
export * from './capabilities/company.capability.js';
|
|
10
|
+
export * from './capabilities/company-registration.capability.js';
|
|
11
|
+
export * from './capabilities/employee.capability.js';
|
|
12
|
+
export * from './capabilities/employee-invitation.capability.js';
|
|
9
13
|
export * from './capabilities/identity.capability.js';
|
|
10
14
|
export * from './capabilities/inventory.capability.js';
|
|
11
15
|
export * from './capabilities/order.capability.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CartFactory, CartFactoryWithOutput, CartCapability, CategoryFactory, CategoryFactoryWithOutput, CategoryCapability, CheckoutFactory, CheckoutFactoryWithOutput, CheckoutCapability, IdentityCapability, InventoryFactory, InventoryFactoryWithOutput, InventoryCapability, PersonalizationProfileFactory, PersonalizationProfileFactoryWithOutput, PersonalizationProfileCapability, OrderFactory, OrderFactoryWithOutput, OrderCapability, OrderSearchFactory, OrderSearchFactoryWithOutput, OrderSearchCapability, PriceFactory, PriceFactoryWithOutput, PriceCapability, ProductAssociationsFactory, ProductAssociationsFactoryWithOutput, ProductAssociationsCapability, ProductFactory, ProductFactoryWithOutput, ProductCapability, ProductRecommendationsCapability, ProductSearchFactory, ProductSearchFactoryWithOutput, ProductSearchCapability, ProfileFactory, ProfileFactoryWithOutput, ProfileCapability, RequestContext, Cache } from '@reactionary/core';
|
|
1
|
+
import type { CartFactory, CartFactoryWithOutput, CartCapability, CategoryFactory, CategoryFactoryWithOutput, CategoryCapability, CheckoutFactory, CheckoutFactoryWithOutput, CheckoutCapability, CompanyFactory, CompanyFactoryWithOutput, CompanyCapability, CompanyRegistrationFactory, CompanyRegistrationFactoryWithOutput, CompanyRegistrationCapability, EmployeeFactory, EmployeeFactoryWithOutput, EmployeeCapability, EmployeeInvitationFactory, EmployeeInvitationFactoryWithOutput, EmployeeInvitationCapability, IdentityCapability, InventoryFactory, InventoryFactoryWithOutput, InventoryCapability, PersonalizationProfileFactory, PersonalizationProfileFactoryWithOutput, PersonalizationProfileCapability, OrderFactory, OrderFactoryWithOutput, OrderCapability, OrderSearchFactory, OrderSearchFactoryWithOutput, OrderSearchCapability, PriceFactory, PriceFactoryWithOutput, PriceCapability, ProductAssociationsFactory, ProductAssociationsFactoryWithOutput, ProductAssociationsCapability, ProductFactory, ProductFactoryWithOutput, ProductCapability, ProductRecommendationsCapability, ProductSearchFactory, ProductSearchFactoryWithOutput, ProductSearchCapability, ProfileFactory, ProfileFactoryWithOutput, ProfileCapability, RequestContext, Cache } from '@reactionary/core';
|
|
2
2
|
import type { MedusaConfiguration } from './configuration.schema.js';
|
|
3
3
|
import type { MedusaAPI } from '../core/client.js';
|
|
4
4
|
import * as z from 'zod';
|
|
@@ -52,6 +52,26 @@ export declare const MedusaCapabilitiesSchema: z.ZodObject<{
|
|
|
52
52
|
enabled: z.ZodBoolean;
|
|
53
53
|
capability: z.ZodOptional<z.ZodUnknown>;
|
|
54
54
|
}, z.core.$loose>>>;
|
|
55
|
+
employee: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
56
|
+
enabled: z.ZodBoolean;
|
|
57
|
+
factory: z.ZodOptional<z.ZodUnknown>;
|
|
58
|
+
capability: z.ZodOptional<z.ZodUnknown>;
|
|
59
|
+
}, z.core.$loose>>>;
|
|
60
|
+
employeeInvitation: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
61
|
+
enabled: z.ZodBoolean;
|
|
62
|
+
factory: z.ZodOptional<z.ZodUnknown>;
|
|
63
|
+
capability: z.ZodOptional<z.ZodUnknown>;
|
|
64
|
+
}, z.core.$loose>>>;
|
|
65
|
+
company: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
66
|
+
enabled: z.ZodBoolean;
|
|
67
|
+
factory: z.ZodOptional<z.ZodUnknown>;
|
|
68
|
+
capability: z.ZodOptional<z.ZodUnknown>;
|
|
69
|
+
}, z.core.$loose>>>;
|
|
70
|
+
companyRegistration: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
71
|
+
enabled: z.ZodBoolean;
|
|
72
|
+
factory: z.ZodOptional<z.ZodUnknown>;
|
|
73
|
+
capability: z.ZodOptional<z.ZodUnknown>;
|
|
74
|
+
}, z.core.$loose>>>;
|
|
55
75
|
profile: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
56
76
|
enabled: z.ZodBoolean;
|
|
57
77
|
factory: z.ZodOptional<z.ZodUnknown>;
|
|
@@ -94,6 +114,10 @@ export type MedusaProductCapabilityConfig = MedusaCapabilityConfig<ProductFactor
|
|
|
94
114
|
export type MedusaProductSearchCapabilityConfig = MedusaCapabilityConfig<ProductSearchFactoryWithOutput<ProductSearchFactory>, ProductSearchCapability>;
|
|
95
115
|
export type MedusaCartCapabilityConfig = MedusaCapabilityConfig<CartFactoryWithOutput<CartFactory>, CartCapability>;
|
|
96
116
|
export type MedusaCheckoutCapabilityConfig = MedusaCapabilityConfig<CheckoutFactoryWithOutput<CheckoutFactory>, CheckoutCapability>;
|
|
117
|
+
export type MedusaEmployeeCapabilityConfig = MedusaCapabilityConfig<EmployeeFactoryWithOutput<EmployeeFactory>, EmployeeCapability>;
|
|
118
|
+
export type MedusaEmployeeInvitationCapabilityConfig = MedusaCapabilityConfig<EmployeeInvitationFactoryWithOutput<EmployeeInvitationFactory>, EmployeeInvitationCapability>;
|
|
119
|
+
export type MedusaCompanyCapabilityConfig = MedusaCapabilityConfig<CompanyFactoryWithOutput<CompanyFactory>, CompanyCapability>;
|
|
120
|
+
export type MedusaCompanyRegistrationCapabilityConfig = MedusaCapabilityConfig<CompanyRegistrationFactoryWithOutput<CompanyRegistrationFactory>, CompanyRegistrationCapability>;
|
|
97
121
|
export type MedusaCategoryCapabilityConfig = MedusaCapabilityConfig<CategoryFactoryWithOutput<CategoryFactory>, CategoryCapability>;
|
|
98
122
|
export type MedusaPriceCapabilityConfig = MedusaCapabilityConfig<PriceFactoryWithOutput<PriceFactory>, PriceCapability>;
|
|
99
123
|
export type MedusaOrderCapabilityConfig = MedusaCapabilityConfig<OrderFactoryWithOutput<OrderFactory>, OrderCapability>;
|
|
@@ -104,11 +128,15 @@ export type MedusaProfileCapabilityConfig = MedusaCapabilityConfig<ProfileFactor
|
|
|
104
128
|
export type MedusaProductAssociationsCapabilityConfig = MedusaCapabilityConfig<ProductAssociationsFactoryWithOutput<ProductAssociationsFactory>, ProductAssociationsCapability>;
|
|
105
129
|
export type MedusaPersonalizationProfileCapabilityConfig = MedusaCapabilityConfig<PersonalizationProfileFactoryWithOutput<PersonalizationProfileFactory>, PersonalizationProfileCapability>;
|
|
106
130
|
export type MedusaProductRecommendationsCapabilityConfig = MedusaDirectCapabilityConfig<ProductRecommendationsCapability>;
|
|
107
|
-
export type MedusaCapabilities<TProductFactory extends ProductFactory = ProductFactory, TProductCapability extends ProductCapability = ProductCapability, TProductSearchFactory extends ProductSearchFactory = ProductSearchFactory, TProductSearchCapability extends ProductSearchCapability = ProductSearchCapability, TCartFactory extends CartFactory = CartFactory, TCartCapability extends CartCapability = CartCapability, TCheckoutFactory extends CheckoutFactory = CheckoutFactory, TCheckoutCapability extends CheckoutCapability = CheckoutCapability, TCategoryFactory extends CategoryFactory = CategoryFactory, TCategoryCapability extends CategoryCapability = CategoryCapability, TPriceFactory extends PriceFactory = PriceFactory, TPriceCapability extends PriceCapability = PriceCapability, TOrderFactory extends OrderFactory = OrderFactory, TOrderCapability extends OrderCapability = OrderCapability, TOrderSearchFactory extends OrderSearchFactory = OrderSearchFactory, TOrderSearchCapability extends OrderSearchCapability = OrderSearchCapability, TInventoryFactory extends InventoryFactory = InventoryFactory, TInventoryCapability extends InventoryCapability = InventoryCapability, TIdentityCapability extends IdentityCapability = IdentityCapability, TProfileFactory extends ProfileFactory = ProfileFactory, TProfileCapability extends ProfileCapability = ProfileCapability, TProductAssociationsFactory extends ProductAssociationsFactory = ProductAssociationsFactory, TProductAssociationsCapability extends ProductAssociationsCapability = ProductAssociationsCapability, TProductRecommendationsCapability extends ProductRecommendationsCapability = ProductRecommendationsCapability, TPersonalizationProfileFactory extends PersonalizationProfileFactory = PersonalizationProfileFactory, TPersonalizationProfileCapability extends PersonalizationProfileCapability = PersonalizationProfileCapability> = {
|
|
131
|
+
export type MedusaCapabilities<TProductFactory extends ProductFactory = ProductFactory, TProductCapability extends ProductCapability = ProductCapability, TProductSearchFactory extends ProductSearchFactory = ProductSearchFactory, TProductSearchCapability extends ProductSearchCapability = ProductSearchCapability, TCartFactory extends CartFactory = CartFactory, TCartCapability extends CartCapability = CartCapability, TCheckoutFactory extends CheckoutFactory = CheckoutFactory, TCheckoutCapability extends CheckoutCapability = CheckoutCapability, TCategoryFactory extends CategoryFactory = CategoryFactory, TCategoryCapability extends CategoryCapability = CategoryCapability, TPriceFactory extends PriceFactory = PriceFactory, TPriceCapability extends PriceCapability = PriceCapability, TOrderFactory extends OrderFactory = OrderFactory, TOrderCapability extends OrderCapability = OrderCapability, TOrderSearchFactory extends OrderSearchFactory = OrderSearchFactory, TOrderSearchCapability extends OrderSearchCapability = OrderSearchCapability, TInventoryFactory extends InventoryFactory = InventoryFactory, TInventoryCapability extends InventoryCapability = InventoryCapability, TIdentityCapability extends IdentityCapability = IdentityCapability, TProfileFactory extends ProfileFactory = ProfileFactory, TProfileCapability extends ProfileCapability = ProfileCapability, TProductAssociationsFactory extends ProductAssociationsFactory = ProductAssociationsFactory, TProductAssociationsCapability extends ProductAssociationsCapability = ProductAssociationsCapability, TProductRecommendationsCapability extends ProductRecommendationsCapability = ProductRecommendationsCapability, TPersonalizationProfileFactory extends PersonalizationProfileFactory = PersonalizationProfileFactory, TPersonalizationProfileCapability extends PersonalizationProfileCapability = PersonalizationProfileCapability, TEmployeeFactory extends EmployeeFactory = EmployeeFactory, TEmployeeCapability extends EmployeeCapability = EmployeeCapability, TEmployeeInvitationFactory extends EmployeeInvitationFactory = EmployeeInvitationFactory, TEmployeeInvitationCapability extends EmployeeInvitationCapability = EmployeeInvitationCapability, TCompanyFactory extends CompanyFactory = CompanyFactory, TCompanyCapability extends CompanyCapability = CompanyCapability, TCompanyRegistrationFactory extends CompanyRegistrationFactory = CompanyRegistrationFactory, TCompanyRegistrationCapability extends CompanyRegistrationCapability = CompanyRegistrationCapability> = {
|
|
108
132
|
product?: MedusaCapabilityConfig<ProductFactoryWithOutput<TProductFactory>, TProductCapability>;
|
|
109
133
|
productSearch?: MedusaCapabilityConfig<ProductSearchFactoryWithOutput<TProductSearchFactory>, TProductSearchCapability>;
|
|
110
134
|
cart?: MedusaCapabilityConfig<CartFactoryWithOutput<TCartFactory>, TCartCapability>;
|
|
111
135
|
checkout?: MedusaCapabilityConfig<CheckoutFactoryWithOutput<TCheckoutFactory>, TCheckoutCapability>;
|
|
136
|
+
employee?: MedusaCapabilityConfig<EmployeeFactoryWithOutput<TEmployeeFactory>, TEmployeeCapability>;
|
|
137
|
+
employeeInvitation?: MedusaCapabilityConfig<EmployeeInvitationFactoryWithOutput<TEmployeeInvitationFactory>, TEmployeeInvitationCapability>;
|
|
138
|
+
company?: MedusaCapabilityConfig<CompanyFactoryWithOutput<TCompanyFactory>, TCompanyCapability>;
|
|
139
|
+
companyRegistration?: MedusaCapabilityConfig<CompanyRegistrationFactoryWithOutput<TCompanyRegistrationFactory>, TCompanyRegistrationCapability>;
|
|
112
140
|
category?: MedusaCapabilityConfig<CategoryFactoryWithOutput<TCategoryFactory>, TCategoryCapability>;
|
|
113
141
|
price?: MedusaCapabilityConfig<PriceFactoryWithOutput<TPriceFactory>, TPriceCapability>;
|
|
114
142
|
order?: MedusaCapabilityConfig<OrderFactoryWithOutput<TOrderFactory>, TOrderCapability>;
|