@porulle/core 0.11.0 → 0.14.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/auth/actor.d.ts +10 -0
- package/dist/auth/actor.d.ts.map +1 -0
- package/dist/auth/actor.js +91 -0
- package/dist/auth/auth-schema-guard.d.ts +2444 -0
- package/dist/auth/auth-schema-guard.d.ts.map +1 -0
- package/dist/auth/auth-schema-guard.js +113 -0
- package/dist/auth/auth-schema.d.ts +228 -0
- package/dist/auth/auth-schema.d.ts.map +1 -1
- package/dist/auth/auth-schema.js +24 -2
- package/dist/auth/middleware.d.ts +1 -0
- package/dist/auth/middleware.d.ts.map +1 -1
- package/dist/auth/middleware.js +16 -92
- package/dist/auth/org.d.ts +8 -2
- package/dist/auth/org.d.ts.map +1 -1
- package/dist/auth/org.js +12 -4
- package/dist/auth/organization-guard.d.ts +5 -0
- package/dist/auth/organization-guard.d.ts.map +1 -0
- package/dist/auth/organization-guard.js +124 -0
- package/dist/auth/permissions.d.ts +10 -0
- package/dist/auth/permissions.d.ts.map +1 -1
- package/dist/auth/permissions.js +31 -7
- package/dist/auth/role-authority.d.ts +44 -0
- package/dist/auth/role-authority.d.ts.map +1 -0
- package/dist/auth/role-authority.js +85 -0
- package/dist/auth/setup.d.ts.map +1 -1
- package/dist/auth/setup.js +19 -1
- package/dist/auth/strict-org-resolution.d.ts.map +1 -1
- package/dist/auth/strict-org-resolution.js +9 -1
- package/dist/auth/types.d.ts +1 -1
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +2 -0
- package/dist/config/types.d.ts +32 -4
- package/dist/config/types.d.ts.map +1 -1
- package/dist/hooks/checkout.d.ts.map +1 -1
- package/dist/hooks/checkout.js +10 -9
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/interfaces/rest/audit-middleware.d.ts.map +1 -1
- package/dist/interfaces/rest/audit-middleware.js +2 -0
- package/dist/interfaces/rest/customer-portal.d.ts.map +1 -1
- package/dist/interfaces/rest/customer-portal.js +9 -8
- package/dist/interfaces/rest/route-coverage.d.ts +14 -0
- package/dist/interfaces/rest/route-coverage.d.ts.map +1 -0
- package/dist/interfaces/rest/route-coverage.js +81 -0
- package/dist/interfaces/rest/router.d.ts +7 -2
- package/dist/interfaces/rest/router.d.ts.map +1 -1
- package/dist/interfaces/rest/router.js +8 -4
- package/dist/interfaces/rest/routes/admin/compensation-failures.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/admin/compensation-failures.js +7 -5
- package/dist/interfaces/rest/routes/admin/custom-field-proposals.js +2 -2
- package/dist/interfaces/rest/routes/admin/permissions.d.ts +1 -1
- package/dist/interfaces/rest/routes/admin/permissions.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/admin/permissions.js +2 -0
- package/dist/interfaces/rest/routes/admin/staff.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/admin/staff.js +126 -66
- package/dist/interfaces/rest/routes/admin-jobs.js +3 -3
- package/dist/interfaces/rest/routes/audit.js +3 -3
- package/dist/interfaces/rest/routes/carts.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/carts.js +13 -10
- package/dist/interfaces/rest/routes/catalog.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/catalog.js +10 -2
- package/dist/interfaces/rest/routes/checkout.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/checkout.js +30 -35
- package/dist/interfaces/rest/routes/documents.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/documents.js +10 -5
- package/dist/interfaces/rest/routes/inventory.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/inventory.js +2 -0
- package/dist/interfaces/rest/routes/media.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/media.js +7 -3
- package/dist/interfaces/rest/routes/orders.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/orders.js +26 -8
- package/dist/interfaces/rest/routes/pricing.js +2 -2
- package/dist/interfaces/rest/routes/promotions.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/promotions.js +13 -10
- package/dist/interfaces/rest/routes/search.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/search.js +2 -1
- package/dist/interfaces/rest/schemas/carts.d.ts +7 -0
- package/dist/interfaces/rest/schemas/carts.d.ts.map +1 -1
- package/dist/interfaces/rest/schemas/customer-portal.d.ts +35 -0
- package/dist/interfaces/rest/schemas/customer-portal.d.ts.map +1 -1
- package/dist/interfaces/rest/schemas/orders.d.ts +204 -0
- package/dist/interfaces/rest/schemas/orders.d.ts.map +1 -1
- package/dist/interfaces/rest/schemas/responses.d.ts +71 -0
- package/dist/interfaces/rest/schemas/responses.d.ts.map +1 -1
- package/dist/interfaces/rest/utils.d.ts +15 -0
- package/dist/interfaces/rest/utils.d.ts.map +1 -1
- package/dist/interfaces/rest/utils.js +45 -2
- package/dist/kernel/compensation/executor.js +2 -2
- package/dist/kernel/database/plugin-types.d.ts +11 -0
- package/dist/kernel/database/plugin-types.d.ts.map +1 -1
- package/dist/kernel/database/scoped-db.d.ts +12 -0
- package/dist/kernel/database/scoped-db.d.ts.map +1 -1
- package/dist/kernel/database/scoped-db.js +12 -0
- package/dist/kernel/database/tx-context.d.ts +8 -0
- package/dist/kernel/database/tx-context.d.ts.map +1 -1
- package/dist/kernel/database/tx-context.js +13 -0
- package/dist/kernel/hooks/create-context.d.ts +2 -0
- package/dist/kernel/hooks/create-context.d.ts.map +1 -1
- package/dist/kernel/hooks/create-context.js +1 -0
- package/dist/kernel/hooks/types.d.ts +2 -0
- package/dist/kernel/hooks/types.d.ts.map +1 -1
- package/dist/kernel/plugin/manifest.d.ts.map +1 -1
- package/dist/kernel/plugin/manifest.js +9 -5
- package/dist/modules/analytics/service.js +2 -2
- package/dist/modules/audit/service.js +3 -3
- package/dist/modules/cart/repository/index.d.ts +13 -7
- package/dist/modules/cart/repository/index.d.ts.map +1 -1
- package/dist/modules/cart/repository/index.js +16 -10
- package/dist/modules/cart/schema.d.ts +17 -0
- package/dist/modules/cart/schema.d.ts.map +1 -1
- package/dist/modules/cart/schema.js +4 -0
- package/dist/modules/cart/service.d.ts +22 -9
- package/dist/modules/cart/service.d.ts.map +1 -1
- package/dist/modules/cart/service.js +57 -33
- package/dist/modules/catalog/brand-service.js +7 -7
- package/dist/modules/catalog/category-service.js +7 -7
- package/dist/modules/catalog/entity-service.d.ts +14 -7
- package/dist/modules/catalog/entity-service.d.ts.map +1 -1
- package/dist/modules/catalog/entity-service.js +109 -31
- package/dist/modules/catalog/read-policy.d.ts +9 -0
- package/dist/modules/catalog/read-policy.d.ts.map +1 -0
- package/dist/modules/catalog/read-policy.js +8 -0
- package/dist/modules/catalog/repository/index.d.ts +3 -2
- package/dist/modules/catalog/repository/index.d.ts.map +1 -1
- package/dist/modules/catalog/repository/index.js +14 -4
- package/dist/modules/catalog/service.d.ts +15 -13
- package/dist/modules/catalog/service.d.ts.map +1 -1
- package/dist/modules/catalog/service.js +25 -18
- package/dist/modules/customers/module.d.ts.map +1 -1
- package/dist/modules/customers/module.js +1 -0
- package/dist/modules/customers/service.d.ts +2 -0
- package/dist/modules/customers/service.d.ts.map +1 -1
- package/dist/modules/customers/service.js +21 -20
- package/dist/modules/documents/module.d.ts.map +1 -1
- package/dist/modules/documents/module.js +1 -0
- package/dist/modules/documents/service.d.ts +18 -4
- package/dist/modules/documents/service.d.ts.map +1 -1
- package/dist/modules/documents/service.js +54 -16
- package/dist/modules/fulfillment/module.d.ts.map +1 -1
- package/dist/modules/fulfillment/module.js +1 -0
- package/dist/modules/fulfillment/service.d.ts +2 -0
- package/dist/modules/fulfillment/service.d.ts.map +1 -1
- package/dist/modules/fulfillment/service.js +15 -6
- package/dist/modules/inventory/service.d.ts.map +1 -1
- package/dist/modules/inventory/service.js +15 -14
- package/dist/modules/media/service.js +6 -6
- package/dist/modules/orders/guest-access.d.ts +27 -0
- package/dist/modules/orders/guest-access.d.ts.map +1 -0
- package/dist/modules/orders/guest-access.js +46 -0
- package/dist/modules/orders/module.d.ts.map +1 -1
- package/dist/modules/orders/module.js +1 -0
- package/dist/modules/orders/quote.d.ts.map +1 -1
- package/dist/modules/orders/quote.js +1 -0
- package/dist/modules/orders/repository/index.d.ts +1 -1
- package/dist/modules/orders/repository/index.d.ts.map +1 -1
- package/dist/modules/orders/repository/index.js +2 -2
- package/dist/modules/orders/schema.d.ts +17 -0
- package/dist/modules/orders/schema.d.ts.map +1 -1
- package/dist/modules/orders/schema.js +5 -3
- package/dist/modules/orders/service.d.ts +16 -7
- package/dist/modules/orders/service.d.ts.map +1 -1
- package/dist/modules/orders/service.js +184 -55
- package/dist/modules/pricing/module.d.ts.map +1 -1
- package/dist/modules/pricing/module.js +1 -0
- package/dist/modules/pricing/service.d.ts +2 -0
- package/dist/modules/pricing/service.d.ts.map +1 -1
- package/dist/modules/pricing/service.js +12 -11
- package/dist/modules/promotions/module.d.ts.map +1 -1
- package/dist/modules/promotions/module.js +1 -0
- package/dist/modules/promotions/service.d.ts +3 -0
- package/dist/modules/promotions/service.d.ts.map +1 -1
- package/dist/modules/promotions/service.js +19 -11
- package/dist/modules/search/adapter.d.ts +11 -0
- package/dist/modules/search/adapter.d.ts.map +1 -1
- package/dist/modules/search/module.d.ts.map +1 -1
- package/dist/modules/search/module.js +4 -1
- package/dist/modules/search/service.d.ts +1 -0
- package/dist/modules/search/service.d.ts.map +1 -1
- package/dist/modules/search/service.js +57 -6
- package/dist/modules/settings/module.d.ts.map +1 -1
- package/dist/modules/settings/module.js +1 -0
- package/dist/modules/settings/service.d.ts +3 -0
- package/dist/modules/settings/service.d.ts.map +1 -1
- package/dist/modules/settings/service.js +6 -4
- package/dist/modules/shipping/service.js +9 -9
- package/dist/modules/tax/module.d.ts.map +1 -1
- package/dist/modules/tax/module.js +1 -0
- package/dist/modules/tax/service.d.ts +3 -0
- package/dist/modules/tax/service.d.ts.map +1 -1
- package/dist/modules/tax/service.js +11 -9
- package/dist/modules/webhooks/hook.js +2 -2
- package/dist/modules/webhooks/module.d.ts.map +1 -1
- package/dist/modules/webhooks/module.js +1 -0
- package/dist/modules/webhooks/service.d.ts +2 -0
- package/dist/modules/webhooks/service.d.ts.map +1 -1
- package/dist/modules/webhooks/service.js +4 -4
- package/dist/runtime/server.d.ts.map +1 -1
- package/dist/runtime/server.js +28 -2
- package/dist/test-utils/create-pglite-adapter.d.ts.map +1 -1
- package/dist/test-utils/create-pglite-adapter.js +35 -13
- package/dist/test-utils/create-test-config.d.ts.map +1 -1
- package/dist/test-utils/create-test-config.js +4 -0
- package/dist/test-utils/rest-api-test-utils.d.ts.map +1 -1
- package/dist/test-utils/rest-api-test-utils.js +2 -0
- package/dist/test-utils/test-actors.js +2 -2
- package/dist/utils/id.d.ts +2 -0
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/id.js +11 -0
- package/package.json +6 -5
- package/src/auth/actor.ts +110 -0
- package/src/auth/auth-schema-guard.ts +143 -0
- package/src/auth/auth-schema.ts +50 -19
- package/src/auth/middleware.ts +25 -101
- package/src/auth/org.ts +15 -3
- package/src/auth/organization-guard.ts +158 -0
- package/src/auth/permissions.ts +31 -8
- package/src/auth/role-authority.ts +107 -0
- package/src/auth/setup.ts +19 -1
- package/src/auth/strict-org-resolution.ts +7 -1
- package/src/auth/types.ts +1 -1
- package/src/config/defaults.ts +2 -0
- package/src/config/types.ts +31 -4
- package/src/hooks/checkout.ts +19 -12
- package/src/index.ts +21 -6
- package/src/interfaces/rest/audit-middleware.ts +2 -0
- package/src/interfaces/rest/customer-portal.ts +31 -24
- package/src/interfaces/rest/route-coverage.ts +103 -0
- package/src/interfaces/rest/router.ts +16 -10
- package/src/interfaces/rest/routes/admin/compensation-failures.ts +8 -5
- package/src/interfaces/rest/routes/admin/custom-field-proposals.ts +2 -2
- package/src/interfaces/rest/routes/admin/permissions.ts +3 -1
- package/src/interfaces/rest/routes/admin/staff.ts +161 -72
- package/src/interfaces/rest/routes/admin-jobs.ts +3 -3
- package/src/interfaces/rest/routes/audit.ts +3 -3
- package/src/interfaces/rest/routes/carts.ts +17 -7
- package/src/interfaces/rest/routes/catalog.ts +11 -0
- package/src/interfaces/rest/routes/checkout.ts +41 -38
- package/src/interfaces/rest/routes/documents.ts +15 -1
- package/src/interfaces/rest/routes/inventory.ts +2 -0
- package/src/interfaces/rest/routes/media.ts +8 -3
- package/src/interfaces/rest/routes/orders.ts +27 -8
- package/src/interfaces/rest/routes/pricing.ts +2 -2
- package/src/interfaces/rest/routes/promotions.ts +12 -9
- package/src/interfaces/rest/routes/search.ts +3 -1
- package/src/interfaces/rest/utils.ts +61 -2
- package/src/kernel/compensation/executor.ts +2 -2
- package/src/kernel/database/plugin-types.ts +11 -0
- package/src/kernel/database/scoped-db.ts +12 -0
- package/src/kernel/database/tx-context.ts +25 -0
- package/src/kernel/hooks/create-context.ts +3 -0
- package/src/kernel/hooks/types.ts +2 -0
- package/src/kernel/plugin/manifest.ts +9 -5
- package/src/modules/analytics/service.ts +2 -2
- package/src/modules/audit/service.ts +3 -3
- package/src/modules/cart/repository/index.ts +22 -8
- package/src/modules/cart/schema.ts +4 -0
- package/src/modules/cart/service.ts +62 -27
- package/src/modules/catalog/brand-service.ts +7 -7
- package/src/modules/catalog/category-service.ts +7 -7
- package/src/modules/catalog/entity-service.ts +117 -35
- package/src/modules/catalog/read-policy.ts +16 -0
- package/src/modules/catalog/repository/index.ts +19 -3
- package/src/modules/catalog/service.ts +46 -31
- package/src/modules/customers/module.ts +2 -0
- package/src/modules/customers/service.ts +23 -22
- package/src/modules/documents/module.ts +2 -0
- package/src/modules/documents/service.ts +74 -11
- package/src/modules/fulfillment/module.ts +2 -0
- package/src/modules/fulfillment/service.ts +17 -6
- package/src/modules/inventory/service.ts +15 -24
- package/src/modules/media/service.ts +6 -6
- package/src/modules/orders/guest-access.ts +55 -0
- package/src/modules/orders/module.ts +1 -0
- package/src/modules/orders/quote.ts +1 -0
- package/src/modules/orders/repository/index.ts +2 -0
- package/src/modules/orders/schema.ts +5 -3
- package/src/modules/orders/service.ts +302 -52
- package/src/modules/pricing/module.ts +2 -0
- package/src/modules/pricing/service.ts +14 -16
- package/src/modules/promotions/module.ts +2 -0
- package/src/modules/promotions/service.ts +25 -16
- package/src/modules/search/adapter.ts +9 -0
- package/src/modules/search/module.ts +5 -1
- package/src/modules/search/service.ts +55 -6
- package/src/modules/settings/module.ts +2 -0
- package/src/modules/settings/service.ts +8 -4
- package/src/modules/shipping/service.ts +9 -9
- package/src/modules/tax/module.ts +1 -0
- package/src/modules/tax/service.ts +13 -9
- package/src/modules/webhooks/hook.ts +2 -2
- package/src/modules/webhooks/module.ts +2 -0
- package/src/modules/webhooks/service.ts +6 -4
- package/src/runtime/server.ts +41 -2
- package/src/test-utils/create-pglite-adapter.ts +34 -12
- package/src/test-utils/create-test-config.ts +10 -6
- package/src/test-utils/rest-api-test-utils.ts +2 -0
- package/src/test-utils/test-actors.ts +2 -2
- package/src/utils/id.ts +20 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
2
2
|
import { attachMediaRoute, getMediaRoute, deleteMediaRoute } from "../schemas/media.js";
|
|
3
|
-
import { mapErrorToResponse, mapErrorToStatus, requirePerm } from "../utils.js";
|
|
3
|
+
import { mapErrorToResponse, mapErrorToStatus, requireMethodPerm, requirePerm } from "../utils.js";
|
|
4
4
|
export function mediaRoutes(kernel) {
|
|
5
5
|
const router = new OpenAPIHono();
|
|
6
6
|
// Upload requires authentication + media:write permission
|
|
7
7
|
router.use("/upload", requirePerm("media:write"));
|
|
8
|
+
router.use("/:id", requireMethodPerm(["DELETE"], "media:write"));
|
|
8
9
|
router.post("/upload", async (c) => {
|
|
9
10
|
// No storage configured (the default no-op adapter) → media is disabled.
|
|
10
11
|
if (kernel.config.storage?.providerId === "noop") {
|
|
@@ -32,11 +33,14 @@ export function mediaRoutes(kernel) {
|
|
|
32
33
|
});
|
|
33
34
|
router.openapi(getMediaRoute, async (c) => {
|
|
34
35
|
const signed = c.req.query("signed") === "true";
|
|
36
|
+
const actor = c.get("actor");
|
|
37
|
+
if (!actor && !signed) {
|
|
38
|
+
return c.json({ error: { code: "NOT_FOUND", message: "Media not found." } }, 404);
|
|
39
|
+
}
|
|
35
40
|
// Signed URLs require authentication
|
|
36
|
-
if (signed && !
|
|
41
|
+
if (signed && !actor) {
|
|
37
42
|
return c.json({ error: { code: "UNAUTHORIZED", message: "Authentication required for signed URLs." } }, 401);
|
|
38
43
|
}
|
|
39
|
-
const actor = c.get("actor");
|
|
40
44
|
const result = signed
|
|
41
45
|
? await kernel.services.media.getSignedUrl(c.req.param("id"), undefined, actor)
|
|
42
46
|
: await kernel.services.media.getUrl(c.req.param("id"), actor);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/orders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/orders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,KAAK,MAAM,EAAiH,MAAM,aAAa,CAAC;AAKzJ,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,gCAqUzC"}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
2
2
|
import { changeOrderStatusRoute, listOrdersRoute, orderLookupRoute, getOrderRoute, getOrderFulfillmentsRoute, createOrderRoute, quoteOrderRoute, refundOrderRoute, captureOrderRoute, createOrderFulfillmentRoute, addOrderLineItemRoute, updateOrderLineItemRoute, removeOrderLineItemRoute, refundOrderLinesRoute, undoOrderRefundRoute, listOrderRefundsRoute, refundCapStatusRoute, createOrderNoteRoute, listOrderNotesRoute, deleteOrderNoteRoute, orderTimelineRoute } from "../schemas/orders.js";
|
|
3
|
-
import { isUUID, mapErrorToResponse, mapErrorToStatus, parsePagination } from "../utils.js";
|
|
3
|
+
import { isUUID, mapErrorToResponse, mapErrorToStatus, parsePagination, requireAnyPerm, requireMethodPerm, requirePerm } from "../utils.js";
|
|
4
4
|
import { computeOrderPricing } from "../../../modules/orders/quote.js";
|
|
5
5
|
import { assertPermission } from "../../../auth/permissions.js";
|
|
6
6
|
export function orderRoutes(kernel) {
|
|
7
7
|
const router = new OpenAPIHono();
|
|
8
|
+
router.use("/", requireMethodPerm(["GET"], "orders:read"));
|
|
9
|
+
router.use("/", requireMethodPerm(["POST"], "orders:create"));
|
|
10
|
+
router.use("/lookup", requirePerm("orders:read"));
|
|
11
|
+
router.use("/:idOrNumber", requireAnyPerm(["orders:read", "orders:read:own"]));
|
|
12
|
+
router.use("/:id/*", requireAnyPerm(["orders:read", "orders:read:own", "orders:update", "orders:manage"]));
|
|
13
|
+
router.use("/refunds/cap", requirePerm("orders:read"));
|
|
8
14
|
// @ts-expect-error -- openapi handler union return type
|
|
9
15
|
router.openapi(listOrdersRoute, async (c) => {
|
|
10
16
|
const pagination = parsePagination(c.req.query());
|
|
@@ -48,9 +54,10 @@ export function orderRoutes(kernel) {
|
|
|
48
54
|
// @ts-expect-error -- openapi handler union return type
|
|
49
55
|
router.openapi(getOrderRoute, async (c) => {
|
|
50
56
|
const idOrNumber = c.req.param("idOrNumber");
|
|
57
|
+
const guestCredential = c.req.header("x-cart-secret") ?? c.req.header("X-Cart-Secret") ?? undefined;
|
|
51
58
|
const result = isUUID(idOrNumber)
|
|
52
|
-
? await kernel.services.orders.getById(idOrNumber, c.get("actor"))
|
|
53
|
-
: await kernel.services.orders.getByNumber(idOrNumber, c.get("actor"));
|
|
59
|
+
? await kernel.services.orders.getById(idOrNumber, c.get("actor"), undefined, guestCredential)
|
|
60
|
+
: await kernel.services.orders.getByNumber(idOrNumber, c.get("actor"), undefined, guestCredential);
|
|
54
61
|
if (!result.ok)
|
|
55
62
|
return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
|
|
56
63
|
return c.json({ data: result.value });
|
|
@@ -58,13 +65,16 @@ export function orderRoutes(kernel) {
|
|
|
58
65
|
// @ts-expect-error -- openapi handler union return type
|
|
59
66
|
router.openapi(createOrderRoute, async (c) => {
|
|
60
67
|
try {
|
|
61
|
-
assertPermission(c.get("actor"), "orders:
|
|
68
|
+
assertPermission(c.get("actor"), "orders:create");
|
|
62
69
|
}
|
|
63
70
|
catch (error) {
|
|
64
71
|
return c.json(mapErrorToResponse(error), mapErrorToStatus(error));
|
|
65
72
|
}
|
|
66
73
|
const body = c.req.valid("json");
|
|
67
|
-
const
|
|
74
|
+
const guestCredential = c.req.header("x-cart-secret") ?? c.req.header("X-Cart-Secret") ?? undefined;
|
|
75
|
+
const result = await kernel.services.orders.create(body, c.get("actor"), undefined, {
|
|
76
|
+
...(guestCredential !== undefined ? { guestCredential } : {}),
|
|
77
|
+
});
|
|
68
78
|
if (!result.ok)
|
|
69
79
|
return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
|
|
70
80
|
return c.json({ data: result.value }, 201);
|
|
@@ -216,8 +226,15 @@ export function orderRoutes(kernel) {
|
|
|
216
226
|
router.openapi(createOrderFulfillmentRoute, async (c) => {
|
|
217
227
|
const actor = c.get("actor");
|
|
218
228
|
const orderId = c.req.param("id");
|
|
229
|
+
try {
|
|
230
|
+
assertPermission(actor, "orders:update");
|
|
231
|
+
}
|
|
232
|
+
catch (error) {
|
|
233
|
+
return c.json(mapErrorToResponse(error), mapErrorToStatus(error));
|
|
234
|
+
}
|
|
235
|
+
const guestCredential = c.req.header("x-cart-secret") ?? c.req.header("X-Cart-Secret") ?? undefined;
|
|
219
236
|
// Verify the order exists and the actor has access before recording
|
|
220
|
-
const orderResult = await kernel.services.orders.getById(orderId, actor);
|
|
237
|
+
const orderResult = await kernel.services.orders.getById(orderId, actor, undefined, guestCredential);
|
|
221
238
|
if (!orderResult.ok)
|
|
222
239
|
return c.json(mapErrorToResponse(orderResult.error), mapErrorToStatus(orderResult.error));
|
|
223
240
|
const body = c.req.valid("json");
|
|
@@ -230,10 +247,11 @@ export function orderRoutes(kernel) {
|
|
|
230
247
|
router.openapi(getOrderFulfillmentsRoute, async (c) => {
|
|
231
248
|
const orderId = c.req.param("id");
|
|
232
249
|
const actor = c.get("actor");
|
|
250
|
+
const guestCredential = c.req.header("x-cart-secret") ?? c.req.header("X-Cart-Secret") ?? undefined;
|
|
233
251
|
// Verify the order exists and the actor has access before returning fulfillments
|
|
234
252
|
const orderResult = isUUID(orderId)
|
|
235
|
-
? await kernel.services.orders.getById(orderId, actor)
|
|
236
|
-
: await kernel.services.orders.getByNumber(orderId, actor);
|
|
253
|
+
? await kernel.services.orders.getById(orderId, actor, undefined, guestCredential)
|
|
254
|
+
: await kernel.services.orders.getByNumber(orderId, actor, undefined, guestCredential);
|
|
237
255
|
if (!orderResult.ok)
|
|
238
256
|
return c.json(mapErrorToResponse(orderResult.error), mapErrorToStatus(orderResult.error));
|
|
239
257
|
const result = await kernel.services.fulfillment.getByOrderId(orderResult.value.id);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
2
|
-
import {
|
|
2
|
+
import { resolveOrgIdForCommerce } from "../../../auth/org.js";
|
|
3
3
|
import { CommerceValidationError } from "../../../kernel/errors.js";
|
|
4
4
|
import { CatalogRepository } from "../../../modules/catalog/repository/index.js";
|
|
5
5
|
import { setBasePriceRoute, createModifierRoute, listPricesRoute, listModifiersRoute, updateModifierRoute, deleteModifierRoute } from "../schemas/pricing.js";
|
|
@@ -80,7 +80,7 @@ export function pricingRoutes(kernel) {
|
|
|
80
80
|
const input = c.req.valid("json");
|
|
81
81
|
if (input.entityId) {
|
|
82
82
|
const catalogRepo = new CatalogRepository(kernel.database.db);
|
|
83
|
-
const orgId =
|
|
83
|
+
const orgId = resolveOrgIdForCommerce(actor, kernel.config);
|
|
84
84
|
const entity = await catalogRepo.findEntityById(input.entityId);
|
|
85
85
|
if (!entity || entity.organizationId !== orgId) {
|
|
86
86
|
return c.json(mapErrorToResponse(new CommerceValidationError("entityId does not belong to this organization.")), 422);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promotions.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/promotions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,EAAE,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"promotions.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/promotions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,EAAE,KAAK,MAAM,EAAwE,MAAM,aAAa,CAAC;AAIhH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,gCAmH7C"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
2
2
|
import { rateLimiter } from "hono-rate-limiter";
|
|
3
3
|
import { createPromotionRoute, updatePromotionRoute, validatePromotionRoute, deactivatePromotionRoute, listPromotionsRoute } from "../schemas/promotions.js";
|
|
4
|
-
import { mapErrorToResponse, mapErrorToStatus, requirePerm } from "../utils.js";
|
|
5
|
-
import {
|
|
4
|
+
import { mapErrorToResponse, mapErrorToStatus, requireMethodPerm, requirePerm } from "../utils.js";
|
|
5
|
+
import { resolveOrgIdForCommerce } from "../../../auth/org.js";
|
|
6
|
+
import { assertPermission } from "../../../auth/permissions.js";
|
|
6
7
|
export function promotionRoutes(kernel) {
|
|
7
8
|
const router = new OpenAPIHono();
|
|
8
9
|
// Rate limit promo code validation — prevents brute-force code enumeration
|
|
@@ -45,7 +46,7 @@ export function promotionRoutes(kernel) {
|
|
|
45
46
|
router.openapi(validatePromotionRoute, async (c) => {
|
|
46
47
|
const payload = c.req.valid("json");
|
|
47
48
|
const actor = c.get("actor");
|
|
48
|
-
const orgId =
|
|
49
|
+
const orgId = resolveOrgIdForCommerce(actor, kernel.config);
|
|
49
50
|
// Apply (not just validate) so the response carries the authoritative
|
|
50
51
|
// discount the cart would receive — the same computation checkout runs.
|
|
51
52
|
// Returning only the promotion forces callers to re-derive the amount, which
|
|
@@ -66,18 +67,20 @@ export function promotionRoutes(kernel) {
|
|
|
66
67
|
});
|
|
67
68
|
// Guard inline (not via router.use("/:id")) because a "/:id" middleware
|
|
68
69
|
// would also match single-segment routes like POST /validate.
|
|
69
|
-
router.use("/:id",
|
|
70
|
-
if (c.req.method !== "PATCH")
|
|
71
|
-
return next();
|
|
72
|
-
return requirePerm("promotions:manage")(c, next);
|
|
73
|
-
});
|
|
70
|
+
router.use("/:id", requireMethodPerm(["PATCH"], "promotions:manage"));
|
|
74
71
|
// @ts-expect-error -- openapi() enforces strict response typing but our handler
|
|
75
72
|
// returns union responses (200 | 400 | 404 | 422). The route definition
|
|
76
73
|
// documents the contract; the handler returns dynamic status.
|
|
77
74
|
router.openapi(updatePromotionRoute, async (c) => {
|
|
78
75
|
const body = c.req.valid("json");
|
|
79
76
|
const actor = c.get("actor");
|
|
80
|
-
|
|
77
|
+
try {
|
|
78
|
+
assertPermission(actor, "promotions:manage");
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
return c.json(mapErrorToResponse(error), mapErrorToStatus(error));
|
|
82
|
+
}
|
|
83
|
+
const orgId = resolveOrgIdForCommerce(actor, kernel.config);
|
|
81
84
|
const result = await kernel.services.promotions.update(orgId, c.req.param("id"), body, actor);
|
|
82
85
|
if (!result.ok) {
|
|
83
86
|
return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
|
|
@@ -90,7 +93,7 @@ export function promotionRoutes(kernel) {
|
|
|
90
93
|
// contract; the handler returns dynamic status.
|
|
91
94
|
router.openapi(deactivatePromotionRoute, async (c) => {
|
|
92
95
|
const actor = c.get("actor");
|
|
93
|
-
const orgId =
|
|
96
|
+
const orgId = resolveOrgIdForCommerce(actor, kernel.config);
|
|
94
97
|
const result = await kernel.services.promotions.deactivate(orgId, c.req.param("id"));
|
|
95
98
|
if (!result.ok) {
|
|
96
99
|
return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,KAAK,MAAM,EAAqD,MAAM,aAAa,CAAC;AAI7F,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,gCA2F1C"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
2
2
|
import { searchRoute, suggestRoute } from "../schemas/search.js";
|
|
3
|
-
import { mapErrorToResponse, mapErrorToStatus } from "../utils.js";
|
|
3
|
+
import { mapErrorToResponse, mapErrorToStatus, requirePerm } from "../utils.js";
|
|
4
4
|
const SAFE_ATTRIBUTE_NAME = /^[A-Za-z0-9_-]+$/;
|
|
5
5
|
export function searchRoutes(kernel) {
|
|
6
6
|
const router = new OpenAPIHono();
|
|
7
|
+
router.use("/*", requirePerm("catalog:read"));
|
|
7
8
|
// @ts-expect-error -- openapi handler union return type
|
|
8
9
|
router.openapi(searchRoute, async (c) => {
|
|
9
10
|
try {
|
|
@@ -192,6 +192,7 @@ export declare const CartResponseSchema: z.ZodObject<{
|
|
|
192
192
|
currency: z.ZodString;
|
|
193
193
|
email: z.ZodNullable<z.ZodString>;
|
|
194
194
|
secret: z.ZodNullable<z.ZodString>;
|
|
195
|
+
checkoutClaimToken: z.ZodNullable<z.ZodString>;
|
|
195
196
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
196
197
|
expiresAt: z.ZodDate;
|
|
197
198
|
createdAt: z.ZodDate;
|
|
@@ -514,6 +515,7 @@ export declare const listCartsRoute: {
|
|
|
514
515
|
currency: z.ZodString;
|
|
515
516
|
email: z.ZodNullable<z.ZodString>;
|
|
516
517
|
secret: z.ZodNullable<z.ZodString>;
|
|
518
|
+
checkoutClaimToken: z.ZodNullable<z.ZodString>;
|
|
517
519
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
518
520
|
expiresAt: z.ZodDate;
|
|
519
521
|
createdAt: z.ZodDate;
|
|
@@ -834,6 +836,7 @@ export declare const recoverCartRoute: {
|
|
|
834
836
|
currency: z.ZodString;
|
|
835
837
|
email: z.ZodNullable<z.ZodString>;
|
|
836
838
|
secret: z.ZodNullable<z.ZodString>;
|
|
839
|
+
checkoutClaimToken: z.ZodNullable<z.ZodString>;
|
|
837
840
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
838
841
|
expiresAt: z.ZodDate;
|
|
839
842
|
createdAt: z.ZodDate;
|
|
@@ -1153,6 +1156,7 @@ export declare const getCartRoute: {
|
|
|
1153
1156
|
currency: z.ZodString;
|
|
1154
1157
|
email: z.ZodNullable<z.ZodString>;
|
|
1155
1158
|
secret: z.ZodNullable<z.ZodString>;
|
|
1159
|
+
checkoutClaimToken: z.ZodNullable<z.ZodString>;
|
|
1156
1160
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1157
1161
|
expiresAt: z.ZodDate;
|
|
1158
1162
|
createdAt: z.ZodDate;
|
|
@@ -1609,6 +1613,7 @@ export declare const createCartRoute: {
|
|
|
1609
1613
|
currency: z.ZodString;
|
|
1610
1614
|
email: z.ZodNullable<z.ZodString>;
|
|
1611
1615
|
secret: z.ZodNullable<z.ZodString>;
|
|
1616
|
+
checkoutClaimToken: z.ZodNullable<z.ZodString>;
|
|
1612
1617
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1613
1618
|
expiresAt: z.ZodDate;
|
|
1614
1619
|
createdAt: z.ZodDate;
|
|
@@ -1940,6 +1945,7 @@ export declare const addCartItemRoute: {
|
|
|
1940
1945
|
currency: z.ZodString;
|
|
1941
1946
|
email: z.ZodNullable<z.ZodString>;
|
|
1942
1947
|
secret: z.ZodNullable<z.ZodString>;
|
|
1948
|
+
checkoutClaimToken: z.ZodNullable<z.ZodString>;
|
|
1943
1949
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1944
1950
|
expiresAt: z.ZodDate;
|
|
1945
1951
|
createdAt: z.ZodDate;
|
|
@@ -2270,6 +2276,7 @@ export declare const updateCartItemQuantityRoute: {
|
|
|
2270
2276
|
currency: z.ZodString;
|
|
2271
2277
|
email: z.ZodNullable<z.ZodString>;
|
|
2272
2278
|
secret: z.ZodNullable<z.ZodString>;
|
|
2279
|
+
checkoutClaimToken: z.ZodNullable<z.ZodString>;
|
|
2273
2280
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
2274
2281
|
expiresAt: z.ZodDate;
|
|
2275
2282
|
createdAt: z.ZodDate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carts.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/schemas/carts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAe,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,gCAAgC,EACjC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,gCAAgC,EAAE,CAAC;AAIzF,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"carts.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/schemas/carts.ts"],"names":[],"mappings":"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"}
|
|
@@ -824,6 +824,23 @@ export declare const listCustomerOrdersRoute: {
|
|
|
824
824
|
identity: undefined;
|
|
825
825
|
generated: undefined;
|
|
826
826
|
}, {}, {}>;
|
|
827
|
+
idempotencyScope: import("drizzle-orm/pg-core").PgColumn<{
|
|
828
|
+
name: "idempotency_scope";
|
|
829
|
+
tableName: "orders";
|
|
830
|
+
dataType: "string";
|
|
831
|
+
columnType: "PgText";
|
|
832
|
+
data: string;
|
|
833
|
+
driverParam: string;
|
|
834
|
+
notNull: false;
|
|
835
|
+
hasDefault: false;
|
|
836
|
+
isPrimaryKey: false;
|
|
837
|
+
isAutoincrement: false;
|
|
838
|
+
hasRuntimeDefault: false;
|
|
839
|
+
enumValues: [string, ...string[]];
|
|
840
|
+
baseColumn: never;
|
|
841
|
+
identity: undefined;
|
|
842
|
+
generated: undefined;
|
|
843
|
+
}, {}, {}>;
|
|
827
844
|
metadata: import("drizzle-orm/pg-core").PgColumn<{
|
|
828
845
|
name: "metadata";
|
|
829
846
|
tableName: "orders";
|
|
@@ -1282,6 +1299,23 @@ export declare const getCustomerOrderRoute: {
|
|
|
1282
1299
|
identity: undefined;
|
|
1283
1300
|
generated: undefined;
|
|
1284
1301
|
}, {}, {}>;
|
|
1302
|
+
idempotencyScope: import("drizzle-orm/pg-core").PgColumn<{
|
|
1303
|
+
name: "idempotency_scope";
|
|
1304
|
+
tableName: "orders";
|
|
1305
|
+
dataType: "string";
|
|
1306
|
+
columnType: "PgText";
|
|
1307
|
+
data: string;
|
|
1308
|
+
driverParam: string;
|
|
1309
|
+
notNull: false;
|
|
1310
|
+
hasDefault: false;
|
|
1311
|
+
isPrimaryKey: false;
|
|
1312
|
+
isAutoincrement: false;
|
|
1313
|
+
hasRuntimeDefault: false;
|
|
1314
|
+
enumValues: [string, ...string[]];
|
|
1315
|
+
baseColumn: never;
|
|
1316
|
+
identity: undefined;
|
|
1317
|
+
generated: undefined;
|
|
1318
|
+
}, {}, {}>;
|
|
1285
1319
|
metadata: import("drizzle-orm/pg-core").PgColumn<{
|
|
1286
1320
|
name: "metadata";
|
|
1287
1321
|
tableName: "orders";
|
|
@@ -2066,6 +2100,7 @@ export declare const reorderRoute: {
|
|
|
2066
2100
|
currency: z.ZodString;
|
|
2067
2101
|
email: z.ZodNullable<z.ZodString>;
|
|
2068
2102
|
secret: z.ZodNullable<z.ZodString>;
|
|
2103
|
+
checkoutClaimToken: z.ZodNullable<z.ZodString>;
|
|
2069
2104
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
2070
2105
|
expiresAt: z.ZodDate;
|
|
2071
2106
|
createdAt: z.ZodDate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customer-portal.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/schemas/customer-portal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAe,MAAM,mBAAmB,CAAC;AAQnD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS1B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQ7B,CAAC;AAEH,eAAO,MAAM,uBAAuB
|
|
1
|
+
{"version":3,"file":"customer-portal.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/schemas/customer-portal.ts"],"names":[],"mappings":"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"}
|