1688-cli 0.1.37 → 0.1.39

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 (55) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/README.md +1 -1
  3. package/dist/commands/cart-add.js +41 -54
  4. package/dist/commands/cart-add.js.map +1 -1
  5. package/dist/commands/cart-list.js +32 -38
  6. package/dist/commands/cart-list.js.map +1 -1
  7. package/dist/commands/cart-remove.js +5 -4
  8. package/dist/commands/cart-remove.js.map +1 -1
  9. package/dist/commands/checkout-confirm.js +8 -7
  10. package/dist/commands/checkout-confirm.js.map +1 -1
  11. package/dist/commands/checkout-prepare.js +6 -5
  12. package/dist/commands/checkout-prepare.js.map +1 -1
  13. package/dist/commands/image-search.js +17 -47
  14. package/dist/commands/image-search.js.map +1 -1
  15. package/dist/commands/login.js +2 -1
  16. package/dist/commands/login.js.map +1 -1
  17. package/dist/commands/offer.js +40 -46
  18. package/dist/commands/offer.js.map +1 -1
  19. package/dist/commands/order-list.js +44 -45
  20. package/dist/commands/order-list.js.map +1 -1
  21. package/dist/commands/order-logistics.js +4 -7
  22. package/dist/commands/order-logistics.js.map +1 -1
  23. package/dist/commands/search.js +125 -209
  24. package/dist/commands/search.js.map +1 -1
  25. package/dist/commands/seller-chat.js +5 -4
  26. package/dist/commands/seller-chat.js.map +1 -1
  27. package/dist/commands/seller-inquire.js +3 -2
  28. package/dist/commands/seller-inquire.js.map +1 -1
  29. package/dist/commands/seller-messages.js +7 -6
  30. package/dist/commands/seller-messages.js.map +1 -1
  31. package/dist/commands/similar.js +25 -48
  32. package/dist/commands/similar.js.map +1 -1
  33. package/dist/daemon/manager.js +12 -15
  34. package/dist/daemon/manager.js.map +1 -1
  35. package/dist/daemon/throttle.js +2 -1
  36. package/dist/daemon/throttle.js.map +1 -1
  37. package/dist/session/artifacts.js +5 -1
  38. package/dist/session/artifacts.js.map +1 -1
  39. package/dist/session/locator.js +12 -8
  40. package/dist/session/locator.js.map +1 -1
  41. package/dist/session/mtop.js +7 -0
  42. package/dist/session/mtop.js.map +1 -0
  43. package/dist/session/page-state.js +9 -17
  44. package/dist/session/page-state.js.map +1 -1
  45. package/dist/session/recovery.js +4 -8
  46. package/dist/session/recovery.js.map +1 -1
  47. package/dist/session/response-capture.js +145 -0
  48. package/dist/session/response-capture.js.map +1 -0
  49. package/dist/session/search-capture.js +115 -0
  50. package/dist/session/search-capture.js.map +1 -0
  51. package/dist/session/search-mtop.js +67 -0
  52. package/dist/session/search-mtop.js.map +1 -0
  53. package/dist/session/wait.js +52 -0
  54. package/dist/session/wait.js.map +1 -0
  55. package/package.json +1 -1
@@ -2,6 +2,8 @@ import { dispatch } from '../session/dispatch.js';
2
2
  import { emit, info } from '../io/output.js';
3
3
  import { CliError } from '../io/errors.js';
4
4
  import { withRecovery } from '../session/recovery.js';
5
+ import { parseMtop } from '../session/mtop.js';
6
+ import { sleep } from '../session/wait.js';
5
7
  const ORDER_LIST_URL = 'https://air.1688.com/app/ctf-page/trade-order-list/buyer-order-list.html';
6
8
  const TRACE_API_RE = /mtoplgttraceservice\.querytrace/i;
7
9
  const ORDER_LIST_API_RE = /mtop\.1688\.trading\.dataline\.service/i;
