@atproto/oauth-provider 0.10.1 → 0.11.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 (91) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/constants.d.ts +2 -0
  3. package/dist/constants.d.ts.map +1 -1
  4. package/dist/constants.js +3 -1
  5. package/dist/constants.js.map +1 -1
  6. package/dist/customization/branding.d.ts +5 -19
  7. package/dist/customization/branding.d.ts.map +1 -1
  8. package/dist/customization/customization.d.ts +7 -25
  9. package/dist/customization/customization.d.ts.map +1 -1
  10. package/dist/customization/links.d.ts +3 -13
  11. package/dist/customization/links.d.ts.map +1 -1
  12. package/dist/customization/links.js +1 -1
  13. package/dist/customization/links.js.map +1 -1
  14. package/dist/lexicon/lexicon-data.d.ts +9 -0
  15. package/dist/lexicon/lexicon-data.d.ts.map +1 -0
  16. package/dist/lexicon/lexicon-data.js +3 -0
  17. package/dist/lexicon/lexicon-data.js.map +1 -0
  18. package/dist/lexicon/lexicon-getter.d.ts +15 -0
  19. package/dist/lexicon/lexicon-getter.d.ts.map +1 -0
  20. package/dist/lexicon/lexicon-getter.js +55 -0
  21. package/dist/lexicon/lexicon-getter.js.map +1 -0
  22. package/dist/lexicon/lexicon-manager.d.ts +60 -0
  23. package/dist/lexicon/lexicon-manager.d.ts.map +1 -0
  24. package/dist/lexicon/lexicon-manager.js +105 -0
  25. package/dist/lexicon/lexicon-manager.js.map +1 -0
  26. package/dist/lexicon/lexicon-store.d.ts +13 -0
  27. package/dist/lexicon/lexicon-store.d.ts.map +1 -0
  28. package/dist/lexicon/lexicon-store.js +24 -0
  29. package/dist/lexicon/lexicon-store.js.map +1 -0
  30. package/dist/lib/html/hydration-data.d.ts.map +1 -1
  31. package/dist/lib/html/hydration-data.js +1 -2
  32. package/dist/lib/html/hydration-data.js.map +1 -1
  33. package/dist/lib/nsid.d.ts +4 -0
  34. package/dist/lib/nsid.d.ts.map +1 -0
  35. package/dist/lib/nsid.js +15 -0
  36. package/dist/lib/nsid.js.map +1 -0
  37. package/dist/lib/util/locale.d.ts +1 -15
  38. package/dist/lib/util/locale.d.ts.map +1 -1
  39. package/dist/lib/util/locale.js +2 -7
  40. package/dist/lib/util/locale.js.map +1 -1
  41. package/dist/oauth-provider.d.ts +14 -9
  42. package/dist/oauth-provider.d.ts.map +1 -1
  43. package/dist/oauth-provider.js +15 -6
  44. package/dist/oauth-provider.js.map +1 -1
  45. package/dist/oauth-store.d.ts +1 -0
  46. package/dist/oauth-store.d.ts.map +1 -1
  47. package/dist/oauth-store.js +1 -0
  48. package/dist/oauth-store.js.map +1 -1
  49. package/dist/request/request-manager.d.ts +3 -1
  50. package/dist/request/request-manager.d.ts.map +1 -1
  51. package/dist/request/request-manager.js +19 -4
  52. package/dist/request/request-manager.js.map +1 -1
  53. package/dist/result/authorization-result-authorize-page.d.ts +5 -3
  54. package/dist/result/authorization-result-authorize-page.d.ts.map +1 -1
  55. package/dist/router/assets/send-authorization-page.d.ts.map +1 -1
  56. package/dist/router/assets/send-authorization-page.js +1 -0
  57. package/dist/router/assets/send-authorization-page.js.map +1 -1
  58. package/dist/signer/api-token-payload.d.ts +60 -630
  59. package/dist/signer/api-token-payload.d.ts.map +1 -1
  60. package/dist/signer/signed-token-payload.d.ts +60 -630
  61. package/dist/signer/signed-token-payload.d.ts.map +1 -1
  62. package/dist/signer/signer.d.ts +11 -11
  63. package/dist/signer/signer.d.ts.map +1 -1
  64. package/dist/token/token-data.d.ts +7 -0
  65. package/dist/token/token-data.d.ts.map +1 -1
  66. package/dist/token/token-manager.d.ts +5 -6
  67. package/dist/token/token-manager.d.ts.map +1 -1
  68. package/dist/token/token-manager.js +37 -13
  69. package/dist/token/token-manager.js.map +1 -1
  70. package/dist/token/token-store.d.ts +16 -2
  71. package/dist/token/token-store.d.ts.map +1 -1
  72. package/dist/token/token-store.js.map +1 -1
  73. package/package.json +15 -13
  74. package/src/constants.ts +3 -0
  75. package/src/customization/links.ts +2 -2
  76. package/src/lexicon/lexicon-data.ts +9 -0
  77. package/src/lexicon/lexicon-getter.ts +62 -0
  78. package/src/lexicon/lexicon-manager.ts +116 -0
  79. package/src/lexicon/lexicon-store.ts +36 -0
  80. package/src/lib/html/hydration-data.ts +1 -2
  81. package/src/lib/nsid.ts +10 -0
  82. package/src/lib/util/locale.ts +3 -9
  83. package/src/oauth-provider.ts +30 -9
  84. package/src/oauth-store.ts +1 -0
  85. package/src/request/request-manager.ts +26 -7
  86. package/src/result/authorization-result-authorize-page.ts +5 -3
  87. package/src/router/assets/send-authorization-page.ts +1 -0
  88. package/src/token/token-data.ts +8 -0
  89. package/src/token/token-manager.ts +68 -34
  90. package/src/token/token-store.ts +17 -5
  91. package/tsconfig.build.tsbuildinfo +1 -1
