@ecomiq/storefront 1.1.5 → 1.1.9
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/README.md +3 -2
- package/dist/{chunk-QRR7EPCH.js → chunk-AKD5IDEB.js} +4 -3
- package/dist/chunk-AKD5IDEB.js.map +1 -0
- package/dist/{chunk-ZG2XUYGZ.js → chunk-EFEVJJWF.js} +85 -21
- package/dist/chunk-EFEVJJWF.js.map +1 -0
- package/dist/{chunk-3QGB55R6.js → chunk-NAJQB5DN.js} +4 -6
- package/dist/chunk-NAJQB5DN.js.map +1 -0
- package/dist/{chunk-ASFU32ZM.js → chunk-OABDGTBI.js} +25 -8
- package/dist/chunk-OABDGTBI.js.map +1 -0
- package/dist/chunks/client.d.ts +850 -132
- package/dist/chunks/client.js +47 -12
- package/dist/chunks/client.js.map +1 -1
- package/dist/chunks/config.js +1 -1
- package/dist/chunks/core-public.d.ts +2 -2
- package/dist/chunks/core-public.js +2 -2
- package/dist/chunks/server-nextjs.d.ts +3 -3
- package/dist/chunks/server-nextjs.js +17 -5
- package/dist/chunks/server-nextjs.js.map +1 -1
- package/dist/chunks/server-tanstack.d.ts +3 -3
- package/dist/chunks/server-tanstack.js +13 -7
- package/dist/chunks/server-tanstack.js.map +1 -1
- package/dist/{collection-C6bWDLiw.d.ts → collection-DU7gREXS.d.ts} +174 -38
- package/dist/{ecomiq-oauth-password-plugin-J5wDFqzL.d.ts → ecomiq-oauth-password-plugin-B_gMdGuc.d.ts} +32 -30
- package/dist/nextjs/api.js +1 -1
- package/dist/nextjs.server.d.ts +17 -0
- package/dist/tanstack/api.js +2 -2
- package/dist/tanstack.d.ts +0 -1
- package/dist/tanstack.server.d.ts +17 -0
- package/package.json +12 -2
- package/dist/chunk-3QGB55R6.js.map +0 -1
- package/dist/chunk-ASFU32ZM.js.map +0 -1
- package/dist/chunk-QRR7EPCH.js.map +0 -1
- package/dist/chunk-ZG2XUYGZ.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as StorefrontSettings,
|
|
1
|
+
import { S as StorefrontSettings, o as StorefrontProductDetail, r as StorefrontProductsParamsInput, t as StorefrontProductsResponse, e as StorefrontCollectionDetail, d as StorefrontCollection, a as StorefrontPageDetail, l as StorefrontPageListItem } from './collection-DU7gREXS.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { BetterAuthPlugin } from 'better-auth';
|
|
4
4
|
|
|
@@ -149,7 +149,9 @@ declare function getStorefrontSettingsFromKv(hostHeader: string): Promise<Storef
|
|
|
149
149
|
* El proxy resuelve la tienda por cookie.
|
|
150
150
|
*/
|
|
151
151
|
declare function getStorefrontProducts(params?: StorefrontProductsParamsInput, cacheKey?: string): Promise<StorefrontProductsResponse>;
|
|
152
|
-
declare function getStorefrontProductBySlug(slug: string
|
|
152
|
+
declare function getStorefrontProductBySlug(slug: string, options?: {
|
|
153
|
+
cacheKey?: string;
|
|
154
|
+
}): Promise<StorefrontProductDetail>;
|
|
153
155
|
|
|
154
156
|
/**
|
|
155
157
|
* Servicio de colecciones vía proxy /api/store.
|
|
@@ -549,8 +551,8 @@ declare const CartResponseSchema: z.ZodObject<{
|
|
|
549
551
|
thumbnail?: string | null | undefined;
|
|
550
552
|
variantSku?: string | null | undefined;
|
|
551
553
|
}[];
|
|
552
|
-
currencyCode: string;
|
|
553
554
|
metadata: Record<string, unknown>;
|
|
555
|
+
currencyCode: string;
|
|
554
556
|
promotionCodes: string[];
|
|
555
557
|
shippingMethods: unknown[];
|
|
556
558
|
totals: {
|
|
@@ -605,6 +607,7 @@ declare const CartResponseSchema: z.ZodObject<{
|
|
|
605
607
|
variantSku?: string | null | undefined;
|
|
606
608
|
}[] | undefined;
|
|
607
609
|
email?: string | null | undefined;
|
|
610
|
+
metadata?: Record<string, unknown> | undefined;
|
|
608
611
|
firstName?: string | null | undefined;
|
|
609
612
|
lastName?: string | null | undefined;
|
|
610
613
|
salesChannelId?: string | null | undefined;
|
|
@@ -612,7 +615,6 @@ declare const CartResponseSchema: z.ZodObject<{
|
|
|
612
615
|
billingAddress?: unknown;
|
|
613
616
|
regionId?: string | null | undefined;
|
|
614
617
|
completedAt?: string | null | undefined;
|
|
615
|
-
metadata?: Record<string, unknown> | undefined;
|
|
616
618
|
promotionCodes?: string[] | undefined;
|
|
617
619
|
shippingMethods?: unknown[] | undefined;
|
|
618
620
|
}>;
|
|
@@ -1654,8 +1656,8 @@ declare const CartCheckoutReadResponseSchema: z.ZodObject<{
|
|
|
1654
1656
|
thumbnail?: string | null | undefined;
|
|
1655
1657
|
variantSku?: string | null | undefined;
|
|
1656
1658
|
}[];
|
|
1657
|
-
currencyCode: string;
|
|
1658
1659
|
metadata: Record<string, unknown>;
|
|
1660
|
+
currencyCode: string;
|
|
1659
1661
|
promotionCodes: string[];
|
|
1660
1662
|
shippingMethods: unknown[];
|
|
1661
1663
|
totals: {
|
|
@@ -1710,6 +1712,7 @@ declare const CartCheckoutReadResponseSchema: z.ZodObject<{
|
|
|
1710
1712
|
variantSku?: string | null | undefined;
|
|
1711
1713
|
}[] | undefined;
|
|
1712
1714
|
email?: string | null | undefined;
|
|
1715
|
+
metadata?: Record<string, unknown> | undefined;
|
|
1713
1716
|
firstName?: string | null | undefined;
|
|
1714
1717
|
lastName?: string | null | undefined;
|
|
1715
1718
|
salesChannelId?: string | null | undefined;
|
|
@@ -1717,7 +1720,6 @@ declare const CartCheckoutReadResponseSchema: z.ZodObject<{
|
|
|
1717
1720
|
billingAddress?: unknown;
|
|
1718
1721
|
regionId?: string | null | undefined;
|
|
1719
1722
|
completedAt?: string | null | undefined;
|
|
1720
|
-
metadata?: Record<string, unknown> | undefined;
|
|
1721
1723
|
promotionCodes?: string[] | undefined;
|
|
1722
1724
|
shippingMethods?: unknown[] | undefined;
|
|
1723
1725
|
}>;
|
|
@@ -1811,8 +1813,8 @@ declare const CartCheckoutReadResponseSchema: z.ZodObject<{
|
|
|
1811
1813
|
thumbnail?: string | null | undefined;
|
|
1812
1814
|
variantSku?: string | null | undefined;
|
|
1813
1815
|
}[];
|
|
1814
|
-
currencyCode: string;
|
|
1815
1816
|
metadata: Record<string, unknown>;
|
|
1817
|
+
currencyCode: string;
|
|
1816
1818
|
promotionCodes: string[];
|
|
1817
1819
|
shippingMethods: unknown[];
|
|
1818
1820
|
totals: {
|
|
@@ -1884,6 +1886,7 @@ declare const CartCheckoutReadResponseSchema: z.ZodObject<{
|
|
|
1884
1886
|
variantSku?: string | null | undefined;
|
|
1885
1887
|
}[] | undefined;
|
|
1886
1888
|
email?: string | null | undefined;
|
|
1889
|
+
metadata?: Record<string, unknown> | undefined;
|
|
1887
1890
|
firstName?: string | null | undefined;
|
|
1888
1891
|
lastName?: string | null | undefined;
|
|
1889
1892
|
salesChannelId?: string | null | undefined;
|
|
@@ -1891,7 +1894,6 @@ declare const CartCheckoutReadResponseSchema: z.ZodObject<{
|
|
|
1891
1894
|
billingAddress?: unknown;
|
|
1892
1895
|
regionId?: string | null | undefined;
|
|
1893
1896
|
completedAt?: string | null | undefined;
|
|
1894
|
-
metadata?: Record<string, unknown> | undefined;
|
|
1895
1897
|
promotionCodes?: string[] | undefined;
|
|
1896
1898
|
shippingMethods?: unknown[] | undefined;
|
|
1897
1899
|
};
|
|
@@ -2195,22 +2197,22 @@ declare const CartShippingMethodPutRequestSchema: z.ZodObject<{
|
|
|
2195
2197
|
shippingMethodId: string;
|
|
2196
2198
|
rateId: string;
|
|
2197
2199
|
sellerId?: string | null | undefined;
|
|
2200
|
+
locationId?: string | null | undefined;
|
|
2198
2201
|
pickupPointId?: string | null | undefined;
|
|
2199
2202
|
scheduledDate?: string | null | undefined;
|
|
2200
2203
|
scheduledTime?: string | null | undefined;
|
|
2201
2204
|
serviceCode?: string | null | undefined;
|
|
2202
2205
|
shippingProfileId?: string | null | undefined;
|
|
2203
|
-
locationId?: string | null | undefined;
|
|
2204
2206
|
}, {
|
|
2205
2207
|
shippingMethodId: string;
|
|
2206
2208
|
rateId: string;
|
|
2207
2209
|
sellerId?: string | null | undefined;
|
|
2210
|
+
locationId?: string | null | undefined;
|
|
2208
2211
|
pickupPointId?: string | null | undefined;
|
|
2209
2212
|
scheduledDate?: string | null | undefined;
|
|
2210
2213
|
scheduledTime?: string | null | undefined;
|
|
2211
2214
|
serviceCode?: string | null | undefined;
|
|
2212
2215
|
shippingProfileId?: string | null | undefined;
|
|
2213
|
-
locationId?: string | null | undefined;
|
|
2214
2216
|
}>;
|
|
2215
2217
|
type CartShippingMethodPutRequest = z.input<typeof CartShippingMethodPutRequestSchema>;
|
|
2216
2218
|
|
|
@@ -2453,6 +2455,7 @@ declare const CustomerMeSchema: z.ZodObject<{
|
|
|
2453
2455
|
createdOn: string;
|
|
2454
2456
|
storeId: string;
|
|
2455
2457
|
email: string;
|
|
2458
|
+
role: string | null;
|
|
2456
2459
|
firstName: string;
|
|
2457
2460
|
lastName: string;
|
|
2458
2461
|
countryIsoCode: string;
|
|
@@ -2461,7 +2464,6 @@ declare const CustomerMeSchema: z.ZodObject<{
|
|
|
2461
2464
|
entityName: string | null;
|
|
2462
2465
|
dateOfBirth: string | null;
|
|
2463
2466
|
gender: string | null;
|
|
2464
|
-
role: string | null;
|
|
2465
2467
|
companyName: string | null;
|
|
2466
2468
|
consent: boolean;
|
|
2467
2469
|
userId: string;
|
|
@@ -2499,6 +2501,7 @@ declare const CustomerMeSchema: z.ZodObject<{
|
|
|
2499
2501
|
createdOn: string;
|
|
2500
2502
|
storeId: string;
|
|
2501
2503
|
email: string;
|
|
2504
|
+
role: string | null;
|
|
2502
2505
|
firstName: string;
|
|
2503
2506
|
lastName: string;
|
|
2504
2507
|
countryIsoCode: string;
|
|
@@ -2507,7 +2510,6 @@ declare const CustomerMeSchema: z.ZodObject<{
|
|
|
2507
2510
|
entityName: string | null;
|
|
2508
2511
|
dateOfBirth: string | null;
|
|
2509
2512
|
gender: string | null;
|
|
2510
|
-
role: string | null;
|
|
2511
2513
|
companyName: string | null;
|
|
2512
2514
|
consent: boolean;
|
|
2513
2515
|
userId: string;
|
|
@@ -2556,6 +2558,7 @@ declare const CustomerProfilePatchSchema: z.ZodObject<{
|
|
|
2556
2558
|
countryIsoCode: z.ZodString;
|
|
2557
2559
|
}, "strip", z.ZodTypeAny, {
|
|
2558
2560
|
phone: string;
|
|
2561
|
+
role: string | null;
|
|
2559
2562
|
firstName: string;
|
|
2560
2563
|
lastName: string;
|
|
2561
2564
|
countryIsoCode: string;
|
|
@@ -2564,12 +2567,12 @@ declare const CustomerProfilePatchSchema: z.ZodObject<{
|
|
|
2564
2567
|
entityName: string | null;
|
|
2565
2568
|
dateOfBirth: string | null;
|
|
2566
2569
|
gender: string | null;
|
|
2567
|
-
role: string | null;
|
|
2568
2570
|
companyName: string | null;
|
|
2569
2571
|
consent: boolean;
|
|
2570
2572
|
entityIdentificationNumber: string | null;
|
|
2571
2573
|
}, {
|
|
2572
2574
|
phone: string;
|
|
2575
|
+
role: string | null;
|
|
2573
2576
|
firstName: string;
|
|
2574
2577
|
lastName: string;
|
|
2575
2578
|
countryIsoCode: string;
|
|
@@ -2578,7 +2581,6 @@ declare const CustomerProfilePatchSchema: z.ZodObject<{
|
|
|
2578
2581
|
entityName: string | null;
|
|
2579
2582
|
dateOfBirth: string | null;
|
|
2580
2583
|
gender: string | null;
|
|
2581
|
-
role: string | null;
|
|
2582
2584
|
companyName: string | null;
|
|
2583
2585
|
consent: boolean;
|
|
2584
2586
|
entityIdentificationNumber: string | null;
|
|
@@ -2984,16 +2986,16 @@ declare const CustomerOrderDetailSchema: z.ZodObject<{
|
|
|
2984
2986
|
source: z.ZodString;
|
|
2985
2987
|
}, "strip", z.ZodTypeAny, {
|
|
2986
2988
|
status: string;
|
|
2989
|
+
label: string;
|
|
2987
2990
|
key: string;
|
|
2988
2991
|
source: string;
|
|
2989
|
-
label: string;
|
|
2990
2992
|
occurredAt: string;
|
|
2991
2993
|
description?: string | null | undefined;
|
|
2992
2994
|
}, {
|
|
2993
2995
|
status: string;
|
|
2996
|
+
label: string;
|
|
2994
2997
|
key: string;
|
|
2995
2998
|
source: string;
|
|
2996
|
-
label: string;
|
|
2997
2999
|
occurredAt: string;
|
|
2998
3000
|
description?: string | null | undefined;
|
|
2999
3001
|
}>, "many">;
|
|
@@ -3041,9 +3043,9 @@ declare const CustomerOrderDetailSchema: z.ZodObject<{
|
|
|
3041
3043
|
}[];
|
|
3042
3044
|
statusTimeline: {
|
|
3043
3045
|
status: string;
|
|
3046
|
+
label: string;
|
|
3044
3047
|
key: string;
|
|
3045
3048
|
source: string;
|
|
3046
|
-
label: string;
|
|
3047
3049
|
occurredAt: string;
|
|
3048
3050
|
description?: string | null | undefined;
|
|
3049
3051
|
}[];
|
|
@@ -3124,9 +3126,9 @@ declare const CustomerOrderDetailSchema: z.ZodObject<{
|
|
|
3124
3126
|
}[];
|
|
3125
3127
|
statusTimeline: {
|
|
3126
3128
|
status: string;
|
|
3129
|
+
label: string;
|
|
3127
3130
|
key: string;
|
|
3128
3131
|
source: string;
|
|
3129
|
-
label: string;
|
|
3130
3132
|
occurredAt: string;
|
|
3131
3133
|
description?: string | null | undefined;
|
|
3132
3134
|
}[];
|
|
@@ -3296,10 +3298,10 @@ declare const OrderDraftSchema: z.ZodObject<{
|
|
|
3296
3298
|
quantity: number;
|
|
3297
3299
|
unitPrice: number;
|
|
3298
3300
|
requiresShipping: boolean;
|
|
3301
|
+
metadata: Record<string, unknown>;
|
|
3299
3302
|
discount: number;
|
|
3300
3303
|
tax: number;
|
|
3301
3304
|
warranty: number;
|
|
3302
|
-
metadata: Record<string, unknown>;
|
|
3303
3305
|
subTotal: number;
|
|
3304
3306
|
shipping: number;
|
|
3305
3307
|
isTaxInclusive: boolean;
|
|
@@ -3319,11 +3321,11 @@ declare const OrderDraftSchema: z.ZodObject<{
|
|
|
3319
3321
|
variantId?: string | null | undefined;
|
|
3320
3322
|
unitPrice?: number | undefined;
|
|
3321
3323
|
requiresShipping?: boolean | undefined;
|
|
3324
|
+
metadata?: Record<string, unknown> | undefined;
|
|
3322
3325
|
discount?: number | undefined;
|
|
3323
3326
|
tax?: number | undefined;
|
|
3324
3327
|
warranty?: number | undefined;
|
|
3325
3328
|
thumbnail?: string | null | undefined;
|
|
3326
|
-
metadata?: Record<string, unknown> | undefined;
|
|
3327
3329
|
shippingProfileId?: string | null | undefined;
|
|
3328
3330
|
subtitle?: string | null | undefined;
|
|
3329
3331
|
subTotal?: number | undefined;
|
|
@@ -3363,13 +3365,13 @@ declare const OrderDraftSchema: z.ZodObject<{
|
|
|
3363
3365
|
isTaxInclusive: boolean;
|
|
3364
3366
|
description?: string | null | undefined;
|
|
3365
3367
|
sellerId?: string | null | undefined;
|
|
3368
|
+
locationId?: string | null | undefined;
|
|
3366
3369
|
estimatedDays?: number | null | undefined;
|
|
3367
3370
|
pickupPointId?: string | null | undefined;
|
|
3368
3371
|
scheduledDate?: string | null | undefined;
|
|
3369
3372
|
scheduledTime?: string | null | undefined;
|
|
3370
3373
|
shippingMethodId?: string | null | undefined;
|
|
3371
3374
|
shippingProfileId?: string | null | undefined;
|
|
3372
|
-
locationId?: string | null | undefined;
|
|
3373
3375
|
connectionId?: string | null | undefined;
|
|
3374
3376
|
providerName?: string | null | undefined;
|
|
3375
3377
|
trackingCode?: string | null | undefined;
|
|
@@ -3381,6 +3383,7 @@ declare const OrderDraftSchema: z.ZodObject<{
|
|
|
3381
3383
|
data?: Record<string, unknown> | undefined;
|
|
3382
3384
|
sellerId?: string | null | undefined;
|
|
3383
3385
|
total?: number | undefined;
|
|
3386
|
+
locationId?: string | null | undefined;
|
|
3384
3387
|
subtotal?: number | undefined;
|
|
3385
3388
|
estimatedDays?: number | null | undefined;
|
|
3386
3389
|
pickupPointId?: string | null | undefined;
|
|
@@ -3390,7 +3393,6 @@ declare const OrderDraftSchema: z.ZodObject<{
|
|
|
3390
3393
|
taxTotal?: number | undefined;
|
|
3391
3394
|
shippingMethodId?: string | null | undefined;
|
|
3392
3395
|
shippingProfileId?: string | null | undefined;
|
|
3393
|
-
locationId?: string | null | undefined;
|
|
3394
3396
|
isTaxInclusive?: boolean | undefined;
|
|
3395
3397
|
connectionId?: string | null | undefined;
|
|
3396
3398
|
providerName?: string | null | undefined;
|
|
@@ -3409,10 +3411,10 @@ declare const OrderDraftSchema: z.ZodObject<{
|
|
|
3409
3411
|
quantity: number;
|
|
3410
3412
|
unitPrice: number;
|
|
3411
3413
|
requiresShipping: boolean;
|
|
3414
|
+
metadata: Record<string, unknown>;
|
|
3412
3415
|
discount: number;
|
|
3413
3416
|
tax: number;
|
|
3414
3417
|
warranty: number;
|
|
3415
|
-
metadata: Record<string, unknown>;
|
|
3416
3418
|
subTotal: number;
|
|
3417
3419
|
shipping: number;
|
|
3418
3420
|
isTaxInclusive: boolean;
|
|
@@ -3424,11 +3426,11 @@ declare const OrderDraftSchema: z.ZodObject<{
|
|
|
3424
3426
|
subtitle?: string | null | undefined;
|
|
3425
3427
|
}[];
|
|
3426
3428
|
total: number;
|
|
3429
|
+
metadata: Record<string, unknown>;
|
|
3427
3430
|
currencyCode: string;
|
|
3428
3431
|
discount: number;
|
|
3429
3432
|
tax: number;
|
|
3430
3433
|
warranty: number;
|
|
3431
|
-
metadata: Record<string, unknown>;
|
|
3432
3434
|
shippingMethods: {
|
|
3433
3435
|
name: string;
|
|
3434
3436
|
id: string;
|
|
@@ -3440,13 +3442,13 @@ declare const OrderDraftSchema: z.ZodObject<{
|
|
|
3440
3442
|
isTaxInclusive: boolean;
|
|
3441
3443
|
description?: string | null | undefined;
|
|
3442
3444
|
sellerId?: string | null | undefined;
|
|
3445
|
+
locationId?: string | null | undefined;
|
|
3443
3446
|
estimatedDays?: number | null | undefined;
|
|
3444
3447
|
pickupPointId?: string | null | undefined;
|
|
3445
3448
|
scheduledDate?: string | null | undefined;
|
|
3446
3449
|
scheduledTime?: string | null | undefined;
|
|
3447
3450
|
shippingMethodId?: string | null | undefined;
|
|
3448
3451
|
shippingProfileId?: string | null | undefined;
|
|
3449
|
-
locationId?: string | null | undefined;
|
|
3450
3452
|
connectionId?: string | null | undefined;
|
|
3451
3453
|
providerName?: string | null | undefined;
|
|
3452
3454
|
trackingCode?: string | null | undefined;
|
|
@@ -3462,8 +3464,8 @@ declare const OrderDraftSchema: z.ZodObject<{
|
|
|
3462
3464
|
updatedOn?: string | null | undefined;
|
|
3463
3465
|
createdOn?: string | undefined;
|
|
3464
3466
|
storeId?: string | undefined;
|
|
3465
|
-
source?: string | null | undefined;
|
|
3466
3467
|
email?: string | null | undefined;
|
|
3468
|
+
source?: string | null | undefined;
|
|
3467
3469
|
firstName?: string | null | undefined;
|
|
3468
3470
|
lastName?: string | null | undefined;
|
|
3469
3471
|
shippingAddress?: z.objectOutputType<{
|
|
@@ -3524,11 +3526,11 @@ declare const OrderDraftSchema: z.ZodObject<{
|
|
|
3524
3526
|
variantId?: string | null | undefined;
|
|
3525
3527
|
unitPrice?: number | undefined;
|
|
3526
3528
|
requiresShipping?: boolean | undefined;
|
|
3529
|
+
metadata?: Record<string, unknown> | undefined;
|
|
3527
3530
|
discount?: number | undefined;
|
|
3528
3531
|
tax?: number | undefined;
|
|
3529
3532
|
warranty?: number | undefined;
|
|
3530
3533
|
thumbnail?: string | null | undefined;
|
|
3531
|
-
metadata?: Record<string, unknown> | undefined;
|
|
3532
3534
|
shippingProfileId?: string | null | undefined;
|
|
3533
3535
|
subtitle?: string | null | undefined;
|
|
3534
3536
|
subTotal?: number | undefined;
|
|
@@ -3536,8 +3538,9 @@ declare const OrderDraftSchema: z.ZodObject<{
|
|
|
3536
3538
|
isTaxInclusive?: boolean | undefined;
|
|
3537
3539
|
}[] | undefined;
|
|
3538
3540
|
total?: number | undefined;
|
|
3539
|
-
source?: string | null | undefined;
|
|
3540
3541
|
email?: string | null | undefined;
|
|
3542
|
+
source?: string | null | undefined;
|
|
3543
|
+
metadata?: Record<string, unknown> | undefined;
|
|
3541
3544
|
firstName?: string | null | undefined;
|
|
3542
3545
|
lastName?: string | null | undefined;
|
|
3543
3546
|
currencyCode?: string | undefined;
|
|
@@ -3566,7 +3569,6 @@ declare const OrderDraftSchema: z.ZodObject<{
|
|
|
3566
3569
|
discount?: number | undefined;
|
|
3567
3570
|
tax?: number | undefined;
|
|
3568
3571
|
warranty?: number | undefined;
|
|
3569
|
-
metadata?: Record<string, unknown> | undefined;
|
|
3570
3572
|
shippingMethods?: {
|
|
3571
3573
|
id: string;
|
|
3572
3574
|
name?: string | undefined;
|
|
@@ -3574,6 +3576,7 @@ declare const OrderDraftSchema: z.ZodObject<{
|
|
|
3574
3576
|
data?: Record<string, unknown> | undefined;
|
|
3575
3577
|
sellerId?: string | null | undefined;
|
|
3576
3578
|
total?: number | undefined;
|
|
3579
|
+
locationId?: string | null | undefined;
|
|
3577
3580
|
subtotal?: number | undefined;
|
|
3578
3581
|
estimatedDays?: number | null | undefined;
|
|
3579
3582
|
pickupPointId?: string | null | undefined;
|
|
@@ -3583,7 +3586,6 @@ declare const OrderDraftSchema: z.ZodObject<{
|
|
|
3583
3586
|
taxTotal?: number | undefined;
|
|
3584
3587
|
shippingMethodId?: string | null | undefined;
|
|
3585
3588
|
shippingProfileId?: string | null | undefined;
|
|
3586
|
-
locationId?: string | null | undefined;
|
|
3587
3589
|
isTaxInclusive?: boolean | undefined;
|
|
3588
3590
|
connectionId?: string | null | undefined;
|
|
3589
3591
|
providerName?: string | null | undefined;
|
package/dist/nextjs/api.js
CHANGED
package/dist/nextjs.server.d.ts
CHANGED
|
@@ -1 +1,18 @@
|
|
|
1
1
|
export * from "./chunks/server-nextjs";
|
|
2
|
+
export type {
|
|
3
|
+
StorefrontSettings,
|
|
4
|
+
StorefrontStore,
|
|
5
|
+
StorefrontCmsSettings,
|
|
6
|
+
StorefrontCmsPage,
|
|
7
|
+
StorefrontProduct,
|
|
8
|
+
StorefrontFacet,
|
|
9
|
+
StorefrontSearchFilter,
|
|
10
|
+
StorefrontProductDetail,
|
|
11
|
+
StorefrontProductsResponse,
|
|
12
|
+
StorefrontProductsParamsInput,
|
|
13
|
+
StorefrontVariant,
|
|
14
|
+
StorefrontCollection,
|
|
15
|
+
StorefrontCollectionDetail,
|
|
16
|
+
StorefrontPageDetail,
|
|
17
|
+
StorefrontPageListItem,
|
|
18
|
+
} from "./chunks/core-public";
|
package/dist/tanstack/api.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { handleStoreProxyRequest } from '../chunk-
|
|
2
|
-
export { handleStoreProxyRequest } from '../chunk-
|
|
1
|
+
import { handleStoreProxyRequest } from '../chunk-AKD5IDEB.js';
|
|
2
|
+
export { handleStoreProxyRequest } from '../chunk-AKD5IDEB.js';
|
|
3
3
|
import '../chunk-S7CPZ4UE.js';
|
|
4
4
|
import '../chunk-Q4U5OEUT.js';
|
|
5
5
|
|
package/dist/tanstack.d.ts
CHANGED
|
@@ -1 +1,18 @@
|
|
|
1
1
|
export * from "./chunks/server-tanstack";
|
|
2
|
+
export type {
|
|
3
|
+
StorefrontSettings,
|
|
4
|
+
StorefrontStore,
|
|
5
|
+
StorefrontCmsSettings,
|
|
6
|
+
StorefrontCmsPage,
|
|
7
|
+
StorefrontProduct,
|
|
8
|
+
StorefrontFacet,
|
|
9
|
+
StorefrontSearchFilter,
|
|
10
|
+
StorefrontProductDetail,
|
|
11
|
+
StorefrontProductsResponse,
|
|
12
|
+
StorefrontProductsParamsInput,
|
|
13
|
+
StorefrontVariant,
|
|
14
|
+
StorefrontCollection,
|
|
15
|
+
StorefrontCollectionDetail,
|
|
16
|
+
StorefrontPageDetail,
|
|
17
|
+
StorefrontPageListItem,
|
|
18
|
+
} from "./chunks/core-public";
|
package/package.json
CHANGED
|
@@ -50,6 +50,11 @@
|
|
|
50
50
|
"types": "./dist/nextjs/api.d.ts",
|
|
51
51
|
"import": "./dist/nextjs/api.js"
|
|
52
52
|
},
|
|
53
|
+
"./nextjs/server": {
|
|
54
|
+
"types": "./dist/nextjs.server.d.ts",
|
|
55
|
+
"import": "./dist/nextjs.server.js",
|
|
56
|
+
"default": "./dist/nextjs.server.js"
|
|
57
|
+
},
|
|
53
58
|
"./nextjs/css": "./dist/nextjs/globals.css",
|
|
54
59
|
"./nextjs/postcss": "./dist/postcss.config.mjs",
|
|
55
60
|
"./tanstack": {
|
|
@@ -60,6 +65,11 @@
|
|
|
60
65
|
},
|
|
61
66
|
"import": "./dist/tanstack.js"
|
|
62
67
|
},
|
|
68
|
+
"./tanstack/server": {
|
|
69
|
+
"types": "./dist/tanstack.server.d.ts",
|
|
70
|
+
"import": "./dist/tanstack.server.js",
|
|
71
|
+
"default": "./dist/tanstack.server.js"
|
|
72
|
+
},
|
|
63
73
|
"./tanstack/api": {
|
|
64
74
|
"types": "./dist/tanstack/api.d.ts",
|
|
65
75
|
"import": "./dist/tanstack/api.js"
|
|
@@ -79,12 +89,12 @@
|
|
|
79
89
|
"optional": true
|
|
80
90
|
}
|
|
81
91
|
},
|
|
82
|
-
"version": "1.1.
|
|
92
|
+
"version": "1.1.9",
|
|
83
93
|
"dependencies": {
|
|
84
94
|
"@hookform/resolvers": "^5.2.2",
|
|
85
95
|
"@tanstack/react-query": "^5.66.9",
|
|
86
96
|
"axios": "^1.8.2",
|
|
87
|
-
"better-auth": "^1.6.
|
|
97
|
+
"better-auth": "^1.6.16",
|
|
88
98
|
"canvas-confetti": "^1.9.3",
|
|
89
99
|
"embla-carousel": "8.5.1",
|
|
90
100
|
"embla-carousel-autoplay": "8.5.1",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/config/ecomiq-config.schema.ts","../src/core/client/storefront-settings-kv.service.ts","../src/core/config/ecomiq-config.load.ts"],"names":[],"mappings":"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","file":"chunk-3QGB55R6.js","sourcesContent":["import { z } from \"zod\";\n\nexport const EcomiqConfigSchema = z.object({\n /**\n * Slug de tienda en Ecomiq (p. ej. `mi-tienda` para `mi-tienda.ecomiq.app`).\n * Opcional: si se omite, la tienda se resuelve por el header `Host`.\n */\n slugStore: z.string().min(1).optional(),\n});\n\nexport type EcomiqConfig = z.infer<typeof EcomiqConfigSchema>;\n\nexport function parseExportedEcomiqConfig(raw: unknown): EcomiqConfig | null {\n const candidate =\n raw && typeof raw === \"object\" && \"default\" in (raw as object)\n ? (raw as { default: unknown }).default\n : raw;\n const parsed = EcomiqConfigSchema.safeParse(candidate);\n if (!parsed.success) {\n console.warn(\n \"[ecomiq] ecomiq.config.* inválido:\",\n parsed.error.flatten().fieldErrors,\n );\n return null;\n }\n const slugStore = parsed.data.slugStore?.trim();\n return slugStore ? { slugStore } : {};\n}\n","import { StorefrontSettingsSchema } from \"../models/store\";\nimport type { StorefrontSettings } from \"../models/store\";\n\n/** KV Cloudflare: el consumidor instala @opennextjs/cloudflare en su proyecto (no viene con el SDK). */\nasync function getCloudflareEnv(): Promise<unknown> {\n try {\n const { getCloudflareContext } = await import(\"@opennextjs/cloudflare\");\n const { env } = await getCloudflareContext({ async: true });\n return env;\n } catch {\n throw Object.assign(\n new Error(\n 'Modo KV requiere @opennextjs/cloudflare en tu proyecto. ' +\n \"Instálalo y configura el binding KV, o usa PUBLIC_STORE_SETTINGS_SOURCE=api.\",\n ),\n { status: 500 },\n );\n }\n}\n\n/** Debe coincidir con el `binding` en wrangler.jsonc (`kv_namespaces`). */\nexport const ECOMIQ_CLIENTS_STORE_KV_BINDING = \"ecomiq_clients_store\" as const;\n\nconst ECOMIQ_APP_APEX = \"ecomiq.app\";\nconst ECOMIQ_APP_SUFFIX = [`.${ECOMIQ_APP_APEX}`, `.localhost`];\n\ntype KvJsonGet = {\n get(key: string, options: { type: \"json\" }): Promise<unknown>;\n};\n\n/** Host sin puerto, minúsculas, sin `www.`. */\nexport function normalizeStoreHost(hostHeader: string): string {\n let h = hostHeader.trim().toLowerCase();\n const colon = h.indexOf(\":\");\n if (colon !== -1) h = h.slice(0, colon);\n if (h.startsWith(\"www.\")) h = h.slice(4);\n return h;\n}\n\n/**\n * Identificador de tienda a partir del `Host`: slug en `*.ecomiq.app`, FQDN en dominio propio.\n * Misma semántica que el sufijo de `buildStorefrontKvSnapshotKey` (sin el prefijo KV).\n */\nexport function resolveStorefrontSettingsHost(hostHeader: string): string {\n const host = normalizeStoreHost(hostHeader);\n if (!host) {\n throw Object.assign(new Error(\"Host inválido para tienda\"), { status: 400 });\n }\n if (host === ECOMIQ_APP_APEX) {\n throw Object.assign(new Error(\"Host apex ecomiq.app sin slug de tienda\"), { status: 400 });\n }\n if (ECOMIQ_APP_SUFFIX.some(suffix => host.endsWith(suffix))) {\n const slug = host.slice(0, -(ECOMIQ_APP_SUFFIX.find(suffix => host.endsWith(suffix))?.length ?? 0));\n if (!slug) {\n throw Object.assign(new Error(\"Host sin slug para ecomiq.app\"), { status: 400 });\n }\n return slug;\n }\n return host;\n}\n\n/**\n * Clave KV del snapshot de tienda.\n * - `*.ecomiq.app` → `storefront:snapshots:store:<slug>` (todo lo que va antes de `.ecomiq.app`, p. ej. `plata950`).\n * - Dominio propio (p. ej. `plata950.com`) → `storefront:snapshots:store:<dominio completo>`.\n */\nexport function buildStorefrontKvSnapshotKeyFromStoreKey(storeKey: string): string {\n const key = storeKey.trim();\n if (!key) {\n throw Object.assign(new Error(\"Store key vacío para KV\"), { status: 400 });\n }\n return `storefront:snapshots:store:${key}`;\n}\n\nexport function buildStorefrontKvSnapshotKey(hostHeader: string): string {\n return buildStorefrontKvSnapshotKeyFromStoreKey(\n resolveStorefrontSettingsHost(hostHeader),\n );\n}\n\nfunction getKvNamespace(env: unknown): KvJsonGet | undefined {\n if (!env || typeof env !== \"object\") return undefined;\n const ns = (env as Record<string, unknown>)[ECOMIQ_CLIENTS_STORE_KV_BINDING];\n if (!ns || typeof ns !== \"object\" || typeof (ns as KvJsonGet).get !== \"function\") {\n return undefined;\n }\n return ns as KvJsonGet;\n}\n\n/**\n * Lee settings desde KV con clave ya resuelta (slug o dominio).\n */\nexport async function getStorefrontSettingsFromKvByStoreKey(\n storeKey: string,\n): Promise<StorefrontSettings> {\n const env = await getCloudflareEnv();\n const kv = getKvNamespace(env);\n if (!kv) {\n const err = new Error(\n `Binding KV \"${ECOMIQ_CLIENTS_STORE_KV_BINDING}\" no encontrado. Configura kv_namespaces en wrangler.`\n );\n throw Object.assign(err, { status: 500 });\n }\n\n const cacheKey = buildStorefrontKvSnapshotKeyFromStoreKey(storeKey);\n const raw = await kv.get(cacheKey, { type: \"json\" });\n if (raw == null) {\n const err = new Error(\"Store settings not found in KV\");\n throw Object.assign(err, { status: 404 });\n }\n\n return StorefrontSettingsSchema.parse(raw);\n}\n\n/**\n * Lee settings desde KV (`ecomiq_clients_store`) usando la clave según el host.\n */\nexport async function getStorefrontSettingsFromKv(hostHeader: string): Promise<StorefrontSettings> {\n return getStorefrontSettingsFromKvByStoreKey(\n resolveStorefrontSettingsHost(hostHeader),\n );\n}\n","import { existsSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { join } from \"node:path\";\nimport { resolveStorefrontSettingsHost } from \"../client/storefront-settings-kv.service\";\nimport {\n type EcomiqConfig,\n parseExportedEcomiqConfig,\n} from \"./ecomiq-config.schema\";\n\nexport type { EcomiqConfig } from \"./ecomiq-config.schema\";\nexport { EcomiqConfigSchema } from \"./ecomiq-config.schema\";\n\nconst CONFIG_FILENAMES = [\n \"ecomiq.config.js\",\n \"ecomiq.config.cjs\",\n \"ecomiq.config.mjs\",\n] as const;\n\nlet cachedConfig: EcomiqConfig | null | undefined;\n\n/**\n * Carga `ecomiq.config.js` (o `.cjs` / `.mjs`) desde `cwd` si existe.\n * Si no hay archivo, devuelve `null` (resolución por `Host` en `resolvePublicStoreKey`).\n */\nexport function loadEcomiqConfig(cwd = process.cwd()): EcomiqConfig | null {\n if (cachedConfig !== undefined) return cachedConfig;\n\n for (const filename of CONFIG_FILENAMES) {\n const configPath = join(cwd, filename);\n if (!existsSync(configPath)) continue;\n\n try {\n const requireFromApp = createRequire(join(cwd, \"package.json\"));\n const loaded = requireFromApp(configPath) as unknown;\n cachedConfig = parseExportedEcomiqConfig(loaded);\n return cachedConfig;\n } catch (error) {\n console.warn(`[ecomiq] No se pudo cargar ${configPath}:`, error);\n }\n }\n\n cachedConfig = null;\n return null;\n}\n\n/** Limpia la caché (tests o recarga en dev). */\nexport function clearEcomiqConfigCache(): void {\n cachedConfig = undefined;\n}\n\n/**\n * Identificador de tienda para settings (API / KV).\n * 1. `slugStore` en `ecomiq.config.*` si el archivo existe.\n * 2. Si no, deriva del header `Host`.\n */\nexport function resolvePublicStoreKey(\n hostHeader: string | null | undefined,\n cwd?: string,\n): string {\n const slugFromConfig = loadEcomiqConfig(cwd)?.slugStore?.trim();\n if (slugFromConfig) return slugFromConfig;\n\n if (!hostHeader?.trim()) {\n throw Object.assign(\n new Error(\n \"No se pudo resolver la tienda: falta el header Host. En local puedes definir slugStore en ecomiq.config.js (opcional).\",\n ),\n { status: 400 },\n );\n }\n\n return resolveStorefrontSettingsHost(hostHeader);\n}\n\nexport function hasEcomiqSlugStoreConfig(cwd?: string): boolean {\n return Boolean(loadEcomiqConfig(cwd)?.slugStore?.trim());\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/models/page.ts","../src/core/models/product.ts","../src/core/models/collection.ts"],"names":["z"],"mappings":"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","file":"chunk-ASFU32ZM.js","sourcesContent":["import { z } from \"zod\";\n\n/** Page list item from GET /v1/pages */\nexport const StorefrontPageListItemSchema = z.object({\n id: z.string(),\n name: z.string(),\n slug: z.string(),\n layout: z.string(),\n});\n\nexport type StorefrontPageListItem = z.infer<typeof StorefrontPageListItemSchema>;\n\n/** SEO settings within page settings */\nexport const StorefrontPageSeoSchema = z.object({\n title: z.string().optional(),\n description: z.string().optional(),\n}).optional();\n\n/** Page settings (layout-specific; flexible) */\nexport const StorefrontPageSettingsSchema = z.object({\n seo: StorefrontPageSeoSchema,\n html: z.string().optional(),\n title: z.string().optional(),\n}).catchall(z.unknown());\n\n/** Section block (item, widget, etc.) */\nexport const StorefrontPageBlockSchema = z.object({\n id: z.string(),\n type: z.string(),\n order: z.number(),\n settings: z.record(z.unknown()).optional(),\n});\n\n/** Page section (page-hero, faq, widget-row, etc.) */\nexport const StorefrontPageSectionSchema = z.object({\n id: z.string(),\n type: z.string(),\n order: z.number(),\n settings: z.record(z.unknown()).optional(),\n blocks: z.array(StorefrontPageBlockSchema).optional().default([]),\n});\n\n/** Page detail from GET /v1/pages/{slug}; sections is optional */\nexport const StorefrontPageDetailSchema = z.object({\n id: z.string(),\n name: z.string(),\n slug: z.string(),\n layout: z.string(),\n settings: StorefrontPageSettingsSchema.optional(),\n sections: z.array(StorefrontPageSectionSchema).optional(),\n});\n\nexport type StorefrontPageDetail = z.infer<typeof StorefrontPageDetailSchema>;\nexport type StorefrontPageSection = z.infer<typeof StorefrontPageSectionSchema>;\nexport type StorefrontPageBlock = z.infer<typeof StorefrontPageBlockSchema>;\n","import { z } from 'zod';\n\nexport const ProductVariantSchema = z.object({\n id: z.coerce.string(),\n name: z.string(),\n storeId: z.string(),\n productId: z.coerce.string(),\n basePrice: z.number().positive().optional().nullable(),\n comparePrice: z.number().positive().optional().nullable(), //TODO: remove this field\n originalPrice: z.number().positive().optional().nullable(),\n costPrice: z.number().positive().optional().nullable(),\n isDefault: z.boolean().optional().nullable(),\n reserveStock: z.number().nonnegative().optional().nullable(),\n weight: z.number().nonnegative().optional().nullable().default(0),\n width: z.number().nonnegative().optional().nullable(),\n height: z.number().nonnegative().optional().nullable(),\n unitOfMeasure: z.string().optional().nullable(),\n order: z.number().nonnegative().optional().nullable().default(0),\n sku: z.string().optional().nullable(),\n stock: z.number().nonnegative().optional().nullable(),\n leadTime: z.string().optional().nullable(),\n barCode: z.string().optional().nullable(),\n shippingWeight: z.number().nonnegative().optional().nullable(),\n images: z.array(z.string()).optional().nullable(),\n attributes: z.array(z.string()).optional().nullable(),\n variantStatus: z.string().optional().nullable(),\n status: z.string().optional().nullable(),\n createdOn: z.string().optional().nullable(),\n updatedOn: z.string().optional().nullable(),\n deletedOn: z.string().optional().nullable(),\n});\n\nexport const ProductSchema = z.object({\n id: z.coerce.string(),\n name: z.string(),\n images: z.array(z.object({\n url: z.string().url(),\n name: z.string().optional(),\n isPrimary: z.boolean().optional(),\n })),\n basePrice: z.number().positive().optional(),\n salePrice: z.number().positive().optional(),\n slug: z.string(),\n description: z.string().optional(),\n categories: z.array(z.object({\n id: z.coerce.string(),\n name: z.string(),\n slug: z.string(),\n logo: z.string().optional(),\n icon: z.string().optional(),\n })).optional(),\n tags: z.array(z.string()).optional(),\n inStock: z.boolean().optional(),\n variants: z.array(ProductVariantSchema).optional(),\n});\n\nexport const ProductsResponseSchema = z.object({\n items: z.array(ProductSchema),\n meta: z.object({\n total: z.number().int().positive(),\n page: z.number().int().positive(),\n pageSize: z.number().int().positive(),\n hasNextPage: z.boolean(),\n }),\n});\n\nexport const ProductsFiltersSchema = z.object({\n category: z.string().optional(),\n search: z.string().optional(),\n minPrice: z.number().positive().optional(),\n maxPrice: z.number().positive().optional(),\n inStock: z.boolean().optional(),\n sortBy: z.enum(['name', 'price', 'createdAt']).optional(),\n sortOrder: z.enum(['asc', 'desc']).optional(),\n page: z.number().int().positive().optional(),\n limit: z.number().int().positive().optional(),\n});\n\n// --- Storefront API (v1/storefront/products) ---\n\nexport const StorefrontProductSchema = z.object({\n id: z.coerce.string(),\n name: z.string(),\n slug: z.string(),\n productType: z.string().optional().nullable(),\n imageUrl: z.string().optional().nullable(),\n price: z.number().nonnegative(),\n compareAtPrice: z.number().nonnegative().optional().nullable(),\n variantCount: z.number().int().nonnegative().optional().default(0),\n isAvailable: z.boolean(),\n totalInventory: z.number().int().nonnegative(),\n bundleItemsCount: z.number().int().nonnegative().optional().default(0),\n brand: z.string().optional().nullable(),\n category: z.string().optional().nullable(),\n status: z.string().optional().nullable(),\n tags: z.array(z.string()).optional().nullable(),\n});\n\nexport const StorefrontFacetSchema = z.object({\n value: z.string(),\n count: z.number().int().nonnegative(),\n});\n\nexport const StorefrontProductsResponseSchema = z.object({\n pageIndex: z.number().int().positive(),\n pageSize: z.number().int().positive(),\n totalCount: z.number().int().nonnegative(),\n totalPages: z.number().int().nonnegative(),\n products: z.array(StorefrontProductSchema),\n categories: z.array(StorefrontFacetSchema).optional().default([]),\n brands: z.array(StorefrontFacetSchema).optional().default([]),\n minPrice: z.number().nonnegative().optional().nullable(),\n maxPrice: z.number().nonnegative().optional().nullable(),\n});\n\nexport const StorefrontProductsParamsSchema = z.object({\n page: z.number().int().positive().optional().default(1),\n pageSize: z.number().int().positive().optional().default(20),\n sort: z\n .enum(['price_asc', 'price_desc', 'name_asc', 'name_desc', 'newest'])\n .optional()\n .default('price_asc'),\n sellerId: z.string().optional(),\n search: z.string().optional(),\n collection: z.string().optional(),\n category: z.string().optional(),\n brand: z.string().optional(),\n productType: z.string().optional(),\n inStock: z.boolean().optional(),\n minPrice: z.number().nonnegative().optional(),\n maxPrice: z.number().nonnegative().optional(),\n});\n\n// --- Storefront product by slug (v1/storefront/products/by-slug/:slug) ---\n\nexport const StorefrontVariantOptionSchema = z.object({\n key: z.string(),\n name: z.string(),\n value: z.string(),\n});\n\nexport const StorefrontProductImageSchema = z.object({\n url: z.string(),\n name: z.string().optional().nullable(),\n order: z.number().int().nonnegative().optional(),\n});\n\nexport const StorefrontVariantSchema = z.object({\n id: z.coerce.string().optional().default(''),\n sku: z.string(),\n status: z.string().optional().nullable(),\n price: z.number().nonnegative(),\n compareAtPrice: z.number().nonnegative().optional().nullable(),\n quantity: z.number().int().nonnegative(),\n options: z.array(StorefrontVariantOptionSchema).optional().default([]),\n images: z.array(StorefrontProductImageSchema).optional().default([]),\n});\n\nexport const StorefrontPriceTierSchema = z.object({\n variantId: z.coerce.string(),\n minQuantity: z.number().int().positive(),\n maxQuantity: z.number().int().positive().optional().nullable(),\n unitPrice: z.number().nonnegative(),\n});\n\nexport const StorefrontBundleItemSchema = z.object({\n productId: z.coerce.string(),\n variantId: z.coerce.string(),\n productName: z.string(),\n variantName: z.string().optional().nullable(),\n sku: z.string().optional().nullable(),\n brand: z.string().optional().nullable(),\n imageUrl: z.string().optional().nullable(),\n quantity: z.number().int(),\n availableStock: z.number().int().optional().default(0),\n allowBackorders: z.boolean().optional().default(false),\n requiresShipping: z.boolean().optional().default(true),\n});\n\nexport const StorefrontProductDetailSchema = z.object({\n id: z.coerce.string(),\n name: z.string(),\n slug: z.string(),\n description: z.string().optional().nullable(),\n productType: z.string().optional().nullable(),\n status: z.string().optional().nullable(),\n imageUrl: z.string().optional().nullable(),\n price: z.number().nonnegative(),\n compareAtPrice: z.number().nonnegative().optional().nullable(),\n isAvailable: z.boolean(),\n totalInventory: z.number().int().nonnegative(),\n brand: z.string().optional().nullable(),\n category: z.string().optional().nullable(),\n categoryId: z.coerce.string().optional().nullable(),\n tags: z.array(z.string()).optional().nullable(),\n specifications: z.array(z.record(z.string(), z.unknown())).optional().default([]),\n variants: z.array(StorefrontVariantSchema).optional().default([]),\n images: z.array(StorefrontProductImageSchema).optional().default([]),\n bundleItems: z.array(StorefrontBundleItemSchema).optional().default([]),\n priceTiers: z.array(StorefrontPriceTierSchema).optional().default([]),\n createdAt: z.string().optional().nullable(),\n updatedAt: z.string().optional().nullable(),\n});\n\n// Tipos TypeScript inferidos de los esquemas Zod\nexport type Product = z.infer<typeof ProductSchema>;\nexport type ProductVariant = z.infer<typeof ProductVariantSchema>;\nexport type ProductsResponse = z.infer<typeof ProductsResponseSchema>;\nexport type ProductsFilters = z.infer<typeof ProductsFiltersSchema>;\n\nexport type StorefrontProduct = z.infer<typeof StorefrontProductSchema>;\nexport type StorefrontFacet = z.infer<typeof StorefrontFacetSchema>;\nexport type StorefrontProductsResponse = z.infer<typeof StorefrontProductsResponseSchema>;\nexport type StorefrontProductsParams = z.infer<typeof StorefrontProductsParamsSchema>;\n/** Params de entrada (sort/page/pageSize opcionales con defaults en el schema) */\nexport type StorefrontProductsParamsInput = z.input<typeof StorefrontProductsParamsSchema>;\n\nexport type StorefrontVariantOption = z.infer<typeof StorefrontVariantOptionSchema>;\nexport type StorefrontVariant = z.infer<typeof StorefrontVariantSchema>;\nexport type StorefrontProductImage = z.infer<typeof StorefrontProductImageSchema>;\nexport type StorefrontPriceTier = z.infer<typeof StorefrontPriceTierSchema>;\nexport type StorefrontBundleItem = z.infer<typeof StorefrontBundleItemSchema>;\nexport type StorefrontProductDetail = z.infer<typeof StorefrontProductDetailSchema>; \n","import { z } from \"zod\";\n\nexport const StorefrontCollectionSchema = z.object({\n id: z.coerce.string(),\n slug: z.string(),\n name: z.string(),\n description: z.string().nullable().optional(),\n imageUrl: z.string().nullable().optional(),\n type: z.string(),\n productCount: z.number().int().nonnegative(),\n});\n\nexport const StorefrontCollectionsResponseSchema = z.array(StorefrontCollectionSchema);\nexport const StorefrontCollectionDetailSchema = StorefrontCollectionSchema;\n\nexport type StorefrontCollection = z.infer<typeof StorefrontCollectionSchema>;\nexport type StorefrontCollectionsResponse = z.infer<\n typeof StorefrontCollectionsResponseSchema\n>;\nexport type StorefrontCollectionDetail = z.infer<typeof StorefrontCollectionDetailSchema>;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/constants/storefront-ecomiq-oauth-cookie.ts","../src/core/server/store-proxy-handler.ts"],"names":[],"mappings":"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","file":"chunk-QRR7EPCH.js","sourcesContent":["/** Cookie HttpOnly con el bearer OAuth storefront; solo path `/api/store` (no navega a todo el sitio). */\nexport const STOREFRONT_ECOMIQ_OAUTH_COOKIE_NAME = \"ecomiq_sf_oauth_at\";\n\n/** Debe coincidir con el prefijo de la ruta proxy en Next (`app/api/store/...`). */\nexport const STOREFRONT_ECOMIQ_OAUTH_COOKIE_PATH = \"/api/store\";\n","import { STOREFRONT_API_PATH_PREFIX } from \"../constants/api-paths\";\nimport { STOREFRONT_HEADERS } from \"../constants/currency\";\nimport { STOREFRONT_ECOMIQ_OAUTH_COOKIE_NAME } from \"../constants/storefront-ecomiq-oauth-cookie\";\n\nconst DEFAULT_API_BASE_URL = \"https://storefront.ecomiq.pe\";\n\nexport type StoreProxyHandlerConfig = {\n /** Base URL del API de storefront. Default: `https://storefront.ecomiq.pe` */\n apiBaseUrl?: string;\n};\n\ntype StoreContextResult =\n | {\n ok: true;\n storeId: string;\n storeDomain: string | null;\n }\n | { ok: false; response: Response };\n\nfunction jsonError(status: number, message: string, error: string): Response {\n return Response.json({ error, message, status }, { status });\n}\n\nasync function readStoreContext(request: Request): Promise<StoreContextResult> {\n const xStoreId = request.headers.get(STOREFRONT_HEADERS.storeIdLower)?.trim();\n const xStoreDomain = request.headers.get(STOREFRONT_HEADERS.storeDomainLower)?.trim();\n if (xStoreDomain) {\n return {\n ok: true,\n storeId: xStoreId || \"\",\n storeDomain: xStoreDomain || null,\n };\n }\n if (!xStoreId) {\n return {\n ok: false,\n response: jsonError(\n 400,\n `${STOREFRONT_HEADERS.storeId} is required`,\n \"Store context required\",\n ),\n };\n }\n\n return {\n ok: true,\n storeId: xStoreId || \"\",\n storeDomain: xStoreDomain || null,\n };\n}\n\nconst SKIP_FORWARD_HEADERS = new Set([\n \"host\",\n \"connection\",\n \"content-length\",\n \"transfer-encoding\",\n STOREFRONT_HEADERS.storeIdLower,\n STOREFRONT_HEADERS.storeDomainLower,\n \"authorization\",\n \"cookie\",\n \"cookie2\",\n \"set-cookie\",\n \"x-forwarded-for\",\n \"x-forwarded-proto\",\n \"x-forwarded-host\",\n \"x-real-ip\",\n \"forwarded\",\n \"cf-connecting-ip\",\n \"cf-connecting-ipv6\",\n \"true-client-ip\",\n \"cf-ipcountry\",\n \"cf-ray\",\n \"cf-visitor\",\n]);\n\nfunction getClientIp(request: Request): string | null {\n const candidates = [\n request.headers.get(\"cf-connecting-ip\"),\n request.headers.get(\"true-client-ip\"),\n request.headers.get(\"x-real-ip\"),\n ];\n for (const value of candidates) {\n const trimmed = value?.trim();\n if (trimmed) return trimmed;\n }\n const xff = request.headers.get(\"x-forwarded-for\");\n if (xff?.trim()) {\n const first = xff.split(\",\")[0]?.trim();\n if (first) return first;\n }\n return null;\n}\n\nfunction getCookieValue(request: Request, name: string): string | undefined {\n const cookieHeader = request.headers.get(\"cookie\");\n if (!cookieHeader) return undefined;\n for (const part of cookieHeader.split(\";\")) {\n const [rawKey, ...rest] = part.trim().split(\"=\");\n if (rawKey?.trim() === name) {\n return decodeURIComponent(rest.join(\"=\"));\n }\n }\n return undefined;\n}\n\nfunction buildUpstreamRequest(\n request: Request,\n pathSegments: string[],\n config: StoreProxyHandlerConfig,\n storeId: string,\n storeDomain: string | null,\n): { url: string; init: RequestInit & { duplex?: \"half\" } } {\n const requestUrl = new URL(request.url);\n const base = (config.apiBaseUrl ?? DEFAULT_API_BASE_URL).replace(/\\/$/, \"\");\n const userPath = pathSegments.length ? pathSegments.join(\"/\") : \"\";\n const path = userPath\n ? `${STOREFRONT_API_PATH_PREFIX}/${userPath}`\n : STOREFRONT_API_PATH_PREFIX;\n const search = requestUrl.searchParams.toString();\n const url = search ? `${base}/${path}?${search}` : `${base}/${path}`;\n\n const headers = new Headers();\n request.headers.forEach((value, key) => {\n const lower = key.toLowerCase();\n if (!SKIP_FORWARD_HEADERS.has(lower)) {\n headers.set(key, value);\n }\n });\n headers.set(STOREFRONT_HEADERS.storeId, storeId);\n if (storeDomain) {\n headers.set(STOREFRONT_HEADERS.storeDomain, storeDomain);\n }\n\n const clientIp = getClientIp(request);\n if (clientIp) {\n headers.set(\"X-Forwarded-For\", clientIp);\n }\n const forwardedProto =\n request.headers.get(\"cf-visitor\")?.match(/\"scheme\":\"(https?)\"/)?.[1] ??\n requestUrl.protocol.replace(\":\", \"\") ??\n \"https\";\n headers.set(\"X-Forwarded-Proto\", forwardedProto);\n const forwardedHost = request.headers.get(\"host\") ?? requestUrl.host;\n if (forwardedHost) {\n headers.set(\"X-Forwarded-Host\", forwardedHost);\n }\n\n const incomingAuth = request.headers.get(\"authorization\")?.trim();\n const storefrontOAuth = getCookieValue(request, STOREFRONT_ECOMIQ_OAUTH_COOKIE_NAME)?.trim();\n\n if (incomingAuth && /^Bearer\\s+\\S+/i.test(incomingAuth)) {\n headers.set(\"Authorization\", incomingAuth);\n } else if (storefrontOAuth) {\n headers.set(\"Authorization\", `Bearer ${storefrontOAuth}`);\n }\n headers.set(\"Accept-Encoding\", \"identity\");\n\n const init: RequestInit & { duplex?: \"half\" } = {\n method: request.method,\n headers,\n cache: \"no-store\",\n };\n\n const bodyMethods = [\"POST\", \"PUT\", \"PATCH\"];\n if (bodyMethods.includes(request.method) && request.body) {\n init.body = request.body;\n init.duplex = \"half\";\n }\n\n return { url, init };\n}\n\nfunction isResponseBodyForbidden(status: number): boolean {\n return status === 204 || status === 205 || status === 304;\n}\n\n/**\n * Proxy BFF `/api/store/*` → upstream Ecomiq. Usa Web Fetch API (`Request` / `Response`).\n */\nexport async function handleStoreProxyRequest(\n request: Request,\n pathSegments: string[],\n config: StoreProxyHandlerConfig = {},\n): Promise<Response> {\n const storeContext = await readStoreContext(request);\n if (!storeContext.ok) {\n return storeContext.response;\n }\n\n const { storeId, storeDomain } = storeContext;\n const { url, init } = buildUpstreamRequest(\n request,\n pathSegments,\n config,\n storeId,\n storeDomain,\n );\n\n const upstream = await fetch(url, init);\n const responseHeaders = new Headers(upstream.headers);\n const status = upstream.status;\n\n if (isResponseBodyForbidden(status)) {\n responseHeaders.delete(\"content-length\");\n responseHeaders.delete(\"content-type\");\n return new Response(null, {\n status,\n statusText: upstream.statusText,\n headers: responseHeaders,\n });\n }\n\n const body = await upstream.text();\n return new Response(body, {\n status,\n statusText: upstream.statusText,\n headers: responseHeaders,\n });\n}\n"]}
|