@datalayer/personal-agent-protocol 0.2.0 → 0.3.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.
- package/LICENSE +29 -0
- package/README.md +141 -14
- package/lib/auth.d.ts +35 -1
- package/lib/auth.d.ts.map +1 -1
- package/lib/auth.js +230 -2
- package/lib/auth.js.map +1 -1
- package/lib/crypto.d.ts +1 -1
- package/lib/crypto.d.ts.map +1 -1
- package/lib/crypto.js +1 -2
- package/lib/crypto.js.map +1 -1
- package/lib/discovery.d.ts +1 -0
- package/lib/discovery.d.ts.map +1 -1
- package/lib/discovery.js +4 -3
- package/lib/discovery.js.map +1 -1
- package/lib/errors.d.ts +7 -0
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +6 -0
- package/lib/errors.js.map +1 -1
- package/lib/identity.d.ts +19 -0
- package/lib/identity.d.ts.map +1 -0
- package/lib/identity.js +111 -0
- package/lib/identity.js.map +1 -0
- package/lib/index.d.ts +8 -6
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +667 -656
- package/lib/index.js.map +4 -4
- package/lib/models.d.ts +15 -0
- package/lib/models.d.ts.map +1 -1
- package/lib/models.js +53 -0
- package/lib/models.js.map +1 -1
- package/lib/reactor.d.ts +16 -1
- package/lib/reactor.d.ts.map +1 -1
- package/lib/reactor.js +5 -1
- package/lib/reactor.js.map +1 -1
- package/lib/secret.d.ts +9 -0
- package/lib/secret.d.ts.map +1 -0
- package/lib/secret.js +21 -0
- package/lib/secret.js.map +1 -0
- package/lib/server.d.ts +15 -0
- package/lib/server.d.ts.map +1 -0
- package/lib/server.js +74 -0
- package/lib/server.js.map +1 -0
- package/lib/sessions.d.ts +6 -7
- package/lib/sessions.d.ts.map +1 -1
- package/lib/sessions.js +6 -19
- package/lib/sessions.js.map +1 -1
- package/package.json +14 -1
package/lib/discovery.js
CHANGED
|
@@ -17,7 +17,7 @@ function metadataUrl(issuer) {
|
|
|
17
17
|
parsed.hash = "";
|
|
18
18
|
return parsed;
|
|
19
19
|
}
|
|
20
|
-
async function readJson(initialUrl, transport, urlPolicy, maxRedirects, maxResponseBytes) {
|
|
20
|
+
async function readJson(initialUrl, transport, urlPolicy, maxRedirects, maxResponseBytes, signal) {
|
|
21
21
|
let current = initialUrl;
|
|
22
22
|
for (let redirects = 0; redirects <= maxRedirects; redirects += 1) {
|
|
23
23
|
await urlPolicy.assertSafe(current);
|
|
@@ -27,6 +27,7 @@ async function readJson(initialUrl, transport, urlPolicy, maxRedirects, maxRespo
|
|
|
27
27
|
headers: { Accept: "application/json" },
|
|
28
28
|
redirect: "manual",
|
|
29
29
|
credentials: "omit",
|
|
30
|
+
...(signal === undefined ? {} : { signal }),
|
|
30
31
|
});
|
|
31
32
|
}
|
|
32
33
|
catch (cause) {
|
|
@@ -74,7 +75,7 @@ export async function discoverCompany(domain, options = {}) {
|
|
|
74
75
|
const urlPolicy = firstContribution(reactor, UrlSafetyPolicies, "URL safety policy");
|
|
75
76
|
const maxRedirects = options.maxRedirects ?? 3;
|
|
76
77
|
const maxBytes = options.maxResponseBytes ?? 100 * 1024;
|
|
77
|
-
const discovery = await readJson(new URL(`https://${requestedDomain}/.well-known/poppy.json`), transport, urlPolicy, maxRedirects, maxBytes);
|
|
78
|
+
const discovery = await readJson(new URL(`https://${requestedDomain}/.well-known/poppy.json`), transport, urlPolicy, maxRedirects, maxBytes, options.signal);
|
|
78
79
|
const document = parseDiscoveryDocument(discovery.value);
|
|
79
80
|
if (document.organization.domain.replace(/^www\./, "") !==
|
|
80
81
|
requestedDomain.replace(/^www\./, "")) {
|
|
@@ -83,7 +84,7 @@ export async function discoverCompany(domain, options = {}) {
|
|
|
83
84
|
if (!document.auth) {
|
|
84
85
|
return { discoveryUrl: discovery.finalUrl.toString(), document };
|
|
85
86
|
}
|
|
86
|
-
const metadataResponse = await readJson(metadataUrl(document.auth.issuer), transport, urlPolicy, maxRedirects, maxBytes);
|
|
87
|
+
const metadataResponse = await readJson(metadataUrl(document.auth.issuer), transport, urlPolicy, maxRedirects, maxBytes, options.signal);
|
|
87
88
|
const oauthMetadata = parseOAuthServerMetadata(metadataResponse.value);
|
|
88
89
|
if (oauthMetadata.issuer !== document.auth.issuer) {
|
|
89
90
|
throw new DiscoveryError("issuer_mismatch", "OAuth metadata issuer does not match auth.issuer");
|
package/lib/discovery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,sBAAsB,EACtB,wBAAwB,GAEzB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAGlB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
|
package/lib/errors.d.ts
CHANGED
|
@@ -21,8 +21,15 @@ export declare class DiscoveryError extends PersonalAgentProtocolError {
|
|
|
21
21
|
cause?: unknown;
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
|
+
export declare class IdentityError extends PersonalAgentProtocolError {
|
|
25
|
+
constructor(code: string, message: string, options?: {
|
|
26
|
+
statusCode?: number;
|
|
27
|
+
cause?: unknown;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
24
30
|
export declare class AuthorizationError extends PersonalAgentProtocolError {
|
|
25
31
|
constructor(code: string, message: string, options?: {
|
|
32
|
+
statusCode?: number;
|
|
26
33
|
cause?: unknown;
|
|
27
34
|
});
|
|
28
35
|
}
|
package/lib/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;gBAGlD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;KACZ;IASC,QAAQ,IAAI,MAAM;CAG5B;AAED,qBAAa,uBAAwB,SAAQ,0BAA0B;gBACzD,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO;CAI7E;AAED,qBAAa,cAAe,SAAQ,0BAA0B;gBAE1D,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO;CAKzD;AAED,qBAAa,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;gBAGlD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;KACZ;IASC,QAAQ,IAAI,MAAM;CAG5B;AAED,qBAAa,uBAAwB,SAAQ,0BAA0B;gBACzD,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO;CAI7E;AAED,qBAAa,cAAe,SAAQ,0BAA0B;gBAE1D,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO;CAKzD;AAED,qBAAa,aAAc,SAAQ,0BAA0B;gBAEzD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO;CAKzD;AAED,qBAAa,kBAAmB,SAAQ,0BAA0B;gBAE9D,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO;CAKzD;AAED,qBAAa,YAAa,SAAQ,0BAA0B;gBAExD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO;CAKtG;AAED,qBAAa,UAAW,SAAQ,0BAA0B;gBAC5C,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO;CAI7E"}
|
package/lib/errors.js
CHANGED
|
@@ -26,6 +26,12 @@ export class DiscoveryError extends PersonalAgentProtocolError {
|
|
|
26
26
|
this.name = "DiscoveryError";
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
+
export class IdentityError extends PersonalAgentProtocolError {
|
|
30
|
+
constructor(code, message, options = {}) {
|
|
31
|
+
super(code, message, options);
|
|
32
|
+
this.name = "IdentityError";
|
|
33
|
+
}
|
|
34
|
+
}
|
|
29
35
|
export class AuthorizationError extends PersonalAgentProtocolError {
|
|
30
36
|
constructor(code, message, options = {}) {
|
|
31
37
|
super(code, message, options);
|
package/lib/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAC1C,IAAI,CAAS;IACb,UAAU,CAAqB;IAC/B,OAAO,CAAoC;IAEpD,YACE,IAAY,EACZ,OAAe,EACf,UAII,EAAE;QAEN,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;IACvC,CAAC;IAEQ,QAAQ;QACf,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,0BAA0B;IACrE,YAAY,IAAY,EAAE,OAAe,EAAE,UAA+B,EAAE;QAC1E,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,0BAA0B;IAC5D,YACE,IAAY,EACZ,OAAe,EACf,UAAoD,EAAE;QAEtD,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,0BAA0B;IAChE,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAC1C,IAAI,CAAS;IACb,UAAU,CAAqB;IAC/B,OAAO,CAAoC;IAEpD,YACE,IAAY,EACZ,OAAe,EACf,UAII,EAAE;QAEN,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;IACvC,CAAC;IAEQ,QAAQ;QACf,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,0BAA0B;IACrE,YAAY,IAAY,EAAE,OAAe,EAAE,UAA+B,EAAE;QAC1E,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,0BAA0B;IAC5D,YACE,IAAY,EACZ,OAAe,EACf,UAAoD,EAAE;QAEtD,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,0BAA0B;IAC3D,YACE,IAAY,EACZ,OAAe,EACf,UAAoD,EAAE;QAEtD,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,0BAA0B;IAChE,YACE,IAAY,EACZ,OAAe,EACf,UAAoD,EAAE;QAEtD,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,0BAA0B;IAC1D,YACE,IAAY,EACZ,OAAe,EACf,UAAiG,EAAE;QAEnG,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,0BAA0B;IACxD,YAAY,IAAY,EAAE,OAAe,EAAE,UAA+B,EAAE;QAC1E,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ReactorPlatformView } from "@datalayer/reactor";
|
|
2
|
+
import { type ClientMetadata, type JsonWebKeySet } from "./models.js";
|
|
3
|
+
import { type PapCoreOptions } from "./reactor.js";
|
|
4
|
+
export interface AgentIdentityClientOptions extends PapCoreOptions {
|
|
5
|
+
readonly reactor?: ReactorPlatformView;
|
|
6
|
+
readonly maxJwksRedirects?: number;
|
|
7
|
+
readonly maxResponseBytes?: number;
|
|
8
|
+
}
|
|
9
|
+
export interface IdentityRequestOptions {
|
|
10
|
+
readonly signal?: AbortSignal;
|
|
11
|
+
}
|
|
12
|
+
/** Safely retrieve and bind a personal agent's public identity documents. */
|
|
13
|
+
export declare class AgentIdentityClient {
|
|
14
|
+
#private;
|
|
15
|
+
constructor(options?: AgentIdentityClientOptions);
|
|
16
|
+
fetchMetadata(clientId: string, options?: IdentityRequestOptions): Promise<ClientMetadata>;
|
|
17
|
+
fetchJwks(clientId: string, options?: IdentityRequestOptions): Promise<JsonWebKeySet>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAI9D,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAML,KAAK,cAAc,EAEpB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,0BAA2B,SAAQ,cAAc;IAChE,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,6EAA6E;AAC7E,qBAAa,mBAAmB;;gBAKlB,OAAO,GAAE,0BAA+B;IAc9C,aAAa,CACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,cAAc,CAAC;IAsBpB,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,aAAa,CAAC;CA4G1B"}
|
package/lib/identity.js
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { IdentityError, ProtocolValidationError } from "./errors.js";
|
|
2
|
+
import { parseJsonStrict } from "./json.js";
|
|
3
|
+
import { parseClientMetadata, parseJsonWebKeySet, } from "./models.js";
|
|
4
|
+
import { DiscoveryTransports, UrlSafetyPolicies, buildPapReactor, firstContribution, } from "./reactor.js";
|
|
5
|
+
/** Safely retrieve and bind a personal agent's public identity documents. */
|
|
6
|
+
export class AgentIdentityClient {
|
|
7
|
+
#reactor;
|
|
8
|
+
#maxJwksRedirects;
|
|
9
|
+
#maxResponseBytes;
|
|
10
|
+
constructor(options = {}) {
|
|
11
|
+
const maxRedirects = options.maxJwksRedirects ?? 3;
|
|
12
|
+
const maxBytes = options.maxResponseBytes ?? 100 * 1024;
|
|
13
|
+
if (!Number.isInteger(maxRedirects) || maxRedirects < 0) {
|
|
14
|
+
throw new RangeError("maxJwksRedirects must be a non-negative integer");
|
|
15
|
+
}
|
|
16
|
+
if (!Number.isInteger(maxBytes) || maxBytes <= 0) {
|
|
17
|
+
throw new RangeError("maxResponseBytes must be a positive integer");
|
|
18
|
+
}
|
|
19
|
+
this.#reactor = options.reactor ?? buildPapReactor(options);
|
|
20
|
+
this.#maxJwksRedirects = maxRedirects;
|
|
21
|
+
this.#maxResponseBytes = maxBytes;
|
|
22
|
+
}
|
|
23
|
+
async fetchMetadata(clientId, options = {}) {
|
|
24
|
+
const requested = this.#clientIdUrl(clientId);
|
|
25
|
+
const value = await this.#readJson(requested, 0, undefined, options.signal);
|
|
26
|
+
let metadata;
|
|
27
|
+
try {
|
|
28
|
+
metadata = parseClientMetadata(value);
|
|
29
|
+
}
|
|
30
|
+
catch (cause) {
|
|
31
|
+
throw new ProtocolValidationError("invalid_client_metadata", "Client metadata failed protocol validation", { cause });
|
|
32
|
+
}
|
|
33
|
+
if (metadata.client_id !== requested.toString()) {
|
|
34
|
+
throw new IdentityError("client_id_mismatch", "Client metadata client_id does not match the URL that was fetched");
|
|
35
|
+
}
|
|
36
|
+
return metadata;
|
|
37
|
+
}
|
|
38
|
+
async fetchJwks(clientId, options = {}) {
|
|
39
|
+
const metadata = await this.fetchMetadata(clientId, options);
|
|
40
|
+
const jwksUrl = new URL(metadata.jwks_uri);
|
|
41
|
+
const value = await this.#readJson(jwksUrl, this.#maxJwksRedirects, new URL(metadata.client_id).hostname, options.signal);
|
|
42
|
+
try {
|
|
43
|
+
return parseJsonWebKeySet(value);
|
|
44
|
+
}
|
|
45
|
+
catch (cause) {
|
|
46
|
+
throw new ProtocolValidationError("invalid_jwks", "Personal-agent JWKS failed protocol validation", { cause });
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
#clientIdUrl(clientId) {
|
|
50
|
+
let requested;
|
|
51
|
+
try {
|
|
52
|
+
requested = new URL(clientId);
|
|
53
|
+
}
|
|
54
|
+
catch (cause) {
|
|
55
|
+
throw new IdentityError("invalid_client_id", "client_id must be a valid HTTPS URL", { cause });
|
|
56
|
+
}
|
|
57
|
+
if (requested.hash) {
|
|
58
|
+
throw new IdentityError("invalid_client_id", "client_id must not contain a fragment");
|
|
59
|
+
}
|
|
60
|
+
return requested;
|
|
61
|
+
}
|
|
62
|
+
async #readJson(initialUrl, maxRedirects, requiredHost, signal) {
|
|
63
|
+
const transport = firstContribution(this.#reactor, DiscoveryTransports, "metadata transport");
|
|
64
|
+
const policy = firstContribution(this.#reactor, UrlSafetyPolicies, "URL safety policy");
|
|
65
|
+
let current = initialUrl;
|
|
66
|
+
for (let redirects = 0; redirects <= maxRedirects; redirects += 1) {
|
|
67
|
+
if (requiredHost !== undefined && current.hostname !== requiredHost) {
|
|
68
|
+
throw new IdentityError("jwks_domain_mismatch", "JWKS redirect changed agent domain");
|
|
69
|
+
}
|
|
70
|
+
await policy.assertSafe(current);
|
|
71
|
+
let response;
|
|
72
|
+
try {
|
|
73
|
+
response = await transport.fetch(current, {
|
|
74
|
+
headers: { Accept: "application/json" },
|
|
75
|
+
redirect: "manual",
|
|
76
|
+
credentials: "omit",
|
|
77
|
+
...(signal === undefined ? {} : { signal }),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
catch (cause) {
|
|
81
|
+
throw new IdentityError("request_failed", "Agent identity request failed", { cause });
|
|
82
|
+
}
|
|
83
|
+
if (response.status >= 300 && response.status < 400) {
|
|
84
|
+
if (redirects === maxRedirects) {
|
|
85
|
+
const code = maxRedirects === 0 ? "metadata_redirect" : "too_many_redirects";
|
|
86
|
+
throw new IdentityError(code, "Agent identity endpoint exceeded redirect policy");
|
|
87
|
+
}
|
|
88
|
+
const location = response.headers.get("location");
|
|
89
|
+
if (!location) {
|
|
90
|
+
throw new IdentityError("invalid_redirect", "Agent identity redirect has no location");
|
|
91
|
+
}
|
|
92
|
+
current = new URL(location, current);
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
if (!response.ok) {
|
|
96
|
+
throw new IdentityError("http_error", "Agent identity endpoint returned an unsuccessful status", { statusCode: response.status });
|
|
97
|
+
}
|
|
98
|
+
const contentType = response.headers.get("content-type")?.split(";", 1)[0]?.trim();
|
|
99
|
+
if (contentType !== "application/json" && contentType !== "application/jwk-set+json") {
|
|
100
|
+
throw new IdentityError("invalid_content_type", "Agent identity response must be JSON");
|
|
101
|
+
}
|
|
102
|
+
const body = await response.text();
|
|
103
|
+
if (new TextEncoder().encode(body).byteLength > this.#maxResponseBytes) {
|
|
104
|
+
throw new IdentityError("response_too_large", "Agent identity response exceeds size limit");
|
|
105
|
+
}
|
|
106
|
+
return parseJsonStrict(body);
|
|
107
|
+
}
|
|
108
|
+
throw new IdentityError("too_many_redirects", "Agent identity endpoint exceeded redirect policy");
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
export { AuthorizationError, DiscoveryError, PersonalAgentProtocolError, ProofError, ProtocolValidationError, SessionError, } from "./errors.js";
|
|
2
|
-
export { JoseDpopProofProvider,
|
|
3
|
-
export { AuthorizationCodeGrant, buildDirectSignInRequest, validateDirectSignInCallback, type AuthorizationCodeGrantOptions, type DirectSignInCallback, type DirectSignInOptions, type DirectSignInRequest, } from "./auth.js";
|
|
1
|
+
export { AuthorizationError, DiscoveryError, IdentityError, PersonalAgentProtocolError, ProofError, ProtocolValidationError, SessionError, } from "./errors.js";
|
|
2
|
+
export { JoseDpopProofProvider, type DpopKeyMaterial, type DpopKeyResolver, type JoseAlgorithm, type JoseDpopProofProviderOptions, } from "./crypto.js";
|
|
3
|
+
export { AuthorizationCodeGrant, DirectSignInClient, buildDirectSignInRequest, validateDirectSignInCallback, type AuthorizationCodeGrantOptions, type DirectSignInBeginOptions, type DirectSignInCallback, type DirectSignInClientOptions, type DirectSignInCompleteOptions, type DirectSignInOptions, type DirectSignInRequest, type DirectSignInResult, type DirectSignInStart, } from "./auth.js";
|
|
4
4
|
export { discoverCompany, type DiscoveryOptions } from "./discovery.js";
|
|
5
|
+
export { AgentIdentityClient, type AgentIdentityClientOptions, type IdentityRequestOptions, } from "./identity.js";
|
|
5
6
|
export { parseJsonStrict } from "./json.js";
|
|
6
|
-
export { BrowserHandoffs, Caches, Clocks, DpopProofProviders, DiscoveryTransports, ExtensionHandlers, KeyStores, ProtocolProfiles, RandomSources, Signers, TokenStores, UrlSafetyPolicies, buildPapReactor, createPapCorePlugin, firstContribution, type BrowserHandoff, type Clock, type DiscoveryTransport, type DpopProofProvider, type DpopProofRequest, type ExtensionHandler, type KeyReference, type KeyStore, type PapCoreOptions, type ProtocolProfile, type ProtocolCache, type RandomSource, type Signer, type TokenStore, type UrlSafetyPolicy, } from "./reactor.js";
|
|
7
|
-
export { JWT_BEARER_GRANT, JWT_CLIENT_ASSERTION,
|
|
8
|
-
export {
|
|
7
|
+
export { AuthorizationStateStores, BrowserHandoffs, Caches, Clocks, DpopProofProviders, DiscoveryTransports, ExtensionHandlers, KeyStores, PairwiseUserIdStores, ProtocolProfiles, RandomSources, Signers, TokenStores, UrlSafetyPolicies, buildPapReactor, createPapCorePlugin, firstContribution, type BrowserHandoff, type AuthorizationStateStore, type Clock, type DiscoveryTransport, type DpopProofProvider, type DpopProofRequest, type ExtensionHandler, type KeyReference, type KeyStore, type PairwiseUserIdStore, type PapCoreOptions, type ProtocolProfile, type ProtocolCache, type RandomSource, type Signer, type TokenStore, type UrlSafetyPolicy, } from "./reactor.js";
|
|
8
|
+
export { JWT_BEARER_GRANT, JWT_CLIENT_ASSERTION, SessionClient, SessionGrant, buildSessionAssertionClaims, generatePairwiseUserId, parseSessionToken, resolvePairwiseUserId, type RandomBytes, type SessionAssertionClaims, type SessionAssertionOptions, type SessionClientOptions, type SessionGrantOptions, type SessionRenewOptions, type SessionRequestOptions, type SessionToken, } from "./sessions.js";
|
|
9
|
+
export { SecretValue } from "./secret.js";
|
|
10
|
+
export { parseClientMetadata, parseConversationEvent, parseConversationEventPage, parseDiscoveryDocument, parseJsonWebKeySet, parseOAuthServerMetadata, parseMessage, parseOperation, type AgentDescriptor, type AgentProtocol, type ApiDescriptor, type AuthCapabilities, type ClientMetadata, type ConversationEvent, type ConversationEventPage, type ConversationResponder, type ConversationStatus, type DiscoveredCompany, type DiscoveryDocument, type ExtensionDescriptor, type JsonWebKey, type JsonWebKeySet, type Message, type OAuthServerMetadata, type Operation, type OperationConfirmation, type OperationResult, type OperationState, type Organization, type WebDescriptor, } from "./models.js";
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,0BAA0B,EAC1B,UAAU,EACV,uBAAuB,EACvB,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,0BAA0B,EAC1B,UAAU,EACV,uBAAuB,EACvB,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,4BAA4B,GAClC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,EAC5B,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,GAC5B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,MAAM,EACN,MAAM,EACN,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,SAAS,EACT,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,OAAO,EACP,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,KAAK,EACV,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,2BAA2B,EAC3B,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,YAAY,EACZ,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC"}
|