adnbn 0.10.0 → 0.11.0

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 (570) hide show
  1. package/dist/cli/builders/locale/LocaleBuilder.js +2 -11
  2. package/dist/cli/builders/locale/LocaleBuilder.js.map +1 -1
  3. package/dist/cli/builders/locale/index.js +1 -1
  4. package/dist/cli/builders/locale/index.js.map +1 -1
  5. package/dist/cli/builders/manifest/ManifestBase.js +16 -6
  6. package/dist/cli/builders/manifest/ManifestBase.js.map +1 -1
  7. package/dist/cli/builders/manifest/ManifestV2.js +1 -1
  8. package/dist/cli/builders/manifest/ManifestV3.js +12 -5
  9. package/dist/cli/builders/manifest/ManifestV3.js.map +1 -1
  10. package/dist/cli/builders/manifest/utils/data-collection-permissions.d.ts +15 -0
  11. package/dist/cli/builders/manifest/utils/data-collection-permissions.js +26 -0
  12. package/dist/cli/builders/manifest/utils/data-collection-permissions.js.map +1 -0
  13. package/dist/cli/builders/manifest/utils/host-patterns.d.ts +1 -0
  14. package/dist/cli/builders/manifest/utils/host-patterns.js +40 -0
  15. package/dist/cli/builders/manifest/utils/host-patterns.js.map +1 -0
  16. package/dist/cli/builders/manifest/utils/index.d.ts +4 -0
  17. package/dist/cli/builders/manifest/utils/index.js +19 -0
  18. package/dist/cli/builders/manifest/utils/index.js.map +1 -0
  19. package/dist/cli/builders/manifest/utils/permissions.d.ts +14 -0
  20. package/dist/cli/builders/manifest/utils/permissions.js +34 -0
  21. package/dist/cli/builders/manifest/utils/permissions.js.map +1 -0
  22. package/dist/cli/builders/manifest/utils/web-accessible-resources.d.ts +2 -0
  23. package/dist/cli/builders/manifest/utils/web-accessible-resources.js +92 -0
  24. package/dist/cli/builders/manifest/utils/web-accessible-resources.js.map +1 -0
  25. package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.d.ts +14 -0
  26. package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.js +523 -0
  27. package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.js.map +1 -0
  28. package/dist/cli/bundler/plugins/build-assets-map/entrypoint-module.d.ts +13 -0
  29. package/dist/cli/bundler/plugins/build-assets-map/entrypoint-module.js +16 -0
  30. package/dist/cli/bundler/plugins/build-assets-map/entrypoint-module.js.map +1 -0
  31. package/dist/cli/bundler/plugins/build-assets-map/index.d.ts +3 -0
  32. package/dist/cli/bundler/plugins/build-assets-map/index.js +8 -0
  33. package/dist/cli/bundler/plugins/build-assets-map/index.js.map +1 -0
  34. package/dist/cli/bundler/plugins/build-assets-map/usage.d.ts +12 -0
  35. package/dist/cli/bundler/plugins/build-assets-map/usage.js +28 -0
  36. package/dist/cli/bundler/plugins/build-assets-map/usage.js.map +1 -0
  37. package/dist/cli/bundler/plugins/chunk-loader/ChunkLoaderPlugin.d.ts +9 -0
  38. package/dist/cli/bundler/plugins/chunk-loader/ChunkLoaderPlugin.js +43 -0
  39. package/dist/cli/bundler/plugins/chunk-loader/ChunkLoaderPlugin.js.map +1 -0
  40. package/dist/cli/bundler/plugins/chunk-loader/index.d.ts +1 -0
  41. package/dist/cli/bundler/plugins/chunk-loader/index.js +5 -0
  42. package/dist/cli/bundler/plugins/chunk-loader/index.js.map +1 -0
  43. package/dist/cli/bundler/plugins/chunk-loader/templates/runtime.template.d.ts +2 -0
  44. package/dist/cli/bundler/plugins/chunk-loader/templates.d.ts +7 -0
  45. package/dist/cli/bundler/plugins/chunk-loader/templates.js +30 -0
  46. package/dist/cli/bundler/plugins/{EntrypointPlugin.d.ts → entrypoint/EntrypointPlugin.d.ts} +7 -2
  47. package/dist/cli/bundler/plugins/{EntrypointPlugin.js → entrypoint/EntrypointPlugin.js} +46 -26
  48. package/dist/cli/bundler/plugins/entrypoint/EntrypointPlugin.js.map +1 -0
  49. package/dist/cli/bundler/plugins/entrypoint/index.d.ts +1 -0
  50. package/dist/cli/bundler/plugins/entrypoint/index.js +7 -0
  51. package/dist/cli/bundler/plugins/entrypoint/index.js.map +1 -0
  52. package/dist/cli/bundler/plugins/{GenerateJsonPlugin.d.ts → generate-json/GenerateJsonPlugin.d.ts} +1 -0
  53. package/dist/cli/bundler/plugins/generate-json/GenerateJsonPlugin.js +73 -0
  54. package/dist/cli/bundler/plugins/generate-json/GenerateJsonPlugin.js.map +1 -0
  55. package/dist/cli/bundler/plugins/generate-json/index.d.ts +1 -0
  56. package/dist/cli/bundler/plugins/generate-json/index.js +5 -0
  57. package/dist/cli/bundler/plugins/generate-json/index.js.map +1 -0
  58. package/dist/cli/bundler/plugins/generate-module/GenerateModulePlugin.d.ts +23 -0
  59. package/dist/cli/bundler/plugins/generate-module/GenerateModulePlugin.js +88 -0
  60. package/dist/cli/bundler/plugins/generate-module/GenerateModulePlugin.js.map +1 -0
  61. package/dist/cli/bundler/plugins/generate-module/index.d.ts +1 -0
  62. package/dist/cli/bundler/plugins/generate-module/index.js +7 -0
  63. package/dist/cli/bundler/plugins/generate-module/index.js.map +1 -0
  64. package/dist/cli/bundler/plugins/index.d.ts +11 -5
  65. package/dist/cli/bundler/plugins/index.js +32 -10
  66. package/dist/cli/bundler/plugins/index.js.map +1 -1
  67. package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.d.ts +21 -0
  68. package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.js +174 -0
  69. package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.js.map +1 -0
  70. package/dist/cli/bundler/plugins/isolated-styles/index.d.ts +1 -0
  71. package/dist/cli/bundler/plugins/isolated-styles/index.js +5 -0
  72. package/dist/cli/bundler/plugins/isolated-styles/index.js.map +1 -0
  73. package/dist/cli/bundler/plugins/isolated-styles/templates/css-loader.template.d.ts +1 -0
  74. package/dist/cli/bundler/plugins/isolated-styles/templates/runtime.template.d.ts +7 -0
  75. package/dist/cli/bundler/plugins/isolated-styles/templates.d.ts +18 -0
  76. package/dist/cli/bundler/plugins/isolated-styles/templates.js +174 -0
  77. package/dist/cli/bundler/plugins/manifest/ManifestPlugin.d.ts +10 -0
  78. package/dist/cli/bundler/plugins/manifest/ManifestPlugin.js +55 -0
  79. package/dist/cli/bundler/plugins/manifest/ManifestPlugin.js.map +1 -0
  80. package/dist/cli/bundler/plugins/manifest/index.d.ts +1 -0
  81. package/dist/cli/bundler/plugins/manifest/index.js +6 -0
  82. package/dist/cli/bundler/plugins/manifest/index.js.map +1 -0
  83. package/dist/cli/bundler/plugins/replace/ReplacePlugin.js.map +1 -0
  84. package/dist/cli/bundler/plugins/replace/index.d.ts +1 -0
  85. package/dist/cli/bundler/plugins/replace/index.js +5 -0
  86. package/dist/cli/bundler/plugins/replace/index.js.map +1 -0
  87. package/dist/cli/bundler/plugins/resource-access/ResourceAccessPlugin.d.ts +19 -0
  88. package/dist/cli/bundler/plugins/resource-access/ResourceAccessPlugin.js +20 -0
  89. package/dist/cli/bundler/plugins/resource-access/ResourceAccessPlugin.js.map +1 -0
  90. package/dist/cli/bundler/plugins/resource-access/index.d.ts +1 -0
  91. package/dist/cli/bundler/plugins/resource-access/index.js +5 -0
  92. package/dist/cli/bundler/plugins/resource-access/index.js.map +1 -0
  93. package/dist/cli/bundler/plugins/resource-access/utils.d.ts +8 -0
  94. package/dist/cli/bundler/plugins/resource-access/utils.js +42 -0
  95. package/dist/cli/bundler/plugins/resource-access/utils.js.map +1 -0
  96. package/dist/cli/bundler/plugins/types.d.ts +4 -0
  97. package/dist/cli/bundler/plugins/types.js +1 -0
  98. package/dist/cli/bundler/plugins/types.js.map +1 -0
  99. package/dist/cli/bundler/plugins/utils/index.d.ts +3 -0
  100. package/dist/cli/bundler/plugins/utils/index.js +9 -0
  101. package/dist/cli/bundler/plugins/utils/index.js.map +1 -0
  102. package/dist/cli/bundler/plugins/utils/manifest-hooks.d.ts +13 -0
  103. package/dist/cli/bundler/plugins/utils/manifest-hooks.js +17 -0
  104. package/dist/cli/bundler/plugins/utils/manifest-hooks.js.map +1 -0
  105. package/dist/cli/bundler/plugins/utils/runtime-template.d.ts +1 -0
  106. package/dist/cli/bundler/plugins/utils/runtime-template.js +18 -0
  107. package/dist/cli/bundler/plugins/utils/runtime-template.js.map +1 -0
  108. package/dist/cli/bundler/plugins/utils/watch-compilation.d.ts +3 -0
  109. package/dist/cli/bundler/plugins/utils/watch-compilation.js +18 -0
  110. package/dist/cli/bundler/plugins/utils/watch-compilation.js.map +1 -0
  111. package/dist/cli/bundler/plugins/watch/WatchPlugin.js +16 -0
  112. package/dist/cli/bundler/plugins/watch/WatchPlugin.js.map +1 -0
  113. package/dist/cli/bundler/plugins/watch/index.d.ts +1 -0
  114. package/dist/cli/bundler/plugins/watch/index.js +5 -0
  115. package/dist/cli/bundler/plugins/watch/index.js.map +1 -0
  116. package/dist/cli/bundler/utils/chunk-filename.d.ts +6 -0
  117. package/dist/cli/bundler/utils/chunk-filename.js +93 -0
  118. package/dist/cli/bundler/utils/chunk-filename.js.map +1 -0
  119. package/dist/cli/bundler/utils/index.d.ts +2 -0
  120. package/dist/cli/bundler/utils/index.js +2 -0
  121. package/dist/cli/bundler/utils/index.js.map +1 -1
  122. package/dist/cli/bundler/utils/layers.d.ts +4 -0
  123. package/dist/cli/bundler/utils/layers.js +10 -0
  124. package/dist/cli/bundler/utils/layers.js.map +1 -0
  125. package/dist/cli/bundler/utils/output.d.ts +6 -2
  126. package/dist/cli/bundler/utils/output.js +165 -7
  127. package/dist/cli/bundler/utils/output.js.map +1 -1
  128. package/dist/cli/bundler/utils/styles.d.ts +5 -0
  129. package/dist/cli/bundler/utils/styles.js +30 -0
  130. package/dist/cli/bundler/utils/styles.js.map +1 -0
  131. package/dist/cli/entrypoint/file/ExpressionFile.d.ts +4 -1
  132. package/dist/cli/entrypoint/file/ExpressionFile.js +11 -0
  133. package/dist/cli/entrypoint/file/ExpressionFile.js.map +1 -1
  134. package/dist/cli/entrypoint/file/OptionFile.d.ts +4 -2
  135. package/dist/cli/entrypoint/file/OptionFile.js +35 -31
  136. package/dist/cli/entrypoint/file/OptionFile.js.map +1 -1
  137. package/dist/cli/entrypoint/file/SourceFile.d.ts +18 -7
  138. package/dist/cli/entrypoint/file/SourceFile.js +260 -156
  139. package/dist/cli/entrypoint/file/SourceFile.js.map +1 -1
  140. package/dist/cli/entrypoint/file/index.d.ts +2 -0
  141. package/dist/cli/entrypoint/file/index.js +2 -0
  142. package/dist/cli/entrypoint/file/index.js.map +1 -1
  143. package/dist/cli/entrypoint/file/injectors/core.js +22 -1
  144. package/dist/cli/entrypoint/file/injectors/core.js.map +1 -1
  145. package/dist/cli/entrypoint/file/parsers/ExportParser.d.ts +14 -0
  146. package/dist/cli/entrypoint/file/parsers/ExportParser.js +71 -0
  147. package/dist/cli/entrypoint/file/parsers/ExportParser.js.map +1 -0
  148. package/dist/cli/entrypoint/file/parsers/NodeFinder.d.ts +2 -0
  149. package/dist/cli/entrypoint/file/parsers/NodeFinder.js +9 -0
  150. package/dist/cli/entrypoint/file/parsers/NodeFinder.js.map +1 -1
  151. package/dist/cli/entrypoint/file/parsers/ObjectParser.js +5 -1
  152. package/dist/cli/entrypoint/file/parsers/ObjectParser.js.map +1 -1
  153. package/dist/cli/entrypoint/file/parsers/index.d.ts +1 -0
  154. package/dist/cli/entrypoint/file/parsers/index.js +2 -0
  155. package/dist/cli/entrypoint/file/parsers/index.js.map +1 -1
  156. package/dist/cli/entrypoint/file/parsers/types.d.ts +16 -0
  157. package/dist/cli/entrypoint/file/parsers/types.js +13 -0
  158. package/dist/cli/entrypoint/file/parsers/types.js.map +1 -1
  159. package/dist/cli/entrypoint/file/resolvers/ImportResolver.d.ts +1 -0
  160. package/dist/cli/entrypoint/file/resolvers/ImportResolver.js +3 -0
  161. package/dist/cli/entrypoint/file/resolvers/ImportResolver.js.map +1 -1
  162. package/dist/cli/entrypoint/file/types.d.ts +26 -1
  163. package/dist/cli/entrypoint/finder/AbstractEntrypointFinder.js.map +1 -1
  164. package/dist/cli/entrypoint/parser/AbstractParser.d.ts +3 -2
  165. package/dist/cli/entrypoint/parser/AbstractParser.js +6 -3
  166. package/dist/cli/entrypoint/parser/AbstractParser.js.map +1 -1
  167. package/dist/cli/entrypoint/parser/CommandParser.js +1 -1
  168. package/dist/cli/entrypoint/parser/CommandParser.js.map +1 -1
  169. package/dist/cli/entrypoint/parser/ContentParser.d.ts +5 -1
  170. package/dist/cli/entrypoint/parser/ContentParser.js +55 -3
  171. package/dist/cli/entrypoint/parser/ContentParser.js.map +1 -1
  172. package/dist/cli/entrypoint/parser/RelayParser.d.ts +21 -2
  173. package/dist/cli/entrypoint/parser/RelayParser.js +4 -0
  174. package/dist/cli/entrypoint/parser/RelayParser.js.map +1 -1
  175. package/dist/cli/plugins/asset.js +9 -4
  176. package/dist/cli/plugins/asset.js.map +1 -1
  177. package/dist/cli/plugins/background/index.js +1 -1
  178. package/dist/cli/plugins/background/index.js.map +1 -1
  179. package/dist/cli/plugins/content/Content.d.ts +1 -1
  180. package/dist/cli/plugins/content/Content.js +3 -2
  181. package/dist/cli/plugins/content/Content.js.map +1 -1
  182. package/dist/cli/plugins/content/ContentManager.d.ts +8 -5
  183. package/dist/cli/plugins/content/ContentManager.js +79 -28
  184. package/dist/cli/plugins/content/ContentManager.js.map +1 -1
  185. package/dist/cli/plugins/content/ContentName.d.ts +1 -1
  186. package/dist/cli/plugins/content/ContentName.js +8 -7
  187. package/dist/cli/plugins/content/ContentName.js.map +1 -1
  188. package/dist/cli/plugins/content/Relay.d.ts +1 -1
  189. package/dist/cli/plugins/content/Relay.js +3 -2
  190. package/dist/cli/plugins/content/Relay.js.map +1 -1
  191. package/dist/cli/plugins/content/bundler.d.ts +7 -0
  192. package/dist/cli/plugins/content/bundler.js +47 -0
  193. package/dist/cli/plugins/content/bundler.js.map +1 -0
  194. package/dist/cli/plugins/content/index.js +121 -62
  195. package/dist/cli/plugins/content/index.js.map +1 -1
  196. package/dist/cli/plugins/content/relay-module.d.ts +3 -0
  197. package/dist/cli/plugins/content/relay-module.js +11 -0
  198. package/dist/cli/plugins/content/relay-module.js.map +1 -0
  199. package/dist/cli/plugins/content/types.d.ts +1 -1
  200. package/dist/cli/plugins/content/utils.d.ts +2 -0
  201. package/dist/cli/plugins/content/utils.js +8 -1
  202. package/dist/cli/plugins/content/utils.js.map +1 -1
  203. package/dist/cli/plugins/icon/declaration/IconDeclaration.d.ts +1 -1
  204. package/dist/cli/plugins/icon/declaration/IconDeclaration.js +6 -6
  205. package/dist/cli/plugins/icon/declaration/IconDeclaration.js.map +1 -1
  206. package/dist/cli/plugins/icon/declaration/icon.d.ts +3 -5
  207. package/dist/cli/plugins/icon/icon-module.d.ts +2 -0
  208. package/dist/cli/plugins/icon/icon-module.js +11 -0
  209. package/dist/cli/plugins/icon/icon-module.js.map +1 -0
  210. package/dist/cli/plugins/icon/index.js +5 -3
  211. package/dist/cli/plugins/icon/index.js.map +1 -1
  212. package/dist/cli/plugins/locale/Locale.d.ts +9 -2
  213. package/dist/cli/plugins/locale/Locale.js +37 -5
  214. package/dist/cli/plugins/locale/Locale.js.map +1 -1
  215. package/dist/cli/plugins/locale/declaration/locale.d.ts +1 -1
  216. package/dist/cli/plugins/locale/index.js +57 -22
  217. package/dist/cli/plugins/locale/index.js.map +1 -1
  218. package/dist/cli/plugins/locale/locale-module.d.ts +4 -0
  219. package/dist/cli/plugins/locale/locale-module.js +16 -0
  220. package/dist/cli/plugins/locale/locale-module.js.map +1 -0
  221. package/dist/cli/plugins/offscreen/Offscreen.d.ts +2 -3
  222. package/dist/cli/plugins/offscreen/Offscreen.js.map +1 -1
  223. package/dist/cli/plugins/offscreen/index.js +5 -4
  224. package/dist/cli/plugins/offscreen/index.js.map +1 -1
  225. package/dist/cli/plugins/offscreen/offscreen-module.d.ts +3 -0
  226. package/dist/cli/plugins/offscreen/offscreen-module.js +11 -0
  227. package/dist/cli/plugins/offscreen/offscreen-module.js.map +1 -0
  228. package/dist/cli/plugins/output.js +33 -3
  229. package/dist/cli/plugins/output.js.map +1 -1
  230. package/dist/cli/plugins/page/declaration/PageDeclaration.js +4 -4
  231. package/dist/cli/plugins/page/declaration/PageDeclaration.js.map +1 -1
  232. package/dist/cli/plugins/page/declaration/page.d.ts +3 -3
  233. package/dist/cli/plugins/page/index.js +14 -10
  234. package/dist/cli/plugins/page/index.js.map +1 -1
  235. package/dist/cli/plugins/page/page-module.d.ts +2 -0
  236. package/dist/cli/plugins/page/page-module.js +11 -0
  237. package/dist/cli/plugins/page/page-module.js.map +1 -0
  238. package/dist/cli/plugins/popup/Popup.d.ts +1 -1
  239. package/dist/cli/plugins/popup/Popup.js +2 -2
  240. package/dist/cli/plugins/popup/Popup.js.map +1 -1
  241. package/dist/cli/plugins/popup/declaration/PopupDeclaration.d.ts +1 -1
  242. package/dist/cli/plugins/popup/declaration/PopupDeclaration.js +6 -6
  243. package/dist/cli/plugins/popup/declaration/PopupDeclaration.js.map +1 -1
  244. package/dist/cli/plugins/popup/declaration/popup.d.ts +3 -3
  245. package/dist/cli/plugins/popup/index.js +6 -5
  246. package/dist/cli/plugins/popup/index.js.map +1 -1
  247. package/dist/cli/plugins/popup/popup-module.d.ts +3 -0
  248. package/dist/cli/plugins/popup/popup-module.js +11 -0
  249. package/dist/cli/plugins/popup/popup-module.js.map +1 -0
  250. package/dist/cli/plugins/sandbox/Sandbox.d.ts +1 -2
  251. package/dist/cli/plugins/sandbox/Sandbox.js.map +1 -1
  252. package/dist/cli/plugins/sandbox/index.js +5 -4
  253. package/dist/cli/plugins/sandbox/index.js.map +1 -1
  254. package/dist/cli/plugins/sandbox/sandbox-module.d.ts +3 -0
  255. package/dist/cli/plugins/sandbox/sandbox-module.js +11 -0
  256. package/dist/cli/plugins/sandbox/sandbox-module.js.map +1 -0
  257. package/dist/cli/plugins/sidebar/Sidebar.d.ts +1 -1
  258. package/dist/cli/plugins/sidebar/Sidebar.js +2 -2
  259. package/dist/cli/plugins/sidebar/Sidebar.js.map +1 -1
  260. package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.d.ts +1 -1
  261. package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.js +6 -6
  262. package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.js.map +1 -1
  263. package/dist/cli/plugins/sidebar/declaration/sidebar.d.ts +3 -3
  264. package/dist/cli/plugins/sidebar/index.js +6 -5
  265. package/dist/cli/plugins/sidebar/index.js.map +1 -1
  266. package/dist/cli/plugins/sidebar/sidebar-module.d.ts +3 -0
  267. package/dist/cli/plugins/sidebar/sidebar-module.js +11 -0
  268. package/dist/cli/plugins/sidebar/sidebar-module.js.map +1 -0
  269. package/dist/cli/plugins/style/index.d.ts +2 -1
  270. package/dist/cli/plugins/style/index.js +52 -25
  271. package/dist/cli/plugins/style/index.js.map +1 -1
  272. package/dist/cli/plugins/style/types.d.ts +5 -0
  273. package/dist/cli/plugins/style/types.js +1 -0
  274. package/dist/cli/plugins/style/types.js.map +1 -0
  275. package/dist/cli/raw.d.ts +4 -0
  276. package/dist/cli/resolvers/bundler.js +9 -7
  277. package/dist/cli/resolvers/bundler.js.map +1 -1
  278. package/dist/cli/resolvers/config.js +2 -1
  279. package/dist/cli/resolvers/config.js.map +1 -1
  280. package/dist/cli/virtual/index.d.ts +2 -2
  281. package/dist/cli/virtual/index.js +11 -8
  282. package/dist/cli/virtual/virtual.d.ts +8 -10
  283. package/dist/entry/content/adapters/react/Builder.js +1 -1
  284. package/dist/entry/content/adapters/react/Builder.js.map +1 -1
  285. package/dist/entry/content/adapters/react/Node.d.ts +2 -0
  286. package/dist/entry/content/adapters/react/Node.js +10 -2
  287. package/dist/entry/content/adapters/react/Node.js.map +1 -1
  288. package/dist/entry/content/adapters/vanilla/Builder.js +1 -1
  289. package/dist/entry/content/adapters/vanilla/Builder.js.map +1 -1
  290. package/dist/entry/content/adapters/vanilla/Node.d.ts +2 -1
  291. package/dist/entry/content/adapters/vanilla/Node.js +10 -7
  292. package/dist/entry/content/adapters/vanilla/Node.js.map +1 -1
  293. package/dist/entry/content/core/Builder.d.ts +1 -2
  294. package/dist/entry/content/core/Builder.js +9 -5
  295. package/dist/entry/content/core/Builder.js.map +1 -1
  296. package/dist/entry/content/core/MountBuilder.js +14 -6
  297. package/dist/entry/content/core/MountBuilder.js.map +1 -1
  298. package/dist/entry/content/core/{Context.d.ts → context/Context.d.ts} +2 -1
  299. package/dist/entry/content/core/{Context.js → context/Context.js} +7 -0
  300. package/dist/entry/content/core/context/Context.js.map +1 -0
  301. package/dist/entry/content/core/{EventEmitter.d.ts → context/EventEmitter.d.ts} +1 -1
  302. package/dist/entry/content/core/{EventEmitter.js → context/EventEmitter.js} +1 -1
  303. package/dist/entry/content/core/context/EventEmitter.js.map +1 -0
  304. package/dist/entry/content/core/{ManagedContext.d.ts → context/ManagedContext.d.ts} +1 -1
  305. package/dist/entry/content/core/context/ManagedContext.js.map +1 -0
  306. package/dist/entry/content/core/context/index.d.ts +3 -0
  307. package/dist/entry/content/core/context/index.js +9 -0
  308. package/dist/entry/content/core/context/index.js.map +1 -0
  309. package/dist/entry/content/core/{AbstractMarker.d.ts → markers/AbstractMarker.d.ts} +1 -1
  310. package/dist/entry/content/core/{AbstractMarker.js → markers/AbstractMarker.js} +1 -1
  311. package/dist/entry/content/core/markers/AbstractMarker.js.map +1 -0
  312. package/dist/entry/content/core/{AttributeMarker.d.ts → markers/AttributeMarker.d.ts} +1 -1
  313. package/dist/entry/content/core/markers/AttributeMarker.js.map +1 -0
  314. package/dist/entry/content/core/{WeakMarker.d.ts → markers/WeakMarker.d.ts} +1 -1
  315. package/dist/entry/content/core/markers/WeakMarker.js.map +1 -0
  316. package/dist/entry/content/core/markers/index.d.ts +3 -0
  317. package/dist/entry/content/core/markers/index.js +9 -0
  318. package/dist/entry/content/core/markers/index.js.map +1 -0
  319. package/dist/entry/content/core/{EventNode.d.ts → nodes/EventNode.d.ts} +2 -1
  320. package/dist/entry/content/core/{EventNode.js → nodes/EventNode.js} +3 -0
  321. package/dist/entry/content/core/nodes/EventNode.js.map +1 -0
  322. package/dist/entry/content/core/nodes/FrameNode.d.ts +23 -0
  323. package/dist/entry/content/core/nodes/FrameNode.js +125 -0
  324. package/dist/entry/content/core/nodes/FrameNode.js.map +1 -0
  325. package/dist/entry/content/core/{MarkerNode.d.ts → nodes/MarkerNode.d.ts} +2 -1
  326. package/dist/entry/content/core/{MarkerNode.js → nodes/MarkerNode.js} +3 -0
  327. package/dist/entry/content/core/nodes/MarkerNode.js.map +1 -0
  328. package/dist/entry/content/core/{MountNode.d.ts → nodes/MountNode.d.ts} +2 -1
  329. package/dist/entry/content/core/{MountNode.js → nodes/MountNode.js} +3 -0
  330. package/dist/entry/content/core/nodes/MountNode.js.map +1 -0
  331. package/dist/entry/content/core/{Node.d.ts → nodes/Node.d.ts} +2 -1
  332. package/dist/entry/content/core/{Node.js → nodes/Node.js} +3 -0
  333. package/dist/entry/content/core/nodes/Node.js.map +1 -0
  334. package/dist/entry/content/core/nodes/ShadowNode.d.ts +14 -0
  335. package/dist/entry/content/core/nodes/ShadowNode.js +67 -0
  336. package/dist/entry/content/core/nodes/ShadowNode.js.map +1 -0
  337. package/dist/entry/content/core/nodes/index.d.ts +6 -0
  338. package/dist/entry/content/core/nodes/index.js +15 -0
  339. package/dist/entry/content/core/nodes/index.js.map +1 -0
  340. package/dist/entry/content/core/nodes/isolated-styles.d.ts +2 -0
  341. package/dist/entry/content/core/nodes/isolated-styles.js +14 -0
  342. package/dist/entry/content/core/nodes/isolated-styles.js.map +1 -0
  343. package/dist/entry/content/core/resolvers/watch.js +1 -1
  344. package/dist/entry/content/core/resolvers/watch.js.map +1 -1
  345. package/dist/entry/content/frame/Builder.d.ts +7 -0
  346. package/dist/entry/content/frame/Builder.js +14 -0
  347. package/dist/entry/content/frame/Builder.js.map +1 -0
  348. package/dist/entry/content/frame/index.d.ts +4 -0
  349. package/dist/entry/content/frame/index.js +7 -0
  350. package/dist/entry/content/frame/index.js.map +1 -0
  351. package/dist/entry/relay/Builder.js +5 -1
  352. package/dist/entry/relay/Builder.js.map +1 -1
  353. package/dist/entry/relay/index.d.ts +1 -1
  354. package/dist/locale/adapters/react/ReactLocale.d.ts +18 -0
  355. package/dist/locale/adapters/react/ReactLocale.js +41 -0
  356. package/dist/locale/adapters/react/ReactLocale.js.map +1 -0
  357. package/dist/locale/adapters/react/hooks/use-locale-attributes.d.ts +7 -0
  358. package/dist/locale/adapters/react/hooks/use-locale-attributes.js +30 -0
  359. package/dist/locale/adapters/react/hooks/use-locale-attributes.js.map +1 -0
  360. package/dist/locale/adapters/react/hooks/use-locale.d.ts +3 -0
  361. package/dist/locale/adapters/react/hooks/use-locale.js +17 -0
  362. package/dist/locale/adapters/react/hooks/use-locale.js.map +1 -0
  363. package/dist/locale/adapters/react/hooks/use-native-locale.d.ts +3 -0
  364. package/dist/locale/adapters/react/hooks/use-native-locale.js +10 -0
  365. package/dist/locale/adapters/react/hooks/use-native-locale.js.map +1 -0
  366. package/dist/locale/adapters/react/index.d.ts +4 -2
  367. package/dist/locale/adapters/react/index.js +6 -4
  368. package/dist/locale/adapters/react/index.js.map +1 -1
  369. package/dist/locale/adapters/react/types.d.ts +22 -0
  370. package/dist/locale/adapters/react/types.js +1 -0
  371. package/dist/locale/adapters/react/types.js.map +1 -0
  372. package/dist/locale/helpers.d.ts +4 -5
  373. package/dist/locale/helpers.js +1 -1
  374. package/dist/locale/helpers.js.map +1 -1
  375. package/dist/locale/index.d.ts +2 -1
  376. package/dist/locale/index.js +1 -0
  377. package/dist/locale/index.js.map +1 -1
  378. package/dist/locale/providers/AbstractLocale.d.ts +4 -4
  379. package/dist/locale/providers/AbstractLocale.js +13 -94
  380. package/dist/locale/providers/AbstractLocale.js.map +1 -1
  381. package/dist/locale/providers/CustomLocale.d.ts +3 -3
  382. package/dist/locale/providers/CustomLocale.js +6 -5
  383. package/dist/locale/providers/CustomLocale.js.map +1 -1
  384. package/dist/locale/providers/DynamicLocale.d.ts +18 -11
  385. package/dist/locale/providers/DynamicLocale.js +60 -47
  386. package/dist/locale/providers/DynamicLocale.js.map +1 -1
  387. package/dist/locale/providers/NativeLocale.d.ts +4 -7
  388. package/dist/locale/providers/NativeLocale.js +5 -14
  389. package/dist/locale/providers/NativeLocale.js.map +1 -1
  390. package/dist/locale/providers/ObservableLocale.d.ts +35 -0
  391. package/dist/locale/providers/ObservableLocale.js +179 -0
  392. package/dist/locale/providers/ObservableLocale.js.map +1 -0
  393. package/dist/locale/providers/index.d.ts +2 -1
  394. package/dist/locale/providers/index.js +3 -1
  395. package/dist/locale/providers/index.js.map +1 -1
  396. package/dist/locale/storage/LocaleStorage.d.ts +11 -0
  397. package/dist/locale/storage/LocaleStorage.js +40 -0
  398. package/dist/locale/storage/LocaleStorage.js.map +1 -0
  399. package/dist/locale/storage/index.d.ts +1 -0
  400. package/dist/locale/storage/index.js +5 -0
  401. package/dist/locale/storage/index.js.map +1 -0
  402. package/dist/main/entrypoint.d.ts +4 -0
  403. package/dist/main/entrypoint.js +20 -0
  404. package/dist/main/entrypoint.js.map +1 -0
  405. package/dist/main/icon.d.ts +2 -3
  406. package/dist/main/icon.js +2 -1
  407. package/dist/main/icon.js.map +1 -1
  408. package/dist/main/index.d.ts +1 -0
  409. package/dist/main/index.js +1 -0
  410. package/dist/main/index.js.map +1 -1
  411. package/dist/main/offscreen.d.ts +2 -5
  412. package/dist/main/offscreen.js +5 -2
  413. package/dist/main/offscreen.js.map +1 -1
  414. package/dist/main/page.d.ts +2 -4
  415. package/dist/main/page.js +2 -1
  416. package/dist/main/page.js.map +1 -1
  417. package/dist/main/popup.d.ts +2 -5
  418. package/dist/main/popup.js +3 -3
  419. package/dist/main/popup.js.map +1 -1
  420. package/dist/main/relay.d.ts +1 -2
  421. package/dist/main/relay.js +2 -1
  422. package/dist/main/relay.js.map +1 -1
  423. package/dist/main/sandbox.d.ts +1 -4
  424. package/dist/main/sandbox.js +2 -1
  425. package/dist/main/sandbox.js.map +1 -1
  426. package/dist/main/service.d.ts +1 -2
  427. package/dist/main/service.js.map +1 -1
  428. package/dist/main/sidebar.d.ts +2 -5
  429. package/dist/main/sidebar.js +3 -3
  430. package/dist/main/sidebar.js.map +1 -1
  431. package/dist/message/index.d.ts +2 -4
  432. package/dist/message/index.js.map +1 -1
  433. package/dist/offscreen/index.d.ts +2 -6
  434. package/dist/offscreen/index.js.map +1 -1
  435. package/dist/relay/index.d.ts +2 -5
  436. package/dist/relay/index.js.map +1 -1
  437. package/dist/sandbox/index.d.ts +1 -5
  438. package/dist/sandbox/index.js.map +1 -1
  439. package/dist/service/index.d.ts +2 -6
  440. package/dist/service/index.js.map +1 -1
  441. package/dist/shared/content/index.d.ts +1 -0
  442. package/dist/shared/content/index.js +6 -0
  443. package/dist/shared/content/index.js.map +1 -0
  444. package/dist/shared/content/isolation.d.ts +4 -0
  445. package/dist/shared/content/isolation.js +70 -0
  446. package/dist/shared/content/isolation.js.map +1 -0
  447. package/dist/shared/locale/index.d.ts +5 -0
  448. package/dist/shared/locale/index.js +21 -0
  449. package/dist/shared/locale/index.js.map +1 -0
  450. package/dist/shared/locale/keys.d.ts +5 -0
  451. package/dist/shared/locale/keys.js +33 -0
  452. package/dist/shared/locale/keys.js.map +1 -0
  453. package/dist/shared/locale/language.d.ts +4 -0
  454. package/dist/shared/locale/language.js +23 -0
  455. package/dist/shared/locale/language.js.map +1 -0
  456. package/dist/shared/locale/messages.d.ts +3 -0
  457. package/dist/shared/locale/messages.js +9 -0
  458. package/dist/shared/locale/messages.js.map +1 -0
  459. package/dist/shared/locale/plural.d.ts +2 -0
  460. package/dist/shared/locale/plural.js +81 -0
  461. package/dist/shared/locale/plural.js.map +1 -0
  462. package/dist/shared/locale/substitutions.d.ts +10 -0
  463. package/dist/shared/locale/substitutions.js +32 -0
  464. package/dist/shared/locale/substitutions.js.map +1 -0
  465. package/dist/types/background.d.ts +1 -1
  466. package/dist/types/background.js.map +1 -1
  467. package/dist/types/command.d.ts +1 -1
  468. package/dist/types/command.js.map +1 -1
  469. package/dist/types/content.d.ts +120 -31
  470. package/dist/types/content.js +22 -1
  471. package/dist/types/content.js.map +1 -1
  472. package/dist/types/entrypoint.d.ts +20 -0
  473. package/dist/types/entrypoint.js +4 -0
  474. package/dist/types/entrypoint.js.map +1 -1
  475. package/dist/types/icon.d.ts +8 -0
  476. package/dist/types/icon.js.map +1 -1
  477. package/dist/types/language.d.ts +57 -0
  478. package/dist/types/language.js +62 -0
  479. package/dist/types/language.js.map +1 -0
  480. package/dist/types/locale.d.ts +34 -63
  481. package/dist/types/locale.js +62 -119
  482. package/dist/types/locale.js.map +1 -1
  483. package/dist/types/manifest.d.ts +10 -7
  484. package/dist/types/manifest.js.map +1 -1
  485. package/dist/types/message.d.ts +7 -0
  486. package/dist/types/message.js.map +1 -1
  487. package/dist/types/offscreen.d.ts +14 -1
  488. package/dist/types/offscreen.js.map +1 -1
  489. package/dist/types/page.d.ts +8 -0
  490. package/dist/types/popup.d.ts +9 -0
  491. package/dist/types/relay.d.ts +16 -7
  492. package/dist/types/relay.js.map +1 -1
  493. package/dist/types/sandbox.d.ts +12 -0
  494. package/dist/types/sandbox.js.map +1 -1
  495. package/dist/types/service.d.ts +10 -1
  496. package/dist/types/service.js.map +1 -1
  497. package/dist/types/sidebar.d.ts +9 -0
  498. package/dist/types/sidebar.js.map +1 -1
  499. package/dist/types/transport.d.ts +4 -0
  500. package/dist/virtual/entrypoint.d.ts +5 -0
  501. package/dist/virtual/entrypoint.js +7 -0
  502. package/dist/virtual/entrypoint.js.map +1 -0
  503. package/dist/virtual/icon.d.ts +2 -0
  504. package/dist/virtual/icon.js +5 -0
  505. package/dist/virtual/icon.js.map +1 -0
  506. package/dist/virtual/locale.d.ts +7 -0
  507. package/dist/virtual/locale.js +13 -0
  508. package/dist/virtual/locale.js.map +1 -0
  509. package/dist/virtual/modules.d.ts +40 -0
  510. package/dist/virtual/offscreen.d.ts +3 -0
  511. package/dist/virtual/offscreen.js +5 -0
  512. package/dist/virtual/offscreen.js.map +1 -0
  513. package/dist/virtual/page.d.ts +2 -0
  514. package/dist/virtual/page.js +5 -0
  515. package/dist/virtual/page.js.map +1 -0
  516. package/dist/virtual/popup.d.ts +3 -0
  517. package/dist/virtual/popup.js +5 -0
  518. package/dist/virtual/popup.js.map +1 -0
  519. package/dist/virtual/relay.d.ts +3 -0
  520. package/dist/virtual/relay.js +5 -0
  521. package/dist/virtual/relay.js.map +1 -0
  522. package/dist/virtual/sandbox.d.ts +3 -0
  523. package/dist/virtual/sandbox.js +5 -0
  524. package/dist/virtual/sandbox.js.map +1 -0
  525. package/dist/virtual/sidebar.d.ts +3 -0
  526. package/dist/virtual/sidebar.js +5 -0
  527. package/dist/virtual/sidebar.js.map +1 -0
  528. package/package.json +31 -10
  529. package/scripts/clean-dist.js +7 -0
  530. package/scripts/copy-dts.js +11 -1
  531. package/types/client.d.ts +15 -0
  532. package/dist/cli/builders/manifest/utils.d.ts +0 -32
  533. package/dist/cli/builders/manifest/utils.js +0 -209
  534. package/dist/cli/builders/manifest/utils.js.map +0 -1
  535. package/dist/cli/bundler/plugins/EntrypointPlugin.js.map +0 -1
  536. package/dist/cli/bundler/plugins/GenerateJsonPlugin.js +0 -40
  537. package/dist/cli/bundler/plugins/GenerateJsonPlugin.js.map +0 -1
  538. package/dist/cli/bundler/plugins/ManifestPlugin.d.ts +0 -10
  539. package/dist/cli/bundler/plugins/ManifestPlugin.js +0 -78
  540. package/dist/cli/bundler/plugins/ManifestPlugin.js.map +0 -1
  541. package/dist/cli/bundler/plugins/ReplacePlugin.js.map +0 -1
  542. package/dist/cli/bundler/plugins/WatchPlugin.js +0 -21
  543. package/dist/cli/bundler/plugins/WatchPlugin.js.map +0 -1
  544. package/dist/cli/entrypoint/finder/tests/fixtures/options/discovery/account.options.d.ts +0 -1
  545. package/dist/cli/entrypoint/finder/tests/fixtures/options/discovery/advanced.options/index.d.ts +0 -1
  546. package/dist/entry/content/core/AbstractMarker.js.map +0 -1
  547. package/dist/entry/content/core/AttributeMarker.js.map +0 -1
  548. package/dist/entry/content/core/Context.js.map +0 -1
  549. package/dist/entry/content/core/EventEmitter.js.map +0 -1
  550. package/dist/entry/content/core/EventNode.js.map +0 -1
  551. package/dist/entry/content/core/ManagedContext.js.map +0 -1
  552. package/dist/entry/content/core/MarkerNode.js.map +0 -1
  553. package/dist/entry/content/core/MountNode.js.map +0 -1
  554. package/dist/entry/content/core/Node.js.map +0 -1
  555. package/dist/entry/content/core/WeakMarker.js.map +0 -1
  556. package/dist/locale/adapters/react/LocaleProvider.d.ts +0 -7
  557. package/dist/locale/adapters/react/LocaleProvider.js +0 -58
  558. package/dist/locale/adapters/react/LocaleProvider.js.map +0 -1
  559. package/dist/locale/adapters/react/context.d.ts +0 -14
  560. package/dist/locale/adapters/react/context.js +0 -25
  561. package/dist/locale/adapters/react/context.js.map +0 -1
  562. package/dist/locale/utils.d.ts +0 -11
  563. package/dist/locale/utils.js +0 -67
  564. package/dist/locale/utils.js.map +0 -1
  565. /package/dist/cli/bundler/plugins/{ReplacePlugin.d.ts → replace/ReplacePlugin.d.ts} +0 -0
  566. /package/dist/cli/bundler/plugins/{ReplacePlugin.js → replace/ReplacePlugin.js} +0 -0
  567. /package/dist/cli/bundler/plugins/{WatchPlugin.d.ts → watch/WatchPlugin.d.ts} +0 -0
  568. /package/dist/entry/content/core/{ManagedContext.js → context/ManagedContext.js} +0 -0
  569. /package/dist/entry/content/core/{AttributeMarker.js → markers/AttributeMarker.js} +0 -0
  570. /package/dist/entry/content/core/{WeakMarker.js → markers/WeakMarker.js} +0 -0
