com.hikky.vketcloudsdk 3.2.4 → 3.4.4

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 (1521) hide show
  1. package/HIKKY.VketCloudSDK.Builder.Components.dll +0 -0
  2. package/HIKKY.VketCloudSDK.Builder.Implements.dll +0 -0
  3. package/HIKKY.VketCloudSDK.Builder.dll +0 -0
  4. package/HIKKY.VketCloudSDK.Builder.dll.meta +1 -32
  5. package/HIKKY.VketCloudSDK.Common.dll +0 -0
  6. package/HIKKY.VketCloudSDK.Editor.ComponentLayout.dll +0 -0
  7. package/HIKKY.VketCloudSDK.HEMExporterEditor.dll +0 -0
  8. package/HIKKY.VketCloudSDK.HEMExporterEditor.dll.meta +1 -32
  9. package/HIKKY.VketCloudSDK.HEOExporter.dll +0 -0
  10. package/HIKKY.VketCloudSDK.HEOExporterEditor.dll +0 -0
  11. package/HIKKY.VketCloudSDK.HEOExporterEditor.dll.meta +1 -32
  12. package/HIKKY.VketCloudSDK.Importer.dll +0 -0
  13. package/HIKKY.VketCloudSDK.Menu.dll +0 -0
  14. package/HIKKY.VketCloudSDK.ServerLauncher.dll +0 -0
  15. package/HIKKY.VketCloudSDK.ServerLauncher.dll.meta +1 -32
  16. package/HIKKY.VketCloudSDK.dll +0 -0
  17. package/HIKKY.VketCloudSDK.dll.meta +1 -32
  18. package/LanguageTranslator/TranslationDatabase.cs +358 -352
  19. package/PackageResources/data/VketChanVRM/Jump_Land.hem +0 -0
  20. package/PackageResources/data/VketChanVRM/Jump_Land.hem.meta +11 -0
  21. package/PackageResources/data/VketChanVRM/Jump_MidAir.hem +0 -0
  22. package/PackageResources/data/VketChanVRM/Jump_MidAir.hem.meta +11 -0
  23. package/PackageResources/data/VketChanVRM/Jump_Up.hem +0 -0
  24. package/PackageResources/data/VketChanVRM/Jump_Up.hem.meta +11 -0
  25. package/PackageResources/data/icon/ControllPanelTop.png +0 -0
  26. package/PackageResources/data/icon/ControllPanelTop.png.meta +5 -5
  27. package/PackageResources/data/icon/HEMIcon.png.meta +30 -6
  28. package/PackageResources/data/icon/HEOIcon.png.meta +30 -6
  29. package/PackageResources/data/icon/HEPIcon.png.meta +30 -6
  30. package/PackageResources/data/icon/HeliodorScriptIcon.png.meta +6 -6
  31. package/PackageResources/data/icon/VRMIcon.png.meta +30 -6
  32. package/PackageResources/data/icon/VketCloudIcon.png.meta +30 -6
  33. package/PackageResources/data/icon/tabknob.png.meta +30 -6
  34. package/PackageResources/data/model/guideframe.fbx.meta +97 -97
  35. package/PackageResources/data/model.meta +8 -8
  36. package/PackageResources/data/prefab/clickarea.prefab +11 -6
  37. package/PackageResources/data/prefab/guideframe.prefab +2 -2
  38. package/PackageResources/data/prefab/guideframe.prefab.meta +7 -7
  39. package/PackageResources/data/translations/EN.asset +482 -472
  40. package/PackageResources/data/translations/JP.asset +485 -471
  41. package/PackageResources/project~/data/Canvas/CanvasList.json +72 -68
  42. package/PackageResources/project~/data/Canvas/landscape/chatlogview.json +31 -31
  43. package/PackageResources/project~/data/Canvas/landscape/comicviewer.json +254 -254
  44. package/PackageResources/project~/data/Canvas/landscape/config_avatar.json +97 -213
  45. package/PackageResources/project~/data/Canvas/landscape/config_common.json +380 -366
  46. package/PackageResources/project~/data/Canvas/landscape/config_guide.json +28 -28
  47. package/PackageResources/project~/data/Canvas/landscape/config_myavatar.json +521 -0
  48. package/PackageResources/project~/data/Canvas/landscape/config_setting.json +443 -443
  49. package/PackageResources/project~/data/Canvas/landscape/config_setting_base.json +169 -169
  50. package/PackageResources/project~/data/Canvas/landscape/config_setting_camera.json +576 -576
  51. package/PackageResources/project~/data/Canvas/landscape/config_setting_sound.json +467 -467
  52. package/PackageResources/project~/data/Canvas/landscape/config_setting_system.json +342 -342
  53. package/PackageResources/project~/data/Canvas/landscape/config_world.json +169 -272
  54. package/PackageResources/project~/data/Canvas/landscape/dialog.json +368 -368
  55. package/PackageResources/project~/data/Canvas/landscape/dialog_list_basic.json +254 -0
  56. package/PackageResources/project~/data/Canvas/landscape/hud.json +646 -639
  57. package/PackageResources/project~/data/Canvas/landscape/loading.json +79 -79
  58. package/PackageResources/project~/data/Canvas/landscape/movieviewer.json +192 -192
  59. package/PackageResources/project~/data/Canvas/landscape/photomode.json +421 -0
  60. package/PackageResources/project~/data/Canvas/landscape/sample_hud_button.json +85 -0
  61. package/PackageResources/project~/data/Canvas/landscape/sample_list.json +136 -0
  62. package/PackageResources/project~/data/Canvas/landscape/space_list.json +290 -0
  63. package/PackageResources/project~/data/Canvas/landscape/world/hud_entrance.json +28 -25
  64. package/PackageResources/project~/data/Canvas/portrait/chatlogview.json +31 -31
  65. package/PackageResources/project~/data/Canvas/portrait/comicviewer.json +254 -254
  66. package/PackageResources/project~/data/Canvas/portrait/config_avatar.json +97 -213
  67. package/PackageResources/project~/data/Canvas/portrait/config_common.json +355 -341
  68. package/PackageResources/project~/data/Canvas/portrait/config_guide.json +28 -28
  69. package/PackageResources/project~/data/Canvas/portrait/config_myavatar.json +423 -0
  70. package/PackageResources/project~/data/Canvas/portrait/config_setting.json +443 -443
  71. package/PackageResources/project~/data/Canvas/portrait/config_setting_base.json +169 -169
  72. package/PackageResources/project~/data/Canvas/portrait/config_setting_camera.json +576 -576
  73. package/PackageResources/project~/data/Canvas/portrait/config_setting_sound.json +467 -467
  74. package/PackageResources/project~/data/Canvas/portrait/config_setting_system.json +342 -342
  75. package/PackageResources/project~/data/Canvas/portrait/config_world.json +169 -272
  76. package/PackageResources/project~/data/Canvas/portrait/dialog.json +368 -368
  77. package/PackageResources/project~/data/Canvas/portrait/dialog_list_basic.json +254 -0
  78. package/PackageResources/project~/data/Canvas/portrait/hud.json +636 -629
  79. package/PackageResources/project~/data/Canvas/portrait/loading.json +79 -79
  80. package/PackageResources/project~/data/Canvas/portrait/movieviewer.json +192 -192
  81. package/PackageResources/project~/data/Canvas/portrait/photomode_po.json +454 -0
  82. package/PackageResources/project~/data/Canvas/portrait/sample_hud_button.json +85 -0
  83. package/PackageResources/project~/data/Canvas/portrait/sample_list_po.json +290 -0
  84. package/PackageResources/project~/data/Canvas/portrait/sample_room_list.json +290 -0
  85. package/PackageResources/project~/data/Canvas/portrait/space_list_po.json +150 -0
  86. package/PackageResources/project~/data/Canvas/portrait/world/hud_entrance.json +29 -26
  87. package/PackageResources/project~/data/CircleShadow2/CircleShadow2_astc.bat +4 -4
  88. package/PackageResources/project~/data/CircleShadow2/CircleShadow2_dxt.bat +5 -5
  89. package/PackageResources/project~/data/CircleShadow2/CircleShadow2_etc2.bat +4 -4
  90. package/PackageResources/project~/data/{Field → HeliScript}/.gitkeep +0 -0
  91. package/PackageResources/project~/data/gui/config/avatar/config_avatar_base.png +0 -0
  92. package/PackageResources/project~/data/gui/config/avatar/config_avatar_base_en.png +0 -0
  93. package/PackageResources/project~/data/gui/config/avatar/config_avatar_base_en_po.png +0 -0
  94. package/PackageResources/project~/data/gui/config/avatar/config_avatar_base_po.png +0 -0
  95. package/PackageResources/project~/data/gui/config/avatar/config_avatar_login.png +0 -0
  96. package/PackageResources/project~/data/gui/config/avatar/config_avatar_login_en.png +0 -0
  97. package/PackageResources/project~/data/gui/config/avatar/config_avatar_login_txt.png +0 -0
  98. package/PackageResources/project~/data/gui/config/avatar/config_avatar_login_txt_en.png +0 -0
  99. package/PackageResources/project~/data/gui/config/avatar/config_avatar_my_off.png +0 -0
  100. package/PackageResources/project~/data/gui/config/avatar/config_avatar_my_off_en.png +0 -0
  101. package/PackageResources/project~/data/gui/config/avatar/config_avatar_my_on.png +0 -0
  102. package/PackageResources/project~/data/gui/config/avatar/config_avatar_my_on_en.png +0 -0
  103. package/PackageResources/project~/data/gui/config/avatar/config_avatar_notupload.png +0 -0
  104. package/PackageResources/project~/data/gui/config/avatar/config_avatar_notupload_en.png +0 -0
  105. package/PackageResources/project~/data/gui/config/avatar/config_avatar_preset_off.png +0 -0
  106. package/PackageResources/project~/data/gui/config/avatar/config_avatar_preset_off_en.png +0 -0
  107. package/PackageResources/project~/data/gui/config/avatar/config_avatar_preset_on.png +0 -0
  108. package/PackageResources/project~/data/gui/config/avatar/config_avatar_preset_on_en.png +0 -0
  109. package/PackageResources/project~/data/gui/config/avatar/config_avatar_select.png +0 -0
  110. package/PackageResources/project~/data/gui/config/avatar/config_avatar_select_en.png +0 -0
  111. package/PackageResources/project~/data/gui/config/avatar/config_avatar_title.png +0 -0
  112. package/PackageResources/project~/data/gui/config/avatar/config_avatar_title_en.png +0 -0
  113. package/PackageResources/project~/data/gui/config/avatar/config_avatar_up.png +0 -0
  114. package/PackageResources/project~/data/gui/config/avatar/config_avatar_up_en.png +0 -0
  115. package/PackageResources/project~/data/gui/config/avatar/config_avatar_up_en_po.png +0 -0
  116. package/PackageResources/project~/data/gui/config/avatar/config_avatar_up_po.png +0 -0
  117. package/PackageResources/project~/data/gui/config/avatar/config_button_edit.png +0 -0
  118. package/PackageResources/project~/data/gui/config/avatar/noimage.png +0 -0
  119. package/PackageResources/project~/data/gui/config/config_logout.png +0 -0
  120. package/PackageResources/project~/data/gui/config/config_logout_en.png +0 -0
  121. package/PackageResources/project~/data/gui/config/menu/po/config_menu_avatar_off.png +0 -0
  122. package/PackageResources/project~/data/gui/config/menu/po/config_menu_avatar_off_en.png +0 -0
  123. package/PackageResources/project~/data/gui/config/menu/po/config_menu_avatar_on.png +0 -0
  124. package/PackageResources/project~/data/gui/config/menu/po/config_menu_avatar_on_en.png +0 -0
  125. package/PackageResources/project~/data/gui/config/menu/po/config_menu_guide_off.png +0 -0
  126. package/PackageResources/project~/data/gui/config/menu/po/config_menu_guide_off_en.png +0 -0
  127. package/PackageResources/project~/data/gui/config/menu/po/config_menu_guide_on.png +0 -0
  128. package/PackageResources/project~/data/gui/config/menu/po/config_menu_guide_on_en.png +0 -0
  129. package/PackageResources/project~/data/gui/config/menu/po/config_menu_setting_off.png +0 -0
  130. package/PackageResources/project~/data/gui/config/menu/po/config_menu_setting_off_en.png +0 -0
  131. package/PackageResources/project~/data/gui/config/menu/po/config_menu_setting_on.png +0 -0
  132. package/PackageResources/project~/data/gui/config/menu/po/config_menu_setting_on_en.png +0 -0
  133. package/PackageResources/project~/data/gui/config/menu/po/config_menu_world_off.png +0 -0
  134. package/PackageResources/project~/data/gui/config/menu/po/config_menu_world_off_en.png +0 -0
  135. package/PackageResources/project~/data/gui/config/menu/po/config_menu_world_on.png +0 -0
  136. package/PackageResources/project~/data/gui/config/menu/po/config_menu_world_on_en.png +0 -0
  137. package/PackageResources/project~/data/gui/hud/hud_jump_down_sp.png +0 -0
  138. package/PackageResources/project~/data/gui/photo/camera_FB.png +0 -0
  139. package/PackageResources/project~/data/gui/photo/camera_FB_down.png +0 -0
  140. package/PackageResources/project~/data/gui/photo/camera_UD.png +0 -0
  141. package/PackageResources/project~/data/gui/photo/camera_UD_down.png +0 -0
  142. package/PackageResources/project~/data/gui/photo/camera_gaze_off.png +0 -0
  143. package/PackageResources/project~/data/gui/photo/camera_gaze_off_down.png +0 -0
  144. package/PackageResources/project~/data/gui/photo/camera_gaze_on.png +0 -0
  145. package/PackageResources/project~/data/gui/photo/camera_gaze_on_down.png +0 -0
  146. package/PackageResources/project~/data/gui/photo/camera_move.png +0 -0
  147. package/PackageResources/project~/data/gui/photo/camera_move_down.png +0 -0
  148. package/PackageResources/project~/data/gui/photo/camera_name_off.png +0 -0
  149. package/PackageResources/project~/data/gui/photo/camera_name_off_down.png +0 -0
  150. package/PackageResources/project~/data/gui/photo/camera_name_on.png +0 -0
  151. package/PackageResources/project~/data/gui/photo/camera_name_on_down.png +0 -0
  152. package/PackageResources/project~/data/gui/photo/camera_reset.png +0 -0
  153. package/PackageResources/project~/data/gui/photo/camera_reset_down.png +0 -0
  154. package/PackageResources/project~/data/gui/photo/camera_rotate.png +0 -0
  155. package/PackageResources/project~/data/gui/photo/camera_rotate_down.png +0 -0
  156. package/PackageResources/project~/data/gui/photo/camera_shoot.png +0 -0
  157. package/PackageResources/project~/data/gui/photo/camera_shoot_down.png +0 -0
  158. package/PackageResources/project~/data/gui/photo/camra_frame.png +0 -0
  159. package/PackageResources/project~/data/gui/photo/camra_frame_po.png +0 -0
  160. package/PackageResources/project~/data/gui/photo/close_button.png +0 -0
  161. package/PackageResources/project~/data/gui/photo/hud_photo.png +0 -0
  162. package/PackageResources/project~/data/gui/photo/hud_photo_down.png +0 -0
  163. package/PackageResources/project~/data/gui/photo/photo_preview_background.png +0 -0
  164. package/PackageResources/project~/data/gui/photo/photo_preview_background_po.png +0 -0
  165. package/PackageResources/project~/data/heliodor.js +1 -1
  166. package/PackageResources/project~/data/heliodor.wasm +0 -0
  167. package/PackageResources/project~/data/heliodor_front.js +6 -13
  168. package/PackageResources/project~/data/heliodor_lib.js +1879 -1879
  169. package/PackageResources/project~/data/heliodor_post.js +35 -41
  170. package/PackageResources/project~/data/heliodor_pre.js +15699 -15557
  171. package/PackageResources/project~/data/heliodor_pre.js.map +7 -7
  172. package/PackageResources/project~/data/heliodor_room.js +80 -80
  173. package/PackageResources/project~/data/heliodor_rtc.mjs +68 -0
  174. package/PackageResources/project~/data/heliodor_skyway.js +518 -518
  175. package/PackageResources/project~/data/heliodor_xr.js +634 -634
  176. package/PackageResources/project~/data/scripts/core/ButtonBase.mjs +24 -0
  177. package/PackageResources/project~/data/scripts/core/apiRequest.mjs +27 -0
  178. package/PackageResources/project~/data/scripts/core/componentViewModelBase.mjs +18 -0
  179. package/PackageResources/project~/data/scripts/core/controllerBase.mjs +53 -0
  180. package/PackageResources/project~/data/scripts/core/eventManager.mjs +116 -0
  181. package/PackageResources/project~/data/scripts/core/managerBase.mjs +16 -0
  182. package/PackageResources/project~/data/scripts/core/routeEventHandlers.mjs +30 -0
  183. package/PackageResources/project~/data/scripts/core/sceneBase.mjs +33 -0
  184. package/PackageResources/project~/data/scripts/core/viewBase.mjs +29 -0
  185. package/PackageResources/project~/data/scripts/guis/components/configAvatarMenu.mjs +127 -0
  186. package/PackageResources/project~/data/scripts/guis/components/sampleButton1.mjs +50 -0
  187. package/PackageResources/project~/data/scripts/guis/components/sampleButton2.mjs +64 -0
  188. package/PackageResources/project~/data/scripts/guis/components/sampleButton3.mjs +30 -0
  189. package/PackageResources/project~/data/scripts/guis/components/worldIcon.mjs +38 -0
  190. package/PackageResources/project~/data/scripts/guis/controllers/configController.mjs +60 -0
  191. package/PackageResources/project~/data/scripts/guis/controllers/testController.mjs +55 -0
  192. package/PackageResources/project~/data/scripts/guis/dataLayers/authManager.mjs +68 -0
  193. package/PackageResources/project~/data/scripts/guis/dataLayers/avatarManager.mjs +345 -0
  194. package/PackageResources/project~/data/scripts/guis/dataLayers/managerBookKeep.mjs +21 -0
  195. package/PackageResources/project~/data/scripts/guis/dataLayers/models/authModel.mjs +7 -0
  196. package/PackageResources/project~/data/scripts/guis/dataLayers/models/avatarModel.mjs +11 -0
  197. package/PackageResources/project~/data/scripts/guis/eventHandleNames.mjs +42 -0
  198. package/PackageResources/project~/data/scripts/guis/scenes/configScene.mjs +35 -0
  199. package/PackageResources/project~/data/scripts/guis/scenes/testScene.mjs +33 -0
  200. package/PackageResources/project~/data/scripts/guis/viewModels/avatars/configAvatarMenuViewModel.mjs +287 -0
  201. package/PackageResources/project~/data/scripts/guis/viewModels/configViewModel.mjs +17 -0
  202. package/PackageResources/project~/data/scripts/guis/viewModels/sampleButton1ViewModel.mjs +44 -0
  203. package/PackageResources/project~/data/scripts/guis/viewModels/sampleButton2ViewModel.mjs +96 -0
  204. package/PackageResources/project~/data/scripts/guis/viewModels/sampleButton3ViewModel.mjs +20 -0
  205. package/PackageResources/project~/data/scripts/guis/viewModels/sharedViewModel.mjs +27 -0
  206. package/PackageResources/project~/data/scripts/guis/viewModels/spaceList.mjs +72 -0
  207. package/PackageResources/project~/data/scripts/guis/viewModels/testViewModel.mjs +24 -0
  208. package/PackageResources/project~/data/scripts/guis/viewModels/worldIconViewModel.mjs +26 -0
  209. package/PackageResources/project~/data/scripts/guis/views/configView.mjs +57 -0
  210. package/PackageResources/project~/data/scripts/guis/views/testView.mjs +54 -0
  211. package/PackageResources/project~/data/scripts/logics/composables/.gitkeep +0 -0
  212. package/PackageResources/project~/data/scripts/logics/composables/useAssets.mjs +74 -0
  213. package/PackageResources/project~/data/scripts/logics/composables/useAuth.mjs +136 -0
  214. package/PackageResources/project~/data/scripts/logics/domOps.mjs +28 -0
  215. package/PackageResources/project~/data/scripts/logics/engineOps/configAvatarOps.mjs +224 -0
  216. package/PackageResources/project~/data/scripts/logics/engineOps/rtcOps.mjs +40 -0
  217. package/PackageResources/project~/data/scripts/logics/engineOps.mjs +101 -0
  218. package/PackageResources/project~/data/scripts/logics/repositories/.gitkeep +0 -0
  219. package/PackageResources/project~/data/scripts/logics/repositories/assetsRepository.mjs +75 -0
  220. package/PackageResources/project~/data/scripts/logics/repositories/authRepository.mjs +60 -0
  221. package/PackageResources/project~/data/scripts/logics/repositories/factory.mjs +14 -0
  222. package/PackageResources/project~/data/scripts/logics/routeEventHandlers.mjs +30 -0
  223. package/PackageResources/project~/data/scripts/logics/useStorage.mjs +36 -0
  224. package/PackageResources/project~/data/scripts/utils/const.mjs +12 -0
  225. package/PackageResources/project~/data/scripts/utils/debugLog.mjs +16 -0
  226. package/PackageResources/project~/data/scripts/utils/names.mjs +7 -0
  227. package/PackageResources/project~/data/scripts/utils/viewConst.mjs +5 -0
  228. package/PackageResources/project~/data/viewBootStrap.mjs +31 -0
  229. package/PackageResources/project~/main.html +6 -43
  230. package/PackageResources/tools/HEAPack/HEAPack.py +85 -0
  231. package/PackageResources/tools/HEAPack/HEAPack.py.meta +7 -0
  232. package/PackageResources/tools/HEAPack/HEAUnpack.py +73 -0
  233. package/PackageResources/tools/HEAPack/HEAUnpack.py.meta +7 -0
  234. package/PackageResources/tools/HEAPack/README.md +56 -0
  235. package/PackageResources/tools/HEAPack/README.md.meta +7 -0
  236. package/PackageResources/tools/HEAPack/in/test/Default.hep +0 -0
  237. package/PackageResources/tools/HEAPack/in/test/Default.hep.meta +10 -0
  238. package/PackageResources/tools/HEAPack/in/test/tex/Texture000.png +0 -0
  239. package/PackageResources/tools/HEAPack/in/test/tex/Texture000.png.meta +92 -0
  240. package/PackageResources/tools/HEAPack/in/test/tex.meta +8 -0
  241. package/PackageResources/tools/HEAPack/in/test.meta +8 -0
  242. package/PackageResources/tools/HEAPack/in.meta +8 -0
  243. package/PackageResources/tools/HEAPack.meta +8 -0
  244. package/PackageResources/tools/HEOSameTexOptimizer/HEOSameTexOptimizer.py.meta +7 -7
  245. package/PackageResources/tools/HEOTexComp/HEOTexComp.exe +0 -0
  246. package/PackageResources/tools/HEOTexComp/HEOTexComp.py +516 -0
  247. package/PackageResources/tools/HEOTexComp/HEOTexComp.py.meta +7 -0
  248. package/PackageResources/tools/HEOTexComp/HEOTexComp_Mac +0 -0
  249. package/PackageResources/tools/HEOTexComp_Python/HEOTexComp.py +516 -0
  250. package/PackageResources/tools/HEOTexComp_Python/HEOTexComp.py.meta +7 -0
  251. package/PackageResources/tools/HEOTexComp_Python/HEOTexComp_Python.pyproj +35 -0
  252. package/PackageResources/tools/HEOTexComp_Python/HEOTexComp_Python.pyproj.meta +7 -0
  253. package/PackageResources/tools/HEOTexComp_Python/HEOTexComp_Python.pyproj.user +6 -0
  254. package/PackageResources/tools/HEOTexComp_Python/HEOTexComp_Python.pyproj.user.meta +7 -0
  255. package/PackageResources/tools/HEOTexComp_Python/HEOTexComp_Python.sln +23 -0
  256. package/PackageResources/tools/HEOTexComp_Python/HEOTexComp_Python.sln.meta +7 -0
  257. package/PackageResources/tools/HEOTexComp_Python/copypy_sdk.bat +1 -0
  258. package/PackageResources/tools/HEOTexComp_Python/copypy_sdk.bat.meta +7 -0
  259. package/PackageResources/tools/HEOTexComp_Python.meta +8 -0
  260. package/PackageResources/tools/HEPTexComp/HEPTexComp.py +272 -0
  261. package/PackageResources/tools/HEPTexComp/HEPTexComp.py.meta +7 -0
  262. package/PackageResources/tools/HEPTexComp/HEPTexComp.pyproj +35 -0
  263. package/PackageResources/tools/HEPTexComp/HEPTexComp.pyproj.meta +7 -0
  264. package/PackageResources/tools/HEPTexComp/HEPTexComp.sln +23 -0
  265. package/PackageResources/tools/HEPTexComp/HEPTexComp.sln.meta +7 -0
  266. package/PackageResources/tools/HEPTexComp/copypy_sdk.bat +1 -0
  267. package/PackageResources/tools/HEPTexComp/copypy_sdk.bat.meta +7 -0
  268. package/PackageResources/tools/HEPTexComp.meta +8 -0
  269. package/PackageResources/tools/HRMExporter/HRMExporter/HRMExporter.vcxproj.filters.meta +7 -7
  270. package/PackageResources/tools/HRMExporter/HRMExporter/HRMExporter.vcxproj.meta +7 -7
  271. package/PackageResources/tools/HRMExporter/HRMExporter/HRMExporter.vcxproj.user.meta +7 -7
  272. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/CGDecoder/CDecodePNG.cpp.meta +27 -27
  273. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/CGDecoder/CDecodePNG.h.meta +27 -27
  274. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/CGDecoder/ECGFormat.h.meta +27 -27
  275. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/CharacterCode/CharacterCode.cpp.meta +27 -27
  276. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/CharacterCode/CharacterCode.h.meta +27 -27
  277. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/CharacterCode/IsCode.h.meta +27 -27
  278. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/FileImage/CFileImageAnalyser.cpp.meta +27 -27
  279. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/FileImage/CFileImageAnalyser.h.meta +27 -27
  280. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/FileImage/CFileImageMaker.cpp.meta +27 -27
  281. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/FileImage/CFileImageMaker.h.meta +27 -27
  282. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/FileImage/FileImage.cpp.meta +27 -27
  283. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/FileImage/FileImage.h.meta +27 -27
  284. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/FormatString/FormatString.cpp.meta +27 -27
  285. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/FormatString/FormatString.h.meta +27 -27
  286. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/FormatString/LFormat.cpp.meta +27 -27
  287. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/FormatString/LFormat.h.meta +27 -27
  288. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFAccesorIndexSet.cpp.meta +27 -27
  289. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFAccesorIndexSet.h.meta +27 -27
  290. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFAccessor.cpp.meta +27 -27
  291. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFAccessor.h.meta +27 -27
  292. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFBufferView.cpp.meta +27 -27
  293. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFBufferView.h.meta +27 -27
  294. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFChunk.cpp.meta +27 -27
  295. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFChunk.h.meta +27 -27
  296. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFCollider.cpp.meta +27 -27
  297. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFCollider.h.meta +27 -27
  298. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFColliderGroup.cpp.meta +27 -27
  299. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFColliderGroup.h.meta +27 -27
  300. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFData.cpp.meta +27 -27
  301. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFData.h.meta +27 -27
  302. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFImage.cpp.meta +27 -27
  303. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFImage.h.meta +27 -27
  304. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFMaterial.cpp.meta +27 -27
  305. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFMaterial.h.meta +27 -27
  306. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFMesh.cpp.meta +27 -27
  307. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFMesh.h.meta +27 -27
  308. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFMeshPrimitive.cpp.meta +27 -27
  309. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFMeshPrimitive.h.meta +27 -27
  310. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFNode.cpp.meta +27 -27
  311. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFNode.h.meta +27 -27
  312. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFSkin.cpp.meta +27 -27
  313. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GLTF/CGLTFSkin.h.meta +27 -27
  314. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GraphCommon/CPBRParam.cpp.meta +27 -27
  315. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GraphCommon/CPBRParam.h.meta +27 -27
  316. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GraphCommon/CSurface.cpp.meta +27 -27
  317. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GraphCommon/CSurface.h.meta +27 -27
  318. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GraphCommon/CUTSParam.cpp.meta +27 -27
  319. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GraphCommon/CUTSParam.h.meta +27 -27
  320. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GraphCommon/CWaterPlaneParam.cpp.meta +27 -27
  321. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GraphCommon/CWaterPlaneParam.h.meta +27 -27
  322. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GraphCommon/EBlendMode.h.meta +27 -27
  323. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GraphCommon/EOutlineWidthType.h.meta +27 -27
  324. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GraphCommon/EShaderType.h.meta +27 -27
  325. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GraphCommon/ETextureCompressionType.h.meta +27 -27
  326. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/GraphCommon/ETextureScrambleType.h.meta +27 -27
  327. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/HRM/CHRMExporter.cpp.meta +27 -27
  328. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/HRM/CHRMExporter.h.meta +27 -27
  329. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/HRM/CHRMTextureCompressor.cpp.meta +27 -27
  330. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/HRM/CHRMTextureCompressor.h.meta +27 -27
  331. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/JSON/CJSON.cpp.meta +27 -27
  332. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/JSON/CJSON.h.meta +27 -27
  333. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/JSON/CJSONData.cpp.meta +27 -27
  334. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/JSON/CJSONData.h.meta +27 -27
  335. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/JSON/CJSONToken.cpp.meta +27 -27
  336. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/JSON/CJSONToken.h.meta +27 -27
  337. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math/CMTRand.cpp.meta +27 -27
  338. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math/CMTRand.h.meta +27 -27
  339. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math/CMTUtil.cpp.meta +27 -27
  340. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math/CMTUtil.h.meta +27 -27
  341. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/3DDefine.h.meta +27 -27
  342. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/CBezier.cpp.meta +27 -27
  343. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/CBezier.h.meta +27 -27
  344. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/CBoundingBox.cpp.meta +27 -27
  345. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/CBoundingBox.h.meta +27 -27
  346. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/CCamera.cpp.meta +27 -27
  347. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/CCamera.h.meta +27 -27
  348. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/CDualQuaternion.cpp.meta +27 -27
  349. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/CDualQuaternion.h.meta +27 -27
  350. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/CProjection.cpp.meta +27 -27
  351. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/CProjection.h.meta +27 -27
  352. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/CSphere.cpp.meta +27 -27
  353. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/CSphere.h.meta +27 -27
  354. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/CTransform.cpp.meta +27 -27
  355. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/CTransform.h.meta +27 -27
  356. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/S2D.cpp.meta +27 -27
  357. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/S2D.h.meta +27 -27
  358. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/S2DI.cpp.meta +27 -27
  359. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/S2DI.h.meta +27 -27
  360. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/S3D.cpp.meta +27 -27
  361. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/S3D.h.meta +27 -27
  362. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/S4D.cpp.meta +27 -27
  363. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/S4D.h.meta +27 -27
  364. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/SColor.cpp.meta +27 -27
  365. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/SColor.h.meta +27 -27
  366. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/SColor32.cpp.meta +27 -27
  367. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/SColor32.h.meta +27 -27
  368. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/SMatrix.cpp.meta +27 -27
  369. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/SMatrix.h.meta +27 -27
  370. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/SPlane.cpp.meta +27 -27
  371. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/SPlane.h.meta +27 -27
  372. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/SQuaternion.cpp.meta +27 -27
  373. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/SQuaternion.h.meta +27 -27
  374. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/SRect.cpp.meta +27 -27
  375. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/SRect.h.meta +27 -27
  376. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/SSize.cpp.meta +27 -27
  377. package/PackageResources/tools/HRMExporter/HRMExporter/Source/Independent/Math3D/SSize.h.meta +27 -27
  378. package/PackageResources/tools/HRMExporter/HRMExporter.sln.meta +7 -7
  379. package/PackageResources/tools/ParticleEditor/data/Particle/beer/beer.hep +0 -0
  380. package/PackageResources/tools/ParticleEditor/data/Particle/beer/beer.hep.meta +10 -0
  381. package/PackageResources/tools/ParticleEditor/data/Scene/particleworld.json +1 -1
  382. package/PackageResources/tools/ParticleEditor/data/gui/Component/simple_panel.png +0 -0
  383. package/PackageResources/tools/ParticleEditor/data/gui/Component/simple_window.png +0 -0
  384. package/PackageResources/tools/ParticleEditor/data/heliodor.js +1 -0
  385. package/PackageResources/tools/ParticleEditor/data/heliodor.js.meta +7 -0
  386. package/PackageResources/tools/ParticleEditor/data/heliodor.wasm +0 -0
  387. package/PackageResources/tools/ParticleEditor/data/heliodor.wasm.meta +7 -0
  388. package/PackageResources/tools/ParticleEditor/data/heliodor_front.js +381 -0
  389. package/PackageResources/tools/ParticleEditor/data/heliodor_front.js.meta +7 -0
  390. package/PackageResources/tools/ParticleEditor/data/heliodor_post.js +35 -0
  391. package/PackageResources/tools/ParticleEditor/data/heliodor_post.js.meta +7 -0
  392. package/PackageResources/tools/ParticleEditor/data/heliodor_pre.js +15945 -0
  393. package/PackageResources/tools/ParticleEditor/data/heliodor_pre.js.map +7 -0
  394. package/PackageResources/tools/ParticleEditor/data/heliodor_pre.js.map.meta +7 -0
  395. package/PackageResources/tools/ParticleEditor/data/heliodor_pre.js.meta +7 -0
  396. package/PackageResources/tools/ParticleEditor/data/query-args.js +87 -0
  397. package/PackageResources/tools/ParticleEditor/data/query-args.js.meta +7 -0
  398. package/PackageResources/tools/ParticleEditor/data/webxr-polyfill.module.js +6109 -0
  399. package/PackageResources/tools/ParticleEditor/data/webxr-polyfill.module.js.meta +7 -0
  400. package/PackageResources/tools/ParticleEditor/index.html +170 -0
  401. package/PackageResources/tools/ParticleEditor/index.html.meta +7 -0
  402. package/Rooting/PathManager.cs +114 -109
  403. package/Samples~/Tutorial -action-/HEOObjects/HEOClickableWarpSphere/HEOTargetClickable_ActionSphere.heo +0 -0
  404. package/Samples~/Tutorial -action-/HEOObjects/HEOClickableWarpSphere/HEOTargetClickable_ActionSphere.heo.meta +11 -0
  405. package/Samples~/Tutorial -action-/HEOObjects/HEOClickableWarpSphere/HEOTargetClickable_ActionSphere_astc.bat +3 -0
  406. package/Samples~/Tutorial -action-/HEOObjects/HEOClickableWarpSphere/HEOTargetClickable_ActionSphere_astc.bat.meta +7 -0
  407. package/Samples~/Tutorial -action-/HEOObjects/HEOClickableWarpSphere/HEOTargetClickable_ActionSphere_dxt.bat +3 -0
  408. package/Samples~/Tutorial -action-/HEOObjects/HEOClickableWarpSphere/HEOTargetClickable_ActionSphere_dxt.bat.meta +7 -0
  409. package/Samples~/Tutorial -action-/HEOObjects/HEOClickableWarpSphere/HEOTargetClickable_ActionSphere_etc2.bat +4 -0
  410. package/Samples~/Tutorial -action-/HEOObjects/HEOClickableWarpSphere/HEOTargetClickable_ActionSphere_etc2.bat.meta +7 -0
  411. package/Samples~/Tutorial -action-/HEOObjects/HEOClickableWarpSphere.meta +8 -0
  412. package/Samples~/Tutorial -action-/HEOObjects/HEOCube/HEOCube.heo +0 -0
  413. package/Samples~/Tutorial -action-/HEOObjects/HEOCube/HEOCube.heo.meta +11 -0
  414. package/Samples~/Tutorial -action-/HEOObjects/HEOCube/HEOCube_astc.bat +3 -0
  415. package/Samples~/Tutorial -action-/HEOObjects/HEOCube/HEOCube_astc.bat.meta +7 -0
  416. package/Samples~/Tutorial -action-/HEOObjects/HEOCube/HEOCube_dxt.bat +3 -0
  417. package/Samples~/Tutorial -action-/HEOObjects/HEOCube/HEOCube_dxt.bat.meta +7 -0
  418. package/Samples~/Tutorial -action-/HEOObjects/HEOCube/HEOCube_etc2.bat +4 -0
  419. package/Samples~/Tutorial -action-/HEOObjects/HEOCube/HEOCube_etc2.bat.meta +7 -0
  420. package/Samples~/Tutorial -action-/HEOObjects/HEOCube.meta +8 -0
  421. package/Samples~/Tutorial -action-/HEOObjects/HEOLODObject/LODBaseObjects.heo +0 -0
  422. package/Samples~/Tutorial -action-/HEOObjects/HEOLODObject/LODBaseObjects.heo.meta +11 -0
  423. package/Samples~/Tutorial -action-/HEOObjects/HEOLODObject/LODBaseObjects_astc.bat +3 -0
  424. package/Samples~/Tutorial -action-/HEOObjects/HEOLODObject/LODBaseObjects_astc.bat.meta +7 -0
  425. package/Samples~/Tutorial -action-/HEOObjects/HEOLODObject/LODBaseObjects_dxt.bat +3 -0
  426. package/Samples~/Tutorial -action-/HEOObjects/HEOLODObject/LODBaseObjects_dxt.bat.meta +7 -0
  427. package/Samples~/Tutorial -action-/HEOObjects/HEOLODObject/LODBaseObjects_etc2.bat +4 -0
  428. package/Samples~/Tutorial -action-/HEOObjects/HEOLODObject/LODBaseObjects_etc2.bat.meta +7 -0
  429. package/Samples~/Tutorial -action-/HEOObjects/HEOLODObject.meta +8 -0
  430. package/Samples~/Tutorial -action-/HEOObjects/HEONonLoopParticle/HEONonLoopParticle.hep +0 -0
  431. package/Samples~/Tutorial -action-/HEOObjects/HEONonLoopParticle/HEONonLoopParticle.hep.meta +10 -0
  432. package/Samples~/Tutorial -action-/HEOObjects/HEONonLoopParticle/tex/Texture000.png +0 -0
  433. package/Samples~/Tutorial -action-/HEOObjects/HEONonLoopParticle/tex/Texture000.png.meta +92 -0
  434. package/Samples~/Tutorial -action-/HEOObjects/HEONonLoopParticle/tex.meta +8 -0
  435. package/Samples~/Tutorial -action-/HEOObjects/HEONonLoopParticle.meta +8 -0
  436. package/Samples~/Tutorial -action-/HEOObjects/HEOShakeMotion/HEMShake.hem +0 -0
  437. package/Samples~/Tutorial -action-/HEOObjects/HEOShakeMotion/HEMShake.hem.meta +11 -0
  438. package/Samples~/Tutorial -action-/HEOObjects/HEOShakeMotion.meta +8 -0
  439. package/Samples~/Tutorial -action-/HEOObjects.meta +8 -0
  440. package/Samples~/Tutorial -action-/Materials/D0-0-3_R0-0-0.mat +77 -0
  441. package/Samples~/Tutorial -action-/Materials/D0-0-3_R0-0-0.mat.meta +8 -0
  442. package/Samples~/Tutorial -action-/Materials/D0-3-0_R0-0-0.mat +77 -0
  443. package/Samples~/Tutorial -action-/Materials/D0-3-0_R0-0-0.mat.meta +8 -0
  444. package/Samples~/Tutorial -action-/Materials/D3-0-0_R0-0-0.mat +77 -0
  445. package/Samples~/Tutorial -action-/Materials/D3-0-0_R0-0-0.mat.meta +8 -0
  446. package/Samples~/Tutorial -action-/Materials/D3-0-0_R0-45-0.mat +77 -0
  447. package/Samples~/Tutorial -action-/Materials/D3-0-0_R0-45-0.mat.meta +8 -0
  448. package/Samples~/Tutorial -action-/Materials/EnableDisableClickableNode/AboutActionEnableDisableClickableNode.mat +77 -0
  449. package/Samples~/Tutorial -action-/Materials/EnableDisableClickableNode/AboutActionEnableDisableClickableNode.mat.meta +8 -0
  450. package/Samples~/Tutorial -action-/Materials/EnableDisableClickableNode.meta +8 -0
  451. package/Samples~/Tutorial -action-/Materials/EnterLeaveVoiceGroup/AboutActionEnterLeaveVoiceGroup.mat +77 -0
  452. package/Samples~/Tutorial -action-/Materials/EnterLeaveVoiceGroup/AboutActionEnterLeaveVoiceGroup.mat.meta +8 -0
  453. package/Samples~/Tutorial -action-/Materials/EnterLeaveVoiceGroup.meta +8 -0
  454. package/Samples~/Tutorial -action-/Materials/FadeOutIn/AboutActionFadeOutIn.mat +77 -0
  455. package/Samples~/Tutorial -action-/Materials/FadeOutIn/AboutActionFadeOutIn.mat.meta +8 -0
  456. package/Samples~/Tutorial -action-/Materials/FadeOutIn.meta +8 -0
  457. package/Samples~/Tutorial -action-/Materials/Hide.mat +77 -0
  458. package/Samples~/Tutorial -action-/Materials/Hide.mat.meta +8 -0
  459. package/Samples~/Tutorial -action-/Materials/InTime2.mat +77 -0
  460. package/Samples~/Tutorial -action-/Materials/InTime2.mat.meta +8 -0
  461. package/Samples~/Tutorial -action-/Materials/Motion/AboutActionMotion.mat +77 -0
  462. package/Samples~/Tutorial -action-/Materials/Motion/AboutActionMotion.mat.meta +8 -0
  463. package/Samples~/Tutorial -action-/Materials/Motion/MotionShake.mat +77 -0
  464. package/Samples~/Tutorial -action-/Materials/Motion/MotionShake.mat.meta +8 -0
  465. package/Samples~/Tutorial -action-/Materials/Motion/NextMotionShake.mat +77 -0
  466. package/Samples~/Tutorial -action-/Materials/Motion/NextMotionShake.mat.meta +8 -0
  467. package/Samples~/Tutorial -action-/Materials/Motion.meta +8 -0
  468. package/Samples~/Tutorial -action-/Materials/MoveTo/AboutActionMoveTo.mat +77 -0
  469. package/Samples~/Tutorial -action-/Materials/MoveTo/AboutActionMoveTo.mat.meta +8 -0
  470. package/Samples~/Tutorial -action-/Materials/MoveTo/ActionSphere_D0-0--3.mat +77 -0
  471. package/Samples~/Tutorial -action-/Materials/MoveTo/ActionSphere_D0-0--3.mat.meta +8 -0
  472. package/Samples~/Tutorial -action-/Materials/MoveTo/ActionSphere_D0-0-3.mat +77 -0
  473. package/Samples~/Tutorial -action-/Materials/MoveTo/ActionSphere_D0-0-3.mat.meta +8 -0
  474. package/Samples~/Tutorial -action-/Materials/MoveTo/ActionSphere_D3-0-0.mat +77 -0
  475. package/Samples~/Tutorial -action-/Materials/MoveTo/ActionSphere_D3-0-0.mat.meta +8 -0
  476. package/Samples~/Tutorial -action-/Materials/MoveTo/Unlit_Transparent.shader +31 -0
  477. package/Samples~/Tutorial -action-/Materials/MoveTo/Unlit_Transparent.shader.meta +9 -0
  478. package/Samples~/Tutorial -action-/Materials/MoveTo/roundframeBlue.mat +28 -0
  479. package/Samples~/Tutorial -action-/Materials/MoveTo/roundframeBlue.mat.meta +8 -0
  480. package/Samples~/Tutorial -action-/Materials/MoveTo/roundframeRed.mat +28 -0
  481. package/Samples~/Tutorial -action-/Materials/MoveTo/roundframeRed.mat.meta +8 -0
  482. package/Samples~/Tutorial -action-/Materials/MoveTo/roundframeYellow.mat +28 -0
  483. package/Samples~/Tutorial -action-/Materials/MoveTo/roundframeYellow.mat.meta +8 -0
  484. package/Samples~/Tutorial -action-/Materials/MoveTo.meta +8 -0
  485. package/Samples~/Tutorial -action-/Materials/OpenWeb/AboutActionOpenWeb.mat +77 -0
  486. package/Samples~/Tutorial -action-/Materials/OpenWeb/AboutActionOpenWeb.mat.meta +8 -0
  487. package/Samples~/Tutorial -action-/Materials/OpenWeb.meta +8 -0
  488. package/Samples~/Tutorial -action-/Materials/OutInTime2.mat +77 -0
  489. package/Samples~/Tutorial -action-/Materials/OutInTime2.mat.meta +8 -0
  490. package/Samples~/Tutorial -action-/Materials/OutTime2.mat +77 -0
  491. package/Samples~/Tutorial -action-/Materials/OutTime2.mat.meta +8 -0
  492. package/Samples~/Tutorial -action-/Materials/P0-0-3.mat +77 -0
  493. package/Samples~/Tutorial -action-/Materials/P0-0-3.mat.meta +8 -0
  494. package/Samples~/Tutorial -action-/Materials/P0-3-0.mat +77 -0
  495. package/Samples~/Tutorial -action-/Materials/P0-3-0.mat.meta +8 -0
  496. package/Samples~/Tutorial -action-/Materials/P3-0-0.mat +77 -0
  497. package/Samples~/Tutorial -action-/Materials/P3-0-0.mat.meta +8 -0
  498. package/Samples~/Tutorial -action-/Materials/Play.mat +77 -0
  499. package/Samples~/Tutorial -action-/Materials/Play.mat.meta +8 -0
  500. package/Samples~/Tutorial -action-/Materials/PlayStopItem/AboutActionPlayStopItem.mat +77 -0
  501. package/Samples~/Tutorial -action-/Materials/PlayStopItem/AboutActionPlayStopItem.mat.meta +8 -0
  502. package/Samples~/Tutorial -action-/Materials/PlayStopItem/ParticleQuad.mat +77 -0
  503. package/Samples~/Tutorial -action-/Materials/PlayStopItem/ParticleQuad.mat.meta +8 -0
  504. package/Samples~/Tutorial -action-/Materials/PlayStopItem/SoundQuad.mat +77 -0
  505. package/Samples~/Tutorial -action-/Materials/PlayStopItem/SoundQuad.mat.meta +8 -0
  506. package/Samples~/Tutorial -action-/Materials/PlayStopItem.meta +8 -0
  507. package/Samples~/Tutorial -action-/Materials/PlayStopObject/AboutActionPlayStopObject.mat +77 -0
  508. package/Samples~/Tutorial -action-/Materials/PlayStopObject/AboutActionPlayStopObject.mat.meta +8 -0
  509. package/Samples~/Tutorial -action-/Materials/PlayStopObject.meta +8 -0
  510. package/Samples~/Tutorial -action-/Materials/SetPosRelativePlayer/AboutActionSetPosRelativePlayer.mat +77 -0
  511. package/Samples~/Tutorial -action-/Materials/SetPosRelativePlayer/AboutActionSetPosRelativePlayer.mat.meta +8 -0
  512. package/Samples~/Tutorial -action-/Materials/SetPosRelativePlayer.meta +8 -0
  513. package/Samples~/Tutorial -action-/Materials/Show.mat +77 -0
  514. package/Samples~/Tutorial -action-/Materials/Show.mat.meta +8 -0
  515. package/Samples~/Tutorial -action-/Materials/ShowHideItem/AboutActionShowHideItem.mat +77 -0
  516. package/Samples~/Tutorial -action-/Materials/ShowHideItem/AboutActionShowHideItem.mat.meta +8 -0
  517. package/Samples~/Tutorial -action-/Materials/ShowHideItem.meta +8 -0
  518. package/Samples~/Tutorial -action-/Materials/ShowHideNode/AboutActionShowHideNode.mat +77 -0
  519. package/Samples~/Tutorial -action-/Materials/ShowHideNode/AboutActionShowHideNode.mat.meta +8 -0
  520. package/Samples~/Tutorial -action-/Materials/ShowHideNode.meta +8 -0
  521. package/Samples~/Tutorial -action-/Materials/ShowHideObject/AboutActionShowHideObject.mat +77 -0
  522. package/Samples~/Tutorial -action-/Materials/ShowHideObject/AboutActionShowHideObject.mat.meta +8 -0
  523. package/Samples~/Tutorial -action-/Materials/ShowHideObject.meta +8 -0
  524. package/Samples~/Tutorial -action-/Materials/Stop.mat +77 -0
  525. package/Samples~/Tutorial -action-/Materials/Stop.mat.meta +8 -0
  526. package/Samples~/Tutorial -action-/Materials/Time2.mat +77 -0
  527. package/Samples~/Tutorial -action-/Materials/Time2.mat.meta +8 -0
  528. package/Samples~/Tutorial -action-/Materials/URLToHIKKY.mat +77 -0
  529. package/Samples~/Tutorial -action-/Materials/URLToHIKKY.mat.meta +8 -0
  530. package/Samples~/Tutorial -action-/Materials/Wait/AboutActionWait.mat +77 -0
  531. package/Samples~/Tutorial -action-/Materials/Wait/AboutActionWait.mat.meta +8 -0
  532. package/Samples~/Tutorial -action-/Materials/Wait.meta +8 -0
  533. package/Samples~/Tutorial -action-/Materials/Warp/AboutActionWarp.mat +77 -0
  534. package/Samples~/Tutorial -action-/Materials/Warp/AboutActionWarp.mat.meta +8 -0
  535. package/Samples~/Tutorial -action-/Materials/Warp.meta +8 -0
  536. package/Samples~/Tutorial -action-/Materials/WhiteOutIn/AboutActionWhiteOutIn.mat +77 -0
  537. package/Samples~/Tutorial -action-/Materials/WhiteOutIn/AboutActionWhiteOutIn.mat.meta +8 -0
  538. package/Samples~/Tutorial -action-/Materials/WhiteOutIn.meta +8 -0
  539. package/Samples~/Tutorial -action-/Materials.meta +8 -0
  540. package/Samples~/Tutorial -action-/Scenes/EnableDisableClickableNode.unity +2998 -0
  541. package/Samples~/Tutorial -action-/Scenes/EnableDisableClickableNode.unity.meta +7 -0
  542. package/Samples~/Tutorial -action-/Scenes/EnableDisableCollider.unity +2998 -0
  543. package/Samples~/Tutorial -action-/Scenes/EnableDisableCollider.unity.meta +7 -0
  544. package/Samples~/Tutorial -action-/Scenes/EnterLeaveVoiceGroup.unity +1742 -0
  545. package/Samples~/Tutorial -action-/Scenes/EnterLeaveVoiceGroup.unity.meta +7 -0
  546. package/Samples~/Tutorial -action-/Scenes/FadeOutIn.unity +2150 -0
  547. package/Samples~/Tutorial -action-/Scenes/FadeOutIn.unity.meta +7 -0
  548. package/Samples~/Tutorial -action-/Scenes/HEOCube.prefab +67 -0
  549. package/Samples~/Tutorial -action-/Scenes/HEOCube.prefab.meta +7 -0
  550. package/Samples~/Tutorial -action-/Scenes/HEOParticle.prefab +59 -0
  551. package/Samples~/Tutorial -action-/Scenes/HEOParticle.prefab.meta +7 -0
  552. package/Samples~/Tutorial -action-/Scenes/Motion.unity +1810 -0
  553. package/Samples~/Tutorial -action-/Scenes/Motion.unity.meta +7 -0
  554. package/Samples~/Tutorial -action-/Scenes/MoveTo.unity +2490 -0
  555. package/Samples~/Tutorial -action-/Scenes/MoveTo.unity.meta +7 -0
  556. package/Samples~/Tutorial -action-/Scenes/OpenComicViewer.unity +2088 -0
  557. package/Samples~/Tutorial -action-/Scenes/OpenComicViewer.unity.meta +7 -0
  558. package/Samples~/Tutorial -action-/Scenes/OpenWeb.unity +1584 -0
  559. package/Samples~/Tutorial -action-/Scenes/OpenWeb.unity.meta +7 -0
  560. package/Samples~/Tutorial -action-/Scenes/PlayStopItem.unity +2821 -0
  561. package/Samples~/Tutorial -action-/Scenes/PlayStopItem.unity.meta +7 -0
  562. package/Samples~/Tutorial -action-/Scenes/PlayStopObject.unity +1817 -0
  563. package/Samples~/Tutorial -action-/Scenes/PlayStopObject.unity.meta +7 -0
  564. package/Samples~/Tutorial -action-/Scenes/SetCookieText.unity +2998 -0
  565. package/Samples~/Tutorial -action-/Scenes/SetCookieText.unity.meta +7 -0
  566. package/Samples~/Tutorial -action-/Scenes/SetPosRelativePlayer.unity +2549 -0
  567. package/Samples~/Tutorial -action-/Scenes/SetPosRelativePlayer.unity.meta +7 -0
  568. package/Samples~/Tutorial -action-/Scenes/ShowHideItem.unity +1865 -0
  569. package/Samples~/Tutorial -action-/Scenes/ShowHideItem.unity.meta +7 -0
  570. package/Samples~/Tutorial -action-/Scenes/ShowHideNode.unity +2998 -0
  571. package/Samples~/Tutorial -action-/Scenes/ShowHideNode.unity.meta +7 -0
  572. package/Samples~/Tutorial -action-/Scenes/ShowHideObject.unity +1817 -0
  573. package/Samples~/Tutorial -action-/Scenes/ShowHideObject.unity.meta +7 -0
  574. package/Samples~/Tutorial -action-/Scenes/StopVideo.unity +2088 -0
  575. package/Samples~/Tutorial -action-/Scenes/StopVideo.unity.meta +7 -0
  576. package/Samples~/Tutorial -action-/Scenes/Wait.unity +1614 -0
  577. package/Samples~/Tutorial -action-/Scenes/Wait.unity.meta +7 -0
  578. package/Samples~/Tutorial -action-/Scenes/Warp.unity +2830 -0
  579. package/Samples~/Tutorial -action-/Scenes/Warp.unity.meta +7 -0
  580. package/Samples~/Tutorial -action-/Scenes/WhiteOutIn.unity +2086 -0
  581. package/Samples~/Tutorial -action-/Scenes/WhiteOutIn.unity.meta +7 -0
  582. package/Samples~/Tutorial -action-/Scenes.meta +8 -0
  583. package/Samples~/Tutorial -action-/Sound.meta +8 -0
  584. package/Samples~/Tutorial -action-/Textures/ComicViewer/ComicViewer_1.png +0 -0
  585. package/Samples~/Tutorial -action-/Textures/ComicViewer/ComicViewer_1.png.meta +116 -0
  586. package/Samples~/Tutorial -action-/Textures/ComicViewer/ComicViewer_2.png +0 -0
  587. package/Samples~/Tutorial -action-/Textures/ComicViewer/ComicViewer_2.png.meta +116 -0
  588. package/Samples~/Tutorial -action-/Textures/ComicViewer/ComicViewer_3.png +0 -0
  589. package/Samples~/Tutorial -action-/Textures/ComicViewer/ComicViewer_3.png.meta +116 -0
  590. package/Samples~/Tutorial -action-/Textures/ComicViewer/ComicViewer_4.png +0 -0
  591. package/Samples~/Tutorial -action-/Textures/ComicViewer/ComicViewer_4.png.meta +116 -0
  592. package/Samples~/Tutorial -action-/Textures/ComicViewer/ComicViewer_5.png +0 -0
  593. package/Samples~/Tutorial -action-/Textures/ComicViewer/ComicViewer_5.png.meta +116 -0
  594. package/Samples~/Tutorial -action-/Textures/ComicViewer/ComicViewer_6.png +0 -0
  595. package/Samples~/Tutorial -action-/Textures/ComicViewer/ComicViewer_6.png.meta +116 -0
  596. package/Samples~/Tutorial -action-/Textures/ComicViewer.meta +8 -0
  597. package/Samples~/Tutorial -action-/Textures/D0-0-3_R0-0-0.png +0 -0
  598. package/Samples~/Tutorial -action-/Textures/D0-0-3_R0-0-0.png.meta +116 -0
  599. package/Samples~/Tutorial -action-/Textures/D0-3-0_R0-0-0.png +0 -0
  600. package/Samples~/Tutorial -action-/Textures/D0-3-0_R0-0-0.png.meta +116 -0
  601. package/Samples~/Tutorial -action-/Textures/D3-0-0_R0-0-0.png +0 -0
  602. package/Samples~/Tutorial -action-/Textures/D3-0-0_R0-0-0.png.meta +116 -0
  603. package/Samples~/Tutorial -action-/Textures/D3-0-0_R0-45-0.png +0 -0
  604. package/Samples~/Tutorial -action-/Textures/D3-0-0_R0-45-0.png.meta +116 -0
  605. package/Samples~/Tutorial -action-/Textures/EnableDisableClickableNode/AboutActionEnableDisableClickableNode.png +0 -0
  606. package/Samples~/Tutorial -action-/Textures/EnableDisableClickableNode/AboutActionEnableDisableClickableNode.png.meta +116 -0
  607. package/Samples~/Tutorial -action-/Textures/EnableDisableClickableNode.meta +8 -0
  608. package/Samples~/Tutorial -action-/Textures/EnterLeaveVoiceGroup/AboutActionEnterLeaveVoiceGroup.png +0 -0
  609. package/Samples~/Tutorial -action-/Textures/EnterLeaveVoiceGroup/AboutActionEnterLeaveVoiceGroup.png.meta +116 -0
  610. package/Samples~/Tutorial -action-/Textures/EnterLeaveVoiceGroup.meta +8 -0
  611. package/Samples~/Tutorial -action-/Textures/FadeOutIn/AboutActionFadeOutIn.png +0 -0
  612. package/Samples~/Tutorial -action-/Textures/FadeOutIn/AboutActionFadeOutIn.png.meta +116 -0
  613. package/Samples~/Tutorial -action-/Textures/FadeOutIn.meta +8 -0
  614. package/Samples~/Tutorial -action-/Textures/Hide.png +0 -0
  615. package/Samples~/Tutorial -action-/Textures/Hide.png.meta +116 -0
  616. package/Samples~/Tutorial -action-/Textures/InTime2.png +0 -0
  617. package/Samples~/Tutorial -action-/Textures/InTime2.png.meta +116 -0
  618. package/Samples~/Tutorial -action-/Textures/Motion/AboutActionMotion.png +0 -0
  619. package/Samples~/Tutorial -action-/Textures/Motion/AboutActionMotion.png.meta +116 -0
  620. package/Samples~/Tutorial -action-/Textures/Motion/MotionShake.png +0 -0
  621. package/Samples~/Tutorial -action-/Textures/Motion/MotionShake.png.meta +116 -0
  622. package/Samples~/Tutorial -action-/Textures/Motion/NextMotionShake.png +0 -0
  623. package/Samples~/Tutorial -action-/Textures/Motion/NextMotionShake.png.meta +116 -0
  624. package/Samples~/Tutorial -action-/Textures/Motion.meta +8 -0
  625. package/Samples~/Tutorial -action-/Textures/MoveTo/AboutActionMoveTo.png +0 -0
  626. package/Samples~/Tutorial -action-/Textures/MoveTo/AboutActionMoveTo.png.meta +116 -0
  627. package/Samples~/Tutorial -action-/Textures/MoveTo.meta +8 -0
  628. package/Samples~/Tutorial -action-/Textures/OpenWeb/AboutActionOpenWeb.png +0 -0
  629. package/Samples~/Tutorial -action-/Textures/OpenWeb/AboutActionOpenWeb.png.meta +116 -0
  630. package/Samples~/Tutorial -action-/Textures/OpenWeb.meta +8 -0
  631. package/Samples~/Tutorial -action-/Textures/OutInTime2.png +0 -0
  632. package/Samples~/Tutorial -action-/Textures/OutInTime2.png.meta +116 -0
  633. package/Samples~/Tutorial -action-/Textures/OutTime2.png +0 -0
  634. package/Samples~/Tutorial -action-/Textures/OutTime2.png.meta +116 -0
  635. package/Samples~/Tutorial -action-/Textures/P0-0-3.png +0 -0
  636. package/Samples~/Tutorial -action-/Textures/P0-0-3.png.meta +116 -0
  637. package/Samples~/Tutorial -action-/Textures/P0-3-0.png +0 -0
  638. package/Samples~/Tutorial -action-/Textures/P0-3-0.png.meta +116 -0
  639. package/Samples~/Tutorial -action-/Textures/P3-0-0.png +0 -0
  640. package/Samples~/Tutorial -action-/Textures/P3-0-0.png.meta +116 -0
  641. package/Samples~/Tutorial -action-/Textures/Play.png +0 -0
  642. package/Samples~/Tutorial -action-/Textures/Play.png.meta +116 -0
  643. package/Samples~/Tutorial -action-/Textures/PlayStopItem/AboutActionPlayStopItem.png +0 -0
  644. package/Samples~/Tutorial -action-/Textures/PlayStopItem/AboutActionPlayStopItem.png.meta +116 -0
  645. package/Samples~/Tutorial -action-/Textures/PlayStopItem/Particle.png +0 -0
  646. package/Samples~/Tutorial -action-/Textures/PlayStopItem/Particle.png.meta +116 -0
  647. package/Samples~/Tutorial -action-/Textures/PlayStopItem/Sound.png +0 -0
  648. package/Samples~/Tutorial -action-/Textures/PlayStopItem/Sound.png.meta +116 -0
  649. package/Samples~/Tutorial -action-/Textures/PlayStopItem.meta +8 -0
  650. package/Samples~/Tutorial -action-/Textures/PlayStopObject/AboutActionPlayStopObject.png +0 -0
  651. package/Samples~/Tutorial -action-/Textures/PlayStopObject/AboutActionPlayStopObject.png.meta +116 -0
  652. package/Samples~/Tutorial -action-/Textures/PlayStopObject.meta +8 -0
  653. package/Samples~/Tutorial -action-/Textures/SetPosRelativePlayer/AboutActionSetPosRelativePlayer.png +0 -0
  654. package/Samples~/Tutorial -action-/Textures/SetPosRelativePlayer/AboutActionSetPosRelativePlayer.png.meta +116 -0
  655. package/Samples~/Tutorial -action-/Textures/SetPosRelativePlayer.meta +8 -0
  656. package/Samples~/Tutorial -action-/Textures/Show.png +0 -0
  657. package/Samples~/Tutorial -action-/Textures/Show.png.meta +116 -0
  658. package/Samples~/Tutorial -action-/Textures/ShowHideItem/AboutActionShowHideItem.png +0 -0
  659. package/Samples~/Tutorial -action-/Textures/ShowHideItem/AboutActionShowHideItem.png.meta +116 -0
  660. package/Samples~/Tutorial -action-/Textures/ShowHideItem.meta +8 -0
  661. package/Samples~/Tutorial -action-/Textures/ShowHideNode/AboutActionShowHideNode.png +0 -0
  662. package/Samples~/Tutorial -action-/Textures/ShowHideNode/AboutActionShowHideNode.png.meta +116 -0
  663. package/Samples~/Tutorial -action-/Textures/ShowHideNode.meta +8 -0
  664. package/Samples~/Tutorial -action-/Textures/ShowHideObject/AboutActionShowHideObject.png +0 -0
  665. package/Samples~/Tutorial -action-/Textures/ShowHideObject/AboutActionShowHideObject.png.meta +116 -0
  666. package/Samples~/Tutorial -action-/Textures/ShowHideObject.meta +8 -0
  667. package/Samples~/Tutorial -action-/Textures/Stop.png +0 -0
  668. package/Samples~/Tutorial -action-/Textures/Stop.png.meta +116 -0
  669. package/Samples~/Tutorial -action-/Textures/Time2.png +0 -0
  670. package/Samples~/Tutorial -action-/Textures/Time2.png.meta +116 -0
  671. package/Samples~/Tutorial -action-/Textures/URL_ToHIKKY.png +0 -0
  672. package/Samples~/Tutorial -action-/Textures/URL_ToHIKKY.png.meta +116 -0
  673. package/Samples~/Tutorial -action-/Textures/Wait/AboutActionWait.png +0 -0
  674. package/Samples~/Tutorial -action-/Textures/Wait/AboutActionWait.png.meta +116 -0
  675. package/Samples~/Tutorial -action-/Textures/Wait.meta +8 -0
  676. package/Samples~/Tutorial -action-/Textures/Warp/AboutActionWarp.png +0 -0
  677. package/Samples~/Tutorial -action-/Textures/Warp/AboutActionWarp.png.meta +116 -0
  678. package/Samples~/Tutorial -action-/Textures/Warp.meta +8 -0
  679. package/Samples~/Tutorial -action-/Textures/WhiteOutIn/AboutActionWhiteOutIn.png +0 -0
  680. package/Samples~/Tutorial -action-/Textures/WhiteOutIn/AboutActionWhiteOutIn.png.meta +116 -0
  681. package/Samples~/Tutorial -action-/Textures/WhiteOutIn.meta +8 -0
  682. package/Samples~/Tutorial -action-/Textures.meta +8 -0
  683. package/Samples~/{Actions.meta → Tutorial -action-.meta} +0 -0
  684. package/Samples~/Tutorial -animation-.meta +12 -0
  685. package/Samples~/Tutorial -avatar-.meta +12 -0
  686. package/Samples~/Tutorial -basic-/Materials/AboutObjectsToBuild.mat +27 -0
  687. package/Samples~/Tutorial -basic-/Materials/AboutObjectsToBuild.mat.meta +8 -0
  688. package/Samples~/Tutorial -basic-/Materials/AboutSkybox.mat +27 -0
  689. package/Samples~/Tutorial -basic-/Materials/AboutSkybox.mat.meta +8 -0
  690. package/Samples~/Tutorial -basic-/Materials/Alpha_OFF_Billboard_OFF.mat +27 -0
  691. package/Samples~/Tutorial -basic-/Materials/Alpha_OFF_Billboard_OFF.mat.meta +8 -0
  692. package/Samples~/Tutorial -basic-/Materials/Alpha_ON_Billboard_OFF.mat +27 -0
  693. package/Samples~/Tutorial -basic-/Materials/Alpha_ON_Billboard_OFF.mat.meta +8 -0
  694. package/Samples~/Tutorial -basic-/Materials/Alpha_ON_Billboard_ON.mat +27 -0
  695. package/Samples~/Tutorial -basic-/Materials/Alpha_ON_Billboard_ON.mat.meta +8 -0
  696. package/Samples~/Tutorial -basic-/Materials/Color_00FF00.mat +77 -0
  697. package/Samples~/Tutorial -basic-/Materials/Color_00FF00.mat.meta +8 -0
  698. package/Samples~/Tutorial -basic-/Materials/Color_FF0000.mat +77 -0
  699. package/Samples~/Tutorial -basic-/Materials/Color_FF0000.mat.meta +8 -0
  700. package/Samples~/Tutorial -basic-/Materials/EssentialComponentList.mat +27 -0
  701. package/Samples~/Tutorial -basic-/Materials/EssentialComponentList.mat.meta +8 -0
  702. package/Samples~/Tutorial -basic-/Materials/FontSize128_TexSize1024.mat +77 -0
  703. package/Samples~/Tutorial -basic-/Materials/FontSize128_TexSize1024.mat.meta +8 -0
  704. package/Samples~/Tutorial -basic-/Materials/FontSize128_TexSize512.mat +77 -0
  705. package/Samples~/Tutorial -basic-/Materials/FontSize128_TexSize512.mat.meta +8 -0
  706. package/Samples~/Tutorial -basic-/Materials/FontSize256_TexSize1024.mat +77 -0
  707. package/Samples~/Tutorial -basic-/Materials/FontSize256_TexSize1024.mat.meta +8 -0
  708. package/Samples~/Tutorial -basic-/Materials/FontSize256_TexSize512.mat +77 -0
  709. package/Samples~/Tutorial -basic-/Materials/FontSize256_TexSize512.mat.meta +8 -0
  710. package/Samples~/Tutorial -basic-/Materials/HEOActionTrigger/AboutHEOActionTrigger.mat +27 -0
  711. package/Samples~/Tutorial -basic-/Materials/HEOActionTrigger/AboutHEOActionTrigger.mat.meta +8 -0
  712. package/Samples~/Tutorial -basic-/Materials/HEOActionTrigger.meta +8 -0
  713. package/Samples~/Tutorial -basic-/Materials/HEOAnimation/AboutHEOAnimation.mat +27 -0
  714. package/Samples~/Tutorial -basic-/Materials/HEOAnimation/AboutHEOAnimation.mat.meta +8 -0
  715. package/Samples~/Tutorial -basic-/Materials/HEOAnimation/Rotate001.mat +27 -0
  716. package/Samples~/Tutorial -basic-/Materials/HEOAnimation/Rotate001.mat.meta +8 -0
  717. package/Samples~/Tutorial -basic-/Materials/HEOAnimation/Rotate010.mat +27 -0
  718. package/Samples~/Tutorial -basic-/Materials/HEOAnimation/Rotate010.mat.meta +8 -0
  719. package/Samples~/Tutorial -basic-/Materials/HEOAnimation/Rotate100.mat +27 -0
  720. package/Samples~/Tutorial -basic-/Materials/HEOAnimation/Rotate100.mat.meta +8 -0
  721. package/Samples~/Tutorial -basic-/Materials/HEOAnimation.meta +8 -0
  722. package/Samples~/Tutorial -basic-/Materials/HEOAreaCollider/AboutHEOAreaCollider.mat +27 -0
  723. package/Samples~/Tutorial -basic-/Materials/HEOAreaCollider/AboutHEOAreaCollider.mat.meta +8 -0
  724. package/Samples~/Tutorial -basic-/Materials/HEOAreaCollider.meta +8 -0
  725. package/Samples~/Tutorial -basic-/Materials/HEOAudio/AboutHEOAudio.mat +27 -0
  726. package/Samples~/Tutorial -basic-/Materials/HEOAudio/AboutHEOAudio.mat.meta +8 -0
  727. package/Samples~/Tutorial -basic-/Materials/HEOAudio.meta +8 -0
  728. package/Samples~/Tutorial -basic-/Materials/HEOCollider/AboutHEOCollider.mat +27 -0
  729. package/Samples~/Tutorial -basic-/Materials/HEOCollider/AboutHEOCollider.mat.meta +8 -0
  730. package/Samples~/Tutorial -basic-/Materials/HEOCollider.meta +8 -0
  731. package/Samples~/Tutorial -basic-/Materials/HEOField/AboutHEOField.mat +27 -0
  732. package/Samples~/Tutorial -basic-/Materials/HEOField/AboutHEOField.mat.meta +8 -0
  733. package/Samples~/Tutorial -basic-/Materials/HEOField.meta +8 -0
  734. package/Samples~/Tutorial -basic-/Materials/HEOLODLevel/AboutHEOLODLevel.mat +27 -0
  735. package/Samples~/Tutorial -basic-/Materials/HEOLODLevel/AboutHEOLODLevel.mat.meta +8 -0
  736. package/Samples~/Tutorial -basic-/Materials/HEOLODLevel.meta +8 -0
  737. package/Samples~/Tutorial -basic-/Materials/HEOMeshColoder/AboutHEOMeshCollider.mat +27 -0
  738. package/Samples~/Tutorial -basic-/Materials/HEOMeshColoder/AboutHEOMeshCollider.mat.meta +8 -0
  739. package/Samples~/Tutorial -basic-/Materials/HEOMeshColoder.meta +8 -0
  740. package/Samples~/Tutorial -basic-/Materials/HEOObject/AboutHEOObject.mat +27 -0
  741. package/Samples~/Tutorial -basic-/Materials/HEOObject/AboutHEOObject.mat.meta +8 -0
  742. package/Samples~/Tutorial -basic-/Materials/HEOObject.meta +8 -0
  743. package/Samples~/Tutorial -basic-/Materials/HEOParticle/AboutHEOParticle.mat +27 -0
  744. package/Samples~/Tutorial -basic-/Materials/HEOParticle/AboutHEOParticle.mat.meta +8 -0
  745. package/Samples~/Tutorial -basic-/Materials/HEOParticle.meta +8 -0
  746. package/Samples~/Tutorial -basic-/Materials/HEOPlane/AboutHEOPlane.mat +27 -0
  747. package/Samples~/Tutorial -basic-/Materials/HEOPlane/AboutHEOPlane.mat.meta +8 -0
  748. package/Samples~/Tutorial -basic-/Materials/HEOPlane.meta +8 -0
  749. package/Samples~/Tutorial -basic-/Materials/HEOShowFlag/AboutHEOShowFlag.mat +27 -0
  750. package/Samples~/Tutorial -basic-/Materials/HEOShowFlag/AboutHEOShowFlag.mat.meta +8 -0
  751. package/Samples~/Tutorial -basic-/Materials/HEOShowFlag.meta +8 -0
  752. package/Samples~/Tutorial -basic-/Materials/HEOTextPlane/AboutHEOTextPlane.mat +77 -0
  753. package/Samples~/Tutorial -basic-/Materials/HEOTextPlane/AboutHEOTextPlane.mat.meta +8 -0
  754. package/Samples~/Tutorial -basic-/Materials/HEOTextPlane.meta +8 -0
  755. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/AboutHEOUVScroll.mat +27 -0
  756. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/AboutHEOUVScroll.mat.meta +8 -0
  757. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/Example_UV_Wait0_Scroll2.mat +77 -0
  758. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/Example_UV_Wait0_Scroll2.mat.meta +8 -0
  759. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/Example_UV_Wait2_Scroll0.mat +77 -0
  760. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/Example_UV_Wait2_Scroll0.mat.meta +8 -0
  761. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/Example_UV_X00_Y05.mat +77 -0
  762. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/Example_UV_X00_Y05.mat.meta +8 -0
  763. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/Example_UV_X05_Y00.mat +77 -0
  764. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/Example_UV_X05_Y00.mat.meta +8 -0
  765. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/Example_UV_X05_Y05.mat +77 -0
  766. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/Example_UV_X05_Y05.mat.meta +8 -0
  767. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/UV_Wait0_Scroll2.mat +27 -0
  768. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/UV_Wait0_Scroll2.mat.meta +8 -0
  769. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/UV_Wait2_Scroll0.mat +27 -0
  770. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/UV_Wait2_Scroll0.mat.meta +8 -0
  771. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/UV_X00_Y05.mat +27 -0
  772. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/UV_X00_Y05.mat.meta +8 -0
  773. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/UV_X05_Y00.mat +27 -0
  774. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/UV_X05_Y00.mat.meta +8 -0
  775. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/UV_X05_Y05.mat +27 -0
  776. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll/UV_X05_Y05.mat.meta +8 -0
  777. package/Samples~/Tutorial -basic-/Materials/HEOUVScroll.meta +8 -0
  778. package/Samples~/Tutorial -basic-/Materials/HEOVideoTrigger/AboutHEOVideoTrigger.mat +27 -0
  779. package/Samples~/Tutorial -basic-/Materials/HEOVideoTrigger/AboutHEOVideoTrigger.mat.meta +8 -0
  780. package/Samples~/Tutorial -basic-/Materials/HEOVideoTrigger/ActionTriggerStopVideo.mat +27 -0
  781. package/Samples~/Tutorial -basic-/Materials/HEOVideoTrigger/ActionTriggerStopVideo.mat.meta +8 -0
  782. package/Samples~/Tutorial -basic-/Materials/HEOVideoTrigger/Mt_Video.mat +77 -0
  783. package/Samples~/Tutorial -basic-/Materials/HEOVideoTrigger/Mt_Video.mat.meta +8 -0
  784. package/Samples~/Tutorial -basic-/Materials/HEOVideoTrigger/VideoTriggerAction.mat +27 -0
  785. package/Samples~/Tutorial -basic-/Materials/HEOVideoTrigger/VideoTriggerAction.mat.meta +8 -0
  786. package/Samples~/Tutorial -basic-/Materials/HEOVideoTrigger.meta +8 -0
  787. package/Samples~/Tutorial -basic-/Materials/ZBias_0.mat +27 -0
  788. package/Samples~/Tutorial -basic-/Materials/ZBias_0.mat.meta +8 -0
  789. package/Samples~/Tutorial -basic-/Materials/ZBias_minus10.mat +27 -0
  790. package/Samples~/Tutorial -basic-/Materials/ZBias_minus10.mat.meta +8 -0
  791. package/Samples~/Tutorial -basic-/Materials.meta +8 -0
  792. package/Samples~/Tutorial -basic-/Movie.meta +8 -0
  793. package/Samples~/Tutorial -basic-/Scenes/10_HEOParticle.unity +1264 -0
  794. package/Samples~/Tutorial -basic-/Scenes/10_HEOParticle.unity.meta +7 -0
  795. package/Samples~/Tutorial -basic-/Scenes/11_HEOUVScroller.unity +2603 -0
  796. package/Samples~/Tutorial -basic-/Scenes/11_HEOUVScroller.unity.meta +7 -0
  797. package/Samples~/Tutorial -basic-/Scenes/12_HEOShowFlag.unity +1768 -0
  798. package/Samples~/Tutorial -basic-/Scenes/12_HEOShowFlag.unity.meta +7 -0
  799. package/Samples~/Tutorial -basic-/Scenes/13_HEOMeshCollider.unity +1752 -0
  800. package/Samples~/Tutorial -basic-/Scenes/13_HEOMeshCollider.unity.meta +7 -0
  801. package/Samples~/Tutorial -basic-/Scenes/14_HEOLODLevel.unity +1584 -0
  802. package/Samples~/Tutorial -basic-/Scenes/14_HEOLODLevel.unity.meta +7 -0
  803. package/Samples~/Tutorial -basic-/Scenes/1_EssentialObjects.unity +734 -0
  804. package/Samples~/{Tutorial/EssentialObjects.unity.meta → Tutorial -basic-/Scenes/1_EssentialObjects.unity.meta} +0 -0
  805. package/Samples~/Tutorial -basic-/Scenes/2_EditSkybox.unity +866 -0
  806. package/Samples~/{Tutorial/EditSkybox.unity.meta → Tutorial -basic-/Scenes/2_EditSkybox.unity.meta} +0 -0
  807. package/Samples~/Tutorial -basic-/Scenes/3_HEOPlane.unity +2331 -0
  808. package/Samples~/Tutorial -basic-/Scenes/3_HEOPlane.unity.meta +7 -0
  809. package/Samples~/Tutorial -basic-/Scenes/4_HEOTextPlane.unity +3677 -0
  810. package/Samples~/Tutorial -basic-/Scenes/4_HEOTextPlane.unity.meta +7 -0
  811. package/Samples~/Tutorial -basic-/Scenes/5_HEOAudio.unity +1450 -0
  812. package/Samples~/Tutorial -basic-/Scenes/5_HEOAudio.unity.meta +7 -0
  813. package/Samples~/Tutorial -basic-/Scenes/6_HEOVideoTrigger.unity +1954 -0
  814. package/Samples~/Tutorial -basic-/Scenes/6_HEOVideoTrigger.unity.meta +7 -0
  815. package/Samples~/Tutorial -basic-/Scenes/7_HEOObject.unity +1272 -0
  816. package/Samples~/Tutorial -basic-/Scenes/7_HEOObject.unity.meta +7 -0
  817. package/Samples~/Tutorial -basic-/Scenes/8_HEOAreaCollider.unity +1474 -0
  818. package/Samples~/Tutorial -basic-/Scenes/8_HEOAreaCollider.unity.meta +7 -0
  819. package/Samples~/Tutorial -basic-/Scenes/9_HEOAnimation.unity +2000 -0
  820. package/Samples~/Tutorial -basic-/Scenes/9_HEOAnimation.unity.meta +7 -0
  821. package/Samples~/Tutorial -basic-/Scenes.meta +8 -0
  822. package/Samples~/Tutorial -basic-/Sound.meta +8 -0
  823. package/Samples~/Tutorial -basic-/Textures/AboutObjectsToBuild.png +0 -0
  824. package/Samples~/Tutorial -basic-/Textures/AboutObjectsToBuild.png.meta +116 -0
  825. package/Samples~/Tutorial -basic-/Textures/AboutSkybox.png +0 -0
  826. package/Samples~/Tutorial -basic-/Textures/AboutSkybox.png.meta +116 -0
  827. package/Samples~/Tutorial -basic-/Textures/Alpha_OFF_Billboard_OFF.png +0 -0
  828. package/Samples~/Tutorial -basic-/Textures/Alpha_OFF_Billboard_OFF.png.meta +116 -0
  829. package/Samples~/Tutorial -basic-/Textures/Alpha_ON_Billboard_OFF.png +0 -0
  830. package/Samples~/Tutorial -basic-/Textures/Alpha_ON_Billboard_OFF.png.meta +116 -0
  831. package/Samples~/Tutorial -basic-/Textures/Alpha_ON_Billboard_ON.png +0 -0
  832. package/Samples~/Tutorial -basic-/Textures/Alpha_ON_Billboard_ON.png.meta +116 -0
  833. package/Samples~/Tutorial -basic-/Textures/Color_00FF00.png +0 -0
  834. package/Samples~/Tutorial -basic-/Textures/Color_00FF00.png.meta +116 -0
  835. package/Samples~/Tutorial -basic-/Textures/Color_FF0000.png +0 -0
  836. package/Samples~/Tutorial -basic-/Textures/Color_FF0000.png.meta +116 -0
  837. package/Samples~/Tutorial -basic-/Textures/EssentialComponentList.png +0 -0
  838. package/Samples~/Tutorial -basic-/Textures/EssentialComponentList.png.meta +116 -0
  839. package/Samples~/Tutorial -basic-/Textures/FontSize128_TexSize1024.png +0 -0
  840. package/Samples~/Tutorial -basic-/Textures/FontSize128_TexSize1024.png.meta +116 -0
  841. package/Samples~/Tutorial -basic-/Textures/FontSize128_TexSize512.png +0 -0
  842. package/Samples~/Tutorial -basic-/Textures/FontSize128_TexSize512.png.meta +116 -0
  843. package/Samples~/Tutorial -basic-/Textures/FontSize256_TexSize512.png +0 -0
  844. package/Samples~/Tutorial -basic-/Textures/FontSize256_TexSize512.png.meta +116 -0
  845. package/Samples~/Tutorial -basic-/Textures/FontSize256_TextureSize1024.png +0 -0
  846. package/Samples~/Tutorial -basic-/Textures/FontSize256_TextureSize1024.png.meta +116 -0
  847. package/Samples~/Tutorial -basic-/Textures/HEOActionTrigger/AboutHEOActionTrigger.png +0 -0
  848. package/Samples~/Tutorial -basic-/Textures/HEOActionTrigger/AboutHEOActionTrigger.png.meta +116 -0
  849. package/Samples~/Tutorial -basic-/Textures/HEOActionTrigger.meta +8 -0
  850. package/Samples~/Tutorial -basic-/Textures/HEOAnimation/AboutHEOAnimation.png +0 -0
  851. package/Samples~/Tutorial -basic-/Textures/HEOAnimation/AboutHEOAnimation.png.meta +116 -0
  852. package/Samples~/Tutorial -basic-/Textures/HEOAnimation/Rotate001.png +0 -0
  853. package/Samples~/Tutorial -basic-/Textures/HEOAnimation/Rotate001.png.meta +116 -0
  854. package/Samples~/Tutorial -basic-/Textures/HEOAnimation/Rotate010.png +0 -0
  855. package/Samples~/Tutorial -basic-/Textures/HEOAnimation/Rotate010.png.meta +116 -0
  856. package/Samples~/Tutorial -basic-/Textures/HEOAnimation/Rotate100.png +0 -0
  857. package/Samples~/Tutorial -basic-/Textures/HEOAnimation/Rotate100.png.meta +116 -0
  858. package/Samples~/Tutorial -basic-/Textures/HEOAnimation.meta +8 -0
  859. package/Samples~/Tutorial -basic-/Textures/HEOAreaCollider/AboutHEOAreaCollider.png +0 -0
  860. package/Samples~/Tutorial -basic-/Textures/HEOAreaCollider/AboutHEOAreaCollider.png.meta +116 -0
  861. package/Samples~/Tutorial -basic-/Textures/HEOAreaCollider.meta +8 -0
  862. package/Samples~/Tutorial -basic-/Textures/HEOAudio/AboutHEOAudio.png +0 -0
  863. package/Samples~/Tutorial -basic-/Textures/HEOAudio/AboutHEOAudio.png.meta +116 -0
  864. package/Samples~/Tutorial -basic-/Textures/HEOAudio.meta +8 -0
  865. package/Samples~/Tutorial -basic-/Textures/HEOCollider/AboutHEOCollider.png +0 -0
  866. package/Samples~/Tutorial -basic-/Textures/HEOCollider/AboutHEOCollider.png.meta +116 -0
  867. package/Samples~/Tutorial -basic-/Textures/HEOCollider.meta +8 -0
  868. package/Samples~/Tutorial -basic-/Textures/HEOField/AboutHEOField.png +0 -0
  869. package/Samples~/Tutorial -basic-/Textures/HEOField/AboutHEOField.png.meta +116 -0
  870. package/Samples~/Tutorial -basic-/Textures/HEOField.meta +8 -0
  871. package/Samples~/Tutorial -basic-/Textures/HEOLODLevel/AboutHEOLODLevel.png +0 -0
  872. package/Samples~/Tutorial -basic-/Textures/HEOLODLevel/AboutHEOLODLevel.png.meta +116 -0
  873. package/Samples~/Tutorial -basic-/Textures/HEOLODLevel.meta +8 -0
  874. package/Samples~/Tutorial -basic-/Textures/HEOMeshCollider/AboutHEOMeshCollider.png +0 -0
  875. package/Samples~/Tutorial -basic-/Textures/HEOMeshCollider/AboutHEOMeshCollider.png.meta +116 -0
  876. package/Samples~/Tutorial -basic-/Textures/HEOMeshCollider.meta +8 -0
  877. package/Samples~/Tutorial -basic-/Textures/HEOObject/AboutHEOObject.png +0 -0
  878. package/Samples~/Tutorial -basic-/Textures/HEOObject/AboutHEOObject.png.meta +116 -0
  879. package/Samples~/Tutorial -basic-/Textures/HEOObject.meta +8 -0
  880. package/Samples~/Tutorial -basic-/Textures/HEOParticle/AboutHEOParticle.png +0 -0
  881. package/Samples~/Tutorial -basic-/Textures/HEOParticle/AboutHEOParticle.png.meta +116 -0
  882. package/Samples~/Tutorial -basic-/Textures/HEOParticle.meta +8 -0
  883. package/Samples~/Tutorial -basic-/Textures/HEOPlane/AboutHEOPlane.png +0 -0
  884. package/Samples~/Tutorial -basic-/Textures/HEOPlane/AboutHEOPlane.png.meta +116 -0
  885. package/Samples~/Tutorial -basic-/Textures/HEOPlane.meta +8 -0
  886. package/Samples~/Tutorial -basic-/Textures/HEOPlayer/AboutHEOPlayer.png +0 -0
  887. package/Samples~/Tutorial -basic-/Textures/HEOPlayer/AboutHEOPlayer.png.meta +116 -0
  888. package/Samples~/Tutorial -basic-/Textures/HEOPlayer.meta +8 -0
  889. package/Samples~/Tutorial -basic-/Textures/HEOShowFlag/AboutHEOShowFlag.png +0 -0
  890. package/Samples~/Tutorial -basic-/Textures/HEOShowFlag/AboutHEOShowFlag.png.meta +116 -0
  891. package/Samples~/Tutorial -basic-/Textures/HEOShowFlag.meta +8 -0
  892. package/Samples~/Tutorial -basic-/Textures/HEOTextPlane/AboutHEOTextPlane.png +0 -0
  893. package/Samples~/Tutorial -basic-/Textures/HEOTextPlane/AboutHEOTextPlane.png.meta +116 -0
  894. package/Samples~/Tutorial -basic-/Textures/HEOTextPlane.meta +8 -0
  895. package/Samples~/Tutorial -basic-/Textures/HEOUVScroll/AboutHEOUVScroller.png +0 -0
  896. package/Samples~/Tutorial -basic-/Textures/HEOUVScroll/AboutHEOUVScroller.png.meta +116 -0
  897. package/Samples~/Tutorial -basic-/Textures/HEOUVScroll/UV_Wait0_Scroll2.png +0 -0
  898. package/Samples~/Tutorial -basic-/Textures/HEOUVScroll/UV_Wait0_Scroll2.png.meta +116 -0
  899. package/Samples~/Tutorial -basic-/Textures/HEOUVScroll/UV_Wait2_Scroll0.png +0 -0
  900. package/Samples~/Tutorial -basic-/Textures/HEOUVScroll/UV_Wait2_Scroll0.png.meta +116 -0
  901. package/Samples~/Tutorial -basic-/Textures/HEOUVScroll/UV_X00_Y05.png +0 -0
  902. package/Samples~/Tutorial -basic-/Textures/HEOUVScroll/UV_X00_Y05.png.meta +116 -0
  903. package/Samples~/Tutorial -basic-/Textures/HEOUVScroll/UV_X05_Y00.png +0 -0
  904. package/Samples~/Tutorial -basic-/Textures/HEOUVScroll/UV_X05_Y00.png.meta +116 -0
  905. package/Samples~/Tutorial -basic-/Textures/HEOUVScroll/UV_X05_Y05.png +0 -0
  906. package/Samples~/Tutorial -basic-/Textures/HEOUVScroll/UV_X05_Y05.png.meta +116 -0
  907. package/Samples~/Tutorial -basic-/Textures/HEOUVScroll.meta +8 -0
  908. package/Samples~/Tutorial -basic-/Textures/HEOVideoTrigger/AboutHEOVideoTrigger.png +0 -0
  909. package/Samples~/Tutorial -basic-/Textures/HEOVideoTrigger/AboutHEOVideoTrigger.png.meta +116 -0
  910. package/Samples~/Tutorial -basic-/Textures/HEOVideoTrigger/ActionTriggerStopVideo.png +0 -0
  911. package/Samples~/Tutorial -basic-/Textures/HEOVideoTrigger/ActionTriggerStopVideo.png.meta +116 -0
  912. package/Samples~/Tutorial -basic-/Textures/HEOVideoTrigger/VideoReadyTexture.png +0 -0
  913. package/Samples~/Tutorial -basic-/Textures/HEOVideoTrigger/VideoReadyTexture.png.meta +92 -0
  914. package/Samples~/Tutorial -basic-/Textures/HEOVideoTrigger/VideoTriggerAction.png +0 -0
  915. package/Samples~/Tutorial -basic-/Textures/HEOVideoTrigger/VideoTriggerAction.png.meta +116 -0
  916. package/Samples~/Tutorial -basic-/Textures/HEOVideoTrigger.meta +8 -0
  917. package/Samples~/Tutorial -basic-/Textures/Materials.meta +12 -0
  918. package/Samples~/Tutorial -basic-/Textures/TextColorRed.png +0 -0
  919. package/Samples~/Tutorial -basic-/Textures/TextColorRed.png.meta +116 -0
  920. package/Samples~/Tutorial -basic-/Textures/ZBias_0.png +0 -0
  921. package/Samples~/Tutorial -basic-/Textures/ZBias_0.png.meta +116 -0
  922. package/Samples~/Tutorial -basic-/Textures/ZBias_minus10.png +0 -0
  923. package/Samples~/Tutorial -basic-/Textures/ZBias_minus10.png.meta +116 -0
  924. package/Samples~/{Shading/Materials → Tutorial -basic-/Textures}/star_alpha.png +0 -0
  925. package/Samples~/Tutorial -basic-/Textures/star_alpha.png.meta +116 -0
  926. package/Samples~/Tutorial -basic-/Textures/uv_check.png +0 -0
  927. package/Samples~/Tutorial -basic-/Textures/uv_check.png.meta +92 -0
  928. package/Samples~/Tutorial -basic-/Textures.meta +8 -0
  929. package/Samples~/{Tutorial.meta → Tutorial -basic-.meta} +0 -0
  930. package/Samples~/Tutorial -particle-.meta +8 -0
  931. package/Samples~/Tutorial -shading-/HEORefrectionProbe/HEOReflectionObjects.heo +0 -0
  932. package/Samples~/Tutorial -shading-/HEORefrectionProbe/HEOReflectionObjects.heo.meta +11 -0
  933. package/Samples~/Tutorial -shading-/HEORefrectionProbe/HEOReflectionObjects_astc.bat +12 -0
  934. package/Samples~/Tutorial -shading-/HEORefrectionProbe/HEOReflectionObjects_astc.bat.meta +7 -0
  935. package/Samples~/Tutorial -shading-/HEORefrectionProbe/HEOReflectionObjects_dxt.bat +19 -0
  936. package/Samples~/Tutorial -shading-/HEORefrectionProbe/HEOReflectionObjects_dxt.bat.meta +7 -0
  937. package/Samples~/Tutorial -shading-/HEORefrectionProbe/HEOReflectionObjects_etc2.bat +13 -0
  938. package/Samples~/Tutorial -shading-/HEORefrectionProbe/HEOReflectionObjects_etc2.bat.meta +7 -0
  939. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex/000.png +0 -0
  940. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex/000.png.meta +80 -0
  941. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex.meta +8 -0
  942. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex_reflection_cube/000/reflection_cube_0.png +0 -0
  943. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex_reflection_cube/000/reflection_cube_0.png.meta +92 -0
  944. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex_reflection_cube/000/reflection_cube_1.png +0 -0
  945. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex_reflection_cube/000/reflection_cube_1.png.meta +92 -0
  946. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex_reflection_cube/000/reflection_cube_2.png +0 -0
  947. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex_reflection_cube/000/reflection_cube_2.png.meta +92 -0
  948. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex_reflection_cube/000/reflection_cube_3.png +0 -0
  949. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex_reflection_cube/000/reflection_cube_3.png.meta +92 -0
  950. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex_reflection_cube/000/reflection_cube_4.png +0 -0
  951. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex_reflection_cube/000/reflection_cube_4.png.meta +92 -0
  952. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex_reflection_cube/000/reflection_cube_5.png +0 -0
  953. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex_reflection_cube/000/reflection_cube_5.png.meta +92 -0
  954. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex_reflection_cube/000.meta +8 -0
  955. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex_reflection_cube.meta +8 -0
  956. package/Samples~/{Tutorial/EditSkybox/GradientBlue.png → Tutorial -shading-/HEORefrectionProbe/tex_sample/000_GradientBlue.png} +0 -0
  957. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex_sample/000_GradientBlue.png.meta +92 -0
  958. package/Samples~/Tutorial -shading-/HEORefrectionProbe/tex_sample.meta +8 -0
  959. package/Samples~/Tutorial -shading-/HEORefrectionProbe.meta +8 -0
  960. package/Samples~/{Shading/Materials.unity → Tutorial -shading-/MaterialTestview.unity} +0 -0
  961. package/Samples~/{Shading/Materials.unity.meta → Tutorial -shading-/MaterialTestview.unity.meta} +0 -0
  962. package/Samples~/{Shading → Tutorial -shading-}/Materials/LightingData.asset +0 -0
  963. package/Samples~/{Shading → Tutorial -shading-}/Materials/LightingData.asset.meta +0 -0
  964. package/Samples~/{Shading → Tutorial -shading-}/Materials/ReflectionProbe-0.exr +0 -0
  965. package/Samples~/{Shading → Tutorial -shading-}/Materials/ReflectionProbe-0.exr.meta +0 -0
  966. package/Samples~/{Shading → Tutorial -shading-}/Materials/Standard_AO.mat +0 -0
  967. package/Samples~/{Shading → Tutorial -shading-}/Materials/Standard_AO.mat.meta +0 -0
  968. package/Samples~/{Shading → Tutorial -shading-}/Materials/TexImportSetting.asset +0 -0
  969. package/Samples~/{Shading → Tutorial -shading-}/Materials/TexImportSetting.asset.meta +0 -0
  970. package/Samples~/{Shading → Tutorial -shading-}/Materials/star.png +0 -0
  971. package/Samples~/Tutorial -shading-/Materials/star.png.meta +116 -0
  972. package/Samples~/{Shading → Tutorial -shading-}/Materials/test_alpha.png +0 -0
  973. package/Samples~/Tutorial -shading-/Materials/test_alpha.png.meta +116 -0
  974. package/Samples~/{Shading → Tutorial -shading-}/Materials/test_alpha2.png +0 -0
  975. package/Samples~/Tutorial -shading-/Materials/test_alpha2.png.meta +116 -0
  976. package/Samples~/{Shading → Tutorial -shading-}/Materials.meta +0 -0
  977. package/Samples~/Tutorial -shading-/ReflectionProbe/LightingData.asset +0 -0
  978. package/Samples~/Tutorial -shading-/ReflectionProbe/LightingData.asset.meta +8 -0
  979. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_M0_S0.mat +77 -0
  980. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_M0_S0.mat.meta +8 -0
  981. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_M0_S100.mat +77 -0
  982. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_M0_S100.mat.meta +8 -0
  983. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_M0_S50.mat +77 -0
  984. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_M0_S50.mat.meta +8 -0
  985. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_M100_S0.mat +77 -0
  986. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_M100_S0.mat.meta +8 -0
  987. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_M100_S100.mat +77 -0
  988. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_M100_S100.mat.meta +8 -0
  989. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_M100_S50.mat +77 -0
  990. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_M100_S50.mat.meta +8 -0
  991. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_M50_S0.mat +77 -0
  992. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_M50_S0.mat.meta +8 -0
  993. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_M50_S100.mat +77 -0
  994. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_M50_S100.mat.meta +8 -0
  995. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_M50_S50.mat +77 -0
  996. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_M50_S50.mat.meta +8 -0
  997. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_RefrectionTarget.mat +77 -0
  998. package/Samples~/Tutorial -shading-/ReflectionProbe/Mt_RefrectionTarget.mat.meta +8 -0
  999. package/Samples~/Tutorial -shading-/ReflectionProbe/ReflectionProbe-0.exr +0 -0
  1000. package/Samples~/Tutorial -shading-/ReflectionProbe/ReflectionProbe-0.exr.meta +92 -0
  1001. package/Samples~/Tutorial -shading-/ReflectionProbe/TexImportSetting.asset +74 -0
  1002. package/Samples~/Tutorial -shading-/ReflectionProbe/TexImportSetting.asset.meta +8 -0
  1003. package/Samples~/Tutorial -shading-/ReflectionProbe.meta +8 -0
  1004. package/Samples~/Tutorial -shading-/ReflectionProbe.unity +2643 -0
  1005. package/Samples~/Tutorial -shading-/ReflectionProbe.unity.meta +7 -0
  1006. package/Samples~/Tutorial -shading-.meta +8 -0
  1007. package/Samples~/TutorialResources/FakeSkybox/GradientBlue.png +0 -0
  1008. package/Samples~/{Tutorial/EditSkybox → TutorialResources/FakeSkybox}/GradientBlue.png.meta +0 -0
  1009. package/Samples~/{Tutorial/EditSkybox → TutorialResources/FakeSkybox}/SimpleSky.mat +0 -0
  1010. package/Samples~/{Tutorial/EditSkybox → TutorialResources/FakeSkybox}/SimpleSky.mat.meta +0 -0
  1011. package/Samples~/{Tutorial/EditSkybox → TutorialResources/FakeSkybox}/skybox.fbx +0 -0
  1012. package/Samples~/{Tutorial/EditSkybox → TutorialResources/FakeSkybox}/skybox.fbx.meta +0 -0
  1013. package/Samples~/{Tutorial/EditSkybox.meta → TutorialResources/FakeSkybox.meta} +0 -0
  1014. package/Samples~/TutorialResources/Textures/Information.png +0 -0
  1015. package/Samples~/TutorialResources/Textures/Information.png.meta +116 -0
  1016. package/Samples~/TutorialResources/Textures/Materials/Information.mat +27 -0
  1017. package/Samples~/TutorialResources/Textures/Materials/Information.mat.meta +8 -0
  1018. package/Samples~/TutorialResources/Textures/Materials/roundframe.mat +27 -0
  1019. package/Samples~/TutorialResources/Textures/Materials/roundframe.mat.meta +8 -0
  1020. package/Samples~/TutorialResources/Textures/Materials/roundsquare.mat +27 -0
  1021. package/Samples~/TutorialResources/Textures/Materials/roundsquare.mat.meta +8 -0
  1022. package/Samples~/TutorialResources/Textures/Materials.meta +8 -0
  1023. package/Samples~/TutorialResources/Textures/fadecircle.png +0 -0
  1024. package/Samples~/TutorialResources/Textures/fadecircle.png.meta +116 -0
  1025. package/Samples~/TutorialResources/Textures/roundframe.png +0 -0
  1026. package/Samples~/TutorialResources/Textures/roundframe.png.meta +116 -0
  1027. package/Samples~/TutorialResources/Textures/roundframe_gray.png +0 -0
  1028. package/Samples~/TutorialResources/Textures/roundframe_gray.png.meta +116 -0
  1029. package/Samples~/TutorialResources/Textures/roundsquare.png +0 -0
  1030. package/Samples~/TutorialResources/Textures/roundsquare.png.meta +116 -0
  1031. package/Samples~/TutorialResources/Textures.meta +8 -0
  1032. package/Samples~/TutorialResources.meta +8 -0
  1033. package/ServerLauncher/app.meta +8 -8
  1034. package/ServerLauncher/sh/LocalServerLauncher.sh +1 -4
  1035. package/package.json +35 -6
  1036. package/PackageResources/data/TempSave.json +0 -184
  1037. package/PackageResources/data/TempSave.json.meta +0 -7
  1038. package/PackageResources/data/movie/test.mp4 +0 -0
  1039. package/PackageResources/data/movie/test.mp4.meta +0 -18
  1040. package/PackageResources/data/movie.meta +0 -8
  1041. package/PackageResources/project~/data/HeliScript/_system.hs +0 -572
  1042. package/PackageResources/project~/data/Script/_system.hs +0 -498
  1043. package/PackageResources/project~/data/Sound/aqua.mp3 +0 -0
  1044. package/PackageResources/project~/data/Video/vket6.mp4 +0 -0
  1045. package/PackageResources/project~/data/gui/config/setting/config_setting_base.png +0 -0
  1046. package/PackageResources/project~/data/gui/config/setting/config_setting_base_en.png +0 -0
  1047. package/PackageResources/project~/data/licenselist.html +0 -42
  1048. package/PackageResources/tools/HEOTexComp/HEOTexComp.sln +0 -31
  1049. package/PackageResources/tools/HEOTexComp/HEOTexComp.sln.meta +0 -7
  1050. package/PackageResources/tools/VRMScrambler/Run/VRMScrambler.exe +0 -0
  1051. package/PackageResources/tools/VRMScrambler/Run/VRMScrambler.exe.meta +0 -7
  1052. package/PackageResources/tools/VRMScrambler/Run.meta +0 -8
  1053. package/PackageResources/tools/VRMScrambler/Source/Independent/CGDecoder/CDecodePNG.cpp +0 -503
  1054. package/PackageResources/tools/VRMScrambler/Source/Independent/CGDecoder/CDecodePNG.cpp.meta +0 -27
  1055. package/PackageResources/tools/VRMScrambler/Source/Independent/CGDecoder/CDecodePNG.h +0 -28
  1056. package/PackageResources/tools/VRMScrambler/Source/Independent/CGDecoder/CDecodePNG.h.meta +0 -27
  1057. package/PackageResources/tools/VRMScrambler/Source/Independent/CGDecoder/ECGFormat.h +0 -19
  1058. package/PackageResources/tools/VRMScrambler/Source/Independent/CGDecoder/ECGFormat.h.meta +0 -27
  1059. package/PackageResources/tools/VRMScrambler/Source/Independent/CGDecoder.meta +0 -8
  1060. package/PackageResources/tools/VRMScrambler/Source/Independent/CharacterCode/CharacterCode.cpp +0 -7539
  1061. package/PackageResources/tools/VRMScrambler/Source/Independent/CharacterCode/CharacterCode.cpp.meta +0 -27
  1062. package/PackageResources/tools/VRMScrambler/Source/Independent/CharacterCode/CharacterCode.h +0 -30
  1063. package/PackageResources/tools/VRMScrambler/Source/Independent/CharacterCode/CharacterCode.h.meta +0 -27
  1064. package/PackageResources/tools/VRMScrambler/Source/Independent/CharacterCode/IsCode.h +0 -18
  1065. package/PackageResources/tools/VRMScrambler/Source/Independent/CharacterCode/IsCode.h.meta +0 -27
  1066. package/PackageResources/tools/VRMScrambler/Source/Independent/CharacterCode.meta +0 -8
  1067. package/PackageResources/tools/VRMScrambler/Source/Independent/FileImage/CFileImageAnalyser.cpp +0 -292
  1068. package/PackageResources/tools/VRMScrambler/Source/Independent/FileImage/CFileImageAnalyser.cpp.meta +0 -27
  1069. package/PackageResources/tools/VRMScrambler/Source/Independent/FileImage/CFileImageAnalyser.h +0 -62
  1070. package/PackageResources/tools/VRMScrambler/Source/Independent/FileImage/CFileImageAnalyser.h.meta +0 -27
  1071. package/PackageResources/tools/VRMScrambler/Source/Independent/FileImage/CFileImageMaker.cpp +0 -102
  1072. package/PackageResources/tools/VRMScrambler/Source/Independent/FileImage/CFileImageMaker.cpp.meta +0 -27
  1073. package/PackageResources/tools/VRMScrambler/Source/Independent/FileImage/CFileImageMaker.h +0 -39
  1074. package/PackageResources/tools/VRMScrambler/Source/Independent/FileImage/CFileImageMaker.h.meta +0 -27
  1075. package/PackageResources/tools/VRMScrambler/Source/Independent/FileImage/FileImage.cpp +0 -99
  1076. package/PackageResources/tools/VRMScrambler/Source/Independent/FileImage/FileImage.cpp.meta +0 -27
  1077. package/PackageResources/tools/VRMScrambler/Source/Independent/FileImage/FileImage.h +0 -21
  1078. package/PackageResources/tools/VRMScrambler/Source/Independent/FileImage/FileImage.h.meta +0 -27
  1079. package/PackageResources/tools/VRMScrambler/Source/Independent/FileImage.meta +0 -8
  1080. package/PackageResources/tools/VRMScrambler/Source/Independent/FormatString/FormatString.cpp +0 -198
  1081. package/PackageResources/tools/VRMScrambler/Source/Independent/FormatString/FormatString.cpp.meta +0 -27
  1082. package/PackageResources/tools/VRMScrambler/Source/Independent/FormatString/FormatString.h +0 -38
  1083. package/PackageResources/tools/VRMScrambler/Source/Independent/FormatString/FormatString.h.meta +0 -27
  1084. package/PackageResources/tools/VRMScrambler/Source/Independent/FormatString/LFormat.cpp +0 -34
  1085. package/PackageResources/tools/VRMScrambler/Source/Independent/FormatString/LFormat.cpp.meta +0 -27
  1086. package/PackageResources/tools/VRMScrambler/Source/Independent/FormatString/LFormat.h +0 -14
  1087. package/PackageResources/tools/VRMScrambler/Source/Independent/FormatString/LFormat.h.meta +0 -27
  1088. package/PackageResources/tools/VRMScrambler/Source/Independent/FormatString.meta +0 -8
  1089. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFAccesorIndexSet.cpp +0 -53
  1090. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFAccesorIndexSet.cpp.meta +0 -27
  1091. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFAccesorIndexSet.h +0 -30
  1092. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFAccesorIndexSet.h.meta +0 -27
  1093. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFAccessor.cpp +0 -47
  1094. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFAccessor.cpp.meta +0 -27
  1095. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFAccessor.h +0 -29
  1096. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFAccessor.h.meta +0 -27
  1097. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFBufferView.cpp +0 -58
  1098. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFBufferView.cpp.meta +0 -27
  1099. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFBufferView.h +0 -36
  1100. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFBufferView.h.meta +0 -27
  1101. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFChunk.cpp +0 -31
  1102. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFChunk.cpp.meta +0 -27
  1103. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFChunk.h +0 -23
  1104. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFChunk.h.meta +0 -27
  1105. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFCollider.cpp +0 -34
  1106. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFCollider.cpp.meta +0 -27
  1107. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFCollider.h +0 -24
  1108. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFCollider.h.meta +0 -27
  1109. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFColliderGroup.cpp +0 -34
  1110. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFColliderGroup.cpp.meta +0 -27
  1111. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFColliderGroup.h +0 -27
  1112. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFColliderGroup.h.meta +0 -27
  1113. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFData.cpp +0 -1124
  1114. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFData.cpp.meta +0 -27
  1115. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFData.h +0 -159
  1116. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFData.h.meta +0 -27
  1117. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFImage.cpp +0 -55
  1118. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFImage.cpp.meta +0 -27
  1119. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFImage.h +0 -37
  1120. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFImage.h.meta +0 -27
  1121. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFMaterial.cpp +0 -99
  1122. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFMaterial.cpp.meta +0 -27
  1123. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFMaterial.h +0 -57
  1124. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFMaterial.h.meta +0 -27
  1125. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFMesh.cpp +0 -27
  1126. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFMesh.cpp.meta +0 -27
  1127. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFMesh.h +0 -24
  1128. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFMesh.h.meta +0 -27
  1129. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFMeshPrimitive.cpp +0 -76
  1130. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFMeshPrimitive.cpp.meta +0 -27
  1131. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFMeshPrimitive.h +0 -43
  1132. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFMeshPrimitive.h.meta +0 -27
  1133. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFNode.cpp +0 -67
  1134. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFNode.cpp.meta +0 -27
  1135. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFNode.h +0 -40
  1136. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFNode.h.meta +0 -27
  1137. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFSkin.cpp +0 -25
  1138. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFSkin.cpp.meta +0 -27
  1139. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFSkin.h +0 -23
  1140. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF/CGLTFSkin.h.meta +0 -27
  1141. package/PackageResources/tools/VRMScrambler/Source/Independent/GLTF.meta +0 -8
  1142. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/CPBRParam.cpp +0 -30
  1143. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/CPBRParam.cpp.meta +0 -27
  1144. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/CPBRParam.h +0 -22
  1145. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/CPBRParam.h.meta +0 -27
  1146. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/CSurface.cpp +0 -698
  1147. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/CSurface.cpp.meta +0 -27
  1148. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/CSurface.h +0 -96
  1149. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/CSurface.h.meta +0 -27
  1150. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/CUTSParam.cpp +0 -36
  1151. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/CUTSParam.cpp.meta +0 -27
  1152. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/CUTSParam.h +0 -28
  1153. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/CUTSParam.h.meta +0 -27
  1154. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/CWaterPlaneParam.cpp +0 -61
  1155. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/CWaterPlaneParam.cpp.meta +0 -27
  1156. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/CWaterPlaneParam.h +0 -37
  1157. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/CWaterPlaneParam.h.meta +0 -27
  1158. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/EBlendMode.h +0 -23
  1159. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/EBlendMode.h.meta +0 -27
  1160. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/EOutlineWidthType.h +0 -11
  1161. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/EOutlineWidthType.h.meta +0 -27
  1162. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/EShaderType.h +0 -22
  1163. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon/EShaderType.h.meta +0 -27
  1164. package/PackageResources/tools/VRMScrambler/Source/Independent/GraphCommon.meta +0 -8
  1165. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOBoneWeight.cpp +0 -29
  1166. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOBoneWeight.cpp.meta +0 -27
  1167. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOBoneWeight.h +0 -23
  1168. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOBoneWeight.h.meta +0 -27
  1169. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOCollider.cpp +0 -35
  1170. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOCollider.cpp.meta +0 -27
  1171. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOCollider.h +0 -27
  1172. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOCollider.h.meta +0 -27
  1173. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOMaterial.cpp +0 -120
  1174. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOMaterial.cpp.meta +0 -27
  1175. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOMaterial.h +0 -66
  1176. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOMaterial.h.meta +0 -27
  1177. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOMesh.cpp +0 -103
  1178. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOMesh.cpp.meta +0 -27
  1179. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOMesh.h +0 -68
  1180. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOMesh.h.meta +0 -27
  1181. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOModel.cpp +0 -598
  1182. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOModel.cpp.meta +0 -27
  1183. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOModel.h +0 -60
  1184. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOModel.h.meta +0 -27
  1185. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOMorph.cpp +0 -29
  1186. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOMorph.cpp.meta +0 -27
  1187. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOMorph.h +0 -26
  1188. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOMorph.h.meta +0 -27
  1189. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEONode.cpp +0 -61
  1190. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEONode.cpp.meta +0 -27
  1191. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEONode.h +0 -49
  1192. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEONode.h.meta +0 -27
  1193. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOPrimitive.cpp +0 -35
  1194. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOPrimitive.cpp.meta +0 -27
  1195. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOPrimitive.h +0 -27
  1196. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOPrimitive.h.meta +0 -27
  1197. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOTexture.cpp +0 -25
  1198. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOTexture.cpp.meta +0 -27
  1199. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOTexture.h +0 -25
  1200. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/CHEOTexture.h.meta +0 -27
  1201. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/EHEOBlendMode.h +0 -16
  1202. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/EHEOBlendMode.h.meta +0 -27
  1203. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/EHEOColliderType.h +0 -16
  1204. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/EHEOColliderType.h.meta +0 -27
  1205. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/EHEOShaderType.h +0 -22
  1206. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO/EHEOShaderType.h.meta +0 -27
  1207. package/PackageResources/tools/VRMScrambler/Source/Independent/HEO.meta +0 -8
  1208. package/PackageResources/tools/VRMScrambler/Source/Independent/JSON/CJSON.cpp +0 -391
  1209. package/PackageResources/tools/VRMScrambler/Source/Independent/JSON/CJSON.cpp.meta +0 -27
  1210. package/PackageResources/tools/VRMScrambler/Source/Independent/JSON/CJSON.h +0 -56
  1211. package/PackageResources/tools/VRMScrambler/Source/Independent/JSON/CJSON.h.meta +0 -27
  1212. package/PackageResources/tools/VRMScrambler/Source/Independent/JSON/CJSONData.cpp +0 -177
  1213. package/PackageResources/tools/VRMScrambler/Source/Independent/JSON/CJSONData.cpp.meta +0 -27
  1214. package/PackageResources/tools/VRMScrambler/Source/Independent/JSON/CJSONData.h +0 -73
  1215. package/PackageResources/tools/VRMScrambler/Source/Independent/JSON/CJSONData.h.meta +0 -27
  1216. package/PackageResources/tools/VRMScrambler/Source/Independent/JSON/CJSONToken.cpp +0 -45
  1217. package/PackageResources/tools/VRMScrambler/Source/Independent/JSON/CJSONToken.cpp.meta +0 -27
  1218. package/PackageResources/tools/VRMScrambler/Source/Independent/JSON/CJSONToken.h +0 -30
  1219. package/PackageResources/tools/VRMScrambler/Source/Independent/JSON/CJSONToken.h.meta +0 -27
  1220. package/PackageResources/tools/VRMScrambler/Source/Independent/JSON.meta +0 -8
  1221. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/3DDefine.h +0 -16
  1222. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/3DDefine.h.meta +0 -27
  1223. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CBezier.cpp +0 -48
  1224. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CBezier.cpp.meta +0 -27
  1225. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CBezier.h +0 -24
  1226. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CBezier.h.meta +0 -27
  1227. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CBoundingBox.cpp +0 -122
  1228. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CBoundingBox.cpp.meta +0 -27
  1229. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CBoundingBox.h +0 -50
  1230. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CBoundingBox.h.meta +0 -27
  1231. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CCamera.cpp +0 -127
  1232. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CCamera.cpp.meta +0 -27
  1233. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CCamera.h +0 -54
  1234. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CCamera.h.meta +0 -27
  1235. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CDualQuaternion.cpp +0 -116
  1236. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CDualQuaternion.cpp.meta +0 -27
  1237. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CDualQuaternion.h +0 -44
  1238. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CDualQuaternion.h.meta +0 -27
  1239. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CProjection.cpp +0 -171
  1240. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CProjection.cpp.meta +0 -27
  1241. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CProjection.h +0 -57
  1242. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CProjection.h.meta +0 -27
  1243. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CSphere.cpp +0 -65
  1244. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CSphere.cpp.meta +0 -27
  1245. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CSphere.h +0 -29
  1246. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CSphere.h.meta +0 -27
  1247. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CTransform.cpp +0 -59
  1248. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CTransform.cpp.meta +0 -27
  1249. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CTransform.h +0 -35
  1250. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/CTransform.h.meta +0 -27
  1251. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/S2D.cpp +0 -87
  1252. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/S2D.cpp.meta +0 -27
  1253. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/S2D.h +0 -36
  1254. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/S2D.h.meta +0 -27
  1255. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/S2DI.cpp +0 -87
  1256. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/S2DI.cpp.meta +0 -27
  1257. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/S2DI.h +0 -38
  1258. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/S2DI.h.meta +0 -27
  1259. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/S3D.cpp +0 -320
  1260. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/S3D.cpp.meta +0 -27
  1261. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/S3D.h +0 -87
  1262. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/S3D.h.meta +0 -27
  1263. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/S4D.cpp +0 -95
  1264. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/S4D.cpp.meta +0 -27
  1265. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/S4D.h +0 -30
  1266. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/S4D.h.meta +0 -27
  1267. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SColor.cpp +0 -107
  1268. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SColor.cpp.meta +0 -27
  1269. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SColor.h +0 -39
  1270. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SColor.h.meta +0 -27
  1271. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SColor32.cpp +0 -35
  1272. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SColor32.cpp.meta +0 -27
  1273. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SColor32.h +0 -25
  1274. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SColor32.h.meta +0 -27
  1275. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SMatrix.cpp +0 -683
  1276. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SMatrix.cpp.meta +0 -27
  1277. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SMatrix.h +0 -210
  1278. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SMatrix.h.meta +0 -27
  1279. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SPlane.cpp +0 -239
  1280. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SPlane.cpp.meta +0 -27
  1281. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SPlane.h +0 -42
  1282. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SPlane.h.meta +0 -27
  1283. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SQuaternion.cpp +0 -557
  1284. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SQuaternion.cpp.meta +0 -27
  1285. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SQuaternion.h +0 -67
  1286. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SQuaternion.h.meta +0 -27
  1287. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SRect.cpp +0 -66
  1288. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SRect.cpp.meta +0 -27
  1289. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SRect.h +0 -28
  1290. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SRect.h.meta +0 -27
  1291. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SSize.cpp +0 -33
  1292. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SSize.cpp.meta +0 -27
  1293. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SSize.h +0 -18
  1294. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SSize.h.meta +0 -27
  1295. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SUV.cpp +0 -59
  1296. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SUV.cpp.meta +0 -27
  1297. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SUV.h +0 -24
  1298. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D/SUV.h.meta +0 -27
  1299. package/PackageResources/tools/VRMScrambler/Source/Independent/Math3D.meta +0 -8
  1300. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory/CIMemory.cpp +0 -74
  1301. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory/CIMemory.cpp.meta +0 -27
  1302. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory/CIMemory.h +0 -38
  1303. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory/CIMemory.h.meta +0 -27
  1304. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory/CMemory.cpp +0 -64
  1305. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory/CMemory.cpp.meta +0 -27
  1306. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory/CMemory.h +0 -42
  1307. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory/CMemory.h.meta +0 -27
  1308. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory/CMemoryFile.cpp +0 -54
  1309. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory/CMemoryFile.cpp.meta +0 -27
  1310. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory/CMemoryFile.h +0 -22
  1311. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory/CMemoryFile.h.meta +0 -27
  1312. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory/CRefPtr.h +0 -72
  1313. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory/CRefPtr.h.meta +0 -27
  1314. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory/PointerAlignment.cpp +0 -61
  1315. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory/PointerAlignment.cpp.meta +0 -27
  1316. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory/PointerAlignment.h +0 -22
  1317. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory/PointerAlignment.h.meta +0 -27
  1318. package/PackageResources/tools/VRMScrambler/Source/Independent/Memory.meta +0 -8
  1319. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CCriticalLock.cpp +0 -34
  1320. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CCriticalLock.cpp.meta +0 -27
  1321. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CCriticalLock.h +0 -26
  1322. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CCriticalLock.h.meta +0 -27
  1323. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CCriticalObject.h +0 -87
  1324. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CCriticalObject.h.meta +0 -27
  1325. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CCriticalSection.cpp +0 -85
  1326. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CCriticalSection.cpp.meta +0 -27
  1327. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CCriticalSection.h +0 -32
  1328. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CCriticalSection.h.meta +0 -27
  1329. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CEvent.cpp +0 -183
  1330. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CEvent.cpp.meta +0 -27
  1331. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CEvent.h +0 -51
  1332. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CEvent.h.meta +0 -27
  1333. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CProcess.cpp +0 -48
  1334. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CProcess.cpp.meta +0 -27
  1335. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CProcess.h +0 -22
  1336. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CProcess.h.meta +0 -27
  1337. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CRefCounter.cpp +0 -54
  1338. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CRefCounter.cpp.meta +0 -27
  1339. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CRefCounter.h +0 -28
  1340. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CRefCounter.h.meta +0 -27
  1341. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CThread.cpp +0 -177
  1342. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CThread.cpp.meta +0 -27
  1343. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CThread.h +0 -53
  1344. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CThread.h.meta +0 -27
  1345. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CWorkerThread.h +0 -60
  1346. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CWorkerThread.h.meta +0 -27
  1347. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CWorkerThreadManager.cpp +0 -169
  1348. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CWorkerThreadManager.cpp.meta +0 -27
  1349. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CWorkerThreadManager.h +0 -61
  1350. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread/CWorkerThreadManager.h.meta +0 -27
  1351. package/PackageResources/tools/VRMScrambler/Source/Independent/Thread.meta +0 -8
  1352. package/PackageResources/tools/VRMScrambler/Source/Independent.meta +0 -8
  1353. package/PackageResources/tools/VRMScrambler/Source/Interface/IInterface.h +0 -14
  1354. package/PackageResources/tools/VRMScrambler/Source/Interface/IInterface.h.meta +0 -27
  1355. package/PackageResources/tools/VRMScrambler/Source/Interface/IMemory.h +0 -21
  1356. package/PackageResources/tools/VRMScrambler/Source/Interface/IMemory.h.meta +0 -27
  1357. package/PackageResources/tools/VRMScrambler/Source/Interface/ISurface.h +0 -27
  1358. package/PackageResources/tools/VRMScrambler/Source/Interface/ISurface.h.meta +0 -27
  1359. package/PackageResources/tools/VRMScrambler/Source/Interface/IWorkerThread.h +0 -15
  1360. package/PackageResources/tools/VRMScrambler/Source/Interface/IWorkerThread.h.meta +0 -27
  1361. package/PackageResources/tools/VRMScrambler/Source/Interface.meta +0 -8
  1362. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/LICENSE +0 -111
  1363. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/LICENSE.meta +0 -7
  1364. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/png.c +0 -4460
  1365. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/png.c.meta +0 -27
  1366. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/png.h +0 -3279
  1367. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/png.h.meta +0 -27
  1368. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngconf.h +0 -644
  1369. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngconf.h.meta +0 -27
  1370. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngdebug.h +0 -154
  1371. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngdebug.h.meta +0 -27
  1372. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngerror.c +0 -963
  1373. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngerror.c.meta +0 -27
  1374. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngget.c +0 -1213
  1375. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngget.c.meta +0 -27
  1376. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pnginfo.h +0 -260
  1377. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pnginfo.h.meta +0 -27
  1378. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pnglibconf.h +0 -210
  1379. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pnglibconf.h.meta +0 -27
  1380. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngmem.c +0 -281
  1381. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngmem.c.meta +0 -27
  1382. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngpread.c +0 -1168
  1383. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngpread.c.meta +0 -27
  1384. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngpriv.h +0 -1944
  1385. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngpriv.h.meta +0 -27
  1386. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngread.c +0 -4121
  1387. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngread.c.meta +0 -27
  1388. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngrio.c +0 -120
  1389. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngrio.c.meta +0 -27
  1390. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngrtran.c +0 -4994
  1391. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngrtran.c.meta +0 -27
  1392. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngrutil.c +0 -4474
  1393. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngrutil.c.meta +0 -27
  1394. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngset.c +0 -1611
  1395. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngset.c.meta +0 -27
  1396. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngstruct.h +0 -489
  1397. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngstruct.h.meta +0 -27
  1398. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngtrans.c +0 -849
  1399. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngtrans.c.meta +0 -27
  1400. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngwio.c +0 -168
  1401. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngwio.c.meta +0 -27
  1402. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngwrite.c +0 -2455
  1403. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngwrite.c.meta +0 -27
  1404. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngwtran.c +0 -574
  1405. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngwtran.c.meta +0 -27
  1406. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngwutil.c +0 -3029
  1407. package/PackageResources/tools/VRMScrambler/Source/Library/libpng/pngwutil.c.meta +0 -27
  1408. package/PackageResources/tools/VRMScrambler/Source/Library/libpng.meta +0 -8
  1409. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/README +0 -115
  1410. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/README.meta +0 -7
  1411. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/adler32.c +0 -179
  1412. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/adler32.c.meta +0 -27
  1413. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/compress.c +0 -80
  1414. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/compress.c.meta +0 -27
  1415. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/crc32.c +0 -425
  1416. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/crc32.c.meta +0 -27
  1417. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/crc32.h +0 -441
  1418. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/crc32.h.meta +0 -27
  1419. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/deflate.c +0 -1967
  1420. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/deflate.c.meta +0 -27
  1421. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/deflate.h +0 -346
  1422. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/deflate.h.meta +0 -27
  1423. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/gzclose.c +0 -25
  1424. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/gzclose.c.meta +0 -27
  1425. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/gzguts.h +0 -209
  1426. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/gzguts.h.meta +0 -27
  1427. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/gzlib.c +0 -638
  1428. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/gzlib.c.meta +0 -27
  1429. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/gzread.c +0 -598
  1430. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/gzread.c.meta +0 -27
  1431. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/gzwrite.c +0 -581
  1432. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/gzwrite.c.meta +0 -27
  1433. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/infback.c +0 -640
  1434. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/infback.c.meta +0 -27
  1435. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/inffast.c +0 -340
  1436. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/inffast.c.meta +0 -27
  1437. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/inffast.h +0 -11
  1438. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/inffast.h.meta +0 -27
  1439. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/inffixed.h +0 -94
  1440. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/inffixed.h.meta +0 -27
  1441. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/inflate.c +0 -1512
  1442. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/inflate.c.meta +0 -27
  1443. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/inflate.h +0 -122
  1444. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/inflate.h.meta +0 -27
  1445. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/inftrees.c +0 -306
  1446. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/inftrees.c.meta +0 -27
  1447. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/inftrees.h +0 -62
  1448. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/inftrees.h.meta +0 -27
  1449. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/trees.c +0 -1226
  1450. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/trees.c.meta +0 -27
  1451. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/trees.h +0 -128
  1452. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/trees.h.meta +0 -27
  1453. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/uncompr.c +0 -59
  1454. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/uncompr.c.meta +0 -27
  1455. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/zconf.h +0 -511
  1456. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/zconf.h.meta +0 -27
  1457. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/zlib.h +0 -1768
  1458. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/zlib.h.meta +0 -27
  1459. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/zutil.c +0 -324
  1460. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/zutil.c.meta +0 -27
  1461. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/zutil.h +0 -253
  1462. package/PackageResources/tools/VRMScrambler/Source/Library/zlib/zutil.h.meta +0 -27
  1463. package/PackageResources/tools/VRMScrambler/Source/Library/zlib.meta +0 -8
  1464. package/PackageResources/tools/VRMScrambler/Source/Library.meta +0 -8
  1465. package/PackageResources/tools/VRMScrambler/Source/Specific/Debug/LMsg.cpp +0 -91
  1466. package/PackageResources/tools/VRMScrambler/Source/Specific/Debug/LMsg.cpp.meta +0 -27
  1467. package/PackageResources/tools/VRMScrambler/Source/Specific/Debug/LMsg.h +0 -14
  1468. package/PackageResources/tools/VRMScrambler/Source/Specific/Debug/LMsg.h.meta +0 -27
  1469. package/PackageResources/tools/VRMScrambler/Source/Specific/Debug.meta +0 -8
  1470. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/CFile.cpp +0 -279
  1471. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/CFile.cpp.meta +0 -27
  1472. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/CFile.h +0 -64
  1473. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/CFile.h.meta +0 -27
  1474. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/CFilePath.cpp +0 -235
  1475. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/CFilePath.cpp.meta +0 -27
  1476. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/CFilePath.h +0 -61
  1477. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/CFilePath.h.meta +0 -27
  1478. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/CFindFile.cpp +0 -284
  1479. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/CFindFile.cpp.meta +0 -27
  1480. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/CFindFile.h +0 -46
  1481. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/CFindFile.h.meta +0 -27
  1482. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/FileSystem.cpp +0 -127
  1483. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/FileSystem.cpp.meta +0 -27
  1484. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/FileSystem.h +0 -21
  1485. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/FileSystem.h.meta +0 -27
  1486. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/LFileName.cpp +0 -290
  1487. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/LFileName.cpp.meta +0 -27
  1488. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/LFileName.h +0 -30
  1489. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem/LFileName.h.meta +0 -27
  1490. package/PackageResources/tools/VRMScrambler/Source/Specific/FileSystem.meta +0 -8
  1491. package/PackageResources/tools/VRMScrambler/Source/Specific/Timer/CFrameCounter.cpp +0 -57
  1492. package/PackageResources/tools/VRMScrambler/Source/Specific/Timer/CFrameCounter.cpp.meta +0 -27
  1493. package/PackageResources/tools/VRMScrambler/Source/Specific/Timer/CFrameCounter.h +0 -25
  1494. package/PackageResources/tools/VRMScrambler/Source/Specific/Timer/CFrameCounter.h.meta +0 -27
  1495. package/PackageResources/tools/VRMScrambler/Source/Specific/Timer/Timer.cpp +0 -133
  1496. package/PackageResources/tools/VRMScrambler/Source/Specific/Timer/Timer.cpp.meta +0 -27
  1497. package/PackageResources/tools/VRMScrambler/Source/Specific/Timer/Timer.h +0 -21
  1498. package/PackageResources/tools/VRMScrambler/Source/Specific/Timer/Timer.h.meta +0 -27
  1499. package/PackageResources/tools/VRMScrambler/Source/Specific/Timer.meta +0 -8
  1500. package/PackageResources/tools/VRMScrambler/Source/Specific.meta +0 -8
  1501. package/PackageResources/tools/VRMScrambler/Source/main.cpp +0 -129
  1502. package/PackageResources/tools/VRMScrambler/Source/main.cpp.meta +0 -27
  1503. package/PackageResources/tools/VRMScrambler/Source.meta +0 -8
  1504. package/PackageResources/tools/VRMScrambler/VRMScrambler.sln +0 -31
  1505. package/PackageResources/tools/VRMScrambler/VRMScrambler.sln.meta +0 -7
  1506. package/PackageResources/tools/VRMScrambler/VRMScrambler.vcxproj +0 -367
  1507. package/PackageResources/tools/VRMScrambler/VRMScrambler.vcxproj.filters +0 -711
  1508. package/PackageResources/tools/VRMScrambler/VRMScrambler.vcxproj.filters.meta +0 -7
  1509. package/PackageResources/tools/VRMScrambler/VRMScrambler.vcxproj.meta +0 -7
  1510. package/PackageResources/tools/VRMScrambler/VRMScrambler.vcxproj.user +0 -16
  1511. package/PackageResources/tools/VRMScrambler/VRMScrambler.vcxproj.user.meta +0 -7
  1512. package/PackageResources/tools/VRMScrambler.meta +0 -8
  1513. package/Samples~/Actions/Openweb.unity +0 -702
  1514. package/Samples~/Actions/Openweb.unity.meta +0 -7
  1515. package/Samples~/Shading/Materials/star.png.meta +0 -92
  1516. package/Samples~/Shading/Materials/star_alpha.png.meta +0 -116
  1517. package/Samples~/Shading/Materials/test_alpha.png.meta +0 -116
  1518. package/Samples~/Shading/Materials/test_alpha2.png.meta +0 -116
  1519. package/Samples~/Shading.meta +0 -8
  1520. package/Samples~/Tutorial/EditSkybox.unity +0 -581
  1521. package/Samples~/Tutorial/EssentialObjects.unity +0 -479
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["src/const.ts", "src/logics/dataOps.ts", "src/logics/domOps.ts", "src/logics/platform.ts", "src/debugLog.ts", "src/logics/moduleCaller.ts", "src/logics/device.ts", "src/heliodor_core_shared.ts", "../node_modules/skyway-js/dist/skyway.js", "src/heliodor_pre.ts", "src/heliodor_core_globals.ts", "src/logics/callCGui.ts", "src/heliodor_core_render_callee.ts", "src/heliodor_core_video_callee.ts", "src/heliodor_core_audio_callee.ts", "src/CHELAudio.ts", "src/heliodor_core_gui_callee.ts", "src/heliodor_core_gui_caller.ts", "src/heliodor_core_misc.ts", "src/heliodor_lib.ts", "src/logics/assign.ts", "src/logics/cookieOps.ts", "src/logics/mixerOps.ts", "src/heliodor_xr.ts", "src/heliodor_skyway.ts", "src/CHELSkyPlayer.ts"],
4
+ "sourcesContent": ["export const HeliodorSDKVersion = '3.5';\nexport const worldViewerWindow = window;\nexport const HEL_AUDIO_TYPE_WORLD = 0;\nexport const HEL_AUDIO_TYPE_VOICE = 1;\nexport const HEL_AUDIO_TYPE_SE = 2;\nexport const HEL_AUDIO_TYPE_SYSTEMSE = 3;\nexport const HEL_AUDIO_TYPE_VIDEO = 4;\nworldViewerWindow.HEL_AUDIO_TYPE_WORLD = HEL_AUDIO_TYPE_WORLD;\nworldViewerWindow.HEL_AUDIO_TYPE_VOICE = HEL_AUDIO_TYPE_VOICE;\nworldViewerWindow.HEL_AUDIO_TYPE_SE = HEL_AUDIO_TYPE_SE;\nworldViewerWindow.HEL_AUDIO_TYPE_SYSTEMSE = HEL_AUDIO_TYPE_SYSTEMSE;\nworldViewerWindow.HEL_AUDIO_TYPE_VIDEO = HEL_AUDIO_TYPE_VIDEO;\nexport const ETextParamType_WorldID = 0;\nexport const ETextParamType_RoomID = 1;\nexport const ETextParamType_SpotName = 2;\nexport const ETextParamType_LocationHref = 3;\nexport const ETextParamType_ShowWorldSelect = 4;\nexport const ETextParamType_Logined = 5;\nexport const ETextParamType_CanvasFileName = 6;\nexport const ETextParamType_CurrentUserName = 7;\nexport const ETextParamType_SceneItem = 8;\nexport const ETextParamType_OperateCanvas = 9;\nexport const ETextParamType_ReplaceMyAvatar = 10;\nexport const ETextParamType_PlayVideo = 11;\nexport const ETextParamType_NamePlateTextureFileName0 = 12;\nexport const ETextParamType_NamePlateTextureFileName1 = 13;\nexport const ETextParamType_NamePlateTextureFileName2 = 14;\nexport const ETextParamType_NamePlateMicMuteTextureFileName = 15;\nexport const ETextParamType_NamePlateMicOnTextureFileName = 16;\nexport const ETextParamType_NamePlateMicTalkingTextureFileName = 17;\nexport const ETextParamType_SetMicState = 18;\nexport const ETextParamType_OperateFunctionFlag = 19;\nexport const ETextParamType_CopyVideoFrameToSystem = 20;\nexport const ETextParamType_CancelToCopyVideoFrameToSystem = 21;\nexport const ETextParamType_SetMicTalkingState = 22;\nexport const ETextParamType_WarpPlayer = 23;\nexport const ETextParamType_PlayerMoveEnable = 24;\nexport const ETextParamType_PlayItem = 25;\nexport const ETextParamType_StopItem = 26;\nexport const ETextParamType_ShowItem = 27;\nexport const ETextParamType_HideItem = 28;\nexport const ETextParamType_ReplaceMyAvatarCustom = 29;\nexport const ETextParamType_SceneJson = 30;\nexport const ETextParamType_ScriptCallComponentMethod = 31;\nexport const ETextParamType_AvatarFileName = 32;\nexport const ETextParamType_GUIDebugInput = 33;\nexport const ETextParamType_HeliodorSDKVersion = 34;\nexport const ETextParamType_ReplaceMyAvatarIcon = 35;\nexport const ETextParamType_SetItemFileName = 36;\nexport const ETextParamType_SetFollowCameraDistance = 37;\nexport const ETextParamType_SetFollowCameraRotate = 38;\nexport const ETextParamType_SetFollowCameraHeight = 39;\nexport const ETextParamType_AddFurniture = 40;\nexport const ETextParamType_SetPlayerRotate = 41;\nexport const ETextParamType_PlayEmote = 42;\nexport const ETextParamType_UsePlayerRotateAnimation = 43;\nexport const ETextParamType_StopVideo = 44;\nexport const ETextParamType_IsPlayVideo = 45;\nworldViewerWindow.ETextParamType_WorldID = ETextParamType_WorldID;\nworldViewerWindow.ETextParamType_RoomID = ETextParamType_RoomID;\nworldViewerWindow.ETextParamType_SpotName = ETextParamType_SpotName;\nworldViewerWindow.ETextParamType_LocationHref = ETextParamType_LocationHref;\nworldViewerWindow.ETextParamType_ShowWorldSelect = ETextParamType_ShowWorldSelect;\nworldViewerWindow.ETextParamType_Logined = ETextParamType_Logined;\nworldViewerWindow.ETextParamType_CanvasFileName = ETextParamType_CanvasFileName;\nworldViewerWindow.ETextParamType_CurrentUserName = ETextParamType_CurrentUserName;\nworldViewerWindow.ETextParamType_SceneItem = ETextParamType_SceneItem;\nworldViewerWindow.ETextParamType_OperateCanvas = ETextParamType_OperateCanvas;\nworldViewerWindow.ETextParamType_ReplaceMyAvatar = ETextParamType_ReplaceMyAvatar;\nworldViewerWindow.ETextParamType_PlayVideo = ETextParamType_PlayVideo;\nworldViewerWindow.ETextParamType_NamePlateTextureFileName0 = ETextParamType_NamePlateTextureFileName0;\nworldViewerWindow.ETextParamType_NamePlateTextureFileName1 = ETextParamType_NamePlateTextureFileName1;\nworldViewerWindow.ETextParamType_NamePlateTextureFileName2 = ETextParamType_NamePlateTextureFileName2;\nworldViewerWindow.ETextParamType_NamePlateMicMuteTextureFileName = ETextParamType_NamePlateMicMuteTextureFileName;\nworldViewerWindow.ETextParamType_NamePlateMicOnTextureFileName = ETextParamType_NamePlateMicOnTextureFileName;\nworldViewerWindow.ETextParamType_NamePlateMicTalkingTextureFileName = ETextParamType_NamePlateMicTalkingTextureFileName;\nworldViewerWindow.ETextParamType_SetMicState = ETextParamType_SetMicState;\nworldViewerWindow.ETextParamType_OperateFunctionFlag = ETextParamType_OperateFunctionFlag;\nworldViewerWindow.ETextParamType_CopyVideoFrameToSystem = ETextParamType_CopyVideoFrameToSystem;\nworldViewerWindow.ETextParamType_CancelToCopyVideoFrameToSystem = ETextParamType_CancelToCopyVideoFrameToSystem;\nworldViewerWindow.ETextParamType_SetMicTalkingState = ETextParamType_SetMicTalkingState;\nworldViewerWindow.ETextParamType_WarpPlayer = ETextParamType_WarpPlayer;\nworldViewerWindow.ETextParamType_PlayerMoveEnable = ETextParamType_PlayerMoveEnable;\nworldViewerWindow.ETextParamType_PlayItem = ETextParamType_PlayItem;\nworldViewerWindow.ETextParamType_StopItem = ETextParamType_StopItem;\nworldViewerWindow.ETextParamType_ShowItem = ETextParamType_ShowItem;\nworldViewerWindow.ETextParamType_HideItem = ETextParamType_HideItem;\nworldViewerWindow.ETextParamType_ReplaceMyAvatarCustom = ETextParamType_ReplaceMyAvatarCustom;\nworldViewerWindow.ETextParamType_SceneJson = ETextParamType_SceneJson;\nworldViewerWindow.ETextParamType_ScriptCallComponentMethod = ETextParamType_ScriptCallComponentMethod;\nworldViewerWindow.ETextParamType_AvatarFileName = ETextParamType_AvatarFileName;\nworldViewerWindow.ETextParamType_GUIDebugInput = ETextParamType_GUIDebugInput;\nworldViewerWindow.ETextParamType_HeliodorSDKVersion = ETextParamType_HeliodorSDKVersion;\nworldViewerWindow.ETextParamType_ReplaceMyAvatarIcon = ETextParamType_ReplaceMyAvatarIcon;\nworldViewerWindow.ETextParamType_SetItemFileName = ETextParamType_SetItemFileName;\nworldViewerWindow.ETextParamType_SetFollowCameraDistance = ETextParamType_SetFollowCameraDistance;\nworldViewerWindow.ETextParamType_SetFollowCameraRotate = ETextParamType_SetFollowCameraRotate;\nworldViewerWindow.ETextParamType_SetFollowCameraHeight = ETextParamType_SetFollowCameraHeight;\nworldViewerWindow.ETextParamType_AddFurniture = ETextParamType_AddFurniture;\nworldViewerWindow.ETextParamType_SetPlayerRotate = ETextParamType_SetPlayerRotate;\nworldViewerWindow.ETextParamType_PlayEmote = ETextParamType_PlayEmote;\nworldViewerWindow.ETextParamType_UsePlayerRotateAnimation = ETextParamType_UsePlayerRotateAnimation;\nworldViewerWindow.ETextParamType_StopVideo = ETextParamType_StopVideo;\nworldViewerWindow.ETextParamType_IsPlayVideo = ETextParamType_IsPlayVideo;\nexport const MOBILE_USER_AGENT_REGS = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i;\nexport const IPHONE_USER_AGENT_REGS = /iPhone|iPod/i;\nexport const IOS_VER_15 = 1500;\nexport const DATA_FOLDER_NAME = 'data';\nexport const INITIAL_MIXER_SETTING = [\n 0.2,\n 1.0,\n 0.2,\n 0.2,\n 0.2\n];\nexport const INITIAL_MIXER_REAL_SETTING = [\n 0.2,\n 1.0,\n 0.2,\n 0.2,\n 0.2\n];\nexport const INITIAL_MIXER_FADER_SETTING = [\n 1.0,\n 1.0,\n 1.0,\n 1.0,\n 1.0\n];\nexport const INITIAL_MIXER_DISTANCE_SETTING = [\n 1.0,\n 1.0,\n 1.0,\n 1.0,\n 1.0\n];\nexport const INITIAL_MIXER_MUTE_SETTING = [\n 0,\n 0,\n 0,\n 0,\n 0\n];\nexport const SKYWAY_API_HOST = 'https://v1.api.vketcloud.com/';\n", "import { HeliodorSDKVersion, INITIAL_MIXER_DISTANCE_SETTING, INITIAL_MIXER_FADER_SETTING, INITIAL_MIXER_SETTING, INITIAL_MIXER_REAL_SETTING, worldViewerWindow } from '../const';\n/**\n * WorldIdAccessor(GET)\n * @returns String\n */ export const getWorldId = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_WorldID === undefined || worldViewerWindow.g_WorldID === null) {\n return undefined;\n }\n return worldViewerWindow.g_WorldID;\n};\n/**\n * WorldIdAccessor(SET)\n * @remarks\n * \u672A\u4F7F\u7528\n * worldId\u304Cstring\u3067\u306A\u304F\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n * front\u5074\u3067\u8A2D\u5B9A\u3059\u308B\u3053\u3068\u304C\u591A\u3044\u3002var\u8A2D\u5B9A\n * @param worldId \u30B0\u30ED\u30FC\u30D0\u30EB\u30EF\u30FC\u30EB\u30C9ID\n */ export const setWorldId = (worldId)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof worldId !== 'string') {\n return;\n }\n worldViewerWindow.g_WorldID = worldId;\n};\n/**\n * SkyRoomIdAccessor(GET)\n * TODO \u5185\u6D77 default\u5024\u304C\u308F\u304B\u3089\u306A\u3044\u305F\u30810\u306B\u3057\u3066\u308B\n * @returns String\n */ export const getSkyRoomId = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_Skyway_RoomID === undefined || worldViewerWindow.g_Skyway_RoomID === null) {\n return '0';\n }\n return worldViewerWindow.g_Skyway_RoomID;\n};\n/**\n * SkyRoomIdAccessor(SET)\n * @remarks\n * front\u5074\u3067\u8A2D\u5B9A\u3059\u308B\u3053\u3068\u304C\u591A\u3044\u3002var\u8A2D\u5B9A\n * @param skyRoomId \u30B0\u30ED\u30FC\u30D0\u30EB\u30B9\u30AB\u30A4\u30EB\u30FC\u30E0ID\n */ export const setSkyRoomId = (skyRoomId)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return;\n }\n worldViewerWindow.g_Skyway_RoomID = skyRoomId;\n};\n/**\n * SpotIdAccessor(GET)\n * @returns String\n */ export const getSpotId = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_Spot === undefined || worldViewerWindow.g_Spot === null) {\n return undefined;\n }\n return worldViewerWindow.g_Spot;\n};\n/**\n * SpotIdAccessor(SET)\n * @remarks\n * \u672A\u4F7F\u7528\n * spotId\u304Cstring\u3067\u306A\u304F\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n * front\u5074\u3067\u8A2D\u5B9A\u3059\u308B\u3053\u3068\u304C\u591A\u3044\u3002var\u8A2D\u5B9A\n * @param spotId \u30B0\u30ED\u30FC\u30D0\u30EB\u30B9\u30DD\u30C3\u30C8ID\n */ export const setSpotId = (spotId)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof spotId !== 'string') {\n return;\n }\n worldViewerWindow.g_Spot = spotId;\n};\n/**\n * WorldSelectedToggle (GET)\n * @returns Boolean\n */ export const getWorldSelectedToggle = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_ShowWorldSelect === undefined || worldViewerWindow.g_ShowWorldSelect === null) {\n return false;\n }\n return worldViewerWindow.g_ShowWorldSelect;\n};\n/**\n * WorldSelectedToggle(SET)\n * @remarks\n * \u672A\u4F7F\u7528\n * toggle\u304Cboolean\u4EE5\u5916\u306E\u53EF\u80FD\u6027\u304C\u3042\u308B\u305F\u3081unknown\u578B\u306B\n * front\u5074\u3067\u8A2D\u5B9A\u3059\u308B\u3053\u3068\u304C\u591A\u3044\u3002var\u8A2D\u5B9A\n * @param toggle \u30EF\u30FC\u30EB\u30C9\u9078\u629E\u3055\u308C\u3066\u308B\u304B\n */ export const setWorldSelectedToggle = (toggle)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof toggle !== 'boolean') {\n return;\n }\n worldViewerWindow.g_ShowWorldSelect = toggle;\n};\n/**\n * LoggedInStatusToggle (GET)\n * @returns Boolean\n */ export const getLoggedInStatusToggle = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_Logined === undefined || worldViewerWindow.g_Logined === null) {\n return false;\n }\n return worldViewerWindow.g_Logined;\n};\n/**\n * LoggedInStatusToggle(SET)\n * @remarks\n * toggle\u304Cboolean\u3067\u306A\u304F\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n *\n * @param toggle \u30ED\u30B0\u30A4\u30F3\u72B6\u614B\n */ export const setLoggedInStatusToggle = (toggle)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof toggle !== 'boolean') {\n return;\n }\n worldViewerWindow.g_Logined = toggle;\n};\n/**\n * CanvasName (GET)\n * @returns String\n */ export const getCanvasFileName = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_CanvasFileName === undefined || worldViewerWindow.g_CanvasFileName === null) {\n return '';\n }\n return worldViewerWindow.g_CanvasFileName;\n};\n/**\n * CanvasName(SET)\n * @remarks\n * updatedCanvasName\u304Cstring\u3067\u306A\u304F\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n *\n * @param updatedCanvasName \u66F4\u65B0\u4E88\u5B9A\u306E\u30AD\u30E3\u30F3\u30D0\u30B9\u30D5\u30A1\u30A4\u30EB\u540D\n */ export const setCanvasFileName = (updatedCanvasName)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof updatedCanvasName !== 'string') {\n return;\n }\n worldViewerWindow.g_CanvasFileName = updatedCanvasName;\n};\n/**\n * CurrentUserName (GET)\n * @returns String\n */ export const getCurrentUserName = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_CurrentUserName === undefined || worldViewerWindow.g_CurrentUserName === null) {\n return '';\n }\n return worldViewerWindow.g_CurrentUserName;\n};\n/**\n * CurrentUserName(SET)\n * @remarks\n * updatedCanvasName\u304Cstring\u3067\u306A\u304F\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n *\n * @param updatedUserName \u66F4\u65B0\u4E88\u5B9A\u306E\u30E6\u30FC\u30B6\u540D\n */ export const setCurrentUserName = (updatedUserName)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return;\n }\n worldViewerWindow.g_CurrentUserName = updatedUserName;\n};\n/**\n * WebGL10Toggle (GET)\n * @remarks\n * render_callee\u306E\u307F\u3067\u5229\u7528\u3057\u3066\u308B...\u4ED6\u3068\u4E00\u7DD2\u306B\u72B6\u614B\u7BA1\u7406\u3057\u3066\u3082\u3088\u3044\u304B\u3082\n * @returns Boolean\n */ export const getWebGL10Toggle = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_UseWebGL10 === undefined || worldViewerWindow.g_UseWebGL10 === null) {\n return false;\n }\n return worldViewerWindow.g_UseWebGL10;\n};\n/**\n * WebGL10Toggle(SET)\n * @remarks\n * updatedMixerTabValue\u304Cnumber\u3067\u306A\u304F\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n *\n * @param toggle \u30D5\u30E9\u30B0\n */ export const setWebGL10Toggle = (toggle)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof toggle !== 'boolean') {\n return;\n }\n worldViewerWindow.g_UseWebGL10 = toggle;\n};\n/**\n * CompressedTexturePvrtc (GET)\n * @remarks\n * render_callee\u306E\u307F\u3067\u5229\u7528\u3057\u3066\u308B...\u4ED6\u3068\u4E00\u7DD2\u306B\u72B6\u614B\u7BA1\u7406\u3057\u3066\u3082\u3088\u3044\u304B\u3082\n * @returns WEBGL_compressed_texture_pvrtc|undefined\n */ export const getTextureExtOnPvrtc = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_extPVRTC === undefined || worldViewerWindow.g_extPVRTC === null) {\n return undefined;\n }\n return worldViewerWindow.g_extPVRTC;\n};\n/**\n * CompressedTexturePvrtc(SET)\n * @remarks\n * compressedTexturePvrtc\u4EE5\u5916\u304C\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n *\n * @param compressedTexturePvrtc\n */ export const setTextureExtOnPvrtc = (compressedTexturePvrtc)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || compressedTexturePvrtc === undefined || compressedTexturePvrtc === null) {\n return;\n }\n worldViewerWindow.g_extPVRTC = compressedTexturePvrtc;\n};\n/**\n * TextureEtc2Toggle (GET)\n * @remarks\n * \u672A\u4F7F\u7528\n * render_callee\u306E\u307F\u3067\u5229\u7528\u3057\u3066\u308B...\u4ED6\u3068\u4E00\u7DD2\u306B\u72B6\u614B\u7BA1\u7406\u3057\u3066\u3082\u3088\u3044\u304B\u3082\n * @returns Boolean\n */ export const getTexturePvrtcToggle = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_TextureCompression_PVRTC === undefined || worldViewerWindow.g_TextureCompression_PVRTC === null) {\n return false;\n }\n return worldViewerWindow.g_TextureCompression_PVRTC;\n};\n/**\n * TextureEtc2Toggle(SET)\n * @remarks\n * toggle\u304C\u9055\u3046\u5F62\u5F0F\u3067\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n *\n * @param toggle\n */ export const setTexturePvrtcToggle = (toggle)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof toggle !== 'boolean') {\n return;\n }\n worldViewerWindow.g_TextureCompression_PVRTC = toggle;\n};\n/**\n * CompressedTextureEtc2 (GET)\n * @remarks\n * render_callee\u306E\u307F\u3067\u5229\u7528\u3057\u3066\u308B...\u4ED6\u3068\u4E00\u7DD2\u306B\u72B6\u614B\u7BA1\u7406\u3057\u3066\u3082\u3088\u3044\u304B\u3082\n * @returns WEBGL_compressed_texture_etc|undefined\n */ export const getTextureExtOnETC2 = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_extETC2 === undefined || worldViewerWindow.g_extETC2 === null) {\n return undefined;\n }\n return worldViewerWindow.g_extETC2;\n};\n/**\n * CompressedTextureEtc2(SET)\n * @remarks\n * compressedTextureEtc2c\u4EE5\u5916\u304C\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n *\n * @param compressedTextureEtc2\n */ export const setTextureExtOnETC2 = (compressedTextureEtc2)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || compressedTextureEtc2 === undefined || compressedTextureEtc2 === null) {\n return;\n }\n worldViewerWindow.g_extETC2 = compressedTextureEtc2;\n};\n/**\n * TextureEtc2Toggle (GET)\n * @remarks\n * \u672A\u4F7F\u7528\n * render_callee\u306E\u307F\u3067\u5229\u7528\u3057\u3066\u308B...\u4ED6\u3068\u4E00\u7DD2\u306B\u72B6\u614B\u7BA1\u7406\u3057\u3066\u3082\u3088\u3044\u304B\u3082\n * @returns Boolean\n */ export const getTextureETC2Toggle = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_TextureCompression_ETC2 === undefined || worldViewerWindow.g_TextureCompression_ETC2 === null) {\n return false;\n }\n return worldViewerWindow.g_TextureCompression_ETC2;\n};\n/**\n * TextureEtc2Toggle(SET)\n * @remarks\n * toggle\u304C\u9055\u3046\u5F62\u5F0F\u3067\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n *\n * @param toggle\n */ export const setTextureETC2Toggle = (toggle)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof toggle !== 'boolean') {\n return;\n }\n worldViewerWindow.g_TextureCompression_ETC2 = toggle;\n};\n/**\n * CompressedTextureASTC (GET)\n * @remarks\n * render_callee\u306E\u307F\u3067\u5229\u7528\u3057\u3066\u308B...\u4ED6\u3068\u4E00\u7DD2\u306B\u72B6\u614B\u7BA1\u7406\u3057\u3066\u3082\u3088\u3044\u304B\u3082\n * @returns WEBGL_compressed_texture_astc|undefined\n */ export const getTextureExtOnAstc = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_extASTC === undefined || worldViewerWindow.g_extASTC === null) {\n return undefined;\n }\n return worldViewerWindow.g_extASTC;\n};\n/**\n * CompressedTextureASTC(SET)\n * @remarks\n * compressedTextureAstc\u4EE5\u5916\u304C\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n *\n * @param compressedTextureAstc\n */ export const setTextureExtOnAstc = (compressedTextureAstc)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || compressedTextureAstc === undefined || compressedTextureAstc === null) {\n return;\n }\n worldViewerWindow.g_extASTC = compressedTextureAstc;\n};\n/**\n * TextureASTCToggle (GET)\n * @remarks\n * \u672A\u4F7F\u7528\n * render_callee\u306E\u307F\u3067\u5229\u7528\u3057\u3066\u308B...\u4ED6\u3068\u4E00\u7DD2\u306B\u72B6\u614B\u7BA1\u7406\u3057\u3066\u3082\u3088\u3044\u304B\u3082\n * @returns Boolean\n */ export const getTextureAstcToggle = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_TextureCompression_ASTC === undefined || worldViewerWindow.g_TextureCompression_ASTC === null) {\n return false;\n }\n return worldViewerWindow.g_TextureCompression_ASTC;\n};\n/**\n * TextureASTCToggle(SET)\n * @remarks\n * boolean\u4EE5\u5916\u304C\u9055\u3046\u5F62\u5F0F\u3067\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n * @param toggle\n */ export const setTextureAstcToggle = (toggle)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof toggle !== 'boolean') {\n return;\n }\n worldViewerWindow.g_TextureCompression_ASTC = toggle;\n};\n/**\n * CompressedTextureDXT (GET)\n * @remarks\n * render_callee\u306E\u307F\u3067\u5229\u7528\u3057\u3066\u308B...\u4ED6\u3068\u4E00\u7DD2\u306B\u72B6\u614B\u7BA1\u7406\u3057\u3066\u3082\u3088\u3044\u304B\u3082\n * @returns any|undefined\n */ export const getTextureExtOnDxt = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_extDXT === undefined || worldViewerWindow.g_extDXT === null) {\n return undefined;\n }\n return worldViewerWindow.g_extDXT;\n};\n/**\n * CompressedTextureDXT(SET)\n * @remarks\n * compressedTextureDxt\u4EE5\u5916\u304C\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n *\n * @param compressedTextureDxt\n */ export const setTextureExtOnDxt = (compressedTextureDxt)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || compressedTextureDxt === undefined || compressedTextureDxt === null) {\n return;\n }\n worldViewerWindow.g_extDXT = compressedTextureDxt;\n};\n/**\n * TextureDXTToggle (GET)\n * @remarks\n * \u672A\u4F7F\u7528\n * render_callee\u306E\u307F\u3067\u5229\u7528\u3057\u3066\u308B...\u4ED6\u3068\u4E00\u7DD2\u306B\u72B6\u614B\u7BA1\u7406\u3057\u3066\u3082\u3088\u3044\u304B\u3082\n * @returns Boolean\n */ export const getTextureDxtToggle = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_TextureCompression_DXT === undefined || worldViewerWindow.g_TextureCompression_DXT === null) {\n return false;\n }\n return worldViewerWindow.g_TextureCompression_DXT;\n};\n/**\n * TextureDXTToggle(SET)\n * @remarks\n * boolean\u4EE5\u5916\u304C\u9055\u3046\u5F62\u5F0F\u3067\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n * @param toggle\n */ export const setTextureDxtToggle = (toggle)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof toggle !== 'boolean') {\n return;\n }\n worldViewerWindow.g_TextureCompression_DXT = toggle;\n};\n/**\n * ExtensionShaderTextureLod (GET)\n * @remarks\n * render_callee\u306E\u307F\u3067\u5229\u7528\u3057\u3066\u308B...\u4ED6\u3068\u4E00\u7DD2\u306B\u72B6\u614B\u7BA1\u7406\u3057\u3066\u3082\u3088\u3044\u304B\u3082\n * @returns EXT_shader_texture_lod|undefined\n */ export const getExtShaderTextureLod = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_EXT_shader_texture_lod === undefined || worldViewerWindow.g_EXT_shader_texture_lod === null) {\n return undefined;\n }\n return worldViewerWindow.g_EXT_shader_texture_lod;\n};\n/**\n * ExtensionShaderTextureLod(SET)\n * @remarks\n * extShaderTextureLod\u4EE5\u5916\u304C\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n *\n * @param extShaderTextureLod\n */ export const setExtShaderTextureLod = (extShaderTextureLod)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || extShaderTextureLod === undefined || extShaderTextureLod === null) {\n return;\n }\n worldViewerWindow.g_EXT_shader_texture_lod = extShaderTextureLod;\n};\n/**\n * ExtShaderTextureLodToggle (GET)\n * @remarks\n * \u672A\u4F7F\u7528\n * render_callee\u306E\u307F\u3067\u5229\u7528\u3057\u3066\u308B...\u4ED6\u3068\u4E00\u7DD2\u306B\u72B6\u614B\u7BA1\u7406\u3057\u3066\u3082\u3088\u3044\u304B\u3082\n * @returns Boolean\n */ export const getExtShaderTextureLodToggle = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_Use_EXT_shader_texture_lod === undefined || worldViewerWindow.g_Use_EXT_shader_texture_lod === null) {\n return false;\n }\n return worldViewerWindow.g_Use_EXT_shader_texture_lod;\n};\n/**\n * ExtShaderTextureLodToggle(SET)\n * @remarks\n * boolean\u4EE5\u5916\u304C\u9055\u3046\u5F62\u5F0F\u3067\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n * @param toggle\n */ export const setExtShaderTextureLodToggle = (toggle)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof toggle !== 'boolean') {\n return;\n }\n worldViewerWindow.g_Use_EXT_shader_texture_lod = toggle;\n};\n/**\n * ExtColorBufferHalfFloat (GET)\n * @remarks\n * render_callee\u306E\u307F\u3067\u5229\u7528\u3057\u3066\u308B...\u4ED6\u3068\u4E00\u7DD2\u306B\u72B6\u614B\u7BA1\u7406\u3057\u3066\u3082\u3088\u3044\u304B\u3082\n * @returns EXT_color_buffer_half_float|undefined\n */ export const getExtColorBufferHalfFloat = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_EXT_color_buffer_half_float === undefined || worldViewerWindow.g_EXT_color_buffer_half_float === null) {\n return undefined;\n }\n return worldViewerWindow.g_EXT_color_buffer_half_float;\n};\n/**\n * ExtColorBufferHalfFloat(SET)\n * @remarks\n * extColorBufferHalfFloat\u4EE5\u5916\u304C\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n *\n * @param extColorBufferHalfFloat\n */ export const setExtColorBufferHalfFloat = (extColorBufferHalfFloat)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || extColorBufferHalfFloat === undefined || extColorBufferHalfFloat === null) {\n return;\n }\n worldViewerWindow.g_EXT_color_buffer_half_float = extColorBufferHalfFloat;\n};\n/**\n * ExtColorBufferHalfFloatToggle (GET)\n * @remarks\n * \u672A\u4F7F\u7528\n * render_callee\u306E\u307F\u3067\u5229\u7528\u3057\u3066\u308B...\u4ED6\u3068\u4E00\u7DD2\u306B\u72B6\u614B\u7BA1\u7406\u3057\u3066\u3082\u3088\u3044\u304B\u3082\n * @returns Boolean\n */ export const getExtColorBufferHalfFloatToggle = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_Use_EXT_color_buffer_half_float === undefined || worldViewerWindow.g_Use_EXT_color_buffer_half_float === null) {\n return false;\n }\n return worldViewerWindow.g_Use_EXT_color_buffer_half_float;\n};\n/**\n * ExtColorBufferHalfFloatToggle(SET)\n * @remarks\n * boolean\u4EE5\u5916\u304C\u9055\u3046\u5F62\u5F0F\u3067\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n * @param toggle\n */ export const setExtColorBufferHalfFloatToggle = (toggle)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof toggle !== 'boolean') {\n return;\n }\n worldViewerWindow.g_Use_EXT_color_buffer_half_float = toggle;\n};\n/**\n * OesTextureHalfFloat (GET)\n * @remarks\n * render_callee\u306E\u307F\u3067\u5229\u7528\u3057\u3066\u308B...\u4ED6\u3068\u4E00\u7DD2\u306B\u72B6\u614B\u7BA1\u7406\u3057\u3066\u3082\u3088\u3044\u304B\u3082\n * @returns OES_texture_half_float|undefined\n */ export const getOesTextureHalfFloat = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_OES_texture_half_float === undefined || worldViewerWindow.g_OES_texture_half_float === null) {\n return undefined;\n }\n return worldViewerWindow.g_OES_texture_half_float;\n};\n/**\n * OesTextureHalfFloat(SET)\n * @remarks\n * oesTextureHalfFloat\u4EE5\u5916\u304C\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n *\n * @param oesTextureHalfFloat\n */ export const setOesTextureHalfFloat = (oesTextureHalfFloat)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || oesTextureHalfFloat === undefined || oesTextureHalfFloat === null) {\n return;\n }\n worldViewerWindow.g_OES_texture_half_float = oesTextureHalfFloat;\n};\n/**\n * OesTextureHalfFloatToggle (GET)\n * @remarks\n * \u672A\u4F7F\u7528\n * render_callee\u306E\u307F\u3067\u5229\u7528\u3057\u3066\u308B...\u4ED6\u3068\u4E00\u7DD2\u306B\u72B6\u614B\u7BA1\u7406\u3057\u3066\u3082\u3088\u3044\u304B\u3082\n * @returns Boolean\n */ export const getOesTextureHalfFloatToggle = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_Use_OES_texture_half_float === undefined || worldViewerWindow.g_Use_OES_texture_half_float === null) {\n return false;\n }\n return worldViewerWindow.g_Use_OES_texture_half_float;\n};\n/**\n * OesTextureHalfFloatToggle(SET)\n * @remarks\n * boolean\u4EE5\u5916\u304C\u9055\u3046\u5F62\u5F0F\u3067\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n * @param toggle\n */ export const setOesTextureHalfFloatToggle = (toggle)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof toggle !== 'boolean') {\n return;\n }\n worldViewerWindow.g_Use_OES_texture_half_float = toggle;\n};\n/**\n * MixerTab (GET)\n * @remarks\n * \u72B6\u614B\u7BA1\u7406\u3067\u3042\u308B\u305F\u3081\u30B7\u30F3\u30B0\u30EB\u30C8\u30F3\u306E\u3088\u3046\u306B\u6301\u3061\u305F\u3044\u304B\u3082\n * @returns Number(decimal)\n */ export const getMixerTab = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_hel_MixerTabActive === undefined || worldViewerWindow.g_hel_MixerTabActive === null) {\n return 1.0;\n }\n return worldViewerWindow.g_hel_MixerTabActive;\n};\n/**\n * MixerTab(SET)\n * @remarks\n * updatedMixerTabValue\u304Cnumber\u3067\u306A\u304F\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n *\n * @param updatedMixerTabValue \u66F4\u65B0\u4E88\u5B9A\u306EMixer\u30BF\u30D6\u5024\n */ export const setMixerTab = (updatedMixerTabValue)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof updatedMixerTabValue !== 'number') {\n return;\n }\n worldViewerWindow.g_hel_MixerTabActive = updatedMixerTabValue;\n};\n/**\n * Mixer (GET)\n * @param index\n * @returns Number\n */ export const getMixerSettingAt = (index)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_hel_Mixer === undefined || worldViewerWindow.g_hel_Mixer === null) {\n return INITIAL_MIXER_SETTING[index];\n }\n return worldViewerWindow.g_hel_Mixer[index];\n};\n/**\n * Mixer(SET)\n * @param volume \u30DC\u30EA\u30E5\u30FC\u30E0\u3002decimal\n * @param typeIndex \u6307\u5B9A\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30020\u3088\u308A\n */ export const setMixerSettingAt = (volume, typeIndex)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return;\n }\n worldViewerWindow.g_hel_Mixer[typeIndex] = volume;\n};\n/**\n * MixerReal (GET)\n * @param index\n * @returns Number\n */ export const getMixerRealSettingAt = (index)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_hel_MixerReal === undefined || worldViewerWindow.g_hel_MixerReal === null) {\n return INITIAL_MIXER_REAL_SETTING[index];\n }\n return worldViewerWindow.g_hel_RealMixer[index];\n};\n/**\n * MixerReal (SET)\n * @param volume \u30DC\u30EA\u30E5\u30FC\u30E0\u3002decimal\n * @param typeIndex \u6307\u5B9A\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30020\u3088\u308A\n */ export const setMixerRealSettingAt = (volume, typeIndex)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return;\n }\n worldViewerWindow.g_hel_RealMixer[typeIndex] = volume;\n};\n/**\n * MixerFader (GET)\n * @param index\n * @returns Number\n */ export const getMixerFaderSettingAt = (index)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_hel_MixerFade === undefined || worldViewerWindow.g_hel_MixerFade === null) {\n return INITIAL_MIXER_FADER_SETTING[index];\n }\n return worldViewerWindow.g_hel_MixerFade[index];\n};\n/**\n * MixerFader(SET)\n * @param volume \u30DC\u30EA\u30E5\u30FC\u30E0\u3002decimal\n * @param typeIndex \u6307\u5B9A\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30020\u3088\u308A\n */ export const setMixerFaderSettingAt = (volume, typeIndex)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return;\n }\n worldViewerWindow.g_hel_MixerFade[typeIndex] = volume;\n};\n/**\n * MixerDistance (GET)\n * @param index\n * @returns Number\n */ export const getMixerDistanceAt = (index)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_hel_MixerDistance === undefined || worldViewerWindow.g_hel_MixerDistance === null) {\n return INITIAL_MIXER_DISTANCE_SETTING[index];\n }\n return worldViewerWindow.g_hel_MixerDistance[index];\n};\n/**\n * MixerDistance(SET)\n * @param volume \u30DC\u30EA\u30E5\u30FC\u30E0\u3002decimal\n * @param typeIndex \u6307\u5B9A\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30020\u3088\u308A\n */ export const setMixerDistanceAt = (volume, typeIndex)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return;\n }\n worldViewerWindow.g_hel_MixerDistance[typeIndex] = volume;\n};\n/**\n * MixerMute (GET)\n * @param index\n * @returns Number\n */ export const getMixerMuteAt = (index)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_hel_MixerMute === undefined || worldViewerWindow.g_hel_MixerMute === null) {\n return INITIAL_MIXER_DISTANCE_SETTING[index];\n }\n return worldViewerWindow.g_hel_MixerMute[index];\n};\n/**\n * MixerMute(SET)\n * @param volume \u30DC\u30EA\u30E5\u30FC\u30E0\u3002decimal\n * @param typeIndex \u6307\u5B9A\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30020\u3088\u308A\n */ export const setMixerMuteAt = (volume, typeIndex)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return;\n }\n worldViewerWindow.g_hel_MixerMute[typeIndex] = volume;\n};\n/**\n * MixerMasterVolume (GET)\n */ export const getMixerMasterVolume = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_hel_MixerMasterVolume === undefined || worldViewerWindow.g_hel_MixerMasterVolume === null) {\n return 1.0;\n }\n return worldViewerWindow.g_hel_MixerMasterVolume;\n};\n/**\n * MixerMasterVolume(SET)\n * @param volume \u30DC\u30EA\u30E5\u30FC\u30E0\n */ export const setMixerMasterVolume = (volume)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return;\n }\n worldViewerWindow.g_hel_MixerMasterVolume = volume;\n};\n/**\n * MixerMasterMute (GET)\n */ export const getMixerMasterMute = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_hel_MixerMasterMute === undefined || worldViewerWindow.g_hel_MixerMasterMute === null) {\n return 0;\n }\n return worldViewerWindow.g_hel_MixerMasterMute;\n};\n/**\n * MixerMasterMute(SET)\n * @param volume \u30DC\u30EA\u30E5\u30FC\u30E0\n */ export const setMixerMasterMute = (mute)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return;\n }\n worldViewerWindow.g_hel_MixerMasterMute = mute;\n};\n/**\n * UseLegacyAudioToggle (GET)\n * @returns Boolean\n */ export const getUseLegacyAudioToggle = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_hel_UseLegacyAudio === undefined || worldViewerWindow.g_hel_UseLegacyAudio === null) {\n return false;\n }\n return worldViewerWindow.g_hel_UseLegacyAudio;\n};\n/**\n * UseLegacyAudioToggle(SET)\n * @remarks\n * \u672A\u4F7F\u7528\n * boolean\u4EE5\u5916\u304C\u9055\u3046\u5F62\u5F0F\u3067\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n * @param toggle\n */ export const setUseLegacyAudioToggle = (toggle)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof toggle !== 'boolean') {\n return;\n }\n worldViewerWindow.g_hel_UseLegacyAudio = toggle;\n};\n/**\n * AudioList (GET)\n * @returns (CHELAudio|null)[]\n */ export const getAudioList = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_audioList === undefined || worldViewerWindow.g_audioList === null) {\n return [];\n }\n return worldViewerWindow.g_audioList;\n};\n/**\n * AudioList(SET)\n * @remarks\n * \u5FC5\u8981\u3042\u308C\u3070null\u3092\u8A2D\u5B9A\n * @param audio CHELAudio\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\n * @param index \u8A2D\u5B9A\u53EF\u80FD\u306A\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\n */ export const setAudioList = (audio, index)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_audioList === undefined || worldViewerWindow.g_audioList === null) {\n return;\n }\n worldViewerWindow.g_audioList[index] = audio;\n};\n/**\n * AudioList\u306B\u51E6\u7406\u306E\u6D41\u308C\u4E0ANull\u3092\u8A2D\u5B9A\n */ export const pushNullToAudioList = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_audioList === undefined || worldViewerWindow.g_audioList === null) {\n return;\n }\n worldViewerWindow.g_audioList.push(null);\n};\n/**\n * VideoCanPlayToggle (GET)\n * @remarks\n * \u672A\u4F7F\u7528\n * @returns Boolean\n */ export const getVideoCanPlayToggle = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_videocanplay === undefined || worldViewerWindow.g_videocanplay === null) {\n return false;\n }\n return worldViewerWindow.g_videocanplay;\n};\n/**\n * VideoCanPlayToggle(SET)\n * boolean\u4EE5\u5916\u304C\u9055\u3046\u5F62\u5F0F\u3067\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n * @param toggle\n */ export const setVideoCanPlayToggle = (toggle)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof toggle !== 'boolean') {\n return;\n }\n worldViewerWindow.g_videocanplay = toggle;\n};\n/**\n * VideoEndedToggle (GET)\n * @returns Boolean\n */ export const getVideoEndedToggle = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_videoended === undefined || worldViewerWindow.g_videoended === null) {\n return false;\n }\n return worldViewerWindow.g_videoended;\n};\n/**\n * VideoEndedToggle(SET)\n * boolean\u4EE5\u5916\u304C\u9055\u3046\u5F62\u5F0F\u3067\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n * @param toggle\n */ export const setVideoEndedToggle = (toggle)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof toggle !== 'boolean') {\n return;\n }\n worldViewerWindow.g_videoended = toggle;\n};\n/**\n * VideoAudioContext (GET)\n * @returns AudioContext|undefined\n */ export const getVideoAudioContext = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_VideoAudioContext === undefined || worldViewerWindow.g_VideoAudioContext === null) {\n return undefined;\n }\n return worldViewerWindow.g_VideoAudioContext;\n};\n/**\n * VideoAudioContext (SET)\n * @param videoAudioContext AudioContext\u578B\n */ export const setVideoAudioContext = (videoAudioContext)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || videoAudioContext === undefined || videoAudioContext === null) {\n return;\n }\n worldViewerWindow.g_VideoAudioContext = videoAudioContext;\n};\n/**\n * VideoSource (GET)\n * @returns MediaElementAudioSourceNode|undefined\n */ export const getVideoSource = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_VideoSource === undefined || worldViewerWindow.g_VideoSource === null) {\n return undefined;\n }\n return worldViewerWindow.g_VideoSource;\n};\n/**\n * VideoSource (SET)\n * @param videoSource MediaElementAudioSourceNode\n */ export const setVideoSource = (videoSource)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || videoSource === undefined || videoSource === null) {\n return;\n }\n worldViewerWindow.g_VideoSource = videoSource;\n};\n/**\n * VideoGainNode (GET)\n * @returns GainNode|undefined\n */ export const getVideoGainNode = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_VideoGainNode === undefined || worldViewerWindow.g_VideoGainNode === null) {\n return undefined;\n }\n return worldViewerWindow.g_VideoGainNode;\n};\n/**\n * VideoGainNode (SET)\n * @param gainNode GainNode\n */ export const setVideoGainNode = (gainNode)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || gainNode === undefined || gainNode === null) {\n return;\n }\n worldViewerWindow.g_VideoGainNode = gainNode;\n};\n/**\n * VideoHlsConfig (GET)\n * @returns HlsConfig|undefined\n */ export const getVideoHlsConfig = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_VideoHlsConfig === undefined || worldViewerWindow.g_VideoHlsConfig === null) {\n return undefined;\n }\n return worldViewerWindow.g_VideoHlsConfig;\n};\n/**\n * VideoHlsConfig (SET)\n * @param updatedConfig HlsConfig\n */ export const setVideoHlsConfig = (updatedConfig)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || updatedConfig === undefined || updatedConfig === null) {\n return;\n }\n worldViewerWindow.g_VideoHlsConfig = updatedConfig;\n};\n/**\n * TextureCanvasList (GET)\n * @returns (CHELAudio|null)[]\n */ export const getTextureCanvasList = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_TextCanvasList === undefined || worldViewerWindow.g_TextCanvasList === null) {\n return [];\n }\n return worldViewerWindow.g_TextCanvasList;\n};\n/**\n * TextureCanvasList(SET)\n * @remarks\n * \u5FC5\u8981\u3042\u308C\u3070null\u3092\u8A2D\u5B9A\n * @param textureCanvas HTMLCanvasElement\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\n * @param index \u8A2D\u5B9A\u53EF\u80FD\u306A\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\n */ export const setTextureCanvasList = (textureCanvas, index)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_TextCanvasList === undefined || worldViewerWindow.g_TextCanvasList === null) {\n return;\n }\n worldViewerWindow.g_TextCanvasList[index] = textureCanvas;\n};\n/**\n * ATextureCanvasList\u306B\u51E6\u7406\u306E\u6D41\u308C\u4E0ANull\u3092\u8A2D\u5B9A\n */ export const pushNullToTextureCanvasList = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_TextCanvasList === undefined || worldViewerWindow.g_TextCanvasList === null) {\n return;\n }\n worldViewerWindow.g_TextCanvasList.push(null);\n};\n/**\n * GyroActiveToggle (GET)\n * @returns Boolean\n */ export const getGyroActiveToggle = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_GyroActive === undefined || worldViewerWindow.g_GyroActive === null) {\n return false;\n }\n return worldViewerWindow.g_GyroActive;\n};\n/**\n * GyroActiveToggle(SET)\n * boolean\u4EE5\u5916\u304C\u9055\u3046\u5F62\u5F0F\u3067\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n * @param toggle\n */ export const setGyroActiveToggle = (toggle)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof toggle !== 'boolean') {\n return;\n }\n worldViewerWindow.g_GyroActive = toggle;\n};\n/**\n * UploadedFileBuffer (GET)\n * @remarks\n * \u672A\u4F7F\u7528\n * @returns string|ArrayBuffer|undefined\n */ export const getUploadedFileBuffer = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_hel_UploadFileImage === undefined || worldViewerWindow.g_hel_UploadFileImage === null) {\n return undefined;\n }\n return worldViewerWindow.g_hel_UploadFileImage;\n};\n/**\n * UploadedFileBuffer (SET)\n * @param buffer String\u578B | ArrayBuffer\u578B | Null\n */ export const setUploadedFileBuffer = (buffer)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return;\n }\n worldViewerWindow.g_hel_UploadFileImage = buffer;\n};\n/**\n * VCUID (GET)\n * @returns String|undefined\n */ export const getVCUID = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_VCUID === undefined || worldViewerWindow.g_VCUID === null || worldViewerWindow.g_VCUID.length === 0) {\n return undefined;\n }\n return worldViewerWindow.g_VCUID;\n};\n/**\n * VCUID (SET)\n * @param vcuid unknown\n */ export const setVCUID = (vcuid)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof vcuid !== 'string') {\n return;\n }\n worldViewerWindow.g_VCUID = vcuid;\n};\n/**\n * Peer (GET)\n * @returns Peer|undefined\n */ export const getPeer = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_peer === undefined || worldViewerWindow.g_peer === null) {\n return undefined;\n }\n return worldViewerWindow.g_peer;\n};\n/**\n * Peer (SET)\n * @param peer Peer\n */ export const setPeer = (peer)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || peer === undefined || peer === null) {\n return;\n }\n worldViewerWindow.g_peer = peer;\n};\n/**\n * SkywayName (GET)\n * @returns String\n */ export const getSkywayName = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_Skyway_MyName === undefined || worldViewerWindow.g_Skyway_MyName === null || worldViewerWindow.g_Skyway_MyName.length === 0) {\n return 'Me';\n }\n return worldViewerWindow.g_Skyway_MyName;\n};\n/**\n * SkywayName (SET)\n * @param name unknown\n */ export const setSkywayName = (name)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof name !== 'string') {\n return;\n }\n worldViewerWindow.g_Skyway_MyName = name;\n};\n/**\n * LocalStream (GET)\n * @returns MediaStream|undefined\n */ export const getLocalStream = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_localStream === undefined || worldViewerWindow.g_localStream === null) {\n return undefined;\n }\n return worldViewerWindow.g_localStream;\n};\n/**\n * LocalStream (SET)\n * @param mediaStream MediaStream\n */ export const setLocalStream = (mediaStream)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || mediaStream === undefined || mediaStream === null) {\n return;\n }\n worldViewerWindow.g_localStream = mediaStream;\n};\n/**\n * SkywayKey (GET)\n * @returns String\n */ export const getSkywayKey = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_SKYWAY_KEY === undefined || worldViewerWindow.g_SKYWAY_KEY === null || worldViewerWindow.g_SKYWAY_KEY.length === 0) {\n return '37825849-7771-49bd-890e-61971fb4f431';\n }\n return worldViewerWindow.g_SKYWAY_KEY;\n};\n/**\n * SkywayKey (SET)\n * @remarks\n * \u672A\u4F7F\u7528\n * @param key unknown\n */ export const setSkywayKey = (key)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof key !== 'string') {\n return;\n }\n worldViewerWindow.g_SKYWAY_KEY = key;\n};\n/**\n * MeshSkywayRoom (GET)\n * @returns MeshRoom|undefined\n */ export const getSkywayRoom = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_room === undefined || worldViewerWindow.g_room === null) {\n return undefined;\n }\n return worldViewerWindow.g_room;\n};\n/**\n * MeshSkywayRoom (SET)\n * @param meshRoom MeshRoom\n */ export const setSkywayRoom = (meshRoom)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || meshRoom === undefined || meshRoom === null) {\n return;\n }\n worldViewerWindow.g_room = meshRoom;\n};\n/**\n * SkywayAvatarNum(GET)\n * @remarks\n * \u672A\u4F7F\u7528\n * @returns Number\n */ export const getSkywayAvatarNumber = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_Skyway_MyAvatar === undefined || worldViewerWindow.g_Skyway_MyAvatar === null) {\n return 0;\n }\n return worldViewerWindow.g_Skyway_MyAvatar;\n};\n/**\n * SkywayAvatarNum(SET)\n * @remarks\n * avatarNum\u304Cnumber\u3067\u306A\u304F\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n *\n * @param avatarNum \u30A2\u30D0\u30BF\u30FC\u756A\u53F7\n */ export const setSkywayAvatarNumber = (avatarNum)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return;\n }\n worldViewerWindow.g_Skyway_MyAvatar = avatarNum;\n};\n/**\n * SkywayAvatarNum(GET)\n * @returns Number\n */ export const getSkywayAvatarNumberForSend = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_Skyway_MyAvatar_ForSend === undefined || worldViewerWindow.g_Skyway_MyAvatar_ForSend === null) {\n return 0;\n }\n return worldViewerWindow.g_Skyway_MyAvatar_ForSend;\n};\n/**\n * SkywayAvatarNum(SET)\n * @remarks\n * avatarNum\u304Cnumber\u3067\u306A\u304F\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n *\n * @param avatarNum \u30A2\u30D0\u30BF\u30FC\u756A\u53F7\n */ export const setSkywayAvatarNumberForSend = (avatarNum)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return;\n }\n worldViewerWindow.g_Skyway_MyAvatar_ForSend = avatarNum;\n};\n/*\n * SkywayMyAvatarInformation(SET)\n * \n */ export const SetSkywayMyAvatarInformation = (DownloadToken, UUID)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return;\n }\n worldViewerWindow.g_Skyway_MyAvatar_DownloadToken_ForSend = DownloadToken;\n worldViewerWindow.g_Skyway_MyAvatar_UUID_ForSend = UUID;\n worldViewerWindow.hel_set_cookie(\"MyAvatarUUID\", UUID);\n};\n/*\n * setSkywayMyAvatarDownloadTokenForSend(SET) \n */ export const setSkywayMyAvatarDownloadTokenForSend = (UUID)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return;\n }\n worldViewerWindow.g_Skyway_MyAvatar_UUID_ForSend = UUID;\n};\n/*\n * \u30DE\u30A4\u30A2\u30D0\u30BF\u30FC\u306E\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30C8\u30FC\u30AF\u30F3\u306E\u53D6\u5F97\n * \n */ export const getSkywayMyAvatarDownloadTokenForSend = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_Skyway_MyAvatar_DownloadToken_ForSend === undefined || worldViewerWindow.g_Skyway_MyAvatar_DownloadToken_ForSend === null) {\n return \"\";\n }\n return worldViewerWindow.g_Skyway_MyAvatar_DownloadToken_ForSend;\n};\n/*\n * worldViewerWindow.g_Skyway_MyAvatar_UUID_ForSend(GET)\n */ export const getSkywayMyAvatarUUIDForSend = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_Skyway_MyAvatar_UUID_ForSend === undefined || worldViewerWindow.g_Skyway_MyAvatar_UUID_ForSend === null) {\n return \"\";\n }\n return worldViewerWindow.g_Skyway_MyAvatar_UUID_ForSend;\n};\n/**\n * SkywayStartToggle (GET)\n * @returns Boolean\n */ export const getSkywayStartToggle = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_Skyway_Start === undefined || worldViewerWindow.g_Skyway_Start === null) {\n return false;\n }\n return worldViewerWindow.g_Skyway_Start;\n};\n/**\n * SkywayStartToggle(SET)\n * boolean\u4EE5\u5916\u304C\u9055\u3046\u5F62\u5F0F\u3067\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n * @remarks\n * \u672A\u4F7F\u7528\n * @param toggle\n */ export const setSkywayStartToggle = (toggle)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof toggle !== 'boolean') {\n return;\n }\n worldViewerWindow.g_Skyway_Start = toggle;\n};\n/**\n * SkywayMicStateTimer (GET)\n * @returns NodeJS.Timer|undefined\n */ export const getSkywayMicStateTimer = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_skyway_set_mic_state_timer === undefined || worldViewerWindow.g_skyway_set_mic_state_timer === null) {\n return undefined;\n }\n return worldViewerWindow.g_skyway_set_mic_state_timer;\n};\n/**\n * SkywayMicStateTimer (SET)\n * @param timer NodeJS.Timer\n */ export const setSkywayMicStateTimer = (timer)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || timer === undefined || timer === null) {\n return;\n }\n worldViewerWindow.g_skyway_set_mic_state_timer = timer;\n};\n/**\n * SkywayPlayerList (GET)\n * @returns (CHELSkywayPlayer|null)[]\n */ export const getSkywayPlayerList = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_SkywayPlayerList === undefined || worldViewerWindow.g_SkywayPlayerList === null) {\n return [];\n }\n return worldViewerWindow.g_SkywayPlayerList;\n};\n/**\n * SkywayPlayerList(SET)\n * @remarks\n * \u5FC5\u8981\u3042\u308C\u3070null\u3092\u8A2D\u5B9A\n * @param skywayPlayer CHELSkywayPlayer\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\n * @param index \u8A2D\u5B9A\u53EF\u80FD\u306A\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\n */ export const setSkywayPlayerList = (skywayPlayer, index)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_SkywayPlayerList === undefined || worldViewerWindow.g_SkywayPlayerList === null) {\n return;\n }\n worldViewerWindow.g_SkywayPlayerList[index] = skywayPlayer;\n};\n/**\n * XrwFriendCode (GET)\n * @remarks\n * XRWorldIngame\u306B\u3066\u5B9A\u7FA9\u3042\u308A\uFF08helidor_front.js)\n * heliodor.js\u3084CPP\u5074\u3067\u3082\u53C2\u7167\u3042\u308B\u305F\u3081\u5B9A\u7FA9\u306F\u5FC5\u8981\n *\n * @returns String\n */ export const getXrwFriendCode = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_xrwFriendCode === undefined || worldViewerWindow.g_xrwFriendCode === null || worldViewerWindow.g_xrwFriendCode.length === 0) {\n return '';\n }\n return worldViewerWindow.g_xrwFriendCode;\n};\n/**\n * XrwFriendCode (SET)\n * @remarks\n * \u672A\u4F7F\u7528\n * XRWorldIngame\u306B\u3066\u5B9A\u7FA9\u3042\u308A\uFF08helidor_front.js)\n * heliodor.js\u3084CPP\u5074\u3067\u3082\u53C2\u7167\u3042\u308B\u305F\u3081\u5B9A\u7FA9\u306F\u5FC5\u8981\n *\n * @param key unknown\n */ export const setXrwFriendCode = (key)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof key !== 'string') {\n return;\n }\n worldViewerWindow.g_xrwFriendCode = key;\n};\n/**\n * XrwDataFolderName (GET)\n * @remarks\n * XRWorldIngame\u306B\u3066\u5B9A\u7FA9\u3042\u308A\uFF08helidor_front.js)\n *\n * @returns String\n */ export const getXrwDataFolderName = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_DataFolderName === undefined || worldViewerWindow.g_DataFolderName === null || worldViewerWindow.g_DataFolderName.length === 0) {\n return '';\n }\n return worldViewerWindow.g_DataFolderName;\n};\n/**\n * XrwDataFolderName (SET)\n * @remarks\n * \u672A\u4F7F\u7528\n * XRWorldIngame\u306B\u3066\u5B9A\u7FA9\u3042\u308A\uFF08helidor_front.js)\n *\n * @param key unknown\n */ export const setXrwDataFolderName = (key)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof key !== 'string') {\n return;\n }\n worldViewerWindow.g_DataFolderName = key;\n};\n/**\n * UseSkywayAudioGainToggle (GET)\n * @remarks\n * \u672A\u4F7F\u7528\n * XRWorldIngame\u306B\u3066\u5B9A\u7FA9\u3042\u308A\uFF08helidor_skyway_xrw.js)\n * @returns Boolean\n */ export const getUseSkywayAudioGainToggle = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_hel_UseSkywayAudioGain === undefined || worldViewerWindow.g_hel_UseSkywayAudioGain === null) {\n return false;\n }\n return worldViewerWindow.g_hel_UseSkywayAudioGain;\n};\n/**\n * UseSkywayAudioGainToggle(SET)\n * boolean\u4EE5\u5916\u304C\u9055\u3046\u5F62\u5F0F\u3067\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n * @remarks\n * \u672A\u4F7F\u7528\n * XRWorldIngame\u306B\u3066\u5B9A\u7FA9\u3042\u308A\uFF08helidor_skyway_xrw.js)\n * @param toggle\n */ export const setUseSkywayAudioGainToggle = (toggle)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof toggle !== 'boolean') {\n return;\n }\n worldViewerWindow.g_hel_UseSkywayAudioGain = toggle;\n};\n/**\n * SceneJson (GET)\n * @remarks\n * @returns any\n */ export const getSceneJson = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_SceneJson === undefined || worldViewerWindow.g_SceneJson === null) {\n return;\n }\n return worldViewerWindow.g_SceneJson;\n};\n/**\n * SceneJson (SET)\n * @remarks\n * @param json\n */ export const setSceneJson = (json)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof json !== 'string') {\n return;\n }\n worldViewerWindow.g_SceneJson = json;\n};\n/**\n * SceneJsonPath (GET)\n * @remarks\n * @returns string\n */ export const getSceneJsonPath = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_SceneJsonPath === undefined || worldViewerWindow.g_SceneJsonPath === null) {\n return;\n }\n return worldViewerWindow.g_SceneJsonPath;\n};\n/**\n * SceneJsonPath (SET)\n * @remarks\n * @param path\n */ export const setSceneJsonPath = (path)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof path !== 'string') {\n return;\n }\n worldViewerWindow.g_SceneJsonPath = path;\n};\n/**\n * VideoInfo (GET)\n * @remarks\n * @returns any\n */ export const getVideoInfo = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_VideoInfo === undefined || worldViewerWindow.g_VideoInfo === null) {\n return;\n }\n return worldViewerWindow.g_VideoInfo;\n};\n/**\n * VideoInfo (SET)\n * @remarks\n * @param json\n */ export const setVideoInfo = (json)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof json !== 'string') {\n return;\n }\n worldViewerWindow.g_VideoInfo = json;\n};\n/**\n * VideoSourceUrl (GET)\n * @remarks\n * @returns Streaming Video URL\n */ export const getVideoSourceUrl = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_VideoSourceUrl === undefined || worldViewerWindow.g_VideoSourceUrl === null) {\n return;\n }\n return worldViewerWindow.g_VideoSourceUrl;\n};\n/**\n * VideoSourceUrl (SET)\n * @remarks\n * @param url Streaming Video Url\n */ export const setVideoSourceUrl = (url)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof url !== 'string') {\n return;\n }\n worldViewerWindow.g_VideoSourceUrl = url;\n};\n/**\n * SkywayOnTellScreenShareStart (GET)\n * @remarks\n * @returns \u753B\u9762\u5171\u6709\u306E\u958B\u59CB\u4E8B\u524D\u901A\u77E5\u3092\u53D7\u3051\u53D6\u3063\u305F\u3068\u304D\u306B\u547C\u3070\u308C\u308B\u95A2\u6570\n */ export const getSkywayOnTellScreenShareStart = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_hel_OnTellScreenStartFunction === undefined || worldViewerWindow.g_hel_OnTellScreenStartFunction === null) {\n return;\n }\n return worldViewerWindow.g_hel_OnTellScreenStartFunction;\n};\n/**\n * SkywayOnTellScreenShareStart (SET)\n * @remarks\n * @param fn \u753B\u9762\u5171\u6709\u306E\u958B\u59CB\u4E8B\u524D\u901A\u77E5\u3092\u53D7\u3051\u53D6\u3063\u305F\u3068\u304D\u306B\u547C\u3070\u308C\u308B\u95A2\u6570\n */ export const setSkywayOnTellScreenShareStart = (fn)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof fn !== 'function') {\n return;\n }\n worldViewerWindow.g_hel_OnTellScreenStartFunction = fn;\n};\n/**\n * SkywayOnTellWaitScreenShare (GET)\n * @remarks\n * @returns \u753B\u9762\u5171\u6709\u306E\u5F85\u53D7\u958B\u59CB\u901A\u77E5\u3092\u53D7\u3051\u53D6\u3063\u305F\u3068\u304D\u306B\u547C\u3070\u308C\u308B\u95A2\u6570\n */ export const getSkywayOnTellWaitScreenShare = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_hel_OnTellWaitScreenShareFunction === undefined || worldViewerWindow.g_hel_OnTellWaitScreenShareFunction === null) {\n return;\n }\n return worldViewerWindow.g_hel_OnTellWaitScreenShareFunction;\n};\n/**\n * SkywayOnTellWaitScreenShare (SET)\n * @remarks\n * @param fn \u753B\u9762\u5171\u6709\u306E\u5F85\u53D7\u958B\u59CB\u901A\u77E5\u3092\u53D7\u3051\u53D6\u3063\u305F\u3068\u304D\u306B\u547C\u3070\u308C\u308B\u95A2\u6570\n */ export const setSkywayOnTellWaitScreenShare = (fn)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof fn !== 'function') {\n return;\n }\n worldViewerWindow.g_hel_OnTellWaitScreenShareFunction = fn;\n};\n/**\n * SkywayOnScreenShareStarted (GET)\n * @remarks\n * @returns \u753B\u9762\u5171\u6709\u306E\u958B\u59CB\u9023\u7D61\u3092\u53D7\u3051\u53D6\u3063\u305F\u3068\u304D\u306B\u547C\u3070\u308C\u308B\u95A2\u6570\n */ export const getHeliodorSdkVersion = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_HeliodorSDKVersion === undefined || worldViewerWindow.g_HeliodorSDKVersion === null) {\n return HeliodorSDKVersion;\n }\n return worldViewerWindow.g_HeliodorSDKVersion;\n};\n/**\n * SkywayOnScreenShareStarted (SET)\n * @remarks\n * @param version SDK\u30D0\u30FC\u30B8\u30E7\u30F3\n */ export const setHeliodorSdkVersion = (version)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof version !== 'string') {\n return;\n }\n worldViewerWindow.g_HeliodorSDKVersion = version;\n};\n/**\n * ActionProcedureList (GET)\n * @remarks\n * \u30D6\u30EA\u30C3\u30B8\u95A2\u6570\u306E\u8A2D\u5B9A\n */ export const getActionProcedureList = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_ActionProcedureList === undefined || worldViewerWindow.g_ActionProcedureList === null) {\n return [];\n }\n return worldViewerWindow.g_ActionProcedureList;\n};\n/**\n * ActionProcedureList (SET)\n * @param callFunc\n */ export const setActionProcedureList = (callFunc)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || typeof callFunc !== 'function') {\n return;\n }\n worldViewerWindow.g_ActionProcedureList.push(callFunc);\n};\n/**\n * ActionProcedureList (-)\n */ export const cleanActionProcedureList = ()=>{\n for(let i = 0; i < worldViewerWindow.g_ActionProcedureList.length; i += 1){\n delete worldViewerWindow.g_ActionProcedureList[i];\n worldViewerWindow.g_ActionProcedureList[i] = undefined;\n }\n worldViewerWindow.g_ActionProcedureList = [];\n};\n/**\n * AnimationFrameRequest(SET)\n * @param callFunc\n */ export const setAnimationFrameRequest = (id)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return;\n }\n worldViewerWindow.g_AnimationFrameRequest = id;\n};\n/**\n * AnimationFrameRequest(GET)\n * @remarks\n * \n */ export const getAnimationFrameRequest = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_AnimationFrameRequest === undefined || worldViewerWindow.g_AnimationFrameRequest === null) {\n return -1;\n }\n return worldViewerWindow.g_AnimationFrameRequest;\n};\n/**\n * XRSession(SET)\n * @param callFunc\n */ export const setXRSession = (xrsession)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return;\n }\n worldViewerWindow.g_XRSession = xrsession;\n};\n/**\n * XRSession(GET)\n * @remarks\n * \n */ export const getXRSession = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_XRSession === undefined || worldViewerWindow.g_XRSession === null) {\n return -1;\n }\n return worldViewerWindow.g_XRSession;\n};\nworldViewerWindow.g_CanvasLayerShow = {};\n/**\n * CanvasLayerShow(SET)\n * @param callFunc\n */ export const setCanvasLayerShow = (LayerName, show)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return;\n }\n worldViewerWindow.g_CanvasLayerShow[LayerName] = show;\n};\n/**\n * CanvasLayerShow(GET)\n * @remarks\n * \n */ export const getCanvasLayerShow = (LayerName)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return false;\n }\n return worldViewerWindow.g_CanvasLayerShow[LayerName];\n};\n", "import { worldViewerWindow } from '../const';\nimport { getTextureCanvasList, pushNullToTextureCanvasList } from './dataOps';\n/**\n * MainCanvasDOMElement (GET)\n * @returns String\u578B\u307E\u305F\u306Fundefined\n */ export const getMainCanvasDOMElement = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_MainCanvas === undefined || worldViewerWindow.g_MainCanvas === null) {\n return undefined;\n }\n return worldViewerWindow.g_MainCanvas;\n};\n/**\n * MainCanvasDOMElement(SET)\n * @remarks\n * targetMainCanvas\u304CHTMLCanvasElement\u3067\u306A\u304F\u5165\u3063\u3066\u304F\u308B\u53EF\u80FD\u6027\u3082\u8003\u3048\u3089\u308C\u308B\u305F\u3081unknown\u578B\u3067\u5B9A\u7FA9\n *\n * @param targetMainCanvas \u66F4\u65B0\u4E88\u5B9A\u306E\u30E1\u30A4\u30F3\u30AD\u30E3\u30F3\u30D0\u30B9\n */ export const setMainCanvasDOMElement = (targetMainCanvas)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || targetMainCanvas === undefined || targetMainCanvas === null) {\n return;\n }\n worldViewerWindow.g_MainCanvas = targetMainCanvas;\n};\n/**\n * WebGLContext (GET)\n * @returns WebGLRenderingContext|undefined\n */ export const getWebGLRenderingContext = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_WebglContext === undefined || worldViewerWindow.g_WebglContext === null) {\n return undefined;\n }\n return worldViewerWindow.g_WebglContext;\n};\n/**\n * WebGLContext (SET)\n * @param webglContext WebGLRenderingContext\u578B\n */ export const setWebGLRenderingContext = (webglContext)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || webglContext === undefined || webglContext === null) {\n return;\n }\n worldViewerWindow.g_WebglContext = webglContext;\n};\n/**\n * MainCanvas4XrDOMElement (GET)\n * @returns HTMLCanvasElement|undefined\n */ export const getMainCanvas4XrDOMElement = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_MainCanvas === undefined || worldViewerWindow.g_MainCanvas === null) {\n return undefined;\n }\n return worldViewerWindow.g_MainCanvas;\n};\n/**\n * MainCanvas4XrDOMElement (SET)\n * @param mainCanvas4Xr HTMLCanvasElement\u578B\n */ // export const setMainCanvas4XrDOMElement = (mainCanvas4Xr: HTMLCanvasElement) => {\n// if (\n// worldViewerWindow === undefined ||\n// worldViewerWindow === null ||\n// mainCanvas4Xr === undefined ||\n// mainCanvas4Xr === null\n// ) {\n// return;\n// }\n// worldViewerWindow.g_MainCanvas4XR = mainCanvas4Xr;\n// };\n/**\n * Video (GET)\n * @returns HTMLVideoElement|undefined\n */ export const getVideo = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_Video === undefined || worldViewerWindow.g_Video === null) {\n return undefined;\n }\n return worldViewerWindow.g_Video;\n};\n/**\n * Video(SET)\n * @param video HTMLVideoElement | Null\n */ export const setVideo = (video)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null) {\n return;\n }\n worldViewerWindow.g_Video = video;\n};\n/**\n * InputFileDOMElement (GET)\n * @returns HTMLElement|undefined\n */ export const getInputFileDOMElement = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_InputFile === undefined || worldViewerWindow.g_InputFile === null) {\n return undefined;\n }\n return worldViewerWindow.g_InputFile;\n};\n/**\n * InputFileDOMElement (SET)\n * @remarks\n * \u672A\u4F7F\u7528\n * @param inputFile HTMLElement\u578B\n */ export const setInputFileDOMElement = (inputFile)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || inputFile === undefined || inputFile === null) {\n return;\n }\n worldViewerWindow.g_InputFile = inputFile;\n};\n/**\n * ConfigUrlDOMElement (GET)\n * @returns HTMLElement|undefined\n */ export const getConfigUrlDOMElement = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_configurl === undefined || worldViewerWindow.g_configurl === null) {\n return undefined;\n }\n return worldViewerWindow.g_configurl;\n};\n/**\n * ConfigUrlDOMElement (SET)\n * @remarks\n * \u672A\u4F7F\u7528\n * @param configUrl HTMLElement\u578B\n */ export const setConfigUrlDOMElement = (configUrl)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || configUrl === undefined || configUrl === null) {\n return;\n }\n worldViewerWindow.g_configurl = configUrl;\n};\n/**\n * LocalTextConfigUrlDOMElement (GET)\n * @returns HTMLElement|undefined\n */ export const getLocalTextConfigUrlDOMElement = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_localText_configurl === undefined || worldViewerWindow.g_localText_configurl === null) {\n return undefined;\n }\n return worldViewerWindow.g_localText_configurl;\n};\n/**\n * LocalTextConfigUrlDOMElement (SET)\n * @remarks\n * \u672A\u4F7F\u7528\n * @param localTextConfigUrl HTMLElement\u578B\n */ export const setLocalTextConfigUrlDOMElement = (localTextConfigUrl)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || localTextConfigUrl === undefined || localTextConfigUrl === null) {\n return;\n }\n worldViewerWindow.g_localText_configurl = localTextConfigUrl;\n};\n/**\n * UserNameDOMElement (GET)\n * @returns HTMLElement|undefined\n */ export const getUserNameDOMElement = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_username === undefined || worldViewerWindow.g_username === null) {\n return undefined;\n }\n return worldViewerWindow.g_username;\n};\n/**\n * UserNameDOMElement (SET)\n * @remarks\n * \u672A\u4F7F\u7528\n * @param userName HTMLElement\u578B\n */ export const setUserNameDOMElement = (userName)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || userName === undefined || userName === null) {\n return;\n }\n worldViewerWindow.g_username = userName;\n};\n/**\n * LocalTextUserNameDOMElement (GET)\n * @returns HTMLElement|undefined\n */ export const getLocalTextUserNameDOMElement = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_localText_username === undefined || worldViewerWindow.g_localText_username === null) {\n return undefined;\n }\n return worldViewerWindow.g_localText_username;\n};\n/**\n * LocalTextUserNameDOMElement (SET)\n * @remarks\n * \u672A\u4F7F\u7528\n * @param localTextUserName HTMLElement\u578B\n */ export const setLocalTextUserNameDOMElement = (localTextUserName)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || localTextUserName === undefined || localTextUserName === null) {\n return;\n }\n worldViewerWindow.g_localText_username = localTextUserName;\n};\n/**\n * SkywayMsgDOMElement (GET)\n * @returns HTMLElement|undefined\n */ export const getSkywayMsgDOMElement = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_skyway_msg === undefined || worldViewerWindow.g_skyway_msg === null) {\n return undefined;\n }\n return worldViewerWindow.g_skyway_msg;\n};\n/**\n * SkywayMsgDOMElement (SET)\n * @remarks\n * \u672A\u4F7F\u7528\n * @param skywayMsg HTMLElement\u578B\n */ export const setSkywayMsgDOMElement = (skywayMsg)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || skywayMsg === undefined || skywayMsg === null) {\n return;\n }\n worldViewerWindow.g_skyway_msg = skywayMsg;\n};\n/**\n * SkywayLocalTextDOMElement (GET)\n * @remarks\n * \u672A\u4F7F\u7528\n * @returns HTMLElement|undefined\n */ export const getSkywayLocalTextDOMElement = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_skyway_localText === undefined || worldViewerWindow.g_skyway_localText === null) {\n return undefined;\n }\n return worldViewerWindow.g_skyway_localText;\n};\n/**\n * SkywayLocalTextDOMElement (SET)\n * @remarks\n * \u672A\u4F7F\u7528\n * @param skywayLocalText HTMLElement\u578B\n */ export const setSkywayLocalTextDOMElement = (skywayLocalText)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || skywayLocalText === undefined || skywayLocalText === null) {\n return;\n }\n worldViewerWindow.g_skyway_localText = skywayLocalText;\n};\n/**\n * StatusDOMElement (GET)\n * @returns HTMLElement|undefined\n */ export const getStatusDOMElement = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_Status === undefined || worldViewerWindow.g_Status === null) {\n return undefined;\n }\n return worldViewerWindow.g_Status;\n};\n/**\n * StatusDOMElement (SET)\n * @remarks\n * \u672A\u4F7F\u7528\n * @param status HTMLElement\u578B\n */ export const setStatusDOMElement = (status)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || status === undefined || status === null) {\n return;\n }\n worldViewerWindow.g_Status = status;\n};\n/**\n * LogDOMElement (GET)\n * @returns HTMLElement|undefined\n */ export const getLogDOMElement = ()=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || worldViewerWindow.g_Log === undefined || worldViewerWindow.g_Log === null) {\n return undefined;\n }\n return worldViewerWindow.g_Log;\n};\n/**\n * LogDOMElement (SET)\n * @remarks\n * \u672A\u4F7F\u7528\n * @param status HTMLElement\u578B\n */ export const setLogDOMElement = (status)=>{\n if (worldViewerWindow === undefined || worldViewerWindow === null || status === undefined || status === null) {\n return;\n }\n worldViewerWindow.g_Log = status;\n};\n/**\n * @remarks\n * \u6B21\u306E\u30AD\u30E3\u30F3\u30D0\u30B9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u756A\u53F7\u3092\u53D6\u5F97\n */ export const defineNextTextCanvasIndex = ()=>{\n const canvasList = getTextureCanvasList();\n for(let index = 0; index < canvasList.length; index++){\n if (canvasList[index] === null) {\n return index;\n }\n }\n pushNullToTextureCanvasList();\n return canvasList.length - 1;\n};\n/**\n * \u672A\u4F7F\u7528\n */ export const hel_InputFileClick = ()=>{\n const inputFile = getInputFileDOMElement();\n if (inputFile !== undefined) {\n inputFile.click();\n }\n};\n/**\n * \u672A\u4F7F\u7528\n */ export const hel_toggleFullScreen = async ()=>{\n const mainCanvas = getMainCanvasDOMElement();\n if (!document.fullscreenEnabled || mainCanvas === undefined) {\n return;\n }\n if (!document.fullscreenElement) {\n await mainCanvas.requestFullscreen();\n } else {\n await document.exitFullscreen();\n }\n};\n/**\n * \u672A\u4F7F\u7528\n */ export const hel_backToTitle = ()=>{\n location.reload();\n};\n/**\n * \u672A\u4F7F\u7528\n */ export const hel_openLicensePage = ()=>{\n worldViewerWindow.hel_openPage('data/licenselist.html');\n};\n", "import { IOS_VER_15, IPHONE_USER_AGENT_REGS, MOBILE_USER_AGENT_REGS, worldViewerWindow } from '../const';\nimport { setLoggedInStatusToggle } from './dataOps';\n/**\n * \u672A\u4F7F\u7528\n */ export const hel_isChrome = ()=>{\n return worldViewerWindow.navigator.userAgent.toLowerCase().indexOf('chrome') != -1;\n};\n/**\n * \u672A\u4F7F\u7528\n */ export const hel_isAndroid = ()=>{\n return worldViewerWindow.navigator.userAgent.toLowerCase().indexOf('android') != -1;\n};\nexport const hel_isMobile = ()=>{\n if (hel_isiPad()) {\n return true;\n }\n return worldViewerWindow.navigator.userAgent.search(MOBILE_USER_AGENT_REGS) !== -1;\n};\nexport const hel_isiPhone = ()=>{\n if (hel_isiPad()) {\n return true;\n }\n return worldViewerWindow.navigator.userAgent.search(IPHONE_USER_AGENT_REGS) !== -1;\n};\nconst hel_isiPad = ()=>{\n const agent = worldViewerWindow.navigator.userAgent.toLowerCase();\n return agent.indexOf('ipad') > -1 || agent.indexOf('macintosh') > -1 && 'ontouchend' in document;\n};\nexport const hel_isMac = ()=>{\n const agent = worldViewerWindow.navigator.userAgent.toLowerCase();\n return agent.indexOf('macintosh') > -1;\n};\nexport const hel_isFirefox = ()=>{\n return window.navigator.userAgent.toLowerCase().indexOf('firefox') != -1;\n};\nworldViewerWindow.hel_isFirefox = hel_isFirefox;\nexport const hel_getiOSVersion = ()=>{\n if (/iP(hone|od|ad)/.test(navigator.platform)) {\n const v = navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n return parseInt(v[1], 10) * 100 + parseInt(v[2], 10);\n }\n return 0;\n};\n/**\n * \u672A\u4F7F\u7528\n */ export const hel_isiOS14Under = ()=>{\n if (!hel_isiPhone()) {\n return false;\n }\n return hel_getiOSVersion() < IOS_VER_15;\n};\n//\nexport const hel_isLangJa = ()=>{\n const browserLang = worldViewerWindow.navigator.languages && worldViewerWindow.navigator.languages[0] || worldViewerWindow.navigator.language || worldViewerWindow.navigator.userLanguage || worldViewerWindow.navigator.browserLanguage;\n return browserLang === 'ja' || browserLang === 'ja-JP';\n};\n/**\n * \u672A\u4F7F\u7528\n */ export const hel_setLogined = (logined)=>setLoggedInStatusToggle(logined)\n;\n/**\n * @remarks\n * macM1\u74B0\u5883\u7528RenderTypes\u8FD4\u5374\u95A2\u6570\n */ export const defineYourRenderTypes = ()=>{\n // TODO \u73FE\u5728\u624B\u52D5\u904B\u7528\u3002macM1@Local\u74B0\u5883\u30C6\u30B9\u30C8\u6642\u4ED5\u69D8\n // dotEnv\u30D1\u30C3\u30B1\u30FC\u30B8\u3092.env\u306B\u3066\u904B\u7528\u3092\u691C\u8A0E\n // return ['webgl', 'experimental-webgl', 'webgl2'];\n return [\n 'webgl',\n 'experimental-webgl'\n ];\n};\n", "const formatDate = (date)=>{\n return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()} ${date.getHours()}:${date.getMinutes()} ${date.getSeconds()}`;\n};\nexport const getNowDate = ()=>{\n const date = new Date();\n return formatDate(date);\n};\nexport const debugLog = (text, ...optionalParams)=>{\n // TODO \u4ECA\u5F8Cdotenv\u3092\u5C0E\u5165\u3057\u3001\u74B0\u5883\u5909\u6570\u5225\u306BdebugLog\u3092\u8868\u793A\u3057\u306A\u3044\u3088\u3046\u306B\u8A2D\u5B9A\u3082\u53EF\u80FD\n // tslint:disable-next-line:no-console\n console.log(`[ ${getNowDate()} ] ${text} `, ...optionalParams);\n};\n", "import { DATA_FOLDER_NAME } from '../const';\nimport { getGyroActiveToggle } from './dataOps';\nimport { getMainCanvasDOMElement, getMainCanvas4XrDOMElement } from './domOps';\nimport { hel_getiOSVersion, hel_isLangJa, hel_isMac, hel_isMobile } from './platform';\nimport { debugLog } from '../debugLog';\n/**\n * Common \u521D\u671F\uFFFD?\n * @param type\n * @param characterType\n * @param args1\n * @param strArgs0\n * @param canTouch\n * @param isMultiPlay\n * @param isXr\n */ export const requestBootStrapGameEngine = (type, characterType, args1, strArgs0, canTouch, isMultiPlay, isXr)=>{\n if (Module.ccall === undefined) {\n return;\n }\n const mainCanvas = getMainCanvasDOMElement();\n const mainCanvas4Xr = getMainCanvas4XrDOMElement();\n const width = isXr && mainCanvas4Xr !== undefined ? mainCanvas4Xr.width : mainCanvas !== undefined ? mainCanvas.width : -1;\n const height = isXr && mainCanvas4Xr !== undefined ? mainCanvas4Xr.height : mainCanvas !== undefined ? mainCanvas.height : -1;\n if (width < 0 || height < 0) {\n debugLog(`[ requestBootStrapGameEngine ] canvas is not found for target env`);\n return;\n }\n Module.ccall('Start', '', [\n 'int',\n 'int',\n 'int',\n 'int',\n 'int',\n 'int',\n 'int',\n 'int',\n 'int',\n 'int',\n 'int',\n 'string',\n 'string',\n 'boolean'\n ], [\n type,\n width,\n height,\n hel_isMobile() ? 1 : 0,\n hel_getiOSVersion(),\n hel_isMac() ? 1 : 0,\n canTouch ? 1 : 0,\n hel_isLangJa() ? 1 : 0,\n characterType,\n args1,\n isMultiPlay ? 1 : 0,\n strArgs0,\n DATA_FOLDER_NAME,\n isXr\n ]);\n};\n/**\n * COMMON\n */ export const requestToDrawFrame = ()=>{\n if (Module.ccall !== undefined) {\n Module.ccall('DrawFrame', '', [], []);\n }\n};\n/**\n * COMMON\n * @param procedureId\n * @param order\n */ export const requestProcedureCallFor = (procedureId, order)=>{\n if (Module.ccall !== undefined) {\n return Module.ccall('SetText', 'int', [\n 'int',\n 'string'\n ], [\n procedureId,\n order\n ]);\n } else {\n return 0;\n }\n};\n/**\n * Skyway\n * @param data\n */ export const requestSendingReceivedPacketsFromSkyway = (data)=>{\n if (Module.ccall !== undefined) {\n Module.ccall('ReceiveSkywayData', '', [\n 'string'\n ], [\n data\n ]);\n }\n};\n/**\n * XR\n * @param vrcameradata\n */ export const requestToSetVrCameraPointer = (vrcameradata)=>{\n if (Module.ccall !== undefined) {\n Module.ccall('SetVRCameraValue', '', [\n 'float'\n ], [\n vrcameradata\n ]);\n }\n};\n/**\n * XR\n * @param data\n */ export const requestSetVrPointer = (data)=>{\n if (Module.ccall !== undefined) {\n Module.ccall('SetVRValue', '', [\n 'float'\n ], [\n data\n ]);\n }\n};\n/**\n * XR\n * @version 2.9.0\n * @param pose\n */ export const requestSetVrPosePointer = (pose)=>{\n if (Module.ccall !== undefined) {\n Module.ccall('SetVRPoseValue', '', [\n 'float'\n ], [\n pose\n ]);\n }\n};\n/**\n * XR\u3002ctx\u7D4C\u7531\n */ export const requestToBindFrameBufferOf = (glLayer)=>{\n if (Module.ctx !== undefined && Module.ctx !== null && glLayer !== undefined) {\n Module.ctx.bindFramebuffer(Module.ctx.FRAMEBUFFER, glLayer.framebuffer);\n }\n};\n/**\n * XR\u3002ctx\u7D4C\u7531\n */ export const requestToReleaseBoundFrameBuffer = ()=>{\n if (Module.ctx !== undefined && Module.ctx !== null) {\n Module.ctx.bindFramebuffer(Module.ctx.FRAMEBUFFER, null);\n }\n};\n/**\n * XR\n * @param cameradata\n */ export const requestIfCameraFpsValueAvailable = (cameradata)=>{\n if (Module.ccall !== undefined) {\n return Module.ccall('GetFPSCameraValue', 'boolean', [\n 'float'\n ], [\n cameradata\n ]);\n }\n return false;\n};\n/**\n * XR\n * @param target\n */ export const requestToGetValueOf = (target)=>{\n if (Module.ccall !== undefined) {\n return Module.getValue(target, 'float');\n }\n return 0;\n};\n/**\n * XR\n * @param controllerNum\n * @param activeData\n * @param controllerData {float}\n * @param gamePadData {float}\n */ export const requestVRControllerValue = (controllerNum, activeData, controllerData, gamePadData)=>{\n if (Module.ccall !== undefined) {\n return Module.ccall('SetVRControllerValues', '', [\n 'number',\n 'number',\n 'float',\n 'float'\n ], [\n controllerNum,\n activeData,\n controllerData,\n gamePadData\n ]);\n }\n return false;\n};\n/**\n * Switch to WebXR\n * @param width \n * @param height \n * @returns \n */ export const switchToVR = (width, height)=>{\n if (Module.ccall !== undefined) {\n return Module.ccall('SwitchToVR', '', [\n 'int',\n 'int'\n ], [\n width,\n height\n ]);\n }\n return false;\n};\n/**\n * Switch to None WebXR\n * @param width \n * @param height \n * @returns \n */ export const switchToNoneVR = ()=>{\n if (Module.ccall !== undefined) {\n return Module.ccall('SwitchToNoneVR', '', [], []);\n }\n return false;\n};\n/**\n * DEBUG\n * @param text\n */ export const requestDebugOutput = (text)=>{\n if (Module.ccall !== undefined) {\n Module.ccall('DebugOutput', '', [\n 'string'\n ], [\n text\n ]);\n }\n};\n/**\n * DEBUG\n * @param pointer\n * @param length\n */ export const requestMemoryBytesOutput = (pointer, length)=>{\n if (Module.ccall !== undefined) {\n Module.ccall('DebugMemoryByteOutput', '', [\n 'array',\n 'int'\n ], [\n pointer,\n length\n ]);\n }\n};\n/**\n * [ GUI ]\n */ export const requestResizeWindow = (mainCanvas)=>{\n if (Module.ccall !== undefined && mainCanvas !== undefined) {\n Module.ccall('ResizeWindow', '', [\n 'int',\n 'int',\n 'int',\n 'int'\n ], [\n mainCanvas.width,\n mainCanvas.height,\n mainCanvas.clientWidth,\n mainCanvas.clientHeight\n ]);\n }\n};\n/**\n * [ GYRO ]\n */ export const requestToToggleActivateGyro = ()=>{\n if (Module.ccall !== undefined) {\n Module.ccall('ActiveGyro', '', [\n 'int'\n ], [\n getGyroActiveToggle() ? 1 : 0\n ]);\n }\n};\n/**\n * [ FILE ]\n * @param file\n */ export const requestOnDropFilesBegin = (file)=>{\n if (Module.ccall !== undefined) {\n Module.ccall('OnDropFilesBeginFromJS', '', [\n 'string'\n ], [\n file.name\n ]);\n }\n};\n/**\n * [ FILE ]\n * @param evt\n */ export const requestOnDropFilesProgress = (evt)=>{\n if (Module.ccall !== undefined) {\n Module.ccall('OnDropFilesProgressFromJS', '', [\n 'float'\n ], [\n evt.loaded / evt.total\n ]);\n }\n};\n/**\n * [ FILE ]\n * @param file\n * @param ary_u8\n * @param data\n */ export const requestOnDropFiles = (file, ary_u8, data)=>{\n if (Module.ccall !== undefined) {\n Module.ccall('OnDropFilesFromJS', '', [\n 'string',\n 'number',\n 'int'\n ], [\n file.name,\n data,\n ary_u8.length\n ]);\n }\n};\n/**\n * [ HARDWARE ]\n * @param targetLength\n */ export const requestMemoryAllocate = (targetLength)=>{\n return Module._malloc(targetLength);\n};\n/**\n * [ HARDWARE ]\n * @param ary_u8\n * @param data\n */ export const requestSetDataToHeap = (ary_u8, data)=>{\n Module.HEAPU8.set(ary_u8, data);\n};\n/**\n * [ HARDWARE ]\n * @param data\n */ export const requestReleaseMemoryFor = (data)=>{\n Module._free(data);\n};\n", "import { worldViewerWindow } from '../const';\nimport { getGyroActiveToggle, getVideoGainNode, setGyroActiveToggle } from './dataOps';\nimport { getVideo } from './domOps';\nimport { requestToToggleActivateGyro } from './moduleCaller';\n/**\n * @remarks\n * Video\u306E\u97F3\u58F0\u3092\u30BB\u30C3\u30C8\n * @param volume {number}\n */ export const hel_video_SetVolume = (volume)=>{\n const video = getVideo();\n if (video === undefined) {\n return;\n }\n const gainNode = getVideoGainNode();\n if (gainNode === undefined) {\n // iOS/Mac\u4EE5\u5916\u3067\u306FgainNode\u304C\u751F\u6210\u3055\u308C\u3066\u3044\u306A\u304F\u3066undefined\u306B\u306A\u308B\u305F\u3081\u3001\u76F4\u63A5video\u8981\u7D20\u306B\u8A2D\u5B9A\u3059\u308B\n video.volume = volume;\n return;\n }\n //\tworldViewerWindow.g_Video.volume = volume;\n gainNode.gain.value = volume;\n};\nconst toggleGyroActive = ()=>{\n setGyroActiveToggle(!getGyroActiveToggle());\n requestToToggleActivateGyro();\n return getGyroActiveToggle();\n};\n/**\n * @remarks\n * \u30B8\u30E3\u30A4\u30ED\u3092\u5909\u66F4\n * XRWorldIngame, JRWorld_web, WorldViewer\u306B\u3066\u672A\u4F7F\u7528\n */ worldViewerWindow.toggleGyroActiveRequest = ()=>{\n if (getGyroActiveToggle()) {\n toggleGyroActive();\n return;\n }\n if (DeviceOrientationEvent && DeviceOrientationEvent.requestPermission && typeof DeviceOrientationEvent.requestPermission == 'function') {\n DeviceOrientationEvent.requestPermission().then((permissionState)=>{\n if (permissionState === 'granted') {\n toggleGyroActive();\n }\n }).catch(console.error);\n } else {\n toggleGyroActive();\n }\n};\n", "import { ETextParamType_CurrentUserName, ETextParamType_ScriptCallComponentMethod, ETextParamType_SetMicTalkingState, worldViewerWindow } from './const';\nimport { getActionProcedureList, getAudioList, getLocalStream, getMixerTab, getPeer, getSkyRoomId, getSkywayAvatarNumberForSend, getSkywayMicStateTimer, getSkywayMyAvatarDownloadTokenForSend, getSkywayMyAvatarUUIDForSend, getSkywayName, getSkywayRoom, getSkywayStartToggle, getTextureCanvasList, getWorldId, setActionProcedureList, setCurrentUserName, setMixerDistanceAt, setMixerFaderSettingAt, setMixerMuteAt, setMixerSettingAt, setMixerRealSettingAt, setSkywayAvatarNumber, setSkywayAvatarNumberForSend, setSkywayMicStateTimer, SetSkywayMyAvatarInformation, setSkywayName, setTextureCanvasList, setUploadedFileBuffer } from './logics/dataOps';\nimport { hel_video_SetVolume } from './logics/device';\nimport { defineNextTextCanvasIndex, getConfigUrlDOMElement, getLocalTextConfigUrlDOMElement, getLocalTextUserNameDOMElement, getMainCanvasDOMElement, getInputFileDOMElement, getUserNameDOMElement, getSkywayMsgDOMElement, getSkywayLocalTextDOMElement } from './logics/domOps';\nimport { requestMemoryAllocate, requestOnDropFiles, requestOnDropFilesBegin, requestOnDropFilesProgress, requestProcedureCallFor, requestReleaseMemoryFor, requestSetDataToHeap } from './logics/moduleCaller';\n// Cookie\n/**\n * heliodor, skyway, lib\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @remarks\n * heliodor.js, heliodor_skyway, C++\u5074\u3068Share\u95A2\u6570\n *\n * @param name\n * @param value\n */ worldViewerWindow.hel_set_cookie = (name, value)=>{\n const expires = ';Expires=Thu, 1-Jan-2030 00:00:00 GMT';\n // Cookie needs URL-encode.\n document.cookie = name + '=' + encodeURIComponent(value) + expires;\n};\n/**\n * heliodor, skyway, xr, lib\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @remarks\n * heliodor.js, heliodor_skyway, C++\u5074\u3068Share\u95A2\u6570\n *\n * @param name\n */ worldViewerWindow.hel_get_cookie = (name)=>{\n let matches = document.cookie.match(new RegExp('(?:^|; )' + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + '=([^;]*)'));\n return matches ? decodeURIComponent(matches[1]) : undefined;\n};\n//\n/**\n * heliodor_skyway, xr\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @remarks\n * heliodor.js, heliodor_skyway, C++\u5074\u3068Share\u95A2\u6570\n *\n * @param Type\n * @param Text\n */ worldViewerWindow.hel_setText = (Type, Text)=>{\n return requestProcedureCallFor(Type, Text);\n};\n/**\n * @remarks\n * GUI\u306EItemName\u306B\u4F9D\u5B58\u3057\u305F\u95A2\u6570\n * itemName/componentName/methodName/param\n * @version 2.9.0\n * @param itemName\n * @param componentName\n * @param methodName\n * @param param\n */ worldViewerWindow.hel_script_CallComponentMethod = (itemName, componentName, methodName, param)=>{\n worldViewerWindow.hel_setText(ETextParamType_ScriptCallComponentMethod, itemName + ',' + componentName + ',' + methodName + ',' + param);\n};\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param index\n */ worldViewerWindow.getPlayTimeAudio = (index)=>{\n var ref;\n const audioList = getAudioList();\n if (audioList[index] == null) {\n return 0;\n }\n return ((ref = audioList[index]) === null || ref === void 0 ? void 0 : ref.getPlayTimeAudio()) || 0;\n};\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param type\n * @param volume\n * @param fadeVolume\n * @param distanceVolume\n * @param mute\n */ worldViewerWindow.hel_mixer_SetVolume = (type, volume, mastervolume, fadeVolume, distanceVolume, mute)=>{\n const realVolume = getMixerTab() * volume * mastervolume * fadeVolume * distanceVolume * (mute !== 0 ? 0.0 : 1.0);\n switch(type){\n case worldViewerWindow.HEL_AUDIO_TYPE_WORLD:\n worldViewerWindow.hel_set_cookie('mixervolume_world', volume);\n worldViewerWindow.hel_set_cookie('mixermute_world', mute);\n break;\n case worldViewerWindow.HEL_AUDIO_TYPE_VOICE:\n if (typeof worldViewerWindow.hel_skyway_SetMixerVolume == 'function') {\n worldViewerWindow.hel_skyway_SetMixerVolume(realVolume);\n }\n worldViewerWindow.hel_set_cookie('mixervolume_voice', volume);\n worldViewerWindow.hel_set_cookie('mixermute_voice', mute);\n break;\n case worldViewerWindow.HEL_AUDIO_TYPE_SE:\n worldViewerWindow.hel_set_cookie('mixervolume_se', volume);\n worldViewerWindow.hel_set_cookie('mixermute_se', mute);\n break;\n case worldViewerWindow.HEL_AUDIO_TYPE_SYSTEMSE:\n worldViewerWindow.hel_set_cookie('mixervolume_systemse', volume);\n worldViewerWindow.hel_set_cookie('mixermute_systemse', mute);\n break;\n case worldViewerWindow.HEL_AUDIO_TYPE_VIDEO:\n hel_video_SetVolume(realVolume);\n worldViewerWindow.hel_set_cookie('mixervolume_video', volume);\n worldViewerWindow.hel_set_cookie('mixermute_video', mute);\n break;\n default:\n return;\n }\n setMixerSettingAt(volume, type);\n setMixerRealSettingAt(realVolume, type);\n setMixerFaderSettingAt(fadeVolume, type);\n setMixerDistanceAt(distanceVolume, type);\n setMixerMuteAt(mute, type);\n};\n// MasterSound\nworldViewerWindow.hel_mixer_SetMasterVolume = (volume)=>{\n worldViewerWindow.hel_set_cookie('mixervolume_master', volume);\n};\nworldViewerWindow.hel_mixer_SetMuteMaster = (mute)=>{\n worldViewerWindow.hel_set_cookie('mixermute_master', mute);\n};\n// Texture\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param size\n */ worldViewerWindow.hel_texture_IsPower2Size = (size)=>{\n return (size & size - 1) == 0;\n};\n// Texture Canvas\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param width\n * @param height\n */ worldViewerWindow.createTextCanvas = (width, height)=>{\n const index = defineNextTextCanvasIndex();\n const textCanvas = document.createElement('canvas');\n setTextureCanvasList(textCanvas, index);\n textCanvas.style.visibility = 'hidden';\n textCanvas.width = width;\n textCanvas.height = height;\n return index;\n};\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param index\n */ worldViewerWindow.getTextCanvas = (index)=>{\n const canvasList = getTextureCanvasList();\n if (index < 0 || index >= canvasList.length) {\n return null;\n }\n return getTextureCanvasList()[index];\n};\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param index\n */ worldViewerWindow.getTextCanvasContext = (index)=>{\n const textCanvas = worldViewerWindow.getTextCanvas(index);\n if (textCanvas == null) return null;\n return textCanvas.getContext('2d');\n};\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param index\n */ worldViewerWindow.clearTextCanvas = (index)=>{\n const textCanvas = worldViewerWindow.getTextCanvas(index);\n if (textCanvas == null) return;\n const context = textCanvas.getContext('2d');\n if (context == null) return;\n context.clearRect(0, 0, textCanvas.width, textCanvas.height);\n};\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param index\n */ worldViewerWindow.releaseTextCanvasIndex = (index)=>{\n const canvasList = getTextureCanvasList();\n if (index < 0 || index >= canvasList.length || canvasList[index] === null) {\n return;\n }\n setTextureCanvasList(null, index);\n};\n// TAG\n/**\n * heliodor.js, skyway\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param name\n * @param params\n */ worldViewerWindow.hel_gtag = (name, params)=>{\n if (typeof worldViewerWindow.hel_analytics == 'function') {\n worldViewerWindow.hel_analytics('event', name, params);\n } else if (typeof worldViewerWindow.gtag == 'function') {\n worldViewerWindow.gtag('event', name, params);\n }\n};\n// File Drag & Drop\nconst setFileReaderEvents = (files)=>{\n if (files.length <= 0) {\n return;\n }\n const file = files[0];\n requestOnDropFilesBegin(file);\n //\n const reader = new FileReader();\n reader.onprogress = (evt)=>{\n if (!evt.lengthComputable || evt.total <= 0) {\n return;\n }\n requestOnDropFilesProgress(evt);\n };\n reader.onload = ()=>{\n setUploadedFileBuffer(reader.result);\n const ary_u8 = new Uint8Array(reader.result);\n //\t\t\tconsole.log(\"onload \" + file.name + \" / \" + ary_u8.length);\n const data = requestMemoryAllocate(ary_u8.length);\n requestSetDataToHeap(ary_u8, data);\n requestOnDropFiles(file, ary_u8, data);\n requestReleaseMemoryFor(data);\n };\n reader.readAsArrayBuffer(file);\n};\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n */ worldViewerWindow.hel_beginDropFiles = ()=>{\n const mainCanvas = getMainCanvasDOMElement();\n if (mainCanvas === undefined) {\n return;\n }\n mainCanvas.addEventListener('dragover', (e)=>{\n e.stopPropagation();\n e.preventDefault();\n }, false);\n mainCanvas.addEventListener('dragleave', (e)=>{\n e.stopPropagation();\n e.preventDefault();\n }, false);\n mainCanvas.addEventListener('drop', (e)=>{\n e.stopPropagation();\n e.preventDefault();\n setFileReaderEvents(e.dataTransfer.files || []);\n }, false);\n const inputFile = getInputFileDOMElement();\n if (inputFile !== undefined) {\n inputFile.addEventListener('change', (e)=>{\n e.stopPropagation();\n e.preventDefault();\n // @ts-ignore\n const files = this.files;\n setFileReaderEvents(files || []);\n }, false);\n }\n};\n// configurl\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param show\n */ worldViewerWindow.hel_set_show_TextField_configurl = (show)=>{\n const localTextConfigUrl = getLocalTextConfigUrlDOMElement();\n if (localTextConfigUrl !== undefined) {\n localTextConfigUrl.style.visibility = show ? 'visible' : 'hidden';\n }\n const configUrl = getConfigUrlDOMElement();\n if (configUrl !== undefined) {\n configUrl.style.visibility = show ? 'visible' : 'hidden';\n }\n};\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param x\n * @param y\n * @param width\n * @param height\n */ worldViewerWindow.hel_resize_configurl = (x, y, width, height)=>{\n const configUrl = getConfigUrlDOMElement();\n if (configUrl !== undefined) {\n configUrl.style.left = x + 'px';\n configUrl.style.top = y + 'px';\n }\n const localTextConfigUrl = getLocalTextConfigUrlDOMElement();\n if (localTextConfigUrl !== undefined) {\n localTextConfigUrl.style.width = width + 'px';\n localTextConfigUrl.style.height = height + 'px';\n }\n};\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param text\n */ worldViewerWindow.hel_set_TextField_configurl = (text)=>{\n const localTextConfigUrl = getLocalTextConfigUrlDOMElement();\n if (localTextConfigUrl !== undefined) {\n localTextConfigUrl.value = text;\n }\n};\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param text\n */ worldViewerWindow.hel_set_TextField_configurl_fontSize = (text)=>{\n const localTextConfigUrl = getLocalTextConfigUrlDOMElement();\n if (localTextConfigUrl !== undefined) {\n localTextConfigUrl.style.fontSize = text + 'px';\n }\n};\n// username\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param show\n */ worldViewerWindow.hel_set_show_TextField_UserName = (show)=>{\n const localTextUserName = getLocalTextUserNameDOMElement();\n if (localTextUserName !== undefined) {\n localTextUserName.style.visibility = show ? 'visible' : 'hidden';\n }\n const userName = getUserNameDOMElement();\n if (userName !== undefined) {\n userName.style.visibility = show ? 'visible' : 'hidden';\n }\n};\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param name\n */ worldViewerWindow.hel_set_TextField_UserName = (name)=>{\n //console.log(\"*** A-END\");\n const localTextUserName = getLocalTextUserNameDOMElement();\n //name\u304C 'undefined' \uFF1D\u6587\u5B57\u5217\u3067\u5165\u3063\u3066\u308B\u5834\u5408\u304C\u3042\u308B\n if (localTextUserName === undefined || name === undefined) {\n return;\n }\n localTextUserName.value = name;\n//console.log(\"*** A-worldViewerWindow.g_localText_username(\" + worldViewerWindow.g_localText_username + \")\");\n//console.log(\"*** A-worldViewerWindow.g_localText_username.value(\" + worldViewerWindow.g_localText_username.value + \")\");\n//console.log(\"*** A-name(\" + name + \")\");\n//console.log(\"*** A-END\");\n};\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param byCookie\n */ worldViewerWindow.hel_post_TextField_UserName = (byCookie)=>{\n let result_uname;\n if (Boolean(byCookie)) {\n const uname = worldViewerWindow.hel_get_cookie('playername');\n if (uname !== undefined) {\n if (uname.length > 0) {\n result_uname = uname;\n }\n }\n } else {\n const localTextUserName = getLocalTextUserNameDOMElement();\n if (localTextUserName !== undefined) {\n result_uname = localTextUserName.value;\n }\n }\n if (result_uname === undefined) {\n return;\n }\n // \u6587\u5B57\u5217\u3092\u300E\u5168\u89D210\u6587\u5B57\u3001\u534A\u89D220\u6587\u5B57\u300F\u306E\u5236\u9650\u306B\u5F93\u3044\u3001\u5207\u308A\u53D6\u308B\n var char_num = 0;\n for(var i = 0; i < result_uname.length; i++){\n const c = result_uname[i];\n var incNum = 1;\n if (c.match(/[ -~]/)) {\n incNum = 1;\n } else {\n incNum = 2;\n }\n // 20\u6587\u5B57\u3092\u8D85\u3059\u306A\u3089\u3053\u3053\u3067\u51E6\u7406\u3092\u629C\u3051\u3066\u6587\u5B57\u5217\u3092\u5207\u308A\u53D6\u308B\n if (char_num + incNum > 20) {\n result_uname = result_uname.substring(0, i);\n break;\n }\n char_num += incNum;\n }\n //console.log(\"%s / %d\", result_uname, char_num);\n //Send UserName to c++ side via SetText()\n setCurrentUserName(result_uname);\n worldViewerWindow.hel_setText(ETextParamType_CurrentUserName, result_uname);\n};\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param text\n */ worldViewerWindow.hel_set_TextField_UserName_fontSize = (text)=>{\n const localTextUserName = getLocalTextUserNameDOMElement();\n if (localTextUserName !== undefined) {\n localTextUserName.style.fontSize = text + 'px';\n }\n};\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n */ worldViewerWindow.hel_update_TextField_UserName = ()=>{\n const localTextUserName = getLocalTextUserNameDOMElement();\n const peer = getPeer();\n const skywayName = getSkywayName();\n if (localTextUserName === undefined || peer === undefined) {\n return;\n }\n worldViewerWindow.hel_remove_emoji(localTextUserName);\n const value = localTextUserName.value;\n if (skywayName !== value) {\n setSkywayName(value);\n worldViewerWindow.hel_set_cookie('playername', value);\n }\n worldViewerWindow.hel_skyway_send_myinfo();\n};\n/**\n * heliodor.js\u304B\u3089\u3082C++\u304B\u3089\u3082\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param x\n * @param y\n * @param width\n * @param height\n */ worldViewerWindow.hel_resize_UserName = (x, y, width, height)=>{\n const userName = getUserNameDOMElement();\n if (userName !== undefined) {\n userName.style.left = x + 'px';\n userName.style.top = y + 'px';\n }\n const localTextUserName = getLocalTextUserNameDOMElement();\n if (localTextUserName !== undefined) {\n localTextUserName.style.width = width + 'px';\n localTextUserName.style.height = height + 'px';\n }\n};\n/**\n * heliodor.js, heliodor_skyway_rcp.js, heliodor_skyway_xrw.js, C++\u304B\u3089\u53C2\u7167\u3042\u308A\n * @param show\n */ worldViewerWindow.hel_skyway_set_show_chatbox = (show)=>{\n const msg = getSkywayMsgDOMElement();\n if (msg !== undefined) {\n msg.style.visibility = show ? 'visible' : 'hidden';\n }\n const localText = getSkywayLocalTextDOMElement();\n if (localText === undefined) {\n return;\n }\n localText.style.visibility = show ? 'visible' : 'hidden';\n};\n/**\n * heliodor.js, heliodor_skyway_rcp.js, heliodor_skyway_xrw.js, C++\u304B\u3089\u53C2\u7167\u3042\u308A\n * @param text\n */ worldViewerWindow.hel_skyway_set_TextField_localText_fontSize = (text)=>{\n const skywayLocalText = getSkywayLocalTextDOMElement();\n if (skywayLocalText === undefined) {\n return;\n }\n skywayLocalText.style.fontSize = text + 'px';\n};\n/**\n * heliodor.js, heliodor_skyway_rcp.js, heliodor_skyway_xrw.js, C++\u304B\u3089\u53C2\u7167\u3042\u308A\n * @param x\n * @param y\n * @param width\n * @param height\n */ worldViewerWindow.hel_skyway_resize_chatbox = (x, y, width, height)=>{\n const msg = getSkywayMsgDOMElement();\n if (msg === undefined) {\n return;\n }\n msg.style.left = x + 'px';\n msg.style.top = y + 'px';\n const skywayLocalText = getSkywayLocalTextDOMElement();\n if (skywayLocalText === undefined) {\n return;\n }\n skywayLocalText.style.width = width + 'px';\n skywayLocalText.style.height = height + 'px';\n};\n/**\n * heliodor.js, heliodor_skyway_rcp.js, heliodor_skyway_xrw.js, C++\u304B\u3089\u53C2\u7167\u3042\u308A\n * @remarks\n * TODO\n * agora/skyway/photon/chalcedony\u3067\u4ECA\u5F8CrealtimeEngineSDK\u306B\u5206\u5C90\n * @param focus\n * @virtual\n */ worldViewerWindow.hel_skyway_send_chat_text = (focus = true)=>{\n const skywayLocalText = getSkywayLocalTextDOMElement();\n if (skywayLocalText === undefined || skywayLocalText.value == '') {\n return;\n }\n const value = skywayLocalText.value;\n worldViewerWindow.hel_remove_emoji(skywayLocalText);\n // Send message to all of the peers in the room via websocket\n const replace_text = worldViewerWindow.hel_skyway_to_code_colon(value);\n worldViewerWindow.hel_skyway_send_data('msg:' + replace_text);\n const peer = getPeer();\n const id = peer !== undefined ? peer.id : '';\n worldViewerWindow.hel_skyway_add_text_chat(id, replace_text);\n skywayLocalText.value = '';\n const mainCanvas = getMainCanvasDOMElement();\n if (focus && mainCanvas !== undefined) {\n mainCanvas.focus();\n }\n worldViewerWindow.hel_gtag('SendTextChat', {\n param0: getWorldId()\n });\n};\n/**\n * heliodor.js, heliodor_skyway_rcp.js, heliodor_skyway_xrw.js, C++\u304B\u3089\u53C2\u7167\u3042\u308A\n * @remarks\n * TODO\n * agora/skyway/photon/chalcedony\u3067\u4ECA\u5F8CrealtimeEngineSDK\u306B\u5206\u5C90\n * @virtual\n */ worldViewerWindow.hel_skyway_send_heartbeat = ()=>{\n const room = getSkywayRoom();\n if (room === undefined) {\n return;\n }\n const numOfPlayers = 1 + Object.values(room.getPeerConnections()).length;\n //\tconsole.log(\"hel_skyway_send_heartbeat \" + NumofPlayer);\n worldViewerWindow.sendHeartbeat(getSkyRoomId(), numOfPlayers);\n};\n/**\n * heliodor.js, heliodor_skyway_rcp.js, heliodor_skyway_xrw.js, C++\u304B\u3089\u53C2\u7167\u3042\u308A\n * @remarks\n * TODO\n * agora/skyway/photon/chalcedony\u3067\u4ECA\u5F8CrealtimeEngineSDK\u306B\u5206\u5C90\n * @param peerId\n * @param volume\n * @virtual\n */ worldViewerWindow.hel_skyway_SetVoiceAttenuate = (peerId, volume)=>{\n const Player = worldViewerWindow.hel_skyway_get_player(peerId);\n if (Player == null) return;\n Player.SetVoiceAttenuate(volume);\n};\n/**\n * heliodor_skyway_rcp.js, heliodor_skyway_xrw.js, C++\u304B\u3089\u53C2\u7167\u3042\u308A\n * @remarks\n * TODO\n * agora/skyway/photon/chalcedony\u3067\u4ECA\u5F8CrealtimeEngineSDK\u306B\u5206\u5C90\n * @virtual\n */ worldViewerWindow.hel_skyway_send_myinfo = ()=>{\n // \n worldViewerWindow.hel_skyway_send_data('join:' + getSkywayName() + ':' + getSkywayAvatarNumberForSend() + ':' + (getSkywayStartToggle() ? 1 : 0));\n // \u30A2\u30D0\u30BF\u30FC\u60C5\u5831\u3092\u9001\u4FE1\u3059\u308B\n if (getSkywayAvatarNumberForSend() != -1) {\n worldViewerWindow.hel_skyway_send_data('avatar:' + getSkywayAvatarNumberForSend());\n } else {\n worldViewerWindow.hel_skyway_send_myavatar_downloadToken();\n }\n};\n/**\n * heliodor.js, heliodor_skyway_rcp.js, heliodor_skyway_xrw.js, C++\u304B\u3089\u53C2\u7167\u3042\u308A\n * @remarks\n *\n * TODO\n * agora/skyway/photon/chalcedony\u3067\u4ECA\u5F8CrealtimeEngineSDK\u306B\u5206\u5C90\n *\n * @param param\n * @virtual\n */ worldViewerWindow.hel_skyway_send_data = (param)=>{\n const room = getSkywayRoom();\n if (room === undefined) {\n return;\n }\n room.send(param);\n};\n/**\n * heliodor.js, heliodor_skyway_rcp.js, heliodor_skyway_xrw.js, C++\u304B\u3089\u53C2\u7167\u3042\u308A\n * @param avatar\n */ worldViewerWindow.hel_skyway_set_avatar_forsend = (avatar)=>setSkywayAvatarNumberForSend(avatar)\n;\nworldViewerWindow.hel_skyway_set_avatar = (avatar)=>setSkywayAvatarNumber(avatar)\n;\n// Avatar\n/**\n * heliodor.js, heliodor_skyway_rcp.js, heliodor_skyway_xrw.js, C++\u304B\u3089\u53C2\u7167\u3042\u308A\n * @param avatar\n */ worldViewerWindow.hel_skyway_change_avatar = (avatar)=>{\n setSkywayAvatarNumber(avatar);\n setSkywayAvatarNumberForSend(avatar);\n SetSkywayMyAvatarInformation(\"\", \"\");\n worldViewerWindow.hel_gtag('AvatarChange', {\n param0: getWorldId(),\n param1: avatar\n });\n worldViewerWindow.hel_set_cookie('Avatar', avatar);\n worldViewerWindow.hel_set_cookie(\"MyAvatarUUID\", \"\");\n};\n/**\n * MyAvatar\n */ // UUID\u304B\u3089\u30DE\u30A4\u30A2\u30D0\u30BF\u30FC\u306E\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9URL\u3092\u53D6\u5F97\u3059\u308B \nworldViewerWindow.hel_skyway_send_myavatar_downloadToken = ()=>{\n if (getSkywayAvatarNumberForSend() == -1 && getSkywayMyAvatarDownloadTokenForSend() != \"\") {\n worldViewerWindow.hel_skyway_get_myavatar_url_from_uuid(getSkywayMyAvatarUUIDForSend());\n }\n};\n// \u30DE\u30A4\u30A2\u30D0\u30BF\u30FC\u306E\u540C\u671F\u306B\u5FC5\u8981\u306A\u60C5\u5831\u3092\u767B\u9332\u3059\u308B\nworldViewerWindow.hel_skyway_set_myavatar_information = (DownloadToken, UUID)=>{\n SetSkywayMyAvatarInformation(DownloadToken, UUID);\n};\n// \nworldViewerWindow.hel_skyway_get_myavatar_url_from_uuid = async (uuid)=>{};\n//\nworldViewerWindow.hel_skyway_get_myavatar_url = (token, id)=>{\n return \"\";\n};\n//\nworldViewerWindow.hel_skyway_get_myavatar_uuid_forsend = ()=>{\n return getSkywayMyAvatarUUIDForSend();\n};\n//\nworldViewerWindow.hel_receive_myavatar_token = async (peerid, myavatar_uuid, downloadToken)=>{};\n// \u521D\u56DE\u306E\u30DE\u30A4\u30A2\u30D0\u30BF\u30FC\u53D6\u5F97\u51E6\u7406\nworldViewerWindow.hel_get_myavatar_onloaded = ()=>{};\nconst hel_skyway_detect_voice = (input, analyzer, timeDomainArray, frequencyArray)=>{\n analyzer.getFloatTimeDomainData(timeDomainArray);\n analyzer.getFloatFrequencyData(frequencyArray);\n // @ts-ignore\n const maxDomain = Math.max(...timeDomainArray);\n // console.log('voice!', timeDomainArray, frequencyArray);\n // console.log('voice!', analyzer.minDecibels, analyzer.maxDecibels);\n // console.log('voice!', maxDomain);\n const voice_threshold = 0.05;\n if (maxDomain > voice_threshold) {\n const VolumeRate = (maxDomain * 100.0).toFixed();\n worldViewerWindow.hel_canvas_SetLayoutShow('HUD_Voice', true);\n worldViewerWindow.hel_setText(ETextParamType_SetMicTalkingState, VolumeRate);\n worldViewerWindow.hel_canvas_SetGUIShow('hud_voicechat_on', false);\n } else {\n worldViewerWindow.hel_canvas_SetLayoutShow('HUD_Voice', false);\n worldViewerWindow.hel_setText(ETextParamType_SetMicTalkingState, '0');\n worldViewerWindow.hel_canvas_SetGUIShow('hud_voicechat_on', true);\n }\n};\n/**\n * heliodor.js, heliodor_skyway_rcp.js, heliodor_skyway_xrw.js, C++\u304B\u3089\u53C2\u7167\u3042\u308A\n * TODO\n * agora/skyway/photon/chalcedony\u3067\u4ECA\u5F8CrealtimeEngineSDK\u306B\u5206\u5C90\n * @param state\n * @virtual\n */ worldViewerWindow.hel_skyway_set_mic_state = (state)=>{\n const localStream = getLocalStream();\n if (localStream === undefined) {\n return;\n }\n const tracks = localStream.getAudioTracks();\n if (tracks.length <= 0) {\n return;\n }\n tracks[0].enabled = state;\n if (state) {\n const audioCtx = new AudioContext();\n const input = audioCtx.createMediaStreamSource(localStream);\n const analyzer = audioCtx.createAnalyser();\n input.connect(analyzer);\n const timeDomainArray = new Float32Array(analyzer.fftSize);\n const frequencyArray = new Float32Array(analyzer.frequencyBinCount);\n const timer = setInterval(hel_skyway_detect_voice.bind(null, input, analyzer, timeDomainArray, frequencyArray), 200);\n setSkywayMicStateTimer(timer);\n } else {\n worldViewerWindow.hel_canvas_SetLayoutShow('HUD_Voice', false);\n worldViewerWindow.hel_setText(ETextParamType_SetMicTalkingState, '0');\n const timer = getSkywayMicStateTimer();\n if (timer !== undefined) {\n clearInterval(timer);\n }\n }\n};\n/**\n * heliodor.js, JS\u3001C++\u304B\u3089\u53C2\u7167\u3042\u308A\n * @remarks\n * \u95A2\u6570\u3092\u30BB\u30C3\u30C8\n * @param actionProcedureCall\n * @version ^3.4\n */ worldViewerWindow.hel_action_bridge_add = (actionProcedureCall)=>setActionProcedureList(actionProcedureCall)\n;\n/**\n * @remarks\n * C++\u304B\u3089\u547C\u3073\u51FA\u3057\u306E\u3042\u308B\u30D7\u30ED\u30B7\u30FC\u30B8\u30E3\u30B3\u30FC\u30EB\u578B\u30D6\u30EA\u30C3\u30B8\n * \u73FE\u5728\u3054\u5B8C\u6210\u3092\u8003\u3048hel_action_bridge\u3082\u9023\u643A\u3059\u308B\uFF08heliodor_front.js\u3092\u5229\u7528\u3057\u3066\u3082\u53EF\uFF09\n * @param name\n * @param text\n * @version ^3.4\n */ worldViewerWindow.hel_action_bridge_call = (name, text)=>{\n const procedures = getActionProcedureList();\n for(let i = 0; i < procedures.length; i += 1){\n if (typeof procedures[i] === 'function' && procedures[i](name, text)) {\n return;\n }\n }\n if (typeof worldViewerWindow.hel_action_bridge === 'function') {\n worldViewerWindow.hel_action_bridge(name, text);\n }\n};\n", "/*!\n * SkyWay Copyright(c) 2022 NTT Communications Corporation\n * peerjs Copyright(c) 2013 Michelle Bu <michelle@michellebu.com>\n */ (function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory();\n else if (typeof define === 'function' && define.amd) define([], factory);\n else if (typeof exports === 'object') exports[\"Peer\"] = factory();\n else root[\"Peer\"] = factory();\n})(globalThis, function() {\n return /******/ function(modules) {\n /******/ // The module cache\n /******/ var installedModules = {};\n /******/ /******/ // The require function\n /******/ function __webpack_require__(moduleId) {\n /******/ /******/ // Check if module is in cache\n /******/ if (installedModules[moduleId]) {\n /******/ return installedModules[moduleId].exports;\n /******/ }\n /******/ // Create a new module (and put it into the cache)\n /******/ var module = installedModules[moduleId] = {\n /******/ i: moduleId,\n /******/ l: false,\n /******/ exports: {}\n };\n /******/ /******/ // Execute the module function\n /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/ /******/ // Flag the module as loaded\n /******/ module.l = true;\n /******/ /******/ // Return the exports of the module\n /******/ return module.exports;\n /******/ }\n /******/ /******/ /******/ // expose the modules object (__webpack_modules__)\n /******/ __webpack_require__.m = modules;\n /******/ /******/ // expose the module cache\n /******/ __webpack_require__.c = installedModules;\n /******/ /******/ // define getter function for harmony exports\n /******/ __webpack_require__.d = function(exports, name, getter) {\n /******/ if (!__webpack_require__.o(exports, name)) {\n /******/ Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/ }\n /******/ };\n /******/ /******/ // define __esModule on exports\n /******/ __webpack_require__.r = function(exports) {\n /******/ if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/ Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/ }\n /******/ Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/ };\n /******/ /******/ // create a fake namespace object\n /******/ // mode & 1: value is a module id, require it\n /******/ // mode & 2: merge all properties of value into the ns\n /******/ // mode & 4: return value when already ns object\n /******/ // mode & 8|1: behave like require\n /******/ __webpack_require__.t = function(value, mode) {\n /******/ if (mode & 1) value = __webpack_require__(value);\n /******/ if (mode & 8) return value;\n /******/ if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/ var ns = Object.create(null);\n /******/ __webpack_require__.r(ns);\n /******/ Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/ if (mode & 2 && typeof value != 'string') for(var key1 in value)__webpack_require__.d(ns, key1, (function(key) {\n return value[key];\n }).bind(null, key1));\n /******/ return ns;\n /******/ };\n /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ __webpack_require__.n = function(module) {\n /******/ var getter = module && module.__esModule ? /******/ function getDefault() {\n return module['default'];\n } : /******/ function getModuleExports() {\n return module;\n };\n /******/ __webpack_require__.d(getter, 'a', getter);\n /******/ return getter;\n /******/ };\n /******/ /******/ // Object.prototype.hasOwnProperty.call\n /******/ __webpack_require__.o = function(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/ /******/ // __webpack_public_path__\n /******/ __webpack_require__.p = \"\";\n /******/ /******/ /******/ // Load entry module and return exports\n /******/ return __webpack_require__(__webpack_require__.s = \"./src/peer.js\");\n /******/ }({\n /***/ \"./node_modules/@jitsi/sdp-interop/lib/array-equals.js\": /*!*************************************************************!*\\\n !*** ./node_modules/@jitsi/sdp-interop/lib/array-equals.js ***!\n \\*************************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n /* Copyright @ 2015 Atlassian Pty Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ module.exports = function arrayEquals(array) {\n // if the other array is a falsy value, return\n if (!array) return false;\n // compare lengths - can save a lot of time\n if (this.length != array.length) return false;\n for(var i = 0, l = this.length; i < l; i++){\n // Check if we have nested arrays\n if (this[i] instanceof Array && array[i] instanceof Array) {\n // recurse into the nested arrays\n if (!arrayEquals.apply(this[i], [\n array[i]\n ])) return false;\n } else if (this[i] != array[i]) {\n // Warning - two different object instances will never be equal:\n // {x:20} != {x:20}\n return false;\n }\n }\n return true;\n };\n /***/ },\n /***/ \"./node_modules/@jitsi/sdp-interop/lib/index.js\": /*!******************************************************!*\\\n !*** ./node_modules/@jitsi/sdp-interop/lib/index.js ***!\n \\******************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /* Copyright @ 2015 Atlassian Pty Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ exports.Interop = __webpack_require__(/*! ./interop */ \"./node_modules/@jitsi/sdp-interop/lib/interop.js\");\n /***/ },\n /***/ \"./node_modules/@jitsi/sdp-interop/lib/interop.js\": /*!********************************************************!*\\\n !*** ./node_modules/@jitsi/sdp-interop/lib/interop.js ***!\n \\********************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n \"use strict\";\n /* Copyright @ 2015 Atlassian Pty Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ /* global RTCSessionDescription */ /* global RTCIceCandidate */ /* jshint -W097 */ var transform = __webpack_require__(/*! ./transform */ \"./node_modules/@jitsi/sdp-interop/lib/transform.js\");\n var arrayEquals = __webpack_require__(/*! ./array-equals */ \"./node_modules/@jitsi/sdp-interop/lib/array-equals.js\");\n /**\n * Unified Plan mids may be parsed as integers\n */ function midToString(line) {\n if (typeof line.mid === 'number') {\n line.mid = line.mid.toString();\n }\n }\n function Interop() {\n /**\n * This map holds the most recent Unified Plan offer/answer SDP that was\n * converted to Plan B, with the SDP type ('offer' or 'answer') as keys and\n * the SDP string as values.\n *\n * @type {{}}\n */ this.cache = {\n mlB2UMap: {},\n mlU2BMap: {}\n };\n }\n module.exports = Interop;\n /**\n * Changes the candidate args to match with the related Unified Plan\n */ Interop.prototype.candidateToUnifiedPlan = function(candidate) {\n var cand = new RTCIceCandidate(candidate);\n cand.sdpMLineIndex = this.cache.mlB2UMap[cand.sdpMLineIndex];\n /* TODO: change sdpMid to (audio|video)-SSRC */ return cand;\n };\n /**\n * Changes the candidate args to match with the related Plan B\n */ Interop.prototype.candidateToPlanB = function(candidate) {\n var cand = new RTCIceCandidate(candidate);\n if (cand.sdpMid.indexOf('audio') === 0) {\n cand.sdpMid = 'audio';\n } else if (cand.sdpMid.indexOf('video') === 0) {\n cand.sdpMid = 'video';\n } else {\n throw new Error('candidate with ' + cand.sdpMid + ' not allowed');\n }\n cand.sdpMLineIndex = this.cache.mlU2BMap[cand.sdpMLineIndex];\n return cand;\n };\n /**\n * Returns the index of the first m-line with the given media type and with a\n * direction which allows sending, in the last Unified Plan description with\n * type \"answer\" converted to Plan B. Returns {null} if there is no saved\n * answer, or if none of its m-lines with the given type allow sending.\n * @param type the media type (\"audio\" or \"video\").\n * @returns {*}\n */ Interop.prototype.getFirstSendingIndexFromAnswer = function(type) {\n if (!this.cache.answer) {\n return null;\n }\n var session = transform.parse(this.cache.answer);\n if (session && session.media && Array.isArray(session.media)) {\n for(var i = 0; i < session.media.length; i++){\n if (session.media[i].type == type && (!session.media[i].direction /* default to sendrecv */ || session.media[i].direction === 'sendrecv' || session.media[i].direction === 'sendonly')) {\n return i;\n }\n }\n }\n return null;\n };\n /**\n * This method transforms a Unified Plan SDP to an equivalent Plan B SDP. A\n * PeerConnection wrapper transforms the SDP to Plan B before passing it to the\n * application.\n *\n * @param desc\n * @returns {*}\n */ Interop.prototype.toPlanB = function(desc) {\n var self = this;\n //#region Preliminary input validation.\n if (typeof desc !== 'object' || desc === null || typeof desc.sdp !== 'string') {\n console.warn('An empty description was passed as an argument.');\n return desc;\n }\n // Objectify the SDP for easier manipulation.\n var session = transform.parse(desc.sdp);\n // If the SDP contains no media, there's nothing to transform.\n if (typeof session.media === 'undefined' || !Array.isArray(session.media) || session.media.length === 0) {\n console.warn('The description has no media.');\n return desc;\n }\n // Try some heuristics to \"make sure\" this is a Unified Plan SDP. Plan B\n // SDP has a video, an audio and a data \"channel\" at most.\n if (session.media.length <= 3 && session.media.every(function(m) {\n return [\n 'video',\n 'audio',\n 'data'\n ].indexOf(m.mid) !== -1;\n })) {\n console.warn('This description does not look like Unified Plan.');\n return desc;\n }\n //#endregion\n // HACK https://bugzilla.mozilla.org/show_bug.cgi?id=1113443\n var sdp = desc.sdp;\n var rewrite = false;\n for(var i = 0; i < session.media.length; i++){\n var uLine = session.media[i];\n uLine.rtp.forEach(function(rtp) {\n if (rtp.codec === 'NULL') {\n rewrite = true;\n var offer = transform.parse(self.cache.offer);\n rtp.codec = offer.media[i].rtp[0].codec;\n }\n });\n }\n if (rewrite) {\n sdp = transform.write(session);\n }\n // Unified Plan SDP is our \"precious\". Cache it for later use in the Plan B\n // -> Unified Plan transformation.\n this.cache[desc.type] = sdp;\n //#region Convert from Unified Plan to Plan B.\n // We rebuild the session.media array.\n var media = session.media;\n session.media = [];\n // Associative array that maps channel types to channel objects for fast\n // access to channel objects by their type, e.g. type2bl['audio']->channel\n // obj.\n var type2bl = {};\n // Used to build the group:BUNDLE value after the channels construction\n // loop.\n var types = [];\n // Used to aggregate the directions of the m-lines.\n var directionResult = {};\n media.forEach(function(uLine) {\n midToString(uLine);\n // rtcp-mux is required in the Plan B SDP.\n if ((typeof uLine.rtcpMux !== 'string' || uLine.rtcpMux !== 'rtcp-mux') && uLine.direction !== 'inactive' && uLine.type !== 'application') {\n throw new Error('Cannot convert to Plan B because m-lines ' + 'without the rtcp-mux attribute were found.');\n }\n // If we don't have a channel for this uLine.type OR the selected is\n // inactive, then select this uLine as the channel basis.\n if (typeof type2bl[uLine.type] === 'undefined' || type2bl[uLine.type].direction === 'inactive') {\n type2bl[uLine.type] = uLine;\n }\n });\n // Implode the Unified Plan m-lines/tracks into Plan B channels.\n media.forEach(function(uLine) {\n var type = uLine.type;\n if (type === 'application') {\n uLine.mid = \"data\";\n session.media.push(uLine);\n types.push(uLine.mid);\n return;\n }\n // Add sources to the channel and handle a=msid.\n if (typeof uLine.sources === 'object') {\n Object.keys(uLine.sources).forEach(function(ssrc) {\n if (typeof type2bl[type].sources !== 'object') type2bl[type].sources = {};\n // Assign the sources to the channel.\n type2bl[type].sources[ssrc] = uLine.sources[ssrc];\n if (typeof uLine.msid !== 'undefined') {\n // In Plan B the msid is an SSRC attribute. Also, we don't\n // care about the obsolete label and mslabel attributes.\n //\n // Note that it is not guaranteed that the uLine will\n // have an msid. recvonly channels in particular don't have\n // one.\n type2bl[type].sources[ssrc].msid = uLine.msid;\n }\n // NOTE ssrcs in ssrc groups will share msids, as\n // draft-uberti-rtcweb-plan-00 mandates.\n });\n }\n // Add ssrc groups to the channel.\n if (typeof uLine.ssrcGroups !== 'undefined' && Array.isArray(uLine.ssrcGroups)) {\n // Create the ssrcGroups array, if it's not defined.\n if (typeof type2bl[type].ssrcGroups === 'undefined' || !Array.isArray(type2bl[type].ssrcGroups)) {\n type2bl[type].ssrcGroups = [];\n }\n // Different ssrc may belong to the same group\n if (!arrayEquals.apply(type2bl[type].ssrcGroups, [\n uLine.ssrcGroups\n ])) {\n type2bl[type].ssrcGroups = type2bl[type].ssrcGroups.concat(uLine.ssrcGroups);\n }\n }\n var direction = uLine.direction;\n directionResult[type] = (directionResult[type] || 0 /* inactive */ ) | directionMasks[direction || 'inactive'];\n if (type2bl[type] === uLine) {\n // Plan B mids are in ['audio', 'video', 'data']\n uLine.mid = type;\n // Plan B doesn't support/need the bundle-only attribute.\n delete uLine.bundleOnly;\n // In Plan B the msid is an SSRC attribute.\n delete uLine.msid;\n if (direction !== 'inactive') {\n // Used to build the group:BUNDLE value after this loop.\n types.push(type);\n }\n // Add the channel to the new media array.\n session.media.push(uLine);\n }\n });\n // We regenerate the BUNDLE group with the new mids.\n session.groups.some(function(group) {\n if (group.type === 'BUNDLE') {\n group.mids = types.join(' ');\n return true;\n }\n });\n // msid semantic\n session.msidSemantic = {\n semantic: 'WMS',\n token: '*'\n };\n var resStr = transform.write(session);\n return new RTCSessionDescription({\n type: desc.type,\n sdp: resStr\n });\n //#endregion\n };\n /**\n * This method transforms a Plan B SDP to an equivalent Unified Plan SDP. A\n * PeerConnection wrapper transforms the SDP to Unified Plan before passing it\n * to FF.\n *\n * @param desc\n * @returns {*}\n */ Interop.prototype.toUnifiedPlan = function(desc) {\n var self = this;\n //#region Preliminary input validation.\n if (typeof desc !== 'object' || desc === null || typeof desc.sdp !== 'string') {\n console.warn('An empty description was passed as an argument.');\n return desc;\n }\n var session = transform.parse(desc.sdp);\n // If the SDP contains no media, there's nothing to transform.\n if (typeof session.media === 'undefined' || !Array.isArray(session.media) || session.media.length === 0) {\n console.warn('The description has no media.');\n return desc;\n }\n // Try some heuristics to \"make sure\" this is a Plan B SDP. Plan B SDP has\n // a video, an audio and a data \"channel\" at most.\n if (session.media.length > 3 || !session.media.every(function(m) {\n return [\n 'video',\n 'audio',\n 'data'\n ].indexOf(m.mid) !== -1;\n })) {\n console.warn('This description does not look like Plan B.');\n return desc;\n }\n // Make sure this Plan B SDP can be converted to a Unified Plan SDP.\n var mids = [];\n session.media.forEach(function(m) {\n mids.push(m.mid);\n });\n var hasBundle = false;\n if (typeof session.groups !== 'undefined' && Array.isArray(session.groups)) {\n hasBundle = session.groups.every(function(g) {\n return g.type !== 'BUNDLE' || arrayEquals.apply(g.mids.sort(), [\n mids.sort()\n ]);\n });\n }\n if (!hasBundle) {\n throw new Error(\"Cannot convert to Unified Plan because m-lines that\" + \" are not bundled were found.\");\n }\n //#endregion\n //#region Convert from Plan B to Unified Plan.\n // Unfortunately, a Plan B offer/answer doesn't have enough information to\n // rebuild an equivalent Unified Plan offer/answer.\n //\n // For example, if this is a local answer (in Unified Plan style) that we\n // convert to Plan B prior to handing it over to the application (the\n // PeerConnection wrapper called us, for instance, after a successful\n // createAnswer), we want to remember the m-line at which we've seen the\n // (local) SSRC. That's because when the application wants to do call the\n // SLD method, forcing us to do the inverse transformation (from Plan B to\n // Unified Plan), we need to know to which m-line to assign the (local)\n // SSRC. We also need to know all the other m-lines that the original\n // answer had and include them in the transformed answer as well.\n //\n // Another example is if this is a remote offer that we convert to Plan B\n // prior to giving it to the application, we want to remember the mid at\n // which we've seen the (remote) SSRC.\n //\n // In the iteration that follows, we use the cached Unified Plan (if it\n // exists) to assign mids to ssrcs.\n var cached;\n if (typeof this.cache[desc.type] !== 'undefined') {\n cached = transform.parse(this.cache[desc.type]);\n }\n var recvonlySsrcs = {\n audio: {},\n video: {}\n };\n // A helper map that sends mids to m-line objects. We use it later to\n // rebuild the Unified Plan style session.media array.\n var mid2ul = {};\n var bIdx = 0;\n var uIdx = 0;\n session.media.forEach(function(bLine) {\n if ((typeof bLine.rtcpMux !== 'string' || bLine.rtcpMux !== 'rtcp-mux') && bLine.direction !== 'inactive' && bLine.type !== 'application') {\n throw new Error(\"Cannot convert to Unified Plan because m-lines \" + \"without the rtcp-mux attribute were found.\");\n }\n if (bLine.type === 'application') {\n var uLineData = null;\n if (cached && cached.media) {\n uLineData = cached.media.find(function(uLine) {\n return uLine.type === 'application';\n });\n }\n if (uLineData) {\n mid2ul[uLineData.mid] = uLineData;\n } else {\n mid2ul[bLine.mid] = bLine;\n }\n return;\n }\n // With rtcp-mux and bundle all the channels should have the same ICE\n // stuff.\n var sources = bLine.sources;\n var ssrcGroups = bLine.ssrcGroups;\n var candidates = bLine.candidates;\n var iceUfrag = bLine.iceUfrag;\n var icePwd = bLine.icePwd;\n var fingerprint = bLine.fingerprint;\n var port = bLine.port;\n // We'll use the \"bLine\" object as a prototype for each new \"mLine\"\n // that we create, but first we need to clean it up a bit.\n delete bLine.sources;\n delete bLine.ssrcGroups;\n delete bLine.candidates;\n delete bLine.iceUfrag;\n delete bLine.icePwd;\n delete bLine.fingerprint;\n delete bLine.port;\n delete bLine.mid;\n // inverted ssrc group map\n var ssrc2group = {};\n if (typeof ssrcGroups !== 'undefined' && Array.isArray(ssrcGroups)) {\n ssrcGroups.forEach(function(ssrcGroup) {\n // TODO(gp) find out how to receive simulcast with FF. For the\n // time being, hide it.\n if (ssrcGroup.semantics === 'SIM') {\n return;\n }\n // XXX This might brake if an SSRC is in more than one group\n // for some reason.\n if (typeof ssrcGroup.ssrcs !== 'undefined' && Array.isArray(ssrcGroup.ssrcs)) {\n ssrcGroup.ssrcs.forEach(function(ssrc) {\n if (typeof ssrc2group[ssrc] === 'undefined') {\n ssrc2group[ssrc] = [];\n }\n ssrc2group[ssrc].push(ssrcGroup);\n });\n }\n });\n }\n // ssrc to m-line index.\n var ssrc2ml = {};\n if (typeof sources === 'object') {\n // Explode the Plan B channel sources with one m-line per source.\n Object.keys(sources).forEach(function(ssrc) {\n // The (unified) m-line for this SSRC. We either create it from\n // scratch or, if it's a grouped SSRC, we re-use a related\n // mline. In other words, if the source is grouped with another\n // source, put the two together in the same m-line.\n var uLine;\n // We assume here that we are the answerer in the O/A, so any\n // offers which we translate come from the remote side, while\n // answers are local. So the check below is to make that we\n // handle receive-only SSRCs in a special way only if they come\n // from the remote side.\n if (desc.type === 'offer') {\n // We want to detect SSRCs which are used by a remote peer\n // in an m-line with direction=recvonly (i.e. they are\n // being used for RTCP only).\n // This information would have gotten lost if the remote\n // peer used Unified Plan and their local description was\n // translated to Plan B. So we use the lack of an MSID\n // attribute to deduce a \"receive only\" SSRC.\n if (!sources[ssrc].msid) {\n recvonlySsrcs[bLine.type][ssrc] = sources[ssrc];\n // Receive-only SSRCs must not create new m-lines. We\n // will assign them to an existing m-line later.\n return;\n }\n }\n if (typeof ssrc2group[ssrc] !== 'undefined' && Array.isArray(ssrc2group[ssrc])) {\n ssrc2group[ssrc].some(function(ssrcGroup) {\n // ssrcGroup.ssrcs *is* an Array, no need to check\n // again here.\n return ssrcGroup.ssrcs.some(function(related) {\n if (typeof ssrc2ml[related] === 'object') {\n uLine = ssrc2ml[related];\n return true;\n }\n });\n });\n }\n if (typeof uLine === 'object') {\n // the m-line already exists. Just add the source.\n uLine.sources[ssrc] = sources[ssrc];\n delete sources[ssrc].msid;\n } else {\n // Use the \"bLine\" as a prototype for the \"uLine\".\n uLine = Object.create(bLine);\n ssrc2ml[ssrc] = uLine;\n if (typeof sources[ssrc].msid !== 'undefined') {\n // Assign the msid of the source to the m-line. Note\n // that it is not guaranteed that the source will have\n // msid. In particular \"recvonly\" sources don't have an\n // msid. Note that \"recvonly\" is a term only defined\n // for m-lines.\n uLine.msid = sources[ssrc].msid;\n delete sources[ssrc].msid;\n }\n // We assign one SSRC per media line.\n uLine.sources = {};\n uLine.sources[ssrc] = sources[ssrc];\n uLine.ssrcGroups = ssrc2group[ssrc];\n // Use the cached Unified Plan SDP (if it exists) to assign\n // SSRCs to mids.\n if (typeof cached !== 'undefined' && typeof cached.media !== 'undefined' && Array.isArray(cached.media)) {\n cached.media.forEach(function(m) {\n if (typeof m.sources === 'object') {\n Object.keys(m.sources).forEach(function(s) {\n if (s === ssrc) {\n uLine.mid = m.mid;\n }\n });\n }\n });\n }\n midToString(uLine);\n if (typeof uLine.mid === 'undefined') {\n // If this is an SSRC that we see for the first time\n // assign it a new mid. This is typically the case when\n // this method is called to transform a remote\n // description for the first time or when there is a\n // new SSRC in the remote description because a new\n // peer has joined the conference. Local SSRCs should\n // have already been added to the map in the toPlanB\n // method.\n //\n // Because FF generates answers in Unified Plan style,\n // we MUST already have a cached answer with all the\n // local SSRCs mapped to some m-line/mid.\n if (desc.type === 'answer') {\n throw new Error(\"An unmapped SSRC was found.\");\n }\n uLine.mid = [\n bLine.type,\n '-',\n ssrc\n ].join('');\n }\n // Include the candidates in the 1st media line.\n uLine.candidates = candidates;\n uLine.iceUfrag = iceUfrag;\n uLine.icePwd = icePwd;\n uLine.fingerprint = fingerprint;\n uLine.port = port;\n mid2ul[uLine.mid] = uLine;\n self.cache.mlU2BMap[uIdx] = bIdx;\n if (typeof self.cache.mlB2UMap[bIdx] === 'undefined') {\n self.cache.mlB2UMap[bIdx] = uIdx;\n }\n uIdx++;\n }\n });\n }\n bIdx++;\n });\n // Rebuild the media array in the right order and add the missing mLines\n // (missing from the Plan B SDP).\n session.media = [];\n mids = []; // reuse\n if (desc.type === 'answer') {\n // The media lines in the answer must match the media lines in the\n // offer. The order is important too. Here we assume that Firefox is\n // the answerer, so we merely have to use the reconstructed (unified)\n // answer to update the cached (unified) answer accordingly.\n //\n // In the general case, one would have to use the cached (unified)\n // offer to find the m-lines that are missing from the reconstructed\n // answer, potentially grabbing them from the cached (unified) answer.\n // One has to be careful with this approach because inactive m-lines do\n // not always have an mid, making it tricky (impossible?) to find where\n // exactly and which m-lines are missing from the reconstructed answer.\n for(var i = 0; i < cached.media.length; i++){\n var uLine1 = cached.media[i];\n midToString(uLine1);\n if (typeof mid2ul[uLine1.mid] === 'undefined') {\n // The mid isn't in the reconstructed (unified) answer.\n // This is either a (unified) m-line containing a remote\n // track only, or a (unified) m-line containing a remote\n // track and a local track that has been removed.\n // In either case, it MUST exist in the cached\n // (unified) answer.\n //\n // In case this is a removed local track, clean-up\n // the (unified) m-line and make sure it's 'recvonly' or\n // 'inactive'.\n delete uLine1.msid;\n delete uLine1.sources;\n delete uLine1.ssrcGroups;\n if (!uLine1.direction || uLine1.direction === 'sendrecv') uLine1.direction = 'recvonly';\n else if (uLine1.direction === 'sendonly') uLine1.direction = 'inactive';\n } else {\n // This is an (unified) m-line/channel that contains a local\n // track (sendrecv or sendonly channel) or it's a unified\n // recvonly m-line/channel. In either case, since we're\n // going from PlanB -> Unified Plan this m-line MUST\n // exist in the cached answer.\n }\n session.media.push(uLine1);\n if (typeof uLine1.mid === 'string') {\n // inactive lines don't/may not have an mid.\n mids.push(uLine1.mid);\n }\n }\n } else {\n // SDP offer/answer (and the JSEP spec) forbids removing an m-section\n // under any circumstances. If we are no longer interested in sending a\n // track, we just remove the msid and ssrc attributes and set it to\n // either a=recvonly (as the reofferer, we must use recvonly if the\n // other side was previously sending on the m-section, but we can also\n // leave the possibility open if it wasn't previously in use), or\n // a=inactive.\n if (typeof cached !== 'undefined' && typeof cached.media !== 'undefined' && Array.isArray(cached.media)) {\n cached.media.forEach(function(uLine) {\n midToString(uLine);\n mids.push(uLine.mid);\n if (typeof mid2ul[uLine.mid] !== 'undefined') {\n session.media.push(mid2ul[uLine.mid]);\n } else {\n delete uLine.msid;\n delete uLine.sources;\n delete uLine.ssrcGroups;\n if (!uLine.direction || uLine.direction === 'sendrecv') uLine.direction = 'recvonly';\n if (!uLine.direction || uLine.direction === 'sendonly') uLine.direction = 'inactive';\n session.media.push(uLine);\n }\n });\n }\n // Add all the remaining (new) m-lines of the transformed SDP.\n Object.keys(mid2ul).forEach(function(mid) {\n if (mids.indexOf(mid) === -1) {\n mids.push(mid);\n if (mid2ul[mid].direction === 'recvonly') {\n // This is a remote recvonly channel. Add its SSRC to the\n // appropriate sendrecv or sendonly channel.\n // TODO(gp) what if we don't have sendrecv/sendonly\n // channel?\n session.media.some(function(uLine) {\n if ((uLine.direction === 'sendrecv' || uLine.direction === 'sendonly') && uLine.type === mid2ul[mid].type) {\n // mid2ul[mid] shouldn't have any ssrc-groups\n Object.keys(mid2ul[mid].sources).forEach(function(ssrc) {\n uLine.sources[ssrc] = mid2ul[mid].sources[ssrc];\n });\n return true;\n }\n });\n } else {\n session.media.push(mid2ul[mid]);\n }\n }\n });\n }\n // After we have constructed the Plan Unified m-lines we can figure out\n // where (in which m-line) to place the 'recvonly SSRCs'.\n // Note: we assume here that we are the answerer in the O/A, so any offers\n // which we translate come from the remote side, while answers are local\n // (and so our last local description is cached as an 'answer').\n [\n \"audio\",\n \"video\"\n ].forEach(function(type) {\n if (!session || !session.media || !Array.isArray(session.media)) return;\n var idx = null;\n if (Object.keys(recvonlySsrcs[type]).length > 0) {\n idx = self.getFirstSendingIndexFromAnswer(type);\n if (idx === null) {\n // If this is the first offer we receive, we don't have a\n // cached answer. Assume that we will be sending media using\n // the first m-line for each media type.\n for(var i = 0; i < session.media.length; i++){\n if (session.media[i].type === type) {\n idx = i;\n break;\n }\n }\n }\n }\n if (idx && session.media.length > idx) {\n var mLine = session.media[idx];\n Object.keys(recvonlySsrcs[type]).forEach(function(ssrc) {\n if (mLine.sources && mLine.sources[ssrc]) {\n console.warn(\"Replacing an existing SSRC.\");\n }\n if (!mLine.sources) {\n mLine.sources = {};\n }\n mLine.sources[ssrc] = recvonlySsrcs[type][ssrc];\n });\n }\n });\n // We regenerate the BUNDLE group (since we regenerated the mids)\n session.groups.some(function(group) {\n if (group.type === 'BUNDLE') {\n group.mids = mids.join(' ');\n return true;\n }\n });\n // msid semantic\n session.msidSemantic = {\n semantic: 'WMS',\n token: '*'\n };\n var resStr = transform.write(session);\n // Cache the transformed SDP (Unified Plan) for later re-use in this\n // function.\n this.cache[desc.type] = resStr;\n return new RTCSessionDescription({\n type: desc.type,\n sdp: resStr\n });\n //#endregion\n };\n /**\n * Maps the direction strings to their binary representation. The binary\n * representation of the directions will contain only 2 bits. The least\n * significant bit will indicate the receiving direction and the other bit will\n * indicate the sending direction.\n *\n * @type {Map<string, number>}\n */ var directionMasks = {\n 'inactive': 0,\n 'recvonly': 1,\n 'sendonly': 2,\n 'sendrecv': 3 // 11\n };\n /**\n * Parses a number into direction string.\n *\n * @param {number} direction - The number to be parsed.\n * @returns {string} - The parsed direction string.\n */ function parseDirection(direction) {\n // Filter all other bits except the 2 less significant.\n var directionMask = direction & 3;\n switch(directionMask){\n case 0:\n return 'inactive';\n case 1:\n return 'recvonly';\n case 2:\n return 'sendonly';\n case 3:\n return 'sendrecv';\n }\n }\n /***/ },\n /***/ \"./node_modules/@jitsi/sdp-interop/lib/transform.js\": /*!**********************************************************!*\\\n !*** ./node_modules/@jitsi/sdp-interop/lib/transform.js ***!\n \\**********************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /* Copyright @ 2015 Atlassian Pty Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ var transform = __webpack_require__(/*! sdp-transform */ \"./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/index.js\");\n exports.write = function(session, opts) {\n if (typeof session !== 'undefined' && typeof session.media !== 'undefined' && Array.isArray(session.media)) {\n session.media.forEach(function(mLine) {\n // expand sources to ssrcs\n if (typeof mLine.sources !== 'undefined' && Object.keys(mLine.sources).length !== 0) {\n mLine.ssrcs = [];\n Object.keys(mLine.sources).forEach(function(ssrc) {\n var source = mLine.sources[ssrc];\n Object.keys(source).forEach(function(attribute) {\n mLine.ssrcs.push({\n id: ssrc,\n attribute: attribute,\n value: source[attribute]\n });\n });\n });\n delete mLine.sources;\n }\n // join ssrcs in ssrc groups\n if (typeof mLine.ssrcGroups !== 'undefined' && Array.isArray(mLine.ssrcGroups)) {\n mLine.ssrcGroups.forEach(function(ssrcGroup) {\n if (typeof ssrcGroup.ssrcs !== 'undefined' && Array.isArray(ssrcGroup.ssrcs)) {\n ssrcGroup.ssrcs = ssrcGroup.ssrcs.join(' ');\n }\n });\n }\n });\n }\n // join group mids\n if (typeof session !== 'undefined' && typeof session.groups !== 'undefined' && Array.isArray(session.groups)) {\n session.groups.forEach(function(g) {\n if (typeof g.mids !== 'undefined' && Array.isArray(g.mids)) {\n g.mids = g.mids.join(' ');\n }\n });\n }\n return transform.write(session, opts);\n };\n exports.parse = function(sdp) {\n var session = transform.parse(sdp);\n if (typeof session !== 'undefined' && typeof session.media !== 'undefined' && Array.isArray(session.media)) {\n session.media.forEach(function(mLine) {\n // group sources attributes by ssrc\n if (typeof mLine.ssrcs !== 'undefined' && Array.isArray(mLine.ssrcs)) {\n mLine.sources = {};\n mLine.ssrcs.forEach(function(ssrc) {\n if (!mLine.sources[ssrc.id]) mLine.sources[ssrc.id] = {};\n mLine.sources[ssrc.id][ssrc.attribute] = ssrc.value;\n });\n delete mLine.ssrcs;\n }\n // split ssrcs in ssrc groups\n if (typeof mLine.ssrcGroups !== 'undefined' && Array.isArray(mLine.ssrcGroups)) {\n mLine.ssrcGroups.forEach(function(ssrcGroup) {\n if (typeof ssrcGroup.ssrcs === 'string') {\n ssrcGroup.ssrcs = ssrcGroup.ssrcs.split(' ');\n }\n });\n }\n });\n }\n // split group mids\n if (typeof session !== 'undefined' && typeof session.groups !== 'undefined' && Array.isArray(session.groups)) {\n session.groups.forEach(function(g) {\n if (typeof g.mids === 'string') {\n g.mids = g.mids.split(' ');\n }\n });\n }\n return session;\n };\n /***/ },\n /***/ \"./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/grammar.js\": /*!***********************************************************************************!*\\\n !*** ./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/grammar.js ***!\n \\***********************************************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n var grammar = module.exports = {\n v: [\n {\n name: 'version',\n reg: /^(\\d*)$/\n }\n ],\n o: [\n {\n // NB: sessionId will be a String in most cases because it is huge\n name: 'origin',\n reg: /^(\\S*) (\\d*) (\\d*) (\\S*) IP(\\d) (\\S*)/,\n names: [\n 'username',\n 'sessionId',\n 'sessionVersion',\n 'netType',\n 'ipVer',\n 'address'\n ],\n format: '%s %s %d %s IP%d %s'\n }\n ],\n // default parsing of these only (though some of these feel outdated)\n s: [\n {\n name: 'name'\n }\n ],\n i: [\n {\n name: 'description'\n }\n ],\n u: [\n {\n name: 'uri'\n }\n ],\n e: [\n {\n name: 'email'\n }\n ],\n p: [\n {\n name: 'phone'\n }\n ],\n z: [\n {\n name: 'timezones'\n }\n ],\n r: [\n {\n name: 'repeats'\n }\n ],\n //k: [{}], // outdated thing ignored\n t: [\n {\n name: 'timing',\n reg: /^(\\d*) (\\d*)/,\n names: [\n 'start',\n 'stop'\n ],\n format: '%d %d'\n }\n ],\n c: [\n {\n name: 'connection',\n reg: /^IN IP(\\d) (\\S*)/,\n names: [\n 'version',\n 'ip'\n ],\n format: 'IN IP%d %s'\n }\n ],\n b: [\n {\n push: 'bandwidth',\n reg: /^(TIAS|AS|CT|RR|RS):(\\d*)/,\n names: [\n 'type',\n 'limit'\n ],\n format: '%s:%s'\n }\n ],\n m: [\n {\n // NB: special - pushes to session\n // TODO: rtp/fmtp should be filtered by the payloads found here?\n reg: /^(\\w*) (\\d*) ([\\w\\/]*)(?: (.*))?/,\n names: [\n 'type',\n 'port',\n 'protocol',\n 'payloads'\n ],\n format: '%s %d %s %s'\n }\n ],\n a: [\n {\n push: 'rtp',\n reg: /^rtpmap:(\\d*) ([\\w\\-\\.]*)(?:\\s*\\/(\\d*)(?:\\s*\\/(\\S*))?)?/,\n names: [\n 'payload',\n 'codec',\n 'rate',\n 'encoding'\n ],\n format: function(o) {\n return o.encoding ? 'rtpmap:%d %s/%s/%s' : o.rate ? 'rtpmap:%d %s/%s' : 'rtpmap:%d %s';\n }\n },\n {\n //a=fmtp:111 minptime=10; useinbandfec=1\n push: 'fmtp',\n reg: /^fmtp:(\\d*) ([\\S| ]*)/,\n names: [\n 'payload',\n 'config'\n ],\n format: 'fmtp:%d %s'\n },\n {\n name: 'control',\n reg: /^control:(.*)/,\n format: 'control:%s'\n },\n {\n name: 'rtcp',\n reg: /^rtcp:(\\d*)(?: (\\S*) IP(\\d) (\\S*))?/,\n names: [\n 'port',\n 'netType',\n 'ipVer',\n 'address'\n ],\n format: function(o) {\n return o.address != null ? 'rtcp:%d %s IP%d %s' : 'rtcp:%d';\n }\n },\n {\n push: 'rtcpFbTrrInt',\n reg: /^rtcp-fb:(\\*|\\d*) trr-int (\\d*)/,\n names: [\n 'payload',\n 'value'\n ],\n format: 'rtcp-fb:%d trr-int %d'\n },\n {\n push: 'rtcpFb',\n reg: /^rtcp-fb:(\\*|\\d*) ([\\w-_]*)(?: ([\\w-_]*))?/,\n names: [\n 'payload',\n 'type',\n 'subtype'\n ],\n format: function(o) {\n return o.subtype != null ? 'rtcp-fb:%s %s %s' : 'rtcp-fb:%s %s';\n }\n },\n {\n //a=extmap:1/recvonly URI-gps-string\n push: 'ext',\n reg: /^extmap:(\\d+)(?:\\/(\\w+))? (\\S*)(?: (\\S*))?/,\n names: [\n 'value',\n 'direction',\n 'uri',\n 'config'\n ],\n format: function(o) {\n return 'extmap:%d' + (o.direction ? '/%s' : '%v') + ' %s' + (o.config ? ' %s' : '');\n }\n },\n {\n push: 'crypto',\n reg: /^crypto:(\\d*) ([\\w_]*) (\\S*)(?: (\\S*))?/,\n names: [\n 'id',\n 'suite',\n 'config',\n 'sessionConfig'\n ],\n format: function(o) {\n return o.sessionConfig != null ? 'crypto:%d %s %s %s' : 'crypto:%d %s %s';\n }\n },\n {\n name: 'setup',\n reg: /^setup:(\\w*)/,\n format: 'setup:%s'\n },\n {\n name: 'mid',\n reg: /^mid:([^\\s]*)/,\n format: 'mid:%s'\n },\n {\n name: 'msid',\n reg: /^msid:(.*)/,\n format: 'msid:%s'\n },\n {\n name: 'ptime',\n reg: /^ptime:(\\d*)/,\n format: 'ptime:%d'\n },\n {\n name: 'maxptime',\n reg: /^maxptime:(\\d*)/,\n format: 'maxptime:%d'\n },\n {\n name: 'direction',\n reg: /^(sendrecv|recvonly|sendonly|inactive)/\n },\n {\n name: 'icelite',\n reg: /^(ice-lite)/\n },\n {\n name: 'iceUfrag',\n reg: /^ice-ufrag:(\\S*)/,\n format: 'ice-ufrag:%s'\n },\n {\n name: 'icePwd',\n reg: /^ice-pwd:(\\S*)/,\n format: 'ice-pwd:%s'\n },\n {\n name: 'fingerprint',\n reg: /^fingerprint:(\\S*) (\\S*)/,\n names: [\n 'type',\n 'hash'\n ],\n format: 'fingerprint:%s %s'\n },\n {\n //a=candidate:1162875081 1 udp 2113937151 192.168.34.75 60017 typ host generation 0 network-id 3 network-cost 10\n //a=candidate:3289912957 2 udp 1845501695 193.84.77.194 60017 typ srflx raddr 192.168.34.75 rport 60017 generation 0 network-id 3 network-cost 10\n //a=candidate:229815620 1 tcp 1518280447 192.168.150.19 60017 typ host tcptype active generation 0 network-id 3 network-cost 10\n //a=candidate:3289912957 2 tcp 1845501695 193.84.77.194 60017 typ srflx raddr 192.168.34.75 rport 60017 tcptype passive generation 0 network-id 3 network-cost 10\n push: 'candidates',\n reg: /^candidate:(\\S*) (\\d*) (\\S*) (\\d*) (\\S*) (\\d*) typ (\\S*)(?: raddr (\\S*) rport (\\d*))?(?: tcptype (\\S*))?(?: generation (\\d*))?(?: network-id (\\d*))?(?: network-cost (\\d*))?/,\n names: [\n 'foundation',\n 'component',\n 'transport',\n 'priority',\n 'ip',\n 'port',\n 'type',\n 'raddr',\n 'rport',\n 'tcptype',\n 'generation',\n 'network-id',\n 'network-cost'\n ],\n format: function(o) {\n var str = 'candidate:%s %d %s %d %s %d typ %s';\n str += o.raddr != null ? ' raddr %s rport %d' : '%v%v';\n // NB: candidate has three optional chunks, so %void middles one if it's missing\n str += o.tcptype != null ? ' tcptype %s' : '%v';\n if (o.generation != null) {\n str += ' generation %d';\n }\n str += o['network-id'] != null ? ' network-id %d' : '%v';\n str += o['network-cost'] != null ? ' network-cost %d' : '%v';\n return str;\n }\n },\n {\n name: 'endOfCandidates',\n reg: /^(end-of-candidates)/\n },\n {\n name: 'remoteCandidates',\n reg: /^remote-candidates:(.*)/,\n format: 'remote-candidates:%s'\n },\n {\n name: 'iceOptions',\n reg: /^ice-options:(\\S*)/,\n format: 'ice-options:%s'\n },\n {\n push: 'ssrcs',\n reg: /^ssrc:(\\d*) ([\\w_]*)(?::(.*))?/,\n names: [\n 'id',\n 'attribute',\n 'value'\n ],\n format: function(o) {\n var str = 'ssrc:%d';\n if (o.attribute != null) {\n str += ' %s';\n if (o.value != null) {\n str += ':%s';\n }\n }\n return str;\n }\n },\n {\n //a=ssrc-group:FEC-FR 3004364195 1080772241\n push: 'ssrcGroups',\n // token-char = %x21 / %x23-27 / %x2A-2B / %x2D-2E / %x30-39 / %x41-5A / %x5E-7E\n reg: /^ssrc-group:([\\x21\\x23\\x24\\x25\\x26\\x27\\x2A\\x2B\\x2D\\x2E\\w]*) (.*)/,\n names: [\n 'semantics',\n 'ssrcs'\n ],\n format: 'ssrc-group:%s %s'\n },\n {\n name: 'msidSemantic',\n reg: /^msid-semantic:\\s?(\\w*) (\\S*)/,\n names: [\n 'semantic',\n 'token'\n ],\n format: 'msid-semantic: %s %s' // space after ':' is not accidental\n },\n {\n push: 'groups',\n reg: /^group:(\\w*) (.*)/,\n names: [\n 'type',\n 'mids'\n ],\n format: 'group:%s %s'\n },\n {\n name: 'rtcpMux',\n reg: /^(rtcp-mux)/\n },\n {\n name: 'rtcpRsize',\n reg: /^(rtcp-rsize)/\n },\n {\n name: 'sctpmap',\n reg: /^sctpmap:([\\w_\\/]*) (\\S*)(?: (\\S*))?/,\n names: [\n 'sctpmapNumber',\n 'app',\n 'maxMessageSize'\n ],\n format: function(o) {\n return o.maxMessageSize != null ? 'sctpmap:%s %s %s' : 'sctpmap:%s %s';\n }\n },\n {\n name: 'xGoogleFlag',\n reg: /^x-google-flag:([^\\s]*)/,\n format: 'x-google-flag:%s'\n },\n {\n push: 'rids',\n reg: /^rid:([\\d\\w]+) (\\w+)(?: ([\\S| ]*))?/,\n names: [\n 'id',\n 'direction',\n 'params'\n ],\n format: function(o) {\n return o.params ? 'rid:%s %s %s' : 'rid:%s %s';\n }\n },\n {\n //a=imageattr:* send [x=800,y=640] recv *\n //a=imageattr:100 recv [x=320,y=240]\n push: 'imageattrs',\n reg: new RegExp(//a=imageattr:97\n '^imageattr:(\\\\d+|\\\\*)' + //send [x=800,y=640,sar=1.1,q=0.6] [x=480,y=320]\n '[\\\\s\\\\t]+(send|recv)[\\\\s\\\\t]+(\\\\*|\\\\[\\\\S+\\\\](?:[\\\\s\\\\t]+\\\\[\\\\S+\\\\])*)' + //recv [x=330,y=250]\n '(?:[\\\\s\\\\t]+(recv|send)[\\\\s\\\\t]+(\\\\*|\\\\[\\\\S+\\\\](?:[\\\\s\\\\t]+\\\\[\\\\S+\\\\])*))?'),\n names: [\n 'pt',\n 'dir1',\n 'attrs1',\n 'dir2',\n 'attrs2'\n ],\n format: function(o) {\n return 'imageattr:%s %s %s' + (o.dir2 ? ' %s %s' : '');\n }\n },\n {\n //a=simulcast:recv 1;4,5 send 6;7\n name: 'simulcast',\n reg: new RegExp(//a=simulcast:\n '^simulcast:' + //send 1,2,3;~4,~5\n '(send|recv) ([a-zA-Z0-9\\\\-_~;,]+)' + //space + recv 6;~7,~8\n '(?:\\\\s?(send|recv) ([a-zA-Z0-9\\\\-_~;,]+))?' + //end\n '$'),\n names: [\n 'dir1',\n 'list1',\n 'dir2',\n 'list2'\n ],\n format: function(o) {\n return 'simulcast:%s %s' + (o.dir2 ? ' %s %s' : '');\n }\n },\n {\n // https://tools.ietf.org/html/draft-ietf-mmusic-sdp-simulcast-03\n //a=simulcast: recv pt=97;98 send pt=97\n //a=simulcast: send rid=5;6;7 paused=6,7\n name: 'simulcast_03',\n reg: /^simulcast:[\\s\\t]+([\\S+\\s\\t]+)$/,\n names: [\n 'value'\n ],\n format: 'simulcast: %s'\n },\n {\n //a=framerate:25\n //a=framerate:29.97\n name: 'framerate',\n reg: /^framerate:(\\d+(?:$|\\.\\d+))/,\n format: 'framerate:%s'\n },\n {\n push: 'invalid',\n names: [\n 'value'\n ]\n }\n ]\n };\n // set sensible defaults to avoid polluting the grammar with boring details\n Object.keys(grammar).forEach(function(key) {\n var objs = grammar[key];\n objs.forEach(function(obj) {\n if (!obj.reg) {\n obj.reg = /(.*)/;\n }\n if (!obj.format) {\n obj.format = '%s';\n }\n });\n });\n /***/ },\n /***/ \"./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/index.js\": /*!*********************************************************************************!*\\\n !*** ./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/index.js ***!\n \\*********************************************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n var parser = __webpack_require__(/*! ./parser */ \"./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/parser.js\");\n var writer = __webpack_require__(/*! ./writer */ \"./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/writer.js\");\n exports.write = writer;\n exports.parse = parser.parse;\n exports.parseFmtpConfig = parser.parseFmtpConfig;\n exports.parseParams = parser.parseParams;\n exports.parsePayloads = parser.parsePayloads;\n exports.parseRemoteCandidates = parser.parseRemoteCandidates;\n exports.parseImageAttributes = parser.parseImageAttributes;\n exports.parseSimulcastStreamList = parser.parseSimulcastStreamList;\n /***/ },\n /***/ \"./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/parser.js\": /*!**********************************************************************************!*\\\n !*** ./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/parser.js ***!\n \\**********************************************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n var toIntIfInt = function(v) {\n return String(Number(v)) === v ? Number(v) : v;\n };\n var attachProperties = function(match, location, names, rawName) {\n if (rawName && !names) {\n location[rawName] = toIntIfInt(match[1]);\n } else {\n for(var i = 0; i < names.length; i += 1){\n if (match[i + 1] != null) {\n location[names[i]] = toIntIfInt(match[i + 1]);\n }\n }\n }\n };\n var parseReg = function(obj, location, content) {\n var needsBlank = obj.name && obj.names;\n if (obj.push && !location[obj.push]) {\n location[obj.push] = [];\n } else if (needsBlank && !location[obj.name]) {\n location[obj.name] = {};\n }\n var keyLocation = obj.push ? {} : needsBlank ? location[obj.name] : location; // otherwise, named location or root\n attachProperties(content.match(obj.reg), keyLocation, obj.names, obj.name);\n if (obj.push) {\n location[obj.push].push(keyLocation);\n }\n };\n var grammar = __webpack_require__(/*! ./grammar */ \"./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/grammar.js\");\n var validLine = RegExp.prototype.test.bind(/^([a-z])=(.*)/);\n exports.parse = function(sdp) {\n var session = {}, media = [], location = session; // points at where properties go under (one of the above)\n // parse lines we understand\n sdp.split(/(\\r\\n|\\r|\\n)/).filter(validLine).forEach(function(l) {\n var type = l[0];\n var content = l.slice(2);\n if (type === 'm') {\n media.push({\n rtp: [],\n fmtp: []\n });\n location = media[media.length - 1]; // point at latest media line\n }\n for(var j = 0; j < (grammar[type] || []).length; j += 1){\n var obj = grammar[type][j];\n if (obj.reg.test(content)) {\n return parseReg(obj, location, content);\n }\n }\n });\n session.media = media; // link it up\n return session;\n };\n var paramReducer = function(acc, expr) {\n var s = expr.split(/=(.+)/, 2);\n if (s.length === 2) {\n acc[s[0]] = toIntIfInt(s[1]);\n }\n return acc;\n };\n exports.parseParams = function(str) {\n return str.split(/\\;\\s?/).reduce(paramReducer, {});\n };\n // For backward compatibility - alias will be removed in 3.0.0\n exports.parseFmtpConfig = exports.parseParams;\n exports.parsePayloads = function(str) {\n return str.split(' ').map(Number);\n };\n exports.parseRemoteCandidates = function(str) {\n var candidates = [];\n var parts = str.split(' ').map(toIntIfInt);\n for(var i = 0; i < parts.length; i += 3){\n candidates.push({\n component: parts[i],\n ip: parts[i + 1],\n port: parts[i + 2]\n });\n }\n return candidates;\n };\n exports.parseImageAttributes = function(str) {\n return str.split(' ').map(function(item) {\n return item.substring(1, item.length - 1).split(',').reduce(paramReducer, {});\n });\n };\n exports.parseSimulcastStreamList = function(str) {\n return str.split(';').map(function(stream) {\n return stream.split(',').map(function(format) {\n var scid, paused = false;\n if (format[0] !== '~') {\n scid = toIntIfInt(format);\n } else {\n scid = toIntIfInt(format.substring(1, format.length));\n paused = true;\n }\n return {\n scid: scid,\n paused: paused\n };\n });\n });\n };\n /***/ },\n /***/ \"./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/writer.js\": /*!**********************************************************************************!*\\\n !*** ./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/writer.js ***!\n \\**********************************************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n var grammar = __webpack_require__(/*! ./grammar */ \"./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/grammar.js\");\n // customized util.format - discards excess arguments and can void middle ones\n var formatRegExp = /%[sdv%]/g;\n var format = function(formatStr) {\n var i = 1;\n var args = arguments;\n var len = args.length;\n return formatStr.replace(formatRegExp, function(x) {\n if (i >= len) {\n return x; // missing argument\n }\n var arg = args[i];\n i += 1;\n switch(x){\n case '%%':\n return '%';\n case '%s':\n return String(arg);\n case '%d':\n return Number(arg);\n case '%v':\n return '';\n }\n });\n // NB: we discard excess arguments - they are typically undefined from makeLine\n };\n var makeLine = function(type, obj, location) {\n var str = obj.format instanceof Function ? obj.format(obj.push ? location : location[obj.name]) : obj.format;\n var args = [\n type + '=' + str\n ];\n if (obj.names) {\n for(var i = 0; i < obj.names.length; i += 1){\n var n = obj.names[i];\n if (obj.name) {\n args.push(location[obj.name][n]);\n } else {\n args.push(location[obj.names[i]]);\n }\n }\n } else {\n args.push(location[obj.name]);\n }\n return format.apply(null, args);\n };\n // RFC specified order\n // TODO: extend this with all the rest\n var defaultOuterOrder = [\n 'v',\n 'o',\n 's',\n 'i',\n 'u',\n 'e',\n 'p',\n 'c',\n 'b',\n 't',\n 'r',\n 'z',\n 'a'\n ];\n var defaultInnerOrder = [\n 'i',\n 'c',\n 'b',\n 'a'\n ];\n module.exports = function(session, opts) {\n opts = opts || {};\n // ensure certain properties exist\n if (session.version == null) {\n session.version = 0; // 'v=0' must be there (only defined version atm)\n }\n if (session.name == null) {\n session.name = ' '; // 's= ' must be there if no meaningful name set\n }\n session.media.forEach(function(mLine) {\n if (mLine.payloads == null) {\n mLine.payloads = '';\n }\n });\n var outerOrder = opts.outerOrder || defaultOuterOrder;\n var innerOrder = opts.innerOrder || defaultInnerOrder;\n var sdp = [];\n // loop through outerOrder for matching properties on session\n outerOrder.forEach(function(type) {\n grammar[type].forEach(function(obj) {\n if (obj.name in session && session[obj.name] != null) {\n sdp.push(makeLine(type, obj, session));\n } else if (obj.push in session && session[obj.push] != null) {\n session[obj.push].forEach(function(el) {\n sdp.push(makeLine(type, obj, el));\n });\n }\n });\n });\n // then for each media line, follow the innerOrder\n session.media.forEach(function(mLine) {\n sdp.push(makeLine('m', grammar.m[0], mLine));\n innerOrder.forEach(function(type) {\n grammar[type].forEach(function(obj) {\n if (obj.name in mLine && mLine[obj.name] != null) {\n sdp.push(makeLine(type, obj, mLine));\n } else if (obj.push in mLine && mLine[obj.push] != null) {\n mLine[obj.push].forEach(function(el) {\n sdp.push(makeLine(type, obj, el));\n });\n }\n });\n });\n });\n return sdp.join('\\r\\n') + '\\r\\n';\n };\n /***/ },\n /***/ \"./node_modules/after/index.js\": /*!*************************************!*\\\n !*** ./node_modules/after/index.js ***!\n \\*************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n module.exports = after;\n function after(count, callback, err_cb) {\n var bail = false;\n err_cb = err_cb || noop;\n proxy.count = count;\n return count === 0 ? callback() : proxy;\n function proxy(err, result) {\n if (proxy.count <= 0) {\n throw new Error('after called too many times');\n }\n --proxy.count;\n // after first error, rest are passed to err_cb\n if (err) {\n bail = true;\n callback(err);\n // future error callbacks will go to error handler\n callback = err_cb;\n } else if (proxy.count === 0 && !bail) {\n callback(null, result);\n }\n }\n }\n function noop() {}\n /***/ },\n /***/ \"./node_modules/arraybuffer.slice/index.js\": /*!*************************************************!*\\\n !*** ./node_modules/arraybuffer.slice/index.js ***!\n \\*************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n /**\n * An abstraction for slicing an arraybuffer even when\n * ArrayBuffer.prototype.slice is not supported\n *\n * @api public\n */ module.exports = function(arraybuffer, start, end) {\n var bytes = arraybuffer.byteLength;\n start = start || 0;\n end = end || bytes;\n if (arraybuffer.slice) {\n return arraybuffer.slice(start, end);\n }\n if (start < 0) {\n start += bytes;\n }\n if (end < 0) {\n end += bytes;\n }\n if (end > bytes) {\n end = bytes;\n }\n if (start >= bytes || start >= end || bytes === 0) {\n return new ArrayBuffer(0);\n }\n var abv = new Uint8Array(arraybuffer);\n var result = new Uint8Array(end - start);\n for(var i = start, ii = 0; i < end; i++, ii++){\n result[ii] = abv[i];\n }\n return result.buffer;\n };\n /***/ },\n /***/ \"./node_modules/backo2/index.js\": /*!**************************************!*\\\n !*** ./node_modules/backo2/index.js ***!\n \\**************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n /**\n * Expose `Backoff`.\n */ module.exports = Backoff;\n /**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */ function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n }\n /**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */ Backoff.prototype.duration = function() {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n };\n /**\n * Reset the number of attempts.\n *\n * @api public\n */ Backoff.prototype.reset = function() {\n this.attempts = 0;\n };\n /**\n * Set the minimum duration\n *\n * @api public\n */ Backoff.prototype.setMin = function(min) {\n this.ms = min;\n };\n /**\n * Set the maximum duration\n *\n * @api public\n */ Backoff.prototype.setMax = function(max) {\n this.max = max;\n };\n /**\n * Set the jitter\n *\n * @api public\n */ Backoff.prototype.setJitter = function(jitter) {\n this.jitter = jitter;\n };\n /***/ },\n /***/ \"./node_modules/base64-arraybuffer/lib/base64-arraybuffer.js\": /*!*******************************************************************!*\\\n !*** ./node_modules/base64-arraybuffer/lib/base64-arraybuffer.js ***!\n \\*******************************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n /*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */ (function(chars) {\n \"use strict\";\n exports.encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = \"\";\n for(i = 0; i < len; i += 3){\n base64 += chars[bytes[i] >> 2];\n base64 += chars[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64 += chars[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n return base64;\n };\n exports.decode = function(base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for(i = 0; i < len; i += 4){\n encoded1 = chars.indexOf(base64[i]);\n encoded2 = chars.indexOf(base64[i + 1]);\n encoded3 = chars.indexOf(base64[i + 2]);\n encoded4 = chars.indexOf(base64[i + 3]);\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return arraybuffer;\n };\n })(\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\");\n /***/ },\n /***/ \"./node_modules/base64-js/index.js\": /*!*****************************************!*\\\n !*** ./node_modules/base64-js/index.js ***!\n \\*****************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n \"use strict\";\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n for(var i1 = 0, len1 = code.length; i1 < len1; ++i1){\n lookup[i1] = code[i1];\n revLookup[code.charCodeAt(i1)] = i1;\n }\n // Support decoding URL-safe base64 strings, as Node.js does.\n // See: https://en.wikipedia.org/wiki/Base64#URL_applications\n revLookup['-'.charCodeAt(0)] = 62;\n revLookup['_'.charCodeAt(0)] = 63;\n function getLens(b64) {\n var len = b64.length;\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4');\n }\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [\n validLen,\n placeHoldersLen\n ];\n }\n // base64 is 4/3 + up to two characters of the original data\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n for(i = 0; i < len; i += 4){\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = tmp >> 16 & 0xFF;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 0xFF;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for(var i = start; i < end; i += 3){\n tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n return output.join('');\n }\n function fromByteArray(uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n ;\n var parts = [];\n var maxChunkLength = 16383 // must be multiple of 3\n ;\n // go through the array every three bytes, we'll deal with trailing stuff later\n for(var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength){\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n }\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '==');\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '=');\n }\n return parts.join('');\n }\n /***/ },\n /***/ \"./node_modules/blob/index.js\": /*!************************************!*\\\n !*** ./node_modules/blob/index.js ***!\n \\************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n /**\r\n * Create a blob builder even when vendor prefixes exist\r\n */ var BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : false;\n /**\r\n * Check if Blob constructor is supported\r\n */ var blobSupported = function() {\n try {\n var a = new Blob([\n 'hi'\n ]);\n return a.size === 2;\n } catch (e) {\n return false;\n }\n }();\n /**\r\n * Check if Blob constructor supports ArrayBufferViews\r\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\r\n */ var blobSupportsArrayBufferView = blobSupported && function() {\n try {\n var b = new Blob([\n new Uint8Array([\n 1,\n 2\n ])\n ]);\n return b.size === 2;\n } catch (e) {\n return false;\n }\n }();\n /**\r\n * Check if BlobBuilder is supported\r\n */ var blobBuilderSupported = BlobBuilder && BlobBuilder.prototype.append && BlobBuilder.prototype.getBlob;\n /**\r\n * Helper function that maps ArrayBufferViews to ArrayBuffers\r\n * Used by BlobBuilder constructor and old browsers that didn't\r\n * support it in the Blob constructor.\r\n */ function mapArrayBufferViews(ary) {\n return ary.map(function(chunk) {\n if (chunk.buffer instanceof ArrayBuffer) {\n var buf = chunk.buffer;\n // if this is a subarray, make a copy so we only\n // include the subarray region from the underlying buffer\n if (chunk.byteLength !== buf.byteLength) {\n var copy = new Uint8Array(chunk.byteLength);\n copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\n buf = copy.buffer;\n }\n return buf;\n }\n return chunk;\n });\n }\n function BlobBuilderConstructor(ary, options) {\n options = options || {};\n var bb = new BlobBuilder();\n mapArrayBufferViews(ary).forEach(function(part) {\n bb.append(part);\n });\n return options.type ? bb.getBlob(options.type) : bb.getBlob();\n }\n ;\n function BlobConstructor(ary, options) {\n return new Blob(mapArrayBufferViews(ary), options || {});\n }\n ;\n if (typeof Blob !== 'undefined') {\n BlobBuilderConstructor.prototype = Blob.prototype;\n BlobConstructor.prototype = Blob.prototype;\n }\n module.exports = function() {\n if (blobSupported) {\n return blobSupportsArrayBufferView ? Blob : BlobConstructor;\n } else if (blobBuilderSupported) {\n return BlobBuilderConstructor;\n } else {\n return undefined;\n }\n }();\n /***/ },\n /***/ \"./node_modules/component-bind/index.js\": /*!**********************************************!*\\\n !*** ./node_modules/component-bind/index.js ***!\n \\**********************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n /**\n * Slice reference.\n */ var slice = [].slice;\n /**\n * Bind `obj` to `fn`.\n *\n * @param {Object} obj\n * @param {Function|String} fn or string\n * @return {Function}\n * @api public\n */ module.exports = function(obj, fn) {\n if ('string' == typeof fn) fn = obj[fn];\n if ('function' != typeof fn) throw new Error('bind() requires a function');\n var args = slice.call(arguments, 2);\n return function() {\n return fn.apply(obj, args.concat(slice.call(arguments)));\n };\n };\n /***/ },\n /***/ \"./node_modules/component-emitter/index.js\": /*!*************************************************!*\\\n !*** ./node_modules/component-emitter/index.js ***!\n \\*************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /**\r\n * Expose `Emitter`.\r\n */ if (true) {\n module.exports = Emitter;\n }\n /**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */ function Emitter(obj) {\n if (obj) return mixin(obj);\n }\n ;\n /**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */ function mixin(obj) {\n for(var key in Emitter.prototype){\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n }\n /**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */ Emitter.prototype.on = Emitter.prototype.addEventListener = function(event, fn) {\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || []).push(fn);\n return this;\n };\n /**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */ Emitter.prototype.once = function(event, fn) {\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n on.fn = fn;\n this.on(event, on);\n return this;\n };\n /**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */ Emitter.prototype.off = Emitter.prototype.removeListener = Emitter.prototype.removeAllListeners = Emitter.prototype.removeEventListener = function(event, fn) {\n this._callbacks = this._callbacks || {};\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n // remove specific handler\n var cb;\n for(var i = 0; i < callbacks.length; i++){\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n return this;\n };\n /**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */ Emitter.prototype.emit = function(event) {\n this._callbacks = this._callbacks || {};\n var args = new Array(arguments.length - 1), callbacks = this._callbacks['$' + event];\n for(var i = 1; i < arguments.length; i++){\n args[i - 1] = arguments[i];\n }\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for(var i = 0, len = callbacks.length; i < len; ++i){\n callbacks[i].apply(this, args);\n }\n }\n return this;\n };\n /**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */ Emitter.prototype.listeners = function(event) {\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n };\n /**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */ Emitter.prototype.hasListeners = function(event) {\n return !!this.listeners(event).length;\n };\n /***/ },\n /***/ \"./node_modules/component-inherit/index.js\": /*!*************************************************!*\\\n !*** ./node_modules/component-inherit/index.js ***!\n \\*************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n module.exports = function(a, b) {\n var fn = function() {};\n fn.prototype = b.prototype;\n a.prototype = new fn;\n a.prototype.constructor = a;\n };\n /***/ },\n /***/ \"./node_modules/debug/src/browser.js\": /*!*******************************************!*\\\n !*** ./node_modules/debug/src/browser.js ***!\n \\*******************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */ (function(process) {\n exports = module.exports = __webpack_require__(/*! ./debug */ \"./node_modules/debug/src/debug.js\");\n exports.log = log;\n exports.formatArgs = formatArgs;\n exports.save = save;\n exports.load = load;\n exports.useColors = useColors1;\n exports.storage = 'undefined' != typeof chrome && 'undefined' != typeof chrome.storage ? chrome.storage.local : localstorage();\n /**\n * Colors.\n */ exports.colors = [\n '#0000CC',\n '#0000FF',\n '#0033CC',\n '#0033FF',\n '#0066CC',\n '#0066FF',\n '#0099CC',\n '#0099FF',\n '#00CC00',\n '#00CC33',\n '#00CC66',\n '#00CC99',\n '#00CCCC',\n '#00CCFF',\n '#3300CC',\n '#3300FF',\n '#3333CC',\n '#3333FF',\n '#3366CC',\n '#3366FF',\n '#3399CC',\n '#3399FF',\n '#33CC00',\n '#33CC33',\n '#33CC66',\n '#33CC99',\n '#33CCCC',\n '#33CCFF',\n '#6600CC',\n '#6600FF',\n '#6633CC',\n '#6633FF',\n '#66CC00',\n '#66CC33',\n '#9900CC',\n '#9900FF',\n '#9933CC',\n '#9933FF',\n '#99CC00',\n '#99CC33',\n '#CC0000',\n '#CC0033',\n '#CC0066',\n '#CC0099',\n '#CC00CC',\n '#CC00FF',\n '#CC3300',\n '#CC3333',\n '#CC3366',\n '#CC3399',\n '#CC33CC',\n '#CC33FF',\n '#CC6600',\n '#CC6633',\n '#CC9900',\n '#CC9933',\n '#CCCC00',\n '#CCCC33',\n '#FF0000',\n '#FF0033',\n '#FF0066',\n '#FF0099',\n '#FF00CC',\n '#FF00FF',\n '#FF3300',\n '#FF3333',\n '#FF3366',\n '#FF3399',\n '#FF33CC',\n '#FF33FF',\n '#FF6600',\n '#FF6633',\n '#FF9900',\n '#FF9933',\n '#FFCC00',\n '#FFCC33'\n ];\n /**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */ function useColors1() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n // Internet Explorer and Edge do not support colors.\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n }\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table)) || // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) || // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n }\n /**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */ exports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n };\n /**\n * Colorize log arguments if enabled.\n *\n * @api public\n */ function formatArgs(args) {\n var useColors = this.useColors;\n args[0] = (useColors ? '%c' : '') + this.namespace + (useColors ? ' %c' : ' ') + args[0] + (useColors ? '%c ' : ' ') + '+' + exports.humanize(this.diff);\n if (!useColors) return;\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit');\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n args.splice(lastC, 0, c);\n }\n /**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */ function log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments);\n }\n /**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */ function save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch (e) {}\n }\n /**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */ function load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch (e) {}\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n return r;\n }\n /**\n * Enable namespaces listed in `localStorage.debug` initially.\n */ exports.enable(load());\n /**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */ function localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n }\n /* WEBPACK VAR INJECTION */ }).call(this, __webpack_require__(/*! ./../../process/browser.js */ \"./node_modules/process/browser.js\"));\n /***/ },\n /***/ \"./node_modules/debug/src/debug.js\": /*!*****************************************!*\\\n !*** ./node_modules/debug/src/debug.js ***!\n \\*****************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */ exports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\n exports.coerce = coerce;\n exports.disable = disable;\n exports.enable = enable;\n exports.enabled = enabled;\n exports.humanize = __webpack_require__(/*! ms */ \"./node_modules/ms/index.js\");\n /**\n * Active `debug` instances.\n */ exports.instances = [];\n /**\n * The currently active debug mode names, and names to skip.\n */ exports.names = [];\n exports.skips = [];\n /**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */ exports.formatters = {};\n /**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */ function selectColor(namespace) {\n var hash = 0, i;\n for(i in namespace){\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n return exports.colors[Math.abs(hash) % exports.colors.length];\n }\n /**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */ function createDebug(namespace) {\n var prevTime;\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n var self = debug;\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for(var i = 0; i < args.length; i++){\n args[i] = arguments[i];\n }\n args[0] = exports.coerce(args[0]);\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n exports.instances.push(debug);\n return debug;\n }\n function destroy() {\n var index = exports.instances.indexOf(this);\n if (index !== -1) {\n exports.instances.splice(index, 1);\n return true;\n } else {\n return false;\n }\n }\n /**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */ function enable(namespaces) {\n exports.save(namespaces);\n exports.names = [];\n exports.skips = [];\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n for(i = 0; i < len; i++){\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n for(i = 0; i < exports.instances.length; i++){\n var instance = exports.instances[i];\n instance.enabled = exports.enabled(instance.namespace);\n }\n }\n /**\n * Disable debug output.\n *\n * @api public\n */ function disable() {\n exports.enable('');\n }\n /**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */ function enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n var i, len;\n for(i = 0, len = exports.skips.length; i < len; i++){\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for(i = 0, len = exports.names.length; i < len; i++){\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */ function coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n }\n /***/ },\n /***/ \"./node_modules/decode-uri-component/index.js\": /*!****************************************************!*\\\n !*** ./node_modules/decode-uri-component/index.js ***!\n \\****************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n \"use strict\";\n var token = '%[a-f0-9]{2}';\n var singleMatcher = new RegExp(token, 'gi');\n var multiMatcher = new RegExp('(' + token + ')+', 'gi');\n function decodeComponents(components, split) {\n try {\n // Try to decode the entire string first\n return decodeURIComponent(components.join(''));\n } catch (err) {\n // Do nothing\n }\n if (components.length === 1) {\n return components;\n }\n split = split || 1;\n // Split the array in 2 parts\n var left = components.slice(0, split);\n var right = components.slice(split);\n return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n }\n function decode(input) {\n try {\n return decodeURIComponent(input);\n } catch (err) {\n var tokens = input.match(singleMatcher);\n for(var i = 1; i < tokens.length; i++){\n input = decodeComponents(tokens, i).join('');\n tokens = input.match(singleMatcher);\n }\n return input;\n }\n }\n function customDecodeURIComponent(input) {\n // Keep track of all the replacements and prefill the map with the `BOM`\n var replaceMap = {\n '%FE%FF': '\\uFFFD\\uFFFD',\n '%FF%FE': '\\uFFFD\\uFFFD'\n };\n var match = multiMatcher.exec(input);\n while(match){\n try {\n // Decode as big chunks as possible\n replaceMap[match[0]] = decodeURIComponent(match[0]);\n } catch (err) {\n var result = decode(match[0]);\n if (result !== match[0]) {\n replaceMap[match[0]] = result;\n }\n }\n match = multiMatcher.exec(input);\n }\n // Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n replaceMap['%C2'] = '\\uFFFD';\n var entries = Object.keys(replaceMap);\n for(var i = 0; i < entries.length; i++){\n // Replace all decoded components\n var key = entries[i];\n input = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n }\n return input;\n }\n module.exports = function(encodedURI) {\n if (typeof encodedURI !== 'string') {\n throw new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n }\n try {\n encodedURI = encodedURI.replace(/\\+/g, ' ');\n // Try the built in decoder first\n return decodeURIComponent(encodedURI);\n } catch (err) {\n // Fallback to a more advanced decoder\n return customDecodeURIComponent(encodedURI);\n }\n };\n /***/ },\n /***/ \"./node_modules/detect-browser/index.js\": /*!**********************************************!*\\\n !*** ./node_modules/detect-browser/index.js ***!\n \\**********************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */ (function(process) {\n var __spreadArrays = this && this.__spreadArrays || function() {\n for(var s = 0, i = 0, il = arguments.length; i < il; i++)s += arguments[i].length;\n for(var r = Array(s), k = 0, i = 0; i < il; i++)for(var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)r[k] = a[j];\n return r;\n };\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var BrowserInfo1 = /** @class */ function() {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n }\n return BrowserInfo;\n }();\n exports.BrowserInfo = BrowserInfo1;\n var NodeInfo1 = /** @class */ function() {\n function NodeInfo(version) {\n this.version = version;\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n }();\n exports.NodeInfo = NodeInfo1;\n var BotInfo1 = /** @class */ function() {\n function BotInfo() {\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n }();\n exports.BotInfo = BotInfo1;\n // tslint:disable-next-line:max-line-length\n var SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\n var SEARCHBOT_OS_REGEX = /(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves\\/Teoma)|(ia_archiver)/;\n var REQUIRED_VERSION_PARTS = 3;\n var userAgentRules = [\n [\n 'aol',\n /AOLShield\\/([0-9\\._]+)/\n ],\n [\n 'edge',\n /Edge\\/([0-9\\._]+)/\n ],\n [\n 'edge-ios',\n /EdgiOS\\/([0-9\\._]+)/\n ],\n [\n 'yandexbrowser',\n /YaBrowser\\/([0-9\\._]+)/\n ],\n [\n 'vivaldi',\n /Vivaldi\\/([0-9\\.]+)/\n ],\n [\n 'kakaotalk',\n /KAKAOTALK\\s([0-9\\.]+)/\n ],\n [\n 'samsung',\n /SamsungBrowser\\/([0-9\\.]+)/\n ],\n [\n 'silk',\n /\\bSilk\\/([0-9._-]+)\\b/\n ],\n [\n 'miui',\n /MiuiBrowser\\/([0-9\\.]+)$/\n ],\n [\n 'beaker',\n /BeakerBrowser\\/([0-9\\.]+)/\n ],\n [\n 'edge-chromium',\n /Edg\\/([0-9\\.]+)/\n ],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/, \n ],\n [\n 'chrome',\n /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/\n ],\n [\n 'phantomjs',\n /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/\n ],\n [\n 'crios',\n /CriOS\\/([0-9\\.]+)(:?\\s|$)/\n ],\n [\n 'firefox',\n /Firefox\\/([0-9\\.]+)(?:\\s|$)/\n ],\n [\n 'fxios',\n /FxiOS\\/([0-9\\.]+)/\n ],\n [\n 'opera-mini',\n /Opera Mini.*Version\\/([0-9\\.]+)/\n ],\n [\n 'opera',\n /Opera\\/([0-9\\.]+)(?:\\s|$)/\n ],\n [\n 'opera',\n /OPR\\/([0-9\\.]+)(:?\\s|$)/\n ],\n [\n 'ie',\n /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/\n ],\n [\n 'ie',\n /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/\n ],\n [\n 'ie',\n /MSIE\\s(7\\.0)/\n ],\n [\n 'bb10',\n /BB10;\\sTouch.*Version\\/([0-9\\.]+)/\n ],\n [\n 'android',\n /Android\\s([0-9\\.]+)/\n ],\n [\n 'ios',\n /Version\\/([0-9\\._]+).*Mobile.*Safari.*/\n ],\n [\n 'safari',\n /Version\\/([0-9\\._]+).*Safari/\n ],\n [\n 'facebook',\n /FBAV\\/([0-9\\.]+)/\n ],\n [\n 'instagram',\n /Instagram\\s([0-9\\.]+)/\n ],\n [\n 'ios-webview',\n /AppleWebKit\\/([0-9\\.]+).*Mobile/\n ],\n [\n 'ios-webview',\n /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/\n ],\n [\n 'searchbot',\n SEARCHBOX_UA_REGEX\n ], \n ];\n var operatingSystemRules = [\n [\n 'iOS',\n /iP(hone|od|ad)/\n ],\n [\n 'Android OS',\n /Android/\n ],\n [\n 'BlackBerry OS',\n /BlackBerry|BB10/\n ],\n [\n 'Windows Mobile',\n /IEMobile/\n ],\n [\n 'Amazon OS',\n /Kindle/\n ],\n [\n 'Windows 3.11',\n /Win16/\n ],\n [\n 'Windows 95',\n /(Windows 95)|(Win95)|(Windows_95)/\n ],\n [\n 'Windows 98',\n /(Windows 98)|(Win98)/\n ],\n [\n 'Windows 2000',\n /(Windows NT 5.0)|(Windows 2000)/\n ],\n [\n 'Windows XP',\n /(Windows NT 5.1)|(Windows XP)/\n ],\n [\n 'Windows Server 2003',\n /(Windows NT 5.2)/\n ],\n [\n 'Windows Vista',\n /(Windows NT 6.0)/\n ],\n [\n 'Windows 7',\n /(Windows NT 6.1)/\n ],\n [\n 'Windows 8',\n /(Windows NT 6.2)/\n ],\n [\n 'Windows 8.1',\n /(Windows NT 6.3)/\n ],\n [\n 'Windows 10',\n /(Windows NT 10.0)/\n ],\n [\n 'Windows ME',\n /Windows ME/\n ],\n [\n 'Open BSD',\n /OpenBSD/\n ],\n [\n 'Sun OS',\n /SunOS/\n ],\n [\n 'Chrome OS',\n /CrOS/\n ],\n [\n 'Linux',\n /(Linux)|(X11)/\n ],\n [\n 'Mac OS',\n /(Mac_PowerPC)|(Macintosh)/\n ],\n [\n 'QNX',\n /QNX/\n ],\n [\n 'BeOS',\n /BeOS/\n ],\n [\n 'OS/2',\n /OS\\/2/\n ],\n [\n 'Search Bot',\n SEARCHBOT_OS_REGEX\n ], \n ];\n function detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n }\n exports.detect = detect;\n function parseUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n var matchedRule = ua !== '' && userAgentRules.reduce(function(matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [\n browser,\n uaMatch\n ];\n }, false);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo1();\n }\n var versionParts = match[1] && match[1].split(/[._]/).slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArrays(versionParts, createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length));\n }\n } else {\n versionParts = [];\n }\n return new BrowserInfo1(name, versionParts.join('.'), detectOS(ua));\n }\n exports.parseUserAgent = parseUserAgent;\n function detectOS(ua) {\n for(var ii = 0, count = operatingSystemRules.length; ii < count; ii++){\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.test(ua);\n if (match) {\n return os;\n }\n }\n return null;\n }\n exports.detectOS = detectOS;\n function getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo1(process.version.slice(1)) : null;\n }\n exports.getNodeVersion = getNodeVersion;\n function createVersionParts(count) {\n var output = [];\n for(var ii = 0; ii < count; ii++){\n output.push('0');\n }\n return output;\n }\n /* WEBPACK VAR INJECTION */ }).call(this, __webpack_require__(/*! ./../process/browser.js */ \"./node_modules/process/browser.js\"));\n /***/ },\n /***/ \"./node_modules/engine.io-client/lib/globalThis.browser.js\": /*!*****************************************************************!*\\\n !*** ./node_modules/engine.io-client/lib/globalThis.browser.js ***!\n \\*****************************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n module.exports = function() {\n if (typeof self !== 'undefined') {\n return self;\n } else if (typeof window !== 'undefined') {\n return window;\n } else {\n return Function('return this')(); // eslint-disable-line no-new-func\n }\n }();\n /***/ },\n /***/ \"./node_modules/engine.io-client/lib/index.js\": /*!****************************************************!*\\\n !*** ./node_modules/engine.io-client/lib/index.js ***!\n \\****************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n module.exports = __webpack_require__(/*! ./socket */ \"./node_modules/engine.io-client/lib/socket.js\");\n /**\n * Exports parser\n *\n * @api public\n *\n */ module.exports.parser = __webpack_require__(/*! engine.io-parser */ \"./node_modules/engine.io-parser/lib/browser.js\");\n /***/ },\n /***/ \"./node_modules/engine.io-client/lib/socket.js\": /*!*****************************************************!*\\\n !*** ./node_modules/engine.io-client/lib/socket.js ***!\n \\*****************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /**\n * Module dependencies.\n */ var transports = __webpack_require__(/*! ./transports/index */ \"./node_modules/engine.io-client/lib/transports/index.js\");\n var Emitter = __webpack_require__(/*! component-emitter */ \"./node_modules/component-emitter/index.js\");\n var debug = __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('engine.io-client:socket');\n var index = __webpack_require__(/*! indexof */ \"./node_modules/indexof/index.js\");\n var parser = __webpack_require__(/*! engine.io-parser */ \"./node_modules/engine.io-parser/lib/browser.js\");\n var parseuri = __webpack_require__(/*! parseuri */ \"./node_modules/parseuri/index.js\");\n var parseqs = __webpack_require__(/*! parseqs */ \"./node_modules/parseqs/index.js\");\n /**\n * Module exports.\n */ module.exports = Socket;\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} options\n * @api public\n */ function Socket(uri, opts) {\n if (!(this instanceof Socket)) return new Socket(uri, opts);\n opts = opts || {};\n if (uri && 'object' === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parseuri(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === 'https' || uri.protocol === 'wss';\n opts.port = uri.port;\n if (uri.query) opts.query = uri.query;\n } else if (opts.host) {\n opts.hostname = parseuri(opts.host).host;\n }\n this.secure = null != opts.secure ? opts.secure : typeof location !== 'undefined' && 'https:' === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? '443' : '80';\n }\n this.agent = opts.agent || false;\n this.hostname = opts.hostname || (typeof location !== 'undefined' ? location.hostname : 'localhost');\n this.port = opts.port || (typeof location !== 'undefined' && location.port ? location.port : this.secure ? 443 : 80);\n this.query = opts.query || {};\n if ('string' === typeof this.query) this.query = parseqs.decode(this.query);\n this.upgrade = false !== opts.upgrade;\n this.path = (opts.path || '/engine.io').replace(/\\/$/, '') + '/';\n this.forceJSONP = !!opts.forceJSONP;\n this.jsonp = false !== opts.jsonp;\n this.forceBase64 = !!opts.forceBase64;\n this.enablesXDR = !!opts.enablesXDR;\n this.withCredentials = false !== opts.withCredentials;\n this.timestampParam = opts.timestampParam || 't';\n this.timestampRequests = opts.timestampRequests;\n this.transports = opts.transports || [\n 'polling',\n 'websocket'\n ];\n this.transportOptions = opts.transportOptions || {};\n this.readyState = '';\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.policyPort = opts.policyPort || 843;\n this.rememberUpgrade = opts.rememberUpgrade || false;\n this.binaryType = null;\n this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades;\n this.perMessageDeflate = false !== opts.perMessageDeflate ? opts.perMessageDeflate || {} : false;\n if (true === this.perMessageDeflate) this.perMessageDeflate = {};\n if (this.perMessageDeflate && null == this.perMessageDeflate.threshold) {\n this.perMessageDeflate.threshold = 1024;\n }\n // SSL options for Node.js client\n this.pfx = opts.pfx || undefined;\n this.key = opts.key || undefined;\n this.passphrase = opts.passphrase || undefined;\n this.cert = opts.cert || undefined;\n this.ca = opts.ca || undefined;\n this.ciphers = opts.ciphers || undefined;\n this.rejectUnauthorized = opts.rejectUnauthorized === undefined ? true : opts.rejectUnauthorized;\n this.forceNode = !!opts.forceNode;\n // detect ReactNative environment\n this.isReactNative = typeof navigator !== 'undefined' && typeof navigator.product === 'string' && navigator.product.toLowerCase() === 'reactnative';\n // other options for Node.js or ReactNative client\n if (typeof self === 'undefined' || this.isReactNative) {\n if (opts.extraHeaders && Object.keys(opts.extraHeaders).length > 0) {\n this.extraHeaders = opts.extraHeaders;\n }\n if (opts.localAddress) {\n this.localAddress = opts.localAddress;\n }\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingIntervalTimer = null;\n this.pingTimeoutTimer = null;\n this.open();\n }\n Socket.priorWebsocketSuccess = false;\n /**\n * Mix in `Emitter`.\n */ Emitter(Socket.prototype);\n /**\n * Protocol version.\n *\n * @api public\n */ Socket.protocol = parser.protocol; // this is an int\n /**\n * Expose deps for legacy compatibility\n * and standalone browser access.\n */ Socket.Socket = Socket;\n Socket.Transport = __webpack_require__(/*! ./transport */ \"./node_modules/engine.io-client/lib/transport.js\");\n Socket.transports = __webpack_require__(/*! ./transports/index */ \"./node_modules/engine.io-client/lib/transports/index.js\");\n Socket.parser = __webpack_require__(/*! engine.io-parser */ \"./node_modules/engine.io-parser/lib/browser.js\");\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */ Socket.prototype.createTransport = function(name) {\n debug('creating transport \"%s\"', name);\n var query = clone(this.query);\n // append engine.io protocol identifier\n query.EIO = parser.protocol;\n // transport name\n query.transport = name;\n // per-transport options\n var options = this.transportOptions[name] || {};\n // session id if we already have one\n if (this.id) query.sid = this.id;\n var transport = new transports[name]({\n query: query,\n socket: this,\n agent: options.agent || this.agent,\n hostname: options.hostname || this.hostname,\n port: options.port || this.port,\n secure: options.secure || this.secure,\n path: options.path || this.path,\n forceJSONP: options.forceJSONP || this.forceJSONP,\n jsonp: options.jsonp || this.jsonp,\n forceBase64: options.forceBase64 || this.forceBase64,\n enablesXDR: options.enablesXDR || this.enablesXDR,\n withCredentials: options.withCredentials || this.withCredentials,\n timestampRequests: options.timestampRequests || this.timestampRequests,\n timestampParam: options.timestampParam || this.timestampParam,\n policyPort: options.policyPort || this.policyPort,\n pfx: options.pfx || this.pfx,\n key: options.key || this.key,\n passphrase: options.passphrase || this.passphrase,\n cert: options.cert || this.cert,\n ca: options.ca || this.ca,\n ciphers: options.ciphers || this.ciphers,\n rejectUnauthorized: options.rejectUnauthorized || this.rejectUnauthorized,\n perMessageDeflate: options.perMessageDeflate || this.perMessageDeflate,\n extraHeaders: options.extraHeaders || this.extraHeaders,\n forceNode: options.forceNode || this.forceNode,\n localAddress: options.localAddress || this.localAddress,\n requestTimeout: options.requestTimeout || this.requestTimeout,\n protocols: options.protocols || void 0,\n isReactNative: this.isReactNative\n });\n return transport;\n };\n function clone(obj) {\n var o = {};\n for(var i in obj){\n if (obj.hasOwnProperty(i)) {\n o[i] = obj[i];\n }\n }\n return o;\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */ Socket.prototype.open = function() {\n var transport;\n if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf('websocket') !== -1) {\n transport = 'websocket';\n } else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n var self = this;\n setTimeout(function() {\n self.emit('error', 'No transports available');\n }, 0);\n return;\n } else {\n transport = this.transports[0];\n }\n this.readyState = 'opening';\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n } catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n };\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */ Socket.prototype.setTransport = function(transport) {\n debug('setting transport %s', transport.name);\n var self = this;\n if (this.transport) {\n debug('clearing existing transport %s', this.transport.name);\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport.on('drain', function() {\n self.onDrain();\n }).on('packet', function(packet) {\n self.onPacket(packet);\n }).on('error', function(e) {\n self.onError(e);\n }).on('close', function() {\n self.onClose('transport close');\n });\n };\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */ Socket.prototype.probe = function(name) {\n debug('probing transport \"%s\"', name);\n var transport = this.createTransport(name, {\n probe: 1\n });\n var failed = false;\n var self = this;\n Socket.priorWebsocketSuccess = false;\n function onTransportOpen() {\n if (self.onlyBinaryUpgrades) {\n var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary;\n failed = failed || upgradeLosesBinary;\n }\n if (failed) return;\n debug('probe transport \"%s\" opened', name);\n transport.send([\n {\n type: 'ping',\n data: 'probe'\n }\n ]);\n transport.once('packet', function(msg) {\n if (failed) return;\n if ('pong' === msg.type && 'probe' === msg.data) {\n debug('probe transport \"%s\" pong', name);\n self.upgrading = true;\n self.emit('upgrading', transport);\n if (!transport) return;\n Socket.priorWebsocketSuccess = 'websocket' === transport.name;\n debug('pausing current transport \"%s\"', self.transport.name);\n self.transport.pause(function() {\n if (failed) return;\n if ('closed' === self.readyState) return;\n debug('changing transport and sending upgrade packet');\n cleanup();\n self.setTransport(transport);\n transport.send([\n {\n type: 'upgrade'\n }\n ]);\n self.emit('upgrade', transport);\n transport = null;\n self.upgrading = false;\n self.flush();\n });\n } else {\n debug('probe transport \"%s\" failed', name);\n var err = new Error('probe error');\n err.transport = transport.name;\n self.emit('upgradeError', err);\n }\n });\n }\n function freezeTransport() {\n if (failed) return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n function onerror(err) {\n var error = new Error('probe error: ' + err);\n error.transport = transport.name;\n freezeTransport();\n debug('probe transport \"%s\" failed because of error: %s', name, err);\n self.emit('upgradeError', error);\n }\n function onTransportClose() {\n onerror('transport closed');\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror('socket closed');\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n debug('\"%s\" works - aborting \"%s\"', to.name, transport.name);\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n function cleanup() {\n transport.removeListener('open', onTransportOpen);\n transport.removeListener('error', onerror);\n transport.removeListener('close', onTransportClose);\n self.removeListener('close', onclose);\n self.removeListener('upgrading', onupgrade);\n }\n transport.once('open', onTransportOpen);\n transport.once('error', onerror);\n transport.once('close', onTransportClose);\n this.once('close', onclose);\n this.once('upgrading', onupgrade);\n transport.open();\n };\n /**\n * Called when connection is deemed open.\n *\n * @api public\n */ Socket.prototype.onOpen = function() {\n debug('socket open');\n this.readyState = 'open';\n Socket.priorWebsocketSuccess = 'websocket' === this.transport.name;\n this.emit('open');\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if ('open' === this.readyState && this.upgrade && this.transport.pause) {\n debug('starting upgrade probes');\n for(var i = 0, l = this.upgrades.length; i < l; i++){\n this.probe(this.upgrades[i]);\n }\n }\n };\n /**\n * Handles a packet.\n *\n * @api private\n */ Socket.prototype.onPacket = function(packet) {\n if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) {\n debug('socket receive: type \"%s\", data \"%s\"', packet.type, packet.data);\n this.emit('packet', packet);\n // Socket is live - any packet counts\n this.emit('heartbeat');\n switch(packet.type){\n case 'open':\n this.onHandshake(JSON.parse(packet.data));\n break;\n case 'pong':\n this.setPing();\n this.emit('pong');\n break;\n case 'error':\n var err = new Error('server error');\n err.code = packet.data;\n this.onError(err);\n break;\n case 'message':\n this.emit('data', packet.data);\n this.emit('message', packet.data);\n break;\n }\n } else {\n debug('packet received with socket readyState \"%s\"', this.readyState);\n }\n };\n /**\n * Called upon handshake completion.\n *\n * @param {Object} handshake obj\n * @api private\n */ Socket.prototype.onHandshake = function(data) {\n this.emit('handshake', data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.onOpen();\n // In case open handler closes socket\n if ('closed' === this.readyState) return;\n this.setPing();\n // Prolong liveness of socket on heartbeat\n this.removeListener('heartbeat', this.onHeartbeat);\n this.on('heartbeat', this.onHeartbeat);\n };\n /**\n * Resets ping timeout.\n *\n * @api private\n */ Socket.prototype.onHeartbeat = function(timeout) {\n clearTimeout(this.pingTimeoutTimer);\n var self = this;\n self.pingTimeoutTimer = setTimeout(function() {\n if ('closed' === self.readyState) return;\n self.onClose('ping timeout');\n }, timeout || self.pingInterval + self.pingTimeout);\n };\n /**\n * Pings server every `this.pingInterval` and expects response\n * within `this.pingTimeout` or closes connection.\n *\n * @api private\n */ Socket.prototype.setPing = function() {\n var self = this;\n clearTimeout(self.pingIntervalTimer);\n self.pingIntervalTimer = setTimeout(function() {\n debug('writing ping packet - expecting pong within %sms', self.pingTimeout);\n self.ping();\n self.onHeartbeat(self.pingTimeout);\n }, self.pingInterval);\n };\n /**\n* Sends a ping packet.\n*\n* @api private\n*/ Socket.prototype.ping = function() {\n var self = this;\n this.sendPacket('ping', function() {\n self.emit('ping');\n });\n };\n /**\n * Called on `drain` event\n *\n * @api private\n */ Socket.prototype.onDrain = function() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emit('drain');\n } else {\n this.flush();\n }\n };\n /**\n * Flush write buffers.\n *\n * @api private\n */ Socket.prototype.flush = function() {\n if ('closed' !== this.readyState && this.transport.writable && !this.upgrading && this.writeBuffer.length) {\n debug('flushing %d packets in socket', this.writeBuffer.length);\n this.transport.send(this.writeBuffer);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = this.writeBuffer.length;\n this.emit('flush');\n }\n };\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */ Socket.prototype.write = Socket.prototype.send = function(msg, options, fn) {\n this.sendPacket('message', msg, options, fn);\n return this;\n };\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */ Socket.prototype.sendPacket = function(type, data, options, fn) {\n if ('function' === typeof data) {\n fn = data;\n data = undefined;\n }\n if ('function' === typeof options) {\n fn = options;\n options = null;\n }\n if ('closing' === this.readyState || 'closed' === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n var packet = {\n type: type,\n data: data,\n options: options\n };\n this.emit('packetCreate', packet);\n this.writeBuffer.push(packet);\n if (fn) this.once('flush', fn);\n this.flush();\n };\n /**\n * Closes the connection.\n *\n * @api private\n */ Socket.prototype.close = function() {\n if ('opening' === this.readyState || 'open' === this.readyState) {\n this.readyState = 'closing';\n var self = this;\n if (this.writeBuffer.length) {\n this.once('drain', function() {\n if (this.upgrading) {\n waitForUpgrade();\n } else {\n close();\n }\n });\n } else if (this.upgrading) {\n waitForUpgrade();\n } else {\n close();\n }\n }\n function close() {\n self.onClose('forced close');\n debug('socket closing - telling transport to close');\n self.transport.close();\n }\n function cleanupAndClose() {\n self.removeListener('upgrade', cleanupAndClose);\n self.removeListener('upgradeError', cleanupAndClose);\n close();\n }\n function waitForUpgrade() {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n self.once('upgrade', cleanupAndClose);\n self.once('upgradeError', cleanupAndClose);\n }\n return this;\n };\n /**\n * Called upon transport error\n *\n * @api private\n */ Socket.prototype.onError = function(err) {\n debug('socket error %j', err);\n Socket.priorWebsocketSuccess = false;\n this.emit('error', err);\n this.onClose('transport error', err);\n };\n /**\n * Called upon transport close.\n *\n * @api private\n */ Socket.prototype.onClose = function(reason, desc) {\n if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) {\n debug('socket close with reason: \"%s\"', reason);\n var self = this;\n // clear timers\n clearTimeout(this.pingIntervalTimer);\n clearTimeout(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners('close');\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n // set ready state\n this.readyState = 'closed';\n // clear session id\n this.id = null;\n // emit close event\n this.emit('close', reason, desc);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n self.writeBuffer = [];\n self.prevBufferLen = 0;\n }\n };\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */ Socket.prototype.filterUpgrades = function(upgrades) {\n var filteredUpgrades = [];\n for(var i = 0, j = upgrades.length; i < j; i++){\n if (~index(this.transports, upgrades[i])) filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n };\n /***/ },\n /***/ \"./node_modules/engine.io-client/lib/transport.js\": /*!********************************************************!*\\\n !*** ./node_modules/engine.io-client/lib/transport.js ***!\n \\********************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /**\n * Module dependencies.\n */ var parser = __webpack_require__(/*! engine.io-parser */ \"./node_modules/engine.io-parser/lib/browser.js\");\n var Emitter = __webpack_require__(/*! component-emitter */ \"./node_modules/component-emitter/index.js\");\n /**\n * Module exports.\n */ module.exports = Transport;\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */ function Transport(opts) {\n this.path = opts.path;\n this.hostname = opts.hostname;\n this.port = opts.port;\n this.secure = opts.secure;\n this.query = opts.query;\n this.timestampParam = opts.timestampParam;\n this.timestampRequests = opts.timestampRequests;\n this.readyState = '';\n this.agent = opts.agent || false;\n this.socket = opts.socket;\n this.enablesXDR = opts.enablesXDR;\n this.withCredentials = opts.withCredentials;\n // SSL options for Node.js client\n this.pfx = opts.pfx;\n this.key = opts.key;\n this.passphrase = opts.passphrase;\n this.cert = opts.cert;\n this.ca = opts.ca;\n this.ciphers = opts.ciphers;\n this.rejectUnauthorized = opts.rejectUnauthorized;\n this.forceNode = opts.forceNode;\n // results of ReactNative environment detection\n this.isReactNative = opts.isReactNative;\n // other options for Node.js client\n this.extraHeaders = opts.extraHeaders;\n this.localAddress = opts.localAddress;\n }\n /**\n * Mix in `Emitter`.\n */ Emitter(Transport.prototype);\n /**\n * Emits an error.\n *\n * @param {String} str\n * @return {Transport} for chaining\n * @api public\n */ Transport.prototype.onError = function(msg, desc) {\n var err = new Error(msg);\n err.type = 'TransportError';\n err.description = desc;\n this.emit('error', err);\n return this;\n };\n /**\n * Opens the transport.\n *\n * @api public\n */ Transport.prototype.open = function() {\n if ('closed' === this.readyState || '' === this.readyState) {\n this.readyState = 'opening';\n this.doOpen();\n }\n return this;\n };\n /**\n * Closes the transport.\n *\n * @api private\n */ Transport.prototype.close = function() {\n if ('opening' === this.readyState || 'open' === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n };\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api private\n */ Transport.prototype.send = function(packets) {\n if ('open' === this.readyState) {\n this.write(packets);\n } else {\n throw new Error('Transport not open');\n }\n };\n /**\n * Called upon open\n *\n * @api private\n */ Transport.prototype.onOpen = function() {\n this.readyState = 'open';\n this.writable = true;\n this.emit('open');\n };\n /**\n * Called with data.\n *\n * @param {String} data\n * @api private\n */ Transport.prototype.onData = function(data) {\n var packet = parser.decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n };\n /**\n * Called with a decoded packet.\n */ Transport.prototype.onPacket = function(packet) {\n this.emit('packet', packet);\n };\n /**\n * Called upon close.\n *\n * @api private\n */ Transport.prototype.onClose = function() {\n this.readyState = 'closed';\n this.emit('close');\n };\n /***/ },\n /***/ \"./node_modules/engine.io-client/lib/transports/index.js\": /*!***************************************************************!*\\\n !*** ./node_modules/engine.io-client/lib/transports/index.js ***!\n \\***************************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /**\n * Module dependencies\n */ var XMLHttpRequest = __webpack_require__(/*! xmlhttprequest-ssl */ \"./node_modules/engine.io-client/lib/xmlhttprequest.js\");\n var XHR = __webpack_require__(/*! ./polling-xhr */ \"./node_modules/engine.io-client/lib/transports/polling-xhr.js\");\n var JSONP = __webpack_require__(/*! ./polling-jsonp */ \"./node_modules/engine.io-client/lib/transports/polling-jsonp.js\");\n var websocket = __webpack_require__(/*! ./websocket */ \"./node_modules/engine.io-client/lib/transports/websocket.js\");\n /**\n * Export transports.\n */ exports.polling = polling;\n exports.websocket = websocket;\n /**\n * Polling transport polymorphic constructor.\n * Decides on xhr vs jsonp based on feature detection.\n *\n * @api private\n */ function polling(opts) {\n var xhr;\n var xd = false;\n var xs = false;\n var jsonp = false !== opts.jsonp;\n if (typeof location !== 'undefined') {\n var isSSL = 'https:' === location.protocol;\n var port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? 443 : 80;\n }\n xd = opts.hostname !== location.hostname || port !== opts.port;\n xs = opts.secure !== isSSL;\n }\n opts.xdomain = xd;\n opts.xscheme = xs;\n xhr = new XMLHttpRequest(opts);\n if ('open' in xhr && !opts.forceJSONP) {\n return new XHR(opts);\n } else {\n if (!jsonp) throw new Error('JSONP disabled');\n return new JSONP(opts);\n }\n }\n /***/ },\n /***/ \"./node_modules/engine.io-client/lib/transports/polling-jsonp.js\": /*!***********************************************************************!*\\\n !*** ./node_modules/engine.io-client/lib/transports/polling-jsonp.js ***!\n \\***********************************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /**\n * Module requirements.\n */ var Polling = __webpack_require__(/*! ./polling */ \"./node_modules/engine.io-client/lib/transports/polling.js\");\n var inherit = __webpack_require__(/*! component-inherit */ \"./node_modules/component-inherit/index.js\");\n var globalThis = __webpack_require__(/*! ../globalThis */ \"./node_modules/engine.io-client/lib/globalThis.browser.js\");\n /**\n * Module exports.\n */ module.exports = JSONPPolling;\n /**\n * Cached regular expressions.\n */ var rNewline = /\\n/g;\n var rEscapedNewline = /\\\\n/g;\n /**\n * Global JSONP callbacks.\n */ var callbacks;\n /**\n * Noop.\n */ function empty() {}\n /**\n * JSONP Polling constructor.\n *\n * @param {Object} opts.\n * @api public\n */ function JSONPPolling(opts) {\n Polling.call(this, opts);\n this.query = this.query || {};\n // define global callbacks array if not present\n // we do this here (lazily) to avoid unneeded global pollution\n if (!callbacks) {\n // we need to consider multiple engines in the same page\n callbacks = globalThis.___eio = globalThis.___eio || [];\n }\n // callback identifier\n this.index = callbacks.length;\n // add callback to jsonp global\n var self = this;\n callbacks.push(function(msg) {\n self.onData(msg);\n });\n // append to query string\n this.query.j = this.index;\n // prevent spurious errors from being emitted when the window is unloaded\n if (typeof addEventListener === 'function') {\n addEventListener('beforeunload', function() {\n if (self.script) self.script.onerror = empty;\n }, false);\n }\n }\n /**\n * Inherits from Polling.\n */ inherit(JSONPPolling, Polling);\n /*\n * JSONP only supports binary as base64 encoded strings\n */ JSONPPolling.prototype.supportsBinary = false;\n /**\n * Closes the socket.\n *\n * @api private\n */ JSONPPolling.prototype.doClose = function() {\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n if (this.form) {\n this.form.parentNode.removeChild(this.form);\n this.form = null;\n this.iframe = null;\n }\n Polling.prototype.doClose.call(this);\n };\n /**\n * Starts a poll cycle.\n *\n * @api private\n */ JSONPPolling.prototype.doPoll = function() {\n var self = this;\n var script = document.createElement('script');\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n script.async = true;\n script.src = this.uri();\n script.onerror = function(e) {\n self.onError('jsonp poll error', e);\n };\n var insertAt = document.getElementsByTagName('script')[0];\n if (insertAt) {\n insertAt.parentNode.insertBefore(script, insertAt);\n } else {\n (document.head || document.body).appendChild(script);\n }\n this.script = script;\n var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);\n if (isUAgecko) {\n setTimeout(function() {\n var iframe = document.createElement('iframe');\n document.body.appendChild(iframe);\n document.body.removeChild(iframe);\n }, 100);\n }\n };\n /**\n * Writes with a hidden iframe.\n *\n * @param {String} data to send\n * @param {Function} called upon flush.\n * @api private\n */ JSONPPolling.prototype.doWrite = function(data, fn) {\n var self = this;\n if (!this.form) {\n var form = document.createElement('form');\n var area = document.createElement('textarea');\n var id = this.iframeId = 'eio_iframe_' + this.index;\n var iframe;\n form.className = 'socketio';\n form.style.position = 'absolute';\n form.style.top = '-1000px';\n form.style.left = '-1000px';\n form.target = id;\n form.method = 'POST';\n form.setAttribute('accept-charset', 'utf-8');\n area.name = 'd';\n form.appendChild(area);\n document.body.appendChild(form);\n this.form = form;\n this.area = area;\n }\n this.form.action = this.uri();\n function complete() {\n initIframe();\n fn();\n }\n function initIframe() {\n if (self.iframe) {\n try {\n self.form.removeChild(self.iframe);\n } catch (e) {\n self.onError('jsonp polling iframe removal error', e);\n }\n }\n try {\n // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n var html = '<iframe src=\"javascript:0\" name=\"' + self.iframeId + '\">';\n iframe = document.createElement(html);\n } catch (e) {\n iframe = document.createElement('iframe');\n iframe.name = self.iframeId;\n iframe.src = 'javascript:0';\n }\n iframe.id = self.iframeId;\n self.form.appendChild(iframe);\n self.iframe = iframe;\n }\n initIframe();\n // escape \\n to prevent it from being converted into \\r\\n by some UAs\n // double escaping is required for escaped new lines because unescaping of new lines can be done safely on server-side\n data = data.replace(rEscapedNewline, '\\\\\\n');\n this.area.value = data.replace(rNewline, '\\\\n');\n try {\n this.form.submit();\n } catch (e) {}\n if (this.iframe.attachEvent) {\n this.iframe.onreadystatechange = function() {\n if (self.iframe.readyState === 'complete') {\n complete();\n }\n };\n } else {\n this.iframe.onload = complete;\n }\n };\n /***/ },\n /***/ \"./node_modules/engine.io-client/lib/transports/polling-xhr.js\": /*!*********************************************************************!*\\\n !*** ./node_modules/engine.io-client/lib/transports/polling-xhr.js ***!\n \\*********************************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /* global attachEvent */ /**\n * Module requirements.\n */ var XMLHttpRequest = __webpack_require__(/*! xmlhttprequest-ssl */ \"./node_modules/engine.io-client/lib/xmlhttprequest.js\");\n var Polling = __webpack_require__(/*! ./polling */ \"./node_modules/engine.io-client/lib/transports/polling.js\");\n var Emitter = __webpack_require__(/*! component-emitter */ \"./node_modules/component-emitter/index.js\");\n var inherit = __webpack_require__(/*! component-inherit */ \"./node_modules/component-inherit/index.js\");\n var debug = __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('engine.io-client:polling-xhr');\n var globalThis = __webpack_require__(/*! ../globalThis */ \"./node_modules/engine.io-client/lib/globalThis.browser.js\");\n /**\n * Module exports.\n */ module.exports = XHR;\n module.exports.Request = Request;\n /**\n * Empty function\n */ function empty() {}\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */ function XHR(opts) {\n Polling.call(this, opts);\n this.requestTimeout = opts.requestTimeout;\n this.extraHeaders = opts.extraHeaders;\n if (typeof location !== 'undefined') {\n var isSSL = 'https:' === location.protocol;\n var port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? 443 : 80;\n }\n this.xd = typeof location !== 'undefined' && opts.hostname !== location.hostname || port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n }\n /**\n * Inherits from Polling.\n */ inherit(XHR, Polling);\n /**\n * XHR supports binary\n */ XHR.prototype.supportsBinary = true;\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */ XHR.prototype.request = function(opts) {\n opts = opts || {};\n opts.uri = this.uri();\n opts.xd = this.xd;\n opts.xs = this.xs;\n opts.agent = this.agent || false;\n opts.supportsBinary = this.supportsBinary;\n opts.enablesXDR = this.enablesXDR;\n opts.withCredentials = this.withCredentials;\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n opts.requestTimeout = this.requestTimeout;\n // other options for Node.js client\n opts.extraHeaders = this.extraHeaders;\n return new Request(opts);\n };\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */ XHR.prototype.doWrite = function(data, fn) {\n var isBinary = typeof data !== 'string' && data !== undefined;\n var req = this.request({\n method: 'POST',\n data: data,\n isBinary: isBinary\n });\n var self = this;\n req.on('success', fn);\n req.on('error', function(err) {\n self.onError('xhr post error', err);\n });\n this.sendXhr = req;\n };\n /**\n * Starts a poll cycle.\n *\n * @api private\n */ XHR.prototype.doPoll = function() {\n debug('xhr poll');\n var req = this.request();\n var self = this;\n req.on('data', function(data) {\n self.onData(data);\n });\n req.on('error', function(err) {\n self.onError('xhr poll error', err);\n });\n this.pollXhr = req;\n };\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */ function Request(opts) {\n this.method = opts.method || 'GET';\n this.uri = opts.uri;\n this.xd = !!opts.xd;\n this.xs = !!opts.xs;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.agent = opts.agent;\n this.isBinary = opts.isBinary;\n this.supportsBinary = opts.supportsBinary;\n this.enablesXDR = opts.enablesXDR;\n this.withCredentials = opts.withCredentials;\n this.requestTimeout = opts.requestTimeout;\n // SSL options for Node.js client\n this.pfx = opts.pfx;\n this.key = opts.key;\n this.passphrase = opts.passphrase;\n this.cert = opts.cert;\n this.ca = opts.ca;\n this.ciphers = opts.ciphers;\n this.rejectUnauthorized = opts.rejectUnauthorized;\n // other options for Node.js client\n this.extraHeaders = opts.extraHeaders;\n this.create();\n }\n /**\n * Mix in `Emitter`.\n */ Emitter(Request.prototype);\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */ Request.prototype.create = function() {\n var opts = {\n agent: this.agent,\n xdomain: this.xd,\n xscheme: this.xs,\n enablesXDR: this.enablesXDR\n };\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n var xhr = this.xhr = new XMLHttpRequest(opts);\n var self = this;\n try {\n debug('xhr open %s: %s', this.method, this.uri);\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for(var i in this.extraHeaders){\n if (this.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.extraHeaders[i]);\n }\n }\n }\n } catch (e) {}\n if ('POST' === this.method) {\n try {\n if (this.isBinary) {\n xhr.setRequestHeader('Content-type', 'application/octet-stream');\n } else {\n xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');\n }\n } catch (e) {}\n }\n try {\n xhr.setRequestHeader('Accept', '*/*');\n } catch (e1) {}\n // ie6 check\n if ('withCredentials' in xhr) {\n xhr.withCredentials = this.withCredentials;\n }\n if (this.requestTimeout) {\n xhr.timeout = this.requestTimeout;\n }\n if (this.hasXDR()) {\n xhr.onload = function() {\n self.onLoad();\n };\n xhr.onerror = function() {\n self.onError(xhr.responseText);\n };\n } else {\n xhr.onreadystatechange = function() {\n if (xhr.readyState === 2) {\n try {\n var contentType = xhr.getResponseHeader('Content-Type');\n if (self.supportsBinary && contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') {\n xhr.responseType = 'arraybuffer';\n }\n } catch (e) {}\n }\n if (4 !== xhr.readyState) return;\n if (200 === xhr.status || 1223 === xhr.status) {\n self.onLoad();\n } else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n setTimeout(function() {\n self.onError(typeof xhr.status === 'number' ? xhr.status : 0);\n }, 0);\n }\n };\n }\n debug('xhr data %s', this.data);\n xhr.send(this.data);\n } catch (e) {\n // Need to defer since .create() is called directly fhrom the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n setTimeout(function() {\n self.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== 'undefined') {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n };\n /**\n * Called upon successful response.\n *\n * @api private\n */ Request.prototype.onSuccess = function() {\n this.emit('success');\n this.cleanup();\n };\n /**\n * Called if we have data.\n *\n * @api private\n */ Request.prototype.onData = function(data) {\n this.emit('data', data);\n this.onSuccess();\n };\n /**\n * Called upon error.\n *\n * @api private\n */ Request.prototype.onError = function(err) {\n this.emit('error', err);\n this.cleanup(true);\n };\n /**\n * Cleans up house.\n *\n * @api private\n */ Request.prototype.cleanup = function(fromError) {\n if ('undefined' === typeof this.xhr || null === this.xhr) {\n return;\n }\n // xmlhttprequest\n if (this.hasXDR()) {\n this.xhr.onload = this.xhr.onerror = empty;\n } else {\n this.xhr.onreadystatechange = empty;\n }\n if (fromError) {\n try {\n this.xhr.abort();\n } catch (e) {}\n }\n if (typeof document !== 'undefined') {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n };\n /**\n * Called upon load.\n *\n * @api private\n */ Request.prototype.onLoad = function() {\n var data;\n try {\n var contentType;\n try {\n contentType = this.xhr.getResponseHeader('Content-Type');\n } catch (e) {}\n if (contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') {\n data = this.xhr.response || this.xhr.responseText;\n } else {\n data = this.xhr.responseText;\n }\n } catch (e) {\n this.onError(e);\n }\n if (null != data) {\n this.onData(data);\n }\n };\n /**\n * Check if it has XDomainRequest.\n *\n * @api private\n */ Request.prototype.hasXDR = function() {\n return typeof XDomainRequest !== 'undefined' && !this.xs && this.enablesXDR;\n };\n /**\n * Aborts the request.\n *\n * @api public\n */ Request.prototype.abort = function() {\n this.cleanup();\n };\n /**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */ Request.requestsCount = 0;\n Request.requests = {};\n if (typeof document !== 'undefined') {\n if (typeof attachEvent === 'function') {\n attachEvent('onunload', unloadHandler);\n } else if (typeof addEventListener === 'function') {\n var terminationEvent = 'onpagehide' in globalThis ? 'pagehide' : 'unload';\n addEventListener(terminationEvent, unloadHandler, false);\n }\n }\n function unloadHandler() {\n for(var i in Request.requests){\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n }\n /***/ },\n /***/ \"./node_modules/engine.io-client/lib/transports/polling.js\": /*!*****************************************************************!*\\\n !*** ./node_modules/engine.io-client/lib/transports/polling.js ***!\n \\*****************************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /**\n * Module dependencies.\n */ var Transport = __webpack_require__(/*! ../transport */ \"./node_modules/engine.io-client/lib/transport.js\");\n var parseqs = __webpack_require__(/*! parseqs */ \"./node_modules/parseqs/index.js\");\n var parser = __webpack_require__(/*! engine.io-parser */ \"./node_modules/engine.io-parser/lib/browser.js\");\n var inherit = __webpack_require__(/*! component-inherit */ \"./node_modules/component-inherit/index.js\");\n var yeast = __webpack_require__(/*! yeast */ \"./node_modules/yeast/index.js\");\n var debug = __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('engine.io-client:polling');\n /**\n * Module exports.\n */ module.exports = Polling;\n /**\n * Is XHR2 supported?\n */ var hasXHR2 = function() {\n var XMLHttpRequest = __webpack_require__(/*! xmlhttprequest-ssl */ \"./node_modules/engine.io-client/lib/xmlhttprequest.js\");\n var xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n }();\n /**\n * Polling interface.\n *\n * @param {Object} opts\n * @api private\n */ function Polling(opts) {\n var forceBase64 = opts && opts.forceBase64;\n if (!hasXHR2 || forceBase64) {\n this.supportsBinary = false;\n }\n Transport.call(this, opts);\n }\n /**\n * Inherits from Transport.\n */ inherit(Polling, Transport);\n /**\n * Transport name.\n */ Polling.prototype.name = 'polling';\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */ Polling.prototype.doOpen = function() {\n this.poll();\n };\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */ Polling.prototype.pause = function(onPause) {\n var self = this;\n this.readyState = 'pausing';\n function pause() {\n debug('paused');\n self.readyState = 'paused';\n onPause();\n }\n if (this.polling || !this.writable) {\n var total = 0;\n if (this.polling) {\n debug('we are currently polling - waiting to pause');\n total++;\n this.once('pollComplete', function() {\n debug('pre-pause polling complete');\n --total || pause();\n });\n }\n if (!this.writable) {\n debug('we are currently writing - waiting to pause');\n total++;\n this.once('drain', function() {\n debug('pre-pause writing complete');\n --total || pause();\n });\n }\n } else {\n pause();\n }\n };\n /**\n * Starts polling cycle.\n *\n * @api public\n */ Polling.prototype.poll = function() {\n debug('polling');\n this.polling = true;\n this.doPoll();\n this.emit('poll');\n };\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */ Polling.prototype.onData = function(data) {\n var self = this;\n debug('polling got data %s', data);\n var callback = function(packet, index, total) {\n // if its the first message we consider the transport open\n if ('opening' === self.readyState && packet.type === 'open') {\n self.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if ('close' === packet.type) {\n self.onClose();\n return false;\n }\n // otherwise bypass onData and handle the message\n self.onPacket(packet);\n };\n // decode payload\n parser.decodePayload(data, this.socket.binaryType, callback);\n // if an event did not trigger closing\n if ('closed' !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emit('pollComplete');\n if ('open' === this.readyState) {\n this.poll();\n } else {\n debug('ignoring poll - transport state \"%s\"', this.readyState);\n }\n }\n };\n /**\n * For polling, send a close packet.\n *\n * @api private\n */ Polling.prototype.doClose = function() {\n var self = this;\n function close() {\n debug('writing close packet');\n self.write([\n {\n type: 'close'\n }\n ]);\n }\n if ('open' === this.readyState) {\n debug('transport open - closing');\n close();\n } else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n debug('transport not open - deferring close');\n this.once('open', close);\n }\n };\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */ Polling.prototype.write = function(packets) {\n var self = this;\n this.writable = false;\n var callbackfn = function() {\n self.writable = true;\n self.emit('drain');\n };\n parser.encodePayload(packets, this.supportsBinary, function(data) {\n self.doWrite(data, callbackfn);\n });\n };\n /**\n * Generates uri for connection.\n *\n * @api private\n */ Polling.prototype.uri = function() {\n var query = this.query || {};\n var schema = this.secure ? 'https' : 'http';\n var port = '';\n // cache busting is forced\n if (false !== this.timestampRequests) {\n query[this.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n query = parseqs.encode(query);\n // avoid port if default for schema\n if (this.port && ('https' === schema && Number(this.port) !== 443 || 'http' === schema && Number(this.port) !== 80)) {\n port = ':' + this.port;\n }\n // prepend ? to query\n if (query.length) {\n query = '?' + query;\n }\n var ipv6 = this.hostname.indexOf(':') !== -1;\n return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n };\n /***/ },\n /***/ \"./node_modules/engine.io-client/lib/transports/websocket.js\": /*!*******************************************************************!*\\\n !*** ./node_modules/engine.io-client/lib/transports/websocket.js ***!\n \\*******************************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */ (function(Buffer) {\n var Transport = __webpack_require__(/*! ../transport */ \"./node_modules/engine.io-client/lib/transport.js\");\n var parser = __webpack_require__(/*! engine.io-parser */ \"./node_modules/engine.io-parser/lib/browser.js\");\n var parseqs = __webpack_require__(/*! parseqs */ \"./node_modules/parseqs/index.js\");\n var inherit = __webpack_require__(/*! component-inherit */ \"./node_modules/component-inherit/index.js\");\n var yeast = __webpack_require__(/*! yeast */ \"./node_modules/yeast/index.js\");\n var debug = __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('engine.io-client:websocket');\n var BrowserWebSocket, NodeWebSocket;\n if (typeof WebSocket !== 'undefined') {\n BrowserWebSocket = WebSocket;\n } else if (typeof self !== 'undefined') {\n BrowserWebSocket = self.WebSocket || self.MozWebSocket;\n }\n if (typeof window === 'undefined') {\n try {\n NodeWebSocket = __webpack_require__(/*! ws */ 0);\n } catch (e) {}\n }\n /**\n * Get either the `WebSocket` or `MozWebSocket` globals\n * in the browser or try to resolve WebSocket-compatible\n * interface exposed by `ws` for Node-like environment.\n */ var WebSocketImpl = BrowserWebSocket || NodeWebSocket;\n /**\n * Module exports.\n */ module.exports = WS;\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */ function WS(opts) {\n var forceBase64 = opts && opts.forceBase64;\n if (forceBase64) {\n this.supportsBinary = false;\n }\n this.perMessageDeflate = opts.perMessageDeflate;\n this.usingBrowserWebSocket = BrowserWebSocket && !opts.forceNode;\n this.protocols = opts.protocols;\n if (!this.usingBrowserWebSocket) {\n WebSocketImpl = NodeWebSocket;\n }\n Transport.call(this, opts);\n }\n /**\n * Inherits from Transport.\n */ inherit(WS, Transport);\n /**\n * Transport name.\n *\n * @api public\n */ WS.prototype.name = 'websocket';\n /*\n * WebSockets support binary\n */ WS.prototype.supportsBinary = true;\n /**\n * Opens socket.\n *\n * @api private\n */ WS.prototype.doOpen = function() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n var uri = this.uri();\n var protocols = this.protocols;\n var opts = {};\n if (!this.isReactNative) {\n opts.agent = this.agent;\n opts.perMessageDeflate = this.perMessageDeflate;\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n }\n if (this.extraHeaders) {\n opts.headers = this.extraHeaders;\n }\n if (this.localAddress) {\n opts.localAddress = this.localAddress;\n }\n try {\n this.ws = this.usingBrowserWebSocket && !this.isReactNative ? protocols ? new WebSocketImpl(uri, protocols) : new WebSocketImpl(uri) : new WebSocketImpl(uri, protocols, opts);\n } catch (err) {\n return this.emit('error', err);\n }\n if (this.ws.binaryType === undefined) {\n this.supportsBinary = false;\n }\n if (this.ws.supports && this.ws.supports.binary) {\n this.supportsBinary = true;\n this.ws.binaryType = 'nodebuffer';\n } else {\n this.ws.binaryType = 'arraybuffer';\n }\n this.addEventListeners();\n };\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */ WS.prototype.addEventListeners = function() {\n var self = this;\n this.ws.onopen = function() {\n self.onOpen();\n };\n this.ws.onclose = function() {\n self.onClose();\n };\n this.ws.onmessage = function(ev) {\n self.onData(ev.data);\n };\n this.ws.onerror = function(e) {\n self.onError('websocket error', e);\n };\n };\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */ WS.prototype.write = function(packets) {\n var self = this;\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n var total = packets.length;\n for(var i = 0, l = total; i < l; i++){\n (function(packet) {\n parser.encodePacket(packet, self.supportsBinary, function(data) {\n if (!self.usingBrowserWebSocket) {\n // always create a new object (GH-437)\n var opts = {};\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (self.perMessageDeflate) {\n var len = 'string' === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < self.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (self.usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n self.ws.send(data);\n } else {\n self.ws.send(data, opts);\n }\n } catch (e) {\n debug('websocket closed before onclose event');\n }\n --total || done();\n });\n })(packets[i]);\n }\n function done() {\n self.emit('flush');\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n setTimeout(function() {\n self.writable = true;\n self.emit('drain');\n }, 0);\n }\n };\n /**\n * Called upon close\n *\n * @api private\n */ WS.prototype.onClose = function() {\n Transport.prototype.onClose.call(this);\n };\n /**\n * Closes socket.\n *\n * @api private\n */ WS.prototype.doClose = function() {\n if (typeof this.ws !== 'undefined') {\n this.ws.close();\n }\n };\n /**\n * Generates uri for connection.\n *\n * @api private\n */ WS.prototype.uri = function() {\n var query = this.query || {};\n var schema = this.secure ? 'wss' : 'ws';\n var port = '';\n // avoid port if default for schema\n if (this.port && ('wss' === schema && Number(this.port) !== 443 || 'ws' === schema && Number(this.port) !== 80)) {\n port = ':' + this.port;\n }\n // append timestamp to URI\n if (this.timestampRequests) {\n query[this.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n query = parseqs.encode(query);\n // prepend ? to query\n if (query.length) {\n query = '?' + query;\n }\n var ipv6 = this.hostname.indexOf(':') !== -1;\n return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n };\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */ WS.prototype.check = function() {\n return !!WebSocketImpl && !('__initialize' in WebSocketImpl && this.name === WS.prototype.name);\n };\n /* WEBPACK VAR INJECTION */ }).call(this, __webpack_require__(/*! ./../../../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer);\n /***/ },\n /***/ \"./node_modules/engine.io-client/lib/xmlhttprequest.js\": /*!*************************************************************!*\\\n !*** ./node_modules/engine.io-client/lib/xmlhttprequest.js ***!\n \\*************************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n // browser shim for xmlhttprequest module\n var hasCORS = __webpack_require__(/*! has-cors */ \"./node_modules/has-cors/index.js\");\n var globalThis = __webpack_require__(/*! ./globalThis */ \"./node_modules/engine.io-client/lib/globalThis.browser.js\");\n module.exports = function(opts) {\n var xdomain = opts.xdomain;\n // scheme must be same when usign XDomainRequest\n // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n var xscheme = opts.xscheme;\n // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.\n // https://github.com/Automattic/engine.io-client/pull/217\n var enablesXDR = opts.enablesXDR;\n // XMLHttpRequest can be disabled on IE\n try {\n if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n } catch (e) {}\n // Use XDomainRequest for IE8 if enablesXDR is true\n // because loading bar keeps flashing when using jsonp-polling\n // https://github.com/yujiosaka/socke.io-ie8-loading-example\n try {\n if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) {\n return new XDomainRequest();\n }\n } catch (e2) {}\n if (!xdomain) {\n try {\n return new globalThis[[\n 'Active'\n ].concat('Object').join('X')]('Microsoft.XMLHTTP');\n } catch (e) {}\n }\n };\n /***/ },\n /***/ \"./node_modules/engine.io-parser/lib/browser.js\": /*!******************************************************!*\\\n !*** ./node_modules/engine.io-parser/lib/browser.js ***!\n \\******************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /**\n * Module dependencies.\n */ var keys = __webpack_require__(/*! ./keys */ \"./node_modules/engine.io-parser/lib/keys.js\");\n var hasBinary = __webpack_require__(/*! has-binary2 */ \"./node_modules/has-binary2/index.js\");\n var sliceBuffer = __webpack_require__(/*! arraybuffer.slice */ \"./node_modules/arraybuffer.slice/index.js\");\n var after = __webpack_require__(/*! after */ \"./node_modules/after/index.js\");\n var utf8 = __webpack_require__(/*! ./utf8 */ \"./node_modules/engine.io-parser/lib/utf8.js\");\n var base64encoder;\n if (typeof ArrayBuffer !== 'undefined') {\n base64encoder = __webpack_require__(/*! base64-arraybuffer */ \"./node_modules/base64-arraybuffer/lib/base64-arraybuffer.js\");\n }\n /**\n * Check if we are running an android browser. That requires us to use\n * ArrayBuffer with polling transports...\n *\n * http://ghinda.net/jpeg-blob-ajax-android/\n */ var isAndroid = typeof navigator !== 'undefined' && /Android/i.test(navigator.userAgent);\n /**\n * Check if we are running in PhantomJS.\n * Uploading a Blob with PhantomJS does not work correctly, as reported here:\n * https://github.com/ariya/phantomjs/issues/11395\n * @type boolean\n */ var isPhantomJS = typeof navigator !== 'undefined' && /PhantomJS/i.test(navigator.userAgent);\n /**\n * When true, avoids using Blobs to encode payloads.\n * @type boolean\n */ var dontSendBlobs = isAndroid || isPhantomJS;\n /**\n * Current protocol version.\n */ exports.protocol = 3;\n /**\n * Packet types.\n */ var packets1 = exports.packets = {\n open: 0 // non-ws\n ,\n close: 1 // non-ws\n ,\n ping: 2,\n pong: 3,\n message: 4,\n upgrade: 5,\n noop: 6\n };\n var packetslist = keys(packets1);\n /**\n * Premade error packet.\n */ var err = {\n type: 'error',\n data: 'parser error'\n };\n /**\n * Create a blob api even for blob builder when vendor prefixes exist\n */ var Blob = __webpack_require__(/*! blob */ \"./node_modules/blob/index.js\");\n /**\n * Encodes a packet.\n *\n * <packet type id> [ <data> ]\n *\n * Example:\n *\n * 5hello world\n * 3\n * 4\n *\n * Binary is encoded in an identical principle\n *\n * @api private\n */ exports.encodePacket = function(packet, supportsBinary, utf8encode, callback) {\n if (typeof supportsBinary === 'function') {\n callback = supportsBinary;\n supportsBinary = false;\n }\n if (typeof utf8encode === 'function') {\n callback = utf8encode;\n utf8encode = null;\n }\n var data = packet.data === undefined ? undefined : packet.data.buffer || packet.data;\n if (typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) {\n return encodeArrayBuffer(packet, supportsBinary, callback);\n } else if (typeof Blob !== 'undefined' && data instanceof Blob) {\n return encodeBlob(packet, supportsBinary, callback);\n }\n // might be an object with { base64: true, data: dataAsBase64String }\n if (data && data.base64) {\n return encodeBase64Object(packet, callback);\n }\n // Sending data as a utf-8 string\n var encoded = packets1[packet.type];\n // data fragment is optional\n if (undefined !== packet.data) {\n encoded += utf8encode ? utf8.encode(String(packet.data), {\n strict: false\n }) : String(packet.data);\n }\n return callback('' + encoded);\n };\n function encodeBase64Object(packet, callback) {\n // packet data is an object { base64: true, data: dataAsBase64String }\n var message = 'b' + exports.packets[packet.type] + packet.data.data;\n return callback(message);\n }\n /**\n * Encode packet helpers for binary types\n */ function encodeArrayBuffer(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n var data = packet.data;\n var contentArray = new Uint8Array(data);\n var resultBuffer = new Uint8Array(1 + data.byteLength);\n resultBuffer[0] = packets1[packet.type];\n for(var i = 0; i < contentArray.length; i++){\n resultBuffer[i + 1] = contentArray[i];\n }\n return callback(resultBuffer.buffer);\n }\n function encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n var fr = new FileReader();\n fr.onload = function() {\n exports.encodePacket({\n type: packet.type,\n data: fr.result\n }, supportsBinary, true, callback);\n };\n return fr.readAsArrayBuffer(packet.data);\n }\n function encodeBlob(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n if (dontSendBlobs) {\n return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);\n }\n var length = new Uint8Array(1);\n length[0] = packets1[packet.type];\n var blob = new Blob([\n length.buffer,\n packet.data\n ]);\n return callback(blob);\n }\n /**\n * Encodes a packet with binary data in a base64 string\n *\n * @param {Object} packet, has `type` and `data`\n * @return {String} base64 encoded message\n */ exports.encodeBase64Packet = function(packet, callback) {\n var message = 'b' + exports.packets[packet.type];\n if (typeof Blob !== 'undefined' && packet.data instanceof Blob) {\n var fr = new FileReader();\n fr.onload = function() {\n var b64 = fr.result.split(',')[1];\n callback(message + b64);\n };\n return fr.readAsDataURL(packet.data);\n }\n var b64data;\n try {\n b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data));\n } catch (e) {\n // iPhone Safari doesn't let you apply with typed arrays\n var typed = new Uint8Array(packet.data);\n var basic = new Array(typed.length);\n for(var i = 0; i < typed.length; i++){\n basic[i] = typed[i];\n }\n b64data = String.fromCharCode.apply(null, basic);\n }\n message += btoa(b64data);\n return callback(message);\n };\n /**\n * Decodes a packet. Changes format to Blob if requested.\n *\n * @return {Object} with `type` and `data` (if any)\n * @api private\n */ exports.decodePacket = function(data, binaryType, utf8decode) {\n if (data === undefined) {\n return err;\n }\n // String data\n if (typeof data === 'string') {\n if (data.charAt(0) === 'b') {\n return exports.decodeBase64Packet(data.substr(1), binaryType);\n }\n if (utf8decode) {\n data = tryDecode(data);\n if (data === false) {\n return err;\n }\n }\n var type = data.charAt(0);\n if (Number(type) != type || !packetslist[type]) {\n return err;\n }\n if (data.length > 1) {\n return {\n type: packetslist[type],\n data: data.substring(1)\n };\n } else {\n return {\n type: packetslist[type]\n };\n }\n }\n var asArray = new Uint8Array(data);\n var type = asArray[0];\n var rest = sliceBuffer(data, 1);\n if (Blob && binaryType === 'blob') {\n rest = new Blob([\n rest\n ]);\n }\n return {\n type: packetslist[type],\n data: rest\n };\n };\n function tryDecode(data) {\n try {\n data = utf8.decode(data, {\n strict: false\n });\n } catch (e) {\n return false;\n }\n return data;\n }\n /**\n * Decodes a packet encoded in a base64 string\n *\n * @param {String} base64 encoded message\n * @return {Object} with `type` and `data` (if any)\n */ exports.decodeBase64Packet = function(msg, binaryType) {\n var type = packetslist[msg.charAt(0)];\n if (!base64encoder) {\n return {\n type: type,\n data: {\n base64: true,\n data: msg.substr(1)\n }\n };\n }\n var data = base64encoder.decode(msg.substr(1));\n if (binaryType === 'blob' && Blob) {\n data = new Blob([\n data\n ]);\n }\n return {\n type: type,\n data: data\n };\n };\n /**\n * Encodes multiple messages (payload).\n *\n * <length>:data\n *\n * Example:\n *\n * 11:hello world2:hi\n *\n * If any contents are binary, they will be encoded as base64 strings. Base64\n * encoded strings are marked with a b before the length specifier\n *\n * @param {Array} packets\n * @api private\n */ exports.encodePayload = function(packets, supportsBinary, callback) {\n if (typeof supportsBinary === 'function') {\n callback = supportsBinary;\n supportsBinary = null;\n }\n var isBinary = hasBinary(packets);\n if (supportsBinary && isBinary) {\n if (Blob && !dontSendBlobs) {\n return exports.encodePayloadAsBlob(packets, callback);\n }\n return exports.encodePayloadAsArrayBuffer(packets, callback);\n }\n if (!packets.length) {\n return callback('0:');\n }\n function setLengthHeader(message) {\n return message.length + ':' + message;\n }\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, !isBinary ? false : supportsBinary, false, function(message) {\n doneCallback(null, setLengthHeader(message));\n });\n }\n map(packets, encodeOne, function(err, results) {\n return callback(results.join(''));\n });\n };\n /**\n * Async array map using after\n */ function map(ary, each, done) {\n var result = new Array(ary.length);\n var next = after(ary.length, done);\n var eachWithIndex = function(i, el, cb) {\n each(el, function(error, msg) {\n result[i] = msg;\n cb(error, result);\n });\n };\n for(var i2 = 0; i2 < ary.length; i2++){\n eachWithIndex(i2, ary[i2], next);\n }\n }\n /*\n * Decodes data when a payload is maybe expected. Possible binary contents are\n * decoded from their base64 representation\n *\n * @param {String} data, callback method\n * @api public\n */ exports.decodePayload = function(data, binaryType, callback) {\n if (typeof data !== 'string') {\n return exports.decodePayloadAsBinary(data, binaryType, callback);\n }\n if (typeof binaryType === 'function') {\n callback = binaryType;\n binaryType = null;\n }\n var packet;\n if (data === '') {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n var length = '', n, msg;\n for(var i = 0, l = data.length; i < l; i++){\n var chr = data.charAt(i);\n if (chr !== ':') {\n length += chr;\n continue;\n }\n if (length === '' || length != (n = Number(length))) {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n msg = data.substr(i + 1, n);\n if (length != msg.length) {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n if (msg.length) {\n packet = exports.decodePacket(msg, binaryType, false);\n if (err.type === packet.type && err.data === packet.data) {\n // parser error in individual packet - ignoring payload\n return callback(err, 0, 1);\n }\n var ret = callback(packet, i + n, l);\n if (false === ret) return;\n }\n // advance cursor\n i += n;\n length = '';\n }\n if (length !== '') {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n };\n /**\n * Encodes multiple messages (payload) as binary.\n *\n * <1 = binary, 0 = string><number from 0-9><number from 0-9>[...]<number\n * 255><data>\n *\n * Example:\n * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers\n *\n * @param {Array} packets\n * @return {ArrayBuffer} encoded payload\n * @api private\n */ exports.encodePayloadAsArrayBuffer = function(packets, callback) {\n if (!packets.length) {\n return callback(new ArrayBuffer(0));\n }\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, true, true, function(data) {\n return doneCallback(null, data);\n });\n }\n map(packets, encodeOne, function(err, encodedPackets) {\n var totalLength = encodedPackets.reduce(function(acc, p) {\n var len;\n if (typeof p === 'string') {\n len = p.length;\n } else {\n len = p.byteLength;\n }\n return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2\n }, 0);\n var resultArray = new Uint8Array(totalLength);\n var bufferIndex = 0;\n encodedPackets.forEach(function(p) {\n var isString = typeof p === 'string';\n var ab = p;\n if (isString) {\n var view = new Uint8Array(p.length);\n for(var i = 0; i < p.length; i++){\n view[i] = p.charCodeAt(i);\n }\n ab = view.buffer;\n }\n if (isString) {\n resultArray[bufferIndex++] = 0;\n } else {\n resultArray[bufferIndex++] = 1;\n }\n var lenStr = ab.byteLength.toString();\n for(var i = 0; i < lenStr.length; i++){\n resultArray[bufferIndex++] = parseInt(lenStr[i]);\n }\n resultArray[bufferIndex++] = 255;\n var view = new Uint8Array(ab);\n for(var i = 0; i < view.length; i++){\n resultArray[bufferIndex++] = view[i];\n }\n });\n return callback(resultArray.buffer);\n });\n };\n /**\n * Encode as Blob\n */ exports.encodePayloadAsBlob = function(packets, callback) {\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, true, true, function(encoded) {\n var binaryIdentifier = new Uint8Array(1);\n binaryIdentifier[0] = 1;\n if (typeof encoded === 'string') {\n var view = new Uint8Array(encoded.length);\n for(var i = 0; i < encoded.length; i++){\n view[i] = encoded.charCodeAt(i);\n }\n encoded = view.buffer;\n binaryIdentifier[0] = 0;\n }\n var len = encoded instanceof ArrayBuffer ? encoded.byteLength : encoded.size;\n var lenStr = len.toString();\n var lengthAry = new Uint8Array(lenStr.length + 1);\n for(var i = 0; i < lenStr.length; i++){\n lengthAry[i] = parseInt(lenStr[i]);\n }\n lengthAry[lenStr.length] = 255;\n if (Blob) {\n var blob = new Blob([\n binaryIdentifier.buffer,\n lengthAry.buffer,\n encoded\n ]);\n doneCallback(null, blob);\n }\n });\n }\n map(packets, encodeOne, function(err, results) {\n return callback(new Blob(results));\n });\n };\n /*\n * Decodes data when a payload is maybe expected. Strings are decoded by\n * interpreting each byte as a key code for entries marked to start with 0. See\n * description of encodePayloadAsBinary\n *\n * @param {ArrayBuffer} data, callback method\n * @api public\n */ exports.decodePayloadAsBinary = function(data, binaryType, callback) {\n if (typeof binaryType === 'function') {\n callback = binaryType;\n binaryType = null;\n }\n var bufferTail = data;\n var buffers = [];\n while(bufferTail.byteLength > 0){\n var tailArray = new Uint8Array(bufferTail);\n var isString = tailArray[0] === 0;\n var msgLength = '';\n for(var i = 1;; i++){\n if (tailArray[i] === 255) break;\n // 310 = char length of Number.MAX_VALUE\n if (msgLength.length > 310) {\n return callback(err, 0, 1);\n }\n msgLength += tailArray[i];\n }\n bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length);\n msgLength = parseInt(msgLength);\n var msg = sliceBuffer(bufferTail, 0, msgLength);\n if (isString) {\n try {\n msg = String.fromCharCode.apply(null, new Uint8Array(msg));\n } catch (e) {\n // iPhone Safari doesn't let you apply to typed arrays\n var typed = new Uint8Array(msg);\n msg = '';\n for(var i = 0; i < typed.length; i++){\n msg += String.fromCharCode(typed[i]);\n }\n }\n }\n buffers.push(msg);\n bufferTail = sliceBuffer(bufferTail, msgLength);\n }\n var total = buffers.length;\n buffers.forEach(function(buffer, i) {\n callback(exports.decodePacket(buffer, binaryType, true), i, total);\n });\n };\n /***/ },\n /***/ \"./node_modules/engine.io-parser/lib/keys.js\": /*!***************************************************!*\\\n !*** ./node_modules/engine.io-parser/lib/keys.js ***!\n \\***************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n /**\n * Gets the keys for an object.\n *\n * @return {Array} keys\n * @api private\n */ module.exports = Object.keys || function keys(obj) {\n var arr = [];\n var has = Object.prototype.hasOwnProperty;\n for(var i in obj){\n if (has.call(obj, i)) {\n arr.push(i);\n }\n }\n return arr;\n };\n /***/ },\n /***/ \"./node_modules/engine.io-parser/lib/utf8.js\": /*!***************************************************!*\\\n !*** ./node_modules/engine.io-parser/lib/utf8.js ***!\n \\***************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n /*! https://mths.be/utf8js v2.1.2 by @mathias */ var stringFromCharCode = String.fromCharCode;\n // Taken from https://mths.be/punycode\n function ucs2decode(string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n var value;\n var extra;\n while(counter < length){\n value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) {\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n }\n // Taken from https://mths.be/punycode\n function ucs2encode(array) {\n var length = array.length;\n var index = -1;\n var value;\n var output = '';\n while(++index < length){\n value = array[index];\n if (value > 0xFFFF) {\n value -= 0x10000;\n output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n value = 0xDC00 | value & 0x3FF;\n }\n output += stringFromCharCode(value);\n }\n return output;\n }\n function checkScalarValue(codePoint, strict) {\n if (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n if (strict) {\n throw Error('Lone surrogate U+' + codePoint.toString(16).toUpperCase() + ' is not a scalar value');\n }\n return false;\n }\n return true;\n }\n /*--------------------------------------------------------------------------*/ function createByte(codePoint, shift) {\n return stringFromCharCode(codePoint >> shift & 0x3F | 0x80);\n }\n function encodeCodePoint(codePoint, strict) {\n if ((codePoint & 0xFFFFFF80) == 0) {\n return stringFromCharCode(codePoint);\n }\n var symbol = '';\n if ((codePoint & 0xFFFFF800) == 0) {\n symbol = stringFromCharCode(codePoint >> 6 & 0x1F | 0xC0);\n } else if ((codePoint & 0xFFFF0000) == 0) {\n if (!checkScalarValue(codePoint, strict)) {\n codePoint = 0xFFFD;\n }\n symbol = stringFromCharCode(codePoint >> 12 & 0x0F | 0xE0);\n symbol += createByte(codePoint, 6);\n } else if ((codePoint & 0xFFE00000) == 0) {\n symbol = stringFromCharCode(codePoint >> 18 & 0x07 | 0xF0);\n symbol += createByte(codePoint, 12);\n symbol += createByte(codePoint, 6);\n }\n symbol += stringFromCharCode(codePoint & 0x3F | 0x80);\n return symbol;\n }\n function utf8encode(string, opts) {\n opts = opts || {};\n var strict = false !== opts.strict;\n var codePoints = ucs2decode(string);\n var length = codePoints.length;\n var index = -1;\n var codePoint;\n var byteString = '';\n while(++index < length){\n codePoint = codePoints[index];\n byteString += encodeCodePoint(codePoint, strict);\n }\n return byteString;\n }\n /*--------------------------------------------------------------------------*/ function readContinuationByte() {\n if (byteIndex >= byteCount) {\n throw Error('Invalid byte index');\n }\n var continuationByte = byteArray[byteIndex] & 0xFF;\n byteIndex++;\n if ((continuationByte & 0xC0) == 0x80) {\n return continuationByte & 0x3F;\n }\n // If we end up here, it\u2019s not a continuation byte\n throw Error('Invalid continuation byte');\n }\n function decodeSymbol(strict) {\n var byte1;\n var byte2;\n var byte3;\n var byte4;\n var codePoint;\n if (byteIndex > byteCount) {\n throw Error('Invalid byte index');\n }\n if (byteIndex == byteCount) {\n return false;\n }\n // Read first byte\n byte1 = byteArray[byteIndex] & 0xFF;\n byteIndex++;\n // 1-byte sequence (no continuation bytes)\n if ((byte1 & 0x80) == 0) {\n return byte1;\n }\n // 2-byte sequence\n if ((byte1 & 0xE0) == 0xC0) {\n byte2 = readContinuationByte();\n codePoint = (byte1 & 0x1F) << 6 | byte2;\n if (codePoint >= 0x80) {\n return codePoint;\n } else {\n throw Error('Invalid continuation byte');\n }\n }\n // 3-byte sequence (may include unpaired surrogates)\n if ((byte1 & 0xF0) == 0xE0) {\n byte2 = readContinuationByte();\n byte3 = readContinuationByte();\n codePoint = (byte1 & 0x0F) << 12 | byte2 << 6 | byte3;\n if (codePoint >= 0x0800) {\n return checkScalarValue(codePoint, strict) ? codePoint : 0xFFFD;\n } else {\n throw Error('Invalid continuation byte');\n }\n }\n // 4-byte sequence\n if ((byte1 & 0xF8) == 0xF0) {\n byte2 = readContinuationByte();\n byte3 = readContinuationByte();\n byte4 = readContinuationByte();\n codePoint = (byte1 & 0x07) << 0x12 | byte2 << 0x0C | byte3 << 0x06 | byte4;\n if (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n return codePoint;\n }\n }\n throw Error('Invalid UTF-8 detected');\n }\n var byteArray;\n var byteCount;\n var byteIndex;\n function utf8decode(byteString, opts) {\n opts = opts || {};\n var strict = false !== opts.strict;\n byteArray = ucs2decode(byteString);\n byteCount = byteArray.length;\n byteIndex = 0;\n var codePoints = [];\n var tmp;\n while((tmp = decodeSymbol(strict)) !== false){\n codePoints.push(tmp);\n }\n return ucs2encode(codePoints);\n }\n module.exports = {\n version: '2.1.2',\n encode: utf8encode,\n decode: utf8decode\n };\n /***/ },\n /***/ \"./node_modules/enum/lib/enum.js\": /*!***************************************!*\\\n !*** ./node_modules/enum/lib/enum.js ***!\n \\***************************************/ /*! exports provided: default */ /*! ModuleConcatenation bailout: Module uses injected variables (global) */ /***/ function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* WEBPACK VAR INJECTION */ (function(global) {\n __webpack_require__.d(__webpack_exports__, \"default\", function() {\n return Enum;\n });\n /* harmony import */ var _enumItem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./enumItem.js */ \"./node_modules/enum/lib/enumItem.js\");\n /* harmony import */ var _isType_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isType.js */ \"./node_modules/enum/lib/isType.js\");\n /* harmony import */ var _indexOf_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./indexOf.js */ \"./node_modules/enum/lib/indexOf.js\");\n const isBuffer = (obj)=>{\n return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n };\n /**\n * Returns a string identifying the endianness of the CPU for which the Deno\n * binary was compiled. Possible values are 'BE' for big endian and 'LE' for\n * little endian.\n **/ const getEndianess = ()=>{\n // Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView#Endianness\n const buffer = new ArrayBuffer(2);\n new DataView(buffer).setInt16(0, 256, true);\n // Int16Array uses the platform's endianness.\n return new Int16Array(buffer)[0] === 256 ? 'LE' : 'BE';\n };\n const endianness = getEndianess();\n let _iterator = Symbol.iterator;\n /**\n * Represents an Enum with enum items.\n * @param {Array || Object} map This are the enum items.\n * @param {String || Object} options This are options. [optional]\n */ class Enum {\n /**\n * Returns the appropriate EnumItem key.\n * @param {EnumItem || String || Number} key The object to get with.\n * @return {String} The get result.\n */ getKey(value) {\n var item = this.get(value);\n if (item) {\n return item.key;\n }\n }\n /**\n * Returns the appropriate EnumItem value.\n * @param {EnumItem || String || Number} key The object to get with.\n * @return {Number} The get result.\n */ getValue(key) {\n var item = this.get(key);\n if (item) {\n return item.value;\n }\n }\n /**\n * Returns the appropriate EnumItem.\n * @param {EnumItem || String || Number} key The object to get with.\n * @return {EnumItem} The get result.\n */ get(key, offset) {\n if (key === null || key === undefined) {\n return;\n } // Buffer instance support, part of the ref Type interface\n if (isBuffer(key)) {\n key = key['readUInt32' + this._options.endianness](offset || 0);\n }\n if (_enumItem_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isEnumItem(key)) {\n var foundIndex = _indexOf_js__WEBPACK_IMPORTED_MODULE_2__[\"indexOf\"].call(this.enums, key);\n if (foundIndex >= 0) {\n return key;\n }\n if (!this.isFlaggable || this.isFlaggable && key.key.indexOf(this._options.separator) < 0) {\n return;\n }\n return this.get(key.key);\n } else if (Object(_isType_js__WEBPACK_IMPORTED_MODULE_1__[\"isString\"])(key)) {\n var enums = this;\n if (this._options.ignoreCase) {\n enums = this.getLowerCaseEnums();\n key = key.toLowerCase();\n }\n if (key.indexOf(this._options.separator) > 0) {\n var parts = key.split(this._options.separator);\n var value = 0;\n for(var i = 0; i < parts.length; i++){\n var part = parts[i];\n value |= enums[part].value;\n }\n return new _enumItem_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](key, value);\n } else {\n return enums[key];\n }\n } else {\n for(var m in this){\n // eslint-disable-next-line no-prototype-builtins\n if (this.hasOwnProperty(m)) {\n if (this[m].value === key) {\n return this[m];\n }\n }\n }\n var result = null;\n if (this.isFlaggable) {\n for(var n in this){\n // eslint-disable-next-line no-prototype-builtins\n if (this.hasOwnProperty(n)) {\n if ((key & this[n].value) !== 0) {\n if (result) {\n result += this._options.separator;\n } else {\n result = '';\n }\n result += n;\n }\n }\n }\n }\n return this.get(result || null);\n }\n }\n /**\n * Sets the Enum \"value\" onto the give `buffer` at the specified `offset`.\n * Part of the ref \"Type interface\".\n *\n * @param {Buffer} buffer The Buffer instance to write to.\n * @param {Number} offset The offset in the buffer to write to. Default 0.\n * @param {EnumItem || String || Number} value The EnumItem to write.\n */ set(buffer, offset, value) {\n var item = this.get(value);\n if (item) {\n return buffer['writeUInt32' + this._options.endianness](item.value, offset || 0);\n }\n }\n /**\n * Define freezeEnums() as a property of the prototype.\n * make enumerable items nonconfigurable and deep freeze the properties. Throw Error on property setter.\n */ freezeEnums() {\n function envSupportsFreezing() {\n return Object.isFrozen && Object.isSealed && Object.getOwnPropertyNames && Object.getOwnPropertyDescriptor && Object.defineProperties && Object.__defineGetter__ && Object.__defineSetter__;\n }\n function freezer(o) {\n var props = Object.getOwnPropertyNames(o);\n props.forEach(function(p) {\n if (!Object.getOwnPropertyDescriptor(o, p).configurable) {\n return;\n }\n Object.defineProperties(o, p, {\n writable: false,\n configurable: false\n });\n });\n return o;\n }\n function getPropertyValue(value) {\n return value;\n }\n function deepFreezeEnums(o) {\n if (typeof o !== 'object' || o === null || Object.isFrozen(o) || Object.isSealed(o)) {\n return;\n }\n for(var key in o){\n // eslint-disable-next-line no-prototype-builtins\n if (o.hasOwnProperty(key)) {\n o.__defineGetter__(key, getPropertyValue.bind(null, o[key]));\n o.__defineSetter__(key, function throwPropertySetError(value) {\n throw TypeError('Cannot redefine property; Enum Type is not extensible.');\n });\n deepFreezeEnums(o[key]);\n }\n }\n if (Object.freeze) {\n Object.freeze(o);\n } else {\n freezer(o);\n }\n }\n if (envSupportsFreezing()) {\n deepFreezeEnums(this);\n }\n return this;\n }\n /**\n * Return true whether the enumItem parameter passed in is an EnumItem object and\n * has been included as constant of this Enum\n * @param {EnumItem} enumItem\n */ isDefined(enumItem) {\n let condition = (e)=>e === enumItem\n ;\n if (Object(_isType_js__WEBPACK_IMPORTED_MODULE_1__[\"isString\"])(enumItem) || Object(_isType_js__WEBPACK_IMPORTED_MODULE_1__[\"isNumber\"])(enumItem)) {\n condition = (e)=>e.is(enumItem)\n ;\n }\n return this.enums.some(condition);\n }\n /**\n * Returns JSON object representation of this Enum.\n * @return {String} JSON object representation of this Enum.\n */ toJSON() {\n return this._enumMap;\n }\n /**\n * Extends the existing Enum with a New Map.\n * @param {Array} map Map to extend from\n */ extend(map) {\n if (map.length) {\n var array = map;\n map = {};\n for(var i = 0; i < array.length; i++){\n var exponent = this._enumLastIndex + i;\n map[array[i]] = Math.pow(2, exponent);\n }\n for(var member in map){\n guardReservedKeys(this._options.name, member);\n this[member] = new _enumItem_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](member, map[member], {\n ignoreCase: this._options.ignoreCase\n });\n this.enums.push(this[member]);\n }\n for(var key in this._enumMap){\n map[key] = this._enumMap[key];\n }\n this._enumLastIndex += map.length;\n this._enumMap = map;\n if (this._options.freeze) {\n this.freezeEnums() // this will make instances of new Enum non-extensible\n ;\n }\n }\n }\n /**\n * Registers the Enum Type globally in node.js.\n * @param {String} key Global variable. [optional]\n */ static register(key = 'Enum') {\n if (typeof global !== 'undefined' && !global[key]) {\n global[key] = Enum;\n } else if (typeof window !== 'undefined' && !window[key]) {\n window[key] = Enum;\n }\n }\n [_iterator]() {\n let index = 0;\n return {\n next: ()=>index < this.enums.length ? {\n done: false,\n value: this.enums[index++]\n } : {\n done: true\n }\n };\n }\n constructor(map, options){\n /* implement the \"ref type interface\", so that Enum types can\n * be used in `node-ffi` function declarations and invokations.\n * In C, these Enums act as `uint32_t` types.\n *\n * https://github.com/TooTallNate/ref#the-type-interface\n */ this.size = 4;\n this.indirection = 1;\n if (options && Object(_isType_js__WEBPACK_IMPORTED_MODULE_1__[\"isString\"])(options)) {\n options = {\n name: options\n };\n }\n this._options = options || {};\n this._options.separator = this._options.separator || ' | ';\n this._options.endianness = this._options.endianness || endianness;\n this._options.ignoreCase = this._options.ignoreCase || false;\n this._options.freez = this._options.freez || false // backword compatability\n ;\n this._options.freeze = this._options.freeze || this._options.freez || false;\n this.enums = [];\n if (map.length) {\n this._enumLastIndex = map.length;\n var array = map;\n map = {};\n for(var i = 0; i < array.length; i++){\n map[array[i]] = Math.pow(2, i);\n }\n }\n for(var member in map){\n guardReservedKeys(this._options.name, member);\n this[member] = new _enumItem_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](member, map[member], {\n ignoreCase: this._options.ignoreCase\n });\n this.enums.push(this[member]);\n }\n this._enumMap = map;\n if (this._options.ignoreCase) {\n this.getLowerCaseEnums = function() {\n var res = {};\n for(var i = 0, len = this.enums.length; i < len; i++){\n res[this.enums[i].key.toLowerCase()] = this.enums[i];\n }\n return res;\n };\n }\n if (this._options.name) {\n this.name = this._options.name;\n }\n const isFlaggable = ()=>{\n for(var i = 0, len = this.enums.length; i < len; i++){\n var e = this.enums[i];\n if (!(e.value !== 0 && !(e.value & e.value - 1))) {\n return false;\n }\n }\n return true;\n };\n this.isFlaggable = isFlaggable();\n if (this._options.freeze) {\n this.freezeEnums() // this will make instances of Enum non-extensible\n ;\n }\n }\n }\n ;\n // private\n var reservedKeys = [\n '_options',\n 'get',\n 'getKey',\n 'getValue',\n 'enums',\n 'isFlaggable',\n '_enumMap',\n 'toJSON',\n '_enumLastIndex'\n ];\n function guardReservedKeys(customName, key) {\n if (customName && key === 'name' || _indexOf_js__WEBPACK_IMPORTED_MODULE_2__[\"indexOf\"].call(reservedKeys, key) >= 0) {\n throw new Error(`Enum key ${key} is a reserved word!`);\n }\n }\n /* WEBPACK VAR INJECTION */ }).call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"));\n /***/ },\n /***/ \"./node_modules/enum/lib/enumItem.js\": /*!*******************************************!*\\\n !*** ./node_modules/enum/lib/enumItem.js ***!\n \\*******************************************/ /*! exports provided: default */ /***/ function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() {\n return EnumItem;\n });\n /* harmony import */ var _isType_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isType.js */ \"./node_modules/enum/lib/isType.js\");\n /**\n * Represents an Item of an Enum.\n * @param {String} key The Enum key.\n * @param {Number} value The Enum value.\n */ class EnumItem {\n /**\n * Checks if the flagged EnumItem has the passing object.\n * @param {EnumItem || String || Number} value The object to check with.\n * @return {Boolean} The check result.\n */ has(value) {\n if (EnumItem.isEnumItem(value)) {\n return (this.value & value.value) !== 0;\n } else if (Object(_isType_js__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(value)) {\n if (this._options.ignoreCase) {\n return this.key.toLowerCase().indexOf(value.toLowerCase()) >= 0;\n }\n return this.key.indexOf(value) >= 0;\n } else {\n return (this.value & value) !== 0;\n }\n }\n /**\n * Checks if the EnumItem is the same as the passing object.\n * @param {EnumItem || String || Number} key The object to check with.\n * @return {Boolean} The check result.\n */ is(key) {\n if (EnumItem.isEnumItem(key)) {\n return this.key === key.key;\n } else if (Object(_isType_js__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(key)) {\n if (this._options.ignoreCase) {\n return this.key.toLowerCase() === key.toLowerCase();\n }\n return this.key === key;\n } else {\n return this.value === key;\n }\n }\n /**\n * Returns String representation of this EnumItem.\n * @return {String} String representation of this EnumItem.\n */ toString() {\n return this.key;\n }\n /**\n * Returns JSON object representation of this EnumItem.\n * @return {String} JSON object representation of this EnumItem.\n */ toJSON() {\n return this.key;\n }\n /**\n * Returns the value to compare with.\n * @return {String} The value to compare with.\n */ valueOf() {\n return this.value;\n }\n static isEnumItem(value) {\n return value instanceof EnumItem || Object(_isType_js__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(value) && value.key !== undefined && value.value !== undefined;\n }\n /* constructor reference so that, this.constructor===EnumItem//=>true */ constructor(key, value, options = {}){\n this.key = key;\n this.value = value;\n this._options = options;\n this._options.ignoreCase = this._options.ignoreCase || false;\n }\n }\n ;\n /***/ },\n /***/ \"./node_modules/enum/lib/indexOf.js\": /*!******************************************!*\\\n !*** ./node_modules/enum/lib/indexOf.js ***!\n \\******************************************/ /*! exports provided: indexOf */ /***/ function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"indexOf\", function() {\n return indexOf;\n });\n const indexOf = Array.prototype.indexOf || function(find, i /* opt */ ) {\n if (i === undefined) i = 0;\n if (i < 0) i += this.length;\n if (i < 0) i = 0;\n for(var n = this.length; i < n; i++){\n if (i in this && this[i] === find) {\n return i;\n }\n }\n return -1;\n };\n /***/ },\n /***/ \"./node_modules/enum/lib/isType.js\": /*!*****************************************!*\\\n !*** ./node_modules/enum/lib/isType.js ***!\n \\*****************************************/ /*! exports provided: isType, isObject, isString, isNumber */ /***/ function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isType\", function() {\n return isType;\n });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObject\", function() {\n return isObject;\n });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isString\", function() {\n return isString;\n });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNumber\", function() {\n return isNumber;\n });\n // eslint-disable-next-line valid-typeof\n const isType = (type, value)=>typeof value === type\n ;\n const isObject = (value)=>isType('object', value)\n ;\n const isString = (value)=>isType('string', value)\n ;\n const isNumber = (value)=>isType('number', value)\n ;\n /***/ },\n /***/ \"./node_modules/events/events.js\": /*!***************************************!*\\\n !*** ./node_modules/events/events.js ***!\n \\***************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n \"use strict\";\n // Copyright Joyent, Inc. and other Node contributors.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a\n // copy of this software and associated documentation files (the\n // \"Software\"), to deal in the Software without restriction, including\n // without limitation the rights to use, copy, modify, merge, publish,\n // distribute, sublicense, and/or sell copies of the Software, and to permit\n // persons to whom the Software is furnished to do so, subject to the\n // following conditions:\n //\n // The above copyright notice and this permission notice shall be included\n // in all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n // USE OR OTHER DEALINGS IN THE SOFTWARE.\n var R = typeof Reflect === 'object' ? Reflect : null;\n var ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n // Backwards-compat with node 0.10.x\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = undefined;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = undefined;\n // By default EventEmitters will print a warning if more than 10 listeners are\n // added to it. This is a useful default which helps finding memory leaks.\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function() {\n if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || undefined;\n };\n // Obviously not all Emitters should be limited to 10. This function allows\n // that to be increased. Set to zero for unlimited.\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for(var i = 1; i < arguments.length; i++)args.push(arguments[i]);\n var doError = type === 'error';\n var events = this._events;\n if (events !== undefined) doError = doError && events.error === undefined;\n else if (!doError) return false;\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0) er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n var handler = events[type];\n if (handler === undefined) return false;\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for(var i = 0; i < len; ++i)ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type, listener.listener ? listener.listener : listener);\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [\n listener,\n existing\n ] : [\n existing,\n listener\n ];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0) return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = {\n fired: false,\n wrapFn: undefined,\n target: target,\n type: type,\n listener: listener\n };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n // Emits a 'removeListener' event if and only if the listener was removed.\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === undefined) return this;\n list = events[type];\n if (list === undefined) return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0) this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener) this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n for(i = list.length - 1; i >= 0; i--){\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0) return this;\n if (position === 0) list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1) events[type] = list[0];\n if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === undefined) return this;\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0) this._events = Object.create(null);\n else delete events[type];\n }\n return this;\n }\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for(i = 0; i < keys.length; ++i){\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for(i = listeners.length - 1; i >= 0; i--){\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === undefined) return [];\n var evlistener = events[type];\n if (evlistener === undefined) return [];\n if (typeof evlistener === 'function') return unwrap ? [\n evlistener.listener || evlistener\n ] : [\n evlistener\n ];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== undefined) {\n var evlistener = events[type];\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for(var i = 0; i < n; ++i)copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for(; index + 1 < list.length; index++)list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for(var i = 0; i < ret.length; ++i){\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, {\n once: true\n });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, {\n once: true\n });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n }\n /***/ },\n /***/ \"./node_modules/filter-obj/index.js\": /*!******************************************!*\\\n !*** ./node_modules/filter-obj/index.js ***!\n \\******************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n \"use strict\";\n module.exports = function(obj, predicate) {\n var ret = {};\n var keys = Object.keys(obj);\n var isArr = Array.isArray(predicate);\n for(var i = 0; i < keys.length; i++){\n var key = keys[i];\n var val = obj[key];\n if (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n ret[key] = val;\n }\n }\n return ret;\n };\n /***/ },\n /***/ \"./node_modules/has-binary2/index.js\": /*!*******************************************!*\\\n !*** ./node_modules/has-binary2/index.js ***!\n \\*******************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */ (function(Buffer) {\n /*\n * Module requirements.\n */ var isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\");\n var toString = Object.prototype.toString;\n var withNativeBlob = typeof Blob === 'function' || typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]';\n var withNativeFile = typeof File === 'function' || typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]';\n /**\n * Module exports.\n */ module.exports = hasBinary;\n /**\n * Checks for binary data.\n *\n * Supports Buffer, ArrayBuffer, Blob and File.\n *\n * @param {Object} anything\n * @api public\n */ function hasBinary(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n if (isArray(obj)) {\n for(var i = 0, l = obj.length; i < l; i++){\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (typeof Buffer === 'function' && Buffer.isBuffer && Buffer.isBuffer(obj) || typeof ArrayBuffer === 'function' && obj instanceof ArrayBuffer || withNativeBlob && obj instanceof Blob || withNativeFile && obj instanceof File) {\n return true;\n }\n // see: https://github.com/Automattic/has-binary/pull/4\n if (obj.toJSON && typeof obj.toJSON === 'function' && arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for(var key in obj){\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n }\n /* WEBPACK VAR INJECTION */ }).call(this, __webpack_require__(/*! ./../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer);\n /***/ },\n /***/ \"./node_modules/has-cors/index.js\": /*!****************************************!*\\\n !*** ./node_modules/has-cors/index.js ***!\n \\****************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n /**\n * Module exports.\n *\n * Logic borrowed from Modernizr:\n *\n * - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js\n */ try {\n module.exports = typeof XMLHttpRequest !== 'undefined' && 'withCredentials' in new XMLHttpRequest();\n } catch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n module.exports = false;\n }\n /***/ },\n /***/ \"./node_modules/ieee754/index.js\": /*!***************************************!*\\\n !*** ./node_modules/ieee754/index.js ***!\n \\***************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */ exports.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for(; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8){}\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for(; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8){}\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for(; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8){}\n e = e << mLen | m;\n eLen += mLen;\n for(; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8){}\n buffer[offset + i - d] |= s * 128;\n };\n /***/ },\n /***/ \"./node_modules/indexof/index.js\": /*!***************************************!*\\\n !*** ./node_modules/indexof/index.js ***!\n \\***************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n var indexOf = [].indexOf;\n module.exports = function(arr, obj) {\n if (indexOf) return arr.indexOf(obj);\n for(var i = 0; i < arr.length; ++i){\n if (arr[i] === obj) return i;\n }\n return -1;\n };\n /***/ },\n /***/ \"./node_modules/isarray/index.js\": /*!***************************************!*\\\n !*** ./node_modules/isarray/index.js ***!\n \\***************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n var toString = {}.toString;\n module.exports = Array.isArray || function(arr) {\n return toString.call(arr) == '[object Array]';\n };\n /***/ },\n /***/ \"./node_modules/js-binarypack/lib/binarypack.js\": /*!******************************************************!*\\\n !*** ./node_modules/js-binarypack/lib/binarypack.js ***!\n \\******************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n var BufferBuilder = __webpack_require__(/*! ./bufferbuilder */ \"./node_modules/js-binarypack/lib/bufferbuilder.js\").BufferBuilder;\n var binaryFeatures = __webpack_require__(/*! ./bufferbuilder */ \"./node_modules/js-binarypack/lib/bufferbuilder.js\").binaryFeatures;\n var BinaryPack = {\n unpack: function(data) {\n var unpacker = new Unpacker(data);\n return unpacker.unpack();\n },\n pack: function(data) {\n var packer = new Packer();\n packer.pack(data);\n var buffer = packer.getBuffer();\n return buffer;\n }\n };\n module.exports = BinaryPack;\n function Unpacker(data) {\n // Data is ArrayBuffer\n this.index = 0;\n this.dataBuffer = data;\n this.dataView = new Uint8Array(this.dataBuffer);\n this.length = this.dataBuffer.byteLength;\n }\n Unpacker.prototype.unpack = function() {\n var type = this.unpack_uint8();\n if (type < 0x80) {\n var positive_fixnum = type;\n return positive_fixnum;\n } else if ((type ^ 0xe0) < 0x20) {\n var negative_fixnum = (type ^ 0xe0) - 0x20;\n return negative_fixnum;\n }\n var size;\n if ((size = type ^ 0xa0) <= 0x0f) {\n return this.unpack_raw(size);\n } else if ((size = type ^ 0xb0) <= 0x0f) {\n return this.unpack_string(size);\n } else if ((size = type ^ 0x90) <= 0x0f) {\n return this.unpack_array(size);\n } else if ((size = type ^ 0x80) <= 0x0f) {\n return this.unpack_map(size);\n }\n switch(type){\n case 0xc0:\n return null;\n case 0xc1:\n return undefined;\n case 0xc2:\n return false;\n case 0xc3:\n return true;\n case 0xca:\n return this.unpack_float();\n case 0xcb:\n return this.unpack_double();\n case 0xcc:\n return this.unpack_uint8();\n case 0xcd:\n return this.unpack_uint16();\n case 0xce:\n return this.unpack_uint32();\n case 0xcf:\n return this.unpack_uint64();\n case 0xd0:\n return this.unpack_int8();\n case 0xd1:\n return this.unpack_int16();\n case 0xd2:\n return this.unpack_int32();\n case 0xd3:\n return this.unpack_int64();\n case 0xd4:\n return undefined;\n case 0xd5:\n return undefined;\n case 0xd6:\n return undefined;\n case 0xd7:\n return undefined;\n case 0xd8:\n size = this.unpack_uint16();\n return this.unpack_string(size);\n case 0xd9:\n size = this.unpack_uint32();\n return this.unpack_string(size);\n case 0xda:\n size = this.unpack_uint16();\n return this.unpack_raw(size);\n case 0xdb:\n size = this.unpack_uint32();\n return this.unpack_raw(size);\n case 0xdc:\n size = this.unpack_uint16();\n return this.unpack_array(size);\n case 0xdd:\n size = this.unpack_uint32();\n return this.unpack_array(size);\n case 0xde:\n size = this.unpack_uint16();\n return this.unpack_map(size);\n case 0xdf:\n size = this.unpack_uint32();\n return this.unpack_map(size);\n }\n };\n Unpacker.prototype.unpack_uint8 = function() {\n var byte = this.dataView[this.index] & 0xff;\n this.index++;\n return byte;\n };\n Unpacker.prototype.unpack_uint16 = function() {\n var bytes = this.read(2);\n var uint16 = (bytes[0] & 0xff) * 256 + (bytes[1] & 0xff);\n this.index += 2;\n return uint16;\n };\n Unpacker.prototype.unpack_uint32 = function() {\n var bytes = this.read(4);\n var uint32 = ((bytes[0] * 256 + bytes[1]) * 256 + bytes[2]) * 256 + bytes[3];\n this.index += 4;\n return uint32;\n };\n Unpacker.prototype.unpack_uint64 = function() {\n var bytes = this.read(8);\n var uint64 = ((((((bytes[0] * 256 + bytes[1]) * 256 + bytes[2]) * 256 + bytes[3]) * 256 + bytes[4]) * 256 + bytes[5]) * 256 + bytes[6]) * 256 + bytes[7];\n this.index += 8;\n return uint64;\n };\n Unpacker.prototype.unpack_int8 = function() {\n var uint8 = this.unpack_uint8();\n return uint8 < 0x80 ? uint8 : uint8 - (1 << 8);\n };\n Unpacker.prototype.unpack_int16 = function() {\n var uint16 = this.unpack_uint16();\n return uint16 < 0x8000 ? uint16 : uint16 - (1 << 16);\n };\n Unpacker.prototype.unpack_int32 = function() {\n var uint32 = this.unpack_uint32();\n return uint32 < Math.pow(2, 31) ? uint32 : uint32 - Math.pow(2, 32);\n };\n Unpacker.prototype.unpack_int64 = function() {\n var uint64 = this.unpack_uint64();\n return uint64 < Math.pow(2, 63) ? uint64 : uint64 - Math.pow(2, 64);\n };\n Unpacker.prototype.unpack_raw = function(size) {\n if (this.length < this.index + size) {\n throw new Error('BinaryPackFailure: index is out of range' + ' ' + this.index + ' ' + size + ' ' + this.length);\n }\n var buf = this.dataBuffer.slice(this.index, this.index + size);\n this.index += size;\n //buf = util.bufferToString(buf);\n return buf;\n };\n Unpacker.prototype.unpack_string = function(size) {\n var bytes = this.read(size);\n var i = 0, str = '', c, code;\n while(i < size){\n c = bytes[i];\n if (c < 128) {\n str += String.fromCharCode(c);\n i++;\n } else if ((c ^ 0xc0) < 32) {\n code = (c ^ 0xc0) << 6 | bytes[i + 1] & 63;\n str += String.fromCharCode(code);\n i += 2;\n } else {\n code = (c & 15) << 12 | (bytes[i + 1] & 63) << 6 | bytes[i + 2] & 63;\n str += String.fromCharCode(code);\n i += 3;\n }\n }\n this.index += size;\n return str;\n };\n Unpacker.prototype.unpack_array = function(size) {\n var objects = new Array(size);\n for(var i = 0; i < size; i++){\n objects[i] = this.unpack();\n }\n return objects;\n };\n Unpacker.prototype.unpack_map = function(size) {\n var map = {};\n for(var i = 0; i < size; i++){\n var key = this.unpack();\n var value = this.unpack();\n map[key] = value;\n }\n return map;\n };\n Unpacker.prototype.unpack_float = function() {\n var uint32 = this.unpack_uint32();\n var sign = uint32 >> 31;\n var exp = (uint32 >> 23 & 0xff) - 127;\n var fraction = uint32 & 0x7fffff | 0x800000;\n return (sign == 0 ? 1 : -1) * fraction * Math.pow(2, exp - 23);\n };\n Unpacker.prototype.unpack_double = function() {\n var h32 = this.unpack_uint32();\n var l32 = this.unpack_uint32();\n var sign = h32 >> 31;\n var exp = (h32 >> 20 & 0x7ff) - 1023;\n var hfrac = h32 & 0xfffff | 0x100000;\n var frac = hfrac * Math.pow(2, exp - 20) + l32 * Math.pow(2, exp - 52);\n return (sign == 0 ? 1 : -1) * frac;\n };\n Unpacker.prototype.read = function(length) {\n var j = this.index;\n if (j + length <= this.length) {\n return this.dataView.subarray(j, j + length);\n } else {\n throw new Error('BinaryPackFailure: read index out of range');\n }\n };\n function Packer() {\n this.bufferBuilder = new BufferBuilder();\n }\n Packer.prototype.getBuffer = function() {\n return this.bufferBuilder.getBuffer();\n };\n Packer.prototype.pack = function(value) {\n var type = typeof value;\n if (type == 'string') {\n this.pack_string(value);\n } else if (type == 'number') {\n if (Math.floor(value) === value) {\n this.pack_integer(value);\n } else {\n this.pack_double(value);\n }\n } else if (type == 'boolean') {\n if (value === true) {\n this.bufferBuilder.append(0xc3);\n } else if (value === false) {\n this.bufferBuilder.append(0xc2);\n }\n } else if (type == 'undefined') {\n this.bufferBuilder.append(0xc0);\n } else if (type == 'object') {\n if (value === null) {\n this.bufferBuilder.append(0xc0);\n } else {\n var constructor = value.constructor;\n if (constructor == Array) {\n this.pack_array(value);\n } else if (constructor == Blob || constructor == File) {\n this.pack_bin(value);\n } else if (constructor == ArrayBuffer) {\n if (binaryFeatures.useArrayBufferView) {\n this.pack_bin(new Uint8Array(value));\n } else {\n this.pack_bin(value);\n }\n } else if ('BYTES_PER_ELEMENT' in value) {\n if (binaryFeatures.useArrayBufferView) {\n this.pack_bin(new Uint8Array(value.buffer));\n } else {\n this.pack_bin(value.buffer);\n }\n } else if (constructor == Object) {\n this.pack_object(value);\n } else if (constructor == Date) {\n this.pack_string(value.toString());\n } else if (typeof value.toBinaryPack == 'function') {\n this.bufferBuilder.append(value.toBinaryPack());\n } else {\n throw new Error('Type \"' + constructor.toString() + '\" not yet supported');\n }\n }\n } else {\n throw new Error('Type \"' + type + '\" not yet supported');\n }\n this.bufferBuilder.flush();\n };\n Packer.prototype.pack_bin = function(blob) {\n var length = blob.length || blob.byteLength || blob.size;\n if (length <= 0x0f) {\n this.pack_uint8(0xa0 + length);\n } else if (length <= 0xffff) {\n this.bufferBuilder.append(0xda);\n this.pack_uint16(length);\n } else if (length <= 0xffffffff) {\n this.bufferBuilder.append(0xdb);\n this.pack_uint32(length);\n } else {\n throw new Error('Invalid length');\n }\n this.bufferBuilder.append(blob);\n };\n Packer.prototype.pack_string = function(str) {\n var length = utf8Length(str);\n if (length <= 0x0f) {\n this.pack_uint8(0xb0 + length);\n } else if (length <= 0xffff) {\n this.bufferBuilder.append(0xd8);\n this.pack_uint16(length);\n } else if (length <= 0xffffffff) {\n this.bufferBuilder.append(0xd9);\n this.pack_uint32(length);\n } else {\n throw new Error('Invalid length');\n }\n this.bufferBuilder.append(str);\n };\n Packer.prototype.pack_array = function(ary) {\n var length = ary.length;\n if (length <= 0x0f) {\n this.pack_uint8(0x90 + length);\n } else if (length <= 0xffff) {\n this.bufferBuilder.append(0xdc);\n this.pack_uint16(length);\n } else if (length <= 0xffffffff) {\n this.bufferBuilder.append(0xdd);\n this.pack_uint32(length);\n } else {\n throw new Error('Invalid length');\n }\n for(var i = 0; i < length; i++){\n this.pack(ary[i]);\n }\n };\n Packer.prototype.pack_integer = function(num) {\n if (-0x20 <= num && num <= 0x7f) {\n this.bufferBuilder.append(num & 0xff);\n } else if (0x00 <= num && num <= 0xff) {\n this.bufferBuilder.append(0xcc);\n this.pack_uint8(num);\n } else if (-0x80 <= num && num <= 0x7f) {\n this.bufferBuilder.append(0xd0);\n this.pack_int8(num);\n } else if (0x0000 <= num && num <= 0xffff) {\n this.bufferBuilder.append(0xcd);\n this.pack_uint16(num);\n } else if (-0x8000 <= num && num <= 0x7fff) {\n this.bufferBuilder.append(0xd1);\n this.pack_int16(num);\n } else if (0x00000000 <= num && num <= 0xffffffff) {\n this.bufferBuilder.append(0xce);\n this.pack_uint32(num);\n } else if (-0x80000000 <= num && num <= 0x7fffffff) {\n this.bufferBuilder.append(0xd2);\n this.pack_int32(num);\n } else if (-0x8000000000000000 <= num && num <= 0x7FFFFFFFFFFFFFFF) {\n this.bufferBuilder.append(0xd3);\n this.pack_int64(num);\n } else if (0x0000000000000000 <= num && num <= 0xFFFFFFFFFFFFFFFF) {\n this.bufferBuilder.append(0xcf);\n this.pack_uint64(num);\n } else {\n throw new Error('Invalid integer');\n }\n };\n Packer.prototype.pack_double = function(num) {\n var sign = 0;\n if (num < 0) {\n sign = 1;\n num = -num;\n }\n var exp = Math.floor(Math.log(num) / Math.LN2);\n var frac0 = num / Math.pow(2, exp) - 1;\n var frac1 = Math.floor(frac0 * Math.pow(2, 52));\n var b32 = Math.pow(2, 32);\n var h32 = sign << 31 | exp + 1023 << 20 | frac1 / b32 & 0x0fffff;\n var l32 = frac1 % b32;\n this.bufferBuilder.append(0xcb);\n this.pack_int32(h32);\n this.pack_int32(l32);\n };\n Packer.prototype.pack_object = function(obj) {\n var keys = Object.keys(obj);\n var length = keys.length;\n if (length <= 0x0f) {\n this.pack_uint8(0x80 + length);\n } else if (length <= 0xffff) {\n this.bufferBuilder.append(0xde);\n this.pack_uint16(length);\n } else if (length <= 0xffffffff) {\n this.bufferBuilder.append(0xdf);\n this.pack_uint32(length);\n } else {\n throw new Error('Invalid length');\n }\n for(var prop in obj){\n if (obj.hasOwnProperty(prop)) {\n this.pack(prop);\n this.pack(obj[prop]);\n }\n }\n };\n Packer.prototype.pack_uint8 = function(num) {\n this.bufferBuilder.append(num);\n };\n Packer.prototype.pack_uint16 = function(num) {\n this.bufferBuilder.append(num >> 8);\n this.bufferBuilder.append(num & 0xff);\n };\n Packer.prototype.pack_uint32 = function(num) {\n var n = num & 0xffffffff;\n this.bufferBuilder.append((n & 0xff000000) >>> 24);\n this.bufferBuilder.append((n & 0x00ff0000) >>> 16);\n this.bufferBuilder.append((n & 0x0000ff00) >>> 8);\n this.bufferBuilder.append(n & 0x000000ff);\n };\n Packer.prototype.pack_uint64 = function(num) {\n var high = num / Math.pow(2, 32);\n var low = num % Math.pow(2, 32);\n this.bufferBuilder.append((high & 0xff000000) >>> 24);\n this.bufferBuilder.append((high & 0x00ff0000) >>> 16);\n this.bufferBuilder.append((high & 0x0000ff00) >>> 8);\n this.bufferBuilder.append(high & 0x000000ff);\n this.bufferBuilder.append((low & 0xff000000) >>> 24);\n this.bufferBuilder.append((low & 0x00ff0000) >>> 16);\n this.bufferBuilder.append((low & 0x0000ff00) >>> 8);\n this.bufferBuilder.append(low & 0x000000ff);\n };\n Packer.prototype.pack_int8 = function(num) {\n this.bufferBuilder.append(num & 0xff);\n };\n Packer.prototype.pack_int16 = function(num) {\n this.bufferBuilder.append((num & 0xff00) >> 8);\n this.bufferBuilder.append(num & 0xff);\n };\n Packer.prototype.pack_int32 = function(num) {\n this.bufferBuilder.append(num >>> 24 & 0xff);\n this.bufferBuilder.append((num & 0x00ff0000) >>> 16);\n this.bufferBuilder.append((num & 0x0000ff00) >>> 8);\n this.bufferBuilder.append(num & 0x000000ff);\n };\n Packer.prototype.pack_int64 = function(num) {\n var high = Math.floor(num / Math.pow(2, 32));\n var low = num % Math.pow(2, 32);\n this.bufferBuilder.append((high & 0xff000000) >>> 24);\n this.bufferBuilder.append((high & 0x00ff0000) >>> 16);\n this.bufferBuilder.append((high & 0x0000ff00) >>> 8);\n this.bufferBuilder.append(high & 0x000000ff);\n this.bufferBuilder.append((low & 0xff000000) >>> 24);\n this.bufferBuilder.append((low & 0x00ff0000) >>> 16);\n this.bufferBuilder.append((low & 0x0000ff00) >>> 8);\n this.bufferBuilder.append(low & 0x000000ff);\n };\n function _utf8Replace(m) {\n var code = m.charCodeAt(0);\n if (code <= 0x7ff) return '00';\n if (code <= 0xffff) return '000';\n if (code <= 0x1fffff) return '0000';\n if (code <= 0x3ffffff) return '00000';\n return '000000';\n }\n function utf8Length(str) {\n if (str.length > 600) {\n // Blob method faster for large strings\n return new Blob([\n str\n ]).size;\n } else {\n return str.replace(/[^\\u0000-\\u007F]/g, _utf8Replace).length;\n }\n }\n /***/ },\n /***/ \"./node_modules/js-binarypack/lib/bufferbuilder.js\": /*!*********************************************************!*\\\n !*** ./node_modules/js-binarypack/lib/bufferbuilder.js ***!\n \\*********************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n var binaryFeatures = {};\n binaryFeatures.useBlobBuilder = function() {\n try {\n new Blob([]);\n return false;\n } catch (e) {\n return true;\n }\n }();\n binaryFeatures.useArrayBufferView = !binaryFeatures.useBlobBuilder && function() {\n try {\n return new Blob([\n new Uint8Array([])\n ]).size === 0;\n } catch (e) {\n return true;\n }\n }();\n module.exports.binaryFeatures = binaryFeatures;\n var BlobBuilder = module.exports.BlobBuilder;\n if (typeof window != 'undefined') {\n BlobBuilder = module.exports.BlobBuilder = window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder || window.BlobBuilder;\n }\n function BufferBuilder() {\n this._pieces = [];\n this._parts = [];\n }\n BufferBuilder.prototype.append = function(data) {\n if (typeof data === 'number') {\n this._pieces.push(data);\n } else {\n this.flush();\n this._parts.push(data);\n }\n };\n BufferBuilder.prototype.flush = function() {\n if (this._pieces.length > 0) {\n var buf = new Uint8Array(this._pieces);\n if (!binaryFeatures.useArrayBufferView) {\n buf = buf.buffer;\n }\n this._parts.push(buf);\n this._pieces = [];\n }\n };\n BufferBuilder.prototype.getBuffer = function() {\n this.flush();\n if (binaryFeatures.useBlobBuilder) {\n var builder = new BlobBuilder();\n for(var i = 0, ii = this._parts.length; i < ii; i++){\n builder.append(this._parts[i]);\n }\n return builder.getBlob();\n } else {\n return new Blob(this._parts);\n }\n };\n module.exports.BufferBuilder = BufferBuilder;\n /***/ },\n /***/ \"./node_modules/ms/index.js\": /*!**********************************!*\\\n !*** ./node_modules/ms/index.js ***!\n \\**********************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n /**\n * Helpers.\n */ var s = 1000;\n var m = s * 60;\n var h = m * 60;\n var d = h * 24;\n var y = d * 365.25;\n /**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */ module.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(val));\n };\n /**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */ function parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch(type){\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n }\n /**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */ function fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n }\n /**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */ function fmtLong(ms) {\n return plural(ms, d, 'day') || plural(ms, h, 'hour') || plural(ms, m, 'minute') || plural(ms, s, 'second') || ms + ' ms';\n }\n /**\n * Pluralization helper.\n */ function plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n }\n /***/ },\n /***/ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\": /*!*********************************************************************!*\\\n !*** ./node_modules/node-libs-browser/node_modules/buffer/index.js ***!\n \\*********************************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */ (function(global) {\n /* eslint-disable no-proto */ var base64 = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\");\n var ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\");\n var isArray = __webpack_require__(/*! isarray */ \"./node_modules/node-libs-browser/node_modules/isarray/index.js\");\n exports.Buffer = Buffer;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n /**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */ Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n /*\n * Export kMaxLength after typed array support is determined.\n */ exports.kMaxLength = kMaxLength();\n function typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n arr.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function() {\n return 42;\n }\n };\n return arr.foo() === 42 && typeof arr.subarray === 'function' && arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n ;\n } catch (e) {\n return false;\n }\n }\n function kMaxLength() {\n return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff;\n }\n function createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n that.length = length;\n }\n return that;\n }\n /**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */ function Buffer(arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length);\n }\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n return allocUnsafe(this, arg);\n }\n return from(this, arg, encodingOrOffset, length);\n }\n Buffer.poolSize = 8192 // not used by this implementation\n ;\n // TODO: Legacy, not needed anymore. Remove in next major version.\n Buffer._augment = function(arr) {\n arr.__proto__ = Buffer.prototype;\n return arr;\n };\n function from(that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number');\n }\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length);\n }\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset);\n }\n return fromObject(that, value);\n }\n /**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/ Buffer.from = function(value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length);\n };\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n });\n }\n }\n function assertSize(size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number');\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative');\n }\n }\n function alloc(that, size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(that, size);\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n return createBuffer(that, size);\n }\n /**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/ Buffer.alloc = function(size, fill, encoding) {\n return alloc(null, size, fill, encoding);\n };\n function allocUnsafe(that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for(var i = 0; i < size; ++i){\n that[i] = 0;\n }\n }\n return that;\n }\n /**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */ Buffer.allocUnsafe = function(size) {\n return allocUnsafe(null, size);\n };\n /**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */ Buffer.allocUnsafeSlow = function(size) {\n return allocUnsafe(null, size);\n };\n function fromString(that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding');\n }\n var length = byteLength1(string, encoding) | 0;\n that = createBuffer(that, length);\n var actual = that.write(string, encoding);\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n return that;\n }\n function fromArrayLike(that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n for(var i = 0; i < length; i += 1){\n that[i] = array[i] & 255;\n }\n return that;\n }\n function fromArrayBuffer(that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n ;\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds');\n }\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n return that;\n }\n function fromObject(that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n if (that.length === 0) {\n return that;\n }\n obj.copy(that, 0, 0, len);\n return that;\n }\n if (obj) {\n if (typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\n return fromArrayLike(that, obj);\n }\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data);\n }\n }\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.');\n }\n function checked(length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer.alloc(+length);\n }\n Buffer.isBuffer = function isBuffer(b) {\n return !!(b != null && b._isBuffer);\n };\n Buffer.compare = function compare(a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers');\n }\n if (a === b) return 0;\n var x = a.length;\n var y = b.length;\n for(var i = 0, len = Math.min(x, y); i < len; ++i){\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n Buffer.isEncoding = function isEncoding(encoding) {\n switch(String(encoding).toLowerCase()){\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true;\n default:\n return false;\n }\n };\n Buffer.concat = function concat(list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n var i;\n if (length === undefined) {\n length = 0;\n for(i = 0; i < list.length; ++i){\n length += list[i].length;\n }\n }\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n for(i = 0; i < list.length; ++i){\n var buf = list[i];\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n return buffer;\n };\n function byteLength1(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== 'string') {\n string = '' + string;\n }\n var len = string.length;\n if (len === 0) return 0;\n // Use a for loop to avoid recursion\n var loweredCase = false;\n for(;;){\n switch(encoding){\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length;\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n case 'hex':\n return len >>> 1;\n case 'base64':\n return base64ToBytes(string).length;\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n ;\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer.byteLength = byteLength1;\n function slowToString(encoding, start, end) {\n var loweredCase = false;\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0;\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return '';\n }\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return '';\n }\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return '';\n }\n if (!encoding) encoding = 'utf8';\n while(true){\n switch(encoding){\n case 'hex':\n return hexSlice(this, start, end);\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end);\n case 'ascii':\n return asciiSlice(this, start, end);\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end);\n case 'base64':\n return base64Slice(this, start, end);\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n }\n // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n // Buffer instances.\n Buffer.prototype._isBuffer = true;\n function swap(b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer.prototype.swap16 = function swap16() {\n var len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n for(var i = 0; i < len; i += 2){\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer.prototype.swap32 = function swap32() {\n var len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\n for(var i = 0; i < len; i += 4){\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer.prototype.swap64 = function swap64() {\n var len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\n for(var i = 0; i < len; i += 8){\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer.prototype.toString = function toString() {\n var length = this.length | 0;\n if (length === 0) return '';\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer');\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n };\n Buffer.prototype.inspect = function inspect() {\n var str = '';\n var max = exports.INSPECT_MAX_BYTES;\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n return '<Buffer ' + str + '>';\n };\n Buffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer');\n }\n if (start === undefined) {\n start = 0;\n }\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n if (thisStart === undefined) {\n thisStart = 0;\n }\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index');\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n for(var i = 0; i < len; ++i){\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n // OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n //\n // Arguments:\n // - buffer - a Buffer to search\n // - val - a string, Buffer, or number\n // - byteOffset - an index into `buffer`; will be clamped to an int32\n // - encoding - an optional encoding, relevant is val is a string\n // - dir - true for indexOf, false for lastIndexOf\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1;\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n byteOffset = +byteOffset // Coerce to Number.\n ;\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1;\n else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;\n else return -1;\n }\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n }\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n ;\n if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [\n val\n ], byteOffset, encoding, dir);\n }\n throw new TypeError('val must be string, number or Buffer');\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n var i3;\n if (dir) {\n var foundIndex = -1;\n for(i3 = byteOffset; i3 < arrLength; i3++){\n if (read(arr, i3) === read(val, foundIndex === -1 ? 0 : i3 - foundIndex)) {\n if (foundIndex === -1) foundIndex = i3;\n if (i3 - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i3 -= i3 - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for(i3 = byteOffset; i3 >= 0; i3--){\n var found = true;\n for(var j = 0; j < valLength; j++){\n if (read(arr, i3 + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n if (found) return i3;\n }\n }\n return -1;\n }\n Buffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n // must be an even number of digits\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string');\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n for(var i = 0; i < length; ++i){\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n }\n function asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n }\n function latin1Write(buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length);\n }\n function base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n }\n function ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n }\n Buffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0;\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0;\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\n }\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds');\n }\n if (!encoding) encoding = 'utf8';\n var loweredCase = false;\n for(;;){\n switch(encoding){\n case 'hex':\n return hexWrite(this, string, offset, length);\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length);\n case 'ascii':\n return asciiWrite(this, string, offset, length);\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length);\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer.prototype.toJSON = function toJSON() {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n }\n function utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n while(i < end){\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n switch(bytesPerSequence){\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F;\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n // the lowest limit is Chrome, with 0x10000 args.\n // We go 1 magnitude less, for safety\n var MAX_ARGUMENTS_LENGTH = 0x1000;\n function decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n ;\n }\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = '';\n var i = 0;\n while(i < len){\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n for(var i = start; i < end; ++i){\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n return ret;\n }\n function latin1Slice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n for(var i = start; i < end; ++i){\n ret += String.fromCharCode(buf[i]);\n }\n return ret;\n }\n function hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n for(var i = start; i < end; ++i){\n out += toHex(buf[i]);\n }\n return out;\n }\n function utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n for(var i = 0; i < bytes.length; i += 2){\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer.prototype.slice = function slice(start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start) end = start;\n var newBuf;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n for(var i = 0; i < sliceLen; ++i){\n newBuf[i] = this[i + start];\n }\n }\n return newBuf;\n };\n /*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */ function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint');\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length');\n }\n Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while(++i < byteLength && (mul *= 0x100)){\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n var val = this[offset + --byteLength];\n var mul = 1;\n while(byteLength > 0 && (mul *= 0x100)){\n val += this[offset + --byteLength] * mul;\n }\n return val;\n };\n Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n };\n Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while(++i < byteLength && (mul *= 0x100)){\n val += this[offset + i] * mul;\n }\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n while(i > 0 && (mul *= 0x100)){\n val += this[offset + --i] * mul;\n }\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n Buffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return this[offset];\n return (0xff - this[offset] + 1) * -1;\n };\n Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | this[offset + 1] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n };\n Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | this[offset] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n };\n Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n };\n Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n };\n Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n };\n Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n };\n function checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds');\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n }\n Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n while(++i < byteLength && (mul *= 0x100)){\n this[offset + i] = value / mul & 0xFF;\n }\n return offset + byteLength;\n };\n Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n while(--i >= 0 && (mul *= 0x100)){\n this[offset + i] = value / mul & 0xFF;\n }\n return offset + byteLength;\n };\n Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = value & 0xff;\n return offset + 1;\n };\n function objectWriteUInt16(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n for(var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i){\n buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8;\n }\n }\n Buffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2;\n };\n Buffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2;\n };\n function objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n for(var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i){\n buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff;\n }\n }\n Buffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4;\n };\n Buffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4;\n };\n Buffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n while(++i < byteLength && (mul *= 0x100)){\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n return offset + byteLength;\n };\n Buffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n while(--i >= 0 && (mul *= 0x100)){\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n return offset + byteLength;\n };\n Buffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = value & 0xff;\n return offset + 1;\n };\n Buffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2;\n };\n Buffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2;\n };\n Buffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4;\n };\n Buffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4;\n };\n function checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n if (offset < 0) throw new RangeError('Index out of range');\n }\n function writeFloat(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n Buffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n // Copy 0 bytes; we're done\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0;\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds');\n if (end < 0) throw new RangeError('sourceEnd out of bounds');\n // Are we oob?\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n var len = end - start;\n var i;\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for(i = len - 1; i >= 0; --i){\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for(i = 0; i < len; ++i){\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart);\n }\n return len;\n };\n // Usage:\n // buffer.fill(number[, offset[, end]])\n // buffer.fill(buffer[, offset[, end]])\n // buffer.fill(string[, offset[, end]][, encoding])\n Buffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n if (code < 256) {\n val = code;\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n }\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index');\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n var i;\n if (typeof val === 'number') {\n for(i = start; i < end; ++i){\n this[i] = val;\n }\n } else {\n var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n for(i = 0; i < end - start; ++i){\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n // HELPER FUNCTIONS\n // ================\n var INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n function base64clean(str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '');\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return '';\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while(str.length % 4 !== 0){\n str = str + '=';\n }\n return str;\n }\n function stringtrim(str) {\n if (str.trim) return str.trim();\n return str.replace(/^\\s+|\\s+$/g, '');\n }\n function toHex(n) {\n if (n < 16) return '0' + n.toString(16);\n return n.toString(16);\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n for(var i = 0; i < length; ++i){\n codePoint = string.charCodeAt(i);\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n }\n // valid lead\n leadSurrogate = codePoint;\n continue;\n }\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n }\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n leadSurrogate = null;\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n var byteArray = [];\n for(var i = 0; i < str.length; ++i){\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n for(var i = 0; i < str.length; ++i){\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n for(var i = 0; i < length; ++i){\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isnan(val) {\n return val !== val // eslint-disable-line no-self-compare\n ;\n }\n /* WEBPACK VAR INJECTION */ }).call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"));\n /***/ },\n /***/ \"./node_modules/node-libs-browser/node_modules/isarray/index.js\": /*!**********************************************************************!*\\\n !*** ./node_modules/node-libs-browser/node_modules/isarray/index.js ***!\n \\**********************************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n var toString = {}.toString;\n module.exports = Array.isArray || function(arr) {\n return toString.call(arr) == '[object Array]';\n };\n /***/ },\n /***/ \"./node_modules/object-sizeof/byte_size.js\": /*!*************************************************!*\\\n !*** ./node_modules/object-sizeof/byte_size.js ***!\n \\*************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n /**\n * Byte sizes are taken from ECMAScript Language Specification\n * http://www.ecma-international.org/ecma-262/5.1/\n * http://bclary.com/2004/11/07/#a-4.3.16\n */ module.exports = {\n STRING: 2,\n BOOLEAN: 4,\n NUMBER: 8\n };\n /***/ },\n /***/ \"./node_modules/object-sizeof/index.js\": /*!*********************************************!*\\\n !*** ./node_modules/object-sizeof/index.js ***!\n \\*********************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n \"use strict\";\n // Copyright 2014 Andrei Karpushonak\n var ECMA_SIZES = __webpack_require__(/*! ./byte_size */ \"./node_modules/object-sizeof/byte_size.js\");\n var Buffer = __webpack_require__(/*! buffer/ */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer;\n function allProperties(obj) {\n const stringProperties = [];\n for(var prop in obj){\n stringProperties.push(prop);\n }\n if (Object.getOwnPropertySymbols) {\n var symbolProperties = Object.getOwnPropertySymbols(obj);\n Array.prototype.push.apply(stringProperties, symbolProperties);\n }\n return stringProperties;\n }\n function sizeOfObject(seen, object) {\n if (object == null) {\n return 0;\n }\n var bytes = 0;\n var properties = allProperties(object);\n for(var i = 0; i < properties.length; i++){\n var key = properties[i];\n // Do not recalculate circular references\n if (typeof object[key] === 'object' && object[key] !== null) {\n if (seen.has(object[key])) {\n continue;\n }\n seen.add(object[key]);\n }\n bytes += getCalculator(seen)(key);\n try {\n bytes += getCalculator(seen)(object[key]);\n } catch (ex) {\n if (ex instanceof RangeError) {\n // circular reference detected, final result might be incorrect\n // let's be nice and not throw an exception\n bytes = 0;\n }\n }\n }\n return bytes;\n }\n function getCalculator(seen) {\n return function calculator(object) {\n if (Buffer.isBuffer(object)) {\n return object.length;\n }\n var objectType = typeof object;\n switch(objectType){\n case 'string':\n return object.length * ECMA_SIZES.STRING;\n case 'boolean':\n return ECMA_SIZES.BOOLEAN;\n case 'number':\n return ECMA_SIZES.NUMBER;\n case 'symbol':\n const isGlobalSymbol = Symbol.keyFor && Symbol.keyFor(object);\n return isGlobalSymbol ? Symbol.keyFor(object).length * ECMA_SIZES.STRING : (object.toString().length - 8) * ECMA_SIZES.STRING;\n case 'object':\n if (Array.isArray(object)) {\n return object.map(getCalculator(seen)).reduce(function(acc, curr) {\n return acc + curr;\n }, 0);\n } else {\n return sizeOfObject(seen, object);\n }\n default:\n return 0;\n }\n };\n }\n /**\n * Main module's entry point\n * Calculates Bytes for the provided parameter\n * @param object - handles object/string/boolean/buffer\n * @returns {*}\n */ function sizeof(object) {\n return getCalculator(new WeakSet())(object);\n }\n module.exports = sizeof;\n /***/ },\n /***/ \"./node_modules/parseqs/index.js\": /*!***************************************!*\\\n !*** ./node_modules/parseqs/index.js ***!\n \\***************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n /**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */ exports.encode = function(obj) {\n var str = '';\n for(var i in obj){\n if (obj.hasOwnProperty(i)) {\n if (str.length) str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n };\n /**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */ exports.decode = function(qs) {\n var qry = {};\n var pairs = qs.split('&');\n for(var i = 0, l = pairs.length; i < l; i++){\n var pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n };\n /***/ },\n /***/ \"./node_modules/parseuri/index.js\": /*!****************************************!*\\\n !*** ./node_modules/parseuri/index.js ***!\n \\****************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n /**\n * Parses an URI\n *\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\n * @api private\n */ var re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\n var parts = [\n 'source',\n 'protocol',\n 'authority',\n 'userInfo',\n 'user',\n 'password',\n 'host',\n 'port',\n 'relative',\n 'path',\n 'directory',\n 'file',\n 'query',\n 'anchor'\n ];\n module.exports = function parseuri(str) {\n var src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n var m = re.exec(str || ''), uri = {}, i = 14;\n while(i--){\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n };\n function pathNames(obj, path) {\n var regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.substr(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.substr(path.length - 1, 1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n }\n function queryKey(uri, query) {\n var data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n }\n /***/ },\n /***/ \"./node_modules/process/browser.js\": /*!*****************************************!*\\\n !*** ./node_modules/process/browser.js ***!\n \\*****************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n // shim for using process in browser\n var process = module.exports = {};\n // cached from whatever global is present so that test runners that stub it\n // don't break things. But we need to wrap it in a try catch in case it is\n // wrapped in strict mode code which doesn't define any globals. It's inside a\n // function because try/catches deoptimize in certain engines.\n var cachedSetTimeout;\n var cachedClearTimeout;\n function defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n }\n function defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n }\n (function() {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e3) {\n cachedClearTimeout = defaultClearTimeout;\n }\n })();\n function runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n }\n function runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n }\n var queue = [];\n var draining = false;\n var currentQueue;\n var queueIndex = -1;\n function cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n }\n function drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n while(len){\n currentQueue = queue;\n queue = [];\n while(++queueIndex < len){\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n }\n process.nextTick = function(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for(var i = 1; i < arguments.length; i++){\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n };\n // v8 likes predictible objects\n function Item(fun, array) {\n this.fun = fun;\n this.array = array;\n }\n Item.prototype.run = function() {\n this.fun.apply(null, this.array);\n };\n process.title = 'browser';\n process.browser = true;\n process.env = {};\n process.argv = [];\n process.version = ''; // empty string to avoid regexp issues\n process.versions = {};\n function noop() {}\n process.on = noop;\n process.addListener = noop;\n process.once = noop;\n process.off = noop;\n process.removeListener = noop;\n process.removeAllListeners = noop;\n process.emit = noop;\n process.prependListener = noop;\n process.prependOnceListener = noop;\n process.listeners = function(name) {\n return [];\n };\n process.binding = function(name) {\n throw new Error('process.binding is not supported');\n };\n process.cwd = function() {\n return '/';\n };\n process.chdir = function(dir) {\n throw new Error('process.chdir is not supported');\n };\n process.umask = function() {\n return 0;\n };\n /***/ },\n /***/ \"./node_modules/query-string/index.js\": /*!********************************************!*\\\n !*** ./node_modules/query-string/index.js ***!\n \\********************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n \"use strict\";\n const strictUriEncode = __webpack_require__(/*! strict-uri-encode */ \"./node_modules/strict-uri-encode/index.js\");\n const decodeComponent = __webpack_require__(/*! decode-uri-component */ \"./node_modules/decode-uri-component/index.js\");\n const splitOnFirst = __webpack_require__(/*! split-on-first */ \"./node_modules/split-on-first/index.js\");\n const filterObject = __webpack_require__(/*! filter-obj */ \"./node_modules/filter-obj/index.js\");\n const isNullOrUndefined = (value)=>value === null || value === undefined\n ;\n function encoderForArrayFormat(options) {\n switch(options.arrayFormat){\n case 'index':\n return (key)=>(result, value)=>{\n const index = result.length;\n if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {\n return result;\n }\n if (value === null) {\n return [\n ...result,\n [\n encode(key, options),\n '[',\n index,\n ']'\n ].join('')\n ];\n }\n return [\n ...result,\n [\n encode(key, options),\n '[',\n encode(index, options),\n ']=',\n encode(value, options)\n ].join('')\n ];\n }\n ;\n case 'bracket':\n return (key)=>(result, value)=>{\n if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {\n return result;\n }\n if (value === null) {\n return [\n ...result,\n [\n encode(key, options),\n '[]'\n ].join('')\n ];\n }\n return [\n ...result,\n [\n encode(key, options),\n '[]=',\n encode(value, options)\n ].join('')\n ];\n }\n ;\n case 'comma':\n case 'separator':\n return (key)=>(result, value)=>{\n if (value === null || value === undefined || value.length === 0) {\n return result;\n }\n if (result.length === 0) {\n return [\n [\n encode(key, options),\n '=',\n encode(value, options)\n ].join('')\n ];\n }\n return [\n [\n result,\n encode(value, options)\n ].join(options.arrayFormatSeparator)\n ];\n }\n ;\n default:\n return (key)=>(result, value)=>{\n if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {\n return result;\n }\n if (value === null) {\n return [\n ...result,\n encode(key, options)\n ];\n }\n return [\n ...result,\n [\n encode(key, options),\n '=',\n encode(value, options)\n ].join('')\n ];\n }\n ;\n }\n }\n function parserForArrayFormat(options) {\n let result;\n switch(options.arrayFormat){\n case 'index':\n return (key, value, accumulator)=>{\n result = /\\[(\\d*)\\]$/.exec(key);\n key = key.replace(/\\[\\d*\\]$/, '');\n if (!result) {\n accumulator[key] = value;\n return;\n }\n if (accumulator[key] === undefined) {\n accumulator[key] = {};\n }\n accumulator[key][result[1]] = value;\n };\n case 'bracket':\n return (key, value, accumulator)=>{\n result = /(\\[\\])$/.exec(key);\n key = key.replace(/\\[\\]$/, '');\n if (!result) {\n accumulator[key] = value;\n return;\n }\n if (accumulator[key] === undefined) {\n accumulator[key] = [\n value\n ];\n return;\n }\n accumulator[key] = [].concat(accumulator[key], value);\n };\n case 'comma':\n case 'separator':\n return (key, value, accumulator)=>{\n const isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n const isEncodedArray = typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator);\n value = isEncodedArray ? decode(value, options) : value;\n const newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map((item)=>decode(item, options)\n ) : value === null ? value : decode(value, options);\n accumulator[key] = newValue;\n };\n default:\n return (key, value, accumulator)=>{\n if (accumulator[key] === undefined) {\n accumulator[key] = value;\n return;\n }\n accumulator[key] = [].concat(accumulator[key], value);\n };\n }\n }\n function validateArrayFormatSeparator(value) {\n if (typeof value !== 'string' || value.length !== 1) {\n throw new TypeError('arrayFormatSeparator must be single character string');\n }\n }\n function encode(value, options) {\n if (options.encode) {\n return options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n }\n return value;\n }\n function decode(value, options) {\n if (options.decode) {\n return decodeComponent(value);\n }\n return value;\n }\n function keysSorter(input) {\n if (Array.isArray(input)) {\n return input.sort();\n }\n if (typeof input === 'object') {\n return keysSorter(Object.keys(input)).sort((a, b)=>Number(a) - Number(b)\n ).map((key)=>input[key]\n );\n }\n return input;\n }\n function removeHash(input) {\n const hashStart = input.indexOf('#');\n if (hashStart !== -1) {\n input = input.slice(0, hashStart);\n }\n return input;\n }\n function getHash(url) {\n let hash = '';\n const hashStart = url.indexOf('#');\n if (hashStart !== -1) {\n hash = url.slice(hashStart);\n }\n return hash;\n }\n function extract(input) {\n input = removeHash(input);\n const queryStart = input.indexOf('?');\n if (queryStart === -1) {\n return '';\n }\n return input.slice(queryStart + 1);\n }\n function parseValue(value, options) {\n if (options.parseNumbers && !Number.isNaN(Number(value)) && typeof value === 'string' && value.trim() !== '') {\n value = Number(value);\n } else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n value = value.toLowerCase() === 'true';\n }\n return value;\n }\n function parse(query, options) {\n options = Object.assign({\n decode: true,\n sort: true,\n arrayFormat: 'none',\n arrayFormatSeparator: ',',\n parseNumbers: false,\n parseBooleans: false\n }, options);\n validateArrayFormatSeparator(options.arrayFormatSeparator);\n const formatter = parserForArrayFormat(options);\n // Create an object with no prototype\n const ret = Object.create(null);\n if (typeof query !== 'string') {\n return ret;\n }\n query = query.trim().replace(/^[?#&]/, '');\n if (!query) {\n return ret;\n }\n for (const param of query.split('&')){\n if (param === '') {\n continue;\n }\n let [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n // Missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n value = value === undefined ? null : [\n 'comma',\n 'separator'\n ].includes(options.arrayFormat) ? value : decode(value, options);\n formatter(decode(key, options), value, ret);\n }\n for (const key2 of Object.keys(ret)){\n const value = ret[key2];\n if (typeof value === 'object' && value !== null) {\n for (const k of Object.keys(value)){\n value[k] = parseValue(value[k], options);\n }\n } else {\n ret[key2] = parseValue(value, options);\n }\n }\n if (options.sort === false) {\n return ret;\n }\n return (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key)=>{\n const value = ret[key];\n if (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n // Sort object keys, not values\n result[key] = keysSorter(value);\n } else {\n result[key] = value;\n }\n return result;\n }, Object.create(null));\n }\n exports.extract = extract;\n exports.parse = parse;\n exports.stringify = (object, options)=>{\n if (!object) {\n return '';\n }\n options = Object.assign({\n encode: true,\n strict: true,\n arrayFormat: 'none',\n arrayFormatSeparator: ','\n }, options);\n validateArrayFormatSeparator(options.arrayFormatSeparator);\n const shouldFilter = (key)=>options.skipNull && isNullOrUndefined(object[key]) || options.skipEmptyString && object[key] === ''\n ;\n const formatter = encoderForArrayFormat(options);\n const objectCopy = {};\n for (const key3 of Object.keys(object)){\n if (!shouldFilter(key3)) {\n objectCopy[key3] = object[key3];\n }\n }\n const keys = Object.keys(objectCopy);\n if (options.sort !== false) {\n keys.sort(options.sort);\n }\n return keys.map((key)=>{\n const value = object[key];\n if (value === undefined) {\n return '';\n }\n if (value === null) {\n return encode(key, options);\n }\n if (Array.isArray(value)) {\n return value.reduce(formatter(key), []).join('&');\n }\n return encode(key, options) + '=' + encode(value, options);\n }).filter((x)=>x.length > 0\n ).join('&');\n };\n exports.parseUrl = (url, options)=>{\n options = Object.assign({\n decode: true\n }, options);\n const [url_, hash] = splitOnFirst(url, '#');\n return Object.assign({\n url: url_.split('?')[0] || '',\n query: parse(extract(url), options)\n }, options && options.parseFragmentIdentifier && hash ? {\n fragmentIdentifier: decode(hash, options)\n } : {});\n };\n exports.stringifyUrl = (object, options)=>{\n options = Object.assign({\n encode: true,\n strict: true\n }, options);\n const url = removeHash(object.url).split('?')[0] || '';\n const queryFromUrl = exports.extract(object.url);\n const parsedQueryFromUrl = exports.parse(queryFromUrl, {\n sort: false\n });\n const query = Object.assign(parsedQueryFromUrl, object.query);\n let queryString = exports.stringify(query, options);\n if (queryString) {\n queryString = `?${queryString}`;\n }\n let hash = getHash(object.url);\n if (object.fragmentIdentifier) {\n hash = `#${encode(object.fragmentIdentifier, options)}`;\n }\n return `${url}${queryString}${hash}`;\n };\n exports.pick = (input, filter, options)=>{\n options = Object.assign({\n parseFragmentIdentifier: true\n }, options);\n const { url , query , fragmentIdentifier } = exports.parseUrl(input, options);\n return exports.stringifyUrl({\n url,\n query: filterObject(query, filter),\n fragmentIdentifier\n }, options);\n };\n exports.exclude = (input, filter, options)=>{\n const exclusionFilter = Array.isArray(filter) ? (key)=>!filter.includes(key)\n : (key, value)=>!filter(key, value)\n ;\n return exports.pick(input, exclusionFilter, options);\n };\n /***/ },\n /***/ \"./node_modules/sdp-transform/lib/grammar.js\": /*!***************************************************!*\\\n !*** ./node_modules/sdp-transform/lib/grammar.js ***!\n \\***************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n var grammar = module.exports = {\n v: [\n {\n name: 'version',\n reg: /^(\\d*)$/\n }\n ],\n o: [\n {\n // o=- 20518 0 IN IP4 203.0.113.1\n // NB: sessionId will be a String in most cases because it is huge\n name: 'origin',\n reg: /^(\\S*) (\\d*) (\\d*) (\\S*) IP(\\d) (\\S*)/,\n names: [\n 'username',\n 'sessionId',\n 'sessionVersion',\n 'netType',\n 'ipVer',\n 'address'\n ],\n format: '%s %s %d %s IP%d %s'\n }\n ],\n // default parsing of these only (though some of these feel outdated)\n s: [\n {\n name: 'name'\n }\n ],\n i: [\n {\n name: 'description'\n }\n ],\n u: [\n {\n name: 'uri'\n }\n ],\n e: [\n {\n name: 'email'\n }\n ],\n p: [\n {\n name: 'phone'\n }\n ],\n z: [\n {\n name: 'timezones'\n }\n ],\n r: [\n {\n name: 'repeats'\n }\n ],\n // k: [{}], // outdated thing ignored\n t: [\n {\n // t=0 0\n name: 'timing',\n reg: /^(\\d*) (\\d*)/,\n names: [\n 'start',\n 'stop'\n ],\n format: '%d %d'\n }\n ],\n c: [\n {\n // c=IN IP4 10.47.197.26\n name: 'connection',\n reg: /^IN IP(\\d) (\\S*)/,\n names: [\n 'version',\n 'ip'\n ],\n format: 'IN IP%d %s'\n }\n ],\n b: [\n {\n // b=AS:4000\n push: 'bandwidth',\n reg: /^(TIAS|AS|CT|RR|RS):(\\d*)/,\n names: [\n 'type',\n 'limit'\n ],\n format: '%s:%s'\n }\n ],\n m: [\n {\n // m=video 51744 RTP/AVP 126 97 98 34 31\n // NB: special - pushes to session\n // TODO: rtp/fmtp should be filtered by the payloads found here?\n reg: /^(\\w*) (\\d*) ([\\w/]*)(?: (.*))?/,\n names: [\n 'type',\n 'port',\n 'protocol',\n 'payloads'\n ],\n format: '%s %d %s %s'\n }\n ],\n a: [\n {\n // a=rtpmap:110 opus/48000/2\n push: 'rtp',\n reg: /^rtpmap:(\\d*) ([\\w\\-.]*)(?:\\s*\\/(\\d*)(?:\\s*\\/(\\S*))?)?/,\n names: [\n 'payload',\n 'codec',\n 'rate',\n 'encoding'\n ],\n format: function(o) {\n return o.encoding ? 'rtpmap:%d %s/%s/%s' : o.rate ? 'rtpmap:%d %s/%s' : 'rtpmap:%d %s';\n }\n },\n {\n // a=fmtp:108 profile-level-id=24;object=23;bitrate=64000\n // a=fmtp:111 minptime=10; useinbandfec=1\n push: 'fmtp',\n reg: /^fmtp:(\\d*) ([\\S| ]*)/,\n names: [\n 'payload',\n 'config'\n ],\n format: 'fmtp:%d %s'\n },\n {\n // a=control:streamid=0\n name: 'control',\n reg: /^control:(.*)/,\n format: 'control:%s'\n },\n {\n // a=rtcp:65179 IN IP4 193.84.77.194\n name: 'rtcp',\n reg: /^rtcp:(\\d*)(?: (\\S*) IP(\\d) (\\S*))?/,\n names: [\n 'port',\n 'netType',\n 'ipVer',\n 'address'\n ],\n format: function(o) {\n return o.address != null ? 'rtcp:%d %s IP%d %s' : 'rtcp:%d';\n }\n },\n {\n // a=rtcp-fb:98 trr-int 100\n push: 'rtcpFbTrrInt',\n reg: /^rtcp-fb:(\\*|\\d*) trr-int (\\d*)/,\n names: [\n 'payload',\n 'value'\n ],\n format: 'rtcp-fb:%s trr-int %d'\n },\n {\n // a=rtcp-fb:98 nack rpsi\n push: 'rtcpFb',\n reg: /^rtcp-fb:(\\*|\\d*) ([\\w-_]*)(?: ([\\w-_]*))?/,\n names: [\n 'payload',\n 'type',\n 'subtype'\n ],\n format: function(o) {\n return o.subtype != null ? 'rtcp-fb:%s %s %s' : 'rtcp-fb:%s %s';\n }\n },\n {\n // a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\n // a=extmap:1/recvonly URI-gps-string\n // a=extmap:3 urn:ietf:params:rtp-hdrext:encrypt urn:ietf:params:rtp-hdrext:smpte-tc 25@600/24\n push: 'ext',\n reg: /^extmap:(\\d+)(?:\\/(\\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\\S*)(?: (\\S*))?/,\n names: [\n 'value',\n 'direction',\n 'encrypt-uri',\n 'uri',\n 'config'\n ],\n format: function(o) {\n return 'extmap:%d' + (o.direction ? '/%s' : '%v') + (o['encrypt-uri'] ? ' %s' : '%v') + ' %s' + (o.config ? ' %s' : '');\n }\n },\n {\n // a=extmap-allow-mixed\n name: 'extmapAllowMixed',\n reg: /^(extmap-allow-mixed)/\n },\n {\n // a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:PS1uQCVeeCFCanVmcjkpPywjNWhcYD0mXXtxaVBR|2^20|1:32\n push: 'crypto',\n reg: /^crypto:(\\d*) ([\\w_]*) (\\S*)(?: (\\S*))?/,\n names: [\n 'id',\n 'suite',\n 'config',\n 'sessionConfig'\n ],\n format: function(o) {\n return o.sessionConfig != null ? 'crypto:%d %s %s %s' : 'crypto:%d %s %s';\n }\n },\n {\n // a=setup:actpass\n name: 'setup',\n reg: /^setup:(\\w*)/,\n format: 'setup:%s'\n },\n {\n // a=connection:new\n name: 'connectionType',\n reg: /^connection:(new|existing)/,\n format: 'connection:%s'\n },\n {\n // a=mid:1\n name: 'mid',\n reg: /^mid:([^\\s]*)/,\n format: 'mid:%s'\n },\n {\n // a=msid:0c8b064d-d807-43b4-b434-f92a889d8587 98178685-d409-46e0-8e16-7ef0db0db64a\n name: 'msid',\n reg: /^msid:(.*)/,\n format: 'msid:%s'\n },\n {\n // a=ptime:20\n name: 'ptime',\n reg: /^ptime:(\\d*(?:\\.\\d*)*)/,\n format: 'ptime:%d'\n },\n {\n // a=maxptime:60\n name: 'maxptime',\n reg: /^maxptime:(\\d*(?:\\.\\d*)*)/,\n format: 'maxptime:%d'\n },\n {\n // a=sendrecv\n name: 'direction',\n reg: /^(sendrecv|recvonly|sendonly|inactive)/\n },\n {\n // a=ice-lite\n name: 'icelite',\n reg: /^(ice-lite)/\n },\n {\n // a=ice-ufrag:F7gI\n name: 'iceUfrag',\n reg: /^ice-ufrag:(\\S*)/,\n format: 'ice-ufrag:%s'\n },\n {\n // a=ice-pwd:x9cml/YzichV2+XlhiMu8g\n name: 'icePwd',\n reg: /^ice-pwd:(\\S*)/,\n format: 'ice-pwd:%s'\n },\n {\n // a=fingerprint:SHA-1 00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33\n name: 'fingerprint',\n reg: /^fingerprint:(\\S*) (\\S*)/,\n names: [\n 'type',\n 'hash'\n ],\n format: 'fingerprint:%s %s'\n },\n {\n // a=candidate:0 1 UDP 2113667327 203.0.113.1 54400 typ host\n // a=candidate:1162875081 1 udp 2113937151 192.168.34.75 60017 typ host generation 0 network-id 3 network-cost 10\n // a=candidate:3289912957 2 udp 1845501695 193.84.77.194 60017 typ srflx raddr 192.168.34.75 rport 60017 generation 0 network-id 3 network-cost 10\n // a=candidate:229815620 1 tcp 1518280447 192.168.150.19 60017 typ host tcptype active generation 0 network-id 3 network-cost 10\n // a=candidate:3289912957 2 tcp 1845501695 193.84.77.194 60017 typ srflx raddr 192.168.34.75 rport 60017 tcptype passive generation 0 network-id 3 network-cost 10\n push: 'candidates',\n reg: /^candidate:(\\S*) (\\d*) (\\S*) (\\d*) (\\S*) (\\d*) typ (\\S*)(?: raddr (\\S*) rport (\\d*))?(?: tcptype (\\S*))?(?: generation (\\d*))?(?: network-id (\\d*))?(?: network-cost (\\d*))?/,\n names: [\n 'foundation',\n 'component',\n 'transport',\n 'priority',\n 'ip',\n 'port',\n 'type',\n 'raddr',\n 'rport',\n 'tcptype',\n 'generation',\n 'network-id',\n 'network-cost'\n ],\n format: function(o) {\n var str = 'candidate:%s %d %s %d %s %d typ %s';\n str += o.raddr != null ? ' raddr %s rport %d' : '%v%v';\n // NB: candidate has three optional chunks, so %void middles one if it's missing\n str += o.tcptype != null ? ' tcptype %s' : '%v';\n if (o.generation != null) {\n str += ' generation %d';\n }\n str += o['network-id'] != null ? ' network-id %d' : '%v';\n str += o['network-cost'] != null ? ' network-cost %d' : '%v';\n return str;\n }\n },\n {\n // a=end-of-candidates (keep after the candidates line for readability)\n name: 'endOfCandidates',\n reg: /^(end-of-candidates)/\n },\n {\n // a=remote-candidates:1 203.0.113.1 54400 2 203.0.113.1 54401 ...\n name: 'remoteCandidates',\n reg: /^remote-candidates:(.*)/,\n format: 'remote-candidates:%s'\n },\n {\n // a=ice-options:google-ice\n name: 'iceOptions',\n reg: /^ice-options:(\\S*)/,\n format: 'ice-options:%s'\n },\n {\n // a=ssrc:2566107569 cname:t9YU8M1UxTF8Y1A1\n push: 'ssrcs',\n reg: /^ssrc:(\\d*) ([\\w_-]*)(?::(.*))?/,\n names: [\n 'id',\n 'attribute',\n 'value'\n ],\n format: function(o) {\n var str = 'ssrc:%d';\n if (o.attribute != null) {\n str += ' %s';\n if (o.value != null) {\n str += ':%s';\n }\n }\n return str;\n }\n },\n {\n // a=ssrc-group:FEC 1 2\n // a=ssrc-group:FEC-FR 3004364195 1080772241\n push: 'ssrcGroups',\n // token-char = %x21 / %x23-27 / %x2A-2B / %x2D-2E / %x30-39 / %x41-5A / %x5E-7E\n reg: /^ssrc-group:([\\x21\\x23\\x24\\x25\\x26\\x27\\x2A\\x2B\\x2D\\x2E\\w]*) (.*)/,\n names: [\n 'semantics',\n 'ssrcs'\n ],\n format: 'ssrc-group:%s %s'\n },\n {\n // a=msid-semantic: WMS Jvlam5X3SX1OP6pn20zWogvaKJz5Hjf9OnlV\n name: 'msidSemantic',\n reg: /^msid-semantic:\\s?(\\w*) (\\S*)/,\n names: [\n 'semantic',\n 'token'\n ],\n format: 'msid-semantic: %s %s' // space after ':' is not accidental\n },\n {\n // a=group:BUNDLE audio video\n push: 'groups',\n reg: /^group:(\\w*) (.*)/,\n names: [\n 'type',\n 'mids'\n ],\n format: 'group:%s %s'\n },\n {\n // a=rtcp-mux\n name: 'rtcpMux',\n reg: /^(rtcp-mux)/\n },\n {\n // a=rtcp-rsize\n name: 'rtcpRsize',\n reg: /^(rtcp-rsize)/\n },\n {\n // a=sctpmap:5000 webrtc-datachannel 1024\n name: 'sctpmap',\n reg: /^sctpmap:([\\w_/]*) (\\S*)(?: (\\S*))?/,\n names: [\n 'sctpmapNumber',\n 'app',\n 'maxMessageSize'\n ],\n format: function(o) {\n return o.maxMessageSize != null ? 'sctpmap:%s %s %s' : 'sctpmap:%s %s';\n }\n },\n {\n // a=x-google-flag:conference\n name: 'xGoogleFlag',\n reg: /^x-google-flag:([^\\s]*)/,\n format: 'x-google-flag:%s'\n },\n {\n // a=rid:1 send max-width=1280;max-height=720;max-fps=30;depend=0\n push: 'rids',\n reg: /^rid:([\\d\\w]+) (\\w+)(?: ([\\S| ]*))?/,\n names: [\n 'id',\n 'direction',\n 'params'\n ],\n format: function(o) {\n return o.params ? 'rid:%s %s %s' : 'rid:%s %s';\n }\n },\n {\n // a=imageattr:97 send [x=800,y=640,sar=1.1,q=0.6] [x=480,y=320] recv [x=330,y=250]\n // a=imageattr:* send [x=800,y=640] recv *\n // a=imageattr:100 recv [x=320,y=240]\n push: 'imageattrs',\n reg: new RegExp(// a=imageattr:97\n '^imageattr:(\\\\d+|\\\\*)' + // send [x=800,y=640,sar=1.1,q=0.6] [x=480,y=320]\n '[\\\\s\\\\t]+(send|recv)[\\\\s\\\\t]+(\\\\*|\\\\[\\\\S+\\\\](?:[\\\\s\\\\t]+\\\\[\\\\S+\\\\])*)' + // recv [x=330,y=250]\n '(?:[\\\\s\\\\t]+(recv|send)[\\\\s\\\\t]+(\\\\*|\\\\[\\\\S+\\\\](?:[\\\\s\\\\t]+\\\\[\\\\S+\\\\])*))?'),\n names: [\n 'pt',\n 'dir1',\n 'attrs1',\n 'dir2',\n 'attrs2'\n ],\n format: function(o) {\n return 'imageattr:%s %s %s' + (o.dir2 ? ' %s %s' : '');\n }\n },\n {\n // a=simulcast:send 1,2,3;~4,~5 recv 6;~7,~8\n // a=simulcast:recv 1;4,5 send 6;7\n name: 'simulcast',\n reg: new RegExp(// a=simulcast:\n '^simulcast:' + // send 1,2,3;~4,~5\n '(send|recv) ([a-zA-Z0-9\\\\-_~;,]+)' + // space + recv 6;~7,~8\n '(?:\\\\s?(send|recv) ([a-zA-Z0-9\\\\-_~;,]+))?' + // end\n '$'),\n names: [\n 'dir1',\n 'list1',\n 'dir2',\n 'list2'\n ],\n format: function(o) {\n return 'simulcast:%s %s' + (o.dir2 ? ' %s %s' : '');\n }\n },\n {\n // old simulcast draft 03 (implemented by Firefox)\n // https://tools.ietf.org/html/draft-ietf-mmusic-sdp-simulcast-03\n // a=simulcast: recv pt=97;98 send pt=97\n // a=simulcast: send rid=5;6;7 paused=6,7\n name: 'simulcast_03',\n reg: /^simulcast:[\\s\\t]+([\\S+\\s\\t]+)$/,\n names: [\n 'value'\n ],\n format: 'simulcast: %s'\n },\n {\n // a=framerate:25\n // a=framerate:29.97\n name: 'framerate',\n reg: /^framerate:(\\d+(?:$|\\.\\d+))/,\n format: 'framerate:%s'\n },\n {\n // RFC4570\n // a=source-filter: incl IN IP4 239.5.2.31 10.1.15.5\n name: 'sourceFilter',\n reg: /^source-filter: *(excl|incl) (\\S*) (IP4|IP6|\\*) (\\S*) (.*)/,\n names: [\n 'filterMode',\n 'netType',\n 'addressTypes',\n 'destAddress',\n 'srcList'\n ],\n format: 'source-filter: %s %s %s %s %s'\n },\n {\n // a=bundle-only\n name: 'bundleOnly',\n reg: /^(bundle-only)/\n },\n {\n // a=label:1\n name: 'label',\n reg: /^label:(.+)/,\n format: 'label:%s'\n },\n {\n // RFC version 26 for SCTP over DTLS\n // https://tools.ietf.org/html/draft-ietf-mmusic-sctp-sdp-26#section-5\n name: 'sctpPort',\n reg: /^sctp-port:(\\d+)$/,\n format: 'sctp-port:%s'\n },\n {\n // RFC version 26 for SCTP over DTLS\n // https://tools.ietf.org/html/draft-ietf-mmusic-sctp-sdp-26#section-6\n name: 'maxMessageSize',\n reg: /^max-message-size:(\\d+)$/,\n format: 'max-message-size:%s'\n },\n {\n // RFC7273\n // a=ts-refclk:ptp=IEEE1588-2008:39-A7-94-FF-FE-07-CB-D0:37\n push: 'tsRefClocks',\n reg: /^ts-refclk:([^\\s=]*)(?:=(\\S*))?/,\n names: [\n 'clksrc',\n 'clksrcExt'\n ],\n format: function(o) {\n return 'ts-refclk:%s' + (o.clksrcExt != null ? '=%s' : '');\n }\n },\n {\n // RFC7273\n // a=mediaclk:direct=963214424\n name: 'mediaClk',\n reg: /^mediaclk:(?:id=(\\S*))? *([^\\s=]*)(?:=(\\S*))?(?: *rate=(\\d+)\\/(\\d+))?/,\n names: [\n 'id',\n 'mediaClockName',\n 'mediaClockValue',\n 'rateNumerator',\n 'rateDenominator'\n ],\n format: function(o) {\n var str = 'mediaclk:';\n str += o.id != null ? 'id=%s %s' : '%v%s';\n str += o.mediaClockValue != null ? '=%s' : '';\n str += o.rateNumerator != null ? ' rate=%s' : '';\n str += o.rateDenominator != null ? '/%s' : '';\n return str;\n }\n },\n {\n // a=keywds:keywords\n name: 'keywords',\n reg: /^keywds:(.+)$/,\n format: 'keywds:%s'\n },\n {\n // a=content:main\n name: 'content',\n reg: /^content:(.+)/,\n format: 'content:%s'\n },\n // BFCP https://tools.ietf.org/html/rfc4583\n {\n // a=floorctrl:c-s\n name: 'bfcpFloorCtrl',\n reg: /^floorctrl:(c-only|s-only|c-s)/,\n format: 'floorctrl:%s'\n },\n {\n // a=confid:1\n name: 'bfcpConfId',\n reg: /^confid:(\\d+)/,\n format: 'confid:%s'\n },\n {\n // a=userid:1\n name: 'bfcpUserId',\n reg: /^userid:(\\d+)/,\n format: 'userid:%s'\n },\n {\n // a=floorid:1\n name: 'bfcpFloorId',\n reg: /^floorid:(.+) (?:m-stream|mstrm):(.+)/,\n names: [\n 'id',\n 'mStream'\n ],\n format: 'floorid:%s mstrm:%s'\n },\n {\n // any a= that we don't understand is kept verbatim on media.invalid\n push: 'invalid',\n names: [\n 'value'\n ]\n }\n ]\n };\n // set sensible defaults to avoid polluting the grammar with boring details\n Object.keys(grammar).forEach(function(key) {\n var objs = grammar[key];\n objs.forEach(function(obj) {\n if (!obj.reg) {\n obj.reg = /(.*)/;\n }\n if (!obj.format) {\n obj.format = '%s';\n }\n });\n });\n /***/ },\n /***/ \"./node_modules/sdp-transform/lib/index.js\": /*!*************************************************!*\\\n !*** ./node_modules/sdp-transform/lib/index.js ***!\n \\*************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n var parser = __webpack_require__(/*! ./parser */ \"./node_modules/sdp-transform/lib/parser.js\");\n var writer = __webpack_require__(/*! ./writer */ \"./node_modules/sdp-transform/lib/writer.js\");\n exports.write = writer;\n exports.parse = parser.parse;\n exports.parseParams = parser.parseParams;\n exports.parseFmtpConfig = parser.parseFmtpConfig; // Alias of parseParams().\n exports.parsePayloads = parser.parsePayloads;\n exports.parseRemoteCandidates = parser.parseRemoteCandidates;\n exports.parseImageAttributes = parser.parseImageAttributes;\n exports.parseSimulcastStreamList = parser.parseSimulcastStreamList;\n /***/ },\n /***/ \"./node_modules/sdp-transform/lib/parser.js\": /*!**************************************************!*\\\n !*** ./node_modules/sdp-transform/lib/parser.js ***!\n \\**************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n var toIntIfInt = function(v) {\n return String(Number(v)) === v ? Number(v) : v;\n };\n var attachProperties = function(match, location, names, rawName) {\n if (rawName && !names) {\n location[rawName] = toIntIfInt(match[1]);\n } else {\n for(var i = 0; i < names.length; i += 1){\n if (match[i + 1] != null) {\n location[names[i]] = toIntIfInt(match[i + 1]);\n }\n }\n }\n };\n var parseReg = function(obj, location, content) {\n var needsBlank = obj.name && obj.names;\n if (obj.push && !location[obj.push]) {\n location[obj.push] = [];\n } else if (needsBlank && !location[obj.name]) {\n location[obj.name] = {};\n }\n var keyLocation = obj.push ? {} : needsBlank ? location[obj.name] : location; // otherwise, named location or root\n attachProperties(content.match(obj.reg), keyLocation, obj.names, obj.name);\n if (obj.push) {\n location[obj.push].push(keyLocation);\n }\n };\n var grammar = __webpack_require__(/*! ./grammar */ \"./node_modules/sdp-transform/lib/grammar.js\");\n var validLine = RegExp.prototype.test.bind(/^([a-z])=(.*)/);\n exports.parse = function(sdp) {\n var session = {}, media = [], location = session; // points at where properties go under (one of the above)\n // parse lines we understand\n sdp.split(/(\\r\\n|\\r|\\n)/).filter(validLine).forEach(function(l) {\n var type = l[0];\n var content = l.slice(2);\n if (type === 'm') {\n media.push({\n rtp: [],\n fmtp: []\n });\n location = media[media.length - 1]; // point at latest media line\n }\n for(var j = 0; j < (grammar[type] || []).length; j += 1){\n var obj = grammar[type][j];\n if (obj.reg.test(content)) {\n return parseReg(obj, location, content);\n }\n }\n });\n session.media = media; // link it up\n return session;\n };\n var paramReducer = function(acc, expr) {\n var s = expr.split(/=(.+)/, 2);\n if (s.length === 2) {\n acc[s[0]] = toIntIfInt(s[1]);\n } else if (s.length === 1 && expr.length > 1) {\n acc[s[0]] = undefined;\n }\n return acc;\n };\n exports.parseParams = function(str) {\n return str.split(/;\\s?/).reduce(paramReducer, {});\n };\n // For backward compatibility - alias will be removed in 3.0.0\n exports.parseFmtpConfig = exports.parseParams;\n exports.parsePayloads = function(str) {\n return str.toString().split(' ').map(Number);\n };\n exports.parseRemoteCandidates = function(str) {\n var candidates = [];\n var parts = str.split(' ').map(toIntIfInt);\n for(var i = 0; i < parts.length; i += 3){\n candidates.push({\n component: parts[i],\n ip: parts[i + 1],\n port: parts[i + 2]\n });\n }\n return candidates;\n };\n exports.parseImageAttributes = function(str) {\n return str.split(' ').map(function(item) {\n return item.substring(1, item.length - 1).split(',').reduce(paramReducer, {});\n });\n };\n exports.parseSimulcastStreamList = function(str) {\n return str.split(';').map(function(stream) {\n return stream.split(',').map(function(format) {\n var scid, paused = false;\n if (format[0] !== '~') {\n scid = toIntIfInt(format);\n } else {\n scid = toIntIfInt(format.substring(1, format.length));\n paused = true;\n }\n return {\n scid: scid,\n paused: paused\n };\n });\n });\n };\n /***/ },\n /***/ \"./node_modules/sdp-transform/lib/writer.js\": /*!**************************************************!*\\\n !*** ./node_modules/sdp-transform/lib/writer.js ***!\n \\**************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n var grammar = __webpack_require__(/*! ./grammar */ \"./node_modules/sdp-transform/lib/grammar.js\");\n // customized util.format - discards excess arguments and can void middle ones\n var formatRegExp = /%[sdv%]/g;\n var format = function(formatStr) {\n var i = 1;\n var args = arguments;\n var len = args.length;\n return formatStr.replace(formatRegExp, function(x) {\n if (i >= len) {\n return x; // missing argument\n }\n var arg = args[i];\n i += 1;\n switch(x){\n case '%%':\n return '%';\n case '%s':\n return String(arg);\n case '%d':\n return Number(arg);\n case '%v':\n return '';\n }\n });\n // NB: we discard excess arguments - they are typically undefined from makeLine\n };\n var makeLine = function(type, obj, location) {\n var str = obj.format instanceof Function ? obj.format(obj.push ? location : location[obj.name]) : obj.format;\n var args = [\n type + '=' + str\n ];\n if (obj.names) {\n for(var i = 0; i < obj.names.length; i += 1){\n var n = obj.names[i];\n if (obj.name) {\n args.push(location[obj.name][n]);\n } else {\n args.push(location[obj.names[i]]);\n }\n }\n } else {\n args.push(location[obj.name]);\n }\n return format.apply(null, args);\n };\n // RFC specified order\n // TODO: extend this with all the rest\n var defaultOuterOrder = [\n 'v',\n 'o',\n 's',\n 'i',\n 'u',\n 'e',\n 'p',\n 'c',\n 'b',\n 't',\n 'r',\n 'z',\n 'a'\n ];\n var defaultInnerOrder = [\n 'i',\n 'c',\n 'b',\n 'a'\n ];\n module.exports = function(session, opts) {\n opts = opts || {};\n // ensure certain properties exist\n if (session.version == null) {\n session.version = 0; // 'v=0' must be there (only defined version atm)\n }\n if (session.name == null) {\n session.name = ' '; // 's= ' must be there if no meaningful name set\n }\n session.media.forEach(function(mLine) {\n if (mLine.payloads == null) {\n mLine.payloads = '';\n }\n });\n var outerOrder = opts.outerOrder || defaultOuterOrder;\n var innerOrder = opts.innerOrder || defaultInnerOrder;\n var sdp = [];\n // loop through outerOrder for matching properties on session\n outerOrder.forEach(function(type) {\n grammar[type].forEach(function(obj) {\n if (obj.name in session && session[obj.name] != null) {\n sdp.push(makeLine(type, obj, session));\n } else if (obj.push in session && session[obj.push] != null) {\n session[obj.push].forEach(function(el) {\n sdp.push(makeLine(type, obj, el));\n });\n }\n });\n });\n // then for each media line, follow the innerOrder\n session.media.forEach(function(mLine) {\n sdp.push(makeLine('m', grammar.m[0], mLine));\n innerOrder.forEach(function(type) {\n grammar[type].forEach(function(obj) {\n if (obj.name in mLine && mLine[obj.name] != null) {\n sdp.push(makeLine(type, obj, mLine));\n } else if (obj.push in mLine && mLine[obj.push] != null) {\n mLine[obj.push].forEach(function(el) {\n sdp.push(makeLine(type, obj, el));\n });\n }\n });\n });\n });\n return sdp.join('\\r\\n') + '\\r\\n';\n };\n /***/ },\n /***/ \"./node_modules/socket.io-client/lib/index.js\": /*!****************************************************!*\\\n !*** ./node_modules/socket.io-client/lib/index.js ***!\n \\****************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /**\n * Module dependencies.\n */ var url = __webpack_require__(/*! ./url */ \"./node_modules/socket.io-client/lib/url.js\");\n var parser = __webpack_require__(/*! socket.io-parser */ \"./node_modules/socket.io-parser/index.js\");\n var Manager = __webpack_require__(/*! ./manager */ \"./node_modules/socket.io-client/lib/manager.js\");\n var debug = __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('socket.io-client');\n /**\n * Module exports.\n */ module.exports = exports = lookup;\n /**\n * Managers cache.\n */ var cache = exports.managers = {};\n /**\n * Looks up an existing `Manager` for multiplexing.\n * If the user summons:\n *\n * `io('http://localhost/a');`\n * `io('http://localhost/b');`\n *\n * We reuse the existing instance based on same scheme/port/host,\n * and we initialize sockets for each namespace.\n *\n * @api public\n */ function lookup(uri, opts) {\n if (typeof uri === 'object') {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n var parsed = url(uri);\n var source = parsed.source;\n var id = parsed.id;\n var path = parsed.path;\n var sameNamespace = cache[id] && path in cache[id].nsps;\n var newConnection = opts.forceNew || opts['force new connection'] || false === opts.multiplex || sameNamespace;\n var io;\n if (newConnection) {\n debug('ignoring socket cache for %s', source);\n io = Manager(source, opts);\n } else {\n if (!cache[id]) {\n debug('new io instance for %s', source);\n cache[id] = Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.query;\n }\n return io.socket(parsed.path, opts);\n }\n /**\n * Protocol version.\n *\n * @api public\n */ exports.protocol = parser.protocol;\n /**\n * `connect`.\n *\n * @param {String} uri\n * @api public\n */ exports.connect = lookup;\n /**\n * Expose constructors for standalone build.\n *\n * @api public\n */ exports.Manager = __webpack_require__(/*! ./manager */ \"./node_modules/socket.io-client/lib/manager.js\");\n exports.Socket = __webpack_require__(/*! ./socket */ \"./node_modules/socket.io-client/lib/socket.js\");\n /***/ },\n /***/ \"./node_modules/socket.io-client/lib/manager.js\": /*!******************************************************!*\\\n !*** ./node_modules/socket.io-client/lib/manager.js ***!\n \\******************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /**\n * Module dependencies.\n */ var eio = __webpack_require__(/*! engine.io-client */ \"./node_modules/engine.io-client/lib/index.js\");\n var Socket = __webpack_require__(/*! ./socket */ \"./node_modules/socket.io-client/lib/socket.js\");\n var Emitter = __webpack_require__(/*! component-emitter */ \"./node_modules/component-emitter/index.js\");\n var parser = __webpack_require__(/*! socket.io-parser */ \"./node_modules/socket.io-parser/index.js\");\n var on = __webpack_require__(/*! ./on */ \"./node_modules/socket.io-client/lib/on.js\");\n var bind = __webpack_require__(/*! component-bind */ \"./node_modules/component-bind/index.js\");\n var debug = __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('socket.io-client:manager');\n var indexOf = __webpack_require__(/*! indexof */ \"./node_modules/indexof/index.js\");\n var Backoff = __webpack_require__(/*! backo2 */ \"./node_modules/backo2/index.js\");\n /**\n * IE6+ hasOwnProperty\n */ var has = Object.prototype.hasOwnProperty;\n /**\n * Module exports\n */ module.exports = Manager;\n /**\n * `Manager` constructor.\n *\n * @param {String} engine instance or engine uri/opts\n * @param {Object} options\n * @api public\n */ function Manager(uri, opts) {\n if (!(this instanceof Manager)) return new Manager(uri, opts);\n if (uri && 'object' === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || '/socket.io';\n this.nsps = {};\n this.subs = [];\n this.opts = opts;\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor(opts.randomizationFactor || 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor()\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this.readyState = 'closed';\n this.uri = uri;\n this.connecting = [];\n this.lastPing = null;\n this.encoding = false;\n this.packetBuffer = [];\n var _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this.autoConnect = opts.autoConnect !== false;\n if (this.autoConnect) this.open();\n }\n /**\n * Propagate given event to sockets and emit on `this`\n *\n * @api private\n */ Manager.prototype.emitAll = function() {\n this.emit.apply(this, arguments);\n for(var nsp in this.nsps){\n if (has.call(this.nsps, nsp)) {\n this.nsps[nsp].emit.apply(this.nsps[nsp], arguments);\n }\n }\n };\n /**\n * Update `socket.id` of all sockets\n *\n * @api private\n */ Manager.prototype.updateSocketIds = function() {\n for(var nsp in this.nsps){\n if (has.call(this.nsps, nsp)) {\n this.nsps[nsp].id = this.generateId(nsp);\n }\n }\n };\n /**\n * generate `socket.id` for the given `nsp`\n *\n * @param {String} nsp\n * @return {String}\n * @api private\n */ Manager.prototype.generateId = function(nsp) {\n return (nsp === '/' ? '' : nsp + '#') + this.engine.id;\n };\n /**\n * Mix in `Emitter`.\n */ Emitter(Manager.prototype);\n /**\n * Sets the `reconnection` config.\n *\n * @param {Boolean} true/false if it should automatically reconnect\n * @return {Manager} self or value\n * @api public\n */ Manager.prototype.reconnection = function(v) {\n if (!arguments.length) return this._reconnection;\n this._reconnection = !!v;\n return this;\n };\n /**\n * Sets the reconnection attempts config.\n *\n * @param {Number} max reconnection attempts before giving up\n * @return {Manager} self or value\n * @api public\n */ Manager.prototype.reconnectionAttempts = function(v) {\n if (!arguments.length) return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n };\n /**\n * Sets the delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */ Manager.prototype.reconnectionDelay = function(v) {\n if (!arguments.length) return this._reconnectionDelay;\n this._reconnectionDelay = v;\n this.backoff && this.backoff.setMin(v);\n return this;\n };\n Manager.prototype.randomizationFactor = function(v) {\n if (!arguments.length) return this._randomizationFactor;\n this._randomizationFactor = v;\n this.backoff && this.backoff.setJitter(v);\n return this;\n };\n /**\n * Sets the maximum delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */ Manager.prototype.reconnectionDelayMax = function(v) {\n if (!arguments.length) return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n this.backoff && this.backoff.setMax(v);\n return this;\n };\n /**\n * Sets the connection timeout. `false` to disable\n *\n * @return {Manager} self or value\n * @api public\n */ Manager.prototype.timeout = function(v) {\n if (!arguments.length) return this._timeout;\n this._timeout = v;\n return this;\n };\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @api private\n */ Manager.prototype.maybeReconnectOnOpen = function() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n };\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} optional, callback\n * @return {Manager} self\n * @api public\n */ Manager.prototype.open = Manager.prototype.connect = function(fn, opts) {\n debug('readyState %s', this.readyState);\n if (~this.readyState.indexOf('open')) return this;\n debug('opening %s', this.uri);\n this.engine = eio(this.uri, this.opts);\n var socket = this.engine;\n var self = this;\n this.readyState = 'opening';\n this.skipReconnect = false;\n // emit `open`\n var openSub = on(socket, 'open', function() {\n self.onopen();\n fn && fn();\n });\n // emit `connect_error`\n var errorSub = on(socket, 'error', function(data) {\n debug('connect_error');\n self.cleanup();\n self.readyState = 'closed';\n self.emitAll('connect_error', data);\n if (fn) {\n var err = new Error('Connection error');\n err.data = data;\n fn(err);\n } else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n // emit `connect_timeout`\n if (false !== this._timeout) {\n var timeout = this._timeout;\n debug('connect attempt will timeout after %d', timeout);\n if (timeout === 0) {\n openSub.destroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n var timer = setTimeout(function() {\n debug('connect attempt timed out after %d', timeout);\n openSub.destroy();\n socket.close();\n socket.emit('error', 'timeout');\n self.emitAll('connect_timeout', timeout);\n }, timeout);\n this.subs.push({\n destroy: function() {\n clearTimeout(timer);\n }\n });\n }\n this.subs.push(openSub);\n this.subs.push(errorSub);\n return this;\n };\n /**\n * Called upon transport open.\n *\n * @api private\n */ Manager.prototype.onopen = function() {\n debug('open');\n // clear old subs\n this.cleanup();\n // mark as open\n this.readyState = 'open';\n this.emit('open');\n // add new subs\n var socket = this.engine;\n this.subs.push(on(socket, 'data', bind(this, 'ondata')));\n this.subs.push(on(socket, 'ping', bind(this, 'onping')));\n this.subs.push(on(socket, 'pong', bind(this, 'onpong')));\n this.subs.push(on(socket, 'error', bind(this, 'onerror')));\n this.subs.push(on(socket, 'close', bind(this, 'onclose')));\n this.subs.push(on(this.decoder, 'decoded', bind(this, 'ondecoded')));\n };\n /**\n * Called upon a ping.\n *\n * @api private\n */ Manager.prototype.onping = function() {\n this.lastPing = new Date();\n this.emitAll('ping');\n };\n /**\n * Called upon a packet.\n *\n * @api private\n */ Manager.prototype.onpong = function() {\n this.emitAll('pong', new Date() - this.lastPing);\n };\n /**\n * Called with data.\n *\n * @api private\n */ Manager.prototype.ondata = function(data) {\n this.decoder.add(data);\n };\n /**\n * Called when parser fully decodes a packet.\n *\n * @api private\n */ Manager.prototype.ondecoded = function(packet) {\n this.emit('packet', packet);\n };\n /**\n * Called upon socket error.\n *\n * @api private\n */ Manager.prototype.onerror = function(err) {\n debug('error', err);\n this.emitAll('error', err);\n };\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @api public\n */ Manager.prototype.socket = function(nsp, opts) {\n var socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n var self = this;\n socket.on('connecting', onConnecting);\n socket.on('connect', function() {\n socket.id = self.generateId(nsp);\n });\n if (this.autoConnect) {\n // manually call here since connecting event is fired before listening\n onConnecting();\n }\n }\n function onConnecting() {\n if (!~indexOf(self.connecting, socket)) {\n self.connecting.push(socket);\n }\n }\n return socket;\n };\n /**\n * Called upon a socket close.\n *\n * @param {Socket} socket\n */ Manager.prototype.destroy = function(socket) {\n var index = indexOf(this.connecting, socket);\n if (~index) this.connecting.splice(index, 1);\n if (this.connecting.length) return;\n this.close();\n };\n /**\n * Writes a packet.\n *\n * @param {Object} packet\n * @api private\n */ Manager.prototype.packet = function(packet) {\n debug('writing packet %j', packet);\n var self = this;\n if (packet.query && packet.type === 0) packet.nsp += '?' + packet.query;\n if (!self.encoding) {\n // encode, then write to engine with result\n self.encoding = true;\n this.encoder.encode(packet, function(encodedPackets) {\n for(var i = 0; i < encodedPackets.length; i++){\n self.engine.write(encodedPackets[i], packet.options);\n }\n self.encoding = false;\n self.processPacketQueue();\n });\n } else {\n self.packetBuffer.push(packet);\n }\n };\n /**\n * If packet buffer is non-empty, begins encoding the\n * next packet in line.\n *\n * @api private\n */ Manager.prototype.processPacketQueue = function() {\n if (this.packetBuffer.length > 0 && !this.encoding) {\n var pack = this.packetBuffer.shift();\n this.packet(pack);\n }\n };\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @api private\n */ Manager.prototype.cleanup = function() {\n debug('cleanup');\n var subsLength = this.subs.length;\n for(var i = 0; i < subsLength; i++){\n var sub = this.subs.shift();\n sub.destroy();\n }\n this.packetBuffer = [];\n this.encoding = false;\n this.lastPing = null;\n this.decoder.destroy();\n };\n /**\n * Close the current socket.\n *\n * @api private\n */ Manager.prototype.close = Manager.prototype.disconnect = function() {\n debug('disconnect');\n this.skipReconnect = true;\n this.reconnecting = false;\n if ('opening' === this.readyState) {\n // `onclose` will not fire because\n // an open event never happened\n this.cleanup();\n }\n this.backoff.reset();\n this.readyState = 'closed';\n if (this.engine) this.engine.close();\n };\n /**\n * Called upon engine close.\n *\n * @api private\n */ Manager.prototype.onclose = function(reason) {\n debug('onclose');\n this.cleanup();\n this.backoff.reset();\n this.readyState = 'closed';\n this.emit('close', reason);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n };\n /**\n * Attempt a reconnection.\n *\n * @api private\n */ Manager.prototype.reconnect = function() {\n if (this.reconnecting || this.skipReconnect) return this;\n var self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n debug('reconnect failed');\n this.backoff.reset();\n this.emitAll('reconnect_failed');\n this.reconnecting = false;\n } else {\n var delay = this.backoff.duration();\n debug('will wait %dms before reconnect attempt', delay);\n this.reconnecting = true;\n var timer = setTimeout(function() {\n if (self.skipReconnect) return;\n debug('attempting reconnect');\n self.emitAll('reconnect_attempt', self.backoff.attempts);\n self.emitAll('reconnecting', self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect) return;\n self.open(function(err) {\n if (err) {\n debug('reconnect attempt error');\n self.reconnecting = false;\n self.reconnect();\n self.emitAll('reconnect_error', err.data);\n } else {\n debug('reconnect success');\n self.onreconnect();\n }\n });\n }, delay);\n this.subs.push({\n destroy: function() {\n clearTimeout(timer);\n }\n });\n }\n };\n /**\n * Called upon successful reconnect.\n *\n * @api private\n */ Manager.prototype.onreconnect = function() {\n var attempt = this.backoff.attempts;\n this.reconnecting = false;\n this.backoff.reset();\n this.updateSocketIds();\n this.emitAll('reconnect', attempt);\n };\n /***/ },\n /***/ \"./node_modules/socket.io-client/lib/on.js\": /*!*************************************************!*\\\n !*** ./node_modules/socket.io-client/lib/on.js ***!\n \\*************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n /**\n * Module exports.\n */ module.exports = on;\n /**\n * Helper for subscriptions.\n *\n * @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter`\n * @param {String} event name\n * @param {Function} callback\n * @api public\n */ function on(obj, ev, fn) {\n obj.on(ev, fn);\n return {\n destroy: function() {\n obj.removeListener(ev, fn);\n }\n };\n }\n /***/ },\n /***/ \"./node_modules/socket.io-client/lib/socket.js\": /*!*****************************************************!*\\\n !*** ./node_modules/socket.io-client/lib/socket.js ***!\n \\*****************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /**\n * Module dependencies.\n */ var parser = __webpack_require__(/*! socket.io-parser */ \"./node_modules/socket.io-parser/index.js\");\n var Emitter = __webpack_require__(/*! component-emitter */ \"./node_modules/component-emitter/index.js\");\n var toArray = __webpack_require__(/*! to-array */ \"./node_modules/to-array/index.js\");\n var on = __webpack_require__(/*! ./on */ \"./node_modules/socket.io-client/lib/on.js\");\n var bind = __webpack_require__(/*! component-bind */ \"./node_modules/component-bind/index.js\");\n var debug = __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('socket.io-client:socket');\n var parseqs = __webpack_require__(/*! parseqs */ \"./node_modules/parseqs/index.js\");\n var hasBin = __webpack_require__(/*! has-binary2 */ \"./node_modules/has-binary2/index.js\");\n /**\n * Module exports.\n */ module.exports = exports = Socket;\n /**\n * Internal events (blacklisted).\n * These events can't be emitted by the user.\n *\n * @api private\n */ var events = {\n connect: 1,\n connect_error: 1,\n connect_timeout: 1,\n connecting: 1,\n disconnect: 1,\n error: 1,\n reconnect: 1,\n reconnect_attempt: 1,\n reconnect_failed: 1,\n reconnect_error: 1,\n reconnecting: 1,\n ping: 1,\n pong: 1\n };\n /**\n * Shortcut to `Emitter#emit`.\n */ var emit = Emitter.prototype.emit;\n /**\n * `Socket` constructor.\n *\n * @api public\n */ function Socket(io, nsp, opts) {\n this.io = io;\n this.nsp = nsp;\n this.json = this; // compat\n this.ids = 0;\n this.acks = {};\n this.receiveBuffer = [];\n this.sendBuffer = [];\n this.connected = false;\n this.disconnected = true;\n this.flags = {};\n if (opts && opts.query) {\n this.query = opts.query;\n }\n if (this.io.autoConnect) this.open();\n }\n /**\n * Mix in `Emitter`.\n */ Emitter(Socket.prototype);\n /**\n * Subscribe to open, close and packet events\n *\n * @api private\n */ Socket.prototype.subEvents = function() {\n if (this.subs) return;\n var io = this.io;\n this.subs = [\n on(io, 'open', bind(this, 'onopen')),\n on(io, 'packet', bind(this, 'onpacket')),\n on(io, 'close', bind(this, 'onclose'))\n ];\n };\n /**\n * \"Opens\" the socket.\n *\n * @api public\n */ Socket.prototype.open = Socket.prototype.connect = function() {\n if (this.connected) return this;\n this.subEvents();\n if (!this.io.reconnecting) this.io.open(); // ensure open\n if ('open' === this.io.readyState) this.onopen();\n this.emit('connecting');\n return this;\n };\n /**\n * Sends a `message` event.\n *\n * @return {Socket} self\n * @api public\n */ Socket.prototype.send = function() {\n var args = toArray(arguments);\n args.unshift('message');\n this.emit.apply(this, args);\n return this;\n };\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @param {String} event name\n * @return {Socket} self\n * @api public\n */ Socket.prototype.emit = function(ev) {\n if (events.hasOwnProperty(ev)) {\n emit.apply(this, arguments);\n return this;\n }\n var args = toArray(arguments);\n var packet = {\n type: (this.flags.binary !== undefined ? this.flags.binary : hasBin(args)) ? parser.BINARY_EVENT : parser.EVENT,\n data: args\n };\n packet.options = {};\n packet.options.compress = !this.flags || false !== this.flags.compress;\n // event ack callback\n if ('function' === typeof args[args.length - 1]) {\n debug('emitting packet with ack id %d', this.ids);\n this.acks[this.ids] = args.pop();\n packet.id = this.ids++;\n }\n if (this.connected) {\n this.packet(packet);\n } else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n };\n /**\n * Sends a packet.\n *\n * @param {Object} packet\n * @api private\n */ Socket.prototype.packet = function(packet) {\n packet.nsp = this.nsp;\n this.io.packet(packet);\n };\n /**\n * Called upon engine `open`.\n *\n * @api private\n */ Socket.prototype.onopen = function() {\n debug('transport is open - connecting');\n // write connect packet if necessary\n if ('/' !== this.nsp) {\n if (this.query) {\n var query = typeof this.query === 'object' ? parseqs.encode(this.query) : this.query;\n debug('sending connect packet with query %s', query);\n this.packet({\n type: parser.CONNECT,\n query: query\n });\n } else {\n this.packet({\n type: parser.CONNECT\n });\n }\n }\n };\n /**\n * Called upon engine `close`.\n *\n * @param {String} reason\n * @api private\n */ Socket.prototype.onclose = function(reason) {\n debug('close (%s)', reason);\n this.connected = false;\n this.disconnected = true;\n delete this.id;\n this.emit('disconnect', reason);\n };\n /**\n * Called with socket packet.\n *\n * @param {Object} packet\n * @api private\n */ Socket.prototype.onpacket = function(packet) {\n var sameNamespace = packet.nsp === this.nsp;\n var rootNamespaceError = packet.type === parser.ERROR && packet.nsp === '/';\n if (!sameNamespace && !rootNamespaceError) return;\n switch(packet.type){\n case parser.CONNECT:\n this.onconnect();\n break;\n case parser.EVENT:\n this.onevent(packet);\n break;\n case parser.BINARY_EVENT:\n this.onevent(packet);\n break;\n case parser.ACK:\n this.onack(packet);\n break;\n case parser.BINARY_ACK:\n this.onack(packet);\n break;\n case parser.DISCONNECT:\n this.ondisconnect();\n break;\n case parser.ERROR:\n this.emit('error', packet.data);\n break;\n }\n };\n /**\n * Called upon a server event.\n *\n * @param {Object} packet\n * @api private\n */ Socket.prototype.onevent = function(packet) {\n var args = packet.data || [];\n debug('emitting event %j', args);\n if (null != packet.id) {\n debug('attaching ack callback to event');\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n emit.apply(this, args);\n } else {\n this.receiveBuffer.push(args);\n }\n };\n /**\n * Produces an ack callback to emit with an event.\n *\n * @api private\n */ Socket.prototype.ack = function(id) {\n var self = this;\n var sent = false;\n return function() {\n // prevent double callbacks\n if (sent) return;\n sent = true;\n var args = toArray(arguments);\n debug('sending ack %j', args);\n self.packet({\n type: hasBin(args) ? parser.BINARY_ACK : parser.ACK,\n id: id,\n data: args\n });\n };\n };\n /**\n * Called upon a server acknowlegement.\n *\n * @param {Object} packet\n * @api private\n */ Socket.prototype.onack = function(packet) {\n var ack = this.acks[packet.id];\n if ('function' === typeof ack) {\n debug('calling ack %s with %j', packet.id, packet.data);\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n } else {\n debug('bad ack %s', packet.id);\n }\n };\n /**\n * Called upon server connect.\n *\n * @api private\n */ Socket.prototype.onconnect = function() {\n this.connected = true;\n this.disconnected = false;\n this.emit('connect');\n this.emitBuffered();\n };\n /**\n * Emit buffered events (received and emitted).\n *\n * @api private\n */ Socket.prototype.emitBuffered = function() {\n var i;\n for(i = 0; i < this.receiveBuffer.length; i++){\n emit.apply(this, this.receiveBuffer[i]);\n }\n this.receiveBuffer = [];\n for(i = 0; i < this.sendBuffer.length; i++){\n this.packet(this.sendBuffer[i]);\n }\n this.sendBuffer = [];\n };\n /**\n * Called upon server disconnect.\n *\n * @api private\n */ Socket.prototype.ondisconnect = function() {\n debug('server disconnect (%s)', this.nsp);\n this.destroy();\n this.onclose('io server disconnect');\n };\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @api private.\n */ Socket.prototype.destroy = function() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n for(var i = 0; i < this.subs.length; i++){\n this.subs[i].destroy();\n }\n this.subs = null;\n }\n this.io.destroy(this);\n };\n /**\n * Disconnects the socket manually.\n *\n * @return {Socket} self\n * @api public\n */ Socket.prototype.close = Socket.prototype.disconnect = function() {\n if (this.connected) {\n debug('performing disconnect (%s)', this.nsp);\n this.packet({\n type: parser.DISCONNECT\n });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose('io client disconnect');\n }\n return this;\n };\n /**\n * Sets the compress flag.\n *\n * @param {Boolean} if `true`, compresses the sending data\n * @return {Socket} self\n * @api public\n */ Socket.prototype.compress = function(compress) {\n this.flags.compress = compress;\n return this;\n };\n /**\n * Sets the binary flag\n *\n * @param {Boolean} whether the emitted data contains binary\n * @return {Socket} self\n * @api public\n */ Socket.prototype.binary = function(binary) {\n this.flags.binary = binary;\n return this;\n };\n /***/ },\n /***/ \"./node_modules/socket.io-client/lib/url.js\": /*!**************************************************!*\\\n !*** ./node_modules/socket.io-client/lib/url.js ***!\n \\**************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /**\n * Module dependencies.\n */ var parseuri = __webpack_require__(/*! parseuri */ \"./node_modules/parseuri/index.js\");\n var debug = __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('socket.io-client:url');\n /**\n * Module exports.\n */ module.exports = url;\n /**\n * URL parser.\n *\n * @param {String} url\n * @param {Object} An object meant to mimic window.location.\n * Defaults to window.location.\n * @api public\n */ function url(uri, loc) {\n var obj = uri;\n // default to window.location\n loc = loc || typeof location !== 'undefined' && location;\n if (null == uri) uri = loc.protocol + '//' + loc.host;\n // relative path support\n if ('string' === typeof uri) {\n if ('/' === uri.charAt(0)) {\n if ('/' === uri.charAt(1)) {\n uri = loc.protocol + uri;\n } else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n debug('protocol-less url %s', uri);\n if ('undefined' !== typeof loc) {\n uri = loc.protocol + '//' + uri;\n } else {\n uri = 'https://' + uri;\n }\n }\n // parse\n debug('parse %s', uri);\n obj = parseuri(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = '80';\n } else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = '443';\n }\n }\n obj.path = obj.path || '/';\n var ipv6 = obj.host.indexOf(':') !== -1;\n var host = ipv6 ? '[' + obj.host + ']' : obj.host;\n // define unique id\n obj.id = obj.protocol + '://' + host + ':' + obj.port;\n // define href\n obj.href = obj.protocol + '://' + host + (loc && loc.port === obj.port ? '' : ':' + obj.port);\n return obj;\n }\n /***/ },\n /***/ \"./node_modules/socket.io-parser/binary.js\": /*!*************************************************!*\\\n !*** ./node_modules/socket.io-parser/binary.js ***!\n \\*************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /*global Blob,File*/ /**\n * Module requirements\n */ var isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\");\n var isBuf = __webpack_require__(/*! ./is-buffer */ \"./node_modules/socket.io-parser/is-buffer.js\");\n var toString = Object.prototype.toString;\n var withNativeBlob = typeof Blob === 'function' || typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]';\n var withNativeFile = typeof File === 'function' || typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]';\n /**\n * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder.\n * Anything with blobs or files should be fed through removeBlobs before coming\n * here.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @api public\n */ exports.deconstructPacket = function(packet) {\n var buffers = [];\n var packetData = packet.data;\n var pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return {\n packet: pack,\n buffers: buffers\n };\n };\n function _deconstructPacket(data, buffers) {\n if (!data) return data;\n if (isBuf(data)) {\n var placeholder = {\n _placeholder: true,\n num: buffers.length\n };\n buffers.push(data);\n return placeholder;\n } else if (isArray(data)) {\n var newData = new Array(data.length);\n for(var i = 0; i < data.length; i++){\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n } else if (typeof data === 'object' && !(data instanceof Date)) {\n var newData = {};\n for(var key in data){\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n return newData;\n }\n return data;\n }\n /**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @api public\n */ exports.reconstructPacket = function(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n };\n function _reconstructPacket(data, buffers) {\n if (!data) return data;\n if (data && data._placeholder) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n } else if (isArray(data)) {\n for(var i = 0; i < data.length; i++){\n data[i] = _reconstructPacket(data[i], buffers);\n }\n } else if (typeof data === 'object') {\n for(var key in data){\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n return data;\n }\n /**\n * Asynchronously removes Blobs or Files from data via\n * FileReader's readAsArrayBuffer method. Used before encoding\n * data as msgpack. Calls callback with the blobless data.\n *\n * @param {Object} data\n * @param {Function} callback\n * @api private\n */ exports.removeBlobs = function(data, callback) {\n function _removeBlobs(obj, curKey, containingObject) {\n if (!obj) return obj;\n // convert any blob\n if (withNativeBlob && obj instanceof Blob || withNativeFile && obj instanceof File) {\n pendingBlobs++;\n // async filereader\n var fileReader = new FileReader();\n fileReader.onload = function() {\n if (containingObject) {\n containingObject[curKey] = this.result;\n } else {\n bloblessData = this.result;\n }\n // if nothing pending its callback time\n if (!--pendingBlobs) {\n callback(bloblessData);\n }\n };\n fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer\n } else if (isArray(obj)) {\n for(var i = 0; i < obj.length; i++){\n _removeBlobs(obj[i], i, obj);\n }\n } else if (typeof obj === 'object' && !isBuf(obj)) {\n for(var key in obj){\n _removeBlobs(obj[key], key, obj);\n }\n }\n }\n var pendingBlobs = 0;\n var bloblessData = data;\n _removeBlobs(bloblessData);\n if (!pendingBlobs) {\n callback(bloblessData);\n }\n };\n /***/ },\n /***/ \"./node_modules/socket.io-parser/index.js\": /*!************************************************!*\\\n !*** ./node_modules/socket.io-parser/index.js ***!\n \\************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /**\n * Module dependencies.\n */ var debug = __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('socket.io-parser');\n var Emitter = __webpack_require__(/*! component-emitter */ \"./node_modules/component-emitter/index.js\");\n var binary = __webpack_require__(/*! ./binary */ \"./node_modules/socket.io-parser/binary.js\");\n var isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\");\n var isBuf = __webpack_require__(/*! ./is-buffer */ \"./node_modules/socket.io-parser/is-buffer.js\");\n /**\n * Protocol version.\n *\n * @api public\n */ exports.protocol = 4;\n /**\n * Packet types.\n *\n * @api public\n */ exports.types = [\n 'CONNECT',\n 'DISCONNECT',\n 'EVENT',\n 'ACK',\n 'ERROR',\n 'BINARY_EVENT',\n 'BINARY_ACK'\n ];\n /**\n * Packet type `connect`.\n *\n * @api public\n */ exports.CONNECT = 0;\n /**\n * Packet type `disconnect`.\n *\n * @api public\n */ exports.DISCONNECT = 1;\n /**\n * Packet type `event`.\n *\n * @api public\n */ exports.EVENT = 2;\n /**\n * Packet type `ack`.\n *\n * @api public\n */ exports.ACK = 3;\n /**\n * Packet type `error`.\n *\n * @api public\n */ exports.ERROR = 4;\n /**\n * Packet type 'binary event'\n *\n * @api public\n */ exports.BINARY_EVENT = 5;\n /**\n * Packet type `binary ack`. For acks with binary arguments.\n *\n * @api public\n */ exports.BINARY_ACK = 6;\n /**\n * Encoder constructor.\n *\n * @api public\n */ exports.Encoder = Encoder;\n /**\n * Decoder constructor.\n *\n * @api public\n */ exports.Decoder = Decoder;\n /**\n * A socket.io Encoder instance\n *\n * @api public\n */ function Encoder() {}\n var ERROR_PACKET = exports.ERROR + '\"encode error\"';\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n * @param {Function} callback - function to handle encodings (likely engine.write)\n * @return Calls callback with Array of encodings\n * @api public\n */ Encoder.prototype.encode = function(obj, callback) {\n debug('encoding packet %j', obj);\n if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n encodeAsBinary(obj, callback);\n } else {\n var encoding = encodeAsString(obj);\n callback([\n encoding\n ]);\n }\n };\n /**\n * Encode packet as string.\n *\n * @param {Object} packet\n * @return {String} encoded\n * @api private\n */ function encodeAsString(obj) {\n // first is type\n var str = '' + obj.type;\n // attachments if we have them\n if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n str += obj.attachments + '-';\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && '/' !== obj.nsp) {\n str += obj.nsp + ',';\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n var payload = tryStringify(obj.data);\n if (payload !== false) {\n str += payload;\n } else {\n return ERROR_PACKET;\n }\n }\n debug('encoded %j as %s', obj, str);\n return str;\n }\n function tryStringify(str) {\n try {\n return JSON.stringify(str);\n } catch (e) {\n return false;\n }\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n *\n * @param {Object} packet\n * @return {Buffer} encoded\n * @api private\n */ function encodeAsBinary(obj, callback) {\n function writeEncoding(bloblessData) {\n var deconstruction = binary.deconstructPacket(bloblessData);\n var pack = encodeAsString(deconstruction.packet);\n var buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n callback(buffers); // write all the buffers\n }\n binary.removeBlobs(obj, writeEncoding);\n }\n /**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n * @api public\n */ function Decoder() {\n this.reconstructor = null;\n }\n /**\n * Mix in `Emitter` with Decoder.\n */ Emitter(Decoder.prototype);\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n * @return {Object} packet\n * @api public\n */ Decoder.prototype.add = function(obj) {\n var packet;\n if (typeof obj === 'string') {\n packet = decodeString(obj);\n if (exports.BINARY_EVENT === packet.type || exports.BINARY_ACK === packet.type) {\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (this.reconstructor.reconPack.attachments === 0) {\n this.emit('decoded', packet);\n }\n } else {\n this.emit('decoded', packet);\n }\n } else if (isBuf(obj) || obj.base64) {\n if (!this.reconstructor) {\n throw new Error('got binary data when not reconstructing a packet');\n } else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n this.reconstructor = null;\n this.emit('decoded', packet);\n }\n }\n } else {\n throw new Error('Unknown type: ' + obj);\n }\n };\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n * @api private\n */ function decodeString(str) {\n var i = 0;\n // look up type\n var p = {\n type: Number(str.charAt(0))\n };\n if (null == exports.types[p.type]) {\n return error('unknown packet type ' + p.type);\n }\n // look up attachments if type binary\n if (exports.BINARY_EVENT === p.type || exports.BINARY_ACK === p.type) {\n var start = i + 1;\n while(str.charAt(++i) !== '-' && i != str.length){}\n var buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== '-') {\n throw new Error('Illegal attachments');\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if ('/' === str.charAt(i + 1)) {\n var start = i + 1;\n while(++i){\n var c = str.charAt(i);\n if (',' === c) break;\n if (i === str.length) break;\n }\n p.nsp = str.substring(start, i);\n } else {\n p.nsp = '/';\n }\n // look up id\n var next = str.charAt(i + 1);\n if ('' !== next && Number(next) == next) {\n var start = i + 1;\n while(++i){\n var c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length) break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n var payload = tryParse(str.substr(i));\n var isPayloadValid = payload !== false && (p.type === exports.ERROR || isArray(payload));\n if (isPayloadValid) {\n p.data = payload;\n } else {\n return error('invalid payload');\n }\n }\n debug('decoded %s as %j', str, p);\n return p;\n }\n function tryParse(str) {\n try {\n return JSON.parse(str);\n } catch (e) {\n return false;\n }\n }\n /**\n * Deallocates a parser's resources\n *\n * @api public\n */ Decoder.prototype.destroy = function() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n };\n /**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n * @api private\n */ function BinaryReconstructor(packet) {\n this.reconPack = packet;\n this.buffers = [];\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n * @api private\n */ BinaryReconstructor.prototype.takeBinaryData = function(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n var packet = binary.reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n };\n /**\n * Cleans up binary packet reconstruction variables.\n *\n * @api private\n */ BinaryReconstructor.prototype.finishedReconstruction = function() {\n this.reconPack = null;\n this.buffers = [];\n };\n function error(msg) {\n return {\n type: exports.ERROR,\n data: 'parser error: ' + msg\n };\n }\n /***/ },\n /***/ \"./node_modules/socket.io-parser/is-buffer.js\": /*!****************************************************!*\\\n !*** ./node_modules/socket.io-parser/is-buffer.js ***!\n \\****************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */ (function(Buffer) {\n module.exports = isBuf;\n var withNativeBuffer = typeof Buffer === 'function' && typeof Buffer.isBuffer === 'function';\n var withNativeArrayBuffer = typeof ArrayBuffer === 'function';\n var isView = function(obj) {\n return typeof ArrayBuffer.isView === 'function' ? ArrayBuffer.isView(obj) : obj.buffer instanceof ArrayBuffer;\n };\n /**\n * Returns true if obj is a buffer or an arraybuffer.\n *\n * @api private\n */ function isBuf(obj) {\n return withNativeBuffer && Buffer.isBuffer(obj) || withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj));\n }\n /* WEBPACK VAR INJECTION */ }).call(this, __webpack_require__(/*! ./../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer);\n /***/ },\n /***/ \"./node_modules/split-on-first/index.js\": /*!**********************************************!*\\\n !*** ./node_modules/split-on-first/index.js ***!\n \\**********************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n \"use strict\";\n module.exports = (string, separator)=>{\n if (!(typeof string === 'string' && typeof separator === 'string')) {\n throw new TypeError('Expected the arguments to be of type `string`');\n }\n if (separator === '') {\n return [\n string\n ];\n }\n const separatorIndex = string.indexOf(separator);\n if (separatorIndex === -1) {\n return [\n string\n ];\n }\n return [\n string.slice(0, separatorIndex),\n string.slice(separatorIndex + separator.length)\n ];\n };\n /***/ },\n /***/ \"./node_modules/strict-uri-encode/index.js\": /*!*************************************************!*\\\n !*** ./node_modules/strict-uri-encode/index.js ***!\n \\*************************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n \"use strict\";\n module.exports = (str)=>encodeURIComponent(str).replace(/[!'()*]/g, (x)=>`%${x.charCodeAt(0).toString(16).toUpperCase()}`\n )\n ;\n /***/ },\n /***/ \"./node_modules/to-array/index.js\": /*!****************************************!*\\\n !*** ./node_modules/to-array/index.js ***!\n \\****************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n module.exports = toArray;\n function toArray(list, index) {\n var array = [];\n index = index || 0;\n for(var i = index || 0; i < list.length; i++){\n array[i - index] = list[i];\n }\n return array;\n }\n /***/ },\n /***/ \"./node_modules/webpack/buildin/global.js\": /*!***********************************!*\\\n !*** (webpack)/buildin/global.js ***!\n \\***********************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n var g;\n // This works in non-strict mode\n g = function() {\n return this;\n }();\n try {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n } catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n }\n // g can still be undefined, but nothing to do about it...\n // We return undefined, instead of nothing here, so it's\n // easier to handle this case. if(!global) { ...}\n module.exports = g;\n /***/ },\n /***/ \"./node_modules/yeast/index.js\": /*!*************************************!*\\\n !*** ./node_modules/yeast/index.js ***!\n \\*************************************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports, __webpack_require__) {\n \"use strict\";\n var alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {}, seed = 0, i = 0, prev;\n /**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */ function encode(num) {\n var encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n }while (num > 0)\n return encoded;\n }\n /**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */ function decode(str) {\n var decoded = 0;\n for(i = 0; i < str.length; i++){\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n }\n /**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */ function yeast() {\n var now = encode(+new Date());\n if (now !== prev) return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n }\n //\n // Map each character to its index.\n //\n for(; i < length; i++)map[alphabet[i]] = i;\n //\n // Expose the `yeast`, `encode` and `decode` functions.\n //\n yeast.encode = encode;\n yeast.decode = decode;\n module.exports = yeast;\n /***/ },\n /***/ \"./package.json\": /*!**********************!*\\\n !*** ./package.json ***!\n \\**********************/ /*! exports provided: name, version, description, main, types, scripts, repository, files, author, license, devDependencies, dependencies, default */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module) {\n module.exports = JSON.parse(\"{\\\"name\\\":\\\"skyway-js\\\",\\\"version\\\":\\\"4.4.4\\\",\\\"description\\\":\\\"The official JavaScript SDK for SkyWay\\\",\\\"main\\\":\\\"dist/skyway.js\\\",\\\"types\\\":\\\"skyway-js.d.ts\\\",\\\"scripts\\\":{\\\"test\\\":\\\"karma start ./karma.conf.js\\\",\\\"clean\\\":\\\"del ./dist\\\",\\\"lint\\\":\\\"eslint .\\\",\\\"build\\\":\\\"NODE_ENV=production webpack\\\",\\\"dev\\\":\\\"webpack -w\\\"},\\\"repository\\\":{\\\"type\\\":\\\"git\\\",\\\"url\\\":\\\"git+https://github.com/skyway/skyway-js-sdk\\\"},\\\"files\\\":[\\\"dist/skyway.js\\\",\\\"skyway-js.d.ts\\\",\\\"LICENSE\\\",\\\"CHANGELOG.md\\\",\\\"README.md\\\"],\\\"author\\\":\\\"NTT Communications Corp.\\\",\\\"license\\\":\\\"Apache-2.0\\\",\\\"devDependencies\\\":{\\\"babel-loader\\\":\\\"7.1.5\\\",\\\"babel-plugin-espower\\\":\\\"2.4.0\\\",\\\"babel-plugin-istanbul\\\":\\\"4.1.6\\\",\\\"babel-preset-es2015\\\":\\\"^6.24.1\\\",\\\"del-cli\\\":\\\"^2.0.0\\\",\\\"eslint\\\":\\\"^6.1.0\\\",\\\"eslint-config-prettier\\\":\\\"^6.0.0\\\",\\\"eslint-plugin-prettier\\\":\\\"^3.1.0\\\",\\\"inject-loader\\\":\\\"^4.0.1\\\",\\\"karma\\\":\\\"^4.2.0\\\",\\\"karma-chrome-launcher\\\":\\\"^3.0.0\\\",\\\"karma-coverage\\\":\\\"^1.1.2\\\",\\\"karma-mocha\\\":\\\"^1.3.0\\\",\\\"karma-mocha-reporter\\\":\\\"^2.2.5\\\",\\\"karma-sourcemap-loader\\\":\\\"^0.3.7\\\",\\\"karma-webpack\\\":\\\"^4.0.2\\\",\\\"mocha\\\":\\\"^6.2.0\\\",\\\"power-assert\\\":\\\"^1.6.1\\\",\\\"prettier\\\":\\\"^1.18.2\\\",\\\"sinon\\\":\\\"^7.3.2\\\",\\\"webpack\\\":\\\"^4.38.0\\\",\\\"webpack-cli\\\":\\\"^3.3.6\\\"},\\\"dependencies\\\":{\\\"@jitsi/sdp-interop\\\":\\\"^0.1.13\\\",\\\"@types/node\\\":\\\"^12.6.8\\\",\\\"detect-browser\\\":\\\"^4.6.0\\\",\\\"enum\\\":\\\"^3.0.4\\\",\\\"events\\\":\\\"^3.0.0\\\",\\\"js-binarypack\\\":\\\"0.0.9\\\",\\\"object-sizeof\\\":\\\"^1.4.0\\\",\\\"query-string\\\":\\\"^6.8.2\\\",\\\"sdp-transform\\\":\\\"^2.11.0\\\",\\\"socket.io-client\\\":\\\"^2.2.0\\\",\\\"socket.io-parser\\\":\\\"~3.3.0\\\"}}\");\n /***/ },\n /***/ \"./src/peer.js\": /*!**********************************!*\\\n !*** ./src/peer.js + 12 modules ***!\n \\**********************************/ /*! exports provided: default */ /*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@jitsi/sdp-interop/lib/index.js (<- Module is not an ECMAScript module) */ /*! ModuleConcatenation bailout: Cannot concat with ./node_modules/detect-browser/index.js (<- Module is not an ECMAScript module) */ /*! ModuleConcatenation bailout: Cannot concat with ./node_modules/enum/lib/enum.js (<- Module uses injected variables (global)) */ /*! ModuleConcatenation bailout: Cannot concat with ./node_modules/events/events.js (<- Module is not an ECMAScript module) */ /*! ModuleConcatenation bailout: Cannot concat with ./node_modules/has-binary2/index.js (<- Module is not an ECMAScript module) */ /*! ModuleConcatenation bailout: Cannot concat with ./node_modules/js-binarypack/lib/binarypack.js (<- Module is not an ECMAScript module) */ /*! ModuleConcatenation bailout: Cannot concat with ./node_modules/object-sizeof/index.js (<- Module is not an ECMAScript module) */ /*! ModuleConcatenation bailout: Cannot concat with ./node_modules/query-string/index.js (<- Module is not an ECMAScript module) */ /*! ModuleConcatenation bailout: Cannot concat with ./node_modules/sdp-transform/lib/index.js (<- Module is not an ECMAScript module) */ /*! ModuleConcatenation bailout: Cannot concat with ./node_modules/socket.io-client/lib/index.js (<- Module is not an ECMAScript module) */ /*! ModuleConcatenation bailout: Cannot concat with ./node_modules/socket.io-parser/index.js (<- Module is not an ECMAScript module) */ /*! ModuleConcatenation bailout: Cannot concat with ./package.json (<- Module is not an ECMAScript module) */ /***/ function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n // ESM COMPAT FLAG\n __webpack_require__.r(__webpack_exports__);\n // EXTERNAL MODULE: ./node_modules/events/events.js\n var events = __webpack_require__(\"./node_modules/events/events.js\");\n var events_default = /*#__PURE__*/ __webpack_require__.n(events);\n // EXTERNAL MODULE: ./node_modules/enum/lib/enum.js\n var lib_enum = __webpack_require__(\"./node_modules/enum/lib/enum.js\");\n // EXTERNAL MODULE: ./node_modules/socket.io-client/lib/index.js\n var lib = __webpack_require__(\"./node_modules/socket.io-client/lib/index.js\");\n var lib_default = /*#__PURE__*/ __webpack_require__.n(lib);\n // EXTERNAL MODULE: ./node_modules/query-string/index.js\n var query_string = __webpack_require__(\"./node_modules/query-string/index.js\");\n var query_string_default = /*#__PURE__*/ __webpack_require__.n(query_string);\n // CONCATENATED MODULE: ./src/shared/config.js\n const DISPATCHER_HOST = 'dispatcher.webrtc.ecl.ntt.com';\n const DISPATCHER_PORT = 443;\n const DISPATCHER_SECURE = true;\n const DISPATCHER_TIMEOUT = 10000;\n const TURN_HOST = 'turn.webrtc.ecl.ntt.com';\n const TURN_PORT = 443;\n const MESSAGE_TYPES = {\n CLIENT: new lib_enum[\"default\"]([\n 'SEND_OFFER',\n 'SEND_ANSWER',\n 'SEND_CANDIDATE',\n 'SEND_LEAVE',\n 'ROOM_JOIN',\n 'ROOM_LEAVE',\n 'ROOM_GET_LOGS',\n 'ROOM_GET_USERS',\n 'ROOM_SEND_DATA',\n 'SFU_GET_OFFER',\n 'SFU_ANSWER',\n 'SFU_CANDIDATE',\n 'PING',\n 'UPDATE_CREDENTIAL',\n 'SEND_FORCE_CLOSE', \n ]),\n SERVER: new lib_enum[\"default\"]([\n 'OPEN',\n 'ERROR',\n 'OFFER',\n 'ANSWER',\n 'CANDIDATE',\n 'LEAVE',\n 'AUTH_EXPIRES_IN',\n 'ROOM_LOGS',\n 'ROOM_USERS',\n 'ROOM_DATA',\n 'ROOM_USER_JOIN',\n 'ROOM_USER_LEAVE',\n 'SFU_OFFER',\n 'FORCE_CLOSE', \n ])\n };\n // Current recommended maximum chunksize is 16KB (DataChannel spec)\n // https://tools.ietf.org/html/draft-ietf-rtcweb-data-channel-13\n // The actual chunk size is adjusted in dataChannel to accomodate metaData\n const maxChunkSize = 16300;\n // The maximum size of data that can be sent at one time by using Room.send() is 20 MB\n const config_maxDataSize = 20 * 1024 * 1024;\n // The minimum interval of using Room.send() is 100 ms\n const minBroadcastIntervalMs = 100;\n // max number of attempts to get a new server from the dispatcher.\n const maxNumberOfAttempts = 10;\n // Number of reconnection attempts to the same server before giving up\n const reconnectionAttempts = 2;\n // Number of times to try changing servers before giving up\n const numberServersToTry = 3;\n // Send loop interval in milliseconds\n const config_sendInterval = 1;\n // Ping interval in milliseconds\n const pingInterval = 25000;\n const defaultConfig = {\n iceServers: [\n {\n urls: 'stun:stun.webrtc.ecl.ntt.com:3478',\n url: 'stun:stun.webrtc.ecl.ntt.com:3478'\n }, \n ],\n iceTransportPolicy: 'all'\n };\n /* harmony default export */ var config = {\n DISPATCHER_HOST,\n DISPATCHER_PORT,\n DISPATCHER_SECURE,\n DISPATCHER_TIMEOUT,\n TURN_HOST,\n TURN_PORT,\n MESSAGE_TYPES,\n maxChunkSize,\n maxDataSize: config_maxDataSize,\n minBroadcastIntervalMs,\n maxNumberOfAttempts,\n reconnectionAttempts,\n numberServersToTry,\n sendInterval: config_sendInterval,\n pingInterval,\n defaultConfig\n };\n // CONCATENATED MODULE: ./src/shared/logger.js\n const LOG_PREFIX = 'SkyWay: ';\n const LogLevel = new lib_enum[\"default\"]({\n NONE: 0,\n ERROR: 1,\n WARN: 2,\n FULL: 3\n });\n /**\n * Class for logging\n * This class exports only one instance(a.k.a. Singleton)\n */ class Logger {\n /**\n * Set the level of log.\n * @param {number} [level=0] The log level. 0: NONE, 1: ERROR, 2: WARN, 3:FULL.\n */ setLogLevel(level) {\n if (level.value) {\n level = level.value;\n }\n const debugLevel = parseInt(level, 10);\n switch(debugLevel){\n case 0:\n this._logLevel = LogLevel.NONE.value;\n break;\n case 1:\n this._logLevel = LogLevel.ERROR.value;\n break;\n case 2:\n this._logLevel = LogLevel.WARN.value;\n break;\n case 3:\n this._logLevel = LogLevel.FULL.value;\n break;\n default:\n this._logLevel = LogLevel.NONE.value;\n break;\n }\n }\n /**\n * Output a warning message to the Web Console.\n * @param {...*} args - arguments to warn.\n */ warn(...args) {\n if (this._logLevel >= LogLevel.WARN.value) {\n console.warn(LOG_PREFIX, ...args);\n }\n }\n /**\n * Output an error message to the Web Console.\n * @param {...*} args - arguments to error.\n */ error(...args) {\n if (this._logLevel >= LogLevel.ERROR.value) {\n console.error(LOG_PREFIX, ...args);\n }\n }\n /**\n * Output a log message to the Web Console.\n * @param {...*} args - arguments to log.\n */ log(...args) {\n if (this._logLevel >= LogLevel.FULL.value) {\n console.log(LOG_PREFIX, ...args);\n }\n }\n /**\n * Create a Logger instance.\n *\n */ constructor(){\n this._logLevel = LogLevel.NONE.value;\n this.LOG_LEVELS = LogLevel;\n }\n }\n /* harmony default export */ var logger = new Logger();\n // EXTERNAL MODULE: ./node_modules/detect-browser/index.js\n var detect_browser = __webpack_require__(\"./node_modules/detect-browser/index.js\");\n // CONCATENATED MODULE: ./src/shared/util.js\n /**\n * Validate the Peer ID format.\n * @param {string} [id] - A Peer ID.\n * @return {boolean} True if the peerId format is valid. False if not.\n */ function validateId(id) {\n // Allow empty ids\n return !id || /^[A-Za-z0-9_-]+(?:[ _-][A-Za-z0-9]+)*$/.exec(id);\n }\n /**\n * Validate the API key.\n * @param {string} [key] A SkyWay API key.\n * @return {boolean} True if the API key format is valid. False if not.\n */ function validateKey(key) {\n // Allow empty keys\n return !key || /^[a-z0-9]{8}(-[a-z0-9]{4}){3}-[a-z0-9]{12}$/.exec(key);\n }\n /**\n * Return random ID.\n * @return {string} A text consisting of 16 chars.\n */ function randomId() {\n const keyLength = 16;\n // '36' means that we want to convert the number to a string using chars in\n // the range of '0-9a-z'. The concatenated 0's are for padding the key,\n // as Math.random() may produce a key shorter than 16 chars in length\n const randString = Math.random().toString(36) + '0000000000000000000';\n return randString.substr(2, keyLength);\n }\n /**\n * Generate random token.\n * @return {string} A token consisting of random alphabet and integer.\n */ function randomToken() {\n return Math.random().toString(36).substr(2);\n }\n /**\n * Combine the sliced ArrayBuffers.\n * @param {Array} buffers - An Array of ArrayBuffer.\n * @return {ArrayBuffer} The combined ArrayBuffer.\n */ function joinArrayBuffers(buffers) {\n const size = buffers.reduce((sum, buffer)=>{\n return sum + buffer.byteLength;\n }, 0);\n const tmpArray = new Uint8Array(size);\n let currPos = 0;\n for (const buffer1 of buffers){\n tmpArray.set(new Uint8Array(buffer1), currPos);\n currPos += buffer1.byteLength;\n }\n return tmpArray.buffer;\n }\n /**\n * Convert Blob to ArrayBuffer.\n * @param {Blob} blob - The Blob to be read as ArrayBuffer.\n * @param {Function} cb - Callback function that called after load event fired.\n */ function blobToArrayBuffer(blob, cb) {\n const fr = new FileReader();\n fr.onload = (event)=>{\n cb(event.target.result);\n };\n fr.readAsArrayBuffer(blob);\n }\n /**\n * Whether the protocol is https or not.\n * @return {boolean} Whether the protocol is https or not.\n */ function isSecure() {\n return location.protocol === 'https:';\n }\n /**\n * Detect browser name and version.\n * @return {Object} Browser name and major, minor and patch versions. Object is empty if info can't be obtained.\n */ function detectBrowser() {\n const { name , version } = Object(detect_browser[\"detect\"])();\n const [major, minor, patch] = version.split('.').map((i)=>parseInt(i)\n );\n return {\n name,\n major,\n minor,\n patch\n };\n }\n /**\n * Safari 12.1 may use plan-b sdp and also unified-plan sdp.\n * It depends on user settings.\n * See https://webkit.org/blog/8672/on-the-road-to-webrtc-1-0-including-vp8/\n *\n * @return {boolean} Browser is plan-b Safari or NOT\n */ function isPlanBSafari() {\n const { name } = Object(detect_browser[\"detect\"])();\n // safari for macOS, ios for iOS\n if (!(name === 'safari' || name === 'ios')) {\n return false;\n }\n // supports unified-plan\n if (RTCRtpTransceiver.prototype.hasOwnProperty('currentDirection')) {\n return false;\n }\n return true;\n }\n /* harmony default export */ var util = {\n validateId,\n validateKey,\n randomId,\n randomToken,\n joinArrayBuffers,\n blobToArrayBuffer,\n isSecure,\n detectBrowser,\n isPlanBSafari\n };\n // EXTERNAL MODULE: ./package.json\n var package_0 = __webpack_require__(\"./package.json\");\n // CONCATENATED MODULE: ./src/peer/socket.js\n /**\n * Class to handle WS/HTTP communication with the signalling server\n * @extends EventEmitter\n */ class socket_Socket extends events_default.a {\n /**\n * Whether the socket is connecting to the signalling server or not.\n * @type {boolean}\n */ get isOpen() {\n return Boolean(this._io && this._io.connected && this._isOpen);\n }\n /**\n * Connect to the signalling server.\n * @param {string} id - Unique peerId to identify the client.\n * @param {string} token - Token to identify the session.\n * @param {object} credential - The credential used to authenticate peer.\n * @param {number} [credential.timestamp] - Current UNIX timestamp.\n * @param {number} [credential.ttl] - Time to live; The credential expires at timestamp + ttl.\n * @param {string} [credential.authToken] - Credential token calculated with HMAC.\n * @return {Promise<void>} Promise that resolves when starting is done.\n * @fires Socket#error\n */ async start(id, token, credential) {\n let query = `apiKey=${this._key}&token=${token}` + `&platform=javascript&sdk_version=${package_0[\"version\"]}`;\n if (id) {\n query += `&peerId=${id}`;\n this._isPeerIdSet = true;\n }\n if (credential) {\n const encodedCredentialStr = encodeURIComponent(JSON.stringify(credential));\n query += `&credential=${encodedCredentialStr}`;\n }\n if (this._dispatcherUrl) {\n try {\n this.signalingServerUrl = await this._fetchSignalingServerUrlWithRetry();\n } catch (err) {\n this.emit('error', err);\n return;\n }\n }\n // Due to a bug in Safari 15,\n // WebSocket cannot send data properly, so we only use XHR temporarily.\n const brower = util.detectBrowser();\n const isSafari15OrOver = (brower.name === 'ios' || brower.name === 'safari') && brower.major >= 15;\n const transports = isSafari15OrOver ? [\n 'polling'\n ] : [\n 'polling',\n 'websocket'\n ];\n this._io = lib_default()(this.signalingServerUrl, {\n 'force new connection': true,\n query: query,\n reconnectionAttempts: config.reconnectionAttempts,\n transports\n });\n this._io.on('reconnect_failed', ()=>{\n this._stopPings();\n this._connectToNewServer();\n });\n this._io.on('error', (e)=>{\n logger.error(e);\n });\n this._setupMessageHandlers();\n }\n /**\n * Connect to \"new\" signaling server.\n * @return {Promise<void>} A promise that resolves with new connection has done.\n * @private\n */ async _connectToNewServer() {\n if (this._reconnectAttempts >= config.numberServersToTry) {\n this.emit('error', 'Could not connect to server.');\n return;\n }\n try {\n this.signalingServerUrl = await this._fetchSignalingServerUrlWithRetry();\n } catch (err) {\n this.emit('error', err);\n return;\n }\n this._io.io.uri = this.signalingServerUrl;\n this._io.connect();\n this._reconnectAttempts++;\n }\n /**\n * Return signaling server url. This attempts trying up to maxNumberOfAttempts times before giving up then throw error.\n * @return {String} A string of signaling server url.\n */ async _fetchSignalingServerUrlWithRetry() {\n for(let attempts = 0; attempts < config.maxNumberOfAttempts; attempts++){\n const serverInfo = await this._fetchSignalingServer().catch((err)=>{\n logger.warn(err);\n });\n if (serverInfo && serverInfo.port && serverInfo.host && (!this.signalingServerUrl || this.signalingServerUrl.indexOf(serverInfo.host) === -1)) {\n const httpProtocol = serverInfo.secure ? 'https://' : 'http://';\n return `${httpProtocol}${serverInfo.host}:${serverInfo.port}`;\n }\n }\n throw new Error('Could not get signaling server url.');\n }\n /**\n * Return object including signaling server info.\n * @return {Promise<Object>} A promise that resolves with signaling server info\n and rejects if there's no response or status code isn't 200.\n */ _fetchSignalingServer() {\n return new Promise((resolve, reject)=>{\n const http = new XMLHttpRequest();\n http.timeout = config.DISPATCHER_TIMEOUT;\n http.open('GET', this._dispatcherUrl, true);\n /* istanbul ignore next */ http.onerror = ()=>{\n reject(new Error('There was a problem with the request for the dispatcher. Check your peer options and network connections.'));\n };\n http.onabort = ()=>{\n reject(new Error('The request for the dispatcher was aborted.'));\n };\n http.ontimeout = ()=>{\n reject(new Error('The request for the dispatcher timed out. Check your firewall, network speed, SkyWay failure information'));\n };\n http.onload = ()=>{\n if (http.status !== 200) {\n reject(new Error('Connection failed. Unexpected response: ' + http.status));\n return;\n }\n try {\n const res = JSON.parse(http.responseText);\n if (res && res.domain) {\n resolve({\n host: res.domain,\n port: 443,\n secure: true\n });\n return;\n }\n reject(new Error('The dispatcher server returned an invalid JSON response. have no signaling server domain in JSON.'));\n } catch (err) {\n reject(new Error('The dispatcher server returned an invalid JSON response.'));\n }\n };\n http.send(null);\n });\n }\n /**\n * Send a message to the signalling server. Queue the messages if not connected yet.\n * @param {string} type - The signalling message type. Message types are defined in config.MESSAGE_TYPES.\n * @param {string | object} message - The message to send to the server.\n */ send(type, message) {\n if (!type) {\n this._io.emit('error', 'Invalid message');\n return;\n }\n // If we are not connected yet, queue the message\n if (!this.isOpen) {\n this._queue.push({\n type: type,\n message: message\n });\n return;\n }\n if (this._io.connected === true) {\n this._io.emit(type, message);\n }\n }\n /**\n * Disconnect from the signalling server.\n */ close() {\n if (this.isOpen) {\n this._stopPings();\n this._io.disconnect();\n this._isOpen = false;\n }\n }\n /**\n * Reconnect to the signaling server.\n */ reconnect() {\n this._io.connect();\n }\n /**\n * Update Credential by sending the new credential to the signaling server.\n * Also set the new one to the Socket.io.opts's query string for reconnection.\n * @param {object} newCredential - The new credential generated by user.\n * @param {number} [newCredential.timestamp] - Current UNIX timestamp.\n * @param {number} [newCredential.ttl] - Time to live; The credential expires at timestamp + ttl.\n * @param {string} [newCredential.authToken] - Credential token calculated with HMAC.\n */ updateCredential(newCredential) {\n // Parse the current queryString and replace the new credential with old one\n const parseQuery = query_string_default.a.parse(this._io.io.opts.query);\n if (parseQuery.credential) {\n parseQuery.credential = encodeURIComponent(JSON.stringify(newCredential));\n } else {\n // For future development; here we can tell the the developer\n // which connection(p2p/turn/sfu) should be authenticated.\n logger.warn(\"Adding a credential when one wasn't specified before.\");\n }\n this._io.io.opts.query = query_string_default.a.stringify(parseQuery);\n this.send(config.MESSAGE_TYPES.CLIENT.UPDATE_CREDENTIAL.key, newCredential);\n }\n /**\n * Set up the signalling message handlers.\n * @private\n * @fires Socket#OPEN\n * @fires Socket#OFFER\n * @fires Socket#ANSWER\n * @fires Socket#CANDIDATE\n * @fires Socket#LEAVE\n * @fires Socket#AUTH_EXPIRES_IN\n * @fires Socket#ROOM_OFFER\n * @fires Socket#ROOM_USER_JOIN\n * @fires Socket#ROOM_USER_LEAVE\n * @fires Socket#ROOM_DATA\n * @fires Socket#FORCE_CLOSE\n */ _setupMessageHandlers() {\n config.MESSAGE_TYPES.SERVER.enums.forEach((type)=>{\n if (type.key === config.MESSAGE_TYPES.SERVER.OPEN.key) {\n this._io.on(type.key, (openMessage)=>{\n if (!openMessage || !openMessage.peerId) {\n return;\n }\n if (!this._isPeerIdSet) {\n // set peerId for when reconnecting to the server\n this._io.io.opts.query += `&peerId=${openMessage.peerId}`;\n this._isPeerIdSet = true;\n }\n this._reconnectAttempts = 0;\n this._startPings();\n this._sendQueuedMessages();\n if (!this._isOpen) {\n this._isOpen = true;\n // To inform the peer that the socket successfully connected\n this.emit(type.key, openMessage);\n }\n });\n } else {\n this._io.on(type.key, (message)=>{\n this.emit(type.key, message);\n });\n }\n });\n }\n /**\n * Send messages that were queued when the client wasn't connected to the signalling server yet.\n * @private\n */ _sendQueuedMessages() {\n for (const data of this._queue){\n this.send(data.type, data.message);\n }\n this._queue = [];\n }\n /**\n * Start sending ping messages if they aren't already\n * @private\n */ _startPings() {\n if (!this._pingIntervalId) {\n this._pingIntervalId = setInterval(()=>{\n this.send(config.MESSAGE_TYPES.CLIENT.PING.key);\n }, config.pingInterval);\n }\n }\n /**\n * Stop sending ping messages\n * @private\n */ _stopPings() {\n clearInterval(this._pingIntervalId);\n this._pingIntervalId = undefined;\n }\n /**\n * Creates an instance of Socket.\n * @param {string} key - The apiKey to connect using.\n * @param {Object} options - Socket connection options.\n * @param {boolean} options.secure - True if signalling server supports HTTPS/WSS.\n * @param {string} options.host - The signalling server host.\n * @param {number | string} options.port - The port the signalling server is listening to.\n * @param {boolean} options.dispatcherSecure - True if dispatcher server supports HTTPS/WSS.\n * @param {string} options.dispatcherHost - The signalling server host.\n * @param {number | string} options.dispatcherPort - The port the signalling server is listening to.\n */ constructor(key, options){\n super();\n this._isOpen = false;\n this._isPeerIdSet = false;\n this._queue = [];\n this._io = null;\n this._key = key;\n this._reconnectAttempts = 0;\n if (options.host && options.port) {\n const httpProtocol = options.secure ? 'https://' : 'http://';\n this.signalingServerUrl = `${httpProtocol}${options.host}:${options.port}`;\n } else {\n const dispatcherHost = options.dispatcherHost || config.DISPATCHER_HOST;\n const dispatcherPort = options.dispatcherPort || config.DISPATCHER_PORT;\n const dispatcherSecure = options.dispatcherSecure || config.DISPATCHER_SECURE;\n const httpProtocol = dispatcherSecure ? 'https://' : 'http://';\n this._dispatcherUrl = `${httpProtocol}${dispatcherHost}:${dispatcherPort}/signaling`;\n }\n }\n }\n /* harmony default export */ var socket = socket_Socket;\n // EXTERNAL MODULE: ./node_modules/sdp-transform/lib/index.js\n var sdp_transform_lib = __webpack_require__(\"./node_modules/sdp-transform/lib/index.js\");\n var sdp_transform_lib_default = /*#__PURE__*/ __webpack_require__.n(sdp_transform_lib);\n // EXTERNAL MODULE: ./node_modules/@jitsi/sdp-interop/lib/index.js\n var sdp_interop_lib = __webpack_require__(\"./node_modules/@jitsi/sdp-interop/lib/index.js\");\n // CONCATENATED MODULE: ./src/shared/sdpUtil.js\n /**\n * Class that contains utility functions for SDP munging.\n */ class sdpUtil_SdpUtil {\n /**\n * Convert unified plan SDP to Plan B SDP\n * @param {RTCSessionDescriptionInit} offer unified plan SDP\n * @return {RTCSessionDescription} Plan B SDP\n */ unifiedToPlanB(offer) {\n const interop = new sdp_interop_lib[\"Interop\"]();\n const oldSdp = interop.toPlanB(offer).sdp;\n // use a set to avoid duplicates\n const msids = new Set();\n // extract msids from the offer sdp\n const msidRegexp = /a=ssrc:\\d+ msid:(\\w+)/g;\n let matches;\n // loop while matches is truthy\n // double parentheses for explicit conditional assignment (lint)\n while(matches = msidRegexp.exec(oldSdp)){\n msids.add(matches[1]);\n }\n // replace msid-semantic line with planB version\n const newSdp = oldSdp.replace('a=msid-semantic:WMS *', `a=msid-semantic:WMS ${Array.from(msids).join(' ')}`);\n return new RTCSessionDescription({\n type: 'offer',\n sdp: newSdp\n });\n }\n /**\n * Add b=AS to m=video section and return the SDP.\n * @param {string} sdp - A SDP.\n * @param {number} bandwidth - video Bandwidth (kbps)\n * @return {string} A SDP which include b=AS in m=video section\n */ addVideoBandwidth(sdp, bandwidth) {\n this._validateBandwidth(bandwidth);\n return this._addBandwidth(sdp, bandwidth, 'video');\n }\n /**\n * Add b=AS to m=audio section and return the SDP\n * @param {string} sdp - A SDP.\n * @param {number} bandwidth - audio Bandwidth (kbps)\n * @return {string} A SDP which include b=AS in m=audio section\n */ addAudioBandwidth(sdp, bandwidth) {\n this._validateBandwidth(bandwidth);\n return this._addBandwidth(sdp, bandwidth, 'audio');\n }\n /**\n * Remove video codecs in SDP except argument's codec.\n * If the codec doesn't exist, throw error.\n * @param {string} sdp - A SDP.\n * @param {string} codec - Video codec name (e.g. H264)\n * @return {string} A SDP which contains the codecs except argument's codec\n */ filterVideoCodec(sdp, codec) {\n return this._filterCodec(sdp, codec, 'video');\n }\n /**\n * Remove audio codecs in SDP except argument's codec.\n * If the codec doesn't exist, throw error.\n * @param {string} sdp - A SDP.\n * @param {string} codec - Audio codec name (e.g. PCMU)\n * @return {string} A SDP which contains the codecs except argument's codec\n */ filterAudioCodec(sdp, codec) {\n return this._filterCodec(sdp, codec, 'audio');\n }\n /**\n * Our signaling server determines client's SDP semantics\n * by checking answer SDP includes `a=msid-semantic:WMS *` or NOT.\n *\n * Currenly, Firefox prints exact string,\n * but Chrome does not. even using `unified-plan`.\n * Therefore Chrome needs to pretend Firefox to join SFU rooms.\n *\n * At a glance, using `sdp-transform` is better choice to munge SDP,\n * but if you do so, it prints `a=msid-semantic: WMS *`.\n * The problem is the space before the word `WMS`,\n * our signaling server can not handle this as `unified-plan` SDP...\n *\n * @param {string} sdp - A SDP.\n * @return {string} A SDP which has `a=msid-semantic:WMS *`.\n */ ensureUnifiedPlan(sdp) {\n const delimiter = '\\r\\n';\n return sdp.split(delimiter).map((line)=>{\n return line.startsWith('a=msid-semantic') ? 'a=msid-semantic:WMS *' : line;\n }).join(delimiter);\n }\n /**\n * Remove codecs except the codec passed as argument and return the SDP\n *\n * @param {string} sdp - A SDP.\n * @param {string} codec - The codec name, case sensitive.\n * @param {string} mediaType - 'audio' or 'video'\n * @return {string} A SDP which contains the codecs except argument's codec\n * @private\n */ _filterCodec(sdp, codec, mediaType) {\n if (codec === undefined) {\n throw new Error('codec is not passed');\n }\n const sdpObject = sdp_transform_lib_default.a.parse(sdp);\n sdpObject.media = sdpObject.media.map((media)=>{\n if (media.type === mediaType) {\n media.rtp = media.rtp.filter((rtp)=>{\n return rtp.codec === codec;\n });\n // Extract the payload number into Array, like [126, 97];\n // Note, there are cases the length of Array is more than 2.\n // e.g. Firefox generates two 'H264' video codecs: 126, 97;\n // e.g. Chrome generates three 'CN' audio codecs: 106, 105, 13;\n const payloadNumbers = media.rtp.reduce((prev, curr)=>{\n return [\n ...prev,\n curr.payload\n ];\n }, []);\n // At this point, 0 means there's no codec, so let's throw Error.\n if (media.rtp.length === 0) {\n throw new Error(`${codec} does not exist`);\n }\n // fmtp is optional though most codecs have this parameter.\n if (media.fmtp) {\n media.fmtp = media.fmtp.filter((fmtp)=>{\n return payloadNumbers.includes(fmtp.payload);\n });\n }\n // rtcpFb is optional. Especially, m=audio doesn't have rtcpFb.\n if (media.rtcpFb) {\n media.rtcpFb = media.rtcpFb.filter((rtcpFb)=>{\n return payloadNumbers.includes(rtcpFb.payload);\n });\n }\n media.payloads = payloadNumbers.join(' ');\n }\n return media;\n });\n return sdp_transform_lib_default.a.write(sdpObject);\n }\n /**\n * Add b=AS to 'm=audio' or 'm=video' section and return the SDP\n *\n * @param {string} sdp - A SDP.\n * @param {number} bandwidth - bandidth of 'audio' or 'video'\n * @param {string} mediaType - 'audio' or 'video'\n * @return {string} A SDP which include b=AS in m=audio or m=video section\n * @private\n */ _addBandwidth(sdp, bandwidth, mediaType) {\n const sdpObject = sdp_transform_lib_default.a.parse(sdp);\n sdpObject.media = sdpObject.media.map((media)=>{\n if (media.type === mediaType) {\n media.bandwidth = [\n {\n // Chrome supports only 'AS'\n type: 'AS',\n limit: bandwidth.toString()\n },\n {\n // Firefox Supports only 'TIAS' from M49\n type: 'TIAS',\n limit: (bandwidth * 1000).toString()\n }, \n ];\n }\n return media;\n });\n return sdp_transform_lib_default.a.write(sdpObject);\n }\n /**\n * Check bandwidth is valid or not. If invalid, throw Error\n * @param {number} bandwidth - bandwidth of 'audio' or 'video'\n * @private\n */ _validateBandwidth(bandwidth) {\n if (bandwidth === undefined) {\n throw new Error('bandwidth is not passed');\n }\n if (!/^\\d+$/.test(bandwidth)) {\n throw new Error(`${bandwidth} is not a number`);\n }\n }\n }\n /* harmony default export */ var sdpUtil = new sdpUtil_SdpUtil();\n // CONCATENATED MODULE: ./src/peer/negotiator.js\n const NegotiatorEvents = new lib_enum[\"default\"]([\n 'addStream',\n 'dcCreated',\n 'offerCreated',\n 'answerCreated',\n 'iceCandidate',\n 'iceConnectionFailed',\n 'negotiationNeeded',\n 'error', \n ]);\n /**\n * Class that manages RTCPeerConnection and SDP exchange.\n * @extends EventEmitter\n */ class negotiator_Negotiator extends events_default.a {\n /**\n * Class that manages RTCPeerConnection and SDP exchange.\n * @param {object} [options] - Optional arguments for starting connection.\n * @param {string} [options.type] - Type of connection. One of 'media' or 'data'.\n * @param {MediaStream} [options._stream] - The MediaStream to be sent to the remote peer.\n * @param {string} [options.label] - Label to easily identify the connection on either peer.\n * @param {Object} [options.dcInit] - Options passed to createDataChannel() as a RTCDataChannelInit.\n * See https://www.w3.org/TR/webrtc/#dom-rtcdatachannelinit\n * @param {boolean} [options.originator] - true means the peer is the originator of the connection.\n * @param {RTCSessionDescription} [options.offer]\n * - The local description. If the peer is originator, handleOffer is called with it.\n * @param {object} [options.pcConfig] - A RTCConfiguration dictionary for the RTCPeerConnection.\n * @param {number} [options.videoBandwidth] - A max video bandwidth(kbps)\n * @param {number} [options.audioBandwidth] - A max audio bandwidth(kbps)\n * @param {string} [options.videoCodec] - A video codec like 'H264'\n * @param {string} [options.audioCodec] - A video codec like 'PCMU'\n * @param {boolean} [options.videoReceiveEnabled] - A flag to set video recvonly\n * @param {boolean} [options.audioReceiveEnabled] - A flag to set audio recvonly\n * @return {Promise<void>} Promise that resolves when starting is done.\n */ async startConnection(options = {}) {\n this._pc = this._createPeerConnection(options.pcConfig);\n this._setupPCListeners();\n this.originator = options.originator;\n this._audioBandwidth = options.audioBandwidth;\n this._videoBandwidth = options.videoBandwidth;\n this._audioCodec = options.audioCodec;\n this._videoCodec = options.videoCodec;\n this._type = options.type;\n // Trigger negotiationneeded event\n if (this._type === 'media') {\n // video+audio or video only or audio only stream passed\n if (options.stream) {\n const vTracks = options.stream.getVideoTracks();\n const aTracks = options.stream.getAudioTracks();\n const recvonlyState = this._getReceiveOnlyState(options);\n // create m= section w/ direction sendrecv\n if (vTracks.length > 0) {\n vTracks.forEach((track)=>this._pc.addTrack(track, options.stream)\n );\n } else {\n recvonlyState.video && this._pc.addTransceiver('video', {\n direction: 'recvonly'\n });\n }\n if (aTracks.length > 0) {\n aTracks.forEach((track)=>this._pc.addTrack(track, options.stream)\n );\n } else {\n recvonlyState.audio && this._pc.addTransceiver('audio', {\n direction: 'recvonly'\n });\n }\n } else if (this.originator) {\n this._pc.addTransceiver('audio', {\n direction: 'recvonly'\n });\n this._pc.addTransceiver('video', {\n direction: 'recvonly'\n });\n }\n }\n if (this.originator) {\n if (this._type === 'data') {\n const label = options.label || '';\n const dcInit = options.dcInit || {};\n const dc = this._pc.createDataChannel(label, dcInit);\n this.emit(negotiator_Negotiator.EVENTS.dcCreated.key, dc);\n }\n } else {\n await this.handleOffer(options.offer);\n }\n }\n /**\n * Replace the stream being sent with a new one.\n * Video and audio tracks are updated per track by using `{add|replace|remove}Track` methods.\n * We assume that there is at most 1 audio and at most 1 video in local stream.\n * @param {MediaStream} newStream - The stream to replace the old stream with.\n * @private\n */ replaceStream(newStream) {\n // If negotiator is null\n // or replaceStream was called but `onnegotiationneeded` event has not finished yet.\n if (!this._pc) {\n return;\n }\n this._isNegotiationAllowed = true;\n const _this = this;\n const vTracks = newStream.getVideoTracks();\n const aTracks = newStream.getAudioTracks();\n const senders = this._pc.getSenders();\n const vSender = senders.find((sender)=>sender.track && sender.track.kind === 'video'\n );\n const aSender = senders.find((sender)=>sender.track && sender.track.kind === 'audio'\n );\n _updateSenderWithTrack(vSender, vTracks[0], newStream);\n _updateSenderWithTrack(aSender, aTracks[0], newStream);\n /**\n * Replace a track being sent with a new one.\n * @param {RTCRtpSender} sender - The sender which type is video or audio.\n * @param {MediaStreamTrack} track - The track of new stream.\n * @param {MediaStream} stream - The stream which contains the track.\n * @private\n */ function _updateSenderWithTrack(sender, track, stream) {\n if (track === undefined && sender === undefined) {\n return;\n }\n // remove video or audio sender if not passed\n if (track === undefined) {\n _this._pc.removeTrack(sender);\n return;\n }\n // if passed, replace track or create sender\n if (sender === undefined) {\n _this._pc.addTrack(track, stream);\n return;\n }\n // if track was not replaced, do nothing\n if (sender.track.id === track.id) {\n return;\n }\n sender.replaceTrack(track);\n }\n }\n /**\n * Set remote description with remote Offer SDP, then create Answer SDP and emit it.\n * @param {object} [offerSdp] - An object containing Offer SDP.\n * @return {Promise<void>} Promise that resolves when handling offer is done.\n */ async handleOffer(offerSdp) {\n // Avoid unnecessary processing by short circuiting the code if nothing has changed in the sdp.\n if (this._lastOffer && offerSdp && this._lastOffer.sdp === offerSdp.sdp) {\n return;\n }\n this._isNegotiationAllowed = true;\n // Enqueue and skip while signalingState is wrong state or executing handleOffer.\n // (when room is SFU and there are multiple conns in a same time, it happens)\n if (this._pc.signalingState === 'have-remote-offer' || this._isExecutingHandleOffer) {\n this._offerQueue.push(offerSdp);\n return;\n }\n this._lastOffer = offerSdp;\n this._isExecutingHandleOffer = true;\n let answer;\n try {\n await this._setRemoteDescription(offerSdp);\n answer = await this._makeAnswerSdp().catch((err)=>logger.error(err)\n );\n } finally{\n this._isExecutingHandleOffer = false;\n }\n // Apply pended remote offer which was stored when signalingState is wrong state or executing handleOffer.\n if (this._pc.signalingState === 'stable') {\n const offer = this._offerQueue.shift();\n if (offer) {\n this.handleOffer(offer);\n }\n }\n this.emit(negotiator_Negotiator.EVENTS.answerCreated.key, answer);\n }\n /**\n * Set remote description with Answer SDP.\n * @param {object} answerSdp - An object containing Answer SDP.\n */ async handleAnswer(answerSdp) {\n this._isNegotiationAllowed = true;\n if (this._isExpectingAnswer) {\n await this._setRemoteDescription(answerSdp);\n this._isExpectingAnswer = false;\n } else if (this._pc.onnegotiationneeded) {\n // manually trigger negotiation\n this._pc.onnegotiationneeded();\n }\n }\n /**\n * Set ice candidate with Candidate SDP.\n * @param {object} candidate - An object containing Candidate SDP.\n * @return {Promise<void>} Promise that resolves when handling candidate is done.\n */ async handleCandidate(candidate) {\n await this._pc.addIceCandidate(new RTCIceCandidate(candidate)).then(()=>logger.log('Successfully added ICE candidate')\n ).catch((err)=>logger.error('Failed to add ICE candidate', err)\n );\n }\n /**\n * Close a PeerConnection.\n */ cleanup() {\n logger.log('Cleaning up PeerConnection');\n if (this._pc && (this._pc.readyState !== 'closed' || this._pc.signalingState !== 'closed')) {\n this._pc.close();\n }\n this._pc = null;\n }\n /**\n * Create new RTCPeerConnection.\n * @param {object} pcConfig - A RTCConfiguration dictionary for the RTCPeerConnection.\n * @return {RTCPeerConnection} An instance of RTCPeerConnection.\n * @private\n */ _createPeerConnection(pcConfig = {}) {\n logger.log('Creating RTCPeerConnection');\n // prevent from user passing plan-b\n pcConfig.sdpSemantics = 'unified-plan';\n return new RTCPeerConnection(pcConfig);\n }\n /**\n * Set up event handlers of RTCPeerConnection events.\n * @private\n */ _setupPCListeners() {\n const pc = this._pc;\n pc.ontrack = (evt)=>{\n logger.log('Received remote media stream track');\n evt.streams.forEach((stream)=>{\n this.emit(negotiator_Negotiator.EVENTS.addStream.key, stream);\n });\n };\n pc.ondatachannel = (evt)=>{\n logger.log('Received data channel');\n const dc = evt.channel;\n this.emit(negotiator_Negotiator.EVENTS.dcCreated.key, dc);\n };\n pc.onicecandidate = (evt)=>{\n /**\n * Signals end-of-candidates by\n *\n * Firefox 68~\n * evt = { candidate: RTCIceCandidate({ candidate: \"\" }) and\n * evt = { candidate: null }\n *\n * Firefox ~67, Chrome, Safari\n * evt = { candidate: null }\n */ if (!evt.candidate || evt.candidate.candidate === '') {\n logger.log('ICE candidates gathering complete');\n return;\n }\n logger.log('Generated ICE candidate for:', evt.candidate);\n this.emit(negotiator_Negotiator.EVENTS.iceCandidate.key, evt.candidate);\n };\n pc.oniceconnectionstatechange = ()=>{\n switch(pc.iceConnectionState){\n case 'completed':\n logger.log('iceConnectionState is completed');\n // istanbul ignore next\n pc.onicecandidate = ()=>{};\n break;\n case 'disconnected':\n /**\n * Browsers(Chrome/Safari/Firefox) implement iceRestart with createOffer(),\n * but it seems buggy at 2017/08, so we don't use iceRestart to reconnect intensionally.\n * Ref: https://github.com/nttcom-webcore/ECLRTC-JS-SDK/pull/37\n */ logger.log('iceConnectionState is disconnected, trying reconnect by browser');\n break;\n case 'failed':\n logger.log('iceConnectionState is failed, closing connection');\n this.emit(negotiator_Negotiator.EVENTS.iceConnectionFailed.key);\n break;\n default:\n logger.log(`iceConnectionState is ${pc.iceConnectionState}`);\n break;\n }\n };\n // from M76, iceConnectionState does not go to `failed` when connection dropps.\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=982793\n // we polyfill it until it is resolved w/ API only Chrome implements to keep SDK behavior.\n pc.onconnectionstatechange = ()=>{\n logger.log(`connectionState is ${pc.connectionState}`);\n if (pc.connectionState === 'failed' && // this must be `disconnected`, but ensure it\n pc.iceConnectionState === 'disconnected') {\n logger.log('connectionState is failed, closing connection');\n this.emit(negotiator_Negotiator.EVENTS.iceConnectionFailed.key);\n }\n };\n pc.onnegotiationneeded = async ()=>{\n logger.log('`negotiationneeded` triggered');\n // Don't make a new offer if it's not stable or if onnegotiationneeded is called consecutively.\n // Chrome 65+ called onnegotiationneeded once per addTrack so force it to run only once.\n if (pc.signalingState === 'stable' && this._isNegotiationAllowed) {\n this._isNegotiationAllowed = false;\n // Emit negotiationNeeded event in case additional handling is needed.\n if (this.originator) {\n const offer = await this._makeOfferSdp();\n this._setLocalDescription(offer);\n this.emit(negotiator_Negotiator.EVENTS.negotiationNeeded.key);\n }\n }\n };\n pc.onsignalingstatechange = ()=>{\n logger.log(`signalingState is ${pc.signalingState}`);\n // After signaling state is getting back to 'stable',\n // If _isExecutingHandleOffer is false,\n // apply pended remote offer, which was stored when simultaneous multiple conns happened in SFU room,\n //\n // This event is fired the moment setLD completes.\n // Therefore, _isExecutingHandleOffer is basically considered to be True.\n // Normally, handleOffer reexecution using queued offer is performed\n // after setting _isExecutingHandleOffer to false in handleOffer.\n if (pc.signalingState === 'stable' && !this._isExecutingHandleOffer) {\n const offer = this._offerQueue.shift();\n if (offer) {\n this.handleOffer(offer);\n }\n }\n };\n }\n /**\n * Create Offer SDP.\n * @return {Promise<Object>} A promise that resolves with Offer SDP.\n * @private\n */ async _makeOfferSdp() {\n let offer;\n try {\n offer = await this._pc.createOffer();\n } catch (err) {\n err.type = 'webrtc';\n logger.error(err);\n this.emit(negotiator_Negotiator.EVENTS.error.key, err);\n logger.log('Failed to createOffer, ', err);\n throw err;\n }\n logger.log('Created offer.');\n if (this._audioBandwidth) {\n offer.sdp = sdpUtil.addAudioBandwidth(offer.sdp, this._audioBandwidth);\n }\n if (this._videoBandwidth) {\n offer.sdp = sdpUtil.addVideoBandwidth(offer.sdp, this._videoBandwidth);\n }\n if (this._audioCodec) {\n offer.sdp = sdpUtil.filterAudioCodec(offer.sdp, this._audioCodec);\n }\n if (this._videoCodec) {\n offer.sdp = sdpUtil.filterVideoCodec(offer.sdp, this._videoCodec);\n }\n return offer;\n }\n /**\n * Make Answer SDP and set it as local description.\n * @return {Promise<Object>} A promise that is resolved with answer when setting local SDP is completed.\n * @private\n */ async _makeAnswerSdp() {\n let answer;\n try {\n answer = await this._pc.createAnswer();\n } catch (err) {\n err.type = 'webrtc';\n logger.error(err);\n this.emit(negotiator_Negotiator.EVENTS.error.key, err);\n logger.log('Failed to createAnswer, ', err);\n throw err;\n }\n logger.log('Created answer.');\n if (this._audioBandwidth) {\n answer.sdp = sdpUtil.addAudioBandwidth(answer.sdp, this._audioBandwidth);\n }\n if (this._videoBandwidth) {\n answer.sdp = sdpUtil.addVideoBandwidth(answer.sdp, this._videoBandwidth);\n }\n if (this._audioCodec) {\n answer.sdp = sdpUtil.filterAudioCodec(answer.sdp, this._audioCodec);\n }\n if (this._videoCodec) {\n answer.sdp = sdpUtil.filterVideoCodec(answer.sdp, this._videoCodec);\n }\n try {\n await this._pc.setLocalDescription(answer);\n } catch (err1) {\n err1.type = 'webrtc';\n logger.error(err1);\n this.emit(negotiator_Negotiator.EVENTS.error.key, err1);\n logger.log('Failed to setLocalDescription, ', err1);\n throw err1;\n }\n logger.log('Set localDescription: answer');\n logger.log(`Setting local description ${JSON.stringify(answer.sdp)}`);\n return answer;\n }\n /**\n * Set local description with Offer SDP and emit offerCreated event.\n * @param {RTCSessionDescription} offer - Offer SDP.\n * @return {Promise<void>} A promise that is resolved when setting local SDP is completed.\n * @private\n */ async _setLocalDescription(offer) {\n logger.log(`Setting local description ${JSON.stringify(offer.sdp)}`);\n try {\n await this._pc.setLocalDescription(offer);\n } catch (err) {\n err.type = 'webrtc';\n logger.error(err);\n this.emit(negotiator_Negotiator.EVENTS.error.key, err);\n logger.log('Failed to setLocalDescription, ', err);\n throw err;\n }\n logger.log('Set localDescription: offer');\n this._isExpectingAnswer = true;\n this.emit(negotiator_Negotiator.EVENTS.offerCreated.key, offer);\n }\n /**\n * Set remote SDP.\n * @param {object} sdp - An object containing remote SDP.\n * @return {Promise<void>} A promise that is resolved when setting remote SDP is completed.\n * @private\n */ async _setRemoteDescription(sdp) {\n logger.log(`Setting remote description ${JSON.stringify(sdp)}`);\n try {\n await this._pc.setRemoteDescription(new RTCSessionDescription(sdp));\n this.hasRemoteDescription = true;\n } catch (err) {\n err.type = 'webrtc';\n logger.error(err);\n this.emit(negotiator_Negotiator.EVENTS.error.key, err);\n logger.log('Failed to setRemoteDescription: ', err);\n throw err;\n }\n logger.log('Set remoteDescription:', sdp.type);\n }\n /**\n * Get map object describes which kinds of tracks should be marked as recvonly\n * @param {Object} options - Options of peer.call()\n * @return {Object} Map object which streamTrack will be recvonly or not\n */ _getReceiveOnlyState(options = {}) {\n const state = {\n audio: false,\n video: false\n };\n const hasStream = options.stream instanceof MediaStream;\n const hasAudioTrack = hasStream ? options.stream.getAudioTracks().length !== 0 : false;\n const hasVideoTrack = hasStream ? options.stream.getVideoTracks().length !== 0 : false;\n // force true if stream not passed(backward compatibility)\n if (hasStream === false && options.audioReceiveEnabled === undefined && options.videoReceiveEnabled === undefined) {\n state.audio = true;\n state.video = true;\n return state;\n }\n // Set recvonly to true if `stream does not have track` and `option is true` case only\n if (options.audioReceiveEnabled && hasAudioTrack === false) {\n state.audio = true;\n }\n if (options.videoReceiveEnabled && hasVideoTrack === false) {\n state.video = true;\n }\n // If stream has track, ignore options, which results in setting sendrecv internally.\n if (options.audioReceiveEnabled === false && hasAudioTrack) {\n logger.warn('Option audioReceiveEnabled will be treated as true, because passed stream has MediaStreamTrack(kind = audio)');\n }\n if (options.videoReceiveEnabled === false && hasVideoTrack) {\n logger.warn('Option videoReceiveEnabled will be treated as true, because passed stream has MediaStreamTrack(kind = video)');\n }\n return state;\n }\n /**\n * Events the Negotiator class can emit.\n * @type {Enum}\n */ static get EVENTS() {\n return NegotiatorEvents;\n }\n /**\n * Create a negotiator\n * @param {string} name - Room name.\n */ constructor(){\n super();\n this._offerQueue = [];\n this._isExpectingAnswer = false;\n this._isNegotiationAllowed = true;\n this._isExecutingHandleOffer = false;\n this.hasRemoteDescription = false;\n }\n }\n /* harmony default export */ var negotiator = negotiator_Negotiator;\n // CONCATENATED MODULE: ./src/peer/connection.js\n const ConnectionEvents = new lib_enum[\"default\"]([\n 'candidate',\n 'offer',\n 'answer',\n 'close',\n 'forceClose', \n ]);\n /**\n * Class that manages connections to other peers.\n * @extends EventEmitter\n */ class connection_Connection extends events_default.a {\n /**\n * An id to uniquely identify the connection.\n */ get id() {\n return this._options.connectionId || this._idPrefix + this._randomIdSuffix;\n }\n /**\n * Handle an sdp answer message from the remote peer.\n * @param {object} answerMessage - Message object containing sdp answer.\n */ async handleAnswer(answerMessage) {\n if (this._pcAvailable) {\n await this._negotiator.handleAnswer(answerMessage.answer);\n this.open = true;\n this._handleQueuedMessages();\n } else {\n logger.log(`Queuing ANSWER message in ${this.id} from ${this.remoteId}`);\n this._queuedMessages.push({\n type: config.MESSAGE_TYPES.SERVER.ANSWER.key,\n payload: answerMessage\n });\n }\n }\n /**\n * Handle a candidate message from the remote peer.\n * @param {object} candidateMessage - Message object containing a candidate.\n */ handleCandidate(candidateMessage) {\n // The orginator(caller) should wait for the remote ANSWER arrival and\n // setRemoteDescription(ANSWER) before handleCandidate(addIceCandidate).\n if (this._negotiator.originator && !this._negotiator.hasRemoteDescription) {\n this._queuedMessages.push({\n type: config.MESSAGE_TYPES.SERVER.CANDIDATE.key,\n payload: candidateMessage\n });\n return;\n }\n if (this._pcAvailable) {\n this._negotiator.handleCandidate(candidateMessage.candidate);\n } else {\n logger.log(`Queuing CANDIDATE message in ${this.id} from ${this.remoteId}`);\n this._queuedMessages.push({\n type: config.MESSAGE_TYPES.SERVER.CANDIDATE.key,\n payload: candidateMessage\n });\n }\n }\n /**\n * Handle an offer message from the remote peer. Allows an offer to be updated.\n * @param {object} offerMessage - Message object containing an offer.\n */ updateOffer(offerMessage) {\n if (this.open) {\n this._negotiator.handleOffer(offerMessage.offer);\n } else {\n this._options.payload = offerMessage;\n }\n }\n /**\n * Gives a RTCPeerConnection.\n */ getPeerConnection() {\n if (!this.open) {\n return null;\n }\n return this._negotiator._pc;\n }\n /**\n * Process messages received before the RTCPeerConnection is ready.\n * @private\n */ _handleQueuedMessages() {\n for (const message of this._queuedMessages){\n switch(message.type){\n // Should we remove this ANSWER block\n // because ANSWER should be handled immediately?\n case config.MESSAGE_TYPES.SERVER.ANSWER.key:\n this.handleAnswer(message.payload);\n break;\n case config.MESSAGE_TYPES.SERVER.CANDIDATE.key:\n this.handleCandidate(message.payload);\n break;\n default:\n logger.warn('Unrecognized message type:', message.type, 'from peer:', this.remoteId);\n break;\n }\n }\n this._queuedMessages = [];\n }\n /**\n * Disconnect from remote peer.\n * @fires Connection#close\n * @deprecated Default value of forceClose may be changed to true from a future version.\n */ close(forceClose = undefined) {\n if (!this.open) {\n return;\n }\n this.open = false;\n this._negotiator.cleanup();\n this.emit(connection_Connection.EVENTS.close.key);\n if (forceClose) {\n this.emit(connection_Connection.EVENTS.forceClose.key);\n } else if (forceClose === undefined) {\n logger.warn(`Default value of the forceClose parameter will change false to true from future versions.`);\n }\n }\n /**\n * Handle messages from the negotiator.\n * @private\n */ _setupNegotiatorMessageHandlers() {\n this._negotiator.on(negotiator.EVENTS.answerCreated.key, (answer)=>{\n const connectionAnswer = {\n answer: answer,\n dst: this.remoteId,\n connectionId: this.id,\n connectionType: this.type\n };\n this.emit(connection_Connection.EVENTS.answer.key, connectionAnswer);\n });\n this._negotiator.on(negotiator.EVENTS.offerCreated.key, (offer)=>{\n const connectionOffer = {\n offer: offer,\n dst: this.remoteId,\n connectionId: this.id,\n connectionType: this.type,\n metadata: this.metadata\n };\n if (this.serialization) {\n connectionOffer.serialization = this.serialization;\n }\n if (this.label) {\n connectionOffer.label = this.label;\n }\n if (this.dcInit) {\n connectionOffer.dcInit = this.dcInit;\n }\n this.emit(connection_Connection.EVENTS.offer.key, connectionOffer);\n });\n this._negotiator.on(negotiator.EVENTS.iceCandidate.key, (candidate)=>{\n const connectionCandidate = {\n candidate: candidate,\n dst: this.remoteId,\n connectionId: this.id,\n connectionType: this.type\n };\n this.emit(connection_Connection.EVENTS.candidate.key, connectionCandidate);\n });\n this._negotiator.on(negotiator.EVENTS.iceConnectionFailed.key, ()=>{\n this.close(false);\n });\n }\n /**\n * The remote peerId.\n * @type {string}\n * @deprecated Use remoteId instead.\n */ get peer() {\n logger.warn(`${this.constructor.name}.peer is deprecated and may be removed from a future version.` + ` Please use ${this.constructor.name}.remoteId instead.`);\n return this.remoteId;\n }\n /**\n * Events the Connection can emit.\n * @type {Enum}\n */ static get EVENTS() {\n return ConnectionEvents;\n }\n /**\n * Create a connection to another peer. Cannot be called directly. Must be called by a subclass.\n * @param {string} remoteId - The peerId of the peer you are connecting to.\n * @param {object} [options] - Optional arguments for the connection.\n * @param {string} [options.connectionId] - An ID to uniquely identify the connection.\n * Defaults to random string if not specified.\n */ constructor(remoteId, options){\n super();\n options = options || {};\n // Abstract class\n if (this.constructor === connection_Connection) {\n throw new TypeError('Cannot construct Connection instances directly');\n }\n this._options = options;\n /**\n * Whether the Connection has been opened or not.\n * @type {boolean}\n */ this.open = false;\n /**\n * The connection type. Either 'media' or 'data'.\n * @type {string}\n */ this.type = undefined;\n /**\n * Any additional information to send to the peer.\n * @type {object}\n */ this.metadata = this._options.metadata;\n /**\n * PeerId of the peer this connection is connected to.\n * @type {string}\n */ this.remoteId = remoteId;\n this._negotiator = new negotiator();\n this._idPrefix = 'c_';\n this._randomIdSuffix = util.randomToken();\n this._setupNegotiatorMessageHandlers();\n }\n }\n /* harmony default export */ var peer_connection = connection_Connection;\n // EXTERNAL MODULE: ./node_modules/js-binarypack/lib/binarypack.js\n var binarypack = __webpack_require__(\"./node_modules/js-binarypack/lib/binarypack.js\");\n var binarypack_default = /*#__PURE__*/ __webpack_require__.n(binarypack);\n // EXTERNAL MODULE: ./node_modules/object-sizeof/index.js\n var object_sizeof = __webpack_require__(\"./node_modules/object-sizeof/index.js\");\n var object_sizeof_default = /*#__PURE__*/ __webpack_require__.n(object_sizeof);\n // CONCATENATED MODULE: ./src/peer/dataConnection.js\n const DCEvents = new lib_enum[\"default\"]([\n 'open',\n 'data',\n 'error'\n ]);\n DCEvents.extend(peer_connection.EVENTS.enums);\n const DCSerializations = new lib_enum[\"default\"]([\n 'binary',\n 'binary-utf8',\n 'json',\n 'none'\n ]);\n /**\n * Class that manages data connections to other peers.\n * @extends Connection\n */ class dataConnection_DataConnection extends peer_connection {\n /**\n * Start connection via negotiator and handle queued messages.\n * @return {Promise<void>} Promise that resolves when starting is done.\n */ async startConnection() {\n await this._negotiator.startConnection(this._options.payload || {\n originator: true,\n type: 'data',\n label: this.label,\n dcInit: this.dcInit,\n pcConfig: this._options.pcConfig\n });\n this._pcAvailable = true;\n this._handleQueuedMessages();\n }\n /**\n * Set up data channel event and message handlers.\n * @private\n */ _setupMessageHandlers() {\n this._dc.onopen = ()=>{\n if (this._isOnOpenCalled) {\n return;\n }\n logger.log('Data channel connection success');\n this.open = true;\n this._isOnOpenCalled = true;\n this.emit(dataConnection_DataConnection.EVENTS.open.key);\n };\n // We no longer need the reliable shim here\n this._dc.onmessage = (msg)=>{\n this._handleDataMessage(msg);\n };\n this._dc.onclose = ()=>{\n logger.log('DataChannel closed for:', this.id);\n this.close(false);\n };\n this._dc.onerror = (err)=>{\n logger.error(err);\n };\n }\n /**\n * Handle a data message from the peer.\n * @param {object} msg - The data message to handle.\n * @private\n */ _handleDataMessage(msg) {\n if (this.serialization === dataConnection_DataConnection.SERIALIZATIONS.none.key) {\n this.emit(dataConnection_DataConnection.EVENTS.data.key, msg.data);\n return;\n } else if (this.serialization === dataConnection_DataConnection.SERIALIZATIONS.json.key) {\n this.emit(dataConnection_DataConnection.EVENTS.data.key, JSON.parse(msg.data));\n return;\n }\n // Everything below is for serialization binary or binary-utf8\n const dataMeta = binarypack_default.a.unpack(msg.data);\n // If we haven't started receiving pieces of data with a given id, this will be undefined\n // In that case, we need to initialise receivedData[id] to hold incoming file chunks\n let currData = this._receivedData[dataMeta.id];\n if (!currData) {\n currData = this._receivedData[dataMeta.id] = {\n size: dataMeta.size,\n type: dataMeta.type,\n name: dataMeta.name,\n mimeType: dataMeta.mimeType,\n totalParts: dataMeta.totalParts,\n parts: new Array(dataMeta.totalParts),\n receivedParts: 0\n };\n }\n currData.receivedParts++;\n currData.parts[dataMeta.index] = dataMeta.data;\n if (currData.receivedParts === currData.totalParts) {\n delete this._receivedData[dataMeta.id];\n // recombine the sliced arraybuffers\n const ab = util.joinArrayBuffers(currData.parts);\n const unpackedData = binarypack_default.a.unpack(ab);\n let finalData;\n switch(currData.type){\n case 'Blob':\n finalData = new Blob([\n new Uint8Array(unpackedData)\n ], {\n type: currData.mimeType\n });\n break;\n case 'File':\n finalData = new File([\n new Uint8Array(unpackedData)\n ], currData.name, {\n type: currData.mimeType\n });\n break;\n default:\n finalData = unpackedData;\n }\n this.emit(dataConnection_DataConnection.EVENTS.data.key, finalData);\n }\n }\n /**\n * Send data to peer. If serialization is 'binary', it will chunk it before sending.\n * @param {*} data - The data to send to the peer.\n */ send(data) {\n if (!this.open) {\n this.emit(dataConnection_DataConnection.EVENTS.error.key, new Error('Connection is not open. You should listen for the `open` event before sending messages.'));\n return;\n }\n if (data === undefined || data === null) {\n return;\n }\n if (this.serialization === dataConnection_DataConnection.SERIALIZATIONS.none.key) {\n this._sendBuffer.push(data);\n this._startSendLoop();\n return;\n } else if (this.serialization === dataConnection_DataConnection.SERIALIZATIONS.json.key) {\n this._sendBuffer.push(JSON.stringify(data));\n this._startSendLoop();\n return;\n }\n // Everything below is for serialization binary or binary-utf8\n const packedData = binarypack_default.a.pack(data);\n const size = packedData.size;\n const type = data.constructor.name;\n const dataMeta = {\n id: util.randomId(),\n type: type,\n size: size,\n totalParts: 0\n };\n if (type === 'File') {\n dataMeta.name = data.name;\n }\n if (data instanceof Blob) {\n dataMeta.mimeType = data.type;\n }\n // dataMeta contains all possible parameters by now.\n // Adjust the chunk size to avoid issues with sending\n const chunkSize = config.maxChunkSize - object_sizeof_default()(dataMeta);\n const numSlices = Math.ceil(size / chunkSize);\n dataMeta.totalParts = numSlices;\n // Perform any required slicing\n for(let sliceIndex = 0; sliceIndex < numSlices; sliceIndex++){\n const slice = packedData.slice(sliceIndex * chunkSize, (sliceIndex + 1) * chunkSize);\n dataMeta.index = sliceIndex;\n dataMeta.data = slice;\n // Add all chunks to our buffer and start the send loop (if we haven't already)\n util.blobToArrayBuffer(binarypack_default.a.pack(dataMeta), (ab)=>{\n this._sendBuffer.push(ab);\n this._startSendLoop();\n });\n }\n }\n /**\n * Disconnect from remote peer.\n * @fires DataConnection#close\n * @deprecated Default value of forceClose may be changed to true from a future version.\n */ close(forceClose1) {\n const cleanup = (forceClose)=>{\n super.close(forceClose);\n this._isOnOpenCalled = false;\n };\n if (!this._dc) {\n cleanup(forceClose1);\n return;\n }\n // Close RTCPeerConnection after RTCDataChannel is closed.\n this._dc.onclose = ()=>{\n logger.log('DataChannel closed for:', this.id);\n cleanup(forceClose1);\n };\n if (this._dc.readyState === 'closing') {\n // Do nothing here because the onclose event fires after RTCDataChannel is closed.\n return;\n } else if (this._dc.readyState === 'closed') {\n // Close RTCPeerConnection if the RTCDataChannel was already closed.\n cleanup(forceClose1);\n } else {\n this._dc.close();\n }\n }\n /**\n * Start sending messages at intervals to allow other threads to run.\n * @private\n */ _startSendLoop() {\n if (!this.sendInterval) {\n // Define send interval\n // Try sending a new chunk with every callback\n this.sendInterval = setInterval(()=>{\n // Might need more extensive buffering than this:\n const currMsg = this._sendBuffer.shift();\n try {\n this._dc.send(currMsg);\n } catch (error) {\n this._sendBuffer.push(currMsg);\n }\n if (this._sendBuffer.length === 0) {\n clearInterval(this.sendInterval);\n this.sendInterval = undefined;\n }\n }, config.sendInterval);\n }\n }\n /**\n * Check dcInit argument is valid to enable unreliable mode.\n * See https://www.w3.org/TR/webrtc/#dom-rtcdatachannelinit\n * @param {Object} dcInit - Options passed to createDataChannel() as a RTCDataChannelInit.\n * See https://www.w3.org/TR/webrtc/#dom-rtcdatachannelinit\n * @return {boolean} Returns this dcInit has valid properties to enable unreliable mode.\n */ _isUnreliableDCInit(dcInit) {\n if (!dcInit) {\n return false;\n }\n // Either of these props are passed, works on unreliable mode.\n if ('maxRetransmits' in dcInit || 'maxPacketLifeTime' in dcInit) {\n return true;\n }\n return false;\n }\n /**\n * Possible serializations for the DataConnection.\n * @type {Enum}\n */ static get SERIALIZATIONS() {\n return DCSerializations;\n }\n /**\n * Events the DataConnection class can emit.\n * @type {Enum}\n */ static get EVENTS() {\n return DCEvents;\n }\n /**\n * Create a data connection to another peer.\n * @param {string} remoteId - The peerId of the peer you are connecting to.\n * @param {object} [options] - Optional arguments for the connection.\n * @param {string} [options.connectionId] - An ID to uniquely identify the connection. Defaults to random string if not specified.\n * @param {string} [options.serialization] - How to serialize data when sending. One of 'binary', 'json' or 'none'.\n * @param {string} [options.label] - Label to easily identify the connection on either peer.\n * @param {Object} [options.dcInit] - Options passed to createDataChannel() as a RTCDataChannelInit.\n * See https://www.w3.org/TR/webrtc/#dom-rtcdatachannelinit\n * @param {string} [options.queuedMessages] - An array of messages that were already received before the connection was created.\n * @param {string} [options.payload] - An offer message that triggered creating this object.\n */ constructor(remoteId, options){\n super(remoteId, options);\n this._idPrefix = 'dc_';\n this.type = 'data';\n this._isOnOpenCalled = false;\n /**\n * Label to easily identify the DataConnection on either peer.\n * @type {string}\n */ this.label = this._options.label || this.id;\n // Use reliable mode by default\n this.dcInit = this._options.dcInit || {};\n // Serialization is binary by default\n this.serialization = dataConnection_DataConnection.SERIALIZATIONS.binary.key;\n if (this._options.serialization) {\n if (!dataConnection_DataConnection.SERIALIZATIONS.get(this._options.serialization)) {\n // Can't emit error as there hasn't been a chance to set up listeners\n throw new Error('Invalid serialization');\n }\n this.serialization = this._options.serialization;\n if (this._isUnreliableDCInit(this.dcInit)) {\n logger.warn('You can not specify serialization with unreliable mode enabled.');\n this.serialization = dataConnection_DataConnection.SERIALIZATIONS.binary.key;\n }\n }\n // New send code properties\n this._sendBuffer = [];\n this._receivedData = {};\n // Messages stored by peer because DC was not ready yet\n this._queuedMessages = this._options.queuedMessages || [];\n // This replaces the PeerJS 'initialize' method\n this._negotiator.on(negotiator.EVENTS.dcCreated.key, (dc)=>{\n this._dc = dc;\n this._dc.binaryType = 'arraybuffer';\n this._setupMessageHandlers();\n // Manually call dataChannel.onopen() if the dataChannel opened before the event handler was set.\n // This can happen if the tab is in the background in Chrome as the event loop is handled differently.\n if (!this._isOnOpenCalled && this._dc.readyState === 'open') {\n this._dc.onopen();\n }\n });\n // If this is not the originator, we need to set the pcConfig\n if (this._options.payload) {\n this._options.payload.pcConfig = this._options.pcConfig;\n }\n }\n }\n /* harmony default export */ var dataConnection = dataConnection_DataConnection;\n // CONCATENATED MODULE: ./src/peer/mediaConnection.js\n const MCEvents = new lib_enum[\"default\"]([\n 'stream'\n ]);\n MCEvents.extend(peer_connection.EVENTS.enums);\n /**\n * Class that manages data connections to other peers.\n * @extends Connection\n */ class mediaConnection_MediaConnection extends peer_connection {\n /**\n * Start connection via negotiator and handle queued messages.\n * @return {Promise<void>} Promise that resolves when starting is done.\n */ async startConnection() {\n if (!this._options.originator) {\n return;\n }\n await this._negotiator.startConnection({\n type: 'media',\n stream: this.localStream,\n originator: this._options.originator,\n pcConfig: this._options.pcConfig,\n videoBandwidth: this._options.videoBandwidth,\n audioBandwidth: this._options.audioBandwidth,\n videoCodec: this._options.videoCodec,\n audioCodec: this._options.audioCodec,\n videoReceiveEnabled: this._options.videoReceiveEnabled,\n audioReceiveEnabled: this._options.audioReceiveEnabled\n });\n this._pcAvailable = true;\n this._handleQueuedMessages();\n }\n /**\n * Create and send an answer message.\n * @param {MediaStream} stream - The stream to send to the peer.\n * @param {object} [options] - Optional arguments for the connection.\n * @param {number} [options.videoBandwidth] - A max video bandwidth(kbps)\n * @param {number} [options.audioBandwidth] - A max audio bandwidth(kbps)\n * @param {string} [options.videoCodec] - A video codec like 'H264'\n * @param {string} [options.audioCodec] - A video codec like 'PCMU'\n */ answer(stream, options = {}) {\n if (this.localStream) {\n logger.warn('localStream already exists on this MediaConnection. Are you answering a call twice?');\n return;\n }\n this._options.payload.stream = stream;\n this.localStream = stream;\n this._negotiator.startConnection({\n type: 'media',\n stream: this.localStream,\n originator: false,\n offer: this._options.payload.offer,\n pcConfig: this._options.pcConfig,\n audioBandwidth: options.audioBandwidth,\n videoBandwidth: options.videoBandwidth,\n videoCodec: options.videoCodec,\n audioCodec: options.audioCodec\n });\n this._pcAvailable = true;\n this._handleQueuedMessages();\n this.open = true;\n }\n /**\n * Replace the stream being sent with a new one.\n * @param {MediaStream} newStream - The stream to replace the old stream with.\n */ replaceStream(newStream) {\n this._negotiator.replaceStream(newStream);\n this.localStream = newStream;\n }\n /**\n * Set up negotiator message handlers.\n * @private\n */ _setupNegotiatorMessageHandlers() {\n super._setupNegotiatorMessageHandlers();\n this._negotiator.on(negotiator.EVENTS.addStream.key, (remoteStream)=>{\n logger.log('Receiving stream', remoteStream);\n // return if the remoteStream which we will add already exists\n if (this.remoteStream && this.remoteStream.id === remoteStream.id) {\n return;\n }\n this.remoteStream = remoteStream;\n this.emit(mediaConnection_MediaConnection.EVENTS.stream.key, remoteStream);\n });\n }\n /**\n * Events the MediaConnection class can emit.\n * @type {Enum}\n */ static get EVENTS() {\n return MCEvents;\n }\n /**\n * Create a data connection to another peer.\n * @param {string} remoteId - The peerId of the peer you are connecting to.\n * @param {object} [options] - Optional arguments for the connection.\n * @param {string} [options.connectionId] - An ID to uniquely identify the connection. Defaults to random string if not specified.\n * @param {string} [options.label] - Label to easily identify the connection on either peer.\n * @param {object} [options.pcConfig] - A RTCConfiguration dictionary for the RTCPeerConnection.\n * @param {object} [options.stream] - The MediaStream to send to the remote peer. Set only when on the caller side.\n * @param {boolean} [options.originator] - true means the peer is the originator of the connection.\n * @param {string} [options.queuedMessages] - An array of messages that were already received before the connection was created.\n * @param {string} [options.payload] - An offer message that triggered creating this object.\n * @param {number} [options.videoBandwidth] - A max video bandwidth(kbps)\n * @param {number} [options.audioBandwidth] - A max audio bandwidth(kbps)\n * @param {string} [options.videoCodec] - A video codec like 'H264'\n * @param {string} [options.audioCodec] - A video codec like 'PCMU'\n * @param {boolean} [options.videoReceiveEnabled] - A flag to set video recvonly\n * @param {boolean} [options.audioReceiveEnabled] - A flag to set audio recvonly\n */ constructor(remoteId, options){\n super(remoteId, options);\n this._idPrefix = 'mc_';\n this.type = 'media';\n /**\n * The local MediaStream.\n * @type {MediaStream}\n */ this.localStream = this._options.stream;\n // Messages stored by peer because MC was not ready yet\n this._queuedMessages = this._options.queuedMessages || [];\n this._pcAvailable = false;\n }\n }\n /* harmony default export */ var mediaConnection = mediaConnection_MediaConnection;\n // EXTERNAL MODULE: ./node_modules/socket.io-parser/index.js\n var socket_io_parser = __webpack_require__(\"./node_modules/socket.io-parser/index.js\");\n var socket_io_parser_default = /*#__PURE__*/ __webpack_require__.n(socket_io_parser);\n // EXTERNAL MODULE: ./node_modules/has-binary2/index.js\n var has_binary2 = __webpack_require__(\"./node_modules/has-binary2/index.js\");\n var has_binary2_default = /*#__PURE__*/ __webpack_require__.n(has_binary2);\n // CONCATENATED MODULE: ./src/peer/room.js\n const Events = [\n 'stream',\n 'open',\n 'close',\n 'peerJoin',\n 'peerLeave',\n 'error',\n 'data',\n 'log', \n ];\n const MessageEvents = [\n 'offer',\n 'answer',\n 'candidate',\n 'leave',\n 'close',\n 'getLog',\n 'broadcast', \n ];\n const RoomEvents = new lib_enum[\"default\"](Events);\n const RoomMessageEvents = new lib_enum[\"default\"](MessageEvents);\n /**\n * Class to manage rooms where one or more users can participate\n * @extends EventEmitter\n */ class room_Room extends events_default.a {\n /**\n * Validate whether the size of data to send is over the limits or not.\n * @param {object} data - The data to Validate.\n */ validateSendDataSize(data) {\n const isBin = has_binary2_default()([\n data\n ]);\n const packet = {\n type: isBin ? socket_io_parser_default.a.BINARY_EVENT : socket_io_parser_default.a.EVENT,\n data: [\n data\n ]\n };\n const encoder = new socket_io_parser_default.a.Encoder();\n let dataSize;\n encoder.encode(packet, (encodedPackets)=>{\n dataSize = isBin ? encodedPackets[1].byteLength : encodedPackets[0].length;\n });\n const maxDataSize = config.maxDataSize;\n if (dataSize > maxDataSize) {\n throw new Error('The size of data to send must be less than 20 MB');\n }\n return true;\n }\n /**\n * Send a message to the room with a delay so that the transmission interval does not exceed the limit.\n * @param {object} msg - The data to send to this room.\n * @param {string} key - The key of broadcast event.\n */ _sendData(msg, key) {\n const sendInterval = config.minBroadcastIntervalMs;\n const now = Date.now();\n const diff = now - this.lastsend;\n // When no queued message and last message is enough old\n if (this.messageQueue.length == 0 && diff >= sendInterval) {\n // Update last send time and send message without queueing.\n this.lastsend = now;\n this.emit(key, msg);\n return;\n }\n // Send a message to the room with a delay because the transmission interval exceeds the limit.\n // Push this message into a queue.\n this.messageQueue.push({\n msg,\n key\n });\n // Return if setInterval is already set.\n if (this.sendIntervalID !== null) {\n return;\n }\n this.sendIntervalID = setInterval(()=>{\n // If all message are sent, remove this interval ID.\n if (this.messageQueue.length === 0) {\n clearInterval(this.sendIntervalID);\n this.sendIntervalID = null;\n return;\n }\n // Update last send time send message.\n const message = this.messageQueue.shift();\n this.lastsend = Date.now();\n this.emit(message.key, message.msg);\n }, sendInterval);\n }\n /**\n * Handle received data message from other paricipants in the room.\n * It emits data event.\n * @param {object} dataMessage - The data message to handle.\n * @param {ArrayBuffer} dataMessage.data - The data that a peer sent in the room.\n * @param {string} dataMessage.src - The peerId of the peer who sent the data.\n * @param {string} [dataMessage.roomName] - The name of the room user is joining.\n */ handleData(dataMessage) {\n const message = {\n data: dataMessage.data,\n src: dataMessage.src\n };\n this.emit(room_Room.EVENTS.data.key, message);\n }\n /**\n * Handle received log message.\n * It emits log event with room's logs.\n * @param {Array} logs - An array containing JSON text.\n */ handleLog(logs) {\n this.emit(room_Room.EVENTS.log.key, logs);\n }\n /**\n * Start getting room's logs from SkyWay server.\n */ getLog() {\n const message = {\n roomName: this.name\n };\n this.emit(room_Room.MESSAGE_EVENTS.getLog.key, message);\n }\n /**\n * Events the Room class can emit.\n * @type {Enum}\n */ static get EVENTS() {\n return RoomEvents;\n }\n /**\n * MediaStream received from peer in the room.\n *\n * @event Room#stream\n * @type {MediaStream}\n */ /**\n * Room is ready.\n *\n * @event Room#open\n */ /**\n * All connections in the room has closed.\n *\n * @event Room#close\n */ /**\n * New peer has joined.\n *\n * @event Room#peerJoin\n * @type {string}\n */ /**\n * A peer has left.\n *\n * @event Room#peerLeave\n * @type {string}\n */ /**\n * Error occured\n *\n * @event Room#error\n */ /**\n * Data received from peer.\n *\n * @event Room#data\n * @type {object}\n * @property {string} src - The peerId of the peer who sent the data.\n * @property {*} data - The data that a peer sent in the room.\n */ /**\n * Room's log received.\n *\n * @event Room#log\n * @type {Array}\n */ /**\n * Connection closed event.\n *\n * @event Connection#close\n */ /**\n * Events the Room class can emit.\n * @type {Enum}\n */ static get MESSAGE_EVENTS() {\n return RoomMessageEvents;\n }\n /**\n * Creates a Room instance.\n * @param {string} name - Room name.\n * @param {string} peerId - User's peerId.\n * @param {object} [options] - Optional arguments for the connection.\n * @param {object} [options.stream] - User's medias stream to send other participants.\n * @param {object} [options.pcConfig] - A RTCConfiguration dictionary for the RTCPeerConnection.\n * @param {number} [options.videoBandwidth] - A max video bandwidth(kbps)\n * @param {number} [options.audioBandwidth] - A max audio bandwidth(kbps)\n * @param {string} [options.videoCodec] - A video codec like 'H264'\n * @param {string} [options.audioCodec] - A video codec like 'PCMU'\n * @param {boolean} [options.videoReceiveEnabled] - A flag to set video recvonly\n * @param {boolean} [options.audioReceiveEnabled] - A flag to set audio recvonly\n */ constructor(name, peerId, options = {}){\n super();\n // Abstract class\n if (this.constructor === room_Room) {\n throw new TypeError('Cannot construct Room instances directly');\n }\n this.name = name;\n this._options = options;\n this._peerId = peerId;\n this._localStream = this._options.stream;\n this._pcConfig = this._options.pcConfig;\n this.lastSent = 0;\n this.messageQueue = [];\n this.sendIntervalID = null;\n }\n }\n /* harmony default export */ var peer_room = room_Room;\n // CONCATENATED MODULE: ./src/peer/sfuRoom.js\n const sfuRoom_MessageEvents = [\n 'offerRequest',\n 'candidate'\n ];\n const SFUEvents = new lib_enum[\"default\"]([]);\n SFUEvents.extend(peer_room.EVENTS.enums);\n const SFUMessageEvents = new lib_enum[\"default\"](sfuRoom_MessageEvents);\n SFUMessageEvents.extend(peer_room.MESSAGE_EVENTS.enums);\n /**\n * Class that manages SFU type room.\n * @extends Room\n */ class sfuRoom_SFURoom extends peer_room {\n /**\n * Send Offer request message to SFU server.\n * @param {MediaStream} [stream] - A media stream to send.\n */ call(stream) {\n if (stream) {\n this._localStream = stream;\n }\n const data = {\n roomName: this.name\n };\n this.emit(sfuRoom_SFURoom.MESSAGE_EVENTS.offerRequest.key, data);\n }\n /**\n * Handles Offer message from SFU server.\n * It create new RTCPeerConnection object.\n * @param {object} offerMessage - Message object containing Offer SDP.\n * @param {object} offerMessage.offer - Object containing Offer SDP text.\n */ handleOffer(offerMessage) {\n let offer = offerMessage.offer;\n /**\n * Our SFU returns unified-plan SDP.\n * Our support browsers and sdp semantics relations are\n *\n * Chrome: unified-plan\n * Firefox: unified-plan\n * Safari 12.1~: plan-b\n * Safari 12.1~: unified-plan(if user enables)\n * Safari 12.1.1~: unified-plan\n *\n * So we need to convert server offer SDP for plan-b Safari\n * We don't need to convert the answer back to Unified Plan because the server can handle Plan B.\n */ if (util.isPlanBSafari()) {\n offer = sdpUtil.unifiedToPlanB(offer);\n }\n // Handle SFU Offer and send Answer to Server\n if (this._connectionStarted) {\n this._negotiator.handleOffer(offer);\n } else {\n this._negotiator.startConnection({\n type: 'media',\n stream: this._localStream,\n pcConfig: this._options.pcConfig,\n offer: offer\n });\n this._setupNegotiatorMessageHandlers();\n this._connectionStarted = true;\n }\n }\n /**\n * Handle messages from the negotiator.\n * @private\n */ _setupNegotiatorMessageHandlers() {\n this._negotiator.on(negotiator.EVENTS.addStream.key, (stream)=>{\n const remoteStream = stream;\n if (this._msidMap[remoteStream.id]) {\n remoteStream.peerId = this._msidMap[remoteStream.id];\n // return if the remoteStream's peerID is my peerID\n if (remoteStream.peerId === this._peerId) {\n return;\n }\n // return if the cachedStream which we will add already exists\n const cachedStream = this.remoteStreams[remoteStream.id];\n if (cachedStream && cachedStream.id === remoteStream.id) {\n return;\n }\n this.remoteStreams[remoteStream.id] = remoteStream;\n this.emit(sfuRoom_SFURoom.EVENTS.stream.key, remoteStream);\n logger.log(`Received remote media stream for ${remoteStream.peerId} in ${this.name}`);\n } else {\n this._unknownStreams[remoteStream.id] = remoteStream;\n }\n });\n this._negotiator.on(negotiator.EVENTS.negotiationNeeded.key, ()=>{\n // Renegotiate by requesting an offer then sending an answer when one is created.\n const offerRequestMessage = {\n roomName: this.name\n };\n this.emit(sfuRoom_SFURoom.MESSAGE_EVENTS.offerRequest.key, offerRequestMessage);\n });\n this._negotiator.on(negotiator.EVENTS.answerCreated.key, (answer)=>{\n // If we use unified-plan SDP and send it to our SFU,\n // of course it must be treated as unified-plan SDP too.\n // We need to ensure it for some reason.(see its implementation)\n if (!util.isPlanBSafari()) {\n answer.sdp = sdpUtil.ensureUnifiedPlan(answer.sdp);\n }\n const answerMessage = {\n roomName: this.name,\n answer: answer\n };\n this.emit(sfuRoom_SFURoom.MESSAGE_EVENTS.answer.key, answerMessage);\n });\n this._negotiator.on(negotiator.EVENTS.iceConnectionFailed.key, ()=>{\n this.close();\n });\n this._negotiator.on(negotiator.EVENTS.iceCandidate.key, (candidate)=>{\n const candidateMessage = {\n roomName: this.name,\n candidate: candidate\n };\n this.emit(sfuRoom_SFURoom.MESSAGE_EVENTS.candidate.key, candidateMessage);\n });\n }\n /**\n * Handles Join message from SFU server.\n * It emits peerJoin event and if the message contains user's peerId, also emits open event.\n * @param {Object} joinMessage - Message object.\n * @param {string} joinMessage.src - The peerId of the peer that joined.\n * @param {string} joinMessage.roomName - The name of the joined room.\n * @param {Array} joinMessage.roomMembers - Array of peerId string.\n */ handleJoin(joinMessage) {\n const { src , roomMembers } = joinMessage;\n if (src === this._peerId) {\n this._open = true;\n // init w/ members already in room(ignore myself)\n this.members = roomMembers.filter((peerId)=>peerId !== src\n );\n this.call(this._localStream);\n this.emit(sfuRoom_SFURoom.EVENTS.open.key);\n // At this stage the Server has acknowledged us joining a room\n return;\n }\n this.members.push(src);\n this.emit(sfuRoom_SFURoom.EVENTS.peerJoin.key, src);\n }\n /**\n * Handles Leave message from SFU server.\n * It emits peerLeave message.\n * @param {Object} leaveMessage - Message from SFU server.\n */ handleLeave(leaveMessage) {\n if (!this._open) {\n return;\n }\n const src = leaveMessage.src;\n const index = this.members.indexOf(src);\n if (index >= 0) {\n this.members.splice(index, 1);\n }\n // Delete leaving peer's streams\n for(const msid in this.remoteStreams){\n if (this.remoteStreams[msid].peerId === src) {\n delete this.remoteStreams[msid];\n delete this._msidMap[msid];\n delete this._unknownStreams[msid];\n }\n }\n this.emit(sfuRoom_SFURoom.EVENTS.peerLeave.key, src);\n }\n /**\n * Send data to all participants in the room with WebSocket.\n * It emits broadcast event.\n * @param {*} data - The data to send.\n */ send(data) {\n if (!this._open) {\n return;\n }\n if (!this.validateSendDataSize(data)) {\n return;\n }\n const message = {\n roomName: this.name,\n data: data\n };\n this._sendData(message, sfuRoom_SFURoom.MESSAGE_EVENTS.broadcast.key);\n }\n /**\n * Close PeerConnection and emit leave and close event.\n */ close() {\n if (!this._open) {\n return;\n }\n if (this._negotiator) {\n this._negotiator.cleanup();\n }\n this._open = false;\n const message = {\n roomName: this.name\n };\n this.emit(sfuRoom_SFURoom.MESSAGE_EVENTS.leave.key, message);\n this.emit(sfuRoom_SFURoom.EVENTS.close.key);\n }\n /**\n * Replace the stream being sent with a new one.\n * @param {MediaStream} newStream - The stream to replace the old stream with.\n */ replaceStream(newStream) {\n this._localStream = newStream;\n this._negotiator.replaceStream(newStream);\n }\n /**\n * Update the entries in the msid to peerId map.\n * @param {Object} msids - Object with msids as the key and peerIds as the values.\n */ updateMsidMap(msids = {}) {\n this._msidMap = msids;\n for (const msid of Object.keys(this._unknownStreams)){\n if (this._msidMap[msid]) {\n const remoteStream = this._unknownStreams[msid];\n remoteStream.peerId = this._msidMap[remoteStream.id];\n delete this._unknownStreams[msid];\n if (remoteStream.peerId === this._peerId) {\n return;\n }\n this.remoteStreams[remoteStream.id] = remoteStream;\n this.emit(sfuRoom_SFURoom.EVENTS.stream.key, remoteStream);\n }\n }\n }\n /**\n * Get a RTCPeerConnection.\n */ getPeerConnection() {\n if (!this._connectionStarted) {\n return null;\n }\n return this._negotiator._pc;\n }\n /**\n * Events the SFURoom class can emit.\n * @type {Enum}\n */ static get EVENTS() {\n return SFUEvents;\n }\n /**\n * Message events the MeshRoom class can emit.\n * @type {Enum}\n */ static get MESSAGE_EVENTS() {\n return SFUMessageEvents;\n }\n /**\n * Creates a SFU type room.\n * @param {string} name - Room name.\n * @param {string} peerId - peerId - User's peerId.\n * @param {object} [options] - Optional arguments for the connection.\n * @param {MediaStream} [options.stream] - The MediaStream to send to the remote peer.\n * @param {object} [options.pcConfig] - A RTCConfiguration dictionary for the RTCPeerConnection.\n * @param {number} [options.videoBandwidth] - A max video bandwidth(kbps)\n * @param {number} [options.audioBandwidth] - A max audio bandwidth(kbps)\n * @param {string} [options.videoCodec] - A video codec like 'H264'\n * @param {string} [options.audioCodec] - A video codec like 'PCMU'\n * @param {boolean} [options.videoReceiveEnabled] - A flag to set video recvonly\n * @param {boolean} [options.audioReceiveEnabled] - A flag to set audio recvonly\n */ constructor(name, peerId, options){\n super(name, peerId, options);\n this.remoteStreams = {};\n this.members = [];\n this._open = false;\n this._msidMap = {};\n this._unknownStreams = {};\n this._negotiator = new negotiator();\n }\n }\n /* harmony default export */ var peer_sfuRoom = sfuRoom_SFURoom;\n // CONCATENATED MODULE: ./src/peer/meshRoom.js\n const meshRoom_MessageEvents = [\n 'broadcastByDC',\n 'getPeers'\n ];\n const MeshEvents = new lib_enum[\"default\"]([]);\n MeshEvents.extend(peer_room.EVENTS.enums);\n const MeshMessageEvents = new lib_enum[\"default\"](meshRoom_MessageEvents);\n MeshMessageEvents.extend(peer_room.MESSAGE_EVENTS.enums);\n /**\n * Class that manages fullmesh type room.\n * @extends Room\n */ class meshRoom_MeshRoom extends peer_room {\n /**\n * Called by client app to create MediaConnections.\n * It emit getPeers event for getting peerIds of all of room participant.\n * After getting peerIds, makeMCs is called.\n * @param {MediaStream} [stream] - The MediaStream to send to the remote peer.\n */ call(stream) {\n if (stream) {\n this._localStream = stream;\n }\n const data = {\n roomName: this.name,\n type: 'media'\n };\n this.emit(meshRoom_MeshRoom.MESSAGE_EVENTS.getPeers.key, data);\n }\n /**\n * Called by client app to create DataConnections.\n * It emit getPeers event for getting peerIds of all of room participant.\n * After getting peerIds, makeDCs is called.\n */ connect() {\n const data = {\n roomName: this.name,\n type: 'data'\n };\n this.emit(meshRoom_MeshRoom.MESSAGE_EVENTS.getPeers.key, data);\n }\n /**\n * Start video call to all participants in the room.\n * @param {Array} peerIds - Array of peerIds you are calling to.\n */ makeMediaConnections(peerIds) {\n const options = {\n stream: this._localStream,\n pcConfig: this._pcConfig,\n originator: true,\n videoBandwidth: this._options.videoBandwidth,\n audioBandwidth: this._options.audioBandwidth,\n videoCodec: this._options.videoCodec,\n audioCodec: this._options.audioCodec,\n videoReceiveEnabled: this._options.videoReceiveEnabled,\n audioReceiveEnabled: this._options.audioReceiveEnabled\n };\n this._makeConnections(peerIds, 'media', options);\n }\n /**\n * Start data connection to all participants in the room.\n * @param {Array} peerIds - Array of peerIds you are connecting to.\n */ makeDataConnections(peerIds) {\n const options = {\n pcConfig: this._pcConfig\n };\n this._makeConnections(peerIds, 'data', options);\n }\n /**\n * Handle join message from new participant in the room.\n * It emits peerJoin event and if the message contains user's peerId, also emits open event.\n * @param {Object} joinMessage - Message object.\n * @param {string} joinMessage.src - The peerId of the peer that joined.\n * @param {string} joinMessage.roomName - The name of the joined room.\n */ handleJoin(joinMessage) {\n const src = joinMessage.src;\n if (src === this._peerId) {\n this.call(this._localStream);\n this.emit(meshRoom_MeshRoom.EVENTS.open.key);\n // At this stage the Server has acknowledged us joining a room\n return;\n }\n this.emit(meshRoom_MeshRoom.EVENTS.peerJoin.key, src);\n }\n /**\n * Handle leave message from other participant in the room.\n * It deletes connection from room's connections property and emits peerLeave event.\n * @param {Object} leaveMessage - Message object.\n * @param {string} leaveMessage.src - The peerId of the peer that left.\n * @param {string} leaveMessage.roomName - The name of the left room.\n */ handleLeave(leaveMessage) {\n const src = leaveMessage.src;\n this._deleteConnections(src);\n this.emit(meshRoom_MeshRoom.EVENTS.peerLeave.key, src);\n }\n /**\n * Handle Offer message from new participant and create a Connection instance.\n * @param {object} offerMessage - Message object containing Offer SDP.\n * @param {object} offerMessage.offer - Object containing Offer SDP text.\n * @param {string} offerMessage.connectionId - An ID to uniquely identify the connection.\n * @param {string} offerMessage.connectionType - One of 'media' or 'data'.\n * @param {string} offerMessage.dst - The peerId of the peer who receiving the Offer.\n * @param {string} offerMessage.roomName - The name of the room user is joining.\n * @param {string} offerMessage.src - The peerId of the peer who sent the Offer.\n */ handleOffer(offerMessage) {\n const connectionId = offerMessage.connectionId;\n let connection = this._getConnection(offerMessage.src, connectionId);\n if (connection) {\n connection.updateOffer(offerMessage);\n return;\n }\n if (offerMessage.connectionType === 'media') {\n if (this._hasConnection(offerMessage.src)) {\n // When two or more users join at the same time, they send each other an offer.\n // In order to prevent two connections between peerA and peerB, only the one with a small ID will be processed.\n if (this._peerId > offerMessage.src) return;\n }\n connection = new mediaConnection(offerMessage.src, {\n connectionId: connectionId,\n payload: offerMessage,\n metadata: offerMessage.metadata,\n queuedMessages: this._queuedMessages[connectionId],\n pcConfig: this._pcConfig\n });\n connection.startConnection();\n logger.log('MediaConnection created in OFFER');\n this._addConnection(offerMessage.src, connection);\n this._setupMessageHandlers(connection);\n connection.answer(this._localStream, {\n videoBandwidth: this._options.videoBandwidth,\n audioBandwidth: this._options.audioBandwidth,\n videoCodec: this._options.videoCodec,\n audioCodec: this._options.audioCodec,\n videoReceiveEnabled: this._options.videoReceiveEnabled,\n audioReceiveEnabled: this._options.audioReceiveEnabled\n });\n } else {\n logger.warn(`Received malformed connection type: ${offerMessage.connectionType}`);\n }\n }\n /**\n * Handle Answer message from participant in the room.\n * @param {object} answerMessage - Message object containing Answer SDP.\n * @param {object} answerMessage.answer - Object containing Answer SDP text.\n * @param {string} answerMessage.connectionId - An ID to uniquely identify the connection.\n * @param {string} answerMessage.connectionType - One of 'media' or 'data'.\n * @param {string} answerMessage.dst - The peerId of the peer who receiving the Answer.\n * @param {string} answerMessage.roomName - The name of the room user is joining.\n * @param {string} answerMessage.src - The peerId of the peer who sent the Answer.\n */ handleAnswer(answerMessage) {\n const connection = this._getConnection(answerMessage.src, answerMessage.connectionId);\n if (connection) {\n connection.handleAnswer(answerMessage);\n }\n }\n /**\n * Handles Candidate message from participant in the room.\n * @param {object} candidateMessage - Message object containing Candidate SDP.\n * @param {object} candidateMessage.candidate - Object containing Candidate SDP text.\n * @param {string} candidateMessage.connectionId - An ID to uniquely identify the connection.\n * @param {string} candidateMessage.connectionType - One of 'media' or 'data'.\n * @param {string} candidateMessage.dst - The peerId of the peer who receiving the Candidate.\n * @param {string} candidateMessage.roomName - The name of the room user is joining.\n * @param {string} candidateMessage.src - The peerId of the peer who sent the Candidate.\n */ handleCandidate(candidateMessage) {\n const connection = this._getConnection(candidateMessage.src, candidateMessage.connectionId);\n if (connection) {\n connection.handleCandidate(candidateMessage);\n } else {\n // Looks like PeerConnection hasn't completed setRemoteDescription\n if (this._queuedMessages[candidateMessage.connectionId] === undefined) {\n this._queuedMessages[candidateMessage.connectionId] = [];\n }\n this._queuedMessages[candidateMessage.connectionId].push({\n type: config.MESSAGE_TYPES.SERVER.CANDIDATE.key,\n payload: candidateMessage\n });\n }\n }\n /**\n * Send data to all participants in the room with WebSocket.\n * It emits broadcast event.\n * @param {*} data - The data to send.\n */ send(data) {\n if (!this.validateSendDataSize(data)) {\n return;\n }\n const message = {\n roomName: this.name,\n data: data\n };\n this._sendData(message, meshRoom_MeshRoom.MESSAGE_EVENTS.broadcast.key);\n }\n /**\n * Close all connections in the room.\n */ close() {\n for(const peerId in this.connections){\n if (this.connections.hasOwnProperty(peerId)) {\n this.connections[peerId].forEach((connection)=>{\n connection.close(false);\n });\n }\n }\n const message = {\n roomName: this.name\n };\n this.emit(meshRoom_MeshRoom.MESSAGE_EVENTS.leave.key, message);\n this.emit(meshRoom_MeshRoom.EVENTS.close.key);\n }\n /**\n * Replace the stream being sent on all MediaConnections with a new one.\n * @param {MediaStream} newStream - The stream to replace the old stream with.\n */ replaceStream(newStream) {\n this._localStream = newStream;\n for(const peerId in this.connections){\n if (this.connections.hasOwnProperty(peerId)) {\n this.connections[peerId].forEach((connection)=>{\n if (connection.type === 'media') {\n connection.replaceStream(newStream);\n }\n });\n }\n }\n }\n /**\n * Get all of each peer's RTCPeerConnection.\n */ getPeerConnections() {\n const peerConnections = {};\n for (const [peerId, [connection]] of Object.entries(this.connections)){\n const pc = connection.getPeerConnection();\n if (pc) {\n peerConnections[peerId] = pc;\n }\n }\n return peerConnections;\n }\n /**\n * Append a connection to peer's array of connections, stored in room.connections.\n * @param {string} peerId - User's peerID.\n * @param {MediaConnection|DataConnection} connection - An instance of MediaConnection or DataConnection.\n * @private\n */ _addConnection(peerId, connection) {\n if (!this.connections[peerId]) {\n this.connections[peerId] = [];\n }\n this.connections[peerId].push(connection);\n }\n /**\n * Start connections and add handlers.\n * @param {Array} peerIds - Array of peerIds you are creating connections for.\n * @param {string} type - Either 'data' or 'media'.\n * @param {Object} options - Options to pass to the connection constructor.\n * @private\n */ _makeConnections(peerIds, type, options) {\n peerIds.filter((peerId)=>{\n return peerId !== this._peerId;\n }).filter((peerId)=>{\n return !this._hasConnection(peerId);\n }).forEach((peerId)=>{\n let connection;\n switch(type){\n case 'data':\n connection = new dataConnection(peerId, options);\n break;\n case 'media':\n connection = new mediaConnection(peerId, options);\n break;\n default:\n return;\n }\n connection.startConnection();\n this._addConnection(peerId, connection);\n this._setupMessageHandlers(connection);\n logger.log(`${type} connection to ${peerId} created in ${this.name}`);\n });\n }\n /**\n * Delete a connection according to given peerId.\n * @param {string} peerId - The id of the peer that will be deleted.\n * @private\n */ _deleteConnections(peerId) {\n if (this.connections[peerId]) {\n this.connections[peerId].forEach((connection)=>{\n connection.close(false);\n });\n delete this.connections[peerId];\n }\n }\n /**\n * Return a connection according to given peerId and connectionId.\n * @param {string} peerId - User's PeerId.\n * @param {string} connectionId - An ID to uniquely identify the connection.\n * @return {Connection} A connection according to given peerId and connectionId.\n * @private\n */ _getConnection(peerId, connectionId) {\n if (this.connections && this.connections[peerId]) {\n const conn = this.connections[peerId].filter((connection)=>{\n return connection.id === connectionId;\n });\n return conn[0];\n }\n return null;\n }\n /**\n * Return whether peer has already made a connection to 'peerId' or not\n * @param {string} peerId - User's PeerId.\n * @return {boolean} - Whether peer has already made a connection to 'peerId' or not\n * @private\n */ _hasConnection(peerId) {\n return this.connections[peerId] && this.connections[peerId].length > 0;\n }\n /**\n * Set up connection event and message handlers.\n * @param {MediaConnection|DataConnection} connection - An instance of MediaConnection or DataConnection.\n * @private\n */ _setupMessageHandlers(connection) {\n connection.on(peer_connection.EVENTS.offer.key, (offerMessage)=>{\n offerMessage.roomName = this.name;\n this.emit(meshRoom_MeshRoom.MESSAGE_EVENTS.offer.key, offerMessage);\n });\n connection.on(peer_connection.EVENTS.answer.key, (answerMessage)=>{\n answerMessage.roomName = this.name;\n this.emit(meshRoom_MeshRoom.MESSAGE_EVENTS.answer.key, answerMessage);\n });\n connection.on(peer_connection.EVENTS.candidate.key, (candidateMessage)=>{\n candidateMessage.roomName = this.name;\n this.emit(meshRoom_MeshRoom.MESSAGE_EVENTS.candidate.key, candidateMessage);\n });\n if (connection.type === 'media') {\n connection.on(mediaConnection.EVENTS.stream.key, (remoteStream)=>{\n remoteStream.peerId = connection.remoteId;\n this.emit(meshRoom_MeshRoom.EVENTS.stream.key, remoteStream);\n });\n }\n }\n /**\n * Events the MeshRoom class can emit.\n * @type {Enum}\n */ static get EVENTS() {\n return MeshEvents;\n }\n /**\n * Message events the MeshRoom class can emit.\n * @type {Enum}\n */ static get MESSAGE_EVENTS() {\n return MeshMessageEvents;\n }\n /**\n * Create a fullmesh room.\n * @param {string} name - Room name.\n * @param {string} peerId - User's peerId.\n * @param {object} [options] - Optional arguments for the connection.\n * @param {MediaStream} [options.stream] - The MediaStream to send to the remote peer.\n * @param {object} [options.pcConfig] - A RTCConfiguration dictionary for the RTCPeerConnection.\n * @param {number} [options.videoBandwidth] - A max video bandwidth(kbps)\n * @param {number} [options.audioBandwidth] - A max audio bandwidth(kbps)\n * @param {string} [options.videoCodec] - A video codec like 'H264'\n * @param {string} [options.audioCodec] - A video codec like 'PCMU'\n * @param {boolean} [options.videoReceiveEnabled] - A flag to set video recvonly\n * @param {boolean} [options.audioReceiveEnabled] - A flag to set audio recvonly\n */ constructor(name, peerId, options){\n super(name, peerId, options);\n this.connections = {};\n // messages(candidates) received before connection is ready\n this._queuedMessages = {};\n }\n }\n /* harmony default export */ var peer_meshRoom = meshRoom_MeshRoom;\n // CONCATENATED MODULE: ./src/peer.js\n const PeerEvents = new lib_enum[\"default\"]([\n 'open',\n 'error',\n 'call',\n 'connection',\n 'expiresin',\n 'close',\n 'disconnected', \n ]);\n /**\n * Class that manages all p2p connections and rooms.\n * This class contains socket.io message handlers.\n * @extends EventEmitter\n */ class peer_Peer extends events_default.a {\n /**\n * Creates new MediaConnection.\n * @param {string} peerId - The peerId of the peer you are connecting to.\n * @param {MediaStream} [stream] - The MediaStream to send to the remote peer.\n * If not set, the caller creates offer SDP with `sendonly` attribute.\n * @param {object} [options] - Optional arguments for the connection.\n * @param {string} [options.connectionId] - An ID to uniquely identify the connection.\n * @param {string} [options.label] - Label to easily identify the connection on either peer.\n * @param {number} [options.videoBandwidth] - A max video bandwidth(kbps)\n * @param {number} [options.audioBandwidth] - A max audio bandwidth(kbps)\n * @param {string} [options.videoCodec] - A video codec like 'H264'\n * @param {string} [options.audioCodec] - A video codec like 'PCMU'\n * @param {boolean} [options.videoReceiveEnabled] - A flag to set video recvonly\n * @param {boolean} [options.audioReceiveEnabled] - A flag to set audio recvonly\n * @return {MediaConnection} An instance of MediaConnection.\n */ call(peerId, stream, options = {}) {\n if (!this._checkOpenStatus()) {\n return;\n }\n options.originator = true;\n options.stream = stream;\n options.pcConfig = this._pcConfig;\n const mc = new mediaConnection(peerId, options);\n mc.startConnection();\n logger.log('MediaConnection created in call method');\n this._addConnection(peerId, mc);\n return mc;\n }\n /**\n * Creates new DataConnection.\n * @param {string} peerId - User's peerId.\n * @param {Object} [options] - Optional arguments for DataConnection.\n * @param {string} [options.connectionId] - An ID to uniquely identify the connection.\n * @param {string} [options.label] - Label to easily identify the connection on either peer.\n * @param {Object} [options.dcInit] - Options passed to createDataChannel() as a RTCDataChannelInit.\n * See https://www.w3.org/TR/webrtc/#dom-rtcdatachannelinit\n * @param {string} [options.serialization] - How to serialize data when sending.\n * One of 'binary', 'json' or 'none'.\n * @return {DataConnection} An instance of DataConnection.\n */ connect(peerId, options = {}) {\n if (!this._checkOpenStatus()) {\n return;\n }\n options.pcConfig = this._pcConfig;\n const connection = new dataConnection(peerId, options);\n connection.startConnection();\n logger.log('DataConnection created in connect method');\n this._addConnection(peerId, connection);\n return connection;\n }\n /**\n * Join fullmesh type or SFU type room that two or more users can join.\n * @param {string} roomName - The name of the room user is joining to.\n * @param {object} [roomOptions]- Optional arguments for the RTCPeerConnection.\n * @param {string} [roomOptions.mode='mesh'] - One of 'sfu' or 'mesh'.\n * @param {MediaStream} [roomOptions.stream] - Media stream user wants to emit.\n * @param {number} [roomOptions.videoBandwidth] - A max video bandwidth(kbps)\n * @param {number} [roomOptions.audioBandwidth] - A max audio bandwidth(kbps)\n * @param {string} [roomOptions.videoCodec] - A video codec like 'H264'\n * @param {string} [roomOptions.audioCodec] - A video codec like 'PCMU'\n * @param {boolean} [options.videoReceiveEnabled] - A flag to set video recvonly\n * @param {boolean} [options.audioReceiveEnabled] - A flag to set audio recvonly\n * @return {SFURoom|MeshRoom} - An instance of SFURoom or MeshRoom.\n */ joinRoom(roomName, roomOptions = {}) {\n if (!this._checkOpenStatus()) {\n return;\n }\n if (!roomName) {\n const err = new Error('Room name must be defined.');\n err.type = 'room-error';\n logger.error(err);\n this.emit(peer_Peer.EVENTS.error.key, err);\n return null;\n }\n roomOptions.pcConfig = this._pcConfig;\n roomOptions.peerId = this.id;\n if (roomOptions.mode === 'sfu') {\n return this._initializeSfuRoom(roomName, roomOptions);\n }\n // mode is blank or 'mesh'\n return this._initializeFullMeshRoom(roomName, roomOptions);\n }\n /**\n * Returns a connection according to given peerId and connectionId.\n * @param {string} peerId - The peerId of the connection to be searched.\n * @param {Object} connectionId - An ID to uniquely identify the connection.\n * @return {MediaConnection|DataConnection} Search result.\n */ getConnection(peerId, connectionId) {\n if (!this._checkOpenStatus()) {\n return;\n }\n if (this.connections[peerId]) {\n for (const connection of this.connections[peerId]){\n if (connection.id === connectionId) {\n return connection;\n }\n }\n }\n return null;\n }\n /**\n * Whether the socket is connecting to the signalling server or not.\n * @type {boolean} The open status.\n */ get open() {\n return this.socket && this.socket.isOpen;\n }\n /**\n * Close all connections and disconnect socket.\n */ destroy() {\n this._cleanup();\n this.disconnect(true);\n }\n /**\n * Close socket and clean up some properties, then emit disconnect event.\n * @deprecated Use peer's destroy method instead. This method may be removed in future versions.\n */ disconnect(suppressWarning = false) {\n if (!suppressWarning) {\n logger.warn(`Use peer's destroy method instead. This method may be removed in future versions.`);\n }\n if (this.open) {\n this.socket.close();\n this.emit(peer_Peer.EVENTS.disconnected.key, this.id);\n }\n }\n /**\n * Reconnect to SkyWay server.\n * @deprecated Recreate peer instance instead. This method may be removed in future versions.\n */ reconnect() {\n logger.warn(`Recreate peer instance instead. This method may be removed in future versions.`);\n if (!this.open) {\n this.socket.reconnect();\n }\n }\n /**\n * Update server-side credential by sending a request in order to extend TTL.\n * @param {object} newCredential - The new credential generated by user.\n * @param {number} [newCredential.timestamp] - Current UNIX timestamp.\n * @param {number} [newCredential.ttl] - Time to live; The credential expires at timestamp + ttl.\n * @param {string} [newCredential.authToken] - Credential token calculated with HMAC.\n */ updateCredential(newCredential) {\n this.socket.updateCredential(newCredential);\n }\n /**\n * Call Rest API and get the list of peerIds assciated with API key.\n * @param {function} cb - The callback function that is called after XHR.\n */ listAllPeers(cb) {\n if (!this._checkOpenStatus()) {\n return;\n }\n cb = cb || function() {};\n const self = this;\n const http = new XMLHttpRequest();\n const url = `${this.socket.signalingServerUrl}/api/apikeys/${this.options.key}/clients/`;\n // If there's no ID we need to wait for one before trying to init socket.\n http.open('get', url, true);\n /* istanbul ignore next */ http.onerror = function() {\n self._abort('server-error', 'Could not get peers from the server.');\n cb([]);\n };\n http.onreadystatechange = function() {\n if (http.readyState !== 4) {\n return;\n }\n if (http.status === 401) {\n cb([]);\n const err = new Error(\"It doesn't look like you have permission to list peers IDs. \" + 'Please enable the SkyWay REST API on dashboard');\n err.type = 'list-error';\n logger.error(err);\n self.emit(peer_Peer.EVENTS.error.key, err);\n } else if (http.status === 200) {\n cb(JSON.parse(http.responseText));\n } else {\n cb([]);\n }\n };\n http.send(null);\n }\n /**\n * Fetch whether peer exists from signaling server\n * @param {string} peerId - The PeerId that want to fetch.\n * @return {Promise<boolean>} A Promise that resolves if fetch is done.\n */ async fetchPeerExists(peerId) {\n if (!this.open) {\n throw new Error('Peer is not yet connected to signaling server');\n }\n const currentTimestamp = new Date().getTime();\n if (this._lastFetchPeerExistsTime !== undefined && currentTimestamp - this._lastFetchPeerExistsTime < 1000) {\n throw new Error('fetchPeerExists can only be called once per second');\n }\n this._lastFetchPeerExistsTime = currentTimestamp;\n const url = `${this.socket.signalingServerUrl}/api/apikeys/${this.options.key}/peers/${peerId}/exists`;\n const response = await fetch(url);\n if (response.status === 200) {\n const body = await response.json();\n return body.exists;\n } else {\n const body = await response.text();\n throw new Error(body);\n }\n }\n /**\n * Return socket open status and emit error when it's not open.\n * @return {boolean} - The socket status.\n */ _checkOpenStatus() {\n if (!this.open) {\n this._emitNotConnectedError();\n }\n return this.open;\n }\n /**\n * Emit not connected error.\n */ _emitNotConnectedError() {\n logger.warn('You cannot connect to a new Peer because you are not connecting to SkyWay server now.' + 'You can create a new Peer to reconnect, or call reconnect() ' + 'on this peer if you believe its ID to still be available.');\n const err = new Error('Cannot connect to new Peer before connecting to SkyWay server or after disconnecting from the server.');\n err.type = 'disconnected';\n logger.error(err);\n this.emit(peer_Peer.EVENTS.error.key, err);\n }\n /**\n * Creates new Socket and initalize its message handlers.\n * @param {string} id - User's peerId.\n * @private\n */ _initializeServerConnection(id) {\n this.socket = new socket(this.options.key, {\n secure: this.options.secure,\n host: this.options.host,\n port: this.options.port,\n dispatcherSecure: this.options.dispatcherSecure,\n dispatcherHost: this.options.dispatcherHost,\n dispatcherPort: this.options.dispatcherPort\n });\n this._setupMessageHandlers();\n this.socket.on('error', (error)=>{\n this._abort('socket-error', error);\n });\n this.socket.on('disconnect', ()=>{\n // If we haven't explicitly disconnected, emit error and disconnect.\n this.disconnect(true);\n const err = new Error('Lost connection to server.');\n err.type = 'socket-error';\n logger.error(err);\n this.emit(peer_Peer.EVENTS.error.key, err);\n });\n this.socket.start(id, this.options.token, this.options.credential);\n }\n /**\n * Create and setup a SFURoom instance and emit SFU_JOIN message to SkyWay server.\n * @param {string} roomName - The name of the room user is joining to.\n * @param {object} [roomOptions] - Optional arguments for the RTCPeerConnection.\n * @param {object} [roomOptions.pcConfig] - A RTCConfiguration dictionary for the RTCPeerConnection.\n * @param {string} [roomOptions.peerId] - User's peerId.\n * @param {string} [roomOptions.mode='mesh'] - One of 'sfu' or 'mesh'.\n * @param {MediaStream} [roomOptions.stream] - Media stream user wants to emit.\n * @param {number} [roomOptions.videoBandwidth] - A max video bandwidth(kbps)\n * @param {number} [roomOptions.audioBandwidth] - A max audio bandwidth(kbps)\n * @param {string} [roomOptions.videoCodec] - A video codec like 'H264'\n * @param {string} [roomOptions.audioCodec] - A video codec like 'PCMU'\n * @param {boolean} [roomOptions.videoReceiveEnabled] - A flag to set video recvonly\n * @param {boolean} [roomOptions.audioReceiveEnabled] - A flag to set audio recvonly\n * @return {SFURoom} - An instance of SFURoom.\n */ _initializeSfuRoom(roomName, roomOptions = {}) {\n if (this.rooms[roomName]) {\n return this.rooms[roomName];\n }\n const sfuRoom = new peer_sfuRoom(roomName, this.id, roomOptions);\n this.rooms[roomName] = sfuRoom;\n this._setupSFURoomMessageHandlers(sfuRoom);\n const data = {\n roomName: roomName,\n roomType: 'sfu'\n };\n this.socket.send(config.MESSAGE_TYPES.CLIENT.ROOM_JOIN.key, data);\n return sfuRoom;\n }\n /**\n * Create and setup a MeshRoom instance and emit MESH_JOIN message to SkyWay server.\n * @param {string} roomName - The name of the room user is joining to.\n * @param {object} roomOptions - Optional arguments for the RTCPeerConnection.\n * @param {string} roomOptions.pcConfig - A RTCConfiguration dictionary for the RTCPeerConnection.\n * @param {string} roomOptions.peerId - User's peerId.\n * @param {string} [roomOptions.mode='mesh'] - One of 'sfu' or 'mesh'.\n * @param {MediaStream} [roomOptions.stream] - Media stream user wants to emit.\n * @param {number} [roomOptions.videoBandwidth] - A max video bandwidth(kbps)\n * @param {number} [roomOptions.audioBandwidth] - A max audio bandwidth(kbps)\n * @param {string} [roomOptions.videoCodec] - A video codec like 'H264'\n * @param {string} [roomOptions.audioCodec] - A video codec like 'PCMU'\n * @param {boolean} [roomOptions.videoReceiveEnabled] - A flag to set video recvonly\n * @param {boolean} [roomOptions.audioReceiveEnabled] - A flag to set audio recvonly\n * @return {SFURoom} - An instance of MeshRoom.\n */ _initializeFullMeshRoom(roomName, roomOptions = {}) {\n if (this.rooms[roomName]) {\n return this.rooms[roomName];\n }\n const meshRoom = new peer_meshRoom(roomName, this.id, roomOptions);\n this.rooms[roomName] = meshRoom;\n this._setupMeshRoomMessageHandlers(meshRoom);\n const data = {\n roomName: roomName,\n roomType: 'mesh'\n };\n this.socket.send(config.MESSAGE_TYPES.CLIENT.ROOM_JOIN.key, data);\n return meshRoom;\n }\n /**\n * Set up socket's message handlers.\n * @private\n */ _setupMessageHandlers() {\n this.socket.on(config.MESSAGE_TYPES.SERVER.OPEN.key, (openMessage)=>{\n this.id = openMessage.peerId;\n this._pcConfig = Object.assign({}, this.options.config);\n // make a copy of iceServers as Object.assign still retains the reference\n const iceServers = this._pcConfig.iceServers;\n this._pcConfig.iceServers = iceServers ? iceServers.slice() : [];\n // Set up turn credentials\n const turnCredential = openMessage.turnCredential;\n let turnUserName;\n let turnPassword;\n if (typeof turnCredential === 'object') {\n turnUserName = turnCredential.username;\n turnPassword = turnCredential.credential;\n } else if (typeof turnCredential === 'string') {\n // Handle older server versions that don't send the username\n turnUserName = `${this.options.key}$${this.id}`;\n turnPassword = turnCredential;\n }\n if (this.options.turn === true && turnUserName && turnPassword) {\n // possible turn types are turn-tcp, turns-tcp, turn-udp\n const turnCombinations = [\n {\n protocol: 'turn',\n transport: 'tcp'\n },\n {\n protocol: 'turn',\n transport: 'udp'\n }, \n ];\n // Edge can not handle turns-tcp\n const browser = util.detectBrowser();\n if (browser.name !== 'edge') {\n turnCombinations.push({\n protocol: 'turns',\n transport: 'tcp'\n });\n }\n for (const turnType of turnCombinations){\n const protocol = turnType.protocol;\n const transport = turnType.transport;\n const iceServer = {\n urls: `${protocol}:${config.TURN_HOST}:${config.TURN_PORT}?transport=${transport}`,\n url: `${protocol}:${config.TURN_HOST}:${config.TURN_PORT}?transport=${transport}`,\n username: turnUserName,\n credential: turnPassword\n };\n this._pcConfig.iceServers.push(iceServer);\n }\n logger.log('SkyWay TURN Server is available');\n } else {\n logger.log('SkyWay TURN Server is unavailable');\n }\n this.emit(peer_Peer.EVENTS.open.key, this.id);\n });\n this.socket.on(config.MESSAGE_TYPES.SERVER.ERROR.key, (error)=>{\n const err = new Error(error.message);\n err.type = error.type;\n logger.error(err);\n this.emit(peer_Peer.EVENTS.error.key, err);\n });\n this.socket.on(config.MESSAGE_TYPES.SERVER.LEAVE.key, (peerId)=>{\n logger.log(`Received leave message from ${peerId}`);\n this._cleanupPeer(peerId);\n });\n this.socket.on(config.MESSAGE_TYPES.SERVER.FORCE_CLOSE.key, ({ src: remoteId , connectionId })=>{\n // select a force closing connection and Close it.\n const connection = this.getConnection(remoteId, connectionId);\n if (connection) {\n // close the connection without sending FORCE_CLOSE\n connection.close(false);\n }\n });\n this.socket.on(config.MESSAGE_TYPES.SERVER.AUTH_EXPIRES_IN.key, (remainingSec)=>{\n logger.log(`Credential expires in ${remainingSec}`);\n this.emit(peer_Peer.EVENTS.expiresin.key, remainingSec);\n });\n this.socket.on(config.MESSAGE_TYPES.SERVER.OFFER.key, (offerMessage)=>{\n // handle mesh room offers\n const roomName = offerMessage.roomName;\n if (roomName) {\n const room = this.rooms[roomName];\n if (room) {\n room.handleOffer(offerMessage);\n }\n return;\n }\n // handle p2p offers\n const connectionId = offerMessage.connectionId;\n let connection = this.getConnection(offerMessage.src, connectionId);\n if (connection) {\n connection.updateOffer(offerMessage);\n return;\n }\n if (offerMessage.connectionType === 'media') {\n connection = new mediaConnection(offerMessage.src, {\n connectionId: connectionId,\n payload: offerMessage,\n metadata: offerMessage.metadata,\n originator: false,\n queuedMessages: this._queuedMessages[connectionId],\n pcConfig: this._pcConfig\n });\n connection.startConnection();\n logger.log('MediaConnection created in OFFER');\n this._addConnection(offerMessage.src, connection);\n this.emit(peer_Peer.EVENTS.call.key, connection);\n } else if (offerMessage.connectionType === 'data') {\n connection = new dataConnection(offerMessage.src, {\n connectionId: connectionId,\n payload: offerMessage,\n metadata: offerMessage.metadata,\n label: offerMessage.label,\n dcInit: offerMessage.dcInit,\n serialization: offerMessage.serialization,\n queuedMessages: this._queuedMessages[connectionId],\n pcConfig: this._pcConfig\n });\n connection.startConnection();\n logger.log('DataConnection created in OFFER');\n this._addConnection(offerMessage.src, connection);\n this.emit(peer_Peer.EVENTS.connection.key, connection);\n } else {\n logger.warn('Received malformed connection type: ', offerMessage.connectionType);\n }\n delete this._queuedMessages[connectionId];\n });\n this.socket.on(config.MESSAGE_TYPES.SERVER.ANSWER.key, (answerMessage)=>{\n // handle mesh room answers\n const roomName = answerMessage.roomName;\n if (roomName) {\n const room = this.rooms[roomName];\n if (room) {\n room.handleAnswer(answerMessage);\n }\n return;\n }\n // handle p2p answers\n const connection = this.getConnection(answerMessage.src, answerMessage.connectionId);\n if (connection) {\n connection.handleAnswer(answerMessage);\n } else {\n // Should we remove this storing\n // because answer should be handled immediately after its arrival?\n this._storeMessage(config.MESSAGE_TYPES.SERVER.ANSWER.key, answerMessage);\n }\n });\n this.socket.on(config.MESSAGE_TYPES.SERVER.CANDIDATE.key, (candidateMessage)=>{\n // handle mesh room candidates\n const roomName = candidateMessage.roomName;\n if (roomName) {\n const room = this.rooms[roomName];\n if (room) {\n room.handleCandidate(candidateMessage);\n }\n return;\n }\n // handle p2p candidates\n const connection = this.getConnection(candidateMessage.src, candidateMessage.connectionId);\n if (connection) {\n connection.handleCandidate(candidateMessage);\n } else {\n // Store candidate in the queue so that the candidate can be added\n // after setRemoteDescription completed.\n this._storeMessage(config.MESSAGE_TYPES.SERVER.CANDIDATE.key, candidateMessage);\n }\n });\n this.socket.on(config.MESSAGE_TYPES.SERVER.ROOM_USER_JOIN.key, (roomUserJoinMessage)=>{\n const room = this.rooms[roomUserJoinMessage.roomName];\n if (room) {\n room.handleJoin(roomUserJoinMessage);\n }\n });\n this.socket.on(config.MESSAGE_TYPES.SERVER.ROOM_USER_LEAVE.key, (roomUserLeaveMessage)=>{\n const room = this.rooms[roomUserLeaveMessage.roomName];\n if (room) {\n room.handleLeave(roomUserLeaveMessage);\n }\n });\n this.socket.on(config.MESSAGE_TYPES.SERVER.ROOM_DATA.key, (roomDataMessage)=>{\n const room = this.rooms[roomDataMessage.roomName];\n if (room) {\n room.handleData(roomDataMessage);\n }\n });\n this.socket.on(config.MESSAGE_TYPES.SERVER.ROOM_LOGS.key, (roomLogMessage)=>{\n const room = this.rooms[roomLogMessage.roomName];\n if (room) {\n room.handleLog(roomLogMessage.log);\n }\n });\n this.socket.on(config.MESSAGE_TYPES.SERVER.ROOM_USERS.key, (roomUserListMessage)=>{\n const room = this.rooms[roomUserListMessage.roomName];\n if (room) {\n if (roomUserListMessage.type === 'media') {\n room.makeMediaConnections(roomUserListMessage.userList);\n } else {\n room.makeDataConnections(roomUserListMessage.userList);\n }\n }\n });\n this.socket.on(config.MESSAGE_TYPES.SERVER.SFU_OFFER.key, (offerMessage)=>{\n const room = this.rooms[offerMessage.roomName];\n if (room) {\n room.updateMsidMap(offerMessage.msids);\n room.handleOffer(offerMessage);\n }\n });\n }\n /**\n * Set up connection's event handlers.\n * @param {MediaConnection|DataConnection} connection - The connection to be set up.\n * @private\n */ _setupConnectionMessageHandlers(connection) {\n connection.on(peer_connection.EVENTS.candidate.key, (candidateMessage)=>{\n this.socket.send(config.MESSAGE_TYPES.CLIENT.SEND_CANDIDATE.key, candidateMessage);\n });\n connection.on(peer_connection.EVENTS.answer.key, (answerMessage)=>{\n this.socket.send(config.MESSAGE_TYPES.CLIENT.SEND_ANSWER.key, answerMessage);\n });\n connection.on(peer_connection.EVENTS.offer.key, (offerMessage)=>{\n this.socket.send(config.MESSAGE_TYPES.CLIENT.SEND_OFFER.key, offerMessage);\n });\n connection.on(peer_connection.EVENTS.forceClose.key, ()=>{\n const forceCloseMessage = {\n dst: connection.remoteId,\n connectionId: connection.id\n };\n this.socket.send(config.MESSAGE_TYPES.CLIENT.SEND_FORCE_CLOSE.key, forceCloseMessage);\n });\n }\n /**\n * Set up the message event handlers for a Room\n * @param {Room} room - The room to be set up.\n * @private\n */ _setupRoomMessageHandlers(room) {\n room.on(peer_sfuRoom.MESSAGE_EVENTS.broadcast.key, (sendMessage)=>{\n this.socket.send(config.MESSAGE_TYPES.CLIENT.ROOM_SEND_DATA.key, sendMessage);\n });\n room.on(peer_sfuRoom.MESSAGE_EVENTS.getLog.key, (getLogMessage)=>{\n this.socket.send(config.MESSAGE_TYPES.CLIENT.ROOM_GET_LOGS.key, getLogMessage);\n });\n room.on(peer_sfuRoom.MESSAGE_EVENTS.leave.key, (leaveMessage)=>{\n delete this.rooms[room.name];\n this.socket.send(config.MESSAGE_TYPES.CLIENT.ROOM_LEAVE.key, leaveMessage);\n });\n }\n /**\n * Set up the message event handlers for an SFURoom\n * @param {SFURoom} room - The room to be set up.\n * @private\n */ _setupSFURoomMessageHandlers(room) {\n this._setupRoomMessageHandlers(room);\n room.on(peer_sfuRoom.MESSAGE_EVENTS.offerRequest.key, (sendMessage)=>{\n this.socket.send(config.MESSAGE_TYPES.CLIENT.SFU_GET_OFFER.key, sendMessage);\n });\n room.on(peer_sfuRoom.MESSAGE_EVENTS.answer.key, (answerMessage)=>{\n this.socket.send(config.MESSAGE_TYPES.CLIENT.SFU_ANSWER.key, answerMessage);\n });\n room.on(peer_sfuRoom.MESSAGE_EVENTS.candidate.key, (candidateMessage)=>{\n this.socket.send(config.MESSAGE_TYPES.CLIENT.SFU_CANDIDATE.key, candidateMessage);\n });\n }\n /**\n * Set up the message event handlers for a MeshRoom\n * @param {MeshRoom} room - The room to be set up.\n * @private\n */ _setupMeshRoomMessageHandlers(room) {\n this._setupRoomMessageHandlers(room);\n room.on(peer_meshRoom.MESSAGE_EVENTS.offer.key, (offerMessage)=>{\n this.socket.send(config.MESSAGE_TYPES.CLIENT.SEND_OFFER.key, offerMessage);\n });\n room.on(peer_meshRoom.MESSAGE_EVENTS.answer.key, (answerMessage)=>{\n this.socket.send(config.MESSAGE_TYPES.CLIENT.SEND_ANSWER.key, answerMessage);\n });\n room.on(peer_meshRoom.MESSAGE_EVENTS.candidate.key, (candidateMessage)=>{\n this.socket.send(config.MESSAGE_TYPES.CLIENT.SEND_CANDIDATE.key, candidateMessage);\n });\n room.on(peer_meshRoom.MESSAGE_EVENTS.getPeers.key, (requestMessage)=>{\n this.socket.send(config.MESSAGE_TYPES.CLIENT.ROOM_GET_USERS.key, requestMessage);\n });\n }\n /**\n * Disconnect the socket and emit error.\n * @param {string} type - The type of error.\n * @param {string} message - Error description.\n * @private\n */ _abort(type, message) {\n logger.error('Aborting!');\n this.disconnect(true);\n const err = new Error(message);\n err.type = type;\n logger.error(err);\n this.emit(peer_Peer.EVENTS.error.key, err);\n }\n /**\n * Add connection to connections property and set up message handlers.\n * @param {string} peerId - User's peerId.\n * @param {MediaConnection|DataConnection} connection - The connection to be added.\n * @private\n */ _addConnection(peerId, connection) {\n if (!this.connections[peerId]) {\n this.connections[peerId] = [];\n }\n this.connections[peerId].push(connection);\n this._setupConnectionMessageHandlers(connection);\n }\n /**\n * Store a message until the connection is ready.\n * @param {string} type - The type of message. One of 'ANSWER' or 'CANDIDATE'.\n * @param {object} message - The object containing the message from remote peer.\n * @private\n */ _storeMessage(type, message) {\n if (!this._queuedMessages[message.connectionId]) {\n this._queuedMessages[message.connectionId] = [];\n }\n this._queuedMessages[message.connectionId].push({\n type: type,\n payload: message\n });\n }\n /**\n * Close all connections and emit close event.\n * @private\n */ _cleanup() {\n if (this.connections) {\n for (const peer of Object.keys(this.connections)){\n this._cleanupPeer(peer);\n }\n }\n this.emit(peer_Peer.EVENTS.close.key);\n }\n /**\n * Close the connection.\n * @param {string} peer - The peerId of the peer to be closed.\n * @private\n */ _cleanupPeer(peer) {\n if (this.connections[peer]) {\n for (const connection of this.connections[peer]){\n connection.close(false);\n }\n }\n }\n /**\n * Events the Peer class can emit.\n * @type {Enum}\n */ static get EVENTS() {\n return PeerEvents;\n }\n /**\n * Create new Peer instance. This is called by user application.\n * @param {string} [id] - User's peerId.\n * @param {Object} options - Optional arguments for the connection.\n * @param {string} options.key - SkyWay API key.\n * @param {number} [options.debug=0] - Log level. NONE:0, ERROR:1, WARN:2, FULL:3.\n * @param {string} [options.host] - The host name of signaling server.\n * @param {number} [options.port] - The port number of signaling server.\n * @param {string} [options.dispatcherPort=dispatcher.webrtc.ecl.ntt.com] - The host name of the dispatcher server.\n * @param {number} [options.dispatcherPort=443] - The port number of dispatcher server.\n * @param {boolean} [options.dispatcherSecure=true] - True if the dispatcher server supports https.\n * @param {object} [options.config=config.defaultConfig] - A RTCConfiguration dictionary for the RTCPeerConnection.\n * @param {boolean} [options.turn=true] - Whether using TURN or not.\n * @param {object} [options.credential] - The credential used to authenticate peer.\n * @param {number} [options.credential.timestamp] - Current UNIX timestamp.\n * @param {number} [options.credential.ttl] - Time to live; The credential expires at timestamp + ttl.\n * @param {string} [options.credential.authToken] - Credential token calculated with HMAC.\n */ constructor(id, options){\n super();\n this.connections = {};\n this.rooms = {};\n // messages received before connection is ready\n this._queuedMessages = {};\n if (id && id.constructor === Object) {\n options = id;\n id = undefined;\n } else if (id) {\n id = id.toString();\n }\n const defaultOptions = {\n debug: logger.LOG_LEVELS.NONE,\n secure: true,\n config: config.defaultConfig,\n turn: true,\n dispatcherSecure: config.DISPATCHER_SECURE,\n dispatcherHost: config.DISPATCHER_HOST,\n dispatcherPort: config.DISPATCHER_PORT\n };\n this.options = Object.assign({}, defaultOptions, options);\n // do not override by options\n this.options.token = util.randomToken();\n logger.setLogLevel(this.options.debug);\n if (!util.validateId(id)) {\n this._abort('invalid-id', `ID \"${id}\" is invalid`);\n return;\n }\n if (!util.validateKey(options.key)) {\n this._abort('invalid-key', `API KEY \"${this.options.key}\" is invalid`);\n return;\n }\n if (this.options.host === '/') {\n this.options.host = window.location.hostname;\n }\n if (options.secure === undefined && this.options.port !== 443) {\n this.options.secure = undefined;\n }\n this._initializeServerConnection(id);\n }\n }\n /* harmony default export */ var peer1 = __webpack_exports__[\"default\"] = peer_Peer;\n /***/ },\n /***/ 0: /*!********************!*\\\n !*** ws (ignored) ***!\n \\********************/ /*! no static exports found */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ function(module, exports) {\n /* (ignored) */ /***/ }\n })[\"default\"];\n});\n", "export * from './heliodor_core_globals';\nexport * from './heliodor_core_shared';\nexport * from './heliodor_core_render_callee';\nexport * from './heliodor_core_video_callee';\nexport * from './heliodor_core_audio_callee';\nexport * from './heliodor_core_gui_callee';\nexport * from './heliodor_core_gui_caller';\nexport * from './heliodor_core_misc';\nexport * from './heliodor_lib';\nexport * from './heliodor_skyway';\nexport * from './heliodor_xr';\n", "import { INITIAL_MIXER_DISTANCE_SETTING, INITIAL_MIXER_FADER_SETTING, INITIAL_MIXER_MUTE_SETTING, INITIAL_MIXER_SETTING, INITIAL_MIXER_REAL_SETTING, worldViewerWindow } from './const';\nimport { hel_resizeWindow, hel_reflectCanvasSize } from './logics/callCGui';\nimport { setMainCanvasDOMElement } from './logics/domOps';\n// config\nworldViewerWindow.g_WorldID = undefined;\nworldViewerWindow.g_Skyway_RoomID = '';\nworldViewerWindow.g_Spot = undefined;\nworldViewerWindow.g_ShowWorldSelect = undefined;\nworldViewerWindow.g_Logined = false;\nworldViewerWindow.g_CanvasFileName = 'Canvas/CanvasList.json';\nworldViewerWindow.g_CurrentUserName = 'Me'; // For send UserName from javascript to c++.\nworldViewerWindow.g_MainCanvas = undefined;\n// render\n/**\n * @remarks\n * C++\u304B\u3089\u30A2\u30AF\u30BB\u30B9\u3042\u308A\n */ worldViewerWindow.g_UseWebGL10 = false;\nworldViewerWindow.g_extPVRTC = null;\nworldViewerWindow.g_TextureCompression_PVRTC = false;\nworldViewerWindow.g_extETC2 = null;\nworldViewerWindow.g_TextureCompression_ETC2 = false;\nworldViewerWindow.g_extASTC = null;\nworldViewerWindow.g_TextureCompression_ASTC = false;\nworldViewerWindow.g_extDXT = null;\nworldViewerWindow.g_TextureCompression_DXT = false;\nworldViewerWindow.g_Use_EXT_shader_texture_lod = false;\nworldViewerWindow.g_EXT_color_buffer_half_float = null;\nworldViewerWindow.g_Use_EXT_color_buffer_half_float = false;\nworldViewerWindow.g_OES_texture_half_float = null;\nworldViewerWindow.g_Use_OES_texture_half_float = false;\nworldViewerWindow.g_EXT_shader_texture_lod = null;\n// audio\nworldViewerWindow.g_hel_MixerTabActive = 1.0;\nworldViewerWindow.g_hel_MixerFade = INITIAL_MIXER_FADER_SETTING;\nworldViewerWindow.g_hel_MixerDistance = INITIAL_MIXER_DISTANCE_SETTING;\nworldViewerWindow.g_hel_MixerMute = INITIAL_MIXER_MUTE_SETTING;\nworldViewerWindow.g_hel_MixerMasterVolume = 1.0;\nworldViewerWindow.g_hel_MixerMasterMute = 0;\nworldViewerWindow.g_hel_UseLegacyAudio = false;\nworldViewerWindow.g_audioList = [];\n/**\n * @remarks\n * C++\u304B\u3089\u30A2\u30AF\u30BB\u30B9\u3042\u308A\n */ worldViewerWindow.g_hel_Mixer = INITIAL_MIXER_SETTING;\n/**\n * @remarks\n * TS\u5185\u90E8\u3067\u306E\u307F\u4F7F\u7528\u3059\u308B\u3002\u5404\u30DF\u30AD\u30B5\u30FC\u3054\u3068\u306E\u6700\u7D42\u7684\u306A\u30DC\u30EA\u30E5\u30FC\u30E0\u5024\u3092\u683C\u7D0D\u3059\u308B\n */ worldViewerWindow.g_hel_RealMixer = INITIAL_MIXER_REAL_SETTING;\n// video\n/**\n * @remarks\n * C++\u304B\u3089\u30A2\u30AF\u30BB\u30B9\u3042\u308A\n */ worldViewerWindow.g_Video = null;\nworldViewerWindow.g_videocanplay = false;\nworldViewerWindow.g_videopaused = false;\nworldViewerWindow.g_videoended = false;\nworldViewerWindow.g_VideoAudioContext = null;\nworldViewerWindow.g_VideoSource = null;\nworldViewerWindow.g_VideoGainNode = null;\nworldViewerWindow.g_VideoHlsConfig = null;\n// TextureCanvas, Gyro\n(worldViewerWindow.g_TextCanvasList = []), worldViewerWindow.g_GyroActive = false;\nworldViewerWindow.g_hel_UploadFileImage = null;\nworldViewerWindow.g_InputFile = document.getElementById('input_file'), worldViewerWindow.g_VCUID = '';\nworldViewerWindow.g_configurl = document.getElementById('configurl'), worldViewerWindow.g_localText_configurl = document.getElementById('configurl-text'), worldViewerWindow.g_username = document.getElementById('username'), worldViewerWindow.g_localText_username = document.getElementById('username-text'), worldViewerWindow.g_peer = null;\n// Network(named for Skyway as Default) and Others\n/**\n * @remarks\n * C++\u304B\u3089\u30A2\u30AF\u30BB\u30B9\u3042\u308A\n */ worldViewerWindow.g_Skyway_Start = false;\nworldViewerWindow.g_Status = null;\nworldViewerWindow.g_Log = null;\nworldViewerWindow.g_Skyway_MyName = 'Me';\nworldViewerWindow.g_localStream = null;\nworldViewerWindow.g_SKYWAY_KEY = '37825849-7771-49bd-890e-61971fb4f431', worldViewerWindow.g_room = null;\nworldViewerWindow.g_Skyway_MyAvatar = 0;\nworldViewerWindow.g_Skyway_MyAvatar_ForSend = 0;\nworldViewerWindow.g_Skyway_MyAvatar_DownloadToken_ForSend = \"\";\nworldViewerWindow.g_Skyway_MyAvatar_UUID_ForSend = \"\";\nworldViewerWindow.g_skyway_set_mic_state_timer = null;\nworldViewerWindow.g_skyway_msg = document.getElementById('msg'), worldViewerWindow.g_skyway_localText = document.getElementById('js-local-text'), worldViewerWindow.g_SkywayPlayerList = [], worldViewerWindow.g_MainCanvas4XR = null;\n// XRWorldIngame\nworldViewerWindow.g_xrwFriendCode = '';\nworldViewerWindow.g_hel_UseSkywayAudioGain = true;\nworldViewerWindow.g_DataFolderName = 'data';\n// procedural call oriented bridges\nworldViewerWindow.g_ActionProcedureList = [];\n// \u30E1\u30A4\u30F3\u30AD\u30E3\u30F3\u30D0\u30B9\u306E\u8A2D\u5B9A\u3092\u3053\u3061\u3089\u3067\u884C\u3046\nworldViewerWindow.g_ReflectCanvasSizeMode = true;\nconst mainCanvas = document.getElementById('canvas');\nsetMainCanvasDOMElement(mainCanvas);\nhel_reflectCanvasSize();\nif (mainCanvas !== undefined) {\n mainCanvas.onclick = function() {\n worldViewerWindow.g_MainCanvas.focus();\n };\n mainCanvas.oncontextmenu = (e)=>{\n e.preventDefault();\n };\n}\nworldViewerWindow.onresize = hel_resizeWindow;\n", "import { ETextParamType_OperateCanvas, worldViewerWindow } from '../const';\nimport { getMainCanvasDOMElement } from './domOps';\nimport { requestResizeWindow } from './moduleCaller';\n/**\n * @remarks\n * \u30A6\u30A3\u30F3\u30C9\u30A6\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u30B5\u30A4\u30BA\u3092canvas\u306B\u53CD\u6620\u3055\u305B\u308B\n */ export const hel_reflectCanvasSize = ()=>{\n if (!worldViewerWindow.g_ReflectCanvasSizeMode) return;\n const width = document.documentElement.clientWidth;\n const height = document.documentElement.clientHeight;\n if (width <= 0 || height <= 0) {\n return;\n }\n const mainCanvas = getMainCanvasDOMElement();\n if (mainCanvas !== undefined) {\n mainCanvas.width = width;\n mainCanvas.height = height;\n }\n};\n/**\n * @remarks\n * JS\u304B\u3089C++\u306B\u753B\u9762\u30B5\u30A4\u30BA\u306E\u5909\u66F4\u3092\u30EA\u30AF\u30A8\u30B9\u30C8\n */ export const hel_resizeWindow = ()=>{\n hel_reflectCanvasSize();\n const mainCanvas = getMainCanvasDOMElement();\n if (mainCanvas !== undefined) {\n requestResizeWindow(mainCanvas);\n }\n};\n/**\n * @remarks\n * JS\u304B\u3089C++\u3092\u547C\u51FA\u3057\n * \u672A\u4F7F\u7528\n * @param layoutName\n * @param guiName\n * @param show\n */ export const hel_canvas_SetCloneGUIShow = (layoutName, guiName, show)=>{\n worldViewerWindow.hel_setText(ETextParamType_OperateCanvas, 'SetCloneGUIShow,' + layoutName + ',' + guiName + ',' + (show ? 'true' : 'false'));\n};\n/**\n * @remarks\n * JS\u304B\u3089C++\u3092\u547C\u51FA\u3057\n * \u672A\u4F7F\u7528\n * @param layoutName\n * @param guiName\n * @param text\n */ export const hel_canvas_SetCloneGUIText = (layoutName, guiName, text)=>{\n worldViewerWindow.hel_setText(ETextParamType_OperateCanvas, 'SetCloneGUIText,' + layoutName + ',' + guiName + ',' + text);\n};\n/**\n * @remarks\n * JS\u304B\u3089C++\u3092\u547C\u51FA\u3057\n * \u672A\u4F7F\u7528\n * @param layoutName\n * @param guiName\n * @param fileName\n */ export const hel_canvas_SetCloneGUIImage = (layoutName, guiName, fileName)=>{\n worldViewerWindow.hel_setText(ETextParamType_OperateCanvas, 'SetCloneGUIImage,' + layoutName + ',' + guiName + ',' + fileName);\n};\n/**\n * @remarks\n * JS\u304B\u3089C++\u3092\u547C\u51FA\u3057\n * \u672A\u4F7F\u7528\n * @param layoutName\n * @param show\n */ export const hel_canvas_SetCloneLayoutShow = (layoutName, show)=>{\n worldViewerWindow.hel_setText(ETextParamType_OperateCanvas, 'SetCloneLayoutShow,' + layoutName + ',' + (show ? 'true' : 'false'));\n};\n", "import { worldViewerWindow } from './const';\nimport { debugLog } from './debugLog';\nimport { getTextureExtOnAstc, getTextureExtOnETC2, getTextureExtOnPvrtc, getWebGL10Toggle, setTextureExtOnAstc, setTextureAstcToggle, setTextureExtOnETC2, setTextureETC2Toggle, setTextureExtOnPvrtc, setWebGL10Toggle, setTextureExtOnDxt, getTextureExtOnDxt, setTextureDxtToggle, setTexturePvrtcToggle, setExtShaderTextureLod, setExtShaderTextureLodToggle, setExtColorBufferHalfFloat, setExtColorBufferHalfFloatToggle, setOesTextureHalfFloat, setOesTextureHalfFloatToggle, getExtShaderTextureLod, getExtColorBufferHalfFloat, getOesTextureHalfFloat } from './logics/dataOps';\nimport { getMainCanvasDOMElement, setWebGLRenderingContext } from './logics/domOps';\nimport { defineYourRenderTypes, hel_isFirefox, hel_isiPhone, hel_isMac } from './logics/platform';\nconst hel_checkPVRTC = (context)=>{\n setTextureExtOnPvrtc(context.getExtension('WEBGL_compressed_texture_pvrtc') || context.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc'));\n const pvrtc = getTextureExtOnPvrtc();\n if (pvrtc === undefined) {\n return false;\n }\n const supportedCompressedTextureFormat = context.getParameter(context.COMPRESSED_TEXTURE_FORMATS);\n if (!supportedCompressedTextureFormat) {\n return false;\n }\n const supportsPVRTC_rgb = supportedCompressedTextureFormat.includes(pvrtc.COMPRESSED_RGB_PVRTC_4BPPV1_IMG);\n if (!supportsPVRTC_rgb) {\n return false;\n }\n return supportedCompressedTextureFormat.includes(pvrtc.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG);\n};\nconst hel_checkETC2 = (context)=>{\n setTextureExtOnETC2(context.getExtension('WEBGL_compressed_texture_etc') || context.getExtension('WEBKIT_WEBGL_compressed_texture_etc'));\n const etc2 = getTextureExtOnETC2();\n if (etc2 === undefined) {\n return false;\n }\n const supportedCompressedTextureFormat = context.getParameter(context.COMPRESSED_TEXTURE_FORMATS);\n if (!supportedCompressedTextureFormat) {\n return false;\n }\n const supportsETC2_rgb = supportedCompressedTextureFormat.includes(etc2.COMPRESSED_RGB8_ETC2);\n if (!supportsETC2_rgb) {\n return false;\n }\n return supportedCompressedTextureFormat.includes(etc2.COMPRESSED_RGBA8_ETC2_EAC);\n};\nconst hel_checkASTC = (context)=>{\n setTextureExtOnAstc(context.getExtension('WEBGL_compressed_texture_astc') || context.getExtension('WEBKIT_WEBGL_compressed_texture_astc'));\n const astc = getTextureExtOnAstc();\n if (astc === undefined) {\n return false;\n }\n const supportedCompressedTextureFormat = context.getParameter(context.COMPRESSED_TEXTURE_FORMATS);\n if (!supportedCompressedTextureFormat) {\n return false;\n }\n return supportedCompressedTextureFormat.includes(astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR);\n};\nconst hel_checkDXT = (context)=>{\n setTextureExtOnDxt(context.getExtension('EXT_texture_compression_bptc'));\n const dxt = getTextureExtOnDxt();\n if (dxt === undefined) {\n return false;\n }\n const supportedCompressedTextureFormat = context.getParameter(context.COMPRESSED_TEXTURE_FORMATS);\n if (!supportedCompressedTextureFormat) {\n return false;\n }\n const supportsDXT_UNORM = supportedCompressedTextureFormat.includes(dxt.COMPRESSED_RGBA_BPTC_UNORM_EXT);\n if (!supportsDXT_UNORM) {\n return false;\n }\n return supportedCompressedTextureFormat.includes(dxt.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT);\n};\n// Shader Extension\nconst hel_check_EXT_shader_texture_lod = (context)=>{\n setExtShaderTextureLod(context.getExtension('EXT_shader_texture_lod'));\n const lod = getExtShaderTextureLod();\n return lod !== undefined;\n};\n// Texture Extension\nconst hel_check_EXT_color_buffer_half_float = (context)=>{\n if (hel_isFirefox()) {\n setExtColorBufferHalfFloat(context.getExtension('EXT_color_buffer_float'));\n } else {\n setExtColorBufferHalfFloat(context.getExtension('EXT_color_buffer_half_float'));\n }\n const halfFloat = getExtColorBufferHalfFloat();\n return halfFloat !== undefined;\n};\nconst hel_check_OES_texture_half_float = (context)=>{\n setOesTextureHalfFloat(context.getExtension('OES_texture_half_float'));\n const halfFloat = getOesTextureHalfFloat();\n return halfFloat !== undefined;\n};\n/**\n * @remarks\n * GL\u3092\u63CF\u753B\n * heliodor.js, C++\u304B\u3089\u547C\u51FA\u3042\u308A\n * @param majorVersion\n */ worldViewerWindow.initGL = (majorVersion)=>{\n const mainCanvas = getMainCanvasDOMElement();\n if (mainCanvas === undefined) {\n debugLog('canvas is null');\n return 0;\n }\n if (majorVersion == 1) setWebGL10Toggle(true);\n if (hel_isiPhone()) setWebGL10Toggle(true);\n if (hel_isMac()) setWebGL10Toggle(true);\n const glAttribs = {\n alpha: 0,\n premultipliedAlpha: 0,\n depth: true,\n majorVersion,\n minorVersion: 0,\n enableExtensionsByDefault: 1,\n antialias: true\n };\n let webglctx = null;\n if (!getWebGL10Toggle()) {\n glAttribs.antialias = false;\n webglctx = mainCanvas.getContext('webgl2', glAttribs);\n }\n if (!webglctx) {\n setWebGL10Toggle(true);\n glAttribs.majorVersion = 1;\n for (let contextType of defineYourRenderTypes()){\n webglctx = mainCanvas.getContext(contextType, glAttribs);\n if (webglctx) break;\n }\n }\n if (!webglctx) {\n debugLog('webgl is null');\n return 0;\n }\n const glctx = GL.registerContext(webglctx, glAttribs);\n if (!glctx) {\n debugLog('glctx is null');\n return 0;\n }\n GL.makeContextCurrent(glctx);\n // TextureCompression\n setTexturePvrtcToggle(hel_checkPVRTC(webglctx));\n setTextureETC2Toggle(hel_checkETC2(webglctx));\n setTextureAstcToggle(hel_checkASTC(webglctx));\n setTextureDxtToggle(hel_checkDXT(webglctx));\n // Shader Extension\n setExtShaderTextureLodToggle(hel_check_EXT_shader_texture_lod(webglctx));\n // Texture Extension\n setExtColorBufferHalfFloatToggle(hel_check_EXT_color_buffer_half_float(webglctx));\n setOesTextureHalfFloatToggle(hel_check_OES_texture_half_float(webglctx));\n setWebGLRenderingContext(webglctx);\n return 1;\n};\n", "import { ETextParamType_CancelToCopyVideoFrameToSystem, ETextParamType_CopyVideoFrameToSystem, worldViewerWindow } from './const';\nimport { debugLog } from './debugLog';\nimport { getSceneJsonPath, getVideoAudioContext, getVideoEndedToggle, getVideoGainNode, getVideoHlsConfig, getVideoSource, setSceneJson, setVideoAudioContext, setVideoCanPlayToggle, setVideoEndedToggle, setVideoGainNode, setVideoHlsConfig, setVideoInfo, setVideoSource, setVideoSourceUrl } from './logics/dataOps';\nimport { getVideo, setVideo } from './logics/domOps';\nimport { hel_isiPhone, hel_isMac } from './logics/platform';\n/**\n * @remarks\n * \u3053\u306E\u30D5\u30A1\u30A4\u30EB\u5185\u3067\u306E\u307F\u547C\u51FA\u3057\n */ const helcore_video_node_gain = ()=>{\n if (!hel_isiPhone() && !hel_isMac()) {\n // iOS/Mac\u4EE5\u5916\u3067\u306FVideo.volume\u304C\u4F7F\u3048\u308B\u306E\u3067gainNode\u306F\u751F\u6210\u3057\u306A\u3044\n return;\n }\n if (getVideoAudioContext() === undefined) {\n setVideoAudioContext(new (worldViewerWindow.AudioContext || worldViewerWindow.webkitAudioContext)());\n }\n if (getVideoSource() === undefined) {\n setVideoSource(getVideoAudioContext().createMediaElementSource(getVideo()));\n }\n if (getVideoGainNode() === undefined) {\n setVideoGainNode(getVideoAudioContext().createGain());\n getVideoSource().connect(getVideoGainNode());\n getVideoGainNode().connect(getVideoAudioContext().destination);\n }\n};\n/**\n * @remarks\n * C++\u304B\u3089\u547C\u51FA\u3057\n * @param uint8Array\n * @param x\n * @param y\n * @param width\n * @param height\n */ worldViewerWindow.g_on_video_frame_capture = (uint8Array, x, y, width, height)=>{\n // default implement\n debugLog('worldViewerWindow.g_on_video_frame_capture:', uint8Array, x, y, width, height);\n};\n// Video\n/**\n * @remarks\n * C++\u304B\u3089\u547C\u51FA\u3057\n * @param loop\n */ worldViewerWindow.helcpp_video_Prepare = (loop)=>{\n const video = getVideo();\n if (video !== undefined) {\n return;\n }\n // document.pictureInPictureEnabled = false;\n //\tworldViewerWindow.g_Video = document.createElement('video');\n const updatedVideo = document.getElementById('video0');\n setVideo(updatedVideo);\n //\tworldViewerWindow.g_Video.autoplay = false;\n updatedVideo.loop = loop;\n //\tworldViewerWindow.g_Video.type = 'video/mp4';\n //\tworldViewerWindow.g_Video.autoPictureInPicture = false;\n //\tworldViewerWindow.g_Video.disablePictureInPicture = true;\n //\tworldViewerWindow.g_Video.controlslist = \"nodownload\";\n //\tworldViewerWindow.g_Video.playsinline = true;\n setVideoEndedToggle(false);\n updatedVideo.onseeking = ()=>setVideoCanPlayToggle(false)\n ;\n updatedVideo.onseeked = ()=>setVideoCanPlayToggle(true)\n ;\n updatedVideo.oncanplay = ()=>setVideoCanPlayToggle(false)\n ;\n updatedVideo.oncanplaythrough = ()=>{\n setVideoCanPlayToggle(true);\n };\n updatedVideo.onerror = function() {\n this.onerror = null;\n };\n updatedVideo.onended = (event)=>{\n debugLog(`g_Video onEnded ${JSON.stringify(event)}`);\n setVideoEndedToggle(true);\n };\n updatedVideo.addEventListener('loadedmetadata', ()=>{\n if (typeof worldViewerWindow.hel_video_on_loadedmetadata === 'function') {\n worldViewerWindow.hel_video_on_loadedmetadata();\n }\n });\n};\n/**\n * @remarks\n * \u516C\u958B\u95A2\u6570\n * @param itemName\n * @param materialName\n * @param fileName\n * @param loop\n * @param streaming\n */ worldViewerWindow.hel_video_play = (itemName, materialName, fileName, loop, streaming)=>{\n worldViewerWindow.hel_setText(worldViewerWindow.ETextParamType_PlayVideo, itemName + \",\" + materialName + \",\" + fileName + \",\" + (loop ? \"true\" : \"false\") + \",\" + (streaming ? \"true\" : \"false\"));\n};\n/**\n * @remarks\n * C++\u304B\u3089\u547C\u51FA\u3057\n * @param videoSrc\n * @param videoStreaming\n */ worldViewerWindow.helcpp_video_play = (videoSrc, videoStreaming)=>{\n setVideoSourceUrl(videoSrc);\n const video = getVideo();\n if (video === undefined) {\n return;\n }\n if (videoStreaming != 0) {\n if (typeof IVSPlayer !== 'undefined' && IVSPlayer.isPlayerSupported) {\n helcore_video_node_gain();\n const player = IVSPlayer.create();\n player.attachHTMLVideoElement(video);\n player.load(videoSrc);\n player.play();\n } else if (!hel_isiPhone() && typeof Hls !== 'undefined' && Hls.isSupported()) {\n helcore_video_node_gain();\n // Create Hls\n let hls;\n const hlsConfig = getVideoHlsConfig();\n if (hlsConfig !== undefined) {\n hls = new Hls(hlsConfig);\n } else {\n hls = new Hls();\n }\n //\n hls.loadSource(videoSrc);\n hls.attachMedia(video);\n video.play();\n } else if (video.canPlayType('application/vnd.apple.mpegurl')) {\n helcore_video_node_gain();\n video.src = videoSrc;\n video.play();\n } else {\n debugLog('video streaming not supported');\n }\n } else {\n helcore_video_node_gain();\n video.src = videoSrc;\n video.play();\n }\n};\n/**\n * @remarks\n * \u516C\u958B\u95A2\u6570\n */ worldViewerWindow.hel_video_stop = ()=>{\n worldViewerWindow.hel_setText(worldViewerWindow.ETextParamType_StopVideo, \"\");\n};\n/**\n * @remarks\n * C++\u304B\u3089\u547C\u51FA\u3057\n */ worldViewerWindow.helcpp_video_stop = ()=>{\n const video = getVideo();\n if (video === undefined) {\n return;\n }\n video.pause();\n// setVideo(null);\n};\n/**\n * @remarks\n * C++\u304B\u3089\u547C\u51FA\u3057\n * @param pause_enable\n */ worldViewerWindow.helcpp_video_playpause_toggle = async (pause_enable)=>{\n const video = getVideo();\n if (video === undefined) {\n return;\n }\n if (pause_enable) {\n video.pause();\n } else {\n await video.play();\n }\n};\n/**\n * @remarks\n * C++\u3068hel_video_set_movieviewer_ui\u304B\u3089\u547C\u51FA\u3057\n */ worldViewerWindow.hel_video_is_paused = ()=>{\n const video = getVideo();\n if (video === undefined) {\n return true;\n }\n return video.paused;\n};\n/**\n * @remarks\n * C++\u304B\u3089\u547C\u51FA\u3057\n * @param seconds\n */ worldViewerWindow.hel_video_add_forward = (seconds)=>{\n const video = getVideo();\n if (video === undefined) {\n return;\n }\n video.currentTime += seconds;\n};\n/**\n * @remarks\n * \u516C\u958B\u95A2\u6570\n */ worldViewerWindow.hel_video_isplay = ()=>{\n return worldViewerWindow.hel_setText(worldViewerWindow.ETextParamType_IsPlayVideo, \"\");\n};\n/**\n * @remarks\n * C++\u304B\u3089\u547C\u51FA\u3057\n */ worldViewerWindow.helcpp_video_isplay = ()=>{\n const video = getVideo();\n if (video === undefined) {\n return false;\n }\n return !(video.loop && getVideoEndedToggle());\n};\n/**\n * @remarks\n * C++\u304B\u3089\u547C\u51FA\u3057\n * @param seconds\n */ worldViewerWindow.hel_video_add_rewind = (seconds)=>{\n const video = getVideo();\n if (video === undefined) {\n return;\n }\n video.currentTime -= seconds;\n};\n/**\n * @remarks\n * C++\u304B\u3089\u547C\u51FA\u3057\n */ worldViewerWindow.hel_video_get_duration = ()=>{\n const video = getVideo();\n if (video === undefined) {\n return 0;\n }\n return video.duration;\n};\n/**\n * @remarks\n * C++\u304B\u3089\u547C\u51FA\u3057\n * @param sliderRate\n */ worldViewerWindow.hel_video_set_currenttime = (sliderRate)=>{\n const video = getVideo();\n if (video === undefined) {\n return;\n }\n if (video.duration > 0) {\n video.currentTime = sliderRate * video.duration;\n }\n};\n/**\n * @remarks\n * C++\u304B\u3089\u547C\u51FA\u3057\n */ worldViewerWindow.hel_video_get_currenttime = ()=>{\n const video = getVideo();\n if (video === undefined) {\n return 0;\n }\n return video.currentTime;\n};\n/**\n * @remarks\n * heliodor_front.js\u7B49\u304B\u3089\u547C\u3070\u308C\u308B\u30B1\u30FC\u30B9\u304C\u591A\u3044\n */ worldViewerWindow.hel_video_SetHlsConfig = (config)=>setVideoHlsConfig(config)\n;\n/**\n * \u516C\u958B\u95A2\u6570\n * @param seconds\n */ worldViewerWindow.hel_video_seek = (seconds)=>{\n const video = getVideo();\n if (video === undefined) {\n return;\n }\n video.currentTime = seconds;\n};\n/**\n * @remarks\n * heliodor_xrw_video\u7B49\u304B\u3089\u547C\u3073\u51FA\u3057\u3042\u308A\n * @param mute\n */ worldViewerWindow.hel_video_SetMute = (mute)=>{\n const video = getVideo();\n if (video === undefined) {\n return;\n }\n video.muted = mute;\n};\n/**\n * \u672A\u4F7F\u7528\n */ worldViewerWindow.hel_video_get_slider_rate = ()=>{\n const video = getVideo();\n if (video === undefined) {\n return 0.0;\n }\n let sliderRate = 0.0;\n if (video.duration > 0.0) {\n sliderRate = video.currentTime / video.duration;\n }\n return sliderRate;\n};\n/**\n * \u672A\u4F7F\u7528\n * @param x\n * @param y\n * @param width\n * @param height\n */ worldViewerWindow.hel_video_copy_video_frame_to_system = (x, y, width, height)=>{\n const video = getVideo();\n if (video === undefined) {\n return;\n }\n const w = width != null ? width : video.videoWidth;\n const h = height != null ? height : video.videoHeight;\n const findVideoJson = (json)=>{\n for (const item of json.items){\n if (item.clickablenodes != null) {\n for (const node of item.clickablenodes){\n if (node.eventmap !== null && node.eventmap !== undefined) {\n return node;\n }\n }\n }\n }\n return undefined;\n };\n const sceneJsonPath = getSceneJsonPath();\n if (sceneJsonPath === undefined) {\n console.error('sceneJsonPath not found');\n return;\n }\n fetch(sceneJsonPath).then((response)=>{\n response.json().then((json)=>{\n setSceneJson(json);\n const node = findVideoJson(json);\n if (node != null) {\n setVideoInfo(node);\n worldViewerWindow.hel_setText(ETextParamType_CopyVideoFrameToSystem, `${x},${y},${w},${h}`);\n } else {\n console.error('The video info not found in the scene json file.');\n }\n });\n });\n};\n/**\n * \u672A\u4F7F\u7528\n */ worldViewerWindow.hel_video_cancel_to_copy_video_frame_to_system = ()=>{\n const video = getVideo();\n if (video === undefined) {\n return;\n }\n worldViewerWindow.hel_setText(ETextParamType_CancelToCopyVideoFrameToSystem, '');\n};\n", "import { worldViewerWindow } from './const';\nimport { CHELAudio } from './CHELAudio';\nimport { getAudioList, getMixerMuteAt, getMixerSettingAt, getMixerMasterVolume, getMixerMasterMute, pushNullToAudioList, setAudioList } from './logics/dataOps';\nconst defineNextAudioIndexFromAudioList = ()=>{\n const audioList = getAudioList();\n for(let index = 0; index < audioList.length; index++){\n if (audioList[index] == null || audioList[index] === undefined) {\n return index;\n }\n }\n pushNullToAudioList();\n return audioList.length - 1;\n};\n/**\n * @remarks\n * \u30AA\u30FC\u30C7\u30A3\u30AA\n * C++\u5074, heliodor.js\u304B\u3089\u3082\u547C\u51FA\u3055\u308C\u308B\n *\n * @param fileName\n * @param type\n * @param play\n * @param loop\n * @param volume\n */ worldViewerWindow.createAudio = (fileName, type, play, loop, volume)=>{\n const index = defineNextAudioIndexFromAudioList();\n const helAudio = new CHELAudio(type, volume);\n setAudioList(helAudio, index);\n helAudio.load(fileName, play, loop);\n return index;\n};\n/**\n * @remarks\n * C++\u5074, heliodor.js\u304B\u3089\u3082\u547C\u51FA\u3055\u308C\u308B\n *\n * @param index\n */ worldViewerWindow.releaseAudioIndex = (index)=>{\n var ref;\n const audioList = getAudioList();\n if (audioList[index] === null) {\n return;\n }\n (ref = audioList[index]) === null || ref === void 0 ? void 0 : ref.release();\n setAudioList(null, index);\n};\n/**\n * @remarks\n * C++\u5074, heliodor.js\u304B\u3089\u3082\u547C\u51FA\u3055\u308C\u308B\n *\n * @param index\n * @param loop\n */ worldViewerWindow.playAudio = (index, loop)=>{\n var ref;\n const audioList = getAudioList();\n if (audioList[index] === null) {\n return;\n }\n (ref = audioList[index]) === null || ref === void 0 ? void 0 : ref.play(loop);\n};\n/**\n * @remarks\n * C++\u5074, heliodor.js\u304B\u3089\u3082\u547C\u51FA\u3055\u308C\u308B\n *\n * @param index\n */ worldViewerWindow.stopAudio = (index)=>{\n var ref;\n const audioList = getAudioList();\n if (audioList[index] == null) {\n return;\n }\n (ref = audioList[index]) === null || ref === void 0 ? void 0 : ref.stop();\n};\n/**\n * @remarks\n * C++\u5074, heliodor.js\u304B\u3089\u3082\u547C\u51FA\u3055\u308C\u308B\n *\n * @param index\n */ worldViewerWindow.isPlayAudio = (index)=>{\n var ref;\n const audioList = getAudioList();\n if (audioList[index] == null) {\n return 0;\n }\n return ((ref = audioList[index]) === null || ref === void 0 ? void 0 : ref.isPlay()) || 0;\n};\n/**\n * @remarks\n * C++\u5074, heliodor.js\u304B\u3089\u3082\u547C\u51FA\u3055\u308C\u308B\n *\n * @param index\n * @param realVolume\n */ worldViewerWindow.setAudioVolume = (index, realVolume)=>{\n var ref;\n const audioList = getAudioList();\n if (audioList[index] == null) {\n return;\n }\n return (ref = audioList[index]) === null || ref === void 0 ? void 0 : ref.setVolume(realVolume);\n};\n/**\n * @remarks\n * C++\u5074, heliodor.js\u304B\u3089\u3082\u547C\u51FA\u3055\u308C\u308B\n *\n * @param type\n */ worldViewerWindow.hel_mixer_GetVolume = (type)=>{\n return parseFloat(getMixerSettingAt(type));\n};\n/**\n * @remarks\n * C++\u5074, heliodor.js\u304B\u3089\u3082\u547C\u51FA\u3055\u308C\u308B\n *\n * @param type\n */ worldViewerWindow.hel_mixer_IsMute = (type)=>{\n return parseFloat(getMixerMuteAt(type));\n};\n/**\n * @remarks\n * C++\u5074\u304B\u3089\u547C\u51FA\u3055\u308C\u308B\n */ worldViewerWindow.hel_mixer_GetMasterVolume = ()=>{\n return parseFloat(getMixerMasterVolume());\n};\n/**\n * @remarks\n * C++\u5074\u304B\u3089\u547C\u51FA\u3055\u308C\u308B\n */ worldViewerWindow.hel_mixer_IsMasterMute = ()=>{\n return parseFloat(getMixerMasterMute());\n};\n", "import { worldViewerWindow } from './const';\nimport { getMixerTab, getUseLegacyAudioToggle } from './logics/dataOps';\nexport class CHELAudio {\n load(fileName, toplay, loop) {\n this.toplay = toplay;\n if (getUseLegacyAudioToggle()) {\n this.audio.src = fileName;\n this.audio.load();\n const that = this;\n if (toplay) {\n that.play(loop);\n }\n this.audio.addEventListener('ended', function() {\n that.playing = false;\n }, false);\n } else {\n const request = new XMLHttpRequest();\n request.open('GET', fileName, true);\n request.responseType = 'arraybuffer';\n const that = this;\n request.onload = function() {\n that.context.decodeAudioData(request.response, function(buf) {\n that.source.buffer = buf;\n that.source.connect(that.gainNode);\n that.gainNode.connect(that.context.destination);\n if (toplay) {\n that.play(loop);\n }\n });\n };\n request.send();\n }\n }\n play(loop) {\n if (!this.toplay && this.isPlay()) return;\n if (this.audio !== undefined) {\n this.audio.loop = loop;\n this.audio.play();\n this.playing = true;\n } else {\n this.source.loop = loop;\n this.source.start(0);\n this.playBeginTime = this.context.currentTime;\n this.playing = true;\n }\n this.toplay = false;\n }\n stop() {\n if (!this.playing) return;\n if (this.audio !== undefined) {\n this.audio.pause();\n } else {\n this.source.stop();\n }\n this.playing = false;\n }\n isPlay() {\n if (this.toplay) return 1;\n return this.playing ? 1 : 0;\n }\n getPlayTimeAudio() {\n if (!this.playing) return 0;\n if (this.audio !== undefined) {\n return 0;\n } else {\n const parseTime = this.context.currentTime - this.playBeginTime;\n return parseInt(parseTime * 1000, 10);\n }\n }\n setVolume(volume) {\n if (this.audio === undefined) {\n this.gainNode.gain.value = getMixerTab() * volume;\n }\n }\n release() {\n this.stop();\n }\n constructor(type, volume){\n this.getType = ()=>this.type\n ;\n this.type = type;\n this.toplay = false;\n if (getUseLegacyAudioToggle()) {\n this.audio = new Audio();\n this.playing = false;\n this.playBeginTime = 0.0;\n } else {\n this.context = new (worldViewerWindow.AudioContext || worldViewerWindow.webkitAudioContext)();\n this.playing = false;\n this.playBeginTime = 0.0;\n if (this.context === undefined) {\n return;\n }\n this.source = this.context.createBufferSource();\n this.gainNode = this.context.createGain();\n this.gainNode.gain.value = volume;\n const that = this;\n this.source.onended = function() {\n const buf = that.source.buffer;\n const ended = that.source.onended;\n that.source.stop();\n that.source = that.context.createBufferSource();\n that.source.onended = ended;\n that.source.buffer = buf;\n that.source.connect(that.gainNode);\n that.playing = false;\n };\n }\n }\n}\n", "import { worldViewerWindow } from './const';\nimport { debugLog } from './debugLog';\nimport { getMainCanvasDOMElement } from './logics/domOps';\nimport { hel_isiPhone } from './logics/platform';\n/**\n * @remarks\n * C++, heliodor.js\u304B\u3089\u547C\u51FA\u304C\u3042\u308B\u305F\u3081global\u95A2\u6570\n *\n * @param visible\n */ worldViewerWindow.hel_video_set_movieviewer_ui = (visible)=>{\n //\u203B\u30B9\u30E9\u30A4\u30C0\u30FC\u306E\u8868\u793A\u30FB\u975E\u8868\u793A\u306F\u306FCPP\u3067\u5236\u5FA1\u3057\u3066\u307E\u3059\u3002\n //\u203B\u30B9\u30E9\u30A4\u30C0\u30FC\u3082\u540C\u6642\u306B\u8868\u793A\u5236\u5FA1\u3057\u305F\u3044\u5834\u5408\u306F\u3001 heliodor_front.js \u306E\n //\u3000hel_video_set_movieviewer_ui_all() \u3092\u4F7F\u3046\u4E8B\u3002\n //console.log(\"*** hel_video_set_movieviewer_ui(\" + visible + \")\");\n //\u505C\u6B62\u4E2D\uFF1F\n let paused = worldViewerWindow.hel_video_is_paused();\n //--------------------------------------------\n //movieviewer/_po.json \u306E Toggle \u3092\u8A2D\u5B9A\u3059\u308B\u3002\n //(1)\u4E00\u65E6\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\u306B\u3059\u308B\uFF08\uFF1Dmovieviewer/_po.json\u306EToggle\u5024\u306B\u3059\u308B\uFF09\n worldViewerWindow.hel_canvas_ResetToggleDefault('IsVisible_VideoPlayerCurrentTime'); //true\n worldViewerWindow.hel_canvas_ResetToggleDefault('IsVisible_VideoPlayerTotalTime'); //true\n worldViewerWindow.hel_canvas_ResetToggleDefault('IsVisible_hud_movie_play'); //false\n worldViewerWindow.hel_canvas_ResetToggleDefault('IsVisible_hud_movie_pause'); //true\n worldViewerWindow.hel_canvas_ResetToggleDefault('IsVisible_hud_movie_forward'); //true\n worldViewerWindow.hel_canvas_ResetToggleDefault('IsVisible_hud_movie_rewind'); //true\n //(2)\u518D\u8A2D\u5B9A\n if (visible) {\n //\u8868\u793A\u3055\u305B\u308B\n if (paused) {\n //\u30DD\u30FC\u30BA\u4E2D\u306A\u3089\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\u3092\u53CD\u8EE2\n worldViewerWindow.hel_canvas_ToggleChange('IsVisible_hud_movie_play'); //false => true\n worldViewerWindow.hel_canvas_ToggleChange('IsVisible_hud_movie_pause'); //true\t=> false\n }\n } else {\n //\u8868\u793A\u3055\u305B\u306A\u3044\n worldViewerWindow.hel_canvas_ToggleChange('IsVisible_VideoPlayerCurrentTime'); //true\t=> false\n worldViewerWindow.hel_canvas_ToggleChange('IsVisible_VideoPlayerTotalTime'); //true\t=> false\n worldViewerWindow.hel_canvas_ToggleChange('IsVisible_hud_movie_pause'); //true\t=> false\n worldViewerWindow.hel_canvas_ToggleChange('IsVisible_hud_movie_forward'); //true\t=> false\n worldViewerWindow.hel_canvas_ToggleChange('IsVisible_hud_movie_rewind'); //true\t=> false\n }\n //-----------------------------------------\n //\u6A2A\u753B\u9762\n let layout_name = 'movieviewer';\n worldViewerWindow.hel_canvas_SetGUIShow(layout_name, 'VideoPlayerCurrentTime', visible);\n worldViewerWindow.hel_canvas_SetGUIShow(layout_name, 'VideoPlayerTotalTime', visible);\n if (paused) {\n worldViewerWindow.hel_canvas_SetGUIShow(layout_name, 'hud_movie_play', visible);\n worldViewerWindow.hel_canvas_SetGUIShow(layout_name, 'hud_movie_pause', false);\n } else {\n worldViewerWindow.hel_canvas_SetGUIShow(layout_name, 'hud_movie_play', false);\n worldViewerWindow.hel_canvas_SetGUIShow(layout_name, 'hud_movie_pause', visible);\n }\n worldViewerWindow.hel_canvas_SetGUIShow(layout_name, 'hud_movie_forward', visible);\n worldViewerWindow.hel_canvas_SetGUIShow(layout_name, 'hud_movie_rewind', visible);\n //\u7E26\u753B\u9762\n layout_name = 'movieviewer_po';\n worldViewerWindow.hel_canvas_SetGUIShow(layout_name, 'VideoPlayerCurrentTime', visible);\n worldViewerWindow.hel_canvas_SetGUIShow(layout_name, 'VideoPlayerTotalTime', visible);\n if (paused) {\n worldViewerWindow.hel_canvas_SetGUIShow(layout_name, 'hud_movie_play', visible);\n worldViewerWindow.hel_canvas_SetGUIShow(layout_name, 'hud_movie_pause', false);\n } else {\n worldViewerWindow.hel_canvas_SetGUIShow(layout_name, 'hud_movie_play', false);\n worldViewerWindow.hel_canvas_SetGUIShow(layout_name, 'hud_movie_pause', visible);\n }\n worldViewerWindow.hel_canvas_SetGUIShow(layout_name, 'hud_movie_forward', visible);\n worldViewerWindow.hel_canvas_SetGUIShow(layout_name, 'hud_movie_rewind', visible);\n};\n/**\n * @remarks\n * C++\u304B\u3089\u547C\u3073\u51FA\u3055\u308C\u308B\n * \u30B9\u30AF\u30EA\u30FC\u30F3\u30B7\u30E7\u30C3\u30C8\n */ worldViewerWindow.hel_screenshot = ()=>{\n const mainCanvas = getMainCanvasDOMElement();\n if (mainCanvas === undefined) {\n debugLog('[ hel_screenshot ] mainCanvas is not assigned. noop');\n return;\n }\n // iPhone\u3067\u306E\u30B9\u30AF\u30B7\u30E7\n // \u901A\u5E38\u306E\u65B9\u6CD5\u3067\u30B9\u30AF\u30B7\u30E7\u3092\u64AE\u5F71\u3059\u308B\u3068Skyway\u304C\u5207\u65AD\u3055\u308C\u3066\u3057\u307E\u3046\u305F\u3081\u3001\u3053\u306E\u3088\u3046\u306B\u3057\u3066\u3044\u308B\n if (hel_isiPhone() && mainCanvas !== undefined) {\n window.localStorage['ssBase64'] = mainCanvas.toDataURL('image/png');\n modalSS.show();\n return;\n }\n // \u305D\u306E\u4ED6\u306E\u30C7\u30D0\u30A4\u30B9\u3067\u306E\u30B9\u30AF\u30B7\u30E7\n mainCanvas.toBlob((blob)=>{\n const a = document.createElement('a');\n a.href = URL.createObjectURL(blob);\n const today = new Date();\n a.download = '' + today.getFullYear() + ('00' + (today.getMonth() + 1)).slice(-2) + ('00' + today.getDate()).slice(-2) + '_' + ('00' + today.getHours()).slice(-2) + ('00' + today.getMinutes()).slice(-2) + ('00' + today.getSeconds()).slice(-2) + '.png';\n a.style.display = 'none';\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n });\n};\n// URL\n/**\n * C++\u304B\u3089\u53C2\u7167\u3055\u308C\u3066\u308B\n * @param url\n */ worldViewerWindow.hel_openPage = (url)=>{\n worldViewerWindow.open(url, '_blank');\n};\n// ScreenShot Class\nclass ModalSS {\n show() {\n if (this.container !== null) this.container.style.visibility = 'visible';\n }\n hide() {\n if (this.container !== null) this.container.style.visibility = 'hidden';\n }\n constructor(){\n //\n this.container = document.querySelector('#__ss_modal');\n //\n this.btnOpenSS = document.querySelector('#__ss_modal-dialog-btn_open_ss');\n if (this.btnOpenSS !== null) {\n this.btnOpenSS.addEventListener('click', ()=>{\n this.hide();\n });\n }\n //\n this.btnClose = document.querySelector('#__ss_modal-dialog-btn_close');\n if (this.btnClose !== null) {\n this.btnClose.addEventListener('click', ()=>{\n this.hide();\n });\n }\n }\n}\nconst modalSS = new ModalSS;\n", "// Scene\nimport { ETextParamType_OperateCanvas, ETextParamType_SceneItem, worldViewerWindow } from './const';\n// OperateCanvas\n/**\n * @remarks\n * JRWorld_web->heliodor_front.js\u306B\u3066\u53C2\u7167\n * JRWorld_web->heliodor_skyway.js\u306B\u3066\u53C2\u7167\n * XRWorldIngame->heliodor_front.js\u306B\u3066\u53C2\u7167\n * XRWorldIngame->heliodor_xrw_interface.js\u306B\u3066\u53C2\u7167\n * XRWorldIngame->heliodor_skyway.js\u306B\u3066\u53C2\u7167\n * heliodor_front, skyway\u304B\u3089\u547C\u51FA\u304C\u3042\u308B\u305F\u3081\u3001global\u95A2\u6570\u3068\u3057\u3066\u304A\u3044\u3066\u304A\u304F\n * @param layoutName\n * @param show\n */ worldViewerWindow.hel_canvas_SetLayoutShow = (layoutName, show)=>{\n worldViewerWindow.hel_setText(ETextParamType_OperateCanvas, 'SetLayoutShow,' + layoutName + ',' + (show ? 'true' : 'false'));\n};\n/**\n * @remarks\n * JRWorld_web->heliodor_front.js\u306B\u3066\u53C2\u7167\n * JRWorld_web->heliodor_skyway.js\u306B\u3066\u53C2\u7167\n * XRWorldIngame->heliodor_xrw_interface.js\u306B\u3066\u53C2\u7167\n * XRWorldIngame->heliodor_skyway.js\u306B\u3066\u53C2\u7167\n * heliodor_front, xrw_interface, skyway\u304B\u3089\u547C\u51FA\u304C\u3042\u308B\u305F\u3081\u3001global\u95A2\u6570\u3068\u3057\u3066\u304A\u3044\u3066\u304A\u304F\n * @param layoutName\n * @param guiName\n * @param show\n */ worldViewerWindow.hel_canvas_SetGUIShow = (layoutName, guiName, show)=>{\n worldViewerWindow.hel_setText(ETextParamType_OperateCanvas, 'SetGUIShow,' + layoutName + ',' + guiName + ',' + (show ? 'true' : 'false'));\n};\n/**\n * @remarks\n * JRWorld_web->heliodor_front.js\u306B\u3066\u53C2\u7167\n * XRWorldIngame->heliodor_xrw_interface.js\u306B\u3066\u53C2\u7167\n * heliodor_front, xrw_interface, skyway, skyway_rcp\u304B\u3089\u547C\u51FA\u304C\u3042\u308B\u305F\u3081\u3001global\u95A2\u6570\u3068\u3057\u3066\u304A\u3044\u3066\u304A\u304F\n * @param layoutName\n * @param guiName\n * @param text\n */ worldViewerWindow.hel_canvas_SetGUIText = (layoutName, guiName, text)=>{\n worldViewerWindow.hel_setText(ETextParamType_OperateCanvas, 'SetGUIText,' + layoutName + ',' + guiName + ',' + text);\n};\n/**\n * @remarks\n * JRWorld_web->heliodor_front.js\u306B\u3066\u53C2\u7167\n * heliodor_front.js\u304B\u3089\u53C2\u7167\u3042\u308B\u305F\u3081global\u95A2\u6570\u3068\u3057\u3066\u304A\u3044\u3066\u304A\u304F\n * @param ItemName\n * @param NodeName\n * @param Show\n */ worldViewerWindow.hel_scene_SetShowNode = (ItemName, NodeName, Show)=>{\n worldViewerWindow.hel_setText(ETextParamType_SceneItem, 'SetShowNode,' + ItemName + ',' + NodeName + ',' + (Show ? '1' : '0'));\n};\n// TogggleDefault\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u5024\u306B\u623B\u3059\n/**\n * @remarks\n * JRWorld_web->heliodor_front.js\u306B\u3066\u53C2\u7167\n * XRWorldIngame->heliodor_xrw_interface.js\u306B\u3066\u53C2\u7167\n * heliodor_front.js\u304B\u3089\u53C2\u7167\u3042\u308B\u305F\u3081global\u95A2\u6570\u3068\u3057\u3066\u304A\u3044\u3066\u304A\u304F\n * @param ToggleName\n */ worldViewerWindow.hel_canvas_ResetToggleDefault = (ToggleName)=>{\n let layoutName = 'DummyLayout'; //\u69CB\u6587\u30EB\u30FC\u30EB\u4E0A\u5FC5\u8981\n worldViewerWindow.hel_setText(ETextParamType_OperateCanvas, 'ToggleDefault,' + layoutName + ',' + ToggleName);\n};\n// Toggle\u3092\u5207\u308A\u66FF\u3048\u308B\n/**\n * @remarks\n * JRWorld_web->heliodor_front.js\u306B\u3066\u53C2\u7167\n * XRWorldIngame->heliodor_xrw_interface.js\u306B\u3066\u53C2\u7167\n * heliodor_front.js\u304B\u3089\u53C2\u7167\u3042\u308B\u305F\u3081global\u95A2\u6570\u3068\u3057\u3066\u304A\u3044\u3066\u304A\u304F\n * @param ToggleName\n */ worldViewerWindow.hel_canvas_ToggleChange = (ToggleName)=>{\n let layoutName = 'DummyLayout'; //\u69CB\u6587\u30EB\u30FC\u30EB\u4E0A\u5FC5\u8981\n worldViewerWindow.hel_setText(ETextParamType_OperateCanvas, 'ToggleChange,' + layoutName + ',' + ToggleName);\n};\n/**\n * @remarks\n * JRWorld_web->heliodor_front.js\u306B\u3066\u53C2\u7167\n * XRWorldIngame->heliodor_xrw_interface.js\u306B\u3066\u53C2\u7167\n * heliodor_front, xrw_interface.js\u304B\u3089\u547C\u51FA\u304C\u3042\u308B\u305F\u3081\u3001global\u95A2\u6570\u3068\u3057\u3066\u304A\u3044\u3066\u304A\u304F\n * @param layoutName\n * @param guiName\n * @param fileName\n */ worldViewerWindow.hel_canvas_SetGUIImage = (layoutName, guiName, fileName)=>{\n worldViewerWindow.hel_setText(ETextParamType_OperateCanvas, 'SetGUIImage,' + layoutName + ',' + guiName + ',' + fileName);\n};\n/**\n * @remarks\n * heliodor_front, xrw_interface.js\u304B\u3089\u547C\u51FA\u304C\u3042\u308B\u305F\u3081\u3001global\u95A2\u6570\u3068\u3057\u3066\u304A\u3044\u3066\u304A\u304F\n * @param layoutName\n * @param guiName\n * @param canvasID\n */ worldViewerWindow.hel_canvas_SetGUIImageByHTMLCanvas = (layoutName, guiName, canvasID)=>{\n worldViewerWindow.hel_setText(ETextParamType_OperateCanvas, 'SetGUIImageByHTMLCanvas,' + layoutName + ',' + guiName + ',' + canvasID);\n};\n", "import { ETextParamType_AvatarFileName, ETextParamType_PlayerMoveEnable, ETextParamType_SceneItem, ETextParamType_WarpPlayer, ETextParamType_StopItem, ETextParamType_GUIDebugInput, ETextParamType_PlayEmote, worldViewerWindow } from './const';\nimport { getVCUID, setVCUID } from './logics/dataOps';\n// UID\nconst hel_makeVCUID = ()=>{\n let Result = '1';\n for(let n = 1; n < 10; n++){\n Result += String(Math.floor(Math.random() * 10));\n }\n return Result;\n};\n/**\n * @remarks\n *\n * hel_start\u3088\u308A\u547C\u51FA\u3057\u6709\u308A\n */ export const hel_prepareVCUID = ()=>{\n const VCUID_CookieName = 'VCUID';\n setVCUID(worldViewerWindow.hel_get_cookie(VCUID_CookieName) || '');\n const vcuid = getVCUID();\n if (vcuid === undefined) {\n const updatedVcuid = hel_makeVCUID();\n setVCUID(updatedVcuid);\n worldViewerWindow.hel_set_cookie(VCUID_CookieName, updatedVcuid);\n }\n};\n/**\n * @remarks\n * JRWorld_web->heliodor_front.js\u306B\u3066\u53C2\u7167\n * heliodor_front\u304B\u3089\u547C\u51FA\u304C\u3042\u308B\u305F\u3081\u3001global\u95A2\u6570\u3068\u3057\u3066\u304A\u3044\u3066\u304A\u304F\n * @param Flag\n */ worldViewerWindow.hel_player_SetMoveEnable = (Flag)=>{\n worldViewerWindow.hel_setText(ETextParamType_PlayerMoveEnable, Flag ? '1' : '0');\n};\n// For Send chat message by ENTER key when IME is off.\n/**\n * @remarks\n * JRWorld_web->heliodor_front.js\u306B\u3066\u53C2\u7167\n * XRWorldIngame->heliodor_front.js\u306B\u3066\u53C2\u7167\n * heliodor_front\u304B\u3089\u547C\u51FA\u304C\u3042\u308B\u305F\u3081\u3001global\u95A2\u6570\u3068\u3057\u3066\u304A\u3044\u3066\u304A\u304F\n * @param event\n */ worldViewerWindow.hel_send_chat_message_enterkey = (event)=>{\n if (event.keyCode == 13 && !event.isComposing) {\n worldViewerWindow.hel_skyway_send_chat_text(); // heliodor_skyway.js\n }\n};\n// Item\n/**\n * @remarks\n * JRWorld_web->heliodor_front.js\u306B\u3066\u53C2\u7167\n * heliodor_front.js\u304B\u3089\u53C2\u7167\u3042\u308B\u305F\u3081global\u95A2\u6570\u3068\u3057\u3066\u304A\u3044\u3066\u304A\u304F\n * @param ItemName\n * @param Index\n */ worldViewerWindow.hel_scene_PlayItem = (ItemName, Index)=>{\n worldViewerWindow.hel_setText(ETextParamType_SceneItem, 'Play,' + ItemName + ',' + Index);\n};\n/**\n * @remarks\n * @param ItemName\n */ worldViewerWindow.hel_scene_StopItem = (ItemName)=>{\n worldViewerWindow.hel_setText(ETextParamType_StopItem, ItemName);\n};\n/**\n * @param EmoteIndex\n */ worldViewerWindow.hel_player_PlayEmote = (EmoteIndex)=>{\n worldViewerWindow.hel_setText(ETextParamType_PlayEmote, EmoteIndex);\n};\n/**\n * @remarks\n * @param ItemName\n * @param MaterialName\n * @param FilePath\n */ worldViewerWindow.hel_scene_ReplaceTexture = (ItemName, MaterialName, FilePath)=>{\n worldViewerWindow.hel_setText(ETextParamType_SceneItem, \"ReplaceTexture,\" + ItemName + \",\" + MaterialName + \",\" + FilePath);\n};\n// Player\n/**\n * @remarks\n * JRWorld_web->heliodor_front.js\u306B\u3066\u53C2\u7167\n * front\u304B\u3089\u547C\u51FA\u304C\u3042\u308B\u305F\u3081\u3001global\u95A2\u6570\u3068\u3057\u3066\u304A\u3044\u3066\u304A\u304F\n * @param X\n * @param Y\n * @param Z\n * @param Angle\n */ worldViewerWindow.hel_player_Warp = (X, Y, Z, Angle)=>{\n worldViewerWindow.hel_setText(ETextParamType_WarpPlayer, '' + X + ',' + Y + ',' + Z + ',' + Angle);\n};\n/**\n * @remarks\n * XRWorldIngame->heliodor_front.js\u306B\u3066\u53C2\u7167\n * XRWorldIngame->heliodor_skyway.js\u306B\u3066\u53C2\u7167\n * XRWorldIngame->heliodor_skyway_xrw.js\u306B\u3066\u53C2\u7167\n * heliodor_front.js\u304B\u3089\u53C2\u7167\u3042\u308B\u305F\u3081global\u95A2\u6570\u3068\u3057\u3066\u304A\u3044\u3066\u304A\u304F\n * @param text_context\n */ worldViewerWindow.hel_remove_emoji = (text_context)=>{\n const regex_conditions = RegExp(\"\\\\p{Emoji_Modifier_Base}\\\\p{Emoji_Modifier}?|\\\\p{Emoji_Presentation}|\\\\p{Emoji}\\\\uFE0F\", \"gu\");\n text_context.value = text_context.value.replaceAll(regex_conditions, '*');\n};\n/**\n * @remarks\n * \u30A2\u30D0\u30BF\u30FC\u30D1\u30C3\u30B1\u30FC\u30B8JSON\u3092HELIDOR\u306B\u8A2D\u5B9A\u3059\u308B\u305F\u3081\u306E\u95A2\u6570\n *\n * @param avatarFileName\n */ worldViewerWindow.hel_setAvatarFileName = (avatarFileName)=>{\n worldViewerWindow.hel_setText(ETextParamType_AvatarFileName, avatarFileName);\n};\n/**\n * @remarks DEBUG TAB GUI\u7BA1\u7406\n * @version 3.0\n * @param text\n */ worldViewerWindow.showGUIdebugTab = (text)=>{\n const tab = document.getElementById('GUIdebugTab');\n if (!tab) {\n return;\n }\n tab.innerHTML = text;\n};\n/**\n * @remarks DEBUG GUI\u7BA1\u7406\n * @version 3.0\n * @param text\n */ worldViewerWindow.showGUIdebug = (text)=>{\n const debug = document.getElementById('GUIdebug');\n if (!debug) return;\n debug.innerHTML = text;\n};\n/**\n * @remarks DEBUG GUI\u306E\u30AF\u30EA\u30C3\u30AF\u547C\u3073\u51FA\u3057\n * @version 3.0\n * @param text\n */ worldViewerWindow.onDebugTableClick = (val)=>{\n worldViewerWindow.hel_setText(ETextParamType_GUIDebugInput, String(val));\n};\n", "// HeliodorSDK 3.0 Beta\nimport 'skyway-js';\nimport { ETextParamType_SetMicState, ETextParamType_Logined, ETextParamType_CanvasFileName, ETextParamType_CurrentUserName, ETextParamType_HeliodorSDKVersion, worldViewerWindow } from './const';\nimport { debugLog } from './debugLog';\nimport { presetBeforeBoot } from './logics/assign';\nimport { hel_resizeWindow } from './logics/callCGui';\nimport { getAnimationFrameRequest, getCanvasFileName, getCurrentUserName, getHeliodorSdkVersion, getLoggedInStatusToggle, getWorldId, setAnimationFrameRequest, setCanvasFileName, setCanvasLayerShow, setMixerTab, setSceneJsonPath } from './logics/dataOps';\nimport { getMainCanvasDOMElement } from './logics/domOps';\nimport { requestBootStrapGameEngine, requestToDrawFrame } from './logics/moduleCaller';\nimport { hel_mixer_LoadCookie_Mute, hel_mixer_LoadCookie_Volume } from './logics/cookieOps';\nimport { hel_mixer_UpdateAll } from './logics/mixerOps';\nimport { checkAndInitVR } from './heliodor_xr';\nimport { hel_prepareVCUID } from './heliodor_core_misc';\n/**\n * @remarks\n * JRWorld_web->heliodor_front.js\u306B\u3066\u53C2\u7167\n * JRWorld_web->heliodor_xr.js\u306B\u3066\u53C2\u7167\n * XRWorldIngame->heliodor_front.js\u306B\u3066\u53C2\u7167\n * XRWorldIngame->heliodor_xr.js\u306B\u3066\u53C2\u7167\n * XRWorldIngame->heliodor_xrw_main.js\u306B\u3066\u53C2\u7167\n * front, heliodor_xrw_main\u304B\u3089\u547C\u3073\u51FA\u3057\u304C\u3042\u308B\u305F\u3081\u30B0\u30ED\u30FC\u30D0\u30EB\u306B\u3068\u3069\u3081\u3066\u308B\n */ worldViewerWindow.hel_setCanvasFileName = (canvasFileName)=>setCanvasFileName(canvasFileName)\n;\nconst drawFrame = ()=>{\n requestToDrawFrame();\n const myReq = worldViewerWindow.requestAnimationFrame(drawFrame);\n setAnimationFrameRequest(myReq);\n};\n/**\n * AnimationFrame\u306E\u30EB\u30FC\u30D7\u3092\u958B\u59CB\u3059\u308B\n */ worldViewerWindow.hel_requestAnimationFrame = ()=>{\n drawFrame();\n};\n/**\n * AnimationFrame\u306E\u30EB\u30FC\u30D7\u3092\u505C\u6B62\u3059\u308B\n */ worldViewerWindow.hel_cancelAnimationFrame = ()=>{\n const request = getAnimationFrameRequest();\n worldViewerWindow.cancelAnimationFrame(request);\n};\n/**\n * front\u304B\u3089\u547C\u3073\u51FA\u3057\u304C\u3042\u308B\u305F\u3081\u30B0\u30ED\u30FC\u30D0\u30EB\u306B\u3068\u3069\u3081\u3066\u308B\n * @virtual\n */ worldViewerWindow.hel_start = (Type, CharaType, Param1, MultiPlay, StrParam0)=>{\n const mainCanvas = getMainCanvasDOMElement();\n if (mainCanvas === undefined || mainCanvas.width <= 0 || mainCanvas.height <= 0) {\n debugLog('[ hel_start ] mainCanvas is not assigned. noop');\n return;\n }\n const CanTouch = worldViewerWindow.ontouchstart !== undefined;\n setSceneJsonPath('data/' + StrParam0);\n // Initialize\n hel_mixer_LoadCookie_Volume();\n hel_mixer_LoadCookie_Mute();\n hel_prepareVCUID();\n worldViewerWindow.hel_set_show_TextField_configurl(false);\n worldViewerWindow.hel_set_show_TextField_UserName(false);\n // gtag\u547C\u3073\u51FA\u3057\n worldViewerWindow.hel_gtag(\"Start\", {\n param0: getWorldId(),\n param1: MultiPlay\n });\n // Set Parameter\n presetBeforeBoot();\n worldViewerWindow.hel_setText(ETextParamType_Logined, getLoggedInStatusToggle() ? '1' : '0');\n worldViewerWindow.hel_setText(ETextParamType_CanvasFileName, getCanvasFileName());\n worldViewerWindow.hel_setText(ETextParamType_CurrentUserName, getCurrentUserName());\n worldViewerWindow.hel_setText(ETextParamType_HeliodorSDKVersion, getHeliodorSdkVersion());\n //\n requestBootStrapGameEngine(Type, CharaType, Param1, StrParam0, CanTouch, MultiPlay, false);\n //\n mainCanvas.focus();\n drawFrame();\n};\n/**\n * front\u304B\u3089\u547C\u3073\u51FA\u3057\u304C\u3042\u308B\u305F\u3081\u30B0\u30ED\u30FC\u30D0\u30EB\u306B\u3068\u3069\u3081\u3066\u308B\n * @virtual\n */ worldViewerWindow.hel_startScene = (CharaType, MultiPlay, SceneFileName, IsVR = false)=>{\n if (IsVR) {\n checkAndInitVR(SceneFileName, MultiPlay ? 1 : 0);\n } else {\n worldViewerWindow.hel_start(0, CharaType, 0, MultiPlay, SceneFileName);\n }\n};\n/**\n * Heliodor\u306E\u30B7\u30FC\u30F3\u30ED\u30FC\u30C9\u5B8C\u4E86\u6642\u306B\u547C\u3070\u308C\u308B\u30B3\u30FC\u30EB\u30D0\u30C3\u30AF\u95A2\u6570\n */ worldViewerWindow.hel_onloadedForSystem = ()=>{\n// checkVR(); // WebXR\u30EA\u30EA\u30FC\u30B9\u5EF6\u671F\u306E\u305F\u3081\u30B3\u30E1\u30F3\u30C8\u30A2\u30A6\u30C8\n};\n// \u5373\u6642\u5B9F\u884C\ndocument.addEventListener('visibilitychange', ()=>{\n if (document.visibilityState === 'hidden') {\n setMixerTab(0.0);\n hel_mixer_UpdateAll();\n // Force MicMute\n worldViewerWindow.hel_skyway_set_mic_state(false);\n worldViewerWindow.hel_setText(ETextParamType_SetMicState, '0');\n worldViewerWindow.hel_canvas_ResetToggleDefault('voicechat');\n } else if (document.visibilityState === 'visible') {\n setMixerTab(1.0);\n hel_mixer_UpdateAll();\n }\n}, false);\ndocument.addEventListener('fullscreenchange', ()=>hel_resizeWindow()\n);\nworldViewerWindow.hel_setCanvasLayerShow = (LayerName, Show)=>{\n setCanvasLayerShow(LayerName, Show);\n};\n", "import { getSkyRoomId, getSpotId, getWorldId, getWorldSelectedToggle } from './dataOps';\nimport { ETextParamType_LocationHref, ETextParamType_RoomID, ETextParamType_ShowWorldSelect, ETextParamType_SpotName, ETextParamType_WorldID, worldViewerWindow } from '../const';\n/**\n * @remarks\n * boot\u524D\u306B\u4E0B\u8A18\u306E\u8AF8\u60C5\u5831\u3092Heliodor\u306B\u8A2D\u5B9A\n * - WorldId\n * - RoomId\n * - SpotName\n * - Location\n * - SelectedWorld\n */ export const presetBeforeBoot = ()=>{\n const worldId = getWorldId();\n const skyRoomId = getSkyRoomId();\n const spotId = getSpotId();\n if (worldId !== undefined) {\n worldViewerWindow.hel_setText(ETextParamType_WorldID, worldId);\n }\n if (skyRoomId !== undefined) {\n worldViewerWindow.hel_setText(ETextParamType_RoomID, skyRoomId);\n }\n if (spotId !== undefined) {\n worldViewerWindow.hel_setText(ETextParamType_SpotName, spotId);\n }\n worldViewerWindow.hel_setText(ETextParamType_LocationHref, location.href);\n worldViewerWindow.hel_setText(ETextParamType_ShowWorldSelect, getWorldSelectedToggle() ? '1' : '0');\n};\n", "import { HEL_AUDIO_TYPE_SE, HEL_AUDIO_TYPE_SYSTEMSE, HEL_AUDIO_TYPE_VIDEO, HEL_AUDIO_TYPE_VOICE, HEL_AUDIO_TYPE_WORLD, worldViewerWindow } from '../const';\nimport { setMixerMasterMute, setMixerMasterVolume, setMixerMuteAt, setMixerSettingAt } from './dataOps';\nexport const hel_mixer_LoadCookie_Volume = ()=>{\n const VolumeWorld = worldViewerWindow.hel_get_cookie('mixervolume_world');\n if (VolumeWorld !== undefined) {\n setMixerSettingAt(VolumeWorld, HEL_AUDIO_TYPE_WORLD);\n }\n const VolumeVoice = worldViewerWindow.hel_get_cookie('mixervolume_voice');\n if (VolumeVoice !== undefined) {\n setMixerSettingAt(VolumeVoice, HEL_AUDIO_TYPE_VOICE);\n }\n const VolumeSE = worldViewerWindow.hel_get_cookie('mixervolume_se');\n if (VolumeSE !== undefined) {\n setMixerSettingAt(VolumeSE, HEL_AUDIO_TYPE_SE);\n }\n const VolumeSystemSE = worldViewerWindow.hel_get_cookie('mixervolume_systemse');\n if (VolumeSystemSE !== undefined) {\n setMixerSettingAt(VolumeSystemSE, HEL_AUDIO_TYPE_SYSTEMSE);\n }\n const VolumeVideo = worldViewerWindow.hel_get_cookie('mixervolume_video');\n if (VolumeVideo !== undefined) {\n setMixerSettingAt(VolumeVideo, HEL_AUDIO_TYPE_VIDEO);\n }\n const VolumeMaster = worldViewerWindow.hel_get_cookie('mixervolume_master');\n if (VolumeMaster !== undefined) {\n setMixerMasterVolume(VolumeMaster);\n }\n};\nexport const hel_mixer_LoadCookie_Mute = ()=>{\n const MuteWorld = worldViewerWindow.hel_get_cookie('mixermute_world');\n if (MuteWorld !== undefined) {\n setMixerMuteAt(MuteWorld, HEL_AUDIO_TYPE_WORLD);\n }\n const MuteVoice = worldViewerWindow.hel_get_cookie('mixermute_voice');\n if (MuteVoice !== undefined) {\n setMixerMuteAt(MuteVoice, HEL_AUDIO_TYPE_VOICE);\n }\n const MuteSE = worldViewerWindow.hel_get_cookie('mixermute_se');\n if (MuteSE !== undefined) {\n setMixerMuteAt(MuteSE, HEL_AUDIO_TYPE_SE);\n }\n const MuteSystemSE = worldViewerWindow.hel_get_cookie('mixermute_systemse');\n if (MuteSystemSE !== undefined) {\n setMixerMuteAt(MuteSystemSE, HEL_AUDIO_TYPE_SYSTEMSE);\n }\n const MuteVideo = worldViewerWindow.hel_get_cookie('mixermute_video');\n if (MuteVideo !== undefined) {\n setMixerMuteAt(MuteVideo, HEL_AUDIO_TYPE_VIDEO);\n }\n const MuteMaster = worldViewerWindow.hel_get_cookie('mixermute_master');\n if (MuteMaster !== undefined) {\n setMixerMasterMute(MuteMaster);\n }\n};\n", "import { HEL_AUDIO_TYPE_VIDEO, HEL_AUDIO_TYPE_VOICE, worldViewerWindow } from '../const';\nimport { getAudioList, getMixerDistanceAt, getMixerFaderSettingAt, getMixerMuteAt, getMixerSettingAt, getMixerMasterVolume } from './dataOps';\nconst hel_mixer_UpdateByType = (type)=>{\n worldViewerWindow.hel_mixer_SetVolume(type, getMixerSettingAt(type), getMixerMasterVolume(), getMixerFaderSettingAt(type), getMixerDistanceAt(type), getMixerMuteAt(type));\n};\nexport const hel_mixer_UpdateAll = ()=>{\n hel_mixer_UpdateByType(HEL_AUDIO_TYPE_VOICE);\n hel_mixer_UpdateByType(HEL_AUDIO_TYPE_VIDEO);\n const audioList = getAudioList();\n for(let index = 0; index < audioList.length; index++){\n var ref, ref1;\n if (audioList[index] == null) continue;\n const type = (ref = audioList[index]) === null || ref === void 0 ? void 0 : ref.getType();\n const realVolume = getMixerSettingAt(type) * getMixerFaderSettingAt(type) * getMixerDistanceAt(type) * (getMixerMuteAt(type) !== 0 ? 0.0 : 1.0);\n (ref1 = audioList[index]) === null || ref1 === void 0 ? void 0 : ref1.setVolume(realVolume);\n }\n};\n", "import { ETextParamType_CanvasFileName, ETextParamType_CurrentUserName, ETextParamType_Logined, worldViewerWindow } from './const';\nimport { debugLog } from './debugLog';\nimport { presetBeforeBoot } from './logics/assign';\nimport { getCanvasFileName, getCurrentUserName, getXRSession, setXRSession } from './logics/dataOps';\nimport { getLogDOMElement, getMainCanvas4XrDOMElement, getStatusDOMElement, getWebGLRenderingContext } from './logics/domOps';\nimport { requestIfCameraFpsValueAvailable, requestMemoryAllocate, requestReleaseMemoryFor, requestSetDataToHeap, requestSetVrPointer, requestSetVrPosePointer, requestToBindFrameBufferOf, requestToDrawFrame, requestToGetValueOf, requestToReleaseBoundFrameBuffer, requestToSetVrCameraPointer, requestVRControllerValue, switchToNoneVR, switchToVR } from './logics/moduleCaller';\nimport { setSceneJsonPath } from './logics/dataOps';\n// \u5373\u6642\u5B9F\u884C\n//\u4EE5\u4E0B\u306E\u30B3\u30FC\u30C9\u306FHTML\u5074\u306BxrStartButtonMulti\u304A\u3088\u3073xrStartButtonSIngle\n//\u3068\u3044\u3046\u540D\u524D\u306E\u30DC\u30BF\u30F3\u304C\u3042\u308B\u6642\u306B\u306E\u307F\u6709\u52B9\u3067\u3001\u305D\u306E\u30DC\u30BF\u30F3\u3092\u62BC\u3055\u308C\u305F\u3089\n//WebXR\u306EVR\u51E6\u7406\u306E\u30C1\u30A7\u30C3\u30AF\u304A\u3088\u3073\u5B9F\u884C\u304C\u958B\u59CB\u3055\u308C\u308B\u3002\n//------------------------------------------------------------------\nconst xrButtonNameMulti = 'xrStartButtonMulti';\nconst xrButtonNameSingle = 'xrStartButtonSingle';\nconst xrButtonMulti = document.getElementById(xrButtonNameMulti);\nconst xrButtonSingle = document.getElementById(xrButtonNameSingle);\nif (xrButtonSingle !== undefined && xrButtonSingle !== null) {\n xrButtonSingle.onclick = async ()=>{\n await checkAndInitVR(worldViewerWindow.xrFileName);\n };\n}\nif (xrButtonMulti !== undefined && xrButtonMulti !== null) {\n xrButtonMulti.onclick = async ()=>{\n worldViewerWindow.hel_skyway_join();\n worldViewerWindow.hel_skyway_main();\n await worldViewerWindow.hel_skyway_start();\n await checkAndInitVR(worldViewerWindow.xrFileName, 1);\n };\n}\nworldViewerWindow.hel_checkAndInitVR = async ()=>{\n await checkAndInitVR(worldViewerWindow.xrFileName);\n};\nworldViewerWindow.hel_exitVR = ()=>{\n const XRSession = getXRSession();\n if (XRSession != null) {\n XRSession.end();\n }\n};\n//--------------------------------------------------------------------\nlet lastPos = [\n 0.0,\n 0.0,\n 0.0\n]; //\u76F4\u524D(1\u30D5\u30EC\u30FC\u30E0\u524D\u306E)\u306E\u30D7\u30EC\u30A4\u30E4\u30FC\u306E\u5EA7\u6A19(x,y,z)\n/**\n * heliodor_post.js\u304B\u3089\u547C\u51FA\u3057\u3002global\u95A2\u6570\u5316\n * @constructor\n \n @remarks \u203B\u3053\u306E\u95A2\u6570\u304C\u306A\u3044\u5834\u5408\u3082\u52D5\u4F5C\u306F\u3059\u308B\u304C\u3001\u305D\u306E\u5834\u5408\u306FXR\u6A5F\u80FD\u304C\u6709\u52B9\u3067\u306A\u3044\u6642\u3082\nVR\u30DC\u30BF\u30F3\u304C\u8868\u793A\u3055\u308C\u3066\u3057\u307E\u3046\u3002\n*/ worldViewerWindow.XRButtonCheck = ()=>{\n //navigator.xr\u306F\u30D6\u30E9\u30A6\u30B6\u304C\u63D0\u4F9B\u3059\u308Bxr\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3042\u308A\n //\u3053\u308C\u304Cnull\u306A\u3089\u3001\u73FE\u5728\u4F7F\u7528\u4E2D\u306E\u30D6\u30E9\u30A6\u30B6\u304Cwebxr\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u306A\u3044\n //\u3082\u3057\u304F\u306F\u3001\u73FE\u5728webxr\u306E\u30C7\u30D0\u30A4\u30B9\u304C\u63A5\u7D9A\u3055\u308C\u3066\u3044\u306A\u3044\u304B\u306E\u3069\u3061\u3089\u304B\u3067\u3042\u308B\u305F\u3081\n //\u305D\u306E\u5834\u5408\u306Fwebxr\u306E\u305F\u3081\u306E\u30DC\u30BF\u30F3\u3092\u7121\u52B9\u5316\u3057\u3066\u3044\u308B\n if (xrButtonSingle !== undefined && xrButtonSingle !== null) {\n xrButtonSingle.style.visibility = navigator.xr !== undefined && navigator.xr !== null ? 'visible' : 'hidden';\n }\n if (xrButtonMulti !== undefined && xrButtonMulti !== null) {\n xrButtonMulti.style.visibility = navigator.xr !== undefined && navigator.xr !== null ? 'visible' : 'hidden';\n }\n};\nconst changeWebXRIcons = (flag)=>{\n if (flag) {\n worldViewerWindow.hel_canvas_ToggleChange(\"webxr_all\");\n } else {\n worldViewerWindow.hel_canvas_ResetToggleDefault(\"webxr_all\");\n }\n};\nexport const checkVR = ()=>{\n const XR = navigator.xr;\n if (XR) {\n XR.isSessionSupported('immersive-vr').then((supported)=>{\n if (supported) {\n changeWebXRIcons(true);\n } else {\n debugLog(\"vr is not supported\");\n changeWebXRIcons(false);\n }\n }).catch((err)=>{\n debugLog(\"support check \" + err.message);\n changeWebXRIcons(false);\n });\n } else {\n debugLog('Is Not Support WebXR On This Browser.');\n changeWebXRIcons(false);\n }\n};\n/** WebXR\u306EVR\u6A5F\u80FD\u304C\u4F7F\u3048\u308B\u304B\u3069\u3046\u304B\u3092\u30C1\u30A7\u30C3\u30AF\u3057\u3001\u4F7F\u3048\u308B\u306E\u306A\u3089\u30A2\u30D7\u30EA\u306EVR\u7248\u3092\u8D77\u52D5\u3059\u308B\u3002\n \u3082\u3057\u3001VR\u6A5F\u80FD\u4F7F\u7528\u3067\u304D\u306A\u3044\u5834\u5408\u306F\u305D\u3082\u305D\u3082\u30A2\u30D7\u30EA\u306E\u8D77\u52D5\u3092\u884C\u308F\u306A\u3044\u3002\n @param sceneFile \u30B7\u30FC\u30F3\u30D5\u30A1\u30A4\u30EB\u540D\n @param IsMulti \u30DE\u30EB\u30C1\u30D7\u30EC\u30A4\u30E4\u30FC\u304B\u3069\u3046\u304B(\u30DE\u30EB\u30C1\u306A\u3089true)\n @remarks\n Promise\u95A2\u6570\u3067\u3042\u308B\n*/ export const checkAndInitVR = async (sceneFile, IsMulti = 0)=>{\n const XR = navigator.xr;\n //\u30D6\u30E9\u30A6\u30B6\u306A\u3069\u306E\u74B0\u5883\u304CXR\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u306A\u3044\u5834\u5408\u306F\u3053\u308C\u304Cfalse\u306B\u306A\u308A\n //\u4EE5\u964D\u306E\u51E6\u7406\u3092\u884C\u308F\u306A\u3044\n if (XR) {\n const xrSceneFileName = sceneFile === undefined ? 'Scene/webxrtest.json' : sceneFile;\n XR.isSessionSupported('immersive-vr').then((supported)=>{\n //\u3053\u3053\u3067\u8FD4\u3055\u308C\u308Bsupported\u306B\u3088\u308AVR\u6A5F\u5668\u304C\u63A5\u7D9A\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B\u304C\u308F\u304B\u308B\n if (supported) {\n XR.requestSession('immersive-vr', {\n requiredFeatures: [\n 'local-floor'\n ]\n }).then(async (XRSession)=>{\n debugLog(\"call StartVR\");\n //VR\u3042\u308A\u306EHeliodor\u8D77\u52D5\n setXRSession(XRSession);\n await StartVR(0, 0, 0, IsMulti, xrSceneFileName, XRSession);\n }).catch((err)=>{\n debugLog(\"immersive-vr check \" + err.message);\n });\n } else {\n //\u306A\u306B\u3082\u884C\u308F\u305A\u306B\u629C\u3051\u308B\n debugLog(\"vr is not supported\");\n }\n }).catch((err)=>{\n debugLog(\"support check \" + err.message);\n });\n } else {\n //\u305D\u3082\u305D\u3082\u3053\u306E\u30D6\u30E9\u30A6\u30B6\u3067\u306FWebXR\u304C\u6709\u52B9\u306B\u306A\u3089\u306A\u3044\n debugLog('Is Not Support WebXR On This Browser.');\n }\n};\n/**\n * \u5024\u304C\u6B63\u3057\u3044\u304B\u3069\u3046\u304B\u3092\u8FD4\u3059\n * @param val \u30C1\u30A7\u30C3\u30AF\u3057\u305F\u3044\u5024\n * @return \u6B63\u3057\u3044\u306A\u3089true ,\u3000\u6B63\u3057\u304F\u306A\u3044\u306A\u3089false\n * */ const isValid = (val)=>{\n if (Number.isNaN(val)) {\n return false;\n }\n return val != null;\n};\n/** \n * \u6307\u5B9A\u3057\u305F\u30DC\u30BF\u30F3\u304C\u6B63\u3057\u3044(\u6709\u52B9)\u304B\u3069\u3046\u304B\n @param button \u8ABF\u3079\u305F\u3044\u30DC\u30BF\u30F3\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\n @return \u6709\u52B9\u306A\u5024\u3092\u6301\u3064\u30DC\u30BF\u30F3\u306A\u3089true,\u305D\u3046\u3067\u306A\u3044\u306A\u3089false\n*/ const isButtonValid = (button)=>{\n if (button === undefined) {\n return false;\n }\n if (button == null) {\n return false;\n }\n return isValid(button.value);\n};\n/**\n * VR\u306E\u30DC\u30BF\u30F3\u306E\u5024\u3092\u8FD4\u3059\n @remarks\n gamepad.button\u306F\u5834\u5408\u306B\u3088\u3063\u3066\u306Fvalue\u304C\u53D6\u308C\u306A\u3044\u4E8B(\u62BC\u3057\u3066\u3082value\u306F0.0)\u304C\u3042\u308B\u305F\u3081\n pressed\u30D5\u30E9\u30B0\u3092\u898B\u30660.0or1.0\u3067\u4EE3\u7528\u3059\u308B\n @param button \u5024\u3092\u77E5\u308A\u305F\u3044\u30DC\u30BF\u30F3\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\n @return \u8ABF\u3079\u305F\u30DC\u30BF\u30F3\u306E\u5024\n*/ const getVRButtonPressValue = (button)=>{\n if (isButtonValid(button)) {\n if (button.value == 0.0) {\n return button.pressed ? 1.0 : 0.0;\n } else {\n return button.value;\n }\n } else {\n return 0.0;\n }\n};\n/**\uFF12\u3064\u306E\u30DC\u30BF\u30F3\u306E\u5024\u306E\u6709\u52B9\u306A\u65B9\u3092\u8FD4\u3059\n \u30DC\u30BF\u30F3\u2460\u306B\u6709\u52B9\u306A\u5024\u304C\u5165\u3063\u3066\u3044\u308B\u306A\u3089\u30DC\u30BF\u30F3\u2460\u512A\u5148\n * @remarks\n * \u4E21\u65B9\u3068\u3082\u306B\u7121\u52B9\u306A\u30890.0\u3092\u8FD4\u3059\n * @param buttonF \u30DC\u30BF\u30F3\u2460\n * @param buttonS \u30DC\u30BF\u30F3\u2461\n */ export const getVROneOfTwoButtonValue = (buttonF, buttonS)=>{\n if (isButtonValid(buttonF)) {\n if (buttonF == 0.0) {\n if (isButtonValid(buttonS)) {\n return buttonS.value;\n }\n } else {\n return buttonF.value;\n }\n } else {\n if (isButtonValid(buttonS)) {\n return buttonS.value;\n }\n }\n return 0.0;\n};\n/**\n \uFF12\u3064\u306E\u30DC\u30BF\u30F3\u306E\u5024\u304Bpressed\u306E\u6709\u52B9\u306A\u65B9\u3092\u8FD4\u3059\n \u30DC\u30BF\u30F3\u2460\u306B\u6709\u52B9\u306A\u5024\u304C\u5165\u3063\u3066\u3044\u308B\u306A\u3089\u30DC\u30BF\u30F3\u2460\u512A\u5148\n \u4E21\u65B9\u3068\u3082\u306B\u5024\u3082pressed\u3082\u7121\u52B9\u306A\u30890.0\u3092\u8FD4\u3059\n @param buttonF \u30DC\u30BF\u30F3\u2460\n @param buttonS \u30DC\u30BF\u30F3\u2461\n*/ const getVROneOfTwoButtonPressedValue = (buttonF, buttonS)=>{\n if (isButtonValid(buttonF)) {\n let btnF = getVRButtonPressValue(buttonF);\n if (btnF == 0.0) {\n if (isButtonValid(buttonS)) {\n return getVRButtonPressValue(buttonS);\n }\n } else {\n return btnF;\n }\n } else {\n if (isButtonValid(buttonS)) {\n return getVRButtonPressValue(buttonS);\n }\n }\n return 0.0;\n};\n/**\n \uFF12\u3064\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u5024\u306E\u6709\u52B9\u306A\u65B9\u3092\u8FD4\u3059(\u6570\u5024)\n \u5024\u2460\u306B\u6709\u52B9\u306A\u3082\u306E\u304C\u5165\u3063\u3066\u3044\u308B\u306A\u3089\u5024\u2460\u512A\u5148\n \u4E21\u65B9\u3068\u3082\u306B\u6709\u52B9\u306A\u5024\u304C\u5165\u3063\u3066\u3044\u306A\u3044\u306A\u30890.0\u3092\u8FD4\u3059\n @param first \u5024\u2460\n @param second \u5024\u2461\n*/ const getVROneOfTwoValue = (first, second)=>{\n if (isValid(first)) {\n if (first == 0.0) {\n //axis[2]\u6709\u52B9\u304B\u3064axis[0]\u7121\u52B9\u306E\u5834\u5408\u306F[0]\u306B0.0\u304C\u5165\u3063\u3066\u3044\u308B\u3053\u3068\u304C\u3042\u308B\u305F\u3081\n if (isValid(second)) {\n return second;\n }\n } else {\n return first;\n }\n } else {\n if (isValid(second)) {\n return second;\n }\n }\n return 0.0;\n};\n/**\n \u3042\u308B\u30D9\u30AF\u30C8\u30EB\u306B\u30AF\u30AA\u30FC\u30BF\u30CB\u30AA\u30F3\u306B\u3088\u308B\u56DE\u8EE2\u3092\u9069\u7528\u3057\u305F\u7D50\u679C\u306E\u30D9\u30AF\u30C8\u30EB\u3092\u8FD4\u3059\n @param out \u56DE\u8EE2\u7D50\u679C\u30D9\u30AF\u30C8\u30EB\n @param vec \u56DE\u8EE2\u3057\u305F\u3044\u5143\u30D9\u30AF\u30C8\u30EB\n @param q \u56DE\u8EE2\u306E\u305F\u3081\u306E\u30AF\u30AA\u30FC\u30BF\u30CB\u30AA\u30F3\n @return \u56DE\u8EE2\u7D50\u679C\u30D9\u30AF\u30C8\u30EB\n*/ const applyQuaternion = (out, vec, q)=>{\n // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n let qx = q[0], qy = q[1], qz = q[2], qw = q[3];\n let x = vec[0], y = vec[1], z = vec[2];\n let uvx = qy * z - qz * y, uvy = qz * x - qx * z, uvz = qx * y - qy * x;\n let uuvx = qy * uvz - qz * uvy, uuvy = qz * uvx - qx * uvz, uuvz = qx * uvy - qy * uvx;\n let w2 = qw * 2;\n uvx *= w2;\n uvy *= w2;\n uvz *= w2;\n uuvx *= 2;\n uuvy *= 2;\n uuvz *= 2;\n out[0] = x + uvx + uuvx;\n out[1] = y + uvy + uuvy;\n out[2] = z + uvz + uuvz;\n return out;\n};\n/**\n float\u914D\u5217\u3092C++\u5074\u306B\u6E21\u305B\u308B\u5F62\u306B\u3059\u308B(\u30D0\u30A4\u30CA\u30EAfloat\u306B\u307E\u3068\u3081\u308B)\n @param ptr \u30C7\u30FC\u30BF\u3092\u66F8\u304D\u8FBC\u3080\u305F\u3081\u306E\u5148\u982D\u30A2\u30C9\u30EC\u30B9\n @param farray float\u914D\u5217\n @return \u66F8\u304D\u8FBC\u307F\u7D42\u308F\u3063\u305F\u76F4\u5F8C\u306E\u30A2\u30C9\u30EC\u30B9\n*/ const nativizeFloatArray = (ptr, farray)=>{\n for(let i = 0; i < farray.length; ++i){\n worldViewerWindow.setValue(ptr + i * 4, farray[i], 'float');\n }\n return ptr + farray.length * 4;\n};\n/** \u914D\u5217\u5168\u3066\u306B\uFF11\u3064\u306E\u5024\u3092\u4EE3\u5165\n C\u8A00\u8A9E\u3067\u8A00\u3046\u6240\u306Ememset\u306E\u3088\u3046\u306A\u3053\u3068\u3092\u884C\u3046\n @param iarray \u4EE3\u5165\u3055\u308C\u308B\u5074\u306E\u914D\u5217\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\n @param val \u4EE3\u5165\u3055\u308C\u308B\u5024\n*/ const valueToArray = (iarray, val)=>{\n for(let i = 0; i < iarray.length; ++i){\n iarray[i] = val;\n }\n};\n/**\n * \u884C\u5217\u60C5\u5831\u3092C++\u5074\u306B\u6E21\u305B\u308B\u5F62\u306B\u3059\u308B\n * @param ptr \u884C\u5217\u306E\u5185\u5BB9\u3092\u66F8\u304D\u8FBC\u3080\u305F\u3081\u306E\u30A2\u30C9\u30EC\u30B9\n * @param mat \u884C\u5217(float\u914D\u521716\u500B)\n * @return \u66F8\u304D\u8FBC\u3093\u3060\u5F8C\u308D\u306E\u30A2\u30C9\u30EC\u30B9 \n */ const NativizeMatrix = (ptr, mat)=>{\n for(let i = 0; i < 16; ++i){\n worldViewerWindow.setValue(ptr + i * 4, mat[i], 'float');\n }\n return ptr + 16 * 4;\n};\n/**\n * \u5EA7\u6A19\u3092\u30ED\u30B0\u51FA\u529B\n * @param pos \u51FA\u529B\u3057\u305F\u3044\u5EA7\u6A19\n * @param name \u51FA\u529B\u6642\u306E\u540D\u524D\u6587\u5B57\u5217\n * @remarks\n * \u30C7\u30D0\u30C3\u30B0\u7528\n * */ export const PrintPosition = (pos, name)=>{\n let str = name + ' : ';\n str += 'x=' + pos.x + ' , ';\n str += 'y=' + pos.y + ' , ';\n str += 'z=' + pos.z;\n debugLog(str);\n};\n/**\n * \u30AF\u30AA\u30FC\u30BF\u30CB\u30AA\u30F3\u3092\u30ED\u30B0\u51FA\u529B\n * @remarks\n * \u30C7\u30D0\u30C3\u30B0\u7528\n * @param q \u30AF\u30AA\u30FC\u30BF\u30CB\u30AA\u30F3\n * @param name \u51FA\u529B\u3059\u308B\u3068\u304D\u7528\u306E\u30AF\u30AA\u30FC\u30BF\u30CB\u30AA\u30F3\u306E\u540D\u524D\u6587\u5B57\u5217\n * @constructor\n */ export const PrintQuaternion = (q, name)=>{\n let str = name + ' : ';\n str += 'x=' + q.x + ' , ';\n str += 'y=' + q.y + ' , ';\n str += 'z=' + q.z;\n debugLog(str);\n};\n/**\n * \u884C\u5217\u3092\u30ED\u30B0\u51FA\u529B\n * @remarks\n * \u30C7\u30D0\u30C3\u30B0\u7528\n * @param mat \u884C\u5217(\u4E2D\u8EAB\u306Ffloat*16\u914D\u5217)\n * @param name \u51FA\u529B\u7528\u306E\u540D\u524D\u6587\u5B57\u5217\n * @constructor\n */ export const PrintMatrix = (mat, name)=>{\n let str = name + ' : ';\n for(let i = 0; i < 16; ++i){\n str += mat[i];\n if (i % 4 == 3) {\n str += '\\n';\n } else {\n str += ',';\n }\n }\n debugLog(str);\n};\n//vr\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u30B9\u30BF\u30FC\u30C8\nconst StartVR = async (Type, CharaType, Param1, MultiPlay, StrParam0, XRSession)=>{\n if (xrButtonMulti === null) {\n debugLog('[ StartVR ] no XrButton Assigned');\n // return;\n } else {\n xrButtonMulti.style.visibility = 'hidden';\n }\n const status = getStatusDOMElement();\n if (status !== undefined) {\n status.style.visibility = 'visible';\n }\n const log = getLogDOMElement();\n if (log !== undefined) {\n log.style.visibility = 'visible';\n }\n XRSession.requestReferenceSpace('local-floor').then(async (RefSpace)=>{\n worldViewerWindow.hel_setCanvasFileName('Canvas/CanvasList.json');\n await hel_start_vr(Type, CharaType, Param1, MultiPlay === 1, StrParam0, XRSession, RefSpace);\n });\n};\n/**\n * \u30B3\u30F3\u30C8\u30ED\u30FC\u30E9\u306E\u72B6\u614B\u3092\u51FA\u529B\u3057\u307E\u3059\n * @remarks\n * \u30C7\u30D0\u30C3\u30B0\u7528\u306B\u4F7F\u7528\u3059\u308B\u3002\u73FE\u5728\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u306EVR\u30B3\u30F3\u30C8\u30ED\u30FC\u30E9\u306E\u72B6\u614B\u3092\u8ABF\u3079\n * \u30B3\u30F3\u30BD\u30FC\u30EB\u306B\u51FA\u529B\u3059\u308B\u3002\n * \u6CE8\u610F\u70B9\uFF1A\u6BCE\u30D5\u30EC\u30FC\u30E0\u51FA\u529B\u3059\u308B\u3068\u30D6\u30E9\u30A6\u30B6\u304C\u30D5\u30EA\u30FC\u30BA\u3059\u308B\u306E\u3067\u30BF\u30A4\u30DF\u30F3\u30B0\u306B\u6CE8\u610F\n * @param XRSession WebXR\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\n * @constructor\n */ export const OutputVRControllerState = (XRSession)=>{\n for (let inputSource of XRSession.inputSources){\n let handedness = inputSource.handedness;\n let gamepad = inputSource.gamepad;\n let str = 'handedness=';\n if (gamepad) {\n str += handedness;\n str += ' , gamepad buttons=';\n let strVal = '';\n let strTouch = '';\n let strPress = '';\n for (let button of gamepad.buttons){\n strVal += button.value + ',';\n strTouch += button.touched + ',';\n strPress += button.pressed + ',';\n }\n debugLog(str);\n debugLog('val=' + strVal);\n debugLog('touch' + strTouch);\n debugLog('press' + strPress);\n let strAxes = 'axes=';\n for (let axis of gamepad.axes){\n strAxes += axis + ',';\n }\n debugLog(strAxes);\n } else {\n debugLog('Gamepad is null');\n }\n }\n};\n//\u7D42\u4E86\u51E6\u7406\nconst onXRSessionEnd = async (session)=>{\n if (session) {\n debugLog('XRSession Is End object=' + session);\n if (session.session != null) {\n //session.session.end()//\u3053\u306E\u6642\u70B9\u3067end\u3057\u3066\u308B\u306E\u3067\u5FC5\u8981\u306A\u3057\u3068\u3044\u3046\u30A8\u30E9\u30FC\u30E1\u30C3\u30BB\u30FC\u30B8\u304C\u51FA\u308B\u304C\u547C\u3093\u3067\u304A\u3044\u305F\u307B\u3046\u304C\u3044\u3044\n requestToReleaseBoundFrameBuffer();\n session.session = null;\n }\n switchToNoneVR();\n worldViewerWindow.hel_requestAnimationFrame();\n }\n};\n//VR\u7CFB\u306E\u521D\u671F\u5316\u51E6\u7406\u30B9\u30BF\u30FC\u30C8\nconst hel_start_vr = async (Type, CharaType, Param1, MultiPlay, StrParam0, XRSession, XRRefSpace)=>{\n // //XR\u30BB\u30C3\u30B7\u30E7\u30F3\u7D42\u4E86\u6642\u30A4\u30D9\u30F3\u30C8\n XRSession.addEventListener('end', onXRSessionEnd);\n const mainCanvas4Xr = getMainCanvas4XrDOMElement();\n if (mainCanvas4Xr === undefined || mainCanvas4Xr.width <= 0 || mainCanvas4Xr.height <= 0) {\n return;\n }\n const CanTouch = worldViewerWindow.ontouchstart !== undefined;\n setSceneJsonPath('data/' + StrParam0);\n // Set Parameter\n presetBeforeBoot();\n //\u30C7\u30D0\u30C3\u30B0\u306E\u305F\u3081\u3001\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u306B\u3057\u3066\u304A\u304F\n //hel_setText(ETextParamType_Logined, (worldViewerWindow.g_Logined ? \"1\" : \"0\"));\n worldViewerWindow.hel_setText(ETextParamType_Logined, '1');\n worldViewerWindow.hel_setText(ETextParamType_CanvasFileName, getCanvasFileName());\n worldViewerWindow.hel_setText(ETextParamType_CurrentUserName, getCurrentUserName());\n // requestBootStrapGameEngine(Type, CharaType, Param1, StrParam0, CanTouch, MultiPlay, true);\n //\u6700\u5F8C\u306FVR\u30E2\u30FC\u30C9\u304B\u3069\u3046\u304B\u3002\u306A\u306E\u3067\u3001\u3053\u3053\u3092false\u306B\u3059\u308B\u3068VR\u306B\u306A\u3089\u306A\u3044\n //\n mainCanvas4Xr.focus();\n const WebglCtx4XR = getWebGLRenderingContext();\n await WebglCtx4XR.makeXRCompatible(); //\u3053\u3053\u3067\u5F85\u305F\u306A\u3044\u3068XR\u30E2\u30FC\u30C9\u306B\u3067\u304D\u306A\u3044\n // webxr-polyfill.module.js\u306B\u3088\u3063\u3066import * from 'webxr-polyfill'\u3092\u3055\u308C\u3066\u308B\u305F\u3081\u30B0\u30ED\u30FC\u30D0\u30EB\u30AF\u30E9\u30B9\u3068\u3057\u3066\u5229\u7528\n const webglLayer = new worldViewerWindow.XRWebGLLayer(XRSession, WebglCtx4XR);\n await XRSession.updateRenderState({\n baseLayer: webglLayer,\n depthFar: 10000,\n depthNear: 0.1\n });\n const drawFrameVRClosure = (time, frame)=>{\n drawFrameVR(time, frame, XRRefSpace);\n };\n worldViewerWindow.hel_cancelAnimationFrame();\n switchToVR(0, 0);\n XRSession.requestAnimationFrame(drawFrameVRClosure);\n};\n//VR\u30B3\u30F3\u30C8\u30ED\u30FC\u30E9\u306E\u5024\u3092\u53D6\u5F97\u3057\u3001Heliodor\u5074\u306B\u901A\u77E5\nconst updateVRController = (frame, refSpace)=>{\n let XRSession = frame.session;\n // OutputVRControllerState(XRSession);\n const NUM_OF_CONTROLLERS = 2; //\u5DE6\u624B\u3001\u53F3\u624B(\u4E00\u5FDC\u5BFE\u5FDC\u3059\u3079\u304D\u304C\u5DE6\u53F3\u624B\u306E\u307F\u3068\u306F\u304B\u304E\u3089\u306A\u3044\u305F\u3081\u3053\u3046\u3057\u3066\u3044\u308B)\n const CONTROLLER_INFO_NUM = 3 + 4; //\u5EA7\u6A193\u5411\u304D4\u304C2\u3064\u5206\u3067\u30B3\u30F3\u30C8\u30ED\u30FC\u30E9\u306E\u5834\u6240\u3001\u5411\u304D\u3092\u6E21\u3059\n const GAMEPAD_INFO_NUM = 2 + 6; //\u30EC\u30D0\u30FC\u8EF82\u65B9\u5411\uFF0B\u30DC\u30BF\u30F36\u500B\u5206\n let controllerParams = new Float32Array(CONTROLLER_INFO_NUM * NUM_OF_CONTROLLERS); //\u30B3\u30F3\u30C8\u30ED\u30FC\u30E9\u306E\u5834\u6240\u3001\u5411\u304D\u60C5\u5831\u3092\u683C\u7D0D\n let gamepadParams = new Float32Array(GAMEPAD_INFO_NUM * NUM_OF_CONTROLLERS); //\u30B2\u30FC\u30E0\u30D1\u30C3\u30C9\u60C5\u5831\u3092\u683C\u7D0D\n let activates = new Uint8Array(NUM_OF_CONTROLLERS);\n for(let idx = 0; idx < activates.length; ++idx){\n activates[idx] = 0;\n }\n valueToArray(gamepadParams, 0.0); //gameparams\u5168\u3066\u306B0\u4EE3\u5165\n //\u3072\u3068\u3064\u3072\u3068\u3064\u306EinputSource\u306FXRInputSource\n //https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource\n let controllernum = 0;\n for (let inputSource of XRSession.inputSources){\n //targetRaySpace\u306E\u60C5\u5831\u3092\u53D6\u5F97\u3059\u308B\u3053\u3068\u3067\u3001VR\u30B3\u30F3\u30C8\u30ED\u30FC\u30E9\u306E\u5EA7\u6A19\u30FB\u5411\u304D\u3092\u5F97\u308B\n let targetRayPose = frame.getPose(inputSource.targetRaySpace, refSpace);\n let controllerIdx = 0;\n //\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u304C\u306A\u3044\u5834\u5408\u306F\u7121\u8996(\u3042\u3063\u3066\u3082\u624B\u5143\u306B\u306A\u3044\u5834\u5408\u306F\u8A8D\u8B58\u3057\u306A\u3044)\n if (!targetRayPose) {\n debugLog('no pose');\n continue;\n } else {\n if (inputSource.handedness == 'none') {\n debugLog('not vrcontroller');\n continue; //\u53F3\u3067\u3082\u5DE6\u3067\u3082\u306A\u3044\u3082\u306E\u306F\u5374\u4E0B\n }\n controllerIdx = inputSource.handedness == 'left' ? 0 : 1; //\u5DE6\u624B\u306A\u30890 , \u53F3\u624B\u306A\u30891\n }\n ++controllernum;\n //\u3053\u3053\u307E\u3067\u6765\u305F\u6642\u70B9\u3067\u30A2\u30AF\u30C6\u30A3\u30D6\n activates[controllerIdx] = 1;\n //targetRaySpace\u306E\u5834\u5408tracked-pointer\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u306B\u306A\u308A\u307E\u3059\n //https://developer.mozilla.org/ja/docs/Web/API/XRInputSource/targetRayMode\n if (inputSource.targetRayMode == 'tracked-pointer') {\n //\u73FE\u5728\u306E\u30DD\u30FC\u30BA\u306Etransfrom\u306B\u73FE\u5728\u4F4D\u7F6E\u3068\u5411\u304D\u306E\u60C5\u5831\u304C\u5165\u3063\u3066\u3044\u308B\n //https://developer.mozilla.org/en-US/docs/Web/API/XRRigidTransform\n //position, orientation, matrix\u3092\u4F7F\u7528\u53EF\u80FD\n //\u4ECA\u56DE\u306Fposition\u3068orientation\u3092\u6E21\u3059\n const idx = controllerIdx * CONTROLLER_INFO_NUM;\n let pos = targetRayPose.transform.position;\n const rot = targetRayPose.transform.orientation;\n if (inputSource.gripSpace) {\n const gripPose = frame.getPose(inputSource.gripSpace, refSpace);\n if (gripPose) {\n pos = gripPose.transform.position;\n }\n }\n controllerParams[idx] = pos.x;\n controllerParams[1 + idx] = pos.y;\n controllerParams[2 + idx] = -pos.z; //Z\u8EF8\u53CD\u8EE2\n controllerParams[3 + idx] = -rot.x; //X\u8EF8\u56DE\u8EE2\u53CD\u8EE2\n controllerParams[4 + idx] = -rot.y; //Y\u8EF8\u56DE\u8EE2\u53CD\u8EE2\n controllerParams[5 + idx] = rot.z; //Z\u8EF8\u56DE\u8EE2\u53CD\u8EE2\n controllerParams[6 + idx] = rot.w;\n //gamepad\u60C5\u5831\u3092\u66F8\u304D\u8FBC\u307F\u3002\u8A73\u7D30\u306F\n //https://hikky.atlassian.net/wiki/spaces/HEL/pages/399474733/WebXR\n //\u3068\n //https://www.w3.org/TR/webxr-gamepads-module/#xr-standard-heading\n //\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\n let gamepad = inputSource.gamepad;\n if (gamepad == null) continue;\n let gpidx = controllerIdx * GAMEPAD_INFO_NUM;\n if (gamepad.axes !== void 0) {\n if (gamepad.axes != null) {\n if (gamepad.axes.length > 1) {\n gamepadParams[gpidx] = getVROneOfTwoValue(gamepad.axes[0], gamepad.axes[2]); //X\u8EF8\n gamepadParams[1 + gpidx] = getVROneOfTwoValue(gamepad.axes[1], gamepad.axes[3]); //Y\u8EF8\n }\n }\n }\n if (gamepad.buttons !== void 0) {\n if (gamepad.buttons != null) {\n gamepadParams[2 + gpidx] = gamepad.buttons[0].value; //\u30C8\u30EA\u30AC\u30FC\u30DC\u30BF\u30F3\n gamepadParams[3 + gpidx] = gamepad.buttons[1].value; //\u30B0\u30EA\u30C3\u30D7\u30DC\u30BF\u30F3\n //\u62BC\u3057\u8FBC\u307F\u3002\n let axisPressValue = getVROneOfTwoButtonPressedValue(gamepad.buttons[2], gamepad.buttons[3]);\n gamepadParams[4 + gpidx] = axisPressValue;\n gamepadParams[5 + gpidx] = axisPressValue;\n if (gamepad.buttons.length < 4) {\n gamepadParams[6 + gpidx] = 0.0;\n gamepadParams[7 + gpidx] = 0.0;\n } else {\n gamepadParams[6 + gpidx] = gamepad.buttons[4].value == null ? 0.0 : gamepad.buttons[4].value; //X or A\n gamepadParams[7 + gpidx] = gamepad.buttons[5].value == null ? 0.0 : gamepad.buttons[5].value; //Y or B\n }\n }\n }\n } else {\n debugLog('not tracked-pointer');\n }\n }\n const controllerdata = requestMemoryAllocate(controllerParams.length * 4); //\u30B3\u30F3\u30C8\u30ED\u30FC\u30E9\u30C7\u30FC\u30BF\n const gamepaddata = requestMemoryAllocate(gamepadParams.length * 4); //\u30B2\u30FC\u30E0\u30D1\u30C3\u30C9\u30C7\u30FC\u30BF\n const activedata = requestMemoryAllocate(activates.length); //\u30A2\u30AF\u30C6\u30A3\u30D6\u304B\u3069\u3046\u304B\u306E\u30C7\u30FC\u30BF\n nativizeFloatArray(controllerdata, controllerParams);\n nativizeFloatArray(gamepaddata, gamepadParams);\n requestSetDataToHeap(activates, activedata);\n const isAvailable = requestVRControllerValue(controllernum, activedata, controllerdata, gamepaddata);\n requestReleaseMemoryFor(controllerdata);\n requestReleaseMemoryFor(gamepaddata);\n requestReleaseMemoryFor(activedata);\n};\n//VR\u7528\u306EdrawFrame\u95A2\u6570\nconst drawFrameVR = (time1, frame1, XRRefSpace)=>{\n let session = frame1.session;\n let glLayer = session.renderState.baseLayer;\n let viewerPose = frame1.getViewerPose(XRRefSpace);\n if (viewerPose == null) {\n debugLog('xrsession=' + session);\n debugLog('viewerpose=' + viewerPose);\n debugLog('xrrefspace=' + XRRefSpace);\n debugLog('getViewerPos is Failed');\n debugLog('frame=' + frame1);\n //\u30D3\u30E5\u30FC\u30EF\u30DD\u30FC\u30BA\u304C\u78BA\u7ACB\u3059\u308B\u307E\u3067\u306B\u306F\u3042\u308B\u7A0B\u5EA6\u306E\u6642\u9593\u304C\u304B\u304B\u308B\u3053\u3068\u304C\u3042\u308A\u3001\u305D\u306E\u5834\u5408\u306F\u30A2\u30CB\u30E1\u30FC\u30B7\u30E7\u30F3\u30D5\u30EC\u30FC\u30E0\u3092\n //\u56DE\u3057\u3064\u3064\u3001\u5F85\u3064\u3002\n const drawFrameVRClosure = (time, frame)=>{\n drawFrameVR(time, frame, XRRefSpace);\n };\n session.requestAnimationFrame(drawFrameVRClosure);\n return;\n }\n // PrintPosition(viewerPose.transform.position,\"headpos\");\n // PrintQuaternion(viewerPose.transform.orientation,\"headrot\");\n const NUM_OF_VRCAMERAS = 2;\n const CAMERA_PARAMS = 7;\n //VR\u30D1\u30E9\u30E1\u30FC\u30BF\u7528\u30E1\u30E2\u30EA\u78BA\u4FDD\n const SIZE_OF_VR_VIEWPARAM = (16 + 16 + 4) * 4;\n const data = requestMemoryAllocate(SIZE_OF_VR_VIEWPARAM * NUM_OF_VRCAMERAS);\n let cameraParams = new Float32Array(CAMERA_PARAMS * NUM_OF_VRCAMERAS); //\u30AB\u30E1\u30E9\u60C5\u5831\u3092\u683C\u7D0D\n //C\u5074\u95A2\u6570\u306B\u9001\u308B\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u4F5C\u6210\n for (let xrView of viewerPose.views){\n let viewport = glLayer.getViewport(xrView);\n let eyeIdx = xrView.eye == 'left' ? 0 : 1;\n cameraParams[eyeIdx * CAMERA_PARAMS] = xrView.transform.position.x;\n cameraParams[eyeIdx * CAMERA_PARAMS + 1] = xrView.transform.position.y;\n cameraParams[eyeIdx * CAMERA_PARAMS + 2] = xrView.transform.position.z;\n cameraParams[eyeIdx * CAMERA_PARAMS + 3] = xrView.transform.orientation.x;\n cameraParams[eyeIdx * CAMERA_PARAMS + 4] = xrView.transform.orientation.y;\n cameraParams[eyeIdx * CAMERA_PARAMS + 5] = xrView.transform.orientation.z;\n cameraParams[eyeIdx * CAMERA_PARAMS + 6] = xrView.transform.orientation.w;\n let ptr = data + SIZE_OF_VR_VIEWPARAM * eyeIdx;\n worldViewerWindow.setValue(ptr, viewport.x, 'float');\n ptr += 4;\n worldViewerWindow.setValue(ptr, viewport.y, 'float');\n ptr += 4;\n worldViewerWindow.setValue(ptr, viewport.width, 'float');\n ptr += 4;\n worldViewerWindow.setValue(ptr, viewport.height, 'float');\n ptr += 4;\n let viewMat = xrView.transform.inverse.matrix;\n // let viewMat=xrView.transform.inverse.matrix;\n //\u30AB\u30E1\u30E9\u306EZ\u3060\u3051\u53CD\u8EE2\n viewMat[8] *= -1;\n viewMat[9] *= -1;\n viewMat[10] *= -1;\n //\u30AB\u30E1\u30E9\u884C\u5217\u30BB\u30C3\u30C8\n ptr = NativizeMatrix(ptr, viewMat);\n //\u30D7\u30ED\u30B8\u30A7\u30AF\u30B7\u30E7\u30F3\u884C\u5217\u30BB\u30C3\u30C8\n let projMat = xrView.projectionMatrix;\n ptr = NativizeMatrix(ptr, projMat);\n }\n const vrcameradata = requestMemoryAllocate(4 * CAMERA_PARAMS * NUM_OF_VRCAMERAS); //\u30AB\u30E1\u30E9\u30C7\u30FC\u30BF\n nativizeFloatArray(vrcameradata, cameraParams);\n requestToSetVrCameraPointer(vrcameradata);\n requestReleaseMemoryFor(vrcameradata);\n // Added from ver 2.9.0\n const posedata = requestMemoryAllocate((3 + 4) * 4); //\u5EA7\u6A19\uFF0B\u56DE\u8EE2\n const poseParams = new Float32Array(3 + 4);\n poseParams[0] = viewerPose.transform.position.x;\n poseParams[1] = viewerPose.transform.position.y;\n poseParams[2] = viewerPose.transform.position.z;\n poseParams[3] = viewerPose.transform.orientation.x;\n poseParams[4] = viewerPose.transform.orientation.y;\n poseParams[5] = viewerPose.transform.orientation.z;\n poseParams[6] = viewerPose.transform.orientation.w;\n nativizeFloatArray(posedata, poseParams);\n requestSetVrPosePointer(posedata);\n requestReleaseMemoryFor(posedata);\n requestSetVrPointer(data);\n updateVRController(frame1, XRRefSpace);\n //\u3053\u3053\u3067VR\u5074\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3067\u3042\u308BglLayer\u3068\u3001Emscripten\u306E\u66F8\u304D\u8FBC\u307F\u5148\u3067\u3042\u308Bctx.FRAMEBUFFER\u3092\n //\u30D0\u30A4\u30F3\u30C9\u3057\u3066\u304A\u304B\u306A\u3044\u3068\u3001VR\u6A5F\u5668\u306B\u6B63\u5E38\u306B\u8868\u793A\u3055\u308C\u306A\u3044\u306E\u3067\u6CE8\u610F\u3002\n requestToBindFrameBufferOf(glLayer);\n requestToDrawFrame();\n requestReleaseMemoryFor(data);\n //\u5EA7\u6A19\u306E\u88DC\u6B63\n //XRRefSpace=adjustCameraPosition(XRRefSpace);\n const drawFrameVRClosure = (time, frame)=>{\n drawFrameVR(time, frame, XRRefSpace);\n };\n session.requestAnimationFrame(drawFrameVRClosure);\n};\n//\u30AB\u30E1\u30E9\u4F4D\u7F6E\u88DC\u6B63(\u30B2\u30FC\u30E0\u5074\u306E\u5EA7\u6A19\u3068\u56DE\u8EE2\u3092\u53CD\u6620\u3055\u305B\u308B)\n//\u203B\u73FE\u5728\u306F\u30B2\u30FC\u30E0\u5074\u306E\u56DE\u8EE2\u306F\u53CD\u6620\u3055\u305B\u3066\u3044\u307E\u305B\u3093\n/**\n * @remarks\n * \u672A\u4F7F\u7528\n * @param XRRefSpace\n */ export const adjustCameraPosition = (XRRefSpace)=>{\n const SIZE_OF_FPS_CAMERAPARAM = (3 + 4) * 4;\n const cameradata = requestMemoryAllocate(SIZE_OF_FPS_CAMERAPARAM);\n const isAvailable = requestIfCameraFpsValueAvailable(cameradata);\n if (isAvailable) {\n const camera = [];\n for(let i = 0; i < 7; ++i){\n camera.push(requestToGetValueOf(cameradata + i * 4));\n }\n // let xrRigidTransform=new XRRigidTransform(\t{x: camera[0], y: camera[1], z: camera[2]},\n let offsetPos = [\n lastPos[0] - camera[0],\n lastPos[1] - camera[1],\n lastPos[2] - camera[2]\n ];\n let q = [\n camera[3],\n camera[4],\n camera[5],\n camera[6]\n ];\n offsetPos = applyQuaternion(offsetPos, offsetPos, q);\n for(let i1 = 0; i1 < 3; ++i1){\n lastPos[i1] = camera[i1];\n }\n // webxr-polyfill.module.js\u306B\u3088\u3063\u3066import * from 'webxr-polyfill'\u3092\u3055\u308C\u3066\u308B\u305F\u3081\u30B0\u30ED\u30FC\u30D0\u30EB\u30AF\u30E9\u30B9\u3068\u3057\u3066\u5229\u7528\n let xrRigidTransform = new worldViewerWindow.XRRigidTransform({\n x: offsetPos[0],\n y: offsetPos[1],\n z: offsetPos[2]\n }, //let xrRigidTransform=new XRRigidTransform(\t{x: 0.0, y:0.001, z: 0.0},\n {\n x: 0,\n y: 0,\n z: 0,\n w: 1\n });\n //{x: camera[3], y: camera[4], z: camera[5], w: camera[6]});\n XRRefSpace = XRRefSpace.getOffsetReferenceSpace(xrRigidTransform);\n }\n requestReleaseMemoryFor(cameradata);\n return XRRefSpace;\n};\n", "import Peer from 'skyway-js';\nimport { CHELSkywayPlayer } from './CHELSkyPlayer';\nimport { HEL_AUDIO_TYPE_VOICE, SKYWAY_API_HOST, worldViewerWindow } from './const';\nimport { debugLog } from './debugLog';\nimport { getLocalStream, getMixerRealSettingAt, getPeer, getSkyRoomId, getSkywayKey, getSkywayName, getSkywayOnTellScreenShareStart, getSkywayOnTellWaitScreenShare, getSkywayPlayerList, setLocalStream, setPeer, setSkyRoomId, setSkywayAvatarNumber, setSkywayAvatarNumberForSend, setSkywayMyAvatarDownloadTokenForSend, setSkywayName, setSkywayPlayerList, setSkywayRoom } from './logics/dataOps';\nimport { requestSendingReceivedPacketsFromSkyway } from './logics/moduleCaller';\nimport { getVideo, setVideo } from './logics/domOps';\n/**\n * heliodor_skyway_rcp\u304B\u3089\u53C2\u7167\u304C\u3042\u308B\u305F\u3081global\u95A2\u6570\n * @param peerId\n */ worldViewerWindow.hel_skyway_create_player = (peerId)=>{\n const skywayPlayer = new CHELSkywayPlayer(peerId, getMixerRealSettingAt(HEL_AUDIO_TYPE_VOICE));\n const skywayPlayerList = getSkywayPlayerList();\n //\tdebugLog(\"hel_skyway_create_player \" + peerId);\n for(let n = 0; n < skywayPlayerList.length; n++){\n if (skywayPlayerList[n] === null) {\n setSkywayPlayerList(skywayPlayer, n);\n return skywayPlayer;\n }\n }\n skywayPlayerList.push(skywayPlayer);\n return skywayPlayer;\n};\n/**\n * heliodor_skyway_xrw, heliodor_skyway_rcp\u304B\u3089\u53C2\u7167\u304C\u3042\u308B\u305F\u3081global\u95A2\u6570\n * @param peerId\n */ worldViewerWindow.hel_skyway_release_player = (peerId)=>{\n const skywayPlayerList = getSkywayPlayerList();\n for(let n = 0; n < skywayPlayerList.length; n++){\n const skywayPlayer = skywayPlayerList[n];\n if (skywayPlayer === null) {\n continue;\n }\n if (skywayPlayer.getPeerId() === peerId) {\n skywayPlayer.release();\n setSkywayPlayerList(null, n);\n return;\n }\n }\n};\n/**\n * heliodor_skyway_rcp, heliodor_skyway_xrw, heliodor_xrw_main\u304B\u3089\u53C2\u7167\u304C\u3042\u308B\u305F\u3081global\u95A2\u6570\n * @param peerId\n */ worldViewerWindow.hel_skyway_get_player = (peerId)=>{\n const skywayPlayerList = getSkywayPlayerList();\n for(let n = 0; n < skywayPlayerList.length; n++){\n const skywayPlayer = skywayPlayerList[n];\n if (skywayPlayer == null) {\n continue;\n }\n if (skywayPlayer.getPeerId() === peerId) {\n return skywayPlayer;\n }\n }\n return null;\n};\n/**\n * heliodor_skyway_rcp, heliodor_skyway_xrw\u304B\u3089\u53C2\u7167\u304C\u3042\u308B\u305F\u3081global\u95A2\u6570\n * @param stream\n */ worldViewerWindow.hel_skyway_stream = (stream)=>{\n if (!stream.peerId) {\n debugLog('stream.peerId not');\n return;\n }\n let player = worldViewerWindow.hel_skyway_get_player(stream.peerId);\n if (player == null) {\n player = worldViewerWindow.hel_skyway_create_player(stream.peerId);\n if (player == null) {\n debugLog('hel_skyway_get_player not ' + stream.peerId);\n return;\n }\n }\n player.setStream(stream);\n};\n/**\n * heliodor_skyway_rcp, heliodor_skyway_xrw\u304B\u3089\u53C2\u7167\u304C\u3042\u308B\u305F\u3081global\u95A2\u6570\n * @param volume\n */ worldViewerWindow.hel_skyway_SetMixerVolume = (volume)=>{\n const skywayPlayerList = getSkywayPlayerList();\n for(let n = 0; n < skywayPlayerList.length; n++){\n const skywayPlayer = skywayPlayerList[n];\n if (skywayPlayer == null) {\n continue;\n }\n skywayPlayer.setVolume(volume);\n }\n};\n/**\n * heliodor_skyway_rcp, heliodor_skyway_xrw\u304B\u3089\u53C2\u7167\u304C\u3042\u308B\u305F\u3081global\u95A2\u6570\n * @param roomid\n */ worldViewerWindow.hel_skyway_set_roomid = (roomid)=>setSkyRoomId(roomid)\n;\n/**\n * heliodor_skyway_rcp, heliodor_skyway_xrw\u304B\u3089\u53C2\u7167\u304C\u3042\u308B\u305F\u3081global\u95A2\u6570\n */ worldViewerWindow.hel_skyway_get_roomid = ()=>getSkyRoomId()\n;\n/**\n * heliodor_skyway_rcp, heliodor_skyway_xrw\u304B\u3089\u53C2\u7167\u304C\u3042\u308B\u305F\u3081global\u95A2\u6570\n */ worldViewerWindow.hel_skyway_set_avatar_from_cookie = ()=>{\n const avatar = worldViewerWindow.hel_get_cookie('Avatar');\n const myavatar_uuid = worldViewerWindow.hel_get_cookie(\"MyAvatarUUID\");\n if (avatar !== undefined && avatar != -1) {\n setSkywayAvatarNumber(avatar);\n setSkywayAvatarNumberForSend(avatar);\n } else if (myavatar_uuid !== undefined && avatar == -1) {\n setSkywayAvatarNumber(-1);\n setSkywayAvatarNumberForSend(-1);\n setSkywayMyAvatarDownloadTokenForSend(myavatar_uuid);\n }\n};\n/**\n * heliodor_skyway_rcp, heliodor_skyway_xrw\u304B\u3089\u53C2\u7167\u304C\u3042\u308B\u305F\u3081global\u95A2\u6570\n * @param cmd\n * @param id\n * @param param\n */ worldViewerWindow.hel_skyway_receive_data = (cmd, id, param)=>{\n const data = cmd + ':' + id + ':' + param;\n //\tdebugLog(\"receive_data / \" + data);\n requestSendingReceivedPacketsFromSkyway(data);\n};\n/**\n * heliodor_skyway_rcp, heliodor_skyway_xrw\u304B\u3089\u53C2\u7167\u304C\u3042\u308B\u305F\u3081global\u95A2\u6570\n * @param id\n * @param text\n */ worldViewerWindow.hel_skyway_add_text_chat = (id, text)=>{\n worldViewerWindow.hel_skyway_receive_data('data', id, 'msg:' + text);\n};\n/**\n * heliodor_skyway_rcp, heliodor_skyway_xrw\u304B\u3089\u53C2\u7167\u304C\u3042\u308B\u305F\u3081global\u95A2\u6570\n * @remarks\n * TODO\n * agora/skyway/photon/chalcedony\u3067\u4ECA\u5F8CrealtimeEngineSDK\u306B\u5206\u5C90\n * @param peerId\n * @param mute\n * @virtual\n */ worldViewerWindow.hel_skyway_SetVoiceMute = (peerId, mute)=>{\n const Player = worldViewerWindow.hel_skyway_get_player(peerId);\n if (Player == null) return;\n Player.SetMute(mute);\n};\n/**\n * heliodor_skyway_rcp, heliodor_skyway_xrw, heliodor_xrw_main\u304B\u3089\u53C2\u7167\u304C\u3042\u308B\u305F\u3081global\u95A2\u6570\n * TODO\n * agora/skyway/photon/chalcedony\u3067\u4ECA\u5F8CrealtimeEngineSDK\u306B\u5206\u5C90\n * @virtual\n */ worldViewerWindow.hel_skyway_join = ()=>{\n //\tconst leaveTrigger = document.getElementById('js-leave-trigger');\n const remoteVideos = document.getElementById('js-remote-streams');\n // Note that you need to ensure the peer has connected to signaling server\n // before using methods of peer instance.\n const peer = getPeer();\n const localStream = getLocalStream();\n if (peer === undefined || localStream === undefined) {\n debugLog('worldViewerWindow.g_peer or worldViewerWindow.g_localStream is undefined');\n return;\n }\n if (!peer.open) {\n debugLog('hel_skyway_join : worldViewerWindow.g_peer not open');\n return;\n }\n //\n const parts = location.hostname.split('.');\n const subdomain = parts.shift();\n const skywayRoomId = subdomain + '_' + getSkyRoomId();\n //\n const room = peer.joinRoom(skywayRoomId, {\n mode: 'mesh',\n stream: localStream\n });\n setSkywayRoom(room);\n room.once('open', ()=>{\n //\t\tworldViewerWindow.hel_skyway_add_text_chat(\"\", 'You joined');\n worldViewerWindow.hel_skyway_receive_data('open', peer.id, '');\n // to set my name\n worldViewerWindow.hel_skyway_receive_data('data', peer.id, 'name:' + getSkywayName());\n // send my name to old player\n worldViewerWindow.hel_skyway_send_myinfo();\n });\n room.on('peerJoin', (peerId)=>{\n worldViewerWindow.hel_skyway_create_player(peerId);\n //\t\tworldViewerWindow.hel_skyway_add_text_chat(\"\", `${peerId} joined`);\n //\t\tworldViewerWindow.hel_skyway_receive_data(\"join\", peerId, \"\");\n // send my name to new player\n worldViewerWindow.hel_skyway_send_myinfo();\n });\n // Render remote stream for new peer join in the room\n room.on('stream', async (stream)=>{\n worldViewerWindow.hel_skyway_stream(stream);\n const newAudio = document.createElement('audio');\n newAudio.srcObject = stream;\n newAudio.playsInline = true;\n // mark peerId to find it later at peerLeave event\n newAudio.setAttribute('data-peer-id', stream.peerId);\n remoteVideos.append(newAudio);\n await newAudio.play().catch(console.error);\n });\n room.on('data', ({ data , src })=>{\n // Show a message sent to the room and who sent\n // messages.textContent += `${src}: ${data}\\n`;\n //debugLog(`${src}: ${data}`);\n if (data === 'screenshare:tell') {\n const fn = getSkywayOnTellScreenShareStart();\n if (fn !== undefined) {\n fn();\n return;\n }\n } else if (data === 'screenshare:waitstart') {\n const fn = getSkywayOnTellWaitScreenShare();\n if (fn !== undefined) {\n fn();\n return;\n }\n }\n worldViewerWindow.hel_skyway_receive_data('data', src, data);\n });\n // for closing room members\n room.on('peerLeave', (peerId)=>{\n worldViewerWindow.hel_skyway_release_player(peerId);\n const remoteVideo = remoteVideos.querySelector(`[data-peer-id=\"${peerId}\"]`);\n remoteVideo.srcObject.getTracks().forEach((track)=>track.stop()\n );\n remoteVideo.srcObject = null;\n remoteVideo.remove();\n // messages.textContent += `=== ${peerId} left ===\\n`;\n //\t\tworldViewerWindow.hel_skyway_add_text_chat(\"\", `${peerId} leaved`);\n worldViewerWindow.hel_skyway_receive_data('leave', peerId, '');\n });\n // for closing myself\n room.once('close', ()=>{\n // messages.textContent += '== You left ===\\n';\n Array.from(remoteVideos.children).forEach((remoteVideo)=>{\n remoteVideo.srcObject.getTracks().forEach((track)=>track.stop()\n );\n remoteVideo.srcObject = null;\n remoteVideo.remove();\n });\n });\n};\n/**\n * @remarks\n * \u547C\u51FA\u5143\u3067mediaDevices\u304Cundefined\u3067\u306A\u3044\u3053\u3068\u3092\u78BA\u8A8D\n */ const setLocalAudioStreamBy = async ()=>{\n const localStream = await navigator.mediaDevices.getUserMedia({\n audio: true,\n video: false\n }).catch(console.error);\n setLocalStream(localStream);\n return localStream;\n};\n/**\n * @remarks\n * Peer\u306E\u521D\u671F\u5316\n * @remarks\n * Peer\u306E\u521D\u671F\u5316\u3092\u5206\u96E2\n * @param configKey\n * @returns Peer|undefined\n */ worldViewerWindow.initializePeer = async (configKey)=>{\n const localVideo = document.getElementById('js-local-stream');\n // const remoteVideos = document.getElementById('js-remote-streams') as HTMLVideoElement;\n //\n // const sdkSrc = document.querySelector('script[src*=skyway]');\n if (!navigator.mediaDevices) {\n debugLog('navigator.mediaDevices not found');\n return undefined;\n }\n const localStream = await setLocalAudioStreamBy();\n // default mic mute\n worldViewerWindow.hel_skyway_set_mic_state(false);\n // Render local stream\n localVideo.muted = true;\n localVideo.srcObject = localStream;\n localVideo.playsInline = true;\n await localVideo.play().catch(console.error);\n const peer = new Peer({\n key: configKey === undefined ? getSkywayKey() : configKey,\n debug: 0\n });\n setPeer(peer);\n peer.on('error', console.error);\n return getPeer();\n};\n/**\n * @remarks\n * Peer\u7D4C\u7531\u3067\u30B8\u30E7\u30A4\u30F3\u3059\u308B\u8A2D\u5B9A\u3092\u5B9F\u65BD\n */ worldViewerWindow.joinViaPeer = ()=>{\n const peer = getPeer();\n if (peer === undefined) {\n throw new Error('peer has not been set yet');\n }\n peer.on('open', ()=>{\n worldViewerWindow.hel_skyway_join();\n });\n};\n/**\n * @remarks\n * g_MultiPlay(XRWorldIngame, JRWorld_web\uFF09\u7D4C\u7531\u3067\n * multiPlay\u306E\u5834\u5408\u306B\u53C2\u7167\n * TODO\n * agora/skyway/photon/chalcedony\u3067\u4ECA\u5F8CrealtimeEngineSDK\u306B\u5206\u5C90\n *\n * heliodor_front.js\u304B\u3089\u53C2\u7167\u3055\u308C\u308B\u305F\u3081global\u95A2\u6570\n * @param configKey\n * @virtual\n */ worldViewerWindow.hel_skyway_main = async (configKey)=>{\n // TODO \u66AB\u5B9A\u7684\u306B\u6B8B\u3059\n await worldViewerWindow.initializePeer();\n // TODO \u66AB\u5B9A\u7684\u306B\u6B8B\u3059\n worldViewerWindow.joinViaPeer();\n};\n/**\n * @remarks\n * JRWorld_web\u304B\u3089\u547C\u51FA\u3042\u308A\u3002\n * heliodor_front.js\u304B\u3089\u547C\u3073\u51FA\u3055\u308C\u308B\u305F\u3081global\u95A2\u6570\u5316\n * @param method\n * @param url\n * @param option\n */ worldViewerWindow.apiAjax = (method, url, option)=>{\n const api_url = SKYWAY_API_HOST + url;\n // \u660E\u793A\u7684\u306Bnull\u3092\u9001\u308B\u30B1\u30FC\u30B9\u3042\u308A\n const payload = option.data === undefined ? null : option.data;\n const ajax = new XMLHttpRequest();\n ajax.open(method, api_url);\n ajax.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\n ajax.send(JSON.stringify(payload));\n ajax.addEventListener('load', function(e) {\n try {\n if (e.target === null || e.target === undefined || !('response' in e.target)) {\n return;\n }\n const response = JSON.parse(e.target['response']);\n if (e.target['status'] == 200) {\n if (option.done !== undefined) {\n option.done(response);\n }\n } else {\n if (option.error !== undefined) {\n option.error(response);\n }\n }\n } catch (error) {\n debugLog(error);\n }\n }, false);\n};\n/**\n * @remarks\n * heliodor_room.js\u304B\u3089\u79FB\u690D\n * TODO \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u5C64\u3088\u308A\n * @param world_id\n * @param option\n */ worldViewerWindow.getRandomRoom = (world_id, option)=>{\n if (!world_id) {\n return;\n }\n worldViewerWindow.apiAjax('GET', '/rooms/random/' + world_id, {\n done: option === undefined ? undefined : option.done,\n error: option === undefined ? undefined : option.error\n });\n};\n/**\n * @remarks\n * heliodor_room.js\u304B\u3089\u79FB\u690D\n * TODO \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u5C64\u3088\u308A\n * @param world_id\n * @param option\n */ worldViewerWindow.createNewRoom = (world_id, option)=>{\n if (!world_id) {\n return;\n }\n worldViewerWindow.apiAjax('POST', '/rooms', {\n data: {\n world_id: world_id\n },\n done: option === undefined ? undefined : option.done,\n error: option === undefined ? undefined : option.error\n });\n};\n/**\n * @remarks\n * heliodor_room.js\u304B\u3089\u79FB\u690D\n * TODO \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u5C64\u3088\u308A\n * @param room_id\n * @param player_count\n * @param option\n */ worldViewerWindow.sendHeartbeat = (room_id, player_count, option)=>{\n if (!room_id || !player_count) {\n return;\n }\n worldViewerWindow.apiAjax('POST', '/rooms/' + room_id + '/heartbeat', {\n data: {\n player_count: player_count\n },\n done: option === undefined ? undefined : option.done,\n error: option === undefined ? undefined : option.error\n });\n};\n// Replace \":\" to \"&colon\\;\"\n/**\n * heliodor_skyway_rcp, heliodor_skyway_xrw\u304B\u3089\u53C2\u7167\u304C\u3042\u308B\u305F\u3081global\u95A2\u6570\n * @param text\n */ worldViewerWindow.hel_skyway_to_code_colon = (text)=>text.replace(':', '&colon;')\n;\n// Recovery \"&colon;\" to \":\"\n/**\n * heliodor_skyway_rcp, heliodor_skyway_xrw\u304B\u3089\u53C2\u7167\u304C\u3042\u308B\u305F\u3081global\u95A2\u6570\n * @param text\n */ worldViewerWindow.hel_skyway_to_char_colon = (text)=>text.replace('&colon;', ':')\n;\nworldViewerWindow.hel_skyway_main_with_display_media = async ()=>{\n const localVideo = document.getElementById('js-local-stream');\n // const remoteVideos = document.getElementById('js-remote-streams') as HTMLVideoElement;\n //\n // const sdkSrc = document.querySelector('script[src*=skyway]');\n if (!navigator.mediaDevices) {\n debugLog('navigator.mediaDevices not found');\n return;\n }\n const localAudioStream = await setLocalAudioStreamBy();\n const localVideoStream = await navigator.mediaDevices.getDisplayMedia({\n audio: false,\n video: {\n width: {\n ideal: 1280\n },\n height: {\n ideal: 720\n },\n frameRate: {\n ideal: 30\n }\n }\n }).catch(console.error);\n localAudioStream.addTrack(localVideoStream.getVideoTracks()[0]);\n // default mic mute\n worldViewerWindow.hel_skyway_set_mic_state(false);\n // Render local stream\n localVideo.muted = true;\n localVideo.srcObject = localAudioStream;\n localVideo.playsInline = true;\n await localVideo.play().catch(console.error);\n // eslint-disable-next-line require-atomic-updates\n worldViewerWindow.g_peer = new Peer({\n key: worldViewerWindow.g_SKYWAY_KEY,\n debug: 0\n });\n worldViewerWindow.g_peer.on('error', console.error);\n worldViewerWindow.g_peer.on('open', ()=>{\n worldViewerWindow.hel_skyway_join();\n });\n};\nworldViewerWindow.hel_skyway_tell_screen_sharing_start = ()=>{\n worldViewerWindow.hel_skyway_send_data('screenshare:tell');\n};\nworldViewerWindow.hel_skyway_start_screen_sharing = async ()=>{\n if (!navigator.mediaDevices) {\n debugLog('navigator.mediaDevices not found');\n return;\n }\n const localVideoStream = await navigator.mediaDevices.getDisplayMedia({\n audio: true,\n video: {\n width: {\n ideal: 1280\n },\n height: {\n ideal: 720\n },\n frameRate: {\n ideal: 30\n }\n }\n }).catch(console.error);\n const localStream = worldViewerWindow.g_localStream;\n localVideoStream.getVideoTracks()[0].onended = function() {\n localStream.removeTrack(localVideoStream.getVideoTracks()[0]);\n };\n localStream.addTrack(localVideoStream.getVideoTracks()[0]);\n worldViewerWindow.hel_skyway_send_data('screenshare:shared');\n const room = worldViewerWindow.g_room;\n room.close();\n worldViewerWindow.hel_skyway_join();\n const updatedVideo = document.getElementById('video0');\n setVideo(updatedVideo);\n const video = getVideo();\n if (video != null) {\n video.srcObject = localStream;\n video.playsInline = true;\n }\n};\nworldViewerWindow.hel_skyway_display_room_video = ()=>{\n worldViewerWindow.hel_skyway_send_data('screenshare:waitstart');\n if (worldViewerWindow.g_room != null) {\n worldViewerWindow.g_room.on('stream', (stream)=>{\n const video = getVideo();\n if (video != null) {\n if (video.srcObject !== stream) {\n const videoTracks = stream.getVideoTracks();\n if (videoTracks.length > 0) {\n video.srcObject = stream;\n video.playsInline = true;\n }\n }\n }\n });\n }\n};\n/**\n * @remarks\n * heliodor_xrw_main\u304B\u3089\u53C2\u7167\u3042\u308A\n * @param configKey?\n * @returns {Peer|undefined}\n *\n */ worldViewerWindow.hel_skyway_generate_peer = async (configKey)=>worldViewerWindow.initializePeer(configKey)\n;\n// \u5373\u6642\u5B9F\u884C\nconst cookie_Skyway_MyName = worldViewerWindow.hel_get_cookie('playername');\nif (cookie_Skyway_MyName !== undefined) {\n setSkywayName(cookie_Skyway_MyName);\n}\nworldViewerWindow.hel_skyway_set_show_chatbox(false);\nworldViewerWindow.hel_skyway_set_avatar_from_cookie();\n", "import { worldViewerWindow } from './const';\nimport { getUseSkywayAudioGainToggle } from './logics/dataOps';\nimport { hel_isiPhone } from './logics/platform';\nexport class CHELSkywayPlayer {\n release() {}\n getPeerId() {\n return this.peerId;\n }\n setStream(stream) {\n const useSkywayAudioGainToggle = getUseSkywayAudioGainToggle();\n if (!useSkywayAudioGainToggle) {\n return;\n }\n const audioTrack = stream.getAudioTracks()[0];\n if (audioTrack == null) {\n return;\n }\n this.audio.srcObject = new MediaStream([\n audioTrack\n ]);\n this.audio.muted = hel_isiPhone();\n this.audio.play();\n if (hel_isiPhone()) {\n if (this.context !== undefined) {\n this.source = this.context.createMediaStreamSource(new MediaStream([\n audioTrack\n ]));\n this.audioDestination = this.context.createMediaStreamDestination();\n }\n if (this.gainNode !== undefined && this.audioDestination !== undefined && this.source !== undefined) {\n this.source.connect(this.gainNode);\n this.gainNode.connect(this.audioDestination);\n }\n }\n stream.removeTrack(audioTrack);\n if (this.audioDestination !== undefined) {\n stream.addTrack(this.audioDestination.stream.getAudioTracks()[0]);\n }\n }\n setVolume(volume) {\n this.volume = volume;\n this.updateVolume();\n }\n SetVoiceAttenuate(volume) {\n this.attenuateVolume = volume;\n this.updateVolume();\n }\n SetMute(mute) {\n this.mute = mute;\n this.updateVolume();\n }\n updateVolume() {\n const useSkywayAudioGainToggle = getUseSkywayAudioGainToggle();\n if (!useSkywayAudioGainToggle) {\n return;\n }\n if (hel_isiPhone()) {\n if (this.gainNode !== undefined) {\n this.gainNode.gain.value = this.volume * this.attenuateVolume * (this.mute ? 0.0 : 1.0);\n }\n } else {\n this.audio.volume = this.volume * this.attenuateVolume * (this.mute ? 0 : 1);\n }\n }\n constructor(peerId, volume){\n this.peerId = peerId;\n const useSkywayAudioGainToggle = getUseSkywayAudioGainToggle();\n if (useSkywayAudioGainToggle) {\n if (hel_isiPhone()) {\n this.context = new (worldViewerWindow.AudioContext || worldViewerWindow.webkitAudioContext)();\n if (this.context !== undefined) {\n this.gainNode = this.context.createGain();\n }\n }\n }\n this.audio = document.createElement(\"audio\");\n this.volume = volume;\n this.attenuateVolume = 0.0;\n this.mute = false;\n this.updateVolume();\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }