@atproto/oauth-types 0.4.1 → 0.4.2

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 (97) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/atproto-loopback-client-id.d.ts +14 -0
  3. package/dist/atproto-loopback-client-id.d.ts.map +1 -0
  4. package/dist/atproto-loopback-client-id.js +43 -0
  5. package/dist/atproto-loopback-client-id.js.map +1 -0
  6. package/dist/atproto-loopback-client-metadata.d.ts +8 -1
  7. package/dist/atproto-loopback-client-metadata.d.ts.map +1 -1
  8. package/dist/atproto-loopback-client-metadata.js +13 -4
  9. package/dist/atproto-loopback-client-metadata.js.map +1 -1
  10. package/dist/atproto-loopback-client-redirect-uris.d.ts +2 -0
  11. package/dist/atproto-loopback-client-redirect-uris.d.ts.map +1 -0
  12. package/dist/atproto-loopback-client-redirect-uris.js +8 -0
  13. package/dist/atproto-loopback-client-redirect-uris.js.map +1 -0
  14. package/dist/atproto-oauth-scope.d.ts +12 -0
  15. package/dist/atproto-oauth-scope.d.ts.map +1 -0
  16. package/dist/atproto-oauth-scope.js +27 -0
  17. package/dist/atproto-oauth-scope.js.map +1 -0
  18. package/dist/atproto-oauth-token-response.d.ts +106 -0
  19. package/dist/atproto-oauth-token-response.d.ts.map +1 -0
  20. package/dist/atproto-oauth-token-response.js +15 -0
  21. package/dist/atproto-oauth-token-response.js.map +1 -0
  22. package/dist/constants.js.map +1 -1
  23. package/dist/index.d.ts +5 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +5 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/oauth-access-token.js.map +1 -1
  28. package/dist/oauth-authorization-code-grant-token-request.js.map +1 -1
  29. package/dist/oauth-authorization-details.js.map +1 -1
  30. package/dist/oauth-authorization-request-jar.js.map +1 -1
  31. package/dist/oauth-authorization-request-par.d.ts +12 -12
  32. package/dist/oauth-authorization-request-par.js.map +1 -1
  33. package/dist/oauth-authorization-request-parameters.d.ts +12 -12
  34. package/dist/oauth-authorization-request-parameters.js.map +1 -1
  35. package/dist/oauth-authorization-request-query.d.ts +12 -12
  36. package/dist/oauth-authorization-request-query.js.map +1 -1
  37. package/dist/oauth-authorization-request-uri.js.map +1 -1
  38. package/dist/oauth-authorization-response-error.js.map +1 -1
  39. package/dist/oauth-authorization-server-metadata.js.map +1 -1
  40. package/dist/oauth-client-credentials-grant-token-request.js.map +1 -1
  41. package/dist/oauth-client-credentials.js.map +1 -1
  42. package/dist/oauth-client-id-discoverable.js.map +1 -1
  43. package/dist/oauth-client-id-loopback.d.ts +24 -8
  44. package/dist/oauth-client-id-loopback.d.ts.map +1 -1
  45. package/dist/oauth-client-id-loopback.js +97 -60
  46. package/dist/oauth-client-id-loopback.js.map +1 -1
  47. package/dist/oauth-client-id.js.map +1 -1
  48. package/dist/oauth-client-metadata.d.ts +160 -1098
  49. package/dist/oauth-client-metadata.d.ts.map +1 -1
  50. package/dist/oauth-client-metadata.js.map +1 -1
  51. package/dist/oauth-code-challenge-method.js.map +1 -1
  52. package/dist/oauth-endpoint-auth-method.js.map +1 -1
  53. package/dist/oauth-endpoint-name.js.map +1 -1
  54. package/dist/oauth-grant-type.js.map +1 -1
  55. package/dist/oauth-introspection-response.js.map +1 -1
  56. package/dist/oauth-issuer-identifier.js.map +1 -1
  57. package/dist/oauth-par-response.d.ts +2 -2
  58. package/dist/oauth-par-response.js.map +1 -1
  59. package/dist/oauth-password-grant-token-request.js.map +1 -1
  60. package/dist/oauth-protected-resource-metadata.js.map +1 -1
  61. package/dist/oauth-redirect-uri.js.map +1 -1
  62. package/dist/oauth-refresh-token-grant-token-request.js.map +1 -1
  63. package/dist/oauth-refresh-token.js.map +1 -1
  64. package/dist/oauth-request-uri.js.map +1 -1
  65. package/dist/oauth-response-mode.js.map +1 -1
  66. package/dist/oauth-response-type.js.map +1 -1
  67. package/dist/oauth-scope.d.ts +5 -3
  68. package/dist/oauth-scope.d.ts.map +1 -1
  69. package/dist/oauth-scope.js +11 -8
  70. package/dist/oauth-scope.js.map +1 -1
  71. package/dist/oauth-token-identification.js.map +1 -1
  72. package/dist/oauth-token-request.js.map +1 -1
  73. package/dist/oauth-token-response.js.map +1 -1
  74. package/dist/oauth-token-type.js.map +1 -1
  75. package/dist/oidc-authorization-error-response.js.map +1 -1
  76. package/dist/oidc-claims-parameter.js.map +1 -1
  77. package/dist/oidc-claims-properties.js.map +1 -1
  78. package/dist/oidc-entity-type.js.map +1 -1
  79. package/dist/oidc-userinfo.js.map +1 -1
  80. package/dist/uri.js +1 -1
  81. package/dist/uri.js.map +1 -1
  82. package/dist/util.d.ts +9 -0
  83. package/dist/util.d.ts.map +1 -1
  84. package/dist/util.js +50 -1
  85. package/dist/util.js.map +1 -1
  86. package/package.json +3 -2
  87. package/src/atproto-loopback-client-id.ts +75 -0
  88. package/src/atproto-loopback-client-metadata.ts +33 -13
  89. package/src/atproto-loopback-client-redirect-uris.ts +4 -0
  90. package/src/atproto-oauth-scope.ts +34 -0
  91. package/src/atproto-oauth-token-response.ts +16 -0
  92. package/src/index.ts +5 -1
  93. package/src/oauth-client-id-loopback.ts +130 -72
  94. package/src/oauth-scope.ts +13 -7
  95. package/src/uri.ts +1 -1
  96. package/src/util.ts +60 -0
  97. package/tsconfig.build.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-client-metadata.d.ts","sourceRoot":"","sources":["../src/oauth-client-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth-client-metadata.d.ts","sourceRoot":"","sources":["../src/oauth-client-metadata.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-client-metadata.js","sourceRoot":"","sources":["../src/oauth-client-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth-client-metadata.js","sourceRoot":"","sources":["../src/oauth-client-metadata.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod'\nimport { jwksPubSchema } from '@atproto/jwk'\nimport { oauthClientIdSchema } from './oauth-client-id.js'\nimport { oauthEndpointAuthMethod } from './oauth-endpoint-auth-method.js'\nimport { oauthGrantTypeSchema } from './oauth-grant-type.js'\nimport { oauthRedirectUriSchema } from './oauth-redirect-uri.js'\nimport { oauthResponseTypeSchema } from './oauth-response-type.js'\nimport { oauthScopeSchema } from './oauth-scope.js'\nimport { webUriSchema } from './uri.js'\n\n/**\n * @see {@link https://openid.net/specs/openid-connect-registration-1_0.html}\n * @see {@link https://datatracker.ietf.org/doc/html/rfc7591}\n * @note we do not enforce https: scheme in URIs to support development\n * environments. Make sure to validate the URIs before using it in a production\n * environment.\n */\nexport const oauthClientMetadataSchema = z.object({\n /**\n * @note redirect_uris require additional validation\n */\n // https://www.rfc-editor.org/rfc/rfc7591.html#section-2\n redirect_uris: z.array(oauthRedirectUriSchema).nonempty(),\n response_types: z\n .array(oauthResponseTypeSchema)\n .nonempty()\n // > If omitted, the default is that the client will use only the \"code\"\n // > response type.\n .default(['code']),\n grant_types: z\n .array(oauthGrantTypeSchema)\n .nonempty()\n // > If omitted, the default behavior is that the client will use only the\n // > \"authorization_code\" Grant Type.\n .default(['authorization_code']),\n scope: oauthScopeSchema.optional(),\n // https://www.rfc-editor.org/rfc/rfc7591.html#section-2\n token_endpoint_auth_method: oauthEndpointAuthMethod\n // > If unspecified or omitted, the default is \"client_secret_basic\" [...].\n .default('client_secret_basic'),\n token_endpoint_auth_signing_alg: z.string().optional(),\n userinfo_signed_response_alg: z.string().optional(),\n userinfo_encrypted_response_alg: z.string().optional(),\n jwks_uri: webUriSchema.optional(),\n jwks: jwksPubSchema.optional(),\n application_type: z.enum(['web', 'native']).default('web'), // default, per spec, is \"web\"\n subject_type: z.enum(['public', 'pairwise']).default('public'),\n request_object_signing_alg: z.string().optional(),\n id_token_signed_response_alg: z.string().optional(),\n authorization_signed_response_alg: z.string().default('RS256'),\n authorization_encrypted_response_enc: z.enum(['A128CBC-HS256']).optional(),\n authorization_encrypted_response_alg: z.string().optional(),\n client_id: oauthClientIdSchema.optional(),\n client_name: z.string().optional(),\n client_uri: webUriSchema.optional(),\n policy_uri: webUriSchema.optional(),\n tos_uri: webUriSchema.optional(),\n logo_uri: webUriSchema.optional(), // @TODO: allow data: uri ?\n\n /**\n * Default Maximum Authentication Age. Specifies that the End-User MUST be\n * actively authenticated if the End-User was authenticated longer ago than\n * the specified number of seconds. The max_age request parameter overrides\n * this default value. If omitted, no default Maximum Authentication Age is\n * specified.\n */\n default_max_age: z.number().optional(),\n require_auth_time: z.boolean().optional(),\n contacts: z.array(z.string().email()).optional(),\n tls_client_certificate_bound_access_tokens: z.boolean().optional(),\n\n // https://datatracker.ietf.org/doc/html/rfc9449#section-5.2\n dpop_bound_access_tokens: z.boolean().optional(),\n\n // https://datatracker.ietf.org/doc/html/rfc9396#section-14.5\n authorization_details_types: z.array(z.string()).optional(),\n})\n\nexport type OAuthClientMetadata = z.infer<typeof oauthClientMetadataSchema>\nexport type OAuthClientMetadataInput = z.input<typeof oauthClientMetadataSchema>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-code-challenge-method.js","sourceRoot":"","sources":["../src/oauth-code-challenge-method.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,8BAA8B,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"oauth-code-challenge-method.js","sourceRoot":"","sources":["../src/oauth-code-challenge-method.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,8BAA8B,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const oauthCodeChallengeMethodSchema = z.enum(['S256', 'plain'])\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-endpoint-auth-method.js","sourceRoot":"","sources":["../src/oauth-endpoint-auth-method.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,uBAAuB,GAAG,OAAC,CAAC,IAAI,CAAC;IAC5C,qBAAqB;IACrB,mBAAmB;IACnB,oBAAoB;IACpB,MAAM;IACN,iBAAiB;IACjB,6BAA6B;IAC7B,iBAAiB;CAClB,CAAC,CAAA"}
