@xxxaz/json-rpc-schema-typing 0.9.12 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/cjs/JsonRpcException.js +17 -7
  2. package/cjs/JsonRpcException.js.map +1 -1
  3. package/cjs/JsonRpcMethod.js +18 -3
  4. package/cjs/JsonRpcMethod.js.map +1 -1
  5. package/cjs/JsonRpcValidator.js +32 -17
  6. package/cjs/JsonRpcValidator.js.map +1 -1
  7. package/cjs/WebSocketWrapper.js +24 -3
  8. package/cjs/WebSocketWrapper.js.map +1 -1
  9. package/cjs/client/JsonRpcMessagePortClient.js +1 -1
  10. package/cjs/client/JsonRpcMessagePortClient.js.map +1 -1
  11. package/cjs/client/JsonRpcWebSocketClient.js +4 -0
  12. package/cjs/client/JsonRpcWebSocketClient.js.map +1 -1
  13. package/cjs/router/FileSystemRouter.js +20 -10
  14. package/cjs/router/FileSystemRouter.js.map +1 -1
  15. package/cjs/schemas/Complex.js +9 -0
  16. package/cjs/schemas/Complex.js.map +1 -1
  17. package/cjs/schemas/Structure.js +4 -15
  18. package/cjs/schemas/Structure.js.map +1 -1
  19. package/cjs/server/JsonRpcWebSocketReceiver.js +1 -1
  20. package/cjs/server/JsonRpcWebSocketReceiver.js.map +1 -1
  21. package/cjs/utility.js +1 -1
  22. package/cjs/utility.js.map +1 -1
  23. package/esm/JsonRpcMethod.js +18 -3
  24. package/esm/JsonRpcMethod.js.map +1 -1
  25. package/esm/JsonRpcValidator.js +32 -17
  26. package/esm/JsonRpcValidator.js.map +1 -1
  27. package/esm/WebSocketWrapper.js +24 -3
  28. package/esm/WebSocketWrapper.js.map +1 -1
  29. package/esm/client/JsonRpcMessagePortClient.js +1 -1
  30. package/esm/client/JsonRpcMessagePortClient.js.map +1 -1
  31. package/esm/client/JsonRpcWebSocketClient.js +4 -0
  32. package/esm/client/JsonRpcWebSocketClient.js.map +1 -1
  33. package/esm/router/FileSystemRouter.js +3 -3
  34. package/esm/router/FileSystemRouter.js.map +1 -1
  35. package/esm/schemas/Complex.js +8 -0
  36. package/esm/schemas/Complex.js.map +1 -1
  37. package/esm/schemas/Structure.js +2 -12
  38. package/esm/schemas/Structure.js.map +1 -1
  39. package/esm/server/JsonRpcWebSocketReceiver.js +1 -1
  40. package/esm/server/JsonRpcWebSocketReceiver.js.map +1 -1
  41. package/esm/utility.js +1 -1
  42. package/esm/utility.js.map +1 -1
  43. package/package.json +10 -9
  44. package/types/JsonRpcMethod.d.ts +41 -11
  45. package/types/JsonRpcValidator.d.ts +5 -3
  46. package/types/WebSocketWrapper.d.ts +3 -0
  47. package/types/client/JsonRpcClient.d.ts +2 -2
  48. package/types/router/JsonRpcRouter.d.ts +3 -3
  49. package/types/schemas/Complex.d.ts +6 -0
  50. package/types/schemas/Structure.d.ts +5 -18
  51. package/types/types.d.ts +18 -1
@@ -1,35 +1,50 @@
1
1
  import { Ajv } from 'ajv';
2
2
  import { InvalidParams, InvalidReturn } from './JsonRpcException.js';
3
- import { $Optional } from './schemas/Structure.js';
4
3
  function validate(data, schema) {
5
4
  const ajv = new Ajv();
6
5
  const validate = ajv.compile(schema);
7
6
  const valid = validate(data);
8
7
  return {
9
8
  valid,
10
- errors: validate.errors ?? []
9
+ errors: [...serializeErrors(validate.errors)]
11
10
  };
12
11
  }
