@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 @@
|
|
|
1
|
+
{"version":3,"file":"validation-schemas.d.ts","sourceRoot":"","sources":["../../../../src/api/validation-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,yBAAyB,CAAA;AA4C3C,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBzC,CAAA;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAezC,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,gCAAgC;;;;;;gBAMrC,0DAA0D;;gBAE1D,qCAAqC;;gBAErC,sEAAsE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW5E,CAAA;AAKF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAezC,CAAA;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWzC,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,gCAAgC;;;;;;gBAMrC,0DAA0D;;gBAE1D,qCAAqC;;;;;;;;;;;;;;;;;;;;;;QAIzC,4FAA4F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK9F,CAAA;AAIF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa9B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU9B,CAAA;AAIF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW9B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;EAE9B,CAAA"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CatalogLookupSchema = exports.CatalogSearchSchema = exports.UpdateUcpCartSchema = exports.CreateUcpCartSchema = exports.CompleteUcpCheckoutSessionSchema = exports.UpdateUcpCheckoutSessionSchema = exports.CreateUcpCheckoutSessionSchema = exports.CompleteAcpCheckoutSessionSchema = exports.UpdateAcpCheckoutSessionSchema = exports.CreateAcpCheckoutSessionSchema = void 0;
|
|
4
|
+
const zod_1 = require("@medusajs/framework/zod");
|
|
5
|
+
// --- Shared schemas ---
|
|
6
|
+
// Medusa internal address format (used by workflows)
|
|
7
|
+
const MedusaAddressSchema = zod_1.z.object({
|
|
8
|
+
first_name: zod_1.z.string().optional(),
|
|
9
|
+
last_name: zod_1.z.string().optional(),
|
|
10
|
+
address_1: zod_1.z.string(),
|
|
11
|
+
address_2: zod_1.z.string().optional(),
|
|
12
|
+
city: zod_1.z.string(),
|
|
13
|
+
province: zod_1.z.string().optional(),
|
|
14
|
+
postal_code: zod_1.z.string(),
|
|
15
|
+
country_code: zod_1.z.string().min(2).max(2),
|
|
16
|
+
phone: zod_1.z.string().optional(),
|
|
17
|
+
});
|
|
18
|
+
// ACP address format (protocol-facing)
|
|
19
|
+
const AcpAddressSchema = zod_1.z.object({
|
|
20
|
+
name: zod_1.z.string().optional(),
|
|
21
|
+
line_one: zod_1.z.string(),
|
|
22
|
+
line_two: zod_1.z.string().optional(),
|
|
23
|
+
city: zod_1.z.string(),
|
|
24
|
+
state: zod_1.z.string().optional(),
|
|
25
|
+
postal_code: zod_1.z.string(),
|
|
26
|
+
country: zod_1.z.string().min(2).max(2),
|
|
27
|
+
phone_number: zod_1.z.string().optional(),
|
|
28
|
+
});
|
|
29
|
+
// UCP address format (protocol-facing)
|
|
30
|
+
const UcpAddressSchema = zod_1.z.object({
|
|
31
|
+
name: zod_1.z.string().optional(),
|
|
32
|
+
line1: zod_1.z.string(),
|
|
33
|
+
line2: zod_1.z.string().optional(),
|
|
34
|
+
city: zod_1.z.string(),
|
|
35
|
+
state: zod_1.z.string().optional(),
|
|
36
|
+
postal_code: zod_1.z.string(),
|
|
37
|
+
country: zod_1.z.string().min(2).max(2),
|
|
38
|
+
phone: zod_1.z.string().optional(),
|
|
39
|
+
});
|
|
40
|
+
// --- ACP schemas ---
|
|
41
|
+
// ACP uses items[].id (not variant_id), fulfillment_details (not fulfillment_address)
|
|
42
|
+
exports.CreateAcpCheckoutSessionSchema = zod_1.z.object({
|
|
43
|
+
items: zod_1.z.array(zod_1.z.object({
|
|
44
|
+
id: zod_1.z.string(),
|
|
45
|
+
quantity: zod_1.z.number().int().positive(),
|
|
46
|
+
})).min(1),
|
|
47
|
+
region_id: zod_1.z.string().optional(),
|
|
48
|
+
currency_code: zod_1.z.string().optional(),
|
|
49
|
+
buyer: zod_1.z.object({
|
|
50
|
+
email: zod_1.z.string().email(),
|
|
51
|
+
first_name: zod_1.z.string().optional(),
|
|
52
|
+
last_name: zod_1.z.string().optional(),
|
|
53
|
+
phone_number: zod_1.z.string().optional(),
|
|
54
|
+
}).optional(),
|
|
55
|
+
fulfillment_details: zod_1.z.object({
|
|
56
|
+
name: zod_1.z.string().optional(),
|
|
57
|
+
email: zod_1.z.string().email().optional(),
|
|
58
|
+
phone_number: zod_1.z.string().optional(),
|
|
59
|
+
address: AcpAddressSchema,
|
|
60
|
+
}).optional(),
|
|
61
|
+
webhook_url: zod_1.z.string().url().optional(),
|
|
62
|
+
});
|
|
63
|
+
exports.UpdateAcpCheckoutSessionSchema = zod_1.z.object({
|
|
64
|
+
items: zod_1.z.array(zod_1.z.object({
|
|
65
|
+
id: zod_1.z.string(),
|
|
66
|
+
quantity: zod_1.z.number().int().positive(),
|
|
67
|
+
})).optional(),
|
|
68
|
+
buyer: zod_1.z.object({
|
|
69
|
+
email: zod_1.z.string().email().optional(),
|
|
70
|
+
first_name: zod_1.z.string().optional(),
|
|
71
|
+
last_name: zod_1.z.string().optional(),
|
|
72
|
+
}).optional(),
|
|
73
|
+
fulfillment_details: zod_1.z.object({
|
|
74
|
+
name: zod_1.z.string().optional(),
|
|
75
|
+
address: AcpAddressSchema,
|
|
76
|
+
}).optional(),
|
|
77
|
+
fulfillment_option_id: zod_1.z.string().optional(),
|
|
78
|
+
});
|
|
79
|
+
/**
|
|
80
|
+
* ACP complete checkout schema.
|
|
81
|
+
* Instrument type is handler-defined — we accept "eip3009_authorization" for Prism.
|
|
82
|
+
* The credential contains the base64-encoded x402 PaymentAuthorizationResult.
|
|
83
|
+
*/
|
|
84
|
+
exports.CompleteAcpCheckoutSessionSchema = zod_1.z.object({
|
|
85
|
+
payment_data: zod_1.z.object({
|
|
86
|
+
handler_id: zod_1.z.string().optional(),
|
|
87
|
+
instrument: zod_1.z.object({
|
|
88
|
+
type: zod_1.z.string().optional(), // "eip3009_authorization" for Prism
|
|
89
|
+
credential: zod_1.z.object({
|
|
90
|
+
/** Base64-encoded x402 PaymentAuthorizationResult JSON */
|
|
91
|
+
authorization: zod_1.z.string().optional(),
|
|
92
|
+
/** x402 protocol version (1 or 2) */
|
|
93
|
+
x402_version: zod_1.z.number().int().optional(),
|
|
94
|
+
/** @deprecated Use authorization field. Kept for backwards compat. */
|
|
95
|
+
token: zod_1.z.string().optional(),
|
|
96
|
+
}).optional(),
|
|
97
|
+
}).optional(),
|
|
98
|
+
}).optional(),
|
|
99
|
+
buyer: zod_1.z.object({
|
|
100
|
+
email: zod_1.z.string().email().optional(),
|
|
101
|
+
first_name: zod_1.z.string().optional(),
|
|
102
|
+
last_name: zod_1.z.string().optional(),
|
|
103
|
+
}).optional(),
|
|
104
|
+
billing_address: AcpAddressSchema.optional(),
|
|
105
|
+
});
|
|
106
|
+
// --- UCP schemas ---
|
|
107
|
+
// UCP uses line_items[].item.id (not variant_id)
|
|
108
|
+
exports.CreateUcpCheckoutSessionSchema = zod_1.z.object({
|
|
109
|
+
line_items: zod_1.z.array(zod_1.z.object({
|
|
110
|
+
item: zod_1.z.object({ id: zod_1.z.string() }),
|
|
111
|
+
quantity: zod_1.z.number().int().positive(),
|
|
112
|
+
})).min(1),
|
|
113
|
+
context: zod_1.z.object({
|
|
114
|
+
country: zod_1.z.string().optional(),
|
|
115
|
+
region: zod_1.z.string().optional(),
|
|
116
|
+
currency: zod_1.z.string().optional(),
|
|
117
|
+
}).optional(),
|
|
118
|
+
buyer: zod_1.z.object({
|
|
119
|
+
email: zod_1.z.string().email().optional(),
|
|
120
|
+
name: zod_1.z.string().optional(),
|
|
121
|
+
}).optional(),
|
|
122
|
+
shipping_address: UcpAddressSchema.optional(),
|
|
123
|
+
});
|
|
124
|
+
exports.UpdateUcpCheckoutSessionSchema = zod_1.z.object({
|
|
125
|
+
line_items: zod_1.z.array(zod_1.z.object({
|
|
126
|
+
item: zod_1.z.object({ id: zod_1.z.string() }).optional(),
|
|
127
|
+
line_item_id: zod_1.z.string().optional(),
|
|
128
|
+
quantity: zod_1.z.number().int().min(0),
|
|
129
|
+
})).optional(),
|
|
130
|
+
buyer: zod_1.z.object({
|
|
131
|
+
email: zod_1.z.string().email().optional(),
|
|
132
|
+
name: zod_1.z.string().optional(),
|
|
133
|
+
}).optional(),
|
|
134
|
+
shipping_address: UcpAddressSchema.optional(),
|
|
135
|
+
});
|
|
136
|
+
/**
|
|
137
|
+
* UCP complete checkout schema.
|
|
138
|
+
* Uses the instrument model matching UCP spec — handler + instrument with credential.
|
|
139
|
+
*/
|
|
140
|
+
exports.CompleteUcpCheckoutSessionSchema = zod_1.z.object({
|
|
141
|
+
payment_credentials: zod_1.z.object({
|
|
142
|
+
handler: zod_1.z.string().optional(), // "xyz.fd.prism_payment"
|
|
143
|
+
instrument: zod_1.z.object({
|
|
144
|
+
type: zod_1.z.string().optional(), // "eip3009_authorization"
|
|
145
|
+
credential: zod_1.z.object({
|
|
146
|
+
/** Base64-encoded x402 PaymentAuthorizationResult JSON */
|
|
147
|
+
authorization: zod_1.z.string().optional(),
|
|
148
|
+
/** x402 protocol version (1 or 2) */
|
|
149
|
+
x402_version: zod_1.z.number().int().optional(),
|
|
150
|
+
}).optional(),
|
|
151
|
+
}).optional(),
|
|
152
|
+
/** @deprecated Legacy flat token field. Use instrument.credential.authorization instead. */
|
|
153
|
+
token: zod_1.z.string().optional(),
|
|
154
|
+
chain: zod_1.z.string().optional(),
|
|
155
|
+
currency: zod_1.z.string().optional(),
|
|
156
|
+
}).optional(),
|
|
157
|
+
});
|
|
158
|
+
// --- UCP Cart schemas ---
|
|
159
|
+
exports.CreateUcpCartSchema = zod_1.z.object({
|
|
160
|
+
line_items: zod_1.z.array(zod_1.z.object({
|
|
161
|
+
item: zod_1.z.object({ id: zod_1.z.string() }),
|
|
162
|
+
quantity: zod_1.z.number().int().positive(),
|
|
163
|
+
})).optional(),
|
|
164
|
+
context: zod_1.z.object({
|
|
165
|
+
country: zod_1.z.string().optional(),
|
|
166
|
+
region: zod_1.z.string().optional(),
|
|
167
|
+
currency: zod_1.z.string().optional(),
|
|
168
|
+
}).optional(),
|
|
169
|
+
buyer: zod_1.z.object({
|
|
170
|
+
email: zod_1.z.string().email().optional(),
|
|
171
|
+
}).optional(),
|
|
172
|
+
});
|
|
173
|
+
exports.UpdateUcpCartSchema = zod_1.z.object({
|
|
174
|
+
line_items: zod_1.z.array(zod_1.z.object({
|
|
175
|
+
item: zod_1.z.object({ id: zod_1.z.string() }).optional(),
|
|
176
|
+
line_item_id: zod_1.z.string().optional(),
|
|
177
|
+
quantity: zod_1.z.number().int().min(0),
|
|
178
|
+
})).optional(),
|
|
179
|
+
buyer: zod_1.z.object({
|
|
180
|
+
email: zod_1.z.string().email().optional(),
|
|
181
|
+
}).optional(),
|
|
182
|
+
shipping_address: UcpAddressSchema.optional(),
|
|
183
|
+
});
|
|
184
|
+
// --- UCP Catalog schemas ---
|
|
185
|
+
exports.CatalogSearchSchema = zod_1.z.object({
|
|
186
|
+
query: zod_1.z.string().optional(),
|
|
187
|
+
filters: zod_1.z.object({
|
|
188
|
+
category: zod_1.z.string().optional(),
|
|
189
|
+
min_price: zod_1.z.number().optional(),
|
|
190
|
+
max_price: zod_1.z.number().optional(),
|
|
191
|
+
}).optional(),
|
|
192
|
+
pagination: zod_1.z.object({
|
|
193
|
+
limit: zod_1.z.number().int().positive().max(100).optional().default(20),
|
|
194
|
+
offset: zod_1.z.number().int().min(0).optional().default(0),
|
|
195
|
+
}).optional(),
|
|
196
|
+
});
|
|
197
|
+
exports.CatalogLookupSchema = zod_1.z.object({
|
|
198
|
+
ids: zod_1.z.array(zod_1.z.string()).min(1),
|
|
199
|
+
});
|
|
200
|
+
//# sourceMappingURL=validation-schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-schemas.js","sourceRoot":"","sources":["../../../../src/api/validation-schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/api/well-known/acp.json/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAG7E,wBAAsB,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,iBAyChE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
const public_url_1 = require("../../../lib/public-url");
|
|
5
|
+
async function GET(req, res) {
|
|
6
|
+
const baseUrl = (0, public_url_1.getPublicBaseUrl)(req);
|
|
7
|
+
const agenticCommerceService = req.scope.resolve("agenticCommerce");
|
|
8
|
+
const paymentHandlers = agenticCommerceService.getPaymentHandlerService();
|
|
9
|
+
const acpVersion = agenticCommerceService.getAcpVersion();
|
|
10
|
+
// Fetch supported currencies from regions
|
|
11
|
+
let supportedCurrencies = ["eur"];
|
|
12
|
+
try {
|
|
13
|
+
const query = req.scope.resolve("query");
|
|
14
|
+
const { data: regions } = await query.graph({
|
|
15
|
+
entity: "region",
|
|
16
|
+
fields: ["currency_code"],
|
|
17
|
+
});
|
|
18
|
+
if (regions.length > 0) {
|
|
19
|
+
supportedCurrencies = [...new Set(regions.map((r) => r.currency_code))];
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
// Fall back to default
|
|
24
|
+
}
|
|
25
|
+
const handlers = await paymentHandlers.getAcpDiscoveryHandlers();
|
|
26
|
+
res.json({
|
|
27
|
+
protocol: {
|
|
28
|
+
name: "acp",
|
|
29
|
+
version: acpVersion,
|
|
30
|
+
supported_versions: [acpVersion],
|
|
31
|
+
},
|
|
32
|
+
api_base_url: `${baseUrl}/acp`,
|
|
33
|
+
transports: ["rest"],
|
|
34
|
+
capabilities: {
|
|
35
|
+
services: ["checkout", "orders"],
|
|
36
|
+
payment: {
|
|
37
|
+
handlers,
|
|
38
|
+
},
|
|
39
|
+
supported_currencies: supportedCurrencies,
|
|
40
|
+
supported_locales: ["en"],
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../../src/api/well-known/acp.json/route.ts"],"names":[],"mappings":";;AAGA,kBAyCC;AA3CD,wDAA0D;AAEnD,KAAK,UAAU,GAAG,CAAC,GAAkB,EAAE,GAAmB;IAC/D,MAAM,OAAO,GAAG,IAAA,6BAAgB,EAAC,GAAG,CAAC,CAAA;IACrC,MAAM,sBAAsB,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAQ,CAAA;IAC1E,MAAM,eAAe,GAAG,sBAAsB,CAAC,wBAAwB,EAAE,CAAA;IAEzE,MAAM,UAAU,GAAG,sBAAsB,CAAC,aAAa,EAAE,CAAA;IAEzD,0CAA0C;IAC1C,IAAI,mBAAmB,GAAa,CAAC,KAAK,CAAC,CAAA;IAC3C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAQ,CAAA;QAC/C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC;YAC1C,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,CAAC,eAAe,CAAC;SAC1B,CAAC,CAAA;QACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,mBAAmB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAa,CAAA;QAC1F,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uBAAuB;IACzB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,uBAAuB,EAAE,CAAA;IAEhE,GAAG,CAAC,IAAI,CAAC;QACP,QAAQ,EAAE;YACR,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,UAAU;YACnB,kBAAkB,EAAE,CAAC,UAAU,CAAC;SACjC;QACD,YAAY,EAAE,GAAG,OAAO,MAAM;QAC9B,UAAU,EAAE,CAAC,MAAM,CAAC;QACpB,YAAY,EAAE;YACZ,QAAQ,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;YAChC,OAAO,EAAE;gBACP,QAAQ;aACT;YACD,oBAAoB,EAAE,mBAAmB;YACzC,iBAAiB,EAAE,CAAC,IAAI,CAAC;SAC1B;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/api/well-known/ucp/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAG7E,wBAAsB,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,iBAiChE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
const public_url_1 = require("../../../lib/public-url");
|
|
5
|
+
async function GET(req, res) {
|
|
6
|
+
const baseUrl = (0, public_url_1.getPublicBaseUrl)(req);
|
|
7
|
+
const agenticCommerceService = req.scope.resolve("agenticCommerce");
|
|
8
|
+
const paymentHandlers = agenticCommerceService.getPaymentHandlerService();
|
|
9
|
+
const ucpVersion = agenticCommerceService.getUcpVersion();
|
|
10
|
+
const handlers = await paymentHandlers.getUcpDiscoveryHandlers();
|
|
11
|
+
res.json({
|
|
12
|
+
ucp: {
|
|
13
|
+
version: ucpVersion,
|
|
14
|
+
services: {
|
|
15
|
+
"dev.ucp.shopping": [
|
|
16
|
+
{
|
|
17
|
+
version: ucpVersion,
|
|
18
|
+
transport: "rest",
|
|
19
|
+
endpoint: `${baseUrl}/ucp`,
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
capabilities: {
|
|
24
|
+
"dev.ucp.shopping.catalog.search": [{ version: ucpVersion }],
|
|
25
|
+
"dev.ucp.shopping.catalog.lookup": [{ version: ucpVersion }],
|
|
26
|
+
"dev.ucp.shopping.checkout": [{ version: ucpVersion }],
|
|
27
|
+
"dev.ucp.shopping.cart": [{ version: ucpVersion }],
|
|
28
|
+
"dev.ucp.shopping.order": [{ version: ucpVersion }],
|
|
29
|
+
},
|
|
30
|
+
payment_handlers: handlers,
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../../src/api/well-known/ucp/route.ts"],"names":[],"mappings":";;AAGA,kBAiCC;AAnCD,wDAA0D;AAEnD,KAAK,UAAU,GAAG,CAAC,GAAkB,EAAE,GAAmB;IAC/D,MAAM,OAAO,GAAG,IAAA,6BAAgB,EAAC,GAAG,CAAC,CAAA;IACrC,MAAM,sBAAsB,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAQ,CAAA;IAC1E,MAAM,eAAe,GAAG,sBAAsB,CAAC,wBAAwB,EAAE,CAAA;IAEzE,MAAM,UAAU,GAAG,sBAAsB,CAAC,aAAa,EAAE,CAAA;IACzD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,uBAAuB,EAAE,CAAA;IAEhE,GAAG,CAAC,IAAI,CAAC;QACP,GAAG,EAAE;YACH,OAAO,EAAE,UAAU;YAEnB,QAAQ,EAAE;gBACR,kBAAkB,EAAE;oBAClB;wBACE,OAAO,EAAE,UAAU;wBACnB,SAAS,EAAE,MAAM;wBACjB,QAAQ,EAAE,GAAG,OAAO,MAAM;qBAC3B;iBACF;aACF;YAED,YAAY,EAAE;gBACZ,iCAAiC,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;gBAC5D,iCAAiC,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;gBAC5D,2BAA2B,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;gBACtD,uBAAuB,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;gBAClD,wBAAwB,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;aACpD;YAED,gBAAgB,EAAE,QAAQ;SAC3B;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @financedistrict/medusa-plugin-agentic-commerce
|
|
3
|
+
*
|
|
4
|
+
* Agentic commerce plugin for Medusa v2 — adds UCP and ACP protocol support,
|
|
5
|
+
* enabling AI agents to browse, checkout, and pay at any Medusa storefront.
|
|
6
|
+
*
|
|
7
|
+
* This is the core protocol plugin. Payment handling is pluggable via the
|
|
8
|
+
* PaymentHandlerAdapter interface — install a payment handler plugin
|
|
9
|
+
* (e.g., @financedistrict/medusa-plugin-prism-payment for x402 stablecoins)
|
|
10
|
+
* and reference it in your config.
|
|
11
|
+
*
|
|
12
|
+
* Usage in medusa-config.ts:
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* export default defineConfig({
|
|
16
|
+
* modules: [
|
|
17
|
+
* // 1. Register your payment handler adapter (e.g., Prism for x402 stablecoins)
|
|
18
|
+
* {
|
|
19
|
+
* resolve: "@financedistrict/medusa-plugin-prism-payment/modules/prism-payment-handler",
|
|
20
|
+
* options: {
|
|
21
|
+
* api_url: process.env.PRISM_API_URL,
|
|
22
|
+
* api_key: process.env.PRISM_API_KEY,
|
|
23
|
+
* },
|
|
24
|
+
* },
|
|
25
|
+
* // 2. Register the core agentic commerce module
|
|
26
|
+
* {
|
|
27
|
+
* resolve: "@financedistrict/medusa-plugin-agentic-commerce/modules/agentic-commerce",
|
|
28
|
+
* options: {
|
|
29
|
+
* store_name: "My Store",
|
|
30
|
+
* storefront_url: process.env.STOREFRONT_URL,
|
|
31
|
+
* api_key: process.env.AGENTIC_COMMERCE_API_KEY,
|
|
32
|
+
* payment_handler_adapters: ["prismPaymentHandler"],
|
|
33
|
+
* },
|
|
34
|
+
* },
|
|
35
|
+
* ],
|
|
36
|
+
* })
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export { default as AgenticCommerceModule, AGENTIC_COMMERCE_MODULE } from "./modules/agentic-commerce";
|
|
40
|
+
export type { PaymentHandlerAdapter, CheckoutPrepareInput } from "./types/payment-handler-adapter";
|
|
41
|
+
export { PaymentHandlerRegistry } from "./lib/payment-handler-registry";
|
|
42
|
+
export { default as AgenticCommerceService } from "./modules/agentic-commerce/service";
|
|
43
|
+
export type { AgenticCommerceOptions } from "./modules/agentic-commerce/service";
|
|
44
|
+
export { getPublicBaseUrl } from "./lib/public-url";
|
|
45
|
+
export { formatAcpError, formatUcpError } from "./lib/error-formatters";
|
|
46
|
+
export type { AcpErrorResponse, UcpErrorResponse } from "./lib/error-formatters";
|
|
47
|
+
export { CHECKOUT_SESSION_CART_FIELDS, CART_VALIDATION_FIELDS } from "./lib/cart-fields";
|
|
48
|
+
export { ORDER_FIELDS } from "./lib/order-fields";
|
|
49
|
+
export { medusaToAcpAddress, acpAddressToMedusa, medusaToUcpAddress, ucpAddressToMedusa, } from "./lib/address-translator";
|
|
50
|
+
export { resolveAcpStatus, resolveUcpStatus } from "./lib/status-maps";
|
|
51
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAMH,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAMtG,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AAClG,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAMvE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,oCAAoC,CAAA;AACtF,YAAY,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAA;AAMhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @financedistrict/medusa-plugin-agentic-commerce
|
|
4
|
+
*
|
|
5
|
+
* Agentic commerce plugin for Medusa v2 — adds UCP and ACP protocol support,
|
|
6
|
+
* enabling AI agents to browse, checkout, and pay at any Medusa storefront.
|
|
7
|
+
*
|
|
8
|
+
* This is the core protocol plugin. Payment handling is pluggable via the
|
|
9
|
+
* PaymentHandlerAdapter interface — install a payment handler plugin
|
|
10
|
+
* (e.g., @financedistrict/medusa-plugin-prism-payment for x402 stablecoins)
|
|
11
|
+
* and reference it in your config.
|
|
12
|
+
*
|
|
13
|
+
* Usage in medusa-config.ts:
|
|
14
|
+
*
|
|
15
|
+
* ```ts
|
|
16
|
+
* export default defineConfig({
|
|
17
|
+
* modules: [
|
|
18
|
+
* // 1. Register your payment handler adapter (e.g., Prism for x402 stablecoins)
|
|
19
|
+
* {
|
|
20
|
+
* resolve: "@financedistrict/medusa-plugin-prism-payment/modules/prism-payment-handler",
|
|
21
|
+
* options: {
|
|
22
|
+
* api_url: process.env.PRISM_API_URL,
|
|
23
|
+
* api_key: process.env.PRISM_API_KEY,
|
|
24
|
+
* },
|
|
25
|
+
* },
|
|
26
|
+
* // 2. Register the core agentic commerce module
|
|
27
|
+
* {
|
|
28
|
+
* resolve: "@financedistrict/medusa-plugin-agentic-commerce/modules/agentic-commerce",
|
|
29
|
+
* options: {
|
|
30
|
+
* store_name: "My Store",
|
|
31
|
+
* storefront_url: process.env.STOREFRONT_URL,
|
|
32
|
+
* api_key: process.env.AGENTIC_COMMERCE_API_KEY,
|
|
33
|
+
* payment_handler_adapters: ["prismPaymentHandler"],
|
|
34
|
+
* },
|
|
35
|
+
* },
|
|
36
|
+
* ],
|
|
37
|
+
* })
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
41
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
42
|
+
};
|
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
+
exports.resolveUcpStatus = exports.resolveAcpStatus = exports.ucpAddressToMedusa = exports.medusaToUcpAddress = exports.acpAddressToMedusa = exports.medusaToAcpAddress = exports.ORDER_FIELDS = exports.CART_VALIDATION_FIELDS = exports.CHECKOUT_SESSION_CART_FIELDS = exports.formatUcpError = exports.formatAcpError = exports.getPublicBaseUrl = exports.AgenticCommerceService = exports.PaymentHandlerRegistry = exports.AGENTIC_COMMERCE_MODULE = exports.AgenticCommerceModule = void 0;
|
|
45
|
+
// =====================================================
|
|
46
|
+
// Module exports
|
|
47
|
+
// =====================================================
|
|
48
|
+
var agentic_commerce_1 = require("./modules/agentic-commerce");
|
|
49
|
+
Object.defineProperty(exports, "AgenticCommerceModule", { enumerable: true, get: function () { return __importDefault(agentic_commerce_1).default; } });
|
|
50
|
+
Object.defineProperty(exports, "AGENTIC_COMMERCE_MODULE", { enumerable: true, get: function () { return agentic_commerce_1.AGENTIC_COMMERCE_MODULE; } });
|
|
51
|
+
var payment_handler_registry_1 = require("./lib/payment-handler-registry");
|
|
52
|
+
Object.defineProperty(exports, "PaymentHandlerRegistry", { enumerable: true, get: function () { return payment_handler_registry_1.PaymentHandlerRegistry; } });
|
|
53
|
+
// =====================================================
|
|
54
|
+
// Service exports (for type usage)
|
|
55
|
+
// =====================================================
|
|
56
|
+
var service_1 = require("./modules/agentic-commerce/service");
|
|
57
|
+
Object.defineProperty(exports, "AgenticCommerceService", { enumerable: true, get: function () { return __importDefault(service_1).default; } });
|
|
58
|
+
// =====================================================
|
|
59
|
+
// Utility exports
|
|
60
|
+
// =====================================================
|
|
61
|
+
var public_url_1 = require("./lib/public-url");
|
|
62
|
+
Object.defineProperty(exports, "getPublicBaseUrl", { enumerable: true, get: function () { return public_url_1.getPublicBaseUrl; } });
|
|
63
|
+
var error_formatters_1 = require("./lib/error-formatters");
|
|
64
|
+
Object.defineProperty(exports, "formatAcpError", { enumerable: true, get: function () { return error_formatters_1.formatAcpError; } });
|
|
65
|
+
Object.defineProperty(exports, "formatUcpError", { enumerable: true, get: function () { return error_formatters_1.formatUcpError; } });
|
|
66
|
+
var cart_fields_1 = require("./lib/cart-fields");
|
|
67
|
+
Object.defineProperty(exports, "CHECKOUT_SESSION_CART_FIELDS", { enumerable: true, get: function () { return cart_fields_1.CHECKOUT_SESSION_CART_FIELDS; } });
|
|
68
|
+
Object.defineProperty(exports, "CART_VALIDATION_FIELDS", { enumerable: true, get: function () { return cart_fields_1.CART_VALIDATION_FIELDS; } });
|
|
69
|
+
var order_fields_1 = require("./lib/order-fields");
|
|
70
|
+
Object.defineProperty(exports, "ORDER_FIELDS", { enumerable: true, get: function () { return order_fields_1.ORDER_FIELDS; } });
|
|
71
|
+
// Address translators (useful for payment handler adapters)
|
|
72
|
+
var address_translator_1 = require("./lib/address-translator");
|
|
73
|
+
Object.defineProperty(exports, "medusaToAcpAddress", { enumerable: true, get: function () { return address_translator_1.medusaToAcpAddress; } });
|
|
74
|
+
Object.defineProperty(exports, "acpAddressToMedusa", { enumerable: true, get: function () { return address_translator_1.acpAddressToMedusa; } });
|
|
75
|
+
Object.defineProperty(exports, "medusaToUcpAddress", { enumerable: true, get: function () { return address_translator_1.medusaToUcpAddress; } });
|
|
76
|
+
Object.defineProperty(exports, "ucpAddressToMedusa", { enumerable: true, get: function () { return address_translator_1.ucpAddressToMedusa; } });
|
|
77
|
+
// Status maps
|
|
78
|
+
var status_maps_1 = require("./lib/status-maps");
|
|
79
|
+
Object.defineProperty(exports, "resolveAcpStatus", { enumerable: true, get: function () { return status_maps_1.resolveAcpStatus; } });
|
|
80
|
+
Object.defineProperty(exports, "resolveUcpStatus", { enumerable: true, get: function () { return status_maps_1.resolveUcpStatus; } });
|
|
81
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;;;;;;AAEH,wDAAwD;AACxD,iBAAiB;AACjB,wDAAwD;AAExD,+DAAsG;AAA7F,0IAAA,OAAO,OAAyB;AAAE,2HAAA,uBAAuB,OAAA;AAOlE,2EAAuE;AAA9D,kIAAA,sBAAsB,OAAA;AAE/B,wDAAwD;AACxD,mCAAmC;AACnC,wDAAwD;AAExD,8DAAsF;AAA7E,kIAAA,OAAO,OAA0B;AAG1C,wDAAwD;AACxD,kBAAkB;AAClB,wDAAwD;AAExD,+CAAmD;AAA1C,8GAAA,gBAAgB,OAAA;AACzB,2DAAuE;AAA9D,kHAAA,cAAc,OAAA;AAAE,kHAAA,cAAc,OAAA;AAEvC,iDAAwF;AAA/E,2HAAA,4BAA4B,OAAA;AAAE,qHAAA,sBAAsB,OAAA;AAC7D,mDAAiD;AAAxC,4GAAA,YAAY,OAAA;AAErB,4DAA4D;AAC5D,+DAKiC;AAJ/B,wHAAA,kBAAkB,OAAA;AAClB,wHAAA,kBAAkB,OAAA;AAClB,wHAAA,kBAAkB,OAAA;AAClB,wHAAA,kBAAkB,OAAA;AAGpB,cAAc;AACd,iDAAsE;AAA7D,+GAAA,gBAAgB,OAAA;AAAE,+GAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MedusaContainer } from "@medusajs/framework/types";
|
|
2
|
+
/**
|
|
3
|
+
* Scheduled job: syncs the product feed every 15 minutes.
|
|
4
|
+
*
|
|
5
|
+
* For each region/country combination, generates an XML product feed
|
|
6
|
+
* and sends it via the agenticCommerce module service.
|
|
7
|
+
*
|
|
8
|
+
* Currently logs to console — will POST to agent platforms (e.g., OpenAI)
|
|
9
|
+
* when their feed endpoint becomes available.
|
|
10
|
+
*/
|
|
11
|
+
export default function syncProductFeed(container: MedusaContainer): Promise<void>;
|
|
12
|
+
export declare const config: {
|
|
13
|
+
name: string;
|
|
14
|
+
schedule: string;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=sync-product-feed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-product-feed.d.ts","sourceRoot":"","sources":["../../../../src/jobs/sync-product-feed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D;;;;;;;;GAQG;AACH,wBAA8B,eAAe,CAC3C,SAAS,EAAE,eAAe,iBAsE3B;AAED,eAAO,MAAM,MAAM;;;CAGlB,CAAA"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.config = void 0;
|
|
4
|
+
exports.default = syncProductFeed;
|
|
5
|
+
/**
|
|
6
|
+
* Scheduled job: syncs the product feed every 15 minutes.
|
|
7
|
+
*
|
|
8
|
+
* For each region/country combination, generates an XML product feed
|
|
9
|
+
* and sends it via the agenticCommerce module service.
|
|
10
|
+
*
|
|
11
|
+
* Currently logs to console — will POST to agent platforms (e.g., OpenAI)
|
|
12
|
+
* when their feed endpoint becomes available.
|
|
13
|
+
*/
|
|
14
|
+
async function syncProductFeed(container) {
|
|
15
|
+
const query = container.resolve("query");
|
|
16
|
+
const agenticCommerceService = container.resolve("agenticCommerce");
|
|
17
|
+
const storefrontUrl = agenticCommerceService.getStorefrontUrl();
|
|
18
|
+
const storeName = agenticCommerceService.getStoreName();
|
|
19
|
+
// Get all regions with countries
|
|
20
|
+
const { data: regions } = await query.graph({
|
|
21
|
+
entity: "region",
|
|
22
|
+
fields: ["id", "currency_code", "countries.iso_2"],
|
|
23
|
+
});
|
|
24
|
+
for (const region of regions) {
|
|
25
|
+
// Fetch published products with pricing
|
|
26
|
+
const { data: products } = await query.graph({
|
|
27
|
+
entity: "product",
|
|
28
|
+
fields: [
|
|
29
|
+
"id", "title", "description", "handle", "thumbnail", "status",
|
|
30
|
+
"variants.id", "variants.title", "variants.sku", "variants.prices.*",
|
|
31
|
+
"categories.name",
|
|
32
|
+
"images.url",
|
|
33
|
+
],
|
|
34
|
+
filters: { status: "published" },
|
|
35
|
+
});
|
|
36
|
+
// Build XML items
|
|
37
|
+
const items = products.map((product) => {
|
|
38
|
+
const variant = product.variants?.[0];
|
|
39
|
+
const price = variant?.prices?.find((p) => p.currency_code === region.currency_code) || variant?.prices?.[0];
|
|
40
|
+
const priceAmount = price ? (price.amount / 100).toFixed(2) : "0.00";
|
|
41
|
+
const currency = price?.currency_code?.toUpperCase() || "EUR";
|
|
42
|
+
const category = product.categories?.[0]?.name || "Merchandise";
|
|
43
|
+
const imageUrl = product.thumbnail || product.images?.[0]?.url || "";
|
|
44
|
+
// Escape XML special characters
|
|
45
|
+
const escXml = (s) => s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
46
|
+
return ` <item>
|
|
47
|
+
<title><![CDATA[${product.title || ""}]]></title>
|
|
48
|
+
<link>${escXml(storefrontUrl)}/products/${escXml(product.handle || "")}</link>
|
|
49
|
+
<description><![CDATA[${product.description || ""}]]></description>
|
|
50
|
+
<g:id>${escXml(variant?.id || product.id)}</g:id>
|
|
51
|
+
<g:price>${priceAmount} ${currency}</g:price>
|
|
52
|
+
<g:availability>in stock</g:availability>
|
|
53
|
+
<g:condition>new</g:condition>
|
|
54
|
+
<g:brand>${escXml(storeName)}</g:brand>
|
|
55
|
+
<g:product_type>${escXml(category)}</g:product_type>
|
|
56
|
+
<g:image_link>${escXml(imageUrl)}</g:image_link>
|
|
57
|
+
<g:link>${escXml(storefrontUrl)}/products/${escXml(product.handle || "")}</g:link>
|
|
58
|
+
<enable_search>true</enable_search>
|
|
59
|
+
<enable_checkout>true</enable_checkout>
|
|
60
|
+
</item>`;
|
|
61
|
+
});
|
|
62
|
+
const xml = `<?xml version="1.0" encoding="UTF-8"?>
|
|
63
|
+
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
|
|
64
|
+
<channel>
|
|
65
|
+
<title>${storeName} Product Feed</title>
|
|
66
|
+
<link>${storefrontUrl}</link>
|
|
67
|
+
<description>Product feed for ${storeName}</description>
|
|
68
|
+
${items.join("\n")}
|
|
69
|
+
</channel>
|
|
70
|
+
</rss>`;
|
|
71
|
+
await agenticCommerceService.sendProductFeed(xml, region.id);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.config = {
|
|
75
|
+
name: "sync-product-feed",
|
|
76
|
+
schedule: "*/15 * * * *", // Every 15 minutes
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=sync-product-feed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-product-feed.js","sourceRoot":"","sources":["../../../../src/jobs/sync-product-feed.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bidirectional address translation between Medusa internal format
|
|
3
|
+
* and protocol-specific formats (ACP, UCP).
|
|
4
|
+
*/
|
|
5
|
+
export type MedusaAddress = {
|
|
6
|
+
first_name?: string;
|
|
7
|
+
last_name?: string;
|
|
8
|
+
address_1?: string;
|
|
9
|
+
address_2?: string;
|
|
10
|
+
city?: string;
|
|
11
|
+
province?: string;
|
|
12
|
+
postal_code?: string;
|
|
13
|
+
country_code?: string;
|
|
14
|
+
phone?: string;
|
|
15
|
+
};
|
|
16
|
+
export type AcpAddress = {
|
|
17
|
+
name?: string;
|
|
18
|
+
line_one?: string;
|
|
19
|
+
line_two?: string;
|
|
20
|
+
city?: string;
|
|
21
|
+
state?: string;
|
|
22
|
+
postal_code?: string;
|
|
23
|
+
country?: string;
|
|
24
|
+
phone_number?: string;
|
|
25
|
+
};
|
|
26
|
+
export type UcpAddress = {
|
|
27
|
+
name?: string;
|
|
28
|
+
line1?: string;
|
|
29
|
+
line2?: string;
|
|
30
|
+
city?: string;
|
|
31
|
+
state?: string;
|
|
32
|
+
postal_code?: string;
|
|
33
|
+
country?: string;
|
|
34
|
+
phone?: string;
|
|
35
|
+
};
|
|
36
|
+
export declare function medusaToAcpAddress(addr: MedusaAddress): AcpAddress;
|
|
37
|
+
export declare function acpAddressToMedusa(addr: AcpAddress): MedusaAddress;
|
|
38
|
+
export declare function medusaToUcpAddress(addr: MedusaAddress): UcpAddress;
|
|
39
|
+
export declare function ucpAddressToMedusa(addr: UcpAddress): MedusaAddress;
|
|
40
|
+
//# sourceMappingURL=address-translator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address-translator.d.ts","sourceRoot":"","sources":["../../../../src/lib/address-translator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,CAYlE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,CAoBlE;AAID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,CAYlE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,CAoBlE"}
|