@scrypted/server 0.95.0 → 0.97.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.
@@ -3,7 +3,7 @@ const { PortablePython } = require('py')
3
3
  const { once } = require('events');
4
4
 
5
5
  module.exports = {
6
- version: '3.11',
6
+ version: '3.10',
7
7
  }
8
8
 
9
9
  async function pipInstall(python, pkg) {
@@ -70,38 +70,51 @@ async function httpFetch(options) {
70
70
  nodeHeaders[k] = [v];
71
71
  }
72
72
  }
73
+ let controller;
74
+ let timeout;
75
+ if (options.timeout) {
76
+ controller = new AbortController();
77
+ timeout = setTimeout(() => controller.abort(), options.timeout);
78
+ options.signal?.addEventListener('abort', () => controller.abort('abort'));
79
+ }
73
80
  const request = proto.request(url, {
74
81
  method: (0, _1.getFetchMethod)(options),
75
82
  rejectUnauthorized: options.rejectUnauthorized,
76
83
  family: options.family,
77
84
  headers: nodeHeaders,
85
+ signal: controller?.signal || options.signal,
78
86
  timeout: options.timeout,
79
87
  });
80
88
  if (body)
81
89
  body.pipe(request);
82
90
  else
83
91
  request.end();
84
- const [response] = await once(request, 'response');
85
- if (!options?.ignoreStatusCode) {
86
- try {
87
- (0, _1.checkStatus)(response.statusCode);
92
+ try {
93
+ const [response] = await once(request, 'response');
94
+ if (!options?.ignoreStatusCode) {
95
+ try {
96
+ (0, _1.checkStatus)(response.statusCode);
97
+ }
98
+ catch (e) {
99
+ readMessageBuffer(response).catch(() => { });
100
+ throw e;
101
+ }
88
102
  }
89
- catch (e) {
90
- readMessageBuffer(response).catch(() => { });
91
- throw e;
103
+ const incomingHeaders = new Headers();
104
+ for (const [k, v] of Object.entries(response.headers)) {
105
+ for (const vv of (typeof v === 'string' ? [v] : v)) {
106
+ incomingHeaders.append(k, vv);
107
+ }
92
108
  }
109
+ return {
110
+ statusCode: response.statusCode,
111
+ headers: incomingHeaders,
112
+ body: await httpFetchParseIncomingMessage(response, options.responseType),
113
+ };
93
114
  }
94
- const incomingHeaders = new Headers();
95
- for (const [k, v] of Object.entries(response.headers)) {
96
- for (const vv of (typeof v === 'string' ? [v] : v)) {
97
- incomingHeaders.append(k, vv);
98
- }
115
+ finally {
116
+ clearTimeout(timeout);
99
117
  }
100
- return {
101
- statusCode: response.statusCode,
102
- headers: incomingHeaders,
103
- body: await httpFetchParseIncomingMessage(response, options.responseType),
104
- };
105
118
  }
106
119
  exports.httpFetch = httpFetch;
107
120
  function ensureType(v) {
@@ -1 +1 @@
1
- {"version":3,"file":"http-fetch.js","sourceRoot":"","sources":["../../src/fetch/http-fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-fetch.js","sourceRoot":"","sources":["../../src/fetch/http-fetch.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export interface HttpFetchOptionsBase<B> {
5
5
  family?: 4 | 6;
6
6
  method?: string;
7
7
  headers?: HeadersInit;
8
+ signal?: AbortSignal;
8
9
  timeout?: number;
9
10
  rejectUnauthorized?: boolean;
10
11
  ignoreStatusCode?: boolean;
@@ -66,28 +66,40 @@ async function domFetch(options) {
66
66
  if (body && !(body instanceof ReadableStream)) {
67
67
  body = createStringOrBufferBody(headers, body);
68
68
  }
69
- const { url } = options;
70
- const response = await fetch(url, {
71
- method: getFetchMethod(options),
72
- credentials: options.withCredentials ? 'include' : undefined,
73
- headers,
74
- signal: options.timeout ? AbortSignal.timeout(options.timeout) : undefined,
75
- body,
76
- });
77
- if (!options?.ignoreStatusCode) {
78
- try {
79
- checkStatus(response.status);
80
- }
81
- catch (e) {
82
- response.arrayBuffer().catch(() => { });
83
- throw e;
69
+ let controller;
70
+ let timeout;
71
+ if (options.timeout) {
72
+ controller = new AbortController();
73
+ timeout = setTimeout(() => controller.abort(), options.timeout);
74
+ options.signal?.addEventListener('abort', () => controller.abort('abort'));
75
+ }
76
+ try {
77
+ const { url } = options;
78
+ const response = await fetch(url, {
79
+ method: getFetchMethod(options),
80
+ credentials: options.withCredentials ? 'include' : undefined,
81
+ headers,
82
+ signal: controller?.signal || options.signal,
83
+ body,
84
+ });
85
+ if (!options?.ignoreStatusCode) {
86
+ try {
87
+ checkStatus(response.status);
88
+ }
89
+ catch (e) {
90
+ response.arrayBuffer().catch(() => { });
91
+ throw e;
92
+ }
84
93
  }
94
+ return {
95
+ statusCode: response.status,
96
+ headers: response.headers,
97
+ body: await domFetchParseIncomingMessage(response, options.responseType),
98
+ };
99
+ }
100
+ finally {
101
+ clearTimeout(timeout);
85
102
  }
86
- return {
87
- statusCode: response.status,
88
- headers: response.headers,
89
- body: await domFetchParseIncomingMessage(response, options.responseType),
90
- };
91
103
  }
92
104
  exports.domFetch = domFetch;
93
105
  function ensureType(v) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fetch/index.ts"],"names":[],"mappings":";;;AAmCA,SAAgB,iBAAiB,CAAC,UAAkB;IAChD,OAAO,UAAU,IAAI,GAAG,IAAI,UAAU,IAAI,GAAG,CAAC;AAClD,CAAC;AAFD,8CAEC;AAED,SAAgB,WAAW,CAAC,UAAkB;IAC1C,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;AAClE,CAAC;AAHD,kCAGC;AAED,SAAgB,cAAc,CAAC,OAA8B;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC;AAClB,CAAC;AAHD,wCAGC;AAiBD,SAAgB,kBAAkB,CAAC,YAAmC;IAClE,QAAQ,YAAY,EAAE,CAAC;QACnB,KAAK,MAAM;YACP,OAAO,kBAAkB,CAAC;QAC9B,KAAK,MAAM;YACP,OAAO,YAAY,CAAC;IAC5B,CAAC;IACD,OAAO;AACX,CAAC;AARD,gDAQC;AAED,SAAgB,yBAAyB,CAAC,OAAgB,EAAE,YAAmC;IAC3F,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QACrB,OAAO;IACX,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAChD,IAAI,MAAM;QACN,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACtC,CAAC;AAND,8DAMC;AAED,SAAgB,wBAAwB,CAAC,OAAgB,EAAE,IAAS;IAChE,IAAI,WAAmB,CAAC;IACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5B,WAAW,GAAG,kBAAkB,CAAC;IACrC,CAAC;SACI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAChC,WAAW,GAAG,YAAY,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAE7C,OAAO,IAAI,CAAC;AAChB,CAAC;AAdD,4DAcC;AAEM,KAAK,UAAU,4BAA4B,CAAC,QAAkB,EAAE,YAAmC;IACtG,QAAQ,YAAY,EAAE,CAAC;QACnB,KAAK,MAAM;YACP,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3B,KAAK,MAAM;YACP,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3B,KAAK,UAAU;YACX,OAAO,QAAQ,CAAC;IACxB,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;AACxD,CAAC;AAVD,oEAUC;AAEM,KAAK,UAAU,QAAQ,CAAuC,OAAU;IAO3E,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzD,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACvB,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,YAAY,cAAc,CAAC,EAAE,CAAC;QAC5C,IAAI,GAAG,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IACxB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC9B,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC;QAC/B,WAAW,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC5D,OAAO;QACP,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;QAC1E,IAAI;KACP,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAC7B,IAAI,CAAC;YACD,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACP,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC;IAED,OAAO;QACH,UAAU,EAAE,QAAQ,CAAC,MAAM;QAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,MAAM,4BAA4B,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC;KAC3E,CAAC;AACN,CAAC;AAvCD,4BAuCC;AAED,SAAS,UAAU,CAAI,CAAI;AAC3B,CAAC;AAED,KAAK,UAAU,IAAI;IACf,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC;QACrB,GAAG,EAAE,oBAAoB;KAC5B,CAAC,CAAC;IAEH,UAAU,CAAS,CAAC,CAAC,IAAI,CAAC,CAAC;IAE3B,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC;QACrB,GAAG,EAAE,oBAAoB;QACzB,YAAY,EAAE,MAAM;KACvB,CAAC,CAAC;IACH,UAAU,CAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IAExB,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC;QACrB,GAAG,EAAE,oBAAoB;QACzB,YAAY,EAAE,UAAU;KAC3B,CAAC,CAAC;IACH,UAAU,CAAW,CAAC,CAAC,IAAI,CAAC,CAAC;IAE7B,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC;QACrB,GAAG,EAAE,oBAAoB;QACzB,YAAY,EAAE,QAAQ;KACzB,CAAC,CAAC;IACH,UAAU,CAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fetch/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrypted/server",
3
- "version": "0.95.0",
3
+ "version": "0.97.0",
4
4
  "description": "",
5
5
  "dependencies": {
6
6
  "@mapbox/node-pre-gyp": "^1.0.11",
@@ -56,7 +56,7 @@ class DeviceProxy(object):
56
56
  def __init__(self, systemManager: SystemManager, id: str):
57
57
  self.systemManager = systemManager
58
58
  self.id = id
59
- self.device: asyncio.Future[rpc.RpcPeer] = None
59
+ self.device: asyncio.Future[rpc.RpcProxy] = None
60
60
 
61
61
  def __getattr__(self, name):
62
62
  if name == 'id':
@@ -81,7 +81,7 @@ class DeviceProxy(object):
81
81
 
82
82
  def __apply__(self, method: str, args: list):
83
83
  if not self.device:
84
- self.device = self.systemManager.api.getDeviceById(self.id)
84
+ self.device = asyncio.ensure_future(self.systemManager.api.getDeviceById(self.id))
85
85
 
86
86
  async def apply():
87
87
  device = await self.device
@@ -93,11 +93,21 @@ export async function httpFetch<T extends HttpFetchOptions<Readable>>(options: T
93
93
  }
94
94
  }
95
95
 
96
+ let controller: AbortController;
97
+ let timeout: NodeJS.Timeout;
98
+ if (options.timeout) {
99
+ controller = new AbortController();
100
+ timeout = setTimeout(() => controller.abort(), options.timeout);
101
+
102
+ options.signal?.addEventListener('abort', () => controller.abort('abort'));
103
+ }
104
+
96
105
  const request = proto.request(url, {
97
106
  method: getFetchMethod(options),
98
107
  rejectUnauthorized: options.rejectUnauthorized,
99
108
  family: options.family,
100
109
  headers: nodeHeaders,
110
+ signal: controller?.signal || options.signal,
101
111
  timeout: options.timeout,
102
112
  });
103
113
 
@@ -105,30 +115,36 @@ export async function httpFetch<T extends HttpFetchOptions<Readable>>(options: T
105
115
  body.pipe(request);
106
116
  else
107
117
  request.end();
108
- const [response] = await once(request, 'response') as [IncomingMessage];
109
118
 
110
- if (!options?.ignoreStatusCode) {
111
- try {
112
- checkStatus(response.statusCode);
113
- }
114
- catch (e) {
115
- readMessageBuffer(response).catch(() => { });
116
- throw e;
119
+ try {
120
+ const [response] = await once(request, 'response') as [IncomingMessage];
121
+
122
+ if (!options?.ignoreStatusCode) {
123
+ try {
124
+ checkStatus(response.statusCode);
125
+ }
126
+ catch (e) {
127
+ readMessageBuffer(response).catch(() => { });
128
+ throw e;
129
+ }
117
130
  }
118
- }
119
131
 
120
- const incomingHeaders = new Headers();
121
- for (const [k, v] of Object.entries(response.headers)) {
122
- for (const vv of (typeof v === 'string' ? [v] : v)) {
123
- incomingHeaders.append(k, vv)
132
+ const incomingHeaders = new Headers();
133
+ for (const [k, v] of Object.entries(response.headers)) {
134
+ for (const vv of (typeof v === 'string' ? [v] : v)) {
135
+ incomingHeaders.append(k, vv)
136
+ }
124
137
  }
125
- }
126
138
 
127
- return {
128
- statusCode: response.statusCode,
129
- headers: incomingHeaders,
130
- body: await httpFetchParseIncomingMessage(response, options.responseType),
131
- };
139
+ return {
140
+ statusCode: response.statusCode,
141
+ headers: incomingHeaders,
142
+ body: await httpFetchParseIncomingMessage(response, options.responseType),
143
+ };
144
+ }
145
+ finally {
146
+ clearTimeout(timeout);
147
+ }
132
148
  }
133
149
 
134
150
  function ensureType<T>(v: T) {
@@ -5,6 +5,7 @@ export interface HttpFetchOptionsBase<B> {
5
5
  family?: 4 | 6;
6
6
  method?: string;
7
7
  headers?: HeadersInit;
8
+ signal?: AbortSignal,
8
9
  timeout?: number;
9
10
  rejectUnauthorized?: boolean;
10
11
  ignoreStatusCode?: boolean;
@@ -123,30 +124,44 @@ export async function domFetch<T extends HttpFetchOptions<BodyInit>>(options: T)
123
124
  body = createStringOrBufferBody(headers, body);
124
125
  }
125
126
 
126
- const { url } = options;
127
- const response = await fetch(url, {
128
- method: getFetchMethod(options),
129
- credentials: options.withCredentials ? 'include' : undefined,
130
- headers,
131
- signal: options.timeout ? AbortSignal.timeout(options.timeout) : undefined,
132
- body,
133
- });
127
+ let controller: AbortController;
128
+ let timeout: NodeJS.Timeout;
129
+ if (options.timeout) {
130
+ controller = new AbortController();
131
+ timeout = setTimeout(() => controller.abort(), options.timeout);
134
132
 
135
- if (!options?.ignoreStatusCode) {
136
- try {
137
- checkStatus(response.status);
138
- }
139
- catch (e) {
140
- response.arrayBuffer().catch(() => { });
141
- throw e;
142
- }
133
+ options.signal?.addEventListener('abort', () => controller.abort('abort'));
143
134
  }
144
135
 
145
- return {
146
- statusCode: response.status,
147
- headers: response.headers,
148
- body: await domFetchParseIncomingMessage(response, options.responseType),
149
- };
136
+ try {
137
+ const { url } = options;
138
+ const response = await fetch(url, {
139
+ method: getFetchMethod(options),
140
+ credentials: options.withCredentials ? 'include' : undefined,
141
+ headers,
142
+ signal: controller?.signal || options.signal,
143
+ body,
144
+ });
145
+
146
+ if (!options?.ignoreStatusCode) {
147
+ try {
148
+ checkStatus(response.status);
149
+ }
150
+ catch (e) {
151
+ response.arrayBuffer().catch(() => { });
152
+ throw e;
153
+ }
154
+ }
155
+
156
+ return {
157
+ statusCode: response.status,
158
+ headers: response.headers,
159
+ body: await domFetchParseIncomingMessage(response, options.responseType),
160
+ };
161
+ }
162
+ finally {
163
+ clearTimeout(timeout);
164
+ }
150
165
  }
151
166
 
152
167
  function ensureType<T>(v: T) {