Initial Commit

This commit is contained in:
2026-05-27 23:47:53 +01:00
parent fbc70f96e6
commit 9b28db724f
18103 changed files with 1600554 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
import { describe, expect, it } from "@suaveplan/testing/runner";
describe("network-plugin-auth dep-graph", () => {
it("loads index.js (acyclic static imports)", async () => {
const mod = await import("../src/index.js");
expect(mod.MeshMembershipVerifier).toBeDefined();
expect(mod.CapabilityTokenIssuer).toBeDefined();
expect(mod.CrossMeshTrustValidator).toBeDefined();
});
});

View File

@@ -0,0 +1,55 @@
import { describe, expect, it } from "@suaveplan/testing/runner";
import {
type AuthProvider,
CapabilityTokenIssuer,
CrossMeshTrustValidator,
MeshMembershipVerifier,
type TokenSigner,
} from "../../src/index.js";
describe("auth end-to-end", () => {
it("verifies join, issues token, validates trust across meshes", async () => {
const authProvider: AuthProvider = {
verifyToken: async () => ({
identity: "alice",
publicKeyHex: "deadbeef",
}),
};
const verifier = new MeshMembershipVerifier({
authProvider,
meshId: "mesh-A",
allowedCapabilities: ["host", "relay", "bridge"],
});
const signer: TokenSigner = {
sign: async () => "sig",
verify: async () => true,
};
const issuer = new CapabilityTokenIssuer({ signer, clock: () => 0 });
const result = await verifier.verifyJoinRequest({
peerId: "alice",
meshId: "mesh-A",
authToken: "tok",
publicKeyHex: "deadbeef",
claimedCapabilities: ["host", "bridge"],
});
expect(result.assignedTier).toBe(0);
const token = await issuer.issue(
result.peerId,
"mesh-A",
result.assignedTier,
result.capabilities
);
await issuer.validate(token);
const trust = new CrossMeshTrustValidator();
trust.add({
fromMeshId: "mesh-A",
toMeshId: "mesh-B",
directions: ["relay", "backbone"],
establishedAt: 0,
});
trust.assertTrusts("mesh-A", "mesh-B", "backbone");
});
});

View File

@@ -0,0 +1,8 @@
// Ensure `globalThis.crypto` is available in bare-Node vitest runs.
import { webcrypto } from "node:crypto";
type WritableGlobal = { crypto?: Crypto };
const g = globalThis as WritableGlobal;
if (g.crypto === undefined) {
g.crypto = webcrypto as unknown as Crypto;
}