@laconius/core 0.1.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/LICENSE +73 -0
- package/README.md +31 -0
- package/lib/module/auth.js +182 -0
- package/lib/module/auth.js.map +1 -0
- package/lib/module/client.js +99 -0
- package/lib/module/client.js.map +1 -0
- package/lib/module/config.js +72 -0
- package/lib/module/config.js.map +1 -0
- package/lib/module/converters.js +31 -0
- package/lib/module/converters.js.map +1 -0
- package/lib/module/create-config.js +36 -0
- package/lib/module/create-config.js.map +1 -0
- package/lib/module/endpoints.js +89 -0
- package/lib/module/endpoints.js.map +1 -0
- package/lib/module/errors.js +76 -0
- package/lib/module/errors.js.map +1 -0
- package/lib/module/i18n.js +84 -0
- package/lib/module/i18n.js.map +1 -0
- package/lib/module/index.js +18 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/media.js +182 -0
- package/lib/module/media.js.map +1 -0
- package/lib/module/models.js +2 -0
- package/lib/module/models.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/provider.js +182 -0
- package/lib/module/provider.js.map +1 -0
- package/lib/module/runtime.js +43 -0
- package/lib/module/runtime.js.map +1 -0
- package/lib/module/single-flight.js +23 -0
- package/lib/module/single-flight.js.map +1 -0
- package/lib/module/site-context.js +74 -0
- package/lib/module/site-context.js.map +1 -0
- package/lib/module/stores.js +66 -0
- package/lib/module/stores.js.map +1 -0
- package/lib/module/translations.js +42 -0
- package/lib/module/translations.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/auth.d.ts +31 -0
- package/lib/typescript/src/auth.d.ts.map +1 -0
- package/lib/typescript/src/client.d.ts +31 -0
- package/lib/typescript/src/client.d.ts.map +1 -0
- package/lib/typescript/src/config.d.ts +150 -0
- package/lib/typescript/src/config.d.ts.map +1 -0
- package/lib/typescript/src/converters.d.ts +17 -0
- package/lib/typescript/src/converters.d.ts.map +1 -0
- package/lib/typescript/src/create-config.d.ts +11 -0
- package/lib/typescript/src/create-config.d.ts.map +1 -0
- package/lib/typescript/src/endpoints.d.ts +36 -0
- package/lib/typescript/src/endpoints.d.ts.map +1 -0
- package/lib/typescript/src/errors.d.ts +43 -0
- package/lib/typescript/src/errors.d.ts.map +1 -0
- package/lib/typescript/src/i18n.d.ts +20 -0
- package/lib/typescript/src/i18n.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +17 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/media.d.ts +81 -0
- package/lib/typescript/src/media.d.ts.map +1 -0
- package/lib/typescript/src/models.d.ts +327 -0
- package/lib/typescript/src/models.d.ts.map +1 -0
- package/lib/typescript/src/provider.d.ts +37 -0
- package/lib/typescript/src/provider.d.ts.map +1 -0
- package/lib/typescript/src/runtime.d.ts +26 -0
- package/lib/typescript/src/runtime.d.ts.map +1 -0
- package/lib/typescript/src/single-flight.d.ts +7 -0
- package/lib/typescript/src/single-flight.d.ts.map +1 -0
- package/lib/typescript/src/site-context.d.ts +28 -0
- package/lib/typescript/src/site-context.d.ts.map +1 -0
- package/lib/typescript/src/stores.d.ts +54 -0
- package/lib/typescript/src/stores.d.ts.map +1 -0
- package/lib/typescript/src/translations.d.ts +40 -0
- package/lib/typescript/src/translations.d.ts.map +1 -0
- package/package.json +77 -0
- package/src/auth.ts +223 -0
- package/src/client.ts +133 -0
- package/src/config.ts +191 -0
- package/src/converters.ts +47 -0
- package/src/create-config.ts +29 -0
- package/src/endpoints.ts +133 -0
- package/src/errors.ts +104 -0
- package/src/i18n.ts +108 -0
- package/src/index.ts +123 -0
- package/src/media.ts +209 -0
- package/src/models.ts +384 -0
- package/src/provider.tsx +229 -0
- package/src/runtime.ts +57 -0
- package/src/single-flight.ts +23 -0
- package/src/site-context.ts +77 -0
- package/src/stores.ts +94 -0
- package/src/translations.ts +40 -0
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared domain model types. Types only: zero runtime, no converters, no adapters.
|
|
3
|
+
*
|
|
4
|
+
* Ported from Spartacus `core-libs/core/src/model/{image,product,misc,address,consent}.model.ts`
|
|
5
|
+
* (Apache-2.0, see NOTICE). Two deliberate divergences:
|
|
6
|
+
* - `enum` becomes a string union, so this module emits nothing at runtime.
|
|
7
|
+
* - Date-typed fields become `string`: OCC returns ISO strings and never `Date`.
|
|
8
|
+
*/
|
|
9
|
+
export type ImageType = 'PRIMARY' | 'GALLERY';
|
|
10
|
+
export interface Image {
|
|
11
|
+
altText?: string;
|
|
12
|
+
role?: string;
|
|
13
|
+
format?: string;
|
|
14
|
+
galleryIndex?: number;
|
|
15
|
+
imageType?: ImageType;
|
|
16
|
+
url?: string;
|
|
17
|
+
width?: number;
|
|
18
|
+
height?: number;
|
|
19
|
+
}
|
|
20
|
+
/** One format code (`thumbnail`, `zoom`, …) per entry. */
|
|
21
|
+
export interface ImageGroup {
|
|
22
|
+
[format: string]: Image;
|
|
23
|
+
}
|
|
24
|
+
export interface Images {
|
|
25
|
+
[imageType: string]: ImageGroup | ImageGroup[];
|
|
26
|
+
}
|
|
27
|
+
export type PriceType = 'BUY' | 'FROM';
|
|
28
|
+
export interface Price {
|
|
29
|
+
currencyIso?: string;
|
|
30
|
+
formattedValue?: string;
|
|
31
|
+
maxQuantity?: number;
|
|
32
|
+
minQuantity?: number;
|
|
33
|
+
priceType?: PriceType;
|
|
34
|
+
value?: number;
|
|
35
|
+
}
|
|
36
|
+
export interface PriceRange {
|
|
37
|
+
maxPrice?: Price;
|
|
38
|
+
minPrice?: Price;
|
|
39
|
+
}
|
|
40
|
+
export interface Stock {
|
|
41
|
+
isValueRounded?: boolean;
|
|
42
|
+
stockLevel?: number;
|
|
43
|
+
stockLevelStatus?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface Currency {
|
|
46
|
+
active?: boolean;
|
|
47
|
+
isocode?: string;
|
|
48
|
+
name?: string;
|
|
49
|
+
symbol?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface Language {
|
|
52
|
+
active?: boolean;
|
|
53
|
+
isocode?: string;
|
|
54
|
+
name?: string;
|
|
55
|
+
nativeName?: string;
|
|
56
|
+
}
|
|
57
|
+
export interface Country {
|
|
58
|
+
isocode?: string;
|
|
59
|
+
name?: string;
|
|
60
|
+
}
|
|
61
|
+
export type CountryType = 'BILLING' | 'SHIPPING';
|
|
62
|
+
export interface Region {
|
|
63
|
+
countryIso?: string;
|
|
64
|
+
isocode?: string;
|
|
65
|
+
isocodeShort?: string;
|
|
66
|
+
name?: string;
|
|
67
|
+
}
|
|
68
|
+
export interface City {
|
|
69
|
+
regionIso?: string;
|
|
70
|
+
isocode?: string;
|
|
71
|
+
name?: string;
|
|
72
|
+
}
|
|
73
|
+
export interface CityDistrict {
|
|
74
|
+
cityIso?: string;
|
|
75
|
+
isocode?: string;
|
|
76
|
+
name?: string;
|
|
77
|
+
}
|
|
78
|
+
export interface Title {
|
|
79
|
+
code?: string;
|
|
80
|
+
name?: string;
|
|
81
|
+
}
|
|
82
|
+
export interface Address {
|
|
83
|
+
id?: string;
|
|
84
|
+
title?: string;
|
|
85
|
+
titleCode?: string;
|
|
86
|
+
email?: string;
|
|
87
|
+
firstName?: string;
|
|
88
|
+
lastName?: string;
|
|
89
|
+
companyName?: string;
|
|
90
|
+
line1?: string;
|
|
91
|
+
line2?: string;
|
|
92
|
+
postalCode?: string;
|
|
93
|
+
town?: string;
|
|
94
|
+
city?: City;
|
|
95
|
+
region?: Region;
|
|
96
|
+
district?: string;
|
|
97
|
+
cityDistrict?: CityDistrict;
|
|
98
|
+
country?: Country;
|
|
99
|
+
cellphone?: string;
|
|
100
|
+
defaultAddress?: boolean;
|
|
101
|
+
shippingAddress?: boolean;
|
|
102
|
+
formattedAddress?: string;
|
|
103
|
+
phone?: string;
|
|
104
|
+
visibleInAddressBook?: boolean;
|
|
105
|
+
}
|
|
106
|
+
export interface User {
|
|
107
|
+
currency?: Currency;
|
|
108
|
+
customerId?: string;
|
|
109
|
+
deactivationDate?: string;
|
|
110
|
+
defaultAddress?: Address;
|
|
111
|
+
displayUid?: string;
|
|
112
|
+
firstName?: string;
|
|
113
|
+
language?: Language;
|
|
114
|
+
lastName?: string;
|
|
115
|
+
name?: string;
|
|
116
|
+
title?: string;
|
|
117
|
+
titleCode?: string;
|
|
118
|
+
uid?: string;
|
|
119
|
+
roles?: string[];
|
|
120
|
+
lastCartId?: string;
|
|
121
|
+
hasOrder?: boolean;
|
|
122
|
+
}
|
|
123
|
+
export interface Principal {
|
|
124
|
+
name?: string;
|
|
125
|
+
uid?: string;
|
|
126
|
+
}
|
|
127
|
+
export interface CaptchaConfig {
|
|
128
|
+
enabled: boolean;
|
|
129
|
+
publicKey?: string;
|
|
130
|
+
}
|
|
131
|
+
export interface BaseStore {
|
|
132
|
+
currencies?: Currency[];
|
|
133
|
+
defaultCurrency?: Currency;
|
|
134
|
+
languages?: Language[];
|
|
135
|
+
defaultLanguage?: Language;
|
|
136
|
+
paymentProvider?: string;
|
|
137
|
+
}
|
|
138
|
+
export interface BaseSite {
|
|
139
|
+
channel?: string;
|
|
140
|
+
defaultLanguage?: Language;
|
|
141
|
+
locale?: string;
|
|
142
|
+
name?: string;
|
|
143
|
+
theme?: string;
|
|
144
|
+
uid?: string;
|
|
145
|
+
stores?: BaseStore[];
|
|
146
|
+
urlPatterns?: string[];
|
|
147
|
+
urlEncodingAttributes?: string[];
|
|
148
|
+
baseStore?: BaseStore;
|
|
149
|
+
requiresAuthentication?: boolean;
|
|
150
|
+
isolated?: boolean;
|
|
151
|
+
captchaConfig?: CaptchaConfig;
|
|
152
|
+
}
|
|
153
|
+
export interface PaginationModel {
|
|
154
|
+
currentPage?: number;
|
|
155
|
+
pageSize?: number;
|
|
156
|
+
sort?: string;
|
|
157
|
+
totalPages?: number;
|
|
158
|
+
totalResults?: number;
|
|
159
|
+
}
|
|
160
|
+
export interface SortModel {
|
|
161
|
+
code?: string;
|
|
162
|
+
name?: string;
|
|
163
|
+
selected?: boolean;
|
|
164
|
+
}
|
|
165
|
+
export interface Category {
|
|
166
|
+
code?: string;
|
|
167
|
+
name?: string;
|
|
168
|
+
image?: Image;
|
|
169
|
+
url?: string;
|
|
170
|
+
}
|
|
171
|
+
export interface FeatureUnit {
|
|
172
|
+
name?: string;
|
|
173
|
+
symbol?: string;
|
|
174
|
+
unitType?: string;
|
|
175
|
+
}
|
|
176
|
+
export interface FeatureValue {
|
|
177
|
+
value?: string;
|
|
178
|
+
}
|
|
179
|
+
export interface Feature {
|
|
180
|
+
code?: string;
|
|
181
|
+
comparable?: boolean;
|
|
182
|
+
description?: string;
|
|
183
|
+
featureUnit?: FeatureUnit;
|
|
184
|
+
featureValues?: FeatureValue[];
|
|
185
|
+
name?: string;
|
|
186
|
+
range?: boolean;
|
|
187
|
+
type?: string;
|
|
188
|
+
}
|
|
189
|
+
export interface Classification {
|
|
190
|
+
code?: string;
|
|
191
|
+
features?: Feature[];
|
|
192
|
+
name?: string;
|
|
193
|
+
}
|
|
194
|
+
export interface PromotionRestriction {
|
|
195
|
+
description?: string;
|
|
196
|
+
restrictionType?: string;
|
|
197
|
+
}
|
|
198
|
+
export interface Promotion {
|
|
199
|
+
code?: string;
|
|
200
|
+
couldFireMessages?: string[];
|
|
201
|
+
description?: string;
|
|
202
|
+
enabled?: boolean;
|
|
203
|
+
endDate?: string;
|
|
204
|
+
firedMessages?: string[];
|
|
205
|
+
priority?: number;
|
|
206
|
+
productBanner?: Image;
|
|
207
|
+
promotionGroup?: string;
|
|
208
|
+
promotionType?: string;
|
|
209
|
+
restrictions?: PromotionRestriction[];
|
|
210
|
+
startDate?: string;
|
|
211
|
+
title?: string;
|
|
212
|
+
}
|
|
213
|
+
export type VariantType = 'ApparelSizeVariantProduct' | 'ApparelStyleVariantProduct' | 'ElectronicsColorVariantProduct';
|
|
214
|
+
export type VariantQualifier = 'size' | 'style' | 'color' | 'thumbnail' | 'product' | 'styleSwatch' | 'rollupProperty';
|
|
215
|
+
export interface VariantOptionQualifier {
|
|
216
|
+
image?: Image;
|
|
217
|
+
name?: string;
|
|
218
|
+
qualifier?: VariantQualifier;
|
|
219
|
+
value?: string;
|
|
220
|
+
}
|
|
221
|
+
export interface VariantOption {
|
|
222
|
+
code?: string;
|
|
223
|
+
priceData?: Price;
|
|
224
|
+
stock?: Stock;
|
|
225
|
+
url?: string;
|
|
226
|
+
variantOptionQualifiers?: VariantOptionQualifier[];
|
|
227
|
+
}
|
|
228
|
+
export interface VariantCategory {
|
|
229
|
+
hasImage?: boolean;
|
|
230
|
+
name?: string;
|
|
231
|
+
priority?: number;
|
|
232
|
+
}
|
|
233
|
+
export interface VariantValueCategory {
|
|
234
|
+
name?: string;
|
|
235
|
+
sequence?: number;
|
|
236
|
+
superCategories?: VariantCategory[];
|
|
237
|
+
}
|
|
238
|
+
export interface VariantMatrixElement {
|
|
239
|
+
elements?: VariantMatrixElement[];
|
|
240
|
+
isLeaf?: boolean;
|
|
241
|
+
parentVariantCategory?: VariantCategory;
|
|
242
|
+
variantOption?: VariantOption;
|
|
243
|
+
variantValueCategory?: VariantValueCategory;
|
|
244
|
+
}
|
|
245
|
+
export interface BaseOption {
|
|
246
|
+
options?: VariantOption[];
|
|
247
|
+
selected?: VariantOption;
|
|
248
|
+
variantType?: VariantType;
|
|
249
|
+
}
|
|
250
|
+
export interface Review {
|
|
251
|
+
alias?: string;
|
|
252
|
+
comment?: string;
|
|
253
|
+
date?: string;
|
|
254
|
+
headline?: string;
|
|
255
|
+
id?: string;
|
|
256
|
+
principal?: User;
|
|
257
|
+
rating?: number;
|
|
258
|
+
}
|
|
259
|
+
export interface ProductReference {
|
|
260
|
+
description?: string;
|
|
261
|
+
preselected?: boolean;
|
|
262
|
+
quantity?: number;
|
|
263
|
+
referenceType?: string;
|
|
264
|
+
target?: Product;
|
|
265
|
+
}
|
|
266
|
+
export interface ProductReferences {
|
|
267
|
+
[referenceType: string]: ProductReference[];
|
|
268
|
+
}
|
|
269
|
+
export interface FutureStock {
|
|
270
|
+
date?: string;
|
|
271
|
+
formattedDate?: string;
|
|
272
|
+
stock?: Stock;
|
|
273
|
+
}
|
|
274
|
+
/** Unit of measure used for product stock availability (`productAvailabilities`). */
|
|
275
|
+
export interface SapUnit {
|
|
276
|
+
code?: string;
|
|
277
|
+
name?: string;
|
|
278
|
+
availabilityCode?: string;
|
|
279
|
+
sapCode?: string;
|
|
280
|
+
}
|
|
281
|
+
export type ProductType = 'PHYSICAL' | 'SERVICE' | 'SUBSCRIPTION';
|
|
282
|
+
export interface Product {
|
|
283
|
+
availableForPickup?: boolean;
|
|
284
|
+
averageRating?: number;
|
|
285
|
+
baseOptions?: BaseOption[];
|
|
286
|
+
baseProduct?: string;
|
|
287
|
+
categories?: Category[];
|
|
288
|
+
classifications?: Classification[];
|
|
289
|
+
code?: string;
|
|
290
|
+
description?: string;
|
|
291
|
+
futureStocks?: FutureStock[];
|
|
292
|
+
images?: Images;
|
|
293
|
+
manufacturer?: string;
|
|
294
|
+
multidimensional?: boolean;
|
|
295
|
+
name?: string;
|
|
296
|
+
nameHtml?: string;
|
|
297
|
+
numberOfReviews?: number;
|
|
298
|
+
potentialPromotions?: Promotion[];
|
|
299
|
+
price?: Price;
|
|
300
|
+
priceRange?: PriceRange;
|
|
301
|
+
productReferences?: ProductReferences;
|
|
302
|
+
purchasable?: boolean;
|
|
303
|
+
reviews?: Review[];
|
|
304
|
+
sapUnit?: SapUnit;
|
|
305
|
+
stock?: Stock;
|
|
306
|
+
summary?: string;
|
|
307
|
+
url?: string;
|
|
308
|
+
variantMatrix?: VariantMatrixElement[];
|
|
309
|
+
variantOptions?: VariantOption[];
|
|
310
|
+
variantType?: VariantType;
|
|
311
|
+
volumePrices?: Price[];
|
|
312
|
+
volumePricesFlag?: boolean;
|
|
313
|
+
productTypes?: ProductType;
|
|
314
|
+
}
|
|
315
|
+
export interface Consent {
|
|
316
|
+
code?: string;
|
|
317
|
+
consentGivenDate?: string;
|
|
318
|
+
consentWithdrawnDate?: string;
|
|
319
|
+
}
|
|
320
|
+
export interface ConsentTemplate {
|
|
321
|
+
id?: string;
|
|
322
|
+
name?: string;
|
|
323
|
+
description?: string;
|
|
324
|
+
version?: number;
|
|
325
|
+
currentConsent?: Consent;
|
|
326
|
+
}
|
|
327
|
+
//# sourceMappingURL=models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { QueryClient } from '@tanstack/react-query';
|
|
2
|
+
import { type ReactNode } from 'react';
|
|
3
|
+
import type { LaconiusConfig } from './config.js';
|
|
4
|
+
import { type Translator } from './i18n.js';
|
|
5
|
+
import { type LaconiusRuntime } from './runtime.js';
|
|
6
|
+
/** Retry policy of chapter 09, overridable through `queryClient.setQueryDefaults`. */
|
|
7
|
+
export declare function createDefaultQueryClient(): QueryClient;
|
|
8
|
+
export type LaconiusProviderProps = {
|
|
9
|
+
config: LaconiusConfig;
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
/** Rendered while the stored session is exchanged. Defaults to nothing. */
|
|
12
|
+
fallback?: ReactNode;
|
|
13
|
+
};
|
|
14
|
+
export declare function LaconiusProvider({ config, children, fallback, }: LaconiusProviderProps): import("react").JSX.Element;
|
|
15
|
+
export declare function useLaconius(): LaconiusRuntime;
|
|
16
|
+
export declare const useLaconiusConfig: () => LaconiusConfig;
|
|
17
|
+
/** Re-renders on a language change, so a switch retranslates and refetches in one move. */
|
|
18
|
+
export declare function useTranslation(): Translator;
|
|
19
|
+
export declare function useSiteContext(): {
|
|
20
|
+
language: string | undefined;
|
|
21
|
+
currency: string | undefined;
|
|
22
|
+
languages: string[];
|
|
23
|
+
currencies: string[];
|
|
24
|
+
baseSite: string;
|
|
25
|
+
setLanguage: (language: string) => void;
|
|
26
|
+
setCurrency: (currency: string) => void;
|
|
27
|
+
};
|
|
28
|
+
/** `true` while the session store holds an access token. */
|
|
29
|
+
export declare function useIsLoggedIn(): boolean;
|
|
30
|
+
/** The app owns offline UI; the provider only wires `onlineManager`. */
|
|
31
|
+
export declare function useIsOnline(): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Revoke, clear, and drop Laconius' queries — never `queryClient.clear()`, which would wipe the
|
|
34
|
+
* app's own. Site context and recently-viewed deliberately survive.
|
|
35
|
+
*/
|
|
36
|
+
export declare function useLogout(): () => Promise<void>;
|
|
37
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAKZ,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAU,CAAC;AAG/C,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,WAAQ,CAAC;AAC3D,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,cAAW,CAAC;AAgCnE,sFAAsF;AACtF,wBAAgB,wBAAwB,IAAI,WAAW,CAmBtD;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,QAAQ,EACR,QAAe,GAChB,EAAE,qBAAqB,+BA8DvB;AAED,wBAAgB,WAAW,IAAI,eAAe,CAQ7C;AAED,eAAO,MAAM,iBAAiB,QAAO,cAAsC,CAAC;AAE5E,2FAA2F;AAC3F,wBAAgB,cAAc,IAAI,UAAU,CAe3C;AAED,wBAAgB,cAAc;;;;;;;;EAiB7B;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,wEAAwE;AACxE,wBAAgB,WAAW,IAAI,OAAO,CAMrC;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,CAO/C"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { AuthClient } from './auth.js';
|
|
2
|
+
import type { LaconiusHttpClient } from './client.js';
|
|
3
|
+
import type { LaconiusConfig } from './config.js';
|
|
4
|
+
import type { ConverterRegistry } from './converters.js';
|
|
5
|
+
/** Everything a query factory needs without a React context to read it from. */
|
|
6
|
+
export type LaconiusRuntime = {
|
|
7
|
+
config: LaconiusConfig;
|
|
8
|
+
client: LaconiusHttpClient;
|
|
9
|
+
auth: AuthClient;
|
|
10
|
+
converters: ConverterRegistry;
|
|
11
|
+
};
|
|
12
|
+
/** Set by `LaconiusProvider` during render, so factories work before any effect runs. */
|
|
13
|
+
export declare function setActiveRuntime(runtime: LaconiusRuntime | undefined): void;
|
|
14
|
+
/**
|
|
15
|
+
* The runtime, for `queryOptions` factories used outside React (`prefetchQuery`,
|
|
16
|
+
* `ensureQueryData`).
|
|
17
|
+
*/
|
|
18
|
+
export declare function getRuntime(): LaconiusRuntime;
|
|
19
|
+
/**
|
|
20
|
+
* `['laconius', <feature>, { site, lang, curr, user }, ...args]`.
|
|
21
|
+
*
|
|
22
|
+
* The context object is in every key, including product: customer-group pricing depends on the
|
|
23
|
+
* user. The `'laconius'` prefix is what makes `removeQueries(['laconius'])` safe.
|
|
24
|
+
*/
|
|
25
|
+
export declare function laconiusQueryKey(feature: string, ...args: unknown[]): unknown[];
|
|
26
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAQ,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAU,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAc,CAAC;AAGtD,gFAAgF;AAChF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,iBAAiB,CAAC;CAC/B,CAAC;AAIF,yFAAyF;AACzF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI,CAE3E;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,eAAe,CAO5C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,OAAO,EAAE,CAaX"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Collapses concurrent calls onto one in-flight promise: N 401s cause one refresh.
|
|
3
|
+
*
|
|
4
|
+
* The next call after settlement starts a fresh one.
|
|
5
|
+
*/
|
|
6
|
+
export declare function singleFlight<T>(fn: () => Promise<T>): () => Promise<T>;
|
|
7
|
+
//# sourceMappingURL=single-flight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"single-flight.d.ts","sourceRoot":"","sources":["../../../src/single-flight.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAiBtE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { LaconiusRuntime } from './runtime.js';
|
|
2
|
+
import type { BaseSite, Currency, Language } from './models.js';
|
|
3
|
+
/**
|
|
4
|
+
* Adapters are plain objects of functions, so overriding one call is a spread and replacing the
|
|
5
|
+
* whole object is the route to a non-OCC backend.
|
|
6
|
+
*/
|
|
7
|
+
export type SiteContextAdapter = {
|
|
8
|
+
loadBaseSites(runtime: LaconiusRuntime): Promise<BaseSite[]>;
|
|
9
|
+
loadLanguages(runtime: LaconiusRuntime): Promise<Language[]>;
|
|
10
|
+
loadCurrencies(runtime: LaconiusRuntime): Promise<Currency[]>;
|
|
11
|
+
};
|
|
12
|
+
export declare const defaultSiteContextAdapter: SiteContextAdapter;
|
|
13
|
+
/** `queryOptions` factories, for `prefetchQuery` / `useSuspenseQuery` without forking Laconius. */
|
|
14
|
+
export declare const siteContextQueries: {
|
|
15
|
+
baseSites: () => import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<BaseSite[], Error, BaseSite[], unknown[]>, "queryFn"> & {
|
|
16
|
+
queryFn?: import("@tanstack/react-query").QueryFunction<BaseSite[], unknown[], never> | undefined;
|
|
17
|
+
} & import("@tanstack/react-query").QueryKeyWithDataTag<unknown[], BaseSite[], Error>;
|
|
18
|
+
languages: () => import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<Language[], Error, Language[], unknown[]>, "queryFn"> & {
|
|
19
|
+
queryFn?: import("@tanstack/react-query").QueryFunction<Language[], unknown[], never> | undefined;
|
|
20
|
+
} & import("@tanstack/react-query").QueryKeyWithDataTag<unknown[], Language[], Error>;
|
|
21
|
+
currencies: () => import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<Currency[], Error, Currency[], unknown[]>, "queryFn"> & {
|
|
22
|
+
queryFn?: import("@tanstack/react-query").QueryFunction<Currency[], unknown[], never> | undefined;
|
|
23
|
+
} & import("@tanstack/react-query").QueryKeyWithDataTag<unknown[], Currency[], Error>;
|
|
24
|
+
};
|
|
25
|
+
export declare const useBaseSites: () => import("@tanstack/react-query").UseQueryResult<BaseSite[], Error>;
|
|
26
|
+
export declare const useLanguages: () => import("@tanstack/react-query").UseQueryResult<Language[], Error>;
|
|
27
|
+
export declare const useCurrencies: () => import("@tanstack/react-query").UseQueryResult<Currency[], Error>;
|
|
28
|
+
//# sourceMappingURL=site-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"site-context.d.ts","sourceRoot":"","sources":["../../../src/site-context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAW,CAAC;AAEjD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAU,CAAC;AAE7D;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7D,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7D,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CAC/D,CAAC;AAIF,eAAO,MAAM,yBAAyB,EAAE,kBAmBvC,CAAC;AASF,mGAAmG;AACnG,eAAO,MAAM,kBAAkB;;;;;;;;;;CAyB9B,CAAC;AAEF,eAAO,MAAM,YAAY,yEAAiD,CAAC;AAC3E,eAAO,MAAM,YAAY,yEAAiD,CAAC;AAC3E,eAAO,MAAM,aAAa,yEAAkD,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export type SessionState = {
|
|
2
|
+
/** Memory only — never persisted. */
|
|
3
|
+
accessToken?: string;
|
|
4
|
+
/** Mirror of the value in secure storage, kept for the refresh call. */
|
|
5
|
+
refreshToken?: string;
|
|
6
|
+
/** Epoch milliseconds. */
|
|
7
|
+
expiresAt?: number;
|
|
8
|
+
setSession: (session: Pick<SessionState, 'accessToken' | 'refreshToken' | 'expiresAt'>) => void;
|
|
9
|
+
clearSession: () => void;
|
|
10
|
+
};
|
|
11
|
+
/** Not persisted: [ADR-0003](docs/adr/0003-refresh-token-in-the-keychain.md). */
|
|
12
|
+
export declare const useSessionStore: import("zustand").UseBoundStore<import("zustand").StoreApi<SessionState>>;
|
|
13
|
+
/** Derived, never stored. Spartacus needs a `UserIdService`; Zustand does not. */
|
|
14
|
+
export declare function selectUserId(state: {
|
|
15
|
+
accessToken?: string;
|
|
16
|
+
}): 'current' | 'anonymous';
|
|
17
|
+
export type SiteContextState = {
|
|
18
|
+
language?: string;
|
|
19
|
+
currency?: string;
|
|
20
|
+
setLanguage: (language: string) => void;
|
|
21
|
+
setCurrency: (currency: string) => void;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Base site is immutable config; language and currency are runtime state. Both are part of every
|
|
25
|
+
* query key and drive translation lookup, so a switch retranslates and refetches in one move.
|
|
26
|
+
*/
|
|
27
|
+
export declare const useSiteContextStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<SiteContextState>, "setState" | "persist"> & {
|
|
28
|
+
setState(partial: SiteContextState | Partial<SiteContextState> | ((state: SiteContextState) => SiteContextState | Partial<SiteContextState>), replace?: false | undefined): unknown;
|
|
29
|
+
setState(state: SiteContextState | ((state: SiteContextState) => SiteContextState), replace: true): unknown;
|
|
30
|
+
persist: {
|
|
31
|
+
setOptions: (options: Partial<import("zustand/middleware").PersistOptions<SiteContextState, unknown, unknown>>) => void;
|
|
32
|
+
clearStorage: () => void;
|
|
33
|
+
rehydrate: () => Promise<void> | void;
|
|
34
|
+
hasHydrated: () => boolean;
|
|
35
|
+
onHydrate: (fn: (state: SiteContextState) => void) => () => void;
|
|
36
|
+
onFinishHydration: (fn: (state: SiteContextState) => void) => () => void;
|
|
37
|
+
getOptions: () => Partial<import("zustand/middleware").PersistOptions<SiteContextState, unknown, unknown>>;
|
|
38
|
+
};
|
|
39
|
+
}>;
|
|
40
|
+
/** Active language, falling back to config: the store starts empty until the app picks one. */
|
|
41
|
+
export declare function resolveLanguage(config: {
|
|
42
|
+
context: {
|
|
43
|
+
languages: string[];
|
|
44
|
+
defaultLanguage?: string;
|
|
45
|
+
};
|
|
46
|
+
}): string | undefined;
|
|
47
|
+
/** Active currency, falling back to config. */
|
|
48
|
+
export declare function resolveCurrency(config: {
|
|
49
|
+
context: {
|
|
50
|
+
currencies: string[];
|
|
51
|
+
defaultCurrency?: string;
|
|
52
|
+
};
|
|
53
|
+
}): string | undefined;
|
|
54
|
+
//# sourceMappingURL=stores.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../../src/stores.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,YAAY,GAAG;IACzB,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,CACV,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,GAAG,cAAc,GAAG,WAAW,CAAC,KACtE,IAAI,CAAC;IACV,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,eAAe,2EASzB,CAAC;AAEJ,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,SAAS,GAAG,WAAW,CAE1B;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAe/B,CAAC;AAWF,+FAA+F;AAC/F,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D,GAAG,MAAM,GAAG,SAAS,CAMrB;AAED,+CAA+C;AAC/C,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7D,GAAG,MAAM,GAAG,SAAS,CAMrB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* English error strings, ported from Spartacus'
|
|
3
|
+
* `core-libs/assets/src/translations/en/common.json` (`httpHandlers.*`), minus the checkout and
|
|
4
|
+
* payment validation keys. Other languages are the app's: Spartacus ships 17 under
|
|
5
|
+
* `core-libs/assets/src/translations/<lang>/` and is Apache-2.0.
|
|
6
|
+
*/
|
|
7
|
+
export declare const defaultCoreTranslations: {
|
|
8
|
+
en: {
|
|
9
|
+
common: {
|
|
10
|
+
retry: string;
|
|
11
|
+
cancel: string;
|
|
12
|
+
close: string;
|
|
13
|
+
loading: string;
|
|
14
|
+
};
|
|
15
|
+
errors: {
|
|
16
|
+
http: {
|
|
17
|
+
badRequest: string;
|
|
18
|
+
unauthorized: string;
|
|
19
|
+
forbidden: string;
|
|
20
|
+
notFound: string;
|
|
21
|
+
conflict: string;
|
|
22
|
+
serverError: string;
|
|
23
|
+
offline: string;
|
|
24
|
+
unknown: string;
|
|
25
|
+
};
|
|
26
|
+
occ: {
|
|
27
|
+
InsufficientStockError: string;
|
|
28
|
+
CartError: string;
|
|
29
|
+
CartEntryError: string;
|
|
30
|
+
UnknownIdentifierError: string;
|
|
31
|
+
CMSItemNotFoundError: string;
|
|
32
|
+
ValidationError: string;
|
|
33
|
+
DuplicateUidError: string;
|
|
34
|
+
PasswordMismatchError: string;
|
|
35
|
+
InvalidTokenError: string;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=translations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCnC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@laconius/core",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Laconius core: configuration, OCC endpoints and HTTP client, PKCE auth, session and site-context stores, converters, media resolution and i18n.",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./lib/module/index.js",
|
|
8
|
+
"types": "./lib/typescript/src/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"source": "./src/index.ts",
|
|
12
|
+
"types": "./lib/typescript/src/index.d.ts",
|
|
13
|
+
"default": "./lib/module/index.js"
|
|
14
|
+
},
|
|
15
|
+
"./package.json": "./package.json"
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"src",
|
|
19
|
+
"lib",
|
|
20
|
+
"!**/*.test.*"
|
|
21
|
+
],
|
|
22
|
+
"sideEffects": false,
|
|
23
|
+
"publishConfig": {
|
|
24
|
+
"access": "public"
|
|
25
|
+
},
|
|
26
|
+
"peerDependencies": {
|
|
27
|
+
"@tanstack/react-query": "^5",
|
|
28
|
+
"expo": "*",
|
|
29
|
+
"expo-auth-session": "*",
|
|
30
|
+
"expo-network": "*",
|
|
31
|
+
"expo-secure-store": "*",
|
|
32
|
+
"expo-sqlite": "*",
|
|
33
|
+
"react": ">=19.0.0",
|
|
34
|
+
"react-native": "*",
|
|
35
|
+
"zustand": "^5"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@tanstack/react-query": "^5.102.8",
|
|
39
|
+
"@types/react": "~19.2.2",
|
|
40
|
+
"expo": "^57.0.18",
|
|
41
|
+
"expo-auth-session": "^57.0.10",
|
|
42
|
+
"expo-network": "^57.0.1",
|
|
43
|
+
"expo-secure-store": "^57.0.2",
|
|
44
|
+
"expo-sqlite": "^57.0.2",
|
|
45
|
+
"react": "19.2.3",
|
|
46
|
+
"react-native": "0.86.3",
|
|
47
|
+
"react-native-builder-bob": "^0.43.0",
|
|
48
|
+
"typescript": "~6.0.3",
|
|
49
|
+
"vitest": "^3.2.4",
|
|
50
|
+
"zustand": "^5.0.15"
|
|
51
|
+
},
|
|
52
|
+
"react-native-builder-bob": {
|
|
53
|
+
"source": "src",
|
|
54
|
+
"output": "lib",
|
|
55
|
+
"targets": [
|
|
56
|
+
[
|
|
57
|
+
"module",
|
|
58
|
+
{
|
|
59
|
+
"esm": true
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
[
|
|
63
|
+
"typescript",
|
|
64
|
+
{
|
|
65
|
+
"project": "tsconfig.build.json"
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
],
|
|
69
|
+
"exclude": "**/*.test.{ts,tsx}"
|
|
70
|
+
},
|
|
71
|
+
"scripts": {
|
|
72
|
+
"build": "bob build",
|
|
73
|
+
"clean": "rm -rf lib",
|
|
74
|
+
"typecheck": "tsc --noEmit",
|
|
75
|
+
"test": "vitest run"
|
|
76
|
+
}
|
|
77
|
+
}
|