@agentlogin/issuer 0.0.0-stage → 0.2.0-beta.1

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 (58) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +237 -2
  3. package/dist/agents.d.ts +40 -0
  4. package/dist/agents.js +257 -0
  5. package/dist/agents.js.map +1 -0
  6. package/dist/app.d.ts +3 -0
  7. package/dist/app.js +652 -0
  8. package/dist/app.js.map +1 -0
  9. package/dist/clients.d.ts +20 -0
  10. package/dist/clients.js +272 -0
  11. package/dist/clients.js.map +1 -0
  12. package/dist/constants.d.ts +30 -0
  13. package/dist/constants.js +32 -0
  14. package/dist/constants.js.map +1 -0
  15. package/dist/context.d.ts +37 -0
  16. package/dist/context.js +2 -0
  17. package/dist/context.js.map +1 -0
  18. package/dist/errors.d.ts +10 -0
  19. package/dist/errors.js +17 -0
  20. package/dist/errors.js.map +1 -0
  21. package/dist/index.d.ts +45 -0
  22. package/dist/index.js +107 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/owner-address.d.ts +2 -0
  25. package/dist/owner-address.js +24 -0
  26. package/dist/owner-address.js.map +1 -0
  27. package/dist/safefetch.d.ts +38 -0
  28. package/dist/safefetch.js +164 -0
  29. package/dist/safefetch.js.map +1 -0
  30. package/dist/server.d.ts +1 -0
  31. package/dist/server.js +89 -0
  32. package/dist/server.js.map +1 -0
  33. package/dist/signing-configuration.d.ts +14 -0
  34. package/dist/signing-configuration.js +35 -0
  35. package/dist/signing-configuration.js.map +1 -0
  36. package/dist/signing-state.d.ts +22 -0
  37. package/dist/signing-state.js +14 -0
  38. package/dist/signing-state.js.map +1 -0
  39. package/dist/sqlite-store.d.ts +24 -0
  40. package/dist/sqlite-store.js +81 -0
  41. package/dist/sqlite-store.js.map +1 -0
  42. package/dist/state.d.ts +30 -0
  43. package/dist/state.js +77 -0
  44. package/dist/state.js.map +1 -0
  45. package/dist/store.d.ts +693 -0
  46. package/dist/store.js +883 -0
  47. package/dist/store.js.map +1 -0
  48. package/dist/tokens.d.ts +37 -0
  49. package/dist/tokens.js +167 -0
  50. package/dist/tokens.js.map +1 -0
  51. package/dist/transactions.d.ts +90 -0
  52. package/dist/transactions.js +449 -0
  53. package/dist/transactions.js.map +1 -0
  54. package/dist/util.d.ts +29 -0
  55. package/dist/util.js +113 -0
  56. package/dist/util.js.map +1 -0
  57. package/package.json +37 -4
  58. package/static/wait.js +42 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { Client, Store } from './store.js';