@@ -98,7 +100,7 @@ async function fetchPageLogistics(ctx, page, pageSize, status) {
98
100
  let stableSince = 0;
99
101
  while (Date.now() < deadline) {
100
102
  if (orderIdsOnPage.length === 0) {
101
- await new Promise((r) => setTimeout(r, 250));
103
+ await sleep(250);
102
104
  continue;
103
105
  }
104
106
  if (traceResponseCount !== lastTraceCount) {
@@ -112,7 +114,7 @@ async function fetchPageLogistics(ctx, page, pageSize, status) {
112
114
  Date.now() - stableSince > 1500) {
113
115
  break;
114
116
  }
115
- await new Promise((r) => setTimeout(r, 250));
117
+ await sleep(250);
116
118
  }
117
119
  }
118
120
  finally {
@@ -121,11 +123,6 @@ async function fetchPageLogistics(ctx, page, pageSize, status) {
121
123
  }
122
124
  return { traceList, totalPages, orderIdsOnPage };
123
125
  }
124
- function parseMtop(text) {
125
- const t = text.trim();
126
- const m = t.match(/^\s*mtopjsonp\d+\(([\s\S]*)\)\s*$/);
127
- return JSON.parse(m ? m[1] : t);
128
- }
129
126
  function parseTrace(t) {
130
127
  const remark = t.remark ?? '';
131
128
  // Carrier is usually in "remark" after a "|" separator: "... | 中通快递(ZTO)承运"
@@ -1 +1 @@
1
- {"version":3,"file":"order-logistics.js","sourceRoot":"","sources":["../../src/commands/order-logistics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"order-logistics.js","sourceRoot":"","sources":["../../src/commands/order-logistics.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,10 @@ import { emit, info } from '../io/output.js';
4
4
  import { CliError } from '../io/errors.js';
5
5
  import { withRecovery } from '../session/recovery.js';
6
6
  import { clickSearchNextPage } from '../session/search-locators.js';
7
+ import { startSearchOfferCapture } from '../session/search-capture.js';
8
+ import { SEARCH_APP_ID, SEARCH_MTOP_API, mapOffer, } from '../session/search-mtop.js';
9
+ import { parseMtopJsonp } from '../session/mtop.js';
10
+ import { sleep, waitWithDeadline } from '../session/wait.js';
7
11
  export async function execute(ctx, args) {
8
12
  return withRecovery(ctx, { cmd: 'search', args }, async () => {
9
13
  const offers = await fetchSearch(ctx, args.keyword, args.headed === true, args.max);
@@ -25,11 +29,7 @@ export async function run(keyword, opts) {
25
29
  }
26
30
  let HTML_SEQ = 0;
27
31
  let MTOP_SEQ = 0;
28
- // 1688's main search reuses the WirelessRecommend.recommend mtop API with
29
- // appId=32517. Same endpoint serves keyword search, image search, and
30
- // related-product recommendations — appId is the discriminator.
31
- export const SEARCH_MTOP_API = 'mtop.relationrecommend.wirelessrecommend.recommend';
32
- export const SEARCH_APP_ID = '32517';
32
+ export { SEARCH_APP_ID, SEARCH_MTOP_API, mapOffer };
33
33
  // 1688 search returns 60 offers per page. `--max` auto-paginates by
34
34
  // clicking the in-page "next" arrow (which keeps the search-context
35
35
  // `pageId` stable — see fetchSearch for why that matters). MAX_PAGES caps
@@ -38,56 +38,7 @@ export const SEARCH_APP_ID = '32517';
38
38
  // asks for more.
39
39
  const PAGE_SIZE = 60;
40
40
  const MAX_PAGES = 10;
41
- export function parseMtopJsonp(raw) {
42
- const t = raw.trim();
43
- const m = t.match(/^\s*mtopjsonp\w+\(([\s\S]*)\)\s*$/);
44
- return JSON.parse(m ? m[1] : t);
45
- }
46
- function bool(s) {
47
- return s === 'true';
48
- }
49
- export function mapOffer(item) {
50
- const d = item.data;
51
- if (!d?.offerId)
52
- return null;
53
- const title = (d.title ?? '').replace(/<\/?font[^>]*>/g, '').trim();
54
- const priceRaw = d.priceInfo?.price;
55
- const price = priceRaw ? parseFloat(priceRaw) : null;
56
- const yearsRaw = d.shop?.tpYear;
57
- const years = yearsRaw ? parseInt(yearsRaw, 10) : null;
58
- const tags = (d.tags ?? [])
59
- .map((t) => t?.text?.trim() ?? '')
60
- .filter((s) => !!s);
61
- return {
62
- offerId: d.offerId,
63
- title,
64
- price: {
65
- text: priceRaw ? `¥${priceRaw}` : '',
66
- min: price,
67
- max: price,
68
- },
69
- supplier: {
70
- name: d.shop?.text ?? null,
71
- shopUrl: d.shopAddition?.shopLinkUrl ?? d.winPortUrl ?? null,
72
- years,
73
- },
74
- location: {
75
- province: d.province ?? null,
76
- city: d.city ?? null,
77
- },
78
- bizType: d.bizType ?? null,
79
- verified: {
80
- factory: bool(d.factoryInspection),
81
- business: bool(d.businessInspection),
82
- superFactory: bool(d.superFactory),
83
- },
84
- tags,
85
- isP4P: bool(d.isP4P),
86
- turnover: d.bookedCount ?? null,
87
- url: `https://detail.1688.com/offer/${d.offerId}.html`,
88
- image: d.offerPicUrl ?? null,
89
- };
90
- }
41
+ export { parseMtopJsonp };
91
42
  async function fetchSearch(ctx, keyword, headed, maxResults) {
92
43
  const page = await ctx.newPage();
93
44
  // s.1688.com is GBK-encoded — UTF-8 percent-encoding makes the server
@@ -98,64 +49,17 @@ async function fetchSearch(ctx, keyword, headed, maxResults) {
98
49
  .join('');
99
50
  const baseUrl = `https://s.1688.com/selloffer/offer_search.htm?keywords=${gbkQs}`;
100
51
  const pagesWanted = Math.min(Math.max(1, Math.ceil(maxResults / PAGE_SIZE)), MAX_PAGES);
101
- // mtop interceptor captures the result list for the EXACT page we
102
- // navigated to.
103
- //
104
- // The search page fires several appId=32517 calls: a navigation/config
105
- // call (`batchGetNavigationAndConfigData`) and the result list
106
- // (`getOfferList`). Only the latter carries offers. Crucially, we also
107
- // match the request's `beginPage` against the page we're currently on —
108
- // a stale page-1 response can still be in flight when we've already
109
- // navigated to page 2, and capturing it would silently mix pages or stall
110
- // pagination.
111
- let capturedOffers = [];
52
+ // The search capture must only attach AFTER warmup: the warmup homepage fires
53
+ // the same WirelessRecommend endpoint/appId for recommendations. The capture
54
+ // also checks beginPage so stale page-1 responses cannot poison later pages.
112
55
  let currentTargetPage = 1;
113
- const onResp = async (resp) => {
114
- const respUrl = resp.url();
115
- if (!respUrl.includes(SEARCH_MTOP_API))
116
- return;
117
- try {
118
- const dataParam = new URLSearchParams(new URL(respUrl).search).get('data') ?? '';
119
- const dataObj = JSON.parse(dataParam);
120
- if (String(dataObj.appId) !== SEARCH_APP_ID)
121
- return;
122
- const params = JSON.parse(dataObj.params ?? '{}');
123
- if (params.method !== 'getOfferList')
124
- return;
125
- // `beginPage` is a number on page 1 (the page's default) but a string
126
- // on pages 2+ (it flows through the click handler) — coerce to compare.
127
- if (Number(params.beginPage ?? 1) !== currentTargetPage)
128
- return;
129
- }
130
- catch {
131
- return;
132
- }
133
- try {
134
- const body = await resp.text();
135
- const json = parseMtopJsonp(body);
136
- const items = json?.data?.data?.OFFER?.items ?? [];
137
- const offers = items
138
- .map(mapOffer)
139
- .filter((o) => o !== null);
140
- if (offers.length > 0)
141
- capturedOffers = offers;
142
- }
143
- catch {
144
- /* malformed response — skip */
145
- }
146
- };
147
- // NOTE: `onResp` is intentionally NOT attached here. It must only listen
148
- // AFTER the warmup navigation — `https://s.1688.com/` (the warmup target)
149
- // fires its own WirelessRecommend.recommend with appId=32517 for the
150
- // homepage recommendation feed. Attaching early captures that feed instead
151
- // of the actual keyword-search results.
152
56
  async function warmup(delayMs) {
153
57
  try {
154
58
  await page.goto('https://s.1688.com/', {
155
59
  waitUntil: 'domcontentloaded',
156
60
  timeout: 20000,
157
61
  });
158
- await new Promise((r) => setTimeout(r, delayMs));
62
+ await sleep(delayMs);
159
63
  }
160
64
  catch {
161
65
  /* best-effort */
@@ -295,109 +199,119 @@ async function fetchSearch(ctx, keyword, headed, maxResults) {
295
199
  }
296
200
  });
297
201
  }
298
- // Wait for the search mtop response (appId=32517). Headless: short
299
- // timeout; headed: long enough for user to solve any slider.
300
- async function waitForOffers(timeoutMs) {
301
- const deadline = Date.now() + timeoutMs;
302
- while (Date.now() < deadline) {
303
- if (page.isClosed()) {
304
- throw new CliError(130, 'CANCELED', 'Browser closed.');
305
- }
306
- if (capturedOffers.length > 0)
307
- return true;
308
- // Cheap WAF check: if we're stuck on the punish URL, fail fast headless.
309
- if (!headed && /\/punish|x5secdata=/.test(page.url()))
310
- return false;
311
- await new Promise((r) => setTimeout(r, 300));
312
- }
313
- return false;
314
- }
202
+ const isSearchBlocked = () => !headed && /\/punish|x5secdata=/.test(page.url());
315
203
  // Stable strategy: always warm up before search. Cookie-presence checks
316
204
  // can't tell whether the WAF has invalidated the session, so we pay a
317
205
  // small constant overhead instead of betting on stale cookies.
318
206
  info('Warming up s.1688.com...');
319
207
  await warmup(1500);
320
- // Attach the capture listener ONLY now — after warmup — so the homepage's
321
- // own recommendation feed (same appId=32517) can't poison capturedOffers.
322
- page.on('response', onResp);
323
- const allOffers = [];
324
- const seenIds = new Set();
325
- for (let pageNum = 1; pageNum <= pagesWanted; pageNum++) {
326
- capturedOffers = [];
327
- currentTargetPage = pageNum; // onResp only captures responses for this page
328
- if (pageNum === 1) {
329
- info(`Searching 1688 for "${keyword}"...`);
330
- if (headed) {
331
- info('A Chrome window has opened — switch focus to it now.');
208
+ let capture = startSearchOfferCapture({
209
+ page,
210
+ requireMethod: 'getOfferList',
211
+ targetPage: () => currentTargetPage,
212
+ });
213
+ try {
214
+ const allOffers = [];
215
+ const seenIds = new Set();
216
+ for (let pageNum = 1; pageNum <= pagesWanted; pageNum++) {
217
+ capture.reset();
218
+ currentTargetPage = pageNum;
219
+ if (pageNum === 1) {
220
+ info(`Searching 1688 for "${keyword}"...`);
221
+ if (headed) {
222
+ info('A Chrome window has opened — switch focus to it now.');
223
+ }
224
+ await navigateTo(baseUrl);
332
225
  }
333
- await navigateTo(baseUrl);
334
- }
335
- else {
336
- // Pages 2+ MUST stay in the same page session. Every fresh navigation
337
- // mints a new search-context `pageId`, and `beginPage=N` against a
338
- // fresh pageId returns near-duplicate top results (~75% overlap).
339
- // Clicking the in-page "next" arrow advances `beginPage` within the
340
- // SAME pageId, which is the only way to get a clean next 60.
341
- info(`Fetching page ${pageNum}/${pagesWanted}...`);
342
- const advanced = await clickSearchNextPage(page).catch(() => false);
343
- if (!advanced) {
344
- info(`Could not advance to page ${pageNum} — stopping at ${allOffers.length} results.`);
226
+ else {
227
+ // Pages 2+ MUST stay in the same page session. Every fresh navigation
228
+ // mints a new search-context `pageId`, and `beginPage=N` against a
229
+ // fresh pageId returns near-duplicate top results (~75% overlap).
230
+ // Clicking the in-page "next" arrow advances `beginPage` within the
231
+ // SAME pageId, which is the only way to get a clean next 60.
232
+ info(`Fetching page ${pageNum}/${pagesWanted}...`);
233
+ const advanced = await clickSearchNextPage(page).catch(() => false);
234
+ if (!advanced) {
235
+ info(`Could not advance to page ${pageNum} — stopping at ${allOffers.length} results.`);
236
+ break;
237
+ }
238
+ }
239
+ let captureResult = await capture.wait({
240
+ timeoutMs: headed ? 180000 : 12000,
241
+ isClosed: () => page.isClosed(),
242
+ isBlocked: isSearchBlocked,
243
+ });
244
+ let capturedOffers = captureResult.offers;
245
+ let got = captureResult.status === 'captured';
246
+ if (captureResult.status === 'browser_closed') {
247
+ throw new CliError(130, 'CANCELED', 'Browser closed.');
248
+ }
249
+ // Retry only on page 1 — first-contact WAF warmup. A page-2+ failure
250
+ // just stops the loop with whatever has been collected so far.
251
+ if (!got && !headed && pageNum === 1) {
252
+ info('First attempt blocked or empty. Re-warming and retrying...');
253
+ // Dispose + recreate around the re-warmup: the re-warmup hits the
254
+ // homepage again, which would otherwise re-poison capturedOffers.
255
+ capture.dispose();
256
+ await warmup(3500);
257
+ capture = startSearchOfferCapture({
258
+ page,
259
+ requireMethod: 'getOfferList',
260
+ targetPage: () => currentTargetPage,
261
+ });
262
+ await navigateTo(baseUrl);
263
+ captureResult = await capture.wait({
264
+ timeoutMs: 15000,
265
+ isClosed: () => page.isClosed(),
266
+ isBlocked: isSearchBlocked,
267
+ });
268
+ capturedOffers = captureResult.offers;
269
+ got = captureResult.status === 'captured';
270
+ if (captureResult.status === 'browser_closed') {
271
+ throw new CliError(130, 'CANCELED', 'Browser closed.');
272
+ }
273
+ }
274
+ if (!got) {
275
+ if (pageNum === 1) {
276
+ throw riskControlError(headed);
277
+ }
278
+ info(`Page ${pageNum} blocked or empty — returning ${allOffers.length} ` +
279
+ `results from ${pageNum - 1} page(s).`);
345
280
  break;
346
281
  }
347
- }
348
- let got = await waitForOffers(headed ? 180000 : 12000);
349
- // Retry only on page 1 first-contact WAF warmup. A page-2+ failure
350
- // just stops the loop with whatever has been collected so far.
351
- if (!got && !headed && pageNum === 1) {
352
- info('First attempt blocked or empty. Re-warming and retrying...');
353
- // Detach + reset around the re-warmup: the re-warmup hits the homepage
354
- // again, which would otherwise re-poison capturedOffers.
355
- page.off('response', onResp);
356
- capturedOffers = [];
357
- await warmup(3500);
358
- page.on('response', onResp);
359
- await navigateTo(baseUrl);
360
- got = await waitForOffers(15000);
361
- }
362
- if (!got) {
363
- if (pageNum === 1) {
364
- page.off('response', onResp);
365
- throw riskControlError(headed);
282
+ if (pageNum === 1)
283
+ await detectLoginRedirect(page);
284
+ // Accumulate with cross-page dedup. 1688 occasionally repeats P4P ad
285
+ // slots across pages; dedup keeps the result set clean.
286
+ let added = 0;
287
+ for (const o of capturedOffers) {
288
+ if (seenIds.has(o.offerId))
289
+ continue;
290
+ seenIds.add(o.offerId);
291
+ allOffers.push(o);
292
+ added++;
293
+ }
294
+ // Stop conditions:
295
+ // - collected enough for the caller's --max
296
+ // - short page (< 60) means we hit the last page of results
297
+ // - zero new items means pagination isn't advancing (bail rather than
298
+ // spin through identical pages)
299
+ if (allOffers.length >= maxResults)
300
+ break;
301
+ if (capturedOffers.length < PAGE_SIZE)
302
+ break;
303
+ if (added === 0)
304
+ break;
305
+ // Human-like jitter between page clicks to keep the WAF score low.
306
+ if (pageNum < pagesWanted) {
307
+ await sleep(1500 + Math.random() * 2000);
366
308
  }
367
- info(`Page ${pageNum} blocked or empty — returning ${allOffers.length} ` +
368
- `results from ${pageNum - 1} page(s).`);
369
- break;
370
- }
371
- if (pageNum === 1)
372
- await detectLoginRedirect(page);
373
- // Accumulate with cross-page dedup. 1688 occasionally repeats P4P ad
374
- // slots across pages; dedup keeps the result set clean.
375
- let added = 0;
376
- for (const o of capturedOffers) {
377
- if (seenIds.has(o.offerId))
378
- continue;
379
- seenIds.add(o.offerId);
380
- allOffers.push(o);
381
- added++;
382
- }
383
- // Stop conditions:
384
- // - collected enough for the caller's --max
385
- // - short page (< 60) means we hit the last page of results
386
- // - zero new items means pagination isn't advancing (bail rather than
387
- // spin through identical pages)
388
- if (allOffers.length >= maxResults)
389
- break;
390
- if (capturedOffers.length < PAGE_SIZE)
391
- break;
392
- if (added === 0)
393
- break;
394
- // Human-like jitter between page clicks to keep the WAF score low.
395
- if (pageNum < pagesWanted) {
396
- await new Promise((r) => setTimeout(r, 1500 + Math.random() * 2000));
397
309
  }
310
+ return allOffers;
311
+ }
312
+ finally {
313
+ capture.dispose();
398
314
  }
399
- page.off('response', onResp);
400
- return allOffers;
401
315
  }
402
316
  async function isBlocked(page, retries = 3) {
403
317
  for (let i = 0; i < retries; i++) {
@@ -418,7 +332,7 @@ async function isBlocked(page, retries = 3) {
418
332
  return false;
419
333
  }
420
334
  if (i < retries - 1)
421
- await new Promise((r) => setTimeout(r, 800));
335
+ await sleep(800);
422
336
  }
423
337
  return false;
424
338
  }
@@ -440,11 +354,10 @@ async function waitPastBlocking(page, headed) {
440
354
  return false;
441
355
  info('Verification page detected — drag the slider in the window.');
442
356
  }
443
- const deadline = Date.now() + (headed ? 180000 : 8000);
444
357
  let lastProgressAt = Date.now();
445
358
  let lastDebugAt = 0;
446
359
  const debug = process.env.BB1688_DEBUG === '1';
447
- while (Date.now() < deadline) {
360
+ return waitWithDeadline(async ({ now, remainingMs }) => {
448
361
  if (page.isClosed()) {
449
362
  throw new CliError(130, 'CANCELED', 'Browser closed.');
450
363
  }
@@ -456,9 +369,9 @@ async function waitPastBlocking(page, headed) {
456
369
  bodyLen: (document.body?.innerText ?? '').length,
457
370
  }))
458
371
  .catch(() => null);
459
- if (debug && state && Date.now() - lastDebugAt > 1000) {
372
+ if (debug && state && now - lastDebugAt > 1000) {
460
373
  info(`[poll] url=${state.url.slice(0, 80)} title="${state.title.slice(0, 40)}" anchors=${state.anchorCount} bodyLen=${state.bodyLen}`);
461
- lastDebugAt = Date.now();
374
+ lastDebugAt = now;
462
375
  }
463
376
  if (state) {
464
377
  const onPunish = /\/punish|x5secdata=|punish\.1688\.com/.test(state.url);
@@ -471,13 +384,16 @@ async function waitPastBlocking(page, headed) {
471
384
  return true;
472
385
  }
473
386
  }
474
- if (headed && Date.now() - lastProgressAt > 10000) {
475
- info(`Still waiting for results page (${Math.round((deadline - Date.now()) / 1000)}s left)...`);
476
- lastProgressAt = Date.now();
387
+ if (headed && now - lastProgressAt > 10000) {
388
+ info(`Still waiting for results page (${Math.round(remainingMs / 1000)}s left)...`);
389
+ lastProgressAt = now;
477
390
  }
478
- await new Promise((r) => setTimeout(r, 500));
479
- }
480
- return false;
391
+ return null;
392
+ }, {
393
+ timeoutMs: headed ? 180000 : 8000,
394
+ intervalMs: 500,
395
+ onTimeout: () => false,
396
+ });
481
397
  }
482
398
  function riskControlError(triedHeaded) {
483
399
  const msg = triedHeaded
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { dispatch } from '../session/dispatch.js';
2
2
  import { emit, info } from '../io/output.js';
3
3
  import { CliError } from '../io/errors.js';
4
4
  import { withRecovery } from '../session/recovery.js';
5
+ import { sleep } from '../session/wait.js';
5
6
  import { clickConversationByName, clickImSendButton, findImInput, waitForConversationActivated, waitForMessageSent, } from '../session/im-locators.js';
6
7
  import { readState } from '../session/state.js';
7
8
  const IM_BASE = 'https://air.1688.com/app/ocms-fusion-components-1688/def_cbu_web_im/index.html';
@@ -53,7 +54,7 @@ export async function executeRaw(ctx, args) {
53
54
  throw new CliError(3, 'NOT_LOGGED_IN', 'Session expired. Run `1688 login`.');
54
55
  }
55
56
  const input = await findImInput(page);
56
- await new Promise((r) => setTimeout(r, 3000));
57
+ await sleep(3000);
57
58
  // If scoped URL (order/offer) was used, conversation should auto-activate.
58
59
  // Otherwise (sidebar mode), find + click the seller in sidebar.
59
60
  let matchedName = null;
@@ -72,13 +73,13 @@ export async function executeRaw(ctx, args) {
72
73
  }
73
74
  }
74
75
  await waitForConversationActivated(page, matchedName, args);
75
- await new Promise((r) => setTimeout(r, 1500));
76
+ await sleep(1500);
76
77
  // 4. Type the message and send.
77
78
  info(`Typing message (${args.message.length} chars)...`);
78
79
  await input.click({ force: true });
79
80
  await input.fill('');
80
81
  await page.keyboard.type(args.message, { delay: 20 });
81
- await new Promise((r) => setTimeout(r, 500));
82
+ await sleep(500);
82
83
  info('Sending...');
83
84
  await clickImSendButton(page);
84
85
  const sentAt = new Date().toISOString();
@@ -147,7 +148,7 @@ export async function run(opts) {
147
148
  const orderUrl = `https://trade.1688.com/order/new_step_order_detail.htm?orderId=${opts.target}`;
148
149
  info(`Sending message 1/2: order link card`);
149
150
  await dispatch('seller-chat', { ...baseArgs, message: orderUrl, headed: opts.headed }, { headed: opts.headed, profile: opts.profile });
150
- await new Promise((r) => setTimeout(r, 1500));
151
+ await sleep(1500);
151
152
  info(`Sending message 2/2: question`);
152
153
  }
153
154
  const data = await dispatch('seller-chat', { ...baseArgs, message: finalMessage, headed: opts.headed }, { headed: opts.headed, profile: opts.profile });