wxt 0.20.10 → 0.20.12

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.
@@ -35,7 +35,7 @@ export function extensionApiMock(config) {
35
35
  }
36
36
  const setupTemplate = `
37
37
  import { vi } from 'vitest';
38
- import { fakeBrowser } from 'wxt/testing';
38
+ import { fakeBrowser } from 'wxt/testing/fake-browser';
39
39
 
40
40
  vi.stubGlobal("chrome", fakeBrowser);
41
41
  vi.stubGlobal("browser", fakeBrowser);
@@ -3,6 +3,7 @@ import { expand } from "dotenv-expand";
3
3
  export function loadEnv(mode, browser) {
4
4
  return expand(
5
5
  config({
6
+ quiet: true,
6
7
  // Files on top override files below
7
8
  path: [
8
9
  `.env.${mode}.${browser}.local`,
@@ -402,6 +402,7 @@ export function getContentScriptCssWebAccessibleResources(contentScripts, conten
402
402
  if (cssFile == null) return;
403
403
  resources.push({
404
404
  resources: [cssFile],
405
+ use_dynamic_url: true,
405
406
  matches: script.options.matches?.map(
406
407
  (matchPattern) => stripPathFromMatchPattern(matchPattern)
407
408
  ) ?? []
@@ -501,7 +502,6 @@ const mv2OnlyKeys = [
501
502
  "event_rules",
502
503
  "file_browser_handlers",
503
504
  "file_system_provider_capabilities",
504
- "input_components",
505
505
  "nacl_modules",
506
506
  "natively_connectable",
507
507
  "offline_enabled",
@@ -146,8 +146,8 @@ export declare const fakeManifest: (overrides?: {
146
146
  persistent?: boolean | undefined | undefined;
147
147
  } | undefined;
148
148
  content_security_policy?: string | undefined | undefined;
149
- optional_permissions?: (string | undefined)[] | (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
150
- permissions?: (string | undefined)[] | (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
149
+ optional_permissions?: (string | undefined)[] | undefined;
150
+ permissions?: (string | undefined)[] | undefined;
151
151
  web_accessible_resources?: (string | undefined)[] | undefined;
152
152
  name?: string | undefined;
153
153
  version?: string | undefined;
@@ -380,12 +380,19 @@ export declare const fakeManifest: (overrides?: {
380
380
  sandbox?: string | undefined;
381
381
  } | undefined;
382
382
  host_permissions?: (string | undefined)[] | undefined;
383
- optional_permissions?: (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
383
+ optional_permissions?: (Browser.runtime.ManifestOptionalPermission | undefined)[] | undefined;
384
384
  optional_host_permissions?: (string | undefined)[] | undefined;
385
- permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
385
+ permissions?: (Browser.runtime.ManifestPermission | undefined)[] | undefined;
386
386
  web_accessible_resources?: ({
387
387
  resources?: (string | undefined)[] | undefined;
388
+ use_dynamic_url?: boolean | undefined | undefined;
389
+ extension_ids?: (string | undefined)[] | undefined;
388
390
  matches?: (string | undefined)[] | undefined;
391
+ } | {
392
+ resources?: (string | undefined)[] | undefined;
393
+ use_dynamic_url?: boolean | undefined | undefined;
394
+ matches?: (string | undefined)[] | undefined;
395
+ extension_ids?: (string | undefined)[] | undefined;
389
396
  } | undefined)[] | undefined;
390
397
  name?: string | undefined;
391
398
  version?: string | undefined;
@@ -596,7 +603,7 @@ export declare const fakeUserManifest: (overrides?: {
596
603
  sandbox?: string | undefined;
597
604
  } | undefined;
598
605
  host_permissions?: (string | undefined)[] | undefined;
599
- optional_permissions?: (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
606
+ optional_permissions?: (Browser.runtime.ManifestOptionalPermission | undefined)[] | undefined;
600
607
  optional_host_permissions?: (string | undefined)[] | undefined;
601
608
  name?: string | undefined;
602
609
  version?: string | undefined;
@@ -811,7 +818,7 @@ export declare const fakeUserManifest: (overrides?: {
811
818
  strict_max_version?: string | undefined;
812
819
  } | undefined;
813
820
  } | undefined;
814
- permissions?: (Browser.runtime.ManifestPermissions | {
821
+ permissions?: (Browser.runtime.ManifestPermission | {
815
822
  readonly [x: number]: string | undefined;
816
823
  toString?: {} | undefined;
817
824
  charAt?: {} | undefined;
@@ -865,7 +872,14 @@ export declare const fakeUserManifest: (overrides?: {
865
872
  } | undefined)[] | undefined;
866
873
  web_accessible_resources?: (string | undefined)[] | ({
867
874
  resources?: (string | undefined)[] | undefined;
875
+ use_dynamic_url?: boolean | undefined | undefined;
876
+ extension_ids?: (string | undefined)[] | undefined;
877
+ matches?: (string | undefined)[] | undefined;
878
+ } | {
879
+ resources?: (string | undefined)[] | undefined;
880
+ use_dynamic_url?: boolean | undefined | undefined;
868
881
  matches?: (string | undefined)[] | undefined;
882
+ extension_ids?: (string | undefined)[] | undefined;
869
883
  } | undefined)[] | undefined;
870
884
  } | undefined) => UserManifest;
871
885
  export declare function fakeArray<T>(createItem: () => T, count?: number): T[];
@@ -1024,7 +1038,10 @@ export declare const fakeResolvedConfig: (overrides?: {
1024
1038
  injectImportsStringified?: {} | undefined;
1025
1039
  } | undefined)[] | undefined;
1026
1040
  virtualImports?: (string | undefined)[] | undefined;
1027
- dirs?: (string | undefined)[] | undefined;
1041
+ dirs?: (string | {
1042
+ glob?: string | undefined;
1043
+ types?: boolean | undefined;
1044
+ } | undefined)[] | undefined;
1028
1045
  dirsScanOptions?: {
1029
1046
  filePatterns?: (string | undefined)[] | undefined;
1030
1047
  fileFilter?: {} | undefined;
@@ -1064,7 +1081,7 @@ export declare const fakeResolvedConfig: (overrides?: {
1064
1081
  sandbox?: string | undefined;
1065
1082
  } | undefined;
1066
1083
  host_permissions?: (string | undefined)[] | undefined;
1067
- optional_permissions?: (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
1084
+ optional_permissions?: (Browser.runtime.ManifestOptionalPermission | undefined)[] | undefined;
1068
1085
  optional_host_permissions?: (string | undefined)[] | undefined;
1069
1086
  name?: string | undefined;
1070
1087
  version?: string | undefined;
@@ -1279,7 +1296,7 @@ export declare const fakeResolvedConfig: (overrides?: {
1279
1296
  strict_max_version?: string | undefined;
1280
1297
  } | undefined;
1281
1298
  } | undefined;
1282
- permissions?: (Browser.runtime.ManifestPermissions | {
1299
+ permissions?: (Browser.runtime.ManifestPermission | {
1283
1300
  readonly [x: number]: string | undefined;
1284
1301
  toString?: {} | undefined;
1285
1302
  charAt?: {} | undefined;
@@ -1333,7 +1350,14 @@ export declare const fakeResolvedConfig: (overrides?: {
1333
1350
  } | undefined)[] | undefined;
1334
1351
  web_accessible_resources?: (string | undefined)[] | ({
1335
1352
  resources?: (string | undefined)[] | undefined;
1353
+ use_dynamic_url?: boolean | undefined | undefined;
1354
+ extension_ids?: (string | undefined)[] | undefined;
1336
1355
  matches?: (string | undefined)[] | undefined;
1356
+ } | {
1357
+ resources?: (string | undefined)[] | undefined;
1358
+ use_dynamic_url?: boolean | undefined | undefined;
1359
+ matches?: (string | undefined)[] | undefined;
1360
+ extension_ids?: (string | undefined)[] | undefined;
1337
1361
  } | undefined)[] | undefined;
1338
1362
  } | undefined;
1339
1363
  fsCache?: {
@@ -1565,7 +1589,7 @@ export declare const fakeResolvedConfig: (overrides?: {
1565
1589
  sandbox?: string | undefined;
1566
1590
  } | undefined;
1567
1591
  host_permissions?: (string | undefined)[] | undefined;
1568
- optional_permissions?: (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
1592
+ optional_permissions?: (Browser.runtime.ManifestOptionalPermission | undefined)[] | undefined;
1569
1593
  optional_host_permissions?: (string | undefined)[] | undefined;
1570
1594
  name?: string | undefined;
1571
1595
  version?: string | undefined;
@@ -1780,7 +1804,7 @@ export declare const fakeResolvedConfig: (overrides?: {
1780
1804
  strict_max_version?: string | undefined;
1781
1805
  } | undefined;
1782
1806
  } | undefined;
1783
- permissions?: (Browser.runtime.ManifestPermissions | {
1807
+ permissions?: (Browser.runtime.ManifestPermission | {
1784
1808
  readonly [x: number]: string | undefined;
1785
1809
  toString?: {} | undefined;
1786
1810
  charAt?: {} | undefined;
@@ -1834,7 +1858,14 @@ export declare const fakeResolvedConfig: (overrides?: {
1834
1858
  } | undefined)[] | undefined;
1835
1859
  web_accessible_resources?: (string | undefined)[] | ({
1836
1860
  resources?: (string | undefined)[] | undefined;
1861
+ use_dynamic_url?: boolean | undefined | undefined;
1862
+ extension_ids?: (string | undefined)[] | undefined;
1863
+ matches?: (string | undefined)[] | undefined;
1864
+ } | {
1865
+ resources?: (string | undefined)[] | undefined;
1866
+ use_dynamic_url?: boolean | undefined | undefined;
1837
1867
  matches?: (string | undefined)[] | undefined;
1868
+ extension_ids?: (string | undefined)[] | undefined;
1838
1869
  } | undefined)[] | undefined;
1839
1870
  } | {
1840
1871
  then?: {} | undefined;
@@ -1949,7 +1980,10 @@ export declare const fakeResolvedConfig: (overrides?: {
1949
1980
  injectImportsStringified?: {} | undefined;
1950
1981
  } | undefined)[] | undefined;
1951
1982
  virtualImports?: (string | undefined)[] | undefined;
1952
- dirs?: (string | undefined)[] | undefined;
1983
+ dirs?: (string | {
1984
+ glob?: string | undefined;
1985
+ types?: boolean | undefined;
1986
+ } | undefined)[] | undefined;
1953
1987
  dirsScanOptions?: {
1954
1988
  filePatterns?: (string | undefined)[] | undefined;
1955
1989
  fileFilter?: {} | undefined;
@@ -2333,7 +2367,7 @@ export declare const fakeResolvedConfig: (overrides?: {
2333
2367
  sandbox?: string | undefined;
2334
2368
  } | undefined;
2335
2369
  host_permissions?: (string | undefined)[] | undefined;
2336
- optional_permissions?: (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
2370
+ optional_permissions?: (Browser.runtime.ManifestOptionalPermission | undefined)[] | undefined;
2337
2371
  optional_host_permissions?: (string | undefined)[] | undefined;
2338
2372
  name?: string | undefined;
2339
2373
  version?: string | undefined;
@@ -2548,7 +2582,7 @@ export declare const fakeResolvedConfig: (overrides?: {
2548
2582
  strict_max_version?: string | undefined;
2549
2583
  } | undefined;
2550
2584
  } | undefined;
2551
- permissions?: (Browser.runtime.ManifestPermissions | {
2585
+ permissions?: (Browser.runtime.ManifestPermission | {
2552
2586
  readonly [x: number]: string | undefined;
2553
2587
  toString?: {} | undefined;
2554
2588
  charAt?: {} | undefined;
@@ -2602,7 +2636,14 @@ export declare const fakeResolvedConfig: (overrides?: {
2602
2636
  } | undefined)[] | undefined;
2603
2637
  web_accessible_resources?: (string | undefined)[] | ({
2604
2638
  resources?: (string | undefined)[] | undefined;
2639
+ use_dynamic_url?: boolean | undefined | undefined;
2640
+ extension_ids?: (string | undefined)[] | undefined;
2605
2641
  matches?: (string | undefined)[] | undefined;
2642
+ } | {
2643
+ resources?: (string | undefined)[] | undefined;
2644
+ use_dynamic_url?: boolean | undefined | undefined;
2645
+ matches?: (string | undefined)[] | undefined;
2646
+ extension_ids?: (string | undefined)[] | undefined;
2606
2647
  } | undefined)[] | undefined;
2607
2648
  } | {
2608
2649
  then?: {} | undefined;
@@ -2717,7 +2758,10 @@ export declare const fakeResolvedConfig: (overrides?: {
2717
2758
  injectImportsStringified?: {} | undefined;
2718
2759
  } | undefined)[] | undefined;
2719
2760
  virtualImports?: (string | undefined)[] | undefined;
2720
- dirs?: (string | undefined)[] | undefined;
2761
+ dirs?: (string | {
2762
+ glob?: string | undefined;
2763
+ types?: boolean | undefined;
2764
+ } | undefined)[] | undefined;
2721
2765
  dirsScanOptions?: {
2722
2766
  filePatterns?: (string | undefined)[] | undefined;
2723
2767
  fileFilter?: {} | undefined;
@@ -3129,7 +3173,7 @@ export declare const fakeResolvedConfig: (overrides?: {
3129
3173
  sandbox?: string | undefined;
3130
3174
  } | undefined;
3131
3175
  host_permissions?: (string | undefined)[] | undefined;
3132
- optional_permissions?: (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
3176
+ optional_permissions?: (Browser.runtime.ManifestOptionalPermission | undefined)[] | undefined;
3133
3177
  optional_host_permissions?: (string | undefined)[] | undefined;
3134
3178
  name?: string | undefined;
3135
3179
  version?: string | undefined;
@@ -3344,7 +3388,7 @@ export declare const fakeResolvedConfig: (overrides?: {
3344
3388
  strict_max_version?: string | undefined;
3345
3389
  } | undefined;
3346
3390
  } | undefined;
3347
- permissions?: (Browser.runtime.ManifestPermissions | {
3391
+ permissions?: (Browser.runtime.ManifestPermission | {
3348
3392
  readonly [x: number]: string | undefined;
3349
3393
  toString?: {} | undefined;
3350
3394
  charAt?: {} | undefined;
@@ -3398,7 +3442,14 @@ export declare const fakeResolvedConfig: (overrides?: {
3398
3442
  } | undefined)[] | undefined;
3399
3443
  web_accessible_resources?: (string | undefined)[] | ({
3400
3444
  resources?: (string | undefined)[] | undefined;
3445
+ use_dynamic_url?: boolean | undefined | undefined;
3446
+ extension_ids?: (string | undefined)[] | undefined;
3447
+ matches?: (string | undefined)[] | undefined;
3448
+ } | {
3449
+ resources?: (string | undefined)[] | undefined;
3450
+ use_dynamic_url?: boolean | undefined | undefined;
3401
3451
  matches?: (string | undefined)[] | undefined;
3452
+ extension_ids?: (string | undefined)[] | undefined;
3402
3453
  } | undefined)[] | undefined;
3403
3454
  } | {
3404
3455
  then?: {} | undefined;
@@ -3513,7 +3564,10 @@ export declare const fakeResolvedConfig: (overrides?: {
3513
3564
  injectImportsStringified?: {} | undefined;
3514
3565
  } | undefined)[] | undefined;
3515
3566
  virtualImports?: (string | undefined)[] | undefined;
3516
- dirs?: (string | undefined)[] | undefined;
3567
+ dirs?: (string | {
3568
+ glob?: string | undefined;
3569
+ types?: boolean | undefined;
3570
+ } | undefined)[] | undefined;
3517
3571
  dirsScanOptions?: {
3518
3572
  filePatterns?: (string | undefined)[] | undefined;
3519
3573
  fileFilter?: {} | undefined;
@@ -4796,7 +4850,10 @@ export declare const fakeWxt: (overrides?: {
4796
4850
  injectImportsStringified?: {} | undefined;
4797
4851
  } | undefined)[] | undefined;
4798
4852
  virtualImports?: (string | undefined)[] | undefined;
4799
- dirs?: (string | undefined)[] | undefined;
4853
+ dirs?: (string | {
4854
+ glob?: string | undefined;
4855
+ types?: boolean | undefined;
4856
+ } | undefined)[] | undefined;
4800
4857
  dirsScanOptions?: {
4801
4858
  filePatterns?: (string | undefined)[] | undefined;
4802
4859
  fileFilter?: {} | undefined;
@@ -4836,7 +4893,7 @@ export declare const fakeWxt: (overrides?: {
4836
4893
  sandbox?: string | undefined;
4837
4894
  } | undefined;
4838
4895
  host_permissions?: (string | undefined)[] | undefined;
4839
- optional_permissions?: (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
4896
+ optional_permissions?: (Browser.runtime.ManifestOptionalPermission | undefined)[] | undefined;
4840
4897
  optional_host_permissions?: (string | undefined)[] | undefined;
4841
4898
  name?: string | undefined;
4842
4899
  version?: string | undefined;
@@ -5051,7 +5108,7 @@ export declare const fakeWxt: (overrides?: {
5051
5108
  strict_max_version?: string | undefined;
5052
5109
  } | undefined;
5053
5110
  } | undefined;
5054
- permissions?: (Browser.runtime.ManifestPermissions | {
5111
+ permissions?: (Browser.runtime.ManifestPermission | {
5055
5112
  readonly [x: number]: string | undefined;
5056
5113
  toString?: {} | undefined;
5057
5114
  charAt?: {} | undefined;
@@ -5105,7 +5162,14 @@ export declare const fakeWxt: (overrides?: {
5105
5162
  } | undefined)[] | undefined;
5106
5163
  web_accessible_resources?: (string | undefined)[] | ({
5107
5164
  resources?: (string | undefined)[] | undefined;
5165
+ use_dynamic_url?: boolean | undefined | undefined;
5166
+ extension_ids?: (string | undefined)[] | undefined;
5167
+ matches?: (string | undefined)[] | undefined;
5168
+ } | {
5169
+ resources?: (string | undefined)[] | undefined;
5170
+ use_dynamic_url?: boolean | undefined | undefined;
5108
5171
  matches?: (string | undefined)[] | undefined;
5172
+ extension_ids?: (string | undefined)[] | undefined;
5109
5173
  } | undefined)[] | undefined;
5110
5174
  } | undefined;
5111
5175
  fsCache?: {
@@ -5337,7 +5401,7 @@ export declare const fakeWxt: (overrides?: {
5337
5401
  sandbox?: string | undefined;
5338
5402
  } | undefined;
5339
5403
  host_permissions?: (string | undefined)[] | undefined;
5340
- optional_permissions?: (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
5404
+ optional_permissions?: (Browser.runtime.ManifestOptionalPermission | undefined)[] | undefined;
5341
5405
  optional_host_permissions?: (string | undefined)[] | undefined;
5342
5406
  name?: string | undefined;
5343
5407
  version?: string | undefined;
@@ -5552,7 +5616,7 @@ export declare const fakeWxt: (overrides?: {
5552
5616
  strict_max_version?: string | undefined;
5553
5617
  } | undefined;
5554
5618
  } | undefined;
5555
- permissions?: (Browser.runtime.ManifestPermissions | {
5619
+ permissions?: (Browser.runtime.ManifestPermission | {
5556
5620
  readonly [x: number]: string | undefined;
5557
5621
  toString?: {} | undefined;
5558
5622
  charAt?: {} | undefined;
@@ -5606,7 +5670,14 @@ export declare const fakeWxt: (overrides?: {
5606
5670
  } | undefined)[] | undefined;
5607
5671
  web_accessible_resources?: (string | undefined)[] | ({
5608
5672
  resources?: (string | undefined)[] | undefined;
5673
+ use_dynamic_url?: boolean | undefined | undefined;
5674
+ extension_ids?: (string | undefined)[] | undefined;
5609
5675
  matches?: (string | undefined)[] | undefined;
5676
+ } | {
5677
+ resources?: (string | undefined)[] | undefined;
5678
+ use_dynamic_url?: boolean | undefined | undefined;
5679
+ matches?: (string | undefined)[] | undefined;
5680
+ extension_ids?: (string | undefined)[] | undefined;
5610
5681
  } | undefined)[] | undefined;
5611
5682
  } | {
5612
5683
  then?: {} | undefined;
@@ -5721,7 +5792,10 @@ export declare const fakeWxt: (overrides?: {
5721
5792
  injectImportsStringified?: {} | undefined;
5722
5793
  } | undefined)[] | undefined;
5723
5794
  virtualImports?: (string | undefined)[] | undefined;
5724
- dirs?: (string | undefined)[] | undefined;
5795
+ dirs?: (string | {
5796
+ glob?: string | undefined;
5797
+ types?: boolean | undefined;
5798
+ } | undefined)[] | undefined;
5725
5799
  dirsScanOptions?: {
5726
5800
  filePatterns?: (string | undefined)[] | undefined;
5727
5801
  fileFilter?: {} | undefined;
@@ -6105,7 +6179,7 @@ export declare const fakeWxt: (overrides?: {
6105
6179
  sandbox?: string | undefined;
6106
6180
  } | undefined;
6107
6181
  host_permissions?: (string | undefined)[] | undefined;
6108
- optional_permissions?: (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
6182
+ optional_permissions?: (Browser.runtime.ManifestOptionalPermission | undefined)[] | undefined;
6109
6183
  optional_host_permissions?: (string | undefined)[] | undefined;
6110
6184
  name?: string | undefined;
6111
6185
  version?: string | undefined;
@@ -6320,7 +6394,7 @@ export declare const fakeWxt: (overrides?: {
6320
6394
  strict_max_version?: string | undefined;
6321
6395
  } | undefined;
6322
6396
  } | undefined;
6323
- permissions?: (Browser.runtime.ManifestPermissions | {
6397
+ permissions?: (Browser.runtime.ManifestPermission | {
6324
6398
  readonly [x: number]: string | undefined;
6325
6399
  toString?: {} | undefined;
6326
6400
  charAt?: {} | undefined;
@@ -6374,7 +6448,14 @@ export declare const fakeWxt: (overrides?: {
6374
6448
  } | undefined)[] | undefined;
6375
6449
  web_accessible_resources?: (string | undefined)[] | ({
6376
6450
  resources?: (string | undefined)[] | undefined;
6451
+ use_dynamic_url?: boolean | undefined | undefined;
6452
+ extension_ids?: (string | undefined)[] | undefined;
6453
+ matches?: (string | undefined)[] | undefined;
6454
+ } | {
6455
+ resources?: (string | undefined)[] | undefined;
6456
+ use_dynamic_url?: boolean | undefined | undefined;
6377
6457
  matches?: (string | undefined)[] | undefined;
6458
+ extension_ids?: (string | undefined)[] | undefined;
6378
6459
  } | undefined)[] | undefined;
6379
6460
  } | {
6380
6461
  then?: {} | undefined;
@@ -6489,7 +6570,10 @@ export declare const fakeWxt: (overrides?: {
6489
6570
  injectImportsStringified?: {} | undefined;
6490
6571
  } | undefined)[] | undefined;
6491
6572
  virtualImports?: (string | undefined)[] | undefined;
6492
- dirs?: (string | undefined)[] | undefined;
6573
+ dirs?: (string | {
6574
+ glob?: string | undefined;
6575
+ types?: boolean | undefined;
6576
+ } | undefined)[] | undefined;
6493
6577
  dirsScanOptions?: {
6494
6578
  filePatterns?: (string | undefined)[] | undefined;
6495
6579
  fileFilter?: {} | undefined;
@@ -6901,7 +6985,7 @@ export declare const fakeWxt: (overrides?: {
6901
6985
  sandbox?: string | undefined;
6902
6986
  } | undefined;
6903
6987
  host_permissions?: (string | undefined)[] | undefined;
6904
- optional_permissions?: (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
6988
+ optional_permissions?: (Browser.runtime.ManifestOptionalPermission | undefined)[] | undefined;
6905
6989
  optional_host_permissions?: (string | undefined)[] | undefined;
6906
6990
  name?: string | undefined;
6907
6991
  version?: string | undefined;
@@ -7116,7 +7200,7 @@ export declare const fakeWxt: (overrides?: {
7116
7200
  strict_max_version?: string | undefined;
7117
7201
  } | undefined;
7118
7202
  } | undefined;
7119
- permissions?: (Browser.runtime.ManifestPermissions | {
7203
+ permissions?: (Browser.runtime.ManifestPermission | {
7120
7204
  readonly [x: number]: string | undefined;
7121
7205
  toString?: {} | undefined;
7122
7206
  charAt?: {} | undefined;
@@ -7170,7 +7254,14 @@ export declare const fakeWxt: (overrides?: {
7170
7254
  } | undefined)[] | undefined;
7171
7255
  web_accessible_resources?: (string | undefined)[] | ({
7172
7256
  resources?: (string | undefined)[] | undefined;
7257
+ use_dynamic_url?: boolean | undefined | undefined;
7258
+ extension_ids?: (string | undefined)[] | undefined;
7259
+ matches?: (string | undefined)[] | undefined;
7260
+ } | {
7261
+ resources?: (string | undefined)[] | undefined;
7262
+ use_dynamic_url?: boolean | undefined | undefined;
7173
7263
  matches?: (string | undefined)[] | undefined;
7264
+ extension_ids?: (string | undefined)[] | undefined;
7174
7265
  } | undefined)[] | undefined;
7175
7266
  } | {
7176
7267
  then?: {} | undefined;
@@ -7285,7 +7376,10 @@ export declare const fakeWxt: (overrides?: {
7285
7376
  injectImportsStringified?: {} | undefined;
7286
7377
  } | undefined)[] | undefined;
7287
7378
  virtualImports?: (string | undefined)[] | undefined;
7288
- dirs?: (string | undefined)[] | undefined;
7379
+ dirs?: (string | {
7380
+ glob?: string | undefined;
7381
+ types?: boolean | undefined;
7382
+ } | undefined)[] | undefined;
7289
7383
  dirsScanOptions?: {
7290
7384
  filePatterns?: (string | undefined)[] | undefined;
7291
7385
  fileFilter?: {} | undefined;
@@ -8481,8 +8575,8 @@ export declare const fakeWxt: (overrides?: {
8481
8575
  persistent?: boolean | undefined | undefined;
8482
8576
  } | undefined;
8483
8577
  content_security_policy?: string | undefined | undefined;
8484
- optional_permissions?: (string | undefined)[] | (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
8485
- permissions?: (string | undefined)[] | (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
8578
+ optional_permissions?: (string | undefined)[] | undefined;
8579
+ permissions?: (string | undefined)[] | undefined;
8486
8580
  web_accessible_resources?: (string | undefined)[] | undefined;
8487
8581
  name?: string | undefined;
8488
8582
  version?: string | undefined;
@@ -8715,12 +8809,19 @@ export declare const fakeWxt: (overrides?: {
8715
8809
  sandbox?: string | undefined;
8716
8810
  } | undefined;
8717
8811
  host_permissions?: (string | undefined)[] | undefined;
8718
- optional_permissions?: (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
8812
+ optional_permissions?: (Browser.runtime.ManifestOptionalPermission | undefined)[] | undefined;
8719
8813
  optional_host_permissions?: (string | undefined)[] | undefined;
8720
- permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
8814
+ permissions?: (Browser.runtime.ManifestPermission | undefined)[] | undefined;
8721
8815
  web_accessible_resources?: ({
8722
8816
  resources?: (string | undefined)[] | undefined;
8817
+ use_dynamic_url?: boolean | undefined | undefined;
8818
+ extension_ids?: (string | undefined)[] | undefined;
8723
8819
  matches?: (string | undefined)[] | undefined;
8820
+ } | {
8821
+ resources?: (string | undefined)[] | undefined;
8822
+ use_dynamic_url?: boolean | undefined | undefined;
8823
+ matches?: (string | undefined)[] | undefined;
8824
+ extension_ids?: (string | undefined)[] | undefined;
8724
8825
  } | undefined)[] | undefined;
8725
8826
  name?: string | undefined;
8726
8827
  version?: string | undefined;
@@ -9235,8 +9336,8 @@ export declare const fakeWxtDevServer: (overrides?: {
9235
9336
  persistent?: boolean | undefined | undefined;
9236
9337
  } | undefined;
9237
9338
  content_security_policy?: string | undefined | undefined;
9238
- optional_permissions?: (string | undefined)[] | (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
9239
- permissions?: (string | undefined)[] | (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
9339
+ optional_permissions?: (string | undefined)[] | undefined;
9340
+ permissions?: (string | undefined)[] | undefined;
9240
9341
  web_accessible_resources?: (string | undefined)[] | undefined;
9241
9342
  name?: string | undefined;
9242
9343
  version?: string | undefined;
@@ -9469,12 +9570,19 @@ export declare const fakeWxtDevServer: (overrides?: {
9469
9570
  sandbox?: string | undefined;
9470
9571
  } | undefined;
9471
9572
  host_permissions?: (string | undefined)[] | undefined;
9472
- optional_permissions?: (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
9573
+ optional_permissions?: (Browser.runtime.ManifestOptionalPermission | undefined)[] | undefined;
9473
9574
  optional_host_permissions?: (string | undefined)[] | undefined;
9474
- permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
9575
+ permissions?: (Browser.runtime.ManifestPermission | undefined)[] | undefined;
9475
9576
  web_accessible_resources?: ({
9476
9577
  resources?: (string | undefined)[] | undefined;
9578
+ use_dynamic_url?: boolean | undefined | undefined;
9579
+ extension_ids?: (string | undefined)[] | undefined;
9477
9580
  matches?: (string | undefined)[] | undefined;
9581
+ } | {
9582
+ resources?: (string | undefined)[] | undefined;
9583
+ use_dynamic_url?: boolean | undefined | undefined;
9584
+ matches?: (string | undefined)[] | undefined;
9585
+ extension_ids?: (string | undefined)[] | undefined;
9478
9586
  } | undefined)[] | undefined;
9479
9587
  name?: string | undefined;
9480
9588
  version?: string | undefined;
@@ -9980,8 +10088,8 @@ export declare const fakeBuildOutput: (overrides?: {
9980
10088
  persistent?: boolean | undefined | undefined;
9981
10089
  } | undefined;
9982
10090
  content_security_policy?: string | undefined | undefined;
9983
- optional_permissions?: (string | undefined)[] | (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
9984
- permissions?: (string | undefined)[] | (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
10091
+ optional_permissions?: (string | undefined)[] | undefined;
10092
+ permissions?: (string | undefined)[] | undefined;
9985
10093
  web_accessible_resources?: (string | undefined)[] | undefined;
9986
10094
  name?: string | undefined;
9987
10095
  version?: string | undefined;
@@ -10214,12 +10322,19 @@ export declare const fakeBuildOutput: (overrides?: {
10214
10322
  sandbox?: string | undefined;
10215
10323
  } | undefined;
10216
10324
  host_permissions?: (string | undefined)[] | undefined;
10217
- optional_permissions?: (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
10325
+ optional_permissions?: (Browser.runtime.ManifestOptionalPermission | undefined)[] | undefined;
10218
10326
  optional_host_permissions?: (string | undefined)[] | undefined;
10219
- permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
10327
+ permissions?: (Browser.runtime.ManifestPermission | undefined)[] | undefined;
10220
10328
  web_accessible_resources?: ({
10221
10329
  resources?: (string | undefined)[] | undefined;
10330
+ use_dynamic_url?: boolean | undefined | undefined;
10331
+ extension_ids?: (string | undefined)[] | undefined;
10222
10332
  matches?: (string | undefined)[] | undefined;
10333
+ } | {
10334
+ resources?: (string | undefined)[] | undefined;
10335
+ use_dynamic_url?: boolean | undefined | undefined;
10336
+ matches?: (string | undefined)[] | undefined;
10337
+ extension_ids?: (string | undefined)[] | undefined;
10223
10338
  } | undefined)[] | undefined;
10224
10339
  name?: string | undefined;
10225
10340
  version?: string | undefined;
@@ -10820,8 +10935,8 @@ export declare const fakeDevServer: (overrides?: {
10820
10935
  persistent?: boolean | undefined | undefined;
10821
10936
  } | undefined;
10822
10937
  content_security_policy?: string | undefined | undefined;
10823
- optional_permissions?: (string | undefined)[] | (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
10824
- permissions?: (string | undefined)[] | (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
10938
+ optional_permissions?: (string | undefined)[] | undefined;
10939
+ permissions?: (string | undefined)[] | undefined;
10825
10940
  web_accessible_resources?: (string | undefined)[] | undefined;
10826
10941
  name?: string | undefined;
10827
10942
  version?: string | undefined;
@@ -11054,12 +11169,19 @@ export declare const fakeDevServer: (overrides?: {
11054
11169
  sandbox?: string | undefined;
11055
11170
  } | undefined;
11056
11171
  host_permissions?: (string | undefined)[] | undefined;
11057
- optional_permissions?: (Browser.runtime.ManifestOptionalPermissions | undefined)[] | undefined;
11172
+ optional_permissions?: (Browser.runtime.ManifestOptionalPermission | undefined)[] | undefined;
11058
11173
  optional_host_permissions?: (string | undefined)[] | undefined;
11059
- permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
11174
+ permissions?: (Browser.runtime.ManifestPermission | undefined)[] | undefined;
11060
11175
  web_accessible_resources?: ({
11061
11176
  resources?: (string | undefined)[] | undefined;
11177
+ use_dynamic_url?: boolean | undefined | undefined;
11178
+ extension_ids?: (string | undefined)[] | undefined;
11179
+ matches?: (string | undefined)[] | undefined;
11180
+ } | {
11181
+ resources?: (string | undefined)[] | undefined;
11182
+ use_dynamic_url?: boolean | undefined | undefined;
11062
11183
  matches?: (string | undefined)[] | undefined;
11184
+ extension_ids?: (string | undefined)[] | undefined;
11063
11185
  } | undefined)[] | undefined;
11064
11186
  name?: string | undefined;
11065
11187
  version?: string | undefined;
@@ -1 +1,10 @@
1
+ /**
2
+ * The fake browser is automatically used as a mock for the `wxt/browser` import
3
+ * when using `wxt/testing/vitest-plugin` with Vitest. It is also setup to
4
+ * reset all state before each test.
5
+ *
6
+ * This module is just a re-export of [@webext-core/fake-browser](https://webext-core.aklinker1.io/fake-browser/triggering-events).
7
+ *
8
+ * @module wxt/testing/fake-browser
9
+ */
1
10
  export { fakeBrowser, type FakeBrowser } from '@webext-core/fake-browser';
@@ -1,5 +1,9 @@
1
1
  /**
2
2
  * Utilities for unit testing WXT extensions.
3
+ *
4
+ * @deprecated Use `wxt/testing/*` instead to prevent issues with JSDOM or
5
+ * HappyDOM environments. Will be removed in the next major version of WXT.
6
+ *
3
7
  * @module wxt/testing
4
8
  */
