@porulle/core 0.1.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/dist/auth/middleware.d.ts.map +1 -1
  2. package/dist/auth/middleware.js +17 -1
  3. package/dist/config/define-config.d.ts.map +1 -1
  4. package/dist/config/define-config.js +6 -0
  5. package/dist/config/types.d.ts +12 -0
  6. package/dist/config/types.d.ts.map +1 -1
  7. package/dist/hooks/checkout.d.ts +3 -3
  8. package/dist/hooks/checkout.js +4 -4
  9. package/dist/index.d.ts +9 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +6 -1
  12. package/dist/interfaces/rest/audit-middleware.d.ts +46 -0
  13. package/dist/interfaces/rest/audit-middleware.d.ts.map +1 -0
  14. package/dist/interfaces/rest/audit-middleware.js +82 -0
  15. package/dist/interfaces/rest/parse-json.d.ts +39 -0
  16. package/dist/interfaces/rest/parse-json.d.ts.map +1 -0
  17. package/dist/interfaces/rest/parse-json.js +45 -0
  18. package/dist/interfaces/rest/routes/catalog.d.ts.map +1 -1
  19. package/dist/interfaces/rest/routes/catalog.js +17 -2
  20. package/dist/interfaces/rest/routes/customers.d.ts.map +1 -1
  21. package/dist/interfaces/rest/routes/customers.js +59 -4
  22. package/dist/interfaces/rest/routes/inventory.d.ts.map +1 -1
  23. package/dist/interfaces/rest/routes/inventory.js +4 -2
  24. package/dist/interfaces/rest/routes/media.d.ts.map +1 -1
  25. package/dist/interfaces/rest/routes/media.js +6 -0
  26. package/dist/interfaces/rest/routes/orders.d.ts.map +1 -1
  27. package/dist/interfaces/rest/routes/orders.js +23 -1
  28. package/dist/interfaces/rest/routes/promotions.d.ts.map +1 -1
  29. package/dist/interfaces/rest/routes/promotions.js +21 -1
  30. package/dist/interfaces/rest/schemas/carts.d.ts +175 -0
  31. package/dist/interfaces/rest/schemas/carts.d.ts.map +1 -1
  32. package/dist/interfaces/rest/schemas/catalog.d.ts +1410 -0
  33. package/dist/interfaces/rest/schemas/catalog.d.ts.map +1 -1
  34. package/dist/interfaces/rest/schemas/catalog.js +28 -1
  35. package/dist/interfaces/rest/schemas/checkout.d.ts +35 -0
  36. package/dist/interfaces/rest/schemas/checkout.d.ts.map +1 -1
  37. package/dist/interfaces/rest/schemas/customer-portal.d.ts +280 -0
  38. package/dist/interfaces/rest/schemas/customer-portal.d.ts.map +1 -1
  39. package/dist/interfaces/rest/schemas/customers.d.ts +863 -0
  40. package/dist/interfaces/rest/schemas/customers.d.ts.map +1 -1
  41. package/dist/interfaces/rest/schemas/customers.js +88 -0
  42. package/dist/interfaces/rest/schemas/inventory.d.ts +182 -1
  43. package/dist/interfaces/rest/schemas/inventory.d.ts.map +1 -1
  44. package/dist/interfaces/rest/schemas/media.d.ts +105 -0
  45. package/dist/interfaces/rest/schemas/media.d.ts.map +1 -1
  46. package/dist/interfaces/rest/schemas/orders.d.ts +136 -0
  47. package/dist/interfaces/rest/schemas/orders.d.ts.map +1 -1
  48. package/dist/interfaces/rest/schemas/orders.js +20 -0
  49. package/dist/interfaces/rest/schemas/pricing.d.ts +70 -0
  50. package/dist/interfaces/rest/schemas/pricing.d.ts.map +1 -1
  51. package/dist/interfaces/rest/schemas/promotions.d.ts +298 -0
  52. package/dist/interfaces/rest/schemas/promotions.d.ts.map +1 -1
  53. package/dist/interfaces/rest/schemas/promotions.js +25 -1
  54. package/dist/interfaces/rest/schemas/shared.d.ts +47 -0
  55. package/dist/interfaces/rest/schemas/shared.d.ts.map +1 -1
  56. package/dist/interfaces/rest/schemas/shared.js +8 -0
  57. package/dist/interfaces/rest/schemas/webhooks.d.ts +70 -0
  58. package/dist/interfaces/rest/schemas/webhooks.d.ts.map +1 -1
  59. package/dist/kernel/database/adapter.d.ts +6 -0
  60. package/dist/kernel/database/adapter.d.ts.map +1 -1
  61. package/dist/kernel/database/adapter.js +62 -1
  62. package/dist/kernel/database/migrate.d.ts +22 -2
  63. package/dist/kernel/database/migrate.d.ts.map +1 -1
  64. package/dist/kernel/database/migrate.js +42 -2
  65. package/dist/modules/analytics/hooks.d.ts +5 -5
  66. package/dist/modules/analytics/hooks.js +5 -5
  67. package/dist/modules/analytics/repository/index.d.ts.map +1 -1
  68. package/dist/modules/catalog/category-service.d.ts +6 -1
  69. package/dist/modules/catalog/category-service.d.ts.map +1 -1
  70. package/dist/modules/catalog/category-service.js +35 -5
  71. package/dist/modules/catalog/schema.d.ts +17 -0
  72. package/dist/modules/catalog/schema.d.ts.map +1 -1
  73. package/dist/modules/catalog/schema.js +2 -0
  74. package/dist/modules/catalog/service.d.ts +11 -2
  75. package/dist/modules/catalog/service.d.ts.map +1 -1
  76. package/dist/modules/catalog/service.js +8 -2
  77. package/dist/modules/customers/repository/index.d.ts +8 -1
  78. package/dist/modules/customers/repository/index.d.ts.map +1 -1
  79. package/dist/modules/customers/repository/index.js +42 -2
  80. package/dist/modules/customers/schema.d.ts +162 -0
  81. package/dist/modules/customers/schema.d.ts.map +1 -1
  82. package/dist/modules/customers/schema.js +18 -0
  83. package/dist/modules/customers/service.d.ts +32 -2
  84. package/dist/modules/customers/service.d.ts.map +1 -1
  85. package/dist/modules/customers/service.js +119 -3
  86. package/dist/modules/inventory/schemas.d.ts +7 -1
  87. package/dist/modules/inventory/schemas.d.ts.map +1 -1
  88. package/dist/modules/inventory/schemas.js +6 -1
  89. package/dist/modules/inventory/service.d.ts +18 -0
  90. package/dist/modules/inventory/service.d.ts.map +1 -1
  91. package/dist/modules/inventory/service.js +58 -21
  92. package/dist/modules/media/noop-adapter.d.ts +11 -0
  93. package/dist/modules/media/noop-adapter.d.ts.map +1 -0
  94. package/dist/modules/media/noop-adapter.js +31 -0
  95. package/dist/modules/orders/repository/index.d.ts +19 -0
  96. package/dist/modules/orders/repository/index.d.ts.map +1 -1
  97. package/dist/modules/orders/repository/index.js +42 -1
  98. package/dist/modules/orders/service.d.ts +31 -0
  99. package/dist/modules/orders/service.d.ts.map +1 -1
  100. package/dist/modules/orders/service.js +52 -2
  101. package/dist/modules/payments/repository/index.d.ts.map +1 -1
  102. package/dist/modules/promotions/schemas.d.ts +46 -0
  103. package/dist/modules/promotions/schemas.d.ts.map +1 -1
  104. package/dist/modules/promotions/schemas.js +19 -8
  105. package/dist/modules/promotions/service.d.ts +8 -2
  106. package/dist/modules/promotions/service.d.ts.map +1 -1
  107. package/dist/modules/promotions/service.js +74 -9
  108. package/dist/modules/search/repository/index.d.ts.map +1 -1
  109. package/dist/modules/shipping/repository/index.d.ts.map +1 -1
  110. package/dist/modules/tax/repository/index.d.ts.map +1 -1
  111. package/dist/runtime/client-ip.d.ts +31 -0
  112. package/dist/runtime/client-ip.d.ts.map +1 -0
  113. package/dist/runtime/client-ip.js +31 -0
  114. package/dist/runtime/server.d.ts +4 -0
  115. package/dist/runtime/server.d.ts.map +1 -1
  116. package/dist/runtime/server.js +35 -19
  117. package/dist/test-utils/create-plugin-test-app.d.ts.map +1 -1
  118. package/dist/test-utils/create-plugin-test-app.js +4 -1
  119. package/dist/test-utils/test-actors.d.ts +3 -2
  120. package/dist/test-utils/test-actors.d.ts.map +1 -1
  121. package/dist/test-utils/test-actors.js +3 -2
  122. package/package.json +4 -4
  123. package/src/auth/middleware.ts +18 -1
  124. package/src/config/define-config.ts +7 -0
  125. package/src/config/types.ts +12 -0
  126. package/src/hooks/checkout.ts +4 -4
  127. package/src/index.ts +18 -1
  128. package/src/interfaces/rest/audit-middleware.ts +110 -0
  129. package/src/interfaces/rest/parse-json.ts +81 -0
  130. package/src/interfaces/rest/routes/catalog.ts +21 -1
  131. package/src/interfaces/rest/routes/customers.ts +64 -3
  132. package/src/interfaces/rest/routes/inventory.ts +4 -2
  133. package/src/interfaces/rest/routes/media.ts +7 -0
  134. package/src/interfaces/rest/routes/orders.ts +21 -1
  135. package/src/interfaces/rest/routes/promotions.ts +22 -1
  136. package/src/interfaces/rest/schemas/catalog.ts +30 -1
  137. package/src/interfaces/rest/schemas/customers.ts +99 -0
  138. package/src/interfaces/rest/schemas/orders.ts +21 -0
  139. package/src/interfaces/rest/schemas/promotions.ts +32 -1
  140. package/src/interfaces/rest/schemas/shared.ts +9 -0
  141. package/src/kernel/database/adapter.ts +64 -1
  142. package/src/kernel/database/migrate.ts +50 -2
  143. package/src/modules/analytics/hooks.ts +5 -5
  144. package/src/modules/analytics/repository/index.ts +0 -1
  145. package/src/modules/catalog/category-service.ts +26 -5
  146. package/src/modules/catalog/schema.ts +2 -0
  147. package/src/modules/catalog/service.ts +25 -3
  148. package/src/modules/customers/repository/index.ts +55 -1
  149. package/src/modules/customers/schema.ts +19 -0
  150. package/src/modules/customers/service.ts +137 -2
  151. package/src/modules/inventory/schemas.ts +6 -1
  152. package/src/modules/inventory/service.ts +84 -29
  153. package/src/modules/media/noop-adapter.ts +36 -0
  154. package/src/modules/orders/repository/index.ts +63 -1
  155. package/src/modules/orders/service.ts +86 -3
  156. package/src/modules/payments/repository/index.ts +0 -1
  157. package/src/modules/promotions/schemas.ts +21 -4
  158. package/src/modules/promotions/service.ts +90 -18
  159. package/src/modules/search/repository/index.ts +0 -1
  160. package/src/modules/shipping/repository/index.ts +0 -1
  161. package/src/modules/tax/repository/index.ts +0 -1
  162. package/src/runtime/client-ip.ts +49 -0
  163. package/src/runtime/server.ts +39 -18
  164. package/src/test-utils/create-plugin-test-app.ts +3 -1
  165. package/src/test-utils/test-actors.ts +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/auth/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAkC/C,wBAAgB,cAAc,CAC5B,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,cAAc,GACrB,iBAAiB,CAwNnB"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/auth/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAkC/C,wBAAgB,cAAc,CAC5B,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,cAAc,GACrB,iBAAiB,CAyOnB"}
