@nmtjs/msgpack-format 0.15.0-beta.46 → 0.15.0-beta.48

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/README.md CHANGED
@@ -6,4 +6,34 @@
6
6
  - binary data streaming and event subscriptions
7
7
  - contract-based API
8
8
  - end-to-end type safety
9
- - CPU-intensive task execution on separate workers
9
+ - CPU-intensive task execution on separate workers
10
+
11
+ ## Jobs E2E (Local Docker)
12
+
13
+ Prerequisites:
14
+ - Docker Desktop (or Docker Engine) with `docker compose` available
15
+
16
+ No host ports are exposed in this setup. Tests run fully inside Docker containers.
17
+ The test image is optimized for Docker layer caching with `pnpm fetch` + offline install.
18
+
19
+ Run both backends with one command:
20
+
21
+ ```bash
22
+ pnpm run test:e2e:jobs:docker
23
+ ```
24
+
25
+ This command rebuilds the test image on each run and executes Redis + Valkey suites in one pass.
26
+
27
+ Run Jobs E2E directly in Docker:
28
+
29
+ ```bash
30
+ docker compose -f docker-compose.jobs-e2e.yml run --rm --build test-jobs
31
+ ```
32
+
33
+ Manual Docker control:
34
+
35
+ ```bash
36
+ docker compose -f docker-compose.jobs-e2e.yml up -d --wait redis valkey
37
+ docker compose -f docker-compose.jobs-e2e.yml run --rm --build test-jobs
38
+ docker compose -f docker-compose.jobs-e2e.yml down -v --remove-orphans
39
+ ```
package/dist/client.js CHANGED
@@ -10,6 +10,9 @@ import { decodeStreamExt, encodeStreamExt, extensionCodec } from './common.js';
10
10
  export class MsgpackFormat extends BaseClientFormat {
11
11
  contentType = 'application/msgpack';
12
12
  encode(data) {
13
+ if (typeof data === 'undefined') {
14
+ return new Uint8Array(0);
15
+ }
13
16
  return encode(data, { ignoreUndefined: true });
14
17
  }
15
18
  encodeRPC(data, context) {
@@ -31,6 +34,9 @@ export class MsgpackFormat extends BaseClientFormat {
31
34
  });
32
35
  }
33
36
  decode(data) {
37
+ if (data.byteLength === 0) {
38
+ return undefined;
39
+ }
34
40
  return decode(data);
35
41
  }
36
42
  decodeRPC(buffer, context) {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE9E;;;;GAIG;AACH,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IACjD,WAAW,GAAG,qBAAqB,CAAA;IAEnC,MAAM,CAAC,IAAS,EAAc;QAC5B,OAAO,MAAM,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAA;IAAA,CAC/C;IAED,SAAS,CACP,IAAa,EACb,OAAmD,EACnD;QACA,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,EAAE;YAClB,cAAc;YACd,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE;gBACP,YAAY,EAAE,CAAC,MAAe,EAAqB,EAAE,CAAC;oBACpD,IAAI,MAAM,YAAY,YAAY,EAAE,CAAC;wBACnC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;wBACxC,OAAO,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;oBACpD,CAAC;oBACD,OAAO,IAAI,CAAA;gBAAA,CACZ;aACF;SACF,CAAC,CAAA;IAAA,CACH;IAED,MAAM,CAAC,IAAqB,EAAO;QACjC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;IAAA,CACpB;IAED,SAAS,CACP,MAAuB,EACvB,OAEC,EACD;QACA,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,EAAE;YACpB,cAAc;YACd,OAAO,EAAE;gBACP,YAAY,EAAE,CAAC,IAAgB,EAAE,EAAE,CAAC;oBAClC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;oBAC9C,OAAO,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;gBAAA,CACvC;aACF;SACF,CAAC,CAAA;IAAA,CACH;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE9E;;;;GAIG;AACH,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IACjD,WAAW,GAAG,qBAAqB,CAAA;IAEnC,MAAM,CAAC,IAAS,EAAc;QAC5B,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAA;IAAA,CAC/C;IAED,SAAS,CACP,IAAa,EACb,OAAmD,EACnD;QACA,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,EAAE;YAClB,cAAc;YACd,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE;gBACP,YAAY,EAAE,CAAC,MAAe,EAAqB,EAAE,CAAC;oBACpD,IAAI,MAAM,YAAY,YAAY,EAAE,CAAC;wBACnC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;wBACxC,OAAO,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;oBACpD,CAAC;oBACD,OAAO,IAAI,CAAA;gBAAA,CACZ;aACF;SACF,CAAC,CAAA;IAAA,CACH;IAED,MAAM,CAAC,IAAqB,EAAO;QACjC,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;IAAA,CACpB;IAED,SAAS,CACP,MAAuB,EACvB,OAEC,EACD;QACA,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,EAAE;YACpB,cAAc;YACd,OAAO,EAAE;gBACP,YAAY,EAAE,CAAC,IAAgB,EAAE,EAAE,CAAC;oBAClC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;oBAC9C,OAAO,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;gBAAA,CACvC;aACF;SACF,CAAC,CAAA;IAAA,CACH;CACF"}
package/dist/server.js CHANGED
@@ -46,6 +46,9 @@ export class MsgpackFormat extends BaseServerFormat {
46
46
  }));
