@atproto/oauth-provider 0.19.6 → 0.19.8

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 (165) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/errors/error-parser.js +5 -5
  3. package/dist/errors/error-parser.js.map +1 -1
  4. package/package.json +22 -18
  5. package/src/access-token/access-token-mode.ts +0 -4
  6. package/src/account/account-manager.ts +0 -591
  7. package/src/account/account-store.ts +0 -305
  8. package/src/account/sign-in-data.ts +0 -15
  9. package/src/account/sign-up-input.ts +0 -20
  10. package/src/client/client-auth.ts +0 -64
  11. package/src/client/client-data.ts +0 -9
  12. package/src/client/client-id.ts +0 -4
  13. package/src/client/client-info.ts +0 -13
  14. package/src/client/client-manager.ts +0 -772
  15. package/src/client/client-store.ts +0 -35
  16. package/src/client/client-utils.ts +0 -37
  17. package/src/client/client.ts +0 -394
  18. package/src/constants.ts +0 -80
  19. package/src/customization/branding.ts +0 -12
  20. package/src/customization/build-customization-css.ts +0 -55
  21. package/src/customization/build-customization-data.ts +0 -24
  22. package/src/customization/colors.ts +0 -48
  23. package/src/customization/customization.ts +0 -29
  24. package/src/customization/links.ts +0 -10
  25. package/src/device/device-data.ts +0 -11
  26. package/src/device/device-id.ts +0 -27
  27. package/src/device/device-manager.ts +0 -292
  28. package/src/device/device-store.ts +0 -31
  29. package/src/device/session-id.ts +0 -21
  30. package/src/dpop/dpop-manager.ts +0 -214
  31. package/src/dpop/dpop-nonce.ts +0 -121
  32. package/src/dpop/dpop-proof.ts +0 -6
  33. package/src/errors/access-denied-error.ts +0 -12
  34. package/src/errors/account-selection-required-error.ts +0 -12
  35. package/src/errors/authorization-error.ts +0 -45
  36. package/src/errors/consent-required-error.ts +0 -12
  37. package/src/errors/error-parser.ts +0 -147
  38. package/src/errors/handle-unavailable-error.ts +0 -23
  39. package/src/errors/invalid-authorization-details-error.ts +0 -27
  40. package/src/errors/invalid-client-error.ts +0 -20
  41. package/src/errors/invalid-client-id-error.ts +0 -31
  42. package/src/errors/invalid-client-metadata-error.ts +0 -68
  43. package/src/errors/invalid-credentials-error.ts +0 -29
  44. package/src/errors/invalid-dpop-key-binding-error.ts +0 -21
  45. package/src/errors/invalid-dpop-proof-error.ts +0 -13
  46. package/src/errors/invalid-grant-error.ts +0 -21
  47. package/src/errors/invalid-invite-code-error.ts +0 -10
  48. package/src/errors/invalid-redirect-uri-error.ts +0 -17
  49. package/src/errors/invalid-request-error.ts +0 -32
  50. package/src/errors/invalid-scope-error.ts +0 -15
  51. package/src/errors/invalid-token-error.ts +0 -60
  52. package/src/errors/login-required-error.ts +0 -12
  53. package/src/errors/oauth-error.ts +0 -28
  54. package/src/errors/second-authentication-factor-required-error.ts +0 -25
  55. package/src/errors/unauthorized-client-error.ts +0 -20
  56. package/src/errors/use-dpop-nonce-error.ts +0 -32
  57. package/src/errors/www-authenticate-error.ts +0 -64
  58. package/src/index.ts +0 -16
  59. package/src/lexicon/lexicon-data.ts +0 -11
  60. package/src/lexicon/lexicon-getter.ts +0 -55
  61. package/src/lexicon/lexicon-manager.ts +0 -116
  62. package/src/lexicon/lexicon-store.ts +0 -35
  63. package/src/lib/csp/index.ts +0 -101
  64. package/src/lib/hcaptcha.ts +0 -228
  65. package/src/lib/html/README.md +0 -9
  66. package/src/lib/html/build-document.ts +0 -151
  67. package/src/lib/html/escapers.ts +0 -66
  68. package/src/lib/html/html.ts +0 -56
  69. package/src/lib/html/hydration-data.ts +0 -19
  70. package/src/lib/html/index.ts +0 -5
  71. package/src/lib/html/tags.ts +0 -67
  72. package/src/lib/html/util.ts +0 -17
  73. package/src/lib/http/README.md +0 -11
  74. package/src/lib/http/accept.ts +0 -90
  75. package/src/lib/http/context.ts +0 -42
  76. package/src/lib/http/headers.ts +0 -15
  77. package/src/lib/http/index.ts +0 -10
  78. package/src/lib/http/method.ts +0 -18
  79. package/src/lib/http/middleware.ts +0 -169
  80. package/src/lib/http/parser.ts +0 -101
  81. package/src/lib/http/path.ts +0 -82
  82. package/src/lib/http/request.ts +0 -256
  83. package/src/lib/http/response.ts +0 -122
  84. package/src/lib/http/route.ts +0 -60
  85. package/src/lib/http/router.ts +0 -117
  86. package/src/lib/http/security-headers.ts +0 -100
  87. package/src/lib/http/stream.ts +0 -57
  88. package/src/lib/http/types.ts +0 -16
  89. package/src/lib/http/url.ts +0 -23
  90. package/src/lib/nsid.ts +0 -10
  91. package/src/lib/redis.ts +0 -25
  92. package/src/lib/util/authorization-header.ts +0 -28
  93. package/src/lib/util/cast.ts +0 -18
  94. package/src/lib/util/color.ts +0 -168
  95. package/src/lib/util/crypto.ts +0 -32
  96. package/src/lib/util/date.ts +0 -7
  97. package/src/lib/util/error.ts +0 -7
  98. package/src/lib/util/function.ts +0 -39
  99. package/src/lib/util/locale.ts +0 -12
  100. package/src/lib/util/object.ts +0 -23
  101. package/src/lib/util/redirect-uri.ts +0 -46
  102. package/src/lib/util/time.ts +0 -49
  103. package/src/lib/util/type.ts +0 -182
  104. package/src/lib/util/ui8.ts +0 -14
  105. package/src/lib/util/well-known.ts +0 -8
  106. package/src/lib/util/zod-error.ts +0 -26
  107. package/src/lib/write-form-redirect.ts +0 -58
  108. package/src/lib/write-html.ts +0 -70
  109. package/src/metadata/build-metadata.ts +0 -141
  110. package/src/oauth-client.ts +0 -3
  111. package/src/oauth-dpop.ts +0 -2
  112. package/src/oauth-errors.ts +0 -26
  113. package/src/oauth-hooks.ts +0 -519
  114. package/src/oauth-middleware.ts +0 -53
  115. package/src/oauth-provider.ts +0 -1110
  116. package/src/oauth-store.ts +0 -12
  117. package/src/oauth-verifier.ts +0 -260
  118. package/src/replay/replay-manager.ts +0 -51
  119. package/src/replay/replay-store-memory.ts +0 -36
  120. package/src/replay/replay-store-redis.ts +0 -30
  121. package/src/replay/replay-store.ts +0 -44
  122. package/src/request/code.ts +0 -23
  123. package/src/request/request-data.ts +0 -36
  124. package/src/request/request-id.ts +0 -22
  125. package/src/request/request-manager.ts +0 -521
  126. package/src/request/request-store.ts +0 -60
  127. package/src/request/request-uri.ts +0 -42
  128. package/src/result/authorization-redirect-parameters.ts +0 -24
  129. package/src/result/authorization-result-authorize-page.ts +0 -16
  130. package/src/result/authorization-result-redirect.ts +0 -8
  131. package/src/router/assets/assets-manifest.ts +0 -117
  132. package/src/router/assets/assets.ts +0 -124
  133. package/src/router/assets/csrf.ts +0 -79
  134. package/src/router/assets/send-account-page.ts +0 -23
  135. package/src/router/assets/send-authorization-page.ts +0 -42
  136. package/src/router/assets/send-cookie-error-page.ts +0 -21
  137. package/src/router/assets/send-error-page.ts +0 -25
  138. package/src/router/assets/send-redirect.ts +0 -140
  139. package/src/router/create-account-page-middleware.ts +0 -88
  140. package/src/router/create-api-middleware.ts +0 -1051
  141. package/src/router/create-authorization-page-middleware.ts +0 -281
  142. package/src/router/create-oauth-middleware.ts +0 -257
  143. package/src/router/error-handler.ts +0 -6
  144. package/src/router/middleware-options.ts +0 -9
  145. package/src/signer/access-token-payload.ts +0 -25
  146. package/src/signer/api-token-payload.ts +0 -18
  147. package/src/signer/signer.ts +0 -121
  148. package/src/token/refresh-token.ts +0 -30
  149. package/src/token/token-claims.ts +0 -22
  150. package/src/token/token-data.ts +0 -40
  151. package/src/token/token-id.ts +0 -25
  152. package/src/token/token-manager.ts +0 -427
  153. package/src/token/token-store.ts +0 -88
  154. package/src/types/authorization-response-error.ts +0 -27
  155. package/src/types/color-hue.ts +0 -3
  156. package/src/types/email-otp.ts +0 -3
  157. package/src/types/email.ts +0 -26
  158. package/src/types/handle.ts +0 -23
  159. package/src/types/invite-code.ts +0 -4
  160. package/src/types/par-response-error.ts +0 -25
  161. package/src/types/password.ts +0 -4
  162. package/src/types/rgb-color.ts +0 -21
  163. package/tsconfig.build.json +0 -8
  164. package/tsconfig.build.tsbuildinfo +0 -1
  165. package/tsconfig.json +0 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,38 @@
