@scrypted/server 0.122.0 → 0.123.1

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/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@scrypted/server",
3
- "version": "0.122.0",
3
+ "version": "0.123.1",
4
4
  "description": "",
5
5
  "dependencies": {
6
- "@scrypted/ffmpeg-static": "^6.1.0-build1",
6
+ "@scrypted/ffmpeg-static": "^6.1.0-build3",
7
7
  "@scrypted/node-pty": "^1.0.18",
8
- "@scrypted/types": "^0.3.63",
8
+ "@scrypted/types": "^0.3.64",
9
9
  "adm-zip": "^0.5.16",
10
10
  "body-parser": "^1.20.3",
11
11
  "cookie-parser": "^1.4.7",
@@ -24,7 +24,7 @@
24
24
  "sharp": "^0.33.5",
25
25
  "source-map-support": "^0.5.21",
26
26
  "tar": "^7.4.3",
27
- "tslib": "^2.8.0",
27
+ "tslib": "^2.8.1",
28
28
  "typescript": "^5.6.3",
29
29
  "whatwg-mimetype": "^4.0.0",
30
30
  "ws": "^8.18.0"
@@ -35,14 +35,14 @@
35
35
  "@types/express": "^5.0.0",
36
36
  "@types/follow-redirects": "^1.14.4",
37
37
  "@types/http-auth": "^4.1.4",
38
- "@types/lodash": "^4.17.12",
39
- "@types/node": "^22.8.4",
38
+ "@types/lodash": "^4.17.13",
39
+ "@types/node": "^22.9.0",
40
40
  "@types/node-dijkstra": "^2.5.6",
41
41
  "@types/node-forge": "^1.3.11",
42
42
  "@types/semver": "^7.5.8",
43
43
  "@types/source-map-support": "^0.5.10",
44
44
  "@types/whatwg-mimetype": "^3.0.2",
45
- "@types/ws": "^8.5.12",
45
+ "@types/ws": "^8.5.13",
46
46
  "rimraf": "^6.0.1"
47
47
  },
48
48
  "bin": {
@@ -12,7 +12,23 @@ import multiprocessing.connection
12
12
  import rpc
13
13
  import concurrent.futures
14
14
  import json
15
-
15
+ import math
16
+
17
+ def convert_nan_inf_to_none(obj):
18
+ if isinstance(obj, dict):
19
+ return {key: convert_nan_inf_to_none(value) for key, value in obj.items()}
20
+ elif isinstance(obj, list):
21
+ return [convert_nan_inf_to_none(item) for item in obj]
22
+ elif isinstance(obj, float):
23
+ if math.isnan(obj):
24
+ return None
25
+ if math.isinf(obj):
26
+ return None
27
+ return obj
28
+
29
+ def json_dumps_clean(obj, **kwargs):
30
+ cleaned_obj = convert_nan_inf_to_none(obj)
31
+ return json.dumps(cleaned_obj, **kwargs)
16
32
 
17
33
  class BufferSerializer(rpc.RpcSerializer):
18
34
  def serialize(self, value, serializationContext):
@@ -94,7 +110,7 @@ class RpcFileTransport(RpcTransport):
94
110
  reject(e)
95
111
 
96
112
  def writeJSON(self, j, reject):
97
- return self.writeMessage(0, bytes(json.dumps(j), 'utf8'), reject)
113
+ return self.writeMessage(0, bytes(json_dumps_clean(j), 'utf8'), reject)
98
114
 
99
115
  def writeBuffer(self, buffer, reject):
100
116
  return self.writeMessage(1, buffer, reject)
@@ -128,7 +144,7 @@ class RpcStreamTransport(RpcTransport):
128
144
  reject(e)
129
145
 
130
146
  def writeJSON(self, j, reject):
131
- return self.writeMessage(0, bytes(json.dumps(j), 'utf8'), reject)
147
+ return self.writeMessage(0, bytes(json_dumps_clean(j), 'utf8'), reject)
132
148
 
133
149
  def writeBuffer(self, buffer, reject):
134
150
  return self.writeMessage(1, buffer, reject)