@dwk/solid-pod 0.1.0-beta.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 (68) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +108 -0
  3. package/dist/auth.d.ts +33 -0
  4. package/dist/auth.d.ts.map +1 -0
  5. package/dist/auth.js +160 -0
  6. package/dist/auth.js.map +1 -0
  7. package/dist/config.d.ts +181 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +74 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/encoding.d.ts +13 -0
  12. package/dist/encoding.d.ts.map +1 -0
  13. package/dist/encoding.js +31 -0
  14. package/dist/encoding.js.map +1 -0
  15. package/dist/gc.d.ts +22 -0
  16. package/dist/gc.d.ts.map +1 -0
  17. package/dist/gc.js +33 -0
  18. package/dist/gc.js.map +1 -0
  19. package/dist/handler.d.ts +20 -0
  20. package/dist/handler.d.ts.map +1 -0
  21. package/dist/handler.js +155 -0
  22. package/dist/handler.js.map +1 -0
  23. package/dist/index.d.ts +24 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +23 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/jwt.d.ts +36 -0
  28. package/dist/jwt.d.ts.map +1 -0
  29. package/dist/jwt.js +120 -0
  30. package/dist/jwt.js.map +1 -0
  31. package/dist/ldp.d.ts +37 -0
  32. package/dist/ldp.d.ts.map +1 -0
  33. package/dist/ldp.js +85 -0
  34. package/dist/ldp.js.map +1 -0
  35. package/dist/log.d.ts +55 -0
  36. package/dist/log.d.ts.map +1 -0
  37. package/dist/log.js +51 -0
  38. package/dist/log.js.map +1 -0
  39. package/dist/negotiation.d.ts +23 -0
  40. package/dist/negotiation.d.ts.map +1 -0
  41. package/dist/negotiation.js +80 -0
  42. package/dist/negotiation.js.map +1 -0
  43. package/dist/patch.d.ts +80 -0
  44. package/dist/patch.d.ts.map +1 -0
  45. package/dist/patch.js +425 -0
  46. package/dist/patch.js.map +1 -0
  47. package/dist/pod.d.ts +20 -0
  48. package/dist/pod.d.ts.map +1 -0
  49. package/dist/pod.js +860 -0
  50. package/dist/pod.js.map +1 -0
  51. package/dist/wac.d.ts +33 -0
  52. package/dist/wac.d.ts.map +1 -0
  53. package/dist/wac.js +84 -0
  54. package/dist/wac.js.map +1 -0
  55. package/package.json +55 -0
  56. package/src/auth.ts +203 -0
  57. package/src/config.ts +254 -0
  58. package/src/encoding.ts +32 -0
  59. package/src/gc.ts +47 -0
  60. package/src/handler.ts +199 -0
  61. package/src/index.ts +32 -0
  62. package/src/jwt.ts +166 -0
  63. package/src/ldp.ts +99 -0
  64. package/src/log.ts +59 -0
  65. package/src/negotiation.ts +97 -0
  66. package/src/patch.ts +539 -0
  67. package/src/pod.ts +1195 -0
  68. package/src/wac.ts +119 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pod.js","sourceRoot":"","sources":["../src/pod.ts"],"names":[],"mappings":"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"}
