@atproto/oauth-provider 0.2.17 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/client/client-manager.d.ts.map +1 -1
  3. package/dist/client/client-manager.js +6 -8
  4. package/dist/client/client-manager.js.map +1 -1
  5. package/dist/device/device-data.d.ts +7 -8
  6. package/dist/device/device-data.d.ts.map +1 -1
  7. package/dist/device/device-data.js +3 -2
  8. package/dist/device/device-data.js.map +1 -1
  9. package/dist/device/device-manager.d.ts +104 -19
  10. package/dist/device/device-manager.d.ts.map +1 -1
  11. package/dist/device/device-manager.js +43 -30
  12. package/dist/device/device-manager.js.map +1 -1
  13. package/dist/lib/http/accept.d.ts +2 -1
  14. package/dist/lib/http/accept.d.ts.map +1 -1
  15. package/dist/lib/http/accept.js.map +1 -1
  16. package/dist/lib/http/method.d.ts +1 -1
  17. package/dist/lib/http/method.d.ts.map +1 -1
  18. package/dist/lib/http/request.d.ts +10 -1
  19. package/dist/lib/http/request.d.ts.map +1 -1
  20. package/dist/lib/http/request.js +38 -0
  21. package/dist/lib/http/request.js.map +1 -1
  22. package/dist/lib/http/response.d.ts +3 -2
  23. package/dist/lib/http/response.d.ts.map +1 -1
  24. package/dist/lib/http/response.js.map +1 -1
  25. package/dist/lib/http/route.d.ts +2 -1
  26. package/dist/lib/http/route.d.ts.map +1 -1
  27. package/dist/lib/http/route.js.map +1 -1
  28. package/dist/lib/http/router.d.ts +2 -1
  29. package/dist/lib/http/router.d.ts.map +1 -1
  30. package/dist/lib/http/router.js.map +1 -1
  31. package/dist/lib/http/stream.d.ts +1 -1
  32. package/dist/lib/http/stream.d.ts.map +1 -1
  33. package/dist/lib/http/types.d.ts +0 -1
  34. package/dist/lib/http/types.d.ts.map +1 -1
  35. package/dist/lib/util/function.d.ts +8 -0
  36. package/dist/lib/util/function.d.ts.map +1 -1
  37. package/dist/lib/util/function.js +1 -1
  38. package/dist/lib/util/function.js.map +1 -1
  39. package/dist/lib/util/time.d.ts +7 -1
  40. package/dist/lib/util/time.d.ts.map +1 -1
  41. package/dist/lib/util/time.js +23 -12
  42. package/dist/lib/util/time.js.map +1 -1
  43. package/dist/oauth-hooks.d.ts +56 -4
  44. package/dist/oauth-hooks.d.ts.map +1 -1
  45. package/dist/oauth-hooks.js +8 -0
  46. package/dist/oauth-hooks.js.map +1 -1
  47. package/dist/oauth-provider.d.ts +10 -7
  48. package/dist/oauth-provider.d.ts.map +1 -1
  49. package/dist/oauth-provider.js +24 -23
  50. package/dist/oauth-provider.js.map +1 -1
  51. package/dist/output/output-manager.d.ts +1 -1
  52. package/dist/output/output-manager.d.ts.map +1 -1
  53. package/dist/output/send-authorize-redirect.d.ts +1 -1
  54. package/dist/output/send-authorize-redirect.d.ts.map +1 -1
  55. package/dist/output/send-web-page.d.ts +1 -1
  56. package/dist/output/send-web-page.d.ts.map +1 -1
  57. package/dist/request/request-manager.d.ts +2 -1
  58. package/dist/request/request-manager.d.ts.map +1 -1
  59. package/dist/request/request-manager.js +9 -1
  60. package/dist/request/request-manager.js.map +1 -1
  61. package/dist/token/token-manager.d.ts +3 -2
  62. package/dist/token/token-manager.d.ts.map +1 -1
  63. package/dist/token/token-manager.js +39 -24
  64. package/dist/token/token-manager.js.map +1 -1
  65. package/package.json +2 -4
  66. package/src/client/client-manager.ts +9 -11
  67. package/src/device/device-data.ts +3 -2
  68. package/src/device/device-manager.ts +93 -75
  69. package/src/lib/http/accept.ts +2 -6
  70. package/src/lib/http/method.ts +1 -1
  71. package/src/lib/http/request.ts +64 -1
  72. package/src/lib/http/response.ts +3 -2
  73. package/src/lib/http/route.ts +2 -1
  74. package/src/lib/http/router.ts +2 -1
  75. package/src/lib/http/stream.ts +1 -1
  76. package/src/lib/http/types.ts +0 -1
  77. package/src/lib/util/function.ts +19 -2
  78. package/src/lib/util/time.ts +35 -18
  79. package/src/oauth-hooks.ts +73 -13
  80. package/src/oauth-provider.ts +69 -28
  81. package/src/output/output-manager.ts +1 -1
  82. package/src/output/send-authorize-redirect.ts +1 -1
  83. package/src/output/send-web-page.ts +1 -1
  84. package/src/request/request-manager.ts +13 -2
  85. package/src/token/token-manager.ts +52 -23
  86. package/tsconfig.backend.tsbuildinfo +1 -1
  87. package/dist/device/device-details.d.ts +0 -16
  88. package/dist/device/device-details.d.ts.map +0 -1
  89. package/dist/device/device-details.js +0 -34
  90. package/dist/device/device-details.js.map +0 -1
  91. package/src/device/device-details.ts +0 -42
