@financedistrict/medusa-plugin-agentic-commerce 0.1.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 (185) hide show
  1. package/.medusa/server/src/admin/index.js +22 -0
  2. package/.medusa/server/src/admin/index.mjs +23 -0
  3. package/.medusa/server/src/api/acp/checkout_sessions/[id]/cancel/route.d.ts +3 -0
  4. package/.medusa/server/src/api/acp/checkout_sessions/[id]/cancel/route.d.ts.map +1 -0
  5. package/.medusa/server/src/api/acp/checkout_sessions/[id]/cancel/route.js +39 -0
  6. package/.medusa/server/src/api/acp/checkout_sessions/[id]/cancel/route.js.map +1 -0
  7. package/.medusa/server/src/api/acp/checkout_sessions/[id]/complete/route.d.ts +3 -0
  8. package/.medusa/server/src/api/acp/checkout_sessions/[id]/complete/route.d.ts.map +1 -0
  9. package/.medusa/server/src/api/acp/checkout_sessions/[id]/complete/route.js +73 -0
  10. package/.medusa/server/src/api/acp/checkout_sessions/[id]/complete/route.js.map +1 -0
  11. package/.medusa/server/src/api/acp/checkout_sessions/[id]/route.d.ts +4 -0
  12. package/.medusa/server/src/api/acp/checkout_sessions/[id]/route.d.ts.map +1 -0
  13. package/.medusa/server/src/api/acp/checkout_sessions/[id]/route.js +107 -0
  14. package/.medusa/server/src/api/acp/checkout_sessions/[id]/route.js.map +1 -0
  15. package/.medusa/server/src/api/acp/checkout_sessions/route.d.ts +3 -0
  16. package/.medusa/server/src/api/acp/checkout_sessions/route.d.ts.map +1 -0
  17. package/.medusa/server/src/api/acp/checkout_sessions/route.js +70 -0
  18. package/.medusa/server/src/api/acp/checkout_sessions/route.js.map +1 -0
  19. package/.medusa/server/src/api/acp/orders/[id]/route.d.ts +3 -0
  20. package/.medusa/server/src/api/acp/orders/[id]/route.d.ts.map +1 -0
  21. package/.medusa/server/src/api/acp/orders/[id]/route.js +37 -0
  22. package/.medusa/server/src/api/acp/orders/[id]/route.js.map +1 -0
  23. package/.medusa/server/src/api/acp/product-feed/route.d.ts +3 -0
  24. package/.medusa/server/src/api/acp/product-feed/route.d.ts.map +1 -0
  25. package/.medusa/server/src/api/acp/product-feed/route.js +57 -0
  26. package/.medusa/server/src/api/acp/product-feed/route.js.map +1 -0
  27. package/.medusa/server/src/api/middleware/idempotency.d.ts +21 -0
  28. package/.medusa/server/src/api/middleware/idempotency.d.ts.map +1 -0
  29. package/.medusa/server/src/api/middleware/idempotency.js +184 -0
  30. package/.medusa/server/src/api/middleware/idempotency.js.map +1 -0
  31. package/.medusa/server/src/api/middlewares.d.ts +3 -0
  32. package/.medusa/server/src/api/middlewares.d.ts.map +1 -0
  33. package/.medusa/server/src/api/middlewares.js +309 -0
  34. package/.medusa/server/src/api/middlewares.js.map +1 -0
  35. package/.medusa/server/src/api/ucp/carts/[id]/cancel/route.d.ts +3 -0
  36. package/.medusa/server/src/api/ucp/carts/[id]/cancel/route.d.ts.map +1 -0
  37. package/.medusa/server/src/api/ucp/carts/[id]/cancel/route.js +39 -0
  38. package/.medusa/server/src/api/ucp/carts/[id]/cancel/route.js.map +1 -0
  39. package/.medusa/server/src/api/ucp/carts/[id]/route.d.ts +4 -0
  40. package/.medusa/server/src/api/ucp/carts/[id]/route.d.ts.map +1 -0
  41. package/.medusa/server/src/api/ucp/carts/[id]/route.js +96 -0
  42. package/.medusa/server/src/api/ucp/carts/[id]/route.js.map +1 -0
  43. package/.medusa/server/src/api/ucp/carts/route.d.ts +3 -0
  44. package/.medusa/server/src/api/ucp/carts/route.d.ts.map +1 -0
  45. package/.medusa/server/src/api/ucp/carts/route.js +52 -0
  46. package/.medusa/server/src/api/ucp/carts/route.js.map +1 -0
  47. package/.medusa/server/src/api/ucp/catalog/lookup/route.d.ts +3 -0
  48. package/.medusa/server/src/api/ucp/catalog/lookup/route.d.ts.map +1 -0
  49. package/.medusa/server/src/api/ucp/catalog/lookup/route.js +66 -0
  50. package/.medusa/server/src/api/ucp/catalog/lookup/route.js.map +1 -0
  51. package/.medusa/server/src/api/ucp/catalog/search/route.d.ts +3 -0
  52. package/.medusa/server/src/api/ucp/catalog/search/route.d.ts.map +1 -0
  53. package/.medusa/server/src/api/ucp/catalog/search/route.js +84 -0
  54. package/.medusa/server/src/api/ucp/catalog/search/route.js.map +1 -0
  55. package/.medusa/server/src/api/ucp/checkout-sessions/[id]/cancel/route.d.ts +3 -0
  56. package/.medusa/server/src/api/ucp/checkout-sessions/[id]/cancel/route.d.ts.map +1 -0
  57. package/.medusa/server/src/api/ucp/checkout-sessions/[id]/cancel/route.js +40 -0
  58. package/.medusa/server/src/api/ucp/checkout-sessions/[id]/cancel/route.js.map +1 -0
  59. package/.medusa/server/src/api/ucp/checkout-sessions/[id]/complete/route.d.ts +3 -0
  60. package/.medusa/server/src/api/ucp/checkout-sessions/[id]/complete/route.d.ts.map +1 -0
  61. package/.medusa/server/src/api/ucp/checkout-sessions/[id]/complete/route.js +77 -0
  62. package/.medusa/server/src/api/ucp/checkout-sessions/[id]/complete/route.js.map +1 -0
  63. package/.medusa/server/src/api/ucp/checkout-sessions/[id]/route.d.ts +4 -0
  64. package/.medusa/server/src/api/ucp/checkout-sessions/[id]/route.d.ts.map +1 -0
  65. package/.medusa/server/src/api/ucp/checkout-sessions/[id]/route.js +110 -0
  66. package/.medusa/server/src/api/ucp/checkout-sessions/[id]/route.js.map +1 -0
  67. package/.medusa/server/src/api/ucp/checkout-sessions/route.d.ts +3 -0
  68. package/.medusa/server/src/api/ucp/checkout-sessions/route.d.ts.map +1 -0
  69. package/.medusa/server/src/api/ucp/checkout-sessions/route.js +71 -0
  70. package/.medusa/server/src/api/ucp/checkout-sessions/route.js.map +1 -0
  71. package/.medusa/server/src/api/ucp/orders/[id]/route.d.ts +3 -0
  72. package/.medusa/server/src/api/ucp/orders/[id]/route.d.ts.map +1 -0
  73. package/.medusa/server/src/api/ucp/orders/[id]/route.js +38 -0
  74. package/.medusa/server/src/api/ucp/orders/[id]/route.js.map +1 -0
  75. package/.medusa/server/src/api/validation-schemas.d.ts +992 -0
  76. package/.medusa/server/src/api/validation-schemas.d.ts.map +1 -0
  77. package/.medusa/server/src/api/validation-schemas.js +200 -0
  78. package/.medusa/server/src/api/validation-schemas.js.map +1 -0
  79. package/.medusa/server/src/api/well-known/acp.json/route.d.ts +3 -0
  80. package/.medusa/server/src/api/well-known/acp.json/route.d.ts.map +1 -0
  81. package/.medusa/server/src/api/well-known/acp.json/route.js +44 -0
  82. package/.medusa/server/src/api/well-known/acp.json/route.js.map +1 -0
  83. package/.medusa/server/src/api/well-known/ucp/route.d.ts +3 -0
  84. package/.medusa/server/src/api/well-known/ucp/route.d.ts.map +1 -0
  85. package/.medusa/server/src/api/well-known/ucp/route.js +34 -0
  86. package/.medusa/server/src/api/well-known/ucp/route.js.map +1 -0
  87. package/.medusa/server/src/index.d.ts +51 -0
  88. package/.medusa/server/src/index.d.ts.map +1 -0
  89. package/.medusa/server/src/index.js +81 -0
  90. package/.medusa/server/src/index.js.map +1 -0
  91. package/.medusa/server/src/jobs/sync-product-feed.d.ts +16 -0
  92. package/.medusa/server/src/jobs/sync-product-feed.d.ts.map +1 -0
  93. package/.medusa/server/src/jobs/sync-product-feed.js +78 -0
  94. package/.medusa/server/src/jobs/sync-product-feed.js.map +1 -0
  95. package/.medusa/server/src/lib/address-translator.d.ts +40 -0
  96. package/.medusa/server/src/lib/address-translator.d.ts.map +1 -0
  97. package/.medusa/server/src/lib/address-translator.js +79 -0
  98. package/.medusa/server/src/lib/address-translator.js.map +1 -0
  99. package/.medusa/server/src/lib/cart-fields.d.ts +10 -0
  100. package/.medusa/server/src/lib/cart-fields.d.ts.map +1 -0
  101. package/.medusa/server/src/lib/cart-fields.js +42 -0
  102. package/.medusa/server/src/lib/cart-fields.js.map +1 -0
  103. package/.medusa/server/src/lib/error-formatters.d.ts +38 -0
  104. package/.medusa/server/src/lib/error-formatters.d.ts.map +1 -0
  105. package/.medusa/server/src/lib/error-formatters.js +42 -0
  106. package/.medusa/server/src/lib/error-formatters.js.map +1 -0
  107. package/.medusa/server/src/lib/formatters/acp.d.ts +108 -0
  108. package/.medusa/server/src/lib/formatters/acp.d.ts.map +1 -0
  109. package/.medusa/server/src/lib/formatters/acp.js +158 -0
  110. package/.medusa/server/src/lib/formatters/acp.js.map +1 -0
  111. package/.medusa/server/src/lib/formatters/types.d.ts +19 -0
  112. package/.medusa/server/src/lib/formatters/types.d.ts.map +1 -0
  113. package/.medusa/server/src/lib/formatters/types.js +15 -0
  114. package/.medusa/server/src/lib/formatters/types.js.map +1 -0
  115. package/.medusa/server/src/lib/formatters/ucp.d.ts +123 -0
  116. package/.medusa/server/src/lib/formatters/ucp.d.ts.map +1 -0
  117. package/.medusa/server/src/lib/formatters/ucp.js +226 -0
  118. package/.medusa/server/src/lib/formatters/ucp.js.map +1 -0
  119. package/.medusa/server/src/lib/order-fields.d.ts +6 -0
  120. package/.medusa/server/src/lib/order-fields.d.ts.map +1 -0
  121. package/.medusa/server/src/lib/order-fields.js +29 -0
  122. package/.medusa/server/src/lib/order-fields.js.map +1 -0
  123. package/.medusa/server/src/lib/payment-handler-registry.d.ts +58 -0
  124. package/.medusa/server/src/lib/payment-handler-registry.d.ts.map +1 -0
  125. package/.medusa/server/src/lib/payment-handler-registry.js +150 -0
  126. package/.medusa/server/src/lib/payment-handler-registry.js.map +1 -0
  127. package/.medusa/server/src/lib/public-url.d.ts +12 -0
  128. package/.medusa/server/src/lib/public-url.d.ts.map +1 -0
  129. package/.medusa/server/src/lib/public-url.js +14 -0
  130. package/.medusa/server/src/lib/public-url.js.map +1 -0
  131. package/.medusa/server/src/lib/status-maps.d.ts +7 -0
  132. package/.medusa/server/src/lib/status-maps.d.ts.map +1 -0
  133. package/.medusa/server/src/lib/status-maps.js +43 -0
  134. package/.medusa/server/src/lib/status-maps.js.map +1 -0
  135. package/.medusa/server/src/modules/agentic-commerce/index.d.ts +7 -0
  136. package/.medusa/server/src/modules/agentic-commerce/index.d.ts.map +1 -0
  137. package/.medusa/server/src/modules/agentic-commerce/index.js +13 -0
  138. package/.medusa/server/src/modules/agentic-commerce/index.js.map +1 -0
  139. package/.medusa/server/src/modules/agentic-commerce/service.d.ts +294 -0
  140. package/.medusa/server/src/modules/agentic-commerce/service.d.ts.map +1 -0
  141. package/.medusa/server/src/modules/agentic-commerce/service.js +206 -0
  142. package/.medusa/server/src/modules/agentic-commerce/service.js.map +1 -0
  143. package/.medusa/server/src/subscribers/order-placed-webhook.d.ts +16 -0
  144. package/.medusa/server/src/subscribers/order-placed-webhook.d.ts.map +1 -0
  145. package/.medusa/server/src/subscribers/order-placed-webhook.js +83 -0
  146. package/.medusa/server/src/subscribers/order-placed-webhook.js.map +1 -0
  147. package/.medusa/server/src/types/payment-handler-adapter.d.ts +92 -0
  148. package/.medusa/server/src/types/payment-handler-adapter.d.ts.map +1 -0
  149. package/.medusa/server/src/types/payment-handler-adapter.js +34 -0
  150. package/.medusa/server/src/types/payment-handler-adapter.js.map +1 -0
  151. package/.medusa/server/src/workflows/cancel-checkout-session.d.ts +9 -0
  152. package/.medusa/server/src/workflows/cancel-checkout-session.d.ts.map +1 -0
  153. package/.medusa/server/src/workflows/cancel-checkout-session.js +53 -0
  154. package/.medusa/server/src/workflows/cancel-checkout-session.js.map +1 -0
  155. package/.medusa/server/src/workflows/complete-checkout-session.d.ts +23 -0
  156. package/.medusa/server/src/workflows/complete-checkout-session.d.ts.map +1 -0
  157. package/.medusa/server/src/workflows/complete-checkout-session.js +44 -0
  158. package/.medusa/server/src/workflows/complete-checkout-session.js.map +1 -0
  159. package/.medusa/server/src/workflows/create-checkout-session.d.ts +20 -0
  160. package/.medusa/server/src/workflows/create-checkout-session.d.ts.map +1 -0
  161. package/.medusa/server/src/workflows/create-checkout-session.js +65 -0
  162. package/.medusa/server/src/workflows/create-checkout-session.js.map +1 -0
  163. package/.medusa/server/src/workflows/index.d.ts +5 -0
  164. package/.medusa/server/src/workflows/index.d.ts.map +1 -0
  165. package/.medusa/server/src/workflows/index.js +15 -0
  166. package/.medusa/server/src/workflows/index.js.map +1 -0
  167. package/.medusa/server/src/workflows/steps/ensure-shipping-method.d.ts +10 -0
  168. package/.medusa/server/src/workflows/steps/ensure-shipping-method.d.ts.map +1 -0
  169. package/.medusa/server/src/workflows/steps/ensure-shipping-method.js +50 -0
  170. package/.medusa/server/src/workflows/steps/ensure-shipping-method.js.map +1 -0
  171. package/.medusa/server/src/workflows/steps/setup-payment.d.ts +21 -0
  172. package/.medusa/server/src/workflows/steps/setup-payment.d.ts.map +1 -0
  173. package/.medusa/server/src/workflows/steps/setup-payment.js +88 -0
  174. package/.medusa/server/src/workflows/steps/setup-payment.js.map +1 -0
  175. package/.medusa/server/src/workflows/steps/validate-checkout-prerequisites.d.ts +9 -0
  176. package/.medusa/server/src/workflows/steps/validate-checkout-prerequisites.d.ts.map +1 -0
  177. package/.medusa/server/src/workflows/steps/validate-checkout-prerequisites.js +34 -0
  178. package/.medusa/server/src/workflows/steps/validate-checkout-prerequisites.js.map +1 -0
  179. package/.medusa/server/src/workflows/update-checkout-session.d.ts +22 -0
  180. package/.medusa/server/src/workflows/update-checkout-session.d.ts.map +1 -0
  181. package/.medusa/server/src/workflows/update-checkout-session.js +103 -0
  182. package/.medusa/server/src/workflows/update-checkout-session.js.map +1 -0
  183. package/LICENSE +21 -0
  184. package/README.md +356 -0
  185. package/package.json +59 -0
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ /**
3
+ * Bidirectional address translation between Medusa internal format
4
+ * and protocol-specific formats (ACP, UCP).
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.medusaToAcpAddress = medusaToAcpAddress;
8
+ exports.acpAddressToMedusa = acpAddressToMedusa;
9
+ exports.medusaToUcpAddress = medusaToUcpAddress;
10
+ exports.ucpAddressToMedusa = ucpAddressToMedusa;
11
+ // --- Medusa <-> ACP ---
12
+ function medusaToAcpAddress(addr) {
13
+ const nameParts = [addr.first_name, addr.last_name].filter(Boolean);
14
+ return {
15
+ name: nameParts.length > 0 ? nameParts.join(" ") : undefined,
16
+ line_one: addr.address_1 || undefined,
17
+ line_two: addr.address_2 || undefined,
18
+ city: addr.city || undefined,
19
+ state: addr.province || undefined,
20
+ postal_code: addr.postal_code || undefined,
21
+ country: addr.country_code || undefined,
22
+ phone_number: addr.phone || undefined,
23
+ };
24
+ }
25
+ function acpAddressToMedusa(addr) {
26
+ let firstName;
27
+ let lastName;
28
+ if (addr.name) {
29
+ const parts = addr.name.trim().split(/\s+/);
30
+ firstName = parts[0];
31
+ lastName = parts.length > 1 ? parts.slice(1).join(" ") : undefined;
32
+ }
33
+ return {
34
+ first_name: firstName,
35
+ last_name: lastName,
36
+ address_1: addr.line_one || undefined,
37
+ address_2: addr.line_two || undefined,
38
+ city: addr.city || undefined,
39
+ province: addr.state || undefined,
40
+ postal_code: addr.postal_code || undefined,
41
+ country_code: addr.country || undefined,
42
+ phone: addr.phone_number || undefined,
43
+ };
44
+ }
45
+ // --- Medusa <-> UCP ---
46
+ function medusaToUcpAddress(addr) {
47
+ const nameParts = [addr.first_name, addr.last_name].filter(Boolean);
48
+ return {
49
+ name: nameParts.length > 0 ? nameParts.join(" ") : undefined,
50
+ line1: addr.address_1 || undefined,
51
+ line2: addr.address_2 || undefined,
52
+ city: addr.city || undefined,
53
+ state: addr.province || undefined,
54
+ postal_code: addr.postal_code || undefined,
55
+ country: addr.country_code || undefined,
56
+ phone: addr.phone || undefined,
57
+ };
58
+ }
59
+ function ucpAddressToMedusa(addr) {
60
+ let firstName;
61
+ let lastName;
62
+ if (addr.name) {
63
+ const parts = addr.name.trim().split(/\s+/);
64
+ firstName = parts[0];
65
+ lastName = parts.length > 1 ? parts.slice(1).join(" ") : undefined;
66
+ }
67
+ return {
68
+ first_name: firstName,
69
+ last_name: lastName,
70
+ address_1: addr.line1 || undefined,
71
+ address_2: addr.line2 || undefined,
72
+ city: addr.city || undefined,
73
+ province: addr.state || undefined,
74
+ postal_code: addr.postal_code || undefined,
75
+ country_code: addr.country || undefined,
76
+ phone: addr.phone || undefined,
77
+ };
78
+ }
79
+ //# sourceMappingURL=address-translator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address-translator.js","sourceRoot":"","sources":["../../../../src/lib/address-translator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Shared cart field constants for query.graph calls.
3
+ * Used by all checkout session workflows to ensure consistent data loading.
4
+ */
5
+ export declare const CHECKOUT_SESSION_CART_FIELDS: string[];
6
+ /**
7
+ * Minimal cart fields for status checks and validation.
8
+ */
9
+ export declare const CART_VALIDATION_FIELDS: string[];
10
+ //# sourceMappingURL=cart-fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-fields.d.ts","sourceRoot":"","sources":["../../../../src/lib/cart-fields.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,4BAA4B,UAmBxC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,UAUlC,CAAA"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CART_VALIDATION_FIELDS = exports.CHECKOUT_SESSION_CART_FIELDS = void 0;
4
+ /**
5
+ * Shared cart field constants for query.graph calls.
6
+ * Used by all checkout session workflows to ensure consistent data loading.
7
+ */
8
+ exports.CHECKOUT_SESSION_CART_FIELDS = [
9
+ "id",
10
+ "region_id",
11
+ "currency_code",
12
+ "email",
13
+ "completed_at",
14
+ "metadata",
15
+ "subtotal",
16
+ "total",
17
+ "tax_total",
18
+ "shipping_total",
19
+ "discount_total",
20
+ "items.*",
21
+ "items.variant.*",
22
+ "items.variant.product.*",
23
+ "shipping_address.*",
24
+ "shipping_methods.*",
25
+ "payment_collection.*",
26
+ "payment_collection.payment_sessions.*",
27
+ ];
28
+ /**
29
+ * Minimal cart fields for status checks and validation.
30
+ */
31
+ exports.CART_VALIDATION_FIELDS = [
32
+ "id",
33
+ "email",
34
+ "completed_at",
35
+ "metadata",
36
+ "items.id",
37
+ "shipping_address.id",
38
+ "shipping_methods.id",
39
+ "payment_collection.id",
40
+ "payment_collection.payment_sessions.*",
41
+ ];
42
+ //# sourceMappingURL=cart-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-fields.js","sourceRoot":"","sources":["../../../../src/lib/cart-fields.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,4BAA4B,GAAG;IAC1C,IAAI;IACJ,WAAW;IACX,eAAe;IACf,OAAO;IACP,cAAc;IACd,UAAU;IACV,UAAU;IACV,OAAO;IACP,WAAW;IACX,gBAAgB;IAChB,gBAAgB;IAChB,SAAS;IACT,iBAAiB;IACjB,yBAAyB;IACzB,oBAAoB;IACpB,oBAAoB;IACpB,sBAAsB;IACtB,uCAAuC;CACxC,CAAA;AAED;;GAEG;AACU,QAAA,sBAAsB,GAAG;IACpC,IAAI;IACJ,OAAO;IACP,cAAc;IACd,UAAU;IACV,UAAU;IACV,qBAAqB;IACrB,qBAAqB;IACrB,uBAAuB;IACvB,uCAAuC;CACxC,CAAA"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Protocol-specific error response formatters.
3
+ * Each protocol has a different error response schema.
4
+ */
5
+ export type AcpErrorType = "invalid_request" | "processing_error" | "service_unavailable";
6
+ export type AcpErrorResponse = {
7
+ type: AcpErrorType;
8
+ code: string;
9
+ message: string;
10
+ param?: string;
11
+ };
12
+ export declare function formatAcpError(params: {
13
+ type?: AcpErrorType;
14
+ code: string;
15
+ message: string;
16
+ param?: string;
17
+ httpStatus?: number;
18
+ }): AcpErrorResponse;
19
+ export declare function httpStatusToAcpType(status: number): AcpErrorType;
20
+ export type UcpErrorResponse = {
21
+ ucp: {
22
+ version: string;
23
+ status: "error";
24
+ };
25
+ messages: {
26
+ type: "error";
27
+ code: string;
28
+ content: string;
29
+ severity: string;
30
+ }[];
31
+ };
32
+ export declare function formatUcpError(params: {
33
+ ucpVersion: string;
34
+ code: string;
35
+ content: string;
36
+ severity?: string;
37
+ }): UcpErrorResponse;
38
+ //# sourceMappingURL=error-formatters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-formatters.d.ts","sourceRoot":"","sources":["../../../../src/lib/error-formatters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,qBAAqB,CAAA;AAEzF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,GAAG,gBAAgB,CAQnB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAIhE;AAKD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE;QACH,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,OAAO,CAAA;KAChB,CAAA;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,OAAO,CAAA;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;KACjB,EAAE,CAAA;CACJ,CAAA;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,gBAAgB,CAenB"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ /**
3
+ * Protocol-specific error response formatters.
4
+ * Each protocol has a different error response schema.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.formatAcpError = formatAcpError;
8
+ exports.httpStatusToAcpType = httpStatusToAcpType;
9
+ exports.formatUcpError = formatUcpError;
10
+ function formatAcpError(params) {
11
+ const type = params.type || httpStatusToAcpType(params.httpStatus || 500);
12
+ return {
13
+ type,
14
+ code: params.code,
15
+ message: params.message,
16
+ ...(params.param ? { param: params.param } : {}),
17
+ };
18
+ }
19
+ function httpStatusToAcpType(status) {
20
+ if (status >= 400 && status < 500)
21
+ return "invalid_request";
22
+ if (status === 503)
23
+ return "service_unavailable";
24
+ return "processing_error";
25
+ }
26
+ function formatUcpError(params) {
27
+ return {
28
+ ucp: {
29
+ version: params.ucpVersion,
30
+ status: "error",
31
+ },
32
+ messages: [
33
+ {
34
+ type: "error",
35
+ code: params.code,
36
+ content: params.content,
37
+ severity: params.severity || "error",
38
+ },
39
+ ],
40
+ };
41
+ }
42
+ //# sourceMappingURL=error-formatters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-formatters.js","sourceRoot":"","sources":["../../../../src/lib/error-formatters.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAcH,wCAcC;AAED,kDAIC;AAkBD,wCAoBC;AA1DD,SAAgB,cAAc,CAAC,MAM9B;IACC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,mBAAmB,CAAC,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,CAAA;IACzE,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjD,CAAA;AACH,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAc;IAChD,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;QAAE,OAAO,iBAAiB,CAAA;IAC3D,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,qBAAqB,CAAA;IAChD,OAAO,kBAAkB,CAAA;AAC3B,CAAC;AAkBD,SAAgB,cAAc,CAAC,MAK9B;IACC,OAAO;QACL,GAAG,EAAE;YACH,OAAO,EAAE,MAAM,CAAC,UAAU;YAC1B,MAAM,EAAE,OAAO;SAChB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,OAAO;aACrC;SACF;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * ACP Protocol Formatter
3
+ *
4
+ * Transforms Medusa internal objects into ACP-compliant response shapes.
5
+ * Spec: https://developers.fd.xyz/acp
6
+ */
7
+ import type { FormatterContext } from "./types";
8
+ export declare function formatAcpCheckoutSession(ctx: FormatterContext, cart: any, baseUrl: string): {
9
+ id: any;
10
+ status: string;
11
+ currency: any;
12
+ capabilities: {
13
+ payment: {
14
+ handlers: unknown[];
15
+ };
16
+ };
17
+ line_items: any;
18
+ totals: {
19
+ type: string;
20
+ display_text: string;
21
+ amount: number;
22
+ }[];
23
+ fulfillment_details: {
24
+ name: string | undefined;
25
+ email: any;
26
+ phone_number: any;
27
+ address: import("../address-translator").AcpAddress;
28
+ } | null;
29
+ fulfillment_options: any;
30
+ messages: {
31
+ type: "info";
32
+ content_type: string;
33
+ content: string;
34
+ }[];
35
+ links: {
36
+ type: string;
37
+ url: string;
38
+ }[];
39
+ };
40
+ export declare function formatAcpCompleteResponse(ctx: FormatterContext, cart: any, baseUrl: string, orderId: string | null, cartId: string): {
41
+ status: string;
42
+ order: {
43
+ id: string;
44
+ checkout_session_id: string;
45
+ permalink_url: string;
46
+ } | null;
47
+ id: any;
48
+ currency: any;
49
+ capabilities: {
50
+ payment: {
51
+ handlers: unknown[];
52
+ };
53
+ };
54
+ line_items: any;
55
+ totals: {
56
+ type: string;
57
+ display_text: string;
58
+ amount: number;
59
+ }[];
60
+ fulfillment_details: {
61
+ name: string | undefined;
62
+ email: any;
63
+ phone_number: any;
64
+ address: import("../address-translator").AcpAddress;
65
+ } | null;
66
+ fulfillment_options: any;
67
+ messages: {
68
+ type: "info";
69
+ content_type: string;
70
+ content: string;
71
+ }[];
72
+ links: {
73
+ type: string;
74
+ url: string;
75
+ }[];
76
+ };
77
+ export declare function formatAcpOrder(ctx: FormatterContext, order: any, baseUrl: string): {
78
+ id: any;
79
+ display_id: any;
80
+ checkout_session_id: any;
81
+ permalink_url: string;
82
+ status: any;
83
+ currency: any;
84
+ email: any;
85
+ line_items: any;
86
+ fulfillment_details: {
87
+ name: string | undefined;
88
+ email: any;
89
+ address: import("../address-translator").AcpAddress;
90
+ } | null;
91
+ totals: {
92
+ type: string;
93
+ display_text: string;
94
+ amount: number;
95
+ }[];
96
+ created_at: any;
97
+ updated_at: any;
98
+ messages: {
99
+ type: string;
100
+ content_type: string;
101
+ content: string;
102
+ }[];
103
+ links: {
104
+ type: string;
105
+ url: string;
106
+ }[];
107
+ };
108
+ //# sourceMappingURL=acp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../../../../src/lib/formatters/acp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAO/C,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsEzF;AAMD,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc1F;AAMD,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDhF"}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ /**
3
+ * ACP Protocol Formatter
4
+ *
5
+ * Transforms Medusa internal objects into ACP-compliant response shapes.
6
+ * Spec: https://developers.fd.xyz/acp
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.formatAcpCheckoutSession = formatAcpCheckoutSession;
10
+ exports.formatAcpCompleteResponse = formatAcpCompleteResponse;
11
+ exports.formatAcpOrder = formatAcpOrder;
12
+ const address_translator_1 = require("../address-translator");
13
+ const status_maps_1 = require("../status-maps");
14
+ const types_1 = require("./types");
15
+ // =====================================================
16
+ // Checkout Session
17
+ // =====================================================
18
+ function formatAcpCheckoutSession(ctx, cart, baseUrl) {
19
+ const currency = cart.currency_code || "eur";
20
+ const status = (0, status_maps_1.resolveAcpStatus)(cart);
21
+ const lineItems = (cart.items || []).map((item) => {
22
+ const unitAmount = (0, types_1.toMinor)(item.unit_price ?? item.raw_unit_price?.value ?? 0);
23
+ return {
24
+ id: item.id,
25
+ item: {
26
+ id: item.variant_id || item.id,
27
+ title: item.title || item.product_title || "",
28
+ price: { amount: unitAmount, currency },
29
+ },
30
+ quantity: item.quantity,
31
+ name: item.title || item.product_title || "",
32
+ unit_amount: unitAmount,
33
+ availability_status: "available",
34
+ totals: [
35
+ { type: "line_total", amount: unitAmount * item.quantity },
36
+ ],
37
+ };
38
+ });
39
+ const totals = [
40
+ { type: "subtotal", display_text: "Subtotal", amount: (0, types_1.toMinor)(cart.subtotal ?? cart.raw_subtotal?.value ?? 0) },
41
+ { type: "fulfillment", display_text: "Shipping", amount: (0, types_1.toMinor)(cart.shipping_total ?? cart.raw_shipping_total?.value ?? 0) },
42
+ { type: "tax", display_text: "Tax", amount: (0, types_1.toMinor)(cart.tax_total ?? cart.raw_tax_total?.value ?? 0) },
43
+ { type: "discount", display_text: "Discount", amount: (0, types_1.toMinor)(cart.discount_total ?? cart.raw_discount_total?.value ?? 0) },
44
+ { type: "total", display_text: "Total", amount: (0, types_1.toMinor)(cart.total ?? cart.raw_total?.value ?? 0) },
45
+ ];
46
+ const fulfillmentDetails = cart.shipping_address
47
+ ? {
48
+ name: [cart.shipping_address.first_name, cart.shipping_address.last_name].filter(Boolean).join(" ") || undefined,
49
+ email: cart.email || undefined,
50
+ phone_number: cart.shipping_address.phone || undefined,
51
+ address: (0, address_translator_1.medusaToAcpAddress)(cart.shipping_address),
52
+ }
53
+ : null;
54
+ const fulfillmentOptions = (cart.shipping_methods || []).map((sm) => ({
55
+ id: sm.id,
56
+ type: "shipping",
57
+ title: sm.name || sm.shipping_option?.name || "Standard Shipping",
58
+ totals: [
59
+ { type: "fulfillment", amount: (0, types_1.toMinor)(sm.amount ?? sm.raw_amount?.value ?? 0) },
60
+ ],
61
+ }));
62
+ return {
63
+ id: cart.id,
64
+ status,
65
+ currency,
66
+ capabilities: {
67
+ payment: {
68
+ handlers: ctx.paymentHandlers.getAcpCheckoutHandlers(cart.metadata),
69
+ },
70
+ },
71
+ line_items: lineItems,
72
+ totals,
73
+ fulfillment_details: fulfillmentDetails,
74
+ fulfillment_options: fulfillmentOptions,
75
+ messages: [
76
+ { type: "info", content_type: "text/plain", content: `Checkout session for ${ctx.storeName}` },
77
+ ],
78
+ links: [
79
+ { type: "terms_of_use", url: `${ctx.storefrontUrl}/terms` },
80
+ { type: "privacy_policy", url: `${ctx.storefrontUrl}/privacy` },
81
+ ],
82
+ };
83
+ }
84
+ // =====================================================
85
+ // Checkout Complete Response
86
+ // =====================================================
87
+ function formatAcpCompleteResponse(ctx, cart, baseUrl, orderId, cartId) {
88
+ const session = formatAcpCheckoutSession(ctx, cart, baseUrl);
89
+ return {
90
+ ...session,
91
+ status: "completed",
92
+ order: orderId
93
+ ? {
94
+ id: orderId,
95
+ checkout_session_id: cartId,
96
+ permalink_url: `${ctx.storefrontUrl}/orders/${orderId}`,
97
+ }
98
+ : null,
99
+ };
100
+ }
101
+ // =====================================================
102
+ // Order
103
+ // =====================================================
104
+ function formatAcpOrder(ctx, order, baseUrl) {
105
+ const currency = order.currency_code || "eur";
106
+ const lineItems = (order.items || []).map((item) => {
107
+ const unitAmount = (0, types_1.toMinor)(item.unit_price ?? item.raw_unit_price?.value ?? 0);
108
+ return {
109
+ id: item.id,
110
+ item: {
111
+ id: item.variant_id || item.variant?.id || item.id,
112
+ title: item.title || item.product_title || "",
113
+ price: { amount: unitAmount, currency },
114
+ },
115
+ quantity: item.quantity,
116
+ name: item.title || item.product_title || "",
117
+ unit_amount: unitAmount,
118
+ totals: [
119
+ { type: "line_total", amount: unitAmount * item.quantity },
120
+ ],
121
+ };
122
+ });
123
+ const totals = [
124
+ { type: "subtotal", display_text: "Subtotal", amount: (0, types_1.toMinor)(order.subtotal ?? order.raw_subtotal?.value ?? 0) },
125
+ { type: "fulfillment", display_text: "Shipping", amount: (0, types_1.toMinor)(order.shipping_total ?? order.raw_shipping_total?.value ?? 0) },
126
+ { type: "tax", display_text: "Tax", amount: (0, types_1.toMinor)(order.tax_total ?? order.raw_tax_total?.value ?? 0) },
127
+ { type: "discount", display_text: "Discount", amount: (0, types_1.toMinor)(order.discount_total ?? order.raw_discount_total?.value ?? 0) },
128
+ { type: "total", display_text: "Total", amount: (0, types_1.toMinor)(order.total ?? order.raw_total?.value ?? 0) },
129
+ ];
130
+ const fulfillmentDetails = order.shipping_address
131
+ ? {
132
+ name: [order.shipping_address.first_name, order.shipping_address.last_name].filter(Boolean).join(" ") || undefined,
133
+ email: order.email || undefined,
134
+ address: (0, address_translator_1.medusaToAcpAddress)(order.shipping_address),
135
+ }
136
+ : null;
137
+ return {
138
+ id: order.id,
139
+ display_id: order.display_id || null,
140
+ checkout_session_id: order.cart_id || null,
141
+ permalink_url: `${ctx.storefrontUrl}/orders/${order.id}`,
142
+ status: order.status || "pending",
143
+ currency,
144
+ email: order.email || null,
145
+ line_items: lineItems,
146
+ fulfillment_details: fulfillmentDetails,
147
+ totals,
148
+ created_at: order.created_at,
149
+ updated_at: order.updated_at,
150
+ messages: [
151
+ { type: "info", content_type: "text/plain", content: `Order ${order.display_id || order.id} from ${ctx.storeName}` },
152
+ ],
153
+ links: [
154
+ { type: "self", url: `${baseUrl}/${order.id}` },
155
+ ],
156
+ };
157
+ }
158
+ //# sourceMappingURL=acp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp.js","sourceRoot":"","sources":["../../../../../src/lib/formatters/acp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Shared types for protocol formatters.
3
+ *
4
+ * Formatters transform Medusa internal objects (carts, orders, products)
5
+ * into ACP or UCP protocol-compliant response shapes. They need store
6
+ * config and the payment handler service to do this.
7
+ */
8
+ import type { PaymentHandlerRegistry } from "../payment-handler-registry";
9
+ /** Configuration context passed to all formatters */
10
+ export type FormatterContext = {
11
+ storeName: string;
12
+ storefrontUrl: string;
13
+ ucpVersion: string;
14
+ acpVersion: string;
15
+ paymentHandlers: PaymentHandlerRegistry;
16
+ };
17
+ /** Convert Medusa amount (fractional units) to minor units (cents) */
18
+ export declare function toMinor(amount: number): number;
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/formatters/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEzE,qDAAqD;AACrD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,sBAAsB,CAAA;CACxC,CAAA;AAED,sEAAsE;AACtE,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE9C"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ /**
3
+ * Shared types for protocol formatters.
4
+ *
5
+ * Formatters transform Medusa internal objects (carts, orders, products)
6
+ * into ACP or UCP protocol-compliant response shapes. They need store
7
+ * config and the payment handler service to do this.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.toMinor = toMinor;
11
+ /** Convert Medusa amount (fractional units) to minor units (cents) */
12
+ function toMinor(amount) {
13
+ return Math.round(amount * 100);
14
+ }
15
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/lib/formatters/types.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAcH,0BAEC;AAHD,sEAAsE;AACtE,SAAgB,OAAO,CAAC,MAAc;IACpC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAA;AACjC,CAAC"}