@atproto/oauth-provider 0.16.5 → 0.17.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 (321) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/access-token/access-token-mode.js +2 -5
  3. package/dist/access-token/access-token-mode.js.map +1 -1
  4. package/dist/account/account-manager.js +25 -33
  5. package/dist/account/account-manager.js.map +1 -1
  6. package/dist/account/account-store.js +11 -32
  7. package/dist/account/account-store.js.map +1 -1
  8. package/dist/account/sign-in-data.js +9 -12
  9. package/dist/account/sign-in-data.js.map +1 -1
  10. package/dist/account/sign-up-input.js +14 -17
  11. package/dist/account/sign-up-input.js.map +1 -1
  12. package/dist/client/client-auth.js +1 -2
  13. package/dist/client/client-data.js +1 -2
  14. package/dist/client/client-id.js +2 -5
  15. package/dist/client/client-id.js.map +1 -1
  16. package/dist/client/client-info.js +1 -2
  17. package/dist/client/client-manager.js +86 -97
  18. package/dist/client/client-manager.js.map +1 -1
  19. package/dist/client/client-store.js +7 -26
  20. package/dist/client/client-store.js.map +1 -1
  21. package/dist/client/client-utils.js +10 -14
  22. package/dist/client/client-utils.js.map +1 -1
  23. package/dist/client/client.js +43 -53
  24. package/dist/client/client.js.map +1 -1
  25. package/dist/constants.js +28 -31
  26. package/dist/constants.js.map +1 -1
  27. package/dist/customization/branding.js +8 -11
  28. package/dist/customization/branding.js.map +1 -1
  29. package/dist/customization/build-customization-css.js +8 -11
  30. package/dist/customization/build-customization-css.js.map +1 -1
  31. package/dist/customization/build-customization-data.js +1 -4
  32. package/dist/customization/build-customization-data.js.map +1 -1
  33. package/dist/customization/colors.js +11 -14
  34. package/dist/customization/colors.js.map +1 -1
  35. package/dist/customization/customization.js +8 -11
  36. package/dist/customization/customization.js.map +1 -1
  37. package/dist/customization/links.js +7 -10
  38. package/dist/customization/links.js.map +1 -1
  39. package/dist/device/device-data.js +7 -10
  40. package/dist/device/device-data.js.map +1 -1
  41. package/dist/device/device-id.js +11 -16
  42. package/dist/device/device-id.js.map +1 -1
  43. package/dist/device/device-manager.js +32 -38
  44. package/dist/device/device-manager.js.map +1 -1
  45. package/dist/device/device-store.js +7 -25
  46. package/dist/device/device-store.js.map +1 -1
  47. package/dist/device/session-id.js +9 -13
  48. package/dist/device/session-id.js.map +1 -1
  49. package/dist/dpop/dpop-manager.d.ts +3 -3
  50. package/dist/dpop/dpop-manager.js +38 -43
  51. package/dist/dpop/dpop-manager.js.map +1 -1
  52. package/dist/dpop/dpop-nonce.d.ts +2 -2
  53. package/dist/dpop/dpop-nonce.d.ts.map +1 -1
  54. package/dist/dpop/dpop-nonce.js +14 -18
  55. package/dist/dpop/dpop-nonce.js.map +1 -1
  56. package/dist/dpop/dpop-proof.js +1 -2
  57. package/dist/errors/access-denied-error.js +2 -6
  58. package/dist/errors/access-denied-error.js.map +1 -1
  59. package/dist/errors/account-selection-required-error.js +2 -6
  60. package/dist/errors/account-selection-required-error.js.map +1 -1
  61. package/dist/errors/authorization-error.js +7 -12
  62. package/dist/errors/authorization-error.js.map +1 -1
  63. package/dist/errors/consent-required-error.js +2 -6
  64. package/dist/errors/consent-required-error.js.map +1 -1
  65. package/dist/errors/error-parser.js +14 -18
  66. package/dist/errors/error-parser.js.map +1 -1
  67. package/dist/errors/handle-unavailable-error.js +2 -7
  68. package/dist/errors/handle-unavailable-error.js.map +1 -1
  69. package/dist/errors/invalid-authorization-details-error.js +2 -6
  70. package/dist/errors/invalid-authorization-details-error.js.map +1 -1
  71. package/dist/errors/invalid-client-error.js +2 -6
  72. package/dist/errors/invalid-client-error.js.map +1 -1
  73. package/dist/errors/invalid-client-id-error.js +2 -6
  74. package/dist/errors/invalid-client-id-error.js.map +1 -1
  75. package/dist/errors/invalid-client-metadata-error.js +7 -11
  76. package/dist/errors/invalid-client-metadata-error.js.map +1 -1
  77. package/dist/errors/invalid-credentials-error.js +2 -7
  78. package/dist/errors/invalid-credentials-error.js.map +1 -1
  79. package/dist/errors/invalid-dpop-key-binding-error.js +2 -6
  80. package/dist/errors/invalid-dpop-key-binding-error.js.map +1 -1
  81. package/dist/errors/invalid-dpop-proof-error.js +2 -6
  82. package/dist/errors/invalid-dpop-proof-error.js.map +1 -1
  83. package/dist/errors/invalid-grant-error.js +2 -6
  84. package/dist/errors/invalid-grant-error.js.map +1 -1
  85. package/dist/errors/invalid-invite-code-error.d.ts +1 -1
  86. package/dist/errors/invalid-invite-code-error.d.ts.map +1 -1
  87. package/dist/errors/invalid-invite-code-error.js +2 -6
  88. package/dist/errors/invalid-invite-code-error.js.map +1 -1
  89. package/dist/errors/invalid-redirect-uri-error.js +2 -6
  90. package/dist/errors/invalid-redirect-uri-error.js.map +1 -1
  91. package/dist/errors/invalid-request-error.js +3 -7
  92. package/dist/errors/invalid-request-error.js.map +1 -1
  93. package/dist/errors/invalid-scope-error.js +2 -6
  94. package/dist/errors/invalid-scope-error.js.map +1 -1
  95. package/dist/errors/invalid-token-error.js +10 -15
  96. package/dist/errors/invalid-token-error.js.map +1 -1
  97. package/dist/errors/login-required-error.js +2 -6
  98. package/dist/errors/login-required-error.js.map +1 -1
  99. package/dist/errors/oauth-error.js +1 -9
  100. package/dist/errors/oauth-error.js.map +1 -1
  101. package/dist/errors/second-authentication-factor-required-error.js +2 -8
  102. package/dist/errors/second-authentication-factor-required-error.js.map +1 -1
  103. package/dist/errors/unauthorized-client-error.js +2 -6
  104. package/dist/errors/unauthorized-client-error.js.map +1 -1
  105. package/dist/errors/use-dpop-nonce-error.js +4 -8
  106. package/dist/errors/use-dpop-nonce-error.js.map +1 -1
  107. package/dist/errors/www-authenticate-error.js +4 -9
  108. package/dist/errors/www-authenticate-error.js.map +1 -1
  109. package/dist/index.js +14 -30
  110. package/dist/index.js.map +1 -1
  111. package/dist/lexicon/lexicon-data.js +1 -2
  112. package/dist/lexicon/lexicon-getter.js +6 -10
  113. package/dist/lexicon/lexicon-getter.js.map +1 -1
  114. package/dist/lexicon/lexicon-manager.js +10 -30
  115. package/dist/lexicon/lexicon-manager.js.map +1 -1
  116. package/dist/lexicon/lexicon-store.js +5 -10
  117. package/dist/lexicon/lexicon-store.js.map +1 -1
  118. package/dist/lib/csp/index.js +3 -8
  119. package/dist/lib/csp/index.js.map +1 -1
  120. package/dist/lib/hcaptcha.js +33 -43
  121. package/dist/lib/hcaptcha.js.map +1 -1
  122. package/dist/lib/html/build-document.js +19 -24
  123. package/dist/lib/html/build-document.js.map +1 -1
  124. package/dist/lib/html/escapers.js +10 -16
  125. package/dist/lib/html/escapers.js.map +1 -1
  126. package/dist/lib/html/html.js +1 -5
  127. package/dist/lib/html/html.js.map +1 -1
  128. package/dist/lib/html/hydration-data.js +6 -10
  129. package/dist/lib/html/hydration-data.js.map +1 -1
  130. package/dist/lib/html/index.js +3 -19
  131. package/dist/lib/html/index.js.map +1 -1
  132. package/dist/lib/html/tags.js +14 -23
  133. package/dist/lib/html/tags.js.map +1 -1
  134. package/dist/lib/html/util.js +1 -4
  135. package/dist/lib/html/util.js.map +1 -1
  136. package/dist/lib/http/accept.d.ts.map +1 -1
  137. package/dist/lib/http/accept.js +8 -8
  138. package/dist/lib/http/accept.js.map +1 -1
  139. package/dist/lib/http/context.js +1 -4
  140. package/dist/lib/http/context.js.map +1 -1
  141. package/dist/lib/http/headers.js +1 -4
  142. package/dist/lib/http/headers.js.map +1 -1
  143. package/dist/lib/http/index.js +10 -26
  144. package/dist/lib/http/index.js.map +1 -1
  145. package/dist/lib/http/method.js +1 -4
  146. package/dist/lib/http/method.js.map +1 -1
  147. package/dist/lib/http/middleware.js +11 -17
  148. package/dist/lib/http/middleware.js.map +1 -1
  149. package/dist/lib/http/parser.js +13 -20
  150. package/dist/lib/http/parser.js.map +1 -1
  151. package/dist/lib/http/path.js +1 -4
  152. package/dist/lib/http/path.js.map +1 -1
  153. package/dist/lib/http/request.d.ts.map +1 -1
  154. package/dist/lib/http/request.js +32 -47
  155. package/dist/lib/http/request.js.map +1 -1
  156. package/dist/lib/http/response.js +14 -27
  157. package/dist/lib/http/response.js.map +1 -1
  158. package/dist/lib/http/route.js +9 -12
  159. package/dist/lib/http/route.js.map +1 -1
  160. package/dist/lib/http/router.js +8 -13
  161. package/dist/lib/http/router.js.map +1 -1
  162. package/dist/lib/http/security-headers.js +10 -15
  163. package/dist/lib/http/security-headers.js.map +1 -1
  164. package/dist/lib/http/stream.js +12 -20
  165. package/dist/lib/http/stream.js.map +1 -1
  166. package/dist/lib/http/types.js +1 -2
  167. package/dist/lib/http/url.js +1 -4
  168. package/dist/lib/http/url.js.map +1 -1
  169. package/dist/lib/nsid.js +4 -8
  170. package/dist/lib/nsid.js.map +1 -1
  171. package/dist/lib/redis.js +4 -7
  172. package/dist/lib/redis.js.map +1 -1
  173. package/dist/lib/util/authorization-header.js +11 -15
  174. package/dist/lib/util/authorization-header.js.map +1 -1
  175. package/dist/lib/util/cast.js +3 -8
  176. package/dist/lib/util/cast.js.map +1 -1
  177. package/dist/lib/util/color.js +23 -32
  178. package/dist/lib/util/color.js.map +1 -1
  179. package/dist/lib/util/crypto.js +5 -10
  180. package/dist/lib/util/crypto.js.map +1 -1
  181. package/dist/lib/util/date.js +2 -6
  182. package/dist/lib/util/date.js.map +1 -1
  183. package/dist/lib/util/error.js +5 -8
  184. package/dist/lib/util/error.js.map +1 -1
  185. package/dist/lib/util/function.js +3 -8
  186. package/dist/lib/util/function.js.map +1 -1
  187. package/dist/lib/util/locale.js +3 -6
  188. package/dist/lib/util/locale.js.map +1 -1
  189. package/dist/lib/util/object.js +1 -4
  190. package/dist/lib/util/object.js.map +1 -1
  191. package/dist/lib/util/redirect-uri.js +3 -6
  192. package/dist/lib/util/redirect-uri.js.map +1 -1
  193. package/dist/lib/util/time.js +5 -9
  194. package/dist/lib/util/time.js.map +1 -1
  195. package/dist/lib/util/type.d.ts.map +1 -1
  196. package/dist/lib/util/type.js +1 -5
  197. package/dist/lib/util/type.js.map +1 -1
  198. package/dist/lib/util/ui8.js +3 -8
  199. package/dist/lib/util/ui8.js.map +1 -1
  200. package/dist/lib/util/well-known.js +1 -4
  201. package/dist/lib/util/well-known.js.map +1 -1
  202. package/dist/lib/util/zod-error.js +4 -8
  203. package/dist/lib/util/zod-error.js.map +1 -1
  204. package/dist/lib/write-form-redirect.js +9 -12
  205. package/dist/lib/write-form-redirect.js.map +1 -1
  206. package/dist/lib/write-html.js +12 -15
  207. package/dist/lib/write-html.js.map +1 -1
  208. package/dist/metadata/build-metadata.js +9 -12
  209. package/dist/metadata/build-metadata.js.map +1 -1
  210. package/dist/oauth-client.js +2 -18
  211. package/dist/oauth-client.js.map +1 -1
  212. package/dist/oauth-dpop.js +2 -18
  213. package/dist/oauth-dpop.js.map +1 -1
  214. package/dist/oauth-errors.js +24 -42
  215. package/dist/oauth-errors.js.map +1 -1
  216. package/dist/oauth-hooks.js +8 -15
  217. package/dist/oauth-hooks.js.map +1 -1
  218. package/dist/oauth-middleware.js +13 -16
  219. package/dist/oauth-middleware.js.map +1 -1
  220. package/dist/oauth-provider.js +108 -125
  221. package/dist/oauth-provider.js.map +1 -1
  222. package/dist/oauth-store.js +7 -23
  223. package/dist/oauth-store.js.map +1 -1
  224. package/dist/oauth-verifier.js +41 -53
  225. package/dist/oauth-verifier.js.map +1 -1
  226. package/dist/oidc/sub.js +2 -5
  227. package/dist/oidc/sub.js.map +1 -1
  228. package/dist/replay/replay-manager.js +6 -11
  229. package/dist/replay/replay-manager.js.map +1 -1
  230. package/dist/replay/replay-store-memory.js +5 -7
  231. package/dist/replay/replay-store-memory.js.map +1 -1
  232. package/dist/replay/replay-store-redis.js +3 -8
  233. package/dist/replay/replay-store-redis.js.map +1 -1
  234. package/dist/replay/replay-store.js +3 -8
  235. package/dist/replay/replay-store.js.map +1 -1
  236. package/dist/request/code.js +10 -15
  237. package/dist/request/code.js.map +1 -1
  238. package/dist/request/request-data.js +1 -5
  239. package/dist/request/request-data.js.map +1 -1
  240. package/dist/request/request-id.js +9 -13
  241. package/dist/request/request-id.js.map +1 -1
  242. package/dist/request/request-manager.js +61 -71
  243. package/dist/request/request-manager.js.map +1 -1
  244. package/dist/request/request-store.js +9 -27
  245. package/dist/request/request-store.js.map +1 -1
  246. package/dist/request/request-uri.js +17 -23
  247. package/dist/request/request-uri.js.map +1 -1
  248. package/dist/result/authorization-redirect-parameters.js +1 -2
  249. package/dist/result/authorization-result-authorize-page.js +1 -2
  250. package/dist/result/authorization-result-redirect.js +1 -2
  251. package/dist/router/assets/assets-manifest.d.ts.map +1 -1
  252. package/dist/router/assets/assets-manifest.js +14 -15
  253. package/dist/router/assets/assets-manifest.js.map +1 -1
  254. package/dist/router/assets/assets.d.ts.map +1 -1
  255. package/dist/router/assets/assets.js +25 -27
  256. package/dist/router/assets/assets.js.map +1 -1
  257. package/dist/router/assets/csrf.js +16 -25
  258. package/dist/router/assets/csrf.js.map +1 -1
  259. package/dist/router/assets/send-account-page.js +3 -6
  260. package/dist/router/assets/send-account-page.js.map +1 -1
  261. package/dist/router/assets/send-authorization-page.js +3 -6
  262. package/dist/router/assets/send-authorization-page.js.map +1 -1
  263. package/dist/router/assets/send-cookie-error-page.js +3 -6
  264. package/dist/router/assets/send-cookie-error-page.js.map +1 -1
  265. package/dist/router/assets/send-error-page.js +6 -9
  266. package/dist/router/assets/send-error-page.js.map +1 -1
  267. package/dist/router/assets/send-redirect.js +12 -20
  268. package/dist/router/assets/send-redirect.js.map +1 -1
  269. package/dist/router/create-account-page-middleware.js +11 -14
  270. package/dist/router/create-account-page-middleware.js.map +1 -1
  271. package/dist/router/create-api-middleware.js +83 -90
  272. package/dist/router/create-api-middleware.js.map +1 -1
  273. package/dist/router/create-authorization-page-middleware.js +43 -46
  274. package/dist/router/create-authorization-page-middleware.js.map +1 -1
  275. package/dist/router/create-oauth-middleware.js +31 -34
  276. package/dist/router/create-oauth-middleware.js.map +1 -1
  277. package/dist/router/error-handler.js +1 -2
  278. package/dist/router/middleware-options.js +1 -2
  279. package/dist/signer/access-token-payload.js +12 -15
  280. package/dist/signer/access-token-payload.js.map +1 -1
  281. package/dist/signer/api-token-payload.js +8 -11
  282. package/dist/signer/api-token-payload.js.map +1 -1
  283. package/dist/signer/signer.js +11 -17
  284. package/dist/signer/signer.js.map +1 -1
  285. package/dist/token/refresh-token.js +10 -15
  286. package/dist/token/refresh-token.js.map +1 -1
  287. package/dist/token/token-claims.js +1 -2
  288. package/dist/token/token-data.js +1 -2
  289. package/dist/token/token-id.js +10 -15
  290. package/dist/token/token-id.js.map +1 -1
  291. package/dist/token/token-manager.js +40 -51
  292. package/dist/token/token-manager.js.map +1 -1
  293. package/dist/token/token-store.js +7 -25
  294. package/dist/token/token-store.js.map +1 -1
  295. package/dist/types/authorization-response-error.js +8 -12
  296. package/dist/types/authorization-response-error.js.map +1 -1
  297. package/dist/types/color-hue.js +2 -5
  298. package/dist/types/color-hue.js.map +1 -1
  299. package/dist/types/email-otp.js +2 -5
  300. package/dist/types/email-otp.js.map +1 -1
  301. package/dist/types/email.js +6 -9
  302. package/dist/types/email.js.map +1 -1
  303. package/dist/types/handle.js +6 -9
  304. package/dist/types/handle.js.map +1 -1
  305. package/dist/types/invite-code.js +2 -5
  306. package/dist/types/invite-code.js.map +1 -1
  307. package/dist/types/par-response-error.js +5 -9
  308. package/dist/types/par-response-error.js.map +1 -1
  309. package/dist/types/password.js +3 -6
  310. package/dist/types/password.js.map +1 -1
  311. package/dist/types/rgb-color.js +7 -10
  312. package/dist/types/rgb-color.js.map +1 -1
  313. package/package.json +20 -22
  314. package/src/dpop/dpop-nonce.ts +1 -1
  315. package/src/errors/invalid-invite-code-error.ts +1 -1
  316. package/src/lib/http/accept.ts +4 -1
  317. package/src/lib/http/request.ts +4 -1
  318. package/src/lib/util/type.ts +0 -1
  319. package/src/router/assets/assets-manifest.ts +3 -1
  320. package/src/router/assets/assets.ts +2 -0
  321. package/tsconfig.build.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"color-hue.js","sourceRoot":"","sources":["../../src/types/color-hue.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,cAAc,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const colorHueSchema = z.number().min(0).max(360)\n"]}
