@authhero/proxy 0.6.0 → 0.7.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.
package/dist/proxy.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@hono/zod-openapi"),t=require("hono");var n=e.z.object({created_at:e.z.string(),updated_at:e.z.string()}),r=e.z.object({id:e.z.string(),version:e.z.string().optional()}),i=e.z.object({name:e.z.string(),version:e.z.string()}),a=e.z.object({name:e.z.string(),value:e.z.string().optional()}),o=e.z.object({name:e.z.string().max(255),code:e.z.string().max(1e5),supported_triggers:e.z.array(r).optional(),runtime:e.z.string().max(50).optional(),dependencies:e.z.array(i).optional(),secrets:e.z.array(a).optional(),is_system:e.z.boolean().optional(),inherit:e.z.boolean().optional()});o.partial().extend({status:e.z.enum([`draft`,`built`]).optional(),deployed_at:e.z.string().optional()}),o.extend({id:e.z.string(),tenant_id:e.z.string(),status:e.z.enum([`draft`,`built`]).default(`built`),deployed_at:e.z.string().optional(),secrets:e.z.array(e.z.object({name:e.z.string(),value:e.z.string().optional()})).optional()}).extend(n.shape);var s=e.z.string(),c=e.z.enum([`unspecified`,`pending`,`final`,`partial`,`canceled`,`suspended`]),l=e.z.object({id:e.z.string(),msg:e.z.string(),url:e.z.string().optional()}),u=e.z.object({action_name:e.z.string(),error:l.nullable(),started_at:e.z.string(),ended_at:e.z.string()}),d=e.z.object({level:e.z.enum([`log`,`info`,`warn`,`error`,`debug`]),message:e.z.string()}),f=e.z.array(e.z.object({action_name:e.z.string(),lines:e.z.array(d)}));e.z.object({id:e.z.string(),tenant_id:e.z.string(),trigger_id:s,status:c,results:e.z.array(u),logs:f.optional(),created_at:e.z.string(),updated_at:e.z.string()}).omit({tenant_id:!0,created_at:!0,updated_at:!0}),e.z.object({action_id:e.z.string(),code:e.z.string().max(1e5),runtime:e.z.string().max(50).optional(),dependencies:e.z.array(i).optional(),secrets:e.z.array(a).optional(),supported_triggers:e.z.array(r).optional(),deployed:e.z.boolean().default(!0)}).extend({id:e.z.string(),tenant_id:e.z.string(),number:e.z.number().int()}).extend(n.shape);var p=e.z.enum([`user_action`,`admin_action`,`system`,`api`]),m=e.z.object({type:e.z.enum([`user`,`admin`,`system`,`api_key`,`client_credentials`]),id:e.z.string().optional(),email:e.z.string().optional(),org_id:e.z.string().optional(),org_name:e.z.string().optional(),scopes:e.z.array(e.z.string()).optional(),client_id:e.z.string().optional()}),h=e.z.object({type:e.z.string(),id:e.z.string(),before:e.z.record(e.z.string(),e.z.unknown()).optional(),after:e.z.record(e.z.string(),e.z.unknown()).optional(),diff:e.z.record(e.z.string(),e.z.object({old:e.z.unknown(),new:e.z.unknown()})).optional()}),ee=e.z.object({method:e.z.string(),path:e.z.string(),query:e.z.record(e.z.string(),e.z.string()).optional(),body:e.z.unknown().optional(),ip:e.z.string(),user_agent:e.z.string().optional(),correlation_id:e.z.string().optional()}),te=e.z.object({status_code:e.z.number(),body:e.z.unknown().optional()}),ne=e.z.object({country_code:e.z.string(),city_name:e.z.string(),latitude:e.z.string(),longitude:e.z.string(),time_zone:e.z.string(),continent_code:e.z.string()}),re=e.z.object({name:e.z.string(),version:e.z.string(),env:e.z.record(e.z.string(),e.z.string()).optional()});e.z.object({tenant_id:e.z.string(),event_type:e.z.string(),log_type:e.z.string(),description:e.z.string().optional(),category:p,actor:m,target:h,request:ee,response:te.optional(),connection:e.z.string().optional(),strategy:e.z.string().optional(),strategy_type:e.z.string().optional(),audience:e.z.string().optional(),scope:e.z.string().optional(),location:ne.optional(),auth0_client:re.optional(),hostname:e.z.string(),is_mobile:e.z.boolean().optional(),timestamp:e.z.string()}).extend({id:e.z.string()}),e.z.enum([`AUTH0`,`EMAIL`,`REDIRECT`]),e.z.enum([`CREATE_USER`,`GET_USER`,`UPDATE_USER`,`SEND_REQUEST`,`SEND_EMAIL`]),e.z.enum([`VERIFY_EMAIL`]);var ie=e.z.object({require_mx_record:e.z.boolean().optional(),block_aliases:e.z.boolean().optional(),block_free_emails:e.z.boolean().optional(),block_disposable_emails:e.z.boolean().optional(),blocklist:e.z.array(e.z.string()).optional(),allowlist:e.z.array(e.z.string()).optional()}),ae=e.z.object({id:e.z.string(),alias:e.z.string().max(100).optional(),type:e.z.literal(`AUTH0`),action:e.z.literal(`UPDATE_USER`),allow_failure:e.z.boolean().optional(),mask_output:e.z.boolean().optional(),params:e.z.object({connection_id:e.z.string().optional(),user_id:e.z.string(),changes:e.z.record(e.z.string(),e.z.any())})}),oe=e.z.object({id:e.z.string(),alias:e.z.string().max(100).optional(),type:e.z.literal(`EMAIL`),action:e.z.literal(`VERIFY_EMAIL`),allow_failure:e.z.boolean().optional(),mask_output:e.z.boolean().optional(),params:e.z.object({email:e.z.string(),rules:ie.optional()})}),se=e.z.enum([`change-email`,`account`,`custom`]),ce=e.z.object({id:e.z.string(),alias:e.z.string().max(100).optional(),type:e.z.literal(`REDIRECT`),action:e.z.literal(`REDIRECT_USER`),allow_failure:e.z.boolean().optional(),mask_output:e.z.boolean().optional(),params:e.z.object({target:se.openapi({description:`The predefined target to redirect to, or 'custom' for a custom URL`}),custom_url:e.z.string().optional().openapi({description:`Custom URL to redirect to when target is 'custom'`})})}),le=e.z.union([ae,oe,ce]);e.z.object({name:e.z.string().min(1).max(150).openapi({description:`The name of the flow`}),actions:e.z.array(le).optional().default([]).openapi({description:`The list of actions to execute in sequence`})}).extend(n.shape).extend({id:e.z.string().openapi({description:`Unique identifier for the flow`,example:`af_12tMpdJ3iek7svMyZkSh5M`})}),e.z.object({page:e.z.string().min(0).optional().default(`0`).transform(e=>parseInt(e,10)).openapi({description:`The page number where 0 is the first page`}),per_page:e.z.string().min(1).optional().default(`10`).transform(e=>parseInt(e,10)).openapi({description:`The number of items per page`}),include_totals:e.z.string().optional().default(`false`).transform(e=>e===`true`).openapi({description:`If the total number of items should be included in the response`}),sort:e.z.string().regex(/^.+:(-1|1)$/).optional().openapi({description:`A property that should have the format 'string:-1' or 'string:1'`}),q:e.z.string().optional().openapi({description:`A lucene query string used to filter the results`})}),e.z.object({start:e.z.number(),limit:e.z.number(),length:e.z.number(),total:e.z.number().optional()});var ue=e.z.object({email:e.z.string().optional(),email_verified:e.z.boolean().optional(),name:e.z.string().optional(),username:e.z.string().optional(),given_name:e.z.string().optional(),phone_number:e.z.string().optional(),phone_verified:e.z.boolean().optional(),family_name:e.z.string().optional()}).catchall(e.z.any()),de=e.z.object({connection:e.z.string(),user_id:e.z.string(),provider:e.z.string(),isSocial:e.z.boolean(),email:e.z.string().optional(),email_verified:e.z.boolean().optional(),phone_number:e.z.string().optional(),phone_verified:e.z.boolean().optional(),username:e.z.string().optional(),access_token:e.z.string().optional(),access_token_secret:e.z.string().optional(),refresh_token:e.z.string().optional(),profileData:ue.optional()}),fe=e.z.object({formatted:e.z.string().optional(),street_address:e.z.string().optional(),locality:e.z.string().optional(),region:e.z.string().optional(),postal_code:e.z.string().optional(),country:e.z.string().optional()}).optional(),pe=e.z.object({email:e.z.string().transform(e=>e.toLowerCase()).optional(),username:e.z.string().refine(e=>!e.includes(`@`),{message:`Usernames must not contain "@". Use the email field for email addresses.`}).optional(),phone_number:e.z.string().optional(),phone_verified:e.z.boolean().optional(),given_name:e.z.string().optional(),family_name:e.z.string().optional(),nickname:e.z.string().optional(),name:e.z.string().optional(),picture:e.z.string().optional(),locale:e.z.string().optional(),linked_to:e.z.string().optional(),profileData:e.z.string().optional(),user_id:e.z.string().optional(),app_metadata:e.z.any().default({}).optional(),user_metadata:e.z.any().default({}).optional(),middle_name:e.z.string().optional(),preferred_username:e.z.string().optional(),profile:e.z.string().optional(),website:e.z.string().optional(),gender:e.z.string().optional(),birthdate:e.z.string().optional(),zoneinfo:e.z.string().optional(),address:fe});pe.extend({email_verified:e.z.boolean().default(!1),verify_email:e.z.boolean().optional(),last_ip:e.z.string().optional(),last_login:e.z.string().optional(),user_id:e.z.string().optional(),provider:e.z.string().optional(),connection:e.z.string(),is_social:e.z.boolean().optional(),registration_completed_at:e.z.string().optional(),password:e.z.object({hash:e.z.string(),algorithm:e.z.string()}).optional()}).omit({password:!0}).extend(n.shape).extend({user_id:e.z.string(),provider:e.z.string(),is_social:e.z.boolean(),email:e.z.string().optional(),login_count:e.z.number().default(0),identities:e.z.array(de).optional()}).omit({registration_completed_at:!0}),pe.extend({login_count:e.z.number(),multifactor:e.z.array(e.z.string()).optional(),last_ip:e.z.string().optional(),last_login:e.z.string().optional(),user_id:e.z.string()}).catchall(e.z.any());var me=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,he=(e=21)=>{let t=``,n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=me[n[e]&63];return t},ge=e.z.object({client_id:e.z.string().optional().openapi({description:`ID of this client. Generated server-side if omitted (Auth0 behavior).`}),name:e.z.string().min(1).openapi({description:`Name of this client (min length: 1 character, does not allow < or >).`}),description:e.z.string().max(140).optional().openapi({description:`Free text description of this client (max length: 140 characters).`}),global:e.z.boolean().default(!1).openapi({description:`Whether this is your global 'All Applications' client representing legacy tenant settings (true) or a regular client (false).`}),client_secret:e.z.string().default(()=>he()).optional().openapi({description:`Client secret (which you must not make public).`}),app_type:e.z.enum([`native`,`spa`,`regular_web`,`non_interactive`,`resource_server`,`express_configuration`,`rms`,`box`,`cloudbees`,`concur`,`dropbox`,`mscrm`,`echosign`,`egnyte`,`newrelic`,`office365`,`salesforce`,`sentry`,`sharepoint`,`slack`,`springcm`,`zendesk`,`zoom`,`sso_integration`,`oag`]).default(`regular_web`).optional().openapi({description:`The type of application this client represents`}),logo_uri:e.z.string().url().optional().openapi({description:`URL of the logo to display for this client. Recommended size is 150x150 pixels.`}),is_first_party:e.z.boolean().default(!0).openapi({description:`Whether this client is a first party client (true) or not (false). First-party clients skip the consent screen; third-party clients require explicit user consent for non-basic scopes.`}),oidc_conformant:e.z.boolean().default(!0).openapi({description:`Whether this client conforms to strict OIDC specifications (true) or uses legacy features (false).`}),auth0_conformant:e.z.boolean().default(!0).openapi({description:`Whether this client follows Auth0-compatible behavior (true) or strict OIDC behavior (false). When true, profile/email claims are included in the ID token when scopes are requested. When false, these claims are only available from the userinfo endpoint (strict OIDC 5.4 compliance).`}),callbacks:e.z.array(e.z.string()).default([]).optional().openapi({description:`Comma-separated list of URLs whitelisted for Auth0 to use as a callback to the client after authentication.`}),allowed_origins:e.z.array(e.z.string()).default([]).optional().openapi({description:`Comma-separated list of URLs allowed to make requests from JavaScript to Auth0 API (typically used with CORS). By default, all your callback URLs will be allowed. This field allows you to enter other origins if necessary. You can also use wildcards at the subdomain level (e.g., https://*.contoso.com). Query strings and hash information are not taken into account when validating these URLs.`}),web_origins:e.z.array(e.z.string()).default([]).optional().openapi({description:`Comma-separated list of allowed origins for use with Cross-Origin Authentication, Device Flow, and web message response mode.`}),client_aliases:e.z.array(e.z.string()).default([]).optional().openapi({description:`List of audiences/realms for SAML protocol. Used by the wsfed addon.`}),allowed_clients:e.z.array(e.z.string()).default([]).optional().openapi({description:`List of allow clients and API ids that are allowed to make delegation requests. Empty means all all your clients are allowed.`}),connections:e.z.array(e.z.string()).default([]).optional().openapi({description:`List of connection IDs enabled for this client. The order determines the display order on the login page.`}),allowed_logout_urls:e.z.array(e.z.string()).default([]).optional().openapi({description:`Comma-separated list of URLs that are valid to redirect to after logout from Auth0. Wildcards are allowed for subdomains.`}),session_transfer:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`Native to Web SSO Configuration`}),oidc_logout:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`Configuration for OIDC backchannel logout`}),grant_types:e.z.array(e.z.string()).default([]).optional().openapi({description:`List of grant types supported for this application. Can include authorization_code, implicit, refresh_token, client_credentials, password, http://auth0.com/oauth/grant-type/password-realm, http://auth0.com/oauth/grant-type/mfa-oob, http://auth0.com/oauth/grant-type/mfa-otp, http://auth0.com/oauth/grant-type/mfa-recovery-code, urn:openid:params:grant-type:ciba, and urn:ietf:params:oauth:grant-type:device_code.`}),jwt_configuration:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`Configuration related to JWTs for the client.`}),signing_keys:e.z.array(e.z.record(e.z.string(),e.z.any())).default([]).optional().openapi({description:`Signing certificates associated with this client.`}),encryption_key:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`Encryption used for WsFed responses with this client.`}),sso:e.z.boolean().default(!1).openapi({description:`Applies only to SSO clients and determines whether Auth0 will handle Single Sign On (true) or whether the Identity Provider will (false).`}),sso_disabled:e.z.boolean().default(!1).openapi({description:`Whether Single Sign On is disabled for this client. When true, existing SSO sessions will not be reused and users must authenticate every time.`}),cross_origin_authentication:e.z.boolean().default(!1).openapi({description:`Whether this client can be used to make cross-origin authentication requests (true) or it is not allowed to make such requests (false).`}),cross_origin_loc:e.z.string().url().optional().openapi({description:`URL of the location in your site where the cross origin verification takes place for the cross-origin auth flow when performing Auth in your own domain instead of Auth0 hosted login page.`}),custom_login_page_on:e.z.boolean().default(!1).openapi({description:`Whether a custom login page is to be used (true) or the default provided login page (false).`}),custom_login_page:e.z.string().optional().openapi({description:`The content (HTML, CSS, JS) of the custom login page.`}),custom_login_page_preview:e.z.string().optional().openapi({description:`The content (HTML, CSS, JS) of the custom login page. (Used on Previews)`}),form_template:e.z.string().optional().openapi({description:`HTML form template to be used for WS-Federation.`}),addons:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`Addons enabled for this client and their associated configurations.`}),token_endpoint_auth_method:e.z.enum([`none`,`client_secret_post`,`client_secret_basic`,`client_secret_jwt`,`private_key_jwt`]).default(`client_secret_basic`).optional().openapi({description:"Defines the requested authentication method for the token endpoint. `none` (public client), `client_secret_post` / `client_secret_basic` (HTTP POST / Basic), `client_secret_jwt` (RFC 7523 HMAC assertion using client_secret), or `private_key_jwt` (RFC 7523 asymmetric assertion verified against the client's `jwks` / `jwks_uri`)."}),client_metadata:e.z.record(e.z.string(),e.z.string().max(255)).default({}).optional().openapi({description:`Metadata associated with the client, in the form of an object with string values (max 255 chars). Maximum of 10 metadata properties allowed. Field names (max 255 chars) are alphanumeric and may only include the following special characters: :,-+=_*?"/()<>@ [Tab][Space]`}),hide_sign_up_disabled_error:e.z.boolean().default(!1).optional().openapi({description:"Enumeration-safe variant of the connection-level `disable_signup` flag. When a signup is blocked by the password connection and this is true, the identifier screen does not reveal that an email is unknown — it advances to the OTP/password challenge as if the account existed and fails at credential check. Mitigates email enumeration at the cost of UX: users without an account see a generic credential failure instead of an explicit signup-disabled message."}),mobile:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`Additional configuration for native mobile apps.`}),initiate_login_uri:e.z.string().url().optional().openapi({description:`Initiate login uri, must be https`}),native_social_login:e.z.record(e.z.string(),e.z.any()).default({}).optional(),refresh_token:e.z.object({rotation_type:e.z.enum([`rotating`,`non-rotating`]).optional().openapi({description:`Whether refresh tokens for this client are rotated on every exchange (Auth0 'rotating' behavior) or kept stable (legacy non-rotating). Defaults to 'non-rotating' when unset.`}),leeway:e.z.number().int().min(0).max(600).optional().openapi({description:`Seconds after a parent token's first rotation during which presenting it again still mints a fresh sibling child instead of triggering reuse-detection. Defaults to 30s when unset.`}),expiration_type:e.z.enum([`expiring`,`non-expiring`]).optional().openapi({description:`Auth0-compatible: whether refresh tokens expire.`}),token_lifetime:e.z.number().int().min(0).optional().openapi({description:`Auth0-compatible: refresh-token absolute lifetime in seconds.`}),infinite_token_lifetime:e.z.boolean().optional().openapi({description:`Auth0-compatible: when true, refresh tokens have no absolute expiry.`}),idle_token_lifetime:e.z.number().int().min(0).optional().openapi({description:`Auth0-compatible: refresh-token idle (sliding) lifetime in seconds.`}),infinite_idle_token_lifetime:e.z.boolean().optional().openapi({description:`Auth0-compatible: when true, refresh tokens have no idle expiry.`})}).default({}).optional().openapi({description:`Refresh token configuration`}),default_organization:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`Defines the default Organization ID and flows`}),organization_usage:e.z.enum([`deny`,`allow`,`require`]).default(`deny`).optional().openapi({description:`Defines how to proceed during an authentication transaction with regards an organization. Can be deny (default), allow or require.`}),organization_require_behavior:e.z.enum([`no_prompt`,`pre_login_prompt`,`post_login_prompt`]).default(`no_prompt`).optional().openapi({description:`Defines how to proceed during an authentication transaction when client.organization_usage: 'require'. Can be no_prompt (default), pre_login_prompt or post_login_prompt. post_login_prompt requires oidc_conformant: true.`}),client_authentication_methods:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`Defines client authentication methods.`}),require_pushed_authorization_requests:e.z.boolean().default(!1).openapi({description:`Makes the use of Pushed Authorization Requests mandatory for this client`}),require_proof_of_possession:e.z.boolean().default(!1).openapi({description:`Makes the use of Proof-of-Possession mandatory for this client`}),signed_request_object:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`JWT-secured Authorization Requests (JAR) settings.`}),compliance_level:e.z.enum([`none`,`fapi1_adv_pkj_par`,`fapi1_adv_mtls_par`,`fapi2_sp_pkj_mtls`,`fapi2_sp_mtls_mtls`]).optional().openapi({description:`Defines the compliance level for this client, which may restrict it's capabilities`}),par_request_expiry:e.z.number().optional().openapi({description:`Specifies how long, in seconds, a Pushed Authorization Request URI remains valid`}),token_quota:e.z.record(e.z.string(),e.z.any()).default({}).optional(),owner_user_id:e.z.string().optional().openapi({description:`User ID of the consenting user when this client was created via IAT-gated Dynamic Client Registration. NULL for clients created via the Management API or open DCR.`}),registration_type:e.z.enum([`manual`,`open_dcr`,`iat_dcr`]).optional().openapi({description:"Provenance of this client. `manual` = Management API; `open_dcr` = RFC 7591 without IAT; `iat_dcr` = RFC 7591 with an Initial Access Token."}),registration_metadata:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:"Arbitrary metadata captured at Dynamic Client Registration time that isn't a first-class client field (e.g. integration_type, domain). Also stores `iat_constraints` for clients created via IAT so RFC 7592 PUT can enforce field immutability."}),user_linking_mode:e.z.enum([`builtin`,`off`]).optional().openapi({description:"Per-client override for the built-in email-based user-linking path. `builtin` runs the legacy in-process linking at user creation/email update. `off` disables the legacy path; linking only happens if the tenant has enabled the `account-linking` template hook. When unset, the service-level `userLinkingMode` default applies."})});e.z.object({created_at:e.z.string(),updated_at:e.z.string()}).extend(ge.shape).extend({client_id:e.z.string()});var _e=e.z.object({client_id:e.z.string().min(1).openapi({description:`ID of the client.`}),audience:e.z.string().min(1).openapi({description:`The audience (API identifier) of this client grant.`}),scope:e.z.array(e.z.string()).optional().openapi({description:`Scopes allowed for this client grant.`}),organization_usage:e.z.enum([`deny`,`allow`,`require`]).optional().openapi({description:`Defines whether organizations can be used with client credentials exchanges for this grant.`}),allow_any_organization:e.z.boolean().optional().openapi({description:`If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations.`}),is_system:e.z.boolean().optional().openapi({description:`If enabled, this grant is a special grant created by Auth0. It cannot be modified or deleted directly.`}),subject_type:e.z.enum([`client`,`user`]).optional().openapi({description:`The type of application access the client grant allows. Use of this field is subject to the applicable Free Trial terms in Okta's Master Subscription Agreement.`}),authorization_details_types:e.z.array(e.z.string()).optional().openapi({description:`Types of authorization_details allowed for this client grant. Use of this field is subject to the applicable Free Trial terms in Okta's Master Subscription Agreement.`})}),ve=e.z.object({id:e.z.string().openapi({description:`ID of the client grant.`})}).extend(_e.shape).extend({created_at:e.z.string().optional(),updated_at:e.z.string().optional()});e.z.array(ve);var ye=e.z.enum([`iat`,`rat`]),be=e.z.object({id:e.z.string(),token_hash:e.z.string(),type:ye,client_id:e.z.string().optional(),sub:e.z.string().optional(),constraints:e.z.record(e.z.string(),e.z.unknown()).optional(),single_use:e.z.boolean().default(!1),expires_at:e.z.string().optional()});e.z.object({created_at:e.z.string(),used_at:e.z.string().optional(),revoked_at:e.z.string().optional()}).extend(be.shape);var g=e.z.object({x:e.z.number(),y:e.z.number()}),xe=function(e){return e.RICH_TEXT=`RICH_TEXT`,e.NEXT_BUTTON=`NEXT_BUTTON`,e.BACK_BUTTON=`BACK_BUTTON`,e.SUBMIT_BUTTON=`SUBMIT_BUTTON`,e.DIVIDER=`DIVIDER`,e.TEXT=`TEXT`,e.EMAIL=`EMAIL`,e.PASSWORD=`PASSWORD`,e.NUMBER=`NUMBER`,e.PHONE=`PHONE`,e.DATE=`DATE`,e.CHECKBOX=`CHECKBOX`,e.RADIO=`RADIO`,e.SELECT=`SELECT`,e.HIDDEN=`HIDDEN`,e.LEGAL=`LEGAL`,e}({}),Se=function(e){return e.BLOCK=`BLOCK`,e.FIELD=`FIELD`,e}({}),_=e.z.object({id:e.z.string(),category:e.z.nativeEnum(Se),type:e.z.nativeEnum(xe)}),Ce=_.extend({category:e.z.literal(`BLOCK`),type:e.z.literal(`RICH_TEXT`),config:e.z.object({content:e.z.string()}).passthrough()}),we=_.extend({category:e.z.literal(`BLOCK`),type:e.z.union([e.z.literal(`NEXT_BUTTON`),e.z.literal(`BACK_BUTTON`),e.z.literal(`SUBMIT_BUTTON`)]),config:e.z.object({text:e.z.string()}).passthrough()}),Te=_.extend({category:e.z.literal(`FIELD`),type:e.z.literal(`LEGAL`),required:e.z.boolean().optional(),sensitive:e.z.boolean().optional(),config:e.z.object({text:e.z.string()}).passthrough()}),Ee=_.extend({category:e.z.literal(`FIELD`),type:e.z.union([e.z.literal(`TEXT`),e.z.literal(`EMAIL`),e.z.literal(`PASSWORD`),e.z.literal(`NUMBER`),e.z.literal(`PHONE`),e.z.literal(`DATE`),e.z.literal(`CHECKBOX`),e.z.literal(`RADIO`),e.z.literal(`SELECT`),e.z.literal(`HIDDEN`)]),required:e.z.boolean().optional(),sensitive:e.z.boolean().optional(),config:e.z.object({label:e.z.string().optional(),placeholder:e.z.string().optional()}).passthrough()}),De=e.z.object({id:e.z.string(),category:e.z.string(),type:e.z.string()}).passthrough(),Oe=e.z.union([Ce,we,Te,Ee,De]),ke=e.z.object({id:e.z.string(),type:e.z.literal(`STEP`),coordinates:g,alias:e.z.string().optional(),config:e.z.object({components:e.z.array(Oe),next_node:e.z.string()}).passthrough()}),Ae=e.z.object({id:e.z.string(),type:e.z.literal(`FLOW`),coordinates:g,alias:e.z.string().optional(),config:e.z.object({flow_id:e.z.string(),next_node:e.z.string()})}),je=e.z.object({id:e.z.string(),type:e.z.literal(`ACTION`),coordinates:g,alias:e.z.string().optional(),config:e.z.object({action_type:e.z.enum([`REDIRECT`]).openapi({description:`The type of action to perform`}),target:e.z.enum([`change-email`,`account`,`custom`]).openapi({description:`The predefined target to redirect to`}),custom_url:e.z.string().optional().openapi({description:`Custom URL when target is 'custom'`}),next_node:e.z.string().openapi({description:`The next node to navigate to after action (for non-redirect actions)`})}).passthrough()}),Me=e.z.object({id:e.z.string(),type:e.z.string(),coordinates:g}).passthrough(),Ne=e.z.union([ke,Ae,je,Me]),Pe=e.z.object({next_node:e.z.string(),coordinates:g}).passthrough(),Fe=e.z.object({resume_flow:e.z.boolean().optional(),coordinates:g}).passthrough();e.z.object({id:e.z.string(),name:e.z.string(),languages:e.z.object({primary:e.z.string()}).passthrough(),nodes:e.z.array(Ne),start:Pe,ending:Fe,created_at:e.z.string(),updated_at:e.z.string(),links:e.z.object({sdkSrc:e.z.string().optional(),sdk_src:e.z.string().optional()}).passthrough()}).passthrough().omit({id:!0,created_at:!0,updated_at:!0});var Ie=function(e){return e.TOKEN=`token`,e.ID_TOKEN=`id_token`,e.TOKEN_ID_TOKEN=`id_token token`,e.CODE=`code`,e.CODE_ID_TOKEN=`code id_token`,e.CODE_TOKEN=`code token`,e.CODE_ID_TOKEN_TOKEN=`code id_token token`,e}({}),Le=function(e){return e.QUERY=`query`,e.FRAGMENT=`fragment`,e.FORM_POST=`form_post`,e.WEB_MESSAGE=`web_message`,e.SAML_POST=`saml_post`,e}({}),Re=function(e){return e.S256=`S256`,e.Plain=`plain`,e}({}),ze=e.z.union([e.z.null(),e.z.object({essential:e.z.boolean().optional(),value:e.z.unknown().optional(),values:e.z.array(e.z.unknown()).optional()})]).nullable(),Be=e.z.object({userinfo:e.z.record(e.z.string(),ze).optional(),id_token:e.z.record(e.z.string(),ze).optional()}),Ve=e.z.object({client_id:e.z.string(),act_as:e.z.string().optional(),response_type:e.z.nativeEnum(Ie).optional(),response_mode:e.z.nativeEnum(Le).optional(),redirect_uri:e.z.string().optional(),audience:e.z.string().optional(),organization:e.z.string().optional(),state:e.z.string().optional(),nonce:e.z.string().optional(),scope:e.z.string().optional(),prompt:e.z.string().optional(),code_challenge_method:e.z.nativeEnum(Re).optional(),code_challenge:e.z.string().optional(),username:e.z.string().optional(),ui_locales:e.z.string().optional(),max_age:e.z.number().optional(),acr_values:e.z.string().optional(),claims:Be.optional(),vendor_id:e.z.string().optional()});e.z.object({colors:e.z.object({primary:e.z.string(),page_background:e.z.union([e.z.string(),e.z.object({type:e.z.string().optional(),start:e.z.string().optional(),end:e.z.string().optional(),angle_deg:e.z.number().optional()})]).optional()}).optional(),logo_url:e.z.string().optional(),favicon_url:e.z.string().optional(),powered_by_logo_url:e.z.string().optional(),font:e.z.object({url:e.z.string()}).optional(),dark_mode:e.z.enum([`dark`,`light`,`auto`]).optional()});var He=e.z.enum([`password_reset`,`email_verification`,`otp`,`mfa_otp`,`authorization_code`,`oauth2_state`,`ticket`]);e.z.object({code_id:e.z.string().openapi({description:`The code that will be used in for instance an email verification flow`}),login_id:e.z.string().openapi({description:`The id of the login session that the code is connected to`}),connection_id:e.z.string().optional().openapi({description:`The connection that the code is connected to`}),code_type:He,code_verifier:e.z.string().optional().openapi({description:`The code verifier used in PKCE in outbound flows`}),code_challenge:e.z.string().optional().openapi({description:`The code challenge used in PKCE in outbound flows`}),code_challenge_method:e.z.enum([`plain`,`S256`]).optional().openapi({description:`The code challenge method used in PKCE in outbound flows`}),redirect_uri:e.z.string().optional().openapi({description:`The redirect URI associated with the code`}),otp:e.z.string().optional().openapi({description:`The one-time password value for OTP-based flows`}),nonce:e.z.string().optional().openapi({description:`The nonce value used for security in OIDC flows`}),state:e.z.string().optional().openapi({description:`The state parameter used for CSRF protection in OAuth flows`}),expires_at:e.z.string(),used_at:e.z.string().optional(),user_id:e.z.string().optional()}).extend({created_at:e.z.string()});var Ue=e.z.object({kid:e.z.string().optional(),team_id:e.z.string().optional(),realms:e.z.string().optional(),authentication_method:e.z.string().optional(),client_id:e.z.string().optional(),client_secret:e.z.string().optional(),app_secret:e.z.string().optional(),scope:e.z.string().optional(),authorization_endpoint:e.z.string().optional(),token_endpoint:e.z.string().optional(),userinfo_endpoint:e.z.string().optional(),jwks_uri:e.z.string().optional(),discovery_url:e.z.string().optional(),issuer:e.z.string().optional(),token_endpoint_auth_method:e.z.enum([`client_secret_basic`,`client_secret_post`]).optional(),provider:e.z.string().optional(),from:e.z.string().optional(),twilio_sid:e.z.string().optional(),twilio_token:e.z.string().optional(),icon_url:e.z.string().optional(),domain_aliases:e.z.array(e.z.string()).optional(),callback_url:e.z.string().url().optional(),passwordPolicy:e.z.enum([`none`,`low`,`fair`,`good`,`excellent`]).optional(),password_complexity_options:e.z.object({min_length:e.z.number().optional()}).optional(),password_history:e.z.object({enable:e.z.boolean().optional(),size:e.z.number().optional()}).optional(),password_no_personal_info:e.z.object({enable:e.z.boolean().optional()}).optional(),password_dictionary:e.z.object({enable:e.z.boolean().optional(),dictionary:e.z.array(e.z.string()).optional()}).optional(),disable_signup:e.z.boolean().optional(),brute_force_protection:e.z.boolean().optional(),import_mode:e.z.boolean().optional(),configuration:e.z.object({token_endpoint:e.z.string().optional(),userinfo_endpoint:e.z.string().optional(),client_id:e.z.string().optional(),client_secret:e.z.string().optional(),realm:e.z.string().optional()}).optional(),attributes:e.z.object({email:e.z.object({identifier:e.z.object({active:e.z.boolean().optional()}).optional(),signup:e.z.object({status:e.z.enum([`required`,`optional`,`disabled`]).optional(),verification:e.z.object({active:e.z.boolean().optional()}).optional()}).optional(),validation:e.z.object({allowed:e.z.boolean().optional()}).optional(),unique:e.z.boolean().optional(),profile_required:e.z.boolean().optional(),verification_method:e.z.enum([`link`,`code`]).optional()}).optional(),username:e.z.object({identifier:e.z.object({active:e.z.boolean().optional()}).optional(),signup:e.z.object({status:e.z.enum([`required`,`optional`,`disabled`]).optional()}).optional(),validation:e.z.object({max_length:e.z.number().optional(),min_length:e.z.number().optional(),allowed_types:e.z.object({email:e.z.boolean().optional(),phone_number:e.z.boolean().optional()}).optional()}).optional(),profile_required:e.z.boolean().optional()}).optional(),phone_number:e.z.object({identifier:e.z.object({active:e.z.boolean().optional()}).optional(),signup:e.z.object({status:e.z.enum([`required`,`optional`,`disabled`]).optional()}).optional()}).optional()}).optional(),authentication_methods:e.z.object({password:e.z.object({enabled:e.z.boolean().optional()}).optional(),passkey:e.z.object({enabled:e.z.boolean().optional()}).optional()}).optional(),passkey_options:e.z.object({challenge_ui:e.z.enum([`both`,`autofill`,`button`]).optional(),local_enrollment_enabled:e.z.boolean().optional(),progressive_enrollment_enabled:e.z.boolean().optional()}).optional(),requires_username:e.z.boolean().optional(),validation:e.z.object({username:e.z.object({min:e.z.number().optional(),max:e.z.number().optional()}).optional()}).optional(),set_user_root_attributes:e.z.enum([`on_each_login`,`on_first_login`,`never_on_login`]).optional()});function v(e){if(e!==null){if(Array.isArray(e))return e.filter(e=>e!==null).map(v);if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))r!==null&&(t[n]=v(r));return t}return e}}var We=e.z.object({id:e.z.string().optional(),name:e.z.string(),display_name:e.z.string().optional(),strategy:e.z.string(),options:e.z.preprocess(e=>e===null?{}:v(e),Ue).default({}),enabled_clients:e.z.array(e.z.string()).default([]).optional(),response_type:e.z.custom().optional(),response_mode:e.z.custom().optional(),is_domain_connection:e.z.boolean().optional(),show_as_button:e.z.boolean().optional(),metadata:e.z.record(e.z.string(),e.z.any()).optional(),is_system:e.z.boolean().optional()});e.z.object({id:e.z.string(),created_at:e.z.string().transform(e=>e===null?``:e),updated_at:e.z.string().transform(e=>e===null?``:e)}).extend(We.shape);var Ge=e.z.object({domain:e.z.string(),custom_domain_id:e.z.string().optional(),type:e.z.enum([`auth0_managed_certs`,`self_managed_certs`]),verification_method:e.z.enum([`txt`]).optional(),tls_policy:e.z.enum([`recommended`]).optional(),custom_client_ip_header:e.z.enum([`true-client-ip`,`cf-connecting-ip`,`x-forwarded-for`,`x-azure-clientip`,`null`]).optional(),domain_metadata:e.z.record(e.z.string(),e.z.string().max(255)).optional()}),Ke=e.z.discriminatedUnion(`name`,[e.z.object({name:e.z.literal(`txt`),record:e.z.string(),domain:e.z.string()}),e.z.object({name:e.z.literal(`http`),http_body:e.z.string(),http_url:e.z.string()})]),qe=Ge.extend({custom_domain_id:e.z.string(),primary:e.z.boolean(),status:e.z.enum([`disabled`,`pending`,`pending_verification`,`ready`]),origin_domain_name:e.z.string().optional(),verification:e.z.object({methods:e.z.array(Ke)}).optional(),tls_policy:e.z.string().optional()});Ge.pick({tls_policy:!0,custom_client_ip_header:!0,domain_metadata:!0}).strict(),qe.extend({tenant_id:e.z.string()}),e.z.object({certificate:e.z.string().regex(/^-----BEGIN CERTIFICATE-----[\s\S]+-----END CERTIFICATE-----\s*$/,`must be PEM-encoded; include the full certificate chain in leaf-first order`),private_key:e.z.string().regex(/-----BEGIN (RSA |EC |ENCRYPTED )?PRIVATE KEY-----[\s\S]+-----END \1PRIVATE KEY-----\s*$/,`must be a PEM-encoded private key`)});var y=e.z.object({id:e.z.string(),order:e.z.number().optional(),visible:e.z.boolean().optional().default(!0)}),b=y.extend({category:e.z.literal(`BLOCK`).optional()}),Je=b.extend({type:e.z.literal(`DIVIDER`),config:e.z.object({text:e.z.string().optional()}).optional()}),Ye=b.extend({type:e.z.literal(`HTML`),config:e.z.object({content:e.z.string().optional()}).optional()}),Xe=b.extend({type:e.z.literal(`IMAGE`),config:e.z.object({src:e.z.string().optional(),alt:e.z.string().optional(),width:e.z.number().optional(),height:e.z.number().optional()}).optional()}),Ze=b.extend({type:e.z.literal(`JUMP_BUTTON`),config:e.z.object({text:e.z.string().optional(),target_step:e.z.string().optional()})}),Qe=b.extend({type:e.z.literal(`RESEND_BUTTON`),config:e.z.object({text:e.z.string().optional(),resend_action:e.z.string().optional()})}),$e=b.extend({type:e.z.literal(`NEXT_BUTTON`),config:e.z.object({text:e.z.string().optional()})}),et=b.extend({type:e.z.literal(`PREVIOUS_BUTTON`),config:e.z.object({text:e.z.string().optional()})}),tt=b.extend({type:e.z.literal(`RICH_TEXT`),config:e.z.object({content:e.z.string().optional()}).optional()}),x=y.extend({category:e.z.literal(`WIDGET`).optional(),label:e.z.string().min(1).optional(),hint:e.z.string().min(1).max(500).optional(),required:e.z.boolean().optional(),sensitive:e.z.boolean().optional()}),nt=x.extend({type:e.z.literal(`AUTH0_VERIFIABLE_CREDENTIALS`),config:e.z.object({credential_type:e.z.string().optional()})}),rt=x.extend({type:e.z.literal(`GMAPS_ADDRESS`),config:e.z.object({api_key:e.z.string().optional()})}),it=x.extend({type:e.z.literal(`RECAPTCHA`),config:e.z.object({site_key:e.z.string().optional()})}),S=y.extend({category:e.z.literal(`FIELD`).optional(),label:e.z.string().min(1).optional(),hint:e.z.string().min(1).max(500).optional(),messages:e.z.array(e.z.object({id:e.z.number().optional(),text:e.z.string(),type:e.z.enum([`info`,`error`,`success`,`warning`])})).optional(),required:e.z.boolean().optional(),sensitive:e.z.boolean().optional()}),at=S.extend({type:e.z.literal(`BOOLEAN`),config:e.z.object({default_value:e.z.boolean().optional()}).optional()}),ot=S.extend({type:e.z.literal(`CARDS`),config:e.z.object({options:e.z.array(e.z.object({value:e.z.string(),label:e.z.string(),description:e.z.string().optional(),image:e.z.string().optional()})).optional(),multi_select:e.z.boolean().optional()}).optional()}),st=S.extend({type:e.z.literal(`CHOICE`),config:e.z.object({options:e.z.array(e.z.object({value:e.z.string(),label:e.z.string()})).optional(),display:e.z.enum([`radio`,`checkbox`]).optional(),multiple:e.z.boolean().optional(),default_value:e.z.union([e.z.string(),e.z.array(e.z.string())]).optional()}).optional()}),ct=S.extend({type:e.z.literal(`CUSTOM`),config:e.z.object({component:e.z.string().optional(),props:e.z.record(e.z.string(),e.z.any()).optional(),schema:e.z.record(e.z.string(),e.z.any()).optional(),code:e.z.string().optional()})}),lt=S.extend({type:e.z.literal(`DATE`),config:e.z.object({format:e.z.string().optional(),min:e.z.string().optional(),max:e.z.string().optional(),default_value:e.z.string().optional()}).optional()}),ut=S.extend({type:e.z.literal(`DROPDOWN`),config:e.z.object({options:e.z.array(e.z.object({value:e.z.string(),label:e.z.string()})).optional(),placeholder:e.z.string().optional(),searchable:e.z.boolean().optional(),multiple:e.z.boolean().optional(),default_value:e.z.union([e.z.string(),e.z.array(e.z.string())]).optional()}).optional()}),dt=S.extend({type:e.z.literal(`EMAIL`),config:e.z.object({placeholder:e.z.string().optional(),default_value:e.z.string().optional()}).optional()}),ft=S.extend({type:e.z.literal(`FILE`),config:e.z.object({accept:e.z.string().optional(),max_size:e.z.number().optional(),multiple:e.z.boolean().optional()}).optional()}),pt=S.extend({type:e.z.literal(`LEGAL`),config:e.z.object({text:e.z.string(),html:e.z.boolean().optional()}).optional()}),mt=S.extend({type:e.z.literal(`NUMBER`),config:e.z.object({placeholder:e.z.string().optional(),min:e.z.number().optional(),max:e.z.number().optional(),step:e.z.number().optional(),default_value:e.z.string().optional()}).optional()}),ht=S.extend({type:e.z.literal(`PASSWORD`),config:e.z.object({placeholder:e.z.string().optional(),min_length:e.z.number().optional(),show_toggle:e.z.boolean().optional(),forgot_password_link:e.z.string().optional(),default_value:e.z.string().optional()}).optional()}),gt=S.extend({type:e.z.literal(`PAYMENT`),config:e.z.object({provider:e.z.string().optional(),currency:e.z.string().optional()}).optional()}),_t=S.extend({type:e.z.literal(`SOCIAL`),config:e.z.object({providers:e.z.array(e.z.string()).optional(),provider_details:e.z.array(e.z.object({name:e.z.string(),strategy:e.z.string().optional(),display_name:e.z.string().optional(),icon_url:e.z.string().optional(),href:e.z.string().optional()})).optional()}).optional()}),vt=S.extend({type:e.z.literal(`TEL`),config:e.z.object({placeholder:e.z.string().optional(),default_country:e.z.string().optional(),default_value:e.z.string().optional(),allow_email:e.z.boolean().optional()}).optional()}),yt=S.extend({type:e.z.literal(`TEXT`),config:e.z.object({placeholder:e.z.string().optional(),multiline:e.z.boolean().optional(),max_length:e.z.number().optional(),default_value:e.z.string().optional()}).optional()}),bt=S.extend({type:e.z.literal(`COUNTRY`),config:e.z.object({placeholder:e.z.string().optional(),default_value:e.z.string().optional()}).optional()}),xt=S.extend({type:e.z.literal(`URL`),config:e.z.object({placeholder:e.z.string().optional(),default_value:e.z.string().optional()}).optional()}),St=e.z.discriminatedUnion(`type`,[Je,Ye,Xe,Ze,Qe,$e,et,tt]),Ct=e.z.discriminatedUnion(`type`,[nt,rt,it]),wt=e.z.discriminatedUnion(`type`,[at,ot,st,bt,ct,lt,ut,dt,ft,pt,mt,ht,gt,_t,vt,yt,xt]),Tt=e.z.union([St,Ct,wt]);new Set([`BOOLEAN`,`CARDS`,`CHOICE`,`COUNTRY`,`DATE`,`DROPDOWN`,`EMAIL`,`LEGAL`,`NUMBER`,`PASSWORD`,`TEL`,`TEXT`,`URL`]),e.z.object({id:e.z.string(),type:e.z.literal(`submit`),label:e.z.string(),className:e.z.string().optional(),disabled:e.z.boolean().optional().default(!1),order:e.z.number().optional(),visible:e.z.boolean().optional().default(!0),customizations:e.z.record(e.z.string(),e.z.any()).optional()});var C=e.z.object({x:e.z.number(),y:e.z.number()}),Et=e.z.object({id:e.z.string(),type:e.z.literal(`FLOW`),coordinates:C,alias:e.z.string().min(1).max(150).optional(),config:e.z.object({flow_id:e.z.string().max(30),next_node:e.z.string().optional()})}),Dt=e.z.object({id:e.z.string(),type:e.z.literal(`ROUTER`),coordinates:C,alias:e.z.string().min(1).max(150),config:e.z.object({rules:e.z.array(e.z.object({id:e.z.string(),alias:e.z.string().min(1).max(150).optional(),condition:e.z.any(),next_node:e.z.string()})),fallback:e.z.string()})}),Ot=e.z.object({id:e.z.string(),type:e.z.literal(`STEP`),coordinates:C,alias:e.z.string().min(1).max(150).optional(),config:e.z.object({components:e.z.array(Tt),next_node:e.z.string().optional()})}),kt=e.z.discriminatedUnion(`type`,[Et,Dt,Ot]),At=e.z.object({name:e.z.string().openapi({description:`The name of the form`}),messages:e.z.object({errors:e.z.record(e.z.string(),e.z.any()).optional(),custom:e.z.record(e.z.string(),e.z.any()).optional()}).optional(),languages:e.z.object({primary:e.z.string().optional(),default:e.z.string().optional()}).optional(),translations:e.z.record(e.z.string(),e.z.any()).optional(),nodes:e.z.array(kt).optional(),start:e.z.object({hidden_fields:e.z.array(e.z.object({key:e.z.string(),value:e.z.string()})).optional(),next_node:e.z.string().optional(),coordinates:C.optional()}).optional(),ending:e.z.object({redirection:e.z.object({delay:e.z.number().optional(),target:e.z.string().optional()}).optional(),after_submit:e.z.object({flow_id:e.z.string().optional()}).optional(),coordinates:C.optional(),resume_flow:e.z.boolean().optional()}).optional(),style:e.z.object({css:e.z.string().optional()}).optional(),links:e.z.object({sdkSrc:e.z.string().optional(),sdk_src:e.z.string().optional()}).optional()}).openapi({description:`Schema for flow-based forms (matches Auth0 Forms structure)`});n.extend(At.shape).extend({id:e.z.string()});var jt=e.z.object({id:e.z.number().optional(),text:e.z.string(),type:e.z.enum([`info`,`error`,`success`,`warning`])}),Mt=e.z.object({id:e.z.string().optional(),text:e.z.string(),href:e.z.string(),linkText:e.z.string().optional()});e.z.object({name:e.z.string().optional(),action:e.z.string(),method:e.z.enum([`POST`,`GET`]),title:e.z.string().optional(),description:e.z.string().optional(),components:e.z.array(Tt),messages:e.z.array(jt).optional(),links:e.z.array(Mt).optional(),footer:e.z.string().optional()});var w=e.z.enum([`pre-user-registration`,`post-user-registration`,`post-user-login`,`post-user-update`,`validate-registration-username`,`pre-user-deletion`,`post-user-deletion`]),T=e.z.enum([`pre-user-registration`,`post-user-registration`,`post-user-login`,`validate-registration-username`,`pre-user-deletion`,`post-user-deletion`]),E=e.z.enum([`post-user-login`,`post-user-registration`,`post-user-update`,`credentials-exchange`]),D=e.z.enum([`post-user-login`,`credentials-exchange`,`pre-user-registration`,`post-user-registration`]),O=e.z.enum([`ensure-username`,`set-preferred-username`,`account-linking`]),k={enabled:e.z.boolean().default(!1),synchronous:e.z.boolean().default(!1),priority:e.z.number().optional(),hook_id:e.z.string().optional(),metadata:e.z.record(e.z.string(),e.z.unknown()).optional()},Nt=e.z.object({...k,trigger_id:w,url:e.z.string()}),Pt=e.z.object({...k,trigger_id:T,form_id:e.z.string()}),Ft=e.z.object({...k,trigger_id:E,template_id:O}),It=e.z.object({...k,trigger_id:D,code_id:e.z.string()});e.z.union([Nt,Pt,Ft,It]);var Lt=e.z.object({...k,trigger_id:w}).extend(n.shape).extend({hook_id:e.z.string(),url:e.z.string()}),Rt=e.z.object({...k,trigger_id:T}).extend(n.shape).extend({hook_id:e.z.string(),form_id:e.z.string()}),zt=e.z.object({...k,trigger_id:E}).extend(n.shape).extend({hook_id:e.z.string(),template_id:O}),Bt=e.z.object({...k,trigger_id:D}).extend(n.shape).extend({hook_id:e.z.string(),code_id:e.z.string()});e.z.union([Lt,Rt,zt,Bt]),e.z.object({code:e.z.string().max(1e5),secrets:e.z.record(e.z.string(),e.z.string()).optional()}).extend({id:e.z.string(),tenant_id:e.z.string()}).extend(n.shape);var Vt=e.z.object({name:e.z.string().optional()}),Ht=e.z.object({email:e.z.string().optional()}),Ut=e.z.object({id:e.z.string().optional(),organization_id:e.z.string().max(50),inviter:Vt,invitee:Ht,invitation_url:e.z.string().url(),client_id:e.z.string(),connection_id:e.z.string().optional(),app_metadata:e.z.record(e.z.string(),e.z.any()).default({}).optional(),user_metadata:e.z.record(e.z.string(),e.z.any()).default({}).optional(),ttl_sec:e.z.number().int().max(2592e3).default(604800).optional(),roles:e.z.array(e.z.string()).default([]).optional(),send_invitation_email:e.z.boolean().default(!0).optional()});e.z.object({id:e.z.string(),organization_id:e.z.string().max(50),created_at:e.z.string().datetime(),expires_at:e.z.string().datetime(),ticket_id:e.z.string().optional()}).extend(Ut.omit({id:!0}).shape);var Wt=e.z.object({alg:e.z.enum([`RS256`,`RS384`,`RS512`,`ES256`,`ES384`,`ES512`,`HS256`,`HS384`,`HS512`]),kid:e.z.string().optional(),kty:e.z.enum([`RSA`,`EC`,`oct`]),use:e.z.enum([`sig`,`enc`]).optional(),n:e.z.string().optional(),e:e.z.string().optional(),crv:e.z.string().optional(),x:e.z.string().optional(),y:e.z.string().optional(),x5t:e.z.string().optional(),x5c:e.z.array(e.z.string()).optional()}).superRefine((t,n)=>{if(t.kty===`RSA`)for(let r of[`n`,`e`])t[r]||n.addIssue({code:e.z.ZodIssueCode.custom,path:[r],message:`RSA JWK is missing required member '${r}'`});else if(t.kty===`EC`)for(let r of[`crv`,`x`,`y`])t[r]||n.addIssue({code:e.z.ZodIssueCode.custom,path:[r],message:`EC JWK is missing required member '${r}'`})});e.z.object({keys:e.z.array(Wt)}),e.z.object({issuer:e.z.string(),authorization_endpoint:e.z.string(),token_endpoint:e.z.string(),userinfo_endpoint:e.z.string(),jwks_uri:e.z.string(),registration_endpoint:e.z.string().optional(),revocation_endpoint:e.z.string(),end_session_endpoint:e.z.string().optional(),scopes_supported:e.z.array(e.z.string()),response_types_supported:e.z.array(e.z.string()),grant_types_supported:e.z.array(e.z.string()).optional(),code_challenge_methods_supported:e.z.array(e.z.string()),response_modes_supported:e.z.array(e.z.string()),subject_types_supported:e.z.array(e.z.string()),id_token_signing_alg_values_supported:e.z.array(e.z.string()),token_endpoint_auth_methods_supported:e.z.array(e.z.string()),claims_supported:e.z.array(e.z.string()),request_uri_parameter_supported:e.z.boolean(),request_parameter_supported:e.z.boolean(),claims_parameter_supported:e.z.boolean().optional(),request_object_signing_alg_values_supported:e.z.array(e.z.string()).optional(),token_endpoint_auth_signing_alg_values_supported:e.z.array(e.z.string()),client_id_metadata_document_supported:e.z.boolean().optional()});var Gt=function(e){return e.PENDING=`pending`,e.AUTHENTICATED=`authenticated`,e.AWAITING_EMAIL_VERIFICATION=`awaiting_email_verification`,e.AWAITING_MFA=`awaiting_mfa`,e.AWAITING_HOOK=`awaiting_hook`,e.AWAITING_CONTINUATION=`awaiting_continuation`,e.AWAITING_CONSENT=`awaiting_consent`,e.COMPLETED=`completed`,e.FAILED=`failed`,e.EXPIRED=`expired`,e}({}),Kt=e.z.nativeEnum(Gt),qt=e.z.object({strategy:e.z.string(),strategy_type:e.z.string()});e.z.object({csrf_token:e.z.string(),auth0Client:e.z.string().optional(),authParams:Ve,expires_at:e.z.string(),deleted_at:e.z.string().optional(),ip:e.z.string().optional(),useragent:e.z.string().optional(),session_id:e.z.string().optional(),authorization_url:e.z.string().optional(),state:Kt.optional().default(`pending`),state_data:e.z.string().optional(),failure_reason:e.z.string().optional(),user_id:e.z.string().optional(),auth_connection:e.z.string().optional(),auth_strategy:qt.optional(),authenticated_at:e.z.string().optional()}).openapi({description:`This represents a login sesion`}).extend({id:e.z.string().openapi({description:`This is is used as the state in the universal login`}),created_at:e.z.string(),updated_at:e.z.string()});var A={ACLS_SUMMARY:`acls_summary`,ACTIONS_EXECUTION_FAILED:`actions_execution_failed`,API_LIMIT:`api_limit`,API_LIMIT_WARNING:`api_limit_warning`,APPI:`appi`,CIBA_EXCHANGE_FAILED:`ciba_exchange_failed`,CIBA_EXCHANGE_SUCCEEDED:`ciba_exchange_succeeded`,CIBA_START_FAILED:`ciba_start_failed`,CIBA_START_SUCCEEDED:`ciba_start_succeeded`,CODE_LINK_SENT:`cls`,CODE_SENT:`cs`,DEPRECATION_NOTICE:`depnote`,FAILED_LOGIN:`f`,FAILED_BY_CONNECTOR:`fc`,FAILED_CHANGE_EMAIL:`fce`,FAILED_BY_CORS:`fco`,FAILED_CROSS_ORIGIN_AUTHENTICATION:`fcoa`,FAILED_CHANGE_PASSWORD:`fcp`,FAILED_POST_CHANGE_PASSWORD_HOOK:`fcph`,FAILED_CHANGE_PHONE_NUMBER:`fcpn`,FAILED_CHANGE_PASSWORD_REQUEST:`fcpr`,FAILED_CONNECTOR_PROVISIONING:`fcpro`,FAILED_CHANGE_USERNAME:`fcu`,FAILED_DELEGATION:`fd`,FAILED_DEVICE_ACTIVATION:`fdeac`,FAILED_DEVICE_AUTHORIZATION_REQUEST:`fdeaz`,USER_CANCELED_DEVICE_CONFIRMATION:`fdecc`,FAILED_USER_DELETION:`fdu`,FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN:`feacft`,FAILED_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS:`feccft`,FAILED_EXCHANGE_CUSTOM_TOKEN:`fecte`,FAILED_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN:`fede`,FAILED_FEDERATED_LOGOUT:`federated_logout_failed`,FAILED_EXCHANGE_NATIVE_SOCIAL_LOGIN:`fens`,FAILED_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN:`feoobft`,FAILED_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN:`feotpft`,FAILED_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN:`fepft`,FAILED_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN:`fepotpft`,FAILED_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN:`fercft`,FAILED_EXCHANGE_ROTATING_REFRESH_TOKEN:`ferrt`,FAILED_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN:`fertft`,FAILED_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN:`festft`,FAILED_HOOK:`fh`,FAILED_IMPERSONATION:`fimp`,FAILED_INVITE_ACCEPT:`fi`,FAILED_LOGOUT:`flo`,FLOWS_EXECUTION_COMPLETED:`flows_execution_completed`,FLOWS_EXECUTION_FAILED:`flows_execution_failed`,FAILED_SENDING_NOTIFICATION:`fn`,FORMS_SUBMISSION_FAILED:`forms_submission_failed`,FORMS_SUBMISSION_SUCCEEDED:`forms_submission_succeeded`,FAILED_LOGIN_INCORRECT_PASSWORD:`fp`,FAILED_PUSHED_AUTHORIZATION_REQUEST:`fpar`,FAILED_POST_USER_REGISTRATION_HOOK:`fpurh`,FAILED_SIGNUP:`fs`,FAILED_SILENT_AUTH:`fsa`,FAILED_LOGIN_INVALID_EMAIL_USERNAME:`fu`,FAILED_USERS_IMPORT:`fui`,FAILED_VERIFICATION_EMAIL:`fv`,FAILED_VERIFICATION_EMAIL_REQUEST:`fvr`,EMAIL_VERIFICATION_CONFIRMED:`gd_auth_email_verification`,EMAIL_VERIFICATION_FAILED:`gd_auth_fail_email_verification`,MFA_AUTH_FAILED:`gd_auth_failed`,MFA_AUTH_REJECTED:`gd_auth_rejected`,MFA_AUTH_SUCCESS:`gd_auth_succeed`,MFA_ENROLLMENT_COMPLETE:`gd_enrollment_complete`,TOO_MANY_MFA_FAILURES:`gd_otp_rate_limit_exceed`,MFA_RECOVERY_FAILED:`gd_recovery_failed`,MFA_RECOVERY_RATE_LIMIT_EXCEED:`gd_recovery_rate_limit_exceed`,MFA_RECOVERY_SUCCESS:`gd_recovery_succeed`,MFA_EMAIL_SENT:`gd_send_email`,EMAIL_VERIFICATION_SENT:`gd_send_email_verification`,EMAIL_VERIFICATION_SEND_FAILURE:`gd_send_email_verification_failure`,PUSH_NOTIFICATION_SENT:`gd_send_pn`,ERROR_SENDING_MFA_PUSH_NOTIFICATION:`gd_send_pn_failure`,MFA_SMS_SENT:`gd_send_sms`,ERROR_SENDING_MFA_SMS:`gd_send_sms_failure`,MFA_VOICE_CALL_SUCCESS:`gd_send_voice`,MFA_VOICE_CALL_FAILED:`gd_send_voice_failure`,SECOND_FACTOR_STARTED:`gd_start_auth`,MFA_ENROLL_STARTED:`gd_start_enroll`,MFA_ENROLLMENT_FAILED:`gd_start_enroll_failed`,GUARDIAN_TENANT_UPDATE:`gd_tenant_update`,UNENROLL_DEVICE_ACCOUNT:`gd_unenroll`,UPDATE_DEVICE_ACCOUNT:`gd_update_device_account`,WEBAUTHN_CHALLENGE_FAILED:`gd_webauthn_challenge_failed`,WEBAUTHN_ENROLLMENT_FAILED:`gd_webauthn_enrollment_failed`,FAILED_KMS_API_OPERATION:`kms_key_management_failure`,SUCCESS_KMS_API_OPERATION:`kms_key_management_success`,KMS_KEY_STATE_CHANGED:`kms_key_state_changed`,TOO_MANY_CALLS_TO_DELEGATION:`limit_delegation`,BLOCKED_IP_ADDRESS:`limit_mu`,BLOCKED_ACCOUNT_IP:`limit_sul`,BLOCKED_ACCOUNT_EMAIL:`limit_wc`,INFORMATION:`i`,MFA_REQUIRED:`mfar`,MANAGEMENT_API_READ_OPERATION:`mgmt_api_read`,FAILED_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT:`my_account_authentication_method_failed`,SUCCESSFUL_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT:`my_account_authentication_method_succeeded`,FAILED_OIDC_BACKCHANNEL_LOGOUT:`oidc_backchannel_logout_failed`,SUCCESSFUL_OIDC_BACKCHANNEL_LOGOUT:`oidc_backchannel_logout_succeeded`,ORGANIZATION_MEMBER_ADDED:`organization_member_added`,PASSKEY_CHALLENGE_FAILED:`passkey_challenge_failed`,PASSKEY_CHALLENGE_STARTED:`passkey_challenge_started`,PRE_LOGIN_ASSESSMENT:`pla`,BREACHED_PASSWORD:`pwd_leak`,BREACHED_PASSWORD_ON_RESET:`reset_pwd_leak`,SUCCESS_RESOURCE_CLEANUP:`resource_cleanup`,RICH_CONSENTS_ACCESS_ERROR:`rich_consents_access_error`,SUCCESS_LOGIN:`s`,SUCCESS_API_OPERATION:`sapi`,FAILED_API_OPERATION:`fapi`,SUCCESS_CHANGE_EMAIL:`sce`,SUCCESS_CROSS_ORIGIN_AUTHENTICATION:`scoa`,SUCCESS_CHANGE_PASSWORD:`scp`,SUCCESS_CHANGE_PHONE_NUMBER:`scpn`,SUCCESS_CHANGE_PASSWORD_REQUEST:`scpr`,SUCCESS_CHANGE_USERNAME:`scu`,SUCCESS_CREDENTIAL_VALIDATION:`scv`,SUCCESS_DELEGATION:`sd`,SUCCESS_USER_DELETION:`sdu`,SUCCESS_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN:`seacft`,SUCCESS_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS:`seccft`,SUCCESS_EXCHANGE_CUSTOM_TOKEN:`secte`,SUCCESS_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN:`sede`,SUCCESS_EXCHANGE_NATIVE_SOCIAL_LOGIN:`sens`,SUCCESS_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN:`seoobft`,SUCCESS_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN:`seotpft`,SUCCESS_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN:`sepotpft`,SUCCESS_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN:`sepft`,SUCCESS_EXCHANGE_PASSKEY_OOB_FOR_ACCESS_TOKEN:`sepkoobft`,SUCCESS_EXCHANGE_PASSKEY_OTP_FOR_ACCESS_TOKEN:`sepkotpft`,SUCCESS_EXCHANGE_PASSKEY_MFA_RECOVERY_FOR_ACCESS_TOKEN:`sepkrcft`,SUCCESS_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN:`sercft`,SUCCESS_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN:`sertft`,SUCCESS_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN:`sestft`,SUCCESS_IMPERSONATION:`simp`,SUCCESSFULLY_ACCEPTED_USER_INVITE:`si`,BREACHED_PASSWORD_ON_SIGNUP:`signup_pwd_leak`,SUCCESS_LOGOUT:`slo`,SUCCESS_HOOK:`sh`,SUCCESS_PASSWORD_MIGRATION:`spm`,SUCCESS_REVOCATION:`srrt`,SUCCESS_SIGNUP:`ss`,FAILED_SS_SSO_OPERATION:`ss_sso_failure`,INFORMATION_FROM_SS_SSO_OPERATION:`ss_sso_info`,SUCCESS_SS_SSO_OPERATION:`ss_sso_success`,SUCCESS_SILENT_AUTH:`ssa`,SUCCESSFUL_SCIM_OPERATION:`sscim`,SUCCESSFULLY_IMPORTED_USERS:`sui`,SUCCESS_VERIFICATION_EMAIL:`sv`,SUCCESS_VERIFICATION_EMAIL_REQUEST:`svr`,MAX_AMOUNT_OF_AUTHENTICATORS:`too_many_records`,USER_LOGIN_BLOCK_RELEASED:`ublkdu`,FAILED_UNIVERSAL_LOGOUT:`universal_logout_failed`,SUCCESSFUL_UNIVERSAL_LOGOUT:`universal_logout_succeeded`,WARNING_DURING_LOGIN:`w`,WARNING_SENDING_NOTIFICATION:`wn`,WARNING_USER_MANAGEMENT:`wum`},Jt=e.z.string().refine(e=>Object.values(A).includes(e),{message:`Invalid log type`});A.ACLS_SUMMARY,A.ACTIONS_EXECUTION_FAILED,A.API_LIMIT,A.API_LIMIT_WARNING,A.APPI,A.CIBA_EXCHANGE_FAILED,A.CIBA_EXCHANGE_SUCCEEDED,A.CIBA_START_FAILED,A.CIBA_START_SUCCEEDED,A.CODE_LINK_SENT,A.CODE_SENT,A.DEPRECATION_NOTICE,A.FAILED_LOGIN,A.FAILED_BY_CONNECTOR,A.FAILED_CHANGE_EMAIL,A.FAILED_BY_CORS,A.FAILED_CROSS_ORIGIN_AUTHENTICATION,A.FAILED_CHANGE_PASSWORD,A.FAILED_POST_CHANGE_PASSWORD_HOOK,A.FAILED_CHANGE_PHONE_NUMBER,A.FAILED_CHANGE_PASSWORD_REQUEST,A.FAILED_CONNECTOR_PROVISIONING,A.FAILED_CHANGE_USERNAME,A.FAILED_DELEGATION,A.FAILED_DEVICE_ACTIVATION,A.FAILED_DEVICE_AUTHORIZATION_REQUEST,A.USER_CANCELED_DEVICE_CONFIRMATION,A.FAILED_USER_DELETION,A.FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,A.FAILED_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS,A.FAILED_EXCHANGE_CUSTOM_TOKEN,A.FAILED_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN,A.FAILED_FEDERATED_LOGOUT,A.FAILED_EXCHANGE_NATIVE_SOCIAL_LOGIN,A.FAILED_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN,A.FAILED_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN,A.FAILED_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN,A.FAILED_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN,A.FAILED_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN,A.FAILED_EXCHANGE_ROTATING_REFRESH_TOKEN,A.FAILED_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN,A.FAILED_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN,A.FAILED_HOOK,A.FAILED_IMPERSONATION,A.FAILED_INVITE_ACCEPT,A.FAILED_LOGOUT,A.FLOWS_EXECUTION_COMPLETED,A.FLOWS_EXECUTION_FAILED,A.FAILED_SENDING_NOTIFICATION,A.FORMS_SUBMISSION_FAILED,A.FORMS_SUBMISSION_SUCCEEDED,A.FAILED_LOGIN_INCORRECT_PASSWORD,A.FAILED_PUSHED_AUTHORIZATION_REQUEST,A.FAILED_POST_USER_REGISTRATION_HOOK,A.FAILED_SIGNUP,A.FAILED_SILENT_AUTH,A.FAILED_LOGIN_INVALID_EMAIL_USERNAME,A.FAILED_USERS_IMPORT,A.FAILED_VERIFICATION_EMAIL,A.FAILED_VERIFICATION_EMAIL_REQUEST,A.EMAIL_VERIFICATION_CONFIRMED,A.EMAIL_VERIFICATION_FAILED,A.MFA_AUTH_FAILED,A.MFA_AUTH_REJECTED,A.MFA_AUTH_SUCCESS,A.MFA_ENROLLMENT_COMPLETE,A.TOO_MANY_MFA_FAILURES,A.MFA_RECOVERY_FAILED,A.MFA_RECOVERY_RATE_LIMIT_EXCEED,A.MFA_RECOVERY_SUCCESS,A.MFA_EMAIL_SENT,A.EMAIL_VERIFICATION_SENT,A.EMAIL_VERIFICATION_SEND_FAILURE,A.PUSH_NOTIFICATION_SENT,A.ERROR_SENDING_MFA_PUSH_NOTIFICATION,A.MFA_SMS_SENT,A.ERROR_SENDING_MFA_SMS,A.MFA_VOICE_CALL_SUCCESS,A.MFA_VOICE_CALL_FAILED,A.SECOND_FACTOR_STARTED,A.MFA_ENROLL_STARTED,A.MFA_ENROLLMENT_FAILED,A.GUARDIAN_TENANT_UPDATE,A.UNENROLL_DEVICE_ACCOUNT,A.UPDATE_DEVICE_ACCOUNT,A.WEBAUTHN_CHALLENGE_FAILED,A.WEBAUTHN_ENROLLMENT_FAILED,A.FAILED_KMS_API_OPERATION,A.SUCCESS_KMS_API_OPERATION,A.KMS_KEY_STATE_CHANGED,A.TOO_MANY_CALLS_TO_DELEGATION,A.BLOCKED_IP_ADDRESS,A.BLOCKED_ACCOUNT_IP,A.BLOCKED_ACCOUNT_EMAIL,A.INFORMATION,A.MFA_REQUIRED,A.MANAGEMENT_API_READ_OPERATION,A.FAILED_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT,A.SUCCESSFUL_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT,A.FAILED_OIDC_BACKCHANNEL_LOGOUT,A.SUCCESSFUL_OIDC_BACKCHANNEL_LOGOUT,A.ORGANIZATION_MEMBER_ADDED,A.PASSKEY_CHALLENGE_FAILED,A.PASSKEY_CHALLENGE_STARTED,A.PRE_LOGIN_ASSESSMENT,A.BREACHED_PASSWORD,A.BREACHED_PASSWORD_ON_RESET,A.SUCCESS_RESOURCE_CLEANUP,A.RICH_CONSENTS_ACCESS_ERROR,A.SUCCESS_LOGIN,A.SUCCESS_API_OPERATION,A.FAILED_API_OPERATION,A.SUCCESS_CHANGE_EMAIL,A.SUCCESS_CROSS_ORIGIN_AUTHENTICATION,A.SUCCESS_CHANGE_PASSWORD,A.SUCCESS_CHANGE_PHONE_NUMBER,A.SUCCESS_CHANGE_PASSWORD_REQUEST,A.SUCCESS_CHANGE_USERNAME,A.SUCCESS_CREDENTIAL_VALIDATION,A.SUCCESS_DELEGATION,A.SUCCESS_USER_DELETION,A.SUCCESS_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,A.SUCCESS_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS,A.SUCCESS_EXCHANGE_CUSTOM_TOKEN,A.SUCCESS_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN,A.SUCCESS_EXCHANGE_NATIVE_SOCIAL_LOGIN,A.SUCCESS_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN,A.SUCCESS_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN,A.SUCCESS_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN,A.SUCCESS_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN,A.SUCCESS_EXCHANGE_PASSKEY_OOB_FOR_ACCESS_TOKEN,A.SUCCESS_EXCHANGE_PASSKEY_OTP_FOR_ACCESS_TOKEN,A.SUCCESS_EXCHANGE_PASSKEY_MFA_RECOVERY_FOR_ACCESS_TOKEN,A.SUCCESS_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN,A.SUCCESS_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN,A.SUCCESS_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN,A.SUCCESS_IMPERSONATION,A.SUCCESSFULLY_ACCEPTED_USER_INVITE,A.BREACHED_PASSWORD_ON_SIGNUP,A.SUCCESS_LOGOUT,A.SUCCESS_HOOK,A.SUCCESS_PASSWORD_MIGRATION,A.SUCCESS_REVOCATION,A.SUCCESS_SIGNUP,A.FAILED_SS_SSO_OPERATION,A.INFORMATION_FROM_SS_SSO_OPERATION,A.SUCCESS_SS_SSO_OPERATION,A.SUCCESS_SILENT_AUTH,A.SUCCESSFUL_SCIM_OPERATION,A.SUCCESSFULLY_IMPORTED_USERS,A.SUCCESS_VERIFICATION_EMAIL,A.SUCCESS_VERIFICATION_EMAIL_REQUEST,A.MAX_AMOUNT_OF_AUTHENTICATORS,A.USER_LOGIN_BLOCK_RELEASED,A.FAILED_UNIVERSAL_LOGOUT,A.SUCCESSFUL_UNIVERSAL_LOGOUT,A.WARNING_DURING_LOGIN,A.WARNING_SENDING_NOTIFICATION,A.WARNING_USER_MANAGEMENT,(()=>{let e={};for(let[t,n]of Object.entries(A))t.startsWith(`SUCCESS_`)||t.startsWith(`SUCCESSFUL_`)||t.startsWith(`SUCCESSFULLY_`)||t.endsWith(`_SUCCEEDED`)||t.endsWith(`_COMPLETED`)?e[n]=`success`:t.startsWith(`FAILED_`)||t.startsWith(`ERROR_`)||t.startsWith(`BREACHED_`)||t.startsWith(`BLOCKED_`)||t===`MFA_AUTH_FAILED`||t===`MFA_AUTH_REJECTED`||t===`MFA_RECOVERY_FAILED`||t===`MFA_ENROLLMENT_FAILED`||t===`EMAIL_VERIFICATION_FAILED`||t===`WEBAUTHN_CHALLENGE_FAILED`||t===`WEBAUTHN_ENROLLMENT_FAILED`||t===`PASSKEY_CHALLENGE_FAILED`||t===`FLOWS_EXECUTION_FAILED`||t===`FORMS_SUBMISSION_FAILED`||t===`CIBA_EXCHANGE_FAILED`||t===`CIBA_START_FAILED`||t===`ACTIONS_EXECUTION_FAILED`||t===`RICH_CONSENTS_ACCESS_ERROR`||t===`USER_CANCELED_DEVICE_CONFIRMATION`||t===`TOO_MANY_MFA_FAILURES`||t===`MFA_RECOVERY_RATE_LIMIT_EXCEED`||t===`API_LIMIT`||t===`MAX_AMOUNT_OF_AUTHENTICATORS`?e[n]=`failure`:t.startsWith(`WARNING_`)||t===`API_LIMIT_WARNING`||t===`DEPRECATION_NOTICE`||t===`PRE_LOGIN_ASSESSMENT`?e[n]=`warning`:t===`CODE_SENT`||t===`CODE_LINK_SENT`||t===`MFA_EMAIL_SENT`||t===`MFA_SMS_SENT`||t===`EMAIL_VERIFICATION_SENT`||t===`PUSH_NOTIFICATION_SENT`?e[n]=`code_sent`:t===`INFORMATION`||t===`INFORMATION_FROM_SS_SSO_OPERATION`||t===`MANAGEMENT_API_READ_OPERATION`||t===`APPI`||t===`ACLS_SUMMARY`||t===`ORGANIZATION_MEMBER_ADDED`?e[n]=`info`:e[n]=`other`;return e})();var Yt=e.z.object({name:e.z.string(),version:e.z.string(),env:e.z.object({node:e.z.string().optional()}).optional()}),Xt=e.z.object({country_code:e.z.string().length(2),city_name:e.z.string(),latitude:e.z.string(),longitude:e.z.string(),time_zone:e.z.string(),continent_code:e.z.string()});e.z.object({type:Jt,date:e.z.string(),description:e.z.string().optional(),ip:e.z.string().optional(),user_agent:e.z.string().optional(),details:e.z.any().optional(),isMobile:e.z.boolean(),user_id:e.z.string().optional(),user_name:e.z.string().optional(),connection:e.z.string().optional(),connection_id:e.z.string().optional(),client_id:e.z.string().optional(),client_name:e.z.string().optional(),audience:e.z.string().optional(),scope:e.z.string().optional(),strategy:e.z.string().optional(),strategy_type:e.z.string().optional(),hostname:e.z.string().optional(),auth0_client:Yt.optional(),log_id:e.z.string().optional(),location_info:Xt.optional()}).extend({log_id:e.z.string()});var Zt=e.z.enum([`http`,`eventbridge`,`eventgrid`,`splunk`,`datadog`,`sumo`]),Qt=e.z.enum([`active`,`paused`,`suspended`]),$t=e.z.object({type:e.z.string(),name:e.z.string()});e.z.object({name:e.z.string(),type:Zt,status:Qt.optional(),sink:e.z.record(e.z.string(),e.z.unknown()),filters:e.z.array($t).optional(),isPriority:e.z.boolean().optional()}).extend({id:e.z.string(),status:Qt,created_at:e.z.string().optional(),updated_at:e.z.string().optional()});var en=e.z.enum([`auth0`,`cognito`,`okta`,`oidc`]),tn=e.z.object({domain:e.z.string(),client_id:e.z.string(),client_secret:e.z.string(),audience:e.z.string().optional(),scope:e.z.string().optional()}),nn=e.z.object({id:e.z.string().optional(),name:e.z.string(),provider:en,connection:e.z.string(),enabled:e.z.boolean().default(!0),credentials:tn});e.z.object({id:e.z.string(),created_at:e.z.string(),updated_at:e.z.string()}).extend(nn.shape);var rn=e.z.object({enabled:e.z.boolean().optional(),shields:e.z.array(e.z.string()).optional(),admin_notification_frequency:e.z.array(e.z.string()).optional(),method:e.z.string().optional(),stage:e.z.object({"pre-user-registration":e.z.object({shields:e.z.array(e.z.string()).optional()}).optional(),"pre-change-password":e.z.object({shields:e.z.array(e.z.string()).optional()}).optional()}).optional()}),an=e.z.object({enabled:e.z.boolean().optional(),shields:e.z.array(e.z.string()).optional(),allowlist:e.z.array(e.z.string()).optional(),mode:e.z.string().optional(),max_attempts:e.z.number().optional()}),on=e.z.object({enabled:e.z.boolean().optional(),shields:e.z.array(e.z.string()).optional(),allowlist:e.z.array(e.z.string()).optional(),stage:e.z.object({"pre-login":e.z.object({max_attempts:e.z.number().optional(),rate:e.z.number().optional()}).optional(),"pre-user-registration":e.z.object({max_attempts:e.z.number().optional(),rate:e.z.number().optional()}).optional()}).optional()}),sn=e.z.object({breached_password_detection:rn.optional(),brute_force_protection:an.optional(),suspicious_ip_throttling:on.optional()});e.z.object({id:e.z.string().optional(),user_id:e.z.string(),password:e.z.string(),algorithm:e.z.enum([`bcrypt`,`argon2id`]).default(`argon2id`),is_current:e.z.boolean().default(!0)}).extend({id:e.z.string(),created_at:e.z.string(),updated_at:e.z.string()});var cn=e.z.object({initial_user_agent:e.z.string().describe(`First user agent of the device from which this user logged in`),initial_ip:e.z.string().describe(`First IP address associated with this session`),initial_asn:e.z.string().describe(`First autonomous system number associated with this session`),last_user_agent:e.z.string().describe(`Last user agent of the device from which this user logged in`),last_ip:e.z.string().describe(`Last IP address from which this user logged in`),last_asn:e.z.string().describe(`Last autonomous system number from which this user logged in`)}),ln=e.z.object({id:e.z.string(),revoked_at:e.z.string().optional(),used_at:e.z.string().optional(),user_id:e.z.string().describe(`The user ID associated with the session`),expires_at:e.z.string().optional(),login_session_id:e.z.string(),idle_expires_at:e.z.string().optional(),device:cn.describe(`Metadata related to the device used in the session`),clients:e.z.array(e.z.string()).describe(`List of client details for the session`)});e.z.object({created_at:e.z.string(),updated_at:e.z.string(),authenticated_at:e.z.string(),last_interaction_at:e.z.string()}).extend(ln.shape),e.z.object({kid:e.z.string().openapi({description:`The key id of the signing key`}),tenant_id:e.z.string().optional().openapi({description:`The tenant the key belongs to. Omitted means the key is shared / control-plane scoped.`}),cert:e.z.string().openapi({description:`The public certificate of the signing key`}),fingerprint:e.z.string().openapi({description:`The cert fingerprint`}),thumbprint:e.z.string().openapi({description:`The cert thumbprint`}),pkcs7:e.z.string().optional().openapi({description:`The private key in pkcs7 format`}),current:e.z.boolean().optional().openapi({description:`True if the key is the current key`}),next:e.z.boolean().optional().openapi({description:`True if the key is the next key`}),previous:e.z.boolean().optional().openapi({description:`True if the key is the previous key`}),current_since:e.z.string().optional().openapi({description:`The date and time when the key became the current key`}),current_until:e.z.string().optional().openapi({description:`The date and time when the current key was rotated`}),revoked:e.z.boolean().optional().openapi({description:`True if the key is revoked`}),revoked_at:e.z.string().optional().openapi({description:`The date and time when the key was revoked`}),connection:e.z.string().optional().openapi({description:`The connection identifier associated with the key`}),type:e.z.enum([`jwt_signing`,`saml_encryption`]).openapi({description:`The type of the signing key`})});var un=e.z.object({id:e.z.string().optional(),audience:e.z.string().optional(),friendly_name:e.z.string(),picture_url:e.z.string().optional(),support_email:e.z.string().optional(),support_url:e.z.string().optional(),sender_email:e.z.string().email().optional(),sender_name:e.z.string().optional(),session_lifetime:e.z.number().optional(),idle_session_lifetime:e.z.number().optional(),ephemeral_session_lifetime:e.z.number().optional(),idle_ephemeral_session_lifetime:e.z.number().optional(),session_cookie:e.z.object({mode:e.z.enum([`persistent`,`non-persistent`]).optional()}).optional(),allowed_logout_urls:e.z.array(e.z.string()).optional(),default_redirection_uri:e.z.string().optional(),default_client_id:e.z.string().optional(),enabled_locales:e.z.array(e.z.string()).optional(),default_directory:e.z.string().optional(),error_page:e.z.object({html:e.z.string().optional(),show_log_link:e.z.boolean().optional(),url:e.z.string().optional()}).nullish(),flags:e.z.object({allow_changing_enable_sso:e.z.boolean().optional(),allow_legacy_delegation_grant_types:e.z.boolean().optional(),allow_legacy_ro_grant_types:e.z.boolean().optional(),allow_legacy_tokeninfo_endpoint:e.z.boolean().optional(),change_pwd_flow_v1:e.z.boolean().optional(),client_id_metadata_document_registration:e.z.boolean().optional(),custom_domains_provisioning:e.z.boolean().optional(),dashboard_insights_view:e.z.boolean().optional(),dashboard_log_streams_next:e.z.boolean().optional(),disable_clickjack_protection_headers:e.z.boolean().optional(),disable_fields_map_fix:e.z.boolean().optional(),disable_impersonation:e.z.boolean().optional(),disable_management_api_sms_obfuscation:e.z.boolean().optional(),enable_adfs_waad_email_verification:e.z.boolean().optional(),enable_apis_section:e.z.boolean().optional(),enable_client_connections:e.z.boolean().optional(),enable_custom_domain_in_emails:e.z.boolean().optional(),enable_dynamic_client_registration:e.z.boolean().optional(),dcr_require_initial_access_token:e.z.boolean().optional(),dcr_allowed_grant_types:e.z.array(e.z.string()).optional(),allow_http_return_to:e.z.array(e.z.string().refine(e=>{try{let t=new URL(e);return t.protocol===`http:`&&(t.pathname===``||t.pathname===`/`)&&!t.search&&!t.hash&&e===t.origin}catch{return!1}},{message:`must be a fully-qualified http origin (scheme + host + port, no path)`})).optional(),enable_idtoken_api2:e.z.boolean().optional(),enable_legacy_logs_search_v2:e.z.boolean().optional(),enable_legacy_profile:e.z.boolean().optional(),enable_pipeline2:e.z.boolean().optional(),enable_public_signup_user_exists_error:e.z.boolean().optional(),enable_sso:e.z.boolean().optional(),enforce_client_authentication_on_passwordless_start:e.z.boolean().optional(),genai_trial:e.z.boolean().optional(),improved_signup_bot_detection_in_classic:e.z.boolean().optional(),mfa_show_factor_list_on_enrollment:e.z.boolean().optional(),no_disclose_enterprise_connections:e.z.boolean().optional(),remove_alg_from_jwks:e.z.boolean().optional(),revoke_refresh_token_grant:e.z.boolean().optional(),trust_azure_adfs_email_verified_connection_property:e.z.boolean().optional(),use_scope_descriptions_for_consent:e.z.boolean().optional(),inherit_global_permissions_in_organizations:e.z.boolean().optional(),restrict_undefined_scopes:e.z.boolean().optional()}).optional(),sandbox_version:e.z.string().optional(),legacy_sandbox_version:e.z.string().optional(),sandbox_versions_available:e.z.array(e.z.string()).optional(),change_password:e.z.object({enabled:e.z.boolean().optional(),html:e.z.string().optional()}).optional(),guardian_mfa_page:e.z.object({enabled:e.z.boolean().optional(),html:e.z.string().optional()}).optional(),device_flow:e.z.object({charset:e.z.enum([`base20`,`digits`]).optional(),mask:e.z.string().max(20).optional()}).optional(),default_token_quota:e.z.object({clients:e.z.object({client_credentials:e.z.record(e.z.string(),e.z.any()).optional()}).optional(),organizations:e.z.object({client_credentials:e.z.record(e.z.string(),e.z.any()).optional()}).optional()}).nullish(),default_audience:e.z.string().optional(),default_organization:e.z.string().optional(),sessions:e.z.object({oidc_logout_prompt_enabled:e.z.boolean().optional()}).optional(),oidc_logout:e.z.object({rp_logout_end_session_endpoint_discovery:e.z.boolean().optional()}).optional(),allow_organization_name_in_authentication_api:e.z.boolean().optional(),customize_mfa_in_postlogin_action:e.z.boolean().optional(),acr_values_supported:e.z.array(e.z.string()).optional(),mtls:e.z.object({enable_endpoint_aliases:e.z.boolean().optional()}).nullish(),pushed_authorization_requests_supported:e.z.boolean().optional(),authorization_response_iss_parameter_supported:e.z.boolean().optional(),deployment_type:e.z.enum([`shared`,`wfp`]).default(`shared`).optional(),provisioning_state:e.z.enum([`pending`,`ready`,`failed`]).default(`ready`).optional(),provisioning_error:e.z.string().max(2048).optional(),provisioning_state_changed_at:e.z.string().optional(),bundle_configuration:e.z.string().max(64).optional(),worker_version:e.z.string().max(64).optional(),worker_script_name:e.z.string().max(255).optional(),storage_kind:e.z.enum([`own_d1`,`existing_d1`,`shared_planetscale`]).optional(),d1_database_id:e.z.string().max(64).optional(),attack_protection:sn.optional(),mfa:e.z.object({policy:e.z.enum([`never`,`always`]).default(`never`).optional(),factors:e.z.object({sms:e.z.boolean().default(!1),otp:e.z.boolean().default(!1),email:e.z.boolean().default(!1),push_notification:e.z.boolean().default(!1),webauthn_roaming:e.z.boolean().default(!1),webauthn_platform:e.z.boolean().default(!1),recovery_code:e.z.boolean().default(!1),duo:e.z.boolean().default(!1)}).optional(),sms_provider:e.z.object({provider:e.z.enum([`twilio`,`vonage`,`aws_sns`,`phone_message_hook`]).optional()}).optional(),twilio:e.z.object({sid:e.z.string().optional(),auth_token:e.z.string().optional(),from:e.z.string().optional(),messaging_service_sid:e.z.string().optional()}).optional(),phone_message:e.z.object({message:e.z.string().optional()}).optional()}).optional()});e.z.object({created_at:e.z.string().nullable().transform(e=>e??``),updated_at:e.z.string().nullable().transform(e=>e??``)}).extend(un.shape).extend({id:e.z.string(),is_control_plane:e.z.boolean().optional()}),e.z.object({access_token:e.z.string(),id_token:e.z.string().optional(),scope:e.z.string().optional(),state:e.z.string().optional(),refresh_token:e.z.string().optional(),token_type:e.z.string(),expires_in:e.z.number()}),e.z.object({code:e.z.string(),state:e.z.string().optional()});var dn=e.z.object({button_border_radius:e.z.number(),button_border_weight:e.z.number(),buttons_style:e.z.enum([`pill`,`rounded`,`sharp`]),input_border_radius:e.z.number(),input_border_weight:e.z.number(),inputs_style:e.z.enum([`pill`,`rounded`,`sharp`]),show_widget_shadow:e.z.boolean(),widget_border_weight:e.z.number(),widget_corner_radius:e.z.number()}),fn=e.z.object({base_focus_color:e.z.string(),base_hover_color:e.z.string(),body_text:e.z.string(),captcha_widget_theme:e.z.enum([`auto`,`dark`,`light`]),error:e.z.string(),header:e.z.string(),icons:e.z.string(),input_background:e.z.string(),input_border:e.z.string(),input_filled_text:e.z.string(),input_labels_placeholders:e.z.string(),links_focused_components:e.z.string(),primary_button:e.z.string(),primary_button_label:e.z.string(),secondary_button_border:e.z.string(),secondary_button_label:e.z.string(),success:e.z.string(),widget_background:e.z.string(),widget_border:e.z.string()}),j=e.z.object({bold:e.z.boolean(),size:e.z.number()}),pn=e.z.object({body_text:j,buttons_text:j,font_url:e.z.string(),input_labels:j,links:j,links_style:e.z.enum([`normal`,`underlined`]),reference_text_size:e.z.number(),subtitle:j,title:j}),mn=e.z.object({background_color:e.z.string(),background_image_url:e.z.string(),page_layout:e.z.enum([`center`,`left`,`right`]),logo_placement:e.z.enum([`widget`,`chip`,`none`]).optional()}),hn=e.z.object({header_text_alignment:e.z.enum([`center`,`left`,`right`]),logo_height:e.z.number(),logo_position:e.z.enum([`center`,`left`,`none`,`right`]),logo_url:e.z.string(),social_buttons_layout:e.z.enum([`bottom`,`top`])});e.z.object({borders:dn,colors:fn,displayName:e.z.string(),fonts:pn,page_background:mn,widget:hn}).extend({themeId:e.z.string()}),e.z.object({universal_login_experience:e.z.enum([`new`,`classic`]).default(`new`),identifier_first:e.z.boolean().default(!0),password_first:e.z.boolean().default(!1),webauthn_platform_first_factor:e.z.boolean()});var gn=e.z.object({hosts:e.z.array(e.z.string()).optional(),methods:e.z.array(e.z.string()).optional(),path:e.z.string().default(`/*`),headers:e.z.record(e.z.string(),e.z.string()).optional(),query:e.z.record(e.z.string(),e.z.string()).optional()}),_n=e.z.object({type:e.z.string(),options:e.z.record(e.z.string(),e.z.unknown()).default({})}),M=e.z.object({id:e.z.string().optional(),custom_domain_id:e.z.string(),priority:e.z.number().int().default(100),match:gn,handlers:e.z.array(_n).min(1)}),vn=M.extend({id:e.z.string(),tenant_id:e.z.string(),created_at:e.z.string(),updated_at:e.z.string()}),yn=M.partial().omit({id:!0,custom_domain_id:!0});e.z.object({name:e.z.string(),enabled:e.z.boolean().optional().default(!0),default_from_address:e.z.string().optional(),credentials:e.z.record(e.z.string(),e.z.unknown()),settings:e.z.object({}).optional()});var bn=e.z.enum([`verify_email`,`verify_email_by_code`,`reset_email`,`reset_email_by_code`,`welcome_email`,`blocked_account`,`stolen_credentials`,`enrollment_email`,`mfa_oob_code`,`change_password`,`password_reset`,`user_invitation`]);e.z.object({template:bn,body:e.z.string(),from:e.z.string(),subject:e.z.string(),syntax:e.z.literal(`liquid`).default(`liquid`),resultUrl:e.z.string().optional(),urlLifetimeInSeconds:e.z.number().int().nonnegative().optional(),includeEmailInRedirect:e.z.boolean().default(!1),enabled:e.z.boolean().default(!0)}),e.z.object({id:e.z.string(),login_id:e.z.string(),user_id:e.z.string(),client_id:e.z.string(),expires_at:e.z.string().optional(),idle_expires_at:e.z.string().optional(),last_exchanged_at:e.z.string().optional(),device:cn,resource_servers:e.z.array(e.z.object({audience:e.z.string(),scopes:e.z.string()})),rotating:e.z.boolean(),token_lookup:e.z.string().optional(),token_hash:e.z.string().optional(),family_id:e.z.string().optional(),rotated_to:e.z.string().optional(),rotated_at:e.z.string().optional()}).extend({created_at:e.z.string(),revoked_at:e.z.string().optional()}),e.z.object({to:e.z.string(),message:e.z.string()}),e.z.object({name:e.z.string(),options:e.z.object({})});var xn=e.z.object({value:e.z.string(),description:e.z.string().optional()}),Sn=e.z.object({token_dialect:e.z.enum([`access_token`,`access_token_authz`]).optional(),enforce_policies:e.z.boolean().optional(),allow_skipping_userinfo:e.z.boolean().optional(),skip_userinfo:e.z.boolean().optional(),persist_client_authorization:e.z.boolean().optional(),enable_introspection_endpoint:e.z.boolean().optional(),mtls:e.z.object({bound_access_tokens:e.z.boolean().optional()}).optional()}),Cn=e.z.object({id:e.z.string().optional(),name:e.z.string(),identifier:e.z.string(),scopes:e.z.array(xn).optional(),signing_alg:e.z.string().optional(),signing_secret:e.z.string().optional(),token_lifetime:e.z.number().default(86400),token_lifetime_for_web:e.z.number().default(7200),skip_consent_for_verifiable_first_party_clients:e.z.boolean().optional(),allow_offline_access:e.z.boolean().optional(),verificationKey:e.z.string().optional(),options:Sn.optional(),is_system:e.z.boolean().optional(),metadata:e.z.record(e.z.string(),e.z.any()).optional()}).extend({created_at:e.z.string().optional(),updated_at:e.z.string().optional()});e.z.array(Cn);var wn=e.z.object({role_id:e.z.string(),resource_server_identifier:e.z.string(),permission_name:e.z.string()}).extend({created_at:e.z.string()});e.z.array(wn),e.z.object({user_id:e.z.string().openapi({description:`The id of the user that granted the consent`}),clientID:e.z.string().openapi({description:`The id of the client the grant was issued to`}),audience:e.z.string().optional().openapi({description:`The audience the grant applies to`}),scope:e.z.array(e.z.string()).default([]).openapi({description:`The list of OAuth scopes the user has consented to`})}).extend({id:e.z.string()});var Tn=e.z.object({user_id:e.z.string(),resource_server_identifier:e.z.string(),permission_name:e.z.string(),organization_id:e.z.string().optional()}).extend({tenant_id:e.z.string(),created_at:e.z.string().optional()});e.z.array(Tn);var En=e.z.object({user_id:e.z.string(),resource_server_identifier:e.z.string(),resource_server_name:e.z.string(),permission_name:e.z.string(),description:e.z.string().nullable().optional(),created_at:e.z.string().optional(),organization_id:e.z.string().optional()});e.z.array(En);var Dn=e.z.object({user_id:e.z.string(),role_id:e.z.string(),organization_id:e.z.string().optional()}).extend({tenant_id:e.z.string(),created_at:e.z.string().optional()});e.z.array(Dn);var On=e.z.object({id:e.z.string().optional().openapi({description:`The unique identifier of the role. If not provided, one will be generated.`}),name:e.z.string().min(1).max(50).openapi({description:`The name of the role. Cannot include '<' or '>'`}),description:e.z.string().max(255).optional().openapi({description:`The description of the role`}),is_system:e.z.boolean().optional(),metadata:e.z.record(e.z.string(),e.z.any()).optional().openapi({description:`Metadata associated with the role. Can be used to control sync behavior in multi-tenancy scenarios.`})}).extend({id:e.z.string().openapi({description:`The unique identifier of the role`}),created_at:e.z.string().optional(),updated_at:e.z.string().optional()});e.z.array(On);var kn=e.z.object({logo_url:e.z.string().optional().openapi({description:`URL of the organization's logo`}),colors:e.z.object({primary:e.z.string().optional().openapi({description:`Primary color in hex format (e.g., #FF0000)`}),page_background:e.z.string().optional().openapi({description:`Page background color in hex format (e.g., #FFFFFF)`})}).optional()}).optional(),An=e.z.object({connection_id:e.z.string().openapi({description:`ID of the connection`}),assign_membership_on_login:e.z.boolean().default(!1).openapi({description:`Whether to assign membership to the organization on login`}),show_as_button:e.z.boolean().default(!0).openapi({description:`Whether to show this connection as a button in the login screen`}),is_signup_enabled:e.z.boolean().default(!0).openapi({description:`Whether signup is enabled for this connection`})}),jn=e.z.object({client_credentials:e.z.object({enforce:e.z.boolean().default(!1).openapi({description:`Whether to enforce token quota limits`}),per_day:e.z.number().min(0).default(0).openapi({description:`Maximum tokens per day (0 = unlimited)`}),per_hour:e.z.number().min(0).default(0).openapi({description:`Maximum tokens per hour (0 = unlimited)`})}).optional()}).optional();e.z.object({id:e.z.string().optional(),name:e.z.string().min(1).regex(/^[a-z0-9_-]+$/,{message:`Organization name must be lowercase and can only contain letters, numbers, hyphens, and underscores`}).openapi({description:`The name of the organization. Must be lowercase and can only contain letters, numbers, hyphens, and underscores.`}),display_name:e.z.string().optional().openapi({description:`The display name of the organization`}),branding:kn,metadata:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`Custom metadata for the organization`}),enabled_connections:e.z.array(An).default([]).optional().openapi({description:`List of enabled connections for the organization`}),token_quota:jn}).extend(n.shape).extend({id:e.z.string(),name:e.z.string().min(1).openapi({description:`The name of the organization`})});var Mn=e.z.object({connection_id:e.z.string().openapi({description:`ID of the tenant-level connection to enable for the org.`}),assign_membership_on_login:e.z.boolean().optional().default(!1),show_as_button:e.z.boolean().optional().default(!0),is_signup_enabled:e.z.boolean().optional().default(!0)}).extend({connection:e.z.object({name:e.z.string().optional(),strategy:e.z.string().optional()}).optional(),created_at:e.z.string().optional(),updated_at:e.z.string().optional()});e.z.array(Mn),e.z.object({user_id:e.z.string().openapi({description:`ID of the user`}),organization_id:e.z.string().openapi({description:`ID of the organization`})}).extend(n.shape).extend({id:e.z.string()}),e.z.object({idle_session_lifetime:e.z.number().default(72),session_lifetime:e.z.number().default(168),session_cookie:e.z.object({mode:e.z.enum([`persistent`,`non-persistent`]).optional()}).optional(),enable_client_connections:e.z.boolean().optional(),default_redirection_uri:e.z.string().optional(),enabled_locales:e.z.array(e.z.string()).optional(),default_directory:e.z.string().optional(),error_page:e.z.object({html:e.z.string().optional(),show_log_link:e.z.boolean().optional(),url:e.z.string().optional()}).optional(),flags:e.z.object({allow_legacy_delegation_grant_types:e.z.boolean().optional(),allow_legacy_ro_grant_types:e.z.boolean().optional(),allow_legacy_tokeninfo_endpoint:e.z.boolean().optional(),disable_clickjack_protection_headers:e.z.boolean().optional(),enable_apis_section:e.z.boolean().optional(),enable_client_connections:e.z.boolean().optional(),enable_custom_domain_in_emails:e.z.boolean().optional(),enable_dynamic_client_registration:e.z.boolean().optional(),enable_idtoken_api2:e.z.boolean().optional(),enable_legacy_logs_search_v2:e.z.boolean().optional(),enable_legacy_profile:e.z.boolean().optional(),enable_pipeline2:e.z.boolean().optional(),enable_public_signup_user_exists_error:e.z.boolean().optional(),use_scope_descriptions_for_consent:e.z.boolean().optional(),disable_management_api_sms_obfuscation:e.z.boolean().optional(),enable_adfs_waad_email_verification:e.z.boolean().optional(),revoke_refresh_token_grant:e.z.boolean().optional(),dashboard_log_streams_next:e.z.boolean().optional(),dashboard_insights_view:e.z.boolean().optional(),disable_fields_map_fix:e.z.boolean().optional(),mfa_show_factor_list_on_enrollment:e.z.boolean().optional()}).optional(),friendly_name:e.z.string().optional(),picture_url:e.z.string().optional(),support_email:e.z.string().optional(),support_url:e.z.string().optional(),sandbox_version:e.z.string().optional(),sandbox_versions_available:e.z.array(e.z.string()).optional(),change_password:e.z.object({enabled:e.z.boolean(),html:e.z.string()}).optional(),guardian_mfa_page:e.z.object({enabled:e.z.boolean(),html:e.z.string()}).optional(),default_audience:e.z.string().optional(),default_organization:e.z.string().optional(),sessions:e.z.object({oidc_logout_prompt_enabled:e.z.boolean().optional()}).optional(),mfa:e.z.object({policy:e.z.enum([`never`,`always`]).default(`never`).optional(),factors:e.z.object({sms:e.z.boolean().default(!1),otp:e.z.boolean().default(!1),email:e.z.boolean().default(!1),push_notification:e.z.boolean().default(!1),webauthn_roaming:e.z.boolean().default(!1),webauthn_platform:e.z.boolean().default(!1),recovery_code:e.z.boolean().default(!1),duo:e.z.boolean().default(!1)}).optional(),sms_provider:e.z.object({provider:e.z.enum([`twilio`,`vonage`,`aws_sns`,`phone_message_hook`]).optional()}).optional(),twilio:e.z.object({sid:e.z.string().optional(),auth_token:e.z.string().optional(),from:e.z.string().optional(),messaging_service_sid:e.z.string().optional()}).optional(),phone_message:e.z.object({message:e.z.string().optional()}).optional()}).optional()}),e.z.object({date:e.z.string().openapi({description:`Date these events occurred in ISO 8601 format`,example:`2025-12-19`}),logins:e.z.number().openapi({description:`Number of logins on this date`,example:150}),signups:e.z.number().openapi({description:`Number of signups on this date`,example:25}),leaked_passwords:e.z.number().openapi({description:`Number of breached-password detections on this date (subscription required)`,example:0}),updated_at:e.z.string().openapi({description:`Date and time this stats entry was last updated in ISO 8601 format`,example:`2025-12-19T10:30:00.000Z`}),created_at:e.z.string().openapi({description:`Approximate date and time the first event occurred in ISO 8601 format`,example:`2025-12-19T00:00:00.000Z`})}),e.z.number().openapi({description:`Number of active users in the last 30 days`,example:1234}),e.z.enum([`active-users`,`logins`,`signups`,`refresh-tokens`,`sessions`]),e.z.enum([`hour`,`day`,`week`,`month`]),e.z.enum([`time`,`connection`,`client_id`,`user_type`,`event`]),e.z.enum([`password`,`social`,`passwordless`,`enterprise`]);var Nn=e.z.object({name:e.z.string(),type:e.z.string()}),Pn=e.z.object({elapsed:e.z.number(),rows_read:e.z.number().optional(),bytes_read:e.z.number().optional()});e.z.object({meta:e.z.array(Nn),data:e.z.array(e.z.record(e.z.string(),e.z.any())),rows:e.z.number(),rows_before_limit_at_least:e.z.number().optional(),statistics:Pn.optional()});var Fn=e.z.enum(`login.login-id.login-password.signup.signup-id.signup-password.reset-password.consent.mfa.mfa-push.mfa-otp.mfa-voice.mfa-phone.mfa-webauthn.mfa-email.mfa-recovery-code.status.device-flow.email-verification.email-otp-challenge.organizations.invitation.common.passkeys.captcha.custom-form.login-passwordless.mfa-login-options`.split(`.`)),In=e.z.record(e.z.string(),e.z.record(e.z.string(),e.z.string())).openapi({type:`object`,additionalProperties:{type:`object`,additionalProperties:{type:`string`}}});e.z.object({prompt:Fn,language:e.z.string(),custom_text:In});var Ln=e.z.enum([`phone`,`totp`,`email`,`push`,`webauthn-roaming`,`webauthn-platform`,`passkey`]),N=e.z.object({user_id:e.z.string(),type:Ln,phone_number:e.z.string().optional(),totp_secret:e.z.string().optional(),credential_id:e.z.string().optional(),public_key:e.z.string().optional(),sign_count:e.z.number().int().nonnegative().optional(),credential_backed_up:e.z.boolean().optional(),transports:e.z.array(e.z.string()).optional(),friendly_name:e.z.string().optional(),confirmed:e.z.boolean().default(!1)});function P(t,n){t.type===`phone`&&!t.phone_number&&n.addIssue({code:e.z.ZodIssueCode.custom,message:`phone_number is required when type is 'phone'`,path:[`phone_number`]}),t.type===`totp`&&!t.totp_secret&&n.addIssue({code:e.z.ZodIssueCode.custom,message:`totp_secret is required when type is 'totp'`,path:[`totp_secret`]}),[`webauthn-roaming`,`webauthn-platform`,`passkey`].includes(t.type)&&(t.credential_id||n.addIssue({code:e.z.ZodIssueCode.custom,message:`credential_id is required when type is '${t.type}'`,path:[`credential_id`]}),t.public_key||n.addIssue({code:e.z.ZodIssueCode.custom,message:`public_key is required when type is '${t.type}'`,path:[`public_key`]}))}N.superRefine(P),N.extend({id:e.z.string(),created_at:e.z.string(),updated_at:e.z.string()}).superRefine(P);var Rn=1e4;function F(e,t,n){let r=typeof t==`number`?{freshTtlMs:t,maxEntries:n}:t,i=r.freshTtlMs,a=r.staleTtlMs??0,o=r.staleIfErrorTtlMs??0,s=r.negativeTtlMs??i,c=r.maxEntries??Rn,l=r.waitUntil,u=new Map;function d(e){for(let[t,n]of u)n.stale_if_error_until<=e&&n.stale_until<=e&&!n.refreshing&&u.delete(t);for(;u.size>=c;){let e=u.keys().next().value;if(e===void 0)break;u.delete(e)}}function f(e,t,n){let r=n+(t===null?s:i),c=t===null?r:r+a,l={value:t,fresh_until:r,stale_until:c,stale_if_error_until:t===null?c:c+o};return u.delete(e),d(n),u.set(e,l),l}function p(t){let n=u.get(t);if(n?.refreshing)return n.refreshing;let r=n??{value:null,fresh_until:0,stale_until:0,stale_if_error_until:0},i=(async()=>{try{let n=await e.resolveHost(t);return f(t,n,Date.now()),n}catch(e){let n=u.get(t);throw n&&(n.refreshing=void 0,n.stale_if_error_until<=Date.now()&&u.delete(t)),e}})();return r.refreshing=i,n||(d(Date.now()),u.set(t,r)),i}return{async resolveHost(e){let t=Date.now(),n=u.get(e);if(n&&n.fresh_until>t)return u.delete(e),u.set(e,n),n.value;if(n&&n.stale_until>t){if(u.delete(e),u.set(e,n),!n.refreshing){let t=p(e).catch(()=>void 0);l&&l(t)}return n.value}try{return await p(e)}catch(e){if(n&&n.stale_if_error_until>t)return n.value;throw e}}}}var I=class{definitions=new Map;bindings;constructor(e={}){this.bindings=e}add(e){return this.definitions.set(e.type,e),this}has(e){return this.definitions.has(e)}build(e,t){let n=this.definitions.get(e);if(!n)throw Error(`Unknown proxy handler type: ${e}`);let r=n.optionsSchema.safeParse(t);if(!r.success)throw Error(`Invalid options for proxy handler "${e}": ${r.error.message}`);return n.build(r.data,{bindings:this.bindings})}};function L(e){return e}var R=`__authhero_proxy_request__`,z=`__authhero_proxy_tenant_id__`,B=`__authhero_proxy_custom_domain_id__`,V=`__authhero_proxy_domain__`,H=`x-authhero-proxy-mutability-probe`;function zn(e,t){e.set(R,t)}function U(e){return e.get(R)??e.req.raw}function Bn(e,t){e.set(z,t.tenant_id),e.set(B,t.custom_domain_id),e.set(V,t.domain)}function Vn(e){return e.get(z)}function Hn(e){return e.get(B)}function Un(e){return e.get(V)}function W(e,t){let n=U(e),r=new Headers(n.headers);t(r),zn(e,new Request(n,{headers:r}))}function G(e){let t=e.res;try{t.headers.append(H,`1`),t.headers.delete(H);return}catch{e.res=new Response(t.body,{status:t.status,statusText:t.statusText,headers:new Headers(t.headers)})}}var Wn=e.z.object({origins:e.z.array(e.z.string()).optional(),allow_credentials:e.z.boolean().optional(),allow_headers:e.z.array(e.z.string()).optional(),allow_methods:e.z.array(e.z.string()).optional(),expose_headers:e.z.array(e.z.string()).optional(),max_age:e.z.number().int().optional()}).refine(e=>!(e.allow_credentials&&e.origins?.includes(`*`)),{message:`Cannot use wildcard origin (*) with allow_credentials`});function K(e,t){let n=new Headers,r=e.origins??[`*`],i=r.includes(`*`);return i&&!e.allow_credentials?n.set(`Access-Control-Allow-Origin`,`*`):t&&(i||r.includes(t))&&(n.set(`Access-Control-Allow-Origin`,t),n.append(`Vary`,`Origin`)),e.allow_credentials&&n.set(`Access-Control-Allow-Credentials`,`true`),e.allow_methods?.length&&n.set(`Access-Control-Allow-Methods`,e.allow_methods.join(`, `)),e.allow_headers?.length&&n.set(`Access-Control-Allow-Headers`,e.allow_headers.join(`, `)),e.expose_headers?.length&&n.set(`Access-Control-Expose-Headers`,e.expose_headers.join(`, `)),e.max_age!==void 0&&n.set(`Access-Control-Max-Age`,String(e.max_age)),n}var Gn=L({type:`cors`,optionsSchema:Wn,build(e){return async(t,n)=>{let r=t.req.header(`origin`)??null;if(t.req.method===`OPTIONS`&&r!==null&&t.req.header(`access-control-request-method`)!==void 0){let t=K(e,r);return new Response(null,{status:204,headers:t})}await n();let i=K(e,r);G(t),i.forEach((e,n)=>{n.toLowerCase()===`vary`?t.res.headers.append(n,e):t.res.headers.set(n,e)})}}}),Kn=e.z.object({username:e.z.string(),password:e.z.string(),realm:e.z.string().optional()});function qn(e,t){let n=`${e}:${t}`;return typeof btoa==`function`?btoa(n):Buffer.from(n,`utf-8`).toString(`base64`)}var Jn=L({type:`basic_auth`,optionsSchema:Kn,build(e){let t=qn(e.username,e.password),n=(e.realm??`Restricted`).replace(/["\\\r\n]/g,``);return async(e,r)=>{let i=e.req.header(`authorization`);if(i){let e=i.indexOf(` `);if(e>0){let n=i.slice(0,e),a=i.slice(e+1);if(n.toLowerCase()===`basic`&&a===t)return r()}}return new Response(`Unauthorized`,{status:401,headers:{"WWW-Authenticate":`Basic realm="${n}"`}})}}}),Yn=L({type:`headers`,optionsSchema:e.z.object({request:e.z.record(e.z.string(),e.z.string()).optional(),response:e.z.record(e.z.string(),e.z.string()).optional(),remove_request:e.z.array(e.z.string()).optional(),remove_response:e.z.array(e.z.string()).optional()}),build(e){return async(t,n)=>{if((e.request||e.remove_request)&&W(t,t=>{if(e.remove_request?.forEach(e=>t.delete(e)),e.request)for(let[n,r]of Object.entries(e.request))t.set(n,r)}),await n(),(e.response||e.remove_response)&&(G(t),e.remove_response?.forEach(e=>t.res.headers.delete(e)),e.response))for(let[n,r]of Object.entries(e.response))t.res.headers.set(n,r)}}}),Xn=L({type:`cache`,optionsSchema:e.z.object({ttl_seconds:e.z.number().int().positive()}),build(e){return async(t,n)=>{if(await n(),!t.res.headers.has(`Cache-Control`)){let n=t.res.headers.has(`set-cookie`)?`private`:`public`;G(t),t.res.headers.set(`Cache-Control`,`${n}, max-age=${e.ttl_seconds}`)}}}}),Zn=L({type:`forwarded_headers`,optionsSchema:e.z.object({client_ip_header:e.z.string().default(`cf-connecting-ip`),set_x_real_ip:e.z.boolean().default(!0),set_x_original_url:e.z.boolean().default(!0)}),build(e){return async(t,n)=>{let r=new URL(t.req.url);W(t,n=>{n.set(`x-forwarded-host`,r.host),n.set(`x-forwarded-proto`,r.protocol.replace(`:`,``)),e.set_x_original_url&&n.set(`x-original-url`,t.req.url);let i=n.get(e.client_ip_header),a=(n.get(`x-forwarded-for`)??``).split(`,`).map(e=>e.trim()).filter(Boolean),o=i??a[a.length-1]??`127.0.0.1`,s=a.length===0||a[a.length-1]!==o,c=a.length?s?`${a.join(`, `)}, ${o}`:a.join(`, `):o;n.set(`x-forwarded-for`,c),e.set_x_real_ip&&n.set(`x-real-ip`,o)}),await n()}}}),Qn=e.z.object({upstream_host:e.z.string().optional()});function $n(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function er(e){if(typeof e.getSetCookie==`function`)return e.getSetCookie();let t=[];return e.forEach((e,n)=>{n.toLowerCase()===`set-cookie`&&t.push(e)}),t}var tr=L({type:`rewrite_cookies`,optionsSchema:Qn,build(e){return async(t,n)=>{await n();let r=new URL(t.req.url).hostname,i=e.upstream_host??t.get(`__proxy_upstream_host__`);if(!i)return;let a=er(t.res.headers);if(a.length===0)return;let o=$n(i),s=RegExp(`(?:^|;\\s*)Domain=\\.?${o}(?=;|$)`,`i`);G(t),t.res.headers.delete(`set-cookie`);for(let e of a)t.res.headers.append(`set-cookie`,e.replace(s,`Domain=${r}`))}}}),nr=L({type:`rewrite_location`,optionsSchema:e.z.object({upstream_origin:e.z.string().optional()}),build(e){return async(t,n)=>{await n();let r=t.res.status;if(r<300||r>=400)return;let i=t.res.headers.get(`location`);if(!i)return;let a=e.upstream_origin??t.get(`__proxy_upstream_origin__`);if(!a)return;let o;try{o=new URL(i)}catch{return}if(o.origin!==a)return;let s=new URL(t.req.url),c=`${`${s.protocol}//${s.host}`}${o.pathname}${o.search}${o.hash}`;G(t),t.res.headers.set(`location`,c)}}}),rr=class extends Error{ms;constructor(e,t){super(`${t??`Operation`} timed out after ${e}ms`),this.name=`TimeoutError`,this.ms=e}};function q(e){return e instanceof rr?!0:e instanceof Error?e.name===`AbortError`||e.name===`TimeoutError`:!1}function J(e,t){let n=new AbortController,r=setTimeout(()=>n.abort(),e);return t(n.signal).finally(()=>clearTimeout(r))}function Y(e,t,n){let r,i=new Promise((e,i)=>{r=setTimeout(()=>i(new rr(t,n)),t)});return Promise.race([e,i]).finally(()=>{r&&clearTimeout(r)})}var ir=new Set([`connection`,`keep-alive`,`proxy-authenticate`,`proxy-authorization`,`te`,`trailers`,`transfer-encoding`,`upgrade`]),ar=3e4,or=e.z.object({upstream_url:e.z.string(),preserve_host:e.z.boolean().default(!1),timeout_ms:e.z.number().int().positive().optional()});function sr(e,t){return e===``||e===`/`?t:`${e.endsWith(`/`)?e.slice(0,-1):e}${t.startsWith(`/`)?t:`/${t}`}`}function cr(e){return e!==`GET`&&e!==`HEAD`}function lr(e,t){let n=new URL(t.url),r=new URL(e.upstream_url);r.pathname=sr(r.pathname,n.pathname),r.search=n.search;let i=new Headers(t.headers);for(let e of ir)i.delete(e);e.preserve_host||i.set(`host`,r.host),i.has(`x-forwarded-host`)||i.set(`x-forwarded-host`,n.host),i.has(`x-forwarded-proto`)||i.set(`x-forwarded-proto`,n.protocol.replace(`:`,``));let a=cr(t.method)?t.body:void 0,o={method:t.method,headers:i,body:a,redirect:`manual`};return a instanceof ReadableStream&&(o.duplex=`half`),{target:r,init:o}}var ur=L({type:`http`,optionsSchema:or,build(e){let t=e.timeout_ms??ar;return async n=>{let{target:r,init:i}=lr(e,U(n));n.set(`__proxy_upstream_host__`,r.hostname),n.set(`__proxy_upstream_origin__`,`${r.protocol}//${r.host}`);try{return await J(t,e=>fetch(r.toString(),{...i,signal:e}))}catch(e){return q(e)?n.text(`Upstream timeout`,504,{"x-authhero-proxy-error":`http_timeout`}):n.text(`Bad gateway`,502,{"x-authhero-proxy-error":`http_failed`})}}}}),dr=3e4,fr=e.z.object({binding:e.z.string(),upstream_url:e.z.string().optional(),preserve_host:e.z.boolean().default(!0),timeout_ms:e.z.number().int().positive().optional()});function pr(e){return typeof e==`object`&&!!e&&typeof e.fetch==`function`}var mr=L({type:`service_binding`,optionsSchema:fr,build(e,t){let n=t.bindings[e.binding];if(!pr(n))throw Error(`Service binding "${e.binding}" is not configured or is not a Fetcher`);let r=e.upstream_url??`https://${e.binding}.binding.invalid/`,i=e.timeout_ms??dr;return async t=>{let a=U(t),{target:o,init:s}=lr({upstream_url:r,preserve_host:e.preserve_host},a);t.set(`__proxy_upstream_host__`,o.hostname),t.set(`__proxy_upstream_origin__`,`${o.protocol}//${o.host}`);try{return await J(i,async e=>n.fetch(new Request(o.toString(),{...s,signal:e})))}catch(e){return q(e)?t.text(`service_binding timed out after ${i}ms`,504,{"x-authhero-proxy-error":`service_binding_timeout`}):t.text(`Bad gateway`,502,{"x-authhero-proxy-error":`service_binding_failed`})}}}}),hr=3e4,gr=e.z.object({binding:e.z.string(),script_name:e.z.string(),cpu_ms:e.z.number().int().positive().optional(),subrequests:e.z.number().int().positive().optional(),timeout_ms:e.z.number().int().positive().optional()});function _r(e){return typeof e==`object`&&!!e&&typeof e.get==`function`}var X=/\{(tenant_id|custom_domain_id|domain|host)\}/g;function vr(e){return X.lastIndex=0,X.test(e)}var yr=L({type:`dispatch_namespace`,optionsSchema:gr,build(e,t){let n=t.bindings[e.binding];if(!_r(n))throw Error(`Dispatch namespace binding "${e.binding}" is not configured or does not expose .get()`);let r=vr(e.script_name),i=e.timeout_ms??hr,a=e.cpu_ms||e.subrequests?{limits:{...e.cpu_ms?{cpuMs:e.cpu_ms}:{},...e.subrequests?{subrequests:e.subrequests}:{}}}:void 0;return async t=>{let o=e.script_name;if(r){let n=Vn(t),r=Hn(t),i=Un(t),a=t.req.header(`host`)??t.req.header(`x-forwarded-host`)??``;if(o=o.replace(X,(e,t)=>{switch(t){case`tenant_id`:return n??``;case`custom_domain_id`:return r??``;case`domain`:return i??``;case`host`:return a;default:return``}}),o.includes(`{`)||o===``)return t.text(`dispatch_namespace: could not resolve script name from template "${e.script_name}"`,500)}let s=U(t);try{let e=n.get(o,void 0,a);return await J(i,async t=>{let n=new Request(s,{signal:t});return e.fetch(n)})}catch(e){return q(e)?t.text(`dispatch_namespace timed out after ${i}ms`,504,{"x-authhero-proxy-error":`dispatch_namespace_timeout`}):t.text(`Bad gateway`,502,{"x-authhero-proxy-error":`dispatch_namespace_failed`})}}}}),br=L({type:`redirect`,optionsSchema:e.z.object({upstream_url:e.z.string().refine(e=>{try{let t=new URL(e);return(t.protocol===`http:`||t.protocol===`https:`)&&!!t.hostname}catch{return!1}},{message:`upstream_url must be a valid http(s) URL with a hostname`}),status:e.z.union([e.z.literal(301),e.z.literal(302),e.z.literal(307),e.z.literal(308)]).default(302),preserve_path:e.z.boolean().default(!0),preserve_query:e.z.boolean().default(!0)}),build(e){return async t=>{let n=new URL(t.req.url),r=new URL(e.upstream_url),i=r.pathname&&r.pathname!==`/`;return e.preserve_path&&!i&&(r.pathname=n.pathname),e.preserve_query&&!r.search&&(r.search=n.search),new Response(null,{status:e.status,headers:{location:r.toString()}})}}}),xr=L({type:`static`,optionsSchema:e.z.object({status:e.z.number().int().default(200),headers:e.z.record(e.z.string(),e.z.string()).optional(),body:e.z.string().optional(),json:e.z.unknown().optional()}),build(e){return async()=>{let t=new Headers(e.headers??{}),n=e.body??null;return e.json!==void 0&&(n=JSON.stringify(e.json),t.has(`content-type`)||t.set(`content-type`,`application/json; charset=utf-8`)),new Response(n,{status:e.status,headers:t})}}});function Sr(e){e.add(Gn).add(Jn).add(Yn).add(Xn).add(Zn).add(tr).add(nr).add(ur).add(mr).add(yr).add(br).add(xr)}function Z(e){return[...e].sort((e,t)=>e.priority===t.priority?e.created_at.localeCompare(t.created_at):e.priority-t.priority)}function Cr(e,t){let n=e.toLowerCase(),r=t.toLowerCase();if(n===r)return!0;if(n.startsWith(`*.`)){let e=n.slice(1);return r.endsWith(e)&&r.length>e.length}return!1}function wr(e,t){return!e||e.length===0?!0:e.some(e=>Cr(e,t))}function Tr(e){let t=(e.headers?Object.entries(e.headers):[]).map(([e,t])=>[e.toLowerCase(),new RegExp(t)]),n=(e.query?Object.entries(e.query):[]).map(([e,t])=>[e,new RegExp(t)]),r=e.hosts;return async(e,i)=>{if(r&&!wr(r,e.req.header(`host`)??``))return new Response(`No matching route`,{status:404});for(let[n,r]of t){let t=e.req.header(n);if(t===void 0||!r.test(t))return new Response(`No matching route`,{status:404})}if(n.length>0){let t=new URL(e.req.url);for(let[e,r]of n){let n=t.searchParams.get(e);if(n===null||!r.test(n))return new Response(`No matching route`,{status:404})}}await i()}}var Er=[`GET`,`POST`,`PUT`,`PATCH`,`DELETE`,`OPTIONS`,`HEAD`];function Dr(e,n,r){let i=new t.Hono;r&&i.use(`*`,async(e,t)=>{Bn(e,r),await t()});let a=Z(e);for(let e of a){let t=[];t.push(Tr(e.match));for(let r of e.handlers)t.push(n.build(r.type,r.options));let r=e.match.methods?.length?e.match.methods.map(e=>e.toUpperCase()):Er,a=e.match.path||`/*`;i.on(r,[a],...t)}return i.all(`*`,e=>e.text(`No matching route`,404)),i.onError((e,t)=>{let n=q(e);return t.text(n?`Upstream timeout`:`Bad gateway`,n?504:502,{"x-authhero-proxy-error":n?`handler_timeout`:`handler_failed`})}),i}var Or=5e3;function kr(e){return e.resolver?e.resolver:e.cache?F(e.data,e.cache):F(e.data,e.cacheTtlMs??3e4)}function Ar(e){if(e.registry)return e.registry;let t=new I(e.bindings??{});return Sr(t),t}function Q(e){let t=kr(e),n=Ar(e),r=new WeakMap,i=e.resolveHostTimeoutMs??Or;return async e=>{let a=e.req.header(`host`)??e.req.header(`x-forwarded-host`);if(!a)return e.text(`Missing host`,400);try{let o=await Y(t.resolveHost(a),i,`resolveHost`);if(!o)return e.text(`Unknown host`,404);let s=r.get(o);return s||(s=Dr(o.routes,n,{tenant_id:o.tenant_id,custom_domain_id:o.custom_domain_id,domain:o.domain}),r.set(o,s)),await s.fetch(e.req.raw)}catch(t){return q(t)?e.text(`Resolve host timed out after ${i}ms`,504,{"x-authhero-proxy-error":`resolve_host_timeout`}):e.text(`Bad gateway`,502,{"x-authhero-proxy-error":`data_plane_error`})}}}function jr(e){let n=new t.Hono;return n.all(`*`,Q(e)),n}function Mr(e){let n=new t.Hono;return n.all(`*`,Q({data:e.data,cacheTtlMs:e.cacheTtlMs,cache:e.cache,resolver:e.resolver,registry:e.registry,bindings:e.bindings,resolveHostTimeoutMs:e.resolveHostTimeoutMs})),n.onError((e,t)=>{let n=q(e);return t.text(n?`Proxy timeout`:`Bad gateway`,n?504:502,{"x-authhero-proxy-error":n?`proxy_timeout`:`proxy_error`})}),n}var Nr=1e3,Pr=1e3;function Fr(e,t){return new Request(`https://proxy-cache.internal/${encodeURIComponent(e)}/hosts/${encodeURIComponent(t.toLowerCase())}`,{method:`GET`})}function Ir(){return globalThis.caches?.default}function Lr(e){let t=e.cache??Ir();if(!t)return e.upstream;let n=t,r=e.namespace??`authhero-proxy`,i=e.cacheTtlSeconds??60,a=e.negativeCacheTtlSeconds??10,o=e.waitUntil,s=e.cacheReadTimeoutMs??Nr,c=e.cacheWriteTimeoutMs??Pr;async function l(e){try{return await Y(Promise.resolve(n.match(e)),s,`cache.match`)}catch{return}}return{async resolveHost(t){let s=Fr(r,t),u=await l(s);if(u)try{return(await u.json()).value}catch{}let d=await e.upstream.resolveHost(t),f=d===null?a:i,p=new Response(JSON.stringify({value:d}),{headers:{"content-type":`application/json`,"cache-control":`public, max-age=${f}`}}),m=Y(Promise.resolve(n.put(s,p)),c,`cache.put`).catch(()=>void 0);return o?o(m):await m,d}}}function Rr(e,t){return Fr(e,t)}var zr=1e3,Br=1e3;function Vr(e){let{upstream:t,cache:n,freshTtlMs:r,staleTtlMs:i=0,staleIfErrorTtlMs:a=0,negativeTtlMs:o=r,keyPrefix:s=`authhero-proxy-host`,waitUntil:c,cacheReadTimeoutMs:l=zr,cacheWriteTimeoutMs:u=Br}=e,d=new Map;function f(e){return`${s}:${e.toLowerCase()}`}async function p(e){try{return await Y(n.get(e),l,`cache.get`)??null}catch{return null}}function m(e,t,r){let i=Y(Promise.resolve().then(()=>n.set(e,t,r)),u,`cache.set`).catch(()=>void 0);return c?(c(i),Promise.resolve()):i}async function h(e){let n=d.get(e);if(n)return n;let s=(async()=>{try{let n=await t.resolveHost(e),s=Date.now(),c=n===null?o:r,l=n===null?0:i,u=n===null?0:a,d={value:n,freshUntilMs:s+c,staleUntilMs:s+c+l,staleIfErrorUntilMs:s+c+l+u},p=Math.max(1,Math.ceil((c+l+u)/1e3));return await m(f(e),d,p),n}finally{d.delete(e)}})();return d.set(e,s),s}return{async resolveHost(e){let t=await p(f(e)),n=Date.now();if(t&&typeof t.freshUntilMs==`number`){if(t.freshUntilMs>n)return t.value;if(t.staleUntilMs>n){if(!d.has(e)){let t=h(e).catch(()=>void 0);c&&c(t)}return t.value}}try{return await h(e)}catch(e){if(t&&(t.staleIfErrorUntilMs??t.staleUntilMs)>n)return t.value;throw e}}}}function Hr(e,t){return`${e}:${t.toLowerCase()}`}function $(){throw Error(`Static proxy adapter is read-only; configure routes at init time`)}function Ur(e,t,n,r,i,a){return{id:e.id??`${n}:${t}`,tenant_id:r,custom_domain_id:i,priority:e.priority??100,match:{...e.match,path:e.match.path||`/*`},handlers:e.handlers,created_at:e.created_at??a,updated_at:e.updated_at??a}}function Wr(e){let t=new Date().toISOString(),n=e.defaultTenantId??`static`,r=new Map;for(let[i,a]of Object.entries(e.hosts)){let e=i.toLowerCase(),o=Array.isArray(a)?{routes:a}:a,s=o.tenant_id??n,c=o.custom_domain_id??e,l=o.routes.map((n,r)=>Ur(n,r,e,s,c,t)).sort((e,t)=>e.priority-t.priority);r.set(e,{tenant_id:s,custom_domain_id:c,domain:e,routes:l})}return{proxyRoutes:{async create(){return $()},async update(){return $()},async remove(){return $()},async get(e,t){for(let n of r.values()){if(n.tenant_id!==e)continue;let r=n.routes.find(e=>e.id===t);if(r)return r}return null},async list(e,t){let n=[];for(let i of r.values())i.tenant_id===e&&(t?.custom_domain_id&&i.custom_domain_id!==t.custom_domain_id||n.push(...i.routes));let i=t?.per_page??n.length,a=(t?.page??0)*i,o=n.slice(a,a+i);return{proxy_routes:o,start:a,limit:i,length:o.length}}},async resolveHost(e){return r.get(e.toLowerCase())??null}}}function Gr(e,t={}){return{priority:t.priority,match:{path:t.path??`/*`},handlers:[{type:`http`,options:{upstream_url:e,preserve_host:t.preserve_host??!1}}]}}var Kr=`proxy:resolve_host`;function qr(){let e=()=>{throw Error(`HTTP proxy adapter does not expose write access to proxy_routes; mutate via the control-plane management API`)};return{async create(){return e()},async update(){return e()},async remove(){return e()},async get(){throw Error(`HTTP proxy adapter does not expose per-route reads; use resolveHost`)},async list(){throw Error(`HTTP proxy adapter does not expose per-route reads; use resolveHost`)}}}function Jr(e){let t=e.fetch??fetch,n=e.baseUrl.replace(/\/+$/,``),r=e.resolveHostPath??`/api/v2/proxy/control-plane/hosts/`,i=e.audience??`${n}/api/v2/`,a=e.scope??`proxy:resolve_host`,o=e.tokenRefreshSkewSeconds??60,s=e.timeoutMs??5e3;function c(e){let t=new AbortController,n=setTimeout(()=>t.abort(),s);return e(t.signal).finally(()=>clearTimeout(n))}let l=null,u=null;async function d(){let r=await c(r=>t(`${n}/oauth/token`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({grant_type:`client_credentials`,client_id:e.clientId,client_secret:e.clientSecret,audience:i,scope:a}),signal:r}));if(!r.ok)throw Error(`Proxy adapter token request failed: ${r.status} ${await r.text().catch(()=>``)}`);let s=await r.json(),u=s.expires_in??3600;return l={value:s.access_token,expires_at:Date.now()+(u-o)*1e3},s.access_token}async function f(){return l&&l.expires_at>Date.now()?l.value:u||(u=d().finally(()=>{u=null}),u)}return{proxyRoutes:qr(),async resolveHost(e){let i=await f(),a=`${n}${r}${encodeURIComponent(e.toLowerCase())}`,o=await c(e=>t(a,{headers:{authorization:`Bearer ${i}`},signal:e}));if(o.status===404)return null;if(!o.ok)throw Error(`Proxy adapter resolveHost failed: ${o.status} ${await o.text().catch(()=>``)}`);return await o.json()}}}exports.HandlerRegistry=I,exports.PROXY_RESOLVE_HOST_SCOPE=Kr,exports.basicAuthHandler=Jn,exports.buildCacheAdapterKey=Hr,exports.buildCacheApiKey=Rr,exports.buildMatchFilter=Tr,exports.cacheHandler=Xn,exports.compileHostApp=Dr,exports.corsHandler=Gn,exports.createCacheAdapterHostCache=Vr,exports.createCacheApiHostCache=Lr,exports.createHttpProxyAdapter=Jr,exports.createInMemoryHostCache=F,exports.createProxyApp=Mr,exports.createProxyDataPlaneHandler=Q,exports.createProxyDataPlaneRouter=jr,exports.createStaticProxyAdapter=Wr,exports.defineHandler=L,exports.dispatchNamespaceHandler=yr,exports.forwardedHeadersHandler=Zn,exports.handlerConfigSchema=_n,exports.headersHandler=Yn,exports.httpHandler=ur,exports.httpRoute=Gr,exports.matchSchema=gn,exports.matchesAnyHost=wr,exports.matchesHost=Cr,exports.proxyRouteInsertSchema=M,exports.proxyRouteSchema=vn,exports.proxyRouteUpdateSchema=yn,exports.redirectHandler=br,exports.registerBuiltinHandlers=Sr,exports.rewriteCookiesHandler=tr,exports.rewriteLocationHandler=nr,exports.serviceBindingHandler=mr,exports.sortRoutes=Z,exports.staticHandler=xr;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@hono/zod-openapi"),t=require("hono");var n=e.z.object({created_at:e.z.string(),updated_at:e.z.string()}),r=e.z.object({id:e.z.string(),version:e.z.string().optional()}),i=e.z.object({name:e.z.string(),version:e.z.string()}),a=e.z.object({name:e.z.string(),value:e.z.string().optional()}),o=e.z.object({name:e.z.string().max(255),code:e.z.string().max(1e5),supported_triggers:e.z.array(r).optional(),runtime:e.z.string().max(50).optional(),dependencies:e.z.array(i).optional(),secrets:e.z.array(a).optional(),is_system:e.z.boolean().optional(),inherit:e.z.boolean().optional()});o.partial().extend({status:e.z.enum([`draft`,`built`]).optional(),deployed_at:e.z.string().optional()}),o.extend({id:e.z.string(),tenant_id:e.z.string(),status:e.z.enum([`draft`,`built`]).default(`built`),deployed_at:e.z.string().optional(),secrets:e.z.array(e.z.object({name:e.z.string(),value:e.z.string().optional()})).optional()}).extend(n.shape);var s=e.z.string(),c=e.z.enum([`unspecified`,`pending`,`final`,`partial`,`canceled`,`suspended`]),l=e.z.object({id:e.z.string(),msg:e.z.string(),url:e.z.string().optional()}),u=e.z.object({action_name:e.z.string(),error:l.nullable(),started_at:e.z.string(),ended_at:e.z.string()}),d=e.z.object({level:e.z.enum([`log`,`info`,`warn`,`error`,`debug`]),message:e.z.string()}),f=e.z.array(e.z.object({action_name:e.z.string(),lines:e.z.array(d)}));e.z.object({id:e.z.string(),tenant_id:e.z.string(),trigger_id:s,status:c,results:e.z.array(u),logs:f.optional(),created_at:e.z.string(),updated_at:e.z.string()}).omit({tenant_id:!0,created_at:!0,updated_at:!0}),e.z.object({action_id:e.z.string(),code:e.z.string().max(1e5),runtime:e.z.string().max(50).optional(),dependencies:e.z.array(i).optional(),secrets:e.z.array(a).optional(),supported_triggers:e.z.array(r).optional(),deployed:e.z.boolean().default(!0)}).extend({id:e.z.string(),tenant_id:e.z.string(),number:e.z.number().int()}).extend(n.shape);var p=e.z.enum([`user_action`,`admin_action`,`system`,`api`]),m=e.z.object({type:e.z.enum([`user`,`admin`,`system`,`api_key`,`client_credentials`]),id:e.z.string().optional(),email:e.z.string().optional(),org_id:e.z.string().optional(),org_name:e.z.string().optional(),scopes:e.z.array(e.z.string()).optional(),client_id:e.z.string().optional()}),h=e.z.object({type:e.z.string(),id:e.z.string(),before:e.z.record(e.z.string(),e.z.unknown()).optional(),after:e.z.record(e.z.string(),e.z.unknown()).optional(),diff:e.z.record(e.z.string(),e.z.object({old:e.z.unknown(),new:e.z.unknown()})).optional()}),ee=e.z.object({method:e.z.string(),path:e.z.string(),query:e.z.record(e.z.string(),e.z.string()).optional(),body:e.z.unknown().optional(),ip:e.z.string(),user_agent:e.z.string().optional(),correlation_id:e.z.string().optional()}),te=e.z.object({status_code:e.z.number(),body:e.z.unknown().optional()}),ne=e.z.object({country_code:e.z.string(),city_name:e.z.string(),latitude:e.z.string(),longitude:e.z.string(),time_zone:e.z.string(),continent_code:e.z.string()}),re=e.z.object({name:e.z.string(),version:e.z.string(),env:e.z.record(e.z.string(),e.z.string()).optional()});e.z.object({tenant_id:e.z.string(),event_type:e.z.string(),log_type:e.z.string(),description:e.z.string().optional(),category:p,actor:m,target:h,request:ee,response:te.optional(),connection:e.z.string().optional(),strategy:e.z.string().optional(),strategy_type:e.z.string().optional(),audience:e.z.string().optional(),scope:e.z.string().optional(),location:ne.optional(),auth0_client:re.optional(),hostname:e.z.string(),is_mobile:e.z.boolean().optional(),timestamp:e.z.string()}).extend({id:e.z.string()}),e.z.enum([`AUTH0`,`EMAIL`,`REDIRECT`]),e.z.enum([`CREATE_USER`,`GET_USER`,`UPDATE_USER`,`SEND_REQUEST`,`SEND_EMAIL`]),e.z.enum([`VERIFY_EMAIL`]);var ie=e.z.object({require_mx_record:e.z.boolean().optional(),block_aliases:e.z.boolean().optional(),block_free_emails:e.z.boolean().optional(),block_disposable_emails:e.z.boolean().optional(),blocklist:e.z.array(e.z.string()).optional(),allowlist:e.z.array(e.z.string()).optional()}),ae=e.z.object({id:e.z.string(),alias:e.z.string().max(100).optional(),type:e.z.literal(`AUTH0`),action:e.z.literal(`UPDATE_USER`),allow_failure:e.z.boolean().optional(),mask_output:e.z.boolean().optional(),params:e.z.object({connection_id:e.z.string().optional(),user_id:e.z.string(),changes:e.z.record(e.z.string(),e.z.any())})}),oe=e.z.object({id:e.z.string(),alias:e.z.string().max(100).optional(),type:e.z.literal(`EMAIL`),action:e.z.literal(`VERIFY_EMAIL`),allow_failure:e.z.boolean().optional(),mask_output:e.z.boolean().optional(),params:e.z.object({email:e.z.string(),rules:ie.optional()})}),se=e.z.enum([`change-email`,`account`,`custom`]),ce=e.z.object({id:e.z.string(),alias:e.z.string().max(100).optional(),type:e.z.literal(`REDIRECT`),action:e.z.literal(`REDIRECT_USER`),allow_failure:e.z.boolean().optional(),mask_output:e.z.boolean().optional(),params:e.z.object({target:se.openapi({description:`The predefined target to redirect to, or 'custom' for a custom URL`}),custom_url:e.z.string().optional().openapi({description:`Custom URL to redirect to when target is 'custom'`})})}),le=e.z.union([ae,oe,ce]);e.z.object({name:e.z.string().min(1).max(150).openapi({description:`The name of the flow`}),actions:e.z.array(le).optional().default([]).openapi({description:`The list of actions to execute in sequence`})}).extend(n.shape).extend({id:e.z.string().openapi({description:`Unique identifier for the flow`,example:`af_12tMpdJ3iek7svMyZkSh5M`})}),e.z.object({page:e.z.string().min(0).optional().default(`0`).transform(e=>parseInt(e,10)).openapi({description:`The page number where 0 is the first page`}),per_page:e.z.string().min(1).optional().default(`10`).transform(e=>parseInt(e,10)).openapi({description:`The number of items per page`}),include_totals:e.z.string().optional().default(`false`).transform(e=>e===`true`).openapi({description:`If the total number of items should be included in the response`}),sort:e.z.string().regex(/^.+:(-1|1)$/).optional().openapi({description:`A property that should have the format 'string:-1' or 'string:1'`}),q:e.z.string().optional().openapi({description:`A lucene query string used to filter the results`})}),e.z.object({start:e.z.number(),limit:e.z.number(),length:e.z.number(),total:e.z.number().optional()});var ue=e.z.object({email:e.z.string().optional(),email_verified:e.z.boolean().optional(),name:e.z.string().optional(),username:e.z.string().optional(),given_name:e.z.string().optional(),phone_number:e.z.string().optional(),phone_verified:e.z.boolean().optional(),family_name:e.z.string().optional()}).catchall(e.z.any()),de=e.z.object({connection:e.z.string(),user_id:e.z.string(),provider:e.z.string(),isSocial:e.z.boolean(),email:e.z.string().optional(),email_verified:e.z.boolean().optional(),phone_number:e.z.string().optional(),phone_verified:e.z.boolean().optional(),username:e.z.string().optional(),access_token:e.z.string().optional(),access_token_secret:e.z.string().optional(),refresh_token:e.z.string().optional(),profileData:ue.optional()}),fe=e.z.object({formatted:e.z.string().optional(),street_address:e.z.string().optional(),locality:e.z.string().optional(),region:e.z.string().optional(),postal_code:e.z.string().optional(),country:e.z.string().optional()}).optional(),pe=e.z.object({email:e.z.string().transform(e=>e.toLowerCase()).optional(),username:e.z.string().refine(e=>!e.includes(`@`),{message:`Usernames must not contain "@". Use the email field for email addresses.`}).optional(),phone_number:e.z.string().optional(),phone_verified:e.z.boolean().optional(),given_name:e.z.string().optional(),family_name:e.z.string().optional(),nickname:e.z.string().optional(),name:e.z.string().optional(),picture:e.z.string().optional(),locale:e.z.string().optional(),linked_to:e.z.string().optional(),profileData:e.z.string().optional(),user_id:e.z.string().optional(),app_metadata:e.z.any().default({}).optional(),user_metadata:e.z.any().default({}).optional(),middle_name:e.z.string().optional(),preferred_username:e.z.string().optional(),profile:e.z.string().optional(),website:e.z.string().optional(),gender:e.z.string().optional(),birthdate:e.z.string().optional(),zoneinfo:e.z.string().optional(),address:fe});pe.extend({email_verified:e.z.boolean().default(!1),verify_email:e.z.boolean().optional(),last_ip:e.z.string().optional(),last_login:e.z.string().optional(),user_id:e.z.string().optional(),provider:e.z.string().optional(),connection:e.z.string(),is_social:e.z.boolean().optional(),registration_completed_at:e.z.string().optional(),password:e.z.object({hash:e.z.string(),algorithm:e.z.string()}).optional()}).omit({password:!0}).extend(n.shape).extend({user_id:e.z.string(),provider:e.z.string(),is_social:e.z.boolean(),email:e.z.string().optional(),login_count:e.z.number().default(0),identities:e.z.array(de).optional()}).omit({registration_completed_at:!0}),pe.extend({login_count:e.z.number(),multifactor:e.z.array(e.z.string()).optional(),last_ip:e.z.string().optional(),last_login:e.z.string().optional(),user_id:e.z.string()}).catchall(e.z.any());var me=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,he=(e=21)=>{let t=``,n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=me[n[e]&63];return t},ge=e.z.object({client_id:e.z.string().optional().openapi({description:`ID of this client. Generated server-side if omitted (Auth0 behavior).`}),name:e.z.string().min(1).openapi({description:`Name of this client (min length: 1 character, does not allow < or >).`}),description:e.z.string().max(140).optional().openapi({description:`Free text description of this client (max length: 140 characters).`}),global:e.z.boolean().default(!1).openapi({description:`Whether this is your global 'All Applications' client representing legacy tenant settings (true) or a regular client (false).`}),client_secret:e.z.string().default(()=>he()).optional().openapi({description:`Client secret (which you must not make public).`}),app_type:e.z.enum([`native`,`spa`,`regular_web`,`non_interactive`,`resource_server`,`express_configuration`,`rms`,`box`,`cloudbees`,`concur`,`dropbox`,`mscrm`,`echosign`,`egnyte`,`newrelic`,`office365`,`salesforce`,`sentry`,`sharepoint`,`slack`,`springcm`,`zendesk`,`zoom`,`sso_integration`,`oag`]).default(`regular_web`).optional().openapi({description:`The type of application this client represents`}),logo_uri:e.z.string().url().optional().openapi({description:`URL of the logo to display for this client. Recommended size is 150x150 pixels.`}),is_first_party:e.z.boolean().default(!0).openapi({description:`Whether this client is a first party client (true) or not (false). First-party clients skip the consent screen; third-party clients require explicit user consent for non-basic scopes.`}),oidc_conformant:e.z.boolean().default(!0).openapi({description:`Whether this client conforms to strict OIDC specifications (true) or uses legacy features (false).`}),auth0_conformant:e.z.boolean().default(!0).openapi({description:`Whether this client follows Auth0-compatible behavior (true) or strict OIDC behavior (false). When true, profile/email claims are included in the ID token when scopes are requested. When false, these claims are only available from the userinfo endpoint (strict OIDC 5.4 compliance).`}),callbacks:e.z.array(e.z.string()).default([]).optional().openapi({description:`Comma-separated list of URLs whitelisted for Auth0 to use as a callback to the client after authentication.`}),allowed_origins:e.z.array(e.z.string()).default([]).optional().openapi({description:`Comma-separated list of URLs allowed to make requests from JavaScript to Auth0 API (typically used with CORS). By default, all your callback URLs will be allowed. This field allows you to enter other origins if necessary. You can also use wildcards at the subdomain level (e.g., https://*.contoso.com). Query strings and hash information are not taken into account when validating these URLs.`}),web_origins:e.z.array(e.z.string()).default([]).optional().openapi({description:`Comma-separated list of allowed origins for use with Cross-Origin Authentication, Device Flow, and web message response mode.`}),client_aliases:e.z.array(e.z.string()).default([]).optional().openapi({description:`List of audiences/realms for SAML protocol. Used by the wsfed addon.`}),allowed_clients:e.z.array(e.z.string()).default([]).optional().openapi({description:`List of allow clients and API ids that are allowed to make delegation requests. Empty means all all your clients are allowed.`}),connections:e.z.array(e.z.string()).default([]).optional().openapi({description:`List of connection IDs enabled for this client. The order determines the display order on the login page.`}),allowed_logout_urls:e.z.array(e.z.string()).default([]).optional().openapi({description:`Comma-separated list of URLs that are valid to redirect to after logout from Auth0. Wildcards are allowed for subdomains.`}),session_transfer:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`Native to Web SSO Configuration`}),oidc_logout:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`Configuration for OIDC backchannel logout`}),grant_types:e.z.array(e.z.string()).default([]).optional().openapi({description:`List of grant types supported for this application. Can include authorization_code, implicit, refresh_token, client_credentials, password, http://auth0.com/oauth/grant-type/password-realm, http://auth0.com/oauth/grant-type/mfa-oob, http://auth0.com/oauth/grant-type/mfa-otp, http://auth0.com/oauth/grant-type/mfa-recovery-code, urn:openid:params:grant-type:ciba, and urn:ietf:params:oauth:grant-type:device_code.`}),jwt_configuration:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`Configuration related to JWTs for the client.`}),signing_keys:e.z.array(e.z.record(e.z.string(),e.z.any())).default([]).optional().openapi({description:`Signing certificates associated with this client.`}),encryption_key:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`Encryption used for WsFed responses with this client.`}),sso:e.z.boolean().default(!1).openapi({description:`Applies only to SSO clients and determines whether Auth0 will handle Single Sign On (true) or whether the Identity Provider will (false).`}),sso_disabled:e.z.boolean().default(!1).openapi({description:`Whether Single Sign On is disabled for this client. When true, existing SSO sessions will not be reused and users must authenticate every time.`}),cross_origin_authentication:e.z.boolean().default(!1).openapi({description:`Whether this client can be used to make cross-origin authentication requests (true) or it is not allowed to make such requests (false).`}),cross_origin_loc:e.z.string().url().optional().openapi({description:`URL of the location in your site where the cross origin verification takes place for the cross-origin auth flow when performing Auth in your own domain instead of Auth0 hosted login page.`}),custom_login_page_on:e.z.boolean().default(!1).openapi({description:`Whether a custom login page is to be used (true) or the default provided login page (false).`}),custom_login_page:e.z.string().optional().openapi({description:`The content (HTML, CSS, JS) of the custom login page.`}),custom_login_page_preview:e.z.string().optional().openapi({description:`The content (HTML, CSS, JS) of the custom login page. (Used on Previews)`}),form_template:e.z.string().optional().openapi({description:`HTML form template to be used for WS-Federation.`}),addons:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`Addons enabled for this client and their associated configurations.`}),token_endpoint_auth_method:e.z.enum([`none`,`client_secret_post`,`client_secret_basic`,`client_secret_jwt`,`private_key_jwt`]).default(`client_secret_basic`).optional().openapi({description:"Defines the requested authentication method for the token endpoint. `none` (public client), `client_secret_post` / `client_secret_basic` (HTTP POST / Basic), `client_secret_jwt` (RFC 7523 HMAC assertion using client_secret), or `private_key_jwt` (RFC 7523 asymmetric assertion verified against the client's `jwks` / `jwks_uri`)."}),client_metadata:e.z.record(e.z.string(),e.z.string().max(255)).default({}).optional().openapi({description:`Metadata associated with the client, in the form of an object with string values (max 255 chars). Maximum of 10 metadata properties allowed. Field names (max 255 chars) are alphanumeric and may only include the following special characters: :,-+=_*?"/()<>@ [Tab][Space]`}),hide_sign_up_disabled_error:e.z.boolean().default(!1).optional().openapi({description:"Enumeration-safe variant of the connection-level `disable_signup` flag. When a signup is blocked by the password connection and this is true, the identifier screen does not reveal that an email is unknown — it advances to the OTP/password challenge as if the account existed and fails at credential check. Mitigates email enumeration at the cost of UX: users without an account see a generic credential failure instead of an explicit signup-disabled message."}),mobile:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`Additional configuration for native mobile apps.`}),initiate_login_uri:e.z.string().url().optional().openapi({description:`Initiate login uri, must be https`}),native_social_login:e.z.record(e.z.string(),e.z.any()).default({}).optional(),refresh_token:e.z.object({rotation_type:e.z.enum([`rotating`,`non-rotating`]).optional().openapi({description:`Whether refresh tokens for this client are rotated on every exchange (Auth0 'rotating' behavior) or kept stable (legacy non-rotating). Defaults to 'non-rotating' when unset.`}),leeway:e.z.number().int().min(0).max(600).optional().openapi({description:`Seconds after a parent token's first rotation during which presenting it again still mints a fresh sibling child instead of triggering reuse-detection. Defaults to 30s when unset.`}),expiration_type:e.z.enum([`expiring`,`non-expiring`]).optional().openapi({description:`Auth0-compatible: whether refresh tokens expire.`}),token_lifetime:e.z.number().int().min(0).optional().openapi({description:`Auth0-compatible: refresh-token absolute lifetime in seconds.`}),infinite_token_lifetime:e.z.boolean().optional().openapi({description:`Auth0-compatible: when true, refresh tokens have no absolute expiry.`}),idle_token_lifetime:e.z.number().int().min(0).optional().openapi({description:`Auth0-compatible: refresh-token idle (sliding) lifetime in seconds.`}),infinite_idle_token_lifetime:e.z.boolean().optional().openapi({description:`Auth0-compatible: when true, refresh tokens have no idle expiry.`})}).default({}).optional().openapi({description:`Refresh token configuration`}),default_organization:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`Defines the default Organization ID and flows`}),organization_usage:e.z.enum([`deny`,`allow`,`require`]).default(`deny`).optional().openapi({description:`Defines how to proceed during an authentication transaction with regards an organization. Can be deny (default), allow or require.`}),organization_require_behavior:e.z.enum([`no_prompt`,`pre_login_prompt`,`post_login_prompt`]).default(`no_prompt`).optional().openapi({description:`Defines how to proceed during an authentication transaction when client.organization_usage: 'require'. Can be no_prompt (default), pre_login_prompt or post_login_prompt. post_login_prompt requires oidc_conformant: true.`}),client_authentication_methods:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`Defines client authentication methods.`}),require_pushed_authorization_requests:e.z.boolean().default(!1).openapi({description:`Makes the use of Pushed Authorization Requests mandatory for this client`}),require_proof_of_possession:e.z.boolean().default(!1).openapi({description:`Makes the use of Proof-of-Possession mandatory for this client`}),signed_request_object:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`JWT-secured Authorization Requests (JAR) settings.`}),compliance_level:e.z.enum([`none`,`fapi1_adv_pkj_par`,`fapi1_adv_mtls_par`,`fapi2_sp_pkj_mtls`,`fapi2_sp_mtls_mtls`]).optional().openapi({description:`Defines the compliance level for this client, which may restrict it's capabilities`}),par_request_expiry:e.z.number().optional().openapi({description:`Specifies how long, in seconds, a Pushed Authorization Request URI remains valid`}),token_quota:e.z.record(e.z.string(),e.z.any()).default({}).optional(),owner_user_id:e.z.string().optional().openapi({description:`User ID of the consenting user when this client was created via IAT-gated Dynamic Client Registration. NULL for clients created via the Management API or open DCR.`}),registration_type:e.z.enum([`manual`,`open_dcr`,`iat_dcr`]).optional().openapi({description:"Provenance of this client. `manual` = Management API; `open_dcr` = RFC 7591 without IAT; `iat_dcr` = RFC 7591 with an Initial Access Token."}),registration_metadata:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:"Arbitrary metadata captured at Dynamic Client Registration time that isn't a first-class client field (e.g. integration_type, domain). Also stores `iat_constraints` for clients created via IAT so RFC 7592 PUT can enforce field immutability."}),user_linking_mode:e.z.enum([`builtin`,`off`]).optional().openapi({description:"Per-client override for the built-in email-based user-linking path. `builtin` runs the legacy in-process linking at user creation/email update. `off` disables the legacy path; linking only happens if the tenant has enabled the `account-linking` template hook. When unset, the service-level `userLinkingMode` default applies."})});e.z.object({created_at:e.z.string(),updated_at:e.z.string()}).extend(ge.shape).extend({client_id:e.z.string()});var _e=e.z.object({client_id:e.z.string().min(1).openapi({description:`ID of the client.`}),audience:e.z.string().min(1).openapi({description:`The audience (API identifier) of this client grant.`}),scope:e.z.array(e.z.string()).optional().openapi({description:`Scopes allowed for this client grant.`}),organization_usage:e.z.enum([`deny`,`allow`,`require`]).optional().openapi({description:`Defines whether organizations can be used with client credentials exchanges for this grant.`}),allow_any_organization:e.z.boolean().optional().openapi({description:`If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations.`}),is_system:e.z.boolean().optional().openapi({description:`If enabled, this grant is a special grant created by Auth0. It cannot be modified or deleted directly.`}),subject_type:e.z.enum([`client`,`user`]).optional().openapi({description:`The type of application access the client grant allows. Use of this field is subject to the applicable Free Trial terms in Okta's Master Subscription Agreement.`}),authorization_details_types:e.z.array(e.z.string()).optional().openapi({description:`Types of authorization_details allowed for this client grant. Use of this field is subject to the applicable Free Trial terms in Okta's Master Subscription Agreement.`})}),ve=e.z.object({id:e.z.string().openapi({description:`ID of the client grant.`})}).extend(_e.shape).extend({created_at:e.z.string().optional(),updated_at:e.z.string().optional()});e.z.array(ve);var ye=e.z.enum([`iat`,`rat`]),be=e.z.object({id:e.z.string(),token_hash:e.z.string(),type:ye,client_id:e.z.string().optional(),sub:e.z.string().optional(),constraints:e.z.record(e.z.string(),e.z.unknown()).optional(),single_use:e.z.boolean().default(!1),expires_at:e.z.string().optional()});e.z.object({created_at:e.z.string(),used_at:e.z.string().optional(),revoked_at:e.z.string().optional()}).extend(be.shape);var g=e.z.object({x:e.z.number(),y:e.z.number()}),xe=function(e){return e.RICH_TEXT=`RICH_TEXT`,e.NEXT_BUTTON=`NEXT_BUTTON`,e.BACK_BUTTON=`BACK_BUTTON`,e.SUBMIT_BUTTON=`SUBMIT_BUTTON`,e.DIVIDER=`DIVIDER`,e.TEXT=`TEXT`,e.EMAIL=`EMAIL`,e.PASSWORD=`PASSWORD`,e.NUMBER=`NUMBER`,e.PHONE=`PHONE`,e.DATE=`DATE`,e.CHECKBOX=`CHECKBOX`,e.RADIO=`RADIO`,e.SELECT=`SELECT`,e.HIDDEN=`HIDDEN`,e.LEGAL=`LEGAL`,e}({}),Se=function(e){return e.BLOCK=`BLOCK`,e.FIELD=`FIELD`,e}({}),_=e.z.object({id:e.z.string(),category:e.z.nativeEnum(Se),type:e.z.nativeEnum(xe)}),Ce=_.extend({category:e.z.literal(`BLOCK`),type:e.z.literal(`RICH_TEXT`),config:e.z.object({content:e.z.string()}).passthrough()}),we=_.extend({category:e.z.literal(`BLOCK`),type:e.z.union([e.z.literal(`NEXT_BUTTON`),e.z.literal(`BACK_BUTTON`),e.z.literal(`SUBMIT_BUTTON`)]),config:e.z.object({text:e.z.string()}).passthrough()}),Te=_.extend({category:e.z.literal(`FIELD`),type:e.z.literal(`LEGAL`),required:e.z.boolean().optional(),sensitive:e.z.boolean().optional(),config:e.z.object({text:e.z.string()}).passthrough()}),Ee=_.extend({category:e.z.literal(`FIELD`),type:e.z.union([e.z.literal(`TEXT`),e.z.literal(`EMAIL`),e.z.literal(`PASSWORD`),e.z.literal(`NUMBER`),e.z.literal(`PHONE`),e.z.literal(`DATE`),e.z.literal(`CHECKBOX`),e.z.literal(`RADIO`),e.z.literal(`SELECT`),e.z.literal(`HIDDEN`)]),required:e.z.boolean().optional(),sensitive:e.z.boolean().optional(),config:e.z.object({label:e.z.string().optional(),placeholder:e.z.string().optional()}).passthrough()}),De=e.z.object({id:e.z.string(),category:e.z.string(),type:e.z.string()}).passthrough(),Oe=e.z.union([Ce,we,Te,Ee,De]),ke=e.z.object({id:e.z.string(),type:e.z.literal(`STEP`),coordinates:g,alias:e.z.string().optional(),config:e.z.object({components:e.z.array(Oe),next_node:e.z.string()}).passthrough()}),Ae=e.z.object({id:e.z.string(),type:e.z.literal(`FLOW`),coordinates:g,alias:e.z.string().optional(),config:e.z.object({flow_id:e.z.string(),next_node:e.z.string()})}),je=e.z.object({id:e.z.string(),type:e.z.literal(`ACTION`),coordinates:g,alias:e.z.string().optional(),config:e.z.object({action_type:e.z.enum([`REDIRECT`]).openapi({description:`The type of action to perform`}),target:e.z.enum([`change-email`,`account`,`custom`]).openapi({description:`The predefined target to redirect to`}),custom_url:e.z.string().optional().openapi({description:`Custom URL when target is 'custom'`}),next_node:e.z.string().openapi({description:`The next node to navigate to after action (for non-redirect actions)`})}).passthrough()}),Me=e.z.object({id:e.z.string(),type:e.z.string(),coordinates:g}).passthrough(),Ne=e.z.union([ke,Ae,je,Me]),Pe=e.z.object({next_node:e.z.string(),coordinates:g}).passthrough(),Fe=e.z.object({resume_flow:e.z.boolean().optional(),coordinates:g}).passthrough();e.z.object({id:e.z.string(),name:e.z.string(),languages:e.z.object({primary:e.z.string()}).passthrough(),nodes:e.z.array(Ne),start:Pe,ending:Fe,created_at:e.z.string(),updated_at:e.z.string(),links:e.z.object({sdkSrc:e.z.string().optional(),sdk_src:e.z.string().optional()}).passthrough()}).passthrough().omit({id:!0,created_at:!0,updated_at:!0});var Ie=function(e){return e.TOKEN=`token`,e.ID_TOKEN=`id_token`,e.TOKEN_ID_TOKEN=`id_token token`,e.CODE=`code`,e.CODE_ID_TOKEN=`code id_token`,e.CODE_TOKEN=`code token`,e.CODE_ID_TOKEN_TOKEN=`code id_token token`,e}({}),Le=function(e){return e.QUERY=`query`,e.FRAGMENT=`fragment`,e.FORM_POST=`form_post`,e.WEB_MESSAGE=`web_message`,e.SAML_POST=`saml_post`,e}({}),Re=function(e){return e.S256=`S256`,e.Plain=`plain`,e}({}),ze=e.z.union([e.z.null(),e.z.object({essential:e.z.boolean().optional(),value:e.z.unknown().optional(),values:e.z.array(e.z.unknown()).optional()})]).nullable(),Be=e.z.object({userinfo:e.z.record(e.z.string(),ze).optional(),id_token:e.z.record(e.z.string(),ze).optional()}),Ve=e.z.object({client_id:e.z.string(),act_as:e.z.string().optional(),response_type:e.z.nativeEnum(Ie).optional(),response_mode:e.z.nativeEnum(Le).optional(),redirect_uri:e.z.string().optional(),audience:e.z.string().optional(),organization:e.z.string().optional(),state:e.z.string().optional(),nonce:e.z.string().optional(),scope:e.z.string().optional(),prompt:e.z.string().optional(),code_challenge_method:e.z.nativeEnum(Re).optional(),code_challenge:e.z.string().optional(),username:e.z.string().optional(),ui_locales:e.z.string().optional(),max_age:e.z.number().optional(),acr_values:e.z.string().optional(),claims:Be.optional(),vendor_id:e.z.string().optional()});e.z.object({colors:e.z.object({primary:e.z.string(),page_background:e.z.union([e.z.string(),e.z.object({type:e.z.string().optional(),start:e.z.string().optional(),end:e.z.string().optional(),angle_deg:e.z.number().optional()})]).optional()}).optional(),logo_url:e.z.string().optional(),favicon_url:e.z.string().optional(),powered_by_logo_url:e.z.string().optional(),font:e.z.object({url:e.z.string()}).optional(),dark_mode:e.z.enum([`dark`,`light`,`auto`]).optional()});var He=e.z.enum([`password_reset`,`email_verification`,`otp`,`mfa_otp`,`authorization_code`,`oauth2_state`,`ticket`]);e.z.object({code_id:e.z.string().openapi({description:`The code that will be used in for instance an email verification flow`}),login_id:e.z.string().openapi({description:`The id of the login session that the code is connected to`}),connection_id:e.z.string().optional().openapi({description:`The connection that the code is connected to`}),code_type:He,code_verifier:e.z.string().optional().openapi({description:`The code verifier used in PKCE in outbound flows`}),code_challenge:e.z.string().optional().openapi({description:`The code challenge used in PKCE in outbound flows`}),code_challenge_method:e.z.enum([`plain`,`S256`]).optional().openapi({description:`The code challenge method used in PKCE in outbound flows`}),redirect_uri:e.z.string().optional().openapi({description:`The redirect URI associated with the code`}),otp:e.z.string().optional().openapi({description:`The one-time password value for OTP-based flows`}),nonce:e.z.string().optional().openapi({description:`The nonce value used for security in OIDC flows`}),state:e.z.string().optional().openapi({description:`The state parameter used for CSRF protection in OAuth flows`}),expires_at:e.z.string(),used_at:e.z.string().optional(),user_id:e.z.string().optional()}).extend({created_at:e.z.string()});var Ue=e.z.object({kid:e.z.string().optional(),team_id:e.z.string().optional(),realms:e.z.string().optional(),authentication_method:e.z.string().optional(),client_id:e.z.string().optional(),client_secret:e.z.string().optional(),app_secret:e.z.string().optional(),scope:e.z.string().optional(),authorization_endpoint:e.z.string().optional(),token_endpoint:e.z.string().optional(),userinfo_endpoint:e.z.string().optional(),jwks_uri:e.z.string().optional(),discovery_url:e.z.string().optional(),issuer:e.z.string().optional(),token_endpoint_auth_method:e.z.enum([`client_secret_basic`,`client_secret_post`]).optional(),provider:e.z.string().optional(),from:e.z.string().optional(),twilio_sid:e.z.string().optional(),twilio_token:e.z.string().optional(),icon_url:e.z.string().optional(),domain_aliases:e.z.array(e.z.string()).optional(),callback_url:e.z.string().url().optional(),passwordPolicy:e.z.enum([`none`,`low`,`fair`,`good`,`excellent`]).optional(),password_complexity_options:e.z.object({min_length:e.z.number().optional()}).optional(),password_history:e.z.object({enable:e.z.boolean().optional(),size:e.z.number().optional()}).optional(),password_no_personal_info:e.z.object({enable:e.z.boolean().optional()}).optional(),password_dictionary:e.z.object({enable:e.z.boolean().optional(),dictionary:e.z.array(e.z.string()).optional()}).optional(),disable_signup:e.z.boolean().optional(),brute_force_protection:e.z.boolean().optional(),import_mode:e.z.boolean().optional(),configuration:e.z.object({token_endpoint:e.z.string().optional(),userinfo_endpoint:e.z.string().optional(),client_id:e.z.string().optional(),client_secret:e.z.string().optional(),realm:e.z.string().optional()}).optional(),attributes:e.z.object({email:e.z.object({identifier:e.z.object({active:e.z.boolean().optional()}).optional(),signup:e.z.object({status:e.z.enum([`required`,`optional`,`disabled`]).optional(),verification:e.z.object({active:e.z.boolean().optional()}).optional()}).optional(),validation:e.z.object({allowed:e.z.boolean().optional()}).optional(),unique:e.z.boolean().optional(),profile_required:e.z.boolean().optional(),verification_method:e.z.enum([`link`,`code`]).optional()}).optional(),username:e.z.object({identifier:e.z.object({active:e.z.boolean().optional()}).optional(),signup:e.z.object({status:e.z.enum([`required`,`optional`,`disabled`]).optional()}).optional(),validation:e.z.object({max_length:e.z.number().optional(),min_length:e.z.number().optional(),allowed_types:e.z.object({email:e.z.boolean().optional(),phone_number:e.z.boolean().optional()}).optional()}).optional(),profile_required:e.z.boolean().optional()}).optional(),phone_number:e.z.object({identifier:e.z.object({active:e.z.boolean().optional()}).optional(),signup:e.z.object({status:e.z.enum([`required`,`optional`,`disabled`]).optional()}).optional()}).optional()}).optional(),authentication_methods:e.z.object({password:e.z.object({enabled:e.z.boolean().optional()}).optional(),passkey:e.z.object({enabled:e.z.boolean().optional()}).optional()}).optional(),passkey_options:e.z.object({challenge_ui:e.z.enum([`both`,`autofill`,`button`]).optional(),local_enrollment_enabled:e.z.boolean().optional(),progressive_enrollment_enabled:e.z.boolean().optional()}).optional(),requires_username:e.z.boolean().optional(),validation:e.z.object({username:e.z.object({min:e.z.number().optional(),max:e.z.number().optional()}).optional()}).optional(),set_user_root_attributes:e.z.enum([`on_each_login`,`on_first_login`,`never_on_login`]).optional()});function v(e){if(e!==null){if(Array.isArray(e))return e.filter(e=>e!==null).map(v);if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))r!==null&&(t[n]=v(r));return t}return e}}var We=e.z.object({id:e.z.string().optional(),name:e.z.string(),display_name:e.z.string().optional(),strategy:e.z.string(),options:e.z.preprocess(e=>e===null?{}:v(e),Ue).default({}),enabled_clients:e.z.array(e.z.string()).default([]).optional(),response_type:e.z.custom().optional(),response_mode:e.z.custom().optional(),is_domain_connection:e.z.boolean().optional(),show_as_button:e.z.boolean().optional(),metadata:e.z.record(e.z.string(),e.z.any()).optional(),is_system:e.z.boolean().optional()});e.z.object({id:e.z.string(),created_at:e.z.string().transform(e=>e===null?``:e),updated_at:e.z.string().transform(e=>e===null?``:e)}).extend(We.shape);var Ge=e.z.object({domain:e.z.string(),custom_domain_id:e.z.string().optional(),type:e.z.enum([`auth0_managed_certs`,`self_managed_certs`]),verification_method:e.z.enum([`txt`]).optional(),tls_policy:e.z.enum([`recommended`]).optional(),custom_client_ip_header:e.z.enum([`true-client-ip`,`cf-connecting-ip`,`x-forwarded-for`,`x-azure-clientip`,`null`]).optional(),domain_metadata:e.z.record(e.z.string(),e.z.string().max(255)).optional()}),Ke=e.z.discriminatedUnion(`name`,[e.z.object({name:e.z.literal(`txt`),record:e.z.string(),domain:e.z.string()}),e.z.object({name:e.z.literal(`http`),http_body:e.z.string(),http_url:e.z.string()})]),qe=Ge.extend({custom_domain_id:e.z.string(),primary:e.z.boolean(),status:e.z.enum([`disabled`,`pending`,`pending_verification`,`ready`]),origin_domain_name:e.z.string().optional(),verification:e.z.object({methods:e.z.array(Ke)}).optional(),tls_policy:e.z.string().optional()});Ge.pick({tls_policy:!0,custom_client_ip_header:!0,domain_metadata:!0}).strict(),qe.extend({tenant_id:e.z.string()}),e.z.object({certificate:e.z.string().regex(/^-----BEGIN CERTIFICATE-----[\s\S]+-----END CERTIFICATE-----\s*$/,`must be PEM-encoded; include the full certificate chain in leaf-first order`),private_key:e.z.string().regex(/-----BEGIN (RSA |EC |ENCRYPTED )?PRIVATE KEY-----[\s\S]+-----END \1PRIVATE KEY-----\s*$/,`must be a PEM-encoded private key`)});var y=e.z.object({id:e.z.string(),order:e.z.number().optional(),visible:e.z.boolean().optional().default(!0)}),b=y.extend({category:e.z.literal(`BLOCK`).optional()}),Je=b.extend({type:e.z.literal(`DIVIDER`),config:e.z.object({text:e.z.string().optional()}).optional()}),Ye=b.extend({type:e.z.literal(`HTML`),config:e.z.object({content:e.z.string().optional()}).optional()}),Xe=b.extend({type:e.z.literal(`IMAGE`),config:e.z.object({src:e.z.string().optional(),alt:e.z.string().optional(),width:e.z.number().optional(),height:e.z.number().optional()}).optional()}),Ze=b.extend({type:e.z.literal(`JUMP_BUTTON`),config:e.z.object({text:e.z.string().optional(),target_step:e.z.string().optional()})}),Qe=b.extend({type:e.z.literal(`RESEND_BUTTON`),config:e.z.object({text:e.z.string().optional(),resend_action:e.z.string().optional()})}),$e=b.extend({type:e.z.literal(`NEXT_BUTTON`),config:e.z.object({text:e.z.string().optional()})}),et=b.extend({type:e.z.literal(`PREVIOUS_BUTTON`),config:e.z.object({text:e.z.string().optional()})}),tt=b.extend({type:e.z.literal(`RICH_TEXT`),config:e.z.object({content:e.z.string().optional()}).optional()}),x=y.extend({category:e.z.literal(`WIDGET`).optional(),label:e.z.string().min(1).optional(),hint:e.z.string().min(1).max(500).optional(),required:e.z.boolean().optional(),sensitive:e.z.boolean().optional()}),nt=x.extend({type:e.z.literal(`AUTH0_VERIFIABLE_CREDENTIALS`),config:e.z.object({credential_type:e.z.string().optional()})}),rt=x.extend({type:e.z.literal(`GMAPS_ADDRESS`),config:e.z.object({api_key:e.z.string().optional()})}),it=x.extend({type:e.z.literal(`RECAPTCHA`),config:e.z.object({site_key:e.z.string().optional()})}),S=y.extend({category:e.z.literal(`FIELD`).optional(),label:e.z.string().min(1).optional(),hint:e.z.string().min(1).max(500).optional(),messages:e.z.array(e.z.object({id:e.z.number().optional(),text:e.z.string(),type:e.z.enum([`info`,`error`,`success`,`warning`])})).optional(),required:e.z.boolean().optional(),sensitive:e.z.boolean().optional()}),at=S.extend({type:e.z.literal(`BOOLEAN`),config:e.z.object({default_value:e.z.boolean().optional()}).optional()}),ot=S.extend({type:e.z.literal(`CARDS`),config:e.z.object({options:e.z.array(e.z.object({value:e.z.string(),label:e.z.string(),description:e.z.string().optional(),image:e.z.string().optional()})).optional(),multi_select:e.z.boolean().optional()}).optional()}),st=S.extend({type:e.z.literal(`CHOICE`),config:e.z.object({options:e.z.array(e.z.object({value:e.z.string(),label:e.z.string()})).optional(),display:e.z.enum([`radio`,`checkbox`]).optional(),multiple:e.z.boolean().optional(),default_value:e.z.union([e.z.string(),e.z.array(e.z.string())]).optional()}).optional()}),ct=S.extend({type:e.z.literal(`CUSTOM`),config:e.z.object({component:e.z.string().optional(),props:e.z.record(e.z.string(),e.z.any()).optional(),schema:e.z.record(e.z.string(),e.z.any()).optional(),code:e.z.string().optional()})}),lt=S.extend({type:e.z.literal(`DATE`),config:e.z.object({format:e.z.string().optional(),min:e.z.string().optional(),max:e.z.string().optional(),default_value:e.z.string().optional()}).optional()}),ut=S.extend({type:e.z.literal(`DROPDOWN`),config:e.z.object({options:e.z.array(e.z.object({value:e.z.string(),label:e.z.string()})).optional(),placeholder:e.z.string().optional(),searchable:e.z.boolean().optional(),multiple:e.z.boolean().optional(),default_value:e.z.union([e.z.string(),e.z.array(e.z.string())]).optional()}).optional()}),dt=S.extend({type:e.z.literal(`EMAIL`),config:e.z.object({placeholder:e.z.string().optional(),default_value:e.z.string().optional()}).optional()}),ft=S.extend({type:e.z.literal(`FILE`),config:e.z.object({accept:e.z.string().optional(),max_size:e.z.number().optional(),multiple:e.z.boolean().optional()}).optional()}),pt=S.extend({type:e.z.literal(`LEGAL`),config:e.z.object({text:e.z.string(),html:e.z.boolean().optional()}).optional()}),mt=S.extend({type:e.z.literal(`NUMBER`),config:e.z.object({placeholder:e.z.string().optional(),min:e.z.number().optional(),max:e.z.number().optional(),step:e.z.number().optional(),default_value:e.z.string().optional()}).optional()}),ht=S.extend({type:e.z.literal(`PASSWORD`),config:e.z.object({placeholder:e.z.string().optional(),min_length:e.z.number().optional(),show_toggle:e.z.boolean().optional(),forgot_password_link:e.z.string().optional(),default_value:e.z.string().optional()}).optional()}),gt=S.extend({type:e.z.literal(`PAYMENT`),config:e.z.object({provider:e.z.string().optional(),currency:e.z.string().optional()}).optional()}),_t=S.extend({type:e.z.literal(`SOCIAL`),config:e.z.object({providers:e.z.array(e.z.string()).optional(),provider_details:e.z.array(e.z.object({name:e.z.string(),strategy:e.z.string().optional(),display_name:e.z.string().optional(),icon_url:e.z.string().optional(),href:e.z.string().optional()})).optional()}).optional()}),vt=S.extend({type:e.z.literal(`TEL`),config:e.z.object({placeholder:e.z.string().optional(),default_country:e.z.string().optional(),default_value:e.z.string().optional(),allow_email:e.z.boolean().optional()}).optional()}),yt=S.extend({type:e.z.literal(`TEXT`),config:e.z.object({placeholder:e.z.string().optional(),multiline:e.z.boolean().optional(),max_length:e.z.number().optional(),default_value:e.z.string().optional()}).optional()}),bt=S.extend({type:e.z.literal(`COUNTRY`),config:e.z.object({placeholder:e.z.string().optional(),default_value:e.z.string().optional()}).optional()}),xt=S.extend({type:e.z.literal(`URL`),config:e.z.object({placeholder:e.z.string().optional(),default_value:e.z.string().optional()}).optional()}),St=e.z.discriminatedUnion(`type`,[Je,Ye,Xe,Ze,Qe,$e,et,tt]),Ct=e.z.discriminatedUnion(`type`,[nt,rt,it]),wt=e.z.discriminatedUnion(`type`,[at,ot,st,bt,ct,lt,ut,dt,ft,pt,mt,ht,gt,_t,vt,yt,xt]),Tt=e.z.union([St,Ct,wt]);new Set([`BOOLEAN`,`CARDS`,`CHOICE`,`COUNTRY`,`DATE`,`DROPDOWN`,`EMAIL`,`LEGAL`,`NUMBER`,`PASSWORD`,`TEL`,`TEXT`,`URL`]),e.z.object({id:e.z.string(),type:e.z.literal(`submit`),label:e.z.string(),className:e.z.string().optional(),disabled:e.z.boolean().optional().default(!1),order:e.z.number().optional(),visible:e.z.boolean().optional().default(!0),customizations:e.z.record(e.z.string(),e.z.any()).optional()});var C=e.z.object({x:e.z.number(),y:e.z.number()}),Et=e.z.object({id:e.z.string(),type:e.z.literal(`FLOW`),coordinates:C,alias:e.z.string().min(1).max(150).optional(),config:e.z.object({flow_id:e.z.string().max(30),next_node:e.z.string().optional()})}),Dt=e.z.object({id:e.z.string(),type:e.z.literal(`ROUTER`),coordinates:C,alias:e.z.string().min(1).max(150),config:e.z.object({rules:e.z.array(e.z.object({id:e.z.string(),alias:e.z.string().min(1).max(150).optional(),condition:e.z.any(),next_node:e.z.string()})),fallback:e.z.string()})}),Ot=e.z.object({id:e.z.string(),type:e.z.literal(`STEP`),coordinates:C,alias:e.z.string().min(1).max(150).optional(),config:e.z.object({components:e.z.array(Tt),next_node:e.z.string().optional()})}),kt=e.z.discriminatedUnion(`type`,[Et,Dt,Ot]),At=e.z.object({name:e.z.string().openapi({description:`The name of the form`}),messages:e.z.object({errors:e.z.record(e.z.string(),e.z.any()).optional(),custom:e.z.record(e.z.string(),e.z.any()).optional()}).optional(),languages:e.z.object({primary:e.z.string().optional(),default:e.z.string().optional()}).optional(),translations:e.z.record(e.z.string(),e.z.any()).optional(),nodes:e.z.array(kt).optional(),start:e.z.object({hidden_fields:e.z.array(e.z.object({key:e.z.string(),value:e.z.string()})).optional(),next_node:e.z.string().optional(),coordinates:C.optional()}).optional(),ending:e.z.object({redirection:e.z.object({delay:e.z.number().optional(),target:e.z.string().optional()}).optional(),after_submit:e.z.object({flow_id:e.z.string().optional()}).optional(),coordinates:C.optional(),resume_flow:e.z.boolean().optional()}).optional(),style:e.z.object({css:e.z.string().optional()}).optional(),links:e.z.object({sdkSrc:e.z.string().optional(),sdk_src:e.z.string().optional()}).optional()}).openapi({description:`Schema for flow-based forms (matches Auth0 Forms structure)`});n.extend(At.shape).extend({id:e.z.string()});var jt=e.z.object({id:e.z.number().optional(),text:e.z.string(),type:e.z.enum([`info`,`error`,`success`,`warning`])}),Mt=e.z.object({id:e.z.string().optional(),text:e.z.string(),href:e.z.string(),linkText:e.z.string().optional()});e.z.object({name:e.z.string().optional(),action:e.z.string(),method:e.z.enum([`POST`,`GET`]),title:e.z.string().optional(),description:e.z.string().optional(),components:e.z.array(Tt),messages:e.z.array(jt).optional(),links:e.z.array(Mt).optional(),footer:e.z.string().optional()});var Nt=e.z.enum([`pre-user-registration`,`post-user-registration`,`post-user-login`,`post-user-update`,`validate-registration-username`,`pre-user-deletion`,`post-user-deletion`]),w=e.z.enum([`pre-user-registration`,`post-user-registration`,`post-user-login`,`validate-registration-username`,`pre-user-deletion`,`post-user-deletion`]),T=e.z.enum([`post-user-login`,`post-user-registration`,`post-user-update`,`credentials-exchange`]),E=e.z.enum([`post-user-login`,`credentials-exchange`,`pre-user-registration`,`post-user-registration`]),D=e.z.enum([`ensure-username`,`set-preferred-username`,`account-linking`]),O={enabled:e.z.boolean().default(!1),synchronous:e.z.boolean().default(!1),priority:e.z.number().optional(),hook_id:e.z.string().optional(),metadata:e.z.record(e.z.string(),e.z.unknown()).optional()},Pt=e.z.object({...O,trigger_id:Nt,url:e.z.string()}),Ft=e.z.object({...O,trigger_id:w,form_id:e.z.string()}),It=e.z.object({...O,trigger_id:T,template_id:D}),Lt=e.z.object({...O,trigger_id:E,code_id:e.z.string()});e.z.union([Pt,Ft,It,Lt]);var Rt=e.z.object({...O,trigger_id:Nt}).extend(n.shape).extend({hook_id:e.z.string(),url:e.z.string()}),zt=e.z.object({...O,trigger_id:w}).extend(n.shape).extend({hook_id:e.z.string(),form_id:e.z.string()}),Bt=e.z.object({...O,trigger_id:T}).extend(n.shape).extend({hook_id:e.z.string(),template_id:D}),Vt=e.z.object({...O,trigger_id:E}).extend(n.shape).extend({hook_id:e.z.string(),code_id:e.z.string()});e.z.union([Rt,zt,Bt,Vt]),e.z.object({code:e.z.string().max(1e5),secrets:e.z.record(e.z.string(),e.z.string()).optional()}).extend({id:e.z.string(),tenant_id:e.z.string()}).extend(n.shape);var Ht=e.z.object({name:e.z.string().optional()}),Ut=e.z.object({email:e.z.string().optional()}),Wt=e.z.object({id:e.z.string().optional(),organization_id:e.z.string().max(50),inviter:Ht,invitee:Ut,invitation_url:e.z.string().url(),client_id:e.z.string(),connection_id:e.z.string().optional(),app_metadata:e.z.record(e.z.string(),e.z.any()).default({}).optional(),user_metadata:e.z.record(e.z.string(),e.z.any()).default({}).optional(),ttl_sec:e.z.number().int().max(2592e3).default(604800).optional(),roles:e.z.array(e.z.string()).default([]).optional(),send_invitation_email:e.z.boolean().default(!0).optional()});e.z.object({id:e.z.string(),organization_id:e.z.string().max(50),created_at:e.z.string().datetime(),expires_at:e.z.string().datetime(),ticket_id:e.z.string().optional()}).extend(Wt.omit({id:!0}).shape);var Gt=e.z.object({alg:e.z.enum([`RS256`,`RS384`,`RS512`,`ES256`,`ES384`,`ES512`,`HS256`,`HS384`,`HS512`]),kid:e.z.string().optional(),kty:e.z.enum([`RSA`,`EC`,`oct`]),use:e.z.enum([`sig`,`enc`]).optional(),n:e.z.string().optional(),e:e.z.string().optional(),crv:e.z.string().optional(),x:e.z.string().optional(),y:e.z.string().optional(),x5t:e.z.string().optional(),x5c:e.z.array(e.z.string()).optional()}).superRefine((t,n)=>{if(t.kty===`RSA`)for(let r of[`n`,`e`])t[r]||n.addIssue({code:e.z.ZodIssueCode.custom,path:[r],message:`RSA JWK is missing required member '${r}'`});else if(t.kty===`EC`)for(let r of[`crv`,`x`,`y`])t[r]||n.addIssue({code:e.z.ZodIssueCode.custom,path:[r],message:`EC JWK is missing required member '${r}'`})});e.z.object({keys:e.z.array(Gt)}),e.z.object({issuer:e.z.string(),authorization_endpoint:e.z.string(),token_endpoint:e.z.string(),userinfo_endpoint:e.z.string(),jwks_uri:e.z.string(),registration_endpoint:e.z.string().optional(),revocation_endpoint:e.z.string(),end_session_endpoint:e.z.string().optional(),scopes_supported:e.z.array(e.z.string()),response_types_supported:e.z.array(e.z.string()),grant_types_supported:e.z.array(e.z.string()).optional(),code_challenge_methods_supported:e.z.array(e.z.string()),response_modes_supported:e.z.array(e.z.string()),subject_types_supported:e.z.array(e.z.string()),id_token_signing_alg_values_supported:e.z.array(e.z.string()),token_endpoint_auth_methods_supported:e.z.array(e.z.string()),claims_supported:e.z.array(e.z.string()),request_uri_parameter_supported:e.z.boolean(),request_parameter_supported:e.z.boolean(),claims_parameter_supported:e.z.boolean().optional(),request_object_signing_alg_values_supported:e.z.array(e.z.string()).optional(),token_endpoint_auth_signing_alg_values_supported:e.z.array(e.z.string()),client_id_metadata_document_supported:e.z.boolean().optional()});var Kt=function(e){return e.PENDING=`pending`,e.AUTHENTICATED=`authenticated`,e.AWAITING_EMAIL_VERIFICATION=`awaiting_email_verification`,e.AWAITING_MFA=`awaiting_mfa`,e.AWAITING_HOOK=`awaiting_hook`,e.AWAITING_CONTINUATION=`awaiting_continuation`,e.AWAITING_CONSENT=`awaiting_consent`,e.COMPLETED=`completed`,e.FAILED=`failed`,e.EXPIRED=`expired`,e}({}),qt=e.z.nativeEnum(Kt),Jt=e.z.object({strategy:e.z.string(),strategy_type:e.z.string()});e.z.object({csrf_token:e.z.string(),auth0Client:e.z.string().optional(),authParams:Ve,expires_at:e.z.string(),deleted_at:e.z.string().optional(),ip:e.z.string().optional(),useragent:e.z.string().optional(),session_id:e.z.string().optional(),authorization_url:e.z.string().optional(),state:qt.optional().default(`pending`),state_data:e.z.string().optional(),failure_reason:e.z.string().optional(),user_id:e.z.string().optional(),auth_connection:e.z.string().optional(),auth_strategy:Jt.optional(),authenticated_at:e.z.string().optional()}).openapi({description:`This represents a login sesion`}).extend({id:e.z.string().openapi({description:`This is is used as the state in the universal login`}),created_at:e.z.string(),updated_at:e.z.string()});var k={ACLS_SUMMARY:`acls_summary`,ACTIONS_EXECUTION_FAILED:`actions_execution_failed`,API_LIMIT:`api_limit`,API_LIMIT_WARNING:`api_limit_warning`,APPI:`appi`,CIBA_EXCHANGE_FAILED:`ciba_exchange_failed`,CIBA_EXCHANGE_SUCCEEDED:`ciba_exchange_succeeded`,CIBA_START_FAILED:`ciba_start_failed`,CIBA_START_SUCCEEDED:`ciba_start_succeeded`,CODE_LINK_SENT:`cls`,CODE_SENT:`cs`,DEPRECATION_NOTICE:`depnote`,FAILED_LOGIN:`f`,FAILED_BY_CONNECTOR:`fc`,FAILED_CHANGE_EMAIL:`fce`,FAILED_BY_CORS:`fco`,FAILED_CROSS_ORIGIN_AUTHENTICATION:`fcoa`,FAILED_CHANGE_PASSWORD:`fcp`,FAILED_POST_CHANGE_PASSWORD_HOOK:`fcph`,FAILED_CHANGE_PHONE_NUMBER:`fcpn`,FAILED_CHANGE_PASSWORD_REQUEST:`fcpr`,FAILED_CONNECTOR_PROVISIONING:`fcpro`,FAILED_CHANGE_USERNAME:`fcu`,FAILED_DELEGATION:`fd`,FAILED_DEVICE_ACTIVATION:`fdeac`,FAILED_DEVICE_AUTHORIZATION_REQUEST:`fdeaz`,USER_CANCELED_DEVICE_CONFIRMATION:`fdecc`,FAILED_USER_DELETION:`fdu`,FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN:`feacft`,FAILED_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS:`feccft`,FAILED_EXCHANGE_CUSTOM_TOKEN:`fecte`,FAILED_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN:`fede`,FAILED_FEDERATED_LOGOUT:`federated_logout_failed`,FAILED_EXCHANGE_NATIVE_SOCIAL_LOGIN:`fens`,FAILED_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN:`feoobft`,FAILED_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN:`feotpft`,FAILED_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN:`fepft`,FAILED_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN:`fepotpft`,FAILED_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN:`fercft`,FAILED_EXCHANGE_ROTATING_REFRESH_TOKEN:`ferrt`,FAILED_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN:`fertft`,FAILED_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN:`festft`,FAILED_HOOK:`fh`,FAILED_IMPERSONATION:`fimp`,FAILED_INVITE_ACCEPT:`fi`,FAILED_LOGOUT:`flo`,FLOWS_EXECUTION_COMPLETED:`flows_execution_completed`,FLOWS_EXECUTION_FAILED:`flows_execution_failed`,FAILED_SENDING_NOTIFICATION:`fn`,FORMS_SUBMISSION_FAILED:`forms_submission_failed`,FORMS_SUBMISSION_SUCCEEDED:`forms_submission_succeeded`,FAILED_LOGIN_INCORRECT_PASSWORD:`fp`,FAILED_PUSHED_AUTHORIZATION_REQUEST:`fpar`,FAILED_POST_USER_REGISTRATION_HOOK:`fpurh`,FAILED_SIGNUP:`fs`,FAILED_SILENT_AUTH:`fsa`,FAILED_LOGIN_INVALID_EMAIL_USERNAME:`fu`,FAILED_USERS_IMPORT:`fui`,FAILED_VERIFICATION_EMAIL:`fv`,FAILED_VERIFICATION_EMAIL_REQUEST:`fvr`,EMAIL_VERIFICATION_CONFIRMED:`gd_auth_email_verification`,EMAIL_VERIFICATION_FAILED:`gd_auth_fail_email_verification`,MFA_AUTH_FAILED:`gd_auth_failed`,MFA_AUTH_REJECTED:`gd_auth_rejected`,MFA_AUTH_SUCCESS:`gd_auth_succeed`,MFA_ENROLLMENT_COMPLETE:`gd_enrollment_complete`,TOO_MANY_MFA_FAILURES:`gd_otp_rate_limit_exceed`,MFA_RECOVERY_FAILED:`gd_recovery_failed`,MFA_RECOVERY_RATE_LIMIT_EXCEED:`gd_recovery_rate_limit_exceed`,MFA_RECOVERY_SUCCESS:`gd_recovery_succeed`,MFA_EMAIL_SENT:`gd_send_email`,EMAIL_VERIFICATION_SENT:`gd_send_email_verification`,EMAIL_VERIFICATION_SEND_FAILURE:`gd_send_email_verification_failure`,PUSH_NOTIFICATION_SENT:`gd_send_pn`,ERROR_SENDING_MFA_PUSH_NOTIFICATION:`gd_send_pn_failure`,MFA_SMS_SENT:`gd_send_sms`,ERROR_SENDING_MFA_SMS:`gd_send_sms_failure`,MFA_VOICE_CALL_SUCCESS:`gd_send_voice`,MFA_VOICE_CALL_FAILED:`gd_send_voice_failure`,SECOND_FACTOR_STARTED:`gd_start_auth`,MFA_ENROLL_STARTED:`gd_start_enroll`,MFA_ENROLLMENT_FAILED:`gd_start_enroll_failed`,GUARDIAN_TENANT_UPDATE:`gd_tenant_update`,UNENROLL_DEVICE_ACCOUNT:`gd_unenroll`,UPDATE_DEVICE_ACCOUNT:`gd_update_device_account`,WEBAUTHN_CHALLENGE_FAILED:`gd_webauthn_challenge_failed`,WEBAUTHN_ENROLLMENT_FAILED:`gd_webauthn_enrollment_failed`,FAILED_KMS_API_OPERATION:`kms_key_management_failure`,SUCCESS_KMS_API_OPERATION:`kms_key_management_success`,KMS_KEY_STATE_CHANGED:`kms_key_state_changed`,TOO_MANY_CALLS_TO_DELEGATION:`limit_delegation`,BLOCKED_IP_ADDRESS:`limit_mu`,BLOCKED_ACCOUNT_IP:`limit_sul`,BLOCKED_ACCOUNT_EMAIL:`limit_wc`,INFORMATION:`i`,MFA_REQUIRED:`mfar`,MANAGEMENT_API_READ_OPERATION:`mgmt_api_read`,FAILED_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT:`my_account_authentication_method_failed`,SUCCESSFUL_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT:`my_account_authentication_method_succeeded`,FAILED_OIDC_BACKCHANNEL_LOGOUT:`oidc_backchannel_logout_failed`,SUCCESSFUL_OIDC_BACKCHANNEL_LOGOUT:`oidc_backchannel_logout_succeeded`,ORGANIZATION_MEMBER_ADDED:`organization_member_added`,PASSKEY_CHALLENGE_FAILED:`passkey_challenge_failed`,PASSKEY_CHALLENGE_STARTED:`passkey_challenge_started`,PRE_LOGIN_ASSESSMENT:`pla`,BREACHED_PASSWORD:`pwd_leak`,BREACHED_PASSWORD_ON_RESET:`reset_pwd_leak`,SUCCESS_RESOURCE_CLEANUP:`resource_cleanup`,RICH_CONSENTS_ACCESS_ERROR:`rich_consents_access_error`,SUCCESS_LOGIN:`s`,SUCCESS_API_OPERATION:`sapi`,FAILED_API_OPERATION:`fapi`,SUCCESS_CHANGE_EMAIL:`sce`,SUCCESS_CROSS_ORIGIN_AUTHENTICATION:`scoa`,SUCCESS_CHANGE_PASSWORD:`scp`,SUCCESS_CHANGE_PHONE_NUMBER:`scpn`,SUCCESS_CHANGE_PASSWORD_REQUEST:`scpr`,SUCCESS_CHANGE_USERNAME:`scu`,SUCCESS_CREDENTIAL_VALIDATION:`scv`,SUCCESS_DELEGATION:`sd`,SUCCESS_USER_DELETION:`sdu`,SUCCESS_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN:`seacft`,SUCCESS_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS:`seccft`,SUCCESS_EXCHANGE_CUSTOM_TOKEN:`secte`,SUCCESS_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN:`sede`,SUCCESS_EXCHANGE_NATIVE_SOCIAL_LOGIN:`sens`,SUCCESS_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN:`seoobft`,SUCCESS_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN:`seotpft`,SUCCESS_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN:`sepotpft`,SUCCESS_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN:`sepft`,SUCCESS_EXCHANGE_PASSKEY_OOB_FOR_ACCESS_TOKEN:`sepkoobft`,SUCCESS_EXCHANGE_PASSKEY_OTP_FOR_ACCESS_TOKEN:`sepkotpft`,SUCCESS_EXCHANGE_PASSKEY_MFA_RECOVERY_FOR_ACCESS_TOKEN:`sepkrcft`,SUCCESS_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN:`sercft`,SUCCESS_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN:`sertft`,SUCCESS_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN:`sestft`,SUCCESS_IMPERSONATION:`simp`,SUCCESSFULLY_ACCEPTED_USER_INVITE:`si`,BREACHED_PASSWORD_ON_SIGNUP:`signup_pwd_leak`,SUCCESS_LOGOUT:`slo`,SUCCESS_HOOK:`sh`,SUCCESS_PASSWORD_MIGRATION:`spm`,SUCCESS_REVOCATION:`srrt`,SUCCESS_SIGNUP:`ss`,FAILED_SS_SSO_OPERATION:`ss_sso_failure`,INFORMATION_FROM_SS_SSO_OPERATION:`ss_sso_info`,SUCCESS_SS_SSO_OPERATION:`ss_sso_success`,SUCCESS_SILENT_AUTH:`ssa`,SUCCESSFUL_SCIM_OPERATION:`sscim`,SUCCESSFULLY_IMPORTED_USERS:`sui`,SUCCESS_VERIFICATION_EMAIL:`sv`,SUCCESS_VERIFICATION_EMAIL_REQUEST:`svr`,MAX_AMOUNT_OF_AUTHENTICATORS:`too_many_records`,USER_LOGIN_BLOCK_RELEASED:`ublkdu`,FAILED_UNIVERSAL_LOGOUT:`universal_logout_failed`,SUCCESSFUL_UNIVERSAL_LOGOUT:`universal_logout_succeeded`,WARNING_DURING_LOGIN:`w`,WARNING_SENDING_NOTIFICATION:`wn`,WARNING_USER_MANAGEMENT:`wum`},Yt=e.z.string().refine(e=>Object.values(k).includes(e),{message:`Invalid log type`});k.ACLS_SUMMARY,k.ACTIONS_EXECUTION_FAILED,k.API_LIMIT,k.API_LIMIT_WARNING,k.APPI,k.CIBA_EXCHANGE_FAILED,k.CIBA_EXCHANGE_SUCCEEDED,k.CIBA_START_FAILED,k.CIBA_START_SUCCEEDED,k.CODE_LINK_SENT,k.CODE_SENT,k.DEPRECATION_NOTICE,k.FAILED_LOGIN,k.FAILED_BY_CONNECTOR,k.FAILED_CHANGE_EMAIL,k.FAILED_BY_CORS,k.FAILED_CROSS_ORIGIN_AUTHENTICATION,k.FAILED_CHANGE_PASSWORD,k.FAILED_POST_CHANGE_PASSWORD_HOOK,k.FAILED_CHANGE_PHONE_NUMBER,k.FAILED_CHANGE_PASSWORD_REQUEST,k.FAILED_CONNECTOR_PROVISIONING,k.FAILED_CHANGE_USERNAME,k.FAILED_DELEGATION,k.FAILED_DEVICE_ACTIVATION,k.FAILED_DEVICE_AUTHORIZATION_REQUEST,k.USER_CANCELED_DEVICE_CONFIRMATION,k.FAILED_USER_DELETION,k.FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,k.FAILED_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS,k.FAILED_EXCHANGE_CUSTOM_TOKEN,k.FAILED_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN,k.FAILED_FEDERATED_LOGOUT,k.FAILED_EXCHANGE_NATIVE_SOCIAL_LOGIN,k.FAILED_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN,k.FAILED_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN,k.FAILED_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN,k.FAILED_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN,k.FAILED_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN,k.FAILED_EXCHANGE_ROTATING_REFRESH_TOKEN,k.FAILED_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN,k.FAILED_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN,k.FAILED_HOOK,k.FAILED_IMPERSONATION,k.FAILED_INVITE_ACCEPT,k.FAILED_LOGOUT,k.FLOWS_EXECUTION_COMPLETED,k.FLOWS_EXECUTION_FAILED,k.FAILED_SENDING_NOTIFICATION,k.FORMS_SUBMISSION_FAILED,k.FORMS_SUBMISSION_SUCCEEDED,k.FAILED_LOGIN_INCORRECT_PASSWORD,k.FAILED_PUSHED_AUTHORIZATION_REQUEST,k.FAILED_POST_USER_REGISTRATION_HOOK,k.FAILED_SIGNUP,k.FAILED_SILENT_AUTH,k.FAILED_LOGIN_INVALID_EMAIL_USERNAME,k.FAILED_USERS_IMPORT,k.FAILED_VERIFICATION_EMAIL,k.FAILED_VERIFICATION_EMAIL_REQUEST,k.EMAIL_VERIFICATION_CONFIRMED,k.EMAIL_VERIFICATION_FAILED,k.MFA_AUTH_FAILED,k.MFA_AUTH_REJECTED,k.MFA_AUTH_SUCCESS,k.MFA_ENROLLMENT_COMPLETE,k.TOO_MANY_MFA_FAILURES,k.MFA_RECOVERY_FAILED,k.MFA_RECOVERY_RATE_LIMIT_EXCEED,k.MFA_RECOVERY_SUCCESS,k.MFA_EMAIL_SENT,k.EMAIL_VERIFICATION_SENT,k.EMAIL_VERIFICATION_SEND_FAILURE,k.PUSH_NOTIFICATION_SENT,k.ERROR_SENDING_MFA_PUSH_NOTIFICATION,k.MFA_SMS_SENT,k.ERROR_SENDING_MFA_SMS,k.MFA_VOICE_CALL_SUCCESS,k.MFA_VOICE_CALL_FAILED,k.SECOND_FACTOR_STARTED,k.MFA_ENROLL_STARTED,k.MFA_ENROLLMENT_FAILED,k.GUARDIAN_TENANT_UPDATE,k.UNENROLL_DEVICE_ACCOUNT,k.UPDATE_DEVICE_ACCOUNT,k.WEBAUTHN_CHALLENGE_FAILED,k.WEBAUTHN_ENROLLMENT_FAILED,k.FAILED_KMS_API_OPERATION,k.SUCCESS_KMS_API_OPERATION,k.KMS_KEY_STATE_CHANGED,k.TOO_MANY_CALLS_TO_DELEGATION,k.BLOCKED_IP_ADDRESS,k.BLOCKED_ACCOUNT_IP,k.BLOCKED_ACCOUNT_EMAIL,k.INFORMATION,k.MFA_REQUIRED,k.MANAGEMENT_API_READ_OPERATION,k.FAILED_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT,k.SUCCESSFUL_AUTHENTICATION_METHOD_OPERATION_MY_ACCOUNT,k.FAILED_OIDC_BACKCHANNEL_LOGOUT,k.SUCCESSFUL_OIDC_BACKCHANNEL_LOGOUT,k.ORGANIZATION_MEMBER_ADDED,k.PASSKEY_CHALLENGE_FAILED,k.PASSKEY_CHALLENGE_STARTED,k.PRE_LOGIN_ASSESSMENT,k.BREACHED_PASSWORD,k.BREACHED_PASSWORD_ON_RESET,k.SUCCESS_RESOURCE_CLEANUP,k.RICH_CONSENTS_ACCESS_ERROR,k.SUCCESS_LOGIN,k.SUCCESS_API_OPERATION,k.FAILED_API_OPERATION,k.SUCCESS_CHANGE_EMAIL,k.SUCCESS_CROSS_ORIGIN_AUTHENTICATION,k.SUCCESS_CHANGE_PASSWORD,k.SUCCESS_CHANGE_PHONE_NUMBER,k.SUCCESS_CHANGE_PASSWORD_REQUEST,k.SUCCESS_CHANGE_USERNAME,k.SUCCESS_CREDENTIAL_VALIDATION,k.SUCCESS_DELEGATION,k.SUCCESS_USER_DELETION,k.SUCCESS_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,k.SUCCESS_EXCHANGE_ACCESS_TOKEN_FOR_CLIENT_CREDENTIALS,k.SUCCESS_EXCHANGE_CUSTOM_TOKEN,k.SUCCESS_EXCHANGE_DEVICE_CODE_FOR_ACCESS_TOKEN,k.SUCCESS_EXCHANGE_NATIVE_SOCIAL_LOGIN,k.SUCCESS_EXCHANGE_PASSWORD_OOB_FOR_ACCESS_TOKEN,k.SUCCESS_EXCHANGE_PASSWORD_OTP_FOR_ACCESS_TOKEN,k.SUCCESS_EXCHANGE_PASSWORDLESS_OTP_FOR_ACCESS_TOKEN,k.SUCCESS_EXCHANGE_PASSWORD_FOR_ACCESS_TOKEN,k.SUCCESS_EXCHANGE_PASSKEY_OOB_FOR_ACCESS_TOKEN,k.SUCCESS_EXCHANGE_PASSKEY_OTP_FOR_ACCESS_TOKEN,k.SUCCESS_EXCHANGE_PASSKEY_MFA_RECOVERY_FOR_ACCESS_TOKEN,k.SUCCESS_EXCHANGE_PASSWORD_MFA_RECOVERY_FOR_ACCESS_TOKEN,k.SUCCESS_EXCHANGE_REFRESH_TOKEN_FOR_ACCESS_TOKEN,k.SUCCESS_EXCHANGE_SUBJECT_TOKEN_FOR_ACCESS_TOKEN,k.SUCCESS_IMPERSONATION,k.SUCCESSFULLY_ACCEPTED_USER_INVITE,k.BREACHED_PASSWORD_ON_SIGNUP,k.SUCCESS_LOGOUT,k.SUCCESS_HOOK,k.SUCCESS_PASSWORD_MIGRATION,k.SUCCESS_REVOCATION,k.SUCCESS_SIGNUP,k.FAILED_SS_SSO_OPERATION,k.INFORMATION_FROM_SS_SSO_OPERATION,k.SUCCESS_SS_SSO_OPERATION,k.SUCCESS_SILENT_AUTH,k.SUCCESSFUL_SCIM_OPERATION,k.SUCCESSFULLY_IMPORTED_USERS,k.SUCCESS_VERIFICATION_EMAIL,k.SUCCESS_VERIFICATION_EMAIL_REQUEST,k.MAX_AMOUNT_OF_AUTHENTICATORS,k.USER_LOGIN_BLOCK_RELEASED,k.FAILED_UNIVERSAL_LOGOUT,k.SUCCESSFUL_UNIVERSAL_LOGOUT,k.WARNING_DURING_LOGIN,k.WARNING_SENDING_NOTIFICATION,k.WARNING_USER_MANAGEMENT,(()=>{let e={};for(let[t,n]of Object.entries(k))t.startsWith(`SUCCESS_`)||t.startsWith(`SUCCESSFUL_`)||t.startsWith(`SUCCESSFULLY_`)||t.endsWith(`_SUCCEEDED`)||t.endsWith(`_COMPLETED`)?e[n]=`success`:t.startsWith(`FAILED_`)||t.startsWith(`ERROR_`)||t.startsWith(`BREACHED_`)||t.startsWith(`BLOCKED_`)||t===`MFA_AUTH_FAILED`||t===`MFA_AUTH_REJECTED`||t===`MFA_RECOVERY_FAILED`||t===`MFA_ENROLLMENT_FAILED`||t===`EMAIL_VERIFICATION_FAILED`||t===`WEBAUTHN_CHALLENGE_FAILED`||t===`WEBAUTHN_ENROLLMENT_FAILED`||t===`PASSKEY_CHALLENGE_FAILED`||t===`FLOWS_EXECUTION_FAILED`||t===`FORMS_SUBMISSION_FAILED`||t===`CIBA_EXCHANGE_FAILED`||t===`CIBA_START_FAILED`||t===`ACTIONS_EXECUTION_FAILED`||t===`RICH_CONSENTS_ACCESS_ERROR`||t===`USER_CANCELED_DEVICE_CONFIRMATION`||t===`TOO_MANY_MFA_FAILURES`||t===`MFA_RECOVERY_RATE_LIMIT_EXCEED`||t===`API_LIMIT`||t===`MAX_AMOUNT_OF_AUTHENTICATORS`?e[n]=`failure`:t.startsWith(`WARNING_`)||t===`API_LIMIT_WARNING`||t===`DEPRECATION_NOTICE`||t===`PRE_LOGIN_ASSESSMENT`?e[n]=`warning`:t===`CODE_SENT`||t===`CODE_LINK_SENT`||t===`MFA_EMAIL_SENT`||t===`MFA_SMS_SENT`||t===`EMAIL_VERIFICATION_SENT`||t===`PUSH_NOTIFICATION_SENT`?e[n]=`code_sent`:t===`INFORMATION`||t===`INFORMATION_FROM_SS_SSO_OPERATION`||t===`MANAGEMENT_API_READ_OPERATION`||t===`APPI`||t===`ACLS_SUMMARY`||t===`ORGANIZATION_MEMBER_ADDED`?e[n]=`info`:e[n]=`other`;return e})();var Xt=e.z.object({name:e.z.string(),version:e.z.string(),env:e.z.object({node:e.z.string().optional()}).optional()}),Zt=e.z.object({country_code:e.z.string().length(2),city_name:e.z.string(),latitude:e.z.string(),longitude:e.z.string(),time_zone:e.z.string(),continent_code:e.z.string()});e.z.object({type:Yt,date:e.z.string(),description:e.z.string().optional(),ip:e.z.string().optional(),user_agent:e.z.string().optional(),details:e.z.any().optional(),isMobile:e.z.boolean(),user_id:e.z.string().optional(),user_name:e.z.string().optional(),connection:e.z.string().optional(),connection_id:e.z.string().optional(),client_id:e.z.string().optional(),client_name:e.z.string().optional(),audience:e.z.string().optional(),scope:e.z.string().optional(),strategy:e.z.string().optional(),strategy_type:e.z.string().optional(),hostname:e.z.string().optional(),auth0_client:Xt.optional(),log_id:e.z.string().optional(),location_info:Zt.optional()}).extend({log_id:e.z.string()});var Qt=e.z.enum([`http`,`eventbridge`,`eventgrid`,`splunk`,`datadog`,`sumo`]),$t=e.z.enum([`active`,`paused`,`suspended`]),en=e.z.object({type:e.z.string(),name:e.z.string()});e.z.object({name:e.z.string(),type:Qt,status:$t.optional(),sink:e.z.record(e.z.string(),e.z.unknown()),filters:e.z.array(en).optional(),isPriority:e.z.boolean().optional()}).extend({id:e.z.string(),status:$t,created_at:e.z.string().optional(),updated_at:e.z.string().optional()});var tn=e.z.enum([`auth0`,`cognito`,`okta`,`oidc`]),nn=e.z.object({domain:e.z.string(),client_id:e.z.string(),client_secret:e.z.string(),audience:e.z.string().optional(),scope:e.z.string().optional()}),rn=e.z.object({id:e.z.string().optional(),name:e.z.string(),provider:tn,connection:e.z.string(),enabled:e.z.boolean().default(!0),credentials:nn});e.z.object({id:e.z.string(),created_at:e.z.string(),updated_at:e.z.string()}).extend(rn.shape);var an=e.z.object({enabled:e.z.boolean().optional(),shields:e.z.array(e.z.string()).optional(),admin_notification_frequency:e.z.array(e.z.string()).optional(),method:e.z.string().optional(),stage:e.z.object({"pre-user-registration":e.z.object({shields:e.z.array(e.z.string()).optional()}).optional(),"pre-change-password":e.z.object({shields:e.z.array(e.z.string()).optional()}).optional()}).optional()}),on=e.z.object({enabled:e.z.boolean().optional(),shields:e.z.array(e.z.string()).optional(),allowlist:e.z.array(e.z.string()).optional(),mode:e.z.string().optional(),max_attempts:e.z.number().optional()}),sn=e.z.object({enabled:e.z.boolean().optional(),shields:e.z.array(e.z.string()).optional(),allowlist:e.z.array(e.z.string()).optional(),stage:e.z.object({"pre-login":e.z.object({max_attempts:e.z.number().optional(),rate:e.z.number().optional()}).optional(),"pre-user-registration":e.z.object({max_attempts:e.z.number().optional(),rate:e.z.number().optional()}).optional()}).optional()}),cn=e.z.object({breached_password_detection:an.optional(),brute_force_protection:on.optional(),suspicious_ip_throttling:sn.optional()});e.z.object({id:e.z.string().optional(),user_id:e.z.string(),password:e.z.string(),algorithm:e.z.enum([`bcrypt`,`argon2id`]).default(`argon2id`),is_current:e.z.boolean().default(!0)}).extend({id:e.z.string(),created_at:e.z.string(),updated_at:e.z.string()});var ln=e.z.object({initial_user_agent:e.z.string().describe(`First user agent of the device from which this user logged in`),initial_ip:e.z.string().describe(`First IP address associated with this session`),initial_asn:e.z.string().describe(`First autonomous system number associated with this session`),last_user_agent:e.z.string().describe(`Last user agent of the device from which this user logged in`),last_ip:e.z.string().describe(`Last IP address from which this user logged in`),last_asn:e.z.string().describe(`Last autonomous system number from which this user logged in`)}),un=e.z.object({id:e.z.string(),revoked_at:e.z.string().optional(),used_at:e.z.string().optional(),user_id:e.z.string().describe(`The user ID associated with the session`),expires_at:e.z.string().optional(),login_session_id:e.z.string(),idle_expires_at:e.z.string().optional(),device:ln.describe(`Metadata related to the device used in the session`),clients:e.z.array(e.z.string()).describe(`List of client details for the session`)});e.z.object({created_at:e.z.string(),updated_at:e.z.string(),authenticated_at:e.z.string(),last_interaction_at:e.z.string()}).extend(un.shape),e.z.object({kid:e.z.string().openapi({description:`The key id of the signing key`}),tenant_id:e.z.string().optional().openapi({description:`The tenant the key belongs to. Omitted means the key is shared / control-plane scoped.`}),cert:e.z.string().openapi({description:`The public certificate of the signing key`}),fingerprint:e.z.string().openapi({description:`The cert fingerprint`}),thumbprint:e.z.string().openapi({description:`The cert thumbprint`}),pkcs7:e.z.string().optional().openapi({description:`The private key in pkcs7 format`}),current:e.z.boolean().optional().openapi({description:`True if the key is the current key`}),next:e.z.boolean().optional().openapi({description:`True if the key is the next key`}),previous:e.z.boolean().optional().openapi({description:`True if the key is the previous key`}),current_since:e.z.string().optional().openapi({description:`The date and time when the key became the current key`}),current_until:e.z.string().optional().openapi({description:`The date and time when the current key was rotated`}),revoked:e.z.boolean().optional().openapi({description:`True if the key is revoked`}),revoked_at:e.z.string().optional().openapi({description:`The date and time when the key was revoked`}),connection:e.z.string().optional().openapi({description:`The connection identifier associated with the key`}),type:e.z.enum([`jwt_signing`,`saml_encryption`]).openapi({description:`The type of the signing key`})});var dn=e.z.object({id:e.z.string().optional(),audience:e.z.string().optional(),friendly_name:e.z.string(),picture_url:e.z.string().optional(),support_email:e.z.string().optional(),support_url:e.z.string().optional(),sender_email:e.z.string().email().optional(),sender_name:e.z.string().optional(),session_lifetime:e.z.number().optional(),idle_session_lifetime:e.z.number().optional(),ephemeral_session_lifetime:e.z.number().optional(),idle_ephemeral_session_lifetime:e.z.number().optional(),session_cookie:e.z.object({mode:e.z.enum([`persistent`,`non-persistent`]).optional()}).optional(),allowed_logout_urls:e.z.array(e.z.string()).optional(),default_redirection_uri:e.z.string().optional(),default_client_id:e.z.string().optional(),enabled_locales:e.z.array(e.z.string()).optional(),default_directory:e.z.string().optional(),error_page:e.z.object({html:e.z.string().optional(),show_log_link:e.z.boolean().optional(),url:e.z.string().optional()}).nullish(),flags:e.z.object({allow_changing_enable_sso:e.z.boolean().optional(),allow_legacy_delegation_grant_types:e.z.boolean().optional(),allow_legacy_ro_grant_types:e.z.boolean().optional(),allow_legacy_tokeninfo_endpoint:e.z.boolean().optional(),change_pwd_flow_v1:e.z.boolean().optional(),client_id_metadata_document_registration:e.z.boolean().optional(),custom_domains_provisioning:e.z.boolean().optional(),dashboard_insights_view:e.z.boolean().optional(),dashboard_log_streams_next:e.z.boolean().optional(),disable_clickjack_protection_headers:e.z.boolean().optional(),disable_fields_map_fix:e.z.boolean().optional(),disable_impersonation:e.z.boolean().optional(),disable_management_api_sms_obfuscation:e.z.boolean().optional(),enable_adfs_waad_email_verification:e.z.boolean().optional(),enable_apis_section:e.z.boolean().optional(),enable_client_connections:e.z.boolean().optional(),enable_custom_domain_in_emails:e.z.boolean().optional(),enable_dynamic_client_registration:e.z.boolean().optional(),dcr_require_initial_access_token:e.z.boolean().optional(),dcr_allowed_grant_types:e.z.array(e.z.string()).optional(),allow_http_return_to:e.z.array(e.z.string().refine(e=>{try{let t=new URL(e);return t.protocol===`http:`&&(t.pathname===``||t.pathname===`/`)&&!t.search&&!t.hash&&e===t.origin}catch{return!1}},{message:`must be a fully-qualified http origin (scheme + host + port, no path)`})).optional(),enable_idtoken_api2:e.z.boolean().optional(),enable_legacy_logs_search_v2:e.z.boolean().optional(),enable_legacy_profile:e.z.boolean().optional(),enable_pipeline2:e.z.boolean().optional(),enable_public_signup_user_exists_error:e.z.boolean().optional(),enable_sso:e.z.boolean().optional(),enforce_client_authentication_on_passwordless_start:e.z.boolean().optional(),genai_trial:e.z.boolean().optional(),improved_signup_bot_detection_in_classic:e.z.boolean().optional(),mfa_show_factor_list_on_enrollment:e.z.boolean().optional(),no_disclose_enterprise_connections:e.z.boolean().optional(),remove_alg_from_jwks:e.z.boolean().optional(),revoke_refresh_token_grant:e.z.boolean().optional(),trust_azure_adfs_email_verified_connection_property:e.z.boolean().optional(),use_scope_descriptions_for_consent:e.z.boolean().optional(),inherit_global_permissions_in_organizations:e.z.boolean().optional(),restrict_undefined_scopes:e.z.boolean().optional()}).optional(),sandbox_version:e.z.string().optional(),legacy_sandbox_version:e.z.string().optional(),sandbox_versions_available:e.z.array(e.z.string()).optional(),change_password:e.z.object({enabled:e.z.boolean().optional(),html:e.z.string().optional()}).optional(),guardian_mfa_page:e.z.object({enabled:e.z.boolean().optional(),html:e.z.string().optional()}).optional(),device_flow:e.z.object({charset:e.z.enum([`base20`,`digits`]).optional(),mask:e.z.string().max(20).optional()}).optional(),default_token_quota:e.z.object({clients:e.z.object({client_credentials:e.z.record(e.z.string(),e.z.any()).optional()}).optional(),organizations:e.z.object({client_credentials:e.z.record(e.z.string(),e.z.any()).optional()}).optional()}).nullish(),default_audience:e.z.string().optional(),default_organization:e.z.string().optional(),sessions:e.z.object({oidc_logout_prompt_enabled:e.z.boolean().optional()}).optional(),oidc_logout:e.z.object({rp_logout_end_session_endpoint_discovery:e.z.boolean().optional()}).optional(),allow_organization_name_in_authentication_api:e.z.boolean().optional(),customize_mfa_in_postlogin_action:e.z.boolean().optional(),acr_values_supported:e.z.array(e.z.string()).optional(),mtls:e.z.object({enable_endpoint_aliases:e.z.boolean().optional()}).nullish(),pushed_authorization_requests_supported:e.z.boolean().optional(),authorization_response_iss_parameter_supported:e.z.boolean().optional(),deployment_type:e.z.enum([`shared`,`wfp`]).default(`shared`).optional(),provisioning_state:e.z.enum([`pending`,`ready`,`failed`]).default(`ready`).optional(),provisioning_error:e.z.string().max(2048).optional(),provisioning_state_changed_at:e.z.string().optional(),bundle_configuration:e.z.string().max(64).optional(),worker_version:e.z.string().max(64).optional(),worker_script_name:e.z.string().max(255).optional(),storage_kind:e.z.enum([`own_d1`,`existing_d1`,`shared_planetscale`]).optional(),d1_database_id:e.z.string().max(64).optional(),attack_protection:cn.optional(),mfa:e.z.object({policy:e.z.enum([`never`,`always`]).default(`never`).optional(),factors:e.z.object({sms:e.z.boolean().default(!1),otp:e.z.boolean().default(!1),email:e.z.boolean().default(!1),push_notification:e.z.boolean().default(!1),webauthn_roaming:e.z.boolean().default(!1),webauthn_platform:e.z.boolean().default(!1),recovery_code:e.z.boolean().default(!1),duo:e.z.boolean().default(!1)}).optional(),sms_provider:e.z.object({provider:e.z.enum([`twilio`,`vonage`,`aws_sns`,`phone_message_hook`]).optional()}).optional(),twilio:e.z.object({sid:e.z.string().optional(),auth_token:e.z.string().optional(),from:e.z.string().optional(),messaging_service_sid:e.z.string().optional()}).optional(),phone_message:e.z.object({message:e.z.string().optional()}).optional()}).optional()});e.z.object({created_at:e.z.string().nullable().transform(e=>e??``),updated_at:e.z.string().nullable().transform(e=>e??``)}).extend(dn.shape).extend({id:e.z.string(),is_control_plane:e.z.boolean().optional()}),e.z.object({access_token:e.z.string(),id_token:e.z.string().optional(),scope:e.z.string().optional(),state:e.z.string().optional(),refresh_token:e.z.string().optional(),token_type:e.z.string(),expires_in:e.z.number()}),e.z.object({code:e.z.string(),state:e.z.string().optional()});var fn=e.z.object({button_border_radius:e.z.number(),button_border_weight:e.z.number(),buttons_style:e.z.enum([`pill`,`rounded`,`sharp`]),input_border_radius:e.z.number(),input_border_weight:e.z.number(),inputs_style:e.z.enum([`pill`,`rounded`,`sharp`]),show_widget_shadow:e.z.boolean(),widget_border_weight:e.z.number(),widget_corner_radius:e.z.number()}),pn=e.z.object({base_focus_color:e.z.string(),base_hover_color:e.z.string(),body_text:e.z.string(),captcha_widget_theme:e.z.enum([`auto`,`dark`,`light`]),error:e.z.string(),header:e.z.string(),icons:e.z.string(),input_background:e.z.string(),input_border:e.z.string(),input_filled_text:e.z.string(),input_labels_placeholders:e.z.string(),links_focused_components:e.z.string(),primary_button:e.z.string(),primary_button_label:e.z.string(),secondary_button_border:e.z.string(),secondary_button_label:e.z.string(),success:e.z.string(),widget_background:e.z.string(),widget_border:e.z.string()}),A=e.z.object({bold:e.z.boolean(),size:e.z.number()}),mn=e.z.object({body_text:A,buttons_text:A,font_url:e.z.string(),input_labels:A,links:A,links_style:e.z.enum([`normal`,`underlined`]),reference_text_size:e.z.number(),subtitle:A,title:A}),hn=e.z.object({background_color:e.z.string(),background_image_url:e.z.string(),page_layout:e.z.enum([`center`,`left`,`right`]),logo_placement:e.z.enum([`widget`,`chip`,`none`]).optional()}),gn=e.z.object({header_text_alignment:e.z.enum([`center`,`left`,`right`]),logo_height:e.z.number(),logo_position:e.z.enum([`center`,`left`,`none`,`right`]),logo_url:e.z.string(),social_buttons_layout:e.z.enum([`bottom`,`top`])});e.z.object({borders:fn,colors:pn,displayName:e.z.string(),fonts:mn,page_background:hn,widget:gn}).extend({themeId:e.z.string()}),e.z.object({universal_login_experience:e.z.enum([`new`,`classic`]).default(`new`),identifier_first:e.z.boolean().default(!0),password_first:e.z.boolean().default(!1),webauthn_platform_first_factor:e.z.boolean()});var _n=e.z.object({hosts:e.z.array(e.z.string()).optional(),methods:e.z.array(e.z.string()).optional(),path:e.z.string().default(`/*`),headers:e.z.record(e.z.string(),e.z.string()).optional(),query:e.z.record(e.z.string(),e.z.string()).optional()}),vn=e.z.object({type:e.z.string(),options:e.z.record(e.z.string(),e.z.unknown()).default({})}),j=e.z.object({id:e.z.string().optional(),custom_domain_id:e.z.string(),priority:e.z.number().int().default(100),match:_n,handlers:e.z.array(vn).min(1)}),yn=j.extend({id:e.z.string(),tenant_id:e.z.string(),created_at:e.z.string(),updated_at:e.z.string()}),bn=j.partial().omit({id:!0,custom_domain_id:!0});e.z.object({name:e.z.string(),enabled:e.z.boolean().optional().default(!0),default_from_address:e.z.string().optional(),credentials:e.z.record(e.z.string(),e.z.unknown()),settings:e.z.object({}).optional()});var xn=e.z.enum([`verify_email`,`verify_email_by_code`,`reset_email`,`reset_email_by_code`,`welcome_email`,`blocked_account`,`stolen_credentials`,`enrollment_email`,`mfa_oob_code`,`change_password`,`password_reset`,`user_invitation`]);e.z.object({template:xn,body:e.z.string(),from:e.z.string(),subject:e.z.string(),syntax:e.z.literal(`liquid`).default(`liquid`),resultUrl:e.z.string().optional(),urlLifetimeInSeconds:e.z.number().int().nonnegative().optional(),includeEmailInRedirect:e.z.boolean().default(!1),enabled:e.z.boolean().default(!0)}),e.z.object({id:e.z.string(),login_id:e.z.string(),user_id:e.z.string(),client_id:e.z.string(),expires_at:e.z.string().optional(),idle_expires_at:e.z.string().optional(),last_exchanged_at:e.z.string().optional(),device:ln,resource_servers:e.z.array(e.z.object({audience:e.z.string(),scopes:e.z.string()})),rotating:e.z.boolean(),token_lookup:e.z.string().optional(),token_hash:e.z.string().optional(),family_id:e.z.string().optional(),rotated_to:e.z.string().optional(),rotated_at:e.z.string().optional()}).extend({created_at:e.z.string(),revoked_at:e.z.string().optional()}),e.z.object({to:e.z.string(),message:e.z.string()}),e.z.object({name:e.z.string(),options:e.z.object({})});var Sn=e.z.object({value:e.z.string(),description:e.z.string().optional()}),Cn=e.z.object({token_dialect:e.z.enum([`access_token`,`access_token_authz`]).optional(),enforce_policies:e.z.boolean().optional(),allow_skipping_userinfo:e.z.boolean().optional(),skip_userinfo:e.z.boolean().optional(),persist_client_authorization:e.z.boolean().optional(),enable_introspection_endpoint:e.z.boolean().optional(),mtls:e.z.object({bound_access_tokens:e.z.boolean().optional()}).optional()}),wn=e.z.object({id:e.z.string().optional(),name:e.z.string(),identifier:e.z.string(),scopes:e.z.array(Sn).optional(),signing_alg:e.z.string().optional(),signing_secret:e.z.string().optional(),token_lifetime:e.z.number().default(86400),token_lifetime_for_web:e.z.number().default(7200),skip_consent_for_verifiable_first_party_clients:e.z.boolean().optional(),allow_offline_access:e.z.boolean().optional(),verificationKey:e.z.string().optional(),options:Cn.optional(),is_system:e.z.boolean().optional(),metadata:e.z.record(e.z.string(),e.z.any()).optional()}).extend({created_at:e.z.string().optional(),updated_at:e.z.string().optional()});e.z.array(wn);var Tn=e.z.object({role_id:e.z.string(),resource_server_identifier:e.z.string(),permission_name:e.z.string()}).extend({created_at:e.z.string()});e.z.array(Tn),e.z.object({user_id:e.z.string().openapi({description:`The id of the user that granted the consent`}),clientID:e.z.string().openapi({description:`The id of the client the grant was issued to`}),audience:e.z.string().optional().openapi({description:`The audience the grant applies to`}),scope:e.z.array(e.z.string()).default([]).openapi({description:`The list of OAuth scopes the user has consented to`})}).extend({id:e.z.string()});var En=e.z.object({user_id:e.z.string(),resource_server_identifier:e.z.string(),permission_name:e.z.string(),organization_id:e.z.string().optional()}).extend({tenant_id:e.z.string(),created_at:e.z.string().optional()});e.z.array(En);var Dn=e.z.object({user_id:e.z.string(),resource_server_identifier:e.z.string(),resource_server_name:e.z.string(),permission_name:e.z.string(),description:e.z.string().nullable().optional(),created_at:e.z.string().optional(),organization_id:e.z.string().optional()});e.z.array(Dn);var On=e.z.object({user_id:e.z.string(),role_id:e.z.string(),organization_id:e.z.string().optional()}).extend({tenant_id:e.z.string(),created_at:e.z.string().optional()});e.z.array(On);var kn=e.z.object({id:e.z.string().optional().openapi({description:`The unique identifier of the role. If not provided, one will be generated.`}),name:e.z.string().min(1).max(50).openapi({description:`The name of the role. Cannot include '<' or '>'`}),description:e.z.string().max(255).optional().openapi({description:`The description of the role`}),is_system:e.z.boolean().optional(),metadata:e.z.record(e.z.string(),e.z.any()).optional().openapi({description:`Metadata associated with the role. Can be used to control sync behavior in multi-tenancy scenarios.`})}).extend({id:e.z.string().openapi({description:`The unique identifier of the role`}),created_at:e.z.string().optional(),updated_at:e.z.string().optional()});e.z.array(kn);var An=e.z.object({logo_url:e.z.string().optional().openapi({description:`URL of the organization's logo`}),colors:e.z.object({primary:e.z.string().optional().openapi({description:`Primary color in hex format (e.g., #FF0000)`}),page_background:e.z.string().optional().openapi({description:`Page background color in hex format (e.g., #FFFFFF)`})}).optional()}).optional(),jn=e.z.object({connection_id:e.z.string().openapi({description:`ID of the connection`}),assign_membership_on_login:e.z.boolean().default(!1).openapi({description:`Whether to assign membership to the organization on login`}),show_as_button:e.z.boolean().default(!0).openapi({description:`Whether to show this connection as a button in the login screen`}),is_signup_enabled:e.z.boolean().default(!0).openapi({description:`Whether signup is enabled for this connection`})}),Mn=e.z.object({client_credentials:e.z.object({enforce:e.z.boolean().default(!1).openapi({description:`Whether to enforce token quota limits`}),per_day:e.z.number().min(0).default(0).openapi({description:`Maximum tokens per day (0 = unlimited)`}),per_hour:e.z.number().min(0).default(0).openapi({description:`Maximum tokens per hour (0 = unlimited)`})}).optional()}).optional();e.z.object({id:e.z.string().optional(),name:e.z.string().min(1).regex(/^[a-z0-9_-]+$/,{message:`Organization name must be lowercase and can only contain letters, numbers, hyphens, and underscores`}).openapi({description:`The name of the organization. Must be lowercase and can only contain letters, numbers, hyphens, and underscores.`}),display_name:e.z.string().optional().openapi({description:`The display name of the organization`}),branding:An,metadata:e.z.record(e.z.string(),e.z.any()).default({}).optional().openapi({description:`Custom metadata for the organization`}),enabled_connections:e.z.array(jn).default([]).optional().openapi({description:`List of enabled connections for the organization`}),token_quota:Mn}).extend(n.shape).extend({id:e.z.string(),name:e.z.string().min(1).openapi({description:`The name of the organization`})});var Nn=e.z.object({connection_id:e.z.string().openapi({description:`ID of the tenant-level connection to enable for the org.`}),assign_membership_on_login:e.z.boolean().optional().default(!1),show_as_button:e.z.boolean().optional().default(!0),is_signup_enabled:e.z.boolean().optional().default(!0)}).extend({connection:e.z.object({name:e.z.string().optional(),strategy:e.z.string().optional()}).optional(),created_at:e.z.string().optional(),updated_at:e.z.string().optional()});e.z.array(Nn),e.z.object({user_id:e.z.string().openapi({description:`ID of the user`}),organization_id:e.z.string().openapi({description:`ID of the organization`})}).extend(n.shape).extend({id:e.z.string()}),e.z.object({idle_session_lifetime:e.z.number().default(72),session_lifetime:e.z.number().default(168),session_cookie:e.z.object({mode:e.z.enum([`persistent`,`non-persistent`]).optional()}).optional(),enable_client_connections:e.z.boolean().optional(),default_redirection_uri:e.z.string().optional(),enabled_locales:e.z.array(e.z.string()).optional(),default_directory:e.z.string().optional(),error_page:e.z.object({html:e.z.string().optional(),show_log_link:e.z.boolean().optional(),url:e.z.string().optional()}).optional(),flags:e.z.object({allow_legacy_delegation_grant_types:e.z.boolean().optional(),allow_legacy_ro_grant_types:e.z.boolean().optional(),allow_legacy_tokeninfo_endpoint:e.z.boolean().optional(),disable_clickjack_protection_headers:e.z.boolean().optional(),enable_apis_section:e.z.boolean().optional(),enable_client_connections:e.z.boolean().optional(),enable_custom_domain_in_emails:e.z.boolean().optional(),enable_dynamic_client_registration:e.z.boolean().optional(),enable_idtoken_api2:e.z.boolean().optional(),enable_legacy_logs_search_v2:e.z.boolean().optional(),enable_legacy_profile:e.z.boolean().optional(),enable_pipeline2:e.z.boolean().optional(),enable_public_signup_user_exists_error:e.z.boolean().optional(),use_scope_descriptions_for_consent:e.z.boolean().optional(),disable_management_api_sms_obfuscation:e.z.boolean().optional(),enable_adfs_waad_email_verification:e.z.boolean().optional(),revoke_refresh_token_grant:e.z.boolean().optional(),dashboard_log_streams_next:e.z.boolean().optional(),dashboard_insights_view:e.z.boolean().optional(),disable_fields_map_fix:e.z.boolean().optional(),mfa_show_factor_list_on_enrollment:e.z.boolean().optional()}).optional(),friendly_name:e.z.string().optional(),picture_url:e.z.string().optional(),support_email:e.z.string().optional(),support_url:e.z.string().optional(),sandbox_version:e.z.string().optional(),sandbox_versions_available:e.z.array(e.z.string()).optional(),change_password:e.z.object({enabled:e.z.boolean(),html:e.z.string()}).optional(),guardian_mfa_page:e.z.object({enabled:e.z.boolean(),html:e.z.string()}).optional(),default_audience:e.z.string().optional(),default_organization:e.z.string().optional(),sessions:e.z.object({oidc_logout_prompt_enabled:e.z.boolean().optional()}).optional(),mfa:e.z.object({policy:e.z.enum([`never`,`always`]).default(`never`).optional(),factors:e.z.object({sms:e.z.boolean().default(!1),otp:e.z.boolean().default(!1),email:e.z.boolean().default(!1),push_notification:e.z.boolean().default(!1),webauthn_roaming:e.z.boolean().default(!1),webauthn_platform:e.z.boolean().default(!1),recovery_code:e.z.boolean().default(!1),duo:e.z.boolean().default(!1)}).optional(),sms_provider:e.z.object({provider:e.z.enum([`twilio`,`vonage`,`aws_sns`,`phone_message_hook`]).optional()}).optional(),twilio:e.z.object({sid:e.z.string().optional(),auth_token:e.z.string().optional(),from:e.z.string().optional(),messaging_service_sid:e.z.string().optional()}).optional(),phone_message:e.z.object({message:e.z.string().optional()}).optional()}).optional()}),e.z.object({date:e.z.string().openapi({description:`Date these events occurred in ISO 8601 format`,example:`2025-12-19`}),logins:e.z.number().openapi({description:`Number of logins on this date`,example:150}),signups:e.z.number().openapi({description:`Number of signups on this date`,example:25}),leaked_passwords:e.z.number().openapi({description:`Number of breached-password detections on this date (subscription required)`,example:0}),updated_at:e.z.string().openapi({description:`Date and time this stats entry was last updated in ISO 8601 format`,example:`2025-12-19T10:30:00.000Z`}),created_at:e.z.string().openapi({description:`Approximate date and time the first event occurred in ISO 8601 format`,example:`2025-12-19T00:00:00.000Z`})}),e.z.number().openapi({description:`Number of active users in the last 30 days`,example:1234}),e.z.enum([`active-users`,`logins`,`signups`,`refresh-tokens`,`sessions`]),e.z.enum([`hour`,`day`,`week`,`month`]),e.z.enum([`time`,`connection`,`client_id`,`user_type`,`event`]),e.z.enum([`password`,`social`,`passwordless`,`enterprise`]);var Pn=e.z.object({name:e.z.string(),type:e.z.string()}),Fn=e.z.object({elapsed:e.z.number(),rows_read:e.z.number().optional(),bytes_read:e.z.number().optional()});e.z.object({meta:e.z.array(Pn),data:e.z.array(e.z.record(e.z.string(),e.z.any())),rows:e.z.number(),rows_before_limit_at_least:e.z.number().optional(),statistics:Fn.optional()});var In=e.z.enum(`login.login-id.login-password.signup.signup-id.signup-password.reset-password.consent.mfa.mfa-push.mfa-otp.mfa-voice.mfa-phone.mfa-webauthn.mfa-email.mfa-recovery-code.status.device-flow.email-verification.email-otp-challenge.organizations.invitation.common.passkeys.captcha.custom-form.login-passwordless.mfa-login-options`.split(`.`)),Ln=e.z.record(e.z.string(),e.z.record(e.z.string(),e.z.string())).openapi({type:`object`,additionalProperties:{type:`object`,additionalProperties:{type:`string`}}});e.z.object({prompt:In,language:e.z.string(),custom_text:Ln});var Rn=e.z.enum([`phone`,`totp`,`email`,`push`,`webauthn-roaming`,`webauthn-platform`,`passkey`]),M=e.z.object({user_id:e.z.string(),type:Rn,phone_number:e.z.string().optional(),totp_secret:e.z.string().optional(),credential_id:e.z.string().optional(),public_key:e.z.string().optional(),sign_count:e.z.number().int().nonnegative().optional(),credential_backed_up:e.z.boolean().optional(),transports:e.z.array(e.z.string()).optional(),friendly_name:e.z.string().optional(),confirmed:e.z.boolean().default(!1)});function N(t,n){t.type===`phone`&&!t.phone_number&&n.addIssue({code:e.z.ZodIssueCode.custom,message:`phone_number is required when type is 'phone'`,path:[`phone_number`]}),t.type===`totp`&&!t.totp_secret&&n.addIssue({code:e.z.ZodIssueCode.custom,message:`totp_secret is required when type is 'totp'`,path:[`totp_secret`]}),[`webauthn-roaming`,`webauthn-platform`,`passkey`].includes(t.type)&&(t.credential_id||n.addIssue({code:e.z.ZodIssueCode.custom,message:`credential_id is required when type is '${t.type}'`,path:[`credential_id`]}),t.public_key||n.addIssue({code:e.z.ZodIssueCode.custom,message:`public_key is required when type is '${t.type}'`,path:[`public_key`]}))}M.superRefine(N),M.extend({id:e.z.string(),created_at:e.z.string(),updated_at:e.z.string()}).superRefine(N);var zn=1e4;function P(e,t,n){let r=typeof t==`number`?{freshTtlMs:t,maxEntries:n}:t,i=r.freshTtlMs,a=r.staleTtlMs??0,o=r.staleIfErrorTtlMs??0,s=r.negativeTtlMs??i,c=r.maxEntries??zn,l=r.waitUntil,u=new Map;function d(e){for(let[t,n]of u)n.stale_if_error_until<=e&&n.stale_until<=e&&!n.refreshing&&u.delete(t);for(;u.size>=c;){let e=u.keys().next().value;if(e===void 0)break;u.delete(e)}}function f(e,t,n){let r=n+(t===null?s:i),c=t===null?r:r+a,l={value:t,fresh_until:r,stale_until:c,stale_if_error_until:t===null?c:c+o};return u.delete(e),d(n),u.set(e,l),l}function p(t){let n=u.get(t);if(n?.refreshing)return n.refreshing;let r=n??{value:null,fresh_until:0,stale_until:0,stale_if_error_until:0},i=(async()=>{try{let n=await e.resolveHost(t);return f(t,n,Date.now()),n}catch(e){let n=u.get(t);throw n&&(n.refreshing=void 0,n.stale_if_error_until<=Date.now()&&u.delete(t)),e}})();return r.refreshing=i,n||(d(Date.now()),u.set(t,r)),i}return{async resolveHost(e){let t=Date.now(),n=u.get(e);if(n&&n.fresh_until>t)return u.delete(e),u.set(e,n),n.value;if(n&&n.stale_until>t){if(u.delete(e),u.set(e,n),!n.refreshing){let t=p(e).catch(()=>void 0);l&&l(t)}return n.value}try{return await p(e)}catch(e){if(n&&n.stale_if_error_until>t)return n.value;throw e}}}}var F=class{definitions=new Map;bindings;constructor(e={}){this.bindings=e}add(e){return this.definitions.set(e.type,e),this}has(e){return this.definitions.has(e)}build(e,t){let n=this.definitions.get(e);if(!n)throw Error(`Unknown proxy handler type: ${e}`);let r=n.optionsSchema.safeParse(t);if(!r.success)throw Error(`Invalid options for proxy handler "${e}": ${r.error.message}`);return n.build(r.data,{bindings:this.bindings})}};function I(e){return e}var L=`__authhero_proxy_request__`,R=`__authhero_proxy_tenant_id__`,z=`__authhero_proxy_custom_domain_id__`,B=`__authhero_proxy_domain__`,V=`x-authhero-proxy-mutability-probe`;function Bn(e,t){e.set(L,t)}function H(e){return e.get(L)??e.req.raw}function Vn(e,t){e.set(R,t.tenant_id),e.set(z,t.custom_domain_id),e.set(B,t.domain)}function Hn(e){return e.get(R)}function Un(e){return e.get(z)}function Wn(e){return e.get(B)}function U(e,t){let n=H(e),r=new Headers(n.headers);t(r),Bn(e,new Request(n,{headers:r}))}function W(e){let t=e.res;try{t.headers.append(V,`1`),t.headers.delete(V);return}catch{e.res=new Response(t.body,{status:t.status,statusText:t.statusText,headers:new Headers(t.headers)})}}var Gn=e.z.object({origins:e.z.array(e.z.string()).optional(),allow_credentials:e.z.boolean().optional(),allow_headers:e.z.array(e.z.string()).optional(),allow_methods:e.z.array(e.z.string()).optional(),expose_headers:e.z.array(e.z.string()).optional(),max_age:e.z.number().int().optional()}).refine(e=>!(e.allow_credentials&&e.origins?.includes(`*`)),{message:`Cannot use wildcard origin (*) with allow_credentials`});function G(e,t){let n=new Headers,r=e.origins??[`*`],i=r.includes(`*`);return i&&!e.allow_credentials?n.set(`Access-Control-Allow-Origin`,`*`):t&&(i||r.includes(t))&&(n.set(`Access-Control-Allow-Origin`,t),n.append(`Vary`,`Origin`)),e.allow_credentials&&n.set(`Access-Control-Allow-Credentials`,`true`),e.allow_methods?.length&&n.set(`Access-Control-Allow-Methods`,e.allow_methods.join(`, `)),e.allow_headers?.length&&n.set(`Access-Control-Allow-Headers`,e.allow_headers.join(`, `)),e.expose_headers?.length&&n.set(`Access-Control-Expose-Headers`,e.expose_headers.join(`, `)),e.max_age!==void 0&&n.set(`Access-Control-Max-Age`,String(e.max_age)),n}var Kn=I({type:`cors`,optionsSchema:Gn,build(e){return async(t,n)=>{let r=t.req.header(`origin`)??null;if(t.req.method===`OPTIONS`&&r!==null&&t.req.header(`access-control-request-method`)!==void 0){let t=G(e,r);return new Response(null,{status:204,headers:t})}await n();let i=G(e,r);W(t),i.forEach((e,n)=>{n.toLowerCase()===`vary`?t.res.headers.append(n,e):t.res.headers.set(n,e)})}}}),qn=e.z.object({username:e.z.string(),password:e.z.string(),realm:e.z.string().optional()});function Jn(e,t){let n=`${e}:${t}`;return typeof btoa==`function`?btoa(n):Buffer.from(n,`utf-8`).toString(`base64`)}var Yn=I({type:`basic_auth`,optionsSchema:qn,build(e){let t=Jn(e.username,e.password),n=(e.realm??`Restricted`).replace(/["\\\r\n]/g,``);return async(e,r)=>{let i=e.req.header(`authorization`);if(i){let e=i.indexOf(` `);if(e>0){let n=i.slice(0,e),a=i.slice(e+1);if(n.toLowerCase()===`basic`&&a===t)return r()}}return new Response(`Unauthorized`,{status:401,headers:{"WWW-Authenticate":`Basic realm="${n}"`}})}}}),Xn=I({type:`headers`,optionsSchema:e.z.object({request:e.z.record(e.z.string(),e.z.string()).optional(),response:e.z.record(e.z.string(),e.z.string()).optional(),remove_request:e.z.array(e.z.string()).optional(),remove_response:e.z.array(e.z.string()).optional()}),build(e){return async(t,n)=>{if((e.request||e.remove_request)&&U(t,t=>{if(e.remove_request?.forEach(e=>t.delete(e)),e.request)for(let[n,r]of Object.entries(e.request))t.set(n,r)}),await n(),(e.response||e.remove_response)&&(W(t),e.remove_response?.forEach(e=>t.res.headers.delete(e)),e.response))for(let[n,r]of Object.entries(e.response))t.res.headers.set(n,r)}}}),Zn=I({type:`cache`,optionsSchema:e.z.object({ttl_seconds:e.z.number().int().positive()}),build(e){return async(t,n)=>{if(await n(),!t.res.headers.has(`Cache-Control`)){let n=t.res.headers.has(`set-cookie`)?`private`:`public`;W(t),t.res.headers.set(`Cache-Control`,`${n}, max-age=${e.ttl_seconds}`)}}}}),Qn=I({type:`forwarded_headers`,optionsSchema:e.z.object({client_ip_header:e.z.string().default(`cf-connecting-ip`),set_x_real_ip:e.z.boolean().default(!0),set_x_original_url:e.z.boolean().default(!0)}),build(e){return async(t,n)=>{let r=new URL(t.req.url);U(t,n=>{n.set(`x-forwarded-host`,r.host),n.set(`x-forwarded-proto`,r.protocol.replace(`:`,``)),e.set_x_original_url&&n.set(`x-original-url`,t.req.url);let i=n.get(e.client_ip_header),a=(n.get(`x-forwarded-for`)??``).split(`,`).map(e=>e.trim()).filter(Boolean),o=i??a[a.length-1]??`127.0.0.1`,s=a.length===0||a[a.length-1]!==o,c=a.length?s?`${a.join(`, `)}, ${o}`:a.join(`, `):o;n.set(`x-forwarded-for`,c),e.set_x_real_ip&&n.set(`x-real-ip`,o)}),await n()}}}),$n=e.z.object({upstream_host:e.z.string().optional()});function er(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function tr(e){if(typeof e.getSetCookie==`function`)return e.getSetCookie();let t=[];return e.forEach((e,n)=>{n.toLowerCase()===`set-cookie`&&t.push(e)}),t}var nr=I({type:`rewrite_cookies`,optionsSchema:$n,build(e){return async(t,n)=>{await n();let r=new URL(t.req.url).hostname,i=e.upstream_host??t.get(`__proxy_upstream_host__`);if(!i)return;let a=tr(t.res.headers);if(a.length===0)return;let o=er(i),s=RegExp(`(?:^|;\\s*)Domain=\\.?${o}(?=;|$)`,`i`);W(t),t.res.headers.delete(`set-cookie`);for(let e of a)t.res.headers.append(`set-cookie`,e.replace(s,`Domain=${r}`))}}}),rr=I({type:`rewrite_location`,optionsSchema:e.z.object({upstream_origin:e.z.string().optional()}),build(e){return async(t,n)=>{await n();let r=t.res.status;if(r<300||r>=400)return;let i=t.res.headers.get(`location`);if(!i)return;let a=e.upstream_origin??t.get(`__proxy_upstream_origin__`);if(!a)return;let o;try{o=new URL(i)}catch{return}if(o.origin!==a)return;let s=new URL(t.req.url),c=`${`${s.protocol}//${s.host}`}${o.pathname}${o.search}${o.hash}`;W(t),t.res.headers.set(`location`,c)}}}),ir=class extends Error{ms;constructor(e,t){super(`${t??`Operation`} timed out after ${e}ms`),this.name=`TimeoutError`,this.ms=e}};function K(e){return e instanceof ir?!0:e instanceof Error?e.name===`AbortError`||e.name===`TimeoutError`:!1}function q(e,t){let n=new AbortController,r=setTimeout(()=>n.abort(),e);return t(n.signal).finally(()=>clearTimeout(r))}function J(e,t,n){let r,i=new Promise((e,i)=>{r=setTimeout(()=>i(new ir(t,n)),t)});return Promise.race([e,i]).finally(()=>{r&&clearTimeout(r)})}var ar=new Set([`connection`,`keep-alive`,`proxy-authenticate`,`proxy-authorization`,`te`,`trailers`,`transfer-encoding`,`upgrade`]),or=3e4,sr=e.z.object({upstream_url:e.z.string(),preserve_host:e.z.boolean().default(!1),timeout_ms:e.z.number().int().positive().optional()});function cr(e,t){return e===``||e===`/`?t:`${e.endsWith(`/`)?e.slice(0,-1):e}${t.startsWith(`/`)?t:`/${t}`}`}function lr(e){return e!==`GET`&&e!==`HEAD`}function ur(e,t){let n=new URL(t.url),r=new URL(e.upstream_url);r.pathname=cr(r.pathname,n.pathname),r.search=n.search;let i=new Headers(t.headers);for(let e of ar)i.delete(e);e.preserve_host||i.set(`host`,r.host),i.has(`x-forwarded-host`)||i.set(`x-forwarded-host`,n.host),i.has(`x-forwarded-proto`)||i.set(`x-forwarded-proto`,n.protocol.replace(`:`,``));let a=lr(t.method)?t.body:void 0,o={method:t.method,headers:i,body:a,redirect:`manual`};return a instanceof ReadableStream&&(o.duplex=`half`),{target:r,init:o}}var dr=I({type:`http`,optionsSchema:sr,build(e){let t=e.timeout_ms??or;return async n=>{let{target:r,init:i}=ur(e,H(n));n.set(`__proxy_upstream_host__`,r.hostname),n.set(`__proxy_upstream_origin__`,`${r.protocol}//${r.host}`);try{return await q(t,e=>fetch(r.toString(),{...i,signal:e}))}catch(e){return K(e)?n.text(`Upstream timeout`,504,{"x-authhero-proxy-error":`http_timeout`}):n.text(`Bad gateway`,502,{"x-authhero-proxy-error":`http_failed`})}}}}),fr=3e4,pr=e.z.object({binding:e.z.string(),upstream_url:e.z.string().optional(),preserve_host:e.z.boolean().default(!0),timeout_ms:e.z.number().int().positive().optional()});function mr(e){return typeof e==`object`&&!!e&&typeof e.fetch==`function`}var hr=I({type:`service_binding`,optionsSchema:pr,build(e,t){let n=t.bindings[e.binding];if(!mr(n))throw Error(`Service binding "${e.binding}" is not configured or is not a Fetcher`);let r=e.upstream_url??`https://${e.binding}.binding.invalid/`,i=e.timeout_ms??fr;return async t=>{let a=H(t),{target:o,init:s}=ur({upstream_url:r,preserve_host:e.preserve_host},a);t.set(`__proxy_upstream_host__`,o.hostname),t.set(`__proxy_upstream_origin__`,`${o.protocol}//${o.host}`);try{return await q(i,async e=>n.fetch(new Request(o.toString(),{...s,signal:e})))}catch(e){return K(e)?t.text(`service_binding timed out after ${i}ms`,504,{"x-authhero-proxy-error":`service_binding_timeout`}):t.text(`Bad gateway`,502,{"x-authhero-proxy-error":`service_binding_failed`})}}}}),gr=3e4,_r=e.z.object({binding:e.z.string(),script_name:e.z.string(),cpu_ms:e.z.number().int().positive().optional(),subrequests:e.z.number().int().positive().optional(),timeout_ms:e.z.number().int().positive().optional()});function vr(e){return typeof e==`object`&&!!e&&typeof e.get==`function`}var Y=/\{(tenant_id|custom_domain_id|domain|host)\}/g;function yr(e){return Y.lastIndex=0,Y.test(e)}var br=I({type:`dispatch_namespace`,optionsSchema:_r,build(e,t){let n=t.bindings[e.binding];if(!vr(n))throw Error(`Dispatch namespace binding "${e.binding}" is not configured or does not expose .get()`);let r=yr(e.script_name),i=e.timeout_ms??gr,a=e.cpu_ms||e.subrequests?{limits:{...e.cpu_ms?{cpuMs:e.cpu_ms}:{},...e.subrequests?{subrequests:e.subrequests}:{}}}:void 0;return async t=>{let o=e.script_name;if(r){let n=Hn(t),r=Un(t),i=Wn(t),a=t.req.header(`host`)??t.req.header(`x-forwarded-host`)??``;if(o=o.replace(Y,(e,t)=>{switch(t){case`tenant_id`:return n??``;case`custom_domain_id`:return r??``;case`domain`:return i??``;case`host`:return a;default:return``}}),o.includes(`{`)||o===``)return t.text(`dispatch_namespace: could not resolve script name from template "${e.script_name}"`,500)}let s=H(t);try{let e=n.get(o,void 0,a);return await q(i,async t=>{let n=new Request(s,{signal:t});return e.fetch(n)})}catch(e){return K(e)?t.text(`dispatch_namespace timed out after ${i}ms`,504,{"x-authhero-proxy-error":`dispatch_namespace_timeout`}):t.text(`Bad gateway`,502,{"x-authhero-proxy-error":`dispatch_namespace_failed`})}}}}),xr=I({type:`redirect`,optionsSchema:e.z.object({upstream_url:e.z.string().refine(e=>{try{let t=new URL(e);return(t.protocol===`http:`||t.protocol===`https:`)&&!!t.hostname}catch{return!1}},{message:`upstream_url must be a valid http(s) URL with a hostname`}),status:e.z.union([e.z.literal(301),e.z.literal(302),e.z.literal(307),e.z.literal(308)]).default(302),preserve_path:e.z.boolean().default(!0),preserve_query:e.z.boolean().default(!0)}),build(e){return async t=>{let n=new URL(t.req.url),r=new URL(e.upstream_url),i=r.pathname&&r.pathname!==`/`;return e.preserve_path&&!i&&(r.pathname=n.pathname),e.preserve_query&&!r.search&&(r.search=n.search),new Response(null,{status:e.status,headers:{location:r.toString()}})}}}),Sr=I({type:`static`,optionsSchema:e.z.object({status:e.z.number().int().default(200),headers:e.z.record(e.z.string(),e.z.string()).optional(),body:e.z.string().optional(),json:e.z.unknown().optional()}),build(e){return async()=>{let t=new Headers(e.headers??{}),n=e.body??null;return e.json!==void 0&&(n=JSON.stringify(e.json),t.has(`content-type`)||t.set(`content-type`,`application/json; charset=utf-8`)),new Response(n,{status:e.status,headers:t})}}});function Cr(e){e.add(Kn).add(Yn).add(Xn).add(Zn).add(Qn).add(nr).add(rr).add(dr).add(hr).add(br).add(xr).add(Sr)}function X(e){return[...e].sort((e,t)=>e.priority===t.priority?e.created_at.localeCompare(t.created_at):e.priority-t.priority)}function wr(e,t){let n=e.toLowerCase(),r=t.toLowerCase();if(n===r)return!0;if(n.startsWith(`*.`)){let e=n.slice(1);return r.endsWith(e)&&r.length>e.length}return!1}function Tr(e,t){return!e||e.length===0?!0:e.some(e=>wr(e,t))}function Er(e){let t=(e.headers?Object.entries(e.headers):[]).map(([e,t])=>[e.toLowerCase(),new RegExp(t)]),n=(e.query?Object.entries(e.query):[]).map(([e,t])=>[e,new RegExp(t)]),r=e.hosts;return async(e,i)=>{if(r&&!Tr(r,e.req.header(`host`)??``))return new Response(`No matching route`,{status:404});for(let[n,r]of t){let t=e.req.header(n);if(t===void 0||!r.test(t))return new Response(`No matching route`,{status:404})}if(n.length>0){let t=new URL(e.req.url);for(let[e,r]of n){let n=t.searchParams.get(e);if(n===null||!r.test(n))return new Response(`No matching route`,{status:404})}}await i()}}var Dr=[`GET`,`POST`,`PUT`,`PATCH`,`DELETE`,`OPTIONS`,`HEAD`];function Z(e,n,r,i){let a=new t.Hono;r&&a.use(`*`,async(e,t)=>{Vn(e,r),await t()});let o=X(e);for(let e of o){let t=[];t.push(Er(e.match));for(let r of e.handlers)t.push(n.build(r.type,r.options));let r=e.match.methods?.length?e.match.methods.map(e=>e.toUpperCase()):Dr,i=e.match.path||`/*`;a.on(r,[i],...t)}return i&&i.length>0?a.on(Dr,[`*`],...i):a.all(`*`,e=>e.text(`No matching route`,404)),a.onError((e,t)=>{let n=K(e);return t.text(n?`Upstream timeout`:`Bad gateway`,n?504:502,{"x-authhero-proxy-error":n?`handler_timeout`:`handler_failed`})}),a}var Or=1e4;function kr(e){return e.resolver?e.resolver:e.cache?P(e.data,e.cache):P(e.data,e.cacheTtlMs??3e4)}function Ar(e){if(e.registry)return e.registry;let t=new F(e.bindings??{});return Cr(t),t}function Q(e){let t=kr(e),n=Ar(e),r=new WeakMap,i=e.resolveHostTimeoutMs??Or,a=e.defaultHandlers&&e.defaultHandlers.length>0?e.defaultHandlers.map(e=>n.build(e.type,e.options)):void 0,o=a?Z([],n,void 0,a):void 0;return async e=>{let s=e.req.header(`host`)??e.req.header(`x-forwarded-host`);if(!s)return e.text(`Missing host`,400);try{let c=await J(t.resolveHost(s),i,`resolveHost`);if(!c)return o?await o.fetch(e.req.raw):e.text(`Unknown host`,404);let l=r.get(c);return l||(l=Z(c.routes,n,{tenant_id:c.tenant_id,custom_domain_id:c.custom_domain_id,domain:c.domain},a),r.set(c,l)),await l.fetch(e.req.raw)}catch(t){return o?await o.fetch(e.req.raw):K(t)?e.text(`Resolve host timed out after ${i}ms`,504,{"x-authhero-proxy-error":`resolve_host_timeout`}):e.text(`Bad gateway`,502,{"x-authhero-proxy-error":`data_plane_error`})}}}function jr(e){let n=new t.Hono;return n.all(`*`,Q(e)),n}function Mr(e){let n=new t.Hono;return n.all(`*`,Q({data:e.data,cacheTtlMs:e.cacheTtlMs,cache:e.cache,resolver:e.resolver,registry:e.registry,bindings:e.bindings,resolveHostTimeoutMs:e.resolveHostTimeoutMs,defaultHandlers:e.defaultHandlers})),n.onError((e,t)=>{let n=K(e);return t.text(n?`Proxy timeout`:`Bad gateway`,n?504:502,{"x-authhero-proxy-error":n?`proxy_timeout`:`proxy_error`})}),n}var Nr=1e3,Pr=1e3;function Fr(e,t){return new Request(`https://proxy-cache.internal/${encodeURIComponent(e)}/hosts/${encodeURIComponent(t.toLowerCase())}`,{method:`GET`})}function Ir(){return globalThis.caches?.default}function Lr(e){let t=e.cache??Ir();if(!t)return e.upstream;let n=t,r=e.namespace??`authhero-proxy`,i=e.cacheTtlSeconds??60,a=e.negativeCacheTtlSeconds??10,o=e.waitUntil,s=e.cacheReadTimeoutMs??Nr,c=e.cacheWriteTimeoutMs??Pr;async function l(e){try{return await J(Promise.resolve(n.match(e)),s,`cache.match`)}catch{return}}return{async resolveHost(t){let s=Fr(r,t),u=await l(s);if(u)try{return(await u.json()).value}catch{}let d=await e.upstream.resolveHost(t),f=d===null?a:i,p=new Response(JSON.stringify({value:d}),{headers:{"content-type":`application/json`,"cache-control":`public, max-age=${f}`}}),m=J(Promise.resolve(n.put(s,p)),c,`cache.put`).catch(()=>void 0);return o?o(m):await m,d}}}function Rr(e,t){return Fr(e,t)}var zr=1e3,Br=1e3;function Vr(e){let{upstream:t,cache:n,freshTtlMs:r,staleTtlMs:i=0,staleIfErrorTtlMs:a=0,negativeTtlMs:o=r,keyPrefix:s=`authhero-proxy-host`,waitUntil:c,cacheReadTimeoutMs:l=zr,cacheWriteTimeoutMs:u=Br}=e,d=new Map;function f(e){return`${s}:${e.toLowerCase()}`}async function p(e){try{return await J(n.get(e),l,`cache.get`)??null}catch{return null}}function m(e,t,r){let i=J(Promise.resolve().then(()=>n.set(e,t,r)),u,`cache.set`).catch(()=>void 0);return c?(c(i),Promise.resolve()):i}async function h(e){let n=d.get(e);if(n)return n;let s=(async()=>{try{let n=await t.resolveHost(e),s=Date.now(),c=n===null?o:r,l=n===null?0:i,u=n===null?0:a,d={value:n,freshUntilMs:s+c,staleUntilMs:s+c+l,staleIfErrorUntilMs:s+c+l+u},p=Math.max(1,Math.ceil((c+l+u)/1e3));return await m(f(e),d,p),n}finally{d.delete(e)}})();return d.set(e,s),s}return{async resolveHost(e){let t=await p(f(e)),n=Date.now();if(t&&typeof t.freshUntilMs==`number`){if(t.freshUntilMs>n)return t.value;if(t.staleUntilMs>n){if(!d.has(e)){let t=h(e).catch(()=>void 0);c&&c(t)}return t.value}}try{return await h(e)}catch(e){if(t&&(t.staleIfErrorUntilMs??t.staleUntilMs)>n)return t.value;throw e}}}}function Hr(e,t){return`${e}:${t.toLowerCase()}`}function $(){throw Error(`Static proxy adapter is read-only; configure routes at init time`)}function Ur(e,t,n,r,i,a){return{id:e.id??`${n}:${t}`,tenant_id:r,custom_domain_id:i,priority:e.priority??100,match:{...e.match,path:e.match.path||`/*`},handlers:e.handlers,created_at:e.created_at??a,updated_at:e.updated_at??a}}function Wr(e){let t=new Date().toISOString(),n=e.defaultTenantId??`static`,r=new Map;for(let[i,a]of Object.entries(e.hosts)){let e=i.toLowerCase(),o=Array.isArray(a)?{routes:a}:a,s=o.tenant_id??n,c=o.custom_domain_id??e,l=o.routes.map((n,r)=>Ur(n,r,e,s,c,t)).sort((e,t)=>e.priority-t.priority);r.set(e,{tenant_id:s,custom_domain_id:c,domain:e,routes:l})}return{proxyRoutes:{async create(){return $()},async update(){return $()},async remove(){return $()},async get(e,t){for(let n of r.values()){if(n.tenant_id!==e)continue;let r=n.routes.find(e=>e.id===t);if(r)return r}return null},async list(e,t){let n=[];for(let i of r.values())i.tenant_id===e&&(t?.custom_domain_id&&i.custom_domain_id!==t.custom_domain_id||n.push(...i.routes));let i=t?.per_page??n.length,a=(t?.page??0)*i,o=n.slice(a,a+i);return{proxy_routes:o,start:a,limit:i,length:o.length}}},async resolveHost(e){return r.get(e.toLowerCase())??null}}}function Gr(e,t={}){return{priority:t.priority,match:{path:t.path??`/*`},handlers:[{type:`http`,options:{upstream_url:e,preserve_host:t.preserve_host??!1}}]}}var Kr=`proxy:resolve_host`;function qr(){let e=()=>{throw Error(`HTTP proxy adapter does not expose write access to proxy_routes; mutate via the control-plane management API`)};return{async create(){return e()},async update(){return e()},async remove(){return e()},async get(){throw Error(`HTTP proxy adapter does not expose per-route reads; use resolveHost`)},async list(){throw Error(`HTTP proxy adapter does not expose per-route reads; use resolveHost`)}}}function Jr(e){let t=e.fetch??fetch,n=e.baseUrl.replace(/\/+$/,``),r=e.resolveHostPath??`/api/v2/proxy/control-plane/hosts/`,i=e.audience??`${n}/api/v2/`,a=e.scope??`proxy:resolve_host`,o=e.tokenRefreshSkewSeconds??60,s=e.timeoutMs??2500;function c(e){let t=new AbortController,n=setTimeout(()=>t.abort(),s);return e(t.signal).finally(()=>clearTimeout(n))}let l=null,u=null;async function d(){let r=await c(r=>t(`${n}/oauth/token`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({grant_type:`client_credentials`,client_id:e.clientId,client_secret:e.clientSecret,audience:i,scope:a}),signal:r}));if(!r.ok)throw Error(`Proxy adapter token request failed: ${r.status} ${await r.text().catch(()=>``)}`);let s=await r.json(),u=s.expires_in??3600;return l={value:s.access_token,expires_at:Date.now()+(u-o)*1e3},s.access_token}async function f(){return l&&l.expires_at>Date.now()?l.value:u||(u=d().finally(()=>{u=null}),u)}return{proxyRoutes:qr(),async resolveHost(e){let i=await f(),a=`${n}${r}${encodeURIComponent(e.toLowerCase())}`,o=await c(e=>t(a,{headers:{authorization:`Bearer ${i}`},signal:e}));if(o.status===404)return null;if(!o.ok)throw Error(`Proxy adapter resolveHost failed: ${o.status} ${await o.text().catch(()=>``)}`);return await o.json()}}}exports.HandlerRegistry=F,exports.PROXY_RESOLVE_HOST_SCOPE=Kr,exports.basicAuthHandler=Yn,exports.buildCacheAdapterKey=Hr,exports.buildCacheApiKey=Rr,exports.buildMatchFilter=Er,exports.cacheHandler=Zn,exports.compileHostApp=Z,exports.corsHandler=Kn,exports.createCacheAdapterHostCache=Vr,exports.createCacheApiHostCache=Lr,exports.createHttpProxyAdapter=Jr,exports.createInMemoryHostCache=P,exports.createProxyApp=Mr,exports.createProxyDataPlaneHandler=Q,exports.createProxyDataPlaneRouter=jr,exports.createStaticProxyAdapter=Wr,exports.defineHandler=I,exports.dispatchNamespaceHandler=br,exports.forwardedHeadersHandler=Qn,exports.handlerConfigSchema=vn,exports.headersHandler=Xn,exports.httpHandler=dr,exports.httpRoute=Gr,exports.matchSchema=_n,exports.matchesAnyHost=Tr,exports.matchesHost=wr,exports.proxyRouteInsertSchema=j,exports.proxyRouteSchema=yn,exports.proxyRouteUpdateSchema=bn,exports.redirectHandler=xr,exports.registerBuiltinHandlers=Cr,exports.rewriteCookiesHandler=nr,exports.rewriteLocationHandler=rr,exports.serviceBindingHandler=hr,exports.sortRoutes=X,exports.staticHandler=Sr;
package/dist/proxy.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { ProxyRoute, ProxyRoutesAdapter, CacheAdapter, RouteMatch, HandlerConfig } from '@authhero/adapter-interfaces';
2
2
  export { HandlerConfig, ListProxyRoutesParams, ListProxyRoutesResult, ProxyRoute, ProxyRouteInsert, ProxyRouteUpdate, ProxyRoutesAdapter, RouteMatch, handlerConfigSchema, matchSchema, proxyRouteInsertSchema, proxyRouteSchema, proxyRouteUpdateSchema } from '@authhero/adapter-interfaces';
3
- import { MiddlewareHandler, Hono, Context } from 'hono';
3
+ import { MiddlewareHandler, Context, Hono } from 'hono';
4
4
  import { z } from '@hono/zod-openapi';
5
5
 
6
6
  interface ResolvedHost {
@@ -54,7 +54,11 @@ declare class HandlerRegistry {
54
54
  }
55
55
  declare function defineHandler<TOptions>(def: HandlerDefinition<TOptions>): HandlerDefinition<TOptions>;
56
56
 
57
- interface ProxyAppOptions {
57
+ interface ProxyRouteHandlerSpec {
58
+ type: string;
59
+ options?: unknown;
60
+ }
61
+ interface ProxyDataPlaneOptions {
58
62
  data: ProxyDataAdapter;
59
63
  cacheTtlMs?: number;
60
64
  cache?: HostCacheOptions;
@@ -62,10 +66,12 @@ interface ProxyAppOptions {
62
66
  registry?: HandlerRegistry;
63
67
  bindings?: Record<string, unknown>;
64
68
  resolveHostTimeoutMs?: number;
69
+ defaultHandlers?: ProxyRouteHandlerSpec[];
65
70
  }
66
- declare function createProxyApp(options: ProxyAppOptions): Hono;
71
+ declare function createProxyDataPlaneHandler(options: ProxyDataPlaneOptions): (c: Context) => Promise<Response>;
72
+ declare function createProxyDataPlaneRouter(options: ProxyDataPlaneOptions): Hono;
67
73
 
68
- interface ProxyDataPlaneOptions {
74
+ interface ProxyAppOptions {
69
75
  data: ProxyDataAdapter;
70
76
  cacheTtlMs?: number;
71
77
  cache?: HostCacheOptions;
@@ -73,9 +79,9 @@ interface ProxyDataPlaneOptions {
73
79
  registry?: HandlerRegistry;
74
80
  bindings?: Record<string, unknown>;
75
81
  resolveHostTimeoutMs?: number;
82
+ defaultHandlers?: ProxyRouteHandlerSpec[];
76
83
  }
77
- declare function createProxyDataPlaneHandler(options: ProxyDataPlaneOptions): (c: Context) => Promise<Response>;
78
- declare function createProxyDataPlaneRouter(options: ProxyDataPlaneOptions): Hono;
84
+ declare function createProxyApp(options: ProxyAppOptions): Hono;
79
85
 
80
86
  interface CacheApiHostCacheOptions {
81
87
  upstream: HostResolverCache;
@@ -238,8 +244,12 @@ interface ProxyHostContext {
238
244
  * `domain` set in its Hono context (read with `getProxy*` helpers from
239
245
  * `handlers/util.ts`). Handlers that template against those values
240
246
  * (`dispatch_namespace`) depend on this wiring.
247
+ *
248
+ * `defaultHandlers` is a prebuilt middleware chain installed as the catch-all
249
+ * when no per-host route matches. Pass `undefined` to keep the legacy 404
250
+ * "No matching route" behavior.
241
251
  */
242
- declare function compileHostApp(routes: ProxyRoute[], registry: HandlerRegistry, hostContext?: ProxyHostContext): Hono;
252
+ declare function compileHostApp(routes: ProxyRoute[], registry: HandlerRegistry, hostContext?: ProxyHostContext, defaultHandlers?: MiddlewareHandler[]): Hono;
243
253
 
244
254
  declare function sortRoutes(routes: ProxyRoute[]): ProxyRoute[];
245
255
  /**
@@ -315,4 +325,4 @@ declare function createHttpProxyAdapter(options: HttpProxyAdapterOptions): Proxy
315
325
  declare const PROXY_RESOLVE_HOST_SCOPE = "proxy:resolve_host";
316
326
 
317
327
  export { HandlerRegistry, PROXY_RESOLVE_HOST_SCOPE, basicAuthHandler, buildCacheAdapterKey, buildCacheApiKey, buildMatchFilter, cacheHandler, compileHostApp, corsHandler, createCacheAdapterHostCache, createCacheApiHostCache, createHttpProxyAdapter, createInMemoryHostCache, createProxyApp, createProxyDataPlaneHandler, createProxyDataPlaneRouter, createStaticProxyAdapter, defineHandler, dispatchNamespaceHandler, forwardedHeadersHandler, headersHandler, httpHandler, httpRoute, matchesAnyHost, matchesHost, redirectHandler, registerBuiltinHandlers, rewriteCookiesHandler, rewriteLocationHandler, serviceBindingHandler, sortRoutes, staticHandler };
318
- export type { CacheAdapterHostCacheOptions, CacheApiHostCacheOptions, HandlerBuildContext, HandlerDefinition, HostCacheOptions, HostResolverCache, HttpProxyAdapterOptions, ProxyAppOptions, ProxyDataAdapter, ProxyDataPlaneOptions, ResolvedHost, StaticHostConfig, StaticProxyAdapterOptions, StaticRouteInput };
328
+ export type { CacheAdapterHostCacheOptions, CacheApiHostCacheOptions, HandlerBuildContext, HandlerDefinition, HostCacheOptions, HostResolverCache, HttpProxyAdapterOptions, ProxyAppOptions, ProxyDataAdapter, ProxyDataPlaneOptions, ProxyRouteHandlerSpec, ResolvedHost, StaticHostConfig, StaticProxyAdapterOptions, StaticRouteInput };