@rindo/core 1.8.12 → 2.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (608) hide show
  1. package/LICENSE.md +27 -27
  2. package/bin/cli.ts +20 -0
  3. package/bin/rindo +51 -22
  4. package/cli/index.cjs +1263 -0
  5. package/cli/index.d.ts +15 -0
  6. package/cli/index.js +1237 -0
  7. package/cli/package.json +14 -0
  8. package/compiler/lib.d.ts +24 -0
  9. package/compiler/lib.dom.d.ts +20230 -0
  10. package/compiler/lib.dom.iterable.d.ts +351 -0
  11. package/compiler/lib.es2015.collection.d.ts +89 -0
  12. package/compiler/lib.es2015.core.d.ts +517 -0
  13. package/compiler/lib.es2015.d.ts +30 -0
  14. package/compiler/lib.es2015.generator.d.ts +79 -0
  15. package/compiler/lib.es2015.iterable.d.ts +505 -0
  16. package/compiler/lib.es2015.promise.d.ts +150 -0
  17. package/compiler/lib.es2015.proxy.d.ts +41 -0
  18. package/compiler/lib.es2015.reflect.d.ts +123 -0
  19. package/compiler/lib.es2015.symbol.d.ts +48 -0
  20. package/compiler/lib.es2015.symbol.wellknown.d.ts +324 -0
  21. package/compiler/lib.es2016.array.include.d.ts +118 -0
  22. package/compiler/lib.es2016.d.ts +22 -0
  23. package/compiler/lib.es2016.full.d.ts +25 -0
  24. package/compiler/lib.es2017.d.ts +26 -0
  25. package/compiler/lib.es2017.full.d.ts +25 -0
  26. package/compiler/lib.es2017.intl.d.ts +32 -0
  27. package/compiler/lib.es2017.object.d.ts +51 -0
  28. package/compiler/lib.es2017.sharedmemory.d.ts +137 -0
  29. package/compiler/lib.es2017.string.d.ts +47 -0
  30. package/compiler/lib.es2017.typedarrays.d.ts +55 -0
  31. package/compiler/lib.es2018.asyncgenerator.d.ts +79 -0
  32. package/compiler/lib.es2018.asynciterable.d.ts +45 -0
  33. package/compiler/lib.es2018.d.ts +26 -0
  34. package/compiler/lib.es2018.full.d.ts +25 -0
  35. package/compiler/lib.es2018.intl.d.ts +61 -0
  36. package/compiler/lib.es2018.promise.d.ts +32 -0
  37. package/compiler/lib.es2018.regexp.d.ts +39 -0
  38. package/compiler/lib.es2019.array.d.ts +85 -0
  39. package/compiler/lib.es2019.d.ts +25 -0
  40. package/compiler/lib.es2019.full.d.ts +25 -0
  41. package/compiler/lib.es2019.object.d.ts +35 -0
  42. package/compiler/lib.es2019.string.d.ts +33 -0
  43. package/compiler/lib.es2019.symbol.d.ts +26 -0
  44. package/compiler/lib.es2020.bigint.d.ts +728 -0
  45. package/compiler/lib.es2020.d.ts +27 -0
  46. package/compiler/lib.es2020.full.d.ts +25 -0
  47. package/compiler/lib.es2020.intl.d.ts +310 -0
  48. package/compiler/lib.es2020.promise.d.ts +50 -0
  49. package/compiler/lib.es2020.sharedmemory.d.ts +99 -0
  50. package/compiler/lib.es2020.string.d.ts +30 -0
  51. package/compiler/lib.es2020.symbol.wellknown.d.ts +39 -0
  52. package/compiler/lib.es5.d.ts +4435 -0
  53. package/compiler/lib.es6.d.ts +25 -0
  54. package/compiler/lib.esnext.d.ts +25 -0
  55. package/compiler/lib.esnext.full.d.ts +25 -0
  56. package/compiler/lib.esnext.intl.d.ts +32 -0
  57. package/compiler/lib.esnext.promise.d.ts +43 -0
  58. package/compiler/lib.esnext.string.d.ts +35 -0
  59. package/compiler/lib.esnext.weakref.d.ts +75 -0
  60. package/compiler/lib.scripthost.d.ts +327 -0
  61. package/compiler/lib.webworker.d.ts +6042 -0
  62. package/compiler/lib.webworker.importscripts.d.ts +26 -0
  63. package/compiler/lib.webworker.iterable.d.ts +166 -0
  64. package/compiler/package.json +8 -6
  65. package/compiler/rindo.d.ts +95 -0
  66. package/compiler/rindo.js +65051 -6657
  67. package/compiler/rindo.min.js +4 -0
  68. package/dependencies.json +103 -0
  69. package/dev-server/client/app-error.d.ts +18 -0
  70. package/dev-server/client/events.d.ts +6 -0
  71. package/dev-server/client/hmr-components.d.ts +1 -0
  72. package/dev-server/client/hmr-external-styles.d.ts +1 -0
  73. package/dev-server/client/hmr-images.d.ts +1 -0
  74. package/dev-server/client/hmr-inline-styles.d.ts +1 -0
  75. package/dev-server/client/hmr-util.d.ts +9 -0
  76. package/dev-server/client/hmr-window.d.ts +10 -0
  77. package/dev-server/client/index.d.ts +6 -0
  78. package/dev-server/client/index.js +808 -0
  79. package/dev-server/client/logger.d.ts +5 -0
  80. package/dev-server/client/package.json +8 -0
  81. package/dev-server/client/progress.d.ts +3 -0
  82. package/dev-server/client/status.d.ts +4 -0
  83. package/dev-server/connector.html +6 -0
  84. package/dev-server/index.d.ts +3 -0
  85. package/dev-server/index.js +264 -0
  86. package/dev-server/open-in-editor-api.js +1 -0
  87. package/dev-server/package.json +8 -0
  88. package/dev-server/server-process.js +1738 -0
  89. package/dev-server/server-worker-thread.js +39 -0
  90. package/{dist/dev-server → dev-server}/templates/directory-index.html +132 -132
  91. package/{dist/dev-server → dev-server}/templates/initial-load.html +160 -160
  92. package/dev-server/ws.js +1 -0
  93. package/internal/app-data/index.cjs +90 -0
  94. package/internal/app-data/index.d.ts +4 -0
  95. package/internal/{client/build-conditionals.mjs → app-data/index.js} +25 -21
  96. package/internal/app-data/package.json +15 -0
  97. package/internal/client/css-shim.js +4 -0
  98. package/internal/client/{dom.rindo-client.mjs → dom.js} +73 -137
  99. package/{dist/client/index.mjs → internal/client/index.js} +863 -789
  100. package/internal/client/package.json +8 -0
  101. package/internal/client/patch-browser.js +120 -0
  102. package/internal/client/patch-esm.js +23 -0
  103. package/internal/client/polyfills/core-js.js +11 -10
  104. package/internal/client/polyfills/css-shim.js +1 -656
  105. package/internal/client/polyfills/dom.js +79 -146
  106. package/internal/client/polyfills/es5-html-element.js +1 -18
  107. package/internal/client/polyfills/index.js +34 -35
  108. package/internal/client/{shadow-css.rindo-client.mjs → shadow-css.js} +20 -17
  109. package/internal/hydrate/index.js +1097 -0
  110. package/internal/hydrate/package.json +7 -0
  111. package/internal/hydrate/runner.d.ts +217 -0
  112. package/internal/hydrate/runner.js +777 -0
  113. package/internal/hydrate/shadow-css.js +146 -0
  114. package/internal/index.d.ts +4 -18
  115. package/internal/index.js +1 -1
  116. package/internal/package.json +9 -6
  117. package/internal/rindo-core/index.cjs +1 -0
  118. package/internal/rindo-core/index.d.ts +51 -0
  119. package/internal/rindo-core/index.js +15 -0
  120. package/internal/rindo-ext-modules.d.ts +41 -0
  121. package/internal/rindo-private.d.ts +2128 -0
  122. package/internal/rindo-public-compiler.d.ts +2170 -0
  123. package/{dist/declarations/docs.d.ts → internal/rindo-public-docs.d.ts} +13 -1
  124. package/internal/rindo-public-runtime.d.ts +1555 -0
  125. package/internal/testing/index.js +1055 -0
  126. package/internal/testing/package.json +7 -0
  127. package/internal/testing/shadow-css.js +146 -0
  128. package/mock-doc/index.cjs +4610 -0
  129. package/mock-doc/index.d.ts +916 -0
  130. package/mock-doc/index.js +4574 -2
  131. package/mock-doc/package.json +15 -10
  132. package/package.json +132 -186
  133. package/readme.md +21 -174
  134. package/screenshot/compare/build/app.css +1 -1
  135. package/screenshot/compare/build/app.esm.js +1 -1
  136. package/screenshot/compare/build/app.js +33 -818
  137. package/screenshot/compare/build/{p-113f7459.js → p-081b0641.js} +1 -1
  138. package/screenshot/compare/build/p-227a1e18.entry.js +1 -0
  139. package/screenshot/compare/build/p-2c298727.entry.js +1 -0
  140. package/screenshot/compare/build/p-5479268c.entry.js +1 -0
  141. package/screenshot/compare/build/p-573ec8a4.entry.js +1 -0
  142. package/screenshot/compare/build/p-6ba08604.entry.js +1 -0
  143. package/screenshot/compare/build/p-6bc63295.entry.js +1 -0
  144. package/screenshot/compare/build/p-7a3759fd.entry.js +1 -0
  145. package/screenshot/compare/build/{p-ejpsp3kx.js → p-7b4e3ba7.js} +1 -1
  146. package/screenshot/compare/build/p-988eb362.css +1 -0
  147. package/screenshot/compare/build/p-9b6a9315.js +1 -0
  148. package/screenshot/compare/build/p-b4cc611c.entry.js +1 -0
  149. package/screenshot/compare/build/p-d1bf53f5.entry.js +1 -0
  150. package/screenshot/compare/build/{p-efb0eac6.js → p-e2efe0df.js} +1 -1
  151. package/screenshot/compare/build/p-e8ca6d97.entry.js +1 -0
  152. package/screenshot/compare/build/p-ec2f13e0.entry.js +1 -0
  153. package/screenshot/compare/build/p-f0b99977.entry.js +1 -0
  154. package/screenshot/compare/build/p-f4745c2f.entry.js +1 -0
  155. package/screenshot/compare/build/p-fbbae598.js +1 -0
  156. package/screenshot/compare/host.config.json +14 -14
  157. package/screenshot/compare/index.html +1 -1
  158. package/{dist/screenshot → screenshot}/connector-base.d.ts +1 -1
  159. package/{dist/screenshot → screenshot}/connector-local.d.ts +1 -1
  160. package/screenshot/connector.js +2 -3
  161. package/{dist/screenshot → screenshot}/index.d.ts +1 -1
  162. package/screenshot/index.js +659 -2
  163. package/screenshot/local-connector.js +2 -3
  164. package/screenshot/package.json +15 -13
  165. package/screenshot/pixel-match.js +62 -49
  166. package/screenshot/screenshot-compare.d.ts +3 -0
  167. package/{dist/screenshot → screenshot}/screenshot-fs.d.ts +1 -1
  168. package/sys/deno/index.js +1785 -0
  169. package/sys/deno/node-compat.js +2654 -0
  170. package/sys/deno/worker.js +44 -0
  171. package/sys/node/autoprefixer.js +8 -0
  172. package/sys/node/glob.js +1 -0
  173. package/sys/node/graceful-fs.js +1 -0
  174. package/sys/node/index.d.ts +18 -0
  175. package/sys/node/index.js +1386 -2
  176. package/sys/node/node-fetch.js +1 -0
  177. package/sys/node/package.json +8 -5
  178. package/sys/node/prompts.js +1 -0
  179. package/sys/node/worker.js +52 -0
  180. package/{dist/testing → testing}/index.d.ts +5 -6
  181. package/testing/index.js +4017 -2
  182. package/testing/jest/jest-config.d.ts +5 -0
  183. package/{dist/testing → testing}/jest/jest-environment.d.ts +4 -2
  184. package/{dist/testing → testing}/jest/jest-preprocessor.d.ts +1 -0
  185. package/{dist/testing → testing}/jest/jest-runner.d.ts +1 -1
  186. package/{dist/testing → testing}/jest/jest-screenshot.d.ts +1 -1
  187. package/{dist/testing → testing}/jest/jest-serializer.d.ts +1 -1
  188. package/testing/jest-environment.js +3 -3
  189. package/testing/jest-preprocessor.js +3 -3
  190. package/testing/jest-preset.js +32 -40
  191. package/testing/jest-runner.js +3 -3
  192. package/testing/jest-setuptestframework.js +3 -3
  193. package/{dist/testing → testing}/matchers/events.d.ts +9 -1
  194. package/{dist/testing → testing}/matchers/index.d.ts +3 -1
  195. package/{dist/testing → testing}/matchers/screenshot.d.ts +1 -1
  196. package/testing/mock-fetch.d.ts +11 -0
  197. package/testing/mocks.d.ts +14 -0
  198. package/testing/package.json +8 -6
  199. package/testing/puppeteer/index.d.ts +2 -0
  200. package/{dist/testing → testing}/puppeteer/puppeteer-browser.d.ts +3 -3
  201. package/{dist/testing → testing}/puppeteer/puppeteer-declarations.d.ts +18 -18
  202. package/{dist/testing → testing}/puppeteer/puppeteer-element.d.ts +7 -5
  203. package/testing/puppeteer/puppeteer-emulate.d.ts +2 -0
  204. package/{dist/testing → testing}/puppeteer/puppeteer-events.d.ts +9 -9
  205. package/testing/puppeteer/puppeteer-page.d.ts +2 -0
  206. package/testing/puppeteer/puppeteer-screenshot.d.ts +4 -0
  207. package/testing/reset-build-conditionals.d.ts +2 -0
  208. package/testing/spec-page.d.ts +2 -0
  209. package/testing/test-transpile.d.ts +2 -0
  210. package/{dist/testing → testing}/testing-logger.d.ts +10 -8
  211. package/testing/testing-sys.d.ts +1 -0
  212. package/{dist/testing → testing}/testing-utils.d.ts +3 -2
  213. package/testing/testing.d.ts +2 -0
  214. package/build-conditionals/index.d.ts +0 -2
  215. package/build-conditionals/index.mjs +0 -66
  216. package/build-conditionals/package.json +0 -6
  217. package/compiler/index.js +0 -2
  218. package/dist/cli/index.js +0 -6068
  219. package/dist/client/css-shim-14a9812e.js +0 -656
  220. package/dist/client/css-shim-69821662.js +0 -658
  221. package/dist/client/declarations/rindo.core.d.ts +0 -1347
  222. package/dist/client/dom-68c8fe31.js +0 -139
  223. package/dist/client/dom-af01458a.js +0 -137
  224. package/dist/client/index.js +0 -2937
  225. package/dist/client/polyfills/core-js.js +0 -10
  226. package/dist/client/polyfills/css-shim.js +0 -656
  227. package/dist/client/polyfills/dom.js +0 -146
  228. package/dist/client/polyfills/es5-html-element.js +0 -18
  229. package/dist/client/polyfills/index.js +0 -35
  230. package/dist/client/polyfills/promise.js +0 -9
  231. package/dist/client/polyfills/system.js +0 -6
  232. package/dist/client/shadow-css-6ef31c68.js +0 -386
  233. package/dist/client/shadow-css-8fd1a9e4.js +0 -388
  234. package/dist/compiler/app-core/app-es5-disabled.d.ts +0 -2
  235. package/dist/compiler/app-core/app-polyfills.d.ts +0 -3
  236. package/dist/compiler/app-core/build-conditionals.d.ts +0 -6
  237. package/dist/compiler/app-core/bundle-app-core.d.ts +0 -6
  238. package/dist/compiler/app-core/component-styles.d.ts +0 -4
  239. package/dist/compiler/app-core/format-component-runtime-meta.d.ts +0 -4
  240. package/dist/compiler/app-core/optimize-module.d.ts +0 -7
  241. package/dist/compiler/browser/build-conditionals-client.d.ts +0 -3
  242. package/dist/compiler/browser/compile-options.d.ts +0 -12
  243. package/dist/compiler/browser/compile.d.ts +0 -2
  244. package/dist/compiler/browser/create-compiler.d.ts +0 -14
  245. package/dist/compiler/browser/index.d.ts +0 -11
  246. package/dist/compiler/build/build-ctx.d.ts +0 -74
  247. package/dist/compiler/build/build-finish.d.ts +0 -3
  248. package/dist/compiler/build/build-hmr.d.ts +0 -2
  249. package/dist/compiler/build/build-results.d.ts +0 -2
  250. package/dist/compiler/build/build-stats.d.ts +0 -3
  251. package/dist/compiler/build/build.d.ts +0 -2
  252. package/dist/compiler/build/cache-stats.d.ts +0 -4
  253. package/dist/compiler/build/compiler-build-id.d.ts +0 -6
  254. package/dist/compiler/build/compiler-ctx.d.ts +0 -44
  255. package/dist/compiler/build/init-index-html.d.ts +0 -2
  256. package/dist/compiler/build/validate-files.d.ts +0 -2
  257. package/dist/compiler/build/write-build.d.ts +0 -2
  258. package/dist/compiler/cache.d.ts +0 -22
  259. package/dist/compiler/compiler.d.ts +0 -27
  260. package/dist/compiler/component-hydrate/bundle-hydrate-factory.d.ts +0 -3
  261. package/dist/compiler/component-hydrate/generate-hydrate-app.d.ts +0 -2
  262. package/dist/compiler/component-hydrate/hydrate-factory-closure.d.ts +0 -2
  263. package/dist/compiler/component-hydrate/update-to-hydrate-components.d.ts +0 -2
  264. package/dist/compiler/component-hydrate/write-hydrate-outputs.d.ts +0 -3
  265. package/dist/compiler/component-lazy/generate-cjs.d.ts +0 -3
  266. package/dist/compiler/component-lazy/generate-esm-browser.d.ts +0 -3
  267. package/dist/compiler/component-lazy/generate-esm.d.ts +0 -3
  268. package/dist/compiler/component-lazy/generate-lazy-app.d.ts +0 -3
  269. package/dist/compiler/component-lazy/generate-lazy-module.d.ts +0 -4
  270. package/dist/compiler/component-lazy/generate-system.d.ts +0 -3
  271. package/dist/compiler/component-lazy/update-to-lazy-component.d.ts +0 -2
  272. package/dist/compiler/component-lazy/write-lazy-entry-module.d.ts +0 -2
  273. package/dist/compiler/component-native/update-to-native-component.d.ts +0 -2
  274. package/dist/compiler/config/config-reload.d.ts +0 -3
  275. package/dist/compiler/config/config-utils.d.ts +0 -4
  276. package/dist/compiler/config/validate-config.d.ts +0 -4
  277. package/dist/compiler/config/validate-copy.d.ts +0 -2
  278. package/dist/compiler/config/validate-dev-server.d.ts +0 -2
  279. package/dist/compiler/config/validate-docs.d.ts +0 -2
  280. package/dist/compiler/config/validate-namespace.d.ts +0 -3
  281. package/dist/compiler/config/validate-output-stats.d.ts +0 -2
  282. package/dist/compiler/config/validate-outputs-angular.d.ts +0 -2
  283. package/dist/compiler/config/validate-outputs-custom.d.ts +0 -2
  284. package/dist/compiler/config/validate-outputs-dist-module.d.ts +0 -2
  285. package/dist/compiler/config/validate-outputs-dist.d.ts +0 -2
  286. package/dist/compiler/config/validate-outputs-hydrate-script.d.ts +0 -2
  287. package/dist/compiler/config/validate-outputs-www.d.ts +0 -2
  288. package/dist/compiler/config/validate-outputs.d.ts +0 -2
  289. package/dist/compiler/config/validate-paths.d.ts +0 -2
  290. package/dist/compiler/config/validate-plugins.d.ts +0 -2
  291. package/dist/compiler/config/validate-prerender.d.ts +0 -2
  292. package/dist/compiler/config/validate-rollup-config.d.ts +0 -2
  293. package/dist/compiler/config/validate-service-worker.d.ts +0 -2
  294. package/dist/compiler/config/validate-testing.d.ts +0 -2
  295. package/dist/compiler/config/validate-workers.d.ts +0 -2
  296. package/dist/compiler/copy/assets-copy-tasks.d.ts +0 -3
  297. package/dist/compiler/copy/hashed-copy.d.ts +0 -2
  298. package/dist/compiler/copy/local-copy-tasks.d.ts +0 -3
  299. package/dist/compiler/docs/constants.d.ts +0 -2
  300. package/dist/compiler/docs/custom/index.d.ts +0 -2
  301. package/dist/compiler/docs/docs.d.ts +0 -2
  302. package/dist/compiler/docs/generate-doc-data.d.ts +0 -3
  303. package/dist/compiler/docs/json/index.d.ts +0 -3
  304. package/dist/compiler/docs/readme/docs-util.d.ts +0 -13
  305. package/dist/compiler/docs/readme/index.d.ts +0 -3
  306. package/dist/compiler/docs/readme/markdown-css-props.d.ts +0 -2
  307. package/dist/compiler/docs/readme/markdown-dependencies.d.ts +0 -2
  308. package/dist/compiler/docs/readme/markdown-events.d.ts +0 -2
  309. package/dist/compiler/docs/readme/markdown-methods.d.ts +0 -2
  310. package/dist/compiler/docs/readme/markdown-props.d.ts +0 -2
  311. package/dist/compiler/docs/readme/markdown-slots.d.ts +0 -2
  312. package/dist/compiler/docs/readme/markdown-usage.d.ts +0 -6
  313. package/dist/compiler/docs/readme/output-docs.d.ts +0 -3
  314. package/dist/compiler/docs/style-docs.d.ts +0 -2
  315. package/dist/compiler/docs/vscode/index.d.ts +0 -2
  316. package/dist/compiler/entries/component-bundles.d.ts +0 -3
  317. package/dist/compiler/entries/component-graph.d.ts +0 -2
  318. package/dist/compiler/entries/default-bundles.d.ts +0 -3
  319. package/dist/compiler/entries/entry-modules.d.ts +0 -6
  320. package/dist/compiler/entries/resolve-component-dependencies.d.ts +0 -2
  321. package/dist/compiler/events.d.ts +0 -15
  322. package/dist/compiler/fs-watch/fs-watch-init.d.ts +0 -2
  323. package/dist/compiler/fs-watch/fs-watch-log.d.ts +0 -2
  324. package/dist/compiler/fs-watch/fs-watch-rebuild.d.ts +0 -7
  325. package/dist/compiler/html/inject-module-preloads.d.ts +0 -3
  326. package/dist/compiler/html/inject-sw-script.d.ts +0 -4
  327. package/dist/compiler/html/inline-esm-import.d.ts +0 -2
  328. package/dist/compiler/html/inline-style-sheets.d.ts +0 -2
  329. package/dist/compiler/html/update-global-styles-link.d.ts +0 -2
  330. package/dist/compiler/html/used-components.d.ts +0 -2
  331. package/dist/compiler/html/utils.d.ts +0 -2
  332. package/dist/compiler/html/validate-manifest-json.d.ts +0 -2
  333. package/dist/compiler/index.d.ts +0 -10
  334. package/dist/compiler/index.js +0 -18008
  335. package/dist/compiler/output-targets/empty-dir.d.ts +0 -6
  336. package/dist/compiler/output-targets/index.d.ts +0 -2
  337. package/dist/compiler/output-targets/output-angular.d.ts +0 -4
  338. package/dist/compiler/output-targets/output-app.d.ts +0 -4
  339. package/dist/compiler/output-targets/output-collection.d.ts +0 -3
  340. package/dist/compiler/output-targets/output-copy.d.ts +0 -2
  341. package/dist/compiler/output-targets/output-custom.d.ts +0 -2
  342. package/dist/compiler/output-targets/output-docs.d.ts +0 -2
  343. package/dist/compiler/output-targets/output-hydrate.d.ts +0 -2
  344. package/dist/compiler/output-targets/output-lazy-loader.d.ts +0 -2
  345. package/dist/compiler/output-targets/output-module.d.ts +0 -4
  346. package/dist/compiler/output-targets/output-prerender.d.ts +0 -2
  347. package/dist/compiler/output-targets/output-service-workers.d.ts +0 -2
  348. package/dist/compiler/output-targets/output-types.d.ts +0 -2
  349. package/dist/compiler/output-targets/output-utils.d.ts +0 -54
  350. package/dist/compiler/output-targets/output-www.d.ts +0 -2
  351. package/dist/compiler/plugin/plugin.d.ts +0 -6
  352. package/dist/compiler/prerender/crawl-urls.d.ts +0 -3
  353. package/dist/compiler/prerender/host-config.d.ts +0 -12
  354. package/dist/compiler/prerender/prerender-config.d.ts +0 -2
  355. package/dist/compiler/prerender/prerender-main.d.ts +0 -2
  356. package/dist/compiler/prerender/prerender-queue.d.ts +0 -3
  357. package/dist/compiler/prerender/prerender-template-html.d.ts +0 -2
  358. package/dist/compiler/prerender/prerendered-write-path.d.ts +0 -2
  359. package/dist/compiler/prerender/robots-txt.d.ts +0 -2
  360. package/dist/compiler/prerender/sitemap-xml.d.ts +0 -3
  361. package/dist/compiler/rollup-plugins/component-entry.d.ts +0 -3
  362. package/dist/compiler/rollup-plugins/css-transformer.d.ts +0 -3
  363. package/dist/compiler/rollup-plugins/global-scripts.d.ts +0 -4
  364. package/dist/compiler/rollup-plugins/image-plugin.d.ts +0 -3
  365. package/dist/compiler/rollup-plugins/in-memory-fs-read.d.ts +0 -3
  366. package/dist/compiler/rollup-plugins/loader.d.ts +0 -4
  367. package/dist/compiler/rollup-plugins/plugin-helper.d.ts +0 -5
  368. package/dist/compiler/rollup-plugins/rindo-build-conditionals.d.ts +0 -7
  369. package/dist/compiler/rollup-plugins/rindo-client.d.ts +0 -3
  370. package/dist/compiler/rollup-plugins/rindo-external-runtime.d.ts +0 -2
  371. package/dist/compiler/rollup-plugins/rindo-hydrate.d.ts +0 -3
  372. package/dist/compiler/rollup-plugins/rindo-public-plugin.d.ts +0 -2
  373. package/dist/compiler/service-worker/generate-sw.d.ts +0 -7
  374. package/dist/compiler/service-worker/service-worker-util.d.ts +0 -2
  375. package/dist/compiler/style/cached-styles.d.ts +0 -5
  376. package/dist/compiler/style/component-styles.d.ts +0 -2
  377. package/dist/compiler/style/css-imports.d.ts +0 -9
  378. package/dist/compiler/style/css-to-esm.d.ts +0 -5
  379. package/dist/compiler/style/generate-styles.d.ts +0 -2
  380. package/dist/compiler/style/global-styles.d.ts +0 -3
  381. package/dist/compiler/style/normalize-styles.d.ts +0 -2
  382. package/dist/compiler/style/optimize-css.d.ts +0 -2
  383. package/dist/compiler/style/scope-css.d.ts +0 -3
  384. package/dist/compiler/style/style-utils.d.ts +0 -10
  385. package/dist/compiler/transformers/add-component-meta-proxy.d.ts +0 -3
  386. package/dist/compiler/transformers/add-component-meta-static.d.ts +0 -4
  387. package/dist/compiler/transformers/add-imports.d.ts +0 -3
  388. package/dist/compiler/transformers/collections/add-external-import.d.ts +0 -2
  389. package/dist/compiler/transformers/collections/parse-collection-components.d.ts +0 -2
  390. package/dist/compiler/transformers/collections/parse-collection-deprecated.d.ts +0 -2
  391. package/dist/compiler/transformers/collections/parse-collection-manifest.d.ts +0 -7
  392. package/dist/compiler/transformers/collections/parse-collection-module.d.ts +0 -2
  393. package/dist/compiler/transformers/component-build-conditionals.d.ts +0 -2
  394. package/dist/compiler/transformers/component-hydrate/hydrate-component.d.ts +0 -3
  395. package/dist/compiler/transformers/component-hydrate/hydrate-runtime-cmp-meta.d.ts +0 -3
  396. package/dist/compiler/transformers/component-hydrate/tranform-to-hydrate-component.d.ts +0 -2
  397. package/dist/compiler/transformers/component-lazy/lazy-component.d.ts +0 -3
  398. package/dist/compiler/transformers/component-lazy/lazy-constructor.d.ts +0 -3
  399. package/dist/compiler/transformers/component-lazy/lazy-element-getter.d.ts +0 -3
  400. package/dist/compiler/transformers/component-lazy/transform-lazy-component.d.ts +0 -4
  401. package/dist/compiler/transformers/component-native/native-component.d.ts +0 -3
  402. package/dist/compiler/transformers/component-native/native-connected-callback.d.ts +0 -3
  403. package/dist/compiler/transformers/component-native/native-constructor.d.ts +0 -3
  404. package/dist/compiler/transformers/component-native/native-element-getter.d.ts +0 -3
  405. package/dist/compiler/transformers/component-native/native-static-style.d.ts +0 -3
  406. package/dist/compiler/transformers/component-native/tranform-to-native-component.d.ts +0 -4
  407. package/dist/compiler/transformers/core-runtime-apis.d.ts +0 -30
  408. package/dist/compiler/transformers/create-event.d.ts +0 -3
  409. package/dist/compiler/transformers/decorators-to-static/component-decorator.d.ts +0 -3
  410. package/dist/compiler/transformers/decorators-to-static/convert-decorators.d.ts +0 -3
  411. package/dist/compiler/transformers/decorators-to-static/decorator-utils.d.ts +0 -10
  412. package/dist/compiler/transformers/decorators-to-static/element-decorator.d.ts +0 -3
  413. package/dist/compiler/transformers/decorators-to-static/event-decorator.d.ts +0 -4
  414. package/dist/compiler/transformers/decorators-to-static/listen-decorator.d.ts +0 -6
  415. package/dist/compiler/transformers/decorators-to-static/method-decorator.d.ts +0 -3
  416. package/dist/compiler/transformers/decorators-to-static/prop-decorator.d.ts +0 -4
  417. package/dist/compiler/transformers/decorators-to-static/state-decorator.d.ts +0 -3
  418. package/dist/compiler/transformers/decorators-to-static/style-to-static.d.ts +0 -3
  419. package/dist/compiler/transformers/decorators-to-static/watch-decorator.d.ts +0 -3
  420. package/dist/compiler/transformers/define-custom-element.d.ts +0 -3
  421. package/dist/compiler/transformers/host-data-transform.d.ts +0 -3
  422. package/dist/compiler/transformers/legacy-props.d.ts +0 -3
  423. package/dist/compiler/transformers/remove-static-meta-properties.d.ts +0 -2
  424. package/dist/compiler/transformers/reserved-public-members.d.ts +0 -3
  425. package/dist/compiler/transformers/rindo-import-path.d.ts +0 -3
  426. package/dist/compiler/transformers/static-to-meta/call-expression.d.ts +0 -3
  427. package/dist/compiler/transformers/static-to-meta/class-methods.d.ts +0 -3
  428. package/dist/compiler/transformers/static-to-meta/component.d.ts +0 -3
  429. package/dist/compiler/transformers/static-to-meta/element-ref.d.ts +0 -2
  430. package/dist/compiler/transformers/static-to-meta/encapsulation.d.ts +0 -3
  431. package/dist/compiler/transformers/static-to-meta/events.d.ts +0 -3
  432. package/dist/compiler/transformers/static-to-meta/import.d.ts +0 -3
  433. package/dist/compiler/transformers/static-to-meta/listeners.d.ts +0 -3
  434. package/dist/compiler/transformers/static-to-meta/methods.d.ts +0 -3
  435. package/dist/compiler/transformers/static-to-meta/props.d.ts +0 -3
  436. package/dist/compiler/transformers/static-to-meta/states.d.ts +0 -3
  437. package/dist/compiler/transformers/static-to-meta/string-literal.d.ts +0 -3
  438. package/dist/compiler/transformers/static-to-meta/styles.d.ts +0 -3
  439. package/dist/compiler/transformers/static-to-meta/vdom.d.ts +0 -3
  440. package/dist/compiler/transformers/static-to-meta/visitor.d.ts +0 -3
  441. package/dist/compiler/transformers/static-to-meta/watchers.d.ts +0 -3
  442. package/dist/compiler/transformers/style-imports.d.ts +0 -3
  443. package/dist/compiler/transformers/transform-utils.d.ts +0 -31
  444. package/dist/compiler/transformers/update-component-class.d.ts +0 -3
  445. package/dist/compiler/transformers/update-rindo-core-import.d.ts +0 -3
  446. package/dist/compiler/transformers/watcher-meta-transform.d.ts +0 -3
  447. package/dist/compiler/transpile/compiler-options.d.ts +0 -4
  448. package/dist/compiler/transpile/transpile-app.d.ts +0 -2
  449. package/dist/compiler/transpile/transpile-module.d.ts +0 -5
  450. package/dist/compiler/transpile/transpile-service.d.ts +0 -3
  451. package/dist/compiler/transpile/transpile-to-es5-main.d.ts +0 -2
  452. package/dist/compiler/transpile/validate-types-main.d.ts +0 -2
  453. package/dist/compiler/types/generate-app-types.d.ts +0 -2
  454. package/dist/compiler/types/generate-component-types.d.ts +0 -8
  455. package/dist/compiler/types/generate-event-types.d.ts +0 -2
  456. package/dist/compiler/types/generate-method-types.d.ts +0 -2
  457. package/dist/compiler/types/generate-prop-types.d.ts +0 -2
  458. package/dist/compiler/types/generate-types.d.ts +0 -2
  459. package/dist/compiler/types/rindo-types.d.ts +0 -3
  460. package/dist/compiler/types/types-utils.d.ts +0 -4
  461. package/dist/compiler/types/update-import-refs.d.ts +0 -11
  462. package/dist/compiler/types/validate-package-json.d.ts +0 -9
  463. package/dist/declarations/assets.d.ts +0 -17
  464. package/dist/declarations/browser-compile.d.ts +0 -47
  465. package/dist/declarations/build-conditionals.d.ts +0 -91
  466. package/dist/declarations/build-events.d.ts +0 -19
  467. package/dist/declarations/build.d.ts +0 -247
  468. package/dist/declarations/cache.d.ts +0 -11
  469. package/dist/declarations/collection-manifest.d.ts +0 -106
  470. package/dist/declarations/collection.d.ts +0 -139
  471. package/dist/declarations/compiler.d.ts +0 -53
  472. package/dist/declarations/component-compiler-meta.d.ts +0 -198
  473. package/dist/declarations/component-constructor.d.ts +0 -61
  474. package/dist/declarations/component-interfaces.d.ts +0 -123
  475. package/dist/declarations/config.d.ts +0 -409
  476. package/dist/declarations/css-var-shim.d.ts +0 -9
  477. package/dist/declarations/decorators.d.ts +0 -150
  478. package/dist/declarations/dev-server.d.ts +0 -135
  479. package/dist/declarations/diagnostics.d.ts +0 -21
  480. package/dist/declarations/entry.d.ts +0 -28
  481. package/dist/declarations/events.d.ts +0 -13
  482. package/dist/declarations/file-system.d.ts +0 -91
  483. package/dist/declarations/fs-watch.d.ts +0 -15
  484. package/dist/declarations/host-element.d.ts +0 -53
  485. package/dist/declarations/hydrate.d.ts +0 -99
  486. package/dist/declarations/in-memory-fs.d.ts +0 -59
  487. package/dist/declarations/index.d.ts +0 -45
  488. package/dist/declarations/jsdoc.d.ts +0 -16
  489. package/dist/declarations/jsx.d.ts +0 -1050
  490. package/dist/declarations/logger.d.ts +0 -25
  491. package/dist/declarations/minify-js.d.ts +0 -11
  492. package/dist/declarations/module.d.ts +0 -35
  493. package/dist/declarations/optimize-css.d.ts +0 -12
  494. package/dist/declarations/output-targets.d.ts +0 -189
  495. package/dist/declarations/plugin.d.ts +0 -23
  496. package/dist/declarations/prerender.d.ts +0 -79
  497. package/dist/declarations/render.d.ts +0 -62
  498. package/dist/declarations/runtime.d.ts +0 -92
  499. package/dist/declarations/screenshots.d.ts +0 -192
  500. package/dist/declarations/server.d.ts +0 -19
  501. package/dist/declarations/style.d.ts +0 -35
  502. package/dist/declarations/system.d.ts +0 -174
  503. package/dist/declarations/testing.d.ts +0 -523
  504. package/dist/declarations/transpile.d.ts +0 -24
  505. package/dist/declarations/types.d.ts +0 -24
  506. package/dist/declarations/vdom.d.ts +0 -55
  507. package/dist/declarations/worker.d.ts +0 -33
  508. package/dist/dev-server/content-type-db.json +0 -1
  509. package/dist/dev-server/index.js +0 -887
  510. package/dist/dev-server/static/app-error.css +0 -257
  511. package/dist/dev-server/static/dev-server-client.html +0 -13
  512. package/dist/hydrate/index.d.ts +0 -101
  513. package/dist/hydrate/index.mjs +0 -1281
  514. package/dist/hydrate/platform.mjs +0 -347
  515. package/dist/index.d.ts +0 -99
  516. package/dist/index.js +0 -1
  517. package/dist/mock-doc/index.d.ts +0 -851
  518. package/dist/mock-doc/index.js +0 -3982
  519. package/dist/mock-doc/index.mjs +0 -3954
  520. package/dist/runtime/index.js +0 -2576
  521. package/dist/runtime/index.mjs +0 -2521
  522. package/dist/runtime/shadow-css-6ef31c68.js +0 -386
  523. package/dist/runtime/shadow-css-8fd1a9e4.js +0 -388
  524. package/dist/screenshot/index.js +0 -520
  525. package/dist/sys/node/graceful-fs.js +0 -975
  526. package/dist/sys/node/index.js +0 -33545
  527. package/dist/sys/node/node-fetch.js +0 -1779
  528. package/dist/sys/node/open-in-editor.js +0 -734
  529. package/dist/sys/node/sys-worker.js +0 -67035
  530. package/dist/sys/node/websocket.js +0 -3728
  531. package/dist/testing/build-conditionals.d.ts +0 -4
  532. package/dist/testing/build-conditionals.js +0 -43
  533. package/dist/testing/core.d.ts +0 -35
  534. package/dist/testing/core.js +0 -52
  535. package/dist/testing/index.js +0 -40511
  536. package/dist/testing/jest/jest-config.d.ts +0 -4
  537. package/dist/testing/mock-fetch.d.ts +0 -46
  538. package/dist/testing/mocks.d.ts +0 -12
  539. package/dist/testing/platform.d.ts +0 -23
  540. package/dist/testing/platform.js +0 -321
  541. package/dist/testing/puppeteer/puppeteer-emulate.d.ts +0 -2
  542. package/dist/testing/puppeteer/puppeteer-find.d.ts +0 -5
  543. package/dist/testing/puppeteer/puppeteer-page.d.ts +0 -2
  544. package/dist/testing/puppeteer/puppeteer-screenshot.d.ts +0 -4
  545. package/dist/testing/spec-page.d.ts +0 -5
  546. package/dist/testing/task-queue.d.ts +0 -15
  547. package/dist/testing/test-transpile.d.ts +0 -5
  548. package/dist/testing/testing-fs.d.ts +0 -31
  549. package/dist/testing/testing-sys.d.ts +0 -19
  550. package/dist/testing/testing.d.ts +0 -12
  551. package/dist/utils/index.js +0 -1575
  552. package/dist/utils/index.mjs +0 -1511
  553. package/internal/client/css-shim.rindo-client.mjs +0 -656
  554. package/internal/client/index.mjs +0 -2859
  555. package/internal/client/polyfills/promise.js +0 -9
  556. package/internal/images.d.ts +0 -5
  557. package/runtime/package.json +0 -5
  558. package/screenshot/compare/build/p-020f8d73.js +0 -1
  559. package/screenshot/compare/build/p-09qdknbg.system.entry.js +0 -1
  560. package/screenshot/compare/build/p-0a13mpsc.system.entry.js +0 -1
  561. package/screenshot/compare/build/p-168ec2c4.system.js +0 -1
  562. package/screenshot/compare/build/p-2ab1fdf1.system.js +0 -1
  563. package/screenshot/compare/build/p-2pxcsgrj.entry.js +0 -1
  564. package/screenshot/compare/build/p-42fb7034.system.js +0 -1
  565. package/screenshot/compare/build/p-54d9d7c2.system.js +0 -1
  566. package/screenshot/compare/build/p-67c1f911.js +0 -1
  567. package/screenshot/compare/build/p-68613371.system.js +0 -1
  568. package/screenshot/compare/build/p-7dvsjpu0.entry.js +0 -1
  569. package/screenshot/compare/build/p-aa67fb06.js +0 -1
  570. package/screenshot/compare/build/p-aeb3cec1.system.js +0 -1
  571. package/screenshot/compare/build/p-b6e44a24.js +0 -1
  572. package/screenshot/compare/build/p-c1c25b8a.js +0 -1
  573. package/screenshot/compare/build/p-c9bopbjy.system.entry.js +0 -1
  574. package/screenshot/compare/build/p-c9iqz1pp.system.entry.js +0 -1
  575. package/screenshot/compare/build/p-dizjz8rg.entry.js +0 -1
  576. package/screenshot/compare/build/p-dnta0rwp.system.entry.js +0 -1
  577. package/screenshot/compare/build/p-e9670d22.system.js +0 -1
  578. package/screenshot/compare/build/p-ei9jkpd0.system.entry.js +0 -1
  579. package/screenshot/compare/build/p-ejwcppol.entry.js +0 -1
  580. package/screenshot/compare/build/p-f6612d5d.system.js +0 -1
  581. package/screenshot/compare/build/p-foiivsfc.css +0 -1
  582. package/screenshot/compare/build/p-gpjjyogx.entry.js +0 -1
  583. package/screenshot/compare/build/p-howklem2.system.entry.js +0 -1
  584. package/screenshot/compare/build/p-knv9wvoc.entry.js +0 -1
  585. package/screenshot/compare/build/p-nsqsfhhy.entry.js +0 -1
  586. package/screenshot/compare/build/p-ojt278pp.entry.js +0 -1
  587. package/screenshot/compare/build/p-oywass99.entry.js +0 -1
  588. package/screenshot/compare/build/p-q3ujhub6.entry.js +0 -1
  589. package/screenshot/compare/build/p-qw4xnmxv.entry.js +0 -1
  590. package/screenshot/compare/build/p-t1wvevhc.system.entry.js +0 -1
  591. package/screenshot/compare/build/p-tnjarrex.system.entry.js +0 -1
  592. package/screenshot/compare/build/p-vhfpd6kk.system.entry.js +0 -1
  593. package/screenshot/compare/build/p-vk6rhemd.system.entry.js +0 -1
  594. package/screenshot/compare/build/p-w6bnm16k.entry.js +0 -1
  595. package/screenshot/compare/build/p-xje6d7zl.system.entry.js +0 -1
  596. package/screenshot/compare/build/p-y5jlrcha.system.entry.js +0 -1
  597. package/screenshot/compare/build/p-yh170wkt.entry.js +0 -1
  598. package/testing/jest.preprocessor.js +0 -7
  599. /package/{dist/dev-server → dev-server}/static/favicon.ico +0 -0
  600. /package/{dist/sys/node → dev-server}/visualstudio.vbs +0 -0
  601. /package/{dist/sys/node → dev-server}/xdg-open +0 -0
  602. /package/{dist/compiler/polyfills.d.ts → screenshot/compare/build/index.esm.js} +0 -0
  603. /package/{dist/screenshot → screenshot}/pixel-match.d.ts +0 -0
  604. /package/{dist/testing → testing}/jest/jest-setup-test-framework.d.ts +0 -0
  605. /package/{dist/testing → testing}/matchers/attributes.d.ts +0 -0
  606. /package/{dist/testing → testing}/matchers/class-list.d.ts +0 -0
  607. /package/{dist/testing → testing}/matchers/html.d.ts +0 -0
  608. /package/{dist/testing → testing}/matchers/text.d.ts +0 -0
