extension-develop 3.1.0-next.8 → 3.1.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.
Files changed (28) hide show
  1. package/dist/547.js +14 -14
  2. package/dist/content-script-wrapper.js +4 -1
  3. package/dist/ensure-hmr-for-scripts.js +2 -0
  4. package/dist/extension-js-devtools/chrome/pages/centralized-logger.css +1 -1
  5. package/dist/extension-js-devtools/chrome/pages/centralized-logger.js +4 -5
  6. package/dist/extension-js-devtools/chrome/pages/welcome.css +1 -1
  7. package/dist/extension-js-devtools/chrome/pages/welcome.js +4 -4
  8. package/dist/extension-js-devtools/chromium/pages/centralized-logger.css +1 -1
  9. package/dist/extension-js-devtools/chromium/pages/centralized-logger.js +4 -5
  10. package/dist/extension-js-devtools/chromium/pages/welcome.css +1 -1
  11. package/dist/extension-js-devtools/chromium/pages/welcome.js +4 -4
  12. package/dist/extension-js-devtools/edge/pages/centralized-logger.css +1 -1
  13. package/dist/extension-js-devtools/edge/pages/centralized-logger.js +4 -5
  14. package/dist/extension-js-devtools/edge/pages/welcome.css +1 -1
  15. package/dist/extension-js-devtools/edge/pages/welcome.js +4 -4
  16. package/dist/extension-js-devtools/firefox/pages/centralized-logger.css +1 -1
  17. package/dist/extension-js-devtools/firefox/pages/centralized-logger.js +4 -5
  18. package/dist/extension-js-devtools/firefox/pages/welcome.css +1 -1
  19. package/dist/extension-js-devtools/firefox/pages/welcome.js +4 -4
  20. package/dist/module.js +398 -103
  21. package/package.json +1 -1
  22. package/dist/add-centralized-logger-script-background.js +0 -220
  23. package/dist/add-centralized-logger-script-content.js +0 -172
  24. package/dist/add-centralized-logger-script.js +0 -323
  25. package/dist/extension-js-devtools/chrome/logo.png +0 -0
  26. package/dist/extension-js-devtools/chromium/logo.png +0 -0
  27. package/dist/extension-js-devtools/edge/logo.png +0 -0
  28. package/dist/extension-js-devtools/firefox/logo.png +0 -0
package/dist/module.js CHANGED
@@ -127144,6 +127144,12 @@ var __webpack_modules__ = {
127144
127144
  }
127145
127145
  }
127146
127146
  const printedKeys = new Set();
127147
+ function readUpdateMessageOnce() {
127148
+ const message = process.env.EXTENSION_CLI_UPDATE_MESSAGE;
127149
+ if (!message) return null;
127150
+ delete process.env.EXTENSION_CLI_UPDATE_MESSAGE;
127151
+ return message;
127152
+ }
127147
127153
  function keyFor(browser, outPath, hp) {
127148
127154
  const host = (hp?.host || '127.0.0.1').toString();
127149
127155
  const port = hp?.port == null ? '' : String(hp.port);
@@ -127170,8 +127176,11 @@ var __webpack_modules__ = {
127170
127176
  };
127171
127177
  console.log(messages.io8());
127172
127178
  console.log(messages.e_P(manifest, opts.browser, message, opts.browserVersionLine));
127179
+ const updateMessage = readUpdateMessageOnce();
127180
+ if (updateMessage) console.log(updateMessage);
127173
127181
  console.log(messages.io8());
127174
127182
  markBannerPrinted();
127183
+ process.env.EXTENSION_CLI_BANNER_PRINTED = 'true';
127175
127184
  printedKeys.add(k);
127176
127185
  return true;
127177
127186
  }
@@ -127194,6 +127203,8 @@ var __webpack_modules__ = {
127194
127203
  };
127195
127204
  console.log(messages.io8());
127196
127205
  console.log(messages.e_P(manifest, opts.browser, message, browserLabel));
127206
+ const updateMessage = readUpdateMessageOnce();
127207
+ if (updateMessage) console.log(updateMessage);
127197
127208
  console.log(messages.io8());
127198
127209
  } else {
127199
127210
  const message = {
@@ -127207,14 +127218,19 @@ var __webpack_modules__ = {
127207
127218
  };
127208
127219
  console.log(messages.io8());
127209
127220
  console.log(messages.e_P(manifest, opts.browser, message, browserLabel));
127221
+ const updateMessage = readUpdateMessageOnce();
127222
+ if (updateMessage) console.log(updateMessage);
127210
127223
  console.log(messages.io8());
127211
127224
  }
127212
127225
  } catch {
127213
127226
  console.log(messages.io8());
127214
127227
  console.log(webpack_lib_messages.Al(opts.outPath, browserLabel));
127228
+ const updateMessage = readUpdateMessageOnce();
127229
+ if (updateMessage) console.log(updateMessage);
127215
127230
  console.log(messages.io8());
127216
127231
  }
127217
127232
  markBannerPrinted();
127233
+ process.env.EXTENSION_CLI_BANNER_PRINTED = 'true';
127218
127234
  printedKeys.add(k);
127219
127235
  return true;
127220
127236
  }
@@ -127598,7 +127614,7 @@ var __webpack_modules__ = {
127598
127614
  return body.join('\n') + '\n';
127599
127615
  }
127600
127616
  function firefoxLaunchCalled() {
127601
- return `${getLoggingPrefix('info')} launchFirefox called!`;
127617
+ return `${getLoggingPrefix('info')} Firefox launch requested.`;
127602
127618
  }
