@datamoc/mw_games 0.26.1 → 0.27.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 (66) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/api-surface.json +474 -0
  3. package/dist/ai/Suggest.d.ts +54 -0
  4. package/dist/ai/Suggest.d.ts.map +1 -0
  5. package/dist/ai/Suggest.js +48 -0
  6. package/dist/ai/Suggest.js.map +1 -0
  7. package/dist/ai/index.d.ts +2 -0
  8. package/dist/ai/index.d.ts.map +1 -1
  9. package/dist/ai/index.js +1 -0
  10. package/dist/ai/index.js.map +1 -1
  11. package/dist/core/Random.d.ts +32 -5
  12. package/dist/core/Random.d.ts.map +1 -1
  13. package/dist/core/Random.js.map +1 -1
  14. package/dist/core/Replay.d.ts +28 -4
  15. package/dist/core/Replay.d.ts.map +1 -1
  16. package/dist/core/Replay.js +38 -9
  17. package/dist/core/Replay.js.map +1 -1
  18. package/dist/core/ReplayFile.d.ts +197 -0
  19. package/dist/core/ReplayFile.d.ts.map +1 -0
  20. package/dist/core/ReplayFile.js +257 -0
  21. package/dist/core/ReplayFile.js.map +1 -0
  22. package/dist/core/index.d.ts +4 -2
  23. package/dist/core/index.d.ts.map +1 -1
  24. package/dist/core/index.js +2 -1
  25. package/dist/core/index.js.map +1 -1
  26. package/dist/mw_games.global.js +113 -113
  27. package/dist/simulation/Training.d.ts +77 -0
  28. package/dist/simulation/Training.d.ts.map +1 -1
  29. package/dist/simulation/Training.js +87 -0
  30. package/dist/simulation/Training.js.map +1 -1
  31. package/dist/simulation/index.d.ts +2 -2
  32. package/dist/simulation/index.d.ts.map +1 -1
  33. package/dist/simulation/index.js +1 -1
  34. package/dist/simulation/index.js.map +1 -1
  35. package/dist/two-d/render/Beam.d.ts +93 -0
  36. package/dist/two-d/render/Beam.d.ts.map +1 -0
  37. package/dist/two-d/render/Beam.js +154 -0
  38. package/dist/two-d/render/Beam.js.map +1 -0
  39. package/dist/two-d/render/Flights.d.ts +79 -0
  40. package/dist/two-d/render/Flights.d.ts.map +1 -0
  41. package/dist/two-d/render/Flights.js +120 -0
  42. package/dist/two-d/render/Flights.js.map +1 -0
  43. package/dist/two-d/render/Particles.d.ts +48 -0
  44. package/dist/two-d/render/Particles.d.ts.map +1 -1
  45. package/dist/two-d/render/Particles.js +59 -1
  46. package/dist/two-d/render/Particles.js.map +1 -1
  47. package/dist/two-d/render/index.d.ts +5 -1
  48. package/dist/two-d/render/index.d.ts.map +1 -1
  49. package/dist/two-d/render/index.js +2 -0
  50. package/dist/two-d/render/index.js.map +1 -1
  51. package/dist/two-d/ui/MessageLog.d.ts +28 -0
  52. package/dist/two-d/ui/MessageLog.d.ts.map +1 -1
  53. package/dist/two-d/ui/MessageLog.js +23 -6
  54. package/dist/two-d/ui/MessageLog.js.map +1 -1
  55. package/dist/two-d/ui/TextPrompt.d.ts +115 -0
  56. package/dist/two-d/ui/TextPrompt.d.ts.map +1 -0
  57. package/dist/two-d/ui/TextPrompt.js +227 -0
  58. package/dist/two-d/ui/TextPrompt.js.map +1 -0
  59. package/dist/two-d/ui/index.d.ts +4 -2
  60. package/dist/two-d/ui/index.d.ts.map +1 -1
  61. package/dist/two-d/ui/index.js +2 -1
  62. package/dist/two-d/ui/index.js.map +1 -1
  63. package/dist/version.d.ts +1 -1
  64. package/dist/version.js +1 -1
  65. package/package.json +1 -1
  66. package/sbom.cdx.json +6 -6
