@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,520 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
+
7
+ var fs = _interopDefault(require('../sys/node/graceful-fs.js'));
8
+ var path = require('path');
9
+ var path__default = _interopDefault(path);
10
+ var os = require('os');
11
+ var utils = require('../utils');
12
+ var url = require('url');
13
+
14
+ function fileExists(filePath) {
15
+ return new Promise(resolve => {
16
+ fs.access(filePath, (err) => resolve(!err));
17
+ });
18
+ }
19
+ function readFile(filePath) {
20
+ return new Promise((resolve, reject) => {
21
+ fs.readFile(filePath, 'utf-8', (err, data) => {
22
+ if (err) {
23
+ reject(err);
24
+ }
25
+ else {
26
+ resolve(data);
27
+ }
28
+ });
29
+ });
30
+ }
31
+ function readFileBuffer(filePath) {
32
+ return new Promise((resolve, reject) => {
33
+ fs.readFile(filePath, (err, data) => {
34
+ if (err) {
35
+ reject(err);
36
+ }
37
+ else {
38
+ resolve(data);
39
+ }
40
+ });
41
+ });
42
+ }
43
+ function writeFile(filePath, data) {
44
+ return new Promise((resolve, reject) => {
45
+ fs.writeFile(filePath, data, (err) => {
46
+ if (err) {
47
+ reject(err);
48
+ }
49
+ else {
50
+ resolve();
51
+ }
52
+ });
53
+ });
54
+ }
55
+ function mkDir(filePath) {
56
+ return new Promise(resolve => {
57
+ fs.mkdir(filePath, () => {
58
+ resolve();
59
+ });
60
+ });
61
+ }
62
+ function rmDir(filePath) {
63
+ return new Promise(resolve => {
64
+ fs.rmdir(filePath, () => {
65
+ resolve();
66
+ });
67
+ });
68
+ }
69
+ async function emptyDir(dir) {
70
+ const files = await readDir(dir);
71
+ const promises = files.map(async (fileName) => {
72
+ const filePath = path__default.join(dir, fileName);
73
+ const isDirFile = await isFile(filePath);
74
+ if (isDirFile) {
75
+ await unlink(filePath);
76
+ }
77
+ });
78
+ await Promise.all(promises);
79
+ }
80
+ async function readDir(dir) {
81
+ return new Promise(resolve => {
82
+ fs.readdir(dir, (err, files) => {
83
+ if (err) {
84
+ resolve([]);
85
+ }
86
+ else {
87
+ resolve(files);
88
+ }
89
+ });
90
+ });
91
+ }
92
+ async function isFile(itemPath) {
93
+ return new Promise(resolve => {
94
+ fs.stat(itemPath, (err, stat) => {
95
+ if (err) {
96
+ resolve(false);
97
+ }
98
+ else {
99
+ resolve(stat.isFile());
100
+ }
101
+ });
102
+ });
103
+ }
104
+ async function unlink(filePath) {
105
+ return new Promise(resolve => {
106
+ fs.unlink(filePath, () => {
107
+ resolve();
108
+ });
109
+ });
110
+ }
111
+
112
+ class ScreenshotConnector {
113
+ constructor() {
114
+ this.screenshotDirName = 'screenshot';
115
+ this.imagesDirName = 'images';
116
+ this.buildsDirName = 'builds';
117
+ this.masterBuildFileName = 'master.json';
118
+ this.screenshotCacheFileName = 'screenshot-cache.json';
119
+ }
120
+ async initBuild(opts) {
121
+ this.logger = opts.logger;
122
+ this.buildId = opts.buildId;
123
+ this.buildMessage = opts.buildMessage || '';
124
+ this.buildAuthor = opts.buildAuthor;
125
+ this.buildUrl = opts.buildUrl;
126
+ this.previewUrl = opts.previewUrl;
127
+ this.buildTimestamp = typeof opts.buildTimestamp === 'number' ? opts.buildTimestamp : Date.now(),
128
+ this.cacheDir = opts.cacheDir;
129
+ this.packageDir = opts.packageDir;
130
+ this.rootDir = opts.rootDir;
131
+ this.appNamespace = opts.appNamespace;
132
+ this.waitBeforeScreenshot = opts.waitBeforeScreenshot;
133
+ this.pixelmatchModulePath = opts.pixelmatchModulePath;
134
+ if (!opts.logger) {
135
+ throw new Error(`logger option required`);
136
+ }
137
+ if (typeof opts.buildId !== 'string') {
138
+ throw new Error(`buildId option required`);
139
+ }
140
+ if (typeof opts.cacheDir !== 'string') {
141
+ throw new Error(`cacheDir option required`);
142
+ }
143
+ if (typeof opts.packageDir !== 'string') {
144
+ throw new Error(`packageDir option required`);
145
+ }
146
+ if (typeof opts.rootDir !== 'string') {
147
+ throw new Error(`rootDir option required`);
148
+ }
149
+ this.updateMaster = !!opts.updateMaster;
150
+ this.allowableMismatchedPixels = opts.allowableMismatchedPixels;
151
+ this.allowableMismatchedRatio = opts.allowableMismatchedRatio;
152
+ this.pixelmatchThreshold = opts.pixelmatchThreshold;
153
+ this.logger.debug(`screenshot build: ${this.buildId}, ${this.buildMessage}, updateMaster: ${this.updateMaster}`);
154
+ this.logger.debug(`screenshot, allowableMismatchedPixels: ${this.allowableMismatchedPixels}, allowableMismatchedRatio: ${this.allowableMismatchedRatio}, pixelmatchThreshold: ${this.pixelmatchThreshold}`);
155
+ if (typeof opts.screenshotDirName === 'string') {
156
+ this.screenshotDirName = opts.screenshotDirName;
157
+ }
158
+ if (typeof opts.imagesDirName === 'string') {
159
+ this.imagesDirName = opts.imagesDirName;
160
+ }
161
+ if (typeof opts.buildsDirName === 'string') {
162
+ this.buildsDirName = opts.buildsDirName;
163
+ }
164
+ this.screenshotDir = path.join(this.rootDir, this.screenshotDirName);
165
+ this.imagesDir = path.join(this.screenshotDir, this.imagesDirName);
166
+ this.buildsDir = path.join(this.screenshotDir, this.buildsDirName);
167
+ this.masterBuildFilePath = path.join(this.buildsDir, this.masterBuildFileName);
168
+ this.screenshotCacheFilePath = path.join(this.cacheDir, this.screenshotCacheFileName);
169
+ this.currentBuildDir = path.join(os.tmpdir(), 'screenshot-build-' + this.buildId);
170
+ this.logger.debug(`screenshotDirPath: ${this.screenshotDir}`);
171
+ this.logger.debug(`imagesDirPath: ${this.imagesDir}`);
172
+ this.logger.debug(`buildsDirPath: ${this.buildsDir}`);
173
+ this.logger.debug(`currentBuildDir: ${this.currentBuildDir}`);
174
+ this.logger.debug(`cacheDir: ${this.cacheDir}`);
175
+ await mkDir(this.screenshotDir);
176
+ await Promise.all([
177
+ mkDir(this.imagesDir),
178
+ mkDir(this.buildsDir),
179
+ mkDir(this.currentBuildDir),
180
+ mkDir(this.cacheDir)
181
+ ]);
182
+ }
183
+ async pullMasterBuild() { }
184
+ async getMasterBuild() {
185
+ let masterBuild = null;
186
+ try {
187
+ masterBuild = JSON.parse(await readFile(this.masterBuildFilePath));
188
+ }
189
+ catch (e) { }
190
+ return masterBuild;
191
+ }
192
+ async completeBuild(masterBuild) {
193
+ const filePaths = (await readDir(this.currentBuildDir)).map(f => path.join(this.currentBuildDir, f)).filter(f => f.endsWith('.json'));
194
+ const screenshots = await Promise.all(filePaths.map(async (f) => JSON.parse(await readFile(f))));
195
+ this.sortScreenshots(screenshots);
196
+ if (!masterBuild) {
197
+ masterBuild = {
198
+ id: this.buildId,
199
+ message: this.buildMessage,
200
+ author: this.buildAuthor,
201
+ url: this.buildUrl,
202
+ previewUrl: this.previewUrl,
203
+ appNamespace: this.appNamespace,
204
+ timestamp: this.buildTimestamp,
205
+ screenshots: screenshots
206
+ };
207
+ }
208
+ const results = {
209
+ appNamespace: this.appNamespace,
210
+ masterBuild: masterBuild,
211
+ currentBuild: {
212
+ id: this.buildId,
213
+ message: this.buildMessage,
214
+ author: this.buildAuthor,
215
+ url: this.buildUrl,
216
+ previewUrl: this.previewUrl,
217
+ appNamespace: this.appNamespace,
218
+ timestamp: this.buildTimestamp,
219
+ screenshots: screenshots
220
+ },
221
+ compare: {
222
+ id: `${masterBuild.id}-${this.buildId}`,
223
+ a: {
224
+ id: masterBuild.id,
225
+ message: masterBuild.message,
226
+ author: masterBuild.author,
227
+ url: masterBuild.url,
228
+ previewUrl: masterBuild.previewUrl
229
+ },
230
+ b: {
231
+ id: this.buildId,
232
+ message: this.buildMessage,
233
+ author: this.buildAuthor,
234
+ url: this.buildUrl,
235
+ previewUrl: this.previewUrl,
236
+ },
237
+ url: null,
238
+ appNamespace: this.appNamespace,
239
+ timestamp: this.buildTimestamp,
240
+ diffs: []
241
+ }
242
+ };
243
+ results.currentBuild.screenshots.forEach(screenshot => {
244
+ screenshot.diff.device = (screenshot.diff.device || screenshot.diff.userAgent);
245
+ results.compare.diffs.push(screenshot.diff);
246
+ delete screenshot.diff;
247
+ });
248
+ this.sortCompares(results.compare.diffs);
249
+ await emptyDir(this.currentBuildDir);
250
+ await rmDir(this.currentBuildDir);
251
+ return results;
252
+ }
253
+ async publishBuild(results) {
254
+ return results;
255
+ }
256
+ async generateJsonpDataUris(build) {
257
+ if (build && Array.isArray(build.screenshots)) {
258
+ for (let i = 0; i < build.screenshots.length; i++) {
259
+ const screenshot = build.screenshots[i];
260
+ const jsonpFileName = `screenshot_${screenshot.image}.js`;
261
+ const jsonFilePath = path.join(this.cacheDir, jsonpFileName);
262
+ const jsonpExists = await fileExists(jsonFilePath);
263
+ if (!jsonpExists) {
264
+ const imageFilePath = path.join(this.imagesDir, screenshot.image);
265
+ const imageBuf = await readFileBuffer(imageFilePath);
266
+ const jsonpContent = `loadScreenshot("${screenshot.image}","data:image/png;base64,${imageBuf.toString('base64')}");`;
267
+ await writeFile(jsonFilePath, jsonpContent);
268
+ }
269
+ }
270
+ }
271
+ }
272
+ async getScreenshotCache() {
273
+ return null;
274
+ }
275
+ async updateScreenshotCache(screenshotCache, buildResults) {
276
+ screenshotCache = screenshotCache || {};
277
+ screenshotCache.timestamp = this.buildTimestamp;
278
+ screenshotCache.lastBuildId = this.buildId;
279
+ screenshotCache.size = 0;
280
+ screenshotCache.items = screenshotCache.items || [];
281
+ if (buildResults && buildResults.compare && Array.isArray(buildResults.compare.diffs)) {
282
+ buildResults.compare.diffs.forEach(diff => {
283
+ if (typeof diff.cacheKey !== 'string') {
284
+ return;
285
+ }
286
+ if (diff.imageA === diff.imageB) {
287
+ // no need to cache identical matches
288
+ return;
289
+ }
290
+ const existingItem = screenshotCache.items.find(i => i.key === diff.cacheKey);
291
+ if (existingItem) {
292
+ // already have this cached, but update its timestamp
293
+ existingItem.ts = this.buildTimestamp;
294
+ }
295
+ else {
296
+ // add this item to the cache
297
+ screenshotCache.items.push({
298
+ key: diff.cacheKey,
299
+ ts: this.buildTimestamp,
300
+ mp: diff.mismatchedPixels
301
+ });
302
+ }
303
+ });
304
+ }
305
+ // sort so the newest items are on top
306
+ screenshotCache.items.sort((a, b) => {
307
+ if (a.ts > b.ts)
308
+ return -1;
309
+ if (a.ts < b.ts)
310
+ return 1;
311
+ if (a.mp > b.mp)
312
+ return -1;
313
+ if (a.mp < b.mp)
314
+ return 1;
315
+ return 0;
316
+ });
317
+ // keep only the most recent items
318
+ screenshotCache.items = screenshotCache.items.slice(0, 1000);
319
+ screenshotCache.size = screenshotCache.items.length;
320
+ return screenshotCache;
321
+ }
322
+ toJson(masterBuild, screenshotCache) {
323
+ const masterScreenshots = {};
324
+ if (masterBuild && Array.isArray(masterBuild.screenshots)) {
325
+ masterBuild.screenshots.forEach(masterScreenshot => {
326
+ masterScreenshots[masterScreenshot.id] = masterScreenshot.image;
327
+ });
328
+ }
329
+ const mismatchCache = {};
330
+ if (screenshotCache && Array.isArray(screenshotCache.items)) {
331
+ screenshotCache.items.forEach(cacheItem => {
332
+ mismatchCache[cacheItem.key] = cacheItem.mp;
333
+ });
334
+ }
335
+ const screenshotBuild = {
336
+ buildId: this.buildId,
337
+ rootDir: this.rootDir,
338
+ screenshotDir: this.screenshotDir,
339
+ imagesDir: this.imagesDir,
340
+ buildsDir: this.buildsDir,
341
+ masterScreenshots: masterScreenshots,
342
+ cache: mismatchCache,
343
+ currentBuildDir: this.currentBuildDir,
344
+ updateMaster: this.updateMaster,
345
+ allowableMismatchedPixels: this.allowableMismatchedPixels,
346
+ allowableMismatchedRatio: this.allowableMismatchedRatio,
347
+ pixelmatchThreshold: this.pixelmatchThreshold,
348
+ timeoutBeforeScreenshot: this.waitBeforeScreenshot,
349
+ pixelmatchModulePath: this.pixelmatchModulePath
350
+ };
351
+ return JSON.stringify(screenshotBuild);
352
+ }
353
+ sortScreenshots(screenshots) {
354
+ return screenshots.sort((a, b) => {
355
+ if (a.desc && b.desc) {
356
+ if (a.desc.toLowerCase() < b.desc.toLowerCase())
357
+ return -1;
358
+ if (a.desc.toLowerCase() > b.desc.toLowerCase())
359
+ return 1;
360
+ }
361
+ if (a.device && b.device) {
362
+ if (a.device.toLowerCase() < b.device.toLowerCase())
363
+ return -1;
364
+ if (a.device.toLowerCase() > b.device.toLowerCase())
365
+ return 1;
366
+ }
367
+ if (a.userAgent && b.userAgent) {
368
+ if (a.userAgent.toLowerCase() < b.userAgent.toLowerCase())
369
+ return -1;
370
+ if (a.userAgent.toLowerCase() > b.userAgent.toLowerCase())
371
+ return 1;
372
+ }
373
+ if (a.width < b.width)
374
+ return -1;
375
+ if (a.width > b.width)
376
+ return 1;
377
+ if (a.height < b.height)
378
+ return -1;
379
+ if (a.height > b.height)
380
+ return 1;
381
+ if (a.id < b.id)
382
+ return -1;
383
+ if (a.id > b.id)
384
+ return 1;
385
+ return 0;
386
+ });
387
+ }
388
+ sortCompares(compares) {
389
+ return compares.sort((a, b) => {
390
+ if (a.allowableMismatchedPixels > b.allowableMismatchedPixels)
391
+ return -1;
392
+ if (a.allowableMismatchedPixels < b.allowableMismatchedPixels)
393
+ return 1;
394
+ if (a.allowableMismatchedRatio > b.allowableMismatchedRatio)
395
+ return -1;
396
+ if (a.allowableMismatchedRatio < b.allowableMismatchedRatio)
397
+ return 1;
398
+ if (a.desc && b.desc) {
399
+ if (a.desc.toLowerCase() < b.desc.toLowerCase())
400
+ return -1;
401
+ if (a.desc.toLowerCase() > b.desc.toLowerCase())
402
+ return 1;
403
+ }
404
+ if (a.device && b.device) {
405
+ if (a.device.toLowerCase() < b.device.toLowerCase())
406
+ return -1;
407
+ if (a.device.toLowerCase() > b.device.toLowerCase())
408
+ return 1;
409
+ }
410
+ if (a.userAgent && b.userAgent) {
411
+ if (a.userAgent.toLowerCase() < b.userAgent.toLowerCase())
412
+ return -1;
413
+ if (a.userAgent.toLowerCase() > b.userAgent.toLowerCase())
414
+ return 1;
415
+ }
416
+ if (a.width < b.width)
417
+ return -1;
418
+ if (a.width > b.width)
419
+ return 1;
420
+ if (a.height < b.height)
421
+ return -1;
422
+ if (a.height > b.height)
423
+ return 1;
424
+ if (a.id < b.id)
425
+ return -1;
426
+ if (a.id > b.id)
427
+ return 1;
428
+ return 0;
429
+ });
430
+ }
431
+ }
432
+
433
+ class ScreenshotLocalConnector extends ScreenshotConnector {
434
+ async publishBuild(results) {
435
+ if (this.updateMaster || !results.masterBuild) {
436
+ results.masterBuild = {
437
+ id: 'master',
438
+ message: 'Master',
439
+ appNamespace: this.appNamespace,
440
+ timestamp: Date.now(),
441
+ screenshots: []
442
+ };
443
+ }
444
+ results.currentBuild.screenshots.forEach(currentScreenshot => {
445
+ const masterHasScreenshot = results.masterBuild.screenshots.some(masterScreenshot => {
446
+ return currentScreenshot.id === masterScreenshot.id;
447
+ });
448
+ if (!masterHasScreenshot) {
449
+ results.masterBuild.screenshots.push(Object.assign({}, currentScreenshot));
450
+ }
451
+ });
452
+ this.sortScreenshots(results.masterBuild.screenshots);
453
+ await writeFile(this.masterBuildFilePath, JSON.stringify(results.masterBuild, null, 2));
454
+ await this.generateJsonpDataUris(results.currentBuild);
455
+ const compareAppSourceDir = path.join(this.packageDir, 'screenshot', 'compare');
456
+ const appSrcUrl = utils.normalizePath(path.relative(this.screenshotDir, compareAppSourceDir));
457
+ const imagesUrl = utils.normalizePath(path.relative(this.screenshotDir, this.imagesDir));
458
+ const jsonpUrl = utils.normalizePath(path.relative(this.screenshotDir, this.cacheDir));
459
+ const compareAppHtml = createLocalCompareApp(this.appNamespace, appSrcUrl, imagesUrl, jsonpUrl, results.masterBuild, results.currentBuild);
460
+ const compareAppFileName = 'compare.html';
461
+ const compareAppFilePath = path.join(this.screenshotDir, compareAppFileName);
462
+ await writeFile(compareAppFilePath, compareAppHtml);
463
+ const gitIgnorePath = path.join(this.screenshotDir, '.gitignore');
464
+ const gitIgnoreExists = await fileExists(gitIgnorePath);
465
+ if (!gitIgnoreExists) {
466
+ const content = [
467
+ this.imagesDirName,
468
+ this.buildsDirName,
469
+ compareAppFileName
470
+ ];
471
+ await writeFile(gitIgnorePath, content.join('\n'));
472
+ }
473
+ const url$1 = new url.URL(`file://${compareAppFilePath}`);
474
+ results.compare.url = url$1.href;
475
+ return results;
476
+ }
477
+ async getScreenshotCache() {
478
+ let screenshotCache = null;
479
+ try {
480
+ screenshotCache = JSON.parse(await readFile(this.screenshotCacheFilePath));
481
+ }
482
+ catch (e) { }
483
+ return screenshotCache;
484
+ }
485
+ async updateScreenshotCache(cache, buildResults) {
486
+ cache = await super.updateScreenshotCache(cache, buildResults);
487
+ await writeFile(this.screenshotCacheFilePath, JSON.stringify(cache, null, 2));
488
+ return cache;
489
+ }
490
+ }
491
+ function createLocalCompareApp(namespace, appSrcUrl, imagesUrl, jsonpUrl, a, b) {
492
+ return `<!doctype html>
493
+ <html dir="ltr" lang="en">
494
+ <head>
495
+ <meta charset="utf-8">
496
+ <title>Local ${namespace || ''} - Rindo Screenshot Visual Diff</title>
497
+ <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
498
+ <meta http-equiv="x-ua-compatible" content="IE=Edge">
499
+ <link href="${appSrcUrl}/build/app.css" rel="stylesheet">
500
+ <script src="${appSrcUrl}/build/app.js"></script>
501
+ <link rel="icon" type="image/x-icon" href="${appSrcUrl}/assets/favicon.ico">
502
+ </head>
503
+ <body>
504
+ <script>
505
+ (function() {
506
+ var app = document.createElement('screenshot-compare');
507
+ app.appSrcUrl = '${appSrcUrl}';
508
+ app.imagesUrl = '${imagesUrl}/';
509
+ app.jsonpUrl = '${jsonpUrl}/';
510
+ app.a = ${JSON.stringify(a)};
511
+ app.b = ${JSON.stringify(b)};
512
+ document.body.appendChild(app);
513
+ })();
514
+ </script>
515
+ </body>
516
+ </html>`;
517
+ }
518
+
519
+ exports.ScreenshotConnector = ScreenshotConnector;
520
+ exports.ScreenshotLocalConnector = ScreenshotLocalConnector;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,15 @@
1
+ /// <reference types="node" />
2
+ import * as d from '../declarations';
3
+ export declare function writeScreenshotImage(imagePath: string, screenshotBuf: Buffer): Promise<void>;
4
+ export declare function writeScreenshotData(dataDir: string, screenshotData: d.Screenshot): Promise<void>;
5
+ export declare function readScreenshotData(dataDir: string, screenshotId: string): Promise<d.Screenshot>;
6
+ export declare function fileExists(filePath: string): Promise<boolean>;
7
+ export declare function readFile(filePath: string): Promise<string>;
8
+ export declare function readFileBuffer(filePath: string): Promise<Buffer>;
9
+ export declare function writeFile(filePath: string, data: any): Promise<void>;
10
+ export declare function mkDir(filePath: string): Promise<void>;
11
+ export declare function rmDir(filePath: string): Promise<void>;
12
+ export declare function emptyDir(dir: string): Promise<void>;
13
+ export declare function readDir(dir: string): Promise<string[]>;
14
+ export declare function isFile(itemPath: string): Promise<boolean>;
15
+ export declare function unlink(filePath: string): Promise<void>;