@smess/networking 2.0.0 → 2.2.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.
Files changed (31) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +43 -2
  3. package/dist/core/hosts.d.ts +4 -0
  4. package/dist/core/hosts.d.ts.map +1 -1
  5. package/dist/core/hosts.js +4 -0
  6. package/dist/core/hosts.js.map +1 -1
  7. package/dist/modules/authentication/index.d.ts +19 -0
  8. package/dist/modules/authentication/index.d.ts.map +1 -1
  9. package/dist/modules/authentication/index.js +15 -0
  10. package/dist/modules/authentication/index.js.map +1 -1
  11. package/dist/modules/messenger/index.d.ts +92 -0
  12. package/dist/modules/messenger/index.d.ts.map +1 -0
  13. package/dist/modules/messenger/index.js +44 -0
  14. package/dist/modules/messenger/index.js.map +1 -0
  15. package/dist/modules/storefront/index.d.ts +160 -0
  16. package/dist/modules/storefront/index.d.ts.map +1 -0
  17. package/dist/modules/storefront/index.js +176 -0
  18. package/dist/modules/storefront/index.js.map +1 -0
  19. package/dist/modules/storefront/types.d.ts +499 -0
  20. package/dist/modules/storefront/types.d.ts.map +1 -0
  21. package/dist/modules/storefront/types.js +8 -0
  22. package/dist/modules/storefront/types.js.map +1 -0
  23. package/dist/modules/storefront-admin/index.d.ts +85 -0
  24. package/dist/modules/storefront-admin/index.d.ts.map +1 -0
  25. package/dist/modules/storefront-admin/index.js +80 -0
  26. package/dist/modules/storefront-admin/index.js.map +1 -0
  27. package/dist/modules/storefront-admin/types.d.ts +295 -0
  28. package/dist/modules/storefront-admin/types.d.ts.map +1 -0
  29. package/dist/modules/storefront-admin/types.js +2 -0
  30. package/dist/modules/storefront-admin/types.js.map +1 -0
  31. package/package.json +14 -2
