@caperjs/core 0.7.1 → 0.7.2
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.
- package/build/assetpack.mjs +35 -3
- package/build/defaults.mjs +39 -1
- package/build/index.mjs +13 -2
- package/build/internal/outputMarker.mjs +52 -0
- package/cli/doctor.mjs +205 -2
- package/cli/doctor.test.mjs +522 -1
- package/cli/native.mjs +808 -0
- package/cli/native.test.mjs +1039 -0
- package/cli.mjs +4 -0
- package/extras/css/fullscreen.css +8 -0
- package/extras/llms.txt +18 -0
- package/extras/skills/caper/SKILL.md +1 -0
- package/lib/{CaptionsPlugin-BoMkCsJO.js → CaptionsPlugin-COrofpHN.js} +2 -2
- package/lib/{CaptionsPlugin-BoMkCsJO.js.map → CaptionsPlugin-COrofpHN.js.map} +1 -1
- package/lib/{DataAdapter-DHWHuN-y.js → DataAdapter-T-22-_D1.js} +2 -2
- package/lib/{DataAdapter-DHWHuN-y.js.map → DataAdapter-T-22-_D1.js.map} +1 -1
- package/lib/{DebugRenderer-9a3mO9kX.js → DebugRenderer-ZN692Pbg.js} +4 -4
- package/lib/{DebugRenderer-9a3mO9kX.js.map → DebugRenderer-ZN692Pbg.js.map} +1 -1
- package/lib/{DevToolsPlugin-TkcBq1js.js → DevToolsPlugin-CQXFoj1T.js} +3 -3
- package/lib/{DevToolsPlugin-TkcBq1js.js.map → DevToolsPlugin-CQXFoj1T.js.map} +1 -1
- package/lib/{GSAPPlugin-DLOiVK_m.js → GSAPPlugin-CNkncyXS.js} +2 -2
- package/lib/{GSAPPlugin-DLOiVK_m.js.map → GSAPPlugin-CNkncyXS.js.map} +1 -1
- package/lib/{LayoutPlugin-CEPcr4GU.js → LayoutPlugin-BuJgr9bd.js} +26 -26
- package/lib/{LayoutPlugin-CEPcr4GU.js.map → LayoutPlugin-BuJgr9bd.js.map} +1 -1
- package/lib/{ScreenDebugPlugin-CiT0viiF.js → ScreenDebugPlugin-kz9Mr6j1.js} +2 -2
- package/lib/{ScreenDebugPlugin-CiT0viiF.js.map → ScreenDebugPlugin-kz9Mr6j1.js.map} +1 -1
- package/lib/{SpinePlugin-kyeWILtF.js → SpinePlugin-DDzD-Qxd.js} +1099 -877
- package/lib/SpinePlugin-DDzD-Qxd.js.map +1 -0
- package/lib/{StatsPlugin-5So44eOq.js → StatsPlugin-tyFGzVjy.js} +2 -2
- package/lib/{StatsPlugin-5So44eOq.js.map → StatsPlugin-tyFGzVjy.js.map} +1 -1
- package/lib/{VoiceOverPlugin--QoLj6pc.js → VoiceOverPlugin-rTNz_9eb.js} +2 -2
- package/lib/{VoiceOverPlugin--QoLj6pc.js.map → VoiceOverPlugin-rTNz_9eb.js.map} +1 -1
- package/lib/caper.mjs +51 -51
- package/lib/caper.mjs.map +1 -1
- package/lib/{const-GLIgV4ZV.js → const-Cj14a5U2.js} +5 -3
- package/lib/const-Cj14a5U2.js.map +1 -0
- package/lib/plugins/FullScreenPlugin.d.ts +65 -0
- package/lib/plugins/FullScreenPlugin.d.ts.map +1 -1
- package/lib/plugins/spine/SpinePlugin.d.ts.map +1 -1
- package/lib/plugins/spine/SpinePlugin.test.d.ts +2 -0
- package/lib/plugins/spine/SpinePlugin.test.d.ts.map +1 -0
- package/lib/{registries-C5yiKJ6v.js → registries-DmNGVLAi.js} +489 -446
- package/lib/registries-DmNGVLAi.js.map +1 -0
- package/lib/ui/Button.d.ts.map +1 -1
- package/lib/utils/platform.d.ts +5 -0
- package/lib/utils/platform.d.ts.map +1 -1
- package/lib/utils/platform.test.d.ts +2 -0
- package/lib/utils/platform.test.d.ts.map +1 -0
- package/lib/utils/types.d.ts +1 -1
- package/lib/utils/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/plugins/FullScreenPlugin.test.ts +138 -0
- package/src/plugins/FullScreenPlugin.ts +132 -0
- package/src/plugins/spine/SpinePlugin.test.ts +31 -0
- package/src/plugins/spine/SpinePlugin.ts +9 -2
- package/src/ui/Button.test.ts +22 -0
- package/src/ui/Button.ts +7 -0
- package/src/utils/platform.test.ts +20 -0
- package/src/utils/platform.ts +6 -0
- package/src/utils/types.ts +5 -1
- package/src/version.ts +2 -2
- package/lib/SpinePlugin-kyeWILtF.js.map +0 -1
- package/lib/const-GLIgV4ZV.js.map +0 -1
- package/lib/registries-C5yiKJ6v.js.map +0 -1
package/lib/ui/Button.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/ui/Button.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/ui/Button.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/platform.d.ts
CHANGED
|
@@ -9,6 +9,11 @@ export declare const isRetina: boolean;
|
|
|
9
9
|
* Check if we're on a touch device
|
|
10
10
|
*/
|
|
11
11
|
export declare const isTouch: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Check if we're running inside a Tauri webview (the native app shell), as
|
|
14
|
+
* opposed to a plain browser tab.
|
|
15
|
+
*/
|
|
16
|
+
export declare const isTauri: boolean;
|
|
12
17
|
/**
|
|
13
18
|
* Checks if the device is a mobile device.
|
|
14
19
|
* This uses the `isMobile` function from the `@pixi/utils` package.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/utils/platform.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,SAOV,CAAC;AAEZ;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAGX,CAAC;AAEZ;;;;GAIG;AACH,eAAO,MAAM,QAAQ,SAAwB,CAAC;AAC9C,eAAO,MAAM,SAAS,SAAmC,CAAC;AAC1D,eAAO,MAAM,KAAK,SAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/utils/platform.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,SAOV,CAAC;AAEZ;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAGX,CAAC;AAEZ;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,OAAiF,CAAC;AAExG;;;;GAIG;AACH,eAAO,MAAM,QAAQ,SAAwB,CAAC;AAC9C,eAAO,MAAM,SAAS,SAAmC,CAAC;AAC1D,eAAO,MAAM,KAAK,SAAiC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.test.d.ts","sourceRoot":"","sources":["../../src/utils/platform.test.ts"],"names":[],"mappings":""}
|
package/lib/utils/types.d.ts
CHANGED
|
@@ -121,7 +121,7 @@ export type AppSize = {
|
|
|
121
121
|
};
|
|
122
122
|
export type Eases<T extends string = string> = Record<T, gsap.EaseFunction>;
|
|
123
123
|
export type EaseString = 'none' | 'power1' | 'power1.in' | 'power1.out' | 'power1.inOut' | 'power2' | 'power2.in' | 'power2.out' | 'power2.inOut' | 'power3' | 'power3.in' | 'power3.out' | 'power3.inOut' | 'power4' | 'power4.in' | 'power4.out' | 'power4.inOut' | 'back' | 'back.in' | 'back.out' | 'back.inOut' | 'bounce' | 'bounce.in' | 'bounce.out' | 'bounce.inOut' | 'circ' | 'circ.in' | 'circ.out' | 'circ.inOut' | 'elastic' | 'elastic.in' | 'elastic.out' | 'elastic.inOut' | 'expo' | 'expo.in' | 'expo.out' | 'expo.inOut' | 'sine' | 'sine.in' | 'sine.out' | 'sine.inOut';
|
|
124
|
-
export type KeyboardKey = 'Backspace' | 'Tab' | 'Enter' | 'Shift' | 'Control' | 'Alt' | 'Pause' | 'CapsLock' | 'Escape' | 'Space' | 'PageUp' | 'PageDown' | 'End' | 'Home' | 'ArrowLeft' | 'ArrowUp' | 'ArrowRight' | 'ArrowDown' | 'PrintScreen' | 'Insert' | 'Delete' | '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'i' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 't' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' | 'NumLock' | 'NumpadDivide' | 'NumpadMultiply' | 'NumpadSubtract' | 'NumpadAdd' | 'NumpadEnter' | 'Numpad0' | 'Numpad1' | 'Numpad2' | 'Numpad3' | 'Numpad4' | 'Numpad5' | 'Numpad6' | 'Numpad7' | 'Numpad8' | 'Numpad9' | 'NumpadDecimal' | 'F1' | 'F2' | 'F3' | 'F4' | 'F5' | 'F6' | 'F7' | 'F8' | 'F9' | 'F10' | 'F11' | 'F12' | 'Semicolon' | 'Equal' | 'Comma' | 'Minus' | 'Period' | 'Slash' | 'Backquote' | 'BracketLeft' | 'Backslash' | 'BracketRight' | 'Quote' | 'IntlBackslash' | 'MetaLeft' | 'MetaRight' | 'ContextMenu';
|
|
124
|
+
export type KeyboardKey = 'Backspace' | 'Tab' | 'Enter' | 'Shift' | 'Control' | 'Alt' | 'Pause' | 'CapsLock' | 'Escape' | 'Space' | 'PageUp' | 'PageDown' | 'End' | 'Home' | 'ArrowLeft' | 'ArrowUp' | 'ArrowRight' | 'ArrowDown' | 'PrintScreen' | 'Insert' | 'Delete' | '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'i' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 't' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' | 'NumLock' | 'NumpadDivide' | 'NumpadMultiply' | 'NumpadSubtract' | 'NumpadAdd' | 'NumpadEnter' | 'Numpad0' | 'Numpad1' | 'Numpad2' | 'Numpad3' | 'Numpad4' | 'Numpad5' | 'Numpad6' | 'Numpad7' | 'Numpad8' | 'Numpad9' | 'NumpadDecimal' | 'F1' | 'F2' | 'F3' | 'F4' | 'F5' | 'F6' | 'F7' | 'F8' | 'F9' | 'F10' | 'F11' | 'F12' | 'Semicolon' | 'Equal' | 'Comma' | 'Minus' | 'Period' | 'Slash' | 'Backquote' | 'BracketLeft' | 'Backslash' | 'BracketRight' | 'Quote' | 'IntlBackslash' | 'MetaLeft' | 'MetaRight' | 'ContextMenu' | 'GoBack' | 'BrowserBack';
|
|
125
125
|
export type { Spine } from '../plugins/spine/pixi-spine';
|
|
126
126
|
export type DeepPartial<T> = {
|
|
127
127
|
[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
|
package/lib/utils/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@caperjs/core",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.2",
|
|
4
4
|
"title": "Caper",
|
|
5
5
|
"description": "An opinionated HTML game framework built on PixiJS v8",
|
|
6
6
|
"bin": {
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
"peerDependencies": {
|
|
99
99
|
"@pixi/sound": "^6.0.1",
|
|
100
100
|
"gsap": "^3.15.0",
|
|
101
|
-
"pixi.js": "8.
|
|
101
|
+
"pixi.js": "8.22.0",
|
|
102
102
|
"vite": "^8.0.7",
|
|
103
103
|
"workbox-window": "^7.4.0"
|
|
104
104
|
},
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
"npm-run-all": "^4.1.5",
|
|
118
118
|
"oxc-parser": "^0.124.0",
|
|
119
119
|
"pixi-filters": "^6.1.2",
|
|
120
|
-
"pixi.js": "8.
|
|
120
|
+
"pixi.js": "8.22.0",
|
|
121
121
|
"prettier": "^3.2.5",
|
|
122
122
|
"rimraf": "^5.0.5",
|
|
123
123
|
"shelljs": "^0.8.5",
|
|
@@ -9,6 +9,8 @@ vi.mock('../core/Application', () => ({
|
|
|
9
9
|
Application: { getInstance: () => ({}), containerElement: null },
|
|
10
10
|
}));
|
|
11
11
|
|
|
12
|
+
import { Logger } from '../utils';
|
|
13
|
+
import type { FullscreenDriver } from './FullScreenPlugin';
|
|
12
14
|
import { FullScreenPlugin } from './FullScreenPlugin';
|
|
13
15
|
|
|
14
16
|
describe('FullScreenPlugin fullscreenchange handling', () => {
|
|
@@ -55,3 +57,139 @@ describe('FullScreenPlugin fullscreenchange handling', () => {
|
|
|
55
57
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
56
58
|
});
|
|
57
59
|
});
|
|
60
|
+
|
|
61
|
+
function makeDriver(overrides: Partial<FullscreenDriver> = {}) {
|
|
62
|
+
const unsubscribe = vi.fn();
|
|
63
|
+
const driver = {
|
|
64
|
+
supported: true,
|
|
65
|
+
request: vi.fn(),
|
|
66
|
+
exit: vi.fn(),
|
|
67
|
+
subscribe: vi.fn(() => unsubscribe),
|
|
68
|
+
...overrides,
|
|
69
|
+
} as FullscreenDriver & {
|
|
70
|
+
request: ReturnType<typeof vi.fn>;
|
|
71
|
+
exit: ReturnType<typeof vi.fn>;
|
|
72
|
+
subscribe: ReturnType<typeof vi.fn>;
|
|
73
|
+
};
|
|
74
|
+
return { driver, unsubscribe };
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
describe('FullScreenPlugin fullscreen driver seam', () => {
|
|
78
|
+
let plugin: FullScreenPlugin;
|
|
79
|
+
let element: HTMLElement & { requestFullscreen: ReturnType<typeof vi.fn> };
|
|
80
|
+
|
|
81
|
+
beforeEach(() => {
|
|
82
|
+
plugin = new FullScreenPlugin();
|
|
83
|
+
plugin.initialize();
|
|
84
|
+
element = document.createElement('div') as any;
|
|
85
|
+
element.requestFullscreen = vi.fn();
|
|
86
|
+
plugin.setFullScreenElement(element);
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
afterEach(() => {
|
|
90
|
+
plugin.destroy();
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
it('routes setFullScreen through the driver instead of the DOM', () => {
|
|
94
|
+
const { driver } = makeDriver();
|
|
95
|
+
plugin.setFullscreenDriver(driver);
|
|
96
|
+
|
|
97
|
+
plugin.setFullScreen(true);
|
|
98
|
+
expect(driver.request).toHaveBeenCalledTimes(1);
|
|
99
|
+
expect(element.requestFullscreen).not.toHaveBeenCalled();
|
|
100
|
+
|
|
101
|
+
plugin.setFullScreen(false);
|
|
102
|
+
expect(driver.exit).toHaveBeenCalledTimes(1);
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
it('routes toggleFullScreen through the driver', () => {
|
|
106
|
+
const { driver } = makeDriver();
|
|
107
|
+
plugin.setFullscreenDriver(driver);
|
|
108
|
+
|
|
109
|
+
plugin.toggleFullScreen();
|
|
110
|
+
expect(driver.request).toHaveBeenCalledTimes(1);
|
|
111
|
+
|
|
112
|
+
plugin.toggleFullScreen();
|
|
113
|
+
expect(driver.exit).toHaveBeenCalledTimes(1);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
it('mirrors canFullscreen from the driver', () => {
|
|
117
|
+
const { driver } = makeDriver({ supported: false });
|
|
118
|
+
plugin.setFullscreenDriver(driver);
|
|
119
|
+
expect(plugin.canFullscreen).toBe(false);
|
|
120
|
+
|
|
121
|
+
plugin.setFullscreenDriver(makeDriver({ supported: true }).driver);
|
|
122
|
+
expect(plugin.canFullscreen).toBe(true);
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
it('starts with isFullscreen false and updates it from notify', () => {
|
|
126
|
+
const { driver } = makeDriver();
|
|
127
|
+
plugin.setFullscreenDriver(driver);
|
|
128
|
+
const notify = driver.subscribe.mock.calls[0][0] as (v: boolean) => void;
|
|
129
|
+
const spy = vi.fn();
|
|
130
|
+
plugin.onFullScreenChange.connect(spy);
|
|
131
|
+
|
|
132
|
+
expect(plugin.isFullscreen).toBe(false);
|
|
133
|
+
|
|
134
|
+
notify(true);
|
|
135
|
+
expect(plugin.isFullscreen).toBe(true);
|
|
136
|
+
expect(plugin.isFullScreen).toBe(true);
|
|
137
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
138
|
+
expect(spy).toHaveBeenCalledWith(true);
|
|
139
|
+
|
|
140
|
+
// same value again — no second emit
|
|
141
|
+
notify(true);
|
|
142
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
143
|
+
|
|
144
|
+
notify(false);
|
|
145
|
+
expect(plugin.isFullscreen).toBe(false);
|
|
146
|
+
expect(spy).toHaveBeenCalledTimes(2);
|
|
147
|
+
expect(spy).toHaveBeenLastCalledWith(false);
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
it('unsubscribes the previous driver when a new one is set', () => {
|
|
151
|
+
const first = makeDriver();
|
|
152
|
+
plugin.setFullscreenDriver(first.driver);
|
|
153
|
+
expect(first.unsubscribe).not.toHaveBeenCalled();
|
|
154
|
+
|
|
155
|
+
const second = makeDriver();
|
|
156
|
+
plugin.setFullscreenDriver(second.driver);
|
|
157
|
+
expect(first.unsubscribe).toHaveBeenCalledTimes(1);
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
it('unsubscribes and restores DOM behavior when the driver is cleared', () => {
|
|
161
|
+
const { driver, unsubscribe } = makeDriver();
|
|
162
|
+
plugin.setFullscreenDriver(driver);
|
|
163
|
+
plugin.setFullscreenDriver(null);
|
|
164
|
+
|
|
165
|
+
expect(unsubscribe).toHaveBeenCalledTimes(1);
|
|
166
|
+
|
|
167
|
+
plugin.setFullScreen(true);
|
|
168
|
+
expect(driver.request).not.toHaveBeenCalled();
|
|
169
|
+
expect(element.requestFullscreen).toHaveBeenCalledTimes(1);
|
|
170
|
+
expect(plugin.canFullscreen).toBe(true);
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
it('unsubscribes the driver on destroy', () => {
|
|
174
|
+
const { driver, unsubscribe } = makeDriver();
|
|
175
|
+
plugin.setFullscreenDriver(driver);
|
|
176
|
+
|
|
177
|
+
plugin.destroy();
|
|
178
|
+
|
|
179
|
+
expect(unsubscribe).toHaveBeenCalledTimes(1);
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
it('logs a rejected driver request instead of throwing', async () => {
|
|
183
|
+
const error = new Error('nope');
|
|
184
|
+
const spy = vi.spyOn(Logger, 'error').mockImplementation(() => undefined);
|
|
185
|
+
const { driver } = makeDriver({ request: vi.fn(() => Promise.reject(error)) });
|
|
186
|
+
plugin.setFullscreenDriver(driver);
|
|
187
|
+
|
|
188
|
+
expect(() => plugin.setFullScreen(true)).not.toThrow();
|
|
189
|
+
await Promise.resolve();
|
|
190
|
+
await Promise.resolve();
|
|
191
|
+
|
|
192
|
+
expect(spy).toHaveBeenCalled();
|
|
193
|
+
spy.mockRestore();
|
|
194
|
+
});
|
|
195
|
+
});
|
|
@@ -4,6 +4,24 @@ import { bindAllMethods, Logger } from '../utils';
|
|
|
4
4
|
import type { IPlugin } from './Plugin';
|
|
5
5
|
import { Plugin } from './Plugin';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Supplies fullscreen to the {@link FullScreenPlugin} from somewhere other than the
|
|
9
|
+
* DOM Fullscreen API — a native shell, say, where `requestFullscreen` does not exist.
|
|
10
|
+
*
|
|
11
|
+
* Install one with {@link IFullScreenPlugin.setFullscreenDriver}; passing `null`
|
|
12
|
+
* restores the plugin's normal DOM behavior.
|
|
13
|
+
*/
|
|
14
|
+
export interface FullscreenDriver {
|
|
15
|
+
/** Whether this driver can enter fullscreen at all. */
|
|
16
|
+
readonly supported: boolean;
|
|
17
|
+
/** Enter fullscreen. A rejected promise is logged, never thrown. */
|
|
18
|
+
request(): void | Promise<void>;
|
|
19
|
+
/** Leave fullscreen. A rejected promise is logged, never thrown. */
|
|
20
|
+
exit(): void | Promise<void>;
|
|
21
|
+
/** Start reporting state changes; returns an unsubscribe. Called once when the driver is set. */
|
|
22
|
+
subscribe?(notify: (isFullscreen: boolean) => void): () => void;
|
|
23
|
+
}
|
|
24
|
+
|
|
7
25
|
/**
|
|
8
26
|
* Interface for the FullScreen plugin providing cross-browser fullscreen functionality.
|
|
9
27
|
* Handles fullscreen mode management with comprehensive browser compatibility.
|
|
@@ -21,6 +39,8 @@ export interface IFullScreenPlugin extends IPlugin {
|
|
|
21
39
|
setFullScreen: (value: boolean) => void;
|
|
22
40
|
/** Sets the element to be used for fullscreen operations */
|
|
23
41
|
setFullScreenElement: (element: HTMLElement | Window | null) => void;
|
|
42
|
+
/** Installs (or, with `null`, removes) a driver that supplies fullscreen instead of the DOM */
|
|
43
|
+
setFullscreenDriver: (driver: FullscreenDriver | null) => void;
|
|
24
44
|
/** Whether the current environment supports fullscreen functionality */
|
|
25
45
|
readonly canFullscreen: boolean;
|
|
26
46
|
}
|
|
@@ -80,6 +100,12 @@ export class FullScreenPlugin extends Plugin implements IFullScreenPlugin {
|
|
|
80
100
|
private _isFullScreen: boolean = false;
|
|
81
101
|
/** Internal reference to the fullscreen target element */
|
|
82
102
|
private _fullScreenElement: HTMLElement | Window | null = null;
|
|
103
|
+
/** Installed driver, if any. When set it replaces every DOM fullscreen path. */
|
|
104
|
+
private _driver: FullscreenDriver | null = null;
|
|
105
|
+
/** Unsubscribe handed back by the current driver's `subscribe`. */
|
|
106
|
+
private _driverUnsubscribe: (() => void) | null = null;
|
|
107
|
+
/** Last state the current driver reported. */
|
|
108
|
+
private _driverIsFullScreen: boolean = false;
|
|
83
109
|
|
|
84
110
|
/**
|
|
85
111
|
* Sets the fullscreen state and triggers the appropriate fullscreen operation.
|
|
@@ -193,6 +219,11 @@ export class FullScreenPlugin extends Plugin implements IFullScreenPlugin {
|
|
|
193
219
|
*/
|
|
194
220
|
public setFullScreen(value: boolean) {
|
|
195
221
|
this._isFullScreen = value;
|
|
222
|
+
const driver = this._driver;
|
|
223
|
+
if (driver) {
|
|
224
|
+
this._runDriver(() => (value ? driver.request() : driver.exit()));
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
196
227
|
if (value) {
|
|
197
228
|
this._requestFullscreen();
|
|
198
229
|
} else {
|
|
@@ -226,6 +257,42 @@ export class FullScreenPlugin extends Plugin implements IFullScreenPlugin {
|
|
|
226
257
|
this._fullScreenElement = value;
|
|
227
258
|
}
|
|
228
259
|
|
|
260
|
+
/**
|
|
261
|
+
* Installs a driver that supplies fullscreen instead of the DOM Fullscreen API —
|
|
262
|
+
* for native shells (Tauri, say) whose webview has no `requestFullscreen`.
|
|
263
|
+
*
|
|
264
|
+
* Setting a driver unsubscribes the previous one. Passing `null` removes the
|
|
265
|
+
* driver and restores the plugin's normal DOM behavior.
|
|
266
|
+
*
|
|
267
|
+
* @param driver - The driver to install, or `null` to remove the current one.
|
|
268
|
+
*
|
|
269
|
+
* @example
|
|
270
|
+
* ```typescript
|
|
271
|
+
* fullscreenPlugin.setFullscreenDriver({
|
|
272
|
+
* supported: true,
|
|
273
|
+
* request: () => win.setFullscreen(true),
|
|
274
|
+
* exit: () => win.setFullscreen(false),
|
|
275
|
+
* subscribe: (notify) => win.onResized(async () => notify(await win.isFullscreen())),
|
|
276
|
+
* });
|
|
277
|
+
* ```
|
|
278
|
+
*/
|
|
279
|
+
public setFullscreenDriver(driver: FullscreenDriver | null): void {
|
|
280
|
+
this._unsubscribeDriver();
|
|
281
|
+
this._driver = driver;
|
|
282
|
+
this._driverIsFullScreen = false;
|
|
283
|
+
if (driver?.subscribe) {
|
|
284
|
+
this._driverUnsubscribe = driver.subscribe(this._onDriverStateChange);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Tears down the plugin, unsubscribing any installed fullscreen driver.
|
|
290
|
+
*/
|
|
291
|
+
public destroy(): void {
|
|
292
|
+
this._unsubscribeDriver();
|
|
293
|
+
super.destroy();
|
|
294
|
+
}
|
|
295
|
+
|
|
229
296
|
/**
|
|
230
297
|
* Checks if the current environment and element support fullscreen functionality.
|
|
231
298
|
*
|
|
@@ -244,6 +311,9 @@ export class FullScreenPlugin extends Plugin implements IFullScreenPlugin {
|
|
|
244
311
|
* ```
|
|
245
312
|
*/
|
|
246
313
|
public get canFullscreen(): boolean {
|
|
314
|
+
if (this._driver) {
|
|
315
|
+
return this._driver.supported;
|
|
316
|
+
}
|
|
247
317
|
const element = this._fullScreenElement || Application.containerElement;
|
|
248
318
|
if (!element) return false;
|
|
249
319
|
|
|
@@ -263,6 +333,9 @@ export class FullScreenPlugin extends Plugin implements IFullScreenPlugin {
|
|
|
263
333
|
* @returns True if any element is currently in fullscreen mode
|
|
264
334
|
*/
|
|
265
335
|
public get isFullscreen(): boolean {
|
|
336
|
+
if (this._driver) {
|
|
337
|
+
return this._driverIsFullScreen;
|
|
338
|
+
}
|
|
266
339
|
return !!(
|
|
267
340
|
document.fullscreenElement ||
|
|
268
341
|
(document as any).webkitFullscreenElement ||
|
|
@@ -346,4 +419,63 @@ export class FullScreenPlugin extends Plugin implements IFullScreenPlugin {
|
|
|
346
419
|
this._isFullScreen = this.isFullscreen;
|
|
347
420
|
this.onFullScreenChange.emit(this._isFullScreen);
|
|
348
421
|
}
|
|
422
|
+
|
|
423
|
+
/**
|
|
424
|
+
* Handles a state change reported by the installed driver. Emits only when the
|
|
425
|
+
* value actually changed — drivers poll (Tauri has no fullscreen-change event).
|
|
426
|
+
* @private
|
|
427
|
+
*/
|
|
428
|
+
private _onDriverStateChange(isFullscreen: boolean): void {
|
|
429
|
+
if (isFullscreen === this._driverIsFullScreen) {
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
432
|
+
this._driverIsFullScreen = isFullscreen;
|
|
433
|
+
this._isFullScreen = isFullscreen;
|
|
434
|
+
this.onFullScreenChange.emit(isFullscreen);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* Runs a driver call, swallowing (and logging) any sync throw or rejection.
|
|
439
|
+
* @private
|
|
440
|
+
*/
|
|
441
|
+
private _runDriver(fn: () => void | Promise<void>): void {
|
|
442
|
+
try {
|
|
443
|
+
const result = fn();
|
|
444
|
+
if (result && typeof (result as Promise<void>).catch === 'function') {
|
|
445
|
+
(result as Promise<void>).catch((error) => {
|
|
446
|
+
Logger.error('Fullscreen driver failed:', describeError(error));
|
|
447
|
+
});
|
|
448
|
+
}
|
|
449
|
+
} catch (error) {
|
|
450
|
+
Logger.error('Fullscreen driver failed:', describeError(error));
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
/**
|
|
455
|
+
* Drops the current driver's subscription, if it has one.
|
|
456
|
+
* @private
|
|
457
|
+
*/
|
|
458
|
+
private _unsubscribeDriver(): void {
|
|
459
|
+
const unsubscribe = this._driverUnsubscribe;
|
|
460
|
+
this._driverUnsubscribe = null;
|
|
461
|
+
if (!unsubscribe) {
|
|
462
|
+
return;
|
|
463
|
+
}
|
|
464
|
+
try {
|
|
465
|
+
unsubscribe();
|
|
466
|
+
} catch (error) {
|
|
467
|
+
Logger.error('Fullscreen driver unsubscribe failed:', error);
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
/** Drivers reject with whatever their platform hands back, often a plain object. */
|
|
473
|
+
function describeError(error: unknown): string {
|
|
474
|
+
if (error instanceof Error) return error.message;
|
|
475
|
+
if (typeof error === 'string') return error;
|
|
476
|
+
try {
|
|
477
|
+
return JSON.stringify(error);
|
|
478
|
+
} catch {
|
|
479
|
+
return String(error);
|
|
480
|
+
}
|
|
349
481
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { extensions } from 'pixi.js';
|
|
2
|
+
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
3
|
+
|
|
4
|
+
// SpinePlugin extends Plugin, which transitively imports Application → the whole
|
|
5
|
+
// display graph (and an import cycle). The base class is irrelevant here. Stub it.
|
|
6
|
+
vi.mock('../Plugin', () => ({ Plugin: class {} }));
|
|
7
|
+
|
|
8
|
+
import { SpinePlugin } from './SpinePlugin';
|
|
9
|
+
import { SpinePipe } from './pixi-spine';
|
|
10
|
+
import { DarkTintBatcher } from './pixi-spine/darktint/DarkTintBatcher';
|
|
11
|
+
|
|
12
|
+
describe('SpinePlugin', () => {
|
|
13
|
+
afterEach(() => {
|
|
14
|
+
vi.restoreAllMocks();
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
// package.json declares `"sideEffects": false`, so a production bundler is free
|
|
18
|
+
// to drop `import './SpinePipe.js'` and with it the module-scope
|
|
19
|
+
// `extensions.add(SpinePipe)`. Without the pipe, the first Spine on stage throws
|
|
20
|
+
// inside `renderer.render()`, which kills Pixi's ticker: the picture freezes.
|
|
21
|
+
// Registration has to be an explicit call the bundler can see.
|
|
22
|
+
it('registers the render pipe and the dark-tint batcher explicitly, not via module side effects', async () => {
|
|
23
|
+
const add = vi.spyOn(extensions, 'add');
|
|
24
|
+
|
|
25
|
+
await new SpinePlugin().initialize();
|
|
26
|
+
|
|
27
|
+
const registered = add.mock.calls.flat();
|
|
28
|
+
expect(registered).toContain(SpinePipe);
|
|
29
|
+
expect(registered).toContain(DarkTintBatcher);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { extensions } from 'pixi.js';
|
|
2
2
|
import { Plugin } from '../Plugin';
|
|
3
|
-
import { Spine, spineLoaderExtension, spineTextureAtlasLoader } from './pixi-spine';
|
|
3
|
+
import { Spine, spineLoaderExtension, SpinePipe, spineTextureAtlasLoader } from './pixi-spine';
|
|
4
|
+
import { DarkTintBatcher } from './pixi-spine/darktint/DarkTintBatcher';
|
|
4
5
|
|
|
5
6
|
export class SpinePlugin extends Plugin {
|
|
6
7
|
public readonly id = 'SpinePlugin';
|
|
@@ -8,7 +9,13 @@ export class SpinePlugin extends Plugin {
|
|
|
8
9
|
public async initialize() {
|
|
9
10
|
extensions.add(spineTextureAtlasLoader);
|
|
10
11
|
extensions.add(spineLoaderExtension);
|
|
11
|
-
//
|
|
12
|
+
// Registered here, not left to the module-scope `extensions.add` calls in
|
|
13
|
+
// ./pixi-spine: package.json declares `"sideEffects": false`, so a production
|
|
14
|
+
// bundler drops those imports and the first Spine on stage throws inside
|
|
15
|
+
// `renderer.render()`, killing the ticker. `extensions.add` de-dupes by name,
|
|
16
|
+
// so the module-scope calls (still live in dev) are harmless.
|
|
17
|
+
extensions.add(SpinePipe);
|
|
18
|
+
extensions.add(DarkTintBatcher);
|
|
12
19
|
(window as any).Spine = Spine;
|
|
13
20
|
}
|
|
14
21
|
}
|
package/src/ui/Button.test.ts
CHANGED
|
@@ -208,6 +208,28 @@ describe('Button press-state machine', () => {
|
|
|
208
208
|
expect(onClick).toHaveBeenCalledTimes(2);
|
|
209
209
|
});
|
|
210
210
|
|
|
211
|
+
it('fires onClick for every real press even though Pixi recycles one pooled event object for all clicks', async () => {
|
|
212
|
+
const button = makeButton();
|
|
213
|
+
const onClick = vi.fn();
|
|
214
|
+
button.onClick.connect(onClick);
|
|
215
|
+
(button as any).isOver = true;
|
|
216
|
+
|
|
217
|
+
// EventBoundary.mapPointerUp takes its 'click' event from a pool
|
|
218
|
+
// (clonePointerEvent -> dispatch -> freeEvent), so consecutive clicks arrive as
|
|
219
|
+
// the SAME object. Identity alone must not make the second press look like the
|
|
220
|
+
// accessibility click+tap duplicate.
|
|
221
|
+
const pooledClick = { type: 'click', pointerId: 1 };
|
|
222
|
+
for (let press = 0; press < 3; press++) {
|
|
223
|
+
(button as any).handlePointerDown({ type: 'pointerdown', pointerId: 1 });
|
|
224
|
+
(button as any).handlePointerUp({ type: 'pointerup', pointerId: 1 });
|
|
225
|
+
(button as any).handleClick(pooledClick);
|
|
226
|
+
await Promise.resolve(); // each real press is its own task
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
expect(onClick).toHaveBeenCalledTimes(3);
|
|
230
|
+
expect(button.isDown).toBe(false);
|
|
231
|
+
});
|
|
232
|
+
|
|
211
233
|
it('toggles the ticker listener on for the first isDown callback and off when the last is removed', () => {
|
|
212
234
|
const button = makeButton();
|
|
213
235
|
const add = vi.fn();
|
package/src/ui/Button.ts
CHANGED
|
@@ -431,6 +431,13 @@ export class Button extends _Button implements IButton {
|
|
|
431
431
|
return;
|
|
432
432
|
}
|
|
433
433
|
this._lastClickEvent = e;
|
|
434
|
+
// Only the same-task duplicate is a duplicate. Pixi pools its events
|
|
435
|
+
// (EventBoundary: clonePointerEvent -> dispatch -> freeEvent), so the NEXT real
|
|
436
|
+
// click arrives as this very object; remembering it any longer swallowed every
|
|
437
|
+
// click after the first and left isDown stuck true.
|
|
438
|
+
queueMicrotask(() => {
|
|
439
|
+
this._lastClickEvent = undefined;
|
|
440
|
+
});
|
|
434
441
|
this.isDown = false;
|
|
435
442
|
this.onClick.emit();
|
|
436
443
|
if (this.config.sounds?.click) {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
+
|
|
3
|
+
describe('isTauri', () => {
|
|
4
|
+
beforeEach(() => {
|
|
5
|
+
delete (window as unknown as { __TAURI_INTERNALS__?: unknown }).__TAURI_INTERNALS__;
|
|
6
|
+
vi.resetModules();
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
it('is false in the default test env', async () => {
|
|
10
|
+
const { isTauri } = await import('./platform');
|
|
11
|
+
expect(isTauri).toBe(false);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it('is true when window.__TAURI_INTERNALS__ is defined before a fresh import', async () => {
|
|
15
|
+
(window as unknown as { __TAURI_INTERNALS__?: unknown }).__TAURI_INTERNALS__ = {};
|
|
16
|
+
vi.resetModules();
|
|
17
|
+
const { isTauri } = await import('./platform');
|
|
18
|
+
expect(isTauri).toBe(true);
|
|
19
|
+
});
|
|
20
|
+
});
|
package/src/utils/platform.ts
CHANGED
|
@@ -23,6 +23,12 @@ export const isTouch: boolean =
|
|
|
23
23
|
? 'ontouchstart' in window || navigator.maxTouchPoints > 0
|
|
24
24
|
: false;
|
|
25
25
|
|
|
26
|
+
/**
|
|
27
|
+
* Check if we're running inside a Tauri webview (the native app shell), as
|
|
28
|
+
* opposed to a plain browser tab.
|
|
29
|
+
*/
|
|
30
|
+
export const isTauri: boolean = typeof window !== 'undefined' ? '__TAURI_INTERNALS__' in window : false;
|
|
31
|
+
|
|
26
32
|
/**
|
|
27
33
|
* Checks if the device is a mobile device.
|
|
28
34
|
* This uses the `isMobile` function from the `@pixi/utils` package.
|
package/src/utils/types.ts
CHANGED
|
@@ -286,7 +286,11 @@ export type KeyboardKey =
|
|
|
286
286
|
| 'IntlBackslash'
|
|
287
287
|
| 'MetaLeft'
|
|
288
288
|
| 'MetaRight'
|
|
289
|
-
| 'ContextMenu'
|
|
289
|
+
| 'ContextMenu'
|
|
290
|
+
// Navigation keys sent by Android's back button/gesture (delivered by
|
|
291
|
+
// @caperjs/plugin-tauri), TV remotes, and some Android browsers.
|
|
292
|
+
| 'GoBack'
|
|
293
|
+
| 'BrowserBack';
|
|
290
294
|
|
|
291
295
|
export type { Spine } from '../plugins/spine/pixi-spine';
|
|
292
296
|
|
package/src/version.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// This file is auto-generated during the build process.
|
|
2
|
-
export const version: string = '0.7.
|
|
3
|
-
export const pixiVersion: string = '8.
|
|
2
|
+
export const version: string = '0.7.2';
|
|
3
|
+
export const pixiVersion: string = '8.22.0';
|