@rindo/core 1.8.12 → 2.5.2

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 (608) hide show
  1. package/LICENSE.md +27 -27
  2. package/bin/cli.ts +20 -0
  3. package/bin/rindo +51 -22
  4. package/cli/index.cjs +1263 -0
  5. package/cli/index.d.ts +15 -0
  6. package/cli/index.js +1237 -0
  7. package/cli/package.json +14 -0
  8. package/compiler/lib.d.ts +24 -0
  9. package/compiler/lib.dom.d.ts +20230 -0
  10. package/compiler/lib.dom.iterable.d.ts +351 -0
  11. package/compiler/lib.es2015.collection.d.ts +89 -0
  12. package/compiler/lib.es2015.core.d.ts +517 -0
  13. package/compiler/lib.es2015.d.ts +30 -0
  14. package/compiler/lib.es2015.generator.d.ts +79 -0
  15. package/compiler/lib.es2015.iterable.d.ts +505 -0
  16. package/compiler/lib.es2015.promise.d.ts +150 -0
  17. package/compiler/lib.es2015.proxy.d.ts +41 -0
  18. package/compiler/lib.es2015.reflect.d.ts +123 -0
  19. package/compiler/lib.es2015.symbol.d.ts +48 -0
  20. package/compiler/lib.es2015.symbol.wellknown.d.ts +324 -0
  21. package/compiler/lib.es2016.array.include.d.ts +118 -0
  22. package/compiler/lib.es2016.d.ts +22 -0
  23. package/compiler/lib.es2016.full.d.ts +25 -0
  24. package/compiler/lib.es2017.d.ts +26 -0
  25. package/compiler/lib.es2017.full.d.ts +25 -0
  26. package/compiler/lib.es2017.intl.d.ts +32 -0
  27. package/compiler/lib.es2017.object.d.ts +51 -0
  28. package/compiler/lib.es2017.sharedmemory.d.ts +137 -0
  29. package/compiler/lib.es2017.string.d.ts +47 -0
  30. package/compiler/lib.es2017.typedarrays.d.ts +55 -0
  31. package/compiler/lib.es2018.asyncgenerator.d.ts +79 -0
  32. package/compiler/lib.es2018.asynciterable.d.ts +45 -0
  33. package/compiler/lib.es2018.d.ts +26 -0
  34. package/compiler/lib.es2018.full.d.ts +25 -0
  35. package/compiler/lib.es2018.intl.d.ts +61 -0
  36. package/compiler/lib.es2018.promise.d.ts +32 -0
  37. package/compiler/lib.es2018.regexp.d.ts +39 -0
  38. package/compiler/lib.es2019.array.d.ts +85 -0
  39. package/compiler/lib.es2019.d.ts +25 -0
  40. package/compiler/lib.es2019.full.d.ts +25 -0
  41. package/compiler/lib.es2019.object.d.ts +35 -0
  42. package/compiler/lib.es2019.string.d.ts +33 -0
  43. package/compiler/lib.es2019.symbol.d.ts +26 -0
  44. package/compiler/lib.es2020.bigint.d.ts +728 -0
  45. package/compiler/lib.es2020.d.ts +27 -0
  46. package/compiler/lib.es2020.full.d.ts +25 -0
  47. package/compiler/lib.es2020.intl.d.ts +310 -0
  48. package/compiler/lib.es2020.promise.d.ts +50 -0
  49. package/compiler/lib.es2020.sharedmemory.d.ts +99 -0
  50. package/compiler/lib.es2020.string.d.ts +30 -0
  51. package/compiler/lib.es2020.symbol.wellknown.d.ts +39 -0
  52. package/compiler/lib.es5.d.ts +4435 -0
  53. package/compiler/lib.es6.d.ts +25 -0
  54. package/compiler/lib.esnext.d.ts +25 -0
  55. package/compiler/lib.esnext.full.d.ts +25 -0
  56. package/compiler/lib.esnext.intl.d.ts +32 -0
  57. package/compiler/lib.esnext.promise.d.ts +43 -0
  58. package/compiler/lib.esnext.string.d.ts +35 -0
  59. package/compiler/lib.esnext.weakref.d.ts +75 -0
  60. package/compiler/lib.scripthost.d.ts +327 -0
  61. package/compiler/lib.webworker.d.ts +6042 -0
  62. package/compiler/lib.webworker.importscripts.d.ts +26 -0
  63. package/compiler/lib.webworker.iterable.d.ts +166 -0
  64. package/compiler/package.json +8 -6
  65. package/compiler/rindo.d.ts +95 -0
  66. package/compiler/rindo.js +65051 -6657
  67. package/compiler/rindo.min.js +4 -0
  68. package/dependencies.json +103 -0
  69. package/dev-server/client/app-error.d.ts +18 -0
  70. package/dev-server/client/events.d.ts +6 -0
  71. package/dev-server/client/hmr-components.d.ts +1 -0
  72. package/dev-server/client/hmr-external-styles.d.ts +1 -0
  73. package/dev-server/client/hmr-images.d.ts +1 -0
  74. package/dev-server/client/hmr-inline-styles.d.ts +1 -0
  75. package/dev-server/client/hmr-util.d.ts +9 -0
  76. package/dev-server/client/hmr-window.d.ts +10 -0
  77. package/dev-server/client/index.d.ts +6 -0
  78. package/dev-server/client/index.js +808 -0
  79. package/dev-server/client/logger.d.ts +5 -0
  80. package/dev-server/client/package.json +8 -0
  81. package/dev-server/client/progress.d.ts +3 -0
  82. package/dev-server/client/status.d.ts +4 -0
  83. package/dev-server/connector.html +6 -0
  84. package/dev-server/index.d.ts +3 -0
  85. package/dev-server/index.js +264 -0
  86. package/dev-server/open-in-editor-api.js +1 -0
  87. package/dev-server/package.json +8 -0
  88. package/dev-server/server-process.js +1738 -0
  89. package/dev-server/server-worker-thread.js +39 -0
  90. package/{dist/dev-server → dev-server}/templates/directory-index.html +132 -132
  91. package/{dist/dev-server → dev-server}/templates/initial-load.html +160 -160
  92. package/dev-server/ws.js +1 -0
  93. package/internal/app-data/index.cjs +90 -0
  94. package/internal/app-data/index.d.ts +4 -0
  95. package/internal/{client/build-conditionals.mjs → app-data/index.js} +25 -21
  96. package/internal/app-data/package.json +15 -0
  97. package/internal/client/css-shim.js +4 -0
  98. package/internal/client/{dom.rindo-client.mjs → dom.js} +73 -137
  99. package/{dist/client/index.mjs → internal/client/index.js} +863 -789
  100. package/internal/client/package.json +8 -0
  101. package/internal/client/patch-browser.js +120 -0
  102. package/internal/client/patch-esm.js +23 -0
  103. package/internal/client/polyfills/core-js.js +11 -10
  104. package/internal/client/polyfills/css-shim.js +1 -656
  105. package/internal/client/polyfills/dom.js +79 -146
  106. package/internal/client/polyfills/es5-html-element.js +1 -18
  107. package/internal/client/polyfills/index.js +34 -35
  108. package/internal/client/{shadow-css.rindo-client.mjs → shadow-css.js} +20 -17
  109. package/internal/hydrate/index.js +1097 -0
  110. package/internal/hydrate/package.json +7 -0
  111. package/internal/hydrate/runner.d.ts +217 -0
  112. package/internal/hydrate/runner.js +777 -0
  113. package/internal/hydrate/shadow-css.js +146 -0
  114. package/internal/index.d.ts +4 -18
  115. package/internal/index.js +1 -1
  116. package/internal/package.json +9 -6
  117. package/internal/rindo-core/index.cjs +1 -0
  118. package/internal/rindo-core/index.d.ts +51 -0
  119. package/internal/rindo-core/index.js +15 -0
  120. package/internal/rindo-ext-modules.d.ts +41 -0
  121. package/internal/rindo-private.d.ts +2128 -0
  122. package/internal/rindo-public-compiler.d.ts +2170 -0
  123. package/{dist/declarations/docs.d.ts → internal/rindo-public-docs.d.ts} +13 -1
  124. package/internal/rindo-public-runtime.d.ts +1555 -0
  125. package/internal/testing/index.js +1055 -0
  126. package/internal/testing/package.json +7 -0
  127. package/internal/testing/shadow-css.js +146 -0
  128. package/mock-doc/index.cjs +4610 -0
  129. package/mock-doc/index.d.ts +916 -0
  130. package/mock-doc/index.js +4574 -2
  131. package/mock-doc/package.json +15 -10
  132. package/package.json +132 -186
  133. package/readme.md +21 -174
  134. package/screenshot/compare/build/app.css +1 -1
  135. package/screenshot/compare/build/app.esm.js +1 -1
  136. package/screenshot/compare/build/app.js +33 -818
  137. package/screenshot/compare/build/{p-113f7459.js → p-081b0641.js} +1 -1
  138. package/screenshot/compare/build/p-227a1e18.entry.js +1 -0
  139. package/screenshot/compare/build/p-2c298727.entry.js +1 -0
  140. package/screenshot/compare/build/p-5479268c.entry.js +1 -0
  141. package/screenshot/compare/build/p-573ec8a4.entry.js +1 -0
  142. package/screenshot/compare/build/p-6ba08604.entry.js +1 -0
  143. package/screenshot/compare/build/p-6bc63295.entry.js +1 -0
  144. package/screenshot/compare/build/p-7a3759fd.entry.js +1 -0
  145. package/screenshot/compare/build/{p-ejpsp3kx.js → p-7b4e3ba7.js} +1 -1
  146. package/screenshot/compare/build/p-988eb362.css +1 -0
  147. package/screenshot/compare/build/p-9b6a9315.js +1 -0
  148. package/screenshot/compare/build/p-b4cc611c.entry.js +1 -0
  149. package/screenshot/compare/build/p-d1bf53f5.entry.js +1 -0
  150. package/screenshot/compare/build/{p-efb0eac6.js → p-e2efe0df.js} +1 -1
  151. package/screenshot/compare/build/p-e8ca6d97.entry.js +1 -0
  152. package/screenshot/compare/build/p-ec2f13e0.entry.js +1 -0
  153. package/screenshot/compare/build/p-f0b99977.entry.js +1 -0
  154. package/screenshot/compare/build/p-f4745c2f.entry.js +1 -0
  155. package/screenshot/compare/build/p-fbbae598.js +1 -0
  156. package/screenshot/compare/host.config.json +14 -14
  157. package/screenshot/compare/index.html +1 -1
  158. package/{dist/screenshot → screenshot}/connector-base.d.ts +1 -1
  159. package/{dist/screenshot → screenshot}/connector-local.d.ts +1 -1
  160. package/screenshot/connector.js +2 -3
  161. package/{dist/screenshot → screenshot}/index.d.ts +1 -1
  162. package/screenshot/index.js +659 -2
  163. package/screenshot/local-connector.js +2 -3
  164. package/screenshot/package.json +15 -13
  165. package/screenshot/pixel-match.js +62 -49
  166. package/screenshot/screenshot-compare.d.ts +3 -0
  167. package/{dist/screenshot → screenshot}/screenshot-fs.d.ts +1 -1
  168. package/sys/deno/index.js +1785 -0
  169. package/sys/deno/node-compat.js +2654 -0
  170. package/sys/deno/worker.js +44 -0
  171. package/sys/node/autoprefixer.js +8 -0
  172. package/sys/node/glob.js +1 -0
  173. package/sys/node/graceful-fs.js +1 -0
  174. package/sys/node/index.d.ts +18 -0
  175. package/sys/node/index.js +1386 -2
  176. package/sys/node/node-fetch.js +1 -0
  177. package/sys/node/package.json +8 -5
  178. package/sys/node/prompts.js +1 -0
  179. package/sys/node/worker.js +52 -0
  180. package/{dist/testing → testing}/index.d.ts +5 -6
  181. package/testing/index.js +4017 -2
  182. package/testing/jest/jest-config.d.ts +5 -0
  183. package/{dist/testing → testing}/jest/jest-environment.d.ts +4 -2
  184. package/{dist/testing → testing}/jest/jest-preprocessor.d.ts +1 -0
  185. package/{dist/testing → testing}/jest/jest-runner.d.ts +1 -1
  186. package/{dist/testing → testing}/jest/jest-screenshot.d.ts +1 -1
  187. package/{dist/testing → testing}/jest/jest-serializer.d.ts +1 -1
  188. package/testing/jest-environment.js +3 -3
  189. package/testing/jest-preprocessor.js +3 -3
  190. package/testing/jest-preset.js +32 -40
  191. package/testing/jest-runner.js +3 -3
  192. package/testing/jest-setuptestframework.js +3 -3
  193. package/{dist/testing → testing}/matchers/events.d.ts +9 -1
  194. package/{dist/testing → testing}/matchers/index.d.ts +3 -1
  195. package/{dist/testing → testing}/matchers/screenshot.d.ts +1 -1
  196. package/testing/mock-fetch.d.ts +11 -0
  197. package/testing/mocks.d.ts +14 -0
  198. package/testing/package.json +8 -6
  199. package/testing/puppeteer/index.d.ts +2 -0
  200. package/{dist/testing → testing}/puppeteer/puppeteer-browser.d.ts +3 -3
  201. package/{dist/testing → testing}/puppeteer/puppeteer-declarations.d.ts +18 -18
  202. package/{dist/testing → testing}/puppeteer/puppeteer-element.d.ts +7 -5
  203. package/testing/puppeteer/puppeteer-emulate.d.ts +2 -0
  204. package/{dist/testing → testing}/puppeteer/puppeteer-events.d.ts +9 -9
  205. package/testing/puppeteer/puppeteer-page.d.ts +2 -0
  206. package/testing/puppeteer/puppeteer-screenshot.d.ts +4 -0
  207. package/testing/reset-build-conditionals.d.ts +2 -0
  208. package/testing/spec-page.d.ts +2 -0
  209. package/testing/test-transpile.d.ts +2 -0
  210. package/{dist/testing → testing}/testing-logger.d.ts +10 -8
  211. package/testing/testing-sys.d.ts +1 -0
  212. package/{dist/testing → testing}/testing-utils.d.ts +3 -2
  213. package/testing/testing.d.ts +2 -0
  214. package/build-conditionals/index.d.ts +0 -2
  215. package/build-conditionals/index.mjs +0 -66
  216. package/build-conditionals/package.json +0 -6
  217. package/compiler/index.js +0 -2
  218. package/dist/cli/index.js +0 -6068
  219. package/dist/client/css-shim-14a9812e.js +0 -656
  220. package/dist/client/css-shim-69821662.js +0 -658
  221. package/dist/client/declarations/rindo.core.d.ts +0 -1347
  222. package/dist/client/dom-68c8fe31.js +0 -139
  223. package/dist/client/dom-af01458a.js +0 -137
  224. package/dist/client/index.js +0 -2937
  225. package/dist/client/polyfills/core-js.js +0 -10
  226. package/dist/client/polyfills/css-shim.js +0 -656
  227. package/dist/client/polyfills/dom.js +0 -146
  228. package/dist/client/polyfills/es5-html-element.js +0 -18
  229. package/dist/client/polyfills/index.js +0 -35
  230. package/dist/client/polyfills/promise.js +0 -9
  231. package/dist/client/polyfills/system.js +0 -6
  232. package/dist/client/shadow-css-6ef31c68.js +0 -386
  233. package/dist/client/shadow-css-8fd1a9e4.js +0 -388
  234. package/dist/compiler/app-core/app-es5-disabled.d.ts +0 -2
  235. package/dist/compiler/app-core/app-polyfills.d.ts +0 -3
  236. package/dist/compiler/app-core/build-conditionals.d.ts +0 -6
  237. package/dist/compiler/app-core/bundle-app-core.d.ts +0 -6
  238. package/dist/compiler/app-core/component-styles.d.ts +0 -4
  239. package/dist/compiler/app-core/format-component-runtime-meta.d.ts +0 -4
  240. package/dist/compiler/app-core/optimize-module.d.ts +0 -7
  241. package/dist/compiler/browser/build-conditionals-client.d.ts +0 -3
  242. package/dist/compiler/browser/compile-options.d.ts +0 -12
  243. package/dist/compiler/browser/compile.d.ts +0 -2
  244. package/dist/compiler/browser/create-compiler.d.ts +0 -14
  245. package/dist/compiler/browser/index.d.ts +0 -11
  246. package/dist/compiler/build/build-ctx.d.ts +0 -74
  247. package/dist/compiler/build/build-finish.d.ts +0 -3
  248. package/dist/compiler/build/build-hmr.d.ts +0 -2
  249. package/dist/compiler/build/build-results.d.ts +0 -2
  250. package/dist/compiler/build/build-stats.d.ts +0 -3
  251. package/dist/compiler/build/build.d.ts +0 -2
  252. package/dist/compiler/build/cache-stats.d.ts +0 -4
  253. package/dist/compiler/build/compiler-build-id.d.ts +0 -6
  254. package/dist/compiler/build/compiler-ctx.d.ts +0 -44
  255. package/dist/compiler/build/init-index-html.d.ts +0 -2
  256. package/dist/compiler/build/validate-files.d.ts +0 -2
  257. package/dist/compiler/build/write-build.d.ts +0 -2
  258. package/dist/compiler/cache.d.ts +0 -22
  259. package/dist/compiler/compiler.d.ts +0 -27
  260. package/dist/compiler/component-hydrate/bundle-hydrate-factory.d.ts +0 -3
  261. package/dist/compiler/component-hydrate/generate-hydrate-app.d.ts +0 -2
  262. package/dist/compiler/component-hydrate/hydrate-factory-closure.d.ts +0 -2
  263. package/dist/compiler/component-hydrate/update-to-hydrate-components.d.ts +0 -2
  264. package/dist/compiler/component-hydrate/write-hydrate-outputs.d.ts +0 -3
  265. package/dist/compiler/component-lazy/generate-cjs.d.ts +0 -3
  266. package/dist/compiler/component-lazy/generate-esm-browser.d.ts +0 -3
  267. package/dist/compiler/component-lazy/generate-esm.d.ts +0 -3
  268. package/dist/compiler/component-lazy/generate-lazy-app.d.ts +0 -3
  269. package/dist/compiler/component-lazy/generate-lazy-module.d.ts +0 -4
  270. package/dist/compiler/component-lazy/generate-system.d.ts +0 -3
  271. package/dist/compiler/component-lazy/update-to-lazy-component.d.ts +0 -2
  272. package/dist/compiler/component-lazy/write-lazy-entry-module.d.ts +0 -2
  273. package/dist/compiler/component-native/update-to-native-component.d.ts +0 -2
  274. package/dist/compiler/config/config-reload.d.ts +0 -3
  275. package/dist/compiler/config/config-utils.d.ts +0 -4
  276. package/dist/compiler/config/validate-config.d.ts +0 -4
  277. package/dist/compiler/config/validate-copy.d.ts +0 -2
  278. package/dist/compiler/config/validate-dev-server.d.ts +0 -2
  279. package/dist/compiler/config/validate-docs.d.ts +0 -2
  280. package/dist/compiler/config/validate-namespace.d.ts +0 -3
  281. package/dist/compiler/config/validate-output-stats.d.ts +0 -2
  282. package/dist/compiler/config/validate-outputs-angular.d.ts +0 -2
  283. package/dist/compiler/config/validate-outputs-custom.d.ts +0 -2
  284. package/dist/compiler/config/validate-outputs-dist-module.d.ts +0 -2
  285. package/dist/compiler/config/validate-outputs-dist.d.ts +0 -2
  286. package/dist/compiler/config/validate-outputs-hydrate-script.d.ts +0 -2
  287. package/dist/compiler/config/validate-outputs-www.d.ts +0 -2
  288. package/dist/compiler/config/validate-outputs.d.ts +0 -2
  289. package/dist/compiler/config/validate-paths.d.ts +0 -2
  290. package/dist/compiler/config/validate-plugins.d.ts +0 -2
  291. package/dist/compiler/config/validate-prerender.d.ts +0 -2
  292. package/dist/compiler/config/validate-rollup-config.d.ts +0 -2
  293. package/dist/compiler/config/validate-service-worker.d.ts +0 -2
  294. package/dist/compiler/config/validate-testing.d.ts +0 -2
  295. package/dist/compiler/config/validate-workers.d.ts +0 -2
  296. package/dist/compiler/copy/assets-copy-tasks.d.ts +0 -3
  297. package/dist/compiler/copy/hashed-copy.d.ts +0 -2
  298. package/dist/compiler/copy/local-copy-tasks.d.ts +0 -3
  299. package/dist/compiler/docs/constants.d.ts +0 -2
  300. package/dist/compiler/docs/custom/index.d.ts +0 -2
  301. package/dist/compiler/docs/docs.d.ts +0 -2
  302. package/dist/compiler/docs/generate-doc-data.d.ts +0 -3
  303. package/dist/compiler/docs/json/index.d.ts +0 -3
  304. package/dist/compiler/docs/readme/docs-util.d.ts +0 -13
  305. package/dist/compiler/docs/readme/index.d.ts +0 -3
  306. package/dist/compiler/docs/readme/markdown-css-props.d.ts +0 -2
  307. package/dist/compiler/docs/readme/markdown-dependencies.d.ts +0 -2
  308. package/dist/compiler/docs/readme/markdown-events.d.ts +0 -2
  309. package/dist/compiler/docs/readme/markdown-methods.d.ts +0 -2
  310. package/dist/compiler/docs/readme/markdown-props.d.ts +0 -2
  311. package/dist/compiler/docs/readme/markdown-slots.d.ts +0 -2
  312. package/dist/compiler/docs/readme/markdown-usage.d.ts +0 -6
  313. package/dist/compiler/docs/readme/output-docs.d.ts +0 -3
  314. package/dist/compiler/docs/style-docs.d.ts +0 -2
  315. package/dist/compiler/docs/vscode/index.d.ts +0 -2
  316. package/dist/compiler/entries/component-bundles.d.ts +0 -3
  317. package/dist/compiler/entries/component-graph.d.ts +0 -2
  318. package/dist/compiler/entries/default-bundles.d.ts +0 -3
  319. package/dist/compiler/entries/entry-modules.d.ts +0 -6
  320. package/dist/compiler/entries/resolve-component-dependencies.d.ts +0 -2
  321. package/dist/compiler/events.d.ts +0 -15
  322. package/dist/compiler/fs-watch/fs-watch-init.d.ts +0 -2
  323. package/dist/compiler/fs-watch/fs-watch-log.d.ts +0 -2
  324. package/dist/compiler/fs-watch/fs-watch-rebuild.d.ts +0 -7
  325. package/dist/compiler/html/inject-module-preloads.d.ts +0 -3
  326. package/dist/compiler/html/inject-sw-script.d.ts +0 -4
  327. package/dist/compiler/html/inline-esm-import.d.ts +0 -2
  328. package/dist/compiler/html/inline-style-sheets.d.ts +0 -2
  329. package/dist/compiler/html/update-global-styles-link.d.ts +0 -2
  330. package/dist/compiler/html/used-components.d.ts +0 -2
  331. package/dist/compiler/html/utils.d.ts +0 -2
  332. package/dist/compiler/html/validate-manifest-json.d.ts +0 -2
  333. package/dist/compiler/index.d.ts +0 -10
  334. package/dist/compiler/index.js +0 -18008
  335. package/dist/compiler/output-targets/empty-dir.d.ts +0 -6
  336. package/dist/compiler/output-targets/index.d.ts +0 -2
  337. package/dist/compiler/output-targets/output-angular.d.ts +0 -4
  338. package/dist/compiler/output-targets/output-app.d.ts +0 -4
  339. package/dist/compiler/output-targets/output-collection.d.ts +0 -3
  340. package/dist/compiler/output-targets/output-copy.d.ts +0 -2
  341. package/dist/compiler/output-targets/output-custom.d.ts +0 -2
  342. package/dist/compiler/output-targets/output-docs.d.ts +0 -2
  343. package/dist/compiler/output-targets/output-hydrate.d.ts +0 -2
  344. package/dist/compiler/output-targets/output-lazy-loader.d.ts +0 -2
  345. package/dist/compiler/output-targets/output-module.d.ts +0 -4
  346. package/dist/compiler/output-targets/output-prerender.d.ts +0 -2
  347. package/dist/compiler/output-targets/output-service-workers.d.ts +0 -2
  348. package/dist/compiler/output-targets/output-types.d.ts +0 -2
  349. package/dist/compiler/output-targets/output-utils.d.ts +0 -54
  350. package/dist/compiler/output-targets/output-www.d.ts +0 -2
  351. package/dist/compiler/plugin/plugin.d.ts +0 -6
  352. package/dist/compiler/prerender/crawl-urls.d.ts +0 -3
  353. package/dist/compiler/prerender/host-config.d.ts +0 -12
  354. package/dist/compiler/prerender/prerender-config.d.ts +0 -2
  355. package/dist/compiler/prerender/prerender-main.d.ts +0 -2
  356. package/dist/compiler/prerender/prerender-queue.d.ts +0 -3
  357. package/dist/compiler/prerender/prerender-template-html.d.ts +0 -2
  358. package/dist/compiler/prerender/prerendered-write-path.d.ts +0 -2
  359. package/dist/compiler/prerender/robots-txt.d.ts +0 -2
  360. package/dist/compiler/prerender/sitemap-xml.d.ts +0 -3
  361. package/dist/compiler/rollup-plugins/component-entry.d.ts +0 -3
  362. package/dist/compiler/rollup-plugins/css-transformer.d.ts +0 -3
  363. package/dist/compiler/rollup-plugins/global-scripts.d.ts +0 -4
  364. package/dist/compiler/rollup-plugins/image-plugin.d.ts +0 -3
  365. package/dist/compiler/rollup-plugins/in-memory-fs-read.d.ts +0 -3
  366. package/dist/compiler/rollup-plugins/loader.d.ts +0 -4
  367. package/dist/compiler/rollup-plugins/plugin-helper.d.ts +0 -5
  368. package/dist/compiler/rollup-plugins/rindo-build-conditionals.d.ts +0 -7
  369. package/dist/compiler/rollup-plugins/rindo-client.d.ts +0 -3
  370. package/dist/compiler/rollup-plugins/rindo-external-runtime.d.ts +0 -2
  371. package/dist/compiler/rollup-plugins/rindo-hydrate.d.ts +0 -3
  372. package/dist/compiler/rollup-plugins/rindo-public-plugin.d.ts +0 -2
  373. package/dist/compiler/service-worker/generate-sw.d.ts +0 -7
  374. package/dist/compiler/service-worker/service-worker-util.d.ts +0 -2
  375. package/dist/compiler/style/cached-styles.d.ts +0 -5
  376. package/dist/compiler/style/component-styles.d.ts +0 -2
  377. package/dist/compiler/style/css-imports.d.ts +0 -9
  378. package/dist/compiler/style/css-to-esm.d.ts +0 -5
  379. package/dist/compiler/style/generate-styles.d.ts +0 -2
  380. package/dist/compiler/style/global-styles.d.ts +0 -3
  381. package/dist/compiler/style/normalize-styles.d.ts +0 -2
  382. package/dist/compiler/style/optimize-css.d.ts +0 -2
  383. package/dist/compiler/style/scope-css.d.ts +0 -3
  384. package/dist/compiler/style/style-utils.d.ts +0 -10
  385. package/dist/compiler/transformers/add-component-meta-proxy.d.ts +0 -3
  386. package/dist/compiler/transformers/add-component-meta-static.d.ts +0 -4
  387. package/dist/compiler/transformers/add-imports.d.ts +0 -3
  388. package/dist/compiler/transformers/collections/add-external-import.d.ts +0 -2
  389. package/dist/compiler/transformers/collections/parse-collection-components.d.ts +0 -2
  390. package/dist/compiler/transformers/collections/parse-collection-deprecated.d.ts +0 -2
  391. package/dist/compiler/transformers/collections/parse-collection-manifest.d.ts +0 -7
  392. package/dist/compiler/transformers/collections/parse-collection-module.d.ts +0 -2
  393. package/dist/compiler/transformers/component-build-conditionals.d.ts +0 -2
  394. package/dist/compiler/transformers/component-hydrate/hydrate-component.d.ts +0 -3
  395. package/dist/compiler/transformers/component-hydrate/hydrate-runtime-cmp-meta.d.ts +0 -3
  396. package/dist/compiler/transformers/component-hydrate/tranform-to-hydrate-component.d.ts +0 -2
  397. package/dist/compiler/transformers/component-lazy/lazy-component.d.ts +0 -3
  398. package/dist/compiler/transformers/component-lazy/lazy-constructor.d.ts +0 -3
  399. package/dist/compiler/transformers/component-lazy/lazy-element-getter.d.ts +0 -3
  400. package/dist/compiler/transformers/component-lazy/transform-lazy-component.d.ts +0 -4
  401. package/dist/compiler/transformers/component-native/native-component.d.ts +0 -3
  402. package/dist/compiler/transformers/component-native/native-connected-callback.d.ts +0 -3
  403. package/dist/compiler/transformers/component-native/native-constructor.d.ts +0 -3
  404. package/dist/compiler/transformers/component-native/native-element-getter.d.ts +0 -3
  405. package/dist/compiler/transformers/component-native/native-static-style.d.ts +0 -3
  406. package/dist/compiler/transformers/component-native/tranform-to-native-component.d.ts +0 -4
  407. package/dist/compiler/transformers/core-runtime-apis.d.ts +0 -30
  408. package/dist/compiler/transformers/create-event.d.ts +0 -3
  409. package/dist/compiler/transformers/decorators-to-static/component-decorator.d.ts +0 -3
  410. package/dist/compiler/transformers/decorators-to-static/convert-decorators.d.ts +0 -3
  411. package/dist/compiler/transformers/decorators-to-static/decorator-utils.d.ts +0 -10
  412. package/dist/compiler/transformers/decorators-to-static/element-decorator.d.ts +0 -3
  413. package/dist/compiler/transformers/decorators-to-static/event-decorator.d.ts +0 -4
  414. package/dist/compiler/transformers/decorators-to-static/listen-decorator.d.ts +0 -6
  415. package/dist/compiler/transformers/decorators-to-static/method-decorator.d.ts +0 -3
  416. package/dist/compiler/transformers/decorators-to-static/prop-decorator.d.ts +0 -4
  417. package/dist/compiler/transformers/decorators-to-static/state-decorator.d.ts +0 -3
  418. package/dist/compiler/transformers/decorators-to-static/style-to-static.d.ts +0 -3
  419. package/dist/compiler/transformers/decorators-to-static/watch-decorator.d.ts +0 -3
  420. package/dist/compiler/transformers/define-custom-element.d.ts +0 -3
  421. package/dist/compiler/transformers/host-data-transform.d.ts +0 -3
  422. package/dist/compiler/transformers/legacy-props.d.ts +0 -3
  423. package/dist/compiler/transformers/remove-static-meta-properties.d.ts +0 -2
  424. package/dist/compiler/transformers/reserved-public-members.d.ts +0 -3
  425. package/dist/compiler/transformers/rindo-import-path.d.ts +0 -3
  426. package/dist/compiler/transformers/static-to-meta/call-expression.d.ts +0 -3
  427. package/dist/compiler/transformers/static-to-meta/class-methods.d.ts +0 -3
  428. package/dist/compiler/transformers/static-to-meta/component.d.ts +0 -3
  429. package/dist/compiler/transformers/static-to-meta/element-ref.d.ts +0 -2
  430. package/dist/compiler/transformers/static-to-meta/encapsulation.d.ts +0 -3
  431. package/dist/compiler/transformers/static-to-meta/events.d.ts +0 -3
  432. package/dist/compiler/transformers/static-to-meta/import.d.ts +0 -3
  433. package/dist/compiler/transformers/static-to-meta/listeners.d.ts +0 -3
  434. package/dist/compiler/transformers/static-to-meta/methods.d.ts +0 -3
  435. package/dist/compiler/transformers/static-to-meta/props.d.ts +0 -3
  436. package/dist/compiler/transformers/static-to-meta/states.d.ts +0 -3
  437. package/dist/compiler/transformers/static-to-meta/string-literal.d.ts +0 -3
  438. package/dist/compiler/transformers/static-to-meta/styles.d.ts +0 -3
  439. package/dist/compiler/transformers/static-to-meta/vdom.d.ts +0 -3
  440. package/dist/compiler/transformers/static-to-meta/visitor.d.ts +0 -3
  441. package/dist/compiler/transformers/static-to-meta/watchers.d.ts +0 -3
  442. package/dist/compiler/transformers/style-imports.d.ts +0 -3
  443. package/dist/compiler/transformers/transform-utils.d.ts +0 -31
  444. package/dist/compiler/transformers/update-component-class.d.ts +0 -3
  445. package/dist/compiler/transformers/update-rindo-core-import.d.ts +0 -3
  446. package/dist/compiler/transformers/watcher-meta-transform.d.ts +0 -3
  447. package/dist/compiler/transpile/compiler-options.d.ts +0 -4
  448. package/dist/compiler/transpile/transpile-app.d.ts +0 -2
  449. package/dist/compiler/transpile/transpile-module.d.ts +0 -5
  450. package/dist/compiler/transpile/transpile-service.d.ts +0 -3
  451. package/dist/compiler/transpile/transpile-to-es5-main.d.ts +0 -2
  452. package/dist/compiler/transpile/validate-types-main.d.ts +0 -2
  453. package/dist/compiler/types/generate-app-types.d.ts +0 -2
  454. package/dist/compiler/types/generate-component-types.d.ts +0 -8
  455. package/dist/compiler/types/generate-event-types.d.ts +0 -2
  456. package/dist/compiler/types/generate-method-types.d.ts +0 -2
  457. package/dist/compiler/types/generate-prop-types.d.ts +0 -2
  458. package/dist/compiler/types/generate-types.d.ts +0 -2
  459. package/dist/compiler/types/rindo-types.d.ts +0 -3
  460. package/dist/compiler/types/types-utils.d.ts +0 -4
  461. package/dist/compiler/types/update-import-refs.d.ts +0 -11
  462. package/dist/compiler/types/validate-package-json.d.ts +0 -9
  463. package/dist/declarations/assets.d.ts +0 -17
  464. package/dist/declarations/browser-compile.d.ts +0 -47
  465. package/dist/declarations/build-conditionals.d.ts +0 -91
  466. package/dist/declarations/build-events.d.ts +0 -19
  467. package/dist/declarations/build.d.ts +0 -247
  468. package/dist/declarations/cache.d.ts +0 -11
  469. package/dist/declarations/collection-manifest.d.ts +0 -106
  470. package/dist/declarations/collection.d.ts +0 -139
  471. package/dist/declarations/compiler.d.ts +0 -53
  472. package/dist/declarations/component-compiler-meta.d.ts +0 -198
  473. package/dist/declarations/component-constructor.d.ts +0 -61
  474. package/dist/declarations/component-interfaces.d.ts +0 -123
  475. package/dist/declarations/config.d.ts +0 -409
  476. package/dist/declarations/css-var-shim.d.ts +0 -9
  477. package/dist/declarations/decorators.d.ts +0 -150
  478. package/dist/declarations/dev-server.d.ts +0 -135
  479. package/dist/declarations/diagnostics.d.ts +0 -21
  480. package/dist/declarations/entry.d.ts +0 -28
  481. package/dist/declarations/events.d.ts +0 -13
  482. package/dist/declarations/file-system.d.ts +0 -91
  483. package/dist/declarations/fs-watch.d.ts +0 -15
  484. package/dist/declarations/host-element.d.ts +0 -53
  485. package/dist/declarations/hydrate.d.ts +0 -99
  486. package/dist/declarations/in-memory-fs.d.ts +0 -59
  487. package/dist/declarations/index.d.ts +0 -45
  488. package/dist/declarations/jsdoc.d.ts +0 -16
  489. package/dist/declarations/jsx.d.ts +0 -1050
  490. package/dist/declarations/logger.d.ts +0 -25
  491. package/dist/declarations/minify-js.d.ts +0 -11
  492. package/dist/declarations/module.d.ts +0 -35
  493. package/dist/declarations/optimize-css.d.ts +0 -12
  494. package/dist/declarations/output-targets.d.ts +0 -189
  495. package/dist/declarations/plugin.d.ts +0 -23
  496. package/dist/declarations/prerender.d.ts +0 -79
  497. package/dist/declarations/render.d.ts +0 -62
  498. package/dist/declarations/runtime.d.ts +0 -92
  499. package/dist/declarations/screenshots.d.ts +0 -192
  500. package/dist/declarations/server.d.ts +0 -19
  501. package/dist/declarations/style.d.ts +0 -35
  502. package/dist/declarations/system.d.ts +0 -174
  503. package/dist/declarations/testing.d.ts +0 -523
  504. package/dist/declarations/transpile.d.ts +0 -24
  505. package/dist/declarations/types.d.ts +0 -24
  506. package/dist/declarations/vdom.d.ts +0 -55
  507. package/dist/declarations/worker.d.ts +0 -33
  508. package/dist/dev-server/content-type-db.json +0 -1
  509. package/dist/dev-server/index.js +0 -887
  510. package/dist/dev-server/static/app-error.css +0 -257
  511. package/dist/dev-server/static/dev-server-client.html +0 -13
  512. package/dist/hydrate/index.d.ts +0 -101
  513. package/dist/hydrate/index.mjs +0 -1281
  514. package/dist/hydrate/platform.mjs +0 -347
  515. package/dist/index.d.ts +0 -99
  516. package/dist/index.js +0 -1
  517. package/dist/mock-doc/index.d.ts +0 -851
  518. package/dist/mock-doc/index.js +0 -3982
  519. package/dist/mock-doc/index.mjs +0 -3954
  520. package/dist/runtime/index.js +0 -2576
  521. package/dist/runtime/index.mjs +0 -2521
  522. package/dist/runtime/shadow-css-6ef31c68.js +0 -386
  523. package/dist/runtime/shadow-css-8fd1a9e4.js +0 -388
  524. package/dist/screenshot/index.js +0 -520
  525. package/dist/sys/node/graceful-fs.js +0 -975
  526. package/dist/sys/node/index.js +0 -33545
  527. package/dist/sys/node/node-fetch.js +0 -1779
  528. package/dist/sys/node/open-in-editor.js +0 -734
  529. package/dist/sys/node/sys-worker.js +0 -67035
  530. package/dist/sys/node/websocket.js +0 -3728
  531. package/dist/testing/build-conditionals.d.ts +0 -4
  532. package/dist/testing/build-conditionals.js +0 -43
  533. package/dist/testing/core.d.ts +0 -35
  534. package/dist/testing/core.js +0 -52
  535. package/dist/testing/index.js +0 -40511
  536. package/dist/testing/jest/jest-config.d.ts +0 -4
  537. package/dist/testing/mock-fetch.d.ts +0 -46
  538. package/dist/testing/mocks.d.ts +0 -12
  539. package/dist/testing/platform.d.ts +0 -23
  540. package/dist/testing/platform.js +0 -321
  541. package/dist/testing/puppeteer/puppeteer-emulate.d.ts +0 -2
  542. package/dist/testing/puppeteer/puppeteer-find.d.ts +0 -5
  543. package/dist/testing/puppeteer/puppeteer-page.d.ts +0 -2
  544. package/dist/testing/puppeteer/puppeteer-screenshot.d.ts +0 -4
  545. package/dist/testing/spec-page.d.ts +0 -5
  546. package/dist/testing/task-queue.d.ts +0 -15
  547. package/dist/testing/test-transpile.d.ts +0 -5
  548. package/dist/testing/testing-fs.d.ts +0 -31
  549. package/dist/testing/testing-sys.d.ts +0 -19
  550. package/dist/testing/testing.d.ts +0 -12
  551. package/dist/utils/index.js +0 -1575
  552. package/dist/utils/index.mjs +0 -1511
  553. package/internal/client/css-shim.rindo-client.mjs +0 -656
  554. package/internal/client/index.mjs +0 -2859
  555. package/internal/client/polyfills/promise.js +0 -9
  556. package/internal/images.d.ts +0 -5
  557. package/runtime/package.json +0 -5
  558. package/screenshot/compare/build/p-020f8d73.js +0 -1
  559. package/screenshot/compare/build/p-09qdknbg.system.entry.js +0 -1
  560. package/screenshot/compare/build/p-0a13mpsc.system.entry.js +0 -1
  561. package/screenshot/compare/build/p-168ec2c4.system.js +0 -1
  562. package/screenshot/compare/build/p-2ab1fdf1.system.js +0 -1
  563. package/screenshot/compare/build/p-2pxcsgrj.entry.js +0 -1
  564. package/screenshot/compare/build/p-42fb7034.system.js +0 -1
  565. package/screenshot/compare/build/p-54d9d7c2.system.js +0 -1
  566. package/screenshot/compare/build/p-67c1f911.js +0 -1
  567. package/screenshot/compare/build/p-68613371.system.js +0 -1
  568. package/screenshot/compare/build/p-7dvsjpu0.entry.js +0 -1
  569. package/screenshot/compare/build/p-aa67fb06.js +0 -1
  570. package/screenshot/compare/build/p-aeb3cec1.system.js +0 -1
  571. package/screenshot/compare/build/p-b6e44a24.js +0 -1
  572. package/screenshot/compare/build/p-c1c25b8a.js +0 -1
  573. package/screenshot/compare/build/p-c9bopbjy.system.entry.js +0 -1
  574. package/screenshot/compare/build/p-c9iqz1pp.system.entry.js +0 -1
  575. package/screenshot/compare/build/p-dizjz8rg.entry.js +0 -1
  576. package/screenshot/compare/build/p-dnta0rwp.system.entry.js +0 -1
  577. package/screenshot/compare/build/p-e9670d22.system.js +0 -1
  578. package/screenshot/compare/build/p-ei9jkpd0.system.entry.js +0 -1
  579. package/screenshot/compare/build/p-ejwcppol.entry.js +0 -1
  580. package/screenshot/compare/build/p-f6612d5d.system.js +0 -1
  581. package/screenshot/compare/build/p-foiivsfc.css +0 -1
  582. package/screenshot/compare/build/p-gpjjyogx.entry.js +0 -1
  583. package/screenshot/compare/build/p-howklem2.system.entry.js +0 -1
  584. package/screenshot/compare/build/p-knv9wvoc.entry.js +0 -1
  585. package/screenshot/compare/build/p-nsqsfhhy.entry.js +0 -1
  586. package/screenshot/compare/build/p-ojt278pp.entry.js +0 -1
  587. package/screenshot/compare/build/p-oywass99.entry.js +0 -1
  588. package/screenshot/compare/build/p-q3ujhub6.entry.js +0 -1
  589. package/screenshot/compare/build/p-qw4xnmxv.entry.js +0 -1
  590. package/screenshot/compare/build/p-t1wvevhc.system.entry.js +0 -1
  591. package/screenshot/compare/build/p-tnjarrex.system.entry.js +0 -1
  592. package/screenshot/compare/build/p-vhfpd6kk.system.entry.js +0 -1
  593. package/screenshot/compare/build/p-vk6rhemd.system.entry.js +0 -1
  594. package/screenshot/compare/build/p-w6bnm16k.entry.js +0 -1
  595. package/screenshot/compare/build/p-xje6d7zl.system.entry.js +0 -1
  596. package/screenshot/compare/build/p-y5jlrcha.system.entry.js +0 -1
  597. package/screenshot/compare/build/p-yh170wkt.entry.js +0 -1
  598. package/testing/jest.preprocessor.js +0 -7
  599. /package/{dist/dev-server → dev-server}/static/favicon.ico +0 -0
  600. /package/{dist/sys/node → dev-server}/visualstudio.vbs +0 -0
  601. /package/{dist/sys/node → dev-server}/xdg-open +0 -0
  602. /package/{dist/compiler/polyfills.d.ts → screenshot/compare/build/index.esm.js} +0 -0
  603. /package/{dist/screenshot → screenshot}/pixel-match.d.ts +0 -0
  604. /package/{dist/testing → testing}/jest/jest-setup-test-framework.d.ts +0 -0
  605. /package/{dist/testing → testing}/matchers/attributes.d.ts +0 -0
  606. /package/{dist/testing → testing}/matchers/class-list.d.ts +0 -0
  607. /package/{dist/testing → testing}/matchers/html.d.ts +0 -0
  608. /package/{dist/testing → testing}/matchers/text.d.ts +0 -0
