@datamoc/mw_games 0.38.0 → 0.39.1

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 (90) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/api-surface.json +500 -2
  3. package/dist/assets/SvgParts.d.ts +31 -0
  4. package/dist/assets/SvgParts.d.ts.map +1 -0
  5. package/dist/assets/SvgParts.js +54 -0
  6. package/dist/assets/SvgParts.js.map +1 -0
  7. package/dist/assets/SvgSource.d.ts +3 -0
  8. package/dist/assets/SvgSource.d.ts.map +1 -0
  9. package/dist/assets/SvgSource.js +22 -0
  10. package/dist/assets/SvgSource.js.map +1 -0
  11. package/dist/assets/index.d.ts +2 -0
  12. package/dist/assets/index.d.ts.map +1 -1
  13. package/dist/assets/index.js +1 -0
  14. package/dist/assets/index.js.map +1 -1
  15. package/dist/assets/svg.d.ts.map +1 -1
  16. package/dist/assets/svg.js +9 -5
  17. package/dist/assets/svg.js.map +1 -1
  18. package/dist/mw_games.global.js +110 -110
  19. package/dist/mwl/presentation.d.ts.map +1 -1
  20. package/dist/mwl/presentation.js +25 -18
  21. package/dist/mwl/presentation.js.map +1 -1
  22. package/dist/physics/PhysicsWorld.d.ts +49 -17
  23. package/dist/physics/PhysicsWorld.d.ts.map +1 -1
  24. package/dist/physics/PhysicsWorld.js +297 -59
  25. package/dist/physics/PhysicsWorld.js.map +1 -1
  26. package/dist/physics/XpbdWorld.d.ts +1 -1
  27. package/dist/physics/XpbdWorld.js +1 -1
  28. package/dist/physics/cloth/index.d.ts +98 -0
  29. package/dist/physics/cloth/index.d.ts.map +1 -0
  30. package/dist/physics/cloth/index.js +207 -0
  31. package/dist/physics/cloth/index.js.map +1 -0
  32. package/dist/physics/index.d.ts +4 -0
  33. package/dist/physics/index.d.ts.map +1 -1
  34. package/dist/physics/index.js +2 -0
  35. package/dist/physics/index.js.map +1 -1
  36. package/dist/physics/spring/index.d.ts +90 -0
  37. package/dist/physics/spring/index.d.ts.map +1 -0
  38. package/dist/physics/spring/index.js +97 -0
  39. package/dist/physics/spring/index.js.map +1 -0
  40. package/dist/skeleton/index.d.ts +94 -13
  41. package/dist/skeleton/index.d.ts.map +1 -1
  42. package/dist/skeleton/index.js +192 -73
  43. package/dist/skeleton/index.js.map +1 -1
  44. package/dist/two-d/presentation/MwlPresentation.d.ts +12 -0
  45. package/dist/two-d/presentation/MwlPresentation.d.ts.map +1 -1
  46. package/dist/two-d/presentation/MwlPresentation.js +204 -153
  47. package/dist/two-d/presentation/MwlPresentation.js.map +1 -1
  48. package/dist/two-d/render/ClothSprite.d.ts +83 -0
  49. package/dist/two-d/render/ClothSprite.d.ts.map +1 -0
  50. package/dist/two-d/render/ClothSprite.js +105 -0
  51. package/dist/two-d/render/ClothSprite.js.map +1 -0
  52. package/dist/two-d/render/HazeLayer.d.ts +112 -0
  53. package/dist/two-d/render/HazeLayer.d.ts.map +1 -0
  54. package/dist/two-d/render/HazeLayer.js +185 -0
  55. package/dist/two-d/render/HazeLayer.js.map +1 -0
  56. package/dist/two-d/render/NeonGlow.d.ts +100 -0
  57. package/dist/two-d/render/NeonGlow.d.ts.map +1 -0
  58. package/dist/two-d/render/NeonGlow.js +183 -0
  59. package/dist/two-d/render/NeonGlow.js.map +1 -0
  60. package/dist/two-d/render/SkeletalSprite.d.ts +5 -2
  61. package/dist/two-d/render/SkeletalSprite.d.ts.map +1 -1
  62. package/dist/two-d/render/SkeletalSprite.js +27 -3
  63. package/dist/two-d/render/SkeletalSprite.js.map +1 -1
  64. package/dist/two-d/render/SpringSprite.d.ts +40 -0
  65. package/dist/two-d/render/SpringSprite.d.ts.map +1 -0
  66. package/dist/two-d/render/SpringSprite.js +39 -0
  67. package/dist/two-d/render/SpringSprite.js.map +1 -0
  68. package/dist/two-d/render/SpriteDeform.d.ts +156 -0
  69. package/dist/two-d/render/SpriteDeform.d.ts.map +1 -0
  70. package/dist/two-d/render/SpriteDeform.js +278 -0
  71. package/dist/two-d/render/SpriteDeform.js.map +1 -0
  72. package/dist/two-d/render/SvgSkeleton.d.ts +54 -0
  73. package/dist/two-d/render/SvgSkeleton.d.ts.map +1 -0
  74. package/dist/two-d/render/SvgSkeleton.js +112 -0
  75. package/dist/two-d/render/SvgSkeleton.js.map +1 -0
  76. package/dist/two-d/render/index.d.ts +12 -0
  77. package/dist/two-d/render/index.d.ts.map +1 -1
  78. package/dist/two-d/render/index.js +6 -0
  79. package/dist/two-d/render/index.js.map +1 -1
  80. package/dist/version.d.ts +1 -1
  81. package/dist/version.js +1 -1
  82. package/package.json +9 -7
  83. package/sbom.cdx.json +6 -58
  84. package/tools/asset-report.d.mts +37 -0
  85. package/tools/asset-report.mjs +157 -0
  86. package/tools/compile-resources.d.mts +2 -0
  87. package/tools/compile-resources.mjs +23 -2
  88. package/tools/emit-page.d.mts +2 -0
  89. package/tools/emit-page.mjs +11 -1
  90. package/tools/vite.mjs +4 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,61 @@ the public API may still change between minor versions.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.39.1] - 2026-10-15
