@absolutejs/auth 0.76.3 → 0.77.1

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.
@@ -1,14 +1,112 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../node_modules/citra/dist/index.js", "../src/providers/clients.ts", "../src/linkedProviders/resolver.ts", "../src/linkedProviders/oauthResolver.ts", "../src/linkedProviders/oauthAccountResolver.ts"],
3
+ "sources": ["../node_modules/citra/dist/index.js", "../src/providers/clients.ts", "../src/linkedProviders/resolver.ts", "../src/linkedProviders/oauthResolver.ts", "../src/linkedProviders/oauthAccountResolver.ts", "../node_modules/@neondatabase/serverless/index.mjs", "../node_modules/drizzle-orm/entity.js", "../node_modules/drizzle-orm/column-common.js", "../node_modules/drizzle-orm/column.js", "../node_modules/drizzle-orm/table.utils.js", "../node_modules/drizzle-orm/table.js", "../node_modules/drizzle-orm/subquery.js", "../node_modules/drizzle-orm/tracing-utils.js", "../node_modules/drizzle-orm/tracing.js", "../node_modules/drizzle-orm/view-common.js", "../node_modules/drizzle-orm/sql/sql.js", "../node_modules/drizzle-orm/sql/expressions/conditions.js", "../node_modules/drizzle-orm/sql/expressions/select.js", "../node_modules/drizzle-orm/pg-core/array.js", "../node_modules/drizzle-orm/pg-core/columns/postgis_extension/utils.js", "../node_modules/drizzle-orm/codecs.js", "../node_modules/drizzle-orm/pg-core/codecs.js", "../node_modules/drizzle-orm/neon-http/codecs.js", "../node_modules/drizzle-orm/logger.js", "../node_modules/drizzle-orm/cache/core/cache.js", "../node_modules/drizzle-orm/pg-core/query-builders/count.js", "../node_modules/drizzle-orm/utils.js", "../node_modules/drizzle-orm/query-promise.js", "../node_modules/drizzle-orm/pg-core/async/count.js", "../node_modules/drizzle-orm/pg-core/query-builders/query.js", "../node_modules/drizzle-orm/pg-core/foreign-keys.js", "../node_modules/drizzle-orm/pg-core/columns/common.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/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/casing.js", "../node_modules/drizzle-orm/pg-core/table.js", "../node_modules/drizzle-orm/pg-core/primary-keys.js", "../node_modules/drizzle-orm/pg-core/checks.js", "../node_modules/drizzle-orm/pg-core/indexes.js", "../node_modules/drizzle-orm/pg-core/policies.js", "../node_modules/drizzle-orm/pg-core/unique-constraint.js", "../node_modules/drizzle-orm/pg-core/utils.js", "../node_modules/drizzle-orm/alias.js", "../node_modules/drizzle-orm/selection-proxy.js", "../node_modules/drizzle-orm/pg-core/query-builders/delete.js", "../node_modules/drizzle-orm/pg-core/async/delete.js", "../node_modules/drizzle-orm/query-builders/query-builder.js", "../node_modules/drizzle-orm/pg-core/view-base.js", "../node_modules/drizzle-orm/pg-core/query-builders/select.js", "../node_modules/drizzle-orm/errors.js", "../node_modules/drizzle-orm/relations.js", "../node_modules/drizzle-orm/pg-core/dialect.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/async/insert.js", "../node_modules/drizzle-orm/pg-core/async/query.js", "../node_modules/drizzle-orm/pg-core/query-builders/raw.js", "../node_modules/drizzle-orm/pg-core/async/raw.js", "../node_modules/drizzle-orm/pg-core/query-builders/refresh-materialized-view.js", "../node_modules/drizzle-orm/pg-core/async/refresh-materialized-view.js", "../node_modules/drizzle-orm/pg-core/async/select.js", "../node_modules/drizzle-orm/pg-core/query-builders/update.js", "../node_modules/drizzle-orm/pg-core/async/update.js", "../node_modules/drizzle-orm/pg-core/async/db.js", "../node_modules/drizzle-orm/pg-core/session.js", "../node_modules/drizzle-orm/pg-core/async/session.js", "../node_modules/drizzle-orm/neon-http/session.js", "../node_modules/drizzle-orm/neon-http/driver.js", "../src/linkedProviders/neonStores.ts", "../src/linkedProviders/inMemoryStores.ts"],
4
4
  "sourcesContent": [
5
5
  "// @bun\n// src/constants.ts\nvar BASE64_BLOCK_SIZE = 4;\nvar NUM_GENERATOR_BYTES = 32;\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 absolutejs: {\n authorizationUrl: (config) => `https://${config.baseURL ?? \"absolutejs.ai\"}/oauth2/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: (config) => `https://${config.baseURL ?? \"absolutejs.ai\"}/oauth2/userinfo`\n },\n revocationRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n tokenParamName: \"token\",\n url: (config) => `https://${config.baseURL ?? \"absolutejs.ai\"}/oauth2/revoke`\n },\n scopeRequired: false,\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: (config) => `https://${config.baseURL ?? \"absolutejs.ai\"}/oauth2/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 createAuthorizationURLSearchParams: {\n response_mode: \"form_post\"\n },\n createClientSecret: (config) => createAppleClientSecret(config),\n isOIDC: true,\n isRefreshable: true,\n revocationRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n tokenParamName: \"token\",\n url: \"https://appleid.apple.com/auth/revoke\"\n },\n scopeRequired: false,\n subject: [\"sub\"],\n subjectBySource: {\n idToken: [\"sub\"]\n },\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 attio: {\n authorizationUrl: \"https://app.attio.com/authorize\",\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.attio.com/v2/self\"\n },\n scopeRequired: true,\n subject: [\"workspace_id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://app.attio.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 inputSource: \"refreshToken\",\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 azureadb2c: {\n authorizationUrl: (config) => `https://${config.tenantSubdomain}.b2clogin.com/${config.tenantSubdomain}.onmicrosoft.com/${config.policy}/oauth2/v2.0/authorize`,\n isOIDC: true,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n scopeRequired: false,\n subject: [\"sub\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: (config) => `https://${config.tenantSubdomain}.b2clogin.com/${config.tenantSubdomain}.onmicrosoft.com/${config.policy}/oauth2/v2.0/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 calendly: {\n authorizationUrl: \"https://auth.calendly.com/oauth/authorize\",\n email: [\"resource\", \"email\"],\n fullName: [\"resource\", \"name\"],\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.calendly.com/users/me\"\n },\n scopeRequired: false,\n subject: [\"resource\", \"uri\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://auth.calendly.com/oauth/token\"\n }\n },\n close: {\n authorizationUrl: \"https://app.close.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.close.com/api/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.close.com/oauth2/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 gohighlevel: {\n authorizationUrl: \"https://marketplace.gohighlevel.com/v2/oauth/chooselocation\",\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n headers: {\n Version: \"2021-07-28\"\n },\n method: \"GET\",\n url: \"https://services.leadconnectorhq.com/users/me\"\n },\n scopeRequired: true,\n subject: [\"locationId\"],\n subjectBySource: {\n tokenResponse: [\"locationId\"]\n },\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://services.leadconnectorhq.com/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 hubspot: {\n authorizationUrl: \"https://app.hubspot.com/oauth/authorize\",\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"path\",\n encoding: \"application/json\",\n method: \"GET\",\n url: \"https://api.hubapi.com/oauth/v1/access-tokens\"\n },\n scopeRequired: true,\n subject: [\"hub_id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://api.hubapi.com/oauth/v1/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 microsoftentraexternalid: {\n authorizationUrl: (config) => `https://${config.tenantSubdomain}.ciamlogin.com/${config.tenantId}/oauth2/v2.0/authorize`,\n isOIDC: true,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n scopeRequired: false,\n subject: [\"sub\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: (config) => `https://${config.tenantSubdomain}.ciamlogin.com/${config.tenantId}/oauth2/v2.0/token`\n }\n },\n microsoftentraid: {\n authorizationUrl: (config) => `https://login.microsoftonline.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: \"https://graph.microsoft.com/oidc/userinfo\"\n },\n scopeRequired: false,\n subject: [\"sub\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: (config) => `https://login.microsoftonline.com/${config.tenantId}/oauth2/v2.0/token`\n }\n },\n monday: {\n authorizationUrl: \"https://auth.monday.com/oauth2/authorize\",\n isOIDC: false,\n isRefreshable: true,\n profileRequest: {\n authIn: \"header\",\n body: {\n query: \"query { me { id name email } }\"\n },\n encoding: \"application/json\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n method: \"POST\",\n url: \"https://api.monday.com/v2\"\n },\n scopeRequired: true,\n subject: [\"data\", \"me\", \"id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://auth.monday.com/oauth2/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 onspark: {\n authorizationUrl: \"https://onspark.com/oauth2/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://onspark.com/oauth2/userinfo\"\n },\n revocationRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n tokenParamName: \"token\",\n url: \"https://onspark.com/oauth2/revoke\"\n },\n scopeRequired: true,\n subject: [\"sub\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://onspark.com/oauth2/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 pipedrive: {\n authorizationUrl: \"https://oauth.pipedrive.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.pipedrive.com/v1/users/me\"\n },\n scopeRequired: true,\n subject: [\"data\", \"id\"],\n subjectType: \"number\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://oauth.pipedrive.com/oauth/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 inputSource: \"refreshToken\",\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 slackuser: {\n accessTokenPath: [\"authed_user\", \"access_token\"],\n authorizationUrl: \"https://slack.com/oauth/v2/authorize\",\n isOIDC: false,\n isRefreshable: false,\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"POST\",\n url: \"https://slack.com/api/auth.test\"\n },\n revocationRequest: {\n authIn: \"body\",\n encoding: \"application/json\",\n tokenParamName: \"token\",\n url: \"https://slack.com/api/auth.revoke\"\n },\n scopeParamName: \"user_scope\",\n scopeRequired: true,\n subject: [\"user_id\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: \"https://slack.com/api/oauth.v2.access\"\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 accessTokenPath: [\"body\", \"access_token\"],\n authorizationUrl: \"https://account.withings.com/oauth2_user/authorize2\",\n isOIDC: false,\n isRefreshable: true,\n refreshAccessTokenBody: {\n action: \"requesttoken\"\n },\n revocationRequest: {\n authIn: \"body\",\n body: (config) => getWithingsSignatureParams(config, \"revoke\"),\n encoding: \"application/x-www-form-urlencoded\",\n includeClientCredentials: false,\n inputSource: \"subject\",\n inputType: \"number\",\n tokenParamName: \"userid\",\n url: \"https://wbsapi.withings.net/v2/oauth2\",\n validateResponse: (value) => assertWithingsSuccess(value)\n },\n scopeDelimiter: \",\",\n scopeRequired: true,\n subject: [\"userid\"],\n subjectBySource: {\n tokenResponse: [\"body\", \"userid\"]\n },\n subjectType: \"number\",\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 zoho: {\n authorizationUrl: (config) => `https://accounts.zoho.${config.region ?? \"com\"}/oauth/v2/auth`,\n isOIDC: false,\n isRefreshable: true,\n PKCEMethod: \"S256\",\n profileRequest: {\n authIn: \"header\",\n encoding: \"application/json\",\n method: \"GET\",\n url: (config) => `https://accounts.zoho.${config.region ?? \"com\"}/oauth/user/info`\n },\n revocationRequest: {\n authIn: \"query\",\n encoding: \"application/x-www-form-urlencoded\",\n tokenParamName: \"token\",\n url: (config) => `https://accounts.zoho.${config.region ?? \"com\"}/oauth/v2/token/revoke`\n },\n scopeRequired: true,\n subject: [\"ZUID\"],\n subjectType: \"string\",\n tokenRequest: {\n authIn: \"body\",\n encoding: \"application/x-www-form-urlencoded\",\n url: (config) => `https://accounts.zoho.${config.region ?? \"com\"}/oauth/v2/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});\nfunction defineProvider(config) {\n return config === undefined ? (providerConfig) => providerConfig : config;\n}\n\n// src/typeGuards.ts\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 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 default:\n return false;\n }\n};\nvar isObject = (value) => value !== null && typeof value === \"object\" && !Array.isArray(value) && Object.prototype.toString.call(value) === \"[object Object]\";\nvar isOIDCProviderOption = (option) => {\n if (!isValidProviderOption(option))\n return false;\n const provider = providers[option];\n return provider.isOIDC;\n};\nvar isPKCEProviderOption = (option) => {\n if (!isValidProviderOption(option))\n return false;\n const provider = providers[option];\n return provider.PKCEMethod !== undefined;\n};\nfunction isProfileOAuth2Client(providerOrClient, maybeClient) {\n const client = maybeClient ?? providerOrClient;\n if (maybeClient !== undefined && (typeof providerOrClient !== \"string\" || !isProfileProviderOption(providerOrClient))) {\n return false;\n }\n return typeof client === \"object\" && client !== null && \"fetchUserProfile\" in client && typeof client.fetchUserProfile === \"function\";\n}\nvar isProfileProviderOption = (option) => {\n if (!isValidProviderOption(option))\n return false;\n const provider = providers[option];\n return provider.profileRequest !== undefined;\n};\nfunction isRefreshableOAuth2Client(providerOrClient, maybeClient) {\n const client = maybeClient ?? providerOrClient;\n if (maybeClient !== undefined && (typeof providerOrClient !== \"string\" || !isRefreshableProviderOption(providerOrClient))) {\n return false;\n }\n return typeof client === \"object\" && client !== null && \"refreshAccessToken\" in client && typeof client.refreshAccessToken === \"function\";\n}\nvar isRefreshableProviderOption = (option) => {\n if (!isValidProviderOption(option))\n return false;\n const provider = providers[option];\n return provider.isRefreshable;\n};\nfunction isRevocableOAuth2Client(providerOrClient, maybeClient) {\n const client = maybeClient ?? providerOrClient;\n if (maybeClient !== undefined && (typeof providerOrClient !== \"string\" || !isRevocableProviderOption(providerOrClient))) {\n return false;\n }\n return typeof client === \"object\" && client !== null && \"resolveRevocationInput\" in client && typeof client.resolveRevocationInput === \"function\" && \"revokeToken\" in client && typeof client.revokeToken === \"function\";\n}\nvar isRevocableProviderOption = (option) => {\n if (!isValidProviderOption(option))\n return false;\n const provider = providers[option];\n return provider.revocationRequest !== undefined;\n};\nvar isScopeRequiredProviderOption = (option) => {\n if (!isValidProviderOption(option))\n return false;\n const provider = providers[option];\n return provider.scopeRequired;\n};\nvar isValidProviderOption = (option) => Object.hasOwn(providers, option);\n\n// src/utils.ts\nvar readPath = (value, path) => path.reduce((cursor, key) => cursor && typeof cursor === \"object\" ? Reflect.get(cursor, key) : undefined, value);\nvar assertWithingsSuccess = (value) => {\n if (!isObject(value) || value.status !== 0) {\n const status = isObject(value) ? value.status : \"invalid response\";\n const detail = isObject(value) && typeof value.error === \"string\" ? `: ${value.error}` : \"\";\n throw new Error(`Withings request failed (${String(status)})${detail}`);\n }\n};\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 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 (body === undefined && authIn !== \"body\") {\n return new Request(url, {\n headers: oauthHeaders,\n method: \"POST\"\n });\n }\n if (encoding === \"application/json\") {\n oauthHeaders.set(\"Content-Type\", \"application/json\");\n const jsonBody = body instanceof URLSearchParams ? Object.fromEntries(body.entries()) : { ...body };\n if (authIn === \"body\")\n jsonBody.client_id = clientId;\n if (authIn === \"body\" && clientSecret)\n jsonBody.client_secret = clientSecret;\n return new Request(url, {\n body: JSON.stringify(jsonBody),\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 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 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 const claims = JSON.parse(decodedPayload);\n return claims;\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 getWithingsSignatureParams = async (config, action) => {\n const timestamp = Math.floor(Date.now() / 1000);\n const nonceSignature = await hmacSha256(`getnonce,${config.clientId},${timestamp}`, 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\", nonceSignature);\n const nonceTarget = nonceUrl.toString();\n const nonceResponse = await fetch(nonceTarget, { method: \"POST\" });\n if (!nonceResponse.ok) {\n throw await createOAuth2FetchError(nonceResponse);\n }\n const nonceData = await nonceResponse.json();\n if (!isObject(nonceData) || nonceData.status !== 0 || !isObject(nonceData.body) || typeof nonceData.body.nonce !== \"string\" || nonceData.body.nonce.length === 0) {\n throw new Error(\"Withings returned an invalid nonce response\");\n }\n const { nonce } = nonceData.body;\n const signature = await hmacSha256(`${action},${config.clientId},${nonce}`, config.clientSecret);\n return {\n action,\n client_id: config.clientId,\n nonce,\n signature\n };\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((byte) => byte.toString(16).padStart(2, \"0\")).join(\"\");\n};\nvar parseOAuth2TokenResponse = (value, accessTokenPath) => {\n if (!isObject(value)) {\n throw new Error(\"OAuth token endpoint returned a non-object response\");\n }\n const oauthError = Reflect.get(value, \"error\");\n if (typeof oauthError === \"string\" && oauthError.length > 0) {\n throw new Error(`OAuth token exchange failed: ${oauthError}`);\n }\n const response = { ...value };\n const nestedToken = accessTokenPath ? readPath(value, accessTokenPath) : undefined;\n if (typeof nestedToken === \"string\" && nestedToken.length > 0) {\n response.access_token = nestedToken;\n }\n if (typeof response.access_token !== \"string\" || response.access_token.length === 0) {\n throw new Error(\"OAuth token endpoint returned no access_token\");\n }\n for (const key of [\"refresh_token\", \"token_type\", \"scope\", \"id_token\"]) {\n const field = response[key];\n if (field !== undefined && typeof field !== \"string\") {\n throw new Error(`OAuth token endpoint returned invalid ${key}: expected string`);\n }\n }\n const expiresIn = response.expires_in;\n if (typeof expiresIn === \"string\" && expiresIn.trim() !== \"\") {\n response.expires_in = Number(expiresIn);\n }\n if (response.expires_in !== undefined && (typeof response.expires_in !== \"number\" || !Number.isFinite(response.expires_in) || response.expires_in < 0)) {\n throw new Error(\"OAuth token endpoint returned invalid expires_in: expected a non-negative number\");\n }\n return response;\n};\nvar readIdentityKey = (value, key) => {\n if (Array.isArray(value)) {\n if (!/^\\d+$/.test(key)) {\n throw new Error(`Invalid identity data shape: expected an array index, got ${key}`);\n }\n return value[Number(key)];\n }\n if (!isObject(value)) {\n throw new Error(`Invalid identity data shape: expected object, got ${typeof value}`);\n }\n return value[key];\n};\nvar extractPropFromIdentity = (identity, keys, propType) => {\n let value = identity;\n for (const key of keys) {\n value = readIdentityKey(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 cursor[key] = isObject(next) ? next : {};\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 DAYS_IN_APPLE_CLIENT_SECRET_LIFETIME = 180;\nvar HOURS_PER_DAY = 24;\nvar MINUTES_PER_HOUR = 60;\nvar SECONDS_PER_MINUTE = 60;\nvar APPLE_CLIENT_SECRET_LIFETIME_SECONDS = SECONDS_PER_MINUTE * MINUTES_PER_HOUR * HOURS_PER_DAY * DAYS_IN_APPLE_CLIENT_SECRET_LIFETIME;\nvar APPLE_ISSUER = \"https://appleid.apple.com\";\nvar MILLISECONDS_PER_SECOND = 1000;\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(/=+$/, \"\");\nvar encodeJwtPart = (value) => base64Url(new TextEncoder().encode(JSON.stringify(value)));\nvar createAppleClientSecret = async (credentials) => {\n const issuedAt = Math.floor(Date.now() / MILLISECONDS_PER_SECOND);\n const header = encodeJwtPart({\n alg: \"ES256\",\n kid: credentials.keyId,\n typ: \"JWT\"\n });\n const payload = encodeJwtPart({\n aud: APPLE_ISSUER,\n exp: issuedAt + APPLE_CLIENT_SECRET_LIFETIME_SECONDS,\n iat: issuedAt,\n iss: credentials.teamId,\n sub: credentials.clientId\n });\n const signingInput = `${header}.${payload}`;\n const privateKey = await crypto.subtle.importKey(\"pkcs8\", Uint8Array.from(credentials.pkcs8PrivateKey), { name: \"ECDSA\", namedCurve: \"P-256\" }, false, [\"sign\"]);\n const signature = await crypto.subtle.sign({ hash: \"SHA-256\", name: \"ECDSA\" }, privateKey, new TextEncoder().encode(signingInput));\n return `${signingInput}.${base64Url(signature)}`;\n};\n// src/oidc.ts\nvar ALG_ES256 = \"ES256\";\nvar ALG_RS256 = \"RS256\";\nvar CLOCK_SKEW_SECONDS = 60;\nvar DEFAULT_SCOPES = [\"openid\", \"email\", \"profile\"];\nvar JWKS_REFETCH_COOLDOWN_MS = 60000;\nvar JWT_SEGMENT_COUNT = 3;\nvar MILLISECONDS_PER_SECOND2 = 1000;\nvar trimTrailingSlash = (value) => value.endsWith(\"/\") ? value.slice(0, -1) : value;\nvar fetchJson = async (url) => {\n const response = await fetch(url, {\n headers: { accept: \"application/json\" }\n });\n if (!response.ok) {\n throw await createOAuth2FetchError(response);\n }\n return response.json();\n};\nvar decodeJsonSegment = (segment) => {\n const decoded = decodeBase64(segment);\n if (typeof decoded !== \"string\") {\n throw new Error(\"Expected a base64url-encoded JWT segment\");\n }\n const parsed = JSON.parse(decoded);\n if (typeof parsed !== \"object\" || parsed === null) {\n throw new Error(\"Expected a JWT segment to decode to a JSON object\");\n }\n return parsed;\n};\nvar importVerificationKey = (jwk, alg) => {\n if (alg === ALG_RS256) {\n return crypto.subtle.importKey(\"jwk\", jwk, { hash: \"SHA-256\", name: \"RSASSA-PKCS1-v1_5\" }, false, [\"verify\"]);\n }\n if (alg === ALG_ES256) {\n return crypto.subtle.importKey(\"jwk\", jwk, { name: \"ECDSA\", namedCurve: \"P-256\" }, false, [\"verify\"]);\n }\n throw new Error(`Unsupported id_token signing algorithm \"${alg}\"`);\n};\nvar verifySignature = (key, alg, signingInput, signature) => {\n const algorithm = alg === ALG_ES256 ? { hash: \"SHA-256\", name: \"ECDSA\" } : { name: \"RSASSA-PKCS1-v1_5\" };\n return crypto.subtle.verify(algorithm, key, new Uint8Array(signature), new TextEncoder().encode(signingInput));\n};\nvar selectKey = (jwks, kid) => jwks.find((jwk) => kid === undefined || jwk.kid === kid);\nvar assertClaims = (payload, expected) => {\n const aud = Reflect.get(payload, \"aud\");\n const azp = Reflect.get(payload, \"azp\");\n const exp = Reflect.get(payload, \"exp\");\n const iat = Reflect.get(payload, \"iat\");\n const iss = Reflect.get(payload, \"iss\");\n const nbf = Reflect.get(payload, \"nbf\");\n const sub = Reflect.get(payload, \"sub\");\n const audiences = Array.isArray(aud) ? aud : [aud];\n const nowSeconds = Math.floor(Date.now() / MILLISECONDS_PER_SECOND2);\n if (iss !== expected.issuer) {\n throw new Error('id_token \"iss\" does not match the provider issuer');\n }\n if (typeof sub !== \"string\" || sub.length === 0) {\n throw new Error('id_token is missing \"sub\"');\n }\n if (!audiences.includes(expected.audience)) {\n throw new Error('id_token \"aud\" does not include the client id');\n }\n if (audiences.some((audience) => typeof audience !== \"string\") || typeof aud !== \"string\" && !Array.isArray(aud)) {\n throw new Error('id_token \"aud\" must be a string or string array');\n }\n if (audiences.length > 1 && (typeof azp !== \"string\" || azp !== expected.audience)) {\n throw new Error('id_token with multiple audiences requires matching \"azp\"');\n }\n if (typeof exp !== \"number\" || exp + CLOCK_SKEW_SECONDS < nowSeconds) {\n throw new Error(\"id_token has expired\");\n }\n if (typeof iat !== \"number\") {\n throw new Error('id_token is missing numeric \"iat\"');\n }\n if (iat > nowSeconds + CLOCK_SKEW_SECONDS) {\n throw new Error('id_token \"iat\" is in the future');\n }\n if (nbf !== undefined && (typeof nbf !== \"number\" || nbf > nowSeconds + CLOCK_SKEW_SECONDS)) {\n throw new Error(\"id_token is not active yet\");\n }\n if (expected.nonce !== undefined && Reflect.get(payload, \"nonce\") !== expected.nonce) {\n throw new Error('id_token \"nonce\" does not match');\n }\n const claims = { ...payload, aud, exp, iss, sub };\n return claims;\n};\nvar verifyIdToken = async ({\n audience,\n idToken,\n issuer,\n jwks,\n nonce\n}) => {\n const segments = idToken.split(\".\");\n const [headerSegment, payloadSegment, signatureSegment] = segments;\n if (segments.length !== JWT_SEGMENT_COUNT || headerSegment === undefined || payloadSegment === undefined || signatureSegment === undefined) {\n throw new Error(\"Invalid id_token: expected three segments\");\n }\n const header = decodeJsonSegment(headerSegment);\n const alg = Reflect.get(header, \"alg\");\n const kid = Reflect.get(header, \"kid\");\n if (typeof alg !== \"string\") {\n throw new Error('id_token header is missing \"alg\"');\n }\n const jwk = selectKey(jwks, typeof kid === \"string\" ? kid : undefined);\n if (jwk === undefined) {\n throw new Error('No JWKS key matches the id_token \"kid\"');\n }\n const key = await importVerificationKey(jwk, alg);\n const signature = decodeBase64(signatureSegment, true);\n if (typeof signature === \"string\") {\n throw new Error(\"Failed to decode the id_token signature\");\n }\n const isValid = await verifySignature(key, alg, `${headerSegment}.${payloadSegment}`, signature);\n if (!isValid) {\n throw new Error(\"id_token signature verification failed\");\n }\n return assertClaims(decodeJsonSegment(payloadSegment), {\n audience,\n issuer,\n nonce\n });\n};\nvar toDiscoveryDocument = (value, expectedIssuer) => {\n if (typeof value !== \"object\" || value === null) {\n throw new Error(\"OIDC discovery document is not a JSON object\");\n }\n const issuer = Reflect.get(value, \"issuer\");\n const authorizationEndpoint = Reflect.get(value, \"authorization_endpoint\");\n const tokenEndpoint = Reflect.get(value, \"token_endpoint\");\n const jwksUri = Reflect.get(value, \"jwks_uri\");\n const userinfoEndpoint = Reflect.get(value, \"userinfo_endpoint\");\n if (typeof issuer !== \"string\" || typeof authorizationEndpoint !== \"string\" || typeof tokenEndpoint !== \"string\" || typeof jwksUri !== \"string\") {\n throw new Error(\"OIDC discovery document is missing required endpoints\");\n }\n if (trimTrailingSlash(issuer) !== trimTrailingSlash(expectedIssuer)) {\n throw new Error(`OIDC discovery issuer \"${issuer}\" does not match configured issuer \"${expectedIssuer}\"`);\n }\n return {\n authorization_endpoint: authorizationEndpoint,\n issuer,\n jwks_uri: jwksUri,\n token_endpoint: tokenEndpoint,\n userinfo_endpoint: typeof userinfoEndpoint === \"string\" ? userinfoEndpoint : undefined\n };\n};\nvar fetchDiscoveryDocument = async (issuer) => {\n const base = trimTrailingSlash(issuer);\n const document = await fetchJson(`${base}/.well-known/openid-configuration`);\n return toDiscoveryDocument(document, issuer);\n};\nvar fetchJwks = async (jwksUri) => {\n const body = await fetchJson(jwksUri);\n const value = Reflect.get(body ?? {}, \"keys\");\n if (!Array.isArray(value)) {\n throw new Error('JWKS response is missing a \"keys\" array');\n }\n const keys = value;\n return keys;\n};\nvar createOIDCClient = async (config) => {\n const discovery = await fetchDiscoveryDocument(config.issuer);\n const scopes = config.scopes !== undefined && config.scopes.length > 0 ? config.scopes : DEFAULT_SCOPES;\n let cachedJwks;\n let jwksFetchedAtMs = 0;\n const resolveJwks = async (forceRefresh) => {\n const isStale = Date.now() - jwksFetchedAtMs > JWKS_REFETCH_COOLDOWN_MS;\n if (cachedJwks === undefined || forceRefresh && isStale) {\n cachedJwks = await fetchJwks(discovery.jwks_uri);\n jwksFetchedAtMs = Date.now();\n }\n return cachedJwks;\n };\n const createAuthorizationUrl = async (options) => {\n const url = new URL(discovery.authorization_endpoint);\n const challenge = await createS256CodeChallenge(options.codeVerifier);\n const { searchParams } = url;\n searchParams.set(\"client_id\", config.clientId);\n searchParams.set(\"code_challenge\", challenge);\n searchParams.set(\"code_challenge_method\", \"S256\");\n searchParams.set(\"redirect_uri\", config.redirectUri);\n searchParams.set(\"response_type\", \"code\");\n searchParams.set(\"scope\", (options.scope ?? scopes).join(\" \"));\n searchParams.set(\"state\", options.state);\n if (options.nonce !== undefined) {\n searchParams.set(\"nonce\", options.nonce);\n }\n return url;\n };\n const validateAuthorizationCode = async (options) => {\n const body = new URLSearchParams;\n body.set(\"client_id\", config.clientId);\n body.set(\"client_secret\", config.clientSecret);\n body.set(\"code\", options.code);\n body.set(\"code_verifier\", options.codeVerifier);\n body.set(\"grant_type\", \"authorization_code\");\n body.set(\"redirect_uri\", config.redirectUri);\n const response = await fetch(discovery.token_endpoint, {\n body,\n headers: {\n accept: \"application/json\",\n \"content-type\": \"application/x-www-form-urlencoded\"\n },\n method: \"POST\"\n });\n if (!response.ok) {\n throw await createOAuth2FetchError(response);\n }\n const tokens = parseOAuth2TokenResponse(await response.json());\n return tokens;\n };\n const verifyToken = async (idToken, options) => {\n const jwks = await resolveJwks(false);\n const params = {\n audience: config.clientId,\n idToken,\n issuer: discovery.issuer,\n nonce: options?.nonce\n };\n try {\n return await verifyIdToken({ ...params, jwks });\n } catch (error) {\n const refreshed = await resolveJwks(true);\n if (refreshed === jwks)\n throw error;\n return verifyIdToken({ ...params, jwks: refreshed });\n }\n };\n const fetchUserProfile = async (accessToken) => {\n if (discovery.userinfo_endpoint === undefined) {\n throw new Error(\"OIDC provider does not expose a userinfo endpoint\");\n }\n const response = await fetch(discovery.userinfo_endpoint, {\n headers: {\n accept: \"application/json\",\n authorization: `Bearer ${accessToken}`\n }\n });\n if (!response.ok) {\n throw new Error(`OIDC userinfo request failed with status ${response.status}`);\n }\n const profile = await response.json();\n return profile;\n };\n return {\n createAuthorizationUrl,\n discovery,\n fetchUserProfile,\n validateAuthorizationCode,\n verifyIdToken: verifyToken\n };\n};\n// src/providerOptions.ts\nvar oidcProviderOptions = Object.keys(providers).filter(isOIDCProviderOption);\nvar pkceProviderOptions = Object.keys(providers).filter(isPKCEProviderOption);\nvar profileProviderOptions = Object.keys(providers).filter(isProfileProviderOption);\nvar providerOptions = Object.keys(providers).filter(isValidProviderOption);\nvar refreshableProviderOptions = Object.keys(providers).filter(isRefreshableProviderOption);\nvar revocableProviderOptions = Object.keys(providers).filter(isRevocableProviderOption);\nvar scopeRequiredProviderOptions = Object.keys(providers).filter(isScopeRequiredProviderOption);\n\n// src/index.ts\nvar buildOAuth2Client = async (meta, config) => {\n const isConfigPropertyFunction = (cfgProp) => typeof cfgProp === \"function\";\n const resolveConfigProp = async (cfgProp) => {\n const result = isConfigPropertyFunction(cfgProp) ? cfgProp(config) : cfgProp;\n return result;\n };\n const resolveClientSecret = async () => {\n if (meta.createClientSecret) {\n return resolveConfigProp(meta.createClientSecret);\n }\n return hasClientSecret(config) ? config.clientSecret : undefined;\n };\n const authorizationUrl = await resolveConfigProp(meta.authorizationUrl);\n const tokenUrl = await resolveConfigProp(meta.tokenRequest.url);\n const client = {\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 url.searchParams.set(meta.scopeParamName ?? \"scope\", scope.join(meta.scopeDelimiter ?? \" \"));\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(await 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 if (!profileRequest) {\n throw new Error(\"OIDC provider exposes identity through the id_token and does not define a UserInfo endpoint\");\n }\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(([, value]) => value !== \"\"));\n if (authIn === \"header\") {\n profileHeaders.Authorization = `Bearer ${accessToken}`;\n } else if (authIn === \"path\") {\n endpoint.pathname = `${endpoint.pathname.replace(/\\/+$/, \"\")}/${encodeURIComponent(accessToken)}`;\n } else {\n endpoint.searchParams.append(\"access_token\", accessToken);\n }\n const init = { headers: profileHeaders, method };\n if (method === \"POST\" && resolvedBody !== undefined) {\n profileHeaders[\"Content-Type\"] = encoding;\n init.body = encoding === \"application/json\" ? JSON.stringify(resolvedBody) : new URLSearchParams(resolvedBody).toString();\n }\n const profileTarget = endpoint.toString();\n const response = await fetch(profileTarget, 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 const clientSecretValue = await resolveClientSecret();\n if (clientSecretValue) {\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 parseOAuth2TokenResponse(await response.json());\n },\n resolveRevocationInput(context) {\n const { revocationRequest } = meta;\n if (!revocationRequest) {\n throw new Error(\"Token revocation not defined for this provider\");\n }\n const inputSource = revocationRequest.inputSource ?? \"accessToken\";\n const input = context[inputSource];\n if (input === undefined) {\n throw new Error(`Revocation requires ${inputSource}, but it was not provided`);\n }\n const expectsNumber = revocationRequest.authIn !== \"header\" && revocationRequest.inputType === \"number\";\n if (expectsNumber && (typeof input !== \"number\" || !Number.isFinite(input))) {\n throw new TypeError(\"This provider requires a numeric revocation input\");\n }\n if (!expectsNumber && typeof input !== \"string\") {\n throw new TypeError(\"This provider requires a string revocation input\");\n }\n return input;\n },\n async revokeToken(input) {\n const { revocationRequest } = meta;\n if (!revocationRequest) {\n throw new Error(\"Token revocation not defined for this provider\");\n }\n if (revocationRequest.authIn !== \"header\" && revocationRequest.inputType === \"number\" && (typeof input !== \"number\" || !Number.isFinite(input))) {\n throw new TypeError(\"This provider requires a numeric revocation input\");\n }\n const {\n url,\n authIn,\n body,\n encoding,\n headers,\n includeClientCredentials = true,\n tokenParamName,\n validateResponse\n } = revocationRequest;\n const endpoint = await resolveConfigProp(url);\n const resolvedBody = await resolveConfigProp(body);\n const revocationBody = resolvedBody === undefined ? undefined : new URLSearchParams(resolvedBody);\n const revocationHeaders = new Headers(headers && await resolveConfigProp(headers));\n const { clientId } = config;\n const clientSecret = await resolveClientSecret();\n let request;\n if (authIn === \"body\") {\n const bodyWithToken = revocationBody ?? new URLSearchParams;\n bodyWithToken.set(tokenParamName, String(input));\n const hasAuthorizationHeader = revocationHeaders.has(\"Authorization\");\n if (includeClientCredentials && !hasAuthorizationHeader)\n bodyWithToken.set(\"client_id\", clientId);\n if (includeClientCredentials && !hasAuthorizationHeader && clientSecret)\n bodyWithToken.set(\"client_secret\", clientSecret);\n request = createOAuth2Request({\n authIn: hasAuthorizationHeader || !includeClientCredentials ? \"query\" : \"body\",\n body: bodyWithToken,\n clientId,\n clientSecret,\n encoding,\n headers: revocationHeaders,\n url: endpoint.toString()\n });\n } else if (authIn === \"header\") {\n revocationHeaders.set(\"Authorization\", `Bearer ${String(input)}`);\n request = createOAuth2Request({\n authIn: \"query\",\n body: revocationBody,\n clientId,\n encoding,\n headers: revocationHeaders,\n url: endpoint.toString()\n });\n } else {\n const queryEndpoint = new URL(endpoint);\n queryEndpoint.searchParams.set(tokenParamName, String(input));\n request = createOAuth2Request({\n authIn: \"query\",\n body: revocationBody,\n clientId,\n encoding,\n headers: revocationHeaders,\n url: queryEndpoint.toString()\n });\n }\n const response = await fetch(request);\n if (!response.ok)\n throw await createOAuth2FetchError(response);\n if (validateResponse) {\n await validateResponse(await response.json().catch(() => {\n return;\n }));\n }\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: await resolveClientSecret(),\n encoding,\n url: tokenUrl\n });\n const response = await fetch(request);\n if (!response.ok)\n throw await createOAuth2FetchError(response);\n return parseOAuth2TokenResponse(await response.json(), meta.accessTokenPath);\n }\n };\n if (!meta.profileRequest) {\n Reflect.deleteProperty(client, \"fetchUserProfile\");\n }\n if (!meta.isRefreshable) {\n Reflect.deleteProperty(client, \"refreshAccessToken\");\n }\n if (!meta.revocationRequest) {\n Reflect.deleteProperty(client, \"resolveRevocationInput\");\n Reflect.deleteProperty(client, \"revokeToken\");\n }\n return client;\n};\nvar createCustomOAuth2Client = (providerConfig, credentials) => buildOAuth2Client(providerConfig, credentials);\nvar createOAuth2Client = (providerName, config) => buildOAuth2Client(providers[providerName], config);\nexport {\n verifyIdToken,\n scopeRequiredProviderOptions,\n revocableProviderOptions,\n refreshableProviderOptions,\n providers,\n providerOptions,\n profileProviderOptions,\n pkceProviderOptions,\n parseOAuth2TokenResponse,\n oidcProviderOptions,\n normalizeProviderIdentity,\n isValidProviderOption,\n isScopeRequiredProviderOption,\n isRevocableProviderOption,\n isRevocableOAuth2Client,\n isRefreshableProviderOption,\n isRefreshableOAuth2Client,\n isProfileProviderOption,\n isProfileOAuth2Client,\n isPKCEProviderOption,\n isObject,\n isOIDCProviderOption,\n isExpectedType,\n hmacSha256,\n hasClientSecret,\n getWithingsSignatureParams,\n getProviderSubjectKeys,\n generateState,\n generateCodeVerifier,\n extractPropFromIdentity,\n encodeBase64,\n defineProviders,\n defineProvider,\n decodeJWT,\n decodeBase64,\n createS256CodeChallenge,\n createOIDCClient,\n createOAuth2Request,\n createOAuth2FetchError,\n createOAuth2Client,\n createCustomOAuth2Client,\n createAppleClientSecret,\n base64Url,\n assertWithingsSuccess\n};\n",
6
6
  "import {\n\tCredentialsFor,\n\tOAuth2Client,\n\tProviderOption,\n\tcreateCustomOAuth2Client,\n\tisValidProviderOption,\n\tproviders\n} from 'citra';\nimport {\n\tCustomProviderClientConfiguration,\n\tCustomProvidersConfiguration,\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\nconst isCustomClientConfig = (\n\tvalue: unknown\n): value is CustomProviderClientConfiguration =>\n\tisRecord(value) && 'credentials' in value && 'providerConfig' in value;\n\nconst normalizeCustomClients = (\n\tproviderName: string,\n\tproviderConfig: CustomProvidersConfiguration[string]\n) => {\n\tif (isCustomClientConfig(providerConfig)) return { '': providerConfig };\n\tif (!isRecord(providerConfig) || Object.keys(providerConfig).length === 0) {\n\t\tthrow new Error(\n\t\t\t`Invalid custom provider configuration for ${providerName}`\n\t\t);\n\t}\n\tObject.entries(providerConfig).forEach(([clientName, clientConfig]) => {\n\t\tif (!isCustomClientConfig(clientConfig)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Invalid custom client configuration for ${providerName}.${clientName}`\n\t\t\t);\n\t\t}\n\t});\n\n\treturn providerConfig;\n};\n\nconst buildCustomProviderGroups = async (\n\tcustomProviders: CustomProvidersConfiguration\n) => {\n\tconst groups = await Promise.all(\n\t\tObject.entries(customProviders).map(async ([providerName, config]) => {\n\t\t\tif (isValidProviderOption(providerName)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Custom provider \"${providerName}\" collides with a built-in provider — configure it under providersConfiguration instead`\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst clients = normalizeCustomClients(providerName, config);\n\t\t\tconst entries = await Promise.all(\n\t\t\t\tObject.entries(clients).map(\n\t\t\t\t\tasync ([clientName, clientConfig]) => {\n\t\t\t\t\t\tconst providerInstance = await createCustomOAuth2Client(\n\t\t\t\t\t\t\tclientConfig.providerConfig,\n\t\t\t\t\t\t\tclientConfig.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\tproviderConfiguration:\n\t\t\t\t\t\t\t\t\tclientConfig.providerConfig,\n\t\t\t\t\t\t\t\tproviderInstance,\n\t\t\t\t\t\t\t\trequiresPKCE:\n\t\t\t\t\t\t\t\t\tclientConfig.providerConfig.PKCEMethod !==\n\t\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\tscope: clientConfig.scope,\n\t\t\t\t\t\t\t\tsearchParams: clientConfig.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 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\tcustomProviders?: CustomProvidersConfiguration\n) => {\n\tconst customGroups = customProviders\n\t\t? await buildCustomProviderGroups(customProviders)\n\t\t: {};\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\tproviderConfiguration: providers[providerName],\n\t\t\t\t\t\t\t\tproviderInstance,\n\t\t\t\t\t\t\t\trequiresPKCE:\n\t\t\t\t\t\t\t\t\tproviders[providerName].PKCEMethod !==\n\t\t\t\t\t\t\t\t\tundefined,\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 { ...customGroups, ...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",
7
- "import type {\n\tLinkedProviderAccessTokenLease,\n\tLinkedProviderBinding,\n\tLinkedProviderBindingStore,\n\tLinkedProviderCredentialFailureReport,\n\tLinkedProviderCredentialResolver,\n\tLinkedProviderGrant,\n\tLinkedProviderGrantStore,\n\tJsonObject,\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: JsonObject | undefined,\n\treport: LinkedProviderCredentialFailureReport,\n\tnow: number\n) => ({\n\t...(metadata ?? {}),\n\tlastCredentialFailureAt: now,\n\tlastCredentialFailureCode: report.code,\n\t...(report.message === undefined\n\t\t? {}\n\t\t: { lastCredentialFailureMessage: report.message }),\n\t...(report.retryAt === undefined\n\t\t? {}\n\t\t: { lastCredentialFailureRetryAt: 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\treturn bindings.reduce<\n\t\t\tPromise<ResolvedLinkedProviderCredential | null>\n\t\t>(async (pendingCredential, binding) => {\n\t\t\tconst credential = await pendingCredential;\n\t\t\tif (credential) return credential;\n\n\t\t\treturn resolveBindingCredential(grantStore, binding, input);\n\t\t}, Promise.resolve(null));\n\t}\n});\n",
7
+ "import type {\n\tLinkedProviderAccessTokenLease,\n\tLinkedProviderBinding,\n\tLinkedProviderBindingStore,\n\tLinkedProviderCredentialFailureReport,\n\tLinkedProviderCredentialResolver,\n\tLinkedProviderGrant,\n\tLinkedProviderGrantStore,\n\tJsonObject,\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\t/**\n\t * What a reported failure does to the stored grant and binding.\n\t *\n\t * `latch`, the default, marks an unauthorized or revoked credential\n\t * unusable, which is what a sign-in identity needs: nothing works again\n\t * until the person authorizes again.\n\t *\n\t * `record` writes the same failure detail and leaves both statuses alone.\n\t * A connector credential wants this. Its calls fail for reasons that live\n\t * on the provider's side -- an app installation dropped from a repository,\n\t * a project unshared -- and latching turns one refused call into a\n\t * connection that stays shut until it is rebuilt, which does not fix\n\t * anything because the credential was never the problem.\n\t */\n\tfailurePolicy?: 'latch' | 'record';\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: JsonObject | undefined,\n\treport: LinkedProviderCredentialFailureReport,\n\tnow: number\n) => ({\n\t...(metadata ?? {}),\n\tlastCredentialFailureAt: now,\n\tlastCredentialFailureCode: report.code,\n\t...(report.message === undefined\n\t\t? {}\n\t\t: { lastCredentialFailureMessage: report.message }),\n\t...(report.retryAt === undefined\n\t\t? {}\n\t\t: { lastCredentialFailureRetryAt: 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\tfailurePolicy: 'latch' | 'record'\n): LinkedProviderGrant => ({\n\t...grant,\n\tlastRefreshError: report.message ?? report.code,\n\tmetadata: annotateFailureMetadata(grant.metadata, report, currentTime),\n\tstatus:\n\t\tfailurePolicy === 'record'\n\t\t\t? grant.status\n\t\t\t: resolveGrantFailureStatus(grant, report),\n\tupdatedAt: currentTime\n});\n\nconst buildNextBinding = (\n\tbinding: LinkedProviderBinding,\n\treport: LinkedProviderCredentialFailureReport,\n\tcurrentTime: number,\n\tfailurePolicy: 'latch' | 'record'\n): LinkedProviderBinding => ({\n\t...binding,\n\tmetadata: annotateFailureMetadata(binding.metadata, report, currentTime),\n\tstatus:\n\t\tfailurePolicy === 'record'\n\t\t\t? binding.status\n\t\t\t: 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\tfailurePolicy = 'latch',\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, failurePolicy)\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, failurePolicy)\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\treturn bindings.reduce<\n\t\t\tPromise<ResolvedLinkedProviderCredential | null>\n\t\t>(async (pendingCredential, binding) => {\n\t\t\tconst credential = await pendingCredential;\n\t\t\tif (credential) return credential;\n\n\t\t\treturn resolveBindingCredential(grantStore, binding, input);\n\t\t}, Promise.resolve(null));\n\t}\n});\n",
8
8
  "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",
9
- "import type {\n\tLinkedProviderBinding,\n\tLinkedProviderBindingStore,\n\tLinkedProviderGrant,\n\tLinkedProviderGrantStore,\n\tJsonObject\n} from '@absolutejs/linked-providers';\nimport type { OAuth2ConfigurationOptions } from '../types';\nimport { createOAuthLinkedProviderCredentialResolver } from './oauthResolver';\n\nexport type OAuthLinkedProviderAccount = {\n\taccessToken?: string;\n\tauthProviderKey: string;\n\tcreatedAt: number;\n\texpiresAt?: number;\n\tgrantedScopes: string[];\n\tid: string;\n\tmetadata?: JsonObject;\n\townerRef: string;\n\tproviderSubject: string;\n\trefreshToken?: string;\n\tstatus: LinkedProviderGrant['status'];\n\ttokenType?: string;\n\tupdatedAt: number;\n};\n\nexport type OAuthLinkedProviderAccountStore = {\n\tgetAccount: (id: string) => Promise<OAuthLinkedProviderAccount | undefined>;\n\tlistAccountsByOwner: (\n\t\townerRef: string\n\t) => Promise<OAuthLinkedProviderAccount[]>;\n\tsaveAccount: (account: OAuthLinkedProviderAccount) => Promise<void>;\n};\n\nexport type CreateOAuthAccountLinkedProviderCredentialResolverOptions = {\n\taccountStore: OAuthLinkedProviderAccountStore;\n\tprovidersConfiguration: OAuth2ConfigurationOptions;\n\tnow?: () => number;\n};\n\nconst bindingId = (accountId: string) => `oauth-account:${accountId}`;\nconst accountIdFromBinding = (id: string) => {\n\tconst prefix = 'oauth-account:';\n\n\treturn id.startsWith(prefix) ? id.slice(prefix.length) : null;\n};\n\nconst toGrant = (account: OAuthLinkedProviderAccount): LinkedProviderGrant => ({\n\taccessTokenCiphertext: account.accessToken,\n\tauthProviderKey: account.authProviderKey,\n\tcreatedAt: account.createdAt,\n\texpiresAt: account.expiresAt,\n\tgrantedScopes: [...account.grantedScopes],\n\tid: account.id,\n\tmetadata: account.metadata,\n\townerRef: account.ownerRef,\n\tproviderFamily: account.authProviderKey,\n\tproviderSubject: account.providerSubject,\n\trefreshTokenCiphertext: account.refreshToken,\n\tstatus: account.status,\n\ttokenType: account.tokenType,\n\tupdatedAt: account.updatedAt\n});\n\nconst toBinding = (\n\taccount: OAuthLinkedProviderAccount\n): LinkedProviderBinding => ({\n\tavailableScopes: [...account.grantedScopes],\n\tconnectorProvider: account.authProviderKey,\n\tcreatedAt: account.createdAt,\n\texternalAccountId: account.providerSubject,\n\texternalAccountType: 'user',\n\tgrantId: account.id,\n\tid: bindingId(account.id),\n\tmetadata: account.metadata,\n\tstatus:\n\t\taccount.status === 'revoked' || account.status === 'error'\n\t\t\t? 'disconnected'\n\t\t\t: 'active',\n\tupdatedAt: account.updatedAt\n});\n\nconst accountWithGrant = (\n\taccount: OAuthLinkedProviderAccount,\n\tgrant: LinkedProviderGrant\n): OAuthLinkedProviderAccount => ({\n\t...account,\n\taccessToken: grant.accessTokenCiphertext,\n\tauthProviderKey: grant.authProviderKey,\n\texpiresAt: grant.expiresAt,\n\tgrantedScopes: [...grant.grantedScopes],\n\tmetadata: grant.metadata,\n\townerRef: grant.ownerRef,\n\tproviderSubject: grant.providerSubject,\n\trefreshToken: grant.refreshTokenCiphertext,\n\tstatus: grant.status,\n\ttokenType: grant.tokenType,\n\tupdatedAt: grant.updatedAt\n});\n\nconst accountStatusForBinding = (\n\taccount: OAuthLinkedProviderAccount,\n\tbinding: LinkedProviderBinding\n) => {\n\tif (binding.status === 'disconnected') return 'revoked';\n\tif (binding.status === 'restricted') return 'error';\n\n\treturn account.status;\n};\n\nexport const createOAuthAccountLinkedProviderCredentialResolver = async ({\n\taccountStore,\n\tnow,\n\tprovidersConfiguration\n}: CreateOAuthAccountLinkedProviderCredentialResolverOptions) => {\n\tconst grantStore: LinkedProviderGrantStore = {\n\t\tgetGrant: async (id) => {\n\t\t\tconst account = await accountStore.getAccount(id);\n\n\t\t\treturn account ? toGrant(account) : undefined;\n\t\t},\n\t\tlistGrantsByOwner: async (ownerRef) =>\n\t\t\t(await accountStore.listAccountsByOwner(ownerRef)).map(toGrant),\n\t\tsaveGrant: async (grant) => {\n\t\t\tconst account = await accountStore.getAccount(grant.id);\n\t\t\tif (!account)\n\t\t\t\tthrow new Error('OAuth linked account is unavailable');\n\t\t\tawait accountStore.saveAccount(accountWithGrant(account, grant));\n\t\t}\n\t};\n\tconst bindingStore: LinkedProviderBindingStore = {\n\t\tgetBinding: async (id) => {\n\t\t\tconst accountId = accountIdFromBinding(id);\n\t\t\tif (!accountId) return undefined;\n\t\t\tconst account = await accountStore.getAccount(accountId);\n\n\t\t\treturn account ? toBinding(account) : undefined;\n\t\t},\n\t\tlistBindingsByGrant: async (grantId) => {\n\t\t\tconst account = await accountStore.getAccount(grantId);\n\n\t\t\treturn account ? [toBinding(account)] : [];\n\t\t},\n\t\tlistBindingsByOwner: async (ownerRef) =>\n\t\t\t(await accountStore.listAccountsByOwner(ownerRef)).map(toBinding),\n\t\tsaveBinding: async (binding) => {\n\t\t\tconst account = await accountStore.getAccount(binding.grantId);\n\t\t\tif (!account)\n\t\t\t\tthrow new Error('OAuth linked account is unavailable');\n\t\t\tawait accountStore.saveAccount({\n\t\t\t\t...account,\n\t\t\t\tmetadata: binding.metadata,\n\t\t\t\tstatus: accountStatusForBinding(account, binding),\n\t\t\t\tupdatedAt: binding.updatedAt\n\t\t\t});\n\t\t}\n\t};\n\n\treturn createOAuthLinkedProviderCredentialResolver({\n\t\tbindingStore,\n\t\tgrantStore,\n\t\t...(now ? { now } : {}),\n\t\tprovidersConfiguration\n\t});\n};\n"
9
+ "import type {\n\tLinkedProviderBinding,\n\tLinkedProviderBindingStore,\n\tLinkedProviderGrant,\n\tLinkedProviderGrantStore,\n\tJsonObject\n} from '@absolutejs/linked-providers';\nimport type { OAuth2ConfigurationOptions } from '../types';\nimport { createOAuthLinkedProviderCredentialResolver } from './oauthResolver';\n\nexport type OAuthLinkedProviderAccount = {\n\taccessToken?: string;\n\tauthProviderKey: string;\n\tcreatedAt: number;\n\texpiresAt?: number;\n\tgrantedScopes: string[];\n\tid: string;\n\tmetadata?: JsonObject;\n\townerRef: string;\n\tproviderSubject: string;\n\trefreshToken?: string;\n\tstatus: LinkedProviderGrant['status'];\n\ttokenType?: string;\n\tupdatedAt: number;\n};\n\nexport type OAuthLinkedProviderAccountStore = {\n\tgetAccount: (id: string) => Promise<OAuthLinkedProviderAccount | undefined>;\n\tlistAccountsByOwner: (\n\t\townerRef: string\n\t) => Promise<OAuthLinkedProviderAccount[]>;\n\tsaveAccount: (account: OAuthLinkedProviderAccount) => Promise<void>;\n};\n\nexport type CreateOAuthAccountLinkedProviderCredentialResolverOptions = {\n\taccountStore: OAuthLinkedProviderAccountStore;\n\tprovidersConfiguration: OAuth2ConfigurationOptions;\n\tnow?: () => number;\n};\n\nconst bindingId = (accountId: string) => `oauth-account:${accountId}`;\nconst accountIdFromBinding = (id: string) => {\n\tconst prefix = 'oauth-account:';\n\n\treturn id.startsWith(prefix) ? id.slice(prefix.length) : null;\n};\n\nconst toGrant = (account: OAuthLinkedProviderAccount): LinkedProviderGrant => ({\n\taccessTokenCiphertext: account.accessToken,\n\tauthProviderKey: account.authProviderKey,\n\tcreatedAt: account.createdAt,\n\texpiresAt: account.expiresAt,\n\tgrantedScopes: [...account.grantedScopes],\n\tid: account.id,\n\tmetadata: account.metadata,\n\townerRef: account.ownerRef,\n\tproviderFamily: account.authProviderKey,\n\tproviderSubject: account.providerSubject,\n\trefreshTokenCiphertext: account.refreshToken,\n\tstatus: account.status,\n\ttokenType: account.tokenType,\n\tupdatedAt: account.updatedAt\n});\n\nconst toBinding = (\n\taccount: OAuthLinkedProviderAccount\n): LinkedProviderBinding => ({\n\tavailableScopes: [...account.grantedScopes],\n\tconnectorProvider: account.authProviderKey,\n\tcreatedAt: account.createdAt,\n\texternalAccountId: account.providerSubject,\n\texternalAccountType: 'user',\n\tgrantId: account.id,\n\tid: bindingId(account.id),\n\tmetadata: account.metadata,\n\tstatus:\n\t\taccount.status === 'revoked' || account.status === 'error'\n\t\t\t? 'disconnected'\n\t\t\t: 'active',\n\tupdatedAt: account.updatedAt\n});\n\nconst accountWithGrant = (\n\taccount: OAuthLinkedProviderAccount,\n\tgrant: LinkedProviderGrant\n): OAuthLinkedProviderAccount => ({\n\t...account,\n\taccessToken: grant.accessTokenCiphertext,\n\tauthProviderKey: grant.authProviderKey,\n\texpiresAt: grant.expiresAt,\n\tgrantedScopes: [...grant.grantedScopes],\n\tmetadata: grant.metadata,\n\townerRef: grant.ownerRef,\n\tproviderSubject: grant.providerSubject,\n\trefreshToken: grant.refreshTokenCiphertext,\n\tstatus: grant.status,\n\ttokenType: grant.tokenType,\n\tupdatedAt: grant.updatedAt\n});\n\nconst accountStatusForBinding = (\n\taccount: OAuthLinkedProviderAccount,\n\tbinding: LinkedProviderBinding\n) => {\n\tif (binding.status === 'disconnected') return 'revoked';\n\tif (binding.status === 'restricted') return 'error';\n\n\treturn account.status;\n};\n\nexport const createOAuthAccountLinkedProviderCredentialResolver = async ({\n\taccountStore,\n\tnow,\n\tprovidersConfiguration\n}: CreateOAuthAccountLinkedProviderCredentialResolverOptions) => {\n\tconst grantStore: LinkedProviderGrantStore = {\n\t\tgetGrant: async (id) => {\n\t\t\tconst account = await accountStore.getAccount(id);\n\n\t\t\treturn account ? toGrant(account) : undefined;\n\t\t},\n\t\tlistGrantsByOwner: async (ownerRef) =>\n\t\t\t(await accountStore.listAccountsByOwner(ownerRef)).map(toGrant),\n\t\tsaveGrant: async (grant) => {\n\t\t\tconst account = await accountStore.getAccount(grant.id);\n\t\t\tif (!account)\n\t\t\t\tthrow new Error('OAuth linked account is unavailable');\n\t\t\tawait accountStore.saveAccount(accountWithGrant(account, grant));\n\t\t}\n\t};\n\tconst bindingStore: LinkedProviderBindingStore = {\n\t\tgetBinding: async (id) => {\n\t\t\tconst accountId = accountIdFromBinding(id);\n\t\t\tif (!accountId) return undefined;\n\t\t\tconst account = await accountStore.getAccount(accountId);\n\n\t\t\treturn account ? toBinding(account) : undefined;\n\t\t},\n\t\tlistBindingsByGrant: async (grantId) => {\n\t\t\tconst account = await accountStore.getAccount(grantId);\n\n\t\t\treturn account ? [toBinding(account)] : [];\n\t\t},\n\t\tlistBindingsByOwner: async (ownerRef) =>\n\t\t\t(await accountStore.listAccountsByOwner(ownerRef)).map(toBinding),\n\t\tsaveBinding: async (binding) => {\n\t\t\tconst account = await accountStore.getAccount(binding.grantId);\n\t\t\tif (!account)\n\t\t\t\tthrow new Error('OAuth linked account is unavailable');\n\t\t\tawait accountStore.saveAccount({\n\t\t\t\t...account,\n\t\t\t\tmetadata: binding.metadata,\n\t\t\t\tstatus: accountStatusForBinding(account, binding),\n\t\t\t\tupdatedAt: binding.updatedAt\n\t\t\t});\n\t\t}\n\t};\n\n\treturn createOAuthLinkedProviderCredentialResolver({\n\t\tbindingStore,\n\t\tgrantStore,\n\t\t...(now ? { now } : {}),\n\t\tprovidersConfiguration\n\t});\n};\n",
10
+ "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",
11
+ "//#region src/entity.ts\nconst entityKind = Symbol.for(\"drizzle:entityKind\");\nconst hasOwnEntityKind = Symbol.for(\"drizzle:hasOwnEntityKind\");\nfunction is(value, type) {\n\tif (!value || typeof value !== \"object\") return false;\n\tif (value instanceof type) return true;\n\tif (!Object.prototype.hasOwnProperty.call(type, entityKind)) throw new Error(`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\tlet cls = Object.getPrototypeOf(value)?.constructor;\n\tif (cls) while (cls) {\n\t\tif (entityKind in cls && cls[entityKind] === type[entityKind]) return true;\n\t\tcls = Object.getPrototypeOf(cls);\n\t}\n\treturn false;\n}\n\n//#endregion\nexport { entityKind, hasOwnEntityKind, is };\n//# sourceMappingURL=entity.js.map",
12
+ "//#region src/column-common.ts\nconst OriginalColumn = Symbol.for(\"drizzle:OriginalColumn\");\n\n//#endregion\nexport { OriginalColumn };\n//# sourceMappingURL=column-common.js.map",
13
+ "import { entityKind } from \"./entity.js\";\nimport { OriginalColumn } from \"./column-common.js\";\n\n//#region src/column.ts\nconst noop = (v) => v;\nnoop.isNoop = true;\nvar Column = class {\n\tstatic [entityKind] = \"Column\";\n\t/** @internal */\n\tcodec;\n\tname;\n\tkeyAsName;\n\tprimary;\n\tnotNull;\n\tdefault;\n\tdefaultFn;\n\tonUpdateFn;\n\thasDefault;\n\tisUnique;\n\tuniqueName;\n\tuniqueType;\n\tdataType;\n\tcolumnType;\n\tenumValues = void 0;\n\tgenerated = void 0;\n\tgeneratedIdentity = void 0;\n\tlength;\n\tisLengthExact;\n\tisAlias;\n\t/** @internal */\n\tconfig;\n\t/** @internal */\n\ttable;\n\t/** @internal */\n\tonInit() {}\n\tconstructor(table, config) {\n\t\tthis.config = config;\n\t\tthis.onInit();\n\t\tthis.table = table;\n\t\tthis.name = config.name;\n\t\tthis.isAlias = false;\n\t\tthis.keyAsName = config.keyAsName;\n\t\tthis.notNull = config.notNull;\n\t\tthis.default = config.default;\n\t\tthis.defaultFn = config.defaultFn;\n\t\tthis.onUpdateFn = config.onUpdateFn;\n\t\tthis.hasDefault = config.hasDefault;\n\t\tthis.primary = config.primaryKey;\n\t\tthis.isUnique = config.isUnique;\n\t\tthis.uniqueName = config.uniqueName;\n\t\tthis.uniqueType = config.uniqueType;\n\t\tthis.dataType = config.dataType;\n\t\tthis.columnType = config.columnType;\n\t\tthis.generated = config.generated;\n\t\tthis.generatedIdentity = config.generatedIdentity;\n\t\tthis.length = config[\"length\"];\n\t\tthis.isLengthExact = config[\"isLengthExact\"];\n\t}\n\tmapFromDriverValue = noop;\n\tmapToDriverValue = noop;\n\t/** @internal */\n\tpostBuild() {\n\t\treturn this;\n\t}\n\t/** @internal */\n\tshouldDisableInsert() {\n\t\treturn this.config.generated !== void 0 && this.config.generated.type !== \"byDefault\";\n\t}\n\t/** @internal */\n\t[OriginalColumn]() {\n\t\treturn this;\n\t}\n};\nfunction getColumnTable(column) {\n\treturn column.table;\n}\n\n//#endregion\nexport { Column, getColumnTable };\n//# sourceMappingURL=column.js.map",
14
+ "//#region src/table.utils.ts\n/** @internal */\nconst TableName = Symbol.for(\"drizzle:Name\");\n\n//#endregion\nexport { TableName };\n//# sourceMappingURL=table.utils.js.map",
15
+ "import { entityKind } from \"./entity.js\";\nimport { TableName } from \"./table.utils.js\";\n\n//#region src/table.ts\n/** @internal */\nconst TableSchema = Symbol.for(\"drizzle:Schema\");\n/** @internal */\nconst TableColumns = Symbol.for(\"drizzle:Columns\");\n/** @internal */\nconst ExtraConfigColumns = Symbol.for(\"drizzle:ExtraConfigColumns\");\n/** @internal */\nconst OriginalName = Symbol.for(\"drizzle:OriginalName\");\n/** @internal */\nconst BaseName = Symbol.for(\"drizzle:BaseName\");\n/** @internal */\nconst IsAlias = Symbol.for(\"drizzle:IsAlias\");\n/** @internal */\nconst ExtraConfigBuilder = Symbol.for(\"drizzle:ExtraConfigBuilder\");\nconst IsDrizzleTable = Symbol.for(\"drizzle:IsDrizzleTable\");\nvar Table = class {\n\tstatic [entityKind] = \"Table\";\n\t/** @internal */\n\tstatic Symbol = {\n\t\tName: TableName,\n\t\tSchema: TableSchema,\n\t\tOriginalName,\n\t\tColumns: TableColumns,\n\t\tExtraConfigColumns,\n\t\tBaseName,\n\t\tIsAlias,\n\t\tExtraConfigBuilder\n\t};\n\t/**\n\t* @internal\n\t* Can be changed if the table is aliased.\n\t*/\n\t[TableName];\n\t/**\n\t* @internal\n\t* Used to store the original name of the table, before any aliasing.\n\t*/\n\t[OriginalName];\n\t/** @internal */\n\t[TableSchema];\n\t/** @internal */\n\t[TableColumns];\n\t/** @internal */\n\t[ExtraConfigColumns];\n\t/**\n\t* @internal\n\t* Used to store the table name before the transformation via the `tableCreator` functions.\n\t*/\n\t[BaseName];\n\t/** @internal */\n\t[IsAlias] = false;\n\t/** @internal */\n\t[IsDrizzleTable] = true;\n\t/** @internal */\n\t[ExtraConfigBuilder] = void 0;\n\tconstructor(name, schema, baseName) {\n\t\tthis[TableName] = this[OriginalName] = name;\n\t\tthis[TableSchema] = schema;\n\t\tthis[BaseName] = baseName;\n\t}\n};\nfunction isTable(table) {\n\treturn typeof table === \"object\" && table !== null && IsDrizzleTable in table;\n}\nfunction getTableName(table) {\n\treturn table[TableName];\n}\nfunction getTableUniqueName(table) {\n\treturn `${table[TableSchema] ?? \"public\"}.${table[TableName]}`;\n}\n\n//#endregion\nexport { BaseName, ExtraConfigBuilder, ExtraConfigColumns, IsAlias, OriginalName, Table, TableColumns, TableSchema, getTableName, getTableUniqueName, isTable };\n//# sourceMappingURL=table.js.map",
16
+ "import { entityKind } from \"./entity.js\";\n\n//#region src/subquery.ts\nvar Subquery = class {\n\tstatic [entityKind] = \"Subquery\";\n\tconstructor(sql, fields, alias, isWith = false, usedTables = []) {\n\t\tthis._ = {\n\t\t\tbrand: \"Subquery\",\n\t\t\tsql,\n\t\t\tselectedFields: fields,\n\t\t\talias,\n\t\t\tisWith,\n\t\t\tusedTables\n\t\t};\n\t}\n};\nvar WithSubquery = class extends Subquery {\n\tstatic [entityKind] = \"WithSubquery\";\n};\n\n//#endregion\nexport { Subquery, WithSubquery };\n//# sourceMappingURL=subquery.js.map",
17
+ "//#region src/tracing-utils.ts\nfunction iife(fn, ...args) {\n\treturn fn(...args);\n}\n\n//#endregion\nexport { iife };\n//# sourceMappingURL=tracing-utils.js.map",
18
+ "import { iife } from \"./tracing-utils.js\";\nimport { npmVersion } from \"./version.js\";\n\n//#region src/tracing.ts\nconst hasTelemetry = false;\n/** @internal */\nconst tracer = { startActiveSpan(name, fn) {\n\treturn fn();\n} };\n\n//#endregion\nexport { hasTelemetry, tracer };\n//# sourceMappingURL=tracing.js.map",
19
+ "//#region src/view-common.ts\nconst ViewBaseConfig = Symbol.for(\"drizzle:ViewBaseConfig\");\n\n//#endregion\nexport { ViewBaseConfig };\n//# sourceMappingURL=view-common.js.map",
20
+ "import { Column } from \"../column.js\";\nimport { IsAlias, OriginalName, Table, TableColumns, TableSchema } from \"../table.js\";\nimport { entityKind, is } from \"../entity.js\";\nimport { Subquery } from \"../subquery.js\";\nimport { TableName } from \"../table.utils.js\";\nimport { tracer } from \"../tracing.js\";\nimport { ViewBaseConfig } from \"../view-common.js\";\n\n//#region src/sql/sql.ts\n/**\n* This class is used to indicate a primitive param value that is used in `sql` tag.\n* It is only used on type level and is never instantiated at runtime.\n* If you see a value of this type in the code, its runtime value is actually the primitive param value.\n*/\nvar FakePrimitiveParam = class {\n\tstatic [entityKind] = \"FakePrimitiveParam\";\n};\nfunction isSQLWrapper(value) {\n\treturn value !== null && value !== void 0 && typeof value.getSQL === \"function\";\n}\nfunction mergeQueries(queries) {\n\tconst result = {\n\t\tsql: \"\",\n\t\tparams: []\n\t};\n\tfor (const query of queries) {\n\t\tresult.sql += query.sql;\n\t\tresult.params.push(...query.params);\n\t}\n\treturn result;\n}\nfunction _mergeQueries(queries) {\n\tconst result = {\n\t\tsql: \"\",\n\t\tparams: []\n\t};\n\tconst sqls = [];\n\tfor (const query of queries) {\n\t\tsqls.push(query.sql);\n\t\tresult.params.push(...query.params);\n\t}\n\tresult._sql = Object.assign(sqls, { raw: sqls });\n\treturn result;\n}\nvar StringChunk = class {\n\tstatic [entityKind] = \"StringChunk\";\n\tvalue;\n\tconstructor(value) {\n\t\tthis.value = Array.isArray(value) ? value : [value];\n\t}\n\tgetSQL() {\n\t\treturn new SQL([this]);\n\t}\n};\nvar SQL = class SQL {\n\tstatic [entityKind] = \"SQL\";\n\t/** @internal */\n\tdecoder = noopDecoder;\n\t/** @internal */\n\tshouldInlineParams = false;\n\t/** @internal */\n\tusedTables = [];\n\tconstructor(queryChunks) {\n\t\tthis.queryChunks = queryChunks;\n\t\tfor (const chunk of queryChunks) if (is(chunk, Table)) {\n\t\t\tconst schemaName = chunk[Table.Symbol.Schema];\n\t\t\tthis.usedTables.push(schemaName === void 0 ? chunk[Table.Symbol.Name] : schemaName + \".\" + chunk[Table.Symbol.Name]);\n\t\t}\n\t}\n\tappend(query) {\n\t\tthis.queryChunks.push(...query.queryChunks);\n\t\treturn this;\n\t}\n\ttoQuery(config) {\n\t\treturn tracer.startActiveSpan(\"drizzle.buildSQL\", (span) => {\n\t\t\tconst query = this.buildQueryFromSourceParams(this.queryChunks, config);\n\t\t\tspan?.setAttributes({\n\t\t\t\t\"drizzle.query.text\": query.sql,\n\t\t\t\t\"drizzle.query.params\": JSON.stringify(query.params)\n\t\t\t});\n\t\t\treturn query;\n\t\t});\n\t}\n\tbuildQueryFromSourceParams(chunks, _config) {\n\t\tconst config = Object.assign({}, _config, {\n\t\t\tinlineParams: _config.inlineParams || this.shouldInlineParams,\n\t\t\tparamStartIndex: _config.paramStartIndex || { value: 0 }\n\t\t});\n\t\tconst { escapeName, escapeParam, codecs, inlineParams, paramStartIndex, invokeSource } = config;\n\t\tconst mappedChunks = chunks.map((chunk) => {\n\t\t\tif (is(chunk, StringChunk)) return {\n\t\t\t\tsql: chunk.value.join(\"\"),\n\t\t\t\tparams: []\n\t\t\t};\n\t\t\tif (is(chunk, Name)) return {\n\t\t\t\tsql: escapeName(chunk.value),\n\t\t\t\tparams: []\n\t\t\t};\n\t\t\tif (chunk === void 0) return {\n\t\t\t\tsql: \"\",\n\t\t\t\tparams: []\n\t\t\t};\n\t\t\tif (Array.isArray(chunk)) {\n\t\t\t\tconst result = [new StringChunk(\"(\")];\n\t\t\t\tfor (const [i, p] of chunk.entries()) {\n\t\t\t\t\tresult.push(p);\n\t\t\t\t\tif (i < chunk.length - 1) result.push(new StringChunk(\", \"));\n\t\t\t\t}\n\t\t\t\tresult.push(new StringChunk(\")\"));\n\t\t\t\treturn this.buildQueryFromSourceParams(result, config);\n\t\t\t}\n\t\t\tif (is(chunk, SQL)) return this.buildQueryFromSourceParams(chunk.queryChunks, {\n\t\t\t\t...config,\n\t\t\t\tinlineParams: inlineParams || chunk.shouldInlineParams\n\t\t\t});\n\t\t\tif (is(chunk, Table)) {\n\t\t\t\tconst schemaName = chunk[Table.Symbol.Schema];\n\t\t\t\tconst tableName = chunk[Table.Symbol.Name];\n\t\t\t\tif (invokeSource === \"mssql-view-with-schemabinding\") return {\n\t\t\t\t\tsql: (schemaName === void 0 ? escapeName(\"dbo\") : escapeName(schemaName)) + \".\" + escapeName(tableName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === void 0 || chunk[IsAlias] ? escapeName(tableName) : escapeName(schemaName) + \".\" + escapeName(tableName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (is(chunk, Column)) {\n\t\t\t\tconst columnName = chunk.name;\n\t\t\t\tif (_config.invokeSource === \"indexes\") return {\n\t\t\t\t\tsql: escapeName(columnName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t\tconst schemaName = invokeSource === \"mssql-check\" ? void 0 : chunk.table[Table.Symbol.Schema];\n\t\t\t\treturn {\n\t\t\t\t\tsql: chunk.isAlias ? escapeName(chunk.name) : chunk.table[IsAlias] || schemaName === void 0 ? escapeName(chunk.table[Table.Symbol.Name]) + \".\" + escapeName(columnName) : escapeName(schemaName) + \".\" + escapeName(chunk.table[Table.Symbol.Name]) + \".\" + escapeName(columnName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (is(chunk, View)) {\n\t\t\t\tconst schemaName = chunk[ViewBaseConfig].schema;\n\t\t\t\tconst viewName = chunk[ViewBaseConfig].name;\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === void 0 || chunk[ViewBaseConfig].isAlias ? escapeName(viewName) : escapeName(schemaName) + \".\" + escapeName(viewName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (is(chunk, Param)) {\n\t\t\t\tif (is(chunk.value, SQL)) return this.buildQueryFromSourceParams([chunk.value], config);\n\t\t\t\tconst useCodecs = codecs && is(chunk.encoder, Column);\n\t\t\t\tif (is(chunk.value, Placeholder)) {\n\t\t\t\t\tconst escaped = escapeParam(paramStartIndex.value++, chunk);\n\t\t\t\t\tchunk.codec = useCodecs ? (value) => codecs.apply(chunk.encoder, \"normalizeParam\", value) : void 0;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsql: useCodecs ? codecs.apply(chunk.encoder, \"castParam\", escaped) : escaped,\n\t\t\t\t\t\tparams: [chunk]\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tlet mappedValue;\n\t\t\t\tif (chunk.value === null) mappedValue = chunk.value;\n\t\t\t\telse {\n\t\t\t\t\tmappedValue = chunk.encoder.mapToDriverValue.isNoop ? chunk.value : chunk.encoder.mapToDriverValue(chunk.value);\n\t\t\t\t\tif (is(mappedValue, SQL)) return this.buildQueryFromSourceParams([mappedValue], config);\n\t\t\t\t\tif (useCodecs) mappedValue = codecs.apply(chunk.encoder, \"normalizeParam\", mappedValue);\n\t\t\t\t}\n\t\t\t\tif (inlineParams) return {\n\t\t\t\t\tsql: this.mapInlineParam(mappedValue, config),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t\tconst escaped = escapeParam(paramStartIndex.value++, mappedValue);\n\t\t\t\treturn {\n\t\t\t\t\tsql: useCodecs ? codecs.apply(chunk.encoder, \"castParam\", escaped) : escaped,\n\t\t\t\t\tparams: [mappedValue]\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (is(chunk, Placeholder)) return {\n\t\t\t\tsql: escapeParam(paramStartIndex.value++, chunk),\n\t\t\t\tparams: [chunk]\n\t\t\t};\n\t\t\tif (is(chunk, SQL.Aliased) && chunk.fieldAlias !== void 0) return {\n\t\t\t\tsql: (chunk.origin !== void 0 ? escapeName(chunk.origin) + \".\" : \"\") + escapeName(chunk.fieldAlias),\n\t\t\t\tparams: []\n\t\t\t};\n\t\t\tif (is(chunk, Subquery)) {\n\t\t\t\tif (chunk._.isWith) return {\n\t\t\t\t\tsql: escapeName(chunk._.alias),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk(\"(\"),\n\t\t\t\t\tchunk._.sql,\n\t\t\t\t\tnew StringChunk(\") \"),\n\t\t\t\t\tnew Name(chunk._.alias)\n\t\t\t\t], config);\n\t\t\t}\n\t\t\tif (typeof chunk === \"function\" && \"enumName\" in chunk) {\n\t\t\t\tif (\"schema\" in chunk && chunk.schema) return {\n\t\t\t\t\tsql: escapeName(chunk.schema) + \".\" + escapeName(chunk.enumName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tsql: escapeName(chunk.enumName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (isSQLWrapper(chunk)) {\n\t\t\t\tif (chunk.shouldOmitSQLParens?.()) return this.buildQueryFromSourceParams([chunk.getSQL()], config);\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk(\"(\"),\n\t\t\t\t\tchunk.getSQL(),\n\t\t\t\t\tnew StringChunk(\")\")\n\t\t\t\t], config);\n\t\t\t}\n\t\t\tif (inlineParams) return {\n\t\t\t\tsql: this.mapInlineParam(chunk, config),\n\t\t\t\tparams: []\n\t\t\t};\n\t\t\treturn {\n\t\t\t\tsql: escapeParam(paramStartIndex.value++, chunk),\n\t\t\t\tparams: [chunk]\n\t\t\t};\n\t\t});\n\t\tif (_config.tagged) return _mergeQueries(mappedChunks);\n\t\treturn mergeQueries(mappedChunks);\n\t}\n\tmapInlineParam(chunk, { escapeString }) {\n\t\tif (chunk === null) return \"null\";\n\t\tif (typeof chunk === \"number\" || typeof chunk === \"boolean\" || typeof chunk === \"bigint\") return chunk.toString();\n\t\tif (typeof chunk === \"string\") return escapeString(chunk);\n\t\tif (typeof chunk === \"object\") {\n\t\t\tconst mappedValueAsString = chunk.toString();\n\t\t\tif (mappedValueAsString === \"[object Object]\") return escapeString(JSON.stringify(chunk));\n\t\t\treturn escapeString(mappedValueAsString);\n\t\t}\n\t\tthrow new Error(\"Unexpected param value: \" + chunk);\n\t}\n\tgetSQL() {\n\t\treturn this;\n\t}\n\tas(alias) {\n\t\tif (alias === void 0) return this;\n\t\treturn new SQL.Aliased(this, alias);\n\t}\n\tmapWith(decoder) {\n\t\tthis.decoder = typeof decoder === \"function\" ? { mapFromDriverValue: decoder } : decoder;\n\t\treturn this;\n\t}\n\tnullable() {\n\t\treturn this;\n\t}\n\tinlineParams() {\n\t\tthis.shouldInlineParams = true;\n\t\treturn this;\n\t}\n\t/**\n\t* This method is used to conditionally include a part of the query.\n\t*\n\t* @param condition - Condition to check\n\t* @returns itself if the condition is `true`, otherwise `undefined`\n\t*/\n\tif(condition) {\n\t\treturn condition ? this : void 0;\n\t}\n};\n/**\n* Any DB name (table, column, index etc.)\n*/\nvar Name = class {\n\tstatic [entityKind] = \"Name\";\n\tbrand;\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n\tgetSQL() {\n\t\treturn new SQL([this]);\n\t}\n};\n/**\n* Any DB name (table, column, index etc.)\n* @deprecated Use `sql.identifier` instead.\n*/\nfunction name(value) {\n\treturn new Name(value);\n}\nfunction isDriverValueEncoder(value) {\n\treturn typeof value === \"object\" && value !== null && \"mapToDriverValue\" in value && typeof value.mapToDriverValue === \"function\";\n}\nconst noopDecoder = { mapFromDriverValue: (value) => value };\nnoopDecoder.mapFromDriverValue.isNoop = true;\nconst noopEncoder = { mapToDriverValue: (value) => value };\nnoopEncoder.mapToDriverValue.isNoop = true;\nfunction isNoop(mapper) {\n\treturn mapper.isNoop;\n}\nconst noopMapper = {\n\t...noopDecoder,\n\t...noopEncoder\n};\n/** Parameter value that is optionally bound to an encoder (for example, a column). */\nvar Param = class {\n\tstatic [entityKind] = \"Param\";\n\tbrand;\n\t/**\n\t* @param value - Parameter value\n\t* @param encoder - Encoder to convert the value to a driver parameter\n\t*/\n\tconstructor(value, encoder = noopEncoder, codec) {\n\t\tthis.value = value;\n\t\tthis.encoder = encoder;\n\t\tthis.codec = codec;\n\t}\n\tgetSQL() {\n\t\treturn new SQL([this]);\n\t}\n};\n/** @deprecated Use `sql.param` instead. */\nfunction param(value, encoder) {\n\treturn new Param(value, encoder);\n}\nfunction sql(strings, ...params) {\n\tconst queryChunks = [];\n\tif (params.length > 0 || strings.length > 0 && strings[0] !== \"\") queryChunks.push(new StringChunk(strings[0]));\n\tfor (const [paramIndex, param] of params.entries()) queryChunks.push(param, new StringChunk(strings[paramIndex + 1]));\n\treturn new SQL(queryChunks);\n}\n(function(_sql) {\n\tfunction empty() {\n\t\treturn new SQL([]);\n\t}\n\t_sql.empty = empty;\n\tfunction fromList(list) {\n\t\treturn new SQL(list);\n\t}\n\t_sql.fromList = fromList;\n\tfunction raw(str) {\n\t\treturn new SQL([new StringChunk(str)]);\n\t}\n\t_sql.raw = raw;\n\tfunction join(chunks, separator) {\n\t\tconst result = [];\n\t\tfor (const [i, chunk] of chunks.entries()) {\n\t\t\tif (i > 0 && separator !== void 0) result.push(separator);\n\t\t\tresult.push(chunk);\n\t\t}\n\t\treturn new SQL(result);\n\t}\n\t_sql.join = join;\n\tfunction identifier(value) {\n\t\treturn new Name(value);\n\t}\n\t_sql.identifier = identifier;\n\tfunction placeholder(name) {\n\t\treturn new Placeholder(name);\n\t}\n\t_sql.placeholder = placeholder;\n\tfunction param(value, encoder) {\n\t\treturn new Param(value, encoder);\n\t}\n\t_sql.param = param;\n\tfunction comment(input) {\n\t\tconst encoded = sqlCommenter(input);\n\t\tif (!encoded.length) return void 0;\n\t\treturn sql.raw(encoded);\n\t}\n\t_sql.comment = comment;\n})(sql || (sql = {}));\nfunction sqlCommenter(input) {\n\tconst encoded = sqlCommenter.encodeInput(input);\n\tif (!encoded.length) return \"\";\n\treturn `/*${encoded}*/`;\n}\n(function(_sqlCommenter) {\n\tfunction merge(input1, input2) {\n\t\tlet encoded;\n\t\tif (typeof input1 === \"object\" && typeof input2 === \"object\") encoded = encodeInput({\n\t\t\t...input1,\n\t\t\t...input2\n\t\t});\n\t\telse if (input1 && input2) encoded = [encodeInput(input1), encodeInput(input2)].filter((i) => i.length).join(\",\");\n\t\telse if (input2) encoded = encodeInput(input2);\n\t\telse if (input1) encoded = encodeInput(input1);\n\t\telse return \"\";\n\t\tif (!encoded.length) return \"\";\n\t\treturn `/*${encoded}*/`;\n\t}\n\t_sqlCommenter.merge = merge;\n\tfunction encodeInput(input) {\n\t\tif (typeof input === \"string\") {\n\t\t\tif (!input.length) return input;\n\t\t\treturn sanitizeStringInput(input);\n\t\t}\n\t\tconst parts = [];\n\t\tfor (const [key, value] of Object.entries(input)) {\n\t\t\tif (value === null || value === void 0 || value === \"\") continue;\n\t\t\tconst encodedKey = sanitizeObjectElement(key);\n\t\t\tconst encodedValue = sanitizeObjectElement(String(value));\n\t\t\tparts.push(`${encodedKey}='${encodedValue}'`);\n\t\t}\n\t\tif (!parts.length) return \"\";\n\t\treturn parts.sort().join(\",\");\n\t}\n\t_sqlCommenter.encodeInput = encodeInput;\n\tfunction sanitizeObjectElement(key) {\n\t\treturn encodeURIComponent(key).replace(/'/g, `\\\\'`);\n\t}\n\t_sqlCommenter.sanitizeObjectElement = sanitizeObjectElement;\n\tfunction sanitizeStringInput(input) {\n\t\treturn input.replace(/\\/\\*/g, \"/ *\").replace(/\\*\\//g, \"* /\");\n\t}\n\t_sqlCommenter.sanitizeStringInput = sanitizeStringInput;\n})(sqlCommenter || (sqlCommenter = {}));\n(function(_SQL) {\n\tclass Aliased {\n\t\tstatic [entityKind] = \"SQL.Aliased\";\n\t\t/** @internal */\n\t\tisSelectionField = false;\n\t\t/** @internal */\n\t\torigin;\n\t\tconstructor(sql, fieldAlias) {\n\t\t\tthis.sql = sql;\n\t\t\tthis.fieldAlias = fieldAlias;\n\t\t}\n\t\tgetSQL() {\n\t\t\treturn this.sql;\n\t\t}\n\t\t/** @internal */\n\t\tclone() {\n\t\t\treturn new Aliased(this.sql, this.fieldAlias);\n\t\t}\n\t}\n\t_SQL.Aliased = Aliased;\n})(SQL || (SQL = {}));\nvar Placeholder = class {\n\tstatic [entityKind] = \"Placeholder\";\n\tconstructor(name) {\n\t\tthis.name = name;\n\t}\n\tgetSQL() {\n\t\treturn new SQL([this]);\n\t}\n};\n/** @deprecated Use `sql.placeholder` instead. */\nfunction placeholder(name) {\n\treturn new Placeholder(name);\n}\nfunction fillPlaceholders(params, values) {\n\treturn params.map((p) => {\n\t\tif (is(p, Placeholder)) {\n\t\t\tif (!(p.name in values)) throw new Error(`No value for placeholder \"${p.name}\" was provided`);\n\t\t\treturn values[p.name];\n\t\t}\n\t\tif (is(p, Param) && is(p.value, Placeholder)) {\n\t\t\tif (!(p.value.name in values)) throw new Error(`No value for placeholder \"${p.value.name}\" was provided`);\n\t\t\tconst value = values[p.value.name];\n\t\t\tif (value === null) return value;\n\t\t\tconst mapped = p.encoder.mapToDriverValue.isNoop ? value : p.encoder.mapToDriverValue(value);\n\t\t\treturn p.codec ? p.codec(mapped) : mapped;\n\t\t}\n\t\treturn p;\n\t});\n}\nconst IsDrizzleView = Symbol.for(\"drizzle:IsDrizzleView\");\nvar View = class {\n\tstatic [entityKind] = \"View\";\n\t/** @internal */\n\t[ViewBaseConfig];\n\t/** @internal */\n\t[IsDrizzleView] = true;\n\t/** @internal */\n\tget [TableName]() {\n\t\treturn this[ViewBaseConfig].name;\n\t}\n\t/** @internal */\n\tget [TableSchema]() {\n\t\treturn this[ViewBaseConfig].schema;\n\t}\n\t/** @internal */\n\tget [IsAlias]() {\n\t\treturn this[ViewBaseConfig].isAlias;\n\t}\n\t/** @internal */\n\tget [OriginalName]() {\n\t\treturn this[ViewBaseConfig].originalName;\n\t}\n\t/** @internal */\n\tget [TableColumns]() {\n\t\treturn this[ViewBaseConfig].selectedFields;\n\t}\n\tconstructor({ name, schema, selectedFields, query }) {\n\t\tthis[ViewBaseConfig] = {\n\t\t\tname,\n\t\t\toriginalName: name,\n\t\t\tschema,\n\t\t\tselectedFields,\n\t\t\tquery,\n\t\t\tisExisting: !query,\n\t\t\tisAlias: false\n\t\t};\n\t}\n};\nfunction isView(view) {\n\treturn typeof view === \"object\" && view !== null && IsDrizzleView in view;\n}\nfunction getViewName(view) {\n\treturn view[ViewBaseConfig].name;\n}\nColumn.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\nSubquery.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n\n//#endregion\nexport { FakePrimitiveParam, Name, Param, Placeholder, SQL, StringChunk, View, fillPlaceholders, getViewName, isDriverValueEncoder, isNoop, isSQLWrapper, isView, name, noopDecoder, noopEncoder, noopMapper, param, placeholder, sql, sqlCommenter };\n//# sourceMappingURL=sql.js.map",
21
+ "import { Param, Placeholder, SQL, StringChunk, View, isDriverValueEncoder, isSQLWrapper, sql } from \"../sql.js\";\nimport { is } from \"../../entity.js\";\nimport { Table } from \"../../table.js\";\nimport { Column } from \"../../column.js\";\n\n//#region src/sql/expressions/conditions.ts\nfunction bindIfParam(value, column) {\n\tif (isDriverValueEncoder(column) && !isSQLWrapper(value) && !is(value, Param) && !is(value, Placeholder) && !is(value, Column) && !is(value, Table) && !is(value, View)) return new Param(value, column);\n\treturn value;\n}\n/**\n* Test that two values are equal.\n*\n* Remember that the SQL standard dictates that\n* two NULL values are not equal, so if you want to test\n* whether a value is null, you may want to use\n* `isNull` instead.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made by Ford\n* db.select().from(cars)\n* .where(eq(cars.make, 'Ford'))\n* ```\n*\n* @see isNull for a way to test equality to NULL.\n*/\nconst eq = (left, right) => {\n\treturn sql`${left} = ${bindIfParam(right, left)}`;\n};\n/**\n* Test that two values are not equal.\n*\n* Remember that the SQL standard dictates that\n* two NULL values are not equal, so if you want to test\n* whether a value is not null, you may want to use\n* `isNotNull` instead.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars not made by Ford\n* db.select().from(cars)\n* .where(ne(cars.make, 'Ford'))\n* ```\n*\n* @see isNotNull for a way to test whether a value is not null.\n*/\nconst ne = (left, right) => {\n\treturn sql`${left} <> ${bindIfParam(right, left)}`;\n};\nfunction and(...unfilteredConditions) {\n\tconst conditions = unfilteredConditions.filter((c) => c !== void 0);\n\tif (conditions.length === 0) return;\n\tif (conditions.length === 1) return new SQL(conditions);\n\treturn new SQL([\n\t\tnew StringChunk(\"(\"),\n\t\tsql.join(conditions.map((c) => sql`(${c})`), new StringChunk(\" and \")),\n\t\tnew StringChunk(\")\")\n\t]);\n}\nfunction or(...unfilteredConditions) {\n\tconst conditions = unfilteredConditions.filter((c) => c !== void 0);\n\tif (conditions.length === 0) return;\n\tif (conditions.length === 1) return new SQL(conditions);\n\treturn new SQL([\n\t\tnew StringChunk(\"(\"),\n\t\tsql.join(conditions.map((c) => sql`(${c})`), new StringChunk(\" or \")),\n\t\tnew StringChunk(\")\")\n\t]);\n}\n/**\n* Negate the meaning of an expression using the `not` keyword.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars _not_ made by GM or Ford.\n* db.select().from(cars)\n* .where(not(inArray(cars.make, ['GM', 'Ford'])))\n* ```\n*/\nfunction not(condition) {\n\treturn is(condition, SQL) ? sql`not (${condition})` : sql`not ${condition}`;\n}\n/**\n* Test that the first expression passed is greater than\n* the second expression.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made after 2000.\n* db.select().from(cars)\n* .where(gt(cars.year, 2000))\n* ```\n*\n* @see gte for greater-than-or-equal\n*/\nconst gt = (left, right) => {\n\treturn sql`${left} > ${bindIfParam(right, left)}`;\n};\n/**\n* Test that the first expression passed is greater than\n* or equal to the second expression. Use `gt` to\n* test whether an expression is strictly greater\n* than another.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made on or after 2000.\n* db.select().from(cars)\n* .where(gte(cars.year, 2000))\n* ```\n*\n* @see gt for a strictly greater-than condition\n*/\nconst gte = (left, right) => {\n\treturn sql`${left} >= ${bindIfParam(right, left)}`;\n};\n/**\n* Test that the first expression passed is less than\n* the second expression.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made before 2000.\n* db.select().from(cars)\n* .where(lt(cars.year, 2000))\n* ```\n*\n* @see lte for less-than-or-equal\n*/\nconst lt = (left, right) => {\n\treturn sql`${left} < ${bindIfParam(right, left)}`;\n};\n/**\n* Test that the first expression passed is less than\n* or equal to the second expression.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made before 2000.\n* db.select().from(cars)\n* .where(lte(cars.year, 2000))\n* ```\n*\n* @see lt for a strictly less-than condition\n*/\nconst lte = (left, right) => {\n\treturn sql`${left} <= ${bindIfParam(right, left)}`;\n};\nfunction inArray(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) return sql`false`;\n\t\treturn sql`${column} in ${values.map((v) => bindIfParam(v, column))}`;\n\t}\n\treturn sql`${column} in ${bindIfParam(values, column)}`;\n}\nfunction notInArray(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) return sql`true`;\n\t\treturn sql`${column} not in ${values.map((v) => bindIfParam(v, column))}`;\n\t}\n\treturn sql`${column} not in ${bindIfParam(values, column)}`;\n}\n/**\n* Test whether an expression is NULL. By the SQL standard,\n* NULL is neither equal nor not equal to itself, so\n* it's recommended to use `isNull` and `notIsNull` for\n* comparisons to NULL.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars that have no discontinuedAt date.\n* db.select().from(cars)\n* .where(isNull(cars.discontinuedAt))\n* ```\n*\n* @see isNotNull for the inverse of this test\n*/\nfunction isNull(value) {\n\treturn sql`(${value} is null)`;\n}\n/**\n* Test whether an expression is not NULL. By the SQL standard,\n* NULL is neither equal nor not equal to itself, so\n* it's recommended to use `isNull` and `notIsNull` for\n* comparisons to NULL.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars that have been discontinued.\n* db.select().from(cars)\n* .where(isNotNull(cars.discontinuedAt))\n* ```\n*\n* @see isNull for the inverse of this test\n*/\nfunction isNotNull(value) {\n\treturn sql`(${value} is not null)`;\n}\n/**\n* Test whether a subquery evaluates to have any rows.\n*\n* ## Examples\n*\n* ```ts\n* // Users whose `homeCity` column has a match in a cities\n* // table.\n* db\n* .select()\n* .from(users)\n* .where(\n* exists(db.select()\n* .from(cities)\n* .where(eq(users.homeCity, cities.id))),\n* );\n* ```\n*\n* @see notExists for the inverse of this test\n*/\nfunction exists(subquery) {\n\treturn sql`exists ${subquery}`;\n}\n/**\n* Test whether a subquery doesn't include any result\n* rows.\n*\n* ## Examples\n*\n* ```ts\n* // Users whose `homeCity` column doesn't match\n* // a row in the cities table.\n* db\n* .select()\n* .from(users)\n* .where(\n* notExists(db.select()\n* .from(cities)\n* .where(eq(users.homeCity, cities.id))),\n* );\n* ```\n*\n* @see exists for the inverse of this test\n*/\nfunction notExists(subquery) {\n\treturn sql`not exists ${subquery}`;\n}\nfunction between(column, min, max) {\n\treturn sql`${column} between ${bindIfParam(min, column)} and ${bindIfParam(max, column)}`;\n}\nfunction notBetween(column, min, max) {\n\treturn sql`${column} not between ${bindIfParam(min, column)} and ${bindIfParam(max, column)}`;\n}\n/**\n* Compare a column to a pattern, which can include `%` and `_`\n* characters to match multiple variations. Including `%`\n* in the pattern matches zero or more characters, and including\n* `_` will match a single character.\n*\n* ## Examples\n*\n* ```ts\n* // Select all cars with 'Turbo' in their names.\n* db.select().from(cars)\n* .where(like(cars.name, '%Turbo%'))\n* ```\n*\n* @see ilike for a case-insensitive version of this condition\n*/\nfunction like(column, value) {\n\treturn sql`${column} like ${value}`;\n}\n/**\n* The inverse of like - this tests that a given column\n* does not match a pattern, which can include `%` and `_`\n* characters to match multiple variations. Including `%`\n* in the pattern matches zero or more characters, and including\n* `_` will match a single character.\n*\n* ## Examples\n*\n* ```ts\n* // Select all cars that don't have \"ROver\" in their name.\n* db.select().from(cars)\n* .where(notLike(cars.name, '%Rover%'))\n* ```\n*\n* @see like for the inverse condition\n* @see notIlike for a case-insensitive version of this condition\n*/\nfunction notLike(column, value) {\n\treturn sql`${column} not like ${value}`;\n}\n/**\n* Case-insensitively compare a column to a pattern,\n* which can include `%` and `_`\n* characters to match multiple variations. Including `%`\n* in the pattern matches zero or more characters, and including\n* `_` will match a single character.\n*\n* Unlike like, this performs a case-insensitive comparison.\n*\n* ## Examples\n*\n* ```ts\n* // Select all cars with 'Turbo' in their names.\n* db.select().from(cars)\n* .where(ilike(cars.name, '%Turbo%'))\n* ```\n*\n* @see like for a case-sensitive version of this condition\n*/\nfunction ilike(column, value) {\n\treturn sql`${column} ilike ${value}`;\n}\n/**\n* The inverse of ilike - this case-insensitively tests that a given column\n* does not match a pattern, which can include `%` and `_`\n* characters to match multiple variations. Including `%`\n* in the pattern matches zero or more characters, and including\n* `_` will match a single character.\n*\n* ## Examples\n*\n* ```ts\n* // Select all cars that don't have \"Rover\" in their name.\n* db.select().from(cars)\n* .where(notLike(cars.name, '%Rover%'))\n* ```\n*\n* @see ilike for the inverse condition\n* @see notLike for a case-sensitive version of this condition\n*/\nfunction notIlike(column, value) {\n\treturn sql`${column} not ilike ${value}`;\n}\nfunction arrayContains(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) throw new Error(\"arrayContains requires at least one value\");\n\t\tconst par = bindIfParam(values, column);\n\t\treturn sql`${column} @> ${sql`${Array.isArray(par) ? new Param(par) : par}`}`;\n\t}\n\treturn sql`${column} @> ${bindIfParam(values, column)}`;\n}\nfunction arrayContained(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) throw new Error(\"arrayContained requires at least one value\");\n\t\tconst par = bindIfParam(values, column);\n\t\treturn sql`${column} <@ ${sql`${Array.isArray(par) ? new Param(par) : par}`}`;\n\t}\n\treturn sql`${column} <@ ${bindIfParam(values, column)}`;\n}\nfunction arrayOverlaps(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) throw new Error(\"arrayOverlaps requires at least one value\");\n\t\tconst par = bindIfParam(values, column);\n\t\treturn sql`${column} && ${sql`${Array.isArray(par) ? new Param(par) : par}`}`;\n\t}\n\treturn sql`${column} && ${bindIfParam(values, column)}`;\n}\n\n//#endregion\nexport { and, arrayContained, arrayContains, arrayOverlaps, between, bindIfParam, eq, exists, gt, gte, ilike, inArray, isNotNull, isNull, like, lt, lte, ne, not, notBetween, notExists, notIlike, notInArray, notLike, or };\n//# sourceMappingURL=conditions.js.map",
22
+ "import { sql } from \"../sql.js\";\n\n//#region src/sql/expressions/select.ts\n/**\n* Used in sorting, this specifies that the given\n* column or expression should be sorted in ascending\n* order. By the SQL standard, ascending order is the\n* default, so it is not usually necessary to specify\n* ascending sort order.\n*\n* ## Examples\n*\n* ```ts\n* // Return cars, starting with the oldest models\n* // and going in ascending order to the newest.\n* db.select().from(cars)\n* .orderBy(asc(cars.year));\n* ```\n*\n* @see desc to sort in descending order\n*/\nfunction asc(column) {\n\treturn sql`${column} asc`;\n}\n/**\n* Used in sorting, this specifies that the given\n* column or expression should be sorted in descending\n* order.\n*\n* ## Examples\n*\n* ```ts\n* // Select users, with the most recently created\n* // records coming first.\n* db.select().from(users)\n* .orderBy(desc(users.createdAt));\n* ```\n*\n* @see asc to sort in ascending order\n*/\nfunction desc(column) {\n\treturn sql`${column} desc`;\n}\n\n//#endregion\nexport { asc, desc };\n//# sourceMappingURL=select.js.map",
23
+ "//#region src/pg-core/array.ts\nfunction parsePgArrayValue(arrayString, startFrom, inQuotes) {\n\tfor (let i = startFrom; i < arrayString.length; i++) {\n\t\tconst char = arrayString[i];\n\t\tif (char === \"\\\\\") {\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\t\tif (char === \"\\\"\") return [arrayString.slice(startFrom, i).replace(/\\\\/g, \"\"), i + 1];\n\t\tif (inQuotes) continue;\n\t\tif (char === \",\" || char === \"}\") return [arrayString.slice(startFrom, i).replace(/\\\\/g, \"\"), i];\n\t}\n\treturn [arrayString.slice(startFrom).replace(/\\\\/g, \"\"), arrayString.length];\n}\nfunction parsePgNestedArray(arrayString, startFrom = 0) {\n\tconst result = [];\n\tlet i = startFrom;\n\tlet lastCharIsComma = false;\n\twhile (i < arrayString.length) {\n\t\tconst char = arrayString[i];\n\t\tif (char === \",\") {\n\t\t\tif (lastCharIsComma || i === startFrom) result.push(\"\");\n\t\t\tlastCharIsComma = true;\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\t\tlastCharIsComma = false;\n\t\tif (char === \"\\\\\") {\n\t\t\ti += 2;\n\t\t\tcontinue;\n\t\t}\n\t\tif (char === \"\\\"\") {\n\t\t\tconst [value, startFrom] = parsePgArrayValue(arrayString, i + 1, true);\n\t\t\tresult.push(value);\n\t\t\ti = startFrom;\n\t\t\tcontinue;\n\t\t}\n\t\tif (char === \"}\") return [result, i + 1];\n\t\tif (char === \"{\") {\n\t\t\tconst [value, startFrom] = parsePgNestedArray(arrayString, i + 1);\n\t\t\tresult.push(value);\n\t\t\ti = startFrom;\n\t\t\tcontinue;\n\t\t}\n\t\tconst [value, newStartFrom] = parsePgArrayValue(arrayString, i, false);\n\t\tresult.push(value);\n\t\ti = newStartFrom;\n\t}\n\treturn [result, i];\n}\nfunction parsePgArray(arrayString) {\n\tconst [result] = parsePgNestedArray(arrayString, 1);\n\treturn result;\n}\nfunction makePgArray(array) {\n\treturn `{${array.map((item) => {\n\t\tif (Array.isArray(item)) return makePgArray(item);\n\t\tif (typeof item === \"string\") return `\"${item.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\")}\"`;\n\t\treturn `${item}`;\n\t}).join(\",\")}}`;\n}\n\n//#endregion\nexport { makePgArray, parsePgArray, parsePgNestedArray };\n//# sourceMappingURL=array.js.map",
24
+ "//#region src/pg-core/columns/postgis_extension/utils.ts\nfunction hexToBytes(hex) {\n\tconst bytes = [];\n\tfor (let c = 0; c < hex.length; c += 2) bytes.push(Number.parseInt(hex.slice(c, c + 2), 16));\n\treturn new Uint8Array(bytes);\n}\nfunction bytesToFloat64(bytes, offset) {\n\tconst buffer = /* @__PURE__ */ new ArrayBuffer(8);\n\tconst view = new DataView(buffer);\n\tfor (let i = 0; i < 8; i++) view.setUint8(i, bytes[offset + i]);\n\treturn view.getFloat64(0, true);\n}\nfunction parseEWKB(hex) {\n\tconst bytes = hexToBytes(hex);\n\tlet offset = 0;\n\tconst byteOrder = bytes[offset];\n\toffset += 1;\n\tconst view = new DataView(bytes.buffer);\n\tconst geomType = view.getUint32(offset, byteOrder === 1);\n\toffset += 4;\n\tlet srid;\n\tif (geomType & 536870912) {\n\t\tsrid = view.getUint32(offset, byteOrder === 1);\n\t\toffset += 4;\n\t}\n\tif ((geomType & 65535) === 1) {\n\t\tconst x = bytesToFloat64(bytes, offset);\n\t\toffset += 8;\n\t\tconst y = bytesToFloat64(bytes, offset);\n\t\toffset += 8;\n\t\treturn {\n\t\t\tsrid,\n\t\t\tpoint: [x, y]\n\t\t};\n\t}\n\tthrow new Error(\"Unsupported geometry type\");\n}\n\n//#endregion\nexport { parseEWKB };\n//# sourceMappingURL=utils.js.map",
25
+ "import { entityKind } from \"./entity.js\";\n\n//#region src/codecs.ts\nconst noopCodecs = {};\nconst arrayToItemTypeCodecNameMap = {\n\tcast: \"cast\",\n\tcastArray: \"cast\",\n\tcastInJson: \"castInJson\",\n\tcastArrayInJson: \"castInJson\",\n\tcastParam: \"castParam\",\n\tcastArrayParam: \"castParam\",\n\tnormalize: \"normalize\",\n\tnormalizeArray: \"normalize\",\n\tnormalizeInJson: \"normalizeInJson\",\n\tnormalizeArrayInJson: \"normalizeInJson\",\n\tnormalizeParam: \"normalizeParam\",\n\tnormalizeParamArray: \"normalizeParam\"\n};\nconst itemToArrayTypeCodecNameMap = {\n\tcast: \"castArray\",\n\tcastArray: \"castArray\",\n\tcastInJson: \"castArrayInJson\",\n\tcastArrayInJson: \"castArrayInJson\",\n\tcastParam: \"castArrayParam\",\n\tcastArrayParam: \"castArrayParam\",\n\tnormalize: \"normalizeArray\",\n\tnormalizeArray: \"normalizeArray\",\n\tnormalizeInJson: \"normalizeArrayInJson\",\n\tnormalizeArrayInJson: \"normalizeArrayInJson\",\n\tnormalizeParam: \"normalizeParamArray\",\n\tnormalizeParamArray: \"normalizeParamArray\"\n};\nvar CodecsCollection = class {\n\tstatic [entityKind] = \"CodecsCollection\";\n\tconstructor(resolveTypes, codecs = noopCodecs) {\n\t\tthis.resolveTypes = resolveTypes;\n\t\tthis.codecs = codecs;\n\t}\n\tget(column, type, override) {\n\t\tconst sqlType = override ?? column.codec;\n\t\tif (!sqlType) return void 0;\n\t\tconst codecType = column.dimensions ? itemToArrayTypeCodecNameMap[type] : arrayToItemTypeCodecNameMap[type];\n\t\treturn this.codecs[sqlType]?.[codecType];\n\t}\n\tapply(column, type, value, override) {\n\t\tconst sqlType = override ?? column.codec;\n\t\tif (!sqlType) return value;\n\t\tconst codecType = column.dimensions ? itemToArrayTypeCodecNameMap[type] : arrayToItemTypeCodecNameMap[type];\n\t\tconst codec = this.codecs[sqlType]?.[codecType];\n\t\tif (!codec) return value;\n\t\tif (codecType === \"castParam\" || codecType === \"castArrayParam\") return codec(value, column, column.dimensions);\n\t\treturn codec(value, column.dimensions);\n\t}\n};\nfunction refineCodecs(source, extension = {}) {\n\tconst keys = new Set([...Object.keys(source), ...Object.keys(extension)]).values();\n\tconst result = {};\n\tfor (const k of keys) {\n\t\tif (!(k in extension)) {\n\t\t\tresult[k] = source[k] ? { ...source[k] } : void 0;\n\t\t\tcontinue;\n\t\t}\n\t\tif (!(k in source) || extension[k] === void 0) {\n\t\t\tresult[k] = extension[k] ? { ...extension[k] } : void 0;\n\t\t\tcontinue;\n\t\t}\n\t\tconst innerKeys = new Set([...Object.keys(extension[k]), ...Object.keys(source[k] ?? {})]).values();\n\t\tresult[k] = {};\n\t\tfor (const ik of innerKeys) result[k][ik] = ik in extension[k] ? extension[k][ik] : source[k]?.[ik];\n\t}\n\treturn result;\n}\n\n//#endregion\nexport { CodecsCollection, noopCodecs, refineCodecs };\n//# sourceMappingURL=codecs.js.map",
26
+ "import { makePgArray, parsePgArray } from \"./array.js\";\nimport { parseEWKB } from \"./columns/postgis_extension/utils.js\";\nimport { refineCodecs } from \"../codecs.js\";\nimport { sql } from \"../sql/sql.js\";\n\n//#region src/pg-core/codecs.ts\nconst PG_ALIAS_TO_TYPE_MAP = {\n\tint2: \"smallint\",\n\tinteger: \"int\",\n\tint4: \"int\",\n\tint8: \"bigint\",\n\tdecimal: \"numeric\",\n\treal: \"float4\",\n\tdouble: \"float8\",\n\t\"double precision\": \"float8\",\n\tserial2: \"smallserial\",\n\tserial4: \"serial\",\n\tserial8: \"bigserial\",\n\tcharacter: \"char\",\n\t\"character varying\": \"varchar\",\n\t\"time with time zone\": \"timetz\",\n\t\"time without time zone\": \"time\",\n\t\"timestamp with time zone\": \"timestamptz\",\n\t\"timestamp without time zone\": \"timestamp\",\n\tboolean: \"bool\",\n\t\"bit varying\": \"varbit\"\n};\nfunction resolvePgTypeAlias(type) {\n\treturn PG_ALIAS_TO_TYPE_MAP[type] ?? type;\n}\nconst unionsTypeTable = {\n\tsmallint: {\n\t\tsmallint: \"smallint\",\n\t\tint: \"int\",\n\t\tbigint: \"bigint:number\",\n\t\t\"bigint:number\": \"bigint:number\",\n\t\t\"bigint:string\": \"bigint:number\",\n\t\tnumeric: \"numeric:number\",\n\t\t\"numeric:number\": \"numeric:number\",\n\t\t\"numeric:bigint\": \"numeric:number\",\n\t\tfloat4: \"float4\",\n\t\tfloat8: \"float8\",\n\t\tsmallserial: \"smallint\",\n\t\tserial: \"int\",\n\t\tbigserial: \"bigint:number\",\n\t\t\"bigserial:number\": \"bigint:number\",\n\t\toid: \"oid\",\n\t\tregproc: \"regproc\",\n\t\tregprocedure: \"regprocedure\",\n\t\tregoper: \"regoper\",\n\t\tregoperator: \"regoperator\",\n\t\tregclass: \"regclass\",\n\t\tregtype: \"regtype\",\n\t\tregrole: \"regrole\",\n\t\tregnamespace: \"regnamespace\",\n\t\tregconfig: \"regconfig\",\n\t\tregdictionary: \"regdictionary\"\n\t},\n\tint: {\n\t\tsmallint: \"int\",\n\t\tint: \"int\",\n\t\tbigint: \"bigint:number\",\n\t\t\"bigint:number\": \"bigint:number\",\n\t\t\"bigint:string\": \"bigint:number\",\n\t\tnumeric: \"numeric:number\",\n\t\t\"numeric:number\": \"numeric:number\",\n\t\t\"numeric:bigint\": \"numeric:number\",\n\t\tfloat4: \"float4\",\n\t\tfloat8: \"float8\",\n\t\tsmallserial: \"int\",\n\t\tserial: \"int\",\n\t\tbigserial: \"bigint:number\",\n\t\t\"bigserial:number\": \"bigint:number\",\n\t\toid: \"oid\",\n\t\tregproc: \"regproc\",\n\t\tregprocedure: \"regprocedure\",\n\t\tregoper: \"regoper\",\n\t\tregoperator: \"regoperator\",\n\t\tregclass: \"regclass\",\n\t\tregtype: \"regtype\",\n\t\tregrole: \"regrole\",\n\t\tregnamespace: \"regnamespace\",\n\t\tregconfig: \"regconfig\",\n\t\tregdictionary: \"regdictionary\"\n\t},\n\tbigint: {\n\t\tsmallint: \"bigint\",\n\t\tint: \"bigint\",\n\t\tbigint: \"bigint\",\n\t\t\"bigint:number\": \"bigint\",\n\t\t\"bigint:string\": \"bigint\",\n\t\tnumeric: \"numeric:bigint\",\n\t\t\"numeric:number\": \"numeric:bigint\",\n\t\t\"numeric:bigint\": \"numeric:bigint\",\n\t\tfloat4: \"float4\",\n\t\tfloat8: \"float8\",\n\t\tsmallserial: \"bigint\",\n\t\tserial: \"bigint\",\n\t\tbigserial: \"bigint\",\n\t\t\"bigserial:number\": \"bigint\",\n\t\toid: \"oid\",\n\t\tregproc: \"regproc\",\n\t\tregprocedure: \"regprocedure\",\n\t\tregoper: \"regoper\",\n\t\tregoperator: \"regoperator\",\n\t\tregclass: \"regclass\",\n\t\tregtype: \"regtype\",\n\t\tregrole: \"regrole\",\n\t\tregnamespace: \"regnamespace\",\n\t\tregconfig: \"regconfig\",\n\t\tregdictionary: \"regdictionary\"\n\t},\n\t\"bigint:number\": {\n\t\tsmallint: \"bigint:number\",\n\t\tint: \"bigint:number\",\n\t\tbigint: \"bigint:number\",\n\t\t\"bigint:number\": \"bigint:number\",\n\t\t\"bigint:string\": \"bigint:number\",\n\t\tnumeric: \"numeric:number\",\n\t\t\"numeric:number\": \"numeric:number\",\n\t\t\"numeric:bigint\": \"numeric:number\",\n\t\tfloat4: \"float4\",\n\t\tfloat8: \"float8\",\n\t\tsmallserial: \"bigint:number\",\n\t\tserial: \"bigint:number\",\n\t\tbigserial: \"bigint:number\",\n\t\t\"bigserial:number\": \"bigint:number\",\n\t\toid: \"oid\",\n\t\tregproc: \"regproc\",\n\t\tregprocedure: \"regprocedure\",\n\t\tregoper: \"regoper\",\n\t\tregoperator: \"regoperator\",\n\t\tregclass: \"regclass\",\n\t\tregtype: \"regtype\",\n\t\tregrole: \"regrole\",\n\t\tregnamespace: \"regnamespace\",\n\t\tregconfig: \"regconfig\",\n\t\tregdictionary: \"regdictionary\"\n\t},\n\t\"bigint:string\": {\n\t\tsmallint: \"bigint:string\",\n\t\tint: \"bigint:string\",\n\t\tbigint: \"bigint:string\",\n\t\t\"bigint:number\": \"bigint:string\",\n\t\t\"bigint:string\": \"bigint:string\",\n\t\tnumeric: \"numeric\",\n\t\t\"numeric:number\": \"numeric\",\n\t\t\"numeric:bigint\": \"numeric\",\n\t\tfloat4: \"float4\",\n\t\tfloat8: \"float8\",\n\t\tsmallserial: \"bigint:string\",\n\t\tserial: \"bigint:string\",\n\t\tbigserial: \"bigint:string\",\n\t\t\"bigserial:number\": \"bigint:string\",\n\t\toid: \"oid\",\n\t\tregproc: \"regproc\",\n\t\tregprocedure: \"regprocedure\",\n\t\tregoper: \"regoper\",\n\t\tregoperator: \"regoperator\",\n\t\tregclass: \"regclass\",\n\t\tregtype: \"regtype\",\n\t\tregrole: \"regrole\",\n\t\tregnamespace: \"regnamespace\",\n\t\tregconfig: \"regconfig\",\n\t\tregdictionary: \"regdictionary\"\n\t},\n\tnumeric: {\n\t\tsmallint: \"numeric\",\n\t\tint: \"numeric\",\n\t\tbigint: \"numeric\",\n\t\t\"bigint:number\": \"numeric\",\n\t\t\"bigint:string\": \"numeric\",\n\t\tnumeric: \"numeric\",\n\t\t\"numeric:number\": \"numeric\",\n\t\t\"numeric:bigint\": \"numeric\",\n\t\tfloat4: \"float4\",\n\t\tfloat8: \"float8\",\n\t\tsmallserial: \"numeric\",\n\t\tserial: \"numeric\",\n\t\tbigserial: \"numeric\",\n\t\t\"bigserial:number\": \"numeric\"\n\t},\n\t\"numeric:number\": {\n\t\tsmallint: \"numeric:number\",\n\t\tint: \"numeric:number\",\n\t\tbigint: \"numeric:number\",\n\t\t\"bigint:number\": \"numeric:number\",\n\t\t\"bigint:string\": \"numeric:number\",\n\t\tnumeric: \"numeric:number\",\n\t\t\"numeric:number\": \"numeric:number\",\n\t\t\"numeric:bigint\": \"numeric:number\",\n\t\tfloat4: \"float4\",\n\t\tfloat8: \"float8\",\n\t\tsmallserial: \"numeric:number\",\n\t\tserial: \"numeric:number\",\n\t\tbigserial: \"numeric:number\",\n\t\t\"bigserial:number\": \"numeric:number\"\n\t},\n\t\"numeric:bigint\": {\n\t\tsmallint: \"numeric:bigint\",\n\t\tint: \"numeric:bigint\",\n\t\tbigint: \"numeric:bigint\",\n\t\t\"bigint:number\": \"numeric:bigint\",\n\t\t\"bigint:string\": \"numeric:bigint\",\n\t\tnumeric: \"numeric:bigint\",\n\t\t\"numeric:number\": \"numeric:bigint\",\n\t\t\"numeric:bigint\": \"numeric:bigint\",\n\t\tfloat4: \"float4\",\n\t\tfloat8: \"float8\",\n\t\tsmallserial: \"numeric:bigint\",\n\t\tserial: \"numeric:bigint\",\n\t\tbigserial: \"numeric:bigint\",\n\t\t\"bigserial:number\": \"numeric:bigint\"\n\t},\n\tfloat4: {\n\t\tsmallint: \"float4\",\n\t\tint: \"float4\",\n\t\tbigint: \"float4\",\n\t\t\"bigint:number\": \"float4\",\n\t\t\"bigint:string\": \"float4\",\n\t\tnumeric: \"float4\",\n\t\t\"numeric:number\": \"float4\",\n\t\t\"numeric:bigint\": \"float4\",\n\t\tfloat4: \"float4\",\n\t\tfloat8: \"float8\",\n\t\tsmallserial: \"float4\",\n\t\tserial: \"float4\",\n\t\tbigserial: \"float4\",\n\t\t\"bigserial:number\": \"float4\"\n\t},\n\tfloat8: {\n\t\tsmallint: \"float8\",\n\t\tint: \"float8\",\n\t\tbigint: \"float8\",\n\t\t\"bigint:number\": \"float8\",\n\t\t\"bigint:string\": \"float8\",\n\t\tnumeric: \"float8\",\n\t\t\"numeric:number\": \"float8\",\n\t\t\"numeric:bigint\": \"float8\",\n\t\tfloat4: \"float8\",\n\t\tfloat8: \"float8\",\n\t\tsmallserial: \"float8\",\n\t\tserial: \"float8\",\n\t\tbigserial: \"float8\",\n\t\t\"bigserial:number\": \"float8\"\n\t},\n\tmoney: { money: \"money\" },\n\tsmallserial: {\n\t\tsmallint: \"smallint\",\n\t\tint: \"int\",\n\t\tbigint: \"bigint:number\",\n\t\t\"bigint:number\": \"bigint:number\",\n\t\t\"bigint:string\": \"bigint:number\",\n\t\tnumeric: \"numeric:number\",\n\t\t\"numeric:number\": \"numeric:number\",\n\t\t\"numeric:bigint\": \"numeric:number\",\n\t\tfloat4: \"float4\",\n\t\tfloat8: \"float8\",\n\t\tsmallserial: \"smallint\",\n\t\tserial: \"int\",\n\t\tbigserial: \"bigint:number\",\n\t\t\"bigserial:number\": \"bigint:number\",\n\t\toid: \"oid\",\n\t\tregproc: \"regproc\",\n\t\tregprocedure: \"regprocedure\",\n\t\tregoper: \"regoper\",\n\t\tregoperator: \"regoperator\",\n\t\tregclass: \"regclass\",\n\t\tregtype: \"regtype\",\n\t\tregrole: \"regrole\",\n\t\tregnamespace: \"regnamespace\",\n\t\tregconfig: \"regconfig\",\n\t\tregdictionary: \"regdictionary\"\n\t},\n\tserial: {\n\t\tsmallint: \"int\",\n\t\tint: \"int\",\n\t\tbigint: \"bigint:number\",\n\t\t\"bigint:number\": \"bigint:number\",\n\t\t\"bigint:string\": \"bigint:number\",\n\t\tnumeric: \"numeric:number\",\n\t\t\"numeric:number\": \"numeric:number\",\n\t\t\"numeric:bigint\": \"numeric:number\",\n\t\tfloat4: \"float4\",\n\t\tfloat8: \"float8\",\n\t\tsmallserial: \"int\",\n\t\tserial: \"int\",\n\t\tbigserial: \"bigint:number\",\n\t\t\"bigserial:number\": \"bigint:number\",\n\t\toid: \"oid\",\n\t\tregproc: \"regproc\",\n\t\tregprocedure: \"regprocedure\",\n\t\tregoper: \"regoper\",\n\t\tregoperator: \"regoperator\",\n\t\tregclass: \"regclass\",\n\t\tregtype: \"regtype\",\n\t\tregrole: \"regrole\",\n\t\tregnamespace: \"regnamespace\",\n\t\tregconfig: \"regconfig\",\n\t\tregdictionary: \"regdictionary\"\n\t},\n\tbigserial: {\n\t\tsmallint: \"bigint\",\n\t\tint: \"bigint\",\n\t\tbigint: \"bigint\",\n\t\t\"bigint:number\": \"bigint\",\n\t\t\"bigint:string\": \"bigint\",\n\t\tnumeric: \"numeric:bigint\",\n\t\t\"numeric:number\": \"numeric:bigint\",\n\t\t\"numeric:bigint\": \"numeric:bigint\",\n\t\tfloat4: \"float4\",\n\t\tfloat8: \"float8\",\n\t\tsmallserial: \"bigint\",\n\t\tserial: \"bigint\",\n\t\tbigserial: \"bigint\",\n\t\t\"bigserial:number\": \"bigint\",\n\t\toid: \"oid\",\n\t\tregproc: \"regproc\",\n\t\tregprocedure: \"regprocedure\",\n\t\tregoper: \"regoper\",\n\t\tregoperator: \"regoperator\",\n\t\tregclass: \"regclass\",\n\t\tregtype: \"regtype\",\n\t\tregrole: \"regrole\",\n\t\tregnamespace: \"regnamespace\",\n\t\tregconfig: \"regconfig\",\n\t\tregdictionary: \"regdictionary\"\n\t},\n\t\"bigserial:number\": {\n\t\tsmallint: \"bigint:number\",\n\t\tint: \"bigint:number\",\n\t\tbigint: \"bigint:number\",\n\t\t\"bigint:number\": \"bigint:number\",\n\t\t\"bigint:string\": \"bigint:number\",\n\t\tnumeric: \"numeric:number\",\n\t\t\"numeric:number\": \"numeric:number\",\n\t\t\"numeric:bigint\": \"numeric:number\",\n\t\tfloat4: \"float4\",\n\t\tfloat8: \"float8\",\n\t\tsmallserial: \"bigint:number\",\n\t\tserial: \"bigint:number\",\n\t\tbigserial: \"bigint:number\",\n\t\t\"bigserial:number\": \"bigint:number\",\n\t\toid: \"oid\",\n\t\tregproc: \"regproc\",\n\t\tregprocedure: \"regprocedure\",\n\t\tregoper: \"regoper\",\n\t\tregoperator: \"regoperator\",\n\t\tregclass: \"regclass\",\n\t\tregtype: \"regtype\",\n\t\tregrole: \"regrole\",\n\t\tregnamespace: \"regnamespace\",\n\t\tregconfig: \"regconfig\",\n\t\tregdictionary: \"regdictionary\"\n\t},\n\tchar: {\n\t\tchar: \"char\",\n\t\tvarchar: \"char\",\n\t\ttext: \"char\"\n\t},\n\tvarchar: {\n\t\tchar: \"varchar\",\n\t\tvarchar: \"varchar\",\n\t\ttext: \"varchar\"\n\t},\n\ttext: {\n\t\tchar: \"text\",\n\t\tvarchar: \"text\",\n\t\ttext: \"text\"\n\t},\n\tbytea: { bytea: \"bytea\" },\n\tdate: {\n\t\tdate: \"date\",\n\t\t\"date:string\": \"date\",\n\t\ttimestamp: \"timestamp\",\n\t\t\"timestamp:string\": \"timestamp\",\n\t\ttimestamptz: \"timestamptz\",\n\t\t\"timestamptz:string\": \"timestamptz\"\n\t},\n\t\"date:string\": {\n\t\tdate: \"date:string\",\n\t\t\"date:string\": \"date:string\",\n\t\ttimestamp: \"timestamp:string\",\n\t\t\"timestamp:string\": \"timestamp:string\",\n\t\ttimestamptz: \"timestamptz:string\",\n\t\t\"timestamptz:string\": \"timestamptz:string\"\n\t},\n\ttime: {\n\t\ttime: \"time\",\n\t\ttimetz: \"timetz\"\n\t},\n\ttimetz: {\n\t\ttime: \"timetz\",\n\t\ttimetz: \"timetz\"\n\t},\n\ttimestamp: {\n\t\tdate: \"timestamp\",\n\t\t\"date:string\": \"timestamp\",\n\t\ttimestamp: \"timestamp\",\n\t\t\"timestamp:string\": \"timestamp\",\n\t\ttimestamptz: \"timestamptz\",\n\t\t\"timestamptz:string\": \"timestamptz\"\n\t},\n\t\"timestamp:string\": {\n\t\tdate: \"timestamp:string\",\n\t\t\"date:string\": \"timestamp:string\",\n\t\ttimestamp: \"timestamp:string\",\n\t\t\"timestamp:string\": \"timestamp:string\",\n\t\ttimestamptz: \"timestamptz:string\",\n\t\t\"timestamptz:string\": \"timestamptz:string\"\n\t},\n\ttimestamptz: {\n\t\tdate: \"timestamptz\",\n\t\t\"date:string\": \"timestamptz\",\n\t\ttimestamp: \"timestamptz\",\n\t\t\"timestamp:string\": \"timestamptz\",\n\t\ttimestamptz: \"timestamptz\",\n\t\t\"timestamptz:string\": \"timestamptz\"\n\t},\n\t\"timestamptz:string\": {\n\t\tdate: \"timestamptz:string\",\n\t\t\"date:string\": \"timestamptz:string\",\n\t\ttimestamp: \"timestamptz:string\",\n\t\t\"timestamp:string\": \"timestamptz:string\",\n\t\ttimestamptz: \"timestamptz:string\",\n\t\t\"timestamptz:string\": \"timestamptz:string\"\n\t},\n\tinterval: {\n\t\tinterval: \"interval\",\n\t\t\"interval:tuple\": \"interval\"\n\t},\n\t\"interval:tuple\": {\n\t\tinterval: \"interval:tuple\",\n\t\t\"interval:tuple\": \"interval:tuple\"\n\t},\n\tbool: { bool: \"bool\" },\n\tenum: { enum: \"enum\" },\n\tpoint: {\n\t\tpoint: \"point\",\n\t\t\"point:tuple\": \"point\"\n\t},\n\t\"point:tuple\": {\n\t\tpoint: \"point:tuple\",\n\t\t\"point:tuple\": \"point:tuple\"\n\t},\n\tline: {\n\t\tline: \"line\",\n\t\t\"line:tuple\": \"line\"\n\t},\n\t\"line:tuple\": {\n\t\tline: \"line:tuple\",\n\t\t\"line:tuple\": \"line:tuple\"\n\t},\n\tlseg: { lseg: \"lseg\" },\n\tbox: { box: \"box\" },\n\tpath: { path: \"path\" },\n\tpolygon: { polygon: \"polygon\" },\n\tcircle: { circle: \"circle\" },\n\tcidr: {\n\t\tcidr: \"cidr\",\n\t\tinet: \"inet\"\n\t},\n\tinet: {\n\t\tcidr: \"inet\",\n\t\tinet: \"inet\"\n\t},\n\tmacaddr: {\n\t\tmacaddr: \"macaddr\",\n\t\tmacaddr8: \"macaddr\"\n\t},\n\tmacaddr8: {\n\t\tmacaddr: \"macaddr8\",\n\t\tmacaddr8: \"macaddr8\"\n\t},\n\tbit: {\n\t\tbit: \"bit\",\n\t\tvarbit: \"bit\"\n\t},\n\tvarbit: {\n\t\tbit: \"varbit\",\n\t\tvarbit: \"varbit\"\n\t},\n\ttsvector: { tsvector: \"tsvector\" },\n\ttsquery: { tsquery: \"tsquery\" },\n\tuuid: { uuid: \"uuid\" },\n\txml: { xml: \"xml\" },\n\tjson: { json: \"json\" },\n\tjsonb: { jsonb: \"jsonb\" },\n\tint4range: { int4range: \"int4range\" },\n\tint8range: { int8range: \"int8range\" },\n\tnumrange: { numrange: \"numrange\" },\n\ttsrange: { tsrange: \"tsrange\" },\n\ttstzrange: { tstzrange: \"tstzrange\" },\n\tdaterange: { daterange: \"daterange\" },\n\tint4multirange: { int4multirange: \"int4multirange\" },\n\tint8multirange: { int8multirange: \"int8multirange\" },\n\tnummultirange: { nummultirange: \"nummultirange\" },\n\ttsmultirange: { tsmultirange: \"tsmultirange\" },\n\ttstzmultirange: { tstzmultirange: \"tstzmultirange\" },\n\tdatemultirange: { datemultirange: \"datemultirange\" },\n\toid: {\n\t\tsmallint: \"oid\",\n\t\tint: \"oid\",\n\t\tbigint: \"oid\",\n\t\t\"bigint:number\": \"oid\",\n\t\t\"bigint:string\": \"oid\",\n\t\tsmallserial: \"oid\",\n\t\tserial: \"oid\",\n\t\tbigserial: \"oid\",\n\t\t\"bigserial:number\": \"oid\",\n\t\toid: \"oid\",\n\t\tregproc: \"oid\",\n\t\tregprocedure: \"oid\",\n\t\tregoper: \"oid\",\n\t\tregoperator: \"oid\",\n\t\tregclass: \"oid\",\n\t\tregtype: \"oid\",\n\t\tregrole: \"oid\",\n\t\tregnamespace: \"oid\",\n\t\tregconfig: \"oid\",\n\t\tregdictionary: \"oid\"\n\t},\n\tregproc: {\n\t\tsmallint: \"regproc\",\n\t\tint: \"regproc\",\n\t\tbigint: \"regproc\",\n\t\t\"bigint:number\": \"regproc\",\n\t\t\"bigint:string\": \"regproc\",\n\t\tsmallserial: \"regproc\",\n\t\tserial: \"regproc\",\n\t\tbigserial: \"regproc\",\n\t\t\"bigserial:number\": \"regproc\",\n\t\toid: \"regproc\",\n\t\tregproc: \"regproc\",\n\t\tregprocedure: \"regproc\"\n\t},\n\tregprocedure: {\n\t\tsmallint: \"regprocedure\",\n\t\tint: \"regprocedure\",\n\t\tbigint: \"regprocedure\",\n\t\t\"bigint:number\": \"regprocedure\",\n\t\t\"bigint:string\": \"regprocedure\",\n\t\tsmallserial: \"regprocedure\",\n\t\tserial: \"regprocedure\",\n\t\tbigserial: \"regprocedure\",\n\t\t\"bigserial:number\": \"regprocedure\",\n\t\toid: \"regprocedure\",\n\t\tregproc: \"regprocedure\",\n\t\tregprocedure: \"regprocedure\"\n\t},\n\tregoper: {\n\t\tsmallint: \"regoper\",\n\t\tint: \"regoper\",\n\t\tbigint: \"regoper\",\n\t\t\"bigint:number\": \"regoper\",\n\t\t\"bigint:string\": \"regoper\",\n\t\tsmallserial: \"regoper\",\n\t\tserial: \"regoper\",\n\t\tbigserial: \"regoper\",\n\t\t\"bigserial:number\": \"regoper\",\n\t\toid: \"regoper\",\n\t\tregoper: \"regoper\",\n\t\tregoperator: \"regoper\"\n\t},\n\tregoperator: {\n\t\tsmallint: \"regoperator\",\n\t\tint: \"regoperator\",\n\t\tbigint: \"regoperator\",\n\t\t\"bigint:number\": \"regoperator\",\n\t\t\"bigint:string\": \"regoperator\",\n\t\tsmallserial: \"regoperator\",\n\t\tserial: \"regoperator\",\n\t\tbigserial: \"regoperator\",\n\t\t\"bigserial:number\": \"regoperator\",\n\t\toid: \"regoperator\",\n\t\tregoper: \"regoperator\",\n\t\tregoperator: \"regoperator\"\n\t},\n\tregclass: {\n\t\tsmallint: \"regclass\",\n\t\tint: \"regclass\",\n\t\tbigint: \"regclass\",\n\t\t\"bigint:number\": \"regclass\",\n\t\t\"bigint:string\": \"regclass\",\n\t\tsmallserial: \"regclass\",\n\t\tserial: \"regclass\",\n\t\tbigserial: \"regclass\",\n\t\t\"bigserial:number\": \"regclass\",\n\t\toid: \"regclass\",\n\t\tregclass: \"regclass\"\n\t},\n\tregtype: {\n\t\tsmallint: \"regtype\",\n\t\tint: \"regtype\",\n\t\tbigint: \"regtype\",\n\t\t\"bigint:number\": \"regtype\",\n\t\t\"bigint:string\": \"regtype\",\n\t\tsmallserial: \"regtype\",\n\t\tserial: \"regtype\",\n\t\tbigserial: \"regtype\",\n\t\t\"bigserial:number\": \"regtype\",\n\t\toid: \"regtype\",\n\t\tregtype: \"regtype\"\n\t},\n\tregrole: {\n\t\tsmallint: \"regrole\",\n\t\tint: \"regrole\",\n\t\tbigint: \"regrole\",\n\t\t\"bigint:number\": \"regrole\",\n\t\t\"bigint:string\": \"regrole\",\n\t\tsmallserial: \"regrole\",\n\t\tserial: \"regrole\",\n\t\tbigserial: \"regrole\",\n\t\t\"bigserial:number\": \"regrole\",\n\t\toid: \"regrole\",\n\t\tregrole: \"regrole\"\n\t},\n\tregnamespace: {\n\t\tsmallint: \"regnamespace\",\n\t\tint: \"regnamespace\",\n\t\tbigint: \"regnamespace\",\n\t\t\"bigint:number\": \"regnamespace\",\n\t\t\"bigint:string\": \"regnamespace\",\n\t\tsmallserial: \"regnamespace\",\n\t\tserial: \"regnamespace\",\n\t\tbigserial: \"regnamespace\",\n\t\t\"bigserial:number\": \"regnamespace\",\n\t\toid: \"regnamespace\",\n\t\tregnamespace: \"regnamespace\"\n\t},\n\tregconfig: {\n\t\tsmallint: \"regconfig\",\n\t\tint: \"regconfig\",\n\t\tbigint: \"regconfig\",\n\t\t\"bigint:number\": \"regconfig\",\n\t\t\"bigint:string\": \"regconfig\",\n\t\tsmallserial: \"regconfig\",\n\t\tserial: \"regconfig\",\n\t\tbigserial: \"regconfig\",\n\t\t\"bigserial:number\": \"regconfig\",\n\t\toid: \"regconfig\",\n\t\tregconfig: \"regconfig\"\n\t},\n\tregdictionary: {\n\t\tsmallint: \"regdictionary\",\n\t\tint: \"regdictionary\",\n\t\tbigint: \"regdictionary\",\n\t\t\"bigint:number\": \"regdictionary\",\n\t\t\"bigint:string\": \"regdictionary\",\n\t\tsmallserial: \"regdictionary\",\n\t\tserial: \"regdictionary\",\n\t\tbigserial: \"regdictionary\",\n\t\t\"bigserial:number\": \"regdictionary\",\n\t\toid: \"regdictionary\",\n\t\tregdictionary: \"regdictionary\"\n\t}\n};\nconst castToText = (name) => sql`${name}::text`;\nconst castToTextArr = (name, arrayDimensions) => sql`${name}::text${sql.raw(\"[]\".repeat(arrayDimensions))}`;\n/** Used for cases when casting requires to unwrap and rebuild arrays\n*\n* @example\n* string_mtx::text[][] // can be casted to array directly\n*\n* encode(bytea_mtx, 'base64')[][] // invalid syntax, cast requires unwrapping and rebuilding array\n*/\nconst arrayCompatCast = (cast) => (name, arrayDimensions) => {\n\tif (!arrayDimensions) return cast(name);\n\tconst aliases = [];\n\tfor (let i = 0; i < arrayDimensions; i++) aliases.push(sql.identifier(`s${i}`));\n\tlet indexed = name;\n\tfor (const alias of aliases) indexed = sql`${indexed}[${alias}]`;\n\tlet expression = sql`array(\\\nselect ${cast(indexed)} \\\nfrom generate_subscripts(${name}, ${sql.raw(arrayDimensions.toString())}) ${aliases[arrayDimensions - 1]} \\\norder by ${aliases[arrayDimensions - 1]})`;\n\tfor (let dim = arrayDimensions - 1; dim > 0; dim--) expression = sql`array(\\\nselect ${expression} \\\nfrom generate_subscripts(${name}, ${sql.raw(dim.toString())}) ${aliases[dim - 1]} \\\norder by ${aliases[dim - 1]})`;\n\treturn sql`case when ${name} is null then null else ${expression} end`;\n};\n/** Used to recursively apply value normalizer to array of unknown dimensions */\nconst arrayCompatNormalize = (normalize) => {\n\tconst loop = (value, arrayDimensions) => {\n\t\tconst innerDimensions = arrayDimensions - 1;\n\t\tif (arrayDimensions > 1) for (let i = 0; i < value.length; ++i) loop(value[i], innerDimensions);\n\t\telse for (let i = 0; i < value.length; ++i) value[i] = normalize(value[i]);\n\t\treturn value;\n\t};\n\treturn loop;\n};\n/** Doesn't mutate original data - used for insertions */\nconst arrayCompatNormalizeInput = (normalize, transformToPgArray = false) => {\n\tconst loop = (value, arrayDimensions) => {\n\t\tconst innerDimensions = arrayDimensions - 1;\n\t\tconst out = Array.from({ length: value.length });\n\t\tif (arrayDimensions > 1) for (let i = 0; i < value.length; ++i) out[i] = loop(value[i], innerDimensions);\n\t\telse for (let i = 0; i < value.length; ++i) out[i] = normalize(value[i]);\n\t\treturn out;\n\t};\n\treturn transformToPgArray ? (v, d) => makePgArray(loop(v, d)) : loop;\n};\n/** Parses a raw PG array text representation, then applies a per-item normalizer */\nconst parsePgArrayAndNormalize = (normalize) => {\n\tconst codec = arrayCompatNormalize(normalize);\n\treturn (value, arrayDimensions) => codec(parsePgArray(value), arrayDimensions);\n};\nconst parseLineTuple = (v) => {\n\tconst [a, b, c] = v.slice(1, -1).split(\",\");\n\treturn [\n\t\tNumber.parseFloat(a),\n\t\tNumber.parseFloat(b),\n\t\tNumber.parseFloat(c)\n\t];\n};\nconst parseLineABC = (v) => {\n\tconst [a, b, c] = v.slice(1, -1).split(\",\");\n\treturn {\n\t\ta: Number.parseFloat(a),\n\t\tb: Number.parseFloat(b),\n\t\tc: Number.parseFloat(c)\n\t};\n};\nconst parsePointTuple = (v) => {\n\tconst [x, y] = v.slice(1, -1).split(\",\");\n\treturn [Number.parseFloat(x), Number.parseFloat(y)];\n};\nconst parsePointXY = (v) => {\n\tconst [x, y] = v.slice(1, -1).split(\",\");\n\treturn {\n\t\tx: Number.parseFloat(x),\n\t\ty: Number.parseFloat(y)\n\t};\n};\nconst parseGeometryTuple = (v) => parseEWKB(v).point;\nconst parseGeometryXY = (v) => {\n\tconst parsed = parseEWKB(v);\n\treturn {\n\t\tx: parsed.point[0],\n\t\ty: parsed.point[1]\n\t};\n};\nconst textToDate = (v) => new Date(v);\nconst textToDateWithTz = (v) => /* @__PURE__ */ new Date(v + \"+0000\");\nconst parsePgVector = (v) => {\n\tconst body = v.slice(1, -1);\n\tif (body.length === 0) return [];\n\treturn body.split(\",\").map(Number.parseFloat);\n};\nconst genericPgCodecs = {\n\tbytea: {\n\t\tcastInJson: (name) => sql`encode(${name}, 'base64')`,\n\t\tcastArrayInJson: arrayCompatCast((name) => sql`encode(${name}, 'base64')`),\n\t\tnormalizeInJson: (v) => Buffer.from(v, \"base64\"),\n\t\tnormalizeArrayInJson: arrayCompatNormalize((v) => Buffer.from(v, \"base64\"))\n\t},\n\tbigint: {\n\t\tcastInJson: castToText,\n\t\tcastArrayInJson: castToTextArr,\n\t\tnormalizeInJson: BigInt,\n\t\tnormalizeArrayInJson: arrayCompatNormalize(BigInt)\n\t},\n\t\"bigint:number\": {\n\t\tcastInJson: castToText,\n\t\tcastArrayInJson: castToTextArr,\n\t\tnormalize: Number,\n\t\tnormalizeArray: arrayCompatNormalize(Number),\n\t\tnormalizeInJson: Number,\n\t\tnormalizeArrayInJson: arrayCompatNormalize(Number)\n\t},\n\t\"bigint:string\": {\n\t\tcastInJson: castToText,\n\t\tcastArrayInJson: castToTextArr\n\t},\n\tbigserial: {\n\t\tcastInJson: castToText,\n\t\tcastArrayInJson: castToTextArr,\n\t\tnormalizeInJson: BigInt,\n\t\tnormalizeArrayInJson: arrayCompatNormalize(BigInt),\n\t\tnormalize: BigInt,\n\t\tnormalizeArray: arrayCompatNormalize(BigInt)\n\t},\n\t\"bigserial:number\": {\n\t\tcastInJson: castToText,\n\t\tcastArrayInJson: castToTextArr,\n\t\tnormalize: Number,\n\t\tnormalizeArray: arrayCompatNormalize(Number),\n\t\tnormalizeInJson: Number,\n\t\tnormalizeArrayInJson: arrayCompatNormalize(Number)\n\t},\n\tdate: {\n\t\tnormalizeInJson: textToDate,\n\t\tnormalizeArrayInJson: arrayCompatNormalize(textToDate)\n\t},\n\t\"date:string\": {},\n\tenum: {\n\t\tcastArray: castToTextArr,\n\t\tnormalizeParamArray: makePgArray\n\t},\n\t\"geometry(point)\": {\n\t\tcastInJson: castToText,\n\t\tcastArrayInJson: castToTextArr,\n\t\tnormalize: parseGeometryXY,\n\t\tnormalizeArray: arrayCompatNormalize(parseGeometryXY),\n\t\tnormalizeInJson: parseGeometryXY,\n\t\tnormalizeArrayInJson: arrayCompatNormalize(parseGeometryXY)\n\t},\n\t\"geometry(point):tuple\": {\n\t\tcastInJson: castToText,\n\t\tcastArrayInJson: castToTextArr,\n\t\tnormalize: parseGeometryTuple,\n\t\tnormalizeArray: arrayCompatNormalize(parseGeometryTuple),\n\t\tnormalizeInJson: parseGeometryTuple,\n\t\tnormalizeArrayInJson: arrayCompatNormalize(parseGeometryTuple)\n\t},\n\tinterval: { castArrayInJson: castToTextArr },\n\tjson: { normalizeParamArray: arrayCompatNormalizeInput((v) => JSON.stringify(v), true) },\n\tjsonb: { normalizeParamArray: arrayCompatNormalizeInput((v) => JSON.stringify(v), true) },\n\tline: {\n\t\tcastInJson: castToText,\n\t\tcastArrayInJson: castToTextArr,\n\t\tnormalize: parseLineABC,\n\t\tnormalizeArray: arrayCompatNormalize(parseLineABC),\n\t\tnormalizeInJson: parseLineABC,\n\t\tnormalizeArrayInJson: arrayCompatNormalize(parseLineABC)\n\t},\n\t\"line:tuple\": {\n\t\tcastInJson: castToText,\n\t\tcastArrayInJson: castToTextArr,\n\t\tnormalize: parseLineTuple,\n\t\tnormalizeArray: arrayCompatNormalize(parseLineTuple),\n\t\tnormalizeInJson: parseLineTuple,\n\t\tnormalizeArrayInJson: arrayCompatNormalize(parseLineTuple)\n\t},\n\tnumeric: {\n\t\tcastInJson: castToText,\n\t\tcastArrayInJson: castToTextArr,\n\t\tcastArray: castToTextArr\n\t},\n\t\"numeric:number\": {\n\t\tcastInJson: castToText,\n\t\tcastArrayInJson: castToTextArr,\n\t\tcastArray: castToTextArr,\n\t\tnormalize: Number,\n\t\tnormalizeArray: arrayCompatNormalize(Number),\n\t\tnormalizeInJson: Number,\n\t\tnormalizeArrayInJson: arrayCompatNormalize(Number)\n\t},\n\t\"numeric:bigint\": {\n\t\tcastInJson: castToText,\n\t\tcastArrayInJson: castToTextArr,\n\t\tcastArray: castToTextArr,\n\t\tnormalize: BigInt,\n\t\tnormalizeArray: arrayCompatNormalize(BigInt),\n\t\tnormalizeInJson: BigInt,\n\t\tnormalizeArrayInJson: arrayCompatNormalize(BigInt)\n\t},\n\tpoint: {\n\t\tcastInJson: castToText,\n\t\tcastArrayInJson: castToTextArr,\n\t\tnormalize: parsePointXY,\n\t\tnormalizeArray: arrayCompatNormalize(parsePointXY),\n\t\tnormalizeInJson: parsePointXY,\n\t\tnormalizeArrayInJson: arrayCompatNormalize(parsePointXY)\n\t},\n\t\"point:tuple\": {\n\t\tcastInJson: castToText,\n\t\tcastArrayInJson: castToTextArr,\n\t\tnormalize: parsePointTuple,\n\t\tnormalizeArray: arrayCompatNormalize(parsePointTuple),\n\t\tnormalizeInJson: parsePointTuple,\n\t\tnormalizeArrayInJson: arrayCompatNormalize(parsePointTuple)\n\t},\n\ttimestamp: {\n\t\tcastInJson: castToText,\n\t\tcastArrayInJson: castToTextArr,\n\t\tnormalizeInJson: textToDateWithTz,\n\t\tnormalizeArrayInJson: arrayCompatNormalize(textToDateWithTz)\n\t},\n\ttimestamptz: {\n\t\tcastInJson: castToText,\n\t\tcastArrayInJson: castToTextArr,\n\t\tnormalizeInJson: textToDate,\n\t\tnormalizeArrayInJson: arrayCompatNormalize(textToDate)\n\t},\n\t\"timestamp:string\": {\n\t\tcastInJson: castToText,\n\t\tcastArrayInJson: castToTextArr\n\t},\n\t\"timestamptz:string\": {\n\t\tcastInJson: castToText,\n\t\tcastArrayInJson: castToTextArr\n\t},\n\thalfvec: {\n\t\tnormalize: parsePgVector,\n\t\tnormalizeArray: parsePgArrayAndNormalize(parsePgVector),\n\t\tnormalizeInJson: parsePgVector,\n\t\tnormalizeArrayInJson: arrayCompatNormalize(parsePgVector)\n\t},\n\tvector: {\n\t\tnormalize: parsePgVector,\n\t\tnormalizeArray: parsePgArrayAndNormalize(parsePgVector),\n\t\tnormalizeInJson: parsePgVector,\n\t\tnormalizeArrayInJson: arrayCompatNormalize(parsePgVector)\n\t}\n};\nconst refineGenericPgCodecs = (extension) => refineCodecs(genericPgCodecs, extension);\n\n//#endregion\nexport { arrayCompatCast, arrayCompatNormalize, arrayCompatNormalizeInput, castToText, castToTextArr, genericPgCodecs, parseGeometryTuple, parseGeometryXY, parseLineABC, parseLineTuple, parsePgArrayAndNormalize, parsePgVector, parsePointTuple, parsePointXY, refineGenericPgCodecs, resolvePgTypeAlias, textToDate, textToDateWithTz, unionsTypeTable };\n//# sourceMappingURL=codecs.js.map",
27
+ "import { parsePgArray } from \"../pg-core/array.js\";\nimport { arrayCompatNormalize, castToText, castToTextArr, parseGeometryTuple, parseGeometryXY, parsePgArrayAndNormalize, refineGenericPgCodecs, textToDate, textToDateWithTz } from \"../pg-core/codecs.js\";\n\n//#region src/neon-http/codecs.ts\nconst neonHttpCodecs = refineGenericPgCodecs({\n\tbigint: {\n\t\tnormalize: BigInt,\n\t\tnormalizeArray: arrayCompatNormalize(BigInt)\n\t},\n\tbigserial: {\n\t\tnormalize: BigInt,\n\t\tnormalizeArray: arrayCompatNormalize(BigInt)\n\t},\n\tbit: { normalizeArray: parsePgArray },\n\tbytea: { normalizeParam: String },\n\tdate: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDate,\n\t\tnormalizeArray: arrayCompatNormalize(textToDate)\n\t},\n\t\"date:string\": { castArray: castToTextArr },\n\ttimestamp: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDateWithTz,\n\t\tnormalizeArray: arrayCompatNormalize(textToDateWithTz)\n\t},\n\ttimestamptz: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDate,\n\t\tnormalizeArray: arrayCompatNormalize(textToDate)\n\t},\n\t\"timestamp:string\": { castArray: castToTextArr },\n\t\"timestamptz:string\": { castArray: castToTextArr },\n\t\"geometry(point)\": { normalizeArray: parsePgArrayAndNormalize(parseGeometryXY) },\n\t\"geometry(point):tuple\": { normalizeArray: parsePgArrayAndNormalize(parseGeometryTuple) },\n\tinterval: { castArray: castToTextArr },\n\tjson: { normalizeParam: (v) => JSON.stringify(v) },\n\tjsonb: { normalizeParam: (v) => JSON.stringify(v) },\n\tline: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr\n\t},\n\t\"line:tuple\": {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr\n\t},\n\tmacaddr8: {\n\t\tcastArrayInJson: castToTextArr,\n\t\tcastArray: castToTextArr\n\t},\n\tpoint: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr\n\t},\n\t\"point:tuple\": {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr\n\t},\n\tsparsevec: { normalizeArray: parsePgArray }\n});\n\n//#endregion\nexport { neonHttpCodecs };\n//# sourceMappingURL=codecs.js.map",
28
+ "import { entityKind } from \"./entity.js\";\n\n//#region src/logger.ts\nvar ConsoleLogWriter = class {\n\tstatic [entityKind] = \"ConsoleLogWriter\";\n\twrite(message) {\n\t\tconsole.log(message);\n\t}\n};\nvar DefaultLogger = class {\n\tstatic [entityKind] = \"DefaultLogger\";\n\twriter;\n\tconstructor(config) {\n\t\tthis.writer = config?.writer ?? new ConsoleLogWriter();\n\t}\n\tlogQuery(query, params) {\n\t\tconst stringifiedParams = params.map((p) => {\n\t\t\ttry {\n\t\t\t\treturn JSON.stringify(p);\n\t\t\t} catch {\n\t\t\t\treturn String(p);\n\t\t\t}\n\t\t});\n\t\tconst paramsStr = stringifiedParams.length ? ` -- params: [${stringifiedParams.join(\", \")}]` : \"\";\n\t\tthis.writer.write(`Query: ${query}${paramsStr}`);\n\t}\n};\nvar NoopLogger = class {\n\tstatic [entityKind] = \"NoopLogger\";\n\tlogQuery() {}\n};\n\n//#endregion\nexport { ConsoleLogWriter, DefaultLogger, NoopLogger };\n//# sourceMappingURL=logger.js.map",
29
+ "import { entityKind } from \"../../entity.js\";\n\n//#region src/cache/core/cache.ts\nvar Cache = class {\n\tstatic [entityKind] = \"Cache\";\n};\nvar NoopCache = class extends Cache {\n\tstatic [entityKind] = \"NoopCache\";\n\tstrategy() {\n\t\treturn \"all\";\n\t}\n\tasync get(_key) {}\n\tasync put(_hashedQuery, _response, _tables, _config) {}\n\tasync onMutate(_params) {}\n};\nconst strategyFor = async (query, params, queryMetadata, withCacheConfig) => {\n\tif (!queryMetadata) return { type: \"skip\" };\n\tconst { type, tables } = queryMetadata;\n\tif ((type === \"insert\" || type === \"update\" || type === \"delete\") && tables.length > 0) return {\n\t\ttype: \"invalidate\",\n\t\ttables\n\t};\n\tif (!withCacheConfig) return { type: \"skip\" };\n\tif (!withCacheConfig.enabled) return { type: \"skip\" };\n\tif (type === \"select\") return {\n\t\ttype: \"try\",\n\t\tkey: withCacheConfig.tag ?? await hashQuery(query, params),\n\t\tisTag: typeof withCacheConfig.tag !== \"undefined\",\n\t\tautoInvalidate: withCacheConfig.autoInvalidate,\n\t\ttables: queryMetadata.tables,\n\t\tconfig: withCacheConfig.config\n\t};\n\treturn { type: \"skip\" };\n};\nasync function hashQuery(sql, params) {\n\tconst dataToHash = `${sql}-${JSON.stringify(params, (_, v) => typeof v === \"bigint\" ? `${v}n` : v)}`;\n\tconst data = new TextEncoder().encode(dataToHash);\n\tconst hashBuffer = await crypto.subtle.digest(\"SHA-256\", data);\n\treturn [...new Uint8Array(hashBuffer)].map((b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\n//#endregion\nexport { Cache, NoopCache, hashQuery, strategyFor };\n//# sourceMappingURL=cache.js.map",
30
+ "import { entityKind } from \"../../entity.js\";\nimport { SQL, sql } from \"../../sql/sql.js\";\n\n//#region src/pg-core/query-builders/count.ts\nvar PgCountBuilder = class PgCountBuilder extends SQL {\n\tstatic [entityKind] = \"PgCountBuilder\";\n\tdialect;\n\tstatic buildCount(source, filters, parens) {\n\t\tconst query = sql`select count(*) from ${source}${sql` where ${filters}`.if(filters)}`;\n\t\treturn parens ? sql`(${query})` : query;\n\t}\n\tconstructor(countConfig) {\n\t\tsuper(PgCountBuilder.buildCount(countConfig.source, countConfig.filters, true).queryChunks);\n\t\tthis.countConfig = countConfig;\n\t\tthis.dialect = countConfig.dialect;\n\t\tthis.mapWith((e) => {\n\t\t\tif (typeof e === \"number\") return e;\n\t\t\treturn Number(e ?? 0);\n\t\t});\n\t}\n\texecutableSql;\n\tbuild() {\n\t\tif (!this.executableSql) {\n\t\t\tconst { source, filters } = this.countConfig;\n\t\t\tthis.executableSql = PgCountBuilder.buildCount(source, filters);\n\t\t}\n\t\treturn this.dialect.sqlToQuery(this.executableSql);\n\t}\n};\n\n//#endregion\nexport { PgCountBuilder };\n//# sourceMappingURL=count.js.map",
31
+ "import { is } from \"./entity.js\";\nimport { Column } from \"./column.js\";\nimport { Table, getTableName } from \"./table.js\";\nimport { Param, SQL, View } from \"./sql/sql.js\";\nimport { Subquery } from \"./subquery.js\";\nimport { ViewBaseConfig } from \"./view-common.js\";\n\n//#region src/utils.ts\n/** @internal */\nfunction mapResultRow(columns, row, joinsNotNullableMap) {\n\tconst nullifyMap = {};\n\tconst result = columns.reduce((result, { path, field, codec, arrayDimensions }, columnIndex) => {\n\t\tlet decoder;\n\t\tif (is(field, Column)) decoder = field;\n\t\telse if (is(field, SQL)) decoder = field.decoder;\n\t\telse if (is(field, Subquery)) decoder = field._.sql.decoder;\n\t\telse decoder = field.sql.decoder;\n\t\tlet node = result;\n\t\tfor (const [pathChunkIndex, pathChunk] of path.entries()) if (pathChunkIndex < path.length - 1) {\n\t\t\tif (!(pathChunk in node)) node[pathChunk] = {};\n\t\t\tnode = node[pathChunk];\n\t\t} else {\n\t\t\tconst rawValue = row[columnIndex];\n\t\t\tconst value = node[pathChunk] = rawValue === null ? null : decoder.mapFromDriverValue(codec ? codec(rawValue, arrayDimensions) : rawValue);\n\t\t\tif (joinsNotNullableMap && is(field, Column) && path.length === 2) {\n\t\t\t\tconst objectName = path[0];\n\t\t\t\tif (!(objectName in nullifyMap)) nullifyMap[objectName] = value === null ? getTableName(field.table) : false;\n\t\t\t\telse if (typeof nullifyMap[objectName] === \"string\" && nullifyMap[objectName] !== getTableName(field.table)) nullifyMap[objectName] = false;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}, {});\n\tif (joinsNotNullableMap && Object.keys(nullifyMap).length > 0) {\n\t\tfor (const [objectName, tableName] of Object.entries(nullifyMap)) if (typeof tableName === \"string\" && !joinsNotNullableMap[tableName]) result[objectName] = null;\n\t}\n\treturn result;\n}\n/** @internal bypass bundle-time filtering */\nconst FnConstructor = Object.getPrototypeOf(() => null).constructor;\n/** @internal */\nfunction makeJitQueryMapperInner(columns, joinsNotNullableMap = {}) {\n\tconst preFn = [];\n\tconst fn = [];\n\tfn.push(`const [ ${columns.map((_, i) => `c${i}`).join(\", \")} ] = rows[i];`);\n\tconst nullifyMap = {};\n\tconst objectIds = {};\n\tconst decodes = Array.from({ length: columns.length });\n\tfor (let idx = 0; idx < columns.length; ++idx) {\n\t\tconst { field, path, codec, arrayDimensions } = columns[idx];\n\t\tlet decoder;\n\t\tlet decoderStr;\n\t\tlet decoderFieldDestructure;\n\t\tlet isColumn = false;\n\t\tif (is(field, Column)) {\n\t\t\tisColumn = true;\n\t\t\tdecoder = field;\n\t\t\tdecoderFieldDestructure = `field: decoder${idx}`;\n\t\t} else if (is(field, SQL)) {\n\t\t\tdecoder = field.decoder;\n\t\t\tdecoderFieldDestructure = `field: { decoder: decoder${idx} }`;\n\t\t} else if (is(field, Subquery)) {\n\t\t\tdecoder = field._.sql.decoder;\n\t\t\tdecoderFieldDestructure = `field: { _: { sql: { decoder: decoder${idx} } } }`;\n\t\t} else {\n\t\t\tdecoder = field.sql.decoder;\n\t\t\tdecoderFieldDestructure = `field: { sql: { decoder: decoder${idx} } }`;\n\t\t}\n\t\tdecoderStr = `decoder${idx}.mapFromDriverValue`;\n\t\tif (decoder.mapFromDriverValue.isNoop) decoderStr = \"\";\n\t\tif (decoderStr) preFn.push(`const { ${decoderFieldDestructure}${codec ? `, codec: codec${idx}` : \"\"} } = columns[${idx}];`);\n\t\telse if (codec) preFn.push(`const { codec: codec${idx} } = columns[${idx}];`);\n\t\tconst colStr = `c${idx}`;\n\t\tlet decodedValue = colStr;\n\t\tif (codec) decodedValue = `codec${idx}(${decodedValue}, ${arrayDimensions})`;\n\t\tif (decoderStr) decodedValue = `${decoderStr}(${decodedValue})`;\n\t\tdecodes[idx] = colStr === decodedValue ? `${colStr}` : `${colStr} === null ? ${colStr} : ${decodedValue}`;\n\t\tif (path.length !== 2 || !isColumn) continue;\n\t\tif (objectIds[path[0]] === void 0) objectIds[path[0]] = [`c${idx}`];\n\t\telse objectIds[path[0]]?.push(`c${idx}`);\n\t\tconst [objectName] = path;\n\t\tconst tableName = getTableName(field.table);\n\t\tnullifyMap[objectName] = joinsNotNullableMap[tableName] ? false : typeof nullifyMap[objectName] === \"string\" ? nullifyMap[objectName] === tableName ? tableName : false : tableName;\n\t}\n\tfn.push(`mapped[i] = {`);\n\tlet currentObjectPath = [];\n\tfor (let idx = 0; idx < columns.length; ++idx) {\n\t\tconst { path } = columns[idx];\n\t\tconst jsonPath = path.map((e) => JSON.stringify(e));\n\t\tconst decodedValue = decodes[idx];\n\t\tconst objectPath = path.slice(0, -1);\n\t\tlet commonLen = 0;\n\t\twhile (commonLen < currentObjectPath.length && commonLen < objectPath.length && currentObjectPath[commonLen] === objectPath[commonLen]) commonLen++;\n\t\tfor (let d = currentObjectPath.length - 1; d >= commonLen; --d) fn.push(`${\"\t\".repeat(d + 1)}},`);\n\t\tfor (let d = commonLen; d < objectPath.length; ++d) fn.push(`${\"\t\".repeat(d + 1)}${jsonPath[d]}: ${d === 0 && objectPath.length === 1 && typeof nullifyMap[path[0]] === \"string\" ? `${objectIds[path[0]]?.map((c) => `${c} === null`).join(\" && \")} ? null : {` : \"{\"}`);\n\t\tcurrentObjectPath = objectPath;\n\t\tfn.push(`${\"\t\".repeat(path.length)}${jsonPath[path.length - 1]}: ${decodedValue},`);\n\t}\n\tfor (let d = currentObjectPath.length - 1; d >= 0; --d) fn.push(`${\"\t\".repeat(d + 1)}},`);\n\tfn.push(`};`);\n\treturn `${preFn.length ? `${preFn.join(\"\\n\t\")}\\n\\t` : \"\"}for (let i = 0; i < length; ++i) {\n\t\t${fn.join(\"\\n\t\t\")}\n\t}`;\n}\nfunction makeJitQueryMapper(columns, joinsNotNullableMap) {\n\tconst internals = `\\t\"use strict\";\n\tconst { columns } = this;\n\tconst { length } = rows;\n\tconst mapped = Array.from({ length });\n\t${makeJitQueryMapperInner(columns, joinsNotNullableMap)}\n\treturn mapped;\n\t//# sourceURL=drizzle:jit-query-mapper`;\n\treturn Object.assign(new FnConstructor(\"rows\", internals).bind({ columns }), { body: `function jitQueryMapper (rows) {\\n${internals}\\n}` });\n}\n/** @internal */\nfunction jitCompatCheck(isEnabled) {\n\tif (!isEnabled) return false;\n\ttry {\n\t\tconst res = new FnConstructor(\"input\", \"\\\"use strict\\\"; return input;\")(true);\n\t\tif (res !== true) {\n\t\t\tconsole.warn(\"Unable to use jit mappers due to incompatibility: corrupted jit function output.\\nFalling back to premade mappers.\\nError details:\");\n\t\t\tconsole.error(`Expected to receive \\`true\\`, got: ${res}`);\n\t\t}\n\t\treturn true;\n\t} catch (e) {\n\t\tconsole.warn(\"Unable to use jit mappers due to incompatibility.\\nFalling back to premade mappers.\\nError details:\");\n\t\tconsole.error(e);\n\t\treturn false;\n\t}\n}\nfunction makeDefaultQueryMapper(columns, joinsNotNullableMap) {\n\tconst interpretedData = columns.map(({ field, codec, arrayDimensions, path }) => {\n\t\tlet processNullifyMap;\n\t\tlet decoderSrc;\n\t\tif (is(field, Column)) {\n\t\t\tdecoderSrc = field;\n\t\t\tif (joinsNotNullableMap && path.length === 2) {\n\t\t\t\tconst objectName = path[0];\n\t\t\t\tprocessNullifyMap = (nullifyMap, value) => {\n\t\t\t\t\tif (!(objectName in nullifyMap)) nullifyMap[objectName] = value === null ? getTableName(field.table) : false;\n\t\t\t\t\telse if (typeof nullifyMap[objectName] === \"string\" && nullifyMap[objectName] !== getTableName(field.table)) nullifyMap[objectName] = false;\n\t\t\t\t};\n\t\t\t}\n\t\t} else if (is(field, SQL)) decoderSrc = field.decoder;\n\t\telse if (is(field, Subquery)) decoderSrc = field._.sql.decoder;\n\t\telse decoderSrc = field.sql.decoder;\n\t\tlet decoder;\n\t\tif (decoderSrc.mapFromDriverValue.isNoop) decoder = codec ? (v) => codec(v, arrayDimensions) : void 0;\n\t\telse decoder = codec ? (v) => decoderSrc.mapFromDriverValue(codec(v, arrayDimensions)) : (v) => decoderSrc.mapFromDriverValue(v);\n\t\treturn [decoder, processNullifyMap];\n\t});\n\treturn ((rows) => rows.map((row) => {\n\t\tconst nullifyMap = {};\n\t\tconst result = columns.reduce((result, { path }, columnIndex) => {\n\t\t\tlet node = result;\n\t\t\tfor (const [pathChunkIndex, pathChunk] of path.entries()) if (pathChunkIndex < path.length - 1) {\n\t\t\t\tif (!(pathChunk in node)) node[pathChunk] = {};\n\t\t\t\tnode = node[pathChunk];\n\t\t\t} else {\n\t\t\t\tconst [decoder, processNullifyMap] = interpretedData[columnIndex];\n\t\t\t\tconst rawValue = row[columnIndex];\n\t\t\t\tconst value = node[pathChunk] = rawValue === null ? null : decoder ? decoder(rawValue) : rawValue;\n\t\t\t\tprocessNullifyMap?.(nullifyMap, value);\n\t\t\t}\n\t\t\treturn result;\n\t\t}, {});\n\t\tif (joinsNotNullableMap && Object.keys(nullifyMap).length > 0) {\n\t\t\tfor (const [objectName, tableName] of Object.entries(nullifyMap)) if (typeof tableName === \"string\" && !joinsNotNullableMap[tableName]) result[objectName] = null;\n\t\t}\n\t\treturn result;\n\t}));\n}\nfunction make$ReturningResponseMapper(returningIds, generatedIds) {\n\tif (!returningIds) return;\n\treturn ({ insertId, affectedRows }) => {\n\t\tconst returningResponse = [];\n\t\tlet j = 0;\n\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\tfor (const column of returningIds) {\n\t\t\t\tconst key = returningIds[0].path[0];\n\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) returningResponse.push({ [key]: i });\n\t\t\t\t\tif (column.field.defaultFn && generatedIds) returningResponse.push({ [key]: generatedIds[j][key] });\n\t\t\t\t}\n\t\t\t}\n\t\t\tj++;\n\t\t}\n\t\treturn returningResponse;\n\t};\n}\n/** @internal */\nfunction orderSelectedFields(fields, pathPrefix, codecs) {\n\treturn Object.entries(fields).reduce((result, [name, field]) => {\n\t\tif (typeof name !== \"string\") return result;\n\t\tconst newPath = pathPrefix ? [...pathPrefix, name] : [name];\n\t\tif (is(field, Column)) result.push({\n\t\t\tpath: newPath,\n\t\t\tfield,\n\t\t\tcodec: codecs?.get(field, \"normalize\"),\n\t\t\tarrayDimensions: field.dimensions,\n\t\t\tcolumn: field\n\t\t});\n\t\telse if (is(field, SQL) || is(field, SQL.Aliased)) {\n\t\t\tconst col = getColumnFromDecoder(field);\n\t\t\tresult.push(col ? {\n\t\t\t\tpath: newPath,\n\t\t\t\tfield,\n\t\t\t\tcodec: codecs?.get(col, \"normalize\"),\n\t\t\t\tarrayDimensions: col.dimensions,\n\t\t\t\tcolumn: col\n\t\t\t} : {\n\t\t\t\tpath: newPath,\n\t\t\t\tfield\n\t\t\t});\n\t\t} else if (is(field, Subquery)) {\n\t\t\tlet column;\n\t\t\tconst entry = Object.values(field._.selectedFields)[0];\n\t\t\tlet fieldDecoder;\n\t\t\tif (is(entry, Column)) {\n\t\t\t\tcolumn = entry;\n\t\t\t\tfieldDecoder = entry;\n\t\t\t} else if (is(entry, SQL)) {\n\t\t\t\tcolumn = getColumnFromDecoder(entry);\n\t\t\t\tfieldDecoder = entry.decoder;\n\t\t\t} else {\n\t\t\t\tcolumn = getColumnFromDecoder(entry);\n\t\t\t\tfieldDecoder = entry.sql.decoder;\n\t\t\t}\n\t\t\tif (fieldDecoder) field._.sql.decoder = fieldDecoder;\n\t\t\tresult.push(column ? {\n\t\t\t\tpath: newPath,\n\t\t\t\tfield,\n\t\t\t\tcodec: codecs?.get(column, \"normalize\"),\n\t\t\t\tarrayDimensions: column.dimensions,\n\t\t\t\tcolumn\n\t\t\t} : {\n\t\t\t\tpath: newPath,\n\t\t\t\tfield\n\t\t\t});\n\t\t} else if (is(field, Table)) result.push(...orderSelectedFields(field[Table.Symbol.Columns], newPath, codecs));\n\t\telse result.push(...orderSelectedFields(field, newPath, codecs));\n\t\treturn result;\n\t}, []);\n}\nfunction getColumnFromDecoder(source) {\n\tconst query = source.getSQL();\n\tif (is(query.decoder, Column)) return query.decoder;\n}\nfunction haveSameKeys(left, right) {\n\tconst leftKeys = Object.keys(left);\n\tconst rightKeys = Object.keys(right);\n\tif (leftKeys.length !== rightKeys.length) return false;\n\tfor (const [index, key] of leftKeys.entries()) if (key !== rightKeys[index]) return false;\n\treturn true;\n}\n/** @internal */\nfunction mapUpdateSet(table, values) {\n\tconst entries = Object.entries(values).filter(([, value]) => value !== void 0).map(([key, value]) => {\n\t\tif (is(value, SQL) || is(value, Column)) return [key, value];\n\t\telse return [key, new Param(value, table[Table.Symbol.Columns][key])];\n\t});\n\tif (entries.length === 0) throw new Error(\"No values to set\");\n\treturn Object.fromEntries(entries);\n}\n/** @internal */\nfunction applyMixins(baseClass, extendedClasses) {\n\tfor (const extendedClass of extendedClasses) for (const name of Object.getOwnPropertyNames(extendedClass.prototype)) {\n\t\tif (name === \"constructor\") continue;\n\t\tObject.defineProperty(baseClass.prototype, name, Object.getOwnPropertyDescriptor(extendedClass.prototype, name) || Object.create(null));\n\t}\n}\n/**\n* @deprecated\n* Use `getColumns` instead\n*/\nfunction getTableColumns(table) {\n\treturn table[Table.Symbol.Columns];\n}\nfunction getViewSelectedFields(view) {\n\treturn view[ViewBaseConfig].selectedFields;\n}\nfunction getColumns(table) {\n\treturn is(table, Table) ? table[Table.Symbol.Columns] : is(table, View) ? table[ViewBaseConfig].selectedFields : table._.selectedFields;\n}\n/** @internal */\nfunction getTableLikeName(table) {\n\treturn is(table, Subquery) ? table._.alias : is(table, View) ? table[ViewBaseConfig].name : is(table, SQL) ? void 0 : table[Table.Symbol.IsAlias] ? table[Table.Symbol.Name] : table[Table.Symbol.BaseName];\n}\n/** @internal */\nfunction getColumnNameAndConfig(a, b) {\n\treturn {\n\t\tname: typeof a === \"string\" && a.length > 0 ? a : \"\",\n\t\tconfig: typeof a === \"object\" ? a : b\n\t};\n}\nfunction isConfig(data) {\n\tif (typeof data !== \"object\" || data === null) return false;\n\tif (data.constructor.name !== \"Object\") return false;\n\tif (\"logger\" in data) {\n\t\tconst type = typeof data[\"logger\"];\n\t\tif (type !== \"boolean\" && (type !== \"object\" || typeof data[\"logger\"][\"logQuery\"] !== \"function\") && type !== \"undefined\") return false;\n\t\treturn true;\n\t}\n\tif (\"schema\" in data) {\n\t\tconst type = typeof data[\"schema\"];\n\t\tif (type !== \"object\" && type !== \"undefined\") return false;\n\t\treturn true;\n\t}\n\tif (\"relations\" in data) {\n\t\tconst type = typeof data[\"relations\"];\n\t\tif (type !== \"object\" && type !== \"undefined\") return false;\n\t\treturn true;\n\t}\n\tif (\"connection\" in data) {\n\t\tconst type = typeof data[\"connection\"];\n\t\tif (type !== \"string\" && type !== \"object\" && type !== \"undefined\") return false;\n\t\treturn true;\n\t}\n\tif (\"client\" in data) {\n\t\tconst type = typeof data[\"client\"];\n\t\tif (type !== \"object\" && type !== \"function\" && type !== \"undefined\") return false;\n\t\treturn true;\n\t}\n\tif (\"jit\" in data) {\n\t\tconst type = typeof data[\"jit\"];\n\t\tif (type !== \"boolean\" && type !== \"undefined\") return false;\n\t\treturn true;\n\t}\n\tif (\"codecs\" in data) {\n\t\tconst type = typeof data[\"connection\"];\n\t\tif (type !== \"object\" && type !== \"undefined\") return false;\n\t\treturn true;\n\t}\n\tif (Object.keys(data).length === 0) return true;\n\treturn false;\n}\nconst textDecoder = typeof TextDecoder === \"undefined\" ? null : new TextDecoder();\nfunction assertUnreachable(_x) {\n\tthrow new Error(\"Didn't expect to get here\");\n}\nfunction isWithEnum(value) {\n\treturn (typeof value === \"object\" && value !== null || typeof value === \"function\") && \"enumValues\" in value && Array.isArray(value.enumValues) && value.enumValues.length > 0;\n}\nconst CONSTANTS = {\n\tINT8_MIN: -128,\n\tINT8_MAX: 127,\n\tINT8_UNSIGNED_MAX: 255,\n\tINT16_MIN: -32768,\n\tINT16_MAX: 32767,\n\tINT16_UNSIGNED_MAX: 65535,\n\tINT24_MIN: -8388608,\n\tINT24_MAX: 8388607,\n\tINT24_UNSIGNED_MAX: 16777215,\n\tINT32_MIN: -2147483648,\n\tINT32_MAX: 2147483647,\n\tINT32_UNSIGNED_MAX: 4294967295,\n\tINT48_MIN: -0x800000000000,\n\tINT48_MAX: 0x7fffffffffff,\n\tINT48_UNSIGNED_MAX: 0xffffffffffff,\n\tINT64_MIN: -9223372036854775808n,\n\tINT64_MAX: 9223372036854775807n,\n\tINT64_UNSIGNED_MAX: 18446744073709551615n\n};\nfunction base64ToUint8Array(base64) {\n\tif (!base64) return new Uint8Array(0);\n\tconst binary = atob(base64);\n\tconst len = binary.length;\n\tconst bytes = new Uint8Array(len);\n\tfor (let i = 0; i < len; ++i) bytes[i] = binary.charCodeAt(i);\n\treturn bytes;\n}\n\n//#endregion\nexport { CONSTANTS, FnConstructor, applyMixins, assertUnreachable, base64ToUint8Array, getColumnFromDecoder, getColumnNameAndConfig, getColumns, getTableColumns, getTableLikeName, getViewSelectedFields, haveSameKeys, isConfig, isWithEnum, jitCompatCheck, make$ReturningResponseMapper, makeDefaultQueryMapper, makeJitQueryMapper, mapResultRow, mapUpdateSet, orderSelectedFields, textDecoder };\n//# sourceMappingURL=utils.js.map",
32
+ "import { entityKind } from \"./entity.js\";\n\n//#region src/query-promise.ts\nvar QueryPromise = class {\n\tstatic [entityKind] = \"QueryPromise\";\n\t[Symbol.toStringTag] = \"QueryPromise\";\n\tcatch(onRejected) {\n\t\treturn this.then(void 0, onRejected);\n\t}\n\tfinally(onFinally) {\n\t\treturn this.then((value) => {\n\t\t\tonFinally?.();\n\t\t\treturn value;\n\t\t}, (reason) => {\n\t\t\tonFinally?.();\n\t\t\tthrow reason;\n\t\t});\n\t}\n\tthen(onFulfilled, onRejected) {\n\t\treturn this.execute().then(onFulfilled, onRejected);\n\t}\n};\n\n//#endregion\nexport { QueryPromise };\n//# sourceMappingURL=query-promise.js.map",
33
+ "import { PgCountBuilder } from \"../query-builders/count.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { applyMixins } from \"../../utils.js\";\nimport { QueryPromise } from \"../../query-promise.js\";\n\n//#region src/pg-core/async/count.ts\nvar PgAsyncCountBuilder = class extends PgCountBuilder {\n\tstatic [entityKind] = \"PgAsyncCountBuilder\";\n\tsession;\n\tconstructor({ source, dialect, filters, session }) {\n\t\tsuper({\n\t\t\tsource,\n\t\t\tdialect,\n\t\t\tfilters\n\t\t});\n\t\tthis.session = session;\n\t}\n\texecute(placeholderValues) {\n\t\treturn this.session.prepareQuery(this.build(), \"arrays\", false, (rows) => {\n\t\t\tconst v = rows[0]?.[0];\n\t\t\tif (typeof v === \"number\") return v;\n\t\t\treturn v ? Number(v) : 0;\n\t\t}).execute(placeholderValues);\n\t}\n};\napplyMixins(PgAsyncCountBuilder, [QueryPromise]);\n\n//#endregion\nexport { PgAsyncCountBuilder };\n//# sourceMappingURL=count.js.map",
34
+ "import { entityKind } from \"../../entity.js\";\n\n//#region src/pg-core/query-builders/query.ts\nvar RelationalQueryBuilder = class {\n\tstatic [entityKind] = \"PgRelationalQueryBuilderV2\";\n\tconstructor(schema, table, tableConfig, dialect, session, parseJson, builder = PgRelationalQuery) {\n\t\tthis.schema = schema;\n\t\tthis.table = table;\n\t\tthis.tableConfig = tableConfig;\n\t\tthis.dialect = dialect;\n\t\tthis.session = session;\n\t\tthis.parseJson = parseJson;\n\t\tthis.builder = builder;\n\t}\n\tfindMany(config) {\n\t\treturn new this.builder(this.schema, this.table, this.tableConfig, this.dialect, this.session, config ?? true, \"many\", this.parseJson);\n\t}\n\tfindFirst(config) {\n\t\treturn new this.builder(this.schema, this.table, this.tableConfig, this.dialect, this.session, config ?? true, \"first\", this.parseJson);\n\t}\n};\nvar PgRelationalQuery = class {\n\tstatic [entityKind] = \"PgRelationalQueryV2\";\n\tconstructor(schema, table, tableConfig, dialect, session, config, mode, parseJson) {\n\t\tthis.schema = schema;\n\t\tthis.table = table;\n\t\tthis.tableConfig = tableConfig;\n\t\tthis.dialect = dialect;\n\t\tthis.session = session;\n\t\tthis.config = config;\n\t\tthis.mode = mode;\n\t\tthis.parseJson = parseJson;\n\t}\n\t_getQuery() {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tschema: this.schema,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\tmode: this.mode\n\t\t});\n\t}\n\tgetSQL() {\n\t\treturn this._getQuery().sql;\n\t}\n\t_toSQL() {\n\t\tconst query = this._getQuery();\n\t\treturn {\n\t\t\tquery,\n\t\t\tbuiltQuery: this.dialect.sqlToQuery(query.sql)\n\t\t};\n\t}\n\ttoSQL() {\n\t\treturn this._toSQL().builtQuery;\n\t}\n};\n\n//#endregion\nexport { PgRelationalQuery, RelationalQueryBuilder };\n//# sourceMappingURL=query.js.map",
35
+ "import { entityKind } from \"../entity.js\";\nimport { TableName } from \"../table.utils.js\";\n\n//#region src/pg-core/foreign-keys.ts\nvar ForeignKeyBuilder = class {\n\tstatic [entityKind] = \"PgForeignKeyBuilder\";\n\t/** @internal */\n\treference;\n\t/** @internal */\n\t_onUpdate = \"no action\";\n\t/** @internal */\n\t_onDelete = \"no action\";\n\tconstructor(config, actions) {\n\t\tthis.reference = () => {\n\t\t\tconst { name, columns, foreignColumns } = config();\n\t\t\treturn {\n\t\t\t\tname,\n\t\t\t\tcolumns,\n\t\t\t\tforeignTable: foreignColumns[0].table,\n\t\t\t\tforeignColumns\n\t\t\t};\n\t\t};\n\t\tif (actions) {\n\t\t\tthis._onUpdate = actions.onUpdate;\n\t\t\tthis._onDelete = actions.onDelete;\n\t\t}\n\t}\n\tonUpdate(action) {\n\t\tthis._onUpdate = action === void 0 ? \"no action\" : action;\n\t\treturn this;\n\t}\n\tonDelete(action) {\n\t\tthis._onDelete = action === void 0 ? \"no action\" : action;\n\t\treturn this;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new ForeignKey(table, this);\n\t}\n};\nvar ForeignKey = class {\n\tstatic [entityKind] = \"PgForeignKey\";\n\treference;\n\tonUpdate;\n\tonDelete;\n\tname;\n\tconstructor(table, builder) {\n\t\tthis.table = table;\n\t\tthis.reference = builder.reference;\n\t\tthis.onUpdate = builder._onUpdate;\n\t\tthis.onDelete = builder._onDelete;\n\t}\n\tgetName() {\n\t\tconst { name, columns, foreignColumns } = this.reference();\n\t\tconst columnNames = columns.map((column) => column.name);\n\t\tconst foreignColumnNames = foreignColumns.map((column) => column.name);\n\t\tconst chunks = [\n\t\t\tthis.table[TableName],\n\t\t\t...columnNames,\n\t\t\tforeignColumns[0].table[TableName],\n\t\t\t...foreignColumnNames\n\t\t];\n\t\treturn name ?? `${chunks.join(\"_\")}_fk`;\n\t}\n\tisNameExplicit() {\n\t\treturn !!this.reference().name;\n\t}\n};\nfunction foreignKey(config) {\n\tfunction mappedConfig() {\n\t\tconst { name, columns, foreignColumns } = config;\n\t\treturn {\n\t\t\tname,\n\t\t\tcolumns,\n\t\t\tforeignColumns\n\t\t};\n\t}\n\treturn new ForeignKeyBuilder(mappedConfig);\n}\n\n//#endregion\nexport { ForeignKey, ForeignKeyBuilder, foreignKey };\n//# sourceMappingURL=foreign-keys.js.map",
36
+ "import { entityKind } from \"../../entity.js\";\nimport { Column } from \"../../column.js\";\nimport { ForeignKeyBuilder } from \"../foreign-keys.js\";\nimport { iife } from \"../../tracing-utils.js\";\n\n//#region src/pg-core/columns/common.ts\nvar PgColumnBuilder = class {\n\tstatic [entityKind] = \"PgColumnBuilder\";\n\tforeignKeyConfigs = [];\n\tconfig;\n\tconstructor(name, dataType, columnType) {\n\t\tthis.config = {\n\t\t\tname,\n\t\t\tkeyAsName: name === \"\",\n\t\t\tnotNull: false,\n\t\t\tdefault: void 0,\n\t\t\thasDefault: false,\n\t\t\tprimaryKey: false,\n\t\t\tisUnique: false,\n\t\t\tuniqueName: void 0,\n\t\t\tuniqueType: void 0,\n\t\t\tdataType,\n\t\t\tcolumnType,\n\t\t\tgenerated: void 0,\n\t\t\tdefaultFn: void 0,\n\t\t\tonUpdateFn: void 0,\n\t\t\tgeneratedIdentity: void 0\n\t\t};\n\t}\n\t/**\n\t* Changes the data type of the column. Commonly used with `json` columns. Also, useful for branded types.\n\t*\n\t* @example\n\t* ```ts\n\t* const users = pgTable('users', {\n\t* \tid: integer('id').$type<UserId>().primaryKey(),\n\t* \tdetails: json('details').$type<UserDetails>().notNull(),\n\t* });\n\t* ```\n\t*/\n\t$type() {\n\t\treturn this;\n\t}\n\t/**\n\t* Adds a `not null` clause to the column definition.\n\t*\n\t* Affects the `select` model of the table - columns *without* `not null` will be nullable on select.\n\t*/\n\tnotNull() {\n\t\tthis.config.notNull = true;\n\t\treturn this;\n\t}\n\t/**\n\t* Adds a `default <value>` clause to the column definition.\n\t*\n\t* Affects the `insert` model of the table - columns *with* `default` are optional on insert.\n\t*\n\t* If you need to set a dynamic default value, use {@link $defaultFn} instead.\n\t*/\n\tdefault(value) {\n\t\tthis.config.default = value;\n\t\tthis.config.hasDefault = true;\n\t\treturn this;\n\t}\n\t/**\n\t* Adds a dynamic default value to the column.\n\t* The function will be called when the row is inserted, and the returned value will be used as the column value.\n\t*\n\t* **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n\t*/\n\t$defaultFn(fn) {\n\t\tthis.config.defaultFn = fn;\n\t\tthis.config.hasDefault = true;\n\t\treturn this;\n\t}\n\t/**\n\t* Alias for {@link $defaultFn}.\n\t*/\n\t$default = this.$defaultFn;\n\t/**\n\t* Adds a dynamic update value to the column.\n\t* The function will be called when the row is updated, and the returned value will be used as the column value if none is provided.\n\t* If no `default` (or `$defaultFn`) value is provided, the function will be called when the row is inserted as well, and the returned value will be used as the column value.\n\t*\n\t* **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n\t*/\n\t$onUpdateFn(fn) {\n\t\tthis.config.onUpdateFn = fn;\n\t\tthis.config.hasDefault = true;\n\t\treturn this;\n\t}\n\t/**\n\t* Alias for {@link $onUpdateFn}.\n\t*/\n\t$onUpdate = this.$onUpdateFn;\n\t/**\n\t* Adds a `primary key` clause to the column definition. This implicitly makes the column `not null`.\n\t*\n\t* In SQLite, `integer primary key` implicitly makes the column auto-incrementing.\n\t*/\n\tprimaryKey() {\n\t\tthis.config.primaryKey = true;\n\t\tthis.config.notNull = true;\n\t\treturn this;\n\t}\n\t/** @internal Sets the name of the column to the key within the table definition if a name was not given. */\n\tsetName(name, casingFn) {\n\t\tif (this.config.name !== \"\") return;\n\t\tthis.config.name = casingFn(name);\n\t}\n\tarray(dimensions) {\n\t\tconst dim = dimensions ?? \"[]\";\n\t\tthis.config.dimensions = dim.length / 2;\n\t\treturn this;\n\t}\n\treferences(ref, config = {}) {\n\t\tthis.foreignKeyConfigs.push({\n\t\t\tref,\n\t\t\tconfig\n\t\t});\n\t\treturn this;\n\t}\n\tunique(name, config) {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\tthis.config.uniqueType = config?.nulls;\n\t\treturn this;\n\t}\n\tgeneratedAlwaysAs(as) {\n\t\tthis.config.generated = {\n\t\t\tas,\n\t\t\ttype: \"always\",\n\t\t\tmode: \"stored\"\n\t\t};\n\t\treturn this;\n\t}\n\t/** @internal */\n\tbuildForeignKeys(column, table) {\n\t\treturn this.foreignKeyConfigs.map(({ ref, config }) => {\n\t\t\treturn iife((ref, config) => {\n\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\treturn {\n\t\t\t\t\t\tname: config.name,\n\t\t\t\t\t\tcolumns: [column],\n\t\t\t\t\t\tforeignColumns: [foreignColumn]\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\tif (config.onUpdate) builder.onUpdate(config.onUpdate);\n\t\t\t\tif (config.onDelete) builder.onDelete(config.onDelete);\n\t\t\t\treturn builder.build(table);\n\t\t\t}, ref, config);\n\t\t});\n\t}\n\t/** @internal */\n\tbuildExtraConfigColumn(table) {\n\t\treturn new ExtraConfigColumn(table, {\n\t\t\t...this.config,\n\t\t\tdimensions: this.config.dimensions ?? 0\n\t\t});\n\t}\n};\nvar PgColumn = class extends Column {\n\tstatic [entityKind] = \"PgColumn\";\n\t/** @internal */\n\ttable;\n\tdimensions;\n\tconstructor(table, config) {\n\t\tsuper(table, config);\n\t\tthis.table = table;\n\t\tthis.dimensions = config.dimensions ?? 0;\n\t}\n\t/** @internal */\n\tpostBuild() {\n\t\tif (this.dimensions) {\n\t\t\tconst originalFromDriver = this.mapFromDriverValue.bind(this);\n\t\t\tconst originalToDriver = this.mapToDriverValue.bind(this);\n\t\t\tthis.mapFromDriverValue = this.mapFromDriverValue.isNoop ? this.mapFromDriverValue : (value) => {\n\t\t\t\treturn this.mapArrayElements(value, originalFromDriver, this.dimensions);\n\t\t\t};\n\t\t\tthis.mapToDriverValue = this.mapToDriverValue.isNoop ? this.mapToDriverValue : (value) => {\n\t\t\t\treturn this.mapArrayElements(value, originalToDriver, this.dimensions);\n\t\t\t};\n\t\t}\n\t\treturn this;\n\t}\n\t/** @internal */\n\tshouldDisableInsert() {\n\t\treturn this.config.generatedIdentity !== void 0 && this.config.generatedIdentity.type !== \"byDefault\" || this.config.generated !== void 0 && this.config.generated.type !== \"byDefault\";\n\t}\n\t/** @internal */\n\tmapArrayElements(value, mapper, depth) {\n\t\tif (depth > 0 && Array.isArray(value)) return value.map((v) => v === null ? null : this.mapArrayElements(v, mapper, depth - 1));\n\t\treturn mapper(value);\n\t}\n};\nvar ExtraConfigColumn = class extends PgColumn {\n\tstatic [entityKind] = \"ExtraConfigColumn\";\n\t/** @itnernal */\n\tcodec = void 0;\n\tgetSQLType() {\n\t\treturn this.getSQLType();\n\t}\n\tindexConfig = {\n\t\torder: this.config.order ?? \"asc\",\n\t\tnulls: this.config.nulls ?? \"last\",\n\t\topClass: this.config.opClass\n\t};\n\tdefaultConfig = {\n\t\torder: \"asc\",\n\t\tnulls: \"last\",\n\t\topClass: void 0\n\t};\n\tasc() {\n\t\tthis.indexConfig.order = \"asc\";\n\t\treturn this;\n\t}\n\tdesc() {\n\t\tthis.indexConfig.order = \"desc\";\n\t\treturn this;\n\t}\n\tnullsFirst() {\n\t\tthis.indexConfig.nulls = \"first\";\n\t\treturn this;\n\t}\n\tnullsLast() {\n\t\tthis.indexConfig.nulls = \"last\";\n\t\treturn this;\n\t}\n\t/**\n\t* ### PostgreSQL documentation quote\n\t*\n\t* > An operator class with optional parameters can be specified for each column of an index.\n\t* The operator class identifies the operators to be used by the index for that column.\n\t* For example, a B-tree index on four-byte integers would use the int4_ops class;\n\t* this operator class includes comparison functions for four-byte integers.\n\t* In practice the default operator class for the column's data type is usually sufficient.\n\t* The main point of having operator classes is that for some data types, there could be more than one meaningful ordering.\n\t* For example, we might want to sort a complex-number data type either by absolute value or by real part.\n\t* We could do this by defining two operator classes for the data type and then selecting the proper class when creating an index.\n\t* More information about operator classes check:\n\t*\n\t* ### Useful links\n\t* https://www.postgresql.org/docs/current/sql-createindex.html\n\t*\n\t* https://www.postgresql.org/docs/current/indexes-opclass.html\n\t*\n\t* https://www.postgresql.org/docs/current/xindex.html\n\t*\n\t* ### Additional types\n\t* If you have the `pg_vector` extension installed in your database, you can use the\n\t* `vector_l2_ops`, `vector_ip_ops`, `vector_cosine_ops`, `vector_l1_ops`, `bit_hamming_ops`, `bit_jaccard_ops`, `halfvec_l2_ops`, `sparsevec_l2_ops` options, which are predefined types.\n\t*\n\t* **You can always specify any string you want in the operator class, in case Drizzle doesn't have it natively in its types**\n\t*\n\t* @param opClass\n\t* @returns\n\t*/\n\top(opClass) {\n\t\tthis.indexConfig.opClass = opClass;\n\t\treturn this;\n\t}\n};\nvar IndexedColumn = class {\n\tstatic [entityKind] = \"IndexedColumn\";\n\tconstructor(name, keyAsName, type, indexConfig) {\n\t\tthis.name = name;\n\t\tthis.keyAsName = keyAsName;\n\t\tthis.type = type;\n\t\tthis.indexConfig = indexConfig;\n\t}\n\tname;\n\tkeyAsName;\n\ttype;\n\tindexConfig;\n};\n\n//#endregion\nexport { ExtraConfigColumn, IndexedColumn, PgColumn, PgColumnBuilder };\n//# sourceMappingURL=common.js.map",
37
+ "import { PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\n\n//#region src/pg-core/columns/int.common.ts\nvar PgIntColumnBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgIntColumnBaseBuilder\";\n\t/**\n\t* Adds an `ALWAYS AS IDENTITY` clause to the column definition.\n\t* Available for integer column types.\n\t*/\n\tgeneratedAlwaysAsIdentity(sequence) {\n\t\tif (sequence) {\n\t\t\tconst { name, ...options } = sequence;\n\t\t\tthis.config.generatedIdentity = {\n\t\t\t\ttype: \"always\",\n\t\t\t\tsequenceName: name,\n\t\t\t\tsequenceOptions: options\n\t\t\t};\n\t\t} else this.config.generatedIdentity = { type: \"always\" };\n\t\tthis.config.hasDefault = true;\n\t\tthis.config.notNull = true;\n\t\treturn this;\n\t}\n\t/**\n\t* Adds a `BY DEFAULT AS IDENTITY` clause to the column definition.\n\t* Available for integer column types.\n\t*/\n\tgeneratedByDefaultAsIdentity(sequence) {\n\t\tif (sequence) {\n\t\t\tconst { name, ...options } = sequence;\n\t\t\tthis.config.generatedIdentity = {\n\t\t\t\ttype: \"byDefault\",\n\t\t\t\tsequenceName: name,\n\t\t\t\tsequenceOptions: options\n\t\t\t};\n\t\t} else this.config.generatedIdentity = { type: \"byDefault\" };\n\t\tthis.config.hasDefault = true;\n\t\tthis.config.notNull = true;\n\t\treturn this;\n\t}\n};\n\n//#endregion\nexport { PgIntColumnBuilder };\n//# sourceMappingURL=int.common.js.map",
38
+ "import { PgColumn } from \"./common.js\";\nimport { PgIntColumnBuilder } from \"./int.common.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\n\n//#region src/pg-core/columns/bigint.ts\nvar PgBigInt53Builder = class extends PgIntColumnBuilder {\n\tstatic [entityKind] = \"PgBigInt53Builder\";\n\tconstructor(name) {\n\t\tsuper(name, \"number int53\", \"PgBigInt53\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgBigInt53(table, this.config);\n\t}\n};\nvar PgBigInt53 = class extends PgColumn {\n\tstatic [entityKind] = \"PgBigInt53\";\n\t/** @internal */\n\tcodec = \"bigint:number\";\n\tgetSQLType() {\n\t\treturn \"bigint\";\n\t}\n};\nvar PgBigInt64Builder = class extends PgIntColumnBuilder {\n\tstatic [entityKind] = \"PgBigInt64Builder\";\n\tconstructor(name) {\n\t\tsuper(name, \"bigint int64\", \"PgBigInt64\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgBigInt64(table, this.config);\n\t}\n};\nvar PgBigInt64 = class extends PgColumn {\n\tstatic [entityKind] = \"PgBigInt64\";\n\t/** @internal */\n\tcodec = \"bigint\";\n\tgetSQLType() {\n\t\treturn \"bigint\";\n\t}\n};\nvar PgBigIntStringBuilder = class extends PgIntColumnBuilder {\n\tstatic [entityKind] = \"PgBigIntStringBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"string int64\", \"PgBigIntString\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgBigIntString(table, this.config);\n\t}\n};\nvar PgBigIntString = class extends PgColumn {\n\tstatic [entityKind] = \"PgBigIntString\";\n\t/** @internal */\n\tcodec = \"bigint:string\";\n\tgetSQLType() {\n\t\treturn \"bigint\";\n\t}\n};\nfunction bigint(a, b) {\n\tconst { name, config } = getColumnNameAndConfig(a, b);\n\tif (config.mode === \"number\") return new PgBigInt53Builder(name);\n\tif (config.mode === \"string\") return new PgBigIntStringBuilder(name);\n\treturn new PgBigInt64Builder(name);\n}\n\n//#endregion\nexport { PgBigInt53, PgBigInt53Builder, PgBigInt64, PgBigInt64Builder, PgBigIntString, PgBigIntStringBuilder, bigint };\n//# sourceMappingURL=bigint.js.map",
39
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\n\n//#region src/pg-core/columns/bigserial.ts\nvar PgBigSerial53Builder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgBigSerial53Builder\";\n\tconstructor(name) {\n\t\tsuper(name, \"number int53\", \"PgBigSerial53\");\n\t\tthis.config.hasDefault = true;\n\t\tthis.config.notNull = true;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgBigSerial53(table, this.config);\n\t}\n};\nvar PgBigSerial53 = class extends PgColumn {\n\tstatic [entityKind] = \"PgBigSerial53\";\n\t/** @internal */\n\tcodec = \"bigserial:number\";\n\tgetSQLType() {\n\t\treturn \"bigserial\";\n\t}\n};\nvar PgBigSerial64Builder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgBigSerial64Builder\";\n\tconstructor(name) {\n\t\tsuper(name, \"bigint int64\", \"PgBigSerial64\");\n\t\tthis.config.hasDefault = true;\n\t\tthis.config.notNull = true;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgBigSerial64(table, this.config);\n\t}\n};\nvar PgBigSerial64 = class extends PgColumn {\n\tstatic [entityKind] = \"PgBigSerial64\";\n\t/** @internal */\n\tcodec = \"bigserial\";\n\tgetSQLType() {\n\t\treturn \"bigserial\";\n\t}\n};\nfunction bigserial(a, b) {\n\tconst { name, config } = getColumnNameAndConfig(a, b);\n\tif (config.mode === \"number\") return new PgBigSerial53Builder(name);\n\treturn new PgBigSerial64Builder(name);\n}\n\n//#endregion\nexport { PgBigSerial53, PgBigSerial53Builder, PgBigSerial64, PgBigSerial64Builder, bigserial };\n//# sourceMappingURL=bigserial.js.map",
40
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\n\n//#region src/pg-core/columns/boolean.ts\nvar PgBooleanBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgBooleanBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"boolean\", \"PgBoolean\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgBoolean(table, this.config);\n\t}\n};\nvar PgBoolean = class extends PgColumn {\n\tstatic [entityKind] = \"PgBoolean\";\n\t/** @internal */\n\tcodec = \"bool\";\n\tgetSQLType() {\n\t\treturn \"boolean\";\n\t}\n};\nfunction boolean(name) {\n\treturn new PgBooleanBuilder(name ?? \"\");\n}\n\n//#endregion\nexport { PgBoolean, PgBooleanBuilder, boolean };\n//# sourceMappingURL=boolean.js.map",
41
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\n\n//#region src/pg-core/columns/char.ts\nvar PgCharBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgCharBuilder\";\n\tconstructor(name, config) {\n\t\tsuper(name, config.enum?.length ? \"string enum\" : \"string\", \"PgChar\");\n\t\tthis.config.length = config.length ?? 1;\n\t\tthis.config.setLength = config.length !== void 0;\n\t\tthis.config.enumValues = config.enum;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgChar(table, this.config);\n\t}\n};\nvar PgChar = class extends PgColumn {\n\tstatic [entityKind] = \"PgChar\";\n\t/** @internal */\n\tcodec = \"char\";\n\tenumValues;\n\tsetLength;\n\tconstructor(table, config) {\n\t\tsuper(table, config);\n\t\tthis.enumValues = config.enumValues;\n\t\tthis.setLength = config.setLength;\n\t}\n\tgetSQLType() {\n\t\treturn this.setLength ? `char(${this.length})` : `char`;\n\t}\n};\nfunction char(a, b = {}) {\n\tconst { name, config } = getColumnNameAndConfig(a, b);\n\treturn new PgCharBuilder(name, config);\n}\n\n//#endregion\nexport { PgChar, PgCharBuilder, char };\n//# sourceMappingURL=char.js.map",
42
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\n\n//#region src/pg-core/columns/cidr.ts\nvar PgCidrBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgCidrBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"string cidr\", \"PgCidr\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgCidr(table, this.config);\n\t}\n};\nvar PgCidr = class extends PgColumn {\n\tstatic [entityKind] = \"PgCidr\";\n\t/** @internal */\n\tcodec = \"cidr\";\n\tgetSQLType() {\n\t\treturn \"cidr\";\n\t}\n};\nfunction cidr(name) {\n\treturn new PgCidrBuilder(name ?? \"\");\n}\n\n//#endregion\nexport { PgCidr, PgCidrBuilder, cidr };\n//# sourceMappingURL=cidr.js.map",
43
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { parsePgArray } from \"../array.js\";\nimport { resolvePgTypeAlias } from \"../codecs.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\n\n//#region src/pg-core/columns/custom.ts\nvar PgCustomColumnBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgCustomColumnBuilder\";\n\tconstructor(name, fieldConfig, customTypeParams) {\n\t\tsuper(name, \"custom\", \"PgCustomColumn\");\n\t\tthis.config.fieldConfig = fieldConfig;\n\t\tthis.config.customTypeParams = customTypeParams;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgCustomColumn(table, this.config);\n\t}\n};\nvar PgCustomColumn = class extends PgColumn {\n\tstatic [entityKind] = \"PgCustomColumn\";\n\t/** @internal */\n\tcodec;\n\tsqlName;\n\tmapFromJsonValue;\n\tjsonSelectIdentifier;\n\tconstructor(table, config) {\n\t\tsuper(table, config);\n\t\tthis.sqlName = config.customTypeParams.dataType(config.fieldConfig);\n\t\tthis.mapToDriverValue = config.customTypeParams.toDriver ?? this.mapToDriverValue;\n\t\tthis.mapFromDriverValue = config.customTypeParams.fromDriver ?? this.mapFromDriverValue;\n\t\tthis.mapFromJsonValue = config.customTypeParams.fromJson;\n\t\tthis.jsonSelectIdentifier = config.customTypeParams.forJsonSelect;\n\t\tconst cfgCodec = typeof config.customTypeParams.codec === \"string\" || typeof config.customTypeParams.codec === \"undefined\" ? config.customTypeParams.codec : config.customTypeParams.codec(config.fieldConfig);\n\t\tthis.codec = typeof cfgCodec === \"string\" ? resolvePgTypeAlias(cfgCodec) : void 0;\n\t\tif (this.dimensions && config.customTypeParams.fromJson) this.mapFromJsonValue = (value) => {\n\t\t\tif (value === null) return value;\n\t\t\tconst arr = typeof value === \"string\" ? parsePgArray(value) : value;\n\t\t\treturn this.mapJsonArrayElements(arr, config.customTypeParams.fromJson, this.dimensions);\n\t\t};\n\t}\n\t/** @internal */\n\tmapJsonArrayElements(value, mapper, depth) {\n\t\tif (depth > 0 && Array.isArray(value)) return value.map((v) => v === null ? null : this.mapJsonArrayElements(v, mapper, depth - 1));\n\t\treturn mapper(value);\n\t}\n\tgetSQLType() {\n\t\treturn this.sqlName;\n\t}\n};\n/**\n* Custom pg database data type generator\n*/\nfunction customType(customTypeParams) {\n\treturn (a, b) => {\n\t\tconst { name, config } = getColumnNameAndConfig(a, b);\n\t\treturn new PgCustomColumnBuilder(name, config, customTypeParams);\n\t};\n}\n\n//#endregion\nexport { PgCustomColumn, PgCustomColumnBuilder, customType };\n//# sourceMappingURL=custom.js.map",
44
+ "import { PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { sql } from \"../../sql/sql.js\";\n\n//#region src/pg-core/columns/date.common.ts\nvar PgDateColumnBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgDateColumnBaseBuilder\";\n\t/**\n\t* Adds a `default now()` clause to the column definition.\n\t* Available for date/time column types.\n\t*/\n\tdefaultNow() {\n\t\treturn this.default(sql`now()`);\n\t}\n};\n\n//#endregion\nexport { PgDateColumnBuilder };\n//# sourceMappingURL=date.common.js.map",
45
+ "import { PgColumn } from \"./common.js\";\nimport { PgDateColumnBuilder } from \"./date.common.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\n\n//#region src/pg-core/columns/date.ts\nvar PgDateBuilder = class extends PgDateColumnBuilder {\n\tstatic [entityKind] = \"PgDateBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"object date\", \"PgDate\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgDate(table, this.config);\n\t}\n};\nvar PgDate = class extends PgColumn {\n\tstatic [entityKind] = \"PgDate\";\n\t/** @internal */\n\tcodec = \"date\";\n\tgetSQLType() {\n\t\treturn \"date\";\n\t}\n\tmapToDriverValue = function(value) {\n\t\tif (typeof value === \"string\") return value;\n\t\treturn value.toISOString();\n\t};\n};\nvar PgDateStringBuilder = class extends PgDateColumnBuilder {\n\tstatic [entityKind] = \"PgDateStringBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"string date\", \"PgDateString\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgDateString(table, this.config);\n\t}\n};\nvar PgDateString = class extends PgColumn {\n\tstatic [entityKind] = \"PgDateString\";\n\t/** @internal */\n\tcodec = \"date:string\";\n\tgetSQLType() {\n\t\treturn \"date\";\n\t}\n\tmapToDriverValue = (value) => {\n\t\tif (typeof value === \"string\") return value;\n\t\treturn value.toISOString();\n\t};\n};\nfunction date(a, b) {\n\tconst { name, config } = getColumnNameAndConfig(a, b);\n\tif (config?.mode === \"date\") return new PgDateBuilder(name);\n\treturn new PgDateStringBuilder(name);\n}\n\n//#endregion\nexport { PgDate, PgDateBuilder, PgDateString, PgDateStringBuilder, date };\n//# sourceMappingURL=date.js.map",
46
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\n\n//#region src/pg-core/columns/double-precision.ts\nvar PgDoublePrecisionBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgDoublePrecisionBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"number double\", \"PgDoublePrecision\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgDoublePrecision(table, this.config);\n\t}\n};\nvar PgDoublePrecision = class extends PgColumn {\n\tstatic [entityKind] = \"PgDoublePrecision\";\n\t/** @internal */\n\tcodec = \"float8\";\n\tgetSQLType() {\n\t\treturn \"double precision\";\n\t}\n};\nfunction doublePrecision(name) {\n\treturn new PgDoublePrecisionBuilder(name ?? \"\");\n}\n\n//#endregion\nexport { PgDoublePrecision, PgDoublePrecisionBuilder, doublePrecision };\n//# sourceMappingURL=double-precision.js.map",
47
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\n\n//#region src/pg-core/columns/inet.ts\nvar PgInetBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgInetBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"string inet\", \"PgInet\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgInet(table, this.config);\n\t}\n};\nvar PgInet = class extends PgColumn {\n\tstatic [entityKind] = \"PgInet\";\n\t/** @internal */\n\tcodec = \"inet\";\n\tgetSQLType() {\n\t\treturn \"inet\";\n\t}\n};\nfunction inet(name) {\n\treturn new PgInetBuilder(name ?? \"\");\n}\n\n//#endregion\nexport { PgInet, PgInetBuilder, inet };\n//# sourceMappingURL=inet.js.map",
48
+ "import { PgColumn } from \"./common.js\";\nimport { PgIntColumnBuilder } from \"./int.common.js\";\nimport { entityKind } from \"../../entity.js\";\n\n//#region src/pg-core/columns/integer.ts\nvar PgIntegerBuilder = class extends PgIntColumnBuilder {\n\tstatic [entityKind] = \"PgIntegerBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"number int32\", \"PgInteger\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgInteger(table, this.config);\n\t}\n};\nvar PgInteger = class extends PgColumn {\n\tstatic [entityKind] = \"PgInteger\";\n\t/** @internal */\n\tcodec = \"int\";\n\tgetSQLType() {\n\t\treturn \"integer\";\n\t}\n};\nfunction integer(name) {\n\treturn new PgIntegerBuilder(name ?? \"\");\n}\n\n//#endregion\nexport { PgInteger, PgIntegerBuilder, integer };\n//# sourceMappingURL=integer.js.map",
49
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\n\n//#region src/pg-core/columns/interval.ts\nvar PgIntervalBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgIntervalBuilder\";\n\tconstructor(name, intervalConfig) {\n\t\tsuper(name, \"string interval\", \"PgInterval\");\n\t\tthis.config.intervalConfig = intervalConfig;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgInterval(table, this.config);\n\t}\n};\nvar PgInterval = class extends PgColumn {\n\tstatic [entityKind] = \"PgInterval\";\n\t/** @internal */\n\tcodec = \"interval\";\n\tfields;\n\tprecision;\n\tconstructor(table, config) {\n\t\tsuper(table, config);\n\t\tthis.fields = config.intervalConfig.fields;\n\t\tthis.precision = config.intervalConfig.precision;\n\t}\n\tgetSQLType() {\n\t\treturn `interval${this.fields ? ` ${this.fields}` : \"\"}${this.precision ? `(${this.precision})` : \"\"}`;\n\t}\n};\nfunction interval(a, b = {}) {\n\tconst { name, config } = getColumnNameAndConfig(a, b);\n\treturn new PgIntervalBuilder(name, config);\n}\n\n//#endregion\nexport { PgInterval, PgIntervalBuilder, interval };\n//# sourceMappingURL=interval.js.map",
50
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\n\n//#region src/pg-core/columns/json.ts\nvar PgJsonBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgJsonBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"object json\", \"PgJson\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgJson(table, this.config);\n\t}\n};\nvar PgJson = class extends PgColumn {\n\tstatic [entityKind] = \"PgJson\";\n\t/** @internal */\n\tcodec = \"json\";\n\tconstructor(table, config) {\n\t\tsuper(table, config);\n\t}\n\tgetSQLType() {\n\t\treturn \"json\";\n\t}\n};\nfunction json(name) {\n\treturn new PgJsonBuilder(name ?? \"\");\n}\n\n//#endregion\nexport { PgJson, PgJsonBuilder, json };\n//# sourceMappingURL=json.js.map",
51
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\n\n//#region src/pg-core/columns/jsonb.ts\nvar PgJsonbBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgJsonbBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"object json\", \"PgJsonb\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgJsonb(table, this.config);\n\t}\n};\nvar PgJsonb = class extends PgColumn {\n\tstatic [entityKind] = \"PgJsonb\";\n\t/** @internal */\n\tcodec = \"jsonb\";\n\tconstructor(table, config) {\n\t\tsuper(table, config);\n\t}\n\tgetSQLType() {\n\t\treturn \"jsonb\";\n\t}\n};\nfunction jsonb(name) {\n\treturn new PgJsonbBuilder(name ?? \"\");\n}\n\n//#endregion\nexport { PgJsonb, PgJsonbBuilder, jsonb };\n//# sourceMappingURL=jsonb.js.map",
52
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\n\n//#region src/pg-core/columns/line.ts\nvar PgLineBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgLineBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"array line\", \"PgLine\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgLineTuple(table, this.config);\n\t}\n};\nvar PgLineTuple = class extends PgColumn {\n\tstatic [entityKind] = \"PgLine\";\n\t/** @internal */\n\tcodec = \"line:tuple\";\n\tmode = \"tuple\";\n\tgetSQLType() {\n\t\treturn \"line\";\n\t}\n\tmapToDriverValue = (value) => {\n\t\treturn `{${value[0]},${value[1]},${value[2]}}`;\n\t};\n};\nvar PgLineABCBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgLineABCBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"object line\", \"PgLineABC\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgLineABC(table, this.config);\n\t}\n};\nvar PgLineABC = class extends PgColumn {\n\tstatic [entityKind] = \"PgLineABC\";\n\t/** @internal */\n\tcodec = \"line\";\n\tmode = \"abc\";\n\tgetSQLType() {\n\t\treturn \"line\";\n\t}\n\tmapToDriverValue = (value) => {\n\t\treturn `{${value.a},${value.b},${value.c}}`;\n\t};\n};\nfunction line(a, b) {\n\tconst { name, config } = getColumnNameAndConfig(a, b);\n\tif (!config?.mode || config.mode === \"tuple\") return new PgLineBuilder(name);\n\treturn new PgLineABCBuilder(name);\n}\n\n//#endregion\nexport { PgLineABC, PgLineABCBuilder, PgLineBuilder, PgLineTuple, line };\n//# sourceMappingURL=line.js.map",
53
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\n\n//#region src/pg-core/columns/macaddr.ts\nvar PgMacaddrBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgMacaddrBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"string macaddr\", \"PgMacaddr\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgMacaddr(table, this.config);\n\t}\n};\nvar PgMacaddr = class extends PgColumn {\n\tstatic [entityKind] = \"PgMacaddr\";\n\t/** @internal */\n\tcodec = \"macaddr\";\n\tgetSQLType() {\n\t\treturn \"macaddr\";\n\t}\n};\nfunction macaddr(name) {\n\treturn new PgMacaddrBuilder(name ?? \"\");\n}\n\n//#endregion\nexport { PgMacaddr, PgMacaddrBuilder, macaddr };\n//# sourceMappingURL=macaddr.js.map",
54
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\n\n//#region src/pg-core/columns/macaddr8.ts\nvar PgMacaddr8Builder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgMacaddr8Builder\";\n\tconstructor(name) {\n\t\tsuper(name, \"string macaddr8\", \"PgMacaddr8\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgMacaddr8(table, this.config);\n\t}\n};\nvar PgMacaddr8 = class extends PgColumn {\n\tstatic [entityKind] = \"PgMacaddr8\";\n\t/** @internal */\n\tcodec = \"macaddr8\";\n\tgetSQLType() {\n\t\treturn \"macaddr8\";\n\t}\n};\nfunction macaddr8(name) {\n\treturn new PgMacaddr8Builder(name ?? \"\");\n}\n\n//#endregion\nexport { PgMacaddr8, PgMacaddr8Builder, macaddr8 };\n//# sourceMappingURL=macaddr8.js.map",
55
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\n\n//#region src/pg-core/columns/numeric.ts\nvar PgNumericBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgNumericBuilder\";\n\tconstructor(name, precision, scale) {\n\t\tsuper(name, \"string numeric\", \"PgNumeric\");\n\t\tthis.config.precision = precision;\n\t\tthis.config.scale = scale;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgNumeric(table, this.config);\n\t}\n};\nvar PgNumeric = class extends PgColumn {\n\tstatic [entityKind] = \"PgNumeric\";\n\t/** @internal */\n\tcodec = \"numeric\";\n\tprecision;\n\tscale;\n\tconstructor(table, config) {\n\t\tsuper(table, config);\n\t\tthis.precision = config.precision;\n\t\tthis.scale = config.scale;\n\t}\n\tgetSQLType() {\n\t\tif (this.precision !== void 0 && this.scale !== void 0) return `numeric(${this.precision}, ${this.scale})`;\n\t\telse if (this.precision === void 0) return \"numeric\";\n\t\telse return `numeric(${this.precision})`;\n\t}\n};\nvar PgNumericNumberBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgNumericNumberBuilder\";\n\tconstructor(name, precision, scale) {\n\t\tsuper(name, \"number\", \"PgNumericNumber\");\n\t\tthis.config.precision = precision;\n\t\tthis.config.scale = scale;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgNumericNumber(table, this.config);\n\t}\n};\nvar PgNumericNumber = class extends PgColumn {\n\tstatic [entityKind] = \"PgNumericNumber\";\n\t/** @internal */\n\tcodec = \"numeric:number\";\n\tprecision;\n\tscale;\n\tconstructor(table, config) {\n\t\tsuper(table, config);\n\t\tthis.precision = config.precision;\n\t\tthis.scale = config.scale;\n\t}\n\tmapToDriverValue = String;\n\tgetSQLType() {\n\t\tif (this.precision !== void 0 && this.scale !== void 0) return `numeric(${this.precision}, ${this.scale})`;\n\t\telse if (this.precision === void 0) return \"numeric\";\n\t\telse return `numeric(${this.precision})`;\n\t}\n};\nvar PgNumericBigIntBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgNumericBigIntBuilder\";\n\tconstructor(name, precision, scale) {\n\t\tsuper(name, \"bigint int64\", \"PgNumericBigInt\");\n\t\tthis.config.precision = precision;\n\t\tthis.config.scale = scale;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgNumericBigInt(table, this.config);\n\t}\n};\nvar PgNumericBigInt = class extends PgColumn {\n\tstatic [entityKind] = \"PgNumericBigInt\";\n\t/** @internal */\n\tcodec = \"numeric:bigint\";\n\tprecision;\n\tscale;\n\tconstructor(table, config) {\n\t\tsuper(table, config);\n\t\tthis.precision = config.precision;\n\t\tthis.scale = config.scale;\n\t}\n\tmapToDriverValue = String;\n\tgetSQLType() {\n\t\tif (this.precision !== void 0 && this.scale !== void 0) return `numeric(${this.precision}, ${this.scale})`;\n\t\telse if (this.precision === void 0) return \"numeric\";\n\t\telse return `numeric(${this.precision})`;\n\t}\n};\nfunction numeric(a, b) {\n\tconst { name, config } = getColumnNameAndConfig(a, b);\n\tconst mode = config?.mode;\n\treturn mode === \"number\" ? new PgNumericNumberBuilder(name, config?.precision, config?.scale) : mode === \"bigint\" ? new PgNumericBigIntBuilder(name, config?.precision, config?.scale) : new PgNumericBuilder(name, config?.precision, config?.scale);\n}\nconst decimal = numeric;\n\n//#endregion\nexport { PgNumeric, PgNumericBigInt, PgNumericBigIntBuilder, PgNumericBuilder, PgNumericNumber, PgNumericNumberBuilder, decimal, numeric };\n//# sourceMappingURL=numeric.js.map",
56
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\n\n//#region src/pg-core/columns/point.ts\nvar PgPointTupleBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgPointTupleBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"array point\", \"PgPointTuple\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgPointTuple(table, this.config);\n\t}\n};\nvar PgPointTuple = class extends PgColumn {\n\tstatic [entityKind] = \"PgPointTuple\";\n\t/** @internal */\n\tcodec = \"point:tuple\";\n\tmode = \"tuple\";\n\tgetSQLType() {\n\t\treturn \"point\";\n\t}\n\tmapToDriverValue = (value) => {\n\t\treturn `(${value[0]},${value[1]})`;\n\t};\n};\nvar PgPointObjectBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgPointObjectBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"object point\", \"PgPointObject\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgPointObject(table, this.config);\n\t}\n};\nvar PgPointObject = class extends PgColumn {\n\tstatic [entityKind] = \"PgPointObject\";\n\t/** @internal */\n\tcodec = \"point\";\n\tmode = \"xy\";\n\tgetSQLType() {\n\t\treturn \"point\";\n\t}\n\tmapToDriverValue = (value) => {\n\t\treturn `(${value.x},${value.y})`;\n\t};\n};\nfunction point(a, b) {\n\tconst { name, config } = getColumnNameAndConfig(a, b);\n\tif (!config?.mode || config.mode === \"tuple\") return new PgPointTupleBuilder(name);\n\treturn new PgPointObjectBuilder(name);\n}\n\n//#endregion\nexport { PgPointObject, PgPointObjectBuilder, PgPointTuple, PgPointTupleBuilder, point };\n//# sourceMappingURL=point.js.map",
57
+ "import { PgColumn, PgColumnBuilder } from \"../common.js\";\nimport { entityKind } from \"../../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../../utils.js\";\n\n//#region src/pg-core/columns/postgis_extension/geometry.ts\nvar PgGeometryBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgGeometryBuilder\";\n\tconstructor(name, srid) {\n\t\tsuper(name, \"array geometry\", \"PgGeometry\");\n\t\tthis.config.srid = srid;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgGeometry(table, this.config);\n\t}\n};\nvar PgGeometry = class extends PgColumn {\n\tstatic [entityKind] = \"PgGeometry\";\n\t/** @internal */\n\tcodec = \"geometry(point):tuple\";\n\tsrid = this.config.srid;\n\tmode = \"tuple\";\n\tgetSQLType() {\n\t\treturn `geometry(point${this.srid === void 0 ? \"\" : `,${this.srid}`})`;\n\t}\n\tmapToDriverValue = (value) => {\n\t\treturn `point(${value[0]} ${value[1]})`;\n\t};\n};\nvar PgGeometryObjectBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgGeometryObjectBuilder\";\n\tconstructor(name, srid) {\n\t\tsuper(name, \"object geometry\", \"PgGeometryObject\");\n\t\tthis.config.srid = srid;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgGeometryObject(table, this.config);\n\t}\n};\nvar PgGeometryObject = class extends PgColumn {\n\tstatic [entityKind] = \"PgGeometryObject\";\n\t/** @internal */\n\tcodec = \"geometry(point)\";\n\tsrid = this.config.srid;\n\tmode = \"object\";\n\tgetSQLType() {\n\t\treturn `geometry(point${this.srid === void 0 ? \"\" : `,${this.srid}`})`;\n\t}\n\tmapToDriverValue = (value) => {\n\t\treturn `point(${value.x} ${value.y})`;\n\t};\n};\nfunction geometry(a, b) {\n\tconst { name, config } = getColumnNameAndConfig(a, b);\n\tif (!config?.mode || config.mode === \"tuple\") return new PgGeometryBuilder(name, config?.srid);\n\treturn new PgGeometryObjectBuilder(name, config?.srid);\n}\n\n//#endregion\nexport { PgGeometry, PgGeometryBuilder, PgGeometryObject, PgGeometryObjectBuilder, geometry };\n//# sourceMappingURL=geometry.js.map",
58
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\n\n//#region src/pg-core/columns/real.ts\nvar PgRealBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgRealBuilder\";\n\tconstructor(name, length) {\n\t\tsuper(name, \"number float\", \"PgReal\");\n\t\tthis.config.length = length;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgReal(table, this.config);\n\t}\n};\nvar PgReal = class extends PgColumn {\n\tstatic [entityKind] = \"PgReal\";\n\t/** @internal */\n\tcodec = \"float4\";\n\tconstructor(table, config) {\n\t\tsuper(table, config);\n\t}\n\tgetSQLType() {\n\t\treturn \"real\";\n\t}\n};\nfunction real(name) {\n\treturn new PgRealBuilder(name ?? \"\");\n}\n\n//#endregion\nexport { PgReal, PgRealBuilder, real };\n//# sourceMappingURL=real.js.map",
59
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\n\n//#region src/pg-core/columns/serial.ts\nvar PgSerialBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgSerialBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"number int32\", \"PgSerial\");\n\t\tthis.config.hasDefault = true;\n\t\tthis.config.notNull = true;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgSerial(table, this.config);\n\t}\n};\nvar PgSerial = class extends PgColumn {\n\tstatic [entityKind] = \"PgSerial\";\n\t/** @internal */\n\tcodec = \"serial\";\n\tgetSQLType() {\n\t\treturn \"serial\";\n\t}\n};\nfunction serial(name) {\n\treturn new PgSerialBuilder(name ?? \"\");\n}\n\n//#endregion\nexport { PgSerial, PgSerialBuilder, serial };\n//# sourceMappingURL=serial.js.map",
60
+ "import { PgColumn } from \"./common.js\";\nimport { PgIntColumnBuilder } from \"./int.common.js\";\nimport { entityKind } from \"../../entity.js\";\n\n//#region src/pg-core/columns/smallint.ts\nvar PgSmallIntBuilder = class extends PgIntColumnBuilder {\n\tstatic [entityKind] = \"PgSmallIntBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"number int16\", \"PgSmallInt\");\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgSmallInt(table, this.config);\n\t}\n};\nvar PgSmallInt = class extends PgColumn {\n\tstatic [entityKind] = \"PgSmallInt\";\n\t/** @internal */\n\tcodec = \"smallint\";\n\tgetSQLType() {\n\t\treturn \"smallint\";\n\t}\n};\nfunction smallint(name) {\n\treturn new PgSmallIntBuilder(name ?? \"\");\n}\n\n//#endregion\nexport { PgSmallInt, PgSmallIntBuilder, smallint };\n//# sourceMappingURL=smallint.js.map",
61
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\n\n//#region src/pg-core/columns/smallserial.ts\nvar PgSmallSerialBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgSmallSerialBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"number int16\", \"PgSmallSerial\");\n\t\tthis.config.hasDefault = true;\n\t\tthis.config.notNull = true;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgSmallSerial(table, this.config);\n\t}\n};\nvar PgSmallSerial = class extends PgColumn {\n\tstatic [entityKind] = \"PgSmallSerial\";\n\t/** @internal */\n\tcodec = \"smallserial\";\n\tgetSQLType() {\n\t\treturn \"smallserial\";\n\t}\n};\nfunction smallserial(name) {\n\treturn new PgSmallSerialBuilder(name ?? \"\");\n}\n\n//#endregion\nexport { PgSmallSerial, PgSmallSerialBuilder, smallserial };\n//# sourceMappingURL=smallserial.js.map",
62
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\n\n//#region src/pg-core/columns/text.ts\nvar PgTextBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgTextBuilder\";\n\tconstructor(name, config) {\n\t\tsuper(name, config.enum?.length ? \"string enum\" : \"string\", \"PgText\");\n\t\tthis.config.enumValues = config.enum;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgText(table, this.config, this.config.enumValues);\n\t}\n};\nvar PgText = class extends PgColumn {\n\tstatic [entityKind] = \"PgText\";\n\tenumValues;\n\t/** @internal */\n\tcodec = \"text\";\n\tconstructor(table, config, enumValues) {\n\t\tsuper(table, config);\n\t\tthis.enumValues = enumValues;\n\t}\n\tgetSQLType() {\n\t\treturn \"text\";\n\t}\n};\nfunction text(a, b = {}) {\n\tconst { name, config } = getColumnNameAndConfig(a, b);\n\treturn new PgTextBuilder(name, config);\n}\n\n//#endregion\nexport { PgText, PgTextBuilder, text };\n//# sourceMappingURL=text.js.map",
63
+ "import { PgColumn } from \"./common.js\";\nimport { PgDateColumnBuilder } from \"./date.common.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\n\n//#region src/pg-core/columns/time.ts\nvar PgTimeBuilder = class extends PgDateColumnBuilder {\n\tstatic [entityKind] = \"PgTimeBuilder\";\n\tconstructor(name, withTimezone, precision) {\n\t\tsuper(name, \"string time\", \"PgTime\");\n\t\tthis.withTimezone = withTimezone;\n\t\tthis.precision = precision;\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgTime(table, this.config);\n\t}\n};\nvar PgTime = class extends PgColumn {\n\tstatic [entityKind] = \"PgTime\";\n\t/** @internal */\n\tcodec = \"time\";\n\twithTimezone;\n\tprecision;\n\tconstructor(table, config) {\n\t\tsuper(table, config);\n\t\tthis.withTimezone = config.withTimezone;\n\t\tthis.precision = config.precision;\n\t}\n\tgetSQLType() {\n\t\treturn `time${this.precision === void 0 ? \"\" : `(${this.precision})`}${this.withTimezone ? \" with time zone\" : \"\"}`;\n\t}\n};\nfunction time(a, b = {}) {\n\tconst { name, config } = getColumnNameAndConfig(a, b);\n\treturn new PgTimeBuilder(name, config.withTimezone ?? false, config.precision);\n}\n\n//#endregion\nexport { PgTime, PgTimeBuilder, time };\n//# sourceMappingURL=time.js.map",
64
+ "import { PgColumn } from \"./common.js\";\nimport { PgDateColumnBuilder } from \"./date.common.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\n\n//#region src/pg-core/columns/timestamp.ts\nvar PgTimestampBuilder = class extends PgDateColumnBuilder {\n\tstatic [entityKind] = \"PgTimestampBuilder\";\n\tconstructor(name, withTimezone, precision) {\n\t\tsuper(name, \"object date\", \"PgTimestamp\");\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgTimestamp(table, this.config);\n\t}\n};\nvar PgTimestamp = class extends PgColumn {\n\tstatic [entityKind] = \"PgTimestamp\";\n\t/** @internal */\n\tcodec;\n\twithTimezone;\n\tprecision;\n\tconstructor(table, config) {\n\t\tsuper(table, config);\n\t\tthis.withTimezone = config.withTimezone;\n\t\tthis.precision = config.precision;\n\t\tthis.codec = this.withTimezone ? \"timestamptz\" : \"timestamp\";\n\t}\n\tgetSQLType() {\n\t\treturn `timestamp${this.precision === void 0 ? \"\" : ` (${this.precision})`}${this.withTimezone ? \" with time zone\" : \"\"}`;\n\t}\n\tmapToDriverValue = (value) => {\n\t\tif (typeof value === \"string\") return value;\n\t\treturn value.toISOString();\n\t};\n};\nvar PgTimestampStringBuilder = class extends PgDateColumnBuilder {\n\tstatic [entityKind] = \"PgTimestampStringBuilder\";\n\tconstructor(name, withTimezone, precision) {\n\t\tsuper(name, \"string timestamp\", \"PgTimestampString\");\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgTimestampString(table, this.config);\n\t}\n};\nvar PgTimestampString = class extends PgColumn {\n\tstatic [entityKind] = \"PgTimestampString\";\n\t/** @internal */\n\tcodec;\n\twithTimezone;\n\tprecision;\n\tconstructor(table, config) {\n\t\tsuper(table, config);\n\t\tthis.withTimezone = config.withTimezone;\n\t\tthis.precision = config.precision;\n\t\tthis.codec = this.withTimezone ? \"timestamptz:string\" : \"timestamp:string\";\n\t}\n\tgetSQLType() {\n\t\treturn `timestamp${this.precision === void 0 ? \"\" : `(${this.precision})`}${this.withTimezone ? \" with time zone\" : \"\"}`;\n\t}\n\tmapToDriverValue = (value) => {\n\t\tif (typeof value === \"string\") return value;\n\t\treturn value.toISOString();\n\t};\n};\nfunction timestamp(a, b = {}) {\n\tconst { name, config } = getColumnNameAndConfig(a, b);\n\tif (config?.mode === \"string\") return new PgTimestampStringBuilder(name, config.withTimezone ?? false, config.precision);\n\treturn new PgTimestampBuilder(name, config?.withTimezone ?? false, config?.precision);\n}\n\n//#endregion\nexport { PgTimestamp, PgTimestampBuilder, PgTimestampString, PgTimestampStringBuilder, timestamp };\n//# sourceMappingURL=timestamp.js.map",
65
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { sql } from \"../../sql/sql.js\";\n\n//#region src/pg-core/columns/uuid.ts\nvar PgUUIDBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgUUIDBuilder\";\n\tconstructor(name) {\n\t\tsuper(name, \"string uuid\", \"PgUUID\");\n\t}\n\t/**\n\t* Adds `default gen_random_uuid()` to the column definition.\n\t*/\n\tdefaultRandom() {\n\t\treturn this.default(sql`gen_random_uuid()`);\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgUUID(table, this.config);\n\t}\n};\nvar PgUUID = class extends PgColumn {\n\tstatic [entityKind] = \"PgUUID\";\n\t/** @internal */\n\tcodec = \"uuid\";\n\tgetSQLType() {\n\t\treturn \"uuid\";\n\t}\n};\nfunction uuid(name) {\n\treturn new PgUUIDBuilder(name ?? \"\");\n}\n\n//#endregion\nexport { PgUUID, PgUUIDBuilder, uuid };\n//# sourceMappingURL=uuid.js.map",
66
+ "import { PgColumn, PgColumnBuilder } from \"./common.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\n\n//#region src/pg-core/columns/varchar.ts\nvar PgVarcharBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgVarcharBuilder\";\n\tconstructor(name, config) {\n\t\tsuper(name, config.enum?.length ? \"string enum\" : \"string\", \"PgVarchar\");\n\t\tthis.config.length = config.length;\n\t\tthis.config.enumValues = config.enum;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgVarchar(table, this.config);\n\t}\n};\nvar PgVarchar = class extends PgColumn {\n\tstatic [entityKind] = \"PgVarchar\";\n\t/** @internal */\n\tcodec = \"varchar\";\n\tenumValues;\n\tconstructor(table, config) {\n\t\tsuper(table, config);\n\t\tthis.enumValues = config.enumValues;\n\t}\n\tgetSQLType() {\n\t\treturn this.length === void 0 ? `varchar` : `varchar(${this.length})`;\n\t}\n};\nfunction varchar(a, b = {}) {\n\tconst { name, config } = getColumnNameAndConfig(a, b);\n\treturn new PgVarcharBuilder(name, config);\n}\n\n//#endregion\nexport { PgVarchar, PgVarcharBuilder, varchar };\n//# sourceMappingURL=varchar.js.map",
67
+ "import { PgColumn, PgColumnBuilder } from \"../common.js\";\nimport { entityKind } from \"../../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../../utils.js\";\n\n//#region src/pg-core/columns/vector_extension/bit.ts\nvar PgBinaryVectorBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgBinaryVectorBuilder\";\n\tconstructor(name, config) {\n\t\tsuper(name, \"string binary\", \"PgBinaryVector\");\n\t\tthis.config.length = config.dimensions;\n\t\tthis.config.isLengthExact = true;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgBinaryVector(table, this.config);\n\t}\n};\nvar PgBinaryVector = class extends PgColumn {\n\tstatic [entityKind] = \"PgBinaryVector\";\n\t/** @internal */\n\tcodec = \"bit\";\n\tgetSQLType() {\n\t\treturn `bit(${this.length})`;\n\t}\n};\nfunction bit(a, b) {\n\tconst { name, config } = getColumnNameAndConfig(a, b);\n\treturn new PgBinaryVectorBuilder(name, config);\n}\n\n//#endregion\nexport { PgBinaryVector, PgBinaryVectorBuilder, bit };\n//# sourceMappingURL=bit.js.map",
68
+ "import { PgColumn, PgColumnBuilder } from \"../common.js\";\nimport { entityKind } from \"../../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../../utils.js\";\n\n//#region src/pg-core/columns/vector_extension/halfvec.ts\nvar PgHalfVectorBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgHalfVectorBuilder\";\n\tconstructor(name, config) {\n\t\tsuper(name, \"array halfvector\", \"PgHalfVector\");\n\t\tthis.config.length = config.dimensions;\n\t\tthis.config.isLengthExact = true;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgHalfVector(table, this.config);\n\t}\n};\nvar PgHalfVector = class extends PgColumn {\n\tstatic [entityKind] = \"PgHalfVector\";\n\t/** @internal */\n\tcodec = \"halfvec\";\n\tgetSQLType() {\n\t\treturn `halfvec(${this.length})`;\n\t}\n\tmapToDriverValue = (value) => {\n\t\treturn JSON.stringify(value);\n\t};\n};\nfunction halfvec(a, b) {\n\tconst { name, config } = getColumnNameAndConfig(a, b);\n\treturn new PgHalfVectorBuilder(name, config);\n}\n\n//#endregion\nexport { PgHalfVector, PgHalfVectorBuilder, halfvec };\n//# sourceMappingURL=halfvec.js.map",
69
+ "import { PgColumn, PgColumnBuilder } from \"../common.js\";\nimport { entityKind } from \"../../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../../utils.js\";\n\n//#region src/pg-core/columns/vector_extension/sparsevec.ts\nvar PgSparseVectorBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgSparseVectorBuilder\";\n\tconstructor(name, config) {\n\t\tsuper(name, \"string sparsevec\", \"PgSparseVector\");\n\t\tthis.config.vectorDimensions = config.dimensions;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgSparseVector(table, this.config);\n\t}\n};\nvar PgSparseVector = class extends PgColumn {\n\tstatic [entityKind] = \"PgSparseVector\";\n\t/** @internal */\n\tcodec = \"sparsevec\";\n\tvectorDimensions = this.config.vectorDimensions;\n\tgetSQLType() {\n\t\treturn `sparsevec(${this.vectorDimensions})`;\n\t}\n};\nfunction sparsevec(a, b) {\n\tconst { name, config } = getColumnNameAndConfig(a, b);\n\treturn new PgSparseVectorBuilder(name, config);\n}\n\n//#endregion\nexport { PgSparseVector, PgSparseVectorBuilder, sparsevec };\n//# sourceMappingURL=sparsevec.js.map",
70
+ "import { PgColumn, PgColumnBuilder } from \"../common.js\";\nimport { entityKind } from \"../../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../../utils.js\";\n\n//#region src/pg-core/columns/vector_extension/vector.ts\nvar PgVectorBuilder = class extends PgColumnBuilder {\n\tstatic [entityKind] = \"PgVectorBuilder\";\n\tconstructor(name, config) {\n\t\tsuper(name, \"array vector\", \"PgVector\");\n\t\tthis.config.length = config.dimensions;\n\t\tthis.config.isLengthExact = true;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PgVector(table, this.config);\n\t}\n};\nvar PgVector = class extends PgColumn {\n\tstatic [entityKind] = \"PgVector\";\n\t/** @internal */\n\tcodec = \"vector\";\n\tgetSQLType() {\n\t\treturn `vector(${this.length})`;\n\t}\n\tmapToDriverValue = (value) => {\n\t\treturn JSON.stringify(value);\n\t};\n};\nfunction vector(a, b) {\n\tconst { name, config } = getColumnNameAndConfig(a, b);\n\treturn new PgVectorBuilder(name, config);\n}\n\n//#endregion\nexport { PgVector, PgVectorBuilder, vector };\n//# sourceMappingURL=vector.js.map",
71
+ "import { bigint } from \"./bigint.js\";\nimport { bigserial } from \"./bigserial.js\";\nimport { boolean } from \"./boolean.js\";\nimport { char } from \"./char.js\";\nimport { cidr } from \"./cidr.js\";\nimport { customType } from \"./custom.js\";\nimport { date } from \"./date.js\";\nimport { doublePrecision } from \"./double-precision.js\";\nimport { inet } from \"./inet.js\";\nimport { integer } from \"./integer.js\";\nimport { interval } from \"./interval.js\";\nimport { json } from \"./json.js\";\nimport { jsonb } from \"./jsonb.js\";\nimport { line } from \"./line.js\";\nimport { macaddr } from \"./macaddr.js\";\nimport { macaddr8 } from \"./macaddr8.js\";\nimport { numeric } from \"./numeric.js\";\nimport { point } from \"./point.js\";\nimport { geometry } from \"./postgis_extension/geometry.js\";\nimport { real } from \"./real.js\";\nimport { serial } from \"./serial.js\";\nimport { smallint } from \"./smallint.js\";\nimport { smallserial } from \"./smallserial.js\";\nimport { text } from \"./text.js\";\nimport { time } from \"./time.js\";\nimport { timestamp } from \"./timestamp.js\";\nimport { uuid } from \"./uuid.js\";\nimport { varchar } from \"./varchar.js\";\nimport { bit } from \"./vector_extension/bit.js\";\nimport { halfvec } from \"./vector_extension/halfvec.js\";\nimport { sparsevec } from \"./vector_extension/sparsevec.js\";\nimport { vector } from \"./vector_extension/vector.js\";\n\n//#region src/pg-core/columns/all.ts\nfunction getPgColumnBuilders() {\n\treturn {\n\t\tbigint,\n\t\tbigserial,\n\t\tboolean,\n\t\tchar,\n\t\tcidr,\n\t\tcustomType,\n\t\tdate,\n\t\tdoublePrecision,\n\t\tinet,\n\t\tinteger,\n\t\tinterval,\n\t\tjson,\n\t\tjsonb,\n\t\tline,\n\t\tmacaddr,\n\t\tmacaddr8,\n\t\tnumeric,\n\t\tpoint,\n\t\tgeometry,\n\t\treal,\n\t\tserial,\n\t\tsmallint,\n\t\tsmallserial,\n\t\ttext,\n\t\ttime,\n\t\ttimestamp,\n\t\tuuid,\n\t\tvarchar,\n\t\tbit,\n\t\thalfvec,\n\t\tsparsevec,\n\t\tvector\n\t};\n}\n\n//#endregion\nexport { getPgColumnBuilders };\n//# sourceMappingURL=all.js.map",
72
+ "//#region src/casing.ts\nfunction toSnakeCase(input) {\n\treturn (input.replace(/['\\u2019]/g, \"\").match(/[\\da-z]+|[A-Z]+(?![a-z])|[A-Z][\\da-z]+/g) ?? []).map((word) => word.toLowerCase()).join(\"_\");\n}\nfunction toCamelCase(input) {\n\treturn (input.replace(/['\\u2019]/g, \"\").match(/[\\da-z]+|[A-Z]+(?![a-z])|[A-Z][\\da-z]+/g) ?? []).reduce((acc, word, i) => {\n\t\treturn acc + (i === 0 ? word.toLowerCase() : `${word[0].toUpperCase()}${word.slice(1)}`);\n\t}, \"\");\n}\nfunction getCasingFn(casing) {\n\tif (casing === \"snake_case\") return toSnakeCase;\n\tif (casing === \"camelCase\") return toCamelCase;\n\treturn (name) => name;\n}\n\n//#endregion\nexport { getCasingFn, toCamelCase, toSnakeCase };\n//# sourceMappingURL=casing.js.map",
73
+ "import { getPgColumnBuilders } from \"./columns/all.js\";\nimport { entityKind } from \"../entity.js\";\nimport { Table } from \"../table.js\";\nimport { getCasingFn } from \"../casing.js\";\n\n//#region src/pg-core/table.ts\n/** @internal */\nconst InlineForeignKeys = Symbol.for(\"drizzle:PgInlineForeignKeys\");\n/** @internal */\nconst EnableRLS = Symbol.for(\"drizzle:EnableRLS\");\nvar PgTable = class extends Table {\n\tstatic [entityKind] = \"PgTable\";\n\t/** @internal */\n\tstatic Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys,\n\t\tEnableRLS\n\t});\n\t/**@internal */\n\t[InlineForeignKeys] = [];\n\t/** @internal */\n\t[EnableRLS] = false;\n\t/** @internal */\n\t[Table.Symbol.ExtraConfigBuilder] = void 0;\n\t/** @internal */\n\t[Table.Symbol.ExtraConfigColumns] = {};\n};\n/** @internal */\nfunction pgTableWithSchema(name, columns, extraConfig, schema, casing, baseName = name) {\n\tconst casingFn = getCasingFn(casing);\n\tconst rawTable = new PgTable(name, schema, baseName);\n\tconst parsedColumns = typeof columns === \"function\" ? columns(getPgColumnBuilders()) : columns;\n\tconst builtColumns = Object.fromEntries(Object.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\tconst colBuilder = colBuilderBase;\n\t\tcolBuilder.setName(name, casingFn);\n\t\tconst column = colBuilder.build(rawTable).postBuild();\n\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\treturn [name, column];\n\t}));\n\tconst builtColumnsForExtraConfig = Object.fromEntries(Object.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\tconst colBuilder = colBuilderBase;\n\t\tcolBuilder.setName(name, casingFn);\n\t\treturn [name, colBuilder.buildExtraConfigColumn(rawTable)];\n\t}));\n\tconst table = Object.assign(rawTable, builtColumns);\n\ttable[Table.Symbol.Columns] = builtColumns;\n\ttable[Table.Symbol.ExtraConfigColumns] = builtColumnsForExtraConfig;\n\tif (extraConfig) table[PgTable.Symbol.ExtraConfigBuilder] = extraConfig;\n\treturn Object.assign(table, { enableRLS: () => {\n\t\ttable[PgTable.Symbol.EnableRLS] = true;\n\t\treturn table;\n\t} });\n}\n/** @internal */\nfunction pgTableWithCasing(casing) {\n\tconst pgTableInternal = (name, columns, extraConfig) => {\n\t\treturn pgTableWithSchema(name, columns, extraConfig, void 0, casing);\n\t};\n\tconst pgTableWithRLS = (name, columns, extraConfig) => {\n\t\tconst table = pgTableWithSchema(name, columns, extraConfig, void 0, casing);\n\t\ttable[EnableRLS] = true;\n\t\treturn table;\n\t};\n\treturn Object.assign(pgTableInternal, { withRLS: pgTableWithRLS });\n}\nconst pgTable = pgTableWithCasing(void 0);\nfunction pgTableCreator(customizeTableName, casing) {\n\tconst fn = (name, columns, extraConfig) => {\n\t\treturn pgTableWithSchema(customizeTableName(name), columns, extraConfig, void 0, casing, name);\n\t};\n\treturn Object.assign(fn, { withRLS: ((name, columns, extraConfig) => {\n\t\tconst table = pgTableWithSchema(customizeTableName(name), columns, extraConfig, void 0, casing, name);\n\t\ttable[EnableRLS] = true;\n\t\treturn table;\n\t}) });\n}\n\n//#endregion\nexport { EnableRLS, InlineForeignKeys, PgTable, pgTable, pgTableCreator, pgTableWithCasing, pgTableWithSchema };\n//# sourceMappingURL=table.js.map",
74
+ "import { PgTable } from \"./table.js\";\nimport { entityKind } from \"../entity.js\";\n\n//#region src/pg-core/primary-keys.ts\nfunction primaryKey(...config) {\n\tif (config[0].columns) return new PrimaryKeyBuilder(config[0].columns, config[0].name);\n\treturn new PrimaryKeyBuilder(config);\n}\nvar PrimaryKeyBuilder = class {\n\tstatic [entityKind] = \"PgPrimaryKeyBuilder\";\n\t/** @internal */\n\tcolumns;\n\t/** @internal */\n\tname;\n\tconstructor(columns, name) {\n\t\tthis.columns = columns;\n\t\tthis.name = name;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new PrimaryKey(table, this.columns, this.name);\n\t}\n};\nvar PrimaryKey = class {\n\tstatic [entityKind] = \"PgPrimaryKey\";\n\tcolumns;\n\tname;\n\tisNameExplicit;\n\tconstructor(table, columns, name) {\n\t\tthis.table = table;\n\t\tthis.columns = columns;\n\t\tthis.name = name;\n\t\tthis.isNameExplicit = !!name;\n\t}\n\tgetName() {\n\t\treturn this.name ?? `${this.table[PgTable.Symbol.Name]}_${this.columns.map((column) => column.name).join(\"_\")}_pk`;\n\t}\n};\n\n//#endregion\nexport { PrimaryKey, PrimaryKeyBuilder, primaryKey };\n//# sourceMappingURL=primary-keys.js.map",
75
+ "import { entityKind } from \"../entity.js\";\n\n//#region src/pg-core/checks.ts\nvar CheckBuilder = class {\n\tstatic [entityKind] = \"PgCheckBuilder\";\n\tbrand;\n\tconstructor(name, value) {\n\t\tthis.name = name;\n\t\tthis.value = value;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new Check(table, this);\n\t}\n};\nvar Check = class {\n\tstatic [entityKind] = \"PgCheck\";\n\tname;\n\tvalue;\n\tconstructor(table, builder) {\n\t\tthis.table = table;\n\t\tthis.name = builder.name;\n\t\tthis.value = builder.value;\n\t}\n};\nfunction check(name, value) {\n\treturn new CheckBuilder(name, value);\n}\n\n//#endregion\nexport { Check, CheckBuilder, check };\n//# sourceMappingURL=checks.js.map",
76
+ "import { ExtraConfigColumn, IndexedColumn } from \"./columns/common.js\";\nimport { entityKind, is } from \"../entity.js\";\nimport { SQL } from \"../sql/sql.js\";\n\n//#region src/pg-core/indexes.ts\nvar IndexBuilderOn = class {\n\tstatic [entityKind] = \"PgIndexBuilderOn\";\n\tconstructor(unique, name) {\n\t\tthis.unique = unique;\n\t\tthis.name = name;\n\t}\n\ton(...columns) {\n\t\treturn new IndexBuilder(columns.map((it) => {\n\t\t\tif (is(it, SQL)) return it;\n\t\t\tif (is(it, ExtraConfigColumn)) {\n\t\t\t\tconst clonedIndexedColumn = new IndexedColumn(it.name, !!it.keyAsName, it.columnType, it.indexConfig);\n\t\t\t\tit.indexConfig = JSON.parse(JSON.stringify(it.defaultConfig));\n\t\t\t\treturn clonedIndexedColumn;\n\t\t\t}\n\t\t\tit = it;\n\t\t\treturn new IndexedColumn(it.name, !!it.keyAsName, it.columnType, {});\n\t\t}), this.unique, false, this.name);\n\t}\n\tonOnly(...columns) {\n\t\treturn new IndexBuilder(columns.map((it) => {\n\t\t\tif (is(it, SQL)) return it;\n\t\t\tif (is(it, ExtraConfigColumn)) {\n\t\t\t\tconst clonedIndexedColumn = new IndexedColumn(it.name, !!it.keyAsName, it.columnType, it.indexConfig);\n\t\t\t\tit.indexConfig = JSON.parse(JSON.stringify(it.defaultConfig));\n\t\t\t\treturn clonedIndexedColumn;\n\t\t\t}\n\t\t\tit = it;\n\t\t\treturn new IndexedColumn(it.name, !!it.keyAsName, it.columnType, {});\n\t\t}), this.unique, true, this.name);\n\t}\n\t/**\n\t* Specify what index method to use. Choices are `btree`, `hash`, `gist`, `spgist`, `gin`, `brin`, or user-installed access methods like `bloom`. The default method is `btree.\n\t*\n\t* If you have the `pg_vector` extension installed in your database, you can use the `hnsw` and `ivfflat` options, which are predefined types.\n\t*\n\t* **You can always specify any string you want in the method, in case Drizzle doesn't have it natively in its types**\n\t*\n\t* @param method The name of the index method to be used\n\t* @param columns\n\t* @returns\n\t*/\n\tusing(method, ...columns) {\n\t\treturn new IndexBuilder(columns.map((it) => {\n\t\t\tif (is(it, SQL)) return it;\n\t\t\tif (is(it, ExtraConfigColumn)) {\n\t\t\t\tconst clonedIndexedColumn = new IndexedColumn(it.name, !!it.keyAsName, it.columnType, it.indexConfig);\n\t\t\t\tit.indexConfig = JSON.parse(JSON.stringify(it.defaultConfig));\n\t\t\t\treturn clonedIndexedColumn;\n\t\t\t}\n\t\t\tit = it;\n\t\t\treturn new IndexedColumn(it.name, !!it.keyAsName, it.columnType, {});\n\t\t}), this.unique, true, this.name, method);\n\t}\n};\nvar IndexBuilder = class {\n\tstatic [entityKind] = \"PgIndexBuilder\";\n\t/** @internal */\n\tconfig;\n\tconstructor(columns, unique, only, name, method = \"btree\") {\n\t\tthis.config = {\n\t\t\tname,\n\t\t\tcolumns,\n\t\t\tunique,\n\t\t\tonly,\n\t\t\tmethod\n\t\t};\n\t}\n\tconcurrently() {\n\t\tthis.config.concurrently = true;\n\t\treturn this;\n\t}\n\twith(obj) {\n\t\tthis.config.with = obj;\n\t\treturn this;\n\t}\n\twhere(condition) {\n\t\tthis.config.where = condition;\n\t\treturn this;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new Index(this.config, table);\n\t}\n};\nvar Index = class {\n\tstatic [entityKind] = \"PgIndex\";\n\tconfig;\n\tisNameExplicit;\n\tconstructor(config, table) {\n\t\tthis.config = {\n\t\t\t...config,\n\t\t\ttable\n\t\t};\n\t\tthis.isNameExplicit = !!config.name;\n\t}\n};\nfunction index(name) {\n\treturn new IndexBuilderOn(false, name);\n}\nfunction uniqueIndex(name) {\n\treturn new IndexBuilderOn(true, name);\n}\n\n//#endregion\nexport { Index, IndexBuilder, IndexBuilderOn, index, uniqueIndex };\n//# sourceMappingURL=indexes.js.map",
77
+ "import { entityKind } from \"../entity.js\";\n\n//#region src/pg-core/policies.ts\nvar PgPolicy = class {\n\tstatic [entityKind] = \"PgPolicy\";\n\tas;\n\tfor;\n\tto;\n\tusing;\n\twithCheck;\n\t/** @internal */\n\t_linkedTable;\n\tconstructor(name, config) {\n\t\tthis.name = name;\n\t\tif (config) {\n\t\t\tthis.as = config.as;\n\t\t\tthis.for = config.for;\n\t\t\tthis.to = config.to;\n\t\t\tthis.using = config.using;\n\t\t\tthis.withCheck = config.withCheck;\n\t\t}\n\t}\n\tlink(table) {\n\t\tthis._linkedTable = table;\n\t\treturn this;\n\t}\n};\nfunction pgPolicy(name, config) {\n\treturn new PgPolicy(name, config);\n}\n\n//#endregion\nexport { PgPolicy, pgPolicy };\n//# sourceMappingURL=policies.js.map",
78
+ "import { entityKind } from \"../entity.js\";\nimport { TableName } from \"../table.utils.js\";\n\n//#region src/pg-core/unique-constraint.ts\nfunction unique(name) {\n\treturn new UniqueOnConstraintBuilder(name);\n}\nfunction uniqueKeyName(table, columns) {\n\treturn `${table[TableName]}_${columns.join(\"_\")}_unique`;\n}\nvar UniqueConstraintBuilder = class {\n\tstatic [entityKind] = \"PgUniqueConstraintBuilder\";\n\t/** @internal */\n\tcolumns;\n\t/** @internal */\n\tnullsNotDistinctConfig = false;\n\tconstructor(columns, name) {\n\t\tthis.name = name;\n\t\tthis.columns = columns;\n\t}\n\tnullsNotDistinct() {\n\t\tthis.nullsNotDistinctConfig = true;\n\t\treturn this;\n\t}\n\t/** @internal */\n\tbuild(table) {\n\t\treturn new UniqueConstraint(table, this.columns, this.nullsNotDistinctConfig, this.name);\n\t}\n};\nvar UniqueOnConstraintBuilder = class {\n\tstatic [entityKind] = \"PgUniqueOnConstraintBuilder\";\n\t/** @internal */\n\tname;\n\tconstructor(name) {\n\t\tthis.name = name;\n\t}\n\ton(...columns) {\n\t\treturn new UniqueConstraintBuilder(columns, this.name);\n\t}\n};\nvar UniqueConstraint = class {\n\tstatic [entityKind] = \"PgUniqueConstraint\";\n\tcolumns;\n\tname;\n\tisNameExplicit;\n\tnullsNotDistinct = false;\n\tconstructor(table, columns, nullsNotDistinct, name) {\n\t\tthis.table = table;\n\t\tthis.columns = columns;\n\t\tthis.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));\n\t\tthis.isNameExplicit = !!name;\n\t\tthis.nullsNotDistinct = nullsNotDistinct;\n\t}\n\tgetName() {\n\t\treturn this.name;\n\t}\n};\n\n//#endregion\nexport { UniqueConstraint, UniqueConstraintBuilder, UniqueOnConstraintBuilder, unique, uniqueKeyName };\n//# sourceMappingURL=unique-constraint.js.map",
79
+ "import { PrimaryKeyBuilder } from \"./primary-keys.js\";\nimport { CheckBuilder } from \"./checks.js\";\nimport { ForeignKeyBuilder } from \"./foreign-keys.js\";\nimport { IndexBuilder } from \"./indexes.js\";\nimport { PgPolicy } from \"./policies.js\";\nimport { UniqueConstraintBuilder } from \"./unique-constraint.js\";\nimport { PgMaterializedViewConfig, PgViewConfig } from \"./view-common.js\";\nimport { is } from \"../entity.js\";\nimport { Subquery } from \"../subquery.js\";\nimport { ViewBaseConfig } from \"../view-common.js\";\nimport { Table, TableSchema } from \"../table.js\";\nimport { SQL } from \"../sql/sql.js\";\nimport { PgTable } from \"./table.js\";\n\n//#region src/pg-core/utils.ts\nfunction getTableConfig(table) {\n\tconst columns = Object.values(table[Table.Symbol.Columns]);\n\tconst indexes = [];\n\tconst checks = [];\n\tconst primaryKeys = [];\n\tconst foreignKeys = Object.values(table[PgTable.Symbol.InlineForeignKeys]);\n\tconst uniqueConstraints = [];\n\tconst name = table[Table.Symbol.Name];\n\tconst schema = table[Table.Symbol.Schema];\n\tconst policies = [];\n\tconst enableRLS = table[PgTable.Symbol.EnableRLS];\n\tconst extraConfigBuilder = table[PgTable.Symbol.ExtraConfigBuilder];\n\tif (extraConfigBuilder !== void 0) {\n\t\tconst extraConfig = extraConfigBuilder(table[Table.Symbol.ExtraConfigColumns]);\n\t\tconst extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) : Object.values(extraConfig);\n\t\tfor (const builder of extraValues) if (is(builder, IndexBuilder)) indexes.push(builder.build(table));\n\t\telse if (is(builder, CheckBuilder)) checks.push(builder.build(table));\n\t\telse if (is(builder, UniqueConstraintBuilder)) uniqueConstraints.push(builder.build(table));\n\t\telse if (is(builder, PrimaryKeyBuilder)) primaryKeys.push(builder.build(table));\n\t\telse if (is(builder, ForeignKeyBuilder)) foreignKeys.push(builder.build(table));\n\t\telse if (is(builder, PgPolicy)) policies.push(builder);\n\t}\n\treturn {\n\t\tcolumns,\n\t\tindexes,\n\t\tforeignKeys,\n\t\tchecks,\n\t\tprimaryKeys,\n\t\tuniqueConstraints,\n\t\tname,\n\t\tschema,\n\t\tpolicies,\n\t\tenableRLS\n\t};\n}\nfunction extractUsedTable(table) {\n\tif (is(table, PgTable)) return [table[TableSchema] ? `${table[TableSchema]}.${table[Table.Symbol.BaseName]}` : table[Table.Symbol.BaseName]];\n\tif (is(table, Subquery)) return table._.usedTables ?? [];\n\tif (is(table, SQL)) return table.usedTables ?? [];\n\treturn [];\n}\nfunction getViewConfig(view) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[PgViewConfig]\n\t};\n}\nfunction getMaterializedViewConfig(view) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[PgMaterializedViewConfig]\n\t};\n}\n\n//#endregion\nexport { extractUsedTable, getMaterializedViewConfig, getTableConfig, getViewConfig };\n//# sourceMappingURL=utils.js.map",
80
+ "import { entityKind, is } from \"./entity.js\";\nimport { OriginalColumn } from \"./column-common.js\";\nimport { Column } from \"./column.js\";\nimport { Table } from \"./table.js\";\nimport { SQL, View, isSQLWrapper, sql } from \"./sql/sql.js\";\nimport { Subquery } from \"./subquery.js\";\nimport { ViewBaseConfig } from \"./view-common.js\";\n\n//#region src/alias.ts\nvar ColumnTableAliasProxyHandler = class {\n\tstatic [entityKind] = \"ColumnTableAliasProxyHandler\";\n\tconstructor(table, ignoreColumnAlias) {\n\t\tthis.table = table;\n\t\tthis.ignoreColumnAlias = ignoreColumnAlias;\n\t}\n\tget(columnObj, prop) {\n\t\tif (prop === \"table\") return this.table;\n\t\tif (prop === \"isAlias\" && this.ignoreColumnAlias) return false;\n\t\treturn columnObj[prop];\n\t}\n};\nvar ViewSelectionAliasProxyHandler = class {\n\tstatic [entityKind] = \"ViewSelectionAliasProxyHandler\";\n\tconstructor(view, selection, ignoreColumnAlias) {\n\t\tthis.view = view;\n\t\tthis.selection = selection;\n\t\tthis.ignoreColumnAlias = ignoreColumnAlias;\n\t}\n\tget(selection, prop) {\n\t\tconst value = selection[prop];\n\t\tif (is(value, Column)) return new Proxy(value, new ColumnTableAliasProxyHandler(this.view, this.ignoreColumnAlias));\n\t\tif (is(value, Subquery) || is(value, SQL) || is(value, SQL.Aliased) || isSQLWrapper(value) || typeof value !== \"object\" || value === null) return value;\n\t\treturn new Proxy(value, this);\n\t}\n};\nvar TableAliasProxyHandler = class {\n\tstatic [entityKind] = \"TableAliasProxyHandler\";\n\tconstructor(alias, replaceOriginalName, ignoreColumnAlias) {\n\t\tthis.alias = alias;\n\t\tthis.replaceOriginalName = replaceOriginalName;\n\t\tthis.ignoreColumnAlias = ignoreColumnAlias;\n\t}\n\tget(target, prop) {\n\t\tif (prop === Table.Symbol.IsAlias) return true;\n\t\tif (prop === Table.Symbol.Name) return this.alias;\n\t\tif (this.replaceOriginalName && prop === Table.Symbol.OriginalName) return this.alias;\n\t\tif (prop === ViewBaseConfig) return {\n\t\t\t...target[ViewBaseConfig],\n\t\t\tname: this.alias,\n\t\t\tisAlias: true,\n\t\t\tselectedFields: new Proxy(target[ViewBaseConfig].selectedFields, new ViewSelectionAliasProxyHandler(new Proxy(target, this), target[ViewBaseConfig].selectedFields, this.ignoreColumnAlias))\n\t\t};\n\t\tif (prop === Table.Symbol.Columns) {\n\t\t\tconst columns = target[Table.Symbol.Columns];\n\t\t\tif (!columns) return columns;\n\t\t\tif (is(target, View)) return new Proxy(target[Table.Symbol.Columns], new ViewSelectionAliasProxyHandler(new Proxy(target, this), target[Table.Symbol.Columns], this.ignoreColumnAlias));\n\t\t\tconst proxiedColumns = {};\n\t\t\tObject.keys(columns).map((key) => {\n\t\t\t\tproxiedColumns[key] = new Proxy(columns[key], new ColumnTableAliasProxyHandler(new Proxy(target, this), this.ignoreColumnAlias));\n\t\t\t});\n\t\t\treturn proxiedColumns;\n\t\t}\n\t\tconst value = target[prop];\n\t\tif (is(value, Column)) return new Proxy(value, new ColumnTableAliasProxyHandler(new Proxy(target, this), this.ignoreColumnAlias));\n\t\treturn value;\n\t}\n};\nvar ColumnAliasProxyHandler = class {\n\tstatic [entityKind] = \"ColumnAliasProxyHandler\";\n\tconstructor(alias) {\n\t\tthis.alias = alias;\n\t}\n\tget(target, prop) {\n\t\tif (prop === \"isAlias\") return true;\n\t\tif (prop === \"name\") return this.alias;\n\t\tif (prop === \"keyAsName\") return false;\n\t\tif (prop === OriginalColumn) return () => target;\n\t\treturn target[prop];\n\t}\n};\nvar RelationTableAliasProxyHandler = class {\n\tstatic [entityKind] = \"RelationTableAliasProxyHandler\";\n\tconstructor(alias) {\n\t\tthis.alias = alias;\n\t}\n\tget(target, prop) {\n\t\tif (prop === \"sourceTable\") return aliasedTable(target.sourceTable, this.alias);\n\t\treturn target[prop];\n\t}\n};\nfunction aliasedTable(table, tableAlias) {\n\treturn new Proxy(table, new TableAliasProxyHandler(tableAlias, false, false));\n}\nfunction aliasedColumn(column, alias) {\n\treturn new Proxy(column, new ColumnAliasProxyHandler(alias));\n}\nfunction aliasedRelation(relation, tableAlias) {\n\treturn new Proxy(relation, new RelationTableAliasProxyHandler(tableAlias));\n}\nfunction aliasedTableColumn(column, tableAlias) {\n\treturn new Proxy(column, new ColumnTableAliasProxyHandler(new Proxy(column.table, new TableAliasProxyHandler(tableAlias, false, false)), false));\n}\nfunction mapColumnsInAliasedSQLToAlias(query, alias) {\n\treturn new SQL.Aliased(mapColumnsInSQLToAlias(query.sql, alias), query.fieldAlias);\n}\nfunction mapColumnsInSQLToAlias(query, alias) {\n\treturn sql.join(query.queryChunks.map((c) => {\n\t\tif (is(c, Column)) return aliasedTableColumn(c, alias);\n\t\tif (is(c, SQL)) return mapColumnsInSQLToAlias(c, alias);\n\t\tif (is(c, SQL.Aliased)) return mapColumnsInAliasedSQLToAlias(c, alias);\n\t\treturn c;\n\t}));\n}\nColumn.prototype.as = function(alias) {\n\treturn aliasedColumn(this, alias);\n};\nfunction getOriginalColumnFromAlias(column) {\n\treturn column[OriginalColumn]();\n}\n\n//#endregion\nexport { ColumnAliasProxyHandler, ColumnTableAliasProxyHandler, RelationTableAliasProxyHandler, TableAliasProxyHandler, ViewSelectionAliasProxyHandler, aliasedColumn, aliasedRelation, aliasedTable, aliasedTableColumn, getOriginalColumnFromAlias, mapColumnsInAliasedSQLToAlias, mapColumnsInSQLToAlias };\n//# sourceMappingURL=alias.js.map",
81
+ "import { entityKind, is } from \"./entity.js\";\nimport { Column } from \"./column.js\";\nimport { SQL, View } from \"./sql/sql.js\";\nimport { Subquery } from \"./subquery.js\";\nimport { ViewBaseConfig } from \"./view-common.js\";\nimport { ColumnTableAliasProxyHandler, TableAliasProxyHandler } from \"./alias.js\";\n\n//#region src/selection-proxy.ts\nvar SelectionProxyHandler = class SelectionProxyHandler {\n\tstatic [entityKind] = \"SelectionProxyHandler\";\n\tconfig;\n\tconstructor(config) {\n\t\tthis.config = { ...config };\n\t}\n\tget(subquery, prop) {\n\t\tif (prop === \"_\") return {\n\t\t\t...subquery[\"_\"],\n\t\t\tselectedFields: new Proxy(subquery._.selectedFields, this)\n\t\t};\n\t\tif (prop === ViewBaseConfig) return {\n\t\t\t...subquery[ViewBaseConfig],\n\t\t\tselectedFields: new Proxy(subquery[ViewBaseConfig].selectedFields, this)\n\t\t};\n\t\tif (typeof prop === \"symbol\") return subquery[prop];\n\t\tconst value = (is(subquery, Subquery) ? subquery._.selectedFields : is(subquery, View) ? subquery[ViewBaseConfig].selectedFields : subquery)[prop];\n\t\tif (is(value, SQL.Aliased)) {\n\t\t\tif (this.config.sqlAliasedBehavior === \"sql\" && !value.isSelectionField) return value.sql;\n\t\t\tconst newValue = value.clone();\n\t\t\tnewValue.isSelectionField = true;\n\t\t\tnewValue.origin = this.config.alias;\n\t\t\treturn newValue;\n\t\t}\n\t\tif (is(value, SQL)) {\n\t\t\tif (this.config.sqlBehavior === \"sql\") return value;\n\t\t\tthrow new Error(`You tried to reference \"${prop}\" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using \".as('alias')\" method.`);\n\t\t}\n\t\tif (is(value, Column)) {\n\t\t\tif (this.config.alias) return new Proxy(value, new ColumnTableAliasProxyHandler(new Proxy(value.table, new TableAliasProxyHandler(this.config.alias, this.config.replaceOriginalName ?? false, true)), true));\n\t\t\treturn value;\n\t\t}\n\t\tif (typeof value !== \"object\" || value === null) return value;\n\t\treturn new Proxy(value, new SelectionProxyHandler(this.config));\n\t}\n};\n\n//#endregion\nexport { SelectionProxyHandler };\n//# sourceMappingURL=selection-proxy.js.map",
82
+ "import { entityKind } from \"../../entity.js\";\nimport { Table, getTableName } from \"../../table.js\";\nimport { orderSelectedFields } from \"../../utils.js\";\nimport { sql } from \"../../sql/sql.js\";\nimport { SelectionProxyHandler } from \"../../selection-proxy.js\";\n\n//#region src/pg-core/query-builders/delete.ts\nvar PgDeleteBase = class {\n\tstatic [entityKind] = \"PgDelete\";\n\tconfig;\n\tconstructor(table, session, dialect, withList) {\n\t\tthis.session = session;\n\t\tthis.dialect = dialect;\n\t\tthis.config = {\n\t\t\ttable,\n\t\t\twithList\n\t\t};\n\t}\n\t/**\n\t* Adds a `where` clause to the query.\n\t*\n\t* Calling this method will delete only those rows that fulfill a specified condition.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/delete}\n\t*\n\t* @param where the `where` clause.\n\t*\n\t* @example\n\t* You can use conditional operators and `sql function` to filter the rows to be deleted.\n\t*\n\t* ```ts\n\t* // Delete all cars with green color\n\t* await db.delete(cars).where(eq(cars.color, 'green'));\n\t* // or\n\t* await db.delete(cars).where(sql`${cars.color} = 'green'`)\n\t* ```\n\t*\n\t* You can logically combine conditional operators with `and()` and `or()` operators:\n\t*\n\t* ```ts\n\t* // Delete all BMW cars with a green color\n\t* await db.delete(cars).where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t*\n\t* // Delete all cars with the green or blue color\n\t* await db.delete(cars).where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t* ```\n\t*/\n\twhere(where) {\n\t\tthis.config.where = where;\n\t\treturn this;\n\t}\n\treturning(fields = this.config.table[Table.Symbol.Columns]) {\n\t\tthis.config.returningFields = fields;\n\t\tthis.config.returning = orderSelectedFields(fields, void 0, this.dialect.codecs);\n\t\treturn this;\n\t}\n\t/**\n\t* Attach [sqlcommenter](https://google.github.io/sqlcommenter) comment to a query\n\t*/\n\tcomment(comment) {\n\t\tthis.config.comment = sql.comment(comment);\n\t\treturn this;\n\t}\n\tgetSQL() {\n\t\treturn this.dialect.buildDeleteQuery(this.config);\n\t}\n\ttoSQL() {\n\t\treturn this.dialect.sqlToQuery(this.getSQL());\n\t}\n\t/** @internal */\n\tgetSelectedFields() {\n\t\treturn this.config.returningFields ? new Proxy(this.config.returningFields, new SelectionProxyHandler({\n\t\t\talias: getTableName(this.config.table),\n\t\t\tsqlAliasedBehavior: \"alias\",\n\t\t\tsqlBehavior: \"error\"\n\t\t})) : void 0;\n\t}\n\t/** @internal */\n\twithoutSelectionCastCodecs() {\n\t\tthis.config.ignoreSelectionCastCodecs = true;\n\t\treturn this;\n\t}\n\t$dynamic() {\n\t\treturn this;\n\t}\n};\n\n//#endregion\nexport { PgDeleteBase };\n//# sourceMappingURL=delete.js.map",
83
+ "import { extractUsedTable } from \"../utils.js\";\nimport { PgDeleteBase } from \"../query-builders/delete.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { tracer } from \"../../tracing.js\";\nimport { applyMixins } from \"../../utils.js\";\nimport { QueryPromise } from \"../../query-promise.js\";\n\n//#region src/pg-core/async/delete.ts\nvar PgAsyncDeleteBase = class extends PgDeleteBase {\n\tstatic [entityKind] = \"PgAsyncDelete\";\n\t/** @internal */\n\t_prepare(name, generateName = false) {\n\t\tconst { session, config, dialect } = this;\n\t\tconst { returning: fields } = config;\n\t\treturn tracer.startActiveSpan(\"drizzle.prepareQuery\", () => {\n\t\t\tconst query = dialect.sqlToQuery(this.getSQL());\n\t\t\tconst mapper = fields ? this.dialect.mapperGenerators.rows(fields, void 0) : void 0;\n\t\t\treturn session.prepareQuery(query, fields ? \"arrays\" : \"raw\", name ?? generateName, mapper, {\n\t\t\t\ttype: \"delete\",\n\t\t\t\ttables: [...extractUsedTable(this.config.table)]\n\t\t\t});\n\t\t});\n\t}\n\tprepare(name) {\n\t\treturn this._prepare(name, true);\n\t}\n\texecute = (placeholderValues) => {\n\t\treturn tracer.startActiveSpan(\"drizzle.operation\", () => {\n\t\t\treturn this._prepare().execute(placeholderValues);\n\t\t});\n\t};\n};\napplyMixins(PgAsyncDeleteBase, [QueryPromise]);\n\n//#endregion\nexport { PgAsyncDeleteBase };\n//# sourceMappingURL=delete.js.map",
84
+ "import { entityKind } from \"../entity.js\";\n\n//#region src/query-builders/query-builder.ts\nvar TypedQueryBuilder = class {\n\tstatic [entityKind] = \"TypedQueryBuilder\";\n\t/** @internal */\n\tgetSelectedFields() {\n\t\treturn this._.selectedFields;\n\t}\n\t/** @internal */\n\twithoutSelectionCastCodecs() {\n\t\treturn this;\n\t}\n};\n\n//#endregion\nexport { TypedQueryBuilder };\n//# sourceMappingURL=query-builder.js.map",
85
+ "import { entityKind } from \"../entity.js\";\nimport { View } from \"../sql/sql.js\";\n\n//#region src/pg-core/view-base.ts\nvar PgViewBase = class extends View {\n\tstatic [entityKind] = \"PgViewBase\";\n};\n\n//#endregion\nexport { PgViewBase };\n//# sourceMappingURL=view-base.js.map",
86
+ "import { extractUsedTable } from \"../utils.js\";\nimport { entityKind, is } from \"../../entity.js\";\nimport { Subquery } from \"../../subquery.js\";\nimport { ViewBaseConfig } from \"../../view-common.js\";\nimport { Table } from \"../../table.js\";\nimport { getTableColumns, getTableLikeName, haveSameKeys, orderSelectedFields } from \"../../utils.js\";\nimport { SQL, View, sql } from \"../../sql/sql.js\";\nimport { SelectionProxyHandler } from \"../../selection-proxy.js\";\nimport { TypedQueryBuilder } from \"../../query-builders/query-builder.js\";\nimport { PgViewBase } from \"../view-base.js\";\n\n//#region src/pg-core/query-builders/select.ts\nvar PgSelectBuilder = class {\n\tstatic [entityKind] = \"PgSelectBuilder\";\n\tfields;\n\tsession;\n\tdialect;\n\twithList = [];\n\tdistinct;\n\ttagged;\n\tconstructor(config, builder = PgSelectBase) {\n\t\tthis.builder = builder;\n\t\tthis.fields = config.fields;\n\t\tthis.session = config.session;\n\t\tthis.dialect = config.dialect;\n\t\tif (config.withList) this.withList = config.withList;\n\t\tthis.distinct = config.distinct;\n\t}\n\t/**\n\t* Specify the table, subquery, or other target that you're\n\t* building a select query against.\n\t*\n\t* {@link https://www.postgresql.org/docs/current/sql-select.html#SQL-FROM | Postgres from documentation}\n\t*/\n\tfrom(source) {\n\t\tconst isPartialSelect = !!this.fields;\n\t\tconst src = source;\n\t\tlet fields;\n\t\tif (this.fields) fields = this.fields;\n\t\telse if (is(src, Subquery)) fields = Object.fromEntries(Object.keys(src._.selectedFields).map((key) => [key, src[key]]));\n\t\telse if (is(src, PgViewBase)) fields = src[ViewBaseConfig].selectedFields;\n\t\telse if (is(src, SQL)) fields = {};\n\t\telse fields = getTableColumns(src);\n\t\treturn new this.builder({\n\t\t\ttable: src,\n\t\t\tfields,\n\t\t\tisPartialSelect,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\twithList: this.withList,\n\t\t\tdistinct: this.distinct\n\t\t});\n\t}\n};\nvar PgSelectBase = class extends TypedQueryBuilder {\n\tstatic [entityKind] = \"PgSelectQueryBuilder\";\n\t_;\n\tconfig;\n\tjoinsNotNullableMap;\n\ttableName;\n\tisPartialSelect;\n\tsession;\n\tdialect;\n\tcacheConfig;\n\tusedTables = /* @__PURE__ */ new Set();\n\tconstructor(config) {\n\t\tsuper();\n\t\tthis.session = config.session;\n\t\tthis.dialect = config.dialect;\n\t\tthis.config = {\n\t\t\twithList: config.withList,\n\t\t\ttable: config.table,\n\t\t\tfields: { ...config.fields },\n\t\t\tdistinct: config.distinct,\n\t\t\tsetOperators: []\n\t\t};\n\t\tthis.isPartialSelect = config.isPartialSelect;\n\t\tthis._ = {\n\t\t\tselectedFields: this.config.fields,\n\t\t\tconfig: this.config\n\t\t};\n\t\tthis.tableName = getTableLikeName(config.table);\n\t\tthis.joinsNotNullableMap = typeof this.tableName === \"string\" ? { [this.tableName]: true } : {};\n\t\tfor (const item of extractUsedTable(config.table)) this.usedTables.add(item);\n\t\tthis.config.withList?.forEach((it) => {\n\t\t\tconst extracted = extractUsedTable(it);\n\t\t\tfor (const el of extracted) this.usedTables.add(el);\n\t\t});\n\t}\n\t/** @internal */\n\tgetUsedTables() {\n\t\treturn [...this.usedTables];\n\t}\n\tcreateJoin(joinType, lateral) {\n\t\treturn ((table, on) => {\n\t\t\tconst baseTableName = this.tableName;\n\t\t\tconst tableName = getTableLikeName(table);\n\t\t\tfor (const item of extractUsedTable(table)) this.usedTables.add(item);\n\t\t\tif (typeof tableName === \"string\" && this.config.joins?.some((join) => join.alias === tableName)) throw new Error(`Alias \"${tableName}\" is already used in this query`);\n\t\t\tif (!this.isPartialSelect) {\n\t\t\t\tif (Object.keys(this.joinsNotNullableMap).length === 1 && typeof baseTableName === \"string\") this.config.fields = { [baseTableName]: this.config.fields };\n\t\t\t\tif (typeof tableName === \"string\" && !is(table, SQL)) {\n\t\t\t\t\tconst selection = is(table, Subquery) ? table._.selectedFields : is(table, View) ? table[ViewBaseConfig].selectedFields : table[Table.Symbol.Columns];\n\t\t\t\t\tthis.config.fields[tableName] = selection;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (typeof on === \"function\") on = on(new Proxy(this.config.fields, new SelectionProxyHandler({\n\t\t\t\tsqlAliasedBehavior: \"sql\",\n\t\t\t\tsqlBehavior: \"sql\"\n\t\t\t})));\n\t\t\tif (!this.config.joins) this.config.joins = [];\n\t\t\tthis.config.joins.push({\n\t\t\t\ton,\n\t\t\t\ttable,\n\t\t\t\tjoinType,\n\t\t\t\talias: tableName,\n\t\t\t\tlateral\n\t\t\t});\n\t\t\tif (typeof tableName === \"string\") switch (joinType) {\n\t\t\t\tcase \"left\":\n\t\t\t\t\tthis.joinsNotNullableMap[tableName] = false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"right\":\n\t\t\t\t\tthis.joinsNotNullableMap = Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([key]) => [key, false]));\n\t\t\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"cross\":\n\t\t\t\tcase \"inner\":\n\t\t\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"full\":\n\t\t\t\t\tthis.joinsNotNullableMap = Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([key]) => [key, false]));\n\t\t\t\t\tthis.joinsNotNullableMap[tableName] = false;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\treturn this;\n\t\t});\n\t}\n\t/**\n\t* Executes a `left join` operation by adding another table to the current query.\n\t*\n\t* Calling this method associates each row of the table with the corresponding row from the joined table, if a match is found. If no matching row exists, it sets all columns of the joined table to null.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/joins#left-join}\n\t*\n\t* @param table the table to join.\n\t* @param on the `on` clause.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all users and their pets\n\t* const usersWithPets: { user: User; pets: Pet | null; }[] = await db.select()\n\t* .from(users)\n\t* .leftJoin(pets, eq(users.id, pets.ownerId))\n\t*\n\t* // Select userId and petId\n\t* const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({\n\t* userId: users.id,\n\t* petId: pets.id,\n\t* })\n\t* .from(users)\n\t* .leftJoin(pets, eq(users.id, pets.ownerId))\n\t* ```\n\t*/\n\tleftJoin = this.createJoin(\"left\", false);\n\t/**\n\t* Executes a `left join lateral` operation by adding subquery to the current query.\n\t*\n\t* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.\n\t*\n\t* Calling this method associates each row of the table with the corresponding row from the joined table, if a match is found. If no matching row exists, it sets all columns of the joined table to null.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/joins#left-join-lateral}\n\t*\n\t* @param table the subquery to join.\n\t* @param on the `on` clause.\n\t*/\n\tleftJoinLateral = this.createJoin(\"left\", true);\n\t/**\n\t* Executes a `right join` operation by adding another table to the current query.\n\t*\n\t* Calling this method associates each row of the joined table with the corresponding row from the main table, if a match is found. If no matching row exists, it sets all columns of the main table to null.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/joins#right-join}\n\t*\n\t* @param table the table to join.\n\t* @param on the `on` clause.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all users and their pets\n\t* const usersWithPets: { user: User | null; pets: Pet; }[] = await db.select()\n\t* .from(users)\n\t* .rightJoin(pets, eq(users.id, pets.ownerId))\n\t*\n\t* // Select userId and petId\n\t* const usersIdsAndPetIds: { userId: number | null; petId: number; }[] = await db.select({\n\t* userId: users.id,\n\t* petId: pets.id,\n\t* })\n\t* .from(users)\n\t* .rightJoin(pets, eq(users.id, pets.ownerId))\n\t* ```\n\t*/\n\trightJoin = this.createJoin(\"right\", false);\n\t/**\n\t* Executes an `inner join` operation, creating a new table by combining rows from two tables that have matching values.\n\t*\n\t* Calling this method retrieves rows that have corresponding entries in both joined tables. Rows without matching entries in either table are excluded, resulting in a table that includes only matching pairs.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/joins#inner-join}\n\t*\n\t* @param table the table to join.\n\t* @param on the `on` clause.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all users and their pets\n\t* const usersWithPets: { user: User; pets: Pet; }[] = await db.select()\n\t* .from(users)\n\t* .innerJoin(pets, eq(users.id, pets.ownerId))\n\t*\n\t* // Select userId and petId\n\t* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({\n\t* userId: users.id,\n\t* petId: pets.id,\n\t* })\n\t* .from(users)\n\t* .innerJoin(pets, eq(users.id, pets.ownerId))\n\t* ```\n\t*/\n\tinnerJoin = this.createJoin(\"inner\", false);\n\t/**\n\t* Executes an `inner join lateral` operation, creating a new table by combining rows from two queries that have matching values.\n\t*\n\t* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.\n\t*\n\t* Calling this method retrieves rows that have corresponding entries in both joined tables. Rows without matching entries in either table are excluded, resulting in a table that includes only matching pairs.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/joins#inner-join-lateral}\n\t*\n\t* @param table the subquery to join.\n\t* @param on the `on` clause.\n\t*/\n\tinnerJoinLateral = this.createJoin(\"inner\", true);\n\t/**\n\t* Executes a `full join` operation by combining rows from two tables into a new table.\n\t*\n\t* Calling this method retrieves all rows from both main and joined tables, merging rows with matching values and filling in `null` for non-matching columns.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/joins#full-join}\n\t*\n\t* @param table the table to join.\n\t* @param on the `on` clause.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all users and their pets\n\t* const usersWithPets: { user: User | null; pets: Pet | null; }[] = await db.select()\n\t* .from(users)\n\t* .fullJoin(pets, eq(users.id, pets.ownerId))\n\t*\n\t* // Select userId and petId\n\t* const usersIdsAndPetIds: { userId: number | null; petId: number | null; }[] = await db.select({\n\t* userId: users.id,\n\t* petId: pets.id,\n\t* })\n\t* .from(users)\n\t* .fullJoin(pets, eq(users.id, pets.ownerId))\n\t* ```\n\t*/\n\tfullJoin = this.createJoin(\"full\", false);\n\t/**\n\t* Executes a `cross join` operation by combining rows from two tables into a new table.\n\t*\n\t* Calling this method retrieves all rows from both main and joined tables, merging all rows from each table.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/joins#cross-join}\n\t*\n\t* @param table the table to join.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all users, each user with every pet\n\t* const usersWithPets: { user: User; pets: Pet; }[] = await db.select()\n\t* .from(users)\n\t* .crossJoin(pets)\n\t*\n\t* // Select userId and petId\n\t* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({\n\t* userId: users.id,\n\t* petId: pets.id,\n\t* })\n\t* .from(users)\n\t* .crossJoin(pets)\n\t* ```\n\t*/\n\tcrossJoin = this.createJoin(\"cross\", false);\n\t/**\n\t* Executes a `cross join lateral` operation by combining rows from two queries into a new table.\n\t*\n\t* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.\n\t*\n\t* Calling this method retrieves all rows from both main and joined queries, merging all rows from each query.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/joins#cross-join-lateral}\n\t*\n\t* @param table the query to join.\n\t*/\n\tcrossJoinLateral = this.createJoin(\"cross\", true);\n\tcreateSetOperator(type, isAll) {\n\t\treturn (rightSelection) => {\n\t\t\tconst rightSelect = typeof rightSelection === \"function\" ? rightSelection(getPgSetOperators()) : rightSelection;\n\t\t\tif (!haveSameKeys(this.getSelectedFields(), rightSelect.getSelectedFields())) throw new Error(\"Set operator error (union / intersect / except): selected fields are not the same or are in a different order\");\n\t\t\tthis.config.setOperators.push({\n\t\t\t\ttype,\n\t\t\t\tisAll,\n\t\t\t\trightSelect\n\t\t\t});\n\t\t\treturn this;\n\t\t};\n\t}\n\t/**\n\t* Adds `union` set operator to the query.\n\t*\n\t* Calling this method will combine the result sets of the `select` statements and remove any duplicate rows that appear across them.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/set-operations#union}\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all unique names from customers and users tables\n\t* await db.select({ name: users.name })\n\t* .from(users)\n\t* .union(\n\t* db.select({ name: customers.name }).from(customers)\n\t* );\n\t* // or\n\t* import { union } from 'drizzle-orm/pg-core'\n\t*\n\t* await union(\n\t* db.select({ name: users.name }).from(users),\n\t* db.select({ name: customers.name }).from(customers)\n\t* );\n\t* ```\n\t*/\n\tunion = this.createSetOperator(\"union\", false);\n\t/**\n\t* Adds `union all` set operator to the query.\n\t*\n\t* Calling this method will combine the result-set of the `select` statements and keep all duplicate rows that appear across them.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/set-operations#union-all}\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all transaction ids from both online and in-store sales\n\t* await db.select({ transaction: onlineSales.transactionId })\n\t* .from(onlineSales)\n\t* .unionAll(\n\t* db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)\n\t* );\n\t* // or\n\t* import { unionAll } from 'drizzle-orm/pg-core'\n\t*\n\t* await unionAll(\n\t* db.select({ transaction: onlineSales.transactionId }).from(onlineSales),\n\t* db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)\n\t* );\n\t* ```\n\t*/\n\tunionAll = this.createSetOperator(\"union\", true);\n\t/**\n\t* Adds `intersect` set operator to the query.\n\t*\n\t* Calling this method will retain only the rows that are present in both result sets and eliminate duplicates.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/set-operations#intersect}\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select course names that are offered in both departments A and B\n\t* await db.select({ courseName: depA.courseName })\n\t* .from(depA)\n\t* .intersect(\n\t* db.select({ courseName: depB.courseName }).from(depB)\n\t* );\n\t* // or\n\t* import { intersect } from 'drizzle-orm/pg-core'\n\t*\n\t* await intersect(\n\t* db.select({ courseName: depA.courseName }).from(depA),\n\t* db.select({ courseName: depB.courseName }).from(depB)\n\t* );\n\t* ```\n\t*/\n\tintersect = this.createSetOperator(\"intersect\", false);\n\t/**\n\t* Adds `intersect all` set operator to the query.\n\t*\n\t* Calling this method will retain only the rows that are present in both result sets including all duplicates.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/set-operations#intersect-all}\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all products and quantities that are ordered by both regular and VIP customers\n\t* await db.select({\n\t* productId: regularCustomerOrders.productId,\n\t* quantityOrdered: regularCustomerOrders.quantityOrdered\n\t* })\n\t* .from(regularCustomerOrders)\n\t* .intersectAll(\n\t* db.select({\n\t* productId: vipCustomerOrders.productId,\n\t* quantityOrdered: vipCustomerOrders.quantityOrdered\n\t* })\n\t* .from(vipCustomerOrders)\n\t* );\n\t* // or\n\t* import { intersectAll } from 'drizzle-orm/pg-core'\n\t*\n\t* await intersectAll(\n\t* db.select({\n\t* productId: regularCustomerOrders.productId,\n\t* quantityOrdered: regularCustomerOrders.quantityOrdered\n\t* })\n\t* .from(regularCustomerOrders),\n\t* db.select({\n\t* productId: vipCustomerOrders.productId,\n\t* quantityOrdered: vipCustomerOrders.quantityOrdered\n\t* })\n\t* .from(vipCustomerOrders)\n\t* );\n\t* ```\n\t*/\n\tintersectAll = this.createSetOperator(\"intersect\", true);\n\t/**\n\t* Adds `except` set operator to the query.\n\t*\n\t* Calling this method will retrieve all unique rows from the left query, except for the rows that are present in the result set of the right query.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/set-operations#except}\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all courses offered in department A but not in department B\n\t* await db.select({ courseName: depA.courseName })\n\t* .from(depA)\n\t* .except(\n\t* db.select({ courseName: depB.courseName }).from(depB)\n\t* );\n\t* // or\n\t* import { except } from 'drizzle-orm/pg-core'\n\t*\n\t* await except(\n\t* db.select({ courseName: depA.courseName }).from(depA),\n\t* db.select({ courseName: depB.courseName }).from(depB)\n\t* );\n\t* ```\n\t*/\n\texcept = this.createSetOperator(\"except\", false);\n\t/**\n\t* Adds `except all` set operator to the query.\n\t*\n\t* Calling this method will retrieve all rows from the left query, except for the rows that are present in the result set of the right query.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/set-operations#except-all}\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all products that are ordered by regular customers but not by VIP customers\n\t* await db.select({\n\t* productId: regularCustomerOrders.productId,\n\t* quantityOrdered: regularCustomerOrders.quantityOrdered,\n\t* })\n\t* .from(regularCustomerOrders)\n\t* .exceptAll(\n\t* db.select({\n\t* productId: vipCustomerOrders.productId,\n\t* quantityOrdered: vipCustomerOrders.quantityOrdered,\n\t* })\n\t* .from(vipCustomerOrders)\n\t* );\n\t* // or\n\t* import { exceptAll } from 'drizzle-orm/pg-core'\n\t*\n\t* await exceptAll(\n\t* db.select({\n\t* productId: regularCustomerOrders.productId,\n\t* quantityOrdered: regularCustomerOrders.quantityOrdered\n\t* })\n\t* .from(regularCustomerOrders),\n\t* db.select({\n\t* productId: vipCustomerOrders.productId,\n\t* quantityOrdered: vipCustomerOrders.quantityOrdered\n\t* })\n\t* .from(vipCustomerOrders)\n\t* );\n\t* ```\n\t*/\n\texceptAll = this.createSetOperator(\"except\", true);\n\t/** @internal */\n\taddSetOperators(setOperators) {\n\t\tthis.config.setOperators.push(...setOperators);\n\t\treturn this;\n\t}\n\t/**\n\t* Adds a `where` clause to the query.\n\t*\n\t* Calling this method will select only those rows that fulfill a specified condition.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/select#filtering}\n\t*\n\t* @param where the `where` clause.\n\t*\n\t* @example\n\t* You can use conditional operators and `sql function` to filter the rows to be selected.\n\t*\n\t* ```ts\n\t* // Select all cars with green color\n\t* await db.select().from(cars).where(eq(cars.color, 'green'));\n\t* // or\n\t* await db.select().from(cars).where(sql`${cars.color} = 'green'`)\n\t* ```\n\t*\n\t* You can logically combine conditional operators with `and()` and `or()` operators:\n\t*\n\t* ```ts\n\t* // Select all BMW cars with a green color\n\t* await db.select().from(cars).where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t*\n\t* // Select all cars with the green or blue color\n\t* await db.select().from(cars).where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t* ```\n\t*/\n\twhere(where) {\n\t\tif (typeof where === \"function\") where = where(new Proxy(this.config.fields, new SelectionProxyHandler({\n\t\t\tsqlAliasedBehavior: \"sql\",\n\t\t\tsqlBehavior: \"sql\"\n\t\t})));\n\t\tthis.config.where = where;\n\t\treturn this;\n\t}\n\t/**\n\t* Adds a `having` clause to the query.\n\t*\n\t* Calling this method will select only those rows that fulfill a specified condition. It is typically used with aggregate functions to filter the aggregated data based on a specified condition.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/select#aggregations}\n\t*\n\t* @param having the `having` clause.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all brands with more than one car\n\t* await db.select({\n\t* \tbrand: cars.brand,\n\t* \tcount: sql<number>`cast(count(${cars.id}) as int)`,\n\t* })\n\t* .from(cars)\n\t* .groupBy(cars.brand)\n\t* .having(({ count }) => gt(count, 1));\n\t* ```\n\t*/\n\thaving(having) {\n\t\tif (typeof having === \"function\") having = having(new Proxy(this.config.fields, new SelectionProxyHandler({\n\t\t\tsqlAliasedBehavior: \"sql\",\n\t\t\tsqlBehavior: \"sql\"\n\t\t})));\n\t\tthis.config.having = having;\n\t\treturn this;\n\t}\n\tgroupBy(...columns) {\n\t\tif (typeof columns[0] === \"function\") {\n\t\t\tconst groupBy = columns[0](new Proxy(this.config.fields, new SelectionProxyHandler({\n\t\t\t\tsqlAliasedBehavior: \"alias\",\n\t\t\t\tsqlBehavior: \"sql\"\n\t\t\t})));\n\t\t\tthis.config.groupBy = Array.isArray(groupBy) ? groupBy : [groupBy];\n\t\t} else this.config.groupBy = columns;\n\t\treturn this;\n\t}\n\torderBy(...columns) {\n\t\tif (typeof columns[0] === \"function\") {\n\t\t\tconst orderBy = columns[0](new Proxy(this.config.fields, new SelectionProxyHandler({\n\t\t\t\tsqlAliasedBehavior: \"alias\",\n\t\t\t\tsqlBehavior: \"sql\"\n\t\t\t})));\n\t\t\tconst orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];\n\t\t\tif (this.config.setOperators.length > 0) this.config.setOperators.at(-1).orderBy = orderByArray;\n\t\t\telse this.config.orderBy = orderByArray;\n\t\t} else {\n\t\t\tconst orderByArray = columns;\n\t\t\tif (this.config.setOperators.length > 0) this.config.setOperators.at(-1).orderBy = orderByArray;\n\t\t\telse this.config.orderBy = orderByArray;\n\t\t}\n\t\treturn this;\n\t}\n\t/**\n\t* Adds a `limit` clause to the query.\n\t*\n\t* Calling this method will set the maximum number of rows that will be returned by this query.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/select#limit--offset}\n\t*\n\t* @param limit the `limit` clause.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Get the first 10 people from this query.\n\t* await db.select().from(people).limit(10);\n\t* ```\n\t*/\n\tlimit(limit) {\n\t\tif (this.config.setOperators.length > 0) this.config.setOperators.at(-1).limit = limit;\n\t\telse this.config.limit = limit;\n\t\treturn this;\n\t}\n\t/**\n\t* Adds an `offset` clause to the query.\n\t*\n\t* Calling this method will skip a number of rows when returning results from this query.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/select#limit--offset}\n\t*\n\t* @param offset the `offset` clause.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Get the 10th-20th people from this query.\n\t* await db.select().from(people).offset(10).limit(10);\n\t* ```\n\t*/\n\toffset(offset) {\n\t\tif (this.config.setOperators.length > 0) this.config.setOperators.at(-1).offset = offset;\n\t\telse this.config.offset = offset;\n\t\treturn this;\n\t}\n\t/**\n\t* Adds a `for` clause to the query.\n\t*\n\t* Calling this method will specify a lock strength for this query that controls how strictly it acquires exclusive access to the rows being queried.\n\t*\n\t* See docs: {@link https://www.postgresql.org/docs/current/sql-select.html#SQL-FOR-UPDATE-SHARE}\n\t*\n\t* @param strength the lock strength.\n\t* @param config the lock configuration.\n\t*/\n\tfor(strength, config = {}) {\n\t\tthis.config.lockingClause = {\n\t\t\tstrength,\n\t\t\tconfig\n\t\t};\n\t\treturn this;\n\t}\n\t/**\n\t* Attach [sqlcommenter](https://google.github.io/sqlcommenter) comment to a query\n\t*/\n\tcomment(comment) {\n\t\tthis.config.comment = sql.comment(comment);\n\t\treturn this;\n\t}\n\tgetSQL() {\n\t\tthis.config.fieldsFlat = orderSelectedFields(this.config.fields, void 0, this.dialect.codecs);\n\t\treturn this.dialect.buildSelectQuery(this.config);\n\t}\n\ttoSQL() {\n\t\treturn this.dialect.sqlToQuery(this.getSQL());\n\t}\n\tas(alias) {\n\t\tconst usedTables = [];\n\t\tusedTables.push(...extractUsedTable(this.config.table));\n\t\tif (this.config.joins) for (const it of this.config.joins) usedTables.push(...extractUsedTable(it.table));\n\t\treturn new Proxy(new Subquery(this.withoutSelectionCastCodecs().getSQL(), this.config.fields, alias, false, [...new Set(usedTables)]), new SelectionProxyHandler({\n\t\t\talias,\n\t\t\tsqlAliasedBehavior: \"alias\",\n\t\t\tsqlBehavior: \"error\"\n\t\t}));\n\t}\n\t/** @internal */\n\tgetSelectedFields() {\n\t\treturn new Proxy(this.config.fields, new SelectionProxyHandler({\n\t\t\talias: this.tableName,\n\t\t\tsqlAliasedBehavior: \"alias\",\n\t\t\tsqlBehavior: \"error\"\n\t\t}));\n\t}\n\t/** @internal */\n\twithoutSelectionCastCodecs() {\n\t\tthis.config.ignoreSelectionCastCodecs = true;\n\t\treturn this;\n\t}\n\t$dynamic() {\n\t\treturn this;\n\t}\n\t$withCache(config) {\n\t\tthis.cacheConfig = config === void 0 ? {\n\t\t\tconfig: {},\n\t\t\tenabled: true,\n\t\t\tautoInvalidate: true\n\t\t} : config === false ? { enabled: false } : {\n\t\t\tenabled: true,\n\t\t\tautoInvalidate: true,\n\t\t\t...config\n\t\t};\n\t\treturn this;\n\t}\n};\nfunction createSetOperator(type, isAll) {\n\treturn (leftSelect, rightSelect, ...restSelects) => {\n\t\tconst setOperators = [rightSelect, ...restSelects].map((select) => ({\n\t\t\ttype,\n\t\t\tisAll,\n\t\t\trightSelect: select\n\t\t}));\n\t\tfor (const setOperator of setOperators) if (!haveSameKeys(leftSelect.getSelectedFields(), setOperator.rightSelect.getSelectedFields())) throw new Error(\"Set operator error (union / intersect / except): selected fields are not the same or are in a different order\");\n\t\treturn leftSelect.addSetOperators(setOperators);\n\t};\n}\nconst getPgSetOperators = () => ({\n\tunion,\n\tunionAll,\n\tintersect,\n\tintersectAll,\n\texcept,\n\texceptAll\n});\n/**\n* Adds `union` set operator to the query.\n*\n* Calling this method will combine the result sets of the `select` statements and remove any duplicate rows that appear across them.\n*\n* See docs: {@link https://orm.drizzle.team/docs/set-operations#union}\n*\n* @example\n*\n* ```ts\n* // Select all unique names from customers and users tables\n* import { union } from 'drizzle-orm/pg-core'\n*\n* await union(\n* db.select({ name: users.name }).from(users),\n* db.select({ name: customers.name }).from(customers)\n* );\n* // or\n* await db.select({ name: users.name })\n* .from(users)\n* .union(\n* db.select({ name: customers.name }).from(customers)\n* );\n* ```\n*/\nconst union = createSetOperator(\"union\", false);\n/**\n* Adds `union all` set operator to the query.\n*\n* Calling this method will combine the result-set of the `select` statements and keep all duplicate rows that appear across them.\n*\n* See docs: {@link https://orm.drizzle.team/docs/set-operations#union-all}\n*\n* @example\n*\n* ```ts\n* // Select all transaction ids from both online and in-store sales\n* import { unionAll } from 'drizzle-orm/pg-core'\n*\n* await unionAll(\n* db.select({ transaction: onlineSales.transactionId }).from(onlineSales),\n* db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)\n* );\n* // or\n* await db.select({ transaction: onlineSales.transactionId })\n* .from(onlineSales)\n* .unionAll(\n* db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)\n* );\n* ```\n*/\nconst unionAll = createSetOperator(\"union\", true);\n/**\n* Adds `intersect` set operator to the query.\n*\n* Calling this method will retain only the rows that are present in both result sets and eliminate duplicates.\n*\n* See docs: {@link https://orm.drizzle.team/docs/set-operations#intersect}\n*\n* @example\n*\n* ```ts\n* // Select course names that are offered in both departments A and B\n* import { intersect } from 'drizzle-orm/pg-core'\n*\n* await intersect(\n* db.select({ courseName: depA.courseName }).from(depA),\n* db.select({ courseName: depB.courseName }).from(depB)\n* );\n* // or\n* await db.select({ courseName: depA.courseName })\n* .from(depA)\n* .intersect(\n* db.select({ courseName: depB.courseName }).from(depB)\n* );\n* ```\n*/\nconst intersect = createSetOperator(\"intersect\", false);\n/**\n* Adds `intersect all` set operator to the query.\n*\n* Calling this method will retain only the rows that are present in both result sets including all duplicates.\n*\n* See docs: {@link https://orm.drizzle.team/docs/set-operations#intersect-all}\n*\n* @example\n*\n* ```ts\n* // Select all products and quantities that are ordered by both regular and VIP customers\n* import { intersectAll } from 'drizzle-orm/pg-core'\n*\n* await intersectAll(\n* db.select({\n* productId: regularCustomerOrders.productId,\n* quantityOrdered: regularCustomerOrders.quantityOrdered\n* })\n* .from(regularCustomerOrders),\n* db.select({\n* productId: vipCustomerOrders.productId,\n* quantityOrdered: vipCustomerOrders.quantityOrdered\n* })\n* .from(vipCustomerOrders)\n* );\n* // or\n* await db.select({\n* productId: regularCustomerOrders.productId,\n* quantityOrdered: regularCustomerOrders.quantityOrdered\n* })\n* .from(regularCustomerOrders)\n* .intersectAll(\n* db.select({\n* productId: vipCustomerOrders.productId,\n* quantityOrdered: vipCustomerOrders.quantityOrdered\n* })\n* .from(vipCustomerOrders)\n* );\n* ```\n*/\nconst intersectAll = createSetOperator(\"intersect\", true);\n/**\n* Adds `except` set operator to the query.\n*\n* Calling this method will retrieve all unique rows from the left query, except for the rows that are present in the result set of the right query.\n*\n* See docs: {@link https://orm.drizzle.team/docs/set-operations#except}\n*\n* @example\n*\n* ```ts\n* // Select all courses offered in department A but not in department B\n* import { except } from 'drizzle-orm/pg-core'\n*\n* await except(\n* db.select({ courseName: depA.courseName }).from(depA),\n* db.select({ courseName: depB.courseName }).from(depB)\n* );\n* // or\n* await db.select({ courseName: depA.courseName })\n* .from(depA)\n* .except(\n* db.select({ courseName: depB.courseName }).from(depB)\n* );\n* ```\n*/\nconst except = createSetOperator(\"except\", false);\n/**\n* Adds `except all` set operator to the query.\n*\n* Calling this method will retrieve all rows from the left query, except for the rows that are present in the result set of the right query.\n*\n* See docs: {@link https://orm.drizzle.team/docs/set-operations#except-all}\n*\n* @example\n*\n* ```ts\n* // Select all products that are ordered by regular customers but not by VIP customers\n* import { exceptAll } from 'drizzle-orm/pg-core'\n*\n* await exceptAll(\n* db.select({\n* productId: regularCustomerOrders.productId,\n* quantityOrdered: regularCustomerOrders.quantityOrdered\n* })\n* .from(regularCustomerOrders),\n* db.select({\n* productId: vipCustomerOrders.productId,\n* quantityOrdered: vipCustomerOrders.quantityOrdered\n* })\n* .from(vipCustomerOrders)\n* );\n* // or\n* await db.select({\n* productId: regularCustomerOrders.productId,\n* quantityOrdered: regularCustomerOrders.quantityOrdered,\n* })\n* .from(regularCustomerOrders)\n* .exceptAll(\n* db.select({\n* productId: vipCustomerOrders.productId,\n* quantityOrdered: vipCustomerOrders.quantityOrdered,\n* })\n* .from(vipCustomerOrders)\n* );\n* ```\n*/\nconst exceptAll = createSetOperator(\"except\", true);\n\n//#endregion\nexport { PgSelectBase, PgSelectBuilder, except, exceptAll, intersect, intersectAll, union, unionAll };\n//# sourceMappingURL=select.js.map",
87
+ "import { entityKind } from \"./entity.js\";\n\n//#region src/errors.ts\nvar DrizzleError = class extends Error {\n\tstatic [entityKind] = \"DrizzleError\";\n\tconstructor({ message, cause }) {\n\t\tsuper(message);\n\t\tthis.name = \"DrizzleError\";\n\t\tthis.cause = cause;\n\t}\n};\nvar DrizzleQueryError = class DrizzleQueryError extends Error {\n\tstatic [entityKind] = \"DrizzleQueryError\";\n\tconstructor(query, params, cause) {\n\t\tsuper(`Failed query: ${query}\\nparams: ${params}`);\n\t\tthis.query = query;\n\t\tthis.params = params;\n\t\tthis.cause = cause;\n\t\tthis.name = \"DrizzleQueryError\";\n\t\tError.captureStackTrace(this, DrizzleQueryError);\n\t\tif (cause) this.cause = cause;\n\t}\n};\nvar TransactionRollbackError = class extends DrizzleError {\n\tstatic [entityKind] = \"TransactionRollbackError\";\n\tconstructor() {\n\t\tsuper({ message: \"Rollback\" });\n\t\tthis.name = \"TransactionRollbackError\";\n\t}\n};\n\n//#endregion\nexport { DrizzleError, DrizzleQueryError, TransactionRollbackError };\n//# sourceMappingURL=errors.js.map",
88
+ "import { entityKind, is } from \"./entity.js\";\nimport { Column } from \"./column.js\";\nimport { Placeholder, SQL, View, noopDecoder, sql } from \"./sql/sql.js\";\nimport { DrizzleError } from \"./errors.js\";\nimport { and, arrayContained, arrayContains, arrayOverlaps, between, eq, exists, gt, gte, ilike, inArray, isNotNull, isNull, like, lt, lte, ne, not, notBetween, notExists, notIlike, notInArray, notLike, or } from \"./sql/expressions/conditions.js\";\nimport { asc, desc } from \"./sql/expressions/select.js\";\nimport { aliasedTable } from \"./alias.js\";\nimport { FnConstructor, getColumnFromDecoder } from \"./utils.js\";\nimport { IsAlias, OriginalName, Table, TableColumns, TableSchema } from \"./table.js\";\n\n//#region src/relations.ts\nfunction processRelations(tablesConfig, tables) {\n\tfor (const tableConfig of Object.values(tablesConfig)) for (const [relationFieldName, relation] of Object.entries(tableConfig.relations)) {\n\t\tif (!is(relation, Relation)) continue;\n\t\trelation.sourceTable = tableConfig.table;\n\t\trelation.fieldName = relationFieldName;\n\t}\n\tfor (const [sourceTableName, tableConfig] of Object.entries(tablesConfig)) for (const [relationFieldName, relation] of Object.entries(tableConfig.relations)) {\n\t\tif (!is(relation, Relation)) continue;\n\t\tlet reverseRelation;\n\t\tconst { targetTableName, alias, sourceColumns, targetColumns, throughTable, sourceTable, through, where, sourceColumnTableNames, targetColumnTableNames } = relation;\n\t\tconst relationPrintName = `relations -> ${tableConfig.name}: { ${relationFieldName}: r.${is(relation, One) ? \"one\" : \"many\"}.${targetTableName}(...) }`;\n\t\tif (relationFieldName in tableConfig.table[TableColumns]) throw new Error(`${relationPrintName}: relation name collides with column \"${relationFieldName}\" of table \"${tableConfig.name}\"`);\n\t\tif (typeof alias === \"string\" && !alias) throw new Error(`${relationPrintName}: \"alias\" cannot be an empty string - omit it if you don't need it`);\n\t\tif (sourceColumns?.length === 0) throw new Error(`${relationPrintName}: \"from\" cannot be empty`);\n\t\tif (targetColumns?.length === 0) throw new Error(`${relationPrintName}: \"to\" cannot be empty`);\n\t\tif (sourceColumns && targetColumns) {\n\t\t\tif (sourceColumns.length !== targetColumns.length && !throughTable) throw new Error(`${relationPrintName}: \"from\" and \"to\" fields without \"through\" must have the same length`);\n\t\t\tfor (const sName of sourceColumnTableNames) if (sName !== sourceTableName) throw new Error(`${relationPrintName}: all \"from\" columns must belong to table \"${sourceTableName}\", found column of table \"${sName}\"`);\n\t\t\tfor (const tName of targetColumnTableNames) if (tName !== targetTableName) throw new Error(`${relationPrintName}: all \"to\" columns must belong to table \"${targetTableName}\", found column of table \"${tName}\"`);\n\t\t\tif (through) {\n\t\t\t\tif (through.source.length !== sourceColumns.length || through.target.length !== targetColumns.length) throw new Error(`${relationPrintName}: \".through(column)\" must be used either on all columns in \"from\" and \"to\" or not defined on any of them`);\n\t\t\t\tfor (const column of through.source) if (tables[column._.tableName] !== throughTable) throw new Error(`${relationPrintName}: \".through(column)\" must be used on the same table by all columns of the relation`);\n\t\t\t\tfor (const column of through.target) if (tables[column._.tableName] !== throughTable) throw new Error(`${relationPrintName}: \".through(column)\" must be used on the same table by all columns of the relation`);\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (sourceColumns || targetColumns) throw new Error(`${relationPrintName}: relation must have either both \"from\" and \"to\" defined, or none of them`);\n\t\tconst reverseTableConfig = tablesConfig[targetTableName];\n\t\tif (!reverseTableConfig) throw new Error(`${relationPrintName}: not enough data provided to build the relation - \"from\"/\"to\" are not defined, and no reverse relations of table \"${targetTableName}\" were found\"`);\n\t\tif (alias) {\n\t\t\tconst reverseRelations = Object.values(reverseTableConfig.relations).filter((it) => is(it, Relation) && it.alias === alias && it !== relation);\n\t\t\tif (reverseRelations.length > 1) throw new Error(`${relationPrintName}: not enough data provided to build the relation - \"from\"/\"to\" are not defined, and multiple relations with alias \"${alias}\" found in table \"${targetTableName}\": ${reverseRelations.map((it) => `\"${it.fieldName}\"`).join(\", \")}`);\n\t\t\treverseRelation = reverseRelations[0];\n\t\t\tif (!reverseRelation) throw new Error(`${relationPrintName}: not enough data provided to build the relation - \"from\"/\"to\" are not defined, and there is no reverse relation of table \"${targetTableName}\" with alias \"${alias}\"`);\n\t\t} else {\n\t\t\tconst reverseRelations = Object.values(reverseTableConfig.relations).filter((it) => is(it, Relation) && it.targetTable === sourceTable && !it.alias && it !== relation);\n\t\t\tif (reverseRelations.length > 1) throw new Error(`${relationPrintName}: not enough data provided to build the relation - \"from\"/\"to\" are not defined, and multiple relations between \"${targetTableName}\" and \"${sourceTableName}\" were found.\\nHint: you can specify \"alias\" on both sides of the relation with the same value`);\n\t\t\treverseRelation = reverseRelations[0];\n\t\t\tif (!reverseRelation) throw new Error(`${relationPrintName}: not enough data provided to build the relation - \"from\"/\"to\" are not defined, and no reverse relation of table \"${targetTableName}\" with target table \"${sourceTableName}\" was found`);\n\t\t}\n\t\tif (!reverseRelation.sourceColumns || !reverseRelation.targetColumns) throw new Error(`${relationPrintName}: not enough data provided to build the relation - \"from\"/\"to\" are not defined, and reverse relation \"${targetTableName}.${reverseRelation.fieldName}\" does not have \"from\"/\"to\" defined`);\n\t\trelation.sourceColumns = reverseRelation.targetColumns;\n\t\trelation.targetColumns = reverseRelation.sourceColumns;\n\t\trelation.through = reverseRelation.through ? {\n\t\t\tsource: reverseRelation.through.target,\n\t\t\ttarget: reverseRelation.through.source\n\t\t} : void 0;\n\t\trelation.throughTable = reverseRelation.throughTable;\n\t\trelation.isReversed = !where;\n\t\trelation.where = where ?? reverseRelation.where;\n\t}\n\treturn tablesConfig;\n}\n/** Builds relational config for every table in schema */\nfunction buildRelations(tables, config) {\n\tconst tablesConfig = {};\n\tfor (const [tsName, table] of Object.entries(tables)) tablesConfig[tsName] = {\n\t\ttable,\n\t\tname: tsName,\n\t\trelations: config[tsName] ?? {}\n\t};\n\treturn processRelations(tablesConfig, tables);\n}\n/** Builds relational config only for tables present in relational config */\nfunction buildRelationsParts(tables, config) {\n\tconst tablesConfig = {};\n\tfor (const [tsName, relations] of Object.entries(config)) {\n\t\tif (!relations || !tables[tsName]) continue;\n\t\ttablesConfig[tsName] = {\n\t\t\ttable: tables[tsName],\n\t\t\tname: tsName,\n\t\t\trelations\n\t\t};\n\t}\n\treturn processRelations(tablesConfig, tables);\n}\nvar Relation = class {\n\tstatic [entityKind] = \"RelationV2\";\n\tfieldName;\n\tsourceColumns;\n\ttargetColumns;\n\talias;\n\twhere;\n\tsourceTable;\n\ttargetTable;\n\tthrough;\n\tthroughTable;\n\tisReversed;\n\t/** @internal */\n\tsourceColumnTableNames = [];\n\t/** @internal */\n\ttargetColumnTableNames = [];\n\tconstructor(targetTable, targetTableName) {\n\t\tthis.targetTableName = targetTableName;\n\t\tthis.targetTable = targetTable;\n\t}\n};\nvar One = class extends Relation {\n\tstatic [entityKind] = \"OneV2\";\n\trelationType = \"one\";\n\toptional;\n\tconstructor(tables, targetTable, targetTableName, config) {\n\t\tsuper(targetTable, targetTableName);\n\t\tthis.alias = config?.alias;\n\t\tthis.where = config?.where;\n\t\tif (config?.from) this.sourceColumns = (Array.isArray(config.from) ? config.from : [config.from]).map((it) => {\n\t\t\tthis.throughTable ??= it._.through ? tables[it._.through._.tableName] : void 0;\n\t\t\tthis.sourceColumnTableNames.push(it._.tableName);\n\t\t\treturn it._.column;\n\t\t});\n\t\tif (config?.to) this.targetColumns = (Array.isArray(config.to) ? config.to : [config.to]).map((it) => {\n\t\t\tthis.throughTable ??= it._.through ? tables[it._.through._.tableName] : void 0;\n\t\t\tthis.targetColumnTableNames.push(it._.tableName);\n\t\t\treturn it._.column;\n\t\t});\n\t\tif (this.throughTable) this.through = {\n\t\t\tsource: (Array.isArray(config?.from) ? config.from : config?.from ? [config.from] : []).map((c) => c._.through),\n\t\t\ttarget: (Array.isArray(config?.to) ? config.to : config?.to ? [config.to] : []).map((c) => c._.through)\n\t\t};\n\t\tthis.optional = config?.optional ?? true;\n\t}\n};\nvar Many = class extends Relation {\n\tstatic [entityKind] = \"ManyV2\";\n\trelationType = \"many\";\n\tconstructor(tables, targetTable, targetTableName, config) {\n\t\tsuper(targetTable, targetTableName);\n\t\tthis.config = config;\n\t\tthis.alias = config?.alias;\n\t\tthis.where = config?.where;\n\t\tif (config?.from) this.sourceColumns = (Array.isArray(config.from) ? config.from : [config.from]).map((it) => {\n\t\t\tthis.throughTable ??= it._.through ? tables[it._.through._.tableName] : void 0;\n\t\t\tthis.sourceColumnTableNames.push(it._.tableName);\n\t\t\treturn it._.column;\n\t\t});\n\t\tif (config?.to) this.targetColumns = (Array.isArray(config.to) ? config.to : [config.to]).map((it) => {\n\t\t\tthis.throughTable ??= it._.through ? tables[it._.through._.tableName] : void 0;\n\t\t\tthis.targetColumnTableNames.push(it._.tableName);\n\t\t\treturn it._.column;\n\t\t});\n\t\tif (this.throughTable) this.through = {\n\t\t\tsource: (Array.isArray(config?.from) ? config.from : config?.from ? [config.from] : []).map((c) => c._.through),\n\t\t\ttarget: (Array.isArray(config?.to) ? config.to : config?.to ? [config.to] : []).map((c) => c._.through)\n\t\t};\n\t}\n};\nvar AggregatedField = class {\n\tstatic [entityKind] = \"AggregatedField\";\n\ttable;\n\tonTable(table) {\n\t\tthis.table = table;\n\t\treturn this;\n\t}\n};\nvar Count = class extends AggregatedField {\n\tstatic [entityKind] = \"AggregatedFieldCount\";\n\tquery;\n\tgetSQL() {\n\t\tif (!this.query) {\n\t\t\tif (!this.table) throw new Error(\"Table must be set before building aggregate field\");\n\t\t\tthis.query = sql`select count(*) as ${sql.identifier(\"r\")} from ${getTableAsAliasSQL(this.table)}`.mapWith(Number);\n\t\t}\n\t\treturn this.query;\n\t}\n};\nconst operators = {\n\tand,\n\tbetween,\n\teq,\n\texists,\n\tgt,\n\tgte,\n\tilike,\n\tinArray,\n\tarrayContains,\n\tarrayContained,\n\tarrayOverlaps,\n\tisNull,\n\tisNotNull,\n\tlike,\n\tlt,\n\tlte,\n\tne,\n\tnot,\n\tnotBetween,\n\tnotExists,\n\tnotLike,\n\tnotIlike,\n\tnotInArray,\n\tor,\n\tsql\n};\nconst orderByOperators = {\n\tsql,\n\tasc,\n\tdesc\n};\nfunction getOrderByOperators() {\n\treturn orderByOperators;\n}\nfunction mapRelationalRow(rows, isOne, buildQueryResultSelection, parseJson = false, parseJsonIfString = false, useJsonMappers = true) {\n\tconst maxIdx = isOne ? 1 : rows.length;\n\tconst decoders = buildQueryResultSelection.map(({ field, codec, arrayDimensions }) => {\n\t\tlet decoder;\n\t\tif (is(field, Column)) decoder = field;\n\t\telse if (is(field, SQL)) decoder = field.decoder;\n\t\telse if (is(field, SQL.Aliased)) decoder = field.sql.decoder;\n\t\telse if (is(field, Table) || is(field, View)) decoder = noopDecoder;\n\t\telse decoder = field.getSQL().decoder;\n\t\tif (useJsonMappers && field.mapFromJsonValue) return (v) => field.mapFromJsonValue(v);\n\t\treturn decoder.mapFromDriverValue.isNoop ? codec ? (value) => codec(value, arrayDimensions) : void 0 : codec ? (value) => decoder.mapFromDriverValue(codec(value, arrayDimensions)) : (value) => decoder.mapFromDriverValue(value);\n\t});\n\tfor (let i = 0; i < maxIdx; ++i) {\n\t\tconst row = isOne ? rows : rows[i];\n\t\tfor (let selectionItemIdx = 0; selectionItemIdx < buildQueryResultSelection.length; ++selectionItemIdx) {\n\t\t\tconst selectionItem = buildQueryResultSelection[selectionItemIdx];\n\t\t\tif (selectionItem.selection) {\n\t\t\t\tif (row[selectionItem.key] === null) continue;\n\t\t\t\tif (parseJson) {\n\t\t\t\t\trow[selectionItem.key] = JSON.parse(row[selectionItem.key]);\n\t\t\t\t\tif (row[selectionItem.key] === null) continue;\n\t\t\t\t} else if (parseJsonIfString && typeof row[selectionItem.key] === \"string\") row[selectionItem.key] = JSON.parse(row[selectionItem.key]);\n\t\t\t\tif (selectionItem.isArray) {\n\t\t\t\t\tmapRelationalRow(row[selectionItem.key], false, selectionItem.selection, false, parseJsonIfString);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tmapRelationalRow(row[selectionItem.key], true, selectionItem.selection, false, parseJsonIfString);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (row[selectionItem.key] === null) continue;\n\t\t\tconst decoder = decoders[selectionItemIdx];\n\t\t\tif (!decoder) continue;\n\t\t\trow[selectionItem.key] = decoder(row[selectionItem.key]);\n\t\t}\n\t}\n\treturn rows;\n}\nfunction mapRelationalRowFromArrays(rows, isOne, buildQueryResultSelection, parseJson = false, parseJsonIfString = false) {\n\tconst maxIdx = isOne ? 1 : rows.length;\n\tconst decoders = buildQueryResultSelection.map(({ field, codec, arrayDimensions }) => {\n\t\tlet decoder;\n\t\tif (is(field, Column)) decoder = field;\n\t\telse if (is(field, SQL)) decoder = field.decoder;\n\t\telse if (is(field, SQL.Aliased)) decoder = field.sql.decoder;\n\t\telse if (is(field, Table) || is(field, View)) decoder = noopDecoder;\n\t\telse decoder = field.getSQL().decoder;\n\t\treturn decoder.mapFromDriverValue.isNoop ? codec ? (value) => codec(value, arrayDimensions) : void 0 : codec ? (value) => decoder.mapFromDriverValue(codec(value, arrayDimensions)) : (value) => decoder.mapFromDriverValue(value);\n\t});\n\tconst results = Array.from({ length: maxIdx });\n\tfor (let i = 0; i < maxIdx; ++i) {\n\t\tconst row = isOne ? rows : rows[i];\n\t\tconst result = {};\n\t\tfor (let selectionItemIdx = 0; selectionItemIdx < buildQueryResultSelection.length; ++selectionItemIdx) {\n\t\t\tconst selectionItem = buildQueryResultSelection[selectionItemIdx];\n\t\t\tlet value = row[selectionItemIdx];\n\t\t\tif (selectionItem.selection) {\n\t\t\t\tif (value === null) {\n\t\t\t\t\tresult[selectionItem.key] = null;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (parseJson) {\n\t\t\t\t\tvalue = JSON.parse(value);\n\t\t\t\t\tif (value === null) {\n\t\t\t\t\t\tresult[selectionItem.key] = null;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} else if (parseJsonIfString && typeof value === \"string\") value = JSON.parse(value);\n\t\t\t\tif (selectionItem.isArray) mapRelationalRow(value, false, selectionItem.selection, false, parseJsonIfString);\n\t\t\t\telse mapRelationalRow(value, true, selectionItem.selection, false, parseJsonIfString);\n\t\t\t\tresult[selectionItem.key] = value;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (value === null) {\n\t\t\t\tresult[selectionItem.key] = null;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst decoder = decoders[selectionItemIdx];\n\t\t\tresult[selectionItem.key] = decoder ? decoder(value) : value;\n\t\t}\n\t\tresults[i] = result;\n\t}\n\treturn isOne ? results[0] : results;\n}\nfunction makeDefaultRqbMapper({ selection, isFirst, parseJson, parseJsonIfString, rootJsonMappers, arrayModeRoot }) {\n\treturn ((rows) => {\n\t\tif (isFirst && !rows[0]) return rows[0];\n\t\treturn arrayModeRoot ? mapRelationalRowFromArrays(isFirst ? rows[0] : rows, isFirst, selection, parseJson, parseJsonIfString) : mapRelationalRow(isFirst ? rows[0] : rows, isFirst, selection, parseJson, parseJsonIfString, rootJsonMappers);\n\t});\n}\nfunction makeJitRqbMapperInner(selection, rowExpr, selectionVar, parseJson, parseJsonIfString, useJsonMappers, preFn, counter, accessByIdx) {\n\tconst bodyStmts = [];\n\tconst literalEntries = [];\n\tlet hasWork = false;\n\tconst fieldVars = selection.map(() => `c${counter.n++}`);\n\tconst destructurePieces = selection.map((item, idx) => accessByIdx ? fieldVars[idx] : `${JSON.stringify(item.key)}: ${fieldVars[idx]}`);\n\tbodyStmts.push(accessByIdx ? `let [ ${destructurePieces.join(\", \")} ] = ${rowExpr};` : `let { ${destructurePieces.join(\", \")} } = ${rowExpr};`);\n\tfor (const [idx, { field, key, codec, isArray, selection: innerSelection, arrayDimensions }] of selection.entries()) {\n\t\tconst sel = `${selectionVar}[${idx}]`;\n\t\tconst keyStr = JSON.stringify(key);\n\t\tconst slot = fieldVars[idx];\n\t\tif (innerSelection) {\n\t\t\tif (parseJson) {\n\t\t\t\tbodyStmts.push(`if (${slot} !== null) ${slot} = JSON.parse(${slot});`);\n\t\t\t\thasWork = true;\n\t\t\t} else if (parseJsonIfString) {\n\t\t\t\tbodyStmts.push(`if (typeof ${slot} === 'string') ${slot} = JSON.parse(${slot});`);\n\t\t\t\thasWork = true;\n\t\t\t}\n\t\t\tconst nestedSelVar = `s${counter.n++}`;\n\t\t\tconst savedPreFnLen = preFn.length;\n\t\t\tpreFn.push(`const { selection: ${nestedSelVar} } = ${sel};`);\n\t\t\tif (isArray) {\n\t\t\t\tconst j = `j${counter.n++}`;\n\t\t\t\tconst inner = makeJitRqbMapperInner(innerSelection, `${slot}[${j}]`, nestedSelVar, false, parseJsonIfString, true, preFn, counter, false);\n\t\t\t\tif (inner.hasWork) {\n\t\t\t\t\thasWork = true;\n\t\t\t\t\tbodyStmts.push(`if (${slot} !== null) {`);\n\t\t\t\t\tbodyStmts.push(`\\tfor (let ${j} = 0; ${j} < ${slot}.length; ++${j}) {`);\n\t\t\t\t\tfor (const s of inner.bodyStmts) bodyStmts.push(`\\t\\t${s}`);\n\t\t\t\t\tbodyStmts.push(`\\t\\t${slot}[${j}] = ${inner.literal};`);\n\t\t\t\t\tbodyStmts.push(`\\t}`);\n\t\t\t\t\tbodyStmts.push(`}`);\n\t\t\t\t} else preFn.splice(savedPreFnLen, 1);\n\t\t\t} else {\n\t\t\t\tconst inner = makeJitRqbMapperInner(innerSelection, slot, nestedSelVar, false, parseJsonIfString, true, preFn, counter, false);\n\t\t\t\tif (inner.hasWork) {\n\t\t\t\t\thasWork = true;\n\t\t\t\t\tbodyStmts.push(`if (${slot} !== null) {`);\n\t\t\t\t\tfor (const s of inner.bodyStmts) bodyStmts.push(`\\t${s}`);\n\t\t\t\t\tbodyStmts.push(`\\t${slot} = ${inner.literal};`);\n\t\t\t\t\tbodyStmts.push(`}`);\n\t\t\t\t} else preFn.splice(savedPreFnLen, 1);\n\t\t\t}\n\t\t\tliteralEntries.push(`${keyStr}: ${slot}`);\n\t\t\tcontinue;\n\t\t}\n\t\tlet decoderExpr = \"\";\n\t\tlet destructure = \"\";\n\t\tlet bypassCodecs = false;\n\t\tif (is(field, Column)) {\n\t\t\tif (useJsonMappers && field.mapFromJsonValue) {\n\t\t\t\tbypassCodecs = true;\n\t\t\t\tconst id = counter.n++;\n\t\t\t\tdestructure = `field: dec${id}`;\n\t\t\t\tdecoderExpr = `dec${id}.mapFromJsonValue`;\n\t\t\t} else if (!field.mapFromDriverValue.isNoop) {\n\t\t\t\tconst id = counter.n++;\n\t\t\t\tdestructure = `field: dec${id}`;\n\t\t\t\tdecoderExpr = `dec${id}.mapFromDriverValue`;\n\t\t\t}\n\t\t} else if (is(field, SQL)) {\n\t\t\tif (useJsonMappers && field.decoder.mapFromJsonValue) {\n\t\t\t\tbypassCodecs = true;\n\t\t\t\tconst id = counter.n++;\n\t\t\t\tdestructure = `field: { decoder: dec${id} }`;\n\t\t\t\tdecoderExpr = `dec${id}.mapFromJsonValue`;\n\t\t\t} else if (!field.decoder.mapFromDriverValue.isNoop) {\n\t\t\t\tconst id = counter.n++;\n\t\t\t\tdestructure = `field: { decoder: dec${id} }`;\n\t\t\t\tdecoderExpr = `dec${id}.mapFromDriverValue`;\n\t\t\t}\n\t\t} else if (is(field, SQL.Aliased)) {\n\t\t\tif (useJsonMappers && field.sql.decoder.mapFromJsonValue) {\n\t\t\t\tbypassCodecs = true;\n\t\t\t\tconst id = counter.n++;\n\t\t\t\tdestructure = `field: { sql: { decoder: dec${id} } }`;\n\t\t\t\tdecoderExpr = `dec${id}.mapFromJsonValue`;\n\t\t\t} else if (!field.sql.decoder.mapFromDriverValue.isNoop) {\n\t\t\t\tconst id = counter.n++;\n\t\t\t\tdestructure = `field: { sql: { decoder: dec${id} } }`;\n\t\t\t\tdecoderExpr = `dec${id}.mapFromDriverValue`;\n\t\t\t}\n\t\t} else if (is(field, Table) || is(field, View)) {} else {\n\t\t\tconst sqlExpr = field.getSQL();\n\t\t\tif (useJsonMappers && sqlExpr.decoder.mapFromJsonValue) {\n\t\t\t\tbypassCodecs = true;\n\t\t\t\tconst id = counter.n++;\n\t\t\t\tpreFn.push(`const dec${id} = ${sel}.field.getSQL().decoder;`);\n\t\t\t\tdecoderExpr = `dec${id}.mapFromJsonValue`;\n\t\t\t} else if (!sqlExpr.decoder.mapFromDriverValue.isNoop) {\n\t\t\t\tconst id = counter.n++;\n\t\t\t\tpreFn.push(`const dec${id} = ${sel}.field.getSQL().decoder;`);\n\t\t\t\tdecoderExpr = `dec${id}.mapFromDriverValue`;\n\t\t\t}\n\t\t}\n\t\tlet codecVar = \"\";\n\t\tif (!bypassCodecs && codec) codecVar = `codec${counter.n++}`;\n\t\tif (destructure || codecVar) {\n\t\t\tconst parts = [];\n\t\t\tif (destructure) parts.push(destructure);\n\t\t\tif (codecVar) parts.push(`codec: ${codecVar}`);\n\t\t\tpreFn.push(`const { ${parts.join(\", \")} } = ${sel};`);\n\t\t}\n\t\tif (decoderExpr || codecVar) {\n\t\t\thasWork = true;\n\t\t\tlet decoded = slot;\n\t\t\tif (codecVar) decoded = `${codecVar}(${decoded}, ${arrayDimensions})`;\n\t\t\tif (decoderExpr) decoded = `${decoderExpr}(${decoded})`;\n\t\t\tliteralEntries.push(`${keyStr}: ${slot} === null ? null : ${decoded}`);\n\t\t} else literalEntries.push(`${keyStr}: ${slot}`);\n\t}\n\treturn {\n\t\tbodyStmts,\n\t\tliteral: `{ ${literalEntries.join(\", \")} }`,\n\t\thasWork\n\t};\n}\nfunction makeJitRqbMapper({ selection, isFirst, parseJson, parseJsonIfString, rootJsonMappers, arrayModeRoot }) {\n\tconst preFn = [];\n\tconst inner = makeJitRqbMapperInner(selection, \"row\", \"selection\", parseJson, parseJsonIfString, arrayModeRoot ? false : rootJsonMappers, preFn, { n: 0 }, !!arrayModeRoot);\n\tconst lines = [];\n\tlines.push(`\\t\"use strict\";\n\tconst { selection } = this;`);\n\tfor (const p of preFn) lines.push(`\\t${p}`);\n\tif (arrayModeRoot) if (isFirst) {\n\t\tlines.push(`\\tconst row = rows[0];`);\n\t\tlines.push(`\\tif (!row) return undefined;`);\n\t\tfor (const s of inner.bodyStmts) lines.push(`\\t${s}`);\n\t\tlines.push(`\\treturn ${inner.literal};`);\n\t} else {\n\t\tlines.push(`\\tconst { length } = rows;`);\n\t\tlines.push(`\\tconst mapped = Array.from({ length });`);\n\t\tlines.push(`\\tfor (let i = 0; i < length; ++i) {`);\n\t\tlines.push(`\\t\\tconst row = rows[i];`);\n\t\tfor (const s of inner.bodyStmts) lines.push(`\\t\\t${s}`);\n\t\tlines.push(`\\t\\tmapped[i] = ${inner.literal};`);\n\t\tlines.push(`\\t}`);\n\t\tlines.push(`\\treturn mapped;`);\n\t}\n\telse if (!inner.hasWork) lines.push(isFirst ? `\\treturn rows[0];` : `\\treturn rows;`);\n\telse if (isFirst) {\n\t\tlines.push(`\\tconst row = rows[0];`);\n\t\tlines.push(`\\tif (!row) return undefined;`);\n\t\tfor (const s of inner.bodyStmts) lines.push(`\\t${s}`);\n\t\tlines.push(`\\trows[0] = ${inner.literal};`);\n\t\tlines.push(`\\treturn rows[0];`);\n\t} else {\n\t\tlines.push(`\\tfor (let i = 0; i < rows.length; ++i) {`);\n\t\tlines.push(`\\t\\tconst row = rows[i];`);\n\t\tfor (const s of inner.bodyStmts) lines.push(`\\t\\t${s}`);\n\t\tlines.push(`\\t\\trows[i] = ${inner.literal};`);\n\t\tlines.push(`\\t}`);\n\t\tlines.push(`\\treturn rows;`);\n\t}\n\tlines.push(\"\t//# sourceURL=drizzle:jit-relational-query-mapper\");\n\tconst compiled = lines.join(\"\\n\");\n\treturn Object.assign(new FnConstructor(\"rows\", compiled).bind({ selection }), { body: `function jitRqbMapper (rows) {\\n${compiled}\\n}` });\n}\nvar RelationsBuilderTable = class {\n\tstatic [entityKind] = \"RelationsBuilderTable\";\n\t_;\n\tconstructor(table, name) {\n\t\tthis._ = {\n\t\t\tname,\n\t\t\ttable\n\t\t};\n\t}\n};\nvar RelationsBuilderColumn = class {\n\tstatic [entityKind] = \"RelationsBuilderColumn\";\n\t_;\n\tconstructor(column, tableName, key) {\n\t\tthis._ = {\n\t\t\ttableName,\n\t\t\tcolumn,\n\t\t\tkey\n\t\t};\n\t}\n\tthrough(column) {\n\t\treturn new RelationsBuilderJunctionColumn(this._.column, this._.tableName, this._.key, column);\n\t}\n};\nvar RelationsBuilderJunctionColumn = class {\n\tstatic [entityKind] = \"RelationsBuilderColumn\";\n\t_;\n\tconstructor(column, tableName, key, through) {\n\t\tthis._ = {\n\t\t\ttableName,\n\t\t\tcolumn,\n\t\t\tthrough,\n\t\t\tkey\n\t\t};\n\t}\n};\nvar RelationsHelperStatic = class {\n\tstatic [entityKind] = \"RelationsHelperStatic\";\n\t_;\n\tconstructor(tables) {\n\t\tthis._ = { tables };\n\t\tconst one = {};\n\t\tconst many = {};\n\t\tfor (const [tableName, table] of Object.entries(tables)) {\n\t\t\tone[tableName] = (config) => {\n\t\t\t\treturn new One(tables, table, tableName, config);\n\t\t\t};\n\t\t\tmany[tableName] = (config) => {\n\t\t\t\treturn new Many(tables, table, tableName, config);\n\t\t\t};\n\t\t}\n\t\tthis.one = one;\n\t\tthis.many = many;\n\t}\n\tone;\n\tmany;\n\t/** @internal - to be reworked */\n\taggs = { count() {\n\t\treturn new Count();\n\t} };\n};\nfunction createRelationsHelper(tables) {\n\tconst helperStatic = new RelationsHelperStatic(tables);\n\tconst relationsTables = Object.entries(tables).reduce((acc, [tKey, value]) => {\n\t\tconst rTable = new RelationsBuilderTable(value, tKey);\n\t\tconst columns = Object.entries(value[TableColumns]).reduce((acc, [cKey, column]) => {\n\t\t\tacc[cKey] = new RelationsBuilderColumn(column, tKey, cKey);\n\t\t\treturn acc;\n\t\t}, {});\n\t\tacc[tKey] = Object.assign(rTable, columns);\n\t\treturn acc;\n\t}, {});\n\treturn Object.assign(helperStatic, relationsTables);\n}\nfunction extractTablesFromSchema(schema) {\n\treturn Object.fromEntries(Object.entries(schema).filter(([_, e]) => is(e, Table) || is(e, View)));\n}\nfunction defineRelations(schema, relations) {\n\tconst tables = extractTablesFromSchema(schema);\n\treturn buildRelations(tables, relations ? relations(createRelationsHelper(tables)) : {});\n}\nfunction defineRelationsPart(schema, relations) {\n\tconst tables = extractTablesFromSchema(schema);\n\treturn buildRelationsParts(tables, relations ? relations(createRelationsHelper(tables)) : Object.fromEntries(Object.keys(tables).map((k) => [k, {}])));\n}\n/** @internal */\nfunction fieldSelectionToSQL(table, target) {\n\tconst field = table[TableColumns][target];\n\treturn field ? is(field, Column) ? field : is(field, SQL.Aliased) ? sql`${table}.${sql.identifier(field.fieldAlias)}` : sql`${table}.${sql.identifier(target)}` : sql`${table}.${sql.identifier(target)}`;\n}\nfunction relationsFieldFilterToSQL(column, filter) {\n\tif (typeof filter !== \"object\" || is(filter, Placeholder)) return eq(column, filter);\n\tconst entries = Object.entries(filter);\n\tif (!entries.length) return void 0;\n\tconst parts = [];\n\tfor (const [target, value] of entries) {\n\t\tif (value === void 0) continue;\n\t\tswitch (target) {\n\t\t\tcase \"NOT\": {\n\t\t\t\tconst res = relationsFieldFilterToSQL(column, value);\n\t\t\t\tif (!res) continue;\n\t\t\t\tparts.push(not(res));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcase \"OR\":\n\t\t\t\tif (!value.length) continue;\n\t\t\t\tparts.push(or(...value.map((subFilter) => relationsFieldFilterToSQL(column, subFilter))));\n\t\t\t\tcontinue;\n\t\t\tcase \"AND\":\n\t\t\t\tif (!value.length) continue;\n\t\t\t\tparts.push(and(...value.map((subFilter) => relationsFieldFilterToSQL(column, subFilter))));\n\t\t\t\tcontinue;\n\t\t\tcase \"isNotNull\":\n\t\t\tcase \"isNull\":\n\t\t\t\tif (!value) continue;\n\t\t\t\tparts.push(operators[target](column));\n\t\t\t\tcontinue;\n\t\t\tcase \"in\":\n\t\t\t\tparts.push(operators.inArray(column, value));\n\t\t\t\tcontinue;\n\t\t\tcase \"notIn\":\n\t\t\t\tparts.push(operators.notInArray(column, value));\n\t\t\t\tcontinue;\n\t\t\tdefault:\n\t\t\t\tparts.push(operators[target](column, value));\n\t\t\t\tcontinue;\n\t\t}\n\t}\n\tif (!parts.length) return void 0;\n\treturn and(...parts);\n}\nfunction relationsFilterToSQL(table, filter, tableRelations = {}, tablesRelations = {}, depth = 0) {\n\tconst entries = Object.entries(filter);\n\tif (!entries.length) return void 0;\n\tconst parts = [];\n\tfor (const [target, value] of entries) {\n\t\tif (value === void 0) continue;\n\t\tswitch (target) {\n\t\t\tcase \"RAW\": {\n\t\t\t\tconst processed = typeof value === \"function\" ? value(table, operators) : value.getSQL();\n\t\t\t\tparts.push(processed);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcase \"OR\":\n\t\t\t\tif (!value?.length) continue;\n\t\t\t\tparts.push(or(...value.map((subFilter) => relationsFilterToSQL(table, subFilter, tableRelations, tablesRelations, depth))));\n\t\t\t\tcontinue;\n\t\t\tcase \"AND\":\n\t\t\t\tif (!value?.length) continue;\n\t\t\t\tparts.push(and(...value.map((subFilter) => relationsFilterToSQL(table, subFilter, tableRelations, tablesRelations, depth))));\n\t\t\t\tcontinue;\n\t\t\tcase \"NOT\": {\n\t\t\t\tif (value === void 0) continue;\n\t\t\t\tconst built = relationsFilterToSQL(table, value, tableRelations, tablesRelations, depth);\n\t\t\t\tif (!built) continue;\n\t\t\t\tparts.push(not(built));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tif (table[TableColumns][target]) {\n\t\t\t\t\tconst colFilter = relationsFieldFilterToSQL(fieldSelectionToSQL(table, target), value);\n\t\t\t\t\tif (colFilter) parts.push(colFilter);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst relation = tableRelations[target];\n\t\t\t\tif (!relation) throw new DrizzleError({ message: `Unknown relational filter field: \"${target}\"` });\n\t\t\t\tconst targetTable = aliasedTable(relation.targetTable, `f${depth}`);\n\t\t\t\tconst throughTable = relation.throughTable ? aliasedTable(relation.throughTable, `ft${depth}`) : void 0;\n\t\t\t\tconst targetConfig = tablesRelations[relation.targetTableName];\n\t\t\t\tconst { filter: relationFilter, joinCondition } = relationToSQL(relation, table, targetTable, throughTable);\n\t\t\t\tconst filter = and(relationFilter, typeof value === \"boolean\" ? void 0 : relationsFilterToSQL(targetTable, value, targetConfig.relations, tablesRelations, depth + 1));\n\t\t\t\tconst subquery = throughTable ? sql`(select * from ${getTableAsAliasSQL(targetTable)} inner join ${getTableAsAliasSQL(throughTable)} on ${joinCondition}${sql` where ${filter}`.if(filter)} limit 1)` : sql`(select * from ${getTableAsAliasSQL(targetTable)}${sql` where ${filter}`.if(filter)} limit 1)`;\n\t\t\t\tif (filter) parts.push((value ? exists : notExists)(subquery));\n\t\t\t}\n\t\t}\n\t}\n\treturn and(...parts);\n}\nfunction relationsOrderToSQL(table, orders) {\n\tif (typeof orders === \"function\") {\n\t\tconst data = orders(table, orderByOperators);\n\t\treturn is(data, SQL) ? data : Array.isArray(data) ? data.length ? sql.join(data.map((o) => is(o, SQL) ? o : asc(o)), sql`, `) : void 0 : is(data, Column) ? asc(data) : void 0;\n\t}\n\tconst entries = Object.entries(orders).filter(([_, value]) => value);\n\tif (!entries.length) return void 0;\n\treturn sql.join(entries.map(([target, value]) => (value === \"asc\" ? asc : desc)(fieldSelectionToSQL(table, target))), sql`, `);\n}\nfunction relationExtrasToSQL(table, extras, codecs, inJson) {\n\tconst subqueries = [];\n\tconst selection = [];\n\tfor (const [key, field] of Object.entries(extras)) {\n\t\tif (!field) continue;\n\t\tconst subq = (typeof field === \"function\" ? field(table, { sql: operators.sql }) : field).getSQL();\n\t\tconst column = codecs ? getColumnFromDecoder(subq) : void 0;\n\t\tconst query = column && (!inJson || !column.jsonSelectIdentifier) ? sql`${codecs.apply(column, inJson ? \"castInJson\" : \"cast\", sql`(${subq})`)} as ${sql.identifier(key)}` : sql`(${subq}) as ${sql.identifier(key)}`;\n\t\tquery.decoder = subq.decoder;\n\t\tsubqueries.push(query);\n\t\tselection.push(column && (!inJson || !column.mapFromJsonValue) ? {\n\t\t\tkey,\n\t\t\tfield: query,\n\t\t\tcodec: codecs.get(column, inJson ? \"normalizeInJson\" : \"normalize\"),\n\t\t\tarrayDimensions: column.dimensions\n\t\t} : {\n\t\t\tkey,\n\t\t\tfield: query\n\t\t});\n\t}\n\treturn {\n\t\tsql: subqueries.length ? sql.join(subqueries, sql`, `) : void 0,\n\t\tselection\n\t};\n}\nfunction relationToSQL(relation, sourceTable, targetTable, throughTable) {\n\tif (relation.through) {\n\t\tconst outerColumnWhere = relation.sourceColumns.map((s, i) => {\n\t\t\tconst t = relation.through.source[i];\n\t\t\treturn eq(sql`${sourceTable}.${sql.identifier(s.name)}`, sql`${throughTable}.${sql.identifier(is(t._.column, Column) ? t._.column.name : t._.key)}`);\n\t\t});\n\t\tconst innerColumnWhere = relation.targetColumns.map((s, i) => {\n\t\t\tconst t = relation.through.target[i];\n\t\t\treturn eq(sql`${throughTable}.${sql.identifier(is(t._.column, Column) ? t._.column.name : t._.key)}`, sql`${targetTable}.${sql.identifier(s.name)}`);\n\t\t});\n\t\treturn {\n\t\t\tfilter: and(relation.where ? relationsFilterToSQL(relation.isReversed ? sourceTable : targetTable, relation.where) : void 0, ...outerColumnWhere),\n\t\t\tjoinCondition: and(...innerColumnWhere)\n\t\t};\n\t}\n\treturn { filter: and(...relation.sourceColumns.map((s, i) => {\n\t\tconst t = relation.targetColumns[i];\n\t\treturn eq(sql`${sourceTable}.${sql.identifier(s.name)}`, sql`${targetTable}.${sql.identifier(t.name)}`);\n\t}), relation.where ? relationsFilterToSQL(relation.isReversed ? sourceTable : targetTable, relation.where) : void 0) };\n}\nfunction getTableAsAliasSQL(table) {\n\treturn sql`${table[IsAlias] ? sql`${sql`${sql.identifier(table[TableSchema] ?? \"\")}.`.if(table[TableSchema])}${sql.identifier(table[OriginalName])} as ${table}` : table}`;\n}\n\n//#endregion\nexport { AggregatedField, Count, Many, One, Relation, RelationsBuilderColumn, RelationsBuilderJunctionColumn, RelationsBuilderTable, RelationsHelperStatic, buildRelations, buildRelationsParts, createRelationsHelper, defineRelations, defineRelationsPart, extractTablesFromSchema, fieldSelectionToSQL, getOrderByOperators, getTableAsAliasSQL, makeDefaultRqbMapper, makeJitRqbMapper, mapRelationalRow, mapRelationalRowFromArrays, operators, orderByOperators, processRelations, relationExtrasToSQL, relationToSQL, relationsFilterToSQL, relationsOrderToSQL };\n//# sourceMappingURL=relations.js.map",
89
+ "import { resolvePgTypeAlias, unionsTypeTable } from \"./codecs.js\";\nimport { PgViewBase } from \"./view-base.js\";\nimport { entityKind, is } from \"../entity.js\";\nimport { Subquery } from \"../subquery.js\";\nimport { ViewBaseConfig } from \"../view-common.js\";\nimport { Table, TableColumns, getTableName } from \"../table.js\";\nimport { getColumnFromDecoder, makeDefaultQueryMapper, makeJitQueryMapper, orderSelectedFields } from \"../utils.js\";\nimport { Column } from \"../column.js\";\nimport { CodecsCollection } from \"../codecs.js\";\nimport { Param, SQL, sql } from \"../sql/sql.js\";\nimport { aliasedTable, getOriginalColumnFromAlias } from \"../alias.js\";\nimport { DrizzleError } from \"../errors.js\";\nimport { View as View$1, and, isSQLWrapper as isSQLWrapper$1 } from \"../sql/index.js\";\nimport { One, getTableAsAliasSQL, makeDefaultRqbMapper, makeJitRqbMapper, relationExtrasToSQL, relationToSQL, relationsFilterToSQL, relationsOrderToSQL } from \"../relations.js\";\nimport { PgTable } from \"./table.js\";\nimport { PgColumn } from \"./columns/index.js\";\n\n//#region src/pg-core/dialect.ts\nvar PgDialect = class {\n\tstatic [entityKind] = \"PgDialect\";\n\tcodecs;\n\tmapperGenerators;\n\tconstructor(config) {\n\t\tthis.codecs = new CodecsCollection(resolvePgTypeAlias, config?.codecs);\n\t\tthis.mapperGenerators = config?.useJitMappers ? {\n\t\t\trows: makeJitQueryMapper,\n\t\t\trelationalRows: makeJitRqbMapper\n\t\t} : {\n\t\t\trows: makeDefaultQueryMapper,\n\t\t\trelationalRows: makeDefaultRqbMapper\n\t\t};\n\t}\n\tescapeName(name) {\n\t\treturn `\"${name.replace(/\"/g, \"\\\"\\\"\")}\"`;\n\t}\n\tescapeParam(num) {\n\t\treturn `$${num + 1}`;\n\t}\n\tescapeString(str) {\n\t\treturn `'${str.replace(/'/g, \"''\")}'`;\n\t}\n\tbuildWithCTE(queries) {\n\t\tif (!queries?.length) return void 0;\n\t\tconst withSqlChunks = [sql`with `];\n\t\tfor (const [i, w] of queries.entries()) {\n\t\t\twithSqlChunks.push(sql`${sql.identifier(w._.alias)} as (${w._.sql})`);\n\t\t\tif (i < queries.length - 1) withSqlChunks.push(sql`, `);\n\t\t}\n\t\twithSqlChunks.push(sql` `);\n\t\treturn sql.join(withSqlChunks);\n\t}\n\tbuildDeleteQuery({ table, where, returning, withList, comment, ignoreSelectionCastCodecs }) {\n\t\tconst withSql = this.buildWithCTE(withList);\n\t\tconst returningSql = returning ? sql` returning ${this.buildSelection(returning, {\n\t\t\tisSingleTable: true,\n\t\t\tignoreCastCodecs: ignoreSelectionCastCodecs\n\t\t})}` : void 0;\n\t\treturn sql`${withSql}delete from ${table}${where ? sql` where ${where}` : void 0}${returningSql}${comment !== void 0 ? sql` ${comment}` : void 0}`;\n\t}\n\tbuildUpdateSet(table, set) {\n\t\tconst tableColumns = table[Table.Symbol.Columns];\n\t\tconst columnNames = Object.keys(tableColumns).filter((colName) => set[colName] !== void 0 || tableColumns[colName]?.onUpdateFn !== void 0);\n\t\tconst setLength = columnNames.length;\n\t\treturn sql.join(columnNames.flatMap((colName, i) => {\n\t\t\tconst col = tableColumns[colName];\n\t\t\tconst onUpdateFnResult = col.onUpdateFn?.();\n\t\t\tconst value = set[colName] ?? (is(onUpdateFnResult, SQL) ? onUpdateFnResult : sql.param(onUpdateFnResult, col));\n\t\t\tconst res = sql`${sql.identifier(col.name)} = ${value}`;\n\t\t\tif (i < setLength - 1) return [res, sql.raw(\", \")];\n\t\t\treturn [res];\n\t\t}));\n\t}\n\tbuildUpdateQuery({ table, set, where, returning, withList, from, joins, comment, ignoreSelectionCastCodecs }) {\n\t\tconst withSql = this.buildWithCTE(withList);\n\t\tconst tableName = table[PgTable.Symbol.Name];\n\t\tconst tableSchema = table[PgTable.Symbol.Schema];\n\t\tconst origTableName = table[PgTable.Symbol.OriginalName];\n\t\tconst alias = tableName === origTableName ? void 0 : tableName;\n\t\tconst tableSql = sql`${tableSchema ? sql`${sql.identifier(tableSchema)}.` : void 0}${sql.identifier(origTableName)}${alias && sql` ${sql.identifier(alias)}`}`;\n\t\tconst setSql = this.buildUpdateSet(table, set);\n\t\tconst fromSql = from && sql.join([sql.raw(\" from \"), this.buildFromTable(from)]);\n\t\tconst joinsSql = this.buildJoins(joins);\n\t\tconst returningSql = returning ? sql` returning ${this.buildSelection(returning, {\n\t\t\tisSingleTable: !from,\n\t\t\tignoreCastCodecs: ignoreSelectionCastCodecs\n\t\t})}` : void 0;\n\t\treturn sql`${withSql}update ${tableSql} set ${setSql}${fromSql}${joinsSql}${where ? sql` where ${where}` : void 0}${returningSql}${comment !== void 0 ? sql` ${comment}` : void 0}`;\n\t}\n\t/**\n\t* Builds selection SQL with provided fields/expressions\n\t*\n\t* Examples:\n\t*\n\t* `select <selection> from`\n\t*\n\t* `insert ... returning <selection>`\n\t*\n\t* If `isSingleTable` is true, then columns won't be prefixed with table name\n\t*/\n\tbuildSelection(fields, { isSingleTable = false, ignoreCastCodecs = false } = {}) {\n\t\tconst columnsLen = fields.length;\n\t\tconst chunks = fields.flatMap(({ field, codecOverride, column }, i) => {\n\t\t\tconst chunk = [];\n\t\t\tconst override = codecOverride;\n\t\t\tif (is(field, SQL.Aliased)) if (field.isSelectionField) {\n\t\t\t\tconst query = !isSingleTable && field.origin !== void 0 ? sql`${sql.identifier(field.origin)}.${sql.identifier(field.fieldAlias)}` : sql.identifier(field.fieldAlias);\n\t\t\t\tif (column && !ignoreCastCodecs) chunk.push(this.codecs.apply(column, \"cast\", query, override));\n\t\t\t\telse chunk.push(query);\n\t\t\t} else {\n\t\t\t\tconst query = field.sql;\n\t\t\t\tif (isSingleTable) {\n\t\t\t\t\tconst newSql = new SQL(query.queryChunks.map((c) => {\n\t\t\t\t\t\tif (is(c, PgColumn)) return sql.identifier(c.name);\n\t\t\t\t\t\treturn c;\n\t\t\t\t\t}));\n\t\t\t\t\tif (query.shouldInlineParams) newSql.inlineParams();\n\t\t\t\t\tchunk.push(column && !ignoreCastCodecs ? this.codecs.apply(column, \"cast\", newSql, override) : newSql);\n\t\t\t\t} else chunk.push(column && !ignoreCastCodecs ? this.codecs.apply(column, \"cast\", query, override) : query);\n\t\t\t\tchunk.push(sql` as ${sql.identifier(field.fieldAlias)}`);\n\t\t\t}\n\t\t\telse if (is(field, SQL)) {\n\t\t\t\tconst query = field;\n\t\t\t\tif (isSingleTable) {\n\t\t\t\t\tconst newSql = new SQL(query.queryChunks.map((c) => {\n\t\t\t\t\t\tif (is(c, PgColumn)) return sql.identifier(c.name);\n\t\t\t\t\t\treturn c;\n\t\t\t\t\t}));\n\t\t\t\t\tif (query.shouldInlineParams) newSql.inlineParams();\n\t\t\t\t\tchunk.push(column && !ignoreCastCodecs ? this.codecs.apply(column, \"cast\", newSql, override) : newSql);\n\t\t\t\t} else chunk.push(column && !ignoreCastCodecs ? this.codecs.apply(column, \"cast\", query, override) : query);\n\t\t\t} else if (is(field, Column)) {\n\t\t\t\tlet name;\n\t\t\t\tif (isSingleTable) name = field.isAlias ? sql.identifier(getOriginalColumnFromAlias(field).name) : sql.identifier(field.name);\n\t\t\t\telse name = field.isAlias ? getOriginalColumnFromAlias(field) : field;\n\t\t\t\tconst casted = ignoreCastCodecs ? name : this.codecs.apply(field, \"cast\", name, override);\n\t\t\t\tchunk.push(field.isAlias ? sql`${casted} as ${field}` : casted);\n\t\t\t} else if (is(field, Subquery)) if (column && !ignoreCastCodecs && !field._.isWith) {\n\t\t\t\tconst innerCasted = this.codecs.apply(column, \"cast\", sql`(${field._.sql})`, override);\n\t\t\t\tchunk.push(sql`${innerCasted} ${sql.identifier(field._.alias)}`);\n\t\t\t} else chunk.push(column ? this.codecs.apply(column, \"cast\", field) : field, override);\n\t\t\tif (i < columnsLen - 1) chunk.push(sql`, `);\n\t\t\treturn chunk;\n\t\t});\n\t\treturn sql.join(chunks);\n\t}\n\tbuildJoins(joins) {\n\t\tif (!joins || joins.length === 0) return;\n\t\tconst joinsArray = [];\n\t\tfor (const [index, joinMeta] of joins.entries()) {\n\t\t\tif (index === 0) joinsArray.push(sql` `);\n\t\t\tconst table = joinMeta.table;\n\t\t\tconst lateralSql = joinMeta.lateral ? sql` lateral` : void 0;\n\t\t\tconst onSql = joinMeta.on ? sql` on ${joinMeta.on}` : void 0;\n\t\t\tif (is(table, PgTable)) {\n\t\t\t\tconst tableName = table[PgTable.Symbol.Name];\n\t\t\t\tconst tableSchema = table[PgTable.Symbol.Schema];\n\t\t\t\tconst origTableName = table[PgTable.Symbol.OriginalName];\n\t\t\t\tconst alias = tableName === origTableName ? void 0 : joinMeta.alias;\n\t\t\t\tjoinsArray.push(sql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${tableSchema ? sql`${sql.identifier(tableSchema)}.` : void 0}${sql.identifier(origTableName)}${alias && sql` ${sql.identifier(alias)}`}${onSql}`);\n\t\t\t} else if (is(table, View$1)) {\n\t\t\t\tconst viewName = table[ViewBaseConfig].name;\n\t\t\t\tconst viewSchema = table[ViewBaseConfig].schema;\n\t\t\t\tconst origViewName = table[ViewBaseConfig].originalName;\n\t\t\t\tconst alias = viewName === origViewName ? void 0 : joinMeta.alias;\n\t\t\t\tjoinsArray.push(sql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${viewSchema ? sql`${sql.identifier(viewSchema)}.` : void 0}${sql.identifier(origViewName)}${alias && sql` ${sql.identifier(alias)}`}${onSql}`);\n\t\t\t} else joinsArray.push(sql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${table}${onSql}`);\n\t\t\tif (index < joins.length - 1) joinsArray.push(sql` `);\n\t\t}\n\t\treturn sql.join(joinsArray);\n\t}\n\tbuildFromTable(table) {\n\t\tif (is(table, Table) && table[Table.Symbol.IsAlias]) {\n\t\t\tlet fullName = sql`${sql.identifier(table[Table.Symbol.OriginalName])}`;\n\t\t\tif (table[Table.Symbol.Schema]) fullName = sql`${sql.identifier(table[Table.Symbol.Schema])}.${fullName}`;\n\t\t\treturn sql`${fullName} ${sql.identifier(table[Table.Symbol.Name])}`;\n\t\t}\n\t\tif (is(table, View$1) && table[ViewBaseConfig].isAlias) {\n\t\t\tlet fullName = sql`${sql.identifier(table[ViewBaseConfig].originalName)}`;\n\t\t\tif (table[ViewBaseConfig].schema) fullName = sql`${sql.identifier(table[ViewBaseConfig].schema)}.${fullName}`;\n\t\t\treturn sql`${fullName} ${sql.identifier(table[ViewBaseConfig].name)}`;\n\t\t}\n\t\treturn table;\n\t}\n\tbuildSelectQuery({ withList, fieldsFlat, where, having, table, joins, orderBy, groupBy, limit, offset, lockingClause, distinct, setOperators, comment, ignoreSelectionCastCodecs }) {\n\t\tif (!fieldsFlat) throw new Error(\"Select query builder must be provided with `fieldsFlat` on `buildSelectQuery` invocation\");\n\t\tconst fieldsList = fieldsFlat;\n\t\tfor (const f of fieldsList) if (is(f.field, Column) && getTableName(f.field.table) !== (is(table, Subquery) ? table._.alias : is(table, PgViewBase) ? table[ViewBaseConfig].name : is(table, SQL) ? void 0 : getTableName(table)) && !((table) => joins?.some(({ alias }) => alias === (table[Table.Symbol.IsAlias] ? getTableName(table) : table[Table.Symbol.BaseName])))(f.field.table)) {\n\t\t\tconst tableName = getTableName(f.field.table);\n\t\t\tthrow new Error(`Your \"${f.path.join(\"->\")}\" field references a column \"${tableName}\".\"${f.field.name}\", but the table \"${tableName}\" is not part of the query! Did you forget to join it?`);\n\t\t}\n\t\tconst isSingleTable = !joins || joins.length === 0;\n\t\tconst withSql = this.buildWithCTE(withList);\n\t\tlet distinctSql;\n\t\tif (distinct) distinctSql = distinct === true ? sql` distinct` : sql` distinct on (${sql.join(distinct.on, sql`, `)})`;\n\t\tconst selection = this.buildSelection(fieldsList, {\n\t\t\tisSingleTable,\n\t\t\tignoreCastCodecs: ignoreSelectionCastCodecs || setOperators.length > 0\n\t\t});\n\t\tconst tableSql = this.buildFromTable(table);\n\t\tconst joinsSql = this.buildJoins(joins);\n\t\tconst whereSql = where ? sql` where ${where}` : void 0;\n\t\tconst havingSql = having ? sql` having ${having}` : void 0;\n\t\tlet orderBySql;\n\t\tif (orderBy && orderBy.length > 0) orderBySql = sql` order by ${sql.join(orderBy, sql`, `)}`;\n\t\tlet groupBySql;\n\t\tif (groupBy && groupBy.length > 0) groupBySql = sql` group by ${sql.join(groupBy, sql`, `)}`;\n\t\tconst limitSql = typeof limit === \"object\" || typeof limit === \"number\" && limit >= 0 ? sql` limit ${limit}` : void 0;\n\t\tconst offsetSql = offset ? sql` offset ${offset}` : void 0;\n\t\tconst lockingClauseSql = sql.empty();\n\t\tif (lockingClause) {\n\t\t\tconst clauseSql = sql` for ${sql.raw(lockingClause.strength)}`;\n\t\t\tif (lockingClause.config.of) clauseSql.append(sql` of ${sql.join(Array.isArray(lockingClause.config.of) ? lockingClause.config.of.map((it) => sql.identifier(it[PgTable.Symbol.Name])) : [sql.identifier(lockingClause.config.of[PgTable.Symbol.Name])], sql`, `)}`);\n\t\t\tif (lockingClause.config.noWait) clauseSql.append(sql` nowait`);\n\t\t\telse if (lockingClause.config.skipLocked) clauseSql.append(sql` skip locked`);\n\t\t\tlockingClauseSql.append(clauseSql);\n\t\t}\n\t\tconst finalQuery = sql`${withSql}select${distinctSql} ${selection} from ${tableSql}${joinsSql}${whereSql}${groupBySql}${havingSql}${orderBySql}${limitSql}${offsetSql}${lockingClauseSql}${comment !== void 0 ? sql` ${comment}` : void 0}`;\n\t\tif (setOperators.length > 0) return this.buildSetOperations(finalQuery, fieldsList, ignoreSelectionCastCodecs, setOperators);\n\t\treturn finalQuery;\n\t}\n\tbuildSetOperations(leftSelect, leftSelection, ignoreSelectionCastCodecs, setOperators) {\n\t\tconst outputSelection = leftSelection;\n\t\tfor (let i = 0; i < setOperators.length; ++i) {\n\t\t\tconst setOperator = setOperators[i];\n\t\t\tif (!setOperator) throw new Error(\"Cannot pass undefined values to any set operator\");\n\t\t\tleftSelect = this.buildSetOperationQuery({\n\t\t\t\tleftSelect,\n\t\t\t\tsetOperator\n\t\t\t});\n\t\t\tconst rightSelection = orderSelectedFields(setOperator.rightSelect.getSelectedFields());\n\t\t\tfor (let j = 0; j < outputSelection.length; ++j) {\n\t\t\t\tconst l = outputSelection[j];\n\t\t\t\tconst lPath = l.path.join(\".\");\n\t\t\t\tconst r = rightSelection.find((e) => e.path.join(\".\") === lPath);\n\t\t\t\tconst lc = l.codecOverride ?? l.column?.codec;\n\t\t\t\tconst rc = r.codecOverride ?? r.column?.codec;\n\t\t\t\toutputSelection[j].codecOverride = lc && rc ? unionsTypeTable[lc]?.[rc] : lc;\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i < outputSelection.length; ++i) {\n\t\t\tconst out = outputSelection[i];\n\t\t\tout.codec = out.codecOverride ? this.codecs.get(out.column, \"normalize\", out.codecOverride) : out.codec;\n\t\t}\n\t\treturn ignoreSelectionCastCodecs ? leftSelect : sql`select ${this.buildSelection(outputSelection.map((field) => {\n\t\t\tif (is(field.field, SQL.Aliased)) {\n\t\t\t\tconst ref = field.field.clone();\n\t\t\t\tref.isSelectionField = true;\n\t\t\t\treturn {\n\t\t\t\t\t...field,\n\t\t\t\t\tfield: ref\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (is(field.field, Column) && field.field.isAlias) {\n\t\t\t\tconst ref = new SQL.Aliased(sql`${sql.identifier(field.field.name)}`, field.field.name);\n\t\t\t\tref.isSelectionField = true;\n\t\t\t\treturn {\n\t\t\t\t\t...field,\n\t\t\t\t\tfield: ref\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (is(field.field, Subquery)) {\n\t\t\t\tconst ref = new SQL.Aliased(sql`${field.field.getSQL()}`, field.field._.alias);\n\t\t\t\tref.isSelectionField = true;\n\t\t\t\treturn {\n\t\t\t\t\t...field,\n\t\t\t\t\tfield: ref\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn field;\n\t\t}), {\n\t\t\tisSingleTable: true,\n\t\t\tignoreCastCodecs: ignoreSelectionCastCodecs\n\t\t})} from (${leftSelect}) ${sql.identifier(\"drizzle_union\")}`;\n\t}\n\tbuildSetOperationQuery({ leftSelect, setOperator: { type, isAll, rightSelect, limit, orderBy, offset } }) {\n\t\tconst leftChunk = sql`(${leftSelect.getSQL()}) `;\n\t\tconst rightChunk = sql`(${rightSelect.withoutSelectionCastCodecs().getSQL()})`;\n\t\tlet orderBySql;\n\t\tif (orderBy && orderBy.length > 0) {\n\t\t\tconst orderByValues = [];\n\t\t\tfor (const singleOrderBy of orderBy) if (is(singleOrderBy, PgColumn)) orderByValues.push(sql.identifier(singleOrderBy.name));\n\t\t\telse if (is(singleOrderBy, SQL)) {\n\t\t\t\tfor (let i = 0; i < singleOrderBy.queryChunks.length; i++) {\n\t\t\t\t\tconst chunk = singleOrderBy.queryChunks[i];\n\t\t\t\t\tif (is(chunk, PgColumn)) singleOrderBy.queryChunks[i] = sql.identifier(chunk.name);\n\t\t\t\t}\n\t\t\t\torderByValues.push(sql`${singleOrderBy}`);\n\t\t\t} else orderByValues.push(sql`${singleOrderBy}`);\n\t\t\torderBySql = sql` order by ${sql.join(orderByValues, sql`, `)} `;\n\t\t}\n\t\tconst limitSql = typeof limit === \"object\" || typeof limit === \"number\" && limit >= 0 ? sql` limit ${limit}` : void 0;\n\t\tconst operatorChunk = sql.raw(`${type} ${isAll ? \"all \" : \"\"}`);\n\t\tconst offsetSql = offset ? sql` offset ${offset}` : void 0;\n\t\treturn sql`${leftChunk}${operatorChunk}${rightChunk}${orderBySql}${limitSql}${offsetSql}`;\n\t}\n\tbuildInsertQuery({ table, values: valuesOrSelect, onConflict, returning, withList, select, overridingSystemValue_, comment, ignoreSelectionCastCodecs }) {\n\t\tconst valuesSqlList = [];\n\t\tconst columns = table[Table.Symbol.Columns];\n\t\tconst colEntries = Object.entries(columns);\n\t\tconst colFilteredEntries = select && !is(valuesOrSelect, SQL) ? Object.keys(valuesOrSelect.getSelectedFields()).map((key) => [key, columns[key]]) : overridingSystemValue_ ? colEntries : colEntries.filter(([_, col]) => !col.shouldDisableInsert());\n\t\tconst insertOrder = colFilteredEntries.map(([, column]) => sql.identifier(column.name));\n\t\tif (select) {\n\t\t\tconst select = valuesOrSelect;\n\t\t\tif (is(select, SQL)) valuesSqlList.push(select);\n\t\t\telse valuesSqlList.push(select.getSQL());\n\t\t} else {\n\t\t\tconst values = valuesOrSelect;\n\t\t\tvaluesSqlList.push(sql.raw(\"values \"));\n\t\t\tfor (const [valueIndex, value] of values.entries()) {\n\t\t\t\tconst valueList = [];\n\t\t\t\tfor (const [fieldName, col] of colFilteredEntries) {\n\t\t\t\t\tconst colValue = value[fieldName];\n\t\t\t\t\tif (colValue === void 0 || is(colValue, Param) && colValue.value === void 0) if (col.defaultFn !== void 0) {\n\t\t\t\t\t\tconst defaultFnResult = col.defaultFn();\n\t\t\t\t\t\tconst defaultValue = is(defaultFnResult, SQL) ? defaultFnResult : sql.param(defaultFnResult, col);\n\t\t\t\t\t\tvalueList.push(defaultValue);\n\t\t\t\t\t} else if (!col.default && col.onUpdateFn !== void 0) {\n\t\t\t\t\t\tconst onUpdateFnResult = col.onUpdateFn();\n\t\t\t\t\t\tconst newValue = is(onUpdateFnResult, SQL) ? onUpdateFnResult : sql.param(onUpdateFnResult, col);\n\t\t\t\t\t\tvalueList.push(newValue);\n\t\t\t\t\t} else valueList.push(sql`default`);\n\t\t\t\t\telse valueList.push(colValue);\n\t\t\t\t}\n\t\t\t\tvaluesSqlList.push(valueList);\n\t\t\t\tif (valueIndex < values.length - 1) valuesSqlList.push(sql`, `);\n\t\t\t}\n\t\t}\n\t\tconst withSql = this.buildWithCTE(withList);\n\t\tconst valuesSql = sql.join(valuesSqlList);\n\t\tconst returningSql = returning ? sql` returning ${this.buildSelection(returning, {\n\t\t\tisSingleTable: true,\n\t\t\tignoreCastCodecs: ignoreSelectionCastCodecs\n\t\t})}` : void 0;\n\t\tconst onConflictSql = onConflict ? sql` on conflict ${onConflict}` : void 0;\n\t\treturn sql`${withSql}insert into ${table} ${insertOrder} ${overridingSystemValue_ === true ? sql`overriding system value ` : void 0}${valuesSql}${onConflictSql}${returningSql}${comment !== void 0 ? sql` ${comment}` : void 0}`;\n\t}\n\tbuildRefreshMaterializedViewQuery({ view, concurrently, withNoData }) {\n\t\treturn sql`refresh materialized view${concurrently ? sql` concurrently` : void 0} ${view}${withNoData ? sql` with no data` : void 0}`;\n\t}\n\tsqlToQuery(sql, invokeSource) {\n\t\treturn sql.toQuery({\n\t\t\tescapeName: this.escapeName,\n\t\t\tescapeParam: this.escapeParam,\n\t\t\tescapeString: this.escapeString,\n\t\t\tcodecs: this.codecs,\n\t\t\tinvokeSource\n\t\t});\n\t}\n\t_sqlToQuery(sql) {\n\t\treturn sql.toQuery({\n\t\t\tescapeName: this.escapeName,\n\t\t\tescapeParam: this.escapeParam,\n\t\t\tescapeString: this.escapeString,\n\t\t\tcodecs: this.codecs,\n\t\t\ttagged: true\n\t\t});\n\t}\n\tbuildRqbColumn(table, field, key, inJson) {\n\t\tif (is(field, Column)) {\n\t\t\tconst name = sql`${table}.${sql.identifier(field.name)}`;\n\t\t\treturn sql`${inJson && field.jsonSelectIdentifier ? field.jsonSelectIdentifier(name, sql, field.dimensions) : this.codecs.apply(field, inJson ? \"castInJson\" : \"cast\", name)} as ${sql.identifier(key)}`;\n\t\t}\n\t\tif (is(field, SQL.Aliased)) {\n\t\t\tconst column = getColumnFromDecoder(field);\n\t\t\tconst q = sql`${table}.${sql.identifier(field.fieldAlias)}`;\n\t\t\treturn sql`${column ? this.codecs.apply(column, inJson ? \"castInJson\" : \"cast\", q) : q} as ${sql.identifier(key)}`;\n\t\t}\n\t\tif (isSQLWrapper$1(field)) {\n\t\t\tconst column = getColumnFromDecoder(field);\n\t\t\tconst q = sql`${table}.${sql.identifier(key)}`;\n\t\t\treturn sql`${column ? this.codecs.apply(column, inJson ? \"castInJson\" : \"cast\", q) : q} as ${sql.identifier(key)}`;\n\t\t}\n\t\tthrow new DrizzleError({ message: `Views with nested selections are not supported by the relational query builder` });\n\t}\n\tresolveSelection(field, key, inJson) {\n\t\tif (is(field, Column)) return {\n\t\t\tkey,\n\t\t\tfield,\n\t\t\tcodec: this.codecs.get(field, inJson ? \"normalizeInJson\" : \"normalize\"),\n\t\t\tarrayDimensions: field.dimensions\n\t\t};\n\t\tconst decoderColumn = getColumnFromDecoder(field);\n\t\treturn decoderColumn ? {\n\t\t\tkey,\n\t\t\tfield,\n\t\t\tcodec: decoderColumn && (!inJson || !decoderColumn.mapFromJsonValue) ? this.codecs.get(decoderColumn, inJson ? \"normalizeInJson\" : \"normalize\") : void 0,\n\t\t\tarrayDimensions: decoderColumn.dimensions\n\t\t} : {\n\t\t\tkey,\n\t\t\tfield\n\t\t};\n\t}\n\tbuildColumns = (table, selection, inJson, config) => {\n\t\tif (!config?.columns) return sql.join(Object.entries(table[TableColumns]).map(([k, v]) => {\n\t\t\tselection.push(this.resolveSelection(v, k, inJson));\n\t\t\treturn this.buildRqbColumn(table, v, k, inJson);\n\t\t}), sql`, `);\n\t\tconst entries = Object.entries(config.columns);\n\t\tconst columnContainer = table[TableColumns];\n\t\tconst columnIdentifiers = [];\n\t\tlet colSelectionMode;\n\t\tfor (const [k, v] of entries) {\n\t\t\tif (v === void 0) continue;\n\t\t\tcolSelectionMode = colSelectionMode || v;\n\t\t\tif (v) {\n\t\t\t\tconst column = columnContainer[k];\n\t\t\t\tcolumnIdentifiers.push(this.buildRqbColumn(table, column, k, inJson));\n\t\t\t\tselection.push(this.resolveSelection(column, k, inJson));\n\t\t\t}\n\t\t}\n\t\tif (colSelectionMode === false) for (const [k, v] of Object.entries(columnContainer)) {\n\t\t\tif (config.columns[k] === false) continue;\n\t\t\tcolumnIdentifiers.push(this.buildRqbColumn(table, v, k, inJson));\n\t\t\tselection.push(this.resolveSelection(v, k, inJson));\n\t\t}\n\t\treturn columnIdentifiers.length ? sql.join(columnIdentifiers, sql`, `) : void 0;\n\t};\n\tbuildRelationalQuery({ schema, table, tableConfig, queryConfig: config, relationWhere, mode, errorPath, depth, throughJoin, nested }) {\n\t\tconst selection = [];\n\t\tconst isSingle = mode === \"first\";\n\t\tconst params = config === true ? void 0 : config;\n\t\tconst currentPath = errorPath ?? \"\";\n\t\tconst currentDepth = depth ?? 0;\n\t\tif (!currentDepth) table = aliasedTable(table, `d${currentDepth}`);\n\t\tconst limit = isSingle ? 1 : params?.limit;\n\t\tconst offset = params?.offset;\n\t\tconst where = params?.where && relationWhere ? and(relationsFilterToSQL(table, params.where, tableConfig.relations, schema), relationWhere) : params?.where ? relationsFilterToSQL(table, params.where, tableConfig.relations, schema) : relationWhere;\n\t\tconst order = params?.orderBy ? relationsOrderToSQL(table, params.orderBy) : void 0;\n\t\tconst columns = this.buildColumns(table, selection, !!nested, params);\n\t\tconst extras = params?.extras ? relationExtrasToSQL(table, params.extras, this.codecs, nested) : void 0;\n\t\tif (extras) selection.push(...extras.selection);\n\t\tconst selectionArr = columns ? [columns] : [];\n\t\tif (extras?.sql) selectionArr.push(extras.sql);\n\t\tconst joins = params ? (() => {\n\t\t\tconst { with: joins } = params;\n\t\t\tif (!joins) return;\n\t\t\tconst withEntries = Object.entries(joins).filter(([_, v]) => v);\n\t\t\tif (!withEntries.length) return;\n\t\t\treturn sql.join(withEntries.map(([k, join]) => {\n\t\t\t\tconst relation = tableConfig.relations[k];\n\t\t\t\tconst isSingle = is(relation, One);\n\t\t\t\tconst targetTable = aliasedTable(relation.targetTable, `d${currentDepth + 1}`);\n\t\t\t\tconst throughTable = relation.throughTable ? aliasedTable(relation.throughTable, `tr${currentDepth}`) : void 0;\n\t\t\t\tconst { filter, joinCondition } = relationToSQL(relation, table, targetTable, throughTable);\n\t\t\t\tselectionArr.push(sql`${sql.identifier(k)}.${sql.identifier(\"r\")} as ${sql.identifier(k)}`);\n\t\t\t\tconst throughJoin = throughTable ? sql` inner join ${getTableAsAliasSQL(throughTable)} on ${joinCondition}` : void 0;\n\t\t\t\tconst innerQuery = this.buildRelationalQuery({\n\t\t\t\t\ttable: targetTable,\n\t\t\t\t\tmode: isSingle ? \"first\" : \"many\",\n\t\t\t\t\tschema,\n\t\t\t\t\tqueryConfig: join,\n\t\t\t\t\ttableConfig: schema[relation.targetTableName],\n\t\t\t\t\trelationWhere: filter,\n\t\t\t\t\terrorPath: `${currentPath.length ? `${currentPath}.` : \"\"}${k}`,\n\t\t\t\t\tdepth: currentDepth + 1,\n\t\t\t\t\tthroughJoin,\n\t\t\t\t\tnested: true\n\t\t\t\t});\n\t\t\t\tselection.push({\n\t\t\t\t\tfield: targetTable,\n\t\t\t\t\tkey: k,\n\t\t\t\t\tselection: innerQuery.selection,\n\t\t\t\t\tisArray: !isSingle,\n\t\t\t\t\tisOptional: (relation.optional ?? false) || join !== true && !!join.where\n\t\t\t\t});\n\t\t\t\treturn sql`left join lateral(select ${isSingle ? sql`row_to_json(${sql.identifier(\"t\")}.*) ${sql.identifier(\"r\")}` : sql`coalesce(json_agg(row_to_json(${sql.identifier(\"t\")}.*)), '[]') as ${sql.identifier(\"r\")}`} from (${innerQuery.sql}) as ${sql.identifier(\"t\")}) as ${sql.identifier(k)} on true`;\n\t\t\t}), sql` `);\n\t\t})() : void 0;\n\t\tif (!selectionArr.length) throw new DrizzleError({ message: `No fields selected for table \"${tableConfig.name}\"${currentPath ? ` (\"${currentPath}\")` : \"\"}` });\n\t\tconst selectionSet = sql.join(selectionArr.filter((e) => e !== void 0), sql`, `);\n\t\tconst comment = config !== true && config?.comment ? sql.comment(config.comment) : void 0;\n\t\treturn {\n\t\t\tsql: sql`select ${selectionSet} from ${getTableAsAliasSQL(table)}${throughJoin}${joins ? sql` ${joins}` : void 0}${where ? sql` where ${where}` : void 0}${order ? sql` order by ${order}` : void 0}${limit !== void 0 ? sql` limit ${limit}` : void 0}${offset !== void 0 ? sql` offset ${offset}` : void 0}${comment ? sql` ${comment}` : void 0}`,\n\t\t\tselection\n\t\t};\n\t}\n};\n\n//#endregion\nexport { PgDialect };\n//# sourceMappingURL=dialect.js.map",
90
+ "import { PgSelectBuilder } from \"./select.js\";\nimport { entityKind, is } from \"../../entity.js\";\nimport { WithSubquery } from \"../../subquery.js\";\nimport { SelectionProxyHandler } from \"../../selection-proxy.js\";\nimport { PgDialect } from \"../dialect.js\";\n\n//#region src/pg-core/query-builders/query-builder.ts\nvar QueryBuilder = class {\n\tstatic [entityKind] = \"PgQueryBuilder\";\n\tdialect;\n\tdialectConfig;\n\tconstructor(dialect) {\n\t\tthis.dialect = is(dialect, PgDialect) ? dialect : void 0;\n\t\tthis.dialectConfig = is(dialect, PgDialect) ? void 0 : dialect;\n\t}\n\t$with = (alias, selection) => {\n\t\tconst queryBuilder = this;\n\t\tconst as = (qb) => {\n\t\t\tif (typeof qb === \"function\") qb = qb(queryBuilder);\n\t\t\tconst sql = (\"withoutSelectionCastCodecs\" in qb ? qb.withoutSelectionCastCodecs() : qb).getSQL();\n\t\t\treturn new Proxy(new WithSubquery(sql, selection ?? (\"getSelectedFields\" in qb ? qb.getSelectedFields() ?? {} : {}), alias, true, sql.usedTables ?? []), new SelectionProxyHandler({\n\t\t\t\talias,\n\t\t\t\tsqlAliasedBehavior: \"alias\",\n\t\t\t\tsqlBehavior: \"error\"\n\t\t\t}));\n\t\t};\n\t\treturn { as };\n\t};\n\twith(...queries) {\n\t\tconst self = this;\n\t\tfunction select(fields) {\n\t\t\treturn new PgSelectBuilder({\n\t\t\t\tfields: fields ?? void 0,\n\t\t\t\tsession: void 0,\n\t\t\t\tdialect: self.getDialect(),\n\t\t\t\twithList: queries\n\t\t\t});\n\t\t}\n\t\tfunction selectDistinct(fields) {\n\t\t\treturn new PgSelectBuilder({\n\t\t\t\tfields: fields ?? void 0,\n\t\t\t\tsession: void 0,\n\t\t\t\tdialect: self.getDialect(),\n\t\t\t\tdistinct: true\n\t\t\t});\n\t\t}\n\t\tfunction selectDistinctOn(on, fields) {\n\t\t\treturn new PgSelectBuilder({\n\t\t\t\tfields: fields ?? void 0,\n\t\t\t\tsession: void 0,\n\t\t\t\tdialect: self.getDialect(),\n\t\t\t\tdistinct: { on }\n\t\t\t});\n\t\t}\n\t\treturn {\n\t\t\tselect,\n\t\t\tselectDistinct,\n\t\t\tselectDistinctOn\n\t\t};\n\t}\n\tselect(fields) {\n\t\treturn new PgSelectBuilder({\n\t\t\tfields: fields ?? void 0,\n\t\t\tsession: void 0,\n\t\t\tdialect: this.getDialect()\n\t\t});\n\t}\n\tselectDistinct(fields) {\n\t\treturn new PgSelectBuilder({\n\t\t\tfields: fields ?? void 0,\n\t\t\tsession: void 0,\n\t\t\tdialect: this.getDialect(),\n\t\t\tdistinct: true\n\t\t});\n\t}\n\tselectDistinctOn(on, fields) {\n\t\treturn new PgSelectBuilder({\n\t\t\tfields: fields ?? void 0,\n\t\t\tsession: void 0,\n\t\t\tdialect: this.getDialect(),\n\t\t\tdistinct: { on }\n\t\t});\n\t}\n\tgetDialect() {\n\t\tif (!this.dialect) this.dialect = new PgDialect(this.dialectConfig);\n\t\treturn this.dialect;\n\t}\n};\n\n//#endregion\nexport { QueryBuilder };\n//# sourceMappingURL=query-builder.js.map",
91
+ "import { QueryBuilder } from \"./query-builder.js\";\nimport { entityKind, is } from \"../../entity.js\";\nimport { Table, getTableName } from \"../../table.js\";\nimport { mapUpdateSet, orderSelectedFields } from \"../../utils.js\";\nimport { Param, SQL, sql } from \"../../sql/sql.js\";\nimport { SelectionProxyHandler } from \"../../selection-proxy.js\";\n\n//#region src/pg-core/query-builders/insert.ts\nvar PgInsertBuilder = class {\n\tstatic [entityKind] = \"PgInsertBuilder\";\n\tconstructor(table, session, dialect, withList, overridingSystemValue_, builder = PgInsertBase) {\n\t\tthis.table = table;\n\t\tthis.session = session;\n\t\tthis.dialect = dialect;\n\t\tthis.withList = withList;\n\t\tthis.overridingSystemValue_ = overridingSystemValue_;\n\t\tthis.builder = builder;\n\t}\n\toverridingSystemValue() {\n\t\tthis.overridingSystemValue_ = true;\n\t\treturn this;\n\t}\n\tvalues(values) {\n\t\tvalues = Array.isArray(values) ? values : [values];\n\t\tif (values.length === 0) throw new Error(\"values() must be called with at least one value\");\n\t\tconst mappedValues = values.map((entry) => {\n\t\t\tconst result = {};\n\t\t\tconst cols = this.table[Table.Symbol.Columns];\n\t\t\tfor (const colKey of Object.keys(entry)) {\n\t\t\t\tconst colValue = entry[colKey];\n\t\t\t\tresult[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);\n\t\t\t}\n\t\t\treturn result;\n\t\t});\n\t\treturn new this.builder(this.table, mappedValues, this.session, this.dialect, this.withList, false, this.overridingSystemValue_);\n\t}\n\tselect(selectQuery) {\n\t\tconst select = typeof selectQuery === \"function\" ? selectQuery(new QueryBuilder()) : selectQuery;\n\t\tif (\"withoutSelectionCastCodecs\" in select) select.withoutSelectionCastCodecs();\n\t\tif (!is(select, SQL)) {\n\t\t\tconst insertCols = Object.keys(this.table[Table.Symbol.Columns]);\n\t\t\tconst selected = Object.keys(select._.selectedFields);\n\t\t\tfor (const col of selected) if (!insertCols.includes(col)) throw new Error(`Insert select error: column \"${col}\" does not exist in table \"${this.table[Table.Symbol.Name]}\"`);\n\t\t}\n\t\treturn new this.builder(this.table, select, this.session, this.dialect, this.withList, true, this.overridingSystemValue_);\n\t}\n};\nvar PgInsertBase = class {\n\tstatic [entityKind] = \"PgInsert\";\n\tconfig;\n\tconstructor(table, values, session, dialect, withList, select, overridingSystemValue_) {\n\t\tthis.session = session;\n\t\tthis.dialect = dialect;\n\t\tthis.config = {\n\t\t\ttable,\n\t\t\tvalues,\n\t\t\twithList,\n\t\t\tselect,\n\t\t\toverridingSystemValue_\n\t\t};\n\t}\n\treturning(fields = this.config.table[Table.Symbol.Columns]) {\n\t\tthis.config.returningFields = fields;\n\t\tthis.config.returning = orderSelectedFields(this.config.returningFields, void 0, this.dialect.codecs);\n\t\treturn this;\n\t}\n\t/**\n\t* Adds an `on conflict do nothing` clause to the query.\n\t*\n\t* Calling this method simply avoids inserting a row as its alternative action.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/insert#on-conflict-do-nothing}\n\t*\n\t* @param config The `target` and `where` clauses.\n\t*\n\t* @example\n\t* ```ts\n\t* // Insert one row and cancel the insert if there's a conflict\n\t* await db.insert(cars)\n\t* .values({ id: 1, brand: 'BMW' })\n\t* .onConflictDoNothing();\n\t*\n\t* // Explicitly specify conflict target\n\t* await db.insert(cars)\n\t* .values({ id: 1, brand: 'BMW' })\n\t* .onConflictDoNothing({ target: cars.id });\n\t* ```\n\t*/\n\tonConflictDoNothing(config = {}) {\n\t\tif (config.target === void 0) this.config.onConflict = sql`do nothing`;\n\t\telse {\n\t\t\tlet targetColumn = \"\";\n\t\t\ttargetColumn = Array.isArray(config.target) ? config.target.map((it) => this.dialect.escapeName(it.name)).join(\",\") : this.dialect.escapeName(config.target.name);\n\t\t\tconst whereSql = config.where ? sql` where ${config.where}` : void 0;\n\t\t\tthis.config.onConflict = sql`(${sql.raw(targetColumn)})${whereSql} do nothing`;\n\t\t}\n\t\treturn this;\n\t}\n\t/**\n\t* Adds an `on conflict do update` clause to the query.\n\t*\n\t* Calling this method will update the existing row that conflicts with the row proposed for insertion as its alternative action.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/insert#upserts-and-conflicts}\n\t*\n\t* @param config The `target`, `set` and `where` clauses.\n\t*\n\t* @example\n\t* ```ts\n\t* // Update the row if there's a conflict\n\t* await db.insert(cars)\n\t* .values({ id: 1, brand: 'BMW' })\n\t* .onConflictDoUpdate({\n\t* target: cars.id,\n\t* set: { brand: 'Porsche' }\n\t* });\n\t*\n\t* // Upsert with 'where' clause\n\t* await db.insert(cars)\n\t* .values({ id: 1, brand: 'BMW' })\n\t* .onConflictDoUpdate({\n\t* target: cars.id,\n\t* set: { brand: 'newBMW' },\n\t* targetWhere: sql`${cars.createdAt} > '2023-01-01'::date`,\n\t* });\n\t* ```\n\t*/\n\tonConflictDoUpdate(config) {\n\t\tif (config.where && (config.targetWhere || config.setWhere)) throw new Error(\"You cannot use both \\\"where\\\" and \\\"targetWhere\\\"/\\\"setWhere\\\" at the same time - \\\"where\\\" is deprecated, use \\\"targetWhere\\\" or \\\"setWhere\\\" instead.\");\n\t\tconst whereSql = config.where ? sql` where ${config.where}` : void 0;\n\t\tconst targetWhereSql = config.targetWhere ? sql` where ${config.targetWhere}` : void 0;\n\t\tconst setWhereSql = config.setWhere ? sql` where ${config.setWhere}` : void 0;\n\t\tconst setSql = this.dialect.buildUpdateSet(this.config.table, mapUpdateSet(this.config.table, config.set));\n\t\tlet targetColumn = \"\";\n\t\ttargetColumn = Array.isArray(config.target) ? config.target.map((it) => this.dialect.escapeName(it.name)).join(\",\") : this.dialect.escapeName(config.target.name);\n\t\tthis.config.onConflict = sql`(${sql.raw(targetColumn)})${targetWhereSql} do update set ${setSql}${whereSql}${setWhereSql}`;\n\t\treturn this;\n\t}\n\t/**\n\t* Attach [sqlcommenter](https://google.github.io/sqlcommenter) comment to a query\n\t*/\n\tcomment(comment) {\n\t\tthis.config.comment = sql.comment(comment);\n\t\treturn this;\n\t}\n\tgetSQL() {\n\t\treturn this.dialect.buildInsertQuery(this.config);\n\t}\n\ttoSQL() {\n\t\treturn this.dialect.sqlToQuery(this.getSQL());\n\t}\n\t/** @internal */\n\tgetSelectedFields() {\n\t\treturn this.config.returningFields ? new Proxy(this.config.returningFields, new SelectionProxyHandler({\n\t\t\talias: getTableName(this.config.table),\n\t\t\tsqlAliasedBehavior: \"alias\",\n\t\t\tsqlBehavior: \"error\"\n\t\t})) : void 0;\n\t}\n\t/** @internal */\n\twithoutSelectionCastCodecs() {\n\t\tthis.config.ignoreSelectionCastCodecs = true;\n\t\treturn this;\n\t}\n\t$dynamic() {\n\t\treturn this;\n\t}\n};\n\n//#endregion\nexport { PgInsertBase, PgInsertBuilder };\n//# sourceMappingURL=insert.js.map",
92
+ "import { extractUsedTable } from \"../utils.js\";\nimport { PgInsertBase } from \"../query-builders/insert.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { tracer } from \"../../tracing.js\";\nimport { applyMixins } from \"../../utils.js\";\nimport { QueryPromise } from \"../../query-promise.js\";\n\n//#region src/pg-core/async/insert.ts\nvar PgAsyncInsertBase = class extends PgInsertBase {\n\tstatic [entityKind] = \"PgAsyncInsert\";\n\t/** @internal */\n\t_prepare(name, generateName = false) {\n\t\tconst { session, config, dialect } = this;\n\t\tconst { returning: fields } = config;\n\t\treturn tracer.startActiveSpan(\"drizzle.prepareQuery\", () => {\n\t\t\tconst query = dialect.sqlToQuery(this.getSQL());\n\t\t\tconst mapper = fields ? this.dialect.mapperGenerators.rows(fields, void 0) : void 0;\n\t\t\treturn session.prepareQuery(query, fields ? \"arrays\" : \"raw\", name ?? generateName, mapper, {\n\t\t\t\ttype: \"insert\",\n\t\t\t\ttables: [...extractUsedTable(this.config.table)]\n\t\t\t});\n\t\t});\n\t}\n\tprepare(name) {\n\t\treturn this._prepare(name, true);\n\t}\n\texecute = (placeholderValues) => {\n\t\treturn tracer.startActiveSpan(\"drizzle.operation\", () => {\n\t\t\treturn this._prepare().execute(placeholderValues);\n\t\t});\n\t};\n};\napplyMixins(PgAsyncInsertBase, [QueryPromise]);\n\n//#endregion\nexport { PgAsyncInsertBase };\n//# sourceMappingURL=insert.js.map",
93
+ "import { PgRelationalQuery } from \"../query-builders/query.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { tracer } from \"../../tracing.js\";\nimport { applyMixins } from \"../../utils.js\";\nimport { QueryPromise } from \"../../query-promise.js\";\n\n//#region src/pg-core/async/query.ts\nvar PgAsyncRelationalQuery = class extends PgRelationalQuery {\n\tstatic [entityKind] = \"PgAsyncRelationalQueryV2\";\n\t/** @internal */\n\t_prepare(name, generateName = false) {\n\t\treturn tracer.startActiveSpan(\"drizzle.prepareQuery\", () => {\n\t\t\tconst { query, builtQuery } = this._toSQL();\n\t\t\tconst mapper = this.dialect.mapperGenerators.relationalRows({\n\t\t\t\tisFirst: this.mode === \"first\",\n\t\t\t\tparseJson: this.parseJson,\n\t\t\t\tparseJsonIfString: false,\n\t\t\t\trootJsonMappers: false,\n\t\t\t\tselection: query.selection,\n\t\t\t\tarrayModeRoot: true\n\t\t\t});\n\t\t\treturn this.session.prepareQuery(builtQuery, \"arrays\", name ?? generateName, mapper);\n\t\t});\n\t}\n\tprepare(name) {\n\t\treturn this._prepare(name, true);\n\t}\n\texecute(placeholderValues) {\n\t\treturn tracer.startActiveSpan(\"drizzle.operation\", () => {\n\t\t\treturn this._prepare().execute(placeholderValues);\n\t\t});\n\t}\n};\napplyMixins(PgAsyncRelationalQuery, [QueryPromise]);\n\n//#endregion\nexport { PgAsyncRelationalQuery };\n//# sourceMappingURL=query.js.map",
94
+ "import { entityKind } from \"../../entity.js\";\n\n//#region src/pg-core/query-builders/raw.ts\nvar PgRaw = class {\n\tstatic [entityKind] = \"PgRaw\";\n\tconstructor(prepared, sql, query) {\n\t\tthis.prepared = prepared;\n\t\tthis.sql = sql;\n\t\tthis.query = query;\n\t}\n\tgetSQL() {\n\t\treturn this.sql;\n\t}\n\tgetQuery() {\n\t\treturn this.query;\n\t}\n\t_prepare() {\n\t\treturn this.prepared;\n\t}\n};\n\n//#endregion\nexport { PgRaw };\n//# sourceMappingURL=raw.js.map",
95
+ "import { PgRaw } from \"../query-builders/raw.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { applyMixins } from \"../../utils.js\";\nimport { QueryPromise } from \"../../query-promise.js\";\n\n//#region src/pg-core/async/raw.ts\nvar PgAsyncRaw = class extends PgRaw {\n\tstatic [entityKind] = \"PgAsyncRaw\";\n\tconstructor(prepared, sql, query) {\n\t\tsuper(prepared, sql, query);\n\t}\n\texecute(placeholderValues) {\n\t\treturn this.prepared.execute(placeholderValues);\n\t}\n\t_prepare() {\n\t\treturn this.prepared;\n\t}\n};\napplyMixins(PgAsyncRaw, [QueryPromise]);\n\n//#endregion\nexport { PgAsyncRaw };\n//# sourceMappingURL=raw.js.map",
96
+ "import { entityKind } from \"../../entity.js\";\n\n//#region src/pg-core/query-builders/refresh-materialized-view.ts\nvar PgRefreshMaterializedView = class {\n\tstatic [entityKind] = \"PgRefreshMaterializedView\";\n\tconfig;\n\tconstructor(view, session, dialect) {\n\t\tthis.session = session;\n\t\tthis.dialect = dialect;\n\t\tthis.config = { view };\n\t}\n\tconcurrently() {\n\t\tif (this.config.withNoData !== void 0) throw new Error(\"Cannot use concurrently and withNoData together\");\n\t\tthis.config.concurrently = true;\n\t\treturn this;\n\t}\n\twithNoData() {\n\t\tif (this.config.concurrently !== void 0) throw new Error(\"Cannot use concurrently and withNoData together\");\n\t\tthis.config.withNoData = true;\n\t\treturn this;\n\t}\n\t/** @internal */\n\tgetSQL() {\n\t\treturn this.dialect.buildRefreshMaterializedViewQuery(this.config);\n\t}\n\ttoSQL() {\n\t\treturn this.dialect.sqlToQuery(this.getSQL());\n\t}\n};\n\n//#endregion\nexport { PgRefreshMaterializedView };\n//# sourceMappingURL=refresh-materialized-view.js.map",
97
+ "import { PgRefreshMaterializedView } from \"../query-builders/refresh-materialized-view.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { tracer } from \"../../tracing.js\";\nimport { applyMixins } from \"../../utils.js\";\nimport { QueryPromise } from \"../../query-promise.js\";\n\n//#region src/pg-core/async/refresh-materialized-view.ts\nvar PgAsyncRefreshMaterializedView = class extends PgRefreshMaterializedView {\n\tstatic [entityKind] = \"PgAsyncRefreshMaterializedView\";\n\t/** @internal */\n\t_prepare(name, generateName = false) {\n\t\treturn tracer.startActiveSpan(\"drizzle.prepareQuery\", () => {\n\t\t\tconst query = this.dialect.sqlToQuery(this.getSQL());\n\t\t\treturn this.session.prepareQuery(query, \"raw\", name ?? generateName);\n\t\t});\n\t}\n\tprepare(name) {\n\t\treturn this._prepare(name, true);\n\t}\n\texecute = (placeholderValues) => {\n\t\treturn tracer.startActiveSpan(\"drizzle.operation\", () => {\n\t\t\treturn this._prepare().execute(placeholderValues);\n\t\t});\n\t};\n};\napplyMixins(PgAsyncRefreshMaterializedView, [QueryPromise]);\n\n//#endregion\nexport { PgAsyncRefreshMaterializedView };\n//# sourceMappingURL=refresh-materialized-view.js.map",
98
+ "import { PgSelectBase } from \"../query-builders/select.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { tracer } from \"../../tracing.js\";\nimport { applyMixins } from \"../../utils.js\";\nimport { QueryPromise } from \"../../query-promise.js\";\n\n//#region src/pg-core/async/select.ts\nvar PgAsyncSelectBase = class extends PgSelectBase {\n\tstatic [entityKind] = \"PgAsyncSelectQueryBuilder\";\n\t/** @internal */\n\t_prepare(name, generateName = false) {\n\t\tconst { session, dialect, cacheConfig, usedTables } = this;\n\t\treturn tracer.startActiveSpan(\"drizzle.prepareQuery\", () => {\n\t\t\tconst query = this.config.tagged ? dialect._sqlToQuery(this.getSQL()) : dialect.sqlToQuery(this.getSQL());\n\t\t\tconst fieldsList = this.config.fieldsFlat;\n\t\t\tconst mapper = this.dialect.mapperGenerators.rows(fieldsList, this.joinsNotNullableMap);\n\t\t\treturn session.prepareQuery(query, \"arrays\", name ?? generateName, mapper, {\n\t\t\t\ttype: \"select\",\n\t\t\t\ttables: [...usedTables]\n\t\t\t}, cacheConfig);\n\t\t});\n\t}\n\t/**\n\t* Create a prepared statement for this query. This allows\n\t* the database to remember this query for the given session\n\t* and call it by name, rather than specifying the full query.\n\t*\n\t* {@link https://www.postgresql.org/docs/current/sql-prepare.html | Postgres prepare documentation}\n\t*/\n\tprepare(name) {\n\t\treturn this._prepare(name, true);\n\t}\n\texecute(placeholderValues) {\n\t\treturn tracer.startActiveSpan(\"drizzle.operation\", () => {\n\t\t\treturn this._prepare().execute(placeholderValues);\n\t\t});\n\t}\n};\napplyMixins(PgAsyncSelectBase, [QueryPromise]);\n\n//#endregion\nexport { PgAsyncSelectBase };\n//# sourceMappingURL=select.js.map",
99
+ "import { entityKind, is } from \"../../entity.js\";\nimport { Subquery } from \"../../subquery.js\";\nimport { ViewBaseConfig } from \"../../view-common.js\";\nimport { Table, getTableName } from \"../../table.js\";\nimport { getTableLikeName, mapUpdateSet, orderSelectedFields } from \"../../utils.js\";\nimport { SQL, sql } from \"../../sql/sql.js\";\nimport { SelectionProxyHandler } from \"../../selection-proxy.js\";\nimport { PgTable } from \"../table.js\";\n\n//#region src/pg-core/query-builders/update.ts\nvar PgUpdateBuilder = class {\n\tstatic [entityKind] = \"PgUpdateBuilder\";\n\tconstructor(table, session, dialect, withList, builder = PgUpdateBase) {\n\t\tthis.table = table;\n\t\tthis.session = session;\n\t\tthis.dialect = dialect;\n\t\tthis.withList = withList;\n\t\tthis.builder = builder;\n\t}\n\tset(values) {\n\t\treturn new this.builder(this.table, mapUpdateSet(this.table, values), this.session, this.dialect, this.withList);\n\t}\n};\nvar PgUpdateBase = class {\n\tstatic [entityKind] = \"PgUpdate\";\n\tconfig;\n\ttableName;\n\tjoinsNotNullableMap;\n\tconstructor(table, set, session, dialect, withList) {\n\t\tthis.session = session;\n\t\tthis.dialect = dialect;\n\t\tthis.config = {\n\t\t\tset,\n\t\t\ttable,\n\t\t\twithList,\n\t\t\tjoins: []\n\t\t};\n\t\tthis.tableName = getTableLikeName(table);\n\t\tthis.joinsNotNullableMap = typeof this.tableName === \"string\" ? { [this.tableName]: true } : {};\n\t}\n\tfrom(source) {\n\t\tconst src = source;\n\t\tconst tableName = getTableLikeName(src);\n\t\tif (typeof tableName === \"string\") this.joinsNotNullableMap[tableName] = true;\n\t\tthis.config.from = src;\n\t\treturn this;\n\t}\n\tgetTableLikeFields(table) {\n\t\tif (is(table, PgTable)) return table[Table.Symbol.Columns];\n\t\telse if (is(table, Subquery)) return table._.selectedFields;\n\t\treturn table[ViewBaseConfig].selectedFields;\n\t}\n\tcreateJoin(joinType) {\n\t\treturn ((table, on) => {\n\t\t\tconst tableName = getTableLikeName(table);\n\t\t\tif (typeof tableName === \"string\" && this.config.joins.some((join) => join.alias === tableName)) throw new Error(`Alias \"${tableName}\" is already used in this query`);\n\t\t\tif (typeof on === \"function\") {\n\t\t\t\tconst from = this.config.from && !is(this.config.from, SQL) ? this.getTableLikeFields(this.config.from) : void 0;\n\t\t\t\ton = on(new Proxy(this.config.table[Table.Symbol.Columns], new SelectionProxyHandler({\n\t\t\t\t\tsqlAliasedBehavior: \"sql\",\n\t\t\t\t\tsqlBehavior: \"sql\"\n\t\t\t\t})), from && new Proxy(from, new SelectionProxyHandler({\n\t\t\t\t\tsqlAliasedBehavior: \"sql\",\n\t\t\t\t\tsqlBehavior: \"sql\"\n\t\t\t\t})));\n\t\t\t}\n\t\t\tthis.config.joins.push({\n\t\t\t\ton,\n\t\t\t\ttable,\n\t\t\t\tjoinType,\n\t\t\t\talias: tableName\n\t\t\t});\n\t\t\tif (typeof tableName === \"string\") switch (joinType) {\n\t\t\t\tcase \"left\":\n\t\t\t\t\tthis.joinsNotNullableMap[tableName] = false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"right\":\n\t\t\t\t\tthis.joinsNotNullableMap = Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([key]) => [key, false]));\n\t\t\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"inner\":\n\t\t\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"full\":\n\t\t\t\t\tthis.joinsNotNullableMap = Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([key]) => [key, false]));\n\t\t\t\t\tthis.joinsNotNullableMap[tableName] = false;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\treturn this;\n\t\t});\n\t}\n\tleftJoin = this.createJoin(\"left\");\n\trightJoin = this.createJoin(\"right\");\n\tinnerJoin = this.createJoin(\"inner\");\n\tfullJoin = this.createJoin(\"full\");\n\t/**\n\t* Adds a 'where' clause to the query.\n\t*\n\t* Calling this method will update only those rows that fulfill a specified condition.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/update}\n\t*\n\t* @param where the 'where' clause.\n\t*\n\t* @example\n\t* You can use conditional operators and `sql function` to filter the rows to be updated.\n\t*\n\t* ```ts\n\t* // Update all cars with green color\n\t* await db.update(cars).set({ color: 'red' })\n\t* .where(eq(cars.color, 'green'));\n\t* // or\n\t* await db.update(cars).set({ color: 'red' })\n\t* .where(sql`${cars.color} = 'green'`)\n\t* ```\n\t*\n\t* You can logically combine conditional operators with `and()` and `or()` operators:\n\t*\n\t* ```ts\n\t* // Update all BMW cars with a green color\n\t* await db.update(cars).set({ color: 'red' })\n\t* .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t*\n\t* // Update all cars with the green or blue color\n\t* await db.update(cars).set({ color: 'red' })\n\t* .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t* ```\n\t*/\n\twhere(where) {\n\t\tthis.config.where = where;\n\t\treturn this;\n\t}\n\treturning(fields) {\n\t\tif (!fields) {\n\t\t\tfields = Object.assign({}, this.config.table[Table.Symbol.Columns]);\n\t\t\tif (this.config.from) {\n\t\t\t\tconst tableName = getTableLikeName(this.config.from);\n\t\t\t\tif (typeof tableName === \"string\" && this.config.from && !is(this.config.from, SQL)) {\n\t\t\t\t\tconst fromFields = this.getTableLikeFields(this.config.from);\n\t\t\t\t\tfields[tableName] = fromFields;\n\t\t\t\t}\n\t\t\t\tfor (const join of this.config.joins) {\n\t\t\t\t\tconst tableName = getTableLikeName(join.table);\n\t\t\t\t\tif (typeof tableName === \"string\" && !is(join.table, SQL)) {\n\t\t\t\t\t\tconst fromFields = this.getTableLikeFields(join.table);\n\t\t\t\t\t\tfields[tableName] = fromFields;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.config.returningFields = fields;\n\t\tthis.config.returning = orderSelectedFields(fields, void 0, this.dialect.codecs);\n\t\treturn this;\n\t}\n\t/**\n\t* Attach [sqlcommenter](https://google.github.io/sqlcommenter) comment to a query\n\t*/\n\tcomment(comment) {\n\t\tthis.config.comment = sql.comment(comment);\n\t\treturn this;\n\t}\n\tgetSQL() {\n\t\treturn this.dialect.buildUpdateQuery(this.config);\n\t}\n\ttoSQL() {\n\t\treturn this.dialect.sqlToQuery(this.getSQL());\n\t}\n\t/** @internal */\n\tgetSelectedFields() {\n\t\treturn this.config.returningFields ? new Proxy(this.config.returningFields, new SelectionProxyHandler({\n\t\t\talias: getTableName(this.config.table),\n\t\t\tsqlAliasedBehavior: \"alias\",\n\t\t\tsqlBehavior: \"error\"\n\t\t})) : void 0;\n\t}\n\t/** @internal */\n\twithoutSelectionCastCodecs() {\n\t\tthis.config.ignoreSelectionCastCodecs = true;\n\t\treturn this;\n\t}\n\t$dynamic() {\n\t\treturn this;\n\t}\n};\n\n//#endregion\nexport { PgUpdateBase, PgUpdateBuilder };\n//# sourceMappingURL=update.js.map",
100
+ "import { extractUsedTable } from \"../utils.js\";\nimport { PgUpdateBase } from \"../query-builders/update.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { tracer } from \"../../tracing.js\";\nimport { applyMixins } from \"../../utils.js\";\nimport { QueryPromise } from \"../../query-promise.js\";\n\n//#region src/pg-core/async/update.ts\nvar PgAsyncUpdateBase = class extends PgUpdateBase {\n\tstatic [entityKind] = \"PgAsyncUpdate\";\n\t/** @internal */\n\t_prepare(name, generateName = false) {\n\t\tconst { session, config, dialect, joinsNotNullableMap } = this;\n\t\tconst { returning: fields } = config;\n\t\treturn tracer.startActiveSpan(\"drizzle.prepareQuery\", () => {\n\t\t\tconst query = dialect.sqlToQuery(this.getSQL());\n\t\t\tconst mapper = fields ? this.dialect.mapperGenerators.rows(fields, joinsNotNullableMap) : void 0;\n\t\t\treturn session.prepareQuery(query, fields ? \"arrays\" : \"raw\", name ?? generateName, mapper, {\n\t\t\t\ttype: \"update\",\n\t\t\t\ttables: [...extractUsedTable(this.config.table)]\n\t\t\t});\n\t\t});\n\t}\n\tprepare(name) {\n\t\treturn this._prepare(name, true);\n\t}\n\texecute = (placeholderValues = {}) => {\n\t\treturn this._prepare().execute(placeholderValues);\n\t};\n};\napplyMixins(PgAsyncUpdateBase, [QueryPromise]);\n\n//#endregion\nexport { PgAsyncUpdateBase };\n//# sourceMappingURL=update.js.map",
101
+ "import { PgAsyncCountBuilder } from \"./count.js\";\nimport { RelationalQueryBuilder } from \"../query-builders/query.js\";\nimport { PgAsyncDeleteBase } from \"./delete.js\";\nimport { PgAsyncInsertBase } from \"./insert.js\";\nimport { PgAsyncRelationalQuery } from \"./query.js\";\nimport { PgAsyncRaw } from \"./raw.js\";\nimport { PgAsyncRefreshMaterializedView } from \"./refresh-materialized-view.js\";\nimport { PgAsyncSelectBase } from \"./select.js\";\nimport { PgAsyncUpdateBase } from \"./update.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { WithSubquery } from \"../../subquery.js\";\nimport { sql } from \"../../sql/sql.js\";\nimport { SelectionProxyHandler } from \"../../selection-proxy.js\";\nimport { PgInsertBuilder, PgSelectBuilder, PgUpdateBuilder, QueryBuilder } from \"../query-builders/index.js\";\n\n//#region src/pg-core/async/db.ts\nvar PgAsyncDatabase = class {\n\tstatic [entityKind] = \"PgAsyncDatabase\";\n\tquery;\n\tconstructor(dialect, session, relations, parseRqbJson = false, tagged = false) {\n\t\tthis.dialect = dialect;\n\t\tthis.session = session;\n\t\tthis.tagged = tagged;\n\t\tthis._ = {\n\t\t\trelations,\n\t\t\tsession\n\t\t};\n\t\tthis.query = {};\n\t\tfor (const [tableName, relation] of Object.entries(relations)) this.query[tableName] = new RelationalQueryBuilder(relations, relations[relation.name].table, relation, dialect, session, parseRqbJson, PgAsyncRelationalQuery);\n\t\tthis.$cache = { invalidate: async (_params) => {} };\n\t}\n\t/**\n\t* Creates a subquery that defines a temporary named result set as a CTE.\n\t*\n\t* It is useful for breaking down complex queries into simpler parts and for reusing the result set in subsequent parts of the query.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t*\n\t* @param alias The alias for the subquery.\n\t*\n\t* Failure to provide an alias will result in a DrizzleTypeError, preventing the subquery from being referenced in other queries.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Create a subquery with alias 'sq' and use it in the select query\n\t* const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t*\n\t* const result = await db.with(sq).select().from(sq);\n\t* ```\n\t*\n\t* To select arbitrary SQL values as fields in a CTE and reference them in other CTEs or in the main query, you need to add aliases to them:\n\t*\n\t* ```ts\n\t* // Select an arbitrary SQL value as a field in a CTE and reference it in the main query\n\t* const sq = db.$with('sq').as(db.select({\n\t* name: sql<string>`upper(${users.name})`.as('name'),\n\t* })\n\t* .from(users));\n\t*\n\t* const result = await db.with(sq).select({ name: sq.name }).from(sq);\n\t* ```\n\t*/\n\t$with = (alias, selection) => {\n\t\tconst as = (qb) => {\n\t\t\tif (typeof qb === \"function\") qb = qb(new QueryBuilder(this.dialect));\n\t\t\tconst sql = (\"withoutSelectionCastCodecs\" in qb ? qb.withoutSelectionCastCodecs() : qb).getSQL();\n\t\t\treturn new Proxy(new WithSubquery(sql, selection ?? (\"getSelectedFields\" in qb ? qb.getSelectedFields() ?? {} : {}), alias, true, sql.usedTables ?? []), new SelectionProxyHandler({\n\t\t\t\talias,\n\t\t\t\tsqlAliasedBehavior: \"alias\",\n\t\t\t\tsqlBehavior: \"error\"\n\t\t\t}));\n\t\t};\n\t\treturn { as };\n\t};\n\t$count(source, filters) {\n\t\treturn new PgAsyncCountBuilder({\n\t\t\tsource,\n\t\t\tfilters,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect\n\t\t});\n\t}\n\t$cache;\n\t/**\n\t* Incorporates a previously defined CTE (using `$with`) into the main query.\n\t*\n\t* This method allows the main query to reference a temporary named result set.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t*\n\t* @param queries The CTEs to incorporate into the main query.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Define a subquery 'sq' as a CTE using $with\n\t* const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t*\n\t* // Incorporate the CTE 'sq' into the main query and select from it\n\t* const result = await db.with(sq).select().from(sq);\n\t* ```\n\t*/\n\twith(...queries) {\n\t\tconst self = this;\n\t\tfunction select(fields) {\n\t\t\treturn new PgSelectBuilder({\n\t\t\t\tfields: fields ?? void 0,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t\ttagged: self.tagged\n\t\t\t}, PgAsyncSelectBase);\n\t\t}\n\t\tfunction selectDistinct(fields) {\n\t\t\treturn new PgSelectBuilder({\n\t\t\t\tfields: fields ?? void 0,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: true,\n\t\t\t\ttagged: self.tagged\n\t\t\t}, PgAsyncSelectBase);\n\t\t}\n\t\tfunction selectDistinctOn(on, fields) {\n\t\t\treturn new PgSelectBuilder({\n\t\t\t\tfields: fields ?? void 0,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: { on },\n\t\t\t\ttagged: self.tagged\n\t\t\t}, PgAsyncSelectBase);\n\t\t}\n\t\t/**\n\t\t* Creates an update query.\n\t\t*\n\t\t* Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t\t*\n\t\t* Use `.set()` method to specify which values to update.\n\t\t*\n\t\t* See docs: {@link https://orm.drizzle.team/docs/update}\n\t\t*\n\t\t* @param table The table to update.\n\t\t*\n\t\t* @example\n\t\t*\n\t\t* ```ts\n\t\t* // Update all rows in the 'cars' table\n\t\t* await db.update(cars).set({ color: 'red' });\n\t\t*\n\t\t* // Update rows with filters and conditions\n\t\t* await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t\t*\n\t\t* // Update with returning clause\n\t\t* const updatedCar: Car[] = await db.update(cars)\n\t\t* .set({ color: 'red' })\n\t\t* .where(eq(cars.id, 1))\n\t\t* .returning();\n\t\t* ```\n\t\t*/\n\t\tfunction update(table) {\n\t\t\treturn new PgUpdateBuilder(table, self.session, self.dialect, queries, PgAsyncUpdateBase);\n\t\t}\n\t\t/**\n\t\t* Creates an insert query.\n\t\t*\n\t\t* Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t\t*\n\t\t* See docs: {@link https://orm.drizzle.team/docs/insert}\n\t\t*\n\t\t* @param table The table to insert into.\n\t\t*\n\t\t* @example\n\t\t*\n\t\t* ```ts\n\t\t* // Insert one row\n\t\t* await db.insert(cars).values({ brand: 'BMW' });\n\t\t*\n\t\t* // Insert multiple rows\n\t\t* await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t\t*\n\t\t* // Insert with returning clause\n\t\t* const insertedCar: Car[] = await db.insert(cars)\n\t\t* .values({ brand: 'BMW' })\n\t\t* .returning();\n\t\t* ```\n\t\t*/\n\t\tfunction insert(table) {\n\t\t\treturn new PgInsertBuilder(table, self.session, self.dialect, queries, void 0, PgAsyncInsertBase);\n\t\t}\n\t\t/**\n\t\t* Creates a delete query.\n\t\t*\n\t\t* Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t\t*\n\t\t* See docs: {@link https://orm.drizzle.team/docs/delete}\n\t\t*\n\t\t* @param table The table to delete from.\n\t\t*\n\t\t* @example\n\t\t*\n\t\t* ```ts\n\t\t* // Delete all rows in the 'cars' table\n\t\t* await db.delete(cars);\n\t\t*\n\t\t* // Delete rows with filters and conditions\n\t\t* await db.delete(cars).where(eq(cars.color, 'green'));\n\t\t*\n\t\t* // Delete with returning clause\n\t\t* const deletedCar: Car[] = await db.delete(cars)\n\t\t* .where(eq(cars.id, 1))\n\t\t* .returning();\n\t\t* ```\n\t\t*/\n\t\tfunction delete_(table) {\n\t\t\treturn new PgAsyncDeleteBase(table, self.session, self.dialect, queries);\n\t\t}\n\t\treturn {\n\t\t\tselect,\n\t\t\tselectDistinct,\n\t\t\tselectDistinctOn,\n\t\t\tupdate,\n\t\t\tinsert,\n\t\t\tdelete: delete_\n\t\t};\n\t}\n\tselect(fields) {\n\t\treturn new PgSelectBuilder({\n\t\t\tfields: fields ?? void 0,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\ttagged: this.tagged\n\t\t}, PgAsyncSelectBase);\n\t}\n\tselectDistinct(fields) {\n\t\treturn new PgSelectBuilder({\n\t\t\tfields: fields ?? void 0,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\tdistinct: true,\n\t\t\ttagged: this.tagged\n\t\t}, PgAsyncSelectBase);\n\t}\n\tselectDistinctOn(on, fields) {\n\t\treturn new PgSelectBuilder({\n\t\t\tfields: fields ?? void 0,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\tdistinct: { on },\n\t\t\ttagged: this.tagged\n\t\t}, PgAsyncSelectBase);\n\t}\n\t/**\n\t* Creates an update query.\n\t*\n\t* Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t*\n\t* Use `.set()` method to specify which values to update.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/update}\n\t*\n\t* @param table The table to update.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Update all rows in the 'cars' table\n\t* await db.update(cars).set({ color: 'red' });\n\t*\n\t* // Update rows with filters and conditions\n\t* await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t*\n\t* // Update with returning clause\n\t* const updatedCar: Car[] = await db.update(cars)\n\t* .set({ color: 'red' })\n\t* .where(eq(cars.id, 1))\n\t* .returning();\n\t* ```\n\t*/\n\tupdate(table) {\n\t\treturn new PgUpdateBuilder(table, this.session, this.dialect, void 0, PgAsyncUpdateBase);\n\t}\n\t/**\n\t* Creates an insert query.\n\t*\n\t* Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/insert}\n\t*\n\t* @param table The table to insert into.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Insert one row\n\t* await db.insert(cars).values({ brand: 'BMW' });\n\t*\n\t* // Insert multiple rows\n\t* await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t*\n\t* // Insert with returning clause\n\t* const insertedCar: Car[] = await db.insert(cars)\n\t* .values({ brand: 'BMW' })\n\t* .returning();\n\t* ```\n\t*/\n\tinsert(table) {\n\t\treturn new PgInsertBuilder(table, this.session, this.dialect, void 0, void 0, PgAsyncInsertBase);\n\t}\n\t/**\n\t* Creates a delete query.\n\t*\n\t* Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/delete}\n\t*\n\t* @param table The table to delete from.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Delete all rows in the 'cars' table\n\t* await db.delete(cars);\n\t*\n\t* // Delete rows with filters and conditions\n\t* await db.delete(cars).where(eq(cars.color, 'green'));\n\t*\n\t* // Delete with returning clause\n\t* const deletedCar: Car[] = await db.delete(cars)\n\t* .where(eq(cars.id, 1))\n\t* .returning();\n\t* ```\n\t*/\n\tdelete(table) {\n\t\treturn new PgAsyncDeleteBase(table, this.session, this.dialect);\n\t}\n\trefreshMaterializedView(view) {\n\t\treturn new PgAsyncRefreshMaterializedView(view, this.session, this.dialect);\n\t}\n\texecute(query) {\n\t\tconst sequel = typeof query === \"string\" ? sql.raw(query) : query.getSQL();\n\t\tconst builtQuery = this.dialect.sqlToQuery(sequel);\n\t\treturn new PgAsyncRaw(this.session.prepareQuery(builtQuery, \"raw\", false), sequel, builtQuery);\n\t}\n\ttransaction(transaction, config) {\n\t\treturn this.session.transaction(transaction, config);\n\t}\n};\nconst withReplicas = (primary, replicas, getReplica = () => replicas[Math.floor(Math.random() * replicas.length)]) => {\n\tconst select = (...args) => getReplica(replicas).select(...args);\n\tconst selectDistinct = (...args) => getReplica(replicas).selectDistinct(...args);\n\tconst selectDistinctOn = (...args) => getReplica(replicas).selectDistinctOn(...args);\n\tconst $count = (...args) => getReplica(replicas).$count(...args);\n\tconst _with = (...args) => getReplica(replicas).with(...args);\n\tconst $with = (arg) => getReplica(replicas).$with(arg);\n\tconst update = (...args) => primary.update(...args);\n\tconst insert = (...args) => primary.insert(...args);\n\tconst $delete = (...args) => primary.delete(...args);\n\tconst execute = (...args) => primary.execute(...args);\n\tconst transaction = (...args) => primary.transaction(...args);\n\tconst refreshMaterializedView = (...args) => primary.refreshMaterializedView(...args);\n\treturn {\n\t\t...primary,\n\t\tupdate,\n\t\tinsert,\n\t\tdelete: $delete,\n\t\texecute,\n\t\ttransaction,\n\t\trefreshMaterializedView,\n\t\t$primary: primary,\n\t\t$replicas: replicas,\n\t\tselect,\n\t\tselectDistinct,\n\t\tselectDistinctOn,\n\t\t$count,\n\t\t$with,\n\t\twith: _with,\n\t\tget query() {\n\t\t\treturn getReplica(replicas).query;\n\t\t}\n\t};\n};\n\n//#endregion\nexport { PgAsyncDatabase, withReplicas };\n//# sourceMappingURL=db.js.map",
102
+ "import { entityKind } from \"../entity.js\";\n\n//#region src/pg-core/session.ts\nvar PgBasePreparedQuery = class {\n\tstatic [entityKind] = \"PgBasePreparedQuery\";\n\tconstructor(query) {\n\t\tthis.query = query;\n\t}\n\tgetQuery() {\n\t\treturn this.query;\n\t}\n};\nvar PgSession = class {\n\tstatic [entityKind] = \"PgSession\";\n\tconstructor(dialect) {\n\t\tthis.dialect = dialect;\n\t}\n};\n\n//#endregion\nexport { PgBasePreparedQuery, PgSession };\n//# sourceMappingURL=session.js.map",
103
+ "import { PgAsyncDatabase } from \"./db.js\";\nimport { PgBasePreparedQuery, PgSession } from \"../session.js\";\nimport { entityKind, is } from \"../../entity.js\";\nimport { hasTelemetry, tracer } from \"../../tracing.js\";\nimport { assertUnreachable } from \"../../utils.js\";\nimport { fillPlaceholders, sql } from \"../../sql/sql.js\";\nimport { DrizzleQueryError, TransactionRollbackError } from \"../../errors.js\";\nimport { getMigrationsToRun } from \"../../migrator.utils.js\";\nimport { upgradeIfNeeded } from \"../../up-migrations/pg.js\";\nimport { NoopCache, strategyFor } from \"../../cache/core/cache.js\";\n\n//#region src/pg-core/async/session.ts\nvar PgAsyncPreparedQuery = class extends PgBasePreparedQuery {\n\tstatic [entityKind] = \"PgAsyncPreparedQuery\";\n\t/** @internal */\n\tmapper;\n\tfastPath;\n\tconstructor(executor, query, mapper, mode, logger, cache, queryMetadata, cacheConfig) {\n\t\tsuper(query);\n\t\tthis.executor = executor;\n\t\tthis.mode = mode;\n\t\tthis.logger = logger;\n\t\tthis.cache = cache;\n\t\tthis.queryMetadata = queryMetadata;\n\t\tthis.cacheConfig = cacheConfig;\n\t\tthis.mapper = mapper;\n\t\tif (cache && cache.strategy() === \"all\" && cacheConfig === void 0) this.cacheConfig = {\n\t\t\tenabled: true,\n\t\t\tautoInvalidate: true\n\t\t};\n\t\tif (!this.cacheConfig?.enabled) this.cacheConfig = void 0;\n\t\tthis.fastPath = cacheConfig === void 0 && (cache === void 0 || is(cache, NoopCache)) && !hasTelemetry;\n\t}\n\tasync execute(placeholderValues = {}) {\n\t\tconst { query, logger, executor, mapper, fastPath } = this;\n\t\tif (fastPath) {\n\t\t\tconst sql = query._sql ? query._sql.join(\" \") : query.sql;\n\t\t\tconst params = query.params.length === 0 ? query.params : fillPlaceholders(query.params, placeholderValues);\n\t\t\tlogger.logQuery(sql, params);\n\t\t\tconst res = executor(params).catch((e) => {\n\t\t\t\tthrow new DrizzleQueryError(sql, params, e);\n\t\t\t});\n\t\t\tif (!mapper) return res;\n\t\t\treturn res.then((rows) => mapper(rows));\n\t\t}\n\t\treturn tracer.startActiveSpan(\"drizzle.execute\", async (span) => {\n\t\t\tconst params = fillPlaceholders(this.query.params, placeholderValues);\n\t\t\tconst sql = this.query._sql ? this.query._sql.join(\" \") : this.query.sql;\n\t\t\tconst { mapper } = this;\n\t\t\tspan?.setAttributes({\n\t\t\t\t\"drizzle.query.text\": sql,\n\t\t\t\t\"drizzle.query.params\": JSON.stringify(params)\n\t\t\t});\n\t\t\tthis.logger.logQuery(sql, params);\n\t\t\tconst query = tracer.startActiveSpan(\"drizzle.driver.execute\", async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\"drizzle.query.text\": sql,\n\t\t\t\t\t\"drizzle.query.params\": JSON.stringify(params)\n\t\t\t\t});\n\t\t\t\treturn await this.queryWithCache(sql, params, () => this.executor(params));\n\t\t\t});\n\t\t\tif (!mapper) return query;\n\t\t\treturn query.then((rows) => tracer.startActiveSpan(\"drizzle.mapResponse\", () => mapper(rows)));\n\t\t});\n\t}\n\t/** @internal */\n\tasync queryWithCache(queryString, params, query) {\n\t\tconst cacheStrat = this.cache !== void 0 && !is(this.cache, NoopCache) ? await strategyFor(queryString, params, this.queryMetadata, this.cacheConfig) : { type: \"skip\" };\n\t\tif (cacheStrat.type === \"skip\") return query().catch((e) => {\n\t\t\tthrow new DrizzleQueryError(queryString, params, e);\n\t\t});\n\t\tconst cache = this.cache;\n\t\tif (cacheStrat.type === \"invalidate\") return Promise.all([query(), cache.onMutate({ tables: cacheStrat.tables })]).then((res) => res[0]).catch((e) => {\n\t\t\tthrow new DrizzleQueryError(queryString, params, e);\n\t\t});\n\t\tif (cacheStrat.type === \"try\") {\n\t\t\tconst { tables, key, isTag, autoInvalidate, config } = cacheStrat;\n\t\t\tconst fromCache = await cache.get(key, tables, isTag, autoInvalidate);\n\t\t\tif (fromCache === void 0) {\n\t\t\t\tconst result = await query().catch((e) => {\n\t\t\t\t\tthrow new DrizzleQueryError(queryString, params, e);\n\t\t\t\t});\n\t\t\t\tawait cache.put(key, result, autoInvalidate ? tables : [], isTag, config);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn fromCache;\n\t\t}\n\t\tassertUnreachable(cacheStrat);\n\t}\n};\nvar PgAsyncSession = class extends PgSession {\n\tstatic [entityKind] = \"PgAsyncSession\";\n\texecute(query) {\n\t\treturn tracer.startActiveSpan(\"drizzle.operation\", () => {\n\t\t\treturn tracer.startActiveSpan(\"drizzle.prepareQuery\", () => {\n\t\t\t\treturn this.prepareQuery(this.dialect.sqlToQuery(query), \"raw\", false);\n\t\t\t}).execute();\n\t\t});\n\t}\n\tarrays(query) {\n\t\treturn tracer.startActiveSpan(\"drizzle.operation\", () => {\n\t\t\treturn tracer.startActiveSpan(\"drizzle.prepareQuery\", () => {\n\t\t\t\treturn this.prepareQuery(this.dialect.sqlToQuery(query), \"arrays\", false);\n\t\t\t}).execute();\n\t\t});\n\t}\n\tobjects(query) {\n\t\treturn tracer.startActiveSpan(\"drizzle.operation\", () => {\n\t\t\treturn tracer.startActiveSpan(\"drizzle.prepareQuery\", () => {\n\t\t\t\treturn this.prepareQuery(this.dialect.sqlToQuery(query), \"objects\", false);\n\t\t\t}).execute();\n\t\t});\n\t}\n};\nvar PgAsyncTransaction = class extends PgAsyncDatabase {\n\tstatic [entityKind] = \"PgAsyncTransaction\";\n\tconstructor(dialect, session, relations, nestedIndex = 0, parseRqbJson) {\n\t\tsuper(dialect, session, relations, parseRqbJson);\n\t\tthis.nestedIndex = nestedIndex;\n\t}\n\trollback() {\n\t\tthrow new TransactionRollbackError();\n\t}\n\t/** @internal */\n\tgetTransactionConfigSQL(config) {\n\t\tconst chunks = [];\n\t\tif (config.isolationLevel) chunks.push(`isolation level ${config.isolationLevel}`);\n\t\tif (config.accessMode) chunks.push(config.accessMode);\n\t\tif (typeof config.deferrable === \"boolean\") chunks.push(config.deferrable ? \"deferrable\" : \"not deferrable\");\n\t\treturn sql.raw(chunks.join(\" \"));\n\t}\n\tsetTransaction(config) {\n\t\treturn this.session.execute(sql`set transaction ${this.getTransactionConfigSQL(config)}`);\n\t}\n};\nasync function migrate(migrations, db, config) {\n\tconst migrationsTable = typeof config === \"string\" ? \"__drizzle_migrations\" : config.migrationsTable ?? \"__drizzle_migrations\";\n\tconst migrationsSchema = typeof config === \"string\" ? \"drizzle\" : config.migrationsSchema ?? \"drizzle\";\n\tawait db.execute(sql`CREATE SCHEMA IF NOT EXISTS ${sql.identifier(migrationsSchema)}`);\n\tconst { newDb } = await upgradeIfNeeded(migrationsSchema, migrationsTable, db, migrations);\n\tif (newDb) {\n\t\tconst migrationTableCreate = sql`\n\t\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsSchema)}.${sql.identifier(migrationsTable)} (\n\t\t\t\tid SERIAL PRIMARY KEY,\n\t\t\t\thash text NOT NULL,\n\t\t\t\tcreated_at bigint,\n\t\t\t\tname text,\n\t\t\t\tapplied_at timestamp with time zone DEFAULT now()\n\t\t\t)\n\t\t`;\n\t\tawait db.execute(migrationTableCreate);\n\t}\n\tconst dbMigrations = await db.session.objects(sql`select id, hash, created_at, name from ${sql.identifier(migrationsSchema)}.${sql.identifier(migrationsTable)}`);\n\tif (typeof config === \"object\" && config.init) {\n\t\tif (dbMigrations.length) return { exitCode: \"databaseMigrations\" };\n\t\tif (migrations.length > 1) return { exitCode: \"localMigrations\" };\n\t\tconst [migration] = migrations;\n\t\tif (!migration) return;\n\t\tawait db.execute(sql`insert into ${sql.identifier(migrationsSchema)}.${sql.identifier(migrationsTable)} (\"hash\", \"created_at\", \"name\") values(${migration.hash}, ${migration.folderMillis}, ${migration.name ?? null})`);\n\t\treturn;\n\t}\n\tconst migrationsToRun = getMigrationsToRun({\n\t\tlocalMigrations: migrations,\n\t\tdbMigrations\n\t});\n\tawait db.transaction(async (tx) => {\n\t\tfor (const migration of migrationsToRun) {\n\t\t\tfor (const stmt of migration.sql) await tx.execute(sql.raw(stmt));\n\t\t\tawait tx.execute(sql`insert into ${sql.identifier(migrationsSchema)}.${sql.identifier(migrationsTable)} (\"hash\", \"created_at\", \"name\") values(${migration.hash}, ${migration.folderMillis}, ${migration.name ?? null})`);\n\t\t}\n\t});\n}\n\n//#endregion\nexport { PgAsyncPreparedQuery, PgAsyncSession, PgAsyncTransaction, migrate };\n//# sourceMappingURL=session.js.map",
104
+ "import { entityKind } from \"../entity.js\";\nimport { NoopLogger } from \"../logger.js\";\nimport { NoopCache } from \"../cache/core/index.js\";\nimport { PgAsyncPreparedQuery, PgAsyncSession } from \"../pg-core/async/session.js\";\n\n//#region src/neon-http/session.ts\nvar NeonHttpSession = class extends PgAsyncSession {\n\tstatic [entityKind] = \"NeonHttpSession\";\n\tlogger;\n\tcache;\n\t/** @internal */\n\tclient;\n\tconstructor(client, dialect, relations, options = {}) {\n\t\tsuper(dialect);\n\t\tthis.relations = relations;\n\t\tthis.options = options;\n\t\tthis.client = client;\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\tprepareQuery(query, mode, _name, mapper, queryMetadata, cacheConfig) {\n\t\tconst executor = (params) => {\n\t\t\tconst q = this.client.query ?? this.client;\n\t\t\tif (mode === \"raw\") return (async () => q(query.sql, params, {\n\t\t\t\tarrayMode: false,\n\t\t\t\tfullResults: true,\n\t\t\t\tauthToken: this.options.authToken\n\t\t\t}))();\n\t\t\treturn q(query.sql, params, {\n\t\t\t\tarrayMode: mode === \"arrays\",\n\t\t\t\tfullResults: true,\n\t\t\t\tauthToken: this.options.authToken\n\t\t\t}).then((it) => it.rows);\n\t\t};\n\t\treturn new PgAsyncPreparedQuery(executor, query, mapper, mode, this.logger, this.cache, queryMetadata, cacheConfig);\n\t}\n\tasync batch(queries) {\n\t\tconst preparedQueries = [];\n\t\tconst builtQueries = [];\n\t\tconst q = this.client.query ?? this.client;\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tbuiltQueries.push(q(builtQuery.sql, builtQuery.params, {\n\t\t\t\tfullResults: true,\n\t\t\t\tarrayMode: preparedQuery.mode === \"arrays\"\n\t\t\t}));\n\t\t}\n\t\treturn (await this.client.transaction(builtQueries, {\n\t\t\tauthToken: this.options.authToken,\n\t\t\tfullResults: true,\n\t\t\tarrayMode: true\n\t\t})).map((result, i) => preparedQueries[i].mapper ? preparedQueries[i].mapper(result.rows) : result);\n\t}\n\tasync transaction(_transaction, _config = {}) {\n\t\tthrow new Error(\"No transactions support in neon-http driver\");\n\t}\n};\n\n//#endregion\nexport { NeonHttpSession };\n//# sourceMappingURL=session.js.map",
105
+ "import { neonHttpCodecs } from \"./codecs.js\";\nimport { NeonHttpSession } from \"./session.js\";\nimport { entityKind } from \"../entity.js\";\nimport { jitCompatCheck } from \"../utils.js\";\nimport { DefaultLogger } from \"../logger.js\";\nimport { PgAsyncDatabase } from \"../pg-core/async/db.js\";\nimport { PgDialect } from \"../pg-core/dialect.js\";\nimport { neon, types } from \"@neondatabase/serverless\";\n\n//#region src/neon-http/driver.ts\nvar NeonHttpDatabase = class NeonHttpDatabase extends PgAsyncDatabase {\n\tstatic [entityKind] = \"NeonHttpDatabase\";\n\t$withAuth(token) {\n\t\tconst session = new NeonHttpSession(this.session.client, this.dialect, this._.relations, {\n\t\t\t...this.session.options,\n\t\t\tauthToken: token\n\t\t});\n\t\treturn new NeonHttpDatabase(this.dialect, session, this._.relations);\n\t}\n\tasync batch(batch) {\n\t\treturn this.session.batch(batch);\n\t}\n};\nfunction construct(client, config = {}) {\n\tconst dialect = new PgDialect({\n\t\tuseJitMappers: jitCompatCheck(config.jit),\n\t\tcodecs: config.codecs ?? neonHttpCodecs\n\t});\n\tlet logger;\n\tif (config.logger === true) logger = new DefaultLogger();\n\telse if (config.logger !== false) logger = config.logger;\n\tconst relations = config.relations ?? {};\n\tconst session = new NeonHttpSession(client, dialect, relations ?? {}, {\n\t\tlogger,\n\t\tcache: config.cache\n\t});\n\ttypes.setTypeParser(types.builtins.TIMESTAMPTZ, (val) => val);\n\ttypes.setTypeParser(types.builtins.TIMESTAMP, (val) => val);\n\ttypes.setTypeParser(types.builtins.DATE, (val) => val);\n\ttypes.setTypeParser(types.builtins.INTERVAL, (val) => val);\n\ttypes.setTypeParser(1231, (val) => val);\n\ttypes.setTypeParser(1115, (val) => val);\n\ttypes.setTypeParser(1185, (val) => val);\n\ttypes.setTypeParser(1187, (val) => val);\n\ttypes.setTypeParser(1182, (val) => val);\n\tconst db = new NeonHttpDatabase(dialect, session, relations);\n\tdb.$client = client;\n\tdb.$cache = config.cache;\n\tif (db.$cache) db.$cache[\"invalidate\"] = config.cache?.onMutate;\n\treturn db;\n}\nfunction drizzle(...params) {\n\tif (typeof params[0] === \"string\") return construct(neon(params[0]), params[1]);\n\tconst { connection, client, ...DrizzlePgConfig } = params[0];\n\tif (client) return construct(client, DrizzlePgConfig);\n\tif (typeof connection === \"object\") {\n\t\tconst { connectionString, ...options } = connection;\n\t\treturn construct(neon(connectionString, options), DrizzlePgConfig);\n\t}\n\treturn construct(neon(connection), DrizzlePgConfig);\n}\n(function(_drizzle) {\n\tfunction mock(config) {\n\t\treturn construct({}, config);\n\t}\n\t_drizzle.mock = mock;\n})(drizzle || (drizzle = {}));\n\n//#endregion\nexport { NeonHttpDatabase, drizzle };\n//# sourceMappingURL=driver.js.map",
106
+ "import type {\n\tLinkedProviderBinding,\n\tLinkedProviderBindingStore,\n\tLinkedProviderGrant,\n\tLinkedProviderGrantStore,\n\tJsonObject\n} from '@absolutejs/linked-providers';\nimport { neon } from '@neondatabase/serverless';\nimport { desc, eq, sql as drizzleSql } from 'drizzle-orm';\nimport { drizzle } from 'drizzle-orm/neon-http';\nimport { jsonb, pgTable, text, timestamp, varchar } from 'drizzle-orm/pg-core';\nimport type { AnyPgDatabase } from '../stores/postgres';\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<JsonObject>().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<JsonObject>().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 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\n/**\n * These two take a database rather than a connection string, so an application\n * that already has one uses it instead of opening a second. Nothing in either\n * is specific to Neon -- the Neon helpers below are the convenience that opens\n * a connection for a caller who has none.\n */\nexport const createLinkedProviderBindingStore = <DB extends AnyPgDatabase>(\n\tdb: DB\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 createLinkedProviderGrantStore = <DB extends AnyPgDatabase>(\n\tdb: DB\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: drizzleSql`coalesce(excluded.refresh_token_ciphertext, ${linkedProviderGrantsTable.refresh_token_ciphertext})`,\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({ client: sql });\n\n\treturn {\n\t\tbindingStore: createLinkedProviderBindingStore(db),\n\t\tdb,\n\t\tgrantStore: createLinkedProviderGrantStore(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",
107
+ "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\tconst existing = grants.get(grant.id);\n\t\t\tgrants.set(\n\t\t\t\tgrant.id,\n\t\t\t\tcloneGrant({\n\t\t\t\t\t...grant,\n\t\t\t\t\trefreshTokenCiphertext:\n\t\t\t\t\t\tgrant.refreshTokenCiphertext ??\n\t\t\t\t\t\texisting?.refreshTokenCiphertext\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\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"
10
108
  ],
11
- "mappings": "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",
12
- "debugId": "46FA04A384B5D39964756E2164756E21",
109
+ "mappings": "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",
110
+ "debugId": "D9D52154169D99BE64756E2164756E21",
13
111
  "names": []
14
112
  }