@@ -0,0 +1,115 @@
1
+ import { type Action } from '../../core/Input.ts';
2
+ import { Window } from './Window.ts';
3
+ import { type ScreenReader } from './a11y.ts';
4
+ export interface TextPromptOptions {
5
+ width: number;
6
+ height: number;
7
+ /** the window title; also announced by `Window` itself */
8
+ title?: string;
9
+ /** the one-line question above the field, announced politely on open */
10
+ message?: string;
11
+ /** the field's starting text; the caret starts after it */
12
+ initialValue?: string;
13
+ /** the most characters the field will hold; unlimited when omitted */
14
+ maxLength?: number;
15
+ /**
16
+ * Decides whether the current value may be confirmed: return an error message to
17
+ * keep the prompt open, or null (or '') when the value is fine. Runs only on
18
+ * `confirm`, so typing never nags; the error clears on the next edit.
19
+ */
20
+ validate?: (value: string) => string | null;
21
+ /** called with the value, then the prompt closes */
22
+ onConfirm: (value: string) => void;
23
+ /** called on `cancel`, then the prompt closes; omit to just close */
24
+ onCancel?: () => void;
25
+ /** dim the world behind; true for a modal window, which this is */
26
+ dims?: boolean;
27
+ /**
28
+ * Whether a click under the prompt is swallowed rather than reaching the game
29
+ * behind it. On by default: a name not yet given is not something a stray click
30
+ * on the world should be able to act past.
31
+ */
32
+ blocker?: boolean;
33
+ /** where the stack puts the prompt */
34
+ anchor?: 'center' | 'bottom' | 'top';
35
+ /**
36
+ * Announce the message on open and a validation error on `confirm` through an
37
+ * `a11y.ScreenReader`. Default true; the calls are no-ops where there is no DOM.
38
+ */
39
+ announce?: boolean;
40
+ /** the reader announcements go to; the shared one by default, a fake in tests */
41
+ announcer?: Pick<ScreenReader, 'announce'>;
42
+ }
43
+ /**
44
+ * A modal single-line text field: a name entry, a save-slot label, a seed.
45
+ *
46
+ * Typing arrives through `core.Input`'s `onText`, which is the signal a free text field
47
+ * listens to, so this plays no part in key bindings for characters: whatever the
48
+ * platform turns a key press into lands in the field. Editing and movement arrive as
49
+ * actions instead, which a game binds the way it binds everything else: `left`/`right`
50
+ * move the caret, `backspace`/`delete` edit, `confirm` accepts subject to `validate`,
51
+ * `cancel` gives up. The prompt is modal and swallows each of those while open, so
52
+ * the game underneath never walks away mid-name.
53
+ *
54
+ * `onText` wakes the most recently added listener first, so when two prompts overlap
55
+ * the topmost one gets the keystrokes - the same order the window stack shows them in.
56
+ *
57
+ * An in-progress IME composition previews below the field and only becomes value on
58
+ * commit, so CJK, dead keys and emoji pickers type through the same path the DOM gives
59
+ * every other input rather than through a game-specific workaround.
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * import { TextPrompt } from '@datamoc/mw_games/two-d/ui';
64
+ *
65
+ * const prompt = new TextPrompt({
66
+ * width: 320,
67
+ * height: 140,
68
+ * title: 'New hero',
69
+ * message: 'Name your hero (Enter keeps it)',
70
+ * maxLength: 12,
71
+ * validate: (value) => (value.trim() === '' ? 'Give them a name first.' : null),
72
+ * onConfirm: (value) => console.log('named', value),
73
+ * });
74
+ * ```
75
+ */
76
+ export declare class TextPrompt extends Window {
77
+ private readonly model;
78
+ private readonly validate?;
79
+ private readonly onConfirm;
80
+ private readonly onCancel?;
81
+ private readonly announce;
82
+ private readonly announcer;
83
+ private preview;
84
+ private promptError;
85
+ private messageLabel;
86
+ private valueLabel;
87
+ private previewLabel;
88
+ private errorLabel;
89
+ private caretBar;
90
+ private readonly measurer;
91
+ private readonly lineHeight;
92
+ private readonly valueY;
93
+ private canMeasureCaret;
94
+ private blinkOn;
95
+ private blinkElapsed;
96
+ private readonly promptThemeListener;
97
+ private readonly textListener;
98
+ private readonly compositionListener;
99
+ constructor(options: TextPromptOptions);
100
+ /** the field's current text */
101
+ get value(): string;
102
+ /** the caret's index into `value` */
103
+ get caretIndex(): number;
104
+ /** the last validation error, or null when the value currently passes */
105
+ get error(): string | null;
106
+ handleAction(action: Action): boolean;
107
+ update(dt: number): void;
108
+ destroy(options?: Parameters<Window['destroy']>[0]): void;
109
+ /** runs an edit, dropping a stale validation error only when the text changed */
110
+ private edit;
111
+ private confirm;
112
+ private restylePrompt;
113
+ private render;
114
+ }
115
+ //# sourceMappingURL=TextPrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextPrompt.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/TextPrompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,227 @@
1
+ import { Graphics } from 'pixi.js';
2
+ import { onComposition, onText } from '../../core/Input.js';
3
+ import { TextModel } from './TextModel.js';
4
+ import { Window } from './Window.js';
5
+ import { Label } from './Label.js';
6
+ import { theme, themeChanged } from './theme.js';
7
+ import { screenReader } from './a11y.js';
8
+ /** seconds per caret blink half-cycle */
9
+ const BLINK_PERIOD = 0.5;
10
+ /**
11
+ * A modal single-line text field: a name entry, a save-slot label, a seed.
12
+ *
13
+ * Typing arrives through `core.Input`'s `onText`, which is the signal a free text field
14
+ * listens to, so this plays no part in key bindings for characters: whatever the
15
+ * platform turns a key press into lands in the field. Editing and movement arrive as
16
+ * actions instead, which a game binds the way it binds everything else: `left`/`right`
17
+ * move the caret, `backspace`/`delete` edit, `confirm` accepts subject to `validate`,
18
+ * `cancel` gives up. The prompt is modal and swallows each of those while open, so
19
+ * the game underneath never walks away mid-name.
20
+ *
21
+ * `onText` wakes the most recently added listener first, so when two prompts overlap
22
+ * the topmost one gets the keystrokes - the same order the window stack shows them in.
23
+ *
24
+ * An in-progress IME composition previews below the field and only becomes value on
25
+ * commit, so CJK, dead keys and emoji pickers type through the same path the DOM gives
26
+ * every other input rather than through a game-specific workaround.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * import { TextPrompt } from '@datamoc/mw_games/two-d/ui';
31
+ *
32
+ * const prompt = new TextPrompt({
33
+ * width: 320,
34
+ * height: 140,
35
+ * title: 'New hero',
36
+ * message: 'Name your hero (Enter keeps it)',
37
+ * maxLength: 12,
38
+ * validate: (value) => (value.trim() === '' ? 'Give them a name first.' : null),
39
+ * onConfirm: (value) => console.log('named', value),
40
+ * });
41
+ * ```
42
+ */
43
+ export class TextPrompt extends Window {
44
+ constructor(options) {
45
+ super({
46
+ width: options.width,
47
+ height: options.height,
48
+ title: options.title,
49
+ modal: true,
50
+ closable: false,
51
+ dims: options.dims,
52
+ blocker: options.blocker ?? true,
53
+ anchor: options.anchor ?? 'center',
54
+ });
55
+ this.preview = '';
56
+ this.promptError = null;
57
+ this.messageLabel = null;
58
+ this.caretBar = new Graphics();
59
+ this.measurer = new Label();
60
+ this.canMeasureCaret = typeof document !== 'undefined';
61
+ this.blinkOn = true;
62
+ this.blinkElapsed = 0;
63
+ this.promptThemeListener = () => this.restylePrompt();
64
+ this.textListener = (text) => {
65
+ if (this.closed)
66
+ return false;
67
+ this.edit(() => this.model.insert(text));
68
+ return true;
69
+ };
70
+ this.compositionListener = (input) => {
71
+ if (this.closed)
72
+ return false;
73
+ if (input.phase === 'end') {
74
+ this.edit(() => {
75
+ this.preview = '';
76
+ this.model.insert(input.text);
77
+ });
78
+ }
79
+ else {
80
+ this.preview = input.phase === 'start' ? '' : input.text;
81
+ this.render();
82
+ }
83
+ return true;
84
+ };
85
+ this.model = new TextModel({ value: options.initialValue ?? '', maxLength: options.maxLength });
86
+ this.validate = options.validate;
87
+ this.onConfirm = options.onConfirm;
88
+ this.onCancel = options.onCancel;
89
+ this.announce = options.announce ?? true;
90
+ this.announcer = options.announcer ?? screenReader;
91
+ const t = theme();
92
+ this.lineHeight = t.font.size * t.font.lineHeight;
93
+ const gap = t.spacing;
94
+ if (options.message !== undefined) {
95
+ this.messageLabel = new Label({ text: options.message });
96
+ this.content.addChild(this.messageLabel);
97
+ }
98
+ this.valueY = this.messageLabel ? this.lineHeight + gap : 0;
99
+ this.valueLabel = new Label();
100
+ this.valueLabel.y = this.valueY;
101
+ this.content.addChild(this.valueLabel);
102
+ this.previewLabel = new Label({ color: t.color.textDim });
103
+ this.previewLabel.y = this.valueY + this.lineHeight + gap;
104
+ this.content.addChild(this.previewLabel);
105
+ this.errorLabel = new Label({ color: t.color.textHighlight });
106
+ this.errorLabel.y = this.previewLabel.y + this.lineHeight + gap;
107
+ this.content.addChild(this.errorLabel);
108
+ this.content.addChild(this.caretBar);
109
+ onText.add(this.textListener);
110
+ onComposition.add(this.compositionListener);
111
+ themeChanged.add(this.promptThemeListener);
112
+ this.render();
113
+ if (this.announce && options.message !== undefined)
114
+ this.announcer.announce(options.message);
115
+ }
116
+ /** the field's current text */
117
+ get value() {
118
+ return this.model.value;
119
+ }
120
+ /** the caret's index into `value` */
121
+ get caretIndex() {
122
+ return this.model.caret;
123
+ }
124
+ /** the last validation error, or null when the value currently passes */
125
+ get error() {
126
+ return this.promptError;
127
+ }
128
+ handleAction(action) {
129
+ if (this.delegate)
130
+ return super.handleAction(action);
131
+ if (this.closed)
132
+ return false;
133
+ switch (action) {
134
+ case 'left':
135
+ this.model.moveCaret(-1);
136
+ this.render();
137
+ return true;
138
+ case 'right':
139
+ this.model.moveCaret(1);
140
+ this.render();
141
+ return true;
142
+ case 'backspace':
143
+ this.edit(() => this.model.backspace());
144
+ return true;
145
+ case 'delete':
146
+ this.edit(() => this.model.deleteForward());
147
+ return true;
148
+ case 'confirm':
149
+ this.confirm();
150
+ return true;
151
+ case 'cancel':
152
+ this.onCancel?.();
153
+ this.close();
154
+ return true;
155
+ default:
156
+ return false;
157
+ }
158
+ }
159
+ update(dt) {
160
+ this.blinkElapsed += dt;
161
+ if (this.blinkElapsed < BLINK_PERIOD)
162
+ return;
163
+ this.blinkElapsed = 0;
164
+ this.blinkOn = !this.blinkOn;
165
+ this.caretBar.visible = this.blinkOn && this.canMeasureCaret;
166
+ }
167
+ destroy(options) {
168
+ onText.remove(this.textListener);
169
+ onComposition.remove(this.compositionListener);
170
+ themeChanged.remove(this.promptThemeListener);
171
+ this.measurer.destroy();
172
+ super.destroy(options);
173
+ }
174
+ /** runs an edit, dropping a stale validation error only when the text changed */
175
+ edit(run) {
176
+ const before = this.model.value;
177
+ run();
178
+ if (this.model.value !== before)
179
+ this.promptError = null;
180
+ this.render();
181
+ }
182
+ confirm() {
183
+ const problem = this.validate?.(this.model.value) ?? null;
184
+ if (problem) {
185
+ this.promptError = problem;
186
+ this.render();
187
+ if (this.announce)
188
+ this.announcer.announce(problem, { assertive: true });
189
+ return;
190
+ }
191
+ this.onConfirm(this.model.value);
192
+ this.close();
193
+ }
194
+ restylePrompt() {
195
+ const t = theme();
196
+ this.previewLabel.setColor(t.color.textDim);
197
+ this.errorLabel.setColor(t.color.textHighlight);
198
+ this.render();
199
+ }
200
+ render() {
201
+ this.valueLabel.setText(this.model.value);
202
+ //the caret sits after the text before it, measured through a label that is never
203
+ //added to the scene: reading any width needs a canvas, which `node --test` has
204
+ //not got, so where there is no document the position is unknowable and the caret
205
+ //stays hidden rather than guessing
206
+ this.measurer.setText(this.model.value.slice(0, this.model.caret));
207
+ let caretX = 0;
208
+ if (this.canMeasureCaret) {
209
+ try {
210
+ caretX = this.measurer.width;
211
+ }
212
+ catch {
213
+ this.canMeasureCaret = false;
214
+ }
215
+ }
216
+ this.caretBar
217
+ .clear()
218
+ .rect(this.valueLabel.x + caretX, this.valueY, 2, this.lineHeight)
219
+ .fill({ color: theme().color.text });
220
+ this.caretBar.visible = this.blinkOn && this.canMeasureCaret;
221
+ this.previewLabel.setText(this.preview);
222
+ this.previewLabel.visible = this.preview.length > 0;
223
+ this.errorLabel.setText(this.promptError ?? '');
224
+ this.errorLabel.visible = this.promptError !== null;
225
+ }
226
+ }
227
+ //# sourceMappingURL=TextPrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextPrompt.js","sourceRoot":"","sources":["../../../src/two-d/ui/TextPrompt.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@ export { theme, setTheme, defaultTheme, highContrastTheme, themeChanged } from '
2
2
  export type { Theme } from './theme.ts';
