@nice2dev/game-engine 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (519) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/LICENSE +21 -0
  3. package/README.md +105 -0
  4. package/dist/cjs/accessibility/Accessibility.js +162 -0
  5. package/dist/cjs/accessibility/Accessibility.js.map +1 -0
  6. package/dist/cjs/ai/AI.js +321 -0
  7. package/dist/cjs/ai/AI.js.map +1 -0
  8. package/dist/cjs/animation/Animation.js +233 -0
  9. package/dist/cjs/animation/Animation.js.map +1 -0
  10. package/dist/cjs/audio/AudioAdvanced.js +262 -0
  11. package/dist/cjs/audio/AudioAdvanced.js.map +1 -0
  12. package/dist/cjs/audio/AudioManager.js +248 -0
  13. package/dist/cjs/audio/AudioManager.js.map +1 -0
  14. package/dist/cjs/core/EventBus.js +63 -0
  15. package/dist/cjs/core/EventBus.js.map +1 -0
  16. package/dist/cjs/core/GameClock.js +70 -0
  17. package/dist/cjs/core/GameClock.js.map +1 -0
  18. package/dist/cjs/core/GameConfig.js +86 -0
  19. package/dist/cjs/core/GameConfig.js.map +1 -0
  20. package/dist/cjs/core/GameLoop.js +93 -0
  21. package/dist/cjs/core/GameLoop.js.map +1 -0
  22. package/dist/cjs/core/ServiceLocator.js +73 -0
  23. package/dist/cjs/core/ServiceLocator.js.map +1 -0
  24. package/dist/cjs/core/Validation.js +119 -0
  25. package/dist/cjs/core/Validation.js.map +1 -0
  26. package/dist/cjs/core/math.js +116 -0
  27. package/dist/cjs/core/math.js.map +1 -0
  28. package/dist/cjs/devtools/DevTools.js +560 -0
  29. package/dist/cjs/devtools/DevTools.js.map +1 -0
  30. package/dist/cjs/devtools/DeveloperExperience.js +562 -0
  31. package/dist/cjs/devtools/DeveloperExperience.js.map +1 -0
  32. package/dist/cjs/docs/DocGenerator.js +357 -0
  33. package/dist/cjs/docs/DocGenerator.js.map +1 -0
  34. package/dist/cjs/ecs/World.js +280 -0
  35. package/dist/cjs/ecs/World.js.map +1 -0
  36. package/dist/cjs/editor/AdvancedEditor.js +149 -0
  37. package/dist/cjs/editor/AdvancedEditor.js.map +1 -0
  38. package/dist/cjs/editor/AssetManager.js +190 -0
  39. package/dist/cjs/editor/AssetManager.js.map +1 -0
  40. package/dist/cjs/editor/DebugTools.js +187 -0
  41. package/dist/cjs/editor/DebugTools.js.map +1 -0
  42. package/dist/cjs/editor/NiceGameEditor.js +361 -0
  43. package/dist/cjs/editor/NiceGameEditor.js.map +1 -0
  44. package/dist/cjs/editor/SceneEditor.js +223 -0
  45. package/dist/cjs/editor/SceneEditor.js.map +1 -0
  46. package/dist/cjs/engine/NiceGameEngine.js +172 -0
  47. package/dist/cjs/engine/NiceGameEngine.js.map +1 -0
  48. package/dist/cjs/enterprise/Enterprise.js +258 -0
  49. package/dist/cjs/enterprise/Enterprise.js.map +1 -0
  50. package/dist/cjs/i18n/I18n.js +634 -0
  51. package/dist/cjs/i18n/I18n.js.map +1 -0
  52. package/dist/cjs/i18n/useTranslation.js +100 -0
  53. package/dist/cjs/i18n/useTranslation.js.map +1 -0
  54. package/dist/cjs/index.js +526 -0
  55. package/dist/cjs/index.js.map +1 -0
  56. package/dist/cjs/input/GamepadNavigation.js +181 -0
  57. package/dist/cjs/input/GamepadNavigation.js.map +1 -0
  58. package/dist/cjs/input/InputManager.js +404 -0
  59. package/dist/cjs/input/InputManager.js.map +1 -0
  60. package/dist/cjs/input/useGamepads.js +86 -0
  61. package/dist/cjs/input/useGamepads.js.map +1 -0
  62. package/dist/cjs/kids/KidMode.js +670 -0
  63. package/dist/cjs/kids/KidMode.js.map +1 -0
  64. package/dist/cjs/kids/KidTools.js +533 -0
  65. package/dist/cjs/kids/KidTools.js.map +1 -0
  66. package/dist/cjs/monetization/Monetization.js +197 -0
  67. package/dist/cjs/monetization/Monetization.js.map +1 -0
  68. package/dist/cjs/multiplayer/LocalMultiplayer.js +288 -0
  69. package/dist/cjs/multiplayer/LocalMultiplayer.js.map +1 -0
  70. package/dist/cjs/multiplayer/MiniGameTypes.js +70 -0
  71. package/dist/cjs/multiplayer/MiniGameTypes.js.map +1 -0
  72. package/dist/cjs/network/MultiplayerTransport.js +109 -0
  73. package/dist/cjs/network/MultiplayerTransport.js.map +1 -0
  74. package/dist/cjs/network/Networking.js +569 -0
  75. package/dist/cjs/network/Networking.js.map +1 -0
  76. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AbortController.js +32 -0
  77. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +1 -0
  78. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js +51 -0
  79. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +1 -0
  80. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js +46 -0
  81. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +1 -0
  82. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js +18 -0
  83. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +1 -0
  84. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Errors.js +145 -0
  85. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +1 -0
  86. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js +161 -0
  87. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +1 -0
  88. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js +56 -0
  89. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +1 -0
  90. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js +11 -0
  91. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +1 -0
  92. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpClient.js +52 -0
  93. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +1 -0
  94. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js +576 -0
  95. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +1 -0
  96. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnection.js +956 -0
  97. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +1 -0
  98. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js +149 -0
  99. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +1 -0
  100. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js +25 -0
  101. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +1 -0
  102. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ILogger.js +27 -0
  103. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +1 -0
  104. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ITransport.js +26 -0
  105. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +1 -0
  106. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js +124 -0
  107. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +1 -0
  108. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Loggers.js +17 -0
  109. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +1 -0
  110. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js +188 -0
  111. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +1 -0
  112. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js +199 -0
  113. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +1 -0
  114. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js +108 -0
  115. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +1 -0
  116. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Subject.js +38 -0
  117. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +1 -0
  118. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js +24 -0
  119. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +1 -0
  120. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Utils.js +264 -0
  121. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +1 -0
  122. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js +160 -0
  123. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +1 -0
  124. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js +88 -0
  125. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +1 -0
  126. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/index.js +50 -0
  127. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/index.js.map +1 -0
  128. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/pkg-version.js +6 -0
  129. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +1 -0
  130. package/dist/cjs/pathfinding/Pathfinding.js +255 -0
  131. package/dist/cjs/pathfinding/Pathfinding.js.map +1 -0
  132. package/dist/cjs/performance/BenchmarkSuite.js +318 -0
  133. package/dist/cjs/performance/BenchmarkSuite.js.map +1 -0
  134. package/dist/cjs/performance/Performance.js +180 -0
  135. package/dist/cjs/performance/Performance.js.map +1 -0
  136. package/dist/cjs/performance/PerformanceAdvanced.js +628 -0
  137. package/dist/cjs/performance/PerformanceAdvanced.js.map +1 -0
  138. package/dist/cjs/physics/PhysicsAdvanced.js +432 -0
  139. package/dist/cjs/physics/PhysicsAdvanced.js.map +1 -0
  140. package/dist/cjs/physics/PhysicsEngine2D.js +445 -0
  141. package/dist/cjs/physics/PhysicsEngine2D.js.map +1 -0
  142. package/dist/cjs/plugins/PluginSDK.js +488 -0
  143. package/dist/cjs/plugins/PluginSDK.js.map +1 -0
  144. package/dist/cjs/plugins/PluginTestKit.js +368 -0
  145. package/dist/cjs/plugins/PluginTestKit.js.map +1 -0
  146. package/dist/cjs/procedural/Procedural.js +288 -0
  147. package/dist/cjs/procedural/Procedural.js.map +1 -0
  148. package/dist/cjs/procedural/WorldBuilding.js +246 -0
  149. package/dist/cjs/procedural/WorldBuilding.js.map +1 -0
  150. package/dist/cjs/release/MobileExport.js +149 -0
  151. package/dist/cjs/release/MobileExport.js.map +1 -0
  152. package/dist/cjs/release/Release.js +151 -0
  153. package/dist/cjs/release/Release.js.map +1 -0
  154. package/dist/cjs/rendering/Camera2D.js +129 -0
  155. package/dist/cjs/rendering/Camera2D.js.map +1 -0
  156. package/dist/cjs/rendering/Renderer2D.js +337 -0
  157. package/dist/cjs/rendering/Renderer2D.js.map +1 -0
  158. package/dist/cjs/runtime3d/Runtime3D.js +381 -0
  159. package/dist/cjs/runtime3d/Runtime3D.js.map +1 -0
  160. package/dist/cjs/runtime3d/SceneEditor3D.js +316 -0
  161. package/dist/cjs/runtime3d/SceneEditor3D.js.map +1 -0
  162. package/dist/cjs/scene/SceneManager.js +186 -0
  163. package/dist/cjs/scene/SceneManager.js.map +1 -0
  164. package/dist/cjs/scripting/NodeGraph.js +573 -0
  165. package/dist/cjs/scripting/NodeGraph.js.map +1 -0
  166. package/dist/cjs/social/Social.js +91 -0
  167. package/dist/cjs/social/Social.js.map +1 -0
  168. package/dist/cjs/templates/ActionTemplates.js +229 -0
  169. package/dist/cjs/templates/ActionTemplates.js.map +1 -0
  170. package/dist/cjs/templates/PartyTemplates.js +221 -0
  171. package/dist/cjs/templates/PartyTemplates.js.map +1 -0
  172. package/dist/cjs/templates/PuzzleTemplates.js +283 -0
  173. package/dist/cjs/templates/PuzzleTemplates.js.map +1 -0
  174. package/dist/cjs/templates/RPGTemplates.js +209 -0
  175. package/dist/cjs/templates/RPGTemplates.js.map +1 -0
  176. package/dist/cjs/templates/SportsTemplates.js +272 -0
  177. package/dist/cjs/templates/SportsTemplates.js.map +1 -0
  178. package/dist/cjs/templates/StrategyTemplates.js +173 -0
  179. package/dist/cjs/templates/StrategyTemplates.js.map +1 -0
  180. package/dist/cjs/templates/WaveDefense.js +470 -0
  181. package/dist/cjs/templates/WaveDefense.js.map +1 -0
  182. package/dist/cjs/tilemap/Tilemap.js +208 -0
  183. package/dist/cjs/tilemap/Tilemap.js.map +1 -0
  184. package/dist/cjs/tutorials/TutorialBranching.js +392 -0
  185. package/dist/cjs/tutorials/TutorialBranching.js.map +1 -0
  186. package/dist/cjs/tutorials/TutorialEngine.js +903 -0
  187. package/dist/cjs/tutorials/TutorialEngine.js.map +1 -0
  188. package/dist/cjs/tutorials/TutorialOverlay.js +602 -0
  189. package/dist/cjs/tutorials/TutorialOverlay.js.map +1 -0
  190. package/dist/cjs/tutorials/content/Tutorials_T05_T08.js +816 -0
  191. package/dist/cjs/tutorials/content/Tutorials_T05_T08.js.map +1 -0
  192. package/dist/cjs/tutorials/content/Tutorials_T09_T11.js +741 -0
  193. package/dist/cjs/tutorials/content/Tutorials_T09_T11.js.map +1 -0
  194. package/dist/cjs/tutorials/content/Tutorials_T12_T15.js +786 -0
  195. package/dist/cjs/tutorials/content/Tutorials_T12_T15.js.map +1 -0
  196. package/dist/cjs/ui/GameUI.js +312 -0
  197. package/dist/cjs/ui/GameUI.js.map +1 -0
  198. package/dist/cjs/xr/ARVR.js +197 -0
  199. package/dist/cjs/xr/ARVR.js.map +1 -0
  200. package/dist/esm/accessibility/Accessibility.js +153 -0
  201. package/dist/esm/accessibility/Accessibility.js.map +1 -0
  202. package/dist/esm/ai/AI.js +302 -0
  203. package/dist/esm/ai/AI.js.map +1 -0
  204. package/dist/esm/animation/Animation.js +227 -0
  205. package/dist/esm/animation/Animation.js.map +1 -0
  206. package/dist/esm/audio/AudioAdvanced.js +243 -0
  207. package/dist/esm/audio/AudioAdvanced.js.map +1 -0
  208. package/dist/esm/audio/AudioManager.js +246 -0
  209. package/dist/esm/audio/AudioManager.js.map +1 -0
  210. package/dist/esm/core/EventBus.js +61 -0
  211. package/dist/esm/core/EventBus.js.map +1 -0
  212. package/dist/esm/core/GameClock.js +68 -0
  213. package/dist/esm/core/GameClock.js.map +1 -0
  214. package/dist/esm/core/GameConfig.js +80 -0
  215. package/dist/esm/core/GameConfig.js.map +1 -0
  216. package/dist/esm/core/GameLoop.js +91 -0
  217. package/dist/esm/core/GameLoop.js.map +1 -0
  218. package/dist/esm/core/ServiceLocator.js +70 -0
  219. package/dist/esm/core/ServiceLocator.js.map +1 -0
  220. package/dist/esm/core/Validation.js +108 -0
  221. package/dist/esm/core/Validation.js.map +1 -0
  222. package/dist/esm/core/math.js +114 -0
  223. package/dist/esm/core/math.js.map +1 -0
  224. package/dist/esm/devtools/DevTools.js +555 -0
  225. package/dist/esm/devtools/DevTools.js.map +1 -0
  226. package/dist/esm/devtools/DeveloperExperience.js +547 -0
  227. package/dist/esm/devtools/DeveloperExperience.js.map +1 -0
  228. package/dist/esm/docs/DocGenerator.js +353 -0
  229. package/dist/esm/docs/DocGenerator.js.map +1 -0
  230. package/dist/esm/ecs/World.js +276 -0
  231. package/dist/esm/ecs/World.js.map +1 -0
  232. package/dist/esm/editor/AdvancedEditor.js +141 -0
  233. package/dist/esm/editor/AdvancedEditor.js.map +1 -0
  234. package/dist/esm/editor/AssetManager.js +188 -0
  235. package/dist/esm/editor/AssetManager.js.map +1 -0
  236. package/dist/esm/editor/DebugTools.js +179 -0
  237. package/dist/esm/editor/DebugTools.js.map +1 -0
  238. package/dist/esm/editor/NiceGameEditor.js +355 -0
  239. package/dist/esm/editor/NiceGameEditor.js.map +1 -0
  240. package/dist/esm/editor/SceneEditor.js +209 -0
  241. package/dist/esm/editor/SceneEditor.js.map +1 -0
  242. package/dist/esm/engine/NiceGameEngine.js +170 -0
  243. package/dist/esm/engine/NiceGameEngine.js.map +1 -0
  244. package/dist/esm/enterprise/Enterprise.js +246 -0
  245. package/dist/esm/enterprise/Enterprise.js.map +1 -0
  246. package/dist/esm/i18n/I18n.js +622 -0
  247. package/dist/esm/i18n/I18n.js.map +1 -0
  248. package/dist/esm/i18n/useTranslation.js +95 -0
  249. package/dist/esm/i18n/useTranslation.js.map +1 -0
  250. package/dist/esm/index.js +71 -0
  251. package/dist/esm/index.js.map +1 -0
  252. package/dist/esm/input/GamepadNavigation.js +178 -0
  253. package/dist/esm/input/GamepadNavigation.js.map +1 -0
  254. package/dist/esm/input/InputManager.js +399 -0
  255. package/dist/esm/input/InputManager.js.map +1 -0
  256. package/dist/esm/input/useGamepads.js +83 -0
  257. package/dist/esm/input/useGamepads.js.map +1 -0
  258. package/dist/esm/kids/KidMode.js +663 -0
  259. package/dist/esm/kids/KidMode.js.map +1 -0
  260. package/dist/esm/kids/KidTools.js +529 -0
  261. package/dist/esm/kids/KidTools.js.map +1 -0
  262. package/dist/esm/monetization/Monetization.js +186 -0
  263. package/dist/esm/monetization/Monetization.js.map +1 -0
  264. package/dist/esm/multiplayer/LocalMultiplayer.js +284 -0
  265. package/dist/esm/multiplayer/LocalMultiplayer.js.map +1 -0
  266. package/dist/esm/multiplayer/MiniGameTypes.js +60 -0
  267. package/dist/esm/multiplayer/MiniGameTypes.js.map +1 -0
  268. package/dist/esm/network/MultiplayerTransport.js +106 -0
  269. package/dist/esm/network/MultiplayerTransport.js.map +1 -0
  270. package/dist/esm/network/Networking.js +561 -0
  271. package/dist/esm/network/Networking.js.map +1 -0
  272. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AbortController.js +30 -0
  273. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +1 -0
  274. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js +49 -0
  275. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +1 -0
  276. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js +44 -0
  277. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +1 -0
  278. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js +16 -0
  279. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +1 -0
  280. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Errors.js +136 -0
  281. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +1 -0
  282. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js +159 -0
  283. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +1 -0
  284. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js +54 -0
  285. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +1 -0
  286. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js +9 -0
  287. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +1 -0
  288. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpClient.js +49 -0
  289. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +1 -0
  290. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js +573 -0
  291. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +1 -0
  292. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnection.js +954 -0
  293. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +1 -0
  294. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js +147 -0
  295. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +1 -0
  296. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js +25 -0
  297. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +1 -0
  298. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ILogger.js +27 -0
  299. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +1 -0
  300. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ITransport.js +26 -0
  301. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +1 -0
  302. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js +122 -0
  303. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +1 -0
  304. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Loggers.js +15 -0
  305. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +1 -0
  306. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js +186 -0
  307. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +1 -0
  308. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js +197 -0
  309. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +1 -0
  310. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js +106 -0
  311. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +1 -0
  312. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Subject.js +36 -0
  313. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +1 -0
  314. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js +22 -0
  315. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +1 -0
  316. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Utils.js +249 -0
  317. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +1 -0
  318. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js +158 -0
  319. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +1 -0
  320. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js +86 -0
  321. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +1 -0
  322. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/index.js +13 -0
  323. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/index.js.map +1 -0
  324. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/pkg-version.js +4 -0
  325. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +1 -0
  326. package/dist/esm/pathfinding/Pathfinding.js +250 -0
  327. package/dist/esm/pathfinding/Pathfinding.js.map +1 -0
  328. package/dist/esm/performance/BenchmarkSuite.js +315 -0
  329. package/dist/esm/performance/BenchmarkSuite.js.map +1 -0
  330. package/dist/esm/performance/Performance.js +171 -0
  331. package/dist/esm/performance/Performance.js.map +1 -0
  332. package/dist/esm/performance/PerformanceAdvanced.js +620 -0
  333. package/dist/esm/performance/PerformanceAdvanced.js.map +1 -0
  334. package/dist/esm/physics/PhysicsAdvanced.js +417 -0
  335. package/dist/esm/physics/PhysicsAdvanced.js.map +1 -0
  336. package/dist/esm/physics/PhysicsEngine2D.js +442 -0
  337. package/dist/esm/physics/PhysicsEngine2D.js.map +1 -0
  338. package/dist/esm/plugins/PluginSDK.js +484 -0
  339. package/dist/esm/plugins/PluginSDK.js.map +1 -0
  340. package/dist/esm/plugins/PluginTestKit.js +359 -0
  341. package/dist/esm/plugins/PluginTestKit.js.map +1 -0
  342. package/dist/esm/procedural/Procedural.js +282 -0
  343. package/dist/esm/procedural/Procedural.js.map +1 -0
  344. package/dist/esm/procedural/WorldBuilding.js +225 -0
  345. package/dist/esm/procedural/WorldBuilding.js.map +1 -0
  346. package/dist/esm/release/MobileExport.js +142 -0
  347. package/dist/esm/release/MobileExport.js.map +1 -0
  348. package/dist/esm/release/Release.js +141 -0
  349. package/dist/esm/release/Release.js.map +1 -0
  350. package/dist/esm/rendering/Camera2D.js +127 -0
  351. package/dist/esm/rendering/Camera2D.js.map +1 -0
  352. package/dist/esm/rendering/Renderer2D.js +334 -0
  353. package/dist/esm/rendering/Renderer2D.js.map +1 -0
  354. package/dist/esm/runtime3d/Runtime3D.js +371 -0
  355. package/dist/esm/runtime3d/Runtime3D.js.map +1 -0
  356. package/dist/esm/runtime3d/SceneEditor3D.js +299 -0
  357. package/dist/esm/runtime3d/SceneEditor3D.js.map +1 -0
  358. package/dist/esm/scene/SceneManager.js +184 -0
  359. package/dist/esm/scene/SceneManager.js.map +1 -0
  360. package/dist/esm/scripting/NodeGraph.js +568 -0
  361. package/dist/esm/scripting/NodeGraph.js.map +1 -0
  362. package/dist/esm/social/Social.js +85 -0
  363. package/dist/esm/social/Social.js.map +1 -0
  364. package/dist/esm/templates/ActionTemplates.js +217 -0
  365. package/dist/esm/templates/ActionTemplates.js.map +1 -0
  366. package/dist/esm/templates/PartyTemplates.js +204 -0
  367. package/dist/esm/templates/PartyTemplates.js.map +1 -0
  368. package/dist/esm/templates/PuzzleTemplates.js +267 -0
  369. package/dist/esm/templates/PuzzleTemplates.js.map +1 -0
  370. package/dist/esm/templates/RPGTemplates.js +196 -0
  371. package/dist/esm/templates/RPGTemplates.js.map +1 -0
  372. package/dist/esm/templates/SportsTemplates.js +257 -0
  373. package/dist/esm/templates/SportsTemplates.js.map +1 -0
  374. package/dist/esm/templates/StrategyTemplates.js +157 -0
  375. package/dist/esm/templates/StrategyTemplates.js.map +1 -0
  376. package/dist/esm/templates/WaveDefense.js +467 -0
  377. package/dist/esm/templates/WaveDefense.js.map +1 -0
  378. package/dist/esm/tilemap/Tilemap.js +205 -0
  379. package/dist/esm/tilemap/Tilemap.js.map +1 -0
  380. package/dist/esm/tutorials/TutorialBranching.js +388 -0
  381. package/dist/esm/tutorials/TutorialBranching.js.map +1 -0
  382. package/dist/esm/tutorials/TutorialEngine.js +897 -0
  383. package/dist/esm/tutorials/TutorialEngine.js.map +1 -0
  384. package/dist/esm/tutorials/TutorialOverlay.js +600 -0
  385. package/dist/esm/tutorials/TutorialOverlay.js.map +1 -0
  386. package/dist/esm/tutorials/content/Tutorials_T05_T08.js +810 -0
  387. package/dist/esm/tutorials/content/Tutorials_T05_T08.js.map +1 -0
  388. package/dist/esm/tutorials/content/Tutorials_T09_T11.js +736 -0
  389. package/dist/esm/tutorials/content/Tutorials_T09_T11.js.map +1 -0
  390. package/dist/esm/tutorials/content/Tutorials_T12_T15.js +780 -0
  391. package/dist/esm/tutorials/content/Tutorials_T12_T15.js.map +1 -0
  392. package/dist/esm/ui/GameUI.js +310 -0
  393. package/dist/esm/ui/GameUI.js.map +1 -0
  394. package/dist/esm/xr/ARVR.js +182 -0
  395. package/dist/esm/xr/ARVR.js.map +1 -0
  396. package/dist/types/__tests__/setup.d.ts +1 -0
  397. package/dist/types/accessibility/Accessibility.d.ts +82 -0
  398. package/dist/types/accessibility/index.d.ts +1 -0
  399. package/dist/types/ai/AI.d.ts +140 -0
  400. package/dist/types/ai/index.d.ts +1 -0
  401. package/dist/types/animation/Animation.d.ts +90 -0
  402. package/dist/types/animation/index.d.ts +1 -0
  403. package/dist/types/audio/AudioAdvanced.d.ts +190 -0
  404. package/dist/types/audio/AudioManager.d.ts +55 -0
  405. package/dist/types/audio/index.d.ts +1 -0
  406. package/dist/types/community/Community.d.ts +112 -0
  407. package/dist/types/community/index.d.ts +1 -0
  408. package/dist/types/core/EventBus.d.ts +16 -0
  409. package/dist/types/core/GameClock.d.ts +29 -0
  410. package/dist/types/core/GameConfig.d.ts +20 -0
  411. package/dist/types/core/GameLoop.d.ts +32 -0
  412. package/dist/types/core/ServiceLocator.d.ts +36 -0
  413. package/dist/types/core/TypeSafety.d.ts +190 -0
  414. package/dist/types/core/Validation.d.ts +24 -0
  415. package/dist/types/core/index.d.ts +7 -0
  416. package/dist/types/core/math.d.ts +32 -0
  417. package/dist/types/core/types.d.ts +130 -0
  418. package/dist/types/devtools/AssetStore.d.ts +133 -0
  419. package/dist/types/devtools/DevTools.d.ts +217 -0
  420. package/dist/types/devtools/DeveloperExperience.d.ts +123 -0
  421. package/dist/types/devtools/index.d.ts +3 -0
  422. package/dist/types/docs/APIPlayground.d.ts +26 -0
  423. package/dist/types/docs/Cookbook.d.ts +18 -0
  424. package/dist/types/docs/DocGenerator.d.ts +83 -0
  425. package/dist/types/docs/Guides.d.ts +18 -0
  426. package/dist/types/docs/index.d.ts +4 -0
  427. package/dist/types/ecs/World.d.ts +219 -0
  428. package/dist/types/ecs/index.d.ts +1 -0
  429. package/dist/types/editor/AdvancedEditor.d.ts +267 -0
  430. package/dist/types/editor/AssetManager.d.ts +45 -0
  431. package/dist/types/editor/DebugTools.d.ts +74 -0
  432. package/dist/types/editor/NiceGameEditor.d.ts +115 -0
  433. package/dist/types/editor/SceneEditor.d.ts +37 -0
  434. package/dist/types/editor/index.d.ts +8 -0
  435. package/dist/types/engine/NiceGameEngine.d.ts +53 -0
  436. package/dist/types/engine/index.d.ts +2 -0
  437. package/dist/types/enterprise/Enterprise.d.ts +217 -0
  438. package/dist/types/enterprise/index.d.ts +1 -0
  439. package/dist/types/epic/index.d.ts +10 -0
  440. package/dist/types/i18n/I18n.d.ts +107 -0
  441. package/dist/types/i18n/index.d.ts +2 -0
  442. package/dist/types/i18n/useTranslation.d.ts +74 -0
  443. package/dist/types/index.d.ts +127 -0
  444. package/dist/types/input/GamepadNavigation.d.ts +34 -0
  445. package/dist/types/input/InputManager.d.ts +77 -0
  446. package/dist/types/input/index.d.ts +3 -0
  447. package/dist/types/input/useGamepads.d.ts +39 -0
  448. package/dist/types/kids/KidMode.d.ts +207 -0
  449. package/dist/types/kids/KidTools.d.ts +135 -0
  450. package/dist/types/kids/index.d.ts +2 -0
  451. package/dist/types/legendary/index.d.ts +57 -0
  452. package/dist/types/monetization/Monetization.d.ts +224 -0
  453. package/dist/types/monetization/index.d.ts +1 -0
  454. package/dist/types/multiplayer/LocalMultiplayer.d.ts +61 -0
  455. package/dist/types/multiplayer/MiniGameTypes.d.ts +70 -0
  456. package/dist/types/multiplayer/index.d.ts +3 -0
  457. package/dist/types/network/MultiplayerTransport.d.ts +71 -0
  458. package/dist/types/network/Networking.d.ts +199 -0
  459. package/dist/types/network/index.d.ts +2 -0
  460. package/dist/types/pathfinding/Pathfinding.d.ts +42 -0
  461. package/dist/types/pathfinding/index.d.ts +1 -0
  462. package/dist/types/performance/AssetCompression.d.ts +137 -0
  463. package/dist/types/performance/BenchmarkSuite.d.ts +99 -0
  464. package/dist/types/performance/Performance.d.ts +87 -0
  465. package/dist/types/performance/PerformanceAdvanced.d.ts +220 -0
  466. package/dist/types/performance/WASMModules.d.ts +65 -0
  467. package/dist/types/performance/WebGPUCompute.d.ts +164 -0
  468. package/dist/types/performance/index.d.ts +1 -0
  469. package/dist/types/physics/PhysicsAdvanced.d.ts +148 -0
  470. package/dist/types/physics/PhysicsEngine2D.d.ts +66 -0
  471. package/dist/types/physics/index.d.ts +1 -0
  472. package/dist/types/plugins/PluginSDK.d.ts +134 -0
  473. package/dist/types/plugins/PluginTestKit.d.ts +107 -0
  474. package/dist/types/plugins/index.d.ts +2 -0
  475. package/dist/types/procedural/Procedural.d.ts +90 -0
  476. package/dist/types/procedural/WorldBuilding.d.ts +200 -0
  477. package/dist/types/procedural/index.d.ts +2 -0
  478. package/dist/types/release/MobileExport.d.ts +218 -0
  479. package/dist/types/release/Release.d.ts +81 -0
  480. package/dist/types/release/index.d.ts +1 -0
  481. package/dist/types/rendering/Camera2D.d.ts +39 -0
  482. package/dist/types/rendering/Renderer2D.d.ts +41 -0
  483. package/dist/types/rendering/index.d.ts +2 -0
  484. package/dist/types/runtime3d/Runtime3D.d.ts +259 -0
  485. package/dist/types/runtime3d/SceneEditor3D.d.ts +186 -0
  486. package/dist/types/runtime3d/index.d.ts +2 -0
  487. package/dist/types/scene/SceneManager.d.ts +59 -0
  488. package/dist/types/scene/index.d.ts +2 -0
  489. package/dist/types/scripting/NodeGraph.d.ts +84 -0
  490. package/dist/types/scripting/index.d.ts +2 -0
  491. package/dist/types/social/Social.d.ts +245 -0
  492. package/dist/types/social/index.d.ts +1 -0
  493. package/dist/types/templates/ActionTemplates.d.ts +173 -0
  494. package/dist/types/templates/PartyTemplates.d.ts +195 -0
  495. package/dist/types/templates/PuzzleTemplates.d.ts +127 -0
  496. package/dist/types/templates/RPGTemplates.d.ts +210 -0
  497. package/dist/types/templates/SportsTemplates.d.ts +162 -0
  498. package/dist/types/templates/StrategyTemplates.d.ts +264 -0
  499. package/dist/types/templates/WaveDefense.d.ts +92 -0
  500. package/dist/types/templates/index.d.ts +2 -0
  501. package/dist/types/tilemap/Tilemap.d.ts +66 -0
  502. package/dist/types/tilemap/index.d.ts +1 -0
  503. package/dist/types/tutorials/TutorialBranching.d.ts +132 -0
  504. package/dist/types/tutorials/TutorialEditor.d.ts +43 -0
  505. package/dist/types/tutorials/TutorialEngine.d.ts +237 -0
  506. package/dist/types/tutorials/TutorialOverlay.d.ts +79 -0
  507. package/dist/types/tutorials/VoiceNarration.d.ts +75 -0
  508. package/dist/types/tutorials/content/Tutorials_T04.d.ts +3 -0
  509. package/dist/types/tutorials/content/Tutorials_T05_T08.d.ts +6 -0
  510. package/dist/types/tutorials/content/Tutorials_T09_T11.d.ts +5 -0
  511. package/dist/types/tutorials/content/Tutorials_T12_T15.d.ts +6 -0
  512. package/dist/types/tutorials/content/UITutorials.d.ts +14 -0
  513. package/dist/types/tutorials/content/index.d.ts +5 -0
  514. package/dist/types/tutorials/index.d.ts +6 -0
  515. package/dist/types/ui/GameUI.d.ts +97 -0
  516. package/dist/types/ui/index.d.ts +2 -0
  517. package/dist/types/xr/ARVR.d.ts +252 -0
  518. package/dist/types/xr/index.d.ts +1 -0
  519. package/package.json +88 -0
