@absolutejs/auth 0.25.0 → 0.26.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/audit/config.d.ts +8 -0
  2. package/dist/audit/inMemoryAuditStore.d.ts +2 -0
  3. package/dist/audit/postgresAuditStore.d.ts +142 -0
  4. package/dist/audit/types.d.ts +18 -0
  5. package/dist/audit/wrap.d.ts +9 -0
  6. package/dist/credentials/config.d.ts +61 -0
  7. package/dist/credentials/emailVerification.d.ts +83 -0
  8. package/dist/credentials/inMemoryCredentialStore.d.ts +2 -0
  9. package/dist/credentials/login.d.ts +75 -0
  10. package/dist/credentials/passwordPolicy.d.ts +14 -0
  11. package/dist/credentials/passwordReset.d.ts +87 -0
  12. package/dist/credentials/postgresCredentialStore.d.ts +279 -0
  13. package/dist/credentials/register.d.ts +54 -0
  14. package/dist/credentials/routes.d.ts +200 -0
  15. package/dist/credentials/types.d.ts +26 -0
  16. package/dist/crypto.d.ts +32 -0
  17. package/dist/{ui → htmx}/index.js +2 -2
  18. package/dist/{ui → htmx}/index.js.map +2 -2
  19. package/dist/{htmxRoutes.d.ts → htmx/routes.d.ts} +4 -4
  20. package/dist/index.d.ts +427 -27
  21. package/dist/index.js +3312 -1928
  22. package/dist/index.js.map +60 -27
  23. package/dist/{neonLinkedProviders.d.ts → linkedProviders/neonStores.d.ts} +619 -613
  24. package/dist/{oauthLinkedProviderResolver.d.ts → linkedProviders/oauthResolver.d.ts} +1 -1
  25. package/dist/lockout/config.d.ts +17 -0
  26. package/dist/lockout/inMemoryLockoutStore.d.ts +2 -0
  27. package/dist/lockout/postgresLockoutStore.d.ts +81 -0
  28. package/dist/lockout/types.d.ts +12 -0
  29. package/dist/mfa/backupCodes.d.ts +5 -0
  30. package/dist/mfa/challenge.d.ts +65 -0
  31. package/dist/mfa/config.d.ts +32 -0
  32. package/dist/mfa/gate.d.ts +2 -0
  33. package/dist/mfa/inMemoryMfaStore.d.ts +2 -0
  34. package/dist/mfa/postgresMfaStore.d.ts +134 -0
  35. package/dist/mfa/routes.d.ts +117 -0
  36. package/dist/mfa/secret.d.ts +2 -0
  37. package/dist/mfa/totp.d.ts +91 -0
  38. package/dist/mfa/types.d.ts +16 -0
  39. package/dist/{providerClients.d.ts → providers/clients.d.ts} +35 -19
  40. package/dist/{authorize.d.ts → routes/authorize.d.ts} +5 -5
  41. package/dist/{callback.d.ts → routes/callback.d.ts} +4 -4
  42. package/dist/{profile.d.ts → routes/profile.d.ts} +5 -5
  43. package/dist/{protectRoute.d.ts → routes/protectRoute.d.ts} +5 -5
  44. package/dist/{refresh.d.ts → routes/refresh.d.ts} +5 -5
  45. package/dist/{revoke.d.ts → routes/revoke.d.ts} +6 -6
  46. package/dist/routes/sessions.d.ts +103 -0
  47. package/dist/{signout.d.ts → routes/signout.d.ts} +4 -4
  48. package/dist/routes/stepUp.d.ts +48 -0
  49. package/dist/{userStatus.d.ts → routes/userStatus.d.ts} +4 -4
  50. package/dist/{sessionAccess.d.ts → session/access.d.ts} +12 -12
  51. package/dist/{sessionCleanup.d.ts → session/cleanup.d.ts} +2 -2
  52. package/dist/{authSessionStores.d.ts → session/inMemoryStore.d.ts} +2 -2
  53. package/dist/{neonAuthSessionStore.d.ts → session/neonStore.d.ts} +209 -175
  54. package/dist/session/promote.d.ts +13 -0
  55. package/dist/session/sessionsConfig.d.ts +9 -0
  56. package/dist/{sessionStore.d.ts → session/state.d.ts} +1 -1
  57. package/dist/{sessionTypes.d.ts → session/types.d.ts} +1 -1
  58. package/dist/session/userSessions.d.ts +16 -0
  59. package/dist/stores/postgres.d.ts +5 -0
  60. package/dist/tenancy.d.ts +9 -0
  61. package/dist/typeGuards.d.ts +2 -2
  62. package/dist/typebox.d.ts +3 -3
  63. package/dist/types.d.ts +33 -3
  64. package/dist/utils.d.ts +10 -8
  65. package/package.json +19 -16
  66. /package/dist/{ui → htmx}/index.d.ts +0 -0
  67. /package/dist/{ui → htmx}/renderers.d.ts +0 -0
  68. /package/dist/{ui → htmx}/types.d.ts +0 -0
  69. /package/dist/{linkedProviderStores.d.ts → linkedProviders/inMemoryStores.d.ts} +0 -0
  70. /package/dist/{linkedProviderResolver.d.ts → linkedProviders/resolver.d.ts} +0 -0
package/dist/index.js.map CHANGED
@@ -1,28 +1,51 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../node_modules/citra/dist/index.js", "../src/index.ts", "../src/authorize.ts", "../src/constants.ts", "../src/providerClients.ts", "../src/typeGuards.ts", "../src/typebox.ts", "../src/callback.ts", "../src/errors.ts", "../src/sessionAccess.ts", "../src/sessionStore.ts", "../src/htmxRoutes.ts", "../src/protectRoute.ts", "../src/ui/renderers.ts", "../src/profile.ts", "../src/refresh.ts", "../src/revoke.ts", "../src/sessionCleanup.ts", "../src/signout.ts", "../src/userStatus.ts", "../src/authSessionStores.ts", "../node_modules/@neondatabase/serverless/index.mjs", "../node_modules/drizzle-orm/entity.js", "../node_modules/drizzle-orm/column.js", "../node_modules/drizzle-orm/column-builder.js", "../node_modules/drizzle-orm/table.utils.js", "../node_modules/drizzle-orm/pg-core/foreign-keys.js", "../node_modules/drizzle-orm/tracing-utils.js", "../node_modules/drizzle-orm/pg-core/unique-constraint.js", "../node_modules/drizzle-orm/pg-core/utils/array.js", "../node_modules/drizzle-orm/pg-core/columns/common.js", "../node_modules/drizzle-orm/pg-core/columns/enum.js", "../node_modules/drizzle-orm/subquery.js", "../node_modules/drizzle-orm/version.js", "../node_modules/drizzle-orm/tracing.js", "../node_modules/drizzle-orm/view-common.js", "../node_modules/drizzle-orm/table.js", "../node_modules/drizzle-orm/sql/sql.js", "../node_modules/drizzle-orm/alias.js", "../node_modules/drizzle-orm/errors.js", "../node_modules/drizzle-orm/sql/expressions/conditions.js", "../node_modules/drizzle-orm/sql/expressions/select.js", "../node_modules/drizzle-orm/logger.js", "../node_modules/drizzle-orm/query-promise.js", "../node_modules/drizzle-orm/utils.js", "../node_modules/drizzle-orm/pg-core/columns/int.common.js", "../node_modules/drizzle-orm/pg-core/columns/bigint.js", "../node_modules/drizzle-orm/pg-core/columns/bigserial.js", "../node_modules/drizzle-orm/pg-core/columns/boolean.js", "../node_modules/drizzle-orm/pg-core/columns/char.js", "../node_modules/drizzle-orm/pg-core/columns/cidr.js", "../node_modules/drizzle-orm/pg-core/columns/custom.js", "../node_modules/drizzle-orm/pg-core/columns/date.common.js", "../node_modules/drizzle-orm/pg-core/columns/date.js", "../node_modules/drizzle-orm/pg-core/columns/double-precision.js", "../node_modules/drizzle-orm/pg-core/columns/inet.js", "../node_modules/drizzle-orm/pg-core/columns/integer.js", "../node_modules/drizzle-orm/pg-core/columns/interval.js", "../node_modules/drizzle-orm/pg-core/columns/json.js", "../node_modules/drizzle-orm/pg-core/columns/jsonb.js", "../node_modules/drizzle-orm/pg-core/columns/line.js", "../node_modules/drizzle-orm/pg-core/columns/macaddr.js", "../node_modules/drizzle-orm/pg-core/columns/macaddr8.js", "../node_modules/drizzle-orm/pg-core/columns/numeric.js", "../node_modules/drizzle-orm/pg-core/columns/point.js", "../node_modules/drizzle-orm/pg-core/columns/postgis_extension/utils.js", "../node_modules/drizzle-orm/pg-core/columns/postgis_extension/geometry.js", "../node_modules/drizzle-orm/pg-core/columns/real.js", "../node_modules/drizzle-orm/pg-core/columns/serial.js", "../node_modules/drizzle-orm/pg-core/columns/smallint.js", "../node_modules/drizzle-orm/pg-core/columns/smallserial.js", "../node_modules/drizzle-orm/pg-core/columns/text.js", "../node_modules/drizzle-orm/pg-core/columns/time.js", "../node_modules/drizzle-orm/pg-core/columns/timestamp.js", "../node_modules/drizzle-orm/pg-core/columns/uuid.js", "../node_modules/drizzle-orm/pg-core/columns/varchar.js", "../node_modules/drizzle-orm/pg-core/columns/vector_extension/bit.js", "../node_modules/drizzle-orm/pg-core/columns/vector_extension/halfvec.js", "../node_modules/drizzle-orm/pg-core/columns/vector_extension/sparsevec.js", "../node_modules/drizzle-orm/pg-core/columns/vector_extension/vector.js", "../node_modules/drizzle-orm/pg-core/columns/all.js", "../node_modules/drizzle-orm/pg-core/table.js", "../node_modules/drizzle-orm/pg-core/primary-keys.js", "../node_modules/drizzle-orm/relations.js", "../node_modules/drizzle-orm/selection-proxy.js", "../node_modules/drizzle-orm/pg-core/query-builders/delete.js", "../node_modules/drizzle-orm/casing.js", "../node_modules/drizzle-orm/pg-core/view-base.js", "../node_modules/drizzle-orm/pg-core/dialect.js", "../node_modules/drizzle-orm/query-builders/query-builder.js", "../node_modules/drizzle-orm/pg-core/query-builders/select.js", "../node_modules/drizzle-orm/pg-core/query-builders/query-builder.js", "../node_modules/drizzle-orm/pg-core/query-builders/insert.js", "../node_modules/drizzle-orm/pg-core/query-builders/refresh-materialized-view.js", "../node_modules/drizzle-orm/pg-core/query-builders/update.js", "../node_modules/drizzle-orm/pg-core/query-builders/count.js", "../node_modules/drizzle-orm/pg-core/query-builders/query.js", "../node_modules/drizzle-orm/pg-core/query-builders/raw.js", "../node_modules/drizzle-orm/pg-core/db.js", "../node_modules/drizzle-orm/pg-core/session.js", "../node_modules/drizzle-orm/neon-http/session.js", "../node_modules/drizzle-orm/neon-http/driver.js", "../src/neonAuthSessionStore.ts", "../src/linkedProviderResolver.ts", "../src/oauthLinkedProviderResolver.ts", "../src/neonLinkedProviders.ts", "../src/linkedProviderStores.ts", "../src/utils.ts"],
3
+ "sources": ["../node_modules/citra/dist/index.js", "../src/index.ts", "../src/audit/config.ts", "../src/audit/wrap.ts", "../src/credentials/routes.ts", "../src/credentials/emailVerification.ts", "../src/constants.ts", "../src/crypto.ts", "../src/credentials/config.ts", "../src/credentials/login.ts", "../src/typeGuards.ts", "../src/session/access.ts", "../src/session/promote.ts", "../src/session/state.ts", "../src/typebox.ts", "../src/credentials/passwordReset.ts", "../src/credentials/passwordPolicy.ts", "../src/credentials/register.ts", "../src/htmx/routes.ts", "../src/routes/protectRoute.ts", "../src/htmx/renderers.ts", "../src/lockout/config.ts", "../src/mfa/types.ts", "../src/mfa/gate.ts", "../src/mfa/routes.ts", "../src/mfa/challenge.ts", "../src/mfa/backupCodes.ts", "../src/mfa/config.ts", "../src/mfa/secret.ts", "../src/mfa/totp.ts", "../src/providers/clients.ts", "../src/routes/authorize.ts", "../src/routes/callback.ts", "../src/errors.ts", "../src/routes/profile.ts", "../src/routes/refresh.ts", "../src/routes/revoke.ts", "../src/routes/sessions.ts", "../src/session/userSessions.ts", "../src/routes/stepUp.ts", "../src/routes/signout.ts", "../src/routes/userStatus.ts", "../src/session/cleanup.ts", "../src/session/inMemoryStore.ts", "../node_modules/@neondatabase/serverless/index.mjs", "../node_modules/drizzle-orm/entity.js", "../node_modules/drizzle-orm/column.js", "../node_modules/drizzle-orm/column-builder.js", "../node_modules/drizzle-orm/table.utils.js", "../node_modules/drizzle-orm/pg-core/foreign-keys.js", "../node_modules/drizzle-orm/tracing-utils.js", "../node_modules/drizzle-orm/pg-core/unique-constraint.js", "../node_modules/drizzle-orm/pg-core/utils/array.js", "../node_modules/drizzle-orm/pg-core/columns/common.js", "../node_modules/drizzle-orm/pg-core/columns/enum.js", "../node_modules/drizzle-orm/subquery.js", "../node_modules/drizzle-orm/version.js", "../node_modules/drizzle-orm/tracing.js", "../node_modules/drizzle-orm/view-common.js", "../node_modules/drizzle-orm/table.js", "../node_modules/drizzle-orm/sql/sql.js", "../node_modules/drizzle-orm/alias.js", "../node_modules/drizzle-orm/errors.js", "../node_modules/drizzle-orm/sql/expressions/conditions.js", "../node_modules/drizzle-orm/sql/expressions/select.js", "../node_modules/drizzle-orm/logger.js", "../node_modules/drizzle-orm/query-promise.js", "../node_modules/drizzle-orm/utils.js", "../node_modules/drizzle-orm/pg-core/columns/int.common.js", "../node_modules/drizzle-orm/pg-core/columns/bigint.js", "../node_modules/drizzle-orm/pg-core/columns/bigserial.js", "../node_modules/drizzle-orm/pg-core/columns/boolean.js", "../node_modules/drizzle-orm/pg-core/columns/char.js", "../node_modules/drizzle-orm/pg-core/columns/cidr.js", "../node_modules/drizzle-orm/pg-core/columns/custom.js", "../node_modules/drizzle-orm/pg-core/columns/date.common.js", "../node_modules/drizzle-orm/pg-core/columns/date.js", "../node_modules/drizzle-orm/pg-core/columns/double-precision.js", "../node_modules/drizzle-orm/pg-core/columns/inet.js", "../node_modules/drizzle-orm/pg-core/columns/integer.js", "../node_modules/drizzle-orm/pg-core/columns/interval.js", "../node_modules/drizzle-orm/pg-core/columns/json.js", "../node_modules/drizzle-orm/pg-core/columns/jsonb.js", "../node_modules/drizzle-orm/pg-core/columns/line.js", "../node_modules/drizzle-orm/pg-core/columns/macaddr.js", "../node_modules/drizzle-orm/pg-core/columns/macaddr8.js", "../node_modules/drizzle-orm/pg-core/columns/numeric.js", "../node_modules/drizzle-orm/pg-core/columns/point.js", "../node_modules/drizzle-orm/pg-core/columns/postgis_extension/utils.js", "../node_modules/drizzle-orm/pg-core/columns/postgis_extension/geometry.js", "../node_modules/drizzle-orm/pg-core/columns/real.js", "../node_modules/drizzle-orm/pg-core/columns/serial.js", "../node_modules/drizzle-orm/pg-core/columns/smallint.js", "../node_modules/drizzle-orm/pg-core/columns/smallserial.js", "../node_modules/drizzle-orm/pg-core/columns/text.js", "../node_modules/drizzle-orm/pg-core/columns/time.js", "../node_modules/drizzle-orm/pg-core/columns/timestamp.js", "../node_modules/drizzle-orm/pg-core/columns/uuid.js", "../node_modules/drizzle-orm/pg-core/columns/varchar.js", "../node_modules/drizzle-orm/pg-core/columns/vector_extension/bit.js", "../node_modules/drizzle-orm/pg-core/columns/vector_extension/halfvec.js", "../node_modules/drizzle-orm/pg-core/columns/vector_extension/sparsevec.js", "../node_modules/drizzle-orm/pg-core/columns/vector_extension/vector.js", "../node_modules/drizzle-orm/pg-core/columns/all.js", "../node_modules/drizzle-orm/pg-core/table.js", "../node_modules/drizzle-orm/pg-core/primary-keys.js", "../node_modules/drizzle-orm/relations.js", "../node_modules/drizzle-orm/selection-proxy.js", "../node_modules/drizzle-orm/pg-core/query-builders/delete.js", "../node_modules/drizzle-orm/casing.js", "../node_modules/drizzle-orm/pg-core/view-base.js", "../node_modules/drizzle-orm/pg-core/dialect.js", "../node_modules/drizzle-orm/query-builders/query-builder.js", "../node_modules/drizzle-orm/pg-core/query-builders/select.js", "../node_modules/drizzle-orm/pg-core/query-builders/query-builder.js", "../node_modules/drizzle-orm/pg-core/query-builders/insert.js", "../node_modules/drizzle-orm/pg-core/query-builders/refresh-materialized-view.js", "../node_modules/drizzle-orm/pg-core/query-builders/update.js", "../node_modules/drizzle-orm/pg-core/query-builders/count.js", "../node_modules/drizzle-orm/pg-core/query-builders/query.js", "../node_modules/drizzle-orm/pg-core/query-builders/raw.js", "../node_modules/drizzle-orm/pg-core/db.js", "../node_modules/drizzle-orm/pg-core/session.js", "../node_modules/drizzle-orm/neon-http/session.js", "../node_modules/drizzle-orm/neon-http/driver.js", "../src/session/neonStore.ts", "../src/linkedProviders/resolver.ts", "../src/linkedProviders/oauthResolver.ts", "../src/linkedProviders/neonStores.ts", "../src/linkedProviders/inMemoryStores.ts", "../src/utils.ts", "../src/tenancy.ts", "../src/credentials/inMemoryCredentialStore.ts", "../src/stores/postgres.ts", "../src/credentials/postgresCredentialStore.ts", "../src/mfa/inMemoryMfaStore.ts", "../src/mfa/postgresMfaStore.ts", "../src/lockout/inMemoryLockoutStore.ts", "../src/lockout/postgresLockoutStore.ts", "../src/audit/inMemoryAuditStore.ts", "../src/audit/postgresAuditStore.ts"],
4
4
  "sourcesContent": [
5
5
  "// @bun\n// src/constants.ts\nvar NUM_GENERATOR_BYTES = 32;\nvar BASE64_BLOCK_SIZE = 4;\n\n// src/graphqlQueries.ts\nvar anilistProfileQuery = `query {\n Viewer {\n id\n name\n about\n avatar {\n large\n medium\n }\n bannerImage\n siteUrl\n createdAt\n updatedAt\n donatorTier\n donatorBadge\n unreadNotificationCount\n options {\n titleLanguage\n displayAdultContent\n airingNotifications\n profileColor\n activityMergeTime\n staffNameLanguage\n }\n mediaListOptions {\n scoreFormat\n rowOrder\n animeList {\n sectionOrder\n customLists\n advancedScoringEnabled\n }\n mangaList {\n sectionOrder\n customLists\n advancedScoringEnabled\n }\n }\n statistics {\n anime {\n count\n meanScore\n minutesWatched\n episodesWatched\n }\n manga {\n count\n meanScore\n chaptersRead\n volumesRead\n }\n }\n favourites {\n anime {\n nodes {\n id\n title {\n romaji\n english\n }\n siteUrl\n }\n }\n manga {\n nodes {\n id\n title {\n romaji\n english\n }\n siteUrl\n }\n }\n characters {\n nodes {\n id\n name {\n full\n }\n image {\n large\n }\n }\n }\n staff {\n nodes {\n id\n name {\n full\n }\n image {\n large\n }\n }\n }\n studios {\n nodes {\n id\n name\n siteUrl\n }\n }\n }\n isFollower\n isFollowing\n }\n}`;\n\n// src/providers.ts\nvar defineProviders = (providers) => providers;\nvar providers = defineProviders({\n \"42\": {\n authorizationUrl: \"https://api.intra.42.fr/oauth/authorize\",\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.intra.42.fr/v2/me\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://api.intra.42.fr/oauth/token\"\n }\n },\n amazoncognito: {\n authorizationUrl: \"https://${domain}/oauth2/authorize\",\n isOIDC: true,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: (config) => `https://${config.domain}/oauth2/userInfo`\n },\n revocationRequest: {\n authIn: \"body\",\n encoding: \"application/json\",\n tokenParamName: \"token\",\n url: (config) => `https://${config.domain}/oauth2/revoke`\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: (config) => `https://${config.domain}/oauth2/token`\n }\n },\n anilist: {\n authorizationUrl: \"https://anilist.co/api/v2/oauth/authorize\",\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n body: {\n query: anilistProfileQuery\n },\n encoding: \"application/json\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n method: \"POST\",\n url: \"https://graphql.anilist.co\"\n },\n scopeRequired: false,\n subject: [\"data\", \"Viewer\", \"id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://anilist.co/api/v2/oauth/token\"\n }\n },\n apple: {\n authorizationUrl: \"https://appleid.apple.com/auth/authorize\",\n isOIDC: true,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://appleid.apple.com/auth/userinfo\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://appleid.apple.com/auth/token\"\n }\n },\n atlassian: {\n authorizationUrl: \"https://auth.atlassian.com/authorize\",\n createAuthorizationURLSearchParams: {\n audience: \"api.atlassian.com\"\n },\n email: [\"email\"],\n fullName: [\"name\"],\n isOIDC: false,\n isRefreshable: true,\n picture: [\"picture\"],\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.atlassian.com/me\"\n },\n scopeRequired: true,\n subject: [\"account_id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://auth.atlassian.com/oauth/token\"\n }\n },\n auth0: {\n authorizationUrl: (config) => `https://${config.domain}/authorize`,\n isOIDC: true,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: (config) => `https://${config.domain}/userinfo`\n },\n revocationRequest: {\n authIn: \"body\",\n body: new URLSearchParams({\n token_type_hint: \"refresh_token\"\n }),\n encoding: \"application/json\",\n tokenParamName: \"token\",\n url: (config) => `https://${config.domain}/oauth/revoke`\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: (config) => `https://${config.domain}/oauth/token`\n }\n },\n authentik: {\n authorizationUrl: (config) => `https://${config.baseURL}/oauth/authorize`,\n isOIDC: true,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: (config) => `https://${config.baseURL}/api/v3/user/`\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: (config) => `https://${config.baseURL}/oauth/token`\n }\n },\n autodesk: {\n authorizationUrl: \"https://developer.api.autodesk.com/authentication/v2/authorize\",\n email: [\"email\"],\n familyName: [\"family_name\"],\n fullName: [\"name\"],\n givenName: [\"given_name\"],\n isOIDC: true,\n isRefreshable: true,\n picture: [\"picture\"],\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.userprofile.autodesk.com/userinfo\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://developer.api.autodesk.com/authentication/v2/token\"\n }\n },\n battlenet: {\n authorizationUrl: \"https://oauth.battle.net/authorize\",\n isOIDC: true,\n isRefreshable: false,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://oauth.battle.net/userinfo\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://oauth.battle.net/token\"\n }\n },\n bitbucket: {\n authorizationUrl: \"https://bitbucket.org/site/oauth2/authorize\",\n fullName: [\"display_name\"],\n isOIDC: false,\n isRefreshable: true,\n picture: [\"links\", \"avatar\", \"href\"],\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.bitbucket.org/2.0/user\"\n },\n scopeRequired: false,\n subject: [\"uuid\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://bitbucket.org/site/oauth2/access_token\"\n }\n },\n box: {\n authorizationUrl: \"https://account.box.com/api/oauth2/authorize\",\n email: [\"login\"],\n fullName: [\"name\"],\n isOIDC: false,\n isRefreshable: true,\n picture: [\"avatar_url\"],\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.box.com/2.0/users/me\"\n },\n revocationRequest: {\n authIn: \"body\",\n encoding: \"application/json\",\n tokenParamName: \"token\",\n url: \"https://api.box.com/oauth2/revoke\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://api.box.com/oauth2/token\"\n }\n },\n bungie: {\n authorizationUrl: \"https://www.bungie.net/en/OAuth/Authorize\",\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n headers: {\n \"X-API-Key\": \"<YOUR_API_KEY>\"\n },\n method: \"GET\",\n url: \"https://www.bungie.net/Platform/User/GetCurrentBungieNetUser\"\n },\n scopeRequired: false,\n subject: [\"Response\", \"membershipId\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://www.bungie.net/Platform/App/OAuth/token\"\n }\n },\n coinbase: {\n authorizationUrl: \"https://www.coinbase.com/oauth/authorize\",\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.coinbase.com/v2/user\"\n },\n scopeRequired: false,\n subject: [\"data\", \"id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://api.coinbase.com/oauth/token\"\n }\n },\n discord: {\n authorizationUrl: \"https://discord.com/api/oauth2/authorize\",\n email: [\"email\"],\n isOIDC: true,\n isRefreshable: true,\n picture: [\"avatar\"],\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://discord.com/api/users/@me\"\n },\n scopeRequired: true,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://discord.com/api/oauth2/token\"\n }\n },\n donationalerts: {\n authorizationUrl: \"https://www.donationalerts.com/oauth/authorize\",\n email: [\"data\", \"email\"],\n isOIDC: false,\n isRefreshable: true,\n picture: [\"data\", \"avatar\"],\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://www.donationalerts.com/api/v1/user/oauth\"\n },\n scopeRequired: false,\n subject: [\"data\", \"id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://www.donationalerts.com/oauth/token\"\n }\n },\n dribbble: {\n authorizationUrl: \"https://dribbble.com/oauth/authorize\",\n isOIDC: false,\n isRefreshable: false,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.dribbble.com/v2/user\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://dribbble.com/oauth/token\"\n }\n },\n dropbox: {\n authorizationUrl: \"https://www.dropbox.com/oauth2/authorize\",\n email: [\"email\"],\n familyName: [\"name\", \"surname\"],\n fullName: [\"name\", \"display_name\"],\n givenName: [\"name\", \"given_name\"],\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"POST\",\n url: \"https://api.dropboxapi.com/2/users/get_current_account\"\n },\n revocationRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n url: \"https://api.dropboxapi.com/2/auth/token/revoke\"\n },\n scopeRequired: false,\n subject: [\"account_id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://api.dropboxapi.com/oauth2/token\"\n }\n },\n epicgames: {\n authorizationUrl: \"https://www.epicgames.com/id/authorize\",\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.epicgames.dev/epic/oauth/v2/userInfo\"\n },\n scopeRequired: false,\n subject: [\"account_id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://api.epicgames.dev/epic/oauth/v1/token\"\n }\n },\n etsy: {\n authorizationUrl: \"https://www.etsy.com/oauth/connect\",\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://openapi.etsy.com/v3/application/users/me\"\n },\n scopeRequired: false,\n subject: [\"results\", \"0\", \"user_id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://api.etsy.com/v3/public/oauth/token\"\n }\n },\n facebook: {\n authorizationUrl: \"https://www.facebook.com/v16.0/dialog/oauth\",\n email: [\"email\"],\n familyName: [\"family_name\"],\n fullName: [\"name\"],\n givenName: [\"given_name\"],\n isOIDC: true,\n isRefreshable: false,\n picture: [\"picture\"],\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"query\",\n encoding: \"application/json\",\n method: \"GET\",\n searchParams: [[\"fields\", \"id,name,email,picture\"]],\n url: \"https://graph.facebook.com/me\"\n },\n scopeRequired: false,\n subject: [\"sub\"],\n subjectBySource: {\n idToken: [\"sub\"],\n profile: [\"id\"]\n },\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://graph.facebook.com/v16.0/oauth/access_token\"\n }\n },\n figma: {\n authorizationUrl: \"https://www.figma.com/oauth\",\n email: [\"email\"],\n isOIDC: false,\n isRefreshable: true,\n picture: [\"img_url\"],\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.figma.com/v1/me\"\n },\n scopeRequired: true,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://api.figma.com/v1/oauth/token\"\n }\n },\n gitea: {\n authorizationUrl: (config) => `${config.baseURL}/login/oauth/authorize`,\n isOIDC: true,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: (config) => `${config.baseURL}/api/v1/user`\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: (config) => `${config.baseURL}/login/oauth/access_token`\n }\n },\n github: {\n authorizationUrl: \"https://github.com/login/oauth/authorize\",\n email: [\"email\"],\n isOIDC: false,\n isRefreshable: false,\n picture: [\"avatar_url\"],\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.github.com/user\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://github.com/login/oauth/access_token\"\n }\n },\n gitlab: {\n authorizationUrl: (config) => `${config.baseURL}/oauth/authorize`,\n email: [\"email\"],\n fullName: [\"name\"],\n isOIDC: true,\n isRefreshable: true,\n picture: [\"picture\"],\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://gitlab.com/api/v4/user\"\n },\n revocationRequest: {\n authIn: \"body\",\n encoding: \"application/json\",\n tokenParamName: \"token\",\n url: (config) => `${config.baseURL}/oauth/revoke`\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: (config) => `${config.baseURL}/oauth/token`\n }\n },\n google: {\n authorizationUrl: \"https://accounts.google.com/o/oauth2/v2/auth\",\n email: [\"email\"],\n familyName: [\"family_name\"],\n fullName: [\"name\"],\n givenName: [\"given_name\"],\n isOIDC: true,\n isRefreshable: true,\n picture: [\"picture\"],\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://openidconnect.googleapis.com/v1/userinfo\"\n },\n revocationRequest: {\n authIn: \"body\",\n encoding: \"application/json\",\n tokenParamName: \"token\",\n url: \"https://oauth2.googleapis.com/revoke\"\n },\n scopeRequired: true,\n subject: [\"sub\"],\n subjectBySource: {\n idToken: [\"sub\"],\n profile: [\"sub\"]\n },\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://oauth2.googleapis.com/token\"\n }\n },\n intuit: {\n authorizationUrl: \"https://appcenter.intuit.com/connect/oauth2\",\n isOIDC: true,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: (config) => config.environment === \"production\" ? \"https://accounts.platform.intuit.com/v1/openid_connect/userinfo\" : \"https://sandbox-accounts.platform.intuit.com/v1/openid_connect/userinfo\"\n },\n revocationRequest: {\n authIn: \"body\",\n encoding: \"application/json\",\n headers: (config) => ({\n Authorization: `Basic ${encodeBase64(`${config.clientId}:${config.clientSecret}`)}`\n }),\n tokenParamName: \"token\",\n url: \"https://developer.api.intuit.com/v2/oauth2/tokens/revoke\"\n },\n scopeRequired: true,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer\"\n }\n },\n kakao: {\n authorizationUrl: \"https://kauth.kakao.com/oauth/authorize\",\n isOIDC: true,\n isRefreshable: true,\n picture: [\"picture\"],\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://kapi.kakao.com/v2/user/me\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://kauth.kakao.com/oauth/token\"\n }\n },\n keycloak: {\n authorizationUrl: (config) => `${config.realmURL}/protocol/openid-connect/auth`,\n isOIDC: true,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.kick.com/v1/user\"\n },\n revocationRequest: {\n authIn: \"body\",\n encoding: \"application/json\",\n tokenParamName: \"token\",\n url: (config) => `${config.realmURL}/protocol/openid-connect/revoke`\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: (config) => `${config.realmURL}/protocol/openid-connect/token`\n }\n },\n kick: {\n authorizationUrl: \"https://id.kick.com/oauth/authorize\",\n email: [\"data\", \"email\"],\n isOIDC: false,\n isRefreshable: true,\n picture: [\"data\", \"profile_picture\"],\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.kick.com/public/v1/users\"\n },\n revocationRequest: {\n authIn: \"body\",\n encoding: \"application/json\",\n tokenParamName: \"token\",\n url: \"https://id.kick.com/oauth/revoke\"\n },\n scopeRequired: true,\n subject: [\"data\", \"user_id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://id.kick.com/oauth/token\"\n }\n },\n lichess: {\n authorizationUrl: \"https://lichess.org/oauth/authorize\",\n isOIDC: false,\n isRefreshable: false,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://lichess.org/api/account\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://lichess.org/api/token\"\n }\n },\n line: {\n authorizationUrl: \"https://access.line.me/oauth2/v2.1/authorize\",\n isOIDC: true,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.line.me/v2/profile\"\n },\n scopeRequired: true,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://api.line.me/oauth2/v2.1/token\"\n }\n },\n linear: {\n authorizationUrl: \"https://linear.app/oauth/authorize\",\n isOIDC: false,\n isRefreshable: false,\n profileRequest: {\n authIn: \"header\",\n body: {\n query: `query { viewer { id name } }`\n },\n encoding: \"application/json\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n method: \"POST\",\n url: \"https://api.linear.app/graphql\"\n },\n revocationRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n url: \"https://api.linear.app/oauth/revoke\"\n },\n scopeRequired: false,\n subject: [\"data\", \"viewer\", \"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://api.linear.app/oauth/token\"\n }\n },\n linkedin: {\n authorizationUrl: \"https://www.linkedin.com/oauth/v2/authorization\",\n isOIDC: true,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.linkedin.com/v2/me\"\n },\n scopeRequired: true,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://www.linkedin.com/oauth/v2/accessToken\"\n }\n },\n mastodon: {\n authorizationUrl: (config) => `${config.baseURL}/oauth/authorize`,\n isOIDC: false,\n isRefreshable: false,\n picture: [\"avatar\"],\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: (config) => `${config.baseURL}/api/v1/accounts/verify_credentials`\n },\n revocationRequest: {\n authIn: \"body\",\n encoding: \"application/json\",\n tokenParamName: \"token\",\n url: (config) => `${config.baseURL}/oauth/revoke`\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: (config) => `${config.baseURL}/oauth/token`\n }\n },\n mercadolibre: {\n authorizationUrl: \"https://auth.mercadolibre.com/authorization\",\n isOIDC: false,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.mercadolibre.com/users/me\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://api.mercadolibre.com/oauth/token\"\n }\n },\n mercadopago: {\n authorizationUrl: \"https://auth.mercadopago.com/authorization\",\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.mercadopago.com/v1/users/me\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://api.mercadopago.com/oauth/token\"\n }\n },\n microsoftentraid: {\n authorizationUrl: (config) => `https://${config.tenantId}.b2clogin.com/${config.tenantId}/oauth2/v2.0/authorize`,\n isOIDC: true,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: (config) => `https://${config.tenantId}.b2clogin.com/${config.tenantId}/openid/userinfo`\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: (config) => `https://${config.tenantId}.b2clogin.com/${config.tenantId}/oauth2/v2.0/token`\n }\n },\n myanimelist: {\n authorizationUrl: \"https://myanimelist.net/v1/oauth2/authorize\",\n isOIDC: false,\n isRefreshable: true,\n PKCEMethod: \"plain\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.myanimelist.net/v2/users/@me\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://myanimelist.net/v1/oauth2/token\"\n }\n },\n naver: {\n authorizationUrl: \"https://nid.naver.com/oauth2.0/authorize\",\n email: [\"response\", \"email\"],\n fullName: [\"response\", \"name\"],\n isOIDC: false,\n isRefreshable: true,\n picture: [\"response\", \"profile_image\"],\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://openapi.naver.com/v1/nid/me\"\n },\n scopeRequired: false,\n subject: [\"response\", \"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://nid.naver.com/oauth2.0/token\"\n }\n },\n notion: {\n authorizationUrl: \"https://api.notion.com/v1/oauth/authorize\",\n email: [\"bot\", \"owner\", \"user\", \"person\", \"email\"],\n isOIDC: false,\n isRefreshable: false,\n picture: [\"bot\", \"owner\", \"user\", \"avatar_url\"],\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n headers: {\n \"Notion-Version\": \"2022-06-28\"\n },\n method: \"GET\",\n url: \"https://api.notion.com/v1/users/me\"\n },\n scopeRequired: false,\n subject: [\"bot\", \"owner\", \"user\", \"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n url: \"https://api.notion.com/v1/oauth/token\"\n }\n },\n okta: {\n authorizationUrl: (config) => `https://${config.domain}/oauth2/default/v1/authorize`,\n isOIDC: true,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: (config) => `https://${config.domain}/oauth2/default/v1/userinfo`\n },\n revocationRequest: {\n authIn: \"body\",\n encoding: \"application/json\",\n tokenParamName: \"token\",\n url: (config) => `https://${config.domain}/oauth2/default/v1/revoke`\n },\n scopeRequired: true,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: (config) => `https://${config.domain}/oauth2/default/v1/token`\n }\n },\n osu: {\n authorizationUrl: \"https://osu.ppy.sh/oauth/authorize\",\n isOIDC: false,\n isRefreshable: true,\n picture: [\"avatar_url\"],\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://osu.ppy.sh/api/v2/me\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://osu.ppy.sh/oauth/token\"\n }\n },\n patreon: {\n authorizationUrl: \"https://www.patreon.com/oauth2/authorize\",\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://www.patreon.com/api/oauth2/v2/identity\"\n },\n scopeRequired: false,\n subject: [\"data\", \"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://www.patreon.com/api/oauth2/token\"\n }\n },\n polar: {\n authorizationUrl: \"https://polar.sh/oauth2/authorize\",\n isOIDC: true,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.polar.sh/v1/oauth2/userinfo\"\n },\n revocationRequest: {\n authIn: \"body\",\n encoding: \"application/json\",\n tokenParamName: \"token\",\n url: \"https://api.polar.sh/v1/oauth2/revoke\"\n },\n scopeRequired: true,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://api.polar.sh/v1/oauth2/token\"\n }\n },\n polaraccesslink: {\n authorizationUrl: \"https://flow.polar.com/oauth2/authorization\",\n isOIDC: false,\n isRefreshable: false,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://www.polaraccesslink.com/v3/users/me\"\n },\n scopeRequired: false,\n subject: [\"x_user_id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"header\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://polarremote.com/v2/oauth2/token\"\n }\n },\n polarteampro: {\n authorizationUrl: \"https://auth.polar.com/oauth/authorize\",\n isOIDC: false,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://www.polaraccesslink.com/v3/users/<USER_ID>\"\n },\n scopeRequired: false,\n subject: [\"x_user_id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"header\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://auth.polar.com/oauth/token\"\n }\n },\n reddit: {\n authorizationUrl: \"https://www.reddit.com/api/v1/authorize\",\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://oauth.reddit.com/api/v1/me\"\n },\n revocationRequest: {\n authIn: \"header\",\n body: new URLSearchParams({\n token_type_hint: \"refresh_token\"\n }),\n encoding: \"application/json\",\n url: \"https://www.reddit.com/api/v1/revoke_token\"\n },\n scopeRequired: true,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"header\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://www.reddit.com/api/v1/access_token\"\n }\n },\n roblox: {\n authorizationUrl: \"https://apis.roblox.com/oauth/v1/authorize\",\n isOIDC: true,\n isRefreshable: true,\n picture: [\"picture\"],\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://apis.roblox.com/oauth/v1/userinfo\"\n },\n scopeRequired: true,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://apis.roblox.com/oauth/v1/token\"\n }\n },\n salesforce: {\n authorizationUrl: \"https://login.salesforce.com/services/oauth2/authorize\",\n isOIDC: true,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://login.salesforce.com/services/oauth2/userinfo\"\n },\n revocationRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n url: \"https://login.salesforce.com/services/oauth2/revoke\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://login.salesforce.com/services/oauth2/token\"\n }\n },\n shikimori: {\n authorizationUrl: \"https://shikimori.org/oauth/authorize\",\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://shikimori.one/api/users/whoami\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://shikimori.org/oauth/token\"\n }\n },\n slack: {\n authorizationUrl: \"https://slack.com/openid/connect/authorize\",\n isOIDC: true,\n isRefreshable: true,\n profileRequest: {\n authIn: \"query\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://slack.com/api/users.identity\"\n },\n revocationRequest: {\n authIn: \"body\",\n encoding: \"application/json\",\n tokenParamName: \"token\",\n url: \"https://slack.com/api/auth.revoke\"\n },\n scopeRequired: true,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://slack.com/api/openid.connect.token\"\n }\n },\n spotify: {\n authorizationUrl: \"https://accounts.spotify.com/authorize\",\n isOIDC: false,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.spotify.com/v1/me\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://accounts.spotify.com/api/token\"\n }\n },\n startgg: {\n authorizationUrl: \"https://start.gg/oauth/authorize\",\n email: [\"data\", \"currentUser\", \"email\"],\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n body: {\n query: `query { currentUser { id slug email player { gamerTag } } }`\n },\n encoding: \"application/json\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n method: \"POST\",\n url: \"https://api.start.gg/gql/alpha\"\n },\n scopeRequired: false,\n subject: [\"data\", \"currentUser\", \"id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://api.start.gg/oauth/access_token\"\n }\n },\n strava: {\n authorizationUrl: \"https://www.strava.com/oauth/authorize\",\n familyName: [\"lastname\"],\n givenName: [\"firstname\"],\n isOIDC: false,\n isRefreshable: true,\n picture: [\"profile\"],\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://www.strava.com/api/v3/athlete\"\n },\n revocationRequest: {\n authIn: \"query\",\n body: new URLSearchParams({\n token_type_hint: \"access_token\"\n }),\n encoding: \"application/json\",\n tokenParamName: \"access_token\",\n url: \"https://www.strava.com/oauth/deauthorize\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://www.strava.com/oauth/token\"\n }\n },\n synology: {\n authorizationUrl: (config) => `${config.baseURL}/webman/sso/SSOOauth.cgi?client_id=${config.clientId}&response_type=code&redirect_uri=${config.redirectUri}`,\n isOIDC: false,\n isRefreshable: false,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: (config) => `${config.baseURL}/webman/sso/SSOUserInfo.cgi?client_id=${config.clientId}&access_token=${config.accessToken}`\n },\n scopeRequired: false,\n subject: [\"data\", \"id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: (config) => `${config.baseURL}/webman/sso/SSOAccessToken.cgi?client_id=${config.clientId}&client_secret=${config.clientSecret}`\n }\n },\n tiktok: {\n authorizationUrl: \"https://www.tiktok.com/v2/auth/authorize\",\n createAuthorizationURLSearchParams: (config) => ({\n client_key: config.clientId\n }),\n isOIDC: false,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"query\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://open.douyin.com/oauth/userinfo\"\n },\n revocationRequest: {\n authIn: \"body\",\n encoding: \"application/json\",\n tokenParamName: \"token\",\n url: \"https://open.tiktokapis.com/v2/oauth/revoke/\"\n },\n scopeRequired: false,\n subject: [\"data\", \"open_id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://open.tiktokapis.com/v2/oauth/token/\"\n }\n },\n tiltify: {\n authorizationUrl: \"https://v5api.tiltify.com/oauth/authorize\",\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://v5api.tiltify.com/api/public/current-user\"\n },\n scopeRequired: false,\n subject: [\"data\", \"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://v5api.tiltify.com/oauth/token\"\n }\n },\n tumblr: {\n authorizationUrl: \"https://www.tumblr.com/oauth2/authorize\",\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.tumblr.com/v2/user/info\"\n },\n scopeRequired: false,\n subject: [\"response\", \"user\", \"name\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://api.tumblr.com/v2/oauth2/token\"\n }\n },\n twitch: {\n authorizationUrl: \"https://id.twitch.tv/oauth2/authorize\",\n isOIDC: true,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n headers: (config) => ({\n \"Client-Id\": config.clientId\n }),\n method: \"GET\",\n url: \"https://api.twitch.tv/helix/users\"\n },\n revocationRequest: {\n authIn: \"query\",\n encoding: \"application/json\",\n headers: (config) => ({\n \"Client-Id\": config.clientId\n }),\n tokenParamName: \"token\",\n url: \"https://id.twitch.tv/oauth2/revoke\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://id.twitch.tv/oauth2/token\"\n }\n },\n twitter: {\n authorizationUrl: \"https://twitter.com/i/oauth2/authorize\",\n isOIDC: false,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.twitter.com/2/users/me\"\n },\n revocationRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n url: \"https://api.twitter.com/2/oauth2/revoke\"\n },\n scopeRequired: false,\n subject: [\"data\", \"id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://api.twitter.com/2/oauth2/token\"\n }\n },\n vk: {\n authorizationUrl: \"https://oauth.vk.com/authorize\",\n isOIDC: false,\n isRefreshable: false,\n profileRequest: {\n authIn: \"query\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.vk.com/method/users.get\"\n },\n scopeRequired: false,\n subject: [\"response\", \"0\", \"id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://oauth.vk.com/access_token\"\n }\n },\n withings: {\n authorizationUrl: \"https://account.withings.com/oauth2_user/authorize2\",\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n body: async (config) => {\n const props = await getWithingsProps(config);\n if (props === undefined)\n throw new Error(\"Failed to get Withings search properties\");\n const { nonce, hashedSignature } = props;\n return [\n [\"action\", \"getuser\"],\n [\"nonce\", nonce],\n [\"client_id\", config.clientId],\n [\"signature\", hashedSignature]\n ];\n },\n encoding: \"application/x-www-form-urlencoded\",\n method: \"POST\",\n url: \"https://wbsapi.withings.net/v2/oauth2\"\n },\n refreshAccessTokenBody: {\n action: \"requesttoken\"\n },\n revocationRequest: {\n authIn: \"header\",\n body: async (config) => {\n const props = await getWithingsProps(config);\n if (!props)\n throw new Error(\"Failed to get Withings props\");\n const { nonce, hashedSignature } = props;\n return [\n [\"action\", \"revoke\"],\n [\"client_id\", config.clientId],\n [\"nonce\", nonce],\n [\"signature\", hashedSignature]\n ];\n },\n encoding: \"application/x-www-form-urlencoded\",\n method: \"POST\",\n url: \"https://wbsapi.withings.net/v2/oauth2\"\n },\n scopeRequired: true,\n subject: [\"userid\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://wbsapi.withings.net/v2/oauth2\"\n },\n validateAuthorizationCodeBody: {\n action: \"requesttoken\"\n }\n },\n workos: {\n authorizationUrl: (config) => `https://${config.domain}/oauth2/authorize`,\n createAuthorizationURLSearchParams: () => {\n const nonce = crypto.randomUUID();\n return {\n nonce\n };\n },\n email: [\"email\"],\n familyName: [\"family_name\"],\n fullName: [\"name\"],\n givenName: [\"given_name\"],\n isOIDC: true,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"POST\",\n url: (config) => `https://${config.domain}/oauth2/userinfo`\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: (config) => `https://${config.domain}/oauth2/token`\n }\n },\n yahoo: {\n authorizationUrl: \"https://api.login.yahoo.com/oauth2/request_auth\",\n isOIDC: true,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.login.yahoo.com/openid/v1/userinfo\"\n },\n revocationRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n url: \"https://api.login.yahoo.com/oauth2/revoke\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://api.login.yahoo.com/oauth2/get_token\"\n }\n },\n yandex: {\n authorizationUrl: \"https://oauth.yandex.com/authorize\",\n createAuthorizationURLSearchParams: {\n device_id: crypto.randomUUID(),\n device_name: `${navigator.platform ?? \"Unknown\"} \\u2014 ${(navigator.userAgent.split(\")\")[0] || \"\").split(\"(\").pop() || \"Unknown\"}`\n },\n email: [\"default_email\"],\n familyName: [\"last_name\"],\n fullName: [\"real_name\"],\n givenName: [\"first_name\"],\n isOIDC: false,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://login.yandex.ru/info\"\n },\n revocationRequest: {\n authIn: \"body\",\n encoding: \"application/json\",\n tokenParamName: \"access_token\",\n url: \"https://oauth.yandex.com/revoke_token\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://oauth.yandex.com/token\"\n }\n },\n zoom: {\n authorizationUrl: \"https://zoom.us/oauth/authorize\",\n email: [\"email\"],\n familyName: [\"last_name\"],\n givenName: [\"first_name\"],\n isOIDC: false,\n isRefreshable: true,\n picture: [\"pic_url\"],\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.zoom.us/v2/users/me\"\n },\n revocationRequest: {\n authIn: \"query\",\n encoding: \"application/json\",\n headers: (config) => ({\n Authorization: `Basic ${btoa(`${config.clientId}:${config.clientSecret}`)}`\n }),\n tokenParamName: \"token\",\n url: \"https://zoom.us/oauth/revoke\"\n },\n scopeRequired: false,\n subject: [\"id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://zoom.us/oauth/token\"\n }\n }\n});\n\n// src/typeGuards.ts\nvar isValidProviderOption = (option) => Object.hasOwn(providers, option);\nvar isRefreshableProviderOption = (option) => {\n if (!isValidProviderOption(option))\n return false;\n const provider = providers[option];\n return provider.isRefreshable;\n};\nvar isRevocableProviderOption = (option) => {\n if (!isValidProviderOption(option))\n return false;\n const provider = providers[option];\n return provider.revocationRequest !== undefined;\n};\nvar isPKCEProviderOption = (option) => {\n if (!isValidProviderOption(option))\n return false;\n const provider = providers[option];\n return provider.PKCEMethod !== undefined;\n};\nvar isOIDCProviderOption = (option) => {\n if (!isValidProviderOption(option))\n return false;\n const provider = providers[option];\n return provider.isOIDC;\n};\nvar isScopeRequiredProviderOption = (option) => {\n if (!isValidProviderOption(option))\n return false;\n const provider = providers[option];\n return provider.scopeRequired;\n};\nvar isRefreshableOAuth2Client = (providerName, client) => isRefreshableProviderOption(providerName);\nvar isRevocableOAuth2Client = (providerName, client) => isRevocableProviderOption(providerName);\nvar hasClientSecret = (credentials) => {\n if (typeof credentials !== \"object\" || credentials === null)\n return false;\n const secret = Reflect.get(credentials, \"clientSecret\");\n return typeof secret === \"string\";\n};\nvar isObject = (x) => x !== null && typeof x === \"object\" && !Array.isArray(x) && Object.prototype.toString.call(x) === \"[object Object]\";\nvar isExpectedType = (value, kind) => {\n switch (kind) {\n case \"string\":\n return typeof value === \"string\";\n case \"number\":\n return typeof value === \"number\";\n case \"boolean\":\n return typeof value === \"boolean\";\n case \"object\":\n return typeof value === \"object\" && value !== null;\n }\n};\n\n// src/utils.ts\nvar createOAuth2FetchError = async (response) => {\n const clone = response.clone();\n const prefix = `HTTP ${response.status} ${response.statusText} for ${response.url}`;\n const payload = await response.json().catch(() => null);\n if (payload && typeof payload === \"object\" && Object.keys(payload).length) {\n return new Error(`${prefix}\n${JSON.stringify(payload)}`);\n }\n const text = await clone.text().catch(() => \"\");\n if (text) {\n return new Error(`${prefix}\n${text}`);\n }\n return new Error(prefix);\n};\nvar encodeBase64 = (input) => {\n let raw;\n if (typeof input === \"string\") {\n raw = input;\n } else {\n const bytes = input instanceof Uint8Array ? input : new Uint8Array(input);\n raw = bytes.reduce((acc, byte) => acc + String.fromCharCode(byte), \"\");\n }\n return btoa(raw);\n};\nvar decodeBase64 = (input, toUint8Array = false) => {\n const b64 = input.replace(/-/g, \"+\").replace(/_/g, \"/\") + \"==\".slice(0, (BASE64_BLOCK_SIZE - input.length % BASE64_BLOCK_SIZE) % BASE64_BLOCK_SIZE);\n const raw = atob(b64);\n if (!toUint8Array) {\n return raw;\n }\n const bytes = new Uint8Array(raw.length);\n for (let i = 0;i < raw.length; i++) {\n bytes[i] = raw.charCodeAt(i);\n }\n return bytes;\n};\nvar hmacSha256 = async (message, secret) => {\n const encoder = new TextEncoder;\n const key = await crypto.subtle.importKey(\"raw\", encoder.encode(secret), { hash: \"SHA-256\", name: \"HMAC\" }, false, [\"sign\"]);\n const sigBuffer = await crypto.subtle.sign(\"HMAC\", key, encoder.encode(message));\n return Array.from(new Uint8Array(sigBuffer)).map((b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n};\nvar decodeJWT = (tokenString) => {\n const [headerSegment, payloadSegment, signatureSegment] = tokenString.split(\".\");\n if (!headerSegment || !payloadSegment || !signatureSegment) {\n throw new Error(\"Invalid JWT format\");\n }\n const decodedPayload = decodeBase64(payloadSegment);\n if (typeof decodedPayload !== \"string\") {\n throw new Error(\"Expected JWT payload to be a UTF-8 string\");\n }\n return JSON.parse(decodedPayload);\n};\nvar getWithingsProps = async (config) => {\n const timestamp = Math.floor(Date.now() / 1000);\n const signature = `getnonce,${config.clientId},${timestamp}`;\n const hashedSignature = await hmacSha256(signature, config.clientSecret);\n const nonceUrl = new URL(\"https://wbsapi.withings.net/v2/signature\");\n nonceUrl.searchParams.set(\"action\", \"getnonce\");\n nonceUrl.searchParams.set(\"client_id\", config.clientId);\n nonceUrl.searchParams.set(\"timestamp\", timestamp.toString());\n nonceUrl.searchParams.set(\"signature\", hashedSignature);\n const nonceResponse = await fetch(nonceUrl.toString(), {\n method: \"POST\"\n });\n const nonceData = await nonceResponse.json();\n if (nonceData.status === 0) {\n return {\n hashedSignature,\n nonce: nonceData.body.nonce\n };\n }\n return;\n};\nvar createOAuth2Request = ({\n url,\n body,\n authIn,\n headers,\n encoding,\n clientId,\n clientSecret\n}) => {\n const oauthHeaders = new Headers(headers);\n oauthHeaders.set(\"Accept\", \"application/json\");\n oauthHeaders.set(\"User-Agent\", \"citra\");\n if (authIn === \"header\") {\n if (!clientSecret) {\n throw new Error(\"clientSecret required for header auth\");\n }\n oauthHeaders.set(\"Authorization\", `Basic ${encodeBase64(`${clientId}:${clientSecret}`)}`);\n }\n if (encoding === \"application/json\") {\n oauthHeaders.set(\"Content-Type\", \"application/json\");\n return new Request(url, {\n body: JSON.stringify(body),\n headers: oauthHeaders,\n method: \"POST\"\n });\n }\n oauthHeaders.set(\"Content-Type\", \"application/x-www-form-urlencoded\");\n const entries = body instanceof URLSearchParams ? Array.from(body.entries()) : Object.entries(body).filter((entry) => typeof entry[1] === \"string\");\n const params = new URLSearchParams(entries);\n if (authIn === \"body\") {\n params.set(\"client_id\", clientId);\n clientSecret && params.set(\"client_secret\", clientSecret);\n }\n return new Request(url, {\n body: params.toString(),\n headers: oauthHeaders,\n method: \"POST\"\n });\n};\nvar extractPropFromIdentity = (identity, keys, propType) => {\n let value = identity;\n for (const key of keys) {\n if (Array.isArray(value))\n value = value[Number(key)];\n if (!isObject(value)) {\n throw new Error(`Invalid identity data shape: expected object, got ${typeof value}`);\n }\n value = value[key];\n }\n if (propType !== undefined && !isExpectedType(value, propType)) {\n throw new Error(`Invalid identity data shape: expected ${propType}, got ${typeof value}`);\n }\n return value;\n};\nvar getProviderSubjectKeys = (providerConfiguration, source) => providerConfiguration.subjectBySource?.[source] ?? providerConfiguration.subject;\nvar setPropInIdentity = (identity, keys, value) => {\n if (keys.length === 0) {\n return identity;\n }\n let cursor = identity;\n for (const key of keys.slice(0, -1)) {\n const next = cursor[key];\n if (!isObject(next)) {\n cursor[key] = {};\n }\n cursor = cursor[key];\n }\n cursor[keys[keys.length - 1]] = value;\n return identity;\n};\nvar normalizeProviderIdentity = ({\n identity,\n providerConfiguration,\n source\n}) => {\n const sourceKeys = getProviderSubjectKeys(providerConfiguration, source);\n const canonicalKeys = providerConfiguration.subject;\n if (sourceKeys.join(\".\") === canonicalKeys.join(\".\")) {\n return identity;\n }\n const subject = extractPropFromIdentity(identity, sourceKeys, providerConfiguration.subjectType);\n const normalizedIdentity = structuredClone(identity);\n return setPropInIdentity(normalizedIdentity, canonicalKeys, subject);\n};\n\n// src/arctic-utils.ts\nvar createS256CodeChallenge = async (codeVerifier) => {\n const data = new TextEncoder().encode(codeVerifier);\n const hashBuffer = await crypto.subtle.digest(\"SHA-256\", data);\n return base64Url(hashBuffer);\n};\nvar createRandomBase64UrlGenerator = (length) => () => {\n const buffer = crypto.getRandomValues(new Uint8Array(length));\n return base64Url(buffer);\n};\nvar generateCodeVerifier = createRandomBase64UrlGenerator(NUM_GENERATOR_BYTES);\nvar generateState = createRandomBase64UrlGenerator(NUM_GENERATOR_BYTES);\nvar base64Url = (input) => encodeBase64(input).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n// src/providerOptions.ts\nvar providerOptions = Object.keys(providers).filter(isValidProviderOption);\nvar refreshableProviderOptions = Object.keys(providers).filter(isRefreshableProviderOption);\nvar oidcProviderOptions = Object.keys(providers).filter(isOIDCProviderOption);\nvar revocableProviderOptions = Object.keys(providers).filter(isRevocableProviderOption);\nvar scopeRequiredProviderOptions = Object.keys(providers).filter(isScopeRequiredProviderOption);\nvar pkceProviderOptions = Object.keys(providers).filter(isPKCEProviderOption);\n\n// src/index.ts\nvar createOAuth2Client = async (providerName, config) => {\n const meta = providers[providerName];\n const isConfigPropertyFunction = (cfgProp) => typeof cfgProp === \"function\";\n const resolveConfigProp = async (cfgProp) => {\n const result = isConfigPropertyFunction(cfgProp) ? cfgProp(config) : cfgProp;\n return await result;\n };\n const authorizationUrl = await resolveConfigProp(meta.authorizationUrl);\n const tokenUrl = await resolveConfigProp(meta.tokenRequest.url);\n return {\n async createAuthorizationUrl(opts) {\n const { state, scope = [], searchParams = [], codeVerifier } = opts;\n const url = new URL(authorizationUrl);\n url.searchParams.set(\"response_type\", \"code\");\n url.searchParams.set(\"client_id\", config.clientId);\n if (config.redirectUri)\n url.searchParams.set(\"redirect_uri\", config.redirectUri);\n if (state)\n url.searchParams.set(\"state\", state);\n if (scope.length !== 0) {\n const delimeter = providerName === \"withings\" ? \",\" : \" \";\n url.searchParams.set(\"scope\", scope.join(delimeter));\n }\n if (meta.PKCEMethod !== undefined) {\n if (!codeVerifier) {\n throw new Error(\"`codeVerifier` is required when PKCE is enabled\");\n }\n const codeChallenge = meta.PKCEMethod === \"S256\" ? await createS256CodeChallenge(codeVerifier) : codeVerifier;\n url.searchParams.set(\"code_challenge_method\", meta.PKCEMethod);\n url.searchParams.set(\"code_challenge\", codeChallenge);\n }\n Object.entries(resolveConfigProp(meta.createAuthorizationURLSearchParams) ?? {}).forEach(([key, value]) => url.searchParams.set(key, value));\n searchParams.forEach(([key, value]) => url.searchParams.set(key, value));\n return url;\n },\n async fetchUserProfile(accessToken) {\n const { profileRequest } = meta;\n const {\n url,\n method,\n authIn,\n searchParams,\n body: profileBody,\n headers,\n encoding\n } = profileRequest;\n const endpoint = new URL(await resolveConfigProp(url));\n const resolvedBody = await resolveConfigProp(profileBody);\n new URLSearchParams(await resolveConfigProp(searchParams)).forEach((value, key) => endpoint.searchParams.append(key, value));\n let headerEntries = [];\n const rawHeaders = headers ? await resolveConfigProp(headers) : undefined;\n if (rawHeaders instanceof Headers)\n headerEntries = Array.from(rawHeaders.entries());\n else if (Array.isArray(rawHeaders))\n headerEntries = rawHeaders;\n else if (rawHeaders && typeof rawHeaders === \"object\")\n headerEntries = Object.entries(rawHeaders);\n const profileHeaders = Object.fromEntries(headerEntries.filter(([, v]) => v !== \"\"));\n if (authIn === \"header\") {\n profileHeaders.Authorization = `Bearer ${accessToken}`;\n } else {\n endpoint.searchParams.append(\"access_token\", accessToken);\n }\n const init = { headers: profileHeaders, method };\n if (method === \"POST\" && resolvedBody != null) {\n profileHeaders[\"Content-Type\"] = encoding;\n init.body = encoding === \"application/json\" ? JSON.stringify(resolvedBody) : new URLSearchParams(resolvedBody).toString();\n }\n const response = await fetch(endpoint.toString(), init);\n if (!response.ok)\n throw await createOAuth2FetchError(response);\n return response.json();\n },\n async refreshAccessToken(refreshToken) {\n const { authIn, encoding } = meta.tokenRequest;\n const params = new URLSearchParams(meta.refreshAccessTokenBody);\n params.set(\"grant_type\", \"refresh_token\");\n params.set(\"refresh_token\", refreshToken);\n const { clientId } = config;\n let clientSecretValue;\n if (hasClientSecret(config)) {\n clientSecretValue = config.clientSecret;\n params.set(\"client_id\", clientId);\n params.set(\"client_secret\", clientSecretValue);\n }\n const request = createOAuth2Request({\n authIn,\n body: params,\n clientId,\n clientSecret: clientSecretValue,\n encoding,\n url: tokenUrl\n });\n const response = await fetch(request);\n if (!response.ok)\n throw await createOAuth2FetchError(response);\n return response.json();\n },\n async revokeToken(token) {\n const { revocationRequest } = meta;\n if (!revocationRequest) {\n throw new Error(\"Token revocation not defined for this provider\");\n }\n const { url, authIn, body, headers, tokenParamName } = revocationRequest;\n const endpoint = await resolveConfigProp(url);\n const resolvedBody = await resolveConfigProp(body);\n const revocationBody = new URLSearchParams(resolvedBody);\n const revocationHeaders = new Headers(headers && await resolveConfigProp(headers));\n const { clientId } = config;\n const clientSecret = hasClientSecret(config) ? config.clientSecret : undefined;\n let request;\n if (authIn === \"body\") {\n revocationBody.set(tokenParamName, token);\n revocationBody.set(\"client_id\", clientId);\n if (clientSecret)\n revocationBody.set(\"client_secret\", clientSecret);\n request = createOAuth2Request({\n authIn: \"body\",\n body: revocationBody,\n clientId,\n clientSecret,\n encoding: \"application/x-www-form-urlencoded\",\n headers: revocationHeaders,\n url: endpoint.toString()\n });\n } else if (authIn === \"header\") {\n revocationHeaders.set(\"Authorization\", `Bearer ${token}`);\n request = createOAuth2Request({\n authIn: \"header\",\n body: revocationBody,\n clientId,\n clientSecret,\n encoding: \"application/x-www-form-urlencoded\",\n headers: revocationHeaders,\n url: endpoint.toString()\n });\n } else {\n request = createOAuth2Request({\n authIn: \"query\",\n body: revocationBody,\n clientId,\n clientSecret,\n encoding: \"application/x-www-form-urlencoded\",\n headers: revocationHeaders,\n url: `${endpoint.toString()}?${tokenParamName}=${token}`\n });\n }\n const response = await fetch(request);\n if (!response.ok)\n throw await createOAuth2FetchError(response);\n },\n async validateAuthorizationCode(opts) {\n const { code, codeVerifier } = opts;\n const { authIn, encoding } = meta.tokenRequest;\n const bodyObj = {};\n for (const key in meta.validateAuthorizationCodeBody ?? {}) {\n const value = meta.validateAuthorizationCodeBody[key];\n if (typeof value === \"string\")\n bodyObj[key] = value;\n }\n bodyObj.grant_type = \"authorization_code\";\n bodyObj.code = code;\n if (config.redirectUri)\n bodyObj.redirect_uri = config.redirectUri;\n if (meta.PKCEMethod !== undefined) {\n if (!codeVerifier) {\n throw new Error(\"codeVerifier required when PKCE is enabled\");\n }\n bodyObj.code_verifier = codeVerifier;\n }\n const payload = encoding === \"application/json\" ? bodyObj : new URLSearchParams(bodyObj);\n const request = createOAuth2Request({\n authIn,\n body: payload,\n clientId: config.clientId,\n clientSecret: hasClientSecret(config) ? config.clientSecret : undefined,\n encoding,\n url: tokenUrl\n });\n const response = await fetch(request);\n if (!response.ok)\n throw await createOAuth2FetchError(response);\n return response.json();\n }\n };\n};\nexport {\n scopeRequiredProviderOptions,\n revocableProviderOptions,\n refreshableProviderOptions,\n providers,\n providerOptions,\n pkceProviderOptions,\n oidcProviderOptions,\n normalizeProviderIdentity,\n isValidProviderOption,\n isScopeRequiredProviderOption,\n isRevocableProviderOption,\n isRevocableOAuth2Client,\n isRefreshableProviderOption,\n isRefreshableOAuth2Client,\n isPKCEProviderOption,\n isObject,\n isOIDCProviderOption,\n isExpectedType,\n hmacSha256,\n hasClientSecret,\n getWithingsProps,\n getProviderSubjectKeys,\n generateState,\n generateCodeVerifier,\n extractPropFromIdentity,\n encodeBase64,\n defineProviders,\n decodeJWT,\n decodeBase64,\n createS256CodeChallenge,\n createOAuth2Request,\n createOAuth2FetchError,\n createOAuth2Client\n};\n",
6
- "import { createOAuth2Client } from 'citra';\nimport { Elysia } from 'elysia';\nimport { authorize } from './authorize';\nimport { callback } from './callback';\nimport { createAuthHtmxRoutes } from './htmxRoutes';\nimport { profile } from './profile';\nimport { protectRoutePlugin } from './protectRoute';\nimport { buildClientProviders } from './providerClients';\nimport { refresh } from './refresh';\nimport { revoke } from './revoke';\nimport { sessionCleanup } from './sessionCleanup';\nimport type { AuthSessionStore } from './sessionTypes';\nimport { signout } from './signout';\nimport { AuthConfig, ClientProviders } from './types';\nimport type { AuthHtmxConfig, AuthHtmxUser } from './ui/types';\nimport { userStatus } from './userStatus';\n\nexport const auth = async <UserType>({\n\tprovidersConfiguration,\n\tauthorizeRoute,\n\tcallbackRoute,\n\tprofileRoute,\n\tsignoutRoute,\n\tstatusRoute,\n\trefreshRoute,\n\trevokeRoute,\n\tcleanupIntervalMs,\n\tmaxSessions,\n\tsessionDurationMs,\n\tauthSessionStore,\n\thtmx,\n\tresolveAuthIntent,\n\tonAuthorizeSuccess,\n\tonAuthorizeError,\n\tonProfileSuccess,\n\tonProfileError,\n\tonCallbackSuccess,\n\tonLinkIdentity,\n\tonLinkIdentityConflict,\n\tonLinkConnector,\n\tonCallbackError,\n\tonStatus,\n\tonRefreshSuccess,\n\tonRefreshError,\n\tonSignOut,\n\tonRevocationSuccess,\n\tonRevocationError,\n\tonSessionCleanup\n}: AuthConfig<UserType>) => {\n\tconst clientProviders: ClientProviders = await buildClientProviders(\n\t\tprovidersConfiguration,\n\t\tcreateOAuth2Client\n\t);\n\n\treturn new Elysia()\n\t\t.use(\n\t\t\tsessionCleanup<UserType>({\n\t\t\t\tauthSessionStore,\n\t\t\t\tcleanupIntervalMs,\n\t\t\t\tmaxSessions,\n\t\t\t\tonSessionCleanup\n\t\t\t})\n\t\t)\n\t\t.use(signout({ authSessionStore, onSignOut, signoutRoute }))\n\t\t.use(\n\t\t\trevoke({\n\t\t\t\tauthSessionStore,\n\t\t\t\tclientProviders,\n\t\t\t\tonRevocationError,\n\t\t\t\tonRevocationSuccess,\n\t\t\t\trevokeRoute\n\t\t\t})\n\t\t)\n\t\t.use(userStatus<UserType>({ authSessionStore, onStatus, statusRoute }))\n\t\t.use(\n\t\t\trefresh({\n\t\t\t\tauthSessionStore,\n\t\t\t\tclientProviders,\n\t\t\t\tonRefreshError,\n\t\t\t\tonRefreshSuccess,\n\t\t\t\trefreshRoute,\n\t\t\t\tsessionDurationMs\n\t\t\t})\n\t\t)\n\t\t.use(\n\t\t\tauthorize({\n\t\t\t\tauthorizeRoute,\n\t\t\t\tclientProviders,\n\t\t\t\tonAuthorizeError,\n\t\t\t\tonAuthorizeSuccess\n\t\t\t})\n\t\t)\n\t\t.use(\n\t\t\tcallback<UserType>({\n\t\t\t\tauthSessionStore,\n\t\t\t\tcallbackRoute,\n\t\t\t\tclientProviders,\n\t\t\t\tonCallbackError,\n\t\t\t\tonCallbackSuccess,\n\t\t\t\tonLinkConnector,\n\t\t\t\tonLinkIdentity,\n\t\t\t\tonLinkIdentityConflict,\n\t\t\t\tresolveAuthIntent\n\t\t\t})\n\t\t)\n\t\t.use(\n\t\t\tprofile({\n\t\t\t\tclientProviders,\n\t\t\t\tonProfileError,\n\t\t\t\tonProfileSuccess,\n\t\t\t\tprofileRoute\n\t\t\t})\n\t\t)\n\t\t.use(protectRoutePlugin<UserType>({ authSessionStore }))\n\t\t.use(\n\t\t\t// `htmx` is gated to `UserType extends AuthHtmxUser` at the public\n\t\t\t// API (AuthConfig), so this bridge is sound — TS just can't\n\t\t\t// re-derive the bound inside an unconstrained generic body.\n\t\t\thtmx\n\t\t\t\t? createAuthHtmxRoutes<UserType & AuthHtmxUser>({\n\t\t\t\t\t\t...(htmx as AuthHtmxConfig),\n\t\t\t\t\t\tauthSessionStore: authSessionStore as\n\t\t\t\t\t\t\t| AuthSessionStore<UserType & AuthHtmxUser>\n\t\t\t\t\t\t\t| undefined\n\t\t\t\t\t})\n\t\t\t\t: new Elysia()\n\t\t);\n};\n\nexport * from './types';\nexport * from './typebox';\nexport type { AuthSessionStore } from './sessionTypes';\nexport { isAuthIntent, isUserSessionId, isValidUser } from './typeGuards';\nexport { AuthIdentityConflictError } from './errors';\nexport { sessionStore } from './sessionStore';\nexport { createInMemoryAuthSessionStore } from './authSessionStores';\nexport { createNeonAuthSessionStore } from './neonAuthSessionStore';\nexport { createLinkedProviderCredentialResolver } from './linkedProviderResolver';\nexport { createOAuthLinkedProviderCredentialResolver } from './oauthLinkedProviderResolver';\nexport {\n\tcreateNeonLinkedProviderStores,\n\tcreateNeonOAuthLinkedProviderCredentialResolver\n} from './neonLinkedProviders';\nexport { createInMemoryLinkedProviderStores } from './linkedProviderStores';\nexport { protectRoutePlugin } from './protectRoute';\nexport { sessionCleanup } from './sessionCleanup';\nexport { createAuthHtmxRoutes } from './htmxRoutes';\nexport { resolveAuthHtmxRenderers } from './ui/renderers';\nexport type {\n\tAuthHtmxConfig,\n\tAuthHtmxConnectorTarget,\n\tAuthHtmxProviderData,\n\tAuthHtmxProviderInfo,\n\tAuthHtmxRenderOverrides,\n\tAuthHtmxRenderersConfig,\n\tAuthHtmxUser,\n\tAuthIdentityPayload,\n\tLinkedProviderPayload\n} from './ui/types';\nexport * from './utils';\nexport {\n\tbuildClientProviders,\n\tresolveClientProviderEntry,\n\tresolveProviderClientConfiguration\n} from './providerClients';\nexport type {\n\tOAuth2TokenResponse,\n\tOAuth2Client,\n\tProviderOption,\n\tPKCEProvider,\n\tOIDCProvider,\n\tRefreshableProvider,\n\tRevocableProvider,\n\tScopeRequiredProvider,\n\tProvidersMap,\n\tProviderConfiguration,\n\tCredentialsFor\n} from 'citra';\n\nexport {\n\tproviders,\n\tproviderOptions,\n\trefreshableProviderOptions,\n\trevocableProviderOptions,\n\toidcProviderOptions,\n\tpkceProviderOptions,\n\tscopeRequiredProviderOptions,\n\tdecodeJWT,\n\textractPropFromIdentity,\n\tisValidProviderOption,\n\tisRefreshableOAuth2Client,\n\tisRefreshableProviderOption,\n\tisOIDCProviderOption,\n\tisPKCEProviderOption,\n\tisRevocableProviderOption,\n\tisRevocableOAuth2Client\n} from 'citra';\n",
7
- "import {\n\tgenerateCodeVerifier,\n\tgenerateState,\n\tisPKCEProviderOption\n} from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { COOKIE_DURATION } from './constants';\nimport { resolveClientProviderEntry } from './providerClients';\nimport { isAuthIntent } from './typeGuards';\nimport {\n\tauthClientOption,\n\tauthIntentOption,\n\tauthProviderOption\n} from './typebox';\nimport {\n\tAuthorizeRoute,\n\tClientProviders,\n\tOnAuthorizeError,\n\tOnAuthorizeSuccess\n} from './types';\n\ntype AuthorizeProps = {\n\tclientProviders: ClientProviders;\n\tauthorizeRoute?: AuthorizeRoute;\n\tonAuthorizeSuccess: OnAuthorizeSuccess;\n\tonAuthorizeError: OnAuthorizeError;\n};\n\nconst parseReferer = (headerReferer: string | undefined) => {\n\tif (!headerReferer) return '/';\n\n\ttry {\n\t\tconst url = new URL(headerReferer);\n\n\t\treturn url.pathname + url.search;\n\t} catch {\n\t\tif (headerReferer.startsWith('/') && !headerReferer.startsWith('//')) {\n\t\t\treturn headerReferer;\n\t\t}\n\n\t\treturn '/';\n\t}\n};\n\nexport const authorize = ({\n\tclientProviders,\n\tauthorizeRoute = '/oauth2/:provider/authorization',\n\tonAuthorizeSuccess,\n\tonAuthorizeError\n}: AuthorizeProps) =>\n\tnew Elysia().get(\n\t\tauthorizeRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tredirect,\n\t\t\tcookie: {\n\t\t\t\tstate,\n\t\t\t\tcode_verifier,\n\t\t\t\tauth_provider,\n\t\t\t\tauth_client,\n\t\t\t\tauth_intent,\n\t\t\t\torigin_url\n\t\t\t},\n\t\t\tparams: { provider },\n\t\t\tquery: { client, intent },\n\t\t\theaders\n\t\t}) => {\n\t\t\tif (\n\t\t\t\tauth_provider === undefined ||\n\t\t\t\tauth_client === undefined ||\n\t\t\t\tauth_intent === undefined ||\n\t\t\t\torigin_url === undefined ||\n\t\t\t\tstate === undefined ||\n\t\t\t\tcode_verifier === undefined\n\t\t\t)\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\n\t\t\tif (provider === undefined)\n\t\t\t\treturn status('Bad Request', 'Provider is required');\n\n\t\t\tconst resolvedProvider = resolveClientProviderEntry({\n\t\t\t\tclientName: client,\n\t\t\t\tclientProviders,\n\t\t\t\tproviderName: provider\n\t\t\t});\n\t\t\tif ('error' in resolvedProvider) {\n\t\t\t\treturn status('Unauthorized', resolvedProvider.error);\n\t\t\t}\n\n\t\t\tconst { clientName, providerInstance, scope, searchParams } =\n\t\t\t\tresolvedProvider.entry;\n\t\t\tconst referer = parseReferer(headers['referer']);\n\t\t\tconst authIntent = isAuthIntent(intent) ? intent : undefined;\n\n\t\t\torigin_url.set({\n\t\t\t\thttpOnly: true,\n\t\t\t\tmaxAge: COOKIE_DURATION,\n\t\t\t\tpath: '/',\n\t\t\t\tsameSite: 'lax',\n\t\t\t\tsecure: true,\n\t\t\t\tvalue: referer\n\t\t\t});\n\n\t\t\tauth_provider.set({\n\t\t\t\thttpOnly: true,\n\t\t\t\tmaxAge: COOKIE_DURATION,\n\t\t\t\tpath: '/',\n\t\t\t\tsameSite: 'lax',\n\t\t\t\tsecure: true,\n\t\t\t\tvalue: provider\n\t\t\t});\n\n\t\t\tauth_client.set({\n\t\t\t\thttpOnly: true,\n\t\t\t\tmaxAge: COOKIE_DURATION,\n\t\t\t\tpath: '/',\n\t\t\t\tsameSite: 'lax',\n\t\t\t\tsecure: true,\n\t\t\t\tvalue: clientName ?? ''\n\t\t\t});\n\n\t\t\tif (authIntent !== undefined) {\n\t\t\t\tauth_intent.set({\n\t\t\t\t\thttpOnly: true,\n\t\t\t\t\tmaxAge: COOKIE_DURATION,\n\t\t\t\t\tpath: '/',\n\t\t\t\t\tsameSite: 'lax',\n\t\t\t\t\tsecure: true,\n\t\t\t\t\tvalue: authIntent\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tauth_intent.remove();\n\t\t\t}\n\n\t\t\tconst currentState = generateState();\n\t\t\tstate.set({\n\t\t\t\thttpOnly: true,\n\t\t\t\tmaxAge: COOKIE_DURATION,\n\t\t\t\tpath: '/',\n\t\t\t\tsameSite: 'lax',\n\t\t\t\tsecure: true,\n\t\t\t\tvalue: currentState\n\t\t\t});\n\n\t\t\tconst codeVerifier = isPKCEProviderOption(provider)\n\t\t\t\t? generateCodeVerifier()\n\t\t\t\t: undefined;\n\n\t\t\tif (codeVerifier) {\n\t\t\t\tcode_verifier.set({\n\t\t\t\t\thttpOnly: true,\n\t\t\t\t\tmaxAge: COOKIE_DURATION,\n\t\t\t\t\tpath: '/',\n\t\t\t\t\tsameSite: 'lax',\n\t\t\t\t\tsecure: true,\n\t\t\t\t\tvalue: codeVerifier\n\t\t\t\t});\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst authorizationURL =\n\t\t\t\t\tawait providerInstance.createAuthorizationUrl(\n\t\t\t\t\t\tcodeVerifier\n\t\t\t\t\t\t\t? { codeVerifier, scope, state: currentState }\n\t\t\t\t\t\t\t: { scope, state: currentState }\n\t\t\t\t\t);\n\n\t\t\t\tsearchParams?.forEach(([key, value]) =>\n\t\t\t\t\tauthorizationURL.searchParams.set(key, value)\n\t\t\t\t);\n\n\t\t\t\tawait onAuthorizeSuccess?.({\n\t\t\t\t\tauthorizationUrl: authorizationURL,\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthIntent,\n\t\t\t\t\tauthProvider: provider\n\t\t\t\t});\n\n\t\t\t\treturn redirect(authorizationURL.toString());\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t'[authorize] Failed to create authorization URL:',\n\t\t\t\t\t{\n\t\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\t\t\t\tprovider,\n\t\t\t\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tawait onAuthorizeError?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider: provider,\n\t\t\t\t\terror: err\n\t\t\t\t});\n\n\t\t\t\treturn status(\n\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t'Failed to create authorization URL'\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_client: authClientOption,\n\t\t\t\tauth_intent: authIntentOption,\n\t\t\t\tauth_provider: t.Optional(authProviderOption)\n\t\t\t}),\n\t\t\tparams: t.Object({\n\t\t\t\tprovider: authProviderOption\n\t\t\t}),\n\t\t\tquery: t.Object({\n\t\t\t\tclient: authClientOption,\n\t\t\t\tintent: authIntentOption\n\t\t\t})\n\t\t}\n\t);\n",
6
+ "import { createOAuth2Client } from 'citra';\nimport { Elysia } from 'elysia';\nimport { createAuditEmitter } from './audit/config';\nimport {\n\tcomposeCallbackAudit,\n\tcomposeCredentialsAudit,\n\tcomposeMfaAudit,\n\tcomposeRevocationAudit,\n\tcomposeSignOutAudit\n} from './audit/wrap';\nimport { credentialRoutes } from './credentials/routes';\nimport { createAuthHtmxRoutes } from './htmx/routes';\nimport { createLockoutGuard } from './lockout/config';\nimport { createMfaGate } from './mfa/gate';\nimport { mfaRoutes } from './mfa/routes';\nimport type { AuthHtmxConfig, AuthHtmxUser } from './htmx/types';\nimport { buildClientProviders } from './providers/clients';\nimport { authorize } from './routes/authorize';\nimport { callback } from './routes/callback';\nimport { profile } from './routes/profile';\nimport { protectRoutePlugin } from './routes/protectRoute';\nimport { refresh } from './routes/refresh';\nimport { revoke } from './routes/revoke';\nimport { sessionRoutes } from './routes/sessions';\nimport { stepUpPlugin } from './routes/stepUp';\nimport { signout } from './routes/signout';\nimport { userStatus } from './routes/userStatus';\nimport { sessionCleanup } from './session/cleanup';\nimport type { AuthSessionStore } from './session/types';\nimport { AuthConfig, ClientProviders } from './types';\n\nexport const auth = async <UserType>({\n\tprovidersConfiguration,\n\tauthorizeRoute,\n\tcallbackRoute,\n\tprofileRoute,\n\tsignoutRoute,\n\tstatusRoute,\n\trefreshRoute,\n\trevokeRoute,\n\tcleanupIntervalMs,\n\tmaxSessions,\n\tsessionDurationMs,\n\tauthSessionStore,\n\taudit,\n\tcredentials,\n\tmfa,\n\tlockout,\n\tsessions,\n\thtmx,\n\tresolveAuthIntent,\n\tonAuthorizeSuccess,\n\tonAuthorizeError,\n\tonProfileSuccess,\n\tonProfileError,\n\tonCallbackSuccess,\n\tonLinkIdentity,\n\tonLinkIdentityConflict,\n\tonLinkConnector,\n\tonCallbackError,\n\tonStatus,\n\tonRefreshSuccess,\n\tonRefreshError,\n\tonSignOut,\n\tonRevocationSuccess,\n\tonRevocationError,\n\tonSessionCleanup\n}: AuthConfig<UserType>) => {\n\tconst clientProviders: ClientProviders = await buildClientProviders(\n\t\tprovidersConfiguration,\n\t\tcreateOAuth2Client\n\t);\n\n\tconst auditEmit = audit ? createAuditEmitter(audit) : undefined;\n\tconst lockoutGuard = lockout ? createLockoutGuard(lockout) : undefined;\n\n\t// When both blocks are configured, default the login MFA gate to the MFAStore\n\t// enrollment check unless the consumer supplied their own.\n\tconst credentialsConfig = credentials\n\t\t? {\n\t\t\t\t...credentials,\n\t\t\t\tisMfaRequired:\n\t\t\t\t\tcredentials.isMfaRequired ??\n\t\t\t\t\t(mfa ? createMfaGate(mfa) : undefined)\n\t\t\t}\n\t\t: undefined;\n\tconst auditedCredentials =\n\t\tcredentialsConfig && auditEmit\n\t\t\t? composeCredentialsAudit(\n\t\t\t\t\tcredentialsConfig,\n\t\t\t\t\tauditEmit,\n\t\t\t\t\taudit?.getUserId\n\t\t\t\t)\n\t\t\t: credentialsConfig;\n\tconst auditedMfa = mfa && auditEmit ? composeMfaAudit(mfa, auditEmit) : mfa;\n\tconst auditedOnCallbackSuccess = auditEmit\n\t\t? composeCallbackAudit(onCallbackSuccess, auditEmit)\n\t\t: onCallbackSuccess;\n\tconst auditedOnRevocationSuccess = auditEmit\n\t\t? composeRevocationAudit(onRevocationSuccess, auditEmit)\n\t\t: onRevocationSuccess;\n\tconst auditedOnSignOut = auditEmit\n\t\t? composeSignOutAudit(onSignOut, auditEmit)\n\t\t: onSignOut;\n\n\treturn new Elysia()\n\t\t.use(\n\t\t\tsessionCleanup<UserType>({\n\t\t\t\tauthSessionStore,\n\t\t\t\tcleanupIntervalMs,\n\t\t\t\tmaxSessions,\n\t\t\t\tonSessionCleanup\n\t\t\t})\n\t\t)\n\t\t.use(\n\t\t\tsignout({\n\t\t\t\tauthSessionStore,\n\t\t\t\tonSignOut: auditedOnSignOut,\n\t\t\t\tsignoutRoute\n\t\t\t})\n\t\t)\n\t\t.use(\n\t\t\trevoke({\n\t\t\t\tauthSessionStore,\n\t\t\t\tclientProviders,\n\t\t\t\tonRevocationError,\n\t\t\t\tonRevocationSuccess: auditedOnRevocationSuccess,\n\t\t\t\trevokeRoute\n\t\t\t})\n\t\t)\n\t\t.use(userStatus<UserType>({ authSessionStore, onStatus, statusRoute }))\n\t\t.use(\n\t\t\trefresh({\n\t\t\t\tauthSessionStore,\n\t\t\t\tclientProviders,\n\t\t\t\tonRefreshError,\n\t\t\t\tonRefreshSuccess,\n\t\t\t\trefreshRoute,\n\t\t\t\tsessionDurationMs\n\t\t\t})\n\t\t)\n\t\t.use(\n\t\t\tauthorize({\n\t\t\t\tauthorizeRoute,\n\t\t\t\tclientProviders,\n\t\t\t\tonAuthorizeError,\n\t\t\t\tonAuthorizeSuccess\n\t\t\t})\n\t\t)\n\t\t.use(\n\t\t\tcallback<UserType>({\n\t\t\t\tauthSessionStore,\n\t\t\t\tcallbackRoute,\n\t\t\t\tclientProviders,\n\t\t\t\tonCallbackError,\n\t\t\t\tonCallbackSuccess: auditedOnCallbackSuccess,\n\t\t\t\tonLinkConnector,\n\t\t\t\tonLinkIdentity,\n\t\t\t\tonLinkIdentityConflict,\n\t\t\t\tresolveAuthIntent\n\t\t\t})\n\t\t)\n\t\t.use(\n\t\t\tprofile({\n\t\t\t\tclientProviders,\n\t\t\t\tonProfileError,\n\t\t\t\tonProfileSuccess,\n\t\t\t\tprofileRoute\n\t\t\t})\n\t\t)\n\t\t.use(\n\t\t\tauditedCredentials\n\t\t\t\t? credentialRoutes<UserType>({\n\t\t\t\t\t\t...auditedCredentials,\n\t\t\t\t\t\tauthSessionStore,\n\t\t\t\t\t\tlockoutGuard\n\t\t\t\t\t})\n\t\t\t\t: new Elysia()\n\t\t)\n\t\t.use(\n\t\t\tauditedMfa\n\t\t\t\t? mfaRoutes<UserType>({ ...auditedMfa, authSessionStore })\n\t\t\t\t: new Elysia()\n\t\t)\n\t\t.use(\n\t\t\tsessions\n\t\t\t\t? sessionRoutes<UserType>({ ...sessions, authSessionStore })\n\t\t\t\t: new Elysia()\n\t\t)\n\t\t.use(protectRoutePlugin<UserType>({ authSessionStore }))\n\t\t.use(stepUpPlugin<UserType>({ authSessionStore }))\n\t\t.use(\n\t\t\t// `htmx` is gated to `UserType extends AuthHtmxUser` at the public\n\t\t\t// API (AuthConfig), so this bridge is sound — TS just can't\n\t\t\t// re-derive the bound inside an unconstrained generic body.\n\t\t\thtmx\n\t\t\t\t? createAuthHtmxRoutes<UserType & AuthHtmxUser>({\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- sound at the public API; TS can't re-derive the bound in this unconstrained generic body\n\t\t\t\t\t\t...(htmx as AuthHtmxConfig),\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- sound at the public API; TS can't re-derive the bound in this unconstrained generic body\n\t\t\t\t\t\tauthSessionStore: authSessionStore as\n\t\t\t\t\t\t\t| AuthSessionStore<UserType & AuthHtmxUser>\n\t\t\t\t\t\t\t| undefined\n\t\t\t\t\t})\n\t\t\t\t: new Elysia()\n\t\t);\n};\n\nexport * from './types';\nexport * from './typebox';\nexport type { AuthSessionStore } from './session/types';\nexport { isAuthIntent, isUserSessionId, isValidUser } from './typeGuards';\nexport { AuthIdentityConflictError } from './errors';\nexport { sessionStore } from './session/state';\nexport { createInMemoryAuthSessionStore } from './session/inMemoryStore';\nexport { createNeonAuthSessionStore } from './session/neonStore';\nexport { createLinkedProviderCredentialResolver } from './linkedProviders/resolver';\nexport { createOAuthLinkedProviderCredentialResolver } from './linkedProviders/oauthResolver';\nexport {\n\tcreateNeonLinkedProviderStores,\n\tcreateNeonOAuthLinkedProviderCredentialResolver\n} from './linkedProviders/neonStores';\nexport { createInMemoryLinkedProviderStores } from './linkedProviders/inMemoryStores';\nexport { protectRoutePlugin } from './routes/protectRoute';\nexport { sessionRoutes } from './routes/sessions';\nexport { stepUpPlugin } from './routes/stepUp';\nexport * from './session/sessionsConfig';\nexport {\n\tlistUserSessions,\n\trevokeUserSessions\n} from './session/userSessions';\nexport type { UserSession } from './session/userSessions';\nexport { sessionCleanup } from './session/cleanup';\nexport { createAuthHtmxRoutes } from './htmx/routes';\nexport { resolveAuthHtmxRenderers } from './htmx/renderers';\nexport type {\n\tAuthHtmxConfig,\n\tAuthHtmxConnectorTarget,\n\tAuthHtmxProviderData,\n\tAuthHtmxProviderInfo,\n\tAuthHtmxRenderOverrides,\n\tAuthHtmxRenderersConfig,\n\tAuthHtmxUser,\n\tAuthIdentityPayload,\n\tLinkedProviderPayload\n} from './htmx/types';\nexport * from './utils';\nexport {\n\tbuildClientProviders,\n\tresolveClientProviderEntry,\n\tresolveProviderClientConfiguration\n} from './providers/clients';\nexport type {\n\tOAuth2TokenResponse,\n\tOAuth2Client,\n\tProviderOption,\n\tPKCEProvider,\n\tOIDCProvider,\n\tRefreshableProvider,\n\tRevocableProvider,\n\tScopeRequiredProvider,\n\tProvidersMap,\n\tProviderConfiguration,\n\tCredentialsFor\n} from 'citra';\n\nexport {\n\tproviders,\n\tproviderOptions,\n\trefreshableProviderOptions,\n\trevocableProviderOptions,\n\toidcProviderOptions,\n\tpkceProviderOptions,\n\tscopeRequiredProviderOptions,\n\tdecodeJWT,\n\textractPropFromIdentity,\n\tisValidProviderOption,\n\tisRefreshableOAuth2Client,\n\tisRefreshableProviderOption,\n\tisOIDCProviderOption,\n\tisPKCEProviderOption,\n\tisRevocableProviderOption,\n\tisRevocableOAuth2Client\n} from 'citra';\n\nexport * from './crypto';\nexport * from './tenancy';\nexport * from './credentials/config';\nexport * from './credentials/passwordPolicy';\nexport * from './credentials/types';\nexport { credentialRoutes } from './credentials/routes';\nexport { credentialsEmailVerification } from './credentials/emailVerification';\nexport { credentialsLogin } from './credentials/login';\nexport { credentialsPasswordReset } from './credentials/passwordReset';\nexport { credentialsRegister } from './credentials/register';\nexport { createInMemoryCredentialStore } from './credentials/inMemoryCredentialStore';\nexport {\n\tcreateNeonCredentialStore,\n\tcreatePostgresCredentialStore,\n\tcredentialResetTokensTable,\n\tcredentialsTable,\n\tcredentialVerificationTokensTable\n} from './credentials/postgresCredentialStore';\nexport { createNeonDatabase } from './stores/postgres';\nexport type { AnyPgDatabase } from './stores/postgres';\n\nexport * from './mfa/config';\nexport * from './mfa/types';\nexport { consumeBackupCode, generateBackupCodes } from './mfa/backupCodes';\nexport { createMfaGate } from './mfa/gate';\nexport { mfaChallenge } from './mfa/challenge';\nexport { mfaRoutes } from './mfa/routes';\nexport { mfaTotpRoutes } from './mfa/totp';\nexport { decryptTotpSecret, encryptTotpSecret } from './mfa/secret';\nexport { createInMemoryMfaStore } from './mfa/inMemoryMfaStore';\nexport {\n\tcreateNeonMfaStore,\n\tcreatePostgresMfaStore,\n\tmfaEnrollmentsTable\n} from './mfa/postgresMfaStore';\n\nexport * from './audit/config';\nexport * from './audit/types';\nexport * from './lockout/config';\nexport * from './lockout/types';\nexport { createInMemoryLockoutStore } from './lockout/inMemoryLockoutStore';\nexport {\n\tcreateNeonLockoutStore,\n\tcreatePostgresLockoutStore,\n\tlockoutsTable\n} from './lockout/postgresLockoutStore';\nexport { createInMemoryAuditSink } from './audit/inMemoryAuditStore';\nexport {\n\tauditEventsTable,\n\tcreateNeonAuditSink,\n\tcreatePostgresAuditSink\n} from './audit/postgresAuditStore';\n",
7
+ "import type { AuditEvent, AuditSink } from './types';\n\nexport type AuditConfig<UserType> = {\n\tauditStore?: AuditSink;\n\t// Optional extractor for the stable user id recorded on events that carry a user.\n\tgetUserId?: (user: UserType) => string;\n\t// Additional consumer sink (forward to a SIEM, etc.) fired alongside `auditStore`.\n\tonAuditEvent?: (event: AuditEvent) => void | Promise<void>;\n};\n\nexport type AuditEmitter = (event: AuditEvent) => Promise<void>;\n\nexport const createAuditEmitter =\n\t<UserType>({ auditStore, onAuditEvent }: AuditConfig<UserType>) =>\n\tasync (event: AuditEvent) => {\n\t\tawait auditStore?.append(event);\n\t\tawait onAuditEvent?.(event);\n\t};\n",
8
+ "import type { CredentialsConfig } from '../credentials/config';\nimport type { MfaConfig } from '../mfa/config';\nimport type {\n\tOnCallbackSuccess,\n\tOnRevocationSuccess,\n\tOnSignOut\n} from '../types';\nimport type { AuditEmitter } from './config';\n\n// Each `compose*Audit` wraps the consumer's lifecycle hooks so a structured audit event\n// is emitted whenever a flow completes — even when the consumer set no hook. `auth()`\n// applies these when an `audit` block is configured.\n\nexport const composeCallbackAudit =\n\t<UserType>(\n\t\tonCallbackSuccess: OnCallbackSuccess<UserType>,\n\t\temit: AuditEmitter\n\t) =>\n\tasync (\n\t\tcontext: Parameters<NonNullable<OnCallbackSuccess<UserType>>>[0]\n\t) => {\n\t\tawait emit({\n\t\t\tat: Date.now(),\n\t\t\tmetadata: { authProvider: context.authProvider },\n\t\t\ttype: 'oauth_login'\n\t\t});\n\n\t\treturn onCallbackSuccess?.(context);\n\t};\nexport const composeCredentialsAudit = <UserType>(\n\tcredentials: CredentialsConfig<UserType>,\n\temit: AuditEmitter,\n\tgetUserId?: (user: UserType) => string\n): CredentialsConfig<UserType> => ({\n\t...credentials,\n\tonCredentialsLoginError: async (context) => {\n\t\tawait emit({\n\t\t\tat: Date.now(),\n\t\t\tmetadata: { email: context.email },\n\t\t\ttype: 'credentials_login_failed'\n\t\t});\n\n\t\treturn credentials.onCredentialsLoginError?.(context);\n\t},\n\tonCredentialsLoginSuccess: async (context) => {\n\t\tawait emit({\n\t\t\tat: Date.now(),\n\t\t\ttype: 'credentials_login',\n\t\t\tuserId: getUserId?.(context.user)\n\t\t});\n\n\t\treturn credentials.onCredentialsLoginSuccess?.(context);\n\t},\n\tonEmailVerified: async (context) => {\n\t\tawait emit({\n\t\t\tat: Date.now(),\n\t\t\tmetadata: { email: context.email },\n\t\t\ttype: 'email_verified'\n\t\t});\n\n\t\treturn credentials.onEmailVerified?.(context);\n\t},\n\tonPasswordReset: async (context) => {\n\t\tawait emit({\n\t\t\tat: Date.now(),\n\t\t\tmetadata: { email: context.email },\n\t\t\ttype: 'password_reset'\n\t\t});\n\n\t\treturn credentials.onPasswordReset?.(context);\n\t},\n\tonRegistrationSuccess: async (context) => {\n\t\tawait emit({\n\t\t\tat: Date.now(),\n\t\t\tmetadata: { email: context.email },\n\t\t\ttype: 'register',\n\t\t\tuserId: getUserId?.(context.user)\n\t\t});\n\n\t\treturn credentials.onRegistrationSuccess?.(context);\n\t}\n});\nexport const composeMfaAudit = <UserType>(\n\tmfa: MfaConfig<UserType>,\n\temit: AuditEmitter\n): MfaConfig<UserType> => ({\n\t...mfa,\n\tonMfaChallengeError: async (context) => {\n\t\tawait emit({\n\t\t\tat: Date.now(),\n\t\t\ttype: 'mfa_challenge_failed',\n\t\t\tuserId: context.userId\n\t\t});\n\n\t\treturn mfa.onMfaChallengeError?.(context);\n\t},\n\tonMfaChallengeSuccess: async (context) => {\n\t\tawait emit({\n\t\t\tat: Date.now(),\n\t\t\ttype: 'mfa_challenge',\n\t\t\tuserId: mfa.getUserId(context.user)\n\t\t});\n\n\t\treturn mfa.onMfaChallengeSuccess?.(context);\n\t},\n\tonMfaEnrolled: async (context) => {\n\t\tawait emit({\n\t\t\tat: Date.now(),\n\t\t\ttype: 'mfa_enrolled',\n\t\t\tuserId: context.userId\n\t\t});\n\n\t\treturn mfa.onMfaEnrolled?.(context);\n\t}\n});\nexport const composeRevocationAudit =\n\t(onRevocationSuccess: OnRevocationSuccess, emit: AuditEmitter) =>\n\tasync (context: Parameters<NonNullable<OnRevocationSuccess>>[0]) => {\n\t\tawait emit({\n\t\t\tat: Date.now(),\n\t\t\tmetadata: { authProvider: context.authProvider },\n\t\t\ttype: 'token_revoked'\n\t\t});\n\n\t\treturn onRevocationSuccess?.(context);\n\t};\nexport const composeSignOutAudit =\n\t<UserType>(onSignOut: OnSignOut<UserType>, emit: AuditEmitter) =>\n\tasync (context: Parameters<NonNullable<OnSignOut<UserType>>>[0]) => {\n\t\tawait emit({\n\t\t\tat: Date.now(),\n\t\t\tmetadata: { authProvider: context.authProvider },\n\t\t\ttype: 'logout'\n\t\t});\n\n\t\treturn onSignOut?.(context);\n\t};\n",
9
+ "import { Elysia } from 'elysia';\nimport type { CredentialRouteProps } from './config';\nimport { credentialsEmailVerification } from './emailVerification';\nimport { credentialsLogin } from './login';\nimport { credentialsPasswordReset } from './passwordReset';\nimport { credentialsRegister } from './register';\n\n// Composes the email/password routes into one Elysia instance. `auth()` mounts this\n// before `protectRoutePlugin` when a `credentials` block is configured.\nexport const credentialRoutes = <UserType>(\n\tconfig: CredentialRouteProps<UserType>\n) =>\n\tnew Elysia()\n\t\t.use(credentialsRegister(config))\n\t\t.use(credentialsEmailVerification(config))\n\t\t.use(credentialsLogin(config))\n\t\t.use(credentialsPasswordReset(config));\n",
10
+ "import { Elysia, t } from 'elysia';\nimport { generateSecureToken, hashToken } from '../crypto';\nimport {\n\ttype CredentialsConfig,\n\tDEFAULT_VERIFICATION_TOKEN_TTL_MS\n} from './config';\n\nexport const credentialsEmailVerification = <UserType>({\n\tcredentialStore,\n\tonEmailVerified,\n\tonSendEmail,\n\tverificationTokenDurationMs = DEFAULT_VERIFICATION_TOKEN_TTL_MS,\n\tverifyEmailRoute = '/auth/verify-email'\n}: CredentialsConfig<UserType>) =>\n\tnew Elysia()\n\t\t.post(\n\t\t\tverifyEmailRoute,\n\t\t\tasync ({ body: { token }, status }) => {\n\t\t\t\tconst consumed = await credentialStore.consumeVerificationToken(\n\t\t\t\t\tawait hashToken(token)\n\t\t\t\t);\n\t\t\t\tif (!consumed) {\n\t\t\t\t\treturn status(\n\t\t\t\t\t\t'Bad Request',\n\t\t\t\t\t\t'Invalid or expired verification token'\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tawait credentialStore.setEmailVerified(consumed.email);\n\t\t\t\tawait onEmailVerified?.({ email: consumed.email });\n\n\t\t\t\treturn status('OK', { status: 'email_verified' });\n\t\t\t},\n\t\t\t{ body: t.Object({ token: t.String() }) }\n\t\t)\n\t\t.post(\n\t\t\t`${verifyEmailRoute}/request`,\n\t\t\tasync ({ body: { email }, status }) => {\n\t\t\t\tconst normalizedEmail = email.trim().toLowerCase();\n\t\t\t\tconst credential =\n\t\t\t\t\tawait credentialStore.getCredentialByEmail(normalizedEmail);\n\n\t\t\t\t// Always 200 regardless of existence to avoid account enumeration.\n\t\t\t\tif (credential && !credential.emailVerified) {\n\t\t\t\t\tconst token = generateSecureToken();\n\t\t\t\t\tconst expiresAt = Date.now() + verificationTokenDurationMs;\n\t\t\t\t\tawait credentialStore.saveVerificationToken({\n\t\t\t\t\t\temail: normalizedEmail,\n\t\t\t\t\t\texpiresAt,\n\t\t\t\t\t\ttokenHash: await hashToken(token)\n\t\t\t\t\t});\n\t\t\t\t\tawait onSendEmail({\n\t\t\t\t\t\temail: normalizedEmail,\n\t\t\t\t\t\texpiresAt,\n\t\t\t\t\t\ttoken,\n\t\t\t\t\t\ttype: 'verify_email'\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn status('OK', { status: 'verification_requested' });\n\t\t\t},\n\t\t\t{ body: t.Object({ email: t.String() }) }\n\t\t);\n",
8
11
  "export const SECONDS_IN_A_MINUTE = 60;\nexport const MILLISECONDS_IN_A_SECOND = 1000;\nexport const MILLISECONDS_IN_A_MINUTE =\n\tMILLISECONDS_IN_A_SECOND * SECONDS_IN_A_MINUTE;\nexport const MINUTES_IN_AN_HOUR = 60;\nexport const HOURS_IN_A_DAY = 24;\nexport const MILLISECONDS_IN_A_DAY =\n\tMILLISECONDS_IN_A_SECOND *\n\tSECONDS_IN_A_MINUTE *\n\tMINUTES_IN_AN_HOUR *\n\tHOURS_IN_A_DAY;\nexport const MILLISECONDS_IN_AN_HOUR =\n\tMILLISECONDS_IN_A_MINUTE * MINUTES_IN_AN_HOUR;\nexport const COOKIE_MINUTES = 30;\nexport const COOKIE_DURATION = SECONDS_IN_A_MINUTE * COOKIE_MINUTES;\nexport const DEFAULT_MAX_SESSIONS = 10000;\n",
9
- "import {\n\tCredentialsFor,\n\tNonEmptyArray,\n\tOAuth2Client,\n\tProviderOption,\n\tProvidersMap,\n\tisValidProviderOption\n} from 'citra';\nimport {\n\tOAuth2ConfigurationOptions,\n\tOAuth2ProviderClientConfiguration,\n\tClientProviderEntry,\n\tClientProviderGroup\n} from './types';\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst isProviderClientConfig = <Provider extends ProviderOption>(\n\tvalue: unknown\n): value is OAuth2ProviderClientConfiguration<Provider> =>\n\tisRecord(value) && 'credentials' in value;\n\nexport const normalizeProvidersConfiguration = (\n\tprovidersConfiguration: OAuth2ConfigurationOptions\n): Record<\n\tProviderOption,\n\tRecord<string, OAuth2ProviderClientConfiguration<ProviderOption>>\n> => {\n\tconst normalized = {} as Record<\n\t\tProviderOption,\n\t\tRecord<string, OAuth2ProviderClientConfiguration<ProviderOption>>\n\t>;\n\n\tfor (const [providerName, providerConfig] of Object.entries(\n\t\tprovidersConfiguration\n\t)) {\n\t\tif (!isValidProviderOption(providerName) || !providerConfig) continue;\n\n\t\tif (isProviderClientConfig(providerConfig)) {\n\t\t\tnormalized[providerName] = {\n\t\t\t\t'': providerConfig as OAuth2ProviderClientConfiguration<ProviderOption>\n\t\t\t};\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (\n\t\t\t!isRecord(providerConfig) ||\n\t\t\tObject.keys(providerConfig).length === 0\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t`Invalid provider configuration for ${providerName}`\n\t\t\t);\n\t\t}\n\n\t\tconst clientEntries = Object.fromEntries(\n\t\t\tObject.entries(providerConfig).map(([clientName, clientConfig]) => {\n\t\t\t\tif (!isProviderClientConfig(clientConfig)) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Invalid client configuration for ${providerName}.${clientName}`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\tclientName,\n\t\t\t\t\tclientConfig as OAuth2ProviderClientConfiguration<ProviderOption>\n\t\t\t\t];\n\t\t\t})\n\t\t) as Record<string, OAuth2ProviderClientConfiguration<ProviderOption>>;\n\n\t\tnormalized[providerName] = clientEntries;\n\t}\n\n\treturn normalized;\n};\n\nexport const resolveProviderClientConfiguration = ({\n\tclientName,\n\tproviderName,\n\tprovidersConfiguration\n}: {\n\tproviderName: ProviderOption;\n\tclientName?: string;\n\tprovidersConfiguration: OAuth2ConfigurationOptions;\n}) => {\n\tconst normalized = normalizeProvidersConfiguration(providersConfiguration);\n\tconst clients = normalized[providerName];\n\tif (!clients) {\n\t\treturn { error: 'Client provider not found' as const };\n\t}\n\n\tconst keys = Object.keys(clients);\n\tif (keys.length === 1 && keys[0] === '') {\n\t\treturn { config: clients[''] };\n\t}\n\n\tconst requestedClient = clientName?.trim();\n\tif (!requestedClient) {\n\t\treturn { error: 'Client variant is required' as const };\n\t}\n\n\tconst config = clients[requestedClient];\n\tif (!config) {\n\t\treturn { error: 'Client variant not found' as const };\n\t}\n\n\treturn { config };\n};\n\nexport const buildClientProviders = async (\n\tprovidersConfiguration: OAuth2ConfigurationOptions,\n\tcreateOAuth2ClientFn: <P extends ProviderOption>(\n\t\tproviderName: P,\n\t\tconfig: CredentialsFor<P>\n\t) => Promise<OAuth2Client<P>>\n): Promise<Record<string, ClientProviderGroup>> => {\n\tconst normalized = normalizeProvidersConfiguration(providersConfiguration);\n\tconst groups = await Promise.all(\n\t\tObject.entries(normalized).map(async ([providerName, clients]) => {\n\t\t\tconst entries = await Promise.all(\n\t\t\t\tObject.entries(clients).map(\n\t\t\t\t\tasync ([clientName, providerConfig]) => {\n\t\t\t\t\t\tconst providerInstance = await createOAuth2ClientFn(\n\t\t\t\t\t\t\tproviderName as ProviderOption,\n\t\t\t\t\t\t\tproviderConfig.credentials\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\tclientName,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tclientName:\n\t\t\t\t\t\t\t\t\tclientName.length > 0\n\t\t\t\t\t\t\t\t\t\t? clientName\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\tproviderInstance,\n\t\t\t\t\t\t\t\tscope: providerConfig.scope,\n\t\t\t\t\t\t\t\tsearchParams: providerConfig.searchParams\n\t\t\t\t\t\t\t} satisfies ClientProviderEntry\n\t\t\t\t\t\t] as const;\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t);\n\n\t\t\treturn [\n\t\t\t\tproviderName,\n\t\t\t\t{\n\t\t\t\t\tentries: Object.fromEntries(entries),\n\t\t\t\t\tisSingleClient:\n\t\t\t\t\t\tentries.length === 1 && entries[0]?.[0] === ''\n\t\t\t\t} satisfies ClientProviderGroup\n\t\t\t] as const;\n\t\t})\n\t);\n\n\treturn Object.fromEntries(groups);\n};\n\nexport const resolveClientProviderEntry = ({\n\tclientName,\n\tclientProviders,\n\tproviderName\n}: {\n\tproviderName: string | undefined;\n\tclientName?: string;\n\tclientProviders: Record<string, ClientProviderGroup>;\n}) => {\n\tif (!providerName) {\n\t\treturn { error: 'Provider is required' as const };\n\t}\n\n\tconst group = clientProviders[providerName];\n\tif (!group) {\n\t\treturn { error: 'Client provider not found' as const };\n\t}\n\n\tif (group.isSingleClient) {\n\t\tconst entry = group.entries[''];\n\t\tif (!entry) {\n\t\t\treturn { error: 'Client provider not found' as const };\n\t\t}\n\n\t\treturn { entry };\n\t}\n\n\tconst requestedClient = clientName?.trim();\n\tif (!requestedClient) {\n\t\treturn { error: 'Client variant is required' as const };\n\t}\n\n\tconst entry = group.entries[requestedClient];\n\tif (!entry) {\n\t\treturn { error: 'Client variant not found' as const };\n\t}\n\n\treturn { entry };\n};\n",
10
- "import { AuthIntent, StatusReturn, UserSessionId } from './types';\n\nexport const isValidUser = <UserType>(user: unknown): user is UserType => true;\n\nconst UUID_PATTERN =\n\t/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\n\nexport const isUserSessionId = (key: string): key is UserSessionId =>\n\tUUID_PATTERN.test(key);\n\nexport const isNonEmptyString = (\n\tstr: string | null | undefined\n): str is string => str !== null && str !== undefined && str.trim() !== '';\n\nexport const isStatusResponse = (value: unknown): value is StatusReturn =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\t'status' in value &&\n\ttypeof Reflect.get(value, 'status') === 'number';\n\nexport const isAuthIntent = (value: unknown): value is AuthIntent =>\n\tvalue === 'login' ||\n\tvalue === 'link_identity' ||\n\tvalue === 'link_connector';\n",
11
- "import { t } from 'elysia';\nimport { isValidProviderOption, providers } from 'citra';\n\nexport const userSessionIdTypebox = t.Optional(\n\tt.TemplateLiteral('${string}-${string}-${string}-${string}-${string}')\n);\n\nexport const authProviderOption = t.Enum(\n\tObject.fromEntries(\n\t\tObject.keys(providers)\n\t\t\t.filter(isValidProviderOption)\n\t\t\t.map((key) => [key, key])\n\t)\n);\n\nexport const authClientOption = t.Optional(t.String());\nexport const authIntentOption = t.Optional(\n\tt.Union([\n\t\tt.Literal('login'),\n\t\tt.Literal('link_identity'),\n\t\tt.Literal('link_connector')\n\t])\n);\n",
12
- "import { isPKCEProviderOption } from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { AuthIdentityConflictError } from './errors';\nimport { resolveClientProviderEntry } from './providerClients';\nimport { createSessionCompatibilityLayer } from './sessionAccess';\nimport { sessionStore } from './sessionStore';\nimport type { AuthSessionStore } from './sessionTypes';\nimport { isAuthIntent, isNonEmptyString } from './typeGuards';\nimport {\n\tauthClientOption,\n\tauthIntentOption,\n\tauthProviderOption,\n\tuserSessionIdTypebox\n} from './typebox';\nimport {\n\tClientProviders,\n\tOnCallbackError,\n\tOnCallbackSuccess,\n\tOnLinkConnector,\n\tOnLinkIdentity,\n\tOnLinkIdentityConflict,\n\tResolveAuthIntent,\n\tRouteString\n} from './types';\n\ntype CallbackProps<UserType> = {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tclientProviders: ClientProviders;\n\tcallbackRoute?: RouteString;\n\tresolveAuthIntent?: ResolveAuthIntent<UserType>;\n\tonCallbackSuccess: OnCallbackSuccess<UserType>;\n\tonLinkIdentity?: OnLinkIdentity<UserType>;\n\tonLinkIdentityConflict?: OnLinkIdentityConflict<UserType>;\n\tonLinkConnector?: OnLinkConnector<UserType>;\n\tonCallbackError: OnCallbackError;\n};\n\nexport const callback = <UserType>({\n\tauthSessionStore,\n\tclientProviders,\n\tcallbackRoute = '/oauth2/callback',\n\tresolveAuthIntent,\n\tonCallbackSuccess,\n\tonLinkIdentity,\n\tonLinkIdentityConflict,\n\tonLinkConnector,\n\tonCallbackError\n}: CallbackProps<UserType>) =>\n\tnew Elysia().use(sessionStore<UserType>()).get(\n\t\tcallbackRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tredirect,\n\t\t\tstore: { session, unregisteredSession },\n\t\t\tcookie,\n\t\t\tcookie: {\n\t\t\t\tstate: stored_state,\n\t\t\t\tcode_verifier,\n\t\t\t\torigin_url,\n\t\t\t\tuser_session_id,\n\t\t\t\tauth_provider,\n\t\t\t\tauth_client,\n\t\t\t\tauth_intent\n\t\t\t},\n\t\t\tquery: { code, state: callback_state }\n\t\t}) => {\n\t\t\tif (\n\t\t\t\tstored_state === undefined ||\n\t\t\t\tcode_verifier === undefined ||\n\t\t\t\tuser_session_id === undefined ||\n\t\t\t\tauth_client === undefined ||\n\t\t\t\tauth_intent === undefined\n\t\t\t) {\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\t\t\t}\n\n\t\t\tif (!isNonEmptyString(code) || stored_state.value === undefined) {\n\t\t\t\treturn status('Bad Request', 'Invalid callback request');\n\t\t\t}\n\n\t\t\tif (callback_state !== stored_state.value) {\n\t\t\t\treturn status('Bad Request', 'Invalid state mismatch');\n\t\t\t}\n\n\t\t\tconst resolvedProvider = resolveClientProviderEntry({\n\t\t\t\tclientName: auth_client.value || undefined,\n\t\t\t\tclientProviders,\n\t\t\t\tproviderName: auth_provider.value\n\t\t\t});\n\t\t\tif ('error' in resolvedProvider) {\n\t\t\t\treturn status('Unauthorized', resolvedProvider.error);\n\t\t\t}\n\t\t\tconst { clientName, providerInstance } = resolvedProvider.entry;\n\n\t\t\tstored_state.remove();\n\n\t\t\tconst authProvider = auth_provider.value;\n\t\t\tconst requiresPKCE = isPKCEProviderOption(authProvider);\n\t\t\tconst verifier = requiresPKCE ? code_verifier.value : undefined;\n\t\t\tif (requiresPKCE && verifier === undefined) {\n\t\t\t\treturn status(\n\t\t\t\t\t'Bad Request',\n\t\t\t\t\t'Code verifier not found and is required'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst originUrl = origin_url?.value ?? '/';\n\n\t\t\tlet tokenResponse;\n\t\t\ttry {\n\t\t\t\ttokenResponse =\n\t\t\t\t\tawait providerInstance.validateAuthorizationCode(\n\t\t\t\t\t\trequiresPKCE\n\t\t\t\t\t\t\t? { code, codeVerifier: verifier }\n\t\t\t\t\t\t\t: { code }\n\t\t\t\t\t);\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t'[callback] Failed to validate authorization code:',\n\t\t\t\t\t{\n\t\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\t\tauthProvider,\n\t\t\t\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\t\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tawait onCallbackError?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider,\n\t\t\t\t\terror: err,\n\t\t\t\t\toriginUrl\n\t\t\t\t});\n\n\t\t\t\treturn status(\n\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t'Failed to validate authorization code'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst compatibilityLayer = await createSessionCompatibilityLayer({\n\t\t\t\tauthSessionStore,\n\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t});\n\t\t\tconst callbackSession = authSessionStore\n\t\t\t\t? compatibilityLayer.session\n\t\t\t\t: session;\n\t\t\tconst callbackUnregisteredSession = authSessionStore\n\t\t\t\t? compatibilityLayer.unregisteredSession\n\t\t\t\t: unregisteredSession;\n\t\t\tconst currentUser =\n\t\t\t\tuser_session_id.value !== undefined\n\t\t\t\t\t? callbackSession[user_session_id.value]?.user\n\t\t\t\t\t: undefined;\n\t\t\tconst authIntent =\n\t\t\t\t(isAuthIntent(auth_intent.value)\n\t\t\t\t\t? auth_intent.value\n\t\t\t\t\t: undefined) ??\n\t\t\t\t(await resolveAuthIntent?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider,\n\t\t\t\t\tcurrentUser,\n\t\t\t\t\toriginUrl,\n\t\t\t\t\tsession: callbackSession,\n\t\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t\t})) ??\n\t\t\t\t'login';\n\t\t\tauth_intent.remove();\n\n\t\t\tconst userSessionId = user_session_id.value ?? crypto.randomUUID();\n\t\t\tconst callbackContext = {\n\t\t\t\tauthClient: clientName,\n\t\t\t\tauthIntent,\n\t\t\t\tauthProvider,\n\t\t\t\tcookie,\n\t\t\t\tcurrentUser,\n\t\t\t\toriginUrl,\n\t\t\t\tproviderInstance,\n\t\t\t\tredirect,\n\t\t\t\tsession: callbackSession,\n\t\t\t\tstatus,\n\t\t\t\ttokenResponse,\n\t\t\t\tunregisteredSession: callbackUnregisteredSession,\n\t\t\t\tuserSessionId\n\t\t\t} as const;\n\n\t\t\tlet response;\n\t\t\ttry {\n\t\t\t\tresponse =\n\t\t\t\t\tauthIntent === 'link_identity' && onLinkIdentity\n\t\t\t\t\t\t? await onLinkIdentity(callbackContext)\n\t\t\t\t\t\t: authIntent === 'link_connector' && onLinkConnector\n\t\t\t\t\t\t\t? await onLinkConnector(callbackContext)\n\t\t\t\t\t\t\t: await onCallbackSuccess?.(callbackContext);\n\t\t\t} catch (err) {\n\t\t\t\tif (\n\t\t\t\t\tauthIntent === 'link_identity' &&\n\t\t\t\t\terr instanceof AuthIdentityConflictError &&\n\t\t\t\t\tonLinkIdentityConflict\n\t\t\t\t) {\n\t\t\t\t\tresponse = await onLinkIdentityConflict({\n\t\t\t\t\t\t...callbackContext,\n\t\t\t\t\t\tconflict: {\n\t\t\t\t\t\t\t...err.conflict,\n\t\t\t\t\t\t\tintent: authIntent\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (authSessionStore) {\n\t\t\t\tawait compatibilityLayer.persist();\n\t\t\t}\n\n\t\t\tif (response) {\n\t\t\t\treturn response;\n\t\t\t}\n\n\t\t\treturn redirect(originUrl);\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_client: authClientOption,\n\t\t\t\tauth_intent: authIntentOption,\n\t\t\t\tauth_provider: authProviderOption,\n\t\t\t\tcode_verifier: t.Optional(t.String()),\n\t\t\t\torigin_url: t.Optional(t.String()),\n\t\t\t\tstate: t.Optional(t.String()),\n\t\t\t\tuser_session_id: userSessionIdTypebox\n\t\t\t})\n\t\t}\n\t);\n",
13
- "import { AuthIntent } from './types';\n\nexport type AuthIdentityConflict = {\n\tauthProvider: string;\n\tproviderSubject: string;\n\texistingUserAuthSub: string;\n\tcurrentUserAuthSub?: string;\n\tintent?: AuthIntent;\n};\n\nexport class AuthIdentityConflictError extends Error {\n\tconflict: AuthIdentityConflict;\n\n\tconstructor(conflict: AuthIdentityConflict) {\n\t\tsuper(\n\t\t\t`${conflict.authProvider} identity ${conflict.providerSubject} is already linked to ${conflict.existingUserAuthSub}`\n\t\t);\n\t\tthis.name = 'AuthIdentityConflictError';\n\t\tthis.conflict = conflict;\n\t}\n}\n",
14
- "import type { Cookie } from 'elysia';\nimport type { AuthSessionStore } from './sessionTypes';\nimport { isUserSessionId } from './typeGuards';\nimport type {\n\tSessionData,\n\tSessionRecord,\n\tUnregisteredSessionData,\n\tUnregisteredSessionRecord,\n\tUserSessionId\n} from './types';\n\nconst collectSessionEntries = <UserType>(\n\tsession: SessionRecord<UserType>\n): [UserSessionId, SessionData<UserType>][] => {\n\tconst entries: [UserSessionId, SessionData<UserType>][] = [];\n\tfor (const [key, value] of Object.entries(session)) {\n\t\tif (!isUserSessionId(key)) continue;\n\t\tentries.push([key, value]);\n\t}\n\n\treturn entries;\n};\n\nconst collectUnregisteredEntries = (\n\tunregisteredSession: UnregisteredSessionRecord\n): [UserSessionId, UnregisteredSessionData][] => {\n\tconst entries: [UserSessionId, UnregisteredSessionData][] = [];\n\tfor (const [key, value] of Object.entries(unregisteredSession)) {\n\t\tif (!isUserSessionId(key)) continue;\n\t\tentries.push([key, value]);\n\t}\n\n\treturn entries;\n};\n\nexport const loadSessionFromSource = async <UserType>({\n\tauthSessionStore,\n\tsession,\n\tuserSessionId,\n\tremoveExpired = true\n}: {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tsession?: SessionRecord<UserType>;\n\tuserSessionId?: UserSessionId;\n\tremoveExpired?: boolean;\n}): Promise<SessionData<UserType> | undefined> => {\n\tif (!userSessionId) return undefined;\n\n\tconst userSession = authSessionStore\n\t\t? await authSessionStore.getSession(userSessionId)\n\t\t: session?.[userSessionId];\n\tif (!userSession) return undefined;\n\n\tif (removeExpired && userSession.expiresAt < Date.now()) {\n\t\tif (authSessionStore) {\n\t\t\tawait authSessionStore.removeSession(userSessionId);\n\t\t} else if (session) {\n\t\t\tdelete session[userSessionId];\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\treturn userSession;\n};\n\nexport const getStatusFromSource = async <UserType>({\n\tauthSessionStore,\n\tsession,\n\tuser_session_id\n}: {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tsession?: SessionRecord<UserType>;\n\tuser_session_id: Cookie<UserSessionId | undefined>;\n}) => {\n\tif (user_session_id === undefined) {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: 'Bad Request',\n\t\t\t\tmessage: 'Cookies are missing'\n\t\t\t} as const,\n\t\t\tuser: null\n\t\t};\n\t}\n\n\tconst userSessionId = user_session_id.value;\n\tconst userSession = await loadSessionFromSource({\n\t\tauthSessionStore,\n\t\tsession,\n\t\tuserSessionId\n\t});\n\n\tif (!userSession && userSessionId) {\n\t\tuser_session_id.remove();\n\t}\n\n\treturn {\n\t\terror: null,\n\t\tuser: userSession?.user ?? null\n\t};\n};\n\nexport const createSessionCompatibilityLayer = async <UserType>({\n\tauthSessionStore,\n\tuserSessionId\n}: {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tuserSessionId?: UserSessionId;\n}): Promise<{\n\tsession: SessionRecord<UserType>;\n\tunregisteredSession: UnregisteredSessionRecord;\n\tpersist: () => Promise<void>;\n}> => {\n\tconst session: SessionRecord<UserType> = {};\n\tconst unregisteredSession: UnregisteredSessionRecord = {};\n\n\tif (!authSessionStore) {\n\t\treturn {\n\t\t\tsession,\n\t\t\tunregisteredSession,\n\t\t\tpersist: async () => {}\n\t\t};\n\t}\n\n\tconst initialSessionIds = new Set<UserSessionId>();\n\tconst initialUnregisteredIds = new Set<UserSessionId>();\n\n\tif (userSessionId) {\n\t\tconst currentSession = await authSessionStore.getSession(userSessionId);\n\t\tif (currentSession) {\n\t\t\tsession[userSessionId] = currentSession;\n\t\t\tinitialSessionIds.add(userSessionId);\n\t\t}\n\n\t\tconst currentUnregistered =\n\t\t\tawait authSessionStore.getUnregisteredSession(userSessionId);\n\t\tif (currentUnregistered) {\n\t\t\tunregisteredSession[userSessionId] = currentUnregistered;\n\t\t\tinitialUnregisteredIds.add(userSessionId);\n\t\t}\n\t}\n\n\treturn {\n\t\tsession,\n\t\tunregisteredSession,\n\t\tpersist: async () => {\n\t\t\tconst nextSessionIds = new Set<UserSessionId>();\n\t\t\tfor (const [key, value] of collectSessionEntries(session)) {\n\t\t\t\tnextSessionIds.add(key);\n\t\t\t\tawait authSessionStore.setSession(key, value);\n\t\t\t}\n\n\t\t\tfor (const initialId of initialSessionIds) {\n\t\t\t\tif (!nextSessionIds.has(initialId)) {\n\t\t\t\t\tawait authSessionStore.removeSession(initialId);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst nextUnregisteredIds = new Set<UserSessionId>();\n\t\t\tfor (const [key, value] of collectUnregisteredEntries(\n\t\t\t\tunregisteredSession\n\t\t\t)) {\n\t\t\t\tnextUnregisteredIds.add(key);\n\t\t\t\tawait authSessionStore.setUnregisteredSession(key, value);\n\t\t\t}\n\n\t\t\tfor (const initialId of initialUnregisteredIds) {\n\t\t\t\tif (!nextUnregisteredIds.has(initialId)) {\n\t\t\t\t\tawait authSessionStore.removeUnregisteredSession(initialId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n};\n",
15
- "import { Elysia } from 'elysia';\nimport { SessionRecord, UnregisteredSessionRecord } from './types';\n\nexport const sessionStore = <UserType>() => {\n\tconst initialSession: SessionRecord<UserType> = {};\n\tconst initialUnregisteredSession: UnregisteredSessionRecord = {};\n\n\treturn new Elysia({ name: 'sessionStore' }).state({\n\t\tsession: initialSession,\n\t\tunregisteredSession: initialUnregisteredSession\n\t});\n};\n",
16
- "import { isValidProviderOption } from 'citra';\nimport { Elysia } from 'elysia';\nimport { protectRoutePlugin } from './protectRoute';\nimport type { AuthSessionStore } from './sessionTypes';\nimport { isUserSessionId } from './typeGuards';\nimport { resolveAuthHtmxRenderers } from './ui/renderers';\nimport type { AuthHtmxConfig, AuthHtmxUser } from './ui/types';\n\nconst SEE_OTHER = 303;\n\nconst html = (markup: string) =>\n\tnew Response(markup, {\n\t\theaders: { 'content-type': 'text/html; charset=utf-8' }\n\t});\n\nconst signInPrompt = `<section class=\"auth-content\"><h1 class=\"page-heading\">Not authorized</h1><p class=\"muted\">You need to sign in to view this page.</p><a class=\"btn btn--primary\" href=\"/htmx\">Go to sign in</a></section>`;\n\n/* The HTMX fragment routes mounted by `auth`'s `htmx` option. They use\n * the package's fragment renderers and gate every data route behind\n * `protectRoute`; the identity/connector data operations are supplied via the\n * config so the auth package stays agnostic of your storage schema. */\nexport const createAuthHtmxRoutes = <UserType extends AuthHtmxUser>(\n\tconfig: AuthHtmxConfig & {\n\t\tauthSessionStore?: AuthSessionStore<UserType>;\n\t}\n) => {\n\tconst renderers = resolveAuthHtmxRenderers(config);\n\tconst authorizationHref =\n\t\tconfig.authorizationHref ??\n\t\t((provider: string) => `/oauth2/${provider}/authorization`);\n\n\treturn new Elysia()\n\t\t.use(\n\t\t\tprotectRoutePlugin<UserType>({\n\t\t\t\tauthSessionStore: config.authSessionStore\n\t\t\t})\n\t\t)\n\t\t.get('/htmx/login', () =>\n\t\t\thtml(renderers.providerLogin('Sign in with', true))\n\t\t)\n\t\t.get('/htmx/link', () => html(renderers.providerLogin('Link', false)))\n\t\t.get('/htmx/connector-links', () => html(renderers.connectorLinks()))\n\t\t.get('/htmx/auth-menu', ({ protectRoute }) =>\n\t\t\tprotectRoute(\n\t\t\t\t(user) => html(renderers.authMenu(user)),\n\t\t\t\t() => html(renderers.authMenu(null))\n\t\t\t)\n\t\t)\n\t\t.get('/htmx/me', ({ protectRoute }) =>\n\t\t\tprotectRoute(\n\t\t\t\t(user) => html(renderers.protected(user)),\n\t\t\t\t() => html(signInPrompt)\n\t\t\t)\n\t\t)\n\t\t.get('/htmx/account', ({ protectRoute }) =>\n\t\t\tprotectRoute(\n\t\t\t\t(user) => html(renderers.account(user)),\n\t\t\t\t() => html(signInPrompt)\n\t\t\t)\n\t\t)\n\t\t.get('/htmx/identities', ({ protectRoute, query }) =>\n\t\t\tprotectRoute(async (user) => {\n\t\t\t\tconst search =\n\t\t\t\t\ttypeof query.query === 'string' ? query.query : '';\n\n\t\t\t\treturn html(\n\t\t\t\t\trenderers.identities(\n\t\t\t\t\t\tawait config.loadAuthIdentities(user.sub),\n\t\t\t\t\t\tsearch\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})\n\t\t)\n\t\t.post('/htmx/identities/:id/primary', ({ params, protectRoute }) =>\n\t\t\tprotectRoute(async (user) => {\n\t\t\t\ttry {\n\t\t\t\t\tawait config.setPrimaryIdentity({\n\t\t\t\t\t\tidentityId: params.id,\n\t\t\t\t\t\tuserSub: user.sub\n\t\t\t\t\t});\n\t\t\t\t} catch {\n\t\t\t\t\t// ignore — re-render reflects current state\n\t\t\t\t}\n\n\t\t\t\treturn html(\n\t\t\t\t\trenderers.identities(\n\t\t\t\t\t\tawait config.loadAuthIdentities(user.sub),\n\t\t\t\t\t\t''\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})\n\t\t)\n\t\t.delete('/htmx/identities/:id', ({ params, protectRoute }) =>\n\t\t\tprotectRoute(async (user) => {\n\t\t\t\tconst payload = await config.loadAuthIdentities(user.sub);\n\t\t\t\tconst identities = Object.values(payload.identities).flat();\n\t\t\t\tconst identity = identities.find(\n\t\t\t\t\t(candidate) => candidate.id === params.id\n\t\t\t\t);\n\t\t\t\tif (\n\t\t\t\t\tidentity &&\n\t\t\t\t\tidentities.length > 1 &&\n\t\t\t\t\tidentity.isPrimary !== true\n\t\t\t\t) {\n\t\t\t\t\tawait config.removeIdentity({\n\t\t\t\t\t\tidentityId: identity.id,\n\t\t\t\t\t\tuserSub: user.sub\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn html(\n\t\t\t\t\trenderers.identities(\n\t\t\t\t\t\tawait config.loadAuthIdentities(user.sub),\n\t\t\t\t\t\t''\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})\n\t\t)\n\t\t.post('/htmx/merge/:id', ({ params, protectRoute }) =>\n\t\t\tprotectRoute(async (user) => {\n\t\t\t\ttry {\n\t\t\t\t\tawait config.mergeIdentity({\n\t\t\t\t\t\tmergeRequestId: params.id,\n\t\t\t\t\t\tuserSub: user.sub\n\t\t\t\t\t});\n\t\t\t\t} catch {\n\t\t\t\t\t// ignore — re-render reflects current state\n\t\t\t\t}\n\n\t\t\t\treturn html(\n\t\t\t\t\trenderers.identities(\n\t\t\t\t\t\tawait config.loadAuthIdentities(user.sub),\n\t\t\t\t\t\t''\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})\n\t\t)\n\t\t.delete('/htmx/merge/:id', ({ params, protectRoute }) =>\n\t\t\tprotectRoute(async (user) => {\n\t\t\t\tawait config.dismissMergeRequest({\n\t\t\t\t\tmergeRequestId: params.id,\n\t\t\t\t\tuserSub: user.sub\n\t\t\t\t});\n\n\t\t\t\treturn html(\n\t\t\t\t\trenderers.identities(\n\t\t\t\t\t\tawait config.loadAuthIdentities(user.sub),\n\t\t\t\t\t\t''\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})\n\t\t)\n\t\t.get('/htmx/connector-list', ({ protectRoute }) =>\n\t\t\tprotectRoute(\n\t\t\t\tasync (user) =>\n\t\t\t\t\thtml(\n\t\t\t\t\t\trenderers.connectors(\n\t\t\t\t\t\t\tawait config.loadLinkedProviders(user.sub)\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t() => html(signInPrompt)\n\t\t\t)\n\t\t)\n\t\t.delete('/htmx/connectors/grants/:id', ({ params, protectRoute }) =>\n\t\t\tprotectRoute(async (user) => {\n\t\t\t\tawait config.removeGrant({\n\t\t\t\t\tgrantId: params.id,\n\t\t\t\t\tuserSub: user.sub\n\t\t\t\t});\n\n\t\t\t\treturn html(\n\t\t\t\t\trenderers.connectors(\n\t\t\t\t\t\tawait config.loadLinkedProviders(user.sub)\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})\n\t\t)\n\t\t.delete('/htmx/connectors/bindings/:id', ({ params, protectRoute }) =>\n\t\t\tprotectRoute(async (user) => {\n\t\t\t\tawait config.removeBinding({\n\t\t\t\t\tbindingId: params.id,\n\t\t\t\t\tuserSub: user.sub\n\t\t\t\t});\n\n\t\t\t\treturn html(\n\t\t\t\t\trenderers.connectors(\n\t\t\t\t\t\tawait config.loadLinkedProviders(user.sub)\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})\n\t\t)\n\t\t.get('/htmx/login-redirect', ({ query, redirect }) => {\n\t\t\tconst provider =\n\t\t\t\ttypeof query.provider === 'string' ? query.provider : '';\n\n\t\t\treturn redirect(\n\t\t\t\tisValidProviderOption(provider)\n\t\t\t\t\t? authorizationHref(provider)\n\t\t\t\t\t: '/htmx'\n\t\t\t);\n\t\t})\n\t\t.post('/htmx/delete-account', (context) =>\n\t\t\tcontext.protectRoute(async (user) => {\n\t\t\t\tconst confirm =\n\t\t\t\t\ttypeof context.body === 'object' &&\n\t\t\t\t\tcontext.body !== null &&\n\t\t\t\t\t'confirm' in context.body\n\t\t\t\t\t\t? String(context.body.confirm)\n\t\t\t\t\t\t: '';\n\t\t\t\tif (confirm !== 'DELETE') {\n\t\t\t\t\treturn html(\n\t\t\t\t\t\t`<div class=\"error-banner\">Type DELETE to confirm.</div>`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tawait config.deleteAccount({ userSub: user.sub });\n\t\t\t\tcontext.set.headers['HX-Redirect'] = '/htmx';\n\n\t\t\t\treturn html('');\n\t\t\t})\n\t\t)\n\t\t.get(\n\t\t\t'/htmx/signout',\n\t\t\tasync ({ cookie: { user_session_id }, redirect }) => {\n\t\t\t\tconst sessionId = user_session_id.value;\n\t\t\t\tif (sessionId !== undefined && isUserSessionId(sessionId)) {\n\t\t\t\t\tawait config.authSessionStore?.removeSession(sessionId);\n\t\t\t\t}\n\t\t\t\tuser_session_id.remove();\n\n\t\t\t\treturn redirect('/htmx', SEE_OTHER);\n\t\t\t}\n\t\t);\n};\n",
17
- "import { Elysia, t } from 'elysia';\nimport { getStatusFromSource } from './sessionAccess';\nimport { sessionStore } from './sessionStore';\nimport type { AuthSessionStore } from './sessionTypes';\nimport { userSessionIdTypebox } from './typebox';\n\ntype AuthFailError =\n\t| {\n\t\t\treadonly code: 'Bad Request';\n\t\t\treadonly message: 'Cookies are missing';\n\t }\n\t| {\n\t\t\treadonly code: 'Unauthorized';\n\t\t\treadonly message: 'User is not authenticated';\n\t };\n\nexport const protectRoutePlugin = <UserType>({\n\tauthSessionStore\n}: {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n} = {}) =>\n\tnew Elysia()\n\t\t.use(sessionStore<UserType>())\n\t\t.guard({ cookie: t.Cookie({ user_session_id: userSessionIdTypebox }) })\n\t\t.derive(\n\t\t\t({ store: { session }, cookie: { user_session_id }, status }) => ({\n\t\t\t\tprotectRoute: <AuthReturn, AuthFailReturn>(\n\t\t\t\t\thandleAuth: (\n\t\t\t\t\t\tuser: UserType\n\t\t\t\t\t) => AuthReturn | Promise<AuthReturn>,\n\t\t\t\t\thandleAuthFail?: (error: AuthFailError) => AuthFailReturn\n\t\t\t\t) =>\n\t\t\t\t\tgetStatusFromSource<UserType>({\n\t\t\t\t\t\tauthSessionStore,\n\t\t\t\t\t\tsession,\n\t\t\t\t\t\tuser_session_id\n\t\t\t\t\t}).then(async ({ user, error }) => {\n\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\thandleAuthFail?.(error) ??\n\t\t\t\t\t\t\t\tstatus(error.code, error.message)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!user) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\thandleAuthFail?.({\n\t\t\t\t\t\t\t\t\tcode: 'Unauthorized',\n\t\t\t\t\t\t\t\t\tmessage: 'User is not authenticated'\n\t\t\t\t\t\t\t\t}) ??\n\t\t\t\t\t\t\t\tstatus(\n\t\t\t\t\t\t\t\t\t'Unauthorized',\n\t\t\t\t\t\t\t\t\t'User is not authenticated'\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn await handleAuth(user);\n\t\t\t\t\t})\n\t\t\t})\n\t\t)\n\t\t.as('global');\n",
12
+ "import { MILLISECONDS_IN_A_SECOND } from './constants';\n\n// All primitives here are dependency-free: Bun.password for hashing and\n// WebCrypto for everything else (HMAC, SHA-256, AES-GCM, secure random).\n\nconst DEFAULT_TOKEN_BYTES = 32;\nconst AES_KEY_BYTES = 32;\nconst AES_IV_BYTES = 12;\n\nconst HOTP_COUNTER_BYTES = 8;\nconst TOTP_SECRET_BYTES = 20;\nconst TOTP_DIGITS = 6;\nconst TOTP_PERIOD_SECONDS = 30;\nconst DEFAULT_TOTP_WINDOW = 1;\nconst DECIMAL_RADIX = 10;\nconst LAST_NIBBLE_MASK = 0x0f;\nconst SIGN_BIT_MASK = 0x7fffffff;\n\nconst BASE32_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';\nconst BASE32_GROUP_BITS = 5;\nconst BASE32_MASK = 0x1f;\nconst BYTE_BITS = 8;\n\nconst textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\n\nconst base64UrlEncode = (bytes: Uint8Array) =>\n\tBuffer.from(bytes).toString('base64url');\n\nconst base64UrlDecode = (encoded: string) =>\n\tnew Uint8Array(Buffer.from(encoded, 'base64url'));\n\nconst sha256 = async (input: string) => {\n\tconst digest = await crypto.subtle.digest('SHA-256', textEncoder.encode(input));\n\n\treturn new Uint8Array(digest);\n};\n\nconst hmacSha1 = async (key: Uint8Array, message: Uint8Array) => {\n\tconst cryptoKey = await crypto.subtle.importKey(\n\t\t'raw',\n\t\tkey,\n\t\t{ hash: 'SHA-1', name: 'HMAC' },\n\t\tfalse,\n\t\t['sign']\n\t);\n\tconst signature = await crypto.subtle.sign('HMAC', cryptoKey, message);\n\n\treturn new Uint8Array(signature);\n};\n\nconst counterToBytes = (counter: number) => {\n\tconst bytes = new Uint8Array(HOTP_COUNTER_BYTES);\n\tnew DataView(bytes.buffer).setBigUint64(0, BigInt(counter), false);\n\n\treturn bytes;\n};\n\nconst generateHotp = async (\n\tsecret: Uint8Array,\n\tcounter: number,\n\tdigits = TOTP_DIGITS\n) => {\n\tconst hmac = await hmacSha1(secret, counterToBytes(counter));\n\tconst view = new DataView(hmac.buffer, hmac.byteOffset, hmac.byteLength);\n\tconst offset = view.getUint8(hmac.byteLength - 1) & LAST_NIBBLE_MASK;\n\tconst truncated = view.getUint32(offset, false) & SIGN_BIT_MASK;\n\tconst otp = truncated % DECIMAL_RADIX ** digits;\n\n\treturn otp.toString().padStart(digits, '0');\n};\n\nconst importAesKey = (keyMaterial: string) =>\n\tcrypto.subtle.importKey(\n\t\t'raw',\n\t\tbase64UrlDecode(keyMaterial),\n\t\t{ name: 'AES-GCM' },\n\t\tfalse,\n\t\t['decrypt', 'encrypt']\n\t);\n\nexport const base32Decode = (encoded: string) => {\n\tconst normalized = encoded.toUpperCase().replace(/[^A-Z2-7]/gu, '');\n\tconst bits = [...normalized]\n\t\t.map((char) =>\n\t\t\tBASE32_ALPHABET.indexOf(char)\n\t\t\t\t.toString(2)\n\t\t\t\t.padStart(BASE32_GROUP_BITS, '0')\n\t\t)\n\t\t.join('');\n\tconst byteChunks = bits.match(/.{8}/gu) ?? [];\n\n\treturn new Uint8Array(byteChunks.map((chunk) => parseInt(chunk, 2)));\n};\nexport const base32Encode = (bytes: Uint8Array) => {\n\tconst bits = Array.from(bytes, (byte) =>\n\t\tbyte.toString(2).padStart(BYTE_BITS, '0')\n\t).join('');\n\tconst groups = bits.match(/.{1,5}/gu) ?? [];\n\n\treturn groups\n\t\t.map(\n\t\t\t(group) =>\n\t\t\t\tBASE32_ALPHABET[\n\t\t\t\t\tparseInt(group.padEnd(BASE32_GROUP_BITS, '0'), 2) &\n\t\t\t\t\t\tBASE32_MASK\n\t\t\t\t] ?? ''\n\t\t)\n\t\t.join('');\n};\nexport const constantTimeEqual = async (left: string, right: string) => {\n\tconst [leftDigest, rightDigest] = await Promise.all([\n\t\tsha256(left),\n\t\tsha256(right)\n\t]);\n\tconst leftView = new DataView(\n\t\tleftDigest.buffer,\n\t\tleftDigest.byteOffset,\n\t\tleftDigest.byteLength\n\t);\n\tconst rightView = new DataView(\n\t\trightDigest.buffer,\n\t\trightDigest.byteOffset,\n\t\trightDigest.byteLength\n\t);\n\tlet mismatch = 0;\n\tfor (let index = 0; index < leftDigest.byteLength; index += 1) {\n\t\tmismatch |= leftView.getUint8(index) ^ rightView.getUint8(index);\n\t}\n\n\treturn mismatch === 0;\n};\nexport const createTotpKeyUri = ({\n\taccountName,\n\tdigits = TOTP_DIGITS,\n\tissuer,\n\tperiod = TOTP_PERIOD_SECONDS,\n\tsecret\n}: {\n\taccountName: string;\n\tdigits?: number;\n\tissuer: string;\n\tperiod?: number;\n\tsecret: string;\n}) => {\n\tconst params = new URLSearchParams({\n\t\talgorithm: 'SHA1',\n\t\tdigits: `${digits}`,\n\t\tissuer,\n\t\tperiod: `${period}`,\n\t\tsecret\n\t});\n\tconst label = encodeURIComponent(`${issuer}:${accountName}`);\n\n\treturn `otpauth://totp/${label}?${params.toString()}`;\n};\nexport const decryptSecret = async (ciphertext: string, keyMaterial: string) => {\n\tconst key = await importAesKey(keyMaterial);\n\tconst combined = base64UrlDecode(ciphertext);\n\tconst nonce = combined.subarray(0, AES_IV_BYTES);\n\tconst data = combined.subarray(AES_IV_BYTES);\n\tconst plaintext = await crypto.subtle.decrypt(\n\t\t{ iv: nonce, name: 'AES-GCM' },\n\t\tkey,\n\t\tdata\n\t);\n\n\treturn textDecoder.decode(plaintext);\n};\nexport const encryptSecret = async (plaintext: string, keyMaterial: string) => {\n\tconst key = await importAesKey(keyMaterial);\n\tconst nonce = new Uint8Array(AES_IV_BYTES);\n\tcrypto.getRandomValues(nonce);\n\tconst ciphertext = await crypto.subtle.encrypt(\n\t\t{ iv: nonce, name: 'AES-GCM' },\n\t\tkey,\n\t\ttextEncoder.encode(plaintext)\n\t);\n\tconst combined = new Uint8Array(nonce.byteLength + ciphertext.byteLength);\n\tcombined.set(nonce, 0);\n\tcombined.set(new Uint8Array(ciphertext), nonce.byteLength);\n\n\treturn base64UrlEncode(combined);\n};\nexport const generateEncryptionKey = () => generateSecureToken(AES_KEY_BYTES);\nexport const generateSecureToken = (byteLength = DEFAULT_TOKEN_BYTES) => {\n\tconst bytes = new Uint8Array(byteLength);\n\tcrypto.getRandomValues(bytes);\n\n\treturn base64UrlEncode(bytes);\n};\nexport const generateTotp = async ({\n\tdigits = TOTP_DIGITS,\n\tnow = Date.now(),\n\tperiod = TOTP_PERIOD_SECONDS,\n\tsecret\n}: {\n\tdigits?: number;\n\tnow?: number;\n\tperiod?: number;\n\tsecret: string;\n}) => {\n\tconst counter = Math.floor(now / MILLISECONDS_IN_A_SECOND / period);\n\n\treturn generateHotp(base32Decode(secret), counter, digits);\n};\nexport const generateTotpSecret = (byteLength = TOTP_SECRET_BYTES) => {\n\tconst bytes = new Uint8Array(byteLength);\n\tcrypto.getRandomValues(bytes);\n\n\treturn base32Encode(bytes);\n};\nexport const hashPassword = (password: string) =>\n\tBun.password.hash(password, { algorithm: 'argon2id' });\nexport const hashToken = async (token: string) =>\n\tbase64UrlEncode(await sha256(token));\nexport const verifyPassword = (password: string, hash: string) =>\n\tBun.password.verify(password, hash);\nexport const verifyTotp = async ({\n\tdigits = TOTP_DIGITS,\n\tnow = Date.now(),\n\tperiod = TOTP_PERIOD_SECONDS,\n\tsecret,\n\ttoken,\n\twindow = DEFAULT_TOTP_WINDOW\n}: {\n\tdigits?: number;\n\tnow?: number;\n\tperiod?: number;\n\tsecret: string;\n\ttoken: string;\n\twindow?: number;\n}) => {\n\tconst secretBytes = base32Decode(secret);\n\tconst counter = Math.floor(now / MILLISECONDS_IN_A_SECOND / period);\n\tconst drifts = Array.from(\n\t\t{ length: window * 2 + 1 },\n\t\t(_, offset) => counter - window + offset\n\t);\n\tconst candidates = await Promise.all(\n\t\tdrifts.map((value) => generateHotp(secretBytes, value, digits))\n\t);\n\tconst matches = await Promise.all(\n\t\tcandidates.map((candidate) => constantTimeEqual(candidate, token))\n\t);\n\n\treturn matches.includes(true);\n};\n",
13
+ "import {\n\tMILLISECONDS_IN_A_DAY,\n\tMILLISECONDS_IN_AN_HOUR\n} from '../constants';\nimport type { LockoutGuard } from '../lockout/config';\nimport type { AuthSessionStore } from '../session/types';\nimport type { OrganizationId } from '../tenancy';\nimport type { RouteString, StatusReturn, UserSessionId } from '../types';\nimport type { PasswordPolicy } from './passwordPolicy';\nimport type { CredentialStore } from './types';\n\nexport const DEFAULT_CREDENTIAL_SESSION_TTL_MS = MILLISECONDS_IN_A_DAY;\nexport const DEFAULT_RESET_TOKEN_TTL_MS = MILLISECONDS_IN_AN_HOUR;\nexport const DEFAULT_VERIFICATION_TOKEN_TTL_MS = MILLISECONDS_IN_A_DAY;\n\nexport type CredentialIdentity = {\n\temail: string;\n\torganizationId?: OrganizationId;\n};\n\nexport type CredentialEmailType = 'reset_password' | 'verify_email';\n\nexport type CredentialEmailMessage = {\n\temail: string;\n\texpiresAt: number;\n\ttoken: string;\n\ttype: CredentialEmailType;\n};\n\n// The consumer owns the user table; the package asks for users through these hooks and\n// owns only password hashes + tokens via `credentialStore`. Every block is additive and\n// routes are overridable, matching the existing OAuth config surface.\nexport type CredentialsConfig<UserType> = {\n\tcredentialStore: CredentialStore;\n\tgetUserByEmail: (\n\t\temail: string\n\t) => Promise<UserType | null | undefined> | UserType | null | undefined;\n\tisMfaRequired?: (user: UserType) => boolean | Promise<boolean>;\n\tloginRoute?: RouteString;\n\tonCreateCredentialUser: (\n\t\tidentity: CredentialIdentity\n\t) => Promise<Response | StatusReturn | UserType> | Response | StatusReturn | UserType;\n\tonCredentialsLoginError?: (context: {\n\t\temail: string;\n\t\terror: unknown;\n\t}) => void | Promise<void>;\n\tonCredentialsLoginSuccess?: (context: {\n\t\tuser: UserType;\n\t\tuserSessionId: UserSessionId;\n\t}) => void | Promise<void>;\n\tonEmailVerified?: (context: { email: string }) => void | Promise<void>;\n\tonPasswordReset?: (context: { email: string }) => void | Promise<void>;\n\tonRegistrationSuccess?: (context: {\n\t\temail: string;\n\t\tuser: UserType;\n\t}) => void | Promise<void>;\n\tonSendEmail: (message: CredentialEmailMessage) => void | Promise<void>;\n\tpasswordPolicy?: PasswordPolicy;\n\tregisterRoute?: RouteString;\n\t/** When true, registration creates the account but NOT a session, and login is\n\t * rejected until the email is verified. Default false = auto-login on register and\n\t * verification acts as a soft, later gate. */\n\trequireEmailVerification?: boolean;\n\tresetPasswordRoute?: RouteString;\n\tresetTokenDurationMs?: number;\n\tsessionDurationMs?: number;\n\tverificationTokenDurationMs?: number;\n\tverifyEmailRoute?: RouteString;\n};\n\n// The route modules also need the top-level `authSessionStore` (threaded in by `auth()`)\n// to persist promoted sessions, so they accept this superset of the public config.\nexport type CredentialRouteProps<UserType> = CredentialsConfig<UserType> & {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tlockoutGuard?: LockoutGuard;\n};\n",
14
+ "import { Elysia, t } from 'elysia';\nimport { MILLISECONDS_IN_AN_HOUR } from '../constants';\nimport { verifyPassword } from '../crypto';\nimport { createSessionCompatibilityLayer } from '../session/access';\nimport { persistWhen, promoteToSession } from '../session/promote';\nimport { sessionStore } from '../session/state';\nimport { userSessionIdTypebox } from '../typebox';\nimport {\n\ttype CredentialRouteProps,\n\tDEFAULT_CREDENTIAL_SESSION_TTL_MS\n} from './config';\n\nexport const credentialsLogin = <UserType>({\n\tauthSessionStore,\n\tcredentialStore,\n\tgetUserByEmail,\n\tisMfaRequired,\n\tlockoutGuard,\n\tloginRoute = '/auth/login',\n\tonCredentialsLoginError,\n\tonCredentialsLoginSuccess,\n\trequireEmailVerification = false,\n\tsessionDurationMs = DEFAULT_CREDENTIAL_SESSION_TTL_MS\n}: CredentialRouteProps<UserType>) =>\n\tnew Elysia().use(sessionStore<UserType>()).post(\n\t\tloginRoute,\n\t\tasync ({\n\t\t\tbody: { email, password },\n\t\t\tcookie: { user_session_id },\n\t\t\tstatus,\n\t\t\tstore: { session, unregisteredSession }\n\t\t}) => {\n\t\t\tconst normalizedEmail = email.trim().toLowerCase();\n\t\t\tconst lockState = lockoutGuard\n\t\t\t\t? await lockoutGuard.check(normalizedEmail)\n\t\t\t\t: undefined;\n\t\t\tif (lockState?.locked) {\n\t\t\t\treturn status('Too Many Requests', {\n\t\t\t\t\tretryAfterMs: lockState.retryAfterMs,\n\t\t\t\t\tstatus: 'account_locked'\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst credential =\n\t\t\t\tawait credentialStore.getCredentialByEmail(normalizedEmail);\n\t\t\tconst user = await getUserByEmail(normalizedEmail);\n\t\t\tconst passwordValid = credential\n\t\t\t\t? await verifyPassword(password, credential.passwordHash)\n\t\t\t\t: false;\n\n\t\t\t// One generic failure (message + status) to avoid account enumeration.\n\t\t\tif (\n\t\t\t\t!credential ||\n\t\t\t\t!user ||\n\t\t\t\tcredential.status !== 'active' ||\n\t\t\t\t!passwordValid\n\t\t\t) {\n\t\t\t\tawait lockoutGuard?.recordFailure(normalizedEmail);\n\t\t\t\tawait onCredentialsLoginError?.({\n\t\t\t\t\temail: normalizedEmail,\n\t\t\t\t\terror: new Error('invalid_credentials')\n\t\t\t\t});\n\n\t\t\t\treturn status('Unauthorized', 'Invalid email or password');\n\t\t\t}\n\n\t\t\tawait lockoutGuard?.recordSuccess(normalizedEmail);\n\n\t\t\tif (requireEmailVerification && !credential.emailVerified) {\n\t\t\t\treturn status('Forbidden', { status: 'email_not_verified' });\n\t\t\t}\n\n\t\t\t// MFA seam: when a factor is enrolled, keep an unregistered session and\n\t\t\t// defer promotion to the (Workstream B) challenge route.\n\t\t\tif (await isMfaRequired?.(user)) {\n\t\t\t\tconst compatibilityLayer =\n\t\t\t\t\tawait createSessionCompatibilityLayer({\n\t\t\t\t\t\tauthSessionStore,\n\t\t\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t\t\t});\n\t\t\t\tconst pendingUnregistered = authSessionStore\n\t\t\t\t\t? compatibilityLayer.unregisteredSession\n\t\t\t\t\t: unregisteredSession;\n\t\t\t\tconst pendingSessionId = crypto.randomUUID();\n\t\t\t\tpendingUnregistered[pendingSessionId] = {\n\t\t\t\t\texpiresAt: Date.now() + MILLISECONDS_IN_AN_HOUR,\n\t\t\t\t\tuserIdentity: { email: normalizedEmail }\n\t\t\t\t};\n\t\t\t\tuser_session_id.set({\n\t\t\t\t\thttpOnly: true,\n\t\t\t\t\tsameSite: 'lax',\n\t\t\t\t\tsecure: true,\n\t\t\t\t\tvalue: pendingSessionId\n\t\t\t\t});\n\t\t\t\tawait persistWhen(\n\t\t\t\t\tauthSessionStore !== undefined,\n\t\t\t\t\tcompatibilityLayer.persist\n\t\t\t\t);\n\n\t\t\t\treturn status('OK', { status: 'mfa_required' });\n\t\t\t}\n\n\t\t\tconst userSessionId = await promoteToSession({\n\t\t\t\tauthSessionStore,\n\t\t\t\tcookie: user_session_id,\n\t\t\t\tinMemorySession: session,\n\t\t\t\tsessionDurationMs,\n\t\t\t\tuser\n\t\t\t});\n\t\t\tawait onCredentialsLoginSuccess?.({ user, userSessionId });\n\n\t\t\treturn status('OK', { status: 'authenticated' });\n\t\t},\n\t\t{\n\t\t\tbody: t.Object({ email: t.String(), password: t.String() }),\n\t\t\tcookie: t.Cookie({ user_session_id: userSessionIdTypebox })\n\t\t}\n\t);\n",
15
+ "import { AuthIntent, StatusReturn, UserSessionId } from './types';\n\nexport const isValidUser = <UserType>(user: unknown): user is UserType => {\n\tvoid user;\n\n\treturn true;\n};\n\nconst UUID_PATTERN =\n\t/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\n\nexport const isAuthIntent = (value: unknown): value is AuthIntent =>\n\tvalue === 'login' ||\n\tvalue === 'link_identity' ||\n\tvalue === 'link_connector';\nexport const isNonEmptyString = (\n\tstr: string | null | undefined\n): str is string => str !== null && str !== undefined && str.trim() !== '';\nexport const isStatusResponse = (value: unknown): value is StatusReturn =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\t'status' in value &&\n\ttypeof Reflect.get(value, 'status') === 'number';\nexport const isUserSessionId = (key: string): key is UserSessionId =>\n\tUUID_PATTERN.test(key);\n",
16
+ "import type { Cookie } from 'elysia';\nimport { isUserSessionId } from '../typeGuards';\nimport type {\n\tSessionData,\n\tSessionRecord,\n\tUnregisteredSessionData,\n\tUnregisteredSessionRecord,\n\tUserSessionId\n} from '../types';\nimport type { AuthSessionStore } from './types';\n\nconst collectSessionEntries = <UserType>(session: SessionRecord<UserType>) =>\n\tObject.entries(session).filter(\n\t\t(entry): entry is [UserSessionId, SessionData<UserType>] =>\n\t\t\tisUserSessionId(entry[0])\n\t);\n\nconst collectUnregisteredEntries = (\n\tunregisteredSession: UnregisteredSessionRecord\n) =>\n\tObject.entries(unregisteredSession).filter(\n\t\t(entry): entry is [UserSessionId, UnregisteredSessionData] =>\n\t\t\tisUserSessionId(entry[0])\n\t);\n\nconst removeStaleIds = (\n\tinitialIds: Set<UserSessionId>,\n\tnextIds: Set<UserSessionId>,\n\tremove: (id: UserSessionId) => Promise<void> | void\n) =>\n\tPromise.all(\n\t\t[...initialIds]\n\t\t\t.filter((initialId) => !nextIds.has(initialId))\n\t\t\t.map((initialId) => remove(initialId))\n\t);\n\nexport const createSessionCompatibilityLayer = async <UserType>({\n\tauthSessionStore,\n\tuserSessionId\n}: {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tuserSessionId?: UserSessionId;\n}): Promise<{\n\tsession: SessionRecord<UserType>;\n\tunregisteredSession: UnregisteredSessionRecord;\n\tpersist: () => Promise<void>;\n}> => {\n\tconst session: SessionRecord<UserType> = {};\n\tconst unregisteredSession: UnregisteredSessionRecord = {};\n\n\tif (!authSessionStore) {\n\t\treturn {\n\t\t\tsession,\n\t\t\tunregisteredSession,\n\t\t\tpersist: async () => undefined\n\t\t};\n\t}\n\n\tconst initialSessionIds = new Set<UserSessionId>();\n\tconst initialUnregisteredIds = new Set<UserSessionId>();\n\n\tconst currentSession = userSessionId\n\t\t? await authSessionStore.getSession(userSessionId)\n\t\t: undefined;\n\tif (userSessionId && currentSession) {\n\t\tsession[userSessionId] = currentSession;\n\t\tinitialSessionIds.add(userSessionId);\n\t}\n\n\tconst currentUnregistered = userSessionId\n\t\t? await authSessionStore.getUnregisteredSession(userSessionId)\n\t\t: undefined;\n\tif (userSessionId && currentUnregistered) {\n\t\tunregisteredSession[userSessionId] = currentUnregistered;\n\t\tinitialUnregisteredIds.add(userSessionId);\n\t}\n\n\tconst persist = async () => {\n\t\tconst sessionEntries = collectSessionEntries(session);\n\t\tconst nextSessionIds = new Set(sessionEntries.map(([key]) => key));\n\t\tawait Promise.all(\n\t\t\tsessionEntries.map(([key, value]) =>\n\t\t\t\tauthSessionStore.setSession(key, value)\n\t\t\t)\n\t\t);\n\t\tawait removeStaleIds(initialSessionIds, nextSessionIds, (initialId) =>\n\t\t\tauthSessionStore.removeSession(initialId)\n\t\t);\n\n\t\tconst unregisteredEntries =\n\t\t\tcollectUnregisteredEntries(unregisteredSession);\n\t\tconst nextUnregisteredIds = new Set(\n\t\t\tunregisteredEntries.map(([key]) => key)\n\t\t);\n\t\tawait Promise.all(\n\t\t\tunregisteredEntries.map(([key, value]) =>\n\t\t\t\tauthSessionStore.setUnregisteredSession(key, value)\n\t\t\t)\n\t\t);\n\t\tawait removeStaleIds(\n\t\t\tinitialUnregisteredIds,\n\t\t\tnextUnregisteredIds,\n\t\t\t(initialId) => authSessionStore.removeUnregisteredSession(initialId)\n\t\t);\n\t};\n\n\treturn {\n\t\tpersist,\n\t\tsession,\n\t\tunregisteredSession\n\t};\n};\nconst removeSessionFromSource = async <UserType>({\n\tauthSessionStore,\n\tsession,\n\tuserSessionId\n}: {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tsession?: SessionRecord<UserType>;\n\tuserSessionId: UserSessionId;\n}) => {\n\tif (authSessionStore) {\n\t\tawait authSessionStore.removeSession(userSessionId);\n\n\t\treturn;\n\t}\n\n\tif (session) {\n\t\tdelete session[userSessionId];\n\t}\n};\nexport const getStatusFromSource = async <UserType>({\n\tauthSessionStore,\n\tsession,\n\tuser_session_id\n}: {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tsession?: SessionRecord<UserType>;\n\tuser_session_id: Cookie<UserSessionId | undefined>;\n}) => {\n\tif (user_session_id === undefined) {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: 'Bad Request',\n\t\t\t\tmessage: 'Cookies are missing'\n\t\t\t} as const,\n\t\t\tuser: null\n\t\t};\n\t}\n\n\tconst userSessionId = user_session_id.value;\n\tconst userSession = await loadSessionFromSource({\n\t\tauthSessionStore,\n\t\tsession,\n\t\tuserSessionId\n\t});\n\n\tif (!userSession && userSessionId) {\n\t\tuser_session_id.remove();\n\t}\n\n\treturn {\n\t\terror: null,\n\t\tuser: userSession?.user ?? null\n\t};\n};\nexport const loadSessionFromSource = async <UserType>({\n\tauthSessionStore,\n\tsession,\n\tuserSessionId,\n\tremoveExpired = true\n}: {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tsession?: SessionRecord<UserType>;\n\tuserSessionId?: UserSessionId;\n\tremoveExpired?: boolean;\n}) => {\n\tif (!userSessionId) return undefined;\n\n\tconst userSession = authSessionStore\n\t\t? await authSessionStore.getSession(userSessionId)\n\t\t: session?.[userSessionId];\n\tif (!userSession) return undefined;\n\n\tif (removeExpired && userSession.expiresAt < Date.now()) {\n\t\tawait removeSessionFromSource({\n\t\t\tauthSessionStore,\n\t\t\tsession,\n\t\t\tuserSessionId\n\t\t});\n\n\t\treturn undefined;\n\t}\n\n\treturn userSession;\n};\n",
17
+ "import type { Cookie } from 'elysia';\nimport type { SessionRecord, UserSessionId } from '../types';\nimport { createSessionCompatibilityLayer } from './access';\nimport type { AuthSessionStore } from './types';\n\nexport const persistWhen = async (\n\tshouldPersist: boolean,\n\tpersist: () => Promise<void>\n) => {\n\tif (shouldPersist) await persist();\n};\n\ntype PromoteToSessionProps<UserType> = {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tcookie: Cookie<UserSessionId | undefined>;\n\tinMemorySession: SessionRecord<UserType>;\n\tsessionDurationMs: number;\n\tuser: UserType;\n};\n\n// Creates a registered session for a non-OAuth (credential / MFA-promoted) user and\n// rotates the session cookie. Deliberately omits `accessToken` these sessions are not\n// backed by an OAuth provider token. Shared by credential register/login and the MFA\n// challenge route.\nexport const promoteToSession = async <UserType>({\n\tauthSessionStore,\n\tcookie,\n\tinMemorySession,\n\tsessionDurationMs,\n\tuser\n}: PromoteToSessionProps<UserType>) => {\n\tconst compatibilityLayer = await createSessionCompatibilityLayer({\n\t\tauthSessionStore,\n\t\tuserSessionId: cookie.value\n\t});\n\tconst targetSession = authSessionStore\n\t\t? compatibilityLayer.session\n\t\t: inMemorySession;\n\tconst userSessionId = crypto.randomUUID();\n\n\ttargetSession[userSessionId] = {\n\t\tauthenticatedAt: Date.now(),\n\t\texpiresAt: Date.now() + sessionDurationMs,\n\t\tuser\n\t};\n\tcookie.set({\n\t\thttpOnly: true,\n\t\tsameSite: 'lax',\n\t\tsecure: true,\n\t\tvalue: userSessionId\n\t});\n\n\tif (authSessionStore) {\n\t\tawait compatibilityLayer.persist();\n\t}\n\n\treturn userSessionId;\n};\n",
18
+ "import { Elysia } from 'elysia';\nimport { SessionRecord, UnregisteredSessionRecord } from '../types';\n\nexport const sessionStore = <UserType>() => {\n\tconst initialSession: SessionRecord<UserType> = {};\n\tconst initialUnregisteredSession: UnregisteredSessionRecord = {};\n\n\treturn new Elysia({ name: 'sessionStore' }).state({\n\t\tsession: initialSession,\n\t\tunregisteredSession: initialUnregisteredSession\n\t});\n};\n",
19
+ "import { isValidProviderOption, providers } from 'citra';\nimport { t } from 'elysia';\n\nexport const authClientOption = t.Optional(t.String());\nexport const authIntentOption = t.Optional(\n\tt.Union([\n\t\tt.Literal('login'),\n\t\tt.Literal('link_identity'),\n\t\tt.Literal('link_connector')\n\t])\n);\nexport const authProviderOption = t.Enum(\n\tObject.fromEntries(\n\t\tObject.keys(providers)\n\t\t\t.filter(isValidProviderOption)\n\t\t\t.map((key) => [key, key])\n\t)\n);\nexport const userSessionIdTypebox = t.Optional(\n\tt.TemplateLiteral('${string}-${string}-${string}-${string}-${string}')\n);\n",
20
+ "import { Elysia, t } from 'elysia';\nimport { generateSecureToken, hashPassword, hashToken } from '../crypto';\nimport {\n\ttype CredentialsConfig,\n\tDEFAULT_RESET_TOKEN_TTL_MS\n} from './config';\nimport { evaluatePassword } from './passwordPolicy';\n\nexport const credentialsPasswordReset = <UserType>({\n\tcredentialStore,\n\tonPasswordReset,\n\tonSendEmail,\n\tpasswordPolicy,\n\tresetPasswordRoute = '/auth/reset-password',\n\tresetTokenDurationMs = DEFAULT_RESET_TOKEN_TTL_MS\n}: CredentialsConfig<UserType>) =>\n\tnew Elysia()\n\t\t.post(\n\t\t\t`${resetPasswordRoute}/request`,\n\t\t\tasync ({ body: { email }, status }) => {\n\t\t\t\tconst normalizedEmail = email.trim().toLowerCase();\n\t\t\t\tconst credential =\n\t\t\t\t\tawait credentialStore.getCredentialByEmail(normalizedEmail);\n\n\t\t\t\t// Always 200 regardless of existence to avoid account enumeration.\n\t\t\t\tif (credential && credential.status === 'active') {\n\t\t\t\t\tconst token = generateSecureToken();\n\t\t\t\t\tconst expiresAt = Date.now() + resetTokenDurationMs;\n\t\t\t\t\tawait credentialStore.saveResetToken({\n\t\t\t\t\t\temail: normalizedEmail,\n\t\t\t\t\t\texpiresAt,\n\t\t\t\t\t\ttokenHash: await hashToken(token)\n\t\t\t\t\t});\n\t\t\t\t\tawait onSendEmail({\n\t\t\t\t\t\temail: normalizedEmail,\n\t\t\t\t\t\texpiresAt,\n\t\t\t\t\t\ttoken,\n\t\t\t\t\t\ttype: 'reset_password'\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn status('OK', { status: 'reset_requested' });\n\t\t\t},\n\t\t\t{ body: t.Object({ email: t.String() }) }\n\t\t)\n\t\t.post(\n\t\t\tresetPasswordRoute,\n\t\t\tasync ({ body: { password, token }, status }) => {\n\t\t\t\tconst consumed = await credentialStore.consumeResetToken(\n\t\t\t\t\tawait hashToken(token)\n\t\t\t\t);\n\t\t\t\tif (!consumed) {\n\t\t\t\t\treturn status(\n\t\t\t\t\t\t'Bad Request',\n\t\t\t\t\t\t'Invalid or expired reset token'\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst policy = await evaluatePassword(password, passwordPolicy);\n\t\t\t\tif (!policy.ok) {\n\t\t\t\t\treturn status('Bad Request', {\n\t\t\t\t\t\tmessage: 'Password does not meet the policy',\n\t\t\t\t\t\tviolations: policy.violations\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst existing =\n\t\t\t\t\tawait credentialStore.getCredentialByEmail(consumed.email);\n\t\t\t\tconst now = Date.now();\n\t\t\t\tawait credentialStore.saveCredential({\n\t\t\t\t\tcreatedAt: existing?.createdAt ?? now,\n\t\t\t\t\temail: consumed.email,\n\t\t\t\t\t// Completing a reset proves control of the inbox.\n\t\t\t\t\temailVerified: true,\n\t\t\t\t\torganizationId: existing?.organizationId,\n\t\t\t\t\tpasswordHash: await hashPassword(password),\n\t\t\t\t\tstatus: existing?.status ?? 'active',\n\t\t\t\t\tupdatedAt: now,\n\t\t\t\t\tuserId: existing?.userId\n\t\t\t\t});\n\t\t\t\t// Consumers should revoke the user's other sessions here — call the\n\t\t\t\t// exported `revokeUserSessions({ authSessionStore, getUserId, userId })`\n\t\t\t\t// from this hook (it scans the session store by user).\n\t\t\t\tawait onPasswordReset?.({ email: consumed.email });\n\n\t\t\t\treturn status('OK', { status: 'password_reset' });\n\t\t\t},\n\t\t\t{\n\t\t\t\tbody: t.Object({ password: t.String(), token: t.String() })\n\t\t\t}\n\t\t);\n",
21
+ "export type PasswordPolicy = {\n\tcheckBreaches?: boolean;\n\tminLength?: number;\n\trequireDigit?: boolean;\n\trequireLowercase?: boolean;\n\trequireSymbol?: boolean;\n\trequireUppercase?: boolean;\n};\n\nexport type PasswordPolicyViolation =\n\t| 'breached'\n\t| 'missing_digit'\n\t| 'missing_lowercase'\n\t| 'missing_symbol'\n\t| 'missing_uppercase'\n\t| 'too_short';\n\nexport type PasswordPolicyResult = {\n\tok: boolean;\n\tviolations: PasswordPolicyViolation[];\n};\n\nconst DEFAULT_MIN_LENGTH = 12;\nconst HEX_RADIX = 16;\nconst HIBP_PREFIX_LENGTH = 5;\nconst HIBP_RANGE_URL = 'https://api.pwnedpasswords.com/range/';\n\nconst sha1Hex = async (input: string) => {\n\tconst digest = await crypto.subtle.digest(\n\t\t'SHA-1',\n\t\tnew TextEncoder().encode(input)\n\t);\n\n\treturn [...new Uint8Array(digest)]\n\t\t.map((byte) => byte.toString(HEX_RADIX).padStart(2, '0'))\n\t\t.join('')\n\t\t.toUpperCase();\n};\n\n// HaveIBeenPwned k-anonymity: only the first 5 hash chars leave the process, never\n// the password. Fails open (returns false) so a HIBP outage never blocks sign-up.\nconst isPasswordBreached = async (password: string) => {\n\ttry {\n\t\tconst hash = await sha1Hex(password);\n\t\tconst prefix = hash.slice(0, HIBP_PREFIX_LENGTH);\n\t\tconst suffix = hash.slice(HIBP_PREFIX_LENGTH);\n\t\tconst response = await fetch(`${HIBP_RANGE_URL}${prefix}`);\n\t\tif (!response.ok) return false;\n\n\t\tconst body = await response.text();\n\n\t\treturn body\n\t\t\t.split('\\n')\n\t\t\t.some((line) => line.split(':')[0]?.trim() === suffix);\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport const evaluatePassword = async (\n\tpassword: string,\n\tpolicy: PasswordPolicy = {}\n): Promise<PasswordPolicyResult> => {\n\tconst minLength = policy.minLength ?? DEFAULT_MIN_LENGTH;\n\tconst violations: PasswordPolicyViolation[] = [];\n\n\tif (password.length < minLength) {\n\t\tviolations.push('too_short');\n\t}\n\tif (policy.requireUppercase && !/[A-Z]/u.test(password)) {\n\t\tviolations.push('missing_uppercase');\n\t}\n\tif (policy.requireLowercase && !/[a-z]/u.test(password)) {\n\t\tviolations.push('missing_lowercase');\n\t}\n\tif (policy.requireDigit && !/\\d/u.test(password)) {\n\t\tviolations.push('missing_digit');\n\t}\n\tif (policy.requireSymbol && !/[^A-Za-z0-9]/u.test(password)) {\n\t\tviolations.push('missing_symbol');\n\t}\n\tif (policy.checkBreaches && (await isPasswordBreached(password))) {\n\t\tviolations.push('breached');\n\t}\n\n\treturn { ok: violations.length === 0, violations };\n};\n",
22
+ "import { Elysia, t } from 'elysia';\nimport { generateSecureToken, hashPassword, hashToken } from '../crypto';\nimport { sessionStore } from '../session/state';\nimport { isStatusResponse } from '../typeGuards';\nimport { userSessionIdTypebox } from '../typebox';\nimport {\n\ttype CredentialRouteProps,\n\tDEFAULT_CREDENTIAL_SESSION_TTL_MS,\n\tDEFAULT_VERIFICATION_TOKEN_TTL_MS\n} from './config';\nimport { promoteToSession } from '../session/promote';\nimport { evaluatePassword } from './passwordPolicy';\n\nexport const credentialsRegister = <UserType>({\n\tauthSessionStore,\n\tcredentialStore,\n\tonCreateCredentialUser,\n\tonCredentialsLoginSuccess,\n\tonRegistrationSuccess,\n\tonSendEmail,\n\tpasswordPolicy,\n\tregisterRoute = '/auth/register',\n\trequireEmailVerification = false,\n\tsessionDurationMs = DEFAULT_CREDENTIAL_SESSION_TTL_MS,\n\tverificationTokenDurationMs = DEFAULT_VERIFICATION_TOKEN_TTL_MS\n}: CredentialRouteProps<UserType>) =>\n\tnew Elysia().use(sessionStore<UserType>()).post(\n\t\tregisterRoute,\n\t\tasync ({\n\t\t\tbody: { email, password },\n\t\t\tcookie: { user_session_id },\n\t\t\tstatus,\n\t\t\tstore: { session }\n\t\t}) => {\n\t\t\tconst normalizedEmail = email.trim().toLowerCase();\n\t\t\tif (!normalizedEmail.includes('@')) {\n\t\t\t\treturn status('Bad Request', 'A valid email is required');\n\t\t\t}\n\n\t\t\tconst policy = await evaluatePassword(password, passwordPolicy);\n\t\t\tif (!policy.ok) {\n\t\t\t\treturn status('Bad Request', {\n\t\t\t\t\tmessage: 'Password does not meet the policy',\n\t\t\t\t\tviolations: policy.violations\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst existing =\n\t\t\t\tawait credentialStore.getCredentialByEmail(normalizedEmail);\n\t\t\tif (existing) {\n\t\t\t\treturn status('Conflict', 'Email is already registered');\n\t\t\t}\n\n\t\t\tconst created = await onCreateCredentialUser({\n\t\t\t\temail: normalizedEmail\n\t\t\t});\n\t\t\tif (created instanceof Response || isStatusResponse(created)) {\n\t\t\t\treturn created;\n\t\t\t}\n\n\t\t\tconst now = Date.now();\n\t\t\tawait credentialStore.saveCredential({\n\t\t\t\tcreatedAt: now,\n\t\t\t\temail: normalizedEmail,\n\t\t\t\temailVerified: false,\n\t\t\t\tpasswordHash: await hashPassword(password),\n\t\t\t\tstatus: 'active',\n\t\t\t\tupdatedAt: now\n\t\t\t});\n\n\t\t\tconst token = generateSecureToken();\n\t\t\tconst expiresAt = now + verificationTokenDurationMs;\n\t\t\tawait credentialStore.saveVerificationToken({\n\t\t\t\temail: normalizedEmail,\n\t\t\t\texpiresAt,\n\t\t\t\ttokenHash: await hashToken(token)\n\t\t\t});\n\t\t\tawait onSendEmail({\n\t\t\t\temail: normalizedEmail,\n\t\t\t\texpiresAt,\n\t\t\t\ttoken,\n\t\t\t\ttype: 'verify_email'\n\t\t\t});\n\t\t\tawait onRegistrationSuccess?.({\n\t\t\t\temail: normalizedEmail,\n\t\t\t\tuser: created\n\t\t\t});\n\n\t\t\tif (requireEmailVerification) {\n\t\t\t\treturn status('Created', { status: 'verification_required' });\n\t\t\t}\n\n\t\t\t// Auto-login. A freshly registered user has no enrolled factors yet, so the\n\t\t\t// MFA seam (enforced on subsequent logins) does not apply here.\n\t\t\tconst userSessionId = await promoteToSession({\n\t\t\t\tauthSessionStore,\n\t\t\t\tcookie: user_session_id,\n\t\t\t\tinMemorySession: session,\n\t\t\t\tsessionDurationMs,\n\t\t\t\tuser: created\n\t\t\t});\n\t\t\tawait onCredentialsLoginSuccess?.({ user: created, userSessionId });\n\n\t\t\treturn status('Created', { status: 'authenticated' });\n\t\t},\n\t\t{\n\t\t\tbody: t.Object({ email: t.String(), password: t.String() }),\n\t\t\tcookie: t.Cookie({ user_session_id: userSessionIdTypebox })\n\t\t}\n\t);\n",
23
+ "import { isValidProviderOption } from 'citra';\nimport { Elysia } from 'elysia';\nimport { protectRoutePlugin } from '../routes/protectRoute';\nimport type { AuthSessionStore } from '../session/types';\nimport { isUserSessionId } from '../typeGuards';\nimport { resolveAuthHtmxRenderers } from './renderers';\nimport type { AuthHtmxConfig, AuthHtmxUser } from './types';\n\nconst SEE_OTHER = 303;\n\nconst html = (markup: string) =>\n\tnew Response(markup, {\n\t\theaders: { 'content-type': 'text/html; charset=utf-8' }\n\t});\n\nconst signInPrompt = `<section class=\"auth-content\"><h1 class=\"page-heading\">Not authorized</h1><p class=\"muted\">You need to sign in to view this page.</p><a class=\"btn btn--primary\" href=\"/htmx\">Go to sign in</a></section>`;\n\n/* The HTMX fragment routes mounted by `auth`'s `htmx` option. They use\n * the package's fragment renderers and gate every data route behind\n * `protectRoute`; the identity/connector data operations are supplied via the\n * config so the auth package stays agnostic of your storage schema. */\nexport const createAuthHtmxRoutes = <UserType extends AuthHtmxUser>(\n\tconfig: AuthHtmxConfig & {\n\t\tauthSessionStore?: AuthSessionStore<UserType>;\n\t}\n) => {\n\tconst renderers = resolveAuthHtmxRenderers(config);\n\tconst authorizationHref =\n\t\tconfig.authorizationHref ??\n\t\t((provider: string) => `/oauth2/${provider}/authorization`);\n\n\treturn new Elysia()\n\t\t.use(\n\t\t\tprotectRoutePlugin<UserType>({\n\t\t\t\tauthSessionStore: config.authSessionStore\n\t\t\t})\n\t\t)\n\t\t.get('/htmx/login', () =>\n\t\t\thtml(renderers.providerLogin('Sign in with', true))\n\t\t)\n\t\t.get('/htmx/link', () => html(renderers.providerLogin('Link', false)))\n\t\t.get('/htmx/connector-links', () => html(renderers.connectorLinks()))\n\t\t.get('/htmx/auth-menu', ({ protectRoute }) =>\n\t\t\tprotectRoute(\n\t\t\t\t(user) => html(renderers.authMenu(user)),\n\t\t\t\t() => html(renderers.authMenu(null))\n\t\t\t)\n\t\t)\n\t\t.get('/htmx/me', ({ protectRoute }) =>\n\t\t\tprotectRoute(\n\t\t\t\t(user) => html(renderers.protected(user)),\n\t\t\t\t() => html(signInPrompt)\n\t\t\t)\n\t\t)\n\t\t.get('/htmx/account', ({ protectRoute }) =>\n\t\t\tprotectRoute(\n\t\t\t\t(user) => html(renderers.account(user)),\n\t\t\t\t() => html(signInPrompt)\n\t\t\t)\n\t\t)\n\t\t.get('/htmx/identities', ({ protectRoute, query }) =>\n\t\t\tprotectRoute(async (user) => {\n\t\t\t\tconst search =\n\t\t\t\t\ttypeof query.query === 'string' ? query.query : '';\n\n\t\t\t\treturn html(\n\t\t\t\t\trenderers.identities(\n\t\t\t\t\t\tawait config.loadAuthIdentities(user.sub),\n\t\t\t\t\t\tsearch\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})\n\t\t)\n\t\t.post('/htmx/identities/:id/primary', ({ params, protectRoute }) =>\n\t\t\tprotectRoute(async (user) => {\n\t\t\t\ttry {\n\t\t\t\t\tawait config.setPrimaryIdentity({\n\t\t\t\t\t\tidentityId: params.id,\n\t\t\t\t\t\tuserSub: user.sub\n\t\t\t\t\t});\n\t\t\t\t} catch {\n\t\t\t\t\t// ignore — re-render reflects current state\n\t\t\t\t}\n\n\t\t\t\treturn html(\n\t\t\t\t\trenderers.identities(\n\t\t\t\t\t\tawait config.loadAuthIdentities(user.sub),\n\t\t\t\t\t\t''\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})\n\t\t)\n\t\t.delete('/htmx/identities/:id', ({ params, protectRoute }) =>\n\t\t\tprotectRoute(async (user) => {\n\t\t\t\tconst payload = await config.loadAuthIdentities(user.sub);\n\t\t\t\tconst identities = Object.values(payload.identities).flat();\n\t\t\t\tconst identity = identities.find(\n\t\t\t\t\t(candidate) => candidate.id === params.id\n\t\t\t\t);\n\t\t\t\tif (\n\t\t\t\t\tidentity &&\n\t\t\t\t\tidentities.length > 1 &&\n\t\t\t\t\tidentity.isPrimary !== true\n\t\t\t\t) {\n\t\t\t\t\tawait config.removeIdentity({\n\t\t\t\t\t\tidentityId: identity.id,\n\t\t\t\t\t\tuserSub: user.sub\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn html(\n\t\t\t\t\trenderers.identities(\n\t\t\t\t\t\tawait config.loadAuthIdentities(user.sub),\n\t\t\t\t\t\t''\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})\n\t\t)\n\t\t.post('/htmx/merge/:id', ({ params, protectRoute }) =>\n\t\t\tprotectRoute(async (user) => {\n\t\t\t\ttry {\n\t\t\t\t\tawait config.mergeIdentity({\n\t\t\t\t\t\tmergeRequestId: params.id,\n\t\t\t\t\t\tuserSub: user.sub\n\t\t\t\t\t});\n\t\t\t\t} catch {\n\t\t\t\t\t// ignore — re-render reflects current state\n\t\t\t\t}\n\n\t\t\t\treturn html(\n\t\t\t\t\trenderers.identities(\n\t\t\t\t\t\tawait config.loadAuthIdentities(user.sub),\n\t\t\t\t\t\t''\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})\n\t\t)\n\t\t.delete('/htmx/merge/:id', ({ params, protectRoute }) =>\n\t\t\tprotectRoute(async (user) => {\n\t\t\t\tawait config.dismissMergeRequest({\n\t\t\t\t\tmergeRequestId: params.id,\n\t\t\t\t\tuserSub: user.sub\n\t\t\t\t});\n\n\t\t\t\treturn html(\n\t\t\t\t\trenderers.identities(\n\t\t\t\t\t\tawait config.loadAuthIdentities(user.sub),\n\t\t\t\t\t\t''\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})\n\t\t)\n\t\t.get('/htmx/connector-list', ({ protectRoute }) =>\n\t\t\tprotectRoute(\n\t\t\t\tasync (user) =>\n\t\t\t\t\thtml(\n\t\t\t\t\t\trenderers.connectors(\n\t\t\t\t\t\t\tawait config.loadLinkedProviders(user.sub)\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t() => html(signInPrompt)\n\t\t\t)\n\t\t)\n\t\t.delete('/htmx/connectors/grants/:id', ({ params, protectRoute }) =>\n\t\t\tprotectRoute(async (user) => {\n\t\t\t\tawait config.removeGrant({\n\t\t\t\t\tgrantId: params.id,\n\t\t\t\t\tuserSub: user.sub\n\t\t\t\t});\n\n\t\t\t\treturn html(\n\t\t\t\t\trenderers.connectors(\n\t\t\t\t\t\tawait config.loadLinkedProviders(user.sub)\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})\n\t\t)\n\t\t.delete('/htmx/connectors/bindings/:id', ({ params, protectRoute }) =>\n\t\t\tprotectRoute(async (user) => {\n\t\t\t\tawait config.removeBinding({\n\t\t\t\t\tbindingId: params.id,\n\t\t\t\t\tuserSub: user.sub\n\t\t\t\t});\n\n\t\t\t\treturn html(\n\t\t\t\t\trenderers.connectors(\n\t\t\t\t\t\tawait config.loadLinkedProviders(user.sub)\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})\n\t\t)\n\t\t.get('/htmx/login-redirect', ({ query, redirect }) => {\n\t\t\tconst provider =\n\t\t\t\ttypeof query.provider === 'string' ? query.provider : '';\n\n\t\t\treturn redirect(\n\t\t\t\tisValidProviderOption(provider)\n\t\t\t\t\t? authorizationHref(provider)\n\t\t\t\t\t: '/htmx'\n\t\t\t);\n\t\t})\n\t\t.post('/htmx/delete-account', (context) =>\n\t\t\tcontext.protectRoute(async (user) => {\n\t\t\t\tconst confirm =\n\t\t\t\t\ttypeof context.body === 'object' &&\n\t\t\t\t\tcontext.body !== null &&\n\t\t\t\t\t'confirm' in context.body\n\t\t\t\t\t\t? String(context.body.confirm)\n\t\t\t\t\t\t: '';\n\t\t\t\tif (confirm !== 'DELETE') {\n\t\t\t\t\treturn html(\n\t\t\t\t\t\t`<div class=\"error-banner\">Type DELETE to confirm.</div>`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tawait config.deleteAccount({ userSub: user.sub });\n\t\t\t\tcontext.set.headers['HX-Redirect'] = '/htmx';\n\n\t\t\t\treturn html('');\n\t\t\t})\n\t\t)\n\t\t.get(\n\t\t\t'/htmx/signout',\n\t\t\tasync ({ cookie: { user_session_id }, redirect }) => {\n\t\t\t\tconst sessionId = user_session_id.value;\n\t\t\t\tif (sessionId !== undefined && isUserSessionId(sessionId)) {\n\t\t\t\t\tawait config.authSessionStore?.removeSession(sessionId);\n\t\t\t\t}\n\t\t\t\tuser_session_id.remove();\n\n\t\t\t\treturn redirect('/htmx', SEE_OTHER);\n\t\t\t}\n\t\t);\n};\n",
24
+ "import { Elysia, t } from 'elysia';\nimport { getStatusFromSource } from '../session/access';\nimport { sessionStore } from '../session/state';\nimport type { AuthSessionStore } from '../session/types';\nimport { userSessionIdTypebox } from '../typebox';\n\ntype AuthFailError =\n\t| {\n\t\t\treadonly code: 'Bad Request';\n\t\t\treadonly message: 'Cookies are missing';\n\t }\n\t| {\n\t\t\treadonly code: 'Unauthorized';\n\t\t\treadonly message: 'User is not authenticated';\n\t };\n\nexport const protectRoutePlugin = <UserType>({\n\tauthSessionStore\n}: {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n} = {}) =>\n\tnew Elysia()\n\t\t.use(sessionStore<UserType>())\n\t\t.guard({ cookie: t.Cookie({ user_session_id: userSessionIdTypebox }) })\n\t\t.derive(\n\t\t\t({ store: { session }, cookie: { user_session_id }, status }) => ({\n\t\t\t\tprotectRoute: <AuthReturn, AuthFailReturn>(\n\t\t\t\t\thandleAuth: (\n\t\t\t\t\t\tuser: UserType\n\t\t\t\t\t) => AuthReturn | Promise<AuthReturn>,\n\t\t\t\t\thandleAuthFail?: (error: AuthFailError) => AuthFailReturn\n\t\t\t\t) =>\n\t\t\t\t\tgetStatusFromSource<UserType>({\n\t\t\t\t\t\tauthSessionStore,\n\t\t\t\t\t\tsession,\n\t\t\t\t\t\tuser_session_id\n\t\t\t\t\t}).then(async ({ user, error }) => {\n\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\thandleAuthFail?.(error) ??\n\t\t\t\t\t\t\t\tstatus(error.code, error.message)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!user) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\thandleAuthFail?.({\n\t\t\t\t\t\t\t\t\tcode: 'Unauthorized',\n\t\t\t\t\t\t\t\t\tmessage: 'User is not authenticated'\n\t\t\t\t\t\t\t\t}) ??\n\t\t\t\t\t\t\t\tstatus(\n\t\t\t\t\t\t\t\t\t'Unauthorized',\n\t\t\t\t\t\t\t\t\t'User is not authenticated'\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn handleAuth(user);\n\t\t\t\t\t})\n\t\t\t})\n\t\t)\n\t\t.as('global');\n",
18
25
  "import { isValidProviderOption, providerOptions } from 'citra';\nimport type {\n\tAuthHtmxClient,\n\tAuthHtmxRenderersConfig,\n\tAuthHtmxUser,\n\tAuthIdentityPayload,\n\tLinkedProviderPayload,\n\tResolvedAuthHtmxRenderers\n} from './types';\n\nexport const escapeHtml = (value: string) =>\n\tvalue\n\t\t.replaceAll('&', '&amp;')\n\t\t.replaceAll('<', '&lt;')\n\t\t.replaceAll('>', '&gt;')\n\t\t.replaceAll('\"', '&quot;');\n\nconst defaultAuthorizationHref = (provider: string, client?: AuthHtmxClient) =>\n\tclient\n\t\t? `/oauth2/${provider}/authorization?client=${client}`\n\t\t: `/oauth2/${provider}/authorization`;\n\n/** Resolve the Absolute Auth HTMX fragment renderers. Every fragment has a\n * package default that emits the Absolute Auth class contract; pass `render`\n * to override any of them. Provider display data, the featured login\n * providers, the connector targets and the authorization-URL builder are\n * supplied here so the fragments stay app-agnostic. */\nexport const resolveAuthHtmxRenderers = (\n\tconfig: AuthHtmxRenderersConfig\n): ResolvedAuthHtmxRenderers => {\n\tconst { connectorTargets, featuredLoginProviders, providerData } = config;\n\tconst authorizationHref =\n\t\tconfig.authorizationHref ?? defaultAuthorizationHref;\n\tconst overrides = config.render ?? {};\n\n\tconst providerLabel = (key: string) =>\n\t\tisValidProviderOption(key) ? (providerData[key]?.name ?? key) : key;\n\tconst providerLogo = (key: string) =>\n\t\tisValidProviderOption(key) ? (providerData[key]?.logoUrl ?? '') : '';\n\n\tconst account = (user: AuthHtmxUser) => {\n\t\tconst fullName = [user.first_name, user.last_name]\n\t\t\t.filter((part) => typeof part === 'string' && part.length > 0)\n\t\t\t.join(' ');\n\n\t\treturn `<div class=\"grid-2\">\n <div class=\"card\"><h2 class=\"card__title\">Canonical account</h2><p class=\"muted\">Absolute Auth keeps one canonical user and links every OAuth identity to it. Conflicting identities raise a merge request.</p></div>\n <div class=\"card text-left\"><h2 class=\"card__title\">Profile fields</h2>\n <div class=\"spread\"><span class=\"muted\">Subject</span><span>${escapeHtml(user.sub)}</span></div>\n <div class=\"spread\"><span class=\"muted\">Name</span><span>${escapeHtml(fullName || '—')}</span></div>\n <div class=\"spread\"><span class=\"muted\">Email</span><span>${escapeHtml(user.email ?? '—')}</span></div>\n <div class=\"spread\"><span class=\"muted\">Primary identity</span><span>${escapeHtml(user.primary_auth_identity_id ?? '—')}</span></div>\n </div>\n </div>`;\n\t};\n\n\tconst authMenu = (user: AuthHtmxUser | null) => {\n\t\tif (!user) {\n\t\t\treturn `<a class=\"btn btn--primary btn--sm\" href=\"/htmx\">Sign in</a>`;\n\t\t}\n\t\tconst label = user.email ?? user.first_name ?? 'Account';\n\n\t\treturn `<span class=\"muted\">${escapeHtml(label)}</span><a class=\"btn btn--ghost btn--sm\" href=\"/htmx/signout\">Sign out</a>`;\n\t};\n\n\tconst connectorLinks = () =>\n\t\tconnectorTargets\n\t\t\t.map(\n\t\t\t\t(target) =>\n\t\t\t\t\t`<div class=\"card text-left\"><h2 class=\"card__title row\"><img class=\"entity__logo\" alt=\"\" src=\"${providerLogo(target.provider)}\" />${escapeHtml(target.label)}</h2><p class=\"muted\">${escapeHtml(target.description)}</p><a class=\"btn btn--primary\" href=\"${authorizationHref(target.provider, 'connector')}\">Link ${escapeHtml(target.label)}</a></div>`\n\t\t\t)\n\t\t\t.join('');\n\n\tconst connectors = (payload: LinkedProviderPayload) => {\n\t\tconst scopeList = (scopes: string[]) =>\n\t\t\tscopes\n\t\t\t\t.map(\n\t\t\t\t\t(scope) => `<span class=\"scope\">${escapeHtml(scope)}</span>`\n\t\t\t\t)\n\t\t\t\t.join('');\n\n\t\tconst bindings =\n\t\t\tpayload.bindings.length === 0\n\t\t\t\t? `<div class=\"empty-state\">No external accounts linked.</div>`\n\t\t\t\t: `<div class=\"entity-list\">${payload.bindings\n\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t(binding) =>\n\t\t\t\t\t\t\t\t`<div class=\"entity\"><div class=\"entity__meta\"><span class=\"entity__title\">${escapeHtml(binding.label ?? binding.externalAccountId)}<span class=\"pill\">${escapeHtml(binding.connectorProvider)}</span></span><span class=\"entity__sub\">${escapeHtml(binding.externalAccountType)} · ${escapeHtml(binding.status)}</span><div class=\"scope-list\">${scopeList(binding.availableScopes)}</div></div><div class=\"entity__actions\"><form hx-delete=\"/htmx/connectors/bindings/${binding.id}\" hx-target=\"#connector-list\" hx-swap=\"innerHTML\"><button class=\"btn btn--danger btn--sm\" type=\"submit\">Remove</button></form></div></div>`\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join('')}</div>`;\n\n\t\tconst grants =\n\t\t\tpayload.grants.length === 0\n\t\t\t\t? `<div class=\"empty-state\">No connector grants yet.</div>`\n\t\t\t\t: `<div class=\"entity-list\">${payload.grants\n\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t(grant) =>\n\t\t\t\t\t\t\t\t`<div class=\"entity\"><div class=\"entity__meta\"><span class=\"entity__title\">${escapeHtml(grant.authProviderKey)}<span class=\"pill pill--indigo\">${escapeHtml(grant.status)}</span></span><span class=\"entity__sub\">Subject ${escapeHtml(grant.providerSubject)}</span><div class=\"scope-list\">${scopeList(grant.grantedScopes)}</div></div><div class=\"entity__actions\"><form hx-delete=\"/htmx/connectors/grants/${grant.id}\" hx-target=\"#connector-list\" hx-swap=\"innerHTML\"><button class=\"btn btn--danger btn--sm\" type=\"submit\">Remove</button></form></div></div>`\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join('')}</div>`;\n\n\t\treturn `<h3 class=\"provider-heading\">External accounts</h3>${bindings}<h3 class=\"provider-heading\">Grants</h3>${grants}`;\n\t};\n\n\tconst identities = (payload: AuthIdentityPayload, query: string) => {\n\t\tconst pending = payload.mergeRequests.filter(\n\t\t\t(req) => req.status === 'pending'\n\t\t);\n\t\tconst mergesHtml =\n\t\t\tpending.length === 0\n\t\t\t\t? ''\n\t\t\t\t: `<div class=\"stack\"><h3 class=\"provider-heading\">Merge requests</h3><div class=\"entity-list\">${pending\n\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t(req) =>\n\t\t\t\t\t\t\t\t`<div class=\"entity card--danger\"><div class=\"entity__meta\"><span class=\"entity__title\">${escapeHtml(providerLabel(req.conflicting_auth_provider))} conflict</span><span class=\"entity__sub\">Subject ${escapeHtml(req.conflicting_provider_subject)}</span></div><div class=\"entity__actions\">\n <form hx-post=\"/htmx/merge/${req.id}\" hx-target=\"#identities-list\" hx-swap=\"innerHTML\" hx-include=\"#identity-query\"><button class=\"btn btn--primary btn--sm\" type=\"submit\">Merge</button></form>\n <form hx-delete=\"/htmx/merge/${req.id}\" hx-target=\"#identities-list\" hx-swap=\"innerHTML\" hx-include=\"#identity-query\"><button class=\"btn btn--ghost btn--sm\" type=\"submit\">Dismiss</button></form>\n </div></div>`\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join('')}</div></div>`;\n\n\t\tconst term = query.trim().toLowerCase();\n\t\tconst groups = Object.entries(payload.identities)\n\t\t\t.map(([provider, list]) => ({\n\t\t\t\tidentities: list.filter(\n\t\t\t\t\t(identity) =>\n\t\t\t\t\t\tterm === '' ||\n\t\t\t\t\t\tproviderLabel(provider).toLowerCase().includes(term) ||\n\t\t\t\t\t\tidentity.id.toLowerCase().includes(term) ||\n\t\t\t\t\t\tidentity.provider_subject.toLowerCase().includes(term)\n\t\t\t\t),\n\t\t\t\tprovider\n\t\t\t}))\n\t\t\t.filter((group) => group.identities.length > 0);\n\n\t\tconst groupsHtml =\n\t\t\tgroups.length === 0\n\t\t\t\t? `<div class=\"empty-state\">No identities match your search.</div>`\n\t\t\t\t: groups\n\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t(group) =>\n\t\t\t\t\t\t\t\t`<div class=\"provider-group\"><h3 class=\"provider-heading\">${\n\t\t\t\t\t\t\t\t\tproviderLogo(group.provider)\n\t\t\t\t\t\t\t\t\t\t? `<img class=\"entity__logo\" alt=\"\" src=\"${providerLogo(group.provider)}\" />`\n\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t}${escapeHtml(providerLabel(group.provider))}</h3><div class=\"entity-list\">${group.identities\n\t\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t\t(identity) =>\n\t\t\t\t\t\t\t\t\t\t\t`<div class=\"entity\"><div class=\"entity__main\"><div class=\"entity__meta\"><span class=\"entity__title\">${escapeHtml(identity.provider_subject)}${identity.isPrimary ? `<span class=\"pill pill--primary\">Primary</span>` : ''}</span><span class=\"entity__sub\">${escapeHtml(identity.id)}</span></div></div><div class=\"entity__actions\">\n ${identity.isPrimary ? '' : `<form hx-post=\"/htmx/identities/${identity.id}/primary\" hx-target=\"#identities-list\" hx-swap=\"innerHTML\" hx-include=\"#identity-query\"><button class=\"btn btn--neutral btn--sm\" type=\"submit\">Set primary</button></form>`}\n <form hx-delete=\"/htmx/identities/${identity.id}\" hx-target=\"#identities-list\" hx-swap=\"innerHTML\" hx-include=\"#identity-query\"><button class=\"btn btn--danger btn--sm\" type=\"submit\">Remove</button></form>\n </div></div>`\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.join('')}</div></div>`\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join('');\n\n\t\treturn `${mergesHtml}${groupsHtml}`;\n\t};\n\n\tconst protectedView = (user: AuthHtmxUser) =>\n\t\t`<section class=\"auth-section stack\"><div><h1 class=\"page-heading\">Protected page</h1><p class=\"muted\">Your authenticated session resolves to this user record.</p></div><pre class=\"json\">${escapeHtml(JSON.stringify(user, null, 2))}</pre></section>`;\n\n\tconst providerLogin = (verb: string, includeDropdown: boolean) => {\n\t\tconst featured = featuredLoginProviders\n\t\t\t.map(\n\t\t\t\t(provider) =>\n\t\t\t\t\t`<a class=\"oauth-button\" href=\"${authorizationHref(provider)}\"><img class=\"oauth-button__icon\" alt=\"\" src=\"${providerLogo(provider)}\" /><span class=\"oauth-button__text\">${escapeHtml(verb)} ${escapeHtml(providerLabel(provider))}</span></a>`\n\t\t\t)\n\t\t\t.join('');\n\n\t\tif (!includeDropdown) {\n\t\t\treturn `<div class=\"oauth-grid\">${featured}</div>`;\n\t\t}\n\n\t\tconst options = providerOptions\n\t\t\t.map(\n\t\t\t\t(provider) =>\n\t\t\t\t\t`<option value=\"${provider}\">${escapeHtml(providerLabel(provider))}</option>`\n\t\t\t)\n\t\t\t.join('');\n\n\t\treturn `<div class=\"oauth-grid\">${featured}\n <div class=\"separator\"><span class=\"separator__line\"></span><span class=\"separator__text\">or any provider</span><span class=\"separator__line\"></span></div>\n <form class=\"oauth-grid\" action=\"/htmx/login-redirect\" method=\"get\">\n <select class=\"provider-select\" name=\"provider\" required>\n <option value=\"\">Select a provider…</option>${options}\n </select>\n <button class=\"btn btn--primary\" type=\"submit\">Continue</button>\n </form>\n </div>`;\n\t};\n\n\treturn {\n\t\taccount: overrides.account ?? account,\n\t\tauthMenu: overrides.authMenu ?? authMenu,\n\t\tconnectorLinks: overrides.connectorLinks ?? connectorLinks,\n\t\tconnectors: overrides.connectors ?? connectors,\n\t\tescapeHtml,\n\t\tidentities: overrides.identities ?? identities,\n\t\tprotected: overrides.protected ?? protectedView,\n\t\tproviderLogin: overrides.providerLogin ?? providerLogin\n\t};\n};\n",
19
- "import { isValidProviderOption } from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { resolveClientProviderEntry } from './providerClients';\nimport { sessionStore } from './sessionStore';\nimport {\n\tauthClientOption,\n\tauthProviderOption,\n\tuserSessionIdTypebox\n} from './typebox';\nimport {\n\tClientProviders,\n\tOnProfileError,\n\tOnProfileSuccess,\n\tRouteString\n} from './types';\n\ntype ProfileProps = {\n\tclientProviders: ClientProviders;\n\tprofileRoute?: RouteString;\n\tonProfileSuccess: OnProfileSuccess;\n\tonProfileError: OnProfileError;\n};\n\nexport const profile = <UserType>({\n\tclientProviders,\n\tprofileRoute = '/oauth2/profile',\n\tonProfileSuccess,\n\tonProfileError\n}: ProfileProps) =>\n\tnew Elysia().use(sessionStore<UserType>()).get(\n\t\tprofileRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tstore: { session },\n\t\t\tcookie: { user_session_id, auth_provider, auth_client }\n\t\t}) => {\n\t\t\tif (\n\t\t\t\tauth_provider === undefined ||\n\t\t\t\tauth_client === undefined ||\n\t\t\t\tuser_session_id === undefined\n\t\t\t)\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\n\t\t\tif (auth_provider.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No auth provider found');\n\t\t\t}\n\n\t\t\tif (!isValidProviderOption(auth_provider.value)) {\n\t\t\t\treturn status('Unauthorized', 'Invalid provider');\n\t\t\t}\n\n\t\t\tif (user_session_id.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst resolvedProvider = resolveClientProviderEntry({\n\t\t\t\tclientName: auth_client.value || undefined,\n\t\t\t\tclientProviders,\n\t\t\t\tproviderName: auth_provider.value\n\t\t\t});\n\t\t\tif ('error' in resolvedProvider) {\n\t\t\t\treturn status('Unauthorized', resolvedProvider.error);\n\t\t\t}\n\t\t\tconst { clientName, providerInstance } = resolvedProvider.entry;\n\n\t\t\tconst userSession = session[user_session_id.value];\n\n\t\t\tif (userSession === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst { accessToken } = userSession;\n\n\t\t\ttry {\n\t\t\t\tconst userProfile =\n\t\t\t\t\tawait providerInstance.fetchUserProfile(accessToken);\n\n\t\t\t\tawait onProfileSuccess?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\tuserProfile\n\t\t\t\t});\n\n\t\t\t\treturn new Response(JSON.stringify(userProfile));\n\t\t\t} catch (err) {\n\t\t\t\tawait onProfileError?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err\n\t\t\t\t});\n\n\t\t\t\treturn err instanceof Error\n\t\t\t\t\t? status(\n\t\t\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t\t\t`${err.message} - ${err.stack ?? ''}`\n\t\t\t\t\t\t)\n\t\t\t\t\t: status(\n\t\t\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t\t\t`Failed to validate authorization code: Unknown status: ${err}`\n\t\t\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_client: authClientOption,\n\t\t\t\tauth_provider: authProviderOption,\n\t\t\t\tuser_session_id: userSessionIdTypebox\n\t\t\t})\n\t\t}\n\t);\n",
20
- "import { isRefreshableOAuth2Client, isValidProviderOption } from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { MILLISECONDS_IN_A_DAY } from './constants';\nimport { resolveClientProviderEntry } from './providerClients';\nimport { loadSessionFromSource } from './sessionAccess';\nimport { sessionStore } from './sessionStore';\nimport type { AuthSessionStore } from './sessionTypes';\nimport {\n\tauthClientOption,\n\tauthProviderOption,\n\tuserSessionIdTypebox\n} from './typebox';\nimport {\n\tClientProviders,\n\tOnRefreshError,\n\tOnRefreshSuccess,\n\tRouteString\n} from './types';\n\ntype RefreshProps<UserType> = {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tclientProviders: ClientProviders;\n\trefreshRoute?: RouteString;\n\tonRefreshSuccess: OnRefreshSuccess;\n\tonRefreshError: OnRefreshError;\n\tsessionDurationMs?: number;\n};\n\nexport const refresh = <UserType>({\n\tauthSessionStore,\n\tclientProviders,\n\trefreshRoute = '/oauth2/tokens',\n\tonRefreshSuccess,\n\tonRefreshError,\n\tsessionDurationMs = MILLISECONDS_IN_A_DAY\n}: RefreshProps<UserType>) =>\n\tnew Elysia().use(sessionStore<UserType>()).post(\n\t\trefreshRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tstore: { session },\n\t\t\tcookie: { user_session_id, auth_provider, auth_client }\n\t\t}) => {\n\t\t\tif (\n\t\t\t\tauth_provider === undefined ||\n\t\t\t\tauth_client === undefined ||\n\t\t\t\tuser_session_id === undefined\n\t\t\t)\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\n\t\t\tif (auth_provider.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No auth provider found');\n\t\t\t}\n\n\t\t\tif (!isValidProviderOption(auth_provider.value)) {\n\t\t\t\treturn status('Bad Request', 'Invalid provider');\n\t\t\t}\n\n\t\t\tif (user_session_id.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst resolvedProvider = resolveClientProviderEntry({\n\t\t\t\tclientName: auth_client.value || undefined,\n\t\t\t\tclientProviders,\n\t\t\t\tproviderName: auth_provider.value\n\t\t\t});\n\t\t\tif ('error' in resolvedProvider) {\n\t\t\t\treturn status('Unauthorized', resolvedProvider.error);\n\t\t\t}\n\t\t\tconst { clientName, providerInstance } = resolvedProvider.entry;\n\n\t\t\tconst userSession = await loadSessionFromSource({\n\t\t\t\tauthSessionStore,\n\t\t\t\tsession,\n\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t});\n\n\t\t\tif (userSession === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst { refreshToken } = userSession;\n\n\t\t\tif (\n\t\t\t\t!isRefreshableOAuth2Client(\n\t\t\t\t\tauth_provider.value,\n\t\t\t\t\tproviderInstance\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn status('Not Implemented', 'Provider is not refreshable');\n\t\t\t}\n\n\t\t\tif (refreshToken === undefined) {\n\t\t\t\treturn status('Bad Request', 'No refresh token found');\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst tokenResponse =\n\t\t\t\t\tawait providerInstance.refreshAccessToken(refreshToken);\n\n\t\t\t\tuserSession.accessToken = tokenResponse.access_token;\n\t\t\t\tuserSession.expiresAt = Date.now() + sessionDurationMs;\n\t\t\t\tuserSession.refreshToken =\n\t\t\t\t\ttokenResponse.refresh_token ?? userSession.refreshToken;\n\n\t\t\t\tif (authSessionStore) {\n\t\t\t\t\tawait authSessionStore.setSession(\n\t\t\t\t\t\tuser_session_id.value,\n\t\t\t\t\t\tuserSession\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tawait onRefreshSuccess?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\ttokenResponse\n\t\t\t\t});\n\n\t\t\t\treturn new Response('Token refreshed', {\n\t\t\t\t\tstatus: 204\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error('[refresh] Failed to refresh token:', {\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t\t\t});\n\n\t\t\t\tawait onRefreshError?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err\n\t\t\t\t});\n\n\t\t\t\treturn status(\n\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t'Failed to refresh token'\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_client: authClientOption,\n\t\t\t\tauth_provider: authProviderOption,\n\t\t\t\tuser_session_id: userSessionIdTypebox\n\t\t\t})\n\t\t}\n\t);\n",
21
- "import { isRevocableOAuth2Client, isValidProviderOption } from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { resolveClientProviderEntry } from './providerClients';\nimport { loadSessionFromSource } from './sessionAccess';\nimport { sessionStore } from './sessionStore';\nimport type { AuthSessionStore } from './sessionTypes';\nimport {\n\tauthClientOption,\n\tauthProviderOption,\n\tuserSessionIdTypebox\n} from './typebox';\nimport {\n\tClientProviders,\n\tOnRevocationError,\n\tOnRevocationSuccess,\n\tRouteString\n} from './types';\n\ntype RevokeProps<UserType> = {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tclientProviders: ClientProviders;\n\trevokeRoute?: RouteString;\n\tonRevocationSuccess: OnRevocationSuccess;\n\tonRevocationError: OnRevocationError;\n};\n\nexport const revoke = <UserType>({\n\tauthSessionStore,\n\tclientProviders,\n\trevokeRoute = '/oauth2/revocation',\n\tonRevocationSuccess,\n\tonRevocationError\n}: RevokeProps<UserType>) =>\n\tnew Elysia().use(sessionStore<UserType>()).post(\n\t\trevokeRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tstore: { session },\n\t\t\tcookie: { user_session_id, auth_provider, auth_client }\n\t\t}) => {\n\t\t\tif (\n\t\t\t\tauth_provider === undefined ||\n\t\t\t\tauth_client === undefined ||\n\t\t\t\tuser_session_id === undefined\n\t\t\t)\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\n\t\t\tif (auth_provider.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No auth provider found');\n\t\t\t}\n\n\t\t\tif (!isValidProviderOption(auth_provider.value)) {\n\t\t\t\treturn status('Bad Request', 'Invalid provider');\n\t\t\t}\n\n\t\t\tif (user_session_id.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst resolvedProvider = resolveClientProviderEntry({\n\t\t\t\tclientName: auth_client.value || undefined,\n\t\t\t\tclientProviders,\n\t\t\t\tproviderName: auth_provider.value\n\t\t\t});\n\t\t\tif ('error' in resolvedProvider) {\n\t\t\t\treturn status('Unauthorized', resolvedProvider.error);\n\t\t\t}\n\t\t\tconst { clientName, providerInstance } = resolvedProvider.entry;\n\n\t\t\tif (\n\t\t\t\t!isRevocableOAuth2Client(auth_provider.value, providerInstance)\n\t\t\t) {\n\t\t\t\treturn status(\n\t\t\t\t\t'Not Implemented',\n\t\t\t\t\t'Provider does not support revocation'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst userSession = await loadSessionFromSource({\n\t\t\t\tauthSessionStore,\n\t\t\t\tsession,\n\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t});\n\n\t\t\tif (userSession === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst { accessToken } = userSession;\n\n\t\t\ttry {\n\t\t\t\tawait providerInstance.revokeToken(accessToken);\n\n\t\t\t\tawait onRevocationSuccess?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\ttokenToRevoke: accessToken\n\t\t\t\t});\n\n\t\t\t\treturn new Response('Token revoked', {\n\t\t\t\t\tstatus: 204\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error('[revoke] Failed to revoke token:', {\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t\t\t});\n\n\t\t\t\tawait onRevocationError?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err\n\t\t\t\t});\n\n\t\t\t\treturn status(\n\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t'Failed to revoke token'\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_client: authClientOption,\n\t\t\t\tauth_provider: authProviderOption,\n\t\t\t\tuser_session_id: userSessionIdTypebox\n\t\t\t})\n\t\t}\n\t);\n",
22
- "import { Elysia } from 'elysia';\nimport { DEFAULT_MAX_SESSIONS, MILLISECONDS_IN_AN_HOUR } from './constants';\nimport { sessionStore } from './sessionStore';\nimport type { AuthSessionStore } from './sessionTypes';\nimport { isUserSessionId } from './typeGuards';\nimport type {\n\tOnSessionCleanup,\n\tSessionData,\n\tSessionRecord,\n\tUnregisteredSessionData,\n\tUnregisteredSessionRecord,\n\tUserSessionId\n} from './types';\n\ntype SessionCleanupProps<UserType> = {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tcleanupIntervalMs?: number;\n\tmaxSessions?: number;\n\tonSessionCleanup?: OnSessionCleanup<UserType>;\n};\n\nexport const sessionCleanup = <UserType>({\n\tauthSessionStore,\n\tcleanupIntervalMs = MILLISECONDS_IN_AN_HOUR,\n\tmaxSessions = DEFAULT_MAX_SESSIONS,\n\tonSessionCleanup\n}: SessionCleanupProps<UserType>) => {\n\tlet intervalId: ReturnType<typeof setInterval> | null = null;\n\n\treturn new Elysia({ name: 'sessionCleanup' })\n\t\t.use(sessionStore<UserType>())\n\t\t.onStart(({ store: { session, unregisteredSession } }) => {\n\t\t\tintervalId = setInterval(async () => {\n\t\t\t\tawait performCleanup({\n\t\t\t\t\tauthSessionStore,\n\t\t\t\t\tmaxSessions,\n\t\t\t\t\tonSessionCleanup,\n\t\t\t\t\tsession,\n\t\t\t\t\tunregisteredSession\n\t\t\t\t});\n\t\t\t}, cleanupIntervalMs);\n\t\t})\n\t\t.onStop(() => {\n\t\t\tif (intervalId) {\n\t\t\t\tclearInterval(intervalId);\n\t\t\t\tintervalId = null;\n\t\t\t}\n\t\t})\n\t\t.derive(({ store: { session, unregisteredSession } }) => ({\n\t\t\tcleanupSessions: async () => {\n\t\t\t\tawait performCleanup({\n\t\t\t\t\tauthSessionStore,\n\t\t\t\t\tmaxSessions,\n\t\t\t\t\tonSessionCleanup,\n\t\t\t\t\tsession,\n\t\t\t\t\tunregisteredSession\n\t\t\t\t});\n\t\t\t}\n\t\t}))\n\t\t.as('global');\n};\n\nconst collectValidSessionEntries = <UserType>(\n\tsession: SessionRecord<UserType>\n) => {\n\tconst entries: [UserSessionId, SessionData<UserType>][] = [];\n\tfor (const [key, value] of Object.entries(session)) {\n\t\tif (!isUserSessionId(key)) continue;\n\t\tentries.push([key, value]);\n\t}\n\n\treturn entries;\n};\n\nconst collectValidUnregisteredEntries = (\n\tunregisteredSession: UnregisteredSessionRecord\n) => {\n\tconst entries: [UserSessionId, UnregisteredSessionData][] = [];\n\tfor (const [key, value] of Object.entries(unregisteredSession)) {\n\t\tif (!isUserSessionId(key)) continue;\n\t\tentries.push([key, value]);\n\t}\n\n\treturn entries;\n};\n\nconst removeExpiredSessions = <UserType>(\n\tvalidEntries: [UserSessionId, SessionData<UserType>][],\n\tsession: SessionRecord<UserType>,\n\tnow: number\n) => {\n\tconst removed = new Map<UserSessionId, SessionData<UserType>>();\n\tfor (const [sessionId, userSession] of validEntries) {\n\t\tif (userSession.expiresAt >= now) continue;\n\t\tremoved.set(sessionId, userSession);\n\t\tdelete session[sessionId];\n\t}\n\n\treturn removed;\n};\n\nconst removeExpiredUnregisteredSessions = (\n\tvalidEntries: [UserSessionId, UnregisteredSessionData][],\n\tunregisteredSession: UnregisteredSessionRecord,\n\tnow: number\n) => {\n\tconst removed = new Map<UserSessionId, UnregisteredSessionData>();\n\tfor (const [sessionId, unregSession] of validEntries) {\n\t\tif (unregSession.expiresAt >= now) continue;\n\t\tremoved.set(sessionId, unregSession);\n\t\tdelete unregisteredSession[sessionId];\n\t}\n\n\treturn removed;\n};\n\nconst evictExcessSessions = <UserType>(\n\tremainingEntries: [UserSessionId, SessionData<UserType>][],\n\tsession: SessionRecord<UserType>,\n\tmaxSessions: number,\n\tremovedSessions: Map<UserSessionId, SessionData<UserType>>\n) => {\n\tconst excessCount = remainingEntries.length - maxSessions;\n\tif (excessCount <= 0) return;\n\n\tconst sortedByExpiry = remainingEntries.sort(\n\t\t([, entryA], [, entryB]) => entryA.expiresAt - entryB.expiresAt\n\t);\n\tconst toEvict = sortedByExpiry.slice(0, excessCount);\n\n\tfor (const [key, value] of toEvict) {\n\t\tremovedSessions.set(key, value);\n\t\tdelete session[key];\n\t}\n};\n\nconst evictExcessUnregisteredSessions = (\n\tremainingEntries: [UserSessionId, UnregisteredSessionData][],\n\tunregisteredSession: UnregisteredSessionRecord,\n\tmaxSessions: number,\n\tremovedUnregisteredSessions: Map<UserSessionId, UnregisteredSessionData>\n) => {\n\tconst excessCount = remainingEntries.length - maxSessions;\n\tif (excessCount <= 0) return;\n\n\tconst sortedByExpiry = remainingEntries.sort(\n\t\t([, entryA], [, entryB]) => entryA.expiresAt - entryB.expiresAt\n\t);\n\tconst toEvict = sortedByExpiry.slice(0, excessCount);\n\n\tfor (const [key, value] of toEvict) {\n\t\tremovedUnregisteredSessions.set(key, value);\n\t\tdelete unregisteredSession[key];\n\t}\n};\n\nconst performRecordCleanup = async <UserType>({\n\tmaxSessions,\n\tonSessionCleanup,\n\tsession,\n\tunregisteredSession\n}: {\n\tmaxSessions: number;\n\tonSessionCleanup?: OnSessionCleanup<UserType>;\n\tsession: SessionRecord<UserType>;\n\tunregisteredSession: UnregisteredSessionRecord;\n}) => {\n\tconst now = Date.now();\n\n\tconst validSessionEntries = collectValidSessionEntries(session);\n\tconst removedSessions = removeExpiredSessions(\n\t\tvalidSessionEntries,\n\t\tsession,\n\t\tnow\n\t);\n\n\tconst validUnregisteredEntries =\n\t\tcollectValidUnregisteredEntries(unregisteredSession);\n\tconst removedUnregisteredSessions = removeExpiredUnregisteredSessions(\n\t\tvalidUnregisteredEntries,\n\t\tunregisteredSession,\n\t\tnow\n\t);\n\n\tconst remainingEntries = validSessionEntries.filter(\n\t\t([key]) => !removedSessions.has(key)\n\t);\n\tevictExcessSessions(\n\t\tremainingEntries,\n\t\tsession,\n\t\tmaxSessions,\n\t\tremovedSessions\n\t);\n\n\tconst remainingUnregistered = validUnregisteredEntries.filter(\n\t\t([key]) => !removedUnregisteredSessions.has(key)\n\t);\n\tevictExcessUnregisteredSessions(\n\t\tremainingUnregistered,\n\t\tunregisteredSession,\n\t\tmaxSessions,\n\t\tremovedUnregisteredSessions\n\t);\n\n\ttry {\n\t\tawait onSessionCleanup?.({\n\t\t\tremovedSessions,\n\t\t\tremovedUnregisteredSessions\n\t\t});\n\t} catch (err) {\n\t\tconsole.error('[sessionCleanup] onSessionCleanup handler failed:', err);\n\t}\n};\n\nconst loadStoreSessions = async <UserType>(\n\tauthSessionStore: AuthSessionStore<UserType>\n) => {\n\tconst sessionIds = await authSessionStore.listSessionIds?.();\n\tif (!sessionIds) return null;\n\n\tconst entries: [UserSessionId, SessionData<UserType>][] = [];\n\tfor (const sessionId of sessionIds) {\n\t\tconst session = await authSessionStore.getSession(sessionId);\n\t\tif (session) entries.push([sessionId, session]);\n\t}\n\n\treturn entries;\n};\n\nconst loadStoreUnregisteredSessions = async <UserType>(\n\tauthSessionStore: AuthSessionStore<UserType>\n) => {\n\tconst sessionIds = await authSessionStore.listUnregisteredSessionIds?.();\n\tif (!sessionIds) return null;\n\n\tconst entries: [UserSessionId, UnregisteredSessionData][] = [];\n\tfor (const sessionId of sessionIds) {\n\t\tconst session =\n\t\t\tawait authSessionStore.getUnregisteredSession(sessionId);\n\t\tif (session) entries.push([sessionId, session]);\n\t}\n\n\treturn entries;\n};\n\nconst performStoreCleanup = async <UserType>({\n\tauthSessionStore,\n\tmaxSessions,\n\tonSessionCleanup\n}: {\n\tauthSessionStore: AuthSessionStore<UserType>;\n\tmaxSessions: number;\n\tonSessionCleanup?: OnSessionCleanup<UserType>;\n}) => {\n\tconst now = Date.now();\n\tconst sessionEntries = await loadStoreSessions(authSessionStore);\n\tconst unregisteredEntries =\n\t\tawait loadStoreUnregisteredSessions(authSessionStore);\n\tif (!sessionEntries || !unregisteredEntries) {\n\t\treturn;\n\t}\n\n\tconst removedSessions = new Map<UserSessionId, SessionData<UserType>>();\n\tconst removedUnregisteredSessions = new Map<\n\t\tUserSessionId,\n\t\tUnregisteredSessionData\n\t>();\n\n\tconst remainingSessions = sessionEntries.filter(([sessionId, session]) => {\n\t\tif (session.expiresAt >= now) return true;\n\t\tremovedSessions.set(sessionId, session);\n\t\treturn false;\n\t});\n\tfor (const sessionId of removedSessions.keys()) {\n\t\tawait authSessionStore.removeSession(sessionId);\n\t}\n\n\tconst remainingUnregistered = unregisteredEntries.filter(\n\t\t([sessionId, session]) => {\n\t\t\tif (session.expiresAt >= now) return true;\n\t\t\tremovedUnregisteredSessions.set(sessionId, session);\n\t\t\treturn false;\n\t\t}\n\t);\n\tfor (const sessionId of removedUnregisteredSessions.keys()) {\n\t\tawait authSessionStore.removeUnregisteredSession(sessionId);\n\t}\n\n\tif (remainingSessions.length > maxSessions) {\n\t\tconst overflow = [...remainingSessions]\n\t\t\t.sort(([, left], [, right]) => left.expiresAt - right.expiresAt)\n\t\t\t.slice(0, remainingSessions.length - maxSessions);\n\t\tfor (const [sessionId, session] of overflow) {\n\t\t\tremovedSessions.set(sessionId, session);\n\t\t\tawait authSessionStore.removeSession(sessionId);\n\t\t}\n\t}\n\n\tif (remainingUnregistered.length > maxSessions) {\n\t\tconst overflow = [...remainingUnregistered]\n\t\t\t.sort(([, left], [, right]) => left.expiresAt - right.expiresAt)\n\t\t\t.slice(0, remainingUnregistered.length - maxSessions);\n\t\tfor (const [sessionId, session] of overflow) {\n\t\t\tremovedUnregisteredSessions.set(sessionId, session);\n\t\t\tawait authSessionStore.removeUnregisteredSession(sessionId);\n\t\t}\n\t}\n\n\ttry {\n\t\tawait onSessionCleanup?.({\n\t\t\tremovedSessions,\n\t\t\tremovedUnregisteredSessions\n\t\t});\n\t} catch (err) {\n\t\tconsole.error('[sessionCleanup] onSessionCleanup handler failed:', err);\n\t}\n};\n\nconst performCleanup = async <UserType>({\n\tauthSessionStore,\n\tmaxSessions,\n\tonSessionCleanup,\n\tsession,\n\tunregisteredSession\n}: {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tmaxSessions: number;\n\tonSessionCleanup?: OnSessionCleanup<UserType>;\n\tsession: SessionRecord<UserType>;\n\tunregisteredSession: UnregisteredSessionRecord;\n}) => {\n\tif (authSessionStore) {\n\t\tawait performStoreCleanup({\n\t\t\tauthSessionStore,\n\t\t\tmaxSessions,\n\t\t\tonSessionCleanup\n\t\t});\n\t\treturn;\n\t}\n\n\tawait performRecordCleanup({\n\t\tmaxSessions,\n\t\tonSessionCleanup,\n\t\tsession,\n\t\tunregisteredSession\n\t});\n};\n",
23
- "import { Elysia, t } from 'elysia';\nimport { createSessionCompatibilityLayer } from './sessionAccess';\nimport { sessionStore } from './sessionStore';\nimport type { AuthSessionStore } from './sessionTypes';\nimport { authProviderOption } from './typebox';\nimport { OnSignOut, RouteString } from './types';\n\ntype SignOutProps<UserType> = {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tsignoutRoute?: RouteString;\n\tonSignOut: OnSignOut<UserType>;\n};\n\nexport const signout = <UserType>({\n\tauthSessionStore,\n\tsignoutRoute = '/oauth2/signout',\n\tonSignOut\n}: SignOutProps<UserType>) =>\n\tnew Elysia().use(sessionStore<UserType>()).delete(\n\t\tsignoutRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tstore: { session },\n\t\t\tcookie: { user_session_id, auth_provider }\n\t\t}) => {\n\t\t\tif (auth_provider === undefined || user_session_id === undefined) {\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\t\t\t}\n\n\t\t\tif (auth_provider.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No auth provider found');\n\t\t\t}\n\t\t\tif (user_session_id.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session id found');\n\t\t\t}\n\n\t\t\tconst compatibilityLayer = await createSessionCompatibilityLayer({\n\t\t\t\tauthSessionStore,\n\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t});\n\t\t\tconst signoutSession = authSessionStore\n\t\t\t\t? compatibilityLayer.session\n\t\t\t\t: session;\n\t\t\tconst currentSession = signoutSession[user_session_id.value];\n\n\t\t\tif (currentSession !== undefined) {\n\t\t\t\ttry {\n\t\t\t\t\tawait onSignOut?.({\n\t\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\t\tsession: signoutSession,\n\t\t\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t\t\t});\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconsole.error('[signout] Sign out operation failed:', {\n\t\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\t\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t\t\t\t});\n\n\t\t\t\t\treturn status(\n\t\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t\t'Sign out operation failed'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdelete signoutSession[user_session_id.value];\n\t\t\tif (authSessionStore) {\n\t\t\t\tawait compatibilityLayer.persist();\n\t\t\t\tawait authSessionStore.removeSession(user_session_id.value);\n\t\t\t\tawait authSessionStore.removeUnregisteredSession(\n\t\t\t\t\tuser_session_id.value\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdelete session[user_session_id.value];\n\t\t\t}\n\n\t\t\tuser_session_id.remove();\n\t\t\tauth_provider.remove();\n\n\t\t\treturn new Response(null, { status: 204 });\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_provider: t.Optional(authProviderOption),\n\t\t\t\tuser_session_id: t.Optional(\n\t\t\t\t\tt.TemplateLiteral(\n\t\t\t\t\t\t'${string}-${string}-${string}-${string}-${string}'\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t})\n\t\t}\n\t);\n",
24
- "import { Elysia, t } from 'elysia';\nimport { getStatusFromSource } from './sessionAccess';\nimport { sessionStore } from './sessionStore';\nimport type { AuthSessionStore } from './sessionTypes';\nimport { userSessionIdTypebox } from './typebox';\nimport { OnStatus, RouteString } from './types';\n\ntype StatusProps<UserType> = {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tstatusRoute?: RouteString;\n\tonStatus: OnStatus<UserType>;\n};\n\nexport const userStatus = <UserType>({\n\tauthSessionStore,\n\tstatusRoute = '/oauth2/status',\n\tonStatus\n}: StatusProps<UserType>) =>\n\tnew Elysia().use(sessionStore<UserType>()).get(\n\t\tstatusRoute,\n\t\tasync ({ status, cookie: { user_session_id }, store: { session } }) => {\n\t\t\tconst { user, error } = await getStatusFromSource<UserType>({\n\t\t\t\tauthSessionStore,\n\t\t\t\tsession,\n\t\t\t\tuser_session_id\n\t\t\t});\n\n\t\t\tif (error) {\n\t\t\t\treturn status(error.code, error.message);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tawait onStatus?.({ user });\n\t\t\t} catch (err) {\n\t\t\t\treturn err instanceof Error\n\t\t\t\t\t? status(\n\t\t\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t\t\t`Error: ${err.message} - ${err.stack ?? ''}`\n\t\t\t\t\t\t)\n\t\t\t\t\t: status(\n\t\t\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t\t\t`Unknown Error: ${String(err)}`\n\t\t\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn { user };\n\t\t},\n\t\t{ cookie: t.Cookie({ user_session_id: userSessionIdTypebox }) }\n\t);\n",
25
- "import type { AuthSessionStore } from './sessionTypes';\nimport type {\n\tSessionData,\n\tUnregisteredSessionData,\n\tUserSessionId\n} from './types';\n\nexport type CreateInMemoryAuthSessionStoreOptions<UserType> = {\n\tsessions?: Record<UserSessionId, SessionData<UserType>>;\n\tunregisteredSessions?: Record<UserSessionId, UnregisteredSessionData>;\n};\n\nconst cloneSessionData = <UserType>(\n\tvalue: SessionData<UserType>\n): SessionData<UserType> => ({\n\t...value\n});\n\nconst cloneUnregisteredSessionData = (\n\tvalue: UnregisteredSessionData\n): UnregisteredSessionData => ({\n\t...value,\n\tuserIdentity: value.userIdentity ? { ...value.userIdentity } : undefined,\n\tsessionInformation: value.sessionInformation\n\t\t? { ...value.sessionInformation }\n\t\t: undefined\n});\n\nexport const createInMemoryAuthSessionStore = <UserType>(\n\tinput: CreateInMemoryAuthSessionStoreOptions<UserType> = {}\n): AuthSessionStore<UserType> => {\n\tconst sessions = new Map<UserSessionId, SessionData<UserType>>(\n\t\tObject.entries(input.sessions ?? {}).map(([id, value]) => [\n\t\t\tid as UserSessionId,\n\t\t\tcloneSessionData(value)\n\t\t])\n\t);\n\tconst unregisteredSessions = new Map<\n\t\tUserSessionId,\n\t\tUnregisteredSessionData\n\t>(\n\t\tObject.entries(input.unregisteredSessions ?? {}).map(([id, value]) => [\n\t\t\tid as UserSessionId,\n\t\t\tcloneUnregisteredSessionData(value)\n\t\t])\n\t);\n\n\treturn {\n\t\tgetSession: async (id) => {\n\t\t\tconst session = sessions.get(id);\n\t\t\treturn session ? cloneSessionData(session) : undefined;\n\t\t},\n\t\tsetSession: async (id, value) => {\n\t\t\tsessions.set(id, cloneSessionData(value));\n\t\t},\n\t\tremoveSession: async (id) => {\n\t\t\tsessions.delete(id);\n\t\t},\n\t\tgetUnregisteredSession: async (id) => {\n\t\t\tconst session = unregisteredSessions.get(id);\n\t\t\treturn session ? cloneUnregisteredSessionData(session) : undefined;\n\t\t},\n\t\tsetUnregisteredSession: async (id, value) => {\n\t\t\tunregisteredSessions.set(id, cloneUnregisteredSessionData(value));\n\t\t},\n\t\tremoveUnregisteredSession: async (id) => {\n\t\t\tunregisteredSessions.delete(id);\n\t\t},\n\t\tlistSessionIds: async () => [...sessions.keys()],\n\t\tlistUnregisteredSessionIds: async () => [...unregisteredSessions.keys()]\n\t};\n};\n",
26
+ "import { MILLISECONDS_IN_A_MINUTE } from '../constants';\nimport type { LockoutStore } from './types';\n\nconst DEFAULT_MAX_ATTEMPTS = 5;\nconst LOCKOUT_WINDOW_MINUTES = 15;\nconst DEFAULT_WINDOW_MS = MILLISECONDS_IN_A_MINUTE * LOCKOUT_WINDOW_MINUTES;\nconst DEFAULT_LOCKOUT_MS = MILLISECONDS_IN_A_MINUTE * LOCKOUT_WINDOW_MINUTES;\n\nexport type LockoutConfig = {\n\tlockoutStore: LockoutStore;\n\tlockoutMs?: number;\n\tmaxAttempts?: number;\n\twindowMs?: number;\n};\n\nexport type LockoutState = {\n\tlocked: boolean;\n\tretryAfterMs?: number;\n};\n\nexport type LockoutGuard = {\n\tcheck: (key: string) => Promise<LockoutState>;\n\trecordFailure: (key: string) => Promise<void>;\n\trecordSuccess: (key: string) => Promise<void>;\n};\n\nexport const createLockoutGuard = ({\n\tlockoutMs = DEFAULT_LOCKOUT_MS,\n\tlockoutStore,\n\tmaxAttempts = DEFAULT_MAX_ATTEMPTS,\n\twindowMs = DEFAULT_WINDOW_MS\n}: LockoutConfig): LockoutGuard => ({\n\tcheck: async (key) => {\n\t\tconst record = await lockoutStore.get(key);\n\t\tconst retryAfterMs = (record?.lockedUntil ?? 0) - Date.now();\n\n\t\treturn retryAfterMs > 0\n\t\t\t? { locked: true, retryAfterMs }\n\t\t\t: { locked: false };\n\t},\n\trecordFailure: async (key) => {\n\t\tconst record = await lockoutStore.increment(key, windowMs);\n\t\tif (record.failedAttempts >= maxAttempts) {\n\t\t\tawait lockoutStore.lock(key, Date.now() + lockoutMs);\n\t\t}\n\t},\n\trecordSuccess: async (key) => {\n\t\tawait lockoutStore.reset(key);\n\t}\n});\n",
27
+ "export type MfaFactorType = 'backup_codes' | 'totp';\n\nexport type MfaEnrollment = {\n\tbackupCodeHashes: string[];\n\tcreatedAt: number;\n\tlastUsedAt?: number;\n\t// TOTP secret encrypted at rest (AES-GCM) when an encryption key is configured,\n\t// otherwise the raw base32 secret. Never the user's typed code.\n\ttotpSecretCiphertext?: string;\n\ttotpVerified: boolean;\n\tupdatedAt: number;\n\tuserId: string;\n};\n\nexport type MFAStore = {\n\tgetEnrollment: (userId: string) => Promise<MfaEnrollment | undefined>;\n\tremoveEnrollment: (userId: string) => Promise<void>;\n\tsaveEnrollment: (enrollment: MfaEnrollment) => Promise<void>;\n};\n\n// A user is gated by MFA once a factor is usable: a verified TOTP secret or any\n// remaining backup code.\nexport const isMfaEnrolled = (enrollment: MfaEnrollment | undefined) =>\n\tenrollment !== undefined &&\n\t(enrollment.totpVerified || enrollment.backupCodeHashes.length > 0);\n",
28
+ "import type { MfaConfig } from './config';\nimport { isMfaEnrolled } from './types';\n\n// Builds the `isMfaRequired` predicate the credential/OAuth login flows consult, from\n// the MFAStore enrollment state. `auth()` wires this into `credentials` automatically.\nexport const createMfaGate =\n\t<UserType>({ getUserId, mfaStore }: MfaConfig<UserType>) =>\n\tasync (user: UserType) =>\n\t\tisMfaEnrolled(await mfaStore.getEnrollment(getUserId(user)));\n",
29
+ "import { Elysia } from 'elysia';\nimport { mfaChallenge } from './challenge';\nimport type { MfaRouteProps } from './config';\nimport { mfaTotpRoutes } from './totp';\n\n// Composes the MFA routes (TOTP setup/verify + challenge) into one Elysia instance.\n// `auth()` mounts this before `protectRoutePlugin` when an `mfa` block is configured.\nexport const mfaRoutes = <UserType>(config: MfaRouteProps<UserType>) =>\n\tnew Elysia().use(mfaTotpRoutes(config)).use(mfaChallenge(config));\n",
30
+ "import { Elysia, t } from 'elysia';\nimport { verifyTotp } from '../crypto';\nimport { createSessionCompatibilityLayer } from '../session/access';\nimport { persistWhen } from '../session/promote';\nimport { sessionStore } from '../session/state';\nimport { userSessionIdTypebox } from '../typebox';\nimport { consumeBackupCode } from './backupCodes';\nimport { DEFAULT_MFA_SESSION_TTL_MS, type MfaRouteProps } from './config';\nimport { decryptTotpSecret } from './secret';\n\nexport const mfaChallenge = <UserType>({\n\tauthSessionStore,\n\tchallengeRoute = '/auth/mfa/challenge',\n\tencryptionKey,\n\tgetChallengeUser,\n\tgetUserId,\n\tmfaStore,\n\tonMfaChallengeError,\n\tonMfaChallengeSuccess,\n\tsessionDurationMs = DEFAULT_MFA_SESSION_TTL_MS\n}: MfaRouteProps<UserType>) =>\n\tnew Elysia().use(sessionStore<UserType>()).post(\n\t\tchallengeRoute,\n\t\tasync ({\n\t\t\tbody: { code },\n\t\t\tcookie: { user_session_id },\n\t\t\tstatus,\n\t\t\tstore: { session, unregisteredSession }\n\t\t}) => {\n\t\t\tconst compatibilityLayer = await createSessionCompatibilityLayer({\n\t\t\t\tauthSessionStore,\n\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t});\n\t\t\tconst challengeSession = authSessionStore\n\t\t\t\t? compatibilityLayer.session\n\t\t\t\t: session;\n\t\t\tconst challengeUnregistered = authSessionStore\n\t\t\t\t? compatibilityLayer.unregisteredSession\n\t\t\t\t: unregisteredSession;\n\t\t\tconst pendingId = user_session_id.value;\n\t\t\tconst pending = pendingId\n\t\t\t\t? challengeUnregistered[pendingId]\n\t\t\t\t: undefined;\n\t\t\tif (!pendingId || !pending) {\n\t\t\t\treturn status('Unauthorized', 'No MFA challenge in progress');\n\t\t\t}\n\n\t\t\tconst user = await getChallengeUser(pending.userIdentity ?? {});\n\t\t\tconst enrollment = user\n\t\t\t\t? await mfaStore.getEnrollment(getUserId(user))\n\t\t\t\t: undefined;\n\t\t\tif (!user || !enrollment) {\n\t\t\t\treturn status('Unauthorized', 'No MFA challenge in progress');\n\t\t\t}\n\n\t\t\tconst totpValid =\n\t\t\t\tenrollment.totpVerified && enrollment.totpSecretCiphertext\n\t\t\t\t\t? await verifyTotp({\n\t\t\t\t\t\t\tsecret: await decryptTotpSecret(\n\t\t\t\t\t\t\t\tenrollment.totpSecretCiphertext,\n\t\t\t\t\t\t\t\tencryptionKey\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\ttoken: code\n\t\t\t\t\t\t})\n\t\t\t\t\t: false;\n\t\t\tconst remainingBackupHashes = totpValid\n\t\t\t\t? undefined\n\t\t\t\t: await consumeBackupCode(code, enrollment.backupCodeHashes);\n\n\t\t\tif (!totpValid && remainingBackupHashes === undefined) {\n\t\t\t\tawait onMfaChallengeError?.({\n\t\t\t\t\terror: new Error('invalid_mfa_code'),\n\t\t\t\t\tuserId: getUserId(user)\n\t\t\t\t});\n\n\t\t\t\treturn status('Unauthorized', 'Invalid MFA code');\n\t\t\t}\n\n\t\t\tawait mfaStore.saveEnrollment({\n\t\t\t\t...enrollment,\n\t\t\t\tbackupCodeHashes:\n\t\t\t\t\tremainingBackupHashes ?? enrollment.backupCodeHashes,\n\t\t\t\tlastUsedAt: Date.now(),\n\t\t\t\tupdatedAt: Date.now()\n\t\t\t});\n\n\t\t\tdelete challengeUnregistered[pendingId];\n\t\t\tconst userSessionId = crypto.randomUUID();\n\t\t\tchallengeSession[userSessionId] = {\n\t\t\t\tauthenticatedAt: Date.now(),\n\t\t\t\texpiresAt: Date.now() + sessionDurationMs,\n\t\t\t\tuser\n\t\t\t};\n\t\t\tuser_session_id.set({\n\t\t\t\thttpOnly: true,\n\t\t\t\tsameSite: 'lax',\n\t\t\t\tsecure: true,\n\t\t\t\tvalue: userSessionId\n\t\t\t});\n\t\t\tawait persistWhen(\n\t\t\t\tauthSessionStore !== undefined,\n\t\t\t\tcompatibilityLayer.persist\n\t\t\t);\n\t\t\tawait onMfaChallengeSuccess?.({ user, userSessionId });\n\n\t\t\treturn status('OK', { status: 'authenticated' });\n\t\t},\n\t\t{\n\t\t\tbody: t.Object({ code: t.String() }),\n\t\t\tcookie: t.Cookie({ user_session_id: userSessionIdTypebox })\n\t\t}\n\t);\n",
31
+ "import { generateSecureToken, hashToken } from '../crypto';\n\nconst BACKUP_CODE_BYTES = 8;\n\n// Generates single-use recovery codes: the plaintext codes are returned to the user\n// exactly once, only their hashes are persisted.\nexport const consumeBackupCode = async (code: string, hashes: string[]) => {\n\tconst codeHash = await hashToken(code);\n\tconst index = hashes.indexOf(codeHash);\n\tif (index < 0) return undefined;\n\n\treturn hashes.filter((_, position) => position !== index);\n};\nexport const generateBackupCodes = async (count: number) => {\n\tconst codes = Array.from({ length: count }, () =>\n\t\tgenerateSecureToken(BACKUP_CODE_BYTES)\n\t);\n\tconst hashes = await Promise.all(codes.map((code) => hashToken(code)));\n\n\treturn { codes, hashes };\n};\n",
32
+ "import { MILLISECONDS_IN_A_DAY } from '../constants';\nimport type { AuthSessionStore } from '../session/types';\nimport type { RouteString, UserSessionId } from '../types';\nimport type { MFAStore } from './types';\n\nexport const DEFAULT_BACKUP_CODE_COUNT = 10;\nexport const DEFAULT_MFA_ISSUER = 'AbsoluteAuth';\nexport const DEFAULT_MFA_SESSION_TTL_MS = MILLISECONDS_IN_A_DAY;\n\nexport type MfaConfig<UserType> = {\n\tmfaStore: MFAStore;\n\t// Stable per-user key for the store (e.g. the user's `sub`).\n\tgetUserId: (user: UserType) => string;\n\t// Resolve the parked (unregistered) identity back into a user during a challenge.\n\t// For credentials this is `(identity) => getUserByEmail(identity.email)`.\n\tgetChallengeUser: (\n\t\tuserIdentity: Record<string, unknown>\n\t) => Promise<UserType | null | undefined> | UserType | null | undefined;\n\tbackupCodeCount?: number;\n\tchallengeRoute?: RouteString;\n\t// AES-GCM key (base64url) to encrypt the TOTP secret at rest. When omitted the\n\t// secret is stored as-is — set it in any real deployment.\n\tencryptionKey?: string;\n\tissuer?: string;\n\tonMfaChallengeError?: (context: {\n\t\terror: unknown;\n\t\tuserId?: string;\n\t}) => void | Promise<void>;\n\tonMfaChallengeSuccess?: (context: {\n\t\tuser: UserType;\n\t\tuserSessionId: UserSessionId;\n\t}) => void | Promise<void>;\n\tonMfaEnrolled?: (context: { userId: string }) => void | Promise<void>;\n\tsessionDurationMs?: number;\n\ttotpSetupRoute?: RouteString;\n\ttotpVerifyRoute?: RouteString;\n};\n\nexport type MfaRouteProps<UserType> = MfaConfig<UserType> & {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n};\n",
33
+ "import { decryptSecret, encryptSecret } from '../crypto';\n\n// When an encryption key is configured the TOTP secret is AES-GCM encrypted at rest,\n// otherwise it round-trips unchanged (dev). Centralised so setup, verify and challenge\n// all treat the stored secret identically.\nexport const decryptTotpSecret = (ciphertext: string, encryptionKey?: string) =>\n\tencryptionKey\n\t\t? decryptSecret(ciphertext, encryptionKey)\n\t\t: Promise.resolve(ciphertext);\nexport const encryptTotpSecret = (secret: string, encryptionKey?: string) =>\n\tencryptionKey ? encryptSecret(secret, encryptionKey) : Promise.resolve(secret);\n",
34
+ "import { Elysia, t } from 'elysia';\nimport { createTotpKeyUri, generateTotpSecret, verifyTotp } from '../crypto';\nimport { loadSessionFromSource } from '../session/access';\nimport { sessionStore } from '../session/state';\nimport { userSessionIdTypebox } from '../typebox';\nimport { generateBackupCodes } from './backupCodes';\nimport {\n\tDEFAULT_BACKUP_CODE_COUNT,\n\tDEFAULT_MFA_ISSUER,\n\ttype MfaRouteProps\n} from './config';\nimport { decryptTotpSecret, encryptTotpSecret } from './secret';\n\nexport const mfaTotpRoutes = <UserType>({\n\tauthSessionStore,\n\tbackupCodeCount = DEFAULT_BACKUP_CODE_COUNT,\n\tencryptionKey,\n\tgetUserId,\n\tissuer = DEFAULT_MFA_ISSUER,\n\tmfaStore,\n\tonMfaEnrolled,\n\ttotpSetupRoute = '/auth/mfa/totp/setup',\n\ttotpVerifyRoute = '/auth/mfa/totp/verify'\n}: MfaRouteProps<UserType>) =>\n\tnew Elysia()\n\t\t.use(sessionStore<UserType>())\n\t\t.post(\n\t\t\ttotpSetupRoute,\n\t\t\tasync ({ cookie: { user_session_id }, status, store: { session } }) => {\n\t\t\t\tconst userSession = await loadSessionFromSource({\n\t\t\t\t\tauthSessionStore,\n\t\t\t\t\tsession,\n\t\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t\t});\n\t\t\t\tif (!userSession) {\n\t\t\t\t\treturn status('Unauthorized', 'Authentication required');\n\t\t\t\t}\n\n\t\t\t\tconst userId = getUserId(userSession.user);\n\t\t\t\tconst secret = generateTotpSecret();\n\t\t\t\tconst existing = await mfaStore.getEnrollment(userId);\n\t\t\t\tconst now = Date.now();\n\t\t\t\tawait mfaStore.saveEnrollment({\n\t\t\t\t\tbackupCodeHashes: existing?.backupCodeHashes ?? [],\n\t\t\t\t\tcreatedAt: existing?.createdAt ?? now,\n\t\t\t\t\ttotpSecretCiphertext: await encryptTotpSecret(\n\t\t\t\t\t\tsecret,\n\t\t\t\t\t\tencryptionKey\n\t\t\t\t\t),\n\t\t\t\t\ttotpVerified: false,\n\t\t\t\t\tupdatedAt: now,\n\t\t\t\t\tuserId\n\t\t\t\t});\n\n\t\t\t\treturn status('OK', {\n\t\t\t\t\tsecret,\n\t\t\t\t\turi: createTotpKeyUri({ accountName: userId, issuer, secret })\n\t\t\t\t});\n\t\t\t},\n\t\t\t{ cookie: t.Cookie({ user_session_id: userSessionIdTypebox }) }\n\t\t)\n\t\t.post(\n\t\t\ttotpVerifyRoute,\n\t\t\tasync ({\n\t\t\t\tbody: { code },\n\t\t\t\tcookie: { user_session_id },\n\t\t\t\tstatus,\n\t\t\t\tstore: { session }\n\t\t\t}) => {\n\t\t\t\tconst userSession = await loadSessionFromSource({\n\t\t\t\t\tauthSessionStore,\n\t\t\t\t\tsession,\n\t\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t\t});\n\t\t\t\tif (!userSession) {\n\t\t\t\t\treturn status('Unauthorized', 'Authentication required');\n\t\t\t\t}\n\n\t\t\t\tconst userId = getUserId(userSession.user);\n\t\t\t\tconst enrollment = await mfaStore.getEnrollment(userId);\n\t\t\t\tif (!enrollment?.totpSecretCiphertext) {\n\t\t\t\t\treturn status('Bad Request', 'No TOTP enrollment in progress');\n\t\t\t\t}\n\n\t\t\t\tconst secret = await decryptTotpSecret(\n\t\t\t\t\tenrollment.totpSecretCiphertext,\n\t\t\t\t\tencryptionKey\n\t\t\t\t);\n\t\t\t\tconst valid = await verifyTotp({ secret, token: code });\n\t\t\t\tif (!valid) {\n\t\t\t\t\treturn status('Bad Request', 'Invalid TOTP code');\n\t\t\t\t}\n\n\t\t\t\tconst { codes, hashes } =\n\t\t\t\t\tawait generateBackupCodes(backupCodeCount);\n\t\t\t\tawait mfaStore.saveEnrollment({\n\t\t\t\t\t...enrollment,\n\t\t\t\t\tbackupCodeHashes: hashes,\n\t\t\t\t\ttotpVerified: true,\n\t\t\t\t\tupdatedAt: Date.now()\n\t\t\t\t});\n\t\t\t\tawait onMfaEnrolled?.({ userId });\n\n\t\t\t\treturn status('OK', { backupCodes: codes });\n\t\t\t},\n\t\t\t{\n\t\t\t\tbody: t.Object({ code: t.String() }),\n\t\t\t\tcookie: t.Cookie({ user_session_id: userSessionIdTypebox })\n\t\t\t}\n\t\t);\n",
35
+ "import {\n\tCredentialsFor,\n\tOAuth2Client,\n\tProviderOption,\n\tisValidProviderOption\n} from 'citra';\nimport {\n\tOAuth2ConfigurationOptions,\n\tOAuth2ProviderClientConfiguration,\n\tClientProviderEntry,\n\tClientProviderGroup\n} from '../types';\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst isProviderClientConfig = <Provider extends ProviderOption>(\n\tvalue: unknown\n): value is OAuth2ProviderClientConfiguration<Provider> =>\n\tisRecord(value) && 'credentials' in value;\n\nexport const buildClientProviders = async (\n\tprovidersConfiguration: OAuth2ConfigurationOptions,\n\tcreateOAuth2ClientFn: <P extends ProviderOption>(\n\t\tproviderName: P,\n\t\tconfig: CredentialsFor<P>\n\t) => Promise<OAuth2Client<P>>\n) => {\n\tconst normalized = normalizeProvidersConfiguration(providersConfiguration);\n\tconst groups = await Promise.all(\n\t\tObject.entries(normalized).map(async ([providerName, clients]) => {\n\t\t\tif (!isValidProviderOption(providerName)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Invalid provider configuration for ${providerName}`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst entries = await Promise.all(\n\t\t\t\tObject.entries(clients).map(\n\t\t\t\t\tasync ([clientName, providerConfig]) => {\n\t\t\t\t\t\tconst providerInstance = await createOAuth2ClientFn(\n\t\t\t\t\t\t\tproviderName,\n\t\t\t\t\t\t\tproviderConfig.credentials\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\tclientName,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tclientName:\n\t\t\t\t\t\t\t\t\tclientName.length > 0\n\t\t\t\t\t\t\t\t\t\t? clientName\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\tproviderInstance,\n\t\t\t\t\t\t\t\tscope: providerConfig.scope,\n\t\t\t\t\t\t\t\tsearchParams: providerConfig.searchParams\n\t\t\t\t\t\t\t} satisfies ClientProviderEntry\n\t\t\t\t\t\t] as const;\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t);\n\n\t\t\treturn [\n\t\t\t\tproviderName,\n\t\t\t\t{\n\t\t\t\t\tentries: Object.fromEntries(entries),\n\t\t\t\t\tisSingleClient:\n\t\t\t\t\t\tentries.length === 1 && entries[0]?.[0] === ''\n\t\t\t\t} satisfies ClientProviderGroup\n\t\t\t] as const;\n\t\t})\n\t);\n\n\treturn Object.fromEntries(groups);\n};\nconst normalizeClientConfig = (\n\tproviderName: string,\n\tclientName: string,\n\tclientConfig: unknown\n) => {\n\tif (!isProviderClientConfig(clientConfig)) {\n\t\tthrow new Error(\n\t\t\t`Invalid client configuration for ${providerName}.${clientName}`\n\t\t);\n\t}\n\n\treturn [clientName, clientConfig] as const;\n};\n\nconst normalizeProviderClients = (\n\tproviderName: string,\n\tproviderConfig: NonNullable<OAuth2ConfigurationOptions[ProviderOption]>\n) => {\n\tif (isProviderClientConfig(providerConfig)) {\n\t\treturn { '': providerConfig };\n\t}\n\n\tif (!isRecord(providerConfig) || Object.keys(providerConfig).length === 0) {\n\t\tthrow new Error(`Invalid provider configuration for ${providerName}`);\n\t}\n\n\treturn Object.fromEntries(\n\t\tObject.entries(providerConfig).map(([clientName, clientConfig]) =>\n\t\t\tnormalizeClientConfig(providerName, clientName, clientConfig)\n\t\t)\n\t);\n};\n\nexport const normalizeProvidersConfiguration = (\n\tprovidersConfiguration: OAuth2ConfigurationOptions\n) => {\n\tconst entries = Object.entries(providersConfiguration).flatMap(\n\t\t([providerName, providerConfig]) => {\n\t\t\tif (!isValidProviderOption(providerName) || !providerConfig) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\treturn [\n\t\t\t\t[\n\t\t\t\t\tproviderName,\n\t\t\t\t\tnormalizeProviderClients(providerName, providerConfig)\n\t\t\t\t] as const\n\t\t\t];\n\t\t}\n\t);\n\n\treturn Object.fromEntries(entries);\n};\nexport const resolveClientProviderEntry = ({\n\tclientName,\n\tclientProviders,\n\tproviderName\n}: {\n\tproviderName: string | undefined;\n\tclientName?: string;\n\tclientProviders: Record<string, ClientProviderGroup>;\n}) => {\n\tif (!providerName) {\n\t\treturn { error: 'Provider is required' as const };\n\t}\n\n\tconst group = clientProviders[providerName];\n\tif (!group) {\n\t\treturn { error: 'Client provider not found' as const };\n\t}\n\n\tif (group.isSingleClient) {\n\t\tconst entry = group.entries[''];\n\t\tif (!entry) {\n\t\t\treturn { error: 'Client provider not found' as const };\n\t\t}\n\n\t\treturn { entry };\n\t}\n\n\tconst requestedClient = clientName?.trim();\n\tif (!requestedClient) {\n\t\treturn { error: 'Client variant is required' as const };\n\t}\n\n\tconst entry = group.entries[requestedClient];\n\tif (!entry) {\n\t\treturn { error: 'Client variant not found' as const };\n\t}\n\n\treturn { entry };\n};\nexport const resolveProviderClientConfiguration = ({\n\tclientName,\n\tproviderName,\n\tprovidersConfiguration\n}: {\n\tproviderName: ProviderOption;\n\tclientName?: string;\n\tprovidersConfiguration: OAuth2ConfigurationOptions;\n}) => {\n\tconst normalized = normalizeProvidersConfiguration(providersConfiguration);\n\tconst clients = normalized[providerName];\n\tif (!clients) {\n\t\treturn { error: 'Client provider not found' as const };\n\t}\n\n\tconst keys = Object.keys(clients);\n\tif (keys.length === 1 && keys[0] === '') {\n\t\treturn { config: clients[''] };\n\t}\n\n\tconst requestedClient = clientName?.trim();\n\tif (!requestedClient) {\n\t\treturn { error: 'Client variant is required' as const };\n\t}\n\n\tconst config = clients[requestedClient];\n\tif (!config) {\n\t\treturn { error: 'Client variant not found' as const };\n\t}\n\n\treturn { config };\n};\n",
36
+ "import {\n\tgenerateCodeVerifier,\n\tgenerateState,\n\tisPKCEProviderOption\n} from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { COOKIE_DURATION } from '../constants';\nimport { resolveClientProviderEntry } from '../providers/clients';\nimport { isAuthIntent } from '../typeGuards';\nimport {\n\tauthClientOption,\n\tauthIntentOption,\n\tauthProviderOption\n} from '../typebox';\nimport {\n\tAuthorizeRoute,\n\tClientProviders,\n\tOnAuthorizeError,\n\tOnAuthorizeSuccess\n} from '../types';\n\ntype AuthorizeProps = {\n\tclientProviders: ClientProviders;\n\tauthorizeRoute?: AuthorizeRoute;\n\tonAuthorizeSuccess: OnAuthorizeSuccess;\n\tonAuthorizeError: OnAuthorizeError;\n};\n\nconst parseReferer = (headerReferer: string | undefined) => {\n\tif (!headerReferer) return '/';\n\n\ttry {\n\t\tconst url = new URL(headerReferer);\n\n\t\treturn url.pathname + url.search;\n\t} catch {\n\t\tif (headerReferer.startsWith('/') && !headerReferer.startsWith('//')) {\n\t\t\treturn headerReferer;\n\t\t}\n\n\t\treturn '/';\n\t}\n};\n\nexport const authorize = ({\n\tclientProviders,\n\tauthorizeRoute = '/oauth2/:provider/authorization',\n\tonAuthorizeSuccess,\n\tonAuthorizeError\n}: AuthorizeProps) =>\n\tnew Elysia().get(\n\t\tauthorizeRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tredirect,\n\t\t\tcookie: {\n\t\t\t\tstate,\n\t\t\t\tcode_verifier,\n\t\t\t\tauth_provider,\n\t\t\t\tauth_client,\n\t\t\t\tauth_intent,\n\t\t\t\torigin_url\n\t\t\t},\n\t\t\tparams: { provider },\n\t\t\tquery: { client, intent },\n\t\t\theaders\n\t\t}) => {\n\t\t\tif (\n\t\t\t\tauth_provider === undefined ||\n\t\t\t\tauth_client === undefined ||\n\t\t\t\tauth_intent === undefined ||\n\t\t\t\torigin_url === undefined ||\n\t\t\t\tstate === undefined ||\n\t\t\t\tcode_verifier === undefined\n\t\t\t)\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\n\t\t\tif (provider === undefined)\n\t\t\t\treturn status('Bad Request', 'Provider is required');\n\n\t\t\tconst resolvedProvider = resolveClientProviderEntry({\n\t\t\t\tclientName: client,\n\t\t\t\tclientProviders,\n\t\t\t\tproviderName: provider\n\t\t\t});\n\t\t\tif ('error' in resolvedProvider) {\n\t\t\t\treturn status('Unauthorized', resolvedProvider.error);\n\t\t\t}\n\n\t\t\tconst { clientName, providerInstance, scope, searchParams } =\n\t\t\t\tresolvedProvider.entry;\n\t\t\tconst referer = parseReferer(headers['referer']);\n\t\t\tconst authIntent = isAuthIntent(intent) ? intent : undefined;\n\n\t\t\torigin_url.set({\n\t\t\t\thttpOnly: true,\n\t\t\t\tmaxAge: COOKIE_DURATION,\n\t\t\t\tpath: '/',\n\t\t\t\tsameSite: 'lax',\n\t\t\t\tsecure: true,\n\t\t\t\tvalue: referer\n\t\t\t});\n\n\t\t\tauth_provider.set({\n\t\t\t\thttpOnly: true,\n\t\t\t\tmaxAge: COOKIE_DURATION,\n\t\t\t\tpath: '/',\n\t\t\t\tsameSite: 'lax',\n\t\t\t\tsecure: true,\n\t\t\t\tvalue: provider\n\t\t\t});\n\n\t\t\tauth_client.set({\n\t\t\t\thttpOnly: true,\n\t\t\t\tmaxAge: COOKIE_DURATION,\n\t\t\t\tpath: '/',\n\t\t\t\tsameSite: 'lax',\n\t\t\t\tsecure: true,\n\t\t\t\tvalue: clientName ?? ''\n\t\t\t});\n\n\t\t\tif (authIntent !== undefined) {\n\t\t\t\tauth_intent.set({\n\t\t\t\t\thttpOnly: true,\n\t\t\t\t\tmaxAge: COOKIE_DURATION,\n\t\t\t\t\tpath: '/',\n\t\t\t\t\tsameSite: 'lax',\n\t\t\t\t\tsecure: true,\n\t\t\t\t\tvalue: authIntent\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tauth_intent.remove();\n\t\t\t}\n\n\t\t\tconst currentState = generateState();\n\t\t\tstate.set({\n\t\t\t\thttpOnly: true,\n\t\t\t\tmaxAge: COOKIE_DURATION,\n\t\t\t\tpath: '/',\n\t\t\t\tsameSite: 'lax',\n\t\t\t\tsecure: true,\n\t\t\t\tvalue: currentState\n\t\t\t});\n\n\t\t\tconst codeVerifier = isPKCEProviderOption(provider)\n\t\t\t\t? generateCodeVerifier()\n\t\t\t\t: undefined;\n\n\t\t\tif (codeVerifier) {\n\t\t\t\tcode_verifier.set({\n\t\t\t\t\thttpOnly: true,\n\t\t\t\t\tmaxAge: COOKIE_DURATION,\n\t\t\t\t\tpath: '/',\n\t\t\t\t\tsameSite: 'lax',\n\t\t\t\t\tsecure: true,\n\t\t\t\t\tvalue: codeVerifier\n\t\t\t\t});\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst authorizationURL =\n\t\t\t\t\tawait providerInstance.createAuthorizationUrl(\n\t\t\t\t\t\tcodeVerifier\n\t\t\t\t\t\t\t? { codeVerifier, scope, state: currentState }\n\t\t\t\t\t\t\t: { scope, state: currentState }\n\t\t\t\t\t);\n\n\t\t\t\tsearchParams?.forEach(([key, value]) =>\n\t\t\t\t\tauthorizationURL.searchParams.set(key, value)\n\t\t\t\t);\n\n\t\t\t\tawait onAuthorizeSuccess?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthIntent,\n\t\t\t\t\tauthorizationUrl: authorizationURL,\n\t\t\t\t\tauthProvider: provider\n\t\t\t\t});\n\n\t\t\t\treturn redirect(authorizationURL.toString());\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t'[authorize] Failed to create authorization URL:',\n\t\t\t\t\t{\n\t\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\t\t\t\tprovider,\n\t\t\t\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tawait onAuthorizeError?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider: provider,\n\t\t\t\t\terror: err\n\t\t\t\t});\n\n\t\t\t\treturn status(\n\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t'Failed to create authorization URL'\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_client: authClientOption,\n\t\t\t\tauth_intent: authIntentOption,\n\t\t\t\tauth_provider: t.Optional(authProviderOption)\n\t\t\t}),\n\t\t\tparams: t.Object({\n\t\t\t\tprovider: authProviderOption\n\t\t\t}),\n\t\t\tquery: t.Object({\n\t\t\t\tclient: authClientOption,\n\t\t\t\tintent: authIntentOption\n\t\t\t})\n\t\t}\n\t);\n",
37
+ "import { isPKCEProviderOption } from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { AuthIdentityConflictError } from '../errors';\nimport { resolveClientProviderEntry } from '../providers/clients';\nimport { createSessionCompatibilityLayer } from '../session/access';\nimport { sessionStore } from '../session/state';\nimport type { AuthSessionStore } from '../session/types';\nimport { isAuthIntent, isNonEmptyString } from '../typeGuards';\nimport {\n\tauthClientOption,\n\tauthIntentOption,\n\tauthProviderOption,\n\tuserSessionIdTypebox\n} from '../typebox';\nimport {\n\tClientProviders,\n\tOnCallbackError,\n\tOnCallbackSuccess,\n\tOnLinkConnector,\n\tOnLinkIdentity,\n\tOnLinkIdentityConflict,\n\tResolveAuthIntent,\n\tRouteString\n} from '../types';\n\ntype CallbackProps<UserType> = {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tclientProviders: ClientProviders;\n\tcallbackRoute?: RouteString;\n\tresolveAuthIntent?: ResolveAuthIntent<UserType>;\n\tonCallbackSuccess: OnCallbackSuccess<UserType>;\n\tonLinkIdentity?: OnLinkIdentity<UserType>;\n\tonLinkIdentityConflict?: OnLinkIdentityConflict<UserType>;\n\tonLinkConnector?: OnLinkConnector<UserType>;\n\tonCallbackError: OnCallbackError;\n};\n\nexport const callback = <UserType>({\n\tauthSessionStore,\n\tclientProviders,\n\tcallbackRoute = '/oauth2/callback',\n\tresolveAuthIntent,\n\tonCallbackSuccess,\n\tonLinkIdentity,\n\tonLinkIdentityConflict,\n\tonLinkConnector,\n\tonCallbackError\n}: CallbackProps<UserType>) =>\n\tnew Elysia().use(sessionStore<UserType>()).get(\n\t\tcallbackRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tredirect,\n\t\t\tstore: { session, unregisteredSession },\n\t\t\tcookie,\n\t\t\tcookie: {\n\t\t\t\tstate: stored_state,\n\t\t\t\tcode_verifier,\n\t\t\t\torigin_url,\n\t\t\t\tuser_session_id,\n\t\t\t\tauth_provider,\n\t\t\t\tauth_client,\n\t\t\t\tauth_intent\n\t\t\t},\n\t\t\tquery: { code, state: callback_state }\n\t\t}) => {\n\t\t\tif (\n\t\t\t\tstored_state === undefined ||\n\t\t\t\tcode_verifier === undefined ||\n\t\t\t\tuser_session_id === undefined ||\n\t\t\t\tauth_client === undefined ||\n\t\t\t\tauth_intent === undefined\n\t\t\t) {\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\t\t\t}\n\n\t\t\tif (!isNonEmptyString(code) || stored_state.value === undefined) {\n\t\t\t\treturn status('Bad Request', 'Invalid callback request');\n\t\t\t}\n\n\t\t\tif (callback_state !== stored_state.value) {\n\t\t\t\treturn status('Bad Request', 'Invalid state mismatch');\n\t\t\t}\n\n\t\t\tconst resolvedProvider = resolveClientProviderEntry({\n\t\t\t\tclientName: auth_client.value || undefined,\n\t\t\t\tclientProviders,\n\t\t\t\tproviderName: auth_provider.value\n\t\t\t});\n\t\t\tif ('error' in resolvedProvider) {\n\t\t\t\treturn status('Unauthorized', resolvedProvider.error);\n\t\t\t}\n\t\t\tconst { clientName, providerInstance } = resolvedProvider.entry;\n\n\t\t\tstored_state.remove();\n\n\t\t\tconst authProvider = auth_provider.value;\n\t\t\tconst requiresPKCE = isPKCEProviderOption(authProvider);\n\t\t\tconst verifier = requiresPKCE ? code_verifier.value : undefined;\n\t\t\tif (requiresPKCE && verifier === undefined) {\n\t\t\t\treturn status(\n\t\t\t\t\t'Bad Request',\n\t\t\t\t\t'Code verifier not found and is required'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst originUrl = origin_url?.value ?? '/';\n\n\t\t\tlet tokenResponse;\n\t\t\ttry {\n\t\t\t\ttokenResponse =\n\t\t\t\t\tawait providerInstance.validateAuthorizationCode(\n\t\t\t\t\t\trequiresPKCE\n\t\t\t\t\t\t\t? { code, codeVerifier: verifier }\n\t\t\t\t\t\t\t: { code }\n\t\t\t\t\t);\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t'[callback] Failed to validate authorization code:',\n\t\t\t\t\t{\n\t\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\t\tauthProvider,\n\t\t\t\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\t\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tawait onCallbackError?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider,\n\t\t\t\t\terror: err,\n\t\t\t\t\toriginUrl\n\t\t\t\t});\n\n\t\t\t\treturn status(\n\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t'Failed to validate authorization code'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst compatibilityLayer = await createSessionCompatibilityLayer({\n\t\t\t\tauthSessionStore,\n\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t});\n\t\t\tconst callbackSession = authSessionStore\n\t\t\t\t? compatibilityLayer.session\n\t\t\t\t: session;\n\t\t\tconst callbackUnregisteredSession = authSessionStore\n\t\t\t\t? compatibilityLayer.unregisteredSession\n\t\t\t\t: unregisteredSession;\n\t\t\tconst currentUser =\n\t\t\t\tuser_session_id.value !== undefined\n\t\t\t\t\t? callbackSession[user_session_id.value]?.user\n\t\t\t\t\t: undefined;\n\t\t\tconst authIntent =\n\t\t\t\t(isAuthIntent(auth_intent.value)\n\t\t\t\t\t? auth_intent.value\n\t\t\t\t\t: undefined) ??\n\t\t\t\t(await resolveAuthIntent?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider,\n\t\t\t\t\tcurrentUser,\n\t\t\t\t\toriginUrl,\n\t\t\t\t\tsession: callbackSession,\n\t\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t\t})) ??\n\t\t\t\t'login';\n\t\t\tauth_intent.remove();\n\n\t\t\tconst userSessionId = user_session_id.value ?? crypto.randomUUID();\n\t\t\tconst callbackContext = {\n\t\t\t\tauthClient: clientName,\n\t\t\t\tauthIntent,\n\t\t\t\tauthProvider,\n\t\t\t\tcookie,\n\t\t\t\tcurrentUser,\n\t\t\t\toriginUrl,\n\t\t\t\tproviderInstance,\n\t\t\t\tredirect,\n\t\t\t\tsession: callbackSession,\n\t\t\t\tstatus,\n\t\t\t\ttokenResponse,\n\t\t\t\tunregisteredSession: callbackUnregisteredSession,\n\t\t\t\tuserSessionId\n\t\t\t} as const;\n\n\t\t\tconst dispatchSuccess = () => {\n\t\t\t\tif (authIntent === 'link_identity' && onLinkIdentity) {\n\t\t\t\t\treturn onLinkIdentity(callbackContext);\n\t\t\t\t}\n\n\t\t\t\tif (authIntent === 'link_connector' && onLinkConnector) {\n\t\t\t\t\treturn onLinkConnector(callbackContext);\n\t\t\t\t}\n\n\t\t\t\treturn onCallbackSuccess?.(callbackContext);\n\t\t\t};\n\n\t\t\tconst handleDispatchError = (err: unknown) => {\n\t\t\t\tif (\n\t\t\t\t\tauthIntent !== 'link_identity' ||\n\t\t\t\t\t!(err instanceof AuthIdentityConflictError) ||\n\t\t\t\t\t!onLinkIdentityConflict\n\t\t\t\t) {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\n\t\t\t\treturn onLinkIdentityConflict({\n\t\t\t\t\t...callbackContext,\n\t\t\t\t\tconflict: {\n\t\t\t\t\t\t...err.conflict,\n\t\t\t\t\t\tintent: authIntent\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tlet response;\n\t\t\ttry {\n\t\t\t\tresponse = await dispatchSuccess();\n\t\t\t} catch (err) {\n\t\t\t\tresponse = await handleDispatchError(err);\n\t\t\t}\n\n\t\t\tif (authSessionStore) {\n\t\t\t\tawait compatibilityLayer.persist();\n\t\t\t}\n\n\t\t\tif (response) {\n\t\t\t\treturn response;\n\t\t\t}\n\n\t\t\treturn redirect(originUrl);\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_client: authClientOption,\n\t\t\t\tauth_intent: authIntentOption,\n\t\t\t\tauth_provider: authProviderOption,\n\t\t\t\tcode_verifier: t.Optional(t.String()),\n\t\t\t\torigin_url: t.Optional(t.String()),\n\t\t\t\tstate: t.Optional(t.String()),\n\t\t\t\tuser_session_id: userSessionIdTypebox\n\t\t\t})\n\t\t}\n\t);\n",
38
+ "import { AuthIntent } from './types';\n\nexport type AuthIdentityConflict = {\n\tauthProvider: string;\n\tproviderSubject: string;\n\texistingUserAuthSub: string;\n\tcurrentUserAuthSub?: string;\n\tintent?: AuthIntent;\n};\n\nexport class AuthIdentityConflictError extends Error {\n\tconflict: AuthIdentityConflict;\n\n\tconstructor(conflict: AuthIdentityConflict) {\n\t\tsuper(\n\t\t\t`${conflict.authProvider} identity ${conflict.providerSubject} is already linked to ${conflict.existingUserAuthSub}`\n\t\t);\n\t\tthis.name = 'AuthIdentityConflictError';\n\t\tthis.conflict = conflict;\n\t}\n}\n",
39
+ "import { isValidProviderOption } from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { resolveClientProviderEntry } from '../providers/clients';\nimport { sessionStore } from '../session/state';\nimport {\n\tauthClientOption,\n\tauthProviderOption,\n\tuserSessionIdTypebox\n} from '../typebox';\nimport {\n\tClientProviders,\n\tOnProfileError,\n\tOnProfileSuccess,\n\tRouteString\n} from '../types';\n\ntype ProfileProps = {\n\tclientProviders: ClientProviders;\n\tprofileRoute?: RouteString;\n\tonProfileSuccess: OnProfileSuccess;\n\tonProfileError: OnProfileError;\n};\n\nexport const profile = <UserType>({\n\tclientProviders,\n\tprofileRoute = '/oauth2/profile',\n\tonProfileSuccess,\n\tonProfileError\n}: ProfileProps) =>\n\tnew Elysia().use(sessionStore<UserType>()).get(\n\t\tprofileRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tstore: { session },\n\t\t\tcookie: { user_session_id, auth_provider, auth_client }\n\t\t}) => {\n\t\t\tif (\n\t\t\t\tauth_provider === undefined ||\n\t\t\t\tauth_client === undefined ||\n\t\t\t\tuser_session_id === undefined\n\t\t\t)\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\n\t\t\tif (auth_provider.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No auth provider found');\n\t\t\t}\n\n\t\t\tif (!isValidProviderOption(auth_provider.value)) {\n\t\t\t\treturn status('Unauthorized', 'Invalid provider');\n\t\t\t}\n\n\t\t\tif (user_session_id.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst resolvedProvider = resolveClientProviderEntry({\n\t\t\t\tclientName: auth_client.value || undefined,\n\t\t\t\tclientProviders,\n\t\t\t\tproviderName: auth_provider.value\n\t\t\t});\n\t\t\tif ('error' in resolvedProvider) {\n\t\t\t\treturn status('Unauthorized', resolvedProvider.error);\n\t\t\t}\n\t\t\tconst { clientName, providerInstance } = resolvedProvider.entry;\n\n\t\t\tconst userSession = session[user_session_id.value];\n\n\t\t\tif (userSession === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst { accessToken } = userSession;\n\n\t\t\tif (accessToken === undefined) {\n\t\t\t\treturn status(\n\t\t\t\t\t'Bad Request',\n\t\t\t\t\t'Session has no access token to fetch a profile'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst userProfile =\n\t\t\t\t\tawait providerInstance.fetchUserProfile(accessToken);\n\n\t\t\t\tawait onProfileSuccess?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\tuserProfile\n\t\t\t\t});\n\n\t\t\t\treturn new Response(JSON.stringify(userProfile));\n\t\t\t} catch (err) {\n\t\t\t\tawait onProfileError?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err\n\t\t\t\t});\n\n\t\t\t\treturn err instanceof Error\n\t\t\t\t\t? status(\n\t\t\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t\t\t`${err.message} - ${err.stack ?? ''}`\n\t\t\t\t\t\t)\n\t\t\t\t\t: status(\n\t\t\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t\t\t`Failed to validate authorization code: Unknown status: ${err}`\n\t\t\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_client: authClientOption,\n\t\t\t\tauth_provider: authProviderOption,\n\t\t\t\tuser_session_id: userSessionIdTypebox\n\t\t\t})\n\t\t}\n\t);\n",
40
+ "import { isRefreshableOAuth2Client, isValidProviderOption } from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { MILLISECONDS_IN_A_DAY } from '../constants';\nimport { resolveClientProviderEntry } from '../providers/clients';\nimport { loadSessionFromSource } from '../session/access';\nimport { sessionStore } from '../session/state';\nimport type { AuthSessionStore } from '../session/types';\nimport {\n\tauthClientOption,\n\tauthProviderOption,\n\tuserSessionIdTypebox\n} from '../typebox';\nimport {\n\tClientProviders,\n\tOnRefreshError,\n\tOnRefreshSuccess,\n\tRouteString\n} from '../types';\n\ntype RefreshProps<UserType> = {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tclientProviders: ClientProviders;\n\trefreshRoute?: RouteString;\n\tonRefreshSuccess: OnRefreshSuccess;\n\tonRefreshError: OnRefreshError;\n\tsessionDurationMs?: number;\n};\n\nexport const refresh = <UserType>({\n\tauthSessionStore,\n\tclientProviders,\n\trefreshRoute = '/oauth2/tokens',\n\tonRefreshSuccess,\n\tonRefreshError,\n\tsessionDurationMs = MILLISECONDS_IN_A_DAY\n}: RefreshProps<UserType>) =>\n\tnew Elysia().use(sessionStore<UserType>()).post(\n\t\trefreshRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tstore: { session },\n\t\t\tcookie: { user_session_id, auth_provider, auth_client }\n\t\t}) => {\n\t\t\tif (\n\t\t\t\tauth_provider === undefined ||\n\t\t\t\tauth_client === undefined ||\n\t\t\t\tuser_session_id === undefined\n\t\t\t)\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\n\t\t\tif (auth_provider.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No auth provider found');\n\t\t\t}\n\n\t\t\tif (!isValidProviderOption(auth_provider.value)) {\n\t\t\t\treturn status('Bad Request', 'Invalid provider');\n\t\t\t}\n\n\t\t\tif (user_session_id.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst resolvedProvider = resolveClientProviderEntry({\n\t\t\t\tclientName: auth_client.value || undefined,\n\t\t\t\tclientProviders,\n\t\t\t\tproviderName: auth_provider.value\n\t\t\t});\n\t\t\tif ('error' in resolvedProvider) {\n\t\t\t\treturn status('Unauthorized', resolvedProvider.error);\n\t\t\t}\n\t\t\tconst { clientName, providerInstance } = resolvedProvider.entry;\n\n\t\t\tconst userSession = await loadSessionFromSource({\n\t\t\t\tauthSessionStore,\n\t\t\t\tsession,\n\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t});\n\n\t\t\tif (userSession === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst { refreshToken } = userSession;\n\n\t\t\tif (\n\t\t\t\t!isRefreshableOAuth2Client(\n\t\t\t\t\tauth_provider.value,\n\t\t\t\t\tproviderInstance\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn status('Not Implemented', 'Provider is not refreshable');\n\t\t\t}\n\n\t\t\tif (refreshToken === undefined) {\n\t\t\t\treturn status('Bad Request', 'No refresh token found');\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst tokenResponse =\n\t\t\t\t\tawait providerInstance.refreshAccessToken(refreshToken);\n\n\t\t\t\tuserSession.accessToken = tokenResponse.access_token;\n\t\t\t\tuserSession.expiresAt = Date.now() + sessionDurationMs;\n\t\t\t\tuserSession.refreshToken =\n\t\t\t\t\ttokenResponse.refresh_token ?? userSession.refreshToken;\n\n\t\t\t\tawait authSessionStore?.setSession(\n\t\t\t\t\tuser_session_id.value,\n\t\t\t\t\tuserSession\n\t\t\t\t);\n\n\t\t\t\tawait onRefreshSuccess?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\ttokenResponse\n\t\t\t\t});\n\n\t\t\t\treturn new Response('Token refreshed', {\n\t\t\t\t\tstatus: 204\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error('[refresh] Failed to refresh token:', {\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t\t\t});\n\n\t\t\t\tawait onRefreshError?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err\n\t\t\t\t});\n\n\t\t\t\treturn status(\n\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t'Failed to refresh token'\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_client: authClientOption,\n\t\t\t\tauth_provider: authProviderOption,\n\t\t\t\tuser_session_id: userSessionIdTypebox\n\t\t\t})\n\t\t}\n\t);\n",
41
+ "import { isRevocableOAuth2Client, isValidProviderOption } from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { resolveClientProviderEntry } from '../providers/clients';\nimport { loadSessionFromSource } from '../session/access';\nimport { sessionStore } from '../session/state';\nimport type { AuthSessionStore } from '../session/types';\nimport {\n\tauthClientOption,\n\tauthProviderOption,\n\tuserSessionIdTypebox\n} from '../typebox';\nimport {\n\tClientProviders,\n\tOnRevocationError,\n\tOnRevocationSuccess,\n\tRouteString\n} from '../types';\n\ntype RevokeProps<UserType> = {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tclientProviders: ClientProviders;\n\trevokeRoute?: RouteString;\n\tonRevocationSuccess: OnRevocationSuccess;\n\tonRevocationError: OnRevocationError;\n};\n\nexport const revoke = <UserType>({\n\tauthSessionStore,\n\tclientProviders,\n\trevokeRoute = '/oauth2/revocation',\n\tonRevocationSuccess,\n\tonRevocationError\n}: RevokeProps<UserType>) =>\n\tnew Elysia().use(sessionStore<UserType>()).post(\n\t\trevokeRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tstore: { session },\n\t\t\tcookie: { user_session_id, auth_provider, auth_client }\n\t\t}) => {\n\t\t\tif (\n\t\t\t\tauth_provider === undefined ||\n\t\t\t\tauth_client === undefined ||\n\t\t\t\tuser_session_id === undefined\n\t\t\t)\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\n\t\t\tif (auth_provider.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No auth provider found');\n\t\t\t}\n\n\t\t\tif (!isValidProviderOption(auth_provider.value)) {\n\t\t\t\treturn status('Bad Request', 'Invalid provider');\n\t\t\t}\n\n\t\t\tif (user_session_id.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst resolvedProvider = resolveClientProviderEntry({\n\t\t\t\tclientName: auth_client.value || undefined,\n\t\t\t\tclientProviders,\n\t\t\t\tproviderName: auth_provider.value\n\t\t\t});\n\t\t\tif ('error' in resolvedProvider) {\n\t\t\t\treturn status('Unauthorized', resolvedProvider.error);\n\t\t\t}\n\t\t\tconst { clientName, providerInstance } = resolvedProvider.entry;\n\n\t\t\tif (\n\t\t\t\t!isRevocableOAuth2Client(auth_provider.value, providerInstance)\n\t\t\t) {\n\t\t\t\treturn status(\n\t\t\t\t\t'Not Implemented',\n\t\t\t\t\t'Provider does not support revocation'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst userSession = await loadSessionFromSource({\n\t\t\t\tauthSessionStore,\n\t\t\t\tsession,\n\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t});\n\n\t\t\tif (userSession === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst { accessToken } = userSession;\n\n\t\t\tif (accessToken === undefined) {\n\t\t\t\treturn status(\n\t\t\t\t\t'Bad Request',\n\t\t\t\t\t'Session has no access token to revoke'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tawait providerInstance.revokeToken(accessToken);\n\n\t\t\t\tawait onRevocationSuccess?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\ttokenToRevoke: accessToken\n\t\t\t\t});\n\n\t\t\t\treturn new Response('Token revoked', {\n\t\t\t\t\tstatus: 204\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error('[revoke] Failed to revoke token:', {\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t\t\t});\n\n\t\t\t\tawait onRevocationError?.({\n\t\t\t\t\tauthClient: clientName,\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err\n\t\t\t\t});\n\n\t\t\t\treturn status(\n\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t'Failed to revoke token'\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_client: authClientOption,\n\t\t\t\tauth_provider: authProviderOption,\n\t\t\t\tuser_session_id: userSessionIdTypebox\n\t\t\t})\n\t\t}\n\t);\n",
42
+ "import { Elysia, t } from 'elysia';\nimport { loadSessionFromSource } from '../session/access';\nimport type { SessionsRouteProps } from '../session/sessionsConfig';\nimport { sessionStore } from '../session/state';\nimport { listUserSessions } from '../session/userSessions';\nimport { isUserSessionId } from '../typeGuards';\nimport { userSessionIdTypebox } from '../typebox';\nimport type { UserSessionId } from '../types';\n\ntype SessionSummary = {\n\tauthenticatedAt?: number;\n\tcurrent: boolean;\n\texpiresAt: number;\n\tid: UserSessionId;\n};\n\n// `GET /auth/sessions` lists the caller's active sessions; `DELETE /auth/sessions/:id`\n// revokes one the caller owns. Both require an `authSessionStore` (the source that can\n// enumerate sessions).\nexport const sessionRoutes = <UserType>({\n\tauthSessionStore,\n\tgetUserId,\n\tsessionsRoute = '/auth/sessions'\n}: SessionsRouteProps<UserType>) =>\n\tnew Elysia()\n\t\t.use(sessionStore<UserType>())\n\t\t.get(\n\t\t\tsessionsRoute,\n\t\t\tasync ({ cookie: { user_session_id }, status, store: { session } }) => {\n\t\t\t\tif (!authSessionStore) {\n\t\t\t\t\treturn status(\n\t\t\t\t\t\t'Not Implemented',\n\t\t\t\t\t\t'Session management requires an authSessionStore'\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst current = await loadSessionFromSource({\n\t\t\t\t\tauthSessionStore,\n\t\t\t\t\tsession,\n\t\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t\t});\n\t\t\t\tif (!current) {\n\t\t\t\t\treturn status('Unauthorized', 'Authentication required');\n\t\t\t\t}\n\n\t\t\t\tconst sessions = await listUserSessions({\n\t\t\t\t\tauthSessionStore,\n\t\t\t\t\tgetUserId,\n\t\t\t\t\tuserId: getUserId(current.user)\n\t\t\t\t});\n\t\t\t\tconst list: SessionSummary[] = sessions.map((entry) => ({\n\t\t\t\t\tauthenticatedAt: entry.session.authenticatedAt,\n\t\t\t\t\tcurrent: entry.id === user_session_id.value,\n\t\t\t\t\texpiresAt: entry.session.expiresAt,\n\t\t\t\t\tid: entry.id\n\t\t\t\t}));\n\n\t\t\t\treturn status('OK', { sessions: list });\n\t\t\t},\n\t\t\t{ cookie: t.Cookie({ user_session_id: userSessionIdTypebox }) }\n\t\t)\n\t\t.delete(\n\t\t\t`${sessionsRoute}/:id`,\n\t\t\tasync ({\n\t\t\t\tcookie: { user_session_id },\n\t\t\t\tparams: { id },\n\t\t\t\tstatus,\n\t\t\t\tstore: { session }\n\t\t\t}) => {\n\t\t\t\tif (!authSessionStore) {\n\t\t\t\t\treturn status(\n\t\t\t\t\t\t'Not Implemented',\n\t\t\t\t\t\t'Session management requires an authSessionStore'\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst current = await loadSessionFromSource({\n\t\t\t\t\tauthSessionStore,\n\t\t\t\t\tsession,\n\t\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t\t});\n\t\t\t\tif (!current) {\n\t\t\t\t\treturn status('Unauthorized', 'Authentication required');\n\t\t\t\t}\n\t\t\t\tif (!isUserSessionId(id)) {\n\t\t\t\t\treturn status('Bad Request', 'Invalid session id');\n\t\t\t\t}\n\n\t\t\t\tconst target = await authSessionStore.getSession(id);\n\t\t\t\tif (!target || getUserId(target.user) !== getUserId(current.user)) {\n\t\t\t\t\treturn status('Not Found', 'Session not found');\n\t\t\t\t}\n\n\t\t\t\tawait authSessionStore.removeSession(id);\n\n\t\t\t\treturn status('OK', { revoked: id });\n\t\t\t},\n\t\t\t{\n\t\t\t\tcookie: t.Cookie({ user_session_id: userSessionIdTypebox }),\n\t\t\t\tparams: t.Object({ id: t.String() })\n\t\t\t}\n\t\t);\n",
43
+ "import type { SessionData, UserSessionId } from '../types';\nimport type { AuthSessionStore } from './types';\n\nexport type UserSession<UserType> = {\n\tid: UserSessionId;\n\tsession: SessionData<UserType>;\n};\n\ntype ListUserSessionsProps<UserType> = {\n\tauthSessionStore: AuthSessionStore<UserType>;\n\tgetUserId: (user: UserType) => string;\n\tuserId: string;\n};\n\n// Finds every active session belonging to a user by scanning `listSessionIds` and\n// matching `getUserId`. O(n) over sessions — fine for list/revoke; a user→sessions index\n// can replace it later if needed.\nexport const listUserSessions = async <UserType>({\n\tauthSessionStore,\n\tgetUserId,\n\tuserId\n}: ListUserSessionsProps<UserType>) => {\n\tconst ids = (await authSessionStore.listSessionIds?.()) ?? [];\n\tconst records = await Promise.all(\n\t\tids.map((id) => authSessionStore.getSession(id))\n\t);\n\n\treturn ids\n\t\t.map((id, index) => ({ id, session: records[index] }))\n\t\t.filter(\n\t\t\t(entry): entry is UserSession<UserType> =>\n\t\t\t\tentry.session !== undefined &&\n\t\t\t\tgetUserId(entry.session.user) === userId\n\t\t);\n};\n\nexport const revokeUserSessions = async <UserType>({\n\tauthSessionStore,\n\texceptSessionId,\n\tgetUserId,\n\tuserId\n}: ListUserSessionsProps<UserType> & {\n\texceptSessionId?: UserSessionId;\n}) => {\n\tconst sessions = await listUserSessions({\n\t\tauthSessionStore,\n\t\tgetUserId,\n\t\tuserId\n\t});\n\tconst targets = sessions.filter((entry) => entry.id !== exceptSessionId);\n\tawait Promise.all(\n\t\ttargets.map((entry) => authSessionStore.removeSession(entry.id))\n\t);\n\n\treturn targets.length;\n};\n",
44
+ "import { Elysia, t } from 'elysia';\nimport { loadSessionFromSource } from '../session/access';\nimport { sessionStore } from '../session/state';\nimport type { AuthSessionStore } from '../session/types';\nimport { userSessionIdTypebox } from '../typebox';\n\ntype ReauthFailError = {\n\treadonly code: 'Unauthorized';\n\treadonly message: 'Recent authentication required';\n};\n\n// Step-up re-auth, usable alongside `protectRoute`. `requireRecentAuth(maxAgeMs, …)`\n// runs the handler only when the session was authenticated within the window — a token\n// refresh does NOT count, so sensitive actions can demand a fresh login / MFA.\nexport const stepUpPlugin = <UserType>({\n\tauthSessionStore\n}: {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n} = {}) =>\n\tnew Elysia()\n\t\t.use(sessionStore<UserType>())\n\t\t.guard({ cookie: t.Cookie({ user_session_id: userSessionIdTypebox }) })\n\t\t.derive(\n\t\t\t({ store: { session }, cookie: { user_session_id }, status }) => ({\n\t\t\t\trequireRecentAuth: <AuthReturn, AuthFailReturn>(\n\t\t\t\t\tmaxAgeMs: number,\n\t\t\t\t\thandleAuth: (\n\t\t\t\t\t\tuser: UserType\n\t\t\t\t\t) => AuthReturn | Promise<AuthReturn>,\n\t\t\t\t\thandleAuthFail?: (error: ReauthFailError) => AuthFailReturn\n\t\t\t\t) =>\n\t\t\t\t\tloadSessionFromSource<UserType>({\n\t\t\t\t\t\tauthSessionStore,\n\t\t\t\t\t\tsession,\n\t\t\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t\t\t}).then((userSession) => {\n\t\t\t\t\t\tconst authenticatedAt = userSession?.authenticatedAt;\n\t\t\t\t\t\tconst isRecent =\n\t\t\t\t\t\t\tauthenticatedAt !== undefined &&\n\t\t\t\t\t\t\tDate.now() - authenticatedAt <= maxAgeMs;\n\n\t\t\t\t\t\tif (!userSession || !isRecent) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\thandleAuthFail?.({\n\t\t\t\t\t\t\t\t\tcode: 'Unauthorized',\n\t\t\t\t\t\t\t\t\tmessage: 'Recent authentication required'\n\t\t\t\t\t\t\t\t}) ??\n\t\t\t\t\t\t\t\tstatus(\n\t\t\t\t\t\t\t\t\t'Unauthorized',\n\t\t\t\t\t\t\t\t\t'Recent authentication required'\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn handleAuth(userSession.user);\n\t\t\t\t\t})\n\t\t\t})\n\t\t)\n\t\t.as('global');\n",
45
+ "import { Elysia, t } from 'elysia';\nimport { createSessionCompatibilityLayer } from '../session/access';\nimport { sessionStore } from '../session/state';\nimport type { AuthSessionStore } from '../session/types';\nimport { authProviderOption } from '../typebox';\nimport { OnSignOut, RouteString } from '../types';\n\ntype SignOutProps<UserType> = {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tsignoutRoute?: RouteString;\n\tonSignOut: OnSignOut<UserType>;\n};\n\nconst runSignOut = async <UserType>(\n\tonSignOut: OnSignOut<UserType>,\n\targs: Parameters<NonNullable<OnSignOut<UserType>>>[0]\n) => {\n\ttry {\n\t\tawait onSignOut?.(args);\n\n\t\treturn true;\n\t} catch (err) {\n\t\tconsole.error('[signout] Sign out operation failed:', {\n\t\t\tauthProvider: args.authProvider,\n\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t});\n\n\t\treturn false;\n\t}\n};\n\nexport const signout = <UserType>({\n\tauthSessionStore,\n\tsignoutRoute = '/oauth2/signout',\n\tonSignOut\n}: SignOutProps<UserType>) =>\n\tnew Elysia().use(sessionStore<UserType>()).delete(\n\t\tsignoutRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tstore: { session },\n\t\t\tcookie: { user_session_id, auth_provider }\n\t\t}) => {\n\t\t\tif (auth_provider === undefined || user_session_id === undefined) {\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\t\t\t}\n\n\t\t\tif (auth_provider.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No auth provider found');\n\t\t\t}\n\t\t\tif (user_session_id.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session id found');\n\t\t\t}\n\n\t\t\tconst compatibilityLayer = await createSessionCompatibilityLayer({\n\t\t\t\tauthSessionStore,\n\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t});\n\t\t\tconst signoutSession = authSessionStore\n\t\t\t\t? compatibilityLayer.session\n\t\t\t\t: session;\n\t\t\tconst currentSession = signoutSession[user_session_id.value];\n\n\t\t\tif (currentSession !== undefined) {\n\t\t\t\tconst signedOut = await runSignOut(onSignOut, {\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\tsession: signoutSession,\n\t\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t\t});\n\t\t\t\tif (!signedOut) {\n\t\t\t\t\treturn status(\n\t\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t\t'Sign out operation failed'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdelete signoutSession[user_session_id.value];\n\t\t\tif (authSessionStore) {\n\t\t\t\tawait compatibilityLayer.persist();\n\t\t\t\tawait authSessionStore.removeSession(user_session_id.value);\n\t\t\t\tawait authSessionStore.removeUnregisteredSession(\n\t\t\t\t\tuser_session_id.value\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdelete session[user_session_id.value];\n\t\t\t}\n\n\t\t\tuser_session_id.remove();\n\t\t\tauth_provider.remove();\n\n\t\t\treturn new Response(null, { status: 204 });\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_provider: t.Optional(authProviderOption),\n\t\t\t\tuser_session_id: t.Optional(\n\t\t\t\t\tt.TemplateLiteral(\n\t\t\t\t\t\t'${string}-${string}-${string}-${string}-${string}'\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t})\n\t\t}\n\t);\n",
46
+ "import { Elysia, t } from 'elysia';\nimport { getStatusFromSource } from '../session/access';\nimport { sessionStore } from '../session/state';\nimport type { AuthSessionStore } from '../session/types';\nimport { userSessionIdTypebox } from '../typebox';\nimport { OnStatus, RouteString } from '../types';\n\ntype StatusProps<UserType> = {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tstatusRoute?: RouteString;\n\tonStatus: OnStatus<UserType>;\n};\n\nexport const userStatus = <UserType>({\n\tauthSessionStore,\n\tstatusRoute = '/oauth2/status',\n\tonStatus\n}: StatusProps<UserType>) =>\n\tnew Elysia().use(sessionStore<UserType>()).get(\n\t\tstatusRoute,\n\t\tasync ({ status, cookie: { user_session_id }, store: { session } }) => {\n\t\t\tconst { user, error } = await getStatusFromSource<UserType>({\n\t\t\t\tauthSessionStore,\n\t\t\t\tsession,\n\t\t\t\tuser_session_id\n\t\t\t});\n\n\t\t\tif (error) {\n\t\t\t\treturn status(error.code, error.message);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tawait onStatus?.({ user });\n\t\t\t} catch (err) {\n\t\t\t\treturn err instanceof Error\n\t\t\t\t\t? status(\n\t\t\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t\t\t`Error: ${err.message} - ${err.stack ?? ''}`\n\t\t\t\t\t\t)\n\t\t\t\t\t: status(\n\t\t\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t\t\t`Unknown Error: ${String(err)}`\n\t\t\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn { user };\n\t\t},\n\t\t{ cookie: t.Cookie({ user_session_id: userSessionIdTypebox }) }\n\t);\n",
47
+ "import { Elysia } from 'elysia';\nimport { DEFAULT_MAX_SESSIONS, MILLISECONDS_IN_AN_HOUR } from '../constants';\nimport { isUserSessionId } from '../typeGuards';\nimport type {\n\tOnSessionCleanup,\n\tSessionData,\n\tSessionRecord,\n\tUnregisteredSessionData,\n\tUnregisteredSessionRecord,\n\tUserSessionId\n} from '../types';\nimport { sessionStore } from './state';\nimport type { AuthSessionStore } from './types';\n\ntype SessionCleanupProps<UserType> = {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tcleanupIntervalMs?: number;\n\tmaxSessions?: number;\n\tonSessionCleanup?: OnSessionCleanup<UserType>;\n};\n\nexport const sessionCleanup = <UserType>({\n\tauthSessionStore,\n\tcleanupIntervalMs = MILLISECONDS_IN_AN_HOUR,\n\tmaxSessions = DEFAULT_MAX_SESSIONS,\n\tonSessionCleanup\n}: SessionCleanupProps<UserType>) => {\n\tlet intervalId: ReturnType<typeof setInterval> | null = null;\n\n\treturn new Elysia({ name: 'sessionCleanup' })\n\t\t.use(sessionStore<UserType>())\n\t\t.onStart(({ store: { session, unregisteredSession } }) => {\n\t\t\tintervalId = setInterval(async () => {\n\t\t\t\tawait performCleanup({\n\t\t\t\t\tauthSessionStore,\n\t\t\t\t\tmaxSessions,\n\t\t\t\t\tonSessionCleanup,\n\t\t\t\t\tsession,\n\t\t\t\t\tunregisteredSession\n\t\t\t\t});\n\t\t\t}, cleanupIntervalMs);\n\t\t})\n\t\t.onStop(() => {\n\t\t\tif (intervalId) {\n\t\t\t\tclearInterval(intervalId);\n\t\t\t\tintervalId = null;\n\t\t\t}\n\t\t})\n\t\t.derive(({ store: { session, unregisteredSession } }) => ({\n\t\t\tcleanupSessions: async () => {\n\t\t\t\tawait performCleanup({\n\t\t\t\t\tauthSessionStore,\n\t\t\t\t\tmaxSessions,\n\t\t\t\t\tonSessionCleanup,\n\t\t\t\t\tsession,\n\t\t\t\t\tunregisteredSession\n\t\t\t\t});\n\t\t\t}\n\t\t}))\n\t\t.as('global');\n};\n\nconst collectValidSessionEntries = <UserType>(\n\tsession: SessionRecord<UserType>\n) => {\n\tconst entries: [UserSessionId, SessionData<UserType>][] = [];\n\tfor (const [key, value] of Object.entries(session)) {\n\t\tif (!isUserSessionId(key)) continue;\n\t\tentries.push([key, value]);\n\t}\n\n\treturn entries;\n};\n\nconst collectValidUnregisteredEntries = (\n\tunregisteredSession: UnregisteredSessionRecord\n) => {\n\tconst entries: [UserSessionId, UnregisteredSessionData][] = [];\n\tfor (const [key, value] of Object.entries(unregisteredSession)) {\n\t\tif (!isUserSessionId(key)) continue;\n\t\tentries.push([key, value]);\n\t}\n\n\treturn entries;\n};\n\nconst removeExpiredSessions = <UserType>(\n\tvalidEntries: [UserSessionId, SessionData<UserType>][],\n\tsession: SessionRecord<UserType>,\n\tnow: number\n) => {\n\tconst removed = new Map<UserSessionId, SessionData<UserType>>();\n\tfor (const [sessionId, userSession] of validEntries) {\n\t\tif (userSession.expiresAt >= now) continue;\n\t\tremoved.set(sessionId, userSession);\n\t\tdelete session[sessionId];\n\t}\n\n\treturn removed;\n};\n\nconst removeExpiredUnregisteredSessions = (\n\tvalidEntries: [UserSessionId, UnregisteredSessionData][],\n\tunregisteredSession: UnregisteredSessionRecord,\n\tnow: number\n) => {\n\tconst removed = new Map<UserSessionId, UnregisteredSessionData>();\n\tfor (const [sessionId, unregSession] of validEntries) {\n\t\tif (unregSession.expiresAt >= now) continue;\n\t\tremoved.set(sessionId, unregSession);\n\t\tdelete unregisteredSession[sessionId];\n\t}\n\n\treturn removed;\n};\n\nconst evictExcessSessions = <UserType>(\n\tremainingEntries: [UserSessionId, SessionData<UserType>][],\n\tsession: SessionRecord<UserType>,\n\tmaxSessions: number,\n\tremovedSessions: Map<UserSessionId, SessionData<UserType>>\n) => {\n\tconst excessCount = remainingEntries.length - maxSessions;\n\tif (excessCount <= 0) return;\n\n\tconst sortedByExpiry = remainingEntries.sort(\n\t\t([, entryA], [, entryB]) => entryA.expiresAt - entryB.expiresAt\n\t);\n\tconst toEvict = sortedByExpiry.slice(0, excessCount);\n\n\tfor (const [key, value] of toEvict) {\n\t\tremovedSessions.set(key, value);\n\t\tdelete session[key];\n\t}\n};\n\nconst evictExcessUnregisteredSessions = (\n\tremainingEntries: [UserSessionId, UnregisteredSessionData][],\n\tunregisteredSession: UnregisteredSessionRecord,\n\tmaxSessions: number,\n\tremovedUnregisteredSessions: Map<UserSessionId, UnregisteredSessionData>\n) => {\n\tconst excessCount = remainingEntries.length - maxSessions;\n\tif (excessCount <= 0) return;\n\n\tconst sortedByExpiry = remainingEntries.sort(\n\t\t([, entryA], [, entryB]) => entryA.expiresAt - entryB.expiresAt\n\t);\n\tconst toEvict = sortedByExpiry.slice(0, excessCount);\n\n\tfor (const [key, value] of toEvict) {\n\t\tremovedUnregisteredSessions.set(key, value);\n\t\tdelete unregisteredSession[key];\n\t}\n};\n\nconst performRecordCleanup = async <UserType>({\n\tmaxSessions,\n\tonSessionCleanup,\n\tsession,\n\tunregisteredSession\n}: {\n\tmaxSessions: number;\n\tonSessionCleanup?: OnSessionCleanup<UserType>;\n\tsession: SessionRecord<UserType>;\n\tunregisteredSession: UnregisteredSessionRecord;\n}) => {\n\tconst now = Date.now();\n\n\tconst validSessionEntries = collectValidSessionEntries(session);\n\tconst removedSessions = removeExpiredSessions(\n\t\tvalidSessionEntries,\n\t\tsession,\n\t\tnow\n\t);\n\n\tconst validUnregisteredEntries =\n\t\tcollectValidUnregisteredEntries(unregisteredSession);\n\tconst removedUnregisteredSessions = removeExpiredUnregisteredSessions(\n\t\tvalidUnregisteredEntries,\n\t\tunregisteredSession,\n\t\tnow\n\t);\n\n\tconst remainingEntries = validSessionEntries.filter(\n\t\t([key]) => !removedSessions.has(key)\n\t);\n\tevictExcessSessions(\n\t\tremainingEntries,\n\t\tsession,\n\t\tmaxSessions,\n\t\tremovedSessions\n\t);\n\n\tconst remainingUnregistered = validUnregisteredEntries.filter(\n\t\t([key]) => !removedUnregisteredSessions.has(key)\n\t);\n\tevictExcessUnregisteredSessions(\n\t\tremainingUnregistered,\n\t\tunregisteredSession,\n\t\tmaxSessions,\n\t\tremovedUnregisteredSessions\n\t);\n\n\ttry {\n\t\tawait onSessionCleanup?.({\n\t\t\tremovedSessions,\n\t\t\tremovedUnregisteredSessions\n\t\t});\n\t} catch (err) {\n\t\tconsole.error('[sessionCleanup] onSessionCleanup handler failed:', err);\n\t}\n};\n\nconst loadStoreSessions = async <UserType>(\n\tauthSessionStore: AuthSessionStore<UserType>\n) => {\n\tconst sessionIds = await authSessionStore.listSessionIds?.();\n\tif (!sessionIds) return null;\n\n\tconst loaded = await Promise.all(\n\t\tsessionIds.map(\n\t\t\tasync (sessionId) =>\n\t\t\t\t[\n\t\t\t\t\tsessionId,\n\t\t\t\t\tawait authSessionStore.getSession(sessionId)\n\t\t\t\t] as const\n\t\t)\n\t);\n\n\treturn loaded.filter(\n\t\t(entry): entry is [UserSessionId, SessionData<UserType>] =>\n\t\t\tentry[1] !== undefined\n\t);\n};\n\nconst loadStoreUnregisteredSessions = async <UserType>(\n\tauthSessionStore: AuthSessionStore<UserType>\n) => {\n\tconst sessionIds = await authSessionStore.listUnregisteredSessionIds?.();\n\tif (!sessionIds) return null;\n\n\tconst loaded = await Promise.all(\n\t\tsessionIds.map(\n\t\t\tasync (sessionId) =>\n\t\t\t\t[\n\t\t\t\t\tsessionId,\n\t\t\t\t\tawait authSessionStore.getUnregisteredSession(sessionId)\n\t\t\t\t] as const\n\t\t)\n\t);\n\n\treturn loaded.filter(\n\t\t(entry): entry is [UserSessionId, UnregisteredSessionData] =>\n\t\t\tentry[1] !== undefined\n\t);\n};\n\nconst selectOverflow = <Entry extends [UserSessionId, { expiresAt: number }]>(\n\tremainingEntries: Entry[],\n\tmaxSessions: number\n) => {\n\tif (remainingEntries.length <= maxSessions) return [];\n\n\treturn [...remainingEntries]\n\t\t.sort(([, left], [, right]) => left.expiresAt - right.expiresAt)\n\t\t.slice(0, remainingEntries.length - maxSessions);\n};\n\nconst performStoreCleanup = async <UserType>({\n\tauthSessionStore,\n\tmaxSessions,\n\tonSessionCleanup\n}: {\n\tauthSessionStore: AuthSessionStore<UserType>;\n\tmaxSessions: number;\n\tonSessionCleanup?: OnSessionCleanup<UserType>;\n}) => {\n\tconst now = Date.now();\n\tconst sessionEntries = await loadStoreSessions(authSessionStore);\n\tconst unregisteredEntries =\n\t\tawait loadStoreUnregisteredSessions(authSessionStore);\n\tif (!sessionEntries || !unregisteredEntries) {\n\t\treturn;\n\t}\n\n\tconst removedSessions = new Map<UserSessionId, SessionData<UserType>>();\n\tconst removedUnregisteredSessions = new Map<\n\t\tUserSessionId,\n\t\tUnregisteredSessionData\n\t>();\n\n\tconst remainingSessions = sessionEntries.filter(([sessionId, session]) => {\n\t\tif (session.expiresAt >= now) return true;\n\t\tremovedSessions.set(sessionId, session);\n\n\t\treturn false;\n\t});\n\tawait Promise.all(\n\t\t[...removedSessions.keys()].map((sessionId) =>\n\t\t\tauthSessionStore.removeSession(sessionId)\n\t\t)\n\t);\n\n\tconst remainingUnregistered = unregisteredEntries.filter(\n\t\t([sessionId, session]) => {\n\t\t\tif (session.expiresAt >= now) return true;\n\t\t\tremovedUnregisteredSessions.set(sessionId, session);\n\n\t\t\treturn false;\n\t\t}\n\t);\n\tawait Promise.all(\n\t\t[...removedUnregisteredSessions.keys()].map((sessionId) =>\n\t\t\tauthSessionStore.removeUnregisteredSession(sessionId)\n\t\t)\n\t);\n\n\tconst sessionOverflow = selectOverflow(remainingSessions, maxSessions);\n\tawait Promise.all(\n\t\tsessionOverflow.map(([sessionId, session]) => {\n\t\t\tremovedSessions.set(sessionId, session);\n\n\t\t\treturn authSessionStore.removeSession(sessionId);\n\t\t})\n\t);\n\n\tconst unregisteredOverflow = selectOverflow(\n\t\tremainingUnregistered,\n\t\tmaxSessions\n\t);\n\tawait Promise.all(\n\t\tunregisteredOverflow.map(([sessionId, session]) => {\n\t\t\tremovedUnregisteredSessions.set(sessionId, session);\n\n\t\t\treturn authSessionStore.removeUnregisteredSession(sessionId);\n\t\t})\n\t);\n\n\ttry {\n\t\tawait onSessionCleanup?.({\n\t\t\tremovedSessions,\n\t\t\tremovedUnregisteredSessions\n\t\t});\n\t} catch (err) {\n\t\tconsole.error('[sessionCleanup] onSessionCleanup handler failed:', err);\n\t}\n};\n\nconst performCleanup = async <UserType>({\n\tauthSessionStore,\n\tmaxSessions,\n\tonSessionCleanup,\n\tsession,\n\tunregisteredSession\n}: {\n\tauthSessionStore?: AuthSessionStore<UserType>;\n\tmaxSessions: number;\n\tonSessionCleanup?: OnSessionCleanup<UserType>;\n\tsession: SessionRecord<UserType>;\n\tunregisteredSession: UnregisteredSessionRecord;\n}) => {\n\tif (authSessionStore) {\n\t\tawait performStoreCleanup({\n\t\t\tauthSessionStore,\n\t\t\tmaxSessions,\n\t\t\tonSessionCleanup\n\t\t});\n\n\t\treturn;\n\t}\n\n\tawait performRecordCleanup({\n\t\tmaxSessions,\n\t\tonSessionCleanup,\n\t\tsession,\n\t\tunregisteredSession\n\t});\n};\n",
48
+ "import { isUserSessionId } from '../typeGuards';\nimport type {\n\tSessionData,\n\tUnregisteredSessionData,\n\tUserSessionId\n} from '../types';\nimport type { AuthSessionStore } from './types';\n\nexport type CreateInMemoryAuthSessionStoreOptions<UserType> = {\n\tsessions?: Record<UserSessionId, SessionData<UserType>>;\n\tunregisteredSessions?: Record<UserSessionId, UnregisteredSessionData>;\n};\n\nconst cloneSessionData = <UserType>(\n\tvalue: SessionData<UserType>\n): SessionData<UserType> => ({\n\t...value\n});\n\nconst cloneUnregisteredSessionData = (\n\tvalue: UnregisteredSessionData\n): UnregisteredSessionData => ({\n\t...value,\n\tsessionInformation: value.sessionInformation\n\t\t? { ...value.sessionInformation }\n\t\t: undefined,\n\tuserIdentity: value.userIdentity ? { ...value.userIdentity } : undefined\n});\n\nexport const createInMemoryAuthSessionStore = <UserType>(\n\tinput: CreateInMemoryAuthSessionStoreOptions<UserType> = {}\n): AuthSessionStore<UserType> => {\n\tconst sessions = new Map<UserSessionId, SessionData<UserType>>(\n\t\tObject.entries(input.sessions ?? {})\n\t\t\t.filter((entry): entry is [UserSessionId, SessionData<UserType>] =>\n\t\t\t\tisUserSessionId(entry[0])\n\t\t\t)\n\t\t\t.map(([id, value]) => [id, cloneSessionData(value)])\n\t);\n\tconst unregisteredSessions = new Map<\n\t\tUserSessionId,\n\t\tUnregisteredSessionData\n\t>(\n\t\tObject.entries(input.unregisteredSessions ?? {})\n\t\t\t.filter(\n\t\t\t\t(entry): entry is [UserSessionId, UnregisteredSessionData] =>\n\t\t\t\t\tisUserSessionId(entry[0])\n\t\t\t)\n\t\t\t.map(([id, value]) => [id, cloneUnregisteredSessionData(value)])\n\t);\n\n\treturn {\n\t\tgetSession: async (id) => {\n\t\t\tconst session = sessions.get(id);\n\n\t\t\treturn session ? cloneSessionData(session) : undefined;\n\t\t},\n\t\tgetUnregisteredSession: async (id) => {\n\t\t\tconst session = unregisteredSessions.get(id);\n\n\t\t\treturn session ? cloneUnregisteredSessionData(session) : undefined;\n\t\t},\n\t\tlistSessionIds: async () => [...sessions.keys()],\n\t\tlistUnregisteredSessionIds: async () => [\n\t\t\t...unregisteredSessions.keys()\n\t\t],\n\t\tremoveSession: async (id) => {\n\t\t\tsessions.delete(id);\n\t\t},\n\t\tremoveUnregisteredSession: async (id) => {\n\t\t\tunregisteredSessions.delete(id);\n\t\t},\n\t\tsetSession: async (id, value) => {\n\t\t\tsessions.set(id, cloneSessionData(value));\n\t\t},\n\t\tsetUnregisteredSession: async (id, value) => {\n\t\t\tunregisteredSessions.set(id, cloneUnregisteredSessionData(value));\n\t\t}\n\t};\n};\n",
26
49
  "var vo=Object.create;var Te=Object.defineProperty;var xo=Object.getOwnPropertyDescriptor;var So=Object.getOwnPropertyNames;var Eo=Object.getPrototypeOf,Ao=Object.prototype.hasOwnProperty;var Co=(r,e,t)=>e in r?Te(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var a=(r,e)=>Te(r,\"name\",{value:e,configurable:!0});var z=(r,e)=>()=>(r&&(e=r(r=0)),e);var I=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ne=(r,e)=>{for(var t in e)Te(r,t,{get:e[t],\nenumerable:!0})},Mn=(r,e,t,n)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let i of So(e))!Ao.\ncall(r,i)&&i!==t&&Te(r,i,{get:()=>e[i],enumerable:!(n=xo(e,i))||n.enumerable});return r};var xe=(r,e,t)=>(t=r!=null?vo(Eo(r)):{},Mn(e||!r||!r.__esModule?Te(t,\"default\",{value:r,enumerable:!0}):\nt,r)),D=r=>Mn(Te({},\"__esModule\",{value:!0}),r);var E=(r,e,t)=>Co(r,typeof e!=\"symbol\"?e+\"\":e,t);var On=I(ct=>{\"use strict\";p();ct.byteLength=To;ct.toByteArray=Po;ct.fromByteArray=Lo;var ue=[],ee=[],\n_o=typeof Uint8Array<\"u\"?Uint8Array:Array,Ut=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01\\\n23456789+/\";for(Se=0,Un=Ut.length;Se<Un;++Se)ue[Se]=Ut[Se],ee[Ut.charCodeAt(Se)]=Se;var Se,Un;ee[45]=\n62;ee[95]=63;function Dn(r){var e=r.length;if(e%4>0)throw new Error(\"Invalid string. Length must be \\\na multiple of 4\");var t=r.indexOf(\"=\");t===-1&&(t=e);var n=t===e?0:4-t%4;return[t,n]}a(Dn,\"getLens\");\nfunction To(r){var e=Dn(r),t=e[0],n=e[1];return(t+n)*3/4-n}a(To,\"byteLength\");function Io(r,e,t){return(e+\nt)*3/4-t}a(Io,\"_byteLength\");function Po(r){var e,t=Dn(r),n=t[0],i=t[1],s=new _o(Io(r,n,i)),o=0,u=i>\n0?n-4:n,c;for(c=0;c<u;c+=4)e=ee[r.charCodeAt(c)]<<18|ee[r.charCodeAt(c+1)]<<12|ee[r.charCodeAt(c+2)]<<\n6|ee[r.charCodeAt(c+3)],s[o++]=e>>16&255,s[o++]=e>>8&255,s[o++]=e&255;return i===2&&(e=ee[r.charCodeAt(\nc)]<<2|ee[r.charCodeAt(c+1)]>>4,s[o++]=e&255),i===1&&(e=ee[r.charCodeAt(c)]<<10|ee[r.charCodeAt(c+1)]<<\n4|ee[r.charCodeAt(c+2)]>>2,s[o++]=e>>8&255,s[o++]=e&255),s}a(Po,\"toByteArray\");function Ro(r){return ue[r>>\n18&63]+ue[r>>12&63]+ue[r>>6&63]+ue[r&63]}a(Ro,\"tripletToBase64\");function Bo(r,e,t){for(var n,i=[],s=e;s<\nt;s+=3)n=(r[s]<<16&16711680)+(r[s+1]<<8&65280)+(r[s+2]&255),i.push(Ro(n));return i.join(\"\")}a(Bo,\"en\\\ncodeChunk\");function Lo(r){for(var e,t=r.length,n=t%3,i=[],s=16383,o=0,u=t-n;o<u;o+=s)i.push(Bo(r,o,\no+s>u?u:o+s));return n===1?(e=r[t-1],i.push(ue[e>>2]+ue[e<<4&63]+\"==\")):n===2&&(e=(r[t-2]<<8)+r[t-1],\ni.push(ue[e>>10]+ue[e>>4&63]+ue[e<<2&63]+\"=\")),i.join(\"\")}a(Lo,\"fromByteArray\")});var qn=I(Dt=>{p();Dt.read=function(r,e,t,n,i){var s,o,u=i*8-n-1,c=(1<<u)-1,l=c>>1,f=-7,y=t?i-1:0,g=t?\n-1:1,A=r[e+y];for(y+=g,s=A&(1<<-f)-1,A>>=-f,f+=u;f>0;s=s*256+r[e+y],y+=g,f-=8);for(o=s&(1<<-f)-1,s>>=\n-f,f+=n;f>0;o=o*256+r[e+y],y+=g,f-=8);if(s===0)s=1-l;else{if(s===c)return o?NaN:(A?-1:1)*(1/0);o=o+Math.\npow(2,n),s=s-l}return(A?-1:1)*o*Math.pow(2,s-n)};Dt.write=function(r,e,t,n,i,s){var o,u,c,l=s*8-i-1,\nf=(1<<l)-1,y=f>>1,g=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,A=n?0:s-1,C=n?1:-1,Q=e<0||e===0&&1/e<0?\n1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(u=isNaN(e)?1:0,o=f):(o=Math.floor(Math.log(e)/Math.LN2),e*(c=\nMath.pow(2,-o))<1&&(o--,c*=2),o+y>=1?e+=g/c:e+=g*Math.pow(2,1-y),e*c>=2&&(o++,c/=2),o+y>=f?(u=0,o=f):\no+y>=1?(u=(e*c-1)*Math.pow(2,i),o=o+y):(u=e*Math.pow(2,y-1)*Math.pow(2,i),o=0));i>=8;r[t+A]=u&255,A+=\nC,u/=256,i-=8);for(o=o<<i|u,l+=i;l>0;r[t+A]=o&255,A+=C,o/=256,l-=8);r[t+A-C]|=Q*128}});var ri=I(Be=>{\"use strict\";p();var Ot=On(),Pe=qn(),Qn=typeof Symbol==\"function\"&&typeof Symbol.for==\n\"function\"?Symbol.for(\"nodejs.util.inspect.custom\"):null;Be.Buffer=h;Be.SlowBuffer=Oo;Be.INSPECT_MAX_BYTES=\n50;var lt=2147483647;Be.kMaxLength=lt;h.TYPED_ARRAY_SUPPORT=Fo();!h.TYPED_ARRAY_SUPPORT&&typeof console<\n\"u\"&&typeof console.error==\"function\"&&console.error(\"This browser lacks typed array (Uint8Array) su\\\npport which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.\");function Fo(){\ntry{let r=new Uint8Array(1),e={foo:a(function(){return 42},\"foo\")};return Object.setPrototypeOf(e,Uint8Array.\nprototype),Object.setPrototypeOf(r,e),r.foo()===42}catch{return!1}}a(Fo,\"typedArraySupport\");Object.\ndefineProperty(h.prototype,\"parent\",{enumerable:!0,get:a(function(){if(h.isBuffer(this))return this.\nbuffer},\"get\")});Object.defineProperty(h.prototype,\"offset\",{enumerable:!0,get:a(function(){if(h.isBuffer(\nthis))return this.byteOffset},\"get\")});function pe(r){if(r>lt)throw new RangeError('The value \"'+r+'\\\n\" is invalid for option \"size\"');let e=new Uint8Array(r);return Object.setPrototypeOf(e,h.prototype),\ne}a(pe,\"createBuffer\");function h(r,e,t){if(typeof r==\"number\"){if(typeof e==\"string\")throw new TypeError(\n'The \"string\" argument must be of type string. Received type number');return jt(r)}return Hn(r,e,t)}\na(h,\"Buffer\");h.poolSize=8192;function Hn(r,e,t){if(typeof r==\"string\")return Mo(r,e);if(ArrayBuffer.\nisView(r))return Uo(r);if(r==null)throw new TypeError(\"The first argument must be one of type string\\\n, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof r);if(ce(r,ArrayBuffer)||\nr&&ce(r.buffer,ArrayBuffer)||typeof SharedArrayBuffer<\"u\"&&(ce(r,SharedArrayBuffer)||r&&ce(r.buffer,\nSharedArrayBuffer)))return Qt(r,e,t);if(typeof r==\"number\")throw new TypeError('The \"value\" argument\\\n must not be of type number. Received type number');let n=r.valueOf&&r.valueOf();if(n!=null&&n!==r)return h.\nfrom(n,e,t);let i=Do(r);if(i)return i;if(typeof Symbol<\"u\"&&Symbol.toPrimitive!=null&&typeof r[Symbol.\ntoPrimitive]==\"function\")return h.from(r[Symbol.toPrimitive](\"string\"),e,t);throw new TypeError(\"The\\\n first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Receiv\\\ned type \"+typeof r)}a(Hn,\"from\");h.from=function(r,e,t){return Hn(r,e,t)};Object.setPrototypeOf(h.prototype,\nUint8Array.prototype);Object.setPrototypeOf(h,Uint8Array);function $n(r){if(typeof r!=\"number\")throw new TypeError(\n'\"size\" argument must be of type number');if(r<0)throw new RangeError('The value \"'+r+'\" is invalid \\\nfor option \"size\"')}a($n,\"assertSize\");function ko(r,e,t){return $n(r),r<=0?pe(r):e!==void 0?typeof t==\n\"string\"?pe(r).fill(e,t):pe(r).fill(e):pe(r)}a(ko,\"alloc\");h.alloc=function(r,e,t){return ko(r,e,t)};\nfunction jt(r){return $n(r),pe(r<0?0:Wt(r)|0)}a(jt,\"allocUnsafe\");h.allocUnsafe=function(r){return jt(\nr)};h.allocUnsafeSlow=function(r){return jt(r)};function Mo(r,e){if((typeof e!=\"string\"||e===\"\")&&(e=\n\"utf8\"),!h.isEncoding(e))throw new TypeError(\"Unknown encoding: \"+e);let t=Gn(r,e)|0,n=pe(t),i=n.write(\nr,e);return i!==t&&(n=n.slice(0,i)),n}a(Mo,\"fromString\");function qt(r){let e=r.length<0?0:Wt(r.length)|\n0,t=pe(e);for(let n=0;n<e;n+=1)t[n]=r[n]&255;return t}a(qt,\"fromArrayLike\");function Uo(r){if(ce(r,Uint8Array)){\nlet e=new Uint8Array(r);return Qt(e.buffer,e.byteOffset,e.byteLength)}return qt(r)}a(Uo,\"fromArrayVi\\\new\");function Qt(r,e,t){if(e<0||r.byteLength<e)throw new RangeError('\"offset\" is outside of buffer b\\\nounds');if(r.byteLength<e+(t||0))throw new RangeError('\"length\" is outside of buffer bounds');let n;\nreturn e===void 0&&t===void 0?n=new Uint8Array(r):t===void 0?n=new Uint8Array(r,e):n=new Uint8Array(\nr,e,t),Object.setPrototypeOf(n,h.prototype),n}a(Qt,\"fromArrayBuffer\");function Do(r){if(h.isBuffer(r)){\nlet e=Wt(r.length)|0,t=pe(e);return t.length===0||r.copy(t,0,0,e),t}if(r.length!==void 0)return typeof r.\nlength!=\"number\"||$t(r.length)?pe(0):qt(r);if(r.type===\"Buffer\"&&Array.isArray(r.data))return qt(r.data)}\na(Do,\"fromObject\");function Wt(r){if(r>=lt)throw new RangeError(\"Attempt to allocate Buffer larger t\\\nhan maximum size: 0x\"+lt.toString(16)+\" bytes\");return r|0}a(Wt,\"checked\");function Oo(r){return+r!=\nr&&(r=0),h.alloc(+r)}a(Oo,\"SlowBuffer\");h.isBuffer=a(function(e){return e!=null&&e._isBuffer===!0&&e!==\nh.prototype},\"isBuffer\");h.compare=a(function(e,t){if(ce(e,Uint8Array)&&(e=h.from(e,e.offset,e.byteLength)),\nce(t,Uint8Array)&&(t=h.from(t,t.offset,t.byteLength)),!h.isBuffer(e)||!h.isBuffer(t))throw new TypeError(\n'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let n=e.length,\ni=t.length;for(let s=0,o=Math.min(n,i);s<o;++s)if(e[s]!==t[s]){n=e[s],i=t[s];break}return n<i?-1:i<n?\n1:0},\"compare\");h.isEncoding=a(function(e){switch(String(e).toLowerCase()){case\"hex\":case\"utf8\":case\"\\\nutf-8\":case\"ascii\":case\"latin1\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"\\\nutf-16le\":return!0;default:return!1}},\"isEncoding\");h.concat=a(function(e,t){if(!Array.isArray(e))throw new TypeError(\n'\"list\" argument must be an Array of Buffers');if(e.length===0)return h.alloc(0);let n;if(t===void 0)\nfor(t=0,n=0;n<e.length;++n)t+=e[n].length;let i=h.allocUnsafe(t),s=0;for(n=0;n<e.length;++n){let o=e[n];\nif(ce(o,Uint8Array))s+o.length>i.length?(h.isBuffer(o)||(o=h.from(o)),o.copy(i,s)):Uint8Array.prototype.\nset.call(i,o,s);else if(h.isBuffer(o))o.copy(i,s);else throw new TypeError('\"list\" argument must be \\\nan Array of Buffers');s+=o.length}return i},\"concat\");function Gn(r,e){if(h.isBuffer(r))return r.length;\nif(ArrayBuffer.isView(r)||ce(r,ArrayBuffer))return r.byteLength;if(typeof r!=\"string\")throw new TypeError(\n'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof r);\nlet t=r.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&t===0)return 0;let i=!1;for(;;)switch(e){case\"\\\nascii\":case\"latin1\":case\"binary\":return t;case\"utf8\":case\"utf-8\":return Nt(r).length;case\"ucs2\":case\"\\\nucs-2\":case\"utf16le\":case\"utf-16le\":return t*2;case\"hex\":return t>>>1;case\"base64\":return ti(r).length;default:\nif(i)return n?-1:Nt(r).length;e=(\"\"+e).toLowerCase(),i=!0}}a(Gn,\"byteLength\");h.byteLength=Gn;function qo(r,e,t){\nlet n=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((t===void 0||t>this.length)&&(t=this.length),t<=\n0)||(t>>>=0,e>>>=0,t<=e))return\"\";for(r||(r=\"utf8\");;)switch(r){case\"hex\":return Ko(this,e,t);case\"u\\\ntf8\":case\"utf-8\":return zn(this,e,t);case\"ascii\":return Vo(this,e,t);case\"latin1\":case\"binary\":return zo(\nthis,e,t);case\"base64\":return $o(this,e,t);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return Yo(\nthis,e,t);default:if(n)throw new TypeError(\"Unknown encoding: \"+r);r=(r+\"\").toLowerCase(),n=!0}}a(qo,\n\"slowToString\");h.prototype._isBuffer=!0;function Ee(r,e,t){let n=r[e];r[e]=r[t],r[t]=n}a(Ee,\"swap\");\nh.prototype.swap16=a(function(){let e=this.length;if(e%2!==0)throw new RangeError(\"Buffer size must \\\nbe a multiple of 16-bits\");for(let t=0;t<e;t+=2)Ee(this,t,t+1);return this},\"swap16\");h.prototype.swap32=\na(function(){let e=this.length;if(e%4!==0)throw new RangeError(\"Buffer size must be a multiple of 32\\\n-bits\");for(let t=0;t<e;t+=4)Ee(this,t,t+3),Ee(this,t+1,t+2);return this},\"swap32\");h.prototype.swap64=\na(function(){let e=this.length;if(e%8!==0)throw new RangeError(\"Buffer size must be a multiple of 64\\\n-bits\");for(let t=0;t<e;t+=8)Ee(this,t,t+7),Ee(this,t+1,t+6),Ee(this,t+2,t+5),Ee(this,t+3,t+4);return this},\n\"swap64\");h.prototype.toString=a(function(){let e=this.length;return e===0?\"\":arguments.length===0?zn(\nthis,0,e):qo.apply(this,arguments)},\"toString\");h.prototype.toLocaleString=h.prototype.toString;h.prototype.\nequals=a(function(e){if(!h.isBuffer(e))throw new TypeError(\"Argument must be a Buffer\");return this===\ne?!0:h.compare(this,e)===0},\"equals\");h.prototype.inspect=a(function(){let e=\"\",t=Be.INSPECT_MAX_BYTES;\nreturn e=this.toString(\"hex\",0,t).replace(/(.{2})/g,\"$1 \").trim(),this.length>t&&(e+=\" ... \"),\"<Buff\\\ner \"+e+\">\"},\"inspect\");Qn&&(h.prototype[Qn]=h.prototype.inspect);h.prototype.compare=a(function(e,t,n,i,s){\nif(ce(e,Uint8Array)&&(e=h.from(e,e.offset,e.byteLength)),!h.isBuffer(e))throw new TypeError('The \"ta\\\nrget\" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(t===void 0&&(t=\n0),n===void 0&&(n=e?e.length:0),i===void 0&&(i=0),s===void 0&&(s=this.length),t<0||n>e.length||i<0||\ns>this.length)throw new RangeError(\"out of range index\");if(i>=s&&t>=n)return 0;if(i>=s)return-1;if(t>=\nn)return 1;if(t>>>=0,n>>>=0,i>>>=0,s>>>=0,this===e)return 0;let o=s-i,u=n-t,c=Math.min(o,u),l=this.slice(\ni,s),f=e.slice(t,n);for(let y=0;y<c;++y)if(l[y]!==f[y]){o=l[y],u=f[y];break}return o<u?-1:u<o?1:0},\"\\\ncompare\");function Vn(r,e,t,n,i){if(r.length===0)return-1;if(typeof t==\"string\"?(n=t,t=0):t>2147483647?\nt=2147483647:t<-2147483648&&(t=-2147483648),t=+t,$t(t)&&(t=i?0:r.length-1),t<0&&(t=r.length+t),t>=r.\nlength){if(i)return-1;t=r.length-1}else if(t<0)if(i)t=0;else return-1;if(typeof e==\"string\"&&(e=h.from(\ne,n)),h.isBuffer(e))return e.length===0?-1:Nn(r,e,t,n,i);if(typeof e==\"number\")return e=e&255,typeof Uint8Array.\nprototype.indexOf==\"function\"?i?Uint8Array.prototype.indexOf.call(r,e,t):Uint8Array.prototype.lastIndexOf.\ncall(r,e,t):Nn(r,[e],t,n,i);throw new TypeError(\"val must be string, number or Buffer\")}a(Vn,\"bidire\\\nctionalIndexOf\");function Nn(r,e,t,n,i){let s=1,o=r.length,u=e.length;if(n!==void 0&&(n=String(n).toLowerCase(),\nn===\"ucs2\"||n===\"ucs-2\"||n===\"utf16le\"||n===\"utf-16le\")){if(r.length<2||e.length<2)return-1;s=2,o/=2,\nu/=2,t/=2}function c(f,y){return s===1?f[y]:f.readUInt16BE(y*s)}a(c,\"read\");let l;if(i){let f=-1;for(l=\nt;l<o;l++)if(c(r,l)===c(e,f===-1?0:l-f)){if(f===-1&&(f=l),l-f+1===u)return f*s}else f!==-1&&(l-=l-f),\nf=-1}else for(t+u>o&&(t=o-u),l=t;l>=0;l--){let f=!0;for(let y=0;y<u;y++)if(c(r,l+y)!==c(e,y)){f=!1;break}\nif(f)return l}return-1}a(Nn,\"arrayIndexOf\");h.prototype.includes=a(function(e,t,n){return this.indexOf(\ne,t,n)!==-1},\"includes\");h.prototype.indexOf=a(function(e,t,n){return Vn(this,e,t,n,!0)},\"indexOf\");\nh.prototype.lastIndexOf=a(function(e,t,n){return Vn(this,e,t,n,!1)},\"lastIndexOf\");function Qo(r,e,t,n){\nt=Number(t)||0;let i=r.length-t;n?(n=Number(n),n>i&&(n=i)):n=i;let s=e.length;n>s/2&&(n=s/2);let o;for(o=\n0;o<n;++o){let u=parseInt(e.substr(o*2,2),16);if($t(u))return o;r[t+o]=u}return o}a(Qo,\"hexWrite\");function No(r,e,t,n){\nreturn ft(Nt(e,r.length-t),r,t,n)}a(No,\"utf8Write\");function jo(r,e,t,n){return ft(ea(e),r,t,n)}a(jo,\n\"asciiWrite\");function Wo(r,e,t,n){return ft(ti(e),r,t,n)}a(Wo,\"base64Write\");function Ho(r,e,t,n){return ft(\nta(e,r.length-t),r,t,n)}a(Ho,\"ucs2Write\");h.prototype.write=a(function(e,t,n,i){if(t===void 0)i=\"utf\\\n8\",n=this.length,t=0;else if(n===void 0&&typeof t==\"string\")i=t,n=this.length,t=0;else if(isFinite(t))\nt=t>>>0,isFinite(n)?(n=n>>>0,i===void 0&&(i=\"utf8\")):(i=n,n=void 0);else throw new Error(\"Buffer.wri\\\nte(string, encoding, offset[, length]) is no longer supported\");let s=this.length-t;if((n===void 0||\nn>s)&&(n=s),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError(\"Attempt to write outside buf\\\nfer bounds\");i||(i=\"utf8\");let o=!1;for(;;)switch(i){case\"hex\":return Qo(this,e,t,n);case\"utf8\":case\"\\\nutf-8\":return No(this,e,t,n);case\"ascii\":case\"latin1\":case\"binary\":return jo(this,e,t,n);case\"base64\":\nreturn Wo(this,e,t,n);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return Ho(this,e,t,n);default:\nif(o)throw new TypeError(\"Unknown encoding: \"+i);i=(\"\"+i).toLowerCase(),o=!0}},\"write\");h.prototype.\ntoJSON=a(function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}},\"toJSO\\\nN\");function $o(r,e,t){return e===0&&t===r.length?Ot.fromByteArray(r):Ot.fromByteArray(r.slice(e,t))}\na($o,\"base64Slice\");function zn(r,e,t){t=Math.min(r.length,t);let n=[],i=e;for(;i<t;){let s=r[i],o=null,\nu=s>239?4:s>223?3:s>191?2:1;if(i+u<=t){let c,l,f,y;switch(u){case 1:s<128&&(o=s);break;case 2:c=r[i+\n1],(c&192)===128&&(y=(s&31)<<6|c&63,y>127&&(o=y));break;case 3:c=r[i+1],l=r[i+2],(c&192)===128&&(l&192)===\n128&&(y=(s&15)<<12|(c&63)<<6|l&63,y>2047&&(y<55296||y>57343)&&(o=y));break;case 4:c=r[i+1],l=r[i+2],\nf=r[i+3],(c&192)===128&&(l&192)===128&&(f&192)===128&&(y=(s&15)<<18|(c&63)<<12|(l&63)<<6|f&63,y>65535&&\ny<1114112&&(o=y))}}o===null?(o=65533,u=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|o&1023),\nn.push(o),i+=u}return Go(n)}a(zn,\"utf8Slice\");var jn=4096;function Go(r){let e=r.length;if(e<=jn)return String.\nfromCharCode.apply(String,r);let t=\"\",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=\njn));return t}a(Go,\"decodeCodePointsArray\");function Vo(r,e,t){let n=\"\";t=Math.min(r.length,t);for(let i=e;i<\nt;++i)n+=String.fromCharCode(r[i]&127);return n}a(Vo,\"asciiSlice\");function zo(r,e,t){let n=\"\";t=Math.\nmin(r.length,t);for(let i=e;i<t;++i)n+=String.fromCharCode(r[i]);return n}a(zo,\"latin1Slice\");function Ko(r,e,t){\nlet n=r.length;(!e||e<0)&&(e=0),(!t||t<0||t>n)&&(t=n);let i=\"\";for(let s=e;s<t;++s)i+=ra[r[s]];return i}\na(Ko,\"hexSlice\");function Yo(r,e,t){let n=r.slice(e,t),i=\"\";for(let s=0;s<n.length-1;s+=2)i+=String.\nfromCharCode(n[s]+n[s+1]*256);return i}a(Yo,\"utf16leSlice\");h.prototype.slice=a(function(e,t){let n=this.\nlength;e=~~e,t=t===void 0?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t<\ne&&(t=e);let i=this.subarray(e,t);return Object.setPrototypeOf(i,h.prototype),i},\"slice\");function O(r,e,t){\nif(r%1!==0||r<0)throw new RangeError(\"offset is not uint\");if(r+e>t)throw new RangeError(\"Trying to \\\naccess beyond buffer length\")}a(O,\"checkOffset\");h.prototype.readUintLE=h.prototype.readUIntLE=a(function(e,t,n){\ne=e>>>0,t=t>>>0,n||O(e,t,this.length);let i=this[e],s=1,o=0;for(;++o<t&&(s*=256);)i+=this[e+o]*s;return i},\n\"readUIntLE\");h.prototype.readUintBE=h.prototype.readUIntBE=a(function(e,t,n){e=e>>>0,t=t>>>0,n||O(e,\nt,this.length);let i=this[e+--t],s=1;for(;t>0&&(s*=256);)i+=this[e+--t]*s;return i},\"readUIntBE\");h.\nprototype.readUint8=h.prototype.readUInt8=a(function(e,t){return e=e>>>0,t||O(e,1,this.length),this[e]},\n\"readUInt8\");h.prototype.readUint16LE=h.prototype.readUInt16LE=a(function(e,t){return e=e>>>0,t||O(e,\n2,this.length),this[e]|this[e+1]<<8},\"readUInt16LE\");h.prototype.readUint16BE=h.prototype.readUInt16BE=\na(function(e,t){return e=e>>>0,t||O(e,2,this.length),this[e]<<8|this[e+1]},\"readUInt16BE\");h.prototype.\nreadUint32LE=h.prototype.readUInt32LE=a(function(e,t){return e=e>>>0,t||O(e,4,this.length),(this[e]|\nthis[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216},\"readUInt32LE\");h.prototype.readUint32BE=h.prototype.\nreadUInt32BE=a(function(e,t){return e=e>>>0,t||O(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+\n2]<<8|this[e+3])},\"readUInt32BE\");h.prototype.readBigUInt64LE=ye(a(function(e){e=e>>>0,Re(e,\"offset\");\nlet t=this[e],n=this[e+7];(t===void 0||n===void 0)&&je(e,this.length-8);let i=t+this[++e]*2**8+this[++e]*\n2**16+this[++e]*2**24,s=this[++e]+this[++e]*2**8+this[++e]*2**16+n*2**24;return BigInt(i)+(BigInt(s)<<\nBigInt(32))},\"readBigUInt64LE\"));h.prototype.readBigUInt64BE=ye(a(function(e){e=e>>>0,Re(e,\"offset\");\nlet t=this[e],n=this[e+7];(t===void 0||n===void 0)&&je(e,this.length-8);let i=t*2**24+this[++e]*2**16+\nthis[++e]*2**8+this[++e],s=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+n;return(BigInt(i)<<BigInt(\n32))+BigInt(s)},\"readBigUInt64BE\"));h.prototype.readIntLE=a(function(e,t,n){e=e>>>0,t=t>>>0,n||O(e,t,\nthis.length);let i=this[e],s=1,o=0;for(;++o<t&&(s*=256);)i+=this[e+o]*s;return s*=128,i>=s&&(i-=Math.\npow(2,8*t)),i},\"readIntLE\");h.prototype.readIntBE=a(function(e,t,n){e=e>>>0,t=t>>>0,n||O(e,t,this.length);\nlet i=t,s=1,o=this[e+--i];for(;i>0&&(s*=256);)o+=this[e+--i]*s;return s*=128,o>=s&&(o-=Math.pow(2,8*\nt)),o},\"readIntBE\");h.prototype.readInt8=a(function(e,t){return e=e>>>0,t||O(e,1,this.length),this[e]&\n128?(255-this[e]+1)*-1:this[e]},\"readInt8\");h.prototype.readInt16LE=a(function(e,t){e=e>>>0,t||O(e,2,\nthis.length);let n=this[e]|this[e+1]<<8;return n&32768?n|4294901760:n},\"readInt16LE\");h.prototype.readInt16BE=\na(function(e,t){e=e>>>0,t||O(e,2,this.length);let n=this[e+1]|this[e]<<8;return n&32768?n|4294901760:\nn},\"readInt16BE\");h.prototype.readInt32LE=a(function(e,t){return e=e>>>0,t||O(e,4,this.length),this[e]|\nthis[e+1]<<8|this[e+2]<<16|this[e+3]<<24},\"readInt32LE\");h.prototype.readInt32BE=a(function(e,t){return e=\ne>>>0,t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},\"readInt32BE\");h.prototype.\nreadBigInt64LE=ye(a(function(e){e=e>>>0,Re(e,\"offset\");let t=this[e],n=this[e+7];(t===void 0||n===void 0)&&\nje(e,this.length-8);let i=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(n<<24);return(BigInt(i)<<BigInt(\n32))+BigInt(t+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24)},\"readBigInt64LE\"));h.prototype.readBigInt64BE=\nye(a(function(e){e=e>>>0,Re(e,\"offset\");let t=this[e],n=this[e+7];(t===void 0||n===void 0)&&je(e,this.\nlength-8);let i=(t<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(i)<<BigInt(32))+BigInt(\nthis[++e]*2**24+this[++e]*2**16+this[++e]*2**8+n)},\"readBigInt64BE\"));h.prototype.readFloatLE=a(function(e,t){\nreturn e=e>>>0,t||O(e,4,this.length),Pe.read(this,e,!0,23,4)},\"readFloatLE\");h.prototype.readFloatBE=\na(function(e,t){return e=e>>>0,t||O(e,4,this.length),Pe.read(this,e,!1,23,4)},\"readFloatBE\");h.prototype.\nreadDoubleLE=a(function(e,t){return e=e>>>0,t||O(e,8,this.length),Pe.read(this,e,!0,52,8)},\"readDoub\\\nleLE\");h.prototype.readDoubleBE=a(function(e,t){return e=e>>>0,t||O(e,8,this.length),Pe.read(this,e,\n!1,52,8)},\"readDoubleBE\");function K(r,e,t,n,i,s){if(!h.isBuffer(r))throw new TypeError('\"buffer\" ar\\\ngument must be a Buffer instance');if(e>i||e<s)throw new RangeError('\"value\" argument is out of boun\\\nds');if(t+n>r.length)throw new RangeError(\"Index out of range\")}a(K,\"checkInt\");h.prototype.writeUintLE=\nh.prototype.writeUIntLE=a(function(e,t,n,i){if(e=+e,t=t>>>0,n=n>>>0,!i){let u=Math.pow(2,8*n)-1;K(this,\ne,t,n,u,0)}let s=1,o=0;for(this[t]=e&255;++o<n&&(s*=256);)this[t+o]=e/s&255;return t+n},\"writeUIntLE\");\nh.prototype.writeUintBE=h.prototype.writeUIntBE=a(function(e,t,n,i){if(e=+e,t=t>>>0,n=n>>>0,!i){let u=Math.\npow(2,8*n)-1;K(this,e,t,n,u,0)}let s=n-1,o=1;for(this[t+s]=e&255;--s>=0&&(o*=256);)this[t+s]=e/o&255;\nreturn t+n},\"writeUIntBE\");h.prototype.writeUint8=h.prototype.writeUInt8=a(function(e,t,n){return e=\n+e,t=t>>>0,n||K(this,e,t,1,255,0),this[t]=e&255,t+1},\"writeUInt8\");h.prototype.writeUint16LE=h.prototype.\nwriteUInt16LE=a(function(e,t,n){return e=+e,t=t>>>0,n||K(this,e,t,2,65535,0),this[t]=e&255,this[t+1]=\ne>>>8,t+2},\"writeUInt16LE\");h.prototype.writeUint16BE=h.prototype.writeUInt16BE=a(function(e,t,n){return e=\n+e,t=t>>>0,n||K(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=e&255,t+2},\"writeUInt16BE\");h.prototype.\nwriteUint32LE=h.prototype.writeUInt32LE=a(function(e,t,n){return e=+e,t=t>>>0,n||K(this,e,t,4,4294967295,\n0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255,t+4},\"writeUInt32LE\");h.prototype.\nwriteUint32BE=h.prototype.writeUInt32BE=a(function(e,t,n){return e=+e,t=t>>>0,n||K(this,e,t,4,4294967295,\n0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4},\"writeUInt32BE\");function Kn(r,e,t,n,i){\nei(e,n,i,r,t,7);let s=Number(e&BigInt(4294967295));r[t++]=s,s=s>>8,r[t++]=s,s=s>>8,r[t++]=s,s=s>>8,r[t++]=\ns;let o=Number(e>>BigInt(32)&BigInt(4294967295));return r[t++]=o,o=o>>8,r[t++]=o,o=o>>8,r[t++]=o,o=o>>\n8,r[t++]=o,t}a(Kn,\"wrtBigUInt64LE\");function Yn(r,e,t,n,i){ei(e,n,i,r,t,7);let s=Number(e&BigInt(4294967295));\nr[t+7]=s,s=s>>8,r[t+6]=s,s=s>>8,r[t+5]=s,s=s>>8,r[t+4]=s;let o=Number(e>>BigInt(32)&BigInt(4294967295));\nreturn r[t+3]=o,o=o>>8,r[t+2]=o,o=o>>8,r[t+1]=o,o=o>>8,r[t]=o,t+8}a(Yn,\"wrtBigUInt64BE\");h.prototype.\nwriteBigUInt64LE=ye(a(function(e,t=0){return Kn(this,e,t,BigInt(0),BigInt(\"0xffffffffffffffff\"))},\"w\\\nriteBigUInt64LE\"));h.prototype.writeBigUInt64BE=ye(a(function(e,t=0){return Yn(this,e,t,BigInt(0),BigInt(\n\"0xffffffffffffffff\"))},\"writeBigUInt64BE\"));h.prototype.writeIntLE=a(function(e,t,n,i){if(e=+e,t=t>>>\n0,!i){let c=Math.pow(2,8*n-1);K(this,e,t,n,c-1,-c)}let s=0,o=1,u=0;for(this[t]=e&255;++s<n&&(o*=256);)\ne<0&&u===0&&this[t+s-1]!==0&&(u=1),this[t+s]=(e/o>>0)-u&255;return t+n},\"writeIntLE\");h.prototype.writeIntBE=\na(function(e,t,n,i){if(e=+e,t=t>>>0,!i){let c=Math.pow(2,8*n-1);K(this,e,t,n,c-1,-c)}let s=n-1,o=1,u=0;\nfor(this[t+s]=e&255;--s>=0&&(o*=256);)e<0&&u===0&&this[t+s+1]!==0&&(u=1),this[t+s]=(e/o>>0)-u&255;return t+\nn},\"writeIntBE\");h.prototype.writeInt8=a(function(e,t,n){return e=+e,t=t>>>0,n||K(this,e,t,1,127,-128),\ne<0&&(e=255+e+1),this[t]=e&255,t+1},\"writeInt8\");h.prototype.writeInt16LE=a(function(e,t,n){return e=\n+e,t=t>>>0,n||K(this,e,t,2,32767,-32768),this[t]=e&255,this[t+1]=e>>>8,t+2},\"writeInt16LE\");h.prototype.\nwriteInt16BE=a(function(e,t,n){return e=+e,t=t>>>0,n||K(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+\n1]=e&255,t+2},\"writeInt16BE\");h.prototype.writeInt32LE=a(function(e,t,n){return e=+e,t=t>>>0,n||K(this,\ne,t,4,2147483647,-2147483648),this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},\"\\\nwriteInt32LE\");h.prototype.writeInt32BE=a(function(e,t,n){return e=+e,t=t>>>0,n||K(this,e,t,4,2147483647,\n-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,\nt+4},\"writeInt32BE\");h.prototype.writeBigInt64LE=ye(a(function(e,t=0){return Kn(this,e,t,-BigInt(\"0x\\\n8000000000000000\"),BigInt(\"0x7fffffffffffffff\"))},\"writeBigInt64LE\"));h.prototype.writeBigInt64BE=ye(\na(function(e,t=0){return Yn(this,e,t,-BigInt(\"0x8000000000000000\"),BigInt(\"0x7fffffffffffffff\"))},\"w\\\nriteBigInt64BE\"));function Zn(r,e,t,n,i,s){if(t+n>r.length)throw new RangeError(\"Index out of range\");\nif(t<0)throw new RangeError(\"Index out of range\")}a(Zn,\"checkIEEE754\");function Jn(r,e,t,n,i){return e=\n+e,t=t>>>0,i||Zn(r,e,t,4,34028234663852886e22,-34028234663852886e22),Pe.write(r,e,t,n,23,4),t+4}a(Jn,\n\"writeFloat\");h.prototype.writeFloatLE=a(function(e,t,n){return Jn(this,e,t,!0,n)},\"writeFloatLE\");h.\nprototype.writeFloatBE=a(function(e,t,n){return Jn(this,e,t,!1,n)},\"writeFloatBE\");function Xn(r,e,t,n,i){\nreturn e=+e,t=t>>>0,i||Zn(r,e,t,8,17976931348623157e292,-17976931348623157e292),Pe.write(r,e,t,n,52,\n8),t+8}a(Xn,\"writeDouble\");h.prototype.writeDoubleLE=a(function(e,t,n){return Xn(this,e,t,!0,n)},\"wr\\\niteDoubleLE\");h.prototype.writeDoubleBE=a(function(e,t,n){return Xn(this,e,t,!1,n)},\"writeDoubleBE\");\nh.prototype.copy=a(function(e,t,n,i){if(!h.isBuffer(e))throw new TypeError(\"argument should be a Buf\\\nfer\");if(n||(n=0),!i&&i!==0&&(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i<n&&(i=n),i===\nn||e.length===0||this.length===0)return 0;if(t<0)throw new RangeError(\"targetStart out of bounds\");if(n<\n0||n>=this.length)throw new RangeError(\"Index out of range\");if(i<0)throw new RangeError(\"sourceEnd \\\nout of bounds\");i>this.length&&(i=this.length),e.length-t<i-n&&(i=e.length-t+n);let s=i-n;return this===\ne&&typeof Uint8Array.prototype.copyWithin==\"function\"?this.copyWithin(t,n,i):Uint8Array.prototype.set.\ncall(e,this.subarray(n,i),t),s},\"copy\");h.prototype.fill=a(function(e,t,n,i){if(typeof e==\"string\"){\nif(typeof t==\"string\"?(i=t,t=0,n=this.length):typeof n==\"string\"&&(i=n,n=this.length),i!==void 0&&typeof i!=\n\"string\")throw new TypeError(\"encoding must be a string\");if(typeof i==\"string\"&&!h.isEncoding(i))throw new TypeError(\n\"Unknown encoding: \"+i);if(e.length===1){let o=e.charCodeAt(0);(i===\"utf8\"&&o<128||i===\"latin1\")&&(e=\no)}}else typeof e==\"number\"?e=e&255:typeof e==\"boolean\"&&(e=Number(e));if(t<0||this.length<t||this.length<\nn)throw new RangeError(\"Out of range index\");if(n<=t)return this;t=t>>>0,n=n===void 0?this.length:n>>>\n0,e||(e=0);let s;if(typeof e==\"number\")for(s=t;s<n;++s)this[s]=e;else{let o=h.isBuffer(e)?e:h.from(e,\ni),u=o.length;if(u===0)throw new TypeError('The value \"'+e+'\" is invalid for argument \"value\"');for(s=\n0;s<n-t;++s)this[s+t]=o[s%u]}return this},\"fill\");var Ie={};function Ht(r,e,t){var n;Ie[r]=(n=class extends t{constructor(){\nsuper(),Object.defineProperty(this,\"message\",{value:e.apply(this,arguments),writable:!0,configurable:!0}),\nthis.name=`${this.name} [${r}]`,this.stack,delete this.name}get code(){return r}set code(s){Object.defineProperty(\nthis,\"code\",{configurable:!0,enumerable:!0,value:s,writable:!0})}toString(){return`${this.name} [${r}\\\n]: ${this.message}`}},a(n,\"NodeError\"),n)}a(Ht,\"E\");Ht(\"ERR_BUFFER_OUT_OF_BOUNDS\",function(r){return r?\n`${r} is outside of buffer bounds`:\"Attempt to access memory outside buffer bounds\"},RangeError);Ht(\n\"ERR_INVALID_ARG_TYPE\",function(r,e){return`The \"${r}\" argument must be of type number. Received typ\\\ne ${typeof e}`},TypeError);Ht(\"ERR_OUT_OF_RANGE\",function(r,e,t){let n=`The value of \"${r}\" is out o\\\nf range.`,i=t;return Number.isInteger(t)&&Math.abs(t)>2**32?i=Wn(String(t)):typeof t==\"bigint\"&&(i=String(\nt),(t>BigInt(2)**BigInt(32)||t<-(BigInt(2)**BigInt(32)))&&(i=Wn(i)),i+=\"n\"),n+=` It must be ${e}. Re\\\nceived ${i}`,n},RangeError);function Wn(r){let e=\"\",t=r.length,n=r[0]===\"-\"?1:0;for(;t>=n+4;t-=3)e=`\\\n_${r.slice(t-3,t)}${e}`;return`${r.slice(0,t)}${e}`}a(Wn,\"addNumericalSeparator\");function Zo(r,e,t){\nRe(e,\"offset\"),(r[e]===void 0||r[e+t]===void 0)&&je(e,r.length-(t+1))}a(Zo,\"checkBounds\");function ei(r,e,t,n,i,s){\nif(r>t||r<e){let o=typeof e==\"bigint\"?\"n\":\"\",u;throw s>3?e===0||e===BigInt(0)?u=`>= 0${o} and < 2${o}\\\n ** ${(s+1)*8}${o}`:u=`>= -(2${o} ** ${(s+1)*8-1}${o}) and < 2 ** ${(s+1)*8-1}${o}`:u=`>= ${e}${o} a\\\nnd <= ${t}${o}`,new Ie.ERR_OUT_OF_RANGE(\"value\",u,r)}Zo(n,i,s)}a(ei,\"checkIntBI\");function Re(r,e){if(typeof r!=\n\"number\")throw new Ie.ERR_INVALID_ARG_TYPE(e,\"number\",r)}a(Re,\"validateNumber\");function je(r,e,t){throw Math.\nfloor(r)!==r?(Re(r,t),new Ie.ERR_OUT_OF_RANGE(t||\"offset\",\"an integer\",r)):e<0?new Ie.ERR_BUFFER_OUT_OF_BOUNDS:\nnew Ie.ERR_OUT_OF_RANGE(t||\"offset\",`>= ${t?1:0} and <= ${e}`,r)}a(je,\"boundsError\");var Jo=/[^+/0-9A-Za-z-_]/g;\nfunction Xo(r){if(r=r.split(\"=\")[0],r=r.trim().replace(Jo,\"\"),r.length<2)return\"\";for(;r.length%4!==\n0;)r=r+\"=\";return r}a(Xo,\"base64clean\");function Nt(r,e){e=e||1/0;let t,n=r.length,i=null,s=[];for(let o=0;o<\nn;++o){if(t=r.charCodeAt(o),t>55295&&t<57344){if(!i){if(t>56319){(e-=3)>-1&&s.push(239,191,189);continue}else if(o+\n1===n){(e-=3)>-1&&s.push(239,191,189);continue}i=t;continue}if(t<56320){(e-=3)>-1&&s.push(239,191,189),\ni=t;continue}t=(i-55296<<10|t-56320)+65536}else i&&(e-=3)>-1&&s.push(239,191,189);if(i=null,t<128){if((e-=\n1)<0)break;s.push(t)}else if(t<2048){if((e-=2)<0)break;s.push(t>>6|192,t&63|128)}else if(t<65536){if((e-=\n3)<0)break;s.push(t>>12|224,t>>6&63|128,t&63|128)}else if(t<1114112){if((e-=4)<0)break;s.push(t>>18|\n240,t>>12&63|128,t>>6&63|128,t&63|128)}else throw new Error(\"Invalid code point\")}return s}a(Nt,\"utf\\\n8ToBytes\");function ea(r){let e=[];for(let t=0;t<r.length;++t)e.push(r.charCodeAt(t)&255);return e}a(\nea,\"asciiToBytes\");function ta(r,e){let t,n,i,s=[];for(let o=0;o<r.length&&!((e-=2)<0);++o)t=r.charCodeAt(\no),n=t>>8,i=t%256,s.push(i),s.push(n);return s}a(ta,\"utf16leToBytes\");function ti(r){return Ot.toByteArray(\nXo(r))}a(ti,\"base64ToBytes\");function ft(r,e,t,n){let i;for(i=0;i<n&&!(i+t>=e.length||i>=r.length);++i)\ne[i+t]=r[i];return i}a(ft,\"blitBuffer\");function ce(r,e){return r instanceof e||r!=null&&r.constructor!=\nnull&&r.constructor.name!=null&&r.constructor.name===e.name}a(ce,\"isInstance\");function $t(r){return r!==\nr}a($t,\"numberIsNaN\");var ra=function(){let r=\"0123456789abcdef\",e=new Array(256);for(let t=0;t<16;++t){\nlet n=t*16;for(let i=0;i<16;++i)e[n+i]=r[t]+r[i]}return e}();function ye(r){return typeof BigInt>\"u\"?\nna:r}a(ye,\"defineBigIntMethod\");function na(){throw new Error(\"BigInt not supported\")}a(na,\"BufferBi\\\ngIntNotDefined\")});var w,b,v,d,m,p=z(()=>{\"use strict\";w=globalThis,b=globalThis.setImmediate??(r=>setTimeout(r,0)),v=globalThis.\nclearImmediate??(r=>clearTimeout(r)),d=typeof globalThis.Buffer==\"function\"&&typeof globalThis.Buffer.\nallocUnsafe==\"function\"?globalThis.Buffer:ri().Buffer,m=globalThis.process??{};m.env??(m.env={});try{\nm.nextTick(()=>{})}catch{let e=Promise.resolve();m.nextTick=e.then.bind(e)}});var me=I((Pl,Gt)=>{\"use strict\";p();var Le=typeof Reflect==\"object\"?Reflect:null,ni=Le&&typeof Le.apply==\n\"function\"?Le.apply:a(function(e,t,n){return Function.prototype.apply.call(e,t,n)},\"ReflectApply\"),ht;\nLe&&typeof Le.ownKeys==\"function\"?ht=Le.ownKeys:Object.getOwnPropertySymbols?ht=a(function(e){return Object.\ngetOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))},\"ReflectOwnKeys\"):ht=a(function(e){return Object.\ngetOwnPropertyNames(e)},\"ReflectOwnKeys\");function ia(r){console&&console.warn&&console.warn(r)}a(ia,\n\"ProcessEmitWarning\");var si=Number.isNaN||a(function(e){return e!==e},\"NumberIsNaN\");function R(){R.\ninit.call(this)}a(R,\"EventEmitter\");Gt.exports=R;Gt.exports.once=ua;R.EventEmitter=R;R.prototype._events=\nvoid 0;R.prototype._eventsCount=0;R.prototype._maxListeners=void 0;var ii=10;function pt(r){if(typeof r!=\n\"function\")throw new TypeError('The \"listener\" argument must be of type Function. Received type '+typeof r)}\na(pt,\"checkListener\");Object.defineProperty(R,\"defaultMaxListeners\",{enumerable:!0,get:a(function(){\nreturn ii},\"get\"),set:a(function(r){if(typeof r!=\"number\"||r<0||si(r))throw new RangeError('The valu\\\ne of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received '+r+\".\");ii=r},\n\"set\")});R.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&\n(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};\nR.prototype.setMaxListeners=a(function(e){if(typeof e!=\"number\"||e<0||si(e))throw new RangeError('Th\\\ne value of \"n\" is out of range. It must be a non-negative number. Received '+e+\".\");return this._maxListeners=\ne,this},\"setMaxListeners\");function oi(r){return r._maxListeners===void 0?R.defaultMaxListeners:r._maxListeners}\na(oi,\"_getMaxListeners\");R.prototype.getMaxListeners=a(function(){return oi(this)},\"getMaxListeners\");\nR.prototype.emit=a(function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var i=e===\n\"error\",s=this._events;if(s!==void 0)i=i&&s.error===void 0;else if(!i)return!1;if(i){var o;if(t.length>\n0&&(o=t[0]),o instanceof Error)throw o;var u=new Error(\"Unhandled error.\"+(o?\" (\"+o.message+\")\":\"\"));\nthrow u.context=o,u}var c=s[e];if(c===void 0)return!1;if(typeof c==\"function\")ni(c,this,t);else for(var l=c.\nlength,f=fi(c,l),n=0;n<l;++n)ni(f[n],this,t);return!0},\"emit\");function ai(r,e,t,n){var i,s,o;if(pt(\nt),s=r._events,s===void 0?(s=r._events=Object.create(null),r._eventsCount=0):(s.newListener!==void 0&&\n(r.emit(\"newListener\",e,t.listener?t.listener:t),s=r._events),o=s[e]),o===void 0)o=s[e]=t,++r._eventsCount;else if(typeof o==\n\"function\"?o=s[e]=n?[t,o]:[o,t]:n?o.unshift(t):o.push(t),i=oi(r),i>0&&o.length>i&&!o.warned){o.warned=\n!0;var u=new Error(\"Possible EventEmitter memory leak detected. \"+o.length+\" \"+String(e)+\" listeners\\\n added. Use emitter.setMaxListeners() to increase limit\");u.name=\"MaxListenersExceededWarning\",u.emitter=\nr,u.type=e,u.count=o.length,ia(u)}return r}a(ai,\"_addListener\");R.prototype.addListener=a(function(e,t){\nreturn ai(this,e,t,!1)},\"addListener\");R.prototype.on=R.prototype.addListener;R.prototype.prependListener=\na(function(e,t){return ai(this,e,t,!0)},\"prependListener\");function sa(){if(!this.fired)return this.\ntarget.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.\ntarget):this.listener.apply(this.target,arguments)}a(sa,\"onceWrapper\");function ui(r,e,t){var n={fired:!1,\nwrapFn:void 0,target:r,type:e,listener:t},i=sa.bind(n);return i.listener=t,n.wrapFn=i,i}a(ui,\"_onceW\\\nrap\");R.prototype.once=a(function(e,t){return pt(t),this.on(e,ui(this,e,t)),this},\"once\");R.prototype.\nprependOnceListener=a(function(e,t){return pt(t),this.prependListener(e,ui(this,e,t)),this},\"prepend\\\nOnceListener\");R.prototype.removeListener=a(function(e,t){var n,i,s,o,u;if(pt(t),i=this._events,i===\nvoid 0)return this;if(n=i[e],n===void 0)return this;if(n===t||n.listener===t)--this._eventsCount===0?\nthis._events=Object.create(null):(delete i[e],i.removeListener&&this.emit(\"removeListener\",e,n.listener||\nt));else if(typeof n!=\"function\"){for(s=-1,o=n.length-1;o>=0;o--)if(n[o]===t||n[o].listener===t){u=n[o].\nlistener,s=o;break}if(s<0)return this;s===0?n.shift():oa(n,s),n.length===1&&(i[e]=n[0]),i.removeListener!==\nvoid 0&&this.emit(\"removeListener\",e,u||t)}return this},\"removeListener\");R.prototype.off=R.prototype.\nremoveListener;R.prototype.removeAllListeners=a(function(e){var t,n,i;if(n=this._events,n===void 0)return this;\nif(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=\n0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.\nlength===0){var s=Object.keys(n),o;for(i=0;i<s.length;++i)o=s[i],o!==\"removeListener\"&&this.removeAllListeners(\no);return this.removeAllListeners(\"removeListener\"),this._events=Object.create(null),this._eventsCount=\n0,this}if(t=n[e],typeof t==\"function\")this.removeListener(e,t);else if(t!==void 0)for(i=t.length-1;i>=\n0;i--)this.removeListener(e,t[i]);return this},\"removeAllListeners\");function ci(r,e,t){var n=r._events;\nif(n===void 0)return[];var i=n[e];return i===void 0?[]:typeof i==\"function\"?t?[i.listener||i]:[i]:t?\naa(i):fi(i,i.length)}a(ci,\"_listeners\");R.prototype.listeners=a(function(e){return ci(this,e,!0)},\"l\\\nisteners\");R.prototype.rawListeners=a(function(e){return ci(this,e,!1)},\"rawListeners\");R.listenerCount=\nfunction(r,e){return typeof r.listenerCount==\"function\"?r.listenerCount(e):li.call(r,e)};R.prototype.\nlistenerCount=li;function li(r){var e=this._events;if(e!==void 0){var t=e[r];if(typeof t==\"function\")\nreturn 1;if(t!==void 0)return t.length}return 0}a(li,\"listenerCount\");R.prototype.eventNames=a(function(){\nreturn this._eventsCount>0?ht(this._events):[]},\"eventNames\");function fi(r,e){for(var t=new Array(e),\nn=0;n<e;++n)t[n]=r[n];return t}a(fi,\"arrayClone\");function oa(r,e){for(;e+1<r.length;e++)r[e]=r[e+1];\nr.pop()}a(oa,\"spliceOne\");function aa(r){for(var e=new Array(r.length),t=0;t<e.length;++t)e[t]=r[t].\nlistener||r[t];return e}a(aa,\"unwrapListeners\");function ua(r,e){return new Promise(function(t,n){function i(o){\nr.removeListener(e,s),n(o)}a(i,\"errorListener\");function s(){typeof r.removeListener==\"function\"&&r.\nremoveListener(\"error\",i),t([].slice.call(arguments))}a(s,\"resolver\"),hi(r,e,s,{once:!0}),e!==\"error\"&&\nca(r,i,{once:!0})})}a(ua,\"once\");function ca(r,e,t){typeof r.on==\"function\"&&hi(r,\"error\",e,t)}a(ca,\n\"addErrorHandlerIfEventEmitter\");function hi(r,e,t,n){if(typeof r.on==\"function\")n.once?r.once(e,t):\nr.on(e,t);else if(typeof r.addEventListener==\"function\")r.addEventListener(e,a(function i(s){n.once&&\nr.removeEventListener(e,i),t(s)},\"wrapListener\"));else throw new TypeError('The \"emitter\" argument m\\\nust be of type EventEmitter. Received type '+typeof r)}a(hi,\"eventTargetAgnosticAddListener\")});var yi={};ne(yi,{Socket:()=>ge,isIP:()=>la});function la(r){return 0}var di,pi,S,ge,We=z(()=>{\"use s\\\ntrict\";p();di=xe(me(),1);a(la,\"isIP\");pi=/^[^.]+\\./,S=class S extends di.EventEmitter{constructor(){\nsuper(...arguments);E(this,\"opts\",{});E(this,\"connecting\",!1);E(this,\"pending\",!0);E(this,\"writable\",\n!0);E(this,\"encrypted\",!1);E(this,\"authorized\",!1);E(this,\"destroyed\",!1);E(this,\"ws\",null);E(this,\"\\\nwriteBuffer\");E(this,\"tlsState\",0);E(this,\"tlsRead\");E(this,\"tlsWrite\")}static get poolQueryViaFetch(){\nreturn S.opts.poolQueryViaFetch??S.defaults.poolQueryViaFetch}static set poolQueryViaFetch(t){S.opts.\npoolQueryViaFetch=t}static get fetchEndpoint(){return S.opts.fetchEndpoint??S.defaults.fetchEndpoint}static set fetchEndpoint(t){\nS.opts.fetchEndpoint=t}static get fetchConnectionCache(){return!0}static set fetchConnectionCache(t){\nconsole.warn(\"The `fetchConnectionCache` option is deprecated (now always `true`)\")}static get fetchFunction(){\nreturn S.opts.fetchFunction??S.defaults.fetchFunction}static set fetchFunction(t){S.opts.fetchFunction=\nt}static get webSocketConstructor(){return S.opts.webSocketConstructor??S.defaults.webSocketConstructor}static set webSocketConstructor(t){\nS.opts.webSocketConstructor=t}get webSocketConstructor(){return this.opts.webSocketConstructor??S.webSocketConstructor}set webSocketConstructor(t){\nthis.opts.webSocketConstructor=t}static get wsProxy(){return S.opts.wsProxy??S.defaults.wsProxy}static set wsProxy(t){\nS.opts.wsProxy=t}get wsProxy(){return this.opts.wsProxy??S.wsProxy}set wsProxy(t){this.opts.wsProxy=\nt}static get coalesceWrites(){return S.opts.coalesceWrites??S.defaults.coalesceWrites}static set coalesceWrites(t){\nS.opts.coalesceWrites=t}get coalesceWrites(){return this.opts.coalesceWrites??S.coalesceWrites}set coalesceWrites(t){\nthis.opts.coalesceWrites=t}static get useSecureWebSocket(){return S.opts.useSecureWebSocket??S.defaults.\nuseSecureWebSocket}static set useSecureWebSocket(t){S.opts.useSecureWebSocket=t}get useSecureWebSocket(){\nreturn this.opts.useSecureWebSocket??S.useSecureWebSocket}set useSecureWebSocket(t){this.opts.useSecureWebSocket=\nt}static get forceDisablePgSSL(){return S.opts.forceDisablePgSSL??S.defaults.forceDisablePgSSL}static set forceDisablePgSSL(t){\nS.opts.forceDisablePgSSL=t}get forceDisablePgSSL(){return this.opts.forceDisablePgSSL??S.forceDisablePgSSL}set forceDisablePgSSL(t){\nthis.opts.forceDisablePgSSL=t}static get disableSNI(){return S.opts.disableSNI??S.defaults.disableSNI}static set disableSNI(t){\nS.opts.disableSNI=t}get disableSNI(){return this.opts.disableSNI??S.disableSNI}set disableSNI(t){this.\nopts.disableSNI=t}static get pipelineConnect(){return S.opts.pipelineConnect??S.defaults.pipelineConnect}static set pipelineConnect(t){\nS.opts.pipelineConnect=t}get pipelineConnect(){return this.opts.pipelineConnect??S.pipelineConnect}set pipelineConnect(t){\nthis.opts.pipelineConnect=t}static get subtls(){return S.opts.subtls??S.defaults.subtls}static set subtls(t){\nS.opts.subtls=t}get subtls(){return this.opts.subtls??S.subtls}set subtls(t){this.opts.subtls=t}static get pipelineTLS(){\nreturn S.opts.pipelineTLS??S.defaults.pipelineTLS}static set pipelineTLS(t){S.opts.pipelineTLS=t}get pipelineTLS(){\nreturn this.opts.pipelineTLS??S.pipelineTLS}set pipelineTLS(t){this.opts.pipelineTLS=t}static get rootCerts(){\nreturn S.opts.rootCerts??S.defaults.rootCerts}static set rootCerts(t){S.opts.rootCerts=t}get rootCerts(){\nreturn this.opts.rootCerts??S.rootCerts}set rootCerts(t){this.opts.rootCerts=t}wsProxyAddrForHost(t,n){\nlet i=this.wsProxy;if(i===void 0)throw new Error(\"No WebSocket proxy is configured. Please see https\\\n://github.com/neondatabase/serverless/blob/main/CONFIG.md#wsproxy-string--host-string-port-number--s\\\ntring--string\");return typeof i==\"function\"?i(t,n):`${i}?address=${t}:${n}`}setNoDelay(){return this}setKeepAlive(){\nreturn this}ref(){return this}unref(){return this}connect(t,n,i){this.connecting=!0,i&&this.once(\"co\\\nnnect\",i);let s=a(()=>{this.connecting=!1,this.pending=!1,this.emit(\"connect\"),this.emit(\"ready\")},\"\\\nhandleWebSocketOpen\"),o=a((c,l=!1)=>{c.binaryType=\"arraybuffer\",c.addEventListener(\"error\",f=>{this.\nemit(\"error\",f),this.emit(\"close\")}),c.addEventListener(\"message\",f=>{if(this.tlsState===0){let y=d.\nfrom(f.data);this.emit(\"data\",y)}}),c.addEventListener(\"close\",()=>{this.emit(\"close\")}),l?s():c.addEventListener(\n\"open\",s)},\"configureWebSocket\"),u;try{u=this.wsProxyAddrForHost(n,typeof t==\"string\"?parseInt(t,10):\nt)}catch(c){this.emit(\"error\",c),this.emit(\"close\");return}try{let l=(this.useSecureWebSocket?\"wss:\":\n\"ws:\")+\"//\"+u;if(this.webSocketConstructor!==void 0)this.ws=new this.webSocketConstructor(l),o(this.\nws);else try{this.ws=new WebSocket(l),o(this.ws)}catch{this.ws=new __unstable_WebSocket(l),o(this.ws)}}catch(c){\nlet f=(this.useSecureWebSocket?\"https:\":\"http:\")+\"//\"+u;fetch(f,{headers:{Upgrade:\"websocket\"}}).then(\ny=>{if(this.ws=y.webSocket,this.ws==null)throw c;this.ws.accept(),o(this.ws,!0)}).catch(y=>{this.emit(\n\"error\",new Error(`All attempts to open a WebSocket to connect to the database failed. Please refer \\\nto https://github.com/neondatabase/serverless/blob/main/CONFIG.md#websocketconstructor-typeof-websoc\\\nket--undefined. Details: ${y}`)),this.emit(\"close\")})}}async startTls(t){if(this.subtls===void 0)throw new Error(\n\"For Postgres SSL connections, you must set `neonConfig.subtls` to the subtls library. See https://g\\\nithub.com/neondatabase/serverless/blob/main/CONFIG.md for more information.\");this.tlsState=1;let n=await this.\nsubtls.TrustedCert.databaseFromPEM(this.rootCerts),i=new this.subtls.WebSocketReadQueue(this.ws),s=i.\nread.bind(i),o=this.rawWrite.bind(this),{read:u,write:c}=await this.subtls.startTls(t,n,s,o,{useSNI:!this.\ndisableSNI,expectPreData:this.pipelineTLS?new Uint8Array([83]):void 0});this.tlsRead=u,this.tlsWrite=\nc,this.tlsState=2,this.encrypted=!0,this.authorized=!0,this.emit(\"secureConnection\",this),this.tlsReadLoop()}async tlsReadLoop(){\nfor(;;){let t=await this.tlsRead();if(t===void 0)break;{let n=d.from(t);this.emit(\"data\",n)}}}rawWrite(t){\nif(!this.coalesceWrites){this.ws.send(t);return}if(this.writeBuffer===void 0)this.writeBuffer=t,setTimeout(\n()=>{this.ws.send(this.writeBuffer),this.writeBuffer=void 0},0);else{let n=new Uint8Array(this.writeBuffer.\nlength+t.length);n.set(this.writeBuffer),n.set(t,this.writeBuffer.length),this.writeBuffer=n}}write(t,n=\"\\\nutf8\",i=s=>{}){return t.length===0?(i(),!0):(typeof t==\"string\"&&(t=d.from(t,n)),this.tlsState===0?(this.\nrawWrite(t),i()):this.tlsState===1?this.once(\"secureConnection\",()=>{this.write(t,n,i)}):(this.tlsWrite(\nt),i()),!0)}end(t=d.alloc(0),n=\"utf8\",i=()=>{}){return this.write(t,n,()=>{this.ws.close(),i()}),this}destroy(){\nreturn this.destroyed=!0,this.end()}};a(S,\"Socket\"),E(S,\"defaults\",{poolQueryViaFetch:!1,fetchEndpoint:a(\n(t,n,i)=>{let s;return i?.jwtAuth?s=t.replace(pi,\"apiauth.\"):s=t.replace(pi,\"api.\"),\"https://\"+s+\"/s\\\nql\"},\"fetchEndpoint\"),fetchConnectionCache:!0,fetchFunction:void 0,webSocketConstructor:void 0,wsProxy:a(\nt=>t+\"/v2\",\"wsProxy\"),useSecureWebSocket:!0,forceDisablePgSSL:!0,coalesceWrites:!0,pipelineConnect:\"\\\npassword\",subtls:void 0,rootCerts:\"\",pipelineTLS:!1,disableSNI:!1}),E(S,\"opts\",{});ge=S});var mi={};ne(mi,{parse:()=>Vt});function Vt(r,e=!1){let{protocol:t}=new URL(r),n=\"http:\"+r.substring(\nt.length),{username:i,password:s,host:o,hostname:u,port:c,pathname:l,search:f,searchParams:y,hash:g}=new URL(\nn);s=decodeURIComponent(s),i=decodeURIComponent(i),l=decodeURIComponent(l);let A=i+\":\"+s,C=e?Object.\nfromEntries(y.entries()):f;return{href:r,protocol:t,auth:A,username:i,password:s,host:o,hostname:u,port:c,\npathname:l,search:f,query:C,hash:g}}var zt=z(()=>{\"use strict\";p();a(Vt,\"parse\")});var Jt=I(Si=>{\"use strict\";p();Si.parse=function(r,e){return new Zt(r,e).parse()};var wt=class wt{constructor(e,t){\nthis.source=e,this.transform=t||Ea,this.position=0,this.entries=[],this.recorded=[],this.dimension=0}isEof(){\nreturn this.position>=this.source.length}nextCharacter(){var e=this.source[this.position++];return e===\n\"\\\\\"?{value:this.source[this.position++],escaped:!0}:{value:e,escaped:!1}}record(e){this.recorded.push(\ne)}newEntry(e){var t;(this.recorded.length>0||e)&&(t=this.recorded.join(\"\"),t===\"NULL\"&&!e&&(t=null),\nt!==null&&(t=this.transform(t)),this.entries.push(t),this.recorded=[])}consumeDimensions(){if(this.source[0]===\n\"[\")for(;!this.isEof();){var e=this.nextCharacter();if(e.value===\"=\")break}}parse(e){var t,n,i;for(this.\nconsumeDimensions();!this.isEof();)if(t=this.nextCharacter(),t.value===\"{\"&&!i)this.dimension++,this.\ndimension>1&&(n=new wt(this.source.substr(this.position-1),this.transform),this.entries.push(n.parse(\n!0)),this.position+=n.position-2);else if(t.value===\"}\"&&!i){if(this.dimension--,!this.dimension&&(this.\nnewEntry(),e))return this.entries}else t.value==='\"'&&!t.escaped?(i&&this.newEntry(!0),i=!i):t.value===\n\",\"&&!i?this.newEntry():this.record(t.value);if(this.dimension!==0)throw new Error(\"array dimension \\\nnot balanced\");return this.entries}};a(wt,\"ArrayParser\");var Zt=wt;function Ea(r){return r}a(Ea,\"ide\\\nntity\")});var Xt=I((Gl,Ei)=>{p();var Aa=Jt();Ei.exports={create:a(function(r,e){return{parse:a(function(){return Aa.\nparse(r,e)},\"parse\")}},\"create\")}});var _i=I((Kl,Ci)=>{\"use strict\";p();var Ca=/(\\d{1,})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})(\\.\\d{1,})?.*?( BC)?$/,\n_a=/^(\\d{1,})-(\\d{2})-(\\d{2})( BC)?$/,Ta=/([Z+-])(\\d{2})?:?(\\d{2})?:?(\\d{2})?/,Ia=/^-?infinity$/;Ci.\nexports=a(function(e){if(Ia.test(e))return Number(e.replace(\"i\",\"I\"));var t=Ca.exec(e);if(!t)return Pa(\ne)||null;var n=!!t[8],i=parseInt(t[1],10);n&&(i=Ai(i));var s=parseInt(t[2],10)-1,o=t[3],u=parseInt(t[4],\n10),c=parseInt(t[5],10),l=parseInt(t[6],10),f=t[7];f=f?1e3*parseFloat(f):0;var y,g=Ra(e);return g!=null?\n(y=new Date(Date.UTC(i,s,o,u,c,l,f)),er(i)&&y.setUTCFullYear(i),g!==0&&y.setTime(y.getTime()-g)):(y=\nnew Date(i,s,o,u,c,l,f),er(i)&&y.setFullYear(i)),y},\"parseDate\");function Pa(r){var e=_a.exec(r);if(e){\nvar t=parseInt(e[1],10),n=!!e[4];n&&(t=Ai(t));var i=parseInt(e[2],10)-1,s=e[3],o=new Date(t,i,s);return er(\nt)&&o.setFullYear(t),o}}a(Pa,\"getDate\");function Ra(r){if(r.endsWith(\"+00\"))return 0;var e=Ta.exec(r.\nsplit(\" \")[1]);if(e){var t=e[1];if(t===\"Z\")return 0;var n=t===\"-\"?-1:1,i=parseInt(e[2],10)*3600+parseInt(\ne[3]||0,10)*60+parseInt(e[4]||0,10);return i*n*1e3}}a(Ra,\"timeZoneOffset\");function Ai(r){return-(r-\n1)}a(Ai,\"bcYearToNegativeYear\");function er(r){return r>=0&&r<100}a(er,\"is0To99\")});var Ii=I((Jl,Ti)=>{p();Ti.exports=La;var Ba=Object.prototype.hasOwnProperty;function La(r){for(var e=1;e<\narguments.length;e++){var t=arguments[e];for(var n in t)Ba.call(t,n)&&(r[n]=t[n])}return r}a(La,\"ext\\\nend\")});var Bi=I((tf,Ri)=>{\"use strict\";p();var Fa=Ii();Ri.exports=Fe;function Fe(r){if(!(this instanceof Fe))\nreturn new Fe(r);Fa(this,$a(r))}a(Fe,\"PostgresInterval\");var ka=[\"seconds\",\"minutes\",\"hours\",\"days\",\n\"months\",\"years\"];Fe.prototype.toPostgres=function(){var r=ka.filter(this.hasOwnProperty,this);return this.\nmilliseconds&&r.indexOf(\"seconds\")<0&&r.push(\"seconds\"),r.length===0?\"0\":r.map(function(e){var t=this[e]||\n0;return e===\"seconds\"&&this.milliseconds&&(t=(t+this.milliseconds/1e3).toFixed(6).replace(/\\.?0+$/,\n\"\")),t+\" \"+e},this).join(\" \")};var Ma={years:\"Y\",months:\"M\",days:\"D\",hours:\"H\",minutes:\"M\",seconds:\"\\\nS\"},Ua=[\"years\",\"months\",\"days\"],Da=[\"hours\",\"minutes\",\"seconds\"];Fe.prototype.toISOString=Fe.prototype.\ntoISO=function(){var r=Ua.map(t,this).join(\"\"),e=Da.map(t,this).join(\"\");return\"P\"+r+\"T\"+e;function t(n){\nvar i=this[n]||0;return n===\"seconds\"&&this.milliseconds&&(i=(i+this.milliseconds/1e3).toFixed(6).replace(\n/0+$/,\"\")),i+Ma[n]}};var tr=\"([+-]?\\\\d+)\",Oa=tr+\"\\\\s+years?\",qa=tr+\"\\\\s+mons?\",Qa=tr+\"\\\\s+days?\",Na=\"\\\n([+-])?([\\\\d]*):(\\\\d\\\\d):(\\\\d\\\\d)\\\\.?(\\\\d{1,6})?\",ja=new RegExp([Oa,qa,Qa,Na].map(function(r){return\"\\\n(\"+r+\")?\"}).join(\"\\\\s*\")),Pi={years:2,months:4,days:6,hours:9,minutes:10,seconds:11,milliseconds:12},\nWa=[\"hours\",\"minutes\",\"seconds\",\"milliseconds\"];function Ha(r){var e=r+\"000000\".slice(r.length);return parseInt(\ne,10)/1e3}a(Ha,\"parseMilliseconds\");function $a(r){if(!r)return{};var e=ja.exec(r),t=e[8]===\"-\";return Object.\nkeys(Pi).reduce(function(n,i){var s=Pi[i],o=e[s];return!o||(o=i===\"milliseconds\"?Ha(o):parseInt(o,10),\n!o)||(t&&~Wa.indexOf(i)&&(o*=-1),n[i]=o),n},{})}a($a,\"parse\")});var Fi=I((sf,Li)=>{\"use strict\";p();Li.exports=a(function(e){if(/^\\\\x/.test(e))return new d(e.substr(\n2),\"hex\");for(var t=\"\",n=0;n<e.length;)if(e[n]!==\"\\\\\")t+=e[n],++n;else if(/[0-7]{3}/.test(e.substr(n+\n1,3)))t+=String.fromCharCode(parseInt(e.substr(n+1,3),8)),n+=4;else{for(var i=1;n+i<e.length&&e[n+i]===\n\"\\\\\";)i++;for(var s=0;s<Math.floor(i/2);++s)t+=\"\\\\\";n+=Math.floor(i/2)*2}return new d(t,\"binary\")},\"\\\nparseBytea\")});var Qi=I((uf,qi)=>{p();var Ve=Jt(),ze=Xt(),bt=_i(),Mi=Bi(),Ui=Fi();function vt(r){return a(function(t){\nreturn t===null?t:r(t)},\"nullAllowed\")}a(vt,\"allowNull\");function Di(r){return r===null?r:r===\"TRUE\"||\nr===\"t\"||r===\"true\"||r===\"y\"||r===\"yes\"||r===\"on\"||r===\"1\"}a(Di,\"parseBool\");function Ga(r){return r?\nVe.parse(r,Di):null}a(Ga,\"parseBoolArray\");function Va(r){return parseInt(r,10)}a(Va,\"parseBaseTenIn\\\nt\");function rr(r){return r?Ve.parse(r,vt(Va)):null}a(rr,\"parseIntegerArray\");function za(r){return r?\nVe.parse(r,vt(function(e){return Oi(e).trim()})):null}a(za,\"parseBigIntegerArray\");var Ka=a(function(r){\nif(!r)return null;var e=ze.create(r,function(t){return t!==null&&(t=or(t)),t});return e.parse()},\"pa\\\nrsePointArray\"),nr=a(function(r){if(!r)return null;var e=ze.create(r,function(t){return t!==null&&(t=\nparseFloat(t)),t});return e.parse()},\"parseFloatArray\"),te=a(function(r){if(!r)return null;var e=ze.\ncreate(r);return e.parse()},\"parseStringArray\"),ir=a(function(r){if(!r)return null;var e=ze.create(r,\nfunction(t){return t!==null&&(t=bt(t)),t});return e.parse()},\"parseDateArray\"),Ya=a(function(r){if(!r)\nreturn null;var e=ze.create(r,function(t){return t!==null&&(t=Mi(t)),t});return e.parse()},\"parseInt\\\nervalArray\"),Za=a(function(r){return r?Ve.parse(r,vt(Ui)):null},\"parseByteAArray\"),sr=a(function(r){\nreturn parseInt(r,10)},\"parseInteger\"),Oi=a(function(r){var e=String(r);return/^\\d+$/.test(e)?e:r},\"\\\nparseBigInteger\"),ki=a(function(r){return r?Ve.parse(r,vt(JSON.parse)):null},\"parseJsonArray\"),or=a(\nfunction(r){return r[0]!==\"(\"?null:(r=r.substring(1,r.length-1).split(\",\"),{x:parseFloat(r[0]),y:parseFloat(\nr[1])})},\"parsePoint\"),Ja=a(function(r){if(r[0]!==\"<\"&&r[1]!==\"(\")return null;for(var e=\"(\",t=\"\",n=!1,\ni=2;i<r.length-1;i++){if(n||(e+=r[i]),r[i]===\")\"){n=!0;continue}else if(!n)continue;r[i]!==\",\"&&(t+=\nr[i])}var s=or(e);return s.radius=parseFloat(t),s},\"parseCircle\"),Xa=a(function(r){r(20,Oi),r(21,sr),\nr(23,sr),r(26,sr),r(700,parseFloat),r(701,parseFloat),r(16,Di),r(1082,bt),r(1114,bt),r(1184,bt),r(600,\nor),r(651,te),r(718,Ja),r(1e3,Ga),r(1001,Za),r(1005,rr),r(1007,rr),r(1028,rr),r(1016,za),r(1017,Ka),\nr(1021,nr),r(1022,nr),r(1231,nr),r(1014,te),r(1015,te),r(1008,te),r(1009,te),r(1040,te),r(1041,te),r(\n1115,ir),r(1182,ir),r(1185,ir),r(1186,Mi),r(1187,Ya),r(17,Ui),r(114,JSON.parse.bind(JSON)),r(3802,JSON.\nparse.bind(JSON)),r(199,ki),r(3807,ki),r(3907,te),r(2951,te),r(791,te),r(1183,te),r(1270,te)},\"init\");\nqi.exports={init:Xa}});var ji=I((ff,Ni)=>{\"use strict\";p();var Y=1e6;function eu(r){var e=r.readInt32BE(0),t=r.readUInt32BE(\n4),n=\"\";e<0&&(e=~e+(t===0),t=~t+1>>>0,n=\"-\");var i=\"\",s,o,u,c,l,f;{if(s=e%Y,e=e/Y>>>0,o=4294967296*s+\nt,t=o/Y>>>0,u=\"\"+(o-Y*t),t===0&&e===0)return n+u+i;for(c=\"\",l=6-u.length,f=0;f<l;f++)c+=\"0\";i=c+u+i}\n{if(s=e%Y,e=e/Y>>>0,o=4294967296*s+t,t=o/Y>>>0,u=\"\"+(o-Y*t),t===0&&e===0)return n+u+i;for(c=\"\",l=6-u.\nlength,f=0;f<l;f++)c+=\"0\";i=c+u+i}{if(s=e%Y,e=e/Y>>>0,o=4294967296*s+t,t=o/Y>>>0,u=\"\"+(o-Y*t),t===0&&\ne===0)return n+u+i;for(c=\"\",l=6-u.length,f=0;f<l;f++)c+=\"0\";i=c+u+i}return s=e%Y,o=4294967296*s+t,u=\n\"\"+o%Y,n+u+i}a(eu,\"readInt8\");Ni.exports=eu});var Vi=I((df,Gi)=>{p();var tu=ji(),F=a(function(r,e,t,n,i){t=t||0,n=n||!1,i=i||function(A,C,Q){return A*\nMath.pow(2,Q)+C};var s=t>>3,o=a(function(A){return n?~A&255:A},\"inv\"),u=255,c=8-t%8;e<c&&(u=255<<8-e&\n255,c=e),t&&(u=u>>t%8);var l=0;t%8+e>=8&&(l=i(0,o(r[s])&u,c));for(var f=e+t>>3,y=s+1;y<f;y++)l=i(l,o(\nr[y]),8);var g=(e+t)%8;return g>0&&(l=i(l,o(r[f])>>8-g,g)),l},\"parseBits\"),$i=a(function(r,e,t){var n=Math.\npow(2,t-1)-1,i=F(r,1),s=F(r,t,1);if(s===0)return 0;var o=1,u=a(function(l,f,y){l===0&&(l=1);for(var g=1;g<=\ny;g++)o/=2,(f&1<<y-g)>0&&(l+=o);return l},\"parsePrecisionBits\"),c=F(r,e,t+1,!1,u);return s==Math.pow(\n2,t+1)-1?c===0?i===0?1/0:-1/0:NaN:(i===0?1:-1)*Math.pow(2,s-n)*c},\"parseFloatFromBits\"),ru=a(function(r){\nreturn F(r,1)==1?-1*(F(r,15,1,!0)+1):F(r,15,1)},\"parseInt16\"),Wi=a(function(r){return F(r,1)==1?-1*(F(\nr,31,1,!0)+1):F(r,31,1)},\"parseInt32\"),nu=a(function(r){return $i(r,23,8)},\"parseFloat32\"),iu=a(function(r){\nreturn $i(r,52,11)},\"parseFloat64\"),su=a(function(r){var e=F(r,16,32);if(e==49152)return NaN;for(var t=Math.\npow(1e4,F(r,16,16)),n=0,i=[],s=F(r,16),o=0;o<s;o++)n+=F(r,16,64+16*o)*t,t/=1e4;var u=Math.pow(10,F(r,\n16,48));return(e===0?1:-1)*Math.round(n*u)/u},\"parseNumeric\"),Hi=a(function(r,e){var t=F(e,1),n=F(e,\n63,1),i=new Date((t===0?1:-1)*n/1e3+9466848e5);return r||i.setTime(i.getTime()+i.getTimezoneOffset()*\n6e4),i.usec=n%1e3,i.getMicroSeconds=function(){return this.usec},i.setMicroSeconds=function(s){this.\nusec=s},i.getUTCMicroSeconds=function(){return this.usec},i},\"parseDate\"),Ke=a(function(r){for(var e=F(\nr,32),t=F(r,32,32),n=F(r,32,64),i=96,s=[],o=0;o<e;o++)s[o]=F(r,32,i),i+=32,i+=32;var u=a(function(l){\nvar f=F(r,32,i);if(i+=32,f==4294967295)return null;var y;if(l==23||l==20)return y=F(r,f*8,i),i+=f*8,\ny;if(l==25)return y=r.toString(this.encoding,i>>3,(i+=f<<3)>>3),y;console.log(\"ERROR: ElementType no\\\nt implemented: \"+l)},\"parseElement\"),c=a(function(l,f){var y=[],g;if(l.length>1){var A=l.shift();for(g=\n0;g<A;g++)y[g]=c(l,f);l.unshift(A)}else for(g=0;g<l[0];g++)y[g]=u(f);return y},\"parse\");return c(s,n)},\n\"parseArray\"),ou=a(function(r){return r.toString(\"utf8\")},\"parseText\"),au=a(function(r){return r===null?\nnull:F(r,8)>0},\"parseBool\"),uu=a(function(r){r(20,tu),r(21,ru),r(23,Wi),r(26,Wi),r(1700,su),r(700,nu),\nr(701,iu),r(16,au),r(1114,Hi.bind(null,!1)),r(1184,Hi.bind(null,!0)),r(1e3,Ke),r(1007,Ke),r(1016,Ke),\nr(1008,Ke),r(1009,Ke),r(25,ou)},\"init\");Gi.exports={init:uu}});var Ki=I((gf,zi)=>{p();zi.exports={BOOL:16,BYTEA:17,CHAR:18,INT8:20,INT2:21,INT4:23,REGPROC:24,TEXT:25,\nOID:26,TID:27,XID:28,CID:29,JSON:114,XML:142,PG_NODE_TREE:194,SMGR:210,PATH:602,POLYGON:604,CIDR:650,\nFLOAT4:700,FLOAT8:701,ABSTIME:702,RELTIME:703,TINTERVAL:704,CIRCLE:718,MACADDR8:774,MONEY:790,MACADDR:829,\nINET:869,ACLITEM:1033,BPCHAR:1042,VARCHAR:1043,DATE:1082,TIME:1083,TIMESTAMP:1114,TIMESTAMPTZ:1184,INTERVAL:1186,\nTIMETZ:1266,BIT:1560,VARBIT:1562,NUMERIC:1700,REFCURSOR:1790,REGPROCEDURE:2202,REGOPER:2203,REGOPERATOR:2204,\nREGCLASS:2205,REGTYPE:2206,UUID:2950,TXID_SNAPSHOT:2970,PG_LSN:3220,PG_NDISTINCT:3361,PG_DEPENDENCIES:3402,\nTSVECTOR:3614,TSQUERY:3615,GTSVECTOR:3642,REGCONFIG:3734,REGDICTIONARY:3769,JSONB:3802,REGNAMESPACE:4089,\nREGROLE:4096}});var Je=I(Ze=>{p();var cu=Qi(),lu=Vi(),fu=Xt(),hu=Ki();Ze.getTypeParser=pu;Ze.setTypeParser=du;Ze.arrayParser=\nfu;Ze.builtins=hu;var Ye={text:{},binary:{}};function Yi(r){return String(r)}a(Yi,\"noParse\");function pu(r,e){\nreturn e=e||\"text\",Ye[e]&&Ye[e][r]||Yi}a(pu,\"getTypeParser\");function du(r,e,t){typeof e==\"function\"&&\n(t=e,e=\"text\"),Ye[e][r]=t}a(du,\"setTypeParser\");cu.init(function(r,e){Ye.text[r]=e});lu.init(function(r,e){\nYe.binary[r]=e})});var St=I((Sf,Zi)=>{\"use strict\";p();var yu=Je();function xt(r){this._types=r||yu,this.text={},this.binary=\n{}}a(xt,\"TypeOverrides\");xt.prototype.getOverrides=function(r){switch(r){case\"text\":return this.text;case\"\\\nbinary\":return this.binary;default:return{}}};xt.prototype.setTypeParser=function(r,e,t){typeof e==\"\\\nfunction\"&&(t=e,e=\"text\"),this.getOverrides(e)[r]=t};xt.prototype.getTypeParser=function(r,e){return e=\ne||\"text\",this.getOverrides(e)[r]||this._types.getTypeParser(r,e)};Zi.exports=xt});function Xe(r){let e=1779033703,t=3144134277,n=1013904242,i=2773480762,s=1359893119,o=2600822924,u=528734635,\nc=1541459225,l=0,f=0,y=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,\n2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,\n4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,\n3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,\n1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,\n275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,\n2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],g=a((_,x)=>_>>>x|_<<32-\nx,\"rrot\"),A=new Uint32Array(64),C=new Uint8Array(64),Q=a(()=>{for(let B=0,$=0;B<16;B++,$+=4)A[B]=C[$]<<\n24|C[$+1]<<16|C[$+2]<<8|C[$+3];for(let B=16;B<64;B++){let $=g(A[B-15],7)^g(A[B-15],18)^A[B-15]>>>3,fe=g(\nA[B-2],17)^g(A[B-2],19)^A[B-2]>>>10;A[B]=A[B-16]+$+A[B-7]+fe|0}let _=e,x=t,H=n,le=i,N=s,ie=o,se=u,oe=c;\nfor(let B=0;B<64;B++){let $=g(N,6)^g(N,11)^g(N,25),fe=N&ie^~N&se,Ce=oe+$+fe+y[B]+A[B]|0,he=g(_,2)^g(\n_,13)^g(_,22),_e=_&x^_&H^x&H,ae=he+_e|0;oe=se,se=ie,ie=N,N=le+Ce|0,le=H,H=x,x=_,_=Ce+ae|0}e=e+_|0,t=\nt+x|0,n=n+H|0,i=i+le|0,s=s+N|0,o=o+ie|0,u=u+se|0,c=c+oe|0,f=0},\"process\"),P=a(_=>{typeof _==\"string\"&&\n(_=new TextEncoder().encode(_));for(let x=0;x<_.length;x++)C[f++]=_[x],f===64&&Q();l+=_.length},\"add\"),\nL=a(()=>{if(C[f++]=128,f==64&&Q(),f+8>64){for(;f<64;)C[f++]=0;Q()}for(;f<58;)C[f++]=0;let _=l*8;C[f++]=\n_/1099511627776&255,C[f++]=_/4294967296&255,C[f++]=_>>>24,C[f++]=_>>>16&255,C[f++]=_>>>8&255,C[f++]=\n_&255,Q();let x=new Uint8Array(32);return x[0]=e>>>24,x[1]=e>>>16&255,x[2]=e>>>8&255,x[3]=e&255,x[4]=\nt>>>24,x[5]=t>>>16&255,x[6]=t>>>8&255,x[7]=t&255,x[8]=n>>>24,x[9]=n>>>16&255,x[10]=n>>>8&255,x[11]=n&\n255,x[12]=i>>>24,x[13]=i>>>16&255,x[14]=i>>>8&255,x[15]=i&255,x[16]=s>>>24,x[17]=s>>>16&255,x[18]=s>>>\n8&255,x[19]=s&255,x[20]=o>>>24,x[21]=o>>>16&255,x[22]=o>>>8&255,x[23]=o&255,x[24]=u>>>24,x[25]=u>>>16&\n255,x[26]=u>>>8&255,x[27]=u&255,x[28]=c>>>24,x[29]=c>>>16&255,x[30]=c>>>8&255,x[31]=c&255,x},\"digest\");\nreturn r===void 0?{add:P,digest:L}:(P(r),L())}var Ji=z(()=>{\"use strict\";p();a(Xe,\"sha256\")});var U,et,Xi=z(()=>{\"use strict\";p();U=class U{constructor(){E(this,\"_dataLength\",0);E(this,\"_bufferL\\\nength\",0);E(this,\"_state\",new Int32Array(4));E(this,\"_buffer\",new ArrayBuffer(68));E(this,\"_buffer8\");\nE(this,\"_buffer32\");this._buffer8=new Uint8Array(this._buffer,0,68),this._buffer32=new Uint32Array(this.\n_buffer,0,17),this.start()}static hashByteArray(e,t=!1){return this.onePassHasher.start().appendByteArray(\ne).end(t)}static hashStr(e,t=!1){return this.onePassHasher.start().appendStr(e).end(t)}static hashAsciiStr(e,t=!1){\nreturn this.onePassHasher.start().appendAsciiStr(e).end(t)}static _hex(e){let t=U.hexChars,n=U.hexOut,\ni,s,o,u;for(u=0;u<4;u+=1)for(s=u*8,i=e[u],o=0;o<8;o+=2)n[s+1+o]=t.charAt(i&15),i>>>=4,n[s+0+o]=t.charAt(\ni&15),i>>>=4;return n.join(\"\")}static _md5cycle(e,t){let n=e[0],i=e[1],s=e[2],o=e[3];n+=(i&s|~i&o)+t[0]-\n680876936|0,n=(n<<7|n>>>25)+i|0,o+=(n&i|~n&s)+t[1]-389564586|0,o=(o<<12|o>>>20)+n|0,s+=(o&n|~o&i)+t[2]+\n606105819|0,s=(s<<17|s>>>15)+o|0,i+=(s&o|~s&n)+t[3]-1044525330|0,i=(i<<22|i>>>10)+s|0,n+=(i&s|~i&o)+\nt[4]-176418897|0,n=(n<<7|n>>>25)+i|0,o+=(n&i|~n&s)+t[5]+1200080426|0,o=(o<<12|o>>>20)+n|0,s+=(o&n|~o&\ni)+t[6]-1473231341|0,s=(s<<17|s>>>15)+o|0,i+=(s&o|~s&n)+t[7]-45705983|0,i=(i<<22|i>>>10)+s|0,n+=(i&s|\n~i&o)+t[8]+1770035416|0,n=(n<<7|n>>>25)+i|0,o+=(n&i|~n&s)+t[9]-1958414417|0,o=(o<<12|o>>>20)+n|0,s+=\n(o&n|~o&i)+t[10]-42063|0,s=(s<<17|s>>>15)+o|0,i+=(s&o|~s&n)+t[11]-1990404162|0,i=(i<<22|i>>>10)+s|0,\nn+=(i&s|~i&o)+t[12]+1804603682|0,n=(n<<7|n>>>25)+i|0,o+=(n&i|~n&s)+t[13]-40341101|0,o=(o<<12|o>>>20)+\nn|0,s+=(o&n|~o&i)+t[14]-1502002290|0,s=(s<<17|s>>>15)+o|0,i+=(s&o|~s&n)+t[15]+1236535329|0,i=(i<<22|\ni>>>10)+s|0,n+=(i&o|s&~o)+t[1]-165796510|0,n=(n<<5|n>>>27)+i|0,o+=(n&s|i&~s)+t[6]-1069501632|0,o=(o<<\n9|o>>>23)+n|0,s+=(o&i|n&~i)+t[11]+643717713|0,s=(s<<14|s>>>18)+o|0,i+=(s&n|o&~n)+t[0]-373897302|0,i=\n(i<<20|i>>>12)+s|0,n+=(i&o|s&~o)+t[5]-701558691|0,n=(n<<5|n>>>27)+i|0,o+=(n&s|i&~s)+t[10]+38016083|0,\no=(o<<9|o>>>23)+n|0,s+=(o&i|n&~i)+t[15]-660478335|0,s=(s<<14|s>>>18)+o|0,i+=(s&n|o&~n)+t[4]-405537848|\n0,i=(i<<20|i>>>12)+s|0,n+=(i&o|s&~o)+t[9]+568446438|0,n=(n<<5|n>>>27)+i|0,o+=(n&s|i&~s)+t[14]-1019803690|\n0,o=(o<<9|o>>>23)+n|0,s+=(o&i|n&~i)+t[3]-187363961|0,s=(s<<14|s>>>18)+o|0,i+=(s&n|o&~n)+t[8]+1163531501|\n0,i=(i<<20|i>>>12)+s|0,n+=(i&o|s&~o)+t[13]-1444681467|0,n=(n<<5|n>>>27)+i|0,o+=(n&s|i&~s)+t[2]-51403784|\n0,o=(o<<9|o>>>23)+n|0,s+=(o&i|n&~i)+t[7]+1735328473|0,s=(s<<14|s>>>18)+o|0,i+=(s&n|o&~n)+t[12]-1926607734|\n0,i=(i<<20|i>>>12)+s|0,n+=(i^s^o)+t[5]-378558|0,n=(n<<4|n>>>28)+i|0,o+=(n^i^s)+t[8]-2022574463|0,o=(o<<\n11|o>>>21)+n|0,s+=(o^n^i)+t[11]+1839030562|0,s=(s<<16|s>>>16)+o|0,i+=(s^o^n)+t[14]-35309556|0,i=(i<<\n23|i>>>9)+s|0,n+=(i^s^o)+t[1]-1530992060|0,n=(n<<4|n>>>28)+i|0,o+=(n^i^s)+t[4]+1272893353|0,o=(o<<11|\no>>>21)+n|0,s+=(o^n^i)+t[7]-155497632|0,s=(s<<16|s>>>16)+o|0,i+=(s^o^n)+t[10]-1094730640|0,i=(i<<23|\ni>>>9)+s|0,n+=(i^s^o)+t[13]+681279174|0,n=(n<<4|n>>>28)+i|0,o+=(n^i^s)+t[0]-358537222|0,o=(o<<11|o>>>\n21)+n|0,s+=(o^n^i)+t[3]-722521979|0,s=(s<<16|s>>>16)+o|0,i+=(s^o^n)+t[6]+76029189|0,i=(i<<23|i>>>9)+\ns|0,n+=(i^s^o)+t[9]-640364487|0,n=(n<<4|n>>>28)+i|0,o+=(n^i^s)+t[12]-421815835|0,o=(o<<11|o>>>21)+n|\n0,s+=(o^n^i)+t[15]+530742520|0,s=(s<<16|s>>>16)+o|0,i+=(s^o^n)+t[2]-995338651|0,i=(i<<23|i>>>9)+s|0,\nn+=(s^(i|~o))+t[0]-198630844|0,n=(n<<6|n>>>26)+i|0,o+=(i^(n|~s))+t[7]+1126891415|0,o=(o<<10|o>>>22)+\nn|0,s+=(n^(o|~i))+t[14]-1416354905|0,s=(s<<15|s>>>17)+o|0,i+=(o^(s|~n))+t[5]-57434055|0,i=(i<<21|i>>>\n11)+s|0,n+=(s^(i|~o))+t[12]+1700485571|0,n=(n<<6|n>>>26)+i|0,o+=(i^(n|~s))+t[3]-1894986606|0,o=(o<<10|\no>>>22)+n|0,s+=(n^(o|~i))+t[10]-1051523|0,s=(s<<15|s>>>17)+o|0,i+=(o^(s|~n))+t[1]-2054922799|0,i=(i<<\n21|i>>>11)+s|0,n+=(s^(i|~o))+t[8]+1873313359|0,n=(n<<6|n>>>26)+i|0,o+=(i^(n|~s))+t[15]-30611744|0,o=\n(o<<10|o>>>22)+n|0,s+=(n^(o|~i))+t[6]-1560198380|0,s=(s<<15|s>>>17)+o|0,i+=(o^(s|~n))+t[13]+1309151649|\n0,i=(i<<21|i>>>11)+s|0,n+=(s^(i|~o))+t[4]-145523070|0,n=(n<<6|n>>>26)+i|0,o+=(i^(n|~s))+t[11]-1120210379|\n0,o=(o<<10|o>>>22)+n|0,s+=(n^(o|~i))+t[2]+718787259|0,s=(s<<15|s>>>17)+o|0,i+=(o^(s|~n))+t[9]-343485551|\n0,i=(i<<21|i>>>11)+s|0,e[0]=n+e[0]|0,e[1]=i+e[1]|0,e[2]=s+e[2]|0,e[3]=o+e[3]|0}start(){return this._dataLength=\n0,this._bufferLength=0,this._state.set(U.stateIdentity),this}appendStr(e){let t=this._buffer8,n=this.\n_buffer32,i=this._bufferLength,s,o;for(o=0;o<e.length;o+=1){if(s=e.charCodeAt(o),s<128)t[i++]=s;else if(s<\n2048)t[i++]=(s>>>6)+192,t[i++]=s&63|128;else if(s<55296||s>56319)t[i++]=(s>>>12)+224,t[i++]=s>>>6&63|\n128,t[i++]=s&63|128;else{if(s=(s-55296)*1024+(e.charCodeAt(++o)-56320)+65536,s>1114111)throw new Error(\n\"Unicode standard supports code points up to U+10FFFF\");t[i++]=(s>>>18)+240,t[i++]=s>>>12&63|128,t[i++]=\ns>>>6&63|128,t[i++]=s&63|128}i>=64&&(this._dataLength+=64,U._md5cycle(this._state,n),i-=64,n[0]=n[16])}\nreturn this._bufferLength=i,this}appendAsciiStr(e){let t=this._buffer8,n=this._buffer32,i=this._bufferLength,\ns,o=0;for(;;){for(s=Math.min(e.length-o,64-i);s--;)t[i++]=e.charCodeAt(o++);if(i<64)break;this._dataLength+=\n64,U._md5cycle(this._state,n),i=0}return this._bufferLength=i,this}appendByteArray(e){let t=this._buffer8,\nn=this._buffer32,i=this._bufferLength,s,o=0;for(;;){for(s=Math.min(e.length-o,64-i);s--;)t[i++]=e[o++];\nif(i<64)break;this._dataLength+=64,U._md5cycle(this._state,n),i=0}return this._bufferLength=i,this}getState(){\nlet e=this._state;return{buffer:String.fromCharCode.apply(null,Array.from(this._buffer8)),buflen:this.\n_bufferLength,length:this._dataLength,state:[e[0],e[1],e[2],e[3]]}}setState(e){let t=e.buffer,n=e.state,\ni=this._state,s;for(this._dataLength=e.length,this._bufferLength=e.buflen,i[0]=n[0],i[1]=n[1],i[2]=n[2],\ni[3]=n[3],s=0;s<t.length;s+=1)this._buffer8[s]=t.charCodeAt(s)}end(e=!1){let t=this._bufferLength,n=this.\n_buffer8,i=this._buffer32,s=(t>>2)+1;this._dataLength+=t;let o=this._dataLength*8;if(n[t]=128,n[t+1]=\nn[t+2]=n[t+3]=0,i.set(U.buffer32Identity.subarray(s),s),t>55&&(U._md5cycle(this._state,i),i.set(U.buffer32Identity)),\no<=4294967295)i[14]=o;else{let u=o.toString(16).match(/(.*?)(.{0,8})$/);if(u===null)return;let c=parseInt(\nu[2],16),l=parseInt(u[1],16)||0;i[14]=c,i[15]=l}return U._md5cycle(this._state,i),e?this._state:U._hex(\nthis._state)}};a(U,\"Md5\"),E(U,\"stateIdentity\",new Int32Array([1732584193,-271733879,-1732584194,271733878])),\nE(U,\"buffer32Identity\",new Int32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])),E(U,\"hexChars\",\"0123456789\\\nabcdef\"),E(U,\"hexOut\",[]),E(U,\"onePassHasher\",new U);et=U});var ar={};ne(ar,{createHash:()=>gu,createHmac:()=>wu,randomBytes:()=>mu});function mu(r){return crypto.\ngetRandomValues(d.alloc(r))}function gu(r){if(r===\"sha256\")return{update:a(function(e){return{digest:a(\nfunction(){return d.from(Xe(e))},\"digest\")}},\"update\")};if(r===\"md5\")return{update:a(function(e){return{\ndigest:a(function(){return typeof e==\"string\"?et.hashStr(e):et.hashByteArray(e)},\"digest\")}},\"update\")};\nthrow new Error(`Hash type '${r}' not supported`)}function wu(r,e){if(r!==\"sha256\")throw new Error(`\\\nOnly sha256 is supported (requested: '${r}')`);return{update:a(function(t){return{digest:a(function(){\ntypeof e==\"string\"&&(e=new TextEncoder().encode(e)),typeof t==\"string\"&&(t=new TextEncoder().encode(\nt));let n=e.length;if(n>64)e=Xe(e);else if(n<64){let c=new Uint8Array(64);c.set(e),e=c}let i=new Uint8Array(\n64),s=new Uint8Array(64);for(let c=0;c<64;c++)i[c]=54^e[c],s[c]=92^e[c];let o=new Uint8Array(t.length+\n64);o.set(i,0),o.set(t,64);let u=new Uint8Array(96);return u.set(s,0),u.set(Xe(o),64),d.from(Xe(u))},\n\"digest\")}},\"update\")}}var ur=z(()=>{\"use strict\";p();Ji();Xi();a(mu,\"randomBytes\");a(gu,\"createHash\");\na(wu,\"createHmac\")});var tt=I((Mf,cr)=>{\"use strict\";p();cr.exports={host:\"localhost\",user:m.platform===\"win32\"?m.env.USERNAME:\nm.env.USER,database:void 0,password:null,connectionString:void 0,port:5432,rows:0,binary:!1,max:10,idleTimeoutMillis:3e4,\nclient_encoding:\"\",ssl:!1,application_name:void 0,fallback_application_name:void 0,options:void 0,parseInputDatesAsUTC:!1,\nstatement_timeout:!1,lock_timeout:!1,idle_in_transaction_session_timeout:!1,query_timeout:!1,connect_timeout:0,\nkeepalives:1,keepalives_idle:0};var ke=Je(),bu=ke.getTypeParser(20,\"text\"),vu=ke.getTypeParser(1016,\n\"text\");cr.exports.__defineSetter__(\"parseInt8\",function(r){ke.setTypeParser(20,\"text\",r?ke.getTypeParser(\n23,\"text\"):bu),ke.setTypeParser(1016,\"text\",r?ke.getTypeParser(1007,\"text\"):vu)})});var rt=I((Df,ts)=>{\"use strict\";p();var xu=(ur(),D(ar)),Su=tt();function Eu(r){var e=r.replace(/\\\\/g,\n\"\\\\\\\\\").replace(/\"/g,'\\\\\"');return'\"'+e+'\"'}a(Eu,\"escapeElement\");function es(r){for(var e=\"{\",t=0;t<\nr.length;t++)t>0&&(e=e+\",\"),r[t]===null||typeof r[t]>\"u\"?e=e+\"NULL\":Array.isArray(r[t])?e=e+es(r[t]):\nr[t]instanceof d?e+=\"\\\\\\\\x\"+r[t].toString(\"hex\"):e+=Eu(Et(r[t]));return e=e+\"}\",e}a(es,\"arrayString\");\nvar Et=a(function(r,e){if(r==null)return null;if(r instanceof d)return r;if(ArrayBuffer.isView(r)){var t=d.\nfrom(r.buffer,r.byteOffset,r.byteLength);return t.length===r.byteLength?t:t.slice(r.byteOffset,r.byteOffset+\nr.byteLength)}return r instanceof Date?Su.parseInputDatesAsUTC?_u(r):Cu(r):Array.isArray(r)?es(r):typeof r==\n\"object\"?Au(r,e):r.toString()},\"prepareValue\");function Au(r,e){if(r&&typeof r.toPostgres==\"function\"){\nif(e=e||[],e.indexOf(r)!==-1)throw new Error('circular reference detected while preparing \"'+r+'\" fo\\\nr query');return e.push(r),Et(r.toPostgres(Et),e)}return JSON.stringify(r)}a(Au,\"prepareObject\");function W(r,e){\nfor(r=\"\"+r;r.length<e;)r=\"0\"+r;return r}a(W,\"pad\");function Cu(r){var e=-r.getTimezoneOffset(),t=r.getFullYear(),\nn=t<1;n&&(t=Math.abs(t)+1);var i=W(t,4)+\"-\"+W(r.getMonth()+1,2)+\"-\"+W(r.getDate(),2)+\"T\"+W(r.getHours(),\n2)+\":\"+W(r.getMinutes(),2)+\":\"+W(r.getSeconds(),2)+\".\"+W(r.getMilliseconds(),3);return e<0?(i+=\"-\",e*=\n-1):i+=\"+\",i+=W(Math.floor(e/60),2)+\":\"+W(e%60,2),n&&(i+=\" BC\"),i}a(Cu,\"dateToString\");function _u(r){\nvar e=r.getUTCFullYear(),t=e<1;t&&(e=Math.abs(e)+1);var n=W(e,4)+\"-\"+W(r.getUTCMonth()+1,2)+\"-\"+W(r.\ngetUTCDate(),2)+\"T\"+W(r.getUTCHours(),2)+\":\"+W(r.getUTCMinutes(),2)+\":\"+W(r.getUTCSeconds(),2)+\".\"+W(\nr.getUTCMilliseconds(),3);return n+=\"+00:00\",t&&(n+=\" BC\"),n}a(_u,\"dateToStringUTC\");function Tu(r,e,t){\nreturn r=typeof r==\"string\"?{text:r}:r,e&&(typeof e==\"function\"?r.callback=e:r.values=e),t&&(r.callback=\nt),r}a(Tu,\"normalizeQueryConfig\");var lr=a(function(r){return xu.createHash(\"md5\").update(r,\"utf-8\").\ndigest(\"hex\")},\"md5\"),Iu=a(function(r,e,t){var n=lr(e+r),i=lr(d.concat([d.from(n),t]));return\"md5\"+i},\n\"postgresMd5PasswordHash\");ts.exports={prepareValue:a(function(e){return Et(e)},\"prepareValueWrapper\"),\nnormalizeQueryConfig:Tu,postgresMd5PasswordHash:Iu,md5:lr}});var nt={};ne(nt,{default:()=>Lu});var Lu,it=z(()=>{\"use strict\";p();Lu={}});var hs=I((zf,fs)=>{\"use strict\";p();var hr=(ur(),D(ar));function Fu(r){if(r.indexOf(\"SCRAM-SHA-256\")===\n-1)throw new Error(\"SASL: Only mechanism SCRAM-SHA-256 is currently supported\");let e=hr.randomBytes(\n18).toString(\"base64\");return{mechanism:\"SCRAM-SHA-256\",clientNonce:e,response:\"n,,n=*,r=\"+e,message:\"\\\nSASLInitialResponse\"}}a(Fu,\"startSession\");function ku(r,e,t){if(r.message!==\"SASLInitialResponse\")throw new Error(\n\"SASL: Last message was not SASLInitialResponse\");if(typeof e!=\"string\")throw new Error(\"SASL: SCRAM\\\n-SERVER-FIRST-MESSAGE: client password must be a string\");if(typeof t!=\"string\")throw new Error(\"SAS\\\nL: SCRAM-SERVER-FIRST-MESSAGE: serverData must be a string\");let n=Du(t);if(n.nonce.startsWith(r.clientNonce)){\nif(n.nonce.length===r.clientNonce.length)throw new Error(\"SASL: SCRAM-SERVER-FIRST-MESSAGE: server n\\\nonce is too short\")}else throw new Error(\"SASL: SCRAM-SERVER-FIRST-MESSAGE: server nonce does not st\\\nart with client nonce\");var i=d.from(n.salt,\"base64\"),s=Qu(e,i,n.iteration),o=Me(s,\"Client Key\"),u=qu(\no),c=\"n=*,r=\"+r.clientNonce,l=\"r=\"+n.nonce+\",s=\"+n.salt+\",i=\"+n.iteration,f=\"c=biws,r=\"+n.nonce,y=c+\n\",\"+l+\",\"+f,g=Me(u,y),A=ls(o,g),C=A.toString(\"base64\"),Q=Me(s,\"Server Key\"),P=Me(Q,y);r.message=\"SAS\\\nLResponse\",r.serverSignature=P.toString(\"base64\"),r.response=f+\",p=\"+C}a(ku,\"continueSession\");function Mu(r,e){\nif(r.message!==\"SASLResponse\")throw new Error(\"SASL: Last message was not SASLResponse\");if(typeof e!=\n\"string\")throw new Error(\"SASL: SCRAM-SERVER-FINAL-MESSAGE: serverData must be a string\");let{serverSignature:t}=Ou(\ne);if(t!==r.serverSignature)throw new Error(\"SASL: SCRAM-SERVER-FINAL-MESSAGE: server signature does\\\n not match\")}a(Mu,\"finalizeSession\");function Uu(r){if(typeof r!=\"string\")throw new TypeError(\"SASL:\\\n text must be a string\");return r.split(\"\").map((e,t)=>r.charCodeAt(t)).every(e=>e>=33&&e<=43||e>=45&&\ne<=126)}a(Uu,\"isPrintableChars\");function us(r){return/^(?:[a-zA-Z0-9+/]{4})*(?:[a-zA-Z0-9+/]{2}==|[a-zA-Z0-9+/]{3}=)?$/.\ntest(r)}a(us,\"isBase64\");function cs(r){if(typeof r!=\"string\")throw new TypeError(\"SASL: attribute p\\\nairs text must be a string\");return new Map(r.split(\",\").map(e=>{if(!/^.=/.test(e))throw new Error(\"\\\nSASL: Invalid attribute pair entry\");let t=e[0],n=e.substring(2);return[t,n]}))}a(cs,\"parseAttribute\\\nPairs\");function Du(r){let e=cs(r),t=e.get(\"r\");if(t){if(!Uu(t))throw new Error(\"SASL: SCRAM-SERVER-\\\nFIRST-MESSAGE: nonce must only contain printable characters\")}else throw new Error(\"SASL: SCRAM-SERV\\\nER-FIRST-MESSAGE: nonce missing\");let n=e.get(\"s\");if(n){if(!us(n))throw new Error(\"SASL: SCRAM-SERV\\\nER-FIRST-MESSAGE: salt must be base64\")}else throw new Error(\"SASL: SCRAM-SERVER-FIRST-MESSAGE: salt\\\n missing\");let i=e.get(\"i\");if(i){if(!/^[1-9][0-9]*$/.test(i))throw new Error(\"SASL: SCRAM-SERVER-FI\\\nRST-MESSAGE: invalid iteration count\")}else throw new Error(\"SASL: SCRAM-SERVER-FIRST-MESSAGE: itera\\\ntion missing\");let s=parseInt(i,10);return{nonce:t,salt:n,iteration:s}}a(Du,\"parseServerFirstMessage\");\nfunction Ou(r){let t=cs(r).get(\"v\");if(t){if(!us(t))throw new Error(\"SASL: SCRAM-SERVER-FINAL-MESSAG\\\nE: server signature must be base64\")}else throw new Error(\"SASL: SCRAM-SERVER-FINAL-MESSAGE: server \\\nsignature is missing\");return{serverSignature:t}}a(Ou,\"parseServerFinalMessage\");function ls(r,e){if(!d.\nisBuffer(r))throw new TypeError(\"first argument must be a Buffer\");if(!d.isBuffer(e))throw new TypeError(\n\"second argument must be a Buffer\");if(r.length!==e.length)throw new Error(\"Buffer lengths must matc\\\nh\");if(r.length===0)throw new Error(\"Buffers cannot be empty\");return d.from(r.map((t,n)=>r[n]^e[n]))}\na(ls,\"xorBuffers\");function qu(r){return hr.createHash(\"sha256\").update(r).digest()}a(qu,\"sha256\");function Me(r,e){\nreturn hr.createHmac(\"sha256\",r).update(e).digest()}a(Me,\"hmacSha256\");function Qu(r,e,t){for(var n=Me(\nr,d.concat([e,d.from([0,0,0,1])])),i=n,s=0;s<t-1;s++)n=Me(r,n),i=ls(i,n);return i}a(Qu,\"Hi\");fs.exports=\n{startSession:Fu,continueSession:ku,finalizeSession:Mu}});var pr={};ne(pr,{join:()=>Nu});function Nu(...r){return r.join(\"/\")}var dr=z(()=>{\"use strict\";p();a(\nNu,\"join\")});var yr={};ne(yr,{stat:()=>ju});function ju(r,e){e(new Error(\"No filesystem\"))}var mr=z(()=>{\"use str\\\nict\";p();a(ju,\"stat\")});var gr={};ne(gr,{default:()=>Wu});var Wu,wr=z(()=>{\"use strict\";p();Wu={}});var ps={};ne(ps,{StringDecoder:()=>br});var vr,br,ds=z(()=>{\"use strict\";p();vr=class vr{constructor(e){\nE(this,\"td\");this.td=new TextDecoder(e)}write(e){return this.td.decode(e,{stream:!0})}end(e){return this.\ntd.decode(e)}};a(vr,\"StringDecoder\");br=vr});var ws=I((ih,gs)=>{\"use strict\";p();var{Transform:Hu}=(wr(),D(gr)),{StringDecoder:$u}=(ds(),D(ps)),be=Symbol(\n\"last\"),Ct=Symbol(\"decoder\");function Gu(r,e,t){let n;if(this.overflow){if(n=this[Ct].write(r).split(\nthis.matcher),n.length===1)return t();n.shift(),this.overflow=!1}else this[be]+=this[Ct].write(r),n=\nthis[be].split(this.matcher);this[be]=n.pop();for(let i=0;i<n.length;i++)try{ms(this,this.mapper(n[i]))}catch(s){\nreturn t(s)}if(this.overflow=this[be].length>this.maxLength,this.overflow&&!this.skipOverflow){t(new Error(\n\"maximum buffer reached\"));return}t()}a(Gu,\"transform\");function Vu(r){if(this[be]+=this[Ct].end(),this[be])\ntry{ms(this,this.mapper(this[be]))}catch(e){return r(e)}r()}a(Vu,\"flush\");function ms(r,e){e!==void 0&&\nr.push(e)}a(ms,\"push\");function ys(r){return r}a(ys,\"noop\");function zu(r,e,t){switch(r=r||/\\r?\\n/,e=\ne||ys,t=t||{},arguments.length){case 1:typeof r==\"function\"?(e=r,r=/\\r?\\n/):typeof r==\"object\"&&!(r instanceof\nRegExp)&&!r[Symbol.split]&&(t=r,r=/\\r?\\n/);break;case 2:typeof r==\"function\"?(t=e,e=r,r=/\\r?\\n/):typeof e==\n\"object\"&&(t=e,e=ys)}t=Object.assign({},t),t.autoDestroy=!0,t.transform=Gu,t.flush=Vu,t.readableObjectMode=\n!0;let n=new Hu(t);return n[be]=\"\",n[Ct]=new $u(\"utf8\"),n.matcher=r,n.mapper=e,n.maxLength=t.maxLength,\nn.skipOverflow=t.skipOverflow||!1,n.overflow=!1,n._destroy=function(i,s){this._writableState.errorEmitted=\n!1,s(i)},n}a(zu,\"split\");gs.exports=zu});var xs=I((ah,de)=>{\"use strict\";p();var bs=(dr(),D(pr)),Ku=(wr(),D(gr)).Stream,Yu=ws(),vs=(it(),D(nt)),\nZu=5432,_t=m.platform===\"win32\",st=m.stderr,Ju=56,Xu=7,ec=61440,tc=32768;function rc(r){return(r&ec)==\ntc}a(rc,\"isRegFile\");var Ue=[\"host\",\"port\",\"database\",\"user\",\"password\"],xr=Ue.length,nc=Ue[xr-1];function Sr(){\nvar r=st instanceof Ku&&st.writable===!0;if(r){var e=Array.prototype.slice.call(arguments).concat(`\n`);st.write(vs.format.apply(vs,e))}}a(Sr,\"warn\");Object.defineProperty(de.exports,\"isWin\",{get:a(function(){\nreturn _t},\"get\"),set:a(function(r){_t=r},\"set\")});de.exports.warnTo=function(r){var e=st;return st=\nr,e};de.exports.getFileName=function(r){var e=r||m.env,t=e.PGPASSFILE||(_t?bs.join(e.APPDATA||\"./\",\"\\\npostgresql\",\"pgpass.conf\"):bs.join(e.HOME||\"./\",\".pgpass\"));return t};de.exports.usePgPass=function(r,e){\nreturn Object.prototype.hasOwnProperty.call(m.env,\"PGPASSWORD\")?!1:_t?!0:(e=e||\"<unkn>\",rc(r.mode)?r.\nmode&(Ju|Xu)?(Sr('WARNING: password file \"%s\" has group or world access; permissions should be u=rw \\\n(0600) or less',e),!1):!0:(Sr('WARNING: password file \"%s\" is not a plain file',e),!1))};var ic=de.exports.\nmatch=function(r,e){return Ue.slice(0,-1).reduce(function(t,n,i){return i==1&&Number(r[n]||Zu)===Number(\ne[n])?t&&!0:t&&(e[n]===\"*\"||e[n]===r[n])},!0)};de.exports.getPassword=function(r,e,t){var n,i=e.pipe(\nYu());function s(c){var l=sc(c);l&&oc(l)&&ic(r,l)&&(n=l[nc],i.end())}a(s,\"onLine\");var o=a(function(){\ne.destroy(),t(n)},\"onEnd\"),u=a(function(c){e.destroy(),Sr(\"WARNING: error on reading file: %s\",c),t(\nvoid 0)},\"onErr\");e.on(\"error\",u),i.on(\"data\",s).on(\"end\",o).on(\"error\",u)};var sc=de.exports.parseLine=\nfunction(r){if(r.length<11||r.match(/^\\s+#/))return null;for(var e=\"\",t=\"\",n=0,i=0,s=0,o={},u=!1,c=a(\nfunction(f,y,g){var A=r.substring(y,g);Object.hasOwnProperty.call(m.env,\"PGPASS_NO_DEESCAPE\")||(A=A.\nreplace(/\\\\([:\\\\])/g,\"$1\")),o[Ue[f]]=A},\"addToObj\"),l=0;l<r.length-1;l+=1){if(e=r.charAt(l+1),t=r.charAt(\nl),u=n==xr-1,u){c(n,i);break}l>=0&&e==\":\"&&t!==\"\\\\\"&&(c(n,i,l+1),i=l+2,n+=1)}return o=Object.keys(o).\nlength===xr?o:null,o},oc=de.exports.isValidEntry=function(r){for(var e={0:function(o){return o.length>\n0},1:function(o){return o===\"*\"?!0:(o=Number(o),isFinite(o)&&o>0&&o<9007199254740992&&Math.floor(o)===\no)},2:function(o){return o.length>0},3:function(o){return o.length>0},4:function(o){return o.length>\n0}},t=0;t<Ue.length;t+=1){var n=e[t],i=r[Ue[t]]||\"\",s=n(i);if(!s)return!1}return!0}});var Es=I((fh,Er)=>{\"use strict\";p();var lh=(dr(),D(pr)),Ss=(mr(),D(yr)),Tt=xs();Er.exports=function(r,e){\nvar t=Tt.getFileName();Ss.stat(t,function(n,i){if(n||!Tt.usePgPass(i,t))return e(void 0);var s=Ss.createReadStream(\nt);Tt.getPassword(r,s,e)})};Er.exports.warnTo=Tt.warnTo});var As={};ne(As,{default:()=>ac});var ac,Cs=z(()=>{\"use strict\";p();ac={}});var Ts=I((dh,_s)=>{\"use strict\";p();var uc=(zt(),D(mi)),Ar=(mr(),D(yr));function Cr(r){if(r.charAt(0)===\n\"/\"){var t=r.split(\" \");return{host:t[0],database:t[1]}}var e=uc.parse(/ |%[^a-f0-9]|%[a-f0-9][^a-f0-9]/i.\ntest(r)?encodeURI(r).replace(/\\%25(\\d\\d)/g,\"%$1\"):r,!0),t=e.query;for(var n in t)Array.isArray(t[n])&&\n(t[n]=t[n][t[n].length-1]);var i=(e.auth||\":\").split(\":\");if(t.user=i[0],t.password=i.splice(1).join(\n\":\"),t.port=e.port,e.protocol==\"socket:\")return t.host=decodeURI(e.pathname),t.database=e.query.db,t.\nclient_encoding=e.query.encoding,t;t.host||(t.host=e.hostname);var s=e.pathname;if(!t.host&&s&&/^%2f/i.\ntest(s)){var o=s.split(\"/\");t.host=decodeURIComponent(o[0]),s=o.splice(1).join(\"/\")}switch(s&&s.charAt(\n0)===\"/\"&&(s=s.slice(1)||null),t.database=s&&decodeURI(s),(t.ssl===\"true\"||t.ssl===\"1\")&&(t.ssl=!0),\nt.ssl===\"0\"&&(t.ssl=!1),(t.sslcert||t.sslkey||t.sslrootcert||t.sslmode)&&(t.ssl={}),t.sslcert&&(t.ssl.\ncert=Ar.readFileSync(t.sslcert).toString()),t.sslkey&&(t.ssl.key=Ar.readFileSync(t.sslkey).toString()),\nt.sslrootcert&&(t.ssl.ca=Ar.readFileSync(t.sslrootcert).toString()),t.sslmode){case\"disable\":{t.ssl=\n!1;break}case\"prefer\":case\"require\":case\"verify-ca\":case\"verify-full\":break;case\"no-verify\":{t.ssl.rejectUnauthorized=\n!1;break}}return t}a(Cr,\"parse\");_s.exports=Cr;Cr.parse=Cr});var It=I((gh,Rs)=>{\"use strict\";p();var cc=(Cs(),D(As)),Ps=tt(),Is=Ts().parse,G=a(function(r,e,t){return t===\nvoid 0?t=m.env[\"PG\"+r.toUpperCase()]:t===!1||(t=m.env[t]),e[r]||t||Ps[r]},\"val\"),lc=a(function(){switch(m.\nenv.PGSSLMODE){case\"disable\":return!1;case\"prefer\":case\"require\":case\"verify-ca\":case\"verify-full\":return!0;case\"\\\nno-verify\":return{rejectUnauthorized:!1}}return Ps.ssl},\"readSSLConfigFromEnvironment\"),De=a(function(r){\nreturn\"'\"+(\"\"+r).replace(/\\\\/g,\"\\\\\\\\\").replace(/'/g,\"\\\\'\")+\"'\"},\"quoteParamValue\"),re=a(function(r,e,t){\nvar n=e[t];n!=null&&r.push(t+\"=\"+De(n))},\"add\"),Tr=class Tr{constructor(e){e=typeof e==\"string\"?Is(e):\ne||{},e.connectionString&&(e=Object.assign({},e,Is(e.connectionString))),this.user=G(\"user\",e),this.\ndatabase=G(\"database\",e),this.database===void 0&&(this.database=this.user),this.port=parseInt(G(\"por\\\nt\",e),10),this.host=G(\"host\",e),Object.defineProperty(this,\"password\",{configurable:!0,enumerable:!1,\nwritable:!0,value:G(\"password\",e)}),this.binary=G(\"binary\",e),this.options=G(\"options\",e),this.ssl=typeof e.\nssl>\"u\"?lc():e.ssl,typeof this.ssl==\"string\"&&this.ssl===\"true\"&&(this.ssl=!0),this.ssl===\"no-verify\"&&\n(this.ssl={rejectUnauthorized:!1}),this.ssl&&this.ssl.key&&Object.defineProperty(this.ssl,\"key\",{enumerable:!1}),\nthis.client_encoding=G(\"client_encoding\",e),this.replication=G(\"replication\",e),this.isDomainSocket=\n!(this.host||\"\").indexOf(\"/\"),this.application_name=G(\"application_name\",e,\"PGAPPNAME\"),this.fallback_application_name=\nG(\"fallback_application_name\",e,!1),this.statement_timeout=G(\"statement_timeout\",e,!1),this.lock_timeout=\nG(\"lock_timeout\",e,!1),this.idle_in_transaction_session_timeout=G(\"idle_in_transaction_session_timeo\\\nut\",e,!1),this.query_timeout=G(\"query_timeout\",e,!1),e.connectionTimeoutMillis===void 0?this.connect_timeout=\nm.env.PGCONNECT_TIMEOUT||0:this.connect_timeout=Math.floor(e.connectionTimeoutMillis/1e3),e.keepAlive===\n!1?this.keepalives=0:e.keepAlive===!0&&(this.keepalives=1),typeof e.keepAliveInitialDelayMillis==\"nu\\\nmber\"&&(this.keepalives_idle=Math.floor(e.keepAliveInitialDelayMillis/1e3))}getLibpqConnectionString(e){\nvar t=[];re(t,this,\"user\"),re(t,this,\"password\"),re(t,this,\"port\"),re(t,this,\"application_name\"),re(\nt,this,\"fallback_application_name\"),re(t,this,\"connect_timeout\"),re(t,this,\"options\");var n=typeof this.\nssl==\"object\"?this.ssl:this.ssl?{sslmode:this.ssl}:{};if(re(t,n,\"sslmode\"),re(t,n,\"sslca\"),re(t,n,\"s\\\nslkey\"),re(t,n,\"sslcert\"),re(t,n,\"sslrootcert\"),this.database&&t.push(\"dbname=\"+De(this.database)),this.\nreplication&&t.push(\"replication=\"+De(this.replication)),this.host&&t.push(\"host=\"+De(this.host)),this.\nisDomainSocket)return e(null,t.join(\" \"));this.client_encoding&&t.push(\"client_encoding=\"+De(this.client_encoding)),\ncc.lookup(this.host,function(i,s){return i?e(i,null):(t.push(\"hostaddr=\"+De(s)),e(null,t.join(\" \")))})}};\na(Tr,\"ConnectionParameters\");var _r=Tr;Rs.exports=_r});var Fs=I((vh,Ls)=>{\"use strict\";p();var fc=Je(),Bs=/^([A-Za-z]+)(?: (\\d+))?(?: (\\d+))?/,Pr=class Pr{constructor(e,t){\nthis.command=null,this.rowCount=null,this.oid=null,this.rows=[],this.fields=[],this._parsers=void 0,\nthis._types=t,this.RowCtor=null,this.rowAsArray=e===\"array\",this.rowAsArray&&(this.parseRow=this._parseRowAsArray)}addCommandComplete(e){\nvar t;e.text?t=Bs.exec(e.text):t=Bs.exec(e.command),t&&(this.command=t[1],t[3]?(this.oid=parseInt(t[2],\n10),this.rowCount=parseInt(t[3],10)):t[2]&&(this.rowCount=parseInt(t[2],10)))}_parseRowAsArray(e){for(var t=new Array(\ne.length),n=0,i=e.length;n<i;n++){var s=e[n];s!==null?t[n]=this._parsers[n](s):t[n]=null}return t}parseRow(e){\nfor(var t={},n=0,i=e.length;n<i;n++){var s=e[n],o=this.fields[n].name;s!==null?t[o]=this._parsers[n](\ns):t[o]=null}return t}addRow(e){this.rows.push(e)}addFields(e){this.fields=e,this.fields.length&&(this.\n_parsers=new Array(e.length));for(var t=0;t<e.length;t++){var n=e[t];this._types?this._parsers[t]=this.\n_types.getTypeParser(n.dataTypeID,n.format||\"text\"):this._parsers[t]=fc.getTypeParser(n.dataTypeID,n.\nformat||\"text\")}}};a(Pr,\"Result\");var Ir=Pr;Ls.exports=Ir});var Ds=I((Eh,Us)=>{\"use strict\";p();var{EventEmitter:hc}=me(),ks=Fs(),Ms=rt(),Br=class Br extends hc{constructor(e,t,n){\nsuper(),e=Ms.normalizeQueryConfig(e,t,n),this.text=e.text,this.values=e.values,this.rows=e.rows,this.\ntypes=e.types,this.name=e.name,this.binary=e.binary,this.portal=e.portal||\"\",this.callback=e.callback,\nthis._rowMode=e.rowMode,m.domain&&e.callback&&(this.callback=m.domain.bind(e.callback)),this._result=\nnew ks(this._rowMode,this.types),this._results=this._result,this.isPreparedStatement=!1,this._canceledDueToError=\n!1,this._promise=null}requiresPreparation(){return this.name||this.rows?!0:!this.text||!this.values?\n!1:this.values.length>0}_checkForMultirow(){this._result.command&&(Array.isArray(this._results)||(this.\n_results=[this._result]),this._result=new ks(this._rowMode,this.types),this._results.push(this._result))}handleRowDescription(e){\nthis._checkForMultirow(),this._result.addFields(e.fields),this._accumulateRows=this.callback||!this.\nlisteners(\"row\").length}handleDataRow(e){let t;if(!this._canceledDueToError){try{t=this._result.parseRow(\ne.fields)}catch(n){this._canceledDueToError=n;return}this.emit(\"row\",t,this._result),this._accumulateRows&&\nthis._result.addRow(t)}}handleCommandComplete(e,t){this._checkForMultirow(),this._result.addCommandComplete(\ne),this.rows&&t.sync()}handleEmptyQuery(e){this.rows&&e.sync()}handleError(e,t){if(this._canceledDueToError&&\n(e=this._canceledDueToError,this._canceledDueToError=!1),this.callback)return this.callback(e);this.\nemit(\"error\",e)}handleReadyForQuery(e){if(this._canceledDueToError)return this.handleError(this._canceledDueToError,\ne);if(this.callback)try{this.callback(null,this._results)}catch(t){m.nextTick(()=>{throw t})}this.emit(\n\"end\",this._results)}submit(e){if(typeof this.text!=\"string\"&&typeof this.name!=\"string\")return new Error(\n\"A query must have either text or a name. Supplying neither is unsupported.\");let t=e.parsedStatements[this.\nname];return this.text&&t&&this.text!==t?new Error(`Prepared statements must be unique - '${this.name}\\\n' was used for a different statement`):this.values&&!Array.isArray(this.values)?new Error(\"Query val\\\nues must be an array\"):(this.requiresPreparation()?this.prepare(e):e.query(this.text),null)}hasBeenParsed(e){\nreturn this.name&&e.parsedStatements[this.name]}handlePortalSuspended(e){this._getRows(e,this.rows)}_getRows(e,t){\ne.execute({portal:this.portal,rows:t}),t?e.flush():e.sync()}prepare(e){this.isPreparedStatement=!0,this.\nhasBeenParsed(e)||e.parse({text:this.text,name:this.name,types:this.types});try{e.bind({portal:this.\nportal,statement:this.name,values:this.values,binary:this.binary,valueMapper:Ms.prepareValue})}catch(t){\nthis.handleError(t,e);return}e.describe({type:\"P\",name:this.portal||\"\"}),this._getRows(e,this.rows)}handleCopyInResponse(e){\ne.sendCopyFail(\"No source stream defined\")}handleCopyData(e,t){}};a(Br,\"Query\");var Rr=Br;Us.exports=\nRr});var an=I(T=>{\"use strict\";p();Object.defineProperty(T,\"__esModule\",{value:!0});T.NoticeMessage=T.DataRowMessage=\nT.CommandCompleteMessage=T.ReadyForQueryMessage=T.NotificationResponseMessage=T.BackendKeyDataMessage=\nT.AuthenticationMD5Password=T.ParameterStatusMessage=T.ParameterDescriptionMessage=T.RowDescriptionMessage=\nT.Field=T.CopyResponse=T.CopyDataMessage=T.DatabaseError=T.copyDone=T.emptyQuery=T.replicationStart=\nT.portalSuspended=T.noData=T.closeComplete=T.bindComplete=T.parseComplete=void 0;T.parseComplete={name:\"\\\nparseComplete\",length:5};T.bindComplete={name:\"bindComplete\",length:5};T.closeComplete={name:\"closeC\\\nomplete\",length:5};T.noData={name:\"noData\",length:5};T.portalSuspended={name:\"portalSuspended\",length:5};\nT.replicationStart={name:\"replicationStart\",length:4};T.emptyQuery={name:\"emptyQuery\",length:4};T.copyDone=\n{name:\"copyDone\",length:4};var Gr=class Gr extends Error{constructor(e,t,n){super(e),this.length=t,this.\nname=n}};a(Gr,\"DatabaseError\");var Lr=Gr;T.DatabaseError=Lr;var Vr=class Vr{constructor(e,t){this.length=\ne,this.chunk=t,this.name=\"copyData\"}};a(Vr,\"CopyDataMessage\");var Fr=Vr;T.CopyDataMessage=Fr;var zr=class zr{constructor(e,t,n,i){\nthis.length=e,this.name=t,this.binary=n,this.columnTypes=new Array(i)}};a(zr,\"CopyResponse\");var kr=zr;\nT.CopyResponse=kr;var Kr=class Kr{constructor(e,t,n,i,s,o,u){this.name=e,this.tableID=t,this.columnID=\nn,this.dataTypeID=i,this.dataTypeSize=s,this.dataTypeModifier=o,this.format=u}};a(Kr,\"Field\");var Mr=Kr;\nT.Field=Mr;var Yr=class Yr{constructor(e,t){this.length=e,this.fieldCount=t,this.name=\"rowDescriptio\\\nn\",this.fields=new Array(this.fieldCount)}};a(Yr,\"RowDescriptionMessage\");var Ur=Yr;T.RowDescriptionMessage=\nUr;var Zr=class Zr{constructor(e,t){this.length=e,this.parameterCount=t,this.name=\"parameterDescript\\\nion\",this.dataTypeIDs=new Array(this.parameterCount)}};a(Zr,\"ParameterDescriptionMessage\");var Dr=Zr;\nT.ParameterDescriptionMessage=Dr;var Jr=class Jr{constructor(e,t,n){this.length=e,this.parameterName=\nt,this.parameterValue=n,this.name=\"parameterStatus\"}};a(Jr,\"ParameterStatusMessage\");var Or=Jr;T.ParameterStatusMessage=\nOr;var Xr=class Xr{constructor(e,t){this.length=e,this.salt=t,this.name=\"authenticationMD5Password\"}};\na(Xr,\"AuthenticationMD5Password\");var qr=Xr;T.AuthenticationMD5Password=qr;var en=class en{constructor(e,t,n){\nthis.length=e,this.processID=t,this.secretKey=n,this.name=\"backendKeyData\"}};a(en,\"BackendKeyDataMes\\\nsage\");var Qr=en;T.BackendKeyDataMessage=Qr;var tn=class tn{constructor(e,t,n,i){this.length=e,this.\nprocessId=t,this.channel=n,this.payload=i,this.name=\"notification\"}};a(tn,\"NotificationResponseMessa\\\nge\");var Nr=tn;T.NotificationResponseMessage=Nr;var rn=class rn{constructor(e,t){this.length=e,this.\nstatus=t,this.name=\"readyForQuery\"}};a(rn,\"ReadyForQueryMessage\");var jr=rn;T.ReadyForQueryMessage=jr;\nvar nn=class nn{constructor(e,t){this.length=e,this.text=t,this.name=\"commandComplete\"}};a(nn,\"Comma\\\nndCompleteMessage\");var Wr=nn;T.CommandCompleteMessage=Wr;var sn=class sn{constructor(e,t){this.length=\ne,this.fields=t,this.name=\"dataRow\",this.fieldCount=t.length}};a(sn,\"DataRowMessage\");var Hr=sn;T.DataRowMessage=\nHr;var on=class on{constructor(e,t){this.length=e,this.message=t,this.name=\"notice\"}};a(on,\"NoticeMe\\\nssage\");var $r=on;T.NoticeMessage=$r});var Os=I(Pt=>{\"use strict\";p();Object.defineProperty(Pt,\"__esModule\",{value:!0});Pt.Writer=void 0;var cn=class cn{constructor(e=256){\nthis.size=e,this.offset=5,this.headerPosition=0,this.buffer=d.allocUnsafe(e)}ensure(e){var t=this.buffer.\nlength-this.offset;if(t<e){var n=this.buffer,i=n.length+(n.length>>1)+e;this.buffer=d.allocUnsafe(i),\nn.copy(this.buffer)}}addInt32(e){return this.ensure(4),this.buffer[this.offset++]=e>>>24&255,this.buffer[this.\noffset++]=e>>>16&255,this.buffer[this.offset++]=e>>>8&255,this.buffer[this.offset++]=e>>>0&255,this}addInt16(e){\nreturn this.ensure(2),this.buffer[this.offset++]=e>>>8&255,this.buffer[this.offset++]=e>>>0&255,this}addCString(e){\nif(!e)this.ensure(1);else{var t=d.byteLength(e);this.ensure(t+1),this.buffer.write(e,this.offset,\"ut\\\nf-8\"),this.offset+=t}return this.buffer[this.offset++]=0,this}addString(e=\"\"){var t=d.byteLength(e);\nreturn this.ensure(t),this.buffer.write(e,this.offset),this.offset+=t,this}add(e){return this.ensure(\ne.length),e.copy(this.buffer,this.offset),this.offset+=e.length,this}join(e){if(e){this.buffer[this.\nheaderPosition]=e;let t=this.offset-(this.headerPosition+1);this.buffer.writeInt32BE(t,this.headerPosition+\n1)}return this.buffer.slice(e?0:5,this.offset)}flush(e){var t=this.join(e);return this.offset=5,this.\nheaderPosition=0,this.buffer=d.allocUnsafe(this.size),t}};a(cn,\"Writer\");var un=cn;Pt.Writer=un});var Qs=I(Bt=>{\"use strict\";p();Object.defineProperty(Bt,\"__esModule\",{value:!0});Bt.serialize=void 0;\nvar ln=Os(),k=new ln.Writer,pc=a(r=>{k.addInt16(3).addInt16(0);for(let n of Object.keys(r))k.addCString(\nn).addCString(r[n]);k.addCString(\"client_encoding\").addCString(\"UTF8\");var e=k.addCString(\"\").flush(),\nt=e.length+4;return new ln.Writer().addInt32(t).add(e).flush()},\"startup\"),dc=a(()=>{let r=d.allocUnsafe(\n8);return r.writeInt32BE(8,0),r.writeInt32BE(80877103,4),r},\"requestSsl\"),yc=a(r=>k.addCString(r).flush(\n112),\"password\"),mc=a(function(r,e){return k.addCString(r).addInt32(d.byteLength(e)).addString(e),k.\nflush(112)},\"sendSASLInitialResponseMessage\"),gc=a(function(r){return k.addString(r).flush(112)},\"se\\\nndSCRAMClientFinalMessage\"),wc=a(r=>k.addCString(r).flush(81),\"query\"),qs=[],bc=a(r=>{let e=r.name||\n\"\";e.length>63&&(console.error(\"Warning! Postgres only supports 63 characters for query names.\"),console.\nerror(\"You supplied %s (%s)\",e,e.length),console.error(\"This can cause conflicts and silent errors e\\\nxecuting queries\"));let t=r.types||qs;for(var n=t.length,i=k.addCString(e).addCString(r.text).addInt16(\nn),s=0;s<n;s++)i.addInt32(t[s]);return k.flush(80)},\"parse\"),Oe=new ln.Writer,vc=a(function(r,e){for(let t=0;t<\nr.length;t++){let n=e?e(r[t],t):r[t];n==null?(k.addInt16(0),Oe.addInt32(-1)):n instanceof d?(k.addInt16(\n1),Oe.addInt32(n.length),Oe.add(n)):(k.addInt16(0),Oe.addInt32(d.byteLength(n)),Oe.addString(n))}},\"\\\nwriteValues\"),xc=a((r={})=>{let e=r.portal||\"\",t=r.statement||\"\",n=r.binary||!1,i=r.values||qs,s=i.length;\nreturn k.addCString(e).addCString(t),k.addInt16(s),vc(i,r.valueMapper),k.addInt16(s),k.add(Oe.flush()),\nk.addInt16(n?1:0),k.flush(66)},\"bind\"),Sc=d.from([69,0,0,0,9,0,0,0,0,0]),Ec=a(r=>{if(!r||!r.portal&&\n!r.rows)return Sc;let e=r.portal||\"\",t=r.rows||0,n=d.byteLength(e),i=4+n+1+4,s=d.allocUnsafe(1+i);return s[0]=\n69,s.writeInt32BE(i,1),s.write(e,5,\"utf-8\"),s[n+5]=0,s.writeUInt32BE(t,s.length-4),s},\"execute\"),Ac=a(\n(r,e)=>{let t=d.allocUnsafe(16);return t.writeInt32BE(16,0),t.writeInt16BE(1234,4),t.writeInt16BE(5678,\n6),t.writeInt32BE(r,8),t.writeInt32BE(e,12),t},\"cancel\"),fn=a((r,e)=>{let n=4+d.byteLength(e)+1,i=d.\nallocUnsafe(1+n);return i[0]=r,i.writeInt32BE(n,1),i.write(e,5,\"utf-8\"),i[n]=0,i},\"cstringMessage\"),\nCc=k.addCString(\"P\").flush(68),_c=k.addCString(\"S\").flush(68),Tc=a(r=>r.name?fn(68,`${r.type}${r.name||\n\"\"}`):r.type===\"P\"?Cc:_c,\"describe\"),Ic=a(r=>{let e=`${r.type}${r.name||\"\"}`;return fn(67,e)},\"close\"),\nPc=a(r=>k.add(r).flush(100),\"copyData\"),Rc=a(r=>fn(102,r),\"copyFail\"),Rt=a(r=>d.from([r,0,0,0,4]),\"c\\\nodeOnlyBuffer\"),Bc=Rt(72),Lc=Rt(83),Fc=Rt(88),kc=Rt(99),Mc={startup:pc,password:yc,requestSsl:dc,sendSASLInitialResponseMessage:mc,\nsendSCRAMClientFinalMessage:gc,query:wc,parse:bc,bind:xc,execute:Ec,describe:Tc,close:Ic,flush:a(()=>Bc,\n\"flush\"),sync:a(()=>Lc,\"sync\"),end:a(()=>Fc,\"end\"),copyData:Pc,copyDone:a(()=>kc,\"copyDone\"),copyFail:Rc,\ncancel:Ac};Bt.serialize=Mc});var Ns=I(Lt=>{\"use strict\";p();Object.defineProperty(Lt,\"__esModule\",{value:!0});Lt.BufferReader=void 0;\nvar Uc=d.allocUnsafe(0),pn=class pn{constructor(e=0){this.offset=e,this.buffer=Uc,this.encoding=\"utf\\\n-8\"}setBuffer(e,t){this.offset=e,this.buffer=t}int16(){let e=this.buffer.readInt16BE(this.offset);return this.\noffset+=2,e}byte(){let e=this.buffer[this.offset];return this.offset++,e}int32(){let e=this.buffer.readInt32BE(\nthis.offset);return this.offset+=4,e}uint32(){let e=this.buffer.readUInt32BE(this.offset);return this.\noffset+=4,e}string(e){let t=this.buffer.toString(this.encoding,this.offset,this.offset+e);return this.\noffset+=e,t}cstring(){let e=this.offset,t=e;for(;this.buffer[t++]!==0;);return this.offset=t,this.buffer.\ntoString(this.encoding,e,t-1)}bytes(e){let t=this.buffer.slice(this.offset,this.offset+e);return this.\noffset+=e,t}};a(pn,\"BufferReader\");var hn=pn;Lt.BufferReader=hn});var Hs=I(Ft=>{\"use strict\";p();Object.defineProperty(Ft,\"__esModule\",{value:!0});Ft.Parser=void 0;var M=an(),\nDc=Ns(),dn=1,Oc=4,js=dn+Oc,Ws=d.allocUnsafe(0),mn=class mn{constructor(e){if(this.buffer=Ws,this.bufferLength=\n0,this.bufferOffset=0,this.reader=new Dc.BufferReader,e?.mode===\"binary\")throw new Error(\"Binary mod\\\ne not supported yet\");this.mode=e?.mode||\"text\"}parse(e,t){this.mergeBuffer(e);let n=this.bufferOffset+\nthis.bufferLength,i=this.bufferOffset;for(;i+js<=n;){let s=this.buffer[i],o=this.buffer.readUInt32BE(\ni+dn),u=dn+o;if(u+i<=n){let c=this.handlePacket(i+js,s,o,this.buffer);t(c),i+=u}else break}i===n?(this.\nbuffer=Ws,this.bufferLength=0,this.bufferOffset=0):(this.bufferLength=n-i,this.bufferOffset=i)}mergeBuffer(e){\nif(this.bufferLength>0){let t=this.bufferLength+e.byteLength;if(t+this.bufferOffset>this.buffer.byteLength){\nlet i;if(t<=this.buffer.byteLength&&this.bufferOffset>=this.bufferLength)i=this.buffer;else{let s=this.\nbuffer.byteLength*2;for(;t>=s;)s*=2;i=d.allocUnsafe(s)}this.buffer.copy(i,0,this.bufferOffset,this.bufferOffset+\nthis.bufferLength),this.buffer=i,this.bufferOffset=0}e.copy(this.buffer,this.bufferOffset+this.bufferLength),\nthis.bufferLength=t}else this.buffer=e,this.bufferOffset=0,this.bufferLength=e.byteLength}handlePacket(e,t,n,i){\nswitch(t){case 50:return M.bindComplete;case 49:return M.parseComplete;case 51:return M.closeComplete;case 110:\nreturn M.noData;case 115:return M.portalSuspended;case 99:return M.copyDone;case 87:return M.replicationStart;case 73:\nreturn M.emptyQuery;case 68:return this.parseDataRowMessage(e,n,i);case 67:return this.parseCommandCompleteMessage(\ne,n,i);case 90:return this.parseReadyForQueryMessage(e,n,i);case 65:return this.parseNotificationMessage(\ne,n,i);case 82:return this.parseAuthenticationResponse(e,n,i);case 83:return this.parseParameterStatusMessage(\ne,n,i);case 75:return this.parseBackendKeyData(e,n,i);case 69:return this.parseErrorMessage(e,n,i,\"e\\\nrror\");case 78:return this.parseErrorMessage(e,n,i,\"notice\");case 84:return this.parseRowDescriptionMessage(\ne,n,i);case 116:return this.parseParameterDescriptionMessage(e,n,i);case 71:return this.parseCopyInMessage(\ne,n,i);case 72:return this.parseCopyOutMessage(e,n,i);case 100:return this.parseCopyData(e,n,i);default:\nreturn new M.DatabaseError(\"received invalid response: \"+t.toString(16),n,\"error\")}}parseReadyForQueryMessage(e,t,n){\nthis.reader.setBuffer(e,n);let i=this.reader.string(1);return new M.ReadyForQueryMessage(t,i)}parseCommandCompleteMessage(e,t,n){\nthis.reader.setBuffer(e,n);let i=this.reader.cstring();return new M.CommandCompleteMessage(t,i)}parseCopyData(e,t,n){\nlet i=n.slice(e,e+(t-4));return new M.CopyDataMessage(t,i)}parseCopyInMessage(e,t,n){return this.parseCopyMessage(\ne,t,n,\"copyInResponse\")}parseCopyOutMessage(e,t,n){return this.parseCopyMessage(e,t,n,\"copyOutRespon\\\nse\")}parseCopyMessage(e,t,n,i){this.reader.setBuffer(e,n);let s=this.reader.byte()!==0,o=this.reader.\nint16(),u=new M.CopyResponse(t,i,s,o);for(let c=0;c<o;c++)u.columnTypes[c]=this.reader.int16();return u}parseNotificationMessage(e,t,n){\nthis.reader.setBuffer(e,n);let i=this.reader.int32(),s=this.reader.cstring(),o=this.reader.cstring();\nreturn new M.NotificationResponseMessage(t,i,s,o)}parseRowDescriptionMessage(e,t,n){this.reader.setBuffer(\ne,n);let i=this.reader.int16(),s=new M.RowDescriptionMessage(t,i);for(let o=0;o<i;o++)s.fields[o]=this.\nparseField();return s}parseField(){let e=this.reader.cstring(),t=this.reader.uint32(),n=this.reader.\nint16(),i=this.reader.uint32(),s=this.reader.int16(),o=this.reader.int32(),u=this.reader.int16()===0?\n\"text\":\"binary\";return new M.Field(e,t,n,i,s,o,u)}parseParameterDescriptionMessage(e,t,n){this.reader.\nsetBuffer(e,n);let i=this.reader.int16(),s=new M.ParameterDescriptionMessage(t,i);for(let o=0;o<i;o++)\ns.dataTypeIDs[o]=this.reader.int32();return s}parseDataRowMessage(e,t,n){this.reader.setBuffer(e,n);\nlet i=this.reader.int16(),s=new Array(i);for(let o=0;o<i;o++){let u=this.reader.int32();s[o]=u===-1?\nnull:this.reader.string(u)}return new M.DataRowMessage(t,s)}parseParameterStatusMessage(e,t,n){this.\nreader.setBuffer(e,n);let i=this.reader.cstring(),s=this.reader.cstring();return new M.ParameterStatusMessage(\nt,i,s)}parseBackendKeyData(e,t,n){this.reader.setBuffer(e,n);let i=this.reader.int32(),s=this.reader.\nint32();return new M.BackendKeyDataMessage(t,i,s)}parseAuthenticationResponse(e,t,n){this.reader.setBuffer(\ne,n);let i=this.reader.int32(),s={name:\"authenticationOk\",length:t};switch(i){case 0:break;case 3:s.\nlength===8&&(s.name=\"authenticationCleartextPassword\");break;case 5:if(s.length===12){s.name=\"authen\\\nticationMD5Password\";let u=this.reader.bytes(4);return new M.AuthenticationMD5Password(t,u)}break;case 10:\ns.name=\"authenticationSASL\",s.mechanisms=[];let o;do o=this.reader.cstring(),o&&s.mechanisms.push(o);while(o);\nbreak;case 11:s.name=\"authenticationSASLContinue\",s.data=this.reader.string(t-8);break;case 12:s.name=\n\"authenticationSASLFinal\",s.data=this.reader.string(t-8);break;default:throw new Error(\"Unknown auth\\\nenticationOk message type \"+i)}return s}parseErrorMessage(e,t,n,i){this.reader.setBuffer(e,n);let s={},\no=this.reader.string(1);for(;o!==\"\\0\";)s[o]=this.reader.cstring(),o=this.reader.string(1);let u=s.M,\nc=i===\"notice\"?new M.NoticeMessage(t,u):new M.DatabaseError(u,t,i);return c.severity=s.S,c.code=s.C,\nc.detail=s.D,c.hint=s.H,c.position=s.P,c.internalPosition=s.p,c.internalQuery=s.q,c.where=s.W,c.schema=\ns.s,c.table=s.t,c.column=s.c,c.dataType=s.d,c.constraint=s.n,c.file=s.F,c.line=s.L,c.routine=s.R,c}};\na(mn,\"Parser\");var yn=mn;Ft.Parser=yn});var gn=I(ve=>{\"use strict\";p();Object.defineProperty(ve,\"__esModule\",{value:!0});ve.DatabaseError=ve.\nserialize=ve.parse=void 0;var qc=an();Object.defineProperty(ve,\"DatabaseError\",{enumerable:!0,get:a(\nfunction(){return qc.DatabaseError},\"get\")});var Qc=Qs();Object.defineProperty(ve,\"serialize\",{enumerable:!0,\nget:a(function(){return Qc.serialize},\"get\")});var Nc=Hs();function jc(r,e){let t=new Nc.Parser;return r.\non(\"data\",n=>t.parse(n,e)),new Promise(n=>r.on(\"end\",()=>n()))}a(jc,\"parse\");ve.parse=jc});var $s={};ne($s,{connect:()=>Wc});function Wc({socket:r,servername:e}){return r.startTls(e),r}var Gs=z(\n()=>{\"use strict\";p();a(Wc,\"connect\")});var vn=I((Gh,Ks)=>{\"use strict\";p();var Vs=(We(),D(yi)),Hc=me().EventEmitter,{parse:$c,serialize:q}=gn(),\nzs=q.flush(),Gc=q.sync(),Vc=q.end(),bn=class bn extends Hc{constructor(e){super(),e=e||{},this.stream=\ne.stream||new Vs.Socket,this._keepAlive=e.keepAlive,this._keepAliveInitialDelayMillis=e.keepAliveInitialDelayMillis,\nthis.lastBuffer=!1,this.parsedStatements={},this.ssl=e.ssl||!1,this._ending=!1,this._emitMessage=!1;\nvar t=this;this.on(\"newListener\",function(n){n===\"message\"&&(t._emitMessage=!0)})}connect(e,t){var n=this;\nthis._connecting=!0,this.stream.setNoDelay(!0),this.stream.connect(e,t),this.stream.once(\"connect\",function(){\nn._keepAlive&&n.stream.setKeepAlive(!0,n._keepAliveInitialDelayMillis),n.emit(\"connect\")});let i=a(function(s){\nn._ending&&(s.code===\"ECONNRESET\"||s.code===\"EPIPE\")||n.emit(\"error\",s)},\"reportStreamError\");if(this.\nstream.on(\"error\",i),this.stream.on(\"close\",function(){n.emit(\"end\")}),!this.ssl)return this.attachListeners(\nthis.stream);this.stream.once(\"data\",function(s){var o=s.toString(\"utf8\");switch(o){case\"S\":break;case\"\\\nN\":return n.stream.end(),n.emit(\"error\",new Error(\"The server does not support SSL connections\"));default:\nreturn n.stream.end(),n.emit(\"error\",new Error(\"There was an error establishing an SSL connection\"))}\nvar u=(Gs(),D($s));let c={socket:n.stream};n.ssl!==!0&&(Object.assign(c,n.ssl),\"key\"in n.ssl&&(c.key=\nn.ssl.key)),Vs.isIP(t)===0&&(c.servername=t);try{n.stream=u.connect(c)}catch(l){return n.emit(\"error\",\nl)}n.attachListeners(n.stream),n.stream.on(\"error\",i),n.emit(\"sslconnect\")})}attachListeners(e){e.on(\n\"end\",()=>{this.emit(\"end\")}),$c(e,t=>{var n=t.name===\"error\"?\"errorMessage\":t.name;this._emitMessage&&\nthis.emit(\"message\",t),this.emit(n,t)})}requestSsl(){this.stream.write(q.requestSsl())}startup(e){this.\nstream.write(q.startup(e))}cancel(e,t){this._send(q.cancel(e,t))}password(e){this._send(q.password(e))}sendSASLInitialResponseMessage(e,t){\nthis._send(q.sendSASLInitialResponseMessage(e,t))}sendSCRAMClientFinalMessage(e){this._send(q.sendSCRAMClientFinalMessage(\ne))}_send(e){return this.stream.writable?this.stream.write(e):!1}query(e){this._send(q.query(e))}parse(e){\nthis._send(q.parse(e))}bind(e){this._send(q.bind(e))}execute(e){this._send(q.execute(e))}flush(){this.\nstream.writable&&this.stream.write(zs)}sync(){this._ending=!0,this._send(zs),this._send(Gc)}ref(){this.\nstream.ref()}unref(){this.stream.unref()}end(){if(this._ending=!0,!this._connecting||!this.stream.writable){\nthis.stream.end();return}return this.stream.write(Vc,()=>{this.stream.end()})}close(e){this._send(q.\nclose(e))}describe(e){this._send(q.describe(e))}sendCopyFromChunk(e){this._send(q.copyData(e))}endCopyFrom(){\nthis._send(q.copyDone())}sendCopyFail(e){this._send(q.copyFail(e))}};a(bn,\"Connection\");var wn=bn;Ks.\nexports=wn});var Js=I((Yh,Zs)=>{\"use strict\";p();var zc=me().EventEmitter,Kh=(it(),D(nt)),Kc=rt(),xn=hs(),Yc=Es(),\nZc=St(),Jc=It(),Ys=Ds(),Xc=tt(),el=vn(),Sn=class Sn extends zc{constructor(e){super(),this.connectionParameters=\nnew Jc(e),this.user=this.connectionParameters.user,this.database=this.connectionParameters.database,\nthis.port=this.connectionParameters.port,this.host=this.connectionParameters.host,Object.defineProperty(\nthis,\"password\",{configurable:!0,enumerable:!1,writable:!0,value:this.connectionParameters.password}),\nthis.replication=this.connectionParameters.replication;var t=e||{};this._Promise=t.Promise||w.Promise,\nthis._types=new Zc(t.types),this._ending=!1,this._connecting=!1,this._connected=!1,this._connectionError=\n!1,this._queryable=!0,this.connection=t.connection||new el({stream:t.stream,ssl:this.connectionParameters.\nssl,keepAlive:t.keepAlive||!1,keepAliveInitialDelayMillis:t.keepAliveInitialDelayMillis||0,encoding:this.\nconnectionParameters.client_encoding||\"utf8\"}),this.queryQueue=[],this.binary=t.binary||Xc.binary,this.\nprocessID=null,this.secretKey=null,this.ssl=this.connectionParameters.ssl||!1,this.ssl&&this.ssl.key&&\nObject.defineProperty(this.ssl,\"key\",{enumerable:!1}),this._connectionTimeoutMillis=t.connectionTimeoutMillis||\n0}_errorAllQueries(e){let t=a(n=>{m.nextTick(()=>{n.handleError(e,this.connection)})},\"enqueueError\");\nthis.activeQuery&&(t(this.activeQuery),this.activeQuery=null),this.queryQueue.forEach(t),this.queryQueue.\nlength=0}_connect(e){var t=this,n=this.connection;if(this._connectionCallback=e,this._connecting||this.\n_connected){let i=new Error(\"Client has already been connected. You cannot reuse a client.\");m.nextTick(\n()=>{e(i)});return}this._connecting=!0,this.connectionTimeoutHandle,this._connectionTimeoutMillis>0&&\n(this.connectionTimeoutHandle=setTimeout(()=>{n._ending=!0,n.stream.destroy(new Error(\"timeout expir\\\ned\"))},this._connectionTimeoutMillis)),this.host&&this.host.indexOf(\"/\")===0?n.connect(this.host+\"/.\\\ns.PGSQL.\"+this.port):n.connect(this.port,this.host),n.on(\"connect\",function(){t.ssl?n.requestSsl():n.\nstartup(t.getStartupConf())}),n.on(\"sslconnect\",function(){n.startup(t.getStartupConf())}),this._attachListeners(\nn),n.once(\"end\",()=>{let i=this._ending?new Error(\"Connection terminated\"):new Error(\"Connection ter\\\nminated unexpectedly\");clearTimeout(this.connectionTimeoutHandle),this._errorAllQueries(i),this._ending||\n(this._connecting&&!this._connectionError?this._connectionCallback?this._connectionCallback(i):this.\n_handleErrorEvent(i):this._connectionError||this._handleErrorEvent(i)),m.nextTick(()=>{this.emit(\"en\\\nd\")})})}connect(e){if(e){this._connect(e);return}return new this._Promise((t,n)=>{this._connect(i=>{\ni?n(i):t()})})}_attachListeners(e){e.on(\"authenticationCleartextPassword\",this._handleAuthCleartextPassword.\nbind(this)),e.on(\"authenticationMD5Password\",this._handleAuthMD5Password.bind(this)),e.on(\"authentic\\\nationSASL\",this._handleAuthSASL.bind(this)),e.on(\"authenticationSASLContinue\",this._handleAuthSASLContinue.\nbind(this)),e.on(\"authenticationSASLFinal\",this._handleAuthSASLFinal.bind(this)),e.on(\"backendKeyDat\\\na\",this._handleBackendKeyData.bind(this)),e.on(\"error\",this._handleErrorEvent.bind(this)),e.on(\"erro\\\nrMessage\",this._handleErrorMessage.bind(this)),e.on(\"readyForQuery\",this._handleReadyForQuery.bind(this)),\ne.on(\"notice\",this._handleNotice.bind(this)),e.on(\"rowDescription\",this._handleRowDescription.bind(this)),\ne.on(\"dataRow\",this._handleDataRow.bind(this)),e.on(\"portalSuspended\",this._handlePortalSuspended.bind(\nthis)),e.on(\"emptyQuery\",this._handleEmptyQuery.bind(this)),e.on(\"commandComplete\",this._handleCommandComplete.\nbind(this)),e.on(\"parseComplete\",this._handleParseComplete.bind(this)),e.on(\"copyInResponse\",this._handleCopyInResponse.\nbind(this)),e.on(\"copyData\",this._handleCopyData.bind(this)),e.on(\"notification\",this._handleNotification.\nbind(this))}_checkPgPass(e){let t=this.connection;typeof this.password==\"function\"?this._Promise.resolve().\nthen(()=>this.password()).then(n=>{if(n!==void 0){if(typeof n!=\"string\"){t.emit(\"error\",new TypeError(\n\"Password must be a string\"));return}this.connectionParameters.password=this.password=n}else this.connectionParameters.\npassword=this.password=null;e()}).catch(n=>{t.emit(\"error\",n)}):this.password!==null?e():Yc(this.connectionParameters,\nn=>{n!==void 0&&(this.connectionParameters.password=this.password=n),e()})}_handleAuthCleartextPassword(e){\nthis._checkPgPass(()=>{this.connection.password(this.password)})}_handleAuthMD5Password(e){this._checkPgPass(\n()=>{let t=Kc.postgresMd5PasswordHash(this.user,this.password,e.salt);this.connection.password(t)})}_handleAuthSASL(e){\nthis._checkPgPass(()=>{this.saslSession=xn.startSession(e.mechanisms),this.connection.sendSASLInitialResponseMessage(\nthis.saslSession.mechanism,this.saslSession.response)})}_handleAuthSASLContinue(e){xn.continueSession(\nthis.saslSession,this.password,e.data),this.connection.sendSCRAMClientFinalMessage(this.saslSession.\nresponse)}_handleAuthSASLFinal(e){xn.finalizeSession(this.saslSession,e.data),this.saslSession=null}_handleBackendKeyData(e){\nthis.processID=e.processID,this.secretKey=e.secretKey}_handleReadyForQuery(e){this._connecting&&(this.\n_connecting=!1,this._connected=!0,clearTimeout(this.connectionTimeoutHandle),this._connectionCallback&&\n(this._connectionCallback(null,this),this._connectionCallback=null),this.emit(\"connect\"));let{activeQuery:t}=this;\nthis.activeQuery=null,this.readyForQuery=!0,t&&t.handleReadyForQuery(this.connection),this._pulseQueryQueue()}_handleErrorWhileConnecting(e){\nif(!this._connectionError){if(this._connectionError=!0,clearTimeout(this.connectionTimeoutHandle),this.\n_connectionCallback)return this._connectionCallback(e);this.emit(\"error\",e)}}_handleErrorEvent(e){if(this.\n_connecting)return this._handleErrorWhileConnecting(e);this._queryable=!1,this._errorAllQueries(e),this.\nemit(\"error\",e)}_handleErrorMessage(e){if(this._connecting)return this._handleErrorWhileConnecting(e);\nlet t=this.activeQuery;if(!t){this._handleErrorEvent(e);return}this.activeQuery=null,t.handleError(e,\nthis.connection)}_handleRowDescription(e){this.activeQuery.handleRowDescription(e)}_handleDataRow(e){\nthis.activeQuery.handleDataRow(e)}_handlePortalSuspended(e){this.activeQuery.handlePortalSuspended(this.\nconnection)}_handleEmptyQuery(e){this.activeQuery.handleEmptyQuery(this.connection)}_handleCommandComplete(e){\nthis.activeQuery.handleCommandComplete(e,this.connection)}_handleParseComplete(e){this.activeQuery.name&&\n(this.connection.parsedStatements[this.activeQuery.name]=this.activeQuery.text)}_handleCopyInResponse(e){\nthis.activeQuery.handleCopyInResponse(this.connection)}_handleCopyData(e){this.activeQuery.handleCopyData(\ne,this.connection)}_handleNotification(e){this.emit(\"notification\",e)}_handleNotice(e){this.emit(\"no\\\ntice\",e)}getStartupConf(){var e=this.connectionParameters,t={user:e.user,database:e.database},n=e.application_name||\ne.fallback_application_name;return n&&(t.application_name=n),e.replication&&(t.replication=\"\"+e.replication),\ne.statement_timeout&&(t.statement_timeout=String(parseInt(e.statement_timeout,10))),e.lock_timeout&&\n(t.lock_timeout=String(parseInt(e.lock_timeout,10))),e.idle_in_transaction_session_timeout&&(t.idle_in_transaction_session_timeout=\nString(parseInt(e.idle_in_transaction_session_timeout,10))),e.options&&(t.options=e.options),t}cancel(e,t){\nif(e.activeQuery===t){var n=this.connection;this.host&&this.host.indexOf(\"/\")===0?n.connect(this.host+\n\"/.s.PGSQL.\"+this.port):n.connect(this.port,this.host),n.on(\"connect\",function(){n.cancel(e.processID,\ne.secretKey)})}else e.queryQueue.indexOf(t)!==-1&&e.queryQueue.splice(e.queryQueue.indexOf(t),1)}setTypeParser(e,t,n){\nreturn this._types.setTypeParser(e,t,n)}getTypeParser(e,t){return this._types.getTypeParser(e,t)}escapeIdentifier(e){\nreturn'\"'+e.replace(/\"/g,'\"\"')+'\"'}escapeLiteral(e){for(var t=!1,n=\"'\",i=0;i<e.length;i++){var s=e[i];\ns===\"'\"?n+=s+s:s===\"\\\\\"?(n+=s+s,t=!0):n+=s}return n+=\"'\",t===!0&&(n=\" E\"+n),n}_pulseQueryQueue(){if(this.\nreadyForQuery===!0)if(this.activeQuery=this.queryQueue.shift(),this.activeQuery){this.readyForQuery=\n!1,this.hasExecuted=!0;let e=this.activeQuery.submit(this.connection);e&&m.nextTick(()=>{this.activeQuery.\nhandleError(e,this.connection),this.readyForQuery=!0,this._pulseQueryQueue()})}else this.hasExecuted&&\n(this.activeQuery=null,this.emit(\"drain\"))}query(e,t,n){var i,s,o,u,c;if(e==null)throw new TypeError(\n\"Client was passed a null or undefined query\");return typeof e.submit==\"function\"?(o=e.query_timeout||\nthis.connectionParameters.query_timeout,s=i=e,typeof t==\"function\"&&(i.callback=i.callback||t)):(o=this.\nconnectionParameters.query_timeout,i=new Ys(e,t,n),i.callback||(s=new this._Promise((l,f)=>{i.callback=\n(y,g)=>y?f(y):l(g)}))),o&&(c=i.callback,u=setTimeout(()=>{var l=new Error(\"Query read timeout\");m.nextTick(\n()=>{i.handleError(l,this.connection)}),c(l),i.callback=()=>{};var f=this.queryQueue.indexOf(i);f>-1&&\nthis.queryQueue.splice(f,1),this._pulseQueryQueue()},o),i.callback=(l,f)=>{clearTimeout(u),c(l,f)}),\nthis.binary&&!i.binary&&(i.binary=!0),i._result&&!i._result._types&&(i._result._types=this._types),this.\n_queryable?this._ending?(m.nextTick(()=>{i.handleError(new Error(\"Client was closed and is not query\\\nable\"),this.connection)}),s):(this.queryQueue.push(i),this._pulseQueryQueue(),s):(m.nextTick(()=>{i.\nhandleError(new Error(\"Client has encountered a connection error and is not queryable\"),this.connection)}),\ns)}ref(){this.connection.ref()}unref(){this.connection.unref()}end(e){if(this._ending=!0,!this.connection.\n_connecting)if(e)e();else return this._Promise.resolve();if(this.activeQuery||!this._queryable?this.\nconnection.stream.destroy():this.connection.end(),e)this.connection.once(\"end\",e);else return new this.\n_Promise(t=>{this.connection.once(\"end\",t)})}};a(Sn,\"Client\");var kt=Sn;kt.Query=Ys;Zs.exports=kt});var ro=I((Xh,to)=>{\"use strict\";p();var tl=me().EventEmitter,Xs=a(function(){},\"NOOP\"),eo=a((r,e)=>{\nlet t=r.findIndex(e);return t===-1?void 0:r.splice(t,1)[0]},\"removeWhere\"),Cn=class Cn{constructor(e,t,n){\nthis.client=e,this.idleListener=t,this.timeoutId=n}};a(Cn,\"IdleItem\");var En=Cn,_n=class _n{constructor(e){\nthis.callback=e}};a(_n,\"PendingItem\");var qe=_n;function rl(){throw new Error(\"Release called on cli\\\nent which has already been released to the pool.\")}a(rl,\"throwOnDoubleRelease\");function Mt(r,e){if(e)\nreturn{callback:e,result:void 0};let t,n,i=a(function(o,u){o?t(o):n(u)},\"cb\"),s=new r(function(o,u){\nn=o,t=u}).catch(o=>{throw Error.captureStackTrace(o),o});return{callback:i,result:s}}a(Mt,\"promisify\");\nfunction nl(r,e){return a(function t(n){n.client=e,e.removeListener(\"error\",t),e.on(\"error\",()=>{r.log(\n\"additional client error after disconnection due to error\",n)}),r._remove(e),r.emit(\"error\",n,e)},\"i\\\ndleListener\")}a(nl,\"makeIdleListener\");var Tn=class Tn extends tl{constructor(e,t){super(),this.options=\nObject.assign({},e),e!=null&&\"password\"in e&&Object.defineProperty(this.options,\"password\",{configurable:!0,\nenumerable:!1,writable:!0,value:e.password}),e!=null&&e.ssl&&e.ssl.key&&Object.defineProperty(this.options.\nssl,\"key\",{enumerable:!1}),this.options.max=this.options.max||this.options.poolSize||10,this.options.\nmaxUses=this.options.maxUses||1/0,this.options.allowExitOnIdle=this.options.allowExitOnIdle||!1,this.\noptions.maxLifetimeSeconds=this.options.maxLifetimeSeconds||0,this.log=this.options.log||function(){},\nthis.Client=this.options.Client||t||ot().Client,this.Promise=this.options.Promise||w.Promise,typeof this.\noptions.idleTimeoutMillis>\"u\"&&(this.options.idleTimeoutMillis=1e4),this._clients=[],this._idle=[],this.\n_expired=new WeakSet,this._pendingQueue=[],this._endCallback=void 0,this.ending=!1,this.ended=!1}_isFull(){\nreturn this._clients.length>=this.options.max}_pulseQueue(){if(this.log(\"pulse queue\"),this.ended){this.\nlog(\"pulse queue ended\");return}if(this.ending){this.log(\"pulse queue on ending\"),this._idle.length&&\nthis._idle.slice().map(t=>{this._remove(t.client)}),this._clients.length||(this.ended=!0,this._endCallback());\nreturn}if(!this._pendingQueue.length){this.log(\"no queued requests\");return}if(!this._idle.length&&this.\n_isFull())return;let e=this._pendingQueue.shift();if(this._idle.length){let t=this._idle.pop();clearTimeout(\nt.timeoutId);let n=t.client;n.ref&&n.ref();let i=t.idleListener;return this._acquireClient(n,e,i,!1)}\nif(!this._isFull())return this.newClient(e);throw new Error(\"unexpected condition\")}_remove(e){let t=eo(\nthis._idle,n=>n.client===e);t!==void 0&&clearTimeout(t.timeoutId),this._clients=this._clients.filter(\nn=>n!==e),e.end(),this.emit(\"remove\",e)}connect(e){if(this.ending){let i=new Error(\"Cannot use a poo\\\nl after calling end on the pool\");return e?e(i):this.Promise.reject(i)}let t=Mt(this.Promise,e),n=t.\nresult;if(this._isFull()||this._idle.length){if(this._idle.length&&m.nextTick(()=>this._pulseQueue()),\n!this.options.connectionTimeoutMillis)return this._pendingQueue.push(new qe(t.callback)),n;let i=a((u,c,l)=>{\nclearTimeout(o),t.callback(u,c,l)},\"queueCallback\"),s=new qe(i),o=setTimeout(()=>{eo(this._pendingQueue,\nu=>u.callback===i),s.timedOut=!0,t.callback(new Error(\"timeout exceeded when trying to connect\"))},this.\noptions.connectionTimeoutMillis);return o.unref&&o.unref(),this._pendingQueue.push(s),n}return this.\nnewClient(new qe(t.callback)),n}newClient(e){let t=new this.Client(this.options);this._clients.push(\nt);let n=nl(this,t);this.log(\"checking client timeout\");let i,s=!1;this.options.connectionTimeoutMillis&&\n(i=setTimeout(()=>{this.log(\"ending client due to timeout\"),s=!0,t.connection?t.connection.stream.destroy():\nt.end()},this.options.connectionTimeoutMillis)),this.log(\"connecting new client\"),t.connect(o=>{if(i&&\nclearTimeout(i),t.on(\"error\",n),o)this.log(\"client failed to connect\",o),this._clients=this._clients.\nfilter(u=>u!==t),s&&(o=new Error(\"Connection terminated due to connection timeout\",{cause:o})),this.\n_pulseQueue(),e.timedOut||e.callback(o,void 0,Xs);else{if(this.log(\"new client connected\"),this.options.\nmaxLifetimeSeconds!==0){let u=setTimeout(()=>{this.log(\"ending client due to expired lifetime\"),this.\n_expired.add(t),this._idle.findIndex(l=>l.client===t)!==-1&&this._acquireClient(t,new qe((l,f,y)=>y()),\nn,!1)},this.options.maxLifetimeSeconds*1e3);u.unref(),t.once(\"end\",()=>clearTimeout(u))}return this.\n_acquireClient(t,e,n,!0)}})}_acquireClient(e,t,n,i){i&&this.emit(\"connect\",e),this.emit(\"acquire\",e),\ne.release=this._releaseOnce(e,n),e.removeListener(\"error\",n),t.timedOut?i&&this.options.verify?this.\noptions.verify(e,e.release):e.release():i&&this.options.verify?this.options.verify(e,s=>{if(s)return e.\nrelease(s),t.callback(s,void 0,Xs);t.callback(void 0,e,e.release)}):t.callback(void 0,e,e.release)}_releaseOnce(e,t){\nlet n=!1;return i=>{n&&rl(),n=!0,this._release(e,t,i)}}_release(e,t,n){if(e.on(\"error\",t),e._poolUseCount=\n(e._poolUseCount||0)+1,this.emit(\"release\",n,e),n||this.ending||!e._queryable||e._ending||e._poolUseCount>=\nthis.options.maxUses){e._poolUseCount>=this.options.maxUses&&this.log(\"remove expended client\"),this.\n_remove(e),this._pulseQueue();return}if(this._expired.has(e)){this.log(\"remove expired client\"),this.\n_expired.delete(e),this._remove(e),this._pulseQueue();return}let s;this.options.idleTimeoutMillis&&(s=\nsetTimeout(()=>{this.log(\"remove idle client\"),this._remove(e)},this.options.idleTimeoutMillis),this.\noptions.allowExitOnIdle&&s.unref()),this.options.allowExitOnIdle&&e.unref(),this._idle.push(new En(e,\nt,s)),this._pulseQueue()}query(e,t,n){if(typeof e==\"function\"){let s=Mt(this.Promise,e);return b(function(){\nreturn s.callback(new Error(\"Passing a function as the first parameter to pool.query is not supporte\\\nd\"))}),s.result}typeof t==\"function\"&&(n=t,t=void 0);let i=Mt(this.Promise,n);return n=i.callback,this.\nconnect((s,o)=>{if(s)return n(s);let u=!1,c=a(l=>{u||(u=!0,o.release(l),n(l))},\"onError\");o.once(\"er\\\nror\",c),this.log(\"dispatching query\");try{o.query(e,t,(l,f)=>{if(this.log(\"query dispatched\"),o.removeListener(\n\"error\",c),!u)return u=!0,o.release(l),l?n(l):n(void 0,f)})}catch(l){return o.release(l),n(l)}}),i.result}end(e){\nif(this.log(\"ending\"),this.ending){let n=new Error(\"Called end on pool more than once\");return e?e(n):\nthis.Promise.reject(n)}this.ending=!0;let t=Mt(this.Promise,e);return this._endCallback=t.callback,this.\n_pulseQueue(),t.result}get waitingCount(){return this._pendingQueue.length}get idleCount(){return this.\n_idle.length}get expiredCount(){return this._clients.reduce((e,t)=>e+(this._expired.has(t)?1:0),0)}get totalCount(){\nreturn this._clients.length}};a(Tn,\"Pool\");var An=Tn;to.exports=An});var no={};ne(no,{default:()=>il});var il,io=z(()=>{\"use strict\";p();il={}});var so=I((np,sl)=>{sl.exports={name:\"pg\",version:\"8.8.0\",description:\"PostgreSQL client - pure javas\\\ncript & libpq with the same API\",keywords:[\"database\",\"libpq\",\"pg\",\"postgre\",\"postgres\",\"postgresql\",\n\"rdbms\"],homepage:\"https://github.com/brianc/node-postgres\",repository:{type:\"git\",url:\"git://github\\\n.com/brianc/node-postgres.git\",directory:\"packages/pg\"},author:\"Brian Carlson <brian.m.carlson@gmail\\\n.com>\",main:\"./lib\",dependencies:{\"buffer-writer\":\"2.0.0\",\"packet-reader\":\"1.0.0\",\"pg-connection-str\\\ning\":\"^2.5.0\",\"pg-pool\":\"^3.5.2\",\"pg-protocol\":\"^1.5.0\",\"pg-types\":\"^2.1.0\",pgpass:\"1.x\"},devDependencies:{\nasync:\"2.6.4\",bluebird:\"3.5.2\",co:\"4.6.0\",\"pg-copy-streams\":\"0.3.0\"},peerDependencies:{\"pg-native\":\"\\\n>=3.0.1\"},peerDependenciesMeta:{\"pg-native\":{optional:!0}},scripts:{test:\"make test-all\"},files:[\"li\\\nb\",\"SPONSORS.md\"],license:\"MIT\",engines:{node:\">= 8.0.0\"},gitHead:\"c99fb2c127ddf8d712500db2c7b9a5491\\\na178655\"}});var uo=I((ip,ao)=>{\"use strict\";p();var oo=me().EventEmitter,ol=(it(),D(nt)),In=rt(),Qe=ao.exports=function(r,e,t){\noo.call(this),r=In.normalizeQueryConfig(r,e,t),this.text=r.text,this.values=r.values,this.name=r.name,\nthis.callback=r.callback,this.state=\"new\",this._arrayMode=r.rowMode===\"array\",this._emitRowEvents=!1,\nthis.on(\"newListener\",function(n){n===\"row\"&&(this._emitRowEvents=!0)}.bind(this))};ol.inherits(Qe,oo);\nvar al={sqlState:\"code\",statementPosition:\"position\",messagePrimary:\"message\",context:\"where\",schemaName:\"\\\nschema\",tableName:\"table\",columnName:\"column\",dataTypeName:\"dataType\",constraintName:\"constraint\",sourceFile:\"\\\nfile\",sourceLine:\"line\",sourceFunction:\"routine\"};Qe.prototype.handleError=function(r){var e=this.native.\npq.resultErrorFields();if(e)for(var t in e){var n=al[t]||t;r[n]=e[t]}this.callback?this.callback(r):\nthis.emit(\"error\",r),this.state=\"error\"};Qe.prototype.then=function(r,e){return this._getPromise().then(\nr,e)};Qe.prototype.catch=function(r){return this._getPromise().catch(r)};Qe.prototype._getPromise=function(){\nreturn this._promise?this._promise:(this._promise=new Promise(function(r,e){this._once(\"end\",r),this.\n_once(\"error\",e)}.bind(this)),this._promise)};Qe.prototype.submit=function(r){this.state=\"running\";var e=this;\nthis.native=r.native,r.native.arrayMode=this._arrayMode;var t=a(function(s,o,u){if(r.native.arrayMode=\n!1,b(function(){e.emit(\"_done\")}),s)return e.handleError(s);e._emitRowEvents&&(u.length>1?o.forEach(\n(c,l)=>{c.forEach(f=>{e.emit(\"row\",f,u[l])})}):o.forEach(function(c){e.emit(\"row\",c,u)})),e.state=\"e\\\nnd\",e.emit(\"end\",u),e.callback&&e.callback(null,u)},\"after\");if(m.domain&&(t=m.domain.bind(t)),this.\nname){this.name.length>63&&(console.error(\"Warning! Postgres only supports 63 characters for query n\\\names.\"),console.error(\"You supplied %s (%s)\",this.name,this.name.length),console.error(\"This can cau\\\nse conflicts and silent errors executing queries\"));var n=(this.values||[]).map(In.prepareValue);if(r.\nnamedQueries[this.name]){if(this.text&&r.namedQueries[this.name]!==this.text){let s=new Error(`Prepa\\\nred statements must be unique - '${this.name}' was used for a different statement`);return t(s)}return r.\nnative.execute(this.name,n,t)}return r.native.prepare(this.name,this.text,n.length,function(s){return s?\nt(s):(r.namedQueries[e.name]=e.text,e.native.execute(e.name,n,t))})}else if(this.values){if(!Array.isArray(\nthis.values)){let s=new Error(\"Query values must be an array\");return t(s)}var i=this.values.map(In.\nprepareValue);r.native.query(this.text,i,t)}else r.native.query(this.text,t)}});var ho=I((up,fo)=>{\"use strict\";p();var ul=(io(),D(no)),cl=St(),ap=so(),co=me().EventEmitter,ll=(it(),D(nt)),\nfl=It(),lo=uo(),Z=fo.exports=function(r){co.call(this),r=r||{},this._Promise=r.Promise||w.Promise,this.\n_types=new cl(r.types),this.native=new ul({types:this._types}),this._queryQueue=[],this._ending=!1,this.\n_connecting=!1,this._connected=!1,this._queryable=!0;var e=this.connectionParameters=new fl(r);this.\nuser=e.user,Object.defineProperty(this,\"password\",{configurable:!0,enumerable:!1,writable:!0,value:e.\npassword}),this.database=e.database,this.host=e.host,this.port=e.port,this.namedQueries={}};Z.Query=\nlo;ll.inherits(Z,co);Z.prototype._errorAllQueries=function(r){let e=a(t=>{m.nextTick(()=>{t.native=this.\nnative,t.handleError(r)})},\"enqueueError\");this._hasActiveQuery()&&(e(this._activeQuery),this._activeQuery=\nnull),this._queryQueue.forEach(e),this._queryQueue.length=0};Z.prototype._connect=function(r){var e=this;\nif(this._connecting){m.nextTick(()=>r(new Error(\"Client has already been connected. You cannot reuse\\\n a client.\")));return}this._connecting=!0,this.connectionParameters.getLibpqConnectionString(function(t,n){\nif(t)return r(t);e.native.connect(n,function(i){if(i)return e.native.end(),r(i);e._connected=!0,e.native.\non(\"error\",function(s){e._queryable=!1,e._errorAllQueries(s),e.emit(\"error\",s)}),e.native.on(\"notifi\\\ncation\",function(s){e.emit(\"notification\",{channel:s.relname,payload:s.extra})}),e.emit(\"connect\"),e.\n_pulseQueryQueue(!0),r()})})};Z.prototype.connect=function(r){if(r){this._connect(r);return}return new this.\n_Promise((e,t)=>{this._connect(n=>{n?t(n):e()})})};Z.prototype.query=function(r,e,t){var n,i,s,o,u;if(r==\nnull)throw new TypeError(\"Client was passed a null or undefined query\");if(typeof r.submit==\"functio\\\nn\")s=r.query_timeout||this.connectionParameters.query_timeout,i=n=r,typeof e==\"function\"&&(r.callback=\ne);else if(s=this.connectionParameters.query_timeout,n=new lo(r,e,t),!n.callback){let c,l;i=new this.\n_Promise((f,y)=>{c=f,l=y}),n.callback=(f,y)=>f?l(f):c(y)}return s&&(u=n.callback,o=setTimeout(()=>{var c=new Error(\n\"Query read timeout\");m.nextTick(()=>{n.handleError(c,this.connection)}),u(c),n.callback=()=>{};var l=this.\n_queryQueue.indexOf(n);l>-1&&this._queryQueue.splice(l,1),this._pulseQueryQueue()},s),n.callback=(c,l)=>{\nclearTimeout(o),u(c,l)}),this._queryable?this._ending?(n.native=this.native,m.nextTick(()=>{n.handleError(\nnew Error(\"Client was closed and is not queryable\"))}),i):(this._queryQueue.push(n),this._pulseQueryQueue(),\ni):(n.native=this.native,m.nextTick(()=>{n.handleError(new Error(\"Client has encountered a connectio\\\nn error and is not queryable\"))}),i)};Z.prototype.end=function(r){var e=this;this._ending=!0,this._connected||\nthis.once(\"connect\",this.end.bind(this,r));var t;return r||(t=new this._Promise(function(n,i){r=a(s=>s?\ni(s):n(),\"cb\")})),this.native.end(function(){e._errorAllQueries(new Error(\"Connection terminated\")),\nm.nextTick(()=>{e.emit(\"end\"),r&&r()})}),t};Z.prototype._hasActiveQuery=function(){return this._activeQuery&&\nthis._activeQuery.state!==\"error\"&&this._activeQuery.state!==\"end\"};Z.prototype._pulseQueryQueue=function(r){\nif(this._connected&&!this._hasActiveQuery()){var e=this._queryQueue.shift();if(!e){r||this.emit(\"dra\\\nin\");return}this._activeQuery=e,e.submit(this);var t=this;e.once(\"_done\",function(){t._pulseQueryQueue()})}};\nZ.prototype.cancel=function(r){this._activeQuery===r?this.native.cancel(function(){}):this._queryQueue.\nindexOf(r)!==-1&&this._queryQueue.splice(this._queryQueue.indexOf(r),1)};Z.prototype.ref=function(){};\nZ.prototype.unref=function(){};Z.prototype.setTypeParser=function(r,e,t){return this._types.setTypeParser(\nr,e,t)};Z.prototype.getTypeParser=function(r,e){return this._types.getTypeParser(r,e)}});var Pn=I((fp,po)=>{\"use strict\";p();po.exports=ho()});var ot=I((pp,at)=>{\"use strict\";p();var hl=Js(),pl=tt(),dl=vn(),yl=ro(),{DatabaseError:ml}=gn(),gl=a(\nr=>{var e;return e=class extends yl{constructor(n){super(n,r)}},a(e,\"BoundPool\"),e},\"poolFactory\"),Rn=a(\nfunction(r){this.defaults=pl,this.Client=r,this.Query=this.Client.Query,this.Pool=gl(this.Client),this.\n_pools=[],this.Connection=dl,this.types=Je(),this.DatabaseError=ml},\"PG\");typeof m.env.NODE_PG_FORCE_NATIVE<\n\"u\"?at.exports=new Rn(Pn()):(at.exports=new Rn(hl),Object.defineProperty(at.exports,\"native\",{configurable:!0,\nenumerable:!1,get(){var r=null;try{r=new Rn(Pn())}catch(e){if(e.code!==\"MODULE_NOT_FOUND\")throw e}return Object.\ndefineProperty(at.exports,\"native\",{value:r}),r}}))});p();p();We();zt();p();var fa=Object.defineProperty,ha=Object.defineProperties,pa=Object.getOwnPropertyDescriptors,gi=Object.\ngetOwnPropertySymbols,da=Object.prototype.hasOwnProperty,ya=Object.prototype.propertyIsEnumerable,wi=a(\n(r,e,t)=>e in r?fa(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,\"__defNormalProp\"),\nma=a((r,e)=>{for(var t in e||(e={}))da.call(e,t)&&wi(r,t,e[t]);if(gi)for(var t of gi(e))ya.call(e,t)&&\nwi(r,t,e[t]);return r},\"__spreadValues\"),ga=a((r,e)=>ha(r,pa(e)),\"__spreadProps\"),wa=1008e3,bi=new Uint8Array(\nnew Uint16Array([258]).buffer)[0]===2,ba=new TextDecoder,Kt=new TextEncoder,dt=Kt.encode(\"0123456789\\\nabcdef\"),yt=Kt.encode(\"0123456789ABCDEF\"),va=Kt.encode(\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\\\nstuvwxyz0123456789+/\");var vi=va.slice();vi[62]=45;vi[63]=95;var He,mt;function xa(r,{alphabet:e,scratchArr:t}={}){if(!He)if(He=\nnew Uint16Array(256),mt=new Uint16Array(256),bi)for(let C=0;C<256;C++)He[C]=dt[C&15]<<8|dt[C>>>4],mt[C]=\nyt[C&15]<<8|yt[C>>>4];else for(let C=0;C<256;C++)He[C]=dt[C&15]|dt[C>>>4]<<8,mt[C]=yt[C&15]|yt[C>>>4]<<\n8;r.byteOffset%4!==0&&(r=new Uint8Array(r));let n=r.length,i=n>>>1,s=n>>>2,o=t||new Uint16Array(n),u=new Uint32Array(\nr.buffer,r.byteOffset,s),c=new Uint32Array(o.buffer,o.byteOffset,i),l=e===\"upper\"?mt:He,f=0,y=0,g;if(bi)\nfor(;f<s;)g=u[f++],c[y++]=l[g>>>8&255]<<16|l[g&255],c[y++]=l[g>>>24]<<16|l[g>>>16&255];else for(;f<s;)\ng=u[f++],c[y++]=l[g>>>24]<<16|l[g>>>16&255],c[y++]=l[g>>>8&255]<<16|l[g&255];for(f<<=2;f<n;)o[f]=l[r[f++]];\nreturn ba.decode(o.subarray(0,n))}a(xa,\"_toHex\");function Sa(r,e={}){let t=\"\",n=r.length,i=wa>>>1,s=Math.\nceil(n/i),o=new Uint16Array(s>1?i:n);for(let u=0;u<s;u++){let c=u*i,l=c+i;t+=xa(r.subarray(c,l),ga(ma(\n{},e),{scratchArr:o}))}return t}a(Sa,\"_toHexChunked\");function xi(r,e={}){return e.alphabet!==\"upper\"&&\ntypeof r.toHex==\"function\"?r.toHex():Sa(r,e)}a(xi,\"toHex\");p();var gt=class gt{constructor(e,t){this.strings=e;this.values=t}toParameterizedQuery(e={query:\"\",params:[]}){\nlet{strings:t,values:n}=this;for(let i=0,s=t.length;i<s;i++)if(e.query+=t[i],i<n.length){let o=n[i];\nif(o instanceof Ge)e.query+=o.sql;else if(o instanceof Ae)if(o.queryData instanceof gt)o.queryData.toParameterizedQuery(\ne);else{if(o.queryData.params?.length)throw new Error(\"This query is not composable\");e.query+=o.queryData.\nquery}else{let{params:u}=e;u.push(o),e.query+=\"$\"+u.length,(o instanceof d||ArrayBuffer.isView(o))&&\n(e.query+=\"::bytea\")}}return e}};a(gt,\"SqlTemplate\");var $e=gt,Yt=class Yt{constructor(e){this.sql=e}};\na(Yt,\"UnsafeRawSql\");var Ge=Yt;var ss=xe(St()),os=xe(rt());var At=class At extends Error{constructor(t){super(t);E(this,\"name\",\"NeonDbError\");E(this,\"severity\");\nE(this,\"code\");E(this,\"detail\");E(this,\"hint\");E(this,\"position\");E(this,\"internalPosition\");E(this,\n\"internalQuery\");E(this,\"where\");E(this,\"schema\");E(this,\"table\");E(this,\"column\");E(this,\"dataType\");\nE(this,\"constraint\");E(this,\"file\");E(this,\"line\");E(this,\"routine\");E(this,\"sourceError\");\"captureS\\\ntackTrace\"in Error&&typeof Error.captureStackTrace==\"function\"&&Error.captureStackTrace(this,At)}};a(\nAt,\"NeonDbError\");var we=At,rs=\"transaction() expects an array of queries, or a function returning a\\\nn array of queries\",Pu=[\"severity\",\"code\",\"detail\",\"hint\",\"position\",\"internalPosition\",\"internalQue\\\nry\",\"where\",\"schema\",\"table\",\"column\",\"dataType\",\"constraint\",\"file\",\"line\",\"routine\"];function Ru(r){\nreturn r instanceof d?\"\\\\x\"+xi(r):r}a(Ru,\"encodeBuffersAsBytea\");function ns(r){let{query:e,params:t}=r instanceof\n$e?r.toParameterizedQuery():r;return{query:e,params:t.map(n=>Ru((0,os.prepareValue)(n)))}}a(ns,\"prep\\\nareQuery\");function as(r,{arrayMode:e,fullResults:t,fetchOptions:n,isolationLevel:i,readOnly:s,deferrable:o,\nauthToken:u}={}){if(!r)throw new Error(\"No database connection string was provided to `neon()`. Perh\\\naps an environment variable has not been set?\");let c;try{c=Vt(r)}catch{throw new Error(\"Database co\\\nnnection string provided to `neon()` is not a valid URL. Connection string: \"+String(r))}let{protocol:l,\nusername:f,hostname:y,port:g,pathname:A}=c;if(l!==\"postgres:\"&&l!==\"postgresql:\"||!f||!y||!A)throw new Error(\n\"Database connection string format for `neon()` should be: postgresql://user:password@host.tld/dbnam\\\ne?option=value\");function C(P,...L){if(!(Array.isArray(P)&&Array.isArray(P.raw)&&Array.isArray(L)))throw new Error(\n'This function can now be called only as a tagged-template function: sql`SELECT ${value}`, not sql(\"\\\nSELECT $1\", [value], options). For a conventional function call with value placeholders ($1, $2, etc\\\n.), use sql.query(\"SELECT $1\", [value], options).');return new Ae(Q,new $e(P,L))}a(C,\"templateFn\"),C.\nquery=(P,L,_)=>new Ae(Q,{query:P,params:L??[]},_),C.unsafe=P=>new Ge(P),C.transaction=async(P,L)=>{if(typeof P==\n\"function\"&&(P=P(C)),!Array.isArray(P))throw new Error(rs);P.forEach(H=>{if(!(H instanceof Ae))throw new Error(\nrs)});let _=P.map(H=>H.queryData),x=P.map(H=>H.opts??{});return Q(_,x,L)};async function Q(P,L,_){let{\nfetchEndpoint:x,fetchFunction:H}=ge,le=Array.isArray(P)?{queries:P.map(J=>ns(J))}:ns(P),N=n??{},ie=e??\n!1,se=t??!1,oe=i,B=s,$=o;_!==void 0&&(_.fetchOptions!==void 0&&(N={...N,..._.fetchOptions}),_.arrayMode!==\nvoid 0&&(ie=_.arrayMode),_.fullResults!==void 0&&(se=_.fullResults),_.isolationLevel!==void 0&&(oe=_.\nisolationLevel),_.readOnly!==void 0&&(B=_.readOnly),_.deferrable!==void 0&&($=_.deferrable)),L!==void 0&&\n!Array.isArray(L)&&L.fetchOptions!==void 0&&(N={...N,...L.fetchOptions});let fe=u;!Array.isArray(L)&&\nL?.authToken!==void 0&&(fe=L.authToken);let Ce=typeof x==\"function\"?x(y,g,{jwtAuth:fe!==void 0}):x,he={\n\"Neon-Connection-String\":r,\"Neon-Raw-Text-Output\":\"true\",\"Neon-Array-Mode\":\"true\"},_e=await Bu(fe);_e&&\n(he.Authorization=`Bearer ${_e}`),Array.isArray(P)&&(oe!==void 0&&(he[\"Neon-Batch-Isolation-Level\"]=\noe),B!==void 0&&(he[\"Neon-Batch-Read-Only\"]=String(B)),$!==void 0&&(he[\"Neon-Batch-Deferrable\"]=String(\n$)));let ae;try{ae=await(H??fetch)(Ce,{method:\"POST\",body:JSON.stringify(le),headers:he,...N})}catch(J){\nlet j=new we(`Error connecting to database: ${J}`);throw j.sourceError=J,j}if(ae.ok){let J=await ae.\njson();if(Array.isArray(P)){let j=J.results;if(!Array.isArray(j))throw new we(\"Neon internal error: \\\nunexpected result format\");return j.map((X,V)=>{let Ne=L[V]??{},wo=Ne.arrayMode??ie,bo=Ne.fullResults??\nse;return is(X,{arrayMode:wo,fullResults:bo,types:Ne.types})})}else{let j=L??{},X=j.arrayMode??ie,V=j.\nfullResults??se;return is(J,{arrayMode:X,fullResults:V,types:j.types})}}else{let{status:J}=ae;if(J===\n400){let j=await ae.json(),X=new we(j.message);for(let V of Pu)X[V]=j[V]??void 0;throw X}else{let j=await ae.\ntext();throw new we(`Server error (HTTP status ${J}): ${j}`)}}}return a(Q,\"execute\"),C}a(as,\"neon\");\nvar fr=class fr{constructor(e,t,n){this.execute=e;this.queryData=t;this.opts=n}then(e,t){return this.\nexecute(this.queryData,this.opts).then(e,t)}catch(e){return this.execute(this.queryData,this.opts).catch(\ne)}finally(e){return this.execute(this.queryData,this.opts).finally(e)}};a(fr,\"NeonQueryPromise\");var Ae=fr;\nfunction is(r,{arrayMode:e,fullResults:t,types:n}){let i=new ss.default(n),s=r.fields.map(c=>c.name),\no=r.fields.map(c=>i.getTypeParser(c.dataTypeID)),u=e===!0?r.rows.map(c=>c.map((l,f)=>l===null?null:o[f](\nl))):r.rows.map(c=>Object.fromEntries(c.map((l,f)=>[s[f],l===null?null:o[f](l)])));return t?(r.viaNeonFetch=\n!0,r.rowAsArray=e,r.rows=u,r._parsers=o,r._types=i,r):u}a(is,\"processQueryResult\");async function Bu(r){\nif(typeof r==\"string\")return r;if(typeof r==\"function\")try{return await Promise.resolve(r())}catch(e){\nlet t=new we(\"Error getting auth token.\");throw e instanceof Error&&(t=new we(`Error getting auth to\\\nken: ${e.message}`)),t}}a(Bu,\"getAuthToken\");p();var mo=xe(ot());p();var yo=xe(ot());var Bn=class Bn extends yo.Client{constructor(t){super(t);this.config=t}get neonConfig(){return this.\nconnection.stream}connect(t){let{neonConfig:n}=this;n.forceDisablePgSSL&&(this.ssl=this.connection.ssl=\n!1),this.ssl&&n.useSecureWebSocket&&console.warn(\"SSL is enabled for both Postgres (e.g. ?sslmode=re\\\nquire in the connection string + forceDisablePgSSL = false) and the WebSocket tunnel (useSecureWebSo\\\ncket = true). Double encryption will increase latency and CPU usage. It may be appropriate to disabl\\\ne SSL in the Postgres connection parameters or set forceDisablePgSSL = true.\");let i=typeof this.config!=\n\"string\"&&this.config?.host!==void 0||typeof this.config!=\"string\"&&this.config?.connectionString!==\nvoid 0||m.env.PGHOST!==void 0,s=m.env.USER??m.env.USERNAME;if(!i&&this.host===\"localhost\"&&this.user===\ns&&this.database===s&&this.password===null)throw new Error(`No database host or connection string wa\\\ns set, and key parameters have default values (host: localhost, user: ${s}, db: ${s}, password: null\\\n). Is an environment variable missing? Alternatively, if you intended to connect with these paramete\\\nrs, please set the host to 'localhost' explicitly.`);let o=super.connect(t),u=n.pipelineTLS&&this.ssl,\nc=n.pipelineConnect===\"password\";if(!u&&!n.pipelineConnect)return o;let l=this.connection;if(u&&l.on(\n\"connect\",()=>l.stream.emit(\"data\",\"S\")),c){l.removeAllListeners(\"authenticationCleartextPassword\"),\nl.removeAllListeners(\"readyForQuery\"),l.once(\"readyForQuery\",()=>l.on(\"readyForQuery\",this._handleReadyForQuery.\nbind(this)));let f=this.ssl?\"sslconnect\":\"connect\";l.on(f,()=>{this._handleAuthCleartextPassword(),this.\n_handleReadyForQuery()})}return o}async _handleAuthSASLContinue(t){if(typeof crypto>\"u\"||crypto.subtle===\nvoid 0||crypto.subtle.importKey===void 0)throw new Error(\"Cannot use SASL auth when `crypto.subtle` \\\nis not defined\");let n=crypto.subtle,i=this.saslSession,s=this.password,o=t.data;if(i.message!==\"SAS\\\nLInitialResponse\"||typeof s!=\"string\"||typeof o!=\"string\")throw new Error(\"SASL: protocol error\");let u=Object.\nfromEntries(o.split(\",\").map(X=>{if(!/^.=/.test(X))throw new Error(\"SASL: Invalid attribute pair ent\\\nry\");let V=X[0],Ne=X.substring(2);return[V,Ne]})),c=u.r,l=u.s,f=u.i;if(!c||!/^[!-+--~]+$/.test(c))throw new Error(\n\"SASL: SCRAM-SERVER-FIRST-MESSAGE: nonce missing/unprintable\");if(!l||!/^(?:[a-zA-Z0-9+/]{4})*(?:[a-zA-Z0-9+/]{2}==|[a-zA-Z0-9+/]{3}=)?$/.\ntest(l))throw new Error(\"SASL: SCRAM-SERVER-FIRST-MESSAGE: salt missing/not base64\");if(!f||!/^[1-9][0-9]*$/.\ntest(f))throw new Error(\"SASL: SCRAM-SERVER-FIRST-MESSAGE: missing/invalid iteration count\");if(!c.startsWith(\ni.clientNonce))throw new Error(\"SASL: SCRAM-SERVER-FIRST-MESSAGE: server nonce does not start with c\\\nlient nonce\");if(c.length===i.clientNonce.length)throw new Error(\"SASL: SCRAM-SERVER-FIRST-MESSAGE: \\\nserver nonce is too short\");let y=parseInt(f,10),g=d.from(l,\"base64\"),A=new TextEncoder,C=A.encode(s),\nQ=await n.importKey(\"raw\",C,{name:\"HMAC\",hash:{name:\"SHA-256\"}},!1,[\"sign\"]),P=new Uint8Array(await n.\nsign(\"HMAC\",Q,d.concat([g,d.from([0,0,0,1])]))),L=P;for(var _=0;_<y-1;_++)P=new Uint8Array(await n.sign(\n\"HMAC\",Q,P)),L=d.from(L.map((X,V)=>L[V]^P[V]));let x=L,H=await n.importKey(\"raw\",x,{name:\"HMAC\",hash:{\nname:\"SHA-256\"}},!1,[\"sign\"]),le=new Uint8Array(await n.sign(\"HMAC\",H,A.encode(\"Client Key\"))),N=await n.\ndigest(\"SHA-256\",le),ie=\"n=*,r=\"+i.clientNonce,se=\"r=\"+c+\",s=\"+l+\",i=\"+y,oe=\"c=biws,r=\"+c,B=ie+\",\"+se+\n\",\"+oe,$=await n.importKey(\"raw\",N,{name:\"HMAC\",hash:{name:\"SHA-256\"}},!1,[\"sign\"]);var fe=new Uint8Array(\nawait n.sign(\"HMAC\",$,A.encode(B))),Ce=d.from(le.map((X,V)=>le[V]^fe[V])),he=Ce.toString(\"base64\");let _e=await n.\nimportKey(\"raw\",x,{name:\"HMAC\",hash:{name:\"SHA-256\"}},!1,[\"sign\"]),ae=await n.sign(\"HMAC\",_e,A.encode(\n\"Server Key\")),J=await n.importKey(\"raw\",ae,{name:\"HMAC\",hash:{name:\"SHA-256\"}},!1,[\"sign\"]);var j=d.\nfrom(await n.sign(\"HMAC\",J,A.encode(B)));i.message=\"SASLResponse\",i.serverSignature=j.toString(\"base\\\n64\"),i.response=oe+\",p=\"+he,this.connection.sendSCRAMClientFinalMessage(this.saslSession.response)}};\na(Bn,\"NeonClient\");var ut=Bn;We();var go=xe(It());function wl(r,e){if(e)return{callback:e,result:void 0};let t,n,i=a(function(o,u){o?t(o):n(u)},\"cb\"),\ns=new r(function(o,u){n=o,t=u});return{callback:i,result:s}}a(wl,\"promisify\");var Fn=class Fn extends mo.Pool{constructor(){\nsuper(...arguments);E(this,\"Client\",ut);E(this,\"hasFetchUnsupportedListeners\",!1);E(this,\"addListene\\\nr\",this.on)}on(t,n){return t!==\"error\"&&(this.hasFetchUnsupportedListeners=!0),super.on(t,n)}query(t,n,i){\nif(!ge.poolQueryViaFetch||this.hasFetchUnsupportedListeners||typeof t==\"function\")return super.query(\nt,n,i);typeof n==\"function\"&&(i=n,n=void 0);let s=wl(this.Promise,i);i=s.callback;try{let o=new go.default(\nthis.options),u=encodeURIComponent,c=encodeURI,l=`postgresql://${u(o.user)}:${u(o.password)}@${u(o.host)}\\\n/${c(o.database)}`,f=typeof t==\"string\"?t:t.text,y=n??t.values??[];as(l,{fullResults:!0,arrayMode:t.\nrowMode===\"array\"}).query(f,y,{types:t.types??this.options?.types}).then(A=>i(void 0,A)).catch(A=>i(\nA))}catch(o){i(o)}return s.result}};a(Fn,\"NeonPool\");var Ln=Fn;We();var kn=xe(ot()),_p=\"mjs\";var export_DatabaseError=kn.DatabaseError;var export_defaults=kn.defaults;var export_types=kn.types;\nexport{ut as Client,export_DatabaseError as DatabaseError,we as NeonDbError,Ae as NeonQueryPromise,Ln as Pool,\n$e as SqlTemplate,Ge as UnsafeRawSql,_p as _bundleExt,export_defaults as defaults,as as neon,ge as neonConfig,\nexport_types as types};\n/*! Bundled license information:\n\nieee754/index.js:\n (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> *)\n\nbuffer/index.js:\n (*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n *)\n*/\n",
27
50
  "const entityKind = Symbol.for(\"drizzle:entityKind\");\nconst hasOwnEntityKind = Symbol.for(\"drizzle:hasOwnEntityKind\");\nfunction is(value, type) {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n if (value instanceof type) {\n return true;\n }\n if (!Object.prototype.hasOwnProperty.call(type, entityKind)) {\n throw new Error(\n `Class \"${type.name ?? \"<unknown>\"}\" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`\n );\n }\n let cls = Object.getPrototypeOf(value).constructor;\n if (cls) {\n while (cls) {\n if (entityKind in cls && cls[entityKind] === type[entityKind]) {\n return true;\n }\n cls = Object.getPrototypeOf(cls);\n }\n }\n return false;\n}\nexport {\n entityKind,\n hasOwnEntityKind,\n is\n};\n//# sourceMappingURL=entity.js.map",
28
51
  "import { entityKind } from \"./entity.js\";\nclass Column {\n constructor(table, config) {\n this.table = table;\n this.config = config;\n this.name = config.name;\n this.keyAsName = config.keyAsName;\n this.notNull = config.notNull;\n this.default = config.default;\n this.defaultFn = config.defaultFn;\n this.onUpdateFn = config.onUpdateFn;\n this.hasDefault = config.hasDefault;\n this.primary = config.primaryKey;\n this.isUnique = config.isUnique;\n this.uniqueName = config.uniqueName;\n this.uniqueType = config.uniqueType;\n this.dataType = config.dataType;\n this.columnType = config.columnType;\n this.generated = config.generated;\n this.generatedIdentity = config.generatedIdentity;\n }\n static [entityKind] = \"Column\";\n name;\n keyAsName;\n primary;\n notNull;\n default;\n defaultFn;\n onUpdateFn;\n hasDefault;\n isUnique;\n uniqueName;\n uniqueType;\n dataType;\n columnType;\n enumValues = void 0;\n generated = void 0;\n generatedIdentity = void 0;\n config;\n mapFromDriverValue(value) {\n return value;\n }\n mapToDriverValue(value) {\n return value;\n }\n // ** @internal */\n shouldDisableInsert() {\n return this.config.generated !== void 0 && this.config.generated.type !== \"byDefault\";\n }\n}\nexport {\n Column\n};\n//# sourceMappingURL=column.js.map",
@@ -104,14 +127,24 @@
104
127
  "import { entityKind } from \"../entity.js\";\nimport { TransactionRollbackError } from \"../errors.js\";\nimport { sql } from \"../sql/index.js\";\nimport { tracer } from \"../tracing.js\";\nimport { PgDatabase } from \"./db.js\";\nclass PgPreparedQuery {\n constructor(query) {\n this.query = query;\n }\n authToken;\n getQuery() {\n return this.query;\n }\n mapResult(response, _isFromBatch) {\n return response;\n }\n /** @internal */\n setToken(token) {\n this.authToken = token;\n return this;\n }\n static [entityKind] = \"PgPreparedQuery\";\n /** @internal */\n joinsNotNullableMap;\n}\nclass PgSession {\n constructor(dialect) {\n this.dialect = dialect;\n }\n static [entityKind] = \"PgSession\";\n /** @internal */\n execute(query, token) {\n return tracer.startActiveSpan(\"drizzle.operation\", () => {\n const prepared = tracer.startActiveSpan(\"drizzle.prepareQuery\", () => {\n return this.prepareQuery(\n this.dialect.sqlToQuery(query),\n void 0,\n void 0,\n false\n );\n });\n return prepared.setToken(token).execute(void 0, token);\n });\n }\n all(query) {\n return this.prepareQuery(\n this.dialect.sqlToQuery(query),\n void 0,\n void 0,\n false\n ).all();\n }\n /** @internal */\n async count(sql2, token) {\n const res = await this.execute(sql2, token);\n return Number(\n res[0][\"count\"]\n );\n }\n}\nclass PgTransaction extends PgDatabase {\n constructor(dialect, session, schema, nestedIndex = 0) {\n super(dialect, session, schema);\n this.schema = schema;\n this.nestedIndex = nestedIndex;\n }\n static [entityKind] = \"PgTransaction\";\n rollback() {\n throw new TransactionRollbackError();\n }\n /** @internal */\n getTransactionConfigSQL(config) {\n const chunks = [];\n if (config.isolationLevel) {\n chunks.push(`isolation level ${config.isolationLevel}`);\n }\n if (config.accessMode) {\n chunks.push(config.accessMode);\n }\n if (typeof config.deferrable === \"boolean\") {\n chunks.push(config.deferrable ? \"deferrable\" : \"not deferrable\");\n }\n return sql.raw(chunks.join(\" \"));\n }\n setTransaction(config) {\n return this.session.execute(sql`set transaction ${this.getTransactionConfigSQL(config)}`);\n }\n}\nexport {\n PgPreparedQuery,\n PgSession,\n PgTransaction\n};\n//# sourceMappingURL=session.js.map",
105
128
  "import { entityKind } from \"../entity.js\";\nimport { NoopLogger } from \"../logger.js\";\nimport { PgTransaction } from \"../pg-core/index.js\";\nimport { PgPreparedQuery, PgSession } from \"../pg-core/session.js\";\nimport { fillPlaceholders } from \"../sql/sql.js\";\nimport { mapResultRow } from \"../utils.js\";\nconst rawQueryConfig = {\n arrayMode: false,\n fullResults: true\n};\nconst queryConfig = {\n arrayMode: true,\n fullResults: true\n};\nclass NeonHttpPreparedQuery extends PgPreparedQuery {\n constructor(client, query, logger, fields, _isResponseInArrayMode, customResultMapper) {\n super(query);\n this.client = client;\n this.logger = logger;\n this.fields = fields;\n this._isResponseInArrayMode = _isResponseInArrayMode;\n this.customResultMapper = customResultMapper;\n this.clientQuery = client.query ?? client;\n }\n static [entityKind] = \"NeonHttpPreparedQuery\";\n clientQuery;\n /** @internal */\n async execute(placeholderValues = {}, token = this.authToken) {\n const params = fillPlaceholders(this.query.params, placeholderValues);\n this.logger.logQuery(this.query.sql, params);\n const { fields, clientQuery, query, customResultMapper } = this;\n if (!fields && !customResultMapper) {\n return clientQuery(\n query.sql,\n params,\n token === void 0 ? rawQueryConfig : {\n ...rawQueryConfig,\n authToken: token\n }\n );\n }\n const result = await clientQuery(\n query.sql,\n params,\n token === void 0 ? queryConfig : {\n ...queryConfig,\n authToken: token\n }\n );\n return this.mapResult(result);\n }\n mapResult(result) {\n if (!this.fields && !this.customResultMapper) {\n return result;\n }\n const rows = result.rows;\n if (this.customResultMapper) {\n return this.customResultMapper(rows);\n }\n return rows.map((row) => mapResultRow(this.fields, row, this.joinsNotNullableMap));\n }\n all(placeholderValues = {}) {\n const params = fillPlaceholders(this.query.params, placeholderValues);\n this.logger.logQuery(this.query.sql, params);\n return this.clientQuery(\n this.query.sql,\n params,\n this.authToken === void 0 ? rawQueryConfig : {\n ...rawQueryConfig,\n authToken: this.authToken\n }\n ).then((result) => result.rows);\n }\n /** @internal */\n values(placeholderValues = {}, token) {\n const params = fillPlaceholders(this.query.params, placeholderValues);\n this.logger.logQuery(this.query.sql, params);\n return this.clientQuery(this.query.sql, params, { arrayMode: true, fullResults: true, authToken: token }).then((result) => result.rows);\n }\n /** @internal */\n isResponseInArrayMode() {\n return this._isResponseInArrayMode;\n }\n}\nclass NeonHttpSession extends PgSession {\n constructor(client, dialect, schema, options = {}) {\n super(dialect);\n this.client = client;\n this.schema = schema;\n this.options = options;\n this.clientQuery = client.query ?? client;\n this.logger = options.logger ?? new NoopLogger();\n }\n static [entityKind] = \"NeonHttpSession\";\n clientQuery;\n logger;\n prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper) {\n return new NeonHttpPreparedQuery(\n this.client,\n query,\n this.logger,\n fields,\n isResponseInArrayMode,\n customResultMapper\n );\n }\n async batch(queries) {\n const preparedQueries = [];\n const builtQueries = [];\n for (const query of queries) {\n const preparedQuery = query._prepare();\n const builtQuery = preparedQuery.getQuery();\n preparedQueries.push(preparedQuery);\n builtQueries.push(\n this.clientQuery(builtQuery.sql, builtQuery.params, {\n fullResults: true,\n arrayMode: preparedQuery.isResponseInArrayMode()\n })\n );\n }\n const batchResults = await this.client.transaction(builtQueries, queryConfig);\n return batchResults.map((result, i) => preparedQueries[i].mapResult(result, true));\n }\n // change return type to QueryRows<true>\n async query(query, params) {\n this.logger.logQuery(query, params);\n const result = await this.clientQuery(query, params, { arrayMode: true, fullResults: true });\n return result;\n }\n // change return type to QueryRows<false>\n async queryObjects(query, params) {\n return this.clientQuery(query, params, { arrayMode: false, fullResults: true });\n }\n /** @internal */\n async count(sql, token) {\n const res = await this.execute(sql, token);\n return Number(\n res[\"rows\"][0][\"count\"]\n );\n }\n async transaction(_transaction, _config = {}) {\n throw new Error(\"No transactions support in neon-http driver\");\n }\n}\nclass NeonTransaction extends PgTransaction {\n static [entityKind] = \"NeonHttpTransaction\";\n async transaction(_transaction) {\n throw new Error(\"No transactions support in neon-http driver\");\n }\n}\nexport {\n NeonHttpPreparedQuery,\n NeonHttpSession,\n NeonTransaction\n};\n//# sourceMappingURL=session.js.map",
106
129
  "import { neon, types } from \"@neondatabase/serverless\";\nimport { entityKind } from \"../entity.js\";\nimport { DefaultLogger } from \"../logger.js\";\nimport { PgDatabase } from \"../pg-core/db.js\";\nimport { PgDialect } from \"../pg-core/dialect.js\";\nimport { createTableRelationsHelpers, extractTablesRelationalConfig } from \"../relations.js\";\nimport { isConfig } from \"../utils.js\";\nimport { NeonHttpSession } from \"./session.js\";\nclass NeonHttpDriver {\n constructor(client, dialect, options = {}) {\n this.client = client;\n this.dialect = dialect;\n this.options = options;\n this.initMappers();\n }\n static [entityKind] = \"NeonHttpDriver\";\n createSession(schema) {\n return new NeonHttpSession(this.client, this.dialect, schema, { logger: this.options.logger });\n }\n initMappers() {\n types.setTypeParser(types.builtins.TIMESTAMPTZ, (val) => val);\n types.setTypeParser(types.builtins.TIMESTAMP, (val) => val);\n types.setTypeParser(types.builtins.DATE, (val) => val);\n types.setTypeParser(types.builtins.INTERVAL, (val) => val);\n types.setTypeParser(1231, (val) => val);\n types.setTypeParser(1115, (val) => val);\n types.setTypeParser(1185, (val) => val);\n types.setTypeParser(1187, (val) => val);\n types.setTypeParser(1182, (val) => val);\n }\n}\nfunction wrap(target, token, cb, deep) {\n return new Proxy(target, {\n get(target2, p) {\n const element = target2[p];\n if (typeof element !== \"function\" && (typeof element !== \"object\" || element === null))\n return element;\n if (deep)\n return wrap(element, token, cb);\n if (p === \"query\")\n return wrap(element, token, cb, true);\n return new Proxy(element, {\n apply(target3, thisArg, argArray) {\n const res = target3.call(thisArg, ...argArray);\n if (typeof res === \"object\" && res !== null && \"setToken\" in res && typeof res.setToken === \"function\") {\n res.setToken(token);\n }\n return cb(target3, p, res);\n }\n });\n }\n });\n}\nclass NeonHttpDatabase extends PgDatabase {\n static [entityKind] = \"NeonHttpDatabase\";\n $withAuth(token) {\n this.authToken = token;\n return wrap(this, token, (target, p, res) => {\n if (p === \"with\") {\n return wrap(res, token, (_, __, res2) => res2);\n }\n return res;\n });\n }\n async batch(batch) {\n return this.session.batch(batch);\n }\n}\nfunction construct(client, config = {}) {\n const dialect = new PgDialect({ casing: config.casing });\n let logger;\n if (config.logger === true) {\n logger = new DefaultLogger();\n } else if (config.logger !== false) {\n logger = config.logger;\n }\n let schema;\n if (config.schema) {\n const tablesConfig = extractTablesRelationalConfig(\n config.schema,\n createTableRelationsHelpers\n );\n schema = {\n fullSchema: config.schema,\n schema: tablesConfig.tables,\n tableNamesMap: tablesConfig.tableNamesMap\n };\n }\n const driver = new NeonHttpDriver(client, dialect, { logger });\n const session = driver.createSession(schema);\n const db = new NeonHttpDatabase(\n dialect,\n session,\n schema\n );\n db.$client = client;\n return db;\n}\nfunction drizzle(...params) {\n if (typeof params[0] === \"string\") {\n const instance = neon(params[0]);\n return construct(instance, params[1]);\n }\n if (isConfig(params[0])) {\n const { connection, client, ...drizzleConfig } = params[0];\n if (client)\n return construct(client, drizzleConfig);\n if (typeof connection === \"object\") {\n const { connectionString, ...options } = connection;\n const instance2 = neon(connectionString, options);\n return construct(instance2, drizzleConfig);\n }\n const instance = neon(connection);\n return construct(instance, drizzleConfig);\n }\n return construct(params[0], params[1]);\n}\n((drizzle2) => {\n function mock(config) {\n return construct({}, config);\n }\n drizzle2.mock = mock;\n})(drizzle || (drizzle = {}));\nexport {\n NeonHttpDatabase,\n NeonHttpDriver,\n drizzle\n};\n//# sourceMappingURL=driver.js.map",
107
- "import { neon } from '@neondatabase/serverless';\nimport { eq } from 'drizzle-orm';\nimport { drizzle, NeonHttpDatabase } from 'drizzle-orm/neon-http';\nimport {\n\tbigint,\n\tjsonb,\n\tpgTable,\n\ttext,\n\ttimestamp,\n\tvarchar\n} from 'drizzle-orm/pg-core';\nimport type { AuthSessionStore } from './sessionTypes';\nimport type {\n\tSessionData,\n\tUnregisteredSessionData,\n\tUserSessionId\n} from './types';\n\nexport const authSessionsTable = pgTable('auth_sessions', {\n\tid: varchar('id', { length: 255 }).primaryKey(),\n\taccess_token: text('access_token').notNull(),\n\trefresh_token: text('refresh_token'),\n\texpires_at_ms: bigint('expires_at_ms', { mode: 'number' }).notNull(),\n\tuser_json: jsonb('user_json').$type<Record<string, unknown>>().notNull(),\n\tcreated_at: timestamp('created_at').notNull().defaultNow(),\n\tupdated_at: timestamp('updated_at').notNull().defaultNow()\n});\n\nexport const authUnregisteredSessionsTable = pgTable(\n\t'auth_unregistered_sessions',\n\t{\n\t\tid: varchar('id', { length: 255 }).primaryKey(),\n\t\taccess_token: text('access_token'),\n\t\trefresh_token: text('refresh_token'),\n\t\texpires_at_ms: bigint('expires_at_ms', { mode: 'number' }).notNull(),\n\t\tuser_identity_json:\n\t\t\tjsonb('user_identity_json').$type<Record<string, unknown>>(),\n\t\tsession_information_json: jsonb('session_information_json').$type<\n\t\t\tRecord<string, unknown>\n\t\t>(),\n\t\tcreated_at: timestamp('created_at').notNull().defaultNow(),\n\t\tupdated_at: timestamp('updated_at').notNull().defaultNow()\n\t}\n);\n\nexport const authSessionSchema = {\n\tauthSessions: authSessionsTable,\n\tauthUnregisteredSessions: authUnregisteredSessionsTable\n};\n\nexport type AuthSessionSchema = typeof authSessionSchema;\n\ntype AuthSessionRow = typeof authSessionsTable.$inferSelect;\ntype AuthUnregisteredSessionRow =\n\ttypeof authUnregisteredSessionsTable.$inferSelect;\n\nconst cloneUser = <UserType>(value: UserType): UserType => {\n\tif (value === null || value === undefined) return value;\n\treturn structuredClone(value);\n};\n\nconst cloneRecord = (value?: Record<string, unknown>) =>\n\tvalue ? structuredClone(value) : undefined;\n\nconst toSessionData = <UserType>(\n\trow: AuthSessionRow\n): SessionData<UserType> => ({\n\taccessToken: row.access_token,\n\texpiresAt: row.expires_at_ms,\n\trefreshToken: row.refresh_token ?? undefined,\n\tuser: cloneUser(row.user_json as UserType)\n});\n\nconst toUnregisteredSessionData = (\n\trow: AuthUnregisteredSessionRow\n): UnregisteredSessionData => ({\n\taccessToken: row.access_token ?? undefined,\n\texpiresAt: row.expires_at_ms,\n\trefreshToken: row.refresh_token ?? undefined,\n\tsessionInformation: cloneRecord(row.session_information_json ?? undefined),\n\tuserIdentity: cloneRecord(row.user_identity_json ?? undefined)\n});\n\nexport const createNeonAuthSessionStore = <UserType>(\n\tdatabaseUrl: string\n): AuthSessionStore<UserType> => {\n\tconst sql = neon(databaseUrl);\n\tconst db: NeonHttpDatabase<AuthSessionSchema> = drizzle(sql, {\n\t\tschema: authSessionSchema\n\t});\n\n\treturn {\n\t\tgetSession: async (id) => {\n\t\t\tconst [row] = await db\n\t\t\t\t.select()\n\t\t\t\t.from(authSessionsTable)\n\t\t\t\t.where(eq(authSessionsTable.id, id))\n\t\t\t\t.limit(1);\n\n\t\t\treturn row ? toSessionData<UserType>(row) : undefined;\n\t\t},\n\t\tsetSession: async (id, value) => {\n\t\t\tawait db\n\t\t\t\t.insert(authSessionsTable)\n\t\t\t\t.values({\n\t\t\t\t\tid,\n\t\t\t\t\taccess_token: value.accessToken,\n\t\t\t\t\trefresh_token: value.refreshToken ?? null,\n\t\t\t\t\texpires_at_ms: value.expiresAt,\n\t\t\t\t\tuser_json: (value.user ?? {}) as Record<string, unknown>,\n\t\t\t\t\tupdated_at: new Date()\n\t\t\t\t})\n\t\t\t\t.onConflictDoUpdate({\n\t\t\t\t\ttarget: authSessionsTable.id,\n\t\t\t\t\tset: {\n\t\t\t\t\t\taccess_token: value.accessToken,\n\t\t\t\t\t\trefresh_token: value.refreshToken ?? null,\n\t\t\t\t\t\texpires_at_ms: value.expiresAt,\n\t\t\t\t\t\tuser_json: (value.user ?? {}) as Record<\n\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\tunknown\n\t\t\t\t\t\t>,\n\t\t\t\t\t\tupdated_at: new Date()\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t},\n\t\tremoveSession: async (id) => {\n\t\t\tawait db\n\t\t\t\t.delete(authSessionsTable)\n\t\t\t\t.where(eq(authSessionsTable.id, id));\n\t\t},\n\t\tgetUnregisteredSession: async (id) => {\n\t\t\tconst [row] = await db\n\t\t\t\t.select()\n\t\t\t\t.from(authUnregisteredSessionsTable)\n\t\t\t\t.where(eq(authUnregisteredSessionsTable.id, id))\n\t\t\t\t.limit(1);\n\n\t\t\treturn row ? toUnregisteredSessionData(row) : undefined;\n\t\t},\n\t\tsetUnregisteredSession: async (id, value) => {\n\t\t\tawait db\n\t\t\t\t.insert(authUnregisteredSessionsTable)\n\t\t\t\t.values({\n\t\t\t\t\tid,\n\t\t\t\t\taccess_token: value.accessToken ?? null,\n\t\t\t\t\trefresh_token: value.refreshToken ?? null,\n\t\t\t\t\texpires_at_ms: value.expiresAt,\n\t\t\t\t\tuser_identity_json: value.userIdentity ?? null,\n\t\t\t\t\tsession_information_json: value.sessionInformation ?? null,\n\t\t\t\t\tupdated_at: new Date()\n\t\t\t\t})\n\t\t\t\t.onConflictDoUpdate({\n\t\t\t\t\ttarget: authUnregisteredSessionsTable.id,\n\t\t\t\t\tset: {\n\t\t\t\t\t\taccess_token: value.accessToken ?? null,\n\t\t\t\t\t\trefresh_token: value.refreshToken ?? null,\n\t\t\t\t\t\texpires_at_ms: value.expiresAt,\n\t\t\t\t\t\tuser_identity_json: value.userIdentity ?? null,\n\t\t\t\t\t\tsession_information_json:\n\t\t\t\t\t\t\tvalue.sessionInformation ?? null,\n\t\t\t\t\t\tupdated_at: new Date()\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t},\n\t\tremoveUnregisteredSession: async (id) => {\n\t\t\tawait db\n\t\t\t\t.delete(authUnregisteredSessionsTable)\n\t\t\t\t.where(eq(authUnregisteredSessionsTable.id, id));\n\t\t},\n\t\tlistSessionIds: async () => {\n\t\t\tconst rows = await db\n\t\t\t\t.select({ id: authSessionsTable.id })\n\t\t\t\t.from(authSessionsTable);\n\t\t\treturn rows.map((row) => row.id as UserSessionId);\n\t\t},\n\t\tlistUnregisteredSessionIds: async () => {\n\t\t\tconst rows = await db\n\t\t\t\t.select({ id: authUnregisteredSessionsTable.id })\n\t\t\t\t.from(authUnregisteredSessionsTable);\n\t\t\treturn rows.map((row) => row.id as UserSessionId);\n\t\t}\n\t};\n};\n",
108
- "import type {\n\tLinkedProviderAccessTokenLease,\n\tLinkedProviderBinding,\n\tLinkedProviderBindingStore,\n\tLinkedProviderCredentialFailureReport,\n\tLinkedProviderCredentialResolver,\n\tLinkedProviderGrant,\n\tLinkedProviderGrantStore,\n\tResolveLinkedProviderCredentialInput,\n\tResolvedLinkedProviderCredential\n} from '@absolutejs/linked-providers';\n\nexport type LinkedProviderRefreshResult = {\n\tgrant: LinkedProviderGrant;\n\tlease: LinkedProviderAccessTokenLease;\n};\n\nexport type CreateLinkedProviderCredentialResolverOptions = {\n\tgrantStore: LinkedProviderGrantStore;\n\tbindingStore: LinkedProviderBindingStore;\n\tloadAccessTokenLease: (\n\t\tgrant: LinkedProviderGrant\n\t) =>\n\t\t| Promise<LinkedProviderAccessTokenLease | null>\n\t\t| LinkedProviderAccessTokenLease\n\t\t| null;\n\trefreshAccessTokenLease?: (\n\t\tgrant: LinkedProviderGrant,\n\t\tinput?: {\n\t\t\tminValidityMs?: number;\n\t\t\trequiredScopes?: string[];\n\t\t}\n\t) =>\n\t\t| Promise<LinkedProviderRefreshResult | null>\n\t\t| LinkedProviderRefreshResult\n\t\t| null;\n\tnow?: () => number;\n\tonReportFailure?: (input: {\n\t\tcredential: ResolvedLinkedProviderCredential;\n\t\treport: LinkedProviderCredentialFailureReport;\n\t\tgrant?: LinkedProviderGrant;\n\t\tbinding?: LinkedProviderBinding;\n\t}) => Promise<void> | void;\n};\n\nconst uniqueStrings = (values: string[]) => [...new Set(values)];\n\nconst getEffectiveScopes = (\n\tgrant: LinkedProviderGrant,\n\tbinding: LinkedProviderBinding\n) => {\n\tif (binding.availableScopes.length === 0) {\n\t\treturn uniqueStrings(grant.grantedScopes);\n\t}\n\n\tconst bindingScopeSet = new Set(binding.availableScopes);\n\treturn uniqueStrings(\n\t\tgrant.grantedScopes.filter((scope) => bindingScopeSet.has(scope))\n\t);\n};\n\nconst hasRequiredScopes = (\n\tavailableScopes: string[],\n\trequiredScopes?: string[]\n) => (requiredScopes ?? []).every((scope) => availableScopes.includes(scope));\n\nconst isGrantUsable = (grant: LinkedProviderGrant) =>\n\tgrant.status === 'active' || grant.status === 'refresh_required';\n\nconst isBindingUsable = (binding: LinkedProviderBinding) =>\n\tbinding.status === 'active';\n\nconst needsRefresh = (\n\tlease: LinkedProviderAccessTokenLease | null,\n\tnow: number,\n\tminValidityMs?: number\n) => {\n\tif (!lease) return true;\n\tif (lease.expiresAt === undefined) return false;\n\treturn lease.expiresAt <= now + (minValidityMs ?? 0);\n};\n\nconst ensureLeaseScopes = (\n\tlease: LinkedProviderAccessTokenLease,\n\trequiredScopes?: string[]\n) => {\n\tif (!hasRequiredScopes(lease.grantedScopes, requiredScopes)) {\n\t\tthrow new Error(\n\t\t\t'Linked provider access token lease is missing required scopes'\n\t\t);\n\t}\n};\n\nconst ensureLeaseValidity = (\n\tlease: LinkedProviderAccessTokenLease,\n\tnow: number,\n\tminValidityMs?: number\n) => {\n\tif (lease.expiresAt === undefined) return;\n\tif (lease.expiresAt <= now + (minValidityMs ?? 0)) {\n\t\tthrow new Error(\n\t\t\t'Linked provider access token lease does not satisfy minimum validity'\n\t\t);\n\t}\n};\n\nconst buildResolvedCredential = (\n\tgrant: LinkedProviderGrant,\n\tbinding: LinkedProviderBinding\n): ResolvedLinkedProviderCredential => ({\n\tbindingId: binding.id,\n\tgrantId: grant.id,\n\townerRef: grant.ownerRef,\n\tconnectorProvider: binding.connectorProvider,\n\tproviderFamily: grant.providerFamily,\n\tauthProviderKey: grant.authProviderKey,\n\texternalAccountId: binding.externalAccountId,\n\texternalAccountType: binding.externalAccountType,\n\tscopes: getEffectiveScopes(grant, binding),\n\tcapabilities: binding.capabilities ? [...binding.capabilities] : undefined,\n\tlabel: binding.label,\n\tusername: binding.username,\n\temail: binding.email,\n\tmetadata: {\n\t\t...(grant.metadata ?? {}),\n\t\t...(binding.metadata ?? {})\n\t}\n});\n\nconst annotateFailureMetadata = (\n\tmetadata: Record<string, unknown> | undefined,\n\treport: LinkedProviderCredentialFailureReport,\n\tnow: number\n) => ({\n\t...(metadata ?? {}),\n\tlastCredentialFailureAt: now,\n\tlastCredentialFailureCode: report.code,\n\tlastCredentialFailureMessage: report.message,\n\tlastCredentialFailureRetryAt: report.retryAt\n});\n\nconst sortNewestFirst = <T extends { updatedAt: number }>(items: T[]) =>\n\t[...items].sort((left, right) => right.updatedAt - left.updatedAt);\n\nexport const createLinkedProviderCredentialResolver = ({\n\tgrantStore,\n\tbindingStore,\n\tloadAccessTokenLease,\n\trefreshAccessTokenLease,\n\tnow = () => Date.now(),\n\tonReportFailure\n}: CreateLinkedProviderCredentialResolverOptions): LinkedProviderCredentialResolver => ({\n\tlistBindings: async ({ ownerRef, connectorProvider, status }) =>\n\t\tsortNewestFirst(\n\t\t\tawait bindingStore.listBindingsByOwner(ownerRef)\n\t\t).filter(\n\t\t\t(binding) =>\n\t\t\t\t(connectorProvider === undefined ||\n\t\t\t\t\tbinding.connectorProvider === connectorProvider) &&\n\t\t\t\t(status === undefined || binding.status === status)\n\t\t),\n\tresolveCredential: async (input: ResolveLinkedProviderCredentialInput) => {\n\t\tconst bindings = sortNewestFirst(\n\t\t\tawait bindingStore.listBindingsByOwner(input.ownerRef)\n\t\t).filter(\n\t\t\t(binding) =>\n\t\t\t\tbinding.connectorProvider === input.connectorProvider &&\n\t\t\t\tisBindingUsable(binding) &&\n\t\t\t\t(input.bindingId === undefined ||\n\t\t\t\t\tbinding.id === input.bindingId) &&\n\t\t\t\t(input.externalAccountId === undefined ||\n\t\t\t\t\tbinding.externalAccountId === input.externalAccountId)\n\t\t);\n\n\t\tfor (const binding of bindings) {\n\t\t\tconst grant = await grantStore.getGrant(binding.grantId);\n\t\t\tif (\n\t\t\t\t!grant ||\n\t\t\t\tgrant.ownerRef !== input.ownerRef ||\n\t\t\t\t!isGrantUsable(grant)\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst effectiveScopes = getEffectiveScopes(grant, binding);\n\t\t\tif (!hasRequiredScopes(effectiveScopes, input.requiredScopes)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\treturn buildResolvedCredential(grant, binding);\n\t\t}\n\n\t\treturn null;\n\t},\n\tgetAccessToken: async (credential, input) => {\n\t\tconst binding = await bindingStore.getBinding(credential.bindingId);\n\t\tif (!binding || !isBindingUsable(binding)) {\n\t\t\tthrow new Error('Linked provider binding is unavailable');\n\t\t}\n\n\t\tconst grant = await grantStore.getGrant(credential.grantId);\n\t\tif (!grant || !isGrantUsable(grant)) {\n\t\t\tthrow new Error('Linked provider grant is unavailable');\n\t\t}\n\n\t\tconst requiredScopes = input?.requiredScopes;\n\t\tconst effectiveScopes = getEffectiveScopes(grant, binding);\n\t\tif (!hasRequiredScopes(effectiveScopes, requiredScopes)) {\n\t\t\tthrow new Error(\n\t\t\t\t'Linked provider credential is missing required scopes'\n\t\t\t);\n\t\t}\n\n\t\tconst currentTime = now();\n\t\tlet lease = await loadAccessTokenLease(grant);\n\t\tif (needsRefresh(lease, currentTime, input?.minValidityMs)) {\n\t\t\tif (!refreshAccessTokenLease) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'Linked provider access token lease requires refresh'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst refreshed = await refreshAccessTokenLease(grant, input);\n\t\t\tif (!refreshed) {\n\t\t\t\tthrow new Error('Linked provider access token refresh failed');\n\t\t\t}\n\n\t\t\tawait grantStore.saveGrant(refreshed.grant);\n\t\t\tlease = refreshed.lease;\n\t\t}\n\n\t\tif (!lease) {\n\t\t\tthrow new Error(\n\t\t\t\t'Linked provider access token lease is unavailable'\n\t\t\t);\n\t\t}\n\n\t\tensureLeaseScopes(lease, requiredScopes);\n\t\tensureLeaseValidity(lease, currentTime, input?.minValidityMs);\n\t\treturn lease;\n\t},\n\treportFailure: async (credential, report) => {\n\t\tconst currentTime = now();\n\t\tconst grant = await grantStore.getGrant(credential.grantId);\n\t\tconst binding = await bindingStore.getBinding(credential.bindingId);\n\n\t\tif (grant) {\n\t\t\tconst nextGrant: LinkedProviderGrant = {\n\t\t\t\t...grant,\n\t\t\t\tupdatedAt: currentTime,\n\t\t\t\tlastRefreshError: report.message ?? report.code,\n\t\t\t\tmetadata: annotateFailureMetadata(\n\t\t\t\t\tgrant.metadata,\n\t\t\t\t\treport,\n\t\t\t\t\tcurrentTime\n\t\t\t\t)\n\t\t\t};\n\n\t\t\tif (report.code === 'unauthorized' || report.code === 'revoked') {\n\t\t\t\tnextGrant.status = 'revoked';\n\t\t\t}\n\n\t\t\tawait grantStore.saveGrant(nextGrant);\n\t\t}\n\n\t\tif (binding) {\n\t\t\tconst nextBinding: LinkedProviderBinding = {\n\t\t\t\t...binding,\n\t\t\t\tupdatedAt: currentTime,\n\t\t\t\tmetadata: annotateFailureMetadata(\n\t\t\t\t\tbinding.metadata,\n\t\t\t\t\treport,\n\t\t\t\t\tcurrentTime\n\t\t\t\t)\n\t\t\t};\n\n\t\t\tif (report.code === 'unauthorized' || report.code === 'revoked') {\n\t\t\t\tnextBinding.status = 'disconnected';\n\t\t\t} else if (report.code === 'insufficient_scope') {\n\t\t\t\tnextBinding.status = 'restricted';\n\t\t\t}\n\n\t\t\tawait bindingStore.saveBinding(nextBinding);\n\t\t}\n\n\t\tawait onReportFailure?.({\n\t\t\tcredential,\n\t\t\treport,\n\t\t\tgrant: grant ?? undefined,\n\t\t\tbinding: binding ?? undefined\n\t\t});\n\t}\n});\n",
109
- "import {\n\tcreateOAuth2Client,\n\tisRefreshableOAuth2Client,\n\tisValidProviderOption\n} from 'citra';\nimport type {\n\tLinkedProviderBindingStore,\n\tLinkedProviderGrantStore\n} from '@absolutejs/linked-providers';\nimport { createLinkedProviderCredentialResolver } from './linkedProviderResolver';\nimport { resolveProviderClientConfiguration } from './providerClients';\nimport type { OAuth2ConfigurationOptions } from './types';\n\nexport type CreateOAuthLinkedProviderCredentialResolverOptions = {\n\tgrantStore: LinkedProviderGrantStore;\n\tbindingStore: LinkedProviderBindingStore;\n\tprovidersConfiguration: OAuth2ConfigurationOptions;\n\tnow?: () => number;\n};\n\nconst getGrantedScopes = (scopeValue: unknown, fallbackScopes: string[]) => {\n\tif (typeof scopeValue === 'string' && scopeValue.trim().length > 0) {\n\t\treturn [...new Set(scopeValue.split(/\\s+/).filter(Boolean))];\n\t}\n\n\treturn [...new Set(fallbackScopes.filter(Boolean))];\n};\n\nconst getExpiresAt = (tokenResponse: Record<string, unknown>) => {\n\tconst expiresIn = tokenResponse.expires_in;\n\tconst expiresInSeconds =\n\t\ttypeof expiresIn === 'number'\n\t\t\t? expiresIn\n\t\t\t: typeof expiresIn === 'string' && expiresIn.trim().length > 0\n\t\t\t\t? Number(expiresIn)\n\t\t\t\t: Number.NaN;\n\n\tif (!Number.isFinite(expiresInSeconds) || expiresInSeconds <= 0) {\n\t\treturn undefined;\n\t}\n\n\treturn Date.now() + expiresInSeconds * 1000;\n};\n\nexport const createOAuthLinkedProviderCredentialResolver = async ({\n\tbindingStore,\n\tgrantStore,\n\tnow,\n\tprovidersConfiguration\n}: CreateOAuthLinkedProviderCredentialResolverOptions) => {\n\tconst clientEntries: Array<\n\t\tPromise<[string, Awaited<ReturnType<typeof createOAuth2Client>>]>\n\t> = [];\n\n\tfor (const [providerName, providerConfig] of Object.entries(\n\t\tprovidersConfiguration\n\t)) {\n\t\tif (!isValidProviderOption(providerName)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst resolvedProviderClientConfiguration =\n\t\t\tresolveProviderClientConfiguration({\n\t\t\t\tproviderName,\n\t\t\t\tprovidersConfiguration\n\t\t\t});\n\t\tif (\n\t\t\t'error' in resolvedProviderClientConfiguration ||\n\t\t\t!resolvedProviderClientConfiguration.config\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tclientEntries.push(\n\t\t\tcreateOAuth2Client(\n\t\t\t\tproviderName,\n\t\t\t\tresolvedProviderClientConfiguration.config.credentials\n\t\t\t).then(\n\t\t\t\t(providerInstance) => [providerName, providerInstance] as const\n\t\t\t)\n\t\t);\n\t}\n\n\tconst clients = new Map(await Promise.all(clientEntries));\n\n\treturn createLinkedProviderCredentialResolver({\n\t\tbindingStore,\n\t\tgrantStore,\n\t\tnow,\n\t\tloadAccessTokenLease: async (grant) =>\n\t\t\tgrant.accessTokenCiphertext\n\t\t\t\t? {\n\t\t\t\t\t\taccessToken: grant.accessTokenCiphertext,\n\t\t\t\t\t\texpiresAt: grant.expiresAt,\n\t\t\t\t\t\tgrantedScopes: grant.grantedScopes,\n\t\t\t\t\t\ttokenType: grant.tokenType\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\trefreshAccessTokenLease: async (grant) => {\n\t\t\tif (\n\t\t\t\t!isValidProviderOption(grant.authProviderKey) ||\n\t\t\t\t!grant.refreshTokenCiphertext\n\t\t\t) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst providerKey = grant.authProviderKey;\n\t\t\tconst providerClientName =\n\t\t\t\ttypeof grant.metadata?.providerClient === 'string' &&\n\t\t\t\tgrant.metadata.providerClient.trim().length > 0\n\t\t\t\t\t? grant.metadata.providerClient.trim()\n\t\t\t\t\t: undefined;\n\t\t\tconst resolvedProviderClientConfiguration =\n\t\t\t\tresolveProviderClientConfiguration({\n\t\t\t\t\tclientName: providerClientName,\n\t\t\t\t\tproviderName: providerKey,\n\t\t\t\t\tprovidersConfiguration\n\t\t\t\t});\n\t\t\tif (\n\t\t\t\t'error' in resolvedProviderClientConfiguration ||\n\t\t\t\t!resolvedProviderClientConfiguration.config\n\t\t\t) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst providerClient = await createOAuth2Client(\n\t\t\t\tproviderKey,\n\t\t\t\tresolvedProviderClientConfiguration.config.credentials\n\t\t\t);\n\t\t\tif (\n\t\t\t\t!providerClient ||\n\t\t\t\t!isRefreshableOAuth2Client(providerKey, providerClient)\n\t\t\t) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst tokenResponse = await providerClient.refreshAccessToken(\n\t\t\t\tgrant.refreshTokenCiphertext\n\t\t\t);\n\t\t\tconst refreshedAt = Date.now();\n\t\t\tconst grantedScopes = getGrantedScopes(\n\t\t\t\tReflect.get(tokenResponse as object, 'scope'),\n\t\t\t\tgrant.grantedScopes\n\t\t\t);\n\t\t\tconst tokenType = Reflect.get(\n\t\t\t\ttokenResponse as object,\n\t\t\t\t'token_type'\n\t\t\t);\n\t\t\tconst refreshedGrant = {\n\t\t\t\t...grant,\n\t\t\t\taccessTokenCiphertext: tokenResponse.access_token,\n\t\t\t\texpiresAt: getExpiresAt(\n\t\t\t\t\ttokenResponse as Record<string, unknown>\n\t\t\t\t),\n\t\t\t\tgrantedScopes,\n\t\t\t\tlastRefreshError: undefined,\n\t\t\t\tlastRefreshedAt: refreshedAt,\n\t\t\t\trefreshTokenCiphertext:\n\t\t\t\t\ttokenResponse.refresh_token ?? grant.refreshTokenCiphertext,\n\t\t\t\tstatus: 'active' as const,\n\t\t\t\ttokenType:\n\t\t\t\t\ttypeof tokenType === 'string' ? tokenType : grant.tokenType,\n\t\t\t\tupdatedAt: refreshedAt\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\tgrant: refreshedGrant,\n\t\t\t\tlease: {\n\t\t\t\t\taccessToken: refreshedGrant.accessTokenCiphertext ?? '',\n\t\t\t\t\texpiresAt: refreshedGrant.expiresAt,\n\t\t\t\t\tgrantedScopes: refreshedGrant.grantedScopes,\n\t\t\t\t\ttokenType: refreshedGrant.tokenType\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t});\n};\n",
110
- "import { neon } from '@neondatabase/serverless';\nimport { desc, eq } from 'drizzle-orm';\nimport { drizzle, NeonHttpDatabase } from 'drizzle-orm/neon-http';\nimport { jsonb, pgTable, text, timestamp, varchar } from 'drizzle-orm/pg-core';\nimport type {\n\tLinkedProviderBinding,\n\tLinkedProviderBindingStore,\n\tLinkedProviderGrant,\n\tLinkedProviderGrantStore\n} from '@absolutejs/linked-providers';\nimport { createOAuthLinkedProviderCredentialResolver } from './oauthLinkedProviderResolver';\nimport type { OAuth2ConfigurationOptions } from './types';\n\nexport const linkedProviderGrantsTable = pgTable('linked_provider_grants', {\n\tid: varchar('id', { length: 255 }).primaryKey(),\n\towner_ref: varchar('owner_ref', { length: 255 }).notNull(),\n\tprovider_family: varchar('provider_family', { length: 64 }).notNull(),\n\tauth_provider_key: varchar('auth_provider_key', { length: 64 }).notNull(),\n\tprovider_subject: varchar('provider_subject', { length: 255 }).notNull(),\n\tstatus: varchar('status', { length: 64 }).notNull(),\n\tgranted_scopes: jsonb('granted_scopes')\n\t\t.$type<string[]>()\n\t\t.notNull()\n\t\t.default([]),\n\taccess_token_ciphertext: text('access_token_ciphertext'),\n\trefresh_token_ciphertext: text('refresh_token_ciphertext'),\n\ttoken_type: varchar('token_type', { length: 64 }),\n\texpires_at: timestamp('expires_at'),\n\tlast_refreshed_at: timestamp('last_refreshed_at'),\n\tlast_refresh_error: text('last_refresh_error'),\n\tmetadata: jsonb('metadata').$type<Record<string, unknown>>().default({}),\n\tcreated_at: timestamp('created_at').notNull().defaultNow(),\n\tupdated_at: timestamp('updated_at').notNull().defaultNow()\n});\n\nexport const linkedProviderBindingsTable = pgTable('linked_provider_bindings', {\n\tid: varchar('id', { length: 255 }).primaryKey(),\n\tgrant_id: varchar('grant_id', { length: 255 }).notNull(),\n\tconnector_provider: varchar('connector_provider', { length: 64 }).notNull(),\n\texternal_account_id: varchar('external_account_id', {\n\t\tlength: 255\n\t}).notNull(),\n\texternal_account_type: varchar('external_account_type', {\n\t\tlength: 64\n\t}).notNull(),\n\tlabel: varchar('label', { length: 255 }),\n\tusername: varchar('username', { length: 255 }),\n\temail: varchar('email', { length: 320 }),\n\tstatus: varchar('status', { length: 64 }).notNull(),\n\tavailable_scopes: jsonb('available_scopes')\n\t\t.$type<string[]>()\n\t\t.notNull()\n\t\t.default([]),\n\tcapabilities: jsonb('capabilities').$type<string[]>().default([]),\n\tmetadata: jsonb('metadata').$type<Record<string, unknown>>().default({}),\n\tcreated_at: timestamp('created_at').notNull().defaultNow(),\n\tupdated_at: timestamp('updated_at').notNull().defaultNow()\n});\n\nexport const linkedProviderSchema = {\n\tlinkedProviderBindings: linkedProviderBindingsTable,\n\tlinkedProviderGrants: linkedProviderGrantsTable\n};\n\nexport type LinkedProviderSchema = typeof linkedProviderSchema;\nexport type LinkedProviderGrantRow =\n\ttypeof linkedProviderGrantsTable.$inferSelect;\nexport type LinkedProviderBindingRow =\n\ttypeof linkedProviderBindingsTable.$inferSelect;\n\nconst toTimestamp = (value: number | undefined) =>\n\tvalue === undefined ? null : new Date(value);\n\nconst fromTimestamp = (value: Date | null) =>\n\tvalue === null ? undefined : value.getTime();\n\nconst toGrant = (row: LinkedProviderGrantRow): LinkedProviderGrant => ({\n\tid: row.id,\n\townerRef: row.owner_ref,\n\tproviderFamily: row.provider_family,\n\tauthProviderKey: row.auth_provider_key,\n\tproviderSubject: row.provider_subject,\n\tstatus: row.status as LinkedProviderGrant['status'],\n\tgrantedScopes: row.granted_scopes ?? [],\n\taccessTokenCiphertext: row.access_token_ciphertext ?? undefined,\n\trefreshTokenCiphertext: row.refresh_token_ciphertext ?? undefined,\n\ttokenType: row.token_type ?? undefined,\n\texpiresAt: fromTimestamp(row.expires_at),\n\tlastRefreshedAt: fromTimestamp(row.last_refreshed_at),\n\tlastRefreshError: row.last_refresh_error ?? undefined,\n\tmetadata: row.metadata ?? undefined,\n\tcreatedAt: row.created_at.getTime(),\n\tupdatedAt: row.updated_at.getTime()\n});\n\nconst toBinding = (row: LinkedProviderBindingRow): LinkedProviderBinding => ({\n\tid: row.id,\n\tgrantId: row.grant_id,\n\tconnectorProvider: row.connector_provider,\n\texternalAccountId: row.external_account_id,\n\texternalAccountType: row.external_account_type,\n\tlabel: row.label ?? undefined,\n\tusername: row.username ?? undefined,\n\temail: row.email ?? undefined,\n\tstatus: row.status as LinkedProviderBinding['status'],\n\tavailableScopes: row.available_scopes ?? [],\n\tcapabilities: row.capabilities ?? undefined,\n\tmetadata: row.metadata ?? undefined,\n\tcreatedAt: row.created_at.getTime(),\n\tupdatedAt: row.updated_at.getTime()\n});\n\nexport const createNeonLinkedProviderGrantStore = (\n\tdb: NeonHttpDatabase<LinkedProviderSchema>\n): LinkedProviderGrantStore => ({\n\tgetGrant: async (id) => {\n\t\tconst [row] = await db\n\t\t\t.select()\n\t\t\t.from(linkedProviderGrantsTable)\n\t\t\t.where(eq(linkedProviderGrantsTable.id, id))\n\t\t\t.limit(1);\n\n\t\treturn row ? toGrant(row) : undefined;\n\t},\n\tlistGrantsByOwner: async (ownerRef) => {\n\t\tconst rows = await db\n\t\t\t.select()\n\t\t\t.from(linkedProviderGrantsTable)\n\t\t\t.where(eq(linkedProviderGrantsTable.owner_ref, ownerRef))\n\t\t\t.orderBy(desc(linkedProviderGrantsTable.updated_at));\n\n\t\treturn rows.map(toGrant);\n\t},\n\tsaveGrant: async (grant) => {\n\t\tawait db\n\t\t\t.insert(linkedProviderGrantsTable)\n\t\t\t.values({\n\t\t\t\tid: grant.id,\n\t\t\t\towner_ref: grant.ownerRef,\n\t\t\t\tprovider_family: grant.providerFamily,\n\t\t\t\tauth_provider_key: grant.authProviderKey,\n\t\t\t\tprovider_subject: grant.providerSubject,\n\t\t\t\tstatus: grant.status,\n\t\t\t\tgranted_scopes: grant.grantedScopes,\n\t\t\t\taccess_token_ciphertext: grant.accessTokenCiphertext ?? null,\n\t\t\t\trefresh_token_ciphertext: grant.refreshTokenCiphertext ?? null,\n\t\t\t\ttoken_type: grant.tokenType ?? null,\n\t\t\t\texpires_at: toTimestamp(grant.expiresAt),\n\t\t\t\tlast_refreshed_at: toTimestamp(grant.lastRefreshedAt),\n\t\t\t\tlast_refresh_error: grant.lastRefreshError ?? null,\n\t\t\t\tmetadata: grant.metadata ?? {},\n\t\t\t\tcreated_at: new Date(grant.createdAt),\n\t\t\t\tupdated_at: new Date(grant.updatedAt)\n\t\t\t})\n\t\t\t.onConflictDoUpdate({\n\t\t\t\ttarget: linkedProviderGrantsTable.id,\n\t\t\t\tset: {\n\t\t\t\t\towner_ref: grant.ownerRef,\n\t\t\t\t\tprovider_family: grant.providerFamily,\n\t\t\t\t\tauth_provider_key: grant.authProviderKey,\n\t\t\t\t\tprovider_subject: grant.providerSubject,\n\t\t\t\t\tstatus: grant.status,\n\t\t\t\t\tgranted_scopes: grant.grantedScopes,\n\t\t\t\t\taccess_token_ciphertext:\n\t\t\t\t\t\tgrant.accessTokenCiphertext ?? null,\n\t\t\t\t\trefresh_token_ciphertext:\n\t\t\t\t\t\tgrant.refreshTokenCiphertext ?? null,\n\t\t\t\t\ttoken_type: grant.tokenType ?? null,\n\t\t\t\t\texpires_at: toTimestamp(grant.expiresAt),\n\t\t\t\t\tlast_refreshed_at: toTimestamp(grant.lastRefreshedAt),\n\t\t\t\t\tlast_refresh_error: grant.lastRefreshError ?? null,\n\t\t\t\t\tmetadata: grant.metadata ?? {},\n\t\t\t\t\tupdated_at: new Date(grant.updatedAt)\n\t\t\t\t}\n\t\t\t});\n\t},\n\tremoveGrant: async (id) => {\n\t\tawait db\n\t\t\t.delete(linkedProviderBindingsTable)\n\t\t\t.where(eq(linkedProviderBindingsTable.grant_id, id));\n\t\tawait db\n\t\t\t.delete(linkedProviderGrantsTable)\n\t\t\t.where(eq(linkedProviderGrantsTable.id, id));\n\t}\n});\n\nexport const createNeonLinkedProviderBindingStore = (\n\tdb: NeonHttpDatabase<LinkedProviderSchema>\n): LinkedProviderBindingStore => ({\n\tgetBinding: async (id) => {\n\t\tconst [row] = await db\n\t\t\t.select()\n\t\t\t.from(linkedProviderBindingsTable)\n\t\t\t.where(eq(linkedProviderBindingsTable.id, id))\n\t\t\t.limit(1);\n\n\t\treturn row ? toBinding(row) : undefined;\n\t},\n\tlistBindingsByOwner: async (ownerRef) => {\n\t\tconst rows = await db\n\t\t\t.select({ binding: linkedProviderBindingsTable })\n\t\t\t.from(linkedProviderBindingsTable)\n\t\t\t.innerJoin(\n\t\t\t\tlinkedProviderGrantsTable,\n\t\t\t\teq(\n\t\t\t\t\tlinkedProviderBindingsTable.grant_id,\n\t\t\t\t\tlinkedProviderGrantsTable.id\n\t\t\t\t)\n\t\t\t)\n\t\t\t.where(eq(linkedProviderGrantsTable.owner_ref, ownerRef))\n\t\t\t.orderBy(desc(linkedProviderBindingsTable.updated_at));\n\n\t\treturn rows.map(({ binding }) => toBinding(binding));\n\t},\n\tlistBindingsByGrant: async (grantId) => {\n\t\tconst rows = await db\n\t\t\t.select()\n\t\t\t.from(linkedProviderBindingsTable)\n\t\t\t.where(eq(linkedProviderBindingsTable.grant_id, grantId))\n\t\t\t.orderBy(desc(linkedProviderBindingsTable.updated_at));\n\n\t\treturn rows.map(toBinding);\n\t},\n\tsaveBinding: async (binding) => {\n\t\tawait db\n\t\t\t.insert(linkedProviderBindingsTable)\n\t\t\t.values({\n\t\t\t\tid: binding.id,\n\t\t\t\tgrant_id: binding.grantId,\n\t\t\t\tconnector_provider: binding.connectorProvider,\n\t\t\t\texternal_account_id: binding.externalAccountId,\n\t\t\t\texternal_account_type: binding.externalAccountType,\n\t\t\t\tlabel: binding.label ?? null,\n\t\t\t\tusername: binding.username ?? null,\n\t\t\t\temail: binding.email ?? null,\n\t\t\t\tstatus: binding.status,\n\t\t\t\tavailable_scopes: binding.availableScopes,\n\t\t\t\tcapabilities: binding.capabilities ?? [],\n\t\t\t\tmetadata: binding.metadata ?? {},\n\t\t\t\tcreated_at: new Date(binding.createdAt),\n\t\t\t\tupdated_at: new Date(binding.updatedAt)\n\t\t\t})\n\t\t\t.onConflictDoUpdate({\n\t\t\t\ttarget: linkedProviderBindingsTable.id,\n\t\t\t\tset: {\n\t\t\t\t\tgrant_id: binding.grantId,\n\t\t\t\t\tconnector_provider: binding.connectorProvider,\n\t\t\t\t\texternal_account_id: binding.externalAccountId,\n\t\t\t\t\texternal_account_type: binding.externalAccountType,\n\t\t\t\t\tlabel: binding.label ?? null,\n\t\t\t\t\tusername: binding.username ?? null,\n\t\t\t\t\temail: binding.email ?? null,\n\t\t\t\t\tstatus: binding.status,\n\t\t\t\t\tavailable_scopes: binding.availableScopes,\n\t\t\t\t\tcapabilities: binding.capabilities ?? [],\n\t\t\t\t\tmetadata: binding.metadata ?? {},\n\t\t\t\t\tupdated_at: new Date(binding.updatedAt)\n\t\t\t\t}\n\t\t\t});\n\t},\n\tremoveBinding: async (id) => {\n\t\tawait db\n\t\t\t.delete(linkedProviderBindingsTable)\n\t\t\t.where(eq(linkedProviderBindingsTable.id, id));\n\t}\n});\n\nexport const createNeonLinkedProviderStores = (databaseUrl: string) => {\n\tconst sql = neon(databaseUrl);\n\tconst db = drizzle(sql, { schema: linkedProviderSchema });\n\n\treturn {\n\t\tdb,\n\t\tbindingStore: createNeonLinkedProviderBindingStore(db),\n\t\tgrantStore: createNeonLinkedProviderGrantStore(db)\n\t};\n};\n\nexport type CreateNeonOAuthLinkedProviderCredentialResolverOptions = {\n\tdatabaseUrl: string;\n\tprovidersConfiguration: OAuth2ConfigurationOptions;\n\tnow?: () => number;\n};\n\nexport const createNeonOAuthLinkedProviderCredentialResolver = async ({\n\tdatabaseUrl,\n\tnow,\n\tprovidersConfiguration\n}: CreateNeonOAuthLinkedProviderCredentialResolverOptions) => {\n\tconst stores = createNeonLinkedProviderStores(databaseUrl);\n\n\treturn createOAuthLinkedProviderCredentialResolver({\n\t\t...stores,\n\t\tnow,\n\t\tprovidersConfiguration\n\t});\n};\n",
111
- "import type {\n\tLinkedProviderBinding,\n\tLinkedProviderBindingStore,\n\tLinkedProviderGrant,\n\tLinkedProviderGrantStore\n} from '@absolutejs/linked-providers';\n\nexport type CreateInMemoryLinkedProviderStoresOptions = {\n\tgrants?: LinkedProviderGrant[];\n\tbindings?: LinkedProviderBinding[];\n};\n\nconst cloneGrant = (grant: LinkedProviderGrant): LinkedProviderGrant => ({\n\t...grant,\n\tgrantedScopes: [...grant.grantedScopes],\n\tmetadata: grant.metadata ? { ...grant.metadata } : undefined\n});\n\nconst cloneBinding = (\n\tbinding: LinkedProviderBinding\n): LinkedProviderBinding => ({\n\t...binding,\n\tavailableScopes: [...binding.availableScopes],\n\tcapabilities: binding.capabilities ? [...binding.capabilities] : undefined,\n\tmetadata: binding.metadata ? { ...binding.metadata } : undefined\n});\n\nexport const createInMemoryLinkedProviderStores = (\n\tinput: CreateInMemoryLinkedProviderStoresOptions = {}\n): {\n\tgrantStore: LinkedProviderGrantStore;\n\tbindingStore: LinkedProviderBindingStore;\n} => {\n\tconst grants = new Map<string, LinkedProviderGrant>(\n\t\t(input.grants ?? []).map((grant) => [grant.id, cloneGrant(grant)])\n\t);\n\tconst bindings = new Map<string, LinkedProviderBinding>(\n\t\t(input.bindings ?? []).map((binding) => [\n\t\t\tbinding.id,\n\t\t\tcloneBinding(binding)\n\t\t])\n\t);\n\n\tconst grantStore: LinkedProviderGrantStore = {\n\t\tgetGrant: async (id) => {\n\t\t\tconst grant = grants.get(id);\n\t\t\treturn grant ? cloneGrant(grant) : undefined;\n\t\t},\n\t\tlistGrantsByOwner: async (ownerRef) =>\n\t\t\t[...grants.values()]\n\t\t\t\t.filter((grant) => grant.ownerRef === ownerRef)\n\t\t\t\t.map(cloneGrant),\n\t\tsaveGrant: async (grant) => {\n\t\t\tgrants.set(grant.id, cloneGrant(grant));\n\t\t},\n\t\tremoveGrant: async (id) => {\n\t\t\tgrants.delete(id);\n\t\t\tfor (const [bindingId, binding] of bindings.entries()) {\n\t\t\t\tif (binding.grantId === id) {\n\t\t\t\t\tbindings.delete(bindingId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst bindingStore: LinkedProviderBindingStore = {\n\t\tgetBinding: async (id) => {\n\t\t\tconst binding = bindings.get(id);\n\t\t\treturn binding ? cloneBinding(binding) : undefined;\n\t\t},\n\t\tlistBindingsByOwner: async (ownerRef) =>\n\t\t\t[...bindings.values()]\n\t\t\t\t.filter(\n\t\t\t\t\t(binding) =>\n\t\t\t\t\t\tgrants.get(binding.grantId)?.ownerRef === ownerRef\n\t\t\t\t)\n\t\t\t\t.map(cloneBinding),\n\t\tlistBindingsByGrant: async (grantId) =>\n\t\t\t[...bindings.values()]\n\t\t\t\t.filter((binding) => binding.grantId === grantId)\n\t\t\t\t.map(cloneBinding),\n\t\tsaveBinding: async (binding) => {\n\t\t\tbindings.set(binding.id, cloneBinding(binding));\n\t\t},\n\t\tremoveBinding: async (id) => {\n\t\t\tbindings.delete(id);\n\t\t}\n\t};\n\n\treturn { grantStore, bindingStore };\n};\n",
112
- "import {\n\tdecodeJWT,\n\tnormalizeProviderIdentity,\n\tOAuth2Client,\n\tOAuth2TokenResponse,\n\tProviderOption,\n\tproviders\n} from 'citra';\nimport { Cookie } from 'elysia';\nimport { MILLISECONDS_IN_A_DAY, MILLISECONDS_IN_AN_HOUR } from './constants';\nimport { isNonEmptyString, isStatusResponse } from './typeGuards';\nimport {\n\tAuthConfig,\n\tInsantiateUserSessionProps,\n\tOAuth2ConfigurationOptions,\n\tResolvedOAuthAuthorization,\n\tSessionRecord,\n\tUnregisteredSessionRecord,\n\tUserSessionId\n} from './types';\n\nexport const resolveOAuthTokenExpiresAt = (\n\ttokenResponse: OAuth2TokenResponse,\n\tnow = Date.now()\n) => {\n\tconst expiresIn = Reflect.get(tokenResponse as object, 'expires_in');\n\tconst expiresInSeconds =\n\t\ttypeof expiresIn === 'number'\n\t\t\t? expiresIn\n\t\t\t: typeof expiresIn === 'string' && expiresIn.trim().length > 0\n\t\t\t\t? Number(expiresIn)\n\t\t\t\t: Number.NaN;\n\n\tif (!Number.isFinite(expiresInSeconds) || expiresInSeconds <= 0) {\n\t\treturn undefined;\n\t}\n\n\treturn now + expiresInSeconds * 1000;\n};\n\nexport const resolveOAuthAuthorization = async ({\n\tauthProvider,\n\tproviderInstance,\n\ttokenResponse,\n\tnow = Date.now()\n}: {\n\tauthProvider: ProviderOption;\n\tproviderInstance: OAuth2Client<ProviderOption>;\n\ttokenResponse: OAuth2TokenResponse;\n\tnow?: number;\n}): Promise<ResolvedOAuthAuthorization> => {\n\tlet userIdentity;\n\tlet accessToken = tokenResponse.access_token;\n\tlet refreshToken = tokenResponse.refresh_token;\n\n\tif (tokenResponse.id_token) {\n\t\tuserIdentity = normalizeProviderIdentity({\n\t\t\tidentity: decodeJWT(tokenResponse.id_token),\n\t\t\tproviderConfiguration: providers[authProvider],\n\t\t\tsource: 'idToken'\n\t\t});\n\t} else if (authProvider === 'withings') {\n\t\t// @ts-expect-error TODO: Withings is its own case edit the validate response to accept this case\n\t\tuserIdentity = { userid: tokenResponse.body.userid };\n\t\t// @ts-expect-error TODO: Withings is its own case edit the validate response to accept this case\n\t\taccessToken = tokenResponse.body.access_token;\n\t\t// @ts-expect-error TODO: Withings is its own case edit the validate response to accept this case\n\t\trefreshToken = tokenResponse.body.refresh_token;\n\t} else {\n\t\tuserIdentity = normalizeProviderIdentity({\n\t\t\tidentity: await providerInstance.fetchUserProfile(\n\t\t\t\ttokenResponse.access_token\n\t\t\t),\n\t\t\tproviderConfiguration: providers[authProvider],\n\t\t\tsource: 'profile'\n\t\t});\n\t}\n\n\tconst tokenType = Reflect.get(tokenResponse as object, 'token_type');\n\n\treturn {\n\t\taccessToken,\n\t\texpiresAt: resolveOAuthTokenExpiresAt(tokenResponse, now),\n\t\trefreshToken,\n\t\ttokenType: typeof tokenType === 'string' ? tokenType : undefined,\n\t\tuserIdentity\n\t};\n};\n\nexport const instantiateUserSession = async <UserType>({\n\tauthProvider,\n\tsession,\n\tuser_session_id,\n\tunregisteredSession,\n\ttokenResponse,\n\tproviderInstance,\n\tgetUser,\n\tonNewUser,\n\tresolvedAuthorization,\n\tsessionDurationMs = MILLISECONDS_IN_A_DAY,\n\tunregisteredSessionDurationMs = MILLISECONDS_IN_AN_HOUR\n}: InsantiateUserSessionProps<UserType>) => {\n\tconst authorization =\n\t\tresolvedAuthorization ??\n\t\t(await resolveOAuthAuthorization({\n\t\t\tauthProvider,\n\t\t\tproviderInstance,\n\t\t\ttokenResponse\n\t\t}));\n\tconst { accessToken, refreshToken, userIdentity } = authorization;\n\n\tconst userSession = validateSession({ session, user_session_id });\n\tconst userSessionId = getUserSessionId({\n\t\tsession,\n\t\tunregisteredSession,\n\t\tuser_session_id\n\t});\n\n\tlet user = userSession?.user ?? (await getUser(userIdentity));\n\tconst response = user ?? (await onNewUser(userIdentity));\n\n\tconst isRedirectOrStatus =\n\t\tresponse instanceof Response || isStatusResponse(response);\n\n\tif (!isRedirectOrStatus) {\n\t\tuser = response;\n\n\t\tsession[userSessionId] = {\n\t\t\taccessToken,\n\t\t\texpiresAt: Date.now() + sessionDurationMs,\n\t\t\trefreshToken,\n\t\t\tuser\n\t\t};\n\n\t\treturn void 0;\n\t}\n\n\tconst existingUnregistered = unregisteredSession[userSessionId];\n\n\tif (existingUnregistered) {\n\t\texistingUnregistered.accessToken = accessToken;\n\t\texistingUnregistered.expiresAt =\n\t\t\tDate.now() + unregisteredSessionDurationMs;\n\t\texistingUnregistered.refreshToken = refreshToken;\n\t\texistingUnregistered.userIdentity = userIdentity;\n\n\t\treturn response;\n\t}\n\n\tunregisteredSession[userSessionId] = {\n\t\taccessToken,\n\t\texpiresAt: Date.now() + unregisteredSessionDurationMs,\n\t\trefreshToken,\n\t\tuserIdentity\n\t};\n\n\treturn response;\n};\n\nexport const defineAuthConfig = <UserType>(\n\tconfiguration: AuthConfig<UserType>\n) => configuration;\n\nexport const defineProvidersConfiguration = (\n\tprovidersConfiguration: OAuth2ConfigurationOptions\n) => providersConfiguration;\n\nexport const getStatus = async <UserType>(\n\tsession: SessionRecord<UserType>,\n\tuser_session_id: Cookie<UserSessionId | undefined>\n) => {\n\tif (user_session_id === undefined) {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: 'Bad Request',\n\t\t\t\tmessage: 'Cookies are missing'\n\t\t\t} as const,\n\t\t\tuser: null\n\t\t};\n\t}\n\n\tconst userSession = validateSession({ session, user_session_id });\n\tconst user = userSession?.user ?? null;\n\n\treturn {\n\t\terror: null,\n\t\tuser\n\t};\n};\n\ntype ValidateSessionProps<\n\tSessionType extends Record<string, unknown> & { expiresAt: number }\n> = {\n\tuser_session_id: Cookie<UserSessionId | undefined>;\n\tsession: Record<UserSessionId, SessionType>;\n};\n\nexport const validateSession = <\n\tSessionType extends Record<string, unknown> & { expiresAt: number }\n>({\n\tuser_session_id,\n\tsession\n}: ValidateSessionProps<SessionType>) => {\n\tconst userSessionId = user_session_id.value;\n\tif (!userSessionId) {\n\t\treturn undefined;\n\t}\n\n\tconst userSession = session[userSessionId];\n\tif (!userSession) {\n\t\treturn undefined;\n\t}\n\n\tconst isExpired = userSession.expiresAt < Date.now();\n\tif (isExpired) {\n\t\tdelete session[userSessionId];\n\t\tuser_session_id.remove();\n\n\t\treturn undefined;\n\t}\n\n\treturn userSession;\n};\n\ntype GetUserSessionIdProps<UserType> = {\n\tuser_session_id: Cookie<UserSessionId | undefined>;\n\tsession?: SessionRecord<UserType>;\n\tunregisteredSession?: UnregisteredSessionRecord;\n};\n\nconst clearExistingSession = <UserType>(\n\texistingId: UserSessionId,\n\tsession?: SessionRecord<UserType>,\n\tunregisteredSession?: UnregisteredSessionRecord\n) => {\n\tif (session) delete session[existingId];\n\tif (unregisteredSession) delete unregisteredSession[existingId];\n};\n\nexport const getUserSessionId = <UserType>({\n\tuser_session_id,\n\tsession,\n\tunregisteredSession\n}: GetUserSessionIdProps<UserType>) => {\n\tconst existingId = user_session_id?.value;\n\n\tif (isNonEmptyString(existingId)) {\n\t\tclearExistingSession(existingId, session, unregisteredSession);\n\t}\n\n\tconst userSessionId = crypto.randomUUID();\n\n\tuser_session_id.set({\n\t\thttpOnly: true,\n\t\tsameSite: 'lax',\n\t\tsecure: true,\n\t\tvalue: userSessionId\n\t});\n\n\treturn userSessionId;\n};\n"
130
+ "import { neon } from '@neondatabase/serverless';\nimport { eq } from 'drizzle-orm';\nimport { drizzle, NeonHttpDatabase } from 'drizzle-orm/neon-http';\nimport {\n\ttype AnyPgTable,\n\tbigint,\n\tjsonb,\n\tpgTable,\n\ttext,\n\ttimestamp,\n\tvarchar\n} from 'drizzle-orm/pg-core';\nimport { isUserSessionId } from '../typeGuards';\nimport type { SessionData, UnregisteredSessionData } from '../types';\nimport type { AuthSessionStore } from './types';\n\nexport const authSessionsTable = pgTable('auth_sessions', {\n\taccess_token: text('access_token'),\n\tauthenticated_at_ms: bigint('authenticated_at_ms', { mode: 'number' }),\n\tcreated_at: timestamp('created_at').notNull().defaultNow(),\n\texpires_at_ms: bigint('expires_at_ms', { mode: 'number' }).notNull(),\n\tid: varchar('id', { length: 255 }).primaryKey(),\n\trefresh_token: text('refresh_token'),\n\tupdated_at: timestamp('updated_at').notNull().defaultNow(),\n\tuser_json: jsonb('user_json').$type<Record<string, unknown>>().notNull()\n});\n\nexport const authUnregisteredSessionsTable = pgTable(\n\t'auth_unregistered_sessions',\n\t{\n\t\taccess_token: text('access_token'),\n\t\tcreated_at: timestamp('created_at').notNull().defaultNow(),\n\t\texpires_at_ms: bigint('expires_at_ms', { mode: 'number' }).notNull(),\n\t\tid: varchar('id', { length: 255 }).primaryKey(),\n\t\trefresh_token: text('refresh_token'),\n\t\tsession_information_json: jsonb('session_information_json').$type<\n\t\t\tRecord<string, unknown>\n\t\t>(),\n\t\tupdated_at: timestamp('updated_at').notNull().defaultNow(),\n\t\tuser_identity_json:\n\t\t\tjsonb('user_identity_json').$type<Record<string, unknown>>()\n\t}\n);\n\nexport const authSessionSchema = {\n\tauthSessions: authSessionsTable,\n\tauthUnregisteredSessions: authUnregisteredSessionsTable\n} satisfies Record<string, AnyPgTable>;\n\nexport type AuthSessionSchema = typeof authSessionSchema;\n\ntype AuthSessionRow = typeof authSessionsTable.$inferSelect;\ntype AuthUnregisteredSessionRow =\n\ttypeof authUnregisteredSessionsTable.$inferSelect;\n\nconst cloneUser = <UserType>(value: UserType) => {\n\tif (value === null || value === undefined) return value;\n\n\treturn structuredClone(value);\n};\n\nconst cloneRecord = (value?: Record<string, unknown>) =>\n\tvalue ? structuredClone(value) : undefined;\n\nconst toSessionData = <UserType>(\n\trow: AuthSessionRow\n): SessionData<UserType> => ({\n\taccessToken: row.access_token ?? undefined,\n\tauthenticatedAt: row.authenticated_at_ms ?? undefined,\n\texpiresAt: row.expires_at_ms,\n\trefreshToken: row.refresh_token ?? undefined,\n\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- deserialization boundary: user_json was persisted from UserType, so reading it back as UserType is sound\n\tuser: cloneUser(row.user_json as UserType)\n});\n\nconst toUnregisteredSessionData = (\n\trow: AuthUnregisteredSessionRow\n): UnregisteredSessionData => ({\n\taccessToken: row.access_token ?? undefined,\n\texpiresAt: row.expires_at_ms,\n\trefreshToken: row.refresh_token ?? undefined,\n\tsessionInformation: cloneRecord(row.session_information_json ?? undefined),\n\tuserIdentity: cloneRecord(row.user_identity_json ?? undefined)\n});\n\nexport const createNeonAuthSessionStore = <UserType>(\n\tdatabaseUrl: string\n): AuthSessionStore<UserType> => {\n\tconst sql = neon(databaseUrl);\n\tconst db: NeonHttpDatabase<AuthSessionSchema> = drizzle(sql, {\n\t\tschema: authSessionSchema\n\t});\n\n\treturn {\n\t\tgetSession: async (id) => {\n\t\t\tconst [row] = await db\n\t\t\t\t.select()\n\t\t\t\t.from(authSessionsTable)\n\t\t\t\t.where(eq(authSessionsTable.id, id))\n\t\t\t\t.limit(1);\n\n\t\t\treturn row ? toSessionData<UserType>(row) : undefined;\n\t\t},\n\t\tgetUnregisteredSession: async (id) => {\n\t\t\tconst [row] = await db\n\t\t\t\t.select()\n\t\t\t\t.from(authUnregisteredSessionsTable)\n\t\t\t\t.where(eq(authUnregisteredSessionsTable.id, id))\n\t\t\t\t.limit(1);\n\n\t\t\treturn row ? toUnregisteredSessionData(row) : undefined;\n\t\t},\n\t\tlistSessionIds: async () => {\n\t\t\tconst rows = await db\n\t\t\t\t.select({ id: authSessionsTable.id })\n\t\t\t\t.from(authSessionsTable);\n\n\t\t\treturn rows.map((row) => row.id).filter(isUserSessionId);\n\t\t},\n\t\tlistUnregisteredSessionIds: async () => {\n\t\t\tconst rows = await db\n\t\t\t\t.select({ id: authUnregisteredSessionsTable.id })\n\t\t\t\t.from(authUnregisteredSessionsTable);\n\n\t\t\treturn rows.map((row) => row.id).filter(isUserSessionId);\n\t\t},\n\t\tremoveSession: async (id) => {\n\t\t\tawait db\n\t\t\t\t.delete(authSessionsTable)\n\t\t\t\t.where(eq(authSessionsTable.id, id));\n\t\t},\n\t\tremoveUnregisteredSession: async (id) => {\n\t\t\tawait db\n\t\t\t\t.delete(authUnregisteredSessionsTable)\n\t\t\t\t.where(eq(authUnregisteredSessionsTable.id, id));\n\t\t},\n\t\tsetSession: async (id, value) => {\n\t\t\tawait db\n\t\t\t\t.insert(authSessionsTable)\n\t\t\t\t.values({\n\t\t\t\t\taccess_token: value.accessToken ?? null,\n\t\t\t\t\tauthenticated_at_ms: value.authenticatedAt ?? null,\n\t\t\t\t\texpires_at_ms: value.expiresAt,\n\t\t\t\t\tid,\n\t\t\t\t\trefresh_token: value.refreshToken ?? null,\n\t\t\t\t\tupdated_at: new Date(),\n\t\t\t\t\tuser_json: value.user ?? {}\n\t\t\t\t})\n\t\t\t\t.onConflictDoUpdate({\n\t\t\t\t\tset: {\n\t\t\t\t\t\taccess_token: value.accessToken ?? null,\n\t\t\t\t\t\tauthenticated_at_ms: value.authenticatedAt ?? null,\n\t\t\t\t\t\texpires_at_ms: value.expiresAt,\n\t\t\t\t\t\trefresh_token: value.refreshToken ?? null,\n\t\t\t\t\t\tupdated_at: new Date(),\n\t\t\t\t\t\tuser_json: value.user ?? {}\n\t\t\t\t\t},\n\t\t\t\t\ttarget: authSessionsTable.id\n\t\t\t\t});\n\t\t},\n\t\tsetUnregisteredSession: async (id, value) => {\n\t\t\tawait db\n\t\t\t\t.insert(authUnregisteredSessionsTable)\n\t\t\t\t.values({\n\t\t\t\t\taccess_token: value.accessToken ?? null,\n\t\t\t\t\texpires_at_ms: value.expiresAt,\n\t\t\t\t\tid,\n\t\t\t\t\trefresh_token: value.refreshToken ?? null,\n\t\t\t\t\tsession_information_json: value.sessionInformation ?? null,\n\t\t\t\t\tupdated_at: new Date(),\n\t\t\t\t\tuser_identity_json: value.userIdentity ?? null\n\t\t\t\t})\n\t\t\t\t.onConflictDoUpdate({\n\t\t\t\t\tset: {\n\t\t\t\t\t\taccess_token: value.accessToken ?? null,\n\t\t\t\t\t\texpires_at_ms: value.expiresAt,\n\t\t\t\t\t\trefresh_token: value.refreshToken ?? null,\n\t\t\t\t\t\tsession_information_json:\n\t\t\t\t\t\t\tvalue.sessionInformation ?? null,\n\t\t\t\t\t\tupdated_at: new Date(),\n\t\t\t\t\t\tuser_identity_json: value.userIdentity ?? null\n\t\t\t\t\t},\n\t\t\t\t\ttarget: authUnregisteredSessionsTable.id\n\t\t\t\t});\n\t\t}\n\t};\n};\n",
131
+ "import type {\n\tLinkedProviderAccessTokenLease,\n\tLinkedProviderBinding,\n\tLinkedProviderBindingStore,\n\tLinkedProviderCredentialFailureReport,\n\tLinkedProviderCredentialResolver,\n\tLinkedProviderGrant,\n\tLinkedProviderGrantStore,\n\tResolveLinkedProviderCredentialInput,\n\tResolvedLinkedProviderCredential\n} from '@absolutejs/linked-providers';\n\nexport type LinkedProviderRefreshResult = {\n\tgrant: LinkedProviderGrant;\n\tlease: LinkedProviderAccessTokenLease;\n};\n\nexport type CreateLinkedProviderCredentialResolverOptions = {\n\tgrantStore: LinkedProviderGrantStore;\n\tbindingStore: LinkedProviderBindingStore;\n\tloadAccessTokenLease: (\n\t\tgrant: LinkedProviderGrant\n\t) =>\n\t\t| Promise<LinkedProviderAccessTokenLease | null>\n\t\t| LinkedProviderAccessTokenLease\n\t\t| null;\n\trefreshAccessTokenLease?: (\n\t\tgrant: LinkedProviderGrant,\n\t\tinput?: {\n\t\t\tminValidityMs?: number;\n\t\t\trequiredScopes?: string[];\n\t\t}\n\t) =>\n\t\t| Promise<LinkedProviderRefreshResult | null>\n\t\t| LinkedProviderRefreshResult\n\t\t| null;\n\tnow?: () => number;\n\tonReportFailure?: (input: {\n\t\tcredential: ResolvedLinkedProviderCredential;\n\t\treport: LinkedProviderCredentialFailureReport;\n\t\tgrant?: LinkedProviderGrant;\n\t\tbinding?: LinkedProviderBinding;\n\t}) => Promise<void> | void;\n};\n\nconst uniqueStrings = (values: string[]) => [...new Set(values)];\n\nconst getEffectiveScopes = (\n\tgrant: LinkedProviderGrant,\n\tbinding: LinkedProviderBinding\n) => {\n\tif (binding.availableScopes.length === 0) {\n\t\treturn uniqueStrings(grant.grantedScopes);\n\t}\n\n\tconst bindingScopeSet = new Set(binding.availableScopes);\n\n\treturn uniqueStrings(\n\t\tgrant.grantedScopes.filter((scope) => bindingScopeSet.has(scope))\n\t);\n};\n\nconst hasRequiredScopes = (\n\tavailableScopes: string[],\n\trequiredScopes?: string[]\n) => (requiredScopes ?? []).every((scope) => availableScopes.includes(scope));\n\nconst isGrantUsable = (grant: LinkedProviderGrant) =>\n\tgrant.status === 'active' || grant.status === 'refresh_required';\n\nconst isBindingUsable = (binding: LinkedProviderBinding) =>\n\tbinding.status === 'active';\n\nconst needsRefresh = (\n\tlease: LinkedProviderAccessTokenLease | null,\n\tnow: number,\n\tminValidityMs?: number\n) => {\n\tif (!lease) return true;\n\tif (lease.expiresAt === undefined) return false;\n\n\treturn lease.expiresAt <= now + (minValidityMs ?? 0);\n};\n\nconst ensureLeaseScopes = (\n\tlease: LinkedProviderAccessTokenLease,\n\trequiredScopes?: string[]\n) => {\n\tif (!hasRequiredScopes(lease.grantedScopes, requiredScopes)) {\n\t\tthrow new Error(\n\t\t\t'Linked provider access token lease is missing required scopes'\n\t\t);\n\t}\n};\n\nconst ensureLeaseValidity = (\n\tlease: LinkedProviderAccessTokenLease,\n\tnow: number,\n\tminValidityMs?: number\n) => {\n\tif (lease.expiresAt === undefined) return;\n\tif (lease.expiresAt <= now + (minValidityMs ?? 0)) {\n\t\tthrow new Error(\n\t\t\t'Linked provider access token lease does not satisfy minimum validity'\n\t\t);\n\t}\n};\n\nconst buildResolvedCredential = (\n\tgrant: LinkedProviderGrant,\n\tbinding: LinkedProviderBinding\n): ResolvedLinkedProviderCredential => ({\n\tauthProviderKey: grant.authProviderKey,\n\tbindingId: binding.id,\n\tcapabilities: binding.capabilities ? [...binding.capabilities] : undefined,\n\tconnectorProvider: binding.connectorProvider,\n\temail: binding.email,\n\texternalAccountId: binding.externalAccountId,\n\texternalAccountType: binding.externalAccountType,\n\tgrantId: grant.id,\n\tlabel: binding.label,\n\tmetadata: {\n\t\t...(grant.metadata ?? {}),\n\t\t...(binding.metadata ?? {})\n\t},\n\townerRef: grant.ownerRef,\n\tproviderFamily: grant.providerFamily,\n\tscopes: getEffectiveScopes(grant, binding),\n\tusername: binding.username\n});\n\nconst annotateFailureMetadata = (\n\tmetadata: Record<string, unknown> | undefined,\n\treport: LinkedProviderCredentialFailureReport,\n\tnow: number\n) => ({\n\t...(metadata ?? {}),\n\tlastCredentialFailureAt: now,\n\tlastCredentialFailureCode: report.code,\n\tlastCredentialFailureMessage: report.message,\n\tlastCredentialFailureRetryAt: report.retryAt\n});\n\nconst sortNewestFirst = <T extends { updatedAt: number }>(items: T[]) =>\n\t[...items].sort((left, right) => right.updatedAt - left.updatedAt);\n\nconst resolveGrantFailureStatus = (\n\tgrant: LinkedProviderGrant,\n\treport: LinkedProviderCredentialFailureReport\n) => {\n\tif (report.code === 'unauthorized' || report.code === 'revoked') {\n\t\treturn 'revoked';\n\t}\n\n\treturn grant.status;\n};\n\nconst resolveBindingFailureStatus = (\n\tbinding: LinkedProviderBinding,\n\treport: LinkedProviderCredentialFailureReport\n) => {\n\tif (report.code === 'unauthorized' || report.code === 'revoked') {\n\t\treturn 'disconnected';\n\t}\n\n\tif (report.code === 'insufficient_scope') {\n\t\treturn 'restricted';\n\t}\n\n\treturn binding.status;\n};\n\nconst buildNextGrant = (\n\tgrant: LinkedProviderGrant,\n\treport: LinkedProviderCredentialFailureReport,\n\tcurrentTime: number\n): LinkedProviderGrant => ({\n\t...grant,\n\tlastRefreshError: report.message ?? report.code,\n\tmetadata: annotateFailureMetadata(grant.metadata, report, currentTime),\n\tstatus: resolveGrantFailureStatus(grant, report),\n\tupdatedAt: currentTime\n});\n\nconst buildNextBinding = (\n\tbinding: LinkedProviderBinding,\n\treport: LinkedProviderCredentialFailureReport,\n\tcurrentTime: number\n): LinkedProviderBinding => ({\n\t...binding,\n\tmetadata: annotateFailureMetadata(binding.metadata, report, currentTime),\n\tstatus: resolveBindingFailureStatus(binding, report),\n\tupdatedAt: currentTime\n});\n\nconst resolveBindingCredential = async (\n\tgrantStore: LinkedProviderGrantStore,\n\tbinding: LinkedProviderBinding,\n\tinput: ResolveLinkedProviderCredentialInput\n) => {\n\tconst grant = await grantStore.getGrant(binding.grantId);\n\tif (!grant || grant.ownerRef !== input.ownerRef || !isGrantUsable(grant)) {\n\t\treturn null;\n\t}\n\n\tconst effectiveScopes = getEffectiveScopes(grant, binding);\n\tif (!hasRequiredScopes(effectiveScopes, input.requiredScopes)) {\n\t\treturn null;\n\t}\n\n\treturn buildResolvedCredential(grant, binding);\n};\n\nexport const createLinkedProviderCredentialResolver = ({\n\tgrantStore,\n\tbindingStore,\n\tloadAccessTokenLease,\n\trefreshAccessTokenLease,\n\tnow = () => Date.now(),\n\tonReportFailure\n}: CreateLinkedProviderCredentialResolverOptions): LinkedProviderCredentialResolver => ({\n\tgetAccessToken: async (credential, input) => {\n\t\tconst binding = await bindingStore.getBinding(credential.bindingId);\n\t\tif (!binding || !isBindingUsable(binding)) {\n\t\t\tthrow new Error('Linked provider binding is unavailable');\n\t\t}\n\n\t\tconst grant = await grantStore.getGrant(credential.grantId);\n\t\tif (!grant || !isGrantUsable(grant)) {\n\t\t\tthrow new Error('Linked provider grant is unavailable');\n\t\t}\n\n\t\tconst requiredScopes = input?.requiredScopes;\n\t\tconst effectiveScopes = getEffectiveScopes(grant, binding);\n\t\tif (!hasRequiredScopes(effectiveScopes, requiredScopes)) {\n\t\t\tthrow new Error(\n\t\t\t\t'Linked provider credential is missing required scopes'\n\t\t\t);\n\t\t}\n\n\t\tconst currentTime = now();\n\t\tlet lease = await loadAccessTokenLease(grant);\n\t\tif (needsRefresh(lease, currentTime, input?.minValidityMs)) {\n\t\t\tif (!refreshAccessTokenLease) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'Linked provider access token lease requires refresh'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst refreshed = await refreshAccessTokenLease(grant, input);\n\t\t\tif (!refreshed) {\n\t\t\t\tthrow new Error('Linked provider access token refresh failed');\n\t\t\t}\n\n\t\t\tawait grantStore.saveGrant(refreshed.grant);\n\t\t\t({ lease } = refreshed);\n\t\t}\n\n\t\tif (!lease) {\n\t\t\tthrow new Error(\n\t\t\t\t'Linked provider access token lease is unavailable'\n\t\t\t);\n\t\t}\n\n\t\tensureLeaseScopes(lease, requiredScopes);\n\t\tensureLeaseValidity(lease, currentTime, input?.minValidityMs);\n\n\t\treturn lease;\n\t},\n\tlistBindings: async ({ ownerRef, connectorProvider, status }) =>\n\t\tsortNewestFirst(\n\t\t\tawait bindingStore.listBindingsByOwner(ownerRef)\n\t\t).filter(\n\t\t\t(binding) =>\n\t\t\t\t(connectorProvider === undefined ||\n\t\t\t\t\tbinding.connectorProvider === connectorProvider) &&\n\t\t\t\t(status === undefined || binding.status === status)\n\t\t),\n\treportFailure: async (credential, report) => {\n\t\tconst currentTime = now();\n\t\tconst grant = await grantStore.getGrant(credential.grantId);\n\t\tconst binding = await bindingStore.getBinding(credential.bindingId);\n\n\t\tif (grant) {\n\t\t\tawait grantStore.saveGrant(\n\t\t\t\tbuildNextGrant(grant, report, currentTime)\n\t\t\t);\n\t\t}\n\n\t\tif (binding) {\n\t\t\tawait bindingStore.saveBinding(\n\t\t\t\tbuildNextBinding(binding, report, currentTime)\n\t\t\t);\n\t\t}\n\n\t\tawait onReportFailure?.({\n\t\t\tbinding: binding ?? undefined,\n\t\t\tcredential,\n\t\t\tgrant: grant ?? undefined,\n\t\t\treport\n\t\t});\n\t},\n\tresolveCredential: async (input: ResolveLinkedProviderCredentialInput) => {\n\t\tconst bindings = sortNewestFirst(\n\t\t\tawait bindingStore.listBindingsByOwner(input.ownerRef)\n\t\t).filter(\n\t\t\t(binding) =>\n\t\t\t\tbinding.connectorProvider === input.connectorProvider &&\n\t\t\t\tisBindingUsable(binding) &&\n\t\t\t\t(input.bindingId === undefined ||\n\t\t\t\t\tbinding.id === input.bindingId) &&\n\t\t\t\t(input.externalAccountId === undefined ||\n\t\t\t\t\tbinding.externalAccountId === input.externalAccountId)\n\t\t);\n\n\t\tfor (const binding of bindings) {\n\t\t\t// Sequential by design: bindings are sorted newest-first and the\n\t\t\t// first usable credential wins, so we must stop at the first match\n\t\t\t// rather than fetch every grant in parallel.\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tconst credential = await resolveBindingCredential(\n\t\t\t\tgrantStore,\n\t\t\t\tbinding,\n\t\t\t\tinput\n\t\t\t);\n\t\t\tif (credential) {\n\t\t\t\treturn credential;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n});\n",
132
+ "import type {\n\tLinkedProviderBindingStore,\n\tLinkedProviderGrant,\n\tLinkedProviderGrantStore\n} from '@absolutejs/linked-providers';\nimport {\n\tcreateOAuth2Client,\n\tisRefreshableOAuth2Client,\n\tisValidProviderOption\n} from 'citra';\nimport { resolveProviderClientConfiguration } from '../providers/clients';\nimport type { OAuth2ConfigurationOptions } from '../types';\nimport { createLinkedProviderCredentialResolver } from './resolver';\n\nexport type CreateOAuthLinkedProviderCredentialResolverOptions = {\n\tgrantStore: LinkedProviderGrantStore;\n\tbindingStore: LinkedProviderBindingStore;\n\tprovidersConfiguration: OAuth2ConfigurationOptions;\n\tnow?: () => number;\n};\n\nconst getGrantedScopes = (scopeValue: unknown, fallbackScopes: string[]) => {\n\tif (typeof scopeValue === 'string' && scopeValue.trim().length > 0) {\n\t\treturn [...new Set(scopeValue.split(/\\s+/).filter(Boolean))];\n\t}\n\n\treturn [...new Set(fallbackScopes.filter(Boolean))];\n};\n\nconst parseExpiresInSeconds = (expiresIn: unknown) => {\n\tif (typeof expiresIn === 'number') {\n\t\treturn expiresIn;\n\t}\n\n\tif (typeof expiresIn === 'string' && expiresIn.trim().length > 0) {\n\t\treturn Number(expiresIn);\n\t}\n\n\treturn Number.NaN;\n};\n\nconst getExpiresAt = (tokenResponse: Record<string, unknown>) => {\n\tconst expiresInSeconds = parseExpiresInSeconds(tokenResponse.expires_in);\n\n\tif (!Number.isFinite(expiresInSeconds) || expiresInSeconds <= 0) {\n\t\treturn undefined;\n\t}\n\n\treturn Date.now() + expiresInSeconds * 1000;\n};\n\nconst buildClientEntry = (\n\tproviderName: string,\n\tprovidersConfiguration: OAuth2ConfigurationOptions\n) => {\n\tif (!isValidProviderOption(providerName)) {\n\t\treturn null;\n\t}\n\n\tconst resolvedProviderClientConfiguration =\n\t\tresolveProviderClientConfiguration({\n\t\t\tproviderName,\n\t\t\tprovidersConfiguration\n\t\t});\n\tif (\n\t\t'error' in resolvedProviderClientConfiguration ||\n\t\t!resolvedProviderClientConfiguration.config\n\t) {\n\t\treturn null;\n\t}\n\n\treturn createOAuth2Client(\n\t\tproviderName,\n\t\tresolvedProviderClientConfiguration.config.credentials\n\t).then((providerInstance) => [providerName, providerInstance] as const);\n};\n\nexport const createOAuthLinkedProviderCredentialResolver = async ({\n\tbindingStore,\n\tgrantStore,\n\tnow,\n\tprovidersConfiguration\n}: CreateOAuthLinkedProviderCredentialResolverOptions) => {\n\tconst clientEntries = Object.keys(providersConfiguration)\n\t\t.map((providerName) =>\n\t\t\tbuildClientEntry(providerName, providersConfiguration)\n\t\t)\n\t\t.filter((entry) => entry !== null);\n\n\tawait Promise.all(clientEntries);\n\n\treturn createLinkedProviderCredentialResolver({\n\t\tbindingStore,\n\t\tgrantStore,\n\t\tnow,\n\t\tloadAccessTokenLease: async (grant) =>\n\t\t\tgrant.accessTokenCiphertext\n\t\t\t\t? {\n\t\t\t\t\t\taccessToken: grant.accessTokenCiphertext,\n\t\t\t\t\t\texpiresAt: grant.expiresAt,\n\t\t\t\t\t\tgrantedScopes: grant.grantedScopes,\n\t\t\t\t\t\ttokenType: grant.tokenType\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\trefreshAccessTokenLease: async (grant) => {\n\t\t\tif (\n\t\t\t\t!isValidProviderOption(grant.authProviderKey) ||\n\t\t\t\t!grant.refreshTokenCiphertext\n\t\t\t) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst providerKey = grant.authProviderKey;\n\t\t\tconst providerClientName =\n\t\t\t\ttypeof grant.metadata?.providerClient === 'string' &&\n\t\t\t\tgrant.metadata.providerClient.trim().length > 0\n\t\t\t\t\t? grant.metadata.providerClient.trim()\n\t\t\t\t\t: undefined;\n\t\t\tconst resolvedProviderClientConfiguration =\n\t\t\t\tresolveProviderClientConfiguration({\n\t\t\t\t\tclientName: providerClientName,\n\t\t\t\t\tproviderName: providerKey,\n\t\t\t\t\tprovidersConfiguration\n\t\t\t\t});\n\t\t\tif (\n\t\t\t\t'error' in resolvedProviderClientConfiguration ||\n\t\t\t\t!resolvedProviderClientConfiguration.config\n\t\t\t) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst providerClient = await createOAuth2Client(\n\t\t\t\tproviderKey,\n\t\t\t\tresolvedProviderClientConfiguration.config.credentials\n\t\t\t);\n\t\t\tif (\n\t\t\t\t!providerClient ||\n\t\t\t\t!isRefreshableOAuth2Client(providerKey, providerClient)\n\t\t\t) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst tokenResponse = await providerClient.refreshAccessToken(\n\t\t\t\tgrant.refreshTokenCiphertext\n\t\t\t);\n\t\t\tconst refreshedAt = Date.now();\n\t\t\tconst grantedScopes = getGrantedScopes(\n\t\t\t\tReflect.get(tokenResponse, 'scope'),\n\t\t\t\tgrant.grantedScopes\n\t\t\t);\n\t\t\tconst tokenType = Reflect.get(tokenResponse, 'token_type');\n\t\t\tconst refreshedGrant: LinkedProviderGrant = {\n\t\t\t\t...grant,\n\t\t\t\taccessTokenCiphertext: tokenResponse.access_token,\n\t\t\t\texpiresAt: getExpiresAt(tokenResponse),\n\t\t\t\tgrantedScopes,\n\t\t\t\tlastRefreshedAt: refreshedAt,\n\t\t\t\tlastRefreshError: undefined,\n\t\t\t\trefreshTokenCiphertext:\n\t\t\t\t\ttokenResponse.refresh_token ?? grant.refreshTokenCiphertext,\n\t\t\t\tstatus: 'active' as const,\n\t\t\t\ttokenType:\n\t\t\t\t\ttypeof tokenType === 'string' ? tokenType : grant.tokenType,\n\t\t\t\tupdatedAt: refreshedAt\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\tgrant: refreshedGrant,\n\t\t\t\tlease: {\n\t\t\t\t\taccessToken: refreshedGrant.accessTokenCiphertext ?? '',\n\t\t\t\t\texpiresAt: refreshedGrant.expiresAt,\n\t\t\t\t\tgrantedScopes: refreshedGrant.grantedScopes,\n\t\t\t\t\ttokenType: refreshedGrant.tokenType\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t});\n};\n",
133
+ "import type {\n\tLinkedProviderBinding,\n\tLinkedProviderBindingStore,\n\tLinkedProviderGrant,\n\tLinkedProviderGrantStore\n} from '@absolutejs/linked-providers';\nimport { neon } from '@neondatabase/serverless';\nimport { desc, eq } from 'drizzle-orm';\nimport { drizzle, NeonHttpDatabase } from 'drizzle-orm/neon-http';\nimport {\n\ttype AnyPgTable,\n\tjsonb,\n\tpgTable,\n\ttext,\n\ttimestamp,\n\tvarchar\n} from 'drizzle-orm/pg-core';\nimport type { OAuth2ConfigurationOptions } from '../types';\nimport { createOAuthLinkedProviderCredentialResolver } from './oauthResolver';\n\nexport const linkedProviderBindingsTable = pgTable('linked_provider_bindings', {\n\tavailable_scopes: jsonb('available_scopes')\n\t\t.$type<string[]>()\n\t\t.notNull()\n\t\t.default([]),\n\tcapabilities: jsonb('capabilities').$type<string[]>().default([]),\n\tconnector_provider: varchar('connector_provider', { length: 64 }).notNull(),\n\tcreated_at: timestamp('created_at').notNull().defaultNow(),\n\temail: varchar('email', { length: 320 }),\n\texternal_account_id: varchar('external_account_id', {\n\t\tlength: 255\n\t}).notNull(),\n\texternal_account_type: varchar('external_account_type', {\n\t\tlength: 64\n\t}).notNull(),\n\tgrant_id: varchar('grant_id', { length: 255 }).notNull(),\n\tid: varchar('id', { length: 255 }).primaryKey(),\n\tlabel: varchar('label', { length: 255 }),\n\tmetadata: jsonb('metadata').$type<Record<string, unknown>>().default({}),\n\tstatus: varchar('status', { length: 64 })\n\t\t.$type<LinkedProviderBinding['status']>()\n\t\t.notNull(),\n\tupdated_at: timestamp('updated_at').notNull().defaultNow(),\n\tusername: varchar('username', { length: 255 })\n});\nexport const linkedProviderGrantsTable = pgTable('linked_provider_grants', {\n\taccess_token_ciphertext: text('access_token_ciphertext'),\n\tauth_provider_key: varchar('auth_provider_key', { length: 64 }).notNull(),\n\tcreated_at: timestamp('created_at').notNull().defaultNow(),\n\texpires_at: timestamp('expires_at'),\n\tgranted_scopes: jsonb('granted_scopes')\n\t\t.$type<string[]>()\n\t\t.notNull()\n\t\t.default([]),\n\tid: varchar('id', { length: 255 }).primaryKey(),\n\tlast_refresh_error: text('last_refresh_error'),\n\tlast_refreshed_at: timestamp('last_refreshed_at'),\n\tmetadata: jsonb('metadata').$type<Record<string, unknown>>().default({}),\n\towner_ref: varchar('owner_ref', { length: 255 }).notNull(),\n\tprovider_family: varchar('provider_family', { length: 64 }).notNull(),\n\tprovider_subject: varchar('provider_subject', { length: 255 }).notNull(),\n\trefresh_token_ciphertext: text('refresh_token_ciphertext'),\n\tstatus: varchar('status', { length: 64 })\n\t\t.$type<LinkedProviderGrant['status']>()\n\t\t.notNull(),\n\ttoken_type: varchar('token_type', { length: 64 }),\n\tupdated_at: timestamp('updated_at').notNull().defaultNow()\n});\nexport const linkedProviderSchema = {\n\tlinkedProviderBindings: linkedProviderBindingsTable,\n\tlinkedProviderGrants: linkedProviderGrantsTable\n} satisfies Record<string, AnyPgTable>;\n\nexport type LinkedProviderSchema = typeof linkedProviderSchema;\nexport type LinkedProviderGrantRow =\n\ttypeof linkedProviderGrantsTable.$inferSelect;\nexport type LinkedProviderBindingRow =\n\ttypeof linkedProviderBindingsTable.$inferSelect;\n\nconst toTimestamp = (value: number | undefined) =>\n\tvalue === undefined ? null : new Date(value);\n\nconst fromTimestamp = (value: Date | null) =>\n\tvalue === null ? undefined : value.getTime();\n\nconst toGrant = (row: LinkedProviderGrantRow): LinkedProviderGrant => ({\n\taccessTokenCiphertext: row.access_token_ciphertext ?? undefined,\n\tauthProviderKey: row.auth_provider_key,\n\tcreatedAt: row.created_at.getTime(),\n\texpiresAt: fromTimestamp(row.expires_at),\n\tgrantedScopes: row.granted_scopes ?? [],\n\tid: row.id,\n\tlastRefreshedAt: fromTimestamp(row.last_refreshed_at),\n\tlastRefreshError: row.last_refresh_error ?? undefined,\n\tmetadata: row.metadata ?? undefined,\n\townerRef: row.owner_ref,\n\tproviderFamily: row.provider_family,\n\tproviderSubject: row.provider_subject,\n\trefreshTokenCiphertext: row.refresh_token_ciphertext ?? undefined,\n\tstatus: row.status,\n\ttokenType: row.token_type ?? undefined,\n\tupdatedAt: row.updated_at.getTime()\n});\n\nconst toBinding = (row: LinkedProviderBindingRow): LinkedProviderBinding => ({\n\tavailableScopes: row.available_scopes ?? [],\n\tcapabilities: row.capabilities ?? undefined,\n\tconnectorProvider: row.connector_provider,\n\tcreatedAt: row.created_at.getTime(),\n\temail: row.email ?? undefined,\n\texternalAccountId: row.external_account_id,\n\texternalAccountType: row.external_account_type,\n\tgrantId: row.grant_id,\n\tid: row.id,\n\tlabel: row.label ?? undefined,\n\tmetadata: row.metadata ?? undefined,\n\tstatus: row.status,\n\tupdatedAt: row.updated_at.getTime(),\n\tusername: row.username ?? undefined\n});\n\nexport const createNeonLinkedProviderBindingStore = (\n\tdb: NeonHttpDatabase<LinkedProviderSchema>\n): LinkedProviderBindingStore => ({\n\tgetBinding: async (id) => {\n\t\tconst [row] = await db\n\t\t\t.select()\n\t\t\t.from(linkedProviderBindingsTable)\n\t\t\t.where(eq(linkedProviderBindingsTable.id, id))\n\t\t\t.limit(1);\n\n\t\treturn row ? toBinding(row) : undefined;\n\t},\n\tlistBindingsByGrant: async (grantId) => {\n\t\tconst rows = await db\n\t\t\t.select()\n\t\t\t.from(linkedProviderBindingsTable)\n\t\t\t.where(eq(linkedProviderBindingsTable.grant_id, grantId))\n\t\t\t.orderBy(desc(linkedProviderBindingsTable.updated_at));\n\n\t\treturn rows.map(toBinding);\n\t},\n\tlistBindingsByOwner: async (ownerRef) => {\n\t\tconst rows = await db\n\t\t\t.select({ binding: linkedProviderBindingsTable })\n\t\t\t.from(linkedProviderBindingsTable)\n\t\t\t.innerJoin(\n\t\t\t\tlinkedProviderGrantsTable,\n\t\t\t\teq(\n\t\t\t\t\tlinkedProviderBindingsTable.grant_id,\n\t\t\t\t\tlinkedProviderGrantsTable.id\n\t\t\t\t)\n\t\t\t)\n\t\t\t.where(eq(linkedProviderGrantsTable.owner_ref, ownerRef))\n\t\t\t.orderBy(desc(linkedProviderBindingsTable.updated_at));\n\n\t\treturn rows.map(({ binding }) => toBinding(binding));\n\t},\n\tremoveBinding: async (id) => {\n\t\tawait db\n\t\t\t.delete(linkedProviderBindingsTable)\n\t\t\t.where(eq(linkedProviderBindingsTable.id, id));\n\t},\n\tsaveBinding: async (binding) => {\n\t\tawait db\n\t\t\t.insert(linkedProviderBindingsTable)\n\t\t\t.values({\n\t\t\t\tavailable_scopes: binding.availableScopes,\n\t\t\t\tcapabilities: binding.capabilities ?? [],\n\t\t\t\tconnector_provider: binding.connectorProvider,\n\t\t\t\tcreated_at: new Date(binding.createdAt),\n\t\t\t\temail: binding.email ?? null,\n\t\t\t\texternal_account_id: binding.externalAccountId,\n\t\t\t\texternal_account_type: binding.externalAccountType,\n\t\t\t\tgrant_id: binding.grantId,\n\t\t\t\tid: binding.id,\n\t\t\t\tlabel: binding.label ?? null,\n\t\t\t\tmetadata: binding.metadata ?? {},\n\t\t\t\tstatus: binding.status,\n\t\t\t\tupdated_at: new Date(binding.updatedAt),\n\t\t\t\tusername: binding.username ?? null\n\t\t\t})\n\t\t\t.onConflictDoUpdate({\n\t\t\t\tset: {\n\t\t\t\t\tavailable_scopes: binding.availableScopes,\n\t\t\t\t\tcapabilities: binding.capabilities ?? [],\n\t\t\t\t\tconnector_provider: binding.connectorProvider,\n\t\t\t\t\temail: binding.email ?? null,\n\t\t\t\t\texternal_account_id: binding.externalAccountId,\n\t\t\t\t\texternal_account_type: binding.externalAccountType,\n\t\t\t\t\tgrant_id: binding.grantId,\n\t\t\t\t\tlabel: binding.label ?? null,\n\t\t\t\t\tmetadata: binding.metadata ?? {},\n\t\t\t\t\tstatus: binding.status,\n\t\t\t\t\tupdated_at: new Date(binding.updatedAt),\n\t\t\t\t\tusername: binding.username ?? null\n\t\t\t\t},\n\t\t\t\ttarget: linkedProviderBindingsTable.id\n\t\t\t});\n\t}\n});\nexport const createNeonLinkedProviderGrantStore = (\n\tdb: NeonHttpDatabase<LinkedProviderSchema>\n): LinkedProviderGrantStore => ({\n\tgetGrant: async (id) => {\n\t\tconst [row] = await db\n\t\t\t.select()\n\t\t\t.from(linkedProviderGrantsTable)\n\t\t\t.where(eq(linkedProviderGrantsTable.id, id))\n\t\t\t.limit(1);\n\n\t\treturn row ? toGrant(row) : undefined;\n\t},\n\tlistGrantsByOwner: async (ownerRef) => {\n\t\tconst rows = await db\n\t\t\t.select()\n\t\t\t.from(linkedProviderGrantsTable)\n\t\t\t.where(eq(linkedProviderGrantsTable.owner_ref, ownerRef))\n\t\t\t.orderBy(desc(linkedProviderGrantsTable.updated_at));\n\n\t\treturn rows.map(toGrant);\n\t},\n\tremoveGrant: async (id) => {\n\t\tawait db\n\t\t\t.delete(linkedProviderBindingsTable)\n\t\t\t.where(eq(linkedProviderBindingsTable.grant_id, id));\n\t\tawait db\n\t\t\t.delete(linkedProviderGrantsTable)\n\t\t\t.where(eq(linkedProviderGrantsTable.id, id));\n\t},\n\tsaveGrant: async (grant) => {\n\t\tawait db\n\t\t\t.insert(linkedProviderGrantsTable)\n\t\t\t.values({\n\t\t\t\taccess_token_ciphertext: grant.accessTokenCiphertext ?? null,\n\t\t\t\tauth_provider_key: grant.authProviderKey,\n\t\t\t\tcreated_at: new Date(grant.createdAt),\n\t\t\t\texpires_at: toTimestamp(grant.expiresAt),\n\t\t\t\tgranted_scopes: grant.grantedScopes,\n\t\t\t\tid: grant.id,\n\t\t\t\tlast_refresh_error: grant.lastRefreshError ?? null,\n\t\t\t\tlast_refreshed_at: toTimestamp(grant.lastRefreshedAt),\n\t\t\t\tmetadata: grant.metadata ?? {},\n\t\t\t\towner_ref: grant.ownerRef,\n\t\t\t\tprovider_family: grant.providerFamily,\n\t\t\t\tprovider_subject: grant.providerSubject,\n\t\t\t\trefresh_token_ciphertext: grant.refreshTokenCiphertext ?? null,\n\t\t\t\tstatus: grant.status,\n\t\t\t\ttoken_type: grant.tokenType ?? null,\n\t\t\t\tupdated_at: new Date(grant.updatedAt)\n\t\t\t})\n\t\t\t.onConflictDoUpdate({\n\t\t\t\tset: {\n\t\t\t\t\taccess_token_ciphertext:\n\t\t\t\t\t\tgrant.accessTokenCiphertext ?? null,\n\t\t\t\t\tauth_provider_key: grant.authProviderKey,\n\t\t\t\t\texpires_at: toTimestamp(grant.expiresAt),\n\t\t\t\t\tgranted_scopes: grant.grantedScopes,\n\t\t\t\t\tlast_refresh_error: grant.lastRefreshError ?? null,\n\t\t\t\t\tlast_refreshed_at: toTimestamp(grant.lastRefreshedAt),\n\t\t\t\t\tmetadata: grant.metadata ?? {},\n\t\t\t\t\towner_ref: grant.ownerRef,\n\t\t\t\t\tprovider_family: grant.providerFamily,\n\t\t\t\t\tprovider_subject: grant.providerSubject,\n\t\t\t\t\trefresh_token_ciphertext:\n\t\t\t\t\t\tgrant.refreshTokenCiphertext ?? null,\n\t\t\t\t\tstatus: grant.status,\n\t\t\t\t\ttoken_type: grant.tokenType ?? null,\n\t\t\t\t\tupdated_at: new Date(grant.updatedAt)\n\t\t\t\t},\n\t\t\t\ttarget: linkedProviderGrantsTable.id\n\t\t\t});\n\t}\n});\nexport const createNeonLinkedProviderStores = (databaseUrl: string) => {\n\tconst sql = neon(databaseUrl);\n\tconst db = drizzle(sql, { schema: linkedProviderSchema });\n\n\treturn {\n\t\tbindingStore: createNeonLinkedProviderBindingStore(db),\n\t\tdb,\n\t\tgrantStore: createNeonLinkedProviderGrantStore(db)\n\t};\n};\n\nexport type CreateNeonOAuthLinkedProviderCredentialResolverOptions = {\n\tdatabaseUrl: string;\n\tprovidersConfiguration: OAuth2ConfigurationOptions;\n\tnow?: () => number;\n};\n\nexport const createNeonOAuthLinkedProviderCredentialResolver = async ({\n\tdatabaseUrl,\n\tnow,\n\tprovidersConfiguration\n}: CreateNeonOAuthLinkedProviderCredentialResolverOptions) => {\n\tconst stores = createNeonLinkedProviderStores(databaseUrl);\n\n\treturn createOAuthLinkedProviderCredentialResolver({\n\t\t...stores,\n\t\tnow,\n\t\tprovidersConfiguration\n\t});\n};\n",
134
+ "import type {\n\tLinkedProviderBinding,\n\tLinkedProviderBindingStore,\n\tLinkedProviderGrant,\n\tLinkedProviderGrantStore\n} from '@absolutejs/linked-providers';\n\nexport type CreateInMemoryLinkedProviderStoresOptions = {\n\tgrants?: LinkedProviderGrant[];\n\tbindings?: LinkedProviderBinding[];\n};\n\nconst cloneGrant = (grant: LinkedProviderGrant): LinkedProviderGrant => ({\n\t...grant,\n\tgrantedScopes: [...grant.grantedScopes],\n\tmetadata: grant.metadata ? { ...grant.metadata } : undefined\n});\n\nconst cloneBinding = (\n\tbinding: LinkedProviderBinding\n): LinkedProviderBinding => ({\n\t...binding,\n\tavailableScopes: [...binding.availableScopes],\n\tcapabilities: binding.capabilities ? [...binding.capabilities] : undefined,\n\tmetadata: binding.metadata ? { ...binding.metadata } : undefined\n});\n\nexport const createInMemoryLinkedProviderStores = (\n\tinput: CreateInMemoryLinkedProviderStoresOptions = {}\n): {\n\tgrantStore: LinkedProviderGrantStore;\n\tbindingStore: LinkedProviderBindingStore;\n} => {\n\tconst grants = new Map<string, LinkedProviderGrant>(\n\t\t(input.grants ?? []).map((grant) => [grant.id, cloneGrant(grant)])\n\t);\n\tconst bindings = new Map<string, LinkedProviderBinding>(\n\t\t(input.bindings ?? []).map((binding) => [\n\t\t\tbinding.id,\n\t\t\tcloneBinding(binding)\n\t\t])\n\t);\n\n\tconst grantStore: LinkedProviderGrantStore = {\n\t\tgetGrant: async (id) => {\n\t\t\tconst grant = grants.get(id);\n\n\t\t\treturn grant ? cloneGrant(grant) : undefined;\n\t\t},\n\t\tlistGrantsByOwner: async (ownerRef) =>\n\t\t\t[...grants.values()]\n\t\t\t\t.filter((grant) => grant.ownerRef === ownerRef)\n\t\t\t\t.map(cloneGrant),\n\t\tremoveGrant: async (id) => {\n\t\t\tgrants.delete(id);\n\t\t\t[...bindings.entries()]\n\t\t\t\t.filter(([, binding]) => binding.grantId === id)\n\t\t\t\t.forEach(([bindingId]) => bindings.delete(bindingId));\n\t\t},\n\t\tsaveGrant: async (grant) => {\n\t\t\tgrants.set(grant.id, cloneGrant(grant));\n\t\t}\n\t};\n\n\tconst bindingStore: LinkedProviderBindingStore = {\n\t\tgetBinding: async (id) => {\n\t\t\tconst binding = bindings.get(id);\n\n\t\t\treturn binding ? cloneBinding(binding) : undefined;\n\t\t},\n\t\tlistBindingsByGrant: async (grantId) =>\n\t\t\t[...bindings.values()]\n\t\t\t\t.filter((binding) => binding.grantId === grantId)\n\t\t\t\t.map(cloneBinding),\n\t\tlistBindingsByOwner: async (ownerRef) =>\n\t\t\t[...bindings.values()]\n\t\t\t\t.filter(\n\t\t\t\t\t(binding) =>\n\t\t\t\t\t\tgrants.get(binding.grantId)?.ownerRef === ownerRef\n\t\t\t\t)\n\t\t\t\t.map(cloneBinding),\n\t\tremoveBinding: async (id) => {\n\t\t\tbindings.delete(id);\n\t\t},\n\t\tsaveBinding: async (binding) => {\n\t\t\tbindings.set(binding.id, cloneBinding(binding));\n\t\t}\n\t};\n\n\treturn { bindingStore, grantStore };\n};\n",
135
+ "import {\n\tdecodeJWT,\n\tnormalizeProviderIdentity,\n\tOAuth2Client,\n\tOAuth2TokenResponse,\n\tProviderOption,\n\tproviders\n} from 'citra';\nimport { Cookie } from 'elysia';\nimport { MILLISECONDS_IN_A_DAY, MILLISECONDS_IN_AN_HOUR } from './constants';\nimport { AuthHtmxConfig } from './htmx/types';\nimport { isNonEmptyString, isStatusResponse } from './typeGuards';\nimport {\n\tAuthConfig,\n\tInsantiateUserSessionProps,\n\tOAuth2ConfigurationOptions,\n\tResolvedOAuthAuthorization,\n\tSessionRecord,\n\tUnregisteredSessionRecord,\n\tUserSessionId\n} from './types';\n\nexport const defineAuthConfig = <UserType>(\n\tconfiguration: AuthConfig<UserType>\n) => configuration;\nexport const defineAuthHtmxConfig = (htmxConfig: AuthHtmxConfig) => htmxConfig;\nexport const defineProvidersConfiguration = (\n\tprovidersConfiguration: OAuth2ConfigurationOptions\n) => providersConfiguration;\nexport const getStatus = async <UserType>(\n\tsession: SessionRecord<UserType>,\n\tuser_session_id: Cookie<UserSessionId | undefined>\n) => {\n\tif (user_session_id === undefined) {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: 'Bad Request',\n\t\t\t\tmessage: 'Cookies are missing'\n\t\t\t} as const,\n\t\t\tuser: null\n\t\t};\n\t}\n\n\tconst userSession = validateSession({ session, user_session_id });\n\tconst user = userSession?.user ?? null;\n\n\treturn {\n\t\terror: null,\n\t\tuser\n\t};\n};\nexport const instantiateUserSession = async <UserType>({\n\tauthProvider,\n\tsession,\n\tuser_session_id,\n\tunregisteredSession,\n\ttokenResponse,\n\tproviderInstance,\n\tgetUser,\n\tonNewUser,\n\tresolvedAuthorization,\n\tsessionDurationMs = MILLISECONDS_IN_A_DAY,\n\tunregisteredSessionDurationMs = MILLISECONDS_IN_AN_HOUR\n}: InsantiateUserSessionProps<UserType>) => {\n\tconst authorization =\n\t\tresolvedAuthorization ??\n\t\t(await resolveOAuthAuthorization({\n\t\t\tauthProvider,\n\t\t\tproviderInstance,\n\t\t\ttokenResponse\n\t\t}));\n\tconst { accessToken, refreshToken, userIdentity } = authorization;\n\n\tconst userSession = validateSession({ session, user_session_id });\n\tconst userSessionId = getUserSessionId({\n\t\tsession,\n\t\tunregisteredSession,\n\t\tuser_session_id\n\t});\n\n\tlet user = userSession?.user ?? (await getUser(userIdentity));\n\tconst response = user ?? (await onNewUser(userIdentity));\n\n\tconst isRedirectOrStatus =\n\t\tresponse instanceof Response || isStatusResponse(response);\n\n\tif (!isRedirectOrStatus) {\n\t\tuser = response;\n\n\t\tsession[userSessionId] = {\n\t\t\taccessToken,\n\t\t\tauthenticatedAt: Date.now(),\n\t\t\texpiresAt: Date.now() + sessionDurationMs,\n\t\t\trefreshToken,\n\t\t\tuser\n\t\t};\n\n\t\treturn void 0;\n\t}\n\n\tconst existingUnregistered = unregisteredSession[userSessionId];\n\n\tif (existingUnregistered) {\n\t\texistingUnregistered.accessToken = accessToken;\n\t\texistingUnregistered.expiresAt =\n\t\t\tDate.now() + unregisteredSessionDurationMs;\n\t\texistingUnregistered.refreshToken = refreshToken;\n\t\texistingUnregistered.userIdentity = userIdentity;\n\n\t\treturn response;\n\t}\n\n\tunregisteredSession[userSessionId] = {\n\t\taccessToken,\n\t\texpiresAt: Date.now() + unregisteredSessionDurationMs,\n\t\trefreshToken,\n\t\tuserIdentity\n\t};\n\n\treturn response;\n};\nexport const resolveOAuthAuthorization = async ({\n\tauthProvider,\n\tproviderInstance,\n\ttokenResponse,\n\tnow = Date.now()\n}: {\n\tauthProvider: ProviderOption;\n\tproviderInstance: OAuth2Client<ProviderOption>;\n\ttokenResponse: OAuth2TokenResponse;\n\tnow?: number;\n}): Promise<ResolvedOAuthAuthorization> => {\n\tlet userIdentity;\n\tlet accessToken = tokenResponse.access_token;\n\tlet refreshToken = tokenResponse.refresh_token;\n\n\tif (tokenResponse.id_token) {\n\t\tuserIdentity = normalizeProviderIdentity({\n\t\t\tidentity: decodeJWT(tokenResponse.id_token),\n\t\t\tproviderConfiguration: providers[authProvider],\n\t\t\tsource: 'idToken'\n\t\t});\n\t} else if (authProvider === 'withings') {\n\t\t// @ts-expect-error TODO: Withings is its own case edit the validate response to accept this case\n\t\tuserIdentity = { userid: tokenResponse.body.userid };\n\t\t// @ts-expect-error TODO: Withings is its own case edit the validate response to accept this case\n\t\taccessToken = tokenResponse.body.access_token;\n\t\t// @ts-expect-error TODO: Withings is its own case edit the validate response to accept this case\n\t\trefreshToken = tokenResponse.body.refresh_token;\n\t} else {\n\t\tuserIdentity = normalizeProviderIdentity({\n\t\t\tidentity: await providerInstance.fetchUserProfile(\n\t\t\t\ttokenResponse.access_token\n\t\t\t),\n\t\t\tproviderConfiguration: providers[authProvider],\n\t\t\tsource: 'profile'\n\t\t});\n\t}\n\n\tconst tokenType: unknown = Reflect.get(tokenResponse, 'token_type');\n\n\treturn {\n\t\taccessToken,\n\t\texpiresAt: resolveOAuthTokenExpiresAt(tokenResponse, now),\n\t\trefreshToken,\n\t\ttokenType: typeof tokenType === 'string' ? tokenType : undefined,\n\t\tuserIdentity\n\t};\n};\nconst parseExpiresInSeconds = (expiresIn: unknown) => {\n\tif (typeof expiresIn === 'number') {\n\t\treturn expiresIn;\n\t}\n\n\tif (typeof expiresIn === 'string' && expiresIn.trim().length > 0) {\n\t\treturn Number(expiresIn);\n\t}\n\n\treturn Number.NaN;\n};\n\nexport const resolveOAuthTokenExpiresAt = (\n\ttokenResponse: OAuth2TokenResponse,\n\tnow = Date.now()\n) => {\n\tconst expiresIn: unknown = Reflect.get(tokenResponse, 'expires_in');\n\tconst expiresInSeconds = parseExpiresInSeconds(expiresIn);\n\n\tif (!Number.isFinite(expiresInSeconds) || expiresInSeconds <= 0) {\n\t\treturn undefined;\n\t}\n\n\treturn now + expiresInSeconds * 1000;\n};\n\ntype ValidateSessionProps<\n\tSessionType extends Record<string, unknown> & { expiresAt: number }\n> = {\n\tuser_session_id: Cookie<UserSessionId | undefined>;\n\tsession: Record<UserSessionId, SessionType>;\n};\n\nexport const validateSession = <\n\tSessionType extends Record<string, unknown> & { expiresAt: number }\n>({\n\tuser_session_id,\n\tsession\n}: ValidateSessionProps<SessionType>) => {\n\tconst userSessionId = user_session_id.value;\n\tif (!userSessionId) {\n\t\treturn undefined;\n\t}\n\n\tconst userSession = session[userSessionId];\n\tif (!userSession) {\n\t\treturn undefined;\n\t}\n\n\tconst isExpired = userSession.expiresAt < Date.now();\n\tif (isExpired) {\n\t\tdelete session[userSessionId];\n\t\tuser_session_id.remove();\n\n\t\treturn undefined;\n\t}\n\n\treturn userSession;\n};\n\ntype GetUserSessionIdProps<UserType> = {\n\tuser_session_id: Cookie<UserSessionId | undefined>;\n\tsession?: SessionRecord<UserType>;\n\tunregisteredSession?: UnregisteredSessionRecord;\n};\n\nconst clearExistingSession = <UserType>(\n\texistingId: UserSessionId,\n\tsession?: SessionRecord<UserType>,\n\tunregisteredSession?: UnregisteredSessionRecord\n) => {\n\tif (session) delete session[existingId];\n\tif (unregisteredSession) delete unregisteredSession[existingId];\n};\n\nexport const getUserSessionId = <UserType>({\n\tuser_session_id,\n\tsession,\n\tunregisteredSession\n}: GetUserSessionIdProps<UserType>) => {\n\tconst existingId = user_session_id?.value;\n\n\tif (isNonEmptyString(existingId)) {\n\t\tclearExistingSession(existingId, session, unregisteredSession);\n\t}\n\n\tconst userSessionId = crypto.randomUUID();\n\n\tuser_session_id.set({\n\t\thttpOnly: true,\n\t\tsameSite: 'lax',\n\t\tsecure: true,\n\t\tvalue: userSessionId\n\t});\n\n\treturn userSessionId;\n};\n",
136
+ "// Tenancy primitive. `organizationId` is a plain, consumer-owned identifier — the\n// package stays unopinionated about org/role schemas (the consumer owns those via\n// hooks). It is threaded (optionally) into SSO connections, SCIM tokens, and audit\n// events so those can be scoped per organization without the package assuming a\n// tenancy model. Sessions remain org-agnostic until SSO populates this field.\n\nexport type OrganizationId = string;\n\nexport type WithOrganization<Resource> = Resource & {\n\torganizationId?: OrganizationId;\n};\n\nexport const hasOrganizationScope = (value: {\n\torganizationId?: OrganizationId;\n}): value is { organizationId: OrganizationId } =>\n\ttypeof value.organizationId === 'string' && value.organizationId.length > 0;\n",
137
+ "import type { CredentialRecord, CredentialStore, CredentialToken } from './types';\n\nconst cloneCredential = (value: CredentialRecord): CredentialRecord => ({\n\t...value\n});\n\nconst cloneToken = (value: CredentialToken): CredentialToken => ({ ...value });\n\nconst consumeToken = (\n\ttokens: Map<string, CredentialToken>,\n\ttokenHash: string\n) => {\n\tconst token = tokens.get(tokenHash);\n\tif (!token) return undefined;\n\n\ttokens.delete(tokenHash);\n\tif (token.expiresAt < Date.now()) return undefined;\n\n\treturn cloneToken(token);\n};\n\nexport const createInMemoryCredentialStore = (): CredentialStore => {\n\tconst credentials = new Map<string, CredentialRecord>();\n\tconst verificationTokens = new Map<string, CredentialToken>();\n\tconst resetTokens = new Map<string, CredentialToken>();\n\n\treturn {\n\t\tconsumeResetToken: async (tokenHash) =>\n\t\t\tconsumeToken(resetTokens, tokenHash),\n\t\tconsumeVerificationToken: async (tokenHash) =>\n\t\t\tconsumeToken(verificationTokens, tokenHash),\n\t\tgetCredentialByEmail: async (email) => {\n\t\t\tconst credential = credentials.get(email.toLowerCase());\n\n\t\t\treturn credential ? cloneCredential(credential) : undefined;\n\t\t},\n\t\tsaveCredential: async (credential) => {\n\t\t\tcredentials.set(\n\t\t\t\tcredential.email.toLowerCase(),\n\t\t\t\tcloneCredential(credential)\n\t\t\t);\n\t\t},\n\t\tsaveResetToken: async (token) => {\n\t\t\tresetTokens.set(token.tokenHash, cloneToken(token));\n\t\t},\n\t\tsaveVerificationToken: async (token) => {\n\t\t\tverificationTokens.set(token.tokenHash, cloneToken(token));\n\t\t},\n\t\tsetEmailVerified: async (email) => {\n\t\t\tconst credential = credentials.get(email.toLowerCase());\n\t\t\tif (!credential) return;\n\n\t\t\tcredentials.set(email.toLowerCase(), {\n\t\t\t\t...credential,\n\t\t\t\temailVerified: true,\n\t\t\t\tupdatedAt: Date.now()\n\t\t\t});\n\t\t}\n\t};\n};\n",
138
+ "import { neon } from '@neondatabase/serverless';\nimport { drizzle } from 'drizzle-orm/neon-http';\nimport type { PgDatabase, PgQueryResultHKT } from 'drizzle-orm/pg-core';\n\n// Shared scaffolding for the enterprise stores. Every new store ships an\n// in-memory implementation (dev/test) plus a Postgres implementation that accepts\n// a Drizzle `PgDatabase` — so it runs on Neon (neon-http) AND node-postgres without\n// the package bundling a second driver. `createNeonDatabase` is the convenience\n// wrapper consumers reach for when they just want a Neon connection string.\n\nexport type AnyPgDatabase = PgDatabase<PgQueryResultHKT>;\n\nexport const createNeonDatabase = (databaseUrl: string) =>\n\tdrizzle(neon(databaseUrl));\n",
139
+ "import { eq } from 'drizzle-orm';\nimport { bigint, boolean, pgTable, text, varchar } from 'drizzle-orm/pg-core';\nimport { type AnyPgDatabase, createNeonDatabase } from '../stores/postgres';\nimport type {\n\tCredentialRecord,\n\tCredentialStatus,\n\tCredentialStore,\n\tCredentialToken\n} from './types';\n\nconst EMAIL_LENGTH = 320;\nconst ID_LENGTH = 255;\nconst STATUS_LENGTH = 32;\nconst TOKEN_HASH_LENGTH = 255;\n\nexport const credentialsTable = pgTable('auth_credentials', {\n\tcreated_at_ms: bigint('created_at_ms', { mode: 'number' }).notNull(),\n\temail: varchar('email', { length: EMAIL_LENGTH }).primaryKey(),\n\temail_verified: boolean('email_verified').notNull().default(false),\n\torganization_id: varchar('organization_id', { length: ID_LENGTH }),\n\tpassword_hash: text('password_hash').notNull(),\n\tstatus: varchar('status', { length: STATUS_LENGTH })\n\t\t.notNull()\n\t\t.default('active'),\n\tupdated_at_ms: bigint('updated_at_ms', { mode: 'number' }).notNull(),\n\tuser_id: varchar('user_id', { length: ID_LENGTH })\n});\n\nconst createTokenTable = (name: string) =>\n\tpgTable(name, {\n\t\temail: varchar('email', { length: EMAIL_LENGTH }).notNull(),\n\t\texpires_at_ms: bigint('expires_at_ms', { mode: 'number' }).notNull(),\n\t\ttoken_hash: varchar('token_hash', {\n\t\t\tlength: TOKEN_HASH_LENGTH\n\t\t}).primaryKey()\n\t});\n\nexport const credentialResetTokensTable = createTokenTable(\n\t'auth_credential_reset_tokens'\n);\nexport const credentialVerificationTokensTable = createTokenTable(\n\t'auth_credential_verification_tokens'\n);\n\ntype CredentialRow = typeof credentialsTable.$inferSelect;\ntype CredentialInsert = typeof credentialsTable.$inferInsert;\ntype TokenTable = ReturnType<typeof createTokenTable>;\ntype TokenRow = TokenTable['$inferSelect'];\ntype TokenInsert = TokenTable['$inferInsert'];\n\nconst CREDENTIAL_STATUSES: CredentialStatus[] = ['active', 'disabled'];\n\nconst isCredentialStatus = (value: string): value is CredentialStatus =>\n\tCREDENTIAL_STATUSES.some((status) => status === value);\n\nconst toCredentialRecord = (row: CredentialRow): CredentialRecord => ({\n\tcreatedAt: row.created_at_ms,\n\temail: row.email,\n\temailVerified: row.email_verified,\n\torganizationId: row.organization_id ?? undefined,\n\tpasswordHash: row.password_hash,\n\tstatus: isCredentialStatus(row.status) ? row.status : 'active',\n\tupdatedAt: row.updated_at_ms,\n\tuserId: row.user_id ?? undefined\n});\n\nconst toToken = (row: TokenRow): CredentialToken => ({\n\temail: row.email,\n\texpiresAt: row.expires_at_ms,\n\ttokenHash: row.token_hash\n});\n\nconst saveToken = async (\n\tdb: AnyPgDatabase,\n\ttable: TokenTable,\n\ttoken: CredentialToken\n) => {\n\tconst values: TokenInsert = {\n\t\temail: token.email.toLowerCase(),\n\t\texpires_at_ms: token.expiresAt,\n\t\ttoken_hash: token.tokenHash\n\t};\n\tawait db\n\t\t.insert(table)\n\t\t.values(values)\n\t\t.onConflictDoUpdate({ set: values, target: table.token_hash });\n};\n\nconst consumeToken = async (\n\tdb: AnyPgDatabase,\n\ttable: TokenTable,\n\ttokenHash: string\n) => {\n\tconst [row] = await db\n\t\t.select()\n\t\t.from(table)\n\t\t.where(eq(table.token_hash, tokenHash))\n\t\t.limit(1);\n\tif (!row) return undefined;\n\n\tawait db.delete(table).where(eq(table.token_hash, tokenHash));\n\tif (row.expires_at_ms < Date.now()) return undefined;\n\n\treturn toToken(row);\n};\n\nexport const createNeonCredentialStore = (databaseUrl: string) =>\n\tcreatePostgresCredentialStore(createNeonDatabase(databaseUrl));\nexport const createPostgresCredentialStore = (\n\tdb: AnyPgDatabase\n): CredentialStore => ({\n\tconsumeResetToken: (tokenHash) =>\n\t\tconsumeToken(db, credentialResetTokensTable, tokenHash),\n\tconsumeVerificationToken: (tokenHash) =>\n\t\tconsumeToken(db, credentialVerificationTokensTable, tokenHash),\n\tgetCredentialByEmail: async (email) => {\n\t\tconst [row] = await db\n\t\t\t.select()\n\t\t\t.from(credentialsTable)\n\t\t\t.where(eq(credentialsTable.email, email.toLowerCase()))\n\t\t\t.limit(1);\n\n\t\treturn row ? toCredentialRecord(row) : undefined;\n\t},\n\tsaveCredential: async (credential) => {\n\t\tconst values: CredentialInsert = {\n\t\t\tcreated_at_ms: credential.createdAt,\n\t\t\temail: credential.email.toLowerCase(),\n\t\t\temail_verified: credential.emailVerified,\n\t\t\torganization_id: credential.organizationId ?? null,\n\t\t\tpassword_hash: credential.passwordHash,\n\t\t\tstatus: credential.status,\n\t\t\tupdated_at_ms: credential.updatedAt,\n\t\t\tuser_id: credential.userId ?? null\n\t\t};\n\t\tawait db\n\t\t\t.insert(credentialsTable)\n\t\t\t.values(values)\n\t\t\t.onConflictDoUpdate({ set: values, target: credentialsTable.email });\n\t},\n\tsaveResetToken: (token) =>\n\t\tsaveToken(db, credentialResetTokensTable, token),\n\tsaveVerificationToken: (token) =>\n\t\tsaveToken(db, credentialVerificationTokensTable, token),\n\tsetEmailVerified: async (email) => {\n\t\tawait db\n\t\t\t.update(credentialsTable)\n\t\t\t.set({ email_verified: true, updated_at_ms: Date.now() })\n\t\t\t.where(eq(credentialsTable.email, email.toLowerCase()));\n\t}\n});\n",
140
+ "import type { MfaEnrollment, MFAStore } from './types';\n\nconst cloneEnrollment = (value: MfaEnrollment): MfaEnrollment => ({\n\t...value,\n\tbackupCodeHashes: [...value.backupCodeHashes]\n});\n\nexport const createInMemoryMfaStore = (): MFAStore => {\n\tconst enrollments = new Map<string, MfaEnrollment>();\n\n\treturn {\n\t\tgetEnrollment: async (userId) => {\n\t\t\tconst enrollment = enrollments.get(userId);\n\n\t\t\treturn enrollment ? cloneEnrollment(enrollment) : undefined;\n\t\t},\n\t\tremoveEnrollment: async (userId) => {\n\t\t\tenrollments.delete(userId);\n\t\t},\n\t\tsaveEnrollment: async (enrollment) => {\n\t\t\tenrollments.set(enrollment.userId, cloneEnrollment(enrollment));\n\t\t}\n\t};\n};\n",
141
+ "import { eq } from 'drizzle-orm';\nimport { bigint, boolean, jsonb, pgTable, text, varchar } from 'drizzle-orm/pg-core';\nimport { type AnyPgDatabase, createNeonDatabase } from '../stores/postgres';\nimport type { MfaEnrollment, MFAStore } from './types';\n\nconst ID_LENGTH = 255;\n\nexport const mfaEnrollmentsTable = pgTable('auth_mfa_enrollments', {\n\tbackup_code_hashes: jsonb('backup_code_hashes')\n\t\t.$type<string[]>()\n\t\t.notNull()\n\t\t.default([]),\n\tcreated_at_ms: bigint('created_at_ms', { mode: 'number' }).notNull(),\n\tlast_used_at_ms: bigint('last_used_at_ms', { mode: 'number' }),\n\ttotp_secret_ciphertext: text('totp_secret_ciphertext'),\n\ttotp_verified: boolean('totp_verified').notNull().default(false),\n\tupdated_at_ms: bigint('updated_at_ms', { mode: 'number' }).notNull(),\n\tuser_id: varchar('user_id', { length: ID_LENGTH }).primaryKey()\n});\n\ntype MfaRow = typeof mfaEnrollmentsTable.$inferSelect;\ntype MfaInsert = typeof mfaEnrollmentsTable.$inferInsert;\n\nconst toEnrollment = (row: MfaRow): MfaEnrollment => ({\n\tbackupCodeHashes: row.backup_code_hashes,\n\tcreatedAt: row.created_at_ms,\n\tlastUsedAt: row.last_used_at_ms ?? undefined,\n\ttotpSecretCiphertext: row.totp_secret_ciphertext ?? undefined,\n\ttotpVerified: row.totp_verified,\n\tupdatedAt: row.updated_at_ms,\n\tuserId: row.user_id\n});\n\nexport const createNeonMfaStore = (databaseUrl: string) =>\n\tcreatePostgresMfaStore(createNeonDatabase(databaseUrl));\nexport const createPostgresMfaStore = (db: AnyPgDatabase): MFAStore => ({\n\tgetEnrollment: async (userId) => {\n\t\tconst [row] = await db\n\t\t\t.select()\n\t\t\t.from(mfaEnrollmentsTable)\n\t\t\t.where(eq(mfaEnrollmentsTable.user_id, userId))\n\t\t\t.limit(1);\n\n\t\treturn row ? toEnrollment(row) : undefined;\n\t},\n\tremoveEnrollment: async (userId) => {\n\t\tawait db\n\t\t\t.delete(mfaEnrollmentsTable)\n\t\t\t.where(eq(mfaEnrollmentsTable.user_id, userId));\n\t},\n\tsaveEnrollment: async (enrollment) => {\n\t\tconst values: MfaInsert = {\n\t\t\tbackup_code_hashes: enrollment.backupCodeHashes,\n\t\t\tcreated_at_ms: enrollment.createdAt,\n\t\t\tlast_used_at_ms: enrollment.lastUsedAt ?? null,\n\t\t\ttotp_secret_ciphertext: enrollment.totpSecretCiphertext ?? null,\n\t\t\ttotp_verified: enrollment.totpVerified,\n\t\t\tupdated_at_ms: enrollment.updatedAt,\n\t\t\tuser_id: enrollment.userId\n\t\t};\n\t\tawait db\n\t\t\t.insert(mfaEnrollmentsTable)\n\t\t\t.values(values)\n\t\t\t.onConflictDoUpdate({\n\t\t\t\tset: values,\n\t\t\t\ttarget: mfaEnrollmentsTable.user_id\n\t\t\t});\n\t}\n});\n",
142
+ "import type { LockoutRecord, LockoutStore } from './types';\n\nconst cloneRecord = (value: LockoutRecord): LockoutRecord => ({ ...value });\n\nexport const createInMemoryLockoutStore = (): LockoutStore => {\n\tconst records = new Map<string, LockoutRecord>();\n\n\treturn {\n\t\tget: async (key) => {\n\t\t\tconst record = records.get(key);\n\n\t\t\treturn record ? cloneRecord(record) : undefined;\n\t\t},\n\t\tincrement: async (key, windowMs) => {\n\t\t\tconst now = Date.now();\n\t\t\tconst existing = records.get(key);\n\t\t\tconst next: LockoutRecord =\n\t\t\t\texisting !== undefined &&\n\t\t\t\tnow - existing.windowStartedAt <= windowMs\n\t\t\t\t\t? { ...existing, failedAttempts: existing.failedAttempts + 1 }\n\t\t\t\t\t: { failedAttempts: 1, key, windowStartedAt: now };\n\t\t\trecords.set(key, next);\n\n\t\t\treturn cloneRecord(next);\n\t\t},\n\t\tlock: async (key, lockedUntil) => {\n\t\t\tconst existing = records.get(key) ?? {\n\t\t\t\tfailedAttempts: 0,\n\t\t\t\tkey,\n\t\t\t\twindowStartedAt: Date.now()\n\t\t\t};\n\t\t\trecords.set(key, { ...existing, lockedUntil });\n\t\t},\n\t\treset: async (key) => {\n\t\t\trecords.delete(key);\n\t\t}\n\t};\n};\n",
143
+ "import { eq } from 'drizzle-orm';\nimport { bigint, integer, pgTable, varchar } from 'drizzle-orm/pg-core';\nimport { type AnyPgDatabase, createNeonDatabase } from '../stores/postgres';\nimport type { LockoutRecord, LockoutStore } from './types';\n\nconst KEY_LENGTH = 320;\n\nexport const lockoutsTable = pgTable('auth_lockouts', {\n\tfailed_attempts: integer('failed_attempts').notNull().default(0),\n\tkey: varchar('key', { length: KEY_LENGTH }).primaryKey(),\n\tlocked_until_ms: bigint('locked_until_ms', { mode: 'number' }),\n\twindow_started_at_ms: bigint('window_started_at_ms', {\n\t\tmode: 'number'\n\t}).notNull()\n});\n\ntype LockoutRow = typeof lockoutsTable.$inferSelect;\ntype LockoutInsert = typeof lockoutsTable.$inferInsert;\n\nconst toRecord = (row: LockoutRow): LockoutRecord => ({\n\tfailedAttempts: row.failed_attempts,\n\tkey: row.key,\n\tlockedUntil: row.locked_until_ms ?? undefined,\n\twindowStartedAt: row.window_started_at_ms\n});\n\nexport const createNeonLockoutStore = (databaseUrl: string) =>\n\tcreatePostgresLockoutStore(createNeonDatabase(databaseUrl));\nexport const createPostgresLockoutStore = (db: AnyPgDatabase): LockoutStore => {\n\tconst get = async (key: string) => {\n\t\tconst [row] = await db\n\t\t\t.select()\n\t\t\t.from(lockoutsTable)\n\t\t\t.where(eq(lockoutsTable.key, key))\n\t\t\t.limit(1);\n\n\t\treturn row ? toRecord(row) : undefined;\n\t};\n\tconst save = async (record: LockoutRecord) => {\n\t\tconst values: LockoutInsert = {\n\t\t\tfailed_attempts: record.failedAttempts,\n\t\t\tkey: record.key,\n\t\t\tlocked_until_ms: record.lockedUntil ?? null,\n\t\t\twindow_started_at_ms: record.windowStartedAt\n\t\t};\n\t\tawait db\n\t\t\t.insert(lockoutsTable)\n\t\t\t.values(values)\n\t\t\t.onConflictDoUpdate({ set: values, target: lockoutsTable.key });\n\t};\n\n\treturn {\n\t\tget,\n\t\tincrement: async (key, windowMs) => {\n\t\t\tconst now = Date.now();\n\t\t\tconst existing = await get(key);\n\t\t\tconst next: LockoutRecord =\n\t\t\t\texisting !== undefined &&\n\t\t\t\tnow - existing.windowStartedAt <= windowMs\n\t\t\t\t\t? { ...existing, failedAttempts: existing.failedAttempts + 1 }\n\t\t\t\t\t: { failedAttempts: 1, key, windowStartedAt: now };\n\t\t\tawait save(next);\n\n\t\t\treturn next;\n\t\t},\n\t\tlock: async (key, lockedUntil) => {\n\t\t\tconst existing = (await get(key)) ?? {\n\t\t\t\tfailedAttempts: 0,\n\t\t\t\tkey,\n\t\t\t\twindowStartedAt: Date.now()\n\t\t\t};\n\t\t\tawait save({ ...existing, lockedUntil });\n\t\t},\n\t\treset: async (key) => {\n\t\t\tawait db.delete(lockoutsTable).where(eq(lockoutsTable.key, key));\n\t\t}\n\t};\n};\n",
144
+ "import type { AuditEvent, AuditSink } from './types';\n\nexport const createInMemoryAuditSink = (): AuditSink => {\n\tconst events: AuditEvent[] = [];\n\n\treturn {\n\t\tappend: async (event) => {\n\t\t\tevents.push({ ...event });\n\t\t},\n\t\tlist: async (filter) => {\n\t\t\tconst matched = filter?.userId\n\t\t\t\t? events.filter((event) => event.userId === filter.userId)\n\t\t\t\t: events;\n\t\t\tconst ordered = [...matched].sort((left, right) => right.at - left.at);\n\t\t\tconst limited =\n\t\t\t\tfilter?.limit === undefined\n\t\t\t\t\t? ordered\n\t\t\t\t\t: ordered.slice(0, filter.limit);\n\n\t\t\treturn limited.map((event) => ({ ...event }));\n\t\t}\n\t};\n};\n",
145
+ "import { desc, eq } from 'drizzle-orm';\nimport { bigint, jsonb, pgTable, varchar } from 'drizzle-orm/pg-core';\nimport { type AnyPgDatabase, createNeonDatabase } from '../stores/postgres';\nimport type { AuditEvent, AuditEventType, AuditSink } from './types';\n\nconst ID_LENGTH = 255;\nconst IP_LENGTH = 64;\nconst TYPE_LENGTH = 64;\nconst DEFAULT_AUDIT_LIMIT = 100;\n\nexport const auditEventsTable = pgTable('auth_audit_events', {\n\tat_ms: bigint('at_ms', { mode: 'number' }).notNull(),\n\tid: varchar('id', { length: ID_LENGTH }).primaryKey(),\n\tip: varchar('ip', { length: IP_LENGTH }),\n\tmetadata_json: jsonb('metadata_json').$type<Record<string, unknown>>(),\n\torganization_id: varchar('organization_id', { length: ID_LENGTH }),\n\ttype: varchar('type', { length: TYPE_LENGTH }).notNull(),\n\tuser_id: varchar('user_id', { length: ID_LENGTH })\n});\n\ntype AuditRow = typeof auditEventsTable.$inferSelect;\n\nconst toEvent = (row: AuditRow): AuditEvent => ({\n\tat: row.at_ms,\n\tip: row.ip ?? undefined,\n\tmetadata: row.metadata_json ?? undefined,\n\torganizationId: row.organization_id ?? undefined,\n\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- deserialization boundary: `type` was persisted from AuditEventType, so reading it back is sound\n\ttype: row.type as AuditEventType,\n\tuserId: row.user_id ?? undefined\n});\n\nexport const createNeonAuditSink = (databaseUrl: string) =>\n\tcreatePostgresAuditSink(createNeonDatabase(databaseUrl));\nexport const createPostgresAuditSink = (db: AnyPgDatabase): AuditSink => ({\n\tappend: async (event) => {\n\t\tawait db.insert(auditEventsTable).values({\n\t\t\tat_ms: event.at,\n\t\t\tid: crypto.randomUUID(),\n\t\t\tip: event.ip ?? null,\n\t\t\tmetadata_json: event.metadata ?? null,\n\t\t\torganization_id: event.organizationId ?? null,\n\t\t\ttype: event.type,\n\t\t\tuser_id: event.userId ?? null\n\t\t});\n\t},\n\tlist: async (filter) => {\n\t\tconst rows = await db\n\t\t\t.select()\n\t\t\t.from(auditEventsTable)\n\t\t\t.where(\n\t\t\t\tfilter?.userId\n\t\t\t\t\t? eq(auditEventsTable.user_id, filter.userId)\n\t\t\t\t\t: undefined\n\t\t\t)\n\t\t\t.orderBy(desc(auditEventsTable.at_ms))\n\t\t\t.limit(filter?.limit ?? DEFAULT_AUDIT_LIMIT);\n\n\t\treturn rows.map(toEvent);\n\t}\n});\n"
113
146
  ],
114
- "mappings": "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",
115
- "debugId": "26C8391A6D84F55864756E2164756E21",
147
+ "mappings": "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",
148
+ "debugId": "7ACDDE7FAAAD2C7B64756E2164756E21",
116
149
  "names": []
117
150
  }