@datamoc/mw_games 0.7.7 → 0.7.9

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 (205) hide show
  1. package/CHANGELOG.md +183 -3
  2. package/README.md +28 -7
  3. package/dist/actors/Shop.d.ts.map +1 -1
  4. package/dist/actors/Shop.js +4 -1
  5. package/dist/actors/Shop.js.map +1 -1
  6. package/dist/ai/Heuristics.d.ts +8 -0
  7. package/dist/ai/Heuristics.d.ts.map +1 -1
  8. package/dist/ai/Heuristics.js.map +1 -1
  9. package/dist/ai/index.d.ts +2 -2
  10. package/dist/ai/index.d.ts.map +1 -1
  11. package/dist/ai/index.js +1 -1
  12. package/dist/ai/index.js.map +1 -1
  13. package/dist/ai/lua.d.ts +21 -0
  14. package/dist/ai/lua.d.ts.map +1 -1
  15. package/dist/ai/lua.js +21 -0
  16. package/dist/ai/lua.js.map +1 -1
  17. package/dist/ai/score.d.ts +36 -0
  18. package/dist/ai/score.d.ts.map +1 -1
  19. package/dist/ai/score.js +26 -0
  20. package/dist/ai/score.js.map +1 -1
  21. package/dist/assets/index.d.ts +1 -1
  22. package/dist/assets/index.d.ts.map +1 -1
  23. package/dist/assets/index.js +1 -1
  24. package/dist/assets/index.js.map +1 -1
  25. package/dist/assets/loader.d.ts.map +1 -1
  26. package/dist/assets/loader.js +10 -1
  27. package/dist/assets/loader.js.map +1 -1
  28. package/dist/assets/paths.d.ts +23 -0
  29. package/dist/assets/paths.d.ts.map +1 -1
  30. package/dist/assets/paths.js +29 -0
  31. package/dist/assets/paths.js.map +1 -1
  32. package/dist/battle/BattleStats.d.ts.map +1 -1
  33. package/dist/battle/BattleStats.js.map +1 -1
  34. package/dist/board/Classics.d.ts.map +1 -1
  35. package/dist/board/Classics.js +51 -39
  36. package/dist/board/Classics.js.map +1 -1
  37. package/dist/board/HexSkirmish.d.ts.map +1 -1
  38. package/dist/board/HexSkirmish.js +69 -20
  39. package/dist/board/HexSkirmish.js.map +1 -1
  40. package/dist/board/Tactics.d.ts +7 -0
  41. package/dist/board/Tactics.d.ts.map +1 -1
  42. package/dist/board/Tactics.js +2 -2
  43. package/dist/board/Tactics.js.map +1 -1
  44. package/dist/core/Achievements.d.ts.map +1 -1
  45. package/dist/core/Achievements.js +3 -1
  46. package/dist/core/Achievements.js.map +1 -1
  47. package/dist/core/Math.d.ts +14 -0
  48. package/dist/core/Math.d.ts.map +1 -0
  49. package/dist/core/Math.js +16 -0
  50. package/dist/core/Math.js.map +1 -0
  51. package/dist/core/index.d.ts +1 -0
  52. package/dist/core/index.d.ts.map +1 -1
  53. package/dist/core/index.js +1 -0
  54. package/dist/core/index.js.map +1 -1
  55. package/dist/mw_games.global.js +102 -102
  56. package/dist/mwl/actors.d.ts +46 -2
  57. package/dist/mwl/actors.d.ts.map +1 -1
  58. package/dist/mwl/actors.js +46 -2
  59. package/dist/mwl/actors.js.map +1 -1
  60. package/dist/mwl/carryover.d.ts +7 -0
  61. package/dist/mwl/carryover.d.ts.map +1 -1
  62. package/dist/mwl/carryover.js +7 -0
  63. package/dist/mwl/carryover.js.map +1 -1
  64. package/dist/mwl/catalog.d.ts +21 -1
  65. package/dist/mwl/catalog.d.ts.map +1 -1
  66. package/dist/mwl/catalog.js +0 -0
  67. package/dist/mwl/catalog.js.map +1 -1
  68. package/dist/mwl/compiler.d.ts +70 -3
  69. package/dist/mwl/compiler.d.ts.map +1 -1
  70. package/dist/mwl/compiler.js +70 -3
  71. package/dist/mwl/compiler.js.map +1 -1
  72. package/dist/mwl/conditions.d.ts +10 -1
  73. package/dist/mwl/conditions.d.ts.map +1 -1
  74. package/dist/mwl/conditions.js +10 -1
  75. package/dist/mwl/conditions.js.map +1 -1
  76. package/dist/mwl/content.d.ts +15 -0
  77. package/dist/mwl/content.d.ts.map +1 -1
  78. package/dist/mwl/content.js +13 -0
  79. package/dist/mwl/content.js.map +1 -1
  80. package/dist/mwl/expression.d.ts +21 -0
  81. package/dist/mwl/expression.d.ts.map +1 -1
  82. package/dist/mwl/expression.js +21 -0
  83. package/dist/mwl/expression.js.map +1 -1
  84. package/dist/mwl/fengari.d.ts +12 -1
  85. package/dist/mwl/fengari.d.ts.map +1 -1
  86. package/dist/mwl/fengari.js +12 -1
  87. package/dist/mwl/fengari.js.map +1 -1
  88. package/dist/mwl/grammar.d.ts +45 -1
  89. package/dist/mwl/grammar.d.ts.map +1 -1
  90. package/dist/mwl/grammar.js +45 -1
  91. package/dist/mwl/grammar.js.map +1 -1
  92. package/dist/mwl/hooks.d.ts +45 -1
  93. package/dist/mwl/hooks.d.ts.map +1 -1
  94. package/dist/mwl/hooks.js +45 -1
  95. package/dist/mwl/hooks.js.map +1 -1
  96. package/dist/mwl/index.d.ts +1 -1
  97. package/dist/mwl/index.d.ts.map +1 -1
  98. package/dist/mwl/index.js +1 -1
  99. package/dist/mwl/index.js.map +1 -1
  100. package/dist/mwl/persistence.d.ts +32 -0
  101. package/dist/mwl/persistence.d.ts.map +1 -1
  102. package/dist/mwl/persistence.js +32 -0
  103. package/dist/mwl/persistence.js.map +1 -1
  104. package/dist/mwl/readers.d.ts +24 -2
  105. package/dist/mwl/readers.d.ts.map +1 -1
  106. package/dist/mwl/readers.js +27 -4
  107. package/dist/mwl/readers.js.map +1 -1
  108. package/dist/mwl/report.d.ts +21 -2
  109. package/dist/mwl/report.d.ts.map +1 -1
  110. package/dist/mwl/report.js +21 -2
  111. package/dist/mwl/report.js.map +1 -1
  112. package/dist/mwl/runtime.d.ts +72 -0
  113. package/dist/mwl/runtime.d.ts.map +1 -1
  114. package/dist/mwl/runtime.js +274 -70
  115. package/dist/mwl/runtime.js.map +1 -1
  116. package/dist/mwl/schema.d.ts +57 -1
  117. package/dist/mwl/schema.d.ts.map +1 -1
  118. package/dist/mwl/schema.js +99 -9
  119. package/dist/mwl/schema.js.map +1 -1
  120. package/dist/mwl/scripts.d.ts +12 -1
  121. package/dist/mwl/scripts.d.ts.map +1 -1
  122. package/dist/mwl/scripts.js +12 -1
  123. package/dist/mwl/scripts.js.map +1 -1
  124. package/dist/mwl/utils.d.ts +2 -0
  125. package/dist/mwl/utils.d.ts.map +1 -1
  126. package/dist/mwl/utils.js +4 -1
  127. package/dist/mwl/utils.js.map +1 -1
  128. package/dist/rpg/Collision.d.ts.map +1 -1
  129. package/dist/rpg/Collision.js +1 -3
  130. package/dist/rpg/Collision.js.map +1 -1
  131. package/dist/rpg/GameState.d.ts +2 -2
  132. package/dist/rpg/GameState.js +2 -2
  133. package/dist/two-d/pixi-interop.d.ts +28 -10
  134. package/dist/two-d/pixi-interop.d.ts.map +1 -1
  135. package/dist/two-d/pixi-interop.js +36 -10
  136. package/dist/two-d/pixi-interop.js.map +1 -1
  137. package/dist/two-d/render/Camera.d.ts +11 -0
  138. package/dist/two-d/render/Camera.d.ts.map +1 -1
  139. package/dist/two-d/render/Camera.js +14 -3
  140. package/dist/two-d/render/Camera.js.map +1 -1
  141. package/dist/two-d/render/ColorTransformBatcher.d.ts +7 -1
  142. package/dist/two-d/render/ColorTransformBatcher.d.ts.map +1 -1
  143. package/dist/two-d/render/ColorTransformBatcher.js +10 -1
  144. package/dist/two-d/render/ColorTransformBatcher.js.map +1 -1
  145. package/dist/two-d/render/ImageModifiers.d.ts +40 -0
  146. package/dist/two-d/render/ImageModifiers.d.ts.map +1 -1
  147. package/dist/two-d/render/ImageModifiers.js +67 -4
  148. package/dist/two-d/render/ImageModifiers.js.map +1 -1
  149. package/dist/two-d/render/PaletteRemap.d.ts.map +1 -1
  150. package/dist/two-d/render/PaletteRemap.js +12 -1
  151. package/dist/two-d/render/PaletteRemap.js.map +1 -1
  152. package/dist/two-d/render/Projectile.d.ts +16 -0
  153. package/dist/two-d/render/Projectile.d.ts.map +1 -1
  154. package/dist/two-d/render/Projectile.js +14 -0
  155. package/dist/two-d/render/Projectile.js.map +1 -1
  156. package/dist/two-d/render/ScreenEffects.d.ts +42 -4
  157. package/dist/two-d/render/ScreenEffects.d.ts.map +1 -1
  158. package/dist/two-d/render/ScreenEffects.js +64 -9
  159. package/dist/two-d/render/ScreenEffects.js.map +1 -1
  160. package/dist/two-d/render/Shape2D.d.ts +22 -2
  161. package/dist/two-d/render/Shape2D.d.ts.map +1 -1
  162. package/dist/two-d/render/Shape2D.js +31 -2
  163. package/dist/two-d/render/Shape2D.js.map +1 -1
  164. package/dist/two-d/render/StatusVisuals.d.ts +41 -23
  165. package/dist/two-d/render/StatusVisuals.d.ts.map +1 -1
  166. package/dist/two-d/render/StatusVisuals.js +65 -26
  167. package/dist/two-d/render/StatusVisuals.js.map +1 -1
  168. package/dist/two-d/render/TerrainGraphics.d.ts.map +1 -1
  169. package/dist/two-d/render/TerrainGraphics.js.map +1 -1
  170. package/dist/two-d/render/TerrainGraphicsLayer.d.ts +55 -0
  171. package/dist/two-d/render/TerrainGraphicsLayer.d.ts.map +1 -0
  172. package/dist/two-d/render/TerrainGraphicsLayer.js +54 -0
  173. package/dist/two-d/render/TerrainGraphicsLayer.js.map +1 -0
  174. package/dist/two-d/render/TintedSprite.js +2 -2
  175. package/dist/two-d/render/TintedSprite.js.map +1 -1
  176. package/dist/two-d/render/index.d.ts +5 -3
  177. package/dist/two-d/render/index.d.ts.map +1 -1
  178. package/dist/two-d/render/index.js +3 -2
  179. package/dist/two-d/render/index.js.map +1 -1
  180. package/dist/two-d/ui/ListView.d.ts +9 -0
  181. package/dist/two-d/ui/ListView.d.ts.map +1 -1
  182. package/dist/two-d/ui/ListView.js +16 -6
  183. package/dist/two-d/ui/ListView.js.map +1 -1
  184. package/dist/two-d/ui/MarkupText.d.ts +66 -0
  185. package/dist/two-d/ui/MarkupText.d.ts.map +1 -0
  186. package/dist/two-d/ui/MarkupText.js +156 -0
  187. package/dist/two-d/ui/MarkupText.js.map +1 -0
  188. package/dist/two-d/ui/RichLabel.d.ts +7 -1
  189. package/dist/two-d/ui/RichLabel.d.ts.map +1 -1
  190. package/dist/two-d/ui/RichLabel.js +20 -9
  191. package/dist/two-d/ui/RichLabel.js.map +1 -1
  192. package/dist/two-d/ui/index.d.ts +4 -2
  193. package/dist/two-d/ui/index.d.ts.map +1 -1
  194. package/dist/two-d/ui/index.js +2 -1
  195. package/dist/two-d/ui/index.js.map +1 -1
  196. package/dist/two-d/ui/markup.d.ts +63 -1
  197. package/dist/two-d/ui/markup.d.ts.map +1 -1
  198. package/dist/two-d/ui/markup.js +69 -4
  199. package/dist/two-d/ui/markup.js.map +1 -1
  200. package/dist/version.d.ts +1 -1
  201. package/dist/version.js +1 -1
  202. package/package.json +5 -1
  203. package/tools/classic-html.d.mts +6 -0
  204. package/tools/classic-html.mjs +61 -0
  205. package/tools/mwl.mjs +12 -0