@@ -19,15 +19,27 @@ export type TokenInfo = {
19
19
  currentRefreshToken: null | RefreshToken
20
20
  }
21
21
 
22
- export type NewTokenData = Pick<
23
- TokenData,
24
- 'clientAuth' | 'expiresAt' | 'updatedAt'
25
- >
22
+ export type NewTokenData = {
23
+ clientAuth: TokenData['clientAuth']
24
+ expiresAt: TokenData['expiresAt']
25
+ updatedAt: TokenData['updatedAt']
26
+ scope: NonNullable<TokenData['scope']>
27
+ }
28
+
29
+ export type CreateTokenData = TokenData & {
30
+ scope: NonNullable<TokenData['scope']>
31
+ }
26
32
 
33
+ /**
34
+ * @param data historically, {@link TokenData.scope} was not present in
35
+ * {@link TokenData}, causing it to be "nullable" when returned from
36
+ * {@link TokenStore.readToken}. We use {@link CreateTokenData} here to allow
37
+ * the store implementation to expect its presence.
38
+ */
27
39
  export interface TokenStore {
28
40
  createToken(
29
41
  tokenId: TokenId,
30
- data: TokenData,
42
+ data: CreateTokenData,
31
43
  refreshToken?: RefreshToken,
32
44
  ): Awaitable<void>
33
45
 
@@ -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-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/lib/hcaptcha.ts","./src/lib/redis.ts","./src/lib/send-web-page.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/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/send-redirect.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-error-page.ts","./src/signer/api-token-payload.ts","./src/signer/signed-token-payload.ts","./src/signer/signer.ts","./src/token/refresh-token.ts","./src/token/token-data.ts","./src/token/token-id.ts","./src/token/token-manager.ts","./src/token/token-store.ts","./src/token/verify-token-claims.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-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/send-web-page.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/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/send-redirect.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-error-page.ts","./src/signer/api-token-payload.ts","./src/signer/signed-token-payload.ts","./src/signer/signer.ts","./src/token/refresh-token.ts","./src/token/token-data.ts","./src/token/token-id.ts","./src/token/token-manager.ts","./src/token/token-store.ts","./src/token/verify-token-claims.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"}