roxxie-proxy-u-prod 0.1.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 (481) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +123 -0
  3. package/SOURCE.md +29 -0
  4. package/THIRD_PARTY_NOTICES.md +24 -0
  5. package/dist/assets/filters-Bu_3nHVy.bin +0 -0
  6. package/dist/assets/index-BdRlQ7d_.css +1 -0
  7. package/dist/assets/index-DcvPYWS3.js +3621 -0
  8. package/dist/assets/inject-BnVzMVpl.js +40 -0
  9. package/dist/assets/scramjet-C9HLwI-y.wasm +0 -0
  10. package/dist/defaultfavicon.png +0 -0
  11. package/dist/icon.png +0 -0
  12. package/dist/roxxie-icon.svg +12 -0
  13. package/embed.js +70 -0
  14. package/examples/single-page.html +25 -0
  15. package/package.json +42 -0
  16. package/runtime/controller.sw.js +273 -0
  17. package/runtime/index.html +18 -0
  18. package/runtime/localcontrollersw.js +7 -0
  19. package/runtime/roxxie-network.json +13 -0
  20. package/runtime/sw.js +6 -0
  21. package/scripts/build.mjs +344 -0
  22. package/scripts/smoke.mjs +123 -0
  23. package/scripts/verify.mjs +122 -0
  24. package/source/external/dreamlandjs/LICENSE +21 -0
  25. package/source/external/dreamlandjs/README.md +22 -0
  26. package/source/external/dreamlandjs/dist/core.d.ts +167 -0
  27. package/source/external/dreamlandjs/dist/core.js +2 -0
  28. package/source/external/dreamlandjs/dist/core.js.map +1 -0
  29. package/source/external/dreamlandjs/dist/core.size.html +4950 -0
  30. package/source/external/dreamlandjs/dist/js-runtime.d.ts +3 -0
  31. package/source/external/dreamlandjs/dist/js-runtime.js +2 -0
  32. package/source/external/dreamlandjs/dist/js-runtime.js.map +1 -0
  33. package/source/external/dreamlandjs/dist/jsx-runtime.d.ts +1 -0
  34. package/source/external/dreamlandjs/dist/jsx-runtime.js +2 -0
  35. package/source/external/dreamlandjs/dist/jsx-runtime.js.map +1 -0
  36. package/source/external/dreamlandjs/dist/motion.d.ts +19 -0
  37. package/source/external/dreamlandjs/dist/motion.js +2 -0
  38. package/source/external/dreamlandjs/dist/motion.js.map +1 -0
  39. package/source/external/dreamlandjs/dist/router.d.ts +48 -0
  40. package/source/external/dreamlandjs/dist/router.js +2 -0
  41. package/source/external/dreamlandjs/dist/router.js.map +1 -0
  42. package/source/external/dreamlandjs/dist/ssr.client.d.ts +3 -0
  43. package/source/external/dreamlandjs/dist/ssr.client.js +2 -0
  44. package/source/external/dreamlandjs/dist/ssr.client.js.map +1 -0
  45. package/source/external/dreamlandjs/dist/ssr.client.size.html +4950 -0
  46. package/source/external/dreamlandjs/dist/ssr.hybrid.d.ts +7 -0
  47. package/source/external/dreamlandjs/dist/ssr.hybrid.js +2 -0
  48. package/source/external/dreamlandjs/dist/ssr.hybrid.js.map +1 -0
  49. package/source/external/dreamlandjs/dist/ssr.hybrid.size.html +4950 -0
  50. package/source/external/dreamlandjs/dist/ssr.server.d.ts +11 -0
  51. package/source/external/dreamlandjs/dist/ssr.server.js +2373 -0
  52. package/source/external/dreamlandjs/dist/ssr.server.js.map +1 -0
  53. package/source/external/dreamlandjs/dist/types/core/consts.d.ts +16 -0
  54. package/source/external/dreamlandjs/dist/types/core/css/index.d.ts +11 -0
  55. package/source/external/dreamlandjs/dist/types/core/css/selectorParser.d.ts +50 -0
  56. package/source/external/dreamlandjs/dist/types/core/delegate.d.ts +10 -0
  57. package/source/external/dreamlandjs/dist/types/core/index.d.ts +9 -0
  58. package/source/external/dreamlandjs/dist/types/core/jsx/child.d.ts +2 -0
  59. package/source/external/dreamlandjs/dist/types/core/jsx/definitions.d.ts +76 -0
  60. package/source/external/dreamlandjs/dist/types/core/jsx/dom.d.ts +28 -0
  61. package/source/external/dreamlandjs/dist/types/core/jsx/index.d.ts +14 -0
  62. package/source/external/dreamlandjs/dist/types/core/state/index.d.ts +1 -0
  63. package/source/external/dreamlandjs/dist/types/core/state/pointers.d.ts +37 -0
  64. package/source/external/dreamlandjs/dist/types/core/state/state.d.ts +13 -0
  65. package/source/external/dreamlandjs/dist/types/core/state/use.d.ts +11 -0
  66. package/source/external/dreamlandjs/dist/types/core/utils.d.ts +4 -0
  67. package/source/external/dreamlandjs/dist/types/js-runtime/index.d.ts +1 -0
  68. package/source/external/dreamlandjs/dist/types/jsx-runtime/index.d.ts +2 -0
  69. package/source/external/dreamlandjs/dist/types/motion/index.d.ts +15 -0
  70. package/source/external/dreamlandjs/dist/types/router/index.d.ts +45 -0
  71. package/source/external/dreamlandjs/dist/types/ssr/client/index.d.ts +1 -0
  72. package/source/external/dreamlandjs/dist/types/ssr/common/consts.d.ts +4 -0
  73. package/source/external/dreamlandjs/dist/types/ssr/common/serialize.d.ts +4 -0
  74. package/source/external/dreamlandjs/dist/types/ssr/common/types.d.ts +21 -0
  75. package/source/external/dreamlandjs/dist/types/ssr/hybrid/index.d.ts +4 -0
  76. package/source/external/dreamlandjs/dist/types/ssr/server/index.d.ts +7 -0
  77. package/source/external/dreamlandjs/dist/types/ssr/server/vdom.d.ts +71 -0
  78. package/source/external/dreamlandjs/dist/types/util/index.d.ts +1 -0
  79. package/source/external/dreamlandjs/dist/types/util/store.d.ts +26 -0
  80. package/source/external/dreamlandjs/dist/types/vite/css-minifier.d.ts +7 -0
  81. package/source/external/dreamlandjs/dist/types/vite/index.d.ts +11 -0
  82. package/source/external/dreamlandjs/dist/util.d.ts +29 -0
  83. package/source/external/dreamlandjs/dist/util.js +2 -0
  84. package/source/external/dreamlandjs/dist/util.js.map +1 -0
  85. package/source/external/dreamlandjs/dist/vite.d.ts +19 -0
  86. package/source/external/dreamlandjs/dist/vite.js +2 -0
  87. package/source/external/dreamlandjs/dist/vite.js.map +1 -0
  88. package/source/external/dreamlandjs/package.json +101 -0
  89. package/source/external/dreamlandjs/rollup.config.ts +302 -0
  90. package/source/external/dreamlandjs/rollup.plugins.ts +1134 -0
  91. package/source/external/dreamlandjs/src/core/consts.d.ts +16 -0
  92. package/source/external/dreamlandjs/src/core/consts.js +18 -0
  93. package/source/external/dreamlandjs/src/core/css/index.ts +111 -0
  94. package/source/external/dreamlandjs/src/core/css/selectorParser.ts +313 -0
  95. package/source/external/dreamlandjs/src/core/delegate.ts +28 -0
  96. package/source/external/dreamlandjs/src/core/index.ts +31 -0
  97. package/source/external/dreamlandjs/src/core/jsx/child.ts +91 -0
  98. package/source/external/dreamlandjs/src/core/jsx/definitions.ts +125 -0
  99. package/source/external/dreamlandjs/src/core/jsx/dom.ts +49 -0
  100. package/source/external/dreamlandjs/src/core/jsx/index.ts +289 -0
  101. package/source/external/dreamlandjs/src/core/state/index.ts +1 -0
  102. package/source/external/dreamlandjs/src/core/state/pointers.ts +310 -0
  103. package/source/external/dreamlandjs/src/core/state/state.ts +112 -0
  104. package/source/external/dreamlandjs/src/core/state/use.ts +82 -0
  105. package/source/external/dreamlandjs/src/core/utils.ts +48 -0
  106. package/source/external/dreamlandjs/src/js-runtime/index.ts +4 -0
  107. package/source/external/dreamlandjs/src/jsx-runtime/index.ts +3 -0
  108. package/source/external/dreamlandjs/src/motion/index.ts +156 -0
  109. package/source/external/dreamlandjs/src/router/index.tsx +394 -0
  110. package/source/external/dreamlandjs/src/router/tsconfig.json +9 -0
  111. package/source/external/dreamlandjs/src/ssr/client/index.ts +193 -0
  112. package/source/external/dreamlandjs/src/ssr/common/consts.ts +5 -0
  113. package/source/external/dreamlandjs/src/ssr/common/serialize.ts +115 -0
  114. package/source/external/dreamlandjs/src/ssr/common/types.ts +28 -0
  115. package/source/external/dreamlandjs/src/ssr/hybrid/index.ts +144 -0
  116. package/source/external/dreamlandjs/src/ssr/server/index.ts +157 -0
  117. package/source/external/dreamlandjs/src/ssr/server/tsconfig.json +7 -0
  118. package/source/external/dreamlandjs/src/ssr/server/vdom.ts +285 -0
  119. package/source/external/dreamlandjs/src/util/index.ts +10 -0
  120. package/source/external/dreamlandjs/src/util/store.ts +134 -0
  121. package/source/external/dreamlandjs/src/vite/css-minifier.ts +222 -0
  122. package/source/external/dreamlandjs/src/vite/index.ts +60 -0
  123. package/source/external/dreamlandjs/src/vite/tsconfig.json +7 -0
  124. package/source/external/dreamlandjs/tsconfig.json +15 -0
  125. package/source/package.json +48 -0
  126. package/source/packages/adrift-protocol/package.json +31 -0
  127. package/source/packages/adrift-protocol/src/index.ts +348 -0
  128. package/source/packages/adrift-protocol/tsconfig.json +18 -0
  129. package/source/packages/cdp/LICENSE +21 -0
  130. package/source/packages/cdp/README.md +47 -0
  131. package/source/packages/cdp/dist/chobitsu.js +2 -0
  132. package/source/packages/cdp/dist/chobitsu.js.map +1 -0
  133. package/source/packages/cdp/package.json +73 -0
  134. package/source/packages/cdp/script/build.js +15 -0
  135. package/source/packages/cdp/src/Chobitsu.ts +110 -0
  136. package/source/packages/cdp/src/domains/CSS.ts +378 -0
  137. package/source/packages/cdp/src/domains/CacheStorage.ts +8 -0
  138. package/source/packages/cdp/src/domains/DOM.ts +487 -0
  139. package/source/packages/cdp/src/domains/DOMDebugger.ts +109 -0
  140. package/source/packages/cdp/src/domains/DOMStorage.ts +122 -0
  141. package/source/packages/cdp/src/domains/Debugger.ts +25 -0
  142. package/source/packages/cdp/src/domains/IndexedDB.ts +207 -0
  143. package/source/packages/cdp/src/domains/Input.ts +177 -0
  144. package/source/packages/cdp/src/domains/Network.ts +251 -0
  145. package/source/packages/cdp/src/domains/Overlay.ts +230 -0
  146. package/source/packages/cdp/src/domains/Page.ts +296 -0
  147. package/source/packages/cdp/src/domains/Runtime.ts +273 -0
  148. package/source/packages/cdp/src/domains/Storage.ts +71 -0
  149. package/source/packages/cdp/src/index.d.ts +8 -0
  150. package/source/packages/cdp/src/index.ts +153 -0
  151. package/source/packages/cdp/src/lib/connector.ts +15 -0
  152. package/source/packages/cdp/src/lib/constants.ts +1 -0
  153. package/source/packages/cdp/src/lib/evaluate.ts +59 -0
  154. package/source/packages/cdp/src/lib/mutationObserver.ts +39 -0
  155. package/source/packages/cdp/src/lib/nodeManager.ts +142 -0
  156. package/source/packages/cdp/src/lib/objManager.ts +422 -0
  157. package/source/packages/cdp/src/lib/request.ts +313 -0
  158. package/source/packages/cdp/src/lib/resources.ts +59 -0
  159. package/source/packages/cdp/src/lib/scriptMananger.ts +62 -0
  160. package/source/packages/cdp/src/lib/stylesheet.ts +146 -0
  161. package/source/packages/cdp/src/lib/util.ts +105 -0
  162. package/source/packages/cdp/tsconfig.json +16 -0
  163. package/source/packages/cdp/webpack.config.js +48 -0
  164. package/source/packages/chrome/index.html +17 -0
  165. package/source/packages/chrome/package.json +41 -0
  166. package/source/packages/chrome/public/ROXXIE_NETWORK.md +22 -0
  167. package/source/packages/chrome/public/controller.sw.js +273 -0
  168. package/source/packages/chrome/public/defaultfavicon.png +0 -0
  169. package/source/packages/chrome/public/icon.png +0 -0
  170. package/source/packages/chrome/public/localcontrollersw.js +7 -0
  171. package/source/packages/chrome/public/roxxie-icon.svg +12 -0
  172. package/source/packages/chrome/public/roxxie-network.json +13 -0
  173. package/source/packages/chrome/public/sw.js +6 -0
  174. package/source/packages/chrome/src/App.tsx +269 -0
  175. package/source/packages/chrome/src/CDP.ts +285 -0
  176. package/source/packages/chrome/src/Tab/History.ts +186 -0
  177. package/source/packages/chrome/src/Tab/Tab.tsx +219 -0
  178. package/source/packages/chrome/src/Tab/screenshot.ts +66 -0
  179. package/source/packages/chrome/src/Tab/serialize.ts +221 -0
  180. package/source/packages/chrome/src/adblock/AdBlockPlugin.test.ts +159 -0
  181. package/source/packages/chrome/src/adblock/AdBlockPlugin.ts +232 -0
  182. package/source/packages/chrome/src/adblock/AdBlockService.test.ts +148 -0
  183. package/source/packages/chrome/src/adblock/AdBlockService.ts +166 -0
  184. package/source/packages/chrome/src/adblock/NOTICE.md +14 -0
  185. package/source/packages/chrome/src/adblock/assets/filters.bin +0 -0
  186. package/source/packages/chrome/src/adblock/index.ts +18 -0
  187. package/source/packages/chrome/src/assets/favicon.ts +4 -0
  188. package/source/packages/chrome/src/components/BookmarkPopup.tsx +101 -0
  189. package/source/packages/chrome/src/components/BookmarksStrip.tsx +150 -0
  190. package/source/packages/chrome/src/components/Button.tsx +99 -0
  191. package/source/packages/chrome/src/components/Checkbox.tsx +89 -0
  192. package/source/packages/chrome/src/components/DownloadsPopup.tsx +230 -0
  193. package/source/packages/chrome/src/components/Favicon.tsx +65 -0
  194. package/source/packages/chrome/src/components/Icon.tsx +29 -0
  195. package/source/packages/chrome/src/components/Input.tsx +82 -0
  196. package/source/packages/chrome/src/components/Menu.tsx +287 -0
  197. package/source/packages/chrome/src/components/Omnibar/BookmarkButton.tsx +73 -0
  198. package/source/packages/chrome/src/components/Omnibar/CircularProgress.tsx +83 -0
  199. package/source/packages/chrome/src/components/Omnibar/Omnibar.tsx +455 -0
  200. package/source/packages/chrome/src/components/Omnibar/OmnibarButton.tsx +48 -0
  201. package/source/packages/chrome/src/components/Omnibar/Omnibox.tsx +466 -0
  202. package/source/packages/chrome/src/components/Omnibar/SiteOptionsButton.tsx +52 -0
  203. package/source/packages/chrome/src/components/Omnibar/Suggestion.tsx +186 -0
  204. package/source/packages/chrome/src/components/Omnibar/UrlInput.tsx +198 -0
  205. package/source/packages/chrome/src/components/Omnibar/suggestions.ts +468 -0
  206. package/source/packages/chrome/src/components/Omnibar/utils.ts +11 -0
  207. package/source/packages/chrome/src/components/ReportBrokenSiteModal.tsx +279 -0
  208. package/source/packages/chrome/src/components/Shell.tsx +191 -0
  209. package/source/packages/chrome/src/components/SiteInformationPopup.tsx +96 -0
  210. package/source/packages/chrome/src/components/SmallIconButton.tsx +36 -0
  211. package/source/packages/chrome/src/components/StartScreen.tsx +386 -0
  212. package/source/packages/chrome/src/components/TabStrip/DragTab.tsx +546 -0
  213. package/source/packages/chrome/src/components/TabStrip/Sidebar.tsx +820 -0
  214. package/source/packages/chrome/src/components/TabStrip/TabHoverCard.tsx +87 -0
  215. package/source/packages/chrome/src/components/TabStrip/TabStrip.tsx +510 -0
  216. package/source/packages/chrome/src/components/TopSiteButton.tsx +234 -0
  217. package/source/packages/chrome/src/consts.ts +3 -0
  218. package/source/packages/chrome/src/icons.ts +70 -0
  219. package/source/packages/chrome/src/index.ts +168 -0
  220. package/source/packages/chrome/src/migrations/0-from-legacy.ts +6 -0
  221. package/source/packages/chrome/src/migrations/1-vertical-tab-settings.ts +15 -0
  222. package/source/packages/chrome/src/migrations/index.ts +42 -0
  223. package/source/packages/chrome/src/pages/AboutPage.tsx +37 -0
  224. package/source/packages/chrome/src/pages/DownloadsPage.tsx +133 -0
  225. package/source/packages/chrome/src/pages/HistoryPage.tsx +99 -0
  226. package/source/packages/chrome/src/pages/NewTabPage.tsx +264 -0
  227. package/source/packages/chrome/src/pages/PlaygroundPage.tsx +43 -0
  228. package/source/packages/chrome/src/pages/SettingsPage.tsx +1931 -0
  229. package/source/packages/chrome/src/proxy/Controller.ts +331 -0
  230. package/source/packages/chrome/src/proxy/ProxyFrame.ts +26 -0
  231. package/source/packages/chrome/src/proxy/cache.ts +487 -0
  232. package/source/packages/chrome/src/proxy/codec.ts +11 -0
  233. package/source/packages/chrome/src/proxy/contextitems.ts +180 -0
  234. package/source/packages/chrome/src/proxy/index.ts +5 -0
  235. package/source/packages/chrome/src/proxy/roxxie.ts +85 -0
  236. package/source/packages/chrome/src/proxy/scramjet.ts +642 -0
  237. package/source/packages/chrome/src/reset.css +124 -0
  238. package/source/packages/chrome/src/runtime-base.ts +16 -0
  239. package/source/packages/chrome/src/sentry.tsx +45 -0
  240. package/source/packages/chrome/src/services/DownloadsService.ts +136 -0
  241. package/source/packages/chrome/src/services/FaviconService.ts +161 -0
  242. package/source/packages/chrome/src/services/KVWrapper.ts +169 -0
  243. package/source/packages/chrome/src/services/ProfileService.ts +94 -0
  244. package/source/packages/chrome/src/services/Service.ts +10 -0
  245. package/source/packages/chrome/src/services/SettingsService.ts +108 -0
  246. package/source/packages/chrome/src/services/TabsService.ts +161 -0
  247. package/source/packages/chrome/src/startup.test.ts +129 -0
  248. package/source/packages/chrome/src/startup.ts +161 -0
  249. package/source/packages/chrome/src/style.css +229 -0
  250. package/source/packages/chrome/src/themes.ts +756 -0
  251. package/source/packages/chrome/src/util/StatefulClass.ts +31 -0
  252. package/source/packages/chrome/src/util/index.ts +74 -0
  253. package/source/packages/chrome/src/util/memoize.ts +13 -0
  254. package/source/packages/chrome/src/vite-env.d.ts +16 -0
  255. package/source/packages/chrome/tsconfig.json +30 -0
  256. package/source/packages/chrome/vite.config.ts +47 -0
  257. package/source/packages/inject/package.json +20 -0
  258. package/source/packages/inject/src/context.ts +194 -0
  259. package/source/packages/inject/src/emulators/alwaysLastBubble.ts +168 -0
  260. package/source/packages/inject/src/emulators/anchors.ts +55 -0
  261. package/source/packages/inject/src/emulators/contextmenu.ts +46 -0
  262. package/source/packages/inject/src/emulators/history.ts +51 -0
  263. package/source/packages/inject/src/emulators/titlewatcher.ts +42 -0
  264. package/source/packages/inject/src/emulators/windowopen.ts +134 -0
  265. package/source/packages/inject/src/errorpage/errorpage.css +234 -0
  266. package/source/packages/inject/src/errorpage/errorpage.html +29 -0
  267. package/source/packages/inject/src/errorpage/errorpage.ts +76 -0
  268. package/source/packages/inject/src/index.ts +62 -0
  269. package/source/packages/inject/src/transport.ts +97 -0
  270. package/source/packages/inject/src/types.d.ts +136 -0
  271. package/source/packages/roxxie-transport/package.json +36 -0
  272. package/source/packages/roxxie-transport/src/binary.ts +398 -0
  273. package/source/packages/roxxie-transport/src/config.ts +254 -0
  274. package/source/packages/roxxie-transport/src/connection.ts +767 -0
  275. package/source/packages/roxxie-transport/src/index.ts +5 -0
  276. package/source/packages/roxxie-transport/src/tracker.ts +651 -0
  277. package/source/packages/roxxie-transport/src/transport.ts +414 -0
  278. package/source/packages/roxxie-transport/tsconfig.json +18 -0
  279. package/source/packages/scramjet/packages/controller/package.json +37 -0
  280. package/source/packages/scramjet/packages/controller/src/index.ts +861 -0
  281. package/source/packages/scramjet/packages/controller/src/inject.ts +365 -0
  282. package/source/packages/scramjet/packages/controller/src/sw.ts +231 -0
  283. package/source/packages/scramjet/packages/controller/src/symbols.ts +1 -0
  284. package/source/packages/scramjet/packages/controller/src/types.d.ts +140 -0
  285. package/source/packages/scramjet/packages/controller/src/typesEntry.ts +6 -0
  286. package/source/packages/scramjet/packages/controller/src/version.ts +30 -0
  287. package/source/packages/scramjet/packages/controller/tsconfig.json +24 -0
  288. package/source/packages/scramjet/packages/core/dist/scramjet-external.mjs +57 -0
  289. package/source/packages/scramjet/packages/core/dist/scramjet.js +13599 -0
  290. package/source/packages/scramjet/packages/core/dist/scramjet.js.map +1 -0
  291. package/source/packages/scramjet/packages/core/dist/scramjet.mjs +13649 -0
  292. package/source/packages/scramjet/packages/core/dist/scramjet.mjs.map +1 -0
  293. package/source/packages/scramjet/packages/core/dist/scramjet.wasm +0 -0
  294. package/source/packages/scramjet/packages/core/dist/scramjet_bundled.js +13601 -0
  295. package/source/packages/scramjet/packages/core/dist/scramjet_bundled.js.map +1 -0
  296. package/source/packages/scramjet/packages/core/dist/scramjet_bundled.mjs +13651 -0
  297. package/source/packages/scramjet/packages/core/dist/scramjet_bundled.mjs.map +1 -0
  298. package/source/packages/scramjet/packages/core/dist/temp-types-build/index.js +23 -0
  299. package/source/packages/scramjet/packages/core/dist/temp-types-build/index.js.map +1 -0
  300. package/source/packages/scramjet/packages/core/dist/types/Tap.d.ts +39 -0
  301. package/source/packages/scramjet/packages/core/dist/types/client/client.d.ts +115 -0
  302. package/source/packages/scramjet/packages/core/dist/types/client/entry.d.ts +5 -0
  303. package/source/packages/scramjet/packages/core/dist/types/client/events.d.ts +10 -0
  304. package/source/packages/scramjet/packages/core/dist/types/client/helpers.d.ts +1 -0
  305. package/source/packages/scramjet/packages/core/dist/types/client/index.d.ts +7 -0
  306. package/source/packages/scramjet/packages/core/dist/types/client/location.d.ts +2 -0
  307. package/source/packages/scramjet/packages/core/dist/types/client/shared/eval.d.ts +3 -0
  308. package/source/packages/scramjet/packages/core/dist/types/client/shared/sourcemaps.d.ts +19 -0
  309. package/source/packages/scramjet/packages/core/dist/types/client/shared/wrap.d.ts +4 -0
  310. package/source/packages/scramjet/packages/core/dist/types/client/singletonbox.d.ts +18 -0
  311. package/source/packages/scramjet/packages/core/dist/types/fetch/body.d.ts +3 -0
  312. package/source/packages/scramjet/packages/core/dist/types/fetch/fetch.d.ts +7 -0
  313. package/source/packages/scramjet/packages/core/dist/types/fetch/headers.d.ts +19 -0
  314. package/source/packages/scramjet/packages/core/dist/types/fetch/index.d.ts +128 -0
  315. package/source/packages/scramjet/packages/core/dist/types/fetch/parse.d.ts +23 -0
  316. package/source/packages/scramjet/packages/core/dist/types/fetch/util.d.ts +7 -0
  317. package/source/packages/scramjet/packages/core/dist/types/index.d.ts +12 -0
  318. package/source/packages/scramjet/packages/core/dist/types/shared/cookie.d.ts +26 -0
  319. package/source/packages/scramjet/packages/core/dist/types/shared/headers.d.ts +13 -0
  320. package/source/packages/scramjet/packages/core/dist/types/shared/htmlRules.d.ts +6 -0
  321. package/source/packages/scramjet/packages/core/dist/types/shared/index.d.ts +50 -0
  322. package/source/packages/scramjet/packages/core/dist/types/shared/mime.d.ts +53 -0
  323. package/source/packages/scramjet/packages/core/dist/types/shared/refresh.d.ts +7 -0
  324. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/css.d.ts +4 -0
  325. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/html.d.ts +33 -0
  326. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/index.d.ts +6 -0
  327. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/js.d.ts +11 -0
  328. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/url.d.ts +24 -0
  329. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/wasm.d.ts +7 -0
  330. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/worker.d.ts +3 -0
  331. package/source/packages/scramjet/packages/core/dist/types/shared/set-cookie-parser.d.ts +20 -0
  332. package/source/packages/scramjet/packages/core/dist/types/shared/snapshot.d.ts +186 -0
  333. package/source/packages/scramjet/packages/core/dist/types/shared/sniffEncoding.d.ts +65 -0
  334. package/source/packages/scramjet/packages/core/dist/types/shared/util.d.ts +2 -0
  335. package/source/packages/scramjet/packages/core/dist/types/symbols.d.ts +6 -0
  336. package/source/packages/scramjet/packages/core/dist/types/types.d.ts +60 -0
  337. package/source/packages/scramjet/packages/core/dist/types/typesEntry.d.ts +5 -0
  338. package/source/packages/scramjet/packages/core/lib/index.cjs +7 -0
  339. package/source/packages/scramjet/packages/core/lib/index.d.ts +8 -0
  340. package/source/packages/scramjet/packages/core/package.json +69 -0
  341. package/source/packages/scramjet/packages/core/rewriter/Cargo.lock +1985 -0
  342. package/source/packages/scramjet/packages/core/rewriter/Cargo.toml +20 -0
  343. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/Cargo.toml +15 -0
  344. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/analyze.rs +1118 -0
  345. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/ast_table.rs +927 -0
  346. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/helper_index.rs +556 -0
  347. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/lib.rs +455 -0
  348. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/reachability.rs +85 -0
  349. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/templates.rs +192 -0
  350. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/witness.rs +597 -0
  351. package/source/packages/scramjet/packages/core/rewriter/js/Cargo.toml +18 -0
  352. package/source/packages/scramjet/packages/core/rewriter/js/src/cfg.rs +45 -0
  353. package/source/packages/scramjet/packages/core/rewriter/js/src/changes.rs +379 -0
  354. package/source/packages/scramjet/packages/core/rewriter/js/src/lib.rs +171 -0
  355. package/source/packages/scramjet/packages/core/rewriter/js/src/rewrite.rs +290 -0
  356. package/source/packages/scramjet/packages/core/rewriter/js/src/visitor.rs +967 -0
  357. package/source/packages/scramjet/packages/core/rewriter/native/Cargo.toml +22 -0
  358. package/source/packages/scramjet/packages/core/rewriter/native/src/main.rs +166 -0
  359. package/source/packages/scramjet/packages/core/rewriter/native/src/rewriter.rs +161 -0
  360. package/source/packages/scramjet/packages/core/rewriter/native/src/test_runner.rs +156 -0
  361. package/source/packages/scramjet/packages/core/rewriter/rust-toolchain.toml +5 -0
  362. package/source/packages/scramjet/packages/core/rewriter/rustfmt.toml +2 -0
  363. package/source/packages/scramjet/packages/core/rewriter/transform/Cargo.toml +16 -0
  364. package/source/packages/scramjet/packages/core/rewriter/transform/src/lib.rs +242 -0
  365. package/source/packages/scramjet/packages/core/rewriter/transform/src/transform.rs +123 -0
  366. package/source/packages/scramjet/packages/core/rewriter/wasm/Cargo.toml +22 -0
  367. package/source/packages/scramjet/packages/core/rewriter/wasm/build.sh +128 -0
  368. package/source/packages/scramjet/packages/core/rewriter/wasm/src/error.rs +56 -0
  369. package/source/packages/scramjet/packages/core/rewriter/wasm/src/jsr.rs +125 -0
  370. package/source/packages/scramjet/packages/core/rewriter/wasm/src/lib.rs +144 -0
  371. package/source/packages/scramjet/packages/core/src/Tap.ts +166 -0
  372. package/source/packages/scramjet/packages/core/src/client/client.ts +916 -0
  373. package/source/packages/scramjet/packages/core/src/client/dom/attr.ts +94 -0
  374. package/source/packages/scramjet/packages/core/src/client/dom/beacon.ts +11 -0
  375. package/source/packages/scramjet/packages/core/src/client/dom/cookie.ts +21 -0
  376. package/source/packages/scramjet/packages/core/src/client/dom/css.ts +106 -0
  377. package/source/packages/scramjet/packages/core/src/client/dom/document.ts +140 -0
  378. package/source/packages/scramjet/packages/core/src/client/dom/element.ts +783 -0
  379. package/source/packages/scramjet/packages/core/src/client/dom/fontface.ts +11 -0
  380. package/source/packages/scramjet/packages/core/src/client/dom/fragments.ts +32 -0
  381. package/source/packages/scramjet/packages/core/src/client/dom/history.ts +35 -0
  382. package/source/packages/scramjet/packages/core/src/client/dom/open.ts +59 -0
  383. package/source/packages/scramjet/packages/core/src/client/dom/origin.ts +13 -0
  384. package/source/packages/scramjet/packages/core/src/client/dom/performance.ts +50 -0
  385. package/source/packages/scramjet/packages/core/src/client/dom/protocol.ts +17 -0
  386. package/source/packages/scramjet/packages/core/src/client/dom/storage.ts +107 -0
  387. package/source/packages/scramjet/packages/core/src/client/entry.ts +12 -0
  388. package/source/packages/scramjet/packages/core/src/client/events.ts +10 -0
  389. package/source/packages/scramjet/packages/core/src/client/helpers.ts +7 -0
  390. package/source/packages/scramjet/packages/core/src/client/index.ts +7 -0
  391. package/source/packages/scramjet/packages/core/src/client/location.ts +139 -0
  392. package/source/packages/scramjet/packages/core/src/client/shared/antiantidebugger.ts +20 -0
  393. package/source/packages/scramjet/packages/core/src/client/shared/blob.ts +35 -0
  394. package/source/packages/scramjet/packages/core/src/client/shared/caches.ts +31 -0
  395. package/source/packages/scramjet/packages/core/src/client/shared/chrome.ts +90 -0
  396. package/source/packages/scramjet/packages/core/src/client/shared/err.ts +55 -0
  397. package/source/packages/scramjet/packages/core/src/client/shared/error.ts +42 -0
  398. package/source/packages/scramjet/packages/core/src/client/shared/eval.ts +40 -0
  399. package/source/packages/scramjet/packages/core/src/client/shared/event.ts +215 -0
  400. package/source/packages/scramjet/packages/core/src/client/shared/function.ts +59 -0
  401. package/source/packages/scramjet/packages/core/src/client/shared/import.ts +46 -0
  402. package/source/packages/scramjet/packages/core/src/client/shared/indexeddb.ts +18 -0
  403. package/source/packages/scramjet/packages/core/src/client/shared/opfs.ts +27 -0
  404. package/source/packages/scramjet/packages/core/src/client/shared/postmessage.ts +113 -0
  405. package/source/packages/scramjet/packages/core/src/client/shared/realm.ts +26 -0
  406. package/source/packages/scramjet/packages/core/src/client/shared/requests/eventsource.ts +17 -0
  407. package/source/packages/scramjet/packages/core/src/client/shared/requests/fetch.ts +67 -0
  408. package/source/packages/scramjet/packages/core/src/client/shared/requests/websocket.ts +389 -0
  409. package/source/packages/scramjet/packages/core/src/client/shared/requests/xmlhttprequest.ts +163 -0
  410. package/source/packages/scramjet/packages/core/src/client/shared/settimeout.ts +20 -0
  411. package/source/packages/scramjet/packages/core/src/client/shared/sourcemaps.ts +203 -0
  412. package/source/packages/scramjet/packages/core/src/client/shared/worker.ts +72 -0
  413. package/source/packages/scramjet/packages/core/src/client/shared/wrap.ts +197 -0
  414. package/source/packages/scramjet/packages/core/src/client/singletonbox.ts +52 -0
  415. package/source/packages/scramjet/packages/core/src/client/worker/importScripts.ts +13 -0
  416. package/source/packages/scramjet/packages/core/src/fetch/body.ts +93 -0
  417. package/source/packages/scramjet/packages/core/src/fetch/fetch.ts +323 -0
  418. package/source/packages/scramjet/packages/core/src/fetch/headers.ts +528 -0
  419. package/source/packages/scramjet/packages/core/src/fetch/index.ts +198 -0
  420. package/source/packages/scramjet/packages/core/src/fetch/parse.ts +149 -0
  421. package/source/packages/scramjet/packages/core/src/fetch/util.ts +81 -0
  422. package/source/packages/scramjet/packages/core/src/global.d.ts +32 -0
  423. package/source/packages/scramjet/packages/core/src/index.ts +78 -0
  424. package/source/packages/scramjet/packages/core/src/log.ts +117 -0
  425. package/source/packages/scramjet/packages/core/src/shared/cookie.ts +199 -0
  426. package/source/packages/scramjet/packages/core/src/shared/headers.ts +76 -0
  427. package/source/packages/scramjet/packages/core/src/shared/htmlRules.ts +154 -0
  428. package/source/packages/scramjet/packages/core/src/shared/index.ts +79 -0
  429. package/source/packages/scramjet/packages/core/src/shared/mime.ts +234 -0
  430. package/source/packages/scramjet/packages/core/src/shared/refresh.ts +164 -0
  431. package/source/packages/scramjet/packages/core/src/shared/rewriters/css.ts +67 -0
  432. package/source/packages/scramjet/packages/core/src/shared/rewriters/html.ts +603 -0
  433. package/source/packages/scramjet/packages/core/src/shared/rewriters/index.ts +6 -0
  434. package/source/packages/scramjet/packages/core/src/shared/rewriters/js.ts +158 -0
  435. package/source/packages/scramjet/packages/core/src/shared/rewriters/url.ts +248 -0
  436. package/source/packages/scramjet/packages/core/src/shared/rewriters/wasm.ts +58 -0
  437. package/source/packages/scramjet/packages/core/src/shared/rewriters/worker.ts +37 -0
  438. package/source/packages/scramjet/packages/core/src/shared/set-cookie-parser.ts +195 -0
  439. package/source/packages/scramjet/packages/core/src/shared/snapshot.ts +245 -0
  440. package/source/packages/scramjet/packages/core/src/shared/sniffEncoding.ts +1061 -0
  441. package/source/packages/scramjet/packages/core/src/shared/util.ts +35 -0
  442. package/source/packages/scramjet/packages/core/src/symbols.ts +9 -0
  443. package/source/packages/scramjet/packages/core/src/sync.ts +63 -0
  444. package/source/packages/scramjet/packages/core/src/types.ts +66 -0
  445. package/source/packages/scramjet/packages/core/src/typesEntry.ts +6 -0
  446. package/source/packages/scramjet/packages/core/tsconfig.json +21 -0
  447. package/source/packages/scramjet/packages/rpc/index.ts +100 -0
  448. package/source/packages/scramjet/packages/rpc/package.json +7 -0
  449. package/source/packages/scramjet/packages/utils/package.json +39 -0
  450. package/source/packages/scramjet/packages/utils/src/alwaysLastBubble.ts +172 -0
  451. package/source/packages/scramjet/packages/utils/src/catch-escaped-links.ts +34 -0
  452. package/source/packages/scramjet/packages/utils/src/event-handler-plugin.ts +86 -0
  453. package/source/packages/scramjet/packages/utils/src/global.d.ts +8 -0
  454. package/source/packages/scramjet/packages/utils/src/http-cache-plugin.ts +475 -0
  455. package/source/packages/scramjet/packages/utils/src/index.ts +26 -0
  456. package/source/packages/scramjet/packages/utils/src/link-handler-plugin.ts +75 -0
  457. package/source/packages/scramjet/packages/utils/src/typesEntry.ts +5 -0
  458. package/source/packages/scramjet/packages/utils/src/url-watcher.ts +37 -0
  459. package/source/packages/scramjet/packages/utils/src/version.ts +40 -0
  460. package/source/packages/scramjet/packages/utils/tsconfig.json +11 -0
  461. package/source/packages/scramjet/patches/htmlparser2@12.0.0.patch +124 -0
  462. package/source/packages/scramjet/rspack.config.ts +613 -0
  463. package/source/packages/scramjet/tsconfig.json +11 -0
  464. package/source/packages/tracker-protocol/package.json +31 -0
  465. package/source/packages/tracker-protocol/src/index.ts +745 -0
  466. package/source/packages/tracker-protocol/tsconfig.json +18 -0
  467. package/source/pnpm-lock.yaml +12018 -0
  468. package/source/pnpm-workspace.yaml +31 -0
  469. package/source/rspack.config.ts +103 -0
  470. package/source/scripts/update-adblock-assets.mjs +164 -0
  471. package/third_party/filter-lists/LICENSE-CC-BY-SA-3.0.txt +359 -0
  472. package/third_party/filter-lists/LICENSE-GPL-3.0.txt +674 -0
  473. package/third_party/filter-lists/LICENSE-MPL-2.0.txt +375 -0
  474. package/third_party/filter-lists/README.md +24 -0
  475. package/third_party/filter-lists/easylist.txt +83088 -0
  476. package/third_party/filter-lists/easyprivacy.txt +56361 -0
  477. package/third_party/filter-lists/manifest.json +56 -0
  478. package/third_party/filter-lists/ublock-filters.txt +10937 -0
  479. package/third_party/filter-lists/ublock-privacy.txt +3209 -0
  480. package/third_party/filter-lists/ublock-resources.json +1852 -0
  481. package/third_party/filter-lists/ublock-unbreak.txt +6026 -0
