extension-develop 3.11.1 → 3.12.0

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/dist/module.cjs CHANGED
@@ -127153,18 +127153,18 @@ var __webpack_modules__ = {
127153
127153
  function getLoggingPrefix(type) {
127154
127154
  const isAuthor = 'true' === process.env.EXTENSION_AUTHOR_MODE;
127155
127155
  if (isAuthor) {
127156
- const base = 'error' === type ? 'ERROR Author says' : '►►► Author says';
127156
+ const base = 'error' === type ? 'ERROR Author says' : '⏵⏵⏵ Author says';
127157
127157
  return pintor__rspack_import_1_default().brightMagenta(base);
127158
127158
  }
127159
127159
  if ('error' === type) return pintor__rspack_import_1_default().red('ERROR');
127160
- if ('warn' === type) return pintor__rspack_import_1_default().brightYellow('►►►');
127161
- if ('info' === type) return pintor__rspack_import_1_default().gray('►►►');
127162
- return pintor__rspack_import_1_default().green('►►►');
127160
+ if ('warn' === type) return pintor__rspack_import_1_default().brightYellow('⏵⏵⏵');
127161
+ if ('info' === type) return pintor__rspack_import_1_default().gray('⏵⏵⏵');
127162
+ return pintor__rspack_import_1_default().green('⏵⏵⏵');
127163
127163
  }
127164
127164
  function ready(mode, browser) {
127165
- const extensionOutput = 'firefox' === browser || 'gecko-based' === browser || 'edge' === browser ? 'Add-on' : 'Extension';
127166
- const b = String(browser || '');
127167
- const cap = b.charAt(0).toUpperCase() + b.slice(1);
127165
+ const key = String(browser || '').toLowerCase();
127166
+ const extensionOutput = 'firefox' === key || 'gecko-based' === key || 'firefox-based' === key || 'edge' === key ? 'Add-on' : 'Extension';
127167
+ const cap = 'firefox' === key || 'gecko-based' === key || 'firefox-based' === key ? 'Firefox' : String(browser || '').charAt(0).toUpperCase() + String(browser || '').slice(1);
127168
127168
  const pretty = pintor__rspack_import_1_default().green('ready for ' + mode);
127169
127169
  return `${getLoggingPrefix('info')} ${cap} ${extensionOutput} ${pretty}.`;
127170
127170
  }
@@ -128226,13 +128226,13 @@ var __webpack_modules__ = {
128226
128226
  function getLoggingPrefix(type) {
128227
128227
  const isAuthor = 'true' === process.env.EXTENSION_AUTHOR_MODE;
128228
128228
  if (isAuthor) {
128229
- const base = 'error' === type ? 'ERROR Author says' : '►►► Author says';
128229
+ const base = 'error' === type ? 'ERROR Author says' : '⏵⏵⏵ Author says';
128230
128230
  return pintor__rspack_import_4_default().brightMagenta(base);
128231
128231
  }
128232
128232
  if ('error' === type) return pintor__rspack_import_4_default().red('ERROR');
128233
- if ('warn' === type) return pintor__rspack_import_4_default().brightYellow('►►►');
128234
- if ('info' === type) return pintor__rspack_import_4_default().gray('►►►');
128235
- return pintor__rspack_import_4_default().green('►►►');
128233
+ if ('warn' === type) return pintor__rspack_import_4_default().brightYellow('⏵⏵⏵');
128234
+ if ('info' === type) return pintor__rspack_import_4_default().gray('⏵⏵⏵');
128235
+ return pintor__rspack_import_4_default().green('⏵⏵⏵');
128236
128236
  }
128237
128237
  function errorDetail(error) {
128238
128238
  if ('1' === process.env.EXTENSION_DEBUG) return String(error);
@@ -131202,6 +131202,12 @@ var __webpack_modules__ = {
131202
131202
  this.ctx.didLaunch = true;
131203
131203
  }
131204
131204
  apply(compiler) {
131205
+ this.ctx.logger = 'function' == typeof compiler?.getInfrastructureLogger ? compiler.getInfrastructureLogger('FirefoxLaunchPlugin') : {
131206
+ info: (...a)=>console.log(...a),
131207
+ warn: (...a)=>console.warn(...a),
131208
+ error: (...a)=>console.error(...a),
131209
+ debug: (...a)=>console?.debug?.(...a)
131210
+ };
131205
131211
  compiler.hooks.done.tapAsync('run-firefox:launch', async (stats, done)=>{
131206
131212
  try {
131207
131213
  const hasErrors = 'function' == typeof stats?.hasErrors ? stats.hasErrors() : !!stats?.compilation?.errors?.length;
@@ -131212,8 +131218,8 @@ var __webpack_modules__ = {
131212
131218
  }
131213
131219
  if (this.ctx.didLaunch) return void done();
131214
131220
  await this.launch(stats.compilation, (0, runtime_options.zU)(this.host, stats.compilation.options.mode));
131215
- this.ctx.logger?.info?.(messages.ACl(this.host.browser, stats.compilation.options.mode));
131216
- this.ctx.logger?.info?.(dev_server_messages.Gc(stats.compilation.options.mode, this.host.browser));
131221
+ console.log(messages.ACl(this.host.browser, stats.compilation.options.mode));
131222
+ console.log(dev_server_messages.Gc(stats.compilation.options.mode, this.host.browser));
131217
131223
  this.ctx.didLaunch = true;
131218
131224
  } catch (error) {
131219
131225
  this.ctx.logger?.error?.(messages.MQS(error));
@@ -131819,7 +131825,7 @@ var __webpack_modules__ = {
131819
131825
  const context = event.context;
131820
131826
  const text = event.messageParts[0];
131821
131827
  const url = event.url;
131822
- const arrow = 'error' === level ? color ? colorFns.red('►►►') : '►►►' : 'warn' === level ? color ? colorFns.yellow('►►►') : '►►►' : 'log' === level ? color ? colorFns.gray('►►►') : '►►►' : color ? colorFns.blue('►►►') : '►►►';
131828
+ const arrow = 'error' === level ? color ? colorFns.red('⏵⏵⏵') : '⏵⏵⏵' : 'warn' === level ? color ? colorFns.yellow('⏵⏵⏵') : '⏵⏵⏵' : 'log' === level ? color ? colorFns.gray('⏵⏵⏵') : '⏵⏵⏵' : color ? colorFns.blue('⏵⏵⏵') : '⏵⏵⏵';
131823
131829
  const where = url ? ` ${url}` : '';
131824
131830
  console.log(`${arrow} ${ts}${context}${where} - ${text}`);
131825
131831
  }
@@ -132216,7 +132222,8 @@ var __webpack_modules__ = {
132216
132222
  });
132217
132223
  }
132218
132224
  async function navigateViaScript(transport, consoleActor, url) {
132219
- await requestEvaluation(transport, consoleActor, `(() => { window.location.assign(${JSON.stringify(url)}); return true; })()`);
132225
+ const encoded = Buffer.from(new URL(url).href).toString('base64');
132226
+ await requestEvaluation(transport, consoleActor, `(() => { window.location.assign(atob("${encoded}")); return true; })()`);
132220
132227
  }
132221
132228
  async function waitForPageReady(transport, consoleActor, url, timeoutMs = 8000) {
132222
132229
  const start = Date.now();
@@ -132754,17 +132761,17 @@ var __webpack_modules__ = {
132754
132761
  var pintor__rspack_import_0_default = /*#__PURE__*/ __webpack_require__.n(pintor__rspack_import_0);
132755
132762
  function cssIntegrationsEnabled(integrations) {
132756
132763
  const list = integrations.length > 0 ? integrations.map((n)=>pintor__rspack_import_0_default().yellow(n)).join(', ') : pintor__rspack_import_0_default().gray('none');
132757
- return `${pintor__rspack_import_0_default().gray('►►►')} CSS: Integrations enabled (${pintor__rspack_import_0_default().gray(String(integrations.length))}) ${list}`;
132764
+ return `${pintor__rspack_import_0_default().gray('⏵⏵⏵')} CSS: Integrations enabled (${pintor__rspack_import_0_default().gray(String(integrations.length))}) ${list}`;
132758
132765
  }
132759
132766
  function cssConfigsDetected(postcssConfig, stylelintConfig, tailwindConfig, browserslistSource) {
132760
132767
  const fmt = (v)=>v ? pintor__rspack_import_0_default().underline(v) : pintor__rspack_import_0_default().gray('none');
132761
- return `${pintor__rspack_import_0_default().gray('►►►')} CSS: Configs\n${pintor__rspack_import_0_default().gray('POSTCSS')} ${fmt(postcssConfig)}\n${pintor__rspack_import_0_default().gray('STYLELINT')} ${fmt(stylelintConfig)}\n${pintor__rspack_import_0_default().gray('TAILWIND')} ${fmt(tailwindConfig)}\n${pintor__rspack_import_0_default().gray('BROWSERSLIST')} ${fmt(browserslistSource)}`;
132768
+ return `${pintor__rspack_import_0_default().gray('⏵⏵⏵')} CSS: Configs\n${pintor__rspack_import_0_default().gray('POSTCSS')} ${fmt(postcssConfig)}\n${pintor__rspack_import_0_default().gray('STYLELINT')} ${fmt(stylelintConfig)}\n${pintor__rspack_import_0_default().gray('TAILWIND')} ${fmt(tailwindConfig)}\n${pintor__rspack_import_0_default().gray('BROWSERSLIST')} ${fmt(browserslistSource)}`;
132762
132769
  }
132763
132770
  function isUsingIntegration(name) {
132764
- return `${pintor__rspack_import_0_default().gray('►►►')} Using ${pintor__rspack_import_0_default().brightBlue(name)}...`;
132771
+ return `${pintor__rspack_import_0_default().gray('⏵⏵⏵')} Using ${pintor__rspack_import_0_default().brightBlue(name)}...`;
132765
132772
  }
132766
132773
  function missingSassDependency() {
132767
- const prefix = pintor__rspack_import_0_default().red('►►►');
132774
+ const prefix = pintor__rspack_import_0_default().red('⏵⏵⏵');
132768
132775
  return [
132769
132776
  `${prefix} SASS support requires the ${pintor__rspack_import_0_default().brightBlue('"sass"')} package to be installed in your project.`,
132770
132777
  '',
@@ -132791,14 +132798,14 @@ var __webpack_modules__ = {
132791
132798
  var pintor__rspack_import_1 = __webpack_require__("pintor");
132792
132799
  var pintor__rspack_import_1_default = /*#__PURE__*/ __webpack_require__.n(pintor__rspack_import_1);
132793
132800
  var _css_lib_messages__rspack_import_2 = __webpack_require__("./webpack/plugin-css/css-lib/messages.ts");
132794
- var isolated_deps__rspack_import_3 = __webpack_require__("isolated-deps");
132801
+ var _webpack_lib_has_dependency__rspack_import_3 = __webpack_require__("./webpack/webpack-lib/has-dependency.ts");
132795
132802
  var _css_lib_is_content_script__rspack_import_4 = __webpack_require__("./webpack/plugin-css/css-lib/is-content-script.ts");
132796
132803
  var _webpack_lib_optional_deps_resolver__rspack_import_5 = __webpack_require__("./webpack/webpack-lib/optional-deps-resolver.ts");
132797
132804
  let userMessageDelivered = false;
132798
132805
  function isUsingLess(projectPath) {
132799
- if ((0, isolated_deps__rspack_import_3.hasDependency)(projectPath, 'less')) {
132806
+ if ((0, _webpack_lib_has_dependency__rspack_import_3.w)(projectPath, 'less')) {
132800
132807
  if (!userMessageDelivered) {
132801
- 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')}`);
132808
+ 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')}`);
132802
132809
  userMessageDelivered = true;
132803
132810
  }
132804
132811
  return true;
@@ -132861,7 +132868,7 @@ var __webpack_modules__ = {
132861
132868
  var pintor__rspack_import_3 = __webpack_require__("pintor");
132862
132869
  var pintor__rspack_import_3_default = /*#__PURE__*/ __webpack_require__.n(pintor__rspack_import_3);
132863
132870
  var _css_lib_messages__rspack_import_4 = __webpack_require__("./webpack/plugin-css/css-lib/messages.ts");
132864
- var isolated_deps__rspack_import_5 = __webpack_require__("isolated-deps");
132871
+ var _webpack_lib_has_dependency__rspack_import_5 = __webpack_require__("./webpack/webpack-lib/has-dependency.ts");
132865
132872
  var _tailwind__rspack_import_6 = __webpack_require__("./webpack/plugin-css/css-tools/tailwind.ts");
132866
132873
  var _webpack_lib_optional_deps_resolver__rspack_import_7 = __webpack_require__("./webpack/webpack-lib/optional-deps-resolver.ts");
132867
132874
  let userMessageDelivered = false;
@@ -133010,23 +133017,23 @@ var __webpack_modules__ = {
133010
133017
  }
133011
133018
  }
133012
133019
  function isUsingPostCss(projectPath) {
133013
- if ((0, isolated_deps__rspack_import_5.hasDependency)(projectPath, 'postcss')) {
133020
+ if ((0, _webpack_lib_has_dependency__rspack_import_5.w)(projectPath, 'postcss')) {
133014
133021
  if (!userMessageDelivered) {
133015
- 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')}`);
133022
+ 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')}`);
133016
133023
  userMessageDelivered = true;
133017
133024
  }
133018
133025
  return true;
133019
133026
  }
133020
133027
  if (findPostCssConfig(projectPath)) {
133021
133028
  if (!userMessageDelivered) {
133022
- 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')}`);
133029
+ 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')}`);
133023
133030
  userMessageDelivered = true;
133024
133031
  }
133025
133032
  return true;
133026
133033
  }
133027
133034
  if ((0, _tailwind__rspack_import_6.F)(projectPath)) {
133028
133035
  if (!userMessageDelivered) {
133029
- 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')}`);
133036
+ 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')}`);
133030
133037
  userMessageDelivered = true;
133031
133038
  }
133032
133039
  return true;
@@ -133144,7 +133151,7 @@ var __webpack_modules__ = {
133144
133151
  } catch {}
133145
133152
  const bypassUserConfigForTailwindCompat = !!pluginsFromOptions && !!userPostCssConfig && userConfigMentionsTailwind && userConfigUsesDirectTailwindReference;
133146
133153
  if (userConfigIsCjsInEsm || bypassUserConfigForTailwindCompat) try {
133147
- if ((0, isolated_deps__rspack_import_5.hasDependency)(projectPath, 'autoprefixer')) {
133154
+ if ((0, _webpack_lib_has_dependency__rspack_import_5.w)(projectPath, 'autoprefixer')) {
133148
133155
  const req = (0, module__rspack_import_2.createRequire)(path__rspack_import_0.join(projectPath, 'package.json'));
133149
133156
  const autoprefixerMod = req('autoprefixer');
133150
133157
  const autoprefixerPlugin = 'function' == typeof autoprefixerMod ? autoprefixerMod() : autoprefixerMod?.default && 'function' == typeof autoprefixerMod.default ? autoprefixerMod.default() : void 0;
@@ -133161,9 +133168,9 @@ var __webpack_modules__ = {
133161
133168
  };
133162
133169
  if (pluginsFromOptions) postcssOptions.plugins = pluginsFromOptions;
133163
133170
  if ('true' === process.env.EXTENSION_AUTHOR_MODE) try {
133164
- console.log(`${pintor__rspack_import_3_default().brightMagenta('►►► Author says')} [extension.js:postcss] projectPath=%s userPostCssConfig=%s pkgHasPostCss=%s tailwindPresent=%s`, projectPath, userPostCssConfig || 'none', pkgHasPostCss, tailwindPresent);
133171
+ console.log(`${pintor__rspack_import_3_default().brightMagenta('⏵⏵⏵ Author says')} [extension.js:postcss] projectPath=%s userPostCssConfig=%s pkgHasPostCss=%s tailwindPresent=%s`, projectPath, userPostCssConfig || 'none', pkgHasPostCss, tailwindPresent);
133165
133172
  const resolvedPluginsCount = Array.isArray(postcssOptions.plugins) ? postcssOptions.plugins.length : 0;
133166
- console.log(`${pintor__rspack_import_3_default().brightMagenta('►►► Author says')} [extension.js:postcss] resolvedPlugins=%d config=%s cwd=%s`, resolvedPluginsCount, String(postcssOptions.config), String(postcssOptions.cwd));
133173
+ console.log(`${pintor__rspack_import_3_default().brightMagenta('⏵⏵⏵ Author says')} [extension.js:postcss] resolvedPlugins=%d config=%s cwd=%s`, resolvedPluginsCount, String(postcssOptions.config), String(postcssOptions.cwd));
133167
133174
  } catch {}
133168
133175
  return {
133169
133176
  test: /\.css$/,
@@ -133188,14 +133195,14 @@ var __webpack_modules__ = {
133188
133195
  var pintor__rspack_import_2 = __webpack_require__("pintor");
133189
133196
  var pintor__rspack_import_2_default = /*#__PURE__*/ __webpack_require__.n(pintor__rspack_import_2);
133190
133197
  var _css_lib_messages__rspack_import_3 = __webpack_require__("./webpack/plugin-css/css-lib/messages.ts");
133191
- var isolated_deps__rspack_import_4 = __webpack_require__("isolated-deps");
133198
+ var _webpack_lib_has_dependency__rspack_import_4 = __webpack_require__("./webpack/webpack-lib/has-dependency.ts");
133192
133199
  var _webpack_lib_develop_context__rspack_import_5 = __webpack_require__("./webpack/webpack-lib/develop-context.ts");
133193
133200
  var _webpack_lib_optional_deps_resolver__rspack_import_6 = __webpack_require__("./webpack/webpack-lib/optional-deps-resolver.ts");
133194
133201
  let userMessageDelivered = false;
133195
133202
  function isUsingSass(projectPath) {
133196
- if ((0, isolated_deps__rspack_import_4.hasDependency)(projectPath, 'sass')) {
133203
+ if ((0, _webpack_lib_has_dependency__rspack_import_4.w)(projectPath, 'sass')) {
133197
133204
  if (!userMessageDelivered) {
133198
- 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')}`);
133205
+ 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')}`);
133199
133206
  userMessageDelivered = true;
133200
133207
  }
133201
133208
  return true;
@@ -133277,13 +133284,13 @@ var __webpack_modules__ = {
133277
133284
  var pintor__rspack_import_2 = __webpack_require__("pintor");
133278
133285
  var pintor__rspack_import_2_default = /*#__PURE__*/ __webpack_require__.n(pintor__rspack_import_2);
133279
133286
  var _css_lib_messages__rspack_import_3 = __webpack_require__("./webpack/plugin-css/css-lib/messages.ts");
133280
- var isolated_deps__rspack_import_4 = __webpack_require__("isolated-deps");
133287
+ var _webpack_lib_has_dependency__rspack_import_4 = __webpack_require__("./webpack/webpack-lib/has-dependency.ts");
133281
133288
  let userMessageDelivered = false;
133282
133289
  function isUsingTailwind(projectPath) {
133283
- const isUsingTailwind = (0, isolated_deps__rspack_import_4.hasDependency)(projectPath, 'tailwindcss') || (0, isolated_deps__rspack_import_4.hasDependency)(projectPath, '@tailwindcss/postcss');
133290
+ const isUsingTailwind = (0, _webpack_lib_has_dependency__rspack_import_4.w)(projectPath, 'tailwindcss') || (0, _webpack_lib_has_dependency__rspack_import_4.w)(projectPath, '@tailwindcss/postcss');
133284
133291
  if (isUsingTailwind) {
133285
133292
  if (!userMessageDelivered) {
133286
- 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')}`);
133293
+ 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')}`);
133287
133294
  userMessageDelivered = true;
133288
133295
  }
133289
133296
  }
@@ -133301,11 +133308,10 @@ var __webpack_modules__ = {
133301
133308
  "./webpack/plugin-js-frameworks/frameworks-lib/integrations.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
133302
133309
  "use strict";
133303
133310
  __webpack_require__.d(__webpack_exports__, {
133304
- Dy: ()=>isolated_deps__rspack_import_0.installOptionalDependenciesBatch,
133305
133311
  qQ: ()=>isUsingJSFramework,
133306
- ws: ()=>isolated_deps__rspack_import_0.hasDependency
133312
+ ws: ()=>_webpack_lib_has_dependency__rspack_import_0.w
133307
133313
  });
133308
- var isolated_deps__rspack_import_0 = __webpack_require__("isolated-deps");
133314
+ var _webpack_lib_has_dependency__rspack_import_0 = __webpack_require__("./webpack/webpack-lib/has-dependency.ts");
133309
133315
  __webpack_require__("./webpack/webpack-lib/develop-context.ts");
133310
133316
  function isUsingJSFramework(projectPath) {
133311
133317
  const frameworks = [
@@ -133316,7 +133322,7 @@ var __webpack_modules__ = {
133316
133322
  'solid-js',
133317
133323
  'preact'
133318
133324
  ];
133319
- return frameworks.some((fw)=>(0, isolated_deps__rspack_import_0.hasDependency)(projectPath, fw));
133325
+ return frameworks.some((fw)=>(0, _webpack_lib_has_dependency__rspack_import_0.w)(projectPath, fw));
133320
133326
  }
133321
133327
  },
133322
133328
  "./webpack/plugin-js-frameworks/js-frameworks-lib/load-loader-options.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
@@ -133368,7 +133374,6 @@ var __webpack_modules__ = {
133368
133374
  Ei: ()=>jsFrameworksHmrSummary,
133369
133375
  LR: ()=>creatingTSConfig,
133370
133376
  MH: ()=>jsFrameworksConfigsDetected,
133371
- Q2: ()=>optionalDepsReady,
133372
133377
  Ty: ()=>isUsingCustomLoader,
133373
133378
  jH: ()=>jsFrameworksIntegrationsEnabled,
133374
133379
  zA: ()=>isUsingIntegration
@@ -133376,30 +133381,26 @@ var __webpack_modules__ = {
133376
133381
  var pintor__rspack_import_0 = __webpack_require__("pintor");
133377
133382
  var pintor__rspack_import_0_default = /*#__PURE__*/ __webpack_require__.n(pintor__rspack_import_0);
133378
133383
  function isUsingIntegration(name) {
133379
- return `${pintor__rspack_import_0_default().gray('►►►')} Using ${pintor__rspack_import_0_default().brightBlue(name)}...`;
133380
- }
133381
- function optionalDepsReady(integrations) {
133382
- const list = integrations.length > 0 ? integrations.map((name)=>pintor__rspack_import_0_default().yellow(name)).join(', ') : pintor__rspack_import_0_default().gray('optional');
133383
- return `${pintor__rspack_import_0_default().green('►►►')} All set — ${list} tooling is ready.`;
133384
+ return `${pintor__rspack_import_0_default().gray('⏵⏵⏵')} Using ${pintor__rspack_import_0_default().brightBlue(name)}...`;
133384
133385
  }
133385
133386
  function creatingTSConfig() {
133386
- return `${pintor__rspack_import_0_default().gray('►►►')} Creating default tsconfig.json...`;
133387
+ return `${pintor__rspack_import_0_default().gray('⏵⏵⏵')} Creating default tsconfig.json...`;
133387
133388
  }
133388
133389
  function isUsingCustomLoader(loaderPath) {
133389
- return `${pintor__rspack_import_0_default().gray('►►►')} Using custom loader: ${pintor__rspack_import_0_default().yellow(loaderPath)}.`;
133390
+ return `${pintor__rspack_import_0_default().gray('⏵⏵⏵')} Using custom loader: ${pintor__rspack_import_0_default().yellow(loaderPath)}.`;
133390
133391
  }
133391
133392
  function jsFrameworksIntegrationsEnabled(integrations) {
133392
133393
  const list = integrations.length > 0 ? integrations.map((n)=>pintor__rspack_import_0_default().yellow(n)).join(', ') : pintor__rspack_import_0_default().gray('none');
133393
- return `${pintor__rspack_import_0_default().gray('►►►')} JS: Integrations enabled (${pintor__rspack_import_0_default().gray(String(integrations.length))}) ${list}`;
133394
+ return `${pintor__rspack_import_0_default().gray('⏵⏵⏵')} JS: Integrations enabled (${pintor__rspack_import_0_default().gray(String(integrations.length))}) ${list}`;
133394
133395
  }
133395
133396
  function jsFrameworksConfigsDetected(tsConfigPath, tsRoot, targets) {
133396
133397
  const fmt = (v)=>v ? pintor__rspack_import_0_default().underline(v) : pintor__rspack_import_0_default().gray('none');
133397
133398
  const tgt = targets && targets.length ? targets.map((t)=>pintor__rspack_import_0_default().gray(t)).join(', ') : pintor__rspack_import_0_default().gray('default');
133398
- return `${pintor__rspack_import_0_default().gray('►►►')} JS: Configs\n${pintor__rspack_import_0_default().gray('TSCONFIG')} ${fmt(tsConfigPath)}\n${pintor__rspack_import_0_default().gray('TSROOT')} ${fmt(tsRoot)}\n${pintor__rspack_import_0_default().gray('SWC_TARGETS')} ${tgt}`;
133399
+ return `${pintor__rspack_import_0_default().gray('⏵⏵⏵')} JS: Configs\n${pintor__rspack_import_0_default().gray('TSCONFIG')} ${fmt(tsConfigPath)}\n${pintor__rspack_import_0_default().gray('TSROOT')} ${fmt(tsRoot)}\n${pintor__rspack_import_0_default().gray('SWC_TARGETS')} ${tgt}`;
133399
133400
  }
133400
133401
  function jsFrameworksHmrSummary(enabled, frameworks) {
133401
133402
  const list = frameworks.length > 0 ? frameworks.map((n)=>pintor__rspack_import_0_default().yellow(n)).join(', ') : pintor__rspack_import_0_default().gray('none');
133402
- return `${pintor__rspack_import_0_default().gray('►►►')} JS: HMR ${enabled ? pintor__rspack_import_0_default().green('enabled') : pintor__rspack_import_0_default().gray('disabled')} for ${list}`;
133403
+ return `${pintor__rspack_import_0_default().gray('⏵⏵⏵')} JS: HMR ${enabled ? pintor__rspack_import_0_default().green('enabled') : pintor__rspack_import_0_default().gray('disabled')} for ${list}`;
133403
133404
  }
133404
133405
  },
133405
133406
  "./webpack/plugin-js-frameworks/js-tools/preact.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
@@ -133419,7 +133420,7 @@ var __webpack_modules__ = {
133419
133420
  function isUsingPreact(projectPath) {
133420
133421
  if ((0, _frameworks_lib_integrations__rspack_import_4.ws)(projectPath, 'preact')) {
133421
133422
  if (!userMessageDelivered) {
133422
- if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(`${pintor__rspack_import_2_default().brightMagenta('►►► Author says')} ${_js_frameworks_lib_messages__rspack_import_3.zA('Preact')}`);
133423
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(`${pintor__rspack_import_2_default().brightMagenta('⏵⏵⏵ Author says')} ${_js_frameworks_lib_messages__rspack_import_3.zA('Preact')}`);
133423
133424
  userMessageDelivered = true;
133424
133425
  }
133425
133426
  return true;
@@ -133486,7 +133487,7 @@ var __webpack_modules__ = {
133486
133487
  function isUsingReact(projectPath) {
133487
133488
  if ((0, _frameworks_lib_integrations__rspack_import_4.ws)(projectPath, 'react')) {
133488
133489
  if (!userMessageDelivered) {
133489
- if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(`${pintor__rspack_import_2_default().brightMagenta('►►► Author says')} ${_js_frameworks_lib_messages__rspack_import_3.zA('React')}`);
133490
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(`${pintor__rspack_import_2_default().brightMagenta('⏵⏵⏵ Author says')} ${_js_frameworks_lib_messages__rspack_import_3.zA('React')}`);
133490
133491
  userMessageDelivered = true;
133491
133492
  }
133492
133493
  return true;
@@ -133755,7 +133756,7 @@ var __webpack_modules__ = {
133755
133756
  const hasTsFiles = hasTypeScriptSourceFiles(projectPath);
133756
133757
  if (!hasShownUserMessage) {
133757
133758
  if (TypeScriptAsDevDep || TypeScriptAsDep || hasTsFiles) if (tsConfigFilePath) {
133758
- if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(`${pintor__rspack_import_2_default().brightMagenta('►►► Author says')} ${_js_frameworks_lib_messages__rspack_import_3.zA('TypeScript')}`);
133759
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(`${pintor__rspack_import_2_default().brightMagenta('⏵⏵⏵ Author says')} ${_js_frameworks_lib_messages__rspack_import_3.zA('TypeScript')}`);
133759
133760
  } else if (hasTsFiles) {
133760
133761
  const errorMessage = '[Extension.js] Missing tsconfig.json next to package.json. Create one to use TypeScript.';
133761
133762
  throw new Error(errorMessage);
@@ -133826,7 +133827,7 @@ var __webpack_modules__ = {
133826
133827
  function isUsingVue(projectPath) {
133827
133828
  const using = (0, _frameworks_lib_integrations__rspack_import_5.ws)(projectPath, 'vue');
133828
133829
  if (using && !userMessageDelivered) {
133829
- if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(`${pintor__rspack_import_3_default().brightMagenta('►►► Author says')} ${_js_frameworks_lib_messages__rspack_import_4.zA('Vue')}`);
133830
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(`${pintor__rspack_import_3_default().brightMagenta('⏵⏵⏵ Author says')} ${_js_frameworks_lib_messages__rspack_import_4.zA('Vue')}`);
133830
133831
  userMessageDelivered = true;
133831
133832
  }
133832
133833
  return using;
@@ -134621,6 +134622,31 @@ var __webpack_modules__ = {
134621
134622
  return list;
134622
134623
  }
134623
134624
  },
134625
+ "./webpack/webpack-lib/has-dependency.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
134626
+ "use strict";
134627
+ __webpack_require__.d(__webpack_exports__, {
134628
+ w: ()=>hasDependency
134629
+ });
134630
+ var fs__rspack_import_0 = __webpack_require__("fs");
134631
+ var path__rspack_import_1 = __webpack_require__("path");
134632
+ function hasDependency(projectPath, packageName) {
134633
+ const manifestPath = path__rspack_import_1.join(projectPath, 'package.json');
134634
+ if (!fs__rspack_import_0.existsSync(manifestPath)) return false;
134635
+ try {
134636
+ const raw = fs__rspack_import_0.readFileSync(manifestPath, 'utf8');
134637
+ const pkg = JSON.parse(raw || '{}');
134638
+ const sections = [
134639
+ pkg.dependencies,
134640
+ pkg.devDependencies,
134641
+ pkg.optionalDependencies,
134642
+ pkg.peerDependencies
134643
+ ];
134644
+ return sections.some((s)=>s && 'object' == typeof s && packageName in s);
134645
+ } catch {
134646
+ return false;
134647
+ }
134648
+ }
134649
+ },
134624
134650
  "./webpack/webpack-lib/install-cache.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
134625
134651
  "use strict";
134626
134652
  __webpack_require__.d(__webpack_exports__, {
@@ -134818,13 +134844,13 @@ var __webpack_modules__ = {
134818
134844
  function getLoggingPrefix(type) {
134819
134845
  const isAuthor = 'true' === process.env.EXTENSION_AUTHOR_MODE;
134820
134846
  if (isAuthor) {
134821
- const base = 'error' === type ? 'ERROR Author says' : '►►► Author says';
134847
+ const base = 'error' === type ? 'ERROR Author says' : '⏵⏵⏵ Author says';
134822
134848
  return pintor__rspack_import_2_default().brightMagenta(base);
134823
134849
  }
134824
134850
  if ('error' === type) return pintor__rspack_import_2_default().red('ERROR');
134825
- if ('warn' === type) return pintor__rspack_import_2_default().brightYellow('►►►');
134826
- if ('info' === type) return pintor__rspack_import_2_default().gray('►►►');
134827
- return pintor__rspack_import_2_default().green('►►►');
134851
+ if ('warn' === type) return pintor__rspack_import_2_default().brightYellow('⏵⏵⏵');
134852
+ if ('info' === type) return pintor__rspack_import_2_default().gray('⏵⏵⏵');
134853
+ return pintor__rspack_import_2_default().green('⏵⏵⏵');
134828
134854
  }
134829
134855
  function isPathLike(input) {
134830
134856
  return input.includes('/') || input.includes('\\') || path__rspack_import_1.isAbsolute(input);
@@ -135328,17 +135354,14 @@ var __webpack_modules__ = {
135328
135354
  Eh: ()=>resolveOptionalContractPackageWithoutInstall,
135329
135355
  OE: ()=>getContractVerificationFailuresFromKnownLocations,
135330
135356
  k3: ()=>loadOptionalContractModuleWithoutInstall,
135331
- lr: ()=>getContractVerificationFailuresAtInstallRoot,
135332
135357
  nR: ()=>resolveOptionalDependencySync,
135333
135358
  xr: ()=>ensureOptionalContractPackageResolved
135334
135359
  });
135335
135360
  var fs__rspack_import_0 = __webpack_require__("fs");
135336
135361
  var path__rspack_import_1 = __webpack_require__("path");
135337
135362
  var module__rspack_import_2 = __webpack_require__("module");
135338
- var isolated_deps__rspack_import_3 = __webpack_require__("isolated-deps");
135339
- var _develop_context__rspack_import_4 = __webpack_require__("./webpack/webpack-lib/develop-context.ts");
135340
- var _optional_deps_contracts__rspack_import_5 = __webpack_require__("./webpack/webpack-lib/optional-deps-contracts.ts");
135341
- const installSingleFlight = new Map();
135363
+ var _develop_context__rspack_import_3 = __webpack_require__("./webpack/webpack-lib/develop-context.ts");
135364
+ var _optional_deps_contracts__rspack_import_4 = __webpack_require__("./webpack/webpack-lib/optional-deps-contracts.ts");
135342
135365
  function toInstallRootContract(integration, contractId, installDependencies, verifyPackageIds) {
135343
135366
  return {
135344
135367
  id: contractId,
@@ -135359,15 +135382,12 @@ var __webpack_modules__ = {
135359
135382
  return toInstallRootContract(input.integration, input.integration, installDependencies, verifyPackageIds);
135360
135383
  }
135361
135384
  function getResolutionBases(projectPath) {
135362
- const optionalInstallRoot = (0, isolated_deps__rspack_import_3.resolveOptionalInstallRoot)();
135363
- const extensionRoot = (0, _develop_context__rspack_import_4.H)();
135385
+ const extensionRoot = (0, _develop_context__rspack_import_3.H)();
135364
135386
  const bases = [
135365
135387
  projectPath,
135366
- optionalInstallRoot && fs__rspack_import_0.existsSync(optionalInstallRoot) ? optionalInstallRoot : void 0,
135367
135388
  extensionRoot || void 0,
135368
135389
  process.cwd()
135369
135390
  ].filter(Boolean);
135370
- if (optionalInstallRoot && optionalInstallRoot.includes('.pnpm')) bases.push(path__rspack_import_1.join(optionalInstallRoot, '..', '..'));
135371
135391
  if (extensionRoot && extensionRoot.includes('.pnpm')) bases.push(path__rspack_import_1.join(extensionRoot, '..', '..'));
135372
135392
  return Array.from(new Set(bases));
135373
135393
  }
@@ -135403,24 +135423,8 @@ var __webpack_modules__ = {
135403
135423
  return;
135404
135424
  }
135405
135425
  }
135406
- function resolveFromKnownLocations(dependencyId, projectPath, installRoot) {
135407
- const resolved = resolveDependency(dependencyId, projectPath);
135408
- if (resolved) return resolved.resolvedPath;
135409
- if (!installRoot) return;
135410
- const fromRoot = resolveFromInstallRootPackageDir(dependencyId, installRoot);
135411
- if (fromRoot) return fromRoot;
135412
- if (installRoot.includes('.pnpm')) return resolveFromInstallRootPackageDir(dependencyId, path__rspack_import_1.join(installRoot, '..', '..'));
135413
- }
135414
- function resolveFromInstallRootPackageDir(dependencyId, installRoot) {
135415
- return (0, isolated_deps__rspack_import_3.resolvePackageFromInstallRoot)(dependencyId, installRoot);
135416
- }
135417
- function verifyPackageInInstallRoot(packageId, installRoot) {
135418
- if (resolveFromInstallRootPackageDir(packageId, installRoot)) return true;
135419
- if (installRoot.includes('.pnpm')) {
135420
- const pnpmStoreBase = path__rspack_import_1.join(installRoot, '..', '..');
135421
- if (resolveFromInstallRootPackageDir(packageId, pnpmStoreBase)) return true;
135422
- }
135423
- return false;
135426
+ function resolveFromKnownLocations(dependencyId, projectPath) {
135427
+ return resolveDependency(dependencyId, projectPath)?.resolvedPath;
135424
135428
  }
135425
135429
  function dedupeFailures(packageIds) {
135426
135430
  return Array.from(new Set(packageIds));
@@ -135459,10 +135463,10 @@ var __webpack_modules__ = {
135459
135463
  return rule.packageId;
135460
135464
  }
135461
135465
  }
135462
- function getContractVerificationFailuresFromKnownLocations(contract, projectPath, installRoot = (0, isolated_deps__rspack_import_3.resolveOptionalInstallRoot)()) {
135466
+ function getContractVerificationFailuresFromKnownLocations(contract, projectPath) {
135463
135467
  const resolvedByPackage = new Map();
135464
135468
  const resolvePackage = (packageId)=>{
135465
- if (!resolvedByPackage.has(packageId)) resolvedByPackage.set(packageId, resolveFromKnownLocations(packageId, projectPath, installRoot));
135469
+ if (!resolvedByPackage.has(packageId)) resolvedByPackage.set(packageId, resolveFromKnownLocations(packageId, projectPath));
135466
135470
  return resolvedByPackage.get(packageId);
135467
135471
  };
135468
135472
  const failures = [];
@@ -135481,215 +135485,59 @@ var __webpack_modules__ = {
135481
135485
  }
135482
135486
  return dedupeFailures(failures);
135483
135487
  }
135484
- function getContractVerificationFailuresAtInstallRoot(contract, installRoot = (0, isolated_deps__rspack_import_3.resolveOptionalInstallRoot)()) {
135485
- const resolvedByPackage = new Map();
135486
- const resolvePackage = (packageId)=>{
135487
- if (!resolvedByPackage.has(packageId)) resolvedByPackage.set(packageId, installRoot ? resolveFromInstallRootPackageDir(packageId, installRoot) : void 0);
135488
- return resolvedByPackage.get(packageId);
135489
- };
135490
- const failures = [];
135491
- for (const rule of contract.verificationRules){
135492
- if ('install-root' === rule.type) {
135493
- const resolvedPath = resolvePackage(rule.packageId);
135494
- if (!resolvedPath || !installRoot) failures.push(rule.packageId);
135495
- continue;
135496
- }
135497
- const fromPackagePath = resolvePackage(rule.fromPackage);
135498
- if (!fromPackagePath || !installRoot) {
135499
- failures.push(rule.fromPackage);
135500
- continue;
135501
- }
135502
- const expectedPeerPath = resolvePackage(rule.packageId);
135503
- if (!expectedPeerPath) {
135504
- failures.push(rule.packageId);
135505
- continue;
135506
- }
135507
- const failure = evaluateModuleContextRule(rule, fromPackagePath, {
135508
- expectedInstalledPath: expectedPeerPath
135509
- });
135510
- if (failure) failures.push(failure);
135511
- }
135512
- return dedupeFailures(failures);
135513
- }
135514
135488
  function buildDiagnostics(input) {
135515
135489
  const bases = getResolutionBases(input.projectPath);
135516
- const verifyState = input.verifyPackageIds.map((id)=>({
135517
- dependency: id,
135518
- existsAtInstallRoot: input.installRoot ? verifyPackageInInstallRoot(id, input.installRoot) : false
135519
- }));
135520
135490
  return {
135521
135491
  contractId: input.contract?.id || null,
135522
135492
  integration: input.integration,
135523
135493
  dependencyId: input.dependencyId,
135524
135494
  projectPath: input.projectPath,
135525
- installRoot: input.installRoot || null,
135526
135495
  installDependencies: input.installDependencies,
135527
135496
  verifyPackageIds: input.verifyPackageIds,
135528
- resolutionBases: bases,
135529
- verifyState
135497
+ resolutionBases: bases
135530
135498
  };
135531
135499
  }
135532
- async function runInstallAndVerify(input) {
135533
- const didInstall = await (0, isolated_deps__rspack_import_3.installOptionalDependencies)(input.integration, input.installDependencies);
135534
- if (!didInstall) {
135535
- const diagnostics = buildDiagnostics({
135536
- integration: input.integration,
135537
- dependencyId: input.dependencyId,
135538
- projectPath: input.projectPath,
135539
- contract: input.contract,
135540
- installRoot: input.installRoot,
135541
- installDependencies: input.installDependencies,
135542
- verifyPackageIds: input.verifyPackageIds
135543
- });
135544
- throw new Error(`[${input.integration}] Optional dependencies failed to install.\n` + JSON.stringify(diagnostics, null, 2));
135545
- }
135546
- if (!input.installRoot) {
135547
- const diagnostics = buildDiagnostics({
135548
- integration: input.integration,
135549
- dependencyId: input.dependencyId,
135550
- projectPath: input.projectPath,
135551
- contract: input.contract,
135552
- installRoot: input.installRoot,
135553
- installDependencies: input.installDependencies,
135554
- verifyPackageIds: input.verifyPackageIds
135555
- });
135556
- throw new Error(`[${input.integration}] Optional dependency install root is unavailable.\n` + JSON.stringify(diagnostics, null, 2));
135557
- }
135558
- const missingAfterInstall = getContractVerificationFailuresAtInstallRoot(input.contract, input.installRoot);
135559
- if (missingAfterInstall.length > 0) {
135560
- await (0, isolated_deps__rspack_import_3.installOptionalDependencies)(input.integration, input.installDependencies);
135561
- const missingAfterRetry = getContractVerificationFailuresAtInstallRoot(input.contract, input.installRoot);
135562
- if (0 === missingAfterRetry.length) return;
135563
- const missingIdSet = new Set(missingAfterRetry);
135564
- const missingSpecs = input.contract.installPackages.filter((spec)=>{
135565
- const atIdx = spec.lastIndexOf('@');
135566
- const id = atIdx > 0 ? spec.slice(0, atIdx) : spec;
135567
- return missingIdSet.has(id);
135568
- });
135569
- const didInstallMissingOnly = await (0, isolated_deps__rspack_import_3.installOptionalDependencies)(input.integration, missingSpecs.length > 0 ? missingSpecs : missingAfterRetry);
135570
- if (didInstallMissingOnly) {
135571
- const missingAfterTargetedTopUp = getContractVerificationFailuresAtInstallRoot(input.contract, input.installRoot);
135572
- if (0 === missingAfterTargetedTopUp.length) return;
135573
- }
135574
- const didRecoverWithCleanInstall = await (0, isolated_deps__rspack_import_3.installOptionalDependencies)(input.integration, input.contract.installPackages, {
135575
- forceRecreateInstallRoot: true
135576
- });
135577
- if (didRecoverWithCleanInstall) {
135578
- const missingAfterCleanInstall = getContractVerificationFailuresAtInstallRoot(input.contract, input.installRoot);
135579
- if (0 === missingAfterCleanInstall.length) return;
135580
- }
135581
- const diagnostics = buildDiagnostics({
135582
- integration: input.integration,
135583
- dependencyId: input.dependencyId,
135584
- projectPath: input.projectPath,
135585
- contract: input.contract,
135586
- installRoot: input.installRoot,
135587
- installDependencies: input.installDependencies,
135588
- verifyPackageIds: input.verifyPackageIds
135589
- });
135590
- throw new Error(`[${input.integration}] Optional dependency install reported success but packages are missing: ${missingAfterRetry.join(', ')}.\n` + JSON.stringify(diagnostics, null, 2));
135591
- }
135592
- }
135593
- async function ensureInstalledAndVerified(input) {
135594
- const installRoot = (0, isolated_deps__rspack_import_3.resolveOptionalInstallRoot)();
135595
- const key = [
135596
- installRoot || 'missing-install-root',
135597
- ...input.installDependencies.slice().sort()
135598
- ].join('::');
135599
- const existing = installSingleFlight.get(key);
135600
- if (existing) return void await existing;
135601
- const installPromise = runInstallAndVerify({
135602
- contract: input.contract,
135603
- integration: input.integration,
135604
- installDependencies: input.installDependencies,
135605
- verifyPackageIds: input.verifyPackageIds,
135606
- projectPath: input.projectPath,
135607
- dependencyId: input.dependencyId,
135608
- installRoot
135609
- });
135610
- installSingleFlight.set(key, installPromise);
135611
- try {
135612
- await installPromise;
135613
- } finally{
135614
- installSingleFlight.delete(key);
135615
- }
135616
- }
135617
135500
  function resolveOptionalDependencySync(dependencyId, projectPath) {
135618
- const installRoot = (0, isolated_deps__rspack_import_3.resolveOptionalInstallRoot)();
135619
- const resolved = resolveFromKnownLocations(dependencyId, projectPath, installRoot);
135501
+ const resolved = resolveFromKnownLocations(dependencyId, projectPath);
135620
135502
  if (resolved) return resolved;
135621
135503
  const bases = getResolutionBases(projectPath);
135622
135504
  throw new Error(`[CSS] ${dependencyId} could not be resolved. Searched: ${bases.join(', ')}`);
135623
135505
  }
135624
135506
  async function ensureOptionalPackageResolved(input) {
135625
135507
  const contract = getVerificationContract(input);
135626
- const installDependencies = contract.installPackages;
135627
- const verifyPackageIds = contract.installPackages;
135628
- const installRoot = (0, isolated_deps__rspack_import_3.resolveOptionalInstallRoot)();
135629
- const resolvedBeforeInstall = resolveFromKnownLocations(input.dependencyId, input.projectPath, installRoot);
135630
- const missingBeforeInstall = getContractVerificationFailuresFromKnownLocations(contract, input.projectPath, installRoot);
135631
- if (resolvedBeforeInstall && 0 === missingBeforeInstall.length) return resolvedBeforeInstall;
135632
- await ensureInstalledAndVerified({
135633
- contract,
135634
- integration: input.integration,
135635
- installDependencies,
135636
- verifyPackageIds,
135637
- projectPath: input.projectPath,
135638
- dependencyId: input.dependencyId
135639
- });
135640
- const resolvedFromInstallRoot = installRoot ? resolveFromInstallRootPackageDir(input.dependencyId, installRoot) : void 0;
135641
- const missingFromInstallRoot = getContractVerificationFailuresAtInstallRoot(contract, installRoot);
135642
- if (resolvedFromInstallRoot && 0 === missingFromInstallRoot.length) return resolvedFromInstallRoot;
135643
- const resolvedAfterInstall = resolveFromKnownLocations(input.dependencyId, input.projectPath, installRoot);
135644
- const missingAfterInstall = getContractVerificationFailuresFromKnownLocations(contract, input.projectPath, installRoot);
135645
- if (resolvedAfterInstall && 0 === missingAfterInstall.length) return resolvedAfterInstall;
135646
- if (resolvedFromInstallRoot && 0 === missingFromInstallRoot.length) return resolvedFromInstallRoot;
135508
+ const missing = getContractVerificationFailuresFromKnownLocations(contract, input.projectPath);
135509
+ const resolved = resolveFromKnownLocations(input.dependencyId, input.projectPath);
135510
+ if (resolved && 0 === missing.length) return resolved;
135647
135511
  const diagnostics = buildDiagnostics({
135648
135512
  integration: input.integration,
135649
135513
  dependencyId: input.dependencyId,
135650
135514
  projectPath: input.projectPath,
135651
135515
  contract,
135652
- installRoot,
135653
- installDependencies,
135654
- verifyPackageIds
135516
+ installDependencies: contract.installPackages,
135517
+ verifyPackageIds: contract.installPackages
135655
135518
  });
135656
- const peerDiagnostics = {
135657
- resolvedBeforeInstall: resolvedBeforeInstall || null,
135658
- missingBeforeInstall,
135659
- resolvedAfterInstall: resolvedAfterInstall || null,
135660
- missingAfterInstall,
135661
- resolvedFromInstallRoot: resolvedFromInstallRoot || null,
135662
- missingFromInstallRoot
135663
- };
135664
- throw new Error(`[${input.integration}] ${input.dependencyId} could not be resolved after optional dependency installation.\n` + JSON.stringify({
135519
+ throw new Error(`[${input.integration}] ${input.dependencyId} could not be resolved.` + (missing.length > 0 ? ` Missing or invalid packages: ${missing.join(', ')}.` : '') + '\n' + JSON.stringify({
135665
135520
  ...diagnostics,
135666
- peerDiagnostics
135521
+ missing
135667
135522
  }, null, 2));
135668
135523
  }
135669
135524
  function resolveOptionalPackageWithoutInstall(input) {
135670
135525
  const contract = getVerificationContract(input);
135671
- const installDependencies = contract.installPackages;
135672
- const verifyPackageIds = contract.installPackages;
135673
- const installRoot = (0, isolated_deps__rspack_import_3.resolveOptionalInstallRoot)();
135674
- const resolvedFromInstallRoot = installRoot ? resolveFromInstallRootPackageDir(input.dependencyId, installRoot) : void 0;
135675
- const missingFromInstallRoot = getContractVerificationFailuresAtInstallRoot(contract, installRoot);
135676
- if (resolvedFromInstallRoot && 0 === missingFromInstallRoot.length) return resolvedFromInstallRoot;
135677
- const resolved = resolveFromKnownLocations(input.dependencyId, input.projectPath, installRoot);
135678
- const missingPeerDeps = getContractVerificationFailuresFromKnownLocations(contract, input.projectPath, installRoot);
135526
+ const resolved = resolveFromKnownLocations(input.dependencyId, input.projectPath);
135527
+ const missingPeerDeps = getContractVerificationFailuresFromKnownLocations(contract, input.projectPath);
135679
135528
  if (resolved && 0 === missingPeerDeps.length) return resolved;
135680
135529
  const diagnostics = buildDiagnostics({
135681
135530
  integration: input.integration,
135682
135531
  dependencyId: input.dependencyId,
135683
135532
  projectPath: input.projectPath,
135684
135533
  contract,
135685
- installRoot,
135686
- installDependencies,
135687
- verifyPackageIds
135534
+ installDependencies: contract.installPackages,
135535
+ verifyPackageIds: contract.installPackages
135688
135536
  });
135689
- throw new Error(`[${input.integration}] ${input.dependencyId} could not be resolved from known optional dependency roots.\n` + JSON.stringify({
135537
+ throw new Error(`[${input.integration}] ${input.dependencyId} could not be resolved from the project or extension-develop.\n` + JSON.stringify({
135690
135538
  ...diagnostics,
135691
135539
  missingPeerDeps,
135692
- expectation: 'Optional dependency preflight should install and verify these packages before framework setup.'
135540
+ expectation: 'Run optional dependency preflight or reinstall extension-develop.'
135693
135541
  }, null, 2));
135694
135542
  }
135695
135543
  async function ensureOptionalModuleLoaded(input) {
@@ -135725,7 +135573,6 @@ var __webpack_modules__ = {
135725
135573
  integration: input.integration,
135726
135574
  dependencyId: input.dependencyId,
135727
135575
  projectPath: input.projectPath,
135728
- installRoot: (0, isolated_deps__rspack_import_3.resolveOptionalInstallRoot)(),
135729
135576
  installDependencies: input.installDependencies || [
135730
135577
  input.dependencyId
135731
135578
  ],
@@ -135767,14 +135614,14 @@ var __webpack_modules__ = {
135767
135614
  } catch (directRequireError) {
135768
135615
  lastLoadError = directRequireError;
135769
135616
  }
135770
- if (!didLoad) throw new Error(`[${input.integration}] ${input.dependencyId} could not be loaded after resolving from optional dependency roots.\n` + JSON.stringify({
135617
+ if (!didLoad) throw new Error(`[${input.integration}] ${input.dependencyId} could not be loaded after resolving.\n` + JSON.stringify({
135771
135618
  resolvedPath,
135772
135619
  loadError: lastLoadError instanceof Error ? lastLoadError.message : String(lastLoadError)
135773
135620
  }, null, 2));
135774
135621
  return input.moduleAdapter ? input.moduleAdapter(loaded) : loaded;
135775
135622
  }
135776
135623
  async function ensureOptionalContractPackageResolved(input) {
135777
- const contract = (0, _optional_deps_contracts__rspack_import_5.uw)(input.contractId);
135624
+ const contract = (0, _optional_deps_contracts__rspack_import_4.uw)(input.contractId);
135778
135625
  return ensureOptionalPackageResolved({
135779
135626
  integration: contract.integration,
135780
135627
  projectPath: input.projectPath,
@@ -135783,7 +135630,7 @@ var __webpack_modules__ = {
135783
135630
  });
135784
135631
  }
135785
135632
  async function ensureOptionalContractModuleLoaded(input) {
135786
- const contract = (0, _optional_deps_contracts__rspack_import_5.uw)(input.contractId);
135633
+ const contract = (0, _optional_deps_contracts__rspack_import_4.uw)(input.contractId);
135787
135634
  return ensureOptionalModuleLoaded({
135788
135635
  integration: contract.integration,
135789
135636
  projectPath: input.projectPath,
@@ -135793,7 +135640,7 @@ var __webpack_modules__ = {
135793
135640
  });
135794
135641
  }
135795
135642
  function resolveOptionalContractPackageWithoutInstall(input) {
135796
- const contract = (0, _optional_deps_contracts__rspack_import_5.uw)(input.contractId);
135643
+ const contract = (0, _optional_deps_contracts__rspack_import_4.uw)(input.contractId);
135797
135644
  return resolveOptionalPackageWithoutInstall({
135798
135645
  integration: contract.integration,
135799
135646
  projectPath: input.projectPath,
@@ -135802,7 +135649,7 @@ var __webpack_modules__ = {
135802
135649
  });
135803
135650
  }
135804
135651
  function loadOptionalContractModuleWithoutInstall(input) {
135805
- const contract = (0, _optional_deps_contracts__rspack_import_5.uw)(input.contractId);
135652
+ const contract = (0, _optional_deps_contracts__rspack_import_4.uw)(input.contractId);
135806
135653
  return loadOptionalModuleWithoutInstall({
135807
135654
  integration: contract.integration,
135808
135655
  projectPath: input.projectPath,
@@ -136005,10 +135852,6 @@ var __webpack_modules__ = {
136005
135852
  "use strict";
136006
135853
  module.exports = require("ignore");
136007
135854
  },
136008
- "isolated-deps" (module) {
136009
- "use strict";
136010
- module.exports = require("isolated-deps");
136011
- },
136012
135855
  module (module) {
136013
135856
  "use strict";
136014
135857
  module.exports = require("module");
@@ -136067,7 +135910,7 @@ var __webpack_modules__ = {
136067
135910
  },
136068
135911
  "./package.json" (module) {
136069
135912
  "use strict";
136070
- module.exports = JSON.parse('{"rE":"3.11.1","El":{"@rspack/core":"^1.7.5","@rspack/dev-server":"^1.2.1","@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","isolated-deps":"0.1.0","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"}}');
135913
+ module.exports = JSON.parse('{"rE":"3.12.0","El":{"@prefresh/core":"1.5.9","@prefresh/utils":"1.2.1","@rspack/core":"^1.7.5","@rspack/dev-server":"^1.2.1","@rspack/plugin-preact-refresh":"1.1.4","@rspack/plugin-react-refresh":"1.6.0","@swc/core":"^1.15.8","@swc/helpers":"^0.5.18","@vue/compiler-sfc":"3.5.26","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.5","ignore":"^7.0.5","less":"4.5.1","less-loader":"12.3.0","loader-utils":"^3.3.1","magic-string":"^0.30.21","parse5":"^8.0.0","parse5-utilities":"^1.0.0","pintor":"0.3.0","postcss":"8.5.6","postcss-loader":"8.2.0","postcss-preset-env":"11.1.1","postcss-scss":"4.0.9","preact":"10.27.3","react-refresh":"0.18.0","sass-loader":"16.0.6","schema-utils":"^4.3.3","svelte-loader":"3.2.4","tiny-glob":"^0.2.9","typescript":"5.9.3","unique-names-generator":"^4.7.1","vue":"3.5.26","vue-loader":"17.4.2","webextension-polyfill":"^0.12.0","webpack-merge":"^6.0.1","webpack-target-webextension":"^2.1.3","ws":"^8.19.0"}}');
136071
135914
  }
136072
135915
  };
136073
135916
  var __webpack_module_cache__ = {};
@@ -136951,9 +136794,18 @@ var __webpack_exports__ = {};
136951
136794
  }
136952
136795
  var external_pintor_ = __webpack_require__("pintor");
136953
136796
  var external_pintor_default = /*#__PURE__*/ __webpack_require__.n(external_pintor_);
136797
+ var less = __webpack_require__("./webpack/plugin-css/css-tools/less.ts");
136798
+ var postcss = __webpack_require__("./webpack/plugin-css/css-tools/postcss.ts");
136799
+ var sass = __webpack_require__("./webpack/plugin-css/css-tools/sass.ts");
136800
+ var preact = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/preact.ts");
136801
+ var react = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/react.ts");
136802
+ var svelte = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/svelte.ts");
136803
+ var typescript = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/typescript.ts");
136804
+ var vue = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/vue.ts");
136805
+ var optional_deps_contracts = __webpack_require__("./webpack/webpack-lib/optional-deps-contracts.ts");
136806
+ var optional_deps_resolver = __webpack_require__("./webpack/webpack-lib/optional-deps-resolver.ts");
136954
136807
  var external_crypto_ = __webpack_require__("crypto");
136955
136808
  var develop_context = __webpack_require__("./webpack/webpack-lib/develop-context.ts");
136956
- var optional_deps_contracts = __webpack_require__("./webpack/webpack-lib/optional-deps-contracts.ts");
136957
136809
  function getPreflightCacheDir(packageRoot) {
136958
136810
  return external_path_.join(packageRoot, '.cache', 'extensionjs', 'preflight');
136959
136811
  }
@@ -137070,52 +136922,15 @@ var __webpack_exports__ = {};
137070
136922
  }));
137071
136923
  } catch {}
137072
136924
  }
137073
- var react = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/react.ts");
137074
- var preact = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/preact.ts");
137075
- var vue = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/vue.ts");
137076
- var svelte = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/svelte.ts");
137077
- var typescript = __webpack_require__("./webpack/plugin-js-frameworks/js-tools/typescript.ts");
137078
- var integrations = __webpack_require__("./webpack/plugin-js-frameworks/frameworks-lib/integrations.ts");
137079
- var sass = __webpack_require__("./webpack/plugin-css/css-tools/sass.ts");
137080
- var less = __webpack_require__("./webpack/plugin-css/css-tools/less.ts");
137081
- var postcss = __webpack_require__("./webpack/plugin-css/css-tools/postcss.ts");
137082
- var js_frameworks_lib_messages = __webpack_require__("./webpack/plugin-js-frameworks/js-frameworks-lib/messages.ts");
137083
- var optional_deps_resolver = __webpack_require__("./webpack/webpack-lib/optional-deps-resolver.ts");
137084
- function getInstallRootVerificationFailures(contractIds) {
137085
- return Array.from(new Set(contractIds.flatMap((contractId)=>(0, optional_deps_resolver.lr)((0, optional_deps_contracts.uw)(contractId)))));
137086
- }
137087
- async function verifyContractsResolvedAtInstallRoot(contractIds) {
137088
- let failures = getInstallRootVerificationFailures(contractIds);
137089
- if (0 === failures.length) return;
137090
- for (const waitMs of [
137091
- 250,
137092
- 500,
137093
- 1000
137094
- ]){
137095
- await new Promise((resolve)=>setTimeout(resolve, waitMs));
137096
- failures = getInstallRootVerificationFailures(contractIds);
137097
- if (0 === failures.length) return;
137098
- }
137099
- throw new Error(`[Optional] Optional dependency install reported success but contract verification failed at install root: ${failures.join(', ')}`);
137100
- }
137101
- async function preflightOptionalDependencies(projectStructure, mode, opts) {
136925
+ async function preflightOptionalDependencies(projectStructure, _mode, _opts) {
137102
136926
  const { packageJsonDir } = (0, paths.fu)(projectStructure);
137103
136927
  const projectPath = packageJsonDir;
137104
136928
  if (hasPreflightMarker(projectPath)) {
137105
- if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(`${external_pintor_default().brightMagenta('►►► Author says')} Optional deps preflight skipped (cache hit).`);
136929
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(`${external_pintor_default().brightMagenta('⏵⏵⏵ Author says')} Optional deps preflight skipped (cache hit).`);
137106
136930
  return;
137107
136931
  }
137108
- const missingOptionalDeps = new Set();
137109
- const missingByIntegration = {};
137110
136932
  const usedIntegrations = [];
137111
136933
  const activeContractIds = [];
137112
- const contractsNeedingInstall = [];
137113
- const addMissing = (integration, dependency)=>{
137114
- if (missingOptionalDeps.has(dependency)) return;
137115
- missingOptionalDeps.add(dependency);
137116
- if (!missingByIntegration[integration]) missingByIntegration[integration] = [];
137117
- missingByIntegration[integration].push(dependency);
137118
- };
137119
136934
  const addActiveContract = (contractId)=>{
137120
136935
  activeContractIds.push(contractId);
137121
136936
  usedIntegrations.push((0, optional_deps_contracts.uw)(contractId).integration);
@@ -137141,25 +136956,7 @@ var __webpack_exports__ = {};
137141
136956
  for (const contractId of Array.from(new Set(activeContractIds))){
137142
136957
  const contract = (0, optional_deps_contracts.uw)(contractId);
137143
136958
  const failures = (0, optional_deps_resolver.OE)(contract, projectPath);
137144
- if (0 !== failures.length) {
137145
- contractsNeedingInstall.push(contractId);
137146
- for (const dependency of contract.installPackages)addMissing(contract.integration, dependency);
137147
- }
137148
- }
137149
- if (missingOptionalDeps.size > 0) {
137150
- const uniqueIntegrations = Array.from(new Set(usedIntegrations));
137151
- const installPlans = uniqueIntegrations.map((integration)=>({
137152
- integration,
137153
- dependencySpecs: missingByIntegration[integration] || []
137154
- })).filter((plan)=>plan.dependencySpecs.length > 0);
137155
- const didInstall = await (0, integrations.Dy)(installPlans);
137156
- if (!didInstall) throw new Error('[Optional] Optional dependencies failed to install.');
137157
- await verifyContractsResolvedAtInstallRoot(Array.from(new Set(contractsNeedingInstall)));
137158
- if (opts?.showRunAgainMessage !== false && 'true' === process.env.EXTENSION_AUTHOR_MODE) console.log(js_frameworks_lib_messages.Q2(uniqueIntegrations));
137159
- if (opts?.exitOnInstall !== false) {
137160
- writePreflightMarker(projectPath);
137161
- process.exit(0);
137162
- }
136959
+ if (0 !== failures.length) throw new Error(`[Optional] Toolchain packages are missing or incompatible for ${contract.integration}. Expected: ${failures.join(', ')}. Reinstall extension-develop or add the missing packages to your extension project.`);
137163
136960
  }
137164
136961
  writePreflightMarker(projectPath);
137165
136962
  }
@@ -137232,7 +137029,7 @@ var __webpack_exports__ = {};
137232
137029
  __webpack_require__.e("552").then(__webpack_require__.bind(__webpack_require__, "./webpack/webpack-lib/stats-handler.ts")),
137233
137030
  Promise.all([
137234
137031
  __webpack_require__.e("215"),
137235
- __webpack_require__.e("677")
137032
+ __webpack_require__.e("890")
137236
137033
  ]).then(__webpack_require__.bind(__webpack_require__, "./webpack/webpack-config.ts"))
137237
137034
  ]);
137238
137035
  const debug = isAuthor;
@@ -137377,7 +137174,7 @@ var __webpack_exports__ = {};
137377
137174
  if ('true' === process.env.EXTENSION_DEV_DRY_RUN) return;
137378
137175
  const { devServer } = await Promise.all([
137379
137176
  __webpack_require__.e("215"),
137380
- __webpack_require__.e("677"),
137177
+ __webpack_require__.e("890"),
137381
137178
  __webpack_require__.e("324")
137382
137179
  ]).then(__webpack_require__.bind(__webpack_require__, "./webpack/dev-server/index.ts"));
137383
137180
  await devServer(projectStructure, {