3
3
  export { Label } from './Label.ts';
4
4
  export type { LabelOptions } from './Label.ts';
5
- export { MessageLog, linesToDrop } from './MessageLog.ts';
6
- export type { MessageLevel, MessageLogOptions } from './MessageLog.ts';
5
+ export { MessageLog, linesToDrop, takeLastEntries } from './MessageLog.ts';
6
+ export type { MessageLogEntry, MessageLevel, MessageLogOptions } from './MessageLog.ts';
7
7
  export { fitWindowZoom, sharpenText } from './TextSharpness.ts';
8
8
  export { RichLabel } from './RichLabel.ts';
9
9
  export type { RichLabelOptions } from './RichLabel.ts';
@@ -30,6 +30,8 @@ export { TabbedList } from './TabbedList.ts';
30
30
  export type { ListTab, TabbedListOptions } from './TabbedList.ts';
31
31
  export { MessageBox } from './MessageBox.ts';
32
32
  export type { MessageBoxOptions, MessagePage, Choice } from './MessageBox.ts';
33
+ export { TextPrompt } from './TextPrompt.ts';
34
+ export type { TextPromptOptions } from './TextPrompt.ts';
33
35
  export { VerticalLabel, layoutVertical } from './VerticalLabel.ts';
34
36
  export type { VerticalLabelOptions, VerticalLayoutOptions, GlyphLayout } from './VerticalLabel.ts';
