@vielzeug/archive 26.11.11 → 26.11.13

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 (90) hide show
  1. package/dist/_server/d1.d.ts +23 -0
  2. package/dist/_server/d1.d.ts.map +1 -0
  3. package/dist/_server/execution.d.ts +5 -0
  4. package/dist/_server/execution.d.ts.map +1 -0
  5. package/dist/_server/http.cjs +2 -0
  6. package/dist/_server/http.cjs.map +1 -0
  7. package/dist/{worker → _server}/http.d.ts +6 -11
  8. package/dist/_server/http.d.ts.map +1 -0
  9. package/dist/{worker → _server}/http.js +18 -44
  10. package/dist/_server/http.js.map +1 -0
  11. package/dist/{worker/_service.cjs → _server/service.cjs} +1 -1
  12. package/dist/{worker/_service.js.map → _server/service.cjs.map} +1 -1
  13. package/dist/{worker/_service.d.ts → _server/service.d.ts} +1 -1
  14. package/dist/_server/service.d.ts.map +1 -0
  15. package/dist/{worker/_service.js → _server/service.js} +2 -2
  16. package/dist/_server/service.js.map +1 -0
  17. package/dist/_server/uuid.cjs +2 -0
  18. package/dist/_server/uuid.cjs.map +1 -0
  19. package/dist/_server/uuid.d.ts +3 -0
  20. package/dist/_server/uuid.d.ts.map +1 -0
  21. package/dist/_server/uuid.js +5 -0
  22. package/dist/_server/uuid.js.map +1 -0
  23. package/dist/auth/_confirmation.cjs +3 -3
  24. package/dist/auth/_confirmation.cjs.map +1 -1
  25. package/dist/auth/_confirmation.js +4 -4
  26. package/dist/auth/_confirmation.js.map +1 -1
  27. package/dist/auth/config.cjs.map +1 -1
  28. package/dist/auth/config.d.ts +1 -1
  29. package/dist/auth/config.js.map +1 -1
  30. package/dist/auth/errors.cjs +1 -1
  31. package/dist/auth/errors.cjs.map +1 -1
  32. package/dist/auth/errors.d.ts +1 -1
  33. package/dist/auth/errors.d.ts.map +1 -1
  34. package/dist/auth/errors.js +1 -1
  35. package/dist/auth/errors.js.map +1 -1
  36. package/dist/auth/store.cjs.map +1 -1
  37. package/dist/auth/store.d.ts +1 -1
  38. package/dist/auth/store.js.map +1 -1
  39. package/dist/auth/worker.cjs +1 -1
  40. package/dist/auth/worker.cjs.map +1 -1
  41. package/dist/auth/worker.d.ts +1 -1
  42. package/dist/auth/worker.d.ts.map +1 -1
  43. package/dist/auth/worker.js +153 -152
  44. package/dist/auth/worker.js.map +1 -1
  45. package/dist/errors.cjs +1 -1
  46. package/dist/errors.cjs.map +1 -1
  47. package/dist/errors.d.ts.map +1 -1
  48. package/dist/errors.js +1 -1
  49. package/dist/errors.js.map +1 -1
  50. package/dist/worker/_cors.cjs +2 -0
  51. package/dist/worker/_cors.cjs.map +1 -0
  52. package/dist/worker/_cors.d.ts +13 -0
  53. package/dist/worker/_cors.d.ts.map +1 -0
  54. package/dist/worker/_cors.js +32 -0
  55. package/dist/worker/_cors.js.map +1 -0
  56. package/dist/worker/_pagination.cjs +1 -1
  57. package/dist/worker/_pagination.cjs.map +1 -1
  58. package/dist/worker/_pagination.js +18 -18
  59. package/dist/worker/_pagination.js.map +1 -1
  60. package/dist/worker/auth.cjs +1 -1
  61. package/dist/worker/auth.cjs.map +1 -1
  62. package/dist/worker/auth.d.ts.map +1 -1
  63. package/dist/worker/auth.js +18 -18
  64. package/dist/worker/auth.js.map +1 -1
  65. package/dist/worker/env.cjs +1 -1
  66. package/dist/worker/env.cjs.map +1 -1
  67. package/dist/worker/env.d.ts +1 -22
  68. package/dist/worker/env.d.ts.map +1 -1
  69. package/dist/worker/env.js +1 -1
  70. package/dist/worker/env.js.map +1 -1
  71. package/dist/worker/publications.cjs +1 -1
  72. package/dist/worker/publications.cjs.map +1 -1
  73. package/dist/worker/publications.d.ts.map +1 -1
  74. package/dist/worker/publications.js +263 -262
  75. package/dist/worker/publications.js.map +1 -1
  76. package/dist/worker/worker.cjs +1 -1
  77. package/dist/worker/worker.cjs.map +1 -1
  78. package/dist/worker/worker.d.ts +2 -4
  79. package/dist/worker/worker.d.ts.map +1 -1
  80. package/dist/worker/worker.js +124 -122
  81. package/dist/worker/worker.js.map +1 -1
  82. package/dist/worker.d.ts +5 -3
  83. package/dist/worker.d.ts.map +1 -1
  84. package/package.json +2 -2
  85. package/dist/worker/_service.cjs.map +0 -1
  86. package/dist/worker/_service.d.ts.map +0 -1
  87. package/dist/worker/http.cjs +0 -2
  88. package/dist/worker/http.cjs.map +0 -1
  89. package/dist/worker/http.d.ts.map +0 -1
  90. package/dist/worker/http.js.map +0 -1
