@enkaku/server 0.12.0 → 0.12.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/lib/handlers/channel.d.ts.map +1 -1
- package/lib/handlers/channel.js +10 -13
- package/lib/handlers/event.d.ts.map +1 -1
- package/lib/handlers/event.js +0 -1
- package/lib/handlers/request.js +1 -1
- package/lib/handlers/stream.d.ts.map +1 -1
- package/lib/handlers/stream.js +10 -13
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/server.d.ts.map +1 -1
- package/lib/server.js +5 -6
- package/lib/utils.js +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/handlers/channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EACnB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EAGV,cAAc,EAGf,MAAM,aAAa,CAAA;AAGpB,MAAM,MAAM,gBAAgB,CAC1B,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,QAAQ,GAAG,MAAM,IACjE,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAEnE,wBAAgB,aAAa,CAC3B,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,EAEzC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,EAC7B,GAAG,EAAE,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,GACzC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/handlers/channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EACnB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EAGV,cAAc,EAGf,MAAM,aAAa,CAAA;AAGpB,MAAM,MAAM,gBAAgB,CAC1B,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,QAAQ,GAAG,MAAM,IACjE,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAEnE,wBAAgB,aAAa,CAC3B,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,EAEzC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,EAC7B,GAAG,EAAE,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,GACzC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCvB"}
|
package/lib/handlers/channel.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createPipe } from '@enkaku/stream';
|
|
1
|
+
import { createPipe, writeTo } from '@enkaku/stream';
|
|
2
2
|
import { executeHandler } from '../utils.js';
|
|
3
3
|
export function handleChannel(ctx, msg) {
|
|
4
4
|
const handler = ctx.handlers[msg.payload.prc];
|
|
@@ -14,18 +14,15 @@ export function handleChannel(ctx, msg) {
|
|
|
14
14
|
});
|
|
15
15
|
ctx.controllers[msg.payload.rid] = controller;
|
|
16
16
|
const receiveStream = createPipe();
|
|
17
|
-
receiveStream.readable.pipeTo(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if (controller.signal.aborted) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
await ctx.send({
|
|
24
|
-
typ: 'receive',
|
|
25
|
-
rid: msg.payload.rid,
|
|
26
|
-
val
|
|
27
|
-
});
|
|
17
|
+
receiveStream.readable.pipeTo(writeTo(async (val)=>{
|
|
18
|
+
if (controller.signal.aborted) {
|
|
19
|
+
return;
|
|
28
20
|
}
|
|
21
|
+
await ctx.send({
|
|
22
|
+
typ: 'receive',
|
|
23
|
+
rid: msg.payload.rid,
|
|
24
|
+
val
|
|
25
|
+
});
|
|
29
26
|
}));
|
|
30
27
|
const handlerContext = {
|
|
31
28
|
message: msg,
|
|
@@ -34,6 +31,6 @@ export function handleChannel(ctx, msg) {
|
|
|
34
31
|
signal: controller.signal,
|
|
35
32
|
writable: receiveStream.writable
|
|
36
33
|
};
|
|
37
|
-
// @ts-
|
|
34
|
+
// @ts-expect-error context and handler types
|
|
38
35
|
return executeHandler(ctx, msg.payload, ()=>handler(handlerContext));
|
|
39
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/handlers/event.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAEzF,OAAO,KAAK,EAAqC,cAAc,EAAE,MAAM,aAAa,CAAA;AAEpF,MAAM,MAAM,cAAc,CACxB,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,QAAQ,GAAG,MAAM,IACjE,aAAa,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAEjE,wBAAgB,WAAW,CACzB,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,EACzC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/handlers/event.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAEzF,OAAO,KAAK,EAAqC,cAAc,EAAE,MAAM,aAAa,CAAA;AAEpF,MAAM,MAAM,cAAc,CACxB,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,QAAQ,GAAG,MAAM,IACjE,aAAa,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAEjE,wBAAgB,WAAW,CACzB,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,EACzC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhG"}
|
package/lib/handlers/event.js
CHANGED
|
@@ -8,7 +8,6 @@ export function handleEvent(ctx, msg) {
|
|
|
8
8
|
message: msg,
|
|
9
9
|
data: msg.payload.data
|
|
10
10
|
};
|
|
11
|
-
// @ts-ignore type instantiation too deep
|
|
12
11
|
return toPromise(()=>handler(handlerContext)).catch((cause)=>{
|
|
13
12
|
ctx.events.emit('handlerError', {
|
|
14
13
|
error: new Error(`Error handling procedure: ${msg.payload.prc}`, {
|
package/lib/handlers/request.js
CHANGED
|
@@ -11,6 +11,6 @@ export function handleRequest(ctx, msg) {
|
|
|
11
11
|
param: msg.payload.prm,
|
|
12
12
|
signal: controller.signal
|
|
13
13
|
};
|
|
14
|
-
// @ts-
|
|
14
|
+
// @ts-expect-error context and handler types
|
|
15
15
|
return executeHandler(ctx, msg.payload, ()=>handler(handlerContext));
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/handlers/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,kBAAkB,EAClB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EAAE,cAAc,EAA8B,MAAM,aAAa,CAAA;AAG7E,MAAM,MAAM,eAAe,CACzB,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,QAAQ,GAAG,MAAM,IACjE,aAAa,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAElE,wBAAgB,YAAY,CAC1B,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,EACzC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/handlers/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,kBAAkB,EAClB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EAAE,cAAc,EAA8B,MAAM,aAAa,CAAA;AAG7E,MAAM,MAAM,eAAe,CACzB,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,QAAQ,GAAG,MAAM,IACjE,aAAa,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAElE,wBAAgB,YAAY,CAC1B,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,EACzC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BjG"}
|
package/lib/handlers/stream.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createPipe } from '@enkaku/stream';
|
|
1
|
+
import { createPipe, writeTo } from '@enkaku/stream';
|
|
2
2
|
import { executeHandler } from '../utils.js';
|
|
3
3
|
export function handleStream(ctx, msg) {
|
|
4
4
|
const handler = ctx.handlers[msg.payload.prc];
|
|
@@ -8,18 +8,15 @@ export function handleStream(ctx, msg) {
|
|
|
8
8
|
const controller = new AbortController();
|
|
9
9
|
ctx.controllers[msg.payload.rid] = controller;
|
|
10
10
|
const receiveStream = createPipe();
|
|
11
|
-
receiveStream.readable.pipeTo(
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
if (controller.signal.aborted) {
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
await ctx.send({
|
|
18
|
-
typ: 'receive',
|
|
19
|
-
rid: msg.payload.rid,
|
|
20
|
-
val
|
|
21
|
-
});
|
|
11
|
+
receiveStream.readable.pipeTo(writeTo(async (val)=>{
|
|
12
|
+
if (controller.signal.aborted) {
|
|
13
|
+
return;
|
|
22
14
|
}
|
|
15
|
+
await ctx.send({
|
|
16
|
+
typ: 'receive',
|
|
17
|
+
rid: msg.payload.rid,
|
|
18
|
+
val
|
|
19
|
+
});
|
|
23
20
|
}));
|
|
24
21
|
const handlerContext = {
|
|
25
22
|
message: msg,
|
|
@@ -27,6 +24,6 @@ export function handleStream(ctx, msg) {
|
|
|
27
24
|
signal: controller.signal,
|
|
28
25
|
writable: receiveStream.writable
|
|
29
26
|
};
|
|
30
|
-
// @ts-
|
|
27
|
+
// @ts-expect-error context and handler types
|
|
31
28
|
return executeHandler(ctx, msg.payload, ()=>handler(handlerContext));
|
|
32
29
|
}
|
package/lib/index.d.ts
CHANGED
|
@@ -11,5 +11,5 @@
|
|
|
11
11
|
*/
|
|
12
12
|
export type { ProcedureAccessRecord } from './access-control.js';
|
|
13
13
|
export { type ServeParams, Server, type ServerParams, serve } from './server.js';
|
|
14
|
-
export type { ChannelHandler, ChannelHandlerContext,
|
|
14
|
+
export type { ChannelHandler, ChannelHandlerContext, EventHandler, EventHandlerContext, HandlerReturn, ProcedureHandlers, RequestHandler, RequestHandlerContext, ServerEmitter, ServerEvents, StreamHandler, StreamHandlerContext, } from './types.js';
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAChF,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAChF,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,oBAAoB,GACrB,MAAM,YAAY,CAAA"}
|
package/lib/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7D,OAAO,EACL,KAAK,kBAAkB,EAGvB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAKlF,OAAO,KAAK,EAIV,iBAAiB,EACjB,aAAa,EAEd,MAAM,YAAY,CAAA;AAQnB,MAAM,MAAM,mBAAmB,GAC3B;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,qBAAqB,CAAA;CAAE,GACnE;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,CAAA;AAEtE,MAAM,MAAM,oBAAoB,CAAC,QAAQ,SAAS,kBAAkB,IAAI,mBAAmB,GAAG;IAC5F,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACrC,MAAM,EAAE,WAAW,CAAA;IACnB,SAAS,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACtC,SAAS,CAAC,EAAE,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAA;CACpD,CAAA;AAyJD,MAAM,MAAM,YAAY,CAAC,QAAQ,SAAS,kBAAkB,IAAI;IAC9D,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACrC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,UAAU,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAA;CAChD,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,qBAAqB,CAAA;CAAE,CAAA;AAEhF,qBAAa,MAAM,CAAC,QAAQ,SAAS,kBAAkB,CAAE,SAAQ,QAAQ;;gBAQ3D,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC;IA8C1C,IAAI,MAAM,IAAI,aAAa,CAE1B;IAED,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CA0B3F;AAED,MAAM,MAAM,WAAW,CAAC,QAAQ,SAAS,kBAAkB,IAAI,IAAI,CACjE,YAAY,CAAC,QAAQ,CAAC,EACtB,YAAY,CACb,GAAG;IACF,SAAS,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;CACvC,CAAA;AAED,wBAAgB,KAAK,CAAC,QAAQ,SAAS,kBAAkB,EACvD,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,GAC5B,MAAM,CAAC,QAAQ,CAAC,CAGlB"}
|
package/lib/server.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Disposer } from '@enkaku/async';
|
|
1
|
+
import { DisposeInterruption, Disposer } from '@enkaku/async';
|
|
2
2
|
import { EventEmitter } from '@enkaku/event';
|
|
3
3
|
import { createClientMessageSchema } from '@enkaku/protocol';
|
|
4
|
-
import {
|
|
4
|
+
import { createValidator, ValidationError } from '@enkaku/schema';
|
|
5
5
|
import { createUnsignedToken, isSignedToken } from '@enkaku/token';
|
|
6
6
|
import { checkClientToken } from './access-control.js';
|
|
7
7
|
import { handleChannel } from './handlers/channel.js';
|
|
@@ -20,9 +20,10 @@ async function handleMessages(params) {
|
|
|
20
20
|
const running = Object.create(null);
|
|
21
21
|
const disposer = new Disposer({
|
|
22
22
|
dispose: async ()=>{
|
|
23
|
+
const interruption = new DisposeInterruption();
|
|
23
24
|
// Abort all currently running handlers
|
|
24
25
|
for (const controller of Object.values(controllers)){
|
|
25
|
-
controller.abort(
|
|
26
|
+
controller.abort(interruption);
|
|
26
27
|
}
|
|
27
28
|
// Wait until all running handlers are done
|
|
28
29
|
await Promise.all(Object.values(running));
|
|
@@ -107,7 +108,6 @@ async function handleMessages(params) {
|
|
|
107
108
|
case 'channel':
|
|
108
109
|
{
|
|
109
110
|
const message = msg;
|
|
110
|
-
// @ts-ignore type instantiation too deep
|
|
111
111
|
process(message, ()=>handleChannel(context, message));
|
|
112
112
|
break;
|
|
113
113
|
}
|
|
@@ -155,8 +155,7 @@ export class Server extends Disposer {
|
|
|
155
155
|
// Signal messages handler to stop execution and run cleanup logic
|
|
156
156
|
this.#abortController.abort();
|
|
157
157
|
// Dispose of all handling transports
|
|
158
|
-
await Promise.all(
|
|
159
|
-
this.#handling.map(async (handling)=>{
|
|
158
|
+
await Promise.all(this.#handling.map(async (handling)=>{
|
|
160
159
|
// Wait until all handlers are done - they might still need to flush messages to the transport
|
|
161
160
|
await handling.done;
|
|
162
161
|
// Dispose transport
|
package/lib/utils.js
CHANGED
|
@@ -3,7 +3,7 @@ import { HandlerError } from './error.js';
|
|
|
3
3
|
function canSend(signal) {
|
|
4
4
|
return !signal.aborted || signal.reason === 'Close';
|
|
5
5
|
}
|
|
6
|
-
// @ts-
|
|
6
|
+
// @ts-expect-error type instantiation too deep
|
|
7
7
|
export async function executeHandler(context, payload, execute) {
|
|
8
8
|
const controller = context.controllers[payload.rid];
|
|
9
9
|
try {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enkaku/server",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"homepage": "https://enkaku.dev",
|
|
6
6
|
"description": "Server logic for Enkaku RPC",
|
|
@@ -25,13 +25,13 @@
|
|
|
25
25
|
],
|
|
26
26
|
"sideEffects": false,
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@enkaku/async": "^0.12.
|
|
29
|
-
"@enkaku/
|
|
30
|
-
"@enkaku/
|
|
31
|
-
"@enkaku/
|
|
32
|
-
"@enkaku/
|
|
33
|
-
"@enkaku/
|
|
34
|
-
"@enkaku/token": "^0.12.
|
|
28
|
+
"@enkaku/async": "^0.12.2",
|
|
29
|
+
"@enkaku/capability": "^0.12.1",
|
|
30
|
+
"@enkaku/schema": "^0.12.1",
|
|
31
|
+
"@enkaku/stream": "^0.12.4",
|
|
32
|
+
"@enkaku/event": "^0.12.1",
|
|
33
|
+
"@enkaku/protocol": "^0.12.1",
|
|
34
|
+
"@enkaku/token": "^0.12.1"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@enkaku/transport": "^0.12.0"
|