127603
127619
  function firefoxBinaryArgsExtracted(args) {
127604
127620
  return `${getLoggingPrefix('info')} Firefox binary args extracted: ${pintor__rspack_import_0_default().gray(args)}`;
@@ -127640,7 +127656,7 @@ var __webpack_modules__ = {
127640
127656
  return `${getLoggingPrefix('info')} Waiting for Firefox to be ready with remote debugging...`;
127641
127657
  }
127642
127658
  function firefoxRemoteDebuggingReady() {
127643
- return `${getLoggingPrefix('success')} Firefox is ready with remote debugging!`;
127659
+ return `${getLoggingPrefix('success')} Firefox is ready with remote debugging.`;
127644
127660
  }
127645
127661
  function sourceInspectorFirefoxNotReadyYet(retries, maxRetries) {
127646
127662
  return `${getLoggingPrefix('warn')} Firefox not ready yet, retrying... (${pintor__rspack_import_0_default().gray(retries.toString())}/${pintor__rspack_import_0_default().gray(maxRetries.toString())})`;
@@ -127649,7 +127665,7 @@ var __webpack_modules__ = {
127649
127665
  return `${getLoggingPrefix('info')} Waiting for Chrome to be ready with remote debugging...`;
127650
127666
  }
127651
127667
  function chromeRemoteDebuggingReady() {
127652
- return `${getLoggingPrefix('success')} Chrome is ready with remote debugging!`;
127668
+ return `${getLoggingPrefix('success')} Chrome is ready with remote debugging.`;
127653
127669
  }
127654
127670
  function sourceInspectorChromeNotReadyYet(retries, maxRetries) {
127655
127671
  return `${getLoggingPrefix('warn')} Chrome not ready yet, retrying... (${pintor__rspack_import_0_default().gray(retries.toString())}/${pintor__rspack_import_0_default().gray(maxRetries.toString())})`;
@@ -127679,7 +127695,7 @@ var __webpack_modules__ = {
127679
127695
  return `${getLoggingPrefix('success')} Chrome is attached to the target with session ID: ${pintor__rspack_import_0_default().gray(sessionId)}`;
127680
127696
  }
127681
127697
  function sourceInspectorHTMLExtractionComplete() {
127682
- return `${getLoggingPrefix('success')} Chrome HTML extraction is complete`;
127698
+ return `${getLoggingPrefix('success')} Chrome HTML extraction is complete.`;
127683
127699
  }
127684
127700
  function sourceInspectorInspectionFailed(error) {
127685
127701
  return `${getLoggingPrefix('error')} Failed to inspect Chrome source: ${pintor__rspack_import_0_default().red(error)}`;
@@ -127736,7 +127752,7 @@ var __webpack_modules__ = {
127736
127752
  return `${getLoggingPrefix('error')} Failed to update Chrome HTML: ${pintor__rspack_import_0_default().red(error)}`;
127737
127753
  }
127738
127754
  function sourceInspectorCleanupComplete() {
127739
- return `${getLoggingPrefix('success')} Chrome source inspector cleaned up`;
127755
+ return `${getLoggingPrefix('success')} Chrome source inspector cleaned up.`;
127740
127756
  }
127741
127757
  function sourceInspectorCleanupError(error) {
127742
127758
  return `${getLoggingPrefix('error')} Error during Chrome cleanup: ${pintor__rspack_import_0_default().red(error)}`;
@@ -127843,7 +127859,13 @@ var __webpack_modules__ = {
127843
127859
  if ('true' === process.env.EXTENSION_AUTHOR_MODE) return `${getLoggingPrefix('error')} No management API info received from client for ${manifestName}. Investigate.`;
127844
127860
  }
127845
127861
  const { name = '', version: version1 = '' } = management;
127846
- const extensionVersion = require1('../../../package.json').version;
127862
+ const extensionVersion = process.env.EXTENSION_CLI_VERSION || (()=>{
127863
+ try {
127864
+ return require1('../../../package.json').version;
127865
+ } catch {
127866
+ return 'unknown';
127867
+ }
127868
+ })();
127847
127869
  let effectiveBrowserLine = browserVersionLine && browserVersionLine.trim().length > 0 ? browserVersionLine.trim() : '';
127848
127870
  if (!effectiveBrowserLine) try {
127849
127871
  if ('chromium' === browser || 'chromium-based' === browser) {
@@ -128804,7 +128826,7 @@ var __webpack_modules__ = {
128804
128826
  group: process.getgid?.()
128805
128827
  }
128806
128828
  });
128807
- this.logger.debug?.('[plugin-browsers] Final Chrome flags:', launchArgs.join(' '));
128829
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) this.logger.debug?.('[plugin-browsers] Final Chrome flags:', launchArgs.join(' '));
128808
128830
  child.on('close', (code)=>{
128809
128831
  if ('true' === process.env.EXTENSION_AUTHOR_MODE) this.logger.info(messages.nnm(code || 0));
128810
128832
  });
@@ -130563,8 +130585,9 @@ var __webpack_modules__ = {
130563
130585
  "./webpack/plugin-css/css-lib/integrations.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
130564
130586
  "use strict";
130565
130587
  __webpack_require__.d(__webpack_exports__, {
130566
- t: ()=>installOptionalDependencies,
130567
- w: ()=>hasDependency
130588
+ Dy: ()=>installOptionalDependenciesBatch,
130589
+ tm: ()=>installOptionalDependencies,
130590
+ ws: ()=>hasDependency
130568
130591
  });
130569
130592
  var path__rspack_import_0 = __webpack_require__("path");
130570
130593
  var fs__rspack_import_1 = __webpack_require__("fs");
@@ -130584,31 +130607,79 @@ var __webpack_modules__ = {
130584
130607
  if (process.env['npm_execpath']) return 'npm';
130585
130608
  return false;
130586
130609
  }
130610
+ function getPackageManagerFromEnv() {
130611
+ const ua = process.env.npm_config_user_agent;
130612
+ if (!ua) return;
130613
+ if (ua.includes('pnpm')) return 'pnpm';
130614
+ if (ua.includes('yarn')) return 'yarn';
130615
+ if (ua.includes('bun')) return 'bun';
130616
+ if (ua.includes('npm')) return 'npm';
130617
+ }
130618
+ async function resolvePackageManager() {
130619
+ const envPm = getPackageManagerFromEnv();
130620
+ if (envPm) return envPm;
130621
+ return (0, package_manager_detector__rspack_import_4.detect)();
130622
+ }
130623
+ function getOptionalInstallCommand(pm, dependencies) {
130624
+ const quotedDir = JSON.stringify(__dirname);
130625
+ const pmName = 'string' == typeof pm ? pm : pm?.name;
130626
+ if ('yarn' === pmName) return `yarn --silent add ${dependencies.join(' ')} --cwd ${quotedDir} --optional`;
130627
+ if ('npm' === pmName || isFromNpx()) return `npm --silent install ${dependencies.join(' ')} --prefix ${quotedDir} --save-optional`;
130628
+ if (isFromPnpx()) return `pnpm --silent add ${dependencies.join(' ')} --prefix ${quotedDir} --save-optional`;
130629
+ const fallback = pmName || 'npm';
130630
+ return `${fallback} --silent install ${dependencies.join(' ')} --cwd ${quotedDir} --optional`;
130631
+ }
130632
+ function getRootInstallCommand(pm) {
130633
+ const pmName = 'string' == typeof pm ? pm : pm?.name;
130634
+ if ('yarn' === pmName) return "yarn install --silent";
130635
+ if ('npm' === pmName || isFromNpx()) return "npm install --silent";
130636
+ if (isFromPnpx()) return "pnpm install --silent";
130637
+ return `${pmName || 'npm'} install --silent`;
130638
+ }
130639
+ function formatToolingLabel(integrations, fallback) {
130640
+ const list = integrations && integrations.length > 0 ? integrations.join('/') : fallback;
130641
+ return `Setting up ${list} tooling...`;
130642
+ }
130587
130643
  async function installOptionalDependencies(integration, dependencies) {
130644
+ if (!dependencies.length) return;
130588
130645
  try {
130589
- const pm = await (0, package_manager_detector__rspack_import_4.detect)();
130590
- let installCommand = '';
130591
- const quotedDir = JSON.stringify(__dirname);
130592
- if (pm?.name === 'yarn') installCommand = `yarn --silent add ${dependencies.join(' ')} --cwd ${quotedDir} --optional`;
130593
- else if (pm?.name === 'npm' || isFromNpx()) installCommand = `npm --silent install ${dependencies.join(' ')} --prefix ${quotedDir} --save-optional`;
130594
- else if (isFromPnpx()) installCommand = `pnpm --silent add ${dependencies.join(' ')} --prefix ${quotedDir} --save-optional`;
130595
- else {
130596
- const pmName = 'string' == typeof pm ? pm : pm?.name || 'npm';
130597
- installCommand = `${pmName} --silent install ${dependencies.join(' ')} --cwd ${quotedDir} --optional`;
130646
+ const pm = await resolvePackageManager();
130647
+ const installCommand = getOptionalInstallCommand(pm, dependencies);
130648
+ console.log(formatToolingLabel([
130649
+ integration
130650
+ ], integration));
130651
+ (0, child_process__rspack_import_2.execSync)(installCommand, {
130652
+ stdio: 'inherit'
130653
+ });
130654
+ await new Promise((r)=>setTimeout(r, 500));
130655
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) {
130656
+ console.log(`${pintor__rspack_import_3_default().brightMagenta('►►► Author says')} [${integration}] Installing root dependencies for dev...`);
130657
+ (0, child_process__rspack_import_2.execSync)(getRootInstallCommand(pm), {
130658
+ stdio: 'ignore'
130659
+ });
130660
+ console.log(`${pintor__rspack_import_3_default().brightMagenta('►►► Author says')} ${integration} tooling ready.`);
130598
130661
  }
130599
- console.log(`[${integration}] Installing optional dependencies...`);
130662
+ } catch (error) {
130663
+ console.error(`[${integration}] Failed to install dependencies.`, error);
130664
+ }
130665
+ }
130666
+ async function installOptionalDependenciesBatch(integration, dependencies, integrations) {
130667
+ if (!dependencies.length) return;
130668
+ try {
130669
+ const pm = await resolvePackageManager();
130670
+ const installCommand = getOptionalInstallCommand(pm, dependencies);
130671
+ console.log(formatToolingLabel(integrations, integration));
130600
130672
  (0, child_process__rspack_import_2.execSync)(installCommand, {
130601
130673
  stdio: 'inherit'
130602
130674
  });
130603
130675
  await new Promise((r)=>setTimeout(r, 500));
130604
130676
  if ('true' === process.env.EXTENSION_AUTHOR_MODE) {
130605
130677
  console.log(`${pintor__rspack_import_3_default().brightMagenta('►►► Author says')} [${integration}] Installing root dependencies for dev...`);
130606
- const devInstall = pm?.name === 'yarn' ? "yarn install --silent" : pm?.name === 'npm' || isFromNpx() ? "npm install --silent" : isFromPnpx() ? "pnpm install --silent" : `${'string' == typeof pm ? pm : pm?.name || 'npm'} install --silent`;
130607
- (0, child_process__rspack_import_2.execSync)(devInstall, {
130678
+ (0, child_process__rspack_import_2.execSync)(getRootInstallCommand(pm), {
130608
130679
  stdio: 'ignore'
130609
130680
  });
130681
+ console.log(`${pintor__rspack_import_3_default().brightMagenta('►►► Author says')} ${integration} tooling ready.`);
130610
130682
  }
130611
- console.log(`[${integration}] Dependencies installed successfully.`);
130612
130683
  } catch (error) {
130613
130684
  console.error(`[${integration}] Failed to install dependencies.`, error);
130614
130685
  }
@@ -130714,7 +130785,7 @@ var __webpack_modules__ = {
130714
130785
  var _css_lib_is_content_script__rspack_import_4 = __webpack_require__("./webpack/plugin-css/css-lib/is-content-script.ts");
130715
130786
  let userMessageDelivered = false;
130716
130787
  function isUsingLess(projectPath) {
130717
- if ((0, _css_lib_integrations__rspack_import_3.w)(projectPath, 'less')) {
130788
+ if ((0, _css_lib_integrations__rspack_import_3.ws)(projectPath, 'less')) {
130718
130789
  if (!userMessageDelivered) {
130719
130790
  if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(`${pintor__rspack_import_1_default().brightMagenta('►►► Author says')} ${_css_lib_messages__rspack_import_2.zA('LESS')}`);
130720
130791
  userMessageDelivered = true;
@@ -130733,7 +130804,7 @@ var __webpack_modules__ = {
130733
130804
  'less',
130734
130805
  'less-loader'
130735
130806
  ];
130736
- await (0, _css_lib_integrations__rspack_import_3.t)('LESS', lessDependencies);
130807
+ await (0, _css_lib_integrations__rspack_import_3.tm)('LESS', lessDependencies);
130737
130808
  console.log(_css_lib_messages__rspack_import_2.Jv('LESS'));
130738
130809
  process.exit(0);
130739
130810
  }
@@ -130808,7 +130879,7 @@ var __webpack_modules__ = {
130808
130879
  }
130809
130880
  }
130810
130881
  function isUsingPostCss(projectPath) {
130811
- if ((0, _css_lib_integrations__rspack_import_5.w)(projectPath, 'postcss')) {
130882
+ if ((0, _css_lib_integrations__rspack_import_5.ws)(projectPath, 'postcss')) {
130812
130883
  if (!userMessageDelivered) {
130813
130884
  if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(`${pintor__rspack_import_3_default().brightMagenta('►►► Author says')} ${_css_lib_messages__rspack_import_4.zA('PostCSS')}`);
130814
130885
  userMessageDelivered = true;
@@ -130858,7 +130929,7 @@ var __webpack_modules__ = {
130858
130929
  'postcss',
130859
130930
  'postcss-loader'
130860
130931
  ];
130861
- await (0, _css_lib_integrations__rspack_import_5.t)('PostCSS', postCssDependencies);
130932
+ await (0, _css_lib_integrations__rspack_import_5.tm)('PostCSS', postCssDependencies);
130862
130933
  }
130863
130934
  console.log(_css_lib_messages__rspack_import_4.Jv('PostCSS'));
130864
130935
  process.exit(0);
@@ -130930,7 +131001,7 @@ var __webpack_modules__ = {
130930
131001
  var _css_lib_integrations__rspack_import_4 = __webpack_require__("./webpack/plugin-css/css-lib/integrations.ts");
130931
131002
  let userMessageDelivered = false;
130932
131003
  function isUsingSass(projectPath) {
130933
- if ((0, _css_lib_integrations__rspack_import_4.w)(projectPath, 'sass')) {
131004
+ if ((0, _css_lib_integrations__rspack_import_4.ws)(projectPath, 'sass')) {
130934
131005
  if (!userMessageDelivered) {
130935
131006
  if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(`${pintor__rspack_import_2_default().brightMagenta('►►► Author says')} ${_css_lib_messages__rspack_import_3.zA('SASS')}`);
130936
131007
  userMessageDelivered = true;
@@ -130981,11 +131052,11 @@ var __webpack_modules__ = {
130981
131052
  'postcss-scss',
130982
131053
  'postcss-preset-env'
130983
131054
  ];
130984
- await (0, _css_lib_integrations__rspack_import_4.t)('PostCSS', postCssDependencies);
131055
+ await (0, _css_lib_integrations__rspack_import_4.tm)('PostCSS', postCssDependencies);
130985
131056
  const sassDependencies = [
130986
131057
  'sass-loader'
130987
131058
  ];
130988
- await (0, _css_lib_integrations__rspack_import_4.t)('SASS', sassDependencies);
131059
+ await (0, _css_lib_integrations__rspack_import_4.tm)('SASS', sassDependencies);
130989
131060
  console.log(_css_lib_messages__rspack_import_3.Jv('SASS'));
130990
131061
  process.exit(0);
130991
131062
  }
@@ -131026,7 +131097,7 @@ var __webpack_modules__ = {
131026
131097
  var _css_lib_integrations__rspack_import_4 = __webpack_require__("./webpack/plugin-css/css-lib/integrations.ts");
131027
131098
  let userMessageDelivered = false;
131028
131099
  function isUsingTailwind(projectPath) {
131029
- const isUsingTailwind = (0, _css_lib_integrations__rspack_import_4.w)(projectPath, 'tailwindcss') || (0, _css_lib_integrations__rspack_import_4.w)(projectPath, '@tailwindcss/postcss');
131100
+ const isUsingTailwind = (0, _css_lib_integrations__rspack_import_4.ws)(projectPath, 'tailwindcss') || (0, _css_lib_integrations__rspack_import_4.ws)(projectPath, '@tailwindcss/postcss');
131030
131101
  if (isUsingTailwind) {
131031
131102
  if (!userMessageDelivered) {
131032
131103
  if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(`${pintor__rspack_import_2_default().brightMagenta('►►► Author says')} ${_css_lib_messages__rspack_import_3.zA('Tailwind')}`);
@@ -131047,9 +131118,10 @@ var __webpack_modules__ = {
131047
131118
  "./webpack/plugin-js-frameworks/frameworks-lib/integrations.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
131048
131119
  "use strict";
131049
131120
  __webpack_require__.d(__webpack_exports__, {
131121
+ Dy: ()=>_plugin_css_css_lib_integrations__rspack_import_0.Dy,
131050
131122
  qQ: ()=>isUsingJSFramework,
131051
- tm: ()=>_plugin_css_css_lib_integrations__rspack_import_0.t,
131052
- ws: ()=>_plugin_css_css_lib_integrations__rspack_import_0.w
131123
+ tm: ()=>_plugin_css_css_lib_integrations__rspack_import_0.tm,
131124
+ ws: ()=>_plugin_css_css_lib_integrations__rspack_import_0.ws
131053
131125
  });
131054
131126
  var _plugin_css_css_lib_integrations__rspack_import_0 = __webpack_require__("./webpack/plugin-css/css-lib/integrations.ts");
131055
131127
  function isUsingJSFramework(projectPath) {
@@ -131061,7 +131133,7 @@ var __webpack_modules__ = {
131061
131133
  'solid-js',
131062
131134
  'preact'
131063
131135
  ];
131064
- return frameworks.some((fw)=>__webpack_require__("./webpack/plugin-css/css-lib/integrations.ts").w(projectPath, fw));
131136
+ return frameworks.some((fw)=>__webpack_require__("./webpack/plugin-css/css-lib/integrations.ts").ws(projectPath, fw));
131065
131137
  }
131066
131138
  },
131067
131139
  "./webpack/plugin-js-frameworks/js-frameworks-lib/load-loader-options.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
@@ -131114,6 +131186,7 @@ var __webpack_modules__ = {
131114
131186
  Jv: ()=>youAreAllSet,
131115
131187
  LR: ()=>creatingTSConfig,
131116
131188
  MH: ()=>jsFrameworksConfigsDetected,
131189
+ Q2: ()=>optionalDepsReady,
131117
131190
  Ty: ()=>isUsingCustomLoader,
131118
131191
  jH: ()=>jsFrameworksIntegrationsEnabled,
131119
131192
  zA: ()=>isUsingIntegration
@@ -131126,6 +131199,10 @@ var __webpack_modules__ = {
131126
131199
  function youAreAllSet(name) {
131127
131200
  return `${pintor__rspack_import_0_default().green('►►►')} ${name} installation completed. Run again to proceed.`;
131128
131201
  }
131202
+ function optionalDepsReady(integrations) {
131203
+ const list = integrations.length > 0 ? integrations.map((name)=>pintor__rspack_import_0_default().yellow(name)).join(', ') : pintor__rspack_import_0_default().gray('optional');
131204
+ return `${pintor__rspack_import_0_default().green('►►►')} All set — ${list} tooling is ready.`;
131205
+ }
131129
131206
  function creatingTSConfig() {
131130
131207
  return `${pintor__rspack_import_0_default().gray('►►►')} Creating default tsconfig.json...`;
131131
131208
  }
@@ -131294,7 +131371,8 @@ var __webpack_modules__ = {
131294
131371
  "./webpack/plugin-js-frameworks/js-tools/svelte.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
131295
131372
  "use strict";
131296
131373
  __webpack_require__.d(__webpack_exports__, {
131297
- X: ()=>maybeUseSvelte
131374
+ X: ()=>maybeUseSvelte,
131375
+ a: ()=>isUsingSvelte
131298
131376
  });
131299
131377
  var path__rspack_import_0 = __webpack_require__("path");
131300
131378
  var _js_frameworks_lib_messages__rspack_import_1 = __webpack_require__("./webpack/plugin-js-frameworks/js-frameworks-lib/messages.ts");
@@ -131434,8 +131512,7 @@ var __webpack_modules__ = {
131434
131512
  "use strict";
131435
131513
  __webpack_require__.d(__webpack_exports__, {
131436
131514
  eE: ()=>isUsingTypeScript,
131437
- hB: ()=>getUserTypeScriptConfigFile,
131438
- vv: ()=>maybeUseTypeScript
131515
+ hB: ()=>getUserTypeScriptConfigFile
131439
131516
  });
131440
131517
  var path__rspack_import_0 = __webpack_require__("path");
131441
131518
  var fs__rspack_import_1 = __webpack_require__("fs");
@@ -131548,31 +131625,19 @@ var __webpack_modules__ = {
131548
131625
  mode: 'development'
131549
131626
  }), null, 2));
131550
131627
  }
131551
- async function maybeUseTypeScript(projectPath) {
131552
- if (!isUsingTypeScript(projectPath)) return false;
131553
- try {
131554
- require.resolve("typescript");
131555
- } catch (e) {
131556
- const typescriptDependencies = [
131557
- "typescript"
131558
- ];
131559
- await (0, _frameworks_lib_integrations__rspack_import_4.tm)('TypeScript', typescriptDependencies);
131560
- console.log(_js_frameworks_lib_messages__rspack_import_3.Jv('TypeScript'));
131561
- process.exit(0);
131562
- }
131563
- return true;
131564
- }
131565
131628
  },
131566
131629
  "./webpack/plugin-js-frameworks/js-tools/vue.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
131567
131630
  "use strict";
131568
131631
  __webpack_require__.d(__webpack_exports__, {
131569
- K: ()=>maybeUseVue
131632
+ K: ()=>maybeUseVue,
131633
+ L: ()=>isUsingVue
131570
131634
  });
131571
- var pintor__rspack_import_0 = __webpack_require__("pintor");
131572
- var pintor__rspack_import_0_default = /*#__PURE__*/ __webpack_require__.n(pintor__rspack_import_0);
131573
- var _js_frameworks_lib_messages__rspack_import_1 = __webpack_require__("./webpack/plugin-js-frameworks/js-frameworks-lib/messages.ts");
131574
- var _frameworks_lib_integrations__rspack_import_2 = __webpack_require__("./webpack/plugin-js-frameworks/frameworks-lib/integrations.ts");
131575
- var _js_frameworks_lib_load_loader_options__rspack_import_3 = __webpack_require__("./webpack/plugin-js-frameworks/js-frameworks-lib/load-loader-options.ts");
131635
+ var _rspack_core__rspack_import_0 = __webpack_require__("@rspack/core");
131636
+ var pintor__rspack_import_1 = __webpack_require__("pintor");
131637
+ var pintor__rspack_import_1_default = /*#__PURE__*/ __webpack_require__.n(pintor__rspack_import_1);
131638
+ var _js_frameworks_lib_messages__rspack_import_2 = __webpack_require__("./webpack/plugin-js-frameworks/js-frameworks-lib/messages.ts");
131639
+ var _frameworks_lib_integrations__rspack_import_3 = __webpack_require__("./webpack/plugin-js-frameworks/frameworks-lib/integrations.ts");
131640
+ var _js_frameworks_lib_load_loader_options__rspack_import_4 = __webpack_require__("./webpack/plugin-js-frameworks/js-frameworks-lib/load-loader-options.ts");
131576
131641
  let userMessageDelivered = false;
131577
131642
  let cachedVueLoaderPlugin;
131578
131643
  function getVueLoaderPlugin() {
@@ -131587,14 +131652,14 @@ var __webpack_modules__ = {
131587
131652
  } catch {}
131588
131653
  }
131589
131654
  function isUsingVue(projectPath) {
131590
- const using = (0, _frameworks_lib_integrations__rspack_import_2.ws)(projectPath, 'vue');
131655
+ const using = (0, _frameworks_lib_integrations__rspack_import_3.ws)(projectPath, 'vue');
131591
131656
  if (using && !userMessageDelivered) {
131592
- if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(`${pintor__rspack_import_0_default().brightMagenta('►►► Author says')} ${_js_frameworks_lib_messages__rspack_import_1.zA('Vue')}`);
131657
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(`${pintor__rspack_import_1_default().brightMagenta('►►► Author says')} ${_js_frameworks_lib_messages__rspack_import_2.zA('Vue')}`);
131593
131658
  userMessageDelivered = true;
131594
131659
  }
131595
131660
  return using;
131596
131661
  }
131597
- async function maybeUseVue(projectPath) {
131662
+ async function maybeUseVue(projectPath, mode = 'development') {
131598
131663
  if (!isUsingVue(projectPath)) return;
131599
131664
  try {
131600
131665
  require.resolve('vue-loader');
@@ -131603,13 +131668,13 @@ var __webpack_modules__ = {
131603
131668
  'vue-loader',
131604
131669
  '@vue/compiler-sfc'
131605
131670
  ];
131606
- await (0, _frameworks_lib_integrations__rspack_import_2.tm)('Vue', vueDependencies);
131607
- console.log(_js_frameworks_lib_messages__rspack_import_1.Jv('Vue'));
131671
+ await (0, _frameworks_lib_integrations__rspack_import_3.tm)('Vue', vueDependencies);
131672
+ console.log(_js_frameworks_lib_messages__rspack_import_2.Jv('Vue'));
131608
131673
  process.exit(0);
131609
131674
  }
131610
131675
  const VueLoaderPlugin = getVueLoaderPlugin();
131611
131676
  if (!VueLoaderPlugin) throw new Error('[Vue] vue-loader is installed but VueLoaderPlugin could not be resolved.');
131612
- const customOptions = await (0, _js_frameworks_lib_load_loader_options__rspack_import_3.g)(projectPath, 'vue');
131677
+ const customOptions = await (0, _js_frameworks_lib_load_loader_options__rspack_import_4.g)(projectPath, 'vue');
131613
131678
  const defaultLoaders = [
131614
131679
  {
131615
131680
  test: /\.vue$/,
@@ -131622,8 +131687,14 @@ var __webpack_modules__ = {
131622
131687
  exclude: /node_modules/
131623
131688
  }
131624
131689
  ];
131690
+ const isProd = 'production' === mode;
131625
131691
  const defaultPlugins = [
131626
- new VueLoaderPlugin()
131692
+ new VueLoaderPlugin(),
131693
+ new _rspack_core__rspack_import_0.DefinePlugin({
131694
+ __VUE_OPTIONS_API__: JSON.stringify(true),
131695
+ __VUE_PROD_DEVTOOLS__: JSON.stringify(!isProd),
131696
+ __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: JSON.stringify(!isProd)
131697
+ })
131627
131698
  ];
131628
131699
  return {
131629
131700
  plugins: defaultPlugins,
@@ -132513,7 +132584,7 @@ var __webpack_modules__ = {
132513
132584
  },
132514
132585
  "./package.json" (module) {
132515
132586
  "use strict";
132516
- module.exports = JSON.parse('{"rE":"3.1.0-next.8","El":{"@rspack/core":"^1.7.2","@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","chokidar":"^5.0.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","firefox-location2":"3.0.0","go-git-it":"^5.0.3","ignore":"^7.0.5","loader-utils":"^3.3.1","magic-string":"^0.30.21","package-manager-detector":"^1.6.0","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"}}');
132587
+ module.exports = JSON.parse('{"rE":"3.1.1","El":{"@rspack/core":"^1.7.2","@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","chokidar":"^5.0.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","firefox-location2":"3.0.0","go-git-it":"^5.0.3","ignore":"^7.0.5","loader-utils":"^3.3.1","magic-string":"^0.30.21","package-manager-detector":"^1.6.0","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"}}');
132517
132588
  }
132518
132589
  };
132519
132590
  var __webpack_module_cache__ = {};
@@ -132590,8 +132661,20 @@ var __webpack_exports__ = {};
132590
132661
  extensionStart: ()=>extensionStart,
132591
132662
  ensureDependencies: ()=>ensureDependencies,
132592
132663
  extensionPreview: ()=>extensionPreview,
132593
- extensionBuild: ()=>extensionBuild
132664
+ extensionBuild: ()=>extensionBuild,
132665
+ preflightOptionalDependenciesForProject: ()=>preflightOptionalDependenciesForProject
132594
132666
  });
132667
+ function getBuildSummary(browser, info) {
132668
+ const assets = info?.assets || [];
132669
+ return {
132670
+ browser,
132671
+ total_assets: assets.length,
132672
+ total_bytes: assets.reduce((n, a)=>n + (a.size || 0), 0),
132673
+ largest_asset_bytes: assets.reduce((m, a)=>Math.max(m, a.size || 0), 0),
132674
+ warnings_count: (info?.warnings || []).length,
132675
+ errors_count: (info?.errors || []).length
132676
+ };
132677
+ }
132595
132678
  var external_path_ = __webpack_require__("path");
132596
132679
  var external_fs_ = __webpack_require__("fs");
132597
132680
  var messages = __webpack_require__("./webpack/webpack-lib/messages.ts");
@@ -132813,39 +132896,6 @@ var __webpack_exports__ = {};
132813
132896
  }
132814
132897
  }
132815
132898
  var paths = __webpack_require__("./webpack/webpack-lib/paths.ts");
132816
- function getBuildSummary(browser, info) {
132817
- const assets = info?.assets || [];
132818
- return {
132819
- browser,
132820
- total_assets: assets.length,
132821
- total_bytes: assets.reduce((n, a)=>n + (a.size || 0), 0),
132822
- largest_asset_bytes: assets.reduce((m, a)=>Math.max(m, a.size || 0), 0),
132823
- warnings_count: (info?.warnings || []).length,
132824
- errors_count: (info?.errors || []).length
132825
- };
132826
- }
132827
- var react = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/react.ts");
132828
- var preact = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/preact.ts");
132829
- var vue = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/vue.ts");
132830
- var svelte = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/svelte.ts");
132831
- var typescript = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/typescript.ts");
132832
- var sass = __webpack_require__("./webpack/plugin-css/css-tools/sass.ts");
132833
- var less = __webpack_require__("./webpack/plugin-css/css-tools/less.ts");
132834
- var postcss = __webpack_require__("./webpack/plugin-css/css-tools/postcss.ts");
132835
- async function preflightOptionalDependencies(projectStructure, mode) {
132836
- const { packageJsonDir } = (0, paths.fu)(projectStructure);
132837
- const projectPath = packageJsonDir;
132838
- await (0, typescript.vv)(projectPath);
132839
- await (0, react.b)(projectPath);
132840
- await (0, preact.b)(projectPath);
132841
- await (0, vue.K)(projectPath);
132842
- await (0, svelte.X)(projectPath, mode);
132843
- await (0, sass.IZ)(projectPath);
132844
- await (0, less.V)(projectPath, projectStructure.manifestPath);
132845
- await (0, postcss.t)(projectPath, {
132846
- mode
132847
- });
132848
- }
132849
132899
  function findExtensionDevelopRoot() {
132850
132900
  const webpackLibDir = __dirname;
132851
132901
  const webpackDir = external_path_.resolve(webpackLibDir, '..');
@@ -133021,6 +133071,230 @@ var __webpack_exports__ = {};
133021
133071
  installedUser: needsUserInstall
133022
133072
  };
133023
133073
  }
133074
+ var external_pintor_ = __webpack_require__("pintor");
133075
+ var external_pintor_default = /*#__PURE__*/ __webpack_require__.n(external_pintor_);
133076
+ var external_crypto_ = __webpack_require__("crypto");
133077
+ function getPreflightCacheDir(packageRoot) {
133078
+ return external_path_.join(packageRoot, '.cache', 'extensionjs', 'preflight');
133079
+ }
133080
+ function getProjectKey(projectPath) {
133081
+ return (0, external_crypto_.createHash)('sha1').update(external_path_.resolve(projectPath)).digest('hex');
133082
+ }
133083
+ function getCacheVersionPath(cacheDir) {
133084
+ return external_path_.join(cacheDir, 'version.json');
133085
+ }
133086
+ function getProjectDepsHash(projectPath) {
133087
+ try {
133088
+ const packageJsonPath = external_path_.join(projectPath, 'package.json');
133089
+ if (!external_fs_.existsSync(packageJsonPath)) return 'no-package-json';
133090
+ const raw = external_fs_.readFileSync(packageJsonPath, 'utf8');
133091
+ const parsed = JSON.parse(raw || '{}');
133092
+ const deps = parsed?.dependencies || {};
133093
+ const devDeps = parsed?.devDependencies || {};
133094
+ const normalize = (input)=>{
133095
+ const sortedKeys = Object.keys(input).sort();
133096
+ const normalized = {};
133097
+ for (const key of sortedKeys)normalized[key] = input[key];
133098
+ return normalized;
133099
+ };
133100
+ const stable = JSON.stringify({
133101
+ dependencies: normalize(deps),
133102
+ devDependencies: normalize(devDeps)
133103
+ });
133104
+ return (0, external_crypto_.createHash)('sha1').update(stable).digest('hex');
133105
+ } catch {
133106
+ return 'invalid-package-json';
133107
+ }
133108
+ }
133109
+ function ensureCacheVersion(cacheDir) {
133110
+ const versionPath = getCacheVersionPath(cacheDir);
133111
+ const expectedVersion = package_0.rE;
133112
+ try {
133113
+ if (!external_fs_.existsSync(versionPath)) return true;
133114
+ const raw = external_fs_.readFileSync(versionPath, 'utf8');
133115
+ const data = JSON.parse(raw || '{}');
133116
+ if (data?.version !== expectedVersion) {
133117
+ external_fs_.rmSync(cacheDir, {
133118
+ recursive: true,
133119
+ force: true
133120
+ });
133121
+ return false;
133122
+ }
133123
+ return true;
133124
+ } catch {
133125
+ try {
133126
+ external_fs_.rmSync(cacheDir, {
133127
+ recursive: true,
133128
+ force: true
133129
+ });
133130
+ } catch {}
133131
+ return false;
133132
+ }
133133
+ }
133134
+ function getPreflightMarkerPath(projectPath) {
133135
+ const packageRoot = findExtensionDevelopRoot();
133136
+ if (!packageRoot) return;
133137
+ const cacheDir = getPreflightCacheDir(packageRoot);
133138
+ return external_path_.join(cacheDir, `${getProjectKey(projectPath)}.json`);
133139
+ }
133140
+ function hasPreflightMarker(projectPath) {
133141
+ const marker = getPreflightMarkerPath(projectPath);
133142
+ if (!marker) return false;
133143
+ const cacheDir = external_path_.dirname(marker);
133144
+ if (!ensureCacheVersion(cacheDir)) return false;
133145
+ if (!external_fs_.existsSync(marker)) return false;
133146
+ try {
133147
+ const raw = external_fs_.readFileSync(marker, 'utf8');
133148
+ const data = JSON.parse(raw || '{}');
133149
+ const depsHash = getProjectDepsHash(projectPath);
133150
+ if (data?.depsHash !== depsHash) {
133151
+ external_fs_.rmSync(marker, {
133152
+ force: true
133153
+ });
133154
+ return false;
133155
+ }
133156
+ return true;
133157
+ } catch {
133158
+ try {
133159
+ external_fs_.rmSync(marker, {
133160
+ force: true
133161
+ });
133162
+ } catch {}
133163
+ return false;
133164
+ }
133165
+ }
133166
+ function writePreflightMarker(projectPath) {
133167
+ const marker = getPreflightMarkerPath(projectPath);
133168
+ if (!marker) return;
133169
+ const cacheDir = external_path_.dirname(marker);
133170
+ try {
133171
+ external_fs_.mkdirSync(cacheDir, {
133172
+ recursive: true
133173
+ });
133174
+ external_fs_.writeFileSync(getCacheVersionPath(cacheDir), JSON.stringify({
133175
+ version: package_0.rE
133176
+ }));
133177
+ external_fs_.writeFileSync(marker, JSON.stringify({
133178
+ projectPath: external_path_.resolve(projectPath),
133179
+ depsHash: getProjectDepsHash(projectPath),
133180
+ version: package_0.rE,
133181
+ ts: Date.now()
133182
+ }));
133183
+ } catch {}
133184
+ }
133185
+ var react = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/react.ts");
133186
+ var preact = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/preact.ts");
133187
+ var vue = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/vue.ts");
133188
+ var svelte = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/svelte.ts");
133189
+ var typescript = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/typescript.ts");
133190
+ var integrations = __webpack_require__("./webpack/plugin-js-frameworks/frameworks-lib/integrations.ts");
133191
+ var sass = __webpack_require__("./webpack/plugin-css/css-tools/sass.ts");
133192
+ var less = __webpack_require__("./webpack/plugin-css/css-tools/less.ts");
133193
+ var postcss = __webpack_require__("./webpack/plugin-css/css-tools/postcss.ts");
133194
+ var js_frameworks_lib_messages = __webpack_require__("./webpack/plugin-js-frameworks/js-frameworks-lib/messages.ts");
133195
+ function canResolveFromProject(id, projectPath) {
133196
+ try {
133197
+ return require.resolve(id, {
133198
+ paths: [
133199
+ projectPath,
133200
+ process.cwd()
133201
+ ]
133202
+ });
133203
+ } catch {
133204
+ return;
133205
+ }
133206
+ }
133207
+ function canResolve(id) {
133208
+ try {
133209
+ return require.resolve(id);
133210
+ } catch {
133211
+ return;
133212
+ }
133213
+ }
133214
+ async function preflightOptionalDependencies(projectStructure, mode, opts) {
133215
+ const { packageJsonDir } = (0, paths.fu)(projectStructure);
133216
+ const projectPath = packageJsonDir;
133217
+ if (hasPreflightMarker(projectPath)) {
133218
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(`${external_pintor_default().brightMagenta('►►► Author says')} Optional deps preflight skipped (cache hit).`);
133219
+ return;
133220
+ }
133221
+ const missingOptionalDeps = new Set();
133222
+ const usedIntegrations = [];
133223
+ const usesTypeScript = (0, typescript.eE)(projectPath);
133224
+ const usesReact = (0, react.S)(projectPath);
133225
+ const usesPreact = (0, preact.K)(projectPath);
133226
+ const usesVue = (0, vue.L)(projectPath);
133227
+ const usesSvelte = (0, svelte.a)(projectPath);
133228
+ const usesSass = (0, sass.fZ)(projectPath);
133229
+ const usesLess = (0, less.K)(projectPath);
133230
+ const usesPostCss = (0, postcss.A)(projectPath);
133231
+ if (usesTypeScript && !canResolveFromProject("typescript", projectPath)) {
133232
+ missingOptionalDeps.add("typescript");
133233
+ usedIntegrations.push('TypeScript');
133234
+ }
133235
+ if (usesReact) {
133236
+ if (!canResolve('react-refresh')) missingOptionalDeps.add('react-refresh');
133237
+ if (!canResolve('@rspack/plugin-react-refresh')) missingOptionalDeps.add('@rspack/plugin-react-refresh');
133238
+ usedIntegrations.push('React');
133239
+ }
133240
+ if (usesPreact) {
133241
+ if (!canResolve('@prefresh/core')) missingOptionalDeps.add('@prefresh/core');
133242
+ if (!canResolve('@prefresh/utils')) missingOptionalDeps.add('@prefresh/utils');
133243
+ if (!canResolve('@rspack/plugin-preact-refresh')) missingOptionalDeps.add('@rspack/plugin-preact-refresh');
133244
+ if (!canResolve('preact')) missingOptionalDeps.add('preact');
133245
+ usedIntegrations.push('Preact');
133246
+ }
133247
+ if (usesVue) {
133248
+ if (!canResolve('vue-loader')) missingOptionalDeps.add('vue-loader');
133249
+ if (!canResolve('@vue/compiler-sfc')) missingOptionalDeps.add('@vue/compiler-sfc');
133250
+ usedIntegrations.push('Vue');
133251
+ }
133252
+ if (usesSvelte) {
133253
+ if (!canResolveFromProject('svelte-loader', projectPath) && !canResolve('svelte-loader')) missingOptionalDeps.add('svelte-loader');
133254
+ if (!canResolveFromProject("typescript", projectPath)) missingOptionalDeps.add("typescript");
133255
+ usedIntegrations.push('Svelte');
133256
+ }
133257
+ if (usesSass && !canResolve('sass-loader')) {
133258
+ const postCssDeps = [
133259
+ 'postcss-loader',
133260
+ 'postcss-scss',
133261
+ 'postcss-preset-env'
133262
+ ];
133263
+ for (const dep of postCssDeps)if (!canResolve(dep)) missingOptionalDeps.add(dep);
133264
+ missingOptionalDeps.add('sass-loader');
133265
+ usedIntegrations.push('Sass');
133266
+ }
133267
+ if (usesLess && !canResolve('less-loader')) {
133268
+ if (!canResolve('less')) missingOptionalDeps.add('less');
133269
+ missingOptionalDeps.add('less-loader');
133270
+ usedIntegrations.push('Less');
133271
+ }
133272
+ if (usesPostCss && !canResolve('postcss-loader') && !usesSass && !usesLess) {
133273
+ if (!canResolve('postcss')) missingOptionalDeps.add('postcss');
133274
+ missingOptionalDeps.add('postcss-loader');
133275
+ usedIntegrations.push('PostCSS');
133276
+ }
133277
+ if (missingOptionalDeps.size > 0) {
133278
+ const uniqueIntegrations = Array.from(new Set(usedIntegrations));
133279
+ await (0, integrations.Dy)('Optional', Array.from(missingOptionalDeps), uniqueIntegrations);
133280
+ if (opts?.showRunAgainMessage !== false) console.log(js_frameworks_lib_messages.Q2(uniqueIntegrations));
133281
+ if (opts?.exitOnInstall !== false) process.exit(0);
133282
+ }
133283
+ writePreflightMarker(projectPath);
133284
+ }
133285
+ function shouldRunOptionalPreflight(projectStructure) {
133286
+ const { packageJsonDir } = (0, paths.fu)(projectStructure);
133287
+ const projectPath = packageJsonDir;
133288
+ return !hasPreflightMarker(projectPath);
133289
+ }
133290
+ async function ensureProjectReady(projectStructure, mode, opts) {
133291
+ const { packageJsonDir } = (0, paths.fu)(projectStructure);
133292
+ const result = await ensureDependencies(packageJsonDir, opts);
133293
+ if (shouldRunOptionalPreflight(projectStructure)) await preflightOptionalDependencies(projectStructure, mode, {
133294
+ exitOnInstall: opts?.exitOnInstall
133295
+ });
133296
+ return result;
133297
+ }
133024
133298
  async function extensionBuild(pathOrRemoteUrl, buildOptions) {
133025
133299
  const projectStructure = await getProjectStructure(pathOrRemoteUrl);
133026
133300
  const isVitest = 'true' === process.env.VITEST;
@@ -133028,7 +133302,7 @@ var __webpack_exports__ = {};
133028
133302
  const browser = (0, paths.YN)(buildOptions?.browser || 'chrome', buildOptions?.chromiumBinary, buildOptions?.geckoBinary || buildOptions?.firefoxBinary);
133029
133303
  const { manifestDir, packageJsonDir } = (0, paths.fu)(projectStructure);
133030
133304
  try {
133031
- const depsResult = await ensureDependencies(packageJsonDir, {
133305
+ const depsResult = await ensureProjectReady(projectStructure, 'production', {
133032
133306
  skipProjectInstall: isVitest || !projectStructure.packageJsonPath,
133033
133307
  exitOnInstall: true
133034
133308
  });
@@ -133040,7 +133314,6 @@ var __webpack_exports__ = {};
133040
133314
  warnings_count: 0,
133041
133315
  errors_count: 0
133042
133316
  };
133043
- await preflightOptionalDependencies(projectStructure, 'production');
133044
133317
  const [{ rspack }, { merge }, { handleStatsErrors }, { default: webpackConfig }] = await Promise.all([
133045
133318
  import("@rspack/core"),
133046
133319
  import("webpack-merge"),
@@ -133150,12 +133423,11 @@ var __webpack_exports__ = {};
133150
133423
  try {
133151
133424
  const debug = 'true' === process.env.EXTENSION_AUTHOR_MODE;
133152
133425
  const { manifestDir, packageJsonDir } = (0, paths.fu)(projectStructure);
133153
- const depsResult = await ensureDependencies(packageJsonDir, {
133426
+ const depsResult = await ensureProjectReady(projectStructure, 'development', {
133154
133427
  skipProjectInstall: !projectStructure.packageJsonPath,
133155
133428
  exitOnInstall: true
133156
133429
  });
133157
133430
  if (depsResult.installed) return;
133158
- await preflightOptionalDependencies(projectStructure, 'development');
133159
133431
  if ((0, typescript.eE)(manifestDir)) await generateExtensionTypes(manifestDir, packageJsonDir);
133160
133432
  if (projectStructure.packageJsonPath) assertNoManagedDependencyConflicts(projectStructure.packageJsonPath, manifestDir);
133161
133433
  const browser = (0, paths.YN)(devOptions.browser || 'chrome', devOptions.chromiumBinary, devOptions.geckoBinary || devOptions.firefoxBinary);
@@ -133192,6 +133464,15 @@ var __webpack_exports__ = {};
133192
133464
  var firefox_launch = __webpack_require__("./webpack/plugin-browsers/run-firefox/firefox-launch/index.ts");
133193
133465
  async function runOnlyPreviewBrowser(opts) {
133194
133466
  const sourceEnabled = false;
133467
+ let exitScheduled = false;
133468
+ const scheduleExitOnSignal = ()=>{
133469
+ if (exitScheduled) return;
133470
+ exitScheduled = true;
133471
+ setTimeout(()=>process.exit(0), 10);
133472
+ };
133473
+ process.once('SIGINT', scheduleExitOnSignal);
133474
+ process.once('SIGTERM', scheduleExitOnSignal);
133475
+ process.once('SIGHUP', scheduleExitOnSignal);
133195
133476
  const compilationLike = {
133196
133477
  options: {
133197
133478
  mode: 'production',
@@ -133312,6 +133593,11 @@ var __webpack_exports__ = {};
133312
133593
  const projectStructure = await getProjectStructure(pathOrRemoteUrl);
133313
133594
  try {
133314
133595
  const debug = 'true' === process.env.EXTENSION_AUTHOR_MODE;
133596
+ const depsResult = await ensureProjectReady(projectStructure, 'development', {
133597
+ skipProjectInstall: !projectStructure.packageJsonPath,
133598
+ exitOnInstall: true
133599
+ });
133600
+ if (depsResult.installed) return;
133315
133601
  const browser = (0, paths.YN)(startOptions.browser || 'chrome', startOptions.chromiumBinary, startOptions.geckoBinary || startOptions.firefoxBinary);
133316
133602
  const { manifestDir, packageJsonDir } = (0, paths.fu)(projectStructure);
133317
133603
  const commandConfig = await (0, config_loader.eY)(packageJsonDir, 'start');
@@ -133342,18 +133628,27 @@ var __webpack_exports__ = {};
133342
133628
  process.exit(1);
133343
133629
  }
133344
133630
  }
133631
+ async function preflightOptionalDependenciesForProject(pathOrRemoteUrl, mode = 'development') {
133632
+ const projectStructure = await getProjectStructure(pathOrRemoteUrl);
133633
+ await preflightOptionalDependencies(projectStructure, mode, {
133634
+ exitOnInstall: false,
133635
+ showRunAgainMessage: false
133636
+ });
133637
+ }
133345
133638
  })();
133346
133639
  exports.ensureDependencies = __webpack_exports__.ensureDependencies;
133347
133640
  exports.extensionBuild = __webpack_exports__.extensionBuild;
133348
133641
  exports.extensionDev = __webpack_exports__.extensionDev;
133349
133642
  exports.extensionPreview = __webpack_exports__.extensionPreview;
133350
133643
  exports.extensionStart = __webpack_exports__.extensionStart;
133644
+ exports.preflightOptionalDependenciesForProject = __webpack_exports__.preflightOptionalDependenciesForProject;
133351
133645
  for(var __rspack_i in __webpack_exports__)if (-1 === [
133352
133646
  "ensureDependencies",
133353
133647
  "extensionBuild",
133354
133648
  "extensionDev",
133355
133649
  "extensionPreview",
133356
- "extensionStart"
133650
+ "extensionStart",
133651
+ "preflightOptionalDependenciesForProject"
133357
133652
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
133358
133653
  Object.defineProperty(exports, '__esModule', {
133359
133654
  value: true