wxt 0.20.0-beta1 → 0.20.0-beta2

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 (35) hide show
  1. package/dist/browser.d.ts +5 -3
  2. package/dist/browser.mjs +3 -7
  3. package/dist/builtin-modules/unimport.d.ts +0 -3
  4. package/dist/builtin-modules/unimport.mjs +2 -29
  5. package/dist/core/builders/vite/index.mjs +2 -0
  6. package/dist/core/create-server.mjs +27 -2
  7. package/dist/core/generate-wxt-dir.mjs +1 -2
  8. package/dist/core/resolve-config.d.ts +1 -1
  9. package/dist/core/resolve-config.mjs +12 -13
  10. package/dist/core/utils/building/detect-dev-changes.mjs +18 -7
  11. package/dist/core/utils/building/rebuild.d.ts +2 -1
  12. package/dist/core/utils/content-scripts.d.ts +2 -1
  13. package/dist/core/utils/env.d.ts +1 -1
  14. package/dist/core/utils/env.mjs +16 -13
  15. package/dist/core/utils/eslint.mjs +5 -3
  16. package/dist/core/utils/manifest.d.ts +4 -3
  17. package/dist/core/utils/manifest.mjs +7 -6
  18. package/dist/core/utils/syntax-errors.d.ts +11 -0
  19. package/dist/core/utils/syntax-errors.mjs +20 -0
  20. package/dist/core/utils/testing/fake-objects.d.ts +79 -78
  21. package/dist/core/utils/types.d.ts +3 -2
  22. package/dist/core/wxt.mjs +1 -1
  23. package/dist/testing/wxt-vitest-plugin.mjs +2 -5
  24. package/dist/types.d.ts +12 -12
  25. package/dist/utils/content-script-context.d.ts +2 -0
  26. package/dist/utils/content-script-context.mjs +11 -2
  27. package/dist/utils/content-script-ui/shared.mjs +3 -0
  28. package/dist/utils/content-script-ui/types.d.ts +1 -0
  29. package/dist/version.mjs +1 -1
  30. package/dist/virtual/background-entrypoint.mjs +2 -4
  31. package/dist/virtual/content-script-isolated-world-entrypoint.mjs +1 -2
  32. package/dist/virtual/content-script-main-world-entrypoint.mjs +1 -2
  33. package/dist/virtual/reload-html.mjs +2 -4
  34. package/dist/virtual/unlisted-script-entrypoint.mjs +1 -2
  35. package/package.json +19 -21
@@ -1,4 +1,5 @@
1
1
  import { ResolvedConfig, WxtDevServer, BackgroundEntrypoint, ContentScriptEntrypoint, GenericEntrypoint, OptionsEntrypoint, PopupEntrypoint, OutputChunk, OutputFile, OutputAsset, BuildOutput, BuildStepOutput, UserManifest, Wxt, SidepanelEntrypoint, BaseEntrypoint } from '../../../types';
2
+ import type { Browser } from '@wxt-dev/browser';
2
3
  type DeepPartial<T> = T extends object ? {
3
4
  [P in keyof T]?: DeepPartial<T[P]>;
4
5
  } : T;
