@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,656 @@
1
+ /*
2
+ Extremely simple css parser. Intended to be not more than what we need
3
+ and definitely not necessarily correct =).
4
+ */
5
+ /** @unrestricted */
6
+ var StyleNode = /** @class */ (function () {
7
+ function StyleNode() {
8
+ this.start = 0;
9
+ this.end = 0;
10
+ this.previous = null;
11
+ this.parent = null;
12
+ this.rules = null;
13
+ this.parsedCssText = '';
14
+ this.cssText = '';
15
+ this.atRule = false;
16
+ this.type = 0;
17
+ this.keyframesName = '';
18
+ this.selector = '';
19
+ this.parsedSelector = '';
20
+ }
21
+ return StyleNode;
22
+ }());
23
+ // given a string of css, return a simple rule tree
24
+ /**
25
+ * @param {string} text
26
+ * @return {StyleNode}
27
+ */
28
+ function parse(text) {
29
+ text = clean(text);
30
+ return parseCss(lex(text), text);
31
+ }
32
+ // remove stuff we don't care about that may hinder parsing
33
+ /**
34
+ * @param {string} cssText
35
+ * @return {string}
36
+ */
37
+ function clean(cssText) {
38
+ return cssText.replace(RX.comments, '').replace(RX.port, '');
39
+ }
40
+ // super simple {...} lexer that returns a node tree
41
+ /**
42
+ * @param {string} text
43
+ * @return {StyleNode}
44
+ */
45
+ function lex(text) {
46
+ var root = new StyleNode();
47
+ root['start'] = 0;
48
+ root['end'] = text.length;
49
+ var n = root;
50
+ for (var i = 0, l = text.length; i < l; i++) {
51
+ if (text[i] === OPEN_BRACE) {
52
+ if (!n['rules']) {
53
+ n['rules'] = [];
54
+ }
55
+ var p = n;
56
+ var previous = p['rules'][p['rules'].length - 1] || null;
57
+ n = new StyleNode();
58
+ n['start'] = i + 1;
59
+ n['parent'] = p;
60
+ n['previous'] = previous;
61
+ p['rules'].push(n);
62
+ }
63
+ else if (text[i] === CLOSE_BRACE) {
64
+ n['end'] = i + 1;
65
+ n = n['parent'] || root;
66
+ }
67
+ }
68
+ return root;
69
+ }
70
+ // add selectors/cssText to node tree
71
+ /**
72
+ * @param {StyleNode} node
73
+ * @param {string} text
74
+ * @return {StyleNode}
75
+ */
76
+ function parseCss(node, text) {
77
+ var t = text.substring(node['start'], node['end'] - 1);
78
+ node['parsedCssText'] = node['cssText'] = t.trim();
79
+ if (node.parent) {
80
+ var ss = node.previous ? node.previous['end'] : node.parent['start'];
81
+ t = text.substring(ss, node['start'] - 1);
82
+ t = _expandUnicodeEscapes(t);
83
+ t = t.replace(RX.multipleSpaces, ' ');
84
+ // TODO(sorvell): ad hoc; make selector include only after last ;
85
+ // helps with mixin syntax
86
+ t = t.substring(t.lastIndexOf(';') + 1);
87
+ var s = node['parsedSelector'] = node['selector'] = t.trim();
88
+ node['atRule'] = (s.indexOf(AT_START) === 0);
89
+ // note, support a subset of rule types...
90
+ if (node['atRule']) {
91
+ if (s.indexOf(MEDIA_START) === 0) {
92
+ node['type'] = types.MEDIA_RULE;
93
+ }
94
+ else if (s.match(RX.keyframesRule)) {
95
+ node['type'] = types.KEYFRAMES_RULE;
96
+ node['keyframesName'] = node['selector'].split(RX.multipleSpaces).pop();
97
+ }
98
+ }
99
+ else {
100
+ if (s.indexOf(VAR_START) === 0) {
101
+ node['type'] = types.MIXIN_RULE;
102
+ }
103
+ else {
104
+ node['type'] = types.STYLE_RULE;
105
+ }
106
+ }
107
+ }
108
+ var r$ = node['rules'];
109
+ if (r$) {
110
+ for (var i = 0, l = r$.length, r = void 0; (i < l) && (r = r$[i]); i++) {
111
+ parseCss(r, text);
112
+ }
113
+ }
114
+ return node;
115
+ }
116
+ /**
117
+ * conversion of sort unicode escapes with spaces like `\33 ` (and longer) into
118
+ * expanded form that doesn't require trailing space `\000033`
119
+ * @param {string} s
120
+ * @return {string}
121
+ */
122
+ function _expandUnicodeEscapes(s) {
123
+ return s.replace(/\\([0-9a-f]{1,6})\s/gi, function () {
124
+ var code = arguments[1], repeat = 6 - code.length;
125
+ while (repeat--) {
126
+ code = '0' + code;
127
+ }
128
+ return '\\' + code;
129
+ });
130
+ }
131
+ /** @enum {number} */
132
+ var types = {
133
+ STYLE_RULE: 1,
134
+ KEYFRAMES_RULE: 7,
135
+ MEDIA_RULE: 4,
136
+ MIXIN_RULE: 1000
137
+ };
138
+ var OPEN_BRACE = '{';
139
+ var CLOSE_BRACE = '}';
140
+ // helper regexp's
141
+ var RX = {
142
+ comments: /\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,
143
+ port: /@import[^;]*;/gim,
144
+ customProp: /(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,
145
+ mixinProp: /(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,
146
+ mixinApply: /@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,
147
+ varApply: /[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,
148
+ keyframesRule: /^@[^\s]*keyframes/,
149
+ multipleSpaces: /\s+/g
150
+ };
151
+ var VAR_START = '--';
152
+ var MEDIA_START = '@media';
153
+ var AT_START = '@';
154
+ function findRegex(regex, cssText, offset) {
155
+ regex['lastIndex'] = 0;
156
+ var r = cssText.substring(offset).match(regex);
157
+ if (r) {
158
+ var start = offset + r['index'];
159
+ return {
160
+ start: start,
161
+ end: start + r[0].length
162
+ };
163
+ }
164
+ return null;
165
+ }
166
+ var VAR_USAGE_START = /\bvar\(/;
167
+ var VAR_ASSIGN_START = /\B--[\w-]+\s*:/;
168
+ var COMMENTS = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim;
169
+ var TRAILING_LINES = /^[\t ]+\n/gm;
170
+ function resolveVar(props, prop, fallback) {
171
+ if (props[prop]) {
172
+ return props[prop];
173
+ }
174
+ if (fallback) {
175
+ return executeTemplate(fallback, props);
176
+ }
177
+ return '';
178
+ }
179
+ function findVarEndIndex(cssText, offset) {
180
+ var count = 0;
181
+ var i = offset;
182
+ for (; i < cssText.length; i++) {
183
+ var c = cssText[i];
184
+ if (c === '(') {
185
+ count++;
186
+ }
187
+ else if (c === ')') {
188
+ count--;
189
+ if (count <= 0) {
190
+ return i + 1;
191
+ }
192
+ }
193
+ }
194
+ return i;
195
+ }
196
+ function parseVar(cssText, offset) {
197
+ var varPos = findRegex(VAR_USAGE_START, cssText, offset);
198
+ if (!varPos) {
199
+ return null;
200
+ }
201
+ var endVar = findVarEndIndex(cssText, varPos.start);
202
+ var varContent = cssText.substring(varPos.end, endVar - 1);
203
+ var _a = varContent.split(','), propName = _a[0], fallback = _a.slice(1);
204
+ return {
205
+ start: varPos.start,
206
+ end: endVar,
207
+ propName: propName.trim(),
208
+ fallback: fallback.length > 0 ? fallback.join(',').trim() : undefined
209
+ };
210
+ }
211
+ function compileVar(cssText, template, offset) {
212
+ var varMeta = parseVar(cssText, offset);
213
+ if (!varMeta) {
214
+ template.push(cssText.substring(offset, cssText.length));
215
+ return cssText.length;
216
+ }
217
+ var propName = varMeta.propName;
218
+ var fallback = varMeta.fallback != null ? compileTemplate(varMeta.fallback) : undefined;
219
+ template.push(cssText.substring(offset, varMeta.start), function (params) { return resolveVar(params, propName, fallback); });
220
+ return varMeta.end;
221
+ }
222
+ function executeTemplate(template, props) {
223
+ var final = '';
224
+ for (var i = 0; i < template.length; i++) {
225
+ var s = template[i];
226
+ final += (typeof s === 'string')
227
+ ? s
228
+ : s(props);
229
+ }
230
+ return final;
231
+ }
232
+ function findEndValue(cssText, offset) {
233
+ var onStr = false;
234
+ var double = false;
235
+ var i = offset;
236
+ for (; i < cssText.length; i++) {
237
+ var c = cssText[i];
238
+ if (onStr) {
239
+ if (double && c === '"') {
240
+ onStr = false;
241
+ }
242
+ if (!double && c === '\'') {
243
+ onStr = false;
244
+ }
245
+ }
246
+ else {
247
+ if (c === '"') {
248
+ onStr = true;
249
+ double = true;
250
+ }
251
+ else if (c === '\'') {
252
+ onStr = true;
253
+ double = false;
254
+ }
255
+ else if (c === ';') {
256
+ return i + 1;
257
+ }
258
+ else if (c === '}') {
259
+ return i;
260
+ }
261
+ }
262
+ }
263
+ return i;
264
+ }
265
+ function removeCustomAssigns(cssText) {
266
+ var final = '';
267
+ var offset = 0;
268
+ while (true) {
269
+ var assignPos = findRegex(VAR_ASSIGN_START, cssText, offset);
270
+ var start = assignPos ? assignPos.start : cssText.length;
271
+ final += cssText.substring(offset, start);
272
+ if (assignPos) {
273
+ offset = findEndValue(cssText, start);
274
+ }
275
+ else {
276
+ break;
277
+ }
278
+ }
279
+ return final;
280
+ }
281
+ function compileTemplate(cssText) {
282
+ var index = 0;
283
+ cssText = cssText.replace(COMMENTS, '');
284
+ cssText = removeCustomAssigns(cssText)
285
+ .replace(TRAILING_LINES, '');
286
+ var segments = [];
287
+ while (index < cssText.length) {
288
+ index = compileVar(cssText, segments, index);
289
+ }
290
+ return segments;
291
+ }
292
+ function resolveValues(selectors) {
293
+ var props = {};
294
+ selectors.forEach(function (selector) {
295
+ selector.declarations.forEach(function (dec) {
296
+ props[dec.prop] = dec.value;
297
+ });
298
+ });
299
+ var propsValues = {};
300
+ var entries = Object.entries(props);
301
+ var _loop_1 = function (i) {
302
+ var dirty = false;
303
+ entries.forEach(function (_a) {
304
+ var key = _a[0], value = _a[1];
305
+ var propValue = executeTemplate(value, propsValues);
306
+ if (propValue !== propsValues[key]) {
307
+ propsValues[key] = propValue;
308
+ dirty = true;
309
+ }
310
+ });
311
+ if (!dirty) {
312
+ return "break";
313
+ }
314
+ };
315
+ for (var i = 0; i < 10; i++) {
316
+ var state_1 = _loop_1();
317
+ if (state_1 === "break")
318
+ break;
319
+ }
320
+ return propsValues;
321
+ }
322
+ function getSelectors(root, index) {
323
+ if (index === void 0) { index = 0; }
324
+ if (!root.rules) {
325
+ return [];
326
+ }
327
+ var selectors = [];
328
+ root.rules
329
+ .filter(function (rule) { return rule.type === types.STYLE_RULE; })
330
+ .forEach(function (rule) {
331
+ var declarations = getDeclarations(rule.cssText);
332
+ if (declarations.length > 0) {
333
+ rule.parsedSelector.split(',').forEach(function (selector) {
334
+ selector = selector.trim();
335
+ selectors.push({
336
+ selector: selector,
337
+ declarations: declarations,
338
+ specificity: computeSpecificity(),
339
+ nu: index
340
+ });
341
+ });
342
+ }
343
+ index++;
344
+ });
345
+ return selectors;
346
+ }
347
+ function computeSpecificity(_selector) {
348
+ return 1;
349
+ }
350
+ var IMPORTANT = '!important';
351
+ var FIND_DECLARATIONS = /(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};{])+)|\{([^}]*)\}(?:(?=[;\s}])|$))/gm;
352
+ function getDeclarations(cssText) {
353
+ var declarations = [];
354
+ var xArray;
355
+ while (xArray = FIND_DECLARATIONS.exec(cssText.trim())) {
356
+ var _a = normalizeValue(xArray[2]), value = _a.value, important = _a.important;
357
+ declarations.push({
358
+ prop: xArray[1].trim(),
359
+ value: compileTemplate(value),
360
+ important: important,
361
+ });
362
+ }
363
+ return declarations;
364
+ }
365
+ function normalizeValue(value) {
366
+ var regex = /\s+/gim;
367
+ value = value.replace(regex, ' ').trim();
368
+ var important = value.endsWith(IMPORTANT);
369
+ if (important) {
370
+ value = value.substr(0, value.length - IMPORTANT.length).trim();
371
+ }
372
+ return {
373
+ value: value,
374
+ important: important
375
+ };
376
+ }
377
+ function getActiveSelectors(hostEl, hostScopeMap, globalScopes) {
378
+ // computes the css scopes that might affect this particular element
379
+ // avoiding using spread arrays to avoid ts helper fns when in es5
380
+ var scopes = [];
381
+ var scopesForElement = getScopesForElement(hostScopeMap, hostEl);
382
+ // globalScopes are always took into account
383
+ globalScopes.forEach(function (s) { return scopes.push(s); });
384
+ // the parent scopes are computed by walking parent dom until <html> is reached
385
+ scopesForElement.forEach(function (s) { return scopes.push(s); });
386
+ // each scope might have an array of associated selectors
387
+ // let's flatten the complete array of selectors from all the scopes
388
+ var selectorSet = getSelectorsForScopes(scopes);
389
+ // we filter to only the selectors that matches the hostEl
390
+ var activeSelectors = selectorSet.filter(function (selector) { return matches(hostEl, selector.selector); });
391
+ // sort selectors by specifity
392
+ return sortSelectors(activeSelectors);
393
+ }
394
+ function getScopesForElement(hostTemplateMap, node) {
395
+ var scopes = [];
396
+ while (node) {
397
+ var scope = hostTemplateMap.get(node);
398
+ if (scope) {
399
+ scopes.push(scope);
400
+ }
401
+ node = node.parentElement;
402
+ }
403
+ return scopes;
404
+ }
405
+ function getSelectorsForScopes(scopes) {
406
+ var selectors = [];
407
+ scopes.forEach(function (scope) {
408
+ selectors.push.apply(selectors, scope.selectors);
409
+ });
410
+ return selectors;
411
+ }
412
+ function sortSelectors(selectors) {
413
+ selectors.sort(function (a, b) {
414
+ if (a.specificity === b.specificity) {
415
+ return a.nu - b.nu;
416
+ }
417
+ return a.specificity - b.specificity;
418
+ });
419
+ return selectors;
420
+ }
421
+ function matches(el, selector) {
422
+ return selector === ':root' || selector === 'html' || el.matches(selector);
423
+ }
424
+ function parseCSS(original) {
425
+ var ast = parse(original);
426
+ var template = compileTemplate(original);
427
+ var selectors = getSelectors(ast);
428
+ return {
429
+ original: original,
430
+ template: template,
431
+ selectors: selectors,
432
+ usesCssVars: template.length > 1
433
+ };
434
+ }
435
+ function addGlobalStyle(globalScopes, styleEl) {
436
+ if (globalScopes.some(function (css) { return css.styleEl === styleEl; })) {
437
+ return false;
438
+ }
439
+ var css = parseCSS(styleEl.textContent);
440
+ css.styleEl = styleEl;
441
+ globalScopes.push(css);
442
+ return true;
443
+ }
444
+ function updateGlobalScopes(scopes) {
445
+ var selectors = getSelectorsForScopes(scopes);
446
+ var props = resolveValues(selectors);
447
+ scopes.forEach(function (scope) {
448
+ if (scope.usesCssVars) {
449
+ scope.styleEl.textContent = executeTemplate(scope.template, props);
450
+ }
451
+ });
452
+ }
453
+ function reScope(scope, scopeId) {
454
+ var template = scope.template.map(function (segment) {
455
+ return (typeof segment === 'string')
456
+ ? replaceScope(segment, scope.scopeId, scopeId)
457
+ : segment;
458
+ });
459
+ var selectors = scope.selectors.map(function (sel) {
460
+ return Object.assign(Object.assign({}, sel), { selector: replaceScope(sel.selector, scope.scopeId, scopeId) });
461
+ });
462
+ return Object.assign(Object.assign({}, scope), { template: template,
463
+ selectors: selectors,
464
+ scopeId: scopeId });
465
+ }
466
+ function replaceScope(original, oldScopeId, newScopeId) {
467
+ original = replaceAll(original, "\\." + oldScopeId, "." + newScopeId);
468
+ return original;
469
+ }
470
+ function replaceAll(input, find, replace) {
471
+ return input.replace(new RegExp(find, 'g'), replace);
472
+ }
473
+ function loadDocument(doc, globalScopes) {
474
+ loadDocumentStyles(doc, globalScopes);
475
+ return loadDocumentLinks(doc, globalScopes).then(function () {
476
+ updateGlobalScopes(globalScopes);
477
+ });
478
+ }
479
+ function startWatcher(doc, globalScopes) {
480
+ var mutation = new MutationObserver(function () {
481
+ if (loadDocumentStyles(doc, globalScopes)) {
482
+ updateGlobalScopes(globalScopes);
483
+ }
484
+ });
485
+ mutation.observe(document.head, { childList: true });
486
+ }
487
+ function loadDocumentLinks(doc, globalScopes) {
488
+ var promises = [];
489
+ var linkElms = doc.querySelectorAll('link[rel="stylesheet"][href]:not([data-no-shim])');
490
+ for (var i = 0; i < linkElms.length; i++) {
491
+ promises.push(addGlobalLink(doc, globalScopes, linkElms[i]));
492
+ }
493
+ return Promise.all(promises);
494
+ }
495
+ function loadDocumentStyles(doc, globalScopes) {
496
+ var styleElms = Array.from(doc.querySelectorAll('style:not([data-styles]):not([data-no-shim])'));
497
+ return styleElms
498
+ .map(function (style) { return addGlobalStyle(globalScopes, style); })
499
+ .some(Boolean);
500
+ }
501
+ function addGlobalLink(doc, globalScopes, linkElm) {
502
+ var url = linkElm.href;
503
+ return fetch(url).then(function (rsp) { return rsp.text(); }).then(function (text) {
504
+ if (hasCssVariables(text) && linkElm.parentNode) {
505
+ if (hasRelativeUrls(text)) {
506
+ text = fixRelativeUrls(text, url);
507
+ }
508
+ var styleEl = doc.createElement('style');
509
+ styleEl.setAttribute('data-styles', '');
510
+ styleEl.textContent = text;
511
+ addGlobalStyle(globalScopes, styleEl);
512
+ linkElm.parentNode.insertBefore(styleEl, linkElm);
513
+ linkElm.remove();
514
+ }
515
+ }).catch(function (err) {
516
+ console.error(err);
517
+ });
518
+ }
519
+ // This regexp tries to determine when a variable is declared, for example:
520
+ //
521
+ // .my-el { --highlight-color: green; }
522
+ //
523
+ // but we don't want to trigger when a classname uses "--" or a pseudo-class is
524
+ // used. We assume that the only characters that can preceed a variable
525
+ // declaration are "{", from an opening block, ";" from a preceeding rule, or a
526
+ // space. This prevents the regexp from matching a word in a selector, since
527
+ // they would need to start with a "." or "#". (We assume element names don't
528
+ // start with "--").
529
+ var CSS_VARIABLE_REGEXP = /[\s;{]--[-a-zA-Z0-9]+\s*:/m;
530
+ function hasCssVariables(css) {
531
+ return css.indexOf('var(') > -1 || CSS_VARIABLE_REGEXP.test(css);
532
+ }
533
+ // This regexp find all url() usages with relative urls
534
+ var CSS_URL_REGEXP = /url[\s]*\([\s]*['"]?(?!(?:https?|data)\:|\/)([^\'\"\)]*)[\s]*['"]?\)[\s]*/gim;
535
+ function hasRelativeUrls(css) {
536
+ CSS_URL_REGEXP.lastIndex = 0;
537
+ return CSS_URL_REGEXP.test(css);
538
+ }
539
+ function fixRelativeUrls(css, originalUrl) {
540
+ // get the basepath from the original import url
541
+ var basePath = originalUrl.replace(/[^/]*$/, '');
542
+ // replace the relative url, with the new relative url
543
+ return css.replace(CSS_URL_REGEXP, function (fullMatch, url) {
544
+ // rhe new relative path is the base path + uri
545
+ // TODO: normalize relative URL
546
+ var relativeUrl = basePath + url;
547
+ return fullMatch.replace(url, relativeUrl);
548
+ });
549
+ }
550
+ var CustomStyle = /** @class */ (function () {
551
+ function CustomStyle(win, doc) {
552
+ this.win = win;
553
+ this.doc = doc;
554
+ this.count = 0;
555
+ this.hostStyleMap = new WeakMap();
556
+ this.hostScopeMap = new WeakMap();
557
+ this.globalScopes = [];
558
+ this.scopesMap = new Map();
559
+ this.didInit = false;
560
+ }
561
+ CustomStyle.prototype.i = function () {
562
+ var _this = this;
563
+ if (this.didInit || !this.win.requestAnimationFrame) {
564
+ return Promise.resolve();
565
+ }
566
+ else {
567
+ this.didInit = true;
568
+ return new Promise(function (resolve) {
569
+ _this.win.requestAnimationFrame(function () {
570
+ startWatcher(_this.doc, _this.globalScopes);
571
+ loadDocument(_this.doc, _this.globalScopes).then(function () { return resolve(); });
572
+ });
573
+ });
574
+ }
575
+ };
576
+ CustomStyle.prototype.addLink = function (linkEl) {
577
+ var _this = this;
578
+ return addGlobalLink(this.doc, this.globalScopes, linkEl).then(function () {
579
+ _this.updateGlobal();
580
+ });
581
+ };
582
+ CustomStyle.prototype.addGlobalStyle = function (styleEl) {
583
+ if (addGlobalStyle(this.globalScopes, styleEl)) {
584
+ this.updateGlobal();
585
+ }
586
+ };
587
+ CustomStyle.prototype.createHostStyle = function (hostEl, cssScopeId, cssText, isScoped) {
588
+ if (this.hostScopeMap.has(hostEl)) {
589
+ throw new Error('host style already created');
590
+ }
591
+ var baseScope = this.registerHostTemplate(cssText, cssScopeId, isScoped);
592
+ var styleEl = this.doc.createElement('style');
593
+ styleEl.setAttribute('data-no-shim', '');
594
+ if (!baseScope.usesCssVars) {
595
+ // This component does not use (read) css variables
596
+ styleEl.textContent = cssText;
597
+ }
598
+ else if (isScoped) {
599
+ // This component is dynamic: uses css var and is scoped
600
+ styleEl['s-sc'] = cssScopeId = baseScope.scopeId + "-" + this.count;
601
+ styleEl.textContent = '/*needs update*/';
602
+ this.hostStyleMap.set(hostEl, styleEl);
603
+ this.hostScopeMap.set(hostEl, reScope(baseScope, cssScopeId));
604
+ this.count++;
605
+ }
606
+ else {
607
+ // This component uses css vars, but it's no-encapsulation (global static)
608
+ baseScope.styleEl = styleEl;
609
+ if (!baseScope.usesCssVars) {
610
+ styleEl.textContent = executeTemplate(baseScope.template, {});
611
+ }
612
+ this.globalScopes.push(baseScope);
613
+ this.updateGlobal();
614
+ this.hostScopeMap.set(hostEl, baseScope);
615
+ }
616
+ return styleEl;
617
+ };
618
+ CustomStyle.prototype.removeHost = function (hostEl) {
619
+ var css = this.hostStyleMap.get(hostEl);
620
+ if (css) {
621
+ css.remove();
622
+ }
623
+ this.hostStyleMap.delete(hostEl);
624
+ this.hostScopeMap.delete(hostEl);
625
+ };
626
+ CustomStyle.prototype.updateHost = function (hostEl) {
627
+ var scope = this.hostScopeMap.get(hostEl);
628
+ if (scope && scope.usesCssVars && scope.isScoped) {
629
+ var styleEl = this.hostStyleMap.get(hostEl);
630
+ if (styleEl) {
631
+ var selectors = getActiveSelectors(hostEl, this.hostScopeMap, this.globalScopes);
632
+ var props = resolveValues(selectors);
633
+ styleEl.textContent = executeTemplate(scope.template, props);
634
+ }
635
+ }
636
+ };
637
+ CustomStyle.prototype.updateGlobal = function () {
638
+ updateGlobalScopes(this.globalScopes);
639
+ };
640
+ CustomStyle.prototype.registerHostTemplate = function (cssText, scopeId, isScoped) {
641
+ var scope = this.scopesMap.get(scopeId);
642
+ if (!scope) {
643
+ scope = parseCSS(cssText);
644
+ scope.scopeId = scopeId;
645
+ scope.isScoped = isScoped;
646
+ this.scopesMap.set(scopeId, scope);
647
+ }
648
+ return scope;
649
+ };
650
+ return CustomStyle;
651
+ }());
652
+ (function (win) {
653
+ if (win && !win.__cssshim && (!(win.CSS && win.CSS.supports && win.CSS.supports('color', 'var(--c)')))) {
654
+ win.__cssshim = new CustomStyle(win, win.document);
655
+ }
656
+ })(typeof window !== 'undefined' && window);