@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.
- package/CHANGELOG.md +33 -0
- package/LICENSE +21 -0
- package/README.md +105 -0
- package/dist/cjs/accessibility/Accessibility.js +162 -0
- package/dist/cjs/accessibility/Accessibility.js.map +1 -0
- package/dist/cjs/ai/AI.js +321 -0
- package/dist/cjs/ai/AI.js.map +1 -0
- package/dist/cjs/animation/Animation.js +233 -0
- package/dist/cjs/animation/Animation.js.map +1 -0
- package/dist/cjs/audio/AudioAdvanced.js +262 -0
- package/dist/cjs/audio/AudioAdvanced.js.map +1 -0
- package/dist/cjs/audio/AudioManager.js +248 -0
- package/dist/cjs/audio/AudioManager.js.map +1 -0
- package/dist/cjs/core/EventBus.js +63 -0
- package/dist/cjs/core/EventBus.js.map +1 -0
- package/dist/cjs/core/GameClock.js +70 -0
- package/dist/cjs/core/GameClock.js.map +1 -0
- package/dist/cjs/core/GameConfig.js +86 -0
- package/dist/cjs/core/GameConfig.js.map +1 -0
- package/dist/cjs/core/GameLoop.js +93 -0
- package/dist/cjs/core/GameLoop.js.map +1 -0
- package/dist/cjs/core/ServiceLocator.js +73 -0
- package/dist/cjs/core/ServiceLocator.js.map +1 -0
- package/dist/cjs/core/Validation.js +119 -0
- package/dist/cjs/core/Validation.js.map +1 -0
- package/dist/cjs/core/math.js +116 -0
- package/dist/cjs/core/math.js.map +1 -0
- package/dist/cjs/devtools/DevTools.js +560 -0
- package/dist/cjs/devtools/DevTools.js.map +1 -0
- package/dist/cjs/devtools/DeveloperExperience.js +562 -0
- package/dist/cjs/devtools/DeveloperExperience.js.map +1 -0
- package/dist/cjs/docs/DocGenerator.js +357 -0
- package/dist/cjs/docs/DocGenerator.js.map +1 -0
- package/dist/cjs/ecs/World.js +280 -0
- package/dist/cjs/ecs/World.js.map +1 -0
- package/dist/cjs/editor/AdvancedEditor.js +149 -0
- package/dist/cjs/editor/AdvancedEditor.js.map +1 -0
- package/dist/cjs/editor/AssetManager.js +190 -0
- package/dist/cjs/editor/AssetManager.js.map +1 -0
- package/dist/cjs/editor/DebugTools.js +187 -0
- package/dist/cjs/editor/DebugTools.js.map +1 -0
- package/dist/cjs/editor/NiceGameEditor.js +361 -0
- package/dist/cjs/editor/NiceGameEditor.js.map +1 -0
- package/dist/cjs/editor/SceneEditor.js +223 -0
- package/dist/cjs/editor/SceneEditor.js.map +1 -0
- package/dist/cjs/engine/NiceGameEngine.js +172 -0
- package/dist/cjs/engine/NiceGameEngine.js.map +1 -0
- package/dist/cjs/enterprise/Enterprise.js +258 -0
- package/dist/cjs/enterprise/Enterprise.js.map +1 -0
- package/dist/cjs/i18n/I18n.js +634 -0
- package/dist/cjs/i18n/I18n.js.map +1 -0
- package/dist/cjs/i18n/useTranslation.js +100 -0
- package/dist/cjs/i18n/useTranslation.js.map +1 -0
- package/dist/cjs/index.js +526 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/input/GamepadNavigation.js +181 -0
- package/dist/cjs/input/GamepadNavigation.js.map +1 -0
- package/dist/cjs/input/InputManager.js +404 -0
- package/dist/cjs/input/InputManager.js.map +1 -0
- package/dist/cjs/input/useGamepads.js +86 -0
- package/dist/cjs/input/useGamepads.js.map +1 -0
- package/dist/cjs/kids/KidMode.js +670 -0
- package/dist/cjs/kids/KidMode.js.map +1 -0
- package/dist/cjs/kids/KidTools.js +533 -0
- package/dist/cjs/kids/KidTools.js.map +1 -0
- package/dist/cjs/monetization/Monetization.js +197 -0
- package/dist/cjs/monetization/Monetization.js.map +1 -0
- package/dist/cjs/multiplayer/LocalMultiplayer.js +288 -0
- package/dist/cjs/multiplayer/LocalMultiplayer.js.map +1 -0
- package/dist/cjs/multiplayer/MiniGameTypes.js +70 -0
- package/dist/cjs/multiplayer/MiniGameTypes.js.map +1 -0
- package/dist/cjs/network/MultiplayerTransport.js +109 -0
- package/dist/cjs/network/MultiplayerTransport.js.map +1 -0
- package/dist/cjs/network/Networking.js +569 -0
- package/dist/cjs/network/Networking.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AbortController.js +32 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js +51 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js +46 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js +18 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Errors.js +145 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js +161 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js +56 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js +11 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpClient.js +52 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js +576 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnection.js +956 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js +149 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js +25 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ILogger.js +27 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ITransport.js +26 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js +124 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Loggers.js +17 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js +188 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js +199 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js +108 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Subject.js +38 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js +24 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Utils.js +264 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js +160 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js +88 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/index.js +50 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/index.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/pkg-version.js +6 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +1 -0
- package/dist/cjs/pathfinding/Pathfinding.js +255 -0
- package/dist/cjs/pathfinding/Pathfinding.js.map +1 -0
- package/dist/cjs/performance/BenchmarkSuite.js +318 -0
- package/dist/cjs/performance/BenchmarkSuite.js.map +1 -0
- package/dist/cjs/performance/Performance.js +180 -0
- package/dist/cjs/performance/Performance.js.map +1 -0
- package/dist/cjs/performance/PerformanceAdvanced.js +628 -0
- package/dist/cjs/performance/PerformanceAdvanced.js.map +1 -0
- package/dist/cjs/physics/PhysicsAdvanced.js +432 -0
- package/dist/cjs/physics/PhysicsAdvanced.js.map +1 -0
- package/dist/cjs/physics/PhysicsEngine2D.js +445 -0
- package/dist/cjs/physics/PhysicsEngine2D.js.map +1 -0
- package/dist/cjs/plugins/PluginSDK.js +488 -0
- package/dist/cjs/plugins/PluginSDK.js.map +1 -0
- package/dist/cjs/plugins/PluginTestKit.js +368 -0
- package/dist/cjs/plugins/PluginTestKit.js.map +1 -0
- package/dist/cjs/procedural/Procedural.js +288 -0
- package/dist/cjs/procedural/Procedural.js.map +1 -0
- package/dist/cjs/procedural/WorldBuilding.js +246 -0
- package/dist/cjs/procedural/WorldBuilding.js.map +1 -0
- package/dist/cjs/release/MobileExport.js +149 -0
- package/dist/cjs/release/MobileExport.js.map +1 -0
- package/dist/cjs/release/Release.js +151 -0
- package/dist/cjs/release/Release.js.map +1 -0
- package/dist/cjs/rendering/Camera2D.js +129 -0
- package/dist/cjs/rendering/Camera2D.js.map +1 -0
- package/dist/cjs/rendering/Renderer2D.js +337 -0
- package/dist/cjs/rendering/Renderer2D.js.map +1 -0
- package/dist/cjs/runtime3d/Runtime3D.js +381 -0
- package/dist/cjs/runtime3d/Runtime3D.js.map +1 -0
- package/dist/cjs/runtime3d/SceneEditor3D.js +316 -0
- package/dist/cjs/runtime3d/SceneEditor3D.js.map +1 -0
- package/dist/cjs/scene/SceneManager.js +186 -0
- package/dist/cjs/scene/SceneManager.js.map +1 -0
- package/dist/cjs/scripting/NodeGraph.js +573 -0
- package/dist/cjs/scripting/NodeGraph.js.map +1 -0
- package/dist/cjs/social/Social.js +91 -0
- package/dist/cjs/social/Social.js.map +1 -0
- package/dist/cjs/templates/ActionTemplates.js +229 -0
- package/dist/cjs/templates/ActionTemplates.js.map +1 -0
- package/dist/cjs/templates/PartyTemplates.js +221 -0
- package/dist/cjs/templates/PartyTemplates.js.map +1 -0
- package/dist/cjs/templates/PuzzleTemplates.js +283 -0
- package/dist/cjs/templates/PuzzleTemplates.js.map +1 -0
- package/dist/cjs/templates/RPGTemplates.js +209 -0
- package/dist/cjs/templates/RPGTemplates.js.map +1 -0
- package/dist/cjs/templates/SportsTemplates.js +272 -0
- package/dist/cjs/templates/SportsTemplates.js.map +1 -0
- package/dist/cjs/templates/StrategyTemplates.js +173 -0
- package/dist/cjs/templates/StrategyTemplates.js.map +1 -0
- package/dist/cjs/templates/WaveDefense.js +470 -0
- package/dist/cjs/templates/WaveDefense.js.map +1 -0
- package/dist/cjs/tilemap/Tilemap.js +208 -0
- package/dist/cjs/tilemap/Tilemap.js.map +1 -0
- package/dist/cjs/tutorials/TutorialBranching.js +392 -0
- package/dist/cjs/tutorials/TutorialBranching.js.map +1 -0
- package/dist/cjs/tutorials/TutorialEngine.js +903 -0
- package/dist/cjs/tutorials/TutorialEngine.js.map +1 -0
- package/dist/cjs/tutorials/TutorialOverlay.js +602 -0
- package/dist/cjs/tutorials/TutorialOverlay.js.map +1 -0
- package/dist/cjs/tutorials/content/Tutorials_T05_T08.js +816 -0
- package/dist/cjs/tutorials/content/Tutorials_T05_T08.js.map +1 -0
- package/dist/cjs/tutorials/content/Tutorials_T09_T11.js +741 -0
- package/dist/cjs/tutorials/content/Tutorials_T09_T11.js.map +1 -0
- package/dist/cjs/tutorials/content/Tutorials_T12_T15.js +786 -0
- package/dist/cjs/tutorials/content/Tutorials_T12_T15.js.map +1 -0
- package/dist/cjs/ui/GameUI.js +312 -0
- package/dist/cjs/ui/GameUI.js.map +1 -0
- package/dist/cjs/xr/ARVR.js +197 -0
- package/dist/cjs/xr/ARVR.js.map +1 -0
- package/dist/esm/accessibility/Accessibility.js +153 -0
- package/dist/esm/accessibility/Accessibility.js.map +1 -0
- package/dist/esm/ai/AI.js +302 -0
- package/dist/esm/ai/AI.js.map +1 -0
- package/dist/esm/animation/Animation.js +227 -0
- package/dist/esm/animation/Animation.js.map +1 -0
- package/dist/esm/audio/AudioAdvanced.js +243 -0
- package/dist/esm/audio/AudioAdvanced.js.map +1 -0
- package/dist/esm/audio/AudioManager.js +246 -0
- package/dist/esm/audio/AudioManager.js.map +1 -0
- package/dist/esm/core/EventBus.js +61 -0
- package/dist/esm/core/EventBus.js.map +1 -0
- package/dist/esm/core/GameClock.js +68 -0
- package/dist/esm/core/GameClock.js.map +1 -0
- package/dist/esm/core/GameConfig.js +80 -0
- package/dist/esm/core/GameConfig.js.map +1 -0
- package/dist/esm/core/GameLoop.js +91 -0
- package/dist/esm/core/GameLoop.js.map +1 -0
- package/dist/esm/core/ServiceLocator.js +70 -0
- package/dist/esm/core/ServiceLocator.js.map +1 -0
- package/dist/esm/core/Validation.js +108 -0
- package/dist/esm/core/Validation.js.map +1 -0
- package/dist/esm/core/math.js +114 -0
- package/dist/esm/core/math.js.map +1 -0
- package/dist/esm/devtools/DevTools.js +555 -0
- package/dist/esm/devtools/DevTools.js.map +1 -0
- package/dist/esm/devtools/DeveloperExperience.js +547 -0
- package/dist/esm/devtools/DeveloperExperience.js.map +1 -0
- package/dist/esm/docs/DocGenerator.js +353 -0
- package/dist/esm/docs/DocGenerator.js.map +1 -0
- package/dist/esm/ecs/World.js +276 -0
- package/dist/esm/ecs/World.js.map +1 -0
- package/dist/esm/editor/AdvancedEditor.js +141 -0
- package/dist/esm/editor/AdvancedEditor.js.map +1 -0
- package/dist/esm/editor/AssetManager.js +188 -0
- package/dist/esm/editor/AssetManager.js.map +1 -0
- package/dist/esm/editor/DebugTools.js +179 -0
- package/dist/esm/editor/DebugTools.js.map +1 -0
- package/dist/esm/editor/NiceGameEditor.js +355 -0
- package/dist/esm/editor/NiceGameEditor.js.map +1 -0
- package/dist/esm/editor/SceneEditor.js +209 -0
- package/dist/esm/editor/SceneEditor.js.map +1 -0
- package/dist/esm/engine/NiceGameEngine.js +170 -0
- package/dist/esm/engine/NiceGameEngine.js.map +1 -0
- package/dist/esm/enterprise/Enterprise.js +246 -0
- package/dist/esm/enterprise/Enterprise.js.map +1 -0
- package/dist/esm/i18n/I18n.js +622 -0
- package/dist/esm/i18n/I18n.js.map +1 -0
- package/dist/esm/i18n/useTranslation.js +95 -0
- package/dist/esm/i18n/useTranslation.js.map +1 -0
- package/dist/esm/index.js +71 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/input/GamepadNavigation.js +178 -0
- package/dist/esm/input/GamepadNavigation.js.map +1 -0
- package/dist/esm/input/InputManager.js +399 -0
- package/dist/esm/input/InputManager.js.map +1 -0
- package/dist/esm/input/useGamepads.js +83 -0
- package/dist/esm/input/useGamepads.js.map +1 -0
- package/dist/esm/kids/KidMode.js +663 -0
- package/dist/esm/kids/KidMode.js.map +1 -0
- package/dist/esm/kids/KidTools.js +529 -0
- package/dist/esm/kids/KidTools.js.map +1 -0
- package/dist/esm/monetization/Monetization.js +186 -0
- package/dist/esm/monetization/Monetization.js.map +1 -0
- package/dist/esm/multiplayer/LocalMultiplayer.js +284 -0
- package/dist/esm/multiplayer/LocalMultiplayer.js.map +1 -0
- package/dist/esm/multiplayer/MiniGameTypes.js +60 -0
- package/dist/esm/multiplayer/MiniGameTypes.js.map +1 -0
- package/dist/esm/network/MultiplayerTransport.js +106 -0
- package/dist/esm/network/MultiplayerTransport.js.map +1 -0
- package/dist/esm/network/Networking.js +561 -0
- package/dist/esm/network/Networking.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AbortController.js +30 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js +49 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js +44 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js +16 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Errors.js +136 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js +159 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js +54 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js +9 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpClient.js +49 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js +573 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnection.js +954 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js +147 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js +25 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ILogger.js +27 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ITransport.js +26 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js +122 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Loggers.js +15 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js +186 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js +197 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js +106 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Subject.js +36 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js +22 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Utils.js +249 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js +158 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js +86 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/index.js +13 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/index.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/pkg-version.js +4 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +1 -0
- package/dist/esm/pathfinding/Pathfinding.js +250 -0
- package/dist/esm/pathfinding/Pathfinding.js.map +1 -0
- package/dist/esm/performance/BenchmarkSuite.js +315 -0
- package/dist/esm/performance/BenchmarkSuite.js.map +1 -0
- package/dist/esm/performance/Performance.js +171 -0
- package/dist/esm/performance/Performance.js.map +1 -0
- package/dist/esm/performance/PerformanceAdvanced.js +620 -0
- package/dist/esm/performance/PerformanceAdvanced.js.map +1 -0
- package/dist/esm/physics/PhysicsAdvanced.js +417 -0
- package/dist/esm/physics/PhysicsAdvanced.js.map +1 -0
- package/dist/esm/physics/PhysicsEngine2D.js +442 -0
- package/dist/esm/physics/PhysicsEngine2D.js.map +1 -0
- package/dist/esm/plugins/PluginSDK.js +484 -0
- package/dist/esm/plugins/PluginSDK.js.map +1 -0
- package/dist/esm/plugins/PluginTestKit.js +359 -0
- package/dist/esm/plugins/PluginTestKit.js.map +1 -0
- package/dist/esm/procedural/Procedural.js +282 -0
- package/dist/esm/procedural/Procedural.js.map +1 -0
- package/dist/esm/procedural/WorldBuilding.js +225 -0
- package/dist/esm/procedural/WorldBuilding.js.map +1 -0
- package/dist/esm/release/MobileExport.js +142 -0
- package/dist/esm/release/MobileExport.js.map +1 -0
- package/dist/esm/release/Release.js +141 -0
- package/dist/esm/release/Release.js.map +1 -0
- package/dist/esm/rendering/Camera2D.js +127 -0
- package/dist/esm/rendering/Camera2D.js.map +1 -0
- package/dist/esm/rendering/Renderer2D.js +334 -0
- package/dist/esm/rendering/Renderer2D.js.map +1 -0
- package/dist/esm/runtime3d/Runtime3D.js +371 -0
- package/dist/esm/runtime3d/Runtime3D.js.map +1 -0
- package/dist/esm/runtime3d/SceneEditor3D.js +299 -0
- package/dist/esm/runtime3d/SceneEditor3D.js.map +1 -0
- package/dist/esm/scene/SceneManager.js +184 -0
- package/dist/esm/scene/SceneManager.js.map +1 -0
- package/dist/esm/scripting/NodeGraph.js +568 -0
- package/dist/esm/scripting/NodeGraph.js.map +1 -0
- package/dist/esm/social/Social.js +85 -0
- package/dist/esm/social/Social.js.map +1 -0
- package/dist/esm/templates/ActionTemplates.js +217 -0
- package/dist/esm/templates/ActionTemplates.js.map +1 -0
- package/dist/esm/templates/PartyTemplates.js +204 -0
- package/dist/esm/templates/PartyTemplates.js.map +1 -0
- package/dist/esm/templates/PuzzleTemplates.js +267 -0
- package/dist/esm/templates/PuzzleTemplates.js.map +1 -0
- package/dist/esm/templates/RPGTemplates.js +196 -0
- package/dist/esm/templates/RPGTemplates.js.map +1 -0
- package/dist/esm/templates/SportsTemplates.js +257 -0
- package/dist/esm/templates/SportsTemplates.js.map +1 -0
- package/dist/esm/templates/StrategyTemplates.js +157 -0
- package/dist/esm/templates/StrategyTemplates.js.map +1 -0
- package/dist/esm/templates/WaveDefense.js +467 -0
- package/dist/esm/templates/WaveDefense.js.map +1 -0
- package/dist/esm/tilemap/Tilemap.js +205 -0
- package/dist/esm/tilemap/Tilemap.js.map +1 -0
- package/dist/esm/tutorials/TutorialBranching.js +388 -0
- package/dist/esm/tutorials/TutorialBranching.js.map +1 -0
- package/dist/esm/tutorials/TutorialEngine.js +897 -0
- package/dist/esm/tutorials/TutorialEngine.js.map +1 -0
- package/dist/esm/tutorials/TutorialOverlay.js +600 -0
- package/dist/esm/tutorials/TutorialOverlay.js.map +1 -0
- package/dist/esm/tutorials/content/Tutorials_T05_T08.js +810 -0
- package/dist/esm/tutorials/content/Tutorials_T05_T08.js.map +1 -0
- package/dist/esm/tutorials/content/Tutorials_T09_T11.js +736 -0
- package/dist/esm/tutorials/content/Tutorials_T09_T11.js.map +1 -0
- package/dist/esm/tutorials/content/Tutorials_T12_T15.js +780 -0
- package/dist/esm/tutorials/content/Tutorials_T12_T15.js.map +1 -0
- package/dist/esm/ui/GameUI.js +310 -0
- package/dist/esm/ui/GameUI.js.map +1 -0
- package/dist/esm/xr/ARVR.js +182 -0
- package/dist/esm/xr/ARVR.js.map +1 -0
- package/dist/types/__tests__/setup.d.ts +1 -0
- package/dist/types/accessibility/Accessibility.d.ts +82 -0
- package/dist/types/accessibility/index.d.ts +1 -0
- package/dist/types/ai/AI.d.ts +140 -0
- package/dist/types/ai/index.d.ts +1 -0
- package/dist/types/animation/Animation.d.ts +90 -0
- package/dist/types/animation/index.d.ts +1 -0
- package/dist/types/audio/AudioAdvanced.d.ts +190 -0
- package/dist/types/audio/AudioManager.d.ts +55 -0
- package/dist/types/audio/index.d.ts +1 -0
- package/dist/types/community/Community.d.ts +112 -0
- package/dist/types/community/index.d.ts +1 -0
- package/dist/types/core/EventBus.d.ts +16 -0
- package/dist/types/core/GameClock.d.ts +29 -0
- package/dist/types/core/GameConfig.d.ts +20 -0
- package/dist/types/core/GameLoop.d.ts +32 -0
- package/dist/types/core/ServiceLocator.d.ts +36 -0
- package/dist/types/core/TypeSafety.d.ts +190 -0
- package/dist/types/core/Validation.d.ts +24 -0
- package/dist/types/core/index.d.ts +7 -0
- package/dist/types/core/math.d.ts +32 -0
- package/dist/types/core/types.d.ts +130 -0
- package/dist/types/devtools/AssetStore.d.ts +133 -0
- package/dist/types/devtools/DevTools.d.ts +217 -0
- package/dist/types/devtools/DeveloperExperience.d.ts +123 -0
- package/dist/types/devtools/index.d.ts +3 -0
- package/dist/types/docs/APIPlayground.d.ts +26 -0
- package/dist/types/docs/Cookbook.d.ts +18 -0
- package/dist/types/docs/DocGenerator.d.ts +83 -0
- package/dist/types/docs/Guides.d.ts +18 -0
- package/dist/types/docs/index.d.ts +4 -0
- package/dist/types/ecs/World.d.ts +219 -0
- package/dist/types/ecs/index.d.ts +1 -0
- package/dist/types/editor/AdvancedEditor.d.ts +267 -0
- package/dist/types/editor/AssetManager.d.ts +45 -0
- package/dist/types/editor/DebugTools.d.ts +74 -0
- package/dist/types/editor/NiceGameEditor.d.ts +115 -0
- package/dist/types/editor/SceneEditor.d.ts +37 -0
- package/dist/types/editor/index.d.ts +8 -0
- package/dist/types/engine/NiceGameEngine.d.ts +53 -0
- package/dist/types/engine/index.d.ts +2 -0
- package/dist/types/enterprise/Enterprise.d.ts +217 -0
- package/dist/types/enterprise/index.d.ts +1 -0
- package/dist/types/epic/index.d.ts +10 -0
- package/dist/types/i18n/I18n.d.ts +107 -0
- package/dist/types/i18n/index.d.ts +2 -0
- package/dist/types/i18n/useTranslation.d.ts +74 -0
- package/dist/types/index.d.ts +127 -0
- package/dist/types/input/GamepadNavigation.d.ts +34 -0
- package/dist/types/input/InputManager.d.ts +77 -0
- package/dist/types/input/index.d.ts +3 -0
- package/dist/types/input/useGamepads.d.ts +39 -0
- package/dist/types/kids/KidMode.d.ts +207 -0
- package/dist/types/kids/KidTools.d.ts +135 -0
- package/dist/types/kids/index.d.ts +2 -0
- package/dist/types/legendary/index.d.ts +57 -0
- package/dist/types/monetization/Monetization.d.ts +224 -0
- package/dist/types/monetization/index.d.ts +1 -0
- package/dist/types/multiplayer/LocalMultiplayer.d.ts +61 -0
- package/dist/types/multiplayer/MiniGameTypes.d.ts +70 -0
- package/dist/types/multiplayer/index.d.ts +3 -0
- package/dist/types/network/MultiplayerTransport.d.ts +71 -0
- package/dist/types/network/Networking.d.ts +199 -0
- package/dist/types/network/index.d.ts +2 -0
- package/dist/types/pathfinding/Pathfinding.d.ts +42 -0
- package/dist/types/pathfinding/index.d.ts +1 -0
- package/dist/types/performance/AssetCompression.d.ts +137 -0
- package/dist/types/performance/BenchmarkSuite.d.ts +99 -0
- package/dist/types/performance/Performance.d.ts +87 -0
- package/dist/types/performance/PerformanceAdvanced.d.ts +220 -0
- package/dist/types/performance/WASMModules.d.ts +65 -0
- package/dist/types/performance/WebGPUCompute.d.ts +164 -0
- package/dist/types/performance/index.d.ts +1 -0
- package/dist/types/physics/PhysicsAdvanced.d.ts +148 -0
- package/dist/types/physics/PhysicsEngine2D.d.ts +66 -0
- package/dist/types/physics/index.d.ts +1 -0
- package/dist/types/plugins/PluginSDK.d.ts +134 -0
- package/dist/types/plugins/PluginTestKit.d.ts +107 -0
- package/dist/types/plugins/index.d.ts +2 -0
- package/dist/types/procedural/Procedural.d.ts +90 -0
- package/dist/types/procedural/WorldBuilding.d.ts +200 -0
- package/dist/types/procedural/index.d.ts +2 -0
- package/dist/types/release/MobileExport.d.ts +218 -0
- package/dist/types/release/Release.d.ts +81 -0
- package/dist/types/release/index.d.ts +1 -0
- package/dist/types/rendering/Camera2D.d.ts +39 -0
- package/dist/types/rendering/Renderer2D.d.ts +41 -0
- package/dist/types/rendering/index.d.ts +2 -0
- package/dist/types/runtime3d/Runtime3D.d.ts +259 -0
- package/dist/types/runtime3d/SceneEditor3D.d.ts +186 -0
- package/dist/types/runtime3d/index.d.ts +2 -0
- package/dist/types/scene/SceneManager.d.ts +59 -0
- package/dist/types/scene/index.d.ts +2 -0
- package/dist/types/scripting/NodeGraph.d.ts +84 -0
- package/dist/types/scripting/index.d.ts +2 -0
- package/dist/types/social/Social.d.ts +245 -0
- package/dist/types/social/index.d.ts +1 -0
- package/dist/types/templates/ActionTemplates.d.ts +173 -0
- package/dist/types/templates/PartyTemplates.d.ts +195 -0
- package/dist/types/templates/PuzzleTemplates.d.ts +127 -0
- package/dist/types/templates/RPGTemplates.d.ts +210 -0
- package/dist/types/templates/SportsTemplates.d.ts +162 -0
- package/dist/types/templates/StrategyTemplates.d.ts +264 -0
- package/dist/types/templates/WaveDefense.d.ts +92 -0
- package/dist/types/templates/index.d.ts +2 -0
- package/dist/types/tilemap/Tilemap.d.ts +66 -0
- package/dist/types/tilemap/index.d.ts +1 -0
- package/dist/types/tutorials/TutorialBranching.d.ts +132 -0
- package/dist/types/tutorials/TutorialEditor.d.ts +43 -0
- package/dist/types/tutorials/TutorialEngine.d.ts +237 -0
- package/dist/types/tutorials/TutorialOverlay.d.ts +79 -0
- package/dist/types/tutorials/VoiceNarration.d.ts +75 -0
- package/dist/types/tutorials/content/Tutorials_T04.d.ts +3 -0
- package/dist/types/tutorials/content/Tutorials_T05_T08.d.ts +6 -0
- package/dist/types/tutorials/content/Tutorials_T09_T11.d.ts +5 -0
- package/dist/types/tutorials/content/Tutorials_T12_T15.d.ts +6 -0
- package/dist/types/tutorials/content/UITutorials.d.ts +14 -0
- package/dist/types/tutorials/content/index.d.ts +5 -0
- package/dist/types/tutorials/index.d.ts +6 -0
- package/dist/types/ui/GameUI.d.ts +97 -0
- package/dist/types/ui/index.d.ts +2 -0
- package/dist/types/xr/ARVR.d.ts +252 -0
- package/dist/types/xr/index.d.ts +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var Utils = require('./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
|
+
/** Stream implementation to stream items to the server. */
|
|
8
|
+
class Subject {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.observers = [];
|
|
11
|
+
}
|
|
12
|
+
next(item) {
|
|
13
|
+
for (const observer of this.observers) {
|
|
14
|
+
observer.next(item);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
error(err) {
|
|
18
|
+
for (const observer of this.observers) {
|
|
19
|
+
if (observer.error) {
|
|
20
|
+
observer.error(err);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
complete() {
|
|
25
|
+
for (const observer of this.observers) {
|
|
26
|
+
if (observer.complete) {
|
|
27
|
+
observer.complete();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
subscribe(observer) {
|
|
32
|
+
this.observers.push(observer);
|
|
33
|
+
return new Utils.SubjectSubscription(this, observer);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
exports.Subject = Subject;
|
|
38
|
+
//# 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":["SubjectSubscription"],"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,IAAIA,yBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACvD,IAAI,CAAC;AACL;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
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
|
+
// Not exported from index
|
|
6
|
+
/** @private */
|
|
7
|
+
class TextMessageFormat {
|
|
8
|
+
static write(output) {
|
|
9
|
+
return `${output}${TextMessageFormat.RecordSeparator}`;
|
|
10
|
+
}
|
|
11
|
+
static parse(input) {
|
|
12
|
+
if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {
|
|
13
|
+
throw new Error("Message is incomplete.");
|
|
14
|
+
}
|
|
15
|
+
const messages = input.split(TextMessageFormat.RecordSeparator);
|
|
16
|
+
messages.pop();
|
|
17
|
+
return messages;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
TextMessageFormat.RecordSeparatorCode = 0x1e;
|
|
21
|
+
TextMessageFormat.RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);
|
|
22
|
+
|
|
23
|
+
exports.TextMessageFormat = TextMessageFormat;
|
|
24
|
+
//# sourceMappingURL=TextMessageFormat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextMessageFormat.js","sources":["../../../../../../../../node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.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// Not exported from index\r\n/** @private */\r\nexport class TextMessageFormat {\r\n static write(output) {\r\n return `${output}${TextMessageFormat.RecordSeparator}`;\r\n }\r\n static parse(input) {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n const messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n }\r\n}\r\nTextMessageFormat.RecordSeparatorCode = 0x1e;\r\nTextMessageFormat.RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n//# sourceMappingURL=TextMessageFormat.js.map"],"names":[],"mappings":";;AAAA;AACA;AACA;AACA;AACO,MAAM,iBAAiB,CAAC;AAC/B,IAAI,OAAO,KAAK,CAAC,MAAM,EAAE;AACzB,QAAQ,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/D,IAAI,CAAC;AACL,IAAI,OAAO,KAAK,CAAC,KAAK,EAAE;AACxB,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,iBAAiB,CAAC,eAAe,EAAE;AAC3E,YAAY,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AACtD,QAAQ,CAAC;AACT,QAAQ,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;AACxE,QAAQ,QAAQ,CAAC,GAAG,EAAE,CAAC;AACvB,QAAQ,OAAO,QAAQ,CAAC;AACxB,IAAI,CAAC;AACL,CAAC;AACD,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAC7C,iBAAiB,CAAC,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,mBAAmB,CAAC;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var ILogger = require('./ILogger.js');
|
|
4
|
+
var Loggers = require('./Loggers.js');
|
|
5
|
+
var pkgVersion = require('./pkg-version.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
|
+
/** @private */
|
|
10
|
+
class Arg {
|
|
11
|
+
static isRequired(val, name) {
|
|
12
|
+
if (val === null || val === undefined) {
|
|
13
|
+
throw new Error(`The '${name}' argument is required.`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
static isNotEmpty(val, name) {
|
|
17
|
+
if (!val || val.match(/^\s*$/)) {
|
|
18
|
+
throw new Error(`The '${name}' argument should not be empty.`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
static isIn(val, values, name) {
|
|
22
|
+
// TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.
|
|
23
|
+
if (!(val in values)) {
|
|
24
|
+
throw new Error(`Unknown ${name} value: ${val}.`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/** @private */
|
|
29
|
+
class Platform {
|
|
30
|
+
// react-native has a window but no document so we should check both
|
|
31
|
+
static get isBrowser() {
|
|
32
|
+
return !Platform.isNode && typeof window === "object" && typeof window.document === "object";
|
|
33
|
+
}
|
|
34
|
+
// WebWorkers don't have a window object so the isBrowser check would fail
|
|
35
|
+
static get isWebWorker() {
|
|
36
|
+
return !Platform.isNode && typeof self === "object" && "importScripts" in self;
|
|
37
|
+
}
|
|
38
|
+
// react-native has a window but no document
|
|
39
|
+
static get isReactNative() {
|
|
40
|
+
return !Platform.isNode && typeof window === "object" && typeof window.document === "undefined";
|
|
41
|
+
}
|
|
42
|
+
// Node apps shouldn't have a window object, but WebWorkers don't either
|
|
43
|
+
// so we need to check for both WebWorker and window
|
|
44
|
+
static get isNode() {
|
|
45
|
+
return typeof process !== "undefined" && process.release && process.release.name === "node";
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/** @private */
|
|
49
|
+
function getDataDetail(data, includeContent) {
|
|
50
|
+
let detail = "";
|
|
51
|
+
if (isArrayBuffer(data)) {
|
|
52
|
+
detail = `Binary data of length ${data.byteLength}`;
|
|
53
|
+
if (includeContent) {
|
|
54
|
+
detail += `. Content: '${formatArrayBuffer(data)}'`;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else if (typeof data === "string") {
|
|
58
|
+
detail = `String data of length ${data.length}`;
|
|
59
|
+
if (includeContent) {
|
|
60
|
+
detail += `. Content: '${data}'`;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return detail;
|
|
64
|
+
}
|
|
65
|
+
/** @private */
|
|
66
|
+
function formatArrayBuffer(data) {
|
|
67
|
+
const view = new Uint8Array(data);
|
|
68
|
+
// Uint8Array.map only supports returning another Uint8Array?
|
|
69
|
+
let str = "";
|
|
70
|
+
view.forEach((num) => {
|
|
71
|
+
const pad = num < 16 ? "0" : "";
|
|
72
|
+
str += `0x${pad}${num.toString(16)} `;
|
|
73
|
+
});
|
|
74
|
+
// Trim of trailing space.
|
|
75
|
+
return str.substring(0, str.length - 1);
|
|
76
|
+
}
|
|
77
|
+
// Also in signalr-protocol-msgpack/Utils.ts
|
|
78
|
+
/** @private */
|
|
79
|
+
function isArrayBuffer(val) {
|
|
80
|
+
return val && typeof ArrayBuffer !== "undefined" &&
|
|
81
|
+
(val instanceof ArrayBuffer ||
|
|
82
|
+
// Sometimes we get an ArrayBuffer that doesn't satisfy instanceof
|
|
83
|
+
(val.constructor && val.constructor.name === "ArrayBuffer"));
|
|
84
|
+
}
|
|
85
|
+
/** @private */
|
|
86
|
+
async function sendMessage(logger, transportName, httpClient, url, content, options) {
|
|
87
|
+
const headers = {};
|
|
88
|
+
const [name, value] = getUserAgentHeader();
|
|
89
|
+
headers[name] = value;
|
|
90
|
+
logger.log(ILogger.LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent)}.`);
|
|
91
|
+
const responseType = isArrayBuffer(content) ? "arraybuffer" : "text";
|
|
92
|
+
const response = await httpClient.post(url, {
|
|
93
|
+
content,
|
|
94
|
+
headers: { ...headers, ...options.headers },
|
|
95
|
+
responseType,
|
|
96
|
+
timeout: options.timeout,
|
|
97
|
+
withCredentials: options.withCredentials,
|
|
98
|
+
});
|
|
99
|
+
logger.log(ILogger.LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);
|
|
100
|
+
}
|
|
101
|
+
/** @private */
|
|
102
|
+
function createLogger(logger) {
|
|
103
|
+
if (logger === undefined) {
|
|
104
|
+
return new ConsoleLogger(ILogger.LogLevel.Information);
|
|
105
|
+
}
|
|
106
|
+
if (logger === null) {
|
|
107
|
+
return Loggers.NullLogger.instance;
|
|
108
|
+
}
|
|
109
|
+
if (logger.log !== undefined) {
|
|
110
|
+
return logger;
|
|
111
|
+
}
|
|
112
|
+
return new ConsoleLogger(logger);
|
|
113
|
+
}
|
|
114
|
+
/** @private */
|
|
115
|
+
class SubjectSubscription {
|
|
116
|
+
constructor(subject, observer) {
|
|
117
|
+
this._subject = subject;
|
|
118
|
+
this._observer = observer;
|
|
119
|
+
}
|
|
120
|
+
dispose() {
|
|
121
|
+
const index = this._subject.observers.indexOf(this._observer);
|
|
122
|
+
if (index > -1) {
|
|
123
|
+
this._subject.observers.splice(index, 1);
|
|
124
|
+
}
|
|
125
|
+
if (this._subject.observers.length === 0 && this._subject.cancelCallback) {
|
|
126
|
+
this._subject.cancelCallback().catch((_) => { });
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/** @private */
|
|
131
|
+
class ConsoleLogger {
|
|
132
|
+
constructor(minimumLogLevel) {
|
|
133
|
+
this._minLevel = minimumLogLevel;
|
|
134
|
+
this.out = console;
|
|
135
|
+
}
|
|
136
|
+
log(logLevel, message) {
|
|
137
|
+
if (logLevel >= this._minLevel) {
|
|
138
|
+
const msg = `[${new Date().toISOString()}] ${ILogger.LogLevel[logLevel]}: ${message}`;
|
|
139
|
+
switch (logLevel) {
|
|
140
|
+
case ILogger.LogLevel.Critical:
|
|
141
|
+
case ILogger.LogLevel.Error:
|
|
142
|
+
this.out.error(msg);
|
|
143
|
+
break;
|
|
144
|
+
case ILogger.LogLevel.Warning:
|
|
145
|
+
this.out.warn(msg);
|
|
146
|
+
break;
|
|
147
|
+
case ILogger.LogLevel.Information:
|
|
148
|
+
this.out.info(msg);
|
|
149
|
+
break;
|
|
150
|
+
default:
|
|
151
|
+
// console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug
|
|
152
|
+
this.out.log(msg);
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/** @private */
|
|
159
|
+
function getUserAgentHeader() {
|
|
160
|
+
let userAgentHeaderName = "X-SignalR-User-Agent";
|
|
161
|
+
if (Platform.isNode) {
|
|
162
|
+
userAgentHeaderName = "User-Agent";
|
|
163
|
+
}
|
|
164
|
+
return [userAgentHeaderName, constructUserAgent(pkgVersion.VERSION, getOsName(), getRuntime(), getRuntimeVersion())];
|
|
165
|
+
}
|
|
166
|
+
/** @private */
|
|
167
|
+
function constructUserAgent(version, os, runtime, runtimeVersion) {
|
|
168
|
+
// Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])
|
|
169
|
+
let userAgent = "Microsoft SignalR/";
|
|
170
|
+
const majorAndMinor = version.split(".");
|
|
171
|
+
userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;
|
|
172
|
+
userAgent += ` (${version}; `;
|
|
173
|
+
if (os && os !== "") {
|
|
174
|
+
userAgent += `${os}; `;
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
userAgent += "Unknown OS; ";
|
|
178
|
+
}
|
|
179
|
+
userAgent += `${runtime}`;
|
|
180
|
+
if (runtimeVersion) {
|
|
181
|
+
userAgent += `; ${runtimeVersion}`;
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
userAgent += "; Unknown Runtime Version";
|
|
185
|
+
}
|
|
186
|
+
userAgent += ")";
|
|
187
|
+
return userAgent;
|
|
188
|
+
}
|
|
189
|
+
// eslint-disable-next-line spaced-comment
|
|
190
|
+
function getOsName() {
|
|
191
|
+
if (Platform.isNode) {
|
|
192
|
+
switch (process.platform) {
|
|
193
|
+
case "win32":
|
|
194
|
+
return "Windows NT";
|
|
195
|
+
case "darwin":
|
|
196
|
+
return "macOS";
|
|
197
|
+
case "linux":
|
|
198
|
+
return "Linux";
|
|
199
|
+
default:
|
|
200
|
+
return process.platform;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
return "";
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// eslint-disable-next-line spaced-comment
|
|
208
|
+
function getRuntimeVersion() {
|
|
209
|
+
if (Platform.isNode) {
|
|
210
|
+
return process.versions.node;
|
|
211
|
+
}
|
|
212
|
+
return undefined;
|
|
213
|
+
}
|
|
214
|
+
function getRuntime() {
|
|
215
|
+
if (Platform.isNode) {
|
|
216
|
+
return "NodeJS";
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
return "Browser";
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/** @private */
|
|
223
|
+
function getErrorString(e) {
|
|
224
|
+
if (e.stack) {
|
|
225
|
+
return e.stack;
|
|
226
|
+
}
|
|
227
|
+
else if (e.message) {
|
|
228
|
+
return e.message;
|
|
229
|
+
}
|
|
230
|
+
return `${e}`;
|
|
231
|
+
}
|
|
232
|
+
/** @private */
|
|
233
|
+
function getGlobalThis() {
|
|
234
|
+
// globalThis is semi-new and not available in Node until v12
|
|
235
|
+
if (typeof globalThis !== "undefined") {
|
|
236
|
+
return globalThis;
|
|
237
|
+
}
|
|
238
|
+
if (typeof self !== "undefined") {
|
|
239
|
+
return self;
|
|
240
|
+
}
|
|
241
|
+
if (typeof window !== "undefined") {
|
|
242
|
+
return window;
|
|
243
|
+
}
|
|
244
|
+
if (typeof global !== "undefined") {
|
|
245
|
+
return global;
|
|
246
|
+
}
|
|
247
|
+
throw new Error("could not find global");
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
exports.VERSION = pkgVersion.VERSION;
|
|
251
|
+
exports.Arg = Arg;
|
|
252
|
+
exports.ConsoleLogger = ConsoleLogger;
|
|
253
|
+
exports.Platform = Platform;
|
|
254
|
+
exports.SubjectSubscription = SubjectSubscription;
|
|
255
|
+
exports.constructUserAgent = constructUserAgent;
|
|
256
|
+
exports.createLogger = createLogger;
|
|
257
|
+
exports.formatArrayBuffer = formatArrayBuffer;
|
|
258
|
+
exports.getDataDetail = getDataDetail;
|
|
259
|
+
exports.getErrorString = getErrorString;
|
|
260
|
+
exports.getGlobalThis = getGlobalThis;
|
|
261
|
+
exports.getUserAgentHeader = getUserAgentHeader;
|
|
262
|
+
exports.isArrayBuffer = isArrayBuffer;
|
|
263
|
+
exports.sendMessage = sendMessage;
|
|
264
|
+
//# sourceMappingURL=Utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Utils.js","sources":["../../../../../../../../node_modules/@microsoft/signalr/dist/esm/Utils.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 { NullLogger } from \"./Loggers\";\r\nimport { VERSION } from \"./pkg-version\";\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\nexport { VERSION };\r\n/** @private */\r\nexport class Arg {\r\n static isRequired(val, name) {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n static isNotEmpty(val, name) {\r\n if (!val || val.match(/^\\s*$/)) {\r\n throw new Error(`The '${name}' argument should not be empty.`);\r\n }\r\n }\r\n static isIn(val, values, name) {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class Platform {\r\n // react-native has a window but no document so we should check both\r\n static get isBrowser() {\r\n return !Platform.isNode && typeof window === \"object\" && typeof window.document === \"object\";\r\n }\r\n // WebWorkers don't have a window object so the isBrowser check would fail\r\n static get isWebWorker() {\r\n return !Platform.isNode && typeof self === \"object\" && \"importScripts\" in self;\r\n }\r\n // react-native has a window but no document\r\n static get isReactNative() {\r\n return !Platform.isNode && typeof window === \"object\" && typeof window.document === \"undefined\";\r\n }\r\n // Node apps shouldn't have a window object, but WebWorkers don't either\r\n // so we need to check for both WebWorker and window\r\n static get isNode() {\r\n return typeof process !== \"undefined\" && process.release && process.release.name === \"node\";\r\n }\r\n}\r\n/** @private */\r\nexport function getDataDetail(data, includeContent) {\r\n let detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n }\r\n else if (typeof data === \"string\") {\r\n detail = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n detail += `. Content: '${data}'`;\r\n }\r\n }\r\n return detail;\r\n}\r\n/** @private */\r\nexport function formatArrayBuffer(data) {\r\n const view = new Uint8Array(data);\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n // Trim of trailing space.\r\n return str.substring(0, str.length - 1);\r\n}\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val) {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n/** @private */\r\nexport async function sendMessage(logger, transportName, httpClient, url, content, options) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent)}.`);\r\n const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers: { ...headers, ...options.headers },\r\n responseType,\r\n timeout: options.timeout,\r\n withCredentials: options.withCredentials,\r\n });\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n/** @private */\r\nexport function createLogger(logger) {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n if (logger.log !== undefined) {\r\n return logger;\r\n }\r\n return new ConsoleLogger(logger);\r\n}\r\n/** @private */\r\nexport class SubjectSubscription {\r\n constructor(subject, observer) {\r\n this._subject = subject;\r\n this._observer = observer;\r\n }\r\n dispose() {\r\n const index = this._subject.observers.indexOf(this._observer);\r\n if (index > -1) {\r\n this._subject.observers.splice(index, 1);\r\n }\r\n if (this._subject.observers.length === 0 && this._subject.cancelCallback) {\r\n this._subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class ConsoleLogger {\r\n constructor(minimumLogLevel) {\r\n this._minLevel = minimumLogLevel;\r\n this.out = console;\r\n }\r\n log(logLevel, message) {\r\n if (logLevel >= this._minLevel) {\r\n const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n this.out.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n this.out.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n this.out.info(msg);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n this.out.log(msg);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport function getUserAgentHeader() {\r\n let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n if (Platform.isNode) {\r\n userAgentHeaderName = \"User-Agent\";\r\n }\r\n return [userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion())];\r\n}\r\n/** @private */\r\nexport function constructUserAgent(version, os, runtime, runtimeVersion) {\r\n // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n let userAgent = \"Microsoft SignalR/\";\r\n const majorAndMinor = version.split(\".\");\r\n userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n userAgent += ` (${version}; `;\r\n if (os && os !== \"\") {\r\n userAgent += `${os}; `;\r\n }\r\n else {\r\n userAgent += \"Unknown OS; \";\r\n }\r\n userAgent += `${runtime}`;\r\n if (runtimeVersion) {\r\n userAgent += `; ${runtimeVersion}`;\r\n }\r\n else {\r\n userAgent += \"; Unknown Runtime Version\";\r\n }\r\n userAgent += \")\";\r\n return userAgent;\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getOsName() {\r\n if (Platform.isNode) {\r\n switch (process.platform) {\r\n case \"win32\":\r\n return \"Windows NT\";\r\n case \"darwin\":\r\n return \"macOS\";\r\n case \"linux\":\r\n return \"Linux\";\r\n default:\r\n return process.platform;\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getRuntimeVersion() {\r\n if (Platform.isNode) {\r\n return process.versions.node;\r\n }\r\n return undefined;\r\n}\r\nfunction getRuntime() {\r\n if (Platform.isNode) {\r\n return \"NodeJS\";\r\n }\r\n else {\r\n return \"Browser\";\r\n }\r\n}\r\n/** @private */\r\nexport function getErrorString(e) {\r\n if (e.stack) {\r\n return e.stack;\r\n }\r\n else if (e.message) {\r\n return e.message;\r\n }\r\n return `${e}`;\r\n}\r\n/** @private */\r\nexport function getGlobalThis() {\r\n // globalThis is semi-new and not available in Node until v12\r\n if (typeof globalThis !== \"undefined\") {\r\n return globalThis;\r\n }\r\n if (typeof self !== \"undefined\") {\r\n return self;\r\n }\r\n if (typeof window !== \"undefined\") {\r\n return window;\r\n }\r\n if (typeof global !== \"undefined\") {\r\n return global;\r\n }\r\n throw new Error(\"could not find global\");\r\n}\r\n//# sourceMappingURL=Utils.js.map"],"names":["LogLevel","NullLogger","VERSION"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var HeaderNames = require('./HeaderNames.js');
|
|
4
|
+
var ILogger = require('./ILogger.js');
|
|
5
|
+
var ITransport = require('./ITransport.js');
|
|
6
|
+
var Utils = require('./Utils.js');
|
|
7
|
+
|
|
8
|
+
// Licensed to the .NET Foundation under one or more agreements.
|
|
9
|
+
// The .NET Foundation licenses this file to you under the MIT license.
|
|
10
|
+
/** @private */
|
|
11
|
+
class WebSocketTransport {
|
|
12
|
+
constructor(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor, headers) {
|
|
13
|
+
this._logger = logger;
|
|
14
|
+
this._accessTokenFactory = accessTokenFactory;
|
|
15
|
+
this._logMessageContent = logMessageContent;
|
|
16
|
+
this._webSocketConstructor = webSocketConstructor;
|
|
17
|
+
this._httpClient = httpClient;
|
|
18
|
+
this.onreceive = null;
|
|
19
|
+
this.onclose = null;
|
|
20
|
+
this._headers = headers;
|
|
21
|
+
}
|
|
22
|
+
async connect(url, transferFormat) {
|
|
23
|
+
Utils.Arg.isRequired(url, "url");
|
|
24
|
+
Utils.Arg.isRequired(transferFormat, "transferFormat");
|
|
25
|
+
Utils.Arg.isIn(transferFormat, ITransport.TransferFormat, "transferFormat");
|
|
26
|
+
this._logger.log(ILogger.LogLevel.Trace, "(WebSockets transport) Connecting.");
|
|
27
|
+
let token;
|
|
28
|
+
if (this._accessTokenFactory) {
|
|
29
|
+
token = await this._accessTokenFactory();
|
|
30
|
+
}
|
|
31
|
+
return new Promise((resolve, reject) => {
|
|
32
|
+
url = url.replace(/^http/, "ws");
|
|
33
|
+
let webSocket;
|
|
34
|
+
const cookies = this._httpClient.getCookieString(url);
|
|
35
|
+
let opened = false;
|
|
36
|
+
if (Utils.Platform.isNode || Utils.Platform.isReactNative) {
|
|
37
|
+
const headers = {};
|
|
38
|
+
const [name, value] = Utils.getUserAgentHeader();
|
|
39
|
+
headers[name] = value;
|
|
40
|
+
if (token) {
|
|
41
|
+
headers[HeaderNames.HeaderNames.Authorization] = `Bearer ${token}`;
|
|
42
|
+
}
|
|
43
|
+
if (cookies) {
|
|
44
|
+
headers[HeaderNames.HeaderNames.Cookie] = cookies;
|
|
45
|
+
}
|
|
46
|
+
// Only pass headers when in non-browser environments
|
|
47
|
+
webSocket = new this._webSocketConstructor(url, undefined, {
|
|
48
|
+
headers: { ...headers, ...this._headers },
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
if (token) {
|
|
53
|
+
url += (url.indexOf("?") < 0 ? "?" : "&") + `access_token=${encodeURIComponent(token)}`;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (!webSocket) {
|
|
57
|
+
// Chrome is not happy with passing 'undefined' as protocol
|
|
58
|
+
webSocket = new this._webSocketConstructor(url);
|
|
59
|
+
}
|
|
60
|
+
if (transferFormat === ITransport.TransferFormat.Binary) {
|
|
61
|
+
webSocket.binaryType = "arraybuffer";
|
|
62
|
+
}
|
|
63
|
+
webSocket.onopen = (_event) => {
|
|
64
|
+
this._logger.log(ILogger.LogLevel.Information, `WebSocket connected to ${url}.`);
|
|
65
|
+
this._webSocket = webSocket;
|
|
66
|
+
opened = true;
|
|
67
|
+
resolve();
|
|
68
|
+
};
|
|
69
|
+
webSocket.onerror = (event) => {
|
|
70
|
+
let error = null;
|
|
71
|
+
// ErrorEvent is a browser only type we need to check if the type exists before using it
|
|
72
|
+
if (typeof ErrorEvent !== "undefined" && event instanceof ErrorEvent) {
|
|
73
|
+
error = event.error;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
error = "There was an error with the transport";
|
|
77
|
+
}
|
|
78
|
+
this._logger.log(ILogger.LogLevel.Information, `(WebSockets transport) ${error}.`);
|
|
79
|
+
};
|
|
80
|
+
webSocket.onmessage = (message) => {
|
|
81
|
+
this._logger.log(ILogger.LogLevel.Trace, `(WebSockets transport) data received. ${Utils.getDataDetail(message.data, this._logMessageContent)}.`);
|
|
82
|
+
if (this.onreceive) {
|
|
83
|
+
try {
|
|
84
|
+
this.onreceive(message.data);
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
this._close(error);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
webSocket.onclose = (event) => {
|
|
93
|
+
// Don't call close handler if connection was never established
|
|
94
|
+
// We'll reject the connect call instead
|
|
95
|
+
if (opened) {
|
|
96
|
+
this._close(event);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
let error = null;
|
|
100
|
+
// ErrorEvent is a browser only type we need to check if the type exists before using it
|
|
101
|
+
if (typeof ErrorEvent !== "undefined" && event instanceof ErrorEvent) {
|
|
102
|
+
error = event.error;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
error = "WebSocket failed to connect. The connection could not be found on the server,"
|
|
106
|
+
+ " either the endpoint may not be a SignalR endpoint,"
|
|
107
|
+
+ " the connection ID is not present on the server, or there is a proxy blocking WebSockets."
|
|
108
|
+
+ " If you have multiple servers check that sticky sessions are enabled.";
|
|
109
|
+
}
|
|
110
|
+
reject(new Error(error));
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
send(data) {
|
|
116
|
+
if (this._webSocket && this._webSocket.readyState === this._webSocketConstructor.OPEN) {
|
|
117
|
+
this._logger.log(ILogger.LogLevel.Trace, `(WebSockets transport) sending data. ${Utils.getDataDetail(data, this._logMessageContent)}.`);
|
|
118
|
+
this._webSocket.send(data);
|
|
119
|
+
return Promise.resolve();
|
|
120
|
+
}
|
|
121
|
+
return Promise.reject("WebSocket is not in the OPEN state");
|
|
122
|
+
}
|
|
123
|
+
stop() {
|
|
124
|
+
if (this._webSocket) {
|
|
125
|
+
// Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning
|
|
126
|
+
// This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects
|
|
127
|
+
this._close(undefined);
|
|
128
|
+
}
|
|
129
|
+
return Promise.resolve();
|
|
130
|
+
}
|
|
131
|
+
_close(event) {
|
|
132
|
+
// webSocket will be null if the transport did not start successfully
|
|
133
|
+
if (this._webSocket) {
|
|
134
|
+
// Clear websocket handlers because we are considering the socket closed now
|
|
135
|
+
this._webSocket.onclose = () => { };
|
|
136
|
+
this._webSocket.onmessage = () => { };
|
|
137
|
+
this._webSocket.onerror = () => { };
|
|
138
|
+
this._webSocket.close();
|
|
139
|
+
this._webSocket = undefined;
|
|
140
|
+
}
|
|
141
|
+
this._logger.log(ILogger.LogLevel.Trace, "(WebSockets transport) socket closed.");
|
|
142
|
+
if (this.onclose) {
|
|
143
|
+
if (this._isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) {
|
|
144
|
+
this.onclose(new Error(`WebSocket closed with status code: ${event.code} (${event.reason || "no reason given"}).`));
|
|
145
|
+
}
|
|
146
|
+
else if (event instanceof Error) {
|
|
147
|
+
this.onclose(event);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
this.onclose();
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
_isCloseEvent(event) {
|
|
155
|
+
return event && typeof event.wasClean === "boolean" && typeof event.code === "number";
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
exports.WebSocketTransport = WebSocketTransport;
|
|
160
|
+
//# sourceMappingURL=WebSocketTransport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebSocketTransport.js","sources":["../../../../../../../../node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.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 { HeaderNames } from \"./HeaderNames\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform } from \"./Utils\";\r\n/** @private */\r\nexport class WebSocketTransport {\r\n constructor(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor, headers) {\r\n this._logger = logger;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logMessageContent = logMessageContent;\r\n this._webSocketConstructor = webSocketConstructor;\r\n this._httpClient = httpClient;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n this._headers = headers;\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, \"(WebSockets transport) Connecting.\");\r\n let token;\r\n if (this._accessTokenFactory) {\r\n token = await this._accessTokenFactory();\r\n }\r\n return new Promise((resolve, reject) => {\r\n url = url.replace(/^http/, \"ws\");\r\n let webSocket;\r\n const cookies = this._httpClient.getCookieString(url);\r\n let opened = false;\r\n if (Platform.isNode || Platform.isReactNative) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n if (token) {\r\n headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n }\r\n if (cookies) {\r\n headers[HeaderNames.Cookie] = cookies;\r\n }\r\n // Only pass headers when in non-browser environments\r\n webSocket = new this._webSocketConstructor(url, undefined, {\r\n headers: { ...headers, ...this._headers },\r\n });\r\n }\r\n else {\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n }\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new this._webSocketConstructor(url);\r\n }\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n webSocket.onopen = (_event) => {\r\n this._logger.log(LogLevel.Information, `WebSocket connected to ${url}.`);\r\n this._webSocket = webSocket;\r\n opened = true;\r\n resolve();\r\n };\r\n webSocket.onerror = (event) => {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"There was an error with the transport\";\r\n }\r\n this._logger.log(LogLevel.Information, `(WebSockets transport) ${error}.`);\r\n };\r\n webSocket.onmessage = (message) => {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) data received. ${getDataDetail(message.data, this._logMessageContent)}.`);\r\n if (this.onreceive) {\r\n try {\r\n this.onreceive(message.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n webSocket.onclose = (event) => {\r\n // Don't call close handler if connection was never established\r\n // We'll reject the connect call instead\r\n if (opened) {\r\n this._close(event);\r\n }\r\n else {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"WebSocket failed to connect. The connection could not be found on the server,\"\r\n + \" either the endpoint may not be a SignalR endpoint,\"\r\n + \" the connection ID is not present on the server, or there is a proxy blocking WebSockets.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\";\r\n }\r\n reject(new Error(error));\r\n }\r\n };\r\n });\r\n }\r\n send(data) {\r\n if (this._webSocket && this._webSocket.readyState === this._webSocketConstructor.OPEN) {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) sending data. ${getDataDetail(data, this._logMessageContent)}.`);\r\n this._webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n }\r\n stop() {\r\n if (this._webSocket) {\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this._close(undefined);\r\n }\r\n return Promise.resolve();\r\n }\r\n _close(event) {\r\n // webSocket will be null if the transport did not start successfully\r\n if (this._webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this._webSocket.onclose = () => { };\r\n this._webSocket.onmessage = () => { };\r\n this._webSocket.onerror = () => { };\r\n this._webSocket.close();\r\n this._webSocket = undefined;\r\n }\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (this._isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(`WebSocket closed with status code: ${event.code} (${event.reason || \"no reason given\"}).`));\r\n }\r\n else if (event instanceof Error) {\r\n this.onclose(event);\r\n }\r\n else {\r\n this.onclose();\r\n }\r\n }\r\n }\r\n _isCloseEvent(event) {\r\n return event && typeof event.wasClean === \"boolean\" && typeof event.code === \"number\";\r\n }\r\n}\r\n//# sourceMappingURL=WebSocketTransport.js.map"],"names":["Arg","TransferFormat","LogLevel","Platform","getUserAgentHeader","HeaderNames","getDataDetail"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var Errors = require('./Errors.js');
|
|
4
|
+
var HttpClient = require('./HttpClient.js');
|
|
5
|
+
var ILogger = require('./ILogger.js');
|
|
6
|
+
var Utils = require('./Utils.js');
|
|
7
|
+
|
|
8
|
+
// Licensed to the .NET Foundation under one or more agreements.
|
|
9
|
+
// The .NET Foundation licenses this file to you under the MIT license.
|
|
10
|
+
class XhrHttpClient extends HttpClient.HttpClient {
|
|
11
|
+
constructor(logger) {
|
|
12
|
+
super();
|
|
13
|
+
this._logger = logger;
|
|
14
|
+
}
|
|
15
|
+
/** @inheritDoc */
|
|
16
|
+
send(request) {
|
|
17
|
+
// Check that abort was not signaled before calling send
|
|
18
|
+
if (request.abortSignal && request.abortSignal.aborted) {
|
|
19
|
+
return Promise.reject(new Errors.AbortError());
|
|
20
|
+
}
|
|
21
|
+
if (!request.method) {
|
|
22
|
+
return Promise.reject(new Error("No method defined."));
|
|
23
|
+
}
|
|
24
|
+
if (!request.url) {
|
|
25
|
+
return Promise.reject(new Error("No url defined."));
|
|
26
|
+
}
|
|
27
|
+
return new Promise((resolve, reject) => {
|
|
28
|
+
const xhr = new XMLHttpRequest();
|
|
29
|
+
xhr.open(request.method, request.url, true);
|
|
30
|
+
xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials;
|
|
31
|
+
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
|
|
32
|
+
if (request.content === "") {
|
|
33
|
+
request.content = undefined;
|
|
34
|
+
}
|
|
35
|
+
if (request.content) {
|
|
36
|
+
// Explicitly setting the Content-Type header for React Native on Android platform.
|
|
37
|
+
if (Utils.isArrayBuffer(request.content)) {
|
|
38
|
+
xhr.setRequestHeader("Content-Type", "application/octet-stream");
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
xhr.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const headers = request.headers;
|
|
45
|
+
if (headers) {
|
|
46
|
+
Object.keys(headers)
|
|
47
|
+
.forEach((header) => {
|
|
48
|
+
xhr.setRequestHeader(header, headers[header]);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
if (request.responseType) {
|
|
52
|
+
xhr.responseType = request.responseType;
|
|
53
|
+
}
|
|
54
|
+
if (request.abortSignal) {
|
|
55
|
+
request.abortSignal.onabort = () => {
|
|
56
|
+
xhr.abort();
|
|
57
|
+
reject(new Errors.AbortError());
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
if (request.timeout) {
|
|
61
|
+
xhr.timeout = request.timeout;
|
|
62
|
+
}
|
|
63
|
+
xhr.onload = () => {
|
|
64
|
+
if (request.abortSignal) {
|
|
65
|
+
request.abortSignal.onabort = null;
|
|
66
|
+
}
|
|
67
|
+
if (xhr.status >= 200 && xhr.status < 300) {
|
|
68
|
+
resolve(new HttpClient.HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
reject(new Errors.HttpError(xhr.response || xhr.responseText || xhr.statusText, xhr.status));
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
xhr.onerror = () => {
|
|
75
|
+
this._logger.log(ILogger.LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}.`);
|
|
76
|
+
reject(new Errors.HttpError(xhr.statusText, xhr.status));
|
|
77
|
+
};
|
|
78
|
+
xhr.ontimeout = () => {
|
|
79
|
+
this._logger.log(ILogger.LogLevel.Warning, `Timeout from HTTP request.`);
|
|
80
|
+
reject(new Errors.TimeoutError());
|
|
81
|
+
};
|
|
82
|
+
xhr.send(request.content);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
exports.XhrHttpClient = XhrHttpClient;
|
|
88
|
+
//# sourceMappingURL=XhrHttpClient.js.map
|