@@ -377,9 +378,9 @@ export declare const fakeManifest: (overrides?: {
377
378
  sandbox?: string | undefined;
378
379
  } | undefined;
379
380
  host_permissions?: (string | undefined)[] | undefined;
380
- optional_permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
381
+ optional_permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
381
382
  optional_host_permissions?: (string | undefined)[] | undefined;
382
- permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
383
+ permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
383
384
  web_accessible_resources?: ({
384
385
  resources?: (string | undefined)[] | undefined;
385
386
  matches?: (string | undefined)[] | undefined;
@@ -572,7 +573,7 @@ export declare const fakeManifest: (overrides?: {
572
573
  } | undefined;
573
574
  update_url?: string | undefined;
574
575
  version_name?: string | undefined;
575
- } | undefined) => chrome.runtime.Manifest;
576
+ } | undefined) => Browser.runtime.Manifest;
576
577
  export declare const fakeUserManifest: (overrides?: {
577
578
  [x: string]: any;
578
579
  content_scripts?: ({
@@ -592,7 +593,7 @@ export declare const fakeUserManifest: (overrides?: {
592
593
  sandbox?: string | undefined;
593
594
  } | undefined;
594
595
  host_permissions?: (string | undefined)[] | undefined;
595
- optional_permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
596
+ optional_permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
596
597
  optional_host_permissions?: (string | undefined)[] | undefined;
597
598
  name?: string | undefined;
598
599
  version?: string | undefined;
@@ -806,7 +807,7 @@ export declare const fakeUserManifest: (overrides?: {
806
807
  strict_max_version?: string | undefined;
807
808
  } | undefined;
808
809
  } | undefined;
809
- permissions?: (chrome.runtime.ManifestPermissions | {
810
+ permissions?: (Browser.runtime.ManifestPermissions | {
810
811
  readonly [x: number]: string | undefined;
811
812
  toString?: {} | undefined;
812
813
  charAt?: {} | undefined;
@@ -1058,7 +1059,7 @@ export declare const fakeResolvedConfig: (overrides?: {
1058
1059
  sandbox?: string | undefined;
1059
1060
  } | undefined;
1060
1061
  host_permissions?: (string | undefined)[] | undefined;
1061
- optional_permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
1062
+ optional_permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
1062
1063
  optional_host_permissions?: (string | undefined)[] | undefined;
1063
1064
  name?: string | undefined;
1064
1065
  version?: string | undefined;
@@ -1272,7 +1273,7 @@ export declare const fakeResolvedConfig: (overrides?: {
1272
1273
  strict_max_version?: string | undefined;
1273
1274
  } | undefined;
1274
1275
  } | undefined;
1275
- permissions?: (chrome.runtime.ManifestPermissions | {
1276
+ permissions?: (Browser.runtime.ManifestPermissions | {
1276
1277
  readonly [x: number]: string | undefined;
1277
1278
  toString?: {} | undefined;
1278
1279
  charAt?: {} | undefined;
@@ -1527,6 +1528,13 @@ export declare const fakeResolvedConfig: (overrides?: {
1527
1528
  } | undefined;
1528
1529
  root?: string | undefined;
1529
1530
  mode?: string | undefined;
1531
+ dev?: {
1532
+ server?: {
1533
+ port?: number | undefined;
1534
+ hostname?: string | undefined;
1535
+ } | undefined;
1536
+ reloadCommand?: (string | false) | undefined;
1537
+ } | undefined;
1530
1538
  publicDir?: string | undefined;
1531
1539
  experimental?: {} | undefined;
1532
1540
  manifest?: {
@@ -1548,7 +1556,7 @@ export declare const fakeResolvedConfig: (overrides?: {
1548
1556
  sandbox?: string | undefined;
1549
1557
  } | undefined;
1550
1558
  host_permissions?: (string | undefined)[] | undefined;
1551
- optional_permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
1559
+ optional_permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
1552
1560
  optional_host_permissions?: (string | undefined)[] | undefined;
1553
1561
  name?: string | undefined;
1554
1562
  version?: string | undefined;
@@ -1762,7 +1770,7 @@ export declare const fakeResolvedConfig: (overrides?: {
1762
1770
  strict_max_version?: string | undefined;
1763
1771
  } | undefined;
1764
1772
  } | undefined;
1765
- permissions?: (chrome.runtime.ManifestPermissions | {
1773
+ permissions?: (Browser.runtime.ManifestPermissions | {
1766
1774
  readonly [x: number]: string | undefined;
1767
1775
  toString?: {} | undefined;
1768
1776
  charAt?: {} | undefined;
@@ -2022,13 +2030,6 @@ export declare const fakeResolvedConfig: (overrides?: {
2022
2030
  alias?: {
2023
2031
  [x: string]: string | undefined;
2024
2032
  } | undefined;
2025
- dev?: {
2026
- server?: {
2027
- port?: number | undefined;
2028
- hostname?: string | undefined;
2029
- } | undefined;
2030
- reloadCommand?: (string | false) | undefined;
2031
- } | undefined;
2032
2033
  hooks?: {
2033
2034
  'vite:build:extendConfig'?: {} | undefined;
2034
2035
  'vite:devServer:extendConfig'?: {} | undefined;
@@ -2291,6 +2292,13 @@ export declare const fakeResolvedConfig: (overrides?: {
2291
2292
  } | undefined;
2292
2293
  root?: string | undefined;
2293
2294
  mode?: string | undefined;
2295
+ dev?: {
2296
+ server?: {
2297
+ port?: number | undefined;
2298
+ hostname?: string | undefined;
2299
+ } | undefined;
2300
+ reloadCommand?: (string | false) | undefined;
2301
+ } | undefined;
2294
2302
  publicDir?: string | undefined;
2295
2303
  experimental?: {} | undefined;
2296
2304
  manifest?: {
@@ -2312,7 +2320,7 @@ export declare const fakeResolvedConfig: (overrides?: {
2312
2320
  sandbox?: string | undefined;
2313
2321
  } | undefined;
2314
2322
  host_permissions?: (string | undefined)[] | undefined;
2315
- optional_permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
2323
+ optional_permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
2316
2324
  optional_host_permissions?: (string | undefined)[] | undefined;
2317
2325
  name?: string | undefined;
2318
2326
  version?: string | undefined;
@@ -2526,7 +2534,7 @@ export declare const fakeResolvedConfig: (overrides?: {
2526
2534
  strict_max_version?: string | undefined;
2527
2535
  } | undefined;
2528
2536
  } | undefined;
2529
- permissions?: (chrome.runtime.ManifestPermissions | {
2537
+ permissions?: (Browser.runtime.ManifestPermissions | {
2530
2538
  readonly [x: number]: string | undefined;
2531
2539
  toString?: {} | undefined;
2532
2540
  charAt?: {} | undefined;
@@ -2786,13 +2794,6 @@ export declare const fakeResolvedConfig: (overrides?: {
2786
2794
  alias?: {
2787
2795
  [x: string]: string | undefined;
2788
2796
  } | undefined;
2789
- dev?: {
2790
- server?: {
2791
- port?: number | undefined;
2792
- hostname?: string | undefined;
2793
- } | undefined;
2794
- reloadCommand?: (string | false) | undefined;
2795
- } | undefined;
2796
2797
  hooks?: {
2797
2798
  'vite:build:extendConfig'?: {} | undefined;
2798
2799
  'vite:devServer:extendConfig'?: {} | undefined;
@@ -3082,6 +3083,13 @@ export declare const fakeResolvedConfig: (overrides?: {
3082
3083
  } | undefined;
3083
3084
  root?: string | undefined;
3084
3085
  mode?: string | undefined;
3086
+ dev?: {
3087
+ server?: {
3088
+ port?: number | undefined;
3089
+ hostname?: string | undefined;
3090
+ } | undefined;
3091
+ reloadCommand?: (string | false) | undefined;
3092
+ } | undefined;
3085
3093
  publicDir?: string | undefined;
3086
3094
  experimental?: {} | undefined;
3087
3095
  manifest?: {
@@ -3103,7 +3111,7 @@ export declare const fakeResolvedConfig: (overrides?: {
3103
3111
  sandbox?: string | undefined;
3104
3112
  } | undefined;
3105
3113
  host_permissions?: (string | undefined)[] | undefined;
3106
- optional_permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
3114
+ optional_permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
3107
3115
  optional_host_permissions?: (string | undefined)[] | undefined;
3108
3116
  name?: string | undefined;
3109
3117
  version?: string | undefined;
@@ -3317,7 +3325,7 @@ export declare const fakeResolvedConfig: (overrides?: {
3317
3325
  strict_max_version?: string | undefined;
3318
3326
  } | undefined;
3319
3327
  } | undefined;
3320
- permissions?: (chrome.runtime.ManifestPermissions | {
3328
+ permissions?: (Browser.runtime.ManifestPermissions | {
3321
3329
  readonly [x: number]: string | undefined;
3322
3330
  toString?: {} | undefined;
3323
3331
  charAt?: {} | undefined;
@@ -3577,13 +3585,6 @@ export declare const fakeResolvedConfig: (overrides?: {
3577
3585
  alias?: {
3578
3586
  [x: string]: string | undefined;
3579
3587
  } | undefined;
3580
- dev?: {
3581
- server?: {
3582
- port?: number | undefined;
3583
- hostname?: string | undefined;
3584
- } | undefined;
3585
- reloadCommand?: (string | false) | undefined;
3586
- } | undefined;
3587
3588
  hooks?: {
3588
3589
  'vite:build:extendConfig'?: {} | undefined;
3589
3590
  'vite:devServer:extendConfig'?: {} | undefined;
@@ -4813,7 +4814,7 @@ export declare const fakeWxt: (overrides?: {
4813
4814
  sandbox?: string | undefined;
4814
4815
  } | undefined;
4815
4816
  host_permissions?: (string | undefined)[] | undefined;
4816
- optional_permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
4817
+ optional_permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
4817
4818
  optional_host_permissions?: (string | undefined)[] | undefined;
4818
4819
  name?: string | undefined;
4819
4820
  version?: string | undefined;
@@ -5027,7 +5028,7 @@ export declare const fakeWxt: (overrides?: {
5027
5028
  strict_max_version?: string | undefined;
5028
5029
  } | undefined;
5029
5030
  } | undefined;
5030
- permissions?: (chrome.runtime.ManifestPermissions | {
5031
+ permissions?: (Browser.runtime.ManifestPermissions | {
5031
5032
  readonly [x: number]: string | undefined;
5032
5033
  toString?: {} | undefined;
5033
5034
  charAt?: {} | undefined;
@@ -5282,6 +5283,13 @@ export declare const fakeWxt: (overrides?: {
5282
5283
  } | undefined;
5283
5284
  root?: string | undefined;
5284
5285
  mode?: string | undefined;
5286
+ dev?: {
5287
+ server?: {
5288
+ port?: number | undefined;
5289
+ hostname?: string | undefined;
5290
+ } | undefined;
5291
+ reloadCommand?: (string | false) | undefined;
5292
+ } | undefined;
5285
5293
  publicDir?: string | undefined;
5286
5294
  experimental?: {} | undefined;
5287
5295
  manifest?: {
@@ -5303,7 +5311,7 @@ export declare const fakeWxt: (overrides?: {
5303
5311
  sandbox?: string | undefined;
5304
5312
  } | undefined;
5305
5313
  host_permissions?: (string | undefined)[] | undefined;
5306
- optional_permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
5314
+ optional_permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
5307
5315
  optional_host_permissions?: (string | undefined)[] | undefined;
5308
5316
  name?: string | undefined;
5309
5317
  version?: string | undefined;
@@ -5517,7 +5525,7 @@ export declare const fakeWxt: (overrides?: {
5517
5525
  strict_max_version?: string | undefined;
5518
5526
  } | undefined;
5519
5527
  } | undefined;
5520
- permissions?: (chrome.runtime.ManifestPermissions | {
5528
+ permissions?: (Browser.runtime.ManifestPermissions | {
5521
5529
  readonly [x: number]: string | undefined;
5522
5530
  toString?: {} | undefined;
5523
5531
  charAt?: {} | undefined;
@@ -5777,13 +5785,6 @@ export declare const fakeWxt: (overrides?: {
5777
5785
  alias?: {
5778
5786
  [x: string]: string | undefined;
5779
5787
  } | undefined;
5780
- dev?: {
5781
- server?: {
5782
- port?: number | undefined;
5783
- hostname?: string | undefined;
5784
- } | undefined;
5785
- reloadCommand?: (string | false) | undefined;
5786
- } | undefined;
5787
5788
  hooks?: {
5788
5789
  'vite:build:extendConfig'?: {} | undefined;
5789
5790
  'vite:devServer:extendConfig'?: {} | undefined;
@@ -6046,6 +6047,13 @@ export declare const fakeWxt: (overrides?: {
6046
6047
  } | undefined;
6047
6048
  root?: string | undefined;
6048
6049
  mode?: string | undefined;
6050
+ dev?: {
6051
+ server?: {
6052
+ port?: number | undefined;
6053
+ hostname?: string | undefined;
6054
+ } | undefined;
6055
+ reloadCommand?: (string | false) | undefined;
6056
+ } | undefined;
6049
6057
  publicDir?: string | undefined;
6050
6058
  experimental?: {} | undefined;
6051
6059
  manifest?: {
@@ -6067,7 +6075,7 @@ export declare const fakeWxt: (overrides?: {
6067
6075
  sandbox?: string | undefined;
6068
6076
  } | undefined;
6069
6077
  host_permissions?: (string | undefined)[] | undefined;
6070
- optional_permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
6078
+ optional_permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
6071
6079
  optional_host_permissions?: (string | undefined)[] | undefined;
6072
6080
  name?: string | undefined;
6073
6081
  version?: string | undefined;
@@ -6281,7 +6289,7 @@ export declare const fakeWxt: (overrides?: {
6281
6289
  strict_max_version?: string | undefined;
6282
6290
  } | undefined;
6283
6291
  } | undefined;
6284
- permissions?: (chrome.runtime.ManifestPermissions | {
6292
+ permissions?: (Browser.runtime.ManifestPermissions | {
6285
6293
  readonly [x: number]: string | undefined;
6286
6294
  toString?: {} | undefined;
6287
6295
  charAt?: {} | undefined;
@@ -6541,13 +6549,6 @@ export declare const fakeWxt: (overrides?: {
6541
6549
  alias?: {
6542
6550
  [x: string]: string | undefined;
6543
6551
  } | undefined;
6544
- dev?: {
6545
- server?: {
6546
- port?: number | undefined;
6547
- hostname?: string | undefined;
6548
- } | undefined;
6549
- reloadCommand?: (string | false) | undefined;
6550
- } | undefined;
6551
6552
  hooks?: {
6552
6553
  'vite:build:extendConfig'?: {} | undefined;
6553
6554
  'vite:devServer:extendConfig'?: {} | undefined;
@@ -6837,6 +6838,13 @@ export declare const fakeWxt: (overrides?: {
6837
6838
  } | undefined;
6838
6839
  root?: string | undefined;
6839
6840
  mode?: string | undefined;
6841
+ dev?: {
6842
+ server?: {
6843
+ port?: number | undefined;
6844
+ hostname?: string | undefined;
6845
+ } | undefined;
6846
+ reloadCommand?: (string | false) | undefined;
6847
+ } | undefined;
6840
6848
  publicDir?: string | undefined;
6841
6849
  experimental?: {} | undefined;
6842
6850
  manifest?: {
@@ -6858,7 +6866,7 @@ export declare const fakeWxt: (overrides?: {
6858
6866
  sandbox?: string | undefined;
6859
6867
  } | undefined;
6860
6868
  host_permissions?: (string | undefined)[] | undefined;
6861
- optional_permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
6869
+ optional_permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
6862
6870
  optional_host_permissions?: (string | undefined)[] | undefined;
6863
6871
  name?: string | undefined;
6864
6872
  version?: string | undefined;
@@ -7072,7 +7080,7 @@ export declare const fakeWxt: (overrides?: {
7072
7080
  strict_max_version?: string | undefined;
7073
7081
  } | undefined;
7074
7082
  } | undefined;
7075
- permissions?: (chrome.runtime.ManifestPermissions | {
7083
+ permissions?: (Browser.runtime.ManifestPermissions | {
7076
7084
  readonly [x: number]: string | undefined;
7077
7085
  toString?: {} | undefined;
7078
7086
  charAt?: {} | undefined;
@@ -7332,13 +7340,6 @@ export declare const fakeWxt: (overrides?: {
7332
7340
  alias?: {
7333
7341
  [x: string]: string | undefined;
7334
7342
  } | undefined;
7335
- dev?: {
7336
- server?: {
7337
- port?: number | undefined;
7338
- hostname?: string | undefined;
7339
- } | undefined;
7340
- reloadCommand?: (string | false) | undefined;
7341
- } | undefined;
7342
7343
  hooks?: {
7343
7344
  'vite:build:extendConfig'?: {} | undefined;
7344
7345
  'vite:devServer:extendConfig'?: {} | undefined;
@@ -8681,9 +8682,9 @@ export declare const fakeWxt: (overrides?: {
8681
8682
  sandbox?: string | undefined;
8682
8683
  } | undefined;
8683
8684
  host_permissions?: (string | undefined)[] | undefined;
8684
- optional_permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
8685
+ optional_permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
8685
8686
  optional_host_permissions?: (string | undefined)[] | undefined;
8686
- permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
8687
+ permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
8687
8688
  web_accessible_resources?: ({
8688
8689
  resources?: (string | undefined)[] | undefined;
8689
8690
  matches?: (string | undefined)[] | undefined;
@@ -9138,13 +9139,13 @@ export declare const fakeWxt: (overrides?: {
9138
9139
  pollInterval?: number | undefined;
9139
9140
  } | undefined;
9140
9141
  } | undefined;
9142
+ ref?: {} | undefined;
9143
+ unref?: {} | undefined;
9141
9144
  add?: {} | undefined;
9142
9145
  unwatch?: {} | undefined;
9143
9146
  getWatched?: {} | undefined;
9144
9147
  close?: {} | undefined;
9145
9148
  on?: {} | undefined;
9146
- ref?: {} | undefined;
9147
- unref?: {} | undefined;
9148
9149
  [EventEmitter.captureRejectionSymbol]?: {} | undefined;
9149
9150
  addListener?: {} | undefined;
9150
9151
  once?: {} | undefined;
@@ -9433,9 +9434,9 @@ export declare const fakeWxtDevServer: (overrides?: {
9433
9434
  sandbox?: string | undefined;
9434
9435
  } | undefined;
9435
9436
  host_permissions?: (string | undefined)[] | undefined;
9436
- optional_permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
9437
+ optional_permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
9437
9438
  optional_host_permissions?: (string | undefined)[] | undefined;
9438
- permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
9439
+ permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
9439
9440
  web_accessible_resources?: ({
9440
9441
  resources?: (string | undefined)[] | undefined;
9441
9442
  matches?: (string | undefined)[] | undefined;
@@ -9890,13 +9891,13 @@ export declare const fakeWxtDevServer: (overrides?: {
9890
9891
  pollInterval?: number | undefined;
9891
9892
  } | undefined;
9892
9893
  } | undefined;
9894
+ ref?: {} | undefined;
9895
+ unref?: {} | undefined;
9893
9896
  add?: {} | undefined;
9894
9897
  unwatch?: {} | undefined;
9895
9898
  getWatched?: {} | undefined;
9896
9899
  close?: {} | undefined;
9897
9900
  on?: {} | undefined;
9898
- ref?: {} | undefined;
9899
- unref?: {} | undefined;
9900
9901
  [EventEmitter.captureRejectionSymbol]?: {} | undefined;
9901
9902
  addListener?: {} | undefined;
9902
9903
  once?: {} | undefined;
@@ -10176,9 +10177,9 @@ export declare const fakeBuildOutput: (overrides?: {
10176
10177
  sandbox?: string | undefined;
10177
10178
  } | undefined;
10178
10179
  host_permissions?: (string | undefined)[] | undefined;
10179
- optional_permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
10180
+ optional_permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
10180
10181
  optional_host_permissions?: (string | undefined)[] | undefined;
10181
- permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
10182
+ permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
10182
10183
  web_accessible_resources?: ({
10183
10184
  resources?: (string | undefined)[] | undefined;
10184
10185
  matches?: (string | undefined)[] | undefined;
@@ -10755,7 +10756,7 @@ export declare const fakeManifestCommand: (overrides?: {
10755
10756
  name?: string | undefined;
10756
10757
  description?: string | undefined;
10757
10758
  shortcut?: string | undefined;
10758
- } | undefined) => chrome.commands.Command;
10759
+ } | undefined) => Browser.commands.Command;
10759
10760
  export declare const fakeDevServer: (overrides?: {
10760
10761
  currentOutput?: {
10761
10762
  manifest?: {
@@ -11014,9 +11015,9 @@ export declare const fakeDevServer: (overrides?: {
11014
11015
  sandbox?: string | undefined;
11015
11016
  } | undefined;
11016
11017
  host_permissions?: (string | undefined)[] | undefined;
11017
- optional_permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
11018
+ optional_permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
11018
11019
  optional_host_permissions?: (string | undefined)[] | undefined;
11019
- permissions?: (chrome.runtime.ManifestPermissions | undefined)[] | undefined;
11020
+ permissions?: (Browser.runtime.ManifestPermissions | undefined)[] | undefined;
11020
11021
  web_accessible_resources?: ({
11021
11022
  resources?: (string | undefined)[] | undefined;
11022
11023
  matches?: (string | undefined)[] | undefined;
@@ -11471,13 +11472,13 @@ export declare const fakeDevServer: (overrides?: {
11471
11472
  pollInterval?: number | undefined;
11472
11473
  } | undefined;
11473
11474
  } | undefined;
11475
+ ref?: {} | undefined;
11476
+ unref?: {} | undefined;
11474
11477
  add?: {} | undefined;
11475
11478
  unwatch?: {} | undefined;
11476
11479
  getWatched?: {} | undefined;
11477
11480
  close?: {} | undefined;
11478
11481
  on?: {} | undefined;
11479
- ref?: {} | undefined;
11480
- unref?: {} | undefined;
11481
11482
  [EventEmitter.captureRejectionSymbol]?: {} | undefined;
11482
11483
  addListener?: {} | undefined;
11483
11484
  once?: {} | undefined;
@@ -1,3 +1,4 @@
1
+ import type { Browser } from '@wxt-dev/browser';
1
2
  /**
2
3
  * Remove optional from key, but keep undefined if present
3
4
  *
@@ -8,5 +9,5 @@
8
9
  export type NullablyRequired<T> = {
9
10
  [K in keyof Required<T>]: T[K];
10
11
  };
11
- export type ManifestContentScript = NonNullable<chrome.runtime.Manifest['content_scripts']>[number];
12
- export type ManifestV3WebAccessibleResource = NonNullable<chrome.runtime.ManifestV3['web_accessible_resources']>[number];
12
+ export type ManifestContentScript = NonNullable<Browser.runtime.Manifest['content_scripts']>[number];
13
+ export type ManifestV3WebAccessibleResource = NonNullable<Browser.runtime.ManifestV3['web_accessible_resources']>[number];
package/dist/core/wxt.mjs CHANGED
@@ -6,7 +6,7 @@ import { builtinModules } from "../builtin-modules/index.mjs";
6
6
  import { relative } from "path";
7
7
  export let wxt;
8
8
  export async function registerWxt(command, inlineConfig = {}) {
9
- process.env.NODE_ENV ??= command === "serve" ? "development" : "production";
9
+ process.env.NODE_ENV ??= inlineConfig.mode ?? (command === "serve" ? "development" : "production");
10
10
  const hooks = createHooks();
11
11
  const config = await resolveConfig(inlineConfig, command);
12
12
  const builder = await createViteBuilder(config, hooks, () => wxt.server);
@@ -5,8 +5,7 @@ import {
5
5
  extensionApiMock,
6
6
  resolveAppConfig
7
7
  } from "../core/builders/vite/plugins/index.mjs";
8
- import { vitePlugin as unimportPlugin } from "../builtin-modules/unimport.mjs";
9
- import { createUnimport } from "unimport";
8
+ import UnimportPlugin from "unimport/unplugin";
10
9
  import { registerWxt, wxt } from "../core/wxt.mjs";
11
10
  export async function WxtVitest(inlineConfig) {
12
11
  await registerWxt("serve", inlineConfig ?? {});
@@ -17,8 +16,6 @@ export async function WxtVitest(inlineConfig) {
17
16
  resolveAppConfig(wxt.config),
18
17
  extensionApiMock(wxt.config)
19
18
  ];
20
- const unimport = createUnimport(wxt.config.imports);
21
- await unimport.init();
22
- plugins.push(unimportPlugin(unimport, !wxt.config.imports.disabled));
19
+ plugins.push(UnimportPlugin.vite(wxt.config.imports));
23
20
  return plugins;
24
21
  }
package/dist/types.d.ts CHANGED
@@ -3,11 +3,11 @@ import { UnimportOptions, Import } from 'unimport';
3
3
  import { LogLevel } from 'consola';
4
4
  import type { ContentScriptContext } from './utils/content-script-context';
5
5
  import type { PluginVisualizerOptions } from '@aklinker1/rollup-plugin-visualizer';
6
- import type { FSWatcher } from 'chokidar';
7
6
  import { ResolvedConfig as C12ResolvedConfig } from 'c12';
8
7
  import { Hookable, NestedHooks } from 'hookable';
9
8
  import type * as Nypm from 'nypm';
10
9
  import { ManifestContentScript } from './core/utils/types';
10
+ import type { Browser } from '@wxt-dev/browser';
11
11
  export interface InlineConfig {
12
12
  /**
13
13
  * Your project's root directory containing the `package.json` used to fill out the
@@ -389,7 +389,7 @@ export interface WxtHooks {
389
389
  'vite:devServer:extendConfig': (config: vite.InlineConfig) => HookResult;
390
390
  }
391
391
  export interface BuildOutput {
392
- manifest: chrome.runtime.Manifest;
392
+ manifest: Browser.runtime.Manifest;
393
393
  publicAssets: OutputAsset[];
394
394
  steps: BuildStepOutput[];
395
395
  }
@@ -470,7 +470,7 @@ export interface WxtDevServer extends Omit<WxtBuilderServer, 'listen' | 'close'>
470
470
  }
471
471
  export interface ReloadContentScriptPayload {
472
472
  registration?: BaseContentScriptEntrypointOptions['registration'];
473
- contentScript: Omit<chrome.scripting.RegisteredContentScript, 'id'>;
473
+ contentScript: Omit<Browser.scripting.RegisteredContentScript, 'id'>;
474
474
  }
475
475
  export type TargetBrowser = string;
476
476
  export type TargetManifestVersion = 2 | 3;
@@ -519,7 +519,7 @@ export interface BaseContentScriptEntrypointOptions extends BaseEntrypointOption
519
519
  * See https://developer.chrome.com/docs/extensions/mv3/content_scripts/
520
520
  * @default "documentIdle"
521
521
  */
522
- runAt?: PerBrowserOption<chrome.scripting.RegisteredContentScript['runAt']>;
522
+ runAt?: PerBrowserOption<Browser.scripting.RegisteredContentScript['runAt']>;
523
523
  /**
524
524
  * See https://developer.chrome.com/docs/extensions/mv3/content_scripts/
525
525
  * @default false
@@ -746,15 +746,15 @@ export type ResolvedPerBrowserOptions<T, TOmitted extends keyof T = never> = {
746
746
  * here, they are configured inline.
747
747
  */
748
748
  export type UserManifest = {
749
- [key in keyof chrome.runtime.ManifestV3 as key extends 'action' | 'background' | 'chrome_url_overrides' | 'devtools_page' | 'manifest_version' | 'options_page' | 'options_ui' | 'permissions' | 'sandbox' | 'web_accessible_resources' ? never : key]?: chrome.runtime.ManifestV3[key];
749
+ [key in keyof Browser.runtime.ManifestV3 as key extends 'action' | 'background' | 'chrome_url_overrides' | 'devtools_page' | 'manifest_version' | 'options_page' | 'options_ui' | 'permissions' | 'sandbox' | 'web_accessible_resources' ? never : key]?: Browser.runtime.ManifestV3[key];
750
750
  } & {
751
- action?: chrome.runtime.ManifestV3['action'] & {
751
+ action?: Browser.runtime.ManifestV3['action'] & {
752
752
  browser_style?: boolean;
753
753
  };
754
- browser_action?: chrome.runtime.ManifestV2['browser_action'] & {
754
+ browser_action?: Browser.runtime.ManifestV2['browser_action'] & {
755
755
  browser_style?: boolean;
756
756
  };
757
- page_action?: chrome.runtime.ManifestV2['page_action'] & {
757
+ page_action?: Browser.runtime.ManifestV2['page_action'] & {
758
758
  browser_style?: boolean;
759
759
  };
760
760
  browser_specific_settings?: {
@@ -773,8 +773,8 @@ export type UserManifest = {
773
773
  strict_max_version?: string;
774
774
  };
775
775
  };
776
- permissions?: (chrome.runtime.ManifestPermissions | (string & Record<never, never>))[];
777
- web_accessible_resources?: string[] | chrome.runtime.ManifestV3['web_accessible_resources'];
776
+ permissions?: (Browser.runtime.ManifestPermissions | (string & Record<never, never>))[];
777
+ web_accessible_resources?: string[] | Browser.runtime.ManifestV3['web_accessible_resources'];
778
778
  };
779
779
  export type UserManifestFn = (env: ConfigEnv) => UserManifest | Promise<UserManifest>;
780
780
  export interface ConfigEnv {
@@ -948,7 +948,7 @@ export interface WxtBuilderServer {
948
948
  /**
949
949
  * Chokidar file watcher instance.
950
950
  */
951
- watcher: FSWatcher;
951
+ watcher: vite.ViteDevServer['watcher'];
952
952
  on?(event: string, callback: () => void): void;
953
953
  }
954
954
  export interface ServerInfo {
@@ -1034,7 +1034,7 @@ export interface WxtHooks {
1034
1034
  * @param wxt The configured WXT object
1035
1035
  * @param manifest The manifest that was generated
1036
1036
  */
1037
- 'build:manifestGenerated': (wxt: Wxt, manifest: chrome.runtime.Manifest) => HookResult;
1037
+ 'build:manifestGenerated': (wxt: Wxt, manifest: Browser.runtime.Manifest) => HookResult;
1038
1038
  /**
1039
1039
  * Called once the names and paths of all entrypoints have been resolved.
1040
1040
  * @param wxt The configured WXT object
@@ -38,6 +38,7 @@ export declare class ContentScriptContext implements AbortController {
38
38
  private isTopFrame;
39
39
  private abortController;
40
40
  private locationWatcher;
41
+ private receivedMessageIds;
41
42
  constructor(contentScriptName: string, options?: Omit<ContentScriptDefinition, "main"> | undefined);
42
43
  get signal(): AbortSignal;
43
44
  abort(reason?: any): void;
@@ -113,6 +114,7 @@ export declare class ContentScriptContext implements AbortController {
113
114
  */
114
115
  notifyInvalidated(): void;
115
116
  stopOldScripts(): void;
117
+ verifyScriptStartedEvent(event: MessageEvent): boolean;
116
118
  listenForNewerScripts(options?: {
117
119
  ignoreFirstEvent?: boolean;
118
120
  }): void;
@@ -22,6 +22,7 @@ export class ContentScriptContext {
22
22
  isTopFrame = window.self === window.top;
23
23
  abortController;
24
24
  locationWatcher = createLocationWatcher(this);
25
+ receivedMessageIds = /* @__PURE__ */ new Set();
25
26
  get signal() {
26
27
  return this.abortController.signal;
27
28
  }
@@ -138,15 +139,23 @@ export class ContentScriptContext {
138
139
  window.postMessage(
139
140
  {
140
141
  type: ContentScriptContext.SCRIPT_STARTED_MESSAGE_TYPE,
141
- contentScriptName: this.contentScriptName
142
+ contentScriptName: this.contentScriptName,
143
+ messageId: Math.random().toString(36).slice(2)
142
144
  },
143
145
  "*"
144
146
  );
145
147
  }
148
+ verifyScriptStartedEvent(event) {
149
+ const isScriptStartedEvent = event.data?.type === ContentScriptContext.SCRIPT_STARTED_MESSAGE_TYPE;
150
+ const isSameContentScript = event.data?.contentScriptName === this.contentScriptName;
151
+ const isNotDuplicate = !this.receivedMessageIds.has(event.data?.messageId);
152
+ return isScriptStartedEvent && isSameContentScript && isNotDuplicate;
153
+ }
146
154
  listenForNewerScripts(options) {
147
155
  let isFirst = true;
148
156
  const cb = (event) => {
149
- if (event.data?.type === ContentScriptContext.SCRIPT_STARTED_MESSAGE_TYPE && event.data?.contentScriptName === this.contentScriptName) {
157
+ if (this.verifyScriptStartedEvent(event)) {
158
+ this.receivedMessageIds.add(event.data.messageId);
150
159
  const wasFirst = isFirst;
151
160
  isFirst = false;
152
161
  if (wasFirst && options?.ignoreFirstEvent) return;
@@ -124,6 +124,9 @@ function autoMountUi(uiCallbacks, options) {
124
124
  }
125
125
  async function observeElement(selector) {
126
126
  let isAnchorExist = !!getAnchor(options);
127
+ if (isAnchorExist) {
128
+ uiCallbacks.mount();
129
+ }
127
130
  while (!abortController.signal.aborted) {
128
131
  try {
129
132
  const changedAnchor = await waitElement(selector ?? "body", {
@@ -1,3 +1,4 @@
1
+ /** @module wxt/utils/content-script-ui/types */
1
2
  export interface ContentScriptUi<TMounted> extends MountFunctions {
2
3
  mounted: TMounted | undefined;
3
4
  }
package/dist/version.mjs CHANGED
@@ -1 +1 @@
1
- export const version = "0.20.0-beta1";
1
+ export const version = "0.20.0-beta2";