@@ -1,1281 +0,0 @@
1
- import { hydrateFactory } from '@rindo/core/hydrate-factory';
2
- import { constrainTimeouts, patchWindow, MockWindow, serializeNodeToHtml } from '@rindo/core/mock-doc';
3
-
4
- const URL_ = /*@__PURE__*/(function(){
5
- if (typeof URL === 'function') {
6
- return URL;
7
- }
8
- const requireFunc = typeof __webpack_require__ === 'function' ? __non_webpack_require__ : require;
9
- if (typeof requireFunc === 'function') {
10
- try {
11
- return requireFunc('url').URL;
12
- } catch (e) {}
13
- }
14
- return function() {}
15
- })();
16
-
17
- function normalizeHydrateOptions(inputOpts) {
18
- const outputOpts = Object.assign({
19
- hasTimedOut: false,
20
- serializeToHtml: false,
21
- destroyWindow: false,
22
- destroyDocument: false,
23
- }, inputOpts || {});
24
- if (typeof outputOpts.clientHydrateAnnotations !== 'boolean') {
25
- outputOpts.clientHydrateAnnotations = true;
26
- }
27
- if (typeof outputOpts.constrainTimeouts !== 'boolean') {
28
- outputOpts.constrainTimeouts = true;
29
- }
30
- if (typeof outputOpts.maxHydrateCount !== 'number') {
31
- outputOpts.maxHydrateCount = 300;
32
- }
33
- if (typeof outputOpts.timeout !== 'number') {
34
- outputOpts.timeout = 15000;
35
- }
36
- if (!Array.isArray(outputOpts.excludeComponents)) {
37
- outputOpts.excludeComponents = [];
38
- }
39
- outputOpts.excludeComponents = outputOpts.excludeComponents
40
- .filter(c => typeof c === 'string' && c.includes('-'))
41
- .map(c => c.toLowerCase());
42
- return outputOpts;
43
- }
44
- function generateHydrateResults(opts) {
45
- if (typeof opts.url !== 'string') {
46
- opts.url = `https://hydrate-rindojs.web.app/`;
47
- }
48
- const results = {
49
- diagnostics: [],
50
- url: opts.url,
51
- host: null,
52
- hostname: null,
53
- href: null,
54
- port: null,
55
- pathname: null,
56
- search: null,
57
- hash: null,
58
- html: null,
59
- hydratedCount: 0,
60
- anchors: [],
61
- components: [],
62
- imgs: [],
63
- scripts: [],
64
- styles: [],
65
- title: null
66
- };
67
- try {
68
- const url = new URL_(opts.url, `https://hydrate-rindojs.web.app/`);
69
- results.url = url.href;
70
- results.host = url.host;
71
- results.hostname = url.hostname;
72
- results.href = url.href;
73
- results.port = url.port;
74
- results.pathname = url.pathname;
75
- results.search = url.search;
76
- results.hash = url.hash;
77
- }
78
- catch (e) {
79
- renderCatchError(results, e);
80
- }
81
- return results;
82
- }
83
- function renderBuildError(results, msg) {
84
- const diagnostic = {
85
- level: 'error',
86
- type: 'build',
87
- header: 'Hydrate Error',
88
- messageText: msg,
89
- relFilePath: null,
90
- absFilePath: null,
91
- lines: []
92
- };
93
- if (results.pathname) {
94
- if (results.pathname !== '/') {
95
- diagnostic.header += ': ' + results.pathname;
96
- }
97
- }
98
- else if (results.url) {
99
- diagnostic.header += ': ' + results.url;
100
- }
101
- results.diagnostics.push(diagnostic);
102
- return diagnostic;
103
- }
104
- function renderCatchError(results, err) {
105
- const diagnostic = renderBuildError(results, null);
106
- if (err != null) {
107
- if (err.stack != null) {
108
- diagnostic.messageText = err.stack.toString();
109
- }
110
- else {
111
- if (err.message != null) {
112
- diagnostic.messageText = err.message.toString();
113
- }
114
- else {
115
- diagnostic.messageText = err.toString();
116
- }
117
- }
118
- }
119
- return diagnostic;
120
- }
121
-
122
- function initializeWindow(win, opts, results) {
123
- try {
124
- win.location.href = opts.url;
125
- }
126
- catch (e) {
127
- renderCatchError(results, e);
128
- }
129
- if (typeof opts.userAgent === 'string') {
130
- try {
131
- win.navigator.userAgent = opts.userAgent;
132
- }
133
- catch (e) { }
134
- }
135
- if (typeof opts.cookie === 'string') {
136
- try {
137
- win.document.cookie = opts.cookie;
138
- }
139
- catch (e) { }
140
- }
141
- if (typeof opts.referrer === 'string') {
142
- try {
143
- win.document.referrer = opts.referrer;
144
- }
145
- catch (e) { }
146
- }
147
- if (typeof opts.direction === 'string') {
148
- try {
149
- win.document.documentElement.setAttribute('dir', opts.direction);
150
- }
151
- catch (e) { }
152
- }
153
- if (typeof opts.language === 'string') {
154
- try {
155
- win.document.documentElement.setAttribute('lang', opts.language);
156
- }
157
- catch (e) { }
158
- }
159
- try {
160
- win.customElements = null;
161
- }
162
- catch (e) { }
163
- if (opts.constrainTimeouts) {
164
- constrainTimeouts(win);
165
- }
166
- try {
167
- win.console.error = function () {
168
- renderCatchError(results, [...arguments].join(', '));
169
- };
170
- win.console.debug = function () {
171
- const diagnostic = renderCatchError(results, [...arguments].join(', '));
172
- diagnostic.level = 'debug';
173
- diagnostic.messageText = 'Hydrate Debug';
174
- };
175
- }
176
- catch (e) {
177
- renderCatchError(results, e);
178
- }
179
- return win;
180
- }
181
-
182
- function inspectElement(results, elm, depth) {
183
- const children = elm.children;
184
- for (let i = 0, ii = children.length; i < ii; i++) {
185
- const childElm = children[i];
186
- const tagName = childElm.nodeName.toLowerCase();
187
- if (tagName.includes('-')) {
188
- const cmp = results.components.find(c => c.tag === tagName);
189
- if (cmp != null) {
190
- cmp.count++;
191
- if (depth > cmp.depth) {
192
- cmp.depth = depth;
193
- }
194
- }
195
- }
196
- else {
197
- switch (tagName) {
198
- case 'a':
199
- const anchor = collectAttributes(childElm);
200
- anchor.href = childElm.href;
201
- if (typeof anchor.href === 'string') {
202
- if (!results.anchors.some(a => a.href === anchor.href)) {
203
- results.anchors.push(anchor);
204
- }
205
- }
206
- break;
207
- case 'img':
208
- const img = collectAttributes(childElm);
209
- img.src = childElm.src;
210
- if (typeof img.src === 'string') {
211
- if (!results.imgs.some(a => a.src === img.src)) {
212
- results.imgs.push(img);
213
- }
214
- }
215
- break;
216
- case 'link':
217
- const link = collectAttributes(childElm);
218
- link.href = childElm.href;
219
- if (typeof link.rel === 'string' && link.rel.toLowerCase() === 'stylesheet') {
220
- if (typeof link.href === 'string') {
221
- if (!results.styles.some(s => s.link === link.href)) {
222
- delete link.rel;
223
- delete link.type;
224
- results.styles.push(link);
225
- }
226
- }
227
- }
228
- break;
229
- case 'script':
230
- const script = collectAttributes(childElm);
231
- script.src = childElm.src;
232
- if (typeof script.src === 'string') {
233
- if (!results.scripts.some(s => s.src === script.src)) {
234
- results.scripts.push(script);
235
- }
236
- }
237
- break;
238
- }
239
- }
240
- depth++;
241
- inspectElement(results, childElm, depth);
242
- }
243
- }
244
- function collectAttributes(node) {
245
- const parsedElm = {};
246
- const attrs = node.attributes;
247
- for (let i = 0, ii = attrs.length; i < ii; i++) {
248
- const attr = attrs.item(i);
249
- const attrName = attr.nodeName.toLowerCase();
250
- if (SKIP_ATTRS.has(attrName)) {
251
- continue;
252
- }
253
- const attrValue = attr.nodeValue;
254
- if (attrName === 'class' && attrValue === '') {
255
- continue;
256
- }
257
- parsedElm[attrName] = attrValue;
258
- }
259
- return parsedElm;
260
- }
261
- const SKIP_ATTRS = new Set([
262
- 's-id', 'c-id'
263
- ]);
264
-
265
- function patchDomImplementation(doc, opts) {
266
- let win;
267
- if (doc.defaultView != null) {
268
- opts.destroyWindow = true;
269
- patchWindow(doc.defaultView);
270
- win = doc.defaultView;
271
- }
272
- else {
273
- opts.destroyWindow = true;
274
- opts.destroyDocument = false;
275
- win = new MockWindow(false);
276
- }
277
- if (win.document !== doc) {
278
- win.document = doc;
279
- }
280
- if (doc.defaultView !== win) {
281
- doc.defaultView = win;
282
- }
283
- const HTMLElement = doc.documentElement.constructor.prototype;
284
- if (typeof HTMLElement.getRootNode !== 'function') {
285
- const elm = doc.createElement('unknown-element');
286
- const HTMLUnknownElement = elm.constructor.prototype;
287
- HTMLUnknownElement.getRootNode = getRootNode;
288
- }
289
- if (typeof doc.createEvent === 'function') {
290
- const CustomEvent = doc.createEvent('CustomEvent').constructor;
291
- if (win.CustomEvent !== CustomEvent) {
292
- win.CustomEvent = CustomEvent;
293
- }
294
- }
295
- try {
296
- doc.baseURI;
297
- }
298
- catch (e) {
299
- Object.defineProperty(doc, 'baseURI', {
300
- get() {
301
- const baseElm = doc.querySelector('base[href]');
302
- if (baseElm) {
303
- return (new URL(baseElm.getAttribute('href'), win.location.href)).href;
304
- }
305
- return win.location.href;
306
- }
307
- });
308
- }
309
- return win;
310
- }
311
- function getRootNode(opts) {
312
- const isComposed = (opts != null && opts.composed === true);
313
- let node = this;
314
- while (node.parentNode != null) {
315
- node = node.parentNode;
316
- if (isComposed === true && node.parentNode == null && node.host != null) {
317
- node = node.host;
318
- }
319
- }
320
- return node;
321
- }
322
-
323
- function relocateMetaCharset(doc) {
324
- const head = doc.head;
325
- let charsetElm = head.querySelector('meta[charset]');
326
- if (charsetElm == null) {
327
- charsetElm = doc.createElement('meta');
328
- charsetElm.setAttribute('charset', 'utf-8');
329
- }
330
- else {
331
- charsetElm.remove();
332
- }
333
- head.insertBefore(charsetElm, head.firstChild);
334
- }
335
-
336
- const commentre = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g;
337
- function parseCss(css, filePath) {
338
- var lineno = 1;
339
- var column = 1;
340
- var srcLines;
341
- function updatePosition(str) {
342
- const lines = str.match(/\n/g);
343
- if (lines)
344
- lineno += lines.length;
345
- const i = str.lastIndexOf('\n');
346
- column = ~i ? str.length - i : column + str.length;
347
- }
348
- function position() {
349
- const start = { line: lineno, column: column };
350
- return function (node) {
351
- node.position = new ParsePosition(start);
352
- whitespace();
353
- return node;
354
- };
355
- }
356
- class ParsePosition {
357
- constructor(start) {
358
- this.start = start;
359
- this.end = { line: lineno, column: column };
360
- this.source = filePath;
361
- }
362
- }
363
- ParsePosition.prototype.content = css;
364
- const diagnostics = [];
365
- function error(msg) {
366
- if (!srcLines) {
367
- srcLines = css.split('\n');
368
- }
369
- const d = {
370
- level: 'error',
371
- type: 'css',
372
- language: 'css',
373
- header: 'CSS Parse',
374
- messageText: msg,
375
- absFilePath: filePath,
376
- lines: [{
377
- lineIndex: lineno - 1,
378
- lineNumber: lineno,
379
- errorCharStart: column,
380
- text: css[lineno - 1],
381
- }]
382
- };
383
- if (lineno > 1) {
384
- const previousLine = {
385
- lineIndex: lineno - 1,
386
- lineNumber: lineno - 1,
387
- text: css[lineno - 2],
388
- errorCharStart: -1,
389
- errorLength: -1
390
- };
391
- d.lines.unshift(previousLine);
392
- }
393
- if (lineno + 2 < srcLines.length) {
394
- const nextLine = {
395
- lineIndex: lineno,
396
- lineNumber: lineno + 1,
397
- text: srcLines[lineno],
398
- errorCharStart: -1,
399
- errorLength: -1
400
- };
401
- d.lines.push(nextLine);
402
- }
403
- diagnostics.push(d);
404
- }
405
- function stylesheet() {
406
- const rulesList = rules();
407
- return {
408
- type: 'stylesheet',
409
- stylesheet: {
410
- source: filePath,
411
- rules: rulesList,
412
- diagnostics: diagnostics
413
- }
414
- };
415
- }
416
- function open() {
417
- return match(/^{\s*/);
418
- }
419
- function close() {
420
- return match(/^}/);
421
- }
422
- function rules() {
423
- var node;
424
- const rules = [];
425
- whitespace();
426
- comments(rules);
427
- while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {
428
- if (node !== false) {
429
- rules.push(node);
430
- comments(rules);
431
- }
432
- }
433
- return rules;
434
- }
435
- function match(re) {
436
- const m = re.exec(css);
437
- if (!m)
438
- return;
439
- const str = m[0];
440
- updatePosition(str);
441
- css = css.slice(str.length);
442
- return m;
443
- }
444
- function whitespace() {
445
- match(/^\s*/);
446
- }
447
- function comments(rules) {
448
- var c;
449
- rules = rules || [];
450
- while (c = comment()) {
451
- if (c !== false) {
452
- rules.push(c);
453
- }
454
- }
455
- return rules;
456
- }
457
- function comment() {
458
- const pos = position();
459
- if ('/' !== css.charAt(0) || '*' !== css.charAt(1))
460
- return;
461
- var i = 2;
462
- while ('' !== css.charAt(i) && ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1)))
463
- ++i;
464
- i += 2;
465
- if ('' === css.charAt(i - 1)) {
466
- return error('End of comment missing');
467
- }
468
- const str = css.slice(2, i - 2);
469
- column += 2;
470
- updatePosition(str);
471
- css = css.slice(i);
472
- column += 2;
473
- return pos({
474
- type: 'comment',
475
- comment: str
476
- });
477
- }
478
- function selector() {
479
- const m = match(/^([^{]+)/);
480
- if (!m)
481
- return;
482
- return trim(m[0])
483
- .replace(/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*\/+/g, '')
484
- .replace(/"(?:\\"|[^"])*"|'(?:\\'|[^'])*'/g, function (m) {
485
- return m.replace(/,/g, '\u200C');
486
- })
487
- .split(/\s*(?![^(]*\)),\s*/)
488
- .map(function (s) {
489
- return s.replace(/\u200C/g, ',');
490
- });
491
- }
492
- function declaration() {
493
- const pos = position();
494
- var prop = match(/^(\*?[-#\/\*\\\w]+(\[[0-9a-z_-]+\])?)\s*/);
495
- if (!prop)
496
- return;
497
- prop = trim(prop[0]);
498
- if (!match(/^:\s*/))
499
- return error(`property missing ':'`);
500
- const val = match(/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^\)]*?\)|[^};])+)/);
501
- const ret = pos({
502
- type: 'declaration',
503
- property: prop.replace(commentre, ''),
504
- value: val ? trim(val[0]).replace(commentre, '') : ''
505
- });
506
- match(/^[;\s]*/);
507
- return ret;
508
- }
509
- function declarations() {
510
- const decls = [];
511
- if (!open())
512
- return error(`missing '{'`);
513
- comments(decls);
514
- var decl;
515
- while (decl = declaration()) {
516
- if (decl !== false) {
517
- decls.push(decl);
518
- comments(decls);
519
- }
520
- }
521
- if (!close())
522
- return error(`missing '}'`);
523
- return decls;
524
- }
525
- function keyframe() {
526
- var m;
527
- const vals = [];
528
- const pos = position();
529
- while (m = match(/^((\d+\.\d+|\.\d+|\d+)%?|[a-z]+)\s*/)) {
530
- vals.push(m[1]);
531
- match(/^,\s*/);
532
- }
533
- if (!vals.length)
534
- return;
535
- return pos({
536
- type: 'keyframe',
537
- values: vals,
538
- declarations: declarations()
539
- });
540
- }
541
- function atkeyframes() {
542
- const pos = position();
543
- var m = match(/^@([-\w]+)?keyframes\s*/);
544
- if (!m)
545
- return;
546
- const vendor = m[1];
547
- m = match(/^([-\w]+)\s*/);
548
- if (!m)
549
- return error(`@keyframes missing name`);
550
- const name = m[1];
551
- if (!open())
552
- return error(`@keyframes missing '{'`);
553
- var frame;
554
- var frames = comments();
555
- while (frame = keyframe()) {
556
- frames.push(frame);
557
- frames = frames.concat(comments());
558
- }
559
- if (!close())
560
- return error(`@keyframes missing '}'`);
561
- return pos({
562
- type: 'keyframes',
563
- name: name,
564
- vendor: vendor,
565
- keyframes: frames
566
- });
567
- }
568
- function atsupports() {
569
- const pos = position();
570
- const m = match(/^@supports *([^{]+)/);
571
- if (!m)
572
- return;
573
- const supports = trim(m[1]);
574
- if (!open())
575
- return error(`@supports missing '{'`);
576
- const style = comments().concat(rules());
577
- if (!close())
578
- return error(`@supports missing '}'`);
579
- return pos({
580
- type: 'supports',
581
- supports: supports,
582
- rules: style
583
- });
584
- }
585
- function athost() {
586
- const pos = position();
587
- const m = match(/^@host\s*/);
588
- if (!m)
589
- return;
590
- if (!open())
591
- return error(`@host missing '{'`);
592
- const style = comments().concat(rules());
593
- if (!close())
594
- return error(`@host missing '}'`);
595
- return pos({
596
- type: 'host',
597
- rules: style
598
- });
599
- }
600
- function atmedia() {
601
- const pos = position();
602
- const m = match(/^@media *([^{]+)/);
603
- if (!m)
604
- return;
605
- const media = trim(m[1]);
606
- if (!open())
607
- return error(`@media missing '{'`);
608
- const style = comments().concat(rules());
609
- if (!close())
610
- return error(`@media missing '}'`);
611
- return pos({
612
- type: 'media',
613
- media: media,
614
- rules: style
615
- });
616
- }
617
- function atcustommedia() {
618
- const pos = position();
619
- const m = match(/^@custom-media\s+(--[^\s]+)\s*([^{;]+);/);
620
- if (!m)
621
- return;
622
- return pos({
623
- type: 'custom-media',
624
- name: trim(m[1]),
625
- media: trim(m[2])
626
- });
627
- }
628
- function atpage() {
629
- const pos = position();
630
- const m = match(/^@page */);
631
- if (!m)
632
- return;
633
- const sel = selector() || [];
634
- if (!open())
635
- return error(`@page missing '{'`);
636
- var decls = comments();
637
- var decl;
638
- while (decl = declaration()) {
639
- decls.push(decl);
640
- decls = decls.concat(comments());
641
- }
642
- if (!close())
643
- return error(`@page missing '}'`);
644
- return pos({
645
- type: 'page',
646
- selectors: sel,
647
- declarations: decls
648
- });
649
- }
650
- function atdocument() {
651
- const pos = position();
652
- const m = match(/^@([-\w]+)?document *([^{]+)/);
653
- if (!m)
654
- return;
655
- const vendor = trim(m[1]);
656
- const doc = trim(m[2]);
657
- if (!open())
658
- return error(`@document missing '{'`);
659
- const style = comments().concat(rules());
660
- if (!close())
661
- return error(`@document missing '}'`);
662
- return pos({
663
- type: 'document',
664
- document: doc,
665
- vendor: vendor,
666
- rules: style
667
- });
668
- }
669
- function atfontface() {
670
- const pos = position();
671
- const m = match(/^@font-face\s*/);
672
- if (!m)
673
- return;
674
- if (!open())
675
- return error(`@font-face missing '{'`);
676
- var decls = comments();
677
- var decl;
678
- while (decl = declaration()) {
679
- decls.push(decl);
680
- decls = decls.concat(comments());
681
- }
682
- if (!close())
683
- return error(`@font-face missing '}'`);
684
- return pos({
685
- type: 'font-face',
686
- declarations: decls
687
- });
688
- }
689
- const atimport = _compileAtrule('import');
690
- const atcharset = _compileAtrule('charset');
691
- const atnamespace = _compileAtrule('namespace');
692
- function _compileAtrule(name) {
693
- const re = new RegExp('^@' + name + '\\s*([^;]+);');
694
- return function () {
695
- const pos = position();
696
- const m = match(re);
697
- if (!m)
698
- return;
699
- const ret = { type: name };
700
- ret[name] = m[1].trim();
701
- return pos(ret);
702
- };
703
- }
704
- function atrule() {
705
- if (css[0] !== '@')
706
- return;
707
- return atkeyframes()
708
- || atmedia()
709
- || atcustommedia()
710
- || atsupports()
711
- || atimport()
712
- || atcharset()
713
- || atnamespace()
714
- || atdocument()
715
- || atpage()
716
- || athost()
717
- || atfontface();
718
- }
719
- function rule() {
720
- const pos = position();
721
- const sel = selector();
722
- if (!sel)
723
- return error('selector missing');
724
- comments();
725
- return pos({
726
- type: 'rule',
727
- selectors: sel,
728
- declarations: declarations()
729
- });
730
- }
731
- return addParent(stylesheet());
732
- }
733
- function trim(str) {
734
- return str ? str.trim() : '';
735
- }
736
- function addParent(obj, parent) {
737
- const isNode = obj && typeof obj.type === 'string';
738
- const childParent = isNode ? obj : parent;
739
- for (const k in obj) {
740
- const value = obj[k];
741
- if (Array.isArray(value)) {
742
- value.forEach(function (v) { addParent(v, childParent); });
743
- }
744
- else if (value && typeof value === 'object') {
745
- addParent(value, childParent);
746
- }
747
- }
748
- if (isNode) {
749
- Object.defineProperty(obj, 'parent', {
750
- configurable: true,
751
- writable: true,
752
- enumerable: false,
753
- value: parent || null
754
- });
755
- }
756
- return obj;
757
- }
758
-
759
- function getSelectors(sel) {
760
- SELECTORS.all.length = SELECTORS.tags.length = SELECTORS.classNames.length = SELECTORS.ids.length = SELECTORS.attrs.length = 0;
761
- sel = sel.replace(/\./g, ' .')
762
- .replace(/\#/g, ' #')
763
- .replace(/\[/g, ' [')
764
- .replace(/\>/g, ' > ')
765
- .replace(/\+/g, ' + ')
766
- .replace(/\~/g, ' ~ ')
767
- .replace(/\*/g, ' * ')
768
- .replace(/\:not\((.*?)\)/g, ' ');
769
- const items = sel.split(' ');
770
- for (var i = 0; i < items.length; i++) {
771
- items[i] = items[i].split(':')[0];
772
- if (items[i].length === 0)
773
- continue;
774
- if (items[i].charAt(0) === '.') {
775
- SELECTORS.classNames.push(items[i].substr(1));
776
- }
777
- else if (items[i].charAt(0) === '#') {
778
- SELECTORS.ids.push(items[i].substr(1));
779
- }
780
- else if (items[i].charAt(0) === '[') {
781
- items[i] = items[i].substr(1).split('=')[0].split(']')[0].trim();
782
- SELECTORS.attrs.push(items[i].toLowerCase());
783
- }
784
- else if (/[a-z]/g.test(items[i].charAt(0))) {
785
- SELECTORS.tags.push(items[i].toLowerCase());
786
- }
787
- }
788
- SELECTORS.classNames = SELECTORS.classNames.sort((a, b) => {
789
- if (a.length < b.length)
790
- return -1;
791
- if (a.length > b.length)
792
- return 1;
793
- return 0;
794
- });
795
- return SELECTORS;
796
- }
797
- const SELECTORS = {
798
- all: [],
799
- tags: [],
800
- classNames: [],
801
- ids: [],
802
- attrs: []
803
- };
804
-
805
- class StringifyCss {
806
- constructor(usedSelectors) {
807
- this.usedSelectors = usedSelectors;
808
- this.hasUsedAttrs = usedSelectors.attrs.size > 0;
809
- this.hasUsedClassNames = usedSelectors.classNames.size > 0;
810
- this.hasUsedIds = usedSelectors.ids.size > 0;
811
- this.hasUsedTags = usedSelectors.tags.size > 0;
812
- }
813
- visit(node) {
814
- return this[node.type](node);
815
- }
816
- mapVisit(nodes, delim) {
817
- let buf = '';
818
- delim = delim || '';
819
- for (let i = 0, length = nodes.length; i < length; i++) {
820
- buf += this.visit(nodes[i]);
821
- if (delim && i < length - 1)
822
- buf += delim;
823
- }
824
- return buf;
825
- }
826
- compile(node) {
827
- return node.stylesheet
828
- .rules.map(this.visit, this)
829
- .join('');
830
- }
831
- comment() {
832
- return '';
833
- }
834
- import(node) {
835
- return '@import ' + node.import + ';';
836
- }
837
- media(node) {
838
- const mediaCss = this.mapVisit(node.rules);
839
- if (mediaCss === '') {
840
- return '';
841
- }
842
- return '@media ' + node.media + '{' + this.mapVisit(node.rules) + '}';
843
- }
844
- document(node) {
845
- const documentCss = this.mapVisit(node.rules);
846
- if (documentCss === '') {
847
- return '';
848
- }
849
- const doc = '@' + (node.vendor || '') + 'document ' + node.document;
850
- return doc + '{' + documentCss + '}';
851
- }
852
- charset(node) {
853
- return '@charset ' + node.charset + ';';
854
- }
855
- namespace(node) {
856
- return '@namespace ' + node.namespace + ';';
857
- }
858
- supports(node) {
859
- const supportsCss = this.mapVisit(node.rules);
860
- if (supportsCss === '') {
861
- return '';
862
- }
863
- return '@supports ' + node.supports + '{' + supportsCss + '}';
864
- }
865
- keyframes(node) {
866
- const keyframesCss = this.mapVisit(node.keyframes);
867
- if (keyframesCss === '') {
868
- return '';
869
- }
870
- return '@' + (node.vendor || '') + 'keyframes ' + node.name + '{' + keyframesCss + '}';
871
- }
872
- keyframe(node) {
873
- const decls = node.declarations;
874
- return node.values.join(',') + '{' + this.mapVisit(decls) + '}';
875
- }
876
- page(node) {
877
- const sel = node.selectors.length
878
- ? node.selectors.join(', ')
879
- : '';
880
- return '@page ' + sel + '{' + this.mapVisit(node.declarations) + '}';
881
- }
882
- ['font-face'](node) {
883
- const fontCss = this.mapVisit(node.declarations);
884
- if (fontCss === '') {
885
- return '';
886
- }
887
- return '@font-face{' + fontCss + '}';
888
- }
889
- host(node) {
890
- return '@host{' + this.mapVisit(node.rules) + '}';
891
- }
892
- ['custom-media'](node) {
893
- return '@custom-media ' + node.name + ' ' + node.media + ';';
894
- }
895
- rule(node) {
896
- const decls = node.declarations;
897
- if (decls == null || decls.length === 0) {
898
- return '';
899
- }
900
- const usedSelectors = this.usedSelectors;
901
- let i;
902
- let j;
903
- for (i = node.selectors.length - 1; i >= 0; i--) {
904
- const sel = getSelectors(node.selectors[i]);
905
- let include = true;
906
- let jlen = sel.classNames.length;
907
- if (jlen > 0 && this.hasUsedClassNames) {
908
- for (j = 0; j < jlen; j++) {
909
- if (!usedSelectors.classNames.has(sel.classNames[j])) {
910
- include = false;
911
- break;
912
- }
913
- }
914
- }
915
- if (include && this.hasUsedTags) {
916
- jlen = sel.tags.length;
917
- if (jlen > 0) {
918
- for (j = 0; j < jlen; j++) {
919
- if (!usedSelectors.tags.has(sel.tags[j])) {
920
- include = false;
921
- break;
922
- }
923
- }
924
- }
925
- }
926
- if (include && this.hasUsedAttrs) {
927
- jlen = sel.attrs.length;
928
- if (jlen > 0) {
929
- for (j = 0; j < jlen; j++) {
930
- if (!usedSelectors.attrs.has(sel.attrs[j])) {
931
- include = false;
932
- break;
933
- }
934
- }
935
- }
936
- }
937
- if (include && this.hasUsedIds) {
938
- jlen = sel.ids.length;
939
- if (jlen > 0) {
940
- for (j = 0; j < jlen; j++) {
941
- if (!usedSelectors.ids.has(sel.ids[j])) {
942
- include = false;
943
- break;
944
- }
945
- }
946
- }
947
- }
948
- if (!include) {
949
- node.selectors.splice(i, 1);
950
- }
951
- }
952
- if (node.selectors.length === 0) {
953
- return '';
954
- }
955
- return `${node.selectors}{${this.mapVisit(decls)}}`;
956
- }
957
- declaration(node) {
958
- return node.property + ':' + node.value + ';';
959
- }
960
- }
961
-
962
- class UsedSelectors {
963
- constructor(elm) {
964
- this.tags = new Set();
965
- this.classNames = new Set();
966
- this.ids = new Set();
967
- this.attrs = new Set();
968
- this.collectSelectors(elm);
969
- }
970
- collectSelectors(elm) {
971
- if (elm != null && elm.tagName) {
972
- const tagName = elm.tagName.toLowerCase();
973
- this.tags.add(tagName);
974
- const attributes = elm.attributes;
975
- for (let i = 0, l = attributes.length; i < l; i++) {
976
- const attr = attributes.item(i);
977
- const attrName = attr.name.toLowerCase();
978
- if (attrName === 'class') {
979
- const classList = elm.classList;
980
- for (let i = 0, l = classList.length; i < l; i++) {
981
- this.classNames.add(classList.item(i));
982
- }
983
- }
984
- else if (attrName === 'style') {
985
- continue;
986
- }
987
- else if (attrName === 'id') {
988
- this.ids.add(attr.value);
989
- }
990
- else {
991
- this.attrs.add(attrName);
992
- }
993
- }
994
- for (let i = 0, l = elm.children.length; i < l; i++) {
995
- this.collectSelectors(elm.children[i]);
996
- }
997
- }
998
- }
999
- }
1000
-
1001
- function removeUnusedStyles(doc, diagnostics) {
1002
- const styleElms = doc.head.querySelectorAll(`style[data-styles]`);
1003
- if (styleElms.length > 0) {
1004
- const usedSelectors = new UsedSelectors(doc.body);
1005
- for (let i = 0; i < styleElms.length; i++) {
1006
- removeUnusedStyleText(usedSelectors, diagnostics, styleElms[i]);
1007
- }
1008
- }
1009
- }
1010
- function removeUnusedStyleText(usedSelectors, diagnostics, styleElm) {
1011
- try {
1012
- const cssAst = parseCss(styleElm.innerHTML);
1013
- if (cssAst.stylesheet.diagnostics.length > 0) {
1014
- diagnostics.push(...cssAst.stylesheet.diagnostics);
1015
- return;
1016
- }
1017
- try {
1018
- const stringify = new StringifyCss(usedSelectors);
1019
- styleElm.innerHTML = stringify.compile(cssAst);
1020
- }
1021
- catch (e) {
1022
- diagnostics.push({
1023
- level: 'warn',
1024
- type: 'css',
1025
- header: 'CSS Stringify',
1026
- messageText: e
1027
- });
1028
- }
1029
- }
1030
- catch (e) {
1031
- diagnostics.push({
1032
- level: 'warn',
1033
- type: 'css',
1034
- header: 'CSS Parse',
1035
- messageText: e
1036
- });
1037
- }
1038
- }
1039
-
1040
- function updateCanonicalLink(doc, href) {
1041
- let canonicalLinkElm = doc.head.querySelector('link[rel="canonical"]');
1042
- if (typeof href === 'string') {
1043
- if (canonicalLinkElm == null) {
1044
- canonicalLinkElm = doc.createElement('link');
1045
- canonicalLinkElm.setAttribute('rel', 'canonical');
1046
- doc.head.appendChild(canonicalLinkElm);
1047
- }
1048
- canonicalLinkElm.setAttribute('href', href);
1049
- }
1050
- else {
1051
- if (canonicalLinkElm != null) {
1052
- canonicalLinkElm.parentNode.removeChild(canonicalLinkElm);
1053
- }
1054
- }
1055
- }
1056
-
1057
- function renderToString(html, userOpts) {
1058
- const opts = normalizeHydrateOptions(userOpts);
1059
- opts.serializeToHtml = true;
1060
- return new Promise(resolve => {
1061
- const results = generateHydrateResults(opts);
1062
- if (results.diagnostics.length > 0) {
1063
- resolve(results);
1064
- }
1065
- else if (typeof html === 'string') {
1066
- try {
1067
- opts.destroyWindow = true;
1068
- opts.destroyDocument = true;
1069
- const win = new MockWindow(html);
1070
- render(win, opts, results, resolve);
1071
- }
1072
- catch (e) {
1073
- renderCatchError(results, e);
1074
- resolve(results);
1075
- }
1076
- }
1077
- else if (isValidDocument(html)) {
1078
- try {
1079
- opts.destroyDocument = false;
1080
- const win = patchDomImplementation(html, opts);
1081
- render(win, opts, results, resolve);
1082
- }
1083
- catch (e) {
1084
- renderCatchError(results, e);
1085
- resolve(results);
1086
- }
1087
- }
1088
- else {
1089
- renderBuildError(results, `Invalid html or document. Must be either valid "html" string, or DOM "document".`);
1090
- resolve(results);
1091
- }
1092
- });
1093
- }
1094
- function hydrateDocument(doc, userOpts) {
1095
- const opts = normalizeHydrateOptions(userOpts);
1096
- opts.serializeToHtml = false;
1097
- return new Promise(resolve => {
1098
- const results = generateHydrateResults(opts);
1099
- if (results.diagnostics.length > 0) {
1100
- resolve(results);
1101
- }
1102
- else if (typeof doc === 'string') {
1103
- try {
1104
- opts.destroyWindow = true;
1105
- opts.destroyDocument = true;
1106
- const win = new MockWindow(doc);
1107
- render(win, opts, results, resolve);
1108
- }
1109
- catch (e) {
1110
- renderCatchError(results, e);
1111
- resolve(results);
1112
- }
1113
- }
1114
- else if (isValidDocument(doc)) {
1115
- try {
1116
- opts.destroyDocument = false;
1117
- const win = patchDomImplementation(doc, opts);
1118
- render(win, opts, results, resolve);
1119
- }
1120
- catch (e) {
1121
- renderCatchError(results, e);
1122
- resolve(results);
1123
- }
1124
- }
1125
- else {
1126
- renderBuildError(results, `Invalid html or document. Must be either valid "html" string, or DOM "document".`);
1127
- resolve(results);
1128
- }
1129
- });
1130
- }
1131
- function isValidDocument(doc) {
1132
- return doc != null &&
1133
- doc.nodeType === 9 &&
1134
- doc.documentElement != null &&
1135
- doc.documentElement.nodeType === 1 &&
1136
- doc.body != null &&
1137
- doc.body.nodeType === 1;
1138
- }
1139
- function render(win, opts, results, resolve) {
1140
- if (!process.__rindoErrors) {
1141
- process.__rindoErrors = true;
1142
- process.on('unhandledRejection', e => {
1143
- console.log('unhandledRejection', e);
1144
- });
1145
- }
1146
- initializeWindow(win, opts, results);
1147
- if (typeof opts.beforeHydrate === 'function') {
1148
- try {
1149
- const rtn = opts.beforeHydrate(win.document);
1150
- if (rtn != null && typeof rtn.then === 'function') {
1151
- rtn.then(() => {
1152
- hydrateFactory(win, opts, results, afterHydrate, resolve);
1153
- });
1154
- }
1155
- else {
1156
- hydrateFactory(win, opts, results, afterHydrate, resolve);
1157
- }
1158
- }
1159
- catch (e) {
1160
- renderCatchError(results, e);
1161
- finalizeHydrate(win, opts, results, resolve);
1162
- }
1163
- }
1164
- else {
1165
- hydrateFactory(win, opts, results, afterHydrate, resolve);
1166
- }
1167
- }
1168
- function afterHydrate(win, opts, results, resolve) {
1169
- if (typeof opts.afterHydrate === 'function') {
1170
- try {
1171
- const rtn = opts.afterHydrate(win.document);
1172
- if (rtn != null && typeof rtn.then === 'function') {
1173
- rtn.then(() => {
1174
- finalizeHydrate(win, opts, results, resolve);
1175
- });
1176
- }
1177
- else {
1178
- finalizeHydrate(win, opts, results, resolve);
1179
- }
1180
- }
1181
- catch (e) {
1182
- renderCatchError(results, e);
1183
- finalizeHydrate(win, opts, results, resolve);
1184
- }
1185
- }
1186
- else {
1187
- finalizeHydrate(win, opts, results, resolve);
1188
- }
1189
- }
1190
- function finalizeHydrate(win, opts, results, resolve) {
1191
- try {
1192
- inspectElement(results, win.document.documentElement, 0);
1193
- if (opts.removeUnusedStyles !== false) {
1194
- try {
1195
- removeUnusedStyles(win.document, results.diagnostics);
1196
- }
1197
- catch (e) {
1198
- renderCatchError(results, e);
1199
- }
1200
- }
1201
- if (typeof opts.title === 'string') {
1202
- try {
1203
- win.document.title = opts.title;
1204
- }
1205
- catch (e) {
1206
- renderCatchError(results, e);
1207
- }
1208
- }
1209
- results.title = win.document.title;
1210
- if (opts.removeScripts) {
1211
- removeScripts(win.document.documentElement);
1212
- }
1213
- try {
1214
- updateCanonicalLink(win.document, opts.canonicalUrl);
1215
- }
1216
- catch (e) {
1217
- renderCatchError(results, e);
1218
- }
1219
- try {
1220
- relocateMetaCharset(win.document);
1221
- }
1222
- catch (e) { }
1223
- try {
1224
- const metaStatus = win.document.head.querySelector('meta[http-equiv="status"]');
1225
- if (metaStatus != null) {
1226
- const content = metaStatus.getAttribute('content');
1227
- if (content != null) {
1228
- results.httpStatus = parseInt(content, 10);
1229
- }
1230
- }
1231
- }
1232
- catch (e) { }
1233
- if (opts.clientHydrateAnnotations) {
1234
- win.document.documentElement.classList.add('hydrated');
1235
- }
1236
- if (opts.serializeToHtml) {
1237
- results.html = serializeNodeToHtml(win.document, {
1238
- approximateLineWidth: opts.approximateLineWidth,
1239
- outerHtml: false,
1240
- prettyHtml: opts.prettyHtml,
1241
- removeAttributeQuotes: opts.removeAttributeQuotes,
1242
- removeBooleanAttributeQuotes: opts.removeBooleanAttributeQuotes,
1243
- removeEmptyAttributes: opts.removeEmptyAttributes,
1244
- removeHtmlComments: opts.removeHtmlComments,
1245
- serializeShadowRoot: false,
1246
- });
1247
- }
1248
- }
1249
- catch (e) {
1250
- renderCatchError(results, e);
1251
- }
1252
- if (opts.destroyWindow) {
1253
- try {
1254
- if (!opts.destroyDocument) {
1255
- const doc = win.document;
1256
- win.document = null;
1257
- doc.defaultView = null;
1258
- }
1259
- win.close();
1260
- }
1261
- catch (e) {
1262
- renderCatchError(results, e);
1263
- }
1264
- }
1265
- resolve(results);
1266
- }
1267
- function removeScripts(elm) {
1268
- const children = elm.children;
1269
- for (let i = children.length - 1; i >= 0; i--) {
1270
- const child = children[i];
1271
- removeScripts(child);
1272
- if (child.nodeName === 'SCRIPT') {
1273
- child.remove();
1274
- }
1275
- else if (child.nodeName === 'LINK' && child.getAttribute('rel') === 'modulepreload') {
1276
- child.remove();
1277
- }
1278
- }
1279
- }
1280
-
1281
- export { hydrateDocument, renderToString };