webtalekit-alpha 0.2.13 → 0.2.14

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 (398) hide show
  1. package/README.md +145 -70
  2. package/package.json +10 -2
  3. package/parser/checker.js +184 -0
  4. package/parser/checker.test.ts +491 -0
  5. package/parser/cli.js +34 -2
  6. package/parser/parser.js +25 -18
  7. package/src/core/defaultUIHandler.js +309 -0
  8. package/src/core/defaultUIHandler.js.map +1 -0
  9. package/{dist/src → src}/core/drawer.js +65 -40
  10. package/src/core/drawer.js.map +1 -0
  11. package/{dist/src → src}/core/index.js +188 -257
  12. package/{dist/src → src}/core/scenarioManager.js +29 -7
  13. package/src/core/scenarioManager.js.map +1 -0
  14. package/src/utils/eventBus.js +88 -0
  15. package/src/utils/eventBus.js.map +1 -0
  16. package/{dist/src → src}/utils/logger.js +45 -1
  17. package/src/utils/logger.js.map +1 -0
  18. package/{dist/src → src}/utils/store.js +5 -0
  19. package/src/utils/store.js.map +1 -0
  20. package/.claude/settings.local.json +0 -12
  21. package/.clinerules +0 -65
  22. package/.history/README_20240812174230.md +0 -193
  23. package/.history/README_20240812175424.md +0 -185
  24. package/.history/README_20240812191012.md +0 -185
  25. package/.history/README_20240812191155.md +0 -185
  26. package/.history/README_20240812191211.md +0 -185
  27. package/.history/README_20240812192035.md +0 -185
  28. package/.history/dist/src/core/index_20240815021552.js +0 -474
  29. package/.history/dist/src/core/index_20240815022042.js +0 -476
  30. package/.history/dist/src/core/index_20240815022206.js +0 -476
  31. package/.history/dist/src/core/index_20240815023104.js +0 -478
  32. package/.history/dist/src/core/index_20240817022019.js +0 -494
  33. package/.history/dist/src/core/index_20240818013827.js +0 -493
  34. package/.history/dist/src/core/index_20240820001418.js +0 -502
  35. package/.history/package_20240812174230.json +0 -45
  36. package/.history/package_20240825011731.json +0 -45
  37. package/.history/package_20240825011739.json +0 -44
  38. package/.history/parser/parser_20240812174230.js +0 -50
  39. package/.history/parser/parser_20240825012739.js +0 -47
  40. package/.history/parser/parser_20240825012835.js +0 -52
  41. package/.history/src/core/drawer_20240813091343.ts +0 -262
  42. package/.history/src/core/drawer_20240815232345.ts +0 -262
  43. package/.history/src/core/drawer_20240815232350.ts +0 -262
  44. package/.history/src/core/drawer_20240816025257.ts +0 -357
  45. package/.history/src/core/drawer_20240816025358.ts +0 -357
  46. package/.history/src/core/drawer_20240816030148.ts +0 -365
  47. package/.history/src/core/drawer_20240816231033.ts +0 -294
  48. package/.history/src/core/drawer_20240816231107.ts +0 -262
  49. package/.history/src/core/drawer_20240816231234.ts +0 -268
  50. package/.history/src/core/drawer_20240817013836.ts +0 -290
  51. package/.history/src/core/drawer_20240817015150.ts +0 -289
  52. package/.history/src/core/drawer_20240817015353.ts +0 -290
  53. package/.history/src/core/drawer_20240817021254.ts +0 -291
  54. package/.history/src/core/drawer_20240817023440.ts +0 -295
  55. package/.history/src/core/drawer_20240817023445.ts +0 -295
  56. package/.history/src/core/drawer_20240818015327.ts +0 -295
  57. package/.history/src/core/drawer_20240819231006.ts +0 -318
  58. package/.history/src/core/drawer_20240820002829.ts +0 -317
  59. package/.history/src/core/drawer_20240820003141.ts +0 -295
  60. package/.history/src/core/drawer_20240824010043.ts +0 -295
  61. package/.history/src/core/drawer_20240825013311.ts +0 -293
  62. package/.history/src/core/drawer_20240902235257.ts +0 -295
  63. package/.history/src/core/drawer_20240904002038.ts +0 -262
  64. package/.history/src/core/drawer_20240904004020.ts +0 -262
  65. package/.history/src/core/drawer_20240904004238.ts +0 -262
  66. package/.history/src/core/drawer_20240904005648.ts +0 -262
  67. package/.history/src/core/drawer_20240904005808.ts +0 -262
  68. package/.history/src/core/drawer_20240904010523.ts +0 -262
  69. package/.history/src/core/drawer_20240904011611.ts +0 -262
  70. package/.history/src/core/drawer_20240904011740.ts +0 -262
  71. package/.history/src/core/index_20240812190102.js +0 -443
  72. package/.history/src/core/index_20240812190105.js +0 -443
  73. package/.history/src/core/index_20240812205421.js +0 -452
  74. package/.history/src/core/index_20240812213441.js +0 -452
  75. package/.history/src/core/index_20240812214203.js +0 -453
  76. package/.history/src/core/index_20240813090823.js +0 -453
  77. package/.history/src/core/index_20240813230449.js +0 -452
  78. package/.history/src/core/index_20240813230539.js +0 -452
  79. package/.history/src/core/index_20240813231447.js +0 -453
  80. package/.history/src/core/index_20240813231449.js +0 -453
  81. package/.history/src/core/index_20240813231511.js +0 -453
  82. package/.history/src/core/index_20240813231531.js +0 -453
  83. package/.history/src/core/index_20240813231913.js +0 -453
  84. package/.history/src/core/index_20240813232356.js +0 -453
  85. package/.history/src/core/index_20240813232640.js +0 -453
  86. package/.history/src/core/index_20240813232900.js +0 -453
  87. package/.history/src/core/index_20240814221127.js +0 -454
  88. package/.history/src/core/index_20240814221322.js +0 -454
  89. package/.history/src/core/index_20240814221526.js +0 -454
  90. package/.history/src/core/index_20240814222048.js +0 -454
  91. package/.history/src/core/index_20240814222918.js +0 -459
  92. package/.history/src/core/index_20240814223136.js +0 -459
  93. package/.history/src/core/index_20240814223501.js +0 -464
  94. package/.history/src/core/index_20240814224347.js +0 -468
  95. package/.history/src/core/index_20240815013712.js +0 -474
  96. package/.history/src/core/index_20240815021534.js +0 -474
  97. package/.history/src/core/index_20240815023143.js +0 -477
  98. package/.history/src/core/index_20240815023207.js +0 -479
  99. package/.history/src/core/index_20240815023344.js +0 -481
  100. package/.history/src/core/index_20240815035600.js +0 -479
  101. package/.history/src/core/index_20240815041549.js +0 -480
  102. package/.history/src/core/index_20240815185515.js +0 -481
  103. package/.history/src/core/index_20240815192158.js +0 -481
  104. package/.history/src/core/index_20240815222912.js +0 -482
  105. package/.history/src/core/index_20240815224052.js +0 -483
  106. package/.history/src/core/index_20240815224843.js +0 -484
  107. package/.history/src/core/index_20240815224850.js +0 -483
  108. package/.history/src/core/index_20240815231706.js +0 -479
  109. package/.history/src/core/index_20240816025748.js +0 -483
  110. package/.history/src/core/index_20240816030102.js +0 -484
  111. package/.history/src/core/index_20240817013329.js +0 -485
  112. package/.history/src/core/index_20240817013526.js +0 -485
  113. package/.history/src/core/index_20240817013819.js +0 -488
  114. package/.history/src/core/index_20240817013829.js +0 -488
  115. package/.history/src/core/index_20240817014921.js +0 -494
  116. package/.history/src/core/index_20240817022057.js +0 -494
  117. package/.history/src/core/index_20240817023316.js +0 -493
  118. package/.history/src/core/index_20240818005637.js +0 -493
  119. package/.history/src/core/index_20240818005721.js +0 -493
  120. package/.history/src/core/index_20240818011804.js +0 -493
  121. package/.history/src/core/index_20240818013835.js +0 -493
  122. package/.history/src/core/index_20240818014310.js +0 -493
  123. package/.history/src/core/index_20240818014323.js +0 -493
  124. package/.history/src/core/index_20240818014333.js +0 -493
  125. package/.history/src/core/index_20240818020725.js +0 -496
  126. package/.history/src/core/index_20240819195504.js +0 -497
  127. package/.history/src/core/index_20240819202012.js +0 -495
  128. package/.history/src/core/index_20240819231228.js +0 -501
  129. package/.history/src/core/index_20240819232555.js +0 -502
  130. package/.history/src/core/index_20240819233404.js +0 -502
  131. package/.history/src/core/index_20240820003114.js +0 -495
  132. package/.history/src/core/index_20240820003120.js +0 -495
  133. package/.history/src/core/index_20240820003331.js +0 -495
  134. package/.history/src/core/index_20240820004126.js +0 -498
  135. package/.history/src/core/index_20240820004357.js +0 -497
  136. package/.history/src/core/index_20240820005103.js +0 -498
  137. package/.history/src/core/index_20240820005110.js +0 -499
  138. package/.history/src/core/index_20240820005206.js +0 -497
  139. package/.history/src/core/index_20240820005352.js +0 -497
  140. package/.history/src/core/index_20240823224904.ts +0 -505
  141. package/.history/src/core/index_20240823224905.js +0 -505
  142. package/.history/src/core/index_20240823231631.ts +0 -530
  143. package/.history/src/core/index_20240823231735.ts +0 -530
  144. package/.history/src/core/index_20240823232123.ts +0 -539
  145. package/.history/src/core/index_20240823232329.ts +0 -539
  146. package/.history/src/core/index_20240823233058.ts +0 -539
  147. package/.history/src/core/index_20240823234946.ts +0 -539
  148. package/.history/src/core/index_20240824005956.ts +0 -534
  149. package/.history/src/core/index_20240824010113.ts +0 -534
  150. package/.history/src/core/index_20240824010124.ts +0 -534
  151. package/.history/src/core/index_20240824010212.ts +0 -534
  152. package/.history/src/core/index_20240824010218.ts +0 -534
  153. package/.history/src/core/index_20240824010407.ts +0 -534
  154. package/.history/src/core/index_20240824010611.ts +0 -534
  155. package/.history/src/core/index_20240824010623.ts +0 -534
  156. package/.history/src/core/index_20240824010652.ts +0 -534
  157. package/.history/src/core/index_20240824011007.ts +0 -534
  158. package/.history/src/core/index_20240824210450.ts +0 -534
  159. package/.history/src/core/index_20240824210703.ts +0 -534
  160. package/.history/src/core/index_20240824210708.ts +0 -534
  161. package/.history/src/core/index_20240824211001.ts +0 -537
  162. package/.history/src/core/index_20240824211258.ts +0 -537
  163. package/.history/src/core/index_20240824211654.ts +0 -537
  164. package/.history/src/core/index_20240824211723.ts +0 -537
  165. package/.history/src/core/index_20240824211808.ts +0 -538
  166. package/.history/src/core/index_20240824214041.js +0 -538
  167. package/.history/src/core/index_20240824215312.ts +0 -538
  168. package/.history/src/core/index_20240824215341.ts +0 -538
  169. package/.history/src/core/index_20240824220703.ts +0 -538
  170. package/.history/src/core/index_20240824220709.ts +0 -538
  171. package/.history/src/core/index_20240825012244.ts +0 -536
  172. package/.history/src/core/index_20240825012435.ts +0 -539
  173. package/.history/src/core/index_20240825012440.ts +0 -539
  174. package/.history/src/core/index_20240826005054.ts +0 -539
  175. package/.history/src/core/index_20240826005321.ts +0 -540
  176. package/.history/src/core/index_20240826005410.ts +0 -539
  177. package/.history/src/core/index_20240826005418.ts +0 -539
  178. package/.history/src/core/index_20240830231825.ts +0 -539
  179. package/.history/src/core/index_20240831022416.ts +0 -539
  180. package/.history/src/core/index_20240901222314.js +0 -459
  181. package/.history/src/core/index_20240901222951.js +0 -459
  182. package/.history/src/core/index_20240901223824.js +0 -471
  183. package/.history/src/core/index_20240901223833.js +0 -468
  184. package/.history/src/core/index_20240902223954.js +0 -447
  185. package/.history/src/core/index_20240902224000.js +0 -446
  186. package/.history/src/core/index_20240902230345.js +0 -448
  187. package/.history/src/core/index_20240902231130.js +0 -449
  188. package/.history/src/core/index_20240902231559.js +0 -449
  189. package/.history/src/core/index_20240902232135.js +0 -449
  190. package/.history/src/core/index_20240902232809.js +0 -452
  191. package/.history/src/core/index_20240902232815.js +0 -452
  192. package/.history/src/core/index_20240903000104.js +0 -467
  193. package/.history/src/core/index_20240904001731.js +0 -444
  194. package/.history/src/core/index_20240904002038.ts +0 -539
  195. package/.history/src/core/index_20240904011848.js +0 -444
  196. package/.history/src/core/index_20240904012138.js +0 -444
  197. package/.history/src/core/index_20240904012743.js +0 -444
  198. package/.history/src/core/index_20240904013051.js +0 -444
  199. package/.history/src/core/resourceManager_20240403231531.ts +0 -16
  200. package/.history/src/core/resourceManager_20240823232627.ts +0 -17
  201. package/.history/src/core/resourceManager_20240824214014.js +0 -16
  202. package/.history/src/core/resourceManager_20240824214620.js +0 -17
  203. package/.history/src/core/scenarioManager_20240812203410.ts +0 -86
  204. package/.history/src/core/scenarioManager_20240812203839.ts +0 -94
  205. package/.history/src/core/scenarioManager_20240812213437.ts +0 -85
  206. package/.history/src/core/scenarioManager_20240813225852.ts +0 -85
  207. package/.history/src/core/scenarioManager_20240823235010.ts +0 -85
  208. package/.history/src/core/scenarioManager_20240904002038.ts +0 -94
  209. package/.history/src/core/scenarioManager_20240904012411.ts +0 -94
  210. package/.history/src/core/scenarioManager_20240904012519.ts +0 -94
  211. package/.history/src/index_20240403231531.js +0 -6
  212. package/.history/src/index_20240429233436.js +0 -8
  213. package/.history/src/index_20240429233926.js +0 -8
  214. package/.history/src/index_20240429234401.js +0 -7
  215. package/.history/src/index_20240429234404.js +0 -6
  216. package/.history/src/resource/soundObject_20240419004314.ts +0 -71
  217. package/.history/src/resource/soundObject_20240815034420.ts +0 -66
  218. package/.history/src/resource/soundObject_20240815034836.ts +0 -79
  219. package/.history/src/resource/soundObject_20240815034919.ts +0 -87
  220. package/.history/src/resource/soundObject_20240815040724.ts +0 -81
  221. package/.history/src/resource/soundObject_20240815041022.ts +0 -87
  222. package/.history/src/resource/soundObject_20240815042103.ts +0 -87
  223. package/.history/src/resource/soundObject_20240823235929.ts +0 -91
  224. package/.history/src/resource/soundObject_20240824213129.ts +0 -99
  225. package/.history/src/resource/soundObject_20240824213611.ts +0 -101
  226. package/.history/src/resource/soundObject_20240824215734.ts +0 -101
  227. package/.history/src/resource/soundObject_20240825004926.ts +0 -101
  228. package/.history/src/resource/soundObject_20240825004947.ts +0 -101
  229. package/.history/src/utils/logger_20240812174230.ts +0 -13
  230. package/.history/src/utils/logger_20240823232736.ts +0 -14
  231. package/.history/src/utils/logger_20240824214930.js +0 -14
  232. package/.history/src/utils/store_20240812174230.ts +0 -17
  233. package/.history/src/utils/store_20240823232948.ts +0 -29
  234. package/.history/src/utils/store_20240824214020.js +0 -17
  235. package/.history/src/utils/store_20240824214955.js +0 -29
  236. package/.history/src/utils/waitUtil_20240812174230.ts +0 -4
  237. package/.history/src/utils/waitUtil_20240823232739.ts +0 -4
  238. package/.history/src/utils/waitUtil_20240824214024.js +0 -4
  239. package/.history/src/utils/waitUtil_20240824215009.js +0 -4
  240. package/.history/test/js/title_20240428215305.js +0 -254
  241. package/.history/test/js/title_20240429221911.js +0 -227
  242. package/.history/test/js/title_20240429222806.js +0 -243
  243. package/.history/test/js/title_20240429222854.js +0 -263
  244. package/.history/test/js/title_20240429222906.js +0 -263
  245. package/.history/test/js/title_20240429235639.js +0 -263
  246. package/.history/test/js/title_20240429235840.js +0 -263
  247. package/.history/test/js/title_20240430014721.js +0 -262
  248. package/.history/test/js/title_20240430014759.js +0 -254
  249. package/.history/test/js/title_20240430134612.js +0 -285
  250. package/.history/test/js/title_20240430141051.js +0 -285
  251. package/.history/test/js/title_20240430173745.js +0 -245
  252. package/.history/tsconfig_20240812174230.json +0 -22
  253. package/.history/tsconfig_20240824010157.json +0 -19
  254. package/.history/tsconfig_20240824220700.json +0 -20
  255. package/.history/tsconfig_20240825011301.json +0 -20
  256. package/.history/webpack.config_20240423002825.js +0 -37
  257. package/.history/webpack.config_20240430001157.js +0 -38
  258. package/.history/webpack.config_20240430001309.js +0 -37
  259. package/.history/webpack.config_20240430002112.js +0 -37
  260. package/CLAUDE.md +0 -96
  261. package/LICENSE +0 -21
  262. package/coverage/lcov-report/base.css +0 -224
  263. package/coverage/lcov-report/block-navigation.js +0 -87
  264. package/coverage/lcov-report/core/drawer.ts.html +0 -1264
  265. package/coverage/lcov-report/core/index.html +0 -146
  266. package/coverage/lcov-report/core/resourceManager.ts.html +0 -136
  267. package/coverage/lcov-report/core/scenarioManager.ts.html +0 -373
  268. package/coverage/lcov-report/favicon.png +0 -0
  269. package/coverage/lcov-report/index.html +0 -146
  270. package/coverage/lcov-report/prettify.css +0 -1
  271. package/coverage/lcov-report/prettify.js +0 -2
  272. package/coverage/lcov-report/resource/ImageObject.ts.html +0 -433
  273. package/coverage/lcov-report/resource/index.html +0 -131
  274. package/coverage/lcov-report/resource/soundObject.ts.html +0 -346
  275. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  276. package/coverage/lcov-report/sorter.js +0 -196
  277. package/coverage/lcov-report/utils/TextMeasurer.ts.html +0 -520
  278. package/coverage/lcov-report/utils/index.html +0 -161
  279. package/coverage/lcov-report/utils/logger.ts.html +0 -142
  280. package/coverage/lcov-report/utils/store.ts.html +0 -151
  281. package/coverage/lcov-report/utils/waitUtil.ts.html +0 -97
  282. package/coverage/lcov.info +0 -882
  283. package/dist/README.md +0 -294
  284. package/dist/engineConfig.json +0 -10
  285. package/dist/package.json +0 -51
  286. package/dist/parser/cli.js +0 -61
  287. package/dist/parser/parser.js +0 -53
  288. package/dist/src/core/drawer.js.map +0 -1
  289. package/dist/src/core/scenarioManager.js.map +0 -1
  290. package/dist/src/utils/logger.js.map +0 -1
  291. package/dist/src/utils/store.js.map +0 -1
  292. package/dist/webtalekit-alpha-0.2.13.tgz +0 -0
  293. package/docs/event-system-specification.md +0 -493
  294. package/docs/glossary.html +0 -833
  295. package/docs/index.html +0 -296
  296. package/docs/tag-reference.html +0 -1317
  297. package/docs/ui-template-guide.html +0 -1068
  298. package/example/README.md +0 -29
  299. package/example/engineConfig.json +0 -10
  300. package/example/package-lock.json +0 -5145
  301. package/example/package.json +0 -26
  302. package/example/src/index.js +0 -13
  303. package/example/src/resource/background/beach.jpg +0 -0
  304. package/example/src/resource/background/city.jpg +0 -0
  305. package/example/src/resource/background/crossroad.jpg +0 -0
  306. package/example/src/resource/background/forest.jpg +0 -0
  307. package/example/src/resource/background/laboratory.jpg +0 -0
  308. package/example/src/resource/background/library.jpg +0 -0
  309. package/example/src/resource/background/living_room.jpg +0 -0
  310. package/example/src/resource/background/music_room.jpg +0 -0
  311. package/example/src/resource/background/stage.jpg +0 -0
  312. package/example/src/resource/background/sunset.jpg +0 -0
  313. package/example/src/resource/background/title_bg.png +0 -0
  314. package/example/src/resource/bgm/calm_music.wav +0 -0
  315. package/example/src/resource/bgm/doorbell.mp3 +0 -0
  316. package/example/src/resource/bgm/nc366476_Virtual_Voyage.mp3 +0 -0
  317. package/example/src/resource/bgm/title_theme.mp3 +0 -0
  318. package/example/src/resource/chara/dancer.png +0 -0
  319. package/example/src/resource/chara/guest.png +0 -0
  320. package/example/src/resource/chara/guide.png +0 -0
  321. package/example/src/resource/chara/scientist.png +0 -0
  322. package/example/src/resource/config.js +0 -0
  323. package/example/src/resource/se/doorbell.mp3 +0 -0
  324. package/example/src/resource/system/systemPicture/01_message/message.png +0 -0
  325. package/example/src/resource/system/systemPicture/02_button/button.png +0 -0
  326. package/example/src/resource/system/systemPicture/02_button/button2.png +0 -0
  327. package/example/src/resource/system/systemPicture/02_button/button3.png +0 -0
  328. package/example/src/resource/system/systemPicture/03_system_button/auto.png +0 -0
  329. package/example/src/resource/system/systemPicture/03_system_button/auto2.png +0 -0
  330. package/example/src/resource/system/systemPicture/03_system_button/close.png +0 -0
  331. package/example/src/resource/system/systemPicture/03_system_button/close2.png +0 -0
  332. package/example/src/resource/system/systemPicture/03_system_button/config.png +0 -0
  333. package/example/src/resource/system/systemPicture/03_system_button/config2.png +0 -0
  334. package/example/src/resource/system/systemPicture/03_system_button/load.png +0 -0
  335. package/example/src/resource/system/systemPicture/03_system_button/load2.png +0 -0
  336. package/example/src/resource/system/systemPicture/03_system_button/log.png +0 -0
  337. package/example/src/resource/system/systemPicture/03_system_button/log2.png +0 -0
  338. package/example/src/resource/system/systemPicture/03_system_button/menu.png +0 -0
  339. package/example/src/resource/system/systemPicture/03_system_button/menu2.png +0 -0
  340. package/example/src/resource/system/systemPicture/03_system_button/qload.png +0 -0
  341. package/example/src/resource/system/systemPicture/03_system_button/qload2.png +0 -0
  342. package/example/src/resource/system/systemPicture/03_system_button/qsave.png +0 -0
  343. package/example/src/resource/system/systemPicture/03_system_button/qsave2.png +0 -0
  344. package/example/src/resource/system/systemPicture/03_system_button/save.png +0 -0
  345. package/example/src/resource/system/systemPicture/03_system_button/save2.png +0 -0
  346. package/example/src/resource/system/systemPicture/03_system_button/screen.png +0 -0
  347. package/example/src/resource/system/systemPicture/03_system_button/screen2.png +0 -0
  348. package/example/src/resource/system/systemPicture/03_system_button/skip.png +0 -0
  349. package/example/src/resource/system/systemPicture/03_system_button/skip2.png +0 -0
  350. package/example/src/resource/system/systemPicture/03_system_button/title.png +0 -0
  351. package/example/src/resource/system/systemPicture/03_system_button/title2.png +0 -0
  352. package/example/src/resource/system/systemPicture//345/210/251/347/224/250/350/246/217/347/264/204.txt +0 -0
  353. package/example/src/resource/system/wait.gif +0 -0
  354. package/example/src/scene/animation.scene +0 -28
  355. package/example/src/scene/background.scene +0 -29
  356. package/example/src/scene/character.scene +0 -26
  357. package/example/src/scene/choice.scene +0 -97
  358. package/example/src/scene/dialog.scene +0 -105
  359. package/example/src/scene/effects.scene +0 -38
  360. package/example/src/scene/en/animation.scene +0 -28
  361. package/example/src/scene/en/background.scene +0 -26
  362. package/example/src/scene/en/character.scene +0 -26
  363. package/example/src/scene/en/choice.scene +0 -32
  364. package/example/src/scene/en/effects.scene +0 -37
  365. package/example/src/scene/en/sound.scene +0 -26
  366. package/example/src/scene/en/text.scene +0 -26
  367. package/example/src/scene/en/title.scene +0 -39
  368. package/example/src/scene/if_test.scene +0 -37
  369. package/example/src/scene/resource-error-test.scene +0 -15
  370. package/example/src/scene/save-load-test.scene +0 -48
  371. package/example/src/scene/sound.scene +0 -26
  372. package/example/src/scene/test_error.scene +0 -21
  373. package/example/src/scene/text.scene +0 -34
  374. package/example/src/scene/title.scene +0 -51
  375. package/example/src/screen/incoming.html +0 -474
  376. package/example/src/screen/title.html +0 -135
  377. package/example/src/template.html +0 -16
  378. package/example/test-results/.last-run.json +0 -4
  379. package/example/webpack.config.js +0 -69
  380. package/image.png +0 -0
  381. package/playwright-report/index.html +0 -71
  382. package/s-plan1-5Light-s-1.jpg +0 -0
  383. package/test-results/.last-run.json +0 -6
  384. package/tests/e2e/if-global-attribute.spec.js +0 -90
  385. package/tests/e2e/resource-error-handling.spec.js +0 -58
  386. package/tests/e2e/screenshots/before-error-check.png +0 -0
  387. package/tests/e2e/screenshots/choices.png +0 -0
  388. package/tests/e2e/screenshots/message-window-click-wait.png +0 -0
  389. /package/{dist/src → src}/core/resourceManager.js +0 -0
  390. /package/{dist/src → src}/core/resourceManager.js.map +0 -0
  391. /package/{dist/src → src}/resource/ImageObject.js +0 -0
  392. /package/{dist/src → src}/resource/ImageObject.js.map +0 -0
  393. /package/{dist/src → src}/resource/soundObject.js +0 -0
  394. /package/{dist/src → src}/resource/soundObject.js.map +0 -0
  395. /package/{dist/src → src}/utils/fallbackTemplate.js +0 -0
  396. /package/{dist/src → src}/utils/fallbackTemplate.js.map +0 -0
  397. /package/{dist/src → src}/utils/waitUtil.js +0 -0
  398. /package/{dist/src → src}/utils/waitUtil.js.map +0 -0
