@aroha-sdk/core 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/crypto/encryption.d.ts +39 -0
  2. package/dist/crypto/encryption.d.ts.map +1 -0
  3. package/dist/crypto/encryption.js +88 -0
  4. package/dist/crypto/encryption.js.map +1 -0
  5. package/dist/crypto/index.d.ts +3 -0
  6. package/dist/crypto/index.d.ts.map +1 -0
  7. package/dist/crypto/index.js +3 -0
  8. package/dist/crypto/index.js.map +1 -0
  9. package/dist/crypto/signing.d.ts +43 -0
  10. package/dist/crypto/signing.d.ts.map +1 -0
  11. package/dist/crypto/signing.js +80 -0
  12. package/dist/crypto/signing.js.map +1 -0
  13. package/dist/identity/credentials.d.ts +81 -0
  14. package/dist/identity/credentials.d.ts.map +1 -0
  15. package/dist/identity/credentials.js +82 -0
  16. package/dist/identity/credentials.js.map +1 -0
  17. package/dist/identity/did-cache.d.ts +46 -0
  18. package/dist/identity/did-cache.d.ts.map +1 -0
  19. package/dist/identity/did-cache.js +90 -0
  20. package/dist/identity/did-cache.js.map +1 -0
  21. package/dist/identity/did.d.ts +139 -0
  22. package/dist/identity/did.d.ts.map +1 -0
  23. package/dist/identity/did.js +291 -0
  24. package/dist/identity/did.js.map +1 -0
  25. package/dist/identity/index.d.ts +5 -0
  26. package/dist/identity/index.d.ts.map +1 -0
  27. package/dist/identity/index.js +5 -0
  28. package/dist/identity/index.js.map +1 -0
  29. package/dist/identity/web-did.d.ts +131 -0
  30. package/dist/identity/web-did.d.ts.map +1 -0
  31. package/dist/identity/web-did.js +338 -0
  32. package/dist/identity/web-did.js.map +1 -0
  33. package/dist/index.d.ts +14 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +14 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/messages/envelope.d.ts +102 -0
  38. package/dist/messages/envelope.d.ts.map +1 -0
  39. package/dist/messages/envelope.js +106 -0
  40. package/dist/messages/envelope.js.map +1 -0
  41. package/dist/messages/idempotency.d.ts +61 -0
  42. package/dist/messages/idempotency.d.ts.map +1 -0
  43. package/dist/messages/idempotency.js +93 -0
  44. package/dist/messages/idempotency.js.map +1 -0
  45. package/dist/messages/index.d.ts +5 -0
  46. package/dist/messages/index.d.ts.map +1 -0
  47. package/dist/messages/index.js +5 -0
  48. package/dist/messages/index.js.map +1 -0
  49. package/dist/messages/nonce.d.ts +60 -0
  50. package/dist/messages/nonce.d.ts.map +1 -0
  51. package/dist/messages/nonce.js +94 -0
  52. package/dist/messages/nonce.js.map +1 -0
  53. package/dist/messages/types.d.ts +302 -0
  54. package/dist/messages/types.d.ts.map +1 -0
  55. package/dist/messages/types.js +38 -0
  56. package/dist/messages/types.js.map +1 -0
  57. package/dist/transport/client.d.ts +79 -0
  58. package/dist/transport/client.d.ts.map +1 -0
  59. package/dist/transport/client.js +182 -0
  60. package/dist/transport/client.js.map +1 -0
  61. package/dist/transport/http-utils.d.ts +3 -0
  62. package/dist/transport/http-utils.d.ts.map +1 -0
  63. package/dist/transport/http-utils.js +27 -0
  64. package/dist/transport/http-utils.js.map +1 -0
  65. package/dist/transport/index.d.ts +4 -0
  66. package/dist/transport/index.d.ts.map +1 -0
  67. package/dist/transport/index.js +4 -0
  68. package/dist/transport/index.js.map +1 -0
  69. package/dist/transport/server.d.ts +123 -0
  70. package/dist/transport/server.d.ts.map +1 -0
  71. package/dist/transport/server.js +251 -0
  72. package/dist/transport/server.js.map +1 -0
  73. package/package.json +5 -1
  74. package/tsconfig.json +0 -10
