com.beamable 5.1.0-PREVIEW.RC5 → 5.1.0-PREVIEW.RC6

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/.attestation.p7m CHANGED
Binary file
@@ -86,7 +86,6 @@ namespace Beamable.Editor.BeamCli
86
86
  public BeamCommandFactory processFactory;
87
87
  public BeamCommands processCommands;
88
88
  public BeamableDispatcher dispatcher;
89
- public HttpClient localClient;
90
89
 
91
90
  private readonly BeamWebCliCommandHistory _history;
92
91
  private readonly BeamWebCommandFactoryOptions _options;
@@ -105,9 +104,6 @@ namespace Beamable.Editor.BeamCli
105
104
  processFactory = new BeamCommandFactory(dispatcher);
106
105
  processCommands = new BeamCommands(processFactory, beamCli);
107
106
  _options.port = _options.startPortOverride.GetOrElse(8432);
108
- // Shared across all BeamWebCommand instances; per-call HttpClient
109
- // churns TCP connections and amplifies Mono's transport flakiness.
110
- localClient = new HttpClient { Timeout = TimeSpan.FromDays(7) };
111
107
 
112
108
  dispatcher.Run("cli-server-discovery", ServerDiscoveryLoop());
113
109
  }
@@ -150,13 +146,6 @@ namespace Beamable.Editor.BeamCli
150
146
  $"Server invalidated: {cause.GetType().Name}: {cause.Message}");
151
147
 
152
148
  KillServer();
153
- // Mono's HttpClient pool can hold half-closed sockets pointing
154
- // at the dead server; swap in a fresh client so the next
155
- // command opens a clean connection. Don't dispose the old one
156
- // — in-flight requests still reference it and disposing would
157
- // throw ObjectDisposedException, re-triggering invalidation in
158
- // a thundering herd. GC will collect it once requests drain.
159
- localClient = new HttpClient { Timeout = TimeSpan.FromDays(7) };
160
149
  port = _options.startPortOverride.GetOrElse(8432);
161
150
  discoveryRequest++;
162
151
  });
@@ -389,6 +378,7 @@ namespace Beamable.Editor.BeamCli
389
378
  private BeamWebCommandFactory _factory;
390
379
  private CancellationTokenSource _cts;
391
380
  private BeamWebCliCommandHistory _history;
381
+ private Promise _runPromise;
392
382
 
393
383
  public BeamWebCommand(BeamWebCommandFactory factory, BeamWebCliCommandHistory history)
394
384
  {
@@ -406,7 +396,13 @@ namespace Beamable.Editor.BeamCli
406
396
  _history.UpdateCommand(id, commandString);
407
397
  }
408
398
 
409
- public async Promise Run()
399
+ public Promise Run()
400
+ {
401
+ _runPromise = RunImpl();
402
+ return _runPromise;
403
+ }
404
+
405
+ private async Promise RunImpl()
410
406
  {
411
407
  _history.UpdateResolvingHostTime(id);
412
408
 
@@ -424,7 +420,13 @@ namespace Beamable.Editor.BeamCli
424
420
 
425
421
  try
426
422
  {
427
- var sendTask = _factory.localClient.SendAsync(req, HttpCompletionOption.ResponseHeadersRead, _cts.Token);
423
+ // Per-call HttpClient. We tried sharing one on the factory but
424
+ // pooled connections to the localhost CLI server went bad on
425
+ // Windows (login would surface as TaskCanceledException from a
426
+ // poisoned half-closed socket); a fresh client per command
427
+ // avoids that.
428
+ using var client = new HttpClient { Timeout = TimeSpan.FromDays(7) };
429
+ var sendTask = client.SendAsync(req, HttpCompletionOption.ResponseHeadersRead, _cts.Token);
428
430
  _history.AddCustomLog(id, "[Unity] sent request...");
429
431
 
430
432
  using HttpResponseMessage response = await sendTask;
@@ -484,11 +486,6 @@ namespace Beamable.Editor.BeamCli
484
486
  }
485
487
 
486
488
  }
487
- catch (OperationCanceledException) when (_cts.IsCancellationRequested)
488
- {
489
- // Caller invoked Cancel(); exit quietly.
490
- _history.AddCustomLog(id, "[Unity] cancelled by caller");
491
- }
492
489
  catch (Exception ex) when (
493
490
  (IsTransportFailure(ex) || ex is OperationCanceledException)
494
491
  && !_cts.IsCancellationRequested)
@@ -518,6 +515,10 @@ namespace Beamable.Editor.BeamCli
518
515
  public void Cancel()
