extension-develop 4.0.2 → 4.0.3-canary.327.3dc6ac6

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.
@@ -406,12 +406,9 @@ function unixify(filePath) {
406
406
  function background_background(manifest) {
407
407
  return manifest.background && manifest.background.scripts && {
408
408
  background: {
409
- ...manifest.background,
410
- ...manifest.background.scripts && {
411
- scripts: [
412
- ...new Set(manifest.background.scripts.map((script)=>getFilename("background/scripts.js", String(script))))
413
- ]
414
- }
409
+ scripts: [
410
+ ...new Set(manifest.background.scripts.map((script)=>getFilename("background/scripts.js", String(script))))
411
+ ]
415
412
  }
416
413
  };
417
414
  }
@@ -600,13 +597,10 @@ function action_action(manifest) {
600
597
  function backgroundServiceWorker(manifest) {
601
598
  return manifest.background && manifest.background.service_worker && {
602
599
  background: {
603
- ...manifest.background,
604
- ...manifest.background.service_worker && {
605
- service_worker: (()=>{
606
- const raw = String(manifest.background.service_worker);
607
- return getFilename('background/service_worker.js', raw);
608
- })()
609
- }
600
+ service_worker: (()=>{
601
+ const raw = String(manifest.background.service_worker);
602
+ return getFilename('background/service_worker.js', raw);
603
+ })()
610
604
  }
611
605
  };
612
606
  }
@@ -651,13 +645,10 @@ function manifestV3(manifest) {
651
645
  function backgroundPage(manifest) {
652
646
  return manifest.background && manifest.background.page && {
653
647
  background: {
654
- ...manifest.background,
655
- ...manifest.background.page && {
656
- page: (()=>{
657
- const raw = String(manifest.background.page);
658
- return getFilename('background/index.html', raw);
659
- })()
660
- }
648
+ page: (()=>{
649
+ const raw = String(manifest.background.page);
650
+ return getFilename('background/index.html', raw);
651
+ })()
661
652
  }
662
653
  };
663
654
  }
@@ -1092,6 +1083,8 @@ class EnvPlugin {
1092
1083
  filteredEnvVars['import.meta.env.BROWSER'] = JSON.stringify(this.browser);
1093
1084
  filteredEnvVars['process.env.MODE'] = JSON.stringify(mode);
1094
1085
  filteredEnvVars['import.meta.env.MODE'] = JSON.stringify(mode);
1086
+ filteredEnvVars['import.meta.dirname'] = 'undefined';
1087
+ filteredEnvVars['import.meta.filename'] = 'undefined';
1095
1088
  const injectedCount = Object.keys(filteredEnvVars).filter((k)=>k.startsWith('process.env.EXTENSION_PUBLIC_')).length;
1096
1089
  if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(envInjectedPublicVars(injectedCount));
1097
1090
  const processShim = resolveProcessShim();
@@ -2204,7 +2197,7 @@ class StaticAssetsPlugin {
2204
2197
  const rule = thisRule;
2205
2198
  const resourceQuery = rule?.resourceQuery;
2206
2199
  if (!(resourceQuery instanceof RegExp)) return false;
2207
- return resourceQuery.test('url');
2200
+ return resourceQuery.test('?url');
2208
2201
  });
2209
2202
  const hasCustomFontsRule = compiler.options.module.rules.some((thisRule)=>{
2210
2203
  const rule = thisRule;
@@ -2215,7 +2208,7 @@ class StaticAssetsPlugin {
2215
2208
  const loaders = [
2216
2209
  ...hasUrlResourceQueryRule ? [] : [
2217
2210
  {
2218
- resourceQuery: /url/,
2211
+ resourceQuery: /(?:^\?|&)url(?:&|=|$)/,
2219
2212
  type: 'asset/resource'
2220
2213
  }
2221
2214
  ],
@@ -2305,17 +2298,6 @@ function isUsingPreact(projectPath) {
2305
2298
  }
2306
2299
  async function maybeUsePreact(projectPath) {
2307
2300
  if (!isUsingPreact(projectPath)) return;
2308
- await optional_deps_resolver_ensureOptionalContractPackageResolved({
2309
- contractId: 'preact-refresh',
2310
- projectPath,
2311
- dependencyId: '@rspack/plugin-preact-refresh'
2312
- });
2313
- const PreactRefreshPlugin = await ensureOptionalContractModuleLoaded({
2314
- contractId: 'preact-refresh',
2315
- projectPath,
2316
- dependencyId: '@rspack/plugin-preact-refresh',
2317
- moduleAdapter: (mod)=>mod?.PreactRefreshRspackPlugin ?? mod?.default?.PreactRefreshRspackPlugin ?? mod?.default ?? mod
2318
- });
2319
2301
  const requireFromProject = createRequire(__rspack_external_path.join(projectPath, 'package.json'));
2320
2302
  const resolveFromProject = (id)=>{
2321
2303
  try {
@@ -2330,11 +2312,6 @@ async function maybeUsePreact(projectPath) {
2330
2312
  const preactTestUtils = resolveFromProject('preact/test-utils');
2331
2313
  const preactJsxRuntime = resolveFromProject('preact/jsx-runtime');
2332
2314
  const preactJsxDevRuntime = resolveFromProject('preact/jsx-dev-runtime');
2333
- const preactPlugins = [
2334
- new PreactRefreshPlugin(preactDir ? {
2335
- preactPath: preactDir
2336
- } : {})
2337
- ];
2338
2315
  const alias = {};
2339
2316
  if (preactDir) alias.preact = preactDir;
2340
2317
  if (preactCompat) {
@@ -2345,7 +2322,7 @@ async function maybeUsePreact(projectPath) {
2345
2322
  if (preactJsxRuntime) alias['react/jsx-runtime'] = preactJsxRuntime;
2346
2323
  if (preactJsxDevRuntime) alias['react/jsx-dev-runtime'] = preactJsxDevRuntime;
2347
2324
  return {
2348
- plugins: preactPlugins,
2325
+ plugins: [],
2349
2326
  loaders: void 0,
2350
2327
  alias
2351
2328
  };
@@ -2880,6 +2857,9 @@ class JsFrameworksPlugin {
2880
2857
  issuerLayer: {
2881
2858
  not: EXTENSIONJS_CONTENT_SCRIPT_LAYER
2882
2859
  },
2860
+ resourceQuery: {
2861
+ not: /__extensionjs_classic_concat__/
2862
+ },
2883
2863
  type: "javascript/esm",
2884
2864
  exclude: [
2885
2865
  ...swcRuleBase.exclude,
@@ -5453,10 +5433,8 @@ const add_scripts_isRemoteUrl = (entry)=>/^([a-z][a-z0-9+.-]*:)?\/\//i.test(entr
5453
5433
  const isContentScriptFeature = (feature)=>feature.startsWith("content_scripts/");
5454
5434
  const isScriptsFolderFeature = (feature)=>feature.startsWith("scripts/");
5455
5435
  const isBackgroundScriptsFeature = (feature)=>"background/scripts" === feature;
5456
- function createSequentialEntryModule(feature, entryImports) {
5457
- const isCss = (p)=>/\.css$/i.test(p);
5458
- const jsFiles = entryImports.filter((p)=>!isCss(p));
5459
- const cssFiles = entryImports.filter(isCss);
5436
+ function createSequentialEntryModule(feature, scriptImports) {
5437
+ const jsFiles = scriptImports;
5460
5438
  const isClassic = (p)=>{
5461
5439
  try {
5462
5440
  const src = __rspack_external_fs.readFileSync(p, 'utf8');
@@ -5470,13 +5448,13 @@ function createSequentialEntryModule(feature, entryImports) {
5470
5448
  const queryData = encodeURIComponent(JSON.stringify({
5471
5449
  feature,
5472
5450
  js: jsFiles,
5473
- css: cssFiles
5451
+ css: []
5474
5452
  }));
5475
5453
  return `${jsFiles[0]}?__extensionjs_classic_concat__=${queryData}`;
5476
5454
  }
5477
5455
  const source = [
5478
5456
  `/* extension.js sequential entry: ${feature} */`,
5479
- ...entryImports.map((entryImport)=>`import ${JSON.stringify(String(entryImport))};`)
5457
+ ...jsFiles.map((entryImport)=>`import ${JSON.stringify(String(entryImport))};`)
5480
5458
  ].join('\n');
5481
5459
  return `data:text/javascript;charset=utf-8,${encodeURIComponent(source)}`;
5482
5460
  }
@@ -5538,12 +5516,20 @@ class AddScripts {
5538
5516
  if (__rspack_external_path.isAbsolute(entry)) return entry;
5539
5517
  return __rspack_external_path.join(manifestDir, entry);
5540
5518
  };
5519
+ const claimedByContentScript = new Set();
5520
+ for (const [feature, scriptPath] of Object.entries(scriptFields)){
5521
+ if (!isContentScriptFeature(feature)) continue;
5522
+ const rawEntries = Array.isArray(scriptPath) ? scriptPath || [] : scriptPath ? [
5523
+ scriptPath
5524
+ ] : [];
5525
+ for (const resolved of getScriptEntries(rawEntries.map(resolveEntryPath)))claimedByContentScript.add(__rspack_external_path.resolve(resolved));
5526
+ }
5541
5527
  for (const [feature, scriptPath] of Object.entries(scriptFields)){
5542
5528
  const rawEntries = Array.isArray(scriptPath) ? scriptPath || [] : scriptPath ? [
5543
5529
  scriptPath
5544
5530
  ] : [];
5545
5531
  const resolvedEntries = rawEntries.map(resolveEntryPath);
5546
- const scriptImports = getScriptEntries(resolvedEntries);
5532
+ const scriptImports = isScriptsFolderFeature(feature) ? getScriptEntries(resolvedEntries).filter((p)=>!claimedByContentScript.has(__rspack_external_path.resolve(p))) : getScriptEntries(resolvedEntries);
5547
5533
  const cssImports = getCssEntries(resolvedEntries);
5548
5534
  const entryImports = [
5549
5535
  ...new Set([
@@ -5553,7 +5539,8 @@ class AddScripts {
5553
5539
  ];
5554
5540
  const shouldUseSequentialEntryModule = (isContentScriptFeature(feature) || isBackgroundScriptsFeature(feature)) && scriptImports.length > 1;
5555
5541
  const finalEntryImports = shouldUseSequentialEntryModule ? [
5556
- createSequentialEntryModule(feature, entryImports)
5542
+ createSequentialEntryModule(feature, scriptImports),
5543
+ ...cssImports
5557
5544
  ] : entryImports;
5558
5545
  if (finalEntryImports.length) newEntries[feature] = 'background/service_worker' === feature ? {
5559
5546
  import: finalEntryImports,
@@ -9187,7 +9174,7 @@ function webpackConfig(projectStructure, devOptions) {
9187
9174
  externals: [
9188
9175
  ({ request, dependencyType, context }, callback)=>{
9189
9176
  if ('string' != typeof request) return callback();
9190
- if (/^(chrome|moz)-extension:/i.test(request)) return callback(null, request, 'asset');
9177
+ if (/^(chrome|moz)-extension:|^safari-web-extension:/i.test(request)) return callback(null, request, 'asset');
9191
9178
  if ('url' === dependencyType && context && !/^[a-z][\w+.-]*:/i.test(request) && !/^[/#]/.test(request) && !request.startsWith('//')) {
9192
9179
  const assetPath = request.split(/[?#]/)[0];
9193
9180
  try {
@@ -9294,9 +9281,11 @@ function webpackConfig(projectStructure, devOptions) {
9294
9281
  __rspack_external_path.join(packageJsonDir, 'node_modules'),
9295
9282
  ...(()=>{
9296
9283
  const developRoot = resolveDevelopInstallRoot();
9297
- return developRoot ? [
9298
- __rspack_external_path.join(developRoot, 'node_modules')
9299
- ] : [];
9284
+ if (!developRoot) return [];
9285
+ return [
9286
+ __rspack_external_path.join(developRoot, 'node_modules'),
9287
+ __rspack_external_path.dirname(developRoot)
9288
+ ];
9300
9289
  })()
9301
9290
  ],
9302
9291
  extensions: [
package/dist/101.mjs CHANGED
@@ -4,6 +4,7 @@ import { createRequire } from "module";
4
4
  import dotenv from "dotenv";
5
5
  import pintor from "pintor";
6
6
  import { fetchExtensionFromStore } from "extension-from-store";
7
+ import fs_0 from "fs";
7
8
  import path_0 from "path";
8
9
  import { getSpecialFoldersData } from "browser-extension-manifest-fields";
9
10
  import { fileURLToPath as __rspack_fileURLToPath } from "node:url";
@@ -665,7 +666,7 @@ async function config_loader_isUsingExperimentalConfig(projectPath) {
665
666
  }
666
667
  return false;
667
668
  }
668
- var package_namespaceObject = /*#__PURE__*/ JSON.parse('{"rE":"4.0.2","El":{"@prefresh/core":"1.5.9","@prefresh/utils":"1.2.1","@rspack/core":"^2.1.1","@rspack/dev-server":"2.1.0","@rspack/plugin-preact-refresh":"2.0.1","@rspack/plugin-react-refresh":"2.0.2","@vue/compiler-sfc":"3.5.26","adm-zip":"^0.5.16","browser-extension-manifest-fields":"^2.2.8","case-sensitive-paths-webpack-plugin":"^2.4.0","content-security-policy-parser":"^0.6.0","dotenv":"^17.2.3","es-module-lexer":"^2.1.0","extension-from-store":"^0.1.1","go-git-it":"^5.1.5","ignore":"^7.0.5","less":"4.6.7","less-loader":"13.0.0","parse5-utilities":"^1.0.0","pintor":"0.3.0","postcss":"8.5.10","postcss-loader":"8.2.1","postcss-preset-env":"11.1.1","postcss-scss":"4.0.9","preact":"10.27.3","prefers-yarn":"2.0.1","react-refresh":"0.18.0","sass-loader":"17.0.0","schema-utils":"^4.3.3","svelte-loader":"3.2.4","tiny-glob":"^0.2.9","typescript":"5.9.3","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.20.1"}}');
669
+ var package_namespaceObject = /*#__PURE__*/ JSON.parse('{"rE":"4.0.3-canary.327.3dc6ac6","El":{"@prefresh/core":"1.5.9","@prefresh/utils":"1.2.1","@rspack/core":"^2.1.1","@rspack/dev-server":"2.1.0","@rspack/plugin-preact-refresh":"2.0.1","@rspack/plugin-react-refresh":"2.0.2","@vue/compiler-sfc":"3.5.26","adm-zip":"^0.5.16","browser-extension-manifest-fields":"^2.2.8","case-sensitive-paths-webpack-plugin":"^2.4.0","content-security-policy-parser":"^0.6.0","dotenv":"^17.2.3","es-module-lexer":"^2.1.0","extension-from-store":"^0.1.1","go-git-it":"^5.1.5","ignore":"^7.0.5","less":"4.6.7","less-loader":"13.0.0","parse5-utilities":"^1.0.0","pintor":"0.3.0","postcss":"8.5.10","postcss-loader":"8.2.1","postcss-preset-env":"11.1.1","postcss-scss":"4.0.9","preact":"10.27.3","prefers-yarn":"2.0.1","react-refresh":"0.18.0","sass-loader":"17.0.0","schema-utils":"^4.3.3","svelte-loader":"3.2.4","tiny-glob":"^0.2.9","typescript":"5.9.3","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.20.1"}}');
669
670
  function asAbsolute(p) {
670
671
  return __rspack_external_path.isAbsolute(p) ? p : __rspack_external_path.resolve(p);
671
672
  }
@@ -1290,6 +1291,118 @@ async function resolveCompanionExtensionsConfig(opts) {
1290
1291
  if (resolvedPaths.length > 0) output.paths = resolvedPaths;
1291
1292
  return output;
1292
1293
  }
1294
+ const NODE_BUILTINS = new Set([
1295
+ 'assert',
1296
+ 'buffer',
1297
+ 'child_process',
1298
+ 'cluster',
1299
+ 'console',
1300
+ 'constants',
1301
+ 'crypto',
1302
+ 'dgram',
1303
+ 'dns',
1304
+ 'domain',
1305
+ 'events',
1306
+ 'fs',
1307
+ 'fs/promises',
1308
+ 'http',
1309
+ 'http2',
1310
+ 'https',
1311
+ 'inspector',
1312
+ 'module',
1313
+ 'net',
1314
+ 'os',
1315
+ 'path',
1316
+ 'perf_hooks',
1317
+ 'process',
1318
+ 'punycode',
1319
+ 'querystring',
1320
+ 'readline',
1321
+ 'repl',
1322
+ 'stream',
1323
+ 'string_decoder',
1324
+ 'timers',
1325
+ 'tls',
1326
+ 'trace_events',
1327
+ 'tty',
1328
+ 'url',
1329
+ 'util',
1330
+ 'v8',
1331
+ 'vm',
1332
+ 'worker_threads',
1333
+ 'zlib'
1334
+ ]);
1335
+ const NODE_BUILD_TOOLS = new Set([
1336
+ 'fs-extra',
1337
+ 'esbuild',
1338
+ 'playwright',
1339
+ 'playwright-core',
1340
+ 'puppeteer',
1341
+ 'puppeteer-core',
1342
+ 'webpack',
1343
+ 'rollup',
1344
+ 'vite',
1345
+ 'replace-in-file',
1346
+ 'zip-dir',
1347
+ 'archiver',
1348
+ 'adm-zip',
1349
+ 'chokidar',
1350
+ 'glob',
1351
+ 'fast-glob',
1352
+ 'rimraf',
1353
+ 'yargs',
1354
+ 'execa',
1355
+ 'cross-spawn',
1356
+ 'shelljs',
1357
+ 'web-ext',
1358
+ 'dotenv',
1359
+ 'node-fetch',
1360
+ 'minimist',
1361
+ 'ora',
1362
+ 'chalk',
1363
+ 'gulp',
1364
+ 'grunt',
1365
+ 'ncp',
1366
+ 'del',
1367
+ 'cpy',
1368
+ 'tsx',
1369
+ 'ts-node',
1370
+ 'nodemon',
1371
+ 'concurrently'
1372
+ ]);
1373
+ function importsNodeOnly(specifier) {
1374
+ if (specifier.startsWith('node:')) return true;
1375
+ const bare = specifier.startsWith('@') ? specifier.split('/').slice(0, 2).join('/') : specifier.split('/')[0];
1376
+ return NODE_BUILTINS.has(specifier) || NODE_BUILTINS.has(bare) || NODE_BUILD_TOOLS.has(bare);
1377
+ }
1378
+ function isNodeToolingScript(absPath) {
1379
+ let source;
1380
+ try {
1381
+ source = fs_0.readFileSync(absPath, 'utf8');
1382
+ } catch {
1383
+ return false;
1384
+ }
1385
+ if (/^#!.*\bnode\b/.test(source)) return true;
1386
+ const specifierRe = /(?:require\s*\(\s*|(?:import|export)\b[^'"()]*?\bfrom\s*|import\s*)['"]([^'"]+)['"]/g;
1387
+ let match;
1388
+ while(null !== (match = specifierRe.exec(source)))if (importsNodeOnly(match[1])) return true;
1389
+ return false;
1390
+ }
1391
+ function filterNodeToolingScripts(list) {
1392
+ const next = {};
1393
+ for (const [key, value] of Object.entries(list || {})){
1394
+ const paths = Array.isArray(value) ? value : value ? [
1395
+ value
1396
+ ] : [];
1397
+ const kept = paths.filter((entry)=>{
1398
+ const abs = String(entry);
1399
+ if (!path_0.isAbsolute(abs)) return true;
1400
+ return !isNodeToolingScript(abs);
1401
+ });
1402
+ if (0 !== kept.length) next[key] = Array.isArray(value) ? kept : kept[0];
1403
+ }
1404
+ return next;
1405
+ }
1293
1406
  function isUnderPublicDir(entry, projectRoot, publicDir) {
1294
1407
  if (!entry) return false;
1295
1408
  const normalizedEntry = String(entry);
@@ -1331,7 +1444,7 @@ function finalizeSpecialFoldersData(data, projectRoot, publicDir) {
1331
1444
  return {
1332
1445
  ...data,
1333
1446
  pages: filterPublicEntrypoints(data.pages, projectRoot, publicDir),
1334
- scripts: filterPublicEntrypoints(data.scripts, projectRoot, publicDir),
1447
+ scripts: filterPublicEntrypoints(filterNodeToolingScripts(data.scripts), projectRoot, publicDir),
1335
1448
  extensions: {
1336
1449
  dir: './extensions'
1337
1450
  }
@@ -1,2 +1,2 @@
1
- {"type":"compile_start","ts":"2026-07-01T12:24:45.714Z","command":"start","browser":"chrome"}
2
- {"type":"compile_success","ts":"2026-07-01T12:24:46.755Z","command":"start","browser":"chrome","durationMs":1141,"errorCount":0}
1
+ {"type":"compile_start","ts":"2026-07-02T22:05:33.806Z","command":"start","browser":"chrome"}
2
+ {"type":"compile_success","ts":"2026-07-02T22:05:34.708Z","command":"start","browser":"chrome","durationMs":1001,"errorCount":0}
@@ -2,15 +2,15 @@
2
2
  "schemaVersion": 2,
3
3
  "command": "start",
4
4
  "browser": "chrome",
5
- "runId": "mr21sqa5-f9an4c3n",
6
- "startedAt": "2026-07-01T12:24:45.581Z",
5
+ "runId": "mr41zhwp-qhdtc7n3",
6
+ "startedAt": "2026-07-02T22:05:33.673Z",
7
7
  "distPath": "/home/runner/work/extension.js/extension.js/extensions/extension-js-devtools/dist/chrome",
8
8
  "manifestPath": "/home/runner/work/extension.js/extension.js/extensions/extension-js-devtools/src/manifest.json",
9
9
  "port": null,
10
10
  "controlPort": null,
11
11
  "status": "ready",
12
- "pid": 2739,
13
- "ts": "2026-07-01T12:24:46.755Z",
14
- "compiledAt": "2026-07-01T12:24:46.755Z",
12
+ "pid": 2769,
13
+ "ts": "2026-07-02T22:05:34.708Z",
14
+ "compiledAt": "2026-07-02T22:05:34.708Z",
15
15
  "errors": []
16
16
  }
@@ -1,2 +1,2 @@
1
- {"type":"compile_start","ts":"2026-07-01T12:24:43.721Z","command":"start","browser":"chromium"}
2
- {"type":"compile_success","ts":"2026-07-01T12:24:45.017Z","command":"start","browser":"chromium","durationMs":1430,"errorCount":0}
1
+ {"type":"compile_start","ts":"2026-07-02T22:05:32.158Z","command":"start","browser":"chromium"}
2
+ {"type":"compile_success","ts":"2026-07-02T22:05:33.126Z","command":"start","browser":"chromium","durationMs":1068,"errorCount":0}
@@ -2,15 +2,15 @@
2
2
  "schemaVersion": 2,
3
3
  "command": "start",
4
4
  "browser": "chromium",
5
- "runId": "mr21sopt-8rryi2au",
6
- "startedAt": "2026-07-01T12:24:43.553Z",
5
+ "runId": "mr41zgmv-05ojuf3b",
6
+ "startedAt": "2026-07-02T22:05:32.024Z",
7
7
  "distPath": "/home/runner/work/extension.js/extension.js/extensions/extension-js-devtools/dist/chromium",
8
8
  "manifestPath": "/home/runner/work/extension.js/extension.js/extensions/extension-js-devtools/src/manifest.json",
9
9
  "port": null,
10
10
  "controlPort": null,
11
11
  "status": "ready",
12
- "pid": 2691,
13
- "ts": "2026-07-01T12:24:45.018Z",
14
- "compiledAt": "2026-07-01T12:24:45.018Z",
12
+ "pid": 2720,
13
+ "ts": "2026-07-02T22:05:33.126Z",
14
+ "compiledAt": "2026-07-02T22:05:33.126Z",
15
15
  "errors": []
16
16
  }
@@ -1,2 +1,2 @@
1
- {"type":"compile_start","ts":"2026-07-01T12:24:49.156Z","command":"start","browser":"edge"}
2
- {"type":"compile_success","ts":"2026-07-01T12:24:50.151Z","command":"start","browser":"edge","durationMs":1094,"errorCount":0}
1
+ {"type":"compile_start","ts":"2026-07-02T22:05:36.951Z","command":"start","browser":"edge"}
2
+ {"type":"compile_success","ts":"2026-07-02T22:05:37.903Z","command":"start","browser":"edge","durationMs":1046,"errorCount":0}
@@ -2,15 +2,15 @@
2
2
  "schemaVersion": 2,
3
3
  "command": "start",
4
4
  "browser": "edge",
5
- "runId": "mr21ssxs-ozidona8",
6
- "startedAt": "2026-07-01T12:24:49.024Z",
5
+ "runId": "mr41zkc9-251rouym",
6
+ "startedAt": "2026-07-02T22:05:36.825Z",
7
7
  "distPath": "/home/runner/work/extension.js/extension.js/extensions/extension-js-devtools/dist/edge",
8
8
  "manifestPath": "/home/runner/work/extension.js/extension.js/extensions/extension-js-devtools/src/manifest.json",
9
9
  "port": null,
10
10
  "controlPort": null,
11
11
  "status": "ready",
12
- "pid": 2836,
13
- "ts": "2026-07-01T12:24:50.152Z",
14
- "compiledAt": "2026-07-01T12:24:50.152Z",
12
+ "pid": 2865,
13
+ "ts": "2026-07-02T22:05:37.903Z",
14
+ "compiledAt": "2026-07-02T22:05:37.903Z",
15
15
  "errors": []
16
16
  }
@@ -1,2 +1,2 @@
1
- {"type":"compile_start","ts":"2026-07-01T12:24:47.467Z","command":"start","browser":"firefox"}
2
- {"type":"compile_success","ts":"2026-07-01T12:24:48.457Z","command":"start","browser":"firefox","durationMs":1094,"errorCount":0}
1
+ {"type":"compile_start","ts":"2026-07-02T22:05:35.387Z","command":"start","browser":"firefox"}
2
+ {"type":"compile_success","ts":"2026-07-02T22:05:36.278Z","command":"start","browser":"firefox","durationMs":988,"errorCount":0}
@@ -2,15 +2,15 @@
2
2
  "schemaVersion": 2,
3
3
  "command": "start",
4
4
  "browser": "firefox",
5
- "runId": "mr21srmr-avytz10v",
6
- "startedAt": "2026-07-01T12:24:47.331Z",
5
+ "runId": "mr41zj4o-v8m2lcea",
6
+ "startedAt": "2026-07-02T22:05:35.256Z",
7
7
  "distPath": "/home/runner/work/extension.js/extension.js/extensions/extension-js-devtools/dist/firefox",
8
8
  "manifestPath": "/home/runner/work/extension.js/extension.js/extensions/extension-js-devtools/src/manifest.json",
9
9
  "port": null,
10
10
  "controlPort": null,
11
11
  "status": "ready",
12
- "pid": 2787,
13
- "ts": "2026-07-01T12:24:48.457Z",
14
- "compiledAt": "2026-07-01T12:24:48.457Z",
12
+ "pid": 2817,
13
+ "ts": "2026-07-02T22:05:36.278Z",
14
+ "compiledAt": "2026-07-02T22:05:36.278Z",
15
15
  "errors": []
16
16
  }
@@ -1,2 +1,2 @@
1
- {"type":"compile_start","ts":"2026-07-01T12:24:51.352Z","command":"start","browser":"chrome"}
2
- {"type":"compile_success","ts":"2026-07-01T12:24:51.390Z","command":"start","browser":"chrome","durationMs":41,"errorCount":0}
1
+ {"type":"compile_start","ts":"2026-07-02T22:05:39.120Z","command":"start","browser":"chrome"}
2
+ {"type":"compile_success","ts":"2026-07-02T22:05:39.165Z","command":"start","browser":"chrome","durationMs":45,"errorCount":0}
@@ -2,15 +2,15 @@
2
2
  "schemaVersion": 2,
3
3
  "command": "start",
4
4
  "browser": "chrome",
5
- "runId": "mr21sups-pnyf1k95",
6
- "startedAt": "2026-07-01T12:24:51.328Z",
5
+ "runId": "mr41zm3e-17zu6rht",
6
+ "startedAt": "2026-07-02T22:05:39.098Z",
7
7
  "distPath": "/home/runner/work/extension.js/extension.js/extensions/extension-js-theme/dist/chrome",
8
8
  "manifestPath": "/home/runner/work/extension.js/extension.js/extensions/extension-js-theme/manifest.json",
9
9
  "port": null,
10
10
  "controlPort": null,
11
11
  "status": "ready",
12
- "pid": 2924,
13
- "ts": "2026-07-01T12:24:51.391Z",
14
- "compiledAt": "2026-07-01T12:24:51.391Z",
12
+ "pid": 2953,
13
+ "ts": "2026-07-02T22:05:39.165Z",
14
+ "compiledAt": "2026-07-02T22:05:39.165Z",
15
15
  "errors": []
16
16
  }
@@ -1,2 +1,2 @@
1
- {"type":"compile_start","ts":"2026-07-01T12:24:50.747Z","command":"start","browser":"chromium"}
2
- {"type":"compile_success","ts":"2026-07-01T12:24:50.788Z","command":"start","browser":"chromium","durationMs":42,"errorCount":0}
1
+ {"type":"compile_start","ts":"2026-07-02T22:05:38.526Z","command":"start","browser":"chromium"}
2
+ {"type":"compile_success","ts":"2026-07-02T22:05:38.579Z","command":"start","browser":"chromium","durationMs":54,"errorCount":0}
@@ -2,15 +2,15 @@
2
2
  "schemaVersion": 2,
3
3
  "command": "start",
4
4
  "browser": "chromium",
5
- "runId": "mr21su91-cngmy4pk",
6
- "startedAt": "2026-07-01T12:24:50.725Z",
5
+ "runId": "mr41zlmv-kr28twg9",
6
+ "startedAt": "2026-07-02T22:05:38.503Z",
7
7
  "distPath": "/home/runner/work/extension.js/extension.js/extensions/extension-js-theme/dist/chromium",
8
8
  "manifestPath": "/home/runner/work/extension.js/extension.js/extensions/extension-js-theme/manifest.json",
9
9
  "port": null,
10
10
  "controlPort": null,
11
11
  "status": "ready",
12
- "pid": 2884,
13
- "ts": "2026-07-01T12:24:50.788Z",
14
- "compiledAt": "2026-07-01T12:24:50.788Z",
12
+ "pid": 2913,
13
+ "ts": "2026-07-02T22:05:38.579Z",
14
+ "compiledAt": "2026-07-02T22:05:38.579Z",
15
15
  "errors": []
16
16
  }
@@ -1,2 +1,2 @@
1
- {"type":"compile_start","ts":"2026-07-01T12:24:52.541Z","command":"start","browser":"edge"}
2
- {"type":"compile_success","ts":"2026-07-01T12:24:52.579Z","command":"start","browser":"edge","durationMs":41,"errorCount":0}
1
+ {"type":"compile_start","ts":"2026-07-02T22:05:40.297Z","command":"start","browser":"edge"}
2
+ {"type":"compile_success","ts":"2026-07-02T22:05:40.341Z","command":"start","browser":"edge","durationMs":44,"errorCount":0}
@@ -2,15 +2,15 @@
2
2
  "schemaVersion": 2,
3
3
  "command": "start",
4
4
  "browser": "edge",
5
- "runId": "mr21svmt-nz0hablw",
6
- "startedAt": "2026-07-01T12:24:52.517Z",
5
+ "runId": "mr41zn01-2eq0cfyd",
6
+ "startedAt": "2026-07-02T22:05:40.274Z",
7
7
  "distPath": "/home/runner/work/extension.js/extension.js/extensions/extension-js-theme/dist/edge",
8
8
  "manifestPath": "/home/runner/work/extension.js/extension.js/extensions/extension-js-theme/manifest.json",
9
9
  "port": null,
10
10
  "controlPort": null,
11
11
  "status": "ready",
12
- "pid": 3004,
13
- "ts": "2026-07-01T12:24:52.579Z",
14
- "compiledAt": "2026-07-01T12:24:52.579Z",
12
+ "pid": 3033,
13
+ "ts": "2026-07-02T22:05:40.341Z",
14
+ "compiledAt": "2026-07-02T22:05:40.341Z",
15
15
  "errors": []
16
16
  }
@@ -1,4 +1,6 @@
1
- {"type":"compile_start","ts":"2026-07-01T12:24:51.946Z","command":"start","browser":"firefox"}
2
- {"type":"compile_success","ts":"2026-07-01T12:24:51.986Z","command":"start","browser":"firefox","durationMs":41,"errorCount":0}
3
- {"type":"compile_start","ts":"2026-07-01T12:25:15.673Z","command":"start","browser":"firefox"}
4
- {"type":"compile_success","ts":"2026-07-01T12:25:15.717Z","command":"start","browser":"firefox","durationMs":44,"errorCount":0}
1
+ {"type":"compile_start","ts":"2026-07-02T22:05:39.713Z","command":"start","browser":"firefox"}
2
+ {"type":"compile_success","ts":"2026-07-02T22:05:39.758Z","command":"start","browser":"firefox","durationMs":47,"errorCount":0}
3
+ {"type":"compile_start","ts":"2026-07-02T22:06:02.075Z","command":"start","browser":"firefox"}
4
+ {"type":"compile_success","ts":"2026-07-02T22:06:02.121Z","command":"start","browser":"firefox","durationMs":47,"errorCount":0}
5
+ {"type":"compile_start","ts":"2026-07-02T22:08:13.332Z","command":"start","browser":"firefox"}
6
+ {"type":"compile_success","ts":"2026-07-02T22:08:13.367Z","command":"start","browser":"firefox","durationMs":36,"errorCount":0}
@@ -2,15 +2,15 @@
2
2
  "schemaVersion": 2,
3
3
  "command": "start",
4
4
  "browser": "firefox",
5
- "runId": "mr21tdhb-65de24w2",
6
- "startedAt": "2026-07-01T12:25:15.647Z",
5
+ "runId": "mr422x32-34zx6cpo",
6
+ "startedAt": "2026-07-02T22:08:13.310Z",
7
7
  "distPath": "/home/runner/work/extension.js/extension.js/extensions/extension-js-theme/dist/firefox",
8
8
  "manifestPath": "/home/runner/work/extension.js/extension.js/extensions/extension-js-theme/manifest.json",
9
9
  "port": null,
10
10
  "controlPort": null,
11
11
  "status": "ready",
12
- "pid": 4527,
13
- "ts": "2026-07-01T12:25:15.717Z",
14
- "compiledAt": "2026-07-01T12:25:15.717Z",
12
+ "pid": 8279,
13
+ "ts": "2026-07-02T22:08:13.367Z",
14
+ "compiledAt": "2026-07-02T22:08:13.367Z",
15
15
  "errors": []
16
16
  }
@@ -1,6 +1,8 @@
1
1
  import { createRequire as __extjsCreateRequire } from "node:module"; const require = __extjsCreateRequire(import.meta.url);
2
2
  import * as __rspack_external_fs from "fs";
3
3
  const BASE64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
4
+ const CONCAT_UMD_WRAP_OPEN = ';(function (module, exports, define, require) {';
5
+ const CONCAT_UMD_WRAP_CLOSE = '}).call(typeof globalThis !== "undefined" ? globalThis : this, void 0, void 0, void 0, void 0);';
4
6
  function vlqEncode(value) {
5
7
  let vlq = value < 0 ? (-value << 1) + 1 : value << 1;
6
8
  let encoded = '';
@@ -35,6 +37,8 @@ function classicConcatLoader(_source) {
35
37
  outputLines.push(`import ${JSON.stringify(String(css))};`);
36
38
  lineMappings.push(null);
37
39
  }
40
+ outputLines.push(CONCAT_UMD_WRAP_OPEN);
41
+ lineMappings.push(null);
38
42
  if (feature) {
39
43
  outputLines.push(`/* extension.js classic content-script concatenation: ${feature} */`);
40
44
  lineMappings.push(null);
@@ -59,6 +63,8 @@ function classicConcatLoader(_source) {
59
63
  lineMappings.push(null);
60
64
  }
61
65
  }
66
+ outputLines.push(CONCAT_UMD_WRAP_CLOSE);
67
+ lineMappings.push(null);
62
68
  const output = outputLines.join('\n');
63
69
  let prevSrcIdx = 0;
64
70
  let prevSrcLine = 0;
@@ -1,6 +1,8 @@
1
1
  import { createRequire as __extjsCreateRequire } from "node:module"; const require = __extjsCreateRequire(import.meta.url);
2
2
  import * as __rspack_external_fs from "fs";
3
3
  const BASE64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
4
+ const CONCAT_UMD_WRAP_OPEN = ';(function (module, exports, define, require) {';
5
+ const CONCAT_UMD_WRAP_CLOSE = '}).call(typeof globalThis !== "undefined" ? globalThis : this, void 0, void 0, void 0, void 0);';
4
6
  function vlqEncode(value) {
5
7
  let vlq = value < 0 ? (-value << 1) + 1 : value << 1;
6
8
  let encoded = '';
@@ -35,6 +37,8 @@ function classicConcatLoader(_source) {
35
37
  outputLines.push(`import ${JSON.stringify(String(css))};`);
36
38
  lineMappings.push(null);
37
39
  }
40
+ outputLines.push(CONCAT_UMD_WRAP_OPEN);
41
+ lineMappings.push(null);
38
42
  if (feature) {
39
43
  outputLines.push(`/* extension.js classic content-script concatenation: ${feature} */`);
40
44
  lineMappings.push(null);
@@ -59,6 +63,8 @@ function classicConcatLoader(_source) {
59
63
  lineMappings.push(null);
60
64
  }
61
65
  }
66
+ outputLines.push(CONCAT_UMD_WRAP_CLOSE);
67
+ lineMappings.push(null);
62
68
  const output = outputLines.join('\n');
63
69
  let prevSrcIdx = 0;
64
70
  let prevSrcLine = 0;
package/package.json CHANGED
@@ -34,7 +34,7 @@
34
34
  "runtime"
35
35
  ],
36
36
  "name": "extension-develop",
37
- "version": "4.0.2",
37
+ "version": "4.0.3-canary.327.3dc6ac6",
38
38
  "description": "Develop, build, preview, and package Extension.js projects.",
39
39
  "author": {
40
40
  "name": "Cezar Augusto",