1688-cli 0.1.39 → 0.1.41

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 (42) hide show
  1. package/CHANGELOG.md +142 -0
  2. package/dist/cli.js +79 -3
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/cart-add.js +15 -11
  5. package/dist/commands/cart-add.js.map +1 -1
  6. package/dist/commands/cart-list.js +11 -10
  7. package/dist/commands/cart-list.js.map +1 -1
  8. package/dist/commands/debug.js +101 -0
  9. package/dist/commands/debug.js.map +1 -0
  10. package/dist/commands/doctor.js +90 -1
  11. package/dist/commands/doctor.js.map +1 -1
  12. package/dist/commands/image-search.js +2 -6
  13. package/dist/commands/image-search.js.map +1 -1
  14. package/dist/commands/inbox.js +289 -0
  15. package/dist/commands/inbox.js.map +1 -0
  16. package/dist/commands/profile.js +84 -0
  17. package/dist/commands/profile.js.map +1 -0
  18. package/dist/commands/search.js +98 -93
  19. package/dist/commands/search.js.map +1 -1
  20. package/dist/commands/similar.js +2 -6
  21. package/dist/commands/similar.js.map +1 -1
  22. package/dist/daemon/client.js +2 -2
  23. package/dist/daemon/client.js.map +1 -1
  24. package/dist/io/output.js +31 -2
  25. package/dist/io/output.js.map +1 -1
  26. package/dist/session/config.js +82 -0
  27. package/dist/session/config.js.map +1 -0
  28. package/dist/session/dispatch.js +25 -3
  29. package/dist/session/dispatch.js.map +1 -1
  30. package/dist/session/events.js +151 -0
  31. package/dist/session/events.js.map +1 -0
  32. package/dist/session/im-cards.js +183 -0
  33. package/dist/session/im-cards.js.map +1 -0
  34. package/dist/session/im-ws.js +97 -0
  35. package/dist/session/im-ws.js.map +1 -0
  36. package/dist/session/navigation-guard.js +65 -0
  37. package/dist/session/navigation-guard.js.map +1 -0
  38. package/dist/session/paths.js +6 -0
  39. package/dist/session/paths.js.map +1 -1
  40. package/dist/session/search-capture.js +56 -6
  41. package/dist/session/search-capture.js.map +1 -1
  42. package/package.json +1 -1
@@ -0,0 +1,65 @@
1
+ import { CliError } from '../io/errors.js';
2
+ const ALLOWED_1688_HOST_RE = /(^|\.)1688\.com$/i;
3
+ const ALLOWED_ALI_HOST_RE = /(^|\.)(taobao\.com|tmall\.com|alibaba\.com|alicdn\.com)$/i;
4
+ export function classifyNavigation(url) {
5
+ let parsed;
6
+ try {
7
+ parsed = new URL(url);
8
+ }
9
+ catch {
10
+ return { kind: 'unknown', url, host: null };
11
+ }
12
+ const host = parsed.hostname;
13
+ if (/punish|x5secdata/i.test(url) || /punish/i.test(host)) {
14
+ return { kind: 'risk_control', url, host };
15
+ }
16
+ if (/login\.(1688|taobao)\.com$/i.test(host)) {
17
+ return { kind: 'login', url, host };
18
+ }
19
+ if (/cashier|pay|payment|alipay/i.test(host + parsed.pathname)) {
20
+ return { kind: 'payment', url, host };
21
+ }
22
+ if (ALLOWED_1688_HOST_RE.test(host) || ALLOWED_ALI_HOST_RE.test(host)) {
23
+ return { kind: '1688', url, host };
24
+ }
25
+ return { kind: 'external', url, host };
26
+ }
27
+ export function navigationWarning(url) {
28
+ const details = classifyNavigation(url);
29
+ if (details.kind === '1688')
30
+ return null;
31
+ return {
32
+ code: `NAVIGATION_${details.kind.toUpperCase()}`,
33
+ message: messageForKind(details.kind),
34
+ details,
35
+ };
36
+ }
37
+ export function assertSafeNavigation(url, opts) {
38
+ const details = classifyNavigation(url);
39
+ if (details.kind === '1688')
40
+ return;
41
+ if (!opts.write && details.kind !== 'payment')
42
+ return;
43
+ throw new CliError(details.kind === 'payment' ? 24 : 23, details.kind === 'payment' ? 'PAYMENT_BLOCKED' : 'UNEXPECTED_NAVIGATION', messageForKind(details.kind), {
44
+ currentUrl: url,
45
+ navigationKind: details.kind,
46
+ recoverHint: 'Run with --headed to inspect the page before continuing.',
47
+ });
48
+ }
49
+ function messageForKind(kind) {
50
+ switch (kind) {
51
+ case 'login':
52
+ return 'Navigation reached a login page.';
53
+ case 'risk_control':
54
+ return 'Navigation reached a 1688 risk-control page.';
55
+ case 'payment':
56
+ return 'Navigation reached a payment page and was blocked.';
57
+ case 'external':
58
+ return 'Navigation reached an unexpected external domain.';
59
+ case 'unknown':
60
+ return 'Navigation target could not be parsed.';
61
+ case '1688':
62
+ return 'Navigation is within the allowed 1688 domain set.';
63
+ }
64
+ }
65
+ //# sourceMappingURL=navigation-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-guard.js","sourceRoot":"","sources":["../../src/session/navigation-guard.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,12 @@ export function daemonLogFile() {
33
33
  export function runsDir() {
34
34
  return path.join(root(), 'runs');
35
35
  }
36
+ export function eventsFile() {
37
+ return path.join(root(), 'events.jsonl');
38
+ }
39
+ export function configFile() {
40
+ return path.join(root(), 'config.json');
41
+ }
36
42
  export function loginQrFile() {
37
43
  return path.join(root(), 'login-qr.png');
38
44
  }
