@5ss/ai-tools 2.11.2 → 2.11.4
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 +4 -0
- package/README.md +3 -10
- package/dist/{bedrock-agentcore-browser-a_qOs-NR.js → bedrock-agentcore-browser-o_oqSPMK.js} +2 -2
- package/dist/{bedrock-agentcore-browser-a_qOs-NR.js.map → bedrock-agentcore-browser-o_oqSPMK.js.map} +1 -1
- package/dist/{bedrock-agentcore-code-interpreter-MWK-8RhA.js → bedrock-agentcore-code-interpreter-D4ERRFj1.js} +2 -2
- package/dist/{bedrock-agentcore-code-interpreter-MWK-8RhA.js.map → bedrock-agentcore-code-interpreter-D4ERRFj1.js.map} +1 -1
- package/dist/{cloudflare-browser-B6Yolpin.js → cloudflare-browser-nLJdH5nG.js} +3 -3
- package/dist/{cloudflare-browser-B6Yolpin.js.map → cloudflare-browser-nLJdH5nG.js.map} +1 -1
- package/dist/{cloudflare-email-Dy0KHeDf.js → cloudflare-email-CSRq8mRd.js} +2 -2
- package/dist/{cloudflare-email-Dy0KHeDf.js.map → cloudflare-email-CSRq8mRd.js.map} +1 -1
- package/dist/{cloudflare-sandbox-Dp_uNaqW.js → cloudflare-sandbox-Be7SeS4-.js} +3 -3
- package/dist/{cloudflare-sandbox-Dp_uNaqW.js.map → cloudflare-sandbox-Be7SeS4-.js.map} +1 -1
- package/dist/content-type-E4_Qdoa0.js +19 -0
- package/dist/{content-type-CORxaxcv.js.map → content-type-E4_Qdoa0.js.map} +1 -1
- package/dist/core/index.js +2 -6
- package/dist/core/index.js.map +1 -1
- package/dist/{define-CvpJ_pNP.js → define-ieoksEQ0.js} +1 -6
- package/dist/define-ieoksEQ0.js.map +1 -0
- package/dist/{eventbridge-scheduler-Bh6GqZY2.js → eventbridge-scheduler-BhQaReAz.js} +2 -2
- package/dist/{eventbridge-scheduler-Bh6GqZY2.js.map → eventbridge-scheduler-BhQaReAz.js.map} +1 -1
- package/dist/http/index.d.ts +1 -1
- package/dist/{http-service-T7E5UjP8.d.ts → http-service-CerzWwQO.d.ts} +3 -2
- package/dist/http-service-CerzWwQO.d.ts.map +1 -0
- package/dist/http-service-DDNCO1s4.js.map +1 -1
- package/dist/{client-CCKGsTeI.js → imessage-CofjmONG.js} +152 -2
- package/dist/imessage-CofjmONG.js.map +1 -0
- package/dist/{index-Cuh6eMWc.d.ts → index-9oSRRNdR.d.ts} +2 -2
- package/dist/{index-Cuh6eMWc.d.ts.map → index-9oSRRNdR.d.ts.map} +1 -1
- package/dist/{index-zK1ZwS4m.d.ts → index-ByHp3nZm.d.ts} +2 -2
- package/dist/{index-zK1ZwS4m.d.ts.map → index-ByHp3nZm.d.ts.map} +1 -1
- package/dist/{index-BU4gmYO8.d.ts → index-C-Cuh9it.d.ts} +2 -2
- package/dist/{index-BU4gmYO8.d.ts.map → index-C-Cuh9it.d.ts.map} +1 -1
- package/dist/index-CZX5OeOF.d.ts.map +1 -1
- package/dist/{index-CdFmEfZO.d.ts → index-CtfpOZWu.d.ts} +2 -2
- package/dist/{index-CdFmEfZO.d.ts.map → index-CtfpOZWu.d.ts.map} +1 -1
- package/dist/{index-n8JTpNf1.d.ts → index-DngnGGiS.d.ts} +2 -2
- package/dist/{index-n8JTpNf1.d.ts.map → index-DngnGGiS.d.ts.map} +1 -1
- package/dist/{index-DuOGj7vc.d.ts → index-DsTt2EbS.d.ts} +2 -2
- package/dist/{index-DuOGj7vc.d.ts.map → index-DsTt2EbS.d.ts.map} +1 -1
- package/dist/{index-pwW1OsOx.d.ts → index-Y8p8bsWU.d.ts} +2 -2
- package/dist/{index-pwW1OsOx.d.ts.map → index-Y8p8bsWU.d.ts.map} +1 -1
- package/dist/{mastra-vector-Dhc6XZ8l.js → mastra-vector-B8HjvdMT.js} +2 -2
- package/dist/{mastra-vector-Dhc6XZ8l.js.map → mastra-vector-B8HjvdMT.js.map} +1 -1
- package/dist/modules/artifacts/index.d.ts +1 -1
- package/dist/modules/artifacts/index.js +3 -3
- package/dist/modules/browser/index.d.ts +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 +2 -2
- package/dist/modules/crypto/index.js +1 -1
- package/dist/modules/document-extract/index.d.ts +1 -1
- package/dist/modules/document-extract/index.js +2 -2
- package/dist/modules/document-render/index.d.ts +21 -30
- package/dist/modules/document-render/index.d.ts.map +1 -1
- package/dist/modules/document-render/index.js +11 -28
- package/dist/modules/document-render/index.js.map +1 -1
- package/dist/modules/email/index.d.ts +21 -3
- package/dist/modules/email/index.d.ts.map +1 -1
- 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.d.ts +4 -1
- package/dist/modules/image/index.d.ts.map +1 -1
- package/dist/modules/image/index.js +25 -4
- package/dist/modules/image/index.js.map +1 -1
- package/dist/modules/messaging/index.d.ts +1 -1
- package/dist/modules/messaging/index.js +7 -7
- package/dist/modules/messaging/index.js.map +1 -1
- package/dist/modules/queue/index.d.ts +1 -1
- package/dist/modules/queue/index.js +2 -2
- package/dist/modules/rag/index.d.ts +1 -1
- package/dist/modules/rag/index.js +2 -2
- package/dist/modules/scheduler/index.d.ts +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-umY4t6OF.js → pinecone-CNnCFmix.js} +2 -2
- package/dist/{pinecone-umY4t6OF.js.map → pinecone-CNnCFmix.js.map} +1 -1
- package/dist/{qdrant-DMp4NhKR.js → qdrant-R_FIcG9d.js} +2 -2
- package/dist/{qdrant-DMp4NhKR.js.map → qdrant-R_FIcG9d.js.map} +1 -1
- package/dist/{resend-BAC38_dA.js → resend-Bu0NFO3h.js} +2 -2
- package/dist/{resend-BAC38_dA.js.map → resend-Bu0NFO3h.js.map} +1 -1
- package/dist/{s3-CsOaPWMP.js → s3-Dj7Teh-A.js} +2 -2
- package/dist/{s3-CsOaPWMP.js.map → s3-Dj7Teh-A.js.map} +1 -1
- package/dist/{slack-Di5BBNpt.js → slack-AjJDNnXJ.js} +2 -2
- package/dist/{slack-Di5BBNpt.js.map → slack-AjJDNnXJ.js.map} +1 -1
- package/dist/{sqs-DCwS1i2N.js → sqs-CjyXjasF.js} +2 -2
- package/dist/{sqs-DCwS1i2N.js.map → sqs-CjyXjasF.js.map} +1 -1
- package/dist/{supabase-vector-Dpp9mmJR.js → supabase-vector-BNoJZuft.js} +2 -2
- package/dist/{supabase-vector-Dpp9mmJR.js.map → supabase-vector-BNoJZuft.js.map} +1 -1
- package/dist/{teams-DYAHNb39.js → teams-CvxYLAi5.js} +2 -2
- package/dist/{teams-DYAHNb39.js.map → teams-CvxYLAi5.js.map} +1 -1
- package/dist/{telegram-DDXWzkfL.js → telegram-B_-Jljk3.js} +2 -2
- package/dist/{telegram-DDXWzkfL.js.map → telegram-B_-Jljk3.js.map} +1 -1
- package/dist/{textract-CPLiB22H.js → textract-CAfnGvua.js} +3 -3
- package/dist/{textract-CPLiB22H.js.map → textract-CAfnGvua.js.map} +1 -1
- package/dist/{vector-store-C3nEO80e.js → vector-store-DDiu3XPg.js} +6 -6
- package/dist/{vector-store-C3nEO80e.js.map → vector-store-DDiu3XPg.js.map} +1 -1
- package/dist/vendors/amazon-sp-api/index.d.ts +267 -18
- package/dist/vendors/amazon-sp-api/index.d.ts.map +1 -1
- package/dist/vendors/amazon-sp-api/index.js +821 -212
- package/dist/vendors/amazon-sp-api/index.js.map +1 -1
- package/dist/vendors/bedrock-agentcore-browser/index.d.ts +1 -1
- package/dist/vendors/bedrock-agentcore-browser/index.js +1 -1
- package/dist/vendors/bedrock-agentcore-code-interpreter/index.d.ts +1 -1
- package/dist/vendors/bedrock-agentcore-code-interpreter/index.js +1 -1
- package/dist/vendors/cloudflare-browser/index.d.ts +1 -1
- package/dist/vendors/cloudflare-browser/index.js +1 -1
- package/dist/vendors/cloudflare-email/index.d.ts +1 -1
- package/dist/vendors/cloudflare-email/index.js +1 -1
- package/dist/vendors/cloudflare-sandbox/index.d.ts +1 -1
- package/dist/vendors/cloudflare-sandbox/index.js +1 -1
- package/dist/vendors/eventbridge-scheduler/index.d.ts +1 -1
- package/dist/vendors/eventbridge-scheduler/index.js +1 -1
- package/dist/vendors/imessage/index.js +1 -2
- package/dist/vendors/katana/index.d.ts +371 -2
- package/dist/vendors/katana/index.d.ts.map +1 -1
- package/dist/vendors/katana/index.js +541 -199
- package/dist/vendors/katana/index.js.map +1 -1
- package/dist/vendors/mastra-vector/index.js +1 -1
- package/dist/vendors/pinecone/index.d.ts +1 -1
- package/dist/vendors/pinecone/index.js +1 -1
- package/dist/vendors/qdrant/index.d.ts +1 -1
- package/dist/vendors/qdrant/index.js +1 -1
- package/dist/vendors/resend/index.d.ts +1 -1
- package/dist/vendors/resend/index.js +1 -1
- package/dist/vendors/s3/index.d.ts +1 -1
- package/dist/vendors/s3/index.js +1 -1
- package/dist/vendors/slack/index.d.ts +1 -1
- package/dist/vendors/slack/index.js +1 -1
- package/dist/vendors/sqs/index.d.ts +1 -1
- package/dist/vendors/sqs/index.js +1 -1
- package/dist/vendors/supabase-vector/index.d.ts +1 -1
- package/dist/vendors/supabase-vector/index.js +1 -1
- package/dist/vendors/teams/index.d.ts +1 -1
- package/dist/vendors/teams/index.js +1 -1
- package/dist/vendors/telegram/index.d.ts +1 -1
- package/dist/vendors/telegram/index.js +1 -1
- package/dist/vendors/textract/index.d.ts +1 -1
- package/dist/vendors/textract/index.js +1 -1
- package/dist/vendors/woocommerce/index.d.ts +1 -1
- package/dist/vendors/woocommerce/index.js +1 -1
- package/logos/README.md +0 -4
- package/logos/pack-logos.json +0 -5
- package/package.json +4 -38
- package/dist/artifacts-O8g-40Pw.js +0 -404
- package/dist/artifacts-O8g-40Pw.js.map +0 -1
- package/dist/batch-BMM5dXqL.d.ts +0 -22
- package/dist/batch-BMM5dXqL.d.ts.map +0 -1
- package/dist/client-CCKGsTeI.js.map +0 -1
- package/dist/content-type-CORxaxcv.js +0 -49
- package/dist/define-CvpJ_pNP.js.map +0 -1
- package/dist/gotenberg-NuJjxyln.js +0 -291
- package/dist/gotenberg-NuJjxyln.js.map +0 -1
- package/dist/http-service-T7E5UjP8.d.ts.map +0 -1
- package/dist/imessage-BSAFOI8Z.js +0 -154
- package/dist/imessage-BSAFOI8Z.js.map +0 -1
- package/dist/modules/document/index.d.ts +0 -575
- package/dist/modules/document/index.d.ts.map +0 -1
- package/dist/modules/document/index.js +0 -444
- package/dist/modules/document/index.js.map +0 -1
- package/dist/modules/file-convert/index.d.ts +0 -273
- package/dist/modules/file-convert/index.d.ts.map +0 -1
- package/dist/modules/file-convert/index.js +0 -103
- package/dist/modules/file-convert/index.js.map +0 -1
- package/dist/modules/pdf/index.d.ts +0 -287
- package/dist/modules/pdf/index.d.ts.map +0 -1
- package/dist/modules/pdf/index.js +0 -259
- package/dist/modules/pdf/index.js.map +0 -1
- package/dist/modules/presentation/index.d.ts +0 -247
- package/dist/modules/presentation/index.d.ts.map +0 -1
- package/dist/modules/presentation/index.js +0 -12657
- package/dist/modules/presentation/index.js.map +0 -1
- package/dist/object-artifact-store-CMTzCm_G.d.ts +0 -7
- package/dist/object-artifact-store-CMTzCm_G.d.ts.map +0 -1
- package/dist/object-artifact-store-wZ2j9cto.js +0 -28
- package/dist/object-artifact-store-wZ2j9cto.js.map +0 -1
- package/dist/vendors/gotenberg/index.d.ts +0 -306
- package/dist/vendors/gotenberg/index.d.ts.map +0 -1
- package/dist/vendors/gotenberg/index.js +0 -2
- package/logos/document.svg +0 -10
- package/logos/file-convert.svg +0 -9
- package/logos/gotenberg.svg +0 -340
- package/logos/pdf.svg +0 -10
- package/logos/presentation.svg +0 -8
|
@@ -1,10 +1,10 @@
|
|
|
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-ieoksEQ0.js";
|
|
3
3
|
import { n as requireAuth } from "../../provider-CgDAlg6K.js";
|
|
4
4
|
import { t as HttpService } from "../../http-service-DDNCO1s4.js";
|
|
5
|
-
import {
|
|
6
|
-
import { isPlainObject, isString } from "es-toolkit";
|
|
5
|
+
import { r as bytesToUtf8 } from "../../bytes-BxpimpQx.js";
|
|
7
6
|
import { z } from "zod";
|
|
7
|
+
import { createRequire } from "module";
|
|
8
8
|
import Decimal from "decimal.js";
|
|
9
9
|
import Papa from "papaparse";
|
|
10
10
|
//#region src/vendors/amazon-sp-api/contracts.ts
|
|
@@ -18,12 +18,14 @@ const amazonSpApiAuthSchema = z.object({
|
|
|
18
18
|
client_id: z.string().min(1).describe("LWA client id"),
|
|
19
19
|
client_secret: z.string().min(1).describe("LWA client secret"),
|
|
20
20
|
refresh_token: z.string().min(1).describe("LWA refresh token for the selling partner"),
|
|
21
|
-
access_key_id: z.string().min(1).describe("AWS access key id for SP-API SigV4"),
|
|
22
|
-
secret_access_key: z.string().min(1).describe("AWS secret access key for SP-API SigV4"),
|
|
23
|
-
region: z.string().min(1).describe("AWS region used for SigV4 (typically us-east-1 for NA, eu-west-1 for EU, us-west-2 for FE)"),
|
|
24
21
|
endpoint: amazonSpApiEndpointSchema.describe("SP-API regional endpoint"),
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
marketplace_ids: z.array(z.string().min(1)).min(1).optional().describe("Default marketplace ids when a tool call omits marketplace_ids"),
|
|
23
|
+
user_agent: z.string().min(1).describe("Application user agent sent with every SP-API request")
|
|
24
|
+
});
|
|
25
|
+
const amazonSpApiLwaTokenResponseSchema = z.object({
|
|
26
|
+
access_token: z.string().min(1),
|
|
27
|
+
token_type: z.string().min(1),
|
|
28
|
+
expires_in: z.number().int().positive()
|
|
27
29
|
});
|
|
28
30
|
const amazonSpApiListOrdersInputSchema = z.object({
|
|
29
31
|
marketplace_ids: z.array(z.string().min(1)).min(1).optional().describe("Marketplace ids; omit to use the configured defaults"),
|
|
@@ -89,6 +91,88 @@ const amazonSpApiSearchOrdersOutputSchema = z.object({
|
|
|
89
91
|
next_cursor: z.string().optional().describe("paginationToken for the next page when not fully drained"),
|
|
90
92
|
truncated: z.boolean()
|
|
91
93
|
});
|
|
94
|
+
const amazonInventoryDateTimeSchema = z.iso.datetime({ offset: true });
|
|
95
|
+
function eighteenMonthsBeforeNow() {
|
|
96
|
+
const oldestAllowed = /* @__PURE__ */ new Date();
|
|
97
|
+
const currentDay = oldestAllowed.getUTCDate();
|
|
98
|
+
oldestAllowed.setUTCDate(1);
|
|
99
|
+
oldestAllowed.setUTCMonth(oldestAllowed.getUTCMonth() - 18);
|
|
100
|
+
const lastDayOfTargetMonth = new Date(Date.UTC(oldestAllowed.getUTCFullYear(), oldestAllowed.getUTCMonth() + 1, 0)).getUTCDate();
|
|
101
|
+
oldestAllowed.setUTCDate(Math.min(currentDay, lastDayOfTargetMonth));
|
|
102
|
+
return oldestAllowed.getTime();
|
|
103
|
+
}
|
|
104
|
+
const amazonInventoryFullPageInputSchema = z.strictObject({
|
|
105
|
+
mode: z.literal("full"),
|
|
106
|
+
marketplace_id: z.string().min(1),
|
|
107
|
+
next_token: z.string().min(1).optional()
|
|
108
|
+
});
|
|
109
|
+
const amazonInventoryIncrementalPageInputSchema = z.strictObject({
|
|
110
|
+
mode: z.literal("incremental"),
|
|
111
|
+
marketplace_id: z.string().min(1),
|
|
112
|
+
start_date_time: amazonInventoryDateTimeSchema,
|
|
113
|
+
next_token: z.string().min(1).optional()
|
|
114
|
+
});
|
|
115
|
+
const amazonSpApiInventoryPageInputSchema = z.discriminatedUnion("mode", [amazonInventoryFullPageInputSchema, amazonInventoryIncrementalPageInputSchema]).superRefine((input, context) => {
|
|
116
|
+
if (input.mode !== "incremental") return;
|
|
117
|
+
if (Date.parse(input.start_date_time) < eighteenMonthsBeforeNow()) context.addIssue({
|
|
118
|
+
code: "custom",
|
|
119
|
+
path: ["start_date_time"],
|
|
120
|
+
message: "start_date_time cannot be more than 18 months in the past"
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
const amazonInventoryReservedQuantityRawSchema = z.looseObject({
|
|
124
|
+
totalReservedQuantity: z.number().optional(),
|
|
125
|
+
pendingCustomerOrderQuantity: z.number().optional(),
|
|
126
|
+
pendingTransshipmentQuantity: z.number().optional(),
|
|
127
|
+
fcProcessingQuantity: z.number().optional()
|
|
128
|
+
});
|
|
129
|
+
const amazonInventoryResearchingQuantityBreakdownRawSchema = z.looseObject({
|
|
130
|
+
name: z.enum([
|
|
131
|
+
"researchingQuantityInShortTerm",
|
|
132
|
+
"researchingQuantityInMidTerm",
|
|
133
|
+
"researchingQuantityInLongTerm"
|
|
134
|
+
]),
|
|
135
|
+
quantity: z.int()
|
|
136
|
+
});
|
|
137
|
+
const amazonInventoryResearchingQuantityRawSchema = z.looseObject({
|
|
138
|
+
totalResearchingQuantity: z.number().optional(),
|
|
139
|
+
researchingQuantityBreakdown: z.array(amazonInventoryResearchingQuantityBreakdownRawSchema).optional()
|
|
140
|
+
});
|
|
141
|
+
const amazonInventoryUnfulfillableQuantityRawSchema = z.looseObject({
|
|
142
|
+
totalUnfulfillableQuantity: z.number().optional(),
|
|
143
|
+
customerDamagedQuantity: z.number().optional(),
|
|
144
|
+
warehouseDamagedQuantity: z.number().optional(),
|
|
145
|
+
distributorDamagedQuantity: z.number().optional(),
|
|
146
|
+
carrierDamagedQuantity: z.number().optional(),
|
|
147
|
+
defectiveQuantity: z.number().optional(),
|
|
148
|
+
expiredQuantity: z.number().optional()
|
|
149
|
+
});
|
|
150
|
+
const amazonInventoryDetailsRawSchema = z.looseObject({
|
|
151
|
+
fulfillableQuantity: z.number().optional(),
|
|
152
|
+
inboundWorkingQuantity: z.number().optional(),
|
|
153
|
+
inboundShippedQuantity: z.number().optional(),
|
|
154
|
+
inboundReceivingQuantity: z.number().optional(),
|
|
155
|
+
reservedQuantity: amazonInventoryReservedQuantityRawSchema.optional(),
|
|
156
|
+
researchingQuantity: amazonInventoryResearchingQuantityRawSchema.optional(),
|
|
157
|
+
unfulfillableQuantity: amazonInventoryUnfulfillableQuantityRawSchema.optional()
|
|
158
|
+
});
|
|
159
|
+
const amazonInventorySummaryRawSchema = z.looseObject({
|
|
160
|
+
asin: z.string().optional(),
|
|
161
|
+
fnSku: z.string().optional(),
|
|
162
|
+
sellerSku: z.string().optional(),
|
|
163
|
+
condition: z.string().optional(),
|
|
164
|
+
productName: z.string().optional(),
|
|
165
|
+
totalQuantity: z.number().optional(),
|
|
166
|
+
lastUpdatedTime: z.string().optional(),
|
|
167
|
+
stores: z.array(z.string()).optional(),
|
|
168
|
+
inventoryDetails: amazonInventoryDetailsRawSchema.optional()
|
|
169
|
+
});
|
|
170
|
+
const amazonSpApiInventoryPageOutputSchema = z.object({
|
|
171
|
+
items: z.array(amazonInventorySummaryRawSchema),
|
|
172
|
+
next_token: z.string().optional(),
|
|
173
|
+
rate_limit_per_second: z.number().optional(),
|
|
174
|
+
request_id: z.string().optional()
|
|
175
|
+
});
|
|
92
176
|
const amazonSpApiListInventorySummariesInputSchema = z.object({
|
|
93
177
|
marketplace_id: z.string().min(1).optional().describe("Marketplace id; omit to use the first configured default"),
|
|
94
178
|
seller_skus: z.array(z.string().min(1)).max(50).optional().describe("Optional seller SKU filter (max 50)"),
|
|
@@ -128,14 +212,37 @@ const amazonSpApiReportSchema = z.object({
|
|
|
128
212
|
created_time: z.string().optional()
|
|
129
213
|
});
|
|
130
214
|
const amazonSpApiGetReportOutputSchema = z.object({ report: amazonSpApiReportSchema });
|
|
131
|
-
const
|
|
132
|
-
report_types: z.array(z.string().min(1)).
|
|
215
|
+
const amazonSpApiListReportsInitialFields = {
|
|
216
|
+
report_types: z.array(z.string().min(1)).min(1).max(10).describe("Filter by 1-10 report types"),
|
|
133
217
|
processing_statuses: z.array(z.string().min(1)).optional().describe("Filter by processing status (e.g. DONE, IN_QUEUE, IN_PROGRESS, CANCELLED, FATAL)"),
|
|
134
218
|
marketplace_ids: z.array(z.string().min(1)).min(1).optional().describe("Marketplace ids filter; omit to use configured defaults when available"),
|
|
135
219
|
page_size: z.int().min(1).max(100).optional().describe("Page size (1-100)"),
|
|
136
|
-
created_since: z.
|
|
137
|
-
created_until: z.
|
|
138
|
-
|
|
220
|
+
created_since: z.iso.datetime({ offset: true }).optional().describe("ISO 8601; reports created after"),
|
|
221
|
+
created_until: z.iso.datetime({ offset: true }).optional().describe("ISO 8601; reports created before")
|
|
222
|
+
};
|
|
223
|
+
const amazonSpApiListReportsInitialInputSchema = z.strictObject(amazonSpApiListReportsInitialFields);
|
|
224
|
+
const amazonSpApiListReportsCursorInputSchema = z.strictObject({ cursor: z.string().min(1).describe("nextToken from a prior page") });
|
|
225
|
+
const amazonSpApiListReportsInputSchema = z.union([amazonSpApiListReportsInitialInputSchema, amazonSpApiListReportsCursorInputSchema]);
|
|
226
|
+
const amazonReportRawSchema = z.looseObject({
|
|
227
|
+
reportId: z.string().min(1),
|
|
228
|
+
reportType: z.string().optional(),
|
|
229
|
+
processingStatus: z.string().optional(),
|
|
230
|
+
marketplaceIds: z.array(z.string()).optional(),
|
|
231
|
+
dataStartTime: z.string().optional(),
|
|
232
|
+
dataEndTime: z.string().optional(),
|
|
233
|
+
reportScheduleId: z.string().optional(),
|
|
234
|
+
createdTime: z.string().optional(),
|
|
235
|
+
processingStartTime: z.string().optional(),
|
|
236
|
+
processingEndTime: z.string().optional(),
|
|
237
|
+
reportDocumentId: z.string().optional()
|
|
238
|
+
});
|
|
239
|
+
const amazonSpApiListReportsContinuationInputSchema = z.strictObject({ next_token: z.string().min(1) });
|
|
240
|
+
const amazonSpApiListReportsPageInputSchema = z.union([amazonSpApiListReportsInitialInputSchema, amazonSpApiListReportsContinuationInputSchema]);
|
|
241
|
+
const amazonSpApiListReportsPageOutputSchema = z.object({
|
|
242
|
+
items: z.array(amazonReportRawSchema),
|
|
243
|
+
next_token: z.string().optional(),
|
|
244
|
+
rate_limit_per_second: z.number().optional(),
|
|
245
|
+
request_id: z.string().optional()
|
|
139
246
|
});
|
|
140
247
|
const amazonSpApiListReportsOutputSchema = z.object({
|
|
141
248
|
items: z.array(amazonSpApiReportSchema),
|
|
@@ -148,6 +255,18 @@ const amazonSpApiGetReportDocumentOutputSchema = z.object({
|
|
|
148
255
|
url: z.string(),
|
|
149
256
|
compression_algorithm: z.string().optional()
|
|
150
257
|
});
|
|
258
|
+
const amazonSpApiDownloadReportDocumentBytesInputSchema = z.strictObject({
|
|
259
|
+
report_document_id: z.string().min(1),
|
|
260
|
+
max_bytes: z.int().positive()
|
|
261
|
+
});
|
|
262
|
+
const amazonSpApiDownloadReportDocumentBytesOutputSchema = z.object({
|
|
263
|
+
bytes: z.custom((value) => value instanceof Uint8Array),
|
|
264
|
+
text: z.string(),
|
|
265
|
+
byte_length: z.int().nonnegative(),
|
|
266
|
+
content_type: z.string().optional(),
|
|
267
|
+
content_encoding: z.string().optional(),
|
|
268
|
+
compression_algorithm: z.enum(["GZIP"]).optional()
|
|
269
|
+
});
|
|
151
270
|
/**
|
|
152
271
|
* Composite input: pick newest completed V2 settlement report in the retention
|
|
153
272
|
* window (default 90d), download one document, return eight summary fields only.
|
|
@@ -194,6 +313,61 @@ const amazonSpApiSearchCatalogItemsOutputSchema = z.object({
|
|
|
194
313
|
* Amazon SP-API: LWA body, order/inventory/report/catalog parse (no HTTP).
|
|
195
314
|
*/
|
|
196
315
|
const LWA_TOKEN_URL = "https://api.amazon.com/auth/o2/token";
|
|
316
|
+
const amazonMoneyRawSchema = z.looseObject({
|
|
317
|
+
Amount: z.string().optional(),
|
|
318
|
+
CurrencyCode: z.string().optional()
|
|
319
|
+
});
|
|
320
|
+
const amazonOrderRawSchema = z.looseObject({
|
|
321
|
+
AmazonOrderId: z.string().min(1),
|
|
322
|
+
OrderStatus: z.string().optional(),
|
|
323
|
+
PurchaseDate: z.string().optional(),
|
|
324
|
+
LastUpdateDate: z.string().optional(),
|
|
325
|
+
MarketplaceId: z.string().optional(),
|
|
326
|
+
OrderTotal: amazonMoneyRawSchema.optional(),
|
|
327
|
+
FulfillmentChannel: z.string().optional()
|
|
328
|
+
});
|
|
329
|
+
const amazonOrdersResponseSchema = z.looseObject({ payload: z.looseObject({
|
|
330
|
+
Orders: z.array(amazonOrderRawSchema),
|
|
331
|
+
NextToken: z.string().min(1).optional()
|
|
332
|
+
}) });
|
|
333
|
+
const amazonSearchOrderRawSchema = z.looseObject({
|
|
334
|
+
orderId: z.string().min(1),
|
|
335
|
+
createdTime: z.string().optional(),
|
|
336
|
+
fulfillment: z.looseObject({ fulfillmentStatus: z.string().optional() }).optional()
|
|
337
|
+
});
|
|
338
|
+
const amazonSearchOrdersRootSchema = z.looseObject({
|
|
339
|
+
orders: z.array(amazonSearchOrderRawSchema),
|
|
340
|
+
pagination: z.looseObject({ nextToken: z.string().min(1).optional() }).optional()
|
|
341
|
+
});
|
|
342
|
+
const amazonSearchOrdersWrappedResponseSchema = z.looseObject({ payload: amazonSearchOrdersRootSchema });
|
|
343
|
+
const amazonOrderItemRawSchema = z.looseObject({
|
|
344
|
+
OrderItemId: z.string().min(1),
|
|
345
|
+
ASIN: z.string().optional(),
|
|
346
|
+
SellerSKU: z.string().optional(),
|
|
347
|
+
Title: z.string().optional(),
|
|
348
|
+
QuantityOrdered: z.number().optional(),
|
|
349
|
+
QuantityShipped: z.number().optional(),
|
|
350
|
+
ItemPrice: amazonMoneyRawSchema.optional()
|
|
351
|
+
});
|
|
352
|
+
const amazonOrderItemsResponseSchema = z.looseObject({ payload: z.looseObject({
|
|
353
|
+
AmazonOrderId: z.string().min(1),
|
|
354
|
+
OrderItems: z.array(amazonOrderItemRawSchema),
|
|
355
|
+
NextToken: z.string().min(1).optional()
|
|
356
|
+
}) });
|
|
357
|
+
const amazonCatalogItemRawSchema = z.looseObject({
|
|
358
|
+
asin: z.string().min(1),
|
|
359
|
+
summaries: z.array(z.looseObject({
|
|
360
|
+
itemName: z.string().optional(),
|
|
361
|
+
brandName: z.string().optional(),
|
|
362
|
+
marketplaceId: z.string().optional()
|
|
363
|
+
})).optional(),
|
|
364
|
+
productTypes: z.array(z.looseObject({ productType: z.string().optional() })).optional()
|
|
365
|
+
});
|
|
366
|
+
const amazonCatalogSearchResponseSchema = z.looseObject({
|
|
367
|
+
items: z.array(amazonCatalogItemRawSchema),
|
|
368
|
+
numberOfResults: z.number().optional(),
|
|
369
|
+
pagination: z.looseObject({ nextToken: z.string().min(1).optional() }).optional()
|
|
370
|
+
});
|
|
197
371
|
function lwaTokenBody(auth) {
|
|
198
372
|
return new URLSearchParams({
|
|
199
373
|
grant_type: "refresh_token",
|
|
@@ -202,201 +376,204 @@ function lwaTokenBody(auth) {
|
|
|
202
376
|
client_secret: auth.client_secret
|
|
203
377
|
}).toString();
|
|
204
378
|
}
|
|
205
|
-
function
|
|
206
|
-
|
|
207
|
-
|
|
379
|
+
function parseLwaTokenResponse(data) {
|
|
380
|
+
const parsed = amazonSpApiLwaTokenResponseSchema.safeParse(data);
|
|
381
|
+
if (!parsed.success) throw new ToolError("Amazon LWA returned an invalid token response", {
|
|
382
|
+
code: "bad_auth",
|
|
383
|
+
details: { issues: parsed.error.issues.map((issue) => issue.message) }
|
|
384
|
+
});
|
|
385
|
+
return parsed.data;
|
|
208
386
|
}
|
|
209
387
|
function parseOrder(value) {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
const amount = isPlainObject(total) && isString(total["Amount"]) ? total["Amount"] : void 0;
|
|
213
|
-
const currency = isPlainObject(total) && isString(total["CurrencyCode"]) ? total["CurrencyCode"] : void 0;
|
|
388
|
+
const parsed = amazonOrderRawSchema.safeParse(value);
|
|
389
|
+
if (!parsed.success) throw new ToolError("Amazon SP-API returned an invalid order", { code: "upstream" });
|
|
214
390
|
return {
|
|
215
|
-
amazon_order_id:
|
|
216
|
-
...
|
|
217
|
-
...
|
|
218
|
-
...
|
|
219
|
-
...
|
|
220
|
-
...
|
|
221
|
-
...
|
|
222
|
-
...
|
|
391
|
+
amazon_order_id: parsed.data.AmazonOrderId,
|
|
392
|
+
...parsed.data.OrderStatus && { order_status: parsed.data.OrderStatus },
|
|
393
|
+
...parsed.data.PurchaseDate && { purchase_date: parsed.data.PurchaseDate },
|
|
394
|
+
...parsed.data.LastUpdateDate && { last_update_date: parsed.data.LastUpdateDate },
|
|
395
|
+
...parsed.data.MarketplaceId && { marketplace_id: parsed.data.MarketplaceId },
|
|
396
|
+
...parsed.data.OrderTotal?.Amount && { order_total_amount: parsed.data.OrderTotal.Amount },
|
|
397
|
+
...parsed.data.OrderTotal?.CurrencyCode && { order_total_currency: parsed.data.OrderTotal.CurrencyCode },
|
|
398
|
+
...parsed.data.FulfillmentChannel && { fulfillment_channel: parsed.data.FulfillmentChannel }
|
|
223
399
|
};
|
|
224
400
|
}
|
|
225
401
|
function parseOrdersPayload(data) {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
if (!isPlainObject(payload)) throw new ToolError("Amazon SP-API orders missing payload", { code: "upstream" });
|
|
229
|
-
const orders = payload["Orders"];
|
|
230
|
-
if (!Array.isArray(orders)) throw new ToolError("Amazon SP-API orders missing Orders array", { code: "upstream" });
|
|
231
|
-
const nextToken = isString(payload["NextToken"]) && payload["NextToken"].length > 0 ? payload["NextToken"] : void 0;
|
|
402
|
+
const parsed = amazonOrdersResponseSchema.safeParse(data);
|
|
403
|
+
if (!parsed.success) throw new ToolError("Amazon SP-API orders payload invalid", { code: "upstream" });
|
|
232
404
|
return {
|
|
233
|
-
items:
|
|
234
|
-
...
|
|
405
|
+
items: parsed.data.payload.Orders.map(parseOrder),
|
|
406
|
+
...parsed.data.payload.NextToken && { nextToken: parsed.data.payload.NextToken }
|
|
235
407
|
};
|
|
236
408
|
}
|
|
237
409
|
function parseOrderPayload(data) {
|
|
238
|
-
|
|
239
|
-
|
|
410
|
+
const parsed = z.looseObject({ payload: amazonOrderRawSchema }).safeParse(data);
|
|
411
|
+
if (!parsed.success) throw new ToolError("Amazon SP-API get order payload invalid", { code: "upstream" });
|
|
412
|
+
return parseOrder(parsed.data.payload);
|
|
240
413
|
}
|
|
241
414
|
/** Orders API v2026-01-01 SearchOrders — camelCase body, not v0 payload wrapper. */
|
|
242
415
|
function parseSearchOrder(value) {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
const fulfillmentStatus = isPlainObject(fulfillment) && isString(fulfillment["fulfillmentStatus"]) ? fulfillment["fulfillmentStatus"] : void 0;
|
|
416
|
+
const parsed = amazonSearchOrderRawSchema.safeParse(value);
|
|
417
|
+
if (!parsed.success) throw new ToolError("Amazon SP-API searchOrders returned an invalid order", { code: "upstream" });
|
|
246
418
|
return {
|
|
247
|
-
order_id:
|
|
248
|
-
...
|
|
249
|
-
...fulfillmentStatus && { fulfillment_status: fulfillmentStatus }
|
|
419
|
+
order_id: parsed.data.orderId,
|
|
420
|
+
...parsed.data.createdTime && { created_time: parsed.data.createdTime },
|
|
421
|
+
...parsed.data.fulfillment?.fulfillmentStatus && { fulfillment_status: parsed.data.fulfillment.fulfillmentStatus }
|
|
250
422
|
};
|
|
251
423
|
}
|
|
252
424
|
function parseSearchOrdersPayload(data) {
|
|
253
|
-
|
|
254
|
-
const
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
if (!Array.isArray(orders)) throw new ToolError("Amazon SP-API searchOrders missing orders array", { code: "upstream" });
|
|
258
|
-
const pagination = root["pagination"];
|
|
259
|
-
const nextToken = isPlainObject(pagination) && isString(pagination["nextToken"]) && pagination["nextToken"].length > 0 ? pagination["nextToken"] : void 0;
|
|
425
|
+
const wrapped = amazonSearchOrdersWrappedResponseSchema.safeParse(data);
|
|
426
|
+
const direct = amazonSearchOrdersRootSchema.safeParse(data);
|
|
427
|
+
const root = wrapped.success ? wrapped.data.payload : direct.success ? direct.data : void 0;
|
|
428
|
+
if (!root) throw new ToolError("Amazon SP-API searchOrders payload invalid", { code: "upstream" });
|
|
260
429
|
return {
|
|
261
|
-
items: orders.map(parseSearchOrder),
|
|
262
|
-
...nextToken && { nextToken }
|
|
430
|
+
items: root.orders.map(parseSearchOrder),
|
|
431
|
+
...root.pagination?.nextToken && { nextToken: root.pagination.nextToken }
|
|
263
432
|
};
|
|
264
433
|
}
|
|
265
434
|
function parseOrderItem(value) {
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
const amount = isPlainObject(price) && isString(price["Amount"]) ? price["Amount"] : void 0;
|
|
269
|
-
const currency = isPlainObject(price) && isString(price["CurrencyCode"]) ? price["CurrencyCode"] : void 0;
|
|
435
|
+
const parsed = amazonOrderItemRawSchema.safeParse(value);
|
|
436
|
+
if (!parsed.success) throw new ToolError("Amazon SP-API returned an invalid order item", { code: "upstream" });
|
|
270
437
|
return {
|
|
271
|
-
order_item_id:
|
|
272
|
-
...
|
|
273
|
-
...
|
|
274
|
-
...
|
|
275
|
-
...
|
|
276
|
-
...
|
|
277
|
-
...
|
|
278
|
-
...
|
|
438
|
+
order_item_id: parsed.data.OrderItemId,
|
|
439
|
+
...parsed.data.ASIN && { asin: parsed.data.ASIN },
|
|
440
|
+
...parsed.data.SellerSKU && { seller_sku: parsed.data.SellerSKU },
|
|
441
|
+
...parsed.data.Title && { title: parsed.data.Title },
|
|
442
|
+
...parsed.data.QuantityOrdered !== void 0 && { quantity_ordered: parsed.data.QuantityOrdered },
|
|
443
|
+
...parsed.data.QuantityShipped !== void 0 && { quantity_shipped: parsed.data.QuantityShipped },
|
|
444
|
+
...parsed.data.ItemPrice?.Amount && { item_price_amount: parsed.data.ItemPrice.Amount },
|
|
445
|
+
...parsed.data.ItemPrice?.CurrencyCode && { item_price_currency: parsed.data.ItemPrice.CurrencyCode }
|
|
279
446
|
};
|
|
280
447
|
}
|
|
281
448
|
function parseOrderItemsPayload(data) {
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
if (!isPlainObject(payload)) throw new ToolError("Amazon SP-API order items missing payload", { code: "upstream" });
|
|
285
|
-
if (!isString(payload["AmazonOrderId"]) || payload["AmazonOrderId"].length === 0) throw new ToolError("Amazon SP-API order items missing AmazonOrderId", { code: "upstream" });
|
|
286
|
-
const orderItems = payload["OrderItems"];
|
|
287
|
-
if (!Array.isArray(orderItems)) throw new ToolError("Amazon SP-API order items missing OrderItems array", { code: "upstream" });
|
|
288
|
-
const nextToken = isString(payload["NextToken"]) && payload["NextToken"].length > 0 ? payload["NextToken"] : void 0;
|
|
449
|
+
const parsed = amazonOrderItemsResponseSchema.safeParse(data);
|
|
450
|
+
if (!parsed.success) throw new ToolError("Amazon SP-API order items payload invalid", { code: "upstream" });
|
|
289
451
|
return {
|
|
290
|
-
amazon_order_id: payload
|
|
291
|
-
items:
|
|
292
|
-
...
|
|
452
|
+
amazon_order_id: parsed.data.payload.AmazonOrderId,
|
|
453
|
+
items: parsed.data.payload.OrderItems.map(parseOrderItem),
|
|
454
|
+
...parsed.data.payload.NextToken && { nextToken: parsed.data.payload.NextToken }
|
|
293
455
|
};
|
|
294
456
|
}
|
|
295
457
|
function parseInventorySummary(value) {
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
458
|
+
const parsed = amazonInventorySummaryRawSchema.safeParse(value);
|
|
459
|
+
if (!parsed.success) throw new ToolError("Amazon SP-API returned an invalid inventory summary", {
|
|
460
|
+
code: "upstream",
|
|
461
|
+
details: { issues: parsed.error.issues.map((issue) => issue.message) }
|
|
462
|
+
});
|
|
301
463
|
return {
|
|
302
|
-
...
|
|
303
|
-
...
|
|
304
|
-
...
|
|
305
|
-
...
|
|
306
|
-
...totalQuantity !== void 0 && { total_quantity: totalQuantity },
|
|
307
|
-
...
|
|
464
|
+
...parsed.data.sellerSku && { seller_sku: parsed.data.sellerSku },
|
|
465
|
+
...parsed.data.asin && { asin: parsed.data.asin },
|
|
466
|
+
...parsed.data.fnSku && { fn_sku: parsed.data.fnSku },
|
|
467
|
+
...parsed.data.condition && { condition: parsed.data.condition },
|
|
468
|
+
...parsed.data.totalQuantity !== void 0 && { total_quantity: parsed.data.totalQuantity },
|
|
469
|
+
...parsed.data.productName && { product_name: parsed.data.productName }
|
|
308
470
|
};
|
|
309
471
|
}
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
const
|
|
317
|
-
|
|
472
|
+
const inventoryPageResponseSchema = z.looseObject({
|
|
473
|
+
payload: z.looseObject({ inventorySummaries: z.array(amazonInventorySummaryRawSchema) }),
|
|
474
|
+
pagination: z.looseObject({ nextToken: z.string().min(1).optional() }).optional()
|
|
475
|
+
});
|
|
476
|
+
const optionalAmazonRateLimitSchema = z.coerce.number().positive();
|
|
477
|
+
function parseAmazonResponseMetadata(headers) {
|
|
478
|
+
const rawRateLimit = headers.get("x-amzn-ratelimit-limit");
|
|
479
|
+
let rateLimit;
|
|
480
|
+
if (rawRateLimit !== null) {
|
|
481
|
+
const parsedRateLimit = optionalAmazonRateLimitSchema.safeParse(rawRateLimit);
|
|
482
|
+
if (!parsedRateLimit.success) throw new ToolError("Amazon SP-API returned an invalid rate-limit header", { code: "upstream" });
|
|
483
|
+
rateLimit = parsedRateLimit.data;
|
|
484
|
+
}
|
|
485
|
+
const requestId = headers.get("x-amzn-requestid") ?? headers.get("x-amzn-request-id") ?? void 0;
|
|
486
|
+
return {
|
|
487
|
+
...rateLimit !== void 0 && { rate_limit_per_second: rateLimit },
|
|
488
|
+
...requestId && { request_id: requestId }
|
|
489
|
+
};
|
|
490
|
+
}
|
|
491
|
+
function parseInventoryPagePayload(data, headers) {
|
|
492
|
+
const parsed = inventoryPageResponseSchema.safeParse(data);
|
|
493
|
+
if (!parsed.success) throw new ToolError("Amazon SP-API inventory page response invalid", {
|
|
494
|
+
code: "upstream",
|
|
495
|
+
details: { issues: parsed.error.issues.map((issue) => issue.message) }
|
|
496
|
+
});
|
|
318
497
|
return {
|
|
319
|
-
items:
|
|
320
|
-
...nextToken && { nextToken }
|
|
498
|
+
items: parsed.data.payload.inventorySummaries,
|
|
499
|
+
...parsed.data.pagination?.nextToken && { next_token: parsed.data.pagination.nextToken },
|
|
500
|
+
...parseAmazonResponseMetadata(headers)
|
|
321
501
|
};
|
|
322
502
|
}
|
|
323
503
|
function parseCreateReportPayload(data) {
|
|
324
|
-
|
|
325
|
-
|
|
504
|
+
const parsed = z.looseObject({ reportId: z.string().min(1) }).safeParse(data);
|
|
505
|
+
if (!parsed.success) throw new ToolError("Amazon SP-API create report response invalid", { code: "upstream" });
|
|
506
|
+
return { report_id: parsed.data.reportId };
|
|
326
507
|
}
|
|
327
508
|
function parseReport(value) {
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
509
|
+
const parsed = amazonReportRawSchema.safeParse(value);
|
|
510
|
+
if (!parsed.success) throw new ToolError("Amazon SP-API returned an invalid report", {
|
|
511
|
+
code: "upstream",
|
|
512
|
+
details: { issues: parsed.error.issues.map((issue) => issue.message) }
|
|
513
|
+
});
|
|
331
514
|
return {
|
|
332
|
-
report_id:
|
|
333
|
-
...
|
|
334
|
-
...
|
|
335
|
-
...
|
|
336
|
-
...
|
|
337
|
-
...
|
|
338
|
-
...
|
|
339
|
-
...
|
|
515
|
+
report_id: parsed.data.reportId,
|
|
516
|
+
...parsed.data.reportType && { report_type: parsed.data.reportType },
|
|
517
|
+
...parsed.data.processingStatus && { processing_status: parsed.data.processingStatus },
|
|
518
|
+
...parsed.data.marketplaceIds && parsed.data.marketplaceIds.length > 0 && { marketplace_ids: parsed.data.marketplaceIds },
|
|
519
|
+
...parsed.data.dataStartTime && { data_start_time: parsed.data.dataStartTime },
|
|
520
|
+
...parsed.data.dataEndTime && { data_end_time: parsed.data.dataEndTime },
|
|
521
|
+
...parsed.data.reportDocumentId && { report_document_id: parsed.data.reportDocumentId },
|
|
522
|
+
...parsed.data.createdTime && { created_time: parsed.data.createdTime }
|
|
340
523
|
};
|
|
341
524
|
}
|
|
342
525
|
function parseGetReportPayload(data) {
|
|
343
526
|
return parseReport(data);
|
|
344
527
|
}
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
528
|
+
const listReportsPageResponseSchema = z.looseObject({
|
|
529
|
+
reports: z.array(amazonReportRawSchema),
|
|
530
|
+
nextToken: z.string().min(1).optional()
|
|
531
|
+
});
|
|
532
|
+
function parseListReportsPagePayload(data, headers) {
|
|
533
|
+
const parsed = listReportsPageResponseSchema.safeParse(data);
|
|
534
|
+
if (!parsed.success) throw new ToolError("Amazon SP-API list reports page response invalid", {
|
|
535
|
+
code: "upstream",
|
|
536
|
+
details: { issues: parsed.error.issues.map((issue) => issue.message) }
|
|
537
|
+
});
|
|
350
538
|
return {
|
|
351
|
-
items: reports
|
|
352
|
-
...nextToken && { nextToken }
|
|
539
|
+
items: parsed.data.reports,
|
|
540
|
+
...parsed.data.nextToken && { next_token: parsed.data.nextToken },
|
|
541
|
+
...parseAmazonResponseMetadata(headers)
|
|
353
542
|
};
|
|
354
543
|
}
|
|
355
544
|
function parseReportDocumentPayload(data) {
|
|
356
|
-
|
|
545
|
+
const parsed = z.looseObject({
|
|
546
|
+
reportDocumentId: z.string().min(1),
|
|
547
|
+
url: z.url(),
|
|
548
|
+
compressionAlgorithm: z.string().min(1).optional()
|
|
549
|
+
}).safeParse(data);
|
|
550
|
+
if (!parsed.success) throw new ToolError("Amazon SP-API report document response invalid", { code: "upstream" });
|
|
357
551
|
return {
|
|
358
|
-
document_id: data
|
|
359
|
-
url: data
|
|
360
|
-
...
|
|
552
|
+
document_id: parsed.data.reportDocumentId,
|
|
553
|
+
url: parsed.data.url,
|
|
554
|
+
...parsed.data.compressionAlgorithm && { compression_algorithm: parsed.data.compressionAlgorithm }
|
|
361
555
|
};
|
|
362
556
|
}
|
|
363
557
|
function parseCatalogItem(value) {
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
let marketplace_id;
|
|
369
|
-
if (Array.isArray(summaries) && summaries.length > 0 && isPlainObject(summaries[0])) {
|
|
370
|
-
const summary = summaries[0];
|
|
371
|
-
if (isString(summary["itemName"])) title = summary["itemName"];
|
|
372
|
-
if (isString(summary["brandName"])) brand = summary["brandName"];
|
|
373
|
-
if (isString(summary["marketplaceId"])) marketplace_id = summary["marketplaceId"];
|
|
374
|
-
}
|
|
375
|
-
const productTypes = value["productTypes"];
|
|
376
|
-
let product_type;
|
|
377
|
-
if (Array.isArray(productTypes) && productTypes.length > 0 && isPlainObject(productTypes[0])) {
|
|
378
|
-
const pt = productTypes[0];
|
|
379
|
-
if (isString(pt["productType"])) product_type = pt["productType"];
|
|
380
|
-
}
|
|
558
|
+
const parsed = amazonCatalogItemRawSchema.safeParse(value);
|
|
559
|
+
if (!parsed.success) throw new ToolError("Amazon SP-API returned an invalid catalog item", { code: "upstream" });
|
|
560
|
+
const summary = parsed.data.summaries?.[0];
|
|
561
|
+
const productType = parsed.data.productTypes?.[0];
|
|
381
562
|
return {
|
|
382
|
-
asin:
|
|
383
|
-
...
|
|
384
|
-
...
|
|
385
|
-
...
|
|
386
|
-
...
|
|
563
|
+
asin: parsed.data.asin,
|
|
564
|
+
...summary?.itemName && { title: summary.itemName },
|
|
565
|
+
...summary?.brandName && { brand: summary.brandName },
|
|
566
|
+
...productType?.productType && { product_type: productType.productType },
|
|
567
|
+
...summary?.marketplaceId && { marketplace_id: summary.marketplaceId }
|
|
387
568
|
};
|
|
388
569
|
}
|
|
389
570
|
function parseSearchCatalogItemsPayload(data) {
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
if (!Array.isArray(items)) throw new ToolError("Amazon SP-API catalog search missing items array", { code: "upstream" });
|
|
393
|
-
const pagination = data["pagination"];
|
|
394
|
-
const nextToken = isPlainObject(pagination) && isString(pagination["nextToken"]) && pagination["nextToken"].length > 0 ? pagination["nextToken"] : void 0;
|
|
395
|
-
const numberOfResults = typeof data["numberOfResults"] === "number" ? data["numberOfResults"] : void 0;
|
|
571
|
+
const parsed = amazonCatalogSearchResponseSchema.safeParse(data);
|
|
572
|
+
if (!parsed.success) throw new ToolError("Amazon SP-API catalog search payload invalid", { code: "upstream" });
|
|
396
573
|
return {
|
|
397
|
-
items: items.map(parseCatalogItem),
|
|
398
|
-
...numberOfResults !== void 0 && { numberOfResults },
|
|
399
|
-
...nextToken && { nextToken }
|
|
574
|
+
items: parsed.data.items.map(parseCatalogItem),
|
|
575
|
+
...parsed.data.numberOfResults !== void 0 && { numberOfResults: parsed.data.numberOfResults },
|
|
576
|
+
...parsed.data.pagination?.nextToken && { nextToken: parsed.data.pagination.nextToken }
|
|
400
577
|
};
|
|
401
578
|
}
|
|
402
579
|
function requireMarketplaceIds(inputIds, authIds, label) {
|
|
@@ -405,6 +582,361 @@ function requireMarketplaceIds(inputIds, authIds, label) {
|
|
|
405
582
|
return ids;
|
|
406
583
|
}
|
|
407
584
|
//#endregion
|
|
585
|
+
//#region node_modules/fflate/esm/index.mjs
|
|
586
|
+
var require = createRequire("/");
|
|
587
|
+
var _a;
|
|
588
|
+
try {
|
|
589
|
+
_a = require("worker_threads"), _a.Worker, _a.isMarkedAsUntransferable;
|
|
590
|
+
} catch (e) {}
|
|
591
|
+
var u8 = Uint8Array;
|
|
592
|
+
var u16 = Uint16Array;
|
|
593
|
+
var i32 = Int32Array;
|
|
594
|
+
var fleb = new u8([
|
|
595
|
+
0,
|
|
596
|
+
0,
|
|
597
|
+
0,
|
|
598
|
+
0,
|
|
599
|
+
0,
|
|
600
|
+
0,
|
|
601
|
+
0,
|
|
602
|
+
0,
|
|
603
|
+
1,
|
|
604
|
+
1,
|
|
605
|
+
1,
|
|
606
|
+
1,
|
|
607
|
+
2,
|
|
608
|
+
2,
|
|
609
|
+
2,
|
|
610
|
+
2,
|
|
611
|
+
3,
|
|
612
|
+
3,
|
|
613
|
+
3,
|
|
614
|
+
3,
|
|
615
|
+
4,
|
|
616
|
+
4,
|
|
617
|
+
4,
|
|
618
|
+
4,
|
|
619
|
+
5,
|
|
620
|
+
5,
|
|
621
|
+
5,
|
|
622
|
+
5,
|
|
623
|
+
0,
|
|
624
|
+
0,
|
|
625
|
+
0,
|
|
626
|
+
0
|
|
627
|
+
]);
|
|
628
|
+
var fdeb = new u8([
|
|
629
|
+
0,
|
|
630
|
+
0,
|
|
631
|
+
0,
|
|
632
|
+
0,
|
|
633
|
+
1,
|
|
634
|
+
1,
|
|
635
|
+
2,
|
|
636
|
+
2,
|
|
637
|
+
3,
|
|
638
|
+
3,
|
|
639
|
+
4,
|
|
640
|
+
4,
|
|
641
|
+
5,
|
|
642
|
+
5,
|
|
643
|
+
6,
|
|
644
|
+
6,
|
|
645
|
+
7,
|
|
646
|
+
7,
|
|
647
|
+
8,
|
|
648
|
+
8,
|
|
649
|
+
9,
|
|
650
|
+
9,
|
|
651
|
+
10,
|
|
652
|
+
10,
|
|
653
|
+
11,
|
|
654
|
+
11,
|
|
655
|
+
12,
|
|
656
|
+
12,
|
|
657
|
+
13,
|
|
658
|
+
13,
|
|
659
|
+
0,
|
|
660
|
+
0
|
|
661
|
+
]);
|
|
662
|
+
var clim = new u8([
|
|
663
|
+
16,
|
|
664
|
+
17,
|
|
665
|
+
18,
|
|
666
|
+
0,
|
|
667
|
+
8,
|
|
668
|
+
7,
|
|
669
|
+
9,
|
|
670
|
+
6,
|
|
671
|
+
10,
|
|
672
|
+
5,
|
|
673
|
+
11,
|
|
674
|
+
4,
|
|
675
|
+
12,
|
|
676
|
+
3,
|
|
677
|
+
13,
|
|
678
|
+
2,
|
|
679
|
+
14,
|
|
680
|
+
1,
|
|
681
|
+
15
|
|
682
|
+
]);
|
|
683
|
+
var freb = function(eb, start) {
|
|
684
|
+
var b = new u16(31);
|
|
685
|
+
for (var i = 0; i < 31; ++i) b[i] = start += 1 << eb[i - 1];
|
|
686
|
+
var r = new i32(b[30]);
|
|
687
|
+
for (var i = 1; i < 30; ++i) for (var j = b[i]; j < b[i + 1]; ++j) r[j] = j - b[i] << 5 | i;
|
|
688
|
+
return {
|
|
689
|
+
b,
|
|
690
|
+
r
|
|
691
|
+
};
|
|
692
|
+
};
|
|
693
|
+
var _a = freb(fleb, 2);
|
|
694
|
+
var fl = _a.b;
|
|
695
|
+
var revfl = _a.r;
|
|
696
|
+
fl[28] = 258, revfl[258] = 28;
|
|
697
|
+
var _b = freb(fdeb, 0);
|
|
698
|
+
var fd = _b.b;
|
|
699
|
+
_b.r;
|
|
700
|
+
var rev = new u16(32768);
|
|
701
|
+
for (var i = 0; i < 32768; ++i) {
|
|
702
|
+
var x = (i & 43690) >> 1 | (i & 21845) << 1;
|
|
703
|
+
x = (x & 52428) >> 2 | (x & 13107) << 2;
|
|
704
|
+
x = (x & 61680) >> 4 | (x & 3855) << 4;
|
|
705
|
+
rev[i] = ((x & 65280) >> 8 | (x & 255) << 8) >> 1;
|
|
706
|
+
}
|
|
707
|
+
var hMap = (function(cd, mb, r) {
|
|
708
|
+
var s = cd.length;
|
|
709
|
+
var i = 0;
|
|
710
|
+
var l = new u16(mb);
|
|
711
|
+
for (; i < s; ++i) if (cd[i]) ++l[cd[i] - 1];
|
|
712
|
+
var le = new u16(mb);
|
|
713
|
+
for (i = 1; i < mb; ++i) le[i] = le[i - 1] + l[i - 1] << 1;
|
|
714
|
+
var co;
|
|
715
|
+
if (r) {
|
|
716
|
+
co = new u16(1 << mb);
|
|
717
|
+
var rvb = 15 - mb;
|
|
718
|
+
for (i = 0; i < s; ++i) if (cd[i]) {
|
|
719
|
+
var sv = i << 4 | cd[i];
|
|
720
|
+
var r_1 = mb - cd[i];
|
|
721
|
+
var v = le[cd[i] - 1]++ << r_1;
|
|
722
|
+
for (var m = v | (1 << r_1) - 1; v <= m; ++v) co[rev[v] >> rvb] = sv;
|
|
723
|
+
}
|
|
724
|
+
} else {
|
|
725
|
+
co = new u16(s);
|
|
726
|
+
for (i = 0; i < s; ++i) if (cd[i]) co[i] = rev[le[cd[i] - 1]++] >> 15 - cd[i];
|
|
727
|
+
}
|
|
728
|
+
return co;
|
|
729
|
+
});
|
|
730
|
+
var flt = new u8(288);
|
|
731
|
+
for (var i = 0; i < 144; ++i) flt[i] = 8;
|
|
732
|
+
for (var i = 144; i < 256; ++i) flt[i] = 9;
|
|
733
|
+
for (var i = 256; i < 280; ++i) flt[i] = 7;
|
|
734
|
+
for (var i = 280; i < 288; ++i) flt[i] = 8;
|
|
735
|
+
var fdt = new u8(32);
|
|
736
|
+
for (var i = 0; i < 32; ++i) fdt[i] = 5;
|
|
737
|
+
var flrm = /*#__PURE__*/ hMap(flt, 9, 1);
|
|
738
|
+
var fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);
|
|
739
|
+
var max = function(a) {
|
|
740
|
+
var m = a[0];
|
|
741
|
+
for (var i = 1; i < a.length; ++i) if (a[i] > m) m = a[i];
|
|
742
|
+
return m;
|
|
743
|
+
};
|
|
744
|
+
var bits = function(d, p, m) {
|
|
745
|
+
var o = p / 8 | 0;
|
|
746
|
+
return (d[o] | d[o + 1] << 8) >> (p & 7) & m;
|
|
747
|
+
};
|
|
748
|
+
var bits16 = function(d, p) {
|
|
749
|
+
var o = p / 8 | 0;
|
|
750
|
+
return (d[o] | d[o + 1] << 8 | d[o + 2] << 16) >> (p & 7);
|
|
751
|
+
};
|
|
752
|
+
var shft = function(p) {
|
|
753
|
+
return (p + 7) / 8 | 0;
|
|
754
|
+
};
|
|
755
|
+
var slc = function(v, s, e) {
|
|
756
|
+
if (s == null || s < 0) s = 0;
|
|
757
|
+
if (e == null || e > v.length) e = v.length;
|
|
758
|
+
return new u8(v.subarray(s, e));
|
|
759
|
+
};
|
|
760
|
+
var ec = [
|
|
761
|
+
"unexpected EOF",
|
|
762
|
+
"invalid block type",
|
|
763
|
+
"invalid length/literal",
|
|
764
|
+
"invalid distance",
|
|
765
|
+
"stream finished",
|
|
766
|
+
"no stream handler",
|
|
767
|
+
,
|
|
768
|
+
"no callback",
|
|
769
|
+
"invalid UTF-8 data",
|
|
770
|
+
"extra field too long",
|
|
771
|
+
"date not in range 1980-2099",
|
|
772
|
+
"filename too long",
|
|
773
|
+
"stream finishing",
|
|
774
|
+
"invalid zip data"
|
|
775
|
+
];
|
|
776
|
+
var err = function(ind, msg, nt) {
|
|
777
|
+
var e = new Error(msg || ec[ind]);
|
|
778
|
+
e.code = ind;
|
|
779
|
+
if (Error.captureStackTrace) Error.captureStackTrace(e, err);
|
|
780
|
+
if (!nt) throw e;
|
|
781
|
+
return e;
|
|
782
|
+
};
|
|
783
|
+
var inflt = function(dat, st, buf, dict) {
|
|
784
|
+
var sl = dat.length, dl = dict ? dict.length : 0;
|
|
785
|
+
if (!sl || st.f && !st.l) return buf || new u8(0);
|
|
786
|
+
var noBuf = !buf;
|
|
787
|
+
var resize = noBuf || st.i != 2;
|
|
788
|
+
var noSt = st.i;
|
|
789
|
+
if (noBuf) buf = new u8(sl * 3);
|
|
790
|
+
var cbuf = function(l) {
|
|
791
|
+
var bl = buf.length;
|
|
792
|
+
if (l > bl) {
|
|
793
|
+
var nbuf = new u8(Math.max(bl * 2, l));
|
|
794
|
+
nbuf.set(buf);
|
|
795
|
+
buf = nbuf;
|
|
796
|
+
}
|
|
797
|
+
};
|
|
798
|
+
var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;
|
|
799
|
+
var tbts = sl * 8;
|
|
800
|
+
do {
|
|
801
|
+
if (!lm) {
|
|
802
|
+
final = bits(dat, pos, 1);
|
|
803
|
+
var type = bits(dat, pos + 1, 3);
|
|
804
|
+
pos += 3;
|
|
805
|
+
if (!type) {
|
|
806
|
+
var s = shft(pos) + 4, l = dat[s - 4] | dat[s - 3] << 8, t = s + l;
|
|
807
|
+
if (t > sl) {
|
|
808
|
+
if (noSt) err(0);
|
|
809
|
+
break;
|
|
810
|
+
}
|
|
811
|
+
if (resize) cbuf(bt + l);
|
|
812
|
+
buf.set(dat.subarray(s, t), bt);
|
|
813
|
+
st.b = bt += l, st.p = pos = t * 8, st.f = final;
|
|
814
|
+
continue;
|
|
815
|
+
} else if (type == 1) lm = flrm, dm = fdrm, lbt = 9, dbt = 5;
|
|
816
|
+
else if (type == 2) {
|
|
817
|
+
var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;
|
|
818
|
+
var tl = hLit + bits(dat, pos + 5, 31) + 1;
|
|
819
|
+
pos += 14;
|
|
820
|
+
var ldt = new u8(tl);
|
|
821
|
+
var clt = new u8(19);
|
|
822
|
+
for (var i = 0; i < hcLen; ++i) clt[clim[i]] = bits(dat, pos + i * 3, 7);
|
|
823
|
+
pos += hcLen * 3;
|
|
824
|
+
var clb = max(clt), clbmsk = (1 << clb) - 1;
|
|
825
|
+
var clm = hMap(clt, clb, 1);
|
|
826
|
+
for (var i = 0; i < tl;) {
|
|
827
|
+
var r = clm[bits(dat, pos, clbmsk)];
|
|
828
|
+
pos += r & 15;
|
|
829
|
+
var s = r >> 4;
|
|
830
|
+
if (s < 16) ldt[i++] = s;
|
|
831
|
+
else {
|
|
832
|
+
var c = 0, n = 0;
|
|
833
|
+
if (s == 16) n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];
|
|
834
|
+
else if (s == 17) n = 3 + bits(dat, pos, 7), pos += 3;
|
|
835
|
+
else if (s == 18) n = 11 + bits(dat, pos, 127), pos += 7;
|
|
836
|
+
while (n--) ldt[i++] = c;
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);
|
|
840
|
+
lbt = max(lt);
|
|
841
|
+
dbt = max(dt);
|
|
842
|
+
lm = hMap(lt, lbt, 1);
|
|
843
|
+
dm = hMap(dt, dbt, 1);
|
|
844
|
+
} else err(1);
|
|
845
|
+
if (pos > tbts) {
|
|
846
|
+
if (noSt) err(0);
|
|
847
|
+
break;
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
if (resize) cbuf(bt + 131072);
|
|
851
|
+
var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;
|
|
852
|
+
var lpos = pos;
|
|
853
|
+
for (;; lpos = pos) {
|
|
854
|
+
var c = lm[bits16(dat, pos) & lms], sym = c >> 4;
|
|
855
|
+
pos += c & 15;
|
|
856
|
+
if (pos > tbts) {
|
|
857
|
+
if (noSt) err(0);
|
|
858
|
+
break;
|
|
859
|
+
}
|
|
860
|
+
if (!c) err(2);
|
|
861
|
+
if (sym < 256) buf[bt++] = sym;
|
|
862
|
+
else if (sym == 256) {
|
|
863
|
+
lpos = pos, lm = null;
|
|
864
|
+
break;
|
|
865
|
+
} else {
|
|
866
|
+
var add = sym - 254;
|
|
867
|
+
if (sym > 264) {
|
|
868
|
+
var i = sym - 257, b = fleb[i];
|
|
869
|
+
add = bits(dat, pos, (1 << b) - 1) + fl[i];
|
|
870
|
+
pos += b;
|
|
871
|
+
}
|
|
872
|
+
var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;
|
|
873
|
+
if (!d) err(3);
|
|
874
|
+
pos += d & 15;
|
|
875
|
+
var dt = fd[dsym];
|
|
876
|
+
if (dsym > 3) {
|
|
877
|
+
var b = fdeb[dsym];
|
|
878
|
+
dt += bits16(dat, pos) & (1 << b) - 1, pos += b;
|
|
879
|
+
}
|
|
880
|
+
if (pos > tbts) {
|
|
881
|
+
if (noSt) err(0);
|
|
882
|
+
break;
|
|
883
|
+
}
|
|
884
|
+
if (resize) cbuf(bt + 131072);
|
|
885
|
+
var end = bt + add;
|
|
886
|
+
if (bt < dt) {
|
|
887
|
+
var shift = dl - dt, dend = Math.min(dt, end);
|
|
888
|
+
if (shift + bt < 0) err(3);
|
|
889
|
+
for (; bt < dend; ++bt) buf[bt] = dict[shift + bt];
|
|
890
|
+
}
|
|
891
|
+
for (; bt < end; ++bt) buf[bt] = buf[bt - dt];
|
|
892
|
+
}
|
|
893
|
+
}
|
|
894
|
+
st.l = lm, st.p = lpos, st.b = bt, st.f = final;
|
|
895
|
+
if (lm) final = 1, st.m = lbt, st.d = dm, st.n = dbt;
|
|
896
|
+
} while (!final);
|
|
897
|
+
return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);
|
|
898
|
+
};
|
|
899
|
+
var et = /*#__PURE__*/ new u8(0);
|
|
900
|
+
var gzs = function(d) {
|
|
901
|
+
if (d[0] != 31 || d[1] != 139 || d[2] != 8) err(6, "invalid gzip data");
|
|
902
|
+
var flg = d[3];
|
|
903
|
+
var st = 10;
|
|
904
|
+
if (flg & 4) st += (d[10] | d[11] << 8) + 2;
|
|
905
|
+
for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++]);
|
|
906
|
+
return st + (flg & 2);
|
|
907
|
+
};
|
|
908
|
+
var gzl = function(d) {
|
|
909
|
+
var l = d.length;
|
|
910
|
+
return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;
|
|
911
|
+
};
|
|
912
|
+
function gunzipSync(data, opts) {
|
|
913
|
+
var st = gzs(data);
|
|
914
|
+
if (st + 8 > data.length) err(6, "invalid gzip data");
|
|
915
|
+
return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);
|
|
916
|
+
}
|
|
917
|
+
var td = typeof TextDecoder != "undefined" && /*#__PURE__*/ new TextDecoder();
|
|
918
|
+
try {
|
|
919
|
+
td.decode(et, { stream: true });
|
|
920
|
+
} catch (e) {}
|
|
921
|
+
//#endregion
|
|
922
|
+
//#region src/vendors/amazon-sp-api/domain/report-document.ts
|
|
923
|
+
function reportDocumentError(message, code) {
|
|
924
|
+
throw new ToolError(message, { code });
|
|
925
|
+
}
|
|
926
|
+
async function decompressReportDocumentBytes(bytes, compressionAlgorithm, maxBytes) {
|
|
927
|
+
if (bytes.byteLength > maxBytes) reportDocumentError("Amazon report document exceeds max_bytes", "too_large");
|
|
928
|
+
if (!compressionAlgorithm) return bytes;
|
|
929
|
+
if (compressionAlgorithm.toUpperCase() !== "GZIP") reportDocumentError(`Unsupported Amazon report compression: ${compressionAlgorithm}`, "unsupported");
|
|
930
|
+
try {
|
|
931
|
+
const output = gunzipSync(bytes, { out: new Uint8Array(maxBytes + 1) });
|
|
932
|
+
if (output.byteLength > maxBytes) reportDocumentError("Amazon report document exceeds max_bytes after decompression", "too_large");
|
|
933
|
+
return output.slice();
|
|
934
|
+
} catch (error) {
|
|
935
|
+
if (error instanceof ToolError) throw error;
|
|
936
|
+
reportDocumentError("Failed to decompress Amazon report document", "upstream");
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
//#endregion
|
|
408
940
|
//#region src/vendors/amazon-sp-api/domain/settlement.ts
|
|
409
941
|
/**
|
|
410
942
|
* Amazon settlement report V2 (GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2).
|
|
@@ -414,6 +946,8 @@ function requireMarketplaceIds(inputIds, authIds, label) {
|
|
|
414
946
|
const SETTLEMENT_REPORT_TYPE_V2 = "GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2";
|
|
415
947
|
/** Max compressed document body (bytes). */
|
|
416
948
|
const SETTLEMENT_MAX_COMPRESSED_BYTES = 16 * 1024 * 1024;
|
|
949
|
+
/** Max decompressed TSV body (bytes). */
|
|
950
|
+
const SETTLEMENT_MAX_DECOMPRESSED_BYTES = 64 * 1024 * 1024;
|
|
417
951
|
/** Required V2 header names (order free after parse; extra trailing columns OK). */
|
|
418
952
|
const SETTLEMENT_V2_REQUIRED_COLUMNS = [
|
|
419
953
|
"settlement-id",
|
|
@@ -451,26 +985,14 @@ function parseUsMoneyToSafeCents(raw) {
|
|
|
451
985
|
if (!Number.isSafeInteger(n)) settlementError("Settlement amount exceeds safe integer cents range", "upstream");
|
|
452
986
|
return n;
|
|
453
987
|
}
|
|
454
|
-
/**
|
|
455
|
-
function toArrayBuffer(bytes) {
|
|
456
|
-
const copy = new Uint8Array(bytes.byteLength);
|
|
457
|
-
copy.set(bytes);
|
|
458
|
-
return copy.buffer;
|
|
459
|
-
}
|
|
460
|
-
/** Decompress GZIP when report document uses compressionAlgorithm GZIP (Web DecompressionStream). */
|
|
988
|
+
/** Decompress GZIP when report document uses compressionAlgorithm GZIP. */
|
|
461
989
|
async function maybeGunzipReportBytes(bytes, compressionAlgorithm) {
|
|
462
|
-
if (!compressionAlgorithm) return bytes;
|
|
463
|
-
const algo = compressionAlgorithm.toUpperCase();
|
|
464
|
-
if (algo !== "GZIP") settlementError(`Unsupported settlement report compression: ${algo}`, "upstream");
|
|
465
990
|
if (bytes.byteLength > 16777216) settlementError("Settlement report compressed body exceeds limit", "too_large");
|
|
466
|
-
if (typeof DecompressionStream === "undefined") settlementError("GZIP decompression is not available in this runtime", "unsupported");
|
|
467
991
|
try {
|
|
468
|
-
|
|
469
|
-
const buffer = await new Response(stream).arrayBuffer();
|
|
470
|
-
if (buffer.byteLength > 67108864) settlementError("Settlement report decompressed body exceeds limit", "too_large");
|
|
471
|
-
return new Uint8Array(buffer);
|
|
992
|
+
return await decompressReportDocumentBytes(bytes, compressionAlgorithm, SETTLEMENT_MAX_DECOMPRESSED_BYTES);
|
|
472
993
|
} catch (error) {
|
|
473
|
-
if (error instanceof ToolError)
|
|
994
|
+
if (error instanceof ToolError && error.code === "too_large") settlementError("Settlement report decompressed body exceeds limit", "too_large");
|
|
995
|
+
if (error instanceof ToolError && error.code === "unsupported") throw error;
|
|
474
996
|
settlementError("Failed to decompress settlement report", "upstream");
|
|
475
997
|
}
|
|
476
998
|
}
|
|
@@ -561,8 +1083,7 @@ function settlementCreatedSinceIso(now = /* @__PURE__ */ new Date(), retentionDa
|
|
|
561
1083
|
* Amazon Selling Partner API vendor client.
|
|
562
1084
|
* Host: `new AmazonSpApiClient(auth)`. Agent tools: `fromContext(ctx)`.
|
|
563
1085
|
*
|
|
564
|
-
* LWA refresh
|
|
565
|
-
* plus x-amz-access-token.
|
|
1086
|
+
* LWA refresh provides the access token used by SP-API HTTP requests.
|
|
566
1087
|
*/
|
|
567
1088
|
var AmazonSpApiClient = class AmazonSpApiClient {
|
|
568
1089
|
#auth;
|
|
@@ -583,15 +1104,11 @@ var AmazonSpApiClient = class AmazonSpApiClient {
|
|
|
583
1104
|
...options,
|
|
584
1105
|
label: "Amazon LWA"
|
|
585
1106
|
});
|
|
586
|
-
this.#api = new
|
|
1107
|
+
this.#api = new HttpService({
|
|
587
1108
|
...options,
|
|
588
|
-
accessKeyId: this.#auth.access_key_id,
|
|
589
|
-
secretAccessKey: this.#auth.secret_access_key,
|
|
590
|
-
region: this.#auth.region,
|
|
591
|
-
service: "execute-api",
|
|
592
1109
|
baseURL: this.#auth.endpoint,
|
|
593
|
-
|
|
594
|
-
|
|
1110
|
+
headers: { "user-agent": this.#auth.user_agent },
|
|
1111
|
+
label: "Amazon SP-API"
|
|
595
1112
|
});
|
|
596
1113
|
this.#download = new HttpService({
|
|
597
1114
|
...options,
|
|
@@ -607,15 +1124,15 @@ var AmazonSpApiClient = class AmazonSpApiClient {
|
|
|
607
1124
|
}
|
|
608
1125
|
async #ensureAccessToken() {
|
|
609
1126
|
const now = Date.now();
|
|
610
|
-
if (this.#accessToken && now < this.#accessTokenExpiresAt
|
|
1127
|
+
if (this.#accessToken && now < this.#accessTokenExpiresAt) return this.#accessToken;
|
|
611
1128
|
const { data } = await this.#lwa.post(LWA_TOKEN_URL, lwaTokenBody(this.#auth), {
|
|
612
1129
|
label: "Amazon LWA token",
|
|
613
1130
|
headers: { "Content-Type": "application/x-www-form-urlencoded" }
|
|
614
1131
|
});
|
|
615
|
-
const token =
|
|
616
|
-
this.#accessToken = token;
|
|
617
|
-
this.#accessTokenExpiresAt = now +
|
|
618
|
-
return token;
|
|
1132
|
+
const token = parseLwaTokenResponse(data);
|
|
1133
|
+
this.#accessToken = token.access_token;
|
|
1134
|
+
this.#accessTokenExpiresAt = now + Math.max(0, token.expires_in * 1e3 - 6e4);
|
|
1135
|
+
return token.access_token;
|
|
619
1136
|
}
|
|
620
1137
|
async #spGet(path, label, query) {
|
|
621
1138
|
const token = await this.#ensureAccessToken();
|
|
@@ -707,23 +1224,59 @@ var AmazonSpApiClient = class AmazonSpApiClient {
|
|
|
707
1224
|
};
|
|
708
1225
|
}
|
|
709
1226
|
/** GET /fba/inventory/v1/summaries */
|
|
710
|
-
async
|
|
711
|
-
const
|
|
712
|
-
if (!
|
|
713
|
-
|
|
1227
|
+
async getInventorySummariesPage(input) {
|
|
1228
|
+
const parsedInput = amazonSpApiInventoryPageInputSchema.safeParse(input);
|
|
1229
|
+
if (!parsedInput.success) throw new ToolError("Invalid Amazon SP-API inventory page input", {
|
|
1230
|
+
code: "bad_input",
|
|
1231
|
+
details: { issues: parsedInput.error.issues.map((issue) => issue.message) }
|
|
1232
|
+
});
|
|
1233
|
+
return await this.#requestInventorySummariesPage({
|
|
1234
|
+
marketplace_id: parsedInput.data.marketplace_id,
|
|
1235
|
+
...parsedInput.data.mode === "incremental" && { start_date_time: parsedInput.data.start_date_time },
|
|
1236
|
+
...parsedInput.data.next_token && { next_token: parsedInput.data.next_token }
|
|
1237
|
+
});
|
|
1238
|
+
}
|
|
1239
|
+
async #requestInventorySummariesPage(input) {
|
|
1240
|
+
const result = await this.#spGet("/fba/inventory/v1/summaries", "Amazon SP-API getInventorySummariesPage", {
|
|
714
1241
|
details: true,
|
|
715
1242
|
granularityType: "Marketplace",
|
|
716
|
-
granularityId:
|
|
717
|
-
marketplaceIds:
|
|
718
|
-
...input.seller_skus && input.seller_skus.length > 0 && { sellerSkus: input.seller_skus.join(",") },
|
|
1243
|
+
granularityId: input.marketplace_id,
|
|
1244
|
+
marketplaceIds: input.marketplace_id,
|
|
719
1245
|
...input.start_date_time && { startDateTime: input.start_date_time },
|
|
720
|
-
...input.
|
|
1246
|
+
...input.next_token && { nextToken: input.next_token },
|
|
1247
|
+
...input.seller_skus && input.seller_skus.length > 0 && { sellerSkus: input.seller_skus.join(",") }
|
|
1248
|
+
});
|
|
1249
|
+
return parseInventoryPagePayload(result.data, result.headers);
|
|
1250
|
+
}
|
|
1251
|
+
/** Existing slim agent-facing projection over one raw inventory page. */
|
|
1252
|
+
async listInventorySummaries(input = {}) {
|
|
1253
|
+
const marketplaceId = requireMarketplaceIds(input.marketplace_id ? [input.marketplace_id] : void 0, this.#auth.marketplace_ids, "Amazon SP-API listInventorySummaries")[0];
|
|
1254
|
+
if (!marketplaceId) throw new ToolError("Amazon SP-API listInventorySummaries requires a marketplace_id", { code: "bad_input" });
|
|
1255
|
+
const pageInput = input.start_date_time ? {
|
|
1256
|
+
mode: "incremental",
|
|
1257
|
+
marketplace_id: marketplaceId,
|
|
1258
|
+
start_date_time: input.start_date_time,
|
|
1259
|
+
...input.cursor && { next_token: input.cursor }
|
|
1260
|
+
} : {
|
|
1261
|
+
mode: "full",
|
|
1262
|
+
marketplace_id: marketplaceId,
|
|
1263
|
+
...input.cursor && { next_token: input.cursor }
|
|
1264
|
+
};
|
|
1265
|
+
const parsedInput = amazonSpApiInventoryPageInputSchema.safeParse(pageInput);
|
|
1266
|
+
if (!parsedInput.success) throw new ToolError("Invalid Amazon SP-API inventory page input", {
|
|
1267
|
+
code: "bad_input",
|
|
1268
|
+
details: { issues: parsedInput.error.issues.map((issue) => issue.message) }
|
|
1269
|
+
});
|
|
1270
|
+
const page = await this.#requestInventorySummariesPage({
|
|
1271
|
+
marketplace_id: marketplaceId,
|
|
1272
|
+
...input.start_date_time && { start_date_time: input.start_date_time },
|
|
1273
|
+
...input.cursor && { next_token: input.cursor },
|
|
1274
|
+
...input.seller_skus && input.seller_skus.length > 0 && { seller_skus: input.seller_skus }
|
|
721
1275
|
});
|
|
722
|
-
const parsed = parseInventoryPayload(data);
|
|
723
1276
|
return {
|
|
724
|
-
items:
|
|
725
|
-
truncated: Boolean(
|
|
726
|
-
...
|
|
1277
|
+
items: page.items.map(parseInventorySummary),
|
|
1278
|
+
truncated: Boolean(page.next_token),
|
|
1279
|
+
...page.next_token && { next_cursor: page.next_token }
|
|
727
1280
|
};
|
|
728
1281
|
}
|
|
729
1282
|
/** POST /reports/2021-06-30/reports */
|
|
@@ -745,29 +1298,86 @@ var AmazonSpApiClient = class AmazonSpApiClient {
|
|
|
745
1298
|
return { report: parseGetReportPayload(data) };
|
|
746
1299
|
}
|
|
747
1300
|
/** GET /reports/2021-06-30/reports */
|
|
748
|
-
async listReports(input
|
|
749
|
-
const
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
...
|
|
757
|
-
...
|
|
1301
|
+
async listReports(input) {
|
|
1302
|
+
const parsedInput = amazonSpApiListReportsInputSchema.safeParse(input);
|
|
1303
|
+
if (!parsedInput.success) throw new ToolError("Invalid Amazon SP-API listReports input", {
|
|
1304
|
+
code: "bad_input",
|
|
1305
|
+
details: { issues: parsedInput.error.issues.map((issue) => issue.message) }
|
|
1306
|
+
});
|
|
1307
|
+
const page = "cursor" in parsedInput.data ? await this.listReportsPage({ next_token: parsedInput.data.cursor }) : await this.listReportsPage({
|
|
1308
|
+
report_types: parsedInput.data.report_types,
|
|
1309
|
+
...parsedInput.data.processing_statuses && { processing_statuses: parsedInput.data.processing_statuses },
|
|
1310
|
+
...parsedInput.data.marketplace_ids && { marketplace_ids: parsedInput.data.marketplace_ids },
|
|
1311
|
+
...parsedInput.data.page_size !== void 0 && { page_size: parsedInput.data.page_size },
|
|
1312
|
+
...parsedInput.data.created_since && { created_since: parsedInput.data.created_since },
|
|
1313
|
+
...parsedInput.data.created_until && { created_until: parsedInput.data.created_until }
|
|
758
1314
|
});
|
|
759
|
-
const parsed = parseListReportsPayload(data);
|
|
760
1315
|
return {
|
|
761
|
-
items:
|
|
762
|
-
truncated: Boolean(
|
|
763
|
-
...
|
|
1316
|
+
items: page.items.map(parseReport),
|
|
1317
|
+
truncated: Boolean(page.next_token),
|
|
1318
|
+
...page.next_token && { next_cursor: page.next_token }
|
|
764
1319
|
};
|
|
765
1320
|
}
|
|
1321
|
+
/** One GET /reports/2021-06-30/reports request. Continuations send only nextToken. */
|
|
1322
|
+
async listReportsPage(input) {
|
|
1323
|
+
const parsedInput = amazonSpApiListReportsPageInputSchema.safeParse(input);
|
|
1324
|
+
if (!parsedInput.success) throw new ToolError("Invalid Amazon SP-API reports page input", {
|
|
1325
|
+
code: "bad_input",
|
|
1326
|
+
details: { issues: parsedInput.error.issues.map((issue) => issue.message) }
|
|
1327
|
+
});
|
|
1328
|
+
let query;
|
|
1329
|
+
if ("next_token" in parsedInput.data) query = { nextToken: parsedInput.data.next_token };
|
|
1330
|
+
else {
|
|
1331
|
+
const marketplaceIds = parsedInput.data.marketplace_ids ?? this.#auth.marketplace_ids;
|
|
1332
|
+
query = {
|
|
1333
|
+
reportTypes: parsedInput.data.report_types.join(","),
|
|
1334
|
+
...parsedInput.data.processing_statuses && { processingStatuses: parsedInput.data.processing_statuses.join(",") },
|
|
1335
|
+
...marketplaceIds && { marketplaceIds: marketplaceIds.join(",") },
|
|
1336
|
+
...parsedInput.data.page_size !== void 0 && { pageSize: parsedInput.data.page_size },
|
|
1337
|
+
...parsedInput.data.created_since && { createdSince: parsedInput.data.created_since },
|
|
1338
|
+
...parsedInput.data.created_until && { createdUntil: parsedInput.data.created_until }
|
|
1339
|
+
};
|
|
1340
|
+
}
|
|
1341
|
+
const result = await this.#spGet("/reports/2021-06-30/reports", "Amazon SP-API listReportsPage", query);
|
|
1342
|
+
return parseListReportsPagePayload(result.data, result.headers);
|
|
1343
|
+
}
|
|
766
1344
|
/** GET /reports/2021-06-30/documents/{reportDocumentId} */
|
|
767
1345
|
async getReportDocument(input) {
|
|
768
1346
|
const { data } = await this.#spGet(`/reports/2021-06-30/documents/${encodeURIComponent(input.report_document_id)}`, "Amazon SP-API getReportDocument");
|
|
769
1347
|
return parseReportDocumentPayload(data);
|
|
770
1348
|
}
|
|
1349
|
+
/** Resolve and privately download an Amazon report document by id. */
|
|
1350
|
+
async downloadReportDocumentBytes(input) {
|
|
1351
|
+
const parsedInput = amazonSpApiDownloadReportDocumentBytesInputSchema.safeParse(input);
|
|
1352
|
+
if (!parsedInput.success) throw new ToolError("Invalid Amazon report document download input", {
|
|
1353
|
+
code: "bad_input",
|
|
1354
|
+
details: { issues: parsedInput.error.issues.map((issue) => issue.message) }
|
|
1355
|
+
});
|
|
1356
|
+
const document = await this.getReportDocument({ report_document_id: parsedInput.data.report_document_id });
|
|
1357
|
+
return await this.#downloadReportDocumentDescriptor(document, parsedInput.data.max_bytes);
|
|
1358
|
+
}
|
|
1359
|
+
async #downloadReportDocumentDescriptor(document, maxBytes) {
|
|
1360
|
+
let compressionAlgorithm;
|
|
1361
|
+
if (document.compression_algorithm) {
|
|
1362
|
+
if (document.compression_algorithm.toUpperCase() !== "GZIP") throw new ToolError(`Unsupported Amazon report compression: ${document.compression_algorithm}`, { code: "unsupported" });
|
|
1363
|
+
compressionAlgorithm = "GZIP";
|
|
1364
|
+
}
|
|
1365
|
+
const result = await this.#download.bytes("GET", document.url, {
|
|
1366
|
+
label: "Amazon SP-API report document",
|
|
1367
|
+
maxBytes
|
|
1368
|
+
});
|
|
1369
|
+
const bytes = await decompressReportDocumentBytes(result.bytes, compressionAlgorithm, maxBytes);
|
|
1370
|
+
const contentType = result.headers.get("content-type") ?? void 0;
|
|
1371
|
+
const contentEncoding = result.headers.get("content-encoding") ?? void 0;
|
|
1372
|
+
return {
|
|
1373
|
+
bytes,
|
|
1374
|
+
text: bytesToUtf8(bytes),
|
|
1375
|
+
byte_length: bytes.byteLength,
|
|
1376
|
+
...contentType && { content_type: contentType },
|
|
1377
|
+
...contentEncoding && { content_encoding: contentEncoding },
|
|
1378
|
+
...compressionAlgorithm && { compression_algorithm: compressionAlgorithm }
|
|
1379
|
+
};
|
|
1380
|
+
}
|
|
771
1381
|
/**
|
|
772
1382
|
* Composite: newest DONE Flat File V2 settlement report (or `report_id`) →
|
|
773
1383
|
* one document download → eight summary fields in safe integer cents.
|
|
@@ -795,12 +1405,11 @@ var AmazonSpApiClient = class AmazonSpApiClient {
|
|
|
795
1405
|
const createdSince = input.created_since ?? settlementCreatedSinceIso();
|
|
796
1406
|
let cursor;
|
|
797
1407
|
for (let page = 0; page < 5; page += 1) {
|
|
798
|
-
const listed = await this.listReports({
|
|
1408
|
+
const listed = cursor ? await this.listReports({ cursor }) : await this.listReports({
|
|
799
1409
|
report_types: [SETTLEMENT_REPORT_TYPE_V2],
|
|
800
1410
|
processing_statuses: ["DONE"],
|
|
801
1411
|
created_since: createdSince,
|
|
802
|
-
page_size: 100
|
|
803
|
-
...cursor && { cursor }
|
|
1412
|
+
page_size: 100
|
|
804
1413
|
});
|
|
805
1414
|
for (const report of listed.items) if (report.report_document_id) return report.report_document_id;
|
|
806
1415
|
if (!listed.next_cursor) break;
|
|
@@ -902,7 +1511,7 @@ const amazonSpApiGetReportTool = defineTool({
|
|
|
902
1511
|
const amazonSpApiListReportsTool = defineTool({
|
|
903
1512
|
id: "amazon-sp-api-list-reports",
|
|
904
1513
|
name: "amazonSpApiListReports",
|
|
905
|
-
description: "List Amazon SP-API reports
|
|
1514
|
+
description: "List Amazon SP-API reports. Initial calls require report types and may use status, marketplace, and created-time filters. Continue with next_cursor.",
|
|
906
1515
|
inputSchema: amazonSpApiListReportsInputSchema,
|
|
907
1516
|
outputSchema: amazonSpApiListReportsOutputSchema,
|
|
908
1517
|
sideEffect: "read",
|
|
@@ -970,6 +1579,6 @@ const amazonSpApiModule = defineModule({
|
|
|
970
1579
|
]
|
|
971
1580
|
});
|
|
972
1581
|
//#endregion
|
|
973
|
-
export { AmazonSpApiClient, amazonSpApiAuthSchema, amazonSpApiCatalogItemSchema, amazonSpApiCreateReportInputSchema, amazonSpApiCreateReportOutputSchema, amazonSpApiCreateReportTool, amazonSpApiEndpointSchema, amazonSpApiGetOrderInputSchema, amazonSpApiGetOrderItemsInputSchema, amazonSpApiGetOrderItemsOutputSchema, amazonSpApiGetOrderItemsTool, amazonSpApiGetOrderOutputSchema, amazonSpApiGetOrderTool, amazonSpApiGetReportDocumentInputSchema, amazonSpApiGetReportDocumentOutputSchema, amazonSpApiGetReportDocumentTool, amazonSpApiGetReportInputSchema, amazonSpApiGetReportOutputSchema, amazonSpApiGetReportTool, amazonSpApiGetSettlementSummaryInputSchema, amazonSpApiGetSettlementSummaryOutputSchema, amazonSpApiGetSettlementSummaryTool, amazonSpApiInventorySummarySchema, amazonSpApiListInventorySummariesInputSchema, amazonSpApiListInventorySummariesOutputSchema, amazonSpApiListInventorySummariesTool, amazonSpApiListOrdersInputSchema, amazonSpApiListOrdersOutputSchema, amazonSpApiListOrdersTool, amazonSpApiListReportsInputSchema, amazonSpApiListReportsOutputSchema, amazonSpApiListReportsTool, amazonSpApiModule, amazonSpApiOrderItemSchema, amazonSpApiOrderSchema, amazonSpApiReportSchema, amazonSpApiSearchCatalogItemsInputSchema, amazonSpApiSearchCatalogItemsOutputSchema, amazonSpApiSearchCatalogItemsTool, amazonSpApiSearchOrderSchema, amazonSpApiSearchOrdersInputSchema, amazonSpApiSearchOrdersOutputSchema, amazonSpApiSearchOrdersTool, amazonSpApiSettlementSummarySchema };
|
|
1582
|
+
export { AmazonSpApiClient, amazonInventoryDetailsRawSchema, amazonInventoryResearchingQuantityBreakdownRawSchema, amazonInventoryResearchingQuantityRawSchema, amazonInventoryReservedQuantityRawSchema, amazonInventorySummaryRawSchema, amazonInventoryUnfulfillableQuantityRawSchema, amazonReportRawSchema, amazonSpApiAuthSchema, amazonSpApiCatalogItemSchema, amazonSpApiCreateReportInputSchema, amazonSpApiCreateReportOutputSchema, amazonSpApiCreateReportTool, amazonSpApiDownloadReportDocumentBytesInputSchema, amazonSpApiDownloadReportDocumentBytesOutputSchema, amazonSpApiEndpointSchema, amazonSpApiGetOrderInputSchema, amazonSpApiGetOrderItemsInputSchema, amazonSpApiGetOrderItemsOutputSchema, amazonSpApiGetOrderItemsTool, amazonSpApiGetOrderOutputSchema, amazonSpApiGetOrderTool, amazonSpApiGetReportDocumentInputSchema, amazonSpApiGetReportDocumentOutputSchema, amazonSpApiGetReportDocumentTool, amazonSpApiGetReportInputSchema, amazonSpApiGetReportOutputSchema, amazonSpApiGetReportTool, amazonSpApiGetSettlementSummaryInputSchema, amazonSpApiGetSettlementSummaryOutputSchema, amazonSpApiGetSettlementSummaryTool, amazonSpApiInventoryPageInputSchema, amazonSpApiInventoryPageOutputSchema, amazonSpApiInventorySummarySchema, amazonSpApiListInventorySummariesInputSchema, amazonSpApiListInventorySummariesOutputSchema, amazonSpApiListInventorySummariesTool, amazonSpApiListOrdersInputSchema, amazonSpApiListOrdersOutputSchema, amazonSpApiListOrdersTool, amazonSpApiListReportsContinuationInputSchema, amazonSpApiListReportsInitialInputSchema, amazonSpApiListReportsInputSchema, amazonSpApiListReportsOutputSchema, amazonSpApiListReportsPageInputSchema, amazonSpApiListReportsPageOutputSchema, amazonSpApiListReportsTool, amazonSpApiLwaTokenResponseSchema, amazonSpApiModule, amazonSpApiOrderItemSchema, amazonSpApiOrderSchema, amazonSpApiReportSchema, amazonSpApiSearchCatalogItemsInputSchema, amazonSpApiSearchCatalogItemsOutputSchema, amazonSpApiSearchCatalogItemsTool, amazonSpApiSearchOrderSchema, amazonSpApiSearchOrdersInputSchema, amazonSpApiSearchOrdersOutputSchema, amazonSpApiSearchOrdersTool, amazonSpApiSettlementSummarySchema };
|
|
974
1583
|
|
|
975
1584
|
//# sourceMappingURL=index.js.map
|