47
47
  }
48
48
  decode(data) {
49
+ if (data.byteLength === 0) {
50
+ return undefined;
51
+ }
49
52
  return decode(data);
50
53
  }
51
54
  decodeRPC(buffer, context) {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE9E,+EAA+E;AAC/E,MAAM,cAAc;IAEA,QAAQ;IACR,QAAQ;IAF1B,YACkB,QAAgB,EAChB,QAIf,EACD;wBANgB,QAAQ;wBACR,QAAQ;IAKvB,CAAC;CACL;AAED,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IACjD,WAAW,GAAG,qBAAqB,CAAA;IACnC,MAAM,GAAG,CAAC,qBAAqB,CAAC,CAAA;IAEhC,MAAM,CAAC,IAAS,EAAE;QAChB,OAAO,OAAO,IAAI,KAAK,WAAW;YAChC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAAA,CACpB;IAED,UAAU,CAAC,QAAgB,EAAE,QAAkC,EAAE;QAC/D,OAAO,IAAI,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAAA,CAC9C;IAED,SAAS,CAAC,IAAa,EAAE,QAA0B,EAAE;QACnD,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAChB,MAAM,CAAC,IAAI,EAAE;YACX,cAAc;YACd,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE;gBACP,YAAY,EAAE,CAAC,MAAe,EAAqB,EAAE,CAAC;oBACpD,IAAI,MAAM,YAAY,cAAc,EAAE,CAAC;wBACrC,OAAO,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;oBAC1D,CAAC;oBACD,IAAI,MAAM,YAAY,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBACpD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAmB,CAAA;wBAC/D,IAAI,MAAM,YAAY,cAAc,EAAE,CAAC;4BACrC,OAAO,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;wBAC1D,CAAC;oBACH,CAAC;oBACD,OAAO,IAAI,CAAA;gBAAA,CACZ;aACF;SACF,CAAC,CACH,CAAA;IAAA,CACF;IAED,MAAM,CAAC,IAAY,EAAE;QACnB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;IAAA,CACpB;IAED,SAAS,CACP,MAAc,EACd,OAAqD,EACrD;QACA,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,EAAE;YACpB,cAAc;YACd,OAAO,EAAE;gBACP,YAAY,EAAE,CAAC,IAAgB,EAAE,EAAE,CAAC;oBAClC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;oBAC9C,OAAO,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;gBAAA,CACvC;aACF;SACF,CAAC,CAAA;IAAA,CACH;CACF"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE9E,+EAA+E;AAC/E,MAAM,cAAc;IAEA,QAAQ;IACR,QAAQ;IAF1B,YACkB,QAAgB,EAChB,QAIf,EACD;wBANgB,QAAQ;wBACR,QAAQ;IAKvB,CAAC;CACL;AAED,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IACjD,WAAW,GAAG,qBAAqB,CAAA;IACnC,MAAM,GAAG,CAAC,qBAAqB,CAAC,CAAA;IAEhC,MAAM,CAAC,IAAS,EAAE;QAChB,OAAO,OAAO,IAAI,KAAK,WAAW;YAChC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAAA,CACpB;IAED,UAAU,CAAC,QAAgB,EAAE,QAAkC,EAAE;QAC/D,OAAO,IAAI,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAAA,CAC9C;IAED,SAAS,CAAC,IAAa,EAAE,QAA0B,EAAE;QACnD,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAChB,MAAM,CAAC,IAAI,EAAE;YACX,cAAc;YACd,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE;gBACP,YAAY,EAAE,CAAC,MAAe,EAAqB,EAAE,CAAC;oBACpD,IAAI,MAAM,YAAY,cAAc,EAAE,CAAC;wBACrC,OAAO,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;oBAC1D,CAAC;oBACD,IAAI,MAAM,YAAY,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBACpD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAmB,CAAA;wBAC/D,IAAI,MAAM,YAAY,cAAc,EAAE,CAAC;4BACrC,OAAO,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;wBAC1D,CAAC;oBACH,CAAC;oBACD,OAAO,IAAI,CAAA;gBAAA,CACZ;aACF;SACF,CAAC,CACH,CAAA;IAAA,CACF;IAED,MAAM,CAAC,IAAY,EAAE;QACnB,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;IAAA,CACpB;IAED,SAAS,CACP,MAAc,EACd,OAAqD,EACrD;QACA,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,EAAE;YACpB,cAAc;YACd,OAAO,EAAE;gBACP,YAAY,EAAE,CAAC,IAAgB,EAAE,EAAE,CAAC;oBAClC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;oBAC9C,OAAO,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;gBAAA,CACvC;aACF;SACF,CAAC,CAAA;IAAA,CACH;CACF"}