5
9
  export * from './fake-browser';
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Contains a Vitest plugin that configures your test environment to work with
3
+ * WXT projects.
4
+ *
5
+ * @module wxt/testing/vitest
6
+ */
1
7
  import type * as vite from 'vite';
2
8
  import { InlineConfig } from '../types';
3
9
  /**
@@ -6,7 +12,7 @@ import { InlineConfig } from '../types';
6
12
  * ```ts
7
13
  * // vitest.config.ts
8
14
  * import { defineConfig } from 'vitest/config';
9
- * import { WxtVitest } from 'wxt/testing';
15
+ * import { WxtVitest } from 'wxt/testing/vitest-plugin';
10
16
  *
11
17
  * export default defineConfig({
12
18
  * plugins: [WxtVitest()],
package/dist/types.d.ts CHANGED
@@ -199,7 +199,7 @@ export interface InlineConfig {
199
199
  *
200
200
  * @example
201
201
  * [
202
- * "coverage", // Ignore the coverage directory in the `sourcesRoot`
202
+ * "coverage", // Include the coverage directory in the `sourcesRoot`
203
203
  * ]
204
204
  */
205
205
  includeSources?: string[];
@@ -212,7 +212,7 @@ export interface InlineConfig {
212
212
  *
213
213
  * @example
214
214
  * [
215
- * "coverage", // Include the coverage directory in the `sourcesRoot`
215
+ * "coverage", // Ignore the coverage directory in the `sourcesRoot`
216
216
  * ]
217
217
  */
218
218
  excludeSources?: string[];
@@ -2,7 +2,6 @@ import { browser } from "wxt/browser";
2
2
  import { applyPosition, createMountFunctions, mountUi } from "./shared.mjs";
3
3
  export function createIframeUi(ctx, options) {
4
4
  const wrapper = document.createElement("div");
5
- wrapper.setAttribute("data-wxt-iframe", "");
6
5
  const iframe = document.createElement("iframe");
7
6
  iframe.src = browser.runtime.getURL(options.page);
8
7
  wrapper.appendChild(iframe);
@@ -1,7 +1,6 @@
1
1
  import { applyPosition, createMountFunctions, mountUi } from "./shared.mjs";
2
2
  export function createIntegratedUi(ctx, options) {
3
3
  const wrapper = document.createElement(options.tag || "div");
4
- wrapper.setAttribute("data-wxt-integrated", "");
5
4
  let mounted = void 0;
6
5
  const mount = () => {
7
6
  applyPosition(wrapper, void 0, options);
@@ -29,7 +29,6 @@ export async function createShadowRootUi(ctx, options) {
29
29
  mode: options.mode ?? "open",
30
30
  isolateEvents: options.isolateEvents
31
31
  });
32
- shadowHost.setAttribute("data-wxt-shadow-root", "");
33
32
  let mounted;
34
33
  const mount = () => {
35
34
  mountUi(shadowHost, options);
@@ -1,14 +1,9 @@
1
+ const AT_RULE_BLOCKS = /(\s*@(property|font-face)[\s\S]*?{[\s\S]*?})/gm;
1
2
  export function splitShadowRootCss(css) {
2
- let shadowCss = css;
3
- let documentCss = "";
4
- const rulesRegex = /(\s*@(property|font-face)[\s\S]*?{[\s\S]*?})/gm;
5
- let match;
6
- while ((match = rulesRegex.exec(css)) !== null) {
7
- documentCss += match[1];
8
- shadowCss = shadowCss.replace(match[1], "");
9
- }
3
+ const documentCss = Array.from(css.matchAll(AT_RULE_BLOCKS), (m) => m[0]).join("").trim();
4
+ const shadowCss = css.replace(AT_RULE_BLOCKS, "").trim();
10
5
  return {
11
- documentCss: documentCss.trim(),
12
- shadowCss: shadowCss.trim()
6
+ documentCss,
7
+ shadowCss
13
8
  };
14
9
  }
package/dist/version.mjs CHANGED
@@ -1 +1 @@
1
- export const version = "0.20.10";
1
+ export const version = "0.20.12";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "wxt",
3
3
  "type": "module",
4
- "version": "0.20.10",
4
+ "version": "0.20.12",
5
5
  "description": "⚡ Next-gen Web Extension Framework",
6
6
  "license": "MIT",
7
7
  "dependencies": {
@@ -12,18 +12,18 @@
12
12
  "@webext-core/match-patterns": "^1.0.3",
13
13
  "@wxt-dev/storage": "^1.0.0",
14
14
  "async-mutex": "^0.5.0",
15
- "c12": "^3.2.0",
15
+ "c12": "^3.3.2",
16
16
  "cac": "^6.7.14",
17
17
  "chokidar": "^4.0.3",
18
- "ci-info": "^4.3.0",
18
+ "ci-info": "^4.3.1",
19
19
  "consola": "^3.4.2",
20
20
  "defu": "^6.1.4",
21
- "dotenv": "^17.2.2",
21
+ "dotenv": "^17.2.3",
22
22
  "dotenv-expand": "^12.0.3",
23
- "esbuild": "^0.25.0",
23
+ "esbuild": "^0.27.1",
24
24
  "fast-glob": "^3.3.3",
25
- "filesize": "^11.0.2",
26
- "fs-extra": "^11.3.1",
25
+ "filesize": "^11.0.13",
26
+ "fs-extra": "^11.3.2",
27
27
  "get-port-please": "^3.2.0",
28
28
  "giget": "^1.2.3 || ^2.0.0",
29
29
  "hookable": "^5.5.3",
@@ -33,10 +33,10 @@
33
33
  "jszip": "^3.10.1",
34
34
  "linkedom": "^0.18.12",
35
35
  "magicast": "^0.3.5",
36
- "minimatch": "^10.0.3",
37
- "nano-spawn": "^1.0.2",
36
+ "minimatch": "^10.1.1",
37
+ "nano-spawn": "^1.0.3",
38
38
  "normalize-path": "^3.0.0",
39
- "nypm": "^0.6.1",
39
+ "nypm": "^0.6.2",
40
40
  "ohash": "^2.0.11",
41
41
  "open": "^10.2.0",
42
42
  "ora": "^8.2.0",
@@ -47,27 +47,27 @@
47
47
  "scule": "^1.3.0",
48
48
  "unimport": "^3.13.1 || ^4.0.0 || ^5.0.0",
49
49
  "vite": "^5.4.19 || ^6.3.4 || ^7.0.0",
50
- "vite-node": "^2.1.4 || ^3.1.2",
50
+ "vite-node": "^3.2.4 || ^5.0.0",
51
51
  "web-ext-run": "^0.2.4",
52
- "@wxt-dev/browser": "^0.1.4"
52
+ "@wxt-dev/browser": "^0.1.32"
53
53
  },
54
54
  "devDependencies": {
55
- "@aklinker1/check": "^2.1.0",
56
- "@faker-js/faker": "^10.0.0",
55
+ "@aklinker1/check": "^2.2.0",
56
+ "@faker-js/faker": "^10.1.0",
57
57
  "@types/fs-extra": "^11.0.4",
58
58
  "@types/lodash.merge": "^4.6.9",
59
59
  "@types/node": "^20.17.6",
60
60
  "@types/normalize-path": "^3.0.2",
61
61
  "@types/prompts": "^2.4.9",
62
62
  "extract-zip": "^2.0.1",
63
- "happy-dom": "^18.0.1",
63
+ "happy-dom": "^20.0.0",
64
64
  "lodash.merge": "^4.6.2",
65
- "oxlint": "^1.14.0",
66
- "publint": "^0.3.12",
67
- "typescript": "^5.9.2",
65
+ "oxlint": "^1.33.0",
66
+ "publint": "^0.3.16",
67
+ "typescript": "^5.9.3",
68
68
  "unbuild": "^3.6.1",
69
- "vitest": "^3.2.4",
70
- "vitest-plugin-random-seed": "^1.1.1"
69
+ "vitest": "^4.0.16",
70
+ "vitest-plugin-random-seed": "^1.1.2"
71
71
  },
72
72
  "peerDependenciesMeta": {},
73
73
  "repository": {
@@ -168,6 +168,14 @@
168
168
  "types": "./dist/browser.d.ts",
169
169
  "default": "./dist/browser.mjs"
170
170
  },
171
+ "./testing/fake-browser": {
172
+ "types": "./dist/testing/fake-browser.d.ts",
173
+ "default": "./dist/testing/fake-browser.mjs"
174
+ },
175
+ "./testing/vitest-plugin": {
176
+ "types": "./dist/testing/wxt-vitest-plugin.d.ts",
177
+ "default": "./dist/testing/wxt-vitest-plugin.mjs"
178
+ },
171
179
  "./testing": {
172
180
  "types": "./dist/testing/index.d.ts",
173
181
  "default": "./dist/testing/index.mjs"