@oidoid/void 0.1.0-7 → 0.1.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 (408) hide show
  1. package/dist/public/index.js +19 -15
  2. package/dist/public/index.js.map +4 -4
  3. package/dist/public/preload-atlas.webp +0 -0
  4. package/dist/public/void-v0.1.0+20251227.1060661.html +115 -0
  5. package/dist/schema/config-file.v0.json +86 -15
  6. package/dist/schema/level-file.v0.json +423 -0
  7. package/dist/src/audio.d.ts +1 -0
  8. package/dist/src/audio.d.ts.map +1 -0
  9. package/dist/src/demo/assets/manifest.json +2 -2
  10. package/dist/src/demo/assets/void.game.json +202 -0
  11. package/dist/src/demo/ents/cam.d.ts +6 -0
  12. package/dist/src/demo/ents/cam.d.ts.map +1 -0
  13. package/dist/src/demo/ents/cam.js +21 -0
  14. package/dist/src/demo/ents/cam.js.map +1 -0
  15. package/dist/src/demo/ents/clock.d.ts +10 -0
  16. package/dist/src/demo/ents/clock.d.ts.map +1 -0
  17. package/dist/src/demo/ents/clock.js +16 -0
  18. package/dist/src/demo/ents/clock.js.map +1 -0
  19. package/dist/src/demo/ents/draw.d.ts +6 -0
  20. package/dist/src/demo/ents/draw.d.ts.map +1 -0
  21. package/dist/src/demo/ents/draw.js +14 -0
  22. package/dist/src/demo/ents/draw.js.map +1 -0
  23. package/dist/src/demo/ents/ent.d.ts +6 -0
  24. package/dist/src/demo/ents/ent.d.ts.map +1 -0
  25. package/dist/src/demo/ents/ent.js +2 -0
  26. package/dist/src/demo/ents/ent.js.map +1 -0
  27. package/dist/src/demo/ents/loader.d.ts +6 -0
  28. package/dist/src/demo/ents/loader.d.ts.map +1 -0
  29. package/dist/src/demo/ents/loader.js +45 -0
  30. package/dist/src/demo/ents/loader.js.map +1 -0
  31. package/dist/src/demo/ents/render-toggle.d.ts +7 -0
  32. package/dist/src/demo/ents/render-toggle.d.ts.map +1 -0
  33. package/dist/src/demo/ents/render-toggle.js +8 -0
  34. package/dist/src/demo/ents/render-toggle.js.map +1 -0
  35. package/dist/src/demo/ents/tally.d.ts +8 -0
  36. package/dist/src/demo/ents/tally.d.ts.map +1 -0
  37. package/dist/src/demo/ents/tally.js +14 -0
  38. package/dist/src/demo/ents/tally.js.map +1 -0
  39. package/dist/src/demo/index.d.ts +1 -0
  40. package/dist/src/demo/index.d.ts.map +1 -0
  41. package/dist/src/demo/index.js +12 -3
  42. package/dist/src/demo/index.js.map +1 -1
  43. package/dist/src/demo/level/level-file.json +50 -0
  44. package/dist/src/demo/level/level-parser.d.ts +5 -0
  45. package/dist/src/demo/level/level-parser.d.ts.map +1 -0
  46. package/dist/src/demo/level/level-parser.js +21 -0
  47. package/dist/src/demo/level/level-parser.js.map +1 -0
  48. package/dist/src/demo/level/level-schema.d.ts +4 -0
  49. package/dist/src/demo/level/level-schema.d.ts.map +1 -0
  50. package/dist/src/demo/level/level-schema.js +2 -0
  51. package/dist/src/demo/level/level-schema.js.map +1 -0
  52. package/dist/src/demo/types/decl.d.ts +30 -0
  53. package/dist/src/demo/types/decl.d.ts.map +1 -0
  54. package/dist/src/demo/types/decl.js +2 -0
  55. package/dist/src/demo/types/decl.js.map +1 -0
  56. package/dist/src/demo/void.json +8 -4
  57. package/dist/src/ents/button.d.ts +14 -0
  58. package/dist/src/ents/button.d.ts.map +1 -0
  59. package/dist/src/ents/button.js +59 -0
  60. package/dist/src/ents/button.js.map +1 -0
  61. package/dist/src/ents/cam.d.ts +3 -0
  62. package/dist/src/ents/cam.d.ts.map +1 -0
  63. package/dist/src/ents/cam.js +2 -0
  64. package/dist/src/ents/cam.js.map +1 -0
  65. package/dist/src/ents/cursor.d.ts +20 -0
  66. package/dist/src/ents/cursor.d.ts.map +1 -0
  67. package/dist/src/ents/cursor.js +49 -0
  68. package/dist/src/ents/cursor.js.map +1 -0
  69. package/dist/src/ents/debug-input.d.ts +8 -0
  70. package/dist/src/ents/debug-input.d.ts.map +1 -0
  71. package/dist/src/ents/debug-input.js +25 -0
  72. package/dist/src/ents/debug-input.js.map +1 -0
  73. package/dist/src/ents/draw.d.ts +3 -0
  74. package/dist/src/ents/draw.d.ts.map +1 -0
  75. package/dist/src/ents/draw.js +2 -0
  76. package/dist/src/ents/draw.js.map +1 -0
  77. package/dist/src/ents/ent-query.d.ts +26 -0
  78. package/dist/src/ents/ent-query.d.ts.map +1 -0
  79. package/dist/src/ents/ent-query.js +10 -0
  80. package/dist/src/ents/ent-query.js.map +1 -0
  81. package/dist/src/ents/ent.d.ts +92 -6
  82. package/dist/src/ents/ent.d.ts.map +1 -0
  83. package/dist/src/ents/fps.d.ts +7 -0
  84. package/dist/src/ents/fps.d.ts.map +1 -0
  85. package/dist/src/ents/fps.js +14 -0
  86. package/dist/src/ents/fps.js.map +1 -0
  87. package/dist/src/ents/hud.d.ts +14 -0
  88. package/dist/src/ents/hud.d.ts.map +1 -0
  89. package/dist/src/ents/hud.js +38 -0
  90. package/dist/src/ents/hud.js.map +1 -0
  91. package/dist/src/ents/loader.d.ts +3 -0
  92. package/dist/src/ents/loader.d.ts.map +1 -0
  93. package/dist/src/ents/loader.js +2 -0
  94. package/dist/src/ents/loader.js.map +1 -0
  95. package/dist/src/ents/nine-patch.d.ts +17 -0
  96. package/dist/src/ents/nine-patch.d.ts.map +1 -0
  97. package/dist/src/ents/nine-patch.js +99 -0
  98. package/dist/src/ents/nine-patch.js.map +1 -0
  99. package/dist/src/ents/override.d.ts +8 -0
  100. package/dist/src/ents/override.d.ts.map +1 -0
  101. package/dist/src/ents/override.js +8 -0
  102. package/dist/src/ents/override.js.map +1 -0
  103. package/dist/src/ents/sprite.d.ts +8 -0
  104. package/dist/src/ents/sprite.d.ts.map +1 -0
  105. package/dist/src/ents/sprite.js +10 -0
  106. package/dist/src/ents/sprite.js.map +1 -0
  107. package/dist/src/ents/sys.d.ts +14 -0
  108. package/dist/src/ents/sys.d.ts.map +1 -0
  109. package/dist/src/ents/sys.js +2 -0
  110. package/dist/src/ents/sys.js.map +1 -0
  111. package/dist/src/ents/text.d.ts +21 -0
  112. package/dist/src/ents/text.d.ts.map +1 -0
  113. package/dist/src/ents/text.js +118 -0
  114. package/dist/src/ents/text.js.map +1 -0
  115. package/dist/src/ents/zoo.d.ts +18 -11
  116. package/dist/src/ents/zoo.d.ts.map +1 -0
  117. package/dist/src/ents/zoo.js +75 -15
  118. package/dist/src/ents/zoo.js.map +1 -1
  119. package/dist/src/graphics/atlas-parser.d.ts +3 -1
  120. package/dist/src/graphics/atlas-parser.d.ts.map +1 -0
  121. package/dist/src/graphics/atlas-parser.js.map +1 -1
  122. package/dist/src/graphics/atlas.d.ts +9 -15
  123. package/dist/src/graphics/atlas.d.ts.map +1 -0
  124. package/dist/src/graphics/cam.d.ts +13 -10
  125. package/dist/src/graphics/cam.d.ts.map +1 -0
  126. package/dist/src/graphics/cam.js +23 -17
  127. package/dist/src/graphics/cam.js.map +1 -1
  128. package/dist/src/graphics/gl.d.ts +1 -8
  129. package/dist/src/graphics/gl.d.ts.map +1 -0
  130. package/dist/src/graphics/gl.js +0 -1
  131. package/dist/src/graphics/gl.js.map +1 -1
  132. package/dist/src/graphics/layer.d.ts +21 -17
  133. package/dist/src/graphics/layer.d.ts.map +1 -0
  134. package/dist/src/graphics/layer.js +23 -18
  135. package/dist/src/graphics/layer.js.map +1 -1
  136. package/dist/src/graphics/pixel-ratio-observer.d.ts +8 -0
  137. package/dist/src/graphics/pixel-ratio-observer.d.ts.map +1 -0
  138. package/dist/src/graphics/pixel-ratio-observer.js +23 -0
  139. package/dist/src/graphics/pixel-ratio-observer.js.map +1 -0
  140. package/dist/src/graphics/render-mode.d.ts +2 -0
  141. package/dist/src/graphics/render-mode.d.ts.map +1 -0
  142. package/dist/src/graphics/render-mode.js +2 -0
  143. package/dist/src/graphics/render-mode.js.map +1 -0
  144. package/dist/src/graphics/renderer.d.ts +9 -4
  145. package/dist/src/graphics/renderer.d.ts.map +1 -0
  146. package/dist/src/graphics/renderer.js +30 -13
  147. package/dist/src/graphics/renderer.js.map +1 -1
  148. package/dist/src/graphics/sprite-frag.glsl.d.ts +1 -0
  149. package/dist/src/graphics/sprite-frag.glsl.d.ts.map +1 -0
  150. package/dist/src/graphics/sprite-frag.glsl.js +3 -4
  151. package/dist/src/graphics/sprite-frag.glsl.js.map +1 -1
  152. package/dist/src/graphics/sprite-vert.glsl.d.ts +1 -0
  153. package/dist/src/graphics/sprite-vert.glsl.d.ts.map +1 -0
  154. package/dist/src/graphics/sprite-vert.glsl.js +9 -7
  155. package/dist/src/graphics/sprite-vert.glsl.js.map +1 -1
  156. package/dist/src/graphics/sprite.d.ts +54 -16
  157. package/dist/src/graphics/sprite.d.ts.map +1 -0
  158. package/dist/src/graphics/sprite.js +109 -32
  159. package/dist/src/graphics/sprite.js.map +1 -1
  160. package/dist/src/index.d.ts +31 -6
  161. package/dist/src/index.d.ts.map +1 -0
  162. package/dist/src/index.js +33 -9
  163. package/dist/src/index.js.map +1 -1
  164. package/dist/src/input/context-menu.d.ts +1 -1
  165. package/dist/src/input/context-menu.d.ts.map +1 -0
  166. package/dist/src/input/context-menu.js +0 -1
  167. package/dist/src/input/context-menu.js.map +1 -1
  168. package/dist/src/input/gamepad.d.ts +1 -1
  169. package/dist/src/input/gamepad.d.ts.map +1 -0
  170. package/dist/src/input/gamepad.js +0 -1
  171. package/dist/src/input/gamepad.js.map +1 -1
  172. package/dist/src/input/input.d.ts +30 -23
  173. package/dist/src/input/input.d.ts.map +1 -0
  174. package/dist/src/input/input.js +53 -31
  175. package/dist/src/input/input.js.map +1 -1
  176. package/dist/src/input/keyboard.d.ts +1 -0
  177. package/dist/src/input/keyboard.d.ts.map +1 -0
  178. package/dist/src/input/pointer.d.ts +1 -0
  179. package/dist/src/input/pointer.d.ts.map +1 -0
  180. package/dist/src/input/pointer.js +11 -8
  181. package/dist/src/input/pointer.js.map +1 -1
  182. package/dist/src/input/wheel.d.ts +6 -1
  183. package/dist/src/input/wheel.d.ts.map +1 -0
  184. package/dist/src/input/wheel.js +5 -1
  185. package/dist/src/input/wheel.js.map +1 -1
  186. package/dist/src/level/level-parser.d.ts +26 -0
  187. package/dist/src/level/level-parser.d.ts.map +1 -0
  188. package/dist/src/level/level-parser.js +258 -0
  189. package/dist/src/level/level-parser.js.map +1 -0
  190. package/dist/src/level/level-schema-json.d.ts +5 -0
  191. package/dist/src/level/level-schema-json.d.ts.map +1 -0
  192. package/dist/src/level/level-schema-json.js +2 -0
  193. package/dist/src/level/level-schema-json.js.map +1 -0
  194. package/dist/src/level/level-schema.d.ts +87 -0
  195. package/dist/src/level/level-schema.d.ts.map +1 -0
  196. package/dist/src/level/level-schema.js +2 -0
  197. package/dist/src/level/level-schema.js.map +1 -0
  198. package/dist/src/level/level.d.ts +8 -0
  199. package/dist/src/level/level.d.ts.map +1 -0
  200. package/dist/src/level/level.js +2 -0
  201. package/dist/src/level/level.js.map +1 -0
  202. package/dist/src/looper.d.ts +1 -0
  203. package/dist/src/looper.d.ts.map +1 -0
  204. package/dist/src/looper.js +5 -2
  205. package/dist/src/looper.js.map +1 -1
  206. package/dist/src/mem/pool-map.d.ts +6 -0
  207. package/dist/src/mem/pool-map.d.ts.map +1 -0
  208. package/dist/src/mem/pool-map.js +2 -0
  209. package/dist/src/mem/pool-map.js.map +1 -0
  210. package/dist/src/mem/pool.d.ts +5 -1
  211. package/dist/src/mem/pool.d.ts.map +1 -0
  212. package/dist/src/mem/pool.js +22 -21
  213. package/dist/src/mem/pool.js.map +1 -1
  214. package/dist/src/mem/sprite-pool.d.ts +12 -0
  215. package/dist/src/mem/sprite-pool.d.ts.map +1 -0
  216. package/dist/src/mem/sprite-pool.js +11 -0
  217. package/dist/src/mem/sprite-pool.js.map +1 -0
  218. package/dist/src/random/random.d.ts +1 -0
  219. package/dist/src/random/random.d.ts.map +1 -0
  220. package/dist/src/storage/local-storage.d.ts +2 -1
  221. package/dist/src/storage/local-storage.d.ts.map +1 -0
  222. package/dist/src/storage/local-storage.js.map +1 -1
  223. package/dist/src/text/font.d.ts +5 -3
  224. package/dist/src/text/font.d.ts.map +1 -0
  225. package/dist/src/text/font.js +8 -5
  226. package/dist/src/text/font.js.map +1 -1
  227. package/dist/src/text/mem-prop-5x6.json +20 -5
  228. package/dist/src/text/text-layout.d.ts +16 -5
  229. package/dist/src/text/text-layout.d.ts.map +1 -0
  230. package/dist/src/text/text-layout.js +46 -28
  231. package/dist/src/text/text-layout.js.map +1 -1
  232. package/dist/src/types/bundle.d.ts +10 -0
  233. package/dist/src/types/bundle.d.ts.map +1 -0
  234. package/dist/src/types/bundle.js +2 -0
  235. package/dist/src/types/bundle.js.map +1 -0
  236. package/dist/src/types/game-config.d.ts +27 -0
  237. package/dist/src/types/game-config.d.ts.map +1 -0
  238. package/dist/src/types/game-config.js +2 -0
  239. package/dist/src/types/game-config.js.map +1 -0
  240. package/dist/src/types/geo.d.ts +9 -2
  241. package/dist/src/types/geo.d.ts.map +1 -0
  242. package/dist/src/types/geo.js +16 -0
  243. package/dist/src/types/geo.js.map +1 -1
  244. package/dist/src/types/json.d.ts +1 -0
  245. package/dist/src/types/json.d.ts.map +1 -0
  246. package/dist/src/types/time.d.ts +13 -2
  247. package/dist/src/types/time.d.ts.map +1 -0
  248. package/dist/src/types/time.js +10 -0
  249. package/dist/src/types/time.js.map +1 -1
  250. package/dist/src/utils/async-util.d.ts +1 -0
  251. package/dist/src/utils/async-util.d.ts.map +1 -0
  252. package/dist/src/utils/async-util.js +2 -0
  253. package/dist/src/utils/async-util.js.map +1 -1
  254. package/dist/src/utils/canvas-util.d.ts +3 -1
  255. package/dist/src/utils/canvas-util.d.ts.map +1 -0
  256. package/dist/src/utils/canvas-util.js +7 -3
  257. package/dist/src/utils/canvas-util.js.map +1 -1
  258. package/dist/src/utils/color-util.d.ts +6 -0
  259. package/dist/src/utils/color-util.d.ts.map +1 -0
  260. package/dist/src/utils/color-util.js +12 -0
  261. package/dist/src/utils/color-util.js.map +1 -1
  262. package/dist/src/utils/debug.d.ts +1 -0
  263. package/dist/src/utils/debug.d.ts.map +1 -0
  264. package/dist/src/utils/debug.js +4 -4
  265. package/dist/src/utils/debug.js.map +1 -1
  266. package/dist/src/utils/delay-interval.d.ts +1 -0
  267. package/dist/src/utils/delay-interval.d.ts.map +1 -0
  268. package/dist/src/utils/dom-util.d.ts +3 -2
  269. package/dist/src/utils/dom-util.d.ts.map +1 -0
  270. package/dist/src/utils/dom-util.js +16 -12
  271. package/dist/src/utils/dom-util.js.map +1 -1
  272. package/dist/src/utils/fetch-util.d.ts +2 -1
  273. package/dist/src/utils/fetch-util.d.ts.map +1 -0
  274. package/dist/src/utils/fetch-util.js +2 -2
  275. package/dist/src/utils/math.d.ts +1 -0
  276. package/dist/src/utils/math.d.ts.map +1 -0
  277. package/dist/src/utils/math.js +1 -1
  278. package/dist/src/utils/math.js.map +1 -1
  279. package/dist/src/utils/obj-util.d.ts +7 -0
  280. package/dist/src/utils/obj-util.d.ts.map +1 -0
  281. package/dist/src/utils/obj-util.js +8 -0
  282. package/dist/src/utils/obj-util.js.map +1 -0
  283. package/dist/src/utils/str-util.d.ts +2 -0
  284. package/dist/src/utils/str-util.d.ts.map +1 -0
  285. package/dist/src/utils/str-util.js +6 -0
  286. package/dist/src/utils/str-util.js.map +1 -0
  287. package/dist/src/utils/vibrate.d.ts +1 -0
  288. package/dist/src/utils/vibrate.d.ts.map +1 -0
  289. package/dist/src/void.d.ts +42 -30
  290. package/dist/src/void.d.ts.map +1 -0
  291. package/dist/src/void.js +78 -34
  292. package/dist/src/void.js.map +1 -1
  293. package/dist/tools/atlas-pack/aseprite-json.d.ts +5 -0
  294. package/dist/tools/atlas-pack/aseprite-json.d.ts.map +1 -0
  295. package/dist/tools/atlas-pack/aseprite-json.js +2 -0
  296. package/dist/tools/atlas-pack/aseprite-json.js.map +1 -0
  297. package/dist/tools/atlas-pack/aseprite.d.ts +58 -31
  298. package/dist/tools/atlas-pack/aseprite.d.ts.map +1 -0
  299. package/dist/tools/atlas-pack/aseprite.js +1 -1
  300. package/dist/tools/atlas-pack/aseprite.js.map +1 -1
  301. package/dist/tools/atlas-pack/atlas-json-parser.d.ts +11 -10
  302. package/dist/tools/atlas-pack/atlas-json-parser.d.ts.map +1 -0
  303. package/dist/tools/atlas-pack/atlas-json-parser.js +14 -14
  304. package/dist/tools/atlas-pack/atlas-json-parser.js.map +1 -1
  305. package/dist/tools/atlas-pack/atlas-pack.d.ts +4 -2
  306. package/dist/tools/atlas-pack/atlas-pack.d.ts.map +1 -0
  307. package/dist/tools/atlas-pack/atlas-pack.js +1 -6
  308. package/dist/tools/atlas-pack/atlas-pack.js.map +1 -1
  309. package/dist/tools/bundle/bundle.d.ts +3 -3
  310. package/dist/tools/bundle/bundle.d.ts.map +1 -0
  311. package/dist/tools/bundle/bundle.js +32 -7
  312. package/dist/tools/bundle/bundle.js.map +1 -1
  313. package/dist/tools/bundle/html-plugin.d.ts +1 -0
  314. package/dist/tools/bundle/html-plugin.d.ts.map +1 -0
  315. package/dist/tools/bundle/html-plugin.js +5 -20
  316. package/dist/tools/bundle/html-plugin.js.map +1 -1
  317. package/dist/tools/tsconfig-base.json +1 -1
  318. package/dist/tools/tsconfig.json +1 -2
  319. package/dist/{schema → tools/types}/config-file.d.ts +21 -9
  320. package/dist/tools/types/config-file.d.ts.map +1 -0
  321. package/dist/{schema → tools/types}/config-file.js +18 -5
  322. package/dist/tools/types/config-file.js.map +1 -0
  323. package/dist/tools/types/config.d.ts +10 -9
  324. package/dist/tools/types/config.d.ts.map +1 -0
  325. package/dist/tools/types/config.js +23 -5
  326. package/dist/tools/types/config.js.map +1 -1
  327. package/dist/tools/types/package-json.d.ts +3 -2
  328. package/dist/tools/types/package-json.d.ts.map +1 -0
  329. package/dist/tools/utils/argv.d.ts +3 -0
  330. package/dist/tools/utils/argv.d.ts.map +1 -0
  331. package/dist/tools/utils/argv.js +1 -1
  332. package/dist/tools/utils/argv.js.map +1 -1
  333. package/dist/tools/utils/exec.d.ts +2 -1
  334. package/dist/tools/utils/exec.d.ts.map +1 -0
  335. package/dist/tools/utils/exec.js.map +1 -1
  336. package/dist/tools/utils/file-util.d.ts +1 -0
  337. package/dist/tools/utils/file-util.d.ts.map +1 -0
  338. package/dist/tools/utils/html-parser.d.ts +1 -0
  339. package/dist/tools/utils/html-parser.d.ts.map +1 -0
  340. package/dist/tools/void.d.ts +1 -0
  341. package/dist/tools/void.d.ts.map +1 -0
  342. package/dist/tools/void.js +3 -16
  343. package/dist/tools/void.js.map +1 -1
  344. package/package.json +18 -20
  345. package/readme.md +63 -1
  346. package/dist/meta.json +0 -1
  347. package/dist/package.json +0 -66
  348. package/dist/public/favicon/favicon16.png +0 -0
  349. package/dist/public/favicon/favicon192.png +0 -0
  350. package/dist/public/favicon/favicon32.png +0 -0
  351. package/dist/public/favicon/favicon48.png +0 -0
  352. package/dist/public/favicon/favicon64.png +0 -0
  353. package/dist/public/preload-atlas.png +0 -0
  354. package/dist/public/void-v0.1.0-6+20251020.7cdf98d.html +0 -111
  355. package/dist/public/void-v0.1.0-6+20251020.e4e9eef.html +0 -111
  356. package/dist/public/void-v0.1.0-7+20251021.7cdf98d.html +0 -111
  357. package/dist/schema/config-file.js.map +0 -1
  358. package/dist/src/demo/assets/preload-atlas.json +0 -193
  359. package/dist/src/demo/ents/clock-ent.d.ts +0 -11
  360. package/dist/src/demo/ents/clock-ent.js +0 -26
  361. package/dist/src/demo/ents/clock-ent.js.map +0 -1
  362. package/dist/src/demo/ents/render-toggle-ent.d.ts +0 -12
  363. package/dist/src/demo/ents/render-toggle-ent.js +0 -41
  364. package/dist/src/demo/ents/render-toggle-ent.js.map +0 -1
  365. package/dist/src/demo/ents/work-counter-ent.d.ts +0 -10
  366. package/dist/src/demo/ents/work-counter-ent.js +0 -20
  367. package/dist/src/demo/ents/work-counter-ent.js.map +0 -1
  368. package/dist/src/demo/game.d.ts +0 -12
  369. package/dist/src/demo/game.js +0 -135
  370. package/dist/src/demo/game.js.map +0 -1
  371. package/dist/src/demo/types/tag.d.ts +0 -2
  372. package/dist/src/demo/types/tag.js +0 -2
  373. package/dist/src/demo/types/tag.js.map +0 -1
  374. package/dist/src/ents/button-ent.d.ts +0 -39
  375. package/dist/src/ents/button-ent.js +0 -128
  376. package/dist/src/ents/button-ent.js.map +0 -1
  377. package/dist/src/ents/cursor-ent.d.ts +0 -18
  378. package/dist/src/ents/cursor-ent.js +0 -63
  379. package/dist/src/ents/cursor-ent.js.map +0 -1
  380. package/dist/src/ents/follow-cam-ent.d.ts +0 -25
  381. package/dist/src/ents/follow-cam-ent.js +0 -87
  382. package/dist/src/ents/follow-cam-ent.js.map +0 -1
  383. package/dist/src/ents/nine-patch-ent.d.ts +0 -43
  384. package/dist/src/ents/nine-patch-ent.js +0 -143
  385. package/dist/src/ents/nine-patch-ent.js.map +0 -1
  386. package/dist/src/ents/text-ent.d.ts +0 -23
  387. package/dist/src/ents/text-ent.js +0 -109
  388. package/dist/src/ents/text-ent.js.map +0 -1
  389. package/dist/src/types/void-version.d.ts +0 -7
  390. package/dist/src/types/void-version.js +0 -2
  391. package/dist/src/types/void-version.js.map +0 -1
  392. package/schema/config-file.test.ts +0 -55
  393. package/schema/config-file.ts +0 -69
  394. package/schema/config-file.v0.json +0 -68
  395. package/tools/atlas-pack/aseprite.ts +0 -60
  396. package/tools/atlas-pack/atlas-json-parser.test.ts +0 -780
  397. package/tools/atlas-pack/atlas-json-parser.ts +0 -159
  398. package/tools/atlas-pack/atlas-pack.ts +0 -51
  399. package/tools/bundle/bundle.ts +0 -64
  400. package/tools/bundle/html-plugin.ts +0 -135
  401. package/tools/types/config.ts +0 -65
  402. package/tools/types/package-json.ts +0 -4
  403. package/tools/utils/argv.test.ts +0 -41
  404. package/tools/utils/argv.ts +0 -29
  405. package/tools/utils/exec.ts +0 -22
  406. package/tools/utils/file-util.ts +0 -11
  407. package/tools/utils/html-parser.ts +0 -9
  408. package/tools/void.ts +0 -55