package/package.json CHANGED
@@ -16,12 +16,12 @@
16
16
  },
17
17
  "dependencies": {
18
18
  "@msgpack/msgpack": "^3.1.3",
19
- "@nmtjs/common": "0.15.0-beta.46",
20
- "@nmtjs/protocol": "0.15.0-beta.46"
19
+ "@nmtjs/common": "0.15.0-beta.48",
20
+ "@nmtjs/protocol": "0.15.0-beta.48"
21
21
  },
22
22
  "peerDependencies": {
23
- "@nmtjs/protocol": "0.15.0-beta.46",
24
- "@nmtjs/common": "0.15.0-beta.46"
23
+ "@nmtjs/common": "0.15.0-beta.48",
24
+ "@nmtjs/protocol": "0.15.0-beta.48"
25
25
  },
26
26
  "files": [
27
27
  "dist",
@@ -29,7 +29,7 @@
29
29
  "LICENSE.md",
30
30
  "README.md"
31
31
  ],
32
- "version": "0.15.0-beta.46",
32
+ "version": "0.15.0-beta.48",
33
33
  "scripts": {
34
34
  "clean-build": "rm -rf ./dist"
35
35
  }
package/src/client.ts CHANGED
@@ -19,6 +19,10 @@ export class MsgpackFormat extends BaseClientFormat {
19
19
  contentType = 'application/msgpack'
20
20
 
21
21
  encode(data: any): Uint8Array {
22
+ if (typeof data === 'undefined') {
23
+ return new Uint8Array(0)
24
+ }
25
+
22
26
  return encode(data, { ignoreUndefined: true })
23
27
  }
24
28
 
@@ -46,6 +50,10 @@ export class MsgpackFormat extends BaseClientFormat {
46
50
  }
47
51
 
48
52
  decode(data: ArrayBufferView): any {
53
+ if (data.byteLength === 0) {
54
+ return undefined
55
+ }
56
+
49
57
  return decode(data)
50
58
  }
51
59
 
package/src/server.ts CHANGED
@@ -60,6 +60,10 @@ export class MsgpackFormat extends BaseServerFormat {
60
60
  }
61
61
 
62
62
  decode(data: Buffer) {
63
+ if (data.byteLength === 0) {
64
+ return undefined
65
+ }
66
+
63
67
  return decode(data)
64
68
  }
65
69