@@ -0,0 +1,499 @@
1
+ /**
2
+ * Storefront customer-facing wire types (`src/Microservice/Storefront`).
3
+ *
4
+ * Responses are plain `json_encode` of the handler DTOs: camelCase keys, nulls kept. Request bodies go
5
+ * through JMS: snake_case keys, except where noted. Whole floats may arrive as integers (`10`, not `10.0`).
6
+ */
7
+ export type DeliveryType = 'pickup' | 'delivery';
8
+ export type PaymentMethod = 'cash' | 'card' | 'bank_transfer' | 'check';
9
+ /** Free-form contact block stored as JSON on carts and orders (`billing_information`, `shipping_information`). */
10
+ export interface ContactInformation {
11
+ name?: string;
12
+ first_name?: string;
13
+ last_name?: string;
14
+ email?: string;
15
+ phone_number?: string;
16
+ street?: string;
17
+ address?: string;
18
+ city?: string;
19
+ postal_code?: string;
20
+ state?: string;
21
+ country?: string;
22
+ [key: string]: unknown;
23
+ }
24
+ /** `PaginatedCollectionResponse`: page-number list of the customer routes. */
25
+ export interface Paginated<T> {
26
+ links: {
27
+ first: string;
28
+ last: string;
29
+ next?: string;
30
+ prev?: string;
31
+ };
32
+ items: T[];
33
+ count: number;
34
+ total: number;
35
+ page: number;
36
+ totalPage: number;
37
+ perPage: number;
38
+ metadata: unknown[] | Record<string, unknown>;
39
+ }
40
+ /** `page` starts at 1; `per_page` defaults to 50. A page past the end is a 404. */
41
+ export interface PageQuery {
42
+ page?: number;
43
+ per_page?: number;
44
+ }
45
+ /** `ProductDto`. The legacy fields (`picture`, `expiryDate`, ...) are always null and left out here. */
46
+ export interface Product {
47
+ id: string | null;
48
+ name: string | null;
49
+ slug: string | null;
50
+ category: string | null;
51
+ subCategory: string | null;
52
+ supplier: string | null;
53
+ origin: string | null;
54
+ barcode: string | null;
55
+ priceIncludingTax: number | null;
56
+ unitPrice: number | null;
57
+ regularPrice: number | null;
58
+ vatRate: number | null;
59
+ unit: string | null;
60
+ cartonItemCount: number | null;
61
+ quantityInStock: number | null;
62
+ weight: number | null;
63
+ volume: number | null;
64
+ isAvailable: boolean | null;
65
+ priceByWeight: boolean | null;
66
+ hasPromotion: boolean | null;
67
+ promotionEndDate: string | null;
68
+ storeId: string | null;
69
+ storeName: string | null;
70
+ discountPrice: number | null;
71
+ discountInPercent: number | null;
72
+ internalCode: string | null;
73
+ htmlDescription: string | null;
74
+ }
75
+ /** `ProductFilter` keys. The tenant comes from `X-Client-Id`. */
76
+ export interface ProductQuery extends PageQuery {
77
+ search?: string;
78
+ name?: string;
79
+ category?: string;
80
+ categories?: readonly string[];
81
+ /** Numeric store id or uuid. */
82
+ store_id?: string | number;
83
+ product_id?: string | number;
84
+ product_ids?: readonly (string | number)[];
85
+ barcodes?: readonly string[];
86
+ group_ids?: readonly (string | number)[];
87
+ unit?: string;
88
+ only_promoted?: boolean;
89
+ only_discounted?: boolean;
90
+ only_featured?: boolean;
91
+ /** `<field>-<asc|desc>`, field one of `name`, `unitPrice`, `price`. */
92
+ sort_by?: string;
93
+ }
94
+ /** `CategoryDto`. Products without a category are counted under `key: ''`. */
95
+ export interface Category {
96
+ key: string;
97
+ name: string;
98
+ numberOfProducts: number;
99
+ image: string | null;
100
+ }
101
+ export interface ShippingRule {
102
+ id: string | null;
103
+ postalCode: string | null;
104
+ minimumOrderValue: number | null;
105
+ orderAmount: number | null;
106
+ maximumWeight: number | null;
107
+ shippingFee: number | null;
108
+ deliveryFeeForRetail: number | null;
109
+ deliveryFeeForWholesale: number | null;
110
+ freeShippingThreshold: number | null;
111
+ estimatedDeliveryDays: number | null;
112
+ isActive: boolean | null;
113
+ departments: unknown[] | null;
114
+ }
115
+ export interface StoreAddress {
116
+ street: string | null;
117
+ city: string | null;
118
+ postalCode: string | null;
119
+ state: string | null;
120
+ country: string | null;
121
+ [key: string]: unknown;
122
+ }
123
+ /** `StoreDto`. */
124
+ export interface Store {
125
+ id: string | null;
126
+ clientId: string | null;
127
+ name: string | null;
128
+ slug: string | null;
129
+ email: string | null;
130
+ website: string | null;
131
+ phone: string | null;
132
+ description: string | null;
133
+ address: StoreAddress | null;
134
+ locale: string | null;
135
+ currency: string | null;
136
+ isActive: boolean | null;
137
+ shippingRules: ShippingRule[];
138
+ fulfillmentMethods: string[];
139
+ displayable: boolean | null;
140
+ allowDelivery: boolean | null;
141
+ contact: Record<string, unknown> | null;
142
+ }
143
+ /** `PromoDto` (customer routes; the admin routes send the snake_case `AdminPromo`). */
144
+ export interface Promo {
145
+ id: string | null;
146
+ name: string | null;
147
+ storeId: string | null;
148
+ isActive: boolean;
149
+ promoRule: Record<string, unknown> | null;
150
+ createdAt: string | null;
151
+ updatedAt: string | null;
152
+ nbProducts: number | null;
153
+ productIds: string[];
154
+ }
155
+ /** `ProductGroupFilter` keys. Always page 1, 100 rows. */
156
+ export interface PromoQuery {
157
+ store_id?: string | number;
158
+ store_ids?: readonly (string | number)[];
159
+ product_group_id?: string | number;
160
+ only_promo?: boolean;
161
+ only_featured?: boolean;
162
+ date_from?: string;
163
+ date_to?: string;
164
+ }
165
+ export interface CartItem {
166
+ id: string | null;
167
+ productId: string | null;
168
+ productName: string | null;
169
+ quantity: number | null;
170
+ unit: string | null;
171
+ unitPrice: number | null;
172
+ subtotal: number | null;
173
+ taxRate: number | null;
174
+ taxAmount: number | null;
175
+ total: number | null;
176
+ isAvailable: boolean | null;
177
+ }
178
+ /** `CartDto`. `sessionToken` is the guest cart token to send back on the next calls. */
179
+ export interface Cart {
180
+ id: string | null;
181
+ sessionToken: string | null;
182
+ customerId: string | null;
183
+ storeId: string | null;
184
+ storeName: string | null;
185
+ status: string | null;
186
+ currency: string | null;
187
+ items: CartItem[];
188
+ subtotal: number | null;
189
+ taxTotal: number | null;
190
+ shippingTotal: number | null;
191
+ discountTotal: number | null;
192
+ total: number | null;
193
+ itemCount: number | null;
194
+ }
195
+ export interface AddToCartInput {
196
+ product_id: string | number;
197
+ quantity: number;
198
+ unit_price?: number;
199
+ /** The guest cart to add to; the module fills it from the cart token store. */
200
+ session_token?: string;
201
+ }
202
+ export interface UpdateCartItemInput {
203
+ quantity: number;
204
+ product_id?: number;
205
+ unit_price?: number;
206
+ }
207
+ export interface CartBatchInput {
208
+ create?: AddToCartInput[];
209
+ update?: Array<UpdateCartItemInput & {
210
+ product_id: string | number;
211
+ }>;
212
+ }
213
+ /** Only `status`, `delivery_note`, `delivery_fee`, `billing_information` and `shipping_information` are applied. */
214
+ export interface UpdateCartInput {
215
+ order_date?: string;
216
+ type?: DeliveryType;
217
+ status?: string;
218
+ customer_id?: string;
219
+ payment_status?: string;
220
+ delivery_note?: string;
221
+ delivery_fee?: number;
222
+ payment_method?: PaymentMethod;
223
+ billing_information?: ContactInformation;
224
+ shipping_information?: ContactInformation;
225
+ }
226
+ /** This one body is camelCase. */
227
+ export interface CalculateShippingInput {
228
+ postalCode: string;
229
+ deliveryType: DeliveryType;
230
+ }
231
+ export interface ShippingQuote {
232
+ isAvailable: boolean;
233
+ shippingFee: number;
234
+ estimatedDeliveryDays: number;
235
+ }
236
+ export interface CheckoutValidation {
237
+ isValid: boolean;
238
+ errors: string[];
239
+ warnings: string[];
240
+ unavailableItems: string[];
241
+ priceChanges: string[];
242
+ }
243
+ export interface CheckoutInput {
244
+ items: AddToCartInput[];
245
+ billing_information: ContactInformation;
246
+ shipping_information: ContactInformation;
247
+ payment_method: PaymentMethod;
248
+ payment_details?: Record<string, unknown>;
249
+ customer_note?: string;
250
+ delivery_type: DeliveryType;
251
+ delivery_fee?: number;
252
+ }
253
+ export interface OrderItem {
254
+ id: string | null;
255
+ productId: string | null;
256
+ productName: string | null;
257
+ productSku: string | null;
258
+ productPrice: number | null;
259
+ originalQuantity: number | null;
260
+ quantity: number | null;
261
+ unit: string | null;
262
+ unitPrice: number | null;
263
+ subtotal: number | null;
264
+ taxRate: number | null;
265
+ taxAmount: number | null;
266
+ total: number | null;
267
+ discountAmount: number | null;
268
+ }
269
+ /** `OrderDto`. When the payment gateway needs a confirmation, `clientSecret` is set and `paymentStatus` is `pending_payment`. */
270
+ export interface Order {
271
+ id: string | null;
272
+ orderNumber: string | null;
273
+ customerId: string | null;
274
+ guestEmail: string | null;
275
+ storeId: string | null;
276
+ storeName: string | null;
277
+ status: string | null;
278
+ paymentStatus: string | null;
279
+ paymentMethod: string | null;
280
+ deliveryType: string | null;
281
+ currency: string | null;
282
+ subtotal: number | null;
283
+ shippingTotal: number | null;
284
+ taxTotal: number | null;
285
+ discountTotal: number | null;
286
+ total: number | null;
287
+ dateOrdered: string | null;
288
+ datePaid: string | null;
289
+ trackingNumber: string | null;
290
+ billingInformation: Record<string, unknown> | null;
291
+ shippingInformation: Record<string, unknown> | null;
292
+ customerNote: string | null;
293
+ dateShipped: string | null;
294
+ dateDelivered: string | null;
295
+ createdAt: string | null;
296
+ updatedAt: string | null;
297
+ items: OrderItem[];
298
+ clientSecret: string | null;
299
+ }
300
+ /** `OrderFilter` keys (the customer comes from the JWT). */
301
+ export interface OrderQuery extends PageQuery {
302
+ status?: string;
303
+ date_from?: string;
304
+ date_to?: string;
305
+ store_id?: string | number;
306
+ store_ids?: readonly (string | number)[];
307
+ }
308
+ export interface TrackOrderInput {
309
+ order_number: string;
310
+ email: string;
311
+ }
312
+ export interface Reorder {
313
+ sourceOrder: Order;
314
+ items: Array<{
315
+ quantity: number;
316
+ product: Product;
317
+ }>;
318
+ }
319
+ /** `ShippingAddressGetDto` / `BillingAddressGetDto`. */
320
+ export interface CustomerAddress {
321
+ id: string;
322
+ isDefault: boolean;
323
+ name: string | null;
324
+ firstName: string | null;
325
+ lastName: string | null;
326
+ address: string | null;
327
+ postalCode: string | null;
328
+ city: string | null;
329
+ state: string | null;
330
+ country: string | null;
331
+ phoneNumber: string | null;
332
+ }
333
+ /** `Authentication\CustomerGetDto`: the signed-in customer's profile with every address. */
334
+ export interface CustomerProfile {
335
+ id: string | null;
336
+ externalId: string | null;
337
+ isAbleToSeePrivateProduct: boolean;
338
+ taxIdentificationNumber: string | null;
339
+ type: string | null;
340
+ name: string | null;
341
+ address: string | null;
342
+ postalCode: string | null;
343
+ userLocale: string;
344
+ city: string | null;
345
+ state: string | null;
346
+ country: string | null;
347
+ contactEmail: string | null;
348
+ phoneNumber: string | null;
349
+ bankAccountName: string | null;
350
+ deliveryNote: string | null;
351
+ deliveryFee: number | null;
352
+ amountFreeShipType: number | null;
353
+ paymentPeriodType: string | null;
354
+ paymentMethod: string | null;
355
+ discountInPercent: number;
356
+ priceType: string | null;
357
+ defaultStoreId: string | null;
358
+ bio: string | null;
359
+ duePaymentAmount: number;
360
+ billingAddresses: CustomerAddress[];
361
+ shippingAddresses: CustomerAddress[];
362
+ }
363
+ export interface UpdateProfileInput {
364
+ user_locale?: string;
365
+ external_id?: string;
366
+ tax_identification_number?: string;
367
+ type?: string;
368
+ name?: string;
369
+ address?: string;
370
+ default_store_id?: string;
371
+ bio?: string;
372
+ postal_code?: string;
373
+ city?: string;
374
+ state?: string;
375
+ country?: string;
376
+ phone_number?: string;
377
+ contact_email?: string;
378
+ delivery_note?: string;
379
+ delivery_fee?: number;
380
+ amount_free_ship_type?: number;
381
+ payment_period_type?: string;
382
+ payment_method?: string;
383
+ discount_in_percent?: number;
384
+ price_type?: string;
385
+ due_payment_amount?: number;
386
+ bank_account_name?: string;
387
+ }
388
+ /** Create when `id` is absent, update otherwise (POST and PUT run the same handler). */
389
+ export interface AddressInput {
390
+ id?: string;
391
+ marked_as_default?: boolean;
392
+ name?: string;
393
+ first_name: string;
394
+ last_name: string;
395
+ address: string;
396
+ postal_code?: string;
397
+ city?: string;
398
+ state?: string;
399
+ country?: string;
400
+ phone_number?: string;
401
+ }
402
+ /** `StoreCustomerMetadata`: the customer's stats in one store. */
403
+ export interface StoreCustomerMetadata {
404
+ customerId: string;
405
+ storeId: string;
406
+ storeName: string;
407
+ lastOrderId: string | null;
408
+ lastOrderDate: string | null;
409
+ preferences: Record<string, unknown> | null;
410
+ firstVisitAt: string;
411
+ lastVisitAt: string;
412
+ visitCount: number;
413
+ totalOrders: number;
414
+ totalSpent: number;
415
+ averageOrderValue: number;
416
+ favoriteProductsCount: number;
417
+ recentSearchesCount: number;
418
+ }
419
+ export interface RecentSearch {
420
+ id: number;
421
+ keyword: string;
422
+ searchedAt: string;
423
+ }
424
+ export interface RecentlyViewed {
425
+ productId: string;
426
+ productName: string;
427
+ productPrice: number;
428
+ productImage: string | null;
429
+ viewCount: number;
430
+ lastViewedAt: string;
431
+ firstViewedAt: string;
432
+ }
433
+ export interface Acknowledged {
434
+ message: string;
435
+ }
436
+ export interface FavoriteProduct {
437
+ id: number;
438
+ product: Product | null;
439
+ category: string | null;
440
+ addedAt: string;
441
+ isAvailable: boolean;
442
+ }
443
+ export interface FavoriteQuery extends PageQuery {
444
+ category?: string;
445
+ }
446
+ export interface AddFavoriteInput {
447
+ product_id: string | number;
448
+ category?: string;
449
+ }
450
+ export interface RenameFavoriteCategoryInput {
451
+ product_id?: string | number;
452
+ old_category?: string | null;
453
+ new_category: string;
454
+ }
455
+ export interface FavoriteCategoryRenamed {
456
+ updated_count: number;
457
+ old_category: string | null;
458
+ new_category: string;
459
+ }
460
+ export interface FavoriteCategory {
461
+ name: string | null;
462
+ productCount: number;
463
+ }
464
+ export interface FavoriteBatchInput {
465
+ action: 'copy' | 'move' | 'remove';
466
+ product_ids: number[];
467
+ source_category?: string | null;
468
+ target_category?: string | null;
469
+ }
470
+ export interface FavoriteBatchResult {
471
+ action: FavoriteBatchInput['action'];
472
+ processed: number;
473
+ success: number;
474
+ failed: number;
475
+ errors: unknown[];
476
+ }
477
+ /** `POST /messenger/send` on the storefront host; the tenant is `X-Client-Id`. */
478
+ export interface StorefrontMessageInput {
479
+ type?: string;
480
+ from_name?: string;
481
+ from_email?: string;
482
+ /** ≤ 20 characters. */
483
+ from_phone_number?: string;
484
+ subject: string;
485
+ message: string;
486
+ }
487
+ /** `MessengerGetDto`. */
488
+ export interface StorefrontMessage {
489
+ id: string;
490
+ type: string;
491
+ fromIpAddress: string | null;
492
+ fromName: string | null;
493
+ fromEmail: string | null;
494
+ fromPhoneNumber: string | null;
495
+ subject: string | null;
496
+ message: string | null;
497
+ siteId: string | null;
498
+ }
499
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/storefront/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Storefront customer-facing wire types (`src/Microservice/Storefront`).
3
+ *
4
+ * Responses are plain `json_encode` of the handler DTOs: camelCase keys, nulls kept. Request bodies go
5
+ * through JMS: snake_case keys, except where noted. Whole floats may arrive as integers (`10`, not `10.0`).
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/modules/storefront/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Storefront back office (`src/Microservice/Storefront/Controller/Admin`, host `app.storefront_host` →
3
+ * api.smess.vn, prefix `/v1/storefront/admin`).
4
+ *
5
+ * - Every route needs a store employee's token (`ROLE_STORE_EMPLOYEE`); without one core answers 403.
6
+ * - Store scope: `X-Store-Id` (numeric id or uuid). A tenant with one store needs none; with several, every
7
+ * route except the store list answers 400 until one is given. Pass `storeId` to the module to pin one.
8
+ * - Lists are cursor pages (`ApiList`) of snake_case rows; walk them with `paginate()`.
9
+ * - Details and updates answer with the bare snake_case object (no `{data}`). Product and promo creation
10
+ * and search answer `{data: …}`, which is unwrapped.
11
+ * - Updates are `POST /{id}`, not PUT or PATCH.
12
+ */
13
+ import type { SmessClient } from '../../core/client.js';
14
+ import type { CallOptions } from '../../core/endpoint.js';
15
+ import type { ApiList } from '../../core/pagination.js';
16
+ import type { Product, Promo } from '../storefront/types.js';
17
+ import type { AdminCustomer, AdminCustomerQuery, AdminOrder, AdminOrderQuery, AdminProduct, AdminProductQuery, AdminPromo, AdminPromoQuery, AdminSearchItem, AdminSearchQuery, AdminStore, ConfirmationResent, CreateProductInput, CreatePromoInput, CursorQuery, UpdateCustomerInput, UpdateOrderInput, UpdateOrderStatusInput, UpdatePromoInput, UpdateProductInput } from './types.js';
18
+ export type * from './types.js';
19
+ export declare const storefrontAdminEndpoints: {
20
+ readonly products: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/products", never, AdminProductQuery, ApiList<AdminProduct>>;
21
+ readonly createProduct: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/products", CreateProductInput, never, Product>;
22
+ readonly product: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/products/{id}", never, never, AdminProduct>;
23
+ readonly updateProduct: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/products/{id}", UpdateProductInput, never, AdminProduct>;
24
+ readonly orders: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/orders", never, AdminOrderQuery, ApiList<AdminOrder>>;
25
+ readonly order: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/orders/{id}", never, never, AdminOrder>;
26
+ readonly updateOrder: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/orders/{id}", UpdateOrderInput, never, AdminOrder>;
27
+ readonly confirmOrder: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/orders/{id}/confirm", UpdateOrderStatusInput, never, AdminOrder>;
28
+ readonly rejectOrder: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/orders/{id}/reject", UpdateOrderStatusInput, never, AdminOrder>;
29
+ readonly updateOrderStatus: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/orders/{id}/update_status", UpdateOrderStatusInput, never, AdminOrder>;
30
+ readonly resendOrderConfirmation: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/orders/{id}/resend_confirmation", never, never, ConfirmationResent>;
31
+ readonly promos: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/promos", never, AdminPromoQuery, ApiList<AdminPromo>>;
32
+ readonly createPromo: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/promos", CreatePromoInput, never, Promo>;
33
+ readonly promo: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/promos/{id}", never, never, AdminPromo>;
34
+ readonly updatePromo: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/promos/{id}", UpdatePromoInput, never, AdminPromo>;
35
+ readonly customers: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/customers", never, AdminCustomerQuery, ApiList<AdminCustomer>>;
36
+ readonly customer: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/customers/{id}", never, never, AdminCustomer>;
37
+ readonly updateCustomer: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/customers/{id}", UpdateCustomerInput, never, AdminCustomer>;
38
+ readonly search: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/search", never, AdminSearchQuery, AdminSearchItem[]>;
39
+ /** The tenant's stores; needs no store scope. */
40
+ readonly stores: import("../../core/endpoint.js").Endpoint<"/v1/storefront/admin/stores/", never, CursorQuery, ApiList<AdminStore>>;
41
+ };
42
+ export interface StorefrontAdminOptions {
43
+ /** `X-Store-Id` on every call: a numeric store id or uuid, or a function read per call. */
44
+ storeId?: string | number | (() => string | number | null | undefined) | null | undefined;
45
+ }
46
+ export declare function storefrontAdmin(client: SmessClient, options?: StorefrontAdminOptions): {
47
+ products: {
48
+ list: (query?: AdminProductQuery, o?: CallOptions) => Promise<ApiList<AdminProduct>>;
49
+ /** 201; answers with the camelCase storefront `Product`. */
50
+ create: (input: CreateProductInput, o?: CallOptions) => Promise<Product>;
51
+ get: (id: string | number, o?: CallOptions) => Promise<AdminProduct>;
52
+ update: (id: string | number, input: UpdateProductInput, o?: CallOptions) => Promise<AdminProduct>;
53
+ };
54
+ orders: {
55
+ list: (query?: AdminOrderQuery, o?: CallOptions) => Promise<ApiList<AdminOrder>>;
56
+ get: (id: string | number, o?: CallOptions) => Promise<AdminOrder>;
57
+ /** Edits items, contact blocks, payment and delivery. */
58
+ update: (id: string | number, input: UpdateOrderInput, o?: CallOptions) => Promise<AdminOrder>;
59
+ confirm: (id: string | number, input: UpdateOrderStatusInput, o?: CallOptions) => Promise<AdminOrder>;
60
+ reject: (id: string | number, input: UpdateOrderStatusInput, o?: CallOptions) => Promise<AdminOrder>;
61
+ updateStatus: (id: string | number, input: UpdateOrderStatusInput, o?: CallOptions) => Promise<AdminOrder>;
62
+ /** Queues the confirmation email again. */
63
+ resendConfirmation: (id: string | number, o?: CallOptions) => Promise<ConfirmationResent>;
64
+ };
65
+ promos: {
66
+ list: (query?: AdminPromoQuery, o?: CallOptions) => Promise<ApiList<AdminPromo>>;
67
+ /** Answers with the camelCase storefront `Promo`. */
68
+ create: (input: CreatePromoInput, o?: CallOptions) => Promise<Promo>;
69
+ get: (id: string | number, o?: CallOptions) => Promise<AdminPromo>;
70
+ update: (id: string | number, input: UpdatePromoInput, o?: CallOptions) => Promise<AdminPromo>;
71
+ };
72
+ customers: {
73
+ list: (query?: AdminCustomerQuery, o?: CallOptions) => Promise<ApiList<AdminCustomer>>;
74
+ get: (id: string | number, o?: CallOptions) => Promise<AdminCustomer>;
75
+ /** Preferences and the admin note. */
76
+ update: (id: string | number, input: UpdateCustomerInput, o?: CallOptions) => Promise<AdminCustomer>;
77
+ };
78
+ /** Id and name of matching customers, orders or products. */
79
+ search: (query: AdminSearchQuery, o?: CallOptions) => Promise<AdminSearchItem[]>;
80
+ stores: {
81
+ list: (query?: CursorQuery, o?: CallOptions) => Promise<ApiList<AdminStore>>;
82
+ };
83
+ };
84
+ export type StorefrontAdminModule = ReturnType<typeof storefrontAdmin>;
85
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/storefront-admin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAQ,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,mBAAmB,YAAY,CAAC;AAehC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;IAwBnC,iDAAiD;;CAEzC,CAAC;AAEX,MAAM,WAAW,sBAAsB;IACrC,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CAC3F;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,sBAA2B;;uBAUpE,iBAAiB,MAAM,WAAW;QACjD,4DAA4D;wBAC5C,kBAAkB,MAAM,WAAW;kBACzC,MAAM,GAAG,MAAM,MAAM,WAAW;qBAC7B,MAAM,GAAG,MAAM,SAAS,kBAAkB,MAAM,WAAW;;;uBAKzD,eAAe,MAAM,WAAW;kBACrC,MAAM,GAAG,MAAM,MAAM,WAAW;QAC1C,yDAAyD;qBAC5C,MAAM,GAAG,MAAM,SAAS,gBAAgB,MAAM,WAAW;sBAExD,MAAM,GAAG,MAAM,SAAS,sBAAsB,MAAM,WAAW;qBAEhE,MAAM,GAAG,MAAM,SAAS,sBAAsB,MAAM,WAAW;2BAEzD,MAAM,GAAG,MAAM,SAAS,sBAAsB,MAAM,WAAW;QAElF,2CAA2C;iCAClB,MAAM,GAAG,MAAM,MAAM,WAAW;;;uBAK1C,eAAe,MAAM,WAAW;QAC/C,qDAAqD;wBACrC,gBAAgB,MAAM,WAAW;kBACvC,MAAM,GAAG,MAAM,MAAM,WAAW;qBAC7B,MAAM,GAAG,MAAM,SAAS,gBAAgB,MAAM,WAAW;;;uBAKvD,kBAAkB,MAAM,WAAW;kBACxC,MAAM,GAAG,MAAM,MAAM,WAAW;QAC1C,sCAAsC;qBACzB,MAAM,GAAG,MAAM,SAAS,mBAAmB,MAAM,WAAW;;IAI3E,6DAA6D;oBAC7C,gBAAgB,MAAM,WAAW;;uBAGhC,WAAW,MAAM,WAAW;;EAGhD;AAED,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC"}