extension-develop 3.8.9 → 3.8.10-canary.214.e5a13ba

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/README.md CHANGED
@@ -95,7 +95,7 @@ Options accepted by each command. Values shown are typical types or enumerations
95
95
  | profile | string or false | Profile path or disable profile persistence |
96
96
  | startingUrl | string | Initial URL to open |
97
97
  | open | boolean | Focus/open the browser window (CLI: use `--no-open` to disable) |
98
- | --no-runner | boolean | Skip launching the browser runner |
98
+ | --no-browser | boolean | Skip launching the browser |
99
99
  | chromiumBinary | string | Custom Chromium-based executable path |
100
100
  | geckoBinary | string | Custom Gecko-based executable path |
101
101
 
@@ -228,6 +228,7 @@ export default {
228
228
  2. `.env.development`
229
229
  3. `.env.local`
230
230
  4. `.env`
231
+ - In monorepos, if none of the files above exist in the project directory, develop falls back to the nearest workspace root (directory containing `pnpm-workspace.yaml`) and applies the same loading order there.
231
232
  - Only variables you read explicitly in the config are used there; client-side injection still requires the `EXTENSION_PUBLIC_*` prefix.
232
233
  - Example:
233
234
 
package/dist/535.cjs CHANGED
@@ -422,11 +422,13 @@ exports.modules = {
422
422
  }
423
423
  if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(envSelectedFile(envPath));
424
424
  const envVars = envPath ? external_dotenv_.config({
425
- path: envPath
425
+ path: envPath,
426
+ quiet: true
426
427
  }).parsed || {} : {};
427
428
  const defaultsPath = external_path_.join(projectPath, '.env.defaults');
428
429
  const defaultsVars = external_fs_.existsSync(defaultsPath) ? external_dotenv_.config({
429
- path: defaultsPath
430
+ path: defaultsPath,
431
+ quiet: true
430
432
  }).parsed || {} : {};
431
433
  const combinedVars = {
432
434
  ...defaultsVars,
@@ -689,7 +691,7 @@ exports.modules = {
689
691
  compiler.hooks.done.tap('develop:brand', (stats)=>{
690
692
  const hasErrors = Boolean(stats?.hasErrors?.());
691
693
  const hasWarnings = Boolean(stats?.hasWarnings?.());
692
- const runnerEnabled = '0' !== String(process.env.EXTENSION_BROWSER_RUNNER_ENABLED || '1');
694
+ const browserLaunchEnabled = '0' !== String(process.env.EXTENSION_BROWSER_LAUNCH_ENABLED || '1');
693
695
  stats.compilation.name = void 0;
694
696
  const duration = stats.compilation.endTime - stats.compilation.startTime;
695
697
  const manifestName = boring_readJsonFileSafe(this.manifestPath).name;
@@ -705,12 +707,12 @@ exports.modules = {
705
707
  });
706
708
  if (hasUserFileChange) this.sawUserInvalidation = true;
707
709
  }
708
- if (runnerEnabled && !(0, shared_state.TC)() && !hasErrors && !hasWarnings) {
710
+ if (browserLaunchEnabled && !(0, shared_state.TC)() && !hasErrors && !hasWarnings) {
709
711
  this.printedPostBannerStartupSuccess = true;
710
712
  (0, shared_state.FF)(line);
711
713
  return;
712
714
  }
713
- if (runnerEnabled && !hasErrors && !hasWarnings) {
715
+ if (browserLaunchEnabled && !hasErrors && !hasWarnings) {
714
716
  if (!this.sawUserInvalidation) if (this.printedPostBannerStartupSuccess) return;
715
717
  else this.printedPostBannerStartupSuccess = true;
716
718
  }
@@ -10262,7 +10264,7 @@ Set background.noDynamicEntryWarning to true to disable this warning.
10262
10264
  manifestPath
10263
10265
  })
10264
10266
  ];
10265
- if (!devOptions.noRunner) plugins.push(new BrowsersPlugin({
10267
+ if (!devOptions.noBrowser) plugins.push(new BrowsersPlugin({
10266
10268
  extension: unpackedExtensionDirsToLoad,
10267
10269
  browser: devOptions.browser,
10268
10270
  noOpen: devOptions.noOpen,
package/dist/928.cjs CHANGED
@@ -32,7 +32,7 @@ exports.modules = {
32
32
  return `${getLoggingPrefix('info')} ${cap} ${extensionOutput} ${pretty}.`;
33
33
  }
34
34
  function browserRunnerDisabled() {
35
- return `${getLoggingPrefix('info')} Browser runner disabled (no-runner).`;
35
+ return `${getLoggingPrefix('info')} Browser launch disabled (no-browser).`;
36
36
  }
37
37
  function portInUse(requestedPort, newPort) {
38
38
  return `Port: Requested port ${external_pintor_default().brightBlue(requestedPort.toString())} is in use; using ${external_pintor_default().brightBlue(newPort.toString())} instead.`;
@@ -325,7 +325,7 @@ exports.modules = {
325
325
  }
326
326
  var webpack_config = __webpack_require__("./webpack/webpack-config.ts");
327
327
  async function dev_server_devServer(projectStructure, devOptions) {
328
- process.env.EXTENSION_BROWSER_RUNNER_ENABLED = devOptions.noRunner ? '0' : '1';
328
+ process.env.EXTENSION_BROWSER_LAUNCH_ENABLED = devOptions.noBrowser ? '0' : '1';
329
329
  const { manifestPath, packageJsonPath } = projectStructure;
330
330
  const manifestDir = external_path_.dirname(manifestPath);
331
331
  const packageJsonDir = external_path_.dirname(packageJsonPath);
@@ -436,7 +436,7 @@ exports.modules = {
436
436
  await devServer.start();
437
437
  if (startTimeout) clearTimeout(startTimeout);
438
438
  console.log(ready('development', devOptions.browser));
439
- if (devOptions.noRunner) console.log(browserRunnerDisabled());
439
+ if (devOptions.noBrowser) console.log(browserRunnerDisabled());
440
440
  } catch (error) {
441
441
  if (startTimeout) clearTimeout(startTimeout);
442
442
  console.log(extensionJsRunnerError(error));
package/dist/module.cjs CHANGED
@@ -131453,7 +131453,6 @@ var __webpack_modules__ = {
131453
131453
  var pintor__rspack_import_3_default = /*#__PURE__*/ __webpack_require__.n(pintor__rspack_import_3);
131454
131454
  var _webpack_lib_check_build_dependencies__rspack_import_4 = __webpack_require__("./webpack/webpack-lib/check-build-dependencies.ts");
131455
131455
  var _webpack_lib_package_manager__rspack_import_5 = __webpack_require__("./webpack/webpack-lib/package-manager.ts");
131456
- var _webpack_lib_progress__rspack_import_6 = __webpack_require__("./webpack/webpack-lib/progress.ts");
131457
131456
  function parseJsonSafe(text) {
131458
131457
  const s = text && 0xfeff === text.charCodeAt(0) ? text.slice(1) : text;
131459
131458
  return JSON.parse(s || '{}');
@@ -131690,34 +131689,25 @@ var __webpack_modules__ = {
131690
131689
  const setupMessage = setupMessages[0];
131691
131690
  const hasIndex = Boolean(options?.index && options?.total);
131692
131691
  const setupMessageWithIndex = hasIndex ? setupMessage.replace('►►► ', `►►► [${options?.index}/${options?.total}] `) : setupMessage;
131693
- const progressEnabled = !isAuthor && (0, _webpack_lib_progress__rspack_import_6.u)();
131694
- const progress = (0, _webpack_lib_progress__rspack_import_6.J)(setupMessageWithIndex, {
131695
- enabled: progressEnabled,
131696
- persistLabel: true
131697
- });
131698
131692
  if (isAuthor) console.warn(setupMessageWithIndex);
131699
- else if (!progressEnabled) console.log(setupMessageWithIndex);
131700
- try {
131701
- for (const dependency of dependencies){
131702
- const installCommand = getOptionalInstallCommand(pm, [
131703
- dependency
131704
- ], wslContext.installDir || installBaseDir);
131705
- const execCommand = wrapCommandForWsl(installCommand, wslContext);
131706
- const fallbackNpmCommand = wslContext.useWsl ? void 0 : (0, _webpack_lib_package_manager__rspack_import_5.sX)([
131707
- '--silent',
131708
- 'install',
131709
- dependency,
131710
- '--prefix',
131711
- installBaseDir,
131712
- '--save-optional'
131713
- ]);
131714
- await execInstallWithFallback(execCommand, {
131715
- cwd: wslContext.useWsl ? void 0 : installBaseDir,
131716
- fallbackNpmCommand
131717
- });
131718
- }
131719
- } finally{
131720
- progress.stop();
131693
+ else console.log(setupMessageWithIndex);
131694
+ for (const dependency of dependencies){
131695
+ const installCommand = getOptionalInstallCommand(pm, [
131696
+ dependency
131697
+ ], wslContext.installDir || installBaseDir);
131698
+ const execCommand = wrapCommandForWsl(installCommand, wslContext);
131699
+ const fallbackNpmCommand = wslContext.useWsl ? void 0 : (0, _webpack_lib_package_manager__rspack_import_5.sX)([
131700
+ '--silent',
131701
+ 'install',
131702
+ dependency,
131703
+ '--prefix',
131704
+ installBaseDir,
131705
+ '--save-optional'
131706
+ ]);
131707
+ await execInstallWithFallback(execCommand, {
131708
+ cwd: wslContext.useWsl ? void 0 : installBaseDir,
131709
+ fallbackNpmCommand
131710
+ });
131721
131711
  }
131722
131712
  await new Promise((resolve)=>setTimeout(resolve, 500));
131723
131713
  if (isAuthor) {
@@ -133159,27 +133149,56 @@ var __webpack_modules__ = {
133159
133149
  fn(exports1, requireFn, module, absolutePath, dirname);
133160
133150
  return module.exports?.default || module.exports;
133161
133151
  }
133162
- function preloadEnvFiles(projectDir) {
133152
+ function findNearestWorkspaceRoot(startDir) {
133153
+ let current = external_path_.resolve(startDir);
133154
+ while(true){
133155
+ if (external_fs_.existsSync(external_path_.join(current, 'pnpm-workspace.yaml'))) return current;
133156
+ const parent = external_path_.dirname(current);
133157
+ if (parent === current) return;
133158
+ current = parent;
133159
+ }
133160
+ }
133161
+ function preloadEnvFilesFromDir(envDir, options) {
133162
+ let loadedAny = false;
133163
133163
  try {
133164
- const defaultsPath = external_path_.join(projectDir, '.env.defaults');
133165
- if (external_fs_.existsSync(defaultsPath)) external_dotenv_default().config({
133166
- path: defaultsPath
133167
- });
133164
+ const defaultsPath = external_path_.join(envDir, '.env.defaults');
133165
+ if (external_fs_.existsSync(defaultsPath)) {
133166
+ external_dotenv_default().config({
133167
+ path: defaultsPath,
133168
+ override: Boolean(options?.override),
133169
+ quiet: true
133170
+ });
133171
+ loadedAny = true;
133172
+ }
133168
133173
  const envCandidates = [
133169
133174
  '.env.development',
133170
133175
  '.env.local',
133171
133176
  '.env'
133172
133177
  ];
133173
133178
  for (const filename of envCandidates){
133174
- const filePath = external_path_.join(projectDir, filename);
133179
+ const filePath = external_path_.join(envDir, filename);
133175
133180
  if (external_fs_.existsSync(filePath)) {
133176
133181
  external_dotenv_default().config({
133177
- path: filePath
133182
+ path: filePath,
133183
+ override: Boolean(options?.override),
133184
+ quiet: true
133178
133185
  });
133186
+ loadedAny = true;
133179
133187
  break;
133180
133188
  }
133181
133189
  }
133182
133190
  } catch {}
133191
+ return {
133192
+ loadedAny,
133193
+ envDir
133194
+ };
133195
+ }
133196
+ function preloadEnvFiles(projectDir) {
133197
+ const local = preloadEnvFilesFromDir(projectDir);
133198
+ if (local.loadedAny) return local;
133199
+ const workspaceRoot = findNearestWorkspaceRoot(projectDir);
133200
+ if (workspaceRoot && workspaceRoot !== projectDir) return preloadEnvFilesFromDir(workspaceRoot);
133201
+ return local;
133183
133202
  }
133184
133203
  async function loadConfigFile(configPath) {
133185
133204
  const absolutePath = external_path_.resolve(configPath);
@@ -133620,12 +133639,12 @@ var __webpack_modules__ = {
133620
133639
  gC: ()=>unpackagingExtension,
133621
133640
  jM: ()=>debugExtensionsToLoad,
133622
133641
  jV: ()=>debugPreviewOutput,
133642
+ k4: ()=>previewSkippedNoBrowser,
133623
133643
  ng: ()=>writingTypeDefinitions,
133624
133644
  tQ: ()=>fetchingProjectPath,
133625
133645
  tc: ()=>invalidRemoteZip,
133626
133646
  v_: ()=>writingTypeDefinitionsError,
133627
133647
  vo: ()=>buildDependenciesManualInstall,
133628
- wH: ()=>previewSkippedNoRunner,
133629
133648
  xK: ()=>installingBuildDependencies,
133630
133649
  yp: ()=>noCompanionExtensionsResolved,
133631
133650
  zM: ()=>unpackagedSuccessfully
@@ -133686,8 +133705,8 @@ var __webpack_modules__ = {
133686
133705
  function previewing(browser) {
133687
133706
  return `${getLoggingPrefix('info')} Previewing the extension on ${capitalizedBrowserName(browser)}...`;
133688
133707
  }
133689
- function previewSkippedNoRunner(browser) {
133690
- return `${getLoggingPrefix('info')} Skipping browser runner for ${capitalizedBrowserName(browser)} (no-runner).`;
133708
+ function previewSkippedNoBrowser(browser) {
133709
+ return `${getLoggingPrefix('info')} Skipping browser launch for ${capitalizedBrowserName(browser)} (no-browser).`;
133691
133710
  }
133692
133711
  function installingRequiredDependencies() {
133693
133712
  const suffix = 'true' === process.env.EXTENSION_ONE_TIME_INSTALL_HINT ? ' (this is a one time operation)' : '';
@@ -134682,59 +134701,6 @@ var __webpack_modules__ = {
134682
134701
  }
134683
134702
  }
134684
134703
  },
134685
- "./webpack/webpack-lib/progress.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
134686
- "use strict";
134687
- __webpack_require__.d(__webpack_exports__, {
134688
- J: ()=>startProgressBar,
134689
- u: ()=>shouldShowProgress
134690
- });
134691
- function clearLine() {
134692
- if (!process.stdout.isTTY) return;
134693
- process.stdout.write('\r');
134694
- process.stdout.write('\x1b[2K');
134695
- }
134696
- function stripAnsi(input) {
134697
- return input.replace(/\x1b\[[0-9;]*m/g, '');
134698
- }
134699
- function shouldShowProgress() {
134700
- return Boolean(process.stdout.isTTY) && !process.env.CI;
134701
- }
134702
- function startProgressBar(label, options) {
134703
- const enabled = (options?.enabled ?? true) && shouldShowProgress();
134704
- if (!enabled) return {
134705
- stop: ()=>void 0
134706
- };
134707
- const width = Math.max(10, options?.width ?? 24);
134708
- const intervalMs = Math.max(50, options?.intervalMs ?? 90);
134709
- let tick = 0;
134710
- let lastVisibleLength = 0;
134711
- const render = ()=>{
134712
- const filled = tick % (width + 1);
134713
- const empty = width - filled;
134714
- const bar = `[${'='.repeat(filled)}${' '.repeat(empty)}]`;
134715
- const line = `${label} ${bar}`;
134716
- lastVisibleLength = stripAnsi(line).length;
134717
- clearLine();
134718
- process.stdout.write(line);
134719
- tick = (tick + 1) % (width + 1);
134720
- };
134721
- render();
134722
- const timer = setInterval(render, intervalMs);
134723
- return {
134724
- stop: ()=>{
134725
- clearInterval(timer);
134726
- if (process.stdout.isTTY) {
134727
- clearLine();
134728
- if (lastVisibleLength > 0) {
134729
- process.stdout.write(' '.repeat(lastVisibleLength));
134730
- process.stdout.write('\r');
134731
- }
134732
- if (options?.persistLabel) process.stdout.write(`${label}\n`);
134733
- }
134734
- }
134735
- };
134736
- }
134737
- },
134738
134704
  "./webpack/webpack-lib/sanitize.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
134739
134705
  "use strict";
134740
134706
  __webpack_require__.d(__webpack_exports__, {
@@ -134866,7 +134832,7 @@ var __webpack_modules__ = {
134866
134832
  },
134867
134833
  "./package.json" (module) {
134868
134834
  "use strict";
134869
- module.exports = JSON.parse('{"rE":"3.8.9","El":{"@rspack/core":"^1.7.5","@rspack/dev-server":"^1.1.5","@swc/core":"^1.15.8","@swc/helpers":"^0.5.18","adm-zip":"^0.5.16","browser-extension-manifest-fields":"^2.2.1","case-sensitive-paths-webpack-plugin":"^2.4.0","chrome-location2":"4.0.0","chromium-location":"2.0.0","content-security-policy-parser":"^0.6.0","cross-spawn":"^7.0.6","dotenv":"^17.2.3","edge-location":"2.2.0","extension-from-store":"^0.1.1","firefox-location2":"3.0.0","go-git-it":"^5.1.1","ignore":"^7.0.5","loader-utils":"^3.3.1","magic-string":"^0.30.21","parse5":"^8.0.0","parse5-utilities":"^1.0.0","pintor":"0.3.0","schema-utils":"^4.3.3","tiny-glob":"^0.2.9","unique-names-generator":"^4.7.1","webextension-polyfill":"^0.12.0","webpack-merge":"^6.0.1","webpack-target-webextension":"^2.1.3","ws":"^8.19.0"}}');
134835
+ module.exports = JSON.parse('{"rE":"3.8.10-canary.214.e5a13ba","El":{"@rspack/core":"^1.7.5","@rspack/dev-server":"^1.1.5","@swc/core":"^1.15.8","@swc/helpers":"^0.5.18","adm-zip":"^0.5.16","browser-extension-manifest-fields":"^2.2.1","case-sensitive-paths-webpack-plugin":"^2.4.0","chrome-location2":"4.0.0","chromium-location":"2.0.0","content-security-policy-parser":"^0.6.0","cross-spawn":"^7.0.6","dotenv":"^17.2.3","edge-location":"2.2.0","extension-from-store":"^0.1.1","firefox-location2":"3.0.0","go-git-it":"^5.1.1","ignore":"^7.0.5","loader-utils":"^3.3.1","magic-string":"^0.30.21","parse5":"^8.0.0","parse5-utilities":"^1.0.0","pintor":"0.3.0","schema-utils":"^4.3.3","tiny-glob":"^0.2.9","unique-names-generator":"^4.7.1","webextension-polyfill":"^0.12.0","webpack-merge":"^6.0.1","webpack-target-webextension":"^2.1.3","ws":"^8.19.0"}}');
134870
134836
  }
134871
134837
  };
134872
134838
  var __webpack_module_cache__ = {};
@@ -135168,7 +135134,52 @@ var __webpack_exports__ = {};
135168
135134
  var webpack_lib_paths = __webpack_require__("./webpack/webpack-lib/paths.ts");
135169
135135
  var check_build_dependencies = __webpack_require__("./webpack/webpack-lib/check-build-dependencies.ts");
135170
135136
  var package_manager = __webpack_require__("./webpack/webpack-lib/package-manager.ts");
135171
- var webpack_lib_progress = __webpack_require__("./webpack/webpack-lib/progress.ts");
135137
+ function clearLine() {
135138
+ if (!process.stdout.isTTY) return;
135139
+ process.stdout.write('\r');
135140
+ process.stdout.write('\x1b[2K');
135141
+ }
135142
+ function stripAnsi(input) {
135143
+ return input.replace(/\x1b\[[0-9;]*m/g, '');
135144
+ }
135145
+ function shouldShowProgress() {
135146
+ return Boolean(process.stdout.isTTY) && !process.env.CI;
135147
+ }
135148
+ function startProgressBar(label, options) {
135149
+ const enabled = (options?.enabled ?? true) && shouldShowProgress();
135150
+ if (!enabled) return {
135151
+ stop: ()=>void 0
135152
+ };
135153
+ const width = Math.max(10, options?.width ?? 24);
135154
+ const intervalMs = Math.max(50, options?.intervalMs ?? 90);
135155
+ let tick = 0;
135156
+ let lastVisibleLength = 0;
135157
+ const render = ()=>{
135158
+ const filled = tick % (width + 1);
135159
+ const empty = width - filled;
135160
+ const bar = `[${'='.repeat(filled)}${' '.repeat(empty)}]`;
135161
+ const line = `${label} ${bar}`;
135162
+ lastVisibleLength = stripAnsi(line).length;
135163
+ clearLine();
135164
+ process.stdout.write(line);
135165
+ tick = (tick + 1) % (width + 1);
135166
+ };
135167
+ render();
135168
+ const timer = setInterval(render, intervalMs);
135169
+ return {
135170
+ stop: ()=>{
135171
+ clearInterval(timer);
135172
+ if (process.stdout.isTTY) {
135173
+ clearLine();
135174
+ if (lastVisibleLength > 0) {
135175
+ process.stdout.write(' '.repeat(lastVisibleLength));
135176
+ process.stdout.write('\r');
135177
+ }
135178
+ if (options?.persistLabel) process.stdout.write(`${label}\n`);
135179
+ }
135180
+ }
135181
+ };
135182
+ }
135172
135183
  function getInstallArgs(command, dependencies, dependenciesMap) {
135173
135184
  const depsWithVersions = dependencies.map((dep)=>`${dep}@${dependenciesMap[dep]}`);
135174
135185
  if ('pnpm' === command) return [
@@ -135202,9 +135213,9 @@ var __webpack_exports__ = {};
135202
135213
  const isAuthor = 'true' === process.env.EXTENSION_AUTHOR_MODE;
135203
135214
  const stdio = isAuthor ? 'inherit' : 'ignore';
135204
135215
  const progressLabel = messages.xK(dependencies);
135205
- const progressEnabled = !isAuthor && (0, webpack_lib_progress.u)();
135216
+ const progressEnabled = !isAuthor && shouldShowProgress();
135206
135217
  const persistLabel = 'true' === process.env.EXTENSION_ONE_TIME_INSTALL_HINT;
135207
- const progress = (0, webpack_lib_progress.J)(progressLabel, {
135218
+ const progress = startProgressBar(progressLabel, {
135208
135219
  enabled: progressEnabled,
135209
135220
  persistLabel
135210
135221
  });
@@ -135392,9 +135403,13 @@ var __webpack_exports__ = {};
135392
135403
  return external_path_.join(cacheDir, 'version.json');
135393
135404
  }
135394
135405
  function getProjectDepsHash(projectPath) {
135406
+ const lockfileSignature = getNearestLockfileSignature(projectPath);
135395
135407
  try {
135396
135408
  const packageJsonPath = external_path_.join(projectPath, 'package.json');
135397
- if (!external_fs_.existsSync(packageJsonPath)) return 'no-package-json';
135409
+ if (!external_fs_.existsSync(packageJsonPath)) return (0, external_crypto_.createHash)('sha1').update(JSON.stringify({
135410
+ packageJson: 'no-package-json',
135411
+ lockfile: lockfileSignature
135412
+ })).digest('hex');
135398
135413
  const raw = external_fs_.readFileSync(packageJsonPath, 'utf8');
135399
135414
  const parsed = JSON.parse(raw || '{}');
135400
135415
  const deps = parsed?.dependencies || {};
@@ -135407,12 +135422,42 @@ var __webpack_exports__ = {};
135407
135422
  };
135408
135423
  const stable = JSON.stringify({
135409
135424
  dependencies: normalize(deps),
135410
- devDependencies: normalize(devDeps)
135425
+ devDependencies: normalize(devDeps),
135426
+ lockfile: lockfileSignature
135411
135427
  });
135412
135428
  return (0, external_crypto_.createHash)('sha1').update(stable).digest('hex');
135413
135429
  } catch {
135414
- return 'invalid-package-json';
135430
+ return (0, external_crypto_.createHash)('sha1').update(JSON.stringify({
135431
+ packageJson: 'invalid-package-json',
135432
+ lockfile: lockfileSignature
135433
+ })).digest('hex');
135434
+ }
135435
+ }
135436
+ function getNearestLockfileSignature(projectPath) {
135437
+ const lockfileNames = [
135438
+ 'pnpm-lock.yaml',
135439
+ 'package-lock.json',
135440
+ 'yarn.lock',
135441
+ 'bun.lock',
135442
+ 'bun.lockb'
135443
+ ];
135444
+ let current = external_path_.resolve(projectPath);
135445
+ while(true){
135446
+ for (const lockfileName of lockfileNames){
135447
+ const lockfilePath = external_path_.join(current, lockfileName);
135448
+ if (external_fs_.existsSync(lockfilePath)) try {
135449
+ const content = external_fs_.readFileSync(lockfilePath);
135450
+ const digest = (0, external_crypto_.createHash)('sha1').update(content).digest('hex');
135451
+ return `${lockfileName}:${digest}`;
135452
+ } catch {
135453
+ return `${lockfileName}:unreadable`;
135454
+ }
135455
+ }
135456
+ const parent = external_path_.dirname(current);
135457
+ if (parent === current) break;
135458
+ current = parent;
135415
135459
  }
135460
+ return 'none';
135416
135461
  }
135417
135462
  function ensureCacheVersion(cacheDir) {
135418
135463
  const versionPath = getCacheVersionPath(cacheDir);
@@ -135996,7 +136041,7 @@ var __webpack_exports__ = {};
135996
136041
  const commandConfig = await (0, config_loader.eY)(packageJsonDir, 'preview');
135997
136042
  const browserConfig = await (0, config_loader.xY)(packageJsonDir, browser);
135998
136043
  console.log(messages.V_(browser));
135999
- if (previewOptions.noRunner) return void console.log(messages.wH(browser));
136044
+ if (previewOptions.noBrowser) return void console.log(messages.k4(browser));
136000
136045
  const safeBrowserConfig = (0, sanitize.a)(browserConfig);
136001
136046
  const safeCommandConfig = (0, sanitize.a)(commandConfig);
136002
136047
  const safePreviewOptions = (0, sanitize.a)(previewOptions);
package/package.json CHANGED
@@ -24,7 +24,7 @@
24
24
  "webpack/webpack-lib/build-dependencies.json"
25
25
  ],
26
26
  "name": "extension-develop",
27
- "version": "3.8.9",
27
+ "version": "3.8.10-canary.214.e5a13ba",
28
28
  "description": "Develop, build, preview, and package Extension.js projects.",
29
29
  "author": {
30
30
  "name": "Cezar Augusto",