1688-cli 0.1.41 → 0.1.42
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/AGENTS.md +112 -318
- package/ARCHITECTURE.md +106 -0
- package/README.md +100 -10
- package/dist/cli.js +98 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/cart-list.js +2 -1
- package/dist/commands/cart-list.js.map +1 -1
- package/dist/commands/compare.js +107 -0
- package/dist/commands/compare.js.map +1 -0
- package/dist/commands/doctor.js +19 -5
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/offer.js +7 -5
- package/dist/commands/offer.js.map +1 -1
- package/dist/commands/order-list.js +4 -2
- package/dist/commands/order-list.js.map +1 -1
- package/dist/commands/order-logistics.js +4 -2
- package/dist/commands/order-logistics.js.map +1 -1
- package/dist/commands/research.js +142 -0
- package/dist/commands/research.js.map +1 -0
- package/dist/commands/search.js +59 -18
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/seller-messages.js +7 -4
- package/dist/commands/seller-messages.js.map +1 -1
- package/dist/commands/sourcing-utils.js +438 -0
- package/dist/commands/sourcing-utils.js.map +1 -0
- package/dist/commands/supplier-inspect.js +559 -0
- package/dist/commands/supplier-inspect.js.map +1 -0
- package/dist/commands/supplier-search.js +522 -0
- package/dist/commands/supplier-search.js.map +1 -0
- package/dist/daemon/protocol.js +2 -1
- package/dist/daemon/protocol.js.map +1 -1
- package/dist/session/dispatch.js +2 -0
- package/dist/session/dispatch.js.map +1 -1
- package/dist/session/im-ws.js +8 -5
- package/dist/session/im-ws.js.map +1 -1
- package/dist/session/paths.js +17 -4
- package/dist/session/paths.js.map +1 -1
- package/dist/session/search-mtop.js +53 -0
- package/dist/session/search-mtop.js.map +1 -1
- package/dist/session/supplier-search.js +403 -0
- package/dist/session/supplier-search.js.map +1 -0
- package/dist/util/encoding.js +8 -0
- package/dist/util/encoding.js.map +1 -0
- package/dist/util/temp.js +6 -0
- package/dist/util/temp.js.map +1 -0
- package/docs/AGENT_MAPS_PLAN.md +171 -0
- package/docs/AGENT_WORKING_PRINCIPLES.md +143 -0
- package/docs/COMMANDS.md +199 -0
- package/docs/FEATURES.md +45 -0
- package/docs/JSON_CONTRACTS.md +390 -0
- package/docs/QUALITY_SCORE.md +60 -0
- package/docs/README.md +35 -0
- package/docs/RELIABILITY.md +61 -0
- package/docs/SAFETY.md +100 -0
- package/docs/WORKFLOW.md +82 -0
- package/docs/exec-plans/README.md +9 -0
- package/docs/exec-plans/active/README.md +4 -0
- package/docs/exec-plans/completed/2026-05-28-sourcing-research-v1.md +125 -0
- package/docs/exec-plans/completed/2026-05-31-supplier-inspect-v1.md +113 -0
- package/docs/exec-plans/completed/2026-06-04-supplier-search-v1.md +81 -0
- package/docs/exec-plans/completed/2026-06-07-windows-cli-compatibility.md +138 -0
- package/docs/exec-plans/completed/README.md +4 -0
- package/docs/exec-plans/tech-debt-tracker.md +5 -0
- package/docs/generated/command-index.md +54 -0
- package/docs/generated/json-shapes.md +111 -0
- package/docs/generated/module-map.md +13 -0
- package/docs/generated/test-index.md +34 -0
- package/docs/playbooks/add-command.md +15 -0
- package/docs/playbooks/add-mtop-capture.md +13 -0
- package/docs/playbooks/change-json-output.md +11 -0
- package/docs/playbooks/debug-risk-control.md +12 -0
- package/docs/playbooks/update-cli-release.md +11 -0
- package/docs/specs/checkout-and-orders.md +30 -0
- package/docs/specs/seller-im.md +28 -0
- package/docs/specs/sourcing-research.md +186 -0
- package/docs/specs/supplier-inspect.md +144 -0
- package/docs/specs/supplier-search.md +179 -0
- package/docs/specs/windows-cli-compatibility.md +123 -0
- package/package.json +12 -2
- package/scripts/check_agent_map.mjs +86 -0
- package/scripts/fix_bin_mode.mjs +18 -0
- package/scripts/generate_agent_context.mjs +253 -0
- package/scripts/postinstall.mjs +12 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"im-ws.js","sourceRoot":"","sources":["../../src/session/im-ws.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"im-ws.js","sourceRoot":"","sources":["../../src/session/im-ws.ts"],"names":[],"mappings":"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"}
|
package/dist/session/paths.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import os from 'node:os';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import fs from 'node:fs/promises';
|
|
4
|
+
import crypto from 'node:crypto';
|
|
4
5
|
export function root() {
|
|
5
6
|
return process.env.BB1688_HOME ?? path.join(os.homedir(), '.1688');
|
|
6
7
|
}
|
|
@@ -14,12 +15,24 @@ export function lockFile() {
|
|
|
14
15
|
return path.join(root(), '.lock');
|
|
15
16
|
}
|
|
16
17
|
export function socketPath() {
|
|
18
|
+
return socketPathForPlatform(process.platform, root());
|
|
19
|
+
}
|
|
20
|
+
export function socketPathForPlatform(platform, rootPath) {
|
|
17
21
|
// Windows: Node's net.listen()/createConnection() can't bind a Unix-style
|
|
18
|
-
// filesystem path on win32 (EACCES). Use a named pipe instead.
|
|
19
|
-
|
|
20
|
-
|
|
22
|
+
// filesystem path on win32 (EACCES). Use a named pipe instead. Include a
|
|
23
|
+
// stable root hash so different users, BB1688_HOME values, and tests do not
|
|
24
|
+
// collide on one global pipe name.
|
|
25
|
+
if (platform === 'win32') {
|
|
26
|
+
return `\\\\.\\pipe\\1688-cli-daemon-${rootHash(rootPath)}`;
|
|
21
27
|
}
|
|
22
|
-
return path.join(
|
|
28
|
+
return path.join(rootPath, 'daemon.sock');
|
|
29
|
+
}
|
|
30
|
+
export function rootHash(rootPath) {
|
|
31
|
+
return crypto
|
|
32
|
+
.createHash('sha1')
|
|
33
|
+
.update(path.resolve(rootPath).toLowerCase())
|
|
34
|
+
.digest('hex')
|
|
35
|
+
.slice(0, 12);
|
|
23
36
|
}
|
|
24
37
|
export function pidFile() {
|
|
25
38
|
return path.join(root(), 'daemon.pid');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/session/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/session/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,MAAM,UAAU,IAAI;IAClB,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAyB,EAAE,QAAgB;IAC/E,0EAA0E;IAC1E,yEAAyE;IACzE,4EAA4E;IAC5E,mCAAmC;IACnC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,gCAAgC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC9D,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAgB;IACvC,OAAO,MAAM;SACV,UAAU,CAAC,MAAM,CAAC;SAClB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;SAC5C,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAI,GAAG,SAAS;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -4,6 +4,42 @@ export const SEARCH_APP_ID = '32517';
|
|
|
4
4
|
function bool(s) {
|
|
5
5
|
return s === 'true';
|
|
6
6
|
}
|
|
7
|
+
function parseCountText(text) {
|
|
8
|
+
if (typeof text === 'number')
|
|
9
|
+
return Number.isFinite(text) ? text : null;
|
|
10
|
+
if (!text)
|
|
11
|
+
return null;
|
|
12
|
+
const compact = text.replace(/,/g, '').replace(/\s+/g, '');
|
|
13
|
+
const match = compact.match(/(\d+(?:\.\d+)?)(万|w|W|亿|k|K)?/);
|
|
14
|
+
if (!match?.[1])
|
|
15
|
+
return null;
|
|
16
|
+
const value = Number(match[1]);
|
|
17
|
+
if (!Number.isFinite(value))
|
|
18
|
+
return null;
|
|
19
|
+
const unit = match[2] ?? '';
|
|
20
|
+
const multiplier = unit === '亿'
|
|
21
|
+
? 100000000
|
|
22
|
+
: unit === '万' || unit === 'w' || unit === 'W'
|
|
23
|
+
? 10000
|
|
24
|
+
: unit === 'k' || unit === 'K'
|
|
25
|
+
? 1000
|
|
26
|
+
: 1;
|
|
27
|
+
return Math.round(value * multiplier);
|
|
28
|
+
}
|
|
29
|
+
function parsePercentText(text) {
|
|
30
|
+
if (!text)
|
|
31
|
+
return null;
|
|
32
|
+
const match = text.match(/(\d+(?:\.\d+)?)\s*%/);
|
|
33
|
+
if (!match?.[1])
|
|
34
|
+
return null;
|
|
35
|
+
const n = Number(match[1]);
|
|
36
|
+
return Number.isFinite(n) ? n : null;
|
|
37
|
+
}
|
|
38
|
+
function textList(items) {
|
|
39
|
+
return (items ?? [])
|
|
40
|
+
.map((t) => t?.text?.trim() ?? '')
|
|
41
|
+
.filter((s) => !!s);
|
|
42
|
+
}
|
|
7
43
|
export function mapOffer(item) {
|
|
8
44
|
const d = item.data;
|
|
9
45
|
if (!d?.offerId)
|
|
@@ -16,6 +52,13 @@ export function mapOffer(item) {
|
|
|
16
52
|
const tags = (d.tags ?? [])
|
|
17
53
|
.map((t) => t?.text?.trim() ?? '')
|
|
18
54
|
.filter((s) => !!s);
|
|
55
|
+
const serviceTags = textList(d.serviceTags);
|
|
56
|
+
const productBadges = textList(d.productBadges);
|
|
57
|
+
const orderCountText = d.orderCountText ??
|
|
58
|
+
(typeof d.orderCount === 'string' ? d.orderCount : undefined) ??
|
|
59
|
+
d.bookedCount ??
|
|
60
|
+
null;
|
|
61
|
+
const repurchaseRateText = d.repurchaseRateText ?? d.repurchaseRate ?? null;
|
|
19
62
|
return {
|
|
20
63
|
offerId: d.offerId,
|
|
21
64
|
title,
|
|
@@ -40,6 +83,16 @@ export function mapOffer(item) {
|
|
|
40
83
|
superFactory: bool(d.superFactory),
|
|
41
84
|
},
|
|
42
85
|
tags,
|
|
86
|
+
...(serviceTags.length ? { serviceTags } : {}),
|
|
87
|
+
...(productBadges.length ? { productBadges } : {}),
|
|
88
|
+
demand: {
|
|
89
|
+
orderCountText,
|
|
90
|
+
orderCount: typeof d.orderCount === 'number'
|
|
91
|
+
? d.orderCount
|
|
92
|
+
: parseCountText(orderCountText),
|
|
93
|
+
repurchaseRateText,
|
|
94
|
+
repurchaseRate: parsePercentText(repurchaseRateText),
|
|
95
|
+
},
|
|
43
96
|
isP4P: bool(d.isP4P),
|
|
44
97
|
turnover: d.bookedCount ?? null,
|
|
45
98
|
url: `https://detail.1688.com/offer/${d.offerId}.html`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-mtop.js","sourceRoot":"","sources":["../../src/session/search-mtop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,CAAC,MAAM,eAAe,GAAG,oDAAoD,CAAC;AACpF,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"search-mtop.js","sourceRoot":"","sources":["../../src/session/search-mtop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
import { waitWithDeadline } from './wait.js';
|
|
2
|
+
export const COMPANY_SEARCH_SERVICE = 'companySearchBusinessService';
|
|
3
|
+
export function readSupplierSearchRequestMeta(url) {
|
|
4
|
+
if (!url.includes(COMPANY_SEARCH_SERVICE))
|
|
5
|
+
return null;
|
|
6
|
+
const parsed = new URL(url);
|
|
7
|
+
const beginPage = numberFromSearch(parsed.searchParams.get('beginPage'));
|
|
8
|
+
const pageSize = numberFromSearch(parsed.searchParams.get('pageSize'));
|
|
9
|
+
return {
|
|
10
|
+
...(beginPage !== null ? { beginPage } : {}),
|
|
11
|
+
...(pageSize !== null ? { pageSize } : {}),
|
|
12
|
+
...(parsed.searchParams.get('keywords')
|
|
13
|
+
? { keywords: parsed.searchParams.get('keywords') ?? undefined }
|
|
14
|
+
: {}),
|
|
15
|
+
...(parsed.searchParams.get('pageName')
|
|
16
|
+
? { pageName: parsed.searchParams.get('pageName') ?? undefined }
|
|
17
|
+
: {}),
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export function parseSupplierItemsFromCompanySearchText(text) {
|
|
21
|
+
return parseCompanySearchServiceText(text).suppliers;
|
|
22
|
+
}
|
|
23
|
+
export function parseCompanySearchServiceText(text) {
|
|
24
|
+
const root = asRecord(parseJsonLike(text));
|
|
25
|
+
const topData = asRecord(root?.data);
|
|
26
|
+
const payload = asRecord(topData?.data);
|
|
27
|
+
const rawItems = asArray(payload?.companyWithOfferLists);
|
|
28
|
+
return {
|
|
29
|
+
suppliers: rawItems
|
|
30
|
+
.map(mapSupplierWrapper)
|
|
31
|
+
.filter((s) => s !== null),
|
|
32
|
+
pageCount: toNumber(payload?.pageCount),
|
|
33
|
+
docsReturn: toNumber(payload?.docsReturn),
|
|
34
|
+
code: toNumber(topData?.code),
|
|
35
|
+
message: toStringOrNull(topData?.msg),
|
|
36
|
+
requestId: toStringOrNull(root?.requestId),
|
|
37
|
+
pageName: toStringOrNull(root?.pageName),
|
|
38
|
+
rtTime: toNumber(root?.rtTime),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export function startSupplierSearchCapture(opts) {
|
|
42
|
+
const maxDiagnosticsEntries = 5;
|
|
43
|
+
const startedAt = new Date().toISOString();
|
|
44
|
+
let endedAt;
|
|
45
|
+
let disposed = false;
|
|
46
|
+
let pageClosed = false;
|
|
47
|
+
let finalStatus;
|
|
48
|
+
let timedOut = false;
|
|
49
|
+
let data = null;
|
|
50
|
+
let bestPayloadSize = 0;
|
|
51
|
+
let lastParsedAt = 0;
|
|
52
|
+
let seenCount = 0;
|
|
53
|
+
let matchedCount = 0;
|
|
54
|
+
let parsedCount = 0;
|
|
55
|
+
let lastSeenUrl;
|
|
56
|
+
let lastMatchedUrl;
|
|
57
|
+
let lastParsedUrl;
|
|
58
|
+
let lastError;
|
|
59
|
+
const failures = [];
|
|
60
|
+
const errorInfo = (error) => {
|
|
61
|
+
if (error instanceof Error) {
|
|
62
|
+
return { name: error.name, message: error.message };
|
|
63
|
+
}
|
|
64
|
+
return { message: String(error) };
|
|
65
|
+
};
|
|
66
|
+
const recordFailure = (url, error) => {
|
|
67
|
+
const info = errorInfo(error);
|
|
68
|
+
lastError = info;
|
|
69
|
+
failures.push({
|
|
70
|
+
at: new Date().toISOString(),
|
|
71
|
+
url,
|
|
72
|
+
...info,
|
|
73
|
+
});
|
|
74
|
+
if (failures.length > maxDiagnosticsEntries)
|
|
75
|
+
failures.shift();
|
|
76
|
+
};
|
|
77
|
+
const diagnostics = () => ({
|
|
78
|
+
startedAt,
|
|
79
|
+
endedAt,
|
|
80
|
+
disposed,
|
|
81
|
+
finalStatus,
|
|
82
|
+
timedOut,
|
|
83
|
+
seenCount,
|
|
84
|
+
matchedCount,
|
|
85
|
+
parsedCount,
|
|
86
|
+
failureCount: failures.length,
|
|
87
|
+
lastSeenUrl,
|
|
88
|
+
lastMatchedUrl,
|
|
89
|
+
lastParsedUrl,
|
|
90
|
+
lastError,
|
|
91
|
+
failures: [...failures],
|
|
92
|
+
});
|
|
93
|
+
const onResponse = async (resp) => {
|
|
94
|
+
if (disposed)
|
|
95
|
+
return;
|
|
96
|
+
const url = resp.url();
|
|
97
|
+
seenCount++;
|
|
98
|
+
lastSeenUrl = url;
|
|
99
|
+
try {
|
|
100
|
+
const meta = readSupplierSearchRequestMeta(url);
|
|
101
|
+
if (!meta)
|
|
102
|
+
return;
|
|
103
|
+
const targetPage = opts.targetPage?.();
|
|
104
|
+
if (targetPage !== undefined && (meta.beginPage ?? 1) !== targetPage)
|
|
105
|
+
return;
|
|
106
|
+
matchedCount++;
|
|
107
|
+
lastMatchedUrl = url;
|
|
108
|
+
const text = await resp.text();
|
|
109
|
+
const parsed = parseCompanySearchServiceText(text);
|
|
110
|
+
if (parsed.suppliers.length === 0)
|
|
111
|
+
return;
|
|
112
|
+
const shouldReplace = !data ||
|
|
113
|
+
opts.keep !== 'largest' ||
|
|
114
|
+
parsed.suppliers.length > data.suppliers.length ||
|
|
115
|
+
(parsed.suppliers.length === data.suppliers.length &&
|
|
116
|
+
text.length > bestPayloadSize);
|
|
117
|
+
if (shouldReplace) {
|
|
118
|
+
data = parsed;
|
|
119
|
+
bestPayloadSize = text.length;
|
|
120
|
+
}
|
|
121
|
+
parsedCount++;
|
|
122
|
+
lastParsedAt = Date.now();
|
|
123
|
+
lastParsedUrl = url;
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
recordFailure(url, error);
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
const onClose = () => {
|
|
130
|
+
pageClosed = true;
|
|
131
|
+
finalStatus ??= 'browser_closed';
|
|
132
|
+
endedAt ??= new Date().toISOString();
|
|
133
|
+
};
|
|
134
|
+
const dispose = () => {
|
|
135
|
+
if (disposed)
|
|
136
|
+
return;
|
|
137
|
+
disposed = true;
|
|
138
|
+
endedAt ??= new Date().toISOString();
|
|
139
|
+
opts.page.off('response', onResponse);
|
|
140
|
+
opts.page.off('close', onClose);
|
|
141
|
+
};
|
|
142
|
+
const wait = async (optsWait) => {
|
|
143
|
+
const settleMs = optsWait.settleMs ?? 1200;
|
|
144
|
+
const result = await waitWithDeadline(async (state) => {
|
|
145
|
+
if (pageClosed || optsWait.isClosed?.())
|
|
146
|
+
return 'browser_closed';
|
|
147
|
+
if (data && state.now - lastParsedAt >= settleMs)
|
|
148
|
+
return 'captured';
|
|
149
|
+
if (await optsWait.isBlocked?.())
|
|
150
|
+
return 'blocked';
|
|
151
|
+
if (disposed)
|
|
152
|
+
return 'stream_closed';
|
|
153
|
+
return null;
|
|
154
|
+
}, {
|
|
155
|
+
timeoutMs: optsWait.timeoutMs,
|
|
156
|
+
intervalMs: optsWait.intervalMs ?? 300,
|
|
157
|
+
onTimeout: () => (data ? 'captured' : 'timeout'),
|
|
158
|
+
});
|
|
159
|
+
finalStatus = result;
|
|
160
|
+
timedOut = result === 'timeout';
|
|
161
|
+
endedAt ??= new Date().toISOString();
|
|
162
|
+
return { status: result, data, diagnostics: diagnostics() };
|
|
163
|
+
};
|
|
164
|
+
const waitForAction = async (action, optsWait) => {
|
|
165
|
+
try {
|
|
166
|
+
const actionResult = await action();
|
|
167
|
+
const result = await wait(optsWait);
|
|
168
|
+
return {
|
|
169
|
+
actionResult,
|
|
170
|
+
status: result.status,
|
|
171
|
+
data: result.data,
|
|
172
|
+
diagnostics: result.diagnostics,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
finally {
|
|
176
|
+
dispose();
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
opts.page.on('response', onResponse);
|
|
180
|
+
opts.page.on('close', onClose);
|
|
181
|
+
return {
|
|
182
|
+
wait,
|
|
183
|
+
waitForAction,
|
|
184
|
+
dispose,
|
|
185
|
+
diagnostics,
|
|
186
|
+
data: () => data,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
function mapSupplierWrapper(raw) {
|
|
190
|
+
const wrapper = asRecord(raw);
|
|
191
|
+
const company = asRecord(wrapper?.companyModel);
|
|
192
|
+
const brand = asRecord(wrapper?.companyBrandSiteVO);
|
|
193
|
+
if (!wrapper || !company)
|
|
194
|
+
return null;
|
|
195
|
+
const companyName = toStringOrNull(company.company) ??
|
|
196
|
+
toStringOrNull(brand?.companyName) ??
|
|
197
|
+
toStringOrNull(brand?.company) ??
|
|
198
|
+
'';
|
|
199
|
+
if (!companyName)
|
|
200
|
+
return null;
|
|
201
|
+
const enterpriseId = toStringOrNull(company.enterpriseId);
|
|
202
|
+
const memberId = normalizeMemberId(toStringOrNull(company.userId) ?? enterpriseId ?? toStringOrNull(wrapper.memberId));
|
|
203
|
+
const domainUri = toStringOrNull(company.domainUri);
|
|
204
|
+
const shopUrl = normalizeUrl(toStringOrNull(brand?.url)) ??
|
|
205
|
+
normalizeDomainUrl(domainUri);
|
|
206
|
+
const factoryTag = toStringOrNull(wrapper.factoryTag) ?? toStringOrNull(company.factoryTag);
|
|
207
|
+
const factoryLevel = toStringOrNull(company.factoryLevel);
|
|
208
|
+
const factoryLevelIsFactory = factoryLevel !== null && /工厂|厂/.test(factoryLevel);
|
|
209
|
+
const shiliFactory = toBool(wrapper.shiliFactory);
|
|
210
|
+
const superFactory = toBool(wrapper.superFactory);
|
|
211
|
+
const factoryInspection = toBool(wrapper.factoryInspection);
|
|
212
|
+
const isFactory = toBool(company.isFactory) ||
|
|
213
|
+
shiliFactory ||
|
|
214
|
+
superFactory ||
|
|
215
|
+
factoryInspection ||
|
|
216
|
+
factoryLevelIsFactory ||
|
|
217
|
+
!!factoryTag;
|
|
218
|
+
return {
|
|
219
|
+
companyName,
|
|
220
|
+
loginId: toStringOrNull(company.loginId),
|
|
221
|
+
memberId,
|
|
222
|
+
enterpriseId,
|
|
223
|
+
realUserId: toStringOrNull(company.realUserId),
|
|
224
|
+
companyId: toStringOrNull(company.id),
|
|
225
|
+
shopUrl,
|
|
226
|
+
factoryCardUrl: memberId
|
|
227
|
+
? `https://sale.1688.com/factory/card.html?memberId=${encodeURIComponent(memberId)}`
|
|
228
|
+
: null,
|
|
229
|
+
domainUri,
|
|
230
|
+
location: {
|
|
231
|
+
province: toStringOrNull(company.province),
|
|
232
|
+
city: toStringOrNull(company.city),
|
|
233
|
+
address: toStringOrNull(company.address),
|
|
234
|
+
latitude: toNumber(company.latitude),
|
|
235
|
+
longitude: toNumber(company.longitude),
|
|
236
|
+
},
|
|
237
|
+
productionService: toStringOrNull(company.productionService),
|
|
238
|
+
businessMode: toStringOrNull(company.businessMode),
|
|
239
|
+
tp: {
|
|
240
|
+
memberLevel: toStringOrNull(company.memberLevel),
|
|
241
|
+
serviceYears: toNumber(company.tpServiceYear),
|
|
242
|
+
tpNum: toNumber(company.tpNum),
|
|
243
|
+
},
|
|
244
|
+
factory: {
|
|
245
|
+
isFactory,
|
|
246
|
+
factoryTag,
|
|
247
|
+
factoryLevel,
|
|
248
|
+
shiliFactory,
|
|
249
|
+
shiliCompany: toBool(wrapper.shiliCompany),
|
|
250
|
+
superFactory,
|
|
251
|
+
businessInspection: toBool(wrapper.businessInspection),
|
|
252
|
+
factoryInspection,
|
|
253
|
+
qiJianCompany: toBool(wrapper.qiJianCompany),
|
|
254
|
+
safePurchase: toBool(wrapper.safePurchase),
|
|
255
|
+
trust: toBool(wrapper.trust),
|
|
256
|
+
},
|
|
257
|
+
service: {
|
|
258
|
+
compositeScore: toNumber(company.compositeNewScore),
|
|
259
|
+
wwResponseRate: toNumber(company.wwResponseRate),
|
|
260
|
+
repeatRate: toNumber(company.repeatRate),
|
|
261
|
+
complianceRate: toNumber(company.complianceRate),
|
|
262
|
+
},
|
|
263
|
+
demand: {
|
|
264
|
+
payOrderCount3m: toNumber(company.payMordCnt3Month),
|
|
265
|
+
payAmount3m: toNumber(company.payOrdAmt3m),
|
|
266
|
+
fuzzyPayAmount3m: toStringOrNull(wrapper.fuzzyPayOrdAmt3m),
|
|
267
|
+
saleQuantity3m: toNumber(company.saleQuantity3Month),
|
|
268
|
+
memberBookedCount: toNumber(wrapper.memberBookedCount),
|
|
269
|
+
},
|
|
270
|
+
tags: uniqueStrings([
|
|
271
|
+
...splitTags(toStringOrNull(company.memberTags)),
|
|
272
|
+
...splitTags(toStringOrNull(company.productionService)),
|
|
273
|
+
factoryTag,
|
|
274
|
+
factoryLevel,
|
|
275
|
+
toStringOrNull(company.memberLevel),
|
|
276
|
+
]),
|
|
277
|
+
offersPreview: asArray(wrapper.companyOffers)
|
|
278
|
+
.map(mapOfferPreview)
|
|
279
|
+
.filter((o) => o !== null),
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
function mapOfferPreview(raw) {
|
|
283
|
+
const offer = asRecord(raw);
|
|
284
|
+
if (!offer)
|
|
285
|
+
return null;
|
|
286
|
+
const title = cleanText(toStringOrNull(offer.subject) ?? '');
|
|
287
|
+
if (!title)
|
|
288
|
+
return null;
|
|
289
|
+
const url = normalizeUrl(toStringOrNull(offer.detailUrl));
|
|
290
|
+
const offerId = toStringOrNull(offer.offerId) ??
|
|
291
|
+
(url ? url.match(/\/offer\/(\d+)\.html/)?.[1] ?? null : null);
|
|
292
|
+
const priceValue = toNumber(offer.price);
|
|
293
|
+
return {
|
|
294
|
+
offerId,
|
|
295
|
+
title,
|
|
296
|
+
url,
|
|
297
|
+
price: {
|
|
298
|
+
text: priceValue !== null ? `¥${priceValue}` : toStringOrNull(offer.price),
|
|
299
|
+
value: priceValue,
|
|
300
|
+
},
|
|
301
|
+
unit: toStringOrNull(offer.unit),
|
|
302
|
+
image: normalizeUrl(toStringOrNull(offer.picUrl)),
|
|
303
|
+
bookedCount: toNumber(offer.bookedCount),
|
|
304
|
+
saleQuantity: toNumber(offer.saleQuantity),
|
|
305
|
+
quantitySumMonth: toNumber(offer.quantitySumMonth),
|
|
306
|
+
brief: cleanText(toStringOrNull(offer.brief) ?? '') || null,
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
function parseJsonLike(text) {
|
|
310
|
+
const trimmed = text.trim();
|
|
311
|
+
try {
|
|
312
|
+
return JSON.parse(trimmed);
|
|
313
|
+
}
|
|
314
|
+
catch {
|
|
315
|
+
const match = trimmed.match(/^[\w$.]+\((.*)\);?$/s);
|
|
316
|
+
if (!match?.[1])
|
|
317
|
+
throw new Error('Company search response is not JSON.');
|
|
318
|
+
return JSON.parse(match[1]);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
function asRecord(value) {
|
|
322
|
+
return value && typeof value === 'object' && !Array.isArray(value)
|
|
323
|
+
? value
|
|
324
|
+
: null;
|
|
325
|
+
}
|
|
326
|
+
function asArray(value) {
|
|
327
|
+
return Array.isArray(value) ? value : [];
|
|
328
|
+
}
|
|
329
|
+
function toStringOrNull(value) {
|
|
330
|
+
if (typeof value === 'string') {
|
|
331
|
+
const trimmed = cleanText(value);
|
|
332
|
+
return trimmed || null;
|
|
333
|
+
}
|
|
334
|
+
if (typeof value === 'number' || typeof value === 'boolean') {
|
|
335
|
+
return String(value);
|
|
336
|
+
}
|
|
337
|
+
return null;
|
|
338
|
+
}
|
|
339
|
+
function toNumber(value) {
|
|
340
|
+
if (typeof value === 'number')
|
|
341
|
+
return Number.isFinite(value) ? value : null;
|
|
342
|
+
if (typeof value !== 'string')
|
|
343
|
+
return null;
|
|
344
|
+
const cleaned = value.replace(/,/g, '').trim();
|
|
345
|
+
if (!cleaned || cleaned === '-1')
|
|
346
|
+
return null;
|
|
347
|
+
const n = Number(cleaned);
|
|
348
|
+
return Number.isFinite(n) ? n : null;
|
|
349
|
+
}
|
|
350
|
+
function numberFromSearch(value) {
|
|
351
|
+
if (value === null)
|
|
352
|
+
return null;
|
|
353
|
+
return toNumber(value);
|
|
354
|
+
}
|
|
355
|
+
function toBool(value) {
|
|
356
|
+
if (typeof value === 'boolean')
|
|
357
|
+
return value;
|
|
358
|
+
if (typeof value === 'number')
|
|
359
|
+
return value === 1;
|
|
360
|
+
if (typeof value === 'string') {
|
|
361
|
+
const normalized = value.trim().toLowerCase();
|
|
362
|
+
return ['true', '1', 'y', 'yes', '是'].includes(normalized);
|
|
363
|
+
}
|
|
364
|
+
return false;
|
|
365
|
+
}
|
|
366
|
+
function cleanText(value) {
|
|
367
|
+
return value.replace(/<\/?font[^>]*>/g, '').replace(/\s+/g, ' ').trim();
|
|
368
|
+
}
|
|
369
|
+
function normalizeMemberId(value) {
|
|
370
|
+
if (!value)
|
|
371
|
+
return null;
|
|
372
|
+
if (value.startsWith('a-b2b-'))
|
|
373
|
+
return value.slice(2);
|
|
374
|
+
if (value.startsWith('b2b-'))
|
|
375
|
+
return value;
|
|
376
|
+
return null;
|
|
377
|
+
}
|
|
378
|
+
function normalizeDomainUrl(value) {
|
|
379
|
+
if (!value)
|
|
380
|
+
return null;
|
|
381
|
+
return normalizeUrl(value.includes('://') || value.startsWith('//') ? value : `https://${value}`);
|
|
382
|
+
}
|
|
383
|
+
function normalizeUrl(value) {
|
|
384
|
+
if (!value)
|
|
385
|
+
return null;
|
|
386
|
+
if (value.startsWith('//'))
|
|
387
|
+
return `https:${value}`;
|
|
388
|
+
if (/^https?:\/\//i.test(value))
|
|
389
|
+
return value;
|
|
390
|
+
return null;
|
|
391
|
+
}
|
|
392
|
+
function splitTags(value) {
|
|
393
|
+
if (!value)
|
|
394
|
+
return [];
|
|
395
|
+
return value
|
|
396
|
+
.split(/[;;,,|]/)
|
|
397
|
+
.map((s) => s.trim())
|
|
398
|
+
.filter((s) => !!s && !/^\d+$/.test(s));
|
|
399
|
+
}
|
|
400
|
+
function uniqueStrings(values) {
|
|
401
|
+
return [...new Set(values.filter((v) => !!v))];
|
|
402
|
+
}
|
|
403
|
+
//# sourceMappingURL=supplier-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supplier-search.js","sourceRoot":"","sources":["../../src/session/supplier-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import iconv from 'iconv-lite';
|
|
2
|
+
export function encodeGbkPercent(input) {
|
|
3
|
+
const gbkBytes = iconv.encode(input, 'gbk');
|
|
4
|
+
return Array.from(gbkBytes)
|
|
5
|
+
.map((b) => '%' + b.toString(16).padStart(2, '0').toUpperCase())
|
|
6
|
+
.join('');
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=encoding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/util/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;SAC/D,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temp.js","sourceRoot":"","sources":["../../src/util/temp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC"}
|