519
516
  {
520
517
  if (_cts.IsCancellationRequested) return; // no-op
518
+ // Mark the run's promise as observed so the cancellation
519
+ // exception we're about to trigger isn't logged as an
520
+ // UncaughtPromiseException. Awaiters still see the throw.
521
+ _runPromise?.Error(_ => { });
521
522
  _cts.Cancel();
522
523
  }
523
524
 
@@ -26,7 +26,7 @@ namespace Beamable.Editor.BeamCli.Commands
26
26
  public int mountGroupOrder;
27
27
  /// <summary>Specify the order of the mount label</summary>
28
28
  public int mountLabelOrder;
29
- /// <summary>UI framework template to scaffold the extension with. Allowed values: svelte, react</summary>
29
+ /// <summary>UI framework template to scaffold the extension with. Allowed values: react</summary>
30
30
  public string template;
31
31
  /// <summary>Serializes the arguments for command line usage.</summary>
32
32
  public virtual string Serialize()
@@ -14,9 +14,9 @@ MonoBehaviour:
14
14
  m_EditorClassIdentifier:
15
15
  _tags:
16
16
  - base
17
- _serializedValidationGUID: 00000000-0000-0000-0000-000000000003
17
+ _serializedValidationGUID: 00000000-0000-0000-0000-000000000008
18
18
  icon:
19
- m_AssetGUID: ddded4a9a76c8ff439eab5570826ad89
19
+ m_AssetGUID: 819869afaafce0144b1fba88a5e4b040
20
20
  m_SubObjectName:
21
21
  m_SubObjectType:
22
22
  m_EditorAssetChanged: 0
@@ -14,7 +14,7 @@ MonoBehaviour:
14
14
  m_EditorClassIdentifier:
15
15
  _tags:
16
16
  - base
17
- _serializedValidationGUID: 00000000-0000-0000-0000-000000000003
17
+ _serializedValidationGUID: 00000000-0000-0000-0000-000000000009
18
18
  icon:
19
19
  m_AssetGUID: ddded4a9a76c8ff439eab5570826ad89
20
20
  m_SubObjectName:
@@ -11,6 +11,8 @@ namespace Beamable.Editor.Util
11
11
 
12
12
  var logoRect = GUILayoutUtility.GetRect(GUIContent.none, GUIStyle.none, GUILayout.Height(50),
13
13
  GUILayout.ExpandWidth(true));
14
+ if (!logo) return;
15
+
14
16
  var logoAspect = logo.width / (float) logo.height;
15
17
  var shadowWidth = logoAspect * logoRect.height;
16
18
 
@@ -5,5 +5,5 @@
5
5
  "beamMongoExpressUrl": "https://storage.beamable.com",
6
6
  "dockerRegistryUrl": "https://microservices.beamable.com/v2/",
7
7
  "isUnityVsp": "false",
8
- "sdkVersion": "5.1.0-PREVIEW.RC5"
8
+ "sdkVersion": "5.1.0-PREVIEW.RC6"
9
9
  }
