item-wms-public-api-tool 2.0.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.
Files changed (110) hide show
  1. package/AI_INTEGRATION_GUIDE.md +492 -0
  2. package/HELP.md +297 -0
  3. package/README.md +259 -0
  4. package/api/README.md +9 -0
  5. package/api/openapi.apifox.yaml +20771 -0
  6. package/dist/cli.d.ts +10 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +326 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/client.d.ts +8 -0
  11. package/dist/client.d.ts.map +1 -0
  12. package/dist/client.js +76 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/config.d.ts +32 -0
  15. package/dist/config.d.ts.map +1 -0
  16. package/dist/config.js +109 -0
  17. package/dist/config.js.map +1 -0
  18. package/dist/index.d.ts +3 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +31 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/openapi-tools.d.ts +25 -0
  23. package/dist/openapi-tools.d.ts.map +1 -0
  24. package/dist/openapi-tools.js +287 -0
  25. package/dist/openapi-tools.js.map +1 -0
  26. package/dist/server.d.ts +5 -0
  27. package/dist/server.d.ts.map +1 -0
  28. package/dist/server.js +442 -0
  29. package/dist/server.js.map +1 -0
  30. package/dist/tools/batchImportItemMaster.d.ts +59 -0
  31. package/dist/tools/batchImportItemMaster.d.ts.map +1 -0
  32. package/dist/tools/batchImportItemMaster.js +27 -0
  33. package/dist/tools/batchImportItemMaster.js.map +1 -0
  34. package/dist/tools/batchUploadOrderFiles.d.ts +29 -0
  35. package/dist/tools/batchUploadOrderFiles.d.ts.map +1 -0
  36. package/dist/tools/batchUploadOrderFiles.js +96 -0
  37. package/dist/tools/batchUploadOrderFiles.js.map +1 -0
  38. package/dist/tools/importInbound.d.ts +62 -0
  39. package/dist/tools/importInbound.d.ts.map +1 -0
  40. package/dist/tools/importInbound.js +22 -0
  41. package/dist/tools/importInbound.js.map +1 -0
  42. package/dist/tools/importOutbound.d.ts +76 -0
  43. package/dist/tools/importOutbound.d.ts.map +1 -0
  44. package/dist/tools/importOutbound.js +25 -0
  45. package/dist/tools/importOutbound.js.map +1 -0
  46. package/dist/tools/itemGet.d.ts +15 -0
  47. package/dist/tools/itemGet.d.ts.map +1 -0
  48. package/dist/tools/itemGet.js +12 -0
  49. package/dist/tools/itemGet.js.map +1 -0
  50. package/dist/tools/itemSearch.d.ts +8 -0
  51. package/dist/tools/itemSearch.d.ts.map +1 -0
  52. package/dist/tools/itemSearch.js +17 -0
  53. package/dist/tools/itemSearch.js.map +1 -0
  54. package/dist/tools/login.d.ts +26 -0
  55. package/dist/tools/login.d.ts.map +1 -0
  56. package/dist/tools/login.js +15 -0
  57. package/dist/tools/login.js.map +1 -0
  58. package/dist/tools/queryItemMaster.d.ts +63 -0
  59. package/dist/tools/queryItemMaster.d.ts.map +1 -0
  60. package/dist/tools/queryItemMaster.js +9 -0
  61. package/dist/tools/queryItemMaster.js.map +1 -0
  62. package/dist/tools/queryOrder.d.ts +74 -0
  63. package/dist/tools/queryOrder.d.ts.map +1 -0
  64. package/dist/tools/queryOrder.js +19 -0
  65. package/dist/tools/queryOrder.js.map +1 -0
  66. package/dist/tools/queryOrderDC.d.ts +25 -0
  67. package/dist/tools/queryOrderDC.d.ts.map +1 -0
  68. package/dist/tools/queryOrderDC.js +19 -0
  69. package/dist/tools/queryOrderDC.js.map +1 -0
  70. package/dist/tools/queryOrderDetail.d.ts +70 -0
  71. package/dist/tools/queryOrderDetail.d.ts.map +1 -0
  72. package/dist/tools/queryOrderDetail.js +19 -0
  73. package/dist/tools/queryOrderDetail.js.map +1 -0
  74. package/dist/tools/queryReceipt.d.ts +70 -0
  75. package/dist/tools/queryReceipt.d.ts.map +1 -0
  76. package/dist/tools/queryReceipt.js +19 -0
  77. package/dist/tools/queryReceipt.js.map +1 -0
  78. package/dist/tools/queryReceiptDetail.d.ts +70 -0
  79. package/dist/tools/queryReceiptDetail.d.ts.map +1 -0
  80. package/dist/tools/queryReceiptDetail.js +19 -0
  81. package/dist/tools/queryReceiptDetail.js.map +1 -0
  82. package/dist/tools/queryReceiptRC.d.ts +25 -0
  83. package/dist/tools/queryReceiptRC.d.ts.map +1 -0
  84. package/dist/tools/queryReceiptRC.js +19 -0
  85. package/dist/tools/queryReceiptRC.js.map +1 -0
  86. package/dist/tools/uploadOrderFile.d.ts +25 -0
  87. package/dist/tools/uploadOrderFile.d.ts.map +1 -0
  88. package/dist/tools/uploadOrderFile.js +94 -0
  89. package/dist/tools/uploadOrderFile.js.map +1 -0
  90. package/dist/tools/validateInbound.d.ts +13 -0
  91. package/dist/tools/validateInbound.d.ts.map +1 -0
  92. package/dist/tools/validateInbound.js +18 -0
  93. package/dist/tools/validateInbound.js.map +1 -0
  94. package/llms.txt +23 -0
  95. package/mcp.json +6562 -0
  96. package/mcp.schema.json +100 -0
  97. package/openapi.yaml +20685 -0
  98. package/package.json +34 -0
  99. package/scripts/sync-openapi.js +289 -0
  100. package/src/cli.ts +353 -0
  101. package/src/client.ts +90 -0
  102. package/src/config.ts +126 -0
  103. package/src/index.ts +31 -0
  104. package/src/openapi-tools.ts +346 -0
  105. package/src/server.ts +472 -0
  106. package/test-ai-integration.js +128 -0
  107. package/test-fix.js +68 -0
  108. package/test-mcp.js +92 -0
  109. package/test-order.json +25 -0
  110. package/tsconfig.json +18 -0
