@rasamjs/core 0.1.2 → 0.3.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 (240) hide show
  1. package/API.md +29 -9
  2. package/CHANGELOG.md +98 -1
  3. package/COMPONENTS.md +229 -0
  4. package/README.md +178 -25
  5. package/RELEASING.md +31 -21
  6. package/dist/advanced.d.ts +1 -1
  7. package/dist/advanced.d.ts.map +1 -1
  8. package/dist/catalog/fragment.d.ts +2 -2
  9. package/dist/catalog/fragment.d.ts.map +1 -1
  10. package/dist/catalog/fragment.js.map +1 -1
  11. package/dist/changes/derived.d.ts +10 -0
  12. package/dist/changes/derived.d.ts.map +1 -0
  13. package/dist/changes/derived.js +14 -0
  14. package/dist/changes/derived.js.map +1 -0
  15. package/dist/changes/restore.d.ts.map +1 -1
  16. package/dist/changes/restore.js +22 -4
  17. package/dist/changes/restore.js.map +1 -1
  18. package/dist/changes/service.d.ts +10 -2
  19. package/dist/changes/service.d.ts.map +1 -1
  20. package/dist/changes/service.js +45 -6
  21. package/dist/changes/service.js.map +1 -1
  22. package/dist/changes/types.d.ts +9 -0
  23. package/dist/changes/types.d.ts.map +1 -1
  24. package/dist/changes/types.js.map +1 -1
  25. package/dist/changes.d.ts +5 -3
  26. package/dist/changes.d.ts.map +1 -1
  27. package/dist/changes.js +103 -2
  28. package/dist/changes.js.map +1 -1
  29. package/dist/components/changes.d.ts +34 -0
  30. package/dist/components/changes.d.ts.map +1 -0
  31. package/dist/components/changes.js +119 -0
  32. package/dist/components/changes.js.map +1 -0
  33. package/dist/components/component.d.ts +62 -0
  34. package/dist/components/component.d.ts.map +1 -0
  35. package/dist/components/component.js +355 -0
  36. package/dist/components/component.js.map +1 -0
  37. package/dist/components/decorators.d.ts +7 -0
  38. package/dist/components/decorators.d.ts.map +1 -0
  39. package/dist/components/decorators.js +81 -0
  40. package/dist/components/decorators.js.map +1 -0
  41. package/dist/components/metadata.d.ts +10 -0
  42. package/dist/components/metadata.d.ts.map +1 -0
  43. package/dist/components/metadata.js +85 -0
  44. package/dist/components/metadata.js.map +1 -0
  45. package/dist/components/registry.d.ts +24 -0
  46. package/dist/components/registry.d.ts.map +1 -0
  47. package/dist/components/registry.js +78 -0
  48. package/dist/components/registry.js.map +1 -0
  49. package/dist/components/types.d.ts +54 -0
  50. package/dist/components/types.d.ts.map +1 -0
  51. package/dist/components/types.js +2 -0
  52. package/dist/components/types.js.map +1 -0
  53. package/dist/components/view.d.ts +9 -0
  54. package/dist/components/view.d.ts.map +1 -0
  55. package/dist/components/view.js +104 -0
  56. package/dist/components/view.js.map +1 -0
  57. package/dist/components.d.ts +6 -0
  58. package/dist/components.d.ts.map +1 -0
  59. package/dist/components.js +5 -0
  60. package/dist/components.js.map +1 -0
  61. package/dist/core/node.d.ts +7 -0
  62. package/dist/core/node.d.ts.map +1 -1
  63. package/dist/core/node.js +30 -0
  64. package/dist/core/node.js.map +1 -1
  65. package/dist/dom/images.d.ts.map +1 -1
  66. package/dist/dom/images.js +3 -1
  67. package/dist/dom/images.js.map +1 -1
  68. package/dist/elements/image.d.ts.map +1 -1
  69. package/dist/elements/image.js +4 -1
  70. package/dist/elements/image.js.map +1 -1
  71. package/dist/interchange/clone.d.ts.map +1 -1
  72. package/dist/interchange/clone.js +4 -3
  73. package/dist/interchange/clone.js.map +1 -1
  74. package/dist/interchange/dom.d.ts +3 -1
  75. package/dist/interchange/dom.d.ts.map +1 -1
  76. package/dist/interchange/dom.js +29 -5
  77. package/dist/interchange/dom.js.map +1 -1
  78. package/dist/interchange/markup.d.ts.map +1 -1
  79. package/dist/interchange/markup.js +71 -3
  80. package/dist/interchange/markup.js.map +1 -1
  81. package/dist/interchange/policy.d.ts.map +1 -1
  82. package/dist/interchange/policy.js +4 -0
  83. package/dist/interchange/policy.js.map +1 -1
  84. package/dist/interchange/reconstruct.d.ts.map +1 -1
  85. package/dist/interchange/reconstruct.js +16 -12
  86. package/dist/interchange/reconstruct.js.map +1 -1
  87. package/dist/interchange/references.d.ts.map +1 -1
  88. package/dist/interchange/references.js +10 -4
  89. package/dist/interchange/references.js.map +1 -1
  90. package/dist/interchange/types.d.ts +10 -1
  91. package/dist/interchange/types.d.ts.map +1 -1
  92. package/dist/mixins/parent-internals.d.ts +6 -0
  93. package/dist/mixins/parent-internals.d.ts.map +1 -1
  94. package/dist/mixins/parent-internals.js +34 -0
  95. package/dist/mixins/parent-internals.js.map +1 -1
  96. package/dist/mixins/parent.d.ts.map +1 -1
  97. package/dist/mixins/parent.js +6 -1
  98. package/dist/mixins/parent.js.map +1 -1
  99. package/dist/mixins/transformable.d.ts.map +1 -1
  100. package/dist/mixins/transformable.js +25 -27
  101. package/dist/mixins/transformable.js.map +1 -1
  102. package/dist/mixins/types.d.ts +2 -2
  103. package/dist/mixins/types.d.ts.map +1 -1
  104. package/dist/raster/frame.d.ts +12 -0
  105. package/dist/raster/frame.d.ts.map +1 -0
  106. package/dist/raster/frame.js +43 -0
  107. package/dist/raster/frame.js.map +1 -0
  108. package/dist/raster/images.d.ts +2 -0
  109. package/dist/raster/images.d.ts.map +1 -0
  110. package/dist/raster/images.js +60 -0
  111. package/dist/raster/images.js.map +1 -0
  112. package/dist/raster/render.d.ts +3 -0
  113. package/dist/raster/render.d.ts.map +1 -0
  114. package/dist/raster/render.js +40 -0
  115. package/dist/raster/render.js.map +1 -0
  116. package/dist/raster/types.d.ts +10 -0
  117. package/dist/raster/types.d.ts.map +1 -0
  118. package/dist/raster/types.js +2 -0
  119. package/dist/raster/types.js.map +1 -0
  120. package/dist/raster.d.ts +6 -0
  121. package/dist/raster.d.ts.map +1 -0
  122. package/dist/raster.js +10 -0
  123. package/dist/raster.js.map +1 -0
  124. package/dist/resources/references.d.ts +2 -0
  125. package/dist/resources/references.d.ts.map +1 -1
  126. package/dist/resources/references.js +3 -1
  127. package/dist/resources/references.js.map +1 -1
  128. package/dist/services/catalog.d.ts.map +1 -1
  129. package/dist/services/catalog.js +5 -3
  130. package/dist/services/catalog.js.map +1 -1
  131. package/dist/services/defs-manager.d.ts +2 -0
  132. package/dist/services/defs-manager.d.ts.map +1 -1
  133. package/dist/services/defs-manager.js +4 -0
  134. package/dist/services/defs-manager.js.map +1 -1
  135. package/dist/services/element-key.d.ts +4 -0
  136. package/dist/services/element-key.d.ts.map +1 -0
  137. package/dist/services/element-key.js +12 -0
  138. package/dist/services/element-key.js.map +1 -0
  139. package/dist/services/initialization.d.ts +7 -0
  140. package/dist/services/initialization.d.ts.map +1 -0
  141. package/dist/services/initialization.js +27 -0
  142. package/dist/services/initialization.js.map +1 -0
  143. package/dist/services/registry.d.ts +8 -0
  144. package/dist/services/registry.d.ts.map +1 -1
  145. package/dist/services/registry.js +45 -10
  146. package/dist/services/registry.js.map +1 -1
  147. package/dist/services/types.d.ts +17 -0
  148. package/dist/services/types.d.ts.map +1 -1
  149. package/dist/services/viewport.d.ts +2 -0
  150. package/dist/services/viewport.d.ts.map +1 -1
  151. package/dist/services/viewport.js +4 -3
  152. package/dist/services/viewport.js.map +1 -1
  153. package/dist/template/parts.d.ts +12 -6
  154. package/dist/template/parts.d.ts.map +1 -1
  155. package/dist/template/parts.js +36 -29
  156. package/dist/template/parts.js.map +1 -1
  157. package/dist/template/render.d.ts +6 -7
  158. package/dist/template/render.d.ts.map +1 -1
  159. package/dist/template/render.js +188 -44
  160. package/dist/template/render.js.map +1 -1
  161. package/dist/template/svg-tag.d.ts +5 -1
  162. package/dist/template/svg-tag.d.ts.map +1 -1
  163. package/dist/template/svg-tag.js.map +1 -1
  164. package/dist/text/content.d.ts +0 -2
  165. package/dist/text/content.d.ts.map +1 -1
  166. package/dist/text/content.js +4 -10
  167. package/dist/text/content.js.map +1 -1
  168. package/dist/text/internals.d.ts +1 -0
  169. package/dist/text/internals.d.ts.map +1 -1
  170. package/dist/text/policies.d.ts +7 -0
  171. package/dist/text/policies.d.ts.map +1 -0
  172. package/dist/text/policies.js +13 -0
  173. package/dist/text/policies.js.map +1 -0
  174. package/dist/types/common.d.ts +27 -0
  175. package/dist/types/common.d.ts.map +1 -1
  176. package/package.json +156 -143
  177. package/reports/adoption.json +20 -20
  178. package/reports/animation-benchmark.json +616 -616
  179. package/reports/benchmark.json +65 -65
  180. package/reports/components-benchmark-before.json +10 -0
  181. package/reports/components-benchmark.json +10 -0
  182. package/reports/creation.json +26 -26
  183. package/reports/interchange-benchmark.json +85 -85
  184. package/reports/public-api-contract.json +353 -23
  185. package/reports/public-api-review.md +23 -0
  186. package/reports/size-components.json +102 -0
  187. package/reports/size-parity.json +82 -34
  188. package/reports/size.json +6 -4
  189. package/reports/svgjs-comparison.json +3466 -3466
  190. package/reports/svgjs-comparison.md +19 -19
  191. package/reports/svgjs-parity-current.json +177 -60
  192. package/src/advanced.ts +1 -1
  193. package/src/catalog/fragment.ts +2 -2
  194. package/src/changes/derived.ts +19 -0
  195. package/src/changes/restore.ts +27 -4
  196. package/src/changes/service.ts +60 -11
  197. package/src/changes/types.ts +9 -0
  198. package/src/changes.ts +93 -4
  199. package/src/components/changes.ts +131 -0
  200. package/src/components/component.ts +401 -0
  201. package/src/components/decorators.ts +104 -0
  202. package/src/components/metadata.ts +111 -0
  203. package/src/components/registry.ts +79 -0
  204. package/src/components/types.ts +66 -0
  205. package/src/components/view.ts +123 -0
  206. package/src/components.ts +15 -0
  207. package/src/core/node.ts +32 -1
  208. package/src/dom/images.ts +2 -1
  209. package/src/elements/image.ts +4 -1
  210. package/src/interchange/clone.ts +4 -3
  211. package/src/interchange/dom.ts +34 -5
  212. package/src/interchange/markup.ts +77 -3
  213. package/src/interchange/policy.ts +6 -0
  214. package/src/interchange/reconstruct.ts +16 -12
  215. package/src/interchange/references.ts +12 -4
  216. package/src/interchange/types.ts +10 -1
  217. package/src/mixins/parent-internals.ts +37 -0
  218. package/src/mixins/parent.ts +13 -4
  219. package/src/mixins/transformable.ts +23 -25
  220. package/src/mixins/types.ts +2 -2
  221. package/src/raster/frame.ts +53 -0
  222. package/src/raster/images.ts +73 -0
  223. package/src/raster/render.ts +45 -0
  224. package/src/raster/types.ts +9 -0
  225. package/src/raster.ts +13 -0
  226. package/src/resources/references.ts +5 -1
  227. package/src/services/catalog.ts +5 -3
  228. package/src/services/defs-manager.ts +5 -0
  229. package/src/services/element-key.ts +14 -0
  230. package/src/services/initialization.ts +25 -0
  231. package/src/services/registry.ts +47 -10
  232. package/src/services/types.ts +21 -0
  233. package/src/services/viewport.ts +5 -4
  234. package/src/template/parts.ts +54 -39
  235. package/src/template/render.ts +211 -54
  236. package/src/template/svg-tag.ts +6 -1
  237. package/src/text/content.ts +4 -14
  238. package/src/text/internals.ts +1 -0
  239. package/src/text/policies.ts +18 -0
  240. package/src/types/common.ts +29 -0
