aether-wv 0.0.0-stage → 1.0.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/LICENSE +201 -0
- package/README.md +313 -2
- package/bin/aetherc.js +4 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/packages/client/src/client.d.ts +26 -0
- package/dist/packages/client/src/client.d.ts.map +1 -0
- package/dist/packages/client/src/client.js +58 -0
- package/dist/packages/client/src/client.js.map +1 -0
- package/dist/packages/client/src/index.d.ts +8 -0
- package/dist/packages/client/src/index.d.ts.map +1 -0
- package/dist/packages/client/src/index.js +8 -0
- package/dist/packages/client/src/index.js.map +1 -0
- package/dist/packages/client/src/transports/android.d.ts +10 -0
- package/dist/packages/client/src/transports/android.d.ts.map +1 -0
- package/dist/packages/client/src/transports/android.js +38 -0
- package/dist/packages/client/src/transports/android.js.map +1 -0
- package/dist/packages/client/src/transports/electron.d.ts +39 -0
- package/dist/packages/client/src/transports/electron.d.ts.map +1 -0
- package/dist/packages/client/src/transports/electron.js +51 -0
- package/dist/packages/client/src/transports/electron.js.map +1 -0
- package/dist/packages/client/src/transports/ios.d.ts +9 -0
- package/dist/packages/client/src/transports/ios.d.ts.map +1 -0
- package/dist/packages/client/src/transports/ios.js +37 -0
- package/dist/packages/client/src/transports/ios.js.map +1 -0
- package/dist/packages/client/src/transports/memory.d.ts +10 -0
- package/dist/packages/client/src/transports/memory.d.ts.map +1 -0
- package/dist/packages/client/src/transports/memory.js +29 -0
- package/dist/packages/client/src/transports/memory.js.map +1 -0
- package/dist/packages/client/src/transports/transport.d.ts +3 -0
- package/dist/packages/client/src/transports/transport.d.ts.map +1 -0
- package/dist/packages/client/src/transports/transport.js +2 -0
- package/dist/packages/client/src/transports/transport.js.map +1 -0
- package/dist/packages/client/src/transports/webview2.d.ts +25 -0
- package/dist/packages/client/src/transports/webview2.d.ts.map +1 -0
- package/dist/packages/client/src/transports/webview2.js +45 -0
- package/dist/packages/client/src/transports/webview2.js.map +1 -0
- package/dist/packages/compiler/src/ast.d.ts +27 -0
- package/dist/packages/compiler/src/ast.d.ts.map +1 -0
- package/dist/packages/compiler/src/ast.js +2 -0
- package/dist/packages/compiler/src/ast.js.map +1 -0
- package/dist/packages/compiler/src/cli.d.ts +2 -0
- package/dist/packages/compiler/src/cli.d.ts.map +1 -0
- package/dist/packages/compiler/src/cli.js +68 -0
- package/dist/packages/compiler/src/cli.js.map +1 -0
- package/dist/packages/compiler/src/codegen-kotlin.d.ts +3 -0
- package/dist/packages/compiler/src/codegen-kotlin.d.ts.map +1 -0
- package/dist/packages/compiler/src/codegen-kotlin.js +119 -0
- package/dist/packages/compiler/src/codegen-kotlin.js.map +1 -0
- package/dist/packages/compiler/src/codegen-swift.d.ts +3 -0
- package/dist/packages/compiler/src/codegen-swift.d.ts.map +1 -0
- package/dist/packages/compiler/src/codegen-swift.js +129 -0
- package/dist/packages/compiler/src/codegen-swift.js.map +1 -0
- package/dist/packages/compiler/src/codegen-ts.d.ts +3 -0
- package/dist/packages/compiler/src/codegen-ts.d.ts.map +1 -0
- package/dist/packages/compiler/src/codegen-ts.js +121 -0
- package/dist/packages/compiler/src/codegen-ts.js.map +1 -0
- package/dist/packages/compiler/src/index.d.ts +7 -0
- package/dist/packages/compiler/src/index.d.ts.map +1 -0
- package/dist/packages/compiler/src/index.js +7 -0
- package/dist/packages/compiler/src/index.js.map +1 -0
- package/dist/packages/compiler/src/parser.d.ts +3 -0
- package/dist/packages/compiler/src/parser.d.ts.map +1 -0
- package/dist/packages/compiler/src/parser.js +80 -0
- package/dist/packages/compiler/src/parser.js.map +1 -0
- package/dist/packages/core/src/index.d.ts +7 -0
- package/dist/packages/core/src/index.d.ts.map +1 -0
- package/dist/packages/core/src/index.js +7 -0
- package/dist/packages/core/src/index.js.map +1 -0
- package/dist/packages/core/src/multiplexer/backpressure.d.ts +41 -0
- package/dist/packages/core/src/multiplexer/backpressure.d.ts.map +1 -0
- package/dist/packages/core/src/multiplexer/backpressure.js +80 -0
- package/dist/packages/core/src/multiplexer/backpressure.js.map +1 -0
- package/dist/packages/core/src/multiplexer/multiplexer.d.ts +36 -0
- package/dist/packages/core/src/multiplexer/multiplexer.d.ts.map +1 -0
- package/dist/packages/core/src/multiplexer/multiplexer.js +238 -0
- package/dist/packages/core/src/multiplexer/multiplexer.js.map +1 -0
- package/dist/packages/core/src/protocol/frames.d.ts +46 -0
- package/dist/packages/core/src/protocol/frames.d.ts.map +1 -0
- package/dist/packages/core/src/protocol/frames.js +89 -0
- package/dist/packages/core/src/protocol/frames.js.map +1 -0
- package/dist/packages/core/src/protocol/serializer.d.ts +38 -0
- package/dist/packages/core/src/protocol/serializer.d.ts.map +1 -0
- package/dist/packages/core/src/protocol/serializer.js +145 -0
- package/dist/packages/core/src/protocol/serializer.js.map +1 -0
- package/dist/packages/core/src/security/capability.d.ts +18 -0
- package/dist/packages/core/src/security/capability.d.ts.map +1 -0
- package/dist/packages/core/src/security/capability.js +56 -0
- package/dist/packages/core/src/security/capability.js.map +1 -0
- package/dist/packages/core/src/session/session.d.ts +29 -0
- package/dist/packages/core/src/session/session.d.ts.map +1 -0
- package/dist/packages/core/src/session/session.js +52 -0
- package/dist/packages/core/src/session/session.js.map +1 -0
- package/dist/packages/native-host/src/host.d.ts +30 -0
- package/dist/packages/native-host/src/host.d.ts.map +1 -0
- package/dist/packages/native-host/src/host.js +232 -0
- package/dist/packages/native-host/src/host.js.map +1 -0
- package/dist/packages/native-host/src/index.d.ts +2 -0
- package/dist/packages/native-host/src/index.d.ts.map +1 -0
- package/dist/packages/native-host/src/index.js +2 -0
- package/dist/packages/native-host/src/index.js.map +1 -0
- package/package.json +37 -4
- package/packages/platform-templates/android/AetherNativeDriver.kt +57 -0
- package/packages/platform-templates/ios/AetherNativeDriver.swift +78 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen-swift.d.ts","sourceRoot":"","sources":["../../../../packages/compiler/src/codegen-swift.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,UAAU,CAAC;AA4CtD,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CA6FpD"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
function mapSwiftType(type) {
|
|
2
|
+
switch (type) {
|
|
3
|
+
case 'string': return 'String';
|
|
4
|
+
case 'int32': return 'Int32';
|
|
5
|
+
case 'uint32': return 'UInt32';
|
|
6
|
+
case 'int64': return 'Int64';
|
|
7
|
+
case 'float': return 'Float';
|
|
8
|
+
case 'double': return 'Double';
|
|
9
|
+
case 'bool': return 'Bool';
|
|
10
|
+
case 'bytes': return 'Data';
|
|
11
|
+
default: return type;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function swiftWriterCall(f, accessor) {
|
|
15
|
+
switch (f.type) {
|
|
16
|
+
case 'string': return `w.writeString(${accessor})`;
|
|
17
|
+
case 'int32': return `w.writeInt32(${accessor})`;
|
|
18
|
+
case 'uint32': return `w.writeUInt32(${accessor})`;
|
|
19
|
+
case 'int64': return `w.writeInt64(${accessor})`;
|
|
20
|
+
case 'float': return `w.writeFloat(${accessor})`;
|
|
21
|
+
case 'double': return `w.writeDouble(${accessor})`;
|
|
22
|
+
case 'bool': return `w.writeBool(${accessor})`;
|
|
23
|
+
case 'bytes': return `w.writeBytes(${accessor})`;
|
|
24
|
+
default: return `w.writeBytes(encode${f.type}(${accessor}))`;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function swiftReaderCall(f) {
|
|
28
|
+
switch (f.type) {
|
|
29
|
+
case 'string': return `try r.readString()`;
|
|
30
|
+
case 'int32': return `try r.readInt32()`;
|
|
31
|
+
case 'uint32': return `try r.readUInt32()`;
|
|
32
|
+
case 'int64': return `try r.readInt64()`;
|
|
33
|
+
case 'float': return `try r.readFloat()`;
|
|
34
|
+
case 'double': return `try r.readDouble()`;
|
|
35
|
+
case 'bool': return `try r.readBool()`;
|
|
36
|
+
case 'bytes': return `try r.readBytes()`;
|
|
37
|
+
default: return `try decode${f.type}(r.readBytes())`;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export function generateSwift(ast) {
|
|
41
|
+
const out = [];
|
|
42
|
+
out.push(`// Generated by Aether-WV Compiler (aetherc). DO NOT EDIT.`);
|
|
43
|
+
out.push(`import Foundation`);
|
|
44
|
+
out.push(`import AetherWV\n`);
|
|
45
|
+
// ── Messages ────────────────────────────────────────────────────────────
|
|
46
|
+
for (const msg of ast.messages) {
|
|
47
|
+
// Struct
|
|
48
|
+
out.push(`public struct ${msg.name}: Sendable, Equatable {`);
|
|
49
|
+
for (const f of msg.fields) {
|
|
50
|
+
out.push(` public var ${f.name}: ${mapSwiftType(f.type)}`);
|
|
51
|
+
}
|
|
52
|
+
out.push(`\n public init(${msg.fields.map(f => `${f.name}: ${mapSwiftType(f.type)}`).join(', ')}) {`);
|
|
53
|
+
for (const f of msg.fields) {
|
|
54
|
+
out.push(` self.${f.name} = ${f.name}`);
|
|
55
|
+
}
|
|
56
|
+
out.push(` }`);
|
|
57
|
+
out.push(`}\n`);
|
|
58
|
+
// Encoder
|
|
59
|
+
out.push(`public func encode${msg.name}(_ msg: ${msg.name}) -> Data {`);
|
|
60
|
+
out.push(` let w = AetherWriter()`);
|
|
61
|
+
for (const f of msg.fields) {
|
|
62
|
+
out.push(` ${swiftWriterCall(f, `msg.${f.name}`)}`);
|
|
63
|
+
}
|
|
64
|
+
out.push(` return w.finish()`);
|
|
65
|
+
out.push(`}\n`);
|
|
66
|
+
// Decoder
|
|
67
|
+
out.push(`public func decode${msg.name}(_ data: Data) throws -> ${msg.name} {`);
|
|
68
|
+
out.push(` let r = AetherReader(data)`);
|
|
69
|
+
out.push(` return ${msg.name}(`);
|
|
70
|
+
const decoderLines = msg.fields.map((f, i) => {
|
|
71
|
+
const comma = i < msg.fields.length - 1 ? ',' : '';
|
|
72
|
+
return ` ${f.name}: ${swiftReaderCall(f)}${comma}`;
|
|
73
|
+
});
|
|
74
|
+
out.push(...decoderLines);
|
|
75
|
+
out.push(` )`);
|
|
76
|
+
out.push(`}\n`);
|
|
77
|
+
}
|
|
78
|
+
// ── Service Protocols ────────────────────────────────────────────────────
|
|
79
|
+
for (const s of ast.services) {
|
|
80
|
+
const protocolName = s.name.endsWith('Service') ? `${s.name}Protocol` : `${s.name}ServiceProtocol`;
|
|
81
|
+
out.push(`public protocol ${protocolName}: Actor {`);
|
|
82
|
+
for (const m of s.methods) {
|
|
83
|
+
const mn = m.name.charAt(0).toLowerCase() + m.name.slice(1);
|
|
84
|
+
if (!m.isOutputStream) {
|
|
85
|
+
out.push(` func ${mn}(request: ${m.inputType}) async throws -> ${m.outputType}`);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
out.push(` func ${mn}(request: ${m.inputType}) -> AsyncThrowingStream<${m.outputType}, Error>`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
out.push(`}\n`);
|
|
92
|
+
// ── Typed Client Stub ──────────────────────────────────────────────────
|
|
93
|
+
const clientName = s.name.endsWith('Service') ? `${s.name}Client` : `${s.name}ServiceClient`;
|
|
94
|
+
out.push(`public final class ${clientName} {`);
|
|
95
|
+
out.push(` private let client: AetherClient`);
|
|
96
|
+
out.push(` private let token: String`);
|
|
97
|
+
out.push(` public init(client: AetherClient, token: String = "") {`);
|
|
98
|
+
out.push(` self.client = client`);
|
|
99
|
+
out.push(` self.token = token`);
|
|
100
|
+
out.push(` }`);
|
|
101
|
+
out.push(``);
|
|
102
|
+
for (const m of s.methods) {
|
|
103
|
+
const mn = m.name.charAt(0).toLowerCase() + m.name.slice(1);
|
|
104
|
+
if (!m.isOutputStream) {
|
|
105
|
+
out.push(` public func ${mn}(request: ${m.inputType}) async throws -> ${m.outputType} {`);
|
|
106
|
+
out.push(` let reqData = encode${m.inputType}(request)`);
|
|
107
|
+
out.push(` let resData = try await client.invoke(service: "${s.name}", method: "${m.name}", payload: reqData, token: token)`);
|
|
108
|
+
out.push(` return try decode${m.outputType}(resData)`);
|
|
109
|
+
out.push(` }`);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
out.push(` public func ${mn}(request: ${m.inputType}) -> AsyncThrowingStream<${m.outputType}, Error> {`);
|
|
113
|
+
out.push(` AsyncThrowingStream { continuation in`);
|
|
114
|
+
out.push(` let reqData = encode${m.inputType}(request)`);
|
|
115
|
+
out.push(` client.stream(service: "${s.name}", method: "${m.name}", payload: reqData, token: token) { chunk, done, error in`);
|
|
116
|
+
out.push(` if let error { continuation.finish(throwing: error); return }`);
|
|
117
|
+
out.push(` if let chunk, let val = try? decode${m.outputType}(chunk) { continuation.yield(val) }`);
|
|
118
|
+
out.push(` if done { continuation.finish() }`);
|
|
119
|
+
out.push(` }`);
|
|
120
|
+
out.push(` }`);
|
|
121
|
+
out.push(` }`);
|
|
122
|
+
}
|
|
123
|
+
out.push(``);
|
|
124
|
+
}
|
|
125
|
+
out.push(`}\n`);
|
|
126
|
+
}
|
|
127
|
+
return out.join('\n');
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=codegen-swift.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen-swift.js","sourceRoot":"","sources":["../../../../packages/compiler/src/codegen-swift.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen-ts.d.ts","sourceRoot":"","sources":["../../../../packages/compiler/src/codegen-ts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,UAAU,CAAC;AAoEtD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CA8DzD"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
function mapTsType(type) {
|
|
2
|
+
switch (type) {
|
|
3
|
+
case 'string':
|
|
4
|
+
return 'string';
|
|
5
|
+
case 'int32':
|
|
6
|
+
case 'uint32':
|
|
7
|
+
case 'float':
|
|
8
|
+
case 'double':
|
|
9
|
+
return 'number';
|
|
10
|
+
case 'int64':
|
|
11
|
+
return 'bigint';
|
|
12
|
+
case 'bool':
|
|
13
|
+
return 'boolean';
|
|
14
|
+
case 'bytes':
|
|
15
|
+
return 'Uint8Array';
|
|
16
|
+
default:
|
|
17
|
+
return type; // nested message
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function generateWriterCall(field, accessor) {
|
|
21
|
+
switch (field.type) {
|
|
22
|
+
case 'string':
|
|
23
|
+
return `w.writeString(${accessor});`;
|
|
24
|
+
case 'int32':
|
|
25
|
+
return `w.writeInt32(${accessor});`;
|
|
26
|
+
case 'uint32':
|
|
27
|
+
return `w.writeUint32(${accessor});`;
|
|
28
|
+
case 'float':
|
|
29
|
+
return `w.writeFloat32(${accessor});`;
|
|
30
|
+
case 'double':
|
|
31
|
+
return `w.writeFloat64(${accessor});`;
|
|
32
|
+
case 'int64':
|
|
33
|
+
return `w.writeBigInt64(${accessor});`;
|
|
34
|
+
case 'bool':
|
|
35
|
+
return `w.writeBoolean(${accessor});`;
|
|
36
|
+
case 'bytes':
|
|
37
|
+
return `w.writeBytes(${accessor});`;
|
|
38
|
+
default:
|
|
39
|
+
return `w.writeBytes(encode${field.type}(${accessor}));`;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function generateReaderCall(field) {
|
|
43
|
+
switch (field.type) {
|
|
44
|
+
case 'string':
|
|
45
|
+
return `r.readString()`;
|
|
46
|
+
case 'int32':
|
|
47
|
+
return `r.readInt32()`;
|
|
48
|
+
case 'uint32':
|
|
49
|
+
return `r.readUint32()`;
|
|
50
|
+
case 'float':
|
|
51
|
+
return `r.readFloat32()`;
|
|
52
|
+
case 'double':
|
|
53
|
+
return `r.readFloat64()`;
|
|
54
|
+
case 'int64':
|
|
55
|
+
return `r.readBigInt64()`;
|
|
56
|
+
case 'bool':
|
|
57
|
+
return `r.readBoolean()`;
|
|
58
|
+
case 'bytes':
|
|
59
|
+
return `r.readBytes()`;
|
|
60
|
+
default:
|
|
61
|
+
return `decode${field.type}(r.readBytes())`;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export function generateTypeScript(ast) {
|
|
65
|
+
const out = [];
|
|
66
|
+
out.push(`// Generated by Aether-WV Compiler (aetherc). DO NOT EDIT.`);
|
|
67
|
+
out.push(`import { BinaryWriter, BinaryReader, AetherClient } from 'aether-wv';\n`);
|
|
68
|
+
// Messages
|
|
69
|
+
for (const msg of ast.messages) {
|
|
70
|
+
out.push(`export interface ${msg.name} {`);
|
|
71
|
+
for (const f of msg.fields) {
|
|
72
|
+
out.push(` ${f.name}: ${mapTsType(f.type)};`);
|
|
73
|
+
}
|
|
74
|
+
out.push(`}\n`);
|
|
75
|
+
// Encoder
|
|
76
|
+
out.push(`export function encode${msg.name}(msg: ${msg.name}): Uint8Array {`);
|
|
77
|
+
out.push(` const w = new BinaryWriter();`);
|
|
78
|
+
for (const f of msg.fields) {
|
|
79
|
+
out.push(` ${generateWriterCall(f, `msg.${f.name}`)}`);
|
|
80
|
+
}
|
|
81
|
+
out.push(` return w.finish();`);
|
|
82
|
+
out.push(`}\n`);
|
|
83
|
+
// Decoder
|
|
84
|
+
out.push(`export function decode${msg.name}(bytes: Uint8Array): ${msg.name} {`);
|
|
85
|
+
out.push(` const r = new BinaryReader(bytes);`);
|
|
86
|
+
out.push(` return {`);
|
|
87
|
+
for (const f of msg.fields) {
|
|
88
|
+
out.push(` ${f.name}: ${generateReaderCall(f)},`);
|
|
89
|
+
}
|
|
90
|
+
out.push(` };`);
|
|
91
|
+
out.push(`}\n`);
|
|
92
|
+
}
|
|
93
|
+
// Services
|
|
94
|
+
for (const s of ast.services) {
|
|
95
|
+
out.push(`export class ${s.name}Client {`);
|
|
96
|
+
out.push(` constructor(private client: AetherClient, private token: string = '') {}\n`);
|
|
97
|
+
for (const m of s.methods) {
|
|
98
|
+
if (!m.isOutputStream) {
|
|
99
|
+
// Unary RPC
|
|
100
|
+
out.push(` async ${m.name.charAt(0).toLowerCase() + m.name.slice(1)}(request: ${m.inputType}): Promise<${m.outputType}> {`);
|
|
101
|
+
out.push(` const reqBytes = encode${m.inputType}(request);`);
|
|
102
|
+
out.push(` const resBytes = await this.client.invoke('${s.name}', '${m.name}', reqBytes, this.token);`);
|
|
103
|
+
out.push(` return decode${m.outputType}(resBytes);`);
|
|
104
|
+
out.push(` }\n`);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
// Reactive Stream
|
|
108
|
+
out.push(` async *${m.name.charAt(0).toLowerCase() + m.name.slice(1)}(request: ${m.inputType}, options?: { signal?: AbortSignal }): AsyncIterableIterator<${m.outputType}> {`);
|
|
109
|
+
out.push(` const reqBytes = encode${m.inputType}(request);`);
|
|
110
|
+
out.push(` const rawStream = this.client.stream('${s.name}', '${m.name}', reqBytes, this.token, options?.signal);`);
|
|
111
|
+
out.push(` for await (const chunk of rawStream) {`);
|
|
112
|
+
out.push(` yield decode${m.outputType}(chunk);`);
|
|
113
|
+
out.push(` }`);
|
|
114
|
+
out.push(` }\n`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
out.push(`}\n`);
|
|
118
|
+
}
|
|
119
|
+
return out.join('\n');
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=codegen-ts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen-ts.js","sourceRoot":"","sources":["../../../../packages/compiler/src/codegen-ts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/compiler/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/compiler/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../packages/compiler/src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA2E,MAAM,UAAU,CAAC;AAE9G,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAyF5D"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export function parseAetherSchema(content) {
|
|
2
|
+
const lines = content
|
|
3
|
+
.split('\n')
|
|
4
|
+
.map((l) => l.trim())
|
|
5
|
+
.filter((l) => l.length > 0 && !l.startsWith('//'));
|
|
6
|
+
let packageName = 'app';
|
|
7
|
+
const services = [];
|
|
8
|
+
const messages = [];
|
|
9
|
+
let currentService = null;
|
|
10
|
+
let currentMessage = null;
|
|
11
|
+
for (const line of lines) {
|
|
12
|
+
if (line.startsWith('syntax')) {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
if (line.startsWith('package ')) {
|
|
16
|
+
const match = line.match(/^package\s+([\w\.]+);$/);
|
|
17
|
+
if (match)
|
|
18
|
+
packageName = match[1];
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
// Service start: service Name {
|
|
22
|
+
if (line.startsWith('service ')) {
|
|
23
|
+
const match = line.match(/^service\s+(\w+)\s*\{?$/);
|
|
24
|
+
if (match) {
|
|
25
|
+
currentService = { name: match[1], methods: [] };
|
|
26
|
+
services.push(currentService);
|
|
27
|
+
}
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
// Message start: message Name {
|
|
31
|
+
if (line.startsWith('message ')) {
|
|
32
|
+
const match = line.match(/^message\s+(\w+)\s*\{?$/);
|
|
33
|
+
if (match) {
|
|
34
|
+
currentMessage = { name: match[1], fields: [] };
|
|
35
|
+
messages.push(currentMessage);
|
|
36
|
+
}
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
// Block close: }
|
|
40
|
+
if (line === '}') {
|
|
41
|
+
currentService = null;
|
|
42
|
+
currentMessage = null;
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
// Inside service: rpc MethodName(Input) returns (stream Output);
|
|
46
|
+
if (currentService) {
|
|
47
|
+
const rpcMatch = line.match(/^rpc\s+(\w+)\s*\(\s*(stream\s+)?(\w+)\s*\)\s*returns\s*\(\s*(stream\s+)?(\w+)\s*\);?$/);
|
|
48
|
+
if (rpcMatch) {
|
|
49
|
+
const method = {
|
|
50
|
+
name: rpcMatch[1],
|
|
51
|
+
isInputStream: !!rpcMatch[2],
|
|
52
|
+
inputType: rpcMatch[3],
|
|
53
|
+
isOutputStream: !!rpcMatch[4],
|
|
54
|
+
outputType: rpcMatch[5],
|
|
55
|
+
};
|
|
56
|
+
currentService.methods.push(method);
|
|
57
|
+
}
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
// Inside message: type field_name = 1;
|
|
61
|
+
if (currentMessage) {
|
|
62
|
+
const fieldMatch = line.match(/^([\w\.]+)\s+(\w+)\s*=\s*(\d+);?$/);
|
|
63
|
+
if (fieldMatch) {
|
|
64
|
+
const field = {
|
|
65
|
+
type: fieldMatch[1],
|
|
66
|
+
name: fieldMatch[2],
|
|
67
|
+
tag: parseInt(fieldMatch[3], 10),
|
|
68
|
+
};
|
|
69
|
+
currentMessage.fields.push(field);
|
|
70
|
+
}
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
packageName,
|
|
76
|
+
services,
|
|
77
|
+
messages,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../packages/compiler/src/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './protocol/frames.js';
|
|
2
|
+
export * from './protocol/serializer.js';
|
|
3
|
+
export * from './multiplexer/backpressure.js';
|
|
4
|
+
export * from './multiplexer/multiplexer.js';
|
|
5
|
+
export * from './session/session.js';
|
|
6
|
+
export * from './security/capability.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './protocol/frames.js';
|
|
2
|
+
export * from './protocol/serializer.js';
|
|
3
|
+
export * from './multiplexer/backpressure.js';
|
|
4
|
+
export * from './multiplexer/multiplexer.js';
|
|
5
|
+
export * from './session/session.js';
|
|
6
|
+
export * from './security/capability.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/core/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aether-WV Credit-Based Flow Control Manager
|
|
3
|
+
* Implements sliding window credit management to prevent consumer overload and GC jank.
|
|
4
|
+
*/
|
|
5
|
+
export interface FlowControlConfig {
|
|
6
|
+
initialCredits?: number;
|
|
7
|
+
ackBatchSize?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare class StreamCreditController {
|
|
10
|
+
private config;
|
|
11
|
+
private credits;
|
|
12
|
+
private pendingAcks;
|
|
13
|
+
private readonly ackThreshold;
|
|
14
|
+
private waitResolvers;
|
|
15
|
+
constructor(config?: FlowControlConfig);
|
|
16
|
+
/** Current available credits for sending */
|
|
17
|
+
get availableCredits(): number;
|
|
18
|
+
/**
|
|
19
|
+
* Called by Producer before sending a frame.
|
|
20
|
+
* If credits <= 0, returns a Promise that resolves when a FLOW_ACK is received.
|
|
21
|
+
*/
|
|
22
|
+
acquireCredit(): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Called by Producer when FLOW_ACK is received from Consumer.
|
|
25
|
+
*/
|
|
26
|
+
grantCredits(count: number): void;
|
|
27
|
+
/**
|
|
28
|
+
* Called by Consumer when a frame is processed.
|
|
29
|
+
* Returns positive number of credits to ACK if threshold reached, or 0 if buffered.
|
|
30
|
+
*/
|
|
31
|
+
onFrameProcessed(): number;
|
|
32
|
+
/**
|
|
33
|
+
* Force flush any pending acks (e.g. before closing)
|
|
34
|
+
*/
|
|
35
|
+
flushPendingAcks(): number;
|
|
36
|
+
/**
|
|
37
|
+
* Cancel and unblock all waiting producers (e.g. on stream termination/error)
|
|
38
|
+
*/
|
|
39
|
+
cancel(): void;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=backpressure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backpressure.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/multiplexer/backpressure.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,sBAAsB;IAMrB,OAAO,CAAC,MAAM;IAL1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,aAAa,CAAyB;gBAE1B,MAAM,GAAE,iBAAsB;IAKlD,4CAA4C;IAC5C,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAcpC;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQjC;;;OAGG;IACH,gBAAgB,IAAI,MAAM;IAU1B;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAM1B;;OAEG;IACH,MAAM,IAAI,IAAI;CAQf"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aether-WV Credit-Based Flow Control Manager
|
|
3
|
+
* Implements sliding window credit management to prevent consumer overload and GC jank.
|
|
4
|
+
*/
|
|
5
|
+
export class StreamCreditController {
|
|
6
|
+
config;
|
|
7
|
+
credits;
|
|
8
|
+
pendingAcks = 0;
|
|
9
|
+
ackThreshold;
|
|
10
|
+
waitResolvers = [];
|
|
11
|
+
constructor(config = {}) {
|
|
12
|
+
this.config = config;
|
|
13
|
+
this.credits = config.initialCredits ?? 8;
|
|
14
|
+
this.ackThreshold = config.ackBatchSize ?? Math.max(1, Math.floor(this.credits / 2));
|
|
15
|
+
}
|
|
16
|
+
/** Current available credits for sending */
|
|
17
|
+
get availableCredits() {
|
|
18
|
+
return this.credits;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Called by Producer before sending a frame.
|
|
22
|
+
* If credits <= 0, returns a Promise that resolves when a FLOW_ACK is received.
|
|
23
|
+
*/
|
|
24
|
+
async acquireCredit() {
|
|
25
|
+
if (this.credits > 0) {
|
|
26
|
+
this.credits -= 1;
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
return new Promise((resolve) => {
|
|
30
|
+
this.waitResolvers.push(() => {
|
|
31
|
+
this.credits -= 1;
|
|
32
|
+
resolve();
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Called by Producer when FLOW_ACK is received from Consumer.
|
|
38
|
+
*/
|
|
39
|
+
grantCredits(count) {
|
|
40
|
+
this.credits += count;
|
|
41
|
+
while (this.credits > 0 && this.waitResolvers.length > 0) {
|
|
42
|
+
const resume = this.waitResolvers.shift();
|
|
43
|
+
if (resume)
|
|
44
|
+
resume();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Called by Consumer when a frame is processed.
|
|
49
|
+
* Returns positive number of credits to ACK if threshold reached, or 0 if buffered.
|
|
50
|
+
*/
|
|
51
|
+
onFrameProcessed() {
|
|
52
|
+
this.pendingAcks += 1;
|
|
53
|
+
if (this.pendingAcks >= this.ackThreshold) {
|
|
54
|
+
const toAck = this.pendingAcks;
|
|
55
|
+
this.pendingAcks = 0;
|
|
56
|
+
return toAck;
|
|
57
|
+
}
|
|
58
|
+
return 0;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Force flush any pending acks (e.g. before closing)
|
|
62
|
+
*/
|
|
63
|
+
flushPendingAcks() {
|
|
64
|
+
const toAck = this.pendingAcks;
|
|
65
|
+
this.pendingAcks = 0;
|
|
66
|
+
return toAck;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Cancel and unblock all waiting producers (e.g. on stream termination/error)
|
|
70
|
+
*/
|
|
71
|
+
cancel() {
|
|
72
|
+
this.credits = 0;
|
|
73
|
+
const resolvers = this.waitResolvers;
|
|
74
|
+
this.waitResolvers = [];
|
|
75
|
+
for (const res of resolvers) {
|
|
76
|
+
res();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=backpressure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backpressure.js","sourceRoot":"","sources":["../../../../../packages/core/src/multiplexer/backpressure.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,OAAO,sBAAsB;IAMb;IALZ,OAAO,CAAS;IAChB,WAAW,GAAW,CAAC,CAAC;IACf,YAAY,CAAS;IAC9B,aAAa,GAAsB,EAAE,CAAC;IAE9C,YAAoB,SAA4B,EAAE;QAA9B,WAAM,GAAN,MAAM,CAAwB;QAChD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,4CAA4C;IAC5C,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa;QACjB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QAED,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC3B,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;gBAClB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,KAAa;QACxB,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;QACtB,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC1C,IAAI,MAAM;gBAAE,MAAM,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,gBAAgB;QACd,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,GAAG,EAAE,CAAC;QACR,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { AetherFrame } from '../protocol/frames.js';
|
|
2
|
+
import { StreamCreditController } from './backpressure.js';
|
|
3
|
+
export interface Transport {
|
|
4
|
+
send(data: Uint8Array): Promise<void> | void;
|
|
5
|
+
onReceive(handler: (data: Uint8Array) => void): void;
|
|
6
|
+
}
|
|
7
|
+
export interface StreamConsumer<T = Uint8Array> {
|
|
8
|
+
onData: (data: T) => void;
|
|
9
|
+
onError: (err: Error) => void;
|
|
10
|
+
onClose: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare class AetherMultiplexer {
|
|
13
|
+
private transport;
|
|
14
|
+
private nextStreamId;
|
|
15
|
+
private nextSequenceId;
|
|
16
|
+
private pendingRpc;
|
|
17
|
+
private activeStreams;
|
|
18
|
+
private outgoingStreams;
|
|
19
|
+
constructor(transport: Transport);
|
|
20
|
+
private handleRawBytes;
|
|
21
|
+
handleFrame(frame: AetherFrame): void;
|
|
22
|
+
private sendAck;
|
|
23
|
+
send(frame: AetherFrame): void;
|
|
24
|
+
/**
|
|
25
|
+
* Execute Unary RPC Call
|
|
26
|
+
*/
|
|
27
|
+
invokeRpc(payload: Uint8Array, timeoutMs?: number): Promise<Uint8Array>;
|
|
28
|
+
/**
|
|
29
|
+
* Open reactive stream and return an AsyncIterableIterator with backpressure
|
|
30
|
+
*/
|
|
31
|
+
openStream(payload: Uint8Array, signal?: AbortSignal): AsyncIterableIterator<Uint8Array>;
|
|
32
|
+
cancelStream(streamId: number): void;
|
|
33
|
+
registerProducerController(streamId: number, controller: StreamCreditController): void;
|
|
34
|
+
unregisterProducerController(streamId: number): void;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=multiplexer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiplexer.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/multiplexer/multiplexer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAKZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7C,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;CACtD;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,UAAU;IAC5C,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC1B,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,qBAAa,iBAAiB;IA6BhB,OAAO,CAAC,SAAS;IA5B7B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAAK;IAG3B,OAAO,CAAC,UAAU,CAOd;IAGJ,OAAO,CAAC,aAAa,CASjB;IAGJ,OAAO,CAAC,eAAe,CAA6C;gBAEhD,SAAS,EAAE,SAAS;IAIxC,OAAO,CAAC,cAAc;IAKtB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAkGrC,OAAO,CAAC,OAAO;IAcf,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAK9B;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAuB5E;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,qBAAqB,CAAC,UAAU,CAAC;IAmExF,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgBpC,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,sBAAsB,GAAG,IAAI;IAItF,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAGrD"}
|