@@ -0,0 +1,613 @@
1
+ import { readFileSync, writeFileSync, chmodSync } from "node:fs";
2
+ import { readFile } from "node:fs/promises";
3
+ import { join } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ const __dirname = fileURLToPath(new URL(".", import.meta.url));
6
+ import { exec, execSync } from "node:child_process";
7
+ const execAsync = promisify(exec);
8
+ import { promisify } from "node:util";
9
+ import { defineConfig } from "@rspack/cli";
10
+ import {
11
+ rspack,
12
+ type Mode,
13
+ type RspackOptions,
14
+ type WebpackCompiler,
15
+ } from "@rspack/core";
16
+ import { RsdoctorRspackPlugin } from "@rsdoctor/rspack-plugin";
17
+ import { TsCheckerRspackPlugin } from "ts-checker-rspack-plugin";
18
+ if (!process.env.CI) {
19
+ try {
20
+ writeFileSync(
21
+ ".git/hooks/pre-commit",
22
+ "pnpm format\ngit update-index --again"
23
+ );
24
+ chmodSync(".git/hooks/pre-commit", 0o755);
25
+ } catch {}
26
+ }
27
+
28
+ function extractRuntimeExportNames(source: string): string[] {
29
+ const names = new Set<string>();
30
+
31
+ // ESM bundles end with `export { __webpack_exports__X as X, ... };`
32
+ const esmMatches = source.matchAll(/export\s*\{([^}]+)\}\s*;/g);
33
+ for (const m of esmMatches) {
34
+ for (const part of m[1].split(",")) {
35
+ const trimmed = part.trim();
36
+ if (!trimmed) continue;
37
+ const asMatch = trimmed.match(/\s+as\s+([A-Za-z_$][\w$]*)\s*$/);
38
+ const name = asMatch
39
+ ? asMatch[1]
40
+ : trimmed.match(/^([A-Za-z_$][\w$]*)/)?.[1];
41
+ if (name) names.add(name);
42
+ }
43
+ }
44
+ if (names.size > 0) return [...names];
45
+
46
+ // Webpack IIFE bundles register entry exports via the *last*
47
+ // `__webpack_require__.d(__webpack_exports__, { ... })` call. In
48
+ // production builds those identifiers get minified (e.g. `r.d(o, {...})`),
49
+ // so match any `<ident>.d(<ident>, { ... })` shape.
50
+ const defMatches = [
51
+ ...source.matchAll(
52
+ /\b[A-Za-z_$][\w$]*\.d\([A-Za-z_$][\w$]*,\s*\{([\s\S]*?)\}\)/g
53
+ ),
54
+ ];
55
+ if (defMatches.length > 0) {
56
+ const last = defMatches[defMatches.length - 1][1];
57
+ for (const m of last.matchAll(/([A-Za-z_$][\w$]*)\s*:/g)) {
58
+ names.add(m[1]);
59
+ }
60
+ }
61
+ return [...names];
62
+ }
63
+
64
+ function renderExternalStub(names: string[], globalName: string): string {
65
+ const sorted = [...names].sort();
66
+ return [
67
+ "// AUTO-GENERATED by ExternalStubPlugin — do not edit.",
68
+ `// Re-exports of globalThis.${globalName} (set by the IIFE bundle).`,
69
+ `const __external = /** @type {any} */ (globalThis).${globalName};`,
70
+ "export const {",
71
+ ...sorted.map((n) => `\t${n},`),
72
+ "} = __external;",
73
+ "",
74
+ ].join("\n");
75
+ }
76
+
77
+ /**
78
+ * Generates a thin "external" stub that re-exports the entries of a globally
79
+ * assigned bundle (e.g. `self.$scramjet`). Consumers that import the package
80
+ * by its bare name pay zero source size — the stub is just a destructure of
81
+ * the global.
82
+ *
83
+ * The export list is discovered automatically by parsing the already-emitted
84
+ * bundle, so new exports flow through without any manual maintenance.
85
+ */
86
+ class ExternalStubPlugin {
87
+ bundleFilename: string;
88
+ stubFilename: string;
89
+ globalName: string;
90
+ outputDir: string;
91
+
92
+ constructor(opts: {
93
+ bundleFilename: string;
94
+ stubFilename: string;
95
+ globalName: string;
96
+ outputDir: string;
97
+ }) {
98
+ this.bundleFilename = opts.bundleFilename;
99
+ this.stubFilename = opts.stubFilename;
100
+ this.globalName = opts.globalName;
101
+ this.outputDir = opts.outputDir;
102
+ }
103
+
104
+ apply(compiler: WebpackCompiler) {
105
+ compiler.hooks.afterEmit.tap("ExternalStubPlugin", () => {
106
+ const bundlePath = join(this.outputDir, this.bundleFilename);
107
+ const stubPath = join(this.outputDir, this.stubFilename);
108
+ let source: string;
109
+ try {
110
+ source = readFileSync(bundlePath, "utf-8");
111
+ } catch (e: any) {
112
+ console.error(
113
+ `ExternalStubPlugin: cannot read ${bundlePath}: ${e.message}`
114
+ );
115
+ return;
116
+ }
117
+
118
+ const names = extractRuntimeExportNames(source);
119
+ if (names.length === 0) {
120
+ console.warn(
121
+ `ExternalStubPlugin: no exports discovered in ${bundlePath}; stub not written`
122
+ );
123
+ return;
124
+ }
125
+
126
+ const stub = renderExternalStub(names, this.globalName);
127
+ writeFileSync(stubPath, stub);
128
+ console.log(
129
+ `ExternalStubPlugin: wrote ${this.stubFilename} (${names.length} exports → globalThis.${this.globalName})`
130
+ );
131
+ });
132
+ }
133
+ }
134
+
135
+ // Custom plugin to generate TypeScript declarations
136
+ class TypeScriptDeclarationsPlugin {
137
+ dir: string;
138
+ tsconfigName: string;
139
+ useAlias: boolean;
140
+ tempDir: string;
141
+
142
+ constructor(
143
+ dir: string,
144
+ tempDir: string,
145
+ tsconfigName: string = "tsconfig.types.json",
146
+ useAlias: boolean = true
147
+ ) {
148
+ this.dir = dir;
149
+ this.tempDir = tempDir;
150
+ this.tsconfigName = tsconfigName;
151
+ this.useAlias = useAlias;
152
+ }
153
+
154
+ apply(compiler: WebpackCompiler) {
155
+ if (process.env.SKIP_DECLARATIONS) return;
156
+ compiler.hooks.afterEmit.tap("TypeScriptDeclarationsPlugin", () => {
157
+ (async () => {
158
+ try {
159
+ console.log(`Generating TypeScript declarations for ${this.dir}...`);
160
+ try {
161
+ const { stdout, stderr } = await execAsync(
162
+ `pnpm exec tsc --project ${this.tsconfigName}`,
163
+ { cwd: this.dir }
164
+ );
165
+ if (stdout) console.log(stdout);
166
+ if (stderr && !stderr.includes("TS")) console.error(stderr);
167
+ } catch (tscError: any) {
168
+ // tsc exits with error code if there are TS errors, but still generates files
169
+ // Only log if it's not a TypeScript compilation error
170
+ if (tscError.code !== 2) {
171
+ throw tscError;
172
+ }
173
+ // if (tscError.stdout) console.log(tscError.stdout);
174
+ // if (tscError.stderr) console.warn(tscError.stderr);
175
+ }
176
+
177
+ if (this.useAlias) {
178
+ const aliasResult = await execAsync(
179
+ `pnpm exec tsc-alias --project ${this.tsconfigName}`,
180
+ { cwd: this.dir }
181
+ );
182
+ if (aliasResult.stdout) console.log(aliasResult.stdout);
183
+ if (aliasResult.stderr) console.error(aliasResult.stderr);
184
+ }
185
+
186
+ try {
187
+ await execAsync(`rm -rf ${this.tempDir}`, { cwd: this.dir });
188
+ } catch (e) {}
189
+
190
+ console.log(
191
+ `TypeScript declarations generated successfully for ${this.dir}`
192
+ );
193
+ } catch (error: any) {
194
+ console.error(
195
+ `Error generating TypeScript declarations for ${this.dir}:`,
196
+ error.message
197
+ );
198
+ }
199
+ })();
200
+ });
201
+ }
202
+ }
203
+
204
+ // Project directories
205
+ const scramjetdir = join(__dirname, "packages/core");
206
+ const controllerdir = join(__dirname, "packages/controller");
207
+ const utilsdir = join(__dirname, "packages/utils");
208
+
209
+ const wasmPath = join(scramjetdir, "dist/scramjet.wasm");
210
+ let wasmB64: string;
211
+ const wasmBuf = await readFile(wasmPath);
212
+ wasmB64 = wasmBuf.toString("base64");
213
+
214
+ export const tsloader = {
215
+ test: /\.ts$/,
216
+ loader: "builtin:swc-loader",
217
+ exclude: ["/node_modules/"],
218
+ options: {
219
+ jsc: {
220
+ parser: {
221
+ syntax: "typescript",
222
+ },
223
+ target: "es2022",
224
+ },
225
+ module: {
226
+ type: "es6",
227
+ strict: false,
228
+ strictMode: false,
229
+ },
230
+ },
231
+ type: "javascript/auto",
232
+ };
233
+ //TODO: replace this
234
+ function deepmerge<T extends any>(target: T, source: Partial<T>): T {
235
+ // this whole function is a hack, ignore all of the type errors
236
+ //@ts-ignore this whole function is a hack
237
+ const output = { ...target };
238
+ if (isObject(target) && isObject(source)) {
239
+ Object.keys(source).forEach((key) => {
240
+ //@ts-ignore this whole function is a hack
241
+ if (isObject(source[key])) {
242
+ //@ts-ignore this whole function is a hack
243
+ if (!(key in target)) Object.assign(output, { [key]: source[key] });
244
+ //@ts-ignore this whole function is a hack
245
+ else output[key] = deepmerge(target[key], source[key]);
246
+ } else {
247
+ //@ts-ignore this whole function is a hack
248
+ Object.assign(output, { [key]: source[key] });
249
+ }
250
+ });
251
+ }
252
+ return output;
253
+ }
254
+
255
+ function isObject(item: any): item is Record<string, unknown> {
256
+ return item && typeof item === "object" && !Array.isArray(item);
257
+ }
258
+ const rsDoctorPlugin = process.env.DEBUG
259
+ ? new RsdoctorRspackPlugin({
260
+ supports: {
261
+ parseBundle: true,
262
+ banner: true,
263
+ },
264
+ })
265
+ : null;
266
+ const createGenericConfig = (options: Partial<RspackOptions>) => {
267
+ const def = {
268
+ devtool: "source-map",
269
+ mode: "development" as Mode,
270
+ resolve: {
271
+ extensions: [".ts", ".js"],
272
+ },
273
+ module: {
274
+ rules: [tsloader],
275
+ parser: {
276
+ javascript: {
277
+ overrideStrict: "non-strict",
278
+ dynamicImportMode: "eager",
279
+ },
280
+ },
281
+ },
282
+ plugins: rsDoctorPlugin ? [rsDoctorPlugin] : [],
283
+ optimization: {
284
+ minimizer: [
285
+ new rspack.SwcJsMinimizerRspackPlugin({
286
+ minimizerOptions: {
287
+ module: options.output?.libraryTarget === "module",
288
+ },
289
+ }),
290
+ ],
291
+ },
292
+ };
293
+ return defineConfig(
294
+ deepmerge<RspackOptions>(def as unknown as RspackOptions, options)
295
+ );
296
+ };
297
+
298
+ type ScramjetBuildConfig = {
299
+ entry: RspackOptions["entry"];
300
+ output: RspackOptions["output"];
301
+ rewriterWasm: string;
302
+ extraConfig?: Partial<RspackOptions>;
303
+ name: string;
304
+ };
305
+ // Common configuration options for scramjet builds
306
+ const createScramjetConfig = (options: ScramjetBuildConfig) => {
307
+ const { entry, output, rewriterWasm, extraConfig = {}, name } = options;
308
+
309
+ return createGenericConfig({
310
+ name,
311
+ entry,
312
+ resolve: {
313
+ alias: {
314
+ "@rewriters": join(scramjetdir, "src/shared/rewriters"),
315
+ "@client": join(scramjetdir, "src/client"),
316
+ "@": join(scramjetdir, "src"),
317
+ },
318
+ },
319
+ output,
320
+ plugins: [
321
+ // new TsCheckerRspackPlugin({
322
+ // typescript: {
323
+ // configFile: resolve(scramjetdir, "tsconfig.json"),
324
+ // },
325
+ // }),
326
+ new rspack.ProvidePlugin({
327
+ dbg: [join(scramjetdir, "src/log.ts"), "default"],
328
+ }),
329
+ new rspack.DefinePlugin({
330
+ REWRITERWASM: rewriterWasm,
331
+ }),
332
+ new rspack.DefinePlugin({
333
+ VERSION: JSON.stringify(sjpackagemeta.version),
334
+ }),
335
+ new rspack.DefinePlugin({
336
+ COMMITHASH: (() => {
337
+ try {
338
+ const hash = JSON.stringify(
339
+ execSync("git rev-parse --short HEAD", {
340
+ encoding: "utf-8",
341
+ }).replace(/\r?\n|\r/g, "")
342
+ );
343
+
344
+ return hash;
345
+ } catch {
346
+ return JSON.stringify("unknown");
347
+ }
348
+ })(),
349
+ }),
350
+ new rspack.DefinePlugin({
351
+ BUILDDATE: JSON.stringify(new Date().toISOString()),
352
+ }),
353
+ ],
354
+ target: "webworker",
355
+ ignoreWarnings: [
356
+ {
357
+ module: /src\/entry\.ts/,
358
+ message:
359
+ /Critical dependency: the request of a dependency is an expression/,
360
+ },
361
+ ],
362
+ ...extraConfig,
363
+ });
364
+ };
365
+
366
+ const sjpackagemeta = JSON.parse(
367
+ await readFile(join(scramjetdir, "package.json"), "utf-8")
368
+ );
369
+ // IIFE build that does NOT bundle the wasm, exposes global $scramjet
370
+ const iifeConfig = createScramjetConfig({
371
+ name: "scramjet-iife",
372
+ entry: {
373
+ main: join(scramjetdir, "src/index.ts"),
374
+ },
375
+ output: {
376
+ filename: "scramjet.js",
377
+ path: join(scramjetdir, "dist"),
378
+ iife: true,
379
+ library: {
380
+ type: "assign",
381
+ name: "self.$scramjet",
382
+ },
383
+ },
384
+ rewriterWasm: "undefined",
385
+ extraConfig: {
386
+ performance: {
387
+ hints: false,
388
+ },
389
+ },
390
+ });
391
+
392
+ // IIFE build that BUNDLES the wasm and exposes global $scramjet
393
+ const iifeBundledConfig = createScramjetConfig({
394
+ name: "scramjet-iife-bundled",
395
+ entry: {
396
+ bundled: join(scramjetdir, "src/index.ts"),
397
+ },
398
+ output: {
399
+ filename: "scramjet_bundled.js",
400
+ path: join(scramjetdir, "dist"),
401
+ iife: true,
402
+ library: {
403
+ type: "assign",
404
+ name: "self.$scramjet",
405
+ },
406
+ },
407
+ rewriterWasm: JSON.stringify(wasmB64),
408
+ extraConfig: {
409
+ performance: {
410
+ hints: false,
411
+ },
412
+ },
413
+ });
414
+
415
+ // no wasm bundled, esmodule
416
+ const moduleConfig = createScramjetConfig({
417
+ name: "scramjet-esmodule",
418
+ entry: {
419
+ bundle: join(scramjetdir, "src/index.ts"),
420
+ },
421
+ output: {
422
+ filename: "scramjet.mjs",
423
+ path: join(scramjetdir, "dist"),
424
+ libraryTarget: "module",
425
+ iife: false,
426
+ },
427
+ // do not embed the wasm in this build
428
+ rewriterWasm: "undefined",
429
+ extraConfig: {
430
+ performance: {
431
+ hints: false,
432
+ },
433
+ experiments: {
434
+ outputModule: true,
435
+ },
436
+ },
437
+ });
438
+ moduleConfig.plugins!.push(
439
+ new ExternalStubPlugin({
440
+ bundleFilename: "scramjet.mjs",
441
+ stubFilename: "scramjet-external.mjs",
442
+ globalName: "$scramjet",
443
+ outputDir: join(scramjetdir, "dist"),
444
+ })
445
+ );
446
+
447
+ // wasm bundled, esmodule
448
+ const moduleBundledConfig = createScramjetConfig({
449
+ name: "scramjet-esmodule-bundled",
450
+ entry: {
451
+ bundle: join(scramjetdir, "src/index.ts"),
452
+ },
453
+ output: {
454
+ filename: "scramjet_bundled.mjs",
455
+ path: join(scramjetdir, "dist"),
456
+ libraryTarget: "module",
457
+ iife: false,
458
+ },
459
+ rewriterWasm: JSON.stringify(wasmB64),
460
+ extraConfig: {
461
+ performance: {
462
+ hints: false,
463
+ },
464
+ experiments: {
465
+ outputModule: true,
466
+ },
467
+ },
468
+ });
469
+
470
+ // Type generation configuration
471
+ const typeGenConfig = defineConfig({
472
+ context: scramjetdir,
473
+ entry: {
474
+ index: "./src/index.ts",
475
+ },
476
+ output: {
477
+ path: join(scramjetdir, "dist/temp-types-build"),
478
+ filename: "[name].js",
479
+ },
480
+ plugins: [
481
+ new TypeScriptDeclarationsPlugin(
482
+ scramjetdir,
483
+ "dist/temp-types-build",
484
+ "tsconfig.types.json",
485
+ true
486
+ ),
487
+ ],
488
+ resolve: {
489
+ extensions: [".ts", ".js"],
490
+ alias: {
491
+ "@rewriters": join(scramjetdir, "src/shared/rewriters"),
492
+ "@client": join(scramjetdir, "src/client"),
493
+ "@": join(scramjetdir, "src"),
494
+ },
495
+ },
496
+ module: {
497
+ rules: [tsloader],
498
+ },
499
+ });
500
+
501
+ // Load WASM for rewriter
502
+ const controllermeta = JSON.parse(
503
+ await readFile(join(controllerdir, "package.json"), "utf-8")
504
+ );
505
+ const controllerVersionDefines = new rspack.DefinePlugin({
506
+ SCRAMJET_EXPECTED_VERSION: JSON.stringify(sjpackagemeta.version),
507
+ CONTROLLER_VERSION: JSON.stringify(controllermeta.version),
508
+ });
509
+
510
+ const controllerConfig = createGenericConfig({
511
+ name: "scramjet-controller",
512
+ dependencies: ["scramjet-esmodule"],
513
+ entry: {
514
+ api: join(controllerdir, "src/index.ts"),
515
+ inject: join(controllerdir, "src/inject.ts"),
516
+ sw: join(controllerdir, "src/sw.ts"),
517
+ },
518
+ output: {
519
+ filename: "controller.[name].js",
520
+ path: join(controllerdir, "dist"),
521
+ iife: true,
522
+ library: {
523
+ type: "var",
524
+ name: "$scramjetController",
525
+ },
526
+ },
527
+ target: "web",
528
+ plugins: [
529
+ controllerVersionDefines,
530
+ new ExternalStubPlugin({
531
+ bundleFilename: "controller.api.js",
532
+ stubFilename: "controller-external.mjs",
533
+ globalName: "$scramjetController",
534
+ outputDir: join(controllerdir, "dist"),
535
+ }),
536
+ new TypeScriptDeclarationsPlugin(
537
+ controllerdir,
538
+ "dist/temp-types-build",
539
+ "tsconfig.types.json",
540
+ false
541
+ ),
542
+ ],
543
+ });
544
+
545
+ const utilsVersionDefines = new rspack.DefinePlugin({
546
+ SCRAMJET_EXPECTED_VERSION: JSON.stringify(sjpackagemeta.version),
547
+ CONTROLLER_EXPECTED_VERSION: JSON.stringify(controllermeta.version),
548
+ });
549
+
550
+ const utilsIifeConfig = createGenericConfig({
551
+ name: "scramjet-utils-iife",
552
+ dependencies: ["scramjet-esmodule", "scramjet-controller"],
553
+ entry: {
554
+ main: join(utilsdir, "src/index.ts"),
555
+ },
556
+ output: {
557
+ filename: "scramjet-utils.js",
558
+ path: join(utilsdir, "dist"),
559
+ iife: true,
560
+ library: {
561
+ type: "assign",
562
+ name: "self.$scramjetUtils",
563
+ },
564
+ },
565
+ target: "web",
566
+ plugins: [
567
+ utilsVersionDefines,
568
+ new TypeScriptDeclarationsPlugin(
569
+ utilsdir,
570
+ "dist/temp-types-build",
571
+ "tsconfig.types.json",
572
+ false
573
+ ),
574
+ ],
575
+ });
576
+
577
+ const utilsModuleConfig = createGenericConfig({
578
+ name: "scramjet-utils-esmodule",
579
+ dependencies: ["scramjet-esmodule", "scramjet-controller"],
580
+ entry: {
581
+ main: join(utilsdir, "src/index.ts"),
582
+ },
583
+ output: {
584
+ filename: "scramjet-utils.mjs",
585
+ path: join(utilsdir, "dist"),
586
+ libraryTarget: "module",
587
+ iife: false,
588
+ },
589
+ experiments: {
590
+ outputModule: true,
591
+ },
592
+ target: "web",
593
+ plugins: [
594
+ utilsVersionDefines,
595
+ new TypeScriptDeclarationsPlugin(
596
+ utilsdir,
597
+ "dist/temp-types-build",
598
+ "tsconfig.types.json",
599
+ false
600
+ ),
601
+ ],
602
+ });
603
+
604
+ export default [
605
+ iifeConfig,
606
+ iifeBundledConfig,
607
+ moduleConfig,
608
+ moduleBundledConfig,
609
+ typeGenConfig,
610
+ controllerConfig,
611
+ utilsIifeConfig,
612
+ utilsModuleConfig,
613
+ ];
@@ -0,0 +1,11 @@
1
+ {
2
+ "compilerOptions": {
3
+ "module": "nodenext",
4
+ "moduleResolution": "nodenext",
5
+ "noEmit": true,
6
+ "allowImportingTsExtensions": true,
7
+ "lib": ["ES2022", "dom", "dom.iterable"],
8
+ "target": "ES2022"
9
+ },
10
+ "include": ["devlib.ts"]
11
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "roxxie-transports-tracker-protocol",
3
+ "version": "1.0.0",
4
+ "description": "Browser-safe control-plane contracts for the Roxxie tracker, nodes, and browsers",
5
+ "type": "module",
6
+ "sideEffects": false,
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/src/index.d.ts",
10
+ "import": "./dist/src/index.js"
11
+ }
12
+ },
13
+ "files": [
14
+ "dist/src"
15
+ ],
16
+ "scripts": {
17
+ "build": "tsc -p tsconfig.json",
18
+ "test": "npm run build && node --test dist/test/*.test.js"
19
+ },
20
+ "engines": {
21
+ "node": ">=20"
22
+ },
23
+ "publishConfig": {
24
+ "access": "public"
25
+ },
26
+ "license": "AGPL-3.0-only",
27
+ "devDependencies": {
28
+ "@types/node": "^20.0.0",
29
+ "typescript": "~5.9.3"
30
+ }
31
+ }