1
+ {"version":3,"file":"color-hue.js","sourceRoot":"","sources":["../../src/types/color-hue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const colorHueSchema = z.number().min(0).max(360)\n"]}
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.emailOtpSchema = void 0;
4
- const zod_1 = require("zod");
5
- exports.emailOtpSchema = zod_1.z.string().min(1);
1
+ import { z } from 'zod';
2
+ export const emailOtpSchema = z.string().min(1);
6
3
  //# sourceMappingURL=email-otp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"email-otp.js","sourceRoot":"","sources":["../../src/types/email-otp.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,cAAc,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const emailOtpSchema = z.string().min(1)\n"]}
1
+ {"version":3,"file":"email-otp.js","sourceRoot":"","sources":["../../src/types/email-otp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const emailOtpSchema = z.string().min(1)\n"]}
@@ -1,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.emailSchema = void 0;
4
- const address_1 = require("@hapi/address");
5
- const disposable_email_domains_js_1 = require("disposable-email-domains-js");
6
- const zod_1 = require("zod");
7
- exports.emailSchema = zod_1.z
1
+ import { isEmailValid } from '@hapi/address';
2
+ import { isDisposableEmail } from 'disposable-email-domains-js';
3
+ import { z } from 'zod';
4
+ export const emailSchema = z
8
5
  .string()
