@5ss/ai-tools 3.7.3 → 3.8.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/CHANGELOG.md +7 -0
- package/README.md +1 -0
- package/dist/{bedrock-agentcore-browser-yrEY9cUi.js → bedrock-agentcore-browser-DINOmO6a.js} +2 -2
- package/dist/{bedrock-agentcore-browser-yrEY9cUi.js.map → bedrock-agentcore-browser-DINOmO6a.js.map} +1 -1
- package/dist/{bedrock-agentcore-code-interpreter-BnJnDxCp.js → bedrock-agentcore-code-interpreter-Doon_lrN.js} +2 -2
- package/dist/{bedrock-agentcore-code-interpreter-BnJnDxCp.js.map → bedrock-agentcore-code-interpreter-Doon_lrN.js.map} +1 -1
- package/dist/{cloudflare-browser-D9pG4RTj.js → cloudflare-browser-Ct8U4_Ru.js} +3 -3
- package/dist/{cloudflare-browser-D9pG4RTj.js.map → cloudflare-browser-Ct8U4_Ru.js.map} +1 -1
- package/dist/{cloudflare-email-bsq902dg.js → cloudflare-email-oS9Ku8a6.js} +2 -2
- package/dist/{cloudflare-email-bsq902dg.js.map → cloudflare-email-oS9Ku8a6.js.map} +1 -1
- package/dist/{cloudflare-sandbox-DHE4fmiq.js → cloudflare-sandbox-kpfw9aT6.js} +3 -3
- package/dist/{cloudflare-sandbox-DHE4fmiq.js.map → cloudflare-sandbox-kpfw9aT6.js.map} +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/{define-DdFALdNf.js → define-CbQI8dAN.js} +2 -1
- package/dist/{define-DdFALdNf.js.map → define-CbQI8dAN.js.map} +1 -1
- package/dist/{eventbridge-scheduler-ICepMPWG.js → eventbridge-scheduler-CTgSZgZZ.js} +2 -2
- package/dist/{eventbridge-scheduler-ICepMPWG.js.map → eventbridge-scheduler-CTgSZgZZ.js.map} +1 -1
- package/dist/{imessage-B-0DZfMa.js → imessage-u90N3KVq.js} +2 -2
- package/dist/{imessage-B-0DZfMa.js.map → imessage-u90N3KVq.js.map} +1 -1
- package/dist/index-ByHp3nZm.d.ts.map +1 -1
- package/dist/index-CZX5OeOF.d.ts.map +1 -1
- package/dist/{mastra-vector-qKG3L-Rw.js → mastra-vector-BillORtZ.js} +2 -2
- package/dist/{mastra-vector-qKG3L-Rw.js.map → mastra-vector-BillORtZ.js.map} +1 -1
- package/dist/modules/artifacts/index.js +2 -2
- package/dist/modules/browser/index.js +3 -3
- package/dist/modules/calendar/index.js +1 -1
- package/dist/modules/code-sandbox/index.js +3 -3
- package/dist/modules/content-type/index.js +1 -1
- package/dist/modules/crypto/index.js +1 -1
- package/dist/modules/document-extract/index.js +2 -2
- package/dist/modules/document-render/index.js +2 -2
- package/dist/modules/email/index.js +3 -3
- package/dist/modules/email-message/index.js +1 -1
- package/dist/modules/files/index.js +2 -2
- package/dist/modules/image/index.js +2 -2
- package/dist/modules/messaging/index.js +6 -6
- package/dist/modules/queue/index.js +2 -2
- package/dist/modules/rag/index.js +2 -2
- package/dist/modules/scheduler/index.js +2 -2
- package/dist/modules/skills/index.js +1 -1
- package/dist/modules/tasks/index.js +1 -1
- package/dist/modules/vector-store/index.js +1 -1
- package/dist/modules/web-fetch/index.js +1 -1
- package/dist/{pinecone-tmtu3ZS5.js → pinecone-CLetgKeA.js} +2 -2
- package/dist/{pinecone-tmtu3ZS5.js.map → pinecone-CLetgKeA.js.map} +1 -1
- package/dist/{qdrant-zbCHUsnv.js → qdrant-DhnitNEu.js} +2 -2
- package/dist/{qdrant-zbCHUsnv.js.map → qdrant-DhnitNEu.js.map} +1 -1
- package/dist/{resend-Cfgm4HuV.js → resend-BBrjcYvB.js} +2 -2
- package/dist/{resend-Cfgm4HuV.js.map → resend-BBrjcYvB.js.map} +1 -1
- package/dist/{s3-TKCIZZ2q.js → s3-BpivS7pv.js} +36 -21
- package/dist/s3-BpivS7pv.js.map +1 -0
- package/dist/{slack-D6XzBS3b.js → slack-D9OmRfO9.js} +2 -2
- package/dist/{slack-D6XzBS3b.js.map → slack-D9OmRfO9.js.map} +1 -1
- package/dist/{sqs-B50DWyTf.js → sqs-BPNYdTpw.js} +2 -2
- package/dist/{sqs-B50DWyTf.js.map → sqs-BPNYdTpw.js.map} +1 -1
- package/dist/{supabase-vector-CDKOyvj1.js → supabase-vector-wRNCS3GC.js} +2 -2
- package/dist/{supabase-vector-CDKOyvj1.js.map → supabase-vector-wRNCS3GC.js.map} +1 -1
- package/dist/{teams-bGfle6pU.js → teams-SteU8V5H.js} +2 -2
- package/dist/{teams-bGfle6pU.js.map → teams-SteU8V5H.js.map} +1 -1
- package/dist/{telegram-B-TZi9fM.js → telegram-Buo2ZFGj.js} +2 -2
- package/dist/{telegram-B-TZi9fM.js.map → telegram-Buo2ZFGj.js.map} +1 -1
- package/dist/{textract-CthgcP6w.js → textract-BCNadrCr.js} +3 -3
- package/dist/{textract-CthgcP6w.js.map → textract-BCNadrCr.js.map} +1 -1
- package/dist/{vector-store-DrwuMOne.js → vector-store-DvqvDSLb.js} +6 -6
- package/dist/{vector-store-DrwuMOne.js.map → vector-store-DvqvDSLb.js.map} +1 -1
- package/dist/vendors/amazon-sp-api/index.js +1 -1
- package/dist/vendors/bedrock-agentcore-browser/index.js +1 -1
- package/dist/vendors/bedrock-agentcore-code-interpreter/index.js +1 -1
- package/dist/vendors/cloudflare-browser/index.js +1 -1
- package/dist/vendors/cloudflare-email/index.js +1 -1
- package/dist/vendors/cloudflare-sandbox/index.js +1 -1
- package/dist/vendors/eventbridge-scheduler/index.js +1 -1
- package/dist/vendors/imessage/index.js +1 -1
- package/dist/vendors/katana/index.js +1 -1
- package/dist/vendors/mastra-vector/index.js +1 -1
- package/dist/vendors/pinecone/index.js +1 -1
- package/dist/vendors/qdrant/index.js +1 -1
- package/dist/vendors/resend/index.js +1 -1
- package/dist/vendors/s3/index.js +1 -1
- package/dist/vendors/shipstation/index.js +1 -1
- package/dist/vendors/slack/index.js +1 -1
- package/dist/vendors/sqs/index.js +1 -1
- package/dist/vendors/supabase-vector/index.js +1 -1
- package/dist/vendors/teams/index.js +1 -1
- package/dist/vendors/telegram/index.js +1 -1
- package/dist/vendors/textract/index.js +1 -1
- package/dist/vendors/walmart/index.d.ts +421 -0
- package/dist/vendors/walmart/index.d.ts.map +1 -0
- package/dist/vendors/walmart/index.js +517 -0
- package/dist/vendors/walmart/index.js.map +1 -0
- package/dist/vendors/woocommerce/index.js +1 -1
- package/logos/README.md +1 -0
- package/logos/pack-logos.json +1 -0
- package/logos/walmart.svg +8 -0
- package/package.json +5 -1
- package/dist/s3-TKCIZZ2q.js.map +0 -1
|
@@ -0,0 +1,517 @@
|
|
|
1
|
+
import { t as ToolError } from "../../errors-DoSpNHvs.js";
|
|
2
|
+
import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
|
|
3
|
+
import { n as requireAuth } from "../../provider-CgDAlg6K.js";
|
|
4
|
+
import { t as HttpService } from "../../http-service-BMBIryAL.js";
|
|
5
|
+
import { n as bytesToBase64, o as utf8ToBytes } from "../../bytes-BxpimpQx.js";
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
//#region src/vendors/walmart/contracts.ts
|
|
8
|
+
const walmartAuthSchema = z.object({
|
|
9
|
+
client_id: z.string().min(1).describe("Walmart Marketplace OAuth client id"),
|
|
10
|
+
client_secret: z.string().min(1).describe("Walmart Marketplace OAuth client secret")
|
|
11
|
+
});
|
|
12
|
+
const walmartDateFilterSchema = z.union([z.iso.date(), z.iso.datetime({ offset: true })]).describe("ISO 8601 date or date-time");
|
|
13
|
+
const walmartPageCursorSchema = z.string().min(1).refine((value) => value.startsWith("?") && !value.includes("#"), { message: "cursor must be the provider query fragment returned by next_cursor" }).optional();
|
|
14
|
+
const walmartOrderRawSchema = z.looseObject({
|
|
15
|
+
purchaseOrderId: z.string().min(1),
|
|
16
|
+
customerOrderId: z.string().nullable().optional(),
|
|
17
|
+
orderDate: z.number().nullable().optional()
|
|
18
|
+
});
|
|
19
|
+
const walmartItemRawSchema = z.looseObject({
|
|
20
|
+
sku: z.string().min(1),
|
|
21
|
+
wpid: z.string().nullable().optional(),
|
|
22
|
+
gtin: z.string().nullable().optional(),
|
|
23
|
+
productName: z.string().nullable().optional(),
|
|
24
|
+
publishedStatus: z.string().nullable().optional(),
|
|
25
|
+
lifecycleStatus: z.string().nullable().optional()
|
|
26
|
+
});
|
|
27
|
+
const walmartReturnOrderRawSchema = z.looseObject({
|
|
28
|
+
returnOrderId: z.string().min(1),
|
|
29
|
+
customerOrderId: z.string().nullable().optional(),
|
|
30
|
+
returnOrderDate: z.string().nullable().optional(),
|
|
31
|
+
status: z.string().nullable().optional()
|
|
32
|
+
});
|
|
33
|
+
const walmartOrderCollectionSchema = z.union([z.array(walmartOrderRawSchema), walmartOrderRawSchema]).transform((value) => Array.isArray(value) ? value : [value]);
|
|
34
|
+
const walmartOrdersResponseSchema = z.looseObject({ list: z.looseObject({
|
|
35
|
+
meta: z.looseObject({
|
|
36
|
+
totalCount: z.int().nonnegative(),
|
|
37
|
+
limit: z.int().positive(),
|
|
38
|
+
nextCursor: z.string().nullable().optional()
|
|
39
|
+
}),
|
|
40
|
+
elements: z.looseObject({ order: walmartOrderCollectionSchema })
|
|
41
|
+
}) });
|
|
42
|
+
const walmartItemsResponseFields = {
|
|
43
|
+
totalItems: z.int().nonnegative(),
|
|
44
|
+
nextCursor: z.string().nullable().optional()
|
|
45
|
+
};
|
|
46
|
+
const walmartItemsResponseSchema = z.union([z.looseObject({
|
|
47
|
+
...walmartItemsResponseFields,
|
|
48
|
+
ItemResponse: z.array(walmartItemRawSchema)
|
|
49
|
+
}).transform((response) => ({
|
|
50
|
+
items: response.ItemResponse,
|
|
51
|
+
total_items: response.totalItems,
|
|
52
|
+
next_cursor: response.nextCursor
|
|
53
|
+
})), z.looseObject({
|
|
54
|
+
...walmartItemsResponseFields,
|
|
55
|
+
itemResponse: z.array(walmartItemRawSchema)
|
|
56
|
+
}).transform((response) => ({
|
|
57
|
+
items: response.itemResponse,
|
|
58
|
+
total_items: response.totalItems,
|
|
59
|
+
next_cursor: response.nextCursor
|
|
60
|
+
}))]);
|
|
61
|
+
const walmartReturnsResponseSchema = z.looseObject({
|
|
62
|
+
meta: z.looseObject({
|
|
63
|
+
totalCount: z.int().nonnegative(),
|
|
64
|
+
limit: z.int().positive(),
|
|
65
|
+
nextCursor: z.string().nullable().optional()
|
|
66
|
+
}),
|
|
67
|
+
returnOrders: z.array(walmartReturnOrderRawSchema)
|
|
68
|
+
});
|
|
69
|
+
const walmartReconReportDatesResponseSchema = z.looseObject({ availableApReportDates: z.array(z.string().min(1)) });
|
|
70
|
+
const walmartListOrdersPageInputSchema = z.strictObject({
|
|
71
|
+
cursor: walmartPageCursorSchema.describe("Provider next_cursor from a prior orders page"),
|
|
72
|
+
limit: z.int().min(1).max(200).optional().describe("Orders per page, from 1 to 200; defaults to 100"),
|
|
73
|
+
sku: z.string().min(1).optional().describe("Seller SKU filter"),
|
|
74
|
+
customer_order_id: z.string().min(1).optional().describe("Walmart customer order id filter"),
|
|
75
|
+
purchase_order_id: z.string().min(1).optional().describe("Walmart purchase order id filter"),
|
|
76
|
+
status: z.enum([
|
|
77
|
+
"Created",
|
|
78
|
+
"Acknowledged",
|
|
79
|
+
"Shipped",
|
|
80
|
+
"Delivered",
|
|
81
|
+
"Cancelled"
|
|
82
|
+
]).optional().describe("Purchase order line status filter"),
|
|
83
|
+
created_start_date: walmartDateFilterSchema.optional().describe("Orders created on or after this date"),
|
|
84
|
+
created_end_date: walmartDateFilterSchema.optional().describe("Orders created on or before this date"),
|
|
85
|
+
expected_ship_start_date: walmartDateFilterSchema.optional().describe("Expected ship date on or after this date"),
|
|
86
|
+
expected_ship_end_date: walmartDateFilterSchema.optional().describe("Expected ship date on or before this date"),
|
|
87
|
+
last_modified_start_date: walmartDateFilterSchema.optional().describe("Orders modified on or after this date"),
|
|
88
|
+
last_modified_end_date: walmartDateFilterSchema.optional().describe("Orders modified on or before this date"),
|
|
89
|
+
product_info: z.boolean().optional().describe("Include product image URL and weight"),
|
|
90
|
+
ship_node_type: z.enum([
|
|
91
|
+
"SellerFulfilled",
|
|
92
|
+
"WFSFulfilled",
|
|
93
|
+
"3PLFulfilled"
|
|
94
|
+
]).optional().describe("Order fulfillment node type"),
|
|
95
|
+
shipping_program_type: z.enum(["TWO_DAY", "ONE_DAY"]).optional().describe("Expedited shipping program type"),
|
|
96
|
+
replacement_info: z.boolean().optional().describe("Include replacement order attributes"),
|
|
97
|
+
order_type: z.enum([
|
|
98
|
+
"REGULAR",
|
|
99
|
+
"REPLACEMENT",
|
|
100
|
+
"PREORDER"
|
|
101
|
+
]).optional().describe("Walmart order type"),
|
|
102
|
+
incentive_info: z.boolean().optional().describe("Include incentive attributes")
|
|
103
|
+
});
|
|
104
|
+
const walmartListOrdersPageOutputSchema = z.object({
|
|
105
|
+
items: z.array(walmartOrderRawSchema),
|
|
106
|
+
total_count: z.int().nonnegative(),
|
|
107
|
+
limit: z.int().positive(),
|
|
108
|
+
next_cursor: z.string().optional(),
|
|
109
|
+
truncated: z.boolean()
|
|
110
|
+
});
|
|
111
|
+
const walmartListItemsPageInputSchema = z.strictObject({
|
|
112
|
+
cursor: z.string().min(1).optional().describe("Provider next_cursor; omit for the first page"),
|
|
113
|
+
offset: z.int().min(0).max(1e4).optional().describe("Zero-based item offset; defaults to 0"),
|
|
114
|
+
limit: z.int().min(1).max(1e3).optional().describe("Items per page, from 1 to 1000; defaults to 20"),
|
|
115
|
+
sku: z.string().min(1).optional().describe("Seller SKU filter"),
|
|
116
|
+
gtin: z.string().length(14).optional().describe("14-digit GTIN filter"),
|
|
117
|
+
lifecycle_status: z.enum([
|
|
118
|
+
"ACTIVE",
|
|
119
|
+
"ARCHIVED",
|
|
120
|
+
"RETIRED"
|
|
121
|
+
]).optional().describe("Item lifecycle status"),
|
|
122
|
+
published_status: z.enum([
|
|
123
|
+
"PUBLISHED",
|
|
124
|
+
"UNPUBLISHED",
|
|
125
|
+
"INPROGRESS"
|
|
126
|
+
]).optional().describe("Item publication status"),
|
|
127
|
+
variant_group_id: z.string().min(1).optional().describe("Walmart variant group id filter"),
|
|
128
|
+
condition: z.string().min(1).optional().describe("Walmart item condition filter"),
|
|
129
|
+
availability: z.enum([
|
|
130
|
+
"In_stock",
|
|
131
|
+
"Out_of_stock",
|
|
132
|
+
"Preorder"
|
|
133
|
+
]).optional().describe("Item availability filter"),
|
|
134
|
+
show_duplicate_item_info: z.boolean().optional().describe("Include duplicate-item information"),
|
|
135
|
+
include_customer_favorites_status: z.boolean().optional().describe("Include customer-favorite status"),
|
|
136
|
+
bundle_type: z.literal("VIRTUALPACK").optional().describe("Restrict results to virtual packs")
|
|
137
|
+
});
|
|
138
|
+
const walmartListItemsPageOutputSchema = z.object({
|
|
139
|
+
items: z.array(walmartItemRawSchema),
|
|
140
|
+
total_count: z.int().nonnegative(),
|
|
141
|
+
offset: z.int().nonnegative(),
|
|
142
|
+
limit: z.int().positive(),
|
|
143
|
+
next_cursor: z.string().optional(),
|
|
144
|
+
next_offset: z.int().nonnegative().optional(),
|
|
145
|
+
truncated: z.boolean()
|
|
146
|
+
});
|
|
147
|
+
const walmartListReturnsPageInputSchema = z.strictObject({
|
|
148
|
+
cursor: walmartPageCursorSchema.describe("Provider next_cursor from a prior returns page"),
|
|
149
|
+
limit: z.int().min(1).max(200).optional().describe("Return orders per page, from 1 to 200; defaults to 10"),
|
|
150
|
+
return_order_id: z.string().min(1).optional().describe("Return order id or RMA filter"),
|
|
151
|
+
customer_order_id: z.string().min(1).optional().describe("Customer order id filter"),
|
|
152
|
+
status: z.enum([
|
|
153
|
+
"INITIATED",
|
|
154
|
+
"DELIVERED",
|
|
155
|
+
"COMPLETED"
|
|
156
|
+
]).optional().describe("Return status filter"),
|
|
157
|
+
replacement_info: z.boolean().optional().describe("Include replacement return attributes"),
|
|
158
|
+
return_type: z.enum([
|
|
159
|
+
"PREORDER",
|
|
160
|
+
"REPLACEMENT",
|
|
161
|
+
"REFUND"
|
|
162
|
+
]).optional().describe("Return type filter"),
|
|
163
|
+
is_wfs_enabled: z.boolean().optional().describe("True for WFS returns; false for non-WFS returns"),
|
|
164
|
+
return_creation_start_date: walmartDateFilterSchema.optional().describe("Returns created on or after this date"),
|
|
165
|
+
return_creation_end_date: walmartDateFilterSchema.optional().describe("Returns created on or before this date"),
|
|
166
|
+
return_last_modified_start_date: walmartDateFilterSchema.optional().describe("Returns modified on or after this date"),
|
|
167
|
+
return_last_modified_end_date: walmartDateFilterSchema.optional().describe("Returns modified on or before this date")
|
|
168
|
+
});
|
|
169
|
+
const walmartListReturnsPageOutputSchema = z.object({
|
|
170
|
+
items: z.array(walmartReturnOrderRawSchema),
|
|
171
|
+
total_count: z.int().nonnegative(),
|
|
172
|
+
limit: z.int().positive(),
|
|
173
|
+
next_cursor: z.string().optional(),
|
|
174
|
+
truncated: z.boolean()
|
|
175
|
+
});
|
|
176
|
+
const walmartListReconReportDatesOutputSchema = z.object({ dates: z.array(z.string().min(1)) });
|
|
177
|
+
const walmartDownloadReconReportBytesInputSchema = z.strictObject({
|
|
178
|
+
report_date: z.string().regex(/^\d{8}$/).describe("Available recon report date in MMDDYYYY format"),
|
|
179
|
+
max_bytes: z.int().positive().optional().describe("Optional caller-owned maximum response size in bytes")
|
|
180
|
+
});
|
|
181
|
+
const walmartDownloadReconReportBytesOutputSchema = z.object({
|
|
182
|
+
report_date: z.string(),
|
|
183
|
+
content_type: z.string().nullable(),
|
|
184
|
+
byte_length: z.int().nonnegative(),
|
|
185
|
+
bytes: z.custom((value) => value instanceof Uint8Array)
|
|
186
|
+
});
|
|
187
|
+
//#endregion
|
|
188
|
+
//#region src/vendors/walmart/client.ts
|
|
189
|
+
/**
|
|
190
|
+
* Walmart Marketplace US vendor client.
|
|
191
|
+
* Host: `new WalmartClient(auth)`. Agent tools: `fromContext(ctx)`.
|
|
192
|
+
*/
|
|
193
|
+
const WALMART_API_BASE = "https://marketplace.walmartapis.com";
|
|
194
|
+
const WALMART_SERVICE_NAME = "Walmart Marketplace";
|
|
195
|
+
const WALMART_MARKET = "US";
|
|
196
|
+
const DEFAULT_ORDERS_LIMIT = 100;
|
|
197
|
+
const DEFAULT_ITEMS_LIMIT = 20;
|
|
198
|
+
const DEFAULT_RETURNS_LIMIT = 10;
|
|
199
|
+
const walmartTokenResponseSchema = z.object({
|
|
200
|
+
access_token: z.string().min(1),
|
|
201
|
+
expires_in: z.coerce.number().int().positive()
|
|
202
|
+
});
|
|
203
|
+
function parseInput(schema, input, message) {
|
|
204
|
+
const parsed = schema.safeParse(input);
|
|
205
|
+
if (!parsed.success) throw new ToolError(message, {
|
|
206
|
+
code: "bad_input",
|
|
207
|
+
details: { issues: parsed.error.issues.map((issue) => issue.message) }
|
|
208
|
+
});
|
|
209
|
+
return parsed.data;
|
|
210
|
+
}
|
|
211
|
+
function parseResponse(schema, data, message) {
|
|
212
|
+
const parsed = schema.safeParse(data);
|
|
213
|
+
if (!parsed.success) throw new ToolError(message, {
|
|
214
|
+
code: "upstream",
|
|
215
|
+
details: { issues: parsed.error.issues.map((issue) => issue.message) }
|
|
216
|
+
});
|
|
217
|
+
return parsed.data;
|
|
218
|
+
}
|
|
219
|
+
function basicAuthorization(auth) {
|
|
220
|
+
return `Basic ${bytesToBase64(utf8ToBytes(`${auth.client_id}:${auth.client_secret}`))}`;
|
|
221
|
+
}
|
|
222
|
+
function pagePath(path, cursor) {
|
|
223
|
+
return cursor ? `${path}${cursor}` : path;
|
|
224
|
+
}
|
|
225
|
+
var WalmartClient = class WalmartClient {
|
|
226
|
+
#auth;
|
|
227
|
+
#http;
|
|
228
|
+
#accessToken;
|
|
229
|
+
#accessTokenExpiresAt = 0;
|
|
230
|
+
#accessTokenPromise;
|
|
231
|
+
constructor(auth, options = {}) {
|
|
232
|
+
const parsed = walmartAuthSchema.safeParse(auth);
|
|
233
|
+
if (!parsed.success) throw new ToolError("Invalid Walmart Marketplace auth credentials", {
|
|
234
|
+
code: "bad_auth",
|
|
235
|
+
details: { issues: parsed.error.issues.map((issue) => issue.message) }
|
|
236
|
+
});
|
|
237
|
+
this.#auth = parsed.data;
|
|
238
|
+
this.#http = new HttpService({
|
|
239
|
+
...options,
|
|
240
|
+
baseURL: WALMART_API_BASE,
|
|
241
|
+
label: "Walmart Marketplace"
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
static fromContext(ctx) {
|
|
245
|
+
const auth = requireAuth(ctx, walmartAuthSchema);
|
|
246
|
+
return new WalmartClient(auth, {
|
|
247
|
+
...ctx.fetch && { fetch: ctx.fetch },
|
|
248
|
+
...ctx.signal && { signal: ctx.signal }
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
async #refreshAccessToken() {
|
|
252
|
+
const requestedAt = Date.now();
|
|
253
|
+
const body = new URLSearchParams({ grant_type: "client_credentials" });
|
|
254
|
+
const { data } = await this.#http.post("/v3/token", body, {
|
|
255
|
+
label: "Walmart Marketplace token",
|
|
256
|
+
headers: {
|
|
257
|
+
Accept: "application/json",
|
|
258
|
+
Authorization: basicAuthorization(this.#auth),
|
|
259
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
260
|
+
"WM_QOS.CORRELATION_ID": crypto.randomUUID(),
|
|
261
|
+
"WM_SVC.NAME": WALMART_SERVICE_NAME
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
const token = parseResponse(walmartTokenResponseSchema, data, "Walmart Marketplace returned an invalid token response");
|
|
265
|
+
this.#accessToken = token.access_token;
|
|
266
|
+
this.#accessTokenExpiresAt = requestedAt + Math.max(0, token.expires_in * 1e3 - 6e4);
|
|
267
|
+
return token.access_token;
|
|
268
|
+
}
|
|
269
|
+
async #ensureAccessToken() {
|
|
270
|
+
if (this.#accessToken && Date.now() < this.#accessTokenExpiresAt) return this.#accessToken;
|
|
271
|
+
const pending = this.#accessTokenPromise ?? this.#refreshAccessToken();
|
|
272
|
+
this.#accessTokenPromise = pending;
|
|
273
|
+
try {
|
|
274
|
+
return await pending;
|
|
275
|
+
} finally {
|
|
276
|
+
if (this.#accessTokenPromise === pending) this.#accessTokenPromise = void 0;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
async #headers(accept) {
|
|
280
|
+
return {
|
|
281
|
+
Accept: accept,
|
|
282
|
+
WM_MARKET: WALMART_MARKET,
|
|
283
|
+
"WM_QOS.CORRELATION_ID": crypto.randomUUID(),
|
|
284
|
+
"WM_SEC.ACCESS_TOKEN": await this.#ensureAccessToken(),
|
|
285
|
+
"WM_SVC.NAME": WALMART_SERVICE_NAME
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
async #get(path, label, query) {
|
|
289
|
+
return this.#http.get(path, {
|
|
290
|
+
label,
|
|
291
|
+
headers: await this.#headers("application/json"),
|
|
292
|
+
...query && { query }
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
/** One GET /v3/orders request. Provider nextCursor fragments are appended verbatim on subsequent pages. */
|
|
296
|
+
async listOrdersPage(input = {}) {
|
|
297
|
+
const parsedInput = parseInput(walmartListOrdersPageInputSchema, input, "Invalid Walmart orders page input");
|
|
298
|
+
const { data } = await this.#get(pagePath("/v3/orders", parsedInput.cursor), "Walmart Marketplace listOrdersPage", parsedInput.cursor ? void 0 : {
|
|
299
|
+
limit: parsedInput.limit ?? DEFAULT_ORDERS_LIMIT,
|
|
300
|
+
...parsedInput.sku && { sku: parsedInput.sku },
|
|
301
|
+
...parsedInput.customer_order_id && { customerOrderId: parsedInput.customer_order_id },
|
|
302
|
+
...parsedInput.purchase_order_id && { purchaseOrderId: parsedInput.purchase_order_id },
|
|
303
|
+
...parsedInput.status && { status: parsedInput.status },
|
|
304
|
+
...parsedInput.created_start_date && { createdStartDate: parsedInput.created_start_date },
|
|
305
|
+
...parsedInput.created_end_date && { createdEndDate: parsedInput.created_end_date },
|
|
306
|
+
...parsedInput.expected_ship_start_date && { fromExpectedShipDate: parsedInput.expected_ship_start_date },
|
|
307
|
+
...parsedInput.expected_ship_end_date && { toExpectedShipDate: parsedInput.expected_ship_end_date },
|
|
308
|
+
...parsedInput.last_modified_start_date && { lastModifiedStartDate: parsedInput.last_modified_start_date },
|
|
309
|
+
...parsedInput.last_modified_end_date && { lastModifiedEndDate: parsedInput.last_modified_end_date },
|
|
310
|
+
...parsedInput.product_info !== void 0 && { productInfo: parsedInput.product_info },
|
|
311
|
+
...parsedInput.ship_node_type && { shipNodeType: parsedInput.ship_node_type },
|
|
312
|
+
...parsedInput.shipping_program_type && { shippingProgramType: parsedInput.shipping_program_type },
|
|
313
|
+
...parsedInput.replacement_info !== void 0 && { replacementInfo: parsedInput.replacement_info },
|
|
314
|
+
...parsedInput.order_type && { orderType: parsedInput.order_type },
|
|
315
|
+
...parsedInput.incentive_info !== void 0 && { incentiveInfo: parsedInput.incentive_info }
|
|
316
|
+
});
|
|
317
|
+
const response = parseResponse(walmartOrdersResponseSchema, data, "Walmart Marketplace returned an invalid orders page");
|
|
318
|
+
const nextCursor = response.list.meta.nextCursor ?? void 0;
|
|
319
|
+
return {
|
|
320
|
+
items: response.list.elements.order,
|
|
321
|
+
total_count: response.list.meta.totalCount,
|
|
322
|
+
limit: response.list.meta.limit,
|
|
323
|
+
truncated: Boolean(nextCursor),
|
|
324
|
+
...nextCursor && { next_cursor: nextCursor }
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
/** One GET /v3/items request. Cursor and offset are both exposed because Walmart's item cursor is reusable. */
|
|
328
|
+
async listItemsPage(input = {}) {
|
|
329
|
+
const parsedInput = parseInput(walmartListItemsPageInputSchema, input, "Invalid Walmart items page input");
|
|
330
|
+
const offset = parsedInput.offset ?? 0;
|
|
331
|
+
const limit = parsedInput.limit ?? DEFAULT_ITEMS_LIMIT;
|
|
332
|
+
const { data } = await this.#get("/v3/items", "Walmart Marketplace listItemsPage", {
|
|
333
|
+
nextCursor: parsedInput.cursor ?? "*",
|
|
334
|
+
offset,
|
|
335
|
+
limit,
|
|
336
|
+
...parsedInput.cursor ? {} : {
|
|
337
|
+
...parsedInput.sku && { sku: parsedInput.sku },
|
|
338
|
+
...parsedInput.gtin && { gtin: parsedInput.gtin },
|
|
339
|
+
...parsedInput.lifecycle_status && { lifecycleStatus: parsedInput.lifecycle_status },
|
|
340
|
+
...parsedInput.published_status && { publishedStatus: parsedInput.published_status },
|
|
341
|
+
...parsedInput.variant_group_id && { variantGroupId: parsedInput.variant_group_id },
|
|
342
|
+
...parsedInput.condition && { condition: parsedInput.condition },
|
|
343
|
+
...parsedInput.availability && { availability: parsedInput.availability },
|
|
344
|
+
...parsedInput.show_duplicate_item_info !== void 0 && { showDuplicateItemInfo: parsedInput.show_duplicate_item_info },
|
|
345
|
+
...parsedInput.include_customer_favorites_status !== void 0 && { includeCustomerFavoritesStatus: parsedInput.include_customer_favorites_status },
|
|
346
|
+
...parsedInput.bundle_type && { bundleType: parsedInput.bundle_type }
|
|
347
|
+
}
|
|
348
|
+
});
|
|
349
|
+
const response = parseResponse(walmartItemsResponseSchema, data, "Walmart Marketplace returned an invalid items page");
|
|
350
|
+
const nextOffset = offset + response.items.length;
|
|
351
|
+
const truncated = nextOffset < response.total_items;
|
|
352
|
+
const nextCursor = response.next_cursor ?? void 0;
|
|
353
|
+
return {
|
|
354
|
+
items: response.items,
|
|
355
|
+
total_count: response.total_items,
|
|
356
|
+
offset,
|
|
357
|
+
limit,
|
|
358
|
+
truncated,
|
|
359
|
+
...nextCursor && { next_cursor: nextCursor },
|
|
360
|
+
...truncated && { next_offset: nextOffset }
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
/** One GET /v3/returns request. Provider nextCursor fragments are appended verbatim on subsequent pages. */
|
|
364
|
+
async listReturnsPage(input = {}) {
|
|
365
|
+
const parsedInput = parseInput(walmartListReturnsPageInputSchema, input, "Invalid Walmart returns page input");
|
|
366
|
+
const { data } = await this.#get(pagePath("/v3/returns", parsedInput.cursor), "Walmart Marketplace listReturnsPage", parsedInput.cursor ? void 0 : {
|
|
367
|
+
limit: parsedInput.limit ?? DEFAULT_RETURNS_LIMIT,
|
|
368
|
+
...parsedInput.return_order_id && { returnOrderId: parsedInput.return_order_id },
|
|
369
|
+
...parsedInput.customer_order_id && { customerOrderId: parsedInput.customer_order_id },
|
|
370
|
+
...parsedInput.status && { status: parsedInput.status },
|
|
371
|
+
...parsedInput.replacement_info !== void 0 && { replacementInfo: parsedInput.replacement_info },
|
|
372
|
+
...parsedInput.return_type && { returnType: parsedInput.return_type },
|
|
373
|
+
...parsedInput.is_wfs_enabled !== void 0 && { isWFSEnabled: parsedInput.is_wfs_enabled ? "Y" : "N" },
|
|
374
|
+
...parsedInput.return_creation_start_date && { returnCreationStartDate: parsedInput.return_creation_start_date },
|
|
375
|
+
...parsedInput.return_creation_end_date && { returnCreationEndDate: parsedInput.return_creation_end_date },
|
|
376
|
+
...parsedInput.return_last_modified_start_date && { returnLastModifiedStartDate: parsedInput.return_last_modified_start_date },
|
|
377
|
+
...parsedInput.return_last_modified_end_date && { returnLastModifiedEndDate: parsedInput.return_last_modified_end_date }
|
|
378
|
+
});
|
|
379
|
+
const response = parseResponse(walmartReturnsResponseSchema, data, "Walmart Marketplace returned an invalid returns page");
|
|
380
|
+
const nextCursor = response.meta.nextCursor ?? void 0;
|
|
381
|
+
return {
|
|
382
|
+
items: response.returnOrders,
|
|
383
|
+
total_count: response.meta.totalCount,
|
|
384
|
+
limit: response.meta.limit,
|
|
385
|
+
truncated: Boolean(nextCursor),
|
|
386
|
+
...nextCursor && { next_cursor: nextCursor }
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
/** GET /v3/report/reconreport/availableReconFiles?reportVersion=v1. */
|
|
390
|
+
async listReconReportDates() {
|
|
391
|
+
const { data } = await this.#get("/v3/report/reconreport/availableReconFiles", "Walmart Marketplace listReconReportDates", { reportVersion: "v1" });
|
|
392
|
+
return { dates: parseResponse(walmartReconReportDatesResponseSchema, data, "Walmart Marketplace returned invalid recon report dates").availableApReportDates };
|
|
393
|
+
}
|
|
394
|
+
/** Host-facing raw recon report bytes. The caller may set max_bytes; no package-owned cap is imposed. */
|
|
395
|
+
async downloadReconReportBytes(input) {
|
|
396
|
+
const parsedInput = parseInput(walmartDownloadReconReportBytesInputSchema, input, "Invalid Walmart recon report input");
|
|
397
|
+
const result = await this.#http.bytes("GET", "/v3/report/reconreport/reconFile", {
|
|
398
|
+
label: "Walmart Marketplace downloadReconReportBytes",
|
|
399
|
+
headers: await this.#headers("application/octet-stream"),
|
|
400
|
+
query: {
|
|
401
|
+
reportDate: parsedInput.report_date,
|
|
402
|
+
reportVersion: "v1"
|
|
403
|
+
},
|
|
404
|
+
...parsedInput.max_bytes !== void 0 && { maxBytes: parsedInput.max_bytes }
|
|
405
|
+
});
|
|
406
|
+
return {
|
|
407
|
+
report_date: parsedInput.report_date,
|
|
408
|
+
content_type: result.headers.get("content-type"),
|
|
409
|
+
byte_length: result.bytes.byteLength,
|
|
410
|
+
bytes: result.bytes
|
|
411
|
+
};
|
|
412
|
+
}
|
|
413
|
+
};
|
|
414
|
+
//#endregion
|
|
415
|
+
//#region src/vendors/walmart/module.ts
|
|
416
|
+
const emptyInputSchema = z.strictObject({}).describe("No input fields");
|
|
417
|
+
const walmartListOrdersTool = defineTool({
|
|
418
|
+
id: "walmart-list-orders",
|
|
419
|
+
name: "walmartListOrders",
|
|
420
|
+
description: "List one Walmart Marketplace US orders page with order-id, status, fulfillment, and creation or modification date filters.",
|
|
421
|
+
inputSchema: walmartListOrdersPageInputSchema,
|
|
422
|
+
outputSchema: walmartListOrdersPageOutputSchema,
|
|
423
|
+
sideEffect: "read",
|
|
424
|
+
runtime: "both",
|
|
425
|
+
idempotent: true,
|
|
426
|
+
network: true,
|
|
427
|
+
supportsCancel: true,
|
|
428
|
+
tags: [
|
|
429
|
+
"orders",
|
|
430
|
+
"sales",
|
|
431
|
+
"fulfillment"
|
|
432
|
+
],
|
|
433
|
+
execute: async (input, ctx) => WalmartClient.fromContext(ctx).listOrdersPage(input)
|
|
434
|
+
});
|
|
435
|
+
const walmartListItemsTool = defineTool({
|
|
436
|
+
id: "walmart-list-items",
|
|
437
|
+
name: "walmartListItems",
|
|
438
|
+
description: "List one Walmart Marketplace US catalog page with SKU, GTIN, lifecycle, publication, availability, variant, duplicate, and virtual-pack filters.",
|
|
439
|
+
inputSchema: walmartListItemsPageInputSchema,
|
|
440
|
+
outputSchema: walmartListItemsPageOutputSchema,
|
|
441
|
+
sideEffect: "read",
|
|
442
|
+
runtime: "both",
|
|
443
|
+
idempotent: true,
|
|
444
|
+
network: true,
|
|
445
|
+
supportsCancel: true,
|
|
446
|
+
tags: [
|
|
447
|
+
"items",
|
|
448
|
+
"catalog",
|
|
449
|
+
"inventory"
|
|
450
|
+
],
|
|
451
|
+
execute: async (input, ctx) => WalmartClient.fromContext(ctx).listItemsPage(input)
|
|
452
|
+
});
|
|
453
|
+
const walmartListReturnsTool = defineTool({
|
|
454
|
+
id: "walmart-list-returns",
|
|
455
|
+
name: "walmartListReturns",
|
|
456
|
+
description: "List one Walmart Marketplace US returns page with RMA, order, status, type, WFS, and creation or modification date filters.",
|
|
457
|
+
inputSchema: walmartListReturnsPageInputSchema,
|
|
458
|
+
outputSchema: walmartListReturnsPageOutputSchema,
|
|
459
|
+
sideEffect: "read",
|
|
460
|
+
runtime: "both",
|
|
461
|
+
idempotent: true,
|
|
462
|
+
network: true,
|
|
463
|
+
supportsCancel: true,
|
|
464
|
+
tags: [
|
|
465
|
+
"returns",
|
|
466
|
+
"refunds",
|
|
467
|
+
"orders"
|
|
468
|
+
],
|
|
469
|
+
execute: async (input, ctx) => WalmartClient.fromContext(ctx).listReturnsPage(input)
|
|
470
|
+
});
|
|
471
|
+
const walmartListReconReportDatesTool = defineTool({
|
|
472
|
+
id: "walmart-list-recon-report-dates",
|
|
473
|
+
name: "walmartListReconReportDates",
|
|
474
|
+
description: "List the Walmart Marketplace US legacy V1 reconciliation report dates currently available for download.",
|
|
475
|
+
inputSchema: emptyInputSchema,
|
|
476
|
+
outputSchema: walmartListReconReportDatesOutputSchema,
|
|
477
|
+
sideEffect: "read",
|
|
478
|
+
runtime: "both",
|
|
479
|
+
idempotent: true,
|
|
480
|
+
network: true,
|
|
481
|
+
supportsCancel: true,
|
|
482
|
+
tags: [
|
|
483
|
+
"reports",
|
|
484
|
+
"reconciliation",
|
|
485
|
+
"payments"
|
|
486
|
+
],
|
|
487
|
+
execute: async (_input, ctx) => WalmartClient.fromContext(ctx).listReconReportDates()
|
|
488
|
+
});
|
|
489
|
+
const walmartModule = defineModule({
|
|
490
|
+
id: "walmart",
|
|
491
|
+
title: "Walmart Marketplace",
|
|
492
|
+
description: "Walmart Marketplace US read pack for orders, catalog items, returns, and reconciliation reports.",
|
|
493
|
+
runtime: "both",
|
|
494
|
+
auth: {
|
|
495
|
+
type: "custom",
|
|
496
|
+
schema: walmartAuthSchema
|
|
497
|
+
},
|
|
498
|
+
categories: ["commerce", "marketplace"],
|
|
499
|
+
classification: "pii",
|
|
500
|
+
tags: [
|
|
501
|
+
"orders",
|
|
502
|
+
"items",
|
|
503
|
+
"returns",
|
|
504
|
+
"reconciliation",
|
|
505
|
+
"walmart"
|
|
506
|
+
],
|
|
507
|
+
tools: [
|
|
508
|
+
walmartListOrdersTool,
|
|
509
|
+
walmartListItemsTool,
|
|
510
|
+
walmartListReturnsTool,
|
|
511
|
+
walmartListReconReportDatesTool
|
|
512
|
+
]
|
|
513
|
+
});
|
|
514
|
+
//#endregion
|
|
515
|
+
export { WalmartClient, walmartAuthSchema, walmartDownloadReconReportBytesInputSchema, walmartDownloadReconReportBytesOutputSchema, walmartItemRawSchema, walmartItemsResponseSchema, walmartListItemsPageInputSchema, walmartListItemsPageOutputSchema, walmartListItemsTool, walmartListOrdersPageInputSchema, walmartListOrdersPageOutputSchema, walmartListOrdersTool, walmartListReconReportDatesOutputSchema, walmartListReconReportDatesTool, walmartListReturnsPageInputSchema, walmartListReturnsPageOutputSchema, walmartListReturnsTool, walmartModule, walmartOrderRawSchema, walmartOrdersResponseSchema, walmartReconReportDatesResponseSchema, walmartReturnOrderRawSchema, walmartReturnsResponseSchema };
|
|
516
|
+
|
|
517
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["#auth","#http","#refreshAccessToken","#accessToken","#accessTokenExpiresAt","#ensureAccessToken","#accessTokenPromise","#headers","#get"],"sources":["../../../src/vendors/walmart/contracts.ts","../../../src/vendors/walmart/client.ts","../../../src/vendors/walmart/module.ts"],"sourcesContent":["import { z } from 'zod'\n\nexport const walmartAuthSchema = z.object({\n\tclient_id: z.string().min(1).describe('Walmart Marketplace OAuth client id'),\n\tclient_secret: z.string().min(1).describe('Walmart Marketplace OAuth client secret')\n})\n\nexport type WalmartAuth = z.infer<typeof walmartAuthSchema>\n\nconst walmartDateFilterSchema = z\n\t.union([z.iso.date(), z.iso.datetime({ offset: true })])\n\t.describe('ISO 8601 date or date-time')\n\nconst walmartPageCursorSchema = z\n\t.string()\n\t.min(1)\n\t.refine((value) => value.startsWith('?') && !value.includes('#'), {\n\t\tmessage: 'cursor must be the provider query fragment returned by next_cursor'\n\t})\n\t.optional()\n\nexport const walmartOrderRawSchema = z.looseObject({\n\tpurchaseOrderId: z.string().min(1),\n\tcustomerOrderId: z.string().nullable().optional(),\n\torderDate: z.number().nullable().optional()\n})\n\nexport const walmartItemRawSchema = z.looseObject({\n\tsku: z.string().min(1),\n\twpid: z.string().nullable().optional(),\n\tgtin: z.string().nullable().optional(),\n\tproductName: z.string().nullable().optional(),\n\tpublishedStatus: z.string().nullable().optional(),\n\tlifecycleStatus: z.string().nullable().optional()\n})\n\nexport const walmartReturnOrderRawSchema = z.looseObject({\n\treturnOrderId: z.string().min(1),\n\tcustomerOrderId: z.string().nullable().optional(),\n\treturnOrderDate: z.string().nullable().optional(),\n\tstatus: z.string().nullable().optional()\n})\n\nconst walmartOrderCollectionSchema = z\n\t.union([z.array(walmartOrderRawSchema), walmartOrderRawSchema])\n\t.transform((value) => (Array.isArray(value) ? value : [value]))\n\nexport const walmartOrdersResponseSchema = z.looseObject({\n\tlist: z.looseObject({\n\t\tmeta: z.looseObject({\n\t\t\ttotalCount: z.int().nonnegative(),\n\t\t\tlimit: z.int().positive(),\n\t\t\tnextCursor: z.string().nullable().optional()\n\t\t}),\n\t\telements: z.looseObject({\n\t\t\torder: walmartOrderCollectionSchema\n\t\t})\n\t})\n})\n\nconst walmartItemsResponseFields = {\n\ttotalItems: z.int().nonnegative(),\n\tnextCursor: z.string().nullable().optional()\n}\n\nexport const walmartItemsResponseSchema = z.union([\n\tz\n\t\t.looseObject({\n\t\t\t...walmartItemsResponseFields,\n\t\t\tItemResponse: z.array(walmartItemRawSchema)\n\t\t})\n\t\t.transform((response) => ({\n\t\t\titems: response.ItemResponse,\n\t\t\ttotal_items: response.totalItems,\n\t\t\tnext_cursor: response.nextCursor\n\t\t})),\n\tz\n\t\t.looseObject({\n\t\t\t...walmartItemsResponseFields,\n\t\t\titemResponse: z.array(walmartItemRawSchema)\n\t\t})\n\t\t.transform((response) => ({\n\t\t\titems: response.itemResponse,\n\t\t\ttotal_items: response.totalItems,\n\t\t\tnext_cursor: response.nextCursor\n\t\t}))\n])\n\nexport const walmartReturnsResponseSchema = z.looseObject({\n\tmeta: z.looseObject({\n\t\ttotalCount: z.int().nonnegative(),\n\t\tlimit: z.int().positive(),\n\t\tnextCursor: z.string().nullable().optional()\n\t}),\n\treturnOrders: z.array(walmartReturnOrderRawSchema)\n})\n\nexport const walmartReconReportDatesResponseSchema = z.looseObject({\n\tavailableApReportDates: z.array(z.string().min(1))\n})\n\nexport const walmartListOrdersPageInputSchema = z.strictObject({\n\tcursor: walmartPageCursorSchema.describe('Provider next_cursor from a prior orders page'),\n\tlimit: z.int().min(1).max(200).optional().describe('Orders per page, from 1 to 200; defaults to 100'),\n\tsku: z.string().min(1).optional().describe('Seller SKU filter'),\n\tcustomer_order_id: z.string().min(1).optional().describe('Walmart customer order id filter'),\n\tpurchase_order_id: z.string().min(1).optional().describe('Walmart purchase order id filter'),\n\tstatus: z\n\t\t.enum(['Created', 'Acknowledged', 'Shipped', 'Delivered', 'Cancelled'])\n\t\t.optional()\n\t\t.describe('Purchase order line status filter'),\n\tcreated_start_date: walmartDateFilterSchema.optional().describe('Orders created on or after this date'),\n\tcreated_end_date: walmartDateFilterSchema.optional().describe('Orders created on or before this date'),\n\texpected_ship_start_date: walmartDateFilterSchema.optional().describe('Expected ship date on or after this date'),\n\texpected_ship_end_date: walmartDateFilterSchema.optional().describe('Expected ship date on or before this date'),\n\tlast_modified_start_date: walmartDateFilterSchema.optional().describe('Orders modified on or after this date'),\n\tlast_modified_end_date: walmartDateFilterSchema.optional().describe('Orders modified on or before this date'),\n\tproduct_info: z.boolean().optional().describe('Include product image URL and weight'),\n\tship_node_type: z\n\t\t.enum(['SellerFulfilled', 'WFSFulfilled', '3PLFulfilled'])\n\t\t.optional()\n\t\t.describe('Order fulfillment node type'),\n\tshipping_program_type: z.enum(['TWO_DAY', 'ONE_DAY']).optional().describe('Expedited shipping program type'),\n\treplacement_info: z.boolean().optional().describe('Include replacement order attributes'),\n\torder_type: z.enum(['REGULAR', 'REPLACEMENT', 'PREORDER']).optional().describe('Walmart order type'),\n\tincentive_info: z.boolean().optional().describe('Include incentive attributes')\n})\n\nexport const walmartListOrdersPageOutputSchema = z.object({\n\titems: z.array(walmartOrderRawSchema),\n\ttotal_count: z.int().nonnegative(),\n\tlimit: z.int().positive(),\n\tnext_cursor: z.string().optional(),\n\ttruncated: z.boolean()\n})\n\nexport const walmartListItemsPageInputSchema = z.strictObject({\n\tcursor: z.string().min(1).optional().describe('Provider next_cursor; omit for the first page'),\n\toffset: z.int().min(0).max(10_000).optional().describe('Zero-based item offset; defaults to 0'),\n\tlimit: z.int().min(1).max(1000).optional().describe('Items per page, from 1 to 1000; defaults to 20'),\n\tsku: z.string().min(1).optional().describe('Seller SKU filter'),\n\tgtin: z.string().length(14).optional().describe('14-digit GTIN filter'),\n\tlifecycle_status: z.enum(['ACTIVE', 'ARCHIVED', 'RETIRED']).optional().describe('Item lifecycle status'),\n\tpublished_status: z.enum(['PUBLISHED', 'UNPUBLISHED', 'INPROGRESS']).optional().describe('Item publication status'),\n\tvariant_group_id: z.string().min(1).optional().describe('Walmart variant group id filter'),\n\tcondition: z.string().min(1).optional().describe('Walmart item condition filter'),\n\tavailability: z.enum(['In_stock', 'Out_of_stock', 'Preorder']).optional().describe('Item availability filter'),\n\tshow_duplicate_item_info: z.boolean().optional().describe('Include duplicate-item information'),\n\tinclude_customer_favorites_status: z.boolean().optional().describe('Include customer-favorite status'),\n\tbundle_type: z.literal('VIRTUALPACK').optional().describe('Restrict results to virtual packs')\n})\n\nexport const walmartListItemsPageOutputSchema = z.object({\n\titems: z.array(walmartItemRawSchema),\n\ttotal_count: z.int().nonnegative(),\n\toffset: z.int().nonnegative(),\n\tlimit: z.int().positive(),\n\tnext_cursor: z.string().optional(),\n\tnext_offset: z.int().nonnegative().optional(),\n\ttruncated: z.boolean()\n})\n\nexport const walmartListReturnsPageInputSchema = z.strictObject({\n\tcursor: walmartPageCursorSchema.describe('Provider next_cursor from a prior returns page'),\n\tlimit: z.int().min(1).max(200).optional().describe('Return orders per page, from 1 to 200; defaults to 10'),\n\treturn_order_id: z.string().min(1).optional().describe('Return order id or RMA filter'),\n\tcustomer_order_id: z.string().min(1).optional().describe('Customer order id filter'),\n\tstatus: z.enum(['INITIATED', 'DELIVERED', 'COMPLETED']).optional().describe('Return status filter'),\n\treplacement_info: z.boolean().optional().describe('Include replacement return attributes'),\n\treturn_type: z.enum(['PREORDER', 'REPLACEMENT', 'REFUND']).optional().describe('Return type filter'),\n\tis_wfs_enabled: z.boolean().optional().describe('True for WFS returns; false for non-WFS returns'),\n\treturn_creation_start_date: walmartDateFilterSchema.optional().describe('Returns created on or after this date'),\n\treturn_creation_end_date: walmartDateFilterSchema.optional().describe('Returns created on or before this date'),\n\treturn_last_modified_start_date: walmartDateFilterSchema\n\t\t.optional()\n\t\t.describe('Returns modified on or after this date'),\n\treturn_last_modified_end_date: walmartDateFilterSchema.optional().describe('Returns modified on or before this date')\n})\n\nexport const walmartListReturnsPageOutputSchema = z.object({\n\titems: z.array(walmartReturnOrderRawSchema),\n\ttotal_count: z.int().nonnegative(),\n\tlimit: z.int().positive(),\n\tnext_cursor: z.string().optional(),\n\ttruncated: z.boolean()\n})\n\nexport const walmartListReconReportDatesOutputSchema = z.object({\n\tdates: z.array(z.string().min(1))\n})\n\nexport const walmartDownloadReconReportBytesInputSchema = z.strictObject({\n\treport_date: z\n\t\t.string()\n\t\t.regex(/^\\d{8}$/)\n\t\t.describe('Available recon report date in MMDDYYYY format'),\n\tmax_bytes: z.int().positive().optional().describe('Optional caller-owned maximum response size in bytes')\n})\n\nexport const walmartDownloadReconReportBytesOutputSchema = z.object({\n\treport_date: z.string(),\n\tcontent_type: z.string().nullable(),\n\tbyte_length: z.int().nonnegative(),\n\tbytes: z.custom<Uint8Array>((value) => value instanceof Uint8Array)\n})\n\nexport type WalmartOrderRaw = z.infer<typeof walmartOrderRawSchema>\nexport type WalmartItemRaw = z.infer<typeof walmartItemRawSchema>\nexport type WalmartReturnOrderRaw = z.infer<typeof walmartReturnOrderRawSchema>\nexport type WalmartListOrdersPageInput = z.input<typeof walmartListOrdersPageInputSchema>\nexport type WalmartListOrdersPageOutput = z.infer<typeof walmartListOrdersPageOutputSchema>\nexport type WalmartListItemsPageInput = z.input<typeof walmartListItemsPageInputSchema>\nexport type WalmartListItemsPageOutput = z.infer<typeof walmartListItemsPageOutputSchema>\nexport type WalmartListReturnsPageInput = z.input<typeof walmartListReturnsPageInputSchema>\nexport type WalmartListReturnsPageOutput = z.infer<typeof walmartListReturnsPageOutputSchema>\nexport type WalmartListReconReportDatesOutput = z.infer<typeof walmartListReconReportDatesOutputSchema>\nexport type WalmartDownloadReconReportBytesInput = z.input<typeof walmartDownloadReconReportBytesInputSchema>\nexport type WalmartDownloadReconReportBytesOutput = z.infer<typeof walmartDownloadReconReportBytesOutputSchema>\n","/**\n * Walmart Marketplace US vendor client.\n * Host: `new WalmartClient(auth)`. Agent tools: `fromContext(ctx)`.\n */\n\nimport { z } from 'zod'\nimport type { output, ZodType } from 'zod'\n\nimport { ToolError } from '../../core/errors'\nimport { requireAuth } from '../../core/provider'\nimport type { ToolContext } from '../../core/types'\nimport { bytesToBase64, utf8ToBytes } from '../../shared/bytes'\nimport { HttpService } from '../../transport/http-service'\nimport type { HttpQueryValue, HttpServiceOptions } from '../../transport/http-service'\nimport type {\n\tWalmartAuth,\n\tWalmartDownloadReconReportBytesInput,\n\tWalmartDownloadReconReportBytesOutput,\n\tWalmartListItemsPageInput,\n\tWalmartListItemsPageOutput,\n\tWalmartListOrdersPageInput,\n\tWalmartListOrdersPageOutput,\n\tWalmartListReconReportDatesOutput,\n\tWalmartListReturnsPageInput,\n\tWalmartListReturnsPageOutput\n} from './contracts'\nimport {\n\twalmartAuthSchema,\n\twalmartDownloadReconReportBytesInputSchema,\n\twalmartItemsResponseSchema,\n\twalmartListItemsPageInputSchema,\n\twalmartListOrdersPageInputSchema,\n\twalmartListReturnsPageInputSchema,\n\twalmartOrdersResponseSchema,\n\twalmartReconReportDatesResponseSchema,\n\twalmartReturnsResponseSchema\n} from './contracts'\n\nconst WALMART_API_BASE = 'https://marketplace.walmartapis.com'\nconst WALMART_SERVICE_NAME = 'Walmart Marketplace'\nconst WALMART_MARKET = 'US'\nconst DEFAULT_ORDERS_LIMIT = 100\nconst DEFAULT_ITEMS_LIMIT = 20\nconst DEFAULT_RETURNS_LIMIT = 10\n\nconst walmartTokenResponseSchema = z.object({\n\taccess_token: z.string().min(1),\n\texpires_in: z.coerce.number().int().positive()\n})\n\nexport type WalmartClientOptions = Pick<HttpServiceOptions, 'fetch' | 'signal'>\n\nfunction parseInput<TSchema extends ZodType>(schema: TSchema, input: unknown, message: string): output<TSchema> {\n\tconst parsed = schema.safeParse(input)\n\tif (!parsed.success) {\n\t\tthrow new ToolError(message, {\n\t\t\tcode: 'bad_input',\n\t\t\tdetails: { issues: parsed.error.issues.map((issue) => issue.message) }\n\t\t})\n\t}\n\treturn parsed.data\n}\n\nfunction parseResponse<TSchema extends ZodType>(schema: TSchema, data: unknown, message: string): output<TSchema> {\n\tconst parsed = schema.safeParse(data)\n\tif (!parsed.success) {\n\t\tthrow new ToolError(message, {\n\t\t\tcode: 'upstream',\n\t\t\tdetails: { issues: parsed.error.issues.map((issue) => issue.message) }\n\t\t})\n\t}\n\treturn parsed.data\n}\n\nfunction basicAuthorization(auth: WalmartAuth): string {\n\treturn `Basic ${bytesToBase64(utf8ToBytes(`${auth.client_id}:${auth.client_secret}`))}`\n}\n\nfunction pagePath(path: string, cursor: string | undefined): string {\n\treturn cursor ? `${path}${cursor}` : path\n}\n\nexport class WalmartClient {\n\treadonly #auth: WalmartAuth\n\treadonly #http: HttpService\n\t#accessToken: string | undefined\n\t#accessTokenExpiresAt = 0\n\t#accessTokenPromise: Promise<string> | undefined\n\n\tconstructor(auth: WalmartAuth, options: WalmartClientOptions = {}) {\n\t\tconst parsed = walmartAuthSchema.safeParse(auth)\n\t\tif (!parsed.success) {\n\t\t\tthrow new ToolError('Invalid Walmart Marketplace auth credentials', {\n\t\t\t\tcode: 'bad_auth',\n\t\t\t\tdetails: { issues: parsed.error.issues.map((issue) => issue.message) }\n\t\t\t})\n\t\t}\n\t\tthis.#auth = parsed.data\n\t\tthis.#http = new HttpService({\n\t\t\t...options,\n\t\t\tbaseURL: WALMART_API_BASE,\n\t\t\tlabel: 'Walmart Marketplace'\n\t\t})\n\t}\n\n\tstatic fromContext(ctx: ToolContext): WalmartClient {\n\t\tconst auth = requireAuth(ctx, walmartAuthSchema)\n\t\treturn new WalmartClient(auth, {\n\t\t\t...(ctx.fetch && { fetch: ctx.fetch }),\n\t\t\t...(ctx.signal && { signal: ctx.signal })\n\t\t})\n\t}\n\n\tasync #refreshAccessToken(): Promise<string> {\n\t\tconst requestedAt = Date.now()\n\t\tconst body = new URLSearchParams({ grant_type: 'client_credentials' })\n\t\tconst { data } = await this.#http.post('/v3/token', body, {\n\t\t\tlabel: 'Walmart Marketplace token',\n\t\t\theaders: {\n\t\t\t\tAccept: 'application/json',\n\t\t\t\tAuthorization: basicAuthorization(this.#auth),\n\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded',\n\t\t\t\t'WM_QOS.CORRELATION_ID': crypto.randomUUID(),\n\t\t\t\t'WM_SVC.NAME': WALMART_SERVICE_NAME\n\t\t\t}\n\t\t})\n\t\tconst token = parseResponse(\n\t\t\twalmartTokenResponseSchema,\n\t\t\tdata,\n\t\t\t'Walmart Marketplace returned an invalid token response'\n\t\t)\n\t\tthis.#accessToken = token.access_token\n\t\tthis.#accessTokenExpiresAt = requestedAt + Math.max(0, token.expires_in * 1000 - 60_000)\n\t\treturn token.access_token\n\t}\n\n\tasync #ensureAccessToken(): Promise<string> {\n\t\tif (this.#accessToken && Date.now() < this.#accessTokenExpiresAt) return this.#accessToken\n\n\t\tconst pending = this.#accessTokenPromise ?? this.#refreshAccessToken()\n\t\tthis.#accessTokenPromise = pending\n\t\ttry {\n\t\t\treturn await pending\n\t\t} finally {\n\t\t\tif (this.#accessTokenPromise === pending) this.#accessTokenPromise = undefined\n\t\t}\n\t}\n\n\tasync #headers(accept: string): Promise<Record<string, string>> {\n\t\treturn {\n\t\t\tAccept: accept,\n\t\t\tWM_MARKET: WALMART_MARKET,\n\t\t\t'WM_QOS.CORRELATION_ID': crypto.randomUUID(),\n\t\t\t'WM_SEC.ACCESS_TOKEN': await this.#ensureAccessToken(),\n\t\t\t'WM_SVC.NAME': WALMART_SERVICE_NAME\n\t\t}\n\t}\n\n\tasync #get(path: string, label: string, query?: Record<string, HttpQueryValue>) {\n\t\treturn this.#http.get(path, {\n\t\t\tlabel,\n\t\t\theaders: await this.#headers('application/json'),\n\t\t\t...(query && { query })\n\t\t})\n\t}\n\n\t/** One GET /v3/orders request. Provider nextCursor fragments are appended verbatim on subsequent pages. */\n\tasync listOrdersPage(input: WalmartListOrdersPageInput = {}): Promise<WalmartListOrdersPageOutput> {\n\t\tconst parsedInput = parseInput(walmartListOrdersPageInputSchema, input, 'Invalid Walmart orders page input')\n\t\tconst { data } = await this.#get(\n\t\t\tpagePath('/v3/orders', parsedInput.cursor),\n\t\t\t'Walmart Marketplace listOrdersPage',\n\t\t\tparsedInput.cursor\n\t\t\t\t? undefined\n\t\t\t\t: {\n\t\t\t\t\t\tlimit: parsedInput.limit ?? DEFAULT_ORDERS_LIMIT,\n\t\t\t\t\t\t...(parsedInput.sku && { sku: parsedInput.sku }),\n\t\t\t\t\t\t...(parsedInput.customer_order_id && { customerOrderId: parsedInput.customer_order_id }),\n\t\t\t\t\t\t...(parsedInput.purchase_order_id && { purchaseOrderId: parsedInput.purchase_order_id }),\n\t\t\t\t\t\t...(parsedInput.status && { status: parsedInput.status }),\n\t\t\t\t\t\t...(parsedInput.created_start_date && { createdStartDate: parsedInput.created_start_date }),\n\t\t\t\t\t\t...(parsedInput.created_end_date && { createdEndDate: parsedInput.created_end_date }),\n\t\t\t\t\t\t...(parsedInput.expected_ship_start_date && {\n\t\t\t\t\t\t\tfromExpectedShipDate: parsedInput.expected_ship_start_date\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t...(parsedInput.expected_ship_end_date && { toExpectedShipDate: parsedInput.expected_ship_end_date }),\n\t\t\t\t\t\t...(parsedInput.last_modified_start_date && {\n\t\t\t\t\t\t\tlastModifiedStartDate: parsedInput.last_modified_start_date\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t...(parsedInput.last_modified_end_date && {\n\t\t\t\t\t\t\tlastModifiedEndDate: parsedInput.last_modified_end_date\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t...(parsedInput.product_info !== undefined && { productInfo: parsedInput.product_info }),\n\t\t\t\t\t\t...(parsedInput.ship_node_type && { shipNodeType: parsedInput.ship_node_type }),\n\t\t\t\t\t\t...(parsedInput.shipping_program_type && {\n\t\t\t\t\t\t\tshippingProgramType: parsedInput.shipping_program_type\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t...(parsedInput.replacement_info !== undefined && { replacementInfo: parsedInput.replacement_info }),\n\t\t\t\t\t\t...(parsedInput.order_type && { orderType: parsedInput.order_type }),\n\t\t\t\t\t\t...(parsedInput.incentive_info !== undefined && { incentiveInfo: parsedInput.incentive_info })\n\t\t\t\t\t}\n\t\t)\n\t\tconst response = parseResponse(\n\t\t\twalmartOrdersResponseSchema,\n\t\t\tdata,\n\t\t\t'Walmart Marketplace returned an invalid orders page'\n\t\t)\n\t\tconst nextCursor = response.list.meta.nextCursor ?? undefined\n\t\treturn {\n\t\t\titems: response.list.elements.order,\n\t\t\ttotal_count: response.list.meta.totalCount,\n\t\t\tlimit: response.list.meta.limit,\n\t\t\ttruncated: Boolean(nextCursor),\n\t\t\t...(nextCursor && { next_cursor: nextCursor })\n\t\t}\n\t}\n\n\t/** One GET /v3/items request. Cursor and offset are both exposed because Walmart's item cursor is reusable. */\n\tasync listItemsPage(input: WalmartListItemsPageInput = {}): Promise<WalmartListItemsPageOutput> {\n\t\tconst parsedInput = parseInput(walmartListItemsPageInputSchema, input, 'Invalid Walmart items page input')\n\t\tconst offset = parsedInput.offset ?? 0\n\t\tconst limit = parsedInput.limit ?? DEFAULT_ITEMS_LIMIT\n\t\tconst { data } = await this.#get('/v3/items', 'Walmart Marketplace listItemsPage', {\n\t\t\tnextCursor: parsedInput.cursor ?? '*',\n\t\t\toffset,\n\t\t\tlimit,\n\t\t\t...(parsedInput.cursor\n\t\t\t\t? {}\n\t\t\t\t: {\n\t\t\t\t\t\t...(parsedInput.sku && { sku: parsedInput.sku }),\n\t\t\t\t\t\t...(parsedInput.gtin && { gtin: parsedInput.gtin }),\n\t\t\t\t\t\t...(parsedInput.lifecycle_status && { lifecycleStatus: parsedInput.lifecycle_status }),\n\t\t\t\t\t\t...(parsedInput.published_status && { publishedStatus: parsedInput.published_status }),\n\t\t\t\t\t\t...(parsedInput.variant_group_id && { variantGroupId: parsedInput.variant_group_id }),\n\t\t\t\t\t\t...(parsedInput.condition && { condition: parsedInput.condition }),\n\t\t\t\t\t\t...(parsedInput.availability && { availability: parsedInput.availability }),\n\t\t\t\t\t\t...(parsedInput.show_duplicate_item_info !== undefined && {\n\t\t\t\t\t\t\tshowDuplicateItemInfo: parsedInput.show_duplicate_item_info\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t...(parsedInput.include_customer_favorites_status !== undefined && {\n\t\t\t\t\t\t\tincludeCustomerFavoritesStatus: parsedInput.include_customer_favorites_status\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t...(parsedInput.bundle_type && { bundleType: parsedInput.bundle_type })\n\t\t\t\t\t})\n\t\t})\n\t\tconst response = parseResponse(\n\t\t\twalmartItemsResponseSchema,\n\t\t\tdata,\n\t\t\t'Walmart Marketplace returned an invalid items page'\n\t\t)\n\t\tconst nextOffset = offset + response.items.length\n\t\tconst truncated = nextOffset < response.total_items\n\t\tconst nextCursor = response.next_cursor ?? undefined\n\t\treturn {\n\t\t\titems: response.items,\n\t\t\ttotal_count: response.total_items,\n\t\t\toffset,\n\t\t\tlimit,\n\t\t\ttruncated,\n\t\t\t...(nextCursor && { next_cursor: nextCursor }),\n\t\t\t...(truncated && { next_offset: nextOffset })\n\t\t}\n\t}\n\n\t/** One GET /v3/returns request. Provider nextCursor fragments are appended verbatim on subsequent pages. */\n\tasync listReturnsPage(input: WalmartListReturnsPageInput = {}): Promise<WalmartListReturnsPageOutput> {\n\t\tconst parsedInput = parseInput(walmartListReturnsPageInputSchema, input, 'Invalid Walmart returns page input')\n\t\tconst { data } = await this.#get(\n\t\t\tpagePath('/v3/returns', parsedInput.cursor),\n\t\t\t'Walmart Marketplace listReturnsPage',\n\t\t\tparsedInput.cursor\n\t\t\t\t? undefined\n\t\t\t\t: {\n\t\t\t\t\t\tlimit: parsedInput.limit ?? DEFAULT_RETURNS_LIMIT,\n\t\t\t\t\t\t...(parsedInput.return_order_id && { returnOrderId: parsedInput.return_order_id }),\n\t\t\t\t\t\t...(parsedInput.customer_order_id && { customerOrderId: parsedInput.customer_order_id }),\n\t\t\t\t\t\t...(parsedInput.status && { status: parsedInput.status }),\n\t\t\t\t\t\t...(parsedInput.replacement_info !== undefined && { replacementInfo: parsedInput.replacement_info }),\n\t\t\t\t\t\t...(parsedInput.return_type && { returnType: parsedInput.return_type }),\n\t\t\t\t\t\t...(parsedInput.is_wfs_enabled !== undefined && {\n\t\t\t\t\t\t\tisWFSEnabled: parsedInput.is_wfs_enabled ? 'Y' : 'N'\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t...(parsedInput.return_creation_start_date && {\n\t\t\t\t\t\t\treturnCreationStartDate: parsedInput.return_creation_start_date\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t...(parsedInput.return_creation_end_date && {\n\t\t\t\t\t\t\treturnCreationEndDate: parsedInput.return_creation_end_date\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t...(parsedInput.return_last_modified_start_date && {\n\t\t\t\t\t\t\treturnLastModifiedStartDate: parsedInput.return_last_modified_start_date\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t...(parsedInput.return_last_modified_end_date && {\n\t\t\t\t\t\t\treturnLastModifiedEndDate: parsedInput.return_last_modified_end_date\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t)\n\t\tconst response = parseResponse(\n\t\t\twalmartReturnsResponseSchema,\n\t\t\tdata,\n\t\t\t'Walmart Marketplace returned an invalid returns page'\n\t\t)\n\t\tconst nextCursor = response.meta.nextCursor ?? undefined\n\t\treturn {\n\t\t\titems: response.returnOrders,\n\t\t\ttotal_count: response.meta.totalCount,\n\t\t\tlimit: response.meta.limit,\n\t\t\ttruncated: Boolean(nextCursor),\n\t\t\t...(nextCursor && { next_cursor: nextCursor })\n\t\t}\n\t}\n\n\t/** GET /v3/report/reconreport/availableReconFiles?reportVersion=v1. */\n\tasync listReconReportDates(): Promise<WalmartListReconReportDatesOutput> {\n\t\tconst { data } = await this.#get(\n\t\t\t'/v3/report/reconreport/availableReconFiles',\n\t\t\t'Walmart Marketplace listReconReportDates',\n\t\t\t{ reportVersion: 'v1' }\n\t\t)\n\t\tconst response = parseResponse(\n\t\t\twalmartReconReportDatesResponseSchema,\n\t\t\tdata,\n\t\t\t'Walmart Marketplace returned invalid recon report dates'\n\t\t)\n\t\treturn { dates: response.availableApReportDates }\n\t}\n\n\t/** Host-facing raw recon report bytes. The caller may set max_bytes; no package-owned cap is imposed. */\n\tasync downloadReconReportBytes(\n\t\tinput: WalmartDownloadReconReportBytesInput\n\t): Promise<WalmartDownloadReconReportBytesOutput> {\n\t\tconst parsedInput = parseInput(\n\t\t\twalmartDownloadReconReportBytesInputSchema,\n\t\t\tinput,\n\t\t\t'Invalid Walmart recon report input'\n\t\t)\n\t\tconst result = await this.#http.bytes('GET', '/v3/report/reconreport/reconFile', {\n\t\t\tlabel: 'Walmart Marketplace downloadReconReportBytes',\n\t\t\theaders: await this.#headers('application/octet-stream'),\n\t\t\tquery: { reportDate: parsedInput.report_date, reportVersion: 'v1' },\n\t\t\t...(parsedInput.max_bytes !== undefined && { maxBytes: parsedInput.max_bytes })\n\t\t})\n\t\treturn {\n\t\t\treport_date: parsedInput.report_date,\n\t\t\tcontent_type: result.headers.get('content-type'),\n\t\t\tbyte_length: result.bytes.byteLength,\n\t\t\tbytes: result.bytes\n\t\t}\n\t}\n}\n","import { z } from 'zod'\n\nimport { defineModule, defineTool } from '../../core/define'\nimport { WalmartClient } from './client'\nimport {\n\twalmartAuthSchema,\n\twalmartListItemsPageInputSchema,\n\twalmartListItemsPageOutputSchema,\n\twalmartListOrdersPageInputSchema,\n\twalmartListOrdersPageOutputSchema,\n\twalmartListReconReportDatesOutputSchema,\n\twalmartListReturnsPageInputSchema,\n\twalmartListReturnsPageOutputSchema\n} from './contracts'\n\nconst emptyInputSchema = z.strictObject({}).describe('No input fields')\n\nexport const walmartListOrdersTool = defineTool({\n\tid: 'walmart-list-orders',\n\tname: 'walmartListOrders',\n\tdescription:\n\t\t'List one Walmart Marketplace US orders page with order-id, status, fulfillment, and creation or modification date filters.',\n\tinputSchema: walmartListOrdersPageInputSchema,\n\toutputSchema: walmartListOrdersPageOutputSchema,\n\tsideEffect: 'read',\n\truntime: 'both',\n\tidempotent: true,\n\tnetwork: true,\n\tsupportsCancel: true,\n\ttags: ['orders', 'sales', 'fulfillment'],\n\texecute: async (input, ctx) => WalmartClient.fromContext(ctx).listOrdersPage(input)\n})\n\nexport const walmartListItemsTool = defineTool({\n\tid: 'walmart-list-items',\n\tname: 'walmartListItems',\n\tdescription:\n\t\t'List one Walmart Marketplace US catalog page with SKU, GTIN, lifecycle, publication, availability, variant, duplicate, and virtual-pack filters.',\n\tinputSchema: walmartListItemsPageInputSchema,\n\toutputSchema: walmartListItemsPageOutputSchema,\n\tsideEffect: 'read',\n\truntime: 'both',\n\tidempotent: true,\n\tnetwork: true,\n\tsupportsCancel: true,\n\ttags: ['items', 'catalog', 'inventory'],\n\texecute: async (input, ctx) => WalmartClient.fromContext(ctx).listItemsPage(input)\n})\n\nexport const walmartListReturnsTool = defineTool({\n\tid: 'walmart-list-returns',\n\tname: 'walmartListReturns',\n\tdescription:\n\t\t'List one Walmart Marketplace US returns page with RMA, order, status, type, WFS, and creation or modification date filters.',\n\tinputSchema: walmartListReturnsPageInputSchema,\n\toutputSchema: walmartListReturnsPageOutputSchema,\n\tsideEffect: 'read',\n\truntime: 'both',\n\tidempotent: true,\n\tnetwork: true,\n\tsupportsCancel: true,\n\ttags: ['returns', 'refunds', 'orders'],\n\texecute: async (input, ctx) => WalmartClient.fromContext(ctx).listReturnsPage(input)\n})\n\nexport const walmartListReconReportDatesTool = defineTool({\n\tid: 'walmart-list-recon-report-dates',\n\tname: 'walmartListReconReportDates',\n\tdescription:\n\t\t'List the Walmart Marketplace US legacy V1 reconciliation report dates currently available for download.',\n\tinputSchema: emptyInputSchema,\n\toutputSchema: walmartListReconReportDatesOutputSchema,\n\tsideEffect: 'read',\n\truntime: 'both',\n\tidempotent: true,\n\tnetwork: true,\n\tsupportsCancel: true,\n\ttags: ['reports', 'reconciliation', 'payments'],\n\texecute: async (_input, ctx) => WalmartClient.fromContext(ctx).listReconReportDates()\n})\n\nexport const walmartModule = defineModule({\n\tid: 'walmart',\n\ttitle: 'Walmart Marketplace',\n\tdescription: 'Walmart Marketplace US read pack for orders, catalog items, returns, and reconciliation reports.',\n\truntime: 'both',\n\tauth: { type: 'custom', schema: walmartAuthSchema },\n\tcategories: ['commerce', 'marketplace'],\n\tclassification: 'pii',\n\ttags: ['orders', 'items', 'returns', 'reconciliation', 'walmart'],\n\ttools: [walmartListOrdersTool, walmartListItemsTool, walmartListReturnsTool, walmartListReconReportDatesTool]\n})\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as ToolError } from "../../errors-DoSpNHvs.js";
|
|
2
|
-
import { n as defineModule, r as defineTool } from "../../define-
|
|
2
|
+
import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
|
|
3
3
|
import { n as requireAuth } from "../../provider-CgDAlg6K.js";
|
|
4
4
|
import { a as retryAfterMsFromHeader, r as httpErrorCode, t as HttpService } from "../../http-service-BMBIryAL.js";
|
|
5
5
|
import { n as bytesToBase64, o as utf8ToBytes } from "../../bytes-BxpimpQx.js";
|
package/logos/README.md
CHANGED
|
@@ -84,3 +84,4 @@ Downloaded from [Lucide](https://lucide.dev) / `lucide-static@0.469.0` (ISC). Se
|
|
|
84
84
|
| --- | --- |
|
|
85
85
|
| `shipstation` | [ShipStation primary logo](https://www.shipstation.com/wp-content/uploads/2026/02/logo-ss-primary-rgb-1-1.svg) |
|
|
86
86
|
| `teams` | Wikimedia Commons [Microsoft Office Teams (2025–present)](https://upload.wikimedia.org/wikipedia/commons/0/07/Microsoft_Office_Teams_%282025%E2%80%93present%29.svg) |
|
|
87
|
+
| `walmart` | [Walmart Brand Center Spark](https://brandcenter.walmart.com/brand/brand-identity/spark) |
|
package/logos/pack-logos.json
CHANGED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 371 418" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M261.164 190.042C269.861 188.256 346.779 153.009 353.64 149.046C369.317 139.994 374.684 119.951 365.633 104.281C356.581 88.6112 336.538 83.2373 320.868 92.2889C314 96.2516 245.021 145.243 239.125 151.875C232.368 159.481 231.2 170.354 236.199 179.009C241.197 187.665 251.201 192.093 261.164 190.042Z" fill="#FFC220"/>
|
|
3
|
+
<path d="M353.64 268.08C346.772 264.117 269.854 228.87 261.164 227.083C251.201 225.032 241.197 229.454 236.199 238.116C231.2 246.771 232.368 257.651 239.125 265.25C245.021 271.882 314.007 320.874 320.868 324.837C336.545 333.888 356.588 328.514 365.633 312.844C374.684 297.167 369.311 277.124 353.64 268.08Z" fill="#FFC220"/>
|
|
4
|
+
<path d="M185.017 267.663C175.02 267.663 166.184 274.115 162.979 283.764C160.184 292.19 152.245 376.422 152.245 384.347C152.245 402.444 166.914 417.119 185.017 417.119C203.121 417.119 217.79 402.451 217.79 384.347C217.79 376.422 209.85 292.183 207.056 283.764C203.851 274.108 195.014 267.663 185.017 267.663Z" fill="#FFC220"/>
|
|
5
|
+
<path d="M108.872 227.084C100.182 228.871 23.2572 264.118 16.3955 268.08C0.718485 277.132 -4.64854 297.175 4.4031 312.845C13.4547 328.522 33.4977 333.889 49.1677 324.837C56.0364 320.875 125.015 271.883 130.911 265.251C137.668 257.645 138.836 246.772 133.837 238.117C128.839 229.461 118.835 225.033 108.872 227.084Z" fill="#FFC220"/>
|
|
6
|
+
<path d="M49.1662 92.2889C33.4892 83.2373 13.4463 88.6112 4.40158 104.281C-4.65006 119.958 0.723919 140.001 16.394 149.046C23.2626 153.009 100.181 188.256 108.871 190.042C118.833 192.093 128.837 187.672 133.836 179.009C138.834 170.354 137.667 159.474 130.909 151.875C125.014 145.243 56.0349 96.2516 49.1662 92.2889Z" fill="#FFC220"/>
|
|
7
|
+
<path d="M185.017 0C166.921 0 152.245 14.6689 152.245 32.7722C152.245 40.6976 160.184 124.936 162.979 133.362C166.184 143.019 175.02 149.463 185.017 149.463C195.014 149.463 203.851 143.012 207.056 133.362C209.85 124.936 217.79 40.7046 217.79 32.7722C217.79 14.6759 203.121 0 185.017 0Z" fill="#FFC220"/>
|
|
8
|
+
</svg>
|