@juxtapose/core 0.4.0 → 0.6.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 (153) hide show
  1. package/dist/agent/handoff.d.ts +8 -1
  2. package/dist/agent/handoff.js +75 -7
  3. package/dist/agent/handoff.js.map +1 -1
  4. package/dist/analysis/affected.d.ts +37 -0
  5. package/dist/analysis/affected.js +97 -22
  6. package/dist/analysis/affected.js.map +1 -1
  7. package/dist/analysis/cause.d.ts +32 -0
  8. package/dist/analysis/cause.js +187 -0
  9. package/dist/analysis/cause.js.map +1 -0
  10. package/dist/baseline/approve.d.ts +24 -0
  11. package/dist/baseline/approve.js +54 -0
  12. package/dist/baseline/approve.js.map +1 -0
  13. package/dist/baseline/git-store.d.ts +4 -0
  14. package/dist/baseline/git-store.js +22 -0
  15. package/dist/baseline/git-store.js.map +1 -1
  16. package/dist/browser/acquire.d.ts +15 -0
  17. package/dist/browser/acquire.js +26 -0
  18. package/dist/browser/acquire.js.map +1 -0
  19. package/dist/browser/browser.d.ts +53 -0
  20. package/dist/browser/browser.js +122 -0
  21. package/dist/browser/browser.js.map +1 -0
  22. package/dist/browser/cdp.d.ts +81 -0
  23. package/dist/browser/cdp.js +230 -0
  24. package/dist/browser/cdp.js.map +1 -0
  25. package/dist/browser/daemon/client.d.ts +145 -0
  26. package/dist/browser/daemon/client.js +764 -0
  27. package/dist/browser/daemon/client.js.map +1 -0
  28. package/dist/browser/daemon/state.d.ts +99 -0
  29. package/dist/browser/daemon/state.js +297 -0
  30. package/dist/browser/daemon/state.js.map +1 -0
  31. package/dist/browser/daemon/supervisor-main.d.ts +1 -0
  32. package/dist/browser/daemon/supervisor-main.js +54 -0
  33. package/dist/browser/daemon/supervisor-main.js.map +1 -0
  34. package/dist/browser/daemon/supervisor.d.ts +37 -0
  35. package/dist/browser/daemon/supervisor.js +777 -0
  36. package/dist/browser/daemon/supervisor.js.map +1 -0
  37. package/dist/{capture/launch.d.ts → browser/flags.d.ts} +19 -1
  38. package/dist/browser/flags.js +146 -0
  39. package/dist/browser/flags.js.map +1 -0
  40. package/dist/browser/index.d.ts +14 -0
  41. package/dist/browser/index.js +14 -0
  42. package/dist/browser/index.js.map +1 -0
  43. package/dist/browser/install.d.ts +33 -0
  44. package/dist/browser/install.js +167 -0
  45. package/dist/browser/install.js.map +1 -0
  46. package/dist/browser/launch.d.ts +37 -0
  47. package/dist/browser/launch.js +254 -0
  48. package/dist/browser/launch.js.map +1 -0
  49. package/dist/browser/page.d.ts +125 -0
  50. package/dist/browser/page.js +564 -0
  51. package/dist/browser/page.js.map +1 -0
  52. package/dist/browser/pins.d.ts +12 -0
  53. package/dist/browser/pins.js +57 -0
  54. package/dist/browser/pins.js.map +1 -0
  55. package/dist/browser/private-dir.d.ts +7 -0
  56. package/dist/browser/private-dir.js +24 -0
  57. package/dist/browser/private-dir.js.map +1 -0
  58. package/dist/browser/resolve.d.ts +31 -0
  59. package/dist/browser/resolve.js +126 -0
  60. package/dist/browser/resolve.js.map +1 -0
  61. package/dist/browser/selectors.d.ts +10 -0
  62. package/dist/browser/selectors.js +60 -0
  63. package/dist/browser/selectors.js.map +1 -0
  64. package/dist/browser/transport.d.ts +51 -0
  65. package/dist/browser/transport.js +124 -0
  66. package/dist/browser/transport.js.map +1 -0
  67. package/dist/browser/types.d.ts +4 -0
  68. package/dist/browser/types.js +2 -0
  69. package/dist/browser/types.js.map +1 -0
  70. package/dist/browser/zip.d.ts +27 -0
  71. package/dist/browser/zip.js +241 -0
  72. package/dist/browser/zip.js.map +1 -0
  73. package/dist/capture/capture.d.ts +7 -1
  74. package/dist/capture/capture.js +25 -8
  75. package/dist/capture/capture.js.map +1 -1
  76. package/dist/capture/env.d.ts +1 -1
  77. package/dist/capture/pool.d.ts +1 -1
  78. package/dist/capture/pool.js +41 -8
  79. package/dist/capture/pool.js.map +1 -1
  80. package/dist/capture/settle.d.ts +1 -1
  81. package/dist/capture/settle.js +2 -0
  82. package/dist/capture/settle.js.map +1 -1
  83. package/dist/capture/snap.d.ts +43 -0
  84. package/dist/capture/snap.js +103 -0
  85. package/dist/capture/snap.js.map +1 -0
  86. package/dist/capture/structure.d.ts +77 -0
  87. package/dist/capture/structure.js +498 -0
  88. package/dist/capture/structure.js.map +1 -0
  89. package/dist/diff/compare.d.ts +19 -0
  90. package/dist/diff/compare.js +19 -0
  91. package/dist/diff/compare.js.map +1 -0
  92. package/dist/diff/crops.d.ts +26 -0
  93. package/dist/diff/crops.js +92 -0
  94. package/dist/diff/crops.js.map +1 -0
  95. package/dist/diff/structural/classify.d.ts +29 -0
  96. package/dist/diff/structural/classify.js +113 -0
  97. package/dist/diff/structural/classify.js.map +1 -0
  98. package/dist/diff/structural/coverage.d.ts +11 -0
  99. package/dist/diff/structural/coverage.js +37 -0
  100. package/dist/diff/structural/coverage.js.map +1 -0
  101. package/dist/diff/structural/deltas.d.ts +29 -0
  102. package/dist/diff/structural/deltas.js +218 -0
  103. package/dist/diff/structural/deltas.js.map +1 -0
  104. package/dist/diff/structural/disambiguate.d.ts +3 -0
  105. package/dist/diff/structural/disambiguate.js +89 -0
  106. package/dist/diff/structural/disambiguate.js.map +1 -0
  107. package/dist/diff/structural/label.d.ts +15 -0
  108. package/dist/diff/structural/label.js +64 -0
  109. package/dist/diff/structural/label.js.map +1 -0
  110. package/dist/diff/structural/match.d.ts +13 -0
  111. package/dist/diff/structural/match.js +135 -0
  112. package/dist/diff/structural/match.js.map +1 -0
  113. package/dist/diff/structural/shift.d.ts +2 -0
  114. package/dist/diff/structural/shift.js +144 -0
  115. package/dist/diff/structural/shift.js.map +1 -0
  116. package/dist/diff/structural/summary.d.ts +31 -0
  117. package/dist/diff/structural/summary.js +420 -0
  118. package/dist/diff/structural/summary.js.map +1 -0
  119. package/dist/diff/structural.d.ts +40 -0
  120. package/dist/diff/structural.js +219 -0
  121. package/dist/diff/structural.js.map +1 -0
  122. package/dist/index.d.ts +28 -4
  123. package/dist/index.js +32 -3
  124. package/dist/index.js.map +1 -1
  125. package/dist/platform.d.ts +1 -1
  126. package/dist/platforms/urls.d.ts +3 -0
  127. package/dist/platforms/urls.js +89 -0
  128. package/dist/platforms/urls.js.map +1 -0
  129. package/dist/report/comment.js +9 -3
  130. package/dist/report/comment.js.map +1 -1
  131. package/dist/report/format.d.ts +18 -0
  132. package/dist/report/format.js +20 -0
  133. package/dist/report/format.js.map +1 -1
  134. package/dist/report/html.js +2 -2
  135. package/dist/report/html.js.map +1 -1
  136. package/dist/run/groups.d.ts +2 -0
  137. package/dist/run/groups.js +45 -0
  138. package/dist/run/groups.js.map +1 -0
  139. package/dist/run/run.d.ts +6 -2
  140. package/dist/run/run.js +74 -6
  141. package/dist/run/run.js.map +1 -1
  142. package/dist/shell-quote.d.ts +2 -0
  143. package/dist/shell-quote.js +10 -0
  144. package/dist/shell-quote.js.map +1 -0
  145. package/dist/types.d.ts +201 -5
  146. package/dist/types.js +0 -2
  147. package/dist/types.js.map +1 -1
  148. package/dist/url-platform.d.ts +2 -2
  149. package/dist/url-platform.js +2 -2
  150. package/dist/url-platform.js.map +1 -1
  151. package/package.json +6 -10
  152. package/dist/capture/launch.js +0 -56
  153. package/dist/capture/launch.js.map +0 -1
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@juxtapose/core",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "type": "module",
5
5
  "description": "Platform-agnostic capture, diff, baseline and analysis core for juxtapose.",