1
+ {"version":3,"file":"oauth-endpoint-auth-method.js","sourceRoot":"","sources":["../src/oauth-endpoint-auth-method.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,uBAAuB,GAAG,OAAC,CAAC,IAAI,CAAC;IAC5C,qBAAqB;IACrB,mBAAmB;IACnB,oBAAoB;IACpB,MAAM;IACN,iBAAiB;IACjB,6BAA6B;IAC7B,iBAAiB;CAClB,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const oauthEndpointAuthMethod = z.enum([\n 'client_secret_basic',\n 'client_secret_jwt',\n 'client_secret_post',\n 'none',\n 'private_key_jwt',\n 'self_signed_tls_client_auth',\n 'tls_client_auth',\n])\n\nexport type OauthEndpointAuthMethod = z.infer<typeof oauthEndpointAuthMethod>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-endpoint-name.js","sourceRoot":"","sources":["../src/oauth-endpoint-name.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG;IAClC,OAAO;IACP,YAAY;IACZ,eAAe;IACf,8BAA8B;CACtB,CAAA"}
1
+ {"version":3,"file":"oauth-endpoint-name.js","sourceRoot":"","sources":["../src/oauth-endpoint-name.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG;IAClC,OAAO;IACP,YAAY;IACZ,eAAe;IACf,8BAA8B;CACtB,CAAA","sourcesContent":["export const OAUTH_ENDPOINT_NAMES = [\n 'token',\n 'revocation',\n 'introspection',\n 'pushed_authorization_request',\n] as const\n\nexport type OAuthEndpointName = (typeof OAUTH_ENDPOINT_NAMES)[number]\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-grant-type.js","sourceRoot":"","sources":["../src/oauth-grant-type.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,oBAAoB,GAAG,OAAC,CAAC,IAAI,CAAC;IACzC,oBAAoB;IACpB,UAAU;IACV,eAAe;IACf,UAAU,EAAE,wBAAwB;IACpC,oBAAoB;IACpB,6CAA6C;IAC7C,+CAA+C;CAChD,CAAC,CAAA"}
1
+ {"version":3,"file":"oauth-grant-type.js","sourceRoot":"","sources":["../src/oauth-grant-type.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,oBAAoB,GAAG,OAAC,CAAC,IAAI,CAAC;IACzC,oBAAoB;IACpB,UAAU;IACV,eAAe;IACf,UAAU,EAAE,wBAAwB;IACpC,oBAAoB;IACpB,6CAA6C;IAC7C,+CAA+C;CAChD,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const oauthGrantTypeSchema = z.enum([\n 'authorization_code',\n 'implicit',\n 'refresh_token',\n 'password', // Not part of OAuth 2.1\n 'client_credentials',\n 'urn:ietf:params:oauth:grant-type:jwt-bearer',\n 'urn:ietf:params:oauth:grant-type:saml2-bearer',\n])\n\nexport type OAuthGrantType = z.infer<typeof oauthGrantTypeSchema>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-introspection-response.js","sourceRoot":"","sources":["../src/oauth-introspection-response.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"oauth-introspection-response.js","sourceRoot":"","sources":["../src/oauth-introspection-response.ts"],"names":[],"mappings":"","sourcesContent":["import { OAuthAuthorizationDetails } from './oauth-authorization-details.js'\nimport { OAuthTokenType } from './oauth-token-type.js'\n\n// https://datatracker.ietf.org/doc/html/rfc7662#section-2.2\nexport type OAuthIntrospectionResponse =\n | { active: false }\n | {\n active: true\n\n scope?: string\n client_id?: string\n username?: string\n token_type?: OAuthTokenType\n authorization_details?: OAuthAuthorizationDetails\n\n aud?: string | [string, ...string[]]\n exp?: number\n iat?: number\n iss?: string\n jti?: string\n nbf?: number\n sub?: string\n }\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-issuer-identifier.js","sourceRoot":"","sources":["../src/oauth-issuer-identifier.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,qCAAuC;AAE1B,QAAA,2BAA2B,GAAG,qBAAY,CAAC,WAAW,CACjE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACb,uCAAuC;IAEvC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,sCAAsC;SAChD,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IAE1B,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjC,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,oDAAoD;SAC9D,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3B,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,iDAAiD;SAC3D,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAA;IACnE,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;QAC7B,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,0CAA0C;SACpD,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CACF,CAAA"}
1
+ {"version":3,"file":"oauth-issuer-identifier.js","sourceRoot":"","sources":["../src/oauth-issuer-identifier.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,qCAAuC;AAE1B,QAAA,2BAA2B,GAAG,qBAAY,CAAC,WAAW,CACjE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACb,uCAAuC;IAEvC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,sCAAsC;SAChD,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IAE1B,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjC,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,oDAAoD;SAC9D,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3B,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,iDAAiD;SAC3D,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAA;IACnE,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;QAC7B,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,0CAA0C;SACpD,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CACF,CAAA","sourcesContent":["import { z } from 'zod'\nimport { webUriSchema } from './uri.js'\n\nexport const oauthIssuerIdentifierSchema = webUriSchema.superRefine(\n (value, ctx) => {\n // Validate the issuer (MIX-UP attacks)\n\n if (value.endsWith('/')) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Issuer URL must not end with a slash',\n })\n return false\n }\n\n const url = new URL(value)\n\n if (url.username || url.password) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Issuer URL must not contain a username or password',\n })\n return false\n }\n\n if (url.hash || url.search) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Issuer URL must not contain a query or fragment',\n })\n return false\n }\n\n const canonicalValue = url.pathname === '/' ? url.origin : url.href\n if (value !== canonicalValue) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Issuer URL must be in the canonical form',\n })\n return false\n }\n\n return true\n },\n)\n\nexport type OAuthIssuerIdentifier = z.infer<typeof oauthIssuerIdentifierSchema>\n"]}
@@ -3,11 +3,11 @@ export declare const oauthParResponseSchema: z.ZodObject<{
3
3
  request_uri: z.ZodString;
4
4
  expires_in: z.ZodNumber;
5
5
  }, "strip", z.ZodTypeAny, {
6
- request_uri: string;
7
6
  expires_in: number;
8
- }, {
9
7
  request_uri: string;
8
+ }, {
10
9
  expires_in: number;
10
+ request_uri: string;
11
11
  }>;
12
12
  export type OAuthParResponse = z.infer<typeof oauthParResponseSchema>;
13
13
  //# sourceMappingURL=oauth-par-response.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-par-response.js","sourceRoot":"","sources":["../src/oauth-par-response.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAA"}
1
+ {"version":3,"file":"oauth-par-response.js","sourceRoot":"","sources":["../src/oauth-par-response.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const oauthParResponseSchema = z.object({\n request_uri: z.string(),\n expires_in: z.number().int().positive(),\n})\n\nexport type OAuthParResponse = z.infer<typeof oauthParResponseSchema>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-password-grant-token-request.js","sourceRoot":"","sources":["../src/oauth-password-grant-token-request.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,oCAAoC,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3D,UAAU,EAAE,OAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IACjC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAA"}
1
+ {"version":3,"file":"oauth-password-grant-token-request.js","sourceRoot":"","sources":["../src/oauth-password-grant-token-request.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,oCAAoC,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3D,UAAU,EAAE,OAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IACjC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const oauthPasswordGrantTokenRequestSchema = z.object({\n grant_type: z.literal('password'),\n username: z.string(),\n password: z.string(),\n})\n\nexport type OAuthPasswordGrantTokenRequest = z.infer<\n typeof oauthPasswordGrantTokenRequestSchema\n>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-protected-resource-metadata.js","sourceRoot":"","sources":["../src/oauth-protected-resource-metadata.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,6EAA0E;AAC1E,qCAAuC;AAEvC;;GAEG;AACU,QAAA,oCAAoC,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3D;;;;;;;OAOG;IACH,QAAQ,EAAE,qBAAY;SACnB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACnC,OAAO,EAAE,gDAAgD;KAC1D,CAAC;SACD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACnC,OAAO,EAAE,0CAA0C;KACpD,CAAC;IAEJ;;;;;;;OAOG;IACH,qBAAqB,EAAE,OAAC,CAAC,KAAK,CAAC,wDAA2B,CAAC,CAAC,QAAQ,EAAE;IAEtE;;;;;;;OAOG;IACH,QAAQ,EAAE,qBAAY,CAAC,QAAQ,EAAE;IAEjC;;;;;OAKG;IACH,gBAAgB,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAEhD;;;;;OAKG;IACH,wBAAwB,EAAE,OAAC;SACxB,KAAK,CAAC,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;SAC1C,QAAQ,EAAE;IAEb;;;;;;OAMG;IACH,qCAAqC,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAErE;;;OAGG;IACH,sBAAsB,EAAE,qBAAY,CAAC,QAAQ,EAAE;IAE/C;;;;OAIG;IACH,mBAAmB,EAAE,qBAAY,CAAC,QAAQ,EAAE;IAE5C;;;OAGG;IACH,gBAAgB,EAAE,qBAAY,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAA"}
1
+ {"version":3,"file":"oauth-protected-resource-metadata.js","sourceRoot":"","sources":["../src/oauth-protected-resource-metadata.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,6EAA0E;AAC1E,qCAAuC;AAEvC;;GAEG;AACU,QAAA,oCAAoC,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3D;;;;;;;OAOG;IACH,QAAQ,EAAE,qBAAY;SACnB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACnC,OAAO,EAAE,gDAAgD;KAC1D,CAAC;SACD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACnC,OAAO,EAAE,0CAA0C;KACpD,CAAC;IAEJ;;;;;;;OAOG;IACH,qBAAqB,EAAE,OAAC,CAAC,KAAK,CAAC,wDAA2B,CAAC,CAAC,QAAQ,EAAE;IAEtE;;;;;;;OAOG;IACH,QAAQ,EAAE,qBAAY,CAAC,QAAQ,EAAE;IAEjC;;;;;OAKG;IACH,gBAAgB,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAEhD;;;;;OAKG;IACH,wBAAwB,EAAE,OAAC;SACxB,KAAK,CAAC,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;SAC1C,QAAQ,EAAE;IAEb;;;;;;OAMG;IACH,qCAAqC,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAErE;;;OAGG;IACH,sBAAsB,EAAE,qBAAY,CAAC,QAAQ,EAAE;IAE/C;;;;OAIG;IACH,mBAAmB,EAAE,qBAAY,CAAC,QAAQ,EAAE;IAE5C;;;OAGG;IACH,gBAAgB,EAAE,qBAAY,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\nimport { oauthIssuerIdentifierSchema } from './oauth-issuer-identifier.js'\nimport { webUriSchema } from './uri.js'\n\n/**\n * @see {@link https://datatracker.ietf.org/doc/html/draft-ietf-oauth-resource-metadata-05#name-protected-resource-metadata-r}\n */\nexport const oauthProtectedResourceMetadataSchema = z.object({\n /**\n * REQUIRED. The protected resource's resource identifier, which is a URL that\n * uses the https scheme and has no query or fragment components. Using these\n * well-known resources is described in Section 3.\n *\n * @note This schema allows non https URLs for testing & development purposes.\n * Make sure to validate the URL before using it in a production environment.\n */\n resource: webUriSchema\n .refine((url) => !url.includes('?'), {\n message: 'Resource URL must not contain query parameters',\n })\n .refine((url) => !url.includes('#'), {\n message: 'Resource URL must not contain a fragment',\n }),\n\n /**\n * OPTIONAL. JSON array containing a list of OAuth authorization server issuer\n * identifiers, as defined in [RFC8414], for authorization servers that can be\n * used with this protected resource. Protected resources MAY choose not to\n * advertise some supported authorization servers even when this parameter is\n * used. In some use cases, the set of authorization servers will not be\n * enumerable, in which case this metadata parameter would not be used.\n */\n authorization_servers: z.array(oauthIssuerIdentifierSchema).optional(),\n\n /**\n * OPTIONAL. URL of the protected resource's JWK Set [JWK] document. This\n * contains public keys belonging to the protected resource, such as signing\n * key(s) that the resource server uses to sign resource responses. This URL\n * MUST use the https scheme. When both signing and encryption keys are made\n * available, a use (public key use) parameter value is REQUIRED for all keys\n * in the referenced JWK Set to indicate each key's intended usage.\n */\n jwks_uri: webUriSchema.optional(),\n\n /**\n * RECOMMENDED. JSON array containing a list of the OAuth 2.0 [RFC6749] scope\n * values that are used in authorization requests to request access to this\n * protected resource. Protected resources MAY choose not to advertise some\n * scope values supported even when this parameter is used.\n */\n scopes_supported: z.array(z.string()).optional(),\n\n /**\n * OPTIONAL. JSON array containing a list of the supported methods of sending\n * an OAuth 2.0 Bearer Token [RFC6750] to the protected resource. Defined\n * values are [\"header\", \"body\", \"query\"], corresponding to Sections 2.1, 2.2,\n * and 2.3 of RFC 6750.\n */\n bearer_methods_supported: z\n .array(z.enum(['header', 'body', 'query']))\n .optional(),\n\n /**\n * OPTIONAL. JSON array containing a list of the JWS [JWS] signing algorithms\n * (alg values) [JWA] supported by the protected resource for signing resource\n * responses, for instance, as described in [FAPI.MessageSigning]. No default\n * algorithms are implied if this entry is omitted. The value none MUST NOT be\n * used.\n */\n resource_signing_alg_values_supported: z.array(z.string()).optional(),\n\n /**\n * OPTIONAL. URL of a page containing human-readable information that\n * developers might want or need to know when using the protected resource\n */\n resource_documentation: webUriSchema.optional(),\n\n /**\n * OPTIONAL. URL that the protected resource provides to read about the\n * protected resource's requirements on how the client can use the data\n * provided by the protected resource\n */\n resource_policy_uri: webUriSchema.optional(),\n\n /**\n * OPTIONAL. URL that the protected resource provides to read about the\n * protected resource's terms of service\n */\n resource_tos_uri: webUriSchema.optional(),\n})\n\nexport type OAuthProtectedResourceMetadata = z.infer<\n typeof oauthProtectedResourceMetadataSchema\n>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-redirect-uri.js","sourceRoot":"","sources":["../src/oauth-redirect-uri.ts"],"names":[],"mappings":";;;AAAA,6BAA6C;AAC7C,qCAKiB;AAEJ,QAAA,8BAA8B,GAAG,0BAAiB,CAAC,WAAW,CACzE,CAAC,KAAK,EAAE,GAAG,EAA8D,EAAE;IACzE,IAAI,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACzC,4DAA4D;QAC5D,EAAE;QACF,+CAA+C;QAC/C,wEAAwE;QACxE,oEAAoE;QACpE,yEAAyE;QACzE,oEAAoE;QACpE,mEAAmE;QACnE,qEAAqE;QACrE,qCAAqC;QACrC,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,kBAAY,CAAC,MAAM;YACzB,OAAO,EACL,sGAAsG;SACzG,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CACF,CAAA;AAKY,QAAA,2BAA2B,GAAG,uBAAc,CAAA;AAG5C,QAAA,gCAAgC,GAAG,4BAAmB,CAAA;AAKtD,QAAA,sBAAsB,GAAG,OAAC,CAAC,KAAK,CAC3C;IACE,sCAA8B;IAC9B,mCAA2B;IAC3B,wCAAgC;CACjC,EACD;IACE,OAAO,EAAE,uFAAuF;CACjG,CACF,CAAA"}
1
+ {"version":3,"file":"oauth-redirect-uri.js","sourceRoot":"","sources":["../src/oauth-redirect-uri.ts"],"names":[],"mappings":";;;AAAA,6BAA6C;AAC7C,qCAKiB;AAEJ,QAAA,8BAA8B,GAAG,0BAAiB,CAAC,WAAW,CACzE,CAAC,KAAK,EAAE,GAAG,EAA8D,EAAE;IACzE,IAAI,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACzC,4DAA4D;QAC5D,EAAE;QACF,+CAA+C;QAC/C,wEAAwE;QACxE,oEAAoE;QACpE,yEAAyE;QACzE,oEAAoE;QACpE,mEAAmE;QACnE,qEAAqE;QACrE,qCAAqC;QACrC,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,kBAAY,CAAC,MAAM;YACzB,OAAO,EACL,sGAAsG;SACzG,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CACF,CAAA;AAKY,QAAA,2BAA2B,GAAG,uBAAc,CAAA;AAG5C,QAAA,gCAAgC,GAAG,4BAAmB,CAAA;AAKtD,QAAA,sBAAsB,GAAG,OAAC,CAAC,KAAK,CAC3C;IACE,sCAA8B;IAC9B,mCAA2B;IAC3B,wCAAgC;CACjC,EACD;IACE,OAAO,EAAE,uFAAuF;CACjG,CACF,CAAA","sourcesContent":["import { TypeOf, ZodIssueCode, z } from 'zod'\nimport {\n LoopbackUri,\n httpsUriSchema,\n loopbackUriSchema,\n privateUseUriSchema,\n} from './uri.js'\n\nexport const oauthLoopbackRedirectURISchema = loopbackUriSchema.superRefine(\n (value, ctx): value is Exclude<LoopbackUri, `http://localhost${string}`> => {\n if (value.startsWith('http://localhost')) {\n // https://datatracker.ietf.org/doc/html/rfc8252#section-8.3\n //\n // > While redirect URIs using localhost (i.e.,\n // > \"http://localhost:{port}/{path}\") function similarly to loopback IP\n // > redirects described in Section 7.3, the use of localhost is NOT\n // > RECOMMENDED. Specifying a redirect URI with the loopback IP literal\n // > rather than localhost avoids inadvertently listening on network\n // > interfaces other than the loopback interface. It is also less\n // > susceptible to client-side firewalls and misconfigured host name\n // > resolution on the user's device.\n ctx.addIssue({\n code: ZodIssueCode.custom,\n message:\n 'Use of \"localhost\" hostname is not allowed (RFC 8252), use a loopback IP such as \"127.0.0.1\" instead',\n })\n return false\n }\n\n return true\n },\n)\nexport type OAuthLoopbackRedirectURI = TypeOf<\n typeof oauthLoopbackRedirectURISchema\n>\n\nexport const oauthHttpsRedirectURISchema = httpsUriSchema\nexport type OAuthHttpsRedirectURI = TypeOf<typeof oauthHttpsRedirectURISchema>\n\nexport const oauthPrivateUseRedirectURISchema = privateUseUriSchema\nexport type OAuthPrivateUseRedirectURI = TypeOf<\n typeof oauthPrivateUseRedirectURISchema\n>\n\nexport const oauthRedirectUriSchema = z.union(\n [\n oauthLoopbackRedirectURISchema,\n oauthHttpsRedirectURISchema,\n oauthPrivateUseRedirectURISchema,\n ],\n {\n message: `URL must use the \"https:\" or \"http:\" protocol, or a private-use URI scheme (RFC 8252)`,\n },\n)\n\nexport type OAuthRedirectUri = TypeOf<typeof oauthRedirectUriSchema>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-refresh-token-grant-token-request.js","sourceRoot":"","sources":["../src/oauth-refresh-token-grant-token-request.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,qEAAkE;AAErD,QAAA,wCAAwC,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/D,UAAU,EAAE,OAAC,CAAC,OAAO,CAAC,eAAe,CAAC;IACtC,aAAa,EAAE,gDAAuB;CACvC,CAAC,CAAA"}
1
+ {"version":3,"file":"oauth-refresh-token-grant-token-request.js","sourceRoot":"","sources":["../src/oauth-refresh-token-grant-token-request.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,qEAAkE;AAErD,QAAA,wCAAwC,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/D,UAAU,EAAE,OAAC,CAAC,OAAO,CAAC,eAAe,CAAC;IACtC,aAAa,EAAE,gDAAuB;CACvC,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\nimport { oauthRefreshTokenSchema } from './oauth-refresh-token.js'\n\nexport const oauthRefreshTokenGrantTokenRequestSchema = z.object({\n grant_type: z.literal('refresh_token'),\n refresh_token: oauthRefreshTokenSchema,\n})\n\nexport type OAuthRefreshTokenGrantTokenRequest = z.infer<\n typeof oauthRefreshTokenGrantTokenRequestSchema\n>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-refresh-token.js","sourceRoot":"","sources":["../src/oauth-refresh-token.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"oauth-refresh-token.js","sourceRoot":"","sources":["../src/oauth-refresh-token.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const oauthRefreshTokenSchema = z.string().min(1)\nexport type OAuthRefreshToken = z.infer<typeof oauthRefreshTokenSchema>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-request-uri.js","sourceRoot":"","sources":["../src/oauth-request-uri.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,EAAE,CAAA"}
1
+ {"version":3,"file":"oauth-request-uri.js","sourceRoot":"","sources":["../src/oauth-request-uri.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,EAAE,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const oauthRequestUriSchema = z.string()\n\nexport type OAuthRequestUri = z.infer<typeof oauthRequestUriSchema>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-response-mode.js","sourceRoot":"","sources":["../src/oauth-response-mode.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,uBAAuB,GAAG,OAAC,CAAC,IAAI,CAAC;IAC5C,OAAO;IACP,UAAU;IACV,WAAW;CACZ,CAAC,CAAA"}
1
+ {"version":3,"file":"oauth-response-mode.js","sourceRoot":"","sources":["../src/oauth-response-mode.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,uBAAuB,GAAG,OAAC,CAAC,IAAI,CAAC;IAC5C,OAAO;IACP,UAAU;IACV,WAAW;CACZ,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const oauthResponseModeSchema = z.enum([\n 'query',\n 'fragment',\n 'form_post',\n])\n\nexport type OAuthResponseMode = z.infer<typeof oauthResponseModeSchema>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-response-type.js","sourceRoot":"","sources":["../src/oauth-response-type.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,uBAAuB,GAAG,OAAC,CAAC,IAAI,CAAC;IAC5C,wFAAwF;IACxF,MAAM,EAAE,2BAA2B;IACnC,OAAO,EAAE,iBAAiB;IAE1B,4EAA4E;IAC5E,MAAM;IACN,qBAAqB;IACrB,eAAe;IACf,YAAY;IACZ,gBAAgB;IAChB,UAAU;CACX,CAAC,CAAA"}
1
+ {"version":3,"file":"oauth-response-type.js","sourceRoot":"","sources":["../src/oauth-response-type.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,uBAAuB,GAAG,OAAC,CAAC,IAAI,CAAC;IAC5C,wFAAwF;IACxF,MAAM,EAAE,2BAA2B;IACnC,OAAO,EAAE,iBAAiB;IAE1B,4EAA4E;IAC5E,MAAM;IACN,qBAAqB;IACrB,eAAe;IACf,YAAY;IACZ,gBAAgB;IAChB,UAAU;CACX,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const oauthResponseTypeSchema = z.enum([\n // OAuth2 (https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-10#section-4.1.1)\n 'code', // Authorization Code Grant\n 'token', // Implicit Grant\n\n // OIDC (https://openid.net/specs/oauth-v2-multiple-response-types-1_0.html)\n 'none',\n 'code id_token token',\n 'code id_token',\n 'code token',\n 'id_token token',\n 'id_token',\n])\n\nexport type OAuthResponseType = z.infer<typeof oauthResponseTypeSchema>\n"]}
@@ -1,10 +1,12 @@
1
1
  import { z } from 'zod';
2
+ export declare const OAUTH_SCOPE_REGEXP: RegExp;
3
+ export declare const isOAuthScope: (input: string) => boolean;
2
4
  /**
3
- * A space separated list of most non-control ASCII characters except backslash
4
- * and double quote.
5
+ * A (single) space separated list of non empty printable ASCII char string
6
+ * (except backslash and double quote).
5
7
  *
6
8
  * @see {@link https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-11#section-1.4.1}
7
9
  */
8
- export declare const oauthScopeSchema: z.ZodString;
10
+ export declare const oauthScopeSchema: z.ZodEffects<z.ZodString, string, string>;
9
11
  export type OAuthScope = z.infer<typeof oauthScopeSchema>;
10
12
  //# sourceMappingURL=oauth-scope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-scope.d.ts","sourceRoot":"","sources":["../src/oauth-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,aAIyC,CAAA;AAEtE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA"}
1
+ {"version":3,"file":"oauth-scope.d.ts","sourceRoot":"","sources":["../src/oauth-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,kBAAkB,QAC+B,CAAA;AAE9D,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,OACb,CAAA;AAEhC;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,2CAE3B,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA"}
@@ -1,16 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.oauthScopeSchema = void 0;
3
+ exports.oauthScopeSchema = exports.isOAuthScope = exports.OAUTH_SCOPE_REGEXP = void 0;
4
4
  const zod_1 = require("zod");
5
+ // scope = scope-token *( SP scope-token )
6
+ // scope-token = 1*( %x21 / %x23-5B / %x5D-7E )
7
+ exports.OAUTH_SCOPE_REGEXP = /^[\x21\x23-\x5B\x5D-\x7E]+(?: [\x21\x23-\x5B\x5D-\x7E]+)*$/;
8
+ const isOAuthScope = (input) => exports.OAUTH_SCOPE_REGEXP.test(input);
9
+ exports.isOAuthScope = isOAuthScope;
5
10
  /**
6
- * A space separated list of most non-control ASCII characters except backslash
7
- * and double quote.
11
+ * A (single) space separated list of non empty printable ASCII char string
12
+ * (except backslash and double quote).
8
13
  *
9
14
  * @see {@link https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-11#section-1.4.1}
10
15
  */
11
- exports.oauthScopeSchema = zod_1.z
12
- .string()
13
- // scope = scope-token *( SP scope-token )
14
- // scope-token = 1*( %x21 / %x23-5B / %x5D-7E )
15
- .regex(/^[\x21\x23-\x5B\x5D-\x7E]+(?: [\x21\x23-\x5B\x5D-\x7E]+)*$/);
16
+ exports.oauthScopeSchema = zod_1.z.string().refine(exports.isOAuthScope, {
17
+ message: 'Invalid OAuth scope',
18
+ });
16
19
  //# sourceMappingURL=oauth-scope.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-scope.js","sourceRoot":"","sources":["../src/oauth-scope.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEvB;;;;;GAKG;AACU,QAAA,gBAAgB,GAAG,OAAC;KAC9B,MAAM,EAAE;IACT,gDAAgD;IAChD,+CAA+C;KAC9C,KAAK,CAAC,4DAA4D,CAAC,CAAA"}
1
+ {"version":3,"file":"oauth-scope.js","sourceRoot":"","sources":["../src/oauth-scope.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEvB,gDAAgD;AAChD,+CAA+C;AAClC,QAAA,kBAAkB,GAC7B,4DAA4D,CAAA;AAEvD,MAAM,YAAY,GAAG,CAAC,KAAa,EAAW,EAAE,CACrD,0BAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AADnB,QAAA,YAAY,gBACO;AAEhC;;;;;GAKG;AACU,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,oBAAY,EAAE;IAC9D,OAAO,EAAE,qBAAqB;CAC/B,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\n// scope = scope-token *( SP scope-token )\n// scope-token = 1*( %x21 / %x23-5B / %x5D-7E )\nexport const OAUTH_SCOPE_REGEXP =\n /^[\\x21\\x23-\\x5B\\x5D-\\x7E]+(?: [\\x21\\x23-\\x5B\\x5D-\\x7E]+)*$/\n\nexport const isOAuthScope = (input: string): boolean =>\n OAUTH_SCOPE_REGEXP.test(input)\n\n/**\n * A (single) space separated list of non empty printable ASCII char string\n * (except backslash and double quote).\n *\n * @see {@link https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-11#section-1.4.1}\n */\nexport const oauthScopeSchema = z.string().refine(isOAuthScope, {\n message: 'Invalid OAuth scope',\n})\n\nexport type OAuthScope = z.infer<typeof oauthScopeSchema>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-token-identification.js","sourceRoot":"","sources":["../src/oauth-token-identification.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,mEAAgE;AAChE,qEAAkE;AAErD,QAAA,8BAA8B,GAAG,OAAC,CAAC,MAAM,CAAC;IACrD,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,CAAC,8CAAsB,EAAE,gDAAuB,CAAC,CAAC;IACjE,eAAe,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE;CACtE,CAAC,CAAA"}
1
+ {"version":3,"file":"oauth-token-identification.js","sourceRoot":"","sources":["../src/oauth-token-identification.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,mEAAgE;AAChE,qEAAkE;AAErD,QAAA,8BAA8B,GAAG,OAAC,CAAC,MAAM,CAAC;IACrD,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,CAAC,8CAAsB,EAAE,gDAAuB,CAAC,CAAC;IACjE,eAAe,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE;CACtE,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\nimport { oauthAccessTokenSchema } from './oauth-access-token.js'\nimport { oauthRefreshTokenSchema } from './oauth-refresh-token.js'\n\nexport const oauthTokenIdentificationSchema = z.object({\n token: z.union([oauthAccessTokenSchema, oauthRefreshTokenSchema]),\n token_type_hint: z.enum(['access_token', 'refresh_token']).optional(),\n})\n\nexport type OAuthTokenIdentification = z.infer<\n typeof oauthTokenIdentificationSchema\n>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-token-request.js","sourceRoot":"","sources":["../src/oauth-token-request.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,uHAAiH;AACjH,uHAAiH;AACjH,mGAA8F;AAC9F,6GAAuG;AAE1F,QAAA,uBAAuB,GAAG,OAAC,CAAC,kBAAkB,CAAC,YAAY,EAAE;IACxE,+FAA6C;IAC7C,qFAAwC;IACxC,4EAAoC;IACpC,+FAA6C;CAC9C,CAAC,CAAA"}
1
+ {"version":3,"file":"oauth-token-request.js","sourceRoot":"","sources":["../src/oauth-token-request.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,uHAAiH;AACjH,uHAAiH;AACjH,mGAA8F;AAC9F,6GAAuG;AAE1F,QAAA,uBAAuB,GAAG,OAAC,CAAC,kBAAkB,CAAC,YAAY,EAAE;IACxE,+FAA6C;IAC7C,qFAAwC;IACxC,4EAAoC;IACpC,+FAA6C;CAC9C,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\nimport { oauthAuthorizationCodeGrantTokenRequestSchema } from './oauth-authorization-code-grant-token-request.js'\nimport { oauthClientCredentialsGrantTokenRequestSchema } from './oauth-client-credentials-grant-token-request.js'\nimport { oauthPasswordGrantTokenRequestSchema } from './oauth-password-grant-token-request.js'\nimport { oauthRefreshTokenGrantTokenRequestSchema } from './oauth-refresh-token-grant-token-request.js'\n\nexport const oauthTokenRequestSchema = z.discriminatedUnion('grant_type', [\n oauthAuthorizationCodeGrantTokenRequestSchema,\n oauthRefreshTokenGrantTokenRequestSchema,\n oauthPasswordGrantTokenRequestSchema,\n oauthClientCredentialsGrantTokenRequestSchema,\n])\n\nexport type OAuthTokenRequest = z.infer<typeof oauthTokenRequestSchema>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-token-response.js","sourceRoot":"","sources":["../src/oauth-token-response.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,sCAA8C;AAC9C,qFAAkF;AAClF,+DAA4D;AAE5D;;GAEG;AACU,QAAA,wBAAwB,GAAG,OAAC;KACtC,MAAM,CAAC;IACN,0DAA0D;IAC1D,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE;IACxB,UAAU,EAAE,0CAAoB;IAChC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,sEAAsE;IACtE,QAAQ,EAAE,qBAAe,CAAC,QAAQ,EAAE;IACpC,iFAAiF;IACjF,qBAAqB,EAAE,gEAA+B,CAAC,QAAQ,EAAE;CAClE,CAAC;IACF,0DAA0D;IAC1D,qEAAqE;KACpE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"oauth-token-response.js","sourceRoot":"","sources":["../src/oauth-token-response.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,sCAA8C;AAC9C,qFAAkF;AAClF,+DAA4D;AAE5D;;GAEG;AACU,QAAA,wBAAwB,GAAG,OAAC;KACtC,MAAM,CAAC;IACN,0DAA0D;IAC1D,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE;IACxB,UAAU,EAAE,0CAAoB;IAChC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,sEAAsE;IACtE,QAAQ,EAAE,qBAAe,CAAC,QAAQ,EAAE;IACpC,iFAAiF;IACjF,qBAAqB,EAAE,gEAA+B,CAAC,QAAQ,EAAE;CAClE,CAAC;IACF,0DAA0D;IAC1D,qEAAqE;KACpE,WAAW,EAAE,CAAA","sourcesContent":["import { z } from 'zod'\nimport { signedJwtSchema } from '@atproto/jwk'\nimport { oauthAuthorizationDetailsSchema } from './oauth-authorization-details.js'\nimport { oauthTokenTypeSchema } from './oauth-token-type.js'\n\n/**\n * @see {@link https://www.rfc-editor.org/rfc/rfc6749.html#section-5.1 | RFC 6749 (OAuth2), Section 5.1}\n */\nexport const oauthTokenResponseSchema = z\n .object({\n // https://www.rfc-editor.org/rfc/rfc6749.html#section-5.1\n access_token: z.string(),\n token_type: oauthTokenTypeSchema,\n scope: z.string().optional(),\n refresh_token: z.string().optional(),\n expires_in: z.number().optional(),\n // https://openid.net/specs/openid-connect-core-1_0.html#TokenResponse\n id_token: signedJwtSchema.optional(),\n // https://datatracker.ietf.org/doc/html/rfc9396#name-enriched-authorization-deta\n authorization_details: oauthAuthorizationDetailsSchema.optional(),\n })\n // https://www.rfc-editor.org/rfc/rfc6749.html#section-5.1\n // > The client MUST ignore unrecognized value names in the response.\n .passthrough()\n\n/**\n * @see {@link oauthTokenResponseSchema}\n */\nexport type OAuthTokenResponse = z.infer<typeof oauthTokenResponseSchema>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-token-type.js","sourceRoot":"","sources":["../src/oauth-token-type.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEvB,4CAA4C;AAC/B,QAAA,oBAAoB,GAAG,OAAC,CAAC,KAAK,CAAC;IAC1C,OAAC;SACE,MAAM,EAAE;SACR,KAAK,CAAC,SAAS,CAAC;SAChB,SAAS,CAAC,GAAG,EAAE,CAAC,MAAe,CAAC;IACnC,OAAC;SACE,MAAM,EAAE;SACR,KAAK,CAAC,WAAW,CAAC;SAClB,SAAS,CAAC,GAAG,EAAE,CAAC,QAAiB,CAAC;CACtC,CAAC,CAAA"}
1
+ {"version":3,"file":"oauth-token-type.js","sourceRoot":"","sources":["../src/oauth-token-type.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEvB,4CAA4C;AAC/B,QAAA,oBAAoB,GAAG,OAAC,CAAC,KAAK,CAAC;IAC1C,OAAC;SACE,MAAM,EAAE;SACR,KAAK,CAAC,SAAS,CAAC;SAChB,SAAS,CAAC,GAAG,EAAE,CAAC,MAAe,CAAC;IACnC,OAAC;SACE,MAAM,EAAE;SACR,KAAK,CAAC,WAAW,CAAC;SAClB,SAAS,CAAC,GAAG,EAAE,CAAC,QAAiB,CAAC;CACtC,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\n// Case insensitive input, normalized output\nexport const oauthTokenTypeSchema = z.union([\n z\n .string()\n .regex(/^DPoP$/i)\n .transform(() => 'DPoP' as const),\n z\n .string()\n .regex(/^Bearer$/i)\n .transform(() => 'Bearer' as const),\n])\n\nexport type OAuthTokenType = z.infer<typeof oauthTokenTypeSchema>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oidc-authorization-error-response.js","sourceRoot":"","sources":["../src/oidc-authorization-error-response.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEvB;;GAEG;AACU,QAAA,oCAAoC,GAAG,OAAC,CAAC,IAAI,CAAC;IACzD,qSAAqS;IACrS,sBAAsB;IACtB,mRAAmR;IACnR,gBAAgB;IAChB,kbAAkb;IAClb,4BAA4B;IAC5B,qQAAqQ;IACrQ,kBAAkB;IAClB,0FAA0F;IAC1F,qBAAqB;IACrB,4DAA4D;IAC5D,wBAAwB;IACxB,6EAA6E;IAC7E,uBAAuB;IACvB,iFAAiF;IACjF,2BAA2B;IAC3B,sFAAsF;IACtF,4BAA4B;CAC7B,CAAC,CAAA"}
1
+ {"version":3,"file":"oidc-authorization-error-response.js","sourceRoot":"","sources":["../src/oidc-authorization-error-response.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEvB;;GAEG;AACU,QAAA,oCAAoC,GAAG,OAAC,CAAC,IAAI,CAAC;IACzD,qSAAqS;IACrS,sBAAsB;IACtB,mRAAmR;IACnR,gBAAgB;IAChB,kbAAkb;IAClb,4BAA4B;IAC5B,qQAAqQ;IACrQ,kBAAkB;IAClB,0FAA0F;IAC1F,qBAAqB;IACrB,4DAA4D;IAC5D,wBAAwB;IACxB,6EAA6E;IAC7E,uBAAuB;IACvB,iFAAiF;IACjF,2BAA2B;IAC3B,sFAAsF;IACtF,4BAA4B;CAC7B,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\n/**\n * @see {@link https://openid.net/specs/openid-connect-core-1_0.html#AuthError}\n */\nexport const oidcAuthorizationResponseErrorSchema = z.enum([\n // The Authorization Server requires End-User interaction of some form to proceed. This error MAY be returned when the prompt parameter value in the Authentication Request is none, but the Authentication Request cannot be completed without displaying a user interface for End-User interaction.\n 'interaction_required',\n // The Authorization Server requires End-User authentication. This error MAY be returned when the prompt parameter value in the Authentication Request is none, but the Authentication Request cannot be completed without displaying a user interface for End-User authentication.\n 'login_required',\n // The End-User is REQUIRED to select a session at the Authorization Server. The End-User MAY be authenticated at the Authorization Server with different associated accounts, but the End-User did not select a session. This error MAY be returned when the prompt parameter value in the Authentication Request is none, but the Authentication Request cannot be completed without displaying a user interface to prompt for a session to use.\n 'account_selection_required',\n // The Authorization Server requires End-User consent. This error MAY be returned when the prompt parameter value in the Authentication Request is none, but the Authentication Request cannot be completed without displaying a user interface for End-User consent.\n 'consent_required',\n // The request_uri in the Authorization Request returns an error or contains invalid data.\n 'invalid_request_uri',\n // The request parameter contains an invalid Request Object.\n 'invalid_request_object',\n // The OP does not support use of the request parameter defined in Section 6.\n 'request_not_supported',\n // The OP does not support use of the request_uri parameter defined in Section 6.\n 'request_uri_not_supported',\n // The OP does not support use of the registration parameter defined in Section 7.2.1.\n 'registration_not_supported',\n])\n\nexport type OidcAuthorizationResponseError = z.infer<\n typeof oidcAuthorizationResponseErrorSchema\n>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oidc-claims-parameter.js","sourceRoot":"","sources":["../src/oidc-claims-parameter.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,yBAAyB,GAAG,OAAC,CAAC,IAAI,CAAC;IAC9C,oGAAoG;IACpG,0EAA0E;IAC1E,WAAW;IAEX,OAAO;IACP,OAAO;IACP,KAAK;IAEL,0BAA0B;IAC1B,MAAM;IACN,aAAa;IACb,YAAY;IACZ,aAAa;IACb,UAAU;IACV,oBAAoB;IACpB,QAAQ;IACR,SAAS;IACT,SAAS;IACT,SAAS;IACT,WAAW;IACX,UAAU;IACV,QAAQ;IACR,YAAY;IAEZ,wBAAwB;IACxB,OAAO;IACP,gBAAgB;IAEhB,wBAAwB;IACxB,cAAc;IACd,uBAAuB;IAEvB,0BAA0B;IAC1B,SAAS;CACV,CAAC,CAAA"}
1
+ {"version":3,"file":"oidc-claims-parameter.js","sourceRoot":"","sources":["../src/oidc-claims-parameter.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,yBAAyB,GAAG,OAAC,CAAC,IAAI,CAAC;IAC9C,oGAAoG;IACpG,0EAA0E;IAC1E,WAAW;IAEX,OAAO;IACP,OAAO;IACP,KAAK;IAEL,0BAA0B;IAC1B,MAAM;IACN,aAAa;IACb,YAAY;IACZ,aAAa;IACb,UAAU;IACV,oBAAoB;IACpB,QAAQ;IACR,SAAS;IACT,SAAS;IACT,SAAS;IACT,WAAW;IACX,UAAU;IACV,QAAQ;IACR,YAAY;IAEZ,wBAAwB;IACxB,OAAO;IACP,gBAAgB;IAEhB,wBAAwB;IACxB,cAAc;IACd,uBAAuB;IAEvB,0BAA0B;IAC1B,SAAS;CACV,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const oidcClaimsParameterSchema = z.enum([\n // https://openid.net/specs/openid-provider-authentication-policy-extension-1_0.html#rfc.section.5.2\n // if client metadata \"require_auth_time\" is true, this *must* be provided\n 'auth_time',\n\n // OIDC\n 'nonce',\n 'acr',\n\n // OpenID: \"profile\" scope\n 'name',\n 'family_name',\n 'given_name',\n 'middle_name',\n 'nickname',\n 'preferred_username',\n 'gender',\n 'picture',\n 'profile',\n 'website',\n 'birthdate',\n 'zoneinfo',\n 'locale',\n 'updated_at',\n\n // OpenID: \"email\" scope\n 'email',\n 'email_verified',\n\n // OpenID: \"phone\" scope\n 'phone_number',\n 'phone_number_verified',\n\n // OpenID: \"address\" scope\n 'address',\n])\n\nexport type OidcClaimsParameter = z.infer<typeof oidcClaimsParameterSchema>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oidc-claims-properties.js","sourceRoot":"","sources":["../src/oidc-claims-properties.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEvB,MAAM,qBAAqB,GAAG,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;AAE/D,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,KAAK,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IACvC,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAA"}
1
+ {"version":3,"file":"oidc-claims-properties.js","sourceRoot":"","sources":["../src/oidc-claims-properties.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEvB,MAAM,qBAAqB,GAAG,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;AAE/D,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,KAAK,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IACvC,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nconst oidcClaimsValueSchema = z.union([z.string(), z.number(), z.boolean()])\n\nexport const oidcClaimsPropertiesSchema = z.object({\n essential: z.boolean().optional(),\n value: oidcClaimsValueSchema.optional(),\n values: z.array(oidcClaimsValueSchema).optional(),\n})\n\nexport type OidcClaimsProperties = z.infer<typeof oidcClaimsPropertiesSchema>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oidc-entity-type.js","sourceRoot":"","sources":["../src/oidc-entity-type.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,oBAAoB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"oidc-entity-type.js","sourceRoot":"","sources":["../src/oidc-entity-type.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,oBAAoB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const oidcEntityTypeSchema = z.enum(['userinfo', 'id_token'])\n\nexport type OidcEntityType = z.infer<typeof oidcEntityTypeSchema>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oidc-userinfo.js","sourceRoot":"","sources":["../src/oidc-userinfo.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE;IACf,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAChC,GAAG,EAAE,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAEjE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IACpC,cAAc,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACtC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,kBAAkB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAA"}
1
+ {"version":3,"file":"oidc-userinfo.js","sourceRoot":"","sources":["../src/oidc-userinfo.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE;IACf,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAChC,GAAG,EAAE,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAEjE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IACpC,cAAc,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACtC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,kBAAkB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\n\nexport const oidcUserinfoSchema = z.object({\n sub: z.string(),\n iss: z.string().url().optional(),\n aud: z.union([z.string(), z.array(z.string()).min(1)]).optional(),\n\n email: z.string().email().optional(),\n email_verified: z.boolean().optional(),\n name: z.string().optional(),\n preferred_username: z.string().optional(),\n picture: z.string().url().optional(),\n})\n\nexport type OidcUserinfo = z.infer<typeof oidcUserinfoSchema>\n"]}
package/dist/uri.js CHANGED
@@ -5,7 +5,7 @@ const zod_1 = require("zod");
5
5
  const util_js_1 = require("./util.js");
6
6
  const canParseUrl =
7
7
  // eslint-disable-next-line n/no-unsupported-features/node-builtins
8
- URL.canParse ??
8
+ URL.canParse?.bind(URL) ??
9
9
  // URL.canParse is not available in Node.js < 18.7.0
10
10
  ((urlStr) => {
11
11
  try {
package/dist/uri.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"uri.js","sourceRoot":"","sources":["../src/uri.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uri.js","sourceRoot":"","sources":["../src/uri.ts"],"names":[],"mappings":"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","sourcesContent":["import { TypeOf, ZodIssueCode, z } from 'zod'\nimport { isHostnameIP, isLoopbackHost } from './util.js'\n\nconst canParseUrl =\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n URL.canParse?.bind(URL) ??\n // URL.canParse is not available in Node.js < 18.7.0\n ((urlStr: string): boolean => {\n try {\n new URL(urlStr)\n return true\n } catch {\n return false\n }\n })\n\n/**\n * Valid, but potentially dangerous URL (`data:`, `file:`, `javascript:`, etc.).\n *\n * Any value that matches this schema is safe to parse using `new URL()`.\n */\nexport const dangerousUriSchema = z\n .string()\n .refine(\n (data): data is `${string}:${string}` =>\n data.includes(':') && canParseUrl(data),\n {\n message: 'Invalid URL',\n },\n )\n\n/**\n * Valid, but potentially dangerous URL (`data:`, `file:`, `javascript:`, etc.).\n */\nexport type DangerousUrl = TypeOf<typeof dangerousUriSchema>\n\nexport const loopbackUriSchema = dangerousUriSchema.superRefine(\n (\n value,\n ctx,\n ): value is\n | `http://[::1]${string}`\n | `http://localhost${'' | `${':' | '/' | '?' | '#'}${string}`}`\n | `http://127.0.0.1${'' | `${':' | '/' | '?' | '#'}${string}`}` => {\n // Loopback url must use the \"http:\" protocol\n if (!value.startsWith('http://')) {\n ctx.addIssue({\n code: ZodIssueCode.custom,\n message: 'URL must use the \"http:\" protocol',\n })\n return false\n }\n\n const url = new URL(value)\n\n if (!isLoopbackHost(url.hostname)) {\n ctx.addIssue({\n code: ZodIssueCode.custom,\n message: 'URL must use \"localhost\", \"127.0.0.1\" or \"[::1]\" as hostname',\n })\n return false\n }\n\n return true\n },\n)\n\nexport type LoopbackUri = TypeOf<typeof loopbackUriSchema>\n\nexport const httpsUriSchema = dangerousUriSchema.superRefine(\n (value, ctx): value is `https://${string}` => {\n if (!value.startsWith('https://')) {\n ctx.addIssue({\n code: ZodIssueCode.custom,\n message: 'URL must use the \"https:\" protocol',\n })\n return false\n }\n\n const url = new URL(value)\n\n // Disallow loopback URLs with the `https:` protocol\n if (isLoopbackHost(url.hostname)) {\n ctx.addIssue({\n code: ZodIssueCode.custom,\n message: 'https: URL must not use a loopback host',\n })\n return false\n }\n\n if (isHostnameIP(url.hostname)) {\n // Hostname is an IP address\n } else {\n // Hostname is a domain name\n if (!url.hostname.includes('.')) {\n // we don't depend on PSL here, so we only check for a dot\n ctx.addIssue({\n code: ZodIssueCode.custom,\n message: 'Domain name must contain at least two segments',\n })\n return false\n }\n\n if (url.hostname.endsWith('.local')) {\n ctx.addIssue({\n code: ZodIssueCode.custom,\n message: 'Domain name must not end with \".local\"',\n })\n return false\n }\n }\n\n return true\n },\n)\n\nexport type HttpsUri = TypeOf<typeof httpsUriSchema>\n\nexport const webUriSchema = z\n .string()\n .superRefine((value, ctx): value is LoopbackUri | HttpsUri => {\n // discriminated union of `loopbackUriSchema` and `httpsUriSchema`\n if (value.startsWith('http://')) {\n const result = loopbackUriSchema.safeParse(value)\n if (!result.success) result.error.issues.forEach(ctx.addIssue, ctx)\n return result.success\n }\n\n if (value.startsWith('https://')) {\n const result = httpsUriSchema.safeParse(value)\n if (!result.success) result.error.issues.forEach(ctx.addIssue, ctx)\n return result.success\n }\n\n ctx.addIssue({\n code: ZodIssueCode.custom,\n message: 'URL must use the \"http:\" or \"https:\" protocol',\n })\n return false\n })\n\nexport type WebUri = TypeOf<typeof webUriSchema>\n\nexport const privateUseUriSchema = dangerousUriSchema.superRefine(\n (value, ctx): value is `${string}.${string}:/${string}` => {\n const dotIdx = value.indexOf('.')\n const colonIdx = value.indexOf(':')\n\n // Optimization: avoid parsing the URL if the protocol does not contain a \".\"\n if (dotIdx === -1 || colonIdx === -1 || dotIdx > colonIdx) {\n ctx.addIssue({\n code: ZodIssueCode.custom,\n message:\n 'Private-use URI scheme requires a \".\" as part of the protocol',\n })\n return false\n }\n\n const url = new URL(value)\n\n // Should be covered by the check before, but let's be extra sure\n if (!url.protocol.includes('.')) {\n ctx.addIssue({\n code: ZodIssueCode.custom,\n message: 'Invalid private-use URI scheme',\n })\n return false\n }\n\n if (url.hostname) {\n // https://datatracker.ietf.org/doc/html/rfc8252#section-7.1\n ctx.addIssue({\n code: ZodIssueCode.custom,\n message:\n 'Private-use URI schemes must not include a hostname (only one \"/\" is allowed after the protocol, as per RFC 8252)',\n })\n return false\n }\n\n return true\n },\n)\n\nexport type PrivateUseUri = TypeOf<typeof privateUseUriSchema>\n"]}
package/dist/util.d.ts CHANGED
@@ -6,4 +6,13 @@ export declare function safeUrl(input: URL | string): URL | null;
6
6
  export declare function extractUrlPath(url: any): any;
7
7
  export declare const jsonObjectPreprocess: (val: unknown) => any;
8
8
  export declare const numberPreprocess: (val: unknown) => unknown;
9
+ /**
10
+ * Returns true if the two arrays contain the same elements, regardless of order
11
+ * or duplicates.
12
+ */
13
+ export declare function arrayEquivalent<T>(a: readonly T[], b: readonly T[]): boolean;
14
+ export declare function includedIn<T>(this: readonly T[], item: T): boolean;
15
+ export declare function asArray<T>(value: Iterable<T> | undefined): undefined | readonly T[];
16
+ export type SpaceSeparatedValue<Value extends string> = `${'' | `${string} `}${Value}${'' | ` ${string}`}`;
17
+ export declare const isSpaceSeparatedValue: <Value extends string>(value: Value, input: string) => input is SpaceSeparatedValue<Value>;
9
18
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,WAQ5C;AAED,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,OAAO,CAAA;AAE9D,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,YAAY,CAElE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,OAAO,CAG1D;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,CAMvD;AAED,wBAAgB,cAAc,CAAC,GAAG,KAAA,OAsCjC;AAED,eAAO,MAAM,oBAAoB,GAAI,KAAK,OAAO,QAUhD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,KAAK,OAAO,KAAG,OAM/C,CAAA"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,WAQ5C;AAED,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,OAAO,CAAA;AAE9D,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,YAAY,CAElE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,OAAO,CAG1D;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,CAMvD;AAED,wBAAgB,cAAc,CAAC,GAAG,KAAA,OAsCjC;AAED,eAAO,MAAM,oBAAoB,GAAI,KAAK,OAAO,QAUhD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,KAAK,OAAO,KAAG,OAM/C,CAAA;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,WAGlE;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,WAExD;AAED,wBAAgB,OAAO,CAAC,CAAC,EACvB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,GAC7B,SAAS,GAAG,SAAS,CAAC,EAAE,CAI1B;AAED,MAAM,MAAM,mBAAmB,CAAC,KAAK,SAAS,MAAM,IAClD,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,GAAG,KAAK,GAAG,EAAE,GAAG,IAAI,MAAM,EAAE,EAAE,CAAA;AAEpD,eAAO,MAAM,qBAAqB,GAAI,KAAK,SAAS,MAAM,EACxD,OAAO,KAAK,EACZ,OAAO,MAAM,KACZ,KAAK,IAAI,mBAAmB,CAAC,KAAK,CA+BpC,CAAA"}
package/dist/util.js CHANGED
@@ -1,11 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.numberPreprocess = exports.jsonObjectPreprocess = void 0;
3
+ exports.isSpaceSeparatedValue = exports.numberPreprocess = exports.jsonObjectPreprocess = void 0;
4
4
  exports.isHostnameIP = isHostnameIP;
5
5
  exports.isLoopbackHost = isLoopbackHost;
6
6
  exports.isLoopbackUrl = isLoopbackUrl;
7
7
  exports.safeUrl = safeUrl;
8
8
  exports.extractUrlPath = extractUrlPath;
9
+ exports.arrayEquivalent = arrayEquivalent;
10
+ exports.includedIn = includedIn;
11
+ exports.asArray = asArray;
9
12
  function isHostnameIP(hostname) {
10
13
  // IPv4
11
14
  if (hostname.match(/^\d+\.\d+\.\d+\.\d+$/))
@@ -81,4 +84,50 @@ const numberPreprocess = (val) => {
81
84
  return val;
82
85
  };
83
86
  exports.numberPreprocess = numberPreprocess;
87
+ /**
88
+ * Returns true if the two arrays contain the same elements, regardless of order
89
+ * or duplicates.
90
+ */
91
+ function arrayEquivalent(a, b) {
92
+ if (a === b)
93
+ return true;
94
+ return a.every(includedIn, b) && b.every(includedIn, a);
95
+ }
96
+ function includedIn(item) {
97
+ return this.includes(item);
98
+ }
99
+ function asArray(value) {
100
+ if (value == null)
101
+ return undefined;
102
+ if (Array.isArray(value))
103
+ return value; // already a (possibly readonly) array
104
+ return Array.from(value);
105
+ }
106
+ const isSpaceSeparatedValue = (value, input) => {
107
+ if (value.length === 0)
108
+ throw new TypeError('Value cannot be empty');
109
+ if (value.includes(' '))
110
+ throw new TypeError('Value cannot contain spaces');
111
+ // Optimized version of:
112
+ // return input.split(' ').includes(value)
113
+ const inputLength = input.length;
114
+ const valueLength = value.length;
115
+ if (inputLength < valueLength)
116
+ return false;
117
+ let idx = input.indexOf(value);
118
+ let idxEnd;
119
+ while (idx !== -1) {
120
+ idxEnd = idx + valueLength;
121
+ if (
122
+ // at beginning or preceded by space
123
+ (idx === 0 || input.charCodeAt(idx - 1) === 32) &&
124
+ // at end or followed by space
125
+ (idxEnd === inputLength || input.charCodeAt(idxEnd) === 32)) {
126
+ return true;
127
+ }
128
+ idx = input.indexOf(value, idxEnd + 1);
129
+ }
130
+ return false;
131
+ };
132
+ exports.isSpaceSeparatedValue = isSpaceSeparatedValue;
84
133
  //# sourceMappingURL=util.js.map
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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","sourcesContent":["export function isHostnameIP(hostname: string) {\n // IPv4\n if (hostname.match(/^\\d+\\.\\d+\\.\\d+\\.\\d+$/)) return true\n\n // IPv6\n if (hostname.startsWith('[') && hostname.endsWith(']')) return true\n\n return false\n}\n\nexport type LoopbackHost = 'localhost' | '127.0.0.1' | '[::1]'\n\nexport function isLoopbackHost(host: unknown): host is LoopbackHost {\n return host === 'localhost' || host === '127.0.0.1' || host === '[::1]'\n}\n\nexport function isLoopbackUrl(input: URL | string): boolean {\n const url = typeof input === 'string' ? new URL(input) : input\n return isLoopbackHost(url.hostname)\n}\n\nexport function safeUrl(input: URL | string): URL | null {\n try {\n return new URL(input)\n } catch {\n return null\n }\n}\n\nexport function extractUrlPath(url) {\n // Extracts the path from a URL, without relying on the URL constructor\n // (because it normalizes the URL)\n const endOfProtocol = url.startsWith('https://')\n ? 8\n : url.startsWith('http://')\n ? 7\n : -1\n if (endOfProtocol === -1) {\n throw new TypeError('URL must use the \"https:\" or \"http:\" protocol')\n }\n\n const hashIdx = url.indexOf('#', endOfProtocol)\n const questionIdx = url.indexOf('?', endOfProtocol)\n\n const queryStrIdx =\n questionIdx !== -1 && (hashIdx === -1 || questionIdx < hashIdx)\n ? questionIdx\n : -1\n\n const pathEnd =\n hashIdx === -1\n ? queryStrIdx === -1\n ? url.length\n : queryStrIdx\n : queryStrIdx === -1\n ? hashIdx\n : Math.min(hashIdx, queryStrIdx)\n\n const slashIdx = url.indexOf('/', endOfProtocol)\n\n const pathStart = slashIdx === -1 || slashIdx > pathEnd ? pathEnd : slashIdx\n\n if (endOfProtocol === pathStart) {\n throw new TypeError('URL must contain a host')\n }\n\n return url.substring(pathStart, pathEnd)\n}\n\nexport const jsonObjectPreprocess = (val: unknown) => {\n if (typeof val === 'string' && val.startsWith('{') && val.endsWith('}')) {\n try {\n return JSON.parse(val)\n } catch {\n return val\n }\n }\n\n return val\n}\n\nexport const numberPreprocess = (val: unknown): unknown => {\n if (typeof val === 'string') {\n const number = Number(val)\n if (!Number.isNaN(number)) return number\n }\n return val\n}\n\n/**\n * Returns true if the two arrays contain the same elements, regardless of order\n * or duplicates.\n */\nexport function arrayEquivalent<T>(a: readonly T[], b: readonly T[]) {\n if (a === b) return true\n return a.every(includedIn, b) && b.every(includedIn, a)\n}\n\nexport function includedIn<T>(this: readonly T[], item: T) {\n return this.includes(item)\n}\n\nexport function asArray<T>(\n value: Iterable<T> | undefined,\n): undefined | readonly T[] {\n if (value == null) return undefined\n if (Array.isArray(value)) return value // already a (possibly readonly) array\n return Array.from(value)\n}\n\nexport type SpaceSeparatedValue<Value extends string> =\n `${'' | `${string} `}${Value}${'' | ` ${string}`}`\n\nexport const isSpaceSeparatedValue = <Value extends string>(\n value: Value,\n input: string,\n): input is SpaceSeparatedValue<Value> => {\n if (value.length === 0) throw new TypeError('Value cannot be empty')\n if (value.includes(' ')) throw new TypeError('Value cannot contain spaces')\n\n // Optimized version of:\n // return input.split(' ').includes(value)\n\n const inputLength = input.length\n const valueLength = value.length\n\n if (inputLength < valueLength) return false\n\n let idx = input.indexOf(value)\n let idxEnd: number\n\n while (idx !== -1) {\n idxEnd = idx + valueLength\n\n if (\n // at beginning or preceded by space\n (idx === 0 || input.charCodeAt(idx - 1) === 32) &&\n // at end or followed by space\n (idxEnd === inputLength || input.charCodeAt(idxEnd) === 32)\n ) {\n return true\n }\n\n idx = input.indexOf(value, idxEnd + 1)\n }\n\n return false\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/oauth-types",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "license": "MIT",
5
5
  "description": "OAuth typing & validation library",
6
6
  "keywords": [
@@ -26,7 +26,8 @@
26
26
  },
27
27
  "dependencies": {
28
28
  "zod": "^3.23.8",
29
- "@atproto/jwk": "0.5.0"
29
+ "@atproto/did": "0.2.1",
30
+ "@atproto/jwk": "0.6.0"
30
31
  },
31
32
  "devDependencies": {
32
33
  "typescript": "^5.6.3"
@@ -0,0 +1,75 @@
1
+ import { DEFAULT_LOOPBACK_CLIENT_REDIRECT_URIS } from './atproto-loopback-client-redirect-uris.js'
2
+ import {
3
+ AtprotoOAuthScope,
4
+ DEFAULT_ATPROTO_OAUTH_SCOPE,
5
+ asAtprotoOAuthScope,
6
+ isAtprotoOAuthScope,
7
+ } from './atproto-oauth-scope.js'
8
+ import {
9
+ LOOPBACK_CLIENT_ID_ORIGIN,
10
+ OAuthClientIdLoopback,
11
+ parseOAuthLoopbackClientId,
12
+ } from './oauth-client-id-loopback.js'
13
+ import {
14
+ OAuthLoopbackRedirectURI,
15
+ oauthLoopbackRedirectURISchema,
16
+ } from './oauth-redirect-uri.js'
17
+ import { arrayEquivalent, asArray } from './util.js'
18
+
19
+ export type OAuthLoopbackClientIdConfig = {
20
+ scope?: string
21
+ redirect_uris?: Iterable<string>
22
+ }
23
+
24
+ export function buildAtprotoLoopbackClientId(
25
+ config?: OAuthLoopbackClientIdConfig,
26
+ ): OAuthClientIdLoopback {
27
+ if (config) {
28
+ const params = new URLSearchParams()
29
+
30
+ const { scope } = config
31
+ if (scope != null && scope !== DEFAULT_ATPROTO_OAUTH_SCOPE) {
32
+ params.set('scope', asAtprotoOAuthScope(scope))
33
+ }
34
+
35
+ const redirectUris = asArray(config.redirect_uris)
36
+ if (
37
+ redirectUris &&
38
+ !arrayEquivalent(redirectUris, DEFAULT_LOOPBACK_CLIENT_REDIRECT_URIS)
39
+ ) {
40
+ if (!redirectUris.length) {
41
+ throw new TypeError(`Unexpected empty "redirect_uris" config`)
42
+ }
43
+ for (const uri of redirectUris) {
44
+ params.append('redirect_uri', oauthLoopbackRedirectURISchema.parse(uri))
45
+ }
46
+ }
47
+
48
+ if (params.size) {
49
+ return `${LOOPBACK_CLIENT_ID_ORIGIN}?${params.toString()}`
50
+ }
51
+ }
52
+
53
+ return LOOPBACK_CLIENT_ID_ORIGIN
54
+ }
55
+
56
+ export type AtprotoLoopbackClientIdParams = {
57
+ scope: AtprotoOAuthScope
58
+ redirect_uris: [OAuthLoopbackRedirectURI, ...OAuthLoopbackRedirectURI[]]
59
+ }
60
+
61
+ export function parseAtprotoLoopbackClientId(
62
+ clientId: string,
63
+ ): AtprotoLoopbackClientIdParams {
64
+ const { scope = DEFAULT_ATPROTO_OAUTH_SCOPE, redirect_uris } =
65
+ parseOAuthLoopbackClientId(clientId)
66
+ if (!isAtprotoOAuthScope(scope)) {
67
+ throw new TypeError(
68
+ 'ATProto Loopback ClientID must include "atproto" scope',
69
+ )
70
+ }
71
+ return {
72
+ scope,
73
+ redirect_uris: redirect_uris ?? [...DEFAULT_LOOPBACK_CLIENT_REDIRECT_URIS],
74
+ }
75
+ }