@seriousme/opifex 2.3.0 → 2.4.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.
Files changed (51) hide show
  1. package/client/client.ts +5 -0
  2. package/connNext/baseConnNext.ts +123 -0
  3. package/deno/tlsServer.test.ts +1 -1
  4. package/deno/wsServer.ts +11 -3
  5. package/dev_utils/WebStreamEndpoint.ts +5 -0
  6. package/dev_utils/asyncStreamEndpoint.ts +5 -0
  7. package/dev_utils/asyncStreamPair.ts +4 -9
  8. package/dev_utils/asyncStreamPairToNext.ts +45 -0
  9. package/dev_utils/asyncStreamToNext.ts +30 -137
  10. package/dev_utils/connNextPair.test.ts +2 -2
  11. package/dev_utils/generateCert.ts +297 -77
  12. package/dev_utils/mockConn.ts +37 -93
  13. package/dev_utils/mockServer.ts +1 -1
  14. package/dev_utils/webStreamPair.ts +3 -7
  15. package/dev_utils/webStreamPairToNext.ts +48 -0
  16. package/dev_utils/webStreamToNext.ts +28 -161
  17. package/dist/client/client.d.ts +4 -0
  18. package/dist/client/client.d.ts.map +1 -1
  19. package/dist/client/client.js +3 -0
  20. package/dist/client/client.js.map +1 -1
  21. package/dist/connNext/baseConnNext.d.ts +20 -0
  22. package/dist/connNext/baseConnNext.d.ts.map +1 -0
  23. package/dist/connNext/baseConnNext.js +95 -0
  24. package/dist/connNext/baseConnNext.js.map +1 -0
  25. package/dist/dev_utils/generateCert.d.ts +5 -4
  26. package/dist/dev_utils/generateCert.d.ts.map +1 -1
  27. package/dist/dev_utils/generateCert.js +230 -65
  28. package/dist/dev_utils/generateCert.js.map +1 -1
  29. package/dist/examples/mqtt+mqtts.test.js +1 -1
  30. package/dist/examples/mqtt+mqtts.test.js.map +1 -1
  31. package/dist/examples/mqtts.test.js +1 -1
  32. package/dist/examples/mqtts.test.js.map +1 -1
  33. package/dist/node/nodeSocketToNext.d.ts +10 -13
  34. package/dist/node/nodeSocketToNext.d.ts.map +1 -1
  35. package/dist/node/nodeSocketToNext.js +75 -131
  36. package/dist/node/nodeSocketToNext.js.map +1 -1
  37. package/dist/web/webSocketToNext.d.ts +18 -1
  38. package/dist/web/webSocketToNext.d.ts.map +1 -1
  39. package/dist/web/webSocketToNext.js +92 -127
  40. package/dist/web/webSocketToNext.js.map +1 -1
  41. package/dist/web/wsClient.d.ts.map +1 -1
  42. package/dist/web/wsClient.js +4 -3
  43. package/dist/web/wsClient.js.map +1 -1
  44. package/examples/mqtt+mqtts.test.ts +1 -1
  45. package/examples/mqtts.test.ts +1 -1
  46. package/node/nodeSocketToNext.ts +85 -148
  47. package/node/tlsServer.test.ts +1 -1
  48. package/package.json +2 -4
  49. package/web/webSocketToNext.ts +108 -145
  50. package/web/wsClient.ts +10 -3
  51. package/dev_utils/webStreamPair.test.ts +0 -171