@@ -122,11 +122,27 @@ export function authMiddleware(auth, config) {
122
122
  config.auth?.apiKeys?.enabled &&
123
123
  auth.api.verifyApiKey) {
124
124
  try {
125
+ // Resolve the key's configId from its prefix. Better Auth's apiKey
126
+ // plugin throws "No default api-key configuration found" when named
127
+ // scopes are configured and none is `default`/unset — and verifyApiKey
128
+ // only resolves a named scope (and enforces its configId match) when
129
+ // the configId is forwarded. Match the key's prefix to a configured
130
+ // scope so named-scope keys authenticate instead of silently 401-ing.
131
+ let configId;
132
+ const scopes = config.auth?.apiKeyScopes;
133
+ if (scopes) {
134
+ for (const [scopeId, scope] of Object.entries(scopes)) {
135
+ if (scope.prefix && apiKeyHeader.startsWith(scope.prefix)) {
136
+ configId = scopeId;
137
+ break;
138
+ }
139
+ }
140
+ }
125
141
  // Better Auth server-side calls require { body: { ... } } wrapper.
126
142
  // Returns { valid, error, key: Omit<ApiKey,"key"> | null }.
127
143
  // See: https://better-auth.com/docs/plugins/api-key/reference
128
144
  const result = await auth.api.verifyApiKey({
129
- body: { key: apiKeyHeader },
145
+ body: { key: apiKeyHeader, ...(configId ? { configId } : {}) },
130
146
  });
131
147
  if (result?.valid && result.key) {
132
148
  const apiKey = result.key;
@@ -1 +1 @@
1
- {"version":3,"file":"define-config.d.ts","sourceRoot":"","sources":["../../src/config/define-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAgDpE;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,cAAc,CAAC,CAsBzB"}
1
+ {"version":3,"file":"define-config.d.ts","sourceRoot":"","sources":["../../src/config/define-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAiDpE;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,cAAc,CAAC,CA4BzB"}
@@ -1,6 +1,7 @@
1
1
  import { defaultConfig } from "./defaults.js";
2
2
  import { defaultKernelJobTasks } from "../kernel/jobs/builtin-job-tasks.js";
3
3
  import { _resetRegisteredPlugins } from "../kernel/plugin/manifest.js";
4
+ import { noopStorageAdapter } from "../modules/media/noop-adapter.js";
4
5
  function isRecord(value) {
5
6
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
6
7
  }
@@ -60,5 +61,10 @@ export async function defineConfig(input) {
60
61
  ...config,
61
62
  jobs: mergeBuiltinJobTasks(config.jobs),
62
63
  };
64
+ // Storage is opt-in: default to a no-op adapter so catalog-only deployments
65
+ // boot with zero storage config. A real adapter (local/S3/R2) enables media.
66
+ if (!config.storage) {
67
+ config = { ...config, storage: noopStorageAdapter };
68
+ }
63
69
  return Object.freeze(config);
64
70
  }
@@ -302,9 +302,21 @@ export interface CommerceConfig {
302
302
  shipping?: ShippingConfig;
303
303
  payments?: PaymentAdapter[];
304
304
  storage?: StorageAdapter;
305
+ /**
306
+ * Runtime/edge overrides. `getClientIp` lets edge deployments (Workers,
307
+ * Vercel Edge, Fly) resolve the client IP from the platform header instead
308
+ * of the Node socket. Defaults to Node behavior.
309
+ */
310
+ runtime?: import("../runtime/client-ip.js").RuntimeConfig;
305
311
  media?: {
306
312
  allowedMimeTypes?: string[];
307
313
  allowSvg?: boolean;
314
+ /**
315
+ * Max request body size (bytes) for `POST /api/media/upload`. Phone photos
316
+ * are typically 3–8MB, so this path is exempt from the global 1MB body
317
+ * limit. Defaults to 10MB.
318
+ */
319
+ maxUploadSize?: number;
308
320
  };
309
321
  email?: {
310
322
  send(input: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
@@ -75,11 +75,11 @@ export declare const reserveInventory: AfterHook<OrderResult>;
75
75
  export declare const initiateFulfillment: AfterHook<OrderResult>;
76
76
  export declare const sendConfirmation: AfterHook<OrderResult>;
77
77
  /**
78
- * Analytics event recording — no-op since RFC-006.
78
+ * Analytics event recording — intentional no-op.
79
79
  *
80
80
  * The DrizzleAnalyticsAdapter queries source tables (orders, inventory)
81
- * directly via SQL. No separate event recording is needed.
82
- * Kept as an export for backwards compatibility with checkout route.
81
+ * directly via SQL, so no separate event recording is needed. The export
82
+ * is preserved for backwards compatibility with checkout route imports.
83
83
  */
84
84
  export declare const recordAnalyticsEvent: AfterHook<OrderResult>;
85
85
  /**
@@ -250,14 +250,14 @@ export const sendConfirmation = async ({ result, context }) => {
250
250
  });
251
251
  };
252
252
  /**
253
- * Analytics event recording — no-op since RFC-006.
253
+ * Analytics event recording — intentional no-op.
254
254
  *
255
255
  * The DrizzleAnalyticsAdapter queries source tables (orders, inventory)
256
- * directly via SQL. No separate event recording is needed.
257
- * Kept as an export for backwards compatibility with checkout route.
256
+ * directly via SQL, so no separate event recording is needed. The export
257
+ * is preserved for backwards compatibility with checkout route imports.
258
258
  */
259
259
  export const recordAnalyticsEvent = async () => {
260
- // No-op: source tables ARE the analytics events (RFC-006)
260
+ // No-op: source tables ARE the analytics events.
261
261
  };
262
262
  /**
263
263
  * Replaces the separate capturePayment and reserveInventory AfterHooks
package/dist/index.d.ts CHANGED
@@ -6,6 +6,8 @@ export { router } from "./interfaces/rest/router.js";
6
6
  export { webhookRouter, type WebhookRouterResult } from "./interfaces/rest/webhook-router.js";
7
7
  export { isPrivateUrl, isPrivateIp } from "./modules/webhooks/ssrf-guard.js";
8
8
  export { createServer } from "./runtime/server.js";
9
+ export { createClientIpResolver } from "./runtime/client-ip.js";
10
+ export type { ClientIpResolver, ClientIpContext, RuntimeConfig } from "./runtime/client-ip.js";
9
11
  export { createLogger } from "./runtime/logger.js";
10
12
  export type { Logger as PinoLogger } from "./runtime/logger.js";
11
13
  export { setupGracefulShutdown } from "./runtime/shutdown.js";
@@ -51,13 +53,19 @@ export { mapErrorToStatus } from "./kernel/error-mapper.js";
51
53
  export { canTransition, assertTransition, orderStateMachine, extendOrderStateMachine, } from "./kernel/state-machine/machine.js";
52
54
  export type { PaymentAdapter, PaymentCapture, PaymentIntent, PaymentRefund, PaymentWebhookEvent, } from "./modules/payments/adapter.js";
53
55
  export type { StorageAdapter } from "./modules/media/adapter.js";
56
+ export { noopStorageAdapter } from "./modules/media/noop-adapter.js";
54
57
  export type { SearchAdapter, SearchDocument, SearchFilters, SearchHit, SearchQueryParams, SearchQueryResult, SearchSuggestParams, } from "./modules/search/adapter.js";
55
58
  export type { DatabaseAdapter } from "./kernel/database/adapter.js";
56
59
  export { createTxContext, reuseOrCreateTxContext, withTransaction, } from "./kernel/database/tx-context.js";
57
60
  export type { TxContext, WithTransactionOptions, } from "./kernel/database/tx-context.js";
58
61
  export type { TaxAdapter, TaxAddress, TaxCalculationParams, TaxCalculationResult, TaxLineItem, TaxReportParams, TaxVoidParams, } from "./modules/tax/adapter.js";
59
- export { getSchema, buildSchema, getTableNames } from "./kernel/database/migrate.js";
62
+ export { getSchema, buildSchema, getTableNames, getSchemaFiles, pushSchema, } from "./kernel/database/migrate.js";
60
63
  export { consoleEmailAdapter } from "./adapters/console-email.js";
64
+ export { promotionTypeEnum, type PromotionType } from "./modules/promotions/schemas.js";
65
+ export { parseJson, err } from "./interfaces/rest/parse-json.js";
66
+ export type { ValidationIssue, ErrorDetails } from "./interfaces/rest/parse-json.js";
67
+ export { auditMiddleware } from "./interfaces/rest/audit-middleware.js";
68
+ export type { AuditVars } from "./interfaces/rest/audit-middleware.js";
61
69
  export { runCompensationChain } from "./kernel/compensation/executor.js";
62
70
  export type { CompensationContext, Step, } from "./kernel/compensation/types.js";
63
71
  export { createRepository } from "./kernel/factory/repository-factory.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ export { router } from "./interfaces/rest/router.js";
4
4
  export { webhookRouter } from "./interfaces/rest/webhook-router.js";
5
5
  export { isPrivateUrl, isPrivateIp } from "./modules/webhooks/ssrf-guard.js";
6
6
  export { createServer } from "./runtime/server.js";
7
+ export { createClientIpResolver } from "./runtime/client-ip.js";
7
8
  export { createLogger } from "./runtime/logger.js";
8
9
  export { setupGracefulShutdown } from "./runtime/shutdown.js";
9
10
  export { createKernel } from "./runtime/kernel.js";
@@ -30,9 +31,13 @@ export { withTiming } from "./kernel/service-timing.js";
30
31
  export { CommerceNotFoundError, CommerceValidationError, CommerceForbiddenError, CommerceConflictError, CommerceInvalidTransitionError, OrgResolutionError, } from "./kernel/errors.js";
31
32
  export { mapErrorToStatus } from "./kernel/error-mapper.js";
32
33
  export { canTransition, assertTransition, orderStateMachine, extendOrderStateMachine, } from "./kernel/state-machine/machine.js";
34
+ export { noopStorageAdapter } from "./modules/media/noop-adapter.js";
33
35
  export { createTxContext, reuseOrCreateTxContext, withTransaction, } from "./kernel/database/tx-context.js";
34
- export { getSchema, buildSchema, getTableNames } from "./kernel/database/migrate.js";
36
+ export { getSchema, buildSchema, getTableNames, getSchemaFiles, pushSchema, } from "./kernel/database/migrate.js";
35
37
  export { consoleEmailAdapter } from "./adapters/console-email.js";
38
+ export { promotionTypeEnum } from "./modules/promotions/schemas.js";
39
+ export { parseJson, err } from "./interfaces/rest/parse-json.js";
40
+ export { auditMiddleware } from "./interfaces/rest/audit-middleware.js";
36
41
  export { runCompensationChain } from "./kernel/compensation/executor.js";
37
42
  export { createRepository } from "./kernel/factory/repository-factory.js";
38
43
  export { defaultCartItemMatcher } from "./modules/cart/matcher.js";
@@ -0,0 +1,46 @@
1
+ import type { MiddlewareHandler } from "hono";
2
+ import type { Kernel } from "../../runtime/kernel-types.js";
3
+ /**
4
+ * Hono context variables a handler can set to override the audit defaults.
5
+ * Add to your app's Env Variables to get type-safe `c.set(...)` calls.
6
+ */
7
+ export interface AuditVars {
8
+ /** Override the derived event name. */
9
+ auditEvent: string;
10
+ /** Override the audit payload (defaults to `{}`). */
11
+ auditPayload: Record<string, unknown>;
12
+ /** Override the derived entity type. */
13
+ auditEntityType: string;
14
+ /** Override the derived entity id. */
15
+ auditEntityId: string;
16
+ /** Set to skip the audit write for this request entirely. */
17
+ auditSkip: boolean;
18
+ }
19
+ /**
20
+ * Middleware that writes exactly one `commerce_audit_log` row per successful
21
+ * (2xx) state-changing request, so every porulle app gets audit-by-default
22
+ * without per-route boilerplate.
23
+ *
24
+ * ```ts
25
+ * app.use("*", auditMiddleware(kernel));
26
+ * ```
27
+ *
28
+ * Handlers may override the derived defaults via context variables
29
+ * (see {@link AuditVars}):
30
+ *
31
+ * ```ts
32
+ * c.set("auditEvent", "refund.manager_override");
33
+ * c.set("auditEntityType", "order");
34
+ * c.set("auditEntityId", orderId);
35
+ * c.set("auditSkip", true); // opt out
36
+ * ```
37
+ *
38
+ * Behavior:
39
+ * - GET/HEAD/OPTIONS and non-2xx responses never write a row.
40
+ * - entityId derivation: handler override → first UUID in the path →
41
+ * `data.id` peeked from the JSON response body → `"n/a"`.
42
+ * - event default: `<verb>:<path-with-uuids-as-:id>`.
43
+ * - Writes are best-effort — a failed audit write never affects the response.
44
+ */
45
+ export declare function auditMiddleware(kernel: Kernel): MiddlewareHandler;
46
+ //# sourceMappingURL=audit-middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-middleware.d.ts","sourceRoot":"","sources":["../../../src/interfaces/rest/audit-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAK9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAE5D;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,wCAAwC;IACxC,eAAe,EAAE,MAAM,CAAC;IACxB,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,SAAS,EAAE,OAAO,CAAC;CACpB;AAaD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAgDjE"}
@@ -0,0 +1,82 @@
1
+ import { createHookContext } from "../../kernel/hooks/create-context.js";
2
+ const UUID_RE = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i;
3
+ const UUID_RE_GLOBAL = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi;
4
+ const MUTATING = new Set(["POST", "PUT", "PATCH", "DELETE"]);
5
+ /** First non-`api` path segment, normalized (e.g. `/api/pos/customers/...` → `pos`). */
6
+ function deriveEntityType(path) {
7
+ const segments = path.split("/").filter(Boolean);
8
+ const start = segments[0] === "api" ? 1 : 0;
9
+ return segments[start] ?? "unknown";
10
+ }
11
+ /**
12
+ * Middleware that writes exactly one `commerce_audit_log` row per successful
13
+ * (2xx) state-changing request, so every porulle app gets audit-by-default
14
+ * without per-route boilerplate.
15
+ *
16
+ * ```ts
17
+ * app.use("*", auditMiddleware(kernel));
18
+ * ```
19
+ *
20
+ * Handlers may override the derived defaults via context variables
21
+ * (see {@link AuditVars}):
22
+ *
23
+ * ```ts
24
+ * c.set("auditEvent", "refund.manager_override");
25
+ * c.set("auditEntityType", "order");
26
+ * c.set("auditEntityId", orderId);
27
+ * c.set("auditSkip", true); // opt out
28
+ * ```
29
+ *
30
+ * Behavior:
31
+ * - GET/HEAD/OPTIONS and non-2xx responses never write a row.
32
+ * - entityId derivation: handler override → first UUID in the path →
33
+ * `data.id` peeked from the JSON response body → `"n/a"`.
34
+ * - event default: `<verb>:<path-with-uuids-as-:id>`.
35
+ * - Writes are best-effort — a failed audit write never affects the response.
36
+ */
37
+ export function auditMiddleware(kernel) {
38
+ return async (c, next) => {
39
+ await next();
40
+ const method = c.req.method.toUpperCase();
41
+ if (!MUTATING.has(method))
42
+ return;
43
+ const status = c.res.status;
44
+ if (status < 200 || status >= 300)
45
+ return;
46
+ if (c.get("auditSkip") === true)
47
+ return;
48
+ const path = c.req.path;
49
+ const event = c.get("auditEvent") ??
50
+ `${method.toLowerCase()}:${path.replace(UUID_RE_GLOBAL, ":id")}`;
51
+ const entityType = c.get("auditEntityType") ?? deriveEntityType(path);
52
+ const payload = c.get("auditPayload") ?? {};
53
+ let entityId = c.get("auditEntityId") ?? path.match(UUID_RE)?.[0];
54
+ if (!entityId) {
55
+ // Peek the response body (a clone — the original stream is untouched).
56
+ try {
57
+ const body = (await c.res.clone().json());
58
+ if (typeof body?.data?.id === "string")
59
+ entityId = body.data.id;
60
+ }
61
+ catch {
62
+ // non-JSON / empty body — fall through to "n/a"
63
+ }
64
+ }
65
+ entityId ??= "n/a";
66
+ try {
67
+ const requestId = c.get("requestId");
68
+ const ctx = createHookContext({
69
+ actor: c.get("actor") ?? null,
70
+ ...(requestId ? { requestId } : {}),
71
+ logger: kernel.logger,
72
+ services: kernel.services,
73
+ database: { db: kernel.database.db },
74
+ origin: "rest",
75
+ });
76
+ await kernel.services.audit.record({ entityType, entityId, event, payload, ctx });
77
+ }
78
+ catch {
79
+ // Best-effort: a transient audit-write failure must not bubble to the response.
80
+ }
81
+ };
82
+ }
@@ -0,0 +1,39 @@
1
+ import type { Context } from "hono";
2
+ import type { z } from "zod";
3
+ /**
4
+ * A single field-level validation failure. Shape is stable across the API
5
+ * so clients can bind form errors without ad-hoc parsing.
6
+ */
7
+ export interface ValidationIssue {
8
+ /** Dotted path to the offending field (e.g. "address.zip"). Empty for whole-body errors. */
9
+ path: string;
10
+ /** Human-readable message. */
11
+ message: string;
12
+ /** Machine code (zod issue code, or "invalid_json"). */
13
+ code: string;
14
+ }
15
+ /** The error envelope's optional `details` payload. */
16
+ export interface ErrorDetails {
17
+ issues?: ValidationIssue[];
18
+ [key: string]: unknown;
19
+ }
20
+ /**
21
+ * Build the uniform error envelope `{ error: { code, message, details? } }`.
22
+ * `details` is omitted when not provided so existing responses are unchanged.
23
+ */
24
+ export declare function err(c: Context, status: 400 | 401 | 403 | 404 | 409 | 422 | 500, code: string, message: string, details?: ErrorDetails): Response;
25
+ /**
26
+ * Parse and validate a request body against a Zod schema.
27
+ *
28
+ * Returns the typed value on success, or a 422 `Response` (the uniform error
29
+ * envelope, with `details.issues[]` populated from the Zod failure) that the
30
+ * caller returns as-is. Replaces the unsafe `(await c.req.json()) as T` cast.
31
+ *
32
+ * ```ts
33
+ * const body = await parseJson(c, MyBodySchema);
34
+ * if (body instanceof Response) return body;
35
+ * // body is z.infer<typeof MyBodySchema>
36
+ * ```
37
+ */
38
+ export declare function parseJson<S extends z.ZodType>(c: Context, schema: S): Promise<z.infer<S> | Response>;
39
+ //# sourceMappingURL=parse-json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-json.d.ts","sourceRoot":"","sources":["../../../src/interfaces/rest/parse-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,4FAA4F;IAC5F,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,uDAAuD;AACvD,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,GAAG,CACjB,CAAC,EAAE,OAAO,EACV,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAC/C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,GACrB,QAAQ,CAKV;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EACjD,CAAC,EAAE,OAAO,EACV,MAAM,EAAE,CAAC,GACR,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAyBhC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Build the uniform error envelope `{ error: { code, message, details? } }`.
3
+ * `details` is omitted when not provided so existing responses are unchanged.
4
+ */
5
+ export function err(c, status, code, message, details) {
6
+ return c.json({ error: { code, message, ...(details ? { details } : {}) } }, status);
7
+ }
8
+ /**
9
+ * Parse and validate a request body against a Zod schema.
10
+ *
11
+ * Returns the typed value on success, or a 422 `Response` (the uniform error
12
+ * envelope, with `details.issues[]` populated from the Zod failure) that the
13
+ * caller returns as-is. Replaces the unsafe `(await c.req.json()) as T` cast.
14
+ *
15
+ * ```ts
16
+ * const body = await parseJson(c, MyBodySchema);
17
+ * if (body instanceof Response) return body;
18
+ * // body is z.infer<typeof MyBodySchema>
19
+ * ```
20
+ */
21
+ export async function parseJson(c, schema) {
22
+ let raw;
23
+ try {
24
+ raw = await c.req.json();
25
+ }
26
+ catch {
27
+ return err(c, 422, "VALIDATION_FAILED", "Request body must be valid JSON.", {
28
+ issues: [{ path: "", message: "Request body must be valid JSON.", code: "invalid_json" }],
29
+ });
30
+ }
31
+ const result = schema.safeParse(raw);
32
+ if (!result.success) {
33
+ const issues = result.error.issues.map((issue) => ({
34
+ path: issue.path.map(String).join("."),
35
+ message: issue.message,
36
+ code: issue.code,
37
+ }));
38
+ const first = issues[0];
39
+ const message = first
40
+ ? `${first.path ? `${first.path}: ` : ""}${first.message}`
41
+ : "Validation failed.";
42
+ return err(c, 422, "VALIDATION_FAILED", message, { issues });
43
+ }
44
+ return result.data;
45
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AA4CzD,OAAO,EACL,KAAK,MAAM,EAMZ,MAAM,aAAa,CAAC;AAErB,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,gCAqc3C"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AA8CzD,OAAO,EACL,KAAK,MAAM,EAMZ,MAAM,aAAa,CAAC;AAErB,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,gCAud3C"}
@@ -1,5 +1,5 @@
1
1
  import { OpenAPIHono } from "@hono/zod-openapi";
2
- import { listEntitiesRoute, getEntityRoute, getEntityAttributesRoute, listCategoriesRoute, listBrandsRoute, deleteEntityRoute, deleteCategoryRoute, deleteBrandRoute, removeEntityFromCategoryRoute, removeEntityFromBrandRoute, publishEntityRoute, archiveEntityRoute, discontinueEntityRoute, addEntityToCategoryRoute, addEntityToBrandRoute, createEntityRoute, updateEntityRoute, setEntityAttributesRoute, createCategoryRoute, updateCategoryRoute, createBrandRoute, updateBrandRoute, createOptionTypeRoute, createOptionValueRoute, createVariantRoute, generateVariantsRoute, } from "../schemas/catalog.js";
2
+ import { listEntitiesRoute, getEntityRoute, getEntityAttributesRoute, listCategoriesRoute, listBrandsRoute, deleteEntityRoute, deleteCategoryRoute, deleteBrandRoute, removeEntityFromCategoryRoute, removeEntityFromBrandRoute, publishEntityRoute, archiveEntityRoute, discontinueEntityRoute, addEntityToCategoryRoute, addEntityToBrandRoute, createEntityRoute, updateEntityRoute, setEntityAttributesRoute, createCategoryRoute, archiveCategoryRoute, restoreCategoryRoute, updateCategoryRoute, createBrandRoute, updateBrandRoute, createOptionTypeRoute, createOptionValueRoute, createVariantRoute, generateVariantsRoute, } from "../schemas/catalog.js";
3
3
  import { mapErrorToResponse, mapErrorToStatus, parseInclude, parsePagination, parseSort, } from "../utils.js";
4
4
  export function catalogRoutes(kernel) {
5
5
  const router = new OpenAPIHono();
@@ -154,7 +154,22 @@ export function catalogRoutes(kernel) {
154
154
  });
155
155
  // @ts-expect-error -- openapi handler union return type
156
156
  router.openapi(listCategoriesRoute, async (c) => {
157
- const result = await kernel.services.catalog.listCategories({ actor: c.get("actor"), tx: null, requestId: "" });
157
+ const includeArchived = c.req.query("includeArchived") === "true";
158
+ const result = await kernel.services.catalog.listCategories({ actor: c.get("actor"), tx: null, requestId: "" }, { includeArchived });
159
+ if (!result.ok)
160
+ return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
161
+ return c.json({ data: result.value });
162
+ });
163
+ // @ts-expect-error -- openapi handler union return type
164
+ router.openapi(archiveCategoryRoute, async (c) => {
165
+ const result = await kernel.services.catalog.archiveCategory(c.req.param("categoryId"), c.get("actor"));
166
+ if (!result.ok)
167
+ return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
168
+ return c.json({ data: result.value });
169
+ });
170
+ // @ts-expect-error -- openapi handler union return type
171
+ router.openapi(restoreCategoryRoute, async (c) => {
172
+ const result = await kernel.services.catalog.restoreCategory(c.req.param("categoryId"), c.get("actor"));
158
173
  if (!result.ok)
159
174
  return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
160
175
  return c.json({ data: result.value });
@@ -1 +1 @@
1
- {"version":3,"file":"customers.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/customers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAQzD,OAAO,EAAE,KAAK,MAAM,EAAsE,MAAM,aAAa,CAAC;AAE9G,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,gCAwF5C"}
1
+ {"version":3,"file":"customers.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/customers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAazD,OAAO,EAAE,KAAK,MAAM,EAAoF,MAAM,aAAa,CAAC;AAE5H,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,gCAgJ5C"}
@@ -1,6 +1,6 @@
1
1
  import { OpenAPIHono } from "@hono/zod-openapi";
2
- import { listCustomersRoute, getCustomerRoute, updateCustomerRoute, getCustomerOrdersRoute, getCustomerAddressesRoute, } from "../schemas/customers.js";
3
- import { mapErrorToResponse, mapErrorToStatus, parsePagination, requirePerm } from "../utils.js";
2
+ import { listCustomersRoute, createCustomerRoute, getCustomerRoute, updateCustomerRoute, getCustomerOrdersRoute, getCustomerAddressesRoute, listInteractionsRoute, createInteractionRoute, updateInteractionRoute, deleteInteractionRoute, } from "../schemas/customers.js";
3
+ import { mapErrorToResponse, mapErrorToStatus, parsePagination, parseInclude, requirePerm } from "../utils.js";
4
4
  export function customerRoutes(kernel) {
5
5
  const router = new OpenAPIHono();
6
6
  // All customer admin routes require authentication + customers:read
@@ -25,6 +25,14 @@ export function customerRoutes(kernel) {
25
25
  });
26
26
  });
27
27
  // @ts-expect-error -- openapi handler union return type
28
+ router.openapi(createCustomerRoute, async (c) => {
29
+ const body = c.req.valid("json");
30
+ const result = await kernel.services.customers.createWalkIn(body, c.get("actor"));
31
+ if (!result.ok)
32
+ return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
33
+ return c.json({ data: result.value }, 201);
34
+ });
35
+ // @ts-expect-error -- openapi handler union return type
28
36
  router.openapi(getCustomerRoute, async (c) => {
29
37
  const { id } = c.req.valid("param");
30
38
  const actor = c.get("actor");
@@ -45,7 +53,10 @@ export function customerRoutes(kernel) {
45
53
  if (v !== undefined)
46
54
  updates[k] = v;
47
55
  }
48
- const result = await kernel.services.customers.update(id, updates, actor);
56
+ const replaceMetadata = c.req.query("metadataReplace") === "true";
57
+ const result = await kernel.services.customers.update(id, updates, actor, undefined, {
58
+ replaceMetadata,
59
+ });
49
60
  if (!result.ok)
50
61
  return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
51
62
  return c.json({ data: result.value });
@@ -56,9 +67,18 @@ export function customerRoutes(kernel) {
56
67
  const actor = c.get("actor");
57
68
  const { page, limit } = parsePagination(c.req.query());
58
69
  const status = c.req.query("status") || undefined;
59
- const result = await kernel.services.orders.listByCustomer(id, { page, limit, ...(status ? { status } : {}) }, actor);
70
+ const includeTotals = parseInclude(c.req.query("include")).has("totals");
71
+ const result = await kernel.services.orders.listByCustomer(id, { page, limit, ...(status ? { status } : {}), ...(includeTotals ? { includeTotals: true } : {}) }, actor);
60
72
  if (!result.ok)
61
73
  return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
74
+ if (includeTotals) {
75
+ // Wrapped shape: { data: { items, totals } } (+ pagination meta).
76
+ return c.json({
77
+ data: { items: result.value.items, totals: result.value.totals },
78
+ meta: { pagination: result.value.pagination },
79
+ });
80
+ }
81
+ // Default (back-compat): flat array.
62
82
  return c.json({ data: result.value.items, meta: { pagination: result.value.pagination } });
63
83
  });
64
84
  // @ts-expect-error -- openapi handler union return type
@@ -74,5 +94,40 @@ export function customerRoutes(kernel) {
74
94
  return c.json(mapErrorToResponse(addressResult.error), mapErrorToStatus(addressResult.error));
75
95
  return c.json({ data: addressResult.value });
76
96
  });
97
+ // ─── Customer interactions (#3) ──────────────────────────────────────────
98
+ // @ts-expect-error -- openapi handler union return type
99
+ router.openapi(listInteractionsRoute, async (c) => {
100
+ const { id } = c.req.valid("param");
101
+ const result = await kernel.services.customers.listInteractions(id, c.get("actor"));
102
+ if (!result.ok)
103
+ return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
104
+ return c.json({ data: result.value });
105
+ });
106
+ // @ts-expect-error -- openapi handler union return type
107
+ router.openapi(createInteractionRoute, async (c) => {
108
+ const { id } = c.req.valid("param");
109
+ const body = c.req.valid("json");
110
+ const result = await kernel.services.customers.createInteraction(id, body, c.get("actor"));
111
+ if (!result.ok)
112
+ return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
113
+ return c.json({ data: result.value }, 201);
114
+ });
115
+ // @ts-expect-error -- openapi handler union return type
116
+ router.openapi(updateInteractionRoute, async (c) => {
117
+ const { id, iid } = c.req.valid("param");
118
+ const body = c.req.valid("json");
119
+ const result = await kernel.services.customers.updateInteraction(id, iid, body, c.get("actor"));
120
+ if (!result.ok)
121
+ return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
122
+ return c.json({ data: result.value });
123
+ });
124
+ // @ts-expect-error -- openapi handler union return type
125
+ router.openapi(deleteInteractionRoute, async (c) => {
126
+ const { id, iid } = c.req.valid("param");
127
+ const result = await kernel.services.customers.deleteInteraction(id, iid, c.get("actor"));
128
+ if (!result.ok)
129
+ return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
130
+ return c.json({ data: { deleted: true } });
131
+ });
77
132
  return router;
78
133
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/inventory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAUzD,OAAO,EAAE,KAAK,MAAM,EAAqD,MAAM,aAAa,CAAC;AAE7F,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,gCA+E7C"}
1
+ {"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/inventory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAUzD,OAAO,EAAE,KAAK,MAAM,EAAqD,MAAM,aAAa,CAAC;AAE7F,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,gCAiF7C"}
@@ -32,10 +32,12 @@ export function inventoryRoutes(kernel) {
32
32
  // @ts-expect-error -- openapi handler union return type
33
33
  router.openapi(inventoryAdjustRoute, async (c) => {
34
34
  const body = c.req.valid("json");
35
- const result = await kernel.services.inventory.adjust(body, c.get("actor"));
35
+ const result = await kernel.services.inventory.adjustDetailed(body, c.get("actor"));
36
36
  if (!result.ok)
37
37
  return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
38
- return c.json({ data: result.value });
38
+ const { level, before, after, delta, movementId } = result.value;
39
+ // Additive: level fields (back-compat) plus before/after/delta/movementId.
40
+ return c.json({ data: { ...level, before, after, delta, movementId } });
39
41
  });
40
42
  // @ts-expect-error -- openapi handler union return type
41
43
  router.openapi(inventoryReserveRoute, async (c) => {