diff --git a/index.html b/index.html index b013be2..9e569d6 100644 --- a/index.html +++ b/index.html @@ -3,9 +3,15 @@ - + ˚ʚ Furina.id ɞ˚ + + + + + + diff --git a/package.json b/package.json index de6c8e6..f3d1595 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,8 @@ }, "dependencies": { "clsx": "^2.1.0", + "howler": "^2.2.4", + "pixi.js": "^7.3.3", "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.21.1", @@ -18,6 +20,7 @@ "tailwind-merge": "^2.2.0" }, "devDependencies": { + "@types/howler": "^2.2.11", "@types/node": "^20.10.6", "@types/react": "^18.2.43", "@types/react-dom": "^18.2.17", diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png new file mode 100644 index 0000000..60859a2 Binary files /dev/null and b/public/android-chrome-192x192.png differ diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png new file mode 100644 index 0000000..0a596c4 Binary files /dev/null and b/public/android-chrome-512x512.png differ diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000..8b3c320 Binary files /dev/null and b/public/apple-touch-icon.png differ diff --git a/public/assets/images/furina-beeg.webp b/public/assets/images/furina-beeg.webp new file mode 100644 index 0000000..65f2eb9 Binary files /dev/null and b/public/assets/images/furina-beeg.webp differ diff --git a/public/assets/images/furina-curious.webp b/public/assets/images/furina-curious.webp new file mode 100644 index 0000000..a1ab0e2 Binary files /dev/null and b/public/assets/images/furina-curious.webp differ diff --git a/public/assets/images/furina-happy.webp b/public/assets/images/furina-happy.webp new file mode 100644 index 0000000..3d8cf6c Binary files /dev/null and b/public/assets/images/furina-happy.webp differ diff --git a/public/assets/images/hand.webp b/public/assets/images/hand.webp new file mode 100644 index 0000000..85017a3 Binary files /dev/null and b/public/assets/images/hand.webp differ diff --git a/public/assets/images/handpet/handpet_00.webp b/public/assets/images/handpet/handpet_00.webp new file mode 100644 index 0000000..2e2ef17 Binary files /dev/null and b/public/assets/images/handpet/handpet_00.webp differ diff --git a/public/assets/images/handpet/handpet_01.webp b/public/assets/images/handpet/handpet_01.webp new file mode 100644 index 0000000..95f97de Binary files /dev/null and b/public/assets/images/handpet/handpet_01.webp differ diff --git a/public/assets/images/handpet/handpet_02.webp b/public/assets/images/handpet/handpet_02.webp new file mode 100644 index 0000000..267beb2 Binary files /dev/null and b/public/assets/images/handpet/handpet_02.webp differ diff --git a/public/assets/images/handpet/handpet_03.webp b/public/assets/images/handpet/handpet_03.webp new file mode 100644 index 0000000..dbbb39f Binary files /dev/null and b/public/assets/images/handpet/handpet_03.webp differ diff --git a/public/assets/images/handpet/handpet_04.webp b/public/assets/images/handpet/handpet_04.webp new file mode 100644 index 0000000..a22e4a0 Binary files /dev/null and b/public/assets/images/handpet/handpet_04.webp differ diff --git a/public/assets/images/handpet/handpet_05.webp b/public/assets/images/handpet/handpet_05.webp new file mode 100644 index 0000000..8cbbd69 Binary files /dev/null and b/public/assets/images/handpet/handpet_05.webp differ diff --git a/public/assets/images/handpet/handpet_06.webp b/public/assets/images/handpet/handpet_06.webp new file mode 100644 index 0000000..9b5904c Binary files /dev/null and b/public/assets/images/handpet/handpet_06.webp differ diff --git a/public/assets/images/handpet/handpet_07.webp b/public/assets/images/handpet/handpet_07.webp new file mode 100644 index 0000000..85c960b Binary files /dev/null and b/public/assets/images/handpet/handpet_07.webp differ diff --git a/public/assets/images/handpet/handpet_08.webp b/public/assets/images/handpet/handpet_08.webp new file mode 100644 index 0000000..d836273 Binary files /dev/null and b/public/assets/images/handpet/handpet_08.webp differ diff --git a/public/assets/images/handpet/handpet_09.webp b/public/assets/images/handpet/handpet_09.webp new file mode 100644 index 0000000..8cee160 Binary files /dev/null and b/public/assets/images/handpet/handpet_09.webp differ diff --git a/public/assets/images/handpet/handpet_10.webp b/public/assets/images/handpet/handpet_10.webp new file mode 100644 index 0000000..69c834b Binary files /dev/null and b/public/assets/images/handpet/handpet_10.webp differ diff --git a/public/assets/sfx/kuru-kuru-kururin.ogg b/public/assets/sfx/kuru-kuru-kururin.ogg new file mode 100644 index 0000000..080af08 Binary files /dev/null and b/public/assets/sfx/kuru-kuru-kururin.ogg differ diff --git a/public/assets/sfx/pet-the-peepo-prepare.ogg b/public/assets/sfx/pet-the-peepo-prepare.ogg new file mode 100644 index 0000000..365fe23 Binary files /dev/null and b/public/assets/sfx/pet-the-peepo-prepare.ogg differ diff --git a/public/assets/sfx/pet-the-peepo.ogg b/public/assets/sfx/pet-the-peepo.ogg new file mode 100644 index 0000000..25918bf Binary files /dev/null and b/public/assets/sfx/pet-the-peepo.ogg differ diff --git a/public/assets/ui/btn_play.png b/public/assets/ui/btn_play.png new file mode 100755 index 0000000..fa1a9c2 Binary files /dev/null and b/public/assets/ui/btn_play.png differ diff --git a/public/assets/ui/btn_touch.png b/public/assets/ui/btn_touch.png new file mode 100644 index 0000000..c701064 Binary files /dev/null and b/public/assets/ui/btn_touch.png differ diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png new file mode 100644 index 0000000..0e03d60 Binary files /dev/null and b/public/favicon-16x16.png differ diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png new file mode 100644 index 0000000..d623713 Binary files /dev/null and b/public/favicon-32x32.png differ diff --git a/public/favicon.gif b/public/favicon.gif new file mode 100644 index 0000000..ab3db91 Binary files /dev/null and b/public/favicon.gif differ diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..5e05c0e Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/site.webmanifest b/public/site.webmanifest new file mode 100644 index 0000000..45dc8a2 --- /dev/null +++ b/public/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/src/components/containers/AppBar.tsx b/src/components/containers/AppBar.tsx index 2da265e..293d46e 100644 --- a/src/components/containers/AppBar.tsx +++ b/src/components/containers/AppBar.tsx @@ -23,8 +23,8 @@ const AppBar = () => { - - + + diff --git a/src/pages/home/game.ts b/src/pages/home/game.ts new file mode 100644 index 0000000..bb35076 --- /dev/null +++ b/src/pages/home/game.ts @@ -0,0 +1,300 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { + AnimatedSprite, + Application, + Assets, + Sprite, + Text, + TextStyle, +} from "pixi.js"; +import StateMachine from "./stateMachine"; +import { Howl } from "howler"; + +const IMG_URI = "/assets/images/"; +const UI_URI = "/assets/ui/"; +const SFX_URI = "/assets/sfx/"; + +const STATE = { + MAIN_SCREEN: 0, + PREPARE: 1, + RUNNING: 2, +}; + +const game = async () => { + const screen = { w: 800, h: 800 }; + const app = new Application({ + width: screen.w, + height: screen.h, + backgroundColor: "#fff", + }); + + const handPetTextures = [...Array(10)].map((_, idx) => { + const uri = `/handpet/handpet_${String(idx + 1).padStart(2, "0")}.webp`; + return Assets.load(IMG_URI + uri); + }); + + const tex = { + furinaCurious: await Assets.load(IMG_URI + "furina-curious.webp"), + furinaBeeg: await Assets.load(IMG_URI + "furina-beeg.webp"), + furinaHappy: await Assets.load(IMG_URI + "furina-happy.webp"), + hand: await Assets.load(IMG_URI + "hand.webp"), + handPet: await Promise.all(handPetTextures), + + uiBtnPlay: await Assets.load(UI_URI + "btn_play.png"), + uiBtnTouch: await Assets.load(UI_URI + "btn_touch.png"), + }; + + const sfx = { + prepare: new Howl({ + src: SFX_URI + "pet-the-peepo-prepare.ogg", + preload: true, + }), + music: new Howl({ + // src: SFX_URI + "pet-the-peepo.ogg", + src: SFX_URI + "kuru-kuru-kururin.ogg", + preload: true, + loop: true, + }), + }; + + const stateMachine = new StateMachine(); + app.ticker.add((dt) => stateMachine.loop(dt)); + + stateMachine.add(STATE.MAIN_SCREEN, () => { + const furina = new Sprite(tex.furinaCurious); + furina.scale.set(0.6); + furina.anchor.set(0.5); + furina.position.set(screen.w * 0.5, screen.h * 0.4); + + const btnStart = new Sprite(tex.uiBtnPlay); + btnStart.scale.set(1.0); + btnStart.anchor.set(0.5); + btnStart.position.set(screen.w * 0.5, screen.h * 0.7); + btnStart.eventMode = "static"; + btnStart.cursor = "pointer"; + + btnStart.on("pointerdown", () => { + stateMachine.start(STATE.PREPARE); + }); + + const startText = new Text( + "Press to Play", + new TextStyle({ + fontSize: 28, + }) + ); + startText.anchor.set(0.5); + startText.position.set(screen.w * 0.5, screen.h * 0.82); + + // let musicPlayTimeout: any; + + return { + onStart() { + app.stage.addChild(furina, btnStart, startText); + // musicPlayTimeout = setTimeout(() => sfx.music.play(), 100); + }, + loop(time) { + btnStart.scale.set(1.0 + Math.sin(time) * 0.2); + }, + onEnd() { + app.stage.removeChild(furina, btnStart, startText); + + // clearTimeout(musicPlayTimeout); + // sfx.music.stop(); + }, + }; + }); + + stateMachine.add(STATE.PREPARE, () => { + const furina = new Sprite(tex.furinaCurious); + furina.scale.set(0.8); + furina.anchor.set(0.5); + const furinaPos = { x: screen.w * 0.5, y: screen.h * 0.45 }; + furina.position.set(furinaPos.x, furinaPos.y); + furina.visible = false; + + const hand = new Sprite(tex.hand); + hand.scale.set(0.5); + hand.anchor.set(0.5); + const handPos = { x: screen.w * 0.5, y: screen.h * 0.55 }; + hand.position.set(handPos.x, handPos.y); + hand.visible = false; + + const timers: any[] = []; + + return { + onStart() { + app.stage.addChild(furina, hand); + + timers.push( + setTimeout(() => { + furina.visible = true; + furinaPos.y = screen.h * 0.5; + sfx.prepare.play(); + }, 500) + ); + + timers.push( + setTimeout(() => { + furina.visible = false; + hand.visible = true; + handPos.y = screen.h * 0.5; + }, 1500) + ); + + timers.push( + setTimeout(() => { + furina.visible = true; + furina.position.x = screen.w * 0.85; + furinaPos.x = screen.w * 0.75; + furina.scale.set(0.4); + + hand.visible = true; + hand.position.x = screen.w * 0.15; + handPos.x = screen.w * 0.25; + hand.scale.set(0.4); + }, 2400) + ); + + timers.push( + setTimeout(() => { + furinaPos.x = screen.w * 0.65; + furina.scale.set(0.45); + handPos.x = screen.w * 0.35; + hand.scale.set(0.45); + }, 3400) + ); + + timers.push( + setTimeout(() => { + stateMachine.start(STATE.RUNNING); + }, 4500) + ); + }, + loop(_, dt) { + if (furina.visible) { + lerpPos(furina.position, furinaPos, 8 * dt); + } + if (hand.visible) { + lerpPos(hand.position, handPos, 8 * dt); + } + }, + onEnd() { + app.stage.removeChild(furina, hand); + sfx.prepare.stop(); + timers.forEach(clearTimeout); + }, + }; + }); + + stateMachine.add(STATE.RUNNING, () => { + const furina = new Sprite(tex.furinaHappy); + furina.scale.set(1); + furina.anchor.set(0.5, 1.0); + furina.position.set(screen.w * 0.5, screen.h * 0.85); + + const handPet = new AnimatedSprite(tex.handPet); + handPet.animationSpeed = 0.2; + handPet.scale.set(0.7); + handPet.anchor.set(0, 0.5); + handPet.position.set(0, screen.h * 0.34); + + const touchButtonGuide = new Sprite(tex.uiBtnTouch); + touchButtonGuide.anchor.set(0.5, 1); + touchButtonGuide.position.set(screen.w * 0.5, screen.h * 0.95); + + const touchText = new Text( + "0", + new TextStyle({ + fontSize: 64, + }) + ); + touchText.anchor.set(1, 0); + touchText.position.set(screen.w * 0.9, screen.h * 0.1); + + let touchCount = 0; + let lastTouch = 0.0; + + const onTouch = () => { + lastTouch = stateMachine.time; + touchCount += 1; + touchText.text = String(touchCount); + }; + + return { + onStart() { + touchCount = 0; + handPet.play(); + app.stage.addChild(furina, handPet, touchButtonGuide, touchText); + + sfx.music.play(); + app.stage.eventMode = "static"; + app.stage.cursor = "pointer"; + app.stage.on("pointerdown", onTouch); + }, + loop(time, delta) { + if (time - lastTouch < 0.5) { + if (!handPet.playing) { + handPet.play(); + handPet.visible = true; + } + if (!sfx.music.playing()) { + sfx.music.play(); + } + furina.scale.y = 1 + Math.sin(time * 40) * 0.01; + furina.rotation = -0.01 + Math.cos(time * 30) * 0.02; + } else { + if (handPet.playing) { + handPet.stop(); + handPet.visible = false; + } + if (sfx.music.playing()) { + sfx.music.pause(); + } + furina.scale.y = 1 + Math.sin(time * 10) * 0.01; + furina.rotation = lerp(furina.rotation, 0.0, 8 * delta); + } + + touchButtonGuide.scale.set(0.5 + Math.sin(time * 40) * 0.01); + touchButtonGuide.position.y = + screen.h * (0.92 + Math.cos(time * 40) * 0.01); + }, + onEnd() { + handPet.stop(); + app.stage.removeChild(furina, handPet, touchButtonGuide, touchText); + + sfx.music.stop(); + app.stage.eventMode = "auto"; + app.stage.cursor = ""; + app.stage.off("pointerdown", onTouch); + }, + }; + }); + + stateMachine.start(STATE.MAIN_SCREEN); + // stateMachine.start(STATE.RUNNING); + + const clean = () => { + stateMachine.clean(); + Howler.stop(); + }; + + return { app, clean }; +}; + +type Point = { + x: number; + y: number; +}; + +const lerp = (x: number, y: number, a: number) => x * (1 - a) + y * a; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const lerpPos = (startPos: any, endPos: Point, amount: number) => { + startPos.set( + lerp(startPos.x, endPos.x, amount), + lerp(startPos.y, endPos.y, amount) + ); +}; + +export default game; diff --git a/src/pages/home/page.tsx b/src/pages/home/page.tsx index b2f0bf4..c760623 100644 --- a/src/pages/home/page.tsx +++ b/src/pages/home/page.tsx @@ -1,5 +1,91 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { useEffect, useRef, useState } from "react"; +import styles from "./style.module.css"; +import { cn } from "@/utility/utils"; +import LoadingPage from "../misc/loading-page"; + const HomePage = () => { - return
HomePage
; + const appRef = useRef(); + const cleanRef = useRef(); + const targetRef = useRef(null); + const [isReady, setReady] = useState(false); + + useEffect(() => { + if (!appRef.current) { + appRef.current = true; + + const init = async () => { + const { default: game } = await import("./game"); + const { app, clean } = await game(); + targetRef.current?.appendChild(app.view as never); + + appRef.current = app; + cleanRef.current = clean; + setReady(true); + }; + + init(); + } + + return () => { + if (cleanRef.current) { + cleanRef.current(); + } + }; + }, [setReady]); + + return ( +
+ {!isReady ? : null} + +
+ + +
+ ); +}; + +const Credits = () => { + const [toggle, setToggle] = useState(false); + + return ( +
+ + + {toggle ? ( +
+          {`
+Furina Stickers:
+Guido_ (https://risibank.fr/media/297778-genshin-archon-hydro-c6-r5-soutine)
+Coll5 (https://risibank.fr/media/317061-furina-focalor-genshin)
+
+Hand Sprite:
+@soapmangraylace2752 (https://www.youtube.com/shorts/HEguW7Gmu2w)
+Fijiwaterhelp (https://jailbreak.fandom.com/wiki/User_blog:Fijiwaterhelp/hand_petting)
+
+Music:
+Kurururin by Raphiiel (https://www.youtube.com/watch?v=NY0ffyEu6uo)
+pet the peepo by NitroiF (https://www.youtube.com/shorts/ll2Au3CdV2k)
+        `.trim()}
+        
+ ) : null} +
+ ); }; export default HomePage; diff --git a/src/pages/home/stateMachine.ts b/src/pages/home/stateMachine.ts new file mode 100644 index 0000000..38c2dbd --- /dev/null +++ b/src/pages/home/stateMachine.ts @@ -0,0 +1,65 @@ +type StateManager = { + onStart?: () => void; + loop?: (time: number, delta: number) => void; + onEnd?: () => void; +}; + +class StateMachine { + time!: number; + states!: { + [key: number]: { + instance: StateManager | null; + init: () => StateManager; + }; + }; + curState!: number; + + constructor() { + this.time = 0.0; + this.curState = -1; + this.states = []; + } + + add(idx: number, fn: () => StateManager) { + this.states[idx] = { + instance: null, + init: fn, + }; + } + + start(idx: number) { + const lastState = this.states[this.curState]?.instance; + if (lastState?.onEnd != null) { + lastState.onEnd!(); + } + + this.time = 0.0; + this.curState = idx; + + const state = this.states[idx]?.init(); + this.states[idx].instance = state; + + if (state?.onStart != null) { + state.onStart!(); + } + } + + loop(delta: number) { + const dt = delta / 100; + this.time = (this.time + dt) % 3600; + + const state = this.states[this.curState]?.instance; + if (state?.loop != null) { + state.loop!(this.time, dt); + } + } + + clean() { + const state = this.states[this.curState]?.instance; + if (state?.onEnd != null) { + state.onEnd!(); + } + } +} + +export default StateMachine; diff --git a/src/pages/home/style.module.css b/src/pages/home/style.module.css new file mode 100644 index 0000000..723590a --- /dev/null +++ b/src/pages/home/style.module.css @@ -0,0 +1,9 @@ +.canvasContainer { + min-height: 80vh; + overflow: hidden; +} + +.canvasContainer canvas { + width: 100%; + max-width: 800px; +} diff --git a/vite.config.ts b/vite.config.ts index d66f290..b4db30b 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -10,4 +10,7 @@ export default defineConfig({ "@": path.resolve("src/"), }, }, + build: { + chunkSizeWarningLimit: 1024, + }, }); diff --git a/yarn.lock b/yarn.lock index 8b314b7..f209ab2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -456,6 +456,226 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@pixi/accessibility@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/accessibility/-/accessibility-7.3.3.tgz#651be8bb65be53d93b5b43c02473b7b528a2caab" + integrity sha512-cHiIEP54RNqvPKmi45HvvnTbiWU+/lzdTY0zK7OXx3TmcEQRn2A7GZ1I+uxx476NeXGJtGSvv3copyxFjPB6Ew== + +"@pixi/app@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/app/-/app-7.3.3.tgz#c8d672f87a5715292dd202af7c3991ac237e744d" + integrity sha512-MS5r/yU0CrWMPXXrgKAzgC2KC35Och8fT9z6J1XUCs7yHhdO8768rnSePJuzhj9Yaclv7PUpNQzh8rG9o/MzkQ== + +"@pixi/assets@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/assets/-/assets-7.3.3.tgz#7fee1beadf7b2111f8d37bbfe95e02497d77f412" + integrity sha512-KcLXVehdJ2kc2bSnTfatLPLL6sLD7dwU+EZ5bWQ/PZDSsfML3kLFvq84VXd4k8LKNX4RCvfy4yeeIUW1o5tnMg== + dependencies: + "@types/css-font-loading-module" "^0.0.12" + +"@pixi/color@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/color/-/color-7.3.3.tgz#8f3905e2c81c51b89a22d9b5e94d51fb0bd64020" + integrity sha512-IiiFhNIqXt7yULe0Wkq5Hn38ymDoEen/6EvV2y2AQIOu6TyuET5PGswAdMfG7ZjfwBaCudK6yQEUjWaXbgRUmw== + dependencies: + "@pixi/colord" "^2.9.6" + +"@pixi/colord@^2.9.6": + version "2.9.6" + resolved "https://registry.yarnpkg.com/@pixi/colord/-/colord-2.9.6.tgz#7e4e7851480da6fd3cef4e331f008d60be7e1204" + integrity sha512-nezytU2pw587fQstUu1AsJZDVEynjskwOL+kibwcdxsMBFqPsFFNA7xl0ii/gXuDi6M0xj3mfRJj8pBSc2jCfA== + +"@pixi/compressed-textures@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/compressed-textures/-/compressed-textures-7.3.3.tgz#6279ed4d9fa420c9d3d129457f57b7b04fdbe6d6" + integrity sha512-4h1NKePF5blN7qux29yEnKiGdk4vZif59XtLviW7Y3r9MKgKSoizDl0RqU4SKo4eC1P0jpt1qOjiG4TE+AjXGQ== + +"@pixi/constants@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/constants/-/constants-7.3.3.tgz#5932e2d0fd9e996d3dbf51f888f7f83180f4a86c" + integrity sha512-ww1JdekmKBUqHyPq8A5L+86FkzpS4KidlBm9wkX1fcd+6QQzq/vbx1JOz6m3CmH5LnlmDZ+zysLezvpZlBcwwA== + +"@pixi/core@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/core/-/core-7.3.3.tgz#ba4075c8206b4278af5663ead911c91126f1d61c" + integrity sha512-064tuK6NoGIl/2Wf4EUlaLLlnRMZuDdLqnISsj2/A70towg2QUWgHhwZsCB4NvAssidWu/sIT+vk5IKDmh1LKA== + dependencies: + "@pixi/color" "7.3.3" + "@pixi/constants" "7.3.3" + "@pixi/extensions" "7.3.3" + "@pixi/math" "7.3.3" + "@pixi/runner" "7.3.3" + "@pixi/settings" "7.3.3" + "@pixi/ticker" "7.3.3" + "@pixi/utils" "7.3.3" + "@types/offscreencanvas" "^2019.6.4" + +"@pixi/display@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/display/-/display-7.3.3.tgz#a5e68b704519ae5137d5ab8704e12cb2e8584349" + integrity sha512-iULZ2E6Z4vhI0FypXpUbtA+CODnj/CuTt2pi9gsw00ILI12eEx76cAiazvhxnCNqcfmj1RRK2P6s9Vzr5WmEIg== + +"@pixi/events@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/events/-/events-7.3.3.tgz#0561de88caf971241c6096dd75a52f79df73b8d2" + integrity sha512-1oDfdFtKsy0Z9ew09MrSYGIIeGnBXr/c7866A32Od3KXql0dhd7UpFFpaFKLCXydDHRgFkjOP7t0/Pp1luTvfg== + +"@pixi/extensions@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/extensions/-/extensions-7.3.3.tgz#befa5b4f574a08d8a1386fac9de65c9db4564550" + integrity sha512-Of44Wde0ZHYCuMoDLFl/8SOSPV2NiDBUB6QKBvYvNdhVslbO3pxrn9oQH9Fmsd8iGcGJ/YtyI5H2T/ky4Bo6AQ== + +"@pixi/extract@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/extract/-/extract-7.3.3.tgz#7a362405a6990a7d1bb8d8d1b6eddf146cf04ddc" + integrity sha512-quD61mNtgq3w2USIPUBOuxD9kVWIPoh8offqJugT4ZZS2XlSnh2FvLjCEC66jVmMM0tmk6HGAfc5xRFNlyw8PQ== + +"@pixi/filter-alpha@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/filter-alpha/-/filter-alpha-7.3.3.tgz#6b5dad03ee31709eade2821b26d0db9c2579c46d" + integrity sha512-StLLxEkCyghK3dhzLZD9jMu4lZ/ir4Bah2XXXWGhwE+XCO+//rnXreZ8v74R52WbaLUNDHzwlbq7/+BABwMu5w== + +"@pixi/filter-blur@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/filter-blur/-/filter-blur-7.3.3.tgz#01f5cc2a49fc334f825c2e2805fc2a8dfaa01445" + integrity sha512-AZzMbcFoL+uHxiVM2nQrQM0MQdLdd5mw7Fd4F60ROB96tmMK/M5W/FTqgdqXUQYld6wCFZKtJMulonVaPKLXDA== + +"@pixi/filter-color-matrix@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/filter-color-matrix/-/filter-color-matrix-7.3.3.tgz#6c9abaaf8ff1a9e058cc631c391cc87243ebff58" + integrity sha512-Ot9lQ24lff4DPok0qy+c3IekfEuGf0Y1mx/dB3iLceys2hJHF5wK8rrhKrA1vc5IgrirbZpmjK8it9cVFzEW2g== + +"@pixi/filter-displacement@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/filter-displacement/-/filter-displacement-7.3.3.tgz#9abb13415644dc634dd31ed90f135899ffebf5ee" + integrity sha512-fBnZTUmt6wwazdk/ZDW3HJEkf9s5b8uDuOwHvUAPWTJ6oYqwAjFXnrTlhEwB/Fp+0v6hUVVlHWEYk07HVgjEIg== + +"@pixi/filter-fxaa@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/filter-fxaa/-/filter-fxaa-7.3.3.tgz#3df0bf436dc5d0ac4612be03912d899826e06264" + integrity sha512-xq5xcpu68axMrGsVOcpxqebLAa+B4yBSLQlI2rsn7s8YtWY+pC20lsaNnKDlrv9hwJ1Ah7BtBZy0EVVaeFNYqA== + +"@pixi/filter-noise@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/filter-noise/-/filter-noise-7.3.3.tgz#8629625212a03fc84145f7951e71322940fad56a" + integrity sha512-Hwwk1xLvA+0wTqJtKTnIGzyZmLubm5ylgqsMRHQqujDtVSIqE2SY1iVUcGA5vv31C7rFFkxGT4yhtfnYBNCvKQ== + +"@pixi/graphics@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/graphics/-/graphics-7.3.3.tgz#3f9d3c4ff4875dd8cf67fc3db9ea9bc63e4c795c" + integrity sha512-czX/SEQTSCI3kkH5DFAcchPaPYOAF7cz1P5K2hVvClE/bbbIWN0H2sBIF6pIY1ENkZ0aguQs36yDeXUDWXyoiQ== + +"@pixi/math@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/math/-/math-7.3.3.tgz#2cd64bcc33b63dbbf6abd6af5db85aa1191b6011" + integrity sha512-kaHN6iusINPS0wIbrhP82za+B2qNDWHPHip/QtmpQTp81ibOIfHlDMOlsnE6rSdelTFNhrNWoTWU8IvXUbvy8g== + +"@pixi/mesh-extras@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/mesh-extras/-/mesh-extras-7.3.3.tgz#d7aee77bed38575c6253ea44b8bfd4f9ebb127c6" + integrity sha512-2TW1n97PpSZIZomfoEcKezGeGLPyd82ng2u8SXQoy9keCmB2yK361/RO88jvWbY4qpnJn/89LiLyYEBiJtSmWg== + +"@pixi/mesh@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/mesh/-/mesh-7.3.3.tgz#3f6f43baccfe1b2373b75faf754acf1930c79afd" + integrity sha512-8G3FO44wLDimNlCqXBKF+zQ3nBqJ4kMBbIjGxRaRkJmahcMYkY2zJpYsYh1YqKQztL9UmcP5V170VEIcPsmaJw== + +"@pixi/mixin-cache-as-bitmap@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-7.3.3.tgz#830309552dba986c3abc1cb28fe9c4ce2fcc97d2" + integrity sha512-Vv/H24CADY5w2DZaTYhXsfr8wAyKsg6gYn0DLgWDnAI3PWkRcB0fVDfowlHAEzltfxyH4tp9LVc2jtbEIKfSlQ== + +"@pixi/mixin-get-child-by-name@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-7.3.3.tgz#927e8fb648bcc9df06d074338a1eaa1eb0375662" + integrity sha512-75vlViVaynPyIYQIaoU08k1iP+8s9ct2YEnW91vyiHGxxE7BBimiYomWkAUYXtSnaSFoDkNPOh7iI91Icmkf+w== + +"@pixi/mixin-get-global-position@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/mixin-get-global-position/-/mixin-get-global-position-7.3.3.tgz#65f929ab85b9d5bb34a4e9c97994c1fa7d54cb58" + integrity sha512-ZEScRlx/KSr0z40+xqF9jl9N8j0aFZCNwSluoMLuFecvn4kpaCQx8i4F8j+GkkdrnCfanSYE9ySADlUCsKmzHA== + +"@pixi/particle-container@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/particle-container/-/particle-container-7.3.3.tgz#833883ee96cac31d20118cf3edcd3eabdb87c5a5" + integrity sha512-OxigacwSbPjVogahmBYUiYMIH+NhNa+jvGAk5OYEF431gcVmjtravPbk7mmFdGKmOMICztSyVX8kOyhXxCv63A== + +"@pixi/prepare@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/prepare/-/prepare-7.3.3.tgz#e5bb7c26ea6433888c9f1d6ab66d72d125e83c55" + integrity sha512-2SdTyHJSDZeaEMuxXqOX01FUDhIjfWUmVCufLXxzjd8gZ52RWBpohl2gDRszPJMyPox142xzUiCnb4RuNXGHDw== + +"@pixi/runner@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/runner/-/runner-7.3.3.tgz#75d7d3cc2dd44012277728e0a7607a455c7c891b" + integrity sha512-LUObHyxM3tK504ChbioYySZhFhyNs779uA71fuWSFV04Ry0WNlbqVvwTbKGkyR6er6blfxdqk7d51WmuQtfLCg== + +"@pixi/settings@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/settings/-/settings-7.3.3.tgz#b4bd6058e11bb785b97c3c49c6989d6b450ba6b7" + integrity sha512-a1OePduDPOfnrCm1U1RL7JhuEAncA5/jNwF51urclXU6HNTHiJT41/S6KELPoV8NbLyJCKtnKwzbbPkzKwc0Yg== + dependencies: + "@pixi/constants" "7.3.3" + "@types/css-font-loading-module" "^0.0.12" + ismobilejs "^1.1.0" + +"@pixi/sprite-animated@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/sprite-animated/-/sprite-animated-7.3.3.tgz#a1e874c070bf60299ff26e3d0978e4205afcefbc" + integrity sha512-BYvehHk3PlNln9tRfZ/zGp2MzVwRjggFe+s4NCQd1EU/NPQewqJGCAiQFB4Gc3hFK2Y8wkW7SpGAzuk/E2WTxg== + +"@pixi/sprite-tiling@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/sprite-tiling/-/sprite-tiling-7.3.3.tgz#5d5ee71772beebed65f2821e5453619115f2bb29" + integrity sha512-T4ms0TcfKq7JNRaUBaQyZsaxWziPh2EY10vFQEG17J3uyCrjQmN4dDS9AMoaltL1K3vh+CTSUnWO8S8mE1dn4Q== + +"@pixi/sprite@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/sprite/-/sprite-7.3.3.tgz#c0ccffc6b67adf7cd771124bcd99921284f6c342" + integrity sha512-P/RxnvNV0PiuyaT9HA8F1aX9krp1BgjllBQcn6KHVxyAP8tJE0TD9pfHOU1+xRuoX37swXRQiDFTF6YvWzozUQ== + +"@pixi/spritesheet@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/spritesheet/-/spritesheet-7.3.3.tgz#ec63fc99fbcf138f8835a5701075658c1c59b0b7" + integrity sha512-aAebizGNiKijWmJ39bnAb8FbuXbxRINuWZ2xt7ANzJQxhbo7dX+qlF4pz91yj3gHQaulzJM2oKz4a5q6cHa7dw== + +"@pixi/text-bitmap@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/text-bitmap/-/text-bitmap-7.3.3.tgz#296b9997192c6106aafed09948889c6ac577c553" + integrity sha512-2IOBoSHtb2e1aoxB/pfJPFW34XeY8HpDtGJKn3F9IUYpBo6nnnZ6DuJNZyFG2r/hiytjVvulqI66CzOH/eJJ4A== + +"@pixi/text-html@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/text-html/-/text-html-7.3.3.tgz#604678392c9868b343411313ca52cdfcd7f8f812" + integrity sha512-z8vsgsqVJuFEVX07wh0IYAwQ5DBiel8Lhxo2Ly8594O0mIdQ1IPvtAPv+WRyG35WT0i26J7GL2BZxURouDP2WA== + +"@pixi/text@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/text/-/text-7.3.3.tgz#8ff5bf508384ca4c17e63a7b0e71b5210cbd0b38" + integrity sha512-s9BLmiURYeJppPYB040jrGbtbsWM9PcXSRtr40xrbR0a+HPlxDEWCaHka9DiUFr/lIuOpA0y/YjmZskq5o5R7g== + +"@pixi/ticker@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/ticker/-/ticker-7.3.3.tgz#64185570d563b64e2e666ff5964754583d5b6094" + integrity sha512-AxeMKP9vTcla+yYXCABc0uKUODjIsJRXk3DCHVpoPeeqRYPaKH291RtDw92QFw7FFgGBbRgsptBjF9Q+uO5hDA== + dependencies: + "@pixi/extensions" "7.3.3" + "@pixi/settings" "7.3.3" + "@pixi/utils" "7.3.3" + +"@pixi/utils@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@pixi/utils/-/utils-7.3.3.tgz#cad46d0ada1f51e30aedf781af63ad8a4a36d58a" + integrity sha512-rgWD0YV6oDKOVuQJ9ra6g3VdoN8usC6Kj/t3Ba1t9P+k9qUKIM0gCr9/bxFf7CJ/EUS8A2WTVfEmJVN2TwZfxg== + dependencies: + "@pixi/color" "7.3.3" + "@pixi/constants" "7.3.3" + "@pixi/settings" "7.3.3" + "@types/earcut" "^2.1.0" + earcut "^2.2.4" + eventemitter3 "^4.0.0" + url "^0.11.0" + "@pkgjs/parseargs@^0.11.0": version "0.11.0" resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" @@ -564,11 +784,26 @@ dependencies: "@babel/types" "^7.20.7" +"@types/css-font-loading-module@^0.0.12": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@types/css-font-loading-module/-/css-font-loading-module-0.0.12.tgz#65494833928823f998fbe8e86312821875d80db5" + integrity sha512-x2tZZYkSxXqWvTDgveSynfjq/T2HyiZHXb00j/+gy19yp70PHCizM48XFdjBCWH7eHBD0R5i/pw9yMBP/BH5uA== + +"@types/earcut@^2.1.0": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@types/earcut/-/earcut-2.1.4.tgz#5811d7d333048f5a7573b22ddc84923e69596da6" + integrity sha512-qp3m9PPz4gULB9MhjGID7wpo3gJ4bTGXm7ltNDsmOvsPduTeHp8wSW9YckBj3mljeOh4F0m2z/0JKAALRKbmLQ== + "@types/estree@1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== +"@types/howler@^2.2.11": + version "2.2.11" + resolved "https://registry.yarnpkg.com/@types/howler/-/howler-2.2.11.tgz#a75c4ab5666aee5fcfbd5de15d35dbaaa3d3f070" + integrity sha512-7aBoUL6RbSIrqKnpEgfa1wSNUBK06mn08siP2QI0zYk7MXfEJAaORc4tohamQYqCqVESoDyRWSdQn2BOKWj2Qw== + "@types/json-schema@^7.0.12": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" @@ -581,6 +816,11 @@ dependencies: undici-types "~5.26.4" +"@types/offscreencanvas@^2019.6.4": + version "2019.7.3" + resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz#90267db13f64d6e9ccb5ae3eac92786a7c77a516" + integrity sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A== + "@types/prop-types@*": version "15.7.11" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.11.tgz#2596fb352ee96a1379c657734d4b913a613ad563" @@ -845,6 +1085,15 @@ browserslist@^4.21.10, browserslist@^4.22.2: node-releases "^2.0.14" update-browserslist-db "^1.0.13" +call-bind@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" + integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== + dependencies: + function-bind "^1.1.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -972,6 +1221,15 @@ deep-is@^0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== +define-data-property@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + didyoumean@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" @@ -996,6 +1254,11 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +earcut@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.2.4.tgz#6d02fd4d68160c114825d06890a92ecaae60343a" + integrity sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ== + eastasianwidth@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" @@ -1160,6 +1423,11 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -1262,6 +1530,16 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" + integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== + dependencies: + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -1323,6 +1601,13 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + graphemer@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" @@ -1338,6 +1623,23 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-property-descriptors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" + integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== + dependencies: + get-intrinsic "^1.2.2" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + hasown@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" @@ -1345,6 +1647,11 @@ hasown@^2.0.0: dependencies: function-bind "^1.1.2" +howler@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/howler/-/howler-2.2.4.tgz#bd3df4a4f68a0118a51e4bd84a2bfc2e93e6e5a1" + integrity sha512-iARIBPgcQrwtEr+tALF+rapJ8qSc+Set2GJQl7xT1MQzWaVkFebdJhR3alVlSiUf5U7nAANKuj3aWpwerocD5w== + ignore@^5.2.0, ignore@^5.2.4: version "5.3.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" @@ -1422,6 +1729,11 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +ismobilejs@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ismobilejs/-/ismobilejs-1.1.1.tgz#c56ca0ae8e52b24ca0f22ba5ef3215a2ddbbaa0e" + integrity sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw== + jackspeak@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" @@ -1622,6 +1934,11 @@ object-hash@^3.0.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== +object-inspect@^1.9.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -1715,6 +2032,42 @@ pirates@^4.0.1: resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== +pixi.js@^7.3.3: + version "7.3.3" + resolved "https://registry.yarnpkg.com/pixi.js/-/pixi.js-7.3.3.tgz#dd791242460c1a7651de80ae8f91bfe9c91f2712" + integrity sha512-EuAyWZBL5lKViCgYkB6dbwkiI/MNht8O8F8956up9vwGEGf659QRHxfVQoRj8zdNGOBbe51XAxQMfLaW/l0Ekg== + dependencies: + "@pixi/accessibility" "7.3.3" + "@pixi/app" "7.3.3" + "@pixi/assets" "7.3.3" + "@pixi/compressed-textures" "7.3.3" + "@pixi/core" "7.3.3" + "@pixi/display" "7.3.3" + "@pixi/events" "7.3.3" + "@pixi/extensions" "7.3.3" + "@pixi/extract" "7.3.3" + "@pixi/filter-alpha" "7.3.3" + "@pixi/filter-blur" "7.3.3" + "@pixi/filter-color-matrix" "7.3.3" + "@pixi/filter-displacement" "7.3.3" + "@pixi/filter-fxaa" "7.3.3" + "@pixi/filter-noise" "7.3.3" + "@pixi/graphics" "7.3.3" + "@pixi/mesh" "7.3.3" + "@pixi/mesh-extras" "7.3.3" + "@pixi/mixin-cache-as-bitmap" "7.3.3" + "@pixi/mixin-get-child-by-name" "7.3.3" + "@pixi/mixin-get-global-position" "7.3.3" + "@pixi/particle-container" "7.3.3" + "@pixi/prepare" "7.3.3" + "@pixi/sprite" "7.3.3" + "@pixi/sprite-animated" "7.3.3" + "@pixi/sprite-tiling" "7.3.3" + "@pixi/spritesheet" "7.3.3" + "@pixi/text" "7.3.3" + "@pixi/text-bitmap" "7.3.3" + "@pixi/text-html" "7.3.3" + postcss-import@^15.1.0: version "15.1.0" resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" @@ -1773,11 +2126,23 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + punycode@^2.1.0: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== +qs@^6.11.2: + version "6.11.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== + dependencies: + side-channel "^1.0.4" + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -1918,6 +2283,16 @@ semver@^7.5.4: dependencies: lru-cache "^6.0.0" +set-function-length@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" + integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + dependencies: + define-data-property "^1.1.1" + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -1930,6 +2305,15 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + signal-exit@^4.0.1: version "4.1.0" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" @@ -2128,6 +2512,14 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +url@^0.11.0: + version "0.11.3" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.3.tgz#6f495f4b935de40ce4a0a52faee8954244f3d3ad" + integrity sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw== + dependencies: + punycode "^1.4.1" + qs "^6.11.2" + util-deprecate@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"