1
1
  # @atproto/oauth-provider
2
2
 
3
+ ## 0.19.8
4
+
5
+ ### Patch Changes
6
+
7
+ - [#5099](https://github.com/bluesky-social/atproto/pull/5099) [`b43ec31`](https://github.com/bluesky-social/atproto/commit/b43ec31f247f4461725b01226885f88bd430ca07) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Update TypeScript build to rely on references to composite internal projects
8
+
9
+ - [#5099](https://github.com/bluesky-social/atproto/pull/5099) [`b43ec31`](https://github.com/bluesky-social/atproto/commit/b43ec31f247f4461725b01226885f88bd430ca07) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Bundle only necessary files in the NPM tarball, including the `CHANGELOG.md` and `README.md` files (if present).
10
+
11
+ - Updated dependencies [[`28a0b58`](https://github.com/bluesky-social/atproto/commit/28a0b588147863eaef948cd2bb8fc0f19d08cda9), [`b43ec31`](https://github.com/bluesky-social/atproto/commit/b43ec31f247f4461725b01226885f88bd430ca07), [`b43ec31`](https://github.com/bluesky-social/atproto/commit/b43ec31f247f4461725b01226885f88bd430ca07), [`b43ec31`](https://github.com/bluesky-social/atproto/commit/b43ec31f247f4461725b01226885f88bd430ca07), [`b43ec31`](https://github.com/bluesky-social/atproto/commit/b43ec31f247f4461725b01226885f88bd430ca07)]:
12
+ - @atproto/syntax@0.6.4
13
+ - @atproto-labs/simple-store-memory@0.2.3
14
+ - @atproto/oauth-provider-api@0.7.3
15
+ - @atproto/oauth-provider-ui@0.8.4
16
+ - @atproto-labs/simple-store@0.4.3
17
+ - @atproto-labs/fetch-node@0.3.4
18
+ - @atproto/oauth-scopes@0.5.3
19
+ - @atproto/oauth-types@0.7.4
20
+ - @atproto/lex-document@0.1.3
21
+ - @atproto/lex-resolver@0.1.4
22
+ - @atproto-labs/fetch@0.3.3
23
+ - @atproto/jwk-jose@0.2.3
24
+ - @atproto-labs/pipe@0.2.3
25
+ - @atproto/jwk@0.7.3
26
+ - @atproto/common@0.6.5
27
+ - @atproto/did@0.5.3
28
+
29
+ ## 0.19.7
30
+
31
+ ### Patch Changes
32
+
33
+ - Updated dependencies []:
34
+ - @atproto/lex-resolver@0.1.3
35
+
3
36
  ## 0.19.6
4
37
 
5
38
  ### Patch Changes
@@ -86,12 +86,12 @@ export function buildErrorPayload(error) {
86
86
  function isBoom(v) {
87
87
  return (v instanceof Error &&
88
88
  v.isBoom === true &&
89
- isHttpErrorCode(v['output']?.['statusCode']));
89
+ isHttpErrorCode(v.output?.statusCode));
90
90
  }
91
91
  function isXrpcError(v) {
92
92
  return (v instanceof Error &&
93
- isHttpErrorCode(v['type']) &&
94
- isPayloadLike(v['payload']));
93
+ isHttpErrorCode(v.type) &&
94
+ isPayloadLike(v.payload));
95
95
  }
96
96
  function isHttpErrorCode(v) {
97
97
  return typeof v === 'number' && v >= 400 && v < 600 && v === (v | 0);
@@ -99,7 +99,7 @@ function isHttpErrorCode(v) {
99
99
  function isPayloadLike(v) {
100
100
  return (v != null &&
101
101
  typeof v === 'object' &&
102
- typeof v['error'] === 'string' &&
103
- typeof v['message'] === 'string');
102
+ typeof v.error === 'string' &&
103
+ typeof v.message === 'string');
104
104
  }
105
105
  //# sourceMappingURL=error-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-parser.js","sourceRoot":"","sources":["../../src/errors/error-parser.ts"],"names":[],"mappings":"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","sourcesContent":["import { errors } from 'jose'\nimport { ZodError } from 'zod'\nimport { JwtVerifyError } from '@atproto/jwk'\nimport { formatZodError } from '../lib/util/zod-error.js'\nimport { OAuthError } from './oauth-error.js'\n\nconst { JOSEError } = errors\n\nconst INVALID_REQUEST = 'invalid_request'\nconst SERVER_ERROR = 'server_error'\n\nexport function buildErrorStatus(error: unknown): number {\n if (error instanceof OAuthError) {\n return error.statusCode\n }\n\n if (error instanceof JwtVerifyError) {\n return 400\n }\n\n if (error instanceof ZodError) {\n return 400\n }\n\n if (error instanceof JOSEError) {\n return 400\n }\n\n if (error instanceof TypeError) {\n return 400\n }\n\n if (isBoom(error)) {\n return error.output.statusCode\n }\n\n if (isXrpcError(error)) {\n return error.type\n }\n\n const status = (error as any)?.status\n if (\n typeof status === 'number' &&\n status === (status | 0) &&\n status >= 400 &&\n status < 600\n ) {\n return status\n }\n\n return 500\n}\n\nexport type ErrorPayload = {\n error: string\n error_description: string\n}\n\nexport function buildErrorPayload(error: unknown): ErrorPayload {\n if (error instanceof OAuthError) {\n return error.toJSON()\n }\n\n if (error instanceof ZodError) {\n return {\n error: INVALID_REQUEST,\n error_description: formatZodError(error, 'Validation error'),\n }\n }\n\n if (error instanceof JOSEError) {\n return {\n error: INVALID_REQUEST,\n error_description: error.message,\n }\n }\n\n if (error instanceof TypeError) {\n return {\n error: INVALID_REQUEST,\n error_description: error.message,\n }\n }\n\n if (isBoom(error)) {\n return {\n error: error.output.statusCode <= 500 ? INVALID_REQUEST : SERVER_ERROR,\n error_description:\n error.output.statusCode <= 500\n ? isPayloadLike(error.output?.payload)\n ? error.output.payload.message\n : error.message\n : 'Server error',\n }\n }\n\n if (isXrpcError(error)) {\n return {\n error: error.type <= 500 ? INVALID_REQUEST : SERVER_ERROR,\n error_description: error.payload.message,\n }\n }\n\n const status = buildErrorStatus(error)\n return {\n error: status < 500 ? INVALID_REQUEST : SERVER_ERROR,\n error_description:\n error instanceof Error && (error as any)?.expose === true\n ? error.message\n : 'Server error',\n }\n}\n\nfunction isBoom(v: unknown): v is Error & {\n isBoom: true\n output: { statusCode: number; payload: unknown }\n} {\n return (\n v instanceof Error &&\n (v as any).isBoom === true &&\n isHttpErrorCode(v['output']?.['statusCode'])\n )\n}\n\nfunction isXrpcError(v: unknown): v is Error & {\n type: number\n payload: { error: string; message: string }\n} {\n return (\n v instanceof Error &&\n isHttpErrorCode(v['type']) &&\n isPayloadLike(v['payload'])\n )\n}\n\nfunction isHttpErrorCode(v: unknown): v is number {\n return typeof v === 'number' && v >= 400 && v < 600 && v === (v | 0)\n}\n\nfunction isPayloadLike(v: unknown): v is { error: string; message: string } {\n return (\n v != null &&\n typeof v === 'object' &&\n typeof v['error'] === 'string' &&\n typeof v['message'] === 'string'\n )\n}\n"]}
1
+ {"version":3,"file":"error-parser.js","sourceRoot":"","sources":["../../src/errors/error-parser.ts"],"names":[],"mappings":"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","sourcesContent":["import { errors } from 'jose'\nimport { ZodError } from 'zod'\nimport { JwtVerifyError } from '@atproto/jwk'\nimport { formatZodError } from '../lib/util/zod-error.js'\nimport { OAuthError } from './oauth-error.js'\n\nconst { JOSEError } = errors\n\nconst INVALID_REQUEST = 'invalid_request'\nconst SERVER_ERROR = 'server_error'\n\nexport function buildErrorStatus(error: unknown): number {\n if (error instanceof OAuthError) {\n return error.statusCode\n }\n\n if (error instanceof JwtVerifyError) {\n return 400\n }\n\n if (error instanceof ZodError) {\n return 400\n }\n\n if (error instanceof JOSEError) {\n return 400\n }\n\n if (error instanceof TypeError) {\n return 400\n }\n\n if (isBoom(error)) {\n return error.output.statusCode\n }\n\n if (isXrpcError(error)) {\n return error.type\n }\n\n const status = (error as any)?.status\n if (\n typeof status === 'number' &&\n status === (status | 0) &&\n status >= 400 &&\n status < 600\n ) {\n return status\n }\n\n return 500\n}\n\nexport type ErrorPayload = {\n error: string\n error_description: string\n}\n\nexport function buildErrorPayload(error: unknown): ErrorPayload {\n if (error instanceof OAuthError) {\n return error.toJSON()\n }\n\n if (error instanceof ZodError) {\n return {\n error: INVALID_REQUEST,\n error_description: formatZodError(error, 'Validation error'),\n }\n }\n\n if (error instanceof JOSEError) {\n return {\n error: INVALID_REQUEST,\n error_description: error.message,\n }\n }\n\n if (error instanceof TypeError) {\n return {\n error: INVALID_REQUEST,\n error_description: error.message,\n }\n }\n\n if (isBoom(error)) {\n return {\n error: error.output.statusCode <= 500 ? INVALID_REQUEST : SERVER_ERROR,\n error_description:\n error.output.statusCode <= 500\n ? isPayloadLike(error.output?.payload)\n ? error.output.payload.message\n : error.message\n : 'Server error',\n }\n }\n\n if (isXrpcError(error)) {\n return {\n error: error.type <= 500 ? INVALID_REQUEST : SERVER_ERROR,\n error_description: error.payload.message,\n }\n }\n\n const status = buildErrorStatus(error)\n return {\n error: status < 500 ? INVALID_REQUEST : SERVER_ERROR,\n error_description:\n error instanceof Error && (error as any)?.expose === true\n ? error.message\n : 'Server error',\n }\n}\n\nfunction isBoom(v: unknown): v is Error & {\n isBoom: true\n output: { statusCode: number; payload: unknown }\n} {\n return (\n v instanceof Error &&\n (v as any).isBoom === true &&\n isHttpErrorCode((v as any).output?.statusCode)\n )\n}\n\nfunction isXrpcError(v: unknown): v is Error & {\n type: number\n payload: { error: string; message: string }\n} {\n return (\n v instanceof Error &&\n isHttpErrorCode((v as any).type) &&\n isPayloadLike((v as any).payload)\n )\n}\n\nfunction isHttpErrorCode(v: unknown): v is number {\n return typeof v === 'number' && v >= 400 && v < 600 && v === (v | 0)\n}\n\nfunction isPayloadLike(v: unknown): v is { error: string; message: string } {\n return (\n v != null &&\n typeof v === 'object' &&\n typeof (v as any).error === 'string' &&\n typeof (v as any).message === 'string'\n )\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/oauth-provider",
3
- "version": "0.19.6",
3
+ "version": "0.19.8",
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,6 +18,10 @@
18
18
  "url": "https://github.com/bluesky-social/atproto",
19
19
  "directory": "packages/oauth/oauth-provider"
20
20
  },
21
+ "files": [
22
+ "./dist",
23
+ "./CHANGELOG.md"
24
+ ],
21
25
  "type": "module",
22
26
  "exports": {
23
27
  ".": {
@@ -40,29 +44,29 @@
40
44
  "ioredis": "^5.3.2",
41
45
  "jose": "^5.2.0",
42
46
  "zod": "^3.23.8",
43
- "@atproto-labs/fetch": "^0.3.2",
44
- "@atproto-labs/pipe": "^0.2.2",
45
- "@atproto-labs/fetch-node": "^0.3.3",
46
- "@atproto-labs/simple-store": "^0.4.2",
47
- "@atproto-labs/simple-store-memory": "^0.2.2",
48
- "@atproto/common": "^0.6.4",
49
- "@atproto/did": "^0.5.2",
50
- "@atproto/jwk": "^0.7.2",
51
- "@atproto/lex-document": "^0.1.2",
52
- "@atproto/lex-resolver": "^0.1.2",
53
- "@atproto/jwk-jose": "^0.2.2",
54
- "@atproto/oauth-provider-api": "0.7.2",
55
- "@atproto/oauth-types": "^0.7.3",
56
- "@atproto/oauth-provider-ui": "0.8.3",
57
- "@atproto/oauth-scopes": "^0.5.2",
58
- "@atproto/syntax": "^0.6.3"
47
+ "@atproto-labs/fetch": "^0.3.3",
48
+ "@atproto-labs/fetch-node": "^0.3.4",
49
+ "@atproto-labs/pipe": "^0.2.3",
50
+ "@atproto-labs/simple-store-memory": "^0.2.3",
51
+ "@atproto/common": "^0.6.5",
52
+ "@atproto-labs/simple-store": "^0.4.3",
53
+ "@atproto/did": "^0.5.3",
54
+ "@atproto/jwk": "^0.7.3",
55
+ "@atproto/lex-resolver": "^0.1.4",
56
+ "@atproto/lex-document": "^0.1.3",
57
+ "@atproto/oauth-provider-api": "0.7.3",
58
+ "@atproto/oauth-types": "^0.7.4",
59
+ "@atproto/oauth-provider-ui": "0.8.4",
60
+ "@atproto/oauth-scopes": "^0.5.3",
61
+ "@atproto/jwk-jose": "^0.2.3",
62
+ "@atproto/syntax": "^0.6.4"
59
63
  },
60
64
  "devDependencies": {
61
65
  "@types/cookie": "^0.6.0",
62
66
  "@types/forwarded": "0.1.3",
63
67
  "@types/http-errors": "^2.0.4",
64
68
  "@types/send": "^0.17.4",
65
- "@atproto-labs/rollup-plugin-bundle-manifest": "^0.3.2"
69
+ "@atproto-labs/rollup-plugin-bundle-manifest": "^0.3.3"
66
70
  },
67
71
  "scripts": {
68
72
  "build": "tsgo --build tsconfig.build.json"
@@ -1,4 +0,0 @@
1
- export enum AccessTokenMode {
2
- stateless = 'stateless',
3
- stateful = 'stateful',
4
- }