@xxxaz/json-rpc-schema-typing 0.9.12 → 0.10.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.
- package/cjs/JsonRpcException.js +17 -7
- package/cjs/JsonRpcException.js.map +1 -1
- package/cjs/JsonRpcMethod.js +21 -4
- package/cjs/JsonRpcMethod.js.map +1 -1
- package/cjs/JsonRpcValidator.js +32 -17
- package/cjs/JsonRpcValidator.js.map +1 -1
- package/cjs/WebSocketWrapper.js +24 -3
- package/cjs/WebSocketWrapper.js.map +1 -1
- package/cjs/client/JsonRpcMessagePortClient.js +1 -1
- package/cjs/client/JsonRpcMessagePortClient.js.map +1 -1
- package/cjs/client/JsonRpcWebSocketClient.js +4 -0
- package/cjs/client/JsonRpcWebSocketClient.js.map +1 -1
- package/cjs/router/FileSystemRouter.js +20 -10
- package/cjs/router/FileSystemRouter.js.map +1 -1
- package/cjs/schemas/Complex.js +9 -0
- package/cjs/schemas/Complex.js.map +1 -1
- package/cjs/schemas/Structure.js +4 -15
- package/cjs/schemas/Structure.js.map +1 -1
- package/cjs/server/JsonRpcServer.js +1 -1
- package/cjs/server/JsonRpcServer.js.map +1 -1
- package/cjs/server/JsonRpcWebSocketReceiver.js +1 -1
- package/cjs/server/JsonRpcWebSocketReceiver.js.map +1 -1
- package/cjs/utility.js +1 -1
- package/cjs/utility.js.map +1 -1
- package/esm/JsonRpcMethod.js +21 -4
- package/esm/JsonRpcMethod.js.map +1 -1
- package/esm/JsonRpcValidator.js +32 -17
- package/esm/JsonRpcValidator.js.map +1 -1
- package/esm/WebSocketWrapper.js +24 -3
- package/esm/WebSocketWrapper.js.map +1 -1
- package/esm/client/JsonRpcMessagePortClient.js +1 -1
- package/esm/client/JsonRpcMessagePortClient.js.map +1 -1
- package/esm/client/JsonRpcWebSocketClient.js +4 -0
- package/esm/client/JsonRpcWebSocketClient.js.map +1 -1
- package/esm/router/FileSystemRouter.js +3 -3
- package/esm/router/FileSystemRouter.js.map +1 -1
- package/esm/schemas/Complex.js +8 -0
- package/esm/schemas/Complex.js.map +1 -1
- package/esm/schemas/Structure.js +2 -12
- package/esm/schemas/Structure.js.map +1 -1
- package/esm/server/JsonRpcServer.js +1 -1
- package/esm/server/JsonRpcServer.js.map +1 -1
- package/esm/server/JsonRpcWebSocketReceiver.js +1 -1
- package/esm/server/JsonRpcWebSocketReceiver.js.map +1 -1
- package/esm/utility.js +1 -1
- package/esm/utility.js.map +1 -1
- package/package.json +10 -9
- package/types/JsonRpcMethod.d.ts +42 -12
- package/types/JsonRpcValidator.d.ts +5 -3
- package/types/WebSocketWrapper.d.ts +3 -0
- package/types/client/JsonRpcClient.d.ts +2 -2
- package/types/router/JsonRpcRouter.d.ts +3 -3
- package/types/schemas/Complex.d.ts +6 -0
- package/types/schemas/Structure.d.ts +5 -18
- package/types/types.d.ts +18 -1
package/esm/JsonRpcMethod.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonRpcMethod.js","sourceRoot":"","sources":["../src/JsonRpcMethod.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"JsonRpcMethod.js","sourceRoot":"","sources":["../src/JsonRpcMethod.ts"],"names":[],"mappings":"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"}
|
package/esm/JsonRpcValidator.js
CHANGED
|
@@ -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
|
-
|
|
26
|
-
|
|
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(({
|
|
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
|
|
55
|
+
const { errors } = validate(result, this.schema.$return);
|
|
41
56
|
if (errors.length > 0) {
|
|
42
|
-
const message = errors.map(({
|
|
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":"AAAA,OAAO,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"JsonRpcValidator.js","sourceRoot":"","sources":["../src/JsonRpcValidator.ts"],"names":[],"mappings":"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"}
|
package/esm/WebSocketWrapper.js
CHANGED
|
@@ -25,8 +25,11 @@ export class NodeWebSocketWrapper {
|
|
|
25
25
|
send(data) {
|
|
26
26
|
this.socket.send(JSON.stringify(data));
|
|
27
27
|
}
|
|
28
|
-
|
|
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
|
|
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
|
-
|
|
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":"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;
|
|
1
|
+
{"version":3,"file":"WebSocketWrapper.js","sourceRoot":"","sources":["../src/WebSocketWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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":"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
|
|
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":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,OAAO,EAAc,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,EAAuC,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAa5F,MAAM,OAAO,sBAAiF,SAAQ,aAAkB;IAC3G,OAAO,CAAmB;IAEnC,YAAY,OAAgD;QACxD,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;QACH,IAAI,CAAC,OAAO,GAAG,aAAa,CACxB,OAAO,CAAC,MAAM,EACd,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EACxB,CAAC,KAAK,EAAE,EAAE;YACN,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YACtC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;YACzC,IAAI,CAAC,SAAS,CAAC;gBACX,IAAI,EAAE,CAAC,KAAK;gBACZ,OAAO,EAAE,mBAAmB;gBAC5B,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAsB;aACvD,CAAC,CAAC;QACP,CAAC,CACJ,CAAC;IACN,CAAC;IAED,IAAI,SAAS;QACT,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACtC,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,CAAC;IACjD,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,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,OAAO,CAAuB;gBACzC,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,OAAO,CAAC,EAAG;gBACf,KAAK,EAAE;oBACH,IAAI,EAAE,CAAC,KAAK;oBACZ,OAAO,EAAE,6BAA6B;oBACtC,IAAI,EAAE,IAAI;iBACb;aACJ,CAAC,CAAC;QACP,CAAC;QACD,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;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAsB;QACjC,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;IAED,SAAS,CAAC,MAAoB;QAC1B,KAAK,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9D,QAAQ,CAAC,OAAO,CAAC;gBACb,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,EAAG;gBACP,KAAK,EAAE,MAAM;aAChB,CAAC,CAAC;QACP,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACJ"}
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMnD,MAAM,OAAO,gBAAsB,SAAQ,aAAkB;IAC5B;IAA7B,YAA6B,OAAe;QACxC,KAAK,EAAE,CAAC;QADiB,YAAO,GAAP,OAAO,CAAQ;QAExC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"FileSystemRouter.js","sourceRoot":"","sources":["../../src/router/FileSystemRouter.ts"],"names":[],"mappings":"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"}
|
package/esm/schemas/Complex.js
CHANGED
|
@@ -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"}
|
package/esm/schemas/Structure.js
CHANGED
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
|
|
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":"
|
|
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"}
|
|
@@ -31,7 +31,7 @@ export class JsonRpcServer {
|
|
|
31
31
|
const picked = await this.pickMethodDefine(method);
|
|
32
32
|
const validator = new JsonRpcValidator(picked);
|
|
33
33
|
validator.validateParams(params);
|
|
34
|
-
const result = await picked
|
|
34
|
+
const result = await picked.$apply(ctx, params);
|
|
35
35
|
try {
|
|
36
36
|
validator.validateReturn(result);
|
|
37
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonRpcServer.js","sourceRoot":"","sources":["../../src/server/JsonRpcServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAIzG,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D,MAAM,OAAO,aAAa;IACD;IAArB,YAAqB,MAA8B;QAA9B,WAAM,GAAN,MAAM,CAAwB;IACnD,CAAC;IAEO,eAAe,CAAC,OAAuB;QAC3C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC5C,IAAG,OAAiB,KAAK,KAAK;YAAE,MAAM,IAAI,cAAc,CAAC,uBAAuB,CAAC,CAAC;QAClF,IAAG,CAAC,MAAM;YAAE,MAAM,IAAI,cAAc,CAAC,qBAAqB,CAAC,CAAC;IAChE,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,UAAkB;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAA4B,CAAC;QAChF,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,cAAc,CAAC,wBAAwB,UAAU,gBAAgB,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,SAAS,GAAI,MAAM,CAAC,WAA8C,CAAC,MAAkC,CAAC;QAC5G,IAAI,MAAM,CAAC,SAAS,CAAC,YAAY,QAAQ,EAAE,CAAC;YACxC,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,cAAc,CAAC,cAAc,UAAU,wBAAwB,CAAC,CAAC;IAC/E,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,GAAY,EAAE,OAAuB;QACvD,IAAI,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC9B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;YAEnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAE/C,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"JsonRpcServer.js","sourceRoot":"","sources":["../../src/server/JsonRpcServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -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(
|
|
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,
|
|
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
package/esm/utility.js.map
CHANGED
|
@@ -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,
|
|
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.
|
|
3
|
+
"version": "0.10.1",
|
|
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/
|
|
55
|
-
"@
|
|
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.
|
|
58
|
-
"
|
|
59
|
-
"
|
|
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.
|
|
63
|
+
"@types/jest": "^29.5.14",
|
|
63
64
|
"jest": "^29.7.0",
|
|
64
|
-
"ts-jest": "^29.
|
|
65
|
+
"ts-jest": "^29.3.4",
|
|
65
66
|
"ts-node": "^10.9.2",
|
|
66
|
-
"typescript": "^5.
|
|
67
|
+
"typescript": "^5.8.3"
|
|
67
68
|
}
|
|
68
69
|
}
|
package/types/JsonRpcMethod.d.ts
CHANGED
|
@@ -1,37 +1,67 @@
|
|
|
1
|
-
import { type FromSchema } from
|
|
2
|
-
|
|
3
|
-
|
|
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
|
|
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
|
|
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
|
|
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;
|
|
21
30
|
static readonly method: typeof methodKey;
|
|
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
|
-
apply(ctx: Context, params:
|
|
25
|
-
static get builder(): DefinitionBuilder<undefined,
|
|
33
|
+
$apply(ctx: Context, params: any): Return<RtnSch> | Promise<Return<RtnSch>>;
|
|
34
|
+
static get builder(): DefinitionBuilder<undefined, undefined, undefined>;
|
|
26
35
|
}
|
|
27
|
-
declare class DefinitionBuilder<CtxCls extends ContextClass<any> | undefined, PrmSch extends
|
|
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
|
-
|
|
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,
|
|
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
|
|
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
|
|
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<
|
|
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
|
};
|