@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 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.
@@ -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
- // @ts-expect-error
22
- routes: { ...params.runtime?.routes, '/healthy': { GET: OkResponse } },
23
- async fetch(request, server) {
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')
@@ -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,mBAAmB;YACnB,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE;YACtE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM;gBACzB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBAChC,IAAI,CAAC;oBACH,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,WAAW;wBAChD,OAAO,oBAAoB,EAAE,CAAA;oBAC/B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;oBACzC,OAAO,MAAM,MAAM,CAAC,YAAY,CAC9B,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EACxB,IAAI,EACJ,OAAO,CAAC,MAAM,CACf,CAAA;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,uBAAuB;oBACvB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBAClB,yDAAyD;oBACzD,OAAO,+BAA+B,EAAE,CAAA;gBAC1C,CAAC;YACH,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP,IAAI,GAAG;gBACL,OAAO,MAAO,CAAA;YAChB,CAAC;SACF;QACD,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,GAAG,YAAY,EAAE,CAAA;YACvB,OAAO,MAAO,CAAC,GAAG,CAAC,IAAI,CAAA;QACzB,CAAC;QACD,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;gBACnB,MAAM,GAAG,IAAI,CAAA;YACf,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAKtB;IACF,SAAS,EAAE,sBAAsB,CAAC,IAAI;IACtC,WAAW;IACX,OAAO,CAAC,OAAO;QACb,OAAO,yBAAyB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;IAC3D,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"bun.js","sourceRoot":"","sources":["../../src/runtimes/bun.ts"],"names":[],"mappings":"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"}
@@ -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, info) => {
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":"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"}
1
+ {"version":3,"file":"deno.js","sourceRoot":"","sources":["../../src/runtimes/deno.ts"],"names":[],"mappings":"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"}
@@ -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) => res.writeHeader(k, v));
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
- const reader = response.body.getReader();
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;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAIjD,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,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAElE,MAAM,cAAc,GAAG,UAAU,EAAE,CAAA;AACnC,MAAM,oBAAoB,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,CAAA;AAE/D,SAAS,cAAc,CAAC,MAAiC;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG;QACvB,CAAC,CAAC,MAAM,CAAC;YACL,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU;YACjC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG;YAC7B,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI;SAChC,CAAC;QACJ,CAAC,CAAC,GAAG,EAAE,CAAA;IAET,MAAM;SACH,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;QACvB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;YACZ,GAAG;iBACA,WAAW,CAAC,GAAG,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;iBACpE,GAAG,CAAC,oBAAoB,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC;SACD,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5B,MAAM,iBAAiB,GAAG,IAAI,eAAe,EAAE,CAAA;QAC/C,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,cAAmE,CAAA;QAEvE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;YACjB,OAAO,GAAG,IAAI,CAAA;YACd,iBAAiB,CAAC,KAAK,EAAE,CAAA;YAEzB,IAAI,CAAC;gBACH,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACxD,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC,CAAC,CAAA;QAEF,IAAI,QAAQ,GAAG,oBAAoB,EAAE,CAAA;QAErC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;QAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAA;QAC9B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAE3C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,WAAW,CAAA;QAC/C,MAAM,KAAK,GACT,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;QACnE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,MAAM,IAAI,EAAE,CAAC,CAAA;QACvD,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QACvD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,cAAc,CAAS;gBACtC,KAAK,CAAC,UAAU;oBACd,cAAc,GAAG,UAAU,CAAA;oBAC3B,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,sBAAsB,EAAE,EAAE;wBAC7C,IAAI,OAAO;4BAAE,OAAM;wBACnB,IAAI,KAAK,EAAE,CAAC;4BACV,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;4BACjD,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;4BAC/B,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;wBAC1B,CAAC;wBACD,IAAI,sBAAsB,KAAK,EAAE;4BAAE,UAAU,CAAC,KAAK,EAAE,CAAA;oBACvD,CAAC,CAAC,CAAA;gBACJ,CAAC;aACF,CAAC,CAAA;YACF,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAClC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EACxB,IAAI,EACJ,iBAAiB,CAAC,MAAM,CACzB,CAAA;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,uBAAuB;YACvB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClB,yDAAyD;YACzD,QAAQ,GAAG,+BAA+B,EAAE,CAAA;QAC9C,CAAC;QACD,IAAI,OAAO;YAAE,OAAO,SAAS,CAAA;aACxB,CAAC;YACJ,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;gBACZ,IAAI,OAAO;oBAAE,OAAO,SAAS,CAAA;gBAC7B,GAAG,CAAC,WAAW,CACb,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,QAAQ,CAAC,UAAU,EAAE,CACvD,CAAA;gBACD,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAC3D,CAAC,CAAC,CAAA;YACF,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;oBACxC,IAAI,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;oBAC/B,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;wBACnB,IAAI,OAAO;4BAAE,MAAK;wBAClB,IAAI,KAAK,CAAC,KAAK;4BAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAM,CAAC,CAAC,CAAA;wBACxD,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;oBAC7B,CAAC;oBACD,IAAI,OAAO;wBAAE,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;;wBAC7C,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;gBAChC,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,CAAC,OAAO;wBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;gBAC3C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO;oBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,OAAO;QACL,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACzB,KAAK,EAAE,GAAG,EAAE,CACV,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACvB,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC5B,IAAI,MAAM,EAAE,CAAC;wBACX,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;oBACzC,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAA;oBACxD,CAAC;gBACH,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACxB,CAAC;iBAAM,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAClD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;gBAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,WAAW,CAAA;gBAEtD,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;oBACrD,IAAI,MAAM,EAAE,CAAC;wBACX,OAAO,CAAC,GAAG,KAAK,MAAM,QAAQ,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;oBACnE,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAA;oBACxD,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAA;YAChD,CAAC;QACH,CAAC,CAAC;QACJ,IAAI,EAAE,GAAG,EAAE;YACT,MAAM,CAAC,KAAK,EAAE,CAAA;QAChB,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAKtB;IACF,SAAS,EAAE,sBAAsB,CAAC,IAAI;IACtC,WAAW;IACX,OAAO,CAAC,OAAO;QACb,OAAO,yBAAyB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;IAC3D,CAAC;CACF,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.child({ $label: 'WsServer' }),
367
+ // logger: forkLogger(this.logger, 'WsServer'),
366
368
  fetchHandler: this.httpHandler.bind(this),