11
+
12
+ Fixes the 0.39.0 publish gate on Linux: the WebP skip-shrink test asserted one
13
+ platform's encoder answer instead of the real guarantee, and failed where sharp
14
+ genuinely shrinks the noise fixture.
15
+
16
+ ### Fixed
17
+
18
+ - The WebP test embeds whichever encoding is smaller and asserts byte-exact output
19
+ with a lossless round-trip either way, instead of assuming the conversion always
20
+ loses on tiny noise.
21
+
22
+ ## [0.39.0] - 2026-10-15
23
+
24
+ The skeleton cluster (two-bone IK, joint limits, full clip channels, diagnostics, SVG
25
+ parts loading), the asset and deformation cluster (pinned deformation, SVG skeletons,
26
+ asset filtering and the embedded assets report), and the effects cluster (cloth, spring,
27
+ haze and neon glow, each with a stated frame budget and reduced-motion handling).
28
+ `PhysicsWorld` leaves `matter-js` behind for an in-repo solver, so the dependency is gone.
29
+
30
+ ### Added
31
+
32
+ - Pinned sprite deformation with atomic vertex batches and one GPU upload per batch, checked
33
+ against a local Pontifex bird with fixed attachments and unchanged UVs.
34
+ - `loadSvgSkeleton`: SVG limb extraction, authored/manifest pivots, rest-angle normalization
35
+ and automatic `SkeletalSprite` binding, including nested parts without duplicate drawing.
36
+ - `assetFiles` on `mwgPage`, `emitPage` and `compileResources`: exact embedding lists with
37
+ named failures for unknown entries and unchanged defaults when omitted.
38
+ - `mwg-assets` (`assetReport`): per-file raw/gzip/brotli weights with each share of
39
+ the compressed page, plus the embedded source inventory with byte-identical
40
+ duplicates grouped by hash.
41
+
42
+ - Two-bone skeleton IK with named unreachable-target failures, absolute local joint limits,
43
+ and translation/scale clip channels through `sampleTransformPose` and `advancePose`.
44
+ - Explicit `SkeletalSprite.setDiagnostics` overlay for bones, pivots, joints and tips.
45
+ - `loadSvgParts` / `releaseSvgParts`: named SVG group textures with resolution-aware caching,
46
+ compiled local-file asset support and a browser check against a local Pontifex vehicle.
47
+
48
+ - Pinned-point cloth (`Cloth` Verlet mesh plus textured `ClothSprite` on the 414 mesh
49
+ path) with gravity, wind, damping and a browser drape check; a damped 2D chase
50
+ `Spring` for secondary motion with a stated O(1) frame budget, plus a `SpringSprite`
51
+ debug line.
52
+ - `HazeLayer` (with `hazeField` / `paintHazePixels`): drifting atmospheric sheets on
53
+ stacked depth planes, checked in the browser over a painted harbour; `NeonGlow`
54
+ (with `glowFalloff` / `paintGlowPixels`): additive neon light with colour, radius,
55
+ intensity and flicker, checked in the browser over a dark lane of signs.
56
+
57
+ ### Removed
58
+
59
+ - The `matter-js` (and `@types/matter-js`) dependency: `PhysicsWorld` is recoded in TypeScript in this repo (semi-implicit Euler, impulse contacts, projected distance joints) with the same options, methods and signals. Bodies no longer spin: `angle` stays a display offset. The dropped `engine` field exposed the whole matter engine; nothing in this repo used it.
60
+ ### Fixed
61
+
62
+ - SVG group splitting retains group transforms, shared definitions and styles, and handles
63
+ nested self-closing groups. Skeleton creation reports cycles instead of overflowing the stack.
64
+
10
65
  ## [0.38.0] - 2026-10-14
11
66
 
12
67
  Optional MWL scene and UI composition with its bridge-editor example, the