40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
/**
|
|
* Example: embedded library usage.
|
|
* Imports core + resolver + in-memory store; no REST API. Resolution runs in-process.
|
|
*/
|
|
import { Resolver, InMemoryResolveCache } from "@as4-411/resolver";
|
|
import { InMemoryDirectoryStore } from "@as4-411/storage";
|
|
|
|
const store = new InMemoryDirectoryStore();
|
|
store.addTenant({ id: "default", name: "Default" });
|
|
store.addParticipant({ id: "local-1", tenantId: "default", name: "Local Participant" });
|
|
store.addIdentifier({
|
|
id: "id-1",
|
|
participantId: "local-1",
|
|
identifier_type: "e164",
|
|
value: "+15551234567",
|
|
priority: 1,
|
|
});
|
|
store.addEndpoint({
|
|
id: "ep-1",
|
|
participantId: "local-1",
|
|
protocol: "https",
|
|
address: "https://local.example.com/receive",
|
|
priority: 1,
|
|
status: "active",
|
|
});
|
|
|
|
const resolver = new Resolver({
|
|
store,
|
|
cache: new InMemoryResolveCache(),
|
|
defaultTtlSeconds: 60,
|
|
});
|
|
|
|
const result = await resolver.resolve({
|
|
identifiers: [{ type: "e164", value: "+15551234567" }],
|
|
tenant: "default",
|
|
});
|
|
|
|
console.log("Embedded resolve:", result.directives.length, "directive(s)");
|
|
console.log(result.directives[0]?.target_address ?? "none");
|