package/package.json CHANGED
@@ -1,143 +1,156 @@
1
- {
2
- "name": "@rasamjs/core",
3
- "version": "0.1.2",
4
- "license": "MIT",
5
- "description": "A typed SVG drawing library with shapes, templates, transforms and pointer interaction.",
6
- "type": "module",
7
- "repository": {
8
- "type": "git",
9
- "url": "git+https://github.com/hdevlop/rasam.git",
10
- "directory": "packages/rasam"
11
- },
12
- "files": [
13
- "dist",
14
- "src",
15
- "API.md",
16
- "RELEASING.md",
17
- "reports/*.md",
18
- "reports/*.json",
19
- "!reports/release-readiness*",
20
- "CHANGELOG.md"
21
- ],
22
- "types": "./dist/index.d.ts",
23
- "exports": {
24
- "./query": {
25
- "rasam-source": "./src/query.ts",
26
- "types": "./dist/query.d.ts",
27
- "import": "./dist/query.js"
28
- },
29
- "./interchange": {
30
- "rasam-source": "./src/interchange.ts",
31
- "types": "./dist/interchange.d.ts",
32
- "import": "./dist/interchange.js"
33
- },
34
- "./catalog": {
35
- "rasam-source": "./src/catalog.ts",
36
- "types": "./dist/catalog.d.ts",
37
- "import": "./dist/catalog.js"
38
- },
39
- "./text": {
40
- "rasam-source": "./src/text.ts",
41
- "types": "./dist/text.d.ts",
42
- "import": "./dist/text.js"
43
- },
44
- "./media": {
45
- "rasam-source": "./src/media.ts",
46
- "types": "./dist/media.d.ts",
47
- "import": "./dist/media.js"
48
- },
49
- ".": {
50
- "rasam-source": "./src/index.ts",
51
- "types": "./dist/index.d.ts",
52
- "import": "./dist/index.js"
53
- },
54
- "./advanced": {
55
- "rasam-source": "./src/advanced.ts",
56
- "types": "./dist/advanced.d.ts",
57
- "import": "./dist/advanced.js"
58
- },
59
- "./tree": {
60
- "rasam-source": "./src/tree.ts",
61
- "types": "./dist/tree.d.ts",
62
- "import": "./dist/tree.js"
63
- },
64
- "./events": {
65
- "rasam-source": "./src/events.ts",
66
- "types": "./dist/events.d.ts",
67
- "import": "./dist/events.js"
68
- },
69
- "./resources": {
70
- "rasam-source": "./src/resources.ts",
71
- "types": "./dist/resources.d.ts",
72
- "import": "./dist/resources.js"
73
- },
74
- "./viewport": {
75
- "rasam-source": "./src/viewport.ts",
76
- "types": "./dist/viewport.d.ts",
77
- "import": "./dist/viewport.js"
78
- },
79
- "./masks": {
80
- "rasam-source": "./src/masks.ts",
81
- "types": "./dist/masks.d.ts",
82
- "import": "./dist/masks.js"
83
- },
84
- "./patterns": {
85
- "rasam-source": "./src/patterns.ts",
86
- "types": "./dist/patterns.d.ts",
87
- "import": "./dist/patterns.js"
88
- },
89
- "./animation": {
90
- "rasam-source": "./src/animation.ts",
91
- "types": "./dist/animation.d.ts",
92
- "import": "./dist/animation.js"
93
- },
94
- "./data": {
95
- "rasam-source": "./src/data.ts",
96
- "types": "./dist/data.d.ts",
97
- "import": "./dist/data.js"
98
- },
99
- "./changes": {
100
- "rasam-source": "./src/changes.ts",
101
- "types": "./dist/changes.d.ts",
102
- "import": "./dist/changes.js"
103
- }
104
- },
105
- "sideEffects": false,
106
- "scripts": {
107
- "bench:animation": "node scripts/benchmark-animation.mjs",
108
- "api:check": "node scripts/check-api.mjs",
109
- "api:update": "node scripts/check-api.mjs --update",
110
- "check:docs": "node scripts/check-docs.mjs",
111
- "release:check": "node scripts/check-release.mjs",
112
- "release:assess": "node scripts/check-release.mjs --assess",
113
- "typecheck": "tsc -p tsconfig.check.json",
114
- "build": "node scripts/build.mjs",
115
- "test": "vitest run",
116
- "test:browser": "playwright test",
117
- "dev": "vite --host 127.0.0.1",
118
- "check:consumer": "node scripts/check-consumer.mjs",
119
- "check:size": "node scripts/check-size.mjs",
120
- "bench": "node scripts/benchmark.mjs",
121
- "bench:create": "node scripts/benchmark-creation.mjs",
122
- "bench:adopt": "node scripts/benchmark-adoption.mjs",
123
- "bench:interchange": "node scripts/benchmark-interchange.mjs",
124
- "bench:svgjs": "node scripts/benchmark-svgjs.mjs",
125
- "parity:baseline": "node scripts/svgjs-baseline.mjs --output reports/svgjs-parity-current.json",
126
- "parity:coverage": "node scripts/svgjs-coverage.mjs",
127
- "parity:check": "node scripts/svgjs-coverage.mjs --check",
128
- "format": "prettier --write src tests scripts playground fixtures *.json *.ts *.md examples",
129
- "format:check": "prettier --check src tests scripts playground fixtures *.json *.ts *.md examples",
130
- "check:preview": "node scripts/preview.mjs"
131
- },
132
- "devDependencies": {
133
- "@playwright/test": "^1.64.1",
134
- "@svgdotjs/svg.js": "3.2.8",
135
- "@types/node": "^26.6.5",
136
- "esbuild": "^0.28.2",
137
- "happy-dom": "^21.0.4",
138
- "prettier": "^3.9.10",
139
- "typescript": "^7.0.2",
140
- "vite": "^8.3.5",
141
- "vitest": "^5.0.5"
142
- }
143
- }
1
+ {
2
+ "name": "@rasamjs/core",
3
+ "version": "0.3.0",
4
+ "license": "MIT",
5
+ "description": "A typed SVG drawing library with shapes, templates, transforms and pointer interaction.",
6
+ "type": "module",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/hdevlop/rasam.git",
10
+ "directory": "packages/rasam"
11
+ },
12
+ "files": [
13
+ "dist",
14
+ "src",
15
+ "API.md",
16
+ "COMPONENTS.md",
17
+ "RELEASING.md",
18
+ "reports/*.md",
19
+ "reports/*.json",
20
+ "!reports/release-readiness*",
21
+ "CHANGELOG.md"
22
+ ],
23
+ "types": "./dist/index.d.ts",
24
+ "exports": {
25
+ "./components": {
26
+ "rasam-source": "./src/components.ts",
27
+ "types": "./dist/components.d.ts",
28
+ "import": "./dist/components.js"
29
+ },
30
+ "./raster": {
31
+ "rasam-source": "./src/raster.ts",
32
+ "types": "./dist/raster.d.ts",
33
+ "import": "./dist/raster.js"
34
+ },
35
+ "./query": {
36
+ "rasam-source": "./src/query.ts",
37
+ "types": "./dist/query.d.ts",
38
+ "import": "./dist/query.js"
39
+ },
40
+ "./interchange": {
41
+ "rasam-source": "./src/interchange.ts",
42
+ "types": "./dist/interchange.d.ts",
43
+ "import": "./dist/interchange.js"
44
+ },
45
+ "./catalog": {
46
+ "rasam-source": "./src/catalog.ts",
47
+ "types": "./dist/catalog.d.ts",
48
+ "import": "./dist/catalog.js"
49
+ },
50
+ "./text": {
51
+ "rasam-source": "./src/text.ts",
52
+ "types": "./dist/text.d.ts",
53
+ "import": "./dist/text.js"
54
+ },
55
+ "./media": {
56
+ "rasam-source": "./src/media.ts",
57
+ "types": "./dist/media.d.ts",
58
+ "import": "./dist/media.js"
59
+ },
60
+ ".": {
61
+ "rasam-source": "./src/index.ts",
62
+ "types": "./dist/index.d.ts",
63
+ "import": "./dist/index.js"
64
+ },
65
+ "./advanced": {
66
+ "rasam-source": "./src/advanced.ts",
67
+ "types": "./dist/advanced.d.ts",
68
+ "import": "./dist/advanced.js"
69
+ },
70
+ "./tree": {
71
+ "rasam-source": "./src/tree.ts",
72
+ "types": "./dist/tree.d.ts",
73
+ "import": "./dist/tree.js"
74
+ },
75
+ "./events": {
76
+ "rasam-source": "./src/events.ts",
77
+ "types": "./dist/events.d.ts",
78
+ "import": "./dist/events.js"
79
+ },
80
+ "./resources": {
81
+ "rasam-source": "./src/resources.ts",
82
+ "types": "./dist/resources.d.ts",
83
+ "import": "./dist/resources.js"
84
+ },
85
+ "./viewport": {
86
+ "rasam-source": "./src/viewport.ts",
87
+ "types": "./dist/viewport.d.ts",
88
+ "import": "./dist/viewport.js"
89
+ },
90
+ "./masks": {
91
+ "rasam-source": "./src/masks.ts",
92
+ "types": "./dist/masks.d.ts",
93
+ "import": "./dist/masks.js"
94
+ },
95
+ "./patterns": {
96
+ "rasam-source": "./src/patterns.ts",
97
+ "types": "./dist/patterns.d.ts",
98
+ "import": "./dist/patterns.js"
99
+ },
100
+ "./animation": {
101
+ "rasam-source": "./src/animation.ts",
102
+ "types": "./dist/animation.d.ts",
103
+ "import": "./dist/animation.js"
104
+ },
105
+ "./data": {
106
+ "rasam-source": "./src/data.ts",
107
+ "types": "./dist/data.d.ts",
108
+ "import": "./dist/data.js"
109
+ },
110
+ "./changes": {
111
+ "rasam-source": "./src/changes.ts",
112
+ "types": "./dist/changes.d.ts",
113
+ "import": "./dist/changes.js"
114
+ }
115
+ },
116
+ "sideEffects": false,
117
+ "scripts": {
118
+ "bench:animation": "node scripts/benchmark-animation.mjs",
119
+ "bench:components": "node scripts/benchmark-components.mjs",
120
+ "api:check": "node scripts/check-api.mjs",
121
+ "api:update": "node scripts/check-api.mjs --update",
122
+ "check:docs": "node scripts/check-docs.mjs",
123
+ "release:check": "node scripts/check-release.mjs",
124
+ "release:assess": "node scripts/check-release.mjs --assess",
125
+ "typecheck": "tsc -p tsconfig.check.json",
126
+ "build": "node scripts/build.mjs",
127
+ "test": "vitest run",
128
+ "test:browser": "playwright test",
129
+ "dev": "vite --host 127.0.0.1",
130
+ "check:consumer": "node scripts/check-consumer.mjs",
131
+ "check:size": "node scripts/check-size.mjs",
132
+ "check:size:components": "node scripts/check-components-size.mjs",
133
+ "bench": "node scripts/benchmark.mjs",
134
+ "bench:create": "node scripts/benchmark-creation.mjs",
135
+ "bench:adopt": "node scripts/benchmark-adoption.mjs",
136
+ "bench:interchange": "node scripts/benchmark-interchange.mjs",
137
+ "bench:svgjs": "node scripts/benchmark-svgjs.mjs",
138
+ "parity:baseline": "node scripts/svgjs-baseline.mjs --output reports/svgjs-parity-current.json",
139
+ "parity:coverage": "node scripts/svgjs-coverage.mjs",
140
+ "parity:check": "node scripts/svgjs-coverage.mjs --check",
141
+ "format": "prettier --write src tests scripts playground fixtures *.json *.ts *.md examples",
142
+ "format:check": "prettier --check src tests scripts playground fixtures *.json *.ts *.md examples",
143
+ "check:preview": "node scripts/preview.mjs"
144
+ },
145
+ "devDependencies": {
146
+ "@playwright/test": "^1.64.1",
147
+ "@svgdotjs/svg.js": "3.2.8",
148
+ "@types/node": "^26.6.5",
149
+ "esbuild": "^0.28.2",
150
+ "happy-dom": "^21.0.4",
151
+ "prettier": "^3.9.10",
152
+ "typescript": "^7.0.2",
153
+ "vite": "^8.3.5",
154
+ "vitest": "^5.0.5"
155
+ }
156
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "fixture": "scripts/benchmark-adoption.mjs",
3
- "date": "2026-11-02T00:13:24.963Z",
3
+ "date": "2026-11-07T18:31:11.930Z",
4
4
  "node": "v24.21.0",
