extension-develop 3.0.0-next.9 → 3.1.0-next.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +56 -16
  2. package/dist/215.js +546 -0
  3. package/dist/323.js +425 -0
  4. package/dist/419.js +44 -0
  5. package/dist/547.js +8444 -0
  6. package/dist/552.js +54 -0
  7. package/dist/928.js +416 -0
  8. package/dist/add-centralized-logger-script-background.js +3 -3
  9. package/dist/add-centralized-logger-script-content.js +4 -4
  10. package/dist/add-centralized-logger-script.js +18 -27
  11. package/dist/add-hmr-accept-code.js +3 -3
  12. package/dist/content-script-wrapper.js +114 -32
  13. package/dist/ensure-hmr-for-scripts.js +3 -3
  14. package/dist/extension-js-devtools/chrome/assets/logo.7dc70d61.png +0 -0
  15. package/dist/extension-js-devtools/chrome/background/service_worker.js +26 -0
  16. package/dist/extension-js-devtools/chrome/chrome_url_overrides/newtab.html +23 -0
  17. package/dist/extension-js-devtools/chrome/devtools/index.html +12 -0
  18. package/dist/extension-js-devtools/chrome/devtools/index.js +1 -0
  19. package/dist/extension-js-devtools/chrome/icons/logo.png +0 -0
  20. package/dist/extension-js-devtools/chrome/logo.png +0 -0
  21. package/dist/extension-js-devtools/chrome/manifest.json +44 -0
  22. package/dist/extension-js-devtools/chrome/pages/centralized-logger.css +2 -0
  23. package/dist/extension-js-devtools/chrome/pages/centralized-logger.html +12 -0
  24. package/dist/extension-js-devtools/chrome/pages/centralized-logger.js +16 -0
  25. package/dist/extension-js-devtools/chrome/pages/welcome.css +2 -0
  26. package/dist/extension-js-devtools/chrome/pages/welcome.html +11 -0
  27. package/dist/extension-js-devtools/chrome/pages/welcome.js +21 -0
  28. package/dist/extension-js-devtools/chrome/scripts/logger-client.js +1 -0
  29. package/dist/extension-js-devtools/chromium/assets/logo.7dc70d61.png +0 -0
  30. package/dist/extension-js-devtools/chromium/background/service_worker.js +26 -0
  31. package/dist/extension-js-devtools/chromium/chrome_url_overrides/newtab.html +23 -0
  32. package/dist/extension-js-devtools/chromium/devtools/index.html +12 -0
  33. package/dist/extension-js-devtools/chromium/devtools/index.js +1 -0
  34. package/dist/extension-js-devtools/chromium/icons/logo.png +0 -0
  35. package/dist/extension-js-devtools/chromium/logo.png +0 -0
  36. package/dist/extension-js-devtools/chromium/manifest.json +44 -0
  37. package/dist/extension-js-devtools/chromium/pages/centralized-logger.css +2 -0
  38. package/dist/extension-js-devtools/chromium/pages/centralized-logger.html +12 -0
  39. package/dist/extension-js-devtools/chromium/pages/centralized-logger.js +16 -0
  40. package/dist/extension-js-devtools/chromium/pages/welcome.css +2 -0
  41. package/dist/extension-js-devtools/chromium/pages/welcome.html +11 -0
  42. package/dist/extension-js-devtools/chromium/pages/welcome.js +21 -0
  43. package/dist/extension-js-devtools/chromium/scripts/logger-client.js +1 -0
  44. package/dist/extension-js-devtools/edge/assets/logo.7dc70d61.png +0 -0
  45. package/dist/extension-js-devtools/edge/background/service_worker.js +26 -0
  46. package/dist/extension-js-devtools/edge/chrome_url_overrides/newtab.html +23 -0
  47. package/dist/extension-js-devtools/edge/devtools/index.html +12 -0
  48. package/dist/extension-js-devtools/edge/devtools/index.js +1 -0
  49. package/dist/extension-js-devtools/edge/icons/logo.png +0 -0
  50. package/dist/extension-js-devtools/edge/logo.png +0 -0
  51. package/dist/extension-js-devtools/edge/manifest.json +44 -0
  52. package/dist/extension-js-devtools/edge/pages/centralized-logger.css +2 -0
  53. package/dist/extension-js-devtools/edge/pages/centralized-logger.html +12 -0
  54. package/dist/extension-js-devtools/edge/pages/centralized-logger.js +16 -0
  55. package/dist/extension-js-devtools/edge/pages/welcome.css +2 -0
  56. package/dist/extension-js-devtools/edge/pages/welcome.html +11 -0
  57. package/dist/extension-js-devtools/edge/pages/welcome.js +21 -0
  58. package/dist/extension-js-devtools/edge/scripts/logger-client.js +1 -0
  59. package/dist/extension-js-devtools/firefox/assets/logo.7dc70d61.png +0 -0
  60. package/dist/extension-js-devtools/firefox/background/scripts.js +26 -0
  61. package/dist/extension-js-devtools/firefox/devtools/index.html +12 -0
  62. package/dist/extension-js-devtools/firefox/devtools/index.js +1 -0
  63. package/dist/extension-js-devtools/firefox/icons/logo.png +0 -0
  64. package/dist/extension-js-devtools/firefox/logo.png +0 -0
  65. package/dist/extension-js-devtools/firefox/manifest.json +30 -0
  66. package/dist/extension-js-devtools/firefox/pages/centralized-logger.css +2 -0
  67. package/dist/extension-js-devtools/firefox/pages/centralized-logger.html +12 -0
  68. package/dist/extension-js-devtools/firefox/pages/centralized-logger.js +16 -0
  69. package/dist/extension-js-devtools/firefox/pages/welcome.css +2 -0
  70. package/dist/extension-js-devtools/firefox/pages/welcome.html +11 -0
  71. package/dist/extension-js-devtools/firefox/pages/welcome.js +21 -0
  72. package/dist/extension-js-devtools/firefox/scripts/logger-client.js +1 -0
  73. package/dist/main-world-bridge.js +109 -0
  74. package/dist/minimum-chromium-file.js +2 -3
  75. package/dist/minimum-firefox-file.js +2 -3
  76. package/dist/minimum-script-file.js +25 -1
  77. package/dist/module.js +132661 -13155
  78. package/dist/module.js.LICENSE.txt +24 -0
  79. package/dist/resolve-paths-loader.js +61 -102
  80. package/dist/warn-no-default-export.js +173 -10
  81. package/package.json +55 -49
  82. package/dist/930.js +0 -44