@@ -1,187 +1,54 @@
1
- import type { ConnAddr, ConnNext } from "../connNext/connNext.ts";
2
- import { createWebStreamPair } from "./webStreamPair.ts";
3
- import type { WebStreamPairEndpoint } from "./webStreamPair.ts";
4
-
5
- /** wrapper class */
6
- export class WebStreamConnNextWrapper {
7
- reader: ReadableStreamDefaultReader<Uint8Array>;
8
- writer: WritableStreamDefaultWriter<Uint8Array>;
9
- closed: boolean;
10
- private endPoint: WebStreamPairEndpoint;
11
- private leftover: Uint8Array = new Uint8Array(0);
12
-
13
- /** Create a new ConnNext object from a Webstream */
14
- constructor(endPoint: WebStreamPairEndpoint) {
1
+ import { BaseConnNext } from "../connNext/baseConnNext.ts";
2
+ import type { WebStreamEndpoint } from "./WebStreamEndpoint.ts";
3
+
4
+ export class WebStreamConnNext extends BaseConnNext {
5
+ remoteAddr = undefined;
6
+ localAddr = undefined;
7
+ private endPoint;
8
+ private reader: ReadableStreamDefaultReader<Uint8Array>;
9
+ private writer: WritableStreamDefaultWriter<Uint8Array>;
10
+
11
+ constructor(endPoint: WebStreamEndpoint) {
12
+ super();
15
13
  this.endPoint = endPoint;
16
- this.closed = false;
17
14
  this.reader = endPoint.readable.getReader();
18
15
  this.writer = endPoint.writable.getWriter();
19
16
  this.reader.closed.catch(() => {});
20
17
  this.writer.closed.catch(() => {});
21
18
  }
22
19
 
23
- /**
24
- * Writes data chunk to the underlying WebStream WritableStream
25
- */ async write(chunk: Uint8Array): Promise<void> {
26
- if (this.closed) {
27
- return Promise.reject(new Error("Pipe closed"));
28
- }
20
+ protected async pullNextChunk(): Promise<Uint8Array | null> {
29
21
  try {
30
- await this.writer.write(chunk);
31
- return;
32
- } catch (err) {
33
- this.closed = true;
34
- throw err;
35
- }
36
- }
37
-
38
- /**
39
- * Reads data from the stream.
40
- * If `length` is provided, waits until exact number of bytes are buffered.
41
- */
42
- async read(length?: number): Promise<Uint8Array | null> {
43
- if (this.closed || (length ?? 0) < 0) {
44
- return null;
45
- }
46
-
47
- if (length === 0) {
48
- return new Uint8Array(0);
49
- }
50
- if (length === undefined) {
51
- if (this.leftover.length > 0) {
52
- const result = this.leftover;
53
- this.leftover = new Uint8Array(0);
54
- return result;
55
- }
56
22
  const { value, done } = await this.reader.read();
57
- if (value) {
58
- return value;
59
- }
60
- if (done) {
23
+ if (done || !value) {
61
24
  return null;
62
25
  }
26
+ return value;
27
+ } catch {
28
+ return null;
63
29
  }
30
+ }
64
31
 
65
- // Just to please typescript
66
- const bytesRequested = length === undefined ? 0 : length;
67
-
68
- const result = new Uint8Array(bytesRequested);
69
- let bytesAccumulated = 0;
70
-
71
- // Do we have data from the previous read()
72
- if (this.leftover.length > 0) {
73
- const take = Math.min(this.leftover.length, bytesRequested);
74
- result.set(this.leftover.subarray(0, take), bytesAccumulated);
75
- bytesAccumulated += take;
76
- this.leftover = this.leftover.subarray(take);
77
- }
78
-
79
- // Keep readin until we have enough data
80
- while (bytesAccumulated < bytesRequested) {
81
- const { value, done } = await this.reader.read();
82
-
83
- if (value) {
84
- const needed = bytesRequested - bytesAccumulated;
85
-
86
- if (value.length <= needed) {
87
- // We need the whole chunk
88
- result.set(value, bytesAccumulated);
89
- bytesAccumulated += value.length;
90
- } else {
91
- // Chunk is bigger than what we need
92
- result.set(value.subarray(0, needed), bytesAccumulated);
93
- bytesAccumulated += needed;
94
- // Save the rest for the next read() call
95
- this.leftover = value.subarray(needed);
96
- }
97
- }
98
- if (done) {
99
- // if the stream closed and not enough data was returned, return null
100
- return null;
101
- }
102
- }
103
- return result;
32
+ async write(chunk: Uint8Array): Promise<void> {
33
+ if (this.closed) throw new Error("Pipe closed");
34
+ await this.writer.write(chunk);
104
35
  }
105
36
 
106
- /**
107
- * Closes the reader, writer, and underlying WebStream pair endpoint.
108
- */
109
37
  close(): void {
110
38
  if (!this.closed) {
111
39
  this.closed = true;
112
-
113
40
  try {
114
- void this.reader.cancel().catch(() => {
115
- // ignore duplicate/late cancel attempts; the stream may already be closed
116
- });
117
- this.reader?.releaseLock();
118
- // deno-coverage-ignore
119
- } catch (_err) { /* swallow */ }
120
-
121
- // deno-coverage-ignore-start
122
- void this.writer.close().catch(() => {
123
- // ignore duplicate/late close attempts; the stream may already be closed
124
- });
125
- // deno-coverage-ignore-stop
126
-
41
+ void this.reader.cancel().catch(() => {});
42
+ this.reader.releaseLock();
43
+ } catch { /* swallow */ }
44
+ void this.writer.close().catch(() => {});
127
45
  try {
128
46
  this.endPoint.close();
129
- } catch (_err) { /* swallow */ }
130
- }
131
- }
132
- async *[Symbol.asyncIterator]() {
133
- while (true) {
134
- const chunk = await this.read();
135
- if (chunk === null) {
136
- break;
137
- }
138
- yield chunk;
47
+ } catch { /* swallow */ }
139
48
  }
140
49
  }
141
50
  }
142
51
 
143
- /**
144
- * Creates a pair of cross-connected ConnNext sockets backed by WebStreams.
145
- * Offers the exact same API as `createConnNextPair`.
146
- */
147
- export function createConnNextPair(): {
148
- input: ConnNext;
149
- output: ConnNext;
150
- } {
151
- const { input: webInput, output: webOutput } = createWebStreamPair();
152
-
153
- const mockAddr: ConnAddr = {
154
- transport: "tcp",
155
- hostname: "127.0.0.1",
156
- port: 1883,
157
- };
158
-
159
- const inputWrapper = new WebStreamConnNextWrapper(webInput);
160
- const outputWrapper = new WebStreamConnNextWrapper(webOutput);
161
-
162
- const input: ConnNext = {
163
- remoteAddr: mockAddr,
164
- localAddr: mockAddr,
165
- read: (length) => inputWrapper.read(length),
166
- write: (data) => inputWrapper.write(data),
167
- [Symbol.asyncIterator]: () => inputWrapper[Symbol.asyncIterator](),
168
- close: () => {
169
- inputWrapper.close();
170
- outputWrapper.close();
171
- },
172
- };
173
-
174
- const output: ConnNext = {
175
- remoteAddr: mockAddr,
176
- localAddr: mockAddr,
177
- read: (length) => outputWrapper.read(length),
178
- write: (data) => outputWrapper.write(data),
179
- [Symbol.asyncIterator]: () => outputWrapper[Symbol.asyncIterator](),
180
- close: () => {
181
- outputWrapper.close();
182
- inputWrapper.close();
183
- },
184
- };
185
-
186
- return { input, output };
52
+ export function webStreamToNext(endPoint: WebStreamEndpoint) {
53
+ return new WebStreamConnNext(endPoint);
187
54
  }
@@ -15,6 +15,8 @@ export type ConnectParameters = {
15
15
  key?: string | undefined;
16
16
  /** number of retries before stopping connection attempts */
17
17
  numberOfRetries?: number | undefined;
18
+ /** maximum size of receive buffer, only used by webSockets for now */
19
+ maxBufferSize?: number | undefined;
18
20
  /** connect options */
19
21
  options?: ConnectOptions | undefined;
20
22
  };
@@ -70,6 +72,8 @@ export declare class Client {
70
72
  protected key?: string | undefined;
71
73
  /** the MQTT clientId */
72
74
  protected clientId: string;
75
+ /** the maximum number of bytes buffered by a ws/wss client */
76
+ protected maxBufferSize: number | undefined;
73
77
  private ctx;
74
78
  private connectPacket?;
75
79
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../client/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../client/client.ts"],"names":[],"mappings":"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"}
@@ -92,6 +92,8 @@ export class Client {
92
92
  key;
93
93
  /** the MQTT clientId */
94
94
  clientId;
95
+ /** the maximum number of bytes buffered by a ws/wss client */
96
+ maxBufferSize;
95
97
  ctx;
96
98
  connectPacket;
97
99
  /**
@@ -220,6 +222,7 @@ export class Client {
220
222
  this.caCerts = params?.caCerts;
221
223
  this.cert = params?.cert;
222
224
  this.key = params?.key;
225
+ this.maxBufferSize = params?.maxBufferSize;
223
226
  const options = Object.assign({
224
227
  keepAlive: this.keepAlive,
225
228
  clientId: this.clientId,
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../client/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../client/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { ConnAddr, ConnNext } from "../connNext/connNext.ts";
2
+ export declare abstract class BaseConnNext implements ConnNext {
3
+ abstract remoteAddr?: ConnAddr;
4
+ abstract localAddr?: ConnAddr;
5
+ protected chunks: Uint8Array[];
6
+ protected queueOffset: number;
7
+ protected closed: boolean;
8
+ private isPulling;
9
+ abstract write(data: Uint8Array): Promise<void>;
10
+ abstract close(): void;
11
+ /** Specifiek per bron: haal pas daadwerkelijk 1 chunk op als de basisklasse erom vraagt */
12
+ protected abstract pullNextChunk(): Promise<Uint8Array | null>;
13
+ isClosed(): boolean;
14
+ protected getBufferedBytes(): number;
15
+ /** Zorgt ervoor dat we data ophalen op exact het moment dat het nodig is */
16
+ private ensureData;
17
+ read(length?: number): Promise<Uint8Array | null>;
18
+ [Symbol.asyncIterator](): AsyncGenerator<Uint8Array<ArrayBufferLike>, void, unknown>;
19
+ }
20
+ //# sourceMappingURL=baseConnNext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseConnNext.d.ts","sourceRoot":"","sources":["../../connNext/baseConnNext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAElE,8BAAsB,YAAa,YAAW,QAAQ;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;IAE9B,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,CAAM;IACpC,SAAS,CAAC,WAAW,SAAK;IAC1B,SAAS,CAAC,MAAM,UAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAE1B,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC;IAEvB,2FAA2F;IAC3F,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAE/D,QAAQ,IAAI,OAAO,CAElB;IAED,SAAS,CAAC,gBAAgB,IAAI,MAAM,CAQnC;IAED,4EAA4E;YAC9D,UAAU;IA4BlB,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAqDtD;IAEM,CAAC,MAAM,CAAC,aAAa,CAAC,+DAM5B;CACF"}
@@ -0,0 +1,95 @@
1
+ export class BaseConnNext {
2
+ chunks = [];
3
+ queueOffset = 0;
4
+ closed = false;
5
+ isPulling = false;
6
+ isClosed() {
7
+ return this.closed;
8
+ }
9
+ getBufferedBytes() {
10
+ let total = 0;
11
+ for (let i = 0; i < this.chunks.length; i++) {
12
+ total += i === 0
13
+ ? this.chunks[i].byteLength - this.queueOffset
14
+ : this.chunks[i].byteLength;
15
+ }
16
+ return total;
17
+ }
18
+ /** Zorgt ervoor dat we data ophalen op exact het moment dat het nodig is */
19
+ async ensureData(length) {
20
+ while (!this.closed &&
21
+ (this.getBufferedBytes() === 0 ||
22
+ (length !== undefined && this.getBufferedBytes() < length))) {
23
+ if (this.isPulling) {
24
+ // Voorkom gelijktijdige pulls als er al eentje loopt
25
+ await new Promise((resolve) => setTimeout(resolve, 5));
26
+ continue;
27
+ }
28
+ this.isPulling = true;
29
+ try {
30
+ const chunk = await this.pullNextChunk();
31
+ if (chunk === null || chunk.byteLength === 0) {
32
+ this.closed = true;
33
+ break;
34
+ }
35
+ this.chunks.push(chunk);
36
+ }
37
+ catch {
38
+ this.closed = true;
39
+ }
40
+ finally {
41
+ this.isPulling = false;
42
+ }
43
+ }
44
+ }
45
+ async read(length) {
46
+ if (this.closed && this.getBufferedBytes() === 0) {
47
+ return null;
48
+ }
49
+ if (length === 0) {
50
+ return new Uint8Array(0);
51
+ }
52
+ // Pull exact zolang tot we genoeg data hebben voor deze read()
53
+ await this.ensureData(length);
54
+ if (this.getBufferedBytes() === 0) {
55
+ return null;
56
+ }
57
+ // Onbegrensd lezen (geen lengte opgegeven)
58
+ if (length === undefined) {
59
+ const firstChunk = this.chunks.shift();
60
+ const result = firstChunk.subarray(this.queueOffset);
61
+ this.queueOffset = 0;
62
+ return result;
63
+ }
64
+ // Exacte lengte uitlezen uit de buffer
65
+ const bytesToTake = Math.min(length, this.getBufferedBytes());
66
+ const result = new Uint8Array(bytesToTake);
67
+ let bytesCopied = 0;
68
+ while (bytesCopied < bytesToTake && this.chunks.length > 0) {
69
+ const currentChunk = this.chunks[0];
70
+ const bytesNeeded = bytesToTake - bytesCopied;
71
+ const bytesAvailable = currentChunk.byteLength - this.queueOffset;
72
+ if (bytesAvailable <= bytesNeeded) {
73
+ result.set(currentChunk.subarray(this.queueOffset), bytesCopied);
74
+ bytesCopied += bytesAvailable;
75
+ this.chunks.shift();
76
+ this.queueOffset = 0;
77
+ }
78
+ else {
79
+ result.set(currentChunk.subarray(this.queueOffset, this.queueOffset + bytesNeeded), bytesCopied);
80
+ bytesCopied += bytesNeeded;
81
+ this.queueOffset += bytesNeeded;
82
+ }
83
+ }
84
+ return bytesCopied === 0 ? null : result;
85
+ }
86
+ async *[Symbol.asyncIterator]() {
87
+ while (true) {
88
+ const chunk = await this.read();
89
+ if (chunk === null)
90
+ break;
91
+ yield chunk;
92
+ }
93
+ }
94
+ }
95
+ //# sourceMappingURL=baseConnNext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseConnNext.js","sourceRoot":"","sources":["../../connNext/baseConnNext.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  /**
2
- * Generates a minimal, in-memory TLS certificate bundle for localhost development.
3
- * Includes Root CA, Server Certificate, and Server Private Key with SAN support (IPv4 & IPv6).
2
+ * Generates a minimal TLS certificate bundle for localhost using Web Crypto API.
3
+ * Uses 0 external dependencies (pure JS ASN.1 DER encoding).
4
+ * Do NOT use this in a production setting
4
5
  */
5
- export declare function generateLocalhostCerts(): {
6
+ export declare function generateLocalhostCerts(): Promise<{
6
7
  caCert: string;
7
8
  key: string;
8
9
  cert: string;
9
10
  fullChain: string;
10
- };
11
+ }>;
11
12
  //# sourceMappingURL=generateCert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateCert.d.ts","sourceRoot":"","sources":["../../dev_utils/generateCert.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAmFA"}
1
+ {"version":3,"file":"generateCert.d.ts","sourceRoot":"","sources":["../../dev_utils/generateCert.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,CAiED"}