vitest-plugin-vis 4.1.0 → 4.2.0

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 (255) hide show
  1. package/dist/auto_snapshots/_ctx.mjs +15 -0
  2. package/dist/auto_snapshots/_ctx.mjs.map +1 -0
  3. package/dist/auto_snapshots/_extract_auto_snapshot_options.mjs +23 -0
  4. package/dist/auto_snapshots/_extract_auto_snapshot_options.mjs.map +1 -0
  5. package/dist/{auto_snapshot_options-BMRtKmod.d.mts → auto_snapshots/auto_snapshot_options.d.mts} +5 -4
  6. package/dist/auto_snapshots/auto_snapshot_options.d.mts.map +1 -0
  7. package/dist/{auto_snapshot_options-DUOTpF2N.mjs → auto_snapshots/auto_snapshot_options.mjs} +6 -40
  8. package/dist/auto_snapshots/auto_snapshot_options.mjs.map +1 -0
  9. package/dist/auto_snapshots/snapshot_meta.d.mts +15 -0
  10. package/dist/auto_snapshots/snapshot_meta.d.mts.map +1 -0
  11. package/dist/client/actions/has_image_snapshot_action.d.mts +8 -0
  12. package/dist/client/actions/has_image_snapshot_action.d.mts.map +1 -0
  13. package/dist/client/actions/has_image_snapshot_action.mjs +9 -0
  14. package/dist/client/actions/has_image_snapshot_action.mjs.map +1 -0
  15. package/dist/client/actions/load_image_snapshot_results_action.d.mts +7 -0
  16. package/dist/client/actions/load_image_snapshot_results_action.d.mts.map +1 -0
  17. package/dist/client/actions/load_image_snapshot_results_action.mjs +8 -0
  18. package/dist/client/actions/load_image_snapshot_results_action.mjs.map +1 -0
  19. package/dist/client/actions/match_image_snapshot_action.d.mts +9 -0
  20. package/dist/client/actions/match_image_snapshot_action.d.mts.map +1 -0
  21. package/dist/client/actions/match_image_snapshot_action.mjs +20 -0
  22. package/dist/client/actions/match_image_snapshot_action.mjs.map +1 -0
  23. package/dist/client/actions/match_page_image_snapshot_action.d.mts +9 -0
  24. package/dist/client/actions/match_page_image_snapshot_action.d.mts.map +1 -0
  25. package/dist/client/actions/match_page_image_snapshot_action.mjs +14 -0
  26. package/dist/client/actions/match_page_image_snapshot_action.mjs.map +1 -0
  27. package/dist/client/expect/_ctx.mjs +15 -0
  28. package/dist/client/expect/_ctx.mjs.map +1 -0
  29. package/dist/client/expect/augment.d.mts +10 -0
  30. package/dist/client/expect/augment.d.mts.map +1 -0
  31. package/dist/client/expect/expectation_result.d.mts +7 -0
  32. package/dist/client/expect/expectation_result.d.mts.map +1 -0
  33. package/dist/client/expect/expectation_result.mjs +9 -0
  34. package/dist/client/expect/expectation_result.mjs.map +1 -0
  35. package/dist/client/expect/extend.d.mts +1 -0
  36. package/dist/client/expect/extend.mjs +9 -0
  37. package/dist/client/expect/extend.mjs.map +1 -0
  38. package/dist/client/expect/to_match_image_snapshot.mjs +16 -0
  39. package/dist/client/expect/to_match_image_snapshot.mjs.map +1 -0
  40. package/dist/{to_match_image_snapshot.types--tTmHoRA.d.mts → client/expect/to_match_image_snapshot.types.d.mts} +3 -3
  41. package/dist/client/expect/to_match_image_snapshot.types.d.mts.map +1 -0
  42. package/dist/client/external/browser/has_render_content.mjs +8 -0
  43. package/dist/client/external/browser/has_render_content.mjs.map +1 -0
  44. package/dist/client/external/browser/image_data.mjs +37 -0
  45. package/dist/client/external/browser/image_data.mjs.map +1 -0
  46. package/dist/client/external/browser/image_resizer.mjs +32 -0
  47. package/dist/client/external/browser/image_resizer.mjs.map +1 -0
  48. package/dist/client/external/browser/selector.mjs +57 -0
  49. package/dist/client/external/browser/selector.mjs.map +1 -0
  50. package/dist/client/external/vitest/vitest_browser_context_proxy.mjs +12 -0
  51. package/dist/client/external/vitest/vitest_browser_context_proxy.mjs.map +1 -0
  52. package/dist/client/external/vitest/vitest_suite_proxy.d.mts +3 -0
  53. package/dist/client/external/vitest/vitest_suite_proxy.mjs +11 -0
  54. package/dist/client/external/vitest/vitest_suite_proxy.mjs.map +1 -0
  55. package/dist/client/image/align_images.mjs +14 -0
  56. package/dist/client/image/align_images.mjs.map +1 -0
  57. package/dist/client/page/_ctx.d.mts +3 -0
  58. package/dist/client/page/_ctx.mjs +15 -0
  59. package/dist/client/page/_ctx.mjs.map +1 -0
  60. package/dist/client/page/augment.d.mts +9 -0
  61. package/dist/client/page/augment.d.mts.map +1 -0
  62. package/dist/client/page/extend.d.mts +1 -0
  63. package/dist/client/page/extend.mjs +13 -0
  64. package/dist/client/page/extend.mjs.map +1 -0
  65. package/dist/client/page/has_image_snapshot.d.mts +13 -0
  66. package/dist/client/page/has_image_snapshot.d.mts.map +1 -0
  67. package/dist/client/page/has_image_snapshot.mjs +15 -0
  68. package/dist/client/page/has_image_snapshot.mjs.map +1 -0
  69. package/dist/client/page/to_match_image_snapshot.d.mts +9 -0
  70. package/dist/client/page/to_match_image_snapshot.d.mts.map +1 -0
  71. package/dist/client/page/to_match_image_snapshot.mjs +15 -0
  72. package/dist/client/page/to_match_image_snapshot.mjs.map +1 -0
  73. package/dist/client/snapshot/compare_image_snapshot.logic.mjs +14 -0
  74. package/dist/client/snapshot/compare_image_snapshot.logic.mjs.map +1 -0
  75. package/dist/client/snapshot/compare_image_snapshot.mjs +63 -0
  76. package/dist/client/snapshot/compare_image_snapshot.mjs.map +1 -0
  77. package/dist/client/snapshot/should_take_snapshot.mjs +10 -0
  78. package/dist/client/snapshot/should_take_snapshot.mjs.map +1 -0
  79. package/dist/client/suite/_ctx.mjs +13 -0
  80. package/dist/client/suite/_ctx.mjs.map +1 -0
  81. package/dist/client/suite/auto_snapshot_matcher.d.mts +12 -0
  82. package/dist/client/suite/auto_snapshot_matcher.d.mts.map +1 -0
  83. package/dist/client/suite/auto_snapshot_matcher.mjs +50 -0
  84. package/dist/client/suite/auto_snapshot_matcher.mjs.map +1 -0
  85. package/dist/client/task/task_id.d.mts +9 -0
  86. package/dist/client/task/task_id.d.mts.map +1 -0
  87. package/dist/client/task/task_id.mjs +15 -0
  88. package/dist/client/task/task_id.mjs.map +1 -0
  89. package/dist/client-api.d.mts +13 -44
  90. package/dist/client-api.mjs +10 -13
  91. package/dist/{types-DJYCbyT8.d.mts → config/types.d.mts} +8 -9
  92. package/dist/config/types.d.mts.map +1 -0
  93. package/dist/config/vis.d.mts +27 -0
  94. package/dist/config/vis.d.mts.map +1 -0
  95. package/dist/config/vis.mjs +31 -0
  96. package/dist/config/vis.mjs.map +1 -0
  97. package/dist/config.d.mts +5 -28
  98. package/dist/config.mjs +3 -411
  99. package/dist/index.d.mts +5 -5
  100. package/dist/index.mjs +1 -4
  101. package/dist/presets/auto.mjs +4 -7
  102. package/dist/presets/auto.mjs.map +1 -1
  103. package/dist/presets/enable.mjs +2 -6
  104. package/dist/presets/enable.mjs.map +1 -1
  105. package/dist/presets/manual.mjs +2 -6
  106. package/dist/presets/manual.mjs.map +1 -1
  107. package/dist/server/browser_provider/browser_api.mjs +13 -0
  108. package/dist/server/browser_provider/browser_api.mjs.map +1 -0
  109. package/dist/server/browser_provider/playwright.mjs +24 -0
  110. package/dist/server/browser_provider/playwright.mjs.map +1 -0
  111. package/dist/server/browser_provider/webdriverio.mjs +16 -0
  112. package/dist/server/browser_provider/webdriverio.mjs.map +1 -0
  113. package/dist/server/commands/_assertions.mjs +10 -0
  114. package/dist/server/commands/_assertions.mjs.map +1 -0
  115. package/dist/server/commands/augment.d.mts +8 -0
  116. package/dist/server/commands/augment.d.mts.map +1 -0
  117. package/dist/server/commands/commands.mjs +20 -0
  118. package/dist/server/commands/commands.mjs.map +1 -0
  119. package/dist/server/commands/has_image_snapshot.mjs +12 -0
  120. package/dist/server/commands/has_image_snapshot.mjs.map +1 -0
  121. package/dist/server/commands/image_snapshot_next_index.mjs +12 -0
  122. package/dist/server/commands/image_snapshot_next_index.mjs.map +1 -0
  123. package/dist/server/commands/load_image_snapshot_results.mjs +12 -0
  124. package/dist/server/commands/load_image_snapshot_results.mjs.map +1 -0
  125. package/dist/server/commands/prepare_image_snapshot_comparison.mjs +37 -0
  126. package/dist/server/commands/prepare_image_snapshot_comparison.mjs.map +1 -0
  127. package/dist/server/commands/prepare_page_image_snapshot_comparison.mjs +27 -0
  128. package/dist/server/commands/prepare_page_image_snapshot_comparison.mjs.map +1 -0
  129. package/dist/server/commands/setup_vis_suite.mjs +12 -0
  130. package/dist/server/commands/setup_vis_suite.mjs.map +1 -0
  131. package/dist/server/externals/file.mjs +23 -0
  132. package/dist/server/externals/file.mjs.map +1 -0
  133. package/dist/server/project.mjs +13 -0
  134. package/dist/server/project.mjs.map +1 -0
  135. package/dist/server/snapshot.mjs +29 -0
  136. package/dist/server/snapshot.mjs.map +1 -0
  137. package/dist/server/snapshot_path.d.mts +17 -0
  138. package/dist/server/snapshot_path.d.mts.map +1 -0
  139. package/dist/{snapshot_path-7GliOSH_.mjs → server/snapshot_path.mjs} +7 -25
  140. package/dist/server/snapshot_path.mjs.map +1 -0
  141. package/dist/server/snapshot_writer.mjs +21 -0
  142. package/dist/server/snapshot_writer.mjs.map +1 -0
  143. package/dist/server/suite.mjs +82 -0
  144. package/dist/server/suite.mjs.map +1 -0
  145. package/dist/server/vis_options.mjs +19 -0
  146. package/dist/server/vis_options.mjs.map +1 -0
  147. package/dist/server/vis_server_context.deps.mjs +16 -0
  148. package/dist/server/vis_server_context.deps.mjs.map +1 -0
  149. package/dist/server/vis_server_context.logic.mjs +82 -0
  150. package/dist/server/vis_server_context.logic.mjs.map +1 -0
  151. package/dist/server/vis_server_context.mjs +8 -0
  152. package/dist/server/vis_server_context.mjs.map +1 -0
  153. package/dist/server/vis_server_context.types.d.mts +2 -0
  154. package/dist/server-utils.d.mts +4 -19
  155. package/dist/server-utils.mjs +3 -2
  156. package/dist/setup/create_vis.d.mts +108 -0
  157. package/dist/setup/create_vis.d.mts.map +1 -0
  158. package/dist/setup/create_vis.mjs +58 -0
  159. package/dist/setup/create_vis.mjs.map +1 -0
  160. package/dist/setup/vis.d.mts +10 -0
  161. package/dist/setup/vis.d.mts.map +1 -0
  162. package/dist/setup/vis.mjs +12 -0
  163. package/dist/setup/vis.mjs.map +1 -0
  164. package/dist/setup-api.d.mts +4 -0
  165. package/dist/setup-api.mjs +5 -0
  166. package/dist/setup.d.mts +8 -101
  167. package/dist/setup.d.mts.map +1 -1
  168. package/dist/setup.mjs +12 -7
  169. package/dist/setup.mjs.map +1 -0
  170. package/dist/{asserts--HSSlgPD.mjs → shared/asserts.mjs} +2 -2
  171. package/dist/shared/asserts.mjs.map +1 -0
  172. package/dist/{base64-CHSENEAO.mjs → shared/base64.mjs} +2 -2
  173. package/dist/shared/base64.mjs.map +1 -0
  174. package/dist/{commands.types-BVhcnnHw.d.mts → shared/commands.types.d.mts} +6 -6
  175. package/dist/shared/commands.types.d.mts.map +1 -0
  176. package/dist/shared/compare_image.mjs +46 -0
  177. package/dist/shared/compare_image.mjs.map +1 -0
  178. package/dist/shared/constants.d.mts +9 -0
  179. package/dist/shared/constants.d.mts.map +1 -0
  180. package/dist/{constants-CTBaz8Ml.mjs → shared/constants.mjs} +2 -2
  181. package/dist/shared/constants.mjs.map +1 -0
  182. package/dist/shared/convert_threshold_unit.mjs +12 -0
  183. package/dist/shared/convert_threshold_unit.mjs.map +1 -0
  184. package/dist/shared/get_max_size.mjs +11 -0
  185. package/dist/shared/get_max_size.mjs.map +1 -0
  186. package/dist/shared/is_same_size.mjs +8 -0
  187. package/dist/shared/is_same_size.mjs.map +1 -0
  188. package/dist/{trim_common_folder-DBThLerp.d.mts → shared/trim_common_folder.d.mts} +2 -2
  189. package/dist/shared/trim_common_folder.d.mts.map +1 -0
  190. package/dist/shared/trim_common_folder.mjs +23 -0
  191. package/dist/shared/trim_common_folder.mjs.map +1 -0
  192. package/dist/{types-CEmjj-A9.d.mts → shared/types.d.mts} +6 -21
  193. package/dist/shared/types.d.mts.map +1 -0
  194. package/dist/testing/constants.d.mts +12 -0
  195. package/dist/testing/constants.d.mts.map +1 -0
  196. package/dist/testing/constants.mjs +65550 -0
  197. package/dist/{testing.mjs.map → testing/constants.mjs.map} +1 -1
  198. package/dist/testing.d.mts +2 -12
  199. package/dist/testing.mjs +2 -65549
  200. package/package.json +24 -17
  201. package/readme.md +48 -3
  202. package/src/{client/task → auto_snapshots}/_ctx.ts +1 -1
  203. package/src/auto_snapshots/_extract_auto_snapshot_options.ts +26 -0
  204. package/src/{client/task → auto_snapshots}/auto_snapshot_options.mdx +1 -2
  205. package/src/{client/task → auto_snapshots}/auto_snapshot_options.ts +3 -25
  206. package/src/{client/task → auto_snapshots}/snapshot_meta.ts +1 -1
  207. package/src/client/actions/match_image_snapshot_action.ts +0 -2
  208. package/src/client/snapshot/compare_image_snapshot.logic.ts +1 -1
  209. package/src/client/snapshot/compare_image_snapshot.ts +15 -1
  210. package/src/client/snapshot/should_take_snapshot.ts +1 -1
  211. package/src/client/suite/auto_snapshot_matcher.ts +2 -3
  212. package/src/client-api.ts +1 -1
  213. package/src/config/overview.mdx +145 -0
  214. package/src/{shared → config}/trim_common_folder.mdx +1 -1
  215. package/src/config/types.ts +5 -6
  216. package/src/config/vis.mdx +313 -0
  217. package/src/index.ts +1 -1
  218. package/src/overview.mdx +66 -28
  219. package/src/server/commands/prepare_image_snapshot_comparison.ts +8 -8
  220. package/src/server/commands/prepare_page_image_snapshot_comparison.ts +1 -6
  221. package/src/server/snapshot_path.ts +3 -1
  222. package/src/{setup.create_vis.mdx → setup/create_vis.mdx} +4 -5
  223. package/src/setup/create_vis.ts +12 -7
  224. package/src/setup/overview.mdx +17 -0
  225. package/src/setup/readme.md +3 -1
  226. package/src/{setup.vis.mdx → setup/vis.mdx} +15 -18
  227. package/src/setup-api.ts +5 -0
  228. package/src/setup.ts +8 -4
  229. package/src/shared/commands.types.ts +2 -2
  230. package/src/shared/types.ts +3 -2
  231. package/dist/asserts--HSSlgPD.mjs.map +0 -1
  232. package/dist/augment-C1tjdh5B.d.mts +0 -33
  233. package/dist/augment-C1tjdh5B.d.mts.map +0 -1
  234. package/dist/auto_snapshot_matcher-C0y6mAeS.mjs +0 -381
  235. package/dist/auto_snapshot_matcher-C0y6mAeS.mjs.map +0 -1
  236. package/dist/auto_snapshot_options-BMRtKmod.d.mts.map +0 -1
  237. package/dist/auto_snapshot_options-DUOTpF2N.mjs.map +0 -1
  238. package/dist/base64-CHSENEAO.mjs.map +0 -1
  239. package/dist/client-api.d.mts.map +0 -1
  240. package/dist/client-api.mjs.map +0 -1
  241. package/dist/commands.types-BVhcnnHw.d.mts.map +0 -1
  242. package/dist/config.d.mts.map +0 -1
  243. package/dist/config.mjs.map +0 -1
  244. package/dist/constants-CTBaz8Ml.mjs.map +0 -1
  245. package/dist/server-utils.d.mts.map +0 -1
  246. package/dist/setup-DCytWz48.mjs +0 -124
  247. package/dist/setup-DCytWz48.mjs.map +0 -1
  248. package/dist/snapshot_path-7GliOSH_.mjs.map +0 -1
  249. package/dist/src-CSQnlFa9.mjs +0 -1
  250. package/dist/testing.d.mts.map +0 -1
  251. package/dist/to_match_image_snapshot.types--tTmHoRA.d.mts.map +0 -1
  252. package/dist/trim_common_folder-DBThLerp.d.mts.map +0 -1
  253. package/dist/types-CEmjj-A9.d.mts.map +0 -1
  254. package/dist/types-DJYCbyT8.d.mts.map +0 -1
  255. package/src/config.vis.mdx +0 -76
