@pomelolabs/leads 0.1.5 → 0.2.1

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/client/bundle.js CHANGED
@@ -122,7 +122,7 @@
122
122
  // package.json
123
123
  var package_default = {
124
124
  name: "@pomelolabs/leads",
125
- version: "0.1.5",
125
+ version: "0.2.1",
126
126
  description: "\u67DA\u5BA2 Pomelo\uFF1A\u5185\u5BB9\u83B7\u5BA2\u5DE5\u4F5C\u53F0\uFF08DSH \u63D2\u4EF6\uFF09",
127
127
  license: "UNLICENSED",
128
128
  type: "module",
@@ -155,8 +155,7 @@
155
155
  ],
156
156
  scripts: {
157
157
  build: "esbuild client/src/index.jsx --bundle --format=iife --outfile=client/bundle.js --loader:.css=text --loader:.svg=text --jsx=transform --external:react --target=es2022 --log-level=warning",
158
- dev: "npm run build -- --watch",
159
- "browser:install": "node ./node_modules/puppeteer/lib/puppeteer/node/cli.js browsers install chrome"
158
+ dev: "npm run build -- --watch"
160
159
  },
161
160
  devDependencies: {
162
161
  "@phosphor-icons/core": "^2.1.1",
@@ -176,7 +175,8 @@
176
175
  },
177
176
  dependencies: {
178
177
  "playwright-core": "^1.64.1",
179
- puppeteer: "^25.16.0"
178
+ "puppeteer-core": "^25.16.0",
179
+ "@puppeteer/browsers": "^3.2.6"
180
180
  },
181
181
  publishConfig: {
182
182
  access: "public",
package/host/browser.js CHANGED
@@ -10,7 +10,7 @@
10
10
  import fs from 'node:fs/promises';
11
11
  import os from 'node:os';
12
12
  import path from 'node:path';
13
- import puppeteer from 'puppeteer';
13
+ import puppeteer from 'puppeteer-core';
14
14
 
15
15
  const PLATFORM_URLS = {
16
16
  xhs: {
@@ -120,7 +120,7 @@ async function resolveBrowserExecutable() {
120
120
  return { executable: chromium, source: 'playwright-chromium' };
121
121
  }
122
122
  try {
123
- const bundled = await puppeteer.executablePath();
123
+ const bundled = typeof puppeteer.executablePath === 'function' ? await puppeteer.executablePath() : '';
124
124
  if (bundled && await executableAt(bundled)) {
125
125
  return { executable: bundled, source: 'puppeteer' };
126
126
  }
package/host/index.js CHANGED
@@ -9,6 +9,7 @@ import { promisify } from 'node:util';
9
9
  import fs from 'node:fs/promises';
10
10
  import os from 'node:os';
11
11
  import path from 'node:path';
12
+ import { Browser as BrowserType, detectBrowserPlatform, install as installBrowserBinary, resolveBuildId } from '@puppeteer/browsers';
12
13
  import { browserStatus, openLink, openLogin, searchPeerProfile, searchPublic } from './browser.js';
13
14
 
14
15
  const execFileAsync = promisify(execFile);
@@ -564,21 +565,23 @@ ${comparisonText}
564
565
  async function installBrowser() {
565
566
  const first = await browserStatus();
566
567
  if (first.installed) return first;
567
- const pluginRoot = path.resolve(path.dirname(new URL(import.meta.url).pathname), '..');
568
- await store.log('开始安装 Chromium(puppeteer)');
568
+ await store.log('开始安装 Chrome(@puppeteer/browsers,无 postinstall)');
569
569
  try {
570
- await execFileAsync('npx', ['puppeteer', 'browsers', 'install', 'chrome'], {
571
- cwd: pluginRoot,
572
- timeout: 15 * 60 * 1000,
573
- maxBuffer: 4 * 1024 * 1024,
574
- env: process.env,
570
+ const platform = detectBrowserPlatform();
571
+ if (!platform) throw new Error('无法识别当前系统平台');
572
+ const buildId = await resolveBuildId(BrowserType.CHROME, platform, 'stable');
573
+ await installBrowserBinary({
574
+ browser: BrowserType.CHROME,
575
+ buildId,
576
+ cacheDir: path.join(os.homedir(), '.cache', 'puppeteer'),
577
+ platform,
575
578
  });
576
579
  } catch (error) {
577
- await store.log(`Chromium 安装失败:${error?.message || error}`);
578
- throw rpcError('BROWSER_INSTALL_FAILED', 'Chromium 安装失败,请在项目目录运行 npm run browser:install 后重试');
580
+ await store.log(`Chrome 安装失败:${error?.message || error}`);
581
+ throw rpcError('BROWSER_INSTALL_FAILED', '采集浏览器安装失败,请手动安装 Chrome 或 Edge 后重试');
579
582
  }
580
583
  const next = await browserStatus();
581
- await store.log(`Chromium 安装完成:${next.executable || '未找到路径'}`);
584
+ await store.log(`Chrome 安装完成:${next.executable || '未找到路径'}`);
582
585
  return next;
583
586
  }
584
587
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pomelolabs/leads",
3
- "version": "0.1.5",
3
+ "version": "0.2.1",
4
4
  "description": "柚客 Pomelo:内容获客工作台(DSH 插件)",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
@@ -33,8 +33,7 @@
33
33
  ],
34
34
  "scripts": {
35
35
  "build": "esbuild client/src/index.jsx --bundle --format=iife --outfile=client/bundle.js --loader:.css=text --loader:.svg=text --jsx=transform --external:react --target=es2022 --log-level=warning",
36
- "dev": "npm run build -- --watch",
37
- "browser:install": "node ./node_modules/puppeteer/lib/puppeteer/node/cli.js browsers install chrome"
36
+ "dev": "npm run build -- --watch"
38
37
  },
39
38
  "devDependencies": {
40
39
  "@phosphor-icons/core": "^2.1.1",
@@ -54,7 +53,8 @@
54
53
  },
55
54
  "dependencies": {
56
55
  "playwright-core": "^1.64.1",
57
- "puppeteer": "^25.16.0"
56
+ "puppeteer-core": "^25.16.0",
57
+ "@puppeteer/browsers": "^3.2.6"
58
58
  },
59
59
  "publishConfig": {
60
60
  "access": "public",