@@ -1,209 +0,0 @@
1
- import _ from "lodash";
2
- import { DataCollectionPermission } from "./../../../types/browser.js";
3
- import { ManifestMatchSchemes, ManifestSpecialSchemes } from "./../../../types/manifest.js";
4
- const filterPermissions = (permissions) => {
5
- if (permissions.has("tabs")) {
6
- permissions.delete("activeTab");
7
- }
8
- return permissions;
9
- };
10
- const filterPermissionsForMV2 = (permissions) => {
11
- const filteredPermissions = new Set(permissions);
12
- if (filteredPermissions.has("scripting")) {
13
- filteredPermissions.delete("scripting");
14
- filteredPermissions.add("tabs");
15
- }
16
- filteredPermissions.delete("offscreen");
17
- return filterPermissions(filteredPermissions);
18
- };
19
- const filterPermissionsForMV3 = (permissions) => {
20
- const filteredPermissions = new Set(permissions);
21
- filteredPermissions.delete("webAuthenticationProxy");
22
- filteredPermissions.delete("webRequestAuthProvider");
23
- filteredPermissions.delete("webRequestBlocking");
24
- return filterPermissions(filteredPermissions);
25
- };
26
- const filterOptionalPermissions = (optional, required) => {
27
- const allPermissions = filterPermissions(/* @__PURE__ */ new Set([...optional, ...required]));
28
- return _.difference(Array.from(allPermissions), Array.from(required));
29
- };
30
- const filterHostPatterns = (patterns) => {
31
- if (patterns.has("<all_urls>")) {
32
- return /* @__PURE__ */ new Set(["<all_urls>"]);
33
- }
34
- const result = /* @__PURE__ */ new Set();
35
- const activeWildcards = /* @__PURE__ */ new Set();
36
- if (patterns.has("*://*/*")) {
37
- activeWildcards.add("*://*/*");
38
- result.add("*://*/*");
39
- }
40
- for (const scheme of ManifestMatchSchemes) {
41
- const wildcard = `${scheme}://*/*`;
42
- if (patterns.has(wildcard)) {
43
- if (scheme === "http" || scheme === "https") {
44
- if (!activeWildcards.has("*://*/*")) {
45
- activeWildcards.add(wildcard);
46
- result.add(wildcard);
47
- }
48
- } else {
49
- activeWildcards.add(wildcard);
50
- result.add(wildcard);
51
- }
52
- }
53
- }
54
- const isCoveredByWildcard = (pattern) => {
55
- const schemeIndex = pattern.indexOf("://");
56
- if (schemeIndex === -1) return false;
57
- const scheme = pattern.substring(0, schemeIndex);
58
- if (ManifestSpecialSchemes.has(scheme)) {
59
- return false;
60
- }
61
- if (activeWildcards.has("*://*/*") && (scheme === "http" || scheme === "https")) {
62
- return true;
63
- }
64
- return activeWildcards.has(`${scheme}://*/*`);
65
- };
66
- for (const pattern of patterns) {
67
- if (activeWildcards.has(pattern)) {
68
- continue;
69
- }
70
- if (!isCoveredByWildcard(pattern)) {
71
- result.add(pattern);
72
- }
73
- }
74
- return result;
75
- };
76
- const mergeWebAccessibleResources = (resources) => {
77
- var _a;
78
- if (resources.length === 0) return [];
79
- const simplifiedMatches = resources.map((r) => {
80
- const { resources: resources2, matches, extensionIds, useDynamicUrl } = r;
81
- return {
82
- resources: resources2,
83
- extensionIds,
84
- useDynamicUrl,
85
- matches: matches ? Array.from(filterHostPatterns(new Set(matches))) : matches
86
- };
87
- });
88
- const normalize = (arr) => Array.from(new Set(arr || [])).sort();
89
- const makeKey = (r, exclude) => {
90
- const obj = {
91
- resources: normalize(r.resources),
92
- matches: normalize(r.matches),
93
- extensionIds: normalize(r.extensionIds),
94
- useDynamicUrl: r.useDynamicUrl
95
- };
96
- for (const field of exclude) {
97
- delete obj[field];
98
- }
99
- return JSON.stringify(obj);
100
- };
101
- const mergeTwo = (a, b) => ({
102
- resources: normalize([...a.resources, ...b.resources]),
103
- matches: normalize([...a.matches || [], ...b.matches || []]),
104
- extensionIds: normalize([...a.extensionIds || [], ...b.extensionIds || []]),
105
- useDynamicUrl: a.useDynamicUrl
106
- });
107
- const merge = (resources2, mergeBy) => {
108
- const map = /* @__PURE__ */ new Map();
109
- let changed2 = false;
110
- for (const r of resources2) {
111
- const key = makeKey(r, [mergeBy]);
112
- if (map.has(key)) {
113
- const merged = mergeTwo(map.get(key), r);
114
- map.set(key, merged);
115
- changed2 = true;
116
- } else {
117
- map.set(key, r);
118
- }
119
- }
120
- return {
121
- changed: changed2,
122
- result: Array.from(map.values())
123
- };
124
- };
125
- let changed = true;
126
- let result = simplifiedMatches.map((r) => ({
127
- resources: normalize(r.resources),
128
- matches: normalize(r.matches),
129
- extensionIds: normalize(r.extensionIds),
130
- useDynamicUrl: r.useDynamicUrl
131
- }));
132
- while (changed) {
133
- changed = false;
134
- const mergeByResources = merge(result, "resources");
135
- const afterResources = mergeByResources.result;
136
- const mergeByMatches = merge(afterResources, "matches");
137
- const afterMatches = mergeByMatches.result;
138
- const mergeByExtensionIds = merge(afterMatches, "extensionIds");
139
- const afterExtensionIds = mergeByExtensionIds.result;
140
- changed = mergeByResources.changed || mergeByMatches.changed || mergeByExtensionIds.changed;
141
- result = afterExtensionIds;
142
- }
143
- for (const entry of result) {
144
- if (!entry.matches) continue;
145
- if (entry.matches.includes("<all_urls>") || entry.matches.includes("*://*/*")) {
146
- for (const other of result) {
147
- if (other === entry) continue;
148
- if (_.isEqual(other.matches, entry.matches) || other.useDynamicUrl !== entry.useDynamicUrl || !_.isEqual(other.extensionIds, entry.extensionIds)) {
149
- continue;
150
- }
151
- other.resources = other.resources.filter((r) => !entry.resources.includes(r));
152
- }
153
- }
154
- }
155
- for (const entry of result) {
156
- if (!entry.matches) continue;
157
- for (const scheme of ManifestMatchSchemes) {
158
- if (entry.matches.includes(`${scheme}://*/*`)) {
159
- for (const other of result) {
160
- if (other === entry) continue;
161
- if (other.useDynamicUrl !== entry.useDynamicUrl || !_.isEqual(other.extensionIds, entry.extensionIds)) {
162
- continue;
163
- }
164
- if ((_a = other.matches) == null ? void 0 : _a.some((m) => m.startsWith(`${scheme}://`))) {
165
- other.resources = other.resources.filter((r) => !entry.resources.includes(r));
166
- }
167
- }
168
- }
169
- }
170
- }
171
- result = result.filter((r) => r.resources.length > 0).map((r) => {
172
- var _a2, _b;
173
- if (((_a2 = r.matches) == null ? void 0 : _a2.length) === 0) delete r.matches;
174
- if (((_b = r.extensionIds) == null ? void 0 : _b.length) === 0) delete r.extensionIds;
175
- if (r.useDynamicUrl === void 0) delete r.useDynamicUrl;
176
- return r;
177
- });
178
- return result;
179
- };
180
- const normalizeDataCollectionPermissions = (permissions) => {
181
- const validPermissions = Object.values(DataCollectionPermission);
182
- let required = _.uniq((permissions == null ? void 0 : permissions.required) || []).filter(
183
- (p) => p === "none" || validPermissions.includes(p)
184
- );
185
- let optional = _.uniq((permissions == null ? void 0 : permissions.optional) || []).filter(
186
- (p) => p !== "none" && validPermissions.includes(p)
187
- );
188
- if (required.length === 0) {
189
- required = ["none"];
190
- }
191
- if (required.length > 1 && required.includes("none")) {
192
- required = _.without(required, "none");
193
- }
194
- optional = _.difference(optional, required);
195
- return {
196
- required: required.toSorted(),
197
- optional: optional.length > 0 ? optional.toSorted() : void 0
198
- };
199
- };
200
- export {
201
- filterHostPatterns,
202
- filterOptionalPermissions,
203
- filterPermissions,
204
- filterPermissionsForMV2,
205
- filterPermissionsForMV3,
206
- mergeWebAccessibleResources,
207
- normalizeDataCollectionPermissions
208
- };
209
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/cli/builders/manifest/utils.ts"],"sourcesContent":["import _ from \"lodash\";\nimport {DataCollectionPermission, DataCollectionPermissions} from \"@typing/browser\";\n\nimport {ManifestAccessibleResource, ManifestMatchSchemes, ManifestSpecialSchemes} from \"@typing/manifest\";\n\ntype ManifestPermissions = chrome.runtime.ManifestPermission;\ntype ManifestOptionalPermissions = chrome.runtime.ManifestOptionalPermission;\n\ntype Permission = ManifestPermissions | ManifestOptionalPermissions;\n/**\n * Filters and adapts permissions for Manifest V2 compatibility.\n *\n * @param permissions - Set of permissions to filter\n * @returns New set of permissions adapted for Manifest V2\n */\nexport const filterPermissions = <T extends Permission>(permissions: Set<T>): Set<T> => {\n if (permissions.has(\"tabs\" as T)) {\n permissions.delete(\"activeTab\" as T);\n }\n return permissions;\n};\n\nexport const filterPermissionsForMV2 = <T extends Permission>(permissions: Set<T>): Set<T> => {\n const filteredPermissions = new Set(permissions);\n\n /**\n * Manifest V3 introduced a new 'scripting' permission for working with the Chrome Scripting API,\n * but Manifest V2 uses the 'tabs' permission for executing scripts on web pages.\n * This function automatically replaces 'scripting' with 'tabs' to ensure backward compatibility.\n *\n * @example\n * ```typescript\n * const mv3Permissions = new Set(['scripting', 'storage', 'activeTab']);\n * const mv2Permissions = filterPermissionsForMV2(mv3Permissions);\n * // Result: Set(['tabs', 'storage', 'activeTab'])\n * ```\n */\n if (filteredPermissions.has(\"scripting\" as T)) {\n filteredPermissions.delete(\"scripting\" as T);\n filteredPermissions.add(\"tabs\" as T);\n }\n\n filteredPermissions.delete(\"offscreen\" as T);\n\n return filterPermissions(filteredPermissions);\n};\n\nexport const filterPermissionsForMV3 = <T extends Permission>(permissions: Set<T>): Set<T> => {\n const filteredPermissions = new Set(permissions);\n\n /**\n * @permissions webRequestBlocking, webAuthenticationProxy, webRequestAuthProvider\n * @description These permissions were removed in Manifest V3 due to concerns related to security, performance, and transparency.\n * - `webRequestBlocking`: Allowed real-time interception and modification of network requests, which introduced latency and potential security risks. Replaced by the safer, declarative `declarativeNetRequest` API.\n * - `webAuthenticationProxy`: Provided proxy authentication control, but was rarely used and posed privacy risks.\n * - `webRequestAuthProvider`: Enabled handling of HTTP authentication (onAuthRequired), but was considered unsafe in the new MV3 architecture due to its ability to interfere with authentication flows.\n * @manifestV3 Removed. These APIs are no longer available in extensions using Manifest V3.\n */\n filteredPermissions.delete(\"webAuthenticationProxy\" as T);\n filteredPermissions.delete(\"webRequestAuthProvider\" as T);\n filteredPermissions.delete(\"webRequestBlocking\" as T);\n\n return filterPermissions(filteredPermissions);\n};\n\nexport const filterOptionalPermissions = <O extends ManifestOptionalPermissions, R extends ManifestPermissions>(\n optional: Set<O>,\n required: Set<R>\n): O[] => {\n const allPermissions = filterPermissions(new Set([...optional, ...required]));\n return _.difference(Array.from(allPermissions), Array.from(required)) as O[];\n};\n\nexport const filterHostPatterns = (patterns: Set<string>): Set<string> => {\n if (patterns.has(\"<all_urls>\")) {\n return new Set([\"<all_urls>\"]);\n }\n\n const result = new Set<string>();\n\n const activeWildcards = new Set<string>();\n\n if (patterns.has(\"*://*/*\")) {\n activeWildcards.add(\"*://*/*\");\n result.add(\"*://*/*\");\n }\n\n for (const scheme of ManifestMatchSchemes) {\n const wildcard = `${scheme}://*/*`;\n\n if (patterns.has(wildcard)) {\n if (scheme === \"http\" || scheme === \"https\") {\n if (!activeWildcards.has(\"*://*/*\")) {\n activeWildcards.add(wildcard);\n result.add(wildcard);\n }\n } else {\n activeWildcards.add(wildcard);\n result.add(wildcard);\n }\n }\n }\n\n const isCoveredByWildcard = (pattern: string): boolean => {\n const schemeIndex = pattern.indexOf(\"://\");\n if (schemeIndex === -1) return false;\n\n const scheme = pattern.substring(0, schemeIndex);\n\n if (ManifestSpecialSchemes.has(scheme)) {\n return false;\n }\n\n if (activeWildcards.has(\"*://*/*\") && (scheme === \"http\" || scheme === \"https\")) {\n return true;\n }\n\n return activeWildcards.has(`${scheme}://*/*`);\n };\n\n for (const pattern of patterns) {\n if (activeWildcards.has(pattern)) {\n continue;\n }\n\n if (!isCoveredByWildcard(pattern)) {\n result.add(pattern);\n }\n }\n\n return result;\n};\n\nexport const mergeWebAccessibleResources = (resources: ManifestAccessibleResource[]): ManifestAccessibleResource[] => {\n if (resources.length === 0) return [];\n\n const simplifiedMatches: ManifestAccessibleResource[] = resources.map(r => {\n const {resources, matches, extensionIds, useDynamicUrl} = r;\n return {\n resources,\n extensionIds,\n useDynamicUrl,\n matches: matches ? Array.from(filterHostPatterns(new Set(matches))) : matches,\n };\n });\n\n const normalize = (arr?: string[]) => Array.from(new Set(arr || [])).sort();\n\n const makeKey = (r: ManifestAccessibleResource, exclude: (keyof ManifestAccessibleResource)[]): string => {\n const obj: ManifestAccessibleResource = {\n resources: normalize(r.resources),\n matches: normalize(r.matches),\n extensionIds: normalize(r.extensionIds),\n useDynamicUrl: r.useDynamicUrl,\n };\n\n for (const field of exclude) {\n delete obj[field];\n }\n\n return JSON.stringify(obj);\n };\n\n const mergeTwo = (a: ManifestAccessibleResource, b: ManifestAccessibleResource): ManifestAccessibleResource => ({\n resources: normalize([...a.resources, ...b.resources]),\n matches: normalize([...(a.matches || []), ...(b.matches || [])]),\n extensionIds: normalize([...(a.extensionIds || []), ...(b.extensionIds || [])]),\n useDynamicUrl: a.useDynamicUrl,\n });\n\n const merge = (resources: ManifestAccessibleResource[], mergeBy: keyof ManifestAccessibleResource) => {\n const map = new Map<string, ManifestAccessibleResource>();\n let changed = false;\n for (const r of resources) {\n const key = makeKey(r, [mergeBy]);\n if (map.has(key)) {\n const merged = mergeTwo(map.get(key)!, r);\n map.set(key, merged);\n changed = true;\n } else {\n map.set(key, r);\n }\n }\n\n return {\n changed,\n result: Array.from(map.values()),\n };\n };\n\n let changed = true;\n\n let result: ManifestAccessibleResource[] = simplifiedMatches.map(r => ({\n resources: normalize(r.resources),\n matches: normalize(r.matches),\n extensionIds: normalize(r.extensionIds),\n useDynamicUrl: r.useDynamicUrl,\n }));\n\n while (changed) {\n changed = false;\n\n const mergeByResources = merge(result, \"resources\");\n const afterResources = mergeByResources.result;\n\n const mergeByMatches = merge(afterResources, \"matches\");\n const afterMatches = mergeByMatches.result;\n\n const mergeByExtensionIds = merge(afterMatches, \"extensionIds\");\n const afterExtensionIds = mergeByExtensionIds.result;\n\n changed = mergeByResources.changed || mergeByMatches.changed || mergeByExtensionIds.changed;\n result = afterExtensionIds;\n }\n\n for (const entry of result) {\n if (!entry.matches) continue;\n if (entry.matches.includes(\"<all_urls>\") || entry.matches.includes(\"*://*/*\")) {\n for (const other of result) {\n if (other === entry) continue;\n\n if (\n _.isEqual(other.matches, entry.matches) ||\n other.useDynamicUrl !== entry.useDynamicUrl ||\n !_.isEqual(other.extensionIds, entry.extensionIds)\n ) {\n continue;\n }\n other.resources = other.resources.filter(r => !entry.resources.includes(r));\n }\n }\n }\n\n for (const entry of result) {\n if (!entry.matches) continue;\n for (const scheme of ManifestMatchSchemes) {\n if (entry.matches.includes(`${scheme}://*/*`)) {\n for (const other of result) {\n if (other === entry) continue;\n if (\n other.useDynamicUrl !== entry.useDynamicUrl ||\n !_.isEqual(other.extensionIds, entry.extensionIds)\n ) {\n continue;\n }\n if (other.matches?.some(m => m.startsWith(`${scheme}://`))) {\n other.resources = other.resources.filter(r => !entry.resources.includes(r));\n }\n }\n }\n }\n }\n\n result = result\n .filter(r => r.resources.length > 0)\n .map(r => {\n if (r.matches?.length === 0) delete r.matches;\n if (r.extensionIds?.length === 0) delete r.extensionIds;\n if (r.useDynamicUrl === undefined) delete r.useDynamicUrl;\n return r;\n });\n\n return result;\n};\n\n/**\n * Normalizes data collection permissions for the manifest.\n *\n * - Removes duplicate permissions.\n * - Filters out invalid permissions not present in DataCollectionPermission enum.\n * - Sets \"none\" as default if required permissions are empty.\n * - Removes \"none\" if real permissions are added to required.\n * - Removes \"none\" from optional permissions.\n * - Removes any permission from optional if it's already in required.\n * - Sorts both required and optional permissions alphabetically.\n *\n * @param permissions - The permissions object to normalize.\n */\nexport const normalizeDataCollectionPermissions = (\n permissions?: DataCollectionPermissions\n): DataCollectionPermissions => {\n const validPermissions = Object.values(DataCollectionPermission) as string[];\n\n let required = _.uniq(permissions?.required || []).filter(\n p => (p as string) === \"none\" || validPermissions.includes(p as string)\n );\n\n let optional = _.uniq(permissions?.optional || []).filter(\n p => (p as string) !== \"none\" && validPermissions.includes(p as string)\n );\n\n if (required.length === 0) {\n required = [\"none\" as any];\n }\n\n if (required.length > 1 && required.includes(\"none\" as any)) {\n required = _.without(required, \"none\" as any);\n }\n\n optional = _.difference(optional, required);\n\n return {\n required: required.toSorted() as DataCollectionPermissions[\"required\"],\n optional: optional.length > 0 ? (optional.toSorted() as DataCollectionPermissions[\"optional\"]) : undefined,\n };\n};\n"],"mappings":"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","names":["resources","changed","_a"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/cli/bundler/plugins/EntrypointPlugin.ts"],"sourcesContent":["import _ from \"lodash\";\nimport path from \"path\";\n\nimport {Compiler, EntryNormalized} from \"@rspack/core\";\nimport {RspackVirtualModulePlugin as VirtualModulesPlugin} from \"rspack-plugin-virtual-module\";\n\nimport {EntrypointEntries, EntrypointFile} from \"@typing/entrypoint\";\n\nexport type EntrypointPluginTemplate = (file: EntrypointFile) => string;\n\nexport type EntrypointPluginUpdate = (files: ReadonlySet<string>) => Promise<EntrypointEntries>;\n\nexport interface EntrypointPluginModule {\n /**\n * Virtual module name, used in the rspack entry and virtual module.\n */\n name: string;\n\n /**\n * Virtual module content.\n */\n module: string;\n}\n\nexport type EntrypointPluginModules = Map<EntrypointFile, EntrypointPluginModule>;\n\nexport type EntrypointPluginEntryModules = Map<string, EntrypointPluginModules>;\n\nexport default class EntrypointPlugin {\n private readonly pluginName: string = \"EntrypointPlugin\";\n\n private _plugin?: VirtualModulesPlugin;\n private _modules?: EntrypointPluginEntryModules;\n\n protected template?: EntrypointPluginTemplate;\n protected update?: EntrypointPluginUpdate;\n\n public static filename(file: EntrypointFile): string {\n let name = file.file;\n\n if (file.external) {\n const {ext} = path.parse(name);\n name = file.import + ext;\n }\n\n return path.join(\"virtual\", name);\n }\n\n protected get plugin(): VirtualModulesPlugin {\n if (this._plugin) {\n return this._plugin;\n }\n\n const modules = Object.fromEntries(this.getModuleContents(this.modules));\n\n return (this._plugin = new VirtualModulesPlugin(modules, \"entrypoint\"));\n }\n\n protected get modules(): EntrypointPluginEntryModules {\n return (this._modules ??= this.createModules(this.entries));\n }\n\n protected get watchFiles(): ReadonlySet<string> {\n const files = Array.from(this.modules.values())\n .flatMap(modules => Array.from(modules.keys()))\n .filter(({external}) => !external)\n .map(({file}) => file);\n\n return new Set(files);\n }\n\n public static from(entries: EntrypointEntries): EntrypointPlugin {\n return new EntrypointPlugin(entries);\n }\n\n constructor(private readonly entries: EntrypointEntries = new Map()) {}\n\n public virtual(template: EntrypointPluginTemplate): this {\n this.template = template;\n\n return this;\n }\n\n public watch(update: EntrypointPluginUpdate): this {\n this.update = update;\n\n return this;\n }\n\n public apply(compiler: Compiler): void {\n this.plugin.apply(compiler);\n\n compiler.hooks.entryOption.tap(this.pluginName, (_, entry) => {\n this.hookEntryOption(entry);\n });\n\n if (this.update) {\n compiler.hooks.watchRun.tapAsync(this.pluginName, (compiler, callback) => {\n this.hookWatchRun(compiler)\n .then(() => callback())\n .catch(callback);\n });\n }\n }\n\n protected hookEntryOption(entry: EntryNormalized): void {\n if (_.isPlainObject(entry)) {\n this.modules.entries().forEach(([name, modules]) => {\n let currentFiles = structuredClone(entry[name] ?? []);\n\n if (\"import\" in currentFiles) {\n currentFiles = currentFiles.import;\n }\n\n currentFiles.push(...Array.from(modules.values(), ({name}) => name));\n\n entry[name] = {\n import: _.uniq(currentFiles),\n };\n });\n } else {\n throw new Error(\"EntrypointPlugin: entry is not an object\");\n }\n }\n\n protected async hookWatchRun(compiler: Compiler): Promise<void> {\n const {modifiedFiles = new Set()} = compiler;\n\n const watchFiles = this.watchFiles;\n\n const needUpdate = Array.from(modifiedFiles).some(file => {\n if (path.isAbsolute(file)) {\n file = path.relative(compiler.context, file);\n }\n\n return watchFiles.has(file);\n });\n\n if (!needUpdate) {\n return;\n }\n\n const updatedEntries = await this.update!(modifiedFiles);\n\n const updatedModules = this.createModules(updatedEntries);\n\n const currentContents = this.getModuleContents(this.modules);\n const updatedContents = this.getModuleContents(updatedModules);\n\n const removedContents = new Map(Array.from(currentContents).filter(entry => !updatedContents.has(entry[0])));\n\n const addedContents = new Map(Array.from(updatedContents).filter(entry => !currentContents.has(entry[0])));\n\n if (removedContents.size > 0 || addedContents.size > 0) {\n removedContents.keys().forEach(name => {\n this.plugin.writeModule(name, \"\");\n });\n\n addedContents.forEach((content, name) => {\n this.plugin.writeModule(name, content);\n });\n\n updatedModules.entries().forEach(([name, modules]) => {\n let entry: string[] = structuredClone(compiler.options.entry[name]);\n\n if (\"import\" in entry) {\n entry = entry.import as string[];\n }\n\n entry = entry.filter(file => !removedContents.has(file));\n\n entry.push(...Array.from(modules.values(), ({name}) => name));\n\n compiler.options.entry[name] = _.uniq(entry);\n });\n }\n\n this._modules = updatedModules;\n }\n\n protected createModules(entries: EntrypointEntries): EntrypointPluginEntryModules {\n const entryModules: EntrypointPluginEntryModules = new Map();\n\n for (const [name, files] of entries) {\n const modules: EntrypointPluginModules = new Map();\n\n for (const file of files) {\n modules.set(file, {\n name: EntrypointPlugin.filename(file),\n module: this.template ? this.template(file) : \"\",\n });\n }\n\n entryModules.set(name, modules);\n }\n\n return entryModules;\n }\n\n protected getModuleContents(modules: EntrypointPluginEntryModules): Map<string, string> {\n const content = new Map<string, string>();\n\n modules.values().forEach(modules => {\n modules.forEach(({name, module}) => {\n content.set(name, module);\n });\n });\n\n return content;\n }\n}\n"],"mappings":"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","names":["_","compiler","name","modules"]}
@@ -1,40 +0,0 @@
1
- import { Compilation, sources } from "@rspack/core";
2
- class GenerateJsonPlugin {
3
- constructor(data) {
4
- this.data = data;
5
- }
6
- data;
7
- pluginName = "GenerateJsonPlugin";
8
- update;
9
- apply(compiler) {
10
- compiler.hooks.watchRun.tapPromise(this.pluginName, async () => {
11
- const update = this.update;
12
- if (update) {
13
- this.data = await update();
14
- }
15
- });
16
- compiler.hooks.compilation.tap(this.pluginName, (compilation) => {
17
- compilation.hooks.processAssets.tap(
18
- {
19
- name: this.pluginName,
20
- stage: Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL
21
- },
22
- () => this.generateFiles(compilation)
23
- );
24
- });
25
- }
26
- watch(update) {
27
- this.update = update;
28
- return this;
29
- }
30
- generateFiles(compilation) {
31
- Object.entries(this.data).forEach(([filename, jsonData]) => {
32
- const json = JSON.stringify(jsonData, null, 2);
33
- compilation.emitAsset(filename, new sources.RawSource(json));
34
- });
35
- }
36
- }
37
- export {
38
- GenerateJsonPlugin as default
39
- };
40
- //# sourceMappingURL=GenerateJsonPlugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/cli/bundler/plugins/GenerateJsonPlugin.ts"],"sourcesContent":["import {Compilation, Compiler, sources} from \"@rspack/core\";\n\ntype JsonValue = string | number | boolean | null | JsonObject | JsonArray;\n\ninterface JsonObject {\n [key: string]: JsonValue;\n}\n\ntype JsonArray = JsonValue[];\n\nexport type GenerateJsonPluginData = Record<string, JsonValue>;\n\nexport type GenerateJsonPluginUpdate = () => Promise<GenerateJsonPluginData>;\n\nexport default class GenerateJsonPlugin {\n private readonly pluginName: string = \"GenerateJsonPlugin\";\n\n private update?: GenerateJsonPluginUpdate;\n\n constructor(protected data: GenerateJsonPluginData) {}\n\n public apply(compiler: Compiler): void {\n compiler.hooks.watchRun.tapPromise(this.pluginName, async () => {\n const update = this.update;\n\n if (update) {\n // Let the compiler fail this rebuild rather than emit stale JSON.\n this.data = await update();\n }\n });\n\n compiler.hooks.compilation.tap(this.pluginName, (compilation: Compilation) => {\n compilation.hooks.processAssets.tap(\n {\n name: this.pluginName,\n stage: Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL,\n },\n () => this.generateFiles(compilation)\n );\n });\n }\n\n public watch(update: GenerateJsonPluginUpdate): this {\n this.update = update;\n\n return this;\n }\n\n protected generateFiles(compilation: Compilation): void {\n Object.entries(this.data).forEach(([filename, jsonData]) => {\n const json = JSON.stringify(jsonData, null, 2);\n\n compilation.emitAsset(filename, new sources.RawSource(json));\n });\n }\n}\n"],"mappings":"AAAA,SAAQ,aAAuB,eAAc;AAc7C,MAAO,mBAAiC;AAAA,EAKpC,YAAsB,MAA8B;AAA9B;AAAA,EAA+B;AAAA,EAA/B;AAAA,EAJL,aAAqB;AAAA,EAE9B;AAAA,EAID,MAAM,UAA0B;AACnC,aAAS,MAAM,SAAS,WAAW,KAAK,YAAY,YAAY;AAC5D,YAAM,SAAS,KAAK;AAEpB,UAAI,QAAQ;AAER,aAAK,OAAO,MAAM,OAAO;AAAA,MAC7B;AAAA,IACJ,CAAC;AAED,aAAS,MAAM,YAAY,IAAI,KAAK,YAAY,CAAC,gBAA6B;AAC1E,kBAAY,MAAM,cAAc;AAAA,QAC5B;AAAA,UACI,MAAM,KAAK;AAAA,UACX,OAAO,YAAY;AAAA,QACvB;AAAA,QACA,MAAM,KAAK,cAAc,WAAW;AAAA,MACxC;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEO,MAAM,QAAwC;AACjD,SAAK,SAAS;AAEd,WAAO;AAAA,EACX;AAAA,EAEU,cAAc,aAAgC;AACpD,WAAO,QAAQ,KAAK,IAAI,EAAE,QAAQ,CAAC,CAAC,UAAU,QAAQ,MAAM;AACxD,YAAM,OAAO,KAAK,UAAU,UAAU,MAAM,CAAC;AAE7C,kBAAY,UAAU,UAAU,IAAI,QAAQ,UAAU,IAAI,CAAC;AAAA,IAC/D,CAAC;AAAA,EACL;AACJ;","names":[]}
@@ -1,10 +0,0 @@
1
- import { Compiler } from "@rspack/core";
2
- import { ManifestBuilder } from "../../../types/manifest.js";
3
- declare class ManifestPlugin {
4
- private readonly manifest;
5
- constructor(manifest: ManifestBuilder);
6
- apply(compiler: Compiler): void;
7
- private collectAllChunks;
8
- private isAsset;
9
- }
10
- export default ManifestPlugin;
@@ -1,78 +0,0 @@
1
- import rspack, { Compilation } from "@rspack/core";
2
- import { toPosix } from "./../../../cli/utils/path.js";
3
- class ManifestPlugin {
4
- constructor(manifest) {
5
- this.manifest = manifest;
6
- }
7
- manifest;
8
- apply(compiler) {
9
- compiler.hooks.compilation.tap("ManifestPlugin", (compilation) => {
10
- compilation.hooks.processAssets.tap(
11
- {
12
- name: "ManifestPlugin",
13
- stage: Compilation.PROCESS_ASSETS_STAGE_ADDITIONS
14
- },
15
- () => {
16
- const entryDependencies = /* @__PURE__ */ new Map();
17
- compilation.entrypoints.forEach((entryPoint, entryName) => {
18
- const dependencies = {
19
- assets: /* @__PURE__ */ new Set(),
20
- css: /* @__PURE__ */ new Set(),
21
- js: /* @__PURE__ */ new Set()
22
- };
23
- const allChunks = /* @__PURE__ */ new Set();
24
- this.collectAllChunks(entryPoint, allChunks);
25
- allChunks.forEach((chunk) => {
26
- chunk.files.forEach((fileName) => {
27
- fileName = toPosix(fileName);
28
- if (fileName.endsWith(".js")) {
29
- dependencies.js.add(fileName);
30
- } else if (fileName.endsWith(".css")) {
31
- dependencies.css.add(fileName);
32
- } else if (this.isAsset(fileName)) {
33
- dependencies.assets.add(fileName);
34
- }
35
- });
36
- const auxiliaryFiles = chunk.auxiliaryFiles || [];
37
- auxiliaryFiles.forEach((fileName) => {
38
- fileName = toPosix(fileName);
39
- if (fileName.endsWith(".css")) {
40
- dependencies.css.add(fileName);
41
- } else if (this.isAsset(fileName)) {
42
- dependencies.assets.add(fileName);
43
- }
44
- });
45
- });
46
- entryDependencies.set(entryName, dependencies);
47
- });
48
- const manifest = this.manifest.setDependencies(entryDependencies).get();
49
- const json = JSON.stringify(manifest, null, 2);
50
- compilation.emitAsset("manifest.json", new rspack.sources.RawSource(json));
51
- }
52
- );
53
- });
54
- }
55
- collectAllChunks(entryPointOrChunkGroup, collectedChunks) {
56
- if (entryPointOrChunkGroup.chunks) {
57
- entryPointOrChunkGroup.chunks.forEach((chunk) => {
58
- if (!collectedChunks.has(chunk)) {
59
- collectedChunks.add(chunk);
60
- }
61
- });
62
- }
63
- if (entryPointOrChunkGroup.childrenIterable) {
64
- for (const childGroup of entryPointOrChunkGroup.childrenIterable) {
65
- this.collectAllChunks(childGroup, collectedChunks);
66
- }
67
- }
68
- return collectedChunks;
69
- }
70
- isAsset(file) {
71
- return /\.(png|jpg|jpeg|gif|svg|woff|woff2|ttf|eot)$/.test(file);
72
- }
73
- }
74
- var ManifestPlugin_default = ManifestPlugin;
75
- export {
76
- ManifestPlugin_default as default
77
- };
78
- //# sourceMappingURL=ManifestPlugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/cli/bundler/plugins/ManifestPlugin.ts"],"sourcesContent":["import rspack, {Chunk, Compilation, Compiler} from \"@rspack/core\";\n\nimport {toPosix} from \"@cli/utils/path\";\n\nimport {ManifestBuilder, ManifestDependencies, ManifestDependency} from \"@typing/manifest\";\n\nclass ManifestPlugin {\n constructor(private readonly manifest: ManifestBuilder) {}\n\n apply(compiler: Compiler): void {\n compiler.hooks.compilation.tap(\"ManifestPlugin\", compilation => {\n compilation.hooks.processAssets.tap(\n {\n name: \"ManifestPlugin\",\n stage: Compilation.PROCESS_ASSETS_STAGE_ADDITIONS,\n },\n () => {\n const entryDependencies: ManifestDependencies = new Map();\n\n compilation.entrypoints.forEach((entryPoint, entryName) => {\n const dependencies: ManifestDependency = {\n assets: new Set(),\n css: new Set(),\n js: new Set(),\n };\n\n const allChunks = new Set<Chunk>();\n\n this.collectAllChunks(entryPoint, allChunks);\n\n allChunks.forEach((chunk: Chunk) => {\n chunk.files.forEach((fileName: string) => {\n fileName = toPosix(fileName);\n\n if (fileName.endsWith(\".js\")) {\n dependencies.js.add(fileName);\n } else if (fileName.endsWith(\".css\")) {\n dependencies.css.add(fileName);\n } else if (this.isAsset(fileName)) {\n dependencies.assets.add(fileName);\n }\n });\n\n const auxiliaryFiles = chunk.auxiliaryFiles || [];\n\n auxiliaryFiles.forEach((fileName: string) => {\n fileName = toPosix(fileName);\n\n if (fileName.endsWith(\".css\")) {\n dependencies.css.add(fileName);\n } else if (this.isAsset(fileName)) {\n dependencies.assets.add(fileName);\n }\n });\n });\n\n entryDependencies.set(entryName, dependencies);\n });\n\n const manifest = this.manifest.setDependencies(entryDependencies).get();\n const json = JSON.stringify(manifest, null, 2);\n\n compilation.emitAsset(\"manifest.json\", new rspack.sources.RawSource(json));\n }\n );\n });\n }\n\n private collectAllChunks(entryPointOrChunkGroup: any, collectedChunks: Set<Chunk>): Set<Chunk> {\n if (entryPointOrChunkGroup.chunks) {\n entryPointOrChunkGroup.chunks.forEach((chunk: Chunk) => {\n if (!collectedChunks.has(chunk)) {\n collectedChunks.add(chunk);\n }\n });\n }\n\n if (entryPointOrChunkGroup.childrenIterable) {\n for (const childGroup of entryPointOrChunkGroup.childrenIterable) {\n this.collectAllChunks(childGroup, collectedChunks);\n }\n }\n\n return collectedChunks;\n }\n\n private isAsset(file: string): boolean {\n return /\\.(png|jpg|jpeg|gif|svg|woff|woff2|ttf|eot)$/.test(file);\n }\n}\n\nexport default ManifestPlugin;\n"],"mappings":"AAAA,OAAO,UAAgB,mBAA4B;AAEnD,SAAQ,eAAc;AAItB,MAAM,eAAe;AAAA,EACjB,YAA6B,UAA2B;AAA3B;AAAA,EAA4B;AAAA,EAA5B;AAAA,EAE7B,MAAM,UAA0B;AAC5B,aAAS,MAAM,YAAY,IAAI,kBAAkB,iBAAe;AAC5D,kBAAY,MAAM,cAAc;AAAA,QAC5B;AAAA,UACI,MAAM;AAAA,UACN,OAAO,YAAY;AAAA,QACvB;AAAA,QACA,MAAM;AACF,gBAAM,oBAA0C,oBAAI,IAAI;AAExD,sBAAY,YAAY,QAAQ,CAAC,YAAY,cAAc;AACvD,kBAAM,eAAmC;AAAA,cACrC,QAAQ,oBAAI,IAAI;AAAA,cAChB,KAAK,oBAAI,IAAI;AAAA,cACb,IAAI,oBAAI,IAAI;AAAA,YAChB;AAEA,kBAAM,YAAY,oBAAI,IAAW;AAEjC,iBAAK,iBAAiB,YAAY,SAAS;AAE3C,sBAAU,QAAQ,CAAC,UAAiB;AAChC,oBAAM,MAAM,QAAQ,CAAC,aAAqB;AACtC,2BAAW,QAAQ,QAAQ;AAE3B,oBAAI,SAAS,SAAS,KAAK,GAAG;AAC1B,+BAAa,GAAG,IAAI,QAAQ;AAAA,gBAChC,WAAW,SAAS,SAAS,MAAM,GAAG;AAClC,+BAAa,IAAI,IAAI,QAAQ;AAAA,gBACjC,WAAW,KAAK,QAAQ,QAAQ,GAAG;AAC/B,+BAAa,OAAO,IAAI,QAAQ;AAAA,gBACpC;AAAA,cACJ,CAAC;AAED,oBAAM,iBAAiB,MAAM,kBAAkB,CAAC;AAEhD,6BAAe,QAAQ,CAAC,aAAqB;AACzC,2BAAW,QAAQ,QAAQ;AAE3B,oBAAI,SAAS,SAAS,MAAM,GAAG;AAC3B,+BAAa,IAAI,IAAI,QAAQ;AAAA,gBACjC,WAAW,KAAK,QAAQ,QAAQ,GAAG;AAC/B,+BAAa,OAAO,IAAI,QAAQ;AAAA,gBACpC;AAAA,cACJ,CAAC;AAAA,YACL,CAAC;AAED,8BAAkB,IAAI,WAAW,YAAY;AAAA,UACjD,CAAC;AAED,gBAAM,WAAW,KAAK,SAAS,gBAAgB,iBAAiB,EAAE,IAAI;AACtE,gBAAM,OAAO,KAAK,UAAU,UAAU,MAAM,CAAC;AAE7C,sBAAY,UAAU,iBAAiB,IAAI,OAAO,QAAQ,UAAU,IAAI,CAAC;AAAA,QAC7E;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEQ,iBAAiB,wBAA6B,iBAAyC;AAC3F,QAAI,uBAAuB,QAAQ;AAC/B,6BAAuB,OAAO,QAAQ,CAAC,UAAiB;AACpD,YAAI,CAAC,gBAAgB,IAAI,KAAK,GAAG;AAC7B,0BAAgB,IAAI,KAAK;AAAA,QAC7B;AAAA,MACJ,CAAC;AAAA,IACL;AAEA,QAAI,uBAAuB,kBAAkB;AACzC,iBAAW,cAAc,uBAAuB,kBAAkB;AAC9D,aAAK,iBAAiB,YAAY,eAAe;AAAA,MACrD;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEQ,QAAQ,MAAuB;AACnC,WAAO,+CAA+C,KAAK,IAAI;AAAA,EACnE;AACJ;AAEA,IAAO,yBAAQ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/cli/bundler/plugins/ReplacePlugin.ts"],"sourcesContent":["import {type Compiler} from \"@rspack/core\";\n\ninterface ReplaceOptions {\n values: Record<string, string>;\n}\n\nexport default class ReplacePlugin {\n constructor(private options: ReplaceOptions) {}\n\n apply(compiler: Compiler): void {\n compiler.hooks.emit.tap(\"ReplacePlugin\", compilation => {\n for (const filename in compilation.assets) {\n let content = compilation.assets[filename].source().toString();\n let hasChanges = false;\n\n for (const [search, replace] of Object.entries(this.options.values)) {\n if (content.includes(search)) {\n content = content.replace(new RegExp(search, \"g\"), replace);\n hasChanges = true;\n }\n }\n\n if (hasChanges) {\n const sourceMap = {\n version: 3,\n sources: [],\n names: [],\n mappings: \"\",\n file: filename,\n };\n\n compilation.assets[filename] = {\n source: () => content,\n size: () => content.length,\n buffer: () => Buffer.from(content),\n map: () => sourceMap,\n sourceAndMap: () => ({source: content, map: sourceMap}),\n updateHash: () => {},\n };\n }\n }\n });\n }\n}\n"],"mappings":"AAMA,MAAO,cAA4B;AAAA,EAC/B,YAAoB,SAAyB;AAAzB;AAAA,EAA0B;AAAA,EAA1B;AAAA,EAEpB,MAAM,UAA0B;AAC5B,aAAS,MAAM,KAAK,IAAI,iBAAiB,iBAAe;AACpD,iBAAW,YAAY,YAAY,QAAQ;AACvC,YAAI,UAAU,YAAY,OAAO,QAAQ,EAAE,OAAO,EAAE,SAAS;AAC7D,YAAI,aAAa;AAEjB,mBAAW,CAAC,QAAQ,OAAO,KAAK,OAAO,QAAQ,KAAK,QAAQ,MAAM,GAAG;AACjE,cAAI,QAAQ,SAAS,MAAM,GAAG;AAC1B,sBAAU,QAAQ,QAAQ,IAAI,OAAO,QAAQ,GAAG,GAAG,OAAO;AAC1D,yBAAa;AAAA,UACjB;AAAA,QACJ;AAEA,YAAI,YAAY;AACZ,gBAAM,YAAY;AAAA,YACd,SAAS;AAAA,YACT,SAAS,CAAC;AAAA,YACV,OAAO,CAAC;AAAA,YACR,UAAU;AAAA,YACV,MAAM;AAAA,UACV;AAEA,sBAAY,OAAO,QAAQ,IAAI;AAAA,YAC3B,QAAQ,MAAM;AAAA,YACd,MAAM,MAAM,QAAQ;AAAA,YACpB,QAAQ,MAAM,OAAO,KAAK,OAAO;AAAA,YACjC,KAAK,MAAM;AAAA,YACX,cAAc,OAAO,EAAC,QAAQ,SAAS,KAAK,UAAS;AAAA,YACrD,YAAY,MAAM;AAAA,YAAC;AAAA,UACvB;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;","names":[]}
@@ -1,21 +0,0 @@
1
- class WatchPlugin {
2
- constructor(callback) {
3
- this.callback = callback;
4
- }
5
- callback;
6
- apply(compiler) {
7
- compiler.hooks.watchRun.tapAsync("WatchPlugin", async (compiler2, callback) => {
8
- try {
9
- const { modifiedFiles = /* @__PURE__ */ new Set() } = compiler2;
10
- await this.callback(modifiedFiles);
11
- callback();
12
- } catch (e) {
13
- callback(e);
14
- }
15
- });
16
- }
17
- }
18
- export {
19
- WatchPlugin as default
20
- };
21
- //# sourceMappingURL=WatchPlugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/cli/bundler/plugins/WatchPlugin.ts"],"sourcesContent":["import {Compiler} from \"@rspack/core\";\n\nexport type WatchPluginCallback = (files: ReadonlySet<string>) => Promise<void>;\n\nexport default class WatchPlugin {\n constructor(private readonly callback: WatchPluginCallback) {}\n\n public apply(compiler: Compiler): void {\n compiler.hooks.watchRun.tapAsync(\"WatchPlugin\", async (compiler, callback) => {\n try {\n const {modifiedFiles = new Set()} = compiler;\n\n await this.callback(modifiedFiles);\n\n callback();\n } catch (e) {\n callback(e as Error);\n }\n });\n }\n}\n"],"mappings":"AAIA,MAAO,YAA0B;AAAA,EAC7B,YAA6B,UAA+B;AAA/B;AAAA,EAAgC;AAAA,EAAhC;AAAA,EAEtB,MAAM,UAA0B;AACnC,aAAS,MAAM,SAAS,SAAS,eAAe,OAAOA,WAAU,aAAa;AAC1E,UAAI;AACA,cAAM,EAAC,gBAAgB,oBAAI,IAAI,EAAC,IAAIA;AAEpC,cAAM,KAAK,SAAS,aAAa;AAEjC,iBAAS;AAAA,MACb,SAAS,GAAG;AACR,iBAAS,CAAU;AAAA,MACvB;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;","names":["compiler"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/entry/content/core/AbstractMarker.ts"],"sourcesContent":["import {ContentScriptAnchor, ContentScriptMarkerContract, ContentScriptMarkerValue} from \"@typing/content\";\n\nexport default abstract class implements ContentScriptMarkerContract {\n public abstract mark(element: Element, value: ContentScriptMarkerValue): boolean;\n\n public abstract unmark(element: Element): boolean;\n\n public abstract isMarked(element: Element): boolean;\n\n public abstract value(element: Element): ContentScriptMarkerValue | undefined;\n\n protected constructor(protected anchor: ContentScriptAnchor) {}\n\n public for(anchor: ContentScriptAnchor): ContentScriptMarkerContract {\n this.anchor = anchor;\n\n return this;\n }\n\n public unmarked(): Element[] {\n return this.query(false);\n }\n\n public marked(): Element[] {\n return this.query(true);\n }\n\n public mount(element: Element): boolean {\n return this.mark(element, ContentScriptMarkerValue.Mounted);\n }\n\n public unmount(element: Element): boolean {\n return this.mark(element, ContentScriptMarkerValue.Unmounted);\n }\n\n public reset(): ContentScriptMarkerContract {\n for (const element of this.marked()) {\n this.unmark(element);\n }\n\n return this;\n }\n\n protected query(marked: boolean): Element[] {\n const anchor = this.anchor;\n\n if (anchor instanceof Element) {\n const isMarked = this.isMarked(anchor);\n\n if ((isMarked && marked) || (!isMarked && !marked)) {\n return [anchor];\n }\n } else if (typeof anchor === \"string\") {\n return this.queryAnchor(anchor, marked);\n }\n\n return [];\n }\n\n protected queryAnchor(anchor: string, marked: boolean = false): Element[] {\n try {\n if (anchor.startsWith(\"/\")) {\n return this.queryXpath(anchor, marked);\n }\n\n return this.querySelector(anchor, marked);\n } catch (e) {\n console.error(\"Invalid anchor format. Expected a valid string (CSS selector/XPath)\", e);\n\n return [];\n }\n }\n\n protected querySelector(selector: string, _marked: boolean = false): Element[] {\n return Array.from(document.querySelectorAll(selector));\n }\n\n protected queryXpath(xpath: string, _marked: boolean = false): Element[] {\n const elements: Element[] = [];\n\n const result = document.evaluate(xpath, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);\n\n for (let i = 0; i < result.snapshotLength; i++) {\n elements.push(result.snapshotItem(i) as Element);\n }\n\n return elements;\n }\n\n protected isValidValue(value: any): value is ContentScriptMarkerValue {\n return [ContentScriptMarkerValue.Unmounted, ContentScriptMarkerValue.Mounted].includes(value);\n }\n}\n"],"mappings":"AAAA,SAA0D,gCAA+B;AAEzF,MAAO,uBAA8D;AAAA,EASvD,YAAsB,QAA6B;AAA7B;AAAA,EAA8B;AAAA,EAA9B;AAAA,EAEzB,IAAI,QAA0D;AACjE,SAAK,SAAS;AAEd,WAAO;AAAA,EACX;AAAA,EAEO,WAAsB;AACzB,WAAO,KAAK,MAAM,KAAK;AAAA,EAC3B;AAAA,EAEO,SAAoB;AACvB,WAAO,KAAK,MAAM,IAAI;AAAA,EAC1B;AAAA,EAEO,MAAM,SAA2B;AACpC,WAAO,KAAK,KAAK,SAAS,yBAAyB,OAAO;AAAA,EAC9D;AAAA,EAEO,QAAQ,SAA2B;AACtC,WAAO,KAAK,KAAK,SAAS,yBAAyB,SAAS;AAAA,EAChE;AAAA,EAEO,QAAqC;AACxC,eAAW,WAAW,KAAK,OAAO,GAAG;AACjC,WAAK,OAAO,OAAO;AAAA,IACvB;AAEA,WAAO;AAAA,EACX;AAAA,EAEU,MAAM,QAA4B;AACxC,UAAM,SAAS,KAAK;AAEpB,QAAI,kBAAkB,SAAS;AAC3B,YAAM,WAAW,KAAK,SAAS,MAAM;AAErC,UAAK,YAAY,UAAY,CAAC,YAAY,CAAC,QAAS;AAChD,eAAO,CAAC,MAAM;AAAA,MAClB;AAAA,IACJ,WAAW,OAAO,WAAW,UAAU;AACnC,aAAO,KAAK,YAAY,QAAQ,MAAM;AAAA,IAC1C;AAEA,WAAO,CAAC;AAAA,EACZ;AAAA,EAEU,YAAY,QAAgB,SAAkB,OAAkB;AACtE,QAAI;AACA,UAAI,OAAO,WAAW,GAAG,GAAG;AACxB,eAAO,KAAK,WAAW,QAAQ,MAAM;AAAA,MACzC;AAEA,aAAO,KAAK,cAAc,QAAQ,MAAM;AAAA,IAC5C,SAAS,GAAG;AACR,cAAQ,MAAM,uEAAuE,CAAC;AAEtF,aAAO,CAAC;AAAA,IACZ;AAAA,EACJ;AAAA,EAEU,cAAc,UAAkB,UAAmB,OAAkB;AAC3E,WAAO,MAAM,KAAK,SAAS,iBAAiB,QAAQ,CAAC;AAAA,EACzD;AAAA,EAEU,WAAW,OAAe,UAAmB,OAAkB;AACrE,UAAM,WAAsB,CAAC;AAE7B,UAAM,SAAS,SAAS,SAAS,OAAO,UAAU,MAAM,YAAY,4BAA4B,IAAI;AAEpG,aAAS,IAAI,GAAG,IAAI,OAAO,gBAAgB,KAAK;AAC5C,eAAS,KAAK,OAAO,aAAa,CAAC,CAAY;AAAA,IACnD;AAEA,WAAO;AAAA,EACX;AAAA,EAEU,aAAa,OAA+C;AAClE,WAAO,CAAC,yBAAyB,WAAW,yBAAyB,OAAO,EAAE,SAAS,KAAK;AAAA,EAChG;AACJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/entry/content/core/AttributeMarker.ts"],"sourcesContent":["import {customAlphabet} from \"nanoid\";\n\nimport AbstractMarker from \"./AbstractMarker\";\n\nimport {ContentScriptAnchor, ContentScriptMarkerValue} from \"@typing/content\";\n\nexport default class extends AbstractMarker {\n protected readonly attr: string;\n\n constructor(anchor?: ContentScriptAnchor, attr?: string) {\n super(anchor);\n\n this.attr = attr ?? `data-${customAlphabet(\"abcdefghijklmnopqrstuvwxyz\", 7)()}`;\n }\n\n public isMarked(element: Element): boolean {\n return element.hasAttribute(this.attr);\n }\n\n public mark(element: Element, value: ContentScriptMarkerValue): boolean {\n element.setAttribute(this.attr, value);\n\n return true;\n }\n\n public unmark(element: Element): boolean {\n element.removeAttribute(this.attr);\n\n return true;\n }\n\n public value(element: Element): ContentScriptMarkerValue | undefined {\n const value = element.getAttribute(this.attr);\n\n return this.isValidValue(value) ? value : undefined;\n }\n\n protected querySelector(selector: string, marked: boolean = false): Element[] {\n const filter = marked ? `[${this.attr}]` : `:not([${this.attr}])`;\n\n return super.querySelector(`:is(${selector})${filter}`, marked);\n }\n\n protected queryXpath(xpath: string, marked: boolean = false): Element[] {\n const filter = marked ? `[@${this.attr}]` : `[not(@${this.attr})]`;\n\n return super.queryXpath(`(${xpath.trim()})${filter}`, marked);\n }\n}\n"],"mappings":"AAAA,SAAQ,sBAAqB;AAE7B,OAAO,oBAAoB;AAI3B,MAAO,gCAAsB,eAAe;AAAA,EACrB;AAAA,EAEnB,YAAY,QAA8B,MAAe;AACrD,UAAM,MAAM;AAEZ,SAAK,OAAO,QAAQ,QAAQ,eAAe,8BAA8B,CAAC,EAAE,CAAC;AAAA,EACjF;AAAA,EAEO,SAAS,SAA2B;AACvC,WAAO,QAAQ,aAAa,KAAK,IAAI;AAAA,EACzC;AAAA,EAEO,KAAK,SAAkB,OAA0C;AACpE,YAAQ,aAAa,KAAK,MAAM,KAAK;AAErC,WAAO;AAAA,EACX;AAAA,EAEO,OAAO,SAA2B;AACrC,YAAQ,gBAAgB,KAAK,IAAI;AAEjC,WAAO;AAAA,EACX;AAAA,EAEO,MAAM,SAAwD;AACjE,UAAM,QAAQ,QAAQ,aAAa,KAAK,IAAI;AAE5C,WAAO,KAAK,aAAa,KAAK,IAAI,QAAQ;AAAA,EAC9C;AAAA,EAEU,cAAc,UAAkB,SAAkB,OAAkB;AAC1E,UAAM,SAAS,SAAS,IAAI,KAAK,IAAI,MAAM,SAAS,KAAK,IAAI;AAE7D,WAAO,MAAM,cAAc,OAAO,QAAQ,IAAI,MAAM,IAAI,MAAM;AAAA,EAClE;AAAA,EAEU,WAAW,OAAe,SAAkB,OAAkB;AACpE,UAAM,SAAS,SAAS,KAAK,KAAK,IAAI,MAAM,SAAS,KAAK,IAAI;AAE9D,WAAO,MAAM,WAAW,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,IAAI,MAAM;AAAA,EAChE;AACJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/entry/content/core/Context.ts"],"sourcesContent":["import {\n ContentScriptContext,\n ContentScriptEventCallback,\n ContentScriptEventEmitter,\n ContentScriptNode,\n ContentScriptNodeSet,\n} from \"@typing/content\";\n\nexport default class implements ContentScriptContext {\n protected readonly collection: ContentScriptNodeSet = new Set();\n\n constructor(protected readonly emitter: ContentScriptEventEmitter) {}\n\n public get nodes(): ReadonlySet<ContentScriptNode> {\n return this.collection;\n }\n\n public mount(): void {\n for (const node of this.collection) {\n if (!node.anchor.isConnected) {\n node.unmount();\n\n this.collection.delete(node);\n\n this.emitter.emitRemove(node);\n\n continue;\n }\n\n node.mount();\n }\n }\n\n public unmount(): void {\n for (const node of this.collection) {\n node.unmount();\n\n if (!node.anchor.isConnected) {\n this.collection.delete(node);\n\n this.emitter.emitRemove(node);\n }\n }\n }\n\n public watch(callback: ContentScriptEventCallback): () => void {\n this.emitter.on(callback);\n\n return () => {\n this.emitter.off(callback);\n };\n }\n\n public unwatch(): void {\n this.emitter.removeAllListeners();\n }\n}\n"],"mappings":"AAQA,MAAO,gBAA8C;AAAA,EAGjD,YAA+B,SAAoC;AAApC;AAAA,EAAqC;AAAA,EAArC;AAAA,EAFZ,aAAmC,oBAAI,IAAI;AAAA,EAI9D,IAAW,QAAwC;AAC/C,WAAO,KAAK;AAAA,EAChB;AAAA,EAEO,QAAc;AACjB,eAAW,QAAQ,KAAK,YAAY;AAChC,UAAI,CAAC,KAAK,OAAO,aAAa;AAC1B,aAAK,QAAQ;AAEb,aAAK,WAAW,OAAO,IAAI;AAE3B,aAAK,QAAQ,WAAW,IAAI;AAE5B;AAAA,MACJ;AAEA,WAAK,MAAM;AAAA,IACf;AAAA,EACJ;AAAA,EAEO,UAAgB;AACnB,eAAW,QAAQ,KAAK,YAAY;AAChC,WAAK,QAAQ;AAEb,UAAI,CAAC,KAAK,OAAO,aAAa;AAC1B,aAAK,WAAW,OAAO,IAAI;AAE3B,aAAK,QAAQ,WAAW,IAAI;AAAA,MAChC;AAAA,IACJ;AAAA,EACJ;AAAA,EAEO,MAAM,UAAkD;AAC3D,SAAK,QAAQ,GAAG,QAAQ;AAExB,WAAO,MAAM;AACT,WAAK,QAAQ,IAAI,QAAQ;AAAA,IAC7B;AAAA,EACJ;AAAA,EAEO,UAAgB;AACnB,SAAK,QAAQ,mBAAmB;AAAA,EACpC;AACJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/entry/content/core/EventEmitter.ts"],"sourcesContent":["import {\n ContentScriptEvent,\n ContentScriptEventCallback,\n ContentScriptEventEmitter,\n ContentScriptNode,\n} from \"@typing/content\";\n\nexport default class implements ContentScriptEventEmitter {\n private readonly listeners: Set<ContentScriptEventCallback> = new Set();\n\n public emit(event: ContentScriptEvent, node: ContentScriptNode): void {\n for (const listener of this.listeners) {\n listener(event, node);\n }\n }\n\n public emitAdd(node: ContentScriptNode): void {\n this.emit(ContentScriptEvent.Add, node);\n }\n\n public emitMount(node: ContentScriptNode): void {\n this.emit(ContentScriptEvent.Mount, node);\n }\n\n public emitRemove(node: ContentScriptNode): void {\n this.emit(ContentScriptEvent.Remove, node);\n }\n\n public emitUnmount(node: ContentScriptNode): void {\n this.emit(ContentScriptEvent.Unmount, node);\n }\n\n public hasListeners(): boolean {\n return this.listenerCount() > 0;\n }\n\n public listenerCount(): number {\n return this.listeners.size;\n }\n\n public off(callback: ContentScriptEventCallback): void {\n this.listeners.delete(callback);\n }\n\n public on(callback: ContentScriptEventCallback): void {\n this.listeners.add(callback);\n }\n\n public removeAllListeners(): void {\n this.listeners.clear();\n }\n}\n"],"mappings":"AAAA;AAAA,EACI;AAAA,OAIG;AAEP,MAAO,qBAAmD;AAAA,EACrC,YAA6C,oBAAI,IAAI;AAAA,EAE/D,KAAK,OAA2B,MAA+B;AAClE,eAAW,YAAY,KAAK,WAAW;AACnC,eAAS,OAAO,IAAI;AAAA,IACxB;AAAA,EACJ;AAAA,EAEO,QAAQ,MAA+B;AAC1C,SAAK,KAAK,mBAAmB,KAAK,IAAI;AAAA,EAC1C;AAAA,EAEO,UAAU,MAA+B;AAC5C,SAAK,KAAK,mBAAmB,OAAO,IAAI;AAAA,EAC5C;AAAA,EAEO,WAAW,MAA+B;AAC7C,SAAK,KAAK,mBAAmB,QAAQ,IAAI;AAAA,EAC7C;AAAA,EAEO,YAAY,MAA+B;AAC9C,SAAK,KAAK,mBAAmB,SAAS,IAAI;AAAA,EAC9C;AAAA,EAEO,eAAwB;AAC3B,WAAO,KAAK,cAAc,IAAI;AAAA,EAClC;AAAA,EAEO,gBAAwB;AAC3B,WAAO,KAAK,UAAU;AAAA,EAC1B;AAAA,EAEO,IAAI,UAA4C;AACnD,SAAK,UAAU,OAAO,QAAQ;AAAA,EAClC;AAAA,EAEO,GAAG,UAA4C;AAClD,SAAK,UAAU,IAAI,QAAQ;AAAA,EAC/B;AAAA,EAEO,qBAA2B;AAC9B,SAAK,UAAU,MAAM;AAAA,EACzB;AACJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/entry/content/core/EventNode.ts"],"sourcesContent":["import {ContentScriptEventEmitter, ContentScriptNode} from \"@typing/content\";\n\nexport default class implements ContentScriptNode {\n constructor(\n protected readonly node: ContentScriptNode,\n protected readonly emitter: ContentScriptEventEmitter\n ) {}\n\n public get anchor(): Element {\n return this.node.anchor;\n }\n\n public get container(): Element | undefined {\n return this.node.container;\n }\n\n public mount(): boolean {\n const result = this.node.mount();\n\n if (result === true) {\n this.emitter.emitMount(this.node);\n }\n\n return !!result;\n }\n\n public unmount(): boolean {\n const result = this.node.unmount();\n\n if (result === true) {\n this.emitter.emitUnmount(this.node);\n }\n\n return !!result;\n }\n}\n"],"mappings":"AAEA,MAAO,kBAA2C;AAAA,EAC9C,YACuB,MACA,SACrB;AAFqB;AACA;AAAA,EACpB;AAAA,EAFoB;AAAA,EACA;AAAA,EAGvB,IAAW,SAAkB;AACzB,WAAO,KAAK,KAAK;AAAA,EACrB;AAAA,EAEA,IAAW,YAAiC;AACxC,WAAO,KAAK,KAAK;AAAA,EACrB;AAAA,EAEO,QAAiB;AACpB,UAAM,SAAS,KAAK,KAAK,MAAM;AAE/B,QAAI,WAAW,MAAM;AACjB,WAAK,QAAQ,UAAU,KAAK,IAAI;AAAA,IACpC;AAEA,WAAO,CAAC,CAAC;AAAA,EACb;AAAA,EAEO,UAAmB;AACtB,UAAM,SAAS,KAAK,KAAK,QAAQ;AAEjC,QAAI,WAAW,MAAM;AACjB,WAAK,QAAQ,YAAY,KAAK,IAAI;AAAA,IACtC;AAEA,WAAO,CAAC,CAAC;AAAA,EACb;AACJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/entry/content/core/ManagedContext.ts"],"sourcesContent":["import Context from \"./Context\";\n\nimport {ContentScriptNode} from \"@typing/content\";\n\nexport default class extends Context {\n public add(node: ContentScriptNode): this {\n this.collection.add(node);\n\n this.emitter.emitAdd(node);\n\n return this;\n }\n}\n"],"mappings":"AAAA,OAAO,aAAa;AAIpB,MAAO,+BAAsB,QAAQ;AAAA,EAC1B,IAAI,MAA+B;AACtC,SAAK,WAAW,IAAI,IAAI;AAExB,SAAK,QAAQ,QAAQ,IAAI;AAEzB,WAAO;AAAA,EACX;AACJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/entry/content/core/MarkerNode.ts"],"sourcesContent":["import {ContentScriptMarkerContract, ContentScriptNode} from \"@typing/content\";\n\nexport default class implements ContentScriptNode {\n constructor(\n protected readonly node: ContentScriptNode,\n protected readonly marker: ContentScriptMarkerContract\n ) {}\n\n public get anchor(): Element {\n return this.node.anchor;\n }\n\n public get container(): Element | undefined {\n return this.node.container;\n }\n\n public mount(): boolean | undefined | void {\n this.marker.mount(this.anchor);\n\n return this.node.mount();\n }\n\n public unmount(): boolean | undefined | void {\n this.marker.unmount(this.anchor);\n\n return this.node.unmount();\n }\n}\n"],"mappings":"AAEA,MAAO,mBAA2C;AAAA,EAC9C,YACuB,MACA,QACrB;AAFqB;AACA;AAAA,EACpB;AAAA,EAFoB;AAAA,EACA;AAAA,EAGvB,IAAW,SAAkB;AACzB,WAAO,KAAK,KAAK;AAAA,EACrB;AAAA,EAEA,IAAW,YAAiC;AACxC,WAAO,KAAK,KAAK;AAAA,EACrB;AAAA,EAEO,QAAoC;AACvC,SAAK,OAAO,MAAM,KAAK,MAAM;AAE7B,WAAO,KAAK,KAAK,MAAM;AAAA,EAC3B;AAAA,EAEO,UAAsC;AACzC,SAAK,OAAO,QAAQ,KAAK,MAAM;AAE/B,WAAO,KAAK,KAAK,QAAQ;AAAA,EAC7B;AACJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/entry/content/core/MountNode.ts"],"sourcesContent":["import {ContentScriptMountFunction, ContentScriptNode} from \"@typing/content\";\n\nexport default class implements ContentScriptNode {\n private unmounting?: () => void;\n\n constructor(\n protected node: ContentScriptNode,\n protected mounter?: ContentScriptMountFunction\n ) {}\n\n public get anchor(): Element {\n return this.node.anchor;\n }\n\n public get container(): Element | undefined {\n return this.node.container;\n }\n\n public mount(): boolean {\n this.node.mount();\n\n if (!this.container || this.container.isConnected) {\n return false;\n }\n\n if (this.mounter) {\n const unmounting = this.mounter(this.anchor, this.container);\n\n if (unmounting) {\n this.unmounting = unmounting;\n }\n\n return true;\n }\n\n return false;\n }\n\n public unmount(): boolean {\n this.unmounting?.();\n this.unmounting = undefined;\n\n return !!this.node.unmount();\n }\n}\n"],"mappings":"AAEA,MAAO,kBAA2C;AAAA,EAG9C,YACc,MACA,SACZ;AAFY;AACA;AAAA,EACX;AAAA,EAFW;AAAA,EACA;AAAA,EAJN;AAAA,EAOR,IAAW,SAAkB;AACzB,WAAO,KAAK,KAAK;AAAA,EACrB;AAAA,EAEA,IAAW,YAAiC;AACxC,WAAO,KAAK,KAAK;AAAA,EACrB;AAAA,EAEO,QAAiB;AACpB,SAAK,KAAK,MAAM;AAEhB,QAAI,CAAC,KAAK,aAAa,KAAK,UAAU,aAAa;AAC/C,aAAO;AAAA,IACX;AAEA,QAAI,KAAK,SAAS;AACd,YAAM,aAAa,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS;AAE3D,UAAI,YAAY;AACZ,aAAK,aAAa;AAAA,MACtB;AAEA,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,UAAmB;AAtC9B;AAuCQ,eAAK,eAAL;AACA,SAAK,aAAa;AAElB,WAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;AAAA,EAC/B;AACJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/entry/content/core/Node.ts"],"sourcesContent":["import {ContentScriptNode} from \"@typing/content\";\n\nexport default class implements ContentScriptNode {\n private readonly _container?: Element;\n\n constructor(\n public readonly anchor: Element,\n public container?: Element\n ) {\n if (this.container) {\n this._container = this.container.cloneNode(false) as Element;\n }\n }\n\n public mount(): boolean {\n if (!this.container && this._container) {\n this.container = this._container.cloneNode(false) as Element;\n\n return true;\n }\n\n return false;\n }\n\n public unmount(): boolean {\n if (this.container) {\n this.container.remove();\n this.container = undefined;\n\n return true;\n }\n\n return false;\n }\n}\n"],"mappings":"AAEA,MAAO,aAA2C;AAAA,EAG9C,YACoB,QACT,WACT;AAFkB;AACT;AAEP,QAAI,KAAK,WAAW;AAChB,WAAK,aAAa,KAAK,UAAU,UAAU,KAAK;AAAA,IACpD;AAAA,EACJ;AAAA,EANoB;AAAA,EACT;AAAA,EAJM;AAAA,EAWV,QAAiB;AACpB,QAAI,CAAC,KAAK,aAAa,KAAK,YAAY;AACpC,WAAK,YAAY,KAAK,WAAW,UAAU,KAAK;AAEhD,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,UAAmB;AACtB,QAAI,KAAK,WAAW;AAChB,WAAK,UAAU,OAAO;AACtB,WAAK,YAAY;AAEjB,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AACJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/entry/content/core/WeakMarker.ts"],"sourcesContent":["import AbstractMarker from \"./AbstractMarker\";\n\nimport {ContentScriptAnchor, ContentScriptMarkerValue} from \"@typing/content\";\n\nexport default class extends AbstractMarker {\n private readonly map: WeakMap<Element, ContentScriptMarkerValue> = new WeakMap();\n\n constructor(anchor?: ContentScriptAnchor) {\n super(anchor);\n }\n\n public mark(element: Element, value: ContentScriptMarkerValue): boolean {\n this.map.set(element, value);\n\n return true;\n }\n\n public unmark(element: Element): boolean {\n if (this.map.has(element)) {\n this.map.delete(element);\n\n return true;\n }\n\n return false;\n }\n\n public value(element: Element): ContentScriptMarkerValue | undefined {\n return this.map.get(element);\n }\n\n public isMarked(element: Element): boolean {\n return this.map.has(element);\n }\n\n protected queryAnchor(anchor: string, marked: boolean = false): Element[] {\n const elements = super.queryAnchor(anchor, marked);\n\n return elements.filter(element => this.isMarked(element) === marked);\n }\n}\n"],"mappings":"AAAA,OAAO,oBAAoB;AAI3B,MAAO,2BAAsB,eAAe;AAAA,EACvB,MAAkD,oBAAI,QAAQ;AAAA,EAE/E,YAAY,QAA8B;AACtC,UAAM,MAAM;AAAA,EAChB;AAAA,EAEO,KAAK,SAAkB,OAA0C;AACpE,SAAK,IAAI,IAAI,SAAS,KAAK;AAE3B,WAAO;AAAA,EACX;AAAA,EAEO,OAAO,SAA2B;AACrC,QAAI,KAAK,IAAI,IAAI,OAAO,GAAG;AACvB,WAAK,IAAI,OAAO,OAAO;AAEvB,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,MAAM,SAAwD;AACjE,WAAO,KAAK,IAAI,IAAI,OAAO;AAAA,EAC/B;AAAA,EAEO,SAAS,SAA2B;AACvC,WAAO,KAAK,IAAI,IAAI,OAAO;AAAA,EAC/B;AAAA,EAEU,YAAY,QAAgB,SAAkB,OAAkB;AACtE,UAAM,WAAW,MAAM,YAAY,QAAQ,MAAM;AAEjD,WAAO,SAAS,OAAO,aAAW,KAAK,SAAS,OAAO,MAAM,MAAM;AAAA,EACvE;AACJ;","names":[]}
@@ -1,7 +0,0 @@
1
- import React, { PropsWithChildren } from "react";
2
- export interface LocaleProviderProps {
3
- storage?: string | false;
4
- container?: string | Element | false;
5
- }
6
- declare const LocaleProvider: ({ children, storage, container }: PropsWithChildren<LocaleProviderProps>) => React.JSX.Element;
7
- export default LocaleProvider;
@@ -1,58 +0,0 @@
1
- import React, { useCallback, useEffect, useMemo, useState } from "react";
2
- import { LocaleContext } from "./context.js";
3
- import { getLocaleDir, isLocaleRtl } from "./../../../locale/utils.js";
4
- import { DynamicLocale } from "./../../../locale/providers/index.js";
5
- const LocaleProvider = ({ children, storage, container = "html" }) => {
6
- const locale = useMemo(() => new DynamicLocale(storage), []);
7
- const langs = useMemo(() => locale.languageNames(), [locale]);
8
- const [lang, setLang] = useState(locale.lang());
9
- const t = useCallback((key, ...args) => {
10
- return locale.trans(key, ...args);
11
- }, []);
12
- const choice = useCallback((key, count, ...args) => {
13
- return locale.choice(key, count, ...args);
14
- }, []);
15
- const change = useCallback((lang2) => {
16
- locale.change(lang2).catch((err) => console.error(`[LocaleProvider] Cannot find locale file for "${lang2}" language`, err));
17
- }, []);
18
- useEffect(() => {
19
- if (container === false) {
20
- return;
21
- }
22
- const element = typeof container === "string" ? document.querySelector(container) : container;
23
- if (element) {
24
- element.setAttribute("lang", lang);
25
- element.setAttribute("dir", getLocaleDir(lang));
26
- return () => {
27
- element.removeAttribute("lang");
28
- element.removeAttribute("dir");
29
- };
30
- }
31
- }, [lang, container]);
32
- useEffect(() => {
33
- locale.sync().then((lang2) => setLang(lang2));
34
- }, []);
35
- useEffect(() => {
36
- return locale.watch((lang2) => setLang(lang2));
37
- }, []);
38
- return /* @__PURE__ */ React.createElement(
39
- LocaleContext.Provider,
40
- {
41
- value: {
42
- t,
43
- choice,
44
- change,
45
- lang,
46
- langs,
47
- dir: getLocaleDir(lang),
48
- isRtl: isLocaleRtl(lang)
49
- }
50
- },
51
- children
52
- );
53
- };
54
- var LocaleProvider_default = LocaleProvider;
55
- export {
56
- LocaleProvider_default as default
57
- };
58
- //# sourceMappingURL=LocaleProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/locale/adapters/react/LocaleProvider.tsx"],"sourcesContent":["import React, {PropsWithChildren, useCallback, useEffect, useMemo, useState} from \"react\";\n\nimport {LocaleContext, LocaleContract} from \"./context\";\n\nimport {getLocaleDir, isLocaleRtl} from \"@locale/utils\";\n\nimport {DynamicLocale} from \"@locale/providers\";\n\nimport {Language} from \"@typing/locale\";\n\nexport interface LocaleProviderProps {\n storage?: string | false;\n container?: string | Element | false;\n}\n\nconst LocaleProvider = ({children, storage, container = \"html\"}: PropsWithChildren<LocaleProviderProps>) => {\n const locale = useMemo(() => new DynamicLocale(storage), []);\n const langs = useMemo(() => locale.languageNames(), [locale]);\n\n const [lang, setLang] = useState<Language>(locale.lang());\n\n const t: LocaleContract[\"t\"] = useCallback((key, ...args): string => {\n return locale.trans(key, ...args);\n }, []);\n\n const choice: LocaleContract[\"choice\"] = useCallback((key, count, ...args): string => {\n return locale.choice(key, count, ...args);\n }, []);\n\n const change: LocaleContract[\"change\"] = useCallback((lang): void => {\n locale\n .change(lang)\n .catch(err => console.error(`[LocaleProvider] Cannot find locale file for \"${lang}\" language`, err));\n }, []);\n\n useEffect(() => {\n if (container === false) {\n return;\n }\n\n const element = typeof container === \"string\" ? document.querySelector(container) : container;\n\n if (element) {\n element.setAttribute(\"lang\", lang);\n element.setAttribute(\"dir\", getLocaleDir(lang));\n\n return () => {\n element.removeAttribute(\"lang\");\n element.removeAttribute(\"dir\");\n };\n }\n }, [lang, container]);\n\n useEffect(() => {\n locale.sync().then(lang => setLang(lang));\n }, []);\n\n useEffect(() => {\n return locale.watch(lang => setLang(lang));\n }, []);\n\n return (\n <LocaleContext.Provider\n value={{\n t,\n choice,\n change,\n lang,\n langs,\n dir: getLocaleDir(lang),\n isRtl: isLocaleRtl(lang),\n }}\n >\n {children}\n </LocaleContext.Provider>\n );\n};\n\nexport default LocaleProvider;\n"],"mappings":"AAAA,OAAO,SAA2B,aAAa,WAAW,SAAS,gBAAe;AAElF,SAAQ,qBAAoC;AAE5C,SAAQ,cAAc,mBAAkB;AAExC,SAAQ,qBAAoB;AAS5B,MAAM,iBAAiB,CAAC,EAAC,UAAU,SAAS,YAAY,OAAM,MAA8C;AACxG,QAAM,SAAS,QAAQ,MAAM,IAAI,cAAc,OAAO,GAAG,CAAC,CAAC;AAC3D,QAAM,QAAQ,QAAQ,MAAM,OAAO,cAAc,GAAG,CAAC,MAAM,CAAC;AAE5D,QAAM,CAAC,MAAM,OAAO,IAAI,SAAmB,OAAO,KAAK,CAAC;AAExD,QAAM,IAAyB,YAAY,CAAC,QAAQ,SAAiB;AACjE,WAAO,OAAO,MAAM,KAAK,GAAG,IAAI;AAAA,EACpC,GAAG,CAAC,CAAC;AAEL,QAAM,SAAmC,YAAY,CAAC,KAAK,UAAU,SAAiB;AAClF,WAAO,OAAO,OAAO,KAAK,OAAO,GAAG,IAAI;AAAA,EAC5C,GAAG,CAAC,CAAC;AAEL,QAAM,SAAmC,YAAY,CAACA,UAAe;AACjE,WACK,OAAOA,KAAI,EACX,MAAM,SAAO,QAAQ,MAAM,iDAAiDA,KAAI,cAAc,GAAG,CAAC;AAAA,EAC3G,GAAG,CAAC,CAAC;AAEL,YAAU,MAAM;AACZ,QAAI,cAAc,OAAO;AACrB;AAAA,IACJ;AAEA,UAAM,UAAU,OAAO,cAAc,WAAW,SAAS,cAAc,SAAS,IAAI;AAEpF,QAAI,SAAS;AACT,cAAQ,aAAa,QAAQ,IAAI;AACjC,cAAQ,aAAa,OAAO,aAAa,IAAI,CAAC;AAE9C,aAAO,MAAM;AACT,gBAAQ,gBAAgB,MAAM;AAC9B,gBAAQ,gBAAgB,KAAK;AAAA,MACjC;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,MAAM,SAAS,CAAC;AAEpB,YAAU,MAAM;AACZ,WAAO,KAAK,EAAE,KAAK,CAAAA,UAAQ,QAAQA,KAAI,CAAC;AAAA,EAC5C,GAAG,CAAC,CAAC;AAEL,YAAU,MAAM;AACZ,WAAO,OAAO,MAAM,CAAAA,UAAQ,QAAQA,KAAI,CAAC;AAAA,EAC7C,GAAG,CAAC,CAAC;AAEL,SACI;AAAA,IAAC,cAAc;AAAA,IAAd;AAAA,MACG,OAAO;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,KAAK,aAAa,IAAI;AAAA,QACtB,OAAO,YAAY,IAAI;AAAA,MAC3B;AAAA;AAAA,IAEC;AAAA,EACL;AAER;AAEA,IAAO,yBAAQ;","names":["lang"]}