5
5
  "os": "win32 10.0.26200",
6
6
  "cpu": "Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz",
@@ -9,39 +9,39 @@
9
9
  "results": [
10
10
  {
11
11
  "count": 1000,
12
- "medianMs": 8.657000000000039,
12
+ "medianMs": 9.038999999999987,
13
13
  "samples": [
14
- 17.79939999999999,
15
- 7.675299999999993,
16
- 13.451800000000048,
17
- 7.052099999999996,
18
- 8.657000000000039
14
+ 13.795000000000073,
15
+ 8.669100000000071,
16
+ 7.492200000000025,
17
+ 9.038999999999987,
18
+ 9.710100000000011
19
19
  ]
20
20
  },
21
21
  {
22
22
  "count": 2000,
23
- "medianMs": 20.637500000000045,
23
+ "medianMs": 17.615999999999985,
24
24
  "samples": [
25
- 16.292400000000043,
26
- 30.816800000000057,
27
- 27.232400000000098,
28
- 14.126300000000128,
29
- 20.637500000000045
25
+ 11.926400000000058,
26
+ 17.722499999999968,
27
+ 17.615999999999985,
28
+ 18.942800000000034,
29
+ 11.66199999999992
30
30
  ]
31
31
  },
32
32
  {
33
33
  "count": 4000,
34
- "medianMs": 27.675399999999854,
34
+ "medianMs": 35.59010000000012,
35
35
  "samples": [
36
- 49.09529999999995,
37
- 24.15210000000002,
38
- 27.675399999999854,
39
- 27.978399999999965,
40
- 24.187200000000075
36
+ 23.020500000000084,
37
+ 35.731599999999844,
38
+ 35.490299999999934,
39
+ 35.59010000000012,
40
+ 40.76299999999992
41
41
  ]
42
42
  }
43
43
  ],
44
- "growth": 3.196881136652389,
44
+ "growth": 3.937393516981986,
45
45
  "maxGrowth": 8,
46
46
  "includes": "SVG(native) validation and wrapping; excludes DOM construction, paint and destruction"
47
47
  }