@@ -1,14 +1,15 @@
1
1
  import { sha256Hex as e } from "../_crypto.js";
2
- import { ACCOUNT_HEADER as t, ARCHIVE_OPERATOR_ROLE as n, OPERATOR_SESSION_MAX_AGE_SECONDS as r, PUBLISHER_HEADER as i, REQUEST_MARKER_HEADER as a, SESSION_COOKIE_NAME as o, SESSION_MAX_AGE_SECONDS as s, archiveAuthHealthSchema as c, archiveErrorResponseSchema as l, isWellFormedText as u, sessionCookieValue as d, uuidSchema as f } from "../contract.js";
3
- import { serviceRequest as p } from "../worker/_service.js";
4
- import { ApiError as m, badRequest as h, expiredSessionCookie as g, forbidden as _, json as v, noStore as y, queryParams as b, readJsonBody as x, sessionToken as S, toErrorResponse as C, unauthenticated as w } from "../worker/http.js";
5
- import { confirmationPage as T, escapeHtml as E } from "./_confirmation.js";
6
- import { authConfig as D, isWellFormedEmail as O } from "./config.js";
7
- import { AuthOperationError as k } from "./errors.js";
8
- import { LINK_TTL_MS as A, authReadiness as j, consumeToken as M, deleteAccount as N, deleteToken as P, ensureUser as F, insertToken as I, readAccount as L, revokeSessions as R, spendLinkBudget as z, spendSignInBudget as B, sweep as V } from "./store.js";
9
- import { SignJWT as H, errors as U, jwtVerify as W } from "jose";
2
+ import { ApiError as t, badRequest as n, expiredSessionCookie as r, forbidden as i, json as a, noStore as o, queryParams as s, readJsonBody as c, sessionToken as l, toErrorResponse as u, unauthenticated as d } from "../_server/http.js";
3
+ import { serviceRequest as f } from "../_server/service.js";
4
+ import { UUID_RE as p } from "../_server/uuid.js";
5
+ import { ACCOUNT_HEADER as m, ARCHIVE_OPERATOR_ROLE as h, OPERATOR_SESSION_MAX_AGE_SECONDS as g, PUBLISHER_HEADER as _, REQUEST_MARKER_HEADER as v, SESSION_COOKIE_NAME as y, SESSION_MAX_AGE_SECONDS as b, archiveAuthHealthSchema as x, archiveErrorResponseSchema as S, isWellFormedText as C, sessionCookieValue as w, uuidSchema as T } from "../contract.js";
6
+ import { confirmationPage as E, escapeHtml as D } from "./_confirmation.js";
7
+ import { authConfig as O, isWellFormedEmail as k } from "./config.js";
8
+ import { AuthOperationError as A } from "./errors.js";
9
+ import { LINK_TTL_MS as j, authReadiness as M, consumeToken as N, deleteAccount as P, deleteToken as F, ensureUser as I, insertToken as L, readAccount as R, revokeSessions as z, spendLinkBudget as B, spendSignInBudget as V, sweep as H } from "./store.js";
10
+ import { SignJWT as U, errors as W, jwtVerify as G } from "jose";
10
11
  // src/auth/worker.ts