@@ -0,0 +1,11 @@
1
+ //#region src/client/external/vitest/vitest_suite_proxy.ts
2
+ let vitestSuite;
3
+ if (globalThis.__vitest_browser__) import("vitest/suite").then((m) => {
4
+ vitestSuite = m;
5
+ });
6
+ const getCurrentTest = () => vitestSuite?.getCurrentTest();
7
+ const getCurrentSuite = () => vitestSuite?.getCurrentSuite();
8
+
9
+ //#endregion
10
+ export { getCurrentSuite, getCurrentTest };
11
+ //# sourceMappingURL=vitest_suite_proxy.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest_suite_proxy.mjs","names":[],"sources":["../../../../src/client/external/vitest/vitest_suite_proxy.ts"],"sourcesContent":["import type { SnapshotTestMeta } from '../../../shared/types.ts'\n\nlet vitestSuite: Awaited<typeof import('vitest/suite')>\n\nif ((globalThis as any).__vitest_browser__) {\n\timport('vitest/suite').then((m) => {\n\t\tvitestSuite = m\n\t})\n}\n\nexport type CurrentTest = ReturnType<typeof vitestSuite.getCurrentTest> & SnapshotTestMeta\n\nexport const getCurrentTest = () => vitestSuite?.getCurrentTest() as CurrentTest\nexport const getCurrentSuite = () => vitestSuite?.getCurrentSuite()\n"],"mappings":";AAEA,IAAI;AAEJ,IAAK,WAAmB,mBACvB,QAAO,gBAAgB,MAAM,MAAM;AAClC,eAAc;EACb;AAKH,MAAa,uBAAuB,aAAa,gBAAgB;AACjE,MAAa,wBAAwB,aAAa,iBAAiB"}
@@ -0,0 +1,14 @@
1
+ import { getMaxSize } from "../../shared/get_max_size.mjs";
2
+ import { isSameSize } from "../../shared/is_same_size.mjs";
3
+ import { createImageResizer } from "../external/browser/image_resizer.mjs";
4
+
5
+ //#region src/client/image/align_images.ts
6
+ function alignImagesToSameSize(image1, image2) {
7
+ if (isSameSize(image1, image2)) return [image1, image2];
8
+ const resize = createImageResizer(getMaxSize(image1, image2));
9
+ return [resize(image1), resize(image2)];
10
+ }
11
+
12
+ //#endregion
13
+ export { alignImagesToSameSize };
14
+ //# sourceMappingURL=align_images.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"align_images.mjs","names":[],"sources":["../../../src/client/image/align_images.ts"],"sourcesContent":["import { getMaxSize } from '../../shared/get_max_size.ts'\nimport { isSameSize } from '../../shared/is_same_size.ts'\nimport { createImageResizer } from '../external/browser/image_resizer.ts'\n\nexport function alignImagesToSameSize(image1: ImageData, image2: ImageData): [image1: ImageData, image2: ImageData] {\n\tif (isSameSize(image1, image2)) return [image1, image2] as const\n\n\tconst size = getMaxSize(image1, image2)\n\tconst resize = createImageResizer(size)\n\treturn [resize(image1), resize(image2)] as const\n}\n"],"mappings":";;;;;AAIA,SAAgB,sBAAsB,QAAmB,QAA2D;AACnH,KAAI,WAAW,QAAQ,OAAO,CAAE,QAAO,CAAC,QAAQ,OAAO;CAGvD,MAAM,SAAS,mBADF,WAAW,QAAQ,OAAO,CACA;AACvC,QAAO,CAAC,OAAO,OAAO,EAAE,OAAO,OAAO,CAAC"}
@@ -0,0 +1,3 @@
1
+ import "../external/vitest/vitest_suite_proxy.mjs";
2
+ import { BrowserPage } from "vitest/browser";
3
+ export { type BrowserPage };
@@ -0,0 +1,15 @@
1
+ import { getCurrentTest } from "../external/vitest/vitest_suite_proxy.mjs";
2
+ import { commands } from "vitest/browser";
3
+
4
+ //#region src/client/page/_ctx.ts
5
+ const ctx = {
6
+ commands,
7
+ getCurrentTest,
8
+ __test__reset() {
9
+ ctx.getCurrentTest = getCurrentTest;
10
+ }
11
+ };
12
+
13
+ //#endregion
14
+ export { ctx };
15
+ //# sourceMappingURL=_ctx.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_ctx.mjs","names":[],"sources":["../../../src/client/page/_ctx.ts"],"sourcesContent":["import { type BrowserPage, commands } from 'vitest/browser'\nimport { getCurrentTest } from '../external/vitest/vitest_suite_proxy.ts'\n\nexport type { BrowserPage }\n\nexport const ctx = {\n\tcommands,\n\tgetCurrentTest,\n\t__test__reset() {\n\t\tctx.getCurrentTest = getCurrentTest\n\t},\n}\n"],"mappings":";;;;AAKA,MAAa,MAAM;CAClB;CACA;CACA,gBAAgB;AACf,MAAI,iBAAiB;;CAEtB"}
@@ -0,0 +1,9 @@
1
+ import { HasImageSnapshotAction } from "./has_image_snapshot.mjs";
2
+ import { ToMatchImageSnapshotAction } from "./to_match_image_snapshot.mjs";
3
+
4
+ //#region src/client/page/augment.d.ts
5
+ declare module '@vitest/browser/context' {
6
+ interface BrowserPage extends HasImageSnapshotAction, ToMatchImageSnapshotAction {}
7
+ }
8
+ //# sourceMappingURL=augment.d.ts.map
9
+ //# sourceMappingURL=augment.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"augment.d.mts","names":[],"sources":["../../../src/client/page/augment.ts"],"sourcesContent":[],"mappings":";;;;;gCAI+B,wBAAwB,4BAHuB"}
@@ -0,0 +1 @@
1
+ import "./augment.mjs";
@@ -0,0 +1,13 @@
1
+ import { hasImageSnapshot } from "./has_image_snapshot.mjs";
2
+ import { toMatchImageSnapshot } from "./to_match_image_snapshot.mjs";
3
+ import { page } from "vitest/browser";
4
+
5
+ //#region src/client/page/extend.ts
6
+ page.extend({
7
+ hasImageSnapshot,
8
+ toMatchImageSnapshot
9
+ });
10
+
11
+ //#endregion
12
+ export { };
13
+ //# sourceMappingURL=extend.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extend.mjs","names":[],"sources":["../../../src/client/page/extend.ts"],"sourcesContent":["import { page } from 'vitest/browser'\nimport './augment.ts'\nimport { hasImageSnapshot } from './has_image_snapshot.ts'\nimport { toMatchImageSnapshot } from './to_match_image_snapshot.ts'\n\npage.extend({ hasImageSnapshot, toMatchImageSnapshot })\n"],"mappings":";;;;;AAKA,KAAK,OAAO;CAAE;CAAkB;CAAsB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { ImageSnapshotKeyOptions } from "../../shared/types.mjs";
2
+ import { BrowserPage } from "./_ctx.mjs";
3
+
4
+ //#region src/client/page/has_image_snapshot.d.ts
5
+ interface HasImageSnapshotAction {
6
+ /**
7
+ * Check if the snapshot image exists.
8
+ */
9
+ hasImageSnapshot(this: BrowserPage, options?: ImageSnapshotKeyOptions | undefined): Promise<boolean>;
10
+ }
11
+ //#endregion
12
+ export { HasImageSnapshotAction };
13
+ //# sourceMappingURL=has_image_snapshot.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has_image_snapshot.d.mts","names":[],"sources":["../../../src/client/page/has_image_snapshot.ts"],"sourcesContent":[],"mappings":";;;;UAMiB,sBAAA;;AAAjB;;EAI+C,gBAAA,CAAA,IAAA,EAAvB,WAAuB,EAAA,OAAA,CAAA,EAAA,uBAAA,GAAA,SAAA,CAAA,EAAsC,OAAtC,CAAA,OAAA,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { hasImageSnapshotAction } from "../actions/has_image_snapshot_action.mjs";
2
+ import { toTaskId } from "../task/task_id.mjs";
3
+ import { ctx } from "./_ctx.mjs";
4
+
5
+ //#region src/client/page/has_image_snapshot.ts
6
+ function hasImageSnapshot(options) {
7
+ const test = ctx.getCurrentTest();
8
+ if (!test) throw new Error("`hasImageSnapshot()` must be called in a test.");
9
+ if (test.concurrent) throw new Error("`hasImageSnapshot()` cannot be called in a concurrent test because concurrent tests run at the same time in the same iframe and affect each other's environment. ");
10
+ return hasImageSnapshotAction(ctx.commands, toTaskId(test), options);
11
+ }
12
+
13
+ //#endregion
14
+ export { hasImageSnapshot };
15
+ //# sourceMappingURL=has_image_snapshot.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has_image_snapshot.mjs","names":[],"sources":["../../../src/client/page/has_image_snapshot.ts"],"sourcesContent":["import type { ImageSnapshotKeyOptions } from '../../shared/types.ts'\nimport { hasImageSnapshotAction } from '../actions/has_image_snapshot_action.ts'\nimport { toTaskId } from '../task/task_id.ts'\nimport type { BrowserPage } from './_ctx.ts'\nimport { ctx } from './_ctx.ts'\n\nexport interface HasImageSnapshotAction {\n\t/**\n\t * Check if the snapshot image exists.\n\t */\n\thasImageSnapshot(this: BrowserPage, options?: ImageSnapshotKeyOptions | undefined): Promise<boolean>\n}\n\nexport function hasImageSnapshot(this: BrowserPage, options?: ImageSnapshotKeyOptions | undefined) {\n\tconst test = ctx.getCurrentTest()\n\tif (!test) {\n\t\tthrow new Error('`hasImageSnapshot()` must be called in a test.')\n\t}\n\n\tif (test.concurrent) {\n\t\tthrow new Error(\n\t\t\t'`hasImageSnapshot()` cannot be called in a concurrent test because ' +\n\t\t\t\t\"concurrent tests run at the same time in the same iframe and affect each other's environment. \",\n\t\t)\n\t}\n\treturn hasImageSnapshotAction(ctx.commands, toTaskId(test), options)\n}\n"],"mappings":";;;;;AAaA,SAAgB,iBAAoC,SAA+C;CAClG,MAAM,OAAO,IAAI,gBAAgB;AACjC,KAAI,CAAC,KACJ,OAAM,IAAI,MAAM,iDAAiD;AAGlE,KAAI,KAAK,WACR,OAAM,IAAI,MACT,oKAEA;AAEF,QAAO,uBAAuB,IAAI,UAAU,SAAS,KAAK,EAAE,QAAQ"}
@@ -0,0 +1,9 @@
1
+ import { ComparisonMethod, ToMatchPageImageSnapshotOptions } from "../../shared/types.mjs";
2
+
3
+ //#region src/client/page/to_match_image_snapshot.d.ts
4
+ interface ToMatchImageSnapshotAction {
5
+ toMatchImageSnapshot<M extends ComparisonMethod = 'pixel'>(options?: ToMatchPageImageSnapshotOptions<M> | undefined): Promise<void>;
6
+ }
7
+ //#endregion
8
+ export { ToMatchImageSnapshotAction };
9
+ //# sourceMappingURL=to_match_image_snapshot.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to_match_image_snapshot.d.mts","names":[],"sources":["../../../src/client/page/to_match_image_snapshot.ts"],"sourcesContent":[],"mappings":";;;UAKiB,0BAAA;iCACe,sCACpB,gCAAgC,iBACxC;AAHJ"}
@@ -0,0 +1,15 @@
1
+ import { matchPageImageSnapshotAction } from "../actions/match_page_image_snapshot_action.mjs";
2
+ import { toTaskId } from "../task/task_id.mjs";
3
+ import { ctx } from "./_ctx.mjs";
4
+
5
+ //#region src/client/page/to_match_image_snapshot.ts
6
+ function toMatchImageSnapshot(options) {
7
+ const test = ctx.getCurrentTest();
8
+ if (!test) throw new Error("`toMatchImageSnapshot()` must be called in a test.");
9
+ if (test.concurrent) throw new Error("`toMatchImageSnapshot()` cannot be called in a concurrent test because concurrent tests run at the same time in the same iframe and affect each other's environment.");
10
+ return matchPageImageSnapshotAction(ctx.commands, toTaskId(test), options);
11
+ }
12
+
13
+ //#endregion
14
+ export { toMatchImageSnapshot };
15
+ //# sourceMappingURL=to_match_image_snapshot.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to_match_image_snapshot.mjs","names":[],"sources":["../../../src/client/page/to_match_image_snapshot.ts"],"sourcesContent":["import type { ComparisonMethod, ToMatchPageImageSnapshotOptions } from '../../shared/types.ts'\nimport { matchPageImageSnapshotAction } from '../actions/match_page_image_snapshot_action.ts'\nimport { toTaskId } from '../task/task_id.ts'\nimport { ctx } from './_ctx.ts'\n\nexport interface ToMatchImageSnapshotAction {\n\ttoMatchImageSnapshot<M extends ComparisonMethod = 'pixel'>(\n\t\toptions?: ToMatchPageImageSnapshotOptions<M> | undefined,\n\t): Promise<void>\n}\n\nexport function toMatchImageSnapshot<M extends ComparisonMethod = 'pixel'>(\n\toptions?: ToMatchPageImageSnapshotOptions<M> | undefined,\n) {\n\tconst test = ctx.getCurrentTest()\n\tif (!test) {\n\t\tthrow new Error('`toMatchImageSnapshot()` must be called in a test.')\n\t}\n\n\tif (test.concurrent) {\n\t\tthrow new Error(\n\t\t\t'`toMatchImageSnapshot()` cannot be called in a concurrent test because ' +\n\t\t\t\t\"concurrent tests run at the same time in the same iframe and affect each other's environment.\",\n\t\t)\n\t}\n\n\treturn matchPageImageSnapshotAction(ctx.commands, toTaskId(test), options)\n}\n"],"mappings":";;;;;AAWA,SAAgB,qBACf,SACC;CACD,MAAM,OAAO,IAAI,gBAAgB;AACjC,KAAI,CAAC,KACJ,OAAM,IAAI,MAAM,qDAAqD;AAGtE,KAAI,KAAK,WACR,OAAM,IAAI,MACT,uKAEA;AAGF,QAAO,6BAA6B,IAAI,UAAU,SAAS,KAAK,EAAE,QAAQ"}
@@ -0,0 +1,14 @@
1
+ //#region src/client/snapshot/compare_image_snapshot.logic.ts
2
+ function prettifyOptions(options) {
3
+ if (!options) return "none";
4
+ return [
5
+ `failureThreshold: ${options.failureThreshold ?? 0} ${options.failureThresholdType ?? "pixels"}`,
6
+ options.timeout ? `timeout: ${options.timeout} ms` : "",
7
+ `comparisonMethod: ${options.comparisonMethod ?? "pixel"}`,
8
+ options.diffOptions ? `diffOptions: ${JSON.stringify(options.diffOptions)}` : ""
9
+ ].filter(Boolean).join("\n ");
10
+ }
11
+
12
+ //#endregion
13
+ export { prettifyOptions };
14
+ //# sourceMappingURL=compare_image_snapshot.logic.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare_image_snapshot.logic.mjs","names":[],"sources":["../../../src/client/snapshot/compare_image_snapshot.logic.ts"],"sourcesContent":["import type { ToMatchImageSnapshotOptions } from '../../shared/types.ts'\n\nexport function prettifyOptions(options: ToMatchImageSnapshotOptions<any> | undefined) {\n\tif (!options) return 'none'\n\n\treturn [\n\t\t`failureThreshold: ${options.failureThreshold ?? 0} ${options.failureThresholdType ?? 'pixels'}`,\n\t\toptions.timeout ? `timeout: ${options.timeout} ms` : '',\n\t\t`comparisonMethod: ${options.comparisonMethod ?? 'pixel'}`,\n\t\toptions.diffOptions ? `diffOptions: ${JSON.stringify(options.diffOptions)}` : '',\n\t]\n\t\t.filter(Boolean)\n\t\t.join('\\n ')\n}\n"],"mappings":";AAEA,SAAgB,gBAAgB,SAAuD;AACtF,KAAI,CAAC,QAAS,QAAO;AAErB,QAAO;EACN,qBAAqB,QAAQ,oBAAoB,EAAE,GAAG,QAAQ,wBAAwB;EACtF,QAAQ,UAAU,YAAY,QAAQ,QAAQ,OAAO;EACrD,qBAAqB,QAAQ,oBAAoB;EACjD,QAAQ,cAAc,gBAAgB,KAAK,UAAU,QAAQ,YAAY,KAAK;EAC9E,CACC,OAAO,QAAQ,CACf,KAAK,qBAAqB"}
@@ -0,0 +1,63 @@
1
+ import { compareImage } from "../../shared/compare_image.mjs";
2
+ import { toDataURL, toImageData } from "../external/browser/image_data.mjs";
3
+ import { server } from "../external/vitest/vitest_browser_context_proxy.mjs";
4
+ import { alignImagesToSameSize } from "../image/align_images.mjs";
5
+ import { prettifyOptions } from "./compare_image_snapshot.logic.mjs";
6
+ import { resolve } from "pathe";
7
+ import dedent from "dedent";
8
+
9
+ //#region src/client/snapshot/compare_image_snapshot.ts
10
+ async function compareImageSnapshot(commands, taskId, info, options) {
11
+ options = {
12
+ ...info,
13
+ ...options
14
+ };
15
+ const resultImage = await toImageData(info.result);
16
+ if (!info.baseline) {
17
+ if (server.config.snapshotOptions.updateSnapshot === "all") {
18
+ await writeSnapshot(commands, resolve(info.projectRoot, info.baselinePath), resultImage);
19
+ return;
20
+ }
21
+ throw new Error(dedent`Snapshot \`${taskId}\` has no baseline image. Please review the new snapshot and update the baseline image.
22
+
23
+ Options: ${prettifyOptions(options)}
24
+ Actual: ${resolve(info.projectRoot, info.resultPath)}`);
25
+ }
26
+ const baselineImage = await toImageData(info.baseline);
27
+ const [baselineAlignedImage, resultAlignedImage] = alignImagesToSameSize(baselineImage, resultImage);
28
+ const { width, height } = baselineAlignedImage;
29
+ const diffImage = new ImageData(width, height);
30
+ const { pass, diffAmount } = compareImage(baselineAlignedImage.data, resultAlignedImage.data, diffImage.data, width, height, options);
31
+ if (pass) {
32
+ if (options?.expectToFail) throw new Error(dedent`Snapshot \`${taskId}\` matched but expected to fail.
33
+
34
+ Options: ${prettifyOptions(options)}
35
+ Diff: ${options.failureThresholdType === "percent" ? `${diffAmount}%` : `${diffAmount} pixels`}
36
+
37
+ Expected: ${resolve(info.projectRoot, info.baselinePath)}
38
+ Actual: ${resolve(info.projectRoot, info.resultPath)}`);
39
+ return;
40
+ }
41
+ if (server.config.snapshotOptions.updateSnapshot === "all" && !options?.expectToFail) {
42
+ await writeSnapshot(commands, resolve(info.projectRoot, info.baselinePath), resultImage);
43
+ return;
44
+ }
45
+ await writeSnapshot(commands, resolve(info.projectRoot, info.diffPath), diffImage);
46
+ throw new Error(dedent`Snapshot \`${taskId}\` mismatched
47
+
48
+ ${options?.failureThreshold ? options?.failureThresholdType === "percent" ? `Expected image to match within ${options.failureThreshold}% but was differ by ${diffAmount}%.` : `Expected image to match within ${options.failureThreshold} pixels but was differ by ${diffAmount} pixels.` : `Expected image to match but was differ by ${options?.failureThresholdType === "percent" ? `${diffAmount}%` : `${diffAmount} pixels`}.`}${baselineImage.width !== resultImage.width || baselineImage.height !== resultImage.height ? `\nThe image size changed from ${baselineImage.width}x${baselineImage.height} to ${resultImage.width}x${resultImage.height}.` : ""}
49
+
50
+ Options: ${prettifyOptions(options)}
51
+
52
+ Expected: ${resolve(info.projectRoot, info.baselinePath)}
53
+ Actual: ${resolve(info.projectRoot, info.resultPath)}
54
+ Difference: ${resolve(info.projectRoot, info.diffPath)}`);
55
+ }
56
+ async function writeSnapshot(commands, path, image) {
57
+ const content = (await toDataURL(image)).split(",")[1];
58
+ return commands.writeFile(path, content, { encoding: "base64" });
59
+ }
60
+
61
+ //#endregion
62
+ export { compareImageSnapshot };
63
+ //# sourceMappingURL=compare_image_snapshot.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare_image_snapshot.mjs","names":[],"sources":["../../../src/client/snapshot/compare_image_snapshot.ts"],"sourcesContent":["import dedent from 'dedent'\nimport { resolve } from 'pathe'\nimport type { BrowserCommands } from 'vitest/browser'\nimport type {\n\tImageSnapshotNextIndexCommand,\n\tPrepareImageSnapshotComparisonCommand,\n} from '../../shared/commands.types.ts'\nimport { compareImage } from '../../shared/compare_image.ts'\nimport type { ImageSnapshotComparisonInfo, ToMatchImageSnapshotOptions } from '../../shared/types.ts'\nimport { toDataURL, toImageData } from '../external/browser/image_data.ts'\nimport { server } from '../external/vitest/vitest_browser_context_proxy.ts'\nimport { alignImagesToSameSize } from '../image/align_images.ts'\nimport { prettifyOptions } from './compare_image_snapshot.logic.ts'\n\nexport async function compareImageSnapshot(\n\tcommands: BrowserCommands & PrepareImageSnapshotComparisonCommand & ImageSnapshotNextIndexCommand,\n\ttaskId: string,\n\tinfo: ImageSnapshotComparisonInfo,\n\toptions?: ToMatchImageSnapshotOptions<any>,\n) {\n\toptions = { ...info, ...options } as any\n\n\tconst resultImage = await toImageData(info.result)\n\n\tif (!info.baseline) {\n\t\tif (server.config.snapshotOptions.updateSnapshot === 'all') {\n\t\t\tawait writeSnapshot(commands, resolve(info.projectRoot, info.baselinePath), resultImage)\n\t\t\treturn\n\t\t}\n\t\tthrow new Error(\n\t\t\tdedent`Snapshot \\`${taskId}\\` has no baseline image. Please review the new snapshot and update the baseline image.\n\n\t\t\t\tOptions: ${prettifyOptions(options)}\n\t\t\t\tActual: ${resolve(info.projectRoot, info.resultPath)}`,\n\t\t)\n\t}\n\n\tconst baselineImage = await toImageData(info.baseline)\n\tconst [baselineAlignedImage, resultAlignedImage] = alignImagesToSameSize(baselineImage, resultImage)\n\tconst { width, height } = baselineAlignedImage\n\tconst diffImage = new ImageData(width, height)\n\tconst { pass, diffAmount } = compareImage(\n\t\tbaselineAlignedImage.data,\n\t\tresultAlignedImage.data,\n\t\tdiffImage.data,\n\t\twidth,\n\t\theight,\n\t\toptions,\n\t)\n\tif (pass) {\n\t\tif (options?.expectToFail) {\n\t\t\tthrow new Error(\n\t\t\t\tdedent`Snapshot \\`${taskId}\\` matched but expected to fail.\n\n\t\t\t\t\t\t\tOptions: ${prettifyOptions(options)}\n\t\t\t\t\t\t\tDiff: ${options.failureThresholdType === 'percent' ? `${diffAmount}%` : `${diffAmount} pixels`}\n\n\t\t\t\t\t\t\tExpected: ${resolve(info.projectRoot, info.baselinePath)}\n\t\t\t\t\t\t\tActual: ${resolve(info.projectRoot, info.resultPath)}`,\n\t\t\t)\n\t\t}\n\t\treturn\n\t}\n\tif (server.config.snapshotOptions.updateSnapshot === 'all' && !options?.expectToFail) {\n\t\tawait writeSnapshot(commands, resolve(info.projectRoot, info.baselinePath), resultImage)\n\t\treturn\n\t}\n\n\tawait writeSnapshot(commands, resolve(info.projectRoot, info.diffPath), diffImage)\n\n\tthrow new Error(\n\t\tdedent`Snapshot \\`${taskId}\\` mismatched\n\n\t\t\t\t\t${\n\t\t\t\t\t\toptions?.failureThreshold\n\t\t\t\t\t\t\t? options?.failureThresholdType === 'percent'\n\t\t\t\t\t\t\t\t? `Expected image to match within ${options.failureThreshold}% but was differ by ${diffAmount}%.`\n\t\t\t\t\t\t\t\t: `Expected image to match within ${options.failureThreshold} pixels but was differ by ${diffAmount} pixels.`\n\t\t\t\t\t\t\t: `Expected image to match but was differ by ${options?.failureThresholdType === 'percent' ? `${diffAmount}%` : `${diffAmount} pixels`}.`\n\t\t\t\t\t}${\n\t\t\t\t\t\tbaselineImage.width !== resultImage.width || baselineImage.height !== resultImage.height\n\t\t\t\t\t\t\t? `\\nThe image size changed from ${baselineImage.width}x${baselineImage.height} to ${resultImage.width}x${resultImage.height}.`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}\n\n\t\t\t\t\tOptions: ${prettifyOptions(options)}\n\n\t\t\t\t\tExpected: ${resolve(info.projectRoot, info.baselinePath)}\n\t\t\t\t\tActual: ${resolve(info.projectRoot, info.resultPath)}\n\t\t\t\t\tDifference: ${resolve(info.projectRoot, info.diffPath)}`,\n\t)\n}\n\nasync function writeSnapshot(commands: BrowserCommands, path: string, image: ImageData) {\n\tconst content = (await toDataURL(image)).split(',')[1]!\n\treturn commands.writeFile(path, content, { encoding: 'base64' })\n}\n"],"mappings":";;;;;;;;;AAcA,eAAsB,qBACrB,UACA,QACA,MACA,SACC;AACD,WAAU;EAAE,GAAG;EAAM,GAAG;EAAS;CAEjC,MAAM,cAAc,MAAM,YAAY,KAAK,OAAO;AAElD,KAAI,CAAC,KAAK,UAAU;AACnB,MAAI,OAAO,OAAO,gBAAgB,mBAAmB,OAAO;AAC3D,SAAM,cAAc,UAAU,QAAQ,KAAK,aAAa,KAAK,aAAa,EAAE,YAAY;AACxF;;AAED,QAAM,IAAI,MACT,MAAM,cAAc,OAAO;;kBAEZ,gBAAgB,QAAQ,CAAC;kBACzB,QAAQ,KAAK,aAAa,KAAK,WAAW,GACzD;;CAGF,MAAM,gBAAgB,MAAM,YAAY,KAAK,SAAS;CACtD,MAAM,CAAC,sBAAsB,sBAAsB,sBAAsB,eAAe,YAAY;CACpG,MAAM,EAAE,OAAO,WAAW;CAC1B,MAAM,YAAY,IAAI,UAAU,OAAO,OAAO;CAC9C,MAAM,EAAE,MAAM,eAAe,aAC5B,qBAAqB,MACrB,mBAAmB,MACnB,UAAU,MACV,OACA,QACA,QACA;AACD,KAAI,MAAM;AACT,MAAI,SAAS,aACZ,OAAM,IAAI,MACT,MAAM,cAAc,OAAO;;qBAEV,gBAAgB,QAAQ,CAAC;qBACzB,QAAQ,yBAAyB,YAAY,GAAG,WAAW,KAAK,GAAG,WAAW,SAAS;;qBAEvF,QAAQ,KAAK,aAAa,KAAK,aAAa,CAAC;qBAC7C,QAAQ,KAAK,aAAa,KAAK,WAAW,GAC3D;AAEF;;AAED,KAAI,OAAO,OAAO,gBAAgB,mBAAmB,SAAS,CAAC,SAAS,cAAc;AACrF,QAAM,cAAc,UAAU,QAAQ,KAAK,aAAa,KAAK,aAAa,EAAE,YAAY;AACxF;;AAGD,OAAM,cAAc,UAAU,QAAQ,KAAK,aAAa,KAAK,SAAS,EAAE,UAAU;AAElF,OAAM,IAAI,MACT,MAAM,cAAc,OAAO;;OAGvB,SAAS,mBACN,SAAS,yBAAyB,YACjC,kCAAkC,QAAQ,iBAAiB,sBAAsB,WAAW,MAC5F,kCAAkC,QAAQ,iBAAiB,4BAA4B,WAAW,YACnG,6CAA6C,SAAS,yBAAyB,YAAY,GAAG,WAAW,KAAK,GAAG,WAAW,SAAS,KAExI,cAAc,UAAU,YAAY,SAAS,cAAc,WAAW,YAAY,SAC/E,iCAAiC,cAAc,MAAM,GAAG,cAAc,OAAO,MAAM,YAAY,MAAM,GAAG,YAAY,OAAO,KAC3H,GACH;;mBAEa,gBAAgB,QAAQ,CAAC;;mBAEzB,QAAQ,KAAK,aAAa,KAAK,aAAa,CAAC;mBAC7C,QAAQ,KAAK,aAAa,KAAK,WAAW,CAAC;mBAC3C,QAAQ,KAAK,aAAa,KAAK,SAAS,GACzD;;AAGF,eAAe,cAAc,UAA2B,MAAc,OAAkB;CACvF,MAAM,WAAW,MAAM,UAAU,MAAM,EAAE,MAAM,IAAI,CAAC;AACpD,QAAO,SAAS,UAAU,MAAM,SAAS,EAAE,UAAU,UAAU,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { hasRenderContent } from "../external/browser/has_render_content.mjs";
2
+
3
+ //#region src/client/snapshot/should_take_snapshot.ts
4
+ function shouldTakeSnapshot(meta) {
5
+ return hasRenderContent() && meta?.enable;
6
+ }
7
+
8
+ //#endregion
9
+ export { shouldTakeSnapshot };
10
+ //# sourceMappingURL=should_take_snapshot.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"should_take_snapshot.mjs","names":[],"sources":["../../../src/client/snapshot/should_take_snapshot.ts"],"sourcesContent":["import type { SnapshotMeta } from '../../auto_snapshots/snapshot_meta.ts'\nimport { hasRenderContent } from '../external/browser/has_render_content.ts'\n\nexport function shouldTakeSnapshot(meta: SnapshotMeta<any> | undefined) {\n\treturn hasRenderContent() && meta?.enable\n}\n"],"mappings":";;;AAGA,SAAgB,mBAAmB,MAAqC;AACvE,QAAO,kBAAkB,IAAI,MAAM"}
@@ -0,0 +1,13 @@
1
+ import { getCurrentTest } from "../external/vitest/vitest_suite_proxy.mjs";
2
+
3
+ //#region src/client/suite/_ctx.ts
4
+ const ctx = {
5
+ getCurrentTest,
6
+ __test__reset() {
7
+ ctx.getCurrentTest = getCurrentTest;
8
+ }
9
+ };
10
+
11
+ //#endregion
12
+ export { ctx };
13
+ //# sourceMappingURL=_ctx.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_ctx.mjs","names":[],"sources":["../../../src/client/suite/_ctx.ts"],"sourcesContent":["import { getCurrentTest } from '../external/vitest/vitest_suite_proxy.ts'\n\nexport const ctx = {\n\tgetCurrentTest,\n\t__test__reset() {\n\t\tctx.getCurrentTest = getCurrentTest\n\t},\n}\n"],"mappings":";;;AAEA,MAAa,MAAM;CAClB;CACA,gBAAgB;AACf,MAAI,iBAAiB;;CAEtB"}
@@ -0,0 +1,12 @@
1
+ import { SnapshotMeta } from "../../auto_snapshots/snapshot_meta.mjs";
2
+ import { ComparisonMethod } from "../../shared/types.mjs";
3
+ import { SetupVisSuiteCommand } from "../../shared/commands.types.mjs";
4
+
5
+ //#region src/client/suite/auto_snapshot_matcher.d.ts
6
+ declare function autoSnapshotMatcher<GM extends Record<string, any> | unknown = unknown>(commands: SetupVisSuiteCommand, expect: any): {
7
+ setup(): Promise<void>;
8
+ createMatcher<C extends ComparisonMethod, M extends Record<string, any> | unknown = unknown>(themes: Record<string, boolean | ((options: SnapshotMeta<C> & M & GM) => Promise<boolean> | Promise<void> | boolean | void)>): () => Promise<void>;
9
+ };
10
+ //#endregion
11
+ export { autoSnapshotMatcher };
12
+ //# sourceMappingURL=auto_snapshot_matcher.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto_snapshot_matcher.d.mts","names":[],"sources":["../../../src/client/suite/auto_snapshot_matcher.ts"],"sourcesContent":[],"mappings":";;;;;iBASgB,+BAA+B,mDACpC;;EADK,aAAA,CAAA,UAUU,gBAVS,EAAA,UAUmB,MAVnB,CAAA,MAAA,EAAA,GAAA,CAAA,GAAA,OAAA,GAAA,OAAA,CAAA,CAAA,MAAA,EAWxB,MAXwB,CAAA,MAAA,EAAA,OAAA,GAAA,CAAA,CAAA,OAAA,EAaV,YAbU,CAaG,CAbH,CAAA,GAaQ,CAbR,GAaY,EAbZ,EAAA,GAamB,OAbnB,CAAA,OAAA,CAAA,GAasC,OAbtC,CAAA,IAAA,CAAA,GAAA,OAAA,GAAA,IAAA,CAAA,CAAA,CAAA,EAAA,GAAA,GAc/B,OAd+B,CAAA,IAAA,CAAA;CAAY"}
@@ -0,0 +1,50 @@
1
+ import { extractAutoSnapshotOptions } from "../../auto_snapshots/_extract_auto_snapshot_options.mjs";
2
+ import { shouldTakeSnapshot } from "../snapshot/should_take_snapshot.mjs";
3
+ import { toTaskId } from "../task/task_id.mjs";
4
+ import { ctx } from "./_ctx.mjs";
5
+ import dedent from "dedent";
6
+
7
+ //#region src/client/suite/auto_snapshot_matcher.ts
8
+ function autoSnapshotMatcher(commands, expect) {
9
+ let subject;
10
+ return {
11
+ async setup() {
12
+ subject = (await commands.setupVisSuite()).subject;
13
+ },
14
+ createMatcher(themes) {
15
+ return async function matchImageSnapshot() {
16
+ const test = ctx.getCurrentTest();
17
+ const meta = extractAutoSnapshotOptions(test);
18
+ if (!shouldTakeSnapshot(meta)) return;
19
+ const errors = [];
20
+ for (const themeId in themes) try {
21
+ await new Promise((a) => setTimeout(a, 10));
22
+ const theme = themes[themeId];
23
+ if ((typeof theme === "function" ? await theme(meta) : theme) === false) continue;
24
+ await expect(getSubject(meta?.subject ?? subject)).toMatchImageSnapshot({
25
+ ...meta,
26
+ snapshotKey: meta?.snapshotKey ?? themeId
27
+ });
28
+ } catch (error) {
29
+ errors.push([themeId, error]);
30
+ }
31
+ if (errors.length > 0) {
32
+ if (errors.length === 1) throw errors[0][1];
33
+ const taskId = toTaskId(test);
34
+ throw new AggregateError(errors, dedent`Snapshot \`${taskId}\` mismatched
35
+
36
+ ${errors.map(([themeId, error]) => {
37
+ return `Theme \`${themeId}\` failed: ${error.message}`;
38
+ }).join("\n\n")}`);
39
+ }
40
+ };
41
+ }
42
+ };
43
+ }
44
+ function getSubject(selectors) {
45
+ return selectors ? document.querySelector(selectors) ?? document.body : document.body;
46
+ }
47
+
48
+ //#endregion
49
+ export { autoSnapshotMatcher };
50
+ //# sourceMappingURL=auto_snapshot_matcher.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto_snapshot_matcher.mjs","names":[],"sources":["../../../src/client/suite/auto_snapshot_matcher.ts"],"sourcesContent":["import dedent from 'dedent'\nimport { extractAutoSnapshotOptions } from '../../auto_snapshots/_extract_auto_snapshot_options.ts'\nimport type { SnapshotMeta } from '../../auto_snapshots/snapshot_meta.ts'\nimport type { SetupVisSuiteCommand } from '../../shared/commands.types.ts'\nimport type { ComparisonMethod } from '../../shared/types.ts'\nimport { shouldTakeSnapshot } from '../snapshot/should_take_snapshot.ts'\nimport { toTaskId } from '../task/task_id.ts'\nimport { ctx } from './_ctx.ts'\n\nexport function autoSnapshotMatcher<GM extends Record<string, any> | unknown = unknown>(\n\tcommands: SetupVisSuiteCommand,\n\texpect: any,\n) {\n\tlet subject: string | undefined\n\n\treturn {\n\t\tasync setup() {\n\t\t\tsubject = (await commands.setupVisSuite()).subject\n\t\t},\n\t\tcreateMatcher<C extends ComparisonMethod, M extends Record<string, any> | unknown = unknown>(\n\t\t\tthemes: Record<\n\t\t\t\tstring,\n\t\t\t\tboolean | ((options: SnapshotMeta<C> & M & GM) => Promise<boolean> | Promise<void> | boolean | void)\n\t\t\t>,\n\t\t) {\n\t\t\treturn async function matchImageSnapshot() {\n\t\t\t\tconst test = ctx.getCurrentTest()\n\n\t\t\t\tconst meta = extractAutoSnapshotOptions(test)\n\t\t\t\tif (!shouldTakeSnapshot(meta)) return\n\t\t\t\tconst errors: Array<[string, Error]> = []\n\t\t\t\tfor (const themeId in themes) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait new Promise((a) => setTimeout(a, 10))\n\t\t\t\t\t\tconst theme = themes[themeId]\n\t\t\t\t\t\tconst r = typeof theme === 'function' ? await theme(meta! as any) : theme\n\t\t\t\t\t\tif (r === false) continue\n\t\t\t\t\t\tawait expect(getSubject(meta?.subject ?? subject)).toMatchImageSnapshot({\n\t\t\t\t\t\t\t...meta,\n\t\t\t\t\t\t\tsnapshotKey: meta?.snapshotKey ?? themeId,\n\t\t\t\t\t\t})\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\terrors.push([themeId, error as Error])\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (errors.length > 0) {\n\t\t\t\t\tif (errors.length === 1) throw errors[0]![1]\n\t\t\t\t\tconst taskId = toTaskId(test!)\n\t\t\t\t\tthrow new AggregateError(\n\t\t\t\t\t\terrors,\n\t\t\t\t\t\tdedent`Snapshot \\`${taskId}\\` mismatched\n\n\t\t\t\t\t${errors\n\t\t\t\t\t\t.map(([themeId, error]) => {\n\t\t\t\t\t\t\treturn `Theme \\`${themeId}\\` failed: ${error.message}`\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.join('\\n\\n')}`,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t}\n}\n\nfunction getSubject(selectors: string | undefined) {\n\treturn selectors ? (document.querySelector(selectors) ?? document.body) : document.body\n}\n"],"mappings":";;;;;;;AASA,SAAgB,oBACf,UACA,QACC;CACD,IAAI;AAEJ,QAAO;EACN,MAAM,QAAQ;AACb,cAAW,MAAM,SAAS,eAAe,EAAE;;EAE5C,cACC,QAIC;AACD,UAAO,eAAe,qBAAqB;IAC1C,MAAM,OAAO,IAAI,gBAAgB;IAEjC,MAAM,OAAO,2BAA2B,KAAK;AAC7C,QAAI,CAAC,mBAAmB,KAAK,CAAE;IAC/B,MAAM,SAAiC,EAAE;AACzC,SAAK,MAAM,WAAW,OACrB,KAAI;AACH,WAAM,IAAI,SAAS,MAAM,WAAW,GAAG,GAAG,CAAC;KAC3C,MAAM,QAAQ,OAAO;AAErB,UADU,OAAO,UAAU,aAAa,MAAM,MAAM,KAAa,GAAG,WAC1D,MAAO;AACjB,WAAM,OAAO,WAAW,MAAM,WAAW,QAAQ,CAAC,CAAC,qBAAqB;MACvE,GAAG;MACH,aAAa,MAAM,eAAe;MAClC,CAAC;aACM,OAAO;AACf,YAAO,KAAK,CAAC,SAAS,MAAe,CAAC;;AAGxC,QAAI,OAAO,SAAS,GAAG;AACtB,SAAI,OAAO,WAAW,EAAG,OAAM,OAAO,GAAI;KAC1C,MAAM,SAAS,SAAS,KAAM;AAC9B,WAAM,IAAI,eACT,QACA,MAAM,cAAc,OAAO;;OAE1B,OACA,KAAK,CAAC,SAAS,WAAW;AAC1B,aAAO,WAAW,QAAQ,aAAa,MAAM;OAC5C,CACD,KAAK,OAAO,GACb;;;;EAIJ;;AAGF,SAAS,WAAW,WAA+B;AAClD,QAAO,YAAa,SAAS,cAAc,UAAU,IAAI,SAAS,OAAQ,SAAS"}
@@ -0,0 +1,9 @@
1
+ //#region src/client/task/task_id.d.ts
2
+ type Task = {
3
+ name: string;
4
+ suite?: Task | undefined;
5
+ };
6
+ declare function toTaskId(task: Task): string;
7
+ //#endregion
8
+ export { toTaskId };
9
+ //# sourceMappingURL=task_id.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task_id.d.mts","names":[],"sources":["../../../src/client/task/task_id.ts"],"sourcesContent":[],"mappings":";KAAK,IAAA;EAAA,IAAA,EAAA,MAAI;EAKO,KAAA,CAAA,EAHP,IAGe,GAAA,SAAO;;iBAAf,QAAA,OAAe"}
@@ -0,0 +1,15 @@
1
+ //#region src/client/task/task_id.ts
2
+ function toTaskId(task) {
3
+ const l = [];
4
+ let t = task;
5
+ while (t?.suite) {
6
+ l.unshift(t.suite.name.replace(/[^a-z0-9]/gi, "-").toLowerCase());
7
+ t = t.suite;
8
+ }
9
+ l.push(task.name.replace(/[^a-z0-9]/gi, "-").toLowerCase());
10
+ return l.join("/");
11
+ }
12
+
13
+ //#endregion
14
+ export { toTaskId };
15
+ //# sourceMappingURL=task_id.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task_id.mjs","names":[],"sources":["../../../src/client/task/task_id.ts"],"sourcesContent":["type Task = {\n\tname: string\n\tsuite?: Task | undefined\n}\n\nexport function toTaskId(task: Task) {\n\tconst l: any[] = []\n\tlet t = task\n\twhile (t?.suite) {\n\t\tl.unshift(t.suite.name.replace(/[^a-z0-9]/gi, '-').toLowerCase())\n\t\tt = t.suite\n\t}\n\n\tl.push(task.name.replace(/[^a-z0-9]/gi, '-').toLowerCase())\n\treturn l.join('/')\n}\n"],"mappings":";AAKA,SAAgB,SAAS,MAAY;CACpC,MAAM,IAAW,EAAE;CACnB,IAAI,IAAI;AACR,QAAO,GAAG,OAAO;AAChB,IAAE,QAAQ,EAAE,MAAM,KAAK,QAAQ,eAAe,IAAI,CAAC,aAAa,CAAC;AACjE,MAAI,EAAE;;AAGP,GAAE,KAAK,KAAK,KAAK,QAAQ,eAAe,IAAI,CAAC,aAAa,CAAC;AAC3D,QAAO,EAAE,KAAK,IAAI"}
@@ -1,44 +1,13 @@
1
- import { C as SNAPSHOT_ROOT_DIR, S as RESULT_DIR, _ as ToMatchImageSnapshotOptions, a as ImageSnapshotComparisonInfo, b as DIFF_DIR, c as ImageSnapshotTimeoutOptions, d as PixelComparisonOptions, f as PixelDiffOptions, g as SsimDiffOptions, h as SsimComparisonOptions, i as ImageSnapshotCompareOptions, l as MatchImageSnapshotOptions, m as SnapshotTestMeta, n as ComparisonMethod, o as ImageSnapshotKeyOptions, p as SetupVisOptions, r as FailureThresholdOptions, s as ImageSnapshotSubjectOptions, t as Awaitable, u as PageImageSnapshotOptions, v as ToMatchPageImageSnapshotOptions, w as SnapshotMeta, x as NAME, y as BASELINE_DIR } from "./types-CEmjj-A9.mjs";
2
- import "./types-DJYCbyT8.mjs";
3
- import { a as PrepareImageSnapshotComparisonCommand, i as LoadImageSnapshotResultsCommand, n as ImageSnapshotNextIndexCommand, o as PreparePageImageSnapshotComparisonCommand, r as ImageSnapshotResult, s as SetupVisSuiteCommand, t as HasImageSnapshotCommand } from "./commands.types-BVhcnnHw.mjs";
4
- import { t as ImageSnapshotMatcher } from "./to_match_image_snapshot.types--tTmHoRA.mjs";
5
- import { n as setAutoSnapshotOptions, t as MetaTask } from "./auto_snapshot_options-BMRtKmod.mjs";
6
- import { BrowserCommands } from "vitest/browser";
7
- import { SyncExpectationResult } from "@vitest/expect";
8
-
9
- //#region src/server/commands/augment.d.ts
10
- declare module 'vitest/browser' {
11
- interface BrowserCommands extends SetupVisSuiteCommand, ImageSnapshotNextIndexCommand, HasImageSnapshotCommand, PreparePageImageSnapshotComparisonCommand, PrepareImageSnapshotComparisonCommand, LoadImageSnapshotResultsCommand {}
12
- }
13
- //# sourceMappingURL=augment.d.ts.map
14
- //#endregion
15
- //#region src/client/actions/has_image_snapshot_action.d.ts
16
- declare function hasImageSnapshotAction(commands: ImageSnapshotNextIndexCommand & HasImageSnapshotCommand, taskId: string, options?: ImageSnapshotKeyOptions | undefined): Promise<boolean>;
17
- //#endregion
18
- //#region src/client/actions/load_image_snapshot_results_action.d.ts
19
- declare function loadImageSnapshotResultsAction(commands: LoadImageSnapshotResultsCommand, taskId: string): Promise<ImageSnapshotResult[]>;
20
- //#endregion
21
- //#region src/client/actions/match_image_snapshot_action.d.ts
22
- declare function matchImageSnapshotAction(commands: BrowserCommands & PrepareImageSnapshotComparisonCommand & ImageSnapshotNextIndexCommand, taskId: string, subject: any, options?: ToMatchImageSnapshotOptions<any>): Promise<void>;
23
- //#endregion
24
- //#region src/client/actions/match_page_image_snapshot_action.d.ts
25
- declare function matchPageImageSnapshotAction(commands: BrowserCommands & PrepareImageSnapshotComparisonCommand & ImageSnapshotNextIndexCommand, taskId: string, options?: ToMatchImageSnapshotOptions<any>): Promise<void>;
26
- //#endregion
27
- //#region src/client/expect/expectation_result.d.ts
28
- declare const success: SyncExpectationResult;
29
- //#endregion
30
- //#region src/client/suite/auto_snapshot_matcher.d.ts
31
- declare function autoSnapshotMatcher<GM extends Record<string, any> | unknown = unknown>(commands: SetupVisSuiteCommand, expect: any): {
32
- setup(): Promise<void>;
33
- createMatcher<C extends ComparisonMethod, M extends Record<string, any> | unknown = unknown>(themes: Record<string, boolean | ((options: SnapshotMeta<C> & M & GM) => Promise<boolean> | Promise<void> | boolean | void)>): () => Promise<void>;
34
- };
35
- //#endregion
36
- //#region src/client/task/task_id.d.ts
37
- type Task = {
38
- name: string;
39
- suite?: Task | undefined;
40
- };
41
- declare function toTaskId(task: Task): string;
42
- //#endregion
43
- export { Awaitable, BASELINE_DIR, ComparisonMethod, DIFF_DIR, FailureThresholdOptions, ImageSnapshotCompareOptions, ImageSnapshotComparisonInfo, ImageSnapshotKeyOptions, ImageSnapshotMatcher, ImageSnapshotSubjectOptions, ImageSnapshotTimeoutOptions, MatchImageSnapshotOptions, type MetaTask, NAME, PageImageSnapshotOptions, PixelComparisonOptions, PixelDiffOptions, RESULT_DIR, SNAPSHOT_ROOT_DIR, SetupVisOptions, SnapshotTestMeta, SsimComparisonOptions, SsimDiffOptions, ToMatchImageSnapshotOptions, ToMatchPageImageSnapshotOptions, autoSnapshotMatcher, hasImageSnapshotAction, loadImageSnapshotResultsAction, matchImageSnapshotAction, matchPageImageSnapshotAction, setAutoSnapshotOptions, success, toTaskId };
44
- //# sourceMappingURL=client-api.d.mts.map
1
+ import { BASELINE_DIR, DIFF_DIR, NAME, RESULT_DIR, SNAPSHOT_ROOT_DIR } from "./shared/constants.mjs";
2
+ import { Awaitable, ComparisonMethod, FailureThresholdOptions, ImageSnapshotCompareOptions, ImageSnapshotComparisonInfo, ImageSnapshotKeyOptions, ImageSnapshotSubjectOptions, ImageSnapshotTimeoutOptions, MatchImageSnapshotOptions, PageImageSnapshotOptions, PixelComparisonOptions, PixelDiffOptions, SetupVisOptions, SnapshotTestMeta, SsimComparisonOptions, SsimDiffOptions, ToMatchImageSnapshotOptions, ToMatchPageImageSnapshotOptions } from "./shared/types.mjs";
3
+ import "./server/commands/augment.mjs";
4
+ import { MetaTask, setAutoSnapshotOptions } from "./auto_snapshots/auto_snapshot_options.mjs";
5
+ import { hasImageSnapshotAction } from "./client/actions/has_image_snapshot_action.mjs";
6
+ import { loadImageSnapshotResultsAction } from "./client/actions/load_image_snapshot_results_action.mjs";
7
+ import { matchImageSnapshotAction } from "./client/actions/match_image_snapshot_action.mjs";
8
+ import { matchPageImageSnapshotAction } from "./client/actions/match_page_image_snapshot_action.mjs";
9
+ import { success } from "./client/expect/expectation_result.mjs";
10
+ import { ImageSnapshotMatcher } from "./client/expect/to_match_image_snapshot.types.mjs";
11
+ import { autoSnapshotMatcher } from "./client/suite/auto_snapshot_matcher.mjs";
12
+ import { toTaskId } from "./client/task/task_id.mjs";
13
+ export { Awaitable, BASELINE_DIR, ComparisonMethod, DIFF_DIR, FailureThresholdOptions, ImageSnapshotCompareOptions, ImageSnapshotComparisonInfo, ImageSnapshotKeyOptions, ImageSnapshotMatcher, ImageSnapshotSubjectOptions, ImageSnapshotTimeoutOptions, MatchImageSnapshotOptions, MetaTask, NAME, PageImageSnapshotOptions, PixelComparisonOptions, PixelDiffOptions, RESULT_DIR, SNAPSHOT_ROOT_DIR, SetupVisOptions, SnapshotTestMeta, SsimComparisonOptions, SsimDiffOptions, ToMatchImageSnapshotOptions, ToMatchPageImageSnapshotOptions, autoSnapshotMatcher, hasImageSnapshotAction, loadImageSnapshotResultsAction, matchImageSnapshotAction, matchPageImageSnapshotAction, setAutoSnapshotOptions, success, toTaskId };
@@ -1,14 +1,11 @@
1
- import "./asserts--HSSlgPD.mjs";
2
- import { a as SNAPSHOT_ROOT_DIR, i as RESULT_DIR, n as DIFF_DIR, r as NAME, t as BASELINE_DIR } from "./constants-CTBaz8Ml.mjs";
3
- import { n as setAutoSnapshotOptions } from "./auto_snapshot_options-DUOTpF2N.mjs";
4
- import "./base64-CHSENEAO.mjs";
5
- import { a as matchImageSnapshotAction, i as matchPageImageSnapshotAction, n as toTaskId, o as hasImageSnapshotAction, r as success, t as autoSnapshotMatcher } from "./auto_snapshot_matcher-C0y6mAeS.mjs";
1
+ import { BASELINE_DIR, DIFF_DIR, NAME, RESULT_DIR, SNAPSHOT_ROOT_DIR } from "./shared/constants.mjs";
2
+ import { setAutoSnapshotOptions } from "./auto_snapshots/auto_snapshot_options.mjs";
3
+ import { hasImageSnapshotAction } from "./client/actions/has_image_snapshot_action.mjs";
4
+ import { loadImageSnapshotResultsAction } from "./client/actions/load_image_snapshot_results_action.mjs";
5
+ import { matchImageSnapshotAction } from "./client/actions/match_image_snapshot_action.mjs";
6
+ import { matchPageImageSnapshotAction } from "./client/actions/match_page_image_snapshot_action.mjs";
7
+ import { success } from "./client/expect/expectation_result.mjs";
8
+ import { toTaskId } from "./client/task/task_id.mjs";
9
+ import { autoSnapshotMatcher } from "./client/suite/auto_snapshot_matcher.mjs";
6
10
 
7
- //#region src/client/actions/load_image_snapshot_results_action.ts
8
- function loadImageSnapshotResultsAction(commands, taskId) {
9
- return commands.loadImageSnapshotResults(taskId);
10
- }
11
-
12
- //#endregion
13
- export { BASELINE_DIR, DIFF_DIR, NAME, RESULT_DIR, SNAPSHOT_ROOT_DIR, autoSnapshotMatcher, hasImageSnapshotAction, loadImageSnapshotResultsAction, matchImageSnapshotAction, matchPageImageSnapshotAction, setAutoSnapshotOptions, success, toTaskId };
14
- //# sourceMappingURL=client-api.mjs.map
11
+ export { BASELINE_DIR, DIFF_DIR, NAME, RESULT_DIR, SNAPSHOT_ROOT_DIR, autoSnapshotMatcher, hasImageSnapshotAction, loadImageSnapshotResultsAction, matchImageSnapshotAction, matchPageImageSnapshotAction, setAutoSnapshotOptions, success, toTaskId };
@@ -1,4 +1,4 @@
1
- import { c as ImageSnapshotTimeoutOptions, f as PixelDiffOptions, g as SsimDiffOptions, n as ComparisonMethod, o as ImageSnapshotKeyOptions, r as FailureThresholdOptions, s as ImageSnapshotSubjectOptions } from "./types-CEmjj-A9.mjs";
1
+ import { ComparisonMethod, FailureThresholdOptions, ImageSnapshotKeyOptions, ImageSnapshotSubjectOptions, ImageSnapshotTimeoutOptions, PixelComparisonOptions, PixelDiffOptions, SsimComparisonOptions, SsimDiffOptions } from "../shared/types.mjs";
2
2
 
3
3
  //#region src/config/types.d.ts
4
4
  type VisOptions<M extends ComparisonMethod = 'pixel'> = (M extends 'ssim' ? {
@@ -17,21 +17,20 @@ type VisOptions<M extends ComparisonMethod = 'pixel'> = (M extends 'ssim' ? {
17
17
  /**
18
18
  * Loads the `test.setupFiles` of the specified preset.
19
19
  *
20
- * Note:
21
- * - 'enable` is deprecated. Use `manual` for the same effect.
22
- * - 'none` is deprecated. Use `custom` for the same effect.
23
- *
24
20
  * @default 'auto'
25
- *
21
+ * @deprecated 'enable' is deprecated. Use `manual` for the same effect.
22
+ * @deprecated 'none' is deprecated. Use `custom` for the same effect.
26
23
  */
27
24
  preset?: 'enable' | 'manual' | 'auto' | 'custom' | 'none' | undefined;
28
25
  /**
29
26
  * The snapshot folder relative to the root of the project.
30
27
  *
31
- * Default: `{projectRoot}/__vis__/{platform}`
28
+ * @default "({ ci, platform }) => `__vis__/${ci ? platform : 'local'}`"
32
29
  */
33
30
  snapshotRootDir?: string | ((context: {
34
31
  ci: boolean;
32
+ rootDir: string;
33
+ projectName?: string | undefined;
35
34
  browserName?: string | undefined;
36
35
  providerName: string;
37
36
  platform: string;
@@ -59,5 +58,5 @@ type VisOptions<M extends ComparisonMethod = 'pixel'> = (M extends 'ssim' ? {
59
58
  }) => string) | undefined;
60
59
  };
61
60
  //#endregion
62
- export { VisOptions as t };
63
- //# sourceMappingURL=types-DJYCbyT8.d.mts.map
61
+ export { VisOptions };
62
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../../src/config/types.ts"],"sourcesContent":[],"mappings":";;;KAcY,qBAAqB,+BAA+B;EAApD,gBAAU,EAED,CAFC;EAAW;;;EAMR,WAAA,CAAA,EAAR,OAAQ,CAAA,eAAA,CAAA,GAAA,SAAA;CAAR,GAAA;EAGK,gBAAA,CAAA,EAAA,CAAA,GAAA,SAAA;EAIL;;;EAIhB,WAAA,CAAA,EAJgB,gBAIhB,GAAA,SAAA;CACA,CAAA,GAHA,uBAGA,GAFA,2BAEA,GADA,uBACA,GAAA,2BAAA,GAAA;EAA2B"}
@@ -0,0 +1,27 @@
1
+ import { ComparisonMethod } from "../shared/types.mjs";
2
+ import { VisOptions } from "./types.mjs";
3
+ import * as vite0 from "vite";
4
+
5
+ //#region src/config/vis.d.ts
6
+
7
+ /**
8
+ * Create a Vite plugin for visual testing.
9
+ *
10
+ * If options are not provided, the plugin will use the default options,
11
+ * which enables the `auto` preset.
12
+ */
13
+ declare function vis<M extends ComparisonMethod = 'pixel'>(options?: VisOptions<M>): {
14
+ name: string;
15
+ config(this: unknown, userConfig: vite0.UserConfig): {
16
+ test: {
17
+ browser: {
18
+ name: undefined;
19
+ commands: any;
20
+ };
21
+ setupFiles: string[];
22
+ };
23
+ };
24
+ };
25
+ //#endregion
26
+ export { vis };
27
+ //# sourceMappingURL=vis.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vis.d.mts","names":[],"sources":["../../src/config/vis.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AAaA;;;AAAmE,iBAAnD,GAAmD,CAAA,UAArC,gBAAqC,GAAA,OAAA,CAAA,CAAA,OAAA,CAAA,EAAA,UAAA,CAAW,CAAX,CAAA,CAAA,EAAA;EAAU,IAGvD,EAAA,MAAA;EAAA,MAAA,CAAA,IAAA,EAAA,OAAA,EAAA,UAAA,EAHuD,KAAA,CAGvD,UAAA,CAAA,EAAA"}