package/dist/323.js ADDED
@@ -0,0 +1,425 @@
1
+ "use strict";
2
+ exports.ids = [
3
+ "323"
4
+ ];
5
+ exports.modules = {
6
+ "./webpack/plugin-browsers/run-chromium/chromium-launch/setup-cdp-after-launch.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
7
+ __webpack_require__.d(__webpack_exports__, {
8
+ setupCdpAfterLaunch: ()=>setupCdpAfterLaunch
9
+ });
10
+ var messages = __webpack_require__("./webpack/plugin-browsers/browsers-lib/messages.ts");
11
+ var shared_utils = __webpack_require__("./webpack/plugin-browsers/browsers-lib/shared-utils.ts");
12
+ var banner = __webpack_require__("./webpack/plugin-browsers/browsers-lib/banner.ts");
13
+ var external_path_ = __webpack_require__("path");
14
+ var external_fs_ = __webpack_require__("fs");
15
+ async function deriveExtensionIdFromTargetsHelper(cdp, outPath, maxRetries = 20, backoffMs = 200) {
16
+ let expectedName;
17
+ try {
18
+ const manifest = JSON.parse(external_fs_.readFileSync(external_path_.join(outPath, 'manifest.json'), 'utf-8'));
19
+ expectedName = manifest?.name;
20
+ } catch {}
21
+ let retries = 0;
22
+ while(retries <= maxRetries){
23
+ try {
24
+ const targets = await cdp.getTargets();
25
+ if (expectedName) for (const t of targets || []){
26
+ const url = String(t?.url || '');
27
+ const type = String(t?.type || '');
28
+ if (!('service_worker' === type && url.startsWith('chrome-extension://'))) continue;
29
+ const targetId = t?.targetId;
30
+ if (targetId) try {
31
+ const sessionId = await cdp.attachToTarget(targetId);
32
+ if (!sessionId) continue;
33
+ await cdp.sendCommand('Runtime.enable', {}, sessionId);
34
+ const gotName = String(await cdp.evaluate(sessionId, '(()=>{try{return chrome.runtime.getManifest().name}catch(_){return null}})()'));
35
+ if (gotName && String(gotName) === expectedName) {
36
+ const gotIdStr = String(await cdp.evaluate(sessionId, '(()=>{try{return chrome.runtime.id}catch(_){return null}})()') || '');
37
+ if (gotIdStr && gotIdStr.length > 0) return gotIdStr;
38
+ }
39
+ } catch {}
40
+ }
41
+ for (const t of targets || []){
42
+ const url = String(t?.url || '');
43
+ const type = String(t?.type || '');
44
+ if (!url.startsWith('chrome-extension://')) continue;
45
+ const typeOk = [
46
+ 'service_worker',
47
+ 'background_page',
48
+ 'worker'
49
+ ].includes(type);
50
+ if (!typeOk) continue;
51
+ const match = url.match(/^chrome-extension:\/\/([^\/]+)/);
52
+ if (match && match[1]) return match[1];
53
+ }
54
+ } catch {}
55
+ await new Promise((r)=>setTimeout(r, backoffMs));
56
+ retries++;
57
+ }
58
+ return null;
59
+ }
60
+ var cdp_client = __webpack_require__("./webpack/plugin-browsers/run-chromium/chromium-source-inspection/cdp-client.ts");
61
+ var discovery = __webpack_require__("./webpack/plugin-browsers/run-chromium/chromium-source-inspection/discovery.ts");
62
+ async function connectToChromeCdp(cdpPort) {
63
+ let retries = 0;
64
+ const maxRetries = 60;
65
+ const backoffMs = 250;
66
+ while(retries < maxRetries){
67
+ const ready = await (0, discovery.z)(cdpPort);
68
+ if (ready) break;
69
+ retries++;
70
+ await new Promise((r)=>setTimeout(r, backoffMs));
71
+ }
72
+ const cdp = new cdp_client.n(cdpPort, '127.0.0.1');
73
+ await cdp.connect();
74
+ try {
75
+ await cdp.sendCommand('Target.setDiscoverTargets', {
76
+ discover: true
77
+ });
78
+ await cdp.sendCommand('Target.setAutoAttach', {
79
+ autoAttach: true,
80
+ waitForDebuggerOnStart: false,
81
+ flatten: true
82
+ });
83
+ } catch (error) {
84
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.warn(messages.wXK(String(error?.message || error)));
85
+ }
86
+ return cdp;
87
+ }
88
+ async function loadUnpackedIfNeeded(cdp, outPath) {
89
+ try {
90
+ const response = await cdp.sendCommand('Extensions.loadUnpacked', {
91
+ extensionPath: outPath,
92
+ options: {
93
+ failOnError: false
94
+ }
95
+ });
96
+ const id = String(response?.extensionId || '');
97
+ return id || null;
98
+ } catch {
99
+ return null;
100
+ }
101
+ }
102
+ function readManifestInfo(outPath) {
103
+ try {
104
+ const manifestPath = external_path_.join(outPath, 'manifest.json');
105
+ const manifest = JSON.parse(external_fs_.readFileSync(manifestPath, 'utf-8'));
106
+ return {
107
+ name: manifest?.name,
108
+ version: manifest?.version
109
+ };
110
+ } catch {
111
+ return null;
112
+ }
113
+ }
114
+ function registerAutoEnableLogging(cdp, getExtensionId) {
115
+ cdp.onProtocolEvent((message)=>{
116
+ try {
117
+ if (!message || !message.method) return;
118
+ if ('Target.attachedToTarget' === message.method) {
119
+ const params = message.params || {};
120
+ const targetInfo = params.targetInfo || {};
121
+ const sessionId = params.sessionId;
122
+ const url = String(targetInfo.url || '');
123
+ const type = String(targetInfo.type || '');
124
+ const extId = getExtensionId();
125
+ const matchesExtension = !!(extId && url.includes(`chrome-extension://${extId}/`) || 'service_worker' === type);
126
+ if (sessionId && matchesExtension) {
127
+ cdp.sendCommand('Runtime.enable', {}, sessionId).catch(()=>{});
128
+ cdp.sendCommand('Log.enable', {}, sessionId).catch(()=>{});
129
+ }
130
+ } else if ('Runtime.consoleAPICalled' === message.method || 'Log.entryAdded' === message.method) {
131
+ if ('1' === String(process.env.EXTENSION_VERBOSE || '').trim()) {
132
+ const ts = new Date().toISOString();
133
+ console.log(messages.bvI(ts, message.params));
134
+ }
135
+ }
136
+ } catch (error) {
137
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.warn(messages.KK1(String(error?.message || error)));
138
+ }
139
+ });
140
+ }
141
+ function _define_property(obj, key, value) {
142
+ if (key in obj) Object.defineProperty(obj, key, {
143
+ value: value,
144
+ enumerable: true,
145
+ configurable: true,
146
+ writable: true
147
+ });
148
+ else obj[key] = value;
149
+ return obj;
150
+ }
151
+ class CDPExtensionController {
152
+ async connect() {
153
+ if (this.cdp) return;
154
+ this.cdp = await connectToChromeCdp(this.cdpPort);
155
+ try {
156
+ await this.cdp.sendCommand('Target.setDiscoverTargets', {
157
+ discover: true
158
+ });
159
+ await this.cdp.sendCommand('Target.setAutoAttach', {
160
+ autoAttach: true,
161
+ waitForDebuggerOnStart: false,
162
+ flatten: true
163
+ });
164
+ } catch (error) {
165
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.warn(messages.wXK(String(error?.message || error)));
166
+ }
167
+ registerAutoEnableLogging(this.cdp, ()=>this.extensionId);
168
+ }
169
+ async ensureLoaded() {
170
+ if (!this.cdp) throw new Error('CDP not connected');
171
+ const exists = external_fs_.existsSync(this.outPath);
172
+ if (!exists) throw new Error(`Output path not found: ${this.outPath}`);
173
+ if (!this.extensionId) {
174
+ const id = await this.deriveExtensionIdFromTargets();
175
+ if (id) this.extensionId = id;
176
+ }
177
+ if (this.extensionId) try {
178
+ let info = null;
179
+ try {
180
+ info = await this.cdp.getExtensionInfo(this.extensionId);
181
+ } catch {}
182
+ if (!info) {
183
+ const manifest = JSON.parse(external_fs_.readFileSync(external_path_.join(this.outPath, 'manifest.json'), 'utf-8'));
184
+ return {
185
+ extensionId: this.extensionId,
186
+ name: manifest.name,
187
+ version: manifest.version
188
+ };
189
+ }
190
+ return {
191
+ extensionId: this.extensionId,
192
+ name: info?.extensionInfo?.name,
193
+ version: info?.extensionInfo?.version
194
+ };
195
+ } catch {}
196
+ try {
197
+ if (!this.extensionId) {
198
+ const id = await loadUnpackedIfNeeded(this.cdp, this.outPath);
199
+ if (id) this.extensionId = id;
200
+ }
201
+ if (!this.extensionId) this.extensionId = await this.deriveExtensionIdFromTargets(60, 250);
202
+ if (!this.extensionId) throw new Error('Failed to determine extension ID via CDP');
203
+ await this.enableLogging();
204
+ let name;
205
+ let version;
206
+ try {
207
+ const info = await this.cdp.getExtensionInfo(this.extensionId);
208
+ name = info?.extensionInfo?.name;
209
+ version = info?.extensionInfo?.version;
210
+ } catch (error) {
211
+ try {
212
+ const manifest = readManifestInfo(this.outPath);
213
+ name = String(manifest?.name || '') || void 0;
214
+ version = String(manifest?.version || '') || void 0;
215
+ } catch (e2) {
216
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.warn('[CDP] Fallback manifest read failed:', String(e2?.message || e2));
217
+ }
218
+ }
219
+ return {
220
+ extensionId: this.extensionId,
221
+ name,
222
+ version
223
+ };
224
+ } catch (error) {
225
+ throw new Error(`Failed to load extension from ${external_path_.resolve(this.outPath)}: ${String(error.message || error)}`);
226
+ }
227
+ }
228
+ async deriveExtensionIdFromTargets(maxRetries = 20, backoffMs = 200) {
229
+ if (!this.cdp) return null;
230
+ return await deriveExtensionIdFromTargetsHelper(this.cdp, this.outPath, maxRetries, backoffMs);
231
+ }
232
+ async hardReload() {
233
+ if (!this.cdp || !this.extensionId) return false;
234
+ try {
235
+ return await this.cdp.forceReloadExtension(this.extensionId);
236
+ } catch {
237
+ return false;
238
+ }
239
+ }
240
+ onProtocolEvent(cb) {
241
+ if (!this.cdp) throw new Error('CDP not connected');
242
+ this.cdp.onProtocolEvent((raw)=>{
243
+ const evt = raw;
244
+ cb(evt);
245
+ });
246
+ }
247
+ clearProtocolEventHandler() {
248
+ if (!this.cdp) return;
249
+ this.cdp.onProtocolEvent(()=>{});
250
+ }
251
+ async enableUnifiedLogging() {
252
+ if (!this.cdp) return;
253
+ try {
254
+ await this.cdp.enableAutoAttach();
255
+ await this.cdp.enableRuntimeAndLog();
256
+ try {
257
+ const targets = await this.cdp.getTargets();
258
+ for (const t of targets || []){
259
+ const type = String(t?.type || '');
260
+ if ('page' === type || 'service_worker' === type || 'background_page' === type || 'worker' === type) {
261
+ const targetId = String(t?.targetId || '');
262
+ if (!targetId) continue;
263
+ const sessionId = await this.cdp.attachToTarget(targetId);
264
+ await this.cdp.enableRuntimeAndLog(sessionId);
265
+ }
266
+ }
267
+ } catch {}
268
+ } catch {}
269
+ }
270
+ async enableRuntimeForSession(sessionId) {
271
+ if (!this.cdp) return;
272
+ try {
273
+ await this.cdp.enableRuntimeAndLog(sessionId);
274
+ } catch {}
275
+ }
276
+ async enableLogging() {
277
+ if (!this.cdp) return;
278
+ try {
279
+ const extId = this.extensionId;
280
+ this.onProtocolEvent(async (message)=>{
281
+ try {
282
+ if (!message || !message.method) return;
283
+ if ('Target.attachedToTarget' === message.method) {
284
+ const params = message.params || {};
285
+ const targetInfo = params.targetInfo || {
286
+ url: '',
287
+ type: ''
288
+ };
289
+ const sessionId = params.sessionId;
290
+ const url = String(targetInfo.url || '');
291
+ const type = String(targetInfo.type || '');
292
+ const matchesExtension = !!(this.extensionId && url.includes(`chrome-extension://${this.extensionId}/`) || extId && url.includes(`chrome-extension://${extId}/`) || 'service_worker' === type);
293
+ if (sessionId && matchesExtension) {
294
+ await this.cdp.sendCommand('Runtime.enable', {}, sessionId);
295
+ await this.cdp.sendCommand('Log.enable', {}, sessionId);
296
+ }
297
+ } else if ('Runtime.consoleAPICalled' === message.method || 'Log.entryAdded' === message.method) {
298
+ const ts = new Date().toISOString();
299
+ console.log(messages.bvI(ts, message.params));
300
+ }
301
+ } catch {}
302
+ });
303
+ } catch (e) {
304
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.warn('[CDP] enableLogging failed:', String(e));
305
+ }
306
+ }
307
+ async getInfoBestEffort() {
308
+ try {
309
+ if (!this.cdp) return null;
310
+ if (!this.extensionId) this.extensionId = await this.deriveExtensionIdFromTargets(20, 200);
311
+ if (!this.extensionId) return null;
312
+ let name;
313
+ let version;
314
+ try {
315
+ const info = await this.cdp.getExtensionInfo(this.extensionId);
316
+ name = info?.extensionInfo?.name;
317
+ version = info?.extensionInfo?.version;
318
+ } catch {
319
+ try {
320
+ const manifest = JSON.parse(external_fs_.readFileSync(external_path_.join(this.outPath, 'manifest.json'), 'utf-8'));
321
+ name = manifest?.name;
322
+ version = manifest?.version;
323
+ } catch {}
324
+ }
325
+ return {
326
+ extensionId: this.extensionId,
327
+ name,
328
+ version
329
+ };
330
+ } catch (error) {
331
+ return null;
332
+ }
333
+ }
334
+ constructor(args){
335
+ _define_property(this, "outPath", void 0);
336
+ _define_property(this, "browser", void 0);
337
+ _define_property(this, "cdpPort", void 0);
338
+ _define_property(this, "cdp", null);
339
+ _define_property(this, "extensionId", null);
340
+ this.outPath = args.outPath;
341
+ this.browser = args.browser;
342
+ this.cdpPort = args.cdpPort;
343
+ }
344
+ }
345
+ var extension_output_path = __webpack_require__("./webpack/plugin-browsers/run-chromium/chromium-launch/extension-output-path.ts");
346
+ async function setupCdpAfterLaunch(compilation, plugin, chromiumArgs) {
347
+ const loadExtensionFlag = chromiumArgs.find((flag)=>flag.startsWith('--load-extension='));
348
+ const extensionOutputPath = (0, extension_output_path.W)(compilation, loadExtensionFlag);
349
+ const remoteDebugPortFlag = chromiumArgs.find((flag)=>flag.startsWith('--remote-debugging-port='));
350
+ const chromeRemoteDebugPort = remoteDebugPortFlag ? parseInt(remoteDebugPortFlag.split('=')[1], 10) : (0, shared_utils.jl)(plugin.port, plugin.instanceId);
351
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) {
352
+ const userDataDirFlag = chromiumArgs.find((flag)=>flag.startsWith('--user-data-dir='));
353
+ if (userDataDirFlag) {
354
+ const userDataDir = userDataDirFlag.replace('--user-data-dir=', '').replace(/^"|"$/g, '');
355
+ console.log(messages.aIt(userDataDir));
356
+ }
357
+ console.log(messages.CYH(chromeRemoteDebugPort, chromeRemoteDebugPort));
358
+ }
359
+ const cdpExtensionController = new CDPExtensionController({
360
+ outPath: extensionOutputPath,
361
+ browser: 'chromium-based' === plugin.browser ? 'chrome' : plugin.browser,
362
+ cdpPort: chromeRemoteDebugPort
363
+ });
364
+ const retryAsync = async (operation, attempts = 5, initialDelayMs = 150)=>{
365
+ let lastError;
366
+ for(let attempt = 0; attempt < attempts; attempt++)try {
367
+ return await operation();
368
+ } catch (error) {
369
+ lastError = error;
370
+ const backoffMs = initialDelayMs * Math.pow(2, attempt);
371
+ await new Promise((resolve)=>setTimeout(resolve, backoffMs));
372
+ }
373
+ throw lastError;
374
+ };
375
+ await retryAsync(()=>cdpExtensionController.connect());
376
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(messages.M3V('127.0.0.1', chromeRemoteDebugPort));
377
+ const extensionControllerInfo = await cdpExtensionController.ensureLoaded();
378
+ try {
379
+ const mode = compilation?.options?.mode || 'development';
380
+ if ('development' === mode) {
381
+ const bannerPrinted = await (0, banner.a)({
382
+ outPath: extensionOutputPath,
383
+ browser: plugin.browser,
384
+ hostPort: {
385
+ host: '127.0.0.1',
386
+ port: chromeRemoteDebugPort
387
+ },
388
+ getInfo: async ()=>extensionControllerInfo,
389
+ browserVersionLine: plugin.browserVersionLine
390
+ });
391
+ if (!bannerPrinted) await (0, banner.a)({
392
+ outPath: extensionOutputPath,
393
+ browser: plugin.browser,
394
+ hostPort: {
395
+ host: '127.0.0.1',
396
+ port: chromeRemoteDebugPort
397
+ },
398
+ getInfo: async ()=>cdpExtensionController.getInfoBestEffort(),
399
+ browserVersionLine: plugin.browserVersionLine
400
+ });
401
+ } else if ('production' === mode) await (0, banner.M)({
402
+ browser: plugin.browser,
403
+ outPath: extensionOutputPath,
404
+ browserVersionLine: plugin.browserVersionLine,
405
+ runtime: {
406
+ extensionId: extensionControllerInfo.extensionId,
407
+ name: extensionControllerInfo.name,
408
+ version: extensionControllerInfo.version
409
+ }
410
+ });
411
+ } catch (bannerErr) {
412
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.warn(messages.$wD(String(bannerErr)));
413
+ try {
414
+ const mode = compilation?.options?.mode || 'development';
415
+ if ('production' === mode) await (0, banner.M)({
416
+ browser: plugin.browser,
417
+ outPath: extensionOutputPath,
418
+ browserVersionLine: plugin.browserVersionLine
419
+ });
420
+ } catch {}
421
+ }
422
+ plugin.cdpController = cdpExtensionController;
423
+ }
424
+ }
425
+ };
package/dist/419.js ADDED
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ exports.ids = [
3
+ "419"
4
+ ];
5
+ exports.modules = {
6
+ "./webpack/webpack-lib/zip.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
7
+ __webpack_require__.d(__webpack_exports__, {
8
+ downloadAndExtractZip: ()=>downloadAndExtractZip
9
+ });
10
+ var path__rspack_import_0 = __webpack_require__("path");
11
+ var adm_zip__rspack_import_1 = __webpack_require__("adm-zip");
12
+ var adm_zip__rspack_import_1_default = /*#__PURE__*/ __webpack_require__.n(adm_zip__rspack_import_1);
13
+ var _messages__rspack_import_2 = __webpack_require__("./webpack/webpack-lib/messages.ts");
14
+ async function downloadAndExtractZip(url, targetPath) {
15
+ const urlNoSearchParams = url.split('?')[0];
16
+ try {
17
+ console.log(_messages__rspack_import_2.Ud(urlNoSearchParams));
18
+ const res = await fetch(url, {
19
+ redirect: 'follow'
20
+ });
21
+ if (!res.ok || !res.body) throw new Error(`HTTP ${res.status} ${res.statusText}`);
22
+ const contentType = String(res.headers.get('content-type') || '');
23
+ const isZipExt = '.zip' === path__rspack_import_0.extname(urlNoSearchParams).toLowerCase();
24
+ const isZipType = /zip|octet-stream/i.test(contentType);
25
+ if (!isZipExt && !isZipType) throw new Error(`${_messages__rspack_import_2.tc(urlNoSearchParams, contentType)}`);
26
+ const extname = path__rspack_import_0.extname(urlNoSearchParams);
27
+ const basename = path__rspack_import_0.basename(urlNoSearchParams, extname);
28
+ const destinationPath = path__rspack_import_0.join(targetPath, basename);
29
+ console.log(_messages__rspack_import_2.gC(destinationPath));
30
+ const arrayBuffer = await res.arrayBuffer();
31
+ const zipBuffer = Buffer.from(arrayBuffer);
32
+ const zip = new (adm_zip__rspack_import_1_default())(zipBuffer);
33
+ zip.extractAllTo(destinationPath, true);
34
+ console.log(_messages__rspack_import_2.zM());
35
+ return destinationPath;
36
+ } catch (error) {
37
+ console.error(_messages__rspack_import_2.GW(error));
38
+ const err = new Error(`${_messages__rspack_import_2.GW(error)}`);
39
+ err.code = 'EZIP';
40
+ throw err;
41
+ }
42
+ }
43
+ }
44
+ };