2
+ import type { Constants } from './constants.js';
3
+ export interface ClientContext {
4
+ store: Store;
5
+ constants: Constants;
6
+ /** Development only: accept http and loopback redirect URIs and document URLs. */
7
+ allowInsecureClients: boolean;
8
+ }
9
+ /** Section 4.2 / CIMD Section 3: syntactic validation of an Open Client identifier; no fetch. */
10
+ export declare function parseClientIdUrl(clientId: string, allowInsecure?: boolean): URL | null;
11
+ /** Section 4.2: a redirect URI acceptable for an Open Client. */
12
+ export declare function validOpenRedirectUri(uri: string, allowInsecure: boolean): boolean;
13
+ /** Section 4.2: fetch and validate a Client ID Metadata Document. */
14
+ export declare function fetchOpenClient(ctx: ClientContext, url: URL): Promise<Client>;
15
+ /** Resolves a `client_id` to a client (Section 5.2 step 1). */
16
+ export declare function resolveClient(ctx: ClientContext, clientId: string): Promise<Client>;
17
+ /** Section 5.2 step 2: simple string comparison, except that a Registered Client's loopback IP literal URI may vary its port (RFC 8252 Section 7.3). */
18
+ export declare function redirectUriMatches(client: Client, uri: string): boolean;
19
+ /** Section 4.3: Dynamic Client Registration (RFC 7591) for Registered Clients. Returns the response body. */
20
+ export declare function registerClient(ctx: ClientContext, body: unknown): Promise<Record<string, unknown>>;
@@ -0,0 +1,272 @@
1
+ // Section 4: Open Clients (Client ID Metadata Documents) and Registered Clients.
2
+ import { freshness, safeFetch } from './safefetch.js';
3
+ import { OAuthError } from './errors.js';
4
+ import { isPlainObject, nowSeconds, randomSecret, sha256, randomId } from './util.js';
5
+ import { isIP } from 'node:net';
6
+ /** Section 4.2 / CIMD Section 3: syntactic validation of an Open Client identifier; no fetch. */
7
+ export function parseClientIdUrl(clientId, allowInsecure = false) {
8
+ let url;
9
+ try {
10
+ url = new URL(clientId);
11
+ }
12
+ catch {
13
+ return null;
14
+ }
15
+ if (url.href !== clientId)
16
+ return null; // must be in normalised form
17
+ if (!(url.protocol === 'https:' || (allowInsecure && url.protocol === 'http:')))
18
+ return null;
19
+ if (url.username || url.password || url.hash || url.href.endsWith('#'))
20
+ return null;
21
+ if (!url.pathname || url.pathname === '/')
22
+ return null;
23
+ if (!allowInsecure && isIP(url.hostname.replace(/^\[|\]$/g, '')))
24
+ return null; // host must be a domain name
25
+ if (url.pathname.split('/').some((seg) => seg === '.' || seg === '..'))
26
+ return null;
27
+ return url;
28
+ }
29
+ function isLoopback(host) {
30
+ const h = host.replace(/^\[|\]$/g, '');
31
+ return h === 'localhost' || h.endsWith('.localhost') || h === '::1' || /^127\./.test(h);
32
+ }
33
+ /** Section 4.2: a redirect URI acceptable for an Open Client. */
34
+ export function validOpenRedirectUri(uri, allowInsecure) {
35
+ try {
36
+ const u = new URL(uri);
37
+ if (u.hash)
38
+ return false;
39
+ if (u.protocol === 'https:')
40
+ return allowInsecure || !isLoopback(u.hostname);
41
+ return allowInsecure && u.protocol === 'http:';
42
+ }
43
+ catch {
44
+ return false;
45
+ }
46
+ }
47
+ const optString = (v) => (typeof v === 'string' && v.length <= 2048 ? v : undefined);
48
+ const httpsUri = (v) => {
49
+ const s = optString(v);
50
+ if (!s)
51
+ return undefined;
52
+ try {
53
+ return new URL(s).protocol === 'https:' ? s : undefined;
54
+ }
55
+ catch {
56
+ return undefined;
57
+ }
58
+ };
59
+ /** Validates document or registration metadata common to both tiers. Throws OAuthError on failure. */
60
+ function readCommonMetadata(doc, allowInsecure) {
61
+ const uris = doc.redirect_uris;
62
+ if (!Array.isArray(uris) || uris.length === 0 || !uris.every((u) => typeof u === 'string')) {
63
+ throw new OAuthError(400, 'invalid_client_metadata', 'redirect_uris required');
64
+ }
65
+ for (const u of uris) {
66
+ if (!validOpenRedirectUri(u, allowInsecure))
67
+ throw new OAuthError(400, 'invalid_client_metadata', `redirect_uri not permitted: ${u}`);
68
+ }
69
+ let max;
70
+ if (doc.max_signups_per_owner !== undefined) {
71
+ const m = doc.max_signups_per_owner;
72
+ if (typeof m !== 'number' || !Number.isInteger(m) || m < 0 || m > 1_000_000)
73
+ throw new OAuthError(400, 'invalid_client_metadata', 'max_signups_per_owner');
74
+ max = m;
75
+ }
76
+ if (doc.require_review !== undefined && typeof doc.require_review !== 'boolean')
77
+ throw new OAuthError(400, 'invalid_client_metadata', 'require_review');
78
+ if (doc.id_token_signed_response_alg !== undefined && doc.id_token_signed_response_alg !== 'ES256')
79
+ throw new OAuthError(400, 'invalid_client_metadata', 'id_token_signed_response_alg must be ES256');
80
+ return {
81
+ redirectUris: uris,
82
+ clientName: optString(doc.client_name),
83
+ logoUri: httpsUri(doc.logo_uri),
84
+ tosUri: httpsUri(doc.tos_uri),
85
+ policyUri: httpsUri(doc.policy_uri),
86
+ initiateLoginUri: httpsUri(doc.initiate_login_uri),
87
+ maxSignupsPerOwner: max,
88
+ requireReview: doc.require_review === true,
89
+ };
90
+ }
91
+ /** Section 4.2: fetch and validate a Client ID Metadata Document. */
92
+ export async function fetchOpenClient(ctx, url) {
93
+ let res;
94
+ try {
95
+ res = await safeFetch(url, { maxBytes: ctx.constants.N_CIMD, timeoutMs: ctx.constants.N_FETCH_MS, allowPrivate: ctx.allowInsecureClients, maxRedirects: 0 });
96
+ }
97
+ catch (e) {
98
+ throw new OAuthError(400, 'invalid_request', `client metadata unavailable: ${e.message}`);
99
+ }
100
+ if (res.status !== 200)
101
+ throw new OAuthError(400, 'invalid_request', `client metadata status ${res.status}`);
102
+ const ct = String(res.headers['content-type'] ?? '').split(';')[0].trim().toLowerCase();
103
+ if (!(ct === 'application/json' || ct.endsWith('+json')))
104
+ throw new OAuthError(400, 'invalid_request', 'client metadata is not JSON');
105
+ let doc;
106
+ try {
107
+ doc = JSON.parse(res.body.toString('utf8'));
108
+ }
109
+ catch {
110
+ throw new OAuthError(400, 'invalid_request', 'client metadata is not valid JSON');
111
+ }
112
+ if (!isPlainObject(doc))
113
+ throw new OAuthError(400, 'invalid_request', 'client metadata is not an object');
114
+ if (doc.client_id !== url.href)
115
+ throw new OAuthError(400, 'invalid_request', 'client_id mismatch in metadata');
116
+ if (doc.token_endpoint_auth_method !== 'none')
117
+ throw new OAuthError(400, 'invalid_request', 'token_endpoint_auth_method must be none');
118
+ const common = readCommonMetadata(doc, ctx.allowInsecureClients);
119
+ const now = nowSeconds();
120
+ // Reused only for as long as the response allows (RFC 9111): never for no-store or no-cache, five minutes when it
121
+ // states nothing. A client that withdraws a redirect URI or changes its terms is then seen on its next request.
122
+ const ttl = freshness(res.headers, 300);
123
+ const client = { clientId: url.href, type: 'open', tokenEndpointAuthMethod: 'none', ...common, fetchedAt: now, cacheUntil: now + ttl };
124
+ await ctx.store.putClient(client);
125
+ return client;
126
+ }
127
+ /** Resolves a `client_id` to a client (Section 5.2 step 1). */
128
+ export async function resolveClient(ctx, clientId) {
129
+ const existing = await ctx.store.getClient(clientId);
130
+ if (existing && existing.type === 'registered')
131
+ return existing;
132
+ if (existing && existing.type === 'open' && (existing.cacheUntil ?? 0) > nowSeconds())
133
+ return existing;
134
+ const url = parseClientIdUrl(clientId, ctx.allowInsecureClients);
135
+ if (!url)
136
+ throw new OAuthError(400, 'invalid_request', 'unknown client_id');
137
+ return fetchOpenClient(ctx, url);
138
+ }
139
+ /**
140
+ * A loopback IP literal redirect URI (`http://127.0.0.1:{port}/...` or `http://[::1]:{port}/...`, Section 5.2 step 2)
141
+ * split into what must be equal and the port, which may differ. The split is made on the string as sent, never on a
142
+ * parsed URL: a parser would equate other spellings of the host (`127.1`, `0x7f.0.0.1`, `2130706433`), an upper-case
143
+ * scheme, userinfo, dot segments, an empty query or a fragment, none of which simple string comparison accepts.
144
+ */
145
+ const LOOPBACK_URI = /^(http:\/\/(?:127\.0\.0\.1|\[::1\]))(?::(0|[1-9]\d{0,4}))?([/?][^#]*)?$/;
146
+ function loopbackParts(uri) {
147
+ const m = LOOPBACK_URI.exec(uri);
148
+ if (!m || (m[2] !== undefined && Number(m[2]) > 65535))
149
+ return null;
150
+ return { origin: m[1], rest: m[3] ?? '' };
151
+ }
152
+ /** Section 5.2 step 2: simple string comparison, except that a Registered Client's loopback IP literal URI may vary its port (RFC 8252 Section 7.3). */
153
+ export function redirectUriMatches(client, uri) {
154
+ if (client.redirectUris.includes(uri))
155
+ return true;
156
+ if (client.type !== 'registered')
157
+ return false;
158
+ const requested = loopbackParts(uri);
159
+ if (!requested)
160
+ return false;
161
+ return client.redirectUris.some((r) => {
162
+ const registered = loopbackParts(r);
163
+ return !!registered && registered.origin === requested.origin && registered.rest === requested.rest;
164
+ });
165
+ }
166
+ /** Section 4.3: Dynamic Client Registration (RFC 7591) for Registered Clients. Returns the response body. */
167
+ export async function registerClient(ctx, body) {
168
+ if (!isPlainObject(body))
169
+ throw new OAuthError(400, 'invalid_client_metadata', 'body must be an object');
170
+ const common = readCommonMetadata(body, true /* loopback permitted for Registered Clients, RFC 8252 */);
171
+ for (const u of common.redirectUris) {
172
+ const p = new URL(u).protocol;
173
+ if (p !== 'https:' && !(p === 'http:' && isLoopback(new URL(u).hostname)) && !ctx.allowInsecureClients) {
174
+ throw new OAuthError(400, 'invalid_client_metadata', `redirect_uri not permitted: ${u}`);
175
+ }
176
+ }
177
+ if (body.grant_types !== undefined && !(Array.isArray(body.grant_types) && body.grant_types.every((g) => g === 'authorization_code')))
178
+ throw new OAuthError(400, 'invalid_client_metadata', 'grant_types');
179
+ if (body.response_types !== undefined && !(Array.isArray(body.response_types) && body.response_types.every((r) => r === 'code')))
180
+ throw new OAuthError(400, 'invalid_client_metadata', 'response_types');
181
+ // Core 4.3 requires an explicit method, overriding RFC 7591 Section 2's omission default.
182
+ const method = body.token_endpoint_auth_method;
183
+ if (method !== 'client_secret_basic' && method !== 'client_secret_post')
184
+ throw new OAuthError(400, 'invalid_client_metadata', 'token_endpoint_auth_method');
185
+ // Section 4.4: a Relay registering as a client names itself; every redirect URI must be on the Relay's host, and the
186
+ // Relay's `op_policy_uri` is taken from its metadata for the approval page of Section 6.6.
187
+ let relayIssuer;
188
+ let relayPolicyUri;
189
+ if (body.relay_issuer !== undefined) {
190
+ const relay = typeof body.relay_issuer === 'string' ? parseIssuerIdentifier(body.relay_issuer, ctx.allowInsecureClients) : null;
191
+ if (!relay)
192
+ throw new OAuthError(400, 'invalid_client_metadata', 'relay_issuer must be an Issuer Identifier');
193
+ for (const u of common.redirectUris) {
194
+ if (new URL(u).host !== relay.host)
195
+ throw new OAuthError(400, 'invalid_client_metadata', `redirect_uri ${u} is not on the host of relay_issuer`);
196
+ }
197
+ relayIssuer = relay.href.replace(/\/$/, '');
198
+ relayPolicyUri = await fetchRelayPolicyUri(ctx, relayIssuer);
199
+ }
200
+ const clientId = randomId();
201
+ const secret = randomSecret();
202
+ const client = { clientId, type: 'registered', tokenEndpointAuthMethod: method, clientSecretHash: sha256(secret), relayIssuer, relayPolicyUri, ...common };
203
+ await ctx.store.putClient(client);
204
+ return {
205
+ client_id: clientId,
206
+ client_secret: secret,
207
+ client_id_issued_at: nowSeconds(),
208
+ client_secret_expires_at: 0,
209
+ token_endpoint_auth_method: method,
210
+ redirect_uris: client.redirectUris,
211
+ client_name: client.clientName,
212
+ logo_uri: client.logoUri,
213
+ tos_uri: client.tosUri,
214
+ policy_uri: client.policyUri,
215
+ initiate_login_uri: client.initiateLoginUri,
216
+ max_signups_per_owner: client.maxSignupsPerOwner,
217
+ require_review: client.requireReview,
218
+ relay_issuer: client.relayIssuer,
219
+ };
220
+ }
221
+ /**
222
+ * Section 4.4: the Relay's `op_policy_uri`, read from its metadata (Section 2.4) under the fetch protections of
223
+ * Section 2.2. A `relay_issuer` whose metadata cannot be fetched, names another Issuer or lacks the member is refused:
224
+ * the approval page of Section 6.6 could not say under which policy the Owner Claims are forwarded.
225
+ */
226
+ async function fetchRelayPolicyUri(ctx, relayIssuer) {
227
+ const refuse = (d) => new OAuthError(400, 'invalid_client_metadata', `relay_issuer metadata: ${d}`);
228
+ let res;
229
+ try {
230
+ res = await safeFetch(`${relayIssuer}/.well-known/openid-configuration`, { maxBytes: ctx.constants.N_FETCH_BYTES, timeoutMs: ctx.constants.N_FETCH_MS, allowPrivate: ctx.allowInsecureClients, maxRedirects: 0 });
231
+ }
232
+ catch (e) {
233
+ throw refuse(`unavailable (${e.message})`);
234
+ }
235
+ if (res.status !== 200)
236
+ throw refuse(`status ${res.status}`);
237
+ let doc;
238
+ try {
239
+ doc = JSON.parse(res.body.toString('utf8'));
240
+ }
241
+ catch {
242
+ throw refuse('not JSON');
243
+ }
244
+ if (!isPlainObject(doc) || doc.issuer !== relayIssuer)
245
+ throw refuse('issuer does not equal relay_issuer');
246
+ const policy = optString(doc.op_policy_uri);
247
+ let scheme;
248
+ try {
249
+ scheme = policy ? new URL(policy).protocol : undefined;
250
+ }
251
+ catch {
252
+ scheme = undefined;
253
+ }
254
+ if (!policy || !(scheme === 'https:' || (ctx.allowInsecureClients && scheme === 'http:')))
255
+ throw refuse('op_policy_uri is REQUIRED for a Relay and must be an https URL');
256
+ return policy;
257
+ }
258
+ /** An Issuer Identifier (Section 1.2 of [RFC8414]): https URL without query or fragment; http only in development. */
259
+ function parseIssuerIdentifier(v, allowInsecure) {
260
+ try {
261
+ const u = new URL(v);
262
+ if (!(u.protocol === 'https:' || (allowInsecure && u.protocol === 'http:')))
263
+ return null;
264
+ if (u.search || u.hash || u.username || u.password)
265
+ return null;
266
+ return u;
267
+ }
268
+ catch {
269
+ return null;
270
+ }
271
+ }
272
+ //# sourceMappingURL=clients.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clients.js","sourceRoot":"","sources":["../src/clients.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export interface Constants {
2
+ T_TXN: number;
3
+ T_OWNER: number;
4
+ T_CODE: number;
5
+ T_TOKEN: number;
6
+ T_ASSERT: number;
7
+ T_SKEW: number;
8
+ T_KEY: number;
9
+ T_KEY_MAX: number;
10
+ T_CONSENT: number;
11
+ T_RETAIN: number;
12
+ T_CACHE: number;
13
+ N_ASSERTION: number;
14
+ N_CIMD: number;
15
+ N_FETCH_BYTES: number;
16
+ N_FETCH_MS: number;
17
+ }
18
+ export declare const DEFAULT_CONSTANTS: Constants;
19
+ export declare const SCOPES: readonly ["openid", "email", "profile", "owner_profile", "owner_email"];
20
+ export type Scope = (typeof SCOPES)[number];
21
+ export declare const OWNER_SCOPES: Scope[];
22
+ export declare const AGENT_KEY_ALGS: readonly ["ES256"];
23
+ export declare const ASSERTION_TYP = "agent-login+jwt";
24
+ export declare const ENROLLMENT_TYP = "agent-login-enrollment+jwt";
25
+ export declare const VERSION = "1.0";
26
+ /** Section 6.1 `disclosure`: one entry per requested scope, fixed for the transaction's lifetime. */
27
+ export declare const DISCLOSURE: Record<Scope, {
28
+ title: string;
29
+ description: string;
30
+ }>;
@@ -0,0 +1,32 @@
1
+ export const DEFAULT_CONSTANTS = {
2
+ T_TXN: 300,
3
+ T_OWNER: 86400,
4
+ T_CODE: 60,
5
+ T_TOKEN: 600,
6
+ T_ASSERT: 300,
7
+ T_SKEW: 60,
8
+ T_KEY: 2592000,
9
+ T_KEY_MAX: 31536000,
10
+ T_CONSENT: 180 * 86400,
11
+ T_RETAIN: 300,
12
+ T_CACHE: 86400,
13
+ N_ASSERTION: 2048,
14
+ N_CIMD: 16 * 1024,
15
+ N_FETCH_BYTES: 64 * 1024,
16
+ N_FETCH_MS: 10_000,
17
+ };
18
+ export const SCOPES = ['openid', 'email', 'profile', 'owner_profile', 'owner_email'];
19
+ export const OWNER_SCOPES = ['owner_profile', 'owner_email'];
20
+ export const AGENT_KEY_ALGS = ['ES256'];
21
+ export const ASSERTION_TYP = 'agent-login+jwt';
22
+ export const ENROLLMENT_TYP = 'agent-login-enrollment+jwt';
23
+ export const VERSION = '1.0';
24
+ /** Section 6.1 `disclosure`: one entry per requested scope, fixed for the transaction's lifetime. */
25
+ export const DISCLOSURE = {
26
+ openid: { title: 'Agent identifier', description: 'A stable identifier for this agent at this application.' },
27
+ email: { title: 'Agent handle', description: "The agent's handle, verified by its issuer." },
28
+ profile: { title: 'Agent profile', description: "The agent's display name and username, and an identifier for its owner." },
29
+ owner_profile: { title: "Owner's name", description: "The name of the person or organisation accountable for the agent." },
30
+ owner_email: { title: "Owner's email address", description: "The verified email address of the person or organisation accountable for the agent." },
31
+ };
32
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAC,MAAM,iBAAiB,GAAc;IAC1C,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,GAAG,GAAG,KAAK;IACtB,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,EAAE,GAAG,IAAI;IACjB,aAAa,EAAE,EAAE,GAAG,IAAI;IACxB,UAAU,EAAE,MAAM;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,CAAU,CAAC;AAE9F,MAAM,CAAC,MAAM,YAAY,GAAY,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAO,CAAU,CAAC;AACjD,MAAM,CAAC,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAC/C,MAAM,CAAC,MAAM,cAAc,GAAG,4BAA4B,CAAC;AAC3D,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC;AAE7B,qGAAqG;AACrG,MAAM,CAAC,MAAM,UAAU,GAA0D;IAC/E,MAAM,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,yDAAyD,EAAE;IAC7G,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,6CAA6C,EAAE;IAC5F,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,yEAAyE,EAAE;IAC3H,aAAa,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,mEAAmE,EAAE;IAC1H,WAAW,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,qFAAqF,EAAE;CACpJ,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { Constants } from './constants.js';
2
+ import type { Store } from './store.js';
3
+ import type { CryptoKey, JWK } from 'jose';
4
+ export interface SigningKey {
5
+ privateKey: CryptoKey;
6
+ publicJwk: JWK;
7
+ kid: string;
8
+ alg: 'ES256';
9
+ }
10
+ export interface IssuerContext {
11
+ /** Issuer Identifier, https URL without trailing slash. */
12
+ issuer: string;
13
+ /** Section 2.4 `handle_domains`. */
14
+ handleDomains: string[];
15
+ constants: Constants;
16
+ store: Store;
17
+ signingKey: SigningKey;
18
+ /** Locally provisioned private material; active authority is always read from Store. */
19
+ signingKeys: Map<string, SigningKey>;
20
+ jwksCacheSeconds: number;
21
+ ownerDeletionRetentionSeconds: number;
22
+ policyUri: string;
23
+ /** Development only: http/loopback clients, private addresses in fetches, http issuer identifier. */
24
+ allowInsecureClients: boolean;
25
+ /** Admin bearer token for the bootstrap API and as RFC 7591 initial access token. */
26
+ adminToken: string;
27
+ now: () => number;
28
+ /**
29
+ * Delivers the one-time code of the Owner email sign-in (Section 7.5 `email`) to the Owner's address. The sign-in is
30
+ * unavailable when absent. The code is a credential: an implementation sends it to the mailbox and nowhere else.
31
+ */
32
+ sendOwnerCode?: (m: {
33
+ email: string;
34
+ code: string;
35
+ expiresAt: number;
36
+ }) => void | Promise<void>;
37
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ /** OAuth / transaction error (Sections 5.5, 6.7). `status` is the HTTP status. */
2
+ export declare class OAuthError extends Error {
3
+ readonly status: number;
4
+ readonly error: string;
5
+ readonly description?: string | undefined;
6
+ readonly headers: Record<string, string>;
7
+ constructor(status: number, error: string, description?: string | undefined, headers?: Record<string, string>);
8
+ }
9
+ export declare const invalidRequest: (d?: string) => OAuthError;
10
+ export declare const invalidToken: (d?: string) => OAuthError;
package/dist/errors.js ADDED
@@ -0,0 +1,17 @@
1
+ /** OAuth / transaction error (Sections 5.5, 6.7). `status` is the HTTP status. */
2
+ export class OAuthError extends Error {
3
+ status;
4
+ error;
5
+ description;
6
+ headers;
7
+ constructor(status, error, description, headers = {}) {
8
+ super(description ? `${error}: ${description}` : error);
9
+ this.status = status;
10
+ this.error = error;
11
+ this.description = description;
12
+ this.headers = headers;
13
+ }
14
+ }
15
+ export const invalidRequest = (d) => new OAuthError(400, 'invalid_request', d);
16
+ export const invalidToken = (d) => new OAuthError(401, 'invalid_token', d, { 'WWW-Authenticate': 'Bearer error="invalid_token"' });
17
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,MAAM,OAAO,UAAW,SAAQ,KAAK;IAEjB;IACA;IACA;IACA;IAJlB,YACkB,MAAc,EACd,KAAa,EACb,WAAoB,EACpB,UAAkC,EAAE;QAEpD,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QALxC,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAQ;QACb,gBAAW,GAAX,WAAW,CAAS;QACpB,YAAO,GAAP,OAAO,CAA6B;IAGtD,CAAC;CACF;AACD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;AACxF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAU,EAAE,EAAE,CACzC,IAAI,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,CAAC,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { type JWK } from 'jose';
2
+ import { DEFAULT_CONSTANTS, type Constants } from './constants.js';
3
+ import type { IssuerContext, SigningKey } from './context.js';
4
+ import { MemoryStore, type Store } from './store.js';
5
+ export interface IssuerOptions {
6
+ /** Issuer Identifier, e.g. https://issuer.example (no trailing slash). */
7
+ issuer: string;
8
+ handleDomains: string[];
9
+ store?: Store;
10
+ constants?: Partial<Constants>;
11
+ /** Private ES256 JWK; generated (ephemeral) when absent. */
12
+ signingJwk?: JWK;
13
+ /** Published key ring. The first key bootstraps a new database; additions remain staged until explicit activation. */
14
+ signingJwks?: JWK[];
15
+ jwksCacheSeconds?: number;
16
+ ownerDeletionRetentionSeconds?: number;
17
+ /** Published fixed retention policy. Defaults to this issuer's /policy document. */
18
+ policyUri?: string;
19
+ adminToken?: string;
20
+ /** Development only: permits http/loopback clients and private addresses in fetches. */
21
+ allowInsecureClients?: boolean;
22
+ now?: () => number;
23
+ /** Delivers the one-time code of the Owner email sign-in (`POST /owner/sessions/email`); the sign-in is off when absent. */
24
+ sendOwnerCode?: IssuerContext['sendOwnerCode'];
25
+ }
26
+ export declare function loadSigningKey(jwk?: JWK): Promise<SigningKey>;
27
+ export declare function createIssuer(opts: IssuerOptions): Promise<{
28
+ app: import("hono").Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
29
+ ctx: IssuerContext;
30
+ /** Validate every private key before publishing any. Reloads do not silently change the active key. */
31
+ publishSigningKeys(jwks: JWK[]): Promise<string[]>;
32
+ activateSigningKey(kid: string): Promise<boolean>;
33
+ removeSigningKey(kid: string, compromised?: boolean): Promise<boolean>;
34
+ }>;
35
+ export { MemoryStore, DEFAULT_CONSTANTS };
36
+ export type { Store, Constants, IssuerContext };
37
+ export * from './store.js';
38
+ export { safeFetch, isBlockedAddress } from './safefetch.js';
39
+ export { parseHandle, handlesEqual, prefersJson } from './util.js';
40
+ export { SQLiteStore } from './sqlite-store.js';
41
+ export { ownerAddressKey } from './owner-address.js';
42
+ export * from './signing-state.js';
43
+ export { validateSigningConfiguration, reloadSigningConfiguration, type SigningConfiguration } from './signing-configuration.js';
44
+ /** Trusted service integration; authorization is atomically bound to its immutable Agent identity. */
45
+ export { enrollKey as enrollAgentKey } from './agents.js';