extension-develop 3.18.4 → 3.18.5-canary.local-b4fd0431

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 (268) hide show
  1. package/dist/0~dev-server.mjs +49 -8
  2. package/dist/0~rslib-runtime.mjs +9 -5
  3. package/dist/0~rspack-config.mjs +546 -129
  4. package/dist/0~zip.mjs +1 -1
  5. package/dist/{946.mjs → 101.mjs} +566 -536
  6. package/dist/{962.mjs → 839.mjs} +207 -107
  7. package/dist/bridge.mjs +2 -2
  8. package/dist/ensure-hmr-for-scripts.js +1 -1
  9. package/dist/ensure-hmr-for-scripts.mjs +1 -1
  10. package/dist/extension-js-devtools/chrome/content_scripts/content-0.js +2 -2
  11. package/dist/extension-js-devtools/chrome/pages/centralized-logger.js +4 -4
  12. package/dist/extension-js-devtools/chrome/pages/welcome.js +2 -2
  13. package/dist/extension-js-devtools/chrome/scripts/logger-client.js +1 -1
  14. package/dist/extension-js-devtools/chromium/content_scripts/content-0.js +2 -2
  15. package/dist/extension-js-devtools/chromium/pages/centralized-logger.js +4 -4
  16. package/dist/extension-js-devtools/chromium/pages/welcome.js +2 -2
  17. package/dist/extension-js-devtools/chromium/scripts/logger-client.js +1 -1
  18. package/dist/extension-js-devtools/edge/content_scripts/content-0.js +2 -2
  19. package/dist/extension-js-devtools/edge/pages/centralized-logger.js +4 -4
  20. package/dist/extension-js-devtools/edge/pages/welcome.js +2 -2
  21. package/dist/extension-js-devtools/edge/scripts/logger-client.js +1 -1
  22. package/dist/extension-js-devtools/firefox/content_scripts/content-0.js +2 -2
  23. package/dist/extension-js-devtools/firefox/pages/centralized-logger.js +4 -4
  24. package/dist/extension-js-devtools/firefox/pages/welcome.js +2 -2
  25. package/dist/extension-js-devtools/firefox/scripts/logger-client.js +1 -1
  26. package/dist/extension-js-theme/brave/background/service_worker.js +2003 -0
  27. package/dist/extension-js-theme/brave/background/service_worker.js.map +1 -0
  28. package/dist/extension-js-theme/brave/manifest.json +45 -0
  29. package/dist/extension-js-theme/chrome/Cached Theme.pak +0 -0
  30. package/dist/extension-js-theme/chromium/Cached Theme.pak +0 -0
  31. package/dist/extension-js-theme/extension-js/brave/events.ndjson +4 -0
  32. package/dist/extension-js-theme/extension-js/brave/logs.ndjson +3 -0
  33. package/dist/extension-js-theme/extension-js/brave/ready.json +20 -0
  34. package/dist/extension-js-theme/extension-js/firefox/events.ndjson +130 -4
  35. package/dist/extension-js-theme/extension-js/firefox/ready.json +7 -7
  36. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/.extension-js-managed-profile +1 -0
  37. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/ChromeFeatureState +1 -0
  38. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/AccessibilityAnnotatorDatabase +0 -0
  39. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Account Web Data +0 -0
  40. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Account Web Data-journal +0 -0
  41. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Affiliation Database +0 -0
  42. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Affiliation Database-journal +0 -0
  43. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/AutofillAiModelCache/LOCK +0 -0
  44. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/AutofillAiModelCache/LOG +0 -0
  45. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/AutofillStrikeDatabase/LOCK +0 -0
  46. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/AutofillStrikeDatabase/LOG +0 -0
  47. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/BookmarkMergedSurfaceOrdering +2 -0
  48. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/BrowsingTopicsSiteData +0 -0
  49. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/BrowsingTopicsSiteData-journal +0 -0
  50. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/BrowsingTopicsState +12 -0
  51. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/BudgetDatabase/LOCK +0 -0
  52. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/BudgetDatabase/LOG +0 -0
  53. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Cache/Cache_Data/index +1 -0
  54. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Cache/Cache_Data/sqldb0 +0 -0
  55. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Cache/Cache_Data/sqldb1 +0 -0
  56. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Cache/Cache_Data/sqldb2 +0 -0
  57. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Cache/No_Vary_Search/journal.baj +1 -0
  58. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Cache/No_Vary_Search/snapshot.baf +0 -0
  59. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/ClientCertificates/LOCK +0 -0
  60. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/ClientCertificates/LOG +0 -0
  61. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Code Cache/pc/05_@;2t2fb2=a6@=`6`2`218;50[[=243915.92@2126345=;-629[`2.db +0 -0
  62. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Code Cache/pc/05_@;2t2fb2=a6@=`6`2`218;50[[=243915.92@2126345=;-629[`2.journal +0 -0
  63. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Collaboration/MessageDB +0 -0
  64. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Collaboration/MessageDB-journal +0 -0
  65. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Cookies +0 -0
  66. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Cookies-journal +0 -0
  67. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/DIPS +0 -0
  68. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/DIPS-wal +0 -0
  69. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/DataSharing/DataSharingDB +0 -0
  70. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/DataSharing/DataSharingDB-journal +0 -0
  71. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/DawnGraphiteCache/data_0 +0 -0
  72. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/DawnGraphiteCache/data_1 +0 -0
  73. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/DawnGraphiteCache/data_2 +0 -0
  74. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/DawnGraphiteCache/data_3 +0 -0
  75. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/DawnGraphiteCache/index +0 -0
  76. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/DawnWebGPUCache/data_0 +0 -0
  77. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/DawnWebGPUCache/data_1 +0 -0
  78. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/DawnWebGPUCache/data_2 +0 -0
  79. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/DawnWebGPUCache/data_3 +0 -0
  80. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/DawnWebGPUCache/index +0 -0
  81. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Extension Rules/000003.log +0 -0
  82. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Extension Rules/CURRENT +1 -0
  83. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Extension Rules/LOCK +0 -0
  84. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Extension Rules/LOG +2 -0
  85. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Extension Rules/MANIFEST-000001 +0 -0
  86. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Extension Scripts/000003.log +0 -0
  87. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Extension Scripts/CURRENT +1 -0
  88. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Extension Scripts/LOCK +0 -0
  89. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Extension Scripts/LOG +2 -0
  90. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Extension Scripts/MANIFEST-000001 +0 -0
  91. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Extension State/000003.log +0 -0
  92. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Extension State/CURRENT +1 -0
  93. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Extension State/LOCK +0 -0
  94. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Extension State/LOG +2 -0
  95. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Extension State/MANIFEST-000001 +0 -0
  96. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Favicons +0 -0
  97. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Favicons-journal +0 -0
  98. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Feature Engagement Tracker/AvailabilityDB/LOCK +0 -0
  99. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Feature Engagement Tracker/AvailabilityDB/LOG +0 -0
  100. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Feature Engagement Tracker/EventDB/LOCK +0 -0
  101. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Feature Engagement Tracker/EventDB/LOG +0 -0
  102. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/GCM Store/000003.log +0 -0
  103. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/GCM Store/CURRENT +1 -0
  104. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/GCM Store/LOCK +0 -0
  105. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/GCM Store/LOG +2 -0
  106. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/GCM Store/MANIFEST-000001 +0 -0
  107. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/GPUCache/data_0 +0 -0
  108. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/GPUCache/data_1 +0 -0
  109. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/GPUCache/data_2 +0 -0
  110. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/GPUCache/data_3 +0 -0
  111. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/GPUCache/index +0 -0
  112. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/History +0 -0
  113. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/History-journal +0 -0
  114. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/LOCK +0 -0
  115. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/LOG +0 -0
  116. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Local Extension Settings/dkmhcppnegfldhbleoedeifghnmaielp/000003.log +0 -0
  117. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Local Extension Settings/dkmhcppnegfldhbleoedeifghnmaielp/CURRENT +1 -0
  118. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Local Extension Settings/dkmhcppnegfldhbleoedeifghnmaielp/LOCK +0 -0
  119. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Local Extension Settings/dkmhcppnegfldhbleoedeifghnmaielp/LOG +2 -0
  120. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Local Extension Settings/dkmhcppnegfldhbleoedeifghnmaielp/MANIFEST-000001 +0 -0
  121. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Local Storage/leveldb/000003.log +0 -0
  122. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Local Storage/leveldb/CURRENT +1 -0
  123. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Local Storage/leveldb/LOCK +0 -0
  124. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Local Storage/leveldb/LOG +2 -0
  125. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Local Storage/leveldb/MANIFEST-000001 +0 -0
  126. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Login Data +0 -0
  127. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Login Data For Account +0 -0
  128. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Login Data For Account-journal +0 -0
  129. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Login Data-journal +0 -0
  130. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Network Action Predictor +0 -0
  131. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Network Action Predictor-journal +0 -0
  132. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Network Persistent State +1 -0
  133. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/PersistentOriginTrials/LOCK +0 -0
  134. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/PersistentOriginTrials/LOG +0 -0
  135. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Preferences +1 -0
  136. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/PreferredApps +1 -0
  137. NEL +0 -0
  138. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Reporting and NEL-journal +0 -0
  139. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/SCT Auditing Pending Reports +1 -0
  140. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Safe Browsing Cookies +0 -0
  141. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Safe Browsing Cookies-journal +0 -0
  142. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Secure Preferences +1 -0
  143. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Segmentation Platform/SegmentInfoDB/LOCK +0 -0
  144. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Segmentation Platform/SegmentInfoDB/LOG +0 -0
  145. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Segmentation Platform/SignalDB/LOCK +0 -0
  146. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Segmentation Platform/SignalDB/LOG +0 -0
  147. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Segmentation Platform/SignalStorageConfigDB/LOCK +0 -0
  148. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Segmentation Platform/SignalStorageConfigDB/LOG +0 -0
  149. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/ServerCertificate +0 -0
  150. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/ServerCertificate-journal +0 -0
  151. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Service Worker/Database/000003.log +0 -0
  152. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Service Worker/Database/CURRENT +1 -0
  153. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Service Worker/Database/LOCK +0 -0
  154. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Service Worker/Database/LOG +2 -0
  155. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Service Worker/Database/MANIFEST-000001 +0 -0
  156. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Service Worker/ScriptCache/2cc80dabc69f58b6_0 +0 -0
  157. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Service Worker/ScriptCache/2cc80dabc69f58b6_1 +0 -0
  158. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Service Worker/ScriptCache/4cb013792b196a35_0 +0 -0
  159. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Service Worker/ScriptCache/4cb013792b196a35_1 +0 -0
  160. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Service Worker/ScriptCache/index +0 -0
  161. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Service Worker/ScriptCache/index-dir/the-real-index +0 -0
  162. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Session Storage/000003.log +0 -0
  163. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Session Storage/CURRENT +1 -0
  164. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Session Storage/LOCK +0 -0
  165. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Session Storage/LOG +2 -0
  166. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Session Storage/MANIFEST-000001 +0 -0
  167. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Sessions/Session_13426296971679614 +0 -0
  168. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Sessions/Tabs_13426296976710116 +0 -0
  169. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Shared Dictionary/cache/index +0 -0
  170. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Shared Dictionary/cache/index-dir/the-real-index +0 -0
  171. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Shared Dictionary/db +0 -0
  172. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Shared Dictionary/db-journal +0 -0
  173. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/SharedStorage +0 -0
  174. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Shortcuts +0 -0
  175. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Shortcuts-journal +0 -0
  176. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Site Characteristics Database/000003.log +0 -0
  177. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Site Characteristics Database/CURRENT +1 -0
  178. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Site Characteristics Database/LOCK +0 -0
  179. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Site Characteristics Database/LOG +2 -0
  180. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Site Characteristics Database/MANIFEST-000001 +0 -0
  181. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Sync Data/LevelDB/000003.log +0 -0
  182. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Sync Data/LevelDB/CURRENT +1 -0
  183. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Sync Data/LevelDB/LOCK +0 -0
  184. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Sync Data/LevelDB/LOG +2 -0
  185. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Sync Data/LevelDB/MANIFEST-000001 +0 -0
  186. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Top Sites +0 -0
  187. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Top Sites-journal +0 -0
  188. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/TransportSecurity +1 -0
  189. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Trust Tokens +0 -0
  190. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Trust Tokens-journal +0 -0
  191. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Web Data +0 -0
  192. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/Web Data-journal +0 -0
  193. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/WebStorage/QuotaManager +0 -0
  194. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/WebStorage/QuotaManager-journal +0 -0
  195. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/chrome_cart_db/LOCK +0 -0
  196. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/chrome_cart_db/LOG +0 -0
  197. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/commerce_subscription_db/LOCK +0 -0
  198. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/commerce_subscription_db/LOG +0 -0
  199. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/discount_infos_db/LOCK +0 -0
  200. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/discount_infos_db/LOG +0 -0
  201. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/discounts_db/LOCK +0 -0
  202. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/discounts_db/LOG +0 -0
  203. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/engine_allowlist.bf +0 -0
  204. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/heavy_ad_intervention_opt_out.db +0 -0
  205. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/heavy_ad_intervention_opt_out.db-journal +0 -0
  206. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/optimization_guide_hint_cache_store/LOCK +0 -0
  207. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/optimization_guide_hint_cache_store/LOG +0 -0
  208. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/parcel_tracking_db/LOCK +0 -0
  209. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/parcel_tracking_db/LOG +0 -0
  210. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/shared_proto_db/000003.log +0 -0
  211. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/shared_proto_db/CURRENT +1 -0
  212. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/shared_proto_db/LOCK +0 -0
  213. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/shared_proto_db/LOG +2 -0
  214. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/shared_proto_db/MANIFEST-000001 +0 -0
  215. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/shared_proto_db/metadata/000003.log +0 -0
  216. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/shared_proto_db/metadata/CURRENT +1 -0
  217. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/shared_proto_db/metadata/LOCK +0 -0
  218. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/shared_proto_db/metadata/LOG +2 -0
  219. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/shared_proto_db/metadata/MANIFEST-000001 +0 -0
  220. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Default/trusted_vault.pb +2 -0
  221. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/GPUPersistentCache/GPUCache/6SE4MO4T2PYNTMRZGJ6B4HK2AV4LBDP4/cache.db +0 -0
  222. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/GPUPersistentCache/GPUCache/6SE4MO4T2PYNTMRZGJ6B4HK2AV4LBDP4/cache.db-wal +0 -0
  223. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/GPUPersistentCache/GPUCache/6SE4MO4T2PYNTMRZGJ6B4HK2AV4LBDP4/cache.journal +0 -0
  224. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/GraphiteDawnCache/data_0 +0 -0
  225. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/GraphiteDawnCache/data_1 +0 -0
  226. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/GraphiteDawnCache/data_2 +0 -0
  227. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/GraphiteDawnCache/data_3 +0 -0
  228. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/GraphiteDawnCache/f_000001 +0 -0
  229. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/GraphiteDawnCache/index +0 -0
  230. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Last Version +1 -0
  231. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Local State +1 -0
  232. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/Variations +1 -0
  233. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/extensions_crx_cache/metadata.json +1 -0
  234. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/first_party_sets.db +0 -0
  235. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/first_party_sets.db-journal +0 -0
  236. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/segmentation_platform/ukm_db +0 -0
  237. package/dist/extension-js-theme/extension-js/profiles/brave-profile/circular-scarlet-slug/segmentation_platform/ukm_db-wal +0 -0
  238. package/dist/extension-js-theme/theme-dist-bak/chrome/Cached Theme.pak +0 -0
  239. package/dist/extension-js-theme/theme-dist-bak/chrome/manifest.json +22 -0
  240. package/dist/extension-js-theme/theme-dist-bak/chromium/Cached Theme.pak +0 -0
  241. package/dist/extension-js-theme/theme-dist-bak/chromium/manifest.json +22 -0
  242. package/dist/extension-js-theme/theme-dist-bak/edge/Cached Theme.pak +0 -0
  243. package/dist/extension-js-theme/theme-dist-bak/edge/manifest.json +22 -0
  244. package/dist/extension-js-theme/theme-dist-bak/firefox/manifest.json +66 -0
  245. package/dist/feature-scripts-classic-concat-loader.js +81 -0
  246. package/dist/feature-scripts-classic-concat-loader.mjs +81 -0
  247. package/dist/feature-scripts-content-script-wrapper.js +47 -8
  248. package/dist/feature-scripts-content-script-wrapper.mjs +47 -8
  249. package/dist/module.mjs +2 -2
  250. package/dist/preview.mjs +1 -1
  251. package/package.json +13 -12
  252. package/dist/extension-js-devtools/extension-js/chrome/events.ndjson +0 -2
  253. package/dist/extension-js-devtools/extension-js/chrome/ready.json +0 -16
  254. package/dist/extension-js-devtools/extension-js/chromium/events.ndjson +0 -2
  255. package/dist/extension-js-devtools/extension-js/chromium/ready.json +0 -16
  256. package/dist/extension-js-devtools/extension-js/edge/events.ndjson +0 -2
  257. package/dist/extension-js-devtools/extension-js/edge/ready.json +0 -16
  258. package/dist/extension-js-devtools/extension-js/firefox/events.ndjson +0 -2
  259. package/dist/extension-js-devtools/extension-js/firefox/ready.json +0 -16
  260. package/dist/extension-js-theme/extension-js/chrome/events.ndjson +0 -2
  261. package/dist/extension-js-theme/extension-js/chrome/ready.json +0 -16
  262. package/dist/extension-js-theme/extension-js/chromium/events.ndjson +0 -2
  263. package/dist/extension-js-theme/extension-js/chromium/ready.json +0 -16
  264. package/dist/extension-js-theme/extension-js/edge/events.ndjson +0 -2
  265. package/dist/extension-js-theme/extension-js/edge/ready.json +0 -16
  266. /package/dist/{314.mjs → 224.mjs} +0 -0
  267. /package/dist/{526.mjs → 291.mjs} +0 -0
  268. /package/dist/{45.mjs → 875.mjs} +0 -0