367
369
  };
368
370
  return this.adapterFactory(opts);
@@ -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":"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"}
package/package.json CHANGED
@@ -25,23 +25,23 @@
25
25
  }
26
26
  },
27
27
  "devDependencies": {
28
- "uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.63.0",
29
- "@nmtjs/application": "0.16.1",
30
- "@nmtjs/client": "0.16.1",
31
- "@nmtjs/common": "0.16.1",
32
- "@nmtjs/gateway": "0.16.1",
33
- "@nmtjs/protocol": "0.16.1"
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.63.0",
40
- "@nmtjs/application": "0.16.1",
41
- "@nmtjs/common": "0.16.1",
42
- "@nmtjs/gateway": "0.16.1",
43
- "@nmtjs/core": "0.16.1",
44
- "@nmtjs/protocol": "0.16.1"
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.16.1",
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
  }
@@ -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
- // @ts-expect-error
36
- routes: { ...params.runtime?.routes, '/healthy': { GET: OkResponse } },
37
- async fetch(request, server) {
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 {
@@ -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, info: any) => {
64
+ handler: async (request: Request) => {
65
65
  const url = new URL(request.url)
66
66
  if (url.pathname === '/healthy') {
67
67
  return OkResponse()
@@ -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) => res.writeHeader(k, v))
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
- const reader = response.body.getReader()
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
- implements
82
- TransportWorker<ConnectionType.Unidirectional, ApplicationResolvedProcedure>
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.child({ $label: 'WsServer' }),
400
+ // logger: forkLogger(this.logger, 'WsServer'),
402
401
  fetchHandler: this.httpHandler.bind(this),
403
402
  }
404
403
  return this.adapterFactory(opts)