package/dist/wac.d.ts ADDED
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Web Access Control enforcement: resolve the effective `.acl` for a resource
3
+ * from the DO quad store, then defer the decision to `@dwk/wac`.
4
+ *
5
+ * The effective-ACL walk is the WAC algorithm: a resource's own `.acl`
6
+ * (`acl:accessTo`) is authoritative when present; otherwise the nearest
7
+ * ancestor container's `.acl` applies via `acl:default`. We read only the one
8
+ * effective document and hand it to `@dwk/wac`, which performs the mode/agent
9
+ * matching. ACL state lives in strongly-consistent DO SQLite, so no decision is
10
+ * ever cached.
11
+ */
12
+ import type { Store } from "@dwk/store";
13
+ import { type AccessDecision, type AccessMode, type AccessRequest } from "@dwk/wac";
14
+ /**
15
+ * Authorize a request against the effective ACL for `path`. Returns the
16
+ * `@dwk/wac` decision; with no governing ACL the result is a default-deny.
17
+ */
18
+ export declare function authorize(store: Store, origin: string, path: string, request: AccessRequest): AccessDecision;
19
+ /**
20
+ * For each agent context (a WebID, or `undefined` for the public), the set of
21
+ * access modes the effective ACL grants over `path`. Used to populate the
22
+ * `WAC-Allow` header, which needs both the authenticated agent's and the
23
+ * public's privileges — resolving the effective ACL once and evaluating every
24
+ * context against it avoids re-walking the container hierarchy and re-reading
25
+ * the store per agent.
26
+ *
27
+ * Mirrors the `.acl`-path remapping the handler applies before authorizing: a
28
+ * request against an ACL document is decided by Control on the resource it
29
+ * governs. `@dwk/wac` reports the full granted mode set on any decision, so the
30
+ * requested `mode` here only seeds the evaluation — `read` is a safe probe.
31
+ */
32
+ export declare function grantedModes(store: Store, origin: string, path: string, agents: ReadonlyArray<string | undefined>, requestOrigin: string | undefined): Set<AccessMode>[];
33
+ //# sourceMappingURL=wac.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wac.d.ts","sourceRoot":"","sources":["../src/wac.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,aAAa,EAGnB,MAAM,UAAU,CAAC;AAiDlB;;;GAGG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,cAAc,CAIhB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC,EACzC,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,GAAG,CAAC,UAAU,CAAC,EAAE,CAenB"}
package/dist/wac.js ADDED
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Web Access Control enforcement: resolve the effective `.acl` for a resource
3
+ * from the DO quad store, then defer the decision to `@dwk/wac`.
4
+ *
5
+ * The effective-ACL walk is the WAC algorithm: a resource's own `.acl`
6
+ * (`acl:accessTo`) is authoritative when present; otherwise the nearest
7
+ * ancestor container's `.acl` applies via `acl:default`. We read only the one
8
+ * effective document and hand it to `@dwk/wac`, which performs the mode/agent
9
+ * matching. ACL state lives in strongly-consistent DO SQLite, so no decision is
10
+ * ever cached.
11
+ */
12
+ import { evaluateAccess, } from "@dwk/wac";
13
+ import { aclPath, ancestorContainers, isAclPath, resourceForAcl, toIri, } from "./ldp";
14
+ /** Map the store's quads for an ACL document into `@dwk/wac` input. */
15
+ function toAclQuads(store, aclKey) {
16
+ return store.readQuads(aclKey).map((q) => ({
17
+ subject: q.subject.value,
18
+ predicate: q.predicate.value,
19
+ object: q.object,
20
+ }));
21
+ }
22
+ /**
23
+ * Build the single effective ACL document for `path`, or `null` when no `.acl`
24
+ * governs it anywhere up to the root (default-deny).
25
+ */
26
+ function effectiveAcl(store, origin, path) {
27
+ const ownAcl = aclPath(path);
28
+ if (store.head(ownAcl)) {
29
+ return {
30
+ target: toIri(origin, path),
31
+ scope: "accessTo",
32
+ quads: toAclQuads(store, ownAcl),
33
+ };
34
+ }
35
+ for (const container of ancestorContainers(path)) {
36
+ const containerAcl = aclPath(container);
37
+ if (store.head(containerAcl)) {
38
+ return {
39
+ target: toIri(origin, container),
40
+ scope: "default",
41
+ quads: toAclQuads(store, containerAcl),
42
+ };
43
+ }
44
+ }
45
+ return null;
46
+ }
47
+ /**
48
+ * Authorize a request against the effective ACL for `path`. Returns the
49
+ * `@dwk/wac` decision; with no governing ACL the result is a default-deny.
50
+ */
51
+ export function authorize(store, origin, path, request) {
52
+ const acl = effectiveAcl(store, origin, path);
53
+ if (acl === null)
54
+ return { granted: false, modes: [] };
55
+ return evaluateAccess(request, [acl]);
56
+ }
57
+ /**
58
+ * For each agent context (a WebID, or `undefined` for the public), the set of
59
+ * access modes the effective ACL grants over `path`. Used to populate the
60
+ * `WAC-Allow` header, which needs both the authenticated agent's and the
61
+ * public's privileges — resolving the effective ACL once and evaluating every
62
+ * context against it avoids re-walking the container hierarchy and re-reading
63
+ * the store per agent.
64
+ *
65
+ * Mirrors the `.acl`-path remapping the handler applies before authorizing: a
66
+ * request against an ACL document is decided by Control on the resource it
67
+ * governs. `@dwk/wac` reports the full granted mode set on any decision, so the
68
+ * requested `mode` here only seeds the evaluation — `read` is a safe probe.
69
+ */
70
+ export function grantedModes(store, origin, path, agents, requestOrigin) {
71
+ const wacPath = isAclPath(path) ? resourceForAcl(path) : path;
72
+ const acl = effectiveAcl(store, origin, wacPath);
73
+ return agents.map((agent) => {
74
+ if (acl === null)
75
+ return new Set();
76
+ const decision = evaluateAccess({
77
+ mode: "read",
78
+ ...(agent ? { agent } : {}),
79
+ ...(requestOrigin ? { origin: requestOrigin } : {}),
80
+ }, [acl]);
81
+ return new Set(decision.modes);
82
+ });
83
+ }
84
+ //# sourceMappingURL=wac.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wac.js","sourceRoot":"","sources":["../src/wac.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@dwk/solid-pod",
3
+ "version": "0.1.0-beta.0",
4
+ "description": "Edge-native Solid Pod: LDP verbs, content negotiation, N3 Patch, WAC, notifications. Ships the per-pod Durable Object.",
5
+ "keywords": [
6
+ "solid",
7
+ "solid-pod",
8
+ "ldp",
9
+ "wac",
10
+ "n3-patch",
11
+ "linked-data",
12
+ "cloudflare-workers",
13
+ "durable-objects"
14
+ ],
15
+ "type": "module",
16
+ "license": "ISC",
17
+ "author": "David W. Keith <me@dwk.io>",
18
+ "homepage": "https://github.com/davidwkeith/workers/tree/main/packages/solid-pod#readme",
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/davidwkeith/workers.git",
22
+ "directory": "packages/solid-pod"
23
+ },
24
+ "sideEffects": false,
25
+ "main": "./dist/index.js",
26
+ "types": "./dist/index.d.ts",
27
+ "exports": {
28
+ ".": {
29
+ "types": "./dist/index.d.ts",
30
+ "import": "./dist/index.js"
31
+ }
32
+ },
33
+ "files": [
34
+ "dist",
35
+ "src",
36
+ "!src/**/*.test.ts",
37
+ "!src/test-harness.ts"
38
+ ],
39
+ "publishConfig": {
40
+ "access": "public"
41
+ },
42
+ "dependencies": {
43
+ "@dwk/dpop": "0.1.0-beta.0",
44
+ "@dwk/ldn": "0.1.0-beta.0",
45
+ "@dwk/log": "0.1.0-beta.0",
46
+ "@dwk/rdf": "0.1.0-beta.0",
47
+ "@dwk/store": "0.1.0-beta.0",
48
+ "@dwk/wac": "0.1.0-beta.0"
49
+ },
50
+ "scripts": {
51
+ "build": "tsc -p tsconfig.build.json",
52
+ "typecheck": "tsc -p tsconfig.json",
53
+ "clean": "rm -rf dist"
54
+ }
55
+ }
package/src/auth.ts ADDED
@@ -0,0 +1,203 @@
1
+ /**
2
+ * Edge authentication for the Resource Server: validate a DPoP-bound bearer
3
+ * token and its proof at the Worker front door, before any request reaches the
4
+ * per-pod Durable Object.
5
+ *
6
+ * A request with no credentials is allowed through unauthenticated — WAC then
7
+ * decides whether the resource is public. A request that *presents* credentials
8
+ * must pass fully or it is rejected `401`: the token signature (issuer JWKS),
9
+ * the `iss` / `aud` / `exp` / `webid` claims, and the RFC 9449 DPoP proof
10
+ * binding (`htu` / `htm` / `ath` / `cnf.jkt`) via `@dwk/dpop`.
11
+ */
12
+
13
+ import { verifyDpopProof } from "@dwk/dpop";
14
+
15
+ import type { AuthContext, ResolvedConfig } from "./config";
16
+ import { decodeJwt, verifyJwtSignature } from "./jwt";
17
+
18
+ /** A stable reason an authentication attempt failed (for `WWW-Authenticate`). */
19
+ export type AuthFailureReason =
20
+ | "no_jwks"
21
+ | "token_malformed"
22
+ | "token_type_invalid"
23
+ | "signature_invalid"
24
+ | "issuer_mismatch"
25
+ | "audience_mismatch"
26
+ | "token_expired"
27
+ | "token_not_yet_valid"
28
+ | "webid_missing"
29
+ | "cnf_missing"
30
+ | "dpop_missing"
31
+ | "dpop_invalid";
32
+
33
+ /** Outcome of {@link authenticate}: a context, an explicit failure, or "no creds". */
34
+ export type AuthResult =
35
+ | { readonly kind: "authenticated"; readonly context: AuthContext }
36
+ | { readonly kind: "anonymous" }
37
+ | { readonly kind: "rejected"; readonly reason: AuthFailureReason };
38
+
39
+ /** In-memory JWKS cache shared across requests within an isolate. */
40
+ interface CachedJwks {
41
+ keys: readonly JsonWebKey[];
42
+ fetchedAt: number;
43
+ }
44
+ const JWKS_TTL_MS = 5 * 60 * 1000;
45
+ const jwksCache = new Map<string, CachedJwks>();
46
+
47
+ /** Resolve the issuer verification keys: static config first, then cached fetch. */
48
+ async function resolveJwks(
49
+ config: ResolvedConfig,
50
+ ): Promise<readonly JsonWebKey[] | null> {
51
+ if (config.jwks && config.jwks.length > 0) return config.jwks;
52
+ if (!config.jwksUri) return null;
53
+
54
+ const now = config.now();
55
+ const cached = jwksCache.get(config.jwksUri);
56
+ if (cached && now - cached.fetchedAt < JWKS_TTL_MS) return cached.keys;
57
+
58
+ try {
59
+ const response = await config.fetch(config.jwksUri);
60
+ if (!response.ok) return cached?.keys ?? null;
61
+ const body = (await response.json()) as { keys?: JsonWebKey[] };
62
+ // Only cache a well-formed JWKS; caching an empty/garbled body would poison
63
+ // verification for the whole TTL and discard the last good keys.
64
+ if (!Array.isArray(body.keys)) return cached?.keys ?? null;
65
+ jwksCache.set(config.jwksUri, { keys: body.keys, fetchedAt: now });
66
+ return body.keys;
67
+ } catch {
68
+ // A transient fetch failure falls back to the last good keys if we have
69
+ // them, rather than failing closed on every request mid-outage.
70
+ return cached?.keys ?? null;
71
+ }
72
+ }
73
+
74
+ /** Extract the `DPoP <token>` (or `Bearer <token>`) value, if present. */
75
+ function bearerToken(request: Request): string | null {
76
+ const header = request.headers.get("authorization");
77
+ if (!header) return null;
78
+ const match = /^(DPoP|Bearer)\s+(.+)$/i.exec(header.trim());
79
+ return match ? (match[2] as string) : null;
80
+ }
81
+
82
+ /**
83
+ * Whether the token header's `typ` is the required access-token type. Compared
84
+ * case-insensitively and tolerant of the `application/at+jwt` media-type form,
85
+ * since RFC 9068 permits either the full media type or its `at+jwt` short form.
86
+ */
87
+ function tokenTypeMatches(typ: unknown, required: string): boolean {
88
+ if (typeof typ !== "string") return false;
89
+ const normalize = (value: string): string => {
90
+ const lower = value.toLowerCase();
91
+ return lower.startsWith("application/")
92
+ ? lower.slice("application/".length)
93
+ : lower;
94
+ };
95
+ return normalize(typ) === normalize(required);
96
+ }
97
+
98
+ /** Whether the token's `aud` claim intersects the accepted audience set. */
99
+ function audienceMatches(aud: unknown, accepted: readonly string[]): boolean {
100
+ const values = Array.isArray(aud)
101
+ ? aud.filter((a): a is string => typeof a === "string")
102
+ : typeof aud === "string"
103
+ ? [aud]
104
+ : [];
105
+ return values.some((a) => accepted.includes(a));
106
+ }
107
+
108
+ /**
109
+ * Authenticate a request at the edge.
110
+ *
111
+ * Returns `anonymous` when no credentials are presented, `authenticated` with
112
+ * the verified {@link AuthContext} on success, and `rejected` with a stable
113
+ * reason on any failure of a *presented* credential.
114
+ */
115
+ export async function authenticate(
116
+ request: Request,
117
+ config: ResolvedConfig,
118
+ ): Promise<AuthResult> {
119
+ // A deployer-supplied hook fully replaces the built-in verifier.
120
+ if (config.authenticate) {
121
+ const context = await config.authenticate(request);
122
+ return context ? { kind: "authenticated", context } : { kind: "anonymous" };
123
+ }
124
+
125
+ const token = bearerToken(request);
126
+ if (!token) return { kind: "anonymous" };
127
+
128
+ const decoded = decodeJwt(token);
129
+ if (!decoded) return { kind: "rejected", reason: "token_malformed" };
130
+
131
+ const jwks = await resolveJwks(config);
132
+ if (!jwks || jwks.length === 0)
133
+ return { kind: "rejected", reason: "no_jwks" };
134
+
135
+ if (!(await verifyJwtSignature(decoded, jwks))) {
136
+ return { kind: "rejected", reason: "signature_invalid" };
137
+ }
138
+
139
+ // Enforce the access-token `typ` (`at+jwt`) so an ID token or other
140
+ // issuer-signed JWT sharing this `iss`/`aud`/`webid` cannot be replayed as an
141
+ // access token. Skipped when the deployer opts out via `accessTokenType: null`.
142
+ if (
143
+ config.accessTokenType !== null &&
144
+ !tokenTypeMatches(decoded.header.typ, config.accessTokenType)
145
+ ) {
146
+ return { kind: "rejected", reason: "token_type_invalid" };
147
+ }
148
+
149
+ const { iss, aud, exp, nbf, webid, sub, cnf } = decoded.payload;
150
+ if (config.issuer !== undefined && iss !== config.issuer) {
151
+ return { kind: "rejected", reason: "issuer_mismatch" };
152
+ }
153
+ if (!audienceMatches(aud, config.audience)) {
154
+ return { kind: "rejected", reason: "audience_mismatch" };
155
+ }
156
+ const now = Math.floor(config.now() / 1000);
157
+ if (typeof exp !== "number" || now >= exp) {
158
+ return { kind: "rejected", reason: "token_expired" };
159
+ }
160
+ // Honor `nbf` when present: a token is not valid before its not-before time.
161
+ // Per RFC 7519 §4.1.5 `nbf` MUST be a number; a present-but-malformed value is
162
+ // rejected rather than silently bypassed (mirrors the `exp` handling above).
163
+ if (nbf !== undefined && (typeof nbf !== "number" || now < nbf)) {
164
+ return { kind: "rejected", reason: "token_not_yet_valid" };
165
+ }
166
+
167
+ // Solid-OIDC carries the agent identity in `webid`; fall back to `sub`.
168
+ const agent =
169
+ typeof webid === "string"
170
+ ? webid
171
+ : typeof sub === "string"
172
+ ? sub
173
+ : undefined;
174
+ if (agent === undefined) return { kind: "rejected", reason: "webid_missing" };
175
+
176
+ const jkt =
177
+ typeof cnf === "object" &&
178
+ cnf !== null &&
179
+ typeof (cnf as Record<string, unknown>).jkt === "string"
180
+ ? ((cnf as Record<string, unknown>).jkt as string)
181
+ : undefined;
182
+ if (jkt === undefined) return { kind: "rejected", reason: "cnf_missing" };
183
+
184
+ const proof = request.headers.get("dpop");
185
+ if (!proof) return { kind: "rejected", reason: "dpop_missing" };
186
+
187
+ const dpop = await verifyDpopProof({
188
+ proof,
189
+ htm: request.method,
190
+ htu: request.url,
191
+ accessToken: token,
192
+ expectedJkt: jkt,
193
+ now,
194
+ });
195
+ if (!dpop.valid || !dpop.jti || !dpop.jkt) {
196
+ return { kind: "rejected", reason: "dpop_invalid" };
197
+ }
198
+
199
+ return {
200
+ kind: "authenticated",
201
+ context: { webid: agent, jti: dpop.jti, jkt: dpop.jkt },
202
+ };
203
+ }