1688-cli 0.1.38 → 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.
@@ -4,7 +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 { sleep } from '../session/wait.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';
8
11
  export async function execute(ctx, args) {
9
12
  return withRecovery(ctx, { cmd: 'search', args }, async () => {
10
13
  const offers = await fetchSearch(ctx, args.keyword, args.headed === true, args.max);
@@ -26,11 +29,7 @@ export async function run(keyword, opts) {
26
29
  }
27
30
  let HTML_SEQ = 0;
28
31
  let MTOP_SEQ = 0;
29
- // 1688's main search reuses the WirelessRecommend.recommend mtop API with
30
- // appId=32517. Same endpoint serves keyword search, image search, and
31
- // related-product recommendations — appId is the discriminator.
32
- export const SEARCH_MTOP_API = 'mtop.relationrecommend.wirelessrecommend.recommend';
33
- export const SEARCH_APP_ID = '32517';
32
+ export { SEARCH_APP_ID, SEARCH_MTOP_API, mapOffer };
34
33
  // 1688 search returns 60 offers per page. `--max` auto-paginates by
35
34
  // clicking the in-page "next" arrow (which keeps the search-context
36
35
  // `pageId` stable — see fetchSearch for why that matters). MAX_PAGES caps
@@ -39,56 +38,7 @@ export const SEARCH_APP_ID = '32517';
39
38
  // asks for more.
40
39
  const PAGE_SIZE = 60;
41
40
  const MAX_PAGES = 10;
42
- export function parseMtopJsonp(raw) {
43
- const t = raw.trim();
44
- const m = t.match(/^\s*mtopjsonp\w+\(([\s\S]*)\)\s*$/);
45
- return JSON.parse(m ? m[1] : t);
46
- }
47
- function bool(s) {
48
- return s === 'true';
49
- }
50
- export function mapOffer(item) {
51
- const d = item.data;
52
- if (!d?.offerId)
53
- return null;
54
- const title = (d.title ?? '').replace(/<\/?font[^>]*>/g, '').trim();
55
- const priceRaw = d.priceInfo?.price;
56
- const price = priceRaw ? parseFloat(priceRaw) : null;
57
- const yearsRaw = d.shop?.tpYear;
58
- const years = yearsRaw ? parseInt(yearsRaw, 10) : null;
59
- const tags = (d.tags ?? [])
60
- .map((t) => t?.text?.trim() ?? '')
61
- .filter((s) => !!s);
62
- return {
63
- offerId: d.offerId,
64
- title,
65
- price: {
66
- text: priceRaw ? `¥${priceRaw}` : '',
67
- min: price,
68
- max: price,
69
- },
70
- supplier: {
71
- name: d.shop?.text ?? null,
72
- shopUrl: d.shopAddition?.shopLinkUrl ?? d.winPortUrl ?? null,
73
- years,
74
- },
75
- location: {
76
- province: d.province ?? null,
77
- city: d.city ?? null,
78
- },
79
- bizType: d.bizType ?? null,
80
- verified: {
81
- factory: bool(d.factoryInspection),
82
- business: bool(d.businessInspection),
83
- superFactory: bool(d.superFactory),
84
- },
85
- tags,
86
- isP4P: bool(d.isP4P),
87
- turnover: d.bookedCount ?? null,
88
- url: `https://detail.1688.com/offer/${d.offerId}.html`,
89
- image: d.offerPicUrl ?? null,
90
- };
91
- }
41
+ export { parseMtopJsonp };
92
42
  async function fetchSearch(ctx, keyword, headed, maxResults) {
93
43
  const page = await ctx.newPage();
94
44
  // s.1688.com is GBK-encoded — UTF-8 percent-encoding makes the server
@@ -99,57 +49,10 @@ async function fetchSearch(ctx, keyword, headed, maxResults) {
99
49
  .join('');
100
50
  const baseUrl = `https://s.1688.com/selloffer/offer_search.htm?keywords=${gbkQs}`;
101
51
  const pagesWanted = Math.min(Math.max(1, Math.ceil(maxResults / PAGE_SIZE)), MAX_PAGES);
102
- // mtop interceptor captures the result list for the EXACT page we
103
- // navigated to.
104
- //
105
- // The search page fires several appId=32517 calls: a navigation/config
106
- // call (`batchGetNavigationAndConfigData`) and the result list
107
- // (`getOfferList`). Only the latter carries offers. Crucially, we also
108
- // match the request's `beginPage` against the page we're currently on —
109
- // a stale page-1 response can still be in flight when we've already
110
- // navigated to page 2, and capturing it would silently mix pages or stall
111
- // pagination.
112
- 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.
113
55
  let currentTargetPage = 1;
114
- const onResp = async (resp) => {
115
- const respUrl = resp.url();
116
- if (!respUrl.includes(SEARCH_MTOP_API))
117
- return;
118
- try {
119
- const dataParam = new URLSearchParams(new URL(respUrl).search).get('data') ?? '';
120
- const dataObj = JSON.parse(dataParam);
121
- if (String(dataObj.appId) !== SEARCH_APP_ID)
122
- return;
123
- const params = JSON.parse(dataObj.params ?? '{}');
124
- if (params.method !== 'getOfferList')
125
- return;
126
- // `beginPage` is a number on page 1 (the page's default) but a string
127
- // on pages 2+ (it flows through the click handler) — coerce to compare.
128
- if (Number(params.beginPage ?? 1) !== currentTargetPage)
129
- return;
130
- }
131
- catch {
132
- return;
133
- }
134
- try {
135
- const body = await resp.text();
136
- const json = parseMtopJsonp(body);
137
- const items = json?.data?.data?.OFFER?.items ?? [];
138
- const offers = items
139
- .map(mapOffer)
140
- .filter((o) => o !== null);
141
- if (offers.length > 0)
142
- capturedOffers = offers;
143
- }
144
- catch {
145
- /* malformed response — skip */
146
- }
147
- };
148
- // NOTE: `onResp` is intentionally NOT attached here. It must only listen
149
- // AFTER the warmup navigation — `https://s.1688.com/` (the warmup target)
150
- // fires its own WirelessRecommend.recommend with appId=32517 for the
151
- // homepage recommendation feed. Attaching early captures that feed instead
152
- // of the actual keyword-search results.
153
56
  async function warmup(delayMs) {
154
57
  try {
155
58
  await page.goto('https://s.1688.com/', {
@@ -296,109 +199,119 @@ async function fetchSearch(ctx, keyword, headed, maxResults) {
296
199
  }
297
200
  });
298
201
  }
299
- // Wait for the search mtop response (appId=32517). Headless: short
300
- // timeout; headed: long enough for user to solve any slider.
301
- async function waitForOffers(timeoutMs) {
302
- const deadline = Date.now() + timeoutMs;
303
- while (Date.now() < deadline) {
304
- if (page.isClosed()) {
305
- throw new CliError(130, 'CANCELED', 'Browser closed.');
306
- }
307
- if (capturedOffers.length > 0)
308
- return true;
309
- // Cheap WAF check: if we're stuck on the punish URL, fail fast headless.
310
- if (!headed && /\/punish|x5secdata=/.test(page.url()))
311
- return false;
312
- await sleep(300);
313
- }
314
- return false;
315
- }
202
+ const isSearchBlocked = () => !headed && /\/punish|x5secdata=/.test(page.url());
316
203
  // Stable strategy: always warm up before search. Cookie-presence checks
317
204
  // can't tell whether the WAF has invalidated the session, so we pay a
318
205
  // small constant overhead instead of betting on stale cookies.
319
206
  info('Warming up s.1688.com...');
320
207
  await warmup(1500);
321
- // Attach the capture listener ONLY now — after warmup — so the homepage's
322
- // own recommendation feed (same appId=32517) can't poison capturedOffers.
323
- page.on('response', onResp);
324
- const allOffers = [];
325
- const seenIds = new Set();
326
- for (let pageNum = 1; pageNum <= pagesWanted; pageNum++) {
327
- capturedOffers = [];
328
- currentTargetPage = pageNum; // onResp only captures responses for this page
329
- if (pageNum === 1) {
330
- info(`Searching 1688 for "${keyword}"...`);
331
- if (headed) {
332
- 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);
333
225
  }
334
- await navigateTo(baseUrl);
335
- }
336
- else {
337
- // Pages 2+ MUST stay in the same page session. Every fresh navigation
338
- // mints a new search-context `pageId`, and `beginPage=N` against a
339
- // fresh pageId returns near-duplicate top results (~75% overlap).
340
- // Clicking the in-page "next" arrow advances `beginPage` within the
341
- // SAME pageId, which is the only way to get a clean next 60.
342
- info(`Fetching page ${pageNum}/${pagesWanted}...`);
343
- const advanced = await clickSearchNextPage(page).catch(() => false);
344
- if (!advanced) {
345
- 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).`);
346
280
  break;
347
281
  }
348
- }
349
- let got = await waitForOffers(headed ? 180000 : 12000);
350
- // Retry only on page 1 first-contact WAF warmup. A page-2+ failure
351
- // just stops the loop with whatever has been collected so far.
352
- if (!got && !headed && pageNum === 1) {
353
- info('First attempt blocked or empty. Re-warming and retrying...');
354
- // Detach + reset around the re-warmup: the re-warmup hits the homepage
355
- // again, which would otherwise re-poison capturedOffers.
356
- page.off('response', onResp);
357
- capturedOffers = [];
358
- await warmup(3500);
359
- page.on('response', onResp);
360
- await navigateTo(baseUrl);
361
- got = await waitForOffers(15000);
362
- }
363
- if (!got) {
364
- if (pageNum === 1) {
365
- page.off('response', onResp);
366
- 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);
367
308
  }
368
- info(`Page ${pageNum} blocked or empty — returning ${allOffers.length} ` +
369
- `results from ${pageNum - 1} page(s).`);
370
- break;
371
- }
372
- if (pageNum === 1)
373
- await detectLoginRedirect(page);
374
- // Accumulate with cross-page dedup. 1688 occasionally repeats P4P ad
375
- // slots across pages; dedup keeps the result set clean.
376
- let added = 0;
377
- for (const o of capturedOffers) {
378
- if (seenIds.has(o.offerId))
379
- continue;
380
- seenIds.add(o.offerId);
381
- allOffers.push(o);
382
- added++;
383
- }
384
- // Stop conditions:
385
- // - collected enough for the caller's --max
386
- // - short page (< 60) means we hit the last page of results
387
- // - zero new items means pagination isn't advancing (bail rather than
388
- // spin through identical pages)
389
- if (allOffers.length >= maxResults)
390
- break;
391
- if (capturedOffers.length < PAGE_SIZE)
392
- break;
393
- if (added === 0)
394
- break;
395
- // Human-like jitter between page clicks to keep the WAF score low.
396
- if (pageNum < pagesWanted) {
397
- await sleep(1500 + Math.random() * 2000);
398
309
  }
310
+ return allOffers;
311
+ }
312
+ finally {
313
+ capture.dispose();
399
314
  }
400
- page.off('response', onResp);
401
- return allOffers;
402
315
  }
403
316
  async function isBlocked(page, retries = 3) {
404
317
  for (let i = 0; i < retries; i++) {
@@ -441,11 +354,10 @@ async function waitPastBlocking(page, headed) {
441
354
  return false;
442
355
  info('Verification page detected — drag the slider in the window.');
443
356
  }
444
- const deadline = Date.now() + (headed ? 180000 : 8000);
445
357
  let lastProgressAt = Date.now();
446
358
  let lastDebugAt = 0;
447
359
  const debug = process.env.BB1688_DEBUG === '1';
448
- while (Date.now() < deadline) {
360
+ return waitWithDeadline(async ({ now, remainingMs }) => {
449
361
  if (page.isClosed()) {
450
362
  throw new CliError(130, 'CANCELED', 'Browser closed.');
451
363
  }
@@ -457,9 +369,9 @@ async function waitPastBlocking(page, headed) {
457
369
  bodyLen: (document.body?.innerText ?? '').length,
458
370
  }))
459
371
  .catch(() => null);
460
- if (debug && state && Date.now() - lastDebugAt > 1000) {
372
+ if (debug && state && now - lastDebugAt > 1000) {
461
373
  info(`[poll] url=${state.url.slice(0, 80)} title="${state.title.slice(0, 40)}" anchors=${state.anchorCount} bodyLen=${state.bodyLen}`);
462
- lastDebugAt = Date.now();
374
+ lastDebugAt = now;
463
375
  }
464
376
  if (state) {
465
377
  const onPunish = /\/punish|x5secdata=|punish\.1688\.com/.test(state.url);
@@ -472,13 +384,16 @@ async function waitPastBlocking(page, headed) {
472
384
  return true;
473
385
  }
474
386
  }
475
- if (headed && Date.now() - lastProgressAt > 10000) {
476
- info(`Still waiting for results page (${Math.round((deadline - Date.now()) / 1000)}s left)...`);
477
- 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;
478
390
  }
479
- await sleep(500);
480
- }
481
- return false;
391
+ return null;
392
+ }, {
393
+ timeoutMs: headed ? 180000 : 8000,
394
+ intervalMs: 500,
395
+ onTimeout: () => false,
396
+ });
482
397
  }
483
398
  function riskControlError(triedHeaded) {
484
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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"}
@@ -3,7 +3,7 @@ import { emit, info } from '../io/output.js';
3
3
  import { CliError } from '../io/errors.js';
4
4
  import { withRecovery } from '../session/recovery.js';
5
5
  import { sleep } from '../session/wait.js';
6
- import { SEARCH_MTOP_API, SEARCH_APP_ID, parseMtopJsonp, mapOffer, } from './search.js';
6
+ import { startSearchOfferCapture } from '../session/search-capture.js';
7
7
  const SIMILAR_URL = (offerId) => `https://s.1688.com/selloffer/similar_search.html?offerIds=${encodeURIComponent(offerId)}&scene=similar_search`;
8
8
  export async function execute(ctx, args) {
9
9
  if (!/^\d+$/.test(args.offerId)) {
@@ -14,35 +14,6 @@ export async function execute(ctx, args) {
14
14
  async function executeSimilar(ctx, args) {
15
15
  const headed = args.headed === true;
16
16
  const page = await ctx.newPage();
17
- let captured = [];
18
- const onResp = async (resp) => {
19
- const u = resp.url();
20
- if (!u.includes(SEARCH_MTOP_API))
21
- return;
22
- try {
23
- const dataParam = new URLSearchParams(new URL(u).search).get('data') ?? '';
24
- const dataObj = JSON.parse(dataParam);
25
- if (String(dataObj.appId) !== SEARCH_APP_ID)
26
- return;
27
- }
28
- catch {
29
- return;
30
- }
31
- try {
32
- const body = await resp.text();
33
- const json = parseMtopJsonp(body);
34
- const items = json?.data?.data?.OFFER?.items ?? [];
35
- const offers = items
36
- .map(mapOffer)
37
- .filter((o) => o !== null);
38
- if (offers.length > captured.length)
39
- captured = offers;
40
- }
41
- catch {
42
- /* malformed — skip */
43
- }
44
- };
45
- page.on('response', onResp);
46
17
  try {
47
18
  info('Warming up s.1688.com...');
48
19
  await page.goto('https://s.1688.com/', {
@@ -50,25 +21,30 @@ async function executeSimilar(ctx, args) {
50
21
  timeout: 20000,
51
22
  });
52
23
  await sleep(1500);
53
- info(`Finding similar offers for ${args.offerId}...`);
54
- if (headed)
55
- info('A Chrome window has opened — switch focus to it now.');
56
- await page.goto(SIMILAR_URL(args.offerId), {
57
- waitUntil: 'domcontentloaded',
58
- timeout: 30000,
24
+ const capture = startSearchOfferCapture({
25
+ page,
26
+ keep: 'largest',
27
+ });
28
+ const captureResult = await capture.waitForAction(async () => {
29
+ info(`Finding similar offers for ${args.offerId}...`);
30
+ if (headed)
31
+ info('A Chrome window has opened — switch focus to it now.');
32
+ await page.goto(SIMILAR_URL(args.offerId), {
33
+ waitUntil: 'domcontentloaded',
34
+ timeout: 30000,
35
+ });
36
+ }, {
37
+ timeoutMs: headed ? 180000 : 15000,
38
+ isClosed: () => page.isClosed(),
39
+ isBlocked: () => !headed && /\/punish|x5secdata=/.test(page.url()),
59
40
  });
60
- const deadline = Date.now() + (headed ? 180000 : 15000);
61
- while (Date.now() < deadline) {
62
- if (page.isClosed()) {
63
- throw new CliError(130, 'CANCELED', 'Browser closed.');
64
- }
65
- if (captured.length > 0)
66
- break;
67
- if (!headed && /\/punish|x5secdata=/.test(page.url()))
68
- break;
69
- await sleep(300);
41
+ if (captureResult.status === 'browser_closed') {
42
+ throw new CliError(130, 'CANCELED', 'Browser closed.');
43
+ }
44
+ if (captureResult.status === 'blocked') {
45
+ throw new CliError(4, 'RISK_CONTROL', '1688 risk-control page detected. Run once with --headed to solve the slider; subsequent calls work for hours.');
70
46
  }
71
- page.off('response', onResp);
47
+ const captured = captureResult.offers;
72
48
  if (captured.length === 0) {
73
49
  throw new CliError(4, 'NO_RESULTS', 'No similar offers returned. Run once with --headed to solve any slider; subsequent calls work for hours.');
74
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"similar.js","sourceRoot":"","sources":["../../src/commands/similar.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAGL,eAAe,EACf,aAAa,EACb,cAAc,EACd,QAAQ,GACT,MAAM,aAAa,CAAC;AAqBrB,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE,CACtC,6DAA6D,kBAAkB,CAC7E,OAAO,CACR,uBAAuB,CAAC;AAE3B,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,GAAmB,EACnB,IAAiB;IAEjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,oBAAoB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,YAAY,CACjB,GAAG,EACH,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,EACxB,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,EAC/B,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAChD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,GAAmB,EACnB,IAAiB;IAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IAEjC,IAAI,QAAQ,GAAY,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,KAAK,EAAE,IAAgB,EAAE,EAAE;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;YAAE,OAAO;QACzC,IAAI,CAAC;YACH,MAAM,SAAS,GACb,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,aAAa;gBAAE,OAAO;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAE/B,CAAC;YACF,MAAM,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,KAAK;iBACjB,GAAG,CAAC,QAAQ,CAAC;iBACb,MAAM,CAAC,CAAC,CAAC,EAAc,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YACzC,IAAI,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;gBAAE,QAAQ,GAAG,MAAM,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,sBAAsB;QACxB,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAE5B,IAAI,CAAC;QACH,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACrC,SAAS,EAAE,kBAAkB;YAC7B,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QAElB,IAAI,CAAC,8BAA8B,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC;QACtD,IAAI,MAAM;YAAE,IAAI,CAAC,sDAAsD,CAAC,CAAC;QACzE,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACzC,SAAS,EAAE,kBAAkB;YAC7B,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACpB,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;YACzD,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM;YAC/B,IAAI,CAAC,MAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAAE,MAAM;YAC7D,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAE7B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,QAAQ,CAChB,CAAC,EACD,YAAY,EACZ,0GAA0G,CAC3G,CAAC;QACJ,CAAC;QAED,qDAAqD;QACrD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,QAAQ,CAAC,MAAM;YACtB,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;SACpC,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAiB;IACzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,IAAI,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAExD,MAAM,IAAI,GAAG,MAAM,QAAQ,CACzB,SAAS,EACT,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EACnD,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAC/C,CAAC;IAEF,IAAI,CAAC;QACH,KAAK,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;QAC/B,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,CAAgB;IACpC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IACD,2DAA2D;IAC3D,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC;QACnD,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC;QACnD,OAAO,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qBAAqB,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,sBAAsB,CACvE,CAAC;IACF,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IACvC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3C,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY;YACtC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO;gBACpB,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,GAAG,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAClE,CAAC,EACD,EAAE,CACH,IAAI,CACN,CAAC;QACF,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC;QACxC,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;aAC/C,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,MAAM,QAAQ,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,KAAK,CACpE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"similar.js","sourceRoot":"","sources":["../../src/commands/similar.ts"],"names":[],"mappings":"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"}