@@ -1,2 +1,659 @@
1
- /* @rindo/core/screenshot */
2
- module.exports = require('../dist/screenshot');
1
+ 'use strict';
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const os = require('os');
6
+
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
+
9
+ const fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
10
+ const path__default = /*#__PURE__*/_interopDefaultLegacy(path);
11
+
12
+ function fileExists(filePath) {
13
+ return new Promise(resolve => {
14
+ fs__default['default'].access(filePath, (err) => resolve(!err));
15
+ });
16
+ }
17
+ function readFile(filePath) {
18
+ return new Promise((resolve, reject) => {
19
+ fs__default['default'].readFile(filePath, 'utf-8', (err, data) => {
20
+ if (err) {
21
+ reject(err);
22
+ }
23
+ else {
24
+ resolve(data);
25
+ }
26
+ });
27
+ });
28
+ }
29
+ function readFileBuffer(filePath) {
30
+ return new Promise((resolve, reject) => {
31
+ fs__default['default'].readFile(filePath, (err, data) => {
32
+ if (err) {
33
+ reject(err);
34
+ }
35
+ else {
36
+ resolve(data);
37
+ }
38
+ });
39
+ });
40
+ }
41
+ function writeFile(filePath, data) {
42
+ return new Promise((resolve, reject) => {
43
+ fs__default['default'].writeFile(filePath, data, (err) => {
44
+ if (err) {
45
+ reject(err);
46
+ }
47
+ else {
48
+ resolve();
49
+ }
50
+ });
51
+ });
52
+ }
53
+ function mkDir(filePath) {
54
+ return new Promise(resolve => {
55
+ fs__default['default'].mkdir(filePath, () => {
56
+ resolve();
57
+ });
58
+ });
59
+ }
60
+ function rmDir(filePath) {
61
+ return new Promise(resolve => {
62
+ fs__default['default'].rmdir(filePath, () => {
63
+ resolve();
64
+ });
65
+ });
66
+ }
67
+ async function emptyDir(dir) {
68
+ const files = await readDir(dir);
69
+ const promises = files.map(async (fileName) => {
70
+ const filePath = path__default['default'].join(dir, fileName);
71
+ const isDirFile = await isFile(filePath);
72
+ if (isDirFile) {
73
+ await unlink(filePath);
74
+ }
75
+ });
76
+ await Promise.all(promises);
77
+ }
78
+ async function readDir(dir) {
79
+ return new Promise(resolve => {
80
+ fs__default['default'].readdir(dir, (err, files) => {
81
+ if (err) {
82
+ resolve([]);
83
+ }
84
+ else {
85
+ resolve(files);
86
+ }
87
+ });
88
+ });
89
+ }
90
+ async function isFile(itemPath) {
91
+ return new Promise(resolve => {
92
+ fs__default['default'].stat(itemPath, (err, stat) => {
93
+ if (err) {
94
+ resolve(false);
95
+ }
96
+ else {
97
+ resolve(stat.isFile());
98
+ }
99
+ });
100
+ });
101
+ }
102
+ async function unlink(filePath) {
103
+ return new Promise(resolve => {
104
+ fs__default['default'].unlink(filePath, () => {
105
+ resolve();
106
+ });
107
+ });
108
+ }
109
+
110
+ class ScreenshotConnector {
111
+ constructor() {
112
+ this.screenshotDirName = 'screenshot';
113
+ this.imagesDirName = 'images';
114
+ this.buildsDirName = 'builds';
115
+ this.masterBuildFileName = 'master.json';
116
+ this.screenshotCacheFileName = 'screenshot-cache.json';
117
+ }
118
+ async initBuild(opts) {
119
+ this.logger = opts.logger;
120
+ this.buildId = opts.buildId;
121
+ this.buildMessage = opts.buildMessage || '';
122
+ this.buildAuthor = opts.buildAuthor;
123
+ this.buildUrl = opts.buildUrl;
124
+ this.previewUrl = opts.previewUrl;
125
+ (this.buildTimestamp = typeof opts.buildTimestamp === 'number' ? opts.buildTimestamp : Date.now()),
126
+ (this.cacheDir = opts.cacheDir);
127
+ this.packageDir = opts.packageDir;
128
+ this.rootDir = opts.rootDir;
129
+ this.appNamespace = opts.appNamespace;
130
+ this.waitBeforeScreenshot = opts.waitBeforeScreenshot;
131
+ this.pixelmatchModulePath = opts.pixelmatchModulePath;
132
+ if (!opts.logger) {
133
+ throw new Error(`logger option required`);
134
+ }
135
+ if (typeof opts.buildId !== 'string') {
136
+ throw new Error(`buildId option required`);
137
+ }
138
+ if (typeof opts.cacheDir !== 'string') {
139
+ throw new Error(`cacheDir option required`);
140
+ }
141
+ if (typeof opts.packageDir !== 'string') {
142
+ throw new Error(`packageDir option required`);
143
+ }
144
+ if (typeof opts.rootDir !== 'string') {
145
+ throw new Error(`rootDir option required`);
146
+ }
147
+ this.updateMaster = !!opts.updateMaster;
148
+ this.allowableMismatchedPixels = opts.allowableMismatchedPixels;
149
+ this.allowableMismatchedRatio = opts.allowableMismatchedRatio;
150
+ this.pixelmatchThreshold = opts.pixelmatchThreshold;
151
+ this.logger.debug(`screenshot build: ${this.buildId}, ${this.buildMessage}, updateMaster: ${this.updateMaster}`);
152
+ this.logger.debug(`screenshot, allowableMismatchedPixels: ${this.allowableMismatchedPixels}, allowableMismatchedRatio: ${this.allowableMismatchedRatio}, pixelmatchThreshold: ${this.pixelmatchThreshold}`);
153
+ if (typeof opts.screenshotDirName === 'string') {
154
+ this.screenshotDirName = opts.screenshotDirName;
155
+ }
156
+ if (typeof opts.imagesDirName === 'string') {
157
+ this.imagesDirName = opts.imagesDirName;
158
+ }
159
+ if (typeof opts.buildsDirName === 'string') {
160
+ this.buildsDirName = opts.buildsDirName;
161
+ }
162
+ this.screenshotDir = path.join(this.rootDir, this.screenshotDirName);
163
+ this.imagesDir = path.join(this.screenshotDir, this.imagesDirName);
164
+ this.buildsDir = path.join(this.screenshotDir, this.buildsDirName);
165
+ this.masterBuildFilePath = path.join(this.buildsDir, this.masterBuildFileName);
166
+ this.screenshotCacheFilePath = path.join(this.cacheDir, this.screenshotCacheFileName);
167
+ this.currentBuildDir = path.join(os.tmpdir(), 'screenshot-build-' + this.buildId);
168
+ this.logger.debug(`screenshotDirPath: ${this.screenshotDir}`);
169
+ this.logger.debug(`imagesDirPath: ${this.imagesDir}`);
170
+ this.logger.debug(`buildsDirPath: ${this.buildsDir}`);
171
+ this.logger.debug(`currentBuildDir: ${this.currentBuildDir}`);
172
+ this.logger.debug(`cacheDir: ${this.cacheDir}`);
173
+ await mkDir(this.screenshotDir);
174
+ await Promise.all([
175
+ mkDir(this.imagesDir),
176
+ mkDir(this.buildsDir),
177
+ mkDir(this.currentBuildDir),
178
+ mkDir(this.cacheDir),
179
+ ]);
180
+ }
181
+ async pullMasterBuild() {
182
+ /**/
183
+ }
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))
194
+ .map(f => path.join(this.currentBuildDir, f))
195
+ .filter(f => f.endsWith('.json'));
196
+ const screenshots = await Promise.all(filePaths.map(async (f) => JSON.parse(await readFile(f))));
197
+ this.sortScreenshots(screenshots);
198
+ if (!masterBuild) {
199
+ masterBuild = {
200
+ id: this.buildId,
201
+ message: this.buildMessage,
202
+ author: this.buildAuthor,
203
+ url: this.buildUrl,
204
+ previewUrl: this.previewUrl,
205
+ appNamespace: this.appNamespace,
206
+ timestamp: this.buildTimestamp,
207
+ screenshots: screenshots,
208
+ };
209
+ }
210
+ const results = {
211
+ appNamespace: this.appNamespace,
212
+ masterBuild: masterBuild,
213
+ currentBuild: {
214
+ id: this.buildId,
215
+ message: this.buildMessage,
216
+ author: this.buildAuthor,
217
+ url: this.buildUrl,
218
+ previewUrl: this.previewUrl,
219
+ appNamespace: this.appNamespace,
220
+ timestamp: this.buildTimestamp,
221
+ screenshots: screenshots,
222
+ },
223
+ compare: {
224
+ id: `${masterBuild.id}-${this.buildId}`,
225
+ a: {
226
+ id: masterBuild.id,
227
+ message: masterBuild.message,
228
+ author: masterBuild.author,
229
+ url: masterBuild.url,
230
+ previewUrl: masterBuild.previewUrl,
231
+ },
232
+ b: {
233
+ id: this.buildId,
234
+ message: this.buildMessage,
235
+ author: this.buildAuthor,
236
+ url: this.buildUrl,
237
+ previewUrl: this.previewUrl,
238
+ },
239
+ url: null,
240
+ appNamespace: this.appNamespace,
241
+ timestamp: this.buildTimestamp,
242
+ diffs: [],
243
+ },
244
+ };
245
+ results.currentBuild.screenshots.forEach(screenshot => {
246
+ screenshot.diff.device = screenshot.diff.device || screenshot.diff.userAgent;
247
+ results.compare.diffs.push(screenshot.diff);
248
+ delete screenshot.diff;
249
+ });
250
+ this.sortCompares(results.compare.diffs);
251
+ await emptyDir(this.currentBuildDir);
252
+ await rmDir(this.currentBuildDir);
253
+ return results;
254
+ }
255
+ async publishBuild(results) {
256
+ return results;
257
+ }
258
+ async generateJsonpDataUris(build) {
259
+ if (build && Array.isArray(build.screenshots)) {
260
+ for (let i = 0; i < build.screenshots.length; i++) {
261
+ const screenshot = build.screenshots[i];
262
+ const jsonpFileName = `screenshot_${screenshot.image}.js`;
263
+ const jsonFilePath = path.join(this.cacheDir, jsonpFileName);
264
+ const jsonpExists = await fileExists(jsonFilePath);
265
+ if (!jsonpExists) {
266
+ const imageFilePath = path.join(this.imagesDir, screenshot.image);
267
+ const imageBuf = await readFileBuffer(imageFilePath);
268
+ const jsonpContent = `loadScreenshot("${screenshot.image}","data:image/png;base64,${imageBuf.toString('base64')}");`;
269
+ await writeFile(jsonFilePath, jsonpContent);
270
+ }
271
+ }
272
+ }
273
+ }
274
+ async getScreenshotCache() {
275
+ return null;
276
+ }
277
+ async updateScreenshotCache(screenshotCache, buildResults) {
278
+ screenshotCache = screenshotCache || {};
279
+ screenshotCache.timestamp = this.buildTimestamp;
280
+ screenshotCache.lastBuildId = this.buildId;
281
+ screenshotCache.size = 0;
282
+ screenshotCache.items = screenshotCache.items || [];
283
+ if (buildResults && buildResults.compare && Array.isArray(buildResults.compare.diffs)) {
284
+ buildResults.compare.diffs.forEach(diff => {
285
+ if (typeof diff.cacheKey !== 'string') {
286
+ return;
287
+ }
288
+ if (diff.imageA === diff.imageB) {
289
+ // no need to cache identical matches
290
+ return;
291
+ }
292
+ const existingItem = screenshotCache.items.find(i => i.key === diff.cacheKey);
293
+ if (existingItem) {
294
+ // already have this cached, but update its timestamp
295
+ existingItem.ts = this.buildTimestamp;
296
+ }
297
+ else {
298
+ // add this item to the cache
299
+ screenshotCache.items.push({
300
+ key: diff.cacheKey,
301
+ ts: this.buildTimestamp,
302
+ mp: diff.mismatchedPixels,
303
+ });
304
+ }
305
+ });
306
+ }
307
+ // sort so the newest items are on top
308
+ screenshotCache.items.sort((a, b) => {
309
+ if (a.ts > b.ts)
310
+ return -1;
311
+ if (a.ts < b.ts)
312
+ return 1;
313
+ if (a.mp > b.mp)
314
+ return -1;
315
+ if (a.mp < b.mp)
316
+ return 1;
317
+ return 0;
318
+ });
319
+ // keep only the most recent items
320
+ screenshotCache.items = screenshotCache.items.slice(0, 1000);
321
+ screenshotCache.size = screenshotCache.items.length;
322
+ return screenshotCache;
323
+ }
324
+ toJson(masterBuild, screenshotCache) {
325
+ const masterScreenshots = {};
326
+ if (masterBuild && Array.isArray(masterBuild.screenshots)) {
327
+ masterBuild.screenshots.forEach(masterScreenshot => {
328
+ masterScreenshots[masterScreenshot.id] = masterScreenshot.image;
329
+ });
330
+ }
331
+ const mismatchCache = {};
332
+ if (screenshotCache && Array.isArray(screenshotCache.items)) {
333
+ screenshotCache.items.forEach(cacheItem => {
334
+ mismatchCache[cacheItem.key] = cacheItem.mp;
335
+ });
336
+ }
337
+ const screenshotBuild = {
338
+ buildId: this.buildId,
339
+ rootDir: this.rootDir,
340
+ screenshotDir: this.screenshotDir,
341
+ imagesDir: this.imagesDir,
342
+ buildsDir: this.buildsDir,
343
+ masterScreenshots: masterScreenshots,
344
+ cache: mismatchCache,
345
+ currentBuildDir: this.currentBuildDir,
346
+ updateMaster: this.updateMaster,
347
+ allowableMismatchedPixels: this.allowableMismatchedPixels,
348
+ allowableMismatchedRatio: this.allowableMismatchedRatio,
349
+ pixelmatchThreshold: this.pixelmatchThreshold,
350
+ timeoutBeforeScreenshot: this.waitBeforeScreenshot,
351
+ pixelmatchModulePath: this.pixelmatchModulePath,
352
+ };
353
+ return JSON.stringify(screenshotBuild);
354
+ }
355
+ sortScreenshots(screenshots) {
356
+ return screenshots.sort((a, b) => {
357
+ if (a.desc && b.desc) {
358
+ if (a.desc.toLowerCase() < b.desc.toLowerCase())
359
+ return -1;
360
+ if (a.desc.toLowerCase() > b.desc.toLowerCase())
361
+ return 1;
362
+ }
363
+ if (a.device && b.device) {
364
+ if (a.device.toLowerCase() < b.device.toLowerCase())
365
+ return -1;
366
+ if (a.device.toLowerCase() > b.device.toLowerCase())
367
+ return 1;
368
+ }
369
+ if (a.userAgent && b.userAgent) {
370
+ if (a.userAgent.toLowerCase() < b.userAgent.toLowerCase())
371
+ return -1;
372
+ if (a.userAgent.toLowerCase() > b.userAgent.toLowerCase())
373
+ return 1;
374
+ }
375
+ if (a.width < b.width)
376
+ return -1;
377
+ if (a.width > b.width)
378
+ return 1;
379
+ if (a.height < b.height)
380
+ return -1;
381
+ if (a.height > b.height)
382
+ return 1;
383
+ if (a.id < b.id)
384
+ return -1;
385
+ if (a.id > b.id)
386
+ return 1;
387
+ return 0;
388
+ });
389
+ }
390
+ sortCompares(compares) {
391
+ return compares.sort((a, b) => {
392
+ if (a.allowableMismatchedPixels > b.allowableMismatchedPixels)
393
+ return -1;
394
+ if (a.allowableMismatchedPixels < b.allowableMismatchedPixels)
395
+ return 1;
396
+ if (a.allowableMismatchedRatio > b.allowableMismatchedRatio)
397
+ return -1;
398
+ if (a.allowableMismatchedRatio < b.allowableMismatchedRatio)
399
+ return 1;
400
+ if (a.desc && b.desc) {
401
+ if (a.desc.toLowerCase() < b.desc.toLowerCase())
402
+ return -1;
403
+ if (a.desc.toLowerCase() > b.desc.toLowerCase())
404
+ return 1;
405
+ }
406
+ if (a.device && b.device) {
407
+ if (a.device.toLowerCase() < b.device.toLowerCase())
408
+ return -1;
409
+ if (a.device.toLowerCase() > b.device.toLowerCase())
410
+ return 1;
411
+ }
412
+ if (a.userAgent && b.userAgent) {
413
+ if (a.userAgent.toLowerCase() < b.userAgent.toLowerCase())
414
+ return -1;
415
+ if (a.userAgent.toLowerCase() > b.userAgent.toLowerCase())
416
+ return 1;
417
+ }
418
+ if (a.width < b.width)
419
+ return -1;
420
+ if (a.width > b.width)
421
+ return 1;
422
+ if (a.height < b.height)
423
+ return -1;
424
+ if (a.height > b.height)
425
+ return 1;
426
+ if (a.id < b.id)
427
+ return -1;
428
+ if (a.id > b.id)
429
+ return 1;
430
+ return 0;
431
+ });
432
+ }
433
+ }
434
+
435
+ /**
436
+ * Convert Windows backslash paths to slash paths: foo\\bar ➔ foo/bar
437
+ * Forward-slash paths can be used in Windows as long as they're not
438
+ * extended-length paths and don't contain any non-ascii characters.
439
+ * This was created since the path methods in Node.js outputs \\ paths on Windows.
440
+ */
441
+ const normalizePath = (path) => {
442
+ if (typeof path !== 'string') {
443
+ throw new Error(`invalid path to normalize`);
444
+ }
445
+ path = normalizeSlashes(path.trim());
446
+ const components = pathComponents(path, getRootLength(path));
447
+ const reducedComponents = reducePathComponents(components);
448
+ const rootPart = reducedComponents[0];
449
+ const secondPart = reducedComponents[1];
450
+ const normalized = rootPart + reducedComponents.slice(1).join('/');
451
+ if (normalized === '') {
452
+ return '.';
453
+ }
454
+ if (rootPart === '' &&
455
+ secondPart &&
456
+ path.includes('/') &&
457
+ !secondPart.startsWith('.') &&
458
+ !secondPart.startsWith('@')) {
459
+ return './' + normalized;
460
+ }
461
+ return normalized;
462
+ };
463
+ const normalizeSlashes = (path) => path.replace(backslashRegExp, '/');
464
+ const altDirectorySeparator = '\\';
465
+ const urlSchemeSeparator = '://';
466
+ const backslashRegExp = /\\/g;
467
+ const reducePathComponents = (components) => {
468
+ if (!Array.isArray(components) || components.length === 0) {
469
+ return [];
470
+ }
471
+ const reduced = [components[0]];
472
+ for (let i = 1; i < components.length; i++) {
473
+ const component = components[i];
474
+ if (!component)
475
+ continue;
476
+ if (component === '.')
477
+ continue;
478
+ if (component === '..') {
479
+ if (reduced.length > 1) {
480
+ if (reduced[reduced.length - 1] !== '..') {
481
+ reduced.pop();
482
+ continue;
483
+ }
484
+ }
485
+ else if (reduced[0])
486
+ continue;
487
+ }
488
+ reduced.push(component);
489
+ }
490
+ return reduced;
491
+ };
492
+ const getRootLength = (path) => {
493
+ const rootLength = getEncodedRootLength(path);
494
+ return rootLength < 0 ? ~rootLength : rootLength;
495
+ };
496
+ const getEncodedRootLength = (path) => {
497
+ if (!path)
498
+ return 0;
499
+ const ch0 = path.charCodeAt(0);
500
+ // POSIX or UNC
501
+ if (ch0 === 47 /* slash */ || ch0 === 92 /* backslash */) {
502
+ if (path.charCodeAt(1) !== ch0)
503
+ return 1; // POSIX: "/" (or non-normalized "\")
504
+ const p1 = path.indexOf(ch0 === 47 /* slash */ ? '/' : altDirectorySeparator, 2);
505
+ if (p1 < 0)
506
+ return path.length; // UNC: "//server" or "\\server"
507
+ return p1 + 1; // UNC: "//server/" or "\\server\"
508
+ }
509
+ // DOS
510
+ if (isVolumeCharacter(ch0) && path.charCodeAt(1) === 58 /* colon */) {
511
+ const ch2 = path.charCodeAt(2);
512
+ if (ch2 === 47 /* slash */ || ch2 === 92 /* backslash */)
513
+ return 3; // DOS: "c:/" or "c:\"
514
+ if (path.length === 2)
515
+ return 2; // DOS: "c:" (but not "c:d")
516
+ }
517
+ // URL
518
+ const schemeEnd = path.indexOf(urlSchemeSeparator);
519
+ if (schemeEnd !== -1) {
520
+ const authorityStart = schemeEnd + urlSchemeSeparator.length;
521
+ const authorityEnd = path.indexOf('/', authorityStart);
522
+ if (authorityEnd !== -1) {
523
+ // URL: "file:///", "file://server/", "file://server/path"
524
+ // For local "file" URLs, include the leading DOS volume (if present).
525
+ // Per https://www.ietf.org/rfc/rfc1738.txt, a host of "" or "localhost" is a
526
+ // special case interpreted as "the machine from which the URL is being interpreted".
527
+ const scheme = path.slice(0, schemeEnd);
528
+ const authority = path.slice(authorityStart, authorityEnd);
529
+ if (scheme === 'file' &&
530
+ (authority === '' || authority === 'localhost') &&
531
+ isVolumeCharacter(path.charCodeAt(authorityEnd + 1))) {
532
+ const volumeSeparatorEnd = getFileUrlVolumeSeparatorEnd(path, authorityEnd + 2);
533
+ if (volumeSeparatorEnd !== -1) {
534
+ if (path.charCodeAt(volumeSeparatorEnd) === 47 /* slash */) {
535
+ // URL: "file:///c:/", "file://localhost/c:/", "file:///c%3a/", "file://localhost/c%3a/"
536
+ return ~(volumeSeparatorEnd + 1);
537
+ }
538
+ if (volumeSeparatorEnd === path.length) {
539
+ // URL: "file:///c:", "file://localhost/c:", "file:///c$3a", "file://localhost/c%3a"
540
+ // but not "file:///c:d" or "file:///c%3ad"
541
+ return ~volumeSeparatorEnd;
542
+ }
543
+ }
544
+ }
545
+ return ~(authorityEnd + 1); // URL: "file://server/", "http://server/"
546
+ }
547
+ return ~path.length; // URL: "file://server", "http://server"
548
+ }
549
+ // relative
550
+ return 0;
551
+ };
552
+ const isVolumeCharacter = (charCode) => (charCode >= 97 /* a */ && charCode <= 122 /* z */) ||
553
+ (charCode >= 65 /* A */ && charCode <= 90 /* Z */);
554
+ const getFileUrlVolumeSeparatorEnd = (url, start) => {
555
+ const ch0 = url.charCodeAt(start);
556
+ if (ch0 === 58 /* colon */)
557
+ return start + 1;
558
+ if (ch0 === 37 /* percent */ && url.charCodeAt(start + 1) === 51 /* _3 */) {
559
+ const ch2 = url.charCodeAt(start + 2);
560
+ if (ch2 === 97 /* a */ || ch2 === 65 /* A */)
561
+ return start + 3;
562
+ }
563
+ return -1;
564
+ };
565
+ const pathComponents = (path, rootLength) => {
566
+ const root = path.substring(0, rootLength);
567
+ const rest = path.substring(rootLength).split('/');
568
+ const restLen = rest.length;
569
+ if (restLen > 0 && !rest[restLen - 1]) {
570
+ rest.pop();
571
+ }
572
+ return [root, ...rest];
573
+ };
574
+
575
+ class ScreenshotLocalConnector extends ScreenshotConnector {
576
+ async publishBuild(results) {
577
+ if (this.updateMaster || !results.masterBuild) {
578
+ results.masterBuild = {
579
+ id: 'master',
580
+ message: 'Master',
581
+ appNamespace: this.appNamespace,
582
+ timestamp: Date.now(),
583
+ screenshots: [],
584
+ };
585
+ }
586
+ results.currentBuild.screenshots.forEach(currentScreenshot => {
587
+ const masterHasScreenshot = results.masterBuild.screenshots.some(masterScreenshot => {
588
+ return currentScreenshot.id === masterScreenshot.id;
589
+ });
590
+ if (!masterHasScreenshot) {
591
+ results.masterBuild.screenshots.push(Object.assign({}, currentScreenshot));
592
+ }
593
+ });
594
+ this.sortScreenshots(results.masterBuild.screenshots);
595
+ await writeFile(this.masterBuildFilePath, JSON.stringify(results.masterBuild, null, 2));
596
+ await this.generateJsonpDataUris(results.currentBuild);
597
+ const compareAppSourceDir = path.join(this.packageDir, 'screenshot', 'compare');
598
+ const appSrcUrl = normalizePath(path.relative(this.screenshotDir, compareAppSourceDir));
599
+ const imagesUrl = normalizePath(path.relative(this.screenshotDir, this.imagesDir));
600
+ const jsonpUrl = normalizePath(path.relative(this.screenshotDir, this.cacheDir));
601
+ const compareAppHtml = createLocalCompareApp(this.appNamespace, appSrcUrl, imagesUrl, jsonpUrl, results.masterBuild, results.currentBuild);
602
+ const compareAppFileName = 'compare.html';
603
+ const compareAppFilePath = path.join(this.screenshotDir, compareAppFileName);
604
+ await writeFile(compareAppFilePath, compareAppHtml);
605
+ const gitIgnorePath = path.join(this.screenshotDir, '.gitignore');
606
+ const gitIgnoreExists = await fileExists(gitIgnorePath);
607
+ if (!gitIgnoreExists) {
608
+ const content = [this.imagesDirName, this.buildsDirName, compareAppFileName];
609
+ await writeFile(gitIgnorePath, content.join('\n'));
610
+ }
611
+ const url = new URL(`file://${compareAppFilePath}`);
612
+ results.compare.url = url.href;
613
+ return results;
614
+ }
615
+ async getScreenshotCache() {
616
+ let screenshotCache = null;
617
+ try {
618
+ screenshotCache = JSON.parse(await readFile(this.screenshotCacheFilePath));
619
+ }
620
+ catch (e) { }
621
+ return screenshotCache;
622
+ }
623
+ async updateScreenshotCache(cache, buildResults) {
624
+ cache = await super.updateScreenshotCache(cache, buildResults);
625
+ await writeFile(this.screenshotCacheFilePath, JSON.stringify(cache, null, 2));
626
+ return cache;
627
+ }
628
+ }
629
+ function createLocalCompareApp(namespace, appSrcUrl, imagesUrl, jsonpUrl, a, b) {
630
+ return `<!doctype html>
631
+ <html dir="ltr" lang="en">
632
+ <head>
633
+ <meta charset="utf-8">
634
+ <title>Local ${namespace || ''} - Rindo Screenshot Visual Diff</title>
635
+ <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">
636
+ <meta http-equiv="x-ua-compatible" content="IE=Edge">
637
+ <link href="${appSrcUrl}/build/app.css" rel="stylesheet">
638
+ <script type="module" src="${appSrcUrl}/build/app.esm.js"></script>
639
+ <script nomodule src="${appSrcUrl}/build/app.js"></script>
640
+ <link rel="icon" type="image/x-icon" href="${appSrcUrl}/assets/favicon.ico">
641
+ </head>
642
+ <body>
643
+ <script>
644
+ (function() {
645
+ var app = document.createElement('screenshot-compare');
646
+ app.appSrcUrl = '${appSrcUrl}';
647
+ app.imagesUrl = '${imagesUrl}/';
648
+ app.jsonpUrl = '${jsonpUrl}/';
649
+ app.a = ${JSON.stringify(a)};
650
+ app.b = ${JSON.stringify(b)};
651
+ document.body.appendChild(app);
652
+ })();
653
+ </script>
654
+ </body>
655
+ </html>`;
656
+ }
657
+
658
+ exports.ScreenshotConnector = ScreenshotConnector;
659
+ exports.ScreenshotLocalConnector = ScreenshotLocalConnector;
@@ -1,3 +1,2 @@
1
-
2
- const { ScreenshotLocalConnector } = require('./index.js');
3
- module.exports = ScreenshotLocalConnector;
1
+ const { ScreenshotLocalConnector } = require('./index.js');
2
+ module.exports = ScreenshotLocalConnector;
@@ -1,13 +1,15 @@
1
- {
2
- "name": "@rindo/core/screenshot",
3
- "private": true,
4
- "main": "./index.js",
5
- "types": "../dist/screenshot/index.d.ts",
6
- "files": [
7
- "compare/",
8
- "index.js",
9
- "connector.js",
10
- "local-connector.js",
11
- "pixel-match.js"
12
- ]
13
- }
1
+ {
2
+ "name": "@rindo/core/screenshot",
3
+ "version": "2.5.2",
4
+ "description": "Rindo Screenshot.",
5
+ "main": "./index.js",
6
+ "types": "./index.d.ts",
7
+ "files": [
8
+ "compare/",
9
+ "index.js",
10
+ "connector.js",
11
+ "local-connector.js",
12
+ "pixel-match.js"
13
+ ],
14
+ "private": true
15
+ }