@caperjs/core 0.1.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 (600) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +62 -0
  3. package/cli/add.mjs +197 -0
  4. package/cli/audio/cc.mjs +128 -0
  5. package/cli/audio/index.mjs +42 -0
  6. package/cli/audio/utils.mjs +56 -0
  7. package/cli/create-caper.mjs +8 -0
  8. package/cli/create.mjs +351 -0
  9. package/cli/install-peerdeps.mjs +57 -0
  10. package/cli/update.mjs +9 -0
  11. package/cli/utils.mjs +81 -0
  12. package/cli/vite.mjs +55 -0
  13. package/cli/voiceover/generateVoiceoverCSV.mjs +158 -0
  14. package/cli/voiceover/index.mjs +1 -0
  15. package/cli.mjs +157 -0
  16. package/client.d.ts +7 -0
  17. package/config/assetpack.mjs +212 -0
  18. package/config/tsconfig.base.json +28 -0
  19. package/config/vite.mjs +2464 -0
  20. package/extras/css/accessibility.css +9 -0
  21. package/extras/css/fullscreen.css +28 -0
  22. package/extras/css/loader.css +67 -0
  23. package/extras/llms.txt +1602 -0
  24. package/lib/CaptionsPlugin-Dc8fIrjy.js +277 -0
  25. package/lib/CaptionsPlugin-Dc8fIrjy.js.map +1 -0
  26. package/lib/DataAdapter-BY2114sp.js +84 -0
  27. package/lib/DataAdapter-BY2114sp.js.map +1 -0
  28. package/lib/DebugRenderer-BJMLILqI.js +1385 -0
  29. package/lib/DebugRenderer-BJMLILqI.js.map +1 -0
  30. package/lib/DevToolsPlugin-wQ5rOkn0.js +31 -0
  31. package/lib/DevToolsPlugin-wQ5rOkn0.js.map +1 -0
  32. package/lib/GSAPPlugin-DHhSZKv8.js +350 -0
  33. package/lib/GSAPPlugin-DHhSZKv8.js.map +1 -0
  34. package/lib/LayoutPlugin-B-DF9SYM.js +1271 -0
  35. package/lib/LayoutPlugin-B-DF9SYM.js.map +1 -0
  36. package/lib/SpinePlugin-Dz_3dljz.js +6077 -0
  37. package/lib/SpinePlugin-Dz_3dljz.js.map +1 -0
  38. package/lib/StatsPlugin-Cg82JMBD.js +70 -0
  39. package/lib/StatsPlugin-Cg82JMBD.js.map +1 -0
  40. package/lib/VoiceOverPlugin-BR3ImT8C.js +114 -0
  41. package/lib/VoiceOverPlugin-BR3ImT8C.js.map +1 -0
  42. package/lib/caper.mjs +1233 -0
  43. package/lib/caper.mjs.map +1 -0
  44. package/lib/core/Application.d.ts +268 -0
  45. package/lib/core/Application.d.ts.map +1 -0
  46. package/lib/core/config.d.ts +39 -0
  47. package/lib/core/config.d.ts.map +1 -0
  48. package/lib/core/create.d.ts +41 -0
  49. package/lib/core/create.d.ts.map +1 -0
  50. package/lib/core/globals.d.ts +51 -0
  51. package/lib/core/globals.d.ts.map +1 -0
  52. package/lib/core/index.d.ts +7 -0
  53. package/lib/core/index.d.ts.map +1 -0
  54. package/lib/core/interfaces/IApplication.d.ts +566 -0
  55. package/lib/core/interfaces/IApplication.d.ts.map +1 -0
  56. package/lib/core/interfaces/IApplicationOptions.d.ts +65 -0
  57. package/lib/core/interfaces/IApplicationOptions.d.ts.map +1 -0
  58. package/lib/core/interfaces/ICoreFunctions.d.ts +49 -0
  59. package/lib/core/interfaces/ICoreFunctions.d.ts.map +1 -0
  60. package/lib/core/interfaces/ICoreSignals.d.ts +57 -0
  61. package/lib/core/interfaces/ICoreSignals.d.ts.map +1 -0
  62. package/lib/core/interfaces/IStorageCapability.d.ts +20 -0
  63. package/lib/core/interfaces/IStorageCapability.d.ts.map +1 -0
  64. package/lib/core/interfaces/IStorageCapability.test.d.ts +2 -0
  65. package/lib/core/interfaces/IStorageCapability.test.d.ts.map +1 -0
  66. package/lib/core/interfaces/index.d.ts +7 -0
  67. package/lib/core/interfaces/index.d.ts.map +1 -0
  68. package/lib/core/registries.d.ts +8 -0
  69. package/lib/core/registries.d.ts.map +1 -0
  70. package/lib/core/types.d.ts +12 -0
  71. package/lib/core/types.d.ts.map +1 -0
  72. package/lib/display/AnimatedSprite.d.ts +40 -0
  73. package/lib/display/AnimatedSprite.d.ts.map +1 -0
  74. package/lib/display/Camera.d.ts +102 -0
  75. package/lib/display/Camera.d.ts.map +1 -0
  76. package/lib/display/Container.d.ts +115 -0
  77. package/lib/display/Container.d.ts.map +1 -0
  78. package/lib/display/Entity.d.ts +46 -0
  79. package/lib/display/Entity.d.ts.map +1 -0
  80. package/lib/display/ParticleContainer.d.ts +58 -0
  81. package/lib/display/ParticleContainer.d.ts.map +1 -0
  82. package/lib/display/Scene.d.ts +250 -0
  83. package/lib/display/Scene.d.ts.map +1 -0
  84. package/lib/display/SceneTransition.d.ts +41 -0
  85. package/lib/display/SceneTransition.d.ts.map +1 -0
  86. package/lib/display/SpineAnimation.d.ts +76 -0
  87. package/lib/display/SpineAnimation.d.ts.map +1 -0
  88. package/lib/display/Svg.d.ts +5 -0
  89. package/lib/display/Svg.d.ts.map +1 -0
  90. package/lib/display/index.d.ts +10 -0
  91. package/lib/display/index.d.ts.map +1 -0
  92. package/lib/env.d.ts +6 -0
  93. package/lib/hello.d.ts +2 -0
  94. package/lib/hello.d.ts.map +1 -0
  95. package/lib/index.d.ts +15 -0
  96. package/lib/index.d.ts.map +1 -0
  97. package/lib/mixins/animated.d.ts +53 -0
  98. package/lib/mixins/animated.d.ts.map +1 -0
  99. package/lib/mixins/factory/Factory.d.ts +8 -0
  100. package/lib/mixins/factory/Factory.d.ts.map +1 -0
  101. package/lib/mixins/factory/const.d.ts +67 -0
  102. package/lib/mixins/factory/const.d.ts.map +1 -0
  103. package/lib/mixins/factory/index.d.ts +8 -0
  104. package/lib/mixins/factory/index.d.ts.map +1 -0
  105. package/lib/mixins/factory/methods.d.ts +3 -0
  106. package/lib/mixins/factory/methods.d.ts.map +1 -0
  107. package/lib/mixins/factory/props.d.ts +160 -0
  108. package/lib/mixins/factory/props.d.ts.map +1 -0
  109. package/lib/mixins/factory/registry.d.ts +27 -0
  110. package/lib/mixins/factory/registry.d.ts.map +1 -0
  111. package/lib/mixins/factory/registry.test.d.ts +2 -0
  112. package/lib/mixins/factory/registry.test.d.ts.map +1 -0
  113. package/lib/mixins/factory/schema.d.ts +71 -0
  114. package/lib/mixins/factory/schema.d.ts.map +1 -0
  115. package/lib/mixins/factory/ui-registry.d.ts +20 -0
  116. package/lib/mixins/factory/ui-registry.d.ts.map +1 -0
  117. package/lib/mixins/factory/utils.d.ts +11 -0
  118. package/lib/mixins/factory/utils.d.ts.map +1 -0
  119. package/lib/mixins/focus.d.ts +15 -0
  120. package/lib/mixins/focus.d.ts.map +1 -0
  121. package/lib/mixins/index.d.ts +6 -0
  122. package/lib/mixins/index.d.ts.map +1 -0
  123. package/lib/mixins/interaction.d.ts +20 -0
  124. package/lib/mixins/interaction.d.ts.map +1 -0
  125. package/lib/mixins/signals.d.ts +15 -0
  126. package/lib/mixins/signals.d.ts.map +1 -0
  127. package/lib/plugins/AssetsPlugin.d.ts +79 -0
  128. package/lib/plugins/AssetsPlugin.d.ts.map +1 -0
  129. package/lib/plugins/DataAdapter.d.ts +95 -0
  130. package/lib/plugins/DataAdapter.d.ts.map +1 -0
  131. package/lib/plugins/DevToolsPlugin.d.ts +97 -0
  132. package/lib/plugins/DevToolsPlugin.d.ts.map +1 -0
  133. package/lib/plugins/FullScreenPlugin.d.ts +240 -0
  134. package/lib/plugins/FullScreenPlugin.d.ts.map +1 -0
  135. package/lib/plugins/GSAPPlugin.d.ts +634 -0
  136. package/lib/plugins/GSAPPlugin.d.ts.map +1 -0
  137. package/lib/plugins/KeyboardPlugin.d.ts +53 -0
  138. package/lib/plugins/KeyboardPlugin.d.ts.map +1 -0
  139. package/lib/plugins/LayoutPlugin.d.ts +100 -0
  140. package/lib/plugins/LayoutPlugin.d.ts.map +1 -0
  141. package/lib/plugins/LookupPlugin.d.ts +223 -0
  142. package/lib/plugins/LookupPlugin.d.ts.map +1 -0
  143. package/lib/plugins/Plugin.d.ts +132 -0
  144. package/lib/plugins/Plugin.d.ts.map +1 -0
  145. package/lib/plugins/Plugin.test.d.ts +2 -0
  146. package/lib/plugins/Plugin.test.d.ts.map +1 -0
  147. package/lib/plugins/PopupManagerPlugin.d.ts +108 -0
  148. package/lib/plugins/PopupManagerPlugin.d.ts.map +1 -0
  149. package/lib/plugins/ResizerPlugin.d.ts +62 -0
  150. package/lib/plugins/ResizerPlugin.d.ts.map +1 -0
  151. package/lib/plugins/SceneManagerPlugin.d.ts +122 -0
  152. package/lib/plugins/SceneManagerPlugin.d.ts.map +1 -0
  153. package/lib/plugins/StatsPlugin.d.ts +8 -0
  154. package/lib/plugins/StatsPlugin.d.ts.map +1 -0
  155. package/lib/plugins/TimerPlugin.d.ts +401 -0
  156. package/lib/plugins/TimerPlugin.d.ts.map +1 -0
  157. package/lib/plugins/WebEventsPlugin.d.ts +60 -0
  158. package/lib/plugins/WebEventsPlugin.d.ts.map +1 -0
  159. package/lib/plugins/actions/ActionsPlugin.d.ts +39 -0
  160. package/lib/plugins/actions/ActionsPlugin.d.ts.map +1 -0
  161. package/lib/plugins/actions/constants.d.ts +52 -0
  162. package/lib/plugins/actions/constants.d.ts.map +1 -0
  163. package/lib/plugins/actions/index.d.ts +5 -0
  164. package/lib/plugins/actions/index.d.ts.map +1 -0
  165. package/lib/plugins/actions/methods.d.ts +11 -0
  166. package/lib/plugins/actions/methods.d.ts.map +1 -0
  167. package/lib/plugins/actions/types.d.ts +25 -0
  168. package/lib/plugins/actions/types.d.ts.map +1 -0
  169. package/lib/plugins/audio/AudioChannel.d.ts +46 -0
  170. package/lib/plugins/audio/AudioChannel.d.ts.map +1 -0
  171. package/lib/plugins/audio/AudioChannel.test.d.ts +2 -0
  172. package/lib/plugins/audio/AudioChannel.test.d.ts.map +1 -0
  173. package/lib/plugins/audio/AudioInstance.d.ts +79 -0
  174. package/lib/plugins/audio/AudioInstance.d.ts.map +1 -0
  175. package/lib/plugins/audio/AudioManagerPlugin.d.ts +323 -0
  176. package/lib/plugins/audio/AudioManagerPlugin.d.ts.map +1 -0
  177. package/lib/plugins/audio/VoiceOverPlugin.d.ts +69 -0
  178. package/lib/plugins/audio/VoiceOverPlugin.d.ts.map +1 -0
  179. package/lib/plugins/audio/index.d.ts +4 -0
  180. package/lib/plugins/audio/index.d.ts.map +1 -0
  181. package/lib/plugins/breakpoints/BreakpointPlugin.d.ts +109 -0
  182. package/lib/plugins/breakpoints/BreakpointPlugin.d.ts.map +1 -0
  183. package/lib/plugins/breakpoints/BreakpointPlugin.test.d.ts +2 -0
  184. package/lib/plugins/breakpoints/BreakpointPlugin.test.d.ts.map +1 -0
  185. package/lib/plugins/breakpoints/evaluate.d.ts +53 -0
  186. package/lib/plugins/breakpoints/evaluate.d.ts.map +1 -0
  187. package/lib/plugins/breakpoints/evaluate.test.d.ts +2 -0
  188. package/lib/plugins/breakpoints/evaluate.test.d.ts.map +1 -0
  189. package/lib/plugins/breakpoints/index.d.ts +4 -0
  190. package/lib/plugins/breakpoints/index.d.ts.map +1 -0
  191. package/lib/plugins/breakpoints/methods.d.ts +23 -0
  192. package/lib/plugins/breakpoints/methods.d.ts.map +1 -0
  193. package/lib/plugins/breakpoints/types.d.ts +70 -0
  194. package/lib/plugins/breakpoints/types.d.ts.map +1 -0
  195. package/lib/plugins/captions/CaptionsPlugin.d.ts +150 -0
  196. package/lib/plugins/captions/CaptionsPlugin.d.ts.map +1 -0
  197. package/lib/plugins/captions/CaptionsRenderer.d.ts +37 -0
  198. package/lib/plugins/captions/CaptionsRenderer.d.ts.map +1 -0
  199. package/lib/plugins/captions/index.d.ts +3 -0
  200. package/lib/plugins/captions/index.d.ts.map +1 -0
  201. package/lib/plugins/defaults.d.ts +4 -0
  202. package/lib/plugins/defaults.d.ts.map +1 -0
  203. package/lib/plugins/focus/FocusManagerPlugin.d.ts +148 -0
  204. package/lib/plugins/focus/FocusManagerPlugin.d.ts.map +1 -0
  205. package/lib/plugins/focus/FocusOutliner.d.ts +32 -0
  206. package/lib/plugins/focus/FocusOutliner.d.ts.map +1 -0
  207. package/lib/plugins/focus/index.d.ts +3 -0
  208. package/lib/plugins/focus/index.d.ts.map +1 -0
  209. package/lib/plugins/i18nPlugin.d.ts +128 -0
  210. package/lib/plugins/i18nPlugin.d.ts.map +1 -0
  211. package/lib/plugins/index.d.ts +18 -0
  212. package/lib/plugins/index.d.ts.map +1 -0
  213. package/lib/plugins/input/AbstractControls.d.ts +8 -0
  214. package/lib/plugins/input/AbstractControls.d.ts.map +1 -0
  215. package/lib/plugins/input/Controls.d.ts +16 -0
  216. package/lib/plugins/input/Controls.d.ts.map +1 -0
  217. package/lib/plugins/input/InputPlugin.d.ts +52 -0
  218. package/lib/plugins/input/InputPlugin.d.ts.map +1 -0
  219. package/lib/plugins/input/constants.d.ts +8 -0
  220. package/lib/plugins/input/constants.d.ts.map +1 -0
  221. package/lib/plugins/input/index.d.ts +10 -0
  222. package/lib/plugins/input/index.d.ts.map +1 -0
  223. package/lib/plugins/input/interfaces.d.ts +30 -0
  224. package/lib/plugins/input/interfaces.d.ts.map +1 -0
  225. package/lib/plugins/input/keyboard/KeyboardContols.d.ts +28 -0
  226. package/lib/plugins/input/keyboard/KeyboardContols.d.ts.map +1 -0
  227. package/lib/plugins/input/keyboard/index.d.ts +3 -0
  228. package/lib/plugins/input/keyboard/index.d.ts.map +1 -0
  229. package/lib/plugins/input/keyboard/interfaces.d.ts +18 -0
  230. package/lib/plugins/input/keyboard/interfaces.d.ts.map +1 -0
  231. package/lib/plugins/input/methods.d.ts +4 -0
  232. package/lib/plugins/input/methods.d.ts.map +1 -0
  233. package/lib/plugins/input/touch/TouchControls.d.ts +35 -0
  234. package/lib/plugins/input/touch/TouchControls.d.ts.map +1 -0
  235. package/lib/plugins/input/touch/constants.d.ts +14 -0
  236. package/lib/plugins/input/touch/constants.d.ts.map +1 -0
  237. package/lib/plugins/input/touch/index.d.ts +4 -0
  238. package/lib/plugins/input/touch/index.d.ts.map +1 -0
  239. package/lib/plugins/input/touch/interfaces.d.ts +15 -0
  240. package/lib/plugins/input/touch/interfaces.d.ts.map +1 -0
  241. package/lib/plugins/input/types.d.ts +32 -0
  242. package/lib/plugins/input/types.d.ts.map +1 -0
  243. package/lib/plugins/input/utils.d.ts +23 -0
  244. package/lib/plugins/input/utils.d.ts.map +1 -0
  245. package/lib/plugins/spine/SpinePlugin.d.ts +6 -0
  246. package/lib/plugins/spine/SpinePlugin.d.ts.map +1 -0
  247. package/lib/plugins/spine/pixi-spine/BatchableSpineSlot.d.ts +31 -0
  248. package/lib/plugins/spine/pixi-spine/BatchableSpineSlot.d.ts.map +1 -0
  249. package/lib/plugins/spine/pixi-spine/Spine.d.ts +211 -0
  250. package/lib/plugins/spine/pixi-spine/Spine.d.ts.map +1 -0
  251. package/lib/plugins/spine/pixi-spine/SpineDebugRenderer.d.ts +81 -0
  252. package/lib/plugins/spine/pixi-spine/SpineDebugRenderer.d.ts.map +1 -0
  253. package/lib/plugins/spine/pixi-spine/SpinePipe.d.ts +21 -0
  254. package/lib/plugins/spine/pixi-spine/SpinePipe.d.ts.map +1 -0
  255. package/lib/plugins/spine/pixi-spine/SpineTexture.d.ts +16 -0
  256. package/lib/plugins/spine/pixi-spine/SpineTexture.d.ts.map +1 -0
  257. package/lib/plugins/spine/pixi-spine/assets/atlasLoader.d.ts +10 -0
  258. package/lib/plugins/spine/pixi-spine/assets/atlasLoader.d.ts.map +1 -0
  259. package/lib/plugins/spine/pixi-spine/assets/skeletonLoader.d.ts +6 -0
  260. package/lib/plugins/spine/pixi-spine/assets/skeletonLoader.d.ts.map +1 -0
  261. package/lib/plugins/spine/pixi-spine/darktint/DarkTintBatchGeometry.d.ts +5 -0
  262. package/lib/plugins/spine/pixi-spine/darktint/DarkTintBatchGeometry.d.ts.map +1 -0
  263. package/lib/plugins/spine/pixi-spine/darktint/DarkTintBatcher.d.ts +22 -0
  264. package/lib/plugins/spine/pixi-spine/darktint/DarkTintBatcher.d.ts.map +1 -0
  265. package/lib/plugins/spine/pixi-spine/darktint/DarkTintShader.d.ts +5 -0
  266. package/lib/plugins/spine/pixi-spine/darktint/DarkTintShader.d.ts.map +1 -0
  267. package/lib/plugins/spine/pixi-spine/darktint/darkTintBit.d.ts +51 -0
  268. package/lib/plugins/spine/pixi-spine/darktint/darkTintBit.d.ts.map +1 -0
  269. package/lib/plugins/spine/pixi-spine/index.d.ts +9 -0
  270. package/lib/plugins/spine/pixi-spine/index.d.ts.map +1 -0
  271. package/lib/plugins/spine/pixi-spine/require-shim.d.ts +34 -0
  272. package/lib/plugins/spine/pixi-spine/require-shim.d.ts.map +1 -0
  273. package/lib/registries-CYCaYKZI.js +6885 -0
  274. package/lib/registries-CYCaYKZI.js.map +1 -0
  275. package/lib/signals/Signal.d.ts +16 -0
  276. package/lib/signals/Signal.d.ts.map +1 -0
  277. package/lib/signals/Signal.test.d.ts +2 -0
  278. package/lib/signals/Signal.test.d.ts.map +1 -0
  279. package/lib/signals/index.d.ts +3 -0
  280. package/lib/signals/index.d.ts.map +1 -0
  281. package/lib/store/Store.d.ts +56 -0
  282. package/lib/store/Store.d.ts.map +1 -0
  283. package/lib/store/Store.test.d.ts +2 -0
  284. package/lib/store/Store.test.d.ts.map +1 -0
  285. package/lib/store/index.d.ts +2 -0
  286. package/lib/store/index.d.ts.map +1 -0
  287. package/lib/types/framework.d.ts +46 -0
  288. package/lib/types/gsap.d.ts +23 -0
  289. package/lib/ui/Button.d.ts +162 -0
  290. package/lib/ui/Button.d.ts.map +1 -0
  291. package/lib/ui/FlexContainer.d.ts +109 -0
  292. package/lib/ui/FlexContainer.d.ts.map +1 -0
  293. package/lib/ui/Input.d.ts +384 -0
  294. package/lib/ui/Input.d.ts.map +1 -0
  295. package/lib/ui/Joystick.d.ts +61 -0
  296. package/lib/ui/Joystick.d.ts.map +1 -0
  297. package/lib/ui/Popup.d.ts +109 -0
  298. package/lib/ui/Popup.d.ts.map +1 -0
  299. package/lib/ui/Toast.d.ts +131 -0
  300. package/lib/ui/Toast.d.ts.map +1 -0
  301. package/lib/ui/Toaster.d.ts +188 -0
  302. package/lib/ui/Toaster.d.ts.map +1 -0
  303. package/lib/ui/UICanvas.d.ts +155 -0
  304. package/lib/ui/UICanvas.d.ts.map +1 -0
  305. package/lib/ui/index.d.ts +9 -0
  306. package/lib/ui/index.d.ts.map +1 -0
  307. package/lib/utils/array.d.ts +11 -0
  308. package/lib/utils/array.d.ts.map +1 -0
  309. package/lib/utils/bind.d.ts +21 -0
  310. package/lib/utils/bind.d.ts.map +1 -0
  311. package/lib/utils/canvas.d.ts +2 -0
  312. package/lib/utils/canvas.d.ts.map +1 -0
  313. package/lib/utils/color.d.ts +66 -0
  314. package/lib/utils/color.d.ts.map +1 -0
  315. package/lib/utils/console/Logger.d.ts +15 -0
  316. package/lib/utils/console/Logger.d.ts.map +1 -0
  317. package/lib/utils/console/index.d.ts +2 -0
  318. package/lib/utils/console/index.d.ts.map +1 -0
  319. package/lib/utils/debug.d.ts +34 -0
  320. package/lib/utils/debug.d.ts.map +1 -0
  321. package/lib/utils/define.d.ts +100 -0
  322. package/lib/utils/define.d.ts.map +1 -0
  323. package/lib/utils/env.d.ts +4 -0
  324. package/lib/utils/env.d.ts.map +1 -0
  325. package/lib/utils/events.d.ts +12 -0
  326. package/lib/utils/events.d.ts.map +1 -0
  327. package/lib/utils/framework.d.ts +12 -0
  328. package/lib/utils/framework.d.ts.map +1 -0
  329. package/lib/utils/index.d.ts +28 -0
  330. package/lib/utils/index.d.ts.map +1 -0
  331. package/lib/utils/map.d.ts +31 -0
  332. package/lib/utils/map.d.ts.map +1 -0
  333. package/lib/utils/math.d.ts +15 -0
  334. package/lib/utils/math.d.ts.map +1 -0
  335. package/lib/utils/misc.d.ts +13 -0
  336. package/lib/utils/misc.d.ts.map +1 -0
  337. package/lib/utils/number.d.ts +2 -0
  338. package/lib/utils/number.d.ts.map +1 -0
  339. package/lib/utils/object.d.ts +21 -0
  340. package/lib/utils/object.d.ts.map +1 -0
  341. package/lib/utils/padding.d.ts +4 -0
  342. package/lib/utils/padding.d.ts.map +1 -0
  343. package/lib/utils/pixi.d.ts +42 -0
  344. package/lib/utils/pixi.d.ts.map +1 -0
  345. package/lib/utils/platform.d.ts +20 -0
  346. package/lib/utils/platform.d.ts.map +1 -0
  347. package/lib/utils/point.d.ts +66 -0
  348. package/lib/utils/point.d.ts.map +1 -0
  349. package/lib/utils/promise/Queue.d.ts +60 -0
  350. package/lib/utils/promise/Queue.d.ts.map +1 -0
  351. package/lib/utils/promise/functions.d.ts +14 -0
  352. package/lib/utils/promise/functions.d.ts.map +1 -0
  353. package/lib/utils/promise/index.d.ts +3 -0
  354. package/lib/utils/promise/index.d.ts.map +1 -0
  355. package/lib/utils/random.d.ts +42 -0
  356. package/lib/utils/random.d.ts.map +1 -0
  357. package/lib/utils/rect.d.ts +26 -0
  358. package/lib/utils/rect.d.ts.map +1 -0
  359. package/lib/utils/set.d.ts +15 -0
  360. package/lib/utils/set.d.ts.map +1 -0
  361. package/lib/utils/string.d.ts +3 -0
  362. package/lib/utils/string.d.ts.map +1 -0
  363. package/lib/utils/text.d.ts +3 -0
  364. package/lib/utils/text.d.ts.map +1 -0
  365. package/lib/utils/typefilters.d.ts +4 -0
  366. package/lib/utils/typefilters.d.ts.map +1 -0
  367. package/lib/utils/types.d.ts +209 -0
  368. package/lib/utils/types.d.ts.map +1 -0
  369. package/lib/utils/vite.d.ts +25 -0
  370. package/lib/utils/vite.d.ts.map +1 -0
  371. package/lib/utils/web.d.ts +3 -0
  372. package/lib/utils/web.d.ts.map +1 -0
  373. package/lib/version.d.ts +3 -0
  374. package/lib/version.d.ts.map +1 -0
  375. package/lib/webgl-check.d.ts +2 -0
  376. package/lib/webgl-check.d.ts.map +1 -0
  377. package/package.json +138 -0
  378. package/src/core/Application.ts +1091 -0
  379. package/src/core/config.ts +168 -0
  380. package/src/core/create.ts +186 -0
  381. package/src/core/globals.ts +299 -0
  382. package/src/core/index.ts +6 -0
  383. package/src/core/interfaces/IApplication.ts +628 -0
  384. package/src/core/interfaces/IApplicationOptions.ts +81 -0
  385. package/src/core/interfaces/ICoreFunctions.ts +86 -0
  386. package/src/core/interfaces/ICoreSignals.ts +77 -0
  387. package/src/core/interfaces/IStorageCapability.test.ts +27 -0
  388. package/src/core/interfaces/IStorageCapability.ts +26 -0
  389. package/src/core/interfaces/index.ts +6 -0
  390. package/src/core/registries.ts +7 -0
  391. package/src/core/types.ts +13 -0
  392. package/src/display/AnimatedSprite.ts +227 -0
  393. package/src/display/Camera.ts +371 -0
  394. package/src/display/Container.ts +240 -0
  395. package/src/display/Entity.ts +50 -0
  396. package/src/display/ParticleContainer.ts +107 -0
  397. package/src/display/Scene.ts +305 -0
  398. package/src/display/SceneTransition.ts +108 -0
  399. package/src/display/SpineAnimation.ts +170 -0
  400. package/src/display/Svg.ts +9 -0
  401. package/src/display/index.ts +11 -0
  402. package/src/env.d.ts +6 -0
  403. package/src/hello.ts +20 -0
  404. package/src/index.ts +17 -0
  405. package/src/mixins/animated.ts +340 -0
  406. package/src/mixins/factory/Factory.ts +24 -0
  407. package/src/mixins/factory/const.ts +363 -0
  408. package/src/mixins/factory/index.ts +7 -0
  409. package/src/mixins/factory/methods.ts +21 -0
  410. package/src/mixins/factory/props.ts +207 -0
  411. package/src/mixins/factory/registry.test.ts +83 -0
  412. package/src/mixins/factory/registry.ts +61 -0
  413. package/src/mixins/factory/schema.ts +153 -0
  414. package/src/mixins/factory/ui-registry.ts +54 -0
  415. package/src/mixins/factory/utils.ts +130 -0
  416. package/src/mixins/focus.ts +124 -0
  417. package/src/mixins/index.ts +5 -0
  418. package/src/mixins/interaction.ts +74 -0
  419. package/src/mixins/signals.ts +49 -0
  420. package/src/plugins/AssetsPlugin.ts +407 -0
  421. package/src/plugins/DataAdapter.ts +259 -0
  422. package/src/plugins/DevToolsPlugin.ts +103 -0
  423. package/src/plugins/FullScreenPlugin.ts +359 -0
  424. package/src/plugins/GSAPPlugin.ts +811 -0
  425. package/src/plugins/KeyboardPlugin.ts +160 -0
  426. package/src/plugins/LayoutPlugin.ts +127 -0
  427. package/src/plugins/LookupPlugin.ts +308 -0
  428. package/src/plugins/Plugin.test.ts +73 -0
  429. package/src/plugins/Plugin.ts +200 -0
  430. package/src/plugins/PopupManagerPlugin.ts +263 -0
  431. package/src/plugins/ResizerPlugin.ts +220 -0
  432. package/src/plugins/SceneManagerPlugin.ts +669 -0
  433. package/src/plugins/StatsPlugin.ts +24 -0
  434. package/src/plugins/TimerPlugin.ts +841 -0
  435. package/src/plugins/WebEventsPlugin.ts +132 -0
  436. package/src/plugins/actions/ActionsPlugin.ts +113 -0
  437. package/src/plugins/actions/constants.ts +45 -0
  438. package/src/plugins/actions/index.ts +4 -0
  439. package/src/plugins/actions/methods.ts +28 -0
  440. package/src/plugins/actions/types.ts +47 -0
  441. package/src/plugins/audio/AudioChannel.test.ts +101 -0
  442. package/src/plugins/audio/AudioChannel.ts +164 -0
  443. package/src/plugins/audio/AudioInstance.ts +228 -0
  444. package/src/plugins/audio/AudioManagerPlugin.ts +903 -0
  445. package/src/plugins/audio/VoiceOverPlugin.ts +354 -0
  446. package/src/plugins/audio/index.ts +3 -0
  447. package/src/plugins/breakpoints/BreakpointPlugin.test.ts +228 -0
  448. package/src/plugins/breakpoints/BreakpointPlugin.ts +293 -0
  449. package/src/plugins/breakpoints/evaluate.test.ts +239 -0
  450. package/src/plugins/breakpoints/evaluate.ts +201 -0
  451. package/src/plugins/breakpoints/index.ts +3 -0
  452. package/src/plugins/breakpoints/methods.ts +22 -0
  453. package/src/plugins/breakpoints/types.ts +86 -0
  454. package/src/plugins/captions/CaptionsPlugin.ts +468 -0
  455. package/src/plugins/captions/CaptionsRenderer.ts +184 -0
  456. package/src/plugins/captions/font/Sans.fnt +116 -0
  457. package/src/plugins/captions/font/Sans.png +0 -0
  458. package/src/plugins/captions/index.ts +2 -0
  459. package/src/plugins/defaults.ts +95 -0
  460. package/src/plugins/focus/FocusManagerPlugin.ts +773 -0
  461. package/src/plugins/focus/FocusOutliner.ts +111 -0
  462. package/src/plugins/focus/index.ts +2 -0
  463. package/src/plugins/i18nPlugin.ts +284 -0
  464. package/src/plugins/index.ts +17 -0
  465. package/src/plugins/input/AbstractControls.ts +15 -0
  466. package/src/plugins/input/Controls.ts +55 -0
  467. package/src/plugins/input/InputPlugin.ts +168 -0
  468. package/src/plugins/input/constants.ts +12 -0
  469. package/src/plugins/input/index.ts +9 -0
  470. package/src/plugins/input/interfaces.ts +37 -0
  471. package/src/plugins/input/keyboard/KeyboardContols.ts +182 -0
  472. package/src/plugins/input/keyboard/index.ts +2 -0
  473. package/src/plugins/input/keyboard/interfaces.ts +21 -0
  474. package/src/plugins/input/methods.ts +9 -0
  475. package/src/plugins/input/touch/TouchControls.ts +237 -0
  476. package/src/plugins/input/touch/constants.ts +34 -0
  477. package/src/plugins/input/touch/index.ts +3 -0
  478. package/src/plugins/input/touch/interfaces.ts +15 -0
  479. package/src/plugins/input/types.ts +41 -0
  480. package/src/plugins/input/utils.ts +10 -0
  481. package/src/plugins/spine/SpinePlugin.ts +14 -0
  482. package/src/plugins/spine/pixi-spine/BatchableSpineSlot.ts +138 -0
  483. package/src/plugins/spine/pixi-spine/Spine.ts +897 -0
  484. package/src/plugins/spine/pixi-spine/SpineDebugRenderer.ts +615 -0
  485. package/src/plugins/spine/pixi-spine/SpinePipe.ts +197 -0
  486. package/src/plugins/spine/pixi-spine/SpineTexture.ts +143 -0
  487. package/src/plugins/spine/pixi-spine/assets/atlasLoader.ts +156 -0
  488. package/src/plugins/spine/pixi-spine/assets/skeletonLoader.ts +80 -0
  489. package/src/plugins/spine/pixi-spine/darktint/DarkTintBatchGeometry.ts +92 -0
  490. package/src/plugins/spine/pixi-spine/darktint/DarkTintBatcher.ts +186 -0
  491. package/src/plugins/spine/pixi-spine/darktint/DarkTintShader.ts +74 -0
  492. package/src/plugins/spine/pixi-spine/darktint/darkTintBit.ts +77 -0
  493. package/src/plugins/spine/pixi-spine/index.ts +43 -0
  494. package/src/plugins/spine/pixi-spine/require-shim.ts +43 -0
  495. package/src/signals/Signal.test.ts +54 -0
  496. package/src/signals/Signal.ts +68 -0
  497. package/src/signals/index.ts +10 -0
  498. package/src/store/Store.test.ts +146 -0
  499. package/src/store/Store.ts +192 -0
  500. package/src/store/index.ts +1 -0
  501. package/src/types/framework.d.ts +47 -0
  502. package/src/types/gsap.d.ts +26 -0
  503. package/src/ui/Button.ts +454 -0
  504. package/src/ui/FlexContainer.ts +526 -0
  505. package/src/ui/Input.ts +1274 -0
  506. package/src/ui/Joystick.ts +288 -0
  507. package/src/ui/Popup.ts +242 -0
  508. package/src/ui/Toast.ts +399 -0
  509. package/src/ui/Toaster.ts +409 -0
  510. package/src/ui/UICanvas.ts +812 -0
  511. package/src/ui/index.ts +8 -0
  512. package/src/utils/array.ts +24 -0
  513. package/src/utils/bind.ts +79 -0
  514. package/src/utils/canvas.ts +26 -0
  515. package/src/utils/color.ts +126 -0
  516. package/src/utils/console/Logger.ts +86 -0
  517. package/src/utils/console/index.ts +1 -0
  518. package/src/utils/debug.ts +69 -0
  519. package/src/utils/define.ts +120 -0
  520. package/src/utils/env.ts +3 -0
  521. package/src/utils/events.ts +10 -0
  522. package/src/utils/framework.ts +45 -0
  523. package/src/utils/index.ts +27 -0
  524. package/src/utils/map.ts +59 -0
  525. package/src/utils/math.ts +19 -0
  526. package/src/utils/misc.ts +45 -0
  527. package/src/utils/number.ts +3 -0
  528. package/src/utils/object.ts +43 -0
  529. package/src/utils/padding.ts +43 -0
  530. package/src/utils/pixi.ts +116 -0
  531. package/src/utils/platform.ts +33 -0
  532. package/src/utils/point.ts +123 -0
  533. package/src/utils/promise/Queue.ts +125 -0
  534. package/src/utils/promise/functions.ts +16 -0
  535. package/src/utils/promise/index.ts +2 -0
  536. package/src/utils/random.ts +69 -0
  537. package/src/utils/rect.ts +50 -0
  538. package/src/utils/set.ts +32 -0
  539. package/src/utils/string.ts +9 -0
  540. package/src/utils/text.ts +30 -0
  541. package/src/utils/typefilters.ts +29 -0
  542. package/src/utils/types.ts +426 -0
  543. package/src/utils/vite.ts +41 -0
  544. package/src/utils/web.ts +7 -0
  545. package/src/version.ts +3 -0
  546. package/src/webgl-check.ts +12 -0
  547. package/templates/app/default/.eslintrc.json +21 -0
  548. package/templates/app/default/.meta.json +4 -0
  549. package/templates/app/default/.nvmrc +1 -0
  550. package/templates/app/default/.prettierrc.json +7 -0
  551. package/templates/app/default/README.md +8 -0
  552. package/templates/app/default/assets/audio{m}/music/Cheerful Annoyance.ogg +0 -0
  553. package/templates/app/default/assets/audio{m}/music/Drumming Sticks.ogg +0 -0
  554. package/templates/app/default/assets/audio{m}/music/Game Over.ogg +0 -0
  555. package/templates/app/default/assets/audio{m}/music/Mishief Stroll.ogg +0 -0
  556. package/templates/app/default/assets/audio{m}/music/Night at the Beach.ogg +0 -0
  557. package/templates/app/default/assets/audio{m}/sfx/click.ogg +0 -0
  558. package/templates/app/default/assets/audio{m}/sfx/hover.ogg +0 -0
  559. package/templates/app/default/assets/required{m}/caper.png +0 -0
  560. package/templates/app/default/assets/required{m}/fonts{fix}/SpaceGrotesk-Bold{family=Space Grotesk}{wf}.ttf +0 -0
  561. package/templates/app/default/assets/required{m}/fonts{fix}/SpaceGrotesk-Medium{family=Space Grotesk}{wf}.ttf +0 -0
  562. package/templates/app/default/assets/required{m}/fonts{fix}/SpaceGrotesk-Regular{family=Space Grotesk}{wf}.ttf +0 -0
  563. package/templates/app/default/assets/required{m}/fonts{fix}/Syncopate-Bold{family=Syncopate}{wf}.ttf +0 -0
  564. package/templates/app/default/assets/required{m}/ui{tps}/btn/blue.png +0 -0
  565. package/templates/app/default/assets/required{m}/ui{tps}/btn/green.png +0 -0
  566. package/templates/app/default/assets/required{m}/ui{tps}/btn/grey.png +0 -0
  567. package/templates/app/default/assets/required{m}/ui{tps}/btn/orange.png +0 -0
  568. package/templates/app/default/assets/required{m}/ui{tps}/btn/purple.png +0 -0
  569. package/templates/app/default/assets/required{m}/ui{tps}/btn/red.png +0 -0
  570. package/templates/app/default/assets/required{m}/ui{tps}/btn/yellow.png +0 -0
  571. package/templates/app/default/assets/required{m}/ui{tps}/btn_a/down.png +0 -0
  572. package/templates/app/default/assets/required{m}/ui{tps}/btn_a/over.png +0 -0
  573. package/templates/app/default/assets/required{m}/ui{tps}/btn_a/up.png +0 -0
  574. package/templates/app/default/assets/required{m}/ui{tps}/btn_b/down.png +0 -0
  575. package/templates/app/default/assets/required{m}/ui{tps}/btn_b/over.png +0 -0
  576. package/templates/app/default/assets/required{m}/ui{tps}/btn_b/up.png +0 -0
  577. package/templates/app/default/assets/required{m}/ui{tps}/joystick/base.png +0 -0
  578. package/templates/app/default/assets/required{m}/ui{tps}/joystick/handle.png +0 -0
  579. package/templates/app/default/assets/required{m}/wordmark.svg +1 -0
  580. package/templates/app/default/assets/spine{m}/spineboy-pro.png +0 -0
  581. package/templates/app/default/assets/spine{m}/spineboy-pro.skel +0 -0
  582. package/templates/app/default/assets/spine{m}/spineboy-pro{fix}.atlas +94 -0
  583. package/templates/app/default/caper.config.ts +60 -0
  584. package/templates/app/default/index.html +23 -0
  585. package/templates/app/default/package.template.json +17 -0
  586. package/templates/app/default/public/favicon.ico +0 -0
  587. package/templates/app/default/src/__APPLICATION_NAME__.ts +3 -0
  588. package/templates/app/default/src/main.ts +9 -0
  589. package/templates/app/default/src/scenes/Base.ts +39 -0
  590. package/templates/app/default/src/scenes/Game.ts +34 -0
  591. package/templates/app/default/src/scenes/Splash.ts +70 -0
  592. package/templates/app/default/src/scenes/Start.ts +90 -0
  593. package/templates/app/default/src/utils/Constants.ts +3 -0
  594. package/templates/app/default/tsconfig.json +1 -0
  595. package/templates/plugin/package.template.json +33 -0
  596. package/templates/plugin/src/Plugin.template.ts +24 -0
  597. package/templates/plugin/src/index.template.ts +3 -0
  598. package/templates/plugin/tsconfig.template.json +43 -0
  599. package/templates/plugin/vite-env.template.d.ts +16 -0
  600. package/templates/plugin/vite.config.template.ts +19 -0
