@enkaku/server 0.7.0 → 0.8.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.
- package/lib/access-control.d.ts +5 -5
- package/lib/access-control.d.ts.map +1 -1
- package/lib/access-control.js +12 -12
- package/lib/handlers/channel.d.ts +2 -2
- package/lib/handlers/channel.d.ts.map +1 -1
- package/lib/handlers/channel.js +2 -2
- package/lib/handlers/event.d.ts +2 -2
- package/lib/handlers/event.d.ts.map +1 -1
- package/lib/handlers/event.js +3 -3
- package/lib/handlers/request.d.ts +2 -2
- package/lib/handlers/request.d.ts.map +1 -1
- package/lib/handlers/request.js +2 -2
- package/lib/handlers/stream.d.ts +2 -2
- package/lib/handlers/stream.d.ts.map +1 -1
- package/lib/handlers/stream.js +2 -2
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/server.d.ts +8 -8
- package/lib/server.d.ts.map +1 -1
- package/lib/server.js +3 -2
- package/lib/types.d.ts +23 -23
- package/lib/types.d.ts.map +1 -1
- package/lib/utils.d.ts +1 -1
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +1 -1
- package/package.json +8 -8
package/lib/access-control.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { SignedToken } from '@enkaku/token';
|
|
2
|
-
export type
|
|
3
|
-
export type
|
|
2
|
+
export type ProcedureAccessRecord = Record<string, boolean | Array<string>>;
|
|
3
|
+
export type ProcedureAccessPayload = {
|
|
4
4
|
iss: string;
|
|
5
5
|
sub?: string;
|
|
6
6
|
aud?: string;
|
|
7
|
-
|
|
7
|
+
prc?: string;
|
|
8
8
|
exp?: number;
|
|
9
9
|
};
|
|
10
|
-
export declare function
|
|
11
|
-
export declare function checkClientToken(serverID: string, record:
|
|
10
|
+
export declare function checkProcedureAccess(serverID: string, record: ProcedureAccessRecord, token: SignedToken<ProcedureAccessPayload>, atTime?: number): Promise<void>;
|
|
11
|
+
export declare function checkClientToken(serverID: string, record: ProcedureAccessRecord, token: SignedToken, atTime?: number): Promise<void>;
|
|
12
12
|
//# sourceMappingURL=access-control.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access-control.d.ts","sourceRoot":"","sources":["../src/access-control.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"access-control.d.ts","sourceRoot":"","sources":["../src/access-control.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;AAE3E,MAAM,MAAM,sBAAsB,GAAG;IACnC,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,WAAW,CAAC,sBAAsB,CAAC,EAC1C,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAiCf;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,WAAW,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
|
package/lib/access-control.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { assertNonExpired, checkCapability, hasPartsMatch } from '@enkaku/capability';
|
|
2
|
-
export async function
|
|
2
|
+
export async function checkProcedureAccess(serverID, record, token, atTime) {
|
|
3
3
|
const payload = token.payload;
|
|
4
|
-
if (payload.
|
|
5
|
-
throw new Error('No
|
|
4
|
+
if (payload.prc == null) {
|
|
5
|
+
throw new Error('No procedure to check');
|
|
6
6
|
}
|
|
7
|
-
for (const [
|
|
8
|
-
if (hasPartsMatch(payload.
|
|
7
|
+
for (const [procedure, access] of Object.entries(record)){
|
|
8
|
+
if (hasPartsMatch(payload.prc, procedure)) {
|
|
9
9
|
if (access === true) {
|
|
10
|
-
//
|
|
10
|
+
// Procedure can be publicly accessed
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
13
13
|
if (access === false) {
|
|
@@ -23,7 +23,7 @@ export async function checkCommandAccess(serverID, record, token, atTime) {
|
|
|
23
23
|
try {
|
|
24
24
|
// Check delegation from subject
|
|
25
25
|
await checkCapability({
|
|
26
|
-
act: payload.
|
|
26
|
+
act: payload.prc,
|
|
27
27
|
res: serverID
|
|
28
28
|
}, payload, atTime);
|
|
29
29
|
return;
|
|
@@ -34,9 +34,9 @@ export async function checkCommandAccess(serverID, record, token, atTime) {
|
|
|
34
34
|
}
|
|
35
35
|
export async function checkClientToken(serverID, record, token, atTime) {
|
|
36
36
|
const payload = token.payload;
|
|
37
|
-
const
|
|
38
|
-
if (
|
|
39
|
-
throw new Error('No
|
|
37
|
+
const procedure = payload.prc;
|
|
38
|
+
if (procedure == null) {
|
|
39
|
+
throw new Error('No procedure to check');
|
|
40
40
|
}
|
|
41
41
|
if (payload.iss === serverID) {
|
|
42
42
|
// If issuer uses the server's signer, only check audience and expiration if provided
|
|
@@ -51,7 +51,7 @@ export async function checkClientToken(serverID, record, token, atTime) {
|
|
|
51
51
|
if (payload.sub === serverID) {
|
|
52
52
|
// If subject is the server, check capability directly
|
|
53
53
|
await checkCapability({
|
|
54
|
-
act:
|
|
54
|
+
act: procedure,
|
|
55
55
|
res: serverID
|
|
56
56
|
}, payload, atTime);
|
|
57
57
|
return;
|
|
@@ -59,5 +59,5 @@ export async function checkClientToken(serverID, record, token, atTime) {
|
|
|
59
59
|
if (payload.aud !== serverID) {
|
|
60
60
|
throw new Error('Invalid audience');
|
|
61
61
|
}
|
|
62
|
-
await
|
|
62
|
+
await checkProcedureAccess(serverID, record, token, atTime);
|
|
63
63
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ChannelPayloadOf, ClientMessage, ProtocolDefinition } from '@enkaku/protocol';
|
|
2
2
|
import { ErrorRejection } from '../rejections.js';
|
|
3
3
|
import type { HandlerContext } from '../types.js';
|
|
4
|
-
export type ChannelMessageOf<Protocol extends ProtocolDefinition,
|
|
5
|
-
export declare function handleChannel<Protocol extends ProtocolDefinition,
|
|
4
|
+
export type ChannelMessageOf<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string = keyof Protocol & string> = ClientMessage<ChannelPayloadOf<Procedure, Protocol[Procedure]>>;
|
|
5
|
+
export declare function handleChannel<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string>(ctx: HandlerContext<Protocol>, msg: ChannelMessageOf<Protocol, Procedure>): ErrorRejection | Promise<void>;
|
|
6
6
|
//# sourceMappingURL=channel.d.ts.map
|
|
@@ -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,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAGV,cAAc,EAGf,MAAM,aAAa,CAAA;AAGpB,MAAM,MAAM,gBAAgB,CAC1B,QAAQ,SAAS,kBAAkB,EACnC,
|
|
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,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,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,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAwChC"}
|
package/lib/handlers/channel.js
CHANGED
|
@@ -2,9 +2,9 @@ import { createPipe } from '@enkaku/stream';
|
|
|
2
2
|
import { ErrorRejection } from '../rejections.js';
|
|
3
3
|
import { consumeReader, executeHandler } from '../utils.js';
|
|
4
4
|
export function handleChannel(ctx, msg) {
|
|
5
|
-
const handler = ctx.handlers[msg.payload.
|
|
5
|
+
const handler = ctx.handlers[msg.payload.prc];
|
|
6
6
|
if (handler == null) {
|
|
7
|
-
return new ErrorRejection(`No handler for
|
|
7
|
+
return new ErrorRejection(`No handler for procedure: ${msg.payload.prc}`, {
|
|
8
8
|
info: msg.payload
|
|
9
9
|
});
|
|
10
10
|
}
|
package/lib/handlers/event.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ClientMessage, EventPayloadOf, ProtocolDefinition } from '@enkaku/protocol';
|
|
2
2
|
import { ErrorRejection } from '../rejections.js';
|
|
3
3
|
import type { HandlerContext } from '../types.js';
|
|
4
|
-
export type EventMessageOf<Protocol extends ProtocolDefinition,
|
|
5
|
-
export declare function handleEvent<Protocol extends ProtocolDefinition,
|
|
4
|
+
export type EventMessageOf<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string = keyof Protocol & string> = ClientMessage<EventPayloadOf<Procedure, Protocol[Procedure]>>;
|
|
5
|
+
export declare function handleEvent<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string>(ctx: HandlerContext<Protocol>, msg: EventMessageOf<Protocol, Procedure>): ErrorRejection | Promise<void>;
|
|
6
6
|
//# sourceMappingURL=event.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/handlers/event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAGzF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAqC,cAAc,EAAE,MAAM,aAAa,CAAA;AAEpF,MAAM,MAAM,cAAc,CACxB,QAAQ,SAAS,kBAAkB,EACnC,
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/handlers/event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAGzF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,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,EAEzC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,EAC7B,GAAG,EAAE,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,GACvC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBhC"}
|
package/lib/handlers/event.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { toPromise } from '@enkaku/util';
|
|
2
2
|
import { ErrorRejection } from '../rejections.js';
|
|
3
3
|
export function handleEvent(ctx, msg) {
|
|
4
|
-
const handler = ctx.handlers[msg.payload.
|
|
4
|
+
const handler = ctx.handlers[msg.payload.prc];
|
|
5
5
|
if (handler == null) {
|
|
6
|
-
return new ErrorRejection(`No handler for
|
|
6
|
+
return new ErrorRejection(`No handler for procedure: ${msg.payload.prc}`, {
|
|
7
7
|
info: msg.payload
|
|
8
8
|
});
|
|
9
9
|
}
|
|
@@ -12,7 +12,7 @@ export function handleEvent(ctx, msg) {
|
|
|
12
12
|
data: msg.payload.data
|
|
13
13
|
};
|
|
14
14
|
return toPromise(()=>handler(handlerContext)).catch((cause)=>{
|
|
15
|
-
const err = new ErrorRejection(`Error handling
|
|
15
|
+
const err = new ErrorRejection(`Error handling procedure: ${msg.payload.prc}`, {
|
|
16
16
|
info: msg.payload,
|
|
17
17
|
cause
|
|
18
18
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ClientMessage, ProtocolDefinition, RequestPayloadOf } from '@enkaku/protocol';
|
|
2
2
|
import { ErrorRejection } from '../rejections.js';
|
|
3
3
|
import type { HandlerContext } from '../types.js';
|
|
4
|
-
export type RequestMessageOf<Protocol extends ProtocolDefinition,
|
|
5
|
-
export declare function handleRequest<Protocol extends ProtocolDefinition,
|
|
4
|
+
export type RequestMessageOf<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string = keyof Protocol & string> = ClientMessage<RequestPayloadOf<Procedure, Protocol[Procedure]>>;
|
|
5
|
+
export declare function handleRequest<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string>(ctx: HandlerContext<Protocol>, msg: RequestMessageOf<Protocol, Procedure>): ErrorRejection | Promise<void>;
|
|
6
6
|
//# sourceMappingURL=request.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/handlers/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAE3F,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAA;AAGjE,MAAM,MAAM,gBAAgB,CAC1B,QAAQ,SAAS,kBAAkB,EACnC,
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/handlers/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAE3F,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAA;AAGjE,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,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhC"}
|
package/lib/handlers/request.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ErrorRejection } from '../rejections.js';
|
|
2
2
|
import { executeHandler } from '../utils.js';
|
|
3
3
|
export function handleRequest(ctx, msg) {
|
|
4
|
-
const handler = ctx.handlers[msg.payload.
|
|
4
|
+
const handler = ctx.handlers[msg.payload.prc];
|
|
5
5
|
if (handler == null) {
|
|
6
|
-
return new ErrorRejection(`No handler for
|
|
6
|
+
return new ErrorRejection(`No handler for procedure: ${msg.payload.prc}`, {
|
|
7
7
|
info: msg.payload
|
|
8
8
|
});
|
|
9
9
|
}
|
package/lib/handlers/stream.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ClientMessage, ProtocolDefinition, StreamPayloadOf } from '@enkaku/protocol';
|
|
2
2
|
import { ErrorRejection } from '../rejections.js';
|
|
3
3
|
import type { HandlerContext } from '../types.js';
|
|
4
|
-
export type StreamMessageOf<Protocol extends ProtocolDefinition,
|
|
5
|
-
export declare function handleStream<Protocol extends ProtocolDefinition,
|
|
4
|
+
export type StreamMessageOf<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string = keyof Protocol & string> = ClientMessage<StreamPayloadOf<Procedure, Protocol[Procedure]>>;
|
|
5
|
+
export declare function handleStream<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string>(ctx: HandlerContext<Protocol>, msg: StreamMessageOf<Protocol, Procedure>): ErrorRejection | Promise<void>;
|
|
6
6
|
//# sourceMappingURL=stream.d.ts.map
|
|
@@ -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,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAA8B,MAAM,aAAa,CAAA;AAG7E,MAAM,MAAM,eAAe,CACzB,QAAQ,SAAS,kBAAkB,EACnC,
|
|
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,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,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,EAEzC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,EAC7B,GAAG,EAAE,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,GACxC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAgChC"}
|
package/lib/handlers/stream.js
CHANGED
|
@@ -2,9 +2,9 @@ import { createPipe } from '@enkaku/stream';
|
|
|
2
2
|
import { ErrorRejection } from '../rejections.js';
|
|
3
3
|
import { consumeReader, executeHandler } from '../utils.js';
|
|
4
4
|
export function handleStream(ctx, msg) {
|
|
5
|
-
const handler = ctx.handlers[msg.payload.
|
|
5
|
+
const handler = ctx.handlers[msg.payload.prc];
|
|
6
6
|
if (handler == null) {
|
|
7
|
-
return new ErrorRejection(`No handler for
|
|
7
|
+
return new ErrorRejection(`No handler for procedure: ${msg.payload.prc}`, {
|
|
8
8
|
info: msg.payload
|
|
9
9
|
});
|
|
10
10
|
}
|
package/lib/index.d.ts
CHANGED
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @module server
|
|
11
11
|
*/
|
|
12
|
-
export type {
|
|
12
|
+
export type { ProcedureAccessRecord } from './access-control.js';
|
|
13
13
|
export { AbortRejection, ErrorRejection, type RejectionType } from './rejections.js';
|
|
14
14
|
export { type ServeParams, Server, type ServerParams, serve } from './server.js';
|
|
15
|
-
export type { ChannelHandler, ChannelHandlerContext,
|
|
15
|
+
export type { ChannelHandler, ChannelHandlerContext, ProcedureHandlers, EventHandler, EventHandlerContext, HandlerReturn, RequestHandler, RequestHandlerContext, StreamHandler, StreamHandlerContext, } from './types.js';
|
|
16
16
|
//# 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,
|
|
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,cAAc,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpF,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAChF,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,oBAAoB,GACrB,MAAM,YAAY,CAAA"}
|
package/lib/server.d.ts
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import { type AnyClientMessageOf, type ProtocolDefinition, type ServerTransportOf } from '@enkaku/protocol';
|
|
2
2
|
import { type Validator } from '@enkaku/schema';
|
|
3
3
|
import { type Disposer } from '@enkaku/util';
|
|
4
|
-
import { type
|
|
4
|
+
import { type ProcedureAccessRecord } from './access-control.js';
|
|
5
5
|
import { type RejectionType } from './rejections.js';
|
|
6
|
-
import type {
|
|
6
|
+
import type { ProcedureHandlers } from './types.js';
|
|
7
7
|
export type AccessControlParams = {
|
|
8
8
|
public: true;
|
|
9
9
|
serverID?: string;
|
|
10
|
-
access?:
|
|
10
|
+
access?: ProcedureAccessRecord;
|
|
11
11
|
} | {
|
|
12
12
|
public: false;
|
|
13
13
|
serverID: string;
|
|
14
|
-
access:
|
|
14
|
+
access: ProcedureAccessRecord;
|
|
15
15
|
};
|
|
16
16
|
export type HandleMessagesParams<Protocol extends ProtocolDefinition> = AccessControlParams & {
|
|
17
|
-
handlers:
|
|
17
|
+
handlers: ProcedureHandlers<Protocol>;
|
|
18
18
|
reject: (rejection: RejectionType) => void;
|
|
19
19
|
signal: AbortSignal;
|
|
20
20
|
transport: ServerTransportOf<Protocol>;
|
|
21
21
|
validator?: Validator<AnyClientMessageOf<Protocol>>;
|
|
22
22
|
};
|
|
23
23
|
export type ServerParams<Protocol extends ProtocolDefinition> = {
|
|
24
|
-
access?:
|
|
25
|
-
handlers:
|
|
24
|
+
access?: ProcedureAccessRecord;
|
|
25
|
+
handlers: ProcedureHandlers<Protocol>;
|
|
26
26
|
id?: string;
|
|
27
27
|
protocol?: Protocol;
|
|
28
28
|
public?: boolean;
|
|
@@ -31,7 +31,7 @@ export type ServerParams<Protocol extends ProtocolDefinition> = {
|
|
|
31
31
|
};
|
|
32
32
|
export type HandleOptions = {
|
|
33
33
|
public?: boolean;
|
|
34
|
-
access?:
|
|
34
|
+
access?: ProcedureAccessRecord;
|
|
35
35
|
};
|
|
36
36
|
export declare class Server<Protocol extends ProtocolDefinition> implements Disposer {
|
|
37
37
|
#private;
|
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,EACL,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,gBAAgB,CAAA;AAGhE,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,cAAc,CAAA;AAE5D,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,gBAAgB,CAAA;AAGhE,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,cAAc,CAAA;AAE5D,OAAO,EAAE,KAAK,qBAAqB,EAAoB,MAAM,qBAAqB,CAAA;AAKlF,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,KAAK,EAIV,iBAAiB,EAClB,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,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACrC,MAAM,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,CAAA;IAC1C,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;AA8ID,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,YAAW,QAAQ;;gBAU9D,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC;IAqD1C,IAAI,QAAQ,kBAEX;IAED,IAAI,UAAU,kCAEb;IAEK,OAAO;IAIb,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
|
@@ -194,11 +194,12 @@ export class Server {
|
|
|
194
194
|
}
|
|
195
195
|
handle(transport, options = {}) {
|
|
196
196
|
const publicAccess = options.public ?? this.#accessControl.public;
|
|
197
|
+
const access = options.access ?? this.#accessControl.access ?? {};
|
|
197
198
|
let accessControl;
|
|
198
199
|
if (publicAccess) {
|
|
199
200
|
accessControl = {
|
|
200
201
|
public: true,
|
|
201
|
-
access
|
|
202
|
+
access
|
|
202
203
|
};
|
|
203
204
|
} else {
|
|
204
205
|
const serverID = this.#accessControl.serverID;
|
|
@@ -208,7 +209,7 @@ export class Server {
|
|
|
208
209
|
accessControl = {
|
|
209
210
|
public: false,
|
|
210
211
|
serverID,
|
|
211
|
-
access
|
|
212
|
+
access
|
|
212
213
|
};
|
|
213
214
|
}
|
|
214
215
|
const done = handleMessages({
|
package/lib/types.d.ts
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AnyRequestProcedureDefinition, AnyServerPayloadOf, ChannelProcedureDefinition, DataOf, EventCallPayload, EventProcedureDefinition, Message, ProtocolDefinition, RequestCallPayload, RequestProcedureDefinition, StreamProcedureDefinition } from '@enkaku/protocol';
|
|
2
2
|
import type { RejectionType } from './rejections.js';
|
|
3
3
|
export type RequestController = AbortController;
|
|
4
4
|
export type ChannelController<Send = unknown> = AbortController & {
|
|
5
5
|
writer: WritableStreamDefaultWriter<Send>;
|
|
6
6
|
};
|
|
7
7
|
export type HandlerController<Send = unknown> = RequestController | ChannelController<Send>;
|
|
8
|
-
export type EventHandlerContext<Protocol extends ProtocolDefinition,
|
|
9
|
-
message: Message<EventCallPayload<
|
|
10
|
-
data: DataOf<Protocol[
|
|
8
|
+
export type EventHandlerContext<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string> = Protocol[Procedure] extends EventProcedureDefinition ? {
|
|
9
|
+
message: Message<EventCallPayload<Procedure, DataOf<Protocol[Procedure]['data']>>>;
|
|
10
|
+
data: DataOf<Protocol[Procedure]['data']>;
|
|
11
11
|
} : never;
|
|
12
|
-
export type EventHandler<Protocol extends ProtocolDefinition,
|
|
13
|
-
export type RequestHandlerContext<Protocol extends ProtocolDefinition,
|
|
14
|
-
message: Message<RequestCallPayload<Protocol[
|
|
15
|
-
params: DataOf<Protocol[
|
|
12
|
+
export type EventHandler<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string> = (context: EventHandlerContext<Protocol, Procedure>) => void | Promise<void>;
|
|
13
|
+
export type RequestHandlerContext<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string> = Protocol[Procedure] extends AnyRequestProcedureDefinition ? {
|
|
14
|
+
message: Message<RequestCallPayload<Protocol[Procedure]['type'], Procedure, DataOf<Protocol[Procedure]['params']>>>;
|
|
15
|
+
params: DataOf<Protocol[Procedure]['params']>;
|
|
16
16
|
signal: AbortSignal;
|
|
17
17
|
} : never;
|
|
18
18
|
export type HandlerReturn<ResultSchema, Data = DataOf<ResultSchema>> = Data | Promise<Data>;
|
|
19
|
-
export type RequestHandler<Protocol extends ProtocolDefinition,
|
|
20
|
-
export type StreamHandlerContext<Protocol extends ProtocolDefinition,
|
|
21
|
-
writable: WritableStream<DataOf<Protocol[
|
|
19
|
+
export type RequestHandler<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string> = Protocol[Procedure] extends AnyRequestProcedureDefinition ? (context: RequestHandlerContext<Protocol, Procedure>) => HandlerReturn<Protocol[Procedure]['result']> : never;
|
|
20
|
+
export type StreamHandlerContext<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string> = Protocol[Procedure] extends StreamProcedureDefinition | ChannelProcedureDefinition ? RequestHandlerContext<Protocol, Procedure> & {
|
|
21
|
+
writable: WritableStream<DataOf<Protocol[Procedure]['receive']>>;
|
|
22
22
|
} : never;
|
|
23
|
-
export type StreamHandler<Protocol extends ProtocolDefinition,
|
|
24
|
-
export type ChannelHandlerContext<Protocol extends ProtocolDefinition,
|
|
25
|
-
readable: ReadableStream<DataOf<Protocol[
|
|
23
|
+
export type StreamHandler<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string> = Protocol[Procedure] extends StreamProcedureDefinition | ChannelProcedureDefinition ? (context: StreamHandlerContext<Protocol, Procedure>) => HandlerReturn<Protocol[Procedure]['result']> : never;
|
|
24
|
+
export type ChannelHandlerContext<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string> = Protocol[Procedure] extends ChannelProcedureDefinition ? StreamHandlerContext<Protocol, Procedure> & {
|
|
25
|
+
readable: ReadableStream<DataOf<Protocol[Procedure]['send']>>;
|
|
26
26
|
} : never;
|
|
27
|
-
export type ChannelHandler<Protocol extends ProtocolDefinition,
|
|
28
|
-
export type
|
|
29
|
-
[
|
|
27
|
+
export type ChannelHandler<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string> = Protocol[Procedure] extends ChannelProcedureDefinition ? (context: ChannelHandlerContext<Protocol, Procedure>) => HandlerReturn<Protocol[Procedure]['result']> : never;
|
|
28
|
+
export type ProcedureHandlers<Protocol extends ProtocolDefinition> = {
|
|
29
|
+
[Procedure in keyof Protocol & string]: Protocol[Procedure] extends EventProcedureDefinition ? (context: EventHandlerContext<Protocol, Procedure>) => void : Protocol[Procedure] extends RequestProcedureDefinition ? (context: RequestHandlerContext<Protocol, Procedure>) => HandlerReturn<Protocol[Procedure]['result']> : Protocol[Procedure] extends StreamProcedureDefinition ? (context: StreamHandlerContext<Protocol, Procedure>) => HandlerReturn<Protocol[Procedure]['result']> : Protocol[Procedure] extends ChannelProcedureDefinition ? (context: ChannelHandlerContext<Protocol, Procedure>) => HandlerReturn<Protocol[Procedure]['result']> : never;
|
|
30
30
|
};
|
|
31
|
-
export type EventDataType<Protocol extends ProtocolDefinition,
|
|
32
|
-
export type ParamsType<Protocol extends ProtocolDefinition,
|
|
33
|
-
export type ReceiveType<Protocol extends ProtocolDefinition,
|
|
34
|
-
export type ResultType<Protocol extends ProtocolDefinition,
|
|
35
|
-
export type SendType<Protocol extends ProtocolDefinition,
|
|
31
|
+
export type EventDataType<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string> = Protocol[Procedure] extends EventProcedureDefinition ? DataOf<Protocol[Procedure]['data']> : never;
|
|
32
|
+
export type ParamsType<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string> = Protocol[Procedure] extends AnyRequestProcedureDefinition ? DataOf<Protocol[Procedure]['params']> : never;
|
|
33
|
+
export type ReceiveType<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string> = Protocol[Procedure] extends StreamProcedureDefinition ? DataOf<Protocol[Procedure]['receive']> : Protocol[Procedure] extends ChannelProcedureDefinition ? DataOf<Protocol[Procedure]['receive']> : never;
|
|
34
|
+
export type ResultType<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string> = Protocol[Procedure] extends AnyRequestProcedureDefinition ? DataOf<Protocol[Procedure]['result']> : never;
|
|
35
|
+
export type SendType<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string> = Protocol[Procedure] extends ChannelProcedureDefinition ? DataOf<Protocol[Procedure]['send']> : never;
|
|
36
36
|
export type HandlerContext<Protocol extends ProtocolDefinition> = {
|
|
37
37
|
controllers: Record<string, HandlerController>;
|
|
38
|
-
handlers:
|
|
38
|
+
handlers: ProcedureHandlers<Protocol>;
|
|
39
39
|
reject: (rejection: RejectionType) => void;
|
|
40
40
|
send: (payload: AnyServerPayloadOf<Protocol>) => Promise<void>;
|
|
41
41
|
};
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/utils.d.ts
CHANGED
|
@@ -7,5 +7,5 @@ export type ConsumeReaderParams<T> = {
|
|
|
7
7
|
signal: AbortSignal;
|
|
8
8
|
};
|
|
9
9
|
export declare function consumeReader<T>(params: ConsumeReaderParams<T>): Promise<void>;
|
|
10
|
-
export declare function executeHandler<Protocol extends ProtocolDefinition,
|
|
10
|
+
export declare function executeHandler<Protocol extends ProtocolDefinition, Procedure extends keyof Protocol & string, Result extends ResultType<Protocol, Procedure> = ResultType<Protocol, Procedure>>(context: HandlerContext<Protocol>, payload: RequestPayloadOf<Procedure, Protocol[Procedure]>, execute: () => Result | Promise<Result>): Promise<void>;
|
|
11
11
|
//# sourceMappingURL=utils.d.ts.map
|
package/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAKhG,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5D,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACnC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAA;IACtC,MAAM,EAAE,WAAW,CAAA;CACpB,CAAA;AAED,wBAAsB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBpF;AAGD,wBAAsB,cAAc,CAClC,QAAQ,SAAS,kBAAkB,EACnC,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAKhG,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5D,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACnC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAA;IACtC,MAAM,EAAE,WAAW,CAAA;CACpB,CAAA;AAED,wBAAsB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBpF;AAGD,wBAAsB,cAAc,CAClC,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,EACzC,MAAM,SAAS,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,EAEhF,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,EACjC,OAAO,EAAE,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,EACzD,OAAO,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
|
package/lib/utils.js
CHANGED
|
@@ -38,7 +38,7 @@ export async function executeHandler(context, payload, execute) {
|
|
|
38
38
|
message: cause.message ?? 'Handler execution failed'
|
|
39
39
|
}).toPayload(payload.rid));
|
|
40
40
|
}
|
|
41
|
-
context.reject(new ErrorRejection(`Error handling
|
|
41
|
+
context.reject(new ErrorRejection(`Error handling procedure: ${payload.prc}`, {
|
|
42
42
|
info: payload,
|
|
43
43
|
cause
|
|
44
44
|
}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enkaku/server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"homepage": "https://enkaku.dev",
|
|
6
6
|
"description": "Server logic for Enkaku RPC",
|
|
@@ -25,15 +25,15 @@
|
|
|
25
25
|
],
|
|
26
26
|
"sideEffects": false,
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@enkaku/capability": "^0.
|
|
29
|
-
"@enkaku/schema": "^0.
|
|
30
|
-
"@enkaku/stream": "^0.
|
|
31
|
-
"@enkaku/
|
|
32
|
-
"@enkaku/
|
|
33
|
-
"@enkaku/
|
|
28
|
+
"@enkaku/capability": "^0.8.0",
|
|
29
|
+
"@enkaku/schema": "^0.8.0",
|
|
30
|
+
"@enkaku/stream": "^0.8.0",
|
|
31
|
+
"@enkaku/token": "^0.8.0",
|
|
32
|
+
"@enkaku/util": "^0.8.0",
|
|
33
|
+
"@enkaku/protocol": "^0.8.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@enkaku/transport": "^0.
|
|
36
|
+
"@enkaku/transport": "^0.8.0"
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
|
39
39
|
"build:clean": "del lib",
|