35
37
  export { Slider, sliderFraction, sliderValueAt } from './Slider.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":"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"}
@@ -1,6 +1,6 @@
1
1
  export { theme, setTheme, defaultTheme, highContrastTheme, themeChanged } from './theme.js';
2
2
  export { Label } from './Label.js';
3
- export { MessageLog, linesToDrop } from './MessageLog.js';
3
+ export { MessageLog, linesToDrop, takeLastEntries } from './MessageLog.js';
4
4
  export { fitWindowZoom, sharpenText } from './TextSharpness.js';
5
5
  export { RichLabel } from './RichLabel.js';
6
6
  export { MarkupText } from './MarkupText.js';
@@ -15,6 +15,7 @@ export { ListView } from './ListView.js';
15
15
  export { IconGrid } from './IconGrid.js';
16
16
  export { TabbedList } from './TabbedList.js';
17
17
  export { MessageBox } from './MessageBox.js';
18
+ export { TextPrompt } from './TextPrompt.js';
18
19
  export { VerticalLabel, layoutVertical } from './VerticalLabel.js';
19
20
  export { Slider, sliderFraction, sliderValueAt } from './Slider.js';
20
21
  export { Checkbox } from './Checkbox.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/two-d/ui/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/two-d/ui/index.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.26.1";