6
6
  "keywords": [
7
7
  "visual-regression",
8
8
  "screenshot-testing",
9
- "playwright",
9
+ "cdp",
10
10
  "visual-testing",
11
11
  "pixelmatch"
12
12
  ],
@@ -15,10 +15,14 @@
15
15
  "access": "public"
16
16
  },
17
17
  "license": "MIT",
18
+ "engines": {
19
+ "node": ">=22.2.0"
20
+ },
18
21
  "main": "./dist/index.js",
19
22
  "types": "./dist/index.d.ts",
20
23
  "exports": {
21
24
  ".": "./dist/index.js",
25
+ "./browser": "./dist/browser/index.js",
22
26
  "./format": "./dist/report/format.js",
23
27
  "./package.json": "./package.json"
24
28
  },
@@ -29,14 +33,6 @@
29
33
  "pixelmatch": "^6.0.0",
30
34
  "sharp": "^0.35.3"
31
35
  },
32
- "peerDependencies": {
33
- "playwright": "^1.48.0"
34
- },
35
- "peerDependenciesMeta": {
36
- "playwright": {
37
- "optional": true
38
- }
39
- },
40
36
  "devDependencies": {
41
37
  "@types/pixelmatch": "^5.2.6"
42
38
  },
@@ -1,56 +0,0 @@
1
- // Browser launch flags for reproducible rasterization.
2
- //
3
- // These matter more here than in most Playwright setups. Pass/fail is a
4
- // byte-exact hash, so a single pixel of GPU rasterization jitter on one
5
- // antialiased corner is a failed build — not a 0.002% mismatch someone can
6
- // wave through.
7
- //
8
- // Measured on a card component with rounded corners: without these flags,
9
- // repeated captures of an unchanged story differed by ~12 pixels out of
10
- // 480,000, each off by exactly 1 in one channel. Invisible to a human, fatal
11
- // to a hash.
12
- /**
13
- * Chromium flags that make rasterization reproducible across runs.
14
- *
15
- * Each is here for a reason; none are cargo-culted:
16
- *
17
- * - `--disable-gpu`, `--disable-gpu-rasterization`, `--disable-skia-runtime-opts`
18
- * force CPU rasterization down a fixed code path. GPU rasterization is the
19
- * direct cause of the off-by-one antialiasing jitter above, and Skia's
20
- * runtime CPU-feature detection can pick different SIMD paths on different
21
- * machines.
22
- *
23
- * - `--force-color-profile=srgb`, `--disable-lcd-text`, `--disable-font-subpixel-positioning`
24
- * pin colour management and text rendering. Subpixel positioning and LCD
25
- * antialiasing make glyph edges depend on display configuration, which is
26
- * exactly the kind of environment coupling that makes a baseline captured on
27
- * one machine fail on another.
28
- *
29
- * - `--hide-scrollbars` keeps a scrollbar's presence from shifting layout by a
30
- * few pixels depending on content height.
31
- *
32
- * - `--disable-background-timer-throttling` and friends stop Chromium from
33
- * throttling a backgrounded renderer, which otherwise makes settle timing
34
- * depend on whether the window happens to be focused.
35
- */
36
- export const DETERMINISTIC_CHROMIUM_ARGS = [
37
- '--disable-gpu',
38
- '--disable-gpu-rasterization',
39
- '--disable-skia-runtime-opts',
40
- '--disable-lcd-text',
41
- '--disable-font-subpixel-positioning',
42
- '--force-color-profile=srgb',
43
- '--hide-scrollbars',
44
- '--disable-background-timer-throttling',
45
- '--disable-backgrounding-occluded-windows',
46
- '--disable-renderer-backgrounding',
47
- '--force-device-scale-factor=1',
48
- ];
49
- /** Build the Playwright launch options for a reproducible capture browser. */
50
- export function deterministicLaunchOptions(opts = {}) {
51
- return {
52
- headless: opts.headless ?? true,
53
- args: [...DETERMINISTIC_CHROMIUM_ARGS, ...(opts.args ?? [])],
54
- };
55
- }
56
- //# sourceMappingURL=launch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/capture/launch.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,EAAE;AACF,wEAAwE;AACxE,wEAAwE;AACxE,2EAA2E;AAC3E,gBAAgB;AAChB,EAAE;AACF,0EAA0E;AAC1E,wEAAwE;AACxE,6EAA6E;AAC7E,aAAa;AAEb;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAsB;IAC5D,eAAe;IACf,6BAA6B;IAC7B,6BAA6B;IAC7B,oBAAoB;IACpB,qCAAqC;IACrC,4BAA4B;IAC5B,mBAAmB;IACnB,uCAAuC;IACvC,0CAA0C;IAC1C,kCAAkC;IAClC,+BAA+B;CAChC,CAAC;AAQF,8EAA8E;AAC9E,MAAM,UAAU,0BAA0B,CAAC,OAAsB,EAAE;IAIjE,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;QAC/B,IAAI,EAAE,CAAC,GAAG,2BAA2B,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;KAC7D,CAAC;AACJ,CAAC"}