@@ -1 +1 @@
1
- {"version":3,"file":"RichLabel.js","sourceRoot":"","sources":["../../../src/two-d/ui/RichLabel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RichLabel.js","sourceRoot":"","sources":["../../../src/two-d/ui/RichLabel.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,12 @@ export { Label } from './Label.ts';
4
4
  export type { LabelOptions } from './Label.ts';
5
5
  export { RichLabel } from './RichLabel.ts';
6
6
  export type { RichLabelOptions } from './RichLabel.ts';
7
+ export { MarkupText } from './MarkupText.ts';
8
+ export type { MarkupTextOptions } from './MarkupText.ts';
7
9
  export { parseMarkdown, stripMarkdown, sliceSpans } from './markdown.ts';
8
10
  export type { MarkdownSpan } from './markdown.ts';
9
- export { escapeHtml, layoutMarkupLines, markupAccessibilityText, markupToHtml, parseMarkup, stripMarkup, } from './markup.ts';
10
- export type { MarkupLine, MarkupMeasure, MarkupOptions, MarkupSpan } from './markup.ts';
11
+ export { escapeHtml, layoutMarkupLines, markupAccessibilityText, markupToHtml, parseMarkup, positionMarkupLines, stripMarkup, } from './markup.ts';
12
+ export type { MarkupAlign, MarkupDirection, MarkupLayout, MarkupLine, MarkupMeasure, MarkupOptions, MarkupSpan, PositionedMarkupSpan, } from './markup.ts';
11
13
  export { startReveal, advanceReveal, completeReveal, revealComplete } from './reveal.ts';
12
14
  export type { RevealState } from './reveal.ts';
13
15
  export { BitmapLabel, bitmapLabelStyle } from './BitmapLabel.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC5F,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACN,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,WAAW,GACX,MAAM,aAAa,CAAC;AACrB,YAAY,EACX,WAAW,EACX,eAAe,EACf,YAAY,EACZ,UAAU,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,oBAAoB,GACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzF,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnE,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEnG,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACpE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAExE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC9G,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EACN,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,4BAA4B,EAC5B,sBAAsB,GACtB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE9G,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChF,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
@@ -1,8 +1,9 @@
1
1
  export { theme, setTheme, defaultTheme, highContrastTheme, themeChanged } from './theme.js';
2
2
  export { Label } from './Label.js';
3
3
  export { RichLabel } from './RichLabel.js';
4
+ export { MarkupText } from './MarkupText.js';
4
5
  export { parseMarkdown, stripMarkdown, sliceSpans } from './markdown.js';
5
- export { escapeHtml, layoutMarkupLines, markupAccessibilityText, markupToHtml, parseMarkup, stripMarkup, } from './markup.js';
6
+ export { escapeHtml, layoutMarkupLines, markupAccessibilityText, markupToHtml, parseMarkup, positionMarkupLines, stripMarkup, } from './markup.js';
6
7
  export { startReveal, advanceReveal, completeReveal, revealComplete } from './reveal.js';
7
8
  export { BitmapLabel, bitmapLabelStyle } from './BitmapLabel.js';
8
9
  export { NinePatch } from './NinePatch.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/two-d/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG5F,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEzE,OAAO,EACN,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,EACZ,WAAW,EACX,WAAW,GACX,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGzF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGjE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGnE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGpE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGzD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG/D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG9G,OAAO,EACN,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,4BAA4B,EAC5B,sBAAsB,GACtB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGhF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/two-d/ui/index.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,8 @@ export interface MarkupSpan extends MarkdownSpan {
15
15
  size?: number;
16
16
  /** an image rather than text: `<img>path</img>`; the `text` of such a span is empty */
17
17
  image?: string;
18
+ /** the custom tag this run came from, when it came from one; the renderer decides its style */
19
+ tag?: string;
18
20
  }
19
21
  export interface MarkupOptions {
20
22
  /**
@@ -22,6 +24,12 @@ export interface MarkupOptions {
22
24
  * what Wesnoth does with an unset variable - dropping it would silently eat a player's name.
23
25
  */
24
26
  readonly variables?: Readonly<Record<string, string>>;
27
+ /**
28
+ * Extra tag names to treat as styling containers, beyond the built-in `b`/`i`/`span`/`br`/`img`.
29
+ * A run inside one carries its name in `MarkupSpan.tag`, so a renderer can look its style up
30
+ * (Pixi's `tagStyles`, for example) while the parser stays renderer-neutral.
31
+ */
32
+ readonly tags?: ReadonlySet<string>;
25
33
  }
26
34
  /**
27
35
  * Reads `source` as inline markup and returns one span per styled run.
@@ -97,7 +105,7 @@ export interface MarkupLine {
97
105
  * measure with a plain character count. `piece.image` is set instead of `piece.text` for an image
98
106
  * span, so a measurer can give it the icon's own width rather than treating it as zero-width text.
99
107
  */
100
- export type MarkupMeasure = (piece: Pick<MarkupSpan, 'text' | 'bold' | 'italic' | 'size' | 'image'>) => number;
108
+ export type MarkupMeasure = (piece: Pick<MarkupSpan, 'text' | 'bold' | 'italic' | 'size' | 'image' | 'tag'>) => number;
101
109
  /**
102
110
  * Wraps already-parsed spans into lines, word by word, each word measured under its own span's
103
111
  * style - which is the acceptance this item was missing: wrapping computed *after* styling, not
@@ -122,6 +130,60 @@ export type MarkupMeasure = (piece: Pick<MarkupSpan, 'text' | 'bold' | 'italic'
122
130
  * ```
123
131
  */
124
132
  export declare function layoutMarkupLines(spans: readonly MarkupSpan[], measure: MarkupMeasure, maxWidth: number): MarkupLine[];
133
+ /** a line's flow direction; the same values `i18n.direction()` reports */
134
+ export type MarkupDirection = 'ltr' | 'rtl';
135
+ /** where a line sits within the wrap width, when it is shorter than that width */
136
+ export type MarkupAlign = 'left' | 'center' | 'right';
137
+ /** One run of a laid-out line, already measured and placed. */
138
+ export interface PositionedMarkupSpan {
139
+ /** the span this run draws; `image` is set for an image run, `text` otherwise */
140
+ readonly span: MarkupSpan;
141
+ /** left edge of the run, in the same coordinate space the line was measured in */
142
+ readonly x: number;
143
+ /** top edge of the run's line */
144
+ readonly y: number;
145
+ /** the measured width of this run */
146
+ readonly width: number;
147
+ }
148
+ export interface MarkupLayout {
149
+ /** measures a piece under its own style, the same function `layoutMarkupLines` was given */
150
+ readonly measure: MarkupMeasure;
151
+ /** the wrap width the lines were laid out against, used to align each shorter line within it */
152
+ readonly maxWidth: number;
153
+ /** distance between baselines */
154
+ readonly lineHeight: number;
155
+ /** flow direction; defaults to `'ltr'` */
156
+ readonly direction?: MarkupDirection;
157
+ /** line alignment; defaults to `'right'` in `rtl`, `'left'` otherwise */
158
+ readonly align?: MarkupAlign;
159
+ }
160
+ /**
161
+ * Positions already-laid-out lines into a flat list of placed runs, one per span, so a canvas
162
+ * backend draws each span as its own `Text2D` (or an image as its own sprite) at the reported
163
+ * `x`/`y`. This is the half `layoutMarkupLines` deliberately leaves out: it decides *which*
164
+ * spans share a line, this decides *where* on the line each one lands.
165
+ *
166
+ * Direction is what makes the two backends equivalent rather than merely identical in text: an
167
+ * `rtl` line places its first (logical) span at the right edge and flows left from it, while an
168
+ * `ltr` line flows right from the left edge, so the same spans read in the language's own order
169
+ * on either side. Alignment then moves the whole line within `maxWidth`, defaulting to the
170
+ * direction's natural edge (`'right'` for `rtl`, `'left'` for `ltr`). A line wider than
171
+ * `maxWidth` is not clipped - the same "a single long word still renders" rule
172
+ * `layoutMarkupLines` already keeps - it simply starts left of zero.
173
+ *
174
+ * @example
175
+ * ```ts
176
+ * import { layoutMarkupLines, parseMarkup, positionMarkupLines } from '@datamoc/mw_games/two-d/ui';
177
+ *
178
+ * const spans = parseMarkup('Take <b>two</b> coins<img>coin.png</img>');
179
+ * const measure = (piece: { text: string; image?: string }) =>
180
+ * piece.image !== undefined ? 16 : piece.text.length * 8;
181
+ * const lines = layoutMarkupLines(spans, measure, 120);
182
+ * const runs = positionMarkupLines(lines, { measure, maxWidth: 120, lineHeight: 16 });
183
+ * console.log(runs.map((run) => run.span.image ?? run.span.text).join(''));
184
+ * ```
185
+ */
186
+ export declare function positionMarkupLines(lines: readonly MarkupLine[], layout: MarkupLayout): PositionedMarkupSpan[];
125
187
  /** escapes the five characters that would otherwise read as syntax */
126
188
  export declare function escapeHtml(text: string): string;
127
189
  //# sourceMappingURL=markup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"markup.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/markup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC/C,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC7B;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACtD;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,UAAU,EAAE,CA+ErF;AAED,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAI/E;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAejE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CACtC,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;CAAO,GACxD,MAAM,CAGR;AAED,oGAAoG;AACpG,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,MAAM,CAAC;AAE/G;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CA8CtH;AAuBD,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO/C"}
1
+ {"version":3,"file":"markup.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/markup.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,7 @@ const KNOWN_TAGS = new Set(['b', 'i', 'span', 'br', 'img']);
33
33
  */
34
34
  export function parseMarkup(source, options = {}) {
35
35
  const variables = options.variables ?? {};
36
+ const customTags = options.tags;
36
37
  const spans = [];
37
38
  const stack = [];
38
39
  let style = { bold: false, italic: false };
@@ -45,6 +46,8 @@ export function parseMarkup(source, options = {}) {
45
46
  span.color = style.color;
46
47
  if (style.size !== undefined)
47
48
  span.size = style.size;
49
+ if (style.tag !== undefined)
50
+ span.tag = style.tag;
48
51
  spans.push(span);
49
52
  text = '';
50
53
  };
@@ -69,7 +72,7 @@ export function parseMarkup(source, options = {}) {
69
72
  }
70
73
  if (char === '<') {
71
74
  const tag = readTag(source, index);
72
- if (tag && KNOWN_TAGS.has(tag.name)) {
75
+ if (tag && (KNOWN_TAGS.has(tag.name) || customTags?.has(tag.name))) {
73
76
  if (tag.name === 'img') {
74
77
  const image = readImage(source, tag);
75
78
  if (image) {
@@ -140,6 +143,9 @@ export function markupToHtml(spans) {
140
143
  ].filter((declaration) => declaration !== undefined);
141
144
  if (style.length > 0)
142
145
  text = `<span style="${style.join(';')}">${text}</span>`;
146
+ //a custom tag is preserved so an HTML-speaking renderer's own tag styles can match it
147
+ if (span.tag !== undefined)
148
+ text = `<${span.tag}>${text}</${span.tag}>`;
143
149
  return text;
144
150
  })
145
151
  .join('');
@@ -200,7 +206,14 @@ export function layoutMarkupLines(spans, measure, maxWidth) {
200
206
  if (index > 0)
201
207
  pieces.push({ text: '', bold: span.bold, italic: span.italic, hardBreak: true });
202
208
  for (const word of part.match(/\S+|\s+/g) ?? []) {
203
- pieces.push({ text: word, bold: span.bold, italic: span.italic, color: span.color, size: span.size });
209
+ pieces.push({
210
+ text: word,
211
+ bold: span.bold,
212
+ italic: span.italic,
213
+ color: span.color,
214
+ size: span.size,
215
+ tag: span.tag,
216
+ });
204
217
  }
205
218
  });
206
219
  }
@@ -209,7 +222,9 @@ export function layoutMarkupLines(spans, measure, maxWidth) {
209
222
  let width = 0;
210
223
  const flushLine = () => {
211
224
  //trailing whitespace never counts toward a line's own width or survives into it
212
- while (current.length > 0 && current[current.length - 1].text.trim() === '' && !current[current.length - 1].image) {
225
+ while (current.length > 0 &&
226
+ current[current.length - 1].text.trim() === '' &&
227
+ !current[current.length - 1].image) {
213
228
  width -= measure(current[current.length - 1]);
214
229
  current.pop();
215
230
  }
@@ -243,7 +258,8 @@ function mergeMarkupSpans(pieces) {
243
258
  last.bold === piece.bold &&
244
259
  last.italic === piece.italic &&
245
260
  last.color === piece.color &&
246
- last.size === piece.size) {
261
+ last.size === piece.size &&
262
+ last.tag === piece.tag) {
247
263
  last.text += piece.text;
248
264
  }
249
265
  else {
@@ -252,6 +268,52 @@ function mergeMarkupSpans(pieces) {
252
268
  }
253
269
  return merged;
254
270
  }
271
+ /**
272
+ * Positions already-laid-out lines into a flat list of placed runs, one per span, so a canvas
273
+ * backend draws each span as its own `Text2D` (or an image as its own sprite) at the reported
274
+ * `x`/`y`. This is the half `layoutMarkupLines` deliberately leaves out: it decides *which*
275
+ * spans share a line, this decides *where* on the line each one lands.
276
+ *
277
+ * Direction is what makes the two backends equivalent rather than merely identical in text: an
278
+ * `rtl` line places its first (logical) span at the right edge and flows left from it, while an
279
+ * `ltr` line flows right from the left edge, so the same spans read in the language's own order
280
+ * on either side. Alignment then moves the whole line within `maxWidth`, defaulting to the
281
+ * direction's natural edge (`'right'` for `rtl`, `'left'` for `ltr`). A line wider than
282
+ * `maxWidth` is not clipped - the same "a single long word still renders" rule
283
+ * `layoutMarkupLines` already keeps - it simply starts left of zero.
284
+ *
285
+ * @example
286
+ * ```ts
287
+ * import { layoutMarkupLines, parseMarkup, positionMarkupLines } from '@datamoc/mw_games/two-d/ui';
288
+ *
289
+ * const spans = parseMarkup('Take <b>two</b> coins<img>coin.png</img>');
290
+ * const measure = (piece: { text: string; image?: string }) =>
291
+ * piece.image !== undefined ? 16 : piece.text.length * 8;
292
+ * const lines = layoutMarkupLines(spans, measure, 120);
293
+ * const runs = positionMarkupLines(lines, { measure, maxWidth: 120, lineHeight: 16 });
294
+ * console.log(runs.map((run) => run.span.image ?? run.span.text).join(''));
295
+ * ```
296
+ */
297
+ export function positionMarkupLines(lines, layout) {
298
+ const direction = layout.direction ?? 'ltr';
299
+ const align = layout.align ?? (direction === 'rtl' ? 'right' : 'left');
300
+ const placed = [];
301
+ for (let lineIndex = 0; lineIndex < lines.length; lineIndex++) {
302
+ const line = lines[lineIndex];
303
+ const y = lineIndex * layout.lineHeight;
304
+ const widths = line.spans.map((span) => layout.measure(span));
305
+ const total = widths.reduce((sum, width) => sum + width, 0);
306
+ const startX = align === 'left' ? 0 : align === 'right' ? layout.maxWidth - total : (layout.maxWidth - total) / 2;
307
+ let cursor = direction === 'rtl' ? startX + total : startX;
308
+ for (let index = 0; index < line.spans.length; index++) {
309
+ const width = widths[index];
310
+ const x = direction === 'rtl' ? cursor - width : cursor;
311
+ cursor = direction === 'rtl' ? cursor - width : cursor + width;
312
+ placed.push({ span: line.spans[index], x, y, width });
313
+ }
314
+ }
315
+ return placed;
316
+ }
255
317
  /** escapes the five characters that would otherwise read as syntax */
256
318
  export function escapeHtml(text) {
257
319
  return text
@@ -266,6 +328,9 @@ function opened(style, name, body) {
266
328
  return { ...style, bold: true };
267
329
  if (name === 'i')
268
330
  return { ...style, italic: true };
331
+ //a custom tag is an opaque styling container: it carries its own name, nothing else
332
+ if (name !== 'span')
333
+ return { ...style, tag: name };
269
334
  const color = attribute(body, 'color');
270
335
  const size = Number(attribute(body, 'size') ?? '');
271
336
  const next = { ...style };
@@ -1 +1 @@
1
- {"version":3,"file":"markup.js","sourceRoot":"","sources":["../../../src/two-d/ui/markup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markup.js","sourceRoot":"","sources":["../../../src/two-d/ui/markup.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -9,5 +9,5 @@
9
9
  * this from `package.json` automatically, chosen because this project's own build already
10
10
  * has no step before `tsc`/`vite` that this would need to run ahead of.
11
11
  */
12
- export declare const version = "0.7.7";
12
+ export declare const version = "0.7.9";
13
13
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -9,5 +9,5 @@
9
9
  * this from `package.json` automatically, chosen because this project's own build already
10
10
  * has no step before `tsc`/`vite` that this would need to run ahead of.
11
11
  */
12
- export const version = '0.7.7';
12
+ export const version = '0.7.9';
13
13
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datamoc/mw_games",
3
- "version": "0.7.7",
3
+ "version": "0.7.9",
4
4
  "description": "A local-file game framework: renderer-free game logic, drawn through PixiJS in 2D or Babylon.js in 3D, with mobile and desktop packaging.",
5
5
  "license": "MPL-2.0",
6
6
  "repository": {
@@ -43,6 +43,8 @@
43
43
  "tools/extract-html.d.mts",
44
44
  "tools/compress-dist.mjs",
45
45
  "tools/compress-dist.d.mts",
46
+ "tools/classic-html.mjs",
47
+ "tools/classic-html.d.mts",
46
48
  "tools/mwl.mjs",
47
49
  "LICENSE",
48
50
  "CHANGELOG.md",
@@ -167,6 +169,8 @@
167
169
  "size:check": "node tools/bundle-size.mjs",
168
170
  "size:update": "node tools/bundle-size.mjs --update",
169
171
  "audit": "node tools/npm-audit.mjs",
172
+ "sbom": "node tools/sbom.mjs",
173
+ "sbom:check": "node tools/sbom.mjs --check",
170
174
  "ci:status": "node tools/ci-status.mjs",
171
175
  "example": "vite --config examples/colour-transform/vite.config.ts",
172
176
  "example:build": "vite build --config examples/colour-transform/vite.config.ts && node tools/emit-page.mjs examples/colour-transform",
@@ -0,0 +1,6 @@
1
+ export interface ClassicScriptResult {
2
+ html: string;
3
+ src: string;
4
+ }
5
+
6
+ export function toClassicScript(html: string): ClassicScriptResult | null;
@@ -0,0 +1,61 @@
1
+ import { readFile, writeFile } from 'node:fs/promises';
2
+ import { resolve } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+
5
+ /**
6
+ * Rewrites a bundler build's ES-module entry tag to a classic deferred script - the one HTML
7
+ * edit every bundler-based game needs to open its own build by double-clicking, which is why
8
+ * this is shipped rather than left for each game to reinvent (item 306).
9
+ *
10
+ * `type="module"` (and the `crossorigin` a bundler adds alongside it) both stop a `file://`
11
+ * page from running the script; `defer` replaces the deferred-by-default behaviour a module
12
+ * tag had, since a classic script is not deferred on its own and running from `<head>` before
13
+ * `<body>` exists leaves a game with no canvas to attach to. The bundle itself must already be
14
+ * a classic script (an IIFE or UMD build, not further ES module output) - this only touches
15
+ * the tag pointing at it, the same split `mwg`'s own `vite.lib.config.ts` keeps between the
16
+ * library's ES build and its `mwg.global.js` IIFE.
17
+ *
18
+ * Returns `null`, rather than guessing, when `html` carries no such tag - an unbuilt dev
19
+ * template (Vite serves `/src/main.ts` directly, with no `crossorigin`, before a real build
20
+ * emits a hashed asset path) is the case this guards a caller against silently "succeeding" on
21
+ * the wrong file.
22
+ *
23
+ * @example
24
+ * ```js
25
+ * import { readFile, writeFile } from 'node:fs/promises';
26
+ * import { toClassicScript } from '@datamoc/mw_games/tools/classic-html.mjs';
27
+ *
28
+ * const html = await readFile('dist/index.html', 'utf8');
29
+ * const result = toClassicScript(html);
30
+ * if (result) await writeFile('dist/index.html', result.html, 'utf8');
31
+ * ```
32
+ */
33
+ export function toClassicScript(html) {
34
+ const scriptTag = /[ \t]*<script\b(?=[^>]*\btype="module")[^>]*\bsrc="([^"]+)"[^>]*><\/script>/;
35
+ const match = scriptTag.exec(html);
36
+ if (!match) return null;
37
+ return { html: html.replace(scriptTag, `<script defer src="${match[1]}"></script>`), src: match[1] };
38
+ }
39
+
40
+ if (process.argv[1] && resolve(process.argv[1]) === fileURLToPath(import.meta.url)) {
41
+ const input = process.argv[2];
42
+ if (!input) {
43
+ console.error('Usage: node tools/classic-html.mjs dist/index.html');
44
+ process.exitCode = 2;
45
+ } else {
46
+ const path = resolve(input);
47
+ const html = await readFile(path, 'utf8');
48
+ const result = toClassicScript(html);
49
+ if (!result) {
50
+ console.error(
51
+ `${input}: no <script type="module" src="..."> entry tag found - is this a built page, ` +
52
+ 'not the unbuilt dev template? (a dev template serves its source path directly, ' +
53
+ 'with no bundled, hashed asset name yet)',
54
+ );
55
+ process.exitCode = 1;
56
+ } else {
57
+ await writeFile(path, result.html, 'utf8');
58
+ console.log(`${input}: rewrote the ${result.src} entry tag to a classic deferred script`);
59
+ }
60
+ }
61
+ }
package/tools/mwl.mjs CHANGED
@@ -25,6 +25,18 @@ import {
25
25
  * itself stays free of node builtins. `hooks` needs esbuild and says so
26
26
  * clearly when it is not installed; the framework does not depend on it, so a
27
27
  * project without hooks pays nothing for the feature.
28
+ *
29
+ * `build` is deliberately just the three files every MWL game consumes
30
+ * (game-data.ts, i18n.json, assets.json) plus, opted into with
31
+ * `--asset-root`, one asset-existence check (item 305). A game that needs
32
+ * more than that - its own extra generated module, or a cross-table check
33
+ * this CLI has no flag for (a recipe's ingredient existing in the item
34
+ * table, say) - is not a gap in this command's flags to fill one at a time;
35
+ * every one of `compileSources`, `emitArtifacts`, `validateCatalog` and
36
+ * `contentReport` this command itself calls is public
37
+ * (`@datamoc/mw_games/mwl`), so that game's own small Node script, written
38
+ * against the same library API this file uses, is the actual extension
39
+ * point - not a CLI kept open-ended for checks no two games would agree on.
28
40
  */
29
41
 
30
42
  const args = process.argv.slice(2);