@@ -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;AAElC,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,0EAA0E;IAC1E,+DAA+D;IAC/D,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,8BAA8B,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC;AAC1C,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,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"}
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;AAElC,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,0EAA0E;IAC1E,+DAA+D;IAC/D,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,8BAA8B,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC;AAC1C,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"}
@@ -1,33 +1,72 @@
1
1
  import { waitWithDeadline } from './wait.js';
2
2
  import { SEARCH_APP_ID, parseOfferItemsFromMtopText, readSearchMtopRequestMeta, } from './search-mtop.js';
3
+ export async function captureSearchOffersForAction(opts, action, waitOptions) {
4
+ const capture = startSearchOfferCapture(opts);
5
+ return capture.waitForAction(action, waitOptions);
6
+ }
3
7
  export function startSearchOfferCapture(opts) {
8
+ const maxDiagnosticsEntries = 5;
9
+ const startedAt = new Date().toISOString();
10
+ let endedAt;
4
11
  let disposed = false;
12
+ let pageClosed = false;
13
+ let finalStatus;
14
+ let timedOut = false;
5
15
  let offers = [];
6
16
  let seenCount = 0;
7
17
  let matchedCount = 0;
8
18
  let parsedCount = 0;
9
- let failureCount = 0;
10
19
  let lastSeenUrl;
11
20
  let lastMatchedUrl;
12
21
  let lastParsedUrl;
22
+ let lastError;
23
+ const failures = [];
24
+ const errorInfo = (error) => {
25
+ if (error instanceof Error) {
26
+ return { name: error.name, message: error.message };
27
+ }
28
+ return { message: String(error) };
29
+ };
30
+ const recordFailure = (url, error) => {
31
+ const info = errorInfo(error);
32
+ lastError = info;
33
+ failures.push({
34
+ at: new Date().toISOString(),
35
+ url,
36
+ ...info,
37
+ });
38
+ if (failures.length > maxDiagnosticsEntries)
39
+ failures.shift();
40
+ };
13
41
  const diagnostics = () => ({
42
+ startedAt,
43
+ endedAt,
44
+ disposed,
45
+ finalStatus,
46
+ timedOut,
14
47
  seenCount,
15
48
  matchedCount,
16
49
  parsedCount,
17
- failureCount,
50
+ failureCount: failures.length,
18
51
  lastSeenUrl,
19
52
  lastMatchedUrl,
20
53
  lastParsedUrl,
54
+ lastError,
55
+ failures: [...failures],
21
56
  });
22
57
  const reset = () => {
58
+ endedAt = undefined;
59
+ finalStatus = undefined;
60
+ timedOut = false;
23
61
  offers = [];
24
62
  seenCount = 0;
25
63
  matchedCount = 0;
26
64
  parsedCount = 0;
27
- failureCount = 0;
28
65
  lastSeenUrl = undefined;
29
66
  lastMatchedUrl = undefined;
30
67
  lastParsedUrl = undefined;
68
+ lastError = undefined;
69
+ failures.length = 0;
31
70
  };
32
71
  const onResponse = async (resp) => {
33
72
  if (disposed)
@@ -59,19 +98,26 @@ export function startSearchOfferCapture(opts) {
59
98
  parsedCount++;
60
99
  lastParsedUrl = url;
61
100
  }
62
- catch {
63
- failureCount++;
101
+ catch (error) {
102
+ recordFailure(url, error);
64
103
  }
65
104
  };
105
+ const onClose = () => {
106
+ pageClosed = true;
107
+ finalStatus ??= 'browser_closed';
108
+ endedAt ??= new Date().toISOString();
109
+ };
66
110
  const dispose = () => {
67
111
  if (disposed)
68
112
  return;
69
113
  disposed = true;
114
+ endedAt ??= new Date().toISOString();
70
115
  opts.page.off('response', onResponse);
116
+ opts.page.off('close', onClose);
71
117
  };
72
118
  const wait = async (optsWait) => {
73
119
  const result = await waitWithDeadline(async () => {
74
- if (optsWait.isClosed?.())
120
+ if (pageClosed || optsWait.isClosed?.())
75
121
  return 'browser_closed';
76
122
  if (offers.length > 0)
77
123
  return 'captured';
@@ -85,6 +131,9 @@ export function startSearchOfferCapture(opts) {
85
131
  intervalMs: optsWait.intervalMs ?? 300,
86
132
  onTimeout: () => (offers.length > 0 ? 'captured' : 'timeout'),
87
133
  });
134
+ finalStatus = result;
135
+ timedOut = result === 'timeout';
136
+ endedAt ??= new Date().toISOString();
88
137
  return { status: result, offers, diagnostics: diagnostics() };
89
138
  };
90
139
  const waitForAction = async (action, optsWait) => {
@@ -103,6 +152,7 @@ export function startSearchOfferCapture(opts) {
103
152
  }
104
153
  };
105
154
  opts.page.on('response', onResponse);
155
+ opts.page.on('close', onClose);
106
156
  return {
107
157
  reset,
108
158
  wait,
@@ -1 +1 @@
1
- {"version":3,"file":"search-capture.js","sourceRoot":"","sources":["../../src/session/search-capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-capture.js","sourceRoot":"","sources":["../../src/session/search-capture.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "1688-cli",
3
- "version": "0.1.39",
3
+ "version": "0.1.41",
4
4
  "description": "1688.com CLI for humans, Codex, and Claude Code. Sourcing (search / image-search / offer / inquire) and orders (list / detail / logistics / seller chat).",
5
5
  "license": "MIT",
6
6
  "author": "nobodyjack",