package/dist/server.js ADDED
@@ -0,0 +1,442 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.startServer = startServer;
37
+ const config_1 = require("./config");
38
+ const openapi_tools_1 = require("./openapi-tools");
39
+ const fs = __importStar(require("fs"));
40
+ const path = __importStar(require("path"));
41
+ let sessionToken;
42
+ let sessionBaseUrl;
43
+ function loadMcpConfig() {
44
+ const candidates = [
45
+ path.resolve(__dirname, '..', 'mcp.json'),
46
+ path.resolve(process.cwd(), 'mcp.json')
47
+ ];
48
+ for (const candidate of candidates) {
49
+ if (fs.existsSync(candidate)) {
50
+ const raw = fs.readFileSync(candidate, 'utf8');
51
+ return JSON.parse(raw);
52
+ }
53
+ }
54
+ return null;
55
+ }
56
+ const mcpConfig = loadMcpConfig();
57
+ const supportedProtocolVersions = ["2024-11-05", "2024-10-07", "0.1.0"];
58
+ const openApiPath = findOpenApiPath();
59
+ let openApiIndex = null;
60
+ let openApiMtimeMs = null;
61
+ const promptCatalog = buildPromptCatalog();
62
+ function extractAuthToken(result) {
63
+ if (!result || typeof result !== 'object') {
64
+ return undefined;
65
+ }
66
+ const candidates = [
67
+ result.onAuthToken,
68
+ result.token,
69
+ result.accessToken,
70
+ result.authToken
71
+ ];
72
+ for (const candidate of candidates) {
73
+ if (typeof candidate === 'string' && candidate.trim().length > 0) {
74
+ return candidate.trim();
75
+ }
76
+ }
77
+ return undefined;
78
+ }
79
+ function findOpenApiPath() {
80
+ const candidates = [
81
+ path.resolve(__dirname, '..', 'openapi.yaml'),
82
+ path.resolve(process.cwd(), 'openapi.yaml')
83
+ ];
84
+ for (const candidate of candidates) {
85
+ if (fs.existsSync(candidate)) {
86
+ return candidate;
87
+ }
88
+ }
89
+ return null;
90
+ }
91
+ function listResources() {
92
+ if (!openApiPath) {
93
+ return [];
94
+ }
95
+ return [
96
+ {
97
+ uri: "api://docs",
98
+ name: "WMS OpenAPI",
99
+ description: "OpenAPI 3.0 specification",
100
+ mimeType: "application/yaml"
101
+ }
102
+ ];
103
+ }
104
+ function loadOpenApiIndex() {
105
+ if (!openApiPath) {
106
+ return null;
107
+ }
108
+ try {
109
+ const spec = (0, openapi_tools_1.loadOpenApiSpec)(openApiPath);
110
+ const hasPrefixEnv = Object.prototype.hasOwnProperty.call(process.env, 'APIFOX_PATH_PREFIX');
111
+ const pathPrefix = hasPrefixEnv ? process.env.APIFOX_PATH_PREFIX : '/v1/public/';
112
+ const normalizedPrefix = pathPrefix && pathPrefix.length > 0 ? pathPrefix : undefined;
113
+ return (0, openapi_tools_1.buildOpenApiIndex)(spec, { pathPrefix: normalizedPrefix });
114
+ }
115
+ catch (error) {
116
+ console.error('ERROR: failed to load OpenAPI spec:', error.message);
117
+ return null;
118
+ }
119
+ }
120
+ function getOpenApiIndex() {
121
+ if (!openApiPath) {
122
+ return null;
123
+ }
124
+ try {
125
+ const stats = fs.statSync(openApiPath);
126
+ if (!openApiIndex || openApiMtimeMs !== stats.mtimeMs) {
127
+ openApiIndex = loadOpenApiIndex();
128
+ openApiMtimeMs = stats.mtimeMs;
129
+ }
130
+ }
131
+ catch (error) {
132
+ console.error('ERROR: failed to stat OpenAPI spec:', error.message);
133
+ return openApiIndex;
134
+ }
135
+ return openApiIndex;
136
+ }
137
+ function buildPromptCatalog() {
138
+ const prompts = [
139
+ {
140
+ prompt: {
141
+ name: "wms_call_flow",
142
+ description: "WMS 接口实现提示(基于 MCP 定义,不调用 MCP 工具)",
143
+ arguments: [
144
+ { name: "language", description: "zh or en", required: false },
145
+ { name: "include_examples", description: "true/false", required: false }
146
+ ]
147
+ },
148
+ render: (args) => {
149
+ const language = String(args.language || "zh").toLowerCase();
150
+ const includeExamples = String(args.include_examples || "true").toLowerCase() !== "false";
151
+ if (language === "en") {
152
+ return [
153
+ "You are implementing real WMS API integration for an application. Use MCP definitions as the contract, but DO NOT call MCP tools in your production code.",
154
+ "1) Use api://docs (OpenAPI) to determine HTTP method, path, and request/response schema. Do not invent fields.",
155
+ "2) baseUrl defaults to https://wms-staging.item.com/api/public and can be overridden by configuration.",
156
+ "3) Auth flow: call the login endpoint to obtain onAuthToken, then send `Authorization: Bearer <token>` for subsequent requests.",
157
+ "4) Pagination: follow the OpenAPI schema (Paging object vs page/pageSize).",
158
+ "5) File upload: follow the API schema (e.g., FileData/FileName). If you only have filePath, read and encode before calling the API.",
159
+ "6) Implement robust error handling for non-2xx responses and schema validation failures.",
160
+ includeExamples
161
+ ? "Output a minimal runnable HTTP client example plus brief comments."
162
+ : "Output a concise implementation outline without examples."
163
+ ].join("\n");
164
+ }
165
+ return [
166
+ "你在实现项目可用的 WMS API 集成。MCP 只作为接口定义来源,不要在业务代码里调用 MCP 工具。",
167
+ "1)先通过 api://docs(OpenAPI)确认接口的 HTTP 方法、路径、请求/响应结构,不要自行新增字段。",
168
+ "2)baseUrl 默认 https://wms-staging.item.com/api/public,可通过配置覆盖。",
169
+ "3)认证流程:先调用登录接口拿到 onAuthToken,再用 `Authorization: Bearer <token>` 访问其他接口。",
170
+ "4)分页:按 OpenAPI 结构传参(Paging 或 page/pageSize)。",
171
+ "5)文件上传:按 API schema(如 FileData/FileName)实现;只有 filePath 时先读取并编码。",
172
+ "6)完善错误处理,处理非 2xx 和 schema 校验失败。",
173
+ includeExamples
174
+ ? "输出最小可运行 HTTP 客户端示例 + 简要注释。"
175
+ : "输出精简实现要点,不要给示例。"
176
+ ].join("\n");
177
+ }
178
+ }
179
+ ];
180
+ return prompts.reduce((acc, entry) => {
181
+ acc[entry.prompt.name] = entry;
182
+ return acc;
183
+ }, {});
184
+ }
185
+ function listPrompts() {
186
+ return Object.values(promptCatalog).map((entry) => entry.prompt);
187
+ }
188
+ function getPrompt(name, args) {
189
+ const entry = promptCatalog[name];
190
+ if (!entry) {
191
+ return null;
192
+ }
193
+ return entry.render(args);
194
+ }
195
+ function resolveClientOptions(opts) {
196
+ const baseUrl = opts.baseUrl || sessionBaseUrl || process.env.WMS_BASE_URL || config_1.DEFAULT_BASE_URL;
197
+ const token = opts.token || sessionToken || process.env.WMS_TOKEN;
198
+ if (opts.baseUrl) {
199
+ sessionBaseUrl = opts.baseUrl;
200
+ }
201
+ if (opts.token) {
202
+ sessionToken = opts.token;
203
+ }
204
+ return {
205
+ baseUrl,
206
+ token
207
+ };
208
+ }
209
+ async function dispatchOpenApiTool(toolName, toolParams, globalOpts) {
210
+ const liveIndex = getOpenApiIndex();
211
+ if (!liveIndex) {
212
+ throw new Error('OpenAPI spec not loaded. Run sync:api to refresh openapi.yaml.');
213
+ }
214
+ const operation = liveIndex.operations[toolName];
215
+ if (!operation) {
216
+ throw new Error(`Unknown method: ${toolName}`);
217
+ }
218
+ const clientOpts = resolveClientOptions(globalOpts);
219
+ const toolResult = await (0, openapi_tools_1.callOpenApiOperation)(operation, toolParams, clientOpts);
220
+ const extractedToken = extractAuthToken(toolResult);
221
+ if (extractedToken) {
222
+ sessionToken = extractedToken;
223
+ if (clientOpts.baseUrl) {
224
+ sessionBaseUrl = clientOpts.baseUrl;
225
+ }
226
+ }
227
+ return toolResult;
228
+ }
229
+ function writeResult(id, result) {
230
+ if (id === undefined) {
231
+ return;
232
+ }
233
+ process.stdout.write(JSON.stringify({
234
+ jsonrpc: '2.0',
235
+ id: id,
236
+ result: result
237
+ }) + '\n');
238
+ }
239
+ function writeError(id, code, message, data) {
240
+ if (id === undefined) {
241
+ return;
242
+ }
243
+ process.stdout.write(JSON.stringify({
244
+ jsonrpc: '2.0',
245
+ id: id ?? null,
246
+ error: {
247
+ code,
248
+ message,
249
+ ...(data ? { data } : {})
250
+ }
251
+ }) + '\n');
252
+ }
253
+ /**
254
+ * 启动MCP服务器
255
+ */
256
+ async function startServer() {
257
+ let buffer = '';
258
+ process.stdin.setEncoding('utf8');
259
+ async function handleMessage(raw) {
260
+ let input;
261
+ try {
262
+ input = JSON.parse(raw);
263
+ }
264
+ catch (error) {
265
+ writeError(null, -32700, 'Parse error', { message: error.message });
266
+ return;
267
+ }
268
+ const { jsonrpc, id, method, params = {} } = input;
269
+ if (jsonrpc !== '2.0' || !method) {
270
+ writeError(id ?? null, -32600, 'Invalid Request');
271
+ return;
272
+ }
273
+ const isNotification = id === undefined;
274
+ if (method === 'initialized' || method === 'notifications/initialized') {
275
+ return;
276
+ }
277
+ if (method === 'notifications/cancelled' || method === 'cancelled') {
278
+ return;
279
+ }
280
+ try {
281
+ let result;
282
+ if (method === 'initialize') {
283
+ const requestedVersion = typeof params.protocolVersion === 'string' ? params.protocolVersion : undefined;
284
+ const protocolVersion = requestedVersion && supportedProtocolVersions.includes(requestedVersion)
285
+ ? requestedVersion
286
+ : supportedProtocolVersions[0];
287
+ result = {
288
+ protocolVersion,
289
+ capabilities: {
290
+ tools: { listChanged: false },
291
+ resources: { listChanged: false },
292
+ prompts: { listChanged: false }
293
+ },
294
+ serverInfo: {
295
+ name: mcpConfig?.name ?? "item-wms-public-api-tool",
296
+ version: mcpConfig?.version ?? "0.1.0"
297
+ }
298
+ };
299
+ }
300
+ else if (method === 'tools/list') {
301
+ const liveIndex = getOpenApiIndex();
302
+ result = {
303
+ tools: liveIndex?.tools ?? mcpConfig?.tools ?? []
304
+ };
305
+ }
306
+ else if (method === 'tools/call') {
307
+ const { name, arguments: args, params: legacyParams, options = {} } = params;
308
+ if (!name) {
309
+ writeError(id ?? null, -32602, 'Missing tool name');
310
+ return;
311
+ }
312
+ const toolParamsRaw = (args || legacyParams || {});
313
+ const { baseUrl: paramsBaseUrl, token: paramsToken, ...toolParams } = toolParamsRaw;
314
+ const globalOpts = {
315
+ baseUrl: options.baseUrl || paramsBaseUrl,
316
+ token: options.token || paramsToken
317
+ };
318
+ try {
319
+ const toolResult = await dispatchOpenApiTool(name, toolParams, globalOpts);
320
+ result = {
321
+ content: [
322
+ {
323
+ type: 'text',
324
+ text: JSON.stringify(toolResult)
325
+ }
326
+ ]
327
+ };
328
+ }
329
+ catch (error) {
330
+ result = {
331
+ content: [
332
+ {
333
+ type: 'text',
334
+ text: error.message
335
+ }
336
+ ],
337
+ isError: true
338
+ };
339
+ }
340
+ }
341
+ else if (method === 'resources/list') {
342
+ result = { resources: listResources() };
343
+ }
344
+ else if (method === 'resources/read') {
345
+ const { uri } = params;
346
+ if (!uri) {
347
+ writeError(id ?? null, -32602, 'Missing uri');
348
+ return;
349
+ }
350
+ if (uri === 'api://docs' && openApiPath) {
351
+ const content = fs.readFileSync(openApiPath, 'utf8');
352
+ result = {
353
+ contents: [
354
+ {
355
+ uri,
356
+ mimeType: "application/yaml",
357
+ text: content
358
+ }
359
+ ]
360
+ };
361
+ }
362
+ else {
363
+ writeError(id ?? null, -32602, `Resource not found: ${uri}`);
364
+ return;
365
+ }
366
+ }
367
+ else if (method === 'prompts/list') {
368
+ result = { prompts: listPrompts() };
369
+ }
370
+ else if (method === 'prompts/get') {
371
+ const { name, arguments: promptArgs = {} } = params;
372
+ if (!name) {
373
+ writeError(id ?? null, -32602, 'Missing prompt name');
374
+ return;
375
+ }
376
+ const promptText = getPrompt(name, promptArgs);
377
+ if (!promptText) {
378
+ writeError(id ?? null, -32602, `Prompt not found: ${name}`);
379
+ return;
380
+ }
381
+ result = {
382
+ messages: [
383
+ {
384
+ role: 'system',
385
+ content: [
386
+ {
387
+ type: 'text',
388
+ text: promptText
389
+ }
390
+ ]
391
+ }
392
+ ]
393
+ };
394
+ }
395
+ else if (method === 'ping') {
396
+ result = {};
397
+ }
398
+ else if (method === 'logging/setLevel') {
399
+ result = {};
400
+ }
401
+ else {
402
+ const options = params.options || {};
403
+ const toolParams = params.params || params || {};
404
+ const globalOpts = {
405
+ baseUrl: options.baseUrl,
406
+ token: options.token
407
+ };
408
+ result = await dispatchOpenApiTool(method, toolParams, globalOpts);
409
+ }
410
+ if (!isNotification) {
411
+ writeResult(id, result);
412
+ }
413
+ }
414
+ catch (error) {
415
+ if (isNotification) {
416
+ return;
417
+ }
418
+ const message = error.message;
419
+ const code = message.startsWith('Unknown method:') ? -32601 : -32603;
420
+ writeError(id ?? null, code, message, { stack: error.stack });
421
+ }
422
+ }
423
+ process.stdin.on('data', async (data) => {
424
+ buffer += data;
425
+ const lines = buffer.split(/\r?\n/);
426
+ buffer = lines.pop() ?? '';
427
+ for (const line of lines) {
428
+ const trimmed = line.trim();
429
+ if (!trimmed) {
430
+ continue;
431
+ }
432
+ await handleMessage(trimmed);
433
+ }
434
+ });
435
+ process.stdin.on('end', async () => {
436
+ const trimmed = buffer.trim();
437
+ if (trimmed) {
438
+ await handleMessage(trimmed);
439
+ }
440
+ });
441
+ }
442
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { ClientOptions } from '../client';
2
+ export type ItemMaster = {
3
+ ActionCode_AU: string;
4
+ allowOverWriteItem: string;
5
+ companyId: string;
6
+ supplierId: string;
7
+ customerId: string;
8
+ itemID: string;
9
+ itemDescription: string;
10
+ shortDescription: string;
11
+ abbreviation: string;
12
+ ItemGroupID: string;
13
+ ItemSubGroupID: string;
14
+ tags: string[];
15
+ labels: string;
16
+ brandID: string;
17
+ groupIDs: string[];
18
+ grade: string;
19
+ billingGrade: string;
20
+ freightClass: string;
21
+ countLevel?: number | null;
22
+ nmfc: string;
23
+ commodityDescription: string;
24
+ countryOrigin: string;
25
+ fileIDs: string;
26
+ UPCCode: string;
27
+ UPCCode_Case: string;
28
+ EANCode: string;
29
+ isBundle: string;
30
+ hasSerialNumber: string;
31
+ serialNoLength?: number | null;
32
+ isHazardousMaterial: string;
33
+ status: string;
34
+ validationInboundSerialNo: string;
35
+ requireCollectLotNoOnReceive: string;
36
+ requireCollectSnOnReceive: string;
37
+ validationOutboundSerialNo: string;
38
+ needScanOutboundSerialNo: string;
39
+ isAllowOverWriteSuggestedPickLP: string;
40
+ 'Shipping Rule': string;
41
+ requireCollectExpirationDateOnReceive: string;
42
+ 'Ship Allowed Days': string;
43
+ requireCollectMfgDateOnReceive: string;
44
+ requireCollectShelfLifeDaysOnReceive: string;
45
+ requireCollectSnOnShipping: string;
46
+ };
47
+ export type BatchImportItemMasterInput = {
48
+ items: ItemMaster[];
49
+ };
50
+ export type ImportResult = {
51
+ itemID: string;
52
+ success: boolean;
53
+ message?: string;
54
+ };
55
+ export type BatchImportItemMasterResult = {
56
+ [key: string]: any;
57
+ };
58
+ export declare function batchImportItemMaster(input: BatchImportItemMasterInput, options: ClientOptions): Promise<BatchImportItemMasterResult>;
59
+ //# sourceMappingURL=batchImportItemMaster.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batchImportItemMaster.d.ts","sourceRoot":"","sources":["../../src/tools/batchImportItemMaster.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAQ,MAAM,WAAW,CAAC;AAGhD,MAAM,MAAM,UAAU,GAAG;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB,EAAE,MAAM,CAAC;IAClC,4BAA4B,EAAE,MAAM,CAAC;IACrC,yBAAyB,EAAE,MAAM,CAAC;IAClC,0BAA0B,EAAE,MAAM,CAAC;IACnC,wBAAwB,EAAE,MAAM,CAAC;IACjC,+BAA+B,EAAE,MAAM,CAAC;IACxC,eAAe,EAAE,MAAM,CAAC;IACxB,qCAAqC,EAAE,MAAM,CAAC;IAC9C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,8BAA8B,EAAE,MAAM,CAAC;IACvC,oCAAoC,EAAE,MAAM,CAAC;IAC7C,0BAA0B,EAAE,MAAM,CAAC;CAEpC,CAAC;AAGF,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,UAAU,EAAE,CAAC;CAErB,CAAC;AAGF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAElB,CAAC;AAGF,MAAM,MAAM,2BAA2B,GAAG;IAExC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEF,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,0BAA0B,EACjC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,2BAA2B,CAAC,CA6BtC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.batchImportItemMaster = batchImportItemMaster;
4
+ // src/tools/batchImportItemMaster.ts
5
+ const client_1 = require("../client");
6
+ async function batchImportItemMaster(input, options) {
7
+ if (!input.items || input.items.length === 0) {
8
+ throw new Error('At least one item is required');
9
+ }
10
+ // 验证每个商品是否有必填字段
11
+ for (const item of input.items) {
12
+ if (!item.itemID) {
13
+ throw new Error('itemID is required for each item');
14
+ }
15
+ if (!item.itemDescription) {
16
+ throw new Error('itemDescription is required for each item');
17
+ }
18
+ if (!item.companyId) {
19
+ throw new Error('companyId is required for each item');
20
+ }
21
+ if (!item.customerId) {
22
+ throw new Error('customerId is required for each item');
23
+ }
24
+ }
25
+ return (0, client_1.post)('/v1/public/item-master/batch-import', input, options);
26
+ }
27
+ //# sourceMappingURL=batchImportItemMaster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batchImportItemMaster.js","sourceRoot":"","sources":["../../src/tools/batchImportItemMaster.ts"],"names":[],"mappings":";;AAuEA,sDAgCC;AAvGD,qCAAqC;AACrC,sCAAgD;AAsEzC,KAAK,UAAU,qBAAqB,CACzC,KAAiC,EACjC,OAAsB;IAEtB,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,gBAAgB;IAChB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,OAAO,IAAA,aAAI,EACT,qCAAqC,EACrC,KAAK,EACL,OAAO,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { ClientOptions } from '../client';
2
+ export type FileInfo = {
3
+ FileData: string;
4
+ FileName: string;
5
+ };
6
+ export type BatchUploadOrderFilesInput = {
7
+ CompanyID: string;
8
+ FacilityID: string;
9
+ CustomerID: string;
10
+ ReferenceNo?: string | null;
11
+ PONo?: string | null;
12
+ SONos?: string[] | null;
13
+ CarrierName?: string | null;
14
+ SCACCode?: string | null;
15
+ DeliveryService?: string | null;
16
+ DocumentType: string;
17
+ TrackingNo?: string | null;
18
+ SubTrackingNos?: string[] | null;
19
+ Files?: FileInfo[];
20
+ FileName?: string;
21
+ OrderID?: string | null;
22
+ filePaths?: string[];
23
+ };
24
+ export type ObjectWrapper = {
25
+ data: any[] | null;
26
+ };
27
+ export type BatchUploadOrderFilesResult = ObjectWrapper;
28
+ export declare function batchUploadOrderFiles(input: BatchUploadOrderFilesInput, options: ClientOptions): Promise<BatchUploadOrderFilesResult>;
29
+ //# sourceMappingURL=batchUploadOrderFiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batchUploadOrderFiles.d.ts","sourceRoot":"","sources":["../../src/tools/batchUploadOrderFiles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAQ,MAAM,WAAW,CAAC;AAKhD,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAElB,CAAC;AAGF,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAGF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CACpB,CAAC;AAGF,MAAM,MAAM,2BAA2B,GAAG,aAAa,CAAC;AAExD,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,0BAA0B,EACjC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,2BAA2B,CAAC,CA+DtC"}