@@ -1,143 +0,0 @@
1
- import { whEq, xyEq } from "../types/geo.js";
2
- export class NinePatchEnt {
3
- #dir;
4
- #margin;
5
- #invalid = true;
6
- constructor(v, opts) {
7
- this.#dir = {
8
- w: v.sprites.alloc(),
9
- nw: v.sprites.alloc(),
10
- n: v.sprites.alloc(),
11
- ne: v.sprites.alloc(),
12
- e: v.sprites.alloc(),
13
- se: v.sprites.alloc(),
14
- s: v.sprites.alloc(),
15
- sw: v.sprites.alloc(),
16
- origin: v.sprites.alloc()
17
- };
18
- this.#dir.w.tag = opts.w?.tag ?? opts.e?.tag ?? opts.n.tag;
19
- this.#dir.n.tag = opts.n.tag;
20
- this.#dir.e.tag = opts.e?.tag ?? this.#dir.w.tag;
21
- this.#dir.s.tag = opts.s?.tag ?? this.#dir.n.tag;
22
- this.#dir.nw.tag = opts.nw?.tag ?? opts.se?.tag ?? opts.n.tag;
23
- this.#dir.ne.tag =
24
- opts.ne?.tag ?? opts.sw?.tag ?? opts.nw?.tag ?? opts.n.tag;
25
- this.#dir.se.tag = opts.se?.tag ?? this.#dir.nw.tag;
26
- this.#dir.sw.tag = opts.sw?.tag ?? this.#dir.ne.tag;
27
- this.#dir.origin.tag = opts.origin.tag;
28
- this.#dir.w.z =
29
- this.#dir.nw.z =
30
- this.#dir.n.z =
31
- this.#dir.ne.z =
32
- this.#dir.e.z =
33
- this.#dir.se.z =
34
- this.#dir.s.z =
35
- this.#dir.sw.z =
36
- this.#dir.origin.z =
37
- opts.z ?? 0;
38
- this.#dir.w.stretch = opts.w?.stretch ?? opts.e?.stretch ?? false;
39
- this.#dir.n.stretch = opts.n.stretch ?? opts.s?.stretch ?? false;
40
- this.#dir.e.stretch = opts.e?.stretch ?? this.#dir.w.stretch;
41
- this.#dir.s.stretch = opts.s?.stretch ?? this.#dir.n.stretch;
42
- this.#dir.nw.stretch = opts.nw?.stretch ?? opts.se?.stretch ?? false;
43
- this.#dir.ne.stretch = opts.ne?.stretch ?? opts.sw?.stretch ?? false;
44
- this.#dir.se.stretch = opts.se?.stretch ?? this.#dir.nw.stretch;
45
- this.#dir.sw.stretch = opts.sw?.stretch ?? this.#dir.ne.stretch;
46
- this.#dir.origin.stretch = opts.origin.stretch ?? false;
47
- this.#dir.w.flipX = opts.w?.flip?.x ?? !opts.e?.flip?.x;
48
- this.#dir.w.flipY = opts.w?.flip?.y ?? !!opts.e?.flip?.y;
49
- this.#dir.n.flipX = opts.n.flip?.x ?? !!opts.s?.flip?.x;
50
- this.#dir.n.flipY = opts.n.flip?.y ?? !opts.s?.flip?.y;
51
- this.#dir.e.flipX = opts.e?.flip?.x ?? !this.#dir.w.flipX;
52
- this.#dir.e.flipY = opts.e?.flip?.y ?? this.#dir.w.flipY;
53
- this.#dir.s.flipX = opts.s?.flip?.x ?? this.#dir.n.flipX;
54
- this.#dir.s.flipY = opts.s?.flip?.y ?? !this.#dir.n.flipY;
55
- this.#dir.origin.flipX = !!opts.origin.flip?.x;
56
- this.#dir.origin.flipY = !!opts.origin.flip?.y;
57
- this.#dir.n.h = opts.border?.n ?? opts.border?.s ?? this.#dir.n.h;
58
- this.#dir.w.w = opts.border?.w ?? opts.border?.e ?? this.#dir.n.h;
59
- this.#dir.e.w = opts.border?.e ?? this.#dir.w.w;
60
- this.#dir.s.h = opts.border?.s ?? this.#dir.n.h;
61
- this.#dir.nw.w = this.#dir.w.w;
62
- this.#dir.nw.h = this.#dir.n.h;
63
- this.#dir.ne.w = this.#dir.e.w;
64
- this.#dir.ne.h = this.#dir.n.h;
65
- this.#dir.se.w = this.#dir.e.w;
66
- this.#dir.se.h = this.#dir.s.h;
67
- this.#dir.sw.w = this.#dir.w.w;
68
- this.#dir.sw.h = this.#dir.s.h;
69
- this.#margin = { w: opts.margin?.w ?? 0, h: opts.margin?.h ?? 0 };
70
- const w = opts.wh?.w == null
71
- ? this.#dir.w.w + this.#dir.n.w + this.#dir.e.w
72
- : opts.wh.w;
73
- this.#dir.n.w = w - 1; // force resize
74
- this.wh = {
75
- w,
76
- h: opts.wh?.h == null
77
- ? this.#dir.n.h + this.#dir.e.h + this.#dir.s.h
78
- : opts.wh.h
79
- };
80
- this.#dir.nw.x = (opts.x ?? 0) - 1; // force move.
81
- this.xy = { x: opts.x ?? 0, y: opts.y ?? 0 };
82
- }
83
- free(v) {
84
- v.sprites.free(this.#dir.w, this.#dir.nw, this.#dir.n, this.#dir.ne, this.#dir.e, this.#dir.se, this.#dir.s, this.#dir.sw, this.#dir.origin);
85
- }
86
- update() {
87
- if (!this.#invalid)
88
- return;
89
- this.#invalid = false;
90
- return true;
91
- }
92
- get wh() {
93
- return {
94
- w: this.#dir.w.w + this.#dir.n.w + this.#dir.e.w + this.#margin.w,
95
- h: this.#dir.n.h + this.#dir.w.h + this.#dir.s.h + this.#margin.h
96
- };
97
- }
98
- set wh(wh) {
99
- if (whEq(wh, this.wh))
100
- return;
101
- this.#dir.w.h = wh.h - this.#dir.n.h - this.#dir.s.h - this.#margin.h;
102
- this.#dir.n.w = wh.w - this.#dir.w.w - this.#dir.e.w - this.#margin.w;
103
- this.#dir.s.w = this.#dir.n.w;
104
- this.#dir.e.h = this.#dir.w.h;
105
- this.#dir.origin.w = this.#dir.n.w;
106
- this.#dir.origin.h = this.#dir.e.h;
107
- this.#setXYRight();
108
- this.#invalid = true;
109
- }
110
- get xy() {
111
- return {
112
- x: this.#dir.nw.x - this.#margin.w / 2,
113
- y: this.#dir.nw.y - this.#margin.h / 2
114
- };
115
- }
116
- set xy(xy) {
117
- if (xyEq(xy, this.xy))
118
- return;
119
- this.#dir.nw.x = xy.x + this.#margin.w / 2;
120
- this.#dir.nw.y = xy.y + this.#margin.h / 2;
121
- this.#dir.w.x = this.#dir.nw.x;
122
- this.#dir.w.y = this.#dir.nw.y + this.#dir.nw.h;
123
- this.#dir.n.x = this.#dir.nw.x + this.#dir.nw.w;
124
- this.#dir.n.y = this.#dir.nw.y;
125
- this.#dir.origin.x = this.#dir.n.x;
126
- this.#dir.origin.y = this.#dir.nw.y + this.#dir.ne.h;
127
- this.#setXYRight();
128
- this.#invalid = true;
129
- }
130
- #setXYRight() {
131
- this.#dir.ne.x = this.#dir.n.x + this.#dir.n.w;
132
- this.#dir.ne.y = this.#dir.nw.y;
133
- this.#dir.e.x = this.#dir.ne.x;
134
- this.#dir.e.y = this.#dir.nw.y + this.#dir.ne.h;
135
- this.#dir.se.x = this.#dir.e.x;
136
- this.#dir.se.y = this.#dir.e.y + this.#dir.e.h;
137
- this.#dir.s.x = this.#dir.n.x;
138
- this.#dir.s.y = this.#dir.se.y;
139
- this.#dir.sw.x = this.#dir.nw.x;
140
- this.#dir.sw.y = this.#dir.se.y;
141
- }
142
- }
143
- //# sourceMappingURL=nine-patch-ent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nine-patch-ent.js","sourceRoot":"","sources":["../../../src/ents/nine-patch-ent.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import type { TagFormat } from '../graphics/atlas.ts';
2
- import { Layer } from '../graphics/layer.ts';
3
- import { type WH, type XY } from '../types/geo.ts';
4
- import type { Void } from '../void.ts';
5
- import type { Ent } from './ent.ts';
6
- export declare class TextEnt implements Ent<TagFormat> {
7
- #private;
8
- free(v: Void<TagFormat, string>): void;
9
- layout(v: Void<TagFormat, string>): boolean;
10
- get maxW(): number;
11
- set maxW(w: number);
12
- get scale(): number;
13
- set scale(scale: number);
14
- get text(): string;
15
- set text(str: string);
16
- update(v: Void<TagFormat, string>): boolean | undefined;
17
- get scaledLeading(): number;
18
- get wh(): Readonly<WH>;
19
- get xy(): Readonly<XY>;
20
- set xy(xy: Readonly<XY>);
21
- get z(): Layer;
22
- set z(layer: Layer);
23
- }
@@ -1,109 +0,0 @@
1
- import { memProp5x6 } from 'mem-font';
2
- import { Layer } from "../graphics/layer.js";
3
- import { fontCharToTag } from "../text/font.js";
4
- import { layoutText } from "../text/text-layout.js";
5
- import { xyEq } from "../types/geo.js";
6
- export class TextEnt {
7
- #maxW = Infinity;
8
- #layout = 'Outdated';
9
- #z = Layer.UIA;
10
- #scale = 1;
11
- #sprites = [];
12
- #str = '';
13
- #wh = { w: 0, h: 0 };
14
- #xy = { x: 0, y: 0 };
15
- free(v) {
16
- v.sprites.free(...this.#sprites);
17
- }
18
- layout(v) {
19
- if (this.#layout !== 'Outdated')
20
- return false;
21
- let len = 0;
22
- const layout = layoutText({
23
- font: memProp5x6,
24
- maxW: this.#maxW,
25
- scale: this.#scale,
26
- start: this.#xy,
27
- str: this.#str
28
- });
29
- this.#wh = { w: layout.wh.w, h: layout.wh.h };
30
- for (const [i, char] of layout.chars.entries()) {
31
- if (char == null)
32
- continue;
33
- const sprite = (this.#sprites[len] ??= v.sprites.alloc());
34
- sprite.x = char.x;
35
- sprite.y = char.y;
36
- sprite.tag = fontCharToTag(memProp5x6, this.#str[i]);
37
- sprite.stretch = true;
38
- sprite.w *= this.#scale;
39
- sprite.h *= this.#scale;
40
- sprite.z = this.#z;
41
- len++;
42
- }
43
- while (this.#sprites.length > len)
44
- v.sprites.free(this.#sprites.pop());
45
- this.#layout = 'Updated';
46
- return true;
47
- }
48
- get maxW() {
49
- return this.#maxW;
50
- }
51
- set maxW(w) {
52
- if (w === this.#maxW)
53
- return;
54
- this.#maxW = w;
55
- this.#layout = 'Outdated';
56
- }
57
- get scale() {
58
- return this.#scale;
59
- }
60
- set scale(scale) {
61
- if (scale === this.#scale)
62
- return;
63
- this.#scale = scale;
64
- this.#layout = 'Outdated';
65
- }
66
- get text() {
67
- return this.#str;
68
- }
69
- set text(str) {
70
- if (str === this.#str)
71
- return;
72
- this.#str = str;
73
- this.#layout = 'Outdated';
74
- }
75
- update(v) {
76
- if (this.#layout === 'Rendered')
77
- return;
78
- if (this.#layout === 'Outdated')
79
- this.layout(v);
80
- this.#layout = 'Rendered';
81
- return true;
82
- }
83
- get scaledLeading() {
84
- return memProp5x6.leading * this.#scale;
85
- }
86
- get wh() {
87
- return this.#wh;
88
- }
89
- get xy() {
90
- return this.#xy;
91
- }
92
- set xy(xy) {
93
- if (xyEq(xy, this.#xy))
94
- return;
95
- this.#xy.x = xy.x;
96
- this.#xy.y = xy.y;
97
- this.#layout = 'Outdated';
98
- }
99
- get z() {
100
- return this.#z;
101
- }
102
- set z(layer) {
103
- if (layer === this.#z)
104
- return;
105
- this.#z = layer;
106
- this.#layout = 'Outdated';
107
- }
108
- }
109
- //# sourceMappingURL=text-ent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text-ent.js","sourceRoot":"","sources":["../../../src/ents/text-ent.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- export type VoidVersion = {
2
- /** package.json `published` YYYYMMDD. */
3
- published: string;
4
- /** package.json semantic `version`. */
5
- version: string;
6
- };
7
- export declare const voidVersion: VoidVersion;
@@ -1,2 +0,0 @@
1
- export const voidVersion = globalThis.voidVersion;
2
- //# sourceMappingURL=void-version.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"void-version.js","sourceRoot":"","sources":["../../../src/types/void-version.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,WAAW,GAAgB,UAAU,CAAC,WAAW,CAAA"}
@@ -1,55 +0,0 @@
1
- import assert from 'node:assert/strict'
2
- import {test} from 'node:test'
3
- import {type ConfigFile, type ConfigFileSchema, parse} from './config-file.ts'
4
-
5
- test('defaults', () => {
6
- const config: ConfigFileSchema = {}
7
- assert.deepEqual<ConfigFile>(
8
- parse('dirname/filename', JSON.stringify(config)),
9
- {
10
- $schema:
11
- 'https://raw.githubusercontent.com/oidoid/void/refs/heads/main/schema/config-file.v0.json',
12
- entry: 'dirname/src/assets/index.html',
13
- meta: 'dirname/dist/meta.json',
14
- out: {dir: 'dirname/dist/public/', name: undefined},
15
- preloadAtlas: undefined,
16
-
17
- dirname: 'dirname',
18
- filename: 'dirname/filename'
19
- }
20
- )
21
- })
22
-
23
- test('overrides', () => {
24
- const config: Required<ConfigFileSchema> = {
25
- $schema: '$schema',
26
- entry: 'entry',
27
- meta: 'meta',
28
- out: {dir: 'outDir', name: 'name'},
29
- preloadAtlas: {dir: 'dir/', image: 'image.webp', json: 'json.json'}
30
- }
31
- assert.deepEqual<ConfigFile>(
32
- parse('dirname/filename', JSON.stringify(config)),
33
- {
34
- $schema: '$schema',
35
- entry: 'dirname/entry',
36
- meta: 'dirname/meta',
37
- out: {dir: 'dirname/outDir', name: 'name'},
38
- preloadAtlas: {
39
- dir: 'dirname/dir/',
40
- image: 'dirname/image.webp',
41
- json: 'dirname/json.json'
42
- },
43
-
44
- dirname: 'dirname',
45
- filename: 'dirname/filename'
46
- }
47
- )
48
- })
49
-
50
- test('overrides', () => {
51
- assert.throws(
52
- () => parse('dirname/filename', ''),
53
- Error('config dirname/filename unparsable')
54
- )
55
- })
@@ -1,69 +0,0 @@
1
- import {readFile} from 'node:fs/promises'
2
- import path from 'node:path'
3
- import schema from './config-file.v0.json' with {type: 'json'}
4
-
5
- export type AtlasConfig = {dir: string; image: string; json: string}
6
-
7
- export type ConfigFile = {
8
- $schema: string
9
- entry: string
10
- meta: string | undefined
11
- out: {dir: string; name: string | undefined}
12
- preloadAtlas: AtlasConfig | undefined
13
-
14
- /** config directory name. */
15
- dirname: string
16
- /** config filename. */
17
- filename: string
18
- }
19
-
20
- export type ConfigFileSchema = {
21
- $schema?: string | undefined
22
- entry?: string | undefined
23
- meta?: string | undefined
24
- out?: {dir?: string | undefined; name?: string | undefined} | undefined
25
- preloadAtlas?: AtlasConfig | undefined
26
- }
27
-
28
- export async function parseConfigFile(filename: string): Promise<ConfigFile> {
29
- let str
30
- try {
31
- str = await readFile(filename, 'utf8')
32
- } catch (err) {
33
- throw Error(`config ${filename} unreadable`, {cause: err})
34
- }
35
-
36
- return parse(filename, str)
37
- }
38
-
39
- /** @internal */
40
- export function parse(filename: string, str: string): ConfigFile {
41
- const dirname = path.dirname(filename)
42
- let json: ConfigFileSchema
43
- try {
44
- json = JSON.parse(str)
45
- } catch (err) {
46
- throw Error(`config ${filename} unparsable`, {cause: err})
47
- }
48
-
49
- return {
50
- $schema: json.$schema ?? schema.properties.$schema.default,
51
- entry: path.join(dirname, json.entry ?? schema.properties.entry.default),
52
- meta: path.join(dirname, json.meta ?? schema.properties.meta.default),
53
- out: {
54
- dir: path.join(
55
- dirname,
56
- json.out?.dir ?? schema.properties.out.properties.dir.default
57
- ),
58
- name: json.out?.name
59
- },
60
- preloadAtlas: json.preloadAtlas && {
61
- dir: path.join(dirname, json.preloadAtlas.dir),
62
- image: path.join(dirname, json.preloadAtlas.image),
63
- json: path.join(dirname, json.preloadAtlas.json)
64
- },
65
-
66
- dirname,
67
- filename
68
- }
69
- }
@@ -1,68 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://raw.githubusercontent.com/oidoid/void/refs/heads/main/schema/config-file.v0.json",
4
- "title": "void Config File Schema",
5
- "type": "object",
6
- "description": "a JSON representation of a void config file.",
7
- "$defs": {
8
- "Atlas": {
9
- "type": "object",
10
- "description": "sprite sheet config.",
11
- "additionalProperties": false,
12
- "required": ["dir", "image", "json"],
13
- "properties": {
14
- "dir": {
15
- "type": "string",
16
- "description": "Aseprite asset root directory. all `**.aseprite` files are input.",
17
- "examples": ["src/assets/atlas/", "./"]
18
- },
19
- "image": {
20
- "type": "string",
21
- "description": "sprite sheet image output.",
22
- "examples": ["dist/public/atlas.webp", "atlas.png"]
23
- },
24
- "json": {
25
- "type": "string",
26
- "description": "sprite sheet JSON output.",
27
- "examples": ["src/assets/atlas.json", "atlas.json"]
28
- }
29
- }
30
- }
31
- },
32
- "additionalProperties": false,
33
- "properties": {
34
- "$schema": {
35
- "type": "string",
36
- "description": "the configuration schema URI.",
37
- "default": "https://raw.githubusercontent.com/oidoid/void/refs/heads/main/schema/config-file.v0.json"
38
- },
39
- "entry": {
40
- "type": "string",
41
- "default": "src/assets/index.html",
42
- "description": "HTML entrypoint input. the file should include a script tag sourcing the TypeScript / JavaScript entrypoint."
43
- },
44
- "meta": {
45
- "type": "string",
46
- "default": "dist/meta.json",
47
- "description": "esbuild bundle metadata file output."
48
- },
49
- "out": {
50
- "type": "object",
51
- "description": "output config.",
52
- "additionalProperties": false,
53
- "properties": {
54
- "dir": {
55
- "type": "string",
56
- "description": "HTML and JavaScript output directory.",
57
- "default": "dist/public/"
58
- },
59
- "name": {
60
- "type": "string",
61
- "description": "HTML output file stem when watch is disabled. defaults to entry.",
62
- "examples": ["index", "super-patience"]
63
- }
64
- }
65
- },
66
- "preloadAtlas": {"$ref": "#/$defs/Atlas"}
67
- }
68
- }
@@ -1,60 +0,0 @@
1
- import type {TagFormat} from '../../src/graphics/atlas.ts'
2
- import type {Box, WH} from '../../src/types/geo.ts'
3
-
4
- /** https://github.com/aseprite/aseprite/blob/master/docs/ase-file-specs.md */
5
- export type Aseprite = {meta: AsepriteMeta; frames: AsepriteFrameMap}
6
-
7
- export type AsepriteFrameMap = {[tag: AsepriteFrameTag]: AsepriteFrame}
8
-
9
- export type AsepriteMeta = {
10
- /** `--list-tags`. */
11
- frameTags: AsepriteTagSpan[]
12
- size: WH
13
- /** `--list-slices`. */
14
- slices: AsepriteSlice[]
15
- }
16
-
17
- /** `--filename-format='{title}--{tag}--{frame}'`. */
18
- export type AsepriteFrameTag = `${TagFormat}--${bigint}`
19
-
20
- export type AsepriteFrame = {
21
- /** positive animation length in milliseconds. */
22
- duration: number
23
- /** bounds including padding. */
24
- frame: Box
25
- /** WH without padding. */
26
- sourceSize: WH
27
- }
28
-
29
- export type AsepriteTagSpan = {
30
- direction: AsepriteDirection | string
31
- name: TagFormat | string
32
- from: number
33
- /** inclusive ending index, possibly equal to from. */
34
- to: number
35
- }
36
-
37
- export type AsepriteSlice = {
38
- /** '#ff0000ff' is hitbox, '#00ff00ff' is hurtbox, '#0000ffff is both. */
39
- color: string
40
- name: TagFormat | string
41
- keys: {bounds: Box}[]
42
- }
43
-
44
- export type AsepriteDirection =
45
- (typeof AsepriteDirection)[keyof typeof AsepriteDirection]
46
- export const AsepriteDirection = {
47
- /** animate from start to end; when looping, return to start. */
48
- Forward: 'forward',
49
- /** animate from end to start; when looping, return to end. */
50
- Reverse: 'reverse',
51
- /**
52
- * animate from start to end - 1 or start, whichever is greater; when
53
- * looping, change direction (initially, end to start + 1 or end, whichever
54
- * is lesser. a traversal from start to end - 1 then end to start + 1 is
55
- * considered a complete loop.
56
- */
57
- PingPong: 'pingpong',
58
- /** like pingpong but start from end - 1 or start, whichever is greater. */
59
- PingPongReverse: 'pingpong_reverse'
60
- } as const