@@ -1,18 +1,19 @@
1
1
  import { createRequire as __extjsCreateRequire } from "node:module"; const require = __extjsCreateRequire(import.meta.url);
2
- import pintor from "pintor";
3
2
  import { pathToFileURL } from "url";
4
3
  import { createRequire } from "module";
5
4
  import dotenv from "dotenv";
5
+ import pintor from "pintor";
6
6
  import { fetchExtensionFromStore } from "extension-from-store";
7
7
  import path_0 from "path";
8
8
  import { getSpecialFoldersData } from "browser-extension-manifest-fields";
9
9
  import { fileURLToPath as __rspack_fileURLToPath } from "node:url";
10
10
  import { dirname as __rspack_dirname } from "node:path";
11
- import * as __rspack_external_path from "path";
11
+ var __rspack_import_meta_dirname__ = __rspack_dirname(__rspack_fileURLToPath(import.meta.url));
12
12
  import * as __rspack_external_fs from "fs";
13
+ import * as __rspack_external_path from "path";
13
14
  import * as __rspack_external_os from "os";
14
15
  import * as __rspack_external_vm from "vm";
15
- var package_namespaceObject = JSON.parse('{"rE":"3.18.4","El":{"@prefresh/core":"1.5.9","@prefresh/utils":"1.2.1","@rspack/core":"^2.0.1","@rspack/dev-server":"2.0.1","@rspack/plugin-preact-refresh":"2.0.1","@rspack/plugin-react-refresh":"1.6.2","@vue/compiler-sfc":"3.5.26","adm-zip":"^0.5.16","browser-extension-manifest-fields":"^2.2.3","case-sensitive-paths-webpack-plugin":"^2.4.0","content-security-policy-parser":"^0.6.0","dotenv":"^17.2.3","es-module-lexer":"^1.7.0","extension-from-store":"^0.1.1","go-git-it":"^5.1.5","ignore":"^7.0.5","less":"4.5.1","less-loader":"12.3.2","parse5-utilities":"^1.0.0","pintor":"0.3.0","postcss":"8.5.10","postcss-loader":"8.2.1","postcss-preset-env":"11.1.1","postcss-scss":"4.0.9","preact":"10.27.3","react-refresh":"0.18.0","sass-loader":"16.0.7","schema-utils":"^4.3.3","svelte-loader":"3.2.4","tiny-glob":"^0.2.9","typescript":"5.9.3","vue":"3.5.26","vue-loader":"17.4.2","webextension-polyfill":"^0.12.0","webpack-merge":"^6.0.1","webpack-target-webextension":"^2.1.3","ws":"^8.20.1"}}');
16
+ var package_namespaceObject = /*#__PURE__*/ JSON.parse('{"rE":"3.18.5-canary.local-b4fd0431","El":{"@prefresh/core":"1.5.9","@prefresh/utils":"1.2.1","@rspack/core":"^2.1.1","@rspack/dev-server":"2.1.0","@rspack/plugin-preact-refresh":"2.0.1","@rspack/plugin-react-refresh":"2.0.2","@vue/compiler-sfc":"3.5.26","adm-zip":"^0.5.16","browser-extension-manifest-fields":"^2.2.7","case-sensitive-paths-webpack-plugin":"^2.4.0","content-security-policy-parser":"^0.6.0","dotenv":"^17.2.3","es-module-lexer":"^2.1.0","extension-from-store":"^0.1.1","go-git-it":"^5.1.5","ignore":"^7.0.5","less":"4.5.1","less-loader":"13.0.0","parse5-utilities":"^1.0.0","pintor":"0.3.0","postcss":"8.5.10","postcss-loader":"8.2.1","postcss-preset-env":"11.1.1","postcss-scss":"4.0.9","preact":"10.27.3","prefers-yarn":"2.0.1","react-refresh":"0.18.0","sass-loader":"17.0.0","schema-utils":"^4.3.3","svelte-loader":"3.2.4","tiny-glob":"^0.2.9","typescript":"5.9.3","vue":"3.5.26","vue-loader":"17.4.2","webextension-polyfill":"^0.12.0","webpack-merge":"^6.0.1","webpack-target-webextension":"^2.1.3","ws":"^8.20.1"}}');
16
17
  const fmt = {
17
18
  heading: (title)=>pintor.underline(pintor.blue(title)),
18
19
  label: (key)=>pintor.gray(key.toUpperCase()),
@@ -88,11 +89,20 @@ function buildWebpack(projectDir, stats, browser) {
88
89
  const statsJson = stats?.toJson({
89
90
  all: false,
90
91
  assets: true,
91
- time: true
92
+ timings: true
92
93
  });
93
94
  const outputPath = 'string' == typeof stats?.compilation?.outputOptions?.path ? stats.compilation.outputOptions.path : '';
94
- const manifestPath = outputPath ? __rspack_external_path.join(outputPath, 'manifest.json') : __rspack_external_path.join(projectDir, 'manifest.json');
95
- const manifest = JSON.parse(__rspack_external_fs.readFileSync(manifestPath, 'utf8'));
95
+ const distManifestPath = outputPath ? __rspack_external_path.join(outputPath, 'manifest.json') : '';
96
+ const manifestPath = distManifestPath && __rspack_external_fs.existsSync(distManifestPath) ? distManifestPath : __rspack_external_path.join(projectDir, 'manifest.json');
97
+ let manifest = {};
98
+ try {
99
+ manifest = JSON.parse(__rspack_external_fs.readFileSync(manifestPath, 'utf8'));
100
+ } catch {
101
+ manifest = {
102
+ name: __rspack_external_path.basename(projectDir),
103
+ version: ''
104
+ };
105
+ }
96
106
  const assets = statsJson?.assets;
97
107
  const heading = `${getLoggingPrefix('info')} Building ${pintor.blue(manifest.name)} extension using ${capitalizedBrowserName(browser)} defaults...\n`;
98
108
  const buildTime = `\nBuild completed in ${((statsJson?.time || 0) / 1000).toFixed(2)} seconds.\n`;
@@ -261,7 +271,7 @@ function getFileSize(fileSizeInBytes) {
261
271
  function getAssetsSize(assets) {
262
272
  let totalSize = 0;
263
273
  assets?.forEach((asset)=>{
264
- totalSize += asset.size;
274
+ totalSize += asset?.size || 0;
265
275
  });
266
276
  return getFileSize(totalSize);
267
277
  }
@@ -279,6 +289,7 @@ function printTree(node, prefix = '') {
279
289
  function getAssetsTree(assets) {
280
290
  const assetTree = {};
281
291
  assets?.forEach((asset)=>{
292
+ if ('string' != typeof asset?.name) return;
282
293
  const paths = asset.name.split('/');
283
294
  let currentLevel = assetTree;
284
295
  paths.forEach((part, index)=>{
@@ -374,117 +385,498 @@ function managedDependencyConflict(duplicates, userPackageJsonPath) {
374
385
  const list = duplicates.map((d)=>`- ${pintor.yellow(d)}`).join('\n');
375
386
  return `${getLoggingPrefix('error')} Your project declares dependencies that are managed by ${pintor.blue('Extension.js')} and referenced in ${pintor.underline('extension.config.js')}\n${pintor.red('This can cause version conflicts and break the development/build process.')}\n\n${pintor.gray('Managed dependencies (remove these from your package.json):')}\n${list}\n\n${pintor.gray('PATH')} ${pintor.underline(userPackageJsonPath)}\nIf you need a different version, open an issue so we can consider bundling it safely.\nOperation aborted.`;
376
387
  }
377
- async function findUpLocal(filename, options) {
378
- const root = __rspack_external_path.parse(options.cwd).root;
379
- let currentDir = options.cwd;
388
+ function loadCommonJsConfigWithStableDirname(absolutePath) {
389
+ const code = __rspack_external_fs.readFileSync(absolutePath, 'utf-8');
390
+ const dirname = __rspack_external_path.dirname(absolutePath);
391
+ const requireFn = createRequire(absolutePath);
392
+ const module = {
393
+ exports: {}
394
+ };
395
+ const exports = module.exports;
396
+ const wrapped = `(function (exports, require, module, __filename, __dirname) {\n${code}\n})`;
397
+ const fn = new __rspack_external_vm.Script(wrapped, {
398
+ filename: absolutePath
399
+ }).runInThisContext();
400
+ fn(exports, requireFn, module, absolutePath, dirname);
401
+ return module.exports?.default || module.exports;
402
+ }
403
+ function findNearestWorkspaceRoot(startDir) {
404
+ let current = __rspack_external_path.resolve(startDir);
380
405
  while(true){
381
- const candidate = __rspack_external_path.join(currentDir, filename);
382
- try {
383
- const stat = await __rspack_external_fs.promises.stat(candidate);
384
- if (stat.isFile()) return candidate;
385
- } catch {}
386
- if (currentDir === root) return;
387
- currentDir = __rspack_external_path.dirname(currentDir);
406
+ if (__rspack_external_fs.existsSync(__rspack_external_path.join(current, 'pnpm-workspace.yaml'))) return current;
407
+ const parent = __rspack_external_path.dirname(current);
408
+ if (parent === current) return;
409
+ current = parent;
388
410
  }
389
411
  }
390
- async function findNearestPackageJson(manifestPath) {
412
+ function preloadEnvFilesFromDir(envDir, options) {
413
+ let loadedAny = false;
391
414
  try {
392
- const manifestDir = __rspack_external_path.dirname(manifestPath);
393
- const packageJsonPath = await findUpLocal('package.json', {
394
- cwd: manifestDir
395
- });
396
- return packageJsonPath || null;
397
- } catch (error) {
398
- console.warn('Failed to find package.json:', error);
399
- return null;
400
- }
415
+ const defaultsPath = __rspack_external_path.join(envDir, '.env.defaults');
416
+ if (__rspack_external_fs.existsSync(defaultsPath)) {
417
+ dotenv.config({
418
+ path: defaultsPath,
419
+ override: Boolean(options?.override),
420
+ quiet: true
421
+ });
422
+ loadedAny = true;
423
+ }
424
+ const envCandidates = [
425
+ '.env.development',
426
+ '.env.local',
427
+ '.env'
428
+ ];
429
+ for (const filename of envCandidates){
430
+ const filePath = __rspack_external_path.join(envDir, filename);
431
+ if (__rspack_external_fs.existsSync(filePath)) {
432
+ dotenv.config({
433
+ path: filePath,
434
+ override: Boolean(options?.override),
435
+ quiet: true
436
+ });
437
+ loadedAny = true;
438
+ break;
439
+ }
440
+ }
441
+ } catch {}
442
+ return {
443
+ loadedAny,
444
+ envDir
445
+ };
401
446
  }
402
- function validatePackageJson(packageJsonPath) {
447
+ function findConfigFile(projectPath) {
448
+ const candidates = [
449
+ __rspack_external_path.join(projectPath, 'extension.config.js'),
450
+ __rspack_external_path.join(projectPath, 'extension.config.mjs'),
451
+ __rspack_external_path.join(projectPath, 'extension.config.cjs')
452
+ ];
453
+ return candidates.find((p)=>__rspack_external_fs.existsSync(p));
454
+ }
455
+ function preloadEnvFiles(projectDir) {
456
+ const local = preloadEnvFilesFromDir(projectDir);
457
+ if (local.loadedAny) return local;
458
+ const workspaceRoot = findNearestWorkspaceRoot(projectDir);
459
+ if (workspaceRoot && workspaceRoot !== projectDir) return preloadEnvFilesFromDir(workspaceRoot);
460
+ return local;
461
+ }
462
+ const loadedConfigCache = new Map();
463
+ async function loadConfigFile(configPath) {
464
+ const absolutePath = __rspack_external_path.resolve(configPath);
465
+ const cached = loadedConfigCache.get(absolutePath);
466
+ if (cached) return cached;
467
+ const loading = loadConfigFileUncached(absolutePath);
468
+ loadedConfigCache.set(absolutePath, loading);
403
469
  try {
404
- if (!__rspack_external_fs.existsSync(packageJsonPath)) return false;
405
- const content = __rspack_external_fs.readFileSync(packageJsonPath, 'utf-8');
406
- JSON.parse(content);
407
- return true;
470
+ return await loading;
408
471
  } catch (error) {
409
- console.warn('Invalid package.json at:', packageJsonPath, error);
410
- return false;
472
+ loadedConfigCache.delete(absolutePath);
473
+ throw error;
411
474
  }
412
475
  }
413
- const isUrl = (url)=>{
476
+ async function loadConfigFileUncached(absolutePath) {
477
+ const projectDir = __rspack_external_path.dirname(absolutePath);
478
+ preloadEnvFiles(projectDir);
414
479
  try {
415
- new URL(url);
416
- return true;
417
- } catch (e) {
418
- return false;
419
- }
420
- };
421
- const REMOTE_FETCH_TIMEOUT_MS = (()=>{
422
- const raw = parseInt(String(process.env.EXTENSION_FETCH_TIMEOUT_MS || ''), 10);
423
- return Number.isFinite(raw) && raw > 0 ? raw : 60000;
424
- })();
425
- function withTimeout(task, ms, label) {
426
- let timer;
427
- const timeout = new Promise((_, reject)=>{
428
- timer = setTimeout(()=>reject(new Error(remoteFetchTimedOut(label, ms))), ms);
429
- });
430
- return Promise.race([
431
- task,
432
- timeout
433
- ]).finally(()=>{
434
- if (timer) clearTimeout(timer);
435
- });
436
- }
437
- async function importUrlSourceFromGithub(pathOrRemoteUrl, text) {
438
- const cwd = process.cwd();
439
- const url = new URL(pathOrRemoteUrl);
440
- const segments = url.pathname.split('/').filter(Boolean);
441
- const repoName = segments.length >= 2 ? segments[1] : segments[segments.length - 1];
442
- const treeIndex = segments.indexOf('tree');
443
- const expectedName = -1 !== treeIndex && segments.length > treeIndex + 2 ? segments[segments.length - 1] : repoName;
444
- const expectedPath = __rspack_external_path.resolve(cwd, expectedName);
445
- if (__rspack_external_fs.existsSync(expectedPath)) try {
446
- const entries = __rspack_external_fs.readdirSync(expectedPath);
447
- if (0 === entries.length) __rspack_external_fs.rmSync(expectedPath, {
448
- recursive: true,
449
- force: true
450
- });
451
- else {
452
- const hasManifest = (dir)=>{
453
- const stack = [
454
- dir
455
- ];
456
- while(stack.length){
457
- const current = stack.pop();
458
- const items = __rspack_external_fs.readdirSync(current, {
459
- withFileTypes: true
460
- });
461
- for (const it of items){
462
- if (it.isFile() && 'manifest.json' === it.name) return true;
463
- if (it.isDirectory() && 'node_modules' !== it.name && 'dist' !== it.name && !it.name.startsWith('.')) stack.push(__rspack_external_path.join(current, it.name));
480
+ if (absolutePath.endsWith('.cjs')) {
481
+ const requireFn = createRequire(import.meta.url);
482
+ const required = requireFn(absolutePath);
483
+ return required?.default || required;
484
+ }
485
+ let esmImportPath = absolutePath;
486
+ let shimTmpDir;
487
+ try {
488
+ const originalContent = __rspack_external_fs.readFileSync(absolutePath, 'utf-8');
489
+ if (originalContent.includes('import.meta.env')) {
490
+ shimTmpDir = __rspack_external_fs.mkdtempSync(__rspack_external_path.join(__rspack_external_os.tmpdir(), 'extension-config-esm-'));
491
+ const tmpPath = __rspack_external_path.join(shimTmpDir, __rspack_external_path.basename(absolutePath));
492
+ const envObjectLiteral = JSON.stringify(Object.fromEntries(Object.entries(process.env).map(([k, v])=>[
493
+ k,
494
+ v
495
+ ])), null, 0);
496
+ const shimHeader = `const __IMPORT_META_ENV__ = Object.freeze(${envObjectLiteral});\n`;
497
+ const replaced = originalContent.replace(/import\.meta\.env/g, '__IMPORT_META_ENV__');
498
+ __rspack_external_fs.writeFileSync(tmpPath, `${shimHeader}${replaced}`, 'utf-8');
499
+ esmImportPath = tmpPath;
500
+ }
501
+ } catch {}
502
+ try {
503
+ const module = await import(pathToFileURL(esmImportPath).href);
504
+ return module.default || module;
505
+ } finally{
506
+ if (shimTmpDir) try {
507
+ __rspack_external_fs.rmSync(shimTmpDir, {
508
+ recursive: true,
509
+ force: true
510
+ });
511
+ } catch {}
512
+ }
513
+ } catch (err) {
514
+ const error = err;
515
+ try {
516
+ if (!absolutePath.endsWith('.mjs')) {
517
+ const requireFn = createRequire(import.meta.url);
518
+ let required;
519
+ try {
520
+ required = requireFn(absolutePath);
521
+ } catch (requireErr) {
522
+ const message = String(error?.message || '') + ' ' + String(requireErr?.message || '');
523
+ const looksLikeCommonJsInEsm = message.includes('require is not defined in ES module scope') || message.includes('Cannot use import statement outside a module') || message.includes('ERR_REQUIRE_ESM');
524
+ if (looksLikeCommonJsInEsm) try {
525
+ required = loadCommonJsConfigWithStableDirname(absolutePath);
526
+ } catch {
527
+ const tmpDir = __rspack_external_fs.mkdtempSync(__rspack_external_path.join(__rspack_external_os.tmpdir(), 'extension-config-'));
528
+ try {
529
+ const tmpCjsPath = __rspack_external_path.join(tmpDir, __rspack_external_path.basename(absolutePath, __rspack_external_path.extname(absolutePath)) + '.cjs');
530
+ __rspack_external_fs.copyFileSync(absolutePath, tmpCjsPath);
531
+ required = requireFn(tmpCjsPath);
532
+ } finally{
533
+ try {
534
+ __rspack_external_fs.rmSync(tmpDir, {
535
+ recursive: true,
536
+ force: true
537
+ });
538
+ } catch {}
539
+ }
464
540
  }
541
+ else throw requireErr;
465
542
  }
466
- return false;
467
- };
468
- if (hasManifest(expectedPath)) return expectedPath;
469
- __rspack_external_fs.rmSync(expectedPath, {
470
- recursive: true,
471
- force: true
472
- });
543
+ return required?.default || required;
544
+ }
545
+ } catch {}
546
+ try {
547
+ const content = __rspack_external_fs.readFileSync(absolutePath, 'utf-8');
548
+ return JSON.parse(content);
549
+ } catch (jsonErr) {
550
+ throw new Error(`Failed to load config file: ${absolutePath}\nError: ${error.message || error}`);
473
551
  }
474
- } catch {}
475
- async function tryGitClone() {
476
- const { default: goGitIt } = await import("go-git-it");
477
- await withTimeout(goGitIt(pathOrRemoteUrl, cwd, text), REMOTE_FETCH_TIMEOUT_MS, pathOrRemoteUrl);
478
552
  }
479
- async function tryZipFallback() {
480
- const branch = -1 !== treeIndex && segments.length > treeIndex + 1 ? segments[treeIndex + 1] : 'main';
481
- const owner = segments[0];
482
- const repo = segments[1];
483
- const subdir = -1 !== treeIndex && segments.length > treeIndex + 2 ? segments.slice(treeIndex + 2).join('/') : '';
484
- const zipUrl = `https://codeload.github.com/${owner}/${repo}/zip/refs/heads/${branch}`;
485
- const extractedPath = await importUrlSourceFromZip(zipUrl);
486
- const extractedDirs = __rspack_external_fs.readdirSync(extractedPath, {
487
- withFileTypes: true
553
+ }
554
+ async function loadCustomConfig(projectPath) {
555
+ const configPath = findConfigFile(projectPath);
556
+ if (configPath) {
557
+ if (await config_loader_isUsingExperimentalConfig(projectPath)) try {
558
+ const userConfig = await loadConfigFile(configPath);
559
+ if (userConfig && 'function' == typeof userConfig.config) return userConfig.config;
560
+ if (userConfig && userConfig.config && 'object' == typeof userConfig.config) {
561
+ const partial = userConfig.config;
562
+ return (config)=>{
563
+ const requireFn = createRequire(import.meta.url);
564
+ const { merge } = requireFn('webpack-merge');
565
+ return merge(config, partial);
566
+ };
567
+ }
568
+ } catch (err) {
569
+ const error = err;
570
+ console.error(configLoadingError(configPath, error));
571
+ throw err;
572
+ }
573
+ }
574
+ return (config)=>config;
575
+ }
576
+ async function loadCommandConfig(projectPath, command) {
577
+ const configPath = findConfigFile(projectPath);
578
+ if (configPath) {
579
+ if (await config_loader_isUsingExperimentalConfig(projectPath)) try {
580
+ const userConfig = await loadConfigFile(configPath);
581
+ const baseExtensions = userConfig && userConfig.extensions ? {
582
+ extensions: userConfig.extensions
583
+ } : {};
584
+ const baseTranspilePackages = userConfig && Array.isArray(userConfig.transpilePackages) ? {
585
+ transpilePackages: userConfig.transpilePackages
586
+ } : {};
587
+ const basePerfBudgets = userConfig && userConfig.perfBudgets && 'object' == typeof userConfig.perfBudgets ? {
588
+ perfBudgets: userConfig.perfBudgets
589
+ } : {};
590
+ const perCommand = userConfig && userConfig.commands && userConfig.commands[command] ? userConfig.commands[command] : {};
591
+ return {
592
+ ...baseExtensions,
593
+ ...baseTranspilePackages,
594
+ ...basePerfBudgets,
595
+ ...perCommand
596
+ };
597
+ } catch (err) {
598
+ const error = err;
599
+ console.error(configLoadingError(configPath, error));
600
+ throw err;
601
+ }
602
+ }
603
+ return {};
604
+ }
605
+ async function loadBrowserConfig(projectPath, browser = 'chrome') {
606
+ const configPath = findConfigFile(projectPath);
607
+ if (configPath) {
608
+ if (await config_loader_isUsingExperimentalConfig(projectPath)) try {
609
+ const userConfig = await loadConfigFile(configPath);
610
+ if (userConfig && userConfig.browser) {
611
+ const browsers = userConfig.browser;
612
+ if ('chromium-based' === browser) {
613
+ if (browsers['chromium-based']) return browsers['chromium-based'];
614
+ if (browsers.chromium) return browsers.chromium;
615
+ } else if ('gecko-based' === browser) {
616
+ if (browsers['gecko-based']) return browsers['gecko-based'];
617
+ if (browsers.firefox) return browsers.firefox;
618
+ } else {
619
+ const direct = browsers[browser];
620
+ if (direct) return direct;
621
+ }
622
+ }
623
+ } catch (err) {
624
+ const error = err;
625
+ console.error(configLoadingError(configPath, error));
626
+ throw err;
627
+ }
628
+ }
629
+ return {
630
+ browser: browser || 'chrome'
631
+ };
632
+ }
633
+ let userMessageDelivered = false;
634
+ async function config_loader_isUsingExperimentalConfig(projectPath) {
635
+ const configPath = findConfigFile(projectPath);
636
+ if (configPath) {
637
+ if (!userMessageDelivered) {
638
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(isUsingExperimentalConfig('extension.config.js'));
639
+ userMessageDelivered = true;
640
+ }
641
+ return true;
642
+ }
643
+ return false;
644
+ }
645
+ function asAbsolute(p) {
646
+ return __rspack_external_path.isAbsolute(p) ? p : __rspack_external_path.resolve(p);
647
+ }
648
+ function getDirs(struct) {
649
+ const manifestDir = asAbsolute(__rspack_external_path.dirname(struct.manifestPath));
650
+ const packageJsonDir = asAbsolute(struct.packageJsonPath ? __rspack_external_path.dirname(struct.packageJsonPath) : manifestDir);
651
+ return {
652
+ manifestDir,
653
+ packageJsonDir
654
+ };
655
+ }
656
+ function getNodeModulesDir(packageJsonDir) {
657
+ return asAbsolute(__rspack_external_path.join(packageJsonDir, 'node_modules'));
658
+ }
659
+ function needsInstall(packageJsonDir) {
660
+ const nm = getNodeModulesDir(packageJsonDir);
661
+ const packageJsonPath = __rspack_external_path.join(packageJsonDir, 'package.json');
662
+ if (!__rspack_external_fs.existsSync(packageJsonPath)) return false;
663
+ try {
664
+ const raw = __rspack_external_fs.readFileSync(packageJsonPath, 'utf-8');
665
+ const packageJson = JSON.parse(raw);
666
+ const depsCount = Object.keys(packageJson?.dependencies || {}).length;
667
+ const devDepsCount = Object.keys(packageJson?.devDependencies || {}).length;
668
+ if (depsCount + devDepsCount === 0) return false;
669
+ if (!__rspack_external_fs.existsSync(nm)) return true;
670
+ const deps = Object.keys(packageJson?.dependencies || {});
671
+ const devDeps = Object.keys(packageJson?.devDependencies || {});
672
+ if (__rspack_external_fs.existsSync(__rspack_external_path.join(nm, '.pnpm'))) return false;
673
+ if (__rspack_external_fs.existsSync(__rspack_external_path.join(nm, '.modules.yaml'))) return false;
674
+ const hasInstalledDep = [
675
+ ...deps,
676
+ ...devDeps
677
+ ].some((dep)=>__rspack_external_fs.existsSync(__rspack_external_path.join(nm, dep)));
678
+ return !hasInstalledDep;
679
+ } catch {
680
+ return true;
681
+ }
682
+ }
683
+ function normalizeBrowser(browser, chromiumBinary, geckoBinary, safariBinary) {
684
+ const requested = String(browser || '');
685
+ if (chromiumBinary) {
686
+ if (!requested || 'chromium-based' === requested) return 'chromium-based';
687
+ if ('chromium' === requested) return 'chromium';
688
+ if ('edge' === requested) return 'edge';
689
+ if ('chrome' === requested) return 'chrome';
690
+ }
691
+ if (geckoBinary) {
692
+ if (!requested || 'gecko-based' === requested || 'firefox-based' === requested) return 'gecko-based';
693
+ if ('firefox' === requested) return 'firefox';
694
+ }
695
+ if (safariBinary) {
696
+ if (!requested || 'webkit-based' === requested) return 'webkit-based';
697
+ if ('safari' === requested) return 'safari';
698
+ }
699
+ switch(requested){
700
+ case 'chrome':
701
+ return 'chrome';
702
+ case 'edge':
703
+ return 'edge';
704
+ case 'chromium':
705
+ return 'chromium';
706
+ case 'brave':
707
+ return 'brave';
708
+ case 'opera':
709
+ return 'opera';
710
+ case 'vivaldi':
711
+ return 'vivaldi';
712
+ case 'yandex':
713
+ return 'yandex';
714
+ case 'chromium-based':
715
+ return 'chromium-based';
716
+ case 'firefox':
717
+ return 'firefox';
718
+ case 'waterfox':
719
+ return 'waterfox';
720
+ case 'librewolf':
721
+ return 'librewolf';
722
+ case 'gecko-based':
723
+ case 'firefox-based':
724
+ return 'gecko-based';
725
+ case 'safari':
726
+ return 'safari';
727
+ case 'webkit-based':
728
+ return 'webkit-based';
729
+ default:
730
+ return 'chrome';
731
+ }
732
+ }
733
+ function getDistPath(packageJsonDir, browser) {
734
+ return asAbsolute(__rspack_external_path.join(packageJsonDir, 'dist', browser));
735
+ }
736
+ function computePreviewOutputPath(struct, browser, explicitOutputPath) {
737
+ const { manifestDir, packageJsonDir } = getDirs(struct);
738
+ if (explicitOutputPath) return asAbsolute(explicitOutputPath);
739
+ if (struct.packageJsonPath) {
740
+ const distDir = getDistPath(packageJsonDir, browser);
741
+ try {
742
+ if (__rspack_external_fs.existsSync(__rspack_external_path.join(distDir, 'manifest.json'))) return distDir;
743
+ } catch {}
744
+ }
745
+ return manifestDir;
746
+ }
747
+ function devtoolsEngineFor(browser) {
748
+ switch(browser){
749
+ case 'chrome':
750
+ return 'chrome';
751
+ case 'edge':
752
+ return 'edge';
753
+ case 'chromium':
754
+ case 'chromium-based':
755
+ case 'brave':
756
+ case 'opera':
757
+ case 'vivaldi':
758
+ case 'yandex':
759
+ return 'chromium';
760
+ case 'firefox':
761
+ case 'gecko-based':
762
+ case 'waterfox':
763
+ case 'librewolf':
764
+ return 'firefox';
765
+ default:
766
+ return 'chrome';
767
+ }
768
+ }
769
+ async function findUpLocal(filename, options) {
770
+ const root = __rspack_external_path.parse(options.cwd).root;
771
+ let currentDir = options.cwd;
772
+ while(true){
773
+ const candidate = __rspack_external_path.join(currentDir, filename);
774
+ try {
775
+ const stat = await __rspack_external_fs.promises.stat(candidate);
776
+ if (stat.isFile()) return candidate;
777
+ } catch {}
778
+ if (currentDir === root) return;
779
+ currentDir = __rspack_external_path.dirname(currentDir);
780
+ }
781
+ }
782
+ async function findNearestPackageJson(manifestPath) {
783
+ try {
784
+ const manifestDir = __rspack_external_path.dirname(manifestPath);
785
+ const packageJsonPath = await findUpLocal('package.json', {
786
+ cwd: manifestDir
787
+ });
788
+ return packageJsonPath || null;
789
+ } catch (error) {
790
+ console.warn('Failed to find package.json:', error);
791
+ return null;
792
+ }
793
+ }
794
+ function validatePackageJson(packageJsonPath) {
795
+ try {
796
+ if (!__rspack_external_fs.existsSync(packageJsonPath)) return false;
797
+ const content = __rspack_external_fs.readFileSync(packageJsonPath, 'utf-8');
798
+ JSON.parse(content);
799
+ return true;
800
+ } catch (error) {
801
+ console.warn('Invalid package.json at:', packageJsonPath, error);
802
+ return false;
803
+ }
804
+ }
805
+ const isUrl = (url)=>{
806
+ try {
807
+ new URL(url);
808
+ return true;
809
+ } catch (e) {
810
+ return false;
811
+ }
812
+ };
813
+ const REMOTE_FETCH_TIMEOUT_MS = (()=>{
814
+ const raw = parseInt(String(process.env.EXTENSION_FETCH_TIMEOUT_MS || ''), 10);
815
+ return Number.isFinite(raw) && raw > 0 ? raw : 60000;
816
+ })();
817
+ function withTimeout(task, ms, label) {
818
+ let timer;
819
+ const timeout = new Promise((_, reject)=>{
820
+ timer = setTimeout(()=>reject(new Error(remoteFetchTimedOut(label, ms))), ms);
821
+ });
822
+ return Promise.race([
823
+ task,
824
+ timeout
825
+ ]).finally(()=>{
826
+ if (timer) clearTimeout(timer);
827
+ });
828
+ }
829
+ async function importUrlSourceFromGithub(pathOrRemoteUrl, text) {
830
+ const cwd = process.cwd();
831
+ const url = new URL(pathOrRemoteUrl);
832
+ const segments = url.pathname.split('/').filter(Boolean);
833
+ const repoName = segments.length >= 2 ? segments[1] : segments[segments.length - 1];
834
+ const treeIndex = segments.indexOf('tree');
835
+ const expectedName = -1 !== treeIndex && segments.length > treeIndex + 2 ? segments[segments.length - 1] : repoName;
836
+ const expectedPath = __rspack_external_path.resolve(cwd, expectedName);
837
+ if (__rspack_external_fs.existsSync(expectedPath)) try {
838
+ const entries = __rspack_external_fs.readdirSync(expectedPath);
839
+ if (0 === entries.length) __rspack_external_fs.rmSync(expectedPath, {
840
+ recursive: true,
841
+ force: true
842
+ });
843
+ else {
844
+ const hasManifest = (dir)=>{
845
+ const stack = [
846
+ dir
847
+ ];
848
+ while(stack.length){
849
+ const current = stack.pop();
850
+ const items = __rspack_external_fs.readdirSync(current, {
851
+ withFileTypes: true
852
+ });
853
+ for (const it of items){
854
+ if (it.isFile() && 'manifest.json' === it.name) return true;
855
+ if (it.isDirectory() && 'node_modules' !== it.name && 'dist' !== it.name && !it.name.startsWith('.')) stack.push(__rspack_external_path.join(current, it.name));
856
+ }
857
+ }
858
+ return false;
859
+ };
860
+ if (hasManifest(expectedPath)) return expectedPath;
861
+ __rspack_external_fs.rmSync(expectedPath, {
862
+ recursive: true,
863
+ force: true
864
+ });
865
+ }
866
+ } catch {}
867
+ async function tryGitClone() {
868
+ const { default: goGitIt } = await import("go-git-it");
869
+ await withTimeout(goGitIt(pathOrRemoteUrl, cwd, text), REMOTE_FETCH_TIMEOUT_MS, pathOrRemoteUrl);
870
+ }
871
+ async function tryZipFallback() {
872
+ const branch = -1 !== treeIndex && segments.length > treeIndex + 1 ? segments[treeIndex + 1] : 'main';
873
+ const owner = segments[0];
874
+ const repo = segments[1];
875
+ const subdir = -1 !== treeIndex && segments.length > treeIndex + 2 ? segments.slice(treeIndex + 2).join('/') : '';
876
+ const zipUrl = `https://codeload.github.com/${owner}/${repo}/zip/refs/heads/${branch}`;
877
+ const extractedPath = await importUrlSourceFromZip(zipUrl);
878
+ const extractedDirs = __rspack_external_fs.readdirSync(extractedPath, {
879
+ withFileTypes: true
488
880
  }).filter((d)=>d.isDirectory()).map((d)=>d.name);
489
881
  const repoRootDir = extractedDirs.find((d)=>d.startsWith(`${repo}-${branch}`));
490
882
  const repoRoot = repoRootDir ? __rspack_external_path.join(extractedPath, repoRootDir) : extractedPath;
@@ -574,341 +966,84 @@ function collectManifestCandidates(rootDir, maxDepth) {
574
966
  try {
575
967
  entries = __rspack_external_fs.readdirSync(dir, {
576
968
  withFileTypes: true
577
- });
578
- } catch {
579
- return;
580
- }
581
- for (const entry of entries){
582
- if (entry.isFile() && 'manifest.json' === entry.name) {
583
- results.push(__rspack_external_path.join(dir, entry.name));
584
- continue;
585
- }
586
- if (entry.isDirectory() && !entry.name.startsWith('.') && !SKIP_DIRS.has(entry.name)) walk(__rspack_external_path.join(dir, entry.name), depth + 1);
587
- }
588
- };
589
- walk(rootDir, 0);
590
- return results;
591
- }
592
- async function getProjectStructure(pathOrRemoteUrl) {
593
- const projectPath = await getProjectPath(pathOrRemoteUrl);
594
- const isUnderDir = (baseDir, candidatePath)=>{
595
- const rel = __rspack_external_path.relative(baseDir, candidatePath);
596
- return Boolean(rel && !rel.startsWith('..') && !__rspack_external_path.isAbsolute(rel));
597
- };
598
- const packageJsonPathFromProject = await findNearestPackageJson(__rspack_external_path.join(projectPath, 'manifest.json'));
599
- const packageJsonDirFromProject = packageJsonPathFromProject ? __rspack_external_path.dirname(packageJsonPathFromProject) : void 0;
600
- const rootManifestPath = __rspack_external_path.join(projectPath, 'manifest.json');
601
- const srcManifestPath = __rspack_external_path.join(projectPath, 'src', 'manifest.json');
602
- let manifestPath = __rspack_external_fs.existsSync(srcManifestPath) ? srcManifestPath : rootManifestPath;
603
- if (!__rspack_external_fs.existsSync(manifestPath)) if (packageJsonDirFromProject) {
604
- const absoluteCandidates = collectManifestCandidates(projectPath, 3);
605
- const relativeCandidates = absoluteCandidates.map((candidate)=>__rspack_external_path.relative(projectPath, candidate) || candidate);
606
- if (1 === absoluteCandidates.length) {
607
- manifestPath = absoluteCandidates[0];
608
- console.log(resolvedWorkspaceManifest(projectPath, manifestPath));
609
- } else throw new Error(manifestNotFoundError(manifestPath, relativeCandidates));
610
- } else {
611
- const MAX_DEPTH = 5;
612
- const findManifest = (dir, depth)=>{
613
- if (depth > MAX_DEPTH) return null;
614
- let files;
615
- try {
616
- files = __rspack_external_fs.readdirSync(dir, {
617
- withFileTypes: true
618
- });
619
- } catch {
620
- return null;
621
- }
622
- for (const file of files){
623
- if (file.isFile() && 'manifest.json' === file.name) return __rspack_external_path.join(dir, file.name);
624
- if (file.isDirectory() && !file.name.startsWith('.') && 'node_modules' !== file.name && 'dist' !== file.name && 'public' !== file.name) {
625
- const found = findManifest(__rspack_external_path.join(dir, file.name), depth + 1);
626
- if (found) return found;
627
- }
628
- }
629
- return null;
630
- };
631
- const foundManifest = findManifest(projectPath, 0);
632
- if (foundManifest) manifestPath = foundManifest;
633
- else throw new Error(manifestNotFoundError(manifestPath));
634
- }
635
- const packageJsonPath = await findNearestPackageJson(manifestPath);
636
- const packageJsonDir = packageJsonPath ? __rspack_external_path.dirname(packageJsonPath) : void 0;
637
- if (packageJsonDir) {
638
- const publicRoot = __rspack_external_path.join(packageJsonDir, 'public');
639
- if (isUnderDir(publicRoot, manifestPath)) {
640
- const fallbackSrc = __rspack_external_path.join(packageJsonDir, 'src', 'manifest.json');
641
- const fallbackRoot = __rspack_external_path.join(packageJsonDir, 'manifest.json');
642
- if (__rspack_external_fs.existsSync(fallbackSrc)) manifestPath = fallbackSrc;
643
- else if (__rspack_external_fs.existsSync(fallbackRoot)) manifestPath = fallbackRoot;
644
- else throw new Error(manifestNotFoundError(fallbackRoot));
645
- }
646
- }
647
- if (!packageJsonPath || !validatePackageJson(packageJsonPath)) return {
648
- manifestPath
649
- };
650
- return {
651
- manifestPath,
652
- packageJsonPath
653
- };
654
- }
655
- function loadCommonJsConfigWithStableDirname(absolutePath) {
656
- const code = __rspack_external_fs.readFileSync(absolutePath, 'utf-8');
657
- const dirname = __rspack_external_path.dirname(absolutePath);
658
- const requireFn = createRequire(absolutePath);
659
- const module = {
660
- exports: {}
661
- };
662
- const exports = module.exports;
663
- const wrapped = `(function (exports, require, module, __filename, __dirname) {\n${code}\n})`;
664
- const fn = new __rspack_external_vm.Script(wrapped, {
665
- filename: absolutePath
666
- }).runInThisContext();
667
- fn(exports, requireFn, module, absolutePath, dirname);
668
- return module.exports?.default || module.exports;
669
- }
670
- function findNearestWorkspaceRoot(startDir) {
671
- let current = __rspack_external_path.resolve(startDir);
672
- while(true){
673
- if (__rspack_external_fs.existsSync(__rspack_external_path.join(current, 'pnpm-workspace.yaml'))) return current;
674
- const parent = __rspack_external_path.dirname(current);
675
- if (parent === current) return;
676
- current = parent;
677
- }
678
- }
679
- function preloadEnvFilesFromDir(envDir, options) {
680
- let loadedAny = false;
681
- try {
682
- const defaultsPath = __rspack_external_path.join(envDir, '.env.defaults');
683
- if (__rspack_external_fs.existsSync(defaultsPath)) {
684
- dotenv.config({
685
- path: defaultsPath,
686
- override: Boolean(options?.override),
687
- quiet: true
688
- });
689
- loadedAny = true;
690
- }
691
- const envCandidates = [
692
- '.env.development',
693
- '.env.local',
694
- '.env'
695
- ];
696
- for (const filename of envCandidates){
697
- const filePath = __rspack_external_path.join(envDir, filename);
698
- if (__rspack_external_fs.existsSync(filePath)) {
699
- dotenv.config({
700
- path: filePath,
701
- override: Boolean(options?.override),
702
- quiet: true
703
- });
704
- loadedAny = true;
705
- break;
706
- }
707
- }
708
- } catch {}
709
- return {
710
- loadedAny,
711
- envDir
712
- };
713
- }
714
- function findConfigFile(projectPath) {
715
- const candidates = [
716
- __rspack_external_path.join(projectPath, 'extension.config.js'),
717
- __rspack_external_path.join(projectPath, 'extension.config.mjs'),
718
- __rspack_external_path.join(projectPath, 'extension.config.cjs')
719
- ];
720
- return candidates.find((p)=>__rspack_external_fs.existsSync(p));
721
- }
722
- function preloadEnvFiles(projectDir) {
723
- const local = preloadEnvFilesFromDir(projectDir);
724
- if (local.loadedAny) return local;
725
- const workspaceRoot = findNearestWorkspaceRoot(projectDir);
726
- if (workspaceRoot && workspaceRoot !== projectDir) return preloadEnvFilesFromDir(workspaceRoot);
727
- return local;
728
- }
729
- const loadedConfigCache = new Map();
730
- async function loadConfigFile(configPath) {
731
- const absolutePath = __rspack_external_path.resolve(configPath);
732
- const cached = loadedConfigCache.get(absolutePath);
733
- if (cached) return cached;
734
- const loading = loadConfigFileUncached(absolutePath);
735
- loadedConfigCache.set(absolutePath, loading);
736
- try {
737
- return await loading;
738
- } catch (error) {
739
- loadedConfigCache.delete(absolutePath);
740
- throw error;
741
- }
742
- }
743
- async function loadConfigFileUncached(absolutePath) {
744
- const projectDir = __rspack_external_path.dirname(absolutePath);
745
- preloadEnvFiles(projectDir);
746
- try {
747
- if (absolutePath.endsWith('.cjs')) {
748
- const requireFn = createRequire(import.meta.url);
749
- const required = requireFn(absolutePath);
750
- return required?.default || required;
751
- }
752
- let esmImportPath = absolutePath;
753
- let shimTmpDir;
754
- try {
755
- const originalContent = __rspack_external_fs.readFileSync(absolutePath, 'utf-8');
756
- if (originalContent.includes('import.meta.env')) {
757
- shimTmpDir = __rspack_external_fs.mkdtempSync(__rspack_external_path.join(__rspack_external_os.tmpdir(), 'extension-config-esm-'));
758
- const tmpPath = __rspack_external_path.join(shimTmpDir, __rspack_external_path.basename(absolutePath));
759
- const envObjectLiteral = JSON.stringify(Object.fromEntries(Object.entries(process.env).map(([k, v])=>[
760
- k,
761
- v
762
- ])), null, 0);
763
- const shimHeader = `const __IMPORT_META_ENV__ = Object.freeze(${envObjectLiteral});\n`;
764
- const replaced = originalContent.replace(/import\.meta\.env/g, '__IMPORT_META_ENV__');
765
- __rspack_external_fs.writeFileSync(tmpPath, `${shimHeader}${replaced}`, 'utf-8');
766
- esmImportPath = tmpPath;
767
- }
768
- } catch {}
769
- try {
770
- const module = await import(pathToFileURL(esmImportPath).href);
771
- return module.default || module;
772
- } finally{
773
- if (shimTmpDir) try {
774
- __rspack_external_fs.rmSync(shimTmpDir, {
775
- recursive: true,
776
- force: true
777
- });
778
- } catch {}
779
- }
780
- } catch (err) {
781
- const error = err;
782
- try {
783
- if (!absolutePath.endsWith('.mjs')) {
784
- const requireFn = createRequire(import.meta.url);
785
- let required;
786
- try {
787
- required = requireFn(absolutePath);
788
- } catch (requireErr) {
789
- const message = String(error?.message || '') + ' ' + String(requireErr?.message || '');
790
- const looksLikeCommonJsInEsm = message.includes('require is not defined in ES module scope') || message.includes('Cannot use import statement outside a module') || message.includes('ERR_REQUIRE_ESM');
791
- if (looksLikeCommonJsInEsm) try {
792
- required = loadCommonJsConfigWithStableDirname(absolutePath);
793
- } catch {
794
- const tmpDir = __rspack_external_fs.mkdtempSync(__rspack_external_path.join(__rspack_external_os.tmpdir(), 'extension-config-'));
795
- try {
796
- const tmpCjsPath = __rspack_external_path.join(tmpDir, __rspack_external_path.basename(absolutePath, __rspack_external_path.extname(absolutePath)) + '.cjs');
797
- __rspack_external_fs.copyFileSync(absolutePath, tmpCjsPath);
798
- required = requireFn(tmpCjsPath);
799
- } finally{
800
- try {
801
- __rspack_external_fs.rmSync(tmpDir, {
802
- recursive: true,
803
- force: true
804
- });
805
- } catch {}
806
- }
807
- }
808
- else throw requireErr;
809
- }
810
- return required?.default || required;
811
- }
812
- } catch {}
813
- try {
814
- const content = __rspack_external_fs.readFileSync(absolutePath, 'utf-8');
815
- return JSON.parse(content);
816
- } catch (jsonErr) {
817
- throw new Error(`Failed to load config file: ${absolutePath}\nError: ${error.message || error}`);
969
+ });
970
+ } catch {
971
+ return;
818
972
  }
819
- }
820
- }
821
- async function loadCustomConfig(projectPath) {
822
- const configPath = findConfigFile(projectPath);
823
- if (configPath) {
824
- if (await config_loader_isUsingExperimentalConfig(projectPath)) try {
825
- const userConfig = await loadConfigFile(configPath);
826
- if (userConfig && 'function' == typeof userConfig.config) return userConfig.config;
827
- if (userConfig && userConfig.config && 'object' == typeof userConfig.config) {
828
- const partial = userConfig.config;
829
- return (config)=>{
830
- const requireFn = createRequire(import.meta.url);
831
- const { merge } = requireFn('webpack-merge');
832
- return merge(config, partial);
833
- };
973
+ for (const entry of entries){
974
+ if (entry.isFile() && 'manifest.json' === entry.name) {
975
+ results.push(__rspack_external_path.join(dir, entry.name));
976
+ continue;
834
977
  }
835
- } catch (err) {
836
- const error = err;
837
- console.error(configLoadingError(configPath, error));
838
- throw err;
839
- }
840
- }
841
- return (config)=>config;
842
- }
843
- async function loadCommandConfig(projectPath, command) {
844
- const configPath = findConfigFile(projectPath);
845
- if (configPath) {
846
- if (await config_loader_isUsingExperimentalConfig(projectPath)) try {
847
- const userConfig = await loadConfigFile(configPath);
848
- const baseExtensions = userConfig && userConfig.extensions ? {
849
- extensions: userConfig.extensions
850
- } : {};
851
- const baseTranspilePackages = userConfig && Array.isArray(userConfig.transpilePackages) ? {
852
- transpilePackages: userConfig.transpilePackages
853
- } : {};
854
- const basePerfBudgets = userConfig && userConfig.perfBudgets && 'object' == typeof userConfig.perfBudgets ? {
855
- perfBudgets: userConfig.perfBudgets
856
- } : {};
857
- const perCommand = userConfig && userConfig.commands && userConfig.commands[command] ? userConfig.commands[command] : {};
858
- return {
859
- ...baseExtensions,
860
- ...baseTranspilePackages,
861
- ...basePerfBudgets,
862
- ...perCommand
863
- };
864
- } catch (err) {
865
- const error = err;
866
- console.error(configLoadingError(configPath, error));
867
- throw err;
978
+ if (entry.isDirectory() && !entry.name.startsWith('.') && !SKIP_DIRS.has(entry.name)) walk(__rspack_external_path.join(dir, entry.name), depth + 1);
868
979
  }
869
- }
870
- return {};
980
+ };
981
+ walk(rootDir, 0);
982
+ return results;
871
983
  }
872
- async function loadBrowserConfig(projectPath, browser = 'chrome') {
873
- const configPath = findConfigFile(projectPath);
874
- if (configPath) {
875
- if (await config_loader_isUsingExperimentalConfig(projectPath)) try {
876
- const userConfig = await loadConfigFile(configPath);
877
- if (userConfig && userConfig.browser) {
878
- const browsers = userConfig.browser;
879
- if ('chromium-based' === browser) {
880
- if (browsers['chromium-based']) return browsers['chromium-based'];
881
- if (browsers.chromium) return browsers.chromium;
882
- } else if ('gecko-based' === browser) {
883
- if (browsers['gecko-based']) return browsers['gecko-based'];
884
- if (browsers.firefox) return browsers.firefox;
885
- } else {
886
- const direct = browsers[browser];
887
- if (direct) return direct;
984
+ async function getProjectStructure(pathOrRemoteUrl) {
985
+ const projectPath = await getProjectPath(pathOrRemoteUrl);
986
+ const isUnderDir = (baseDir, candidatePath)=>{
987
+ const rel = __rspack_external_path.relative(baseDir, candidatePath);
988
+ return Boolean(rel && !rel.startsWith('..') && !__rspack_external_path.isAbsolute(rel));
989
+ };
990
+ const packageJsonPathFromProject = await findNearestPackageJson(__rspack_external_path.join(projectPath, 'manifest.json'));
991
+ const packageJsonDirFromProject = packageJsonPathFromProject ? __rspack_external_path.dirname(packageJsonPathFromProject) : void 0;
992
+ const rootManifestPath = __rspack_external_path.join(projectPath, 'manifest.json');
993
+ const srcManifestPath = __rspack_external_path.join(projectPath, 'src', 'manifest.json');
994
+ let manifestPath = __rspack_external_fs.existsSync(srcManifestPath) ? srcManifestPath : rootManifestPath;
995
+ if (!__rspack_external_fs.existsSync(manifestPath)) if (packageJsonDirFromProject) {
996
+ const absoluteCandidates = collectManifestCandidates(projectPath, 3);
997
+ const relativeCandidates = absoluteCandidates.map((candidate)=>__rspack_external_path.relative(projectPath, candidate) || candidate);
998
+ if (1 === absoluteCandidates.length) {
999
+ manifestPath = absoluteCandidates[0];
1000
+ console.log(resolvedWorkspaceManifest(projectPath, manifestPath));
1001
+ } else throw new Error(manifestNotFoundError(manifestPath, relativeCandidates));
1002
+ } else {
1003
+ const MAX_DEPTH = 5;
1004
+ const findManifest = (dir, depth)=>{
1005
+ if (depth > MAX_DEPTH) return null;
1006
+ let files;
1007
+ try {
1008
+ files = __rspack_external_fs.readdirSync(dir, {
1009
+ withFileTypes: true
1010
+ });
1011
+ } catch {
1012
+ return null;
1013
+ }
1014
+ for (const file of files){
1015
+ if (file.isFile() && 'manifest.json' === file.name) return __rspack_external_path.join(dir, file.name);
1016
+ if (file.isDirectory() && !file.name.startsWith('.') && 'node_modules' !== file.name && 'dist' !== file.name && 'public' !== file.name) {
1017
+ const found = findManifest(__rspack_external_path.join(dir, file.name), depth + 1);
1018
+ if (found) return found;
888
1019
  }
889
1020
  }
890
- } catch (err) {
891
- const error = err;
892
- console.error(configLoadingError(configPath, error));
893
- throw err;
1021
+ return null;
1022
+ };
1023
+ const foundManifest = findManifest(projectPath, 0);
1024
+ if (foundManifest) manifestPath = foundManifest;
1025
+ else throw new Error(manifestNotFoundError(manifestPath));
1026
+ }
1027
+ const packageJsonPath = await findNearestPackageJson(manifestPath);
1028
+ const packageJsonDir = packageJsonPath ? __rspack_external_path.dirname(packageJsonPath) : void 0;
1029
+ if (packageJsonDir) {
1030
+ const publicRoot = __rspack_external_path.join(packageJsonDir, 'public');
1031
+ if (isUnderDir(publicRoot, manifestPath)) {
1032
+ const fallbackSrc = __rspack_external_path.join(packageJsonDir, 'src', 'manifest.json');
1033
+ const fallbackRoot = __rspack_external_path.join(packageJsonDir, 'manifest.json');
1034
+ if (__rspack_external_fs.existsSync(fallbackSrc)) manifestPath = fallbackSrc;
1035
+ else if (__rspack_external_fs.existsSync(fallbackRoot)) manifestPath = fallbackRoot;
1036
+ else throw new Error(manifestNotFoundError(fallbackRoot));
894
1037
  }
895
1038
  }
1039
+ if (!packageJsonPath || !validatePackageJson(packageJsonPath)) return {
1040
+ manifestPath
1041
+ };
896
1042
  return {
897
- browser: browser || 'chrome'
1043
+ manifestPath,
1044
+ packageJsonPath
898
1045
  };
899
1046
  }
900
- let userMessageDelivered = false;
901
- async function config_loader_isUsingExperimentalConfig(projectPath) {
902
- const configPath = findConfigFile(projectPath);
903
- if (configPath) {
904
- if (!userMessageDelivered) {
905
- if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(isUsingExperimentalConfig('extension.config.js'));
906
- userMessageDelivered = true;
907
- }
908
- return true;
909
- }
910
- return false;
911
- }
912
1047
  function isReferencedAsModuleSpecifier(configSource, dep) {
913
1048
  const escaped = dep.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
914
1049
  const specifierRe = new RegExp(`['"\`]${escaped}(?:/[^'"\`]*)?['"\`]`);
@@ -944,112 +1079,6 @@ function assertNoManagedDependencyConflicts(userPackageJsonPath, projectPath) {
944
1079
  if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.warn(error);
945
1080
  }
946
1081
  }
947
- function asAbsolute(p) {
948
- return __rspack_external_path.isAbsolute(p) ? p : __rspack_external_path.resolve(p);
949
- }
950
- function getDirs(struct) {
951
- const manifestDir = asAbsolute(__rspack_external_path.dirname(struct.manifestPath));
952
- const packageJsonDir = asAbsolute(struct.packageJsonPath ? __rspack_external_path.dirname(struct.packageJsonPath) : manifestDir);
953
- return {
954
- manifestDir,
955
- packageJsonDir
956
- };
957
- }
958
- function getNodeModulesDir(packageJsonDir) {
959
- return asAbsolute(__rspack_external_path.join(packageJsonDir, 'node_modules'));
960
- }
961
- function needsInstall(packageJsonDir) {
962
- const nm = getNodeModulesDir(packageJsonDir);
963
- const packageJsonPath = __rspack_external_path.join(packageJsonDir, 'package.json');
964
- if (!__rspack_external_fs.existsSync(packageJsonPath)) return false;
965
- try {
966
- const raw = __rspack_external_fs.readFileSync(packageJsonPath, 'utf-8');
967
- const packageJson = JSON.parse(raw);
968
- const depsCount = Object.keys(packageJson?.dependencies || {}).length;
969
- const devDepsCount = Object.keys(packageJson?.devDependencies || {}).length;
970
- if (depsCount + devDepsCount === 0) return false;
971
- if (!__rspack_external_fs.existsSync(nm)) return true;
972
- const deps = Object.keys(packageJson?.dependencies || {});
973
- const devDeps = Object.keys(packageJson?.devDependencies || {});
974
- if (__rspack_external_fs.existsSync(__rspack_external_path.join(nm, '.pnpm'))) return false;
975
- if (__rspack_external_fs.existsSync(__rspack_external_path.join(nm, '.modules.yaml'))) return false;
976
- const hasInstalledDep = [
977
- ...deps,
978
- ...devDeps
979
- ].some((dep)=>__rspack_external_fs.existsSync(__rspack_external_path.join(nm, dep)));
980
- return !hasInstalledDep;
981
- } catch {
982
- return true;
983
- }
984
- }
985
- function normalizeBrowser(browser, chromiumBinary, geckoBinary, safariBinary) {
986
- const requested = String(browser || '');
987
- if (chromiumBinary) {
988
- if (!requested || 'chromium-based' === requested) return 'chromium-based';
989
- if ('chromium' === requested) return 'chromium';
990
- if ('edge' === requested) return 'edge';
991
- if ('chrome' === requested) return 'chrome';
992
- }
993
- if (geckoBinary) {
994
- if (!requested || 'gecko-based' === requested || 'firefox-based' === requested) return 'gecko-based';
995
- if ('firefox' === requested) return 'firefox';
996
- }
997
- if (safariBinary) {
998
- if (!requested || 'webkit-based' === requested) return 'webkit-based';
999
- if ('safari' === requested) return 'safari';
1000
- }
1001
- switch(requested){
1002
- case 'chrome':
1003
- return 'chrome';
1004
- case 'edge':
1005
- return 'edge';
1006
- case 'chromium':
1007
- return 'chromium';
1008
- case 'chromium-based':
1009
- return 'chromium-based';
1010
- case 'firefox':
1011
- return 'firefox';
1012
- case 'gecko-based':
1013
- case 'firefox-based':
1014
- return 'gecko-based';
1015
- case 'safari':
1016
- return 'safari';
1017
- case 'webkit-based':
1018
- return 'webkit-based';
1019
- default:
1020
- return 'chrome';
1021
- }
1022
- }
1023
- function getDistPath(packageJsonDir, browser) {
1024
- return asAbsolute(__rspack_external_path.join(packageJsonDir, 'dist', browser));
1025
- }
1026
- function computePreviewOutputPath(struct, browser, explicitOutputPath) {
1027
- const { manifestDir, packageJsonDir } = getDirs(struct);
1028
- if (explicitOutputPath) return asAbsolute(explicitOutputPath);
1029
- if (struct.packageJsonPath) {
1030
- const distDir = getDistPath(packageJsonDir, browser);
1031
- try {
1032
- if (__rspack_external_fs.existsSync(__rspack_external_path.join(distDir, 'manifest.json'))) return distDir;
1033
- } catch {}
1034
- }
1035
- return manifestDir;
1036
- }
1037
- function devtoolsEngineFor(browser) {
1038
- switch(browser){
1039
- case 'chrome':
1040
- return 'chrome';
1041
- case 'edge':
1042
- return 'edge';
1043
- case 'chromium':
1044
- case 'chromium-based':
1045
- return 'chromium';
1046
- case 'firefox':
1047
- case 'gecko-based':
1048
- return 'firefox';
1049
- default:
1050
- return 'chrome';
1051
- }
1052
- }
1053
1082
  function isDir(p) {
1054
1083
  try {
1055
1084
  return __rspack_external_fs.existsSync(p) && __rspack_external_fs.statSync(p).isDirectory();
@@ -1331,6 +1360,7 @@ function createPlaywrightMetadataWriter(options) {
1331
1360
  distPath: options.distPath,
1332
1361
  manifestPath: options.manifestPath,
1333
1362
  port: toPort(options.port),
1363
+ host: options.host,
1334
1364
  instanceId: options.instanceId,
1335
1365
  controlPort: toPort(options.controlPort),
1336
1366
  controlPath: options.controlPath,
@@ -1400,6 +1430,7 @@ class PlaywrightPlugin {
1400
1430
  distPath: options.outputPath,
1401
1431
  manifestPath: options.manifestPath,
1402
1432
  port: options.port,
1433
+ host: options.host,
1403
1434
  instanceId: options.instanceId,
1404
1435
  controlPort: options.controlPort,
1405
1436
  controlPath: options.controlPath,
@@ -1732,7 +1763,6 @@ function noEntrypointsDetected(port) {
1732
1763
  function spacerLine() {
1733
1764
  return ' ';
1734
1765
  }
1735
- var command_preview_dirname = __rspack_dirname(__rspack_fileURLToPath(import.meta.url));
1736
1766
  async function extensionPreview(pathOrRemoteUrl, previewOptions, browserLauncher) {
1737
1767
  const projectStructure = await getProjectStructure(pathOrRemoteUrl);
1738
1768
  const debug = 'true' === process.env.EXTENSION_AUTHOR_MODE;
@@ -1806,7 +1836,7 @@ async function extensionPreview(pathOrRemoteUrl, previewOptions, browserLauncher
1806
1836
  projectRoot: packageJsonDir,
1807
1837
  config: merged.extensions
1808
1838
  });
1809
- const unpackedExtensionDirsToLoad = computeExtensionsToLoad(__rspack_external_path.resolve(command_preview_dirname, '..'), 'production', browser, outputPath, companionUnpackedExtensionDirs, projectStructure.manifestPath);
1839
+ const unpackedExtensionDirsToLoad = computeExtensionsToLoad(__rspack_external_path.resolve(__rspack_import_meta_dirname__, '..'), 'production', browser, outputPath, companionUnpackedExtensionDirs, projectStructure.manifestPath);
1810
1840
  const resolvedOpts = {
1811
1841
  browser,
1812
1842
  outPath: outputPath,