@@ -0,0 +1,251 @@
1
+ /**
2
+ * Aroha Protocol — Layer 0 Transport Server (core)
3
+ *
4
+ * Responsibilities (protocol only):
5
+ * - Serve /.well-known/aroha-agent.json
6
+ * - Accept POST /aroha/v1, validate envelope (sig + nonce + expiry + recipient)
7
+ * - Run optional middleware chain before dispatch
8
+ * - Dispatch valid envelopes to the application handler
9
+ * - Handle WebSocket streams
10
+ * - Delegate unknown HTTP routes to optional httpRoutes handlers
11
+ *
12
+ * What this server deliberately does NOT do:
13
+ * - RBAC / credential verification → @aroha-sdk/credentials createRbacMiddleware()
14
+ * - Credential registry endpoints → @aroha-sdk/credentials credentialRegistryRoutes()
15
+ * - Settlement → @aroha-sdk/settlement
16
+ */
17
+ import { createServer } from "http";
18
+ import { readBody } from "./http-utils.js";
19
+ import { WebSocketServer, WebSocket } from "ws";
20
+ import { randomBytes } from "@noble/hashes/utils";
21
+ import { validateEnvelope } from "../messages/envelope.js";
22
+ import { NonceRegistry } from "../messages/nonce.js";
23
+ const PROTOCOL_VERSION = "1.0";
24
+ // ─── Server ───────────────────────────────────────────────────────────────────
25
+ export class ArohaServer {
26
+ opts;
27
+ nonceRegistry;
28
+ wsClients = new Map();
29
+ streamTokens = new Map();
30
+ server = null;
31
+ wss = null;
32
+ constructor(opts) {
33
+ this.opts = opts;
34
+ this.nonceRegistry = new NonceRegistry(60_000, opts.nonceStore);
35
+ }
36
+ start() {
37
+ if (this.opts.devMode) {
38
+ if (process.env.NODE_ENV !== "development") {
39
+ throw new Error(`[Aroha] devMode can only be enabled when NODE_ENV=development. ` +
40
+ `Current NODE_ENV: "${process.env.NODE_ENV ?? "(unset)"}". ` +
41
+ `Remove devMode: true before deploying.`);
42
+ }
43
+ console.warn("[Aroha] WARNING: devMode is ENABLED — ALL cryptographic validation is bypassed. " +
44
+ "Never use devMode in production.");
45
+ }
46
+ return new Promise((resolve) => {
47
+ this.server = createServer((req, res) => this.handleHttp(req, res));
48
+ this.wss = new WebSocketServer({ server: this.server });
49
+ this.wss.on("connection", (ws, req) => this.handleWsConnection(ws, req));
50
+ this.server.listen(this.opts.port, () => {
51
+ console.log(`[Aroha] ${this.opts.agentDID} listening on port ${this.opts.port}`);
52
+ resolve();
53
+ });
54
+ });
55
+ }
56
+ stop() {
57
+ this.nonceRegistry.destroy();
58
+ return new Promise((resolve, reject) => {
59
+ this.server?.close((err) => (err ? reject(err) : resolve()));
60
+ });
61
+ }
62
+ // ─── Version helpers ───────────────────────────────────────────────────────
63
+ versionLessThan(a, b) {
64
+ const [aMaj, aMin = 0] = a.split(".").map(Number);
65
+ const [bMaj, bMin = 0] = b.split(".").map(Number);
66
+ return aMaj < bMaj || (aMaj === bMaj && aMin < bMin);
67
+ }
68
+ writeJson(res, status, body) {
69
+ res.writeHead(status, {
70
+ "Content-Type": "application/json",
71
+ "X-Aroha-Version": PROTOCOL_VERSION,
72
+ });
73
+ res.end(JSON.stringify(body));
74
+ }
75
+ // ─── HTTP ──────────────────────────────────────────────────────────────────
76
+ async handleHttp(req, res) {
77
+ const url = req.url ?? "/";
78
+ if (req.method === "GET" && url === "/.well-known/aroha-agent.json") {
79
+ res.writeHead(200, { "Content-Type": "application/json" });
80
+ res.end(JSON.stringify(this.opts.didDocument));
81
+ return;
82
+ }
83
+ // did:aroha-web: well-known document — served at the agent's specific path
84
+ if (req.method === "GET" && this.opts.webDIDDocument) {
85
+ const { wellKnownPath } = await import("../identity/web-did.js");
86
+ const expectedPath = wellKnownPath(this.opts.webDIDDocument.id);
87
+ if (url === expectedPath || url === expectedPath.replace(/\/did\.json$/, "")) {
88
+ res.writeHead(200, {
89
+ "Content-Type": "application/json",
90
+ "Access-Control-Allow-Origin": "*",
91
+ "Cache-Control": "no-cache",
92
+ });
93
+ res.end(JSON.stringify(this.opts.webDIDDocument, null, 2));
94
+ return;
95
+ }
96
+ }
97
+ if (req.method === "POST" && url === "/aroha/v1") {
98
+ await this.handleInbound(req, res);
99
+ return;
100
+ }
101
+ for (const route of this.opts.httpRoutes ?? []) {
102
+ if (route.method === req.method && route.test(url)) {
103
+ await route.handle(req, res);
104
+ return;
105
+ }
106
+ }
107
+ res.writeHead(404);
108
+ res.end();
109
+ }
110
+ async handleInbound(req, res) {
111
+ // ── Protocol version check ──────────────────────────────────────────────
112
+ const clientVersion = req.headers["x-aroha-client-version"];
113
+ if (this.opts.minClientVersion) {
114
+ const effectiveVersion = clientVersion ?? "0.0";
115
+ if (this.versionLessThan(effectiveVersion, this.opts.minClientVersion)) {
116
+ this.writeJson(res, 400, {
117
+ error: `Protocol version ${effectiveVersion} below minimum ${this.opts.minClientVersion}`,
118
+ code: "VERSION_NOT_SUPPORTED",
119
+ serverVersion: PROTOCOL_VERSION,
120
+ });
121
+ return;
122
+ }
123
+ }
124
+ let body;
125
+ try {
126
+ body = await readBody(req, this.opts.maxBodyBytes ?? 1_048_576);
127
+ }
128
+ catch (e) {
129
+ const code = e.code;
130
+ if (code === "PAYLOAD_TOO_LARGE") {
131
+ this.writeJson(res, 413, { error: "Payload too large" });
132
+ return;
133
+ }
134
+ this.writeJson(res, 400, { error: "Invalid body" });
135
+ return;
136
+ }
137
+ let envelope;
138
+ try {
139
+ envelope = JSON.parse(body);
140
+ }
141
+ catch {
142
+ this.writeJson(res, 400, { error: "Invalid JSON" });
143
+ return;
144
+ }
145
+ // ── Dev mode: skip all crypto/auth — localhost hackathon mode ───────────
146
+ if (this.opts.devMode) {
147
+ let syncReply = null;
148
+ const respond = (reply) => { syncReply = reply; };
149
+ const stream = (event) => {
150
+ const ws = this.wsClients.get(envelope.correlationId);
151
+ if (ws?.readyState === WebSocket.OPEN)
152
+ ws.send(JSON.stringify(event));
153
+ };
154
+ await this.opts.onMessage(envelope, respond, stream);
155
+ if (syncReply) {
156
+ this.writeJson(res, 200, syncReply);
157
+ }
158
+ else {
159
+ const streamToken = Buffer.from(randomBytes(16)).toString("base64url");
160
+ this.streamTokens.set(streamToken, { cid: envelope.correlationId, expiresMs: Date.now() + 30_000 });
161
+ this.writeJson(res, 202, { streamToken });
162
+ }
163
+ return;
164
+ }
165
+ const senderPubKey = await this.opts.resolvePublicKey(envelope.from);
166
+ if (!senderPubKey) {
167
+ this.writeJson(res, 401, { error: "Unknown sender DID" });
168
+ return;
169
+ }
170
+ const skipSignature = this.opts.bypassSignatureFor?.(envelope.from) ?? false;
171
+ const result = await validateEnvelope(envelope, senderPubKey, this.opts.agentDID, this.nonceRegistry, {
172
+ ...(skipSignature ? { skipSignature: true } : {}),
173
+ ...(this.opts.clockToleranceMs !== undefined
174
+ ? { clockToleranceMs: this.opts.clockToleranceMs }
175
+ : {}),
176
+ });
177
+ if (!result.valid) {
178
+ this.writeJson(res, 401, { error: result.reason });
179
+ return;
180
+ }
181
+ // ── Middleware chain ────────────────────────────────────────────────────
182
+ for (const mw of this.opts.middleware ?? []) {
183
+ let wasRejected = false;
184
+ let rejectStatus = 0, rejectCode = "", rejectReason = "";
185
+ await mw(envelope, (status, code, reason) => {
186
+ wasRejected = true;
187
+ rejectStatus = status;
188
+ rejectCode = code;
189
+ rejectReason = reason;
190
+ });
191
+ if (wasRejected) {
192
+ this.writeJson(res, rejectStatus, { error: rejectReason, code: rejectCode });
193
+ return;
194
+ }
195
+ }
196
+ // ── Dispatch ────────────────────────────────────────────────────────────
197
+ let syncReply = null;
198
+ const respond = (reply) => { syncReply = reply; };
199
+ const stream = (event) => {
200
+ const ws = this.wsClients.get(envelope.correlationId);
201
+ if (ws?.readyState === WebSocket.OPEN)
202
+ ws.send(JSON.stringify(event));
203
+ };
204
+ await this.opts.onMessage(envelope, respond, stream);
205
+ if (syncReply) {
206
+ this.writeJson(res, 200, syncReply);
207
+ }
208
+ else {
209
+ const streamToken = Buffer.from(randomBytes(16)).toString("base64url");
210
+ this.streamTokens.set(streamToken, { cid: envelope.correlationId, expiresMs: Date.now() + 30_000 });
211
+ this.writeJson(res, 202, { streamToken });
212
+ }
213
+ }
214
+ // ─── WebSocket ─────────────────────────────────────────────────────────────
215
+ handleWsConnection(ws, req) {
216
+ const url = new URL(req.url ?? "/", "http://localhost");
217
+ const cid = url.searchParams.get("cid");
218
+ if (!cid) {
219
+ ws.close(1008, "Missing cid parameter");
220
+ return;
221
+ }
222
+ const tok = url.searchParams.get("tok");
223
+ // In production mode, stream token is required.
224
+ // In devMode, the token is optional (hackathon / localhost convenience).
225
+ if (!this.opts.devMode) {
226
+ if (!tok) {
227
+ ws.close(1008, "Stream token required in production mode");
228
+ return;
229
+ }
230
+ // Consume first (atomic remove), then validate — prevents TOCTOU race
231
+ const entry = this.streamTokens.get(tok);
232
+ this.streamTokens.delete(tok);
233
+ if (!entry || entry.cid !== cid || entry.expiresMs < Date.now()) {
234
+ ws.close(1008, "Invalid or expired stream token");
235
+ return;
236
+ }
237
+ }
238
+ else if (tok) {
239
+ // devMode but token provided — consume first, then validate
240
+ const entry = this.streamTokens.get(tok);
241
+ this.streamTokens.delete(tok);
242
+ if (!entry || entry.cid !== cid || entry.expiresMs < Date.now()) {
243
+ ws.close(1008, "Invalid or expired stream token");
244
+ return;
245
+ }
246
+ }
247
+ this.wsClients.set(cid, ws);
248
+ ws.on("close", () => this.wsClients.delete(cid));
249
+ }
250
+ }
251
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/transport/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,11 @@
1
1
  {
2
2
  "name": "@aroha-sdk/core",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "Aroha core: identity, crypto, messaging, transport",
5
+ "files": [
6
+ "dist",
7
+ "src"
8
+ ],
5
9
  "type": "module",
6
10
  "main": "./dist/index.js",
7
11
  "types": "./dist/index.d.ts",
package/tsconfig.json DELETED
@@ -1,10 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "compilerOptions": {
4
- "composite": true,
5
- "outDir": "./dist",
6
- "rootDir": "./src"
7
- },
8
- "include": ["src/**/*"],
9
- "exclude": ["dist", "node_modules", "**/*.test.ts"]
10
- }