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 @@
1
+ {"version":3,"file":"ssr.server.js","sources":["../rrweb-cssom","../src/ssr/common/consts.ts","../src/ssr/server/vdom.ts","../src/ssr/common/serialize.ts","../src/ssr/server/index.ts"],"sourcesContent":["\n\t\t\t\t\t\t\t\tlet exports = {};\n\t\t\t\t\t\t\t\tvar CSSOM = {};\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration\n */\nCSSOM.CSSStyleDeclaration = function CSSStyleDeclaration(){\n\tthis.length = 0;\n\tthis.parentRule = null;\n\n\t// NON-STANDARD\n\tthis._importants = {};\n};\n\n\nCSSOM.CSSStyleDeclaration.prototype = {\n\n\tconstructor: CSSOM.CSSStyleDeclaration,\n\n\t/**\n\t *\n\t * @param {string} name\n\t * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-getPropertyValue\n\t * @return {string} the value of the property if it has been explicitly set for this declaration block.\n\t * Returns the empty string if the property has not been set.\n\t */\n\tgetPropertyValue: function(name) {\n\t\treturn this[name] || \"\";\n\t},\n\n\t/**\n\t *\n\t * @param {string} name\n\t * @param {string} value\n\t * @param {string} [priority=null] \"important\" or null\n\t * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-setProperty\n\t */\n\tsetProperty: function(name, value, priority) {\n\t\tif (this[name]) {\n\t\t\t// Property already exist. Overwrite it.\n\t\t\tvar index = Array.prototype.indexOf.call(this, name);\n\t\t\tif (index < 0) {\n\t\t\t\tthis[this.length] = name;\n\t\t\t\tthis.length++;\n\t\t\t}\n\t\t} else {\n\t\t\t// New property.\n\t\t\tthis[this.length] = name;\n\t\t\tthis.length++;\n\t\t}\n\t\tthis[name] = value + \"\";\n\t\tthis._importants[name] = priority;\n\t},\n\n\t/**\n\t *\n\t * @param {string} name\n\t * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-removeProperty\n\t * @return {string} the value of the property if it has been explicitly set for this declaration block.\n\t * Returns the empty string if the property has not been set or the property name does not correspond to a known CSS property.\n\t */\n\tremoveProperty: function(name) {\n\t\tif (!(name in this)) {\n\t\t\treturn \"\";\n\t\t}\n\t\tvar index = Array.prototype.indexOf.call(this, name);\n\t\tif (index < 0) {\n\t\t\treturn \"\";\n\t\t}\n\t\tvar prevValue = this[name];\n\t\tthis[name] = \"\";\n\n\t\t// That's what WebKit and Opera do\n\t\tArray.prototype.splice.call(this, index, 1);\n\n\t\t// That's what Firefox does\n\t\t//this[index] = \"\"\n\n\t\treturn prevValue;\n\t},\n\n\tgetPropertyCSSValue: function() {\n\t\t//FIXME\n\t},\n\n\t/**\n\t *\n\t * @param {String} name\n\t */\n\tgetPropertyPriority: function(name) {\n\t\treturn this._importants[name] || \"\";\n\t},\n\n\n\t/**\n\t * element.style.overflow = \"auto\"\n\t * element.style.getPropertyShorthand(\"overflow-x\")\n\t * -> \"overflow\"\n\t */\n\tgetPropertyShorthand: function() {\n\t\t//FIXME\n\t},\n\n\tisPropertyImplicit: function() {\n\t\t//FIXME\n\t},\n\n\t// Doesn't work in IE < 9\n\tget cssText(){\n\t\tvar properties = [];\n\t\tfor (var i=0, length=this.length; i < length; ++i) {\n\t\t\tvar name = this[i];\n\t\t\tvar value = this.getPropertyValue(name);\n\t\t\tvar priority = this.getPropertyPriority(name);\n\t\t\tif (priority) {\n\t\t\t\tpriority = \" !\" + priority;\n\t\t\t}\n\t\t\tproperties[i] = name + \": \" + value + priority + \";\";\n\t\t}\n\t\treturn properties.join(\" \");\n\t},\n\n\tset cssText(text){\n\t\tvar i, name;\n\t\tfor (i = this.length; i--;) {\n\t\t\tname = this[i];\n\t\t\tthis[name] = \"\";\n\t\t}\n\t\tArray.prototype.splice.call(this, 0, this.length);\n\t\tthis._importants = {};\n\n\t\tvar dummyRule = CSSOM.parse('#bogus{' + text + '}').cssRules[0].style;\n\t\tvar length = dummyRule.length;\n\t\tfor (i = 0; i < length; ++i) {\n\t\t\tname = dummyRule[i];\n\t\t\tthis.setProperty(dummyRule[i], dummyRule.getPropertyValue(name), dummyRule.getPropertyPriority(name));\n\t\t}\n\t}\n};\n\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#the-cssrule-interface\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule\n */\nCSSOM.CSSRule = function CSSRule() {\n this.parentRule = null;\n this.parentStyleSheet = null;\n};\n\nCSSOM.CSSRule.UNKNOWN_RULE = 0; // obsolete\nCSSOM.CSSRule.STYLE_RULE = 1;\nCSSOM.CSSRule.CHARSET_RULE = 2; // obsolete\nCSSOM.CSSRule.IMPORT_RULE = 3;\nCSSOM.CSSRule.MEDIA_RULE = 4;\nCSSOM.CSSRule.FONT_FACE_RULE = 5;\nCSSOM.CSSRule.PAGE_RULE = 6;\nCSSOM.CSSRule.KEYFRAMES_RULE = 7;\nCSSOM.CSSRule.KEYFRAME_RULE = 8;\nCSSOM.CSSRule.MARGIN_RULE = 9;\nCSSOM.CSSRule.NAMESPACE_RULE = 10;\nCSSOM.CSSRule.COUNTER_STYLE_RULE = 11;\nCSSOM.CSSRule.SUPPORTS_RULE = 12;\nCSSOM.CSSRule.DOCUMENT_RULE = 13;\nCSSOM.CSSRule.FONT_FEATURE_VALUES_RULE = 14;\nCSSOM.CSSRule.VIEWPORT_RULE = 15;\nCSSOM.CSSRule.REGION_STYLE_RULE = 16;\nCSSOM.CSSRule.CONTAINER_RULE = 17;\nCSSOM.CSSRule.LAYER_BLOCK_RULE = 18;\nCSSOM.CSSRule.STARTING_STYLE_RULE = 1002;\n\nCSSOM.CSSRule.prototype = {\n constructor: CSSOM.CSSRule,\n //FIXME\n};\n\nexports.CSSRule = CSSOM.CSSRule;\n///CommonJS\n/**\n * @constructor\n * @see https://drafts.csswg.org/cssom/#the-cssgroupingrule-interface\n */\nCSSOM.CSSGroupingRule = function CSSGroupingRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.cssRules = [];\n};\n\nCSSOM.CSSGroupingRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSGroupingRule.prototype.constructor = CSSOM.CSSGroupingRule;\n\n\n/**\n * Used to insert a new CSS rule to a list of CSS rules.\n *\n * @example\n * cssGroupingRule.cssText\n * -> \"body{margin:0;}\"\n * cssGroupingRule.insertRule(\"img{border:none;}\", 1)\n * -> 1\n * cssGroupingRule.cssText\n * -> \"body{margin:0;}img{border:none;}\"\n *\n * @param {string} rule\n * @param {number} [index]\n * @see https://www.w3.org/TR/cssom-1/#dom-cssgroupingrule-insertrule\n * @return {number} The index within the grouping rule's collection of the newly inserted rule.\n */\n CSSOM.CSSGroupingRule.prototype.insertRule = function insertRule(rule, index) {\n\tif (index < 0 || index > this.cssRules.length) {\n\t\tthrow new RangeError(\"INDEX_SIZE_ERR\");\n\t}\n\tvar cssRule = CSSOM.parse(rule).cssRules[0];\n\tcssRule.parentRule = this;\n\tthis.cssRules.splice(index, 0, cssRule);\n\treturn index;\n};\n\n/**\n * Used to delete a rule from the grouping rule.\n *\n * cssGroupingRule.cssText\n * -> \"img{border:none;}body{margin:0;}\"\n * cssGroupingRule.deleteRule(0)\n * cssGroupingRule.cssText\n * -> \"body{margin:0;}\"\n *\n * @param {number} index within the grouping rule's rule list of the rule to remove.\n * @see https://www.w3.org/TR/cssom-1/#dom-cssgroupingrule-deleterule\n */\n CSSOM.CSSGroupingRule.prototype.deleteRule = function deleteRule(index) {\n\tif (index < 0 || index >= this.cssRules.length) {\n\t\tthrow new RangeError(\"INDEX_SIZE_ERR\");\n\t}\n\tthis.cssRules.splice(index, 1)[0].parentRule = null;\n};\n\n\n/**\n * @constructor\n * @see https://www.w3.org/TR/css-conditional-3/#the-cssconditionrule-interface\n */\nCSSOM.CSSConditionRule = function CSSConditionRule() {\n CSSOM.CSSGroupingRule.call(this);\n this.cssRules = [];\n};\n\nCSSOM.CSSConditionRule.prototype = new CSSOM.CSSGroupingRule();\nCSSOM.CSSConditionRule.prototype.constructor = CSSOM.CSSConditionRule;\nCSSOM.CSSConditionRule.prototype.conditionText = ''\nCSSOM.CSSConditionRule.prototype.cssText = ''\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#cssstylerule\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleRule\n */\nCSSOM.CSSStyleRule = function CSSStyleRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.selectorText = \"\";\n\tthis.style = new CSSOM.CSSStyleDeclaration();\n\tthis.style.parentRule = this;\n};\n\nCSSOM.CSSStyleRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSStyleRule.prototype.constructor = CSSOM.CSSStyleRule;\nCSSOM.CSSStyleRule.prototype.type = 1;\n\nObject.defineProperty(CSSOM.CSSStyleRule.prototype, \"cssText\", {\n\tget: function() {\n\t\tvar text;\n\t\tif (this.selectorText) {\n\t\t\ttext = this.selectorText + \" {\" + this.style.cssText + \"}\";\n\t\t} else {\n\t\t\ttext = \"\";\n\t\t}\n\t\treturn text;\n\t},\n\tset: function(cssText) {\n\t\tvar rule = CSSOM.CSSStyleRule.parse(cssText);\n\t\tthis.style = rule.style;\n\t\tthis.selectorText = rule.selectorText;\n\t}\n});\n\n\n/**\n * NON-STANDARD\n * lightweight version of parse.js.\n * @param {string} ruleText\n * @return CSSStyleRule\n */\nCSSOM.CSSStyleRule.parse = function(ruleText) {\n\tvar i = 0;\n\tvar state = \"selector\";\n\tvar index;\n\tvar j = i;\n\tvar buffer = \"\";\n\n\tvar SIGNIFICANT_WHITESPACE = {\n\t\t\"selector\": true,\n\t\t\"value\": true\n\t};\n\n\tvar styleRule = new CSSOM.CSSStyleRule();\n\tvar name, priority=\"\";\n\n\tfor (var character; (character = ruleText.charAt(i)); i++) {\n\n\t\tswitch (character) {\n\n\t\tcase \" \":\n\t\tcase \"\\t\":\n\t\tcase \"\\r\":\n\t\tcase \"\\n\":\n\t\tcase \"\\f\":\n\t\t\tif (SIGNIFICANT_WHITESPACE[state]) {\n\t\t\t\t// Squash 2 or more white-spaces in the row into 1\n\t\t\t\tswitch (ruleText.charAt(i - 1)) {\n\t\t\t\t\tcase \" \":\n\t\t\t\t\tcase \"\\t\":\n\t\t\t\t\tcase \"\\r\":\n\t\t\t\t\tcase \"\\n\":\n\t\t\t\t\tcase \"\\f\":\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbuffer += \" \";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\n\t\t// String\n\t\tcase '\"':\n\t\t\tj = i + 1;\n\t\t\tindex = ruleText.indexOf('\"', j) + 1;\n\t\t\tif (!index) {\n\t\t\t\tthrow '\" is missing';\n\t\t\t}\n\t\t\tbuffer += ruleText.slice(i, index);\n\t\t\ti = index - 1;\n\t\t\tbreak;\n\n\t\tcase \"'\":\n\t\t\tj = i + 1;\n\t\t\tindex = ruleText.indexOf(\"'\", j) + 1;\n\t\t\tif (!index) {\n\t\t\t\tthrow \"' is missing\";\n\t\t\t}\n\t\t\tbuffer += ruleText.slice(i, index);\n\t\t\ti = index - 1;\n\t\t\tbreak;\n\n\t\t// Comment\n\t\tcase \"/\":\n\t\t\tif (ruleText.charAt(i + 1) === \"*\") {\n\t\t\t\ti += 2;\n\t\t\t\tindex = ruleText.indexOf(\"*/\", i);\n\t\t\t\tif (index === -1) {\n\t\t\t\t\tthrow new SyntaxError(\"Missing */\");\n\t\t\t\t} else {\n\t\t\t\t\ti = index + 1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"{\":\n\t\t\tif (state === \"selector\") {\n\t\t\t\tstyleRule.selectorText = buffer.trim();\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"name\";\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \":\":\n\t\t\tif (state === \"name\") {\n\t\t\t\tname = buffer.trim();\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"value\";\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"!\":\n\t\t\tif (state === \"value\" && ruleText.indexOf(\"!important\", i) === i) {\n\t\t\t\tpriority = \"important\";\n\t\t\t\ti += \"important\".length;\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \";\":\n\t\t\tif (state === \"value\") {\n\t\t\t\tstyleRule.style.setProperty(name, buffer.trim(), priority);\n\t\t\t\tpriority = \"\";\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"name\";\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"}\":\n\t\t\tif (state === \"value\") {\n\t\t\t\tstyleRule.style.setProperty(name, buffer.trim(), priority);\n\t\t\t\tpriority = \"\";\n\t\t\t\tbuffer = \"\";\n\t\t\t} else if (state === \"name\") {\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tstate = \"selector\";\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tbuffer += character;\n\t\t\tbreak;\n\n\t\t}\n\t}\n\n\treturn styleRule;\n\n};\n\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#the-medialist-interface\n */\nCSSOM.MediaList = function MediaList(){\n\tthis.length = 0;\n};\n\nCSSOM.MediaList.prototype = {\n\n\tconstructor: CSSOM.MediaList,\n\n\t/**\n\t * @return {string}\n\t */\n\tget mediaText() {\n\t\treturn Array.prototype.join.call(this, \", \");\n\t},\n\n\t/**\n\t * @param {string} value\n\t */\n\tset mediaText(value) {\n\t\tvar values = value.split(\",\");\n\t\tvar length = this.length = values.length;\n\t\tfor (var i=0; i<length; i++) {\n\t\t\tthis[i] = values[i].trim();\n\t\t}\n\t},\n\n\t/**\n\t * @param {string} medium\n\t */\n\tappendMedium: function(medium) {\n\t\tif (Array.prototype.indexOf.call(this, medium) === -1) {\n\t\t\tthis[this.length] = medium;\n\t\t\tthis.length++;\n\t\t}\n\t},\n\n\t/**\n\t * @param {string} medium\n\t */\n\tdeleteMedium: function(medium) {\n\t\tvar index = Array.prototype.indexOf.call(this, medium);\n\t\tif (index !== -1) {\n\t\t\tArray.prototype.splice.call(this, index, 1);\n\t\t}\n\t}\n\n};\n\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#cssmediarule\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule\n */\nCSSOM.CSSMediaRule = function CSSMediaRule() {\n\tCSSOM.CSSConditionRule.call(this);\n\tthis.media = new CSSOM.MediaList();\n};\n\nCSSOM.CSSMediaRule.prototype = new CSSOM.CSSConditionRule();\nCSSOM.CSSMediaRule.prototype.constructor = CSSOM.CSSMediaRule;\nCSSOM.CSSMediaRule.prototype.type = 4;\n\n// https://opensource.apple.com/source/WebCore/WebCore-7611.1.21.161.3/css/CSSMediaRule.cpp\nObject.defineProperties(CSSOM.CSSMediaRule.prototype, {\n \"conditionText\": {\n get: function() {\n return this.media.mediaText;\n },\n set: function(value) {\n this.media.mediaText = value;\n },\n configurable: true,\n enumerable: true\n },\n \"cssText\": {\n get: function() {\n var cssTexts = [];\n for (var i=0, length=this.cssRules.length; i < length; i++) {\n cssTexts.push(this.cssRules[i].cssText);\n }\n return \"@media \" + this.media.mediaText + \" {\" + cssTexts.join(\"\") + \"}\";\n },\n configurable: true,\n enumerable: true\n }\n});\n\n\n\n/**\n * @constructor\n * @see https://drafts.csswg.org/css-contain-3/\n * @see https://www.w3.org/TR/css-contain-3/\n */\nCSSOM.CSSContainerRule = function CSSContainerRule() {\n\tCSSOM.CSSConditionRule.call(this);\n};\n\nCSSOM.CSSContainerRule.prototype = new CSSOM.CSSConditionRule();\nCSSOM.CSSContainerRule.prototype.constructor = CSSOM.CSSContainerRule;\nCSSOM.CSSContainerRule.prototype.type = 17;\n\nObject.defineProperties(CSSOM.CSSContainerRule.prototype, {\n \"conditionText\": {\n get: function() {\n return this.containerText;\n },\n set: function(value) {\n this.containerText = value;\n },\n configurable: true,\n enumerable: true\n },\n \"cssText\": {\n get: function() {\n var cssTexts = [];\n for (var i=0, length=this.cssRules.length; i < length; i++) {\n cssTexts.push(this.cssRules[i].cssText);\n }\n return \"@container \" + this.containerText + \" {\" + cssTexts.join(\"\") + \"}\";\n },\n configurable: true,\n enumerable: true\n }\n});\n\n\n\n/**\n * @constructor\n * @see https://drafts.csswg.org/css-conditional-3/#the-csssupportsrule-interface\n */\nCSSOM.CSSSupportsRule = function CSSSupportsRule() {\n CSSOM.CSSConditionRule.call(this);\n};\n\nCSSOM.CSSSupportsRule.prototype = new CSSOM.CSSConditionRule();\nCSSOM.CSSSupportsRule.prototype.constructor = CSSOM.CSSSupportsRule;\nCSSOM.CSSSupportsRule.prototype.type = 12;\n\nObject.defineProperty(CSSOM.CSSSupportsRule.prototype, \"cssText\", {\n get: function() {\n var cssTexts = [];\n\n for (var i = 0, length = this.cssRules.length; i < length; i++) {\n cssTexts.push(this.cssRules[i].cssText);\n }\n\n return \"@supports \" + this.conditionText + \" {\" + cssTexts.join(\"\") + \"}\";\n }\n});\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#cssimportrule\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSImportRule\n */\nCSSOM.CSSImportRule = function CSSImportRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.href = \"\";\n\tthis.media = new CSSOM.MediaList();\n\tthis.styleSheet = new CSSOM.CSSStyleSheet();\n};\n\nCSSOM.CSSImportRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSImportRule.prototype.constructor = CSSOM.CSSImportRule;\nCSSOM.CSSImportRule.prototype.type = 3;\n\nObject.defineProperty(CSSOM.CSSImportRule.prototype, \"cssText\", {\n get: function() {\n var mediaText = this.media.mediaText;\n return \"@import url(\" + this.href + \")\" + (mediaText ? \" \" + mediaText : \"\") + \";\";\n },\n set: function(cssText) {\n var i = 0;\n\n /**\n * @import url(partial.css) screen, handheld;\n * || |\n * after-import media\n * |\n * url\n */\n var state = '';\n\n var buffer = '';\n var index;\n for (var character; (character = cssText.charAt(i)); i++) {\n\n switch (character) {\n case ' ':\n case '\\t':\n case '\\r':\n case '\\n':\n case '\\f':\n if (state === 'after-import') {\n state = 'url';\n } else {\n buffer += character;\n }\n break;\n\n case '@':\n if (!state && cssText.indexOf('@import', i) === i) {\n state = 'after-import';\n i += 'import'.length;\n buffer = '';\n }\n break;\n\n case 'u':\n if (state === 'url' && cssText.indexOf('url(', i) === i) {\n index = cssText.indexOf(')', i + 1);\n if (index === -1) {\n throw i + ': \")\" not found';\n }\n i += 'url('.length;\n var url = cssText.slice(i, index);\n if (url[0] === url[url.length - 1]) {\n if (url[0] === '\"' || url[0] === \"'\") {\n url = url.slice(1, -1);\n }\n }\n this.href = url;\n i = index;\n state = 'media';\n }\n break;\n\n case '\"':\n if (state === 'url') {\n index = cssText.indexOf('\"', i + 1);\n if (!index) {\n throw i + \": '\\\"' not found\";\n }\n this.href = cssText.slice(i + 1, index);\n i = index;\n state = 'media';\n }\n break;\n\n case \"'\":\n if (state === 'url') {\n index = cssText.indexOf(\"'\", i + 1);\n if (!index) {\n throw i + ': \"\\'\" not found';\n }\n this.href = cssText.slice(i + 1, index);\n i = index;\n state = 'media';\n }\n break;\n\n case ';':\n if (state === 'media') {\n if (buffer) {\n this.media.mediaText = buffer.trim();\n }\n }\n break;\n\n default:\n if (state === 'media') {\n buffer += character;\n }\n break;\n }\n }\n }\n});\n\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#css-font-face-rule\n */\nCSSOM.CSSFontFaceRule = function CSSFontFaceRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.style = new CSSOM.CSSStyleDeclaration();\n\tthis.style.parentRule = this;\n};\n\nCSSOM.CSSFontFaceRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSFontFaceRule.prototype.constructor = CSSOM.CSSFontFaceRule;\nCSSOM.CSSFontFaceRule.prototype.type = 5;\n//FIXME\n//CSSOM.CSSFontFaceRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;\n//CSSOM.CSSFontFaceRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;\n\n// http://www.opensource.apple.com/source/WebCore/WebCore-955.66.1/css/WebKitCSSFontFaceRule.cpp\nObject.defineProperty(CSSOM.CSSFontFaceRule.prototype, \"cssText\", {\n get: function() {\n return \"@font-face {\" + this.style.cssText + \"}\";\n }\n});\n\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/shadow-dom/#host-at-rule\n */\nCSSOM.CSSHostRule = function CSSHostRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.cssRules = [];\n};\n\nCSSOM.CSSHostRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSHostRule.prototype.constructor = CSSOM.CSSHostRule;\nCSSOM.CSSHostRule.prototype.type = 1001;\n//FIXME\n//CSSOM.CSSHostRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;\n//CSSOM.CSSHostRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;\n\nObject.defineProperty(CSSOM.CSSHostRule.prototype, \"cssText\", {\n\tget: function() {\n\t\tvar cssTexts = [];\n\t\tfor (var i=0, length=this.cssRules.length; i < length; i++) {\n\t\t\tcssTexts.push(this.cssRules[i].cssText);\n\t\t}\n\t\treturn \"@host {\" + cssTexts.join(\"\") + \"}\";\n\t}\n});\n\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/shadow-dom/#host-at-rule\n */\nCSSOM.CSSStartingStyleRule = function CSSStartingStyleRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.cssRules = [];\n};\n\nCSSOM.CSSStartingStyleRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSStartingStyleRule.prototype.constructor = CSSOM.CSSStartingStyleRule;\nCSSOM.CSSStartingStyleRule.prototype.type = 1002;\n//FIXME\n//CSSOM.CSSStartingStyleRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;\n//CSSOM.CSSStartingStyleRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;\n\nObject.defineProperty(CSSOM.CSSStartingStyleRule.prototype, \"cssText\", {\n\tget: function() {\n\t\tvar cssTexts = [];\n\t\tfor (var i=0, length=this.cssRules.length; i < length; i++) {\n\t\t\tcssTexts.push(this.cssRules[i].cssText);\n\t\t}\n\t\treturn \"@starting-style {\" + cssTexts.join(\"\") + \"}\";\n\t}\n});\n\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#the-stylesheet-interface\n */\nCSSOM.StyleSheet = function StyleSheet() {\n\tthis.parentStyleSheet = null;\n};\n\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet\n */\nCSSOM.CSSStyleSheet = function CSSStyleSheet() {\n\tCSSOM.StyleSheet.call(this);\n\tthis.cssRules = [];\n};\n\n\nCSSOM.CSSStyleSheet.prototype = new CSSOM.StyleSheet();\nCSSOM.CSSStyleSheet.prototype.constructor = CSSOM.CSSStyleSheet;\n\n\n/**\n * Used to insert a new rule into the style sheet. The new rule now becomes part of the cascade.\n *\n * sheet = new Sheet(\"body {margin: 0}\")\n * sheet.toString()\n * -> \"body{margin:0;}\"\n * sheet.insertRule(\"img {border: none}\", 0)\n * -> 0\n * sheet.toString()\n * -> \"img{border:none;}body{margin:0;}\"\n *\n * @param {string} rule\n * @param {number} index\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet-insertRule\n * @return {number} The index within the style sheet's rule collection of the newly inserted rule.\n */\nCSSOM.CSSStyleSheet.prototype.insertRule = function(rule, index) {\n\tif (index < 0 || index > this.cssRules.length) {\n\t\tthrow new RangeError(\"INDEX_SIZE_ERR\");\n\t}\n\tvar cssRule = CSSOM.parse(rule).cssRules[0];\n\tcssRule.parentStyleSheet = this;\n\tthis.cssRules.splice(index, 0, cssRule);\n\treturn index;\n};\n\n\n/**\n * Used to delete a rule from the style sheet.\n *\n * sheet = new Sheet(\"img{border:none} body{margin:0}\")\n * sheet.toString()\n * -> \"img{border:none;}body{margin:0;}\"\n * sheet.deleteRule(0)\n * sheet.toString()\n * -> \"body{margin:0;}\"\n *\n * @param {number} index within the style sheet's rule list of the rule to remove.\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet-deleteRule\n */\nCSSOM.CSSStyleSheet.prototype.deleteRule = function(index) {\n\tif (index < 0 || index >= this.cssRules.length) {\n\t\tthrow new RangeError(\"INDEX_SIZE_ERR\");\n\t}\n\tthis.cssRules.splice(index, 1);\n};\n\n\n/**\n * NON-STANDARD\n * @return {string} serialize stylesheet\n */\nCSSOM.CSSStyleSheet.prototype.toString = function() {\n\tvar result = \"\";\n\tvar rules = this.cssRules;\n\tfor (var i=0; i<rules.length; i++) {\n\t\tresult += rules[i].cssText + \"\\n\";\n\t}\n\treturn result;\n};\n\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/css3-animations/#DOM-CSSKeyframesRule\n */\nCSSOM.CSSKeyframesRule = function CSSKeyframesRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.name = '';\n\tthis.cssRules = [];\n};\n\nCSSOM.CSSKeyframesRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSKeyframesRule.prototype.constructor = CSSOM.CSSKeyframesRule;\nCSSOM.CSSKeyframesRule.prototype.type = 7;\n//FIXME\n//CSSOM.CSSKeyframesRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;\n//CSSOM.CSSKeyframesRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;\n\n// http://www.opensource.apple.com/source/WebCore/WebCore-955.66.1/css/WebKitCSSKeyframesRule.cpp\nObject.defineProperty(CSSOM.CSSKeyframesRule.prototype, \"cssText\", {\n get: function() {\n var cssTexts = [];\n for (var i=0, length=this.cssRules.length; i < length; i++) {\n cssTexts.push(\" \" + this.cssRules[i].cssText);\n }\n return \"@\" + (this._vendorPrefix || '') + \"keyframes \" + this.name + \" { \\n\" + cssTexts.join(\"\\n\") + \"\\n}\";\n }\n});\n\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/css3-animations/#DOM-CSSKeyframeRule\n */\nCSSOM.CSSKeyframeRule = function CSSKeyframeRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.keyText = '';\n\tthis.style = new CSSOM.CSSStyleDeclaration();\n\tthis.style.parentRule = this;\n};\n\nCSSOM.CSSKeyframeRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSKeyframeRule.prototype.constructor = CSSOM.CSSKeyframeRule;\nCSSOM.CSSKeyframeRule.prototype.type = 8;\n//FIXME\n//CSSOM.CSSKeyframeRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;\n//CSSOM.CSSKeyframeRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;\n\n// http://www.opensource.apple.com/source/WebCore/WebCore-955.66.1/css/WebKitCSSKeyframeRule.cpp\nObject.defineProperty(CSSOM.CSSKeyframeRule.prototype, \"cssText\", {\n get: function() {\n return this.keyText + \" {\" + this.style.cssText + \"} \";\n }\n});\n\n\n\n/**\n * @constructor\n * @see https://developer.mozilla.org/en/CSS/@-moz-document\n */\nCSSOM.MatcherList = function MatcherList(){\n this.length = 0;\n};\n\nCSSOM.MatcherList.prototype = {\n\n constructor: CSSOM.MatcherList,\n\n /**\n * @return {string}\n */\n get matcherText() {\n return Array.prototype.join.call(this, \", \");\n },\n\n /**\n * @param {string} value\n */\n set matcherText(value) {\n // just a temporary solution, actually it may be wrong by just split the value with ',', because a url can include ','.\n var values = value.split(\",\");\n var length = this.length = values.length;\n for (var i=0; i<length; i++) {\n this[i] = values[i].trim();\n }\n },\n\n /**\n * @param {string} matcher\n */\n appendMatcher: function(matcher) {\n if (Array.prototype.indexOf.call(this, matcher) === -1) {\n this[this.length] = matcher;\n this.length++;\n }\n },\n\n /**\n * @param {string} matcher\n */\n deleteMatcher: function(matcher) {\n var index = Array.prototype.indexOf.call(this, matcher);\n if (index !== -1) {\n Array.prototype.splice.call(this, index, 1);\n }\n }\n\n};\n\n\n\n/**\n * @constructor\n * @see https://developer.mozilla.org/en/CSS/@-moz-document\n */\nCSSOM.CSSDocumentRule = function CSSDocumentRule() {\n CSSOM.CSSRule.call(this);\n this.matcher = new CSSOM.MatcherList();\n this.cssRules = [];\n};\n\nCSSOM.CSSDocumentRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSDocumentRule.prototype.constructor = CSSOM.CSSDocumentRule;\nCSSOM.CSSDocumentRule.prototype.type = 10;\n//FIXME\n//CSSOM.CSSDocumentRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;\n//CSSOM.CSSDocumentRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;\n\nObject.defineProperty(CSSOM.CSSDocumentRule.prototype, \"cssText\", {\n get: function() {\n var cssTexts = [];\n for (var i=0, length=this.cssRules.length; i < length; i++) {\n cssTexts.push(this.cssRules[i].cssText);\n }\n return \"@-moz-document \" + this.matcher.matcherText + \" {\" + cssTexts.join(\"\") + \"}\";\n }\n});\n\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValue\n *\n * TODO: add if needed\n */\nCSSOM.CSSValue = function CSSValue() {\n};\n\nCSSOM.CSSValue.prototype = {\n\tconstructor: CSSOM.CSSValue,\n\n\t// @see: http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValue\n\tset cssText(text) {\n\t\tvar name = this._getConstructorName();\n\n\t\tthrow new Error('DOMException: property \"cssText\" of \"' + name + '\" is readonly and can not be replaced with \"' + text + '\"!');\n\t},\n\n\tget cssText() {\n\t\tvar name = this._getConstructorName();\n\n\t\tthrow new Error('getter \"cssText\" of \"' + name + '\" is not implemented!');\n\t},\n\n\t_getConstructorName: function() {\n\t\tvar s = this.constructor.toString(),\n\t\t\t\tc = s.match(/function\\s([^\\(]+)/),\n\t\t\t\tname = c[1];\n\n\t\treturn name;\n\t}\n};\n\n\n\n/**\n * @constructor\n * @see http://msdn.microsoft.com/en-us/library/ms537634(v=vs.85).aspx\n *\n */\nCSSOM.CSSValueExpression = function CSSValueExpression(token, idx) {\n\tthis._token = token;\n\tthis._idx = idx;\n};\n\nCSSOM.CSSValueExpression.prototype = new CSSOM.CSSValue();\nCSSOM.CSSValueExpression.prototype.constructor = CSSOM.CSSValueExpression;\n\n/**\n * parse css expression() value\n *\n * @return {Object}\n * - error:\n * or\n * - idx:\n * - expression:\n *\n * Example:\n *\n * .selector {\n *\t\tzoom: expression(documentElement.clientWidth > 1000 ? '1000px' : 'auto');\n * }\n */\nCSSOM.CSSValueExpression.prototype.parse = function() {\n\tvar token = this._token,\n\t\t\tidx = this._idx;\n\n\tvar character = '',\n\t\t\texpression = '',\n\t\t\terror = '',\n\t\t\tinfo,\n\t\t\tparen = [];\n\n\n\tfor (; ; ++idx) {\n\t\tcharacter = token.charAt(idx);\n\n\t\t// end of token\n\t\tif (character === '') {\n\t\t\terror = 'css expression error: unfinished expression!';\n\t\t\tbreak;\n\t\t}\n\n\t\tswitch(character) {\n\t\t\tcase '(':\n\t\t\t\tparen.push(character);\n\t\t\t\texpression += character;\n\t\t\t\tbreak;\n\n\t\t\tcase ')':\n\t\t\t\tparen.pop(character);\n\t\t\t\texpression += character;\n\t\t\t\tbreak;\n\n\t\t\tcase '/':\n\t\t\t\tif ((info = this._parseJSComment(token, idx))) { // comment?\n\t\t\t\t\tif (info.error) {\n\t\t\t\t\t\terror = 'css expression error: unfinished comment in expression!';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tidx = info.idx;\n\t\t\t\t\t\t// ignore the comment\n\t\t\t\t\t}\n\t\t\t\t} else if ((info = this._parseJSRexExp(token, idx))) { // regexp\n\t\t\t\t\tidx = info.idx;\n\t\t\t\t\texpression += info.text;\n\t\t\t\t} else { // other\n\t\t\t\t\texpression += character;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"'\":\n\t\t\tcase '\"':\n\t\t\t\tinfo = this._parseJSString(token, idx, character);\n\t\t\t\tif (info) { // string\n\t\t\t\t\tidx = info.idx;\n\t\t\t\t\texpression += info.text;\n\t\t\t\t} else {\n\t\t\t\t\texpression += character;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\texpression += character;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (error) {\n\t\t\tbreak;\n\t\t}\n\n\t\t// end of expression\n\t\tif (paren.length === 0) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tvar ret;\n\tif (error) {\n\t\tret = {\n\t\t\terror: error\n\t\t};\n\t} else {\n\t\tret = {\n\t\t\tidx: idx,\n\t\t\texpression: expression\n\t\t};\n\t}\n\n\treturn ret;\n};\n\n\n/**\n *\n * @return {Object|false}\n * - idx:\n * - text:\n * or\n * - error:\n * or\n * false\n *\n */\nCSSOM.CSSValueExpression.prototype._parseJSComment = function(token, idx) {\n\tvar nextChar = token.charAt(idx + 1),\n\t\t\ttext;\n\n\tif (nextChar === '/' || nextChar === '*') {\n\t\tvar startIdx = idx,\n\t\t\t\tendIdx,\n\t\t\t\tcommentEndChar;\n\n\t\tif (nextChar === '/') { // line comment\n\t\t\tcommentEndChar = '\\n';\n\t\t} else if (nextChar === '*') { // block comment\n\t\t\tcommentEndChar = '*/';\n\t\t}\n\n\t\tendIdx = token.indexOf(commentEndChar, startIdx + 1 + 1);\n\t\tif (endIdx !== -1) {\n\t\t\tendIdx = endIdx + commentEndChar.length - 1;\n\t\t\ttext = token.substring(idx, endIdx + 1);\n\t\t\treturn {\n\t\t\t\tidx: endIdx,\n\t\t\t\ttext: text\n\t\t\t};\n\t\t} else {\n\t\t\tvar error = 'css expression error: unfinished comment in expression!';\n\t\t\treturn {\n\t\t\t\terror: error\n\t\t\t};\n\t\t}\n\t} else {\n\t\treturn false;\n\t}\n};\n\n\n/**\n *\n * @return {Object|false}\n *\t\t\t\t\t- idx:\n *\t\t\t\t\t- text:\n *\t\t\t\t\tor \n *\t\t\t\t\tfalse\n *\n */\nCSSOM.CSSValueExpression.prototype._parseJSString = function(token, idx, sep) {\n\tvar endIdx = this._findMatchedIdx(token, idx, sep),\n\t\t\ttext;\n\n\tif (endIdx === -1) {\n\t\treturn false;\n\t} else {\n\t\ttext = token.substring(idx, endIdx + sep.length);\n\n\t\treturn {\n\t\t\tidx: endIdx,\n\t\t\ttext: text\n\t\t};\n\t}\n};\n\n\n/**\n * parse regexp in css expression\n *\n * @return {Object|false}\n *\t\t\t\t- idx:\n *\t\t\t\t- regExp:\n *\t\t\t\tor \n *\t\t\t\tfalse\n */\n\n/*\n\nall legal RegExp\n \n/a/\n(/a/)\n[/a/]\n[12, /a/]\n\n!/a/\n\n+/a/\n-/a/\n* /a/\n/ /a/\n%/a/\n\n===/a/\n!==/a/\n==/a/\n!=/a/\n>/a/\n>=/a/\n</a/\n<=/a/\n\n&/a/\n|/a/\n^/a/\n~/a/\n<</a/\n>>/a/\n>>>/a/\n\n&&/a/\n||/a/\n?/a/\n=/a/\n,/a/\n\n\t\tdelete /a/\n\t\t\t\tin /a/\ninstanceof /a/\n\t\t\t\tnew /a/\n\t\ttypeof /a/\n\t\t\tvoid /a/\n\n*/\nCSSOM.CSSValueExpression.prototype._parseJSRexExp = function(token, idx) {\n\tvar before = token.substring(0, idx).replace(/\\s+$/, \"\"),\n\t\t\tlegalRegx = [\n\t\t\t\t/^$/,\n\t\t\t\t/\\($/,\n\t\t\t\t/\\[$/,\n\t\t\t\t/\\!$/,\n\t\t\t\t/\\+$/,\n\t\t\t\t/\\-$/,\n\t\t\t\t/\\*$/,\n\t\t\t\t/\\/\\s+/,\n\t\t\t\t/\\%$/,\n\t\t\t\t/\\=$/,\n\t\t\t\t/\\>$/,\n\t\t\t\t/<$/,\n\t\t\t\t/\\&$/,\n\t\t\t\t/\\|$/,\n\t\t\t\t/\\^$/,\n\t\t\t\t/\\~$/,\n\t\t\t\t/\\?$/,\n\t\t\t\t/\\,$/,\n\t\t\t\t/delete$/,\n\t\t\t\t/in$/,\n\t\t\t\t/instanceof$/,\n\t\t\t\t/new$/,\n\t\t\t\t/typeof$/,\n\t\t\t\t/void$/\n\t\t\t];\n\n\tvar isLegal = legalRegx.some(function(reg) {\n\t\treturn reg.test(before);\n\t});\n\n\tif (!isLegal) {\n\t\treturn false;\n\t} else {\n\t\tvar sep = '/';\n\n\t\t// same logic as string\n\t\treturn this._parseJSString(token, idx, sep);\n\t}\n};\n\n\n/**\n *\n * find next sep(same line) index in `token`\n *\n * @return {Number}\n *\n */\nCSSOM.CSSValueExpression.prototype._findMatchedIdx = function(token, idx, sep) {\n\tvar startIdx = idx,\n\t\t\tendIdx;\n\n\tvar NOT_FOUND = -1;\n\n\twhile(true) {\n\t\tendIdx = token.indexOf(sep, startIdx + 1);\n\n\t\tif (endIdx === -1) { // not found\n\t\t\tendIdx = NOT_FOUND;\n\t\t\tbreak;\n\t\t} else {\n\t\t\tvar text = token.substring(idx + 1, endIdx),\n\t\t\t\t\tmatched = text.match(/\\\\+$/);\n\t\t\tif (!matched || matched[0] % 2 === 0) { // not escaped\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tstartIdx = endIdx;\n\t\t\t}\n\t\t}\n\t}\n\n\t// boundary must be in the same line(js sting or regexp)\n\tvar nextNewLineIdx = token.indexOf('\\n', idx + 1);\n\tif (nextNewLineIdx < endIdx) {\n\t\tendIdx = NOT_FOUND;\n\t}\n\n\n\treturn endIdx;\n};\n\n\n\n\n\n/**\n * @constructor\n * @see https://drafts.csswg.org/css-cascade-5/#csslayerblockrule\n */\nCSSOM.CSSLayerBlockRule = function CSSLayerBlockRule() {\n CSSOM.CSSGroupingRule.call(this);\n this.layerName = \"\";\n this.cssRules = [];\n};\n\nCSSOM.CSSLayerBlockRule.prototype = new CSSOM.CSSGroupingRule();\nCSSOM.CSSLayerBlockRule.prototype.constructor = CSSOM.CSSLayerBlockRule;\nCSSOM.CSSLayerBlockRule.prototype.type = 18;\n\nObject.defineProperties(CSSOM.CSSLayerBlockRule.prototype, {\n layerNameText: {\n get: function () {\n return this.layerName;\n },\n set: function (value) {\n this.layerName = value;\n },\n configurable: true,\n enumerable: true,\n },\n cssText: {\n get: function () {\n var cssTexts = [];\n for (var i = 0, length = this.cssRules.length; i < length; i++) {\n cssTexts.push(this.cssRules[i].cssText);\n }\n return \"@layer \" + this.layerNameText + \" {\" + cssTexts.join(\"\") + \"}\";\n },\n configurable: true,\n enumerable: true,\n },\n});\n\n\n/**\n * @param {string} token\n */\nCSSOM.parse = function parse(token) {\n\n\tvar i = 0;\n\n\t/**\n\t\t\"before-selector\" or\n\t\t\"selector\" or\n\t\t\"atRule\" or\n\t\t\"atBlock\" or\n\t\t\"conditionBlock\" or\n\t\t\"before-name\" or\n\t\t\"name\" or\n\t\t\"before-value\" or\n\t\t\"value\"\n\t*/\n\tvar state = \"before-selector\";\n\n\tvar index;\n\tvar buffer = \"\";\n\tvar valueParenthesisDepth = 0;\n\n\tvar SIGNIFICANT_WHITESPACE = {\n\t\t\"selector\": true,\n\t\t\"value\": true,\n\t\t\"value-parenthesis\": true,\n\t\t\"atRule\": true,\n\t\t\"importRule-begin\": true,\n\t\t\"importRule\": true,\n\t\t\"atBlock\": true,\n\t\t\"containerBlock\": true,\n\t\t\"conditionBlock\": true,\n\t\t'documentRule-begin': true,\n\t\t\"layerBlock\": true\n\t};\n\n\tvar styleSheet = new CSSOM.CSSStyleSheet();\n\n\t// @type CSSStyleSheet|CSSMediaRule|CSSContainerRule|CSSSupportsRule|CSSFontFaceRule|CSSKeyframesRule|CSSDocumentRule\n\tvar currentScope = styleSheet;\n\n\t// @type CSSMediaRule|CSSContainerRule|CSSSupportsRule|CSSKeyframesRule|CSSDocumentRule\n\tvar parentRule;\n\n\tvar ancestorRules = [];\n\tvar hasAncestors = false;\n\tvar prevScope;\n\n\tvar name, priority=\"\", styleRule, mediaRule, containerRule, supportsRule, importRule, fontFaceRule, keyframesRule, documentRule, hostRule, startingStyleRule, layerBlockRule;\n\n\tvar atKeyframesRegExp = /@(-(?:\\w+-)+)?keyframes/g;\n\n\tvar parseError = function(message) {\n\t\tvar lines = token.substring(0, i).split('\\n');\n\t\tvar lineCount = lines.length;\n\t\tvar charCount = lines.pop().length + 1;\n\t\tvar error = new Error(message + ' (line ' + lineCount + ', char ' + charCount + ')');\n\t\terror.line = lineCount;\n\t\t/* jshint sub : true */\n\t\terror['char'] = charCount;\n\t\terror.styleSheet = styleSheet;\n\t\tthrow error;\n\t};\n\n\tfor (var character; (character = token.charAt(i)); i++) {\n\n\t\tswitch (character) {\n\n\t\tcase \" \":\n\t\tcase \"\\t\":\n\t\tcase \"\\r\":\n\t\tcase \"\\n\":\n\t\tcase \"\\f\":\n\t\t\tif (SIGNIFICANT_WHITESPACE[state]) {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\t// String\n\t\tcase '\"':\n\t\t\tindex = i + 1;\n\t\t\tdo {\n\t\t\t\tindex = token.indexOf('\"', index) + 1;\n\t\t\t\tif (!index) {\n\t\t\t\t\tparseError('Unmatched \"');\n\t\t\t\t}\n\t\t\t} while (token[index - 2] === '\\\\');\n\t\t\tbuffer += token.slice(i, index);\n\t\t\ti = index - 1;\n\t\t\tswitch (state) {\n\t\t\t\tcase 'before-value':\n\t\t\t\t\tstate = 'value';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'importRule-begin':\n\t\t\t\t\tstate = 'importRule';\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"'\":\n\t\t\tindex = i + 1;\n\t\t\tdo {\n\t\t\t\tindex = token.indexOf(\"'\", index) + 1;\n\t\t\t\tif (!index) {\n\t\t\t\t\tparseError(\"Unmatched '\");\n\t\t\t\t}\n\t\t\t} while (token[index - 2] === '\\\\');\n\t\t\tbuffer += token.slice(i, index);\n\t\t\ti = index - 1;\n\t\t\tswitch (state) {\n\t\t\t\tcase 'before-value':\n\t\t\t\t\tstate = 'value';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'importRule-begin':\n\t\t\t\t\tstate = 'importRule';\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\n\t\t// Comment\n\t\tcase \"/\":\n\t\t\tif (token.charAt(i + 1) === \"*\") {\n\t\t\t\ti += 2;\n\t\t\t\tindex = token.indexOf(\"*/\", i);\n\t\t\t\tif (index === -1) {\n\t\t\t\t\tparseError(\"Missing */\");\n\t\t\t\t} else {\n\t\t\t\t\ti = index + 1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tif (state === \"importRule-begin\") {\n\t\t\t\tbuffer += \" \";\n\t\t\t\tstate = \"importRule\";\n\t\t\t}\n\t\t\tbreak;\n\n\t\t// At-rule\n\t\tcase \"@\":\n\t\t\tif (token.indexOf(\"@-moz-document\", i) === i) {\n\t\t\t\tstate = \"documentRule-begin\";\n\t\t\t\tdocumentRule = new CSSOM.CSSDocumentRule();\n\t\t\t\tdocumentRule.__starts = i;\n\t\t\t\ti += \"-moz-document\".length;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tbreak;\n\t\t\t} else if (token.indexOf(\"@media\", i) === i) {\n\t\t\t\tstate = \"atBlock\";\n\t\t\t\tmediaRule = new CSSOM.CSSMediaRule();\n\t\t\t\tmediaRule.__starts = i;\n\t\t\t\ti += \"media\".length;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tbreak;\n\t\t\t} else if (token.indexOf(\"@container\", i) === i) {\n\t\t\t\tstate = \"containerBlock\";\n\t\t\t\tcontainerRule = new CSSOM.CSSContainerRule();\n\t\t\t\tcontainerRule.__starts = i;\n\t\t\t\ti += \"container\".length;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tbreak;\n\t\t\t} else if (token.indexOf(\"@layer\", i) === i) {\n\t\t\t\tstate = \"layerBlock\"\n\t\t\t\tlayerBlockRule = new CSSOM.CSSLayerBlockRule();\n\t\t\t\tlayerBlockRule.__starts = i;\n\t\t\t\ti += \"layer\".length;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tbreak;\n\t\t\t} else if (token.indexOf(\"@supports\", i) === i) {\n\t\t\t\tstate = \"conditionBlock\";\n\t\t\t\tsupportsRule = new CSSOM.CSSSupportsRule();\n\t\t\t\tsupportsRule.__starts = i;\n\t\t\t\ti += \"supports\".length;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tbreak;\n\t\t\t} else if (token.indexOf(\"@host\", i) === i) {\n\t\t\t\tstate = \"hostRule-begin\";\n\t\t\t\ti += \"host\".length;\n\t\t\t\thostRule = new CSSOM.CSSHostRule();\n\t\t\t\thostRule.__starts = i;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tbreak;\n\t\t\t} else if (token.indexOf(\"@starting-style\", i) === i) {\n\t\t\t\tstate = \"startingStyleRule-begin\";\n\t\t\t\ti += \"starting-style\".length;\n\t\t\t\tstartingStyleRule = new CSSOM.CSSStartingStyleRule();\n\t\t\t\tstartingStyleRule.__starts = i;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tbreak;\n\t\t\t} else if (token.indexOf(\"@import\", i) === i) {\n\t\t\t\tstate = \"importRule-begin\";\n\t\t\t\ti += \"import\".length;\n\t\t\t\tbuffer += \"@import\";\n\t\t\t\tbreak;\n\t\t\t} else if (token.indexOf(\"@font-face\", i) === i) {\n\t\t\t\tstate = \"fontFaceRule-begin\";\n\t\t\t\ti += \"font-face\".length;\n\t\t\t\tfontFaceRule = new CSSOM.CSSFontFaceRule();\n\t\t\t\tfontFaceRule.__starts = i;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tatKeyframesRegExp.lastIndex = i;\n\t\t\t\tvar matchKeyframes = atKeyframesRegExp.exec(token);\n\t\t\t\tif (matchKeyframes && matchKeyframes.index === i) {\n\t\t\t\t\tstate = \"keyframesRule-begin\";\n\t\t\t\t\tkeyframesRule = new CSSOM.CSSKeyframesRule();\n\t\t\t\t\tkeyframesRule.__starts = i;\n\t\t\t\t\tkeyframesRule._vendorPrefix = matchKeyframes[1]; // Will come out as undefined if no prefix was found\n\t\t\t\t\ti += matchKeyframes[0].length - 1;\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (state === \"selector\") {\n\t\t\t\t\tstate = \"atRule\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuffer += character;\n\t\t\tbreak;\n\n\t\tcase \"{\":\n\t\t\tif (state === \"selector\" || state === \"atRule\") {\n\t\t\t\tstyleRule.selectorText = buffer.trim();\n\t\t\t\tstyleRule.style.__starts = i;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-name\";\n\t\t\t} else if (state === \"atBlock\") {\n\t\t\t\tmediaRule.media.mediaText = buffer.trim();\n\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tancestorRules.push(parentRule);\n\t\t\t\t}\n\n\t\t\t\tcurrentScope = parentRule = mediaRule;\n\t\t\t\tmediaRule.parentStyleSheet = styleSheet;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-selector\";\n\t\t\t} else if (state === \"containerBlock\") {\n\t\t\t\tcontainerRule.containerText = buffer.trim();\n\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tancestorRules.push(parentRule);\n\t\t\t\t}\n\t\t\t\tcurrentScope = parentRule = containerRule;\n\t\t\t\tcontainerRule.parentStyleSheet = styleSheet;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-selector\";\n\t\t\t} else if (state === \"conditionBlock\") {\n\t\t\t\tsupportsRule.conditionText = buffer.trim();\n\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tancestorRules.push(parentRule);\n\t\t\t\t}\n\n\t\t\t\tcurrentScope = parentRule = supportsRule;\n\t\t\t\tsupportsRule.parentStyleSheet = styleSheet;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-selector\";\n\t\t\t} else if (state === \"layerBlock\") {\n\t\t\t\tlayerBlockRule.layerNameText = buffer.trim();\n\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tancestorRules.push(parentRule);\n\t\t\t\t}\n\n\t\t\t\tcurrentScope = parentRule = layerBlockRule;\n\t\t\t\tlayerBlockRule.parentStyleSheet = styleSheet;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-selector\";\n\t\t\t} else if (state === \"hostRule-begin\") {\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tancestorRules.push(parentRule);\n\t\t\t\t}\n\n\t\t\t\tcurrentScope = parentRule = hostRule;\n\t\t\t\thostRule.parentStyleSheet = styleSheet;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-selector\";\n\t\t\t} else if (state === \"startingStyleRule-begin\") {\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tancestorRules.push(parentRule);\n\t\t\t\t}\n\n\t\t\t\tcurrentScope = parentRule = startingStyleRule;\n\t\t\t\tstartingStyleRule.parentStyleSheet = styleSheet;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-selector\";\n\n\t\t\t} else if (state === \"fontFaceRule-begin\") {\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tfontFaceRule.parentRule = parentRule;\n\t\t\t\t}\n\t\t\t\tfontFaceRule.parentStyleSheet = styleSheet;\n\t\t\t\tstyleRule = fontFaceRule;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-name\";\n\t\t\t} else if (state === \"keyframesRule-begin\") {\n\t\t\t\tkeyframesRule.name = buffer.trim();\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tancestorRules.push(parentRule);\n\t\t\t\t\tkeyframesRule.parentRule = parentRule;\n\t\t\t\t}\n\t\t\t\tkeyframesRule.parentStyleSheet = styleSheet;\n\t\t\t\tcurrentScope = parentRule = keyframesRule;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"keyframeRule-begin\";\n\t\t\t} else if (state === \"keyframeRule-begin\") {\n\t\t\t\tstyleRule = new CSSOM.CSSKeyframeRule();\n\t\t\t\tstyleRule.keyText = buffer.trim();\n\t\t\t\tstyleRule.__starts = i;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-name\";\n\t\t\t} else if (state === \"documentRule-begin\") {\n\t\t\t\t// FIXME: what if this '{' is in the url text of the match function?\n\t\t\t\tdocumentRule.matcher.matcherText = buffer.trim();\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tancestorRules.push(parentRule);\n\t\t\t\t\tdocumentRule.parentRule = parentRule;\n\t\t\t\t}\n\t\t\t\tcurrentScope = parentRule = documentRule;\n\t\t\t\tdocumentRule.parentStyleSheet = styleSheet;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-selector\";\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \":\":\n\t\t\tif (state === \"name\") {\n\t\t\t\tname = buffer.trim();\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-value\";\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"(\":\n\t\t\tif (state === 'value') {\n\t\t\t\t// ie css expression mode\n\t\t\t\tif (buffer.trim() === 'expression') {\n\t\t\t\t\tvar info = (new CSSOM.CSSValueExpression(token, i)).parse();\n\n\t\t\t\t\tif (info.error) {\n\t\t\t\t\t\tparseError(info.error);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbuffer += info.expression;\n\t\t\t\t\t\ti = info.idx;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tstate = 'value-parenthesis';\n\t\t\t\t\t//always ensure this is reset to 1 on transition\n\t\t\t\t\t//from value to value-parenthesis\n\t\t\t\t\tvalueParenthesisDepth = 1;\n\t\t\t\t\tbuffer += character;\n\t\t\t\t}\n\t\t\t} else if (state === 'value-parenthesis') {\n\t\t\t\tvalueParenthesisDepth++;\n\t\t\t\tbuffer += character;\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \")\":\n\t\t\tif (state === 'value-parenthesis') {\n\t\t\t\tvalueParenthesisDepth--;\n\t\t\t\tif (valueParenthesisDepth === 0) state = 'value';\n\t\t\t}\n\t\t\tbuffer += character;\n\t\t\tbreak;\n\n\t\tcase \"!\":\n\t\t\tif (state === \"value\" && token.indexOf(\"!important\", i) === i) {\n\t\t\t\tpriority = \"important\";\n\t\t\t\ti += \"important\".length;\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \";\":\n\t\t\tswitch (state) {\n\t\t\t\tcase \"value\":\n\t\t\t\t\tstyleRule.style.setProperty(name, buffer.trim(), priority);\n\t\t\t\t\tpriority = \"\";\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\tstate = \"before-name\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"atRule\":\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\tstate = \"before-selector\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"importRule\":\n\t\t\t\t\timportRule = new CSSOM.CSSImportRule();\n\t\t\t\t\timportRule.parentStyleSheet = importRule.styleSheet.parentStyleSheet = styleSheet;\n\t\t\t\t\timportRule.cssText = buffer + character;\n\t\t\t\t\tstyleSheet.cssRules.push(importRule);\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\tstate = \"before-selector\";\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbuffer += character;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"}\":\n\t\t\tswitch (state) {\n\t\t\t\tcase \"value\":\n\t\t\t\t\tstyleRule.style.setProperty(name, buffer.trim(), priority);\n\t\t\t\t\tpriority = \"\";\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase \"before-name\":\n\t\t\t\tcase \"name\":\n\t\t\t\t\tstyleRule.__ends = i + 1;\n\t\t\t\t\tif (parentRule) {\n\t\t\t\t\t\tstyleRule.parentRule = parentRule;\n\t\t\t\t\t}\n\t\t\t\t\tstyleRule.parentStyleSheet = styleSheet;\n\t\t\t\t\tcurrentScope.cssRules.push(styleRule);\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\tif (currentScope.constructor === CSSOM.CSSKeyframesRule) {\n\t\t\t\t\t\tstate = \"keyframeRule-begin\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"before-selector\";\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"keyframeRule-begin\":\n\t\t\t\tcase \"before-selector\":\n\t\t\t\tcase \"selector\":\n\t\t\t\t\t// End of media/supports/document rule.\n\t\t\t\t\tif (!parentRule) {\n\t\t\t\t\t\tparseError(\"Unexpected }\");\n\t\t\t\t\t}\n\n\t\t\t\t\t// Handle rules nested in @media or @supports\n\t\t\t\t\thasAncestors = ancestorRules.length > 0;\n\n\t\t\t\t\twhile (ancestorRules.length > 0) {\n\t\t\t\t\t\tparentRule = ancestorRules.pop();\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tparentRule.constructor.name === \"CSSMediaRule\"\n\t\t\t\t\t\t\t|| parentRule.constructor.name === \"CSSSupportsRule\"\n\t\t\t\t\t\t\t|| parentRule.constructor.name === \"CSSContainerRule\"\n\t\t\t\t\t\t\t|| parentRule.constructor.name === \"CSSLayerBlockRule\"\n\t\t\t\t\t\t\t|| parentRule.constructor.name === \"CSSStartingStyleRule\"\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tprevScope = currentScope;\n\t\t\t\t\t\t\tcurrentScope = parentRule;\n\t\t\t\t\t\t\tcurrentScope.cssRules.push(prevScope);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (ancestorRules.length === 0) {\n\t\t\t\t\t\t\thasAncestors = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (!hasAncestors) {\n\t\t\t\t\t\tcurrentScope.__ends = i + 1;\n\t\t\t\t\t\tstyleSheet.cssRules.push(currentScope);\n\t\t\t\t\t\tcurrentScope = styleSheet;\n\t\t\t\t\t\tparentRule = null;\n\t\t\t\t\t}\n\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\tstate = \"before-selector\";\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tswitch (state) {\n\t\t\t\tcase \"before-selector\":\n\t\t\t\t\tstate = \"selector\";\n\t\t\t\t\tstyleRule = new CSSOM.CSSStyleRule();\n\t\t\t\t\tstyleRule.__starts = i;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"before-name\":\n\t\t\t\t\tstate = \"name\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"before-value\":\n\t\t\t\t\tstate = \"value\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"importRule-begin\":\n\t\t\t\t\tstate = \"importRule\";\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbuffer += character;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn styleSheet;\n};\n\n\n\n/**\n * Produces a deep copy of stylesheet — the instance variables of stylesheet are copied recursively.\n * @param {CSSStyleSheet|CSSOM.CSSStyleSheet} stylesheet\n * @nosideeffects\n * @return {CSSOM.CSSStyleSheet}\n */\nCSSOM.clone = function clone(stylesheet) {\n\n\tvar cloned = new CSSOM.CSSStyleSheet();\n\n\tvar rules = stylesheet.cssRules;\n\tif (!rules) {\n\t\treturn cloned;\n\t}\n\n\tfor (var i = 0, rulesLength = rules.length; i < rulesLength; i++) {\n\t\tvar rule = rules[i];\n\t\tvar ruleClone = cloned.cssRules[i] = new rule.constructor();\n\n\t\tvar style = rule.style;\n\t\tif (style) {\n\t\t\tvar styleClone = ruleClone.style = new CSSOM.CSSStyleDeclaration();\n\t\t\tfor (var j = 0, styleLength = style.length; j < styleLength; j++) {\n\t\t\t\tvar name = styleClone[j] = style[j];\n\t\t\t\tstyleClone[name] = style[name];\n\t\t\t\tstyleClone._importants[name] = style.getPropertyPriority(name);\n\t\t\t}\n\t\t\tstyleClone.length = style.length;\n\t\t}\n\n\t\tif (rule.hasOwnProperty('keyText')) {\n\t\t\truleClone.keyText = rule.keyText;\n\t\t}\n\n\t\tif (rule.hasOwnProperty('selectorText')) {\n\t\t\truleClone.selectorText = rule.selectorText;\n\t\t}\n\n\t\tif (rule.hasOwnProperty('mediaText')) {\n\t\t\truleClone.mediaText = rule.mediaText;\n\t\t}\n\n\t\tif (rule.hasOwnProperty('conditionText')) {\n\t\t\truleClone.conditionText = rule.conditionText;\n\t\t}\n\n\t\tif (rule.hasOwnProperty('layerName')) {\n\t\t\truleClone.layerName = rule.layerName;\n\t\t}\n\n\t\tif (rule.hasOwnProperty('cssRules')) {\n\t\t\truleClone.cssRules = clone(rule).cssRules;\n\t\t}\n\t}\n\n\treturn cloned;\n\n};\n\n\n\n\t\t\t\t\t\t\t\texport { CSSOM };\n\t\t\t\t\t\t\t","export let SSR = \"dlssr\" as const;\nexport let SSR_DATA = SSR + \"-d\";\nexport let SSR_ID = SSR + \"i\";\n\nexport let CSS_IDENT = \"dlcss-\";\n","import { ComponentContext, DomImpl } from \"dreamland/core\";\n\n// @ts-expect-error rrweb-cssom doesn't have types\nimport { CSSOM } from \"rrweb-cssom\";\n\nimport {\n\tElement as DomElement,\n\tComment as DomComment,\n\tText as DomText,\n\tAnyNode as DomNode,\n} from \"domhandler\";\nimport { parseDocument } from \"htmlparser2\";\nimport renderToString from \"dom-serializer\";\nimport { CSS_IDENT, SSR_ID } from \"../common/consts\";\n\nexport class Node {\n\t_id!: number;\n\tnodeType!: number;\n\n\tparent?: Node;\n\tchildNodes: Node[] = [];\n\n\tappendChild(node: Node) {\n\t\tnode.parent = this;\n\t\tif (!this.childNodes.includes(node)) this.childNodes.push(node);\n\t\treturn node;\n\t}\n\tappend(node: Node) {\n\t\treturn this.appendChild(node);\n\t}\n\n\tremoveChild(node: Node) {\n\t\tnode.parent = undefined;\n\t\tthis.childNodes = this.childNodes.filter((x) => x !== node);\n\t}\n\n\tinsertBefore(node: Node, anchor: Node) {\n\t\tthis.removeChild(node);\n\t\tnode.parent = this;\n\t\tthis.childNodes.splice(\n\t\t\tthis.childNodes.findIndex((x) => x === anchor),\n\t\t\t0,\n\t\t\tnode\n\t\t);\n\t}\n\n\ttoStandard(): DomNode {\n\t\treturn null!;\n\t}\n\n\tget parentNode() {\n\t\treturn this.parent;\n\t}\n\n\tget firstChild() {\n\t\treturn this.childNodes[0];\n\t}\n\n\tget nextSibling() {\n\t\tlet self = this.parent?.childNodes?.findIndex((x) => x === this);\n\t\treturn this.parent?.childNodes[self! + 1];\n\t}\n}\n\nclass ClassList extends Array {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tadd(...classes: string[]) {\n\t\tthis.push(...classes.filter((x) => !this.includes(x)));\n\t}\n\tremove(...classes: string[]) {\n\t\tfor (let cls of classes) {\n\t\t\tlet idx = this.findIndex((x) => x === cls);\n\t\t\tif (idx !== -1) this.splice(idx, 1);\n\t\t}\n\t}\n\n\tempty(): boolean {\n\t\treturn this.length == 0;\n\t}\n\n\ttoString(): string {\n\t\treturn this.join(\" \");\n\t}\n\n\t_replace(classes: string[]) {\n\t\tthis.splice(0, this.length, ...classes);\n\t}\n}\n\nexport class Element extends Node {\n\tnodeType: number = 1;\n\n\tnamespace?: string;\n\n\ttype: string;\n\tattributes: Map<string, string> = new Map();\n\tclassList = new ClassList();\n\n\tcomponent: ComponentContext<any> | undefined;\n\n\tstyle = new CSSOM.CSSStyleDeclaration();\n\n\tconstructor(type: string, namespace?: string) {\n\t\tsuper();\n\n\t\tthis.type = type;\n\t\tthis.namespace = namespace;\n\t}\n\n\taddEventListener() {}\n\n\tsetAttribute(key: string, value: any) {\n\t\tif (key === \"class\") this.classList._replace(value.split(\" \"));\n\t\tthis.attributes.set(key, \"\" + value);\n\t}\n\tremoveAttribute(key: string) {\n\t\tif (key === \"class\") this.classList._replace([]);\n\t\tthis.attributes.delete(key);\n\t}\n\n\treplaceWith(el: Element) {\n\t\tif (!this.parent) throw new Error(\"element has no parent\");\n\t\tlet idx = this.parent.childNodes.findIndex((x) => x === this);\n\t\tthis.parent.childNodes[idx] = el;\n\t}\n\n\tget $() {\n\t\treturn this.component;\n\t}\n\n\tset $(value: any) {\n\t\tthis.component = value;\n\t}\n\n\tget innerHTML() {\n\t\treturn renderToString(this.childNodes.map((x) => x.toStandard()));\n\t}\n\tset innerHTML(value: string) {\n\t\tlet parsed = parseDocument(value);\n\t\tthis.childNodes = parsed.childNodes.map((node) =>\n\t\t\tfromDomhandler(node, this)\n\t\t);\n\t}\n\n\tset innerText(value: string) {\n\t\tthis.childNodes = [new Text(value)];\n\t}\n\n\ttoStandard(): DomElement {\n\t\tif (this.style.cssText) {\n\t\t\tthis.attributes.set(\"style\", this.style.cssText);\n\t\t}\n\n\t\tlet el = new DomElement(this.type, {\n\t\t\t...Object.fromEntries(this.attributes.entries()),\n\t\t\t...(this.classList.empty() ? {} : { class: this.classList.toString() }),\n\t\t});\n\t\tel.namespace = this.namespace;\n\t\tel.children = this.childNodes.map((x) => {\n\t\t\tlet child = x.toStandard();\n\t\t\tchild.parent = el;\n\t\t\treturn child;\n\t\t});\n\t\treturn el;\n\t}\n}\n\nfunction fromDomhandler(node: DomNode, parent: Node): Node {\n\tlet newNode: Node;\n\tif (node.type === \"text\") {\n\t\tnewNode = new Text((node as DomText).data);\n\t} else if (node.type === \"comment\") {\n\t\tnewNode = new Comment((node as DomComment).data);\n\t} else if (node.type === \"tag\") {\n\t\tconst element = new Element((node as DomElement).name);\n\t\tfor (const key in (node as DomElement).attribs) {\n\t\t\telement.setAttribute(key, (node as DomElement).attribs[key]);\n\t\t}\n\t\tfor (const child of (node as DomElement).childNodes) {\n\t\t\telement.appendChild(fromDomhandler(child, element));\n\t\t}\n\t\tnewNode = element;\n\t} else {\n\t\tnewNode = new Node();\n\t}\n\tnewNode.parent = parent;\n\treturn newNode;\n}\n\nexport class Style extends Element {\n\tconstructor() {\n\t\tsuper(\"style\");\n\t}\n\n\tsheet = new CSSOM.CSSStyleSheet();\n\n\tset innerText(value: string) {\n\t\tthis.sheet = CSSOM.parse(value);\n\t}\n\n\ttoStandard(): DomElement {\n\t\tthis.childNodes = [new Text(this.sheet.toString())];\n\t\treturn super.toStandard();\n\t}\n}\n\nexport class Comment extends Node {\n\tnodeType: number = 8;\n\tdata: string;\n\n\tconstructor(text: string) {\n\t\tsuper();\n\n\t\tthis.data = text;\n\t}\n\n\ttoStandard(): DomComment {\n\t\treturn new DomComment(this.data);\n\t}\n}\n\nexport class Text extends Node {\n\tnodeType: number = 3;\n\n\tdata: string;\n\n\tconstructor(text: string) {\n\t\tsuper();\n\n\t\tthis.data = text;\n\t}\n\n\ttoStandard(): DomText {\n\t\treturn new DomText(this.data);\n\t}\n}\n\nexport let newVDom = () => {\n\tlet elArr: Node[] = [];\n\tlet push = (el: Node) => {\n\t\tlet i = elArr.push(el) - 1;\n\t\tel._id = i;\n\t\tif (el instanceof Element) el.setAttribute(SSR_ID, \"\" + i);\n\t\treturn el;\n\t};\n\n\tlet identArr: Map<number, string> = new Map();\n\n\tlet promises: (Promise<any> | any)[] = [];\n\n\treturn [\n\t\t{\n\t\t\tcreateElement(type: string) {\n\t\t\t\treturn push(type === \"style\" ? new Style() : new Element(type));\n\t\t\t},\n\t\t\tcreateElementNS(ns: string, type: string) {\n\t\t\t\treturn push(new Element(type, ns));\n\t\t\t},\n\n\t\t\telArr,\n\t\t\tidentArr,\n\n\t\t\tpromises,\n\n\t\t\thead: new Element(\"head\"),\n\t\t},\n\t\tNode,\n\t\t(text?: any) => push(new Text(\"\" + text)),\n\t\t(text?: any) => push(new Comment(\"\" + text)),\n\t\t() => {\n\t\t\tlet ret = \"\" + identArr.size;\n\t\t\tidentArr.set(elArr.length, ret);\n\t\t\treturn ret;\n\t\t},\n\t\tnew Map(),\n\t\tundefined, // enables \"ssr mode\"\n\t\tundefined,\n\t\tundefined,\n\t\tpromises,\n\t\tpromises,\n\t] as const satisfies DomImpl;\n};\n","import { Pointer, DREAMLAND, NO_CHANGE } from \"dreamland/core\";\nimport { SsrData, SsrObject, SsrPointer, SsrValue } from \"./types\";\n\nexport let Json = JSON;\n\nexport let serializeState = (\n\tdata: SsrData,\n\tobject: object,\n\tisNode: (x: any) => boolean\n): SsrObject => {\n\tlet push = (arr: string[], val: any): number => {\n\t\tlet idx = arr.indexOf(val);\n\t\tif (idx != -1) return idx;\n\t\telse return arr.push(val) - 1;\n\t};\n\n\tlet exportPtr = (ptr: Pointer<any>): SsrPointer => {\n\t\tlet zipped = ptr[DREAMLAND]();\n\t\treturn zipped ? zipped.map(exportPtr) : { v: _val(ptr.value) };\n\t};\n\n\tlet isUndefined = (x: any): x is undefined => typeof x == \"undefined\";\n\n\tlet _val = (val: any): SsrValue | undefined => {\n\t\tif (![\"bigint\", \"function\", \"object\"].includes(typeof val)) {\n\t\t\treturn push(data.v, val);\n\t\t} else if (val instanceof Pointer) {\n\t\t\treturn [4, exportPtr(val)];\n\t\t} else if (val instanceof Map) {\n\t\t\tlet entries = Object.fromEntries(val.entries());\n\t\t\treturn [0, _serialize(entries)];\n\t\t} else if (val instanceof Set) {\n\t\t\tlet vals = [...val.values()].map((x) => _val(x));\n\t\t\tif (vals.some(isUndefined)) return;\n\n\t\t\treturn [2, vals];\n\t\t} else if (val instanceof Array) {\n\t\t\tlet vals = val.map((x) => _val(x));\n\t\t\tif (vals.some(isUndefined)) return;\n\n\t\t\treturn [3, vals];\n\t\t} else if (\n\t\t\ttypeof val === \"object\" &&\n\t\t\t[undefined, Object].includes(val.constructor)\n\t\t) {\n\t\t\treturn [1, _serialize(val)];\n\t\t} else if (!isNode(val)) {\n\t\t\tdev: {\n\t\t\t\tif (val instanceof Function) return;\n\n\t\t\t\tconsole.warn(\"[dreamland.js] did not serialize unknown value \", val);\n\t\t\t}\n\t\t}\n\t};\n\n\tlet _serialize = (object: any, root?: boolean): SsrObject => {\n\t\tlet out: SsrObject = [];\n\t\tif (!object[NO_CHANGE])\n\t\t\tfor (let k in object) {\n\t\t\t\tif (root && [\"cx\", \"root\"].includes(k)) continue;\n\n\t\t\t\tlet v = object[k];\n\t\t\t\tlet val = _val(v);\n\n\t\t\t\tif (!isUndefined(val)) out.push([push(data.k, k), val]);\n\t\t\t}\n\t\treturn out;\n\t};\n\n\treturn _serialize(object, true);\n};\n\nexport let hydrateState = (data: SsrData, state: SsrObject, target: any) => {\n\tlet hydratePtr = (ptr: Pointer<any>, data: SsrPointer) => {\n\t\tif (data instanceof Array) {\n\t\t\tptr[DREAMLAND]()!.forEach((x, i) => hydratePtr(x, data[i]));\n\t\t} else {\n\t\t\tptr.value = _val(data.v, ptr.value, true);\n\t\t}\n\t};\n\n\t// TODO this is ugly\n\tlet _val = (val: SsrValue, target?: any, ptr?: boolean): any => {\n\t\tif (typeof val == \"number\") {\n\t\t\treturn data.v[val];\n\t\t}\n\n\t\tlet [type, v] = val as any;\n\t\tif (type == 4) {\n\t\t\thydratePtr(target as Pointer<any>, v);\n\t\t\treturn ptr ? NO_CHANGE : target;\n\t\t} else if (type == 2) {\n\t\t\treturn new Set(v.map((x: SsrValue) => _val(x, {})));\n\t\t} else if (type == 0) {\n\t\t\tlet t = {};\n\t\t\t_hydrate(v, t);\n\t\t\treturn new Map(Object.entries(t));\n\t\t} else if (type == 3) {\n\t\t\treturn v.map((x: SsrValue) => _val(x, {}));\n\t\t} else if (type == 1) {\n\t\t\ttarget ||= {};\n\t\t\t_hydrate(v, target);\n\t\t\treturn target;\n\t\t}\n\t};\n\n\tlet _hydrate = (state: SsrObject, target: any) => {\n\t\tfor (let [_k, v] of state) {\n\t\t\tlet k = data.k[_k];\n\t\t\ttarget[k] = _val(v, target[k]);\n\t\t}\n\t};\n\n\t_hydrate(state, target);\n};\n","import { Element as DomElement, Text as DomText } from \"domhandler\";\nimport { setDomImpl, DomImpl, domImpl } from \"dreamland/core\";\nimport { Node as VdomNode, Comment, Text, Element, newVDom } from \"./vdom\";\nimport { AsyncLocalStorage } from \"node:async_hooks\";\n\nimport { CSS_IDENT, SSR_DATA } from \"../common/consts\";\nimport { Node, SsrData } from \"../common/types\";\nimport { serializeState } from \"../common/serialize\";\n\nexport interface RenderedComponent {\n\thead: DomElement[];\n\tdata: DomElement;\n\tcomponent: DomElement;\n}\n\nlet storage = new AsyncLocalStorage<DomImpl>();\nlet dom = domImpl;\nsetDomImpl(() => storage.getStore() || dom());\n\nexport async function render(\n\tcomponent: () => Promise<any> | any\n): Promise<RenderedComponent> {\n\tlet vdom = newVDom();\n\treturn storage.run(vdom, async () => {\n\t\tlet ret: any;\n\t\tret = await component();\n\t\twhile (vdom[0].promises.length) {\n\t\t\tawait Promise.all(vdom[0].promises.splice(0));\n\t\t}\n\n\t\tlet root: Element,\n\t\t\textraHead: Element[] = [];\n\t\tif (ret instanceof Array) {\n\t\t\troot = ret[0];\n\t\t\textraHead = ret[1];\n\t\t} else {\n\t\t\troot = ret;\n\t\t}\n\n\t\tlet domIds = new Set<number>();\n\t\tlet domCssIdents = new Set();\n\t\tlet walk = (el: VdomNode) => {\n\t\t\tdomIds.add(el._id);\n\t\t\tif (el instanceof Element && el.component) {\n\t\t\t\tif (el.component.id) domCssIdents.add(el.component.id);\n\t\t\t}\n\n\t\t\tfor (let node of el.childNodes) {\n\t\t\t\twalk(node);\n\t\t\t}\n\t\t};\n\t\twalk(root);\n\n\t\tlet data: SsrData = {\n\t\t\tk: [],\n\t\t\tv: [],\n\t\t\tn: {},\n\t\t\ti: Object.fromEntries(\n\t\t\t\t[...vdom[0].identArr.entries()].filter(([_, i]) =>\n\t\t\t\t\tdomCssIdents.has(CSS_IDENT + i)\n\t\t\t\t)\n\t\t\t),\n\t\t\tt: [],\n\t\t};\n\n\t\tfor (let el of vdom[0].elArr) {\n\t\t\tif (!domIds.has(el._id)) continue;\n\n\t\t\tlet node: Node | undefined;\n\t\t\tif (el instanceof Element && el.component) {\n\t\t\t\tnode = serializeState(\n\t\t\t\t\tdata,\n\t\t\t\t\tel.component.state,\n\t\t\t\t\t(x) => x instanceof vdom[1]\n\t\t\t\t);\n\t\t\t} else if ((el instanceof Comment || el instanceof Text) && el.parent) {\n\t\t\t\tnode = [el.parent._id, el.parent.childNodes.indexOf(el)];\n\t\t\t\tdev: {\n\t\t\t\t\tnode.push(el.data);\n\t\t\t\t}\n\t\t\t}\n\t\t\tdata.n[el._id] = node!;\n\t\t}\n\n\t\tlet seen = new Set<VdomNode>();\n\t\tfor (let el of vdom[0].elArr) {\n\t\t\tif (!(el instanceof Text) || !el.parent || seen.has(el)) continue;\n\n\t\t\tlet siblings = el.parent.childNodes;\n\t\t\tlet start = siblings.indexOf(el);\n\n\t\t\tlet run: Text[] = [];\n\t\t\tfor (\n\t\t\t\tlet j = start;\n\t\t\t\tj < siblings.length && siblings[j] instanceof Text;\n\t\t\t\tj++\n\t\t\t) {\n\t\t\t\trun.push(siblings[j] as Text);\n\t\t\t\tseen.add(siblings[j]);\n\t\t\t}\n\n\t\t\tif (run.length < 2) continue;\n\n\t\t\tfor (let j = 0; j < run.length; j++) {\n\t\t\t\tif (domIds.has(run[j]._id)) {\n\t\t\t\t\tdata.t.push([el.parent._id, start + j, run[j].data.length]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdev: {\n\t\t\tlet pruned = vdom[0].elArr\n\t\t\t\t.map((x) => x._id)\n\t\t\t\t.filter((id) => !domIds.has(id))\n\t\t\t\t.sort((a, b) => a - b);\n\n\t\t\tlet ranges: (number | [number, number])[] = [];\n\t\t\tlet start = -1,\n\t\t\t\tend = -1;\n\t\t\tlet flush = () => {\n\t\t\t\tif (end - start >= 2) ranges.push([start, end]);\n\t\t\t\telse for (let i = start; i <= end; i++) ranges.push(i);\n\t\t\t};\n\t\t\tfor (let id of pruned) {\n\t\t\t\tif (start === -1) {\n\t\t\t\t\tstart = end = id;\n\t\t\t\t} else if (id === end + 1) {\n\t\t\t\t\tend = id;\n\t\t\t\t} else {\n\t\t\t\t\tflush();\n\t\t\t\t\tstart = end = id;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (start !== -1) flush();\n\t\t\tdata.p = ranges;\n\t\t}\n\n\t\tlet head = [\n\t\t\t...extraHead,\n\t\t\t...vdom[0].head.childNodes.filter(\n\t\t\t\t(x) =>\n\t\t\t\t\tx instanceof Element &&\n\t\t\t\t\tdomCssIdents.has(x.attributes.get(CSS_IDENT + \"id\"))\n\t\t\t),\n\t\t].map((x) => x.toStandard()) as DomElement[];\n\n\t\treturn {\n\t\t\thead,\n\t\t\tdata: new DomElement(\n\t\t\t\t\"script\",\n\t\t\t\t{ type: \"application/json\", [SSR_DATA]: \":3\" },\n\t\t\t\t[new DomText(JSON.stringify(data))]\n\t\t\t),\n\t\t\tcomponent: root.toStandard(),\n\t\t};\n\t});\n}\n"],"names":["DomElement","DomComment","DomText"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export const DREAMLAND: unique symbol;
2
+ export const NO_CHANGE: unique symbol;
3
+
4
+ export const COMMA_TOKEN: unique symbol;
5
+ export const COMBINATOR_TOKEN: unique symbol;
6
+ export const ID_TOKEN: unique symbol;
7
+ export const CLASS_TOKEN: unique symbol;
8
+ export const PSEUDO_ELEMENT_TOKEN: unique symbol;
9
+ export const PSEUDO_CLASS_TOKEN: unique symbol;
10
+ export const UNIVERSAL_TOKEN: unique symbol;
11
+ export const ATTRIBUTE_TOKEN: unique symbol;
12
+ export const TYPE_TOKEN: unique symbol;
13
+
14
+ export const MAP: <K, V>(x?: [K, V][]) => Map<K, V>;
15
+ export const WEAKMAP: <K extends object, V>() => WeakMap<K, V>;
16
+ export const WEAKREF: <V extends object>(val: V) => WeakRef<V>;
@@ -0,0 +1,11 @@
1
+ import { ComponentFn, ComponentFnState } from "../jsx/definitions";
2
+ export type CssInit = {
3
+ _strings: TemplateStringsArray;
4
+ _funcs: (((state: any) => any) | string)[];
5
+ _rewrite: typeof _rewrite;
6
+ };
7
+ export declare let css: <T extends ComponentFn<any, any>>(_strings: TemplateStringsArray, ..._funcs: (((state: ComponentFnState<T>) => any) | string)[]) => CssInit;
8
+ export declare let CSS_COMPONENT: string;
9
+ export declare let genuid: () => any;
10
+ declare let _rewrite: (style: HTMLStyleElement, css: string, tag: string) => void;
11
+ export {};
@@ -0,0 +1,50 @@
1
+ import { COMMA_TOKEN, COMBINATOR_TOKEN, ID_TOKEN, CLASS_TOKEN, PSEUDO_ELEMENT_TOKEN, PSEUDO_CLASS_TOKEN, UNIVERSAL_TOKEN, ATTRIBUTE_TOKEN, TYPE_TOKEN } from "../consts";
2
+ export interface BaseToken {
3
+ readonly _type: symbol;
4
+ _content: string;
5
+ _pos: [number, number];
6
+ }
7
+ export interface CommaToken extends BaseToken {
8
+ _type: typeof COMMA_TOKEN;
9
+ }
10
+ export interface CombinatorToken extends BaseToken {
11
+ _type: typeof COMBINATOR_TOKEN;
12
+ }
13
+ export interface NamedToken extends BaseToken {
14
+ nm: string;
15
+ }
16
+ export interface IdToken extends NamedToken {
17
+ _type: typeof ID_TOKEN;
18
+ }
19
+ export interface ClassToken extends NamedToken {
20
+ _type: typeof CLASS_TOKEN;
21
+ }
22
+ export interface PseudoElementToken extends NamedToken {
23
+ _type: typeof PSEUDO_ELEMENT_TOKEN;
24
+ arg?: string;
25
+ }
26
+ export interface PseudoClassToken extends NamedToken {
27
+ _type: typeof PSEUDO_CLASS_TOKEN;
28
+ arg?: string;
29
+ }
30
+ export interface NamespacedToken extends BaseToken {
31
+ ns?: string;
32
+ }
33
+ export interface UniversalToken extends NamespacedToken {
34
+ _type: typeof UNIVERSAL_TOKEN;
35
+ }
36
+ export interface AttributeToken extends NamespacedToken, NamedToken {
37
+ _type: typeof ATTRIBUTE_TOKEN;
38
+ op?: string;
39
+ val?: string;
40
+ case?: "i" | "I" | "s" | "S";
41
+ }
42
+ export interface TypeToken extends NamespacedToken, NamedToken {
43
+ _type: typeof TYPE_TOKEN;
44
+ }
45
+ export interface UnknownToken extends BaseToken {
46
+ _type: never;
47
+ }
48
+ export type Token = AttributeToken | IdToken | ClassToken | CommaToken | CombinatorToken | PseudoElementToken | PseudoClassToken | UniversalToken | TypeToken | UnknownToken;
49
+ export declare let tokenize: (selector: string) => Token[];
50
+ export declare let stringify: (tokens: Token[]) => string;
@@ -0,0 +1,10 @@
1
+ import { Component, ComponentContext } from "./jsx/definitions";
2
+ export interface DelegateListener<T> {
3
+ _callback: (value: T) => void;
4
+ _cx?: ComponentContext<Component<any, any>>;
5
+ }
6
+ export type Delegate<T> = {
7
+ listen: (callback: (value: T) => void) => void;
8
+ (value: T): void;
9
+ };
10
+ export declare let createDelegate: <T>() => Delegate<T>;
@@ -0,0 +1,9 @@
1
+ import "./state";
2
+ export { Pointer } from "./state/pointers";
3
+ export { Stateful, createState, stateListen, stateProxy, isStateful, } from "./state/state";
4
+ export { createDelegate, Delegate } from "./delegate";
5
+ export { css } from "./css";
6
+ export { ComponentChild, Component, FC, ComponentState, ComponentContext, ComponentInstance, JSX, } from "./jsx/definitions";
7
+ export { h, jsx, Fragment } from "./jsx";
8
+ export { setDomImpl, getDom as domImpl, DomImpl } from "./jsx/dom";
9
+ export { DREAMLAND, NO_CHANGE } from "./consts";
@@ -0,0 +1,2 @@
1
+ import { ComponentChild } from "./definitions";
2
+ export declare let mapChild: (child: ComponentChild, parent: Node, cssIdent?: string, identOverride?: string) => Node[];
@@ -0,0 +1,76 @@
1
+ import { CssInit } from "../css";
2
+ import { Pointer } from "../state/pointers";
3
+ import { Stateful } from "../state/state";
4
+ import { COMMA_TOKEN } from "../consts";
5
+ export type ComponentChild = Node | string | number | boolean | null | undefined | ComponentChild[] | Pointer<ComponentChild>;
6
+ type BannedPropNames = "cx" | "root";
7
+ type BanProps<T extends object> = {
8
+ [K in keyof T]: K extends BannedPropNames ? never : T[K];
9
+ };
10
+ type MapChildren<ChildrenTy> = ChildrenTy extends Array<any> ? ChildrenTy : [ChildrenTy];
11
+ type _StateProps<Combined extends BanProps<Combined>> = {
12
+ [K in keyof Combined]: K extends "children" ? MapChildren<Combined[K]> : Combined[K];
13
+ } & {
14
+ root: JSX.Element;
15
+ cx: ComponentCx<_StateProps<Combined>>;
16
+ };
17
+ type StateProps<Props extends BanProps<Props>, This extends BanProps<This>> = _StateProps<Props & This>;
18
+ type ComponentStateProps<T extends Component<any, any>> = T extends Component<infer Props, infer This> ? StateProps<Props, This> : never;
19
+ export type FC<Props extends BanProps<Props> = {}, This extends BanProps<This> = {}> = Stateful<StateProps<Props, This>>;
20
+ export type ComponentFn<Props extends BanProps<Props> = {}, This extends BanProps<This> = {}> = {
21
+ ["typescript hackfix"](this: FC<Props, This>): HTMLElement;
22
+ }["typescript hackfix"];
23
+ export type Component<Props extends BanProps<Props> = {}, This extends BanProps<This> = {}> = ComponentFn<Props, This> & {
24
+ style?: CssInit;
25
+ };
26
+ type ComponentCx<StatefulProps extends {
27
+ [COMMA_TOKEN]?: never;
28
+ } & object> = {
29
+ state: Stateful<StatefulProps>;
30
+ id?: string;
31
+ init?: () => Promise<any> | any;
32
+ mount?: () => Promise<any> | any;
33
+ } & {
34
+ [K in keyof DLComponentContextExtraProps]?: DLComponentContextExtraProps[K];
35
+ };
36
+ export type ComponentFnState<T extends Component<any, any>> = T extends ComponentFn<infer Props, infer This> ? FC<Props, This> : never;
37
+ export type ComponentState<T extends Component<any, any>> = T extends Component<infer Props, infer This> ? FC<Props, This> : never;
38
+ export type ComponentContext<T extends Component<any, any>> = ComponentCx<ComponentStateProps<T>>;
39
+ export type ComponentInstance<T extends Component<any, any>> = HTMLElement & {
40
+ $: ComponentContext<T>;
41
+ };
42
+ type IntrinsicProps<ElementType extends Element> = {
43
+ this?: Pointer<ElementType | Element | null | undefined>;
44
+ children?: any;
45
+ [key: `class:${string}`]: Pointer<boolean> | boolean;
46
+ [key: `on:${string}`]: (e: any) => void;
47
+ [key: string]: any;
48
+ };
49
+ type DLElementTagNames = HTMLElementTagNameMap & HTMLElementDeprecatedTagNameMap & Pick<SVGElementTagNameMap, Exclude<keyof SVGElementTagNameMap, keyof HTMLElementTagNameMap>>;
50
+ export type DLElementNameToElement<T extends string> = T extends keyof DLElementTagNames ? DLElementTagNames[T] : HTMLElement;
51
+ type GlobalElement = Element;
52
+ type MappedProps<Props> = {
53
+ [Key in keyof Props]: Props[Key] | Pointer<Props[Key]>;
54
+ };
55
+ export declare namespace JSX {
56
+ type IntrinsicElements = {
57
+ [El in keyof DLElementTagNames]: IntrinsicProps<DLElementTagNames[El]>;
58
+ } & {
59
+ [element: string]: IntrinsicProps<GlobalElement>;
60
+ };
61
+ type ElementType = keyof IntrinsicElements | Component<any, any>;
62
+ type Element = HTMLElement;
63
+ type LibraryManagedAttributes<C, _> = C extends Component<infer Props, any> ? MappedProps<Props> : never;
64
+ }
65
+ import DLJSX = JSX;
66
+ declare global {
67
+ interface DLComponentContextExtraProps {
68
+ }
69
+ namespace JSX {
70
+ type IntrinsicElements = DLJSX.IntrinsicElements;
71
+ type ElementType = DLJSX.ElementType;
72
+ type Element = DLJSX.Element;
73
+ type LibraryManagedAttributes<A, B> = DLJSX.LibraryManagedAttributes<A, B>;
74
+ }
75
+ }
76
+ export {};
@@ -0,0 +1,28 @@
1
+ import { Component, ComponentContext, ComponentState } from "./definitions";
2
+ export declare let CSS_IDENT: string;
3
+ type NodeConstructor = (text?: string) => any;
4
+ type CssUidGenerator = (init: Component<any, any>) => string;
5
+ type IsHydrating = (el: HTMLElement) => boolean;
6
+ type SsrTransformCallback = <T extends Component<any, any>>(init: T, state: ComponentState<T>, cx?: ComponentContext<T>) => void;
7
+ type CxList = ComponentContext<Component<any, any>>[];
8
+ type CbRetList = (Promise<any> | any)[];
9
+ export type DomImpl = [
10
+ document: any,
11
+ Node: any,
12
+ new_Text: NodeConstructor,
13
+ new_Comment: NodeConstructor,
14
+ gencssuid: CssUidGenerator,
15
+ cssinfo: Map<any, any>,
16
+ hydrating?: IsHydrating,
17
+ ssrTransform?: SsrTransformCallback,
18
+ cxs?: CxList,
19
+ inits?: CbRetList,
20
+ mounts?: CbRetList
21
+ ];
22
+ export interface CssInfo {
23
+ _id: string;
24
+ _vars: [string, (props: any) => any][];
25
+ }
26
+ export declare let getDom: () => DomImpl;
27
+ export declare let setDomImpl: (impl: () => DomImpl) => void;
28
+ export {};
@@ -0,0 +1,14 @@
1
+ import { Component, ComponentChild, ComponentContext, ComponentInstance, DLElementNameToElement } from "./definitions";
2
+ import { DelegateListener } from "../delegate";
3
+ export declare let currentComponentCx: ComponentContext<Component<any, any>> | undefined;
4
+ export declare let callDelegateListeners: (value: any, listeners: DelegateListener<any>[]) => void;
5
+ declare function _jsx<T extends Component<any, any>>(init: T, props: Record<string, any> | null, key?: string): ComponentInstance<T>;
6
+ declare function _jsx<T extends string>(init: T, props: Record<string, any> | null, key?: string): DLElementNameToElement<T>;
7
+ declare function _h<T extends Component<any, any>>(init: T, props: Record<string, any> | null, ...children: ComponentChild[]): ComponentInstance<T>;
8
+ declare function _h<T extends string>(init: T, props: Record<string, any> | null, ...children: ComponentChild[]): DLElementNameToElement<T>;
9
+ export declare let h: typeof _h;
10
+ export declare let jsx: typeof _jsx;
11
+ export declare let Fragment: Component<{
12
+ children?: ComponentChild;
13
+ }>;
14
+ export {};
@@ -0,0 +1 @@
1
+ export { defineUse } from "./use";
@@ -0,0 +1,37 @@
1
+ import { DREAMLAND, NO_CHANGE } from "../consts";
2
+ import { ObjectProp } from "../utils";
3
+ import { Stateful } from "./state";
4
+ import { UseTrapMap } from "./use";
5
+ type StateStepVal = Pointer<ObjectProp> | ObjectProp;
6
+ export type PointerListener<T> = (val: T) => void;
7
+ export interface InitializingPointer {
8
+ _state: Stateful<any>;
9
+ _path: ObjectProp[];
10
+ }
11
+ export declare let initializeStep: (map: UseTrapMap, step: ObjectProp) => StateStepVal;
12
+ type Truthy<T> = NonNullable<Exclude<T, false | 0 | "" | null | undefined>>;
13
+ type Falsy<T> = Extract<T, false | 0 | "" | null | undefined>;
14
+ export declare class Pointer<T> {
15
+ get value(): T;
16
+ set value(val: T);
17
+ [DREAMLAND](): ReadonlyArray<Pointer<any>> | undefined;
18
+ [Symbol.toPrimitive](): symbol;
19
+ listen(func: PointerListener<T>): void;
20
+ zip<Ptrs extends ReadonlyArray<Pointer<any>>>(...pointers: Ptrs): Pointer<[
21
+ T,
22
+ ...{
23
+ [Idx in keyof Ptrs]: Ptrs[Idx] extends Pointer<infer Val> ? Val : never;
24
+ }
25
+ ]>;
26
+ and<R>(then: R | ((val: Truthy<T>) => R)): Pointer<Falsy<T> | R>;
27
+ or<R>(then: R | ((val: Falsy<T>) => R)): Pointer<Truthy<T> | R>;
28
+ not(): Pointer<boolean>;
29
+ map<U>(func: (val: T) => U): Pointer<U>;
30
+ map<U>(func: (val: T) => U, reverse: (val: U) => T | typeof NO_CHANGE): Pointer<U>;
31
+ mapEach<U, R>(this: Pointer<ArrayLike<U>>, func: (val: U, i: number) => R): Pointer<R[]>;
32
+ constrain(to: any): this;
33
+ unconstrain(to: any): void;
34
+ }
35
+ export declare let unwrapValue: <T>(val: Pointer<T> | T) => T;
36
+ export declare let maybeListen: <T>(val: Pointer<T> | T, constrain: any, func: (val: T) => void, pointer?: () => void) => void;
37
+ export {};
@@ -0,0 +1,13 @@
1
+ import { COMMA_TOKEN } from "../consts";
2
+ import { ObjectProp } from "../utils";
3
+ import { Pointer } from "./pointers";
4
+ export type StatefulListener = (newValue: any, prop: ObjectProp) => void;
5
+ export type Stateful<T extends object> = T & {
6
+ readonly [COMMA_TOKEN]: unique symbol;
7
+ };
8
+ export declare let _stateListen: <T extends object>(stateful: Stateful<T>, listener: WeakRef<StatefulListener>) => void;
9
+ export declare let _stateListenRemove: <T extends object>(stateful: Stateful<T>, listener: WeakRef<StatefulListener>) => void;
10
+ export declare let createState: <T extends object>(target: T) => Stateful<T>;
11
+ export declare let stateListen: <T extends object>(state: Stateful<T>, func: StatefulListener) => void;
12
+ export declare let stateProxy: <T extends object, Key extends keyof T & ObjectProp>(state: Stateful<T>, key: Key, ptr: Pointer<T[Key]>) => void;
13
+ export declare let isStateful: (val: any) => val is Stateful<any>;
@@ -0,0 +1,11 @@
1
+ import { InitializingPointer, Pointer } from "./pointers";
2
+ export type UseTrapElement = Pointer<any> | InitializingPointer;
3
+ export type UseTrapMap = Map<symbol, UseTrapElement>;
4
+ export declare let useTrapMap: UseTrapMap;
5
+ export declare let useTrap: boolean;
6
+ export declare let defineUse: () => void;
7
+ declare global {
8
+ function use<T>(stateful: T): Pointer<T>;
9
+ function use<T extends any[]>(...statefuls: T): Pointer<T>;
10
+ function use(template: TemplateStringsArray, ...params: any[]): Pointer<string>;
11
+ }
@@ -0,0 +1,4 @@
1
+ export type ObjectProp = string | symbol;
2
+ export declare let deref: <T extends object>(x: WeakRef<T>) => T | undefined;
3
+ export declare let fatal: () => never;
4
+ export declare let findLIS: (arr: number[]) => number[];