@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.
- package/.medusa/server/src/admin/index.js +22 -0
- package/.medusa/server/src/admin/index.mjs +23 -0
- package/.medusa/server/src/api/acp/checkout_sessions/[id]/cancel/route.d.ts +3 -0
- package/.medusa/server/src/api/acp/checkout_sessions/[id]/cancel/route.d.ts.map +1 -0
- package/.medusa/server/src/api/acp/checkout_sessions/[id]/cancel/route.js +39 -0
- package/.medusa/server/src/api/acp/checkout_sessions/[id]/cancel/route.js.map +1 -0
- package/.medusa/server/src/api/acp/checkout_sessions/[id]/complete/route.d.ts +3 -0
- package/.medusa/server/src/api/acp/checkout_sessions/[id]/complete/route.d.ts.map +1 -0
- package/.medusa/server/src/api/acp/checkout_sessions/[id]/complete/route.js +73 -0
- package/.medusa/server/src/api/acp/checkout_sessions/[id]/complete/route.js.map +1 -0
- package/.medusa/server/src/api/acp/checkout_sessions/[id]/route.d.ts +4 -0
- package/.medusa/server/src/api/acp/checkout_sessions/[id]/route.d.ts.map +1 -0
- package/.medusa/server/src/api/acp/checkout_sessions/[id]/route.js +107 -0
- package/.medusa/server/src/api/acp/checkout_sessions/[id]/route.js.map +1 -0
- package/.medusa/server/src/api/acp/checkout_sessions/route.d.ts +3 -0
- package/.medusa/server/src/api/acp/checkout_sessions/route.d.ts.map +1 -0
- package/.medusa/server/src/api/acp/checkout_sessions/route.js +70 -0
- package/.medusa/server/src/api/acp/checkout_sessions/route.js.map +1 -0
- package/.medusa/server/src/api/acp/orders/[id]/route.d.ts +3 -0
- package/.medusa/server/src/api/acp/orders/[id]/route.d.ts.map +1 -0
- package/.medusa/server/src/api/acp/orders/[id]/route.js +37 -0
- package/.medusa/server/src/api/acp/orders/[id]/route.js.map +1 -0
- package/.medusa/server/src/api/acp/product-feed/route.d.ts +3 -0
- package/.medusa/server/src/api/acp/product-feed/route.d.ts.map +1 -0
- package/.medusa/server/src/api/acp/product-feed/route.js +57 -0
- package/.medusa/server/src/api/acp/product-feed/route.js.map +1 -0
- package/.medusa/server/src/api/middleware/idempotency.d.ts +21 -0
- package/.medusa/server/src/api/middleware/idempotency.d.ts.map +1 -0
- package/.medusa/server/src/api/middleware/idempotency.js +184 -0
- package/.medusa/server/src/api/middleware/idempotency.js.map +1 -0
- package/.medusa/server/src/api/middlewares.d.ts +3 -0
- package/.medusa/server/src/api/middlewares.d.ts.map +1 -0
- package/.medusa/server/src/api/middlewares.js +309 -0
- package/.medusa/server/src/api/middlewares.js.map +1 -0
- package/.medusa/server/src/api/ucp/carts/[id]/cancel/route.d.ts +3 -0
- package/.medusa/server/src/api/ucp/carts/[id]/cancel/route.d.ts.map +1 -0
- package/.medusa/server/src/api/ucp/carts/[id]/cancel/route.js +39 -0
- package/.medusa/server/src/api/ucp/carts/[id]/cancel/route.js.map +1 -0
- package/.medusa/server/src/api/ucp/carts/[id]/route.d.ts +4 -0
- package/.medusa/server/src/api/ucp/carts/[id]/route.d.ts.map +1 -0
- package/.medusa/server/src/api/ucp/carts/[id]/route.js +96 -0
- package/.medusa/server/src/api/ucp/carts/[id]/route.js.map +1 -0
- package/.medusa/server/src/api/ucp/carts/route.d.ts +3 -0
- package/.medusa/server/src/api/ucp/carts/route.d.ts.map +1 -0
- package/.medusa/server/src/api/ucp/carts/route.js +52 -0
- package/.medusa/server/src/api/ucp/carts/route.js.map +1 -0
- package/.medusa/server/src/api/ucp/catalog/lookup/route.d.ts +3 -0
- package/.medusa/server/src/api/ucp/catalog/lookup/route.d.ts.map +1 -0
- package/.medusa/server/src/api/ucp/catalog/lookup/route.js +66 -0
- package/.medusa/server/src/api/ucp/catalog/lookup/route.js.map +1 -0
- package/.medusa/server/src/api/ucp/catalog/search/route.d.ts +3 -0
- package/.medusa/server/src/api/ucp/catalog/search/route.d.ts.map +1 -0
- package/.medusa/server/src/api/ucp/catalog/search/route.js +84 -0
- package/.medusa/server/src/api/ucp/catalog/search/route.js.map +1 -0
- package/.medusa/server/src/api/ucp/checkout-sessions/[id]/cancel/route.d.ts +3 -0
- package/.medusa/server/src/api/ucp/checkout-sessions/[id]/cancel/route.d.ts.map +1 -0
- package/.medusa/server/src/api/ucp/checkout-sessions/[id]/cancel/route.js +40 -0
- package/.medusa/server/src/api/ucp/checkout-sessions/[id]/cancel/route.js.map +1 -0
- package/.medusa/server/src/api/ucp/checkout-sessions/[id]/complete/route.d.ts +3 -0
- package/.medusa/server/src/api/ucp/checkout-sessions/[id]/complete/route.d.ts.map +1 -0
- package/.medusa/server/src/api/ucp/checkout-sessions/[id]/complete/route.js +77 -0
- package/.medusa/server/src/api/ucp/checkout-sessions/[id]/complete/route.js.map +1 -0
- package/.medusa/server/src/api/ucp/checkout-sessions/[id]/route.d.ts +4 -0
- package/.medusa/server/src/api/ucp/checkout-sessions/[id]/route.d.ts.map +1 -0
- package/.medusa/server/src/api/ucp/checkout-sessions/[id]/route.js +110 -0
- package/.medusa/server/src/api/ucp/checkout-sessions/[id]/route.js.map +1 -0
- package/.medusa/server/src/api/ucp/checkout-sessions/route.d.ts +3 -0
- package/.medusa/server/src/api/ucp/checkout-sessions/route.d.ts.map +1 -0
- package/.medusa/server/src/api/ucp/checkout-sessions/route.js +71 -0
- package/.medusa/server/src/api/ucp/checkout-sessions/route.js.map +1 -0
- package/.medusa/server/src/api/ucp/orders/[id]/route.d.ts +3 -0
- package/.medusa/server/src/api/ucp/orders/[id]/route.d.ts.map +1 -0
- package/.medusa/server/src/api/ucp/orders/[id]/route.js +38 -0
- package/.medusa/server/src/api/ucp/orders/[id]/route.js.map +1 -0
- package/.medusa/server/src/api/validation-schemas.d.ts +992 -0
- package/.medusa/server/src/api/validation-schemas.d.ts.map +1 -0
- package/.medusa/server/src/api/validation-schemas.js +200 -0
- package/.medusa/server/src/api/validation-schemas.js.map +1 -0
- package/.medusa/server/src/api/well-known/acp.json/route.d.ts +3 -0
- package/.medusa/server/src/api/well-known/acp.json/route.d.ts.map +1 -0
- package/.medusa/server/src/api/well-known/acp.json/route.js +44 -0
- package/.medusa/server/src/api/well-known/acp.json/route.js.map +1 -0
- package/.medusa/server/src/api/well-known/ucp/route.d.ts +3 -0
- package/.medusa/server/src/api/well-known/ucp/route.d.ts.map +1 -0
- package/.medusa/server/src/api/well-known/ucp/route.js +34 -0
- package/.medusa/server/src/api/well-known/ucp/route.js.map +1 -0
- package/.medusa/server/src/index.d.ts +51 -0
- package/.medusa/server/src/index.d.ts.map +1 -0
- package/.medusa/server/src/index.js +81 -0
- package/.medusa/server/src/index.js.map +1 -0
- package/.medusa/server/src/jobs/sync-product-feed.d.ts +16 -0
- package/.medusa/server/src/jobs/sync-product-feed.d.ts.map +1 -0
- package/.medusa/server/src/jobs/sync-product-feed.js +78 -0
- package/.medusa/server/src/jobs/sync-product-feed.js.map +1 -0
- package/.medusa/server/src/lib/address-translator.d.ts +40 -0
- package/.medusa/server/src/lib/address-translator.d.ts.map +1 -0
- package/.medusa/server/src/lib/address-translator.js +79 -0
- package/.medusa/server/src/lib/address-translator.js.map +1 -0
- package/.medusa/server/src/lib/cart-fields.d.ts +10 -0
- package/.medusa/server/src/lib/cart-fields.d.ts.map +1 -0
- package/.medusa/server/src/lib/cart-fields.js +42 -0
- package/.medusa/server/src/lib/cart-fields.js.map +1 -0
- package/.medusa/server/src/lib/error-formatters.d.ts +38 -0
- package/.medusa/server/src/lib/error-formatters.d.ts.map +1 -0
- package/.medusa/server/src/lib/error-formatters.js +42 -0
- package/.medusa/server/src/lib/error-formatters.js.map +1 -0
- package/.medusa/server/src/lib/formatters/acp.d.ts +108 -0
- package/.medusa/server/src/lib/formatters/acp.d.ts.map +1 -0
- package/.medusa/server/src/lib/formatters/acp.js +158 -0
- package/.medusa/server/src/lib/formatters/acp.js.map +1 -0
- package/.medusa/server/src/lib/formatters/types.d.ts +19 -0
- package/.medusa/server/src/lib/formatters/types.d.ts.map +1 -0
- package/.medusa/server/src/lib/formatters/types.js +15 -0
- package/.medusa/server/src/lib/formatters/types.js.map +1 -0
- package/.medusa/server/src/lib/formatters/ucp.d.ts +123 -0
- package/.medusa/server/src/lib/formatters/ucp.d.ts.map +1 -0
- package/.medusa/server/src/lib/formatters/ucp.js +226 -0
- package/.medusa/server/src/lib/formatters/ucp.js.map +1 -0
- package/.medusa/server/src/lib/order-fields.d.ts +6 -0
- package/.medusa/server/src/lib/order-fields.d.ts.map +1 -0
- package/.medusa/server/src/lib/order-fields.js +29 -0
- package/.medusa/server/src/lib/order-fields.js.map +1 -0
- package/.medusa/server/src/lib/payment-handler-registry.d.ts +58 -0
- package/.medusa/server/src/lib/payment-handler-registry.d.ts.map +1 -0
- package/.medusa/server/src/lib/payment-handler-registry.js +150 -0
- package/.medusa/server/src/lib/payment-handler-registry.js.map +1 -0
- package/.medusa/server/src/lib/public-url.d.ts +12 -0
- package/.medusa/server/src/lib/public-url.d.ts.map +1 -0
- package/.medusa/server/src/lib/public-url.js +14 -0
- package/.medusa/server/src/lib/public-url.js.map +1 -0
- package/.medusa/server/src/lib/status-maps.d.ts +7 -0
- package/.medusa/server/src/lib/status-maps.d.ts.map +1 -0
- package/.medusa/server/src/lib/status-maps.js +43 -0
- package/.medusa/server/src/lib/status-maps.js.map +1 -0
- package/.medusa/server/src/modules/agentic-commerce/index.d.ts +7 -0
- package/.medusa/server/src/modules/agentic-commerce/index.d.ts.map +1 -0
- package/.medusa/server/src/modules/agentic-commerce/index.js +13 -0
- package/.medusa/server/src/modules/agentic-commerce/index.js.map +1 -0
- package/.medusa/server/src/modules/agentic-commerce/service.d.ts +294 -0
- package/.medusa/server/src/modules/agentic-commerce/service.d.ts.map +1 -0
- package/.medusa/server/src/modules/agentic-commerce/service.js +206 -0
- package/.medusa/server/src/modules/agentic-commerce/service.js.map +1 -0
- package/.medusa/server/src/subscribers/order-placed-webhook.d.ts +16 -0
- package/.medusa/server/src/subscribers/order-placed-webhook.d.ts.map +1 -0
- package/.medusa/server/src/subscribers/order-placed-webhook.js +83 -0
- package/.medusa/server/src/subscribers/order-placed-webhook.js.map +1 -0
- package/.medusa/server/src/types/payment-handler-adapter.d.ts +92 -0
- package/.medusa/server/src/types/payment-handler-adapter.d.ts.map +1 -0
- package/.medusa/server/src/types/payment-handler-adapter.js +34 -0
- package/.medusa/server/src/types/payment-handler-adapter.js.map +1 -0
- package/.medusa/server/src/workflows/cancel-checkout-session.d.ts +9 -0
- package/.medusa/server/src/workflows/cancel-checkout-session.d.ts.map +1 -0
- package/.medusa/server/src/workflows/cancel-checkout-session.js +53 -0
- package/.medusa/server/src/workflows/cancel-checkout-session.js.map +1 -0
- package/.medusa/server/src/workflows/complete-checkout-session.d.ts +23 -0
- package/.medusa/server/src/workflows/complete-checkout-session.d.ts.map +1 -0
- package/.medusa/server/src/workflows/complete-checkout-session.js +44 -0
- package/.medusa/server/src/workflows/complete-checkout-session.js.map +1 -0
- package/.medusa/server/src/workflows/create-checkout-session.d.ts +20 -0
- package/.medusa/server/src/workflows/create-checkout-session.d.ts.map +1 -0
- package/.medusa/server/src/workflows/create-checkout-session.js +65 -0
- package/.medusa/server/src/workflows/create-checkout-session.js.map +1 -0
- package/.medusa/server/src/workflows/index.d.ts +5 -0
- package/.medusa/server/src/workflows/index.d.ts.map +1 -0
- package/.medusa/server/src/workflows/index.js +15 -0
- package/.medusa/server/src/workflows/index.js.map +1 -0
- package/.medusa/server/src/workflows/steps/ensure-shipping-method.d.ts +10 -0
- package/.medusa/server/src/workflows/steps/ensure-shipping-method.d.ts.map +1 -0
- package/.medusa/server/src/workflows/steps/ensure-shipping-method.js +50 -0
- package/.medusa/server/src/workflows/steps/ensure-shipping-method.js.map +1 -0
- package/.medusa/server/src/workflows/steps/setup-payment.d.ts +21 -0
- package/.medusa/server/src/workflows/steps/setup-payment.d.ts.map +1 -0
- package/.medusa/server/src/workflows/steps/setup-payment.js +88 -0
- package/.medusa/server/src/workflows/steps/setup-payment.js.map +1 -0
- package/.medusa/server/src/workflows/steps/validate-checkout-prerequisites.d.ts +9 -0
- package/.medusa/server/src/workflows/steps/validate-checkout-prerequisites.d.ts.map +1 -0
- package/.medusa/server/src/workflows/steps/validate-checkout-prerequisites.js +34 -0
- package/.medusa/server/src/workflows/steps/validate-checkout-prerequisites.js.map +1 -0
- package/.medusa/server/src/workflows/update-checkout-session.d.ts +22 -0
- package/.medusa/server/src/workflows/update-checkout-session.d.ts.map +1 -0
- package/.medusa/server/src/workflows/update-checkout-session.js +103 -0
- package/.medusa/server/src/workflows/update-checkout-session.js.map +1 -0
- package/LICENSE +21 -0
- package/README.md +356 -0
- 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"}
|