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,39 @@
1
+ type Description = {
2
+ context?: object;
3
+ props?: object;
4
+ };
5
+ type Callback<T extends Description> = (context: T["context"], props: T["props"]) => void | Promise<void>;
6
+ export type TapOrder = {
7
+ /** Run before these plugins. */
8
+ before?: readonly string[];
9
+ /** Run after these plugins. */
10
+ after?: readonly string[];
11
+ };
12
+ type CallbackInfo<T extends Description> = {
13
+ callback: Callback<T>;
14
+ plugin: Plugin;
15
+ order: TapOrder;
16
+ };
17
+ type InternalHookDescription = {
18
+ tap: TapInternal;
19
+ key: string;
20
+ };
21
+ type TapInternal = {
22
+ callbacks: Record<string, CallbackInfo<Description>[]>;
23
+ };
24
+ export type TapInstance<T extends Record<string, Description>> = {
25
+ [K in keyof T]: T[K] & InternalHookDescription;
26
+ };
27
+ export declare class Plugin {
28
+ name: string;
29
+ readonly tapOrder: TapOrder;
30
+ constructor(name: string, tapOrder?: TapOrder);
31
+ tap<T extends Description>(hook: T, callback: Callback<T>, order?: TapOrder): void;
32
+ }
33
+ export declare class Tap {
34
+ static dispatch<T extends Description>(hook: T, context: T["context"], props: T["props"]): Promise<void[]> | null;
35
+ static tap<T extends Description>(hook: T, callback: Callback<T>, plugin?: Plugin, order?: TapOrder): void;
36
+ static create<T extends Record<string, Description>>(): TapInstance<T>;
37
+ static getTappers<T extends Description>(hook: T): Plugin[];
38
+ }
39
+ export {};
@@ -0,0 +1,115 @@
1
+ import { BareCompatibleClient, ProxyTransport, RawHeaders } from "@mercuryworkshop/proxy-transports";
2
+ import { LifecycleHooks } from "./events";
3
+ import { RewriteUrlOptions, type URLMeta } from "../shared/rewriters/url";
4
+ import { HtmlRewriterHooks, ScramjetContext, ScramjetHeaders } from "../shared";
5
+ import { SingletonBox } from "./singletonbox";
6
+ import { ScramjetConfig } from "../types";
7
+ import { type CookieSyncEntry, type CookieSyncOptions, TrackedHistoryState } from "../fetch";
8
+ import { AnyFunction } from "../types";
9
+ import { _URL } from "../shared/snapshot";
10
+ type IfEquals<T, U, Y = unknown, N = never> = (<G>() => G extends T ? 1 : 2) extends <G>() => G extends U ? 1 : 2 ? Y : N;
11
+ type Traverse<O extends Record<any, any>, P extends string> = P extends `${infer K}.${infer R}` ? Traverse<O[K], R> : O[P];
12
+ type GlobalTraverse<P extends string> = Traverse<GlobalThis & Record<string, any>, P>;
13
+ type ProxyApplyThis<T extends string> = unknown extends ThisParameterType<Extract<GlobalTraverse<T>, AnyFunction>> ? T extends `${infer ClassName}.prototype.${string}` ? GlobalTraverse<ClassName> extends {
14
+ prototype: infer Proto;
15
+ } ? Proto : unknown : unknown : ThisParameterType<Extract<GlobalTraverse<T>, AnyFunction>>;
16
+ export type ScramjetClientInit = {
17
+ context: ScramjetContext;
18
+ transport: ProxyTransport;
19
+ sendSetCookie: (cookies: CookieSyncEntry[], options?: CookieSyncOptions) => Promise<void>;
20
+ shouldBlockMessageEvent?: (ev: MessageEvent) => boolean;
21
+ hookSubcontext: (self: Self, frame?: HTMLIFrameElement) => ScramjetClient;
22
+ initHeaders: RawHeaders;
23
+ history: TrackedHistoryState[];
24
+ };
25
+ type NativeStore = {
26
+ store: Record<string, any>;
27
+ construct: <T extends string>(target: T, ...args: ConstructorParameters<GlobalTraverse<T>>) => InstanceType<GlobalTraverse<T>>;
28
+ call: <T extends string>(target: T, that: ProxyApplyThis<T>, ...args: Parameters<GlobalTraverse<T>>) => ReturnType<GlobalTraverse<T>>;
29
+ };
30
+ type DescriptorStore = {
31
+ store: Record<string, PropertyDescriptor>;
32
+ get: <T extends string>(target: T, that: any) => GlobalTraverse<T>;
33
+ set: <T extends string>(target: T, that: any, value: GlobalTraverse<T>) => void;
34
+ };
35
+ export type ProxyCtx<T extends string = string, U extends "construct" | "apply" = "apply"> = {
36
+ fn: GlobalTraverse<T>;
37
+ this: IfEquals<U, "construct", null, ProxyApplyThis<T>>;
38
+ args: IfEquals<U, "construct", ConstructorParameters<GlobalTraverse<T>>, Parameters<GlobalTraverse<T>>>;
39
+ newTarget: IfEquals<U, "construct", GlobalTraverse<T>, null>;
40
+ return: (r: IfEquals<U, "construct", InstanceType<GlobalTraverse<T>>, ReturnType<GlobalTraverse<T>>>) => void;
41
+ call: () => IfEquals<U, "construct", InstanceType<GlobalTraverse<T>>, ReturnType<GlobalTraverse<T>>>;
42
+ };
43
+ export type Proxy<T extends string = string> = {
44
+ construct?(ctx: ProxyCtx<T, "construct">): any;
45
+ apply?(ctx: ProxyCtx<T, "apply">): any;
46
+ };
47
+ export type TrapCtx<T extends string> = {
48
+ this: any;
49
+ get: () => GlobalTraverse<T>;
50
+ set: (v: GlobalTraverse<T>) => void;
51
+ };
52
+ export type Trap<T extends string> = {
53
+ writable?: boolean;
54
+ value?: any;
55
+ enumerable?: boolean;
56
+ configurable?: boolean;
57
+ get?: (ctx: TrapCtx<T>) => GlobalTraverse<T>;
58
+ set?: (ctx: TrapCtx<T>, v: GlobalTraverse<T>) => void;
59
+ };
60
+ export type ScramjetModule = {
61
+ enabled: (client: ScramjetClient) => boolean | undefined;
62
+ disabled: (client: ScramjetClient, self: GlobalThis) => void | undefined;
63
+ order: number | undefined;
64
+ default: (client: ScramjetClient, self: GlobalThis) => void;
65
+ };
66
+ export declare class ScramjetClient {
67
+ global: GlobalThis;
68
+ init: ScramjetClientInit;
69
+ locationProxy: any;
70
+ serviceWorker: ServiceWorkerContainer;
71
+ bare: BareCompatibleClient;
72
+ natives: NativeStore;
73
+ descriptors: DescriptorStore;
74
+ wrapfn: (i: any, ...args: any) => any;
75
+ eventcallbacks: Map<any, [
76
+ {
77
+ event: string;
78
+ originalCallback: AnyFunction;
79
+ proxiedCallback: AnyFunction;
80
+ }
81
+ ]>;
82
+ meta: URLMeta;
83
+ box: SingletonBox;
84
+ context: ScramjetContext;
85
+ initHeaders: ScramjetHeaders;
86
+ history: TrackedHistoryState[];
87
+ private flagCache;
88
+ hooks: {
89
+ rewriter: {
90
+ html: import("../Tap").TapInstance<HtmlRewriterHooks>;
91
+ };
92
+ lifecycle: import("../Tap").TapInstance<LifecycleHooks>;
93
+ };
94
+ constructor(global: GlobalThis, init: ScramjetClientInit);
95
+ /** Apply document injection init when a client was already installed (e.g. early contentWindow). */
96
+ syncDocumentInit(init: {
97
+ initHeaders: RawHeaders;
98
+ history: TrackedHistoryState[];
99
+ cookies?: string;
100
+ }): void;
101
+ hook(): void;
102
+ get url(): _URL;
103
+ set url(url: _URL | string);
104
+ Proxy<T extends string>(name: T, handler: Proxy<T>): void;
105
+ Proxy<const T extends readonly string[]>(name: T, handler: Proxy<T[number]>): void;
106
+ RawProxy(target: any, prop: string, handler: Proxy<any>, debugname?: string): void;
107
+ Trap<T extends string>(name: T, handler: Trap<T>): void;
108
+ Trap<const T extends readonly string[]>(name: T, handler: Trap<T[number]>): void;
109
+ RawTrap(target: any, prop: string, descriptor: Trap<any>): void;
110
+ rewriteUrl(url: string | URL, options?: RewriteUrlOptions): string;
111
+ unrewriteUrl(url: string | URL): string;
112
+ flagEnabled(flag: keyof ScramjetConfig["flags"]): boolean;
113
+ get config(): ScramjetConfig;
114
+ }
115
+ export {};
@@ -0,0 +1,5 @@
1
+ export declare const iswindow: boolean;
2
+ export declare const isworker: boolean;
3
+ export declare const issw: boolean;
4
+ export declare const isdedicated: boolean;
5
+ export declare const isshared: boolean;
@@ -0,0 +1,10 @@
1
+ export type LifecycleHooks = {
2
+ navigate: {
3
+ context: {
4
+ type: "location" | "history" | "hashchange";
5
+ };
6
+ props: {
7
+ url: string;
8
+ };
9
+ };
10
+ };
@@ -0,0 +1 @@
1
+ export declare function getOwnPropertyDescriptorHandler(target: any, prop: any): PropertyDescriptor;
@@ -0,0 +1,7 @@
1
+ export * from "./client";
2
+ export * from "./entry";
3
+ export * from "./events";
4
+ export * from "./helpers";
5
+ export * from "./location";
6
+ export * from "./index";
7
+ export * from "./location";
@@ -0,0 +1,2 @@
1
+ import { ScramjetClient } from "./index";
2
+ export declare function createLocationProxy(client: ScramjetClient, self: GlobalThis): any;
@@ -0,0 +1,3 @@
1
+ import { ScramjetClient } from "../index";
2
+ export default function (client: ScramjetClient, self: Self): void;
3
+ export declare function indirectEval(this: ScramjetClient, strict: boolean, js: any): any;
@@ -0,0 +1,19 @@
1
+ import { ScramjetClient } from "../index";
2
+ declare enum RewriteType {
3
+ Insert = 0,
4
+ Replace = 1
5
+ }
6
+ type Rewrite = {
7
+ start: number;
8
+ } & ({
9
+ type: RewriteType.Insert;
10
+ size: number;
11
+ } | {
12
+ type: RewriteType.Replace;
13
+ end: number;
14
+ str: string;
15
+ });
16
+ export type SourceMaps = Record<string, Rewrite[]>;
17
+ export declare const enabled: (client: ScramjetClient) => boolean;
18
+ export default function (client: ScramjetClient, self: Self): void;
19
+ export {};
@@ -0,0 +1,4 @@
1
+ import { ScramjetClient } from "../index";
2
+ export declare function createWrapFn(client: ScramjetClient, self: GlobalThis): (identifier: any, strict: boolean) => any;
3
+ export declare const order = 4;
4
+ export default function (client: ScramjetClient, self: GlobalThis): void;
@@ -0,0 +1,18 @@
1
+ import { IncrementalHtmlRewriter } from "../shared";
2
+ import { ScramjetClient } from "./client";
3
+ import { SourceMaps } from "./shared/sourcemaps";
4
+ export declare class SingletonBox {
5
+ ownerclient: ScramjetClient;
6
+ clients: ScramjetClient[];
7
+ globals: Map<Self, ScramjetClient>;
8
+ documents: Map<Document, ScramjetClient>;
9
+ histories: Map<History, ScramjetClient>;
10
+ locations: Map<Location, ScramjetClient>;
11
+ writeRewriters: WeakMap<Document, IncrementalHtmlRewriter>;
12
+ unproxy: Map<any, any>;
13
+ ctors: Record<string, Function[]>;
14
+ sourcemaps: SourceMaps;
15
+ constructor(ownerclient: ScramjetClient);
16
+ registerClient(client: ScramjetClient, global: Self): void;
17
+ instanceof(obj: any, name: string): boolean;
18
+ }
@@ -0,0 +1,3 @@
1
+ import { BareResponse } from "@mercuryworkshop/proxy-transports";
2
+ import { BodyType, ScramjetFetchHandler, ScramjetFetchParsed, ScramjetFetchRequest } from ".";
3
+ export declare function rewriteBody(handler: ScramjetFetchHandler, request: ScramjetFetchRequest, parsed: ScramjetFetchParsed, response: BareResponse): Promise<BodyType>;
@@ -0,0 +1,7 @@
1
+ import { BareResponse } from "@mercuryworkshop/proxy-transports";
2
+ import { ScramjetFetchHandler, ScramjetFetchParsed, ScramjetFetchRequest, ScramjetFetchResponse } from ".";
3
+ import { ScramjetHeaders } from "../shared";
4
+ export declare function doHandleFetch(handler: ScramjetFetchHandler, request: ScramjetFetchRequest): Promise<ScramjetFetchResponse>;
5
+ export declare function doNetworkFetch(handler: ScramjetFetchHandler, request: ScramjetFetchRequest, parsed: ScramjetFetchParsed, newheaders: ScramjetHeaders): Promise<BareResponse>;
6
+ /** Simplified registrable-domain check used for cross-site redirect detection. */
7
+ export declare function registrableDomainForRedirect(hostname: string): string;
@@ -0,0 +1,19 @@
1
+ import { ScramjetHeaders } from "../shared";
2
+ import { ScramjetFetchHandler, ScramjetFetchParsed, ScramjetFetchRequest } from ".";
3
+ import { RawHeaders } from "@mercuryworkshop/proxy-transports";
4
+ export declare function rewriteResponseHeaders(handler: ScramjetFetchHandler, request: ScramjetFetchRequest, parsed: ScramjetFetchParsed, rawHeaders: RawHeaders): Promise<ScramjetHeaders>;
5
+ export declare function rewriteRequestHeaders(request: ScramjetFetchRequest, handler: ScramjetFetchHandler, parsed: ScramjetFetchParsed): ScramjetHeaders;
6
+ /**
7
+ * Compute the immediate Sec-Fetch-Site relation between an initiator origin and
8
+ * a destination URL.
9
+ *
10
+ * - "same-origin" if scheme + host + port match exactly.
11
+ * - "same-site" if scheme matches and the registrable domains match.
12
+ * - "cross-site" otherwise.
13
+ */
14
+ export declare function computeFetchSite(originUrl: URL, destUrl: URL): "same-origin" | "same-site" | "cross-site";
15
+ /**
16
+ * Combine two Sec-Fetch-Site classifications, returning the "worst" (least
17
+ * trusted) of the two. Used when propagating state through redirect chains.
18
+ */
19
+ export declare function worstFetchSite(a: "none" | "same-origin" | "same-site" | "cross-site", b: "none" | "same-origin" | "same-site" | "cross-site"): "none" | "same-origin" | "same-site" | "cross-site";
@@ -0,0 +1,128 @@
1
+ import { BareCompatibleClient, BareResponse, ProxyTransport, BareRequestInit } from "@mercuryworkshop/proxy-transports";
2
+ import { type URLMeta } from "../shared/rewriters/url";
3
+ import { ScramjetHeaders } from "../shared/headers";
4
+ import { HtmlRewriterHooks, ScramjetContext } from "../shared";
5
+ import { TapInstance } from "../Tap";
6
+ import { _URL } from "../shared/snapshot";
7
+ export interface ScramjetFetchRequest {
8
+ rawUrl: URL;
9
+ rawReferrer: string | null;
10
+ rawDestination: RequestDestination;
11
+ mode: RequestMode;
12
+ referrer: string;
13
+ method: string;
14
+ body: BodyType | null;
15
+ cache: RequestCache;
16
+ initialHeaders: ScramjetHeaders;
17
+ rawClientUrl?: URL;
18
+ /** The service worker FetchEvent.clientId that originated this request. */
19
+ clientId: string;
20
+ }
21
+ export interface ScramjetFetchParsed {
22
+ url: _URL;
23
+ clientUrl?: _URL;
24
+ referrerSourceUrl?: _URL | null;
25
+ hadExtraParams: boolean;
26
+ crossSiteRedirect: boolean;
27
+ fetchSiteState?: "same-origin" | "same-site" | "cross-site";
28
+ fetchInitiatorOrigin?: string;
29
+ fetchCredentialsInclude?: boolean;
30
+ fetchMode?: RequestMode;
31
+ isIframe?: boolean;
32
+ destination: RequestDestination;
33
+ meta: URLMeta;
34
+ isModule: boolean;
35
+ isFakeDataURL: boolean;
36
+ referrerPolicy?: string;
37
+ trackedClient?: ScramjetFetchTrackedClient;
38
+ }
39
+ export interface ScramjetFetchResponse {
40
+ body: BodyType;
41
+ headers: ScramjetHeaders;
42
+ status: number;
43
+ statusText: string;
44
+ }
45
+ export type CookieSyncEntry = {
46
+ url: URL;
47
+ cookie: string;
48
+ };
49
+ export type CookieSyncOptions = {
50
+ clear?: boolean;
51
+ destination?: RequestDestination;
52
+ };
53
+ export type FetchHandlerInit = {
54
+ transport: ProxyTransport;
55
+ context: ScramjetContext;
56
+ crossOriginIsolated?: boolean;
57
+ sendSetCookie: (cookies: CookieSyncEntry[], options?: CookieSyncOptions) => Promise<void>;
58
+ fetchDataUrl(dataUrl: string): Promise<BareResponse>;
59
+ fetchBlobUrl(blobUrl: string): Promise<BareResponse>;
60
+ };
61
+ export type TrackedHistoryState = {
62
+ url: string;
63
+ refererPolicy?: string;
64
+ };
65
+ export declare class ScramjetFetchTrackedClient {
66
+ clientId: string;
67
+ history: TrackedHistoryState[];
68
+ constructor(clientId: string);
69
+ }
70
+ export declare class ScramjetFetchHandler extends EventTarget {
71
+ client: BareCompatibleClient;
72
+ crossOriginIsolated: boolean;
73
+ context: ScramjetContext;
74
+ trackedClients: Map<string, ScramjetFetchTrackedClient>;
75
+ hooks: {
76
+ rewriter: {
77
+ html: TapInstance<HtmlRewriterHooks>;
78
+ };
79
+ fetch: TapInstance<FetchHooks>;
80
+ };
81
+ fetchDataUrl: (dataUrl: string) => Promise<Response>;
82
+ fetchBlobUrl: (blobUrl: string) => Promise<Response>;
83
+ sendSetCookie: (cookies: CookieSyncEntry[], options?: CookieSyncOptions) => Promise<void>;
84
+ constructor(init: FetchHandlerInit);
85
+ handleFetch(request: ScramjetFetchRequest): Promise<ScramjetFetchResponse>;
86
+ }
87
+ export type FetchHooks = {
88
+ intercept: {
89
+ context: {
90
+ request: ScramjetFetchRequest;
91
+ parsed: ScramjetFetchParsed;
92
+ };
93
+ props: {
94
+ response?: ScramjetFetchResponse;
95
+ };
96
+ };
97
+ request: {
98
+ context: {
99
+ request: ScramjetFetchRequest;
100
+ parsed: ScramjetFetchParsed;
101
+ client: BareCompatibleClient;
102
+ };
103
+ props: {
104
+ init: BareRequestInit;
105
+ url: URL;
106
+ earlyResponse?: BareResponse;
107
+ };
108
+ };
109
+ preresponse: {
110
+ context: {
111
+ request: ScramjetFetchRequest;
112
+ parsed: ScramjetFetchParsed;
113
+ };
114
+ props: {
115
+ response: BareResponse;
116
+ };
117
+ };
118
+ response: {
119
+ context: {
120
+ request: ScramjetFetchRequest;
121
+ parsed: ScramjetFetchParsed;
122
+ };
123
+ props: {
124
+ response: ScramjetFetchResponse;
125
+ };
126
+ };
127
+ };
128
+ export type BodyType = string | ArrayBuffer | Blob | ReadableStream<any>;
@@ -0,0 +1,23 @@
1
+ import { ScramjetFetchHandler, ScramjetFetchParsed, ScramjetFetchRequest } from ".";
2
+ export declare const QP: {
3
+ readonly referrerPolicy: "$rfp";
4
+ readonly referrerSource: "$rfs";
5
+ readonly isModule: "$module";
6
+ readonly topFrame: "$tf";
7
+ readonly parentFrame: "$pf";
8
+ readonly isIframe: "$iframe";
9
+ readonly mode: "$mode";
10
+ readonly credentials: "$cred";
11
+ readonly destination: "$dest";
12
+ readonly initiatorOrigin: "$io";
13
+ readonly fetchSite: "$fs";
14
+ readonly crossSiteRedirect: "$csr";
15
+ readonly fakeDataURL: "$fakedataurl";
16
+ };
17
+ export type QueryParamKey = keyof typeof QP;
18
+ export type QueryParams = Partial<Record<QueryParamKey, string>>;
19
+ export declare function parseQueryParams(searchParams: URLSearchParams): {
20
+ params: QueryParams;
21
+ extras: Record<string, string>;
22
+ };
23
+ export declare function parseRequest(request: ScramjetFetchRequest, handler: ScramjetFetchHandler): ScramjetFetchParsed;
@@ -0,0 +1,7 @@
1
+ import { ScramjetHeaders } from "../shared";
2
+ import { BareResponse } from "@mercuryworkshop/proxy-transports";
3
+ import { ScramjetFetchParsed } from ".";
4
+ export declare function normalizeContentType(parsed: ScramjetFetchParsed, headers: ScramjetHeaders): void;
5
+ export declare function isRedirect(response: BareResponse): boolean;
6
+ export declare function isDocument(parsed: ScramjetFetchParsed): boolean;
7
+ export declare function createReferrerString(clientUrl: URL, resource: URL, policy: string | null): string;
@@ -0,0 +1,12 @@
1
+ import "./global.d";
2
+ import { ScramjetVersionInfo, ScramjetConfig } from "./types";
3
+ export declare const versionInfo: ScramjetVersionInfo;
4
+ export declare const defaultConfig: ScramjetConfig;
5
+ export declare const defaultConfigDev: ScramjetConfig;
6
+ export * from "./symbols";
7
+ export * from "./types";
8
+ export * from "./Tap";
9
+ export * from "./shared";
10
+ export * from "./fetch";
11
+ export { BareResponse } from "@mercuryworkshop/proxy-transports";
12
+ export * from "./client";
@@ -0,0 +1,26 @@
1
+ export type Cookie = {
2
+ name: string;
3
+ value: string;
4
+ path?: string;
5
+ expires?: number;
6
+ maxAge?: number;
7
+ domain?: string;
8
+ hostOnly?: boolean;
9
+ secure?: boolean;
10
+ httpOnly?: boolean;
11
+ sameSite?: string;
12
+ };
13
+ export declare class CookieJar {
14
+ private cookies;
15
+ private byDomain;
16
+ private defaultPath;
17
+ private pathMatches;
18
+ private indexCookie;
19
+ private unindexCookie;
20
+ private removeById;
21
+ setCookies(cookieString: string, url: URL): void;
22
+ getCookies(url: URL, fromJs: boolean, sameSiteContext?: "strict" | "lax" | "cross-site"): string;
23
+ load(cookies: string | Record<string, Cookie>): void;
24
+ clear(): void;
25
+ dump(): string;
26
+ }
@@ -0,0 +1,13 @@
1
+ import { RawHeaders } from "@mercuryworkshop/proxy-transports";
2
+ export declare class ScramjetHeaders {
3
+ headers: {};
4
+ set(key: string, v: string): void;
5
+ get(key: string): string | null;
6
+ delete(key: string): void;
7
+ has(key: string): boolean;
8
+ toRawHeaders(): RawHeaders;
9
+ toNativeHeaders(): Headers;
10
+ static fromRawHeaders(raw: RawHeaders): ScramjetHeaders;
11
+ static fromNativeHeaders(native: Headers): ScramjetHeaders;
12
+ clone(): ScramjetHeaders;
13
+ }
@@ -0,0 +1,6 @@
1
+ import { URLMeta } from "./rewriters/url";
2
+ import { ScramjetContext } from "../shared";
3
+ export declare const htmlRules: {
4
+ [key: string]: "*" | string[] | ((...any: any[]) => string | null);
5
+ fn: (value: string, context: ScramjetContext, meta: URLMeta, attrs?: Record<string, string | undefined>) => string | null;
6
+ }[];
@@ -0,0 +1,50 @@
1
+ import { ScramjetConfig, ScramjetFlags } from "../types";
2
+ import DomHandler, { Element } from "domhandler";
3
+ import { URLMeta } from "./rewriters/url";
4
+ import { CookieJar } from "./cookie";
5
+ import { TapInstance } from "../Tap";
6
+ import { HtmlContext } from "../shared/rewriters/html";
7
+ export * from "./cookie";
8
+ export * from "./headers";
9
+ export * from "./htmlRules";
10
+ export * from "./mime";
11
+ export * from "./rewriters";
12
+ export declare function flagEnabled(flag: keyof ScramjetFlags, context: ScramjetContext, url: URL): boolean;
13
+ export type ScramjetInterface = {
14
+ codecEncode: (input: string) => string;
15
+ codecDecode: (input: string) => string;
16
+ getInjectScripts(meta: URLMeta, handler: DomHandler, htmlcontext: HtmlContext, script: (src: string) => Element): Element[];
17
+ getWorkerInjectScripts?(meta: URLMeta, isModule: boolean, script: (src: string) => string): string;
18
+ };
19
+ export type ScramjetContext = {
20
+ config: ScramjetConfig;
21
+ prefix: URL;
22
+ interface: ScramjetInterface;
23
+ cookieJar: CookieJar;
24
+ hooks?: {
25
+ rewriter: {
26
+ html: TapInstance<HtmlRewriterHooks>;
27
+ };
28
+ };
29
+ };
30
+ export type HtmlRewriterHooks = {
31
+ pre: {
32
+ context: {
33
+ handler: DomHandler;
34
+ meta: URLMeta;
35
+ origHtml: string;
36
+ htmlcontext: HtmlContext;
37
+ };
38
+ };
39
+ post: {
40
+ context: {
41
+ handler: DomHandler;
42
+ meta: URLMeta;
43
+ origHtml: string;
44
+ htmlcontext: HtmlContext;
45
+ };
46
+ props: {
47
+ setRawHtml?: string;
48
+ };
49
+ };
50
+ };
@@ -0,0 +1,53 @@
1
+ export interface ParsedMimeType {
2
+ type: string;
3
+ subtype: string;
4
+ /** `type`/`subtype` in ASCII lowercase; excludes parameters. */
5
+ essence: string;
6
+ }
7
+ /**
8
+ * Parses a MIME type string (e.g. a Content-Type value) into type, subtype, and essence.
9
+ * Returns null if the input is not a valid MIME type.
10
+ */
11
+ export declare function parseMimeType(input: string): ParsedMimeType | null;
12
+ /** A MIME type whose type is "image". */
13
+ export declare function isImageMimeType(mime: string | ParsedMimeType): boolean;
14
+ /** Audio, video, or essence `application/ogg`. */
15
+ export declare function isAudioOrVideoMimeType(mime: string | ParsedMimeType): boolean;
16
+ /** Type `font` or a registered font essence. */
17
+ export declare function isFontMimeType(mime: string | ParsedMimeType): boolean;
18
+ /** Subtype ends with `+zip` or essence `application/zip`. */
19
+ export declare function isZipBasedMimeType(mime: string | ParsedMimeType): boolean;
20
+ /** One of the archive essences. */
21
+ export declare function isArchiveMimeType(mime: string | ParsedMimeType): boolean;
22
+ /** Subtype ends with `+xml` or essence `text/xml` / `application/xml`. */
23
+ export declare function isXmlMimeType(mime: string | ParsedMimeType): boolean;
24
+ /** Essence `text/html`. */
25
+ export declare function isHtmlMimeType(mime: string | ParsedMimeType): boolean;
26
+ /** XML, HTML, or `application/pdf`. */
27
+ export declare function isScriptableMimeType(mime: string | ParsedMimeType): boolean;
28
+ /** Essence is one of the JavaScript MIME type essences. */
29
+ export declare function isJavascriptMimeType(mime: string | ParsedMimeType): boolean;
30
+ /**
31
+ * True if the string is an ASCII case-insensitive match for one of the
32
+ * JavaScript MIME type essence strings (not necessarily a full parsed MIME type).
33
+ */
34
+ export declare function isJavascriptMimeTypeEssenceMatch(s: string): boolean;
35
+ /**
36
+ * Script block type string for a `<script>` element (prepare a script).
37
+ * Resolves `type` when present; otherwise maps obsolete `language` to `text/…`.
38
+ * @see https://html.spec.whatwg.org/multipage/scripting.html#prepare-a-script
39
+ */
40
+ export declare function getScriptBlockTypeString(type: string | null | undefined, language: string | null | undefined, hasTypeAttribute?: boolean, hasLanguageAttribute?: boolean): string;
41
+ /**
42
+ * Whether a `<script type="...">` value denotes executable JavaScript
43
+ * (classic or module script), not a data block or import map.
44
+ * @see https://html.spec.whatwg.org/multipage/scripting.html#attr-script-type
45
+ */
46
+ export declare function isScriptType(type: string | null | undefined): boolean;
47
+ /** Whether `type` denotes a JavaScript module script. */
48
+ export declare function isModuleScriptType(type: string | null | undefined): boolean;
49
+ /**
50
+ * MIME types typically shown inline in a browsing context (navigation / iframe),
51
+ * as opposed to triggering a download when Content-Disposition is absent.
52
+ */
53
+ export declare function isInlineDisplayableMimeType(mime: string | ParsedMimeType): boolean;
@@ -0,0 +1,7 @@
1
+ export type ParsedDeclarativeRefresh = {
2
+ time: number;
3
+ urlStart: number;
4
+ urlEnd: number;
5
+ url: string | null;
6
+ };
7
+ export declare function parseDeclarativeRefresh(input: string): ParsedDeclarativeRefresh | null;
@@ -0,0 +1,4 @@
1
+ import { URLMeta } from "./url";
2
+ import { ScramjetContext } from "../../shared";
3
+ export declare function rewriteCss(css: string, context: ScramjetContext, meta: URLMeta): string;
4
+ export declare function unrewriteCss(css: string, context: ScramjetContext): string;
@@ -0,0 +1,33 @@
1
+ import { URLMeta } from "./url";
2
+ import { ScramjetContext } from "../../shared";
3
+ import { RawHeaders } from "@mercuryworkshop/proxy-transports";
4
+ import { TrackedHistoryState } from "../../fetch";
5
+ export type ForeignContext = "svg" | "math" | "html";
6
+ export type HtmlContext = {
7
+ loadScripts: boolean;
8
+ inline: boolean;
9
+ source: string;
10
+ apisource?: string;
11
+ headers?: RawHeaders;
12
+ foreignContext?: ForeignContext;
13
+ history?: TrackedHistoryState[];
14
+ };
15
+ export declare class IncrementalHtmlRewriter {
16
+ private readonly context;
17
+ private readonly meta;
18
+ private readonly htmlcontext;
19
+ private readonly handler;
20
+ private readonly parser;
21
+ private readonly completedElements;
22
+ private readonly emittedLengths;
23
+ private readonly rewrittenNodes;
24
+ private ended;
25
+ constructor(context: ScramjetContext, meta: URLMeta, htmlcontext: HtmlContext);
26
+ write(html: string): string;
27
+ end(html?: string): string;
28
+ private flush;
29
+ private getAvailableOutput;
30
+ }
31
+ export declare function rewriteHtml(html: string, context: ScramjetContext, meta: URLMeta, htmlcontext: HtmlContext): string;
32
+ export declare function unrewriteHtml(html: string, foreignContext?: ForeignContext): string;
33
+ export declare function rewriteSrcset(srcset: string, context: ScramjetContext, meta: URLMeta): string;