12
+ export declare const version = "0.27.0";
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.26.1';
12
+ export const version = '0.27.0';
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.26.1",
3
+ "version": "0.27.0",
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": {
package/sbom.cdx.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "bomFormat": "CycloneDX",
3
3
  "specVersion": "1.6",
4
- "serialNumber": "urn:uuid:46de77d7-ba38-5dc9-90b4-bae4a009db6c",
4
+ "serialNumber": "urn:uuid:bfe27619-3cab-5d79-a4f8-8f79dbd73bfb",
5
5
  "version": 1,
6
6
  "metadata": {
7
7
  "tools": {
@@ -10,16 +10,16 @@
10
10
  "type": "application",
11
11
  "group": "datamoc",
12
12
  "name": "tools/sbom.mjs",
13
- "version": "0.26.1"
13
+ "version": "0.27.0"
14
14
  }
15
15
  ]
16
16
  },
17
17
  "component": {
18
18
  "type": "library",
19
- "bom-ref": "pkg:npm/%40datamoc/mw_games@0.26.1",
19
+ "bom-ref": "pkg:npm/%40datamoc/mw_games@0.27.0",
20
20
  "name": "@datamoc/mw_games",
21
- "version": "0.26.1",
22
- "purl": "pkg:npm/%40datamoc/mw_games@0.26.1",
21
+ "version": "0.27.0",
22
+ "purl": "pkg:npm/%40datamoc/mw_games@0.27.0",
23
23
  "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.",
24
24
  "licenses": [
25
25
  {
@@ -4601,7 +4601,7 @@
4601
4601
  ]
4602
4602
  },
4603
4603
  {
4604
- "ref": "pkg:npm/%40datamoc/mw_games@0.26.1",
4604
+ "ref": "pkg:npm/%40datamoc/mw_games@0.27.0",
4605
4605
  "dependsOn": [
4606
4606
  "pkg:npm/%40babylonjs/core@9.29.0",
4607
4607
  "pkg:npm/%40babylonjs/loaders@9.29.0",