@@ -1,493 +0,0 @@
1
- # WebTaleKit イベント発火機能 仕様書
2
-
3
- ## 概要
4
-
5
- WebTaleKitのフロントエンドフレームワーク向けイベント発火機能の完全仕様です。全メソッド実行時に前後でイベントを発火し、キューベースで順次処理を行います。
6
-
7
- ## 1. 対象メソッドの範囲
8
-
9
- ### 対象クラス
10
- - **Core クラス**: メインゲームエンジン
11
- - **ScenarioManager クラス**: シナリオ管理
12
- - **Drawer クラス**: 描画処理
13
- - **ResourceManager クラス**: リソース管理
14
- - **ImageObject クラス**: 画像オブジェクト
15
- - **SoundObject クラス**: 音声オブジェクト
16
-
17
- ### 対象メソッド
18
- 各クラスの全メソッド(constructorを除く)
19
-
20
- #### Core クラスの主要メソッド
21
- - `textHandler`, `choiceHandler`, `showHandler`, `hideHandler`
22
- - `jumpHandler`, `soundHandler`, `sayHandler`, `ifHandler`
23
- - `callHandler`, `moveToHandler`, `routeHandler`, `waitHandler`
24
- - `dialogHandler`, `newpageHandler`, `executeCode`
25
- - `setBackground`, `getBackground` など
26
-
27
- #### ScenarioManager クラスの主要メソッド
28
- - `setScenario`, `addScenario`, `getScenario`
29
- - `next`, `hasNext`, `getIndex`, `setIndex`
30
- - `setSceneName`, `getSceneName`, `setHistory`
31
- - `setSelectedChoice` など
32
-
33
- #### Drawer クラスの主要メソッド
34
- - `drawName`, `drawText`, `drawChoices`
35
- - `fadeIn`, `fadeOut`, `show`, `moveTo`
36
- - `clear`, `drawCanvas`, `setVisibility` など
37
-
38
- ## 2. イベント仕様
39
-
40
- ### イベントタイミング
41
- - **メソッド実行前**: `method:before`
42
- - **メソッド実行後**: `method:after`
43
-
44
- ### イベントデータ構造
45
- ```typescript
46
- interface EventData {
47
- eventType: 'method:before' | 'method:after'
48
- className: string // 'Core', 'Drawer', 'ScenarioManager' など
49
- methodName: string // 'textHandler', 'drawText' など
50
- arguments: any[] // メソッドの引数配列
51
- result?: any // 実行結果(afterのみ)
52
- timestamp: number // 実行タイムスタンプ
53
- executionTime?: number // 実行時間(afterのみ、ms)
54
- id: string // イベント固有ID
55
- }
56
- ```
57
-
58
- ### イベント名規則
59
- - **実行前**: `webtalekit:method:before`
60
- - **実行後**: `webtalekit:method:after`
61
-
62
- ## 3. キューベースのイベント発火機構
63
-
64
- ### EventQueue クラス
65
- ```typescript
66
- interface EventData {
67
- eventType: 'method:before' | 'method:after'
68
- className: string
69
- methodName: string
70
- arguments: any[]
71
- result?: any
72
- timestamp: number
73
- executionTime?: number
74
- id: string
75
- }
76
-
77
- class EventQueue {
78
- private queue: EventData[] = []
79
- private isProcessing: boolean = false
80
- private maxQueueSize: number = 1000
81
- private batchSize: number = 10
82
-
83
- enqueue(event: EventData): void {
84
- // キューサイズ制限
85
- if (this.queue.length >= this.maxQueueSize) {
86
- this.queue.shift() // 古いイベントを削除
87
- }
88
-
89
- this.queue.push(event)
90
-
91
- if (!this.isProcessing) {
92
- this.processQueue()
93
- }
94
- }
95
-
96
- private async processQueue(): Promise<void> {
97
- this.isProcessing = true
98
-
99
- while (this.queue.length > 0) {
100
- const batch = this.queue.splice(0, this.batchSize)
101
-
102
- // バッチ処理で複数イベントを同時発火
103
- await Promise.all(
104
- batch.map(event => this.dispatchEvent(event))
105
- )
106
-
107
- // CPU負荷を軽減するための遅延
108
- if (this.queue.length > 0) {
109
- await new Promise(resolve => setTimeout(resolve, 1))
110
- }
111
- }
112
-
113
- this.isProcessing = false
114
- }
115
-
116
- private async dispatchEvent(event: EventData): Promise<void> {
117
- const customEvent = new CustomEvent(`webtalekit:${event.eventType}`, {
118
- detail: event,
119
- bubbles: false,
120
- cancelable: false
121
- })
122
-
123
- // 非同期でイベント発火
124
- setTimeout(() => {
125
- document.dispatchEvent(customEvent)
126
- }, 0)
127
- }
128
- }
129
- ```
130
-
131
- ### EventEmitter クラス
132
- ```typescript
133
- class EventEmitter {
134
- private static instance: EventEmitter
135
- private eventQueue: EventQueue = new EventQueue()
136
- private eventId: number = 0
137
-
138
- static getInstance(): EventEmitter {
139
- if (!EventEmitter.instance) {
140
- EventEmitter.instance = new EventEmitter()
141
- }
142
- return EventEmitter.instance
143
- }
144
-
145
- emitBefore(className: string, methodName: string, args: any[]): string {
146
- const eventId = this.generateEventId()
147
- const event: EventData = {
148
- eventType: 'method:before',
149
- className,
150
- methodName,
151
- arguments: args,
152
- timestamp: performance.now(),
153
- id: eventId
154
- }
155
-
156
- this.eventQueue.enqueue(event)
157
- return eventId
158
- }
159
-
160
- emitAfter(eventId: string, className: string, methodName: string,
161
- args: any[], result: any, startTime: number): void {
162
- const event: EventData = {
163
- eventType: 'method:after',
164
- className,
165
- methodName,
166
- arguments: args,
167
- result,
168
- timestamp: performance.now(),
169
- executionTime: performance.now() - startTime,
170
- id: eventId
171
- }
172
-
173
- this.eventQueue.enqueue(event)
174
- }
175
-
176
- private generateEventId(): string {
177
- return `evt_${++this.eventId}_${Date.now()}`
178
- }
179
- }
180
- ```
181
-
182
- ### メソッドラッパーの実装
183
- ```typescript
184
- function withEventEmission(target: any, className: string) {
185
- const emitter = EventEmitter.getInstance()
186
-
187
- // クラスの全メソッドをラップ
188
- Object.getOwnPropertyNames(target.prototype).forEach(methodName => {
189
- if (methodName !== 'constructor' &&
190
- typeof target.prototype[methodName] === 'function') {
191
-
192
- const originalMethod = target.prototype[methodName]
193
-
194
- target.prototype[methodName] = function(...args: any[]) {
195
- const startTime = performance.now()
196
- const eventId = emitter.emitBefore(className, methodName, args)
197
-
198
- try {
199
- const result = originalMethod.apply(this, args)
200
-
201
- // Promiseの場合
202
- if (result instanceof Promise) {
203
- return result.then(resolvedResult => {
204
- emitter.emitAfter(eventId, className, methodName,
205
- args, resolvedResult, startTime)
206
- return resolvedResult
207
- }).catch(error => {
208
- emitter.emitAfter(eventId, className, methodName,
209
- args, error, startTime)
210
- throw error
211
- })
212
- } else {
213
- emitter.emitAfter(eventId, className, methodName,
214
- args, result, startTime)
215
- return result
216
- }
217
- } catch (error) {
218
- emitter.emitAfter(eventId, className, methodName,
219
- args, error, startTime)
220
- throw error
221
- }
222
- }
223
- }
224
- })
225
- }
226
- ```
227
-
228
- ## 4. フロントエンド向けAPIインターフェース
229
-
230
- ### 基本的なイベントリスナー登録
231
- ```javascript
232
- // 全メソッドの実行前後を監視
233
- document.addEventListener('webtalekit:method:before', (event) => {
234
- const { className, methodName, arguments: args } = event.detail
235
- console.log(`[BEFORE] ${className}.${methodName}`, args)
236
- })
237
-
238
- document.addEventListener('webtalekit:method:after', (event) => {
239
- const { className, methodName, result, executionTime } = event.detail
240
- console.log(`[AFTER] ${className}.${methodName}`, result, `${executionTime}ms`)
241
- })
242
- ```
243
-
244
- ### フィルタリング機能付きAPI
245
- ```javascript
246
- // WebTaleKit専用のイベント管理クラス
247
- class WebTaleKitEvents {
248
- // 特定のクラスのメソッドのみ監視
249
- onClassMethod(className, callback) {
250
- const handler = (event) => {
251
- if (event.detail.className === className) {
252
- callback(event.detail)
253
- }
254
- }
255
- document.addEventListener('webtalekit:method:before', handler)
256
- document.addEventListener('webtalekit:method:after', handler)
257
-
258
- return () => {
259
- document.removeEventListener('webtalekit:method:before', handler)
260
- document.removeEventListener('webtalekit:method:after', handler)
261
- }
262
- }
263
-
264
- // 特定のメソッドのみ監視
265
- onMethod(className, methodName, callback) {
266
- const handler = (event) => {
267
- const detail = event.detail
268
- if (detail.className === className && detail.methodName === methodName) {
269
- callback(detail)
270
- }
271
- }
272
- document.addEventListener('webtalekit:method:before', handler)
273
- document.addEventListener('webtalekit:method:after', handler)
274
-
275
- return () => {
276
- document.removeEventListener('webtalekit:method:before', handler)
277
- document.removeEventListener('webtalekit:method:after', handler)
278
- }
279
- }
280
-
281
- // beforeのみ監視
282
- onBefore(className, methodName, callback) {
283
- const handler = (event) => {
284
- const detail = event.detail
285
- if (detail.className === className && detail.methodName === methodName) {
286
- callback(detail)
287
- }
288
- }
289
- document.addEventListener('webtalekit:method:before', handler)
290
-
291
- return () => {
292
- document.removeEventListener('webtalekit:method:before', handler)
293
- }
294
- }
295
-
296
- // afterのみ監視
297
- onAfter(className, methodName, callback) {
298
- const handler = (event) => {
299
- const detail = event.detail
300
- if (detail.className === className && detail.methodName === methodName) {
301
- callback(detail)
302
- }
303
- }
304
- document.addEventListener('webtalekit:method:after', handler)
305
-
306
- return () => {
307
- document.removeEventListener('webtalekit:method:after', handler)
308
- }
309
- }
310
- }
311
-
312
- // グローバルに公開
313
- window.WebTaleKitEvents = new WebTaleKitEvents()
314
- ```
315
-
316
- ### React向けのカスタムフック
317
- ```javascript
318
- // React用カスタムフック
319
- function useWebTaleKitMethod(className, methodName, eventType = 'both') {
320
- const [eventData, setEventData] = useState(null)
321
-
322
- useEffect(() => {
323
- const unsubscribers = []
324
-
325
- if (eventType === 'before' || eventType === 'both') {
326
- const unsubBefore = window.WebTaleKitEvents.onBefore(
327
- className, methodName, setEventData
328
- )
329
- unsubscribers.push(unsubBefore)
330
- }
331
-
332
- if (eventType === 'after' || eventType === 'both') {
333
- const unsubAfter = window.WebTaleKitEvents.onAfter(
334
- className, methodName, setEventData
335
- )
336
- unsubscribers.push(unsubAfter)
337
- }
338
-
339
- return () => {
340
- unsubscribers.forEach(unsub => unsub())
341
- }
342
- }, [className, methodName, eventType])
343
-
344
- return eventData
345
- }
346
-
347
- // 使用例
348
- function GameDebugPanel() {
349
- const textEvent = useWebTaleKitMethod('Core', 'textHandler')
350
- const drawEvent = useWebTaleKitMethod('Drawer', 'drawText')
351
-
352
- return (
353
- <div>
354
- <div>Last text: {textEvent?.arguments?.[0]}</div>
355
- <div>Draw time: {drawEvent?.executionTime}ms</div>
356
- </div>
357
- )
358
- }
359
- ```
360
-
361
- ### Vue.js向けのComposable
362
- ```javascript
363
- // Vue 3 Composition API用
364
- function useWebTaleKitEvents() {
365
- const events = ref([])
366
- const latestEvent = ref(null)
367
-
368
- const subscribe = (className, methodName, eventType = 'both') => {
369
- const unsubscribers = []
370
-
371
- const handler = (eventData) => {
372
- events.value.push(eventData)
373
- latestEvent.value = eventData
374
-
375
- // 最新100件のみ保持
376
- if (events.value.length > 100) {
377
- events.value.shift()
378
- }
379
- }
380
-
381
- if (eventType === 'before' || eventType === 'both') {
382
- unsubscribers.push(
383
- window.WebTaleKitEvents.onBefore(className, methodName, handler)
384
- )
385
- }
386
-
387
- if (eventType === 'after' || eventType === 'both') {
388
- unsubscribers.push(
389
- window.WebTaleKitEvents.onAfter(className, methodName, handler)
390
- )
391
- }
392
-
393
- return () => {
394
- unsubscribers.forEach(unsub => unsub())
395
- }
396
- }
397
-
398
- return {
399
- events: readonly(events),
400
- latestEvent: readonly(latestEvent),
401
- subscribe
402
- }
403
- }
404
- ```
405
-
406
- ## 5. 実装手順
407
-
408
- ### 1. 初期化コード
409
- ```javascript
410
- // 各クラスにイベント発火機能を追加
411
- withEventEmission(Core, 'Core')
412
- withEventEmission(Drawer, 'Drawer')
413
- withEventEmission(ScenarioManager, 'ScenarioManager')
414
- withEventEmission(ResourceManager, 'ResourceManager')
415
- withEventEmission(ImageObject, 'ImageObject')
416
- withEventEmission(SoundObject, 'SoundObject')
417
- ```
418
-
419
- ### 2. 利用例
420
-
421
- #### 基本的な使用方法
422
- ```javascript
423
- document.addEventListener('webtalekit:method:before', (event) => {
424
- console.log('実行前:', event.detail)
425
- })
426
-
427
- document.addEventListener('webtalekit:method:after', (event) => {
428
- console.log('実行後:', event.detail)
429
- })
430
- ```
431
-
432
- #### 特定メソッドのみ監視
433
- ```javascript
434
- const unsubscribe = window.WebTaleKitEvents.onMethod(
435
- 'Core', 'textHandler', (eventData) => {
436
- console.log('テキスト表示:', eventData)
437
- }
438
- )
439
-
440
- // 監視停止
441
- unsubscribe()
442
- ```
443
-
444
- #### React での使用
445
- ```javascript
446
- function MyComponent() {
447
- const textEvent = useWebTaleKitMethod('Core', 'textHandler')
448
-
449
- return (
450
- <div>
451
- {textEvent && (
452
- <p>最新のテキスト: {textEvent.arguments?.[0]}</p>
453
- )}
454
- </div>
455
- )
456
- }
457
- ```
458
-
459
- ## 6. パフォーマンス考慮事項
460
-
461
- ### キューシステム
462
- - **最大キューサイズ**: 1000イベント
463
- - **バッチサイズ**: 10イベント/バッチ
464
- - **バッチ間遅延**: 1ms
465
-
466
- ### メモリ管理
467
- - 古いイベントの自動削除
468
- - WeakRef使用による循環参照防止
469
-
470
- ### CPU負荷軽減
471
- - 非同期イベント発火
472
- - バッチ処理による効率化
473
-
474
- ## 7. 注意事項
475
-
476
- - **非同期実行**: イベントは非同期で発火されるため、メソッド実行の直後に完了していない場合があります
477
- - **エラー処理**: メソッドでエラーが発生した場合もafterイベントは発火され、resultにErrorオブジェクトが含まれます
478
- - **パフォーマンス**: 大量のイベントが発生する場合、キューによる制御が行われます
479
-
480
- ## 8. 拡張可能性
481
-
482
- この設計により以下の拡張が可能です:
483
-
484
- - イベントフィルタリングの詳細化
485
- - イベントの永続化(ログ保存)
486
- - リアルタイム監視ダッシュボード
487
- - デバッグツールとの連携
488
- - メトリクス収集機能
489
-
490
- ---
491
-
492
- **作成日**: 2025-08-08
493
- **バージョン**: 1.0.0