@@ -0,0 +1,628 @@
1
+ import { AssetsManifest, Application as PIXIPApplication, Container as PIXIContainer, Point } from 'pixi.js';
2
+ import type {
3
+ ActionSignal,
4
+ IAssetsPlugin,
5
+ IAudioManagerPlugin,
6
+ IBreakpointPlugin,
7
+ IControls,
8
+ IFocusManagerPlugin,
9
+ Ii18nPlugin,
10
+ IInputPlugin,
11
+ IKeyboardPlugin,
12
+ IPlugin,
13
+ IPopupManagerPlugin,
14
+ IResizerPlugin,
15
+ ISceneManagerPlugin,
16
+ IWebEventsPlugin,
17
+ } from '../../plugins';
18
+ import { IGSAPPlugin } from '../../plugins/GSAPPlugin';
19
+ import { Signal } from '../../signals';
20
+ import type { IDataAdapter } from '../../plugins/DataAdapter';
21
+ import type { IStore } from '../../store';
22
+ import type { AppTypeOverrides, Eases, Size } from '../../utils';
23
+ import type { AppConfig, PauseConfig } from '../types';
24
+ import type { ICoreFunctions } from './ICoreFunctions';
25
+ import { ICoreSignals } from './ICoreSignals';
26
+
27
+ /**
28
+ * Represents the core application interface, extending PixiJS Application.
29
+ * It manages plugins, game state, actions, and provides access to various application subsystems.
30
+ *
31
+ * @template D - The type of the data schema used by the application's store.
32
+ * @template C - The type of the action context used for dispatching actions.
33
+ * @template A - The type of actions that can be dispatched in the application.
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * import { Application } from '@caperjs/framework';
38
+ *
39
+ * // Define your data schema, action context, and actions
40
+ * interface MyDataSchema {
41
+ * score: number;
42
+ * playerName: string;
43
+ * }
44
+ *
45
+ * interface MyActionContext {
46
+ * userId: string;
47
+ * }
48
+ *
49
+ * type MyActions = 'startGame' | 'endGame' | 'updateScore';
50
+ *
51
+ * // Create a new application instance
52
+ * const app = new Application<MyDataSchema, MyActionContext, MyActions>();
53
+ *
54
+ * async function main() {
55
+ * await app.initialize({
56
+ * // Application configuration
57
+ * appName: 'My Awesome Game',
58
+ * // ... other config options
59
+ * }, document.getElementById('game-container'));
60
+ *
61
+ * // Access application properties and methods
62
+ * console.log(app.appName); // 'My Awesome Game'
63
+ * app.scenes.load('mainMenu');
64
+ * app.action('startGame');
65
+ * }
66
+ *
67
+ * main();
68
+ * ```
69
+ */
70
+ export interface IApplication extends PIXIPApplication {
71
+ /**
72
+ * The application configuration object.
73
+ * Contains settings for various aspects of the application, including plugins, assets, and scenes.
74
+ * @readonly
75
+ * @example
76
+ * ```typescript
77
+ * console.log(app.config.appName); // 'My Awesome Game'
78
+ * if (app.config.showStats) {
79
+ * // Show performance stats
80
+ * }
81
+ * ```
82
+ */
83
+ readonly config: Partial<AppConfig>;
84
+
85
+ /**
86
+ * A top-level container for debug overlays, rendered above all other stage children.
87
+ * Lazily created on first access. Non-interactive and excluded from layout.
88
+ *
89
+ * Plugins and modules that draw screen-space debug (e.g. viewport bounds)
90
+ * should add their Graphics here rather than directly to the stage.
91
+ * Components drawing in local coordinates (FlexContainer, UICanvas) add
92
+ * debug Graphics to themselves instead — use the shared `createDebugGraphics()`
93
+ * and `DebugColors` utilities for consistent styling.
94
+ */
95
+ readonly debugContainer: PIXIContainer;
96
+
97
+ /**
98
+ * Environment variables available to the application.
99
+ * Typically sourced from `import.meta.env`.
100
+ * @readonly
101
+ * @example
102
+ * ```typescript
103
+ * const apiKey = app.env.API_KEY;
104
+ * if (app.env.NODE_ENV === 'development') {
105
+ * // Enable debug features
106
+ * }
107
+ * ```
108
+ */
109
+ readonly env: Record<string, string>;
110
+
111
+ /**
112
+ * The current size (width and height) of the application's view/canvas.
113
+ * Managed by the ResizerPlugin.
114
+ * @readonly
115
+ * @example
116
+ * ```typescript
117
+ * console.log(app.size.width, app.size.height);
118
+ * const aspectRatio = app.size.width / app.size.height;
119
+ * ```
120
+ */
121
+ readonly size: Size;
122
+
123
+ /**
124
+ * The center point (x, y) of the application's view/canvas.
125
+ * Automatically updated when the application resizes.
126
+ * @readonly
127
+ * @example
128
+ * ```typescript
129
+ * // Center a sprite on the screen
130
+ * mySprite.position.copyFrom(app.center);
131
+ * ```
132
+ */
133
+ readonly center: Point;
134
+
135
+ /**
136
+ * The asset manifest used by the application.
137
+ * Can be a URL to a manifest file, or an AssetsManifest object.
138
+ * @readonly
139
+ * @example
140
+ * ```typescript
141
+ * console.log(app.manifest); // Could be './assets.json' or an object
142
+ * ```
143
+ */
144
+ readonly manifest: AssetsManifest | string | undefined;
145
+
146
+ /**
147
+ * The AssetsPlugin instance for managing game assets.
148
+ * Provides methods for loading and accessing textures, sounds, fonts, etc.
149
+ * @readonly
150
+ * @example
151
+ * ```typescript
152
+ * const playerTexture = await app.assets.load('playerSprite');
153
+ * const backgroundMusic = app.assets.getSound('bgm');
154
+ * ```
155
+ */
156
+ readonly assets: IAssetsPlugin;
157
+
158
+ /**
159
+ * The SceneManagerPlugin instance for managing game scenes.
160
+ * Handles scene transitions, loading, and lifecycle.
161
+ * @readonly
162
+ * @example
163
+ * ```typescript
164
+ * app.scenes.load('level1');
165
+ * app.scenes.currentScene.pause();
166
+ * ```
167
+ */
168
+ readonly scenes: ISceneManagerPlugin;
169
+
170
+ /**
171
+ * The WebEventsPlugin instance for managing browser-related events.
172
+ * Handles events like window resize, visibility change, etc.
173
+ * @readonly
174
+ * @example
175
+ * ```typescript
176
+ * app.webEvents.onResize.connect((newSize) => {
177
+ * console.log('Resized to:', newSize.width, newSize.height);
178
+ * });
179
+ * ```
180
+ */
181
+ readonly webEvents: IWebEventsPlugin;
182
+
183
+ /**
184
+ * The KeyboardPlugin instance for managing keyboard input.
185
+ * @readonly
186
+ * @example
187
+ * ```typescript
188
+ * if (app.keyboard.isKeyDown('Space')) {
189
+ * // Player jumps
190
+ * }
191
+ * app.keyboard.onKeyDown.connect((keyEvent) => {
192
+ * if(keyEvent.key === 'Escape') app.scenes.load('pauseMenu');
193
+ * });
194
+ * ```
195
+ */
196
+ readonly keyboard: IKeyboardPlugin;
197
+
198
+ /**
199
+ * The FocusManagerPlugin instance for managing UI focus.
200
+ * @readonly
201
+ */
202
+ readonly focus: IFocusManagerPlugin;
203
+
204
+ /**
205
+ * The PopupManagerPlugin instance for managing pop-up dialogs or views.
206
+ * @readonly
207
+ * @example
208
+ * ```typescript
209
+ * app.popups.show('settingsPopup', { volume: 0.5 });
210
+ * ```
211
+ */
212
+ readonly popups: IPopupManagerPlugin;
213
+
214
+ /**
215
+ * The AudioManagerPlugin instance for managing game audio.
216
+ * Handles sound effects and background music.
217
+ * @readonly
218
+ * @example
219
+ * ```typescript
220
+ * app.audio.playSound('explosion');
221
+ * app.audio.setMusicVolume(0.7);
222
+ * ```
223
+ */
224
+ readonly audio: IAudioManagerPlugin;
225
+
226
+ /**
227
+ * The i18nPlugin instance for internationalization and localization.
228
+ * @readonly
229
+ * @example
230
+ * ```typescript
231
+ * const localizedGreeting = app.i18n.translate('GREETING_KEY');
232
+ * app.i18n.setLocale('fr-FR');
233
+ * ```
234
+ */
235
+ readonly i18n: Ii18nPlugin;
236
+
237
+ /**
238
+ * The ResizerPlugin instance for managing application resizing.
239
+ * @readonly
240
+ */
241
+ readonly resizer: IResizerPlugin;
242
+
243
+ /**
244
+ * The BreakpointPlugin instance for named responsive state derived from the
245
+ * renderer size.
246
+ * @readonly
247
+ */
248
+ readonly breakpoints: IBreakpointPlugin;
249
+
250
+ /**
251
+ * The InputPlugin instance for managing various input sources.
252
+ * This often consolidates controls from keyboard, mouse, gamepad, etc.
253
+ * @readonly
254
+ */
255
+ readonly input: IInputPlugin;
256
+
257
+ /**
258
+ * The Controls instance, typically accessed via the InputPlugin.
259
+ * Provides a higher-level abstraction for game controls and actions.
260
+ * @readonly
261
+ * @example
262
+ * ```typescript
263
+ * if (app.controls.isActionActive('jump')) {
264
+ * // Player jumps
265
+ * }
266
+ * ```
267
+ */
268
+ readonly controls: IControls;
269
+
270
+ /**
271
+ * The Store instance for managing application state.
272
+ * Uses a data schema and adapters for persistence.
273
+ * @readonly
274
+ * @example
275
+ * ```typescript
276
+ * const currentScore = app.store.getState().score;
277
+ * app.store.updateState({ score: currentScore + 10 });
278
+ * ```
279
+ */
280
+ readonly store: IStore;
281
+
282
+ /**
283
+ * The primary DataAdapter instance, usually for managing game data.
284
+ * @readonly
285
+ * @example
286
+ * ```typescript
287
+ * const playerData = await app.data.get('playerStats');
288
+ * await app.data.set('playerStats', { health: 100, mana: 50 });
289
+ * ```
290
+ */
291
+ readonly data: IDataAdapter;
292
+
293
+ /**
294
+ * The current context for dispatching actions.
295
+ * Allows passing additional contextual information when actions are triggered.
296
+ * @example
297
+ * ```typescript
298
+ * app.actionContext = { userId: 'user123', source: 'uiButton' };
299
+ * app.action('submitScore', { score: 1000 }); // Context will be included
300
+ * ```
301
+ */
302
+ actionContext: AppTypeOverrides['Contexts'];
303
+
304
+ /**
305
+ * A signal that emits when the application is paused.
306
+ * @example
307
+ * ```typescript
308
+ * app.onPause.connect(() => {
309
+ * console.log('Application paused');
310
+ * // Stop game-specific timers or animations not handled by app.pause()
311
+ * });
312
+ * ```
313
+ */
314
+ onPause: Signal<() => void>;
315
+
316
+ /**
317
+ * A signal that emits when the application is resumed from a paused state.
318
+ * @example
319
+ * ```typescript
320
+ * app.onResume.connect(() => {
321
+ * console.log('Application resumed');
322
+ * // Restart game-specific timers or animations
323
+ * });
324
+ * ```
325
+ */
326
+ onResume: Signal<() => void>;
327
+
328
+ /**
329
+ * Pauses the application.
330
+ * This can include pausing the ticker, animations, audio, and timers based on the `PauseConfig`.
331
+ * @param config - Optional configuration for what aspects of the application to pause.
332
+ * @example
333
+ * ```typescript
334
+ * // Pause everything
335
+ * app.pause();
336
+ *
337
+ * // Only pause audio and timers
338
+ * app.pause({ pauseAudio: true, pauseTimers: true });
339
+ * ```
340
+ */
341
+ pause(config?: PauseConfig): void;
342
+
343
+ /**
344
+ * Resumes the application from a paused state.
345
+ * Restores the state of ticker, animations, audio, and timers that were paused.
346
+ * @example
347
+ * ```typescript
348
+ * app.resume();
349
+ * ```
350
+ */
351
+ resume(): void;
352
+
353
+ /**
354
+ * Indicates whether the application is currently paused.
355
+ * @readonly
356
+ * @example
357
+ * ```typescript
358
+ * if (app.paused) {
359
+ * // Show pause menu
360
+ * }
361
+ * ```
362
+ */
363
+ readonly paused: boolean;
364
+
365
+ /**
366
+ * The name of the application.
367
+ * Defined in the application configuration.
368
+ * @readonly
369
+ * @example
370
+ * ```typescript
371
+ * document.title = app.appName;
372
+ * ```
373
+ */
374
+ readonly appName: string;
375
+
376
+ /**
377
+ * The version of the application.
378
+ * Typically injected at build time (e.g., via `__CAPER_APP_VERSION`).
379
+ * @readonly
380
+ * @example
381
+ * ```typescript
382
+ * console.log(`Running ${app.appName} v${app.appVersion}`);
383
+ * ```
384
+ */
385
+ readonly appVersion: string | number;
386
+
387
+ /**
388
+ * Access to core application signals.
389
+ * These are global signals for important application events.
390
+ * @readonly
391
+ * @example
392
+ * ```typescript
393
+ * app.signal.onLoadRequiredComplete.connectOnce(() => {
394
+ * console.log('Core assets loaded!');
395
+ * });
396
+ * ```
397
+ */
398
+ signal: ICoreSignals;
399
+
400
+ /**
401
+ * Access to core application functions.
402
+ * Provides a registry for globally accessible utility functions.
403
+ * @readonly
404
+ * @example
405
+ * ```typescript
406
+ * const utility = app.func.get('myUtility');
407
+ * if (utility) utility.doSomething();
408
+ * ```
409
+ */
410
+ func: ICoreFunctions;
411
+
412
+ /**
413
+ * Alias for `func`. Access to core application functions.
414
+ * @readonly
415
+ */
416
+ exec: ICoreFunctions;
417
+
418
+ /**
419
+ * Retrieves an ActionSignal for a specific action type.
420
+ * This allows subscribing to specific actions dispatched within the application.
421
+ * @param action - The action type to get the signal for.
422
+ * @returns An ActionSignal that can be connected to.
423
+ * @template TActionData - The type of data expected with the action.
424
+ * @example
425
+ * ```typescript
426
+ * // Assuming 'updateScore' is an action defined in 'MyActions'
427
+ * // And it carries a payload like { points: number }
428
+ * interface ScoreUpdateData { points: number; }
429
+ *
430
+ * app.actions<ScoreUpdateData>('updateScore').connect((data) => {
431
+ * console.log(`Score updated by ${data.points} points.`);
432
+ * // Update game state based on data.points
433
+ * });
434
+ * ```
435
+ */
436
+ actions<TActionData = any>(action: AppTypeOverrides['Actions']): ActionSignal<TActionData>;
437
+
438
+ /**
439
+ * Dispatches an action with optional data.
440
+ * This is an alias for `sendAction`.
441
+ * @param action - The action type to dispatch.
442
+ * @param data - Optional data to accompany the action.
443
+ * @template TActionData - The type of data being sent.
444
+ * @example
445
+ * ```typescript
446
+ * // Dispatch 'startGame' action
447
+ * app.action('startGame');
448
+ *
449
+ * // Dispatch 'updateScore' action with data
450
+ * app.action('updateScore', { points: 100 });
451
+ * ```
452
+ */
453
+ action<TActionData = any>(action: AppTypeOverrides['Actions'], data?: TActionData): void;
454
+
455
+ /**
456
+ * Dispatches an action with optional data.
457
+ * @param action - The action type to dispatch.
458
+ * @param data - Optional data to accompany the action.
459
+ * @template TActionData - The type of data being sent.
460
+ * @example
461
+ * ```typescript
462
+ * // Dispatch 'playerAction' with specific details
463
+ * app.sendAction('playerAction', { type: 'shoot', targetId: 'enemy123' });
464
+ * ```
465
+ */
466
+ sendAction<TActionData = any>(action: AppTypeOverrides['Actions'], data?: TActionData): void;
467
+
468
+ /**
469
+ * Checks if a specific action is currently considered active, usually based on input controls.
470
+ * @param action - The action type to check.
471
+ * @returns True if the action is active, false otherwise.
472
+ * @example
473
+ * ```typescript
474
+ * if (app.isActionActive('moveForward')) {
475
+ * player.move(1);
476
+ * }
477
+ * ```
478
+ */
479
+ isActionActive(action: AppTypeOverrides['Actions']): boolean;
480
+
481
+ // animation
482
+ /**
483
+ * The GSAPPlugin instance for managing animations.
484
+ * Provides access to GSAP functionality and animation contexts.
485
+ * @readonly
486
+ * @returns The GSAP plugin instance.
487
+ * @example
488
+ * ```typescript
489
+ * const timeline = app.animation.createTimeline();
490
+ * timeline.to(mySprite, { alpha: 0, duration: 1 });
491
+ * ```
492
+ */
493
+ readonly animation: IGSAPPlugin;
494
+ /**
495
+ * The global GSAP instance.
496
+ * Direct access to the `gsap` object for creating tweens and timelines.
497
+ * @readonly
498
+ * @returns The GSAP instance.
499
+ * @example
500
+ * ```typescript
501
+ * app.anim.to(mySprite.scale, { x: 1.5, y: 1.5, duration: 0.5, ease: 'power2.inOut' });
502
+ * ```
503
+ */
504
+ readonly anim: typeof gsap;
505
+
506
+ /**
507
+ * Adds one or more GSAP tweens or timelines to a specified animation context.
508
+ * This refers to the GSAPPlugin's custom animation context (a Set of tweens/timelines),
509
+ * NOT a `gsap.Context` instance. If no contextId is provided, animations are added
510
+ * to the plugin's global collection, allowing them to be managed (e.g., paused, resumed, killed) collectively.
511
+ * @param animation - A single GSAP tween/timeline or an array of them.
512
+ * @param contextId - Optional ID of the animation context. Defaults to the global context.
513
+ * @returns The animation(s) that were added.
514
+ * @example
515
+ * ```typescript
516
+ * const myTween = app.anim.to(myObject, { x: 100, duration: 1 });
517
+ * app.addAnimation(myTween, 'mySceneAnimationCollection');
518
+ *
519
+ * // Later, kill all animations in this context
520
+ * app.animation.killAll('mySceneAnimationCollection'); // Assuming killAll is the method to clear the custom context
521
+ * ```
522
+ */
523
+ addAnimation(
524
+ animation: gsap.core.Tween | gsap.core.Timeline | (gsap.core.Tween | gsap.core.Timeline)[],
525
+ contextId?: string,
526
+ ): gsap.core.Tween | gsap.core.Timeline | (gsap.core.Tween | gsap.core.Timeline)[];
527
+
528
+ /**
529
+ * Returns the registered GSAP eases or their names.
530
+ * Useful for dynamically applying easing functions or listing available eases.
531
+ * @param namesOnly - If true, returns only the ease names as an array of strings. Otherwise, returns an object mapping names to Ease functions.
532
+ * @returns An object of registered eases (name: Ease function) or an array of ease names.
533
+ * @example
534
+ * ```typescript
535
+ * const availableEaseNames = app.eases(true); // ['power1.inOut', 'back.out', ...]
536
+ * console.log(availableEaseNames);
537
+ *
538
+ * const easeFunctions = app.eases();
539
+ * if (easeFunctions['power2.in']) {
540
+ * app.anim.to(mySprite, { y: 200, ease: easeFunctions['power2.in'] });
541
+ * }
542
+ * ```
543
+ */
544
+ eases(namesOnly?: boolean): Eases | string[];
545
+
546
+ // initialize
547
+ /**
548
+ * Initializes the application with the given configuration and attaches it to an HTML element.
549
+ * This is the main entry point for starting the application.
550
+ * @param config - The application configuration object.
551
+ * @param el - The HTML element to append the application's canvas to. If not provided, an error will be thrown.
552
+ * @returns A promise that resolves with the initialized application instance.
553
+ * @example
554
+ * ```typescript
555
+ * const gameContainer = document.getElementById('game');
556
+ * if (gameContainer) {
557
+ * app.initialize({ appName: 'My Game' }, gameContainer)
558
+ * .then(initializedApp => {
559
+ * console.log(`${initializedApp.appName} initialized successfully!`);
560
+ * initializedApp.scenes.load('mainMenu');
561
+ * })
562
+ * .catch(error => console.error('Initialization failed:', error));
563
+ * } else {
564
+ * console.error('Game container element not found!');
565
+ * }
566
+ * ```
567
+ */
568
+ initialize(config: Partial<AppConfig>, el?: HTMLElement): Promise<AppTypeOverrides['App']>;
569
+
570
+ /**
571
+ * Runs any post-initialization setup tasks.
572
+ * This is called after the main `initialize` method has completed and core plugins are ready.
573
+ * It's a good place for plugins to finalize their setup or for the application to perform tasks
574
+ * that depend on a fully initialized environment.
575
+ * @returns A promise that resolves when post-initialization tasks are complete.
576
+ * User-overridable hook, run last by {@link _postInitialize} after all framework
577
+ * wiring. Safe to override WITHOUT calling `super` — framework post-init does not
578
+ * live here.
579
+ * @example
580
+ * ```typescript
581
+ * // Inside a custom Application class or after app.initialize resolves
582
+ * async function startMyGame() {
583
+ * await app.initialize(config, el);
584
+ * await app._postInitialize(); // Runs framework post-init + the user hook
585
+ * app.scenes.load('intro');
586
+ * }
587
+ * ```
588
+ */
589
+ postInitialize(): Promise<void>;
590
+
591
+ /**
592
+ * Framework post-initialization: runs every plugin's `postInitialize` and core
593
+ * wiring, then invokes the user-overridable {@link postInitialize} hook. Called by
594
+ * the runtime (`create()`); apps normally don't call this directly.
595
+ */
596
+ _postInitialize(): Promise<void>;
597
+
598
+ /**
599
+ * Retrieves a registered plugin by its name.
600
+ * @param name - The name/ID of the plugin to retrieve.
601
+ * @param debug - If true and the plugin is not found, an error will be logged. Defaults to false.
602
+ * @returns The plugin instance if found, otherwise undefined (or T if type assertion is used).
603
+ * @template T - The expected type of the plugin.
604
+ * @example
605
+ * ```typescript
606
+ * const myCustomPlugin = app.getPlugin<MyCustomPluginType>('myCustomPlugin');
607
+ * if (myCustomPlugin) {
608
+ * myCustomPlugin.doSomethingCool();
609
+ * }
610
+ *
611
+ * const nonExistentPlugin = app.getPlugin('nonExistent', true); // Will log an error
612
+ * ```
613
+ */
614
+ getPlugin<T extends IPlugin>(name: string, debug?: boolean): T;
615
+
616
+ /**
617
+ * Sets the main HTML container element for the application.
618
+ * This is typically the element where the PixiJS canvas is appended.
619
+ * @param container - The HTMLElement to be used as the application container.
620
+ * @example
621
+ * ```typescript
622
+ * const newGameContainer = document.createElement('div');
623
+ * document.body.appendChild(newGameContainer);
624
+ * app.setContainer(newGameContainer); // If app needs to change its parent container
625
+ * ```
626
+ */
627
+ setContainer(container: HTMLElement): void;
628
+ }
@@ -0,0 +1,81 @@
1
+ import type {
2
+ ActionMap,
3
+ BreakpointsConfig,
4
+ FocusManagerPluginOptions,
5
+ i18nOptions,
6
+ InputManagerOptions,
7
+ LoadSceneMethod,
8
+ ResizerPluginOptions,
9
+ SplashOptions,
10
+ } from '../../plugins';
11
+ import type {
12
+ AppTypeOverrides,
13
+ AssetLoadingOptions,
14
+ LoggerMode,
15
+ SceneImportList,
16
+ SceneImportListItem,
17
+ } from '../../utils';
18
+
19
+ import type { ApplicationOptions, TextDropShadow } from 'pixi.js';
20
+ import type { IScene, ISceneTransition, SceneTransition } from '../../display';
21
+ import { TextStyle } from '../../mixins';
22
+ import type { CaptionsOptions } from '../../plugins/captions';
23
+ import { GSAPPluginOptions } from '../../plugins/GSAPPlugin';
24
+ import type { IDataAdapterOptions } from '../../plugins/DataAdapter';
25
+ import type { PluginConfig } from '../config';
26
+ import { IApplication } from './IApplication';
27
+
28
+ export interface IApplicationOptions extends ApplicationOptions {
29
+ id: string;
30
+ application?: new (...args: any[]) => IApplication;
31
+ resizeToContainer: boolean;
32
+ container: HTMLElement;
33
+ logger: LoggerMode;
34
+ useStore: boolean;
35
+ useSpine: boolean;
36
+ useLayout: boolean;
37
+ useVoiceover: boolean;
38
+ /**
39
+ * Add `vite-plugin-wasm` to the Vite config. Only needed if your project
40
+ * imports a `.wasm` module directly (`import init from './foo.wasm'`) —
41
+ * runtime-fetched wasm (Rive's `locateFile`, pixi's KTX/basis transcoders)
42
+ * and Vite's native `?init` / `?url` imports work without it.
43
+ *
44
+ * Build-time only: read out of `caper.config.ts` by an AST parse before the
45
+ * Vite config is built, so it has no effect on the running Application and
46
+ * changing it requires a dev-server restart.
47
+ *
48
+ * @default false
49
+ */
50
+ useWasm?: boolean;
51
+ /**
52
+ * Enable the `window.Caper.automation[id]` facade for this app regardless of
53
+ * environment. Automation is also auto-enabled in dev or when
54
+ * `VITE_CAPER_AUTOMATION === 'true'`.
55
+ */
56
+ automation?: boolean;
57
+ defaultTextStyle: Partial<TextStyle>;
58
+ defaultDropShadow: TextDropShadow;
59
+ gsap: Partial<GSAPPluginOptions>;
60
+ data: Partial<IDataAdapterOptions>;
61
+ plugins: PluginConfig[];
62
+ assets: AssetLoadingOptions;
63
+ sceneImportList: SceneImportListItem<IScene>[];
64
+ scenes: SceneImportList<IScene>;
65
+ sceneGroupOrder: string[];
66
+ scenesLocation: string;
67
+ actions: Partial<ActionMap>;
68
+ input: Partial<InputManagerOptions>;
69
+ focus: Partial<FocusManagerPluginOptions>;
70
+ splash: Partial<SplashOptions>;
71
+ defaultScene: AppTypeOverrides['Scenes'];
72
+ sceneTransition: ISceneTransition | typeof SceneTransition;
73
+ defaultSceneLoadMethod: LoadSceneMethod;
74
+ showSceneDebugMenu: boolean;
75
+ useHash: boolean;
76
+ i18n: Partial<i18nOptions>;
77
+ resizer: Partial<ResizerPluginOptions>;
78
+ breakpoints: Partial<BreakpointsConfig>;
79
+ captions: Partial<CaptionsOptions>;
80
+ showStats: boolean;
81
+ }