@proxima-io/storefront-core 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/fixtures-commerce.d.ts +140 -0
- package/dist/fixtures-commerce.d.ts.map +1 -0
- package/dist/fixtures-commerce.js +743 -0
- package/dist/fixtures-commerce.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -1
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-app commerce fixtures — logic lives in SDK; JSON is injected per website.
|
|
3
|
+
*/
|
|
4
|
+
import type { BuyerProfile, Cart, CategoryNavTreeResponse, CustomerAddress, GuestOrderPayload, GuestOrderResult, Order, OrderListResponse, ProductListingFilters, ProductListingSortOption, ProximaWebsiteResponse, StorefrontBrandListingResponse, StorefrontCategoryListingResponse, StorefrontProductListingResponse, StorefrontSearchResponse, UbigeoResult } from "./index.js";
|
|
5
|
+
export type StorefrontDataMode = "fixtures" | "live";
|
|
6
|
+
/** Raw catalog entity as stored in apps/{slug}/src/fixtures/catalog-items.json */
|
|
7
|
+
export type FixtureCatalogItem = Record<string, unknown>;
|
|
8
|
+
export interface FixtureBundleInput {
|
|
9
|
+
catalog: FixtureCatalogItem[];
|
|
10
|
+
categoryNavTree: CategoryNavTreeResponse;
|
|
11
|
+
cart?: Cart | null;
|
|
12
|
+
categoryProductMap?: Record<string, string[]>;
|
|
13
|
+
customerAddresses?: CustomerAddress[];
|
|
14
|
+
}
|
|
15
|
+
export interface FixtureProductListingParams {
|
|
16
|
+
filters?: ProductListingFilters;
|
|
17
|
+
sort?: ProductListingSortOption | string;
|
|
18
|
+
page?: number;
|
|
19
|
+
page_size?: number;
|
|
20
|
+
currency?: string;
|
|
21
|
+
locale?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface FixtureSearchParams {
|
|
24
|
+
q: string;
|
|
25
|
+
limit?: number;
|
|
26
|
+
currency?: string;
|
|
27
|
+
locale?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface FixtureCartMutationParams {
|
|
30
|
+
token?: string | null;
|
|
31
|
+
sessionId?: string | null;
|
|
32
|
+
variantId: number;
|
|
33
|
+
quantity?: number;
|
|
34
|
+
}
|
|
35
|
+
export declare class FixtureGuestOrderError extends Error {
|
|
36
|
+
readonly code: "CART_NOT_FOUND" | "OUT_OF_STOCK" | "SERVER_ERROR" | "VARIANT_NOT_FOUND";
|
|
37
|
+
constructor(code: "CART_NOT_FOUND" | "OUT_OF_STOCK" | "SERVER_ERROR" | "VARIANT_NOT_FOUND", message: string);
|
|
38
|
+
}
|
|
39
|
+
export interface FixtureBundle extends FixtureBundleInput {
|
|
40
|
+
getCart(sessionId?: string | null): Cart;
|
|
41
|
+
addToCart(sessionId: string | null | undefined, variantId: number, quantity: number): Cart;
|
|
42
|
+
updateCartItem(sessionId: string | null | undefined, variantId: number, quantity: number): Cart;
|
|
43
|
+
removeCartItem(sessionId: string | null | undefined, variantId: number): Cart;
|
|
44
|
+
getCategoryNavTree(): CategoryNavTreeResponse;
|
|
45
|
+
getCategoryProducts(slug: string, params?: FixtureListingParams): StorefrontCategoryListingResponse;
|
|
46
|
+
getBrandProducts(slug: string, params?: FixtureBrandListingParams): StorefrontBrandListingResponse;
|
|
47
|
+
getProductListing(params?: FixtureProductListingParams): StorefrontProductListingResponse;
|
|
48
|
+
searchProducts(params: FixtureSearchParams): StorefrontSearchResponse;
|
|
49
|
+
getCustomerAddresses(): CustomerAddress[];
|
|
50
|
+
processGuestCheckout(sessionId: string, payload: GuestOrderPayload): GuestOrderResult;
|
|
51
|
+
}
|
|
52
|
+
export interface FixtureListingParams {
|
|
53
|
+
page?: number;
|
|
54
|
+
pageSize?: number;
|
|
55
|
+
sort?: string;
|
|
56
|
+
brand?: string;
|
|
57
|
+
currency?: string;
|
|
58
|
+
locale?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface FixtureBrandListingParams extends FixtureListingParams {
|
|
61
|
+
category?: string;
|
|
62
|
+
}
|
|
63
|
+
export interface StorefrontDataSourceConfig {
|
|
64
|
+
mode: StorefrontDataMode;
|
|
65
|
+
fixtures: FixtureBundle;
|
|
66
|
+
apiConfig: {
|
|
67
|
+
baseUrl: string;
|
|
68
|
+
};
|
|
69
|
+
website: Pick<ProximaWebsiteResponse, "business_id" | "locale" | "currency">;
|
|
70
|
+
}
|
|
71
|
+
export interface StorefrontCartParams {
|
|
72
|
+
token?: string | null;
|
|
73
|
+
sessionId?: string | null;
|
|
74
|
+
}
|
|
75
|
+
export interface StorefrontDataSource {
|
|
76
|
+
getCart(params?: StorefrontCartParams): Promise<Cart>;
|
|
77
|
+
addToCart(params: FixtureCartMutationParams): Promise<Cart>;
|
|
78
|
+
updateCartItem(params: FixtureCartMutationParams & {
|
|
79
|
+
quantity: number;
|
|
80
|
+
}): Promise<Cart>;
|
|
81
|
+
removeCartItem(params: Omit<FixtureCartMutationParams, "quantity">): Promise<Cart>;
|
|
82
|
+
getCategoryNavTree(params?: {
|
|
83
|
+
maxDepth?: number;
|
|
84
|
+
locale?: string;
|
|
85
|
+
}): Promise<CategoryNavTreeResponse>;
|
|
86
|
+
getCategoryProducts(slug: string, params?: FixtureListingParams & {
|
|
87
|
+
brand?: string;
|
|
88
|
+
q?: string;
|
|
89
|
+
}): Promise<StorefrontCategoryListingResponse>;
|
|
90
|
+
getBrandProducts(slug: string, params?: FixtureBrandListingParams & {
|
|
91
|
+
q?: string;
|
|
92
|
+
}): Promise<StorefrontBrandListingResponse>;
|
|
93
|
+
getProductListing(params?: FixtureProductListingParams): Promise<StorefrontProductListingResponse>;
|
|
94
|
+
searchProducts(params: FixtureSearchParams): Promise<StorefrontSearchResponse>;
|
|
95
|
+
getCustomerAddresses(params?: {
|
|
96
|
+
token?: string | null;
|
|
97
|
+
}): Promise<CustomerAddress[]>;
|
|
98
|
+
getBuyerProfile(params: {
|
|
99
|
+
token: string;
|
|
100
|
+
}): Promise<BuyerProfile>;
|
|
101
|
+
getOrders(params: {
|
|
102
|
+
token: string;
|
|
103
|
+
page?: number;
|
|
104
|
+
size?: number;
|
|
105
|
+
}): Promise<OrderListResponse>;
|
|
106
|
+
getOrder(params: {
|
|
107
|
+
token: string;
|
|
108
|
+
orderId: string;
|
|
109
|
+
}): Promise<Order>;
|
|
110
|
+
searchUbigeo(params: {
|
|
111
|
+
q: string;
|
|
112
|
+
}): Promise<UbigeoResult[]>;
|
|
113
|
+
processGuestCheckout(payload: GuestOrderPayload): Promise<GuestOrderResult>;
|
|
114
|
+
}
|
|
115
|
+
export interface ResolveStorefrontDataSourceOptions {
|
|
116
|
+
request: Request;
|
|
117
|
+
fixtures: FixtureBundle;
|
|
118
|
+
apiConfig: {
|
|
119
|
+
baseUrl: string;
|
|
120
|
+
domain?: string;
|
|
121
|
+
serviceKey?: string;
|
|
122
|
+
};
|
|
123
|
+
resolveMode: (host: string) => StorefrontDataMode;
|
|
124
|
+
getRequestHost: (request: Request) => string;
|
|
125
|
+
getFixtureWebsite: () => Pick<ProximaWebsiteResponse, "business_id" | "locale" | "currency" | "data_mode">;
|
|
126
|
+
fetchLiveWebsite: () => Promise<Pick<ProximaWebsiteResponse, "business_id" | "locale" | "currency" | "data_mode">>;
|
|
127
|
+
}
|
|
128
|
+
export interface ValidateFixtureBundleOptions {
|
|
129
|
+
/** Product slugs referenced from composition fixtures (e.g. home.json collections) */
|
|
130
|
+
compositionProductSlugs?: string[];
|
|
131
|
+
}
|
|
132
|
+
export declare function createFixtureBundle(input: FixtureBundleInput): FixtureBundle;
|
|
133
|
+
export declare function validateFixtureBundle(input: FixtureBundleInput, options?: ValidateFixtureBundleOptions): string[];
|
|
134
|
+
export declare function createStorefrontDataSource(config: StorefrontDataSourceConfig): StorefrontDataSource;
|
|
135
|
+
/**
|
|
136
|
+
* Resolve mode + website then return a StorefrontDataSource.
|
|
137
|
+
* Apps inject env-specific callbacks; all commerce/live vs fixtures routing stays in SDK.
|
|
138
|
+
*/
|
|
139
|
+
export declare function resolveStorefrontDataSourceForRequest(options: ResolveStorefrontDataSourceOptions): Promise<StorefrontDataSource>;
|
|
140
|
+
//# sourceMappingURL=fixtures-commerce.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures-commerce.d.ts","sourceRoot":"","sources":["../src/fixtures-commerce.ts"],"names":[],"mappings":"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"}
|