@rindo/core 1.8.12

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 (463) hide show
  1. package/LICENSE.md +27 -0
  2. package/bin/rindo +22 -0
  3. package/build-conditionals/index.d.ts +2 -0
  4. package/build-conditionals/index.mjs +66 -0
  5. package/build-conditionals/package.json +6 -0
  6. package/compiler/index.js +2 -0
  7. package/compiler/package.json +6 -0
  8. package/compiler/rindo.js +6765 -0
  9. package/dist/cli/index.js +6068 -0
  10. package/dist/client/css-shim-14a9812e.js +656 -0
  11. package/dist/client/css-shim-69821662.js +658 -0
  12. package/dist/client/declarations/rindo.core.d.ts +1347 -0
  13. package/dist/client/dom-68c8fe31.js +139 -0
  14. package/dist/client/dom-af01458a.js +137 -0
  15. package/dist/client/index.js +2937 -0
  16. package/dist/client/index.mjs +2820 -0
  17. package/dist/client/polyfills/core-js.js +10 -0
  18. package/dist/client/polyfills/css-shim.js +656 -0
  19. package/dist/client/polyfills/dom.js +146 -0
  20. package/dist/client/polyfills/es5-html-element.js +18 -0
  21. package/dist/client/polyfills/index.js +35 -0
  22. package/dist/client/polyfills/promise.js +9 -0
  23. package/dist/client/polyfills/system.js +6 -0
  24. package/dist/client/shadow-css-6ef31c68.js +386 -0
  25. package/dist/client/shadow-css-8fd1a9e4.js +388 -0
  26. package/dist/compiler/app-core/app-es5-disabled.d.ts +2 -0
  27. package/dist/compiler/app-core/app-polyfills.d.ts +3 -0
  28. package/dist/compiler/app-core/build-conditionals.d.ts +6 -0
  29. package/dist/compiler/app-core/bundle-app-core.d.ts +6 -0
  30. package/dist/compiler/app-core/component-styles.d.ts +4 -0
  31. package/dist/compiler/app-core/format-component-runtime-meta.d.ts +4 -0
  32. package/dist/compiler/app-core/optimize-module.d.ts +7 -0
  33. package/dist/compiler/browser/build-conditionals-client.d.ts +3 -0
  34. package/dist/compiler/browser/compile-options.d.ts +12 -0
  35. package/dist/compiler/browser/compile.d.ts +2 -0
  36. package/dist/compiler/browser/create-compiler.d.ts +14 -0
  37. package/dist/compiler/browser/index.d.ts +11 -0
  38. package/dist/compiler/build/build-ctx.d.ts +74 -0
  39. package/dist/compiler/build/build-finish.d.ts +3 -0
  40. package/dist/compiler/build/build-hmr.d.ts +2 -0
  41. package/dist/compiler/build/build-results.d.ts +2 -0
  42. package/dist/compiler/build/build-stats.d.ts +3 -0
  43. package/dist/compiler/build/build.d.ts +2 -0
  44. package/dist/compiler/build/cache-stats.d.ts +4 -0
  45. package/dist/compiler/build/compiler-build-id.d.ts +6 -0
  46. package/dist/compiler/build/compiler-ctx.d.ts +44 -0
  47. package/dist/compiler/build/init-index-html.d.ts +2 -0
  48. package/dist/compiler/build/validate-files.d.ts +2 -0
  49. package/dist/compiler/build/write-build.d.ts +2 -0
  50. package/dist/compiler/cache.d.ts +22 -0
  51. package/dist/compiler/compiler.d.ts +27 -0
  52. package/dist/compiler/component-hydrate/bundle-hydrate-factory.d.ts +3 -0
  53. package/dist/compiler/component-hydrate/generate-hydrate-app.d.ts +2 -0
  54. package/dist/compiler/component-hydrate/hydrate-factory-closure.d.ts +2 -0
  55. package/dist/compiler/component-hydrate/update-to-hydrate-components.d.ts +2 -0
  56. package/dist/compiler/component-hydrate/write-hydrate-outputs.d.ts +3 -0
  57. package/dist/compiler/component-lazy/generate-cjs.d.ts +3 -0
  58. package/dist/compiler/component-lazy/generate-esm-browser.d.ts +3 -0
  59. package/dist/compiler/component-lazy/generate-esm.d.ts +3 -0
  60. package/dist/compiler/component-lazy/generate-lazy-app.d.ts +3 -0
  61. package/dist/compiler/component-lazy/generate-lazy-module.d.ts +4 -0
  62. package/dist/compiler/component-lazy/generate-system.d.ts +3 -0
  63. package/dist/compiler/component-lazy/update-to-lazy-component.d.ts +2 -0
  64. package/dist/compiler/component-lazy/write-lazy-entry-module.d.ts +2 -0
  65. package/dist/compiler/component-native/update-to-native-component.d.ts +2 -0
  66. package/dist/compiler/config/config-reload.d.ts +3 -0
  67. package/dist/compiler/config/config-utils.d.ts +4 -0
  68. package/dist/compiler/config/validate-config.d.ts +4 -0
  69. package/dist/compiler/config/validate-copy.d.ts +2 -0
  70. package/dist/compiler/config/validate-dev-server.d.ts +2 -0
  71. package/dist/compiler/config/validate-docs.d.ts +2 -0
  72. package/dist/compiler/config/validate-namespace.d.ts +3 -0
  73. package/dist/compiler/config/validate-output-stats.d.ts +2 -0
  74. package/dist/compiler/config/validate-outputs-angular.d.ts +2 -0
  75. package/dist/compiler/config/validate-outputs-custom.d.ts +2 -0
  76. package/dist/compiler/config/validate-outputs-dist-module.d.ts +2 -0
  77. package/dist/compiler/config/validate-outputs-dist.d.ts +2 -0
  78. package/dist/compiler/config/validate-outputs-hydrate-script.d.ts +2 -0
  79. package/dist/compiler/config/validate-outputs-www.d.ts +2 -0
  80. package/dist/compiler/config/validate-outputs.d.ts +2 -0
  81. package/dist/compiler/config/validate-paths.d.ts +2 -0
  82. package/dist/compiler/config/validate-plugins.d.ts +2 -0
  83. package/dist/compiler/config/validate-prerender.d.ts +2 -0
  84. package/dist/compiler/config/validate-rollup-config.d.ts +2 -0
  85. package/dist/compiler/config/validate-service-worker.d.ts +2 -0
  86. package/dist/compiler/config/validate-testing.d.ts +2 -0
  87. package/dist/compiler/config/validate-workers.d.ts +2 -0
  88. package/dist/compiler/copy/assets-copy-tasks.d.ts +3 -0
  89. package/dist/compiler/copy/hashed-copy.d.ts +2 -0
  90. package/dist/compiler/copy/local-copy-tasks.d.ts +3 -0
  91. package/dist/compiler/docs/constants.d.ts +2 -0
  92. package/dist/compiler/docs/custom/index.d.ts +2 -0
  93. package/dist/compiler/docs/docs.d.ts +2 -0
  94. package/dist/compiler/docs/generate-doc-data.d.ts +3 -0
  95. package/dist/compiler/docs/json/index.d.ts +3 -0
  96. package/dist/compiler/docs/readme/docs-util.d.ts +13 -0
  97. package/dist/compiler/docs/readme/index.d.ts +3 -0
  98. package/dist/compiler/docs/readme/markdown-css-props.d.ts +2 -0
  99. package/dist/compiler/docs/readme/markdown-dependencies.d.ts +2 -0
  100. package/dist/compiler/docs/readme/markdown-events.d.ts +2 -0
  101. package/dist/compiler/docs/readme/markdown-methods.d.ts +2 -0
  102. package/dist/compiler/docs/readme/markdown-props.d.ts +2 -0
  103. package/dist/compiler/docs/readme/markdown-slots.d.ts +2 -0
  104. package/dist/compiler/docs/readme/markdown-usage.d.ts +6 -0
  105. package/dist/compiler/docs/readme/output-docs.d.ts +3 -0
  106. package/dist/compiler/docs/style-docs.d.ts +2 -0
  107. package/dist/compiler/docs/vscode/index.d.ts +2 -0
  108. package/dist/compiler/entries/component-bundles.d.ts +3 -0
  109. package/dist/compiler/entries/component-graph.d.ts +2 -0
  110. package/dist/compiler/entries/default-bundles.d.ts +3 -0
  111. package/dist/compiler/entries/entry-modules.d.ts +6 -0
  112. package/dist/compiler/entries/resolve-component-dependencies.d.ts +2 -0
  113. package/dist/compiler/events.d.ts +15 -0
  114. package/dist/compiler/fs-watch/fs-watch-init.d.ts +2 -0
  115. package/dist/compiler/fs-watch/fs-watch-log.d.ts +2 -0
  116. package/dist/compiler/fs-watch/fs-watch-rebuild.d.ts +7 -0
  117. package/dist/compiler/html/inject-module-preloads.d.ts +3 -0
  118. package/dist/compiler/html/inject-sw-script.d.ts +4 -0
  119. package/dist/compiler/html/inline-esm-import.d.ts +2 -0
  120. package/dist/compiler/html/inline-style-sheets.d.ts +2 -0
  121. package/dist/compiler/html/update-global-styles-link.d.ts +2 -0
  122. package/dist/compiler/html/used-components.d.ts +2 -0
  123. package/dist/compiler/html/utils.d.ts +2 -0
  124. package/dist/compiler/html/validate-manifest-json.d.ts +2 -0
  125. package/dist/compiler/index.d.ts +10 -0
  126. package/dist/compiler/index.js +18008 -0
  127. package/dist/compiler/output-targets/empty-dir.d.ts +6 -0
  128. package/dist/compiler/output-targets/index.d.ts +2 -0
  129. package/dist/compiler/output-targets/output-angular.d.ts +4 -0
  130. package/dist/compiler/output-targets/output-app.d.ts +4 -0
  131. package/dist/compiler/output-targets/output-collection.d.ts +3 -0
  132. package/dist/compiler/output-targets/output-copy.d.ts +2 -0
  133. package/dist/compiler/output-targets/output-custom.d.ts +2 -0
  134. package/dist/compiler/output-targets/output-docs.d.ts +2 -0
  135. package/dist/compiler/output-targets/output-hydrate.d.ts +2 -0
  136. package/dist/compiler/output-targets/output-lazy-loader.d.ts +2 -0
  137. package/dist/compiler/output-targets/output-module.d.ts +4 -0
  138. package/dist/compiler/output-targets/output-prerender.d.ts +2 -0
  139. package/dist/compiler/output-targets/output-service-workers.d.ts +2 -0
  140. package/dist/compiler/output-targets/output-types.d.ts +2 -0
  141. package/dist/compiler/output-targets/output-utils.d.ts +54 -0
  142. package/dist/compiler/output-targets/output-www.d.ts +2 -0
  143. package/dist/compiler/plugin/plugin.d.ts +6 -0
  144. package/dist/compiler/polyfills.d.ts +0 -0
  145. package/dist/compiler/prerender/crawl-urls.d.ts +3 -0
  146. package/dist/compiler/prerender/host-config.d.ts +12 -0
  147. package/dist/compiler/prerender/prerender-config.d.ts +2 -0
  148. package/dist/compiler/prerender/prerender-main.d.ts +2 -0
  149. package/dist/compiler/prerender/prerender-queue.d.ts +3 -0
  150. package/dist/compiler/prerender/prerender-template-html.d.ts +2 -0
  151. package/dist/compiler/prerender/prerendered-write-path.d.ts +2 -0
  152. package/dist/compiler/prerender/robots-txt.d.ts +2 -0
  153. package/dist/compiler/prerender/sitemap-xml.d.ts +3 -0
  154. package/dist/compiler/rollup-plugins/component-entry.d.ts +3 -0
  155. package/dist/compiler/rollup-plugins/css-transformer.d.ts +3 -0
  156. package/dist/compiler/rollup-plugins/global-scripts.d.ts +4 -0
  157. package/dist/compiler/rollup-plugins/image-plugin.d.ts +3 -0
  158. package/dist/compiler/rollup-plugins/in-memory-fs-read.d.ts +3 -0
  159. package/dist/compiler/rollup-plugins/loader.d.ts +4 -0
  160. package/dist/compiler/rollup-plugins/plugin-helper.d.ts +5 -0
  161. package/dist/compiler/rollup-plugins/rindo-build-conditionals.d.ts +7 -0
  162. package/dist/compiler/rollup-plugins/rindo-client.d.ts +3 -0
  163. package/dist/compiler/rollup-plugins/rindo-external-runtime.d.ts +2 -0
  164. package/dist/compiler/rollup-plugins/rindo-hydrate.d.ts +3 -0
  165. package/dist/compiler/rollup-plugins/rindo-public-plugin.d.ts +2 -0
  166. package/dist/compiler/service-worker/generate-sw.d.ts +7 -0
  167. package/dist/compiler/service-worker/service-worker-util.d.ts +2 -0
  168. package/dist/compiler/style/cached-styles.d.ts +5 -0
  169. package/dist/compiler/style/component-styles.d.ts +2 -0
  170. package/dist/compiler/style/css-imports.d.ts +9 -0
  171. package/dist/compiler/style/css-to-esm.d.ts +5 -0
  172. package/dist/compiler/style/generate-styles.d.ts +2 -0
  173. package/dist/compiler/style/global-styles.d.ts +3 -0
  174. package/dist/compiler/style/normalize-styles.d.ts +2 -0
  175. package/dist/compiler/style/optimize-css.d.ts +2 -0
  176. package/dist/compiler/style/scope-css.d.ts +3 -0
  177. package/dist/compiler/style/style-utils.d.ts +10 -0
  178. package/dist/compiler/transformers/add-component-meta-proxy.d.ts +3 -0
  179. package/dist/compiler/transformers/add-component-meta-static.d.ts +4 -0
  180. package/dist/compiler/transformers/add-imports.d.ts +3 -0
  181. package/dist/compiler/transformers/collections/add-external-import.d.ts +2 -0
  182. package/dist/compiler/transformers/collections/parse-collection-components.d.ts +2 -0
  183. package/dist/compiler/transformers/collections/parse-collection-deprecated.d.ts +2 -0
  184. package/dist/compiler/transformers/collections/parse-collection-manifest.d.ts +7 -0
  185. package/dist/compiler/transformers/collections/parse-collection-module.d.ts +2 -0
  186. package/dist/compiler/transformers/component-build-conditionals.d.ts +2 -0
  187. package/dist/compiler/transformers/component-hydrate/hydrate-component.d.ts +3 -0
  188. package/dist/compiler/transformers/component-hydrate/hydrate-runtime-cmp-meta.d.ts +3 -0
  189. package/dist/compiler/transformers/component-hydrate/tranform-to-hydrate-component.d.ts +2 -0
  190. package/dist/compiler/transformers/component-lazy/lazy-component.d.ts +3 -0
  191. package/dist/compiler/transformers/component-lazy/lazy-constructor.d.ts +3 -0
  192. package/dist/compiler/transformers/component-lazy/lazy-element-getter.d.ts +3 -0
  193. package/dist/compiler/transformers/component-lazy/transform-lazy-component.d.ts +4 -0
  194. package/dist/compiler/transformers/component-native/native-component.d.ts +3 -0
  195. package/dist/compiler/transformers/component-native/native-connected-callback.d.ts +3 -0
  196. package/dist/compiler/transformers/component-native/native-constructor.d.ts +3 -0
  197. package/dist/compiler/transformers/component-native/native-element-getter.d.ts +3 -0
  198. package/dist/compiler/transformers/component-native/native-static-style.d.ts +3 -0
  199. package/dist/compiler/transformers/component-native/tranform-to-native-component.d.ts +4 -0
  200. package/dist/compiler/transformers/core-runtime-apis.d.ts +30 -0
  201. package/dist/compiler/transformers/create-event.d.ts +3 -0
  202. package/dist/compiler/transformers/decorators-to-static/component-decorator.d.ts +3 -0
  203. package/dist/compiler/transformers/decorators-to-static/convert-decorators.d.ts +3 -0
  204. package/dist/compiler/transformers/decorators-to-static/decorator-utils.d.ts +10 -0
  205. package/dist/compiler/transformers/decorators-to-static/element-decorator.d.ts +3 -0
  206. package/dist/compiler/transformers/decorators-to-static/event-decorator.d.ts +4 -0
  207. package/dist/compiler/transformers/decorators-to-static/listen-decorator.d.ts +6 -0
  208. package/dist/compiler/transformers/decorators-to-static/method-decorator.d.ts +3 -0
  209. package/dist/compiler/transformers/decorators-to-static/prop-decorator.d.ts +4 -0
  210. package/dist/compiler/transformers/decorators-to-static/state-decorator.d.ts +3 -0
  211. package/dist/compiler/transformers/decorators-to-static/style-to-static.d.ts +3 -0
  212. package/dist/compiler/transformers/decorators-to-static/watch-decorator.d.ts +3 -0
  213. package/dist/compiler/transformers/define-custom-element.d.ts +3 -0
  214. package/dist/compiler/transformers/host-data-transform.d.ts +3 -0
  215. package/dist/compiler/transformers/legacy-props.d.ts +3 -0
  216. package/dist/compiler/transformers/remove-static-meta-properties.d.ts +2 -0
  217. package/dist/compiler/transformers/reserved-public-members.d.ts +3 -0
  218. package/dist/compiler/transformers/rindo-import-path.d.ts +3 -0
  219. package/dist/compiler/transformers/static-to-meta/call-expression.d.ts +3 -0
  220. package/dist/compiler/transformers/static-to-meta/class-methods.d.ts +3 -0
  221. package/dist/compiler/transformers/static-to-meta/component.d.ts +3 -0
  222. package/dist/compiler/transformers/static-to-meta/element-ref.d.ts +2 -0
  223. package/dist/compiler/transformers/static-to-meta/encapsulation.d.ts +3 -0
  224. package/dist/compiler/transformers/static-to-meta/events.d.ts +3 -0
  225. package/dist/compiler/transformers/static-to-meta/import.d.ts +3 -0
  226. package/dist/compiler/transformers/static-to-meta/listeners.d.ts +3 -0
  227. package/dist/compiler/transformers/static-to-meta/methods.d.ts +3 -0
  228. package/dist/compiler/transformers/static-to-meta/props.d.ts +3 -0
  229. package/dist/compiler/transformers/static-to-meta/states.d.ts +3 -0
  230. package/dist/compiler/transformers/static-to-meta/string-literal.d.ts +3 -0
  231. package/dist/compiler/transformers/static-to-meta/styles.d.ts +3 -0
  232. package/dist/compiler/transformers/static-to-meta/vdom.d.ts +3 -0
  233. package/dist/compiler/transformers/static-to-meta/visitor.d.ts +3 -0
  234. package/dist/compiler/transformers/static-to-meta/watchers.d.ts +3 -0
  235. package/dist/compiler/transformers/style-imports.d.ts +3 -0
  236. package/dist/compiler/transformers/transform-utils.d.ts +31 -0
  237. package/dist/compiler/transformers/update-component-class.d.ts +3 -0
  238. package/dist/compiler/transformers/update-rindo-core-import.d.ts +3 -0
  239. package/dist/compiler/transformers/watcher-meta-transform.d.ts +3 -0
  240. package/dist/compiler/transpile/compiler-options.d.ts +4 -0
  241. package/dist/compiler/transpile/transpile-app.d.ts +2 -0
  242. package/dist/compiler/transpile/transpile-module.d.ts +5 -0
  243. package/dist/compiler/transpile/transpile-service.d.ts +3 -0
  244. package/dist/compiler/transpile/transpile-to-es5-main.d.ts +2 -0
  245. package/dist/compiler/transpile/validate-types-main.d.ts +2 -0
  246. package/dist/compiler/types/generate-app-types.d.ts +2 -0
  247. package/dist/compiler/types/generate-component-types.d.ts +8 -0
  248. package/dist/compiler/types/generate-event-types.d.ts +2 -0
  249. package/dist/compiler/types/generate-method-types.d.ts +2 -0
  250. package/dist/compiler/types/generate-prop-types.d.ts +2 -0
  251. package/dist/compiler/types/generate-types.d.ts +2 -0
  252. package/dist/compiler/types/rindo-types.d.ts +3 -0
  253. package/dist/compiler/types/types-utils.d.ts +4 -0
  254. package/dist/compiler/types/update-import-refs.d.ts +11 -0
  255. package/dist/compiler/types/validate-package-json.d.ts +9 -0
  256. package/dist/declarations/assets.d.ts +17 -0
  257. package/dist/declarations/browser-compile.d.ts +47 -0
  258. package/dist/declarations/build-conditionals.d.ts +91 -0
  259. package/dist/declarations/build-events.d.ts +19 -0
  260. package/dist/declarations/build.d.ts +247 -0
  261. package/dist/declarations/cache.d.ts +11 -0
  262. package/dist/declarations/collection-manifest.d.ts +106 -0
  263. package/dist/declarations/collection.d.ts +139 -0
  264. package/dist/declarations/compiler.d.ts +53 -0
  265. package/dist/declarations/component-compiler-meta.d.ts +198 -0
  266. package/dist/declarations/component-constructor.d.ts +61 -0
  267. package/dist/declarations/component-interfaces.d.ts +123 -0
  268. package/dist/declarations/config.d.ts +409 -0
  269. package/dist/declarations/css-var-shim.d.ts +9 -0
  270. package/dist/declarations/decorators.d.ts +150 -0
  271. package/dist/declarations/dev-server.d.ts +135 -0
  272. package/dist/declarations/diagnostics.d.ts +21 -0
  273. package/dist/declarations/docs.d.ts +101 -0
  274. package/dist/declarations/entry.d.ts +28 -0
  275. package/dist/declarations/events.d.ts +13 -0
  276. package/dist/declarations/file-system.d.ts +91 -0
  277. package/dist/declarations/fs-watch.d.ts +15 -0
  278. package/dist/declarations/host-element.d.ts +53 -0
  279. package/dist/declarations/hydrate.d.ts +99 -0
  280. package/dist/declarations/in-memory-fs.d.ts +59 -0
  281. package/dist/declarations/index.d.ts +45 -0
  282. package/dist/declarations/jsdoc.d.ts +16 -0
  283. package/dist/declarations/jsx.d.ts +1050 -0
  284. package/dist/declarations/logger.d.ts +25 -0
  285. package/dist/declarations/minify-js.d.ts +11 -0
  286. package/dist/declarations/module.d.ts +35 -0
  287. package/dist/declarations/optimize-css.d.ts +12 -0
  288. package/dist/declarations/output-targets.d.ts +189 -0
  289. package/dist/declarations/plugin.d.ts +23 -0
  290. package/dist/declarations/prerender.d.ts +79 -0
  291. package/dist/declarations/render.d.ts +62 -0
  292. package/dist/declarations/runtime.d.ts +92 -0
  293. package/dist/declarations/screenshots.d.ts +192 -0
  294. package/dist/declarations/server.d.ts +19 -0
  295. package/dist/declarations/style.d.ts +35 -0
  296. package/dist/declarations/system.d.ts +174 -0
  297. package/dist/declarations/testing.d.ts +523 -0
  298. package/dist/declarations/transpile.d.ts +24 -0
  299. package/dist/declarations/types.d.ts +24 -0
  300. package/dist/declarations/vdom.d.ts +55 -0
  301. package/dist/declarations/worker.d.ts +33 -0
  302. package/dist/dev-server/content-type-db.json +1 -0
  303. package/dist/dev-server/index.js +887 -0
  304. package/dist/dev-server/static/app-error.css +257 -0
  305. package/dist/dev-server/static/dev-server-client.html +13 -0
  306. package/dist/dev-server/static/favicon.ico +0 -0
  307. package/dist/dev-server/templates/directory-index.html +132 -0
  308. package/dist/dev-server/templates/initial-load.html +160 -0
  309. package/dist/hydrate/index.d.ts +101 -0
  310. package/dist/hydrate/index.mjs +1281 -0
  311. package/dist/hydrate/platform.mjs +347 -0
  312. package/dist/index.d.ts +99 -0
  313. package/dist/index.js +1 -0
  314. package/dist/mock-doc/index.d.ts +851 -0
  315. package/dist/mock-doc/index.js +3982 -0
  316. package/dist/mock-doc/index.mjs +3954 -0
  317. package/dist/runtime/index.js +2576 -0
  318. package/dist/runtime/index.mjs +2521 -0
  319. package/dist/runtime/shadow-css-6ef31c68.js +386 -0
  320. package/dist/runtime/shadow-css-8fd1a9e4.js +388 -0
  321. package/dist/screenshot/connector-base.d.ts +42 -0
  322. package/dist/screenshot/connector-local.d.ts +7 -0
  323. package/dist/screenshot/index.d.ts +3 -0
  324. package/dist/screenshot/index.js +520 -0
  325. package/dist/screenshot/pixel-match.d.ts +1 -0
  326. package/dist/screenshot/screenshot-fs.d.ts +15 -0
  327. package/dist/sys/node/graceful-fs.js +975 -0
  328. package/dist/sys/node/index.js +33545 -0
  329. package/dist/sys/node/node-fetch.js +1779 -0
  330. package/dist/sys/node/open-in-editor.js +734 -0
  331. package/dist/sys/node/sys-worker.js +67035 -0
  332. package/dist/sys/node/visualstudio.vbs +82 -0
  333. package/dist/sys/node/websocket.js +3728 -0
  334. package/dist/sys/node/xdg-open +1066 -0
  335. package/dist/testing/build-conditionals.d.ts +4 -0
  336. package/dist/testing/build-conditionals.js +43 -0
  337. package/dist/testing/core.d.ts +35 -0
  338. package/dist/testing/core.js +52 -0
  339. package/dist/testing/index.d.ts +13 -0
  340. package/dist/testing/index.js +40511 -0
  341. package/dist/testing/jest/jest-config.d.ts +4 -0
  342. package/dist/testing/jest/jest-environment.d.ts +12 -0
  343. package/dist/testing/jest/jest-preprocessor.d.ts +10 -0
  344. package/dist/testing/jest/jest-runner.d.ts +5 -0
  345. package/dist/testing/jest/jest-screenshot.d.ts +2 -0
  346. package/dist/testing/jest/jest-serializer.d.ts +5 -0
  347. package/dist/testing/jest/jest-setup-test-framework.d.ts +1 -0
  348. package/dist/testing/matchers/attributes.d.ts +14 -0
  349. package/dist/testing/matchers/class-list.d.ts +12 -0
  350. package/dist/testing/matchers/events.d.ts +13 -0
  351. package/dist/testing/matchers/html.d.ts +12 -0
  352. package/dist/testing/matchers/index.d.ts +21 -0
  353. package/dist/testing/matchers/screenshot.d.ts +5 -0
  354. package/dist/testing/matchers/text.d.ts +4 -0
  355. package/dist/testing/mock-fetch.d.ts +46 -0
  356. package/dist/testing/mocks.d.ts +12 -0
  357. package/dist/testing/platform.d.ts +23 -0
  358. package/dist/testing/platform.js +321 -0
  359. package/dist/testing/puppeteer/puppeteer-browser.d.ts +6 -0
  360. package/dist/testing/puppeteer/puppeteer-declarations.d.ts +396 -0
  361. package/dist/testing/puppeteer/puppeteer-element.d.ts +65 -0
  362. package/dist/testing/puppeteer/puppeteer-emulate.d.ts +2 -0
  363. package/dist/testing/puppeteer/puppeteer-events.d.ts +21 -0
  364. package/dist/testing/puppeteer/puppeteer-find.d.ts +5 -0
  365. package/dist/testing/puppeteer/puppeteer-page.d.ts +2 -0
  366. package/dist/testing/puppeteer/puppeteer-screenshot.d.ts +4 -0
  367. package/dist/testing/spec-page.d.ts +5 -0
  368. package/dist/testing/task-queue.d.ts +15 -0
  369. package/dist/testing/test-transpile.d.ts +5 -0
  370. package/dist/testing/testing-fs.d.ts +31 -0
  371. package/dist/testing/testing-logger.d.ts +23 -0
  372. package/dist/testing/testing-sys.d.ts +19 -0
  373. package/dist/testing/testing-utils.d.ts +5 -0
  374. package/dist/testing/testing.d.ts +12 -0
  375. package/dist/utils/index.js +1575 -0
  376. package/dist/utils/index.mjs +1511 -0
  377. package/internal/client/build-conditionals.mjs +82 -0
  378. package/internal/client/css-shim.rindo-client.mjs +656 -0
  379. package/internal/client/dom.rindo-client.mjs +137 -0
  380. package/internal/client/index.mjs +2859 -0
  381. package/internal/client/polyfills/core-js.js +10 -0
  382. package/internal/client/polyfills/css-shim.js +656 -0
  383. package/internal/client/polyfills/dom.js +146 -0
  384. package/internal/client/polyfills/es5-html-element.js +18 -0
  385. package/internal/client/polyfills/index.js +35 -0
  386. package/internal/client/polyfills/promise.js +9 -0
  387. package/internal/client/polyfills/system.js +6 -0
  388. package/internal/client/shadow-css.rindo-client.mjs +386 -0
  389. package/internal/images.d.ts +5 -0
  390. package/internal/index.d.ts +18 -0
  391. package/internal/index.js +1 -0
  392. package/internal/package.json +6 -0
  393. package/mock-doc/index.js +2 -0
  394. package/mock-doc/package.json +10 -0
  395. package/package.json +186 -0
  396. package/readme.md +174 -0
  397. package/runtime/package.json +5 -0
  398. package/screenshot/compare/assets/favicon.ico +0 -0
  399. package/screenshot/compare/assets/logo.png +0 -0
  400. package/screenshot/compare/build/app.css +1 -0
  401. package/screenshot/compare/build/app.esm.js +1 -0
  402. package/screenshot/compare/build/app.js +818 -0
  403. package/screenshot/compare/build/p-020f8d73.js +1 -0
  404. package/screenshot/compare/build/p-09qdknbg.system.entry.js +1 -0
  405. package/screenshot/compare/build/p-0a13mpsc.system.entry.js +1 -0
  406. package/screenshot/compare/build/p-113f7459.js +1 -0
  407. package/screenshot/compare/build/p-168ec2c4.system.js +1 -0
  408. package/screenshot/compare/build/p-2ab1fdf1.system.js +1 -0
  409. package/screenshot/compare/build/p-2pxcsgrj.entry.js +1 -0
  410. package/screenshot/compare/build/p-42fb7034.system.js +1 -0
  411. package/screenshot/compare/build/p-54d9d7c2.system.js +1 -0
  412. package/screenshot/compare/build/p-67c1f911.js +1 -0
  413. package/screenshot/compare/build/p-68613371.system.js +1 -0
  414. package/screenshot/compare/build/p-7dvsjpu0.entry.js +1 -0
  415. package/screenshot/compare/build/p-aa67fb06.js +1 -0
  416. package/screenshot/compare/build/p-aeb3cec1.system.js +1 -0
  417. package/screenshot/compare/build/p-b6e44a24.js +1 -0
  418. package/screenshot/compare/build/p-c1c25b8a.js +1 -0
  419. package/screenshot/compare/build/p-c9bopbjy.system.entry.js +1 -0
  420. package/screenshot/compare/build/p-c9iqz1pp.system.entry.js +1 -0
  421. package/screenshot/compare/build/p-dizjz8rg.entry.js +1 -0
  422. package/screenshot/compare/build/p-dnta0rwp.system.entry.js +1 -0
  423. package/screenshot/compare/build/p-e9670d22.system.js +1 -0
  424. package/screenshot/compare/build/p-efb0eac6.js +1 -0
  425. package/screenshot/compare/build/p-ei9jkpd0.system.entry.js +1 -0
  426. package/screenshot/compare/build/p-ejpsp3kx.js +1 -0
  427. package/screenshot/compare/build/p-ejwcppol.entry.js +1 -0
  428. package/screenshot/compare/build/p-f6612d5d.system.js +1 -0
  429. package/screenshot/compare/build/p-foiivsfc.css +1 -0
  430. package/screenshot/compare/build/p-gpjjyogx.entry.js +1 -0
  431. package/screenshot/compare/build/p-howklem2.system.entry.js +1 -0
  432. package/screenshot/compare/build/p-knv9wvoc.entry.js +1 -0
  433. package/screenshot/compare/build/p-nsqsfhhy.entry.js +1 -0
  434. package/screenshot/compare/build/p-ojt278pp.entry.js +1 -0
  435. package/screenshot/compare/build/p-oywass99.entry.js +1 -0
  436. package/screenshot/compare/build/p-q3ujhub6.entry.js +1 -0
  437. package/screenshot/compare/build/p-qw4xnmxv.entry.js +1 -0
  438. package/screenshot/compare/build/p-t1wvevhc.system.entry.js +1 -0
  439. package/screenshot/compare/build/p-tnjarrex.system.entry.js +1 -0
  440. package/screenshot/compare/build/p-vhfpd6kk.system.entry.js +1 -0
  441. package/screenshot/compare/build/p-vk6rhemd.system.entry.js +1 -0
  442. package/screenshot/compare/build/p-w6bnm16k.entry.js +1 -0
  443. package/screenshot/compare/build/p-xje6d7zl.system.entry.js +1 -0
  444. package/screenshot/compare/build/p-y5jlrcha.system.entry.js +1 -0
  445. package/screenshot/compare/build/p-yh170wkt.entry.js +1 -0
  446. package/screenshot/compare/host.config.json +15 -0
  447. package/screenshot/compare/index.html +1 -0
  448. package/screenshot/compare/manifest.json +13 -0
  449. package/screenshot/connector.js +3 -0
  450. package/screenshot/index.js +2 -0
  451. package/screenshot/local-connector.js +3 -0
  452. package/screenshot/package.json +13 -0
  453. package/screenshot/pixel-match.js +2660 -0
  454. package/sys/node/index.js +2 -0
  455. package/sys/node/package.json +5 -0
  456. package/testing/index.js +2 -0
  457. package/testing/jest-environment.js +3 -0
  458. package/testing/jest-preprocessor.js +3 -0
  459. package/testing/jest-preset.js +40 -0
  460. package/testing/jest-runner.js +3 -0
  461. package/testing/jest-setuptestframework.js +3 -0
  462. package/testing/jest.preprocessor.js +7 -0
  463. package/testing/package.json +6 -0