12
+ function* serializeErrors(error) {
13
+ if (!error)
14
+ return;
15
+ for (const { propertyName, message, schemaPath, data, keyword, instancePath, params } of error) {
16
+ const err = {};
17
+ if (propertyName)
18
+ err.propertyName = propertyName;
19
+ if (message)
20
+ err.message = message;
21
+ if (data)
22
+ err.data = data;
23
+ if (keyword)
24
+ err.keyword = keyword;
25
+ if (instancePath)
26
+ err.instancePath = instancePath;
27
+ if (schemaPath)
28
+ err.schemaPath = schemaPath;
29
+ if (Object.keys(err).length > 0) {
30
+ yield err;
31
+ }
32
+ if (params.errors) {
33
+ yield* serializeErrors(params.errors);
34
+ }
35
+ }
36
+ }
13
37
  export class JsonRpcValidator {
14
38
  schema;
15
39
  constructor(schema) {
16
40
  this.schema = schema;
17
41
  }
18
- get #params() {
19
- return this.schema.$params;
20
- }
21
- get #return() {
22
- return this.schema.$return;
23
- }
24
42
  validateParams(params) {
25
- const shorten = this.#params.slice(params.length).every($Optional.is);
26
- const schema = shorten ? this.#params.slice(0, params.length) : this.#params;
27
- const errors = schema
28
- .map((schema, index) => validate(params[index], schema))
29
- .map(({ errors }, argument) => errors.map(({ propertyName, message }) => ({ argument, property: propertyName ?? '', message: message ?? '' })))
30
- .flat();
43
+ if (!this.schema.$params)
44
+ return params === undefined;
45
+ const { errors } = validate(params, this.schema.$params);
31
46
  if (errors.length > 0) {
32
- const message = errors.map(({ argument, property, message }) => `args[${argument}].${property}: ${message}`).join('\n');
47
+ const message = errors.map(({ instancePath, message }) => `params${instancePath ?? ''}: ${message}`).join('\n');
33
48
  throw new InvalidParams(message, errors);
34
49
  }
35
50
  return true;
@@ -37,9 +52,9 @@ export class JsonRpcValidator {
37
52
  validateReturn(result) {
38
53
  if (!this.schema.$return)
39
54
  return result === undefined;
40
- const errors = validate(result, this.#return).errors.map(({ propertyName, message }) => ({ property: propertyName ?? '', message: message ?? '' }));
55
+ const { errors } = validate(result, this.schema.$return);
41
56
  if (errors.length > 0) {
42
- const message = errors.map(({ property, message }) => `return.${property}: ${message}`).join('\n');
57
+ const message = errors.map(({ instancePath, message }) => `return.${instancePath ?? ''}: ${message}`).join('\n');
43
58
  throw new InvalidReturn(message, errors);
44
59
  }
45
60
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"JsonRpcValidator.js","sourceRoot":"","sources":["../src/JsonRpcValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JsonRpcValidator.js","sourceRoot":"","sources":["../src/JsonRpcValidator.ts"],"names":[],"mappings":"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"}
@@ -25,8 +25,11 @@ export class NodeWebSocketWrapper {
25
25
  send(data) {
26
26
  this.socket.send(JSON.stringify(data));
27
27
  }
28
- close() {
28
+ detach() {
29
29
  this.socket.off('message', this.#onMessage);
30
+ }
31
+ close() {
32
+ this.detach();
30
33
  this.socket.close();
31
34
  }
32
35
  #onMessage = async (data) => {
@@ -61,13 +64,31 @@ export class BrowserWebSocketWrapper {
61
64
  return this.socket.readyState;
62
65
  }
63
66
  #onMessage = async (ev) => {
64
- this.listener(ev.data);
67
+ const parsed = await this.#parseMessage(ev.data);
68
+ this.listener(parsed);
65
69
  };
70
+ async #parseMessage(data) {
71
+ if (data instanceof ArrayBuffer) {
72
+ return JSON.parse(await new Blob([data]).text());
73
+ }
74
+ try {
75
+ if (typeof data === 'string') {
76
+ return JSON.parse(data);
77
+ }
78
+ }
79
+ catch (e) {
80
+ console.error('failed to parse message', data, e);
81
+ }
82
+ return data;
83
+ }
66
84
  send(data) {
67
85
  this.socket.send(JSON.stringify(data));
68
86
  }
69
- close() {
87
+ detach() {
70
88
  this.socket.removeEventListener('message', this.#onMessage);
89
+ }
90
+ close() {
91
+ this.detach();
71
92
  this.socket.close();
72
93
  }
73
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocketWrapper.js","sourceRoot":"","sources":["../src/WebSocketWrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebSocketWrapper.js","sourceRoot":"","sources":["../src/WebSocketWrapper.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,aAAa,CAAC,MAAyB,EAAE,QAAwB,EAAE,cAAqC;IACpH,IAAI,WAAW,IAAI,UAAU,IAAI,MAAM,YAAY,SAAS,EAAE,CAAC;QAC3D,OAAO,IAAI,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,IAAI,oBAAoB,CAAC,MAAuB,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;AACvF,CAAC;AAwBD,MAAM,OAAO,oBAAoB;IAEhB;IACA;IACA;IAHb,YACa,MAAqB,EACrB,QAAwB,EACxB,cAAqC;QAFrC,WAAM,GAAN,MAAM,CAAe;QACrB,aAAQ,GAAR,QAAQ,CAAgB;QACxB,mBAAc,GAAd,cAAc,CAAuB;QAE9C,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE;YACtC,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,IAAsB;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM;QACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAED,KAAK;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAEQ,UAAU,GAAG,KAAK,EAAE,IAAa,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,KAAK,CAAC,aAAa,CAAC,IAAa;QAC7B,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,IAAI,GACJ,IAAI,YAAY,KAAK;YACvB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA,EAAE,CAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACJ;AAED,MAAM,OAAO,uBAAuB;IAEnB;IACA;IACA;IAHb,YACa,MAAiB,EACjB,QAAwB,EACxB,cAAqC;QAFrC,WAAM,GAAN,MAAM,CAAW;QACjB,aAAQ,GAAR,QAAQ,CAAgB;QACxB,mBAAc,GAAd,cAAc,CAAuB;QAE9C,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE;YAClC,cAAc,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3F,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,UAA4B,CAAC;IACpD,CAAC;IAEQ,UAAU,GAAG,KAAK,EAAE,EAAgB,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,KAAK,CAAC,aAAa,CAAC,IAA+B;QAC/C,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC;YACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAwB,CAAC;IACpC,CAAC;IAED,IAAI,CAAC,IAAsB;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM;QACF,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAChE,CAAC;IAED,KAAK;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACJ"}
@@ -70,7 +70,7 @@ export class JsonRpcMessagePortClient extends JsonRpcClient {
70
70
  async #receive(event) {
71
71
  if (event.source && event.source !== this.#output)
72
72
  return;
73
- const { data } = event;
73
+ const data = JSON.parse(event.data);
74
74
  if (!isRpcResponse(data)) {
75
75
  console.debug('message is not JsonRpcResponse', data);
76
76
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"JsonRpcMessagePortClient.js","sourceRoot":"","sources":["../../src/client/JsonRpcMessagePortClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,OAAO,EAAc,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAA4B,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAsBvF,MAAM,OAAO,wBAAoD,SAAQ,aAAkB;IAC9E,aAAa,CAAS;IACtB,MAAM,CAAe;IACrB,OAAO,CAAgB;IAEhC,YAAY,OAA6C;QACrD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QACvC,KAAK,CAAC;YACF,MAAM;YACN,UAAU;YACV,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;SAC5C,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,IAAI,UAAU,CAAC,MAAM,IAAI,GAAG,CAAC;QAEtE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAA8B;QACzC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,OAAO,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO,IAAI,cAAc,CAAC;YACtB,KAAK,CAAC,KAAK,CAAC,UAAU;gBAClB,IAAI,QAAQ,EAAE,CAAC;oBACX,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjD,CAAC;gBACD,UAAU,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAA0B;QACnC,MAAM,OAAO,GAAG,QAAQ;aACnB,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAE,GAAG,CAAC,EAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,CAAW,CAAC;aAClD,MAAM,CAAC,CAAC,CAAE,EAAE,EAAE,OAAO,CAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAA;QACzC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAElC,OAAO,IAAI,cAAc,CAAC;YACtB,KAAK,CAAC,KAAK,CAAC,UAAU;gBAClB,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACxB,OAAM,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACtB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;oBACvD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC7C,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAG,CAAC,CAAC;gBAClC,CAAC;gBACD,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACxB,UAAU,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAAA,CAAC;IAEO,KAAK,GAAG,IAAI,GAAG,EAAoC,CAAC;IAC7D,KAAK,CAAC,OAAuB;QACzB,IAAI,QAAQ,GAA6C,IAAI,CAAC;QAC9D,IAAI,OAAO,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;YACrB,QAAQ,GAAG,IAAI,aAAa,EAAwB,CAAC;YACrD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,IAAG,IAAI,CAAC,OAAO,YAAY,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAmB;QAC9B,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,IAAI,CAAC,CAAC;YACtD,OAAO;QACX,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,IAAI,CAAC,CAAC;YAC7D,OAAO;QACX,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAA;YAC1C,OAAO;QACX,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;CAEJ"}
1
+ {"version":3,"file":"JsonRpcMessagePortClient.js","sourceRoot":"","sources":["../../src/client/JsonRpcMessagePortClient.ts"],"names":[],"mappings":"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"}
@@ -49,8 +49,12 @@ export class JsonRpcWebSocketClient extends JsonRpcClient {
49
49
  const promises = new Map(entries);
50
50
  return new ReadableStream({
51
51
  async start(controller) {
52
+ const initialCount = promises.size;
52
53
  controller.enqueue('[');
53
54
  while (promises.size > 0) {
55
+ if (promises.size < initialCount) {
56
+ controller.enqueue(',');
57
+ }
54
58
  const response = await Promise.race(promises.values());
55
59
  controller.enqueue(JSON.stringify(response));
56
60
  promises.delete(response.id);
@@ -1 +1 @@
1
- {"version":3,"file":"JsonRpcWebSocketClient.js","sourceRoot":"","sources":["../../src/client/JsonRpcWebSocketClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JsonRpcWebSocketClient.js","sourceRoot":"","sources":["../../src/client/JsonRpcWebSocketClient.ts"],"names":[],"mappings":"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"}
@@ -11,9 +11,10 @@ export class FileSystemRouter extends JsonRpcRouter {
11
11
  if (!stat.isDirectory())
12
12
  throw new Error(`Not a directory: ${rootDir}`);
13
13
  }
14
- // instanceof だとモジュールが重複した際に問題が派生する
14
+ // instanceof JsonRpcMethodDefinition だと参照先モジュールが複数存在した際に一致しなくなる
15
15
  static #isDefinition(obj) {
16
- return obj && obj.$params instanceof Array;
16
+ const key = obj?.constructor?.method;
17
+ return typeof key === 'symbol' && obj[key] instanceof Function;
17
18
  }
18
19
  #cache = {};
19
20
  async resolveChild(methodPath) {
@@ -37,7 +38,6 @@ export class FileSystemRouter extends JsonRpcRouter {
37
38
  if (FileSystemRouter.#isDefinition(module.default)) {
38
39
  return this.#cache[methodPath] = module.default;
39
40
  }
40
- console.warn(`Ignoring routing without default export as JsonRpcMethodDefinition: ${path}`);
41
41
  }
42
42
  catch (e) {
43
43
  console.error(`Invalid routing: ${path}`, e);
@@ -1 +1 @@
1
- {"version":3,"file":"FileSystemRouter.js","sourceRoot":"","sources":["../../src/router/FileSystemRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileSystemRouter.js","sourceRoot":"","sources":["../../src/router/FileSystemRouter.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,14 @@ export function $Expand(source, expand) {
20
20
  ...expand,
21
21
  };
22
22
  }
23
+ export function $Optional(item) {
24
+ return {
25
+ oneOf: [item, false]
26
+ };
27
+ }
28
+ $Optional.is = (item) => {
29
+ return Boolean((item?.oneOf ?? item?.anyOf ?? []).some(i => i === false));
30
+ };
23
31
  export function $And(...allOf) {
24
32
  return {
25
33
  allOf
@@ -1 +1 @@
1
- {"version":3,"file":"Complex.js","sourceRoot":"","sources":["../../src/schemas/Complex.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,KAAK,CAA2C,GAAG,QAAW;IAC1E,OAAO;QACH,IAAI,EAAE,QAAQ;KACR,CAAC;AACf,CAAC;AAED,MAAM,UAAU,SAAS,CAAmB,GAAM;IAC9C,OAAO;QACH,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAgB;KAC/B,CAAC;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAyC,GAAM;IACtE,OAAO;QACH,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAiB;KAClC,CAAC;AACf,CAAC;AAAA,CAAC;AAEF,MAAM,UAAU,OAAO,CAAyD,MAAW,EAAE,MAAU;IACnG,OAAO;QACH,GAAG,MAAM;QACT,GAAG,MAAM;KACH,CAAC;AACf,CAAC;AAED,MAAM,UAAU,IAAI,CAA+B,GAAG,KAAc;IAChE,OAAO;QACH,KAAK;KACC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,GAAG,CAA+B,GAAG,KAAc;IAC/D,OAAO;QACH,KAAK;KACC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,IAAI,CAA+B,GAAG,KAAc;IAChE,OAAO;QACH,KAAK;KACC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"Complex.js","sourceRoot":"","sources":["../../src/schemas/Complex.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,KAAK,CAA2C,GAAG,QAAW;IAC1E,OAAO;QACH,IAAI,EAAE,QAAQ;KACR,CAAC;AACf,CAAC;AAED,MAAM,UAAU,SAAS,CAAmB,GAAM;IAC9C,OAAO;QACH,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAgB;KAC/B,CAAC;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAyC,GAAM;IACtE,OAAO;QACH,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAiB;KAClC,CAAC;AACf,CAAC;AAAA,CAAC;AAEF,MAAM,UAAU,OAAO,CAAyD,MAAW,EAAE,MAAU;IACnG,OAAO;QACH,GAAG,MAAM;QACT,GAAG,MAAM;KACH,CAAC;AACf,CAAC;AAED,MAAM,UAAU,SAAS,CAAuB,IAAO;IACnD,OAAO;QACH,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;KACd,CAAC;AACf,CAAC;AACD,SAAS,CAAC,EAAE,GAAG,CAAC,IAA0B,EAAW,EAAE;IACnD,OAAO,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC,CAAC;AAEF,MAAM,UAAU,IAAI,CAA+B,GAAG,KAAc;IAChE,OAAO;QACH,KAAK;KACC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,GAAG,CAA+B,GAAG,KAAc;IAC/D,OAAO;QACH,KAAK;KACC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,IAAI,CAA+B,GAAG,KAAc;IAChE,OAAO;QACH,KAAK;KACC,CAAC;AACf,CAAC"}
@@ -1,14 +1,4 @@
1
- const $optionalKey = Symbol('$Optional');
2
- export function $Optional(item) {
3
- return {
4
- ...item,
5
- [$optionalKey]: true
6
- };
7
- }
8
- $Optional.key = $optionalKey;
9
- $Optional.is = (item) => {
10
- return Boolean(item && item[$optionalKey] === true);
11
- };
1
+ import { $Optional } from "./Complex.js";
12
2
  export function $Array(items) {
13
3
  return {
14
4
  type: 'array',
@@ -18,7 +8,7 @@ export function $Array(items) {
18
8
  export function $Tuple(...items) {
19
9
  return {
20
10
  type: 'array',
21
- items,
11
+ items: items,
22
12
  minItems: items.lastIndexOf((i) => !$Optional.is(i)) + 1,
23
13
  maxItems: items.length,
24
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Structure.js","sourceRoot":"","sources":["../../src/schemas/Structure.ts"],"names":[],"mappings":"AAGA,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAEzC,MAAM,UAAU,SAAS,CAAuB,IAAO;IACnD,OAAO;QACH,GAAG,IAAI;QACP,CAAC,YAAY,CAAC,EAAE,IAAI;KACR,CAAC;AACrB,CAAC;AACD,SAAS,CAAC,GAAG,GAAG,YAAY,CAAC;AAC7B,SAAS,CAAC,EAAE,GAAG,CAAC,IAA0B,EAAmB,EAAE;IAC3D,OAAO,OAAO,CAAC,IAAI,IAAK,IAAgB,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,UAAU,MAAM,CAAuB,KAAQ;IACjD,OAAO;QACH,IAAI,EAAE,OAAO;QACb,KAAK;KACC,CAAC;AACf,CAAC;AAID,MAAM,UAAU,MAAM,CAAyB,GAAG,KAAQ;IACtD,OAAO;QACH,IAAI,EAAE,OAAO;QACb,KAAK;QACL,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAsB;QACtF,QAAQ,EAAE,KAAK,CAAC,MAA0B;KACpC,CAAC;AACf,CAAC;AAQD,MAAM,UAAU,OAAO,CAAyB,UAAa;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;SACtC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;SAC9C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAsB,CAAC;IAC9C,OAAO;QACH,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,QAAQ;QACR,UAAU,EAAE,UAA2B;KACjC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"Structure.js","sourceRoot":"","sources":["../../src/schemas/Structure.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,UAAU,MAAM,CAAuB,KAAQ;IACjD,OAAO;QACH,IAAI,EAAE,OAAO;QACb,KAAK;KACC,CAAC;AACf,CAAC;AAOD,MAAM,UAAU,MAAM,CAAyB,GAAG,KAAQ;IACtD,OAAO;QACH,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,KAAU;QACjB,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAiC;QACpG,QAAQ,EAAE,KAAK,CAAC,MAA0B;KACpC,CAAC;AACf,CAAC;AAKD,MAAM,UAAU,OAAO,CAAyB,UAAa;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;SACtC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;SAC9C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAsB,CAAC;IAC9C,OAAO;QACH,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,QAAQ;QACR,UAAU,EAAE,UAAe;KACrB,CAAC;AACf,CAAC"}
@@ -15,7 +15,7 @@ export class JsonRpcWebSocketReceiver extends JsonRpcServer {
15
15
  const response = request instanceof Array
16
16
  ? await Promise.all(request.map(req => this.call(context, req)))
17
17
  : await this.call(context, request);
18
- socket.send(JSON.stringify(response));
18
+ socket.send(response);
19
19
  }
20
20
  ;
21
21
  #sockets = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"JsonRpcWebSocketReceiver.js","sourceRoot":"","sources":["../../src/server/JsonRpcWebSocketReceiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAuC,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG5F,MAAM,OAAO,wBAA8B,SAAQ,aAAkB;IACjE,KAAK,CAAC,UAAU,CAAC,OAAY,EAAE,MAAwB,EAAE,IAAsB;QAC3E,MAAM,OAAO,GACP,CAAC,IAAI,YAAY,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChD,CAAC,CAAC,IAAwB;YAC9B,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;gBAChB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,IAAI,CAAC;QAEf,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;YACxD,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,GACR,OAAO,YAAY,KAAK;YACtB,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YAChE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE5C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC;IAAA,CAAC;IAEO,QAAQ,GAAG,IAAI,GAAG,EAAuC,CAAC;IACnE,KAAK,CAAC,OAAY,EAAE,MAAyB;QACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QACtC,MAAM,QAAQ,GAAG,CAAC,IAAsB,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACrF,MAAM,OAAO,GAAG,aAAa,CACzB,MAAM,EACN,QAAQ,EACR,CAAC,KAAK,EAAE,EAAE;YACN,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,CACJ,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,QAAQ,CAAC,MAAyB;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO,EAAE,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;CACJ"}
1
+ {"version":3,"file":"JsonRpcWebSocketReceiver.js","sourceRoot":"","sources":["../../src/server/JsonRpcWebSocketReceiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAuC,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG5F,MAAM,OAAO,wBAA8B,SAAQ,aAAkB;IACjE,KAAK,CAAC,UAAU,CAAC,OAAY,EAAE,MAAwB,EAAE,IAAsB;QAC3E,MAAM,OAAO,GACP,CAAC,IAAI,YAAY,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChD,CAAC,CAAC,IAAwB;YAC9B,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;gBAChB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,IAAI,CAAC;QAEf,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;YACxD,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,GACR,OAAO,YAAY,KAAK;YACtB,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YAChE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE5C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAAA,CAAC;IAEO,QAAQ,GAAG,IAAI,GAAG,EAAuC,CAAC;IACnE,KAAK,CAAC,OAAY,EAAE,MAAyB;QACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QACtC,MAAM,QAAQ,GAAG,CAAC,IAAsB,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACrF,MAAM,OAAO,GAAG,aAAa,CACzB,MAAM,EACN,QAAQ,EACR,CAAC,KAAK,EAAE,EAAE;YACN,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,CACJ,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,QAAQ,CAAC,MAAyB;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO,EAAE,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;CACJ"}
package/esm/utility.js CHANGED
@@ -36,7 +36,7 @@ export function isRpcResponse(data) {
36
36
  &&
37
37
  data.jsonrpc === '2.0'
38
38
  &&
39
- ('result' in data
39
+ ('id' in data
40
40
  ||
41
41
  'error' in data));
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utility.js","sourceRoot":"","sources":["../src/utility.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,QAAQ,CAAI,GAAM;IAC9B,OAAO,IAAI,cAAc,CAAI;QACzB,KAAK,CAAC,UAAU;YACZ,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxB,UAAU,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;KACJ,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAsB;IAClD,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,UAAU;IACtB,OAAO,IAAI,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAyC;IACzE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,EAA2B,CAAC;IAC3C,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,IAAI;YAAE,MAAM;IACpB,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAS;IAClC,OAAO,CACH,IAAI,YAAY,MAAM;;YAEtB,IAAI,CAAC,OAAO,KAAK,KAAK;;YAEtB,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAClC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAS;IACnC,OAAO,CACH,IAAI,YAAY,MAAM;;YAEtB,IAAI,CAAC,OAAO,KAAK,KAAK;;YAEtB,CACI,QAAQ,IAAI,IAAI;;oBAEhB,OAAO,IAAI,IAAI,CAClB,CACJ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"utility.js","sourceRoot":"","sources":["../src/utility.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,QAAQ,CAAI,GAAM;IAC9B,OAAO,IAAI,cAAc,CAAI;QACzB,KAAK,CAAC,UAAU;YACZ,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxB,UAAU,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;KACJ,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAsB;IAClD,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,UAAU;IACtB,OAAO,IAAI,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAyC;IACzE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,EAA2B,CAAC;IAC3C,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,IAAI;YAAE,MAAM;IACpB,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAS;IAClC,OAAO,CACH,IAAI,YAAY,MAAM;;YAEtB,IAAI,CAAC,OAAO,KAAK,KAAK;;YAEtB,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAClC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAS;IACnC,OAAO,CACH,IAAI,YAAY,MAAM;;YAEtB,IAAI,CAAC,OAAO,KAAK,KAAK;;YAEtB,CACI,IAAI,IAAI,IAAI;;oBAEZ,OAAO,IAAI,IAAI,CAClB,CACJ,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xxxaz/json-rpc-schema-typing",
3
- "version": "0.9.12",
3
+ "version": "0.10.0",
4
4
  "description": "",
5
5
  "author": "xxx Inc.",
6
6
  "license": "MIT",
@@ -51,18 +51,19 @@
51
51
  },
52
52
  "dependencies": {
53
53
  "@types/json-schema": "^7.0.15",
54
- "@types/ws": "^8.5.13",
55
- "@xxxaz/stream-api-json": "^1.0.1",
54
+ "@types/node": "^22.0.0",
55
+ "@types/ws": "^8.18.1",
56
+ "@xxxaz/stream-api-json": "^1.0.2",
56
57
  "ajv": "^8.17.1",
57
- "json-schema-to-ts": "^3.1.0",
58
- "yaml": "^2.4.5",
59
- "ws": "^8.18.0"
58
+ "json-schema-to-ts": "^3.1.1",
59
+ "ws": "^8.18.2",
60
+ "yaml": "^2.8.0"
60
61
  },
61
62
  "devDependencies": {
62
- "@types/jest": "^29.5.12",
63
+ "@types/jest": "^29.5.14",
63
64
  "jest": "^29.7.0",
64
- "ts-jest": "^29.1.5",
65
+ "ts-jest": "^29.3.4",
65
66
  "ts-node": "^10.9.2",
66
- "typescript": "^5.5.2"
67
+ "typescript": "^5.8.3"
67
68
  }
68
69
  }
@@ -1,20 +1,29 @@
1
- import { type FromSchema } from 'json-schema-to-ts';
2
- import { type JSONSchema } from "./types.js";
3
- export interface JsonRpcMethodSchema<PrmSch extends readonly JSONSchema[], RtnSch extends JSONSchema | undefined> {
1
+ import { type JSONSchema, type FromSchema } from "./types.js";
2
+ type ByPositionSchema = {
3
+ readonly type: 'array';
4
+ readonly items: readonly JSONSchema[];
5
+ };
6
+ type ObjectProperties = {
7
+ readonly [key: string]: JSONSchema;
8
+ };
9
+ type ByNameSchema = {
10
+ readonly type: 'object';
11
+ readonly properties: ObjectProperties;
12
+ };
13
+ export type ParameterSchema = ByPositionSchema | ByNameSchema | undefined;
14
+ export interface JsonRpcMethodSchema<PrmSch extends ParameterSchema, RtnSch extends JSONSchema | undefined> {
4
15
  readonly $params: PrmSch;
5
16
  readonly $return?: RtnSch;
6
17
  }
7
- export type Params<Schema> = Schema extends readonly [JSONSchema, ...infer Rmn] ? (Schema[0] extends {
8
- optional: true;
9
- } ? [p?: FromSchema<Schema[0]>, ...Params<Rmn>] : [FromSchema<Schema[0]>, ...Params<Rmn>]) : Schema extends readonly [] ? [] : never;
18
+ export type Params<Schema> = Schema extends ByPositionSchema ? FromSchema<Schema> : Schema extends ByNameSchema ? [FromSchema<Schema>] : Schema extends undefined ? [] : never;
10
19
  export type Return<Schema> = Schema extends undefined ? void : Schema extends JSONSchema ? FromSchema<Schema> : never;
11
- export type JsonRpcMethod<Context, PrmSch extends readonly JSONSchema[], RtnSch extends JSONSchema | undefined> = (this: Context, ...params: Params<PrmSch>) => Promise<Return<RtnSch>> | Return<RtnSch>;
20
+ export type JsonRpcMethod<Context, PrmSch extends ParameterSchema, RtnSch extends JSONSchema | undefined> = (this: Context, ...params: Params<PrmSch>) => Promise<Return<RtnSch>> | Return<RtnSch>;
12
21
  type ContextClass<Ctx> = {
13
22
  new (...args: any[]): Ctx;
14
23
  };
15
24
  type Context<Cls, FB> = Cls extends ContextClass<infer Ctx> ? Ctx : FB;
16
25
  declare const methodKey: unique symbol;
17
- export declare class JsonRpcMethodDefinition<Context, PrmSch extends readonly JSONSchema[], RtnSch extends JSONSchema | undefined> implements JsonRpcMethodSchema<PrmSch, RtnSch> {
26
+ export declare class JsonRpcMethodDefinition<Context, PrmSch extends ParameterSchema, RtnSch extends JSONSchema | undefined> implements JsonRpcMethodSchema<PrmSch, RtnSch> {
18
27
  readonly $params: PrmSch;
19
28
  readonly $return: RtnSch;
20
29
  readonly $contextClass?: ContextClass<Context> | undefined;
@@ -22,16 +31,37 @@ export declare class JsonRpcMethodDefinition<Context, PrmSch extends readonly JS
22
31
  readonly [methodKey]: JsonRpcMethod<Context, PrmSch, RtnSch>;
23
32
  constructor(method: JsonRpcMethod<Context, PrmSch, RtnSch>, $params: PrmSch, $return: RtnSch, $contextClass?: ContextClass<Context> | undefined);
24
33
  apply(ctx: Context, params: Params<PrmSch>): Return<RtnSch> | Promise<Return<RtnSch>>;
25
- static get builder(): DefinitionBuilder<undefined, never[], undefined>;
34
+ static get builder(): DefinitionBuilder<undefined, undefined, undefined>;
26
35
  }
27
- declare class DefinitionBuilder<CtxCls extends ContextClass<any> | undefined, PrmSch extends readonly JSONSchema[], RtnSch extends JSONSchema | undefined> implements JsonRpcMethodSchema<PrmSch, RtnSch> {
36
+ declare class DefinitionBuilder<CtxCls extends ContextClass<any> | undefined, PrmSch extends ParameterSchema, RtnSch extends JSONSchema | undefined> implements JsonRpcMethodSchema<PrmSch, RtnSch> {
28
37
  readonly $contextClass: CtxCls;
29
38
  readonly $params: PrmSch;
30
39
  readonly $return: RtnSch;
31
40
  constructor($contextClass: CtxCls, $params: PrmSch, $return: RtnSch);
32
41
  define<Ctx = {}>(method: JsonRpcMethod<Context<CtxCls, Ctx>, PrmSch, RtnSch>): JsonRpcMethodDefinition<Context<CtxCls, Ctx>, PrmSch, RtnSch>;
33
42
  contextClass<CtxCls extends ContextClass<any>>(contextClass: CtxCls): DefinitionBuilder<CtxCls, PrmSch, RtnSch>;
34
- paramsSchema<NewPrm extends readonly JSONSchema[]>(...params: NewPrm): DefinitionBuilder<CtxCls, NewPrm, RtnSch>;
43
+ params<NewPrm extends ParameterSchema>(params: NewPrm): DefinitionBuilder<CtxCls, NewPrm, RtnSch>;
44
+ paramsByName<NewPrm extends ObjectProperties>(params: NewPrm): DefinitionBuilder<CtxCls, {
45
+ readonly type: "object";
46
+ readonly additionalProperties: false;
47
+ readonly required: [Exclude<keyof NewPrm, Exclude<{ [K in keyof NewPrm]: import("./types.js").IsOptional<NewPrm[K], K, never>; }[keyof NewPrm], undefined>>];
48
+ readonly properties: NewPrm;
49
+ }, RtnSch>;
50
+ paramsByPosition<NewPrm extends readonly JSONSchema[]>(...params: NewPrm): DefinitionBuilder<CtxCls, {
51
+ readonly type: "array";
52
+ readonly items: [...NewPrm];
53
+ readonly minItems: import("./schemas/Structure.js").ExcludeOptional<[...NewPrm]>["length"];
54
+ readonly maxItems: import("./types.js").Max<[...NewPrm]["length"]>;
55
+ }, RtnSch>;
56
+ return<NewRtn extends JSONSchema | undefined>(rtn: NewRtn): DefinitionBuilder<CtxCls, PrmSch, NewRtn>;
57
+ /** @deprecated paramsByPosition を使用してください */
58
+ paramsSchema<NewPrm extends readonly JSONSchema[]>(...params: NewPrm): DefinitionBuilder<CtxCls, {
59
+ readonly type: "array";
60
+ readonly items: [...NewPrm];
61
+ readonly minItems: import("./schemas/Structure.js").ExcludeOptional<[...NewPrm]>["length"];
62
+ readonly maxItems: import("./types.js").Max<[...NewPrm]["length"]>;
63
+ }, RtnSch>;
64
+ /** @deprecated return を使用してください */
35
65
  returnSchema<NewRtn extends JSONSchema | undefined>(rtn: NewRtn): DefinitionBuilder<CtxCls, PrmSch, NewRtn>;
36
66
  }
37
67
  export {};
@@ -1,8 +1,10 @@
1
- import { JsonRpcMethodSchema, Params, Return } from "./JsonRpcMethod.js";
1
+ import { JsonRpcMethodSchema, Return } from "./JsonRpcMethod.js";
2
+ import { FromSchema } from 'json-schema-to-ts';
3
+ type ParamType<Sch extends JsonRpcMethodSchema<any, any>> = Sch['$params'] extends object ? FromSchema<Sch['$params']> : undefined;
2
4
  export declare class JsonRpcValidator<Sch extends JsonRpcMethodSchema<any, any>> {
3
- #private;
4
5
  readonly schema: Sch;
5
6
  constructor(schema: Sch);
6
- validateParams(params: unknown[]): params is Params<Sch['$params']>;
7
+ validateParams(params: unknown): params is ParamType<Sch>;
7
8
  validateReturn(result: unknown): result is Return<Sch['$return']>;
8
9
  }
10
+ export {};
@@ -17,6 +17,7 @@ export interface WebSocketWrapper<Socket extends WrapableWebSocket = WrapableWeb
17
17
  readonly listener: SocketListener;
18
18
  readonly readyState: WebSocketState;
19
19
  send(data: JsonSerializable): void;
20
+ detach(): void;
20
21
  close(): void;
21
22
  }
22
23
  export declare class NodeWebSocketWrapper implements WebSocketWrapper<NodeWebSocket> {
@@ -27,6 +28,7 @@ export declare class NodeWebSocketWrapper implements WebSocketWrapper<NodeWebSoc
27
28
  constructor(socket: NodeWebSocket, listener: SocketListener, closedListener: ScokcetClosedListener);
28
29
  get readyState(): WebSocketState;
29
30
  send(data: JsonSerializable): void;
31
+ detach(): void;
30
32
  close(): void;
31
33
  }
32
34
  export declare class BrowserWebSocketWrapper implements WebSocketWrapper<WebSocket> {
@@ -37,6 +39,7 @@ export declare class BrowserWebSocketWrapper implements WebSocketWrapper<WebSock
37
39
  constructor(socket: WebSocket, listener: SocketListener, closedListener: ScokcetClosedListener);
38
40
  get readyState(): WebSocketState;
39
41
  send(data: JsonSerializable): void;
42
+ detach(): void;
40
43
  close(): void;
41
44
  }
42
45
  export {};
@@ -1,4 +1,4 @@
1
- import { JsonRpcMethodSchema, Params, Return } from "../JsonRpcMethod.js";
1
+ import { JsonRpcMethodSchema, ParameterSchema, Params, Return } from "../JsonRpcMethod.js";
2
2
  import { type JsonRpcSchema } from "../router/JsonRpcRouter.js";
3
3
  import { JsonRpcRequest, JsonRpcResponse } from "../types.js";
4
4
  type PostRpc = (request: ReadableStream<string>) => Promise<ReadableStream<string>>;
@@ -12,7 +12,7 @@ type JsonRpcClientOptions<Sch extends JsonRpcSchema> = {
12
12
  declare const $generateId: unique symbol;
13
13
  declare const $requestStack: unique symbol;
14
14
  declare const $methodPath: unique symbol;
15
- type TriggerFunction<ParamSch extends ReadonlyArray<any>, RtnSch> = {
15
+ type TriggerFunction<ParamSch extends ParameterSchema, RtnSch> = {
16
16
  (...args: Params<ParamSch>): Promise<Return<RtnSch>>;
17
17
  notice(...args: Params<ParamSch>): void;
18
18
  };
@@ -1,7 +1,7 @@
1
1
  import { JsonSerializable } from "@xxxaz/stream-api-json";
2
- import { JsonRpcMethodDefinition, JsonRpcMethodSchema, Params, Return } from "../JsonRpcMethod.js";
3
- type AsyncFunction<P, R> = (...params: Params<P>) => Promise<Return<R>>;
4
- type NoticeFunction<Prm> = (...params: Params<Prm>) => void;
2
+ import { JsonRpcMethodDefinition, JsonRpcMethodSchema, ParameterSchema, Params, Return } from "../JsonRpcMethod.js";
3
+ type AsyncFunction<P, R> = P extends ParameterSchema ? (...params: Params<P>) => Promise<Return<R>> : never;
4
+ type NoticeFunction<P> = P extends ParameterSchema ? (...params: Params<P>) => void : never;
5
5
  export declare abstract class JsonRpcRouter<Context = {}> {
6
6
  abstract resolve(methodPath: string): Promise<JsonRpcRouter<Context> | JsonRpcMethodDefinition<Context, any, any> | null>;
7
7
  abstract resolveChild(methodPath: string): Promise<JsonRpcRouter<Context> | JsonRpcMethodDefinition<Context, any, any> | null>;
@@ -12,6 +12,12 @@ export declare function $EnumValues<T extends {
12
12
  readonly enum: [T[keyof T]];
13
13
  };
14
14
  export declare function $Expand<Src extends JSONSchema, Ex extends Partial<JSONSchema>>(source: Src, expand: Ex): Src & Ex;
15
+ export declare function $Optional<T extends JSONSchema>(item: T): {
16
+ readonly oneOf: readonly [T, false];
17
+ };
18
+ export declare namespace $Optional {
19
+ var is: (item: JSONSchema | undefined) => boolean;
20
+ }
15
21
  export declare function $And<Schemas extends JSONSchema[]>(...allOf: Schemas): {
16
22
  readonly allOf: Schemas;
17
23
  };
@@ -1,35 +1,22 @@
1
- import { IsOptional, JSONSchema, Max, RequiredKeys } from "../types.js";
2
- declare const $optionalKey: unique symbol;
3
- type OSchema = JSONSchema & {
4
- [$optionalKey]?: true;
5
- };
6
- export declare function $Optional<T extends JSONSchema>(item: T): T | undefined;
7
- export declare namespace $Optional {
8
- var key: typeof $optionalKey;
9
- var is: (item: JSONSchema | undefined) => item is OSchema;
10
- }
1
+ import { IsOptionalSchema, JSONSchema, Max, RequiredKeys } from "../types.js";
11
2
  export declare function $Array<T extends JSONSchema>(items: T): {
12
3
  readonly type: "array";
13
4
  readonly items: T;
14
5
  };
15
- type ExcludeUndefined<T extends any[]> = T extends [...infer A, infer L] ? IsOptional<L, ExcludeUndefined<A>, T> : T;
16
- type RequiredLength<T extends any[]> = ExcludeUndefined<[...T, undefined]>['length'];
6
+ export type ExcludeOptional<T extends any[]> = T extends [...infer A, infer L] ? IsOptionalSchema<L, ExcludeOptional<A>, T> : T;
17
7
  export declare function $Tuple<T extends JSONSchema[]>(...items: T): {
18
8
  readonly type: "array";
19
9
  readonly items: T;
20
- readonly minItems: RequiredLength<T>;
10
+ readonly minItems: ExcludeOptional<T>["length"];
21
11
  readonly maxItems: Max<T["length"]>;
22
12
  };
23
13
  type ObjectDefine = {
24
- [key: string]: OSchema | undefined;
25
- };
26
- type Properties<T extends ObjectDefine> = {
27
- [K in keyof T]: Exclude<T[K], undefined>;
14
+ [key: string]: JSONSchema;
28
15
  };
29
16
  export declare function $Object<T extends ObjectDefine>(properties: T): {
30
17
  readonly type: "object";
31
18
  readonly additionalProperties: false;
32
19
  readonly required: [RequiredKeys<T>];
33
- readonly properties: Properties<T>;
20
+ readonly properties: T;
34
21
  };
35
22
  export {};