Binary file
@@ -0,0 +1,135 @@
1
+ fileFormatVersion: 2
2
+ guid: 819869afaafce0144b1fba88a5e4b040
3
+ TextureImporter:
4
+ internalIDToNameTable: []
5
+ externalObjects: {}
6
+ serializedVersion: 12
7
+ mipmaps:
8
+ mipMapMode: 0
9
+ enableMipMap: 1
10
+ sRGBTexture: 1
11
+ linearTexture: 0
12
+ fadeOut: 0
13
+ borderMipMap: 0
14
+ mipMapsPreserveCoverage: 0
15
+ alphaTestReferenceValue: 0.5
16
+ mipMapFadeDistanceStart: 1
17
+ mipMapFadeDistanceEnd: 3
18
+ bumpmap:
19
+ convertToNormalMap: 0
20
+ externalNormalMap: 0
21
+ heightScale: 0.25
22
+ normalMapFilter: 0
23
+ isReadable: 0
24
+ streamingMipmaps: 0
25
+ streamingMipmapsPriority: 0
26
+ vTOnly: 0
27
+ ignoreMasterTextureLimit: 0
28
+ grayScaleToAlpha: 0
29
+ generateCubemap: 6
30
+ cubemapConvolution: 0
31
+ seamlessCubemap: 0
32
+ textureFormat: 1
33
+ maxTextureSize: 2048
34
+ textureSettings:
35
+ serializedVersion: 2
36
+ filterMode: 1
37
+ aniso: 1
38
+ mipBias: 0
39
+ wrapU: 1
40
+ wrapV: 1
41
+ wrapW: 1
42
+ nPOTScale: 0
43
+ lightmap: 0
44
+ compressionQuality: 50
45
+ spriteMode: 1
46
+ spriteExtrude: 1
47
+ spriteMeshType: 1
48
+ alignment: 0
49
+ spritePivot: {x: 0.5, y: 0.5}
50
+ spritePixelsToUnits: 100
51
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
52
+ spriteGenerateFallbackPhysicsShape: 1
53
+ alphaUsage: 1
54
+ alphaIsTransparency: 1
55
+ spriteTessellationDetail: -1
56
+ textureType: 8
57
+ textureShape: 1
58
+ singleChannelComponent: 0
59
+ flipbookRows: 1
60
+ flipbookColumns: 1
61
+ maxTextureSizeSet: 0
62
+ compressionQualitySet: 0
63
+ textureFormatSet: 0
64
+ ignorePngGamma: 0
65
+ applyGammaDecoding: 0
66
+ cookieLightType: 0
67
+ platformSettings:
68
+ - serializedVersion: 3
69
+ buildTarget: DefaultTexturePlatform
70
+ maxTextureSize: 2048
71
+ resizeAlgorithm: 0
72
+ textureFormat: -1
73
+ textureCompression: 1
74
+ compressionQuality: 50
75
+ crunchedCompression: 0
76
+ allowsAlphaSplitting: 0
77
+ overridden: 0
78
+ androidETC2FallbackOverride: 0
79
+ forceMaximumCompressionQuality_BC6H_BC7: 0
80
+ - serializedVersion: 3
81
+ buildTarget: Standalone
82
+ maxTextureSize: 2048
83
+ resizeAlgorithm: 0
84
+ textureFormat: -1
85
+ textureCompression: 1
86
+ compressionQuality: 50
87
+ crunchedCompression: 0
88
+ allowsAlphaSplitting: 0
89
+ overridden: 0
90
+ androidETC2FallbackOverride: 0
91
+ forceMaximumCompressionQuality_BC6H_BC7: 0
92
+ - serializedVersion: 3
93
+ buildTarget: Server
94
+ maxTextureSize: 2048
95
+ resizeAlgorithm: 0
96
+ textureFormat: -1
97
+ textureCompression: 1
98
+ compressionQuality: 50
99
+ crunchedCompression: 0
100
+ allowsAlphaSplitting: 0
101
+ overridden: 0
102
+ androidETC2FallbackOverride: 0
103
+ forceMaximumCompressionQuality_BC6H_BC7: 0
104
+ - serializedVersion: 3
105
+ buildTarget: Android
106
+ maxTextureSize: 2048
107
+ resizeAlgorithm: 0
108
+ textureFormat: -1
109
+ textureCompression: 1
110
+ compressionQuality: 50
111
+ crunchedCompression: 0
112
+ allowsAlphaSplitting: 0
113
+ overridden: 0
114
+ androidETC2FallbackOverride: 0
115
+ forceMaximumCompressionQuality_BC6H_BC7: 0
116
+ spriteSheet:
117
+ serializedVersion: 2
118
+ sprites: []
119
+ outline: []
120
+ physicsShape: []
121
+ bones: []
122
+ spriteID: 5e97eb03825dee720800000000000000
123
+ internalID: 0
124
+ vertices: []
125
+ indices:
126
+ edges: []
127
+ weights: []
128
+ secondaryTextures: []
129
+ nameFileIdTable: {}
130
+ spritePackingTag:
131
+ pSDRemoveMatte: 0
132
+ pSDShowRemoveMatteOption: 0
133
+ userData:
134
+ assetBundleName:
135
+ assetBundleVariant:
Binary file
@@ -0,0 +1,135 @@
1
+ fileFormatVersion: 2
2
+ guid: ddded4a9a76c8ff439eab5570826ad89
3
+ TextureImporter:
4
+ internalIDToNameTable: []
5
+ externalObjects: {}
6
+ serializedVersion: 12
7
+ mipmaps:
8
+ mipMapMode: 0
9
+ enableMipMap: 1
10
+ sRGBTexture: 1
11
+ linearTexture: 0
12
+ fadeOut: 0
13
+ borderMipMap: 0
14
+ mipMapsPreserveCoverage: 0
15
+ alphaTestReferenceValue: 0.5
16
+ mipMapFadeDistanceStart: 1
17
+ mipMapFadeDistanceEnd: 3
18
+ bumpmap:
19
+ convertToNormalMap: 0
20
+ externalNormalMap: 0
21
+ heightScale: 0.25
22
+ normalMapFilter: 0
23
+ isReadable: 0
24
+ streamingMipmaps: 0
25
+ streamingMipmapsPriority: 0
26
+ vTOnly: 0
27
+ ignoreMasterTextureLimit: 0
28
+ grayScaleToAlpha: 0
29
+ generateCubemap: 6
30
+ cubemapConvolution: 0
31
+ seamlessCubemap: 0
32
+ textureFormat: 1
33
+ maxTextureSize: 2048
34
+ textureSettings:
35
+ serializedVersion: 2
36
+ filterMode: 1
37
+ aniso: 1
38
+ mipBias: 0
39
+ wrapU: 1
40
+ wrapV: 1
41
+ wrapW: 0
42
+ nPOTScale: 0
43
+ lightmap: 0
44
+ compressionQuality: 50
45
+ spriteMode: 1
46
+ spriteExtrude: 1
47
+ spriteMeshType: 1
48
+ alignment: 0
49
+ spritePivot: {x: 0.5, y: 0.5}
50
+ spritePixelsToUnits: 100
51
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
52
+ spriteGenerateFallbackPhysicsShape: 1
53
+ alphaUsage: 1
54
+ alphaIsTransparency: 1
55
+ spriteTessellationDetail: -1
56
+ textureType: 8
57
+ textureShape: 1
58
+ singleChannelComponent: 0
59
+ flipbookRows: 1
60
+ flipbookColumns: 1
61
+ maxTextureSizeSet: 0
62
+ compressionQualitySet: 0
63
+ textureFormatSet: 0
64
+ ignorePngGamma: 0
65
+ applyGammaDecoding: 1
66
+ cookieLightType: 1
67
+ platformSettings:
68
+ - serializedVersion: 3
69
+ buildTarget: DefaultTexturePlatform
70
+ maxTextureSize: 2048
71
+ resizeAlgorithm: 0
72
+ textureFormat: -1
73
+ textureCompression: 1
74
+ compressionQuality: 50
75
+ crunchedCompression: 0
76
+ allowsAlphaSplitting: 0
77
+ overridden: 0
78
+ androidETC2FallbackOverride: 0
79
+ forceMaximumCompressionQuality_BC6H_BC7: 0
80
+ - serializedVersion: 3
81
+ buildTarget: Standalone
82
+ maxTextureSize: 2048
83
+ resizeAlgorithm: 0
84
+ textureFormat: -1
85
+ textureCompression: 1
86
+ compressionQuality: 50
87
+ crunchedCompression: 0
88
+ allowsAlphaSplitting: 0
89
+ overridden: 0
90
+ androidETC2FallbackOverride: 0
91
+ forceMaximumCompressionQuality_BC6H_BC7: 0
92
+ - serializedVersion: 3
93
+ buildTarget: Server
94
+ maxTextureSize: 2048
95
+ resizeAlgorithm: 0
96
+ textureFormat: -1
97
+ textureCompression: 1
98
+ compressionQuality: 50
99
+ crunchedCompression: 0
100
+ allowsAlphaSplitting: 0
101
+ overridden: 0
102
+ androidETC2FallbackOverride: 0
103
+ forceMaximumCompressionQuality_BC6H_BC7: 0
104
+ - serializedVersion: 3
105
+ buildTarget: Android
106
+ maxTextureSize: 2048
107
+ resizeAlgorithm: 0
108
+ textureFormat: -1
109
+ textureCompression: 1
110
+ compressionQuality: 50
111
+ crunchedCompression: 0
112
+ allowsAlphaSplitting: 0
113
+ overridden: 0
114
+ androidETC2FallbackOverride: 0
115
+ forceMaximumCompressionQuality_BC6H_BC7: 0
116
+ spriteSheet:
117
+ serializedVersion: 2
118
+ sprites: []
119
+ outline: []
120
+ physicsShape: []
121
+ bones: []
122
+ spriteID: e3d51a0820e474fad8a4034eef1a5807
123
+ internalID: 0
124
+ vertices: []
125
+ indices:
126
+ edges: []
127
+ weights: []
128
+ secondaryTextures: []
129
+ nameFileIdTable: {}
130
+ spritePackingTag:
131
+ pSDRemoveMatte: 0
132
+ pSDShowRemoveMatteOption: 0
133
+ userData:
134
+ assetBundleName:
135
+ assetBundleVariant:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "com.beamable",
3
- "version": "5.1.0-PREVIEW.RC5",
3
+ "version": "5.1.0-PREVIEW.RC6",
4
4
  "displayName": "Beamable",
5
5
  "description": "A better way to build games in Unity\n",
6
6
  "unity": "2021.3",