9
6
  .email()
10
7
  // @NOTE Internally, `zod` uses a regexp for validating emails.. This
@@ -19,10 +16,10 @@ exports.emailSchema = zod_1.z
19
16
  // according to both libraries ensuring that we never encounter a case where
20
17
  // an email allowed here is in a format that would be rejected by other parts
21
18
  // of our systems.
22
- .refine(address_1.isEmailValid, {
19
+ .refine(isEmailValid, {
23
20
  message: 'Invalid email address',
24
21
  })
25
- .refine((email) => !(0, disposable_email_domains_js_1.isDisposableEmail)(email), {
22
+ .refine((email) => !isDisposableEmail(email), {
26
23
  message: 'Disposable email addresses are not allowed',
27
24
  })
28
25
  .transform((value) => value.toLowerCase());
@@ -1 +1 @@
1
- {"version":3,"file":"email.js","sourceRoot":"","sources":["../../src/types/email.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAC5C,6EAA+D;AAC/D,6BAAuB;AAEV,QAAA,WAAW,GAAG,OAAC;KACzB,MAAM,EAAE;KACR,KAAK,EAAE;IACR,qEAAqE;IACrE,2EAA2E;IAC3E,2EAA2E;IAC3E,+DAA+D;IAC/D,oEAAoE;IACpE,2EAA2E;IAC3E,EAAE;IACF,6EAA6E;IAC7E,8EAA8E;IAC9E,4EAA4E;IAC5E,6EAA6E;IAC7E,kBAAkB;KACjB,MAAM,CAAC,sBAAY,EAAE;IACpB,OAAO,EAAE,uBAAuB;CACjC,CAAC;KACD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAA,+CAAiB,EAAC,KAAK,CAAC,EAAE;IAC5C,OAAO,EAAE,4CAA4C;CACtD,CAAC;KACD,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA","sourcesContent":["import { isEmailValid } from '@hapi/address'\nimport { isDisposableEmail } from 'disposable-email-domains-js'\nimport { z } from 'zod'\n\nexport const emailSchema = z\n .string()\n .email()\n // @NOTE Internally, `zod` uses a regexp for validating emails.. This\n // validation strategy *could* be less permissive in some (edge) cases than\n // `@hapi/address` as the latter uses an algorithm based on the spec. Truth\n // is, it is kinda hard to know if the set of emails allowed by\n // `@hapi/address` is covered by the set of emails allowed by `zod`.\n // Additionally, this could change with future changes in either libraries.\n //\n // Because of this uncertainty, and because other part of the Bluesky/ATProto\n // codebases rely solely on `zod`, this code only allows emails that are valid\n // according to both libraries ensuring that we never encounter a case where\n // an email allowed here is in a format that would be rejected by other parts\n // of our systems.\n .refine(isEmailValid, {\n message: 'Invalid email address',\n })\n .refine((email) => !isDisposableEmail(email), {\n message: 'Disposable email addresses are not allowed',\n })\n .transform((value) => value.toLowerCase())\n"]}
1
+ {"version":3,"file":"email.js","sourceRoot":"","sources":["../../src/types/email.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,EAAE;KACR,KAAK,EAAE;IACR,qEAAqE;IACrE,2EAA2E;IAC3E,2EAA2E;IAC3E,+DAA+D;IAC/D,oEAAoE;IACpE,2EAA2E;IAC3E,EAAE;IACF,6EAA6E;IAC7E,8EAA8E;IAC9E,4EAA4E;IAC5E,6EAA6E;IAC7E,kBAAkB;KACjB,MAAM,CAAC,YAAY,EAAE;IACpB,OAAO,EAAE,uBAAuB;CACjC,CAAC;KACD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;IAC5C,OAAO,EAAE,4CAA4C;CACtD,CAAC;KACD,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA","sourcesContent":["import { isEmailValid } from '@hapi/address'\nimport { isDisposableEmail } from 'disposable-email-domains-js'\nimport { z } from 'zod'\n\nexport const emailSchema = z\n .string()\n .email()\n // @NOTE Internally, `zod` uses a regexp for validating emails.. This\n // validation strategy *could* be less permissive in some (edge) cases than\n // `@hapi/address` as the latter uses an algorithm based on the spec. Truth\n // is, it is kinda hard to know if the set of emails allowed by\n // `@hapi/address` is covered by the set of emails allowed by `zod`.\n // Additionally, this could change with future changes in either libraries.\n //\n // Because of this uncertainty, and because other part of the Bluesky/ATProto\n // codebases rely solely on `zod`, this code only allows emails that are valid\n // according to both libraries ensuring that we never encounter a case where\n // an email allowed here is in a format that would be rejected by other parts\n // of our systems.\n .refine(isEmailValid, {\n message: 'Invalid email address',\n })\n .refine((email) => !isDisposableEmail(email), {\n message: 'Disposable email addresses are not allowed',\n })\n .transform((value) => value.toLowerCase())\n"]}
@@ -1,22 +1,19 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleSchema = void 0;
4
- const zod_1 = require("zod");
5
- const syntax_1 = require("@atproto/syntax");
6
- exports.handleSchema = zod_1.z
1
+ import { z } from 'zod';
2
+ import { ensureValidHandle, normalizeHandle } from '@atproto/syntax';
3
+ export const handleSchema = z
7
4
  .string()
8
5
  // @NOTE: We only check against validity towards ATProto's syntax. Additional
9
6
  // rules may be imposed by the store implementation.
10
7
  .superRefine((value, ctx) => {
11
8
  try {
12
- (0, syntax_1.ensureValidHandle)(value);
9
+ ensureValidHandle(value);
13
10
  }
14
11
  catch (err) {
15
12
  ctx.addIssue({
16
- code: zod_1.z.ZodIssueCode.custom,
13
+ code: z.ZodIssueCode.custom,
17
14
  message: err instanceof Error ? err.message : 'Invalid handle',
18
15
  });
19
16
  }
20
17
  })
21
- .transform(syntax_1.normalizeHandle);
18
+ .transform(normalizeHandle);
22
19
  //# sourceMappingURL=handle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handle.js","sourceRoot":"","sources":["../../src/types/handle.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,4CAAoE;AAEvD,QAAA,YAAY,GAAG,OAAC;KAC1B,MAAM,EAAE;IACT,6EAA6E;IAC7E,oDAAoD;KACnD,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAC1B,IAAI,CAAC;QACH,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB;SAC/D,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAC;KACD,SAAS,CAAC,wBAAe,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\nimport { ensureValidHandle, normalizeHandle } from '@atproto/syntax'\n\nexport const handleSchema = z\n .string()\n // @NOTE: We only check against validity towards ATProto's syntax. Additional\n // rules may be imposed by the store implementation.\n .superRefine((value, ctx) => {\n try {\n ensureValidHandle(value)\n } catch (err) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: err instanceof Error ? err.message : 'Invalid handle',\n })\n }\n })\n .transform(normalizeHandle)\n"]}
1
+ {"version":3,"file":"handle.js","sourceRoot":"","sources":["../../src/types/handle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEpE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;IACT,6EAA6E;IAC7E,oDAAoD;KACnD,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAC1B,IAAI,CAAC;QACH,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB;SAC/D,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAC;KACD,SAAS,CAAC,eAAe,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\nimport { ensureValidHandle, normalizeHandle } from '@atproto/syntax'\n\nexport const handleSchema = z\n .string()\n // @NOTE: We only check against validity towards ATProto's syntax. Additional\n // rules may be imposed by the store implementation.\n .superRefine((value, ctx) => {\n try {\n ensureValidHandle(value)\n } catch (err) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: err instanceof Error ? err.message : 'Invalid handle',\n })\n }\n })\n .transform(normalizeHandle)\n"]}
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.inviteCodeSchema = void 0;
4
- const zod_1 = require("zod");
5
- exports.inviteCodeSchema = zod_1.z.string().min(1);
1
+ import { z } from 'zod';
2
+ export const inviteCodeSchema = z.string().min(1);
6
3
  //# sourceMappingURL=invite-code.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invite-code.js","sourceRoot":"","sources":["../../src/types/invite-code.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const inviteCodeSchema = z.string().min(1)\nexport type InviteCode = z.infer<typeof inviteCodeSchema>\n"]}
1
+ {"version":3,"file":"invite-code.js","sourceRoot":"","sources":["../../src/types/invite-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const inviteCodeSchema = z.string().min(1)\nexport type InviteCode = z.infer<typeof inviteCodeSchema>\n"]}
@@ -1,14 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parResponseErrorSchema = void 0;
4
- exports.isPARResponseError = isPARResponseError;
5
- const zod_1 = require("zod");
6
- const authorization_response_error_js_1 = require("./authorization-response-error.js");
1
+ import { z } from 'zod';
2
+ import { authorizationResponseErrorSchema } from './authorization-response-error.js';
7
3
  // https://datatracker.ietf.org/doc/html/rfc9126#section-2.3-1
8
4
  // > Since initial processing of the pushed authorization request does not
9
5
  // > involve resource owner interaction, error codes related to user
10
6
  // > interaction, such as "access_denied", are never returned.
11
- exports.parResponseErrorSchema = zod_1.z.intersection(authorization_response_error_js_1.authorizationResponseErrorSchema, zod_1.z.enum([
7
+ export const parResponseErrorSchema = z.intersection(authorizationResponseErrorSchema, z.enum([
12
8
  'invalid_request',
13
9
  'unauthorized_client',
14
10
  'unsupported_response_type',
@@ -16,7 +12,7 @@ exports.parResponseErrorSchema = zod_1.z.intersection(authorization_response_err
16
12
  'server_error',
17
13
  'temporarily_unavailable',
18
14
  ]));
19
- function isPARResponseError(value) {
20
- return exports.parResponseErrorSchema.safeParse(value).success;
15
+ export function isPARResponseError(value) {
16
+ return parResponseErrorSchema.safeParse(value).success;
21
17
  }
22
18
  //# sourceMappingURL=par-response-error.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"par-response-error.js","sourceRoot":"","sources":["../../src/types/par-response-error.ts"],"names":[],"mappings":";;;AAsBA,gDAEC;AAxBD,6BAAuB;AACvB,uFAAoF;AAEpF,8DAA8D;AAC9D,0EAA0E;AAC1E,oEAAoE;AACpE,8DAA8D;AAEjD,QAAA,sBAAsB,GAAG,OAAC,CAAC,YAAY,CAClD,kEAAgC,EAChC,OAAC,CAAC,IAAI,CAAC;IACL,iBAAiB;IACjB,qBAAqB;IACrB,2BAA2B;IAC3B,eAAe;IACf,cAAc;IACd,yBAAyB;CAC1B,CAAC,CACH,CAAA;AAID,SAAgB,kBAAkB,CAAI,KAAQ;IAC5C,OAAO,8BAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACxD,CAAC","sourcesContent":["import { z } from 'zod'\nimport { authorizationResponseErrorSchema } from './authorization-response-error.js'\n\n// https://datatracker.ietf.org/doc/html/rfc9126#section-2.3-1\n// > Since initial processing of the pushed authorization request does not\n// > involve resource owner interaction, error codes related to user\n// > interaction, such as \"access_denied\", are never returned.\n\nexport const parResponseErrorSchema = z.intersection(\n authorizationResponseErrorSchema,\n z.enum([\n 'invalid_request',\n 'unauthorized_client',\n 'unsupported_response_type',\n 'invalid_scope',\n 'server_error',\n 'temporarily_unavailable',\n ]),\n)\n\nexport type PARResponseError = z.infer<typeof parResponseErrorSchema>\n\nexport function isPARResponseError<T>(value: T): value is T & PARResponseError {\n return parResponseErrorSchema.safeParse(value).success\n}\n"]}
1
+ {"version":3,"file":"par-response-error.js","sourceRoot":"","sources":["../../src/types/par-response-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAA;AAEpF,8DAA8D;AAC9D,0EAA0E;AAC1E,oEAAoE;AACpE,8DAA8D;AAE9D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,YAAY,CAClD,gCAAgC,EAChC,CAAC,CAAC,IAAI,CAAC;IACL,iBAAiB;IACjB,qBAAqB;IACrB,2BAA2B;IAC3B,eAAe;IACf,cAAc;IACd,yBAAyB;CAC1B,CAAC,CACH,CAAA;AAID,MAAM,UAAU,kBAAkB,CAAI,KAAQ;IAC5C,OAAO,sBAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACxD,CAAC","sourcesContent":["import { z } from 'zod'\nimport { authorizationResponseErrorSchema } from './authorization-response-error.js'\n\n// https://datatracker.ietf.org/doc/html/rfc9126#section-2.3-1\n// > Since initial processing of the pushed authorization request does not\n// > involve resource owner interaction, error codes related to user\n// > interaction, such as \"access_denied\", are never returned.\n\nexport const parResponseErrorSchema = z.intersection(\n authorizationResponseErrorSchema,\n z.enum([\n 'invalid_request',\n 'unauthorized_client',\n 'unsupported_response_type',\n 'invalid_scope',\n 'server_error',\n 'temporarily_unavailable',\n ]),\n)\n\nexport type PARResponseError = z.infer<typeof parResponseErrorSchema>\n\nexport function isPARResponseError<T>(value: T): value is T & PARResponseError {\n return parResponseErrorSchema.safeParse(value).success\n}\n"]}
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.newPasswordSchema = exports.oldPasswordSchema = void 0;
4
- const zod_1 = require("zod");
5
- exports.oldPasswordSchema = zod_1.z.string().min(1).max(512);
6
- exports.newPasswordSchema = zod_1.z.string().min(8).max(256);
1
+ import { z } from 'zod';
2
+ export const oldPasswordSchema = z.string().min(1).max(512);
3
+ export const newPasswordSchema = z.string().min(8).max(256);
7
4
  //# sourceMappingURL=password.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/types/password.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAC9C,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const oldPasswordSchema = z.string().min(1).max(512)\nexport const newPasswordSchema = z.string().min(8).max(256)\n"]}
1
+ {"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/types/password.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAC3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const oldPasswordSchema = z.string().min(1).max(512)\nexport const newPasswordSchema = z.string().min(8).max(256)\n"]}
@@ -1,14 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rgbColorSchema = void 0;
4
- const zod_1 = require("zod");
5
- const color_js_1 = require("../lib/util/color.js");
6
- exports.rgbColorSchema = zod_1.z.string().transform((value, ctx) => {
1
+ import { z } from 'zod';
2
+ import { parseColor } from '../lib/util/color.js';
3
+ export const rgbColorSchema = z.string().transform((value, ctx) => {
7
4
  try {
8
- const parsed = (0, color_js_1.parseColor)(value);
5
+ const parsed = parseColor(value);
9
6
  if ('a' in parsed && parsed.a !== undefined) {
10
7
  ctx.addIssue({
11
- code: zod_1.z.ZodIssueCode.custom,
8
+ code: z.ZodIssueCode.custom,
12
9
  message: 'Alpha values are not supported',
13
10
  });
14
11
  }
@@ -16,10 +13,10 @@ exports.rgbColorSchema = zod_1.z.string().transform((value, ctx) => {
16
13
  }
17
14
  catch (e) {
18
15
  ctx.addIssue({
19
- code: zod_1.z.ZodIssueCode.custom,
16
+ code: z.ZodIssueCode.custom,
20
17
  message: e instanceof Error ? e.message : 'Invalid color value',
21
18
  });
22
- return zod_1.z.NEVER;
19
+ return z.NEVER;
23
20
  }
24
21
  });
25
22
  //# sourceMappingURL=rgb-color.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rgb-color.js","sourceRoot":"","sources":["../../src/types/rgb-color.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,mDAA2D;AAE9C,QAAA,cAAc,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,GAAG,EAAY,EAAE;IAC1E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,qBAAU,EAAC,KAAK,CAAC,CAAA;QAChC,IAAI,GAAG,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5C,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,gCAAgC;aAC1C,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB;SAChE,CAAC,CAAA;QACF,OAAO,OAAC,CAAC,KAAK,CAAA;IAChB,CAAC;AACH,CAAC,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\nimport { RgbColor, parseColor } from '../lib/util/color.js'\n\nexport const rgbColorSchema = z.string().transform((value, ctx): RgbColor => {\n try {\n const parsed = parseColor(value)\n if ('a' in parsed && parsed.a !== undefined) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Alpha values are not supported',\n })\n }\n return parsed\n } catch (e) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: e instanceof Error ? e.message : 'Invalid color value',\n })\n return z.NEVER\n }\n})\n"]}
1
+ {"version":3,"file":"rgb-color.js","sourceRoot":"","sources":["../../src/types/rgb-color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAY,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAE3D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,GAAG,EAAY,EAAE;IAC1E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,GAAG,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5C,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,gCAAgC;aAC1C,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB;SAChE,CAAC,CAAA;QACF,OAAO,CAAC,CAAC,KAAK,CAAA;IAChB,CAAC;AACH,CAAC,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\nimport { RgbColor, parseColor } from '../lib/util/color.js'\n\nexport const rgbColorSchema = z.string().transform((value, ctx): RgbColor => {\n try {\n const parsed = parseColor(value)\n if ('a' in parsed && parsed.a !== undefined) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Alpha values are not supported',\n })\n }\n return parsed\n } catch (e) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: e instanceof Error ? e.message : 'Invalid color value',\n })\n return z.NEVER\n }\n})\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/oauth-provider",
3
- "version": "0.16.5",
3
+ "version": "0.17.0",
4
4
  "license": "MIT",
5
5
  "description": "Generic OAuth2 and OpenID Connect provider for Node.js. Currently only supports features needed for Atproto.",
6
6
  "keywords": [
@@ -18,9 +18,7 @@
18
18
  "url": "https://github.com/bluesky-social/atproto",
19
19
  "directory": "packages/oauth/oauth-provider"
20
20
  },
21
- "type": "commonjs",
22
- "main": "dist/index.js",
23
- "types": "dist/index.d.ts",
21
+ "type": "module",
24
22
  "exports": {
25
23
  ".": {
26
24
  "types": "./dist/index.d.ts",
@@ -28,7 +26,7 @@
28
26
  }
29
27
  },
30
28
  "engines": {
31
- "node": ">=18.7.0"
29
+ "node": ">=22"
32
30
  },
33
31
  "dependencies": {
34
32
  "@hapi/accept": "^6.0.3",
@@ -42,29 +40,29 @@
42
40
  "ioredis": "^5.3.2",
43
41
  "jose": "^5.2.0",
44
42
  "zod": "^3.23.8",
45
- "@atproto-labs/fetch-node": "^0.2.0",
46
- "@atproto-labs/pipe": "^0.1.1",
47
- "@atproto-labs/simple-store": "^0.3.0",
48
- "@atproto-labs/fetch": "^0.2.3",
49
- "@atproto-labs/simple-store-memory": "^0.1.4",
50
- "@atproto/jwk": "^0.6.0",
51
- "@atproto/did": "^0.3.0",
52
- "@atproto/jwk-jose": "^0.1.11",
53
- "@atproto/common": "^0.5.16",
54
- "@atproto/lex-document": "^0.0.21",
55
- "@atproto/lex-resolver": "^0.0.24",
56
- "@atproto/oauth-types": "^0.6.3",
57
- "@atproto/oauth-scopes": "^0.3.2",
58
- "@atproto/oauth-provider-ui": "0.5.2",
59
- "@atproto/syntax": "^0.5.4",
60
- "@atproto/oauth-provider-api": "0.4.0"
43
+ "@atproto-labs/fetch": "^0.3.0",
44
+ "@atproto-labs/fetch-node": "^0.3.0",
45
+ "@atproto-labs/pipe": "^0.2.0",
46
+ "@atproto-labs/simple-store": "^0.4.0",
47
+ "@atproto-labs/simple-store-memory": "^0.2.0",
48
+ "@atproto/common": "^0.6.0",
49
+ "@atproto/did": "^0.4.0",
50
+ "@atproto/jwk": "^0.7.0",
51
+ "@atproto/jwk-jose": "^0.2.0",
52
+ "@atproto/lex-document": "^0.1.0",
53
+ "@atproto/lex-resolver": "^0.1.0",
54
+ "@atproto/oauth-types": "^0.7.0",
55
+ "@atproto/oauth-provider-api": "0.5.0",
56
+ "@atproto/oauth-provider-ui": "0.6.0",
57
+ "@atproto/oauth-scopes": "^0.4.0",
58
+ "@atproto/syntax": "^0.6.0"
61
59
  },
62
60
  "devDependencies": {
63
61
  "@types/cookie": "^0.6.0",
64
62
  "@types/forwarded": "0.1.3",
65
63
  "@types/http-errors": "^2.0.4",
66
64
  "@types/send": "^0.17.4",
67
- "@atproto-labs/rollup-plugin-bundle-manifest": "^0.2.0"
65
+ "@atproto-labs/rollup-plugin-bundle-manifest": "^0.3.0"
68
66
  },
69
67
  "scripts": {
70
68
  "build": "tsc --build tsconfig.build.json"
@@ -14,7 +14,7 @@ export const rotationIntervalSchema = z
14
14
  const SECRET_BYTE_LENGTH = 32
15
15
 
16
16
  export const secretBytesSchema = z
17
- .instanceof(Uint8Array)
17
+ .instanceof(Uint8Array<ArrayBufferLike>)
18
18
  .refine((secret) => secret.length === SECRET_BYTE_LENGTH, {
19
19
  message: `Secret must be exactly ${SECRET_BYTE_LENGTH} bytes long`,
20
20
  })
@@ -1,4 +1,4 @@
1
- import { InvalidRequestError } from './invalid-request-error'
1
+ import { InvalidRequestError } from './invalid-request-error.js'
2
2
 
3
3
  export class InvalidInviteCodeError extends InvalidRequestError {
4
4
  constructor(details?: string, cause?: unknown) {
@@ -1,5 +1,8 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http'
2
- import { mediaType } from '@hapi/accept'
2
+ // eslint-disable-next-line import/default, import/no-named-as-default-member
3
+ import accept from '@hapi/accept'
4
+ // eslint-disable-next-line import/no-named-as-default-member
5
+ const { mediaType } = accept
3
6
  import { SubCtx, subCtx } from './context.js'
4
7
  import { Middleware, NextFunction } from './types.js'
5
8
 
@@ -1,5 +1,8 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http'
2
- import { languages, mediaType } from '@hapi/accept'
2
+ // eslint-disable-next-line import/default, import/no-named-as-default-member
3
+ import accept from '@hapi/accept'
4
+ // eslint-disable-next-line import/no-named-as-default-member
5
+ const { languages, mediaType } = accept
3
6
  import {
4
7
  CookieSerializeOptions,
5
8
  parse as parseCookie,
@@ -1,4 +1,3 @@
1
- // eslint-disable-next-line @typescript-eslint/ban-types
2
1
  export type Simplify<T> = { [K in keyof T]: T[K] } & {}
3
2
  export type Override<T, V> = Simplify<{
4
3
  [K in keyof (V & T)]: K extends keyof V
@@ -1,4 +1,5 @@
1
1
  import { createReadStream } from 'node:fs'
2
+ import { createRequire } from 'node:module'
2
3
  import { join } from 'node:path'
3
4
  import { Readable } from 'node:stream'
4
5
  import type { Manifest } from '@atproto-labs/rollup-plugin-bundle-manifest'
@@ -34,8 +35,9 @@ const ASSETS_URL_PREFIX = '/@atproto/oauth-provider/~assets/'
34
35
  export function parseAssetsManifest(manifestPath: string) {
35
36
  // Using `require` instead of `JSON.parse(readFileSync())` so that node's
36
37
  // watch mode can pick up changes to the manifest file.
38
+ const require = createRequire(import.meta.url)
37
39
 
38
- // eslint-disable-next-line
40
+ // eslint-disable-next-line import/no-dynamic-require
39
41
  const manifest = require(manifestPath) as Manifest
40
42
 
41
43
  const assets = new Map<string, Asset>(
@@ -1,4 +1,5 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http'
2
+ import { createRequire } from 'node:module'
2
3
  import type { HydrationData as UiHydrationData } from '@atproto/oauth-provider-ui/hydration-data'
3
4
  import { buildCustomizationCss } from '../../customization/build-customization-css.js'
4
5
  import { buildCustomizationData } from '../../customization/build-customization-data.js'
@@ -24,6 +25,7 @@ import { setupCsrfToken } from './csrf.js'
24
25
  // require.resolve('@atproto/oauth-provider-ui/bundle-manifest.json'),
25
26
  // )
26
27
 
28
+ const require = createRequire(import.meta.url)
27
29
  const ui = parseAssetsManifest(
28
30
  require.resolve('@atproto/oauth-provider-ui/bundle-manifest.json'),
29
31
  )
@@ -1 +1 @@
1
- {"root":["./src/constants.ts","./src/index.ts","./src/oauth-client.ts","./src/oauth-dpop.ts","./src/oauth-errors.ts","./src/oauth-hooks.ts","./src/oauth-middleware.ts","./src/oauth-provider.ts","./src/oauth-store.ts","./src/oauth-verifier.ts","./src/access-token/access-token-mode.ts","./src/account/account-manager.ts","./src/account/account-store.ts","./src/account/sign-in-data.ts","./src/account/sign-up-input.ts","./src/client/client-auth.ts","./src/client/client-data.ts","./src/client/client-id.ts","./src/client/client-info.ts","./src/client/client-manager.ts","./src/client/client-store.ts","./src/client/client-utils.ts","./src/client/client.ts","./src/customization/branding.ts","./src/customization/build-customization-css.ts","./src/customization/build-customization-data.ts","./src/customization/colors.ts","./src/customization/customization.ts","./src/customization/links.ts","./src/device/device-data.ts","./src/device/device-id.ts","./src/device/device-manager.ts","./src/device/device-store.ts","./src/device/session-id.ts","./src/dpop/dpop-manager.ts","./src/dpop/dpop-nonce.ts","./src/dpop/dpop-proof.ts","./src/errors/access-denied-error.ts","./src/errors/account-selection-required-error.ts","./src/errors/authorization-error.ts","./src/errors/consent-required-error.ts","./src/errors/error-parser.ts","./src/errors/handle-unavailable-error.ts","./src/errors/invalid-authorization-details-error.ts","./src/errors/invalid-client-error.ts","./src/errors/invalid-client-id-error.ts","./src/errors/invalid-client-metadata-error.ts","./src/errors/invalid-credentials-error.ts","./src/errors/invalid-dpop-key-binding-error.ts","./src/errors/invalid-dpop-proof-error.ts","./src/errors/invalid-grant-error.ts","./src/errors/invalid-invite-code-error.ts","./src/errors/invalid-redirect-uri-error.ts","./src/errors/invalid-request-error.ts","./src/errors/invalid-scope-error.ts","./src/errors/invalid-token-error.ts","./src/errors/login-required-error.ts","./src/errors/oauth-error.ts","./src/errors/second-authentication-factor-required-error.ts","./src/errors/unauthorized-client-error.ts","./src/errors/use-dpop-nonce-error.ts","./src/errors/www-authenticate-error.ts","./src/lexicon/lexicon-data.ts","./src/lexicon/lexicon-getter.ts","./src/lexicon/lexicon-manager.ts","./src/lexicon/lexicon-store.ts","./src/lib/hcaptcha.ts","./src/lib/nsid.ts","./src/lib/redis.ts","./src/lib/write-form-redirect.ts","./src/lib/write-html.ts","./src/lib/csp/index.ts","./src/lib/html/build-document.ts","./src/lib/html/escapers.ts","./src/lib/html/html.ts","./src/lib/html/hydration-data.ts","./src/lib/html/index.ts","./src/lib/html/tags.ts","./src/lib/html/util.ts","./src/lib/http/accept.ts","./src/lib/http/context.ts","./src/lib/http/headers.ts","./src/lib/http/index.ts","./src/lib/http/method.ts","./src/lib/http/middleware.ts","./src/lib/http/parser.ts","./src/lib/http/path.ts","./src/lib/http/request.ts","./src/lib/http/response.ts","./src/lib/http/route.ts","./src/lib/http/router.ts","./src/lib/http/security-headers.ts","./src/lib/http/stream.ts","./src/lib/http/types.ts","./src/lib/http/url.ts","./src/lib/util/authorization-header.ts","./src/lib/util/cast.ts","./src/lib/util/color.ts","./src/lib/util/crypto.ts","./src/lib/util/date.ts","./src/lib/util/error.ts","./src/lib/util/function.ts","./src/lib/util/locale.ts","./src/lib/util/object.ts","./src/lib/util/redirect-uri.ts","./src/lib/util/time.ts","./src/lib/util/type.ts","./src/lib/util/ui8.ts","./src/lib/util/well-known.ts","./src/lib/util/zod-error.ts","./src/metadata/build-metadata.ts","./src/oidc/sub.ts","./src/replay/replay-manager.ts","./src/replay/replay-store-memory.ts","./src/replay/replay-store-redis.ts","./src/replay/replay-store.ts","./src/request/code.ts","./src/request/request-data.ts","./src/request/request-id.ts","./src/request/request-manager.ts","./src/request/request-store.ts","./src/request/request-uri.ts","./src/result/authorization-redirect-parameters.ts","./src/result/authorization-result-authorize-page.ts","./src/result/authorization-result-redirect.ts","./src/router/create-account-page-middleware.ts","./src/router/create-api-middleware.ts","./src/router/create-authorization-page-middleware.ts","./src/router/create-oauth-middleware.ts","./src/router/error-handler.ts","./src/router/middleware-options.ts","./src/router/assets/assets-manifest.ts","./src/router/assets/assets.ts","./src/router/assets/csrf.ts","./src/router/assets/send-account-page.ts","./src/router/assets/send-authorization-page.ts","./src/router/assets/send-cookie-error-page.ts","./src/router/assets/send-error-page.ts","./src/router/assets/send-redirect.ts","./src/signer/access-token-payload.ts","./src/signer/api-token-payload.ts","./src/signer/signer.ts","./src/token/refresh-token.ts","./src/token/token-claims.ts","./src/token/token-data.ts","./src/token/token-id.ts","./src/token/token-manager.ts","./src/token/token-store.ts","./src/types/authorization-response-error.ts","./src/types/color-hue.ts","./src/types/email-otp.ts","./src/types/email.ts","./src/types/handle.ts","./src/types/invite-code.ts","./src/types/par-response-error.ts","./src/types/password.ts","./src/types/rgb-color.ts"],"version":"5.8.3"}
1
+ {"root":["./src/constants.ts","./src/index.ts","./src/oauth-client.ts","./src/oauth-dpop.ts","./src/oauth-errors.ts","./src/oauth-hooks.ts","./src/oauth-middleware.ts","./src/oauth-provider.ts","./src/oauth-store.ts","./src/oauth-verifier.ts","./src/access-token/access-token-mode.ts","./src/account/account-manager.ts","./src/account/account-store.ts","./src/account/sign-in-data.ts","./src/account/sign-up-input.ts","./src/client/client-auth.ts","./src/client/client-data.ts","./src/client/client-id.ts","./src/client/client-info.ts","./src/client/client-manager.ts","./src/client/client-store.ts","./src/client/client-utils.ts","./src/client/client.ts","./src/customization/branding.ts","./src/customization/build-customization-css.ts","./src/customization/build-customization-data.ts","./src/customization/colors.ts","./src/customization/customization.ts","./src/customization/links.ts","./src/device/device-data.ts","./src/device/device-id.ts","./src/device/device-manager.ts","./src/device/device-store.ts","./src/device/session-id.ts","./src/dpop/dpop-manager.ts","./src/dpop/dpop-nonce.ts","./src/dpop/dpop-proof.ts","./src/errors/access-denied-error.ts","./src/errors/account-selection-required-error.ts","./src/errors/authorization-error.ts","./src/errors/consent-required-error.ts","./src/errors/error-parser.ts","./src/errors/handle-unavailable-error.ts","./src/errors/invalid-authorization-details-error.ts","./src/errors/invalid-client-error.ts","./src/errors/invalid-client-id-error.ts","./src/errors/invalid-client-metadata-error.ts","./src/errors/invalid-credentials-error.ts","./src/errors/invalid-dpop-key-binding-error.ts","./src/errors/invalid-dpop-proof-error.ts","./src/errors/invalid-grant-error.ts","./src/errors/invalid-invite-code-error.ts","./src/errors/invalid-redirect-uri-error.ts","./src/errors/invalid-request-error.ts","./src/errors/invalid-scope-error.ts","./src/errors/invalid-token-error.ts","./src/errors/login-required-error.ts","./src/errors/oauth-error.ts","./src/errors/second-authentication-factor-required-error.ts","./src/errors/unauthorized-client-error.ts","./src/errors/use-dpop-nonce-error.ts","./src/errors/www-authenticate-error.ts","./src/lexicon/lexicon-data.ts","./src/lexicon/lexicon-getter.ts","./src/lexicon/lexicon-manager.ts","./src/lexicon/lexicon-store.ts","./src/lib/hcaptcha.ts","./src/lib/nsid.ts","./src/lib/redis.ts","./src/lib/write-form-redirect.ts","./src/lib/write-html.ts","./src/lib/csp/index.ts","./src/lib/html/build-document.ts","./src/lib/html/escapers.ts","./src/lib/html/html.ts","./src/lib/html/hydration-data.ts","./src/lib/html/index.ts","./src/lib/html/tags.ts","./src/lib/html/util.ts","./src/lib/http/accept.ts","./src/lib/http/context.ts","./src/lib/http/headers.ts","./src/lib/http/index.ts","./src/lib/http/method.ts","./src/lib/http/middleware.ts","./src/lib/http/parser.ts","./src/lib/http/path.ts","./src/lib/http/request.ts","./src/lib/http/response.ts","./src/lib/http/route.ts","./src/lib/http/router.ts","./src/lib/http/security-headers.ts","./src/lib/http/stream.ts","./src/lib/http/types.ts","./src/lib/http/url.ts","./src/lib/util/authorization-header.ts","./src/lib/util/cast.ts","./src/lib/util/color.ts","./src/lib/util/crypto.ts","./src/lib/util/date.ts","./src/lib/util/error.ts","./src/lib/util/function.ts","./src/lib/util/locale.ts","./src/lib/util/object.ts","./src/lib/util/redirect-uri.ts","./src/lib/util/time.ts","./src/lib/util/type.ts","./src/lib/util/ui8.ts","./src/lib/util/well-known.ts","./src/lib/util/zod-error.ts","./src/metadata/build-metadata.ts","./src/oidc/sub.ts","./src/replay/replay-manager.ts","./src/replay/replay-store-memory.ts","./src/replay/replay-store-redis.ts","./src/replay/replay-store.ts","./src/request/code.ts","./src/request/request-data.ts","./src/request/request-id.ts","./src/request/request-manager.ts","./src/request/request-store.ts","./src/request/request-uri.ts","./src/result/authorization-redirect-parameters.ts","./src/result/authorization-result-authorize-page.ts","./src/result/authorization-result-redirect.ts","./src/router/create-account-page-middleware.ts","./src/router/create-api-middleware.ts","./src/router/create-authorization-page-middleware.ts","./src/router/create-oauth-middleware.ts","./src/router/error-handler.ts","./src/router/middleware-options.ts","./src/router/assets/assets-manifest.ts","./src/router/assets/assets.ts","./src/router/assets/csrf.ts","./src/router/assets/send-account-page.ts","./src/router/assets/send-authorization-page.ts","./src/router/assets/send-cookie-error-page.ts","./src/router/assets/send-error-page.ts","./src/router/assets/send-redirect.ts","./src/signer/access-token-payload.ts","./src/signer/api-token-payload.ts","./src/signer/signer.ts","./src/token/refresh-token.ts","./src/token/token-claims.ts","./src/token/token-data.ts","./src/token/token-id.ts","./src/token/token-manager.ts","./src/token/token-store.ts","./src/types/authorization-response-error.ts","./src/types/color-hue.ts","./src/types/email-otp.ts","./src/types/email.ts","./src/types/handle.ts","./src/types/invite-code.ts","./src/types/par-response-error.ts","./src/types/password.ts","./src/types/rgb-color.ts"],"version":"6.0.3"}