@nmtjs/http-transport 0.16.1 → 0.17.0-beta.2
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/LICENSE.md +1 -1
- package/README.md +41 -1
- package/dist/runtimes/bun.js +7 -3
- package/dist/runtimes/bun.js.map +1 -1
- package/dist/runtimes/deno.js +1 -1
- package/dist/runtimes/deno.js.map +1 -1
- package/dist/runtimes/node.js +112 -16
- package/dist/runtimes/node.js.map +1 -1
- package/dist/server.js +4 -2
- package/dist/server.js.map +1 -1
- package/package.json +14 -17
- package/src/runtimes/bun.ts +10 -4
- package/src/runtimes/deno.ts +1 -1
- package/src/runtimes/node.ts +142 -13
- package/src/server.ts +12 -13
package/LICENSE.md
CHANGED
|
@@ -4,4 +4,4 @@ Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
|
4
4
|
|
|
5
5
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
6
6
|
|
|
7
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
7
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,9 +1,49 @@
|
|
|
1
1
|
# NeemataJS - RPC application server for real-time applications (proof of concept)
|
|
2
2
|
|
|
3
3
|
### Built with following in mind:
|
|
4
|
+
|
|
4
5
|
- transport-agnostic (like WebSockets, WebTransport, .etc)
|
|
5
6
|
- format-agnostic (like JSON, MessagePack, BSON, .etc)
|
|
6
7
|
- binary data streaming and event subscriptions
|
|
7
8
|
- contract-based API
|
|
8
9
|
- end-to-end type safety
|
|
9
|
-
- CPU-intensive task execution on separate workers
|
|
10
|
+
- CPU-intensive task execution on separate workers
|
|
11
|
+
|
|
12
|
+
## Neem CLI draft
|
|
13
|
+
|
|
14
|
+
`neem build` compiles config, app entries, plugin entries, and plugin-declared
|
|
15
|
+
artifacts into `dist` by default. It writes an internal `neem.manifest.json`
|
|
16
|
+
with relative artifact paths.
|
|
17
|
+
|
|
18
|
+
`neem start` consumes an existing built output directory. It reads the manifest
|
|
19
|
+
for executable artifacts and serialized runtime config, registers built plugin
|
|
20
|
+
hooks, and starts app workers in production mode.
|
|
21
|
+
|
|
22
|
+
`neem dev` uses `.neem` by default as a build-like watched output directory. It
|
|
23
|
+
uses the same manifest shape as `start`, restarts app workers after successful
|
|
24
|
+
config/app rebuilds, reloads plugin hooks after plugin entry rebuilds, and keeps
|
|
25
|
+
existing workers alive on rebuild errors.
|
|
26
|
+
|
|
27
|
+
## Service integration tests
|
|
28
|
+
|
|
29
|
+
Service-backed package integration tests live beside package owners under
|
|
30
|
+
`packages/*/tests/integration`.
|
|
31
|
+
|
|
32
|
+
Local services:
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
docker compose up -d --wait redis valkey kafka
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Run required service tests:
|
|
39
|
+
|
|
40
|
+
```sh
|
|
41
|
+
NMTJS_REQUIRE_SERVICE_TESTS=1 \
|
|
42
|
+
REDIS_URL=redis://localhost:6379 \
|
|
43
|
+
VALKEY_URL=redis://localhost:6380 \
|
|
44
|
+
KAFKA_BROKERS=localhost:9092 \
|
|
45
|
+
pnpm run test:integration:services
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Without service env, these tests skip in normal package/root test runs. In CI,
|
|
49
|
+
`NMTJS_REQUIRE_SERVICE_TESTS=1` makes missing service env fail instead of skip.
|
package/dist/runtimes/bun.js
CHANGED
|
@@ -5,6 +5,9 @@ import { InternalServerErrorHttpResponse, NotFoundHttpResponse, OkResponse, } fr
|
|
|
5
5
|
function adapterFactory(params) {
|
|
6
6
|
let server = null;
|
|
7
7
|
function createServer() {
|
|
8
|
+
const routes = typeof params.runtime?.routes === 'object' && params.runtime.routes
|
|
9
|
+
? params.runtime.routes
|
|
10
|
+
: {};
|
|
8
11
|
return globalThis.Bun.serve({
|
|
9
12
|
...params.runtime,
|
|
10
13
|
unix: params.listen.unix,
|
|
@@ -18,9 +21,10 @@ function adapterFactory(params) {
|
|
|
18
21
|
passphrase: params.tls.passphrase,
|
|
19
22
|
}
|
|
20
23
|
: undefined,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
routes: Object.assign({}, routes, {
|
|
25
|
+
'/healthy': { GET: OkResponse },
|
|
26
|
+
}),
|
|
27
|
+
async fetch(request) {
|
|
24
28
|
const url = new URL(request.url);
|
|
25
29
|
try {
|
|
26
30
|
if (request.headers.get('upgrade') === 'websocket')
|
package/dist/runtimes/bun.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bun.js","sourceRoot":"","sources":["../../src/runtimes/bun.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAOvD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EACL,+BAA+B,EAC/B,oBAAoB,EACpB,UAAU,GACX,MAAM,aAAa,CAAA;AAEpB,SAAS,cAAc,CAAC,MAAgC;IACtD,IAAI,MAAM,GAAiC,IAAI,CAAA;IAE/C,SAAS,YAAY;QACnB,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;YAC1B,GAAG,MAAM,CAAC,OAAO;YACjB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAc;YAClC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;YAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ;YAChC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;YAClC,GAAG,EAAE,MAAM,CAAC,GAAG;gBACb,CAAC,CAAC;oBACE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI;oBACrB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG;oBACnB,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU;iBAClC;gBACH,CAAC,CAAC,SAAS;YACb,
|
|
1
|
+
{"version":3,"file":"bun.js","sourceRoot":"","sources":["../../src/runtimes/bun.ts"],"names":[],"mappings":"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"}
|
package/dist/runtimes/deno.js
CHANGED
|
@@ -26,7 +26,7 @@ function adapterFactory(params) {
|
|
|
26
26
|
const server = globalThis.Deno.serve({
|
|
27
27
|
...params.runtime,
|
|
28
28
|
...options,
|
|
29
|
-
handler: async (request
|
|
29
|
+
handler: async (request) => {
|
|
30
30
|
const url = new URL(request.url);
|
|
31
31
|
if (url.pathname === '/healthy') {
|
|
32
32
|
return OkResponse();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deno.js","sourceRoot":"","sources":["../../src/runtimes/deno.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAQvD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EACL,+BAA+B,EAC/B,oBAAoB,EACpB,UAAU,GACX,MAAM,aAAa,CAAA;AAqBpB,SAAS,cAAc,CAAC,MAAiC;IACvD,IAAI,MAAM,GAAsB,IAAI,CAAA;IAEpC,SAAS,YAAY;QACnB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI;YACtC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;YAC9B,CAAC,CAAC;gBACE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;gBACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ;gBAChC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;aACnC,CAAA;QACL,MAAM,OAAO,GAAG;YACd,GAAG,aAAa;YAChB,GAAG,EAAE,MAAM,CAAC,GAAG;gBACb,CAAC,CAAC;oBACE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI;oBACrB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG;oBACnB,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU;iBAClC;gBACH,CAAC,CAAC,SAAS;SACd,CAAA;QAED,OAAO,IAAI,OAAO,CAAyC,CAAC,OAAO,EAAE,EAAE;YACrE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;gBACnC,GAAG,MAAM,CAAC,OAAO;gBACjB,GAAG,OAAO;gBACV,OAAO,EAAE,KAAK,EAAE,OAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"deno.js","sourceRoot":"","sources":["../../src/runtimes/deno.ts"],"names":[],"mappings":"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"}
|
package/dist/runtimes/node.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import {} from 'node:dns';
|
|
2
|
-
import { setTimeout } from 'node:timers/promises';
|
|
3
2
|
import { ProxyableTransportType } from '@nmtjs/gateway';
|
|
3
|
+
import { App, SSLApp, us_socket_local_port } from 'uWebSockets.js';
|
|
4
4
|
import * as injectables from '../injectables.js';
|
|
5
5
|
import { createHTTPTransportWorker } from '../server.js';
|
|
6
6
|
import { InternalServerErrorHttpResponse, NotFoundHttpResponse, OkResponse, } from '../utils.js';
|
|
7
|
-
import { App, SSLApp, us_socket_local_port } from 'uWebSockets.js';
|
|
8
7
|
const statusResponse = OkResponse();
|
|
9
8
|
const statusResponseBuffer = await statusResponse.arrayBuffer();
|
|
10
9
|
function adapterFactory(params) {
|
|
@@ -25,10 +24,12 @@ function adapterFactory(params) {
|
|
|
25
24
|
})
|
|
26
25
|
.any('/*', async (res, req) => {
|
|
27
26
|
const requestController = new AbortController();
|
|
27
|
+
const uwsRes = res;
|
|
28
28
|
let aborted = false;
|
|
29
29
|
let bodyController;
|
|
30
30
|
res.onAborted(() => {
|
|
31
31
|
aborted = true;
|
|
32
|
+
uwsRes.aborted = true;
|
|
32
33
|
requestController.abort();
|
|
33
34
|
try {
|
|
34
35
|
bodyController?.error(requestController.signal.reason);
|
|
@@ -71,27 +72,24 @@ function adapterFactory(params) {
|
|
|
71
72
|
if (aborted)
|
|
72
73
|
return undefined;
|
|
73
74
|
else {
|
|
75
|
+
const fixedContentLength = response.body
|
|
76
|
+
? getContentLength(response.headers)
|
|
77
|
+
: undefined;
|
|
74
78
|
res.cork(() => {
|
|
75
79
|
if (aborted)
|
|
76
80
|
return undefined;
|
|
77
81
|
res.writeStatus(`${response.status.toString()} ${response.statusText}`);
|
|
78
|
-
response.headers.forEach((v, k) =>
|
|
82
|
+
response.headers.forEach((v, k) => {
|
|
83
|
+
if (typeof fixedContentLength === 'number' &&
|
|
84
|
+
k.toLowerCase() === 'content-length') {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
res.writeHeader(k, v);
|
|
88
|
+
});
|
|
79
89
|
});
|
|
80
90
|
if (response.body) {
|
|
81
91
|
try {
|
|
82
|
-
|
|
83
|
-
let chunk = await reader.read();
|
|
84
|
-
while (!chunk.done) {
|
|
85
|
-
if (aborted)
|
|
86
|
-
break;
|
|
87
|
-
if (chunk.value)
|
|
88
|
-
res.cork(() => res.write(chunk.value));
|
|
89
|
-
chunk = await reader.read();
|
|
90
|
-
}
|
|
91
|
-
if (aborted)
|
|
92
|
-
await reader.cancel().catch(() => { });
|
|
93
|
-
else
|
|
94
|
-
res.cork(() => res.end());
|
|
92
|
+
await handleResponseBody(uwsRes, response, fixedContentLength);
|
|
95
93
|
}
|
|
96
94
|
catch {
|
|
97
95
|
if (!aborted)
|
|
@@ -138,6 +136,104 @@ function adapterFactory(params) {
|
|
|
138
136
|
},
|
|
139
137
|
};
|
|
140
138
|
}
|
|
139
|
+
async function handleResponseBody(res, response, fixedContentLength) {
|
|
140
|
+
if (!response.body)
|
|
141
|
+
return;
|
|
142
|
+
if (typeof fixedContentLength === 'number') {
|
|
143
|
+
await handleFixedLengthStream(res, response.body, fixedContentLength);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
await handleChunkedStream(res, response.body);
|
|
147
|
+
}
|
|
148
|
+
async function handleFixedLengthStream(res, body, totalSize) {
|
|
149
|
+
const reader = body.getReader();
|
|
150
|
+
try {
|
|
151
|
+
if (totalSize === 0) {
|
|
152
|
+
if (!res.aborted)
|
|
153
|
+
res.cork(() => res.endWithoutBody(0));
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
let responded = false;
|
|
157
|
+
while (!res.aborted && !responded) {
|
|
158
|
+
const { done, value } = await reader.read();
|
|
159
|
+
if (done)
|
|
160
|
+
break;
|
|
161
|
+
if (value.byteLength === 0)
|
|
162
|
+
continue;
|
|
163
|
+
responded = await handleFixedChunk(res, value, totalSize);
|
|
164
|
+
}
|
|
165
|
+
if (!responded && !res.aborted)
|
|
166
|
+
res.cork(() => res.close());
|
|
167
|
+
}
|
|
168
|
+
finally {
|
|
169
|
+
reader.releaseLock();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
async function handleChunkedStream(res, body) {
|
|
173
|
+
const reader = body.getReader();
|
|
174
|
+
try {
|
|
175
|
+
while (!res.aborted) {
|
|
176
|
+
const { done, value } = await reader.read();
|
|
177
|
+
if (done)
|
|
178
|
+
break;
|
|
179
|
+
if (value.byteLength === 0)
|
|
180
|
+
continue;
|
|
181
|
+
const ok = res.cork(() => res.write(value));
|
|
182
|
+
if (!ok)
|
|
183
|
+
await waitWritable(res);
|
|
184
|
+
}
|
|
185
|
+
if (!res.aborted)
|
|
186
|
+
res.cork(() => res.end());
|
|
187
|
+
}
|
|
188
|
+
finally {
|
|
189
|
+
reader.releaseLock();
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
function handleFixedChunk(res, chunk, totalSize) {
|
|
193
|
+
return new Promise((resolve, reject) => {
|
|
194
|
+
const chunkOffset = res.getWriteOffset();
|
|
195
|
+
const write = (offset) => {
|
|
196
|
+
if (res.aborted) {
|
|
197
|
+
reject(new Error('Response aborted'));
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
const relativeOffset = offset - chunkOffset;
|
|
201
|
+
const remaining = relativeOffset > 0 ? chunk.subarray(relativeOffset) : chunk;
|
|
202
|
+
let ok = false;
|
|
203
|
+
let done = false;
|
|
204
|
+
res.cork(() => {
|
|
205
|
+
;
|
|
206
|
+
[ok, done] = res.tryEnd(remaining, totalSize);
|
|
207
|
+
});
|
|
208
|
+
if (done || ok) {
|
|
209
|
+
resolve(done);
|
|
210
|
+
return ok;
|
|
211
|
+
}
|
|
212
|
+
res.onWritable(write);
|
|
213
|
+
return ok;
|
|
214
|
+
};
|
|
215
|
+
write(chunkOffset);
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
function waitWritable(res) {
|
|
219
|
+
return new Promise((resolve, reject) => {
|
|
220
|
+
res.onWritable(() => {
|
|
221
|
+
if (res.aborted) {
|
|
222
|
+
reject(new Error('Response aborted'));
|
|
223
|
+
return false;
|
|
224
|
+
}
|
|
225
|
+
resolve();
|
|
226
|
+
return true;
|
|
227
|
+
});
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
function getContentLength(headers) {
|
|
231
|
+
const raw = headers.get('content-length');
|
|
232
|
+
if (!raw)
|
|
233
|
+
return undefined;
|
|
234
|
+
const value = Number(raw);
|
|
235
|
+
return Number.isSafeInteger(value) && value >= 0 ? value : undefined;
|
|
236
|
+
}
|
|
141
237
|
export const HttpTransport = {
|
|
142
238
|
proxyable: ProxyableTransportType.HTTP,
|
|
143
239
|
injectables,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/runtimes/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/runtimes/node.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -194,6 +194,9 @@ export class HttpTransportServer {
|
|
|
194
194
|
if (metadata.size) {
|
|
195
195
|
responseHeaders.set('Content-Length', metadata.size.toString());
|
|
196
196
|
}
|
|
197
|
+
if (metadata.filename) {
|
|
198
|
+
responseHeaders.set('Content-Disposition', `attachment; filename="${metadata.filename}"`);
|
|
199
|
+
}
|
|
197
200
|
// Convert source to ReadableStream
|
|
198
201
|
let stream;
|
|
199
202
|
if (source instanceof ReadableStream) {
|
|
@@ -254,7 +257,6 @@ export class HttpTransportServer {
|
|
|
254
257
|
}
|
|
255
258
|
}
|
|
256
259
|
catch (error) {
|
|
257
|
-
console.error(error);
|
|
258
260
|
if (error instanceof UnsupportedFormatError) {
|
|
259
261
|
const status = error instanceof UnsupportedContentTypeError
|
|
260
262
|
? HttpStatus.UnsupportedMediaType
|
|
@@ -362,7 +364,7 @@ export class HttpTransportServer {
|
|
|
362
364
|
// const hooks = this.createWsHooks()
|
|
363
365
|
const opts = {
|
|
364
366
|
...this.options,
|
|
365
|
-
// logger: this.logger
|
|
367
|
+
// logger: forkLogger(this.logger, 'WsServer'),
|
|
366
368
|
fetchHandler: this.httpHandler.bind(this),
|
|
367
369
|
};
|
|
368
370
|
return this.adapterFactory(opts);
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAI9C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EACL,cAAc,EACd,SAAS,EACT,YAAY,EACZ,eAAe,GAChB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,wBAAwB,CAAA;AAU/B,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,cAAc,GACf,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAE9C,MAAM,mBAAmB,GAAG,gBAAgB,CAAA;AAC5C,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAuB,CAAA;AAC7E,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC;IACxC,gBAAgB,EAAE,MAAM;IACxB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC;IACzD,YAAY,EAAE;QACZ,cAAc;QACd,qBAAqB;QACrB,gBAAgB;QAChB,QAAQ;QACR,eAAe;QACf,mBAAmB;KACpB;IACD,MAAM,EAAE,SAAS;IACjB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,EAAE;IACjB,cAAc,EAAE,EAAE;CACnB,CAAyD,CAAA;AAC1D,MAAM,gBAAgB,GAGlB;IACF,MAAM,EAAE,6BAA6B;IACrC,YAAY,EAAE,8BAA8B;IAC5C,YAAY,EAAE,8BAA8B;IAC5C,gBAAgB,EAAE,kCAAkC;IACpD,MAAM,EAAE,wBAAwB;IAChC,aAAa,EAAE,+BAA+B;IAC9C,cAAc,EAAE,gCAAgC;IAChD,aAAa,EAAE,+BAA+B;CAC/C,CAAA;AAED,MAAM,UAAU,yBAAyB,CACvC,cAA6C,EAC7C,OAA6B;IAK7B,OAAO,IAAI,mBAAmB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;AACzD,CAAC;AAED,MAAM,OAAO,mBAAmB;IAaT,cAAc;IACd,OAAO;IAV5B,OAAO,CAAmB;IAC1B,YAAY,CAA+B;IAE3C,MAAM,CAGL;IAED,YACqB,cAA6C,EAC7C,OAA6B;8BAD7B,cAAc;uBACd,OAAO;QAE1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,KAAK,CACT,KAGC;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAmC,EACnC,IAA2B,EAC3B,aAA0B;;;YAE1B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAChC,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,qBAAqB;YAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;YAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC5C,MAAM,eAAe,GAAG,IAAI,OAAO,EAAE,CAAA;YACrC,IAAI,MAAM;gBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,CAAA;YAE5D,4BAA4B;YAC5B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;oBACxB,MAAM,EAAE,UAAU,CAAC,EAAE;oBACrB,OAAO,EAAE,eAAe;iBACzB,CAAC,CAAA;YACJ,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;YACxC,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;YAC/D,MAAM,WAAW,GAAG,MAAM,KAAK,KAAK,CAAA;YACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,MAAM,CAAA;YAClE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YACvD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAA;YAErD,MAAY,UAAU,kCAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;gBACnD,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;gBACpC,WAAW,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW;gBACzD,IAAI,EAAE,OAAO;gBACb,eAAe,EAAE,eAAe,CAAC,EAAE;gBACnC,IAAI,EAAE,cAAc,CAAC,cAAc;aACpC,CAAC,OAAA,CAAA;YAEF,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;gBAEjE,MAAM,eAAe,GACnB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,uBAAuB,CAAA;gBAEjE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAa,CAAC,EAAE,CAAC;oBAC7C,MAAM,IAAI,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;gBAC7C,CAAC;gBAED,IAAI,OAAY,CAAA;gBAEhB,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;oBACxB,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAW,CAAC,CAAA;oBAChD,MAAM,YAAY,GAChB,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;oBACnE,IAAI,MAAM,IAAI,YAAY,EAAE,CAAC;wBAC3B,MAAM,IAAI,GAAG,WAAW,IAAI,0BAA0B,CAAA;wBACtD,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;wBAC3D,MAAM,IAAI,GAAG,aAAa;4BACxB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC;4BACpC,CAAC,CAAC,SAAS,CAAA;wBACb,OAAO,GAAG,IAAI,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;wBACtD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBAC1B,CAAC;yBAAM,CAAC;wBACN,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;wBACxD,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;4BAC1B,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;wBAC7C,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;oBACnD,IAAI,WAAW,EAAE,CAAC;wBAChB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;oBACnC,CAAC;gBACH,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACpC,UAAU,EACV;oBACE,MAAM,EAAE,CAAC,EAAE,qFAAqF;oBAChG,OAAO;oBACP,SAAS;iBACV,EACD,MAAM,EACN,SAAS,CAAC,UAAU,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAC3D,CAAA;gBAED,IAAI,MAAM,YAAY,QAAQ,EAAE,CAAC;oBAC/B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;oBACpD,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;wBAC7B,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;oBACjC,CAAC,CAAC,CAAA;oBAEF,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;wBACxB,MAAM;wBACN,UAAU;wBACV,OAAO,EAAE,eAAe;qBACzB,CAAC,CAAA;gBACJ,CAAC;qBAAM,IAAI,MAAM,YAAY,YAAY,EAAE,CAAC;oBAC1C,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAA;oBACnC,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAA;oBAEzB,eAAe,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;oBAChD,eAAe,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;oBACzC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;wBAClB,eAAe,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;oBACjE,CAAC;oBACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;wBACtB,eAAe,CAAC,GAAG,CACjB,qBAAqB,EACrB,yBAAyB,QAAQ,CAAC,QAAQ,GAAG,CAC9C,CAAA;oBACH,CAAC;oBAED,mCAAmC;oBACnC,IAAI,MAAsB,CAAA;oBAE1B,IAAI,MAAM,YAAY,cAAc,EAAE,CAAC;wBACrC,MAAM,GAAG,MAAM,CAAA;oBACjB,CAAC;yBAAM,IAAI,MAAM,YAAY,QAAQ,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;wBAClE,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAA8B,CAAA;oBAC9D,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;oBAC1C,CAAC;oBAED,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE;wBAC1B,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;wBACzC,OAAO,EAAE,eAAe;qBACzB,CAAC,CAAA;gBACJ,CAAC;qBAAM,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnC,eAAe,CAAC,GAAG,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAA;oBACxD,eAAe,CAAC,GAAG,CAAC,eAAe,EAAE,wBAAwB,CAAC,CAAA;oBAC9D,eAAe,CAAC,GAAG,CACjB,uBAAuB,EACvB,UAAU,CAAC,OAAO,CAAC,WAAW,CAC/B,CAAA;oBACD,eAAe,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAA;oBAC9C,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;wBAChC,KAAK,CAAC,KAAK,CAAC,UAAU;4BACpB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;4BACjC,IAAI,CAAC;gCACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oCACjC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oCAChD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,UAAU,CACnB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;oCACpB,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,MAAM,MAAM,CAAC,CAAC,CAAA;gCAC3D,CAAC;gCACD,UAAU,CAAC,KAAK,EAAE,CAAA;4BACpB,CAAC;4BAAC,OAAO,KAAK,EAAE,CAAC;gCACf,IAAI,YAAY,CAAC,KAAK,CAAC;oCAAE,UAAU,CAAC,KAAK,EAAE,CAAA;;oCACtC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;4BAC9B,CAAC;wBACH,CAAC;qBACF,CAAC,CAAA;oBACF,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE;wBAC1B,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;wBACzC,OAAO,EAAE,eAAe;qBACzB,CAAC,CAAA;gBACJ,CAAC;qBAAM,CAAC;oBACN,2BAA2B;oBAC3B,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;oBAChD,eAAe,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;oBAEnE,mBAAmB;oBACnB,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE;wBAC1B,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;wBACzC,OAAO,EAAE,eAAe;qBACzB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,sBAAsB,EAAE,CAAC;oBAC5C,MAAM,MAAM,GACV,KAAK,YAAY,2BAA2B;wBAC1C,CAAC,CAAC,UAAU,CAAC,oBAAoB;wBACjC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAA;oBAC9B,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;oBAEnC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;wBACxB,MAAM;wBACN,UAAU,EAAE,IAAI;wBAChB,OAAO,EAAE,eAAe;qBACzB,CAAC,CAAA;gBACJ,CAAC;gBAED,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;oBACnC,MAAM,MAAM,GACV,KAAK,CAAC,IAAI,IAAI,WAAW;wBACvB,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;wBACzB,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAA;oBACpC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;oBACnC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBAChD,eAAe,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;oBAEnE,mBAAmB;oBACnB,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE;wBAC3B,MAAM;wBACN,UAAU,EAAE,IAAI;wBAChB,OAAO,EAAE,eAAe;qBACzB,CAAC,CAAA;gBACJ,CAAC;gBAED,gBAAgB;gBAChB,sEAAsE;gBACtE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBAEpB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CACvC,IAAI,aAAa,CACf,SAAS,CAAC,mBAAmB,EAC7B,uBAAuB,CACxB,CACF,CAAA;gBACD,eAAe,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;gBAEnE,mBAAmB;gBACnB,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE;oBAC3B,MAAM,EAAE,UAAU,CAAC,mBAAmB;oBACtC,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,mBAAmB,CAAC;oBAC1D,OAAO,EAAE,eAAe;iBACzB,CAAC,CAAA;YACJ,CAAC;;;;;;;;;;;IACH,CAAC;IAEO,SAAS,CACf,MAAc,EACd,OAAmC,EACnC,OAAgB;QAEhB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAM;QAE9B,IAAI,MAAM,GAAyD,IAAI,CAAA;QAEvE,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAC/B,MAAM,GAAG,EAAE,GAAG,mBAAmB,EAAE,CAAA;QACrC,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvC,MAAM,GAAG,EAAE,GAAG,mBAAmB,EAAE,CAAA;YACrC,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACjD,IACE,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,IAAI;gBACjC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EACzC,CAAC;gBACD,MAAM,GAAG,EAAE,GAAG,mBAAmB,EAAE,CAAA;gBACnC,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;oBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;oBACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACxB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YACjD,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,GAAG,EAAE,GAAG,mBAAmB,EAAE,CAAA;gBACrC,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,GAAG,EAAE,GAAG,mBAAmB,EAAE,CAAA;gBACnC,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;oBACtC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;oBACzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACxB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,KAAK,IAAI;YAAE,OAAM;QAE3B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAE5C,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;YACpC,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;gBACvB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAClE,IAAI,KAAK;oBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,qCAAqC;QACrC,MAAM,IAAI,GAAsB;YAC9B,GAAG,IAAI,CAAC,OAAO;YACf,+CAA+C;YAC/C,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;SAC1C,CAAA;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -25,23 +25,23 @@
|
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.
|
|
29
|
-
"@nmtjs/application": "0.
|
|
30
|
-
"@nmtjs/client": "0.
|
|
31
|
-
"@nmtjs/common": "0.
|
|
32
|
-
"@nmtjs/gateway": "0.
|
|
33
|
-
"@nmtjs/protocol": "0.
|
|
28
|
+
"uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.67.0",
|
|
29
|
+
"@nmtjs/application": "0.17.0-beta.2",
|
|
30
|
+
"@nmtjs/client": "0.17.0-beta.2",
|
|
31
|
+
"@nmtjs/common": "0.17.0-beta.2",
|
|
32
|
+
"@nmtjs/gateway": "0.17.0-beta.2",
|
|
33
|
+
"@nmtjs/protocol": "0.17.0-beta.2"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"@types/bun": "^1.3.0",
|
|
37
37
|
"@types/deno": "^2.3.0",
|
|
38
|
-
"@types/node": "^24",
|
|
39
|
-
"uWebSockets.js": "^20.
|
|
40
|
-
"@nmtjs/application": "0.
|
|
41
|
-
"@nmtjs/common": "0.
|
|
42
|
-
"@nmtjs/
|
|
43
|
-
"@nmtjs/
|
|
44
|
-
"@nmtjs/
|
|
38
|
+
"@types/node": "^24.13.2",
|
|
39
|
+
"uWebSockets.js": "^20.67.0",
|
|
40
|
+
"@nmtjs/application": "0.17.0-beta.2",
|
|
41
|
+
"@nmtjs/common": "0.17.0-beta.2",
|
|
42
|
+
"@nmtjs/core": "0.17.0-beta.2",
|
|
43
|
+
"@nmtjs/protocol": "0.17.0-beta.2",
|
|
44
|
+
"@nmtjs/gateway": "0.17.0-beta.2"
|
|
45
45
|
},
|
|
46
46
|
"peerDependenciesMeta": {
|
|
47
47
|
"@types/bun": {
|
|
@@ -68,12 +68,9 @@
|
|
|
68
68
|
"LICENSE.md",
|
|
69
69
|
"README.md"
|
|
70
70
|
],
|
|
71
|
-
"version": "0.
|
|
71
|
+
"version": "0.17.0-beta.2",
|
|
72
72
|
"repository": {
|
|
73
73
|
"type": "git",
|
|
74
74
|
"url": "https://github.com/neematajs/neemata"
|
|
75
|
-
},
|
|
76
|
-
"scripts": {
|
|
77
|
-
"clean-build": "rm -rf ./dist"
|
|
78
75
|
}
|
|
79
76
|
}
|
package/src/runtimes/bun.ts
CHANGED
|
@@ -19,6 +19,11 @@ function adapterFactory(params: HttpAdapterParams<'bun'>): HttpAdapterServer {
|
|
|
19
19
|
let server: Bun.Server<undefined> | null = null
|
|
20
20
|
|
|
21
21
|
function createServer() {
|
|
22
|
+
const routes =
|
|
23
|
+
typeof params.runtime?.routes === 'object' && params.runtime.routes
|
|
24
|
+
? params.runtime.routes
|
|
25
|
+
: {}
|
|
26
|
+
|
|
22
27
|
return globalThis.Bun.serve({
|
|
23
28
|
...params.runtime,
|
|
24
29
|
unix: params.listen.unix as string,
|
|
@@ -32,9 +37,10 @@ function adapterFactory(params: HttpAdapterParams<'bun'>): HttpAdapterServer {
|
|
|
32
37
|
passphrase: params.tls.passphrase,
|
|
33
38
|
}
|
|
34
39
|
: undefined,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
routes: Object.assign({}, routes, {
|
|
41
|
+
'/healthy': { GET: OkResponse },
|
|
42
|
+
}) as any,
|
|
43
|
+
async fetch(request) {
|
|
38
44
|
const url = new URL(request.url)
|
|
39
45
|
try {
|
|
40
46
|
if (request.headers.get('upgrade') === 'websocket')
|
|
@@ -52,7 +58,7 @@ function adapterFactory(params: HttpAdapterParams<'bun'>): HttpAdapterServer {
|
|
|
52
58
|
return InternalServerErrorHttpResponse()
|
|
53
59
|
}
|
|
54
60
|
},
|
|
55
|
-
})
|
|
61
|
+
} as any)
|
|
56
62
|
}
|
|
57
63
|
|
|
58
64
|
return {
|
package/src/runtimes/deno.ts
CHANGED
|
@@ -61,7 +61,7 @@ function adapterFactory(params: HttpAdapterParams<'deno'>): HttpAdapterServer {
|
|
|
61
61
|
const server = globalThis.Deno.serve({
|
|
62
62
|
...params.runtime,
|
|
63
63
|
...options,
|
|
64
|
-
handler: async (request: Request
|
|
64
|
+
handler: async (request: Request) => {
|
|
65
65
|
const url = new URL(request.url)
|
|
66
66
|
if (url.pathname === '/healthy') {
|
|
67
67
|
return OkResponse()
|
package/src/runtimes/node.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {} from 'node:dns'
|
|
2
|
-
import { setTimeout } from 'node:timers/promises'
|
|
3
2
|
|
|
4
3
|
import type { ApplicationTransport } from '@nmtjs/application'
|
|
5
4
|
import type { ConnectionType } from '@nmtjs/protocol'
|
|
6
5
|
import { ProxyableTransportType } from '@nmtjs/gateway'
|
|
6
|
+
import { App, SSLApp, us_socket_local_port } from 'uWebSockets.js'
|
|
7
7
|
|
|
8
8
|
import type {
|
|
9
9
|
HttpAdapterParams,
|
|
@@ -18,11 +18,13 @@ import {
|
|
|
18
18
|
OkResponse,
|
|
19
19
|
} from '../utils.ts'
|
|
20
20
|
|
|
21
|
-
import { App, SSLApp, us_socket_local_port } from 'uWebSockets.js'
|
|
22
|
-
|
|
23
21
|
const statusResponse = OkResponse()
|
|
24
22
|
const statusResponseBuffer = await statusResponse.arrayBuffer()
|
|
25
23
|
|
|
24
|
+
type UwsResponse = Parameters<
|
|
25
|
+
Parameters<ReturnType<typeof App>['any']>[1]
|
|
26
|
+
>[0] & { aborted?: boolean }
|
|
27
|
+
|
|
26
28
|
function adapterFactory(params: HttpAdapterParams<'node'>): HttpAdapterServer {
|
|
27
29
|
const server = params.tls
|
|
28
30
|
? SSLApp({
|
|
@@ -42,11 +44,13 @@ function adapterFactory(params: HttpAdapterParams<'node'>): HttpAdapterServer {
|
|
|
42
44
|
})
|
|
43
45
|
.any('/*', async (res, req) => {
|
|
44
46
|
const requestController = new AbortController()
|
|
47
|
+
const uwsRes = res as UwsResponse
|
|
45
48
|
let aborted = false
|
|
46
49
|
let bodyController: ReadableStreamDefaultController<Buffer> | undefined
|
|
47
50
|
|
|
48
51
|
res.onAborted(() => {
|
|
49
52
|
aborted = true
|
|
53
|
+
uwsRes.aborted = true
|
|
50
54
|
requestController.abort()
|
|
51
55
|
|
|
52
56
|
try {
|
|
@@ -93,24 +97,28 @@ function adapterFactory(params: HttpAdapterParams<'node'>): HttpAdapterServer {
|
|
|
93
97
|
}
|
|
94
98
|
if (aborted) return undefined
|
|
95
99
|
else {
|
|
100
|
+
const fixedContentLength = response.body
|
|
101
|
+
? getContentLength(response.headers)
|
|
102
|
+
: undefined
|
|
96
103
|
res.cork(() => {
|
|
97
104
|
if (aborted) return undefined
|
|
98
105
|
res.writeStatus(
|
|
99
106
|
`${response.status.toString()} ${response.statusText}`,
|
|
100
107
|
)
|
|
101
|
-
response.headers.forEach((v, k) =>
|
|
108
|
+
response.headers.forEach((v, k) => {
|
|
109
|
+
if (
|
|
110
|
+
typeof fixedContentLength === 'number' &&
|
|
111
|
+
k.toLowerCase() === 'content-length'
|
|
112
|
+
) {
|
|
113
|
+
return
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
res.writeHeader(k, v)
|
|
117
|
+
})
|
|
102
118
|
})
|
|
103
119
|
if (response.body) {
|
|
104
120
|
try {
|
|
105
|
-
|
|
106
|
-
let chunk = await reader.read()
|
|
107
|
-
while (!chunk.done) {
|
|
108
|
-
if (aborted) break
|
|
109
|
-
if (chunk.value) res.cork(() => res.write(chunk.value!))
|
|
110
|
-
chunk = await reader.read()
|
|
111
|
-
}
|
|
112
|
-
if (aborted) await reader.cancel().catch(() => {})
|
|
113
|
-
else res.cork(() => res.end())
|
|
121
|
+
await handleResponseBody(uwsRes, response, fixedContentLength)
|
|
114
122
|
} catch {
|
|
115
123
|
if (!aborted) res.cork(() => res.close())
|
|
116
124
|
}
|
|
@@ -153,6 +161,127 @@ function adapterFactory(params: HttpAdapterParams<'node'>): HttpAdapterServer {
|
|
|
153
161
|
}
|
|
154
162
|
}
|
|
155
163
|
|
|
164
|
+
async function handleResponseBody(
|
|
165
|
+
res: UwsResponse,
|
|
166
|
+
response: Response,
|
|
167
|
+
fixedContentLength?: number,
|
|
168
|
+
): Promise<void> {
|
|
169
|
+
if (!response.body) return
|
|
170
|
+
|
|
171
|
+
if (typeof fixedContentLength === 'number') {
|
|
172
|
+
await handleFixedLengthStream(res, response.body, fixedContentLength)
|
|
173
|
+
return
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
await handleChunkedStream(res, response.body)
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
async function handleFixedLengthStream(
|
|
180
|
+
res: UwsResponse,
|
|
181
|
+
body: ReadableStream<Uint8Array>,
|
|
182
|
+
totalSize: number,
|
|
183
|
+
): Promise<void> {
|
|
184
|
+
const reader = body.getReader()
|
|
185
|
+
try {
|
|
186
|
+
if (totalSize === 0) {
|
|
187
|
+
if (!res.aborted) res.cork(() => res.endWithoutBody(0))
|
|
188
|
+
return
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
let responded = false
|
|
192
|
+
while (!res.aborted && !responded) {
|
|
193
|
+
const { done, value } = await reader.read()
|
|
194
|
+
if (done) break
|
|
195
|
+
if (value.byteLength === 0) continue
|
|
196
|
+
responded = await handleFixedChunk(res, value, totalSize)
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
if (!responded && !res.aborted) res.cork(() => res.close())
|
|
200
|
+
} finally {
|
|
201
|
+
reader.releaseLock()
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
async function handleChunkedStream(
|
|
206
|
+
res: UwsResponse,
|
|
207
|
+
body: ReadableStream<Uint8Array>,
|
|
208
|
+
): Promise<void> {
|
|
209
|
+
const reader = body.getReader()
|
|
210
|
+
try {
|
|
211
|
+
while (!res.aborted) {
|
|
212
|
+
const { done, value } = await reader.read()
|
|
213
|
+
if (done) break
|
|
214
|
+
if (value.byteLength === 0) continue
|
|
215
|
+
|
|
216
|
+
const ok = res.cork(() => res.write(value))
|
|
217
|
+
if (!ok) await waitWritable(res)
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
if (!res.aborted) res.cork(() => res.end())
|
|
221
|
+
} finally {
|
|
222
|
+
reader.releaseLock()
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
function handleFixedChunk(
|
|
227
|
+
res: UwsResponse,
|
|
228
|
+
chunk: Uint8Array,
|
|
229
|
+
totalSize: number,
|
|
230
|
+
): Promise<boolean> {
|
|
231
|
+
return new Promise((resolve, reject) => {
|
|
232
|
+
const chunkOffset = res.getWriteOffset()
|
|
233
|
+
|
|
234
|
+
const write = (offset: number) => {
|
|
235
|
+
if (res.aborted) {
|
|
236
|
+
reject(new Error('Response aborted'))
|
|
237
|
+
return false
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
const relativeOffset = offset - chunkOffset
|
|
241
|
+
const remaining =
|
|
242
|
+
relativeOffset > 0 ? chunk.subarray(relativeOffset) : chunk
|
|
243
|
+
|
|
244
|
+
let ok = false
|
|
245
|
+
let done = false
|
|
246
|
+
res.cork(() => {
|
|
247
|
+
;[ok, done] = res.tryEnd(remaining, totalSize)
|
|
248
|
+
})
|
|
249
|
+
|
|
250
|
+
if (done || ok) {
|
|
251
|
+
resolve(done)
|
|
252
|
+
return ok
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
res.onWritable(write)
|
|
256
|
+
return ok
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
write(chunkOffset)
|
|
260
|
+
})
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
function waitWritable(res: UwsResponse): Promise<void> {
|
|
264
|
+
return new Promise((resolve, reject) => {
|
|
265
|
+
res.onWritable(() => {
|
|
266
|
+
if (res.aborted) {
|
|
267
|
+
reject(new Error('Response aborted'))
|
|
268
|
+
return false
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
resolve()
|
|
272
|
+
return true
|
|
273
|
+
})
|
|
274
|
+
})
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
function getContentLength(headers: Headers): number | undefined {
|
|
278
|
+
const raw = headers.get('content-length')
|
|
279
|
+
if (!raw) return undefined
|
|
280
|
+
|
|
281
|
+
const value = Number(raw)
|
|
282
|
+
return Number.isSafeInteger(value) && value >= 0 ? value : undefined
|
|
283
|
+
}
|
|
284
|
+
|
|
156
285
|
export const HttpTransport: ApplicationTransport<
|
|
157
286
|
ConnectionType.Unidirectional,
|
|
158
287
|
HttpTransportOptions<'node'>,
|
package/src/server.ts
CHANGED
|
@@ -23,7 +23,6 @@ import type {
|
|
|
23
23
|
HttpAdapterServer,
|
|
24
24
|
HttpAdapterServerFactory,
|
|
25
25
|
HttpTransportCorsCustomParams,
|
|
26
|
-
HttpTransportCorsOptions,
|
|
27
26
|
HttpTransportOptions,
|
|
28
27
|
HttpTransportServerRequest,
|
|
29
28
|
} from './types.ts'
|
|
@@ -77,17 +76,12 @@ export function createHTTPTransportWorker(
|
|
|
77
76
|
return new HttpTransportServer(adapterFactory, options)
|
|
78
77
|
}
|
|
79
78
|
|
|
80
|
-
export class HttpTransportServer
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
{
|
|
79
|
+
export class HttpTransportServer implements TransportWorker<
|
|
80
|
+
ConnectionType.Unidirectional,
|
|
81
|
+
ApplicationResolvedProcedure
|
|
82
|
+
> {
|
|
84
83
|
#server: HttpAdapterServer
|
|
85
|
-
#corsOptions?:
|
|
86
|
-
| null
|
|
87
|
-
| true
|
|
88
|
-
| string[]
|
|
89
|
-
| HttpTransportCorsOptions
|
|
90
|
-
| ((origin: string) => boolean | HttpTransportCorsOptions)
|
|
84
|
+
#corsOptions?: HttpTransportOptions['cors']
|
|
91
85
|
|
|
92
86
|
params!: TransportWorkerParams<
|
|
93
87
|
ConnectionType.Unidirectional,
|
|
@@ -219,6 +213,12 @@ export class HttpTransportServer
|
|
|
219
213
|
if (metadata.size) {
|
|
220
214
|
responseHeaders.set('Content-Length', metadata.size.toString())
|
|
221
215
|
}
|
|
216
|
+
if (metadata.filename) {
|
|
217
|
+
responseHeaders.set(
|
|
218
|
+
'Content-Disposition',
|
|
219
|
+
`attachment; filename="${metadata.filename}"`,
|
|
220
|
+
)
|
|
221
|
+
}
|
|
222
222
|
|
|
223
223
|
// Convert source to ReadableStream
|
|
224
224
|
let stream: ReadableStream
|
|
@@ -282,7 +282,6 @@ export class HttpTransportServer
|
|
|
282
282
|
})
|
|
283
283
|
}
|
|
284
284
|
} catch (error) {
|
|
285
|
-
console.error(error)
|
|
286
285
|
if (error instanceof UnsupportedFormatError) {
|
|
287
286
|
const status =
|
|
288
287
|
error instanceof UnsupportedContentTypeError
|
|
@@ -398,7 +397,7 @@ export class HttpTransportServer
|
|
|
398
397
|
// const hooks = this.createWsHooks()
|
|
399
398
|
const opts: HttpAdapterParams = {
|
|
400
399
|
...this.options,
|
|
401
|
-
// logger: this.logger
|
|
400
|
+
// logger: forkLogger(this.logger, 'WsServer'),
|
|
402
401
|
fetchHandler: this.httpHandler.bind(this),
|
|
403
402
|
}
|
|
404
403
|
return this.adapterFactory(opts)
|