@@ -1 +0,0 @@
1
- {"version":3,"file":"device-details.js","sourceRoot":"","sources":["../../src/device/device-details.ts"],"names":[],"mappings":";;;AASA,oDAYC;AAED,4CAkBC;AAxCD,6BAAuB;AAEV,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAA;AAGF,SAAgB,oBAAoB,CAClC,GAAoB,EACpB,UAAmB;IAEnB,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAA;IACnD,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,IAAI,CAAA;IAE3D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;AACjC,CAAC;AAED,SAAgB,gBAAgB,CAC9B,GAAoB,EACpB,UAAmB;IAEnB,4BAA4B;IAC5B,IAAI,IAAI,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,GAAG,CAAC,EAAE,CAAA;IACf,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;QACnD,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAA;YACvD,IAAI,YAAY;gBAAE,OAAO,YAAY,CAAA;QACvC,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC,MAAM,CAAC,aAAa,CAAA;AACjC,CAAC"}
@@ -1,42 +0,0 @@
1
- import { IncomingMessage } from 'node:http'
2
- import { z } from 'zod'
3
-
4
- export const deviceDetailsSchema = z.object({
5
- userAgent: z.string().nullable(),
6
- ipAddress: z.string(),
7
- })
8
- export type DeviceDetails = z.infer<typeof deviceDetailsSchema>
9
-
10
- export function extractDeviceDetails(
11
- req: IncomingMessage,
12
- trustProxy: boolean,
13
- ): DeviceDetails {
14
- const userAgent = req.headers['user-agent'] || null
15
- const ipAddress = extractIpAddress(req, trustProxy) || null
16
-
17
- if (!ipAddress) {
18
- throw new Error('Could not determine IP address')
19
- }
20
-
21
- return { userAgent, ipAddress }
22
- }
23
-
24
- export function extractIpAddress(
25
- req: IncomingMessage,
26
- trustProxy: boolean,
27
- ): string | undefined {
28
- // Express app compatibility
29
- if ('ip' in req && typeof req.ip === 'string') {
30
- return req.ip
31
- }
32
-
33
- if (trustProxy) {
34
- const forwardedFor = req.headers['x-forwarded-for']
35
- if (typeof forwardedFor === 'string') {
36
- const firstForward = forwardedFor.split(',')[0]!.trim()
37
- if (firstForward) return firstForward
38
- }
39
- }
40
-
41
- return req.socket.remoteAddress
42
- }