@porulle/core 0.79.1 → 0.81.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hooks/checkout.d.ts +2 -0
- package/dist/hooks/checkout.d.ts.map +1 -1
- package/dist/hooks/checkout.js +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/interfaces/rest/routes/checkout.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/checkout.js +1 -0
- package/dist/interfaces/rest/schemas/carts.d.ts +1 -0
- package/dist/interfaces/rest/schemas/carts.d.ts.map +1 -1
- package/dist/modules/cart/schemas.d.ts +8 -1
- package/dist/modules/cart/schemas.d.ts.map +1 -1
- package/dist/modules/cart/schemas.js +10 -0
- package/dist/runtime/commerce.d.ts +1 -1
- package/dist/runtime/commerce.d.ts.map +1 -1
- package/dist/runtime/commerce.js +3 -1
- package/dist/runtime/server.d.ts.map +1 -1
- package/dist/runtime/server.js +5 -2
- package/package.json +2 -1
- package/src/hooks/checkout.ts +4 -0
- package/src/index.ts +6 -2
- package/src/interfaces/rest/routes/checkout.ts +1 -0
- package/src/modules/cart/schemas.ts +12 -1
- package/src/runtime/commerce.ts +4 -1
- package/src/runtime/server.ts +5 -2
package/dist/hooks/checkout.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/hooks/checkout.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAYzE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACtD,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;QACtC,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACjC,CAAC,GAAG,SAAS,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,KAAK,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/hooks/checkout.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/checkout.js
CHANGED
|
@@ -51,6 +51,7 @@ export const validateCartNotEmpty = async ({ data, context, }) => {
|
|
|
51
51
|
entityType,
|
|
52
52
|
title,
|
|
53
53
|
quantity: item.quantity,
|
|
54
|
+
metadata: item.metadata ?? {},
|
|
54
55
|
// Use != null to exclude both null (DB value) and undefined
|
|
55
56
|
...(item.variantId != null ? { variantId: item.variantId } : {}),
|
|
56
57
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export { router } from "./interfaces/rest/router.js";
|
|
|
6
6
|
export { markPublicRoute, markRoutePermissionGuard, requirePerm } from "./interfaces/rest/utils.js";
|
|
7
7
|
export { webhookRouter, type WebhookRouterResult } from "./interfaces/rest/webhook-router.js";
|
|
8
8
|
export { isPrivateUrl, isPrivateIp } from "./modules/webhooks/ssrf-guard.js";
|
|
9
|
-
export
|
|
9
|
+
export declare const createServer: typeof import("./runtime/server.js").createServer;
|
|
10
10
|
export { createClientIpResolver } from "./runtime/client-ip.js";
|
|
11
11
|
export type { ClientIpResolver, ClientIpContext, RuntimeConfig } from "./runtime/client-ip.js";
|
|
12
12
|
export { createLogger } from "./runtime/logger.js";
|
|
@@ -43,7 +43,7 @@ export { createPassThroughTaskStep } from "./kernel/jobs/step.js";
|
|
|
43
43
|
export { staleJobReaperTask, runStaleJobReaper, getJobReapThresholdMs, getJobsReaperIntervalMs, } from "./kernel/jobs/reaper.js";
|
|
44
44
|
export { createLocalAPI } from "./kernel/local-api.js";
|
|
45
45
|
export type { CommerceLocalAPI, LocalAPIOptions } from "./kernel/local-api.js";
|
|
46
|
-
export
|
|
46
|
+
export declare const createCommerce: typeof import("./runtime/commerce.js").createCommerce;
|
|
47
47
|
export type { CommerceInstance } from "./runtime/commerce.js";
|
|
48
48
|
export { createAuditService, createNullAuditService } from "./modules/audit/service.js";
|
|
49
49
|
export type { AuditService, AuditEntry, RecordArgs, ListForEntityArgs, } from "./modules/audit/service.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EACV,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,9 @@ export { router } from "./interfaces/rest/router.js";
|
|
|
4
4
|
export { markPublicRoute, markRoutePermissionGuard, requirePerm } from "./interfaces/rest/utils.js";
|
|
5
5
|
export { webhookRouter } from "./interfaces/rest/webhook-router.js";
|
|
6
6
|
export { isPrivateUrl, isPrivateIp } from "./modules/webhooks/ssrf-guard.js";
|
|
7
|
-
|
|
7
|
+
// The server and commerce factories load on first call: their module graph (kernel, every module's
|
|
8
|
+
// tables, Hono, zod-openapi) is most of core's module-init CPU, which a Worker pays at upload time.
|
|
9
|
+
export const createServer = async (config) => (await import("./runtime/server.js")).createServer(config);
|
|
8
10
|
export { createClientIpResolver } from "./runtime/client-ip.js";
|
|
9
11
|
export { createLogger } from "./runtime/logger.js";
|
|
10
12
|
export { setupGracefulShutdown } from "./runtime/shutdown.js";
|
|
@@ -28,7 +30,7 @@ export { TaskNonRetryableError } from "./kernel/jobs/types.js";
|
|
|
28
30
|
export { createPassThroughTaskStep } from "./kernel/jobs/step.js";
|
|
29
31
|
export { staleJobReaperTask, runStaleJobReaper, getJobReapThresholdMs, getJobsReaperIntervalMs, } from "./kernel/jobs/reaper.js";
|
|
30
32
|
export { createLocalAPI } from "./kernel/local-api.js";
|
|
31
|
-
export
|
|
33
|
+
export const createCommerce = async (config) => (await import("./runtime/commerce.js")).createCommerce(config);
|
|
32
34
|
export { createAuditService, createNullAuditService } from "./modules/audit/service.js";
|
|
33
35
|
export { Ok, Err, PluginErr } from "./kernel/result.js";
|
|
34
36
|
export { withTiming } from "./kernel/service-timing.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAmBzD,OAAO,EAAE,KAAK,MAAM,EAA+B,MAAM,aAAa,CAAC;AAMvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAEpD;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,EAC1C,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmC7B;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAmBzD,OAAO,EAAE,KAAK,MAAM,EAA+B,MAAM,aAAa,CAAC;AAMvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAEpD;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,EAC1C,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmC7B;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,gCAwV5C"}
|
|
@@ -211,6 +211,7 @@ export function checkoutRoutes(kernel) {
|
|
|
211
211
|
totalPrice: lineItem.resolvedTotal ?? 0,
|
|
212
212
|
// Per-line tax from product tax classes (issue #57)
|
|
213
213
|
taxAmount: lineItem.taxAmount ?? 0,
|
|
214
|
+
metadata: lineItem.metadata ?? {},
|
|
214
215
|
...(lineItem.discountAmount !== undefined
|
|
215
216
|
? { discountAmount: lineItem.discountAmount }
|
|
216
217
|
: {}),
|
|
@@ -1644,6 +1644,7 @@ export declare const addCartItemRoute: {
|
|
|
1644
1644
|
entityId: z.ZodString;
|
|
1645
1645
|
variantId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1646
1646
|
quantity: z.ZodNumber;
|
|
1647
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>>;
|
|
1647
1648
|
}, z.core.$strip>;
|
|
1648
1649
|
};
|
|
1649
1650
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carts.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/schemas/carts.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"carts.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/schemas/carts.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,17 @@ export declare const CreateCartBodySchema: z.ZodObject<{
|
|
|
4
4
|
currency: z.ZodOptional<z.ZodString>;
|
|
5
5
|
email: z.ZodOptional<z.ZodEmail>;
|
|
6
6
|
}, z.core.$strip>;
|
|
7
|
+
/**
|
|
8
|
+
* What a storefront records about why a line was added (the search that showed it, whether it is a gift). It is the caller's own
|
|
9
|
+
* annotation, never read by pricing, stock or permissions, and the order line carries it on. Flat and bounded: a line is not a
|
|
10
|
+
* place for a blob.
|
|
11
|
+
*/
|
|
12
|
+
export declare const CartLineMetadataSchema: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>;
|
|
7
13
|
export declare const AddCartItemBodySchema: z.ZodObject<{
|
|
8
14
|
entityId: z.ZodString;
|
|
9
15
|
variantId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
10
16
|
quantity: z.ZodNumber;
|
|
17
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>>;
|
|
11
18
|
}, z.core.$strip>;
|
|
12
19
|
export declare const UpdateCartItemQuantityBodySchema: z.ZodObject<{
|
|
13
20
|
quantity: z.ZodNumber;
|
|
@@ -15,7 +22,7 @@ export declare const UpdateCartItemQuantityBodySchema: z.ZodObject<{
|
|
|
15
22
|
export type CreateCartInput = z.infer<typeof CreateCartBodySchema> & {
|
|
16
23
|
metadata?: Record<string, unknown>;
|
|
17
24
|
};
|
|
18
|
-
export type AddCartItemInput = z.infer<typeof AddCartItemBodySchema> & {
|
|
25
|
+
export type AddCartItemInput = Omit<z.infer<typeof AddCartItemBodySchema>, "metadata"> & {
|
|
19
26
|
cartId: string;
|
|
20
27
|
unitPriceSnapshot?: number;
|
|
21
28
|
currency?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/modules/cart/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAItC,eAAO,MAAM,oBAAoB;;;;iBAIF,CAAC;AAEhC,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/modules/cart/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAItC,eAAO,MAAM,oBAAoB;;;;iBAIF,CAAC;AAEhC;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,oGAGiE,CAAC;AAErG,eAAO,MAAM,qBAAqB;;;;;iBAKF,CAAC;AAEjC,eAAO,MAAM,gCAAgC;;iBAEF,CAAC;AAI5C,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,GAAG;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,EAAE,UAAU,CAAC,GAAG;IACvF,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,uFAAuF;AACvF,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -5,10 +5,20 @@ export const CreateCartBodySchema = z.object({
|
|
|
5
5
|
currency: z.string().length(3).optional().openapi({ example: "USD" }),
|
|
6
6
|
email: z.email().optional().openapi({ example: "shopper@example.com" }),
|
|
7
7
|
}).openapi("CreateCartRequest");
|
|
8
|
+
/**
|
|
9
|
+
* What a storefront records about why a line was added (the search that showed it, whether it is a gift). It is the caller's own
|
|
10
|
+
* annotation, never read by pricing, stock or permissions, and the order line carries it on. Flat and bounded: a line is not a
|
|
11
|
+
* place for a blob.
|
|
12
|
+
*/
|
|
13
|
+
export const CartLineMetadataSchema = z
|
|
14
|
+
.record(z.string().min(1).max(64), z.union([z.string().max(256), z.number(), z.boolean(), z.null()]))
|
|
15
|
+
.refine((value) => Object.keys(value).length <= 16, { message: "metadata may have at most 16 keys" })
|
|
16
|
+
.openapi({ example: { requestId: "6f1c2a7e-0000-4000-8000-000000000001", forSomeoneElse: true } });
|
|
8
17
|
export const AddCartItemBodySchema = z.object({
|
|
9
18
|
entityId: z.string().openapi({ example: "product-uuid" }),
|
|
10
19
|
variantId: z.string().nullable().optional().openapi({ example: "variant-uuid" }),
|
|
11
20
|
quantity: z.number().int().min(1).max(9999).openapi({ example: 1 }),
|
|
21
|
+
metadata: CartLineMetadataSchema.optional(),
|
|
12
22
|
}).openapi("AddCartItemRequest");
|
|
13
23
|
export const UpdateCartItemQuantityBodySchema = z.object({
|
|
14
24
|
quantity: z.number().int().min(1).max(9999).openapi({ example: 2 }),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Actor } from "../auth/types.js";
|
|
2
2
|
import type { CommerceConfig } from "../config/types.js";
|
|
3
3
|
import type { Kernel } from "./kernel.js";
|
|
4
|
-
import {
|
|
4
|
+
import type { AuthInstance } from "../auth/setup.js";
|
|
5
5
|
import { type Logger } from "./logger.js";
|
|
6
6
|
import { type CommerceLocalAPI } from "../kernel/local-api.js";
|
|
7
7
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commerce.d.ts","sourceRoot":"","sources":["../../src/runtime/commerce.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C,OAAO,
|
|
1
|
+
{"version":3,"file":"commerce.d.ts","sourceRoot":"","sources":["../../src/runtime/commerce.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAkB,KAAK,gBAAgB,EAAwB,MAAM,wBAAwB,CAAC;AAErG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,GAAG,EAAE,gBAAgB,CAAC;IAEtB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IAEf,mDAAmD;IACnD,EAAE,EAAE,OAAO,CAAC;IAEZ,yDAAyD;IACzD,IAAI,EAAE,YAAY,CAAC;IAEnB,aAAa;IACb,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,gBAAgB,CAAC;IAE1C;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,gBAAgB,CAAC;CACtE;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,gBAAgB,CAAC,CA0C3B"}
|
package/dist/runtime/commerce.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { createKernel } from "./kernel.js";
|
|
2
2
|
import { pushSchema } from "../kernel/database/migrate.js";
|
|
3
3
|
import { ensureDefaultOrg } from "../auth/org.js";
|
|
4
|
-
import { createAuth } from "../auth/setup.js";
|
|
5
4
|
import { createLogger } from "./logger.js";
|
|
6
5
|
import { createLocalAPI } from "../kernel/local-api.js";
|
|
7
6
|
/**
|
|
@@ -30,6 +29,9 @@ export async function createCommerce(config) {
|
|
|
30
29
|
if (!config.auth?.defaultOrganizationId) {
|
|
31
30
|
await ensureDefaultOrg(kernel.database.db, config.storeName);
|
|
32
31
|
}
|
|
32
|
+
// Loaded on first use: better-auth and its plugins cost ~40 ms of module init that a Worker
|
|
33
|
+
// would otherwise pay at upload time, before it serves a request.
|
|
34
|
+
const { createAuth } = await import("../auth/setup.js");
|
|
33
35
|
const auth = createAuth(kernel.database, config);
|
|
34
36
|
const logger = createLogger(config);
|
|
35
37
|
// Default API: no actor (public access), no transaction
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/runtime/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/runtime/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAStE,KAAK,SAAS,GAAG;IACf,SAAS,EAAE;QACT,IAAI,EAAE,YAAY,CAAC;QACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAcvC;AAeD;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,cAAc;;;;;sBAqYxB,MAAM,UAAU,MAAM;GA8GtD"}
|
package/dist/runtime/server.js
CHANGED
|
@@ -10,8 +10,6 @@ import { applyAuthenticateChallenge, authMiddleware } from "../auth/middleware.j
|
|
|
10
10
|
import { resolveOrgIdForCommerce } from "../auth/org.js";
|
|
11
11
|
import { organizationGuard } from "../auth/organization-guard.js";
|
|
12
12
|
import { CommerceCsrfError } from "../kernel/errors.js";
|
|
13
|
-
import { createRestRoutes } from "../interfaces/rest/index.js";
|
|
14
|
-
import { createCustomerPortalRoutes } from "../interfaces/rest/customer-portal.js";
|
|
15
13
|
import { createCommerce } from "./commerce.js";
|
|
16
14
|
import { rewriteCommerceAliasRequest } from "./url-alias-rewrite.js";
|
|
17
15
|
import { mapErrorToResponse } from "../kernel/error-mapper.js";
|
|
@@ -328,6 +326,11 @@ export async function createServer(config) {
|
|
|
328
326
|
return response;
|
|
329
327
|
});
|
|
330
328
|
// ─── Routes ──────────────────────────────────────────────────────────
|
|
329
|
+
// Route and zod schema construction is ~40 ms of module init; load it when the server is built.
|
|
330
|
+
const [{ createRestRoutes }, { createCustomerPortalRoutes }] = await Promise.all([
|
|
331
|
+
import("../interfaces/rest/index.js"),
|
|
332
|
+
import("../interfaces/rest/customer-portal.js"),
|
|
333
|
+
]);
|
|
331
334
|
app.route("/api", createRestRoutes(kernel));
|
|
332
335
|
// Mounted under /api so the auth middleware, rate limiter, CSRF, and
|
|
333
336
|
// body-limit stack apply (all are scoped to /api/*).
|
package/package.json
CHANGED
package/src/hooks/checkout.ts
CHANGED
|
@@ -54,6 +54,8 @@ export interface CheckoutLineItem {
|
|
|
54
54
|
delta: number;
|
|
55
55
|
amountAfter: number;
|
|
56
56
|
}>;
|
|
57
|
+
/** The cart line's own metadata, carried onto the order line. */
|
|
58
|
+
metadata?: Record<string, unknown>;
|
|
57
59
|
}
|
|
58
60
|
|
|
59
61
|
export interface CheckoutData {
|
|
@@ -113,6 +115,7 @@ export const validateCartNotEmpty: BeforeHook<CheckoutData> = async ({
|
|
|
113
115
|
entityId: string;
|
|
114
116
|
variantId?: string | null;
|
|
115
117
|
quantity: number;
|
|
118
|
+
metadata?: Record<string, unknown> | null;
|
|
116
119
|
}>;
|
|
117
120
|
};
|
|
118
121
|
}
|
|
@@ -196,6 +199,7 @@ export const validateCartNotEmpty: BeforeHook<CheckoutData> = async ({
|
|
|
196
199
|
entityType,
|
|
197
200
|
title,
|
|
198
201
|
quantity: item.quantity,
|
|
202
|
+
metadata: item.metadata ?? {},
|
|
199
203
|
// Use != null to exclude both null (DB value) and undefined
|
|
200
204
|
...(item.variantId != null ? { variantId: item.variantId } : {}),
|
|
201
205
|
};
|
package/src/index.ts
CHANGED
|
@@ -19,7 +19,10 @@ export { router } from "./interfaces/rest/router.js";
|
|
|
19
19
|
export { markPublicRoute, markRoutePermissionGuard, requirePerm } from "./interfaces/rest/utils.js";
|
|
20
20
|
export { webhookRouter, type WebhookRouterResult } from "./interfaces/rest/webhook-router.js";
|
|
21
21
|
export { isPrivateUrl, isPrivateIp } from "./modules/webhooks/ssrf-guard.js";
|
|
22
|
-
|
|
22
|
+
// The server and commerce factories load on first call: their module graph (kernel, every module's
|
|
23
|
+
// tables, Hono, zod-openapi) is most of core's module-init CPU, which a Worker pays at upload time.
|
|
24
|
+
export const createServer: typeof import("./runtime/server.js").createServer = async (config) =>
|
|
25
|
+
(await import("./runtime/server.js")).createServer(config);
|
|
23
26
|
export { createClientIpResolver } from "./runtime/client-ip.js";
|
|
24
27
|
export type { ClientIpResolver, ClientIpContext, RuntimeConfig } from "./runtime/client-ip.js";
|
|
25
28
|
export { createLogger } from "./runtime/logger.js";
|
|
@@ -103,7 +106,8 @@ export {
|
|
|
103
106
|
|
|
104
107
|
export { createLocalAPI } from "./kernel/local-api.js";
|
|
105
108
|
export type { CommerceLocalAPI, LocalAPIOptions } from "./kernel/local-api.js";
|
|
106
|
-
export
|
|
109
|
+
export const createCommerce: typeof import("./runtime/commerce.js").createCommerce = async (config) =>
|
|
110
|
+
(await import("./runtime/commerce.js")).createCommerce(config);
|
|
107
111
|
export type { CommerceInstance } from "./runtime/commerce.js";
|
|
108
112
|
|
|
109
113
|
export { createAuditService, createNullAuditService } from "./modules/audit/service.js";
|
|
@@ -273,6 +273,7 @@ export function checkoutRoutes(kernel: Kernel) {
|
|
|
273
273
|
totalPrice: lineItem.resolvedTotal ?? 0,
|
|
274
274
|
// Per-line tax from product tax classes (issue #57)
|
|
275
275
|
taxAmount: lineItem.taxAmount ?? 0,
|
|
276
|
+
metadata: lineItem.metadata ?? {},
|
|
276
277
|
...(lineItem.discountAmount !== undefined
|
|
277
278
|
? { discountAmount: lineItem.discountAmount }
|
|
278
279
|
: {}),
|
|
@@ -8,10 +8,21 @@ export const CreateCartBodySchema = z.object({
|
|
|
8
8
|
email: z.email().optional().openapi({ example: "shopper@example.com" }),
|
|
9
9
|
}).openapi("CreateCartRequest");
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* What a storefront records about why a line was added (the search that showed it, whether it is a gift). It is the caller's own
|
|
13
|
+
* annotation, never read by pricing, stock or permissions, and the order line carries it on. Flat and bounded: a line is not a
|
|
14
|
+
* place for a blob.
|
|
15
|
+
*/
|
|
16
|
+
export const CartLineMetadataSchema = z
|
|
17
|
+
.record(z.string().min(1).max(64), z.union([z.string().max(256), z.number(), z.boolean(), z.null()]))
|
|
18
|
+
.refine((value) => Object.keys(value).length <= 16, { message: "metadata may have at most 16 keys" })
|
|
19
|
+
.openapi({ example: { requestId: "6f1c2a7e-0000-4000-8000-000000000001", forSomeoneElse: true } });
|
|
20
|
+
|
|
11
21
|
export const AddCartItemBodySchema = z.object({
|
|
12
22
|
entityId: z.string().openapi({ example: "product-uuid" }),
|
|
13
23
|
variantId: z.string().nullable().optional().openapi({ example: "variant-uuid" }),
|
|
14
24
|
quantity: z.number().int().min(1).max(9999).openapi({ example: 1 }),
|
|
25
|
+
metadata: CartLineMetadataSchema.optional(),
|
|
15
26
|
}).openapi("AddCartItemRequest");
|
|
16
27
|
|
|
17
28
|
export const UpdateCartItemQuantityBodySchema = z.object({
|
|
@@ -24,7 +35,7 @@ export type CreateCartInput = z.infer<typeof CreateCartBodySchema> & {
|
|
|
24
35
|
metadata?: Record<string, unknown>;
|
|
25
36
|
};
|
|
26
37
|
|
|
27
|
-
export type AddCartItemInput = z.infer<typeof AddCartItemBodySchema> & {
|
|
38
|
+
export type AddCartItemInput = Omit<z.infer<typeof AddCartItemBodySchema>, "metadata"> & {
|
|
28
39
|
cartId: string;
|
|
29
40
|
unitPriceSnapshot?: number;
|
|
30
41
|
currency?: string;
|
package/src/runtime/commerce.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { Kernel } from "./kernel.js";
|
|
|
4
4
|
import { createKernel } from "./kernel.js";
|
|
5
5
|
import { pushSchema } from "../kernel/database/migrate.js";
|
|
6
6
|
import { ensureDefaultOrg } from "../auth/org.js";
|
|
7
|
-
import {
|
|
7
|
+
import type { AuthInstance } from "../auth/setup.js";
|
|
8
8
|
import { createLogger, type Logger } from "./logger.js";
|
|
9
9
|
import { createLocalAPI, type CommerceLocalAPI, type LocalAPIOptions } from "../kernel/local-api.js";
|
|
10
10
|
|
|
@@ -137,6 +137,9 @@ export async function createCommerce(
|
|
|
137
137
|
await ensureDefaultOrg(kernel.database.db, config.storeName);
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
+
// Loaded on first use: better-auth and its plugins cost ~40 ms of module init that a Worker
|
|
141
|
+
// would otherwise pay at upload time, before it serves a request.
|
|
142
|
+
const { createAuth } = await import("../auth/setup.js");
|
|
140
143
|
const auth = createAuth(kernel.database, config);
|
|
141
144
|
const logger = createLogger(config);
|
|
142
145
|
|
package/src/runtime/server.ts
CHANGED
|
@@ -15,8 +15,6 @@ import { resolveOrgIdForCommerce } from "../auth/org.js";
|
|
|
15
15
|
import { organizationGuard } from "../auth/organization-guard.js";
|
|
16
16
|
import type { DrizzleDatabase } from "../kernel/database/drizzle-db.js";
|
|
17
17
|
import { CommerceCsrfError } from "../kernel/errors.js";
|
|
18
|
-
import { createRestRoutes } from "../interfaces/rest/index.js";
|
|
19
|
-
import { createCustomerPortalRoutes } from "../interfaces/rest/customer-portal.js";
|
|
20
18
|
import type { Logger } from "./logger.js";
|
|
21
19
|
import { createCommerce, type CommerceInstance } from "./commerce.js";
|
|
22
20
|
import { rewriteCommerceAliasRequest } from "./url-alias-rewrite.js";
|
|
@@ -387,6 +385,11 @@ export async function createServer(config: CommerceConfig) {
|
|
|
387
385
|
});
|
|
388
386
|
|
|
389
387
|
// ─── Routes ──────────────────────────────────────────────────────────
|
|
388
|
+
// Route and zod schema construction is ~40 ms of module init; load it when the server is built.
|
|
389
|
+
const [{ createRestRoutes }, { createCustomerPortalRoutes }] = await Promise.all([
|
|
390
|
+
import("../interfaces/rest/index.js"),
|
|
391
|
+
import("../interfaces/rest/customer-portal.js"),
|
|
392
|
+
]);
|
|
390
393
|
app.route("/api", createRestRoutes(kernel));
|
|
391
394
|
// Mounted under /api so the auth middleware, rate limiter, CSRF, and
|
|
392
395
|
// body-limit stack apply (all are scoped to /api/*).
|