@@ -0,0 +1,658 @@
1
+ 'use strict';
2
+
3
+ /*
4
+ Extremely simple css parser. Intended to be not more than what we need
5
+ and definitely not necessarily correct =).
6
+ */
7
+ /** @unrestricted */
8
+ var StyleNode = /** @class */ (function () {
9
+ function StyleNode() {
10
+ this.start = 0;
11
+ this.end = 0;
12
+ this.previous = null;
13
+ this.parent = null;
14
+ this.rules = null;
15
+ this.parsedCssText = '';
16
+ this.cssText = '';
17
+ this.atRule = false;
18
+ this.type = 0;
19
+ this.keyframesName = '';
20
+ this.selector = '';
21
+ this.parsedSelector = '';
22
+ }
23
+ return StyleNode;
24
+ }());
25
+ // given a string of css, return a simple rule tree
26
+ /**
27
+ * @param {string} text
28
+ * @return {StyleNode}
29
+ */
30
+ function parse(text) {
31
+ text = clean(text);
32
+ return parseCss(lex(text), text);
33
+ }
34
+ // remove stuff we don't care about that may hinder parsing
35
+ /**
36
+ * @param {string} cssText
37
+ * @return {string}
38
+ */
39
+ function clean(cssText) {
40
+ return cssText.replace(RX.comments, '').replace(RX.port, '');
41
+ }
42
+ // super simple {...} lexer that returns a node tree
43
+ /**
44
+ * @param {string} text
45
+ * @return {StyleNode}
46
+ */
47
+ function lex(text) {
48
+ var root = new StyleNode();
49
+ root['start'] = 0;
50
+ root['end'] = text.length;
51
+ var n = root;
52
+ for (var i = 0, l = text.length; i < l; i++) {
53
+ if (text[i] === OPEN_BRACE) {
54
+ if (!n['rules']) {
55
+ n['rules'] = [];
56
+ }
57
+ var p = n;
58
+ var previous = p['rules'][p['rules'].length - 1] || null;
59
+ n = new StyleNode();
60
+ n['start'] = i + 1;
61
+ n['parent'] = p;
62
+ n['previous'] = previous;
63
+ p['rules'].push(n);
64
+ }
65
+ else if (text[i] === CLOSE_BRACE) {
66
+ n['end'] = i + 1;
67
+ n = n['parent'] || root;
68
+ }
69
+ }
70
+ return root;
71
+ }
72
+ // add selectors/cssText to node tree
73
+ /**
74
+ * @param {StyleNode} node
75
+ * @param {string} text
76
+ * @return {StyleNode}
77
+ */
78
+ function parseCss(node, text) {
79
+ var t = text.substring(node['start'], node['end'] - 1);
80
+ node['parsedCssText'] = node['cssText'] = t.trim();
81
+ if (node.parent) {
82
+ var ss = node.previous ? node.previous['end'] : node.parent['start'];
83
+ t = text.substring(ss, node['start'] - 1);
84
+ t = _expandUnicodeEscapes(t);
85
+ t = t.replace(RX.multipleSpaces, ' ');
86
+ // TODO(sorvell): ad hoc; make selector include only after last ;
87
+ // helps with mixin syntax
88
+ t = t.substring(t.lastIndexOf(';') + 1);
89
+ var s = node['parsedSelector'] = node['selector'] = t.trim();
90
+ node['atRule'] = (s.indexOf(AT_START) === 0);
91
+ // note, support a subset of rule types...
92
+ if (node['atRule']) {
93
+ if (s.indexOf(MEDIA_START) === 0) {
94
+ node['type'] = types.MEDIA_RULE;
95
+ }
96
+ else if (s.match(RX.keyframesRule)) {
97
+ node['type'] = types.KEYFRAMES_RULE;
98
+ node['keyframesName'] = node['selector'].split(RX.multipleSpaces).pop();
99
+ }
100
+ }
101
+ else {
102
+ if (s.indexOf(VAR_START) === 0) {
103
+ node['type'] = types.MIXIN_RULE;
104
+ }
105
+ else {
106
+ node['type'] = types.STYLE_RULE;
107
+ }
108
+ }
109
+ }
110
+ var r$ = node['rules'];
111
+ if (r$) {
112
+ for (var i = 0, l = r$.length, r = void 0; (i < l) && (r = r$[i]); i++) {
113
+ parseCss(r, text);
114
+ }
115
+ }
116
+ return node;
117
+ }
118
+ /**
119
+ * conversion of sort unicode escapes with spaces like `\33 ` (and longer) into
120
+ * expanded form that doesn't require trailing space `\000033`
121
+ * @param {string} s
122
+ * @return {string}
123
+ */
124
+ function _expandUnicodeEscapes(s) {
125
+ return s.replace(/\\([0-9a-f]{1,6})\s/gi, function () {
126
+ var code = arguments[1], repeat = 6 - code.length;
127
+ while (repeat--) {
128
+ code = '0' + code;
129
+ }
130
+ return '\\' + code;
131
+ });
132
+ }
133
+ /** @enum {number} */
134
+ var types = {
135
+ STYLE_RULE: 1,
136
+ KEYFRAMES_RULE: 7,
137
+ MEDIA_RULE: 4,
138
+ MIXIN_RULE: 1000
139
+ };
140
+ var OPEN_BRACE = '{';
141
+ var CLOSE_BRACE = '}';
142
+ // helper regexp's
143
+ var RX = {
144
+ comments: /\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,
145
+ port: /@import[^;]*;/gim,
146
+ customProp: /(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,
147
+ mixinProp: /(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,
148
+ mixinApply: /@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,
149
+ varApply: /[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,
150
+ keyframesRule: /^@[^\s]*keyframes/,
151
+ multipleSpaces: /\s+/g
152
+ };
153
+ var VAR_START = '--';
154
+ var MEDIA_START = '@media';
155
+ var AT_START = '@';
156
+ function findRegex(regex, cssText, offset) {
157
+ regex['lastIndex'] = 0;
158
+ var r = cssText.substring(offset).match(regex);
159
+ if (r) {
160
+ var start = offset + r['index'];
161
+ return {
162
+ start: start,
163
+ end: start + r[0].length
164
+ };
165
+ }
166
+ return null;
167
+ }
168
+ var VAR_USAGE_START = /\bvar\(/;
169
+ var VAR_ASSIGN_START = /\B--[\w-]+\s*:/;
170
+ var COMMENTS = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim;
171
+ var TRAILING_LINES = /^[\t ]+\n/gm;
172
+ function resolveVar(props, prop, fallback) {
173
+ if (props[prop]) {
174
+ return props[prop];
175
+ }
176
+ if (fallback) {
177
+ return executeTemplate(fallback, props);
178
+ }
179
+ return '';
180
+ }
181
+ function findVarEndIndex(cssText, offset) {
182
+ var count = 0;
183
+ var i = offset;
184
+ for (; i < cssText.length; i++) {
185
+ var c = cssText[i];
186
+ if (c === '(') {
187
+ count++;
188
+ }
189
+ else if (c === ')') {
190
+ count--;
191
+ if (count <= 0) {
192
+ return i + 1;
193
+ }
194
+ }
195
+ }
196
+ return i;
197
+ }
198
+ function parseVar(cssText, offset) {
199
+ var varPos = findRegex(VAR_USAGE_START, cssText, offset);
200
+ if (!varPos) {
201
+ return null;
202
+ }
203
+ var endVar = findVarEndIndex(cssText, varPos.start);
204
+ var varContent = cssText.substring(varPos.end, endVar - 1);
205
+ var _a = varContent.split(','), propName = _a[0], fallback = _a.slice(1);
206
+ return {
207
+ start: varPos.start,
208
+ end: endVar,
209
+ propName: propName.trim(),
210
+ fallback: fallback.length > 0 ? fallback.join(',').trim() : undefined
211
+ };
212
+ }
213
+ function compileVar(cssText, template, offset) {
214
+ var varMeta = parseVar(cssText, offset);
215
+ if (!varMeta) {
216
+ template.push(cssText.substring(offset, cssText.length));
217
+ return cssText.length;
218
+ }
219
+ var propName = varMeta.propName;
220
+ var fallback = varMeta.fallback != null ? compileTemplate(varMeta.fallback) : undefined;
221
+ template.push(cssText.substring(offset, varMeta.start), function (params) { return resolveVar(params, propName, fallback); });
222
+ return varMeta.end;
223
+ }
224
+ function executeTemplate(template, props) {
225
+ var final = '';
226
+ for (var i = 0; i < template.length; i++) {
227
+ var s = template[i];
228
+ final += (typeof s === 'string')
229
+ ? s
230
+ : s(props);
231
+ }
232
+ return final;
233
+ }
234
+ function findEndValue(cssText, offset) {
235
+ var onStr = false;
236
+ var double = false;
237
+ var i = offset;
238
+ for (; i < cssText.length; i++) {
239
+ var c = cssText[i];
240
+ if (onStr) {
241
+ if (double && c === '"') {
242
+ onStr = false;
243
+ }
244
+ if (!double && c === '\'') {
245
+ onStr = false;
246
+ }
247
+ }
248
+ else {
249
+ if (c === '"') {
250
+ onStr = true;
251
+ double = true;
252
+ }
253
+ else if (c === '\'') {
254
+ onStr = true;
255
+ double = false;
256
+ }
257
+ else if (c === ';') {
258
+ return i + 1;
259
+ }
260
+ else if (c === '}') {
261
+ return i;
262
+ }
263
+ }
264
+ }
265
+ return i;
266
+ }
267
+ function removeCustomAssigns(cssText) {
268
+ var final = '';
269
+ var offset = 0;
270
+ while (true) {
271
+ var assignPos = findRegex(VAR_ASSIGN_START, cssText, offset);
272
+ var start = assignPos ? assignPos.start : cssText.length;
273
+ final += cssText.substring(offset, start);
274
+ if (assignPos) {
275
+ offset = findEndValue(cssText, start);
276
+ }
277
+ else {
278
+ break;
279
+ }
280
+ }
281
+ return final;
282
+ }
283
+ function compileTemplate(cssText) {
284
+ var index = 0;
285
+ cssText = cssText.replace(COMMENTS, '');
286
+ cssText = removeCustomAssigns(cssText)
287
+ .replace(TRAILING_LINES, '');
288
+ var segments = [];
289
+ while (index < cssText.length) {
290
+ index = compileVar(cssText, segments, index);
291
+ }
292
+ return segments;
293
+ }
294
+ function resolveValues(selectors) {
295
+ var props = {};
296
+ selectors.forEach(function (selector) {
297
+ selector.declarations.forEach(function (dec) {
298
+ props[dec.prop] = dec.value;
299
+ });
300
+ });
301
+ var propsValues = {};
302
+ var entries = Object.entries(props);
303
+ var _loop_1 = function (i) {
304
+ var dirty = false;
305
+ entries.forEach(function (_a) {
306
+ var key = _a[0], value = _a[1];
307
+ var propValue = executeTemplate(value, propsValues);
308
+ if (propValue !== propsValues[key]) {
309
+ propsValues[key] = propValue;
310
+ dirty = true;
311
+ }
312
+ });
313
+ if (!dirty) {
314
+ return "break";
315
+ }
316
+ };
317
+ for (var i = 0; i < 10; i++) {
318
+ var state_1 = _loop_1();
319
+ if (state_1 === "break")
320
+ break;
321
+ }
322
+ return propsValues;
323
+ }
324
+ function getSelectors(root, index) {
325
+ if (index === void 0) { index = 0; }
326
+ if (!root.rules) {
327
+ return [];
328
+ }
329
+ var selectors = [];
330
+ root.rules
331
+ .filter(function (rule) { return rule.type === types.STYLE_RULE; })
332
+ .forEach(function (rule) {
333
+ var declarations = getDeclarations(rule.cssText);
334
+ if (declarations.length > 0) {
335
+ rule.parsedSelector.split(',').forEach(function (selector) {
336
+ selector = selector.trim();
337
+ selectors.push({
338
+ selector: selector,
339
+ declarations: declarations,
340
+ specificity: computeSpecificity(),
341
+ nu: index
342
+ });
343
+ });
344
+ }
345
+ index++;
346
+ });
347
+ return selectors;
348
+ }
349
+ function computeSpecificity(_selector) {
350
+ return 1;
351
+ }
352
+ var IMPORTANT = '!important';
353
+ var FIND_DECLARATIONS = /(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};{])+)|\{([^}]*)\}(?:(?=[;\s}])|$))/gm;
354
+ function getDeclarations(cssText) {
355
+ var declarations = [];
356
+ var xArray;
357
+ while (xArray = FIND_DECLARATIONS.exec(cssText.trim())) {
358
+ var _a = normalizeValue(xArray[2]), value = _a.value, important = _a.important;
359
+ declarations.push({
360
+ prop: xArray[1].trim(),
361
+ value: compileTemplate(value),
362
+ important: important,
363
+ });
364
+ }
365
+ return declarations;
366
+ }
367
+ function normalizeValue(value) {
368
+ var regex = /\s+/gim;
369
+ value = value.replace(regex, ' ').trim();
370
+ var important = value.endsWith(IMPORTANT);
371
+ if (important) {
372
+ value = value.substr(0, value.length - IMPORTANT.length).trim();
373
+ }
374
+ return {
375
+ value: value,
376
+ important: important
377
+ };
378
+ }
379
+ function getActiveSelectors(hostEl, hostScopeMap, globalScopes) {
380
+ // computes the css scopes that might affect this particular element
381
+ // avoiding using spread arrays to avoid ts helper fns when in es5
382
+ var scopes = [];
383
+ var scopesForElement = getScopesForElement(hostScopeMap, hostEl);
384
+ // globalScopes are always took into account
385
+ globalScopes.forEach(function (s) { return scopes.push(s); });
386
+ // the parent scopes are computed by walking parent dom until <html> is reached
387
+ scopesForElement.forEach(function (s) { return scopes.push(s); });
388
+ // each scope might have an array of associated selectors
389
+ // let's flatten the complete array of selectors from all the scopes
390
+ var selectorSet = getSelectorsForScopes(scopes);
391
+ // we filter to only the selectors that matches the hostEl
392
+ var activeSelectors = selectorSet.filter(function (selector) { return matches(hostEl, selector.selector); });
393
+ // sort selectors by specifity
394
+ return sortSelectors(activeSelectors);
395
+ }
396
+ function getScopesForElement(hostTemplateMap, node) {
397
+ var scopes = [];
398
+ while (node) {
399
+ var scope = hostTemplateMap.get(node);
400
+ if (scope) {
401
+ scopes.push(scope);
402
+ }
403
+ node = node.parentElement;
404
+ }
405
+ return scopes;
406
+ }
407
+ function getSelectorsForScopes(scopes) {
408
+ var selectors = [];
409
+ scopes.forEach(function (scope) {
410
+ selectors.push.apply(selectors, scope.selectors);
411
+ });
412
+ return selectors;
413
+ }
414
+ function sortSelectors(selectors) {
415
+ selectors.sort(function (a, b) {
416
+ if (a.specificity === b.specificity) {
417
+ return a.nu - b.nu;
418
+ }
419
+ return a.specificity - b.specificity;
420
+ });
421
+ return selectors;
422
+ }
423
+ function matches(el, selector) {
424
+ return selector === ':root' || selector === 'html' || el.matches(selector);
425
+ }
426
+ function parseCSS(original) {
427
+ var ast = parse(original);
428
+ var template = compileTemplate(original);
429
+ var selectors = getSelectors(ast);
430
+ return {
431
+ original: original,
432
+ template: template,
433
+ selectors: selectors,
434
+ usesCssVars: template.length > 1
435
+ };
436
+ }
437
+ function addGlobalStyle(globalScopes, styleEl) {
438
+ if (globalScopes.some(function (css) { return css.styleEl === styleEl; })) {
439
+ return false;
440
+ }
441
+ var css = parseCSS(styleEl.textContent);
442
+ css.styleEl = styleEl;
443
+ globalScopes.push(css);
444
+ return true;
445
+ }
446
+ function updateGlobalScopes(scopes) {
447
+ var selectors = getSelectorsForScopes(scopes);
448
+ var props = resolveValues(selectors);
449
+ scopes.forEach(function (scope) {
450
+ if (scope.usesCssVars) {
451
+ scope.styleEl.textContent = executeTemplate(scope.template, props);
452
+ }
453
+ });
454
+ }
455
+ function reScope(scope, scopeId) {
456
+ var template = scope.template.map(function (segment) {
457
+ return (typeof segment === 'string')
458
+ ? replaceScope(segment, scope.scopeId, scopeId)
459
+ : segment;
460
+ });
461
+ var selectors = scope.selectors.map(function (sel) {
462
+ return Object.assign(Object.assign({}, sel), { selector: replaceScope(sel.selector, scope.scopeId, scopeId) });
463
+ });
464
+ return Object.assign(Object.assign({}, scope), { template: template,
465
+ selectors: selectors,
466
+ scopeId: scopeId });
467
+ }
468
+ function replaceScope(original, oldScopeId, newScopeId) {
469
+ original = replaceAll(original, "\\." + oldScopeId, "." + newScopeId);
470
+ return original;
471
+ }
472
+ function replaceAll(input, find, replace) {
473
+ return input.replace(new RegExp(find, 'g'), replace);
474
+ }
475
+ function loadDocument(doc, globalScopes) {
476
+ loadDocumentStyles(doc, globalScopes);
477
+ return loadDocumentLinks(doc, globalScopes).then(function () {
478
+ updateGlobalScopes(globalScopes);
479
+ });
480
+ }
481
+ function startWatcher(doc, globalScopes) {
482
+ var mutation = new MutationObserver(function () {
483
+ if (loadDocumentStyles(doc, globalScopes)) {
484
+ updateGlobalScopes(globalScopes);
485
+ }
486
+ });
487
+ mutation.observe(document.head, { childList: true });
488
+ }
489
+ function loadDocumentLinks(doc, globalScopes) {
490
+ var promises = [];
491
+ var linkElms = doc.querySelectorAll('link[rel="stylesheet"][href]:not([data-no-shim])');
492
+ for (var i = 0; i < linkElms.length; i++) {
493
+ promises.push(addGlobalLink(doc, globalScopes, linkElms[i]));
494
+ }
495
+ return Promise.all(promises);
496
+ }
497
+ function loadDocumentStyles(doc, globalScopes) {
498
+ var styleElms = Array.from(doc.querySelectorAll('style:not([data-styles]):not([data-no-shim])'));
499
+ return styleElms
500
+ .map(function (style) { return addGlobalStyle(globalScopes, style); })
501
+ .some(Boolean);
502
+ }
503
+ function addGlobalLink(doc, globalScopes, linkElm) {
504
+ var url = linkElm.href;
505
+ return fetch(url).then(function (rsp) { return rsp.text(); }).then(function (text) {
506
+ if (hasCssVariables(text) && linkElm.parentNode) {
507
+ if (hasRelativeUrls(text)) {
508
+ text = fixRelativeUrls(text, url);
509
+ }
510
+ var styleEl = doc.createElement('style');
511
+ styleEl.setAttribute('data-styles', '');
512
+ styleEl.textContent = text;
513
+ addGlobalStyle(globalScopes, styleEl);
514
+ linkElm.parentNode.insertBefore(styleEl, linkElm);
515
+ linkElm.remove();
516
+ }
517
+ }).catch(function (err) {
518
+ console.error(err);
519
+ });
520
+ }
521
+ // This regexp tries to determine when a variable is declared, for example:
522
+ //
523
+ // .my-el { --highlight-color: green; }
524
+ //
525
+ // but we don't want to trigger when a classname uses "--" or a pseudo-class is
526
+ // used. We assume that the only characters that can preceed a variable
527
+ // declaration are "{", from an opening block, ";" from a preceeding rule, or a
528
+ // space. This prevents the regexp from matching a word in a selector, since
529
+ // they would need to start with a "." or "#". (We assume element names don't
530
+ // start with "--").
531
+ var CSS_VARIABLE_REGEXP = /[\s;{]--[-a-zA-Z0-9]+\s*:/m;
532
+ function hasCssVariables(css) {
533
+ return css.indexOf('var(') > -1 || CSS_VARIABLE_REGEXP.test(css);
534
+ }
535
+ // This regexp find all url() usages with relative urls
536
+ var CSS_URL_REGEXP = /url[\s]*\([\s]*['"]?(?!(?:https?|data)\:|\/)([^\'\"\)]*)[\s]*['"]?\)[\s]*/gim;
537
+ function hasRelativeUrls(css) {
538
+ CSS_URL_REGEXP.lastIndex = 0;
539
+ return CSS_URL_REGEXP.test(css);
540
+ }
541
+ function fixRelativeUrls(css, originalUrl) {
542
+ // get the basepath from the original import url
543
+ var basePath = originalUrl.replace(/[^/]*$/, '');
544
+ // replace the relative url, with the new relative url
545
+ return css.replace(CSS_URL_REGEXP, function (fullMatch, url) {
546
+ // rhe new relative path is the base path + uri
547
+ // TODO: normalize relative URL
548
+ var relativeUrl = basePath + url;
549
+ return fullMatch.replace(url, relativeUrl);
550
+ });
551
+ }
552
+ var CustomStyle = /** @class */ (function () {
553
+ function CustomStyle(win, doc) {
554
+ this.win = win;
555
+ this.doc = doc;
556
+ this.count = 0;
557
+ this.hostStyleMap = new WeakMap();
558
+ this.hostScopeMap = new WeakMap();
559
+ this.globalScopes = [];
560
+ this.scopesMap = new Map();
561
+ this.didInit = false;
562
+ }
563
+ CustomStyle.prototype.i = function () {
564
+ var _this = this;
565
+ if (this.didInit || !this.win.requestAnimationFrame) {
566
+ return Promise.resolve();
567
+ }
568
+ else {
569
+ this.didInit = true;
570
+ return new Promise(function (resolve) {
571
+ _this.win.requestAnimationFrame(function () {
572
+ startWatcher(_this.doc, _this.globalScopes);
573
+ loadDocument(_this.doc, _this.globalScopes).then(function () { return resolve(); });
574
+ });
575
+ });
576
+ }
577
+ };
578
+ CustomStyle.prototype.addLink = function (linkEl) {
579
+ var _this = this;
580
+ return addGlobalLink(this.doc, this.globalScopes, linkEl).then(function () {
581
+ _this.updateGlobal();
582
+ });
583
+ };
584
+ CustomStyle.prototype.addGlobalStyle = function (styleEl) {
585
+ if (addGlobalStyle(this.globalScopes, styleEl)) {
586
+ this.updateGlobal();
587
+ }
588
+ };
589
+ CustomStyle.prototype.createHostStyle = function (hostEl, cssScopeId, cssText, isScoped) {
590
+ if (this.hostScopeMap.has(hostEl)) {
591
+ throw new Error('host style already created');
592
+ }
593
+ var baseScope = this.registerHostTemplate(cssText, cssScopeId, isScoped);
594
+ var styleEl = this.doc.createElement('style');
595
+ styleEl.setAttribute('data-no-shim', '');
596
+ if (!baseScope.usesCssVars) {
597
+ // This component does not use (read) css variables
598
+ styleEl.textContent = cssText;
599
+ }
600
+ else if (isScoped) {
601
+ // This component is dynamic: uses css var and is scoped
602
+ styleEl['s-sc'] = cssScopeId = baseScope.scopeId + "-" + this.count;
603
+ styleEl.textContent = '/*needs update*/';
604
+ this.hostStyleMap.set(hostEl, styleEl);
605
+ this.hostScopeMap.set(hostEl, reScope(baseScope, cssScopeId));
606
+ this.count++;
607
+ }
608
+ else {
609
+ // This component uses css vars, but it's no-encapsulation (global static)
610
+ baseScope.styleEl = styleEl;
611
+ if (!baseScope.usesCssVars) {
612
+ styleEl.textContent = executeTemplate(baseScope.template, {});
613
+ }
614
+ this.globalScopes.push(baseScope);
615
+ this.updateGlobal();
616
+ this.hostScopeMap.set(hostEl, baseScope);
617
+ }
618
+ return styleEl;
619
+ };
620
+ CustomStyle.prototype.removeHost = function (hostEl) {
621
+ var css = this.hostStyleMap.get(hostEl);
622
+ if (css) {
623
+ css.remove();
624
+ }
625
+ this.hostStyleMap.delete(hostEl);
626
+ this.hostScopeMap.delete(hostEl);
627
+ };
628
+ CustomStyle.prototype.updateHost = function (hostEl) {
629
+ var scope = this.hostScopeMap.get(hostEl);
630
+ if (scope && scope.usesCssVars && scope.isScoped) {
631
+ var styleEl = this.hostStyleMap.get(hostEl);
632
+ if (styleEl) {
633
+ var selectors = getActiveSelectors(hostEl, this.hostScopeMap, this.globalScopes);
634
+ var props = resolveValues(selectors);
635
+ styleEl.textContent = executeTemplate(scope.template, props);
636
+ }
637
+ }
638
+ };
639
+ CustomStyle.prototype.updateGlobal = function () {
640
+ updateGlobalScopes(this.globalScopes);
641
+ };
642
+ CustomStyle.prototype.registerHostTemplate = function (cssText, scopeId, isScoped) {
643
+ var scope = this.scopesMap.get(scopeId);
644
+ if (!scope) {
645
+ scope = parseCSS(cssText);
646
+ scope.scopeId = scopeId;
647
+ scope.isScoped = isScoped;
648
+ this.scopesMap.set(scopeId, scope);
649
+ }
650
+ return scope;
651
+ };
652
+ return CustomStyle;
653
+ }());
654
+ (function (win) {
655
+ if (win && !win.__cssshim && (!(win.CSS && win.CSS.supports && win.CSS.supports('color', 'var(--c)')))) {
656
+ win.__cssshim = new CustomStyle(win, win.document);
657
+ }
658
+ })(typeof window !== 'undefined' && window);