@@ -0,0 +1,15 @@
1
+ // Licensed to the .NET Foundation under one or more agreements.
2
+ // The .NET Foundation licenses this file to you under the MIT license.
3
+ /** A logger that does nothing when log messages are sent to it. */
4
+ class NullLogger {
5
+ constructor() { }
6
+ /** @inheritDoc */
7
+ // eslint-disable-next-line
8
+ log(_logLevel, _message) {
9
+ }
10
+ }
11
+ /** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */
12
+ NullLogger.instance = new NullLogger();
13
+
14
+ export { NullLogger };
15
+ //# sourceMappingURL=Loggers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Loggers.js","sources":["../../../../../../../../node_modules/@microsoft/signalr/dist/esm/Loggers.js"],"sourcesContent":["// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** A logger that does nothing when log messages are sent to it. */\r\nexport class NullLogger {\r\n constructor() { }\r\n /** @inheritDoc */\r\n // eslint-disable-next-line\r\n log(_logLevel, _message) {\r\n }\r\n}\r\n/** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */\r\nNullLogger.instance = new NullLogger();\r\n//# sourceMappingURL=Loggers.js.map"],"names":[],"mappings":"AAAA;AACA;AACA;AACO,MAAM,UAAU,CAAC;AACxB,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB;AACA;AACA,IAAI,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE;AAC7B,IAAI,CAAC;AACL,CAAC;AACD;AACA,UAAU,CAAC,QAAQ,GAAG,IAAI,UAAU,EAAE;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,186 @@
1
+ import { AbortController } from './AbortController.js';
2
+ import { HttpError, TimeoutError } from './Errors.js';
3
+ import { LogLevel } from './ILogger.js';
4
+ import { TransferFormat } from './ITransport.js';
5
+ import { Arg, getUserAgentHeader, getDataDetail, sendMessage } from './Utils.js';
6
+
7
+ // Licensed to the .NET Foundation under one or more agreements.
8
+ // The .NET Foundation licenses this file to you under the MIT license.
9
+ // Not exported from 'index', this type is internal.
10
+ /** @private */
11
+ class LongPollingTransport {
12
+ // This is an internal type, not exported from 'index' so this is really just internal.
13
+ get pollAborted() {
14
+ return this._pollAbort.aborted;
15
+ }
16
+ constructor(httpClient, logger, options) {
17
+ this._httpClient = httpClient;
18
+ this._logger = logger;
19
+ this._pollAbort = new AbortController();
20
+ this._options = options;
21
+ this._running = false;
22
+ this.onreceive = null;
23
+ this.onclose = null;
24
+ }
25
+ async connect(url, transferFormat) {
26
+ Arg.isRequired(url, "url");
27
+ Arg.isRequired(transferFormat, "transferFormat");
28
+ Arg.isIn(transferFormat, TransferFormat, "transferFormat");
29
+ this._url = url;
30
+ this._logger.log(LogLevel.Trace, "(LongPolling transport) Connecting.");
31
+ // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)
32
+ if (transferFormat === TransferFormat.Binary &&
33
+ (typeof XMLHttpRequest !== "undefined" && typeof new XMLHttpRequest().responseType !== "string")) {
34
+ throw new Error("Binary protocols over XmlHttpRequest not implementing advanced features are not supported.");
35
+ }
36
+ const [name, value] = getUserAgentHeader();
37
+ const headers = { [name]: value, ...this._options.headers };
38
+ const pollOptions = {
39
+ abortSignal: this._pollAbort.signal,
40
+ headers,
41
+ timeout: 100000,
42
+ withCredentials: this._options.withCredentials,
43
+ };
44
+ if (transferFormat === TransferFormat.Binary) {
45
+ pollOptions.responseType = "arraybuffer";
46
+ }
47
+ // Make initial long polling request
48
+ // Server uses first long polling request to finish initializing connection and it returns without data
49
+ const pollUrl = `${url}&_=${Date.now()}`;
50
+ this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);
51
+ const response = await this._httpClient.get(pollUrl, pollOptions);
52
+ if (response.statusCode !== 200) {
53
+ this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);
54
+ // Mark running as false so that the poll immediately ends and runs the close logic
55
+ this._closeError = new HttpError(response.statusText || "", response.statusCode);
56
+ this._running = false;
57
+ }
58
+ else {
59
+ this._running = true;
60
+ }
61
+ this._receiving = this._poll(this._url, pollOptions);
62
+ }
63
+ async _poll(url, pollOptions) {
64
+ try {
65
+ while (this._running) {
66
+ try {
67
+ const pollUrl = `${url}&_=${Date.now()}`;
68
+ this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);
69
+ const response = await this._httpClient.get(pollUrl, pollOptions);
70
+ if (response.statusCode === 204) {
71
+ this._logger.log(LogLevel.Information, "(LongPolling transport) Poll terminated by server.");
72
+ this._running = false;
73
+ }
74
+ else if (response.statusCode !== 200) {
75
+ this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);
76
+ // Unexpected status code
77
+ this._closeError = new HttpError(response.statusText || "", response.statusCode);
78
+ this._running = false;
79
+ }
80
+ else {
81
+ // Process the response
82
+ if (response.content) {
83
+ this._logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this._options.logMessageContent)}.`);
84
+ if (this.onreceive) {
85
+ this.onreceive(response.content);
86
+ }
87
+ }
88
+ else {
89
+ // This is another way timeout manifest.
90
+ this._logger.log(LogLevel.Trace, "(LongPolling transport) Poll timed out, reissuing.");
91
+ }
92
+ }
93
+ }
94
+ catch (e) {
95
+ if (!this._running) {
96
+ // Log but disregard errors that occur after stopping
97
+ this._logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);
98
+ }
99
+ else {
100
+ if (e instanceof TimeoutError) {
101
+ // Ignore timeouts and reissue the poll.
102
+ this._logger.log(LogLevel.Trace, "(LongPolling transport) Poll timed out, reissuing.");
103
+ }
104
+ else {
105
+ // Close the connection with the error as the result.
106
+ this._closeError = e;
107
+ this._running = false;
108
+ }
109
+ }
110
+ }
111
+ }
112
+ }
113
+ finally {
114
+ this._logger.log(LogLevel.Trace, "(LongPolling transport) Polling complete.");
115
+ // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.
116
+ // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.
117
+ if (!this.pollAborted) {
118
+ this._raiseOnClose();
119
+ }
120
+ }
121
+ }
122
+ async send(data) {
123
+ if (!this._running) {
124
+ return Promise.reject(new Error("Cannot send until the transport is connected"));
125
+ }
126
+ return sendMessage(this._logger, "LongPolling", this._httpClient, this._url, data, this._options);
127
+ }
128
+ async stop() {
129
+ this._logger.log(LogLevel.Trace, "(LongPolling transport) Stopping polling.");
130
+ // Tell receiving loop to stop, abort any current request, and then wait for it to finish
131
+ this._running = false;
132
+ this._pollAbort.abort();
133
+ try {
134
+ await this._receiving;
135
+ // Send DELETE to clean up long polling on the server
136
+ this._logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this._url}.`);
137
+ const headers = {};
138
+ const [name, value] = getUserAgentHeader();
139
+ headers[name] = value;
140
+ const deleteOptions = {
141
+ headers: { ...headers, ...this._options.headers },
142
+ timeout: this._options.timeout,
143
+ withCredentials: this._options.withCredentials,
144
+ };
145
+ let error;
146
+ try {
147
+ await this._httpClient.delete(this._url, deleteOptions);
148
+ }
149
+ catch (err) {
150
+ error = err;
151
+ }
152
+ if (error) {
153
+ if (error instanceof HttpError) {
154
+ if (error.statusCode === 404) {
155
+ this._logger.log(LogLevel.Trace, "(LongPolling transport) A 404 response was returned from sending a DELETE request.");
156
+ }
157
+ else {
158
+ this._logger.log(LogLevel.Trace, `(LongPolling transport) Error sending a DELETE request: ${error}`);
159
+ }
160
+ }
161
+ }
162
+ else {
163
+ this._logger.log(LogLevel.Trace, "(LongPolling transport) DELETE request accepted.");
164
+ }
165
+ }
166
+ finally {
167
+ this._logger.log(LogLevel.Trace, "(LongPolling transport) Stop finished.");
168
+ // Raise close event here instead of in polling
169
+ // It needs to happen after the DELETE request is sent
170
+ this._raiseOnClose();
171
+ }
172
+ }
173
+ _raiseOnClose() {
174
+ if (this.onclose) {
175
+ let logMessage = "(LongPolling transport) Firing onclose event.";
176
+ if (this._closeError) {
177
+ logMessage += " Error: " + this._closeError;
178
+ }
179
+ this._logger.log(LogLevel.Trace, logMessage);
180
+ this.onclose(this._closeError);
181
+ }
182
+ }
183
+ }
184
+
185
+ export { LongPollingTransport };
186
+ //# sourceMappingURL=LongPollingTransport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LongPollingTransport.js","sources":["../../../../../../../../node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js"],"sourcesContent":["// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, sendMessage } from \"./Utils\";\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nexport class LongPollingTransport {\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n get pollAborted() {\r\n return this._pollAbort.aborted;\r\n }\r\n constructor(httpClient, logger, options) {\r\n this._httpClient = httpClient;\r\n this._logger = logger;\r\n this._pollAbort = new AbortController();\r\n this._options = options;\r\n this._running = false;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._url = url;\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n const [name, value] = getUserAgentHeader();\r\n const headers = { [name]: value, ...this._options.headers };\r\n const pollOptions = {\r\n abortSignal: this._pollAbort.signal,\r\n headers,\r\n timeout: 100000,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n // Make initial long polling request\r\n // Server uses first long polling request to finish initializing connection and it returns without data\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n this._running = true;\r\n }\r\n this._receiving = this._poll(this._url, pollOptions);\r\n }\r\n async _poll(url, pollOptions) {\r\n try {\r\n while (this._running) {\r\n try {\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode === 204) {\r\n this._logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n this._running = false;\r\n }\r\n else if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Unexpected status code\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n // Process the response\r\n if (response.content) {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this._options.logMessageContent)}.`);\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n }\r\n else {\r\n // This is another way timeout manifest.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n if (!this._running) {\r\n // Log but disregard errors that occur after stopping\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);\r\n }\r\n else {\r\n if (e instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n else {\r\n // Close the connection with the error as the result.\r\n this._closeError = e;\r\n this._running = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this._raiseOnClose();\r\n }\r\n }\r\n }\r\n async send(data) {\r\n if (!this._running) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"LongPolling\", this._httpClient, this._url, data, this._options);\r\n }\r\n async stop() {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this._running = false;\r\n this._pollAbort.abort();\r\n try {\r\n await this._receiving;\r\n // Send DELETE to clean up long polling on the server\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this._url}.`);\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const deleteOptions = {\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n let error;\r\n try {\r\n await this._httpClient.delete(this._url, deleteOptions);\r\n }\r\n catch (err) {\r\n error = err;\r\n }\r\n if (error) {\r\n if (error instanceof HttpError) {\r\n if (error.statusCode === 404) {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) A 404 response was returned from sending a DELETE request.\");\r\n }\r\n else {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Error sending a DELETE request: ${error}`);\r\n }\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request accepted.\");\r\n }\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this._raiseOnClose();\r\n }\r\n }\r\n _raiseOnClose() {\r\n if (this.onclose) {\r\n let logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this._closeError) {\r\n logMessage += \" Error: \" + this._closeError;\r\n }\r\n this._logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this._closeError);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=LongPollingTransport.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,197 @@
1
+ import { MessageType } from './IHubProtocol.js';
2
+ import { isArrayBuffer } from './Utils.js';
3
+
4
+ // Licensed to the .NET Foundation under one or more agreements.
5
+ // The .NET Foundation licenses this file to you under the MIT license.
6
+ /** @private */
7
+ class MessageBuffer {
8
+ constructor(protocol, connection, bufferSize) {
9
+ this._bufferSize = 100000;
10
+ this._messages = [];
11
+ this._totalMessageCount = 0;
12
+ this._waitForSequenceMessage = false;
13
+ // Message IDs start at 1 and always increment by 1
14
+ this._nextReceivingSequenceId = 1;
15
+ this._latestReceivedSequenceId = 0;
16
+ this._bufferedByteCount = 0;
17
+ this._reconnectInProgress = false;
18
+ this._protocol = protocol;
19
+ this._connection = connection;
20
+ this._bufferSize = bufferSize;
21
+ }
22
+ async _send(message) {
23
+ const serializedMessage = this._protocol.writeMessage(message);
24
+ let backpressurePromise = Promise.resolve();
25
+ // Only count invocation messages. Acks, pings, etc. don't need to be resent on reconnect
26
+ if (this._isInvocationMessage(message)) {
27
+ this._totalMessageCount++;
28
+ let backpressurePromiseResolver = () => { };
29
+ let backpressurePromiseRejector = () => { };
30
+ if (isArrayBuffer(serializedMessage)) {
31
+ this._bufferedByteCount += serializedMessage.byteLength;
32
+ }
33
+ else {
34
+ this._bufferedByteCount += serializedMessage.length;
35
+ }
36
+ if (this._bufferedByteCount >= this._bufferSize) {
37
+ backpressurePromise = new Promise((resolve, reject) => {
38
+ backpressurePromiseResolver = resolve;
39
+ backpressurePromiseRejector = reject;
40
+ });
41
+ }
42
+ this._messages.push(new BufferedItem(serializedMessage, this._totalMessageCount, backpressurePromiseResolver, backpressurePromiseRejector));
43
+ }
44
+ try {
45
+ // If this is set it means we are reconnecting or resending
46
+ // We don't want to send on a disconnected connection
47
+ // And we don't want to send if resend is running since that would mean sending
48
+ // this message twice
49
+ if (!this._reconnectInProgress) {
50
+ await this._connection.send(serializedMessage);
51
+ }
52
+ }
53
+ catch {
54
+ this._disconnected();
55
+ }
56
+ await backpressurePromise;
57
+ }
58
+ _ack(ackMessage) {
59
+ let newestAckedMessage = -1;
60
+ // Find index of newest message being acked
61
+ for (let index = 0; index < this._messages.length; index++) {
62
+ const element = this._messages[index];
63
+ if (element._id <= ackMessage.sequenceId) {
64
+ newestAckedMessage = index;
65
+ if (isArrayBuffer(element._message)) {
66
+ this._bufferedByteCount -= element._message.byteLength;
67
+ }
68
+ else {
69
+ this._bufferedByteCount -= element._message.length;
70
+ }
71
+ // resolve items that have already been sent and acked
72
+ element._resolver();
73
+ }
74
+ else if (this._bufferedByteCount < this._bufferSize) {
75
+ // resolve items that now fall under the buffer limit but haven't been acked
76
+ element._resolver();
77
+ }
78
+ else {
79
+ break;
80
+ }
81
+ }
82
+ if (newestAckedMessage !== -1) {
83
+ // We're removing everything including the message pointed to, so add 1
84
+ this._messages = this._messages.slice(newestAckedMessage + 1);
85
+ }
86
+ }
87
+ _shouldProcessMessage(message) {
88
+ if (this._waitForSequenceMessage) {
89
+ if (message.type !== MessageType.Sequence) {
90
+ return false;
91
+ }
92
+ else {
93
+ this._waitForSequenceMessage = false;
94
+ return true;
95
+ }
96
+ }
97
+ // No special processing for acks, pings, etc.
98
+ if (!this._isInvocationMessage(message)) {
99
+ return true;
100
+ }
101
+ const currentId = this._nextReceivingSequenceId;
102
+ this._nextReceivingSequenceId++;
103
+ if (currentId <= this._latestReceivedSequenceId) {
104
+ if (currentId === this._latestReceivedSequenceId) {
105
+ // Should only hit this if we just reconnected and the server is sending
106
+ // Messages it has buffered, which would mean it hasn't seen an Ack for these messages
107
+ this._ackTimer();
108
+ }
109
+ // Ignore, this is a duplicate message
110
+ return false;
111
+ }
112
+ this._latestReceivedSequenceId = currentId;
113
+ // Only start the timer for sending an Ack message when we have a message to ack. This also conveniently solves
114
+ // timer throttling by not having a recursive timer, and by starting the timer via a network call (recv)
115
+ this._ackTimer();
116
+ return true;
117
+ }
118
+ _resetSequence(message) {
119
+ if (message.sequenceId > this._nextReceivingSequenceId) {
120
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
121
+ this._connection.stop(new Error("Sequence ID greater than amount of messages we've received."));
122
+ return;
123
+ }
124
+ this._nextReceivingSequenceId = message.sequenceId;
125
+ }
126
+ _disconnected() {
127
+ this._reconnectInProgress = true;
128
+ this._waitForSequenceMessage = true;
129
+ }
130
+ async _resend() {
131
+ const sequenceId = this._messages.length !== 0
132
+ ? this._messages[0]._id
133
+ : this._totalMessageCount + 1;
134
+ await this._connection.send(this._protocol.writeMessage({ type: MessageType.Sequence, sequenceId }));
135
+ // Get a local variable to the _messages, just in case messages are acked while resending
136
+ // Which would slice the _messages array (which creates a new copy)
137
+ const messages = this._messages;
138
+ for (const element of messages) {
139
+ await this._connection.send(element._message);
140
+ }
141
+ this._reconnectInProgress = false;
142
+ }
143
+ _dispose(error) {
144
+ error !== null && error !== void 0 ? error : (error = new Error("Unable to reconnect to server."));
145
+ // Unblock backpressure if any
146
+ for (const element of this._messages) {
147
+ element._rejector(error);
148
+ }
149
+ }
150
+ _isInvocationMessage(message) {
151
+ // There is no way to check if something implements an interface.
152
+ // So we individually check the messages in a switch statement.
153
+ // To make sure we don't miss any message types we rely on the compiler
154
+ // seeing the function returns a value and it will do the
155
+ // exhaustive check for us on the switch statement, since we don't use 'case default'
156
+ switch (message.type) {
157
+ case MessageType.Invocation:
158
+ case MessageType.StreamItem:
159
+ case MessageType.Completion:
160
+ case MessageType.StreamInvocation:
161
+ case MessageType.CancelInvocation:
162
+ return true;
163
+ case MessageType.Close:
164
+ case MessageType.Sequence:
165
+ case MessageType.Ping:
166
+ case MessageType.Ack:
167
+ return false;
168
+ }
169
+ }
170
+ _ackTimer() {
171
+ if (this._ackTimerHandle === undefined) {
172
+ this._ackTimerHandle = setTimeout(async () => {
173
+ try {
174
+ if (!this._reconnectInProgress) {
175
+ await this._connection.send(this._protocol.writeMessage({ type: MessageType.Ack, sequenceId: this._latestReceivedSequenceId }));
176
+ }
177
+ // Ignore errors, that means the connection is closed and we don't care about the Ack message anymore.
178
+ }
179
+ catch { }
180
+ clearTimeout(this._ackTimerHandle);
181
+ this._ackTimerHandle = undefined;
182
+ // 1 second delay so we don't spam Ack messages if there are many messages being received at once.
183
+ }, 1000);
184
+ }
185
+ }
186
+ }
187
+ class BufferedItem {
188
+ constructor(message, id, resolver, rejector) {
189
+ this._message = message;
190
+ this._id = id;
191
+ this._resolver = resolver;
192
+ this._rejector = rejector;
193
+ }
194
+ }
195
+
196
+ export { MessageBuffer };
197
+ //# sourceMappingURL=MessageBuffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageBuffer.js","sources":["../../../../../../../../node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js"],"sourcesContent":["// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nexport class MessageBuffer {\r\n constructor(protocol, connection, bufferSize) {\r\n this._bufferSize = 100000;\r\n this._messages = [];\r\n this._totalMessageCount = 0;\r\n this._waitForSequenceMessage = false;\r\n // Message IDs start at 1 and always increment by 1\r\n this._nextReceivingSequenceId = 1;\r\n this._latestReceivedSequenceId = 0;\r\n this._bufferedByteCount = 0;\r\n this._reconnectInProgress = false;\r\n this._protocol = protocol;\r\n this._connection = connection;\r\n this._bufferSize = bufferSize;\r\n }\r\n async _send(message) {\r\n const serializedMessage = this._protocol.writeMessage(message);\r\n let backpressurePromise = Promise.resolve();\r\n // Only count invocation messages. Acks, pings, etc. don't need to be resent on reconnect\r\n if (this._isInvocationMessage(message)) {\r\n this._totalMessageCount++;\r\n let backpressurePromiseResolver = () => { };\r\n let backpressurePromiseRejector = () => { };\r\n if (isArrayBuffer(serializedMessage)) {\r\n this._bufferedByteCount += serializedMessage.byteLength;\r\n }\r\n else {\r\n this._bufferedByteCount += serializedMessage.length;\r\n }\r\n if (this._bufferedByteCount >= this._bufferSize) {\r\n backpressurePromise = new Promise((resolve, reject) => {\r\n backpressurePromiseResolver = resolve;\r\n backpressurePromiseRejector = reject;\r\n });\r\n }\r\n this._messages.push(new BufferedItem(serializedMessage, this._totalMessageCount, backpressurePromiseResolver, backpressurePromiseRejector));\r\n }\r\n try {\r\n // If this is set it means we are reconnecting or resending\r\n // We don't want to send on a disconnected connection\r\n // And we don't want to send if resend is running since that would mean sending\r\n // this message twice\r\n if (!this._reconnectInProgress) {\r\n await this._connection.send(serializedMessage);\r\n }\r\n }\r\n catch {\r\n this._disconnected();\r\n }\r\n await backpressurePromise;\r\n }\r\n _ack(ackMessage) {\r\n let newestAckedMessage = -1;\r\n // Find index of newest message being acked\r\n for (let index = 0; index < this._messages.length; index++) {\r\n const element = this._messages[index];\r\n if (element._id <= ackMessage.sequenceId) {\r\n newestAckedMessage = index;\r\n if (isArrayBuffer(element._message)) {\r\n this._bufferedByteCount -= element._message.byteLength;\r\n }\r\n else {\r\n this._bufferedByteCount -= element._message.length;\r\n }\r\n // resolve items that have already been sent and acked\r\n element._resolver();\r\n }\r\n else if (this._bufferedByteCount < this._bufferSize) {\r\n // resolve items that now fall under the buffer limit but haven't been acked\r\n element._resolver();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n if (newestAckedMessage !== -1) {\r\n // We're removing everything including the message pointed to, so add 1\r\n this._messages = this._messages.slice(newestAckedMessage + 1);\r\n }\r\n }\r\n _shouldProcessMessage(message) {\r\n if (this._waitForSequenceMessage) {\r\n if (message.type !== MessageType.Sequence) {\r\n return false;\r\n }\r\n else {\r\n this._waitForSequenceMessage = false;\r\n return true;\r\n }\r\n }\r\n // No special processing for acks, pings, etc.\r\n if (!this._isInvocationMessage(message)) {\r\n return true;\r\n }\r\n const currentId = this._nextReceivingSequenceId;\r\n this._nextReceivingSequenceId++;\r\n if (currentId <= this._latestReceivedSequenceId) {\r\n if (currentId === this._latestReceivedSequenceId) {\r\n // Should only hit this if we just reconnected and the server is sending\r\n // Messages it has buffered, which would mean it hasn't seen an Ack for these messages\r\n this._ackTimer();\r\n }\r\n // Ignore, this is a duplicate message\r\n return false;\r\n }\r\n this._latestReceivedSequenceId = currentId;\r\n // Only start the timer for sending an Ack message when we have a message to ack. This also conveniently solves\r\n // timer throttling by not having a recursive timer, and by starting the timer via a network call (recv)\r\n this._ackTimer();\r\n return true;\r\n }\r\n _resetSequence(message) {\r\n if (message.sequenceId > this._nextReceivingSequenceId) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._connection.stop(new Error(\"Sequence ID greater than amount of messages we've received.\"));\r\n return;\r\n }\r\n this._nextReceivingSequenceId = message.sequenceId;\r\n }\r\n _disconnected() {\r\n this._reconnectInProgress = true;\r\n this._waitForSequenceMessage = true;\r\n }\r\n async _resend() {\r\n const sequenceId = this._messages.length !== 0\r\n ? this._messages[0]._id\r\n : this._totalMessageCount + 1;\r\n await this._connection.send(this._protocol.writeMessage({ type: MessageType.Sequence, sequenceId }));\r\n // Get a local variable to the _messages, just in case messages are acked while resending\r\n // Which would slice the _messages array (which creates a new copy)\r\n const messages = this._messages;\r\n for (const element of messages) {\r\n await this._connection.send(element._message);\r\n }\r\n this._reconnectInProgress = false;\r\n }\r\n _dispose(error) {\r\n error !== null && error !== void 0 ? error : (error = new Error(\"Unable to reconnect to server.\"));\r\n // Unblock backpressure if any\r\n for (const element of this._messages) {\r\n element._rejector(error);\r\n }\r\n }\r\n _isInvocationMessage(message) {\r\n // There is no way to check if something implements an interface.\r\n // So we individually check the messages in a switch statement.\r\n // To make sure we don't miss any message types we rely on the compiler\r\n // seeing the function returns a value and it will do the\r\n // exhaustive check for us on the switch statement, since we don't use 'case default'\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n case MessageType.StreamItem:\r\n case MessageType.Completion:\r\n case MessageType.StreamInvocation:\r\n case MessageType.CancelInvocation:\r\n return true;\r\n case MessageType.Close:\r\n case MessageType.Sequence:\r\n case MessageType.Ping:\r\n case MessageType.Ack:\r\n return false;\r\n }\r\n }\r\n _ackTimer() {\r\n if (this._ackTimerHandle === undefined) {\r\n this._ackTimerHandle = setTimeout(async () => {\r\n try {\r\n if (!this._reconnectInProgress) {\r\n await this._connection.send(this._protocol.writeMessage({ type: MessageType.Ack, sequenceId: this._latestReceivedSequenceId }));\r\n }\r\n // Ignore errors, that means the connection is closed and we don't care about the Ack message anymore.\r\n }\r\n catch { }\r\n clearTimeout(this._ackTimerHandle);\r\n this._ackTimerHandle = undefined;\r\n // 1 second delay so we don't spam Ack messages if there are many messages being received at once.\r\n }, 1000);\r\n }\r\n }\r\n}\r\nclass BufferedItem {\r\n constructor(message, id, resolver, rejector) {\r\n this._message = message;\r\n this._id = id;\r\n this._resolver = resolver;\r\n this._rejector = rejector;\r\n }\r\n}\r\n//# sourceMappingURL=MessageBuffer.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,106 @@
1
+ import { LogLevel } from './ILogger.js';
2
+ import { TransferFormat } from './ITransport.js';
3
+ import { Arg, Platform, getUserAgentHeader, getDataDetail, sendMessage } from './Utils.js';
4
+
5
+ // Licensed to the .NET Foundation under one or more agreements.
6
+ // The .NET Foundation licenses this file to you under the MIT license.
7
+ /** @private */
8
+ class ServerSentEventsTransport {
9
+ constructor(httpClient, accessToken, logger, options) {
10
+ this._httpClient = httpClient;
11
+ this._accessToken = accessToken;
12
+ this._logger = logger;
13
+ this._options = options;
14
+ this.onreceive = null;
15
+ this.onclose = null;
16
+ }
17
+ async connect(url, transferFormat) {
18
+ Arg.isRequired(url, "url");
19
+ Arg.isRequired(transferFormat, "transferFormat");
20
+ Arg.isIn(transferFormat, TransferFormat, "transferFormat");
21
+ this._logger.log(LogLevel.Trace, "(SSE transport) Connecting.");
22
+ // set url before accessTokenFactory because this._url is only for send and we set the auth header instead of the query string for send
23
+ this._url = url;
24
+ if (this._accessToken) {
25
+ url += (url.indexOf("?") < 0 ? "?" : "&") + `access_token=${encodeURIComponent(this._accessToken)}`;
26
+ }
27
+ return new Promise((resolve, reject) => {
28
+ let opened = false;
29
+ if (transferFormat !== TransferFormat.Text) {
30
+ reject(new Error("The Server-Sent Events transport only supports the 'Text' transfer format"));
31
+ return;
32
+ }
33
+ let eventSource;
34
+ if (Platform.isBrowser || Platform.isWebWorker) {
35
+ eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials });
36
+ }
37
+ else {
38
+ // Non-browser passes cookies via the dictionary
39
+ const cookies = this._httpClient.getCookieString(url);
40
+ const headers = {};
41
+ headers.Cookie = cookies;
42
+ const [name, value] = getUserAgentHeader();
43
+ headers[name] = value;
44
+ eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials, headers: { ...headers, ...this._options.headers } });
45
+ }
46
+ try {
47
+ eventSource.onmessage = (e) => {
48
+ if (this.onreceive) {
49
+ try {
50
+ this._logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this._options.logMessageContent)}.`);
51
+ this.onreceive(e.data);
52
+ }
53
+ catch (error) {
54
+ this._close(error);
55
+ return;
56
+ }
57
+ }
58
+ };
59
+ // @ts-ignore: not using event on purpose
60
+ eventSource.onerror = (e) => {
61
+ // EventSource doesn't give any useful information about server side closes.
62
+ if (opened) {
63
+ this._close();
64
+ }
65
+ else {
66
+ reject(new Error("EventSource failed to connect. The connection could not be found on the server,"
67
+ + " either the connection ID is not present on the server, or a proxy is refusing/buffering the connection."
68
+ + " If you have multiple servers check that sticky sessions are enabled."));
69
+ }
70
+ };
71
+ eventSource.onopen = () => {
72
+ this._logger.log(LogLevel.Information, `SSE connected to ${this._url}`);
73
+ this._eventSource = eventSource;
74
+ opened = true;
75
+ resolve();
76
+ };
77
+ }
78
+ catch (e) {
79
+ reject(e);
80
+ return;
81
+ }
82
+ });
83
+ }
84
+ async send(data) {
85
+ if (!this._eventSource) {
86
+ return Promise.reject(new Error("Cannot send until the transport is connected"));
87
+ }
88
+ return sendMessage(this._logger, "SSE", this._httpClient, this._url, data, this._options);
89
+ }
90
+ stop() {
91
+ this._close();
92
+ return Promise.resolve();
93
+ }
94
+ _close(e) {
95
+ if (this._eventSource) {
96
+ this._eventSource.close();
97
+ this._eventSource = undefined;
98
+ if (this.onclose) {
99
+ this.onclose(e);
100
+ }
101
+ }
102
+ }
103
+ }
104
+
105
+ export { ServerSentEventsTransport };
106
+ //# sourceMappingURL=ServerSentEventsTransport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerSentEventsTransport.js","sources":["../../../../../../../../node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js"],"sourcesContent":["// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform, sendMessage } from \"./Utils\";\r\n/** @private */\r\nexport class ServerSentEventsTransport {\r\n constructor(httpClient, accessToken, logger, options) {\r\n this._httpClient = httpClient;\r\n this._accessToken = accessToken;\r\n this._logger = logger;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n // set url before accessTokenFactory because this._url is only for send and we set the auth header instead of the query string for send\r\n this._url = url;\r\n if (this._accessToken) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(this._accessToken)}`;\r\n }\r\n return new Promise((resolve, reject) => {\r\n let opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n let eventSource;\r\n if (Platform.isBrowser || Platform.isWebWorker) {\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials });\r\n }\r\n else {\r\n // Non-browser passes cookies via the dictionary\r\n const cookies = this._httpClient.getCookieString(url);\r\n const headers = {};\r\n headers.Cookie = cookies;\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials, headers: { ...headers, ...this._options.headers } });\r\n }\r\n try {\r\n eventSource.onmessage = (e) => {\r\n if (this.onreceive) {\r\n try {\r\n this._logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this._options.logMessageContent)}.`);\r\n this.onreceive(e.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n // @ts-ignore: not using event on purpose\r\n eventSource.onerror = (e) => {\r\n // EventSource doesn't give any useful information about server side closes.\r\n if (opened) {\r\n this._close();\r\n }\r\n else {\r\n reject(new Error(\"EventSource failed to connect. The connection could not be found on the server,\"\r\n + \" either the connection ID is not present on the server, or a proxy is refusing/buffering the connection.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\"));\r\n }\r\n };\r\n eventSource.onopen = () => {\r\n this._logger.log(LogLevel.Information, `SSE connected to ${this._url}`);\r\n this._eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n }\r\n catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n });\r\n }\r\n async send(data) {\r\n if (!this._eventSource) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"SSE\", this._httpClient, this._url, data, this._options);\r\n }\r\n stop() {\r\n this._close();\r\n return Promise.resolve();\r\n }\r\n _close(e) {\r\n if (this._eventSource) {\r\n this._eventSource.close();\r\n this._eventSource = undefined;\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=ServerSentEventsTransport.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,36 @@
1
+ import { SubjectSubscription } from './Utils.js';
2
+
3
+ // Licensed to the .NET Foundation under one or more agreements.
4
+ // The .NET Foundation licenses this file to you under the MIT license.
5
+ /** Stream implementation to stream items to the server. */
6
+ class Subject {
7
+ constructor() {
8
+ this.observers = [];
9
+ }
10
+ next(item) {
11
+ for (const observer of this.observers) {
12
+ observer.next(item);
13
+ }
14
+ }
15
+ error(err) {
16
+ for (const observer of this.observers) {
17
+ if (observer.error) {
18
+ observer.error(err);
19
+ }
20
+ }
21
+ }
22
+ complete() {
23
+ for (const observer of this.observers) {
24
+ if (observer.complete) {
25
+ observer.complete();
26
+ }
27
+ }
28
+ }
29
+ subscribe(observer) {
30
+ this.observers.push(observer);
31
+ return new SubjectSubscription(this, observer);
32
+ }
33
+ }
34
+
35
+ export { Subject };
36
+ //# sourceMappingURL=Subject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Subject.js","sources":["../../../../../../../../node_modules/@microsoft/signalr/dist/esm/Subject.js"],"sourcesContent":["// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { SubjectSubscription } from \"./Utils\";\r\n/** Stream implementation to stream items to the server. */\r\nexport class Subject {\r\n constructor() {\r\n this.observers = [];\r\n }\r\n next(item) {\r\n for (const observer of this.observers) {\r\n observer.next(item);\r\n }\r\n }\r\n error(err) {\r\n for (const observer of this.observers) {\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n }\r\n complete() {\r\n for (const observer of this.observers) {\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n }\r\n subscribe(observer) {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n }\r\n}\r\n//# sourceMappingURL=Subject.js.map"],"names":[],"mappings":";;AAAA;AACA;AAEA;AACO,MAAM,OAAO,CAAC;AACrB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AAC5B,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC/C,YAAY,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,QAAQ,CAAC;AACT,IAAI,CAAC;AACL,IAAI,KAAK,CAAC,GAAG,EAAE;AACf,QAAQ,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC/C,YAAY,IAAI,QAAQ,CAAC,KAAK,EAAE;AAChC,gBAAgB,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACpC,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,IAAI,CAAC;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC/C,YAAY,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACnC,gBAAgB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AACpC,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,IAAI,CAAC;AACL,IAAI,SAAS,CAAC,QAAQ,EAAE;AACxB,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtC,QAAQ,OAAO,IAAI,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACvD,IAAI,CAAC;AACL;;;;","x_google_ignoreList":[0]}