11
- var G = {
12
+ var K = {
12
13
  account: /^\/api\/v1\/auth\/account$/,
13
14
  health: /^\/api\/v1\/auth\/health$/,
14
15
  jwks: /^\/api\/v1\/auth\/jwks\.json$/,
@@ -16,7 +17,7 @@ var G = {
16
17
  signIn: /^\/api\/v1\/auth\/sign-in$/,
17
18
  signOutAll: /^\/api\/v1\/auth\/sign-out-all$/,
18
19
  verify: /^\/api\/v1\/auth\/verify$/
19
- }, K = {
20
+ }, q = {
20
21
  account: ["GET", "DELETE"],
21
22
  health: ["GET"],
22
23
  jwks: ["GET"],
@@ -24,7 +25,7 @@ var G = {
24
25
  signIn: ["POST"],
25
26
  signOutAll: ["POST"],
26
27
  verify: ["GET", "POST"]
27
- }, q = {
28
+ }, J = {
28
29
  account: "/auth/account",
29
30
  health: "/auth/health",
30
31
  jwks: "/auth/jwks.json",
@@ -32,10 +33,10 @@ var G = {
32
33
  signIn: "/auth/sign-in",
33
34
  signOutAll: "/auth/sign-out-all",
34
35
  verify: "/auth/verify"
35
- }, matchRoute = (e) => Object.keys(G).find((t) => G[t].test(new URL(e.url).pathname)), J = 32, Y = /^[A-Za-z0-9_-]{43}$/, X = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/, Z = 256, Q = 5, randomToken = () => btoa(String.fromCharCode(...crypto.getRandomValues(new Uint8Array(J)))).replaceAll("+", "-").replaceAll("/", "_").replace(/=+$/, ""), unavailable = () => new k(503, "catalog");
36
+ }, matchRoute = (e) => Object.keys(K).find((t) => K[t].test(new URL(e.url).pathname)), Y = 32, X = /^[A-Za-z0-9_-]{43}$/, Z = 256, Q = 5, randomToken = () => btoa(String.fromCharCode(...crypto.getRandomValues(new Uint8Array(Y)))).replaceAll("+", "-").replaceAll("/", "_").replace(/=+$/, ""), unavailable = () => new A(503, "catalog");
36
37
  function requireMutationGuard(e, t, n = !1) {
37
38
  let r = e.headers.get("origin");
38
- if (r === null || !t.allowedOrigins.has(r) && !(n && r === t.publicOrigin) || e.headers.get("x-archive-request") !== "1") throw _();
39
+ if (r === null || !t.allowedOrigins.has(r) && !(n && r === t.publicOrigin) || e.headers.get("x-archive-request") !== "1") throw i();
39
40
  return r;
40
41
  }
41
42
  function corsHeaders(e, t) {
@@ -46,44 +47,44 @@ function corsHeaders(e, t) {
46
47
  vary: "Origin"
47
48
  };
48
49
  }
49
- function preflight(e, n, r) {
50
- let o = corsHeaders(e, n);
51
- if (Object.keys(o).length === 0) throw _();
50
+ function preflight(e, t, n) {
51
+ let r = corsHeaders(e, t);
52
+ if (Object.keys(r).length === 0) throw i();
52
53
  return new Response(null, {
53
54
  headers: {
54
- ...o,
55
- "access-control-allow-headers": `Content-Type, ${t}, ${i}, ${a}`,
56
- "access-control-allow-methods": [...r, "OPTIONS"].join(", "),
55
+ ...r,
56
+ "access-control-allow-headers": `Content-Type, ${m}, ${_}, ${v}`,
57
+ "access-control-allow-methods": [...n, "OPTIONS"].join(", "),
57
58
  "access-control-max-age": "600"
58
59
  },
59
60
  status: 204
60
61
  });
61
62
  }
62
63
  var secure = (e) => e.appEnv === "production";
63
- async function mintSession(e, t, i, a) {
64
- let o = i ? r : s;
64
+ async function mintSession(e, t, n, r) {
65
+ let i = n ? g : b;
65
66
  return {
66
- maxAge: o,
67
- token: await new H({
68
- sessionVersion: a,
69
- ...i ? { roles: [n] } : {}
67
+ maxAge: i,
68
+ token: await new U({
69
+ sessionVersion: r,
70
+ ...n ? { roles: [h] } : {}
70
71
  }).setProtectedHeader({
71
72
  alg: "RS256",
72
73
  kid: e.signing.kid,
73
74
  typ: "JWT"
74
- }).setIssuedAt().setJti(crypto.randomUUID()).setIssuer(e.issuer).setAudience(e.audience).setSubject(t).setExpirationTime(`${o}s`).sign(e.signing.key)
75
+ }).setIssuedAt().setJti(crypto.randomUUID()).setIssuer(e.issuer).setAudience(e.audience).setSubject(t).setExpirationTime(`${i}s`).sign(e.signing.key)
75
76
  };
76
77
  }
77
78
  async function requireSession(e, t, n) {
78
- let r = S(e);
79
- if (r === null) throw w();
79
+ let r = l(e);
80
+ if (r === null) throw d();
80
81
  try {
81
- let { payload: e } = await W(r, t.verifier, {
82
+ let { payload: e } = await G(r, t.verifier, {
82
83
  algorithms: ["RS256"],
83
84
  audience: t.audience,
84
85
  clockTolerance: Q,
85
86
  issuer: t.issuer,
86
- maxTokenAge: s,
87
+ maxTokenAge: b,
87
88
  requiredClaims: [
88
89
  "sub",
89
90
  "iss",
@@ -93,89 +94,89 @@ async function requireSession(e, t, n) {
93
94
  "sessionVersion"
94
95
  ]
95
96
  }), i = e.sub ?? "";
96
- if (i.length === 0 || i.length > Z || !u(i)) throw w();
97
+ if (i.length === 0 || i.length > Z || !C(i)) throw d();
97
98
  let a = e.sessionVersion;
98
- if (typeof a != "number" || !Number.isSafeInteger(a) || a < 0 || typeof e.iat != "number" || e.iat > Date.now() / 1e3 + Q || Array.isArray(e.roles) && e.roles.includes("archive-operator") && (typeof e.exp != "number" || e.exp - e.iat > 3600 || Date.now() / 1e3 - e.iat > 3600 + Q)) throw w();
99
- let o = await L(n.AUTH_DB, i);
100
- if (o === null || o.session_version !== a) throw w();
99
+ if (typeof a != "number" || !Number.isSafeInteger(a) || a < 0 || typeof e.iat != "number" || e.iat > Date.now() / 1e3 + Q || Array.isArray(e.roles) && e.roles.includes("archive-operator") && (typeof e.exp != "number" || e.exp - e.iat > 3600 || Date.now() / 1e3 - e.iat > 3600 + Q)) throw d();
100
+ let o = await R(n.AUTH_DB, i);
101
+ if (o === null || o.session_version !== a) throw d();
101
102
  return {
102
103
  sessionVersion: a,
103
104
  subject: i,
104
105
  token: r
105
106
  };
106
107
  } catch (e) {
107
- throw e instanceof U.JOSEError ? w() : e;
108
+ throw e instanceof W.JOSEError ? d() : e;
108
109
  }
109
110
  }
110
111
  async function sendLink(e, t, n, r) {
111
- let i = t.appName, a = `The link works once and expires in ${A / 6e4} minutes. If you did not request it, ignore this email.`;
112
+ let i = t.appName, a = `The link works once and expires in ${j / 6e4} minutes. If you did not request it, ignore this email.`;
112
113
  await e.AUTH_EMAIL.send({
113
114
  from: t.senderAddress,
114
- html: `<p>Open this link to sign in to ${E(i)}:</p><p><a href="${E(r)}">${E(r)}</a></p><p>${a}</p>`,
115
+ html: `<p>Open this link to sign in to ${D(i)}:</p><p><a href="${D(r)}">${D(r)}</a></p><p>${a}</p>`,
115
116
  subject: `Your ${i} sign-in link`,
116
117
  text: `Open this link to sign in to ${i}:\n\n${r}\n\n${a}`,
117
118
  to: n
118
119
  });
119
120
  }
120
- async function handleSignIn(t, n, r) {
121
- requireMutationGuard(t, r);
122
- let i = await x(t);
123
- if (typeof i != "object" || !i || Array.isArray(i)) throw h();
124
- let a = Object.keys(i), o = Reflect.get(i, "email");
125
- if (a.length !== 1 || a[0] !== "email" || typeof o != "string") throw h();
126
- let s = o.trim().toLowerCase();
127
- if (!O(s)) throw h();
128
- let c = Date.now(), l = await B(n.AUTH_DB, c);
129
- if (l !== null) throw new m(429, "rate-limited", "Too many sign-in requests. Try again later.", { retryAfterSeconds: l });
130
- let u = await F(n.AUTH_DB, s), d = await z(n.AUTH_DB, u.id, c);
131
- if (d !== null) throw new m(429, "rate-limited", "Too many sign-in emails. Try again later.", { retryAfterSeconds: d });
132
- let f = randomToken(), p = await e(f);
133
- await I(n.AUTH_DB, p, u.id, c);
121
+ async function handleSignIn(r, i, s) {
122
+ requireMutationGuard(r, s);
123
+ let l = await c(r);
124
+ if (typeof l != "object" || !l || Array.isArray(l)) throw n();
125
+ let u = Object.keys(l), d = Reflect.get(l, "email");
126
+ if (u.length !== 1 || u[0] !== "email" || typeof d != "string") throw n();
127
+ let f = d.trim().toLowerCase();
128
+ if (!k(f)) throw n();
129
+ let p = Date.now(), m = await V(i.AUTH_DB, p);
130
+ if (m !== null) throw new t(429, "rate-limited", "Too many sign-in requests. Try again later.", { retryAfterSeconds: m });
131
+ let h = await I(i.AUTH_DB, f), g = await B(i.AUTH_DB, h.id, p);
132
+ if (g !== null) throw new t(429, "rate-limited", "Too many sign-in emails. Try again later.", { retryAfterSeconds: g });
133
+ let _ = randomToken(), v = await e(_);
134
+ await L(i.AUTH_DB, v, h.id, p);
134
135
  try {
135
- await sendLink(n, r, u.email, `${r.publicOrigin}/api/v1/auth/verify?token=${f}`);
136
+ await sendLink(i, s, h.email, `${s.publicOrigin}/api/v1/auth/verify?token=${_}`);
136
137
  } catch (e) {
137
- throw await P(n.AUTH_DB, p).catch(() => void 0), new k(503, "email", { cause: e });
138
+ throw await F(i.AUTH_DB, v).catch(() => void 0), new A(503, "email", { cause: e });
138
139
  }
139
- return v(202, { ok: !0 }, y);
140
+ return a(202, { ok: !0 }, o);
140
141
  }
141
- async function handleVerify(t, n, r) {
142
- if (t.method === "GET") {
143
- let e = b(new URL(t.url), ["token"]).get("token") ?? "";
144
- if (!Y.test(e)) throw h("The link is not valid.");
145
- return T({
146
- ...r,
142
+ async function handleVerify(r, i, a) {
143
+ if (r.method === "GET") {
144
+ let e = s(new URL(r.url), ["token"]).get("token") ?? "";
145
+ if (!X.test(e)) throw n("The link is not valid.");
146
+ return E({
147
+ ...a,
147
148
  nonce: randomToken(),
148
149
  token: e
149
150
  });
150
151
  }
151
- requireMutationGuard(t, r, !0), b(new URL(t.url), []);
152
- let i = await x(t);
153
- if (typeof i != "object" || !i || Array.isArray(i) || Object.keys(i).length !== 1) throw h("The link is not valid.");
154
- let a = Reflect.get(i, "token");
155
- if (typeof a != "string" || !Y.test(a)) throw h("The link is not valid.");
156
- let o = await M(n.AUTH_DB, await e(a), Date.now());
157
- if (o === null) throw new m(410, "gone", "That link has expired or was already used.");
158
- let s = await mintSession(r, o.id, r.operatorEmails.has(o.email), o.sessionVersion);
152
+ requireMutationGuard(r, a, !0), s(new URL(r.url), []);
153
+ let l = await c(r);
154
+ if (typeof l != "object" || !l || Array.isArray(l) || Object.keys(l).length !== 1) throw n("The link is not valid.");
155
+ let u = Reflect.get(l, "token");
156
+ if (typeof u != "string" || !X.test(u)) throw n("The link is not valid.");
157
+ let d = await N(i.AUTH_DB, await e(u), Date.now());
158
+ if (d === null) throw new t(410, "gone", "That link has expired or was already used.");
159
+ let f = await mintSession(a, d.id, a.operatorEmails.has(d.email), d.sessionVersion);
159
160
  return new Response(null, {
160
161
  headers: {
161
- ...y,
162
- "set-cookie": d(s.token, {
163
- maxAgeSeconds: s.maxAge,
164
- secure: secure(r)
162
+ ...o,
163
+ "set-cookie": w(f.token, {
164
+ maxAgeSeconds: f.maxAge,
165
+ secure: secure(a)
165
166
  })
166
167
  },
167
168
  status: 204
168
169
  });
169
170
  }
170
171
  async function handleExport(e, t, n) {
171
- let { subject: r } = await requireSession(e, n, t), i = await L(t.AUTH_DB, r);
172
- if (i === null) throw w();
173
- return v(200, {
172
+ let { subject: r } = await requireSession(e, n, t), i = await R(t.AUTH_DB, r);
173
+ if (i === null) throw d();
174
+ return a(200, {
174
175
  createdAt: i.created_at,
175
176
  email: i.email,
176
177
  id: i.id,
177
178
  lastSignInAt: i.last_sign_in_at
178
- }, y);
179
+ }, o);
179
180
  }
180
181
  async function archiveFailure(e) {
181
182
  let t = await e.text().catch(() => ""), n = null;
@@ -184,109 +185,109 @@ async function archiveFailure(e) {
184
185
  } catch {
185
186
  n = null;
186
187
  }
187
- let r = l.safeParse(n);
188
+ let r = S.safeParse(n);
188
189
  if (!r.success || e.status < 400 || e.status > 599) throw unavailable();
189
- let { code: i, message: a, requestId: o } = r.data.error, s = e.headers.get("retry-after");
190
- return v(e.status, { error: {
190
+ let { code: i, message: s, requestId: c } = r.data.error, l = e.headers.get("retry-after");
191
+ return a(e.status, { error: {
191
192
  code: i,
192
- message: a,
193
- requestId: o
194
- } }, s !== null && /^\d{1,6}$/.test(s) ? {
195
- ...y,
196
- "retry-after": s
197
- } : y);
193
+ message: s,
194
+ requestId: c
195
+ } }, l !== null && /^\d{1,6}$/.test(l) ? {
196
+ ...o,
197
+ "retry-after": l
198
+ } : o);
198
199
  }
199
- async function handleErase(e, n, r) {
200
- let s = requireMutationGuard(e, r), { subject: c, token: l } = await requireSession(e, r, n), u = e.headers.get(t);
201
- if (u === null || !f.safeParse(u).success) throw h();
202
- if (u !== c) throw new m(409, "account-changed", "The signed-in account changed since this request was prepared.");
200
+ async function handleErase(e, i, a) {
201
+ let s = requireMutationGuard(e, a), { subject: c, token: l } = await requireSession(e, a, i), u = e.headers.get(m);
202
+ if (u === null || !T.safeParse(u).success) throw n();
203
+ if (u !== c) throw new t(409, "account-changed", "The signed-in account changed since this request was prepared.");
203
204
  let d = new Headers({
204
- cookie: `${o}=${l}`,
205
+ cookie: `${y}=${l}`,
205
206
  origin: s,
206
- [a]: "1"
207
- }), _ = e.headers.get(i);
208
- if (_ !== null) {
209
- if (!X.test(_)) throw h();
210
- d.set(i, _);
207
+ [v]: "1"
208
+ }), h = e.headers.get(_);
209
+ if (h !== null) {
210
+ if (!p.test(h)) throw n();
211
+ d.set(_, h);
211
212
  }
212
- let v;
213
+ let g;
213
214
  try {
214
- v = await p(n.AUTH_ARCHIVE, new Request(`${r.publicOrigin}/api/v1/me/account`, {
215
+ g = await f(i.AUTH_ARCHIVE, new Request(`${a.publicOrigin}/api/v1/me/account`, {
215
216
  headers: d,
216
217
  method: "DELETE",
217
218
  redirect: "manual"
218
219
  }), async (e) => e.status === 204 ? (await e.body?.cancel(), e) : archiveFailure(e));
219
220
  } catch (e) {
220
- throw new k(503, "catalog", { cause: e });
221
+ throw new A(503, "catalog", { cause: e });
221
222
  }
222
- return v.status === 204 ? (await N(n.AUTH_DB, c), new Response(null, {
223
+ return g.status === 204 ? (await P(i.AUTH_DB, c), new Response(null, {
223
224
  headers: {
224
- ...y,
225
- "set-cookie": g(secure(r))
225
+ ...o,
226
+ "set-cookie": r(secure(a))
226
227
  },
227
228
  status: 204
228
- })) : v;
229
+ })) : g;
229
230
  }
230
- async function handleSignOutAll(e, n, r) {
231
- requireMutationGuard(e, r);
232
- let { subject: i, sessionVersion: a } = await requireSession(e, r, n), o = e.headers.get(t);
233
- if (o === null || !f.safeParse(o).success) throw h();
234
- if (o !== i) throw new m(409, "account-changed", "The signed-in account changed since this request was prepared.");
235
- if (await R(n.AUTH_DB, i, a) === null) throw w();
236
- return v(200, { ok: !0 }, {
237
- ...y,
238
- "set-cookie": g(secure(r))
231
+ async function handleSignOutAll(e, i, s) {
232
+ requireMutationGuard(e, s);
233
+ let { subject: c, sessionVersion: l } = await requireSession(e, s, i), u = e.headers.get(m);
234
+ if (u === null || !T.safeParse(u).success) throw n();
235
+ if (u !== c) throw new t(409, "account-changed", "The signed-in account changed since this request was prepared.");
236
+ if (await z(i.AUTH_DB, c, l) === null) throw d();
237
+ return a(200, { ok: !0 }, {
238
+ ...o,
239
+ "set-cookie": r(secure(s))
239
240
  });
240
241
  }
241
242
  async function handleHealth(e) {
242
243
  let t = null, n = null;
243
244
  try {
244
- await D(e);
245
+ await O(e);
245
246
  } catch {
246
247
  t = "configuration-unavailable";
247
248
  }
248
249
  if (t === null) try {
249
- n = await j(e.AUTH_DB), n !== 1 && (t = "schema-mismatch");
250
+ n = await M(e.AUTH_DB), n !== 1 && (t = "schema-mismatch");
250
251
  } catch {
251
252
  t = "database-unavailable";
252
253
  }
253
- return v(t === null ? 200 : 503, c.parse({
254
+ return a(t === null ? 200 : 503, x.parse({
254
255
  dbSchemaVersion: n,
255
256
  reason: t,
256
257
  schemaVersion: 1,
257
258
  status: t === null ? "ok" : "degraded"
258
- }), y);
259
+ }), o);
259
260
  }
260
- async function route(e, t) {
261
- let n = e.method.toUpperCase(), r = matchRoute(e);
262
- if (r === void 0) throw new m(404, "not-found", "No such route.");
263
- if (r === "health" && n === "GET") return handleHealth(t);
264
- let i = await D(t), a = corsHeaders(e, i);
265
- if (n === "OPTIONS") return preflight(e, i, K[r]);
266
- if (!K[r].includes(n)) throw new m(405, "method-not-allowed", "That method is not allowed here.");
267
- let o;
268
- switch (r) {
261
+ async function route(e, n) {
262
+ let r = e.method.toUpperCase(), i = matchRoute(e);
263
+ if (i === void 0) throw new t(404, "not-found", "No such route.");
264
+ if (i === "health" && r === "GET") return handleHealth(n);
265
+ let s = await O(n), c = corsHeaders(e, s);
266
+ if (r === "OPTIONS") return preflight(e, s, q[i]);
267
+ if (!q[i].includes(r)) throw new t(405, "method-not-allowed", "That method is not allowed here.");
268
+ let l;
269
+ switch (i) {
269
270
  case "health":
270
- o = await handleHealth(t);
271
+ l = await handleHealth(n);
271
272
  break;
272
273
  case "session":
273
- await requireSession(e, i, t), o = v(200, { ok: !0 }, y);
274
+ await requireSession(e, s, n), l = a(200, { ok: !0 }, o);
274
275
  break;
275
276
  case "signOutAll":
276
- o = await handleSignOutAll(e, t, i);
277
+ l = await handleSignOutAll(e, n, s);
277
278
  break;
278
279
  case "jwks":
279
- o = v(200, { keys: i.jwks }, y);
280
+ l = a(200, { keys: s.jwks }, o);
280
281
  break;
281
282
  case "signIn":
282
- o = await handleSignIn(e, t, i);
283
+ l = await handleSignIn(e, n, s);
283
284
  break;
284
285
  case "verify":
285
- o = await handleVerify(e, t, i);
286
+ l = await handleVerify(e, n, s);
286
287
  break;
287
- case "account": o = n === "GET" ? await handleExport(e, t, i) : await handleErase(e, t, i);
288
+ case "account": l = r === "GET" ? await handleExport(e, n, s) : await handleErase(e, n, s);
288
289
  }
289
- return withCors(o, a);
290
+ return withCors(l, c);
290
291
  }
291
292
  function withCors(e, t) {
292
293
  if (Object.keys(t).length === 0) return e;
@@ -294,7 +295,7 @@ function withCors(e, t) {
294
295
  for (let [e, r] of Object.entries(t)) n.headers.set(e, r);
295
296
  return n;
296
297
  }
297
- var diagnostic = (e) => e instanceof k ? e.authDiagnostic : { kind: "internal" };
298
+ var diagnostic = (e) => e instanceof A ? e.authDiagnostic : { kind: "internal" };
298
299
  function createAuthWorker() {
299
300
  let e = /* @__PURE__ */ new Set(), emit = (t) => {
300
301
  for (let n of e) try {
@@ -302,37 +303,37 @@ function createAuthWorker() {
302
303
  } catch {}
303
304
  };
304
305
  return {
305
- async fetch(t, n) {
306
- let r = crypto.randomUUID(), i = Date.now(), a, o;
306
+ async fetch(n, r) {
307
+ let i = crypto.randomUUID(), a = Date.now(), o, s;
307
308
  try {
308
- a = await route(t, n);
309
+ o = await route(n, r);
309
310
  } catch (e) {
310
- o = e, a = C(e, r);
311
- let i = await D(n).catch(() => null);
312
- i !== null && (matchRoute(t) === "verify" && t.method === "GET" && e instanceof m && e.status === 400 && (a = T({
313
- ...i,
311
+ s = e, o = u(e, i);
312
+ let a = await O(r).catch(() => null);
313
+ a !== null && (matchRoute(n) === "verify" && n.method === "GET" && e instanceof t && e.status === 400 && (o = E({
314
+ ...a,
314
315
  nonce: randomToken(),
315
316
  token: null
316
- })), a = withCors(a, corsHeaders(t, i)));
317
+ })), o = withCors(o, corsHeaders(n, a)));
317
318
  }
318
- if (matchRoute(t) === "verify" && (a.headers.set("cache-control", "no-store"), a.headers.set("referrer-policy", "no-referrer"), a.headers.set("x-content-type-options", "nosniff"), a.headers.has("content-security-policy") || a.headers.set("content-security-policy", "default-src 'none'; base-uri 'none'; frame-ancestors 'none'")), e.size > 0) {
319
- let e = matchRoute(t), n = a.status < 400 ? "ok" : e === "health" ? "unavailable" : o instanceof m ? o.code : "internal", s = o === void 0 && a.status >= 400 ? l.safeParse(await a.clone().json().catch(() => null)) : null, u = e === "health" && a.status === 503 ? c.safeParse(await a.clone().json().catch(() => null)) : null;
319
+ if (matchRoute(n) === "verify" && (o.headers.set("cache-control", "no-store"), o.headers.set("referrer-policy", "no-referrer"), o.headers.set("x-content-type-options", "nosniff"), o.headers.has("content-security-policy") || o.headers.set("content-security-policy", "default-src 'none'; base-uri 'none'; frame-ancestors 'none'")), e.size > 0) {
320
+ let e = matchRoute(n), r = o.status < 400 ? "ok" : e === "health" ? "unavailable" : s instanceof t ? s.code : "internal", c = s === void 0 && o.status >= 400 ? S.safeParse(await o.clone().json().catch(() => null)) : null, l = e === "health" && o.status === 503 ? x.safeParse(await o.clone().json().catch(() => null)) : null;
320
321
  emit({
321
- code: s?.success ? s.data.error.code : n,
322
- ms: Math.max(0, Date.now() - i),
323
- requestId: r,
324
- route: e === void 0 ? "unmatched" : q[e],
325
- status: a.status,
322
+ code: c?.success ? c.data.error.code : r,
323
+ ms: Math.max(0, Date.now() - a),
324
+ requestId: i,
325
+ route: e === void 0 ? "unmatched" : J[e],
326
+ status: o.status,
326
327
  type: "request",
327
- ...a.status >= 500 ? { diagnostic: u?.success ? { kind: u.data.reason === "configuration-unavailable" ? "configuration" : u.data.reason === "schema-mismatch" ? "schema" : "database" } : o === void 0 ? { kind: "catalog" } : diagnostic(o) } : {}
328
+ ...o.status >= 500 ? { diagnostic: l?.success ? { kind: l.data.reason === "configuration-unavailable" ? "configuration" : l.data.reason === "schema-mismatch" ? "schema" : "database" } : s === void 0 ? { kind: "catalog" } : diagnostic(s) } : {}
328
329
  });
329
330
  }
330
- return a;
331
+ return o;
331
332
  },
332
333
  async scheduled(t, n) {
333
334
  try {
334
- await D(n);
335
- let t = await V(n.AUTH_DB, Date.now());
335
+ await O(n);
336
+ let t = await H(n.AUTH_DB, Date.now());
336
337
  e.size > 0 && emit({
337
338
  removed: t,
338
339
  status: "ok",