authhero 4.56.0 → 4.57.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/authhero.cjs +12 -12
- package/dist/authhero.d.ts +12 -12
- package/dist/authhero.mjs +428 -437
- package/dist/stats.html +1 -1
- package/package.json +3 -3
package/dist/authhero.cjs
CHANGED
|
@@ -78,12 +78,12 @@ ${t.join(`
|
|
|
78
78
|
`,i=0;for(;i<n.length;)i+64<=n.length?r+=n.substr(i,64)+`\r
|
|
79
79
|
`:r+=n.substr(i)+`\r
|
|
80
80
|
`,i+=64;return r+=`-----END ${e} KEY-----\r
|
|
81
|
-
`,r}async function TI(e){const t=await e.publicKey.export(),n=await crypto.subtle.exportKey("jwk",t),r=JSON.stringify(n,Object.keys(n).sort()),s=new TextEncoder().encode(r);return pf(await Lw(s))}const PI=1e3*60*60*24,OI=new o.OpenAPIHono().openapi(o.createRoute({tags:["keys"],method:"get",path:"/signing",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:keys","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.array(lf)}},description:"List of keys"}}}),async e=>{const{signingKeys:t}=await e.env.data.keys.list({q:"type:jwt_signing"}),n=t.filter(r=>"cert"in r).map(r=>r);return e.json(n)}).openapi(o.createRoute({tags:["keys"],method:"get",path:"/signing/{kid}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({kid:o.z.string()})},security:[{Bearer:["read:keys","auth:read"]}],responses:{200:{content:{"application/json":{schema:lf}},description:"The requested key"}}}),async e=>{const{kid:t}=e.req.valid("param"),{signingKeys:n}=await e.env.data.keys.list({q:"type:jwt_signing"}),r=n.find(i=>i.kid===t);if(!r)throw new I(404,{message:"Key not found"});return e.json(r)}).openapi(o.createRoute({tags:["keys"],method:"post",path:"/signing/rotate",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["create:keys","auth:write"]}],responses:{201:{description:"Status"}}}),async e=>{const{signingKeys:t}=await e.env.data.keys.list({q:"type:jwt_signing"});for await(const r of t)await e.env.data.keys.update(r.kid,{revoked_at:new Date(Date.now()+PI).toISOString()});const n=await Yl({name:`CN=${e.env.ORGANIZATION_NAME}`});return await e.env.data.keys.create({...n,type:"jwt_signing"}),e.text("OK",{status:201})}).openapi(o.createRoute({tags:["keys"],method:"put",path:"/signing/{kid}/revoke",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({kid:o.z.string()})},security:[{Bearer:["update:keys","auth:write"]}],responses:{201:{description:"Status"}}}),async e=>{const{kid:t}=e.req.valid("param");if(!await e.env.data.keys.update(t,{revoked_at:new Date().toISOString()}))throw new I(404,{message:"Key not found"});const r=await Yl({name:`CN=${e.env.ORGANIZATION_NAME}`});return await e.env.data.keys.create({...r,type:"jwt_signing"}),e.text("OK")}),RI=new o.OpenAPIHono().openapi(o.createRoute({tags:["users"],method:"get",path:"/",request:{query:o.z.object({email:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:users","auth:read"]}],responses:{200:{content:{"tenant/json":{schema:o.z.array(uh)}},description:"List of users"}}}),async e=>{const{email:t}=e.req.valid("query"),r=(await Lh(e.env.data.users,e.var.tenant_id,t)).filter(i=>!i.linked_to);return e.json(r)}),LI=jt.extend({clients:o.z.array(ti)}),Fy=o.z.object({enabled_connections:o.z.array(o.z.object({connection_id:o.z.string(),connection:_r.optional()}))}),DI=o.z.array(o.z.string()),UI=new o.OpenAPIHono().openapi(o.createRoute({tags:["clients"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:clients","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([LI,o.z.array(ti)])}},description:"List of clients"}}}),async e=>{const t=e.var.tenant_id,{page:n,per_page:r,include_totals:i,sort:s,q:a}=e.req.valid("query"),l=(await e.env.data.clients.list(t,{page:n,per_page:r,include_totals:i,sort:ht(s),q:a})).clients;return i?e.json({clients:l,start:0,limit:10,length:l.length}):e.json(l)}).openapi(o.createRoute({tags:["clients"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:clients","auth:read"]}],responses:{200:{content:{"application/json":{schema:ti}},description:"A client"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=await e.env.data.clients.get(t,n);if(!r)throw new I(404);return e.json(r)}).openapi(o.createRoute({tags:["clients"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:clients","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param");if(!await e.env.data.clients.remove(t,n))throw new I(404,{message:"Client not found"});return e.text("OK")}).openapi(o.createRoute({tags:["clients"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:o.z.object(Xc.shape).partial()}}},params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:clients","auth:write"]}],responses:{200:{content:{"application/json":{schema:ti}},description:"The updated client"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),i=e.req.valid("json");await e.env.data.clients.update(t,n,i);const s=await e.env.data.clients.get(t,n);if(!s)throw new I(404,{message:"Client not found"});return e.json(s)}).openapi(o.createRoute({tags:["clients"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:o.z.object(Xc.shape)}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["create:clients","auth:write"]}],responses:{201:{content:{"application/json":{schema:o.z.object(ti.shape)}},description:"A client"}}}),async e=>{const t=e.var.tenant_id,n=e.req.valid("json"),r={...n,client_secret:n.client_secret||Oe()},i=await e.env.data.clients.create(t,r);return e.json(i,{status:201})}).openapi(o.createRoute({tags:["clients"],method:"get",path:"/{id}/connections",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:clients","auth:read"]}],responses:{200:{content:{"application/json":{schema:Fy}},description:"List of connections enabled for this client"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=await e.env.data.clients.get(t,n);if(!r)throw new I(404,{message:"Client not found"});const i=r.connections&&r.connections.length>0;let s;if(i)s=await Promise.all(r.connections.map(async a=>{const c=await e.env.data.connections.get(t,a);return{connection_id:a,connection:c||void 0}}));else{const{connections:a}=await e.env.data.connections.list(t,{});s=a.filter(c=>c.id).map(c=>({connection_id:c.id,connection:c}))}return e.json({enabled_connections:s})}).openapi(o.createRoute({tags:["clients"],method:"patch",path:"/{id}/connections",request:{body:{content:{"application/json":{schema:DI}}},params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:clients","auth:write"]}],responses:{200:{content:{"application/json":{schema:Fy}},description:"Updated list of connections for this client"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=e.req.valid("json");if(!await e.env.data.clients.get(t,n))throw new I(404,{message:"Client not found"});const s=[];for(const c of r)await e.env.data.connections.get(t,c)&&s.push(c);await e.env.data.clients.update(t,n,{connections:s});const a=await Promise.all(s.map(async c=>{const l=await e.env.data.connections.get(t,c);return{connection_id:c,connection:l||void 0}}));return e.json({enabled_connections:a})}),BI=new o.OpenAPIHono().openapi(o.createRoute({tags:["tenants","settings"],method:"get",path:"/settings",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:tenants","auth:read"]}],responses:{200:{content:{"application/json":{schema:nl}},description:"Current tenant settings"}}}),async e=>{const t=await e.env.data.tenants.get(e.var.tenant_id);if(!t)throw new I(404,{message:"Tenant not found"});return e.json(t)}).openapi(o.createRoute({tags:["tenants","settings"],method:"patch",path:"/settings",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:o.z.object(wh.shape).partial()}}}},security:[{Bearer:["update:tenants","auth:write"]}],responses:{200:{content:{"application/json":{schema:nl}},description:"Updated tenant settings"}}}),async e=>{const t=e.req.valid("json"),{id:n,...r}=t,i=await e.env.data.tenants.get(e.var.tenant_id);if(!i)throw new I(404,{message:"Tenant not found"});const s=Tw(i,r);await e.env.data.tenants.update(e.var.tenant_id,s);const a=await e.env.data.tenants.get(e.var.tenant_id);if(!a)throw new I(500,{message:"Failed to retrieve updated tenant"});return e.json(a)}),MI=jt.extend({logs:o.z.array(tl)}),qI=new o.OpenAPIHono().openapi(o.createRoute({tags:["logs"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:logs","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(tl),MI])}},description:"List of log rows"}}}),async e=>{const{page:t,per_page:n,include_totals:r,sort:i,q:s}=e.req.valid("query"),a=await e.env.data.logs.list(e.var.tenant_id,{page:t,per_page:n,include_totals:r,sort:ht(i),q:s});return r?e.json(a):e.json(a.logs)}).openapi(o.createRoute({tags:["logs"],method:"get",path:"/{id}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({id:o.z.string()})},security:[{Bearer:["read:logs","auth:read"]}],responses:{200:{content:{"application/json":{schema:tl}},description:"A log entry"}}}),async e=>{const{id:t}=e.req.valid("param"),n=await e.env.data.logs.get(e.var.tenant_id,t);if(!n)throw new I(404);return e.json(n)}),FI=17,HI={organization:"org_",connection:"con_",action:"act_",hook:"h_",rule:"rul_",resource_server:"api_",guardian_factor:"gfa_",invite:"inv_",flow:"af_"};function wd(e){const r=Pw("0123456789abcdefghijklmnopqrstuvwxyz",FI)();return`${HI[e]}${r}`}function VI(){return wd("organization")}function KI(){return wd("connection")}function GI(){return wd("hook")}function WI(){return wd("invite")}const JI=jt.extend({hooks:o.z.array(ro)}),ZI=new o.OpenAPIHono().openapi(o.createRoute({tags:["hooks"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:hooks","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(ro),JI])}},description:"List of hooks"}}}),async e=>{const{page:t,per_page:n,include_totals:r,sort:i,q:s}=e.req.valid("query"),a=await e.env.data.hooks.list(e.var.tenant_id,{page:t,per_page:n,include_totals:r,sort:ht(i),q:s});return r?e.json(a):e.json(a.hooks)}).openapi(o.createRoute({tags:["hooks"],method:"post",path:"/",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:af}}}},security:[{Bearer:["create:hooks","auth:write"]}],responses:{201:{content:{"application/json":{schema:ro}},description:"The created hook"}}}),async e=>{const t=e.req.valid("json"),n={...t,hook_id:t.hook_id||GI()},r=await e.env.data.hooks.create(e.var.tenant_id,n);return e.json(r,{status:201})}).openapi(o.createRoute({tags:["hooks"],method:"patch",path:"/{hook_id}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({hook_id:o.z.string()}),body:{content:{"application/json":{schema:o.z.union(af.options.map(e=>e.omit({hook_id:!0}).partial()))}}}},security:[{Bearer:["update:hooks","auth:write"]}],responses:{200:{content:{"application/json":{schema:ro}},description:"The updated hook"},404:{description:"Hook not found"}}}),async e=>{const{hook_id:t}=e.req.valid("param"),n=e.req.valid("json");await e.env.data.hooks.update(e.var.tenant_id,t,n);const r=await e.env.data.hooks.get(e.var.tenant_id,t);if(!r)throw new I(404,{message:"Hook not found"});return e.json(r)}).openapi(o.createRoute({tags:["hooks"],method:"get",path:"/{hook_id}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({hook_id:o.z.string()})},security:[{Bearer:["read:hooks","auth:read"]}],responses:{200:{content:{"application/json":{schema:ro}},description:"A hook"},404:{description:"Hook not found"}}}),async e=>{const{hook_id:t}=e.req.valid("param"),n=await e.env.data.hooks.get(e.var.tenant_id,t);if(!n)throw new I(404,{message:"Hook not found"});return e.json(n)}).openapi(o.createRoute({tags:["hooks"],method:"delete",path:"/{hook_id}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({hook_id:o.z.string()})},security:[{Bearer:["delete:hooks","auth:write"]}],responses:{200:{description:"A hook"}}}),async e=>{const{hook_id:t}=e.req.valid("param");if(!await e.env.data.hooks.remove(e.var.tenant_id,t))throw new I(404,{message:"Hook not found"});return e.text("OK")});o.z.object({start:o.z.number(),limit:o.z.number(),length:o.z.number()});uu.extend({email:o.z.string(),login_count:o.z.number(),multifactor:o.z.array(o.z.string()).optional(),last_ip:o.z.string().optional(),last_login:o.z.string().optional(),user_id:o.z.string()}).catchall(o.z.any());const XI=jt.extend({connections:o.z.array(_r)}),YI=o.z.object({enabled_clients:o.z.array(o.z.object({client_id:o.z.string(),name:o.z.string()}))}),QI=o.z.array(o.z.object({client_id:o.z.string(),status:o.z.boolean()})),ej=new o.OpenAPIHono().openapi(o.createRoute({tags:["connections"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:connections","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(_r),XI])}},description:"List of connectionss"}}}),async e=>{const{page:t,per_page:n,include_totals:r=!1,sort:i,q:s}=e.req.valid("query"),a=await e.env.data.connections.list(e.var.tenant_id,{page:t,per_page:n,include_totals:r,sort:ht(i),q:s});return r?e.json(a):e.json(a.connections)}).openapi(o.createRoute({tags:["connections"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:connections","auth:read"]}],responses:{200:{content:{"application/json":{schema:_r}},description:"A connection"}}}),async e=>{const{id:t}=e.req.valid("param"),n=await e.env.data.connections.get(e.var.tenant_id,t);if(!n)throw new I(404);return e.json(n)}).openapi(o.createRoute({tags:["connections"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:connections","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const{id:t}=e.req.valid("param"),n=e.var.tenant_id;if(!await e.env.data.connections.remove(n,t))throw new I(404,{message:"Connection not found"});return e.text("OK")}).openapi(o.createRoute({tags:["connections"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:o.z.object(Qc.shape).partial()}}},params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:connections","auth:write"]}],responses:{200:{content:{"application/json":{schema:_r}},description:"The updated connection"}}}),async e=>{const{id:t}=e.req.valid("param"),n=e.req.valid("json"),r=e.var.tenant_id;if(!await e.env.data.connections.update(r,t,n))throw new I(404,{message:"Connection not found"});const s=await e.env.data.connections.get(r,t);if(!s)throw new I(404,{message:"Connection not found"});return e.json(s)}).openapi(o.createRoute({tags:["connections"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:o.z.object(Qc.shape)}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["create:connections","auth:write"]}],responses:{201:{content:{"application/json":{schema:_r}},description:"A connection"}}}),async e=>{const t=e.req.valid("json"),n=e.var.tenant_id,r=t.id||KI(),i=await e.env.data.connections.create(n,{...t,id:r});return e.json(i,{status:201})}).openapi(o.createRoute({tags:["connections"],method:"get",path:"/{id}/clients",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:connections","auth:read"]}],responses:{200:{content:{"application/json":{schema:YI}},description:"List of clients enabled for this connection"}}}),async e=>{const{id:t}=e.req.valid("param");if(!await e.env.data.connections.get(e.var.tenant_id,t))throw new I(404,{message:"Connection not found"});const{clients:r}=await e.env.data.clients.list(e.var.tenant_id,{per_page:1e3}),i=r.filter(s=>s.connections?.includes(t)).map(s=>({client_id:s.client_id,name:s.name}));return e.json({enabled_clients:i})}).openapi(o.createRoute({tags:["connections"],method:"patch",path:"/{id}/clients",request:{body:{content:{"application/json":{schema:QI}}},params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:connections","auth:write"]}],responses:{200:{description:"Clients updated successfully"}}}),async e=>{const{id:t}=e.req.valid("param"),n=e.req.valid("json");if(!await e.env.data.connections.get(e.var.tenant_id,t))throw new I(404,{message:"Connection not found"});for(const i of n){const s=await e.env.data.clients.get(e.var.tenant_id,i.client_id);if(!s)continue;const a=s.connections||[];i.status?a.includes(t)||await e.env.data.clients.update(e.var.tenant_id,i.client_id,{connections:[...a,t]}):a.includes(t)&&await e.env.data.clients.update(e.var.tenant_id,i.client_id,{connections:a.filter(c=>c!==t)})}return e.text("OK")}),tj=new o.OpenAPIHono().openapi(o.createRoute({tags:["prompts"],method:"get",path:"/",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:prompts","auth:read"]}],responses:{200:{content:{"application/json":{schema:lo}},description:"Branding settings"}}}),async e=>{const t=await e.env.data.promptSettings.get(e.var.tenant_id);return t?e.json(t):e.json(lo.parse({}))}).openapi(o.createRoute({tags:["prompts"],method:"patch",path:"/",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:o.z.object(lo.shape).partial()}}}},security:[{Bearer:["update:prompts","auth:write"]}],responses:{200:{description:"Prompts settings"}}}),async e=>{const t=e.req.valid("json"),n=await e.env.data.promptSettings.get(e.var.tenant_id);return Object.assign(n,t),await e.env.data.promptSettings.set(e.var.tenant_id,n),e.json(n)}).openapi(o.createRoute({tags:["prompts"],method:"get",path:"/custom-text",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:prompts","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.array(o.z.object({prompt:io,language:o.z.string()}))}},description:"List of custom text entries"}}}),async e=>{const t=await e.env.data.customText.list(e.var.tenant_id);return e.json(t)}).openapi(o.createRoute({tags:["prompts"],method:"get",path:"/{prompt}/custom-text/{language}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({prompt:io,language:o.z.string()})},security:[{Bearer:["read:prompts","auth:read"]}],responses:{200:{content:{"application/json":{schema:oo}},description:"Custom text for the prompt and language"}}}),async e=>{const{prompt:t,language:n}=e.req.valid("param"),r=await e.env.data.customText.get(e.var.tenant_id,t,n);return e.json(r||{})}).openapi(o.createRoute({tags:["prompts"],method:"put",path:"/{prompt}/custom-text/{language}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({prompt:io,language:o.z.string()}),body:{content:{"application/json":{schema:oo}}}},security:[{Bearer:["update:prompts","auth:write"]}],responses:{200:{content:{"application/json":{schema:oo}},description:"Updated custom text"}}}),async e=>{const{prompt:t,language:n}=e.req.valid("param"),r=oo.parse(await e.req.json());return await e.env.data.customText.set(e.var.tenant_id,t,n,r),e.json(r)}).openapi(o.createRoute({tags:["prompts"],method:"delete",path:"/{prompt}/custom-text/{language}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({prompt:io,language:o.z.string()})},security:[{Bearer:["delete:prompts","auth:write"]}],responses:{204:{description:"Custom text deleted"}}}),async e=>{const{prompt:t,language:n}=e.req.valid("param");return await e.env.data.customText.delete(e.var.tenant_id,t,n),e.body(null,204)});let Hy=!1;function j_(e){e.use(async(t,n)=>(Hy||(e.openAPIRegistry.registerComponent("securitySchemes","Bearer",{type:"oauth2",scheme:"bearer",flows:{implicit:{authorizationUrl:`${t.env.AUTH_URL}/authorize`,scopes:{openid:"Basic user information",email:"User email",profile:"User profile information"}}}}),Hy=!0),await n()))}var nj=(e,t,n={})=>{let r=`${e}=${t}`;if(e.startsWith("__Secure-")&&!n.secure)throw new Error("__Secure- Cookie must have Secure attributes");if(e.startsWith("__Host-")){if(!n.secure)throw new Error("__Host- Cookie must have Secure attributes");if(n.path!=="/")throw new Error('__Host- Cookie must have Path attributes with "/"');if(n.domain)throw new Error("__Host- Cookie must not have Domain attributes")}for(const i of["domain","path"])if(n[i]&&/[;\r\n]/.test(n[i]))throw new Error(`${i} must not contain ";", "\\r", or "\\n"`);if(n&&typeof n.maxAge=="number"&&n.maxAge>=0){if(n.maxAge>3456e4)throw new Error("Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.");r+=`; Max-Age=${n.maxAge|0}`}if(n.domain&&n.prefix!=="host"&&(r+=`; Domain=${n.domain}`),n.path&&(r+=`; Path=${n.path}`),n.expires){if(n.expires.getTime()-Date.now()>3456e7)throw new Error("Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.");r+=`; Expires=${n.expires.toUTCString()}`}if(n.httpOnly&&(r+="; HttpOnly"),n.secure&&(r+="; Secure"),n.sameSite&&(r+=`; SameSite=${n.sameSite.charAt(0).toUpperCase()+n.sameSite.slice(1)}`),n.priority&&(r+=`; Priority=${n.priority.charAt(0).toUpperCase()+n.priority.slice(1)}`),n.partitioned){if(!n.secure)throw new Error("Partitioned Cookie must have Secure attributes");r+="; Partitioned"}return r},ip=(e,t,n)=>(t=encodeURIComponent(t),nj(e,t,n)),rj=(e,t,n)=>{let r;return n?.prefix==="secure"?r=ip("__Secure-"+e,t,{path:"/",...n,secure:!0}):n?.prefix==="host"?r=ip("__Host-"+e,t,{...n,path:"/",secure:!0,domain:void 0}):r=ip(e,t,{path:"/",...n}),r},Vy=(e,t,n,r)=>{const i=rj(t,n,r);e.header("Set-Cookie",i,{append:!0})},Ik=e=>jk(e.replace(/_|-/g,t=>({_:"/","-":"+"})[t]??t)),jk=e=>{const t=atob(e),n=new Uint8Array(new ArrayBuffer(t.length)),r=t.length/2;for(let i=0,s=t.length-1;i<=r;i++,s--)n[i]=t.charCodeAt(i),n[s]=t.charCodeAt(s);return n},Ws=(e=>(e.HS256="HS256",e.HS384="HS384",e.HS512="HS512",e.RS256="RS256",e.RS384="RS384",e.RS512="RS512",e.PS256="PS256",e.PS384="PS384",e.PS512="PS512",e.ES256="ES256",e.ES384="ES384",e.ES512="ES512",e.EdDSA="EdDSA",e))(Ws||{}),ij=class extends Error{constructor(e){super(`${e} is not an implemented algorithm`),this.name="JwtAlgorithmNotImplemented"}},Ky=class extends Error{constructor(){super('JWT verification requires "alg" option to be specified'),this.name="JwtAlgorithmRequired"}},oj=class extends Error{constructor(e,t){super(`JWT algorithm mismatch: expected "${e}", got "${t}"`),this.name="JwtAlgorithmMismatch"}},F0=class extends Error{constructor(e){super(`invalid JWT token: ${e}`),this.name="JwtTokenInvalid"}},sj=class extends Error{constructor(e){super(`token (${e}) is being used before it's valid`),this.name="JwtTokenNotBefore"}},aj=class extends Error{constructor(e){super(`token (${e}) expired`),this.name="JwtTokenExpired"}},cj=class extends Error{constructor(e,t){super(`Invalid "iat" claim, must be a valid number lower than "${e}" (iat: "${t}")`),this.name="JwtTokenIssuedAt"}},op=class extends Error{constructor(e,t){super(`expected issuer "${e}", got ${t?`"${t}"`:"none"} `),this.name="JwtTokenIssuer"}},lj=class extends Error{constructor(e){super(`jwt header is invalid: ${JSON.stringify(e)}`),this.name="JwtHeaderInvalid"}},uj=class extends Error{constructor(e){super(`token(${e}) signature mismatched`),this.name="JwtTokenSignatureMismatched"}},dj=class extends Error{constructor(e){super(`required "aud" in jwt payload: ${JSON.stringify(e)}`),this.name="JwtPayloadRequiresAud"}},pj=class extends Error{constructor(e,t){super(`expected audience "${Array.isArray(e)?e.join(", "):e}", got "${t}"`),this.name="JwtTokenAudience"}},Ql=(e=>(e.Encrypt="encrypt",e.Decrypt="decrypt",e.Sign="sign",e.Verify="verify",e.DeriveKey="deriveKey",e.DeriveBits="deriveBits",e.WrapKey="wrapKey",e.UnwrapKey="unwrapKey",e))(Ql||{}),Nk=new TextEncoder,fj=new TextDecoder;async function hj(e,t,n,r){const i=mj(t),s=await _j(e,i);return await crypto.subtle.verify(i,s,n,r)}function Gy(e){return jk(e.replace(/-+(BEGIN|END).*/g,"").replace(/\s/g,""))}async function _j(e,t){if(!crypto.subtle||!crypto.subtle.importKey)throw new Error("`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.");if(gj(e)){if(e.type==="public"||e.type==="secret")return e;e=await Wy(e)}if(typeof e=="string"&&e.includes("PRIVATE")){const r=await crypto.subtle.importKey("pkcs8",Gy(e),t,!0,[Ql.Sign]);e=await Wy(r)}const n=[Ql.Verify];return typeof e=="object"?await crypto.subtle.importKey("jwk",e,t,!1,n):e.includes("PUBLIC")?await crypto.subtle.importKey("spki",Gy(e),t,!1,n):await crypto.subtle.importKey("raw",Nk.encode(e),t,!1,n)}async function Wy(e){if(e.type!=="private")throw new Error(`unexpected key type: ${e.type}`);if(!e.extractable)throw new Error("unexpected private key is unextractable");const t=await crypto.subtle.exportKey("jwk",e),{kty:n}=t,{alg:r,e:i,n:s}=t,{crv:a,x:c,y:l}=t;return{kty:n,alg:r,e:i,n:s,crv:a,x:c,y:l,key_ops:[Ql.Verify]}}function mj(e){switch(e){case"HS256":return{name:"HMAC",hash:{name:"SHA-256"}};case"HS384":return{name:"HMAC",hash:{name:"SHA-384"}};case"HS512":return{name:"HMAC",hash:{name:"SHA-512"}};case"RS256":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case"RS384":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case"RS512":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case"PS256":return{name:"RSA-PSS",hash:{name:"SHA-256"},saltLength:32};case"PS384":return{name:"RSA-PSS",hash:{name:"SHA-384"},saltLength:48};case"PS512":return{name:"RSA-PSS",hash:{name:"SHA-512"},saltLength:64};case"ES256":return{name:"ECDSA",hash:{name:"SHA-256"},namedCurve:"P-256"};case"ES384":return{name:"ECDSA",hash:{name:"SHA-384"},namedCurve:"P-384"};case"ES512":return{name:"ECDSA",hash:{name:"SHA-512"},namedCurve:"P-521"};case"EdDSA":return{name:"Ed25519",namedCurve:"Ed25519"};default:throw new ij(e)}}function gj(e){return Ow()==="node"&&crypto.webcrypto?e instanceof crypto.webcrypto.CryptoKey:e instanceof CryptoKey}var Jy=e=>JSON.parse(fj.decode(Ik(e)));function yj(e){if(typeof e=="object"&&e!==null){const t=e;return"alg"in t&&Object.values(Ws).includes(t.alg)&&(!("typ"in t)||t.typ==="JWT")}return!1}var bj=async(e,t,n)=>{if(!n)throw new Ky;const{alg:r,iss:i,nbf:s=!0,exp:a=!0,iat:c=!0,aud:l}=typeof n=="string"?{alg:n}:n;if(!r)throw new Ky;const u=e.split(".");if(u.length!==3)throw new F0(e);const{header:d,payload:f}=Tk(e);if(!yj(d))throw new lj(d);if(d.alg!==r)throw new oj(r,d.alg);const p=Math.floor(Date.now()/1e3);if(s&&f.nbf&&f.nbf>p)throw new sj(e);if(a&&f.exp&&f.exp<=p)throw new aj(e);if(c&&f.iat&&p<f.iat)throw new cj(p,f.iat);if(i){if(!f.iss)throw new op(i,null);if(typeof i=="string"&&f.iss!==i)throw new op(i,f.iss);if(i instanceof RegExp&&!i.test(f.iss))throw new op(i,f.iss)}if(l){if(!f.aud)throw new dj(f);if(!(Array.isArray(f.aud)?f.aud:[f.aud]).some(m=>l instanceof RegExp?l.test(m):typeof l=="string"?m===l:Array.isArray(l)&&l.includes(m)))throw new pj(l,f.aud)}const h=e.substring(0,e.lastIndexOf("."));if(!await hj(t,r,Ik(u[2]),Nk.encode(h)))throw new uj(e);return f};Ws.HS256,Ws.HS384,Ws.HS512;var Tk=e=>{const t=e.split(".");if(t.length!==3)throw new F0(e);try{const n=Jy(t[0]),r=Jy(t[1]);return{header:n,payload:r}}catch{throw new F0(e)}},Pk={verify:bj,decode:Tk},vj={Stringify:1},Cr=(e,t)=>{const n=new String(e);return n.isEscaped=!0,n.callbacks=t,n},wj=/[&<>'"]/,kj=async(e,t)=>{let n="";t||=[];const r=await Promise.all(e);for(let i=r.length-1;n+=r[i],i--,!(i<0);i--){let s=r[i];typeof s=="object"&&t.push(...s.callbacks||[]);const a=s.isEscaped;if(s=await(typeof s=="object"?s.toString():s),typeof s=="object"&&t.push(...s.callbacks||[]),s.isEscaped??a)n+=s;else{const c=[n];_o(s,c),n=c[0]}}return Cr(n,t)},_o=(e,t)=>{const n=e.search(wj);if(n===-1){t[0]+=e;return}let r,i,s=0;for(i=n;i<e.length;i++){switch(e.charCodeAt(i)){case 34:r=""";break;case 39:r="'";break;case 38:r="&";break;case 60:r="<";break;case 62:r=">";break;default:continue}t[0]+=e.substring(s,i)+r,s=i+1}t[0]+=e.substring(s,i)},$j=e=>{const t=e.callbacks;if(!t?.length)return e;const n=[e],r={};return t.forEach(i=>i({phase:vj.Stringify,buffer:n,context:r})),n[0]},Sj=Pk.verify,xj=Pk.decode;async function Lc(e){const{signingKeys:t}=await e.keys.list({q:"type:jwt_signing"});return await Promise.all(t.map(async r=>{const s=await new vd(r.cert).publicKey.export(),a=await crypto.subtle.exportKey("jwk",s);return vh.parse({...a,kid:r.kid})}))}const zj=o.z.object({alg:o.z.enum(["RS256","RS384","RS512","ES256","ES384","ES512","HS256","HS384","HS512"]),kty:o.z.enum(["RSA","EC","oct"]),use:o.z.enum(["sig","enc"]).optional(),n:o.z.string(),e:o.z.string(),kid:o.z.string(),x5t:o.z.string().optional(),x5c:o.z.array(o.z.string()).optional()});async function Aj(e){if(e.JWKS_URL&&e.JWKS_SERVICE)try{const t=await e.JWKS_SERVICE.fetch(e.JWKS_URL);if(!t.ok)return console.warn(`JWKS fetch failed with status ${t.status}, falling back to database`),await Lc(e.data);const n=await t.json();return o.z.object({keys:o.z.array(zj)}).parse(n).keys}catch(t){return console.warn(`JWKS fetch error: ${t instanceof Error?t.message:"Unknown error"}, falling back to database`),await Lc(e.data)}return await Lc(e.data)}async function H0(e,t){try{const{header:n}=xj(t),i=(await Aj(e.env)).find(c=>c.kid===n.kid);if(!i)throw new W(401,{message:"No matching kid found"});const s=await crypto.subtle.importKey("jwk",i,{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!1,["verify"]);return await Sj(t,s,"RS256")}catch(n){throw n instanceof I?n:new W(403,{message:"Invalid JWT signature"})}}const Ej="urn:authhero:management";function Cj(e){return e.replace(/:([a-zA-Z_][a-zA-Z0-9_]*)/g,"{$1}")}function kd(e){return async(t,n)=>{const r=t.req.matchedRoutes.find(l=>l.method.toUpperCase()===t.req.method&&l.path!=="/*");if(!r)return await n();const i=Cj(r.path),s="/api/v2",a=i.startsWith(s)?i.slice(s.length)||"/":i,c=e.openAPIRegistry.definitions.find(l=>"route"in l&&l.route.path===a&&l.route.method.toUpperCase()===t.req.method.toUpperCase());if(c&&"route"in c){const l=c.route.security?.[0]?.Bearer;if(l===void 0)return await n();const u=t.req.header("authorization")||"",[d,f]=u.split(" ");if(d?.toLowerCase()!=="bearer"||!f)throw new W(401,{message:"Missing bearer token"});try{const p=await H0(t,f);t.set("user_id",p.sub),t.set("user",p),p.org_name&&t.set("org_name",p.org_name),p.org_id&&t.set("organization_id",p.org_id),!t.var.tenant_id&&p.tenant_id&&t.set("tenant_id",p.tenant_id);const h=Array.isArray(p.permissions)?p.permissions:[],_=typeof p.scope=="string"?p.scope.split(" "):Array.isArray(p.scope)?p.scope:[];if(l.length&&!(l.some(g=>h.includes(g))||l.some(g=>_.includes(g))))throw new W(403,{message:"Unauthorized"})}catch(p){throw p instanceof I?p:new W(403,{message:"Invalid token"})}}return await n()}}const Ij=new o.OpenAPIHono().openapi(o.createRoute({tags:["emails"],method:"get",path:"/",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:emails","auth:read"]}],responses:{200:{content:{"application/json":{schema:Ic}},description:"Email provider"}}}),async e=>{const t=await e.env.data.emailProviders.get(e.var.tenant_id);if(!t)throw new I(404,{message:"Email provider not found"});return e.json(t)}).openapi(o.createRoute({tags:["emails"],method:"post",path:"/",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:o.z.object(Ic.shape)}}}},security:[{Bearer:["create:emails","auth:write"]}],responses:{200:{description:"Branding settings"}}}),async e=>{const t=e.req.valid("json");return await e.env.data.emailProviders.create(e.var.tenant_id,t),e.text("OK",{status:201})}).openapi(o.createRoute({tags:["emails"],method:"patch",path:"/",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:o.z.object(Ic.shape).partial()}}}},security:[{Bearer:["update:emails","auth:write"]}],responses:{200:{description:"Branding settings"}}}),async e=>{const t=e.req.valid("json");return await e.env.data.emailProviders.update(e.var.tenant_id,t),e.text("OK")}),jj=new o.OpenAPIHono().openapi(o.createRoute({tags:["sessions"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:sessions","auth:read"]}],responses:{200:{content:{"application/json":{schema:fu}},description:"A session"}}}),async e=>{const{id:t}=e.req.valid("param"),n=await e.env.data.sessions.get(e.var.tenant_id,t);if(!n)throw new I(404);return e.json(n)}).openapi(o.createRoute({tags:["sessions"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:sessions","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const{id:t}=e.req.valid("param");if(!await e.env.data.sessions.remove(e.var.tenant_id,t))throw new I(404,{message:"Session not found"});return e.text("OK")}).openapi(o.createRoute({tags:["sessions"],method:"post",path:"/{id}/revoke",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:sessions","auth:write"]}],responses:{202:{description:"Sesssion deletion status"}}}),async e=>{const{id:t}=e.req.valid("param");if(!await e.env.data.sessions.update(e.var.tenant_id,t,{revoked_at:new Date().toDateString()}))throw new I(404,{message:"Session not found"});return e.text("Session deletion request accepted.",{status:202})}),Nj=new o.OpenAPIHono().openapi(o.createRoute({tags:["refresh_tokens"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:refresh_tokens","auth:read"]}],responses:{200:{content:{"application/json":{schema:$h}},description:"A session"}}}),async e=>{const{id:t}=e.req.valid("param"),n=await e.env.data.refreshTokens.get(e.var.tenant_id,t);if(!n)throw new I(404);return e.json(n)}).openapi(o.createRoute({tags:["refresh_tokens"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:refresh_tokens","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const{id:t}=e.req.valid("param");if(!await e.env.data.refreshTokens.remove(e.var.tenant_id,t))throw new I(404,{message:"Session not found"});return e.text("OK")}),Tj=new o.OpenAPIHono().openapi(o.createRoute({tags:["custom-domains"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:custom_domains","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.array(fr)}},description:"List of custom domains"}}}),async e=>{const t=await e.env.data.customDomains.list(e.var.tenant_id);return e.json(t)}).openapi(o.createRoute({tags:["custom-domains"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:custom_domains","auth:read"]}],responses:{200:{content:{"application/json":{schema:fr}},description:"A customDomain"}}}),async e=>{const{id:t}=e.req.valid("param"),n=await e.env.data.customDomains.get(e.var.tenant_id,t);if(!n)throw new I(404);return e.json(n)}).openapi(o.createRoute({tags:["custom-domains"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:custom_domains","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const{id:t}=e.req.valid("param");if(!await e.env.data.customDomains.remove(e.var.tenant_id,t))throw new I(404,{message:"Custom domain not found"});return e.text("OK")}).openapi(o.createRoute({tags:["custom-domains"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:o.z.object(fr.shape).partial()}}},params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:custom_domains","auth:write"]}],responses:{200:{content:{"application/json":{schema:fr}},description:"The updated custom domain"}}}),async e=>{const{id:t}=e.req.valid("param"),n=e.req.valid("json");if(!await e.env.data.customDomains.update(e.var.tenant_id,t,n))throw new I(404);const i=await e.env.data.customDomains.get(e.var.tenant_id,t);if(!i)throw new I(404);return e.json(i)}).openapi(o.createRoute({tags:["custom-domains"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:o.z.object(fh.shape)}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["create:custom_domains","auth:write"]}],responses:{201:{content:{"application/json":{schema:fr}},description:"The created custom domain"}}}),async e=>{const t=e.req.valid("json"),n=await e.env.data.customDomains.create(e.var.tenant_id,t);return e.json(n,{status:201})}).openapi(o.createRoute({tags:["custom-domains"],method:"post",path:"/{id}/verify",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:custom_domains","auth:write"]}],responses:{200:{content:{"application/json":{schema:fr}},description:"The custom domain"}}}),async()=>{throw new I(501,{message:"Not implemented"})});function Ya(e,t){const n={};for(const[r,i]of Object.entries(t)){if(i==null)continue;const s={};for(const[a,c]of Object.entries(i))typeof c=="function"?s[a]=async(...l)=>{const u=performance.now();try{const d=await c(...l),p=performance.now()-u,h=e.res.headers.get("Server-Timing")||"",_=h?`${h}, ${r}-${a};dur=${p.toFixed(2)}`:`${r}-${a};dur=${p.toFixed(2)}`;return e.res.headers.set("Server-Timing",_),d}catch(d){const p=performance.now()-u,h=e.res.headers.get("Server-Timing")||"",_=h?`${h}, ${r}-${a}-error;dur=${p.toFixed(2)}`:`${r}-${a}-error;dur=${p.toFixed(2)}`;throw e.res.headers.set("Server-Timing",_),d}}:s[a]=c;n[r]=s}return n}async function ns(e,t){const n=e.var.user;if(n?.tenant_id)return e.set("tenant_id",n.tenant_id),await t();const r=e.req.header("tenant-id");if(r)return e.set("tenant_id",r),await t();const i=e.req.header("x-forwarded-host");if(i){const a=await e.env.data.customDomains.getByDomain(i);if(a)return e.set("tenant_id",a.tenant_id),e.set("custom_domain",i),e.set("host",i),await t()}const s=e.req.header("host");if(s){e.set("host",s);const a=await e.env.data.customDomains.getByDomain(s);if(a)return e.set("tenant_id",a.tenant_id),e.set("custom_domain",s),await t();const c=s.split(".");if(c.length>1&&typeof c[0]=="string"){const l=c[0];await e.env.data.tenants.get(l)&&e.set("tenant_id",l)}}else e.set("host",new URL(ku(e.env)).host);if(!e.var.tenant_id){const{tenants:a}=await e.env.data.tenants.list({per_page:2});a.length===1&&a[0]&&e.set("tenant_id",a[0].id)}return await t()}const Pj=o.z.object({name:o.z.string(),version:o.z.string(),env:o.z.object({node:o.z.string().optional()}).optional()});function Oj(e){if(e)try{let t=e;try{t=atob(e)}catch{}try{const n=JSON.parse(t);return Pj.parse(n)}catch{}}catch{return}}const rs=async(e,t)=>{const n=e.req.query("auth0Client")?.slice(0,255),i=(e.req.header("x-forwarded-host")&&e.req.header("x-forwarded-for")?e.req.header("x-forwarded-for")?.split(",")[0]?.trim():e.req.header("cf-connecting-ip")||e.req.header("x-real-ip"))?.slice(0,45),s=e.req.header("user-agent")?.slice(0,512),a=e.req.header("cf-ipcountry")?.slice(0,2),c=n?Oj(n):void 0;c&&e.set("auth0_client",c),i&&e.set("ip",i),s&&e.set("useragent",s),a&&e.set("countryCode",a),await t()};function sp(e,t,n,r){try{const i=`${e}:${t}:${JSON.stringify(n)}`;return r?`${r}:${i}`:i}catch{const s=`${e}:${t}:${Date.now()}-${Math.random()}`;return r?`${r}:${s}`:s}}function Qa(e,t){const{cache:n,defaultTtl:r,customTtls:i={},excludeMethods:s=[],cacheEntities:a=[],keyPrefix:c}=t,l=new Set(s),u=a.length===0,d=new Set(a),f={};for(const[p,h]of Object.entries(e)){if(h==null)continue;const _=u||d.has(p),g={};for(const[y,m]of Object.entries(h))if(typeof m=="function"){if(!_){g[y]=m;continue}const w=`${p}:${y}`;if(l.has(w)){g[y]=m;continue}const k=i[w]??r,S=["create","update","remove","delete","set","used"].includes(y);g[y]=async(...b)=>{if(S){const P=await m.apply(h,b);try{if(b.length>=2&&["update","remove","delete"].includes(y)){const C=sp(p,"get",[b[0],b[1]],c);await n.delete(C);const L=sp(p,"list",[b[0],{}],c);await n.delete(L)}const R=c?`${c}:${p}:`:`${p}:`;await n.deleteByPrefix(R)}catch{}return P}const x=sp(p,y,b,c),A=await n.get(x);if(A!==null)if(A&&typeof A=="object"&&"isCachedNull"in A){const P=A;return P.isCachedNull?null:P.value}else return A;const E=await m.apply(h,b);if(k>=0)if(E!==null)await n.set(x,E,k);else{const P={value:null,isCachedNull:!0};await n.set(x,P,k)}return E}}else g[y]=m;f[p]=g}return f}function gc(e){if(!e)return;const t=e.filter(n=>n!==void 0);if(t.length!==0)return t.length===1?t[0]:{beforeCreate:eu(t.map(n=>n.beforeCreate),(n,r)=>[n,r],(n,r)=>[n[0],r]),afterCreate:co(t.map(n=>n.afterCreate)),beforeUpdate:eu(t.map(n=>n.beforeUpdate),(n,r,i)=>[n,r,i],(n,r)=>[n[0],n[1],r]),afterUpdate:co(t.map(n=>n.afterUpdate)),beforeDelete:co(t.map(n=>n.beforeDelete)),afterDelete:co(t.map(n=>n.afterDelete))}}function eu(e,t,n){const r=e.filter(i=>i!==void 0);if(r.length!==0)return r.length===1?r[0]:async(...i)=>{let s=t(...i),a=s[s.length-1];for(const c of r)a=await c(...s),s=n(s,a);return a}}function co(e){const t=e.filter(n=>n!==void 0);if(t.length!==0)return t.length===1?t[0]:async(...n)=>{for(const r of t)await r(...n)}}function Rj(e){if(!e)return;const t=e.filter(n=>n!==void 0);if(t.length!==0)return t.length===1?t[0]:{beforeAssign:eu(t.map(n=>n.beforeAssign),(n,r,i)=>[n,r,i],(n,r)=>[n[0],n[1],r]),afterAssign:co(t.map(n=>n.afterAssign)),beforeRemove:eu(t.map(n=>n.beforeRemove),(n,r,i)=>[n,r,i],(n,r)=>[n[0],n[1],r]),afterRemove:co(t.map(n=>n.afterRemove))}}function ap(e,t,n){return t?{...e,create:async(r,i)=>{let s=i;t.beforeCreate&&(s=await t.beforeCreate(n,i));const a=await e.create(r,s);return t.afterCreate&&await t.afterCreate(n,a),a},update:async(r,i,s)=>{let a=s;t.beforeUpdate&&(a=await t.beforeUpdate(n,i,s));const c=await e.update(r,i,a);if(t.afterUpdate){let l;typeof c=="boolean"?l=await e.get(r,i):l=c,l&&await t.afterUpdate(n,i,l)}return c},remove:async(r,i)=>{t.beforeDelete&&await t.beforeDelete(n,i);const s=await e.remove(r,i);return t.afterDelete&&s&&await t.afterDelete(n,i),s}}:e}function Lj(e,t,n){return t?{...e,assign:async(r,i,s)=>{let a=s;t.beforeAssign&&(a=await t.beforeAssign(n,i,s));const c=await e.assign(r,i,a);return t.afterAssign&&c&&await t.afterAssign(n,i,a),c},remove:async(r,i,s)=>{let a=s;t.beforeRemove&&(a=await t.beforeRemove(n,i,s));const c=await e.remove(r,i,a);return t.afterRemove&&c&&await t.afterRemove(n,i,a),c}}:e}function Dj(e,t,n){return t?{...e,create:async r=>{let i=r;t.beforeCreate&&(i=await t.beforeCreate(n,r));const s=await e.create(i);return t.afterCreate&&await t.afterCreate(n,s),s},update:async(r,i)=>{let s=i;if(t.beforeUpdate&&(s=await t.beforeUpdate(n,r,i)),await e.update(r,s),t.afterUpdate){const a=await e.get(r);a&&await t.afterUpdate(n,r,a)}},remove:async r=>{t.beforeDelete&&await t.beforeDelete(n,r);const i=await e.remove(r);return t.afterDelete&&i&&await t.afterDelete(n,r),i}}:e}function Ok(e,t){const{tenantId:n,entityHooks:r}=t;if(!r)return e;const i={connections:gc(r.connections),roles:gc(r.roles),resourceServers:gc(r.resourceServers),rolePermissions:Rj(r.rolePermissions),tenants:gc(r.tenants)},s={tenantId:n,adapters:e};return{...e,connections:ap(e.connections,i.connections,s),roles:ap(e.roles,i.roles,s),resourceServers:ap(e.resourceServers,i.resourceServers,s),rolePermissions:Lj(e.rolePermissions,i.rolePermissions,s),tenants:Dj(e.tenants,i.tenants,s)}}class Uj{constructor(t={}){this.config=t;const n=t.cleanupIntervalMs;n&&n>0&&(this.cleanupTimer=setInterval(()=>{this.cleanupExpired()},n))}cache=new Map;accessOrder=new Map;accessCounter=0;cleanupTimer;async get(t){const n=this.cache.get(t);return n?n.expiresAt&&n.expiresAt<new Date?(this.cache.delete(t),this.accessOrder.delete(t),null):(this.accessOrder.set(t,++this.accessCounter),n.value):null}async set(t,n,r){let i;const s=r??this.config.defaultTtlSeconds,a=s!==void 0,c=a?Math.max(0,s):0;a&&(i=new Date(Date.now()+(c>0?c*1e3:-1))),this.config.maxEntries&&this.cache.size>=this.config.maxEntries&&!this.cache.has(t)&&this.evictLeastRecentlyUsed();const l={value:n,expiresAt:i};this.cache.set(t,l),this.accessOrder.set(t,++this.accessCounter)}async delete(t){const n=this.cache.has(t);return this.cache.delete(t),this.accessOrder.delete(t),n}async deleteByPrefix(t){let n=0;for(const r of this.cache.keys())r.startsWith(t)&&(this.cache.delete(r),this.accessOrder.delete(r),n++);return n}async clear(){this.cache.clear(),this.accessOrder.clear(),this.accessCounter=0}getStats(){return{size:this.cache.size,maxEntries:this.config.maxEntries,defaultTtlSeconds:this.config.defaultTtlSeconds}}cleanupExpired(){const t=new Date,n=[];for(const[r,i]of this.cache.entries())i.expiresAt&&i.expiresAt<t&&n.push(r);for(const r of n)this.cache.delete(r),this.accessOrder.delete(r)}evictLeastRecentlyUsed(){let t=null,n=1/0;for(const[r,i]of this.accessOrder.entries())i<n&&(n=i,t=r);t&&(this.cache.delete(t),this.accessOrder.delete(t))}destroy(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0)}}function is(e={}){return new Uj(e)}const Bj=jt.extend({forms:o.z.array(no)}),Mj=new o.OpenAPIHono().openapi(o.createRoute({tags:["forms"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:forms","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(no),Bj])}},description:"List of forms"}}}),async e=>{const t=e.var.tenant_id,{page:n,per_page:r,include_totals:i=!1,sort:s,q:a}=e.req.valid("query"),c=await e.env.data.forms.list(t,{page:n,per_page:r,include_totals:i,sort:ht(s),q:a});return i?e.json(c):e.json(c.forms)}).openapi(o.createRoute({tags:["forms"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:forms","auth:read"]}],responses:{200:{content:{"application/json":{schema:no}},description:"A form"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=await e.env.data.forms.get(t,n);if(!r)throw new I(404);return e.json(r)}).openapi(o.createRoute({tags:["forms"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:forms","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param");if(!await e.env.data.forms.remove(t,n))throw new I(404,{message:"Form not found"});return e.text("OK")}).openapi(o.createRoute({tags:["forms"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:o.z.object(el.shape).partial()}}},params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:forms","auth:write"]}],responses:{200:{content:{"application/json":{schema:no}},description:"The updated form"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=e.req.valid("json");if(!await e.env.data.forms.update(t,n,r))throw new I(404,{message:"Form not found"});const s=await e.env.data.forms.get(t,n);if(!s)throw new I(404,{message:"Form not found"});return e.json(s)}).openapi(o.createRoute({tags:["forms"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:o.z.object(el.shape)}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["create:forms","auth:write"]}],responses:{201:{content:{"application/json":{schema:no}},description:"A form"}}}),async e=>{const t=e.var.tenant_id,n=e.req.valid("json"),r=await e.env.data.forms.create(t,n);return e.json(r,{status:201})}),qj=jt.extend({flows:o.z.array(to)}),Fj=new o.OpenAPIHono().openapi(o.createRoute({tags:["flows"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:flows","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(to),qj])}},description:"List of flows"}}}),async e=>{const t=e.var.tenant_id,{page:n,per_page:r,include_totals:i=!1,sort:s,q:a}=e.req.valid("query"),c=await e.env.data.flows.list(t,{page:n,per_page:r,include_totals:i,sort:ht(s),q:a});return i?e.json(c):e.json(c.flows)}).openapi(o.createRoute({tags:["flows"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:flows","auth:read"]}],responses:{200:{content:{"application/json":{schema:to}},description:"A flow"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=await e.env.data.flows.get(t,n);if(!r)throw new I(404);return e.json(r)}).openapi(o.createRoute({tags:["flows"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:flows","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param");if(!await e.env.data.flows.remove(t,n))throw new I(404,{message:"Flow not found"});return e.text("OK")}).openapi(o.createRoute({tags:["flows"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:o.z.object(Wc.shape).partial()}}},params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:flows","auth:write"]}],responses:{200:{content:{"application/json":{schema:to}},description:"The updated flow"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=e.req.valid("json"),i=await e.env.data.flows.update(t,n,r);if(!i)throw new I(404,{message:"Flow not found"});return e.json(i)}).openapi(o.createRoute({tags:["flows"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:o.z.object(Wc.shape)}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["create:flows","auth:write"]}],responses:{201:{content:{"application/json":{schema:to}},description:"The created flow"}}}),async e=>{const t=e.var.tenant_id,n=e.req.valid("json"),r=await e.env.data.flows.create(t,n);return e.json(r,{status:201})}),Hj=jt.extend({roles:o.z.array(ii)}),Vj=new o.OpenAPIHono().openapi(o.createRoute({tags:["roles"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:roles","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(ii),Hj])}},description:"List of roles"}}}),async e=>{const{page:t,per_page:n,include_totals:r,sort:i,q:s}=e.req.valid("query"),a=e.var.tenant_id;if(!a)throw new I(400,{message:"tenant-id header is required"});const c=await e.env.data.roles.list(a,{page:t,per_page:n,include_totals:r,sort:ht(i),q:s});return r?e.json(c):e.json(c.roles)}).openapi(o.createRoute({tags:["roles"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:roles","auth:read"]}],responses:{200:{content:{"application/json":{schema:ii}},description:"A role"}}}),async e=>{const{id:t}=e.req.valid("param"),n=e.var.tenant_id;if(!n)throw new I(400,{message:"tenant-id header is required"});const r=await e.env.data.roles.get(n,t);if(!r)throw new I(404);return e.json(r)}).openapi(o.createRoute({tags:["roles"],method:"post",path:"/",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:il}}}},security:[{Bearer:["create:roles","auth:write"]}],responses:{201:{content:{"application/json":{schema:ii}},description:"Role created"}}}),async e=>{const t=e.req.valid("json"),n=e.var.tenant_id;if(!n)throw new I(400,{message:"tenant-id header is required"});const r=await e.env.data.roles.create(n,t);return e.json(r,{status:201})}).openapi(o.createRoute({tags:["roles"],method:"patch",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:il.partial()}}}},security:[{Bearer:["update:roles","auth:write"]}],responses:{200:{content:{"application/json":{schema:ii}},description:"Updated role"}}}),async e=>{const{id:t}=e.req.valid("param"),n=e.req.valid("json"),r=e.var.tenant_id;if(!r)throw new I(400,{message:"tenant-id header is required"});if(!await e.env.data.roles.update(r,t,n))throw new I(404);const s=await e.env.data.roles.get(r,t);return e.json(s)}).openapi(o.createRoute({tags:["roles"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:roles","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const{id:t}=e.req.valid("param"),n=e.var.tenant_id;if(!n)throw new I(400,{message:"tenant-id header is required"});if(!await e.env.data.roles.remove(n,t))throw new I(404);return e.text("OK")}).openapi(o.createRoute({tags:["roles"],method:"get",path:"/{id}/permissions",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),query:ot},security:[{Bearer:["read:roles","auth:read"]}],responses:{200:{content:{"application/json":{schema:ww}},description:"Role permissions"}}}),async e=>{const{id:t}=e.req.valid("param"),{page:n,per_page:r,sort:i,q:s}=e.req.valid("query"),a=e.var.tenant_id;if(!a)throw new I(400,{message:"tenant-id header is required"});if(!await e.env.data.roles.get(a,t))throw new I(404,{message:"Role not found"});const l=await e.env.data.rolePermissions.list(a,t,{page:n,per_page:r,include_totals:!1,sort:ht(i),q:s});return e.json(l)}).openapi(o.createRoute({tags:["roles"],method:"post",path:"/{id}/permissions",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:o.z.object({permissions:o.z.array(o.z.object({permission_name:o.z.string(),resource_server_identifier:o.z.string()}))})}}}},security:[{Bearer:["update:roles","auth:write"]}],responses:{201:{description:"Permissions assigned to role"}}}),async e=>{const{id:t}=e.req.valid("param"),{permissions:n}=e.req.valid("json"),r=e.var.tenant_id;if(!r)throw new I(400,{message:"tenant-id header is required"});if(!await e.env.data.roles.get(r,t))throw new I(404,{message:"Role not found"});const s=n.map(c=>({role_id:t,resource_server_identifier:c.resource_server_identifier,permission_name:c.permission_name}));if(!await e.env.data.rolePermissions.assign(r,t,s))throw new I(500,{message:"Failed to assign permissions to role"});return e.json({message:"Permissions assigned successfully"},{status:201})}).openapi(o.createRoute({tags:["roles"],method:"delete",path:"/{id}/permissions",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:o.z.object({permissions:o.z.array(o.z.object({permission_name:o.z.string(),resource_server_identifier:o.z.string()}))})}}}},security:[{Bearer:["update:roles","auth:write"]}],responses:{200:{description:"Permissions removed from role"}}}),async e=>{const{id:t}=e.req.valid("param"),{permissions:n}=e.req.valid("json"),r=e.var.tenant_id;if(!r)throw new I(400,{message:"tenant-id header is required"});if(!await e.env.data.roles.get(r,t))throw new I(404,{message:"Role not found"});if(!await e.env.data.rolePermissions.remove(r,t,n))throw new I(500,{message:"Failed to remove permissions from role"});return e.json({message:"Permissions removed successfully"})}),Kj=jt.extend({resource_servers:o.z.array(ri)}),Gj=new o.OpenAPIHono().openapi(o.createRoute({tags:["resource-servers"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:resource_servers","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(ri),Kj])}},description:"List of resource servers"}}}),async e=>{const t=e.var.tenant_id,{page:n,per_page:r,include_totals:i=!1,sort:s,q:a}=e.req.valid("query"),c=await e.env.data.resourceServers.list(t,{page:n,per_page:r,include_totals:i,sort:ht(s),q:a});return i?e.json(c):e.json(c.resource_servers)}).openapi(o.createRoute({tags:["resource-servers"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:resource_servers","auth:read"]}],responses:{200:{content:{"application/json":{schema:ri}},description:"A resource server"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=await e.env.data.resourceServers.get(t,n);if(!r)throw new I(404);return e.json(r)}).openapi(o.createRoute({tags:["resource-servers"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:resource_servers","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=await e.env.data.resourceServers.get(t,n);if(!r)throw new I(404,{message:"Resource server not found"});if(r.is_system)throw new I(403,{message:"System entities cannot be deleted"});return await e.env.data.resourceServers.remove(t,n),e.text("OK")}).openapi(o.createRoute({tags:["resource-servers"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:o.z.object(rl.shape).partial()}}},params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:resource_servers","auth:write"]}],responses:{200:{content:{"application/json":{schema:ri}},description:"The updated resource server"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=e.req.valid("json"),i=await e.env.data.resourceServers.get(t,n);if(!i)throw new I(404,{message:"Resource server not found"});if(i.is_system)throw new I(403,{message:"System entities cannot be modified"});await e.env.data.resourceServers.update(t,n,r);const s=await e.env.data.resourceServers.get(t,n);if(!s)throw new I(404,{message:"Resource server not found"});return e.json(s)}).openapi(o.createRoute({tags:["resource-servers"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:o.z.object(rl.shape)}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["create:resource_servers","auth:write"]}],responses:{201:{content:{"application/json":{schema:ri}},description:"A resource server"}}}),async e=>{const t=e.var.tenant_id,n=e.req.valid("json"),r=await e.env.data.resourceServers.create(t,n);return e.json(r,{status:201})}),Wj=o.z.object({per_page:o.z.string().min(1).optional().default("50").transform(e=>parseInt(e,10)).openapi({description:"Number of results per page. Defaults to 50."}),page:o.z.string().min(0).optional().default("0").transform(e=>parseInt(e,10)).openapi({description:"Page index of the results to return. First page is 0."}),include_totals:o.z.string().optional().default("false").transform(e=>e==="true").openapi({description:"Return results inside an object that contains the total result count (true) or as a direct array of results (false, default)."}),from:o.z.string().optional().openapi({description:"Optional Id from which to start selection."}),take:o.z.string().min(1).optional().transform(e=>e?parseInt(e,10):void 0).openapi({description:"Number of results per page. Defaults to 50."}),audience:o.z.string().optional().openapi({description:"Optional filter on audience."}),client_id:o.z.string().optional().openapi({description:"Optional filter on client_id."}),allow_any_organization:o.z.string().optional().transform(e=>e==="true"?!0:e==="false"?!1:void 0).openapi({description:"Optional filter on allow_any_organization."}),subject_type:o.z.enum(["client","user"]).optional().openapi({description:"EA 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."})}),Jj=jt.extend({client_grants:o.z.array(ni)}),Zj=new o.OpenAPIHono().openapi(o.createRoute({tags:["client-grants"],method:"get",path:"/",request:{query:Wj,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:client_grants","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(ni),Jj])}},description:"List of client grants"}}}),async e=>{const t=e.var.tenant_id,{page:n,per_page:r,include_totals:i=!1,from:s,take:a,audience:c,client_id:l,allow_any_organization:u,subject_type:d}=e.req.valid("query"),f=[];l&&f.push(`client_id:"${l}"`),c&&f.push(`audience:"${c}"`),u!==void 0&&f.push(`allow_any_organization:${u}`),d&&f.push(`subject_type:"${d}"`),s&&f.push(`id:>${s}`);const p=f.length>0?f.join(" AND "):void 0,h=a??r,_=await e.env.data.clientGrants.list(t,{page:n,per_page:h,include_totals:i,q:p});return i?e.json(_):e.json(_.client_grants)}).openapi(o.createRoute({tags:["client-grants"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:client_grants","auth:read"]}],responses:{200:{content:{"application/json":{schema:ni}},description:"A client grant"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=await e.env.data.clientGrants.get(t,n);if(!r)throw new I(404,{message:"Client grant not found"});return e.json(r)}).openapi(o.createRoute({tags:["client-grants"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:client_grants","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param");if(!await e.env.data.clientGrants.remove(t,n))throw new I(404,{message:"Client grant not found"});return e.text("OK")}).openapi(o.createRoute({tags:["client-grants"],method:"patch",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),body:{content:{"application/json":{schema:o.z.object(Yc.shape).partial()}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:client_grants","auth:write"]}],responses:{200:{content:{"application/json":{schema:ni}},description:"The updated client grant"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=e.req.valid("json");if(!await e.env.data.clientGrants.get(t,n))throw new I(404,{message:"Client grant not found"});if(!await e.env.data.clientGrants.update(t,n,r))throw new I(500,{message:"Failed to update client grant"});const a=await e.env.data.clientGrants.get(t,n);if(!a)throw new I(404,{message:"Client grant not found"});return e.json(a)}).openapi(o.createRoute({tags:["client-grants"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:o.z.object(Yc.shape)}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["create:client_grants","auth:write"]}],responses:{201:{content:{"application/json":{schema:ni}},description:"A client grant"}}}),async e=>{const t=e.var.tenant_id,n=e.req.valid("json"),r=await e.env.data.clientGrants.create(t,n);return e.json(r,{status:201})}),Xj=o.z.object({page:o.z.string().optional().default("0").transform(e=>parseInt(e,10)).openapi({description:"Page index of the results to return. First page is 0."}),per_page:o.z.string().optional().default("50").transform(e=>parseInt(e,10)).openapi({description:"Number of results per page. Defaults to 50."}),include_totals:o.z.string().optional().default("false").transform(e=>e==="true").openapi({description:"When true, return results inside an object that also contains the start and limit. When false (default), a direct array of results is returned."}),fields:o.z.string().optional().openapi({description:"Comma-separated list of fields to include or exclude (based on value provided for include_fields) in the result. Leave empty to retrieve all fields."}),include_fields:o.z.string().optional().default("true").transform(e=>e==="true").openapi({description:"Whether specified fields are to be included (true) or excluded (false). Defaults to true."}),sort:o.z.string().optional().default("created_at:-1").openapi({description:"Field to sort by. Use field:order where order is 1 for ascending and -1 for descending. Defaults to created_at:-1."})}),Yj=o.z.object({invitations:o.z.array(Ds),start:o.z.number(),limit:o.z.number(),length:o.z.number()}),Qj=bh.omit({organization_id:!0,invitation_url:!0}),eN=jt.extend({organizations:o.z.array(mr)}),N_=o.z.object({user_id:o.z.string().openapi({description:"ID of this user"}),email:o.z.string().email().optional().openapi({description:"Email address of this user",format:"email"}),roles:o.z.array(o.z.object({})).default([]).openapi({description:"Array of roles assigned to this user in the organization"})}),tN=o.z.object({start:o.z.number().openapi({description:"Start index of the current page"}),limit:o.z.number().openapi({description:"Number of items per page"}),total:o.z.number().openapi({description:"Total number of members"}),members:o.z.array(N_).openapi({description:"Array of organization members"})}),nN=o.z.object({next:o.z.string().optional().openapi({description:"Checkpoint ID to be used to retrieve the next set of results"}),members:o.z.array(N_).openapi({description:"Array of organization members"})}),rN=o.z.object({members:o.z.array(o.z.string()).openapi({description:"Array of user IDs to add to the organization"})}),iN=o.z.object({members:o.z.array(o.z.string()).openapi({description:"Array of user IDs to remove from the organization"})}),oN=new o.OpenAPIHono().openapi(o.createRoute({tags:["organizations"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:organizations","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([eN,o.z.array(mr)])}},description:"List of organizations"}}}),async e=>{const t=e.var.tenant_id,{page:n,per_page:r,include_totals:i,sort:s,q:a,from:c,take:l}=e.req.valid("query"),u=await e.env.data.organizations.list(t,{page:n,per_page:r,include_totals:i,sort:ht(s),q:a,from:c,take:l});return i?e.json(u):e.json(u.organizations)}).openapi(o.createRoute({tags:["organizations"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:organizations","auth:read"]}],responses:{200:{content:{"application/json":{schema:mr}},description:"An organization"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=await e.env.data.organizations.get(t,n);if(!r)throw new I(404,{message:"Organization not found"});return e.json(r)}).openapi(o.createRoute({tags:["organizations"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:organizations","auth:write"]}],responses:{200:{description:"Organization deleted successfully"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param");if(!await e.env.data.organizations.remove(t,n))throw new I(404,{message:"Organization not found"});return e.text("OK")}).openapi(o.createRoute({tags:["organizations"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:sl.partial()}}},params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:organizations","auth:write"]}],responses:{200:{content:{"application/json":{schema:mr}},description:"The updated organization"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=e.req.valid("json");if(!await e.env.data.organizations.update(t,n,r))throw new I(404,{message:"Organization not found"});const s=await e.env.data.organizations.get(t,n);if(!s)throw new I(404,{message:"Organization not found"});return e.json(s)}).openapi(o.createRoute({tags:["organizations"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:sl}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["create:organizations","auth:write"]}],responses:{201:{content:{"application/json":{schema:mr}},description:"The created organization"}}}),async e=>{const t=e.var.tenant_id,n=e.req.valid("json"),r={...n,id:n.id||VI()},i=await e.env.data.organizations.create(t,r);return e.json(i,{status:201})}).openapi(o.createRoute({tags:["organizations"],method:"get",path:"/{id}/members",request:{params:o.z.object({id:o.z.string()}),query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:organizations","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(N_),tN,nN])}},description:"List of organization members"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),{page:r,per_page:i,include_totals:s,sort:a}=e.req.valid("query");if(!await e.env.data.organizations.get(t,n))throw new I(404,{message:"Organization not found"});const l=await e.env.data.userOrganizations.list(t,{page:r,per_page:i,include_totals:s,sort:ht(a),q:`organization_id:${n}`}),u=[];for(const d of l.userOrganizations){const f=await e.env.data.users.get(t,d.user_id);f&&u.push({user_id:f.user_id,email:f.email||void 0,roles:[]})}return s?e.json({start:l.start,limit:l.limit,total:l.length,members:u}):e.json(u)}).openapi(o.createRoute({tags:["organizations"],method:"post",path:"/{id}/members",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:rN}}}},security:[{Bearer:["update:organizations","auth:write"]}],responses:{204:{description:"Members added successfully"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),{members:r}=e.req.valid("json");if(!await e.env.data.organizations.get(t,n))throw new I(404,{message:"Organization not found"});for(const s of r)(await e.env.data.userOrganizations.list(t,{q:`user_id:${s}`,per_page:1})).userOrganizations.some(l=>l.organization_id===n)||await e.env.data.userOrganizations.create(t,{user_id:s,organization_id:n});return new Response(null,{status:204})}).openapi(o.createRoute({tags:["organizations"],method:"delete",path:"/{id}/members",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:iN}}}},security:[{Bearer:["update:organizations","auth:write"]}],responses:{200:{description:"Members removed successfully"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),{members:r}=e.req.valid("json");for(const i of r){const a=(await e.env.data.userOrganizations.list(t,{q:`user_id:${i}`,per_page:100})).userOrganizations.find(c=>c.organization_id===n);a&&await e.env.data.userOrganizations.remove(t,a.id)}return e.json({message:"Members removed successfully"})}).openapi(o.createRoute({tags:["organizations"],method:"get",path:"/{id}/members/{user_id}/roles",request:{params:o.z.object({id:o.z.string(),user_id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),query:ot},security:[{Bearer:["read:organizations","auth:read"]}],responses:{200:{content:{"application/json":{schema:ol}},description:"User roles in organization"}}}),async e=>{const t=e.var.tenant_id,{id:n,user_id:r}=e.req.valid("param");if(!await e.env.data.organizations.get(t,n))throw new I(404,{message:"Organization not found"});if(!await e.env.data.users.get(t,r))throw new I(404,{message:"User not found"});const a=await e.env.data.userRoles.list(t,r,void 0,n);return e.json(a)}).openapi(o.createRoute({tags:["organizations"],method:"post",path:"/{id}/members/{user_id}/roles",request:{params:o.z.object({id:o.z.string(),user_id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:o.z.object({roles:o.z.array(o.z.string()).openapi({description:"List of role IDs to associate with the user"})})}}}},security:[{Bearer:["update:organizations","auth:write"]}],responses:{201:{description:"Roles assigned successfully"}}}),async e=>{const t=e.var.tenant_id,{id:n,user_id:r}=e.req.valid("param"),{roles:i}=e.req.valid("json");if(!await e.env.data.organizations.get(t,n))throw new I(404,{message:"Organization not found"});if(!await e.env.data.users.get(t,r))throw new I(404,{message:"User not found"});for(const c of i){if(!await e.env.data.roles.get(t,c))throw new I(400,{message:`Role ${c} not found`});if(!await e.env.data.userRoles.create(t,r,c,n))throw new I(500,{message:`Failed to assign role ${c} to user`})}return e.json({message:"Roles assigned successfully"},{status:201})}).openapi(o.createRoute({tags:["organizations"],method:"delete",path:"/{id}/members/{user_id}/roles",request:{params:o.z.object({id:o.z.string(),user_id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:o.z.object({roles:o.z.array(o.z.string()).openapi({description:"List of role IDs to remove from the user"})})}}}},security:[{Bearer:["update:organizations","auth:write"]}],responses:{200:{description:"Roles removed successfully"}}}),async e=>{const t=e.var.tenant_id,{id:n,user_id:r}=e.req.valid("param"),{roles:i}=e.req.valid("json");if(!await e.env.data.organizations.get(t,n))throw new I(404,{message:"Organization not found"});if(!await e.env.data.users.get(t,r))throw new I(404,{message:"User not found"});for(const c of i)if(!await e.env.data.userRoles.remove(t,r,c,n))throw new I(500,{message:`Failed to remove role ${c} from user`});return e.json({message:"Roles removed successfully"})}).openapi(o.createRoute({tags:["organizations"],method:"get",path:"/{id}/roles",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),query:ot},security:[{Bearer:["read:organizations","auth:read"]}],responses:{200:{content:{"application/json":{schema:ol}},description:"List of roles available in organization"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),{page:r,per_page:i,sort:s,q:a}=e.req.valid("query");if(!await e.env.data.organizations.get(t,n))throw new I(404,{message:"Organization not found"});const l=await e.env.data.roles.list(t,{page:r,per_page:i,sort:ht(s),q:a});return e.json(l.roles)}).openapi(o.createRoute({tags:["organizations"],method:"get",path:"/{id}/invitations",request:{params:o.z.object({id:o.z.string().openapi({description:"Organization ID",param:{name:"id",in:"path"}})}),query:Xj,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:organizations","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(Ds),Yj])}},description:"List of organization invitations"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),{page:r,per_page:i,include_totals:s,fields:a,include_fields:c,sort:l}=e.req.valid("query");if(!await e.env.data.organizations.get(t,n))throw new I(404,{message:"Organization not found"});let f=(await e.env.data.invites.list(t,{page:r,per_page:i})).invites.filter(p=>p.organization_id===n);if(l){const p=ht(l);if(p){const{sort_by:h,sort_order:_}=p;f.sort((g,y)=>{const m=g[h],w=y[h];if(m===void 0||w===void 0||m===w)return 0;const k=m<w?-1:1;return _==="asc"?k:-k})}}if(a){const p=a.split(",").map(h=>h.trim());f=f.map(h=>{const _={};for(const g of Object.keys(h))(c?p.includes(g):!p.includes(g))&&(_[g]=h[g]);return _})}return s?e.json({invitations:f,start:r*i,limit:i,length:f.length}):e.json(f)}).openapi(o.createRoute({tags:["organizations"],method:"get",path:"/{id}/invitations/{invitation_id}",request:{params:o.z.object({id:o.z.string().openapi({description:"Organization ID",param:{name:"id",in:"path"}}),invitation_id:o.z.string().openapi({description:"Invitation ID",param:{name:"invitation_id",in:"path"}})}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:organizations","auth:read"]}],responses:{200:{content:{"application/json":{schema:Ds}},description:"An invitation"},404:{description:"Invitation not found"}}}),async e=>{const t=e.var.tenant_id,{id:n,invitation_id:r}=e.req.valid("param"),i=await e.env.data.invites.get(t,r);if(!i||i.organization_id!==n)throw new I(404,{message:"Invitation not found"});return e.json(i)}).openapi(o.createRoute({tags:["organizations"],method:"post",path:"/{id}/invitations",request:{params:o.z.object({id:o.z.string().openapi({description:"Organization ID",param:{name:"id",in:"path"}})}),body:{content:{"application/json":{schema:Qj}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:organizations","auth:write"]}],responses:{201:{content:{"application/json":{schema:Ds}},description:"The created invitation"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=e.req.valid("json");if(!await e.env.data.organizations.get(t,n))throw new I(404,{message:"Organization not found"});const a=`https://invite.placeholder/${WI()}`,c={...r,organization_id:n,invitation_url:a},l=await e.env.data.invites.create(t,c);return e.json(l,{status:201})}).openapi(o.createRoute({tags:["organizations"],method:"delete",path:"/{id}/invitations/{invitation_id}",request:{params:o.z.object({id:o.z.string().openapi({description:"Organization ID",param:{name:"id",in:"path"}}),invitation_id:o.z.string().openapi({description:"Invitation ID",param:{name:"invitation_id",in:"path"}})}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:organizations","auth:write"]}],responses:{204:{description:"Invitation deleted successfully"},404:{description:"Invitation not found"}}}),async e=>{const t=e.var.tenant_id,{id:n,invitation_id:r}=e.req.valid("param"),i=await e.env.data.invites.get(t,r);if(!i||i.organization_id!==n)throw new I(404,{message:"Invitation not found"});if(!await e.env.data.invites.remove(t,r))throw new I(404,{message:"Invitation not found"});return e.body(null,{status:204})}),sN=new o.OpenAPIHono().openapi(o.createRoute({tags:["stats"],method:"get",path:"/daily",request:{query:o.z.object({from:o.z.string().optional().openapi({description:"Optional first day of the date range (inclusive) in YYYYMMDD format",example:"20251120"}),to:o.z.string().optional().openapi({description:"Optional last day of the date range (inclusive) in YYYYMMDD format",example:"20251219"})}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:stats","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.array(Nw)}},description:"Daily statistics including logins, signups, and leaked passwords"}}}),async e=>{const{from:t,to:n}=e.req.valid("query");if(!e.env.data.stats)throw new I(501,{message:"Stats adapter not configured"});const r=await e.env.data.stats.getDaily(e.var.tenant_id,{from:t,to:n});return e.json(r)}).openapi(o.createRoute({tags:["stats"],method:"get",path:"/active-users",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:stats","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.number().openapi({description:"Number of active users in the last 30 days",example:1234})}},description:"Number of active users in the last 30 days"}}}),async e=>{if(!e.env.data.stats)throw new I(501,{message:"Stats adapter not configured"});const t=await e.env.data.stats.getActiveUsers(e.var.tenant_id);return e.json(t)}),Dc=["sms","otp","email","push-notification","webauthn-roaming","webauthn-platform","recovery-code","duo"];function cp(e){return e.replace(/-/g,"_")}const V0=o.z.object({name:o.z.enum(Dc),enabled:o.z.boolean(),trial_expired:o.z.boolean().optional()}),aN=o.z.array(V0),cN=o.z.object({enabled:o.z.boolean()}),lp=o.z.object({provider:o.z.enum(["twilio","vonage","aws_sns","phone_message_hook"])}),up=o.z.object({sid:o.z.string().optional(),auth_token:o.z.string().optional(),from:o.z.string().optional(),messaging_service_sid:o.z.string().optional()}),lN=o.z.object({message_type:o.z.enum(["sms","voice"])}),uN=new o.OpenAPIHono().openapi(o.createRoute({tags:["guardian"],method:"get",path:"/factors",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:guardian_factors","auth:read"]}],responses:{200:{content:{"application/json":{schema:aN}},description:"List of MFA factors"}}}),async e=>{const n=(await e.env.data.tenants.get(e.var.tenant_id))?.mfa?.factors,r=Dc.map(i=>{const s=cp(i);return{name:i,enabled:!!n?.[s],trial_expired:!1}});return e.json(r)}).openapi(o.createRoute({tags:["guardian"],method:"get",path:"/factors/sms/selected-provider",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:guardian_factors","auth:read"]}],responses:{200:{content:{"application/json":{schema:lp}},description:"Selected SMS provider"}}}),async e=>{const n=(await e.env.data.tenants.get(e.var.tenant_id))?.mfa?.sms_provider?.provider||"twilio";return e.json({provider:n})}).openapi(o.createRoute({tags:["guardian"],method:"put",path:"/factors/sms/selected-provider",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:lp}}}},security:[{Bearer:["update:guardian_factors","auth:write"]}],responses:{200:{content:{"application/json":{schema:lp}},description:"Updated SMS provider selection"}}}),async e=>{const{provider:t}=e.req.valid("json"),n=await e.env.data.tenants.get(e.var.tenant_id);if(!n)throw new I(404,{message:"Tenant not found"});return await e.env.data.tenants.update(e.var.tenant_id,{mfa:{...n.mfa,sms_provider:{provider:t}}}),e.json({provider:t})}).openapi(o.createRoute({tags:["guardian"],method:"get",path:"/factors/sms/providers/twilio",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:guardian_factors","auth:read"]}],responses:{200:{content:{"application/json":{schema:up}},description:"Twilio provider configuration"}}}),async e=>{const n=(await e.env.data.tenants.get(e.var.tenant_id))?.mfa?.twilio||{};return e.json({sid:n.sid,auth_token:n.auth_token?"********":void 0,from:n.from,messaging_service_sid:n.messaging_service_sid})}).openapi(o.createRoute({tags:["guardian"],method:"put",path:"/factors/sms/providers/twilio",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:up}}}},security:[{Bearer:["update:guardian_factors","auth:write"]}],responses:{200:{content:{"application/json":{schema:up}},description:"Updated Twilio configuration"}}}),async e=>{const t=e.req.valid("json"),n=await e.env.data.tenants.get(e.var.tenant_id);if(!n)throw new I(404,{message:"Tenant not found"});const r=n.mfa?.twilio||{},i={...r,...t,auth_token:t.auth_token&&t.auth_token!=="********"?t.auth_token:r.auth_token};return await e.env.data.tenants.update(e.var.tenant_id,{mfa:{...n.mfa,twilio:i}}),e.json({sid:i.sid,auth_token:i.auth_token?"********":void 0,from:i.from,messaging_service_sid:i.messaging_service_sid})}).openapi(o.createRoute({tags:["guardian"],method:"get",path:"/factors/phone/message-types",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:guardian_factors","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.array(lN)}},description:"Available message types"}}}),async e=>{const t=[{message_type:"sms"}];return e.json(t)}).openapi(o.createRoute({tags:["guardian"],method:"get",path:"/factors/{factor_name}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({factor_name:o.z.enum(Dc)})},security:[{Bearer:["read:guardian_factors","auth:read"]}],responses:{200:{content:{"application/json":{schema:V0}},description:"MFA factor details"}}}),async e=>{const{factor_name:t}=e.req.valid("param"),r=(await e.env.data.tenants.get(e.var.tenant_id))?.mfa?.factors,i=cp(t);return e.json({name:t,enabled:!!r?.[i],trial_expired:!1})}).openapi(o.createRoute({tags:["guardian"],method:"put",path:"/factors/{factor_name}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({factor_name:o.z.enum(Dc)}),body:{content:{"application/json":{schema:cN}}}},security:[{Bearer:["update:guardian_factors","auth:write"]}],responses:{200:{content:{"application/json":{schema:V0}},description:"Updated MFA factor"}}}),async e=>{const{factor_name:t}=e.req.valid("param"),{enabled:n}=e.req.valid("json"),r=cp(t),i=await e.env.data.tenants.get(e.var.tenant_id);if(!i)throw new I(404,{message:"Tenant not found"});const s=i.mfa?.factors;return await e.env.data.tenants.update(e.var.tenant_id,{mfa:{...i.mfa,factors:{sms:s?.sms??!1,otp:s?.otp??!1,email:s?.email??!1,push_notification:s?.push_notification??!1,webauthn_roaming:s?.webauthn_roaming??!1,webauthn_platform:s?.webauthn_platform??!1,recovery_code:s?.recovery_code??!1,duo:s?.duo??!1,[r]:n}}}),e.json({name:t,enabled:n,trial_expired:!1})});function dN(e){const t=new o.OpenAPIHono,n=e.managementDataAdapter??e.dataAdapter;t.use(async(i,s)=>{const a=i.req.header("origin"),c=l=>{i.res.headers.set("Access-Control-Allow-Origin",l),i.res.headers.set("Access-Control-Allow-Headers","Tenant-Id, Content-Type, Content-Range, Auth0-Client, Authorization, Range, Upgrade-Insecure-Requests"),i.res.headers.set("Access-Control-Allow-Methods","POST, PUT, GET, DELETE, PATCH, OPTIONS"),i.res.headers.set("Access-Control-Expose-Headers","Content-Length, Content-Range"),i.res.headers.set("Access-Control-Max-Age","600"),i.res.headers.set("Access-Control-Allow-Credentials","true")};if(i.req.method==="OPTIONS"){const l=new Response(null,{status:204});if(a){if(e.allowedOrigins?.includes(a))return l.headers.set("Access-Control-Allow-Origin",a),l.headers.set("Access-Control-Allow-Headers","Tenant-Id, Content-Type, Content-Range, Auth0-Client, Authorization, Range, Upgrade-Insecure-Requests"),l.headers.set("Access-Control-Allow-Methods","POST, PUT, GET, DELETE, PATCH, OPTIONS"),l.headers.set("Access-Control-Expose-Headers","Content-Length, Content-Range"),l.headers.set("Access-Control-Max-Age","600"),l.headers.set("Access-Control-Allow-Credentials","true"),l;const u=i.req.header("tenant-id");if(u&&(await n.clients.list(u,{})).clients.flatMap(p=>p.web_origins||[]).includes(a))return l.headers.set("Access-Control-Allow-Origin",a),l.headers.set("Access-Control-Allow-Headers","Tenant-Id, Content-Type, Content-Range, Auth0-Client, Authorization, Range, Upgrade-Insecure-Requests"),l.headers.set("Access-Control-Allow-Methods","POST, PUT, GET, DELETE, PATCH, OPTIONS"),l.headers.set("Access-Control-Expose-Headers","Content-Length, Content-Range"),l.headers.set("Access-Control-Max-Age","600"),l.headers.set("Access-Control-Allow-Credentials","true"),l}return l}if(await s(),a){if(e.allowedOrigins?.includes(a)){c(a);return}const l=i.var.tenant_id||i.req.header("tenant-id");l&&(await n.clients.list(l,{})).clients.flatMap(f=>f.web_origins||[]).includes(a)&&c(a)}}),j_(t),t.use(async(i,s)=>{const a=Mo(i,n),c=is({defaultTtlSeconds:0,maxEntries:100,cleanupIntervalMs:0}),l=Qa(a,{defaultTtl:0,cacheEntities:["tenants","connections","clients","branding","themes","promptSettings","customText","forms","hooks"],cache:c});return i.env.data=Ya(i,l),i.env.entityHooks=e.entityHooks,s()}),t.use(rs).use(ns).use(kd(t)).use(async(i,s)=>(e.entityHooks&&i.var.tenant_id&&(i.env.data=Ok(i.env.data,{tenantId:i.var.tenant_id,entityHooks:e.entityHooks})),s()));const r=t.route("/branding",rz).route("/custom-domains",Tj).route("/email/providers",Ij).route("/users",O7).route("/keys",OI).route("/users-by-email",RI).route("/clients",UI).route("/client-grants",Zj).route("/tenants",BI).route("/logs",qI).route("/hooks",ZI).route("/connections",ej).route("/prompts",tj).route("/sessions",jj).route("/refresh_tokens",Nj).route("/forms",Mj).route("/flows",Fj).route("/roles",Vj).route("/resource-servers",Gj).route("/organizations",oN).route("/stats",sN).route("/guardian",uN);if(e.managementApiExtensions)for(const i of e.managementApiExtensions)r.route(i.path,i.router);return r.doc("/spec",{openapi:"3.0.0",info:{version:"1.0.0",title:"Management API"},servers:[{url:"/api/v2",description:"API V2"}],security:[{oauth2:["openid","email","profile"]}]}),r}var Rk=e=>{const n={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...e},r=(s=>typeof s=="string"?s==="*"?()=>s:a=>s===a?a:null:typeof s=="function"?s:a=>s.includes(a)?a:null)(n.origin),i=(s=>typeof s=="function"?s:Array.isArray(s)?()=>s:()=>[])(n.allowMethods);return async function(a,c){function l(d,f){a.res.headers.set(d,f)}const u=await r(a.req.header("origin")||"",a);if(u&&l("Access-Control-Allow-Origin",u),n.credentials&&l("Access-Control-Allow-Credentials","true"),n.exposeHeaders?.length&&l("Access-Control-Expose-Headers",n.exposeHeaders.join(",")),a.req.method==="OPTIONS"){n.origin!=="*"&&l("Vary","Origin"),n.maxAge!=null&&l("Access-Control-Max-Age",n.maxAge.toString());const d=await i(a.req.header("origin")||"",a);d.length&&l("Access-Control-Allow-Methods",d.join(","));let f=n.allowHeaders;if(!f?.length){const p=a.req.header("Access-Control-Request-Headers");p&&(f=p.split(/\s*,\s*/))}return f?.length&&(l("Access-Control-Allow-Headers",f.join(",")),a.res.headers.append("Vary","Access-Control-Request-Headers")),a.res.headers.delete("Content-Length"),a.res.headers.delete("Content-Type"),new Response(null,{headers:a.res.headers,status:204,statusText:"No Content"})}await c(),n.origin!=="*"&&a.header("Vary","Origin",{append:!0})}};function rr(e){if(e)return`${e.name}/${e.version}${e.env?.node?` (env: node/${e.env.node})`:""}`}function Vt(e,t){const n=e.var.tenant_id;if(!n){e.set("tenant_id",t);return}if(n!==t)throw new I(403,{message:"Tenant mismatch"})}async function Zy(e,t,n,r){if(!r.state)throw new W(400,{message:"State not found"});const i=t.connections.find(l=>l.name===n);if(!i)throw e.set("client_id",t.client_id),await fe(e,t.tenant.id,{type:pe.FAILED_LOGIN,description:"Connection not found"}),new W(403,{message:"Connection Not Found"});let s=await e.env.data.loginSessions.get(t.tenant.id,r.state);if(!s){const l=e.get("ip"),u=e.get("useragent"),d=e.get("auth0_client");s=await e.env.data.loginSessions.create(t.tenant.id,{expires_at:new Date(Date.now()+di*1e3).toISOString(),authParams:r,csrf_token:Oe(),ip:l,useragent:u,auth0Client:rr(d)})}const c=await B2(e,i.strategy).getRedirect(e,i);return await e.env.data.codes.create(t.tenant.id,{login_id:s.id,code_id:c.code,code_type:"oauth2_state",connection_id:i.id,code_verifier:c.codeVerifier,expires_at:new Date(Date.now()+Iz*1e3).toISOString()}),new Response(null,{status:302,headers:{location:c.redirectUrl}})}async function Xy(e,{code:t,state:n}){const{env:r}=e,i=await r.data.codes.get(e.var.tenant_id||"",n,"oauth2_state");if(!i||!i.connection_id)throw new W(403,{message:"State not found"});const s=await r.data.loginSessions.get(e.var.tenant_id||"",i.login_id);if(!s)throw new W(403,{message:"Session not found"});if(s.authorization_url){const _=new URL(s.authorization_url).hostname,g=e.var.host||"";if(_!==g&&_){const y=new URL(`https://${_}/callback`);return y.searchParams.set("state",n),y.searchParams.set("code",t),new Response("Redirecting",{status:307,headers:{location:y.toString()}})}}const a=await qe(r,s.authParams.client_id);e.set("client_id",a.client_id),Vt(e,a.tenant.id);const c=a.connections.find(_=>_.id===i.connection_id);if(!c)throw await fe(e,a.tenant.id,{type:pe.FAILED_LOGIN,description:"Connection not found"}),new W(403,{message:"Connection not found"});if(e.set("connection",c.name),!s.authParams.redirect_uri)throw await fe(e,a.tenant.id,{type:pe.FAILED_LOGIN,description:"Redirect URI not defined"}),new W(403,{message:"Redirect URI not defined"});const u=await B2(e,c.strategy).validateAuthorizationCodeAndGetUser(e,c,t,i.code_verifier),{sub:d,...f}=u;e.set("user_id",d);const p=u.email?.toLocaleLowerCase()||`${c.name}.${d}@${new URL(e.env.ISSUER).hostname}`;e.set("username",p);const h=await Eu(e,{client:a,username:p,provider:c.strategy,connection:c.name,userId:d,profileData:f,isSocial:!0,ip:e.var.ip});return gt(e,{client:a,authParams:s.authParams,loginSession:s,user:h,authStrategy:{strategy:c.strategy,strategy_type:"social"}})}async function yc(e,t,n,r,i,s){const a=await e.env.data.codes.get(e.var.tenant_id||"",t,"oauth2_state");if(!a)throw new I(400,{message:"State not found"});const c=await e.env.data.loginSessions.get(e.var.tenant_id,a.login_id);if(!c)throw new I(400,{message:"Login not found"});const{redirect_uri:l}=c.authParams;if(!l)throw new I(400,{message:"Redirect uri not found"});fe(e,e.var.tenant_id,{type:pe.FAILED_LOGIN,description:`Failed connection login: ${i} ${n}, ${r}`});const u=new URL(l);DA(u,{error:n,error_description:r,error_reason:s,error_code:i,state:c.authParams.state});let d="/u",f="/login/identifier";if(c.authParams.client_id)try{const p=await qe(e.env,c.authParams.client_id,e.var.tenant_id);if(p?.client_metadata?.universal_login_version==="2"){d="/u2";const h=await e.env.data.promptSettings.get(e.var.tenant_id),_=lo.parse(h||{}),g=p.connections.some(y=>y.strategy==="Username-Password-Authentication");_.identifier_first===!1&&g&&(f="/login")}}catch{}return e.redirect(`${e.env.ISSUER}${d.slice(1)}${f}?state=${c.id}&error=${encodeURIComponent(n)}${r?`&error_description=${encodeURIComponent(r)}`:""}`)}const pN=new o.OpenAPIHono().openapi(o.createRoute({tags:["oauth2"],method:"get",path:"/",request:{query:o.z.object({state:o.z.string(),code:o.z.string().optional(),scope:o.z.string().optional(),hd:o.z.string().optional(),error:o.z.string().optional(),error_description:o.z.string().optional(),error_code:o.z.string().optional(),error_reason:o.z.string().optional()})},responses:{302:{description:"Redirect to the client's redirect uri"},400:{description:"Bad Request",content:{"application/json":{schema:o.z.object({message:o.z.string()})}}},500:{description:"Internal Server Error",content:{"application/json":{schema:o.z.object({message:o.z.string()})}}}}}),async e=>{const{state:t,code:n,error:r,error_description:i,error_code:s,error_reason:a}=e.req.valid("query");if(r)return yc(e,t,r,i,s,a);if(!n)throw new I(400,{message:"Code is required"});try{const c=await Xy(e,{code:n,state:t});if(!(c instanceof Response))throw new I(500,{message:"Internal server error"});return c}catch(c){if(c instanceof W&&c.status===400){const l=await e.env.data.codes.get(e.var.tenant_id||"",t,"oauth2_state");if(l&&await e.env.data.loginSessions.get(e.var.tenant_id,l.login_id)){let d="access_denied";try{d=JSON.parse(c.message).message||d}catch{d=c.message||d}return yc(e,t,"access_denied",d)}}throw c}}).openapi(o.createRoute({tags:["oauth2"],method:"post",path:"/",request:{body:{content:{"application/x-www-form-urlencoded":{schema:o.z.object({state:o.z.string(),code:o.z.string().optional(),scope:o.z.string().optional(),hd:o.z.string().optional(),error:o.z.string().optional(),error_description:o.z.string().optional(),error_code:o.z.string().optional(),error_reason:o.z.string().optional()})}}}},responses:{302:{description:"Redirect to the client's redirect uri"},400:{description:"Bad Request",content:{"application/json":{schema:o.z.object({message:o.z.string()})}}},500:{description:"Internal Server Error",content:{"application/json":{schema:o.z.object({message:o.z.string()})}}}}}),async e=>{const{state:t,code:n,error:r,error_description:i,error_code:s,error_reason:a}=e.req.valid("form");if(r)return yc(e,t,r,i,s,a);if(!n)throw new I(400,{message:"Code is required"});try{const c=await Xy(e,{code:n,state:t});if(!(c instanceof Response))throw new I(500,{message:"Internal server error"});return c}catch(c){if(c instanceof W&&c.status===400){const l=await e.env.data.codes.get(e.var.tenant_id||"",t,"oauth2_state");if(l&&await e.env.data.loginSessions.get(e.var.tenant_id,l.login_id)){let d="access_denied";try{d=JSON.parse(c.message).message||d}catch{d=c.message||d}return yc(e,t,"access_denied",d)}}throw c}});function T_(e,t=[],n={}){try{const r=new URL(e);return t.some(i=>{try{return fN(r,new URL(i),n)}catch{return!1}})}catch{return!1}}function fN(e,t,n={}){if(e.protocol!==t.protocol)return!1;if(n.allowPathWildcards&&t.pathname.includes("*")){const r=t.pathname.replace(/\*/g,".*").replace(/\//g,"\\/");if(!new RegExp(`^${r}$`).test(e.pathname))return!1}else if(e.pathname!==t.pathname)return!1;if(n.allowSubDomainWildcards&&t.hostname.startsWith("*.")&&t.hostname.split(".").length>2&&["http:","https:"].includes(t.protocol)){const r=t.hostname.split(".").slice(1).join(".");return e.hostname===r||e.hostname.endsWith("."+r)}return e.hostname===t.hostname}const hN=new o.OpenAPIHono().openapi(o.createRoute({tags:["oauth2"],method:"get",path:"/",request:{query:o.z.object({client_id:o.z.string(),returnTo:o.z.string().optional()}),header:o.z.object({cookie:o.z.string().optional()})},responses:{302:{description:"Log the user out"}}}),async e=>{const{client_id:t,returnTo:n}=e.req.valid("query");let r;try{r=await qe(e.env,t)}catch{return e.text("OK")}let i;try{i=await qe(e.env,"DEFAULT_CLIENT")}catch{}e.set("client_id",t),Vt(e,r.tenant.id);const s=n||e.req.header("referer");if(!s)return e.text("OK");if(!T_(s,[...r.allowed_logout_urls||[],...i?.allowed_logout_urls||[]],{allowPathWildcards:!0,allowSubDomainWildcards:!0}))throw new I(400,{message:"Invalid redirect uri"});const a=e.req.header("cookie");if(a){const u=pi(r.tenant.id,a);if(u){const d=await e.env.data.sessions.get(r.tenant.id,u);if(d){const f=await e.env.data.users.get(r.tenant.id,d.user_id);if(f&&(e.set("user_id",f.user_id),e.set("connection",f.connection)),d.login_session_id){const p=await e.env.data.refreshTokens.list(r.tenant.id,{q:`login_id=${d.login_session_id}`,page:0,per_page:100,include_totals:!1});await Promise.all(p.refresh_tokens.map(h=>e.env.data.refreshTokens.remove(r.tenant.id,h.id)))}await e.env.data.sessions.update(r.tenant.id,u,{revoked_at:new Date().toISOString()})}}}fe(e,r.tenant.id,{type:pe.SUCCESS_LOGOUT,description:"User successfully logged out"});const c=new Headers;return Fw(r.tenant.id,e.var.custom_domain||e.req.header("host")).forEach(u=>{c.append("set-cookie",u)}),c.set("location",s),new Response("Redirecting",{status:302,headers:c})}),_N=o.z.object({formatted:o.z.string().optional(),street_address:o.z.string().optional(),locality:o.z.string().optional(),region:o.z.string().optional(),postal_code:o.z.string().optional(),country:o.z.string().optional()}).optional(),Yy=o.z.object({sub:o.z.string(),email:o.z.string().optional(),email_verified:o.z.boolean().optional(),phone_number:o.z.string().optional(),phone_number_verified:o.z.boolean().optional(),name:o.z.string().optional(),family_name:o.z.string().optional(),given_name:o.z.string().optional(),middle_name:o.z.string().optional(),nickname:o.z.string().optional(),preferred_username:o.z.string().optional(),profile:o.z.string().optional(),picture:o.z.string().optional(),website:o.z.string().optional(),gender:o.z.string().optional(),birthdate:o.z.string().optional(),zoneinfo:o.z.string().optional(),locale:o.z.string().optional(),updated_at:o.z.number().optional(),address:_N});function Qy(e,t){const n={sub:e.user_id};if(t.includes("email")&&(e.email&&(n.email=e.email),e.email_verified!==void 0&&(n.email_verified=e.email_verified)),t.includes("profile")){e.name&&(n.name=e.name),e.family_name&&(n.family_name=e.family_name),e.given_name&&(n.given_name=e.given_name),e.middle_name&&(n.middle_name=e.middle_name),e.nickname&&(n.nickname=e.nickname);const r=e.preferred_username||e.username;r&&(n.preferred_username=r),e.profile&&(n.profile=e.profile),e.picture&&(n.picture=e.picture),e.website&&(n.website=e.website),e.gender&&(n.gender=e.gender),e.birthdate&&(n.birthdate=e.birthdate),e.zoneinfo&&(n.zoneinfo=e.zoneinfo),e.locale&&(n.locale=e.locale),e.updated_at&&(n.updated_at=Math.floor(new Date(e.updated_at).getTime()/1e3))}return t.includes("address")&&e.address&&(n.address=e.address),t.includes("phone")&&(e.phone_number&&(n.phone_number=e.phone_number),e.phone_verified!==void 0&&(n.phone_number_verified=e.phone_verified)),n}const mN=o.z.object({access_token:o.z.string().optional()}),gN=new o.OpenAPIHono().openapi(o.createRoute({tags:["oauth2"],method:"get",path:"/",request:{},security:[{Bearer:["openid"]}],responses:{200:{content:{"application/json":{schema:Yy}},description:"Userinfo"}}}),async e=>{if(!e.var.user)throw new I(404,{message:"User not found"});const t=e.var.user.tenant_id||e.var.tenant_id;if(!t)throw new I(400,{message:"Unable to determine tenant"});const n=await e.env.data.users.get(t,e.var.user.sub);if(!n)throw new I(404,{message:"User not found"});const i=e.var.user?.scope?.split(" ")||[],s=Qy(n,i),a=e.env.hooks?.onFetchUserInfo;if(a){const c={};return await a({ctx:e,user:n,tenant_id:t,scopes:i},{setCustomClaim:(l,u)=>{c[l]=u}}),e.json({...s,...c})}return e.json(s)}).openapi(o.createRoute({tags:["oauth2"],method:"post",path:"/",request:{body:{content:{"application/x-www-form-urlencoded":{schema:mN}}}},responses:{200:{content:{"application/json":{schema:Yy}},description:"Userinfo"}}}),async e=>{let t=null;if(e.var.user&&(t=e.var.user),!t){const c=e.req.header("authorization")||"",[l,u]=c.split(" ");if(l?.toLowerCase()==="bearer"&&u){if(t=await H0(e,u),!(t?.scope?.split(" ")||[]).includes("openid"))throw new W(403,{message:"openid scope required"});e.set("user",t)}}if(!t)try{const c=await e.req.parseBody(),l=typeof c.access_token=="string"?c.access_token:void 0;if(l){if(t=await H0(e,l),!(t?.scope?.split(" ")||[]).includes("openid"))throw new W(403,{message:"openid scope required"});e.set("user",t)}}catch(c){if(c instanceof I||c instanceof W)throw c}if(!t)throw new I(401,{message:"No access token provided"});const n=t.tenant_id||e.var.tenant_id;if(!n)throw new I(400,{message:"Unable to determine tenant"});const r=await e.env.data.users.get(n,t.sub);if(!r)throw new I(404,{message:"User not found"});const i=t?.scope?.split(" ")||[],s=Qy(r,i),a=e.env.hooks?.onFetchUserInfo;if(a){const c={};return await a({ctx:e,user:r,tenant_id:n,scopes:i},{setCustomClaim:(l,u)=>{c[l]=u}}),e.json({...s,...c})}return e.json(s)}),yN=new o.OpenAPIHono().openapi(o.createRoute({tags:["well known"],method:"get",path:"/jwks.json",request:{},responses:{200:{content:{"application/json":{schema:nw}},description:"List of tenants"}}}),async e=>{const t=await Lc(e.env.data);return e.json({keys:t},{headers:{"access-control-allow-origin":"*","access-control-allow-method":"GET","cache-control":`public, max-age=${uc}, stale-while-revalidate=${uc*2}, stale-if-error=86400`}})}).openapi(o.createRoute({tags:["well known"],method:"get",path:"/openid-configuration",request:{},responses:{200:{content:{"application/json":{schema:cf}},description:"List of tenants"}}}),async e=>{const t=cf.parse({issuer:ku(e.env),authorization_endpoint:`${Le(e.env)}authorize`,token_endpoint:`${Le(e.env)}oauth/token`,device_authorization_endpoint:`${Le(e.env)}oauth/device/code`,userinfo_endpoint:`${Le(e.env)}userinfo`,mfa_challenge_endpoint:`${Le(e.env)}mfa/challenge`,jwks_uri:`${Le(e.env)}.well-known/jwks.json`,registration_endpoint:`${Le(e.env)}oidc/register`,revocation_endpoint:`${Le(e.env)}oauth/revoke`,scopes_supported:["openid","profile","offline_access","name","given_name","family_name","nickname","email","email_verified","picture","created_at","identities","phone","address"],response_types_supported:["code","token","id_token","code token","code id_token","token id_token","code token id_token"],code_challenge_methods_supported:["S256","plain"],response_modes_supported:["query","fragment","form_post"],subject_types_supported:["public"],id_token_signing_alg_values_supported:["RS256"],token_endpoint_auth_methods_supported:["client_secret_basic","client_secret_post"],claims_supported:["aud","auth_time","created_at","email","email_verified","exp","family_name","given_name","iat","identities","iss","name","nickname","phone_number","picture","sub"],request_uri_parameter_supported:!1,request_parameter_supported:!1,token_endpoint_auth_signing_alg_values_supported:["RS256","RS384","PS256"]});return e.json(t,{headers:{"access-control-allow-origin":"*","access-control-allow-method":"GET","cache-control":`public, max-age=${uc}, stale-while-revalidate=${uc*2}, stale-if-error=86400`}})}).get("/*",async e=>{const t=e.var.custom_domain||e.req.header("x-forwarded-host");if(!t)return e.text("Not Found",404);const n=await e.env.data.customDomains.getByDomain(t);if(!n)return e.text("Not Found",404);const r=await e.env.data.customDomains.get(n.tenant_id,n.custom_domain_id);if(!r?.verification?.methods)return e.text("Not Found",404);const i=new URL(e.req.url).pathname,s=r.verification.methods.find(a=>a.name==="http"&&new URL(a.http_url).pathname===i);return!s||s.name!=="http"?e.text("Not Found",404):e.text(s.http_body,200,{"content-type":"text/plain"})});function Js(e,t){if(!e||!t||e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e.charCodeAt(r)^t.charCodeAt(r);return n===0}const Lk=o.z.object({grant_type:o.z.literal("client_credentials"),scope:o.z.string().optional(),client_secret:o.z.string(),client_id:o.z.string(),audience:o.z.string().optional(),organization:o.z.string().optional()});async function bN(e,t){const n=await qe(e.env,t.client_id,e.var.tenant_id);if(n.client_secret&&!Js(n.client_secret,t.client_secret))throw new W(403,{message:"Invalid client credentials"});let r;if(t.organization){const s=await e.env.data.organizations.get(n.tenant.id,t.organization);if(!s)throw new W(400,{error:"invalid_request",error_description:`Organization '${t.organization}' not found`});r={id:s.id,name:s.name}}const i={client_id:n.client_id,scope:t.scope,audience:t.audience||n.tenant.default_audience,organization:t.organization};return{client:n,authParams:i,organization:r}}const vN=o.z.object({grant_type:o.z.literal("authorization_code"),client_id:o.z.string(),code:o.z.string(),redirect_uri:o.z.string().optional(),client_secret:o.z.string().optional(),code_verifier:o.z.string().optional(),organization:o.z.string().optional()}).refine(e=>"client_secret"in e&&!("code_verifier"in e)||!("client_secret"in e)&&"code_verifier"in e,{message:"Must provide either client_secret (standard flow) or code_verifier/code_verifier_mode (PKCE flow), but not both"});async function wN(e,t){const n=await qe(e.env,t.client_id,e.var.tenant_id),r=await e.env.data.codes.get(n.tenant.id,t.code,"authorization_code");if(!r||!r.user_id)throw fe(e,n.tenant.id,{type:pe.FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,description:"Invalid client credentials"}),new W(403,{message:"Invalid client credentials"});if(new Date(r.expires_at)<new Date)throw fe(e,n.tenant.id,{type:pe.FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,description:"Code expired",userId:r.user_id}),new W(403,{message:"Code expired"});if(r.used_at)throw fe(e,n.tenant.id,{type:pe.FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,description:"Invalid authorization code",userId:r.user_id}),new W(400,{error:"invalid_grant",error_description:"Invalid authorization code"});const i=await e.env.data.loginSessions.get(n.tenant.id,r.login_id);if(!i)throw new W(403,{message:"Invalid login"});if(t.organization&&i.authParams.organization&&t.organization!==i.authParams.organization)throw new W(400,{error:"invalid_request",error_description:"Organization parameter does not match login session organization"});if("client_secret"in t){let u;try{u=await qe(e.env,"DEFAULT_CLIENT")}catch{}if(!Js(n.client_secret,t.client_secret)&&!Js(u?.client_secret,t.client_secret))throw fe(e,n.tenant.id,{type:pe.FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,description:"Invalid client credentials",userId:r.user_id}),new W(403,{message:"Invalid client credentials"})}else if(r.code_challenge&&r.code_challenge_method&&t.code_verifier){const u=await Az(t.code_verifier,r.code_challenge_method);if(!Js(u,r.code_challenge))throw fe(e,n.tenant.id,{type:pe.FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,description:"Invalid client credentials",userId:r.user_id}),new W(403,{message:"Invalid client credentials"})}if(r.redirect_uri&&r.redirect_uri!==t.redirect_uri)throw fe(e,n.tenant.id,{type:pe.FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,description:"Invalid redirect uri",userId:r.user_id}),new W(403,{message:"Invalid redirect uri"});const s=await e.env.data.users.get(n.tenant.id,r.user_id);if(!s)throw new W(403,{message:"User not found"});await e.env.data.codes.used(n.tenant.id,t.code);let a;i.session_id&&i.authParams.scope?.split(" ").includes("offline_access")&&(a=await v2(e,{user:s,client:n,login_id:i.id,scope:i.authParams.scope,audience:i.authParams.audience}));let c;if(i.authParams.organization){const u=await e.env.data.organizations.get(n.tenant.id,i.authParams.organization);u?c={id:u.id,name:u.name}:c={id:i.authParams.organization,name:"Unknown"}}let l;if(i.authParams.max_age!==void 0&&i.session_id){const u=await e.env.data.sessions.get(n.tenant.id,i.session_id);u?.authenticated_at&&(l=Math.floor(new Date(u.authenticated_at).getTime()/1e3))}return{user:s,client:n,loginSession:i,session_id:i.session_id,refresh_token:a?.id,organization:c,auth_time:l,authParams:{...i.authParams,state:r.state,nonce:r.nonce,response_mode:pn.WEB_MESSAGE,client_id:n.client_id,scope:i.authParams.scope,audience:i.authParams.audience}}}function eb(e,t){const n=e.var.log;n?e.set("log",`${n}
|
|
81
|
+
`,r}async function TI(e){const t=await e.publicKey.export(),n=await crypto.subtle.exportKey("jwk",t),r=JSON.stringify(n,Object.keys(n).sort()),s=new TextEncoder().encode(r);return pf(await Lw(s))}const PI=1e3*60*60*24,OI=new o.OpenAPIHono().openapi(o.createRoute({tags:["keys"],method:"get",path:"/signing",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:keys","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.array(lf)}},description:"List of keys"}}}),async e=>{const{signingKeys:t}=await e.env.data.keys.list({q:"type:jwt_signing"}),n=t.filter(r=>"cert"in r).map(r=>r);return e.json(n)}).openapi(o.createRoute({tags:["keys"],method:"get",path:"/signing/{kid}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({kid:o.z.string()})},security:[{Bearer:["read:keys","auth:read"]}],responses:{200:{content:{"application/json":{schema:lf}},description:"The requested key"}}}),async e=>{const{kid:t}=e.req.valid("param"),{signingKeys:n}=await e.env.data.keys.list({q:"type:jwt_signing"}),r=n.find(i=>i.kid===t);if(!r)throw new I(404,{message:"Key not found"});return e.json(r)}).openapi(o.createRoute({tags:["keys"],method:"post",path:"/signing/rotate",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["create:keys","auth:write"]}],responses:{201:{description:"Status"}}}),async e=>{const{signingKeys:t}=await e.env.data.keys.list({q:"type:jwt_signing"});for await(const r of t)await e.env.data.keys.update(r.kid,{revoked_at:new Date(Date.now()+PI).toISOString()});const n=await Yl({name:`CN=${e.env.ORGANIZATION_NAME}`});return await e.env.data.keys.create({...n,type:"jwt_signing"}),e.text("OK",{status:201})}).openapi(o.createRoute({tags:["keys"],method:"put",path:"/signing/{kid}/revoke",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({kid:o.z.string()})},security:[{Bearer:["update:keys","auth:write"]}],responses:{201:{description:"Status"}}}),async e=>{const{kid:t}=e.req.valid("param");if(!await e.env.data.keys.update(t,{revoked_at:new Date().toISOString()}))throw new I(404,{message:"Key not found"});const r=await Yl({name:`CN=${e.env.ORGANIZATION_NAME}`});return await e.env.data.keys.create({...r,type:"jwt_signing"}),e.text("OK")}),RI=new o.OpenAPIHono().openapi(o.createRoute({tags:["users"],method:"get",path:"/",request:{query:o.z.object({email:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:users","auth:read"]}],responses:{200:{content:{"tenant/json":{schema:o.z.array(uh)}},description:"List of users"}}}),async e=>{const{email:t}=e.req.valid("query"),r=(await Lh(e.env.data.users,e.var.tenant_id,t)).filter(i=>!i.linked_to);return e.json(r)}),LI=jt.extend({clients:o.z.array(ti)}),Fy=o.z.object({enabled_connections:o.z.array(o.z.object({connection_id:o.z.string(),connection:_r.optional()}))}),DI=o.z.array(o.z.string()),UI=new o.OpenAPIHono().openapi(o.createRoute({tags:["clients"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:clients","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([LI,o.z.array(ti)])}},description:"List of clients"}}}),async e=>{const t=e.var.tenant_id,{page:n,per_page:r,include_totals:i,sort:s,q:a}=e.req.valid("query"),l=(await e.env.data.clients.list(t,{page:n,per_page:r,include_totals:i,sort:ht(s),q:a})).clients;return i?e.json({clients:l,start:0,limit:10,length:l.length}):e.json(l)}).openapi(o.createRoute({tags:["clients"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:clients","auth:read"]}],responses:{200:{content:{"application/json":{schema:ti}},description:"A client"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=await e.env.data.clients.get(t,n);if(!r)throw new I(404);return e.json(r)}).openapi(o.createRoute({tags:["clients"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:clients","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param");if(!await e.env.data.clients.remove(t,n))throw new I(404,{message:"Client not found"});return e.text("OK")}).openapi(o.createRoute({tags:["clients"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:o.z.object(Xc.shape).partial()}}},params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:clients","auth:write"]}],responses:{200:{content:{"application/json":{schema:ti}},description:"The updated client"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),i=e.req.valid("json");await e.env.data.clients.update(t,n,i);const s=await e.env.data.clients.get(t,n);if(!s)throw new I(404,{message:"Client not found"});return e.json(s)}).openapi(o.createRoute({tags:["clients"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:o.z.object(Xc.shape)}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["create:clients","auth:write"]}],responses:{201:{content:{"application/json":{schema:o.z.object(ti.shape)}},description:"A client"}}}),async e=>{const t=e.var.tenant_id,n=e.req.valid("json"),r={...n,client_secret:n.client_secret||Oe()},i=await e.env.data.clients.create(t,r);return e.json(i,{status:201})}).openapi(o.createRoute({tags:["clients"],method:"get",path:"/{id}/connections",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:clients","auth:read"]}],responses:{200:{content:{"application/json":{schema:Fy}},description:"List of connections enabled for this client"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=await e.env.data.clients.get(t,n);if(!r)throw new I(404,{message:"Client not found"});const i=r.connections&&r.connections.length>0;let s;if(i)s=await Promise.all(r.connections.map(async a=>{const c=await e.env.data.connections.get(t,a);return{connection_id:a,connection:c||void 0}}));else{const{connections:a}=await e.env.data.connections.list(t,{});s=a.filter(c=>c.id).map(c=>({connection_id:c.id,connection:c}))}return e.json({enabled_connections:s})}).openapi(o.createRoute({tags:["clients"],method:"patch",path:"/{id}/connections",request:{body:{content:{"application/json":{schema:DI}}},params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:clients","auth:write"]}],responses:{200:{content:{"application/json":{schema:Fy}},description:"Updated list of connections for this client"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=e.req.valid("json");if(!await e.env.data.clients.get(t,n))throw new I(404,{message:"Client not found"});const s=[];for(const c of r)await e.env.data.connections.get(t,c)&&s.push(c);await e.env.data.clients.update(t,n,{connections:s});const a=await Promise.all(s.map(async c=>{const l=await e.env.data.connections.get(t,c);return{connection_id:c,connection:l||void 0}}));return e.json({enabled_connections:a})}),BI=new o.OpenAPIHono().openapi(o.createRoute({tags:["tenants","settings"],method:"get",path:"/settings",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:tenants","auth:read"]}],responses:{200:{content:{"application/json":{schema:nl}},description:"Current tenant settings"}}}),async e=>{const t=await e.env.data.tenants.get(e.var.tenant_id);if(!t)throw new I(404,{message:"Tenant not found"});return e.json(t)}).openapi(o.createRoute({tags:["tenants","settings"],method:"patch",path:"/settings",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:o.z.object(wh.shape).partial()}}}},security:[{Bearer:["update:tenants","auth:write"]}],responses:{200:{content:{"application/json":{schema:nl}},description:"Updated tenant settings"}}}),async e=>{const t=e.req.valid("json"),{id:n,...r}=t,i=await e.env.data.tenants.get(e.var.tenant_id);if(!i)throw new I(404,{message:"Tenant not found"});const s=Tw(i,r);await e.env.data.tenants.update(e.var.tenant_id,s);const a=await e.env.data.tenants.get(e.var.tenant_id);if(!a)throw new I(500,{message:"Failed to retrieve updated tenant"});return e.json(a)}),MI=jt.extend({logs:o.z.array(tl)}),qI=new o.OpenAPIHono().openapi(o.createRoute({tags:["logs"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:logs","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(tl),MI])}},description:"List of log rows"}}}),async e=>{const{page:t,per_page:n,include_totals:r,sort:i,q:s}=e.req.valid("query"),a=await e.env.data.logs.list(e.var.tenant_id,{page:t,per_page:n,include_totals:r,sort:ht(i),q:s});return r?e.json(a):e.json(a.logs)}).openapi(o.createRoute({tags:["logs"],method:"get",path:"/{id}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({id:o.z.string()})},security:[{Bearer:["read:logs","auth:read"]}],responses:{200:{content:{"application/json":{schema:tl}},description:"A log entry"}}}),async e=>{const{id:t}=e.req.valid("param"),n=await e.env.data.logs.get(e.var.tenant_id,t);if(!n)throw new I(404);return e.json(n)}),FI=17,HI={organization:"org_",connection:"con_",action:"act_",hook:"h_",rule:"rul_",resource_server:"api_",guardian_factor:"gfa_",invite:"inv_",flow:"af_"};function wd(e){const r=Pw("0123456789abcdefghijklmnopqrstuvwxyz",FI)();return`${HI[e]}${r}`}function VI(){return wd("organization")}function KI(){return wd("connection")}function GI(){return wd("hook")}function WI(){return wd("invite")}const JI=jt.extend({hooks:o.z.array(ro)}),ZI=new o.OpenAPIHono().openapi(o.createRoute({tags:["hooks"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:hooks","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(ro),JI])}},description:"List of hooks"}}}),async e=>{const{page:t,per_page:n,include_totals:r,sort:i,q:s}=e.req.valid("query"),a=await e.env.data.hooks.list(e.var.tenant_id,{page:t,per_page:n,include_totals:r,sort:ht(i),q:s});return r?e.json(a):e.json(a.hooks)}).openapi(o.createRoute({tags:["hooks"],method:"post",path:"/",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:af}}}},security:[{Bearer:["create:hooks","auth:write"]}],responses:{201:{content:{"application/json":{schema:ro}},description:"The created hook"}}}),async e=>{const t=e.req.valid("json"),n={...t,hook_id:t.hook_id||GI()},r=await e.env.data.hooks.create(e.var.tenant_id,n);return e.json(r,{status:201})}).openapi(o.createRoute({tags:["hooks"],method:"patch",path:"/{hook_id}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({hook_id:o.z.string()}),body:{content:{"application/json":{schema:o.z.union(af.options.map(e=>e.omit({hook_id:!0}).partial()))}}}},security:[{Bearer:["update:hooks","auth:write"]}],responses:{200:{content:{"application/json":{schema:ro}},description:"The updated hook"},404:{description:"Hook not found"}}}),async e=>{const{hook_id:t}=e.req.valid("param"),n=e.req.valid("json");await e.env.data.hooks.update(e.var.tenant_id,t,n);const r=await e.env.data.hooks.get(e.var.tenant_id,t);if(!r)throw new I(404,{message:"Hook not found"});return e.json(r)}).openapi(o.createRoute({tags:["hooks"],method:"get",path:"/{hook_id}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({hook_id:o.z.string()})},security:[{Bearer:["read:hooks","auth:read"]}],responses:{200:{content:{"application/json":{schema:ro}},description:"A hook"},404:{description:"Hook not found"}}}),async e=>{const{hook_id:t}=e.req.valid("param"),n=await e.env.data.hooks.get(e.var.tenant_id,t);if(!n)throw new I(404,{message:"Hook not found"});return e.json(n)}).openapi(o.createRoute({tags:["hooks"],method:"delete",path:"/{hook_id}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({hook_id:o.z.string()})},security:[{Bearer:["delete:hooks","auth:write"]}],responses:{200:{description:"A hook"}}}),async e=>{const{hook_id:t}=e.req.valid("param");if(!await e.env.data.hooks.remove(e.var.tenant_id,t))throw new I(404,{message:"Hook not found"});return e.text("OK")});o.z.object({start:o.z.number(),limit:o.z.number(),length:o.z.number()});uu.extend({email:o.z.string(),login_count:o.z.number(),multifactor:o.z.array(o.z.string()).optional(),last_ip:o.z.string().optional(),last_login:o.z.string().optional(),user_id:o.z.string()}).catchall(o.z.any());const XI=jt.extend({connections:o.z.array(_r)}),YI=o.z.object({enabled_clients:o.z.array(o.z.object({client_id:o.z.string(),name:o.z.string()}))}),QI=o.z.array(o.z.object({client_id:o.z.string(),status:o.z.boolean()})),ej=new o.OpenAPIHono().openapi(o.createRoute({tags:["connections"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:connections","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(_r),XI])}},description:"List of connectionss"}}}),async e=>{const{page:t,per_page:n,include_totals:r=!1,sort:i,q:s}=e.req.valid("query"),a=await e.env.data.connections.list(e.var.tenant_id,{page:t,per_page:n,include_totals:r,sort:ht(i),q:s});return r?e.json(a):e.json(a.connections)}).openapi(o.createRoute({tags:["connections"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:connections","auth:read"]}],responses:{200:{content:{"application/json":{schema:_r}},description:"A connection"}}}),async e=>{const{id:t}=e.req.valid("param"),n=await e.env.data.connections.get(e.var.tenant_id,t);if(!n)throw new I(404);return e.json(n)}).openapi(o.createRoute({tags:["connections"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:connections","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const{id:t}=e.req.valid("param"),n=e.var.tenant_id;if(!await e.env.data.connections.remove(n,t))throw new I(404,{message:"Connection not found"});return e.text("OK")}).openapi(o.createRoute({tags:["connections"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:o.z.object(Qc.shape).partial()}}},params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:connections","auth:write"]}],responses:{200:{content:{"application/json":{schema:_r}},description:"The updated connection"}}}),async e=>{const{id:t}=e.req.valid("param"),n=e.req.valid("json"),r=e.var.tenant_id;if(!await e.env.data.connections.update(r,t,n))throw new I(404,{message:"Connection not found"});const s=await e.env.data.connections.get(r,t);if(!s)throw new I(404,{message:"Connection not found"});return e.json(s)}).openapi(o.createRoute({tags:["connections"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:o.z.object(Qc.shape)}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["create:connections","auth:write"]}],responses:{201:{content:{"application/json":{schema:_r}},description:"A connection"}}}),async e=>{const t=e.req.valid("json"),n=e.var.tenant_id,r=t.id||KI(),i=await e.env.data.connections.create(n,{...t,id:r});return e.json(i,{status:201})}).openapi(o.createRoute({tags:["connections"],method:"get",path:"/{id}/clients",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:connections","auth:read"]}],responses:{200:{content:{"application/json":{schema:YI}},description:"List of clients enabled for this connection"}}}),async e=>{const{id:t}=e.req.valid("param");if(!await e.env.data.connections.get(e.var.tenant_id,t))throw new I(404,{message:"Connection not found"});const{clients:r}=await e.env.data.clients.list(e.var.tenant_id,{per_page:1e3}),i=r.filter(s=>s.connections?.includes(t)).map(s=>({client_id:s.client_id,name:s.name}));return e.json({enabled_clients:i})}).openapi(o.createRoute({tags:["connections"],method:"patch",path:"/{id}/clients",request:{body:{content:{"application/json":{schema:QI}}},params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:connections","auth:write"]}],responses:{200:{description:"Clients updated successfully"}}}),async e=>{const{id:t}=e.req.valid("param"),n=e.req.valid("json");if(!await e.env.data.connections.get(e.var.tenant_id,t))throw new I(404,{message:"Connection not found"});for(const i of n){const s=await e.env.data.clients.get(e.var.tenant_id,i.client_id);if(!s)continue;const a=s.connections||[];i.status?a.includes(t)||await e.env.data.clients.update(e.var.tenant_id,i.client_id,{connections:[...a,t]}):a.includes(t)&&await e.env.data.clients.update(e.var.tenant_id,i.client_id,{connections:a.filter(c=>c!==t)})}return e.text("OK")}),tj=new o.OpenAPIHono().openapi(o.createRoute({tags:["prompts"],method:"get",path:"/",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:prompts","auth:read"]}],responses:{200:{content:{"application/json":{schema:lo}},description:"Branding settings"}}}),async e=>{const t=await e.env.data.promptSettings.get(e.var.tenant_id);return t?e.json(t):e.json(lo.parse({}))}).openapi(o.createRoute({tags:["prompts"],method:"patch",path:"/",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:o.z.object(lo.shape).partial()}}}},security:[{Bearer:["update:prompts","auth:write"]}],responses:{200:{description:"Prompts settings"}}}),async e=>{const t=e.req.valid("json"),n=await e.env.data.promptSettings.get(e.var.tenant_id);return Object.assign(n,t),await e.env.data.promptSettings.set(e.var.tenant_id,n),e.json(n)}).openapi(o.createRoute({tags:["prompts"],method:"get",path:"/custom-text",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:prompts","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.array(o.z.object({prompt:io,language:o.z.string()}))}},description:"List of custom text entries"}}}),async e=>{const t=await e.env.data.customText.list(e.var.tenant_id);return e.json(t)}).openapi(o.createRoute({tags:["prompts"],method:"get",path:"/{prompt}/custom-text/{language}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({prompt:io,language:o.z.string()})},security:[{Bearer:["read:prompts","auth:read"]}],responses:{200:{content:{"application/json":{schema:oo}},description:"Custom text for the prompt and language"}}}),async e=>{const{prompt:t,language:n}=e.req.valid("param"),r=await e.env.data.customText.get(e.var.tenant_id,t,n);return e.json(r||{})}).openapi(o.createRoute({tags:["prompts"],method:"put",path:"/{prompt}/custom-text/{language}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({prompt:io,language:o.z.string()}),body:{content:{"application/json":{schema:oo}}}},security:[{Bearer:["update:prompts","auth:write"]}],responses:{200:{content:{"application/json":{schema:oo}},description:"Updated custom text"}}}),async e=>{const{prompt:t,language:n}=e.req.valid("param"),r=oo.parse(await e.req.json());return await e.env.data.customText.set(e.var.tenant_id,t,n,r),e.json(r)}).openapi(o.createRoute({tags:["prompts"],method:"delete",path:"/{prompt}/custom-text/{language}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({prompt:io,language:o.z.string()})},security:[{Bearer:["delete:prompts","auth:write"]}],responses:{204:{description:"Custom text deleted"}}}),async e=>{const{prompt:t,language:n}=e.req.valid("param");return await e.env.data.customText.delete(e.var.tenant_id,t,n),e.body(null,204)});let Hy=!1;function j_(e){e.use(async(t,n)=>(Hy||(e.openAPIRegistry.registerComponent("securitySchemes","Bearer",{type:"oauth2",scheme:"bearer",flows:{implicit:{authorizationUrl:`${t.env.AUTH_URL}/authorize`,scopes:{openid:"Basic user information",email:"User email",profile:"User profile information"}}}}),Hy=!0),await n()))}var nj=(e,t,n={})=>{let r=`${e}=${t}`;if(e.startsWith("__Secure-")&&!n.secure)throw new Error("__Secure- Cookie must have Secure attributes");if(e.startsWith("__Host-")){if(!n.secure)throw new Error("__Host- Cookie must have Secure attributes");if(n.path!=="/")throw new Error('__Host- Cookie must have Path attributes with "/"');if(n.domain)throw new Error("__Host- Cookie must not have Domain attributes")}for(const i of["domain","path"])if(n[i]&&/[;\r\n]/.test(n[i]))throw new Error(`${i} must not contain ";", "\\r", or "\\n"`);if(n&&typeof n.maxAge=="number"&&n.maxAge>=0){if(n.maxAge>3456e4)throw new Error("Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.");r+=`; Max-Age=${n.maxAge|0}`}if(n.domain&&n.prefix!=="host"&&(r+=`; Domain=${n.domain}`),n.path&&(r+=`; Path=${n.path}`),n.expires){if(n.expires.getTime()-Date.now()>3456e7)throw new Error("Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.");r+=`; Expires=${n.expires.toUTCString()}`}if(n.httpOnly&&(r+="; HttpOnly"),n.secure&&(r+="; Secure"),n.sameSite&&(r+=`; SameSite=${n.sameSite.charAt(0).toUpperCase()+n.sameSite.slice(1)}`),n.priority&&(r+=`; Priority=${n.priority.charAt(0).toUpperCase()+n.priority.slice(1)}`),n.partitioned){if(!n.secure)throw new Error("Partitioned Cookie must have Secure attributes");r+="; Partitioned"}return r},ip=(e,t,n)=>(t=encodeURIComponent(t),nj(e,t,n)),rj=(e,t,n)=>{let r;return n?.prefix==="secure"?r=ip("__Secure-"+e,t,{path:"/",...n,secure:!0}):n?.prefix==="host"?r=ip("__Host-"+e,t,{...n,path:"/",secure:!0,domain:void 0}):r=ip(e,t,{path:"/",...n}),r},Vy=(e,t,n,r)=>{const i=rj(t,n,r);e.header("Set-Cookie",i,{append:!0})},Ik=e=>jk(e.replace(/_|-/g,t=>({_:"/","-":"+"})[t]??t)),jk=e=>{const t=atob(e),n=new Uint8Array(new ArrayBuffer(t.length)),r=t.length/2;for(let i=0,s=t.length-1;i<=r;i++,s--)n[i]=t.charCodeAt(i),n[s]=t.charCodeAt(s);return n},Ws=(e=>(e.HS256="HS256",e.HS384="HS384",e.HS512="HS512",e.RS256="RS256",e.RS384="RS384",e.RS512="RS512",e.PS256="PS256",e.PS384="PS384",e.PS512="PS512",e.ES256="ES256",e.ES384="ES384",e.ES512="ES512",e.EdDSA="EdDSA",e))(Ws||{}),ij=class extends Error{constructor(e){super(`${e} is not an implemented algorithm`),this.name="JwtAlgorithmNotImplemented"}},Ky=class extends Error{constructor(){super('JWT verification requires "alg" option to be specified'),this.name="JwtAlgorithmRequired"}},oj=class extends Error{constructor(e,t){super(`JWT algorithm mismatch: expected "${e}", got "${t}"`),this.name="JwtAlgorithmMismatch"}},F0=class extends Error{constructor(e){super(`invalid JWT token: ${e}`),this.name="JwtTokenInvalid"}},sj=class extends Error{constructor(e){super(`token (${e}) is being used before it's valid`),this.name="JwtTokenNotBefore"}},aj=class extends Error{constructor(e){super(`token (${e}) expired`),this.name="JwtTokenExpired"}},cj=class extends Error{constructor(e,t){super(`Invalid "iat" claim, must be a valid number lower than "${e}" (iat: "${t}")`),this.name="JwtTokenIssuedAt"}},op=class extends Error{constructor(e,t){super(`expected issuer "${e}", got ${t?`"${t}"`:"none"} `),this.name="JwtTokenIssuer"}},lj=class extends Error{constructor(e){super(`jwt header is invalid: ${JSON.stringify(e)}`),this.name="JwtHeaderInvalid"}},uj=class extends Error{constructor(e){super(`token(${e}) signature mismatched`),this.name="JwtTokenSignatureMismatched"}},dj=class extends Error{constructor(e){super(`required "aud" in jwt payload: ${JSON.stringify(e)}`),this.name="JwtPayloadRequiresAud"}},pj=class extends Error{constructor(e,t){super(`expected audience "${Array.isArray(e)?e.join(", "):e}", got "${t}"`),this.name="JwtTokenAudience"}},Ql=(e=>(e.Encrypt="encrypt",e.Decrypt="decrypt",e.Sign="sign",e.Verify="verify",e.DeriveKey="deriveKey",e.DeriveBits="deriveBits",e.WrapKey="wrapKey",e.UnwrapKey="unwrapKey",e))(Ql||{}),Nk=new TextEncoder,fj=new TextDecoder;async function hj(e,t,n,r){const i=mj(t),s=await _j(e,i);return await crypto.subtle.verify(i,s,n,r)}function Gy(e){return jk(e.replace(/-+(BEGIN|END).*/g,"").replace(/\s/g,""))}async function _j(e,t){if(!crypto.subtle||!crypto.subtle.importKey)throw new Error("`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.");if(gj(e)){if(e.type==="public"||e.type==="secret")return e;e=await Wy(e)}if(typeof e=="string"&&e.includes("PRIVATE")){const r=await crypto.subtle.importKey("pkcs8",Gy(e),t,!0,[Ql.Sign]);e=await Wy(r)}const n=[Ql.Verify];return typeof e=="object"?await crypto.subtle.importKey("jwk",e,t,!1,n):e.includes("PUBLIC")?await crypto.subtle.importKey("spki",Gy(e),t,!1,n):await crypto.subtle.importKey("raw",Nk.encode(e),t,!1,n)}async function Wy(e){if(e.type!=="private")throw new Error(`unexpected key type: ${e.type}`);if(!e.extractable)throw new Error("unexpected private key is unextractable");const t=await crypto.subtle.exportKey("jwk",e),{kty:n}=t,{alg:r,e:i,n:s}=t,{crv:a,x:c,y:l}=t;return{kty:n,alg:r,e:i,n:s,crv:a,x:c,y:l,key_ops:[Ql.Verify]}}function mj(e){switch(e){case"HS256":return{name:"HMAC",hash:{name:"SHA-256"}};case"HS384":return{name:"HMAC",hash:{name:"SHA-384"}};case"HS512":return{name:"HMAC",hash:{name:"SHA-512"}};case"RS256":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case"RS384":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case"RS512":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case"PS256":return{name:"RSA-PSS",hash:{name:"SHA-256"},saltLength:32};case"PS384":return{name:"RSA-PSS",hash:{name:"SHA-384"},saltLength:48};case"PS512":return{name:"RSA-PSS",hash:{name:"SHA-512"},saltLength:64};case"ES256":return{name:"ECDSA",hash:{name:"SHA-256"},namedCurve:"P-256"};case"ES384":return{name:"ECDSA",hash:{name:"SHA-384"},namedCurve:"P-384"};case"ES512":return{name:"ECDSA",hash:{name:"SHA-512"},namedCurve:"P-521"};case"EdDSA":return{name:"Ed25519",namedCurve:"Ed25519"};default:throw new ij(e)}}function gj(e){return Ow()==="node"&&crypto.webcrypto?e instanceof crypto.webcrypto.CryptoKey:e instanceof CryptoKey}var Jy=e=>JSON.parse(fj.decode(Ik(e)));function yj(e){if(typeof e=="object"&&e!==null){const t=e;return"alg"in t&&Object.values(Ws).includes(t.alg)&&(!("typ"in t)||t.typ==="JWT")}return!1}var bj=async(e,t,n)=>{if(!n)throw new Ky;const{alg:r,iss:i,nbf:s=!0,exp:a=!0,iat:c=!0,aud:l}=typeof n=="string"?{alg:n}:n;if(!r)throw new Ky;const u=e.split(".");if(u.length!==3)throw new F0(e);const{header:d,payload:f}=Tk(e);if(!yj(d))throw new lj(d);if(d.alg!==r)throw new oj(r,d.alg);const p=Math.floor(Date.now()/1e3);if(s&&f.nbf&&f.nbf>p)throw new sj(e);if(a&&f.exp&&f.exp<=p)throw new aj(e);if(c&&f.iat&&p<f.iat)throw new cj(p,f.iat);if(i){if(!f.iss)throw new op(i,null);if(typeof i=="string"&&f.iss!==i)throw new op(i,f.iss);if(i instanceof RegExp&&!i.test(f.iss))throw new op(i,f.iss)}if(l){if(!f.aud)throw new dj(f);if(!(Array.isArray(f.aud)?f.aud:[f.aud]).some(m=>l instanceof RegExp?l.test(m):typeof l=="string"?m===l:Array.isArray(l)&&l.includes(m)))throw new pj(l,f.aud)}const h=e.substring(0,e.lastIndexOf("."));if(!await hj(t,r,Ik(u[2]),Nk.encode(h)))throw new uj(e);return f};Ws.HS256,Ws.HS384,Ws.HS512;var Tk=e=>{const t=e.split(".");if(t.length!==3)throw new F0(e);try{const n=Jy(t[0]),r=Jy(t[1]);return{header:n,payload:r}}catch{throw new F0(e)}},Pk={verify:bj,decode:Tk},vj={Stringify:1},Cr=(e,t)=>{const n=new String(e);return n.isEscaped=!0,n.callbacks=t,n},wj=/[&<>'"]/,kj=async(e,t)=>{let n="";t||=[];const r=await Promise.all(e);for(let i=r.length-1;n+=r[i],i--,!(i<0);i--){let s=r[i];typeof s=="object"&&t.push(...s.callbacks||[]);const a=s.isEscaped;if(s=await(typeof s=="object"?s.toString():s),typeof s=="object"&&t.push(...s.callbacks||[]),s.isEscaped??a)n+=s;else{const c=[n];_o(s,c),n=c[0]}}return Cr(n,t)},_o=(e,t)=>{const n=e.search(wj);if(n===-1){t[0]+=e;return}let r,i,s=0;for(i=n;i<e.length;i++){switch(e.charCodeAt(i)){case 34:r=""";break;case 39:r="'";break;case 38:r="&";break;case 60:r="<";break;case 62:r=">";break;default:continue}t[0]+=e.substring(s,i)+r,s=i+1}t[0]+=e.substring(s,i)},$j=e=>{const t=e.callbacks;if(!t?.length)return e;const n=[e],r={};return t.forEach(i=>i({phase:vj.Stringify,buffer:n,context:r})),n[0]},Sj=Pk.verify,xj=Pk.decode;async function Lc(e){const{signingKeys:t}=await e.keys.list({q:"type:jwt_signing"});return await Promise.all(t.map(async r=>{const s=await new vd(r.cert).publicKey.export(),a=await crypto.subtle.exportKey("jwk",s);return vh.parse({...a,kid:r.kid})}))}const zj=o.z.object({alg:o.z.enum(["RS256","RS384","RS512","ES256","ES384","ES512","HS256","HS384","HS512"]),kty:o.z.enum(["RSA","EC","oct"]),use:o.z.enum(["sig","enc"]).optional(),n:o.z.string(),e:o.z.string(),kid:o.z.string(),x5t:o.z.string().optional(),x5c:o.z.array(o.z.string()).optional()});async function Aj(e){if(e.JWKS_URL&&e.JWKS_SERVICE)try{const t=await e.JWKS_SERVICE.fetch(e.JWKS_URL);if(!t.ok)return console.warn(`JWKS fetch failed with status ${t.status}, falling back to database`),await Lc(e.data);const n=await t.json();return o.z.object({keys:o.z.array(zj)}).parse(n).keys}catch(t){return console.warn(`JWKS fetch error: ${t instanceof Error?t.message:"Unknown error"}, falling back to database`),await Lc(e.data)}return await Lc(e.data)}async function H0(e,t){try{const{header:n}=xj(t),i=(await Aj(e.env)).find(c=>c.kid===n.kid);if(!i)throw new W(401,{message:"No matching kid found"});const s=await crypto.subtle.importKey("jwk",i,{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!1,["verify"]);return await Sj(t,s,"RS256")}catch(n){throw n instanceof I?n:new W(403,{message:"Invalid JWT signature"})}}const Ej="urn:authhero:management";function Cj(e){return e.replace(/:([a-zA-Z_][a-zA-Z0-9_]*)/g,"{$1}")}function kd(e){return async(t,n)=>{const r=t.req.matchedRoutes.find(l=>l.method.toUpperCase()===t.req.method&&l.path!=="/*");if(!r)return await n();const i=Cj(r.path),s="/api/v2",a=i.startsWith(s)?i.slice(s.length)||"/":i,c=e.openAPIRegistry.definitions.find(l=>"route"in l&&l.route.path===a&&l.route.method.toUpperCase()===t.req.method.toUpperCase());if(c&&"route"in c){const l=c.route.security?.[0]?.Bearer;if(l===void 0)return await n();const u=t.req.header("authorization")||"",[d,f]=u.split(" ");if(d?.toLowerCase()!=="bearer"||!f)throw new W(401,{message:"Missing bearer token"});try{const p=await H0(t,f);t.set("user_id",p.sub),t.set("user",p),p.org_name&&t.set("org_name",p.org_name),p.org_id&&t.set("organization_id",p.org_id),!t.var.tenant_id&&p.tenant_id&&t.set("tenant_id",p.tenant_id);const h=Array.isArray(p.permissions)?p.permissions:[],_=typeof p.scope=="string"?p.scope.split(" "):Array.isArray(p.scope)?p.scope:[];if(l.length&&!(l.some(g=>h.includes(g))||l.some(g=>_.includes(g))))throw new W(403,{message:"Unauthorized"})}catch(p){throw p instanceof I?p:new W(403,{message:"Invalid token"})}}return await n()}}const Ij=new o.OpenAPIHono().openapi(o.createRoute({tags:["emails"],method:"get",path:"/",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:emails","auth:read"]}],responses:{200:{content:{"application/json":{schema:Ic}},description:"Email provider"}}}),async e=>{const t=await e.env.data.emailProviders.get(e.var.tenant_id);if(!t)throw new I(404,{message:"Email provider not found"});return e.json(t)}).openapi(o.createRoute({tags:["emails"],method:"post",path:"/",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:o.z.object(Ic.shape)}}}},security:[{Bearer:["create:emails","auth:write"]}],responses:{200:{description:"Branding settings"}}}),async e=>{const t=e.req.valid("json");return await e.env.data.emailProviders.create(e.var.tenant_id,t),e.text("OK",{status:201})}).openapi(o.createRoute({tags:["emails"],method:"patch",path:"/",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:o.z.object(Ic.shape).partial()}}}},security:[{Bearer:["update:emails","auth:write"]}],responses:{200:{description:"Branding settings"}}}),async e=>{const t=e.req.valid("json");return await e.env.data.emailProviders.update(e.var.tenant_id,t),e.text("OK")}),jj=new o.OpenAPIHono().openapi(o.createRoute({tags:["sessions"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:sessions","auth:read"]}],responses:{200:{content:{"application/json":{schema:fu}},description:"A session"}}}),async e=>{const{id:t}=e.req.valid("param"),n=await e.env.data.sessions.get(e.var.tenant_id,t);if(!n)throw new I(404);return e.json(n)}).openapi(o.createRoute({tags:["sessions"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:sessions","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const{id:t}=e.req.valid("param");if(!await e.env.data.sessions.remove(e.var.tenant_id,t))throw new I(404,{message:"Session not found"});return e.text("OK")}).openapi(o.createRoute({tags:["sessions"],method:"post",path:"/{id}/revoke",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:sessions","auth:write"]}],responses:{202:{description:"Sesssion deletion status"}}}),async e=>{const{id:t}=e.req.valid("param");if(!await e.env.data.sessions.update(e.var.tenant_id,t,{revoked_at:new Date().toDateString()}))throw new I(404,{message:"Session not found"});return e.text("Session deletion request accepted.",{status:202})}),Nj=new o.OpenAPIHono().openapi(o.createRoute({tags:["refresh_tokens"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:refresh_tokens","auth:read"]}],responses:{200:{content:{"application/json":{schema:$h}},description:"A session"}}}),async e=>{const{id:t}=e.req.valid("param"),n=await e.env.data.refreshTokens.get(e.var.tenant_id,t);if(!n)throw new I(404);return e.json(n)}).openapi(o.createRoute({tags:["refresh_tokens"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:refresh_tokens","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const{id:t}=e.req.valid("param");if(!await e.env.data.refreshTokens.remove(e.var.tenant_id,t))throw new I(404,{message:"Session not found"});return e.text("OK")}),Tj=new o.OpenAPIHono().openapi(o.createRoute({tags:["custom-domains"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:custom_domains","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.array(fr)}},description:"List of custom domains"}}}),async e=>{const t=await e.env.data.customDomains.list(e.var.tenant_id);return e.json(t)}).openapi(o.createRoute({tags:["custom-domains"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:custom_domains","auth:read"]}],responses:{200:{content:{"application/json":{schema:fr}},description:"A customDomain"}}}),async e=>{const{id:t}=e.req.valid("param"),n=await e.env.data.customDomains.get(e.var.tenant_id,t);if(!n)throw new I(404);return e.json(n)}).openapi(o.createRoute({tags:["custom-domains"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:custom_domains","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const{id:t}=e.req.valid("param");if(!await e.env.data.customDomains.remove(e.var.tenant_id,t))throw new I(404,{message:"Custom domain not found"});return e.text("OK")}).openapi(o.createRoute({tags:["custom-domains"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:o.z.object(fr.shape).partial()}}},params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:custom_domains","auth:write"]}],responses:{200:{content:{"application/json":{schema:fr}},description:"The updated custom domain"}}}),async e=>{const{id:t}=e.req.valid("param"),n=e.req.valid("json");if(!await e.env.data.customDomains.update(e.var.tenant_id,t,n))throw new I(404);const i=await e.env.data.customDomains.get(e.var.tenant_id,t);if(!i)throw new I(404);return e.json(i)}).openapi(o.createRoute({tags:["custom-domains"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:o.z.object(fh.shape)}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["create:custom_domains","auth:write"]}],responses:{201:{content:{"application/json":{schema:fr}},description:"The created custom domain"}}}),async e=>{const t=e.req.valid("json"),n=await e.env.data.customDomains.create(e.var.tenant_id,t);return e.json(n,{status:201})}).openapi(o.createRoute({tags:["custom-domains"],method:"post",path:"/{id}/verify",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:custom_domains","auth:write"]}],responses:{200:{content:{"application/json":{schema:fr}},description:"The custom domain"}}}),async()=>{throw new I(501,{message:"Not implemented"})});function Ya(e,t){const n={};for(const[r,i]of Object.entries(t)){if(i==null)continue;const s={};for(const[a,c]of Object.entries(i))typeof c=="function"?s[a]=async(...l)=>{const u=performance.now();try{const d=await c(...l),p=performance.now()-u,h=e.res.headers.get("Server-Timing")||"",_=h?`${h}, ${r}-${a};dur=${p.toFixed(2)}`:`${r}-${a};dur=${p.toFixed(2)}`;return e.res.headers.set("Server-Timing",_),d}catch(d){const p=performance.now()-u,h=e.res.headers.get("Server-Timing")||"",_=h?`${h}, ${r}-${a}-error;dur=${p.toFixed(2)}`:`${r}-${a}-error;dur=${p.toFixed(2)}`;throw e.res.headers.set("Server-Timing",_),d}}:s[a]=c;n[r]=s}return n}async function ns(e,t){const n=e.var.user;if(n?.tenant_id)return e.set("tenant_id",n.tenant_id),await t();const r=e.req.header("tenant-id");if(r)return e.set("tenant_id",r),await t();const i=e.req.header("x-forwarded-host");if(i){const a=await e.env.data.customDomains.getByDomain(i);if(a)return e.set("tenant_id",a.tenant_id),e.set("custom_domain",i),e.set("host",i),await t()}const s=e.req.header("host");if(s){e.set("host",s);const a=await e.env.data.customDomains.getByDomain(s);if(a)return e.set("tenant_id",a.tenant_id),e.set("custom_domain",s),await t();const c=s.split(".");if(c.length>1&&typeof c[0]=="string"){const l=c[0];await e.env.data.tenants.get(l)&&e.set("tenant_id",l)}}else e.set("host",new URL(ku(e.env)).host);if(!e.var.tenant_id){const{tenants:a}=await e.env.data.tenants.list({per_page:2});a.length===1&&a[0]&&e.set("tenant_id",a[0].id)}return await t()}const Pj=o.z.object({name:o.z.string(),version:o.z.string(),env:o.z.object({node:o.z.string().optional()}).optional()});function Oj(e){if(e)try{let t=e;try{t=atob(e)}catch{}try{const n=JSON.parse(t);return Pj.parse(n)}catch{}}catch{return}}const rs=async(e,t)=>{const n=e.req.query("auth0Client")?.slice(0,255),i=(e.req.header("x-forwarded-host")&&e.req.header("x-forwarded-for")?e.req.header("x-forwarded-for")?.split(",")[0]?.trim():e.req.header("cf-connecting-ip")||e.req.header("x-real-ip"))?.slice(0,45),s=e.req.header("user-agent")?.slice(0,512),a=e.req.header("cf-ipcountry")?.slice(0,2),c=n?Oj(n):void 0;c&&e.set("auth0_client",c),i&&e.set("ip",i),s&&e.set("useragent",s),a&&e.set("countryCode",a),await t()};function sp(e,t,n,r){try{const i=`${e}:${t}:${JSON.stringify(n)}`;return r?`${r}:${i}`:i}catch{const s=`${e}:${t}:${Date.now()}-${Math.random()}`;return r?`${r}:${s}`:s}}function Qa(e,t){const{cache:n,defaultTtl:r,customTtls:i={},excludeMethods:s=[],cacheEntities:a=[],keyPrefix:c}=t,l=new Set(s),u=a.length===0,d=new Set(a),f={};for(const[p,h]of Object.entries(e)){if(h==null)continue;const _=u||d.has(p),g={};for(const[y,m]of Object.entries(h))if(typeof m=="function"){if(!_){g[y]=m;continue}const w=`${p}:${y}`;if(l.has(w)){g[y]=m;continue}const k=i[w]??r,S=["create","update","remove","delete","set","used"].includes(y);g[y]=async(...b)=>{if(S){const P=await m.apply(h,b);try{if(b.length>=2&&["update","remove","delete"].includes(y)){const C=sp(p,"get",[b[0],b[1]],c);await n.delete(C);const L=sp(p,"list",[b[0],{}],c);await n.delete(L)}const R=c?`${c}:${p}:`:`${p}:`;await n.deleteByPrefix(R)}catch{}return P}const x=sp(p,y,b,c),A=await n.get(x);if(A!==null)if(A&&typeof A=="object"&&"isCachedNull"in A){const P=A;return P.isCachedNull?null:P.value}else return A;const E=await m.apply(h,b);if(k>=0)if(E!==null)await n.set(x,E,k);else{const P={value:null,isCachedNull:!0};await n.set(x,P,k)}return E}}else g[y]=m;f[p]=g}return f}function gc(e){if(!e)return;const t=e.filter(n=>n!==void 0);if(t.length!==0)return t.length===1?t[0]:{beforeCreate:eu(t.map(n=>n.beforeCreate),(n,r)=>[n,r],(n,r)=>[n[0],r]),afterCreate:co(t.map(n=>n.afterCreate)),beforeUpdate:eu(t.map(n=>n.beforeUpdate),(n,r,i)=>[n,r,i],(n,r)=>[n[0],n[1],r]),afterUpdate:co(t.map(n=>n.afterUpdate)),beforeDelete:co(t.map(n=>n.beforeDelete)),afterDelete:co(t.map(n=>n.afterDelete))}}function eu(e,t,n){const r=e.filter(i=>i!==void 0);if(r.length!==0)return r.length===1?r[0]:async(...i)=>{let s=t(...i),a=s[s.length-1];for(const c of r)a=await c(...s),s=n(s,a);return a}}function co(e){const t=e.filter(n=>n!==void 0);if(t.length!==0)return t.length===1?t[0]:async(...n)=>{for(const r of t)await r(...n)}}function Rj(e){if(!e)return;const t=e.filter(n=>n!==void 0);if(t.length!==0)return t.length===1?t[0]:{beforeAssign:eu(t.map(n=>n.beforeAssign),(n,r,i)=>[n,r,i],(n,r)=>[n[0],n[1],r]),afterAssign:co(t.map(n=>n.afterAssign)),beforeRemove:eu(t.map(n=>n.beforeRemove),(n,r,i)=>[n,r,i],(n,r)=>[n[0],n[1],r]),afterRemove:co(t.map(n=>n.afterRemove))}}function ap(e,t,n){return t?{...e,create:async(r,i)=>{let s=i;t.beforeCreate&&(s=await t.beforeCreate(n,i));const a=await e.create(r,s);return t.afterCreate&&await t.afterCreate(n,a),a},update:async(r,i,s)=>{let a=s;t.beforeUpdate&&(a=await t.beforeUpdate(n,i,s));const c=await e.update(r,i,a);if(t.afterUpdate){let l;typeof c=="boolean"?l=await e.get(r,i):l=c,l&&await t.afterUpdate(n,i,l)}return c},remove:async(r,i)=>{t.beforeDelete&&await t.beforeDelete(n,i);const s=await e.remove(r,i);return t.afterDelete&&s&&await t.afterDelete(n,i),s}}:e}function Lj(e,t,n){return t?{...e,assign:async(r,i,s)=>{let a=s;t.beforeAssign&&(a=await t.beforeAssign(n,i,s));const c=await e.assign(r,i,a);return t.afterAssign&&c&&await t.afterAssign(n,i,a),c},remove:async(r,i,s)=>{let a=s;t.beforeRemove&&(a=await t.beforeRemove(n,i,s));const c=await e.remove(r,i,a);return t.afterRemove&&c&&await t.afterRemove(n,i,a),c}}:e}function Dj(e,t,n){return t?{...e,create:async r=>{let i=r;t.beforeCreate&&(i=await t.beforeCreate(n,r));const s=await e.create(i);return t.afterCreate&&await t.afterCreate(n,s),s},update:async(r,i)=>{let s=i;if(t.beforeUpdate&&(s=await t.beforeUpdate(n,r,i)),await e.update(r,s),t.afterUpdate){const a=await e.get(r);a&&await t.afterUpdate(n,r,a)}},remove:async r=>{t.beforeDelete&&await t.beforeDelete(n,r);const i=await e.remove(r);return t.afterDelete&&i&&await t.afterDelete(n,r),i}}:e}function Ok(e,t){const{tenantId:n,entityHooks:r}=t;if(!r)return e;const i={connections:gc(r.connections),roles:gc(r.roles),resourceServers:gc(r.resourceServers),rolePermissions:Rj(r.rolePermissions),tenants:gc(r.tenants)},s={tenantId:n,adapters:e};return{...e,connections:ap(e.connections,i.connections,s),roles:ap(e.roles,i.roles,s),resourceServers:ap(e.resourceServers,i.resourceServers,s),rolePermissions:Lj(e.rolePermissions,i.rolePermissions,s),tenants:Dj(e.tenants,i.tenants,s)}}class Uj{constructor(t={}){this.config=t;const n=t.cleanupIntervalMs;n&&n>0&&(this.cleanupTimer=setInterval(()=>{this.cleanupExpired()},n))}cache=new Map;accessOrder=new Map;accessCounter=0;cleanupTimer;async get(t){const n=this.cache.get(t);return n?n.expiresAt&&n.expiresAt<new Date?(this.cache.delete(t),this.accessOrder.delete(t),null):(this.accessOrder.set(t,++this.accessCounter),n.value):null}async set(t,n,r){let i;const s=r??this.config.defaultTtlSeconds,a=s!==void 0,c=a?Math.max(0,s):0;a&&(i=new Date(Date.now()+(c>0?c*1e3:-1))),this.config.maxEntries&&this.cache.size>=this.config.maxEntries&&!this.cache.has(t)&&this.evictLeastRecentlyUsed();const l={value:n,expiresAt:i};this.cache.set(t,l),this.accessOrder.set(t,++this.accessCounter)}async delete(t){const n=this.cache.has(t);return this.cache.delete(t),this.accessOrder.delete(t),n}async deleteByPrefix(t){let n=0;for(const r of this.cache.keys())r.startsWith(t)&&(this.cache.delete(r),this.accessOrder.delete(r),n++);return n}async clear(){this.cache.clear(),this.accessOrder.clear(),this.accessCounter=0}getStats(){return{size:this.cache.size,maxEntries:this.config.maxEntries,defaultTtlSeconds:this.config.defaultTtlSeconds}}cleanupExpired(){const t=new Date,n=[];for(const[r,i]of this.cache.entries())i.expiresAt&&i.expiresAt<t&&n.push(r);for(const r of n)this.cache.delete(r),this.accessOrder.delete(r)}evictLeastRecentlyUsed(){let t=null,n=1/0;for(const[r,i]of this.accessOrder.entries())i<n&&(n=i,t=r);t&&(this.cache.delete(t),this.accessOrder.delete(t))}destroy(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0)}}function is(e={}){return new Uj(e)}const Bj=jt.extend({forms:o.z.array(no)}),Mj=new o.OpenAPIHono().openapi(o.createRoute({tags:["forms"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:forms","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(no),Bj])}},description:"List of forms"}}}),async e=>{const t=e.var.tenant_id,{page:n,per_page:r,include_totals:i=!1,sort:s,q:a}=e.req.valid("query"),c=await e.env.data.forms.list(t,{page:n,per_page:r,include_totals:i,sort:ht(s),q:a});return i?e.json(c):e.json(c.forms)}).openapi(o.createRoute({tags:["forms"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:forms","auth:read"]}],responses:{200:{content:{"application/json":{schema:no}},description:"A form"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=await e.env.data.forms.get(t,n);if(!r)throw new I(404);return e.json(r)}).openapi(o.createRoute({tags:["forms"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:forms","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param");if(!await e.env.data.forms.remove(t,n))throw new I(404,{message:"Form not found"});return e.text("OK")}).openapi(o.createRoute({tags:["forms"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:o.z.object(el.shape).partial()}}},params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:forms","auth:write"]}],responses:{200:{content:{"application/json":{schema:no}},description:"The updated form"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=e.req.valid("json");if(!await e.env.data.forms.update(t,n,r))throw new I(404,{message:"Form not found"});const s=await e.env.data.forms.get(t,n);if(!s)throw new I(404,{message:"Form not found"});return e.json(s)}).openapi(o.createRoute({tags:["forms"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:o.z.object(el.shape)}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["create:forms","auth:write"]}],responses:{201:{content:{"application/json":{schema:no}},description:"A form"}}}),async e=>{const t=e.var.tenant_id,n=e.req.valid("json"),r=await e.env.data.forms.create(t,n);return e.json(r,{status:201})}),qj=jt.extend({flows:o.z.array(to)}),Fj=new o.OpenAPIHono().openapi(o.createRoute({tags:["flows"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:flows","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(to),qj])}},description:"List of flows"}}}),async e=>{const t=e.var.tenant_id,{page:n,per_page:r,include_totals:i=!1,sort:s,q:a}=e.req.valid("query"),c=await e.env.data.flows.list(t,{page:n,per_page:r,include_totals:i,sort:ht(s),q:a});return i?e.json(c):e.json(c.flows)}).openapi(o.createRoute({tags:["flows"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:flows","auth:read"]}],responses:{200:{content:{"application/json":{schema:to}},description:"A flow"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=await e.env.data.flows.get(t,n);if(!r)throw new I(404);return e.json(r)}).openapi(o.createRoute({tags:["flows"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:flows","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param");if(!await e.env.data.flows.remove(t,n))throw new I(404,{message:"Flow not found"});return e.text("OK")}).openapi(o.createRoute({tags:["flows"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:o.z.object(Wc.shape).partial()}}},params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:flows","auth:write"]}],responses:{200:{content:{"application/json":{schema:to}},description:"The updated flow"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=e.req.valid("json"),i=await e.env.data.flows.update(t,n,r);if(!i)throw new I(404,{message:"Flow not found"});return e.json(i)}).openapi(o.createRoute({tags:["flows"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:o.z.object(Wc.shape)}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["create:flows","auth:write"]}],responses:{201:{content:{"application/json":{schema:to}},description:"The created flow"}}}),async e=>{const t=e.var.tenant_id,n=e.req.valid("json"),r=await e.env.data.flows.create(t,n);return e.json(r,{status:201})}),Hj=jt.extend({roles:o.z.array(ii)}),Vj=new o.OpenAPIHono().openapi(o.createRoute({tags:["roles"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:roles","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(ii),Hj])}},description:"List of roles"}}}),async e=>{const{page:t,per_page:n,include_totals:r,sort:i,q:s}=e.req.valid("query"),a=e.var.tenant_id;if(!a)throw new I(400,{message:"tenant-id header is required"});const c=await e.env.data.roles.list(a,{page:t,per_page:n,include_totals:r,sort:ht(i),q:s});return r?e.json(c):e.json(c.roles)}).openapi(o.createRoute({tags:["roles"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:roles","auth:read"]}],responses:{200:{content:{"application/json":{schema:ii}},description:"A role"}}}),async e=>{const{id:t}=e.req.valid("param"),n=e.var.tenant_id;if(!n)throw new I(400,{message:"tenant-id header is required"});const r=await e.env.data.roles.get(n,t);if(!r)throw new I(404);return e.json(r)}).openapi(o.createRoute({tags:["roles"],method:"post",path:"/",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:il}}}},security:[{Bearer:["create:roles","auth:write"]}],responses:{201:{content:{"application/json":{schema:ii}},description:"Role created"}}}),async e=>{const t=e.req.valid("json"),n=e.var.tenant_id;if(!n)throw new I(400,{message:"tenant-id header is required"});const r=await e.env.data.roles.create(n,t);return e.json(r,{status:201})}).openapi(o.createRoute({tags:["roles"],method:"patch",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:il.partial()}}}},security:[{Bearer:["update:roles","auth:write"]}],responses:{200:{content:{"application/json":{schema:ii}},description:"Updated role"}}}),async e=>{const{id:t}=e.req.valid("param"),n=e.req.valid("json"),r=e.var.tenant_id;if(!r)throw new I(400,{message:"tenant-id header is required"});if(!await e.env.data.roles.update(r,t,n))throw new I(404);const s=await e.env.data.roles.get(r,t);return e.json(s)}).openapi(o.createRoute({tags:["roles"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:roles","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const{id:t}=e.req.valid("param"),n=e.var.tenant_id;if(!n)throw new I(400,{message:"tenant-id header is required"});if(!await e.env.data.roles.remove(n,t))throw new I(404);return e.text("OK")}).openapi(o.createRoute({tags:["roles"],method:"get",path:"/{id}/permissions",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),query:ot},security:[{Bearer:["read:roles","auth:read"]}],responses:{200:{content:{"application/json":{schema:ww}},description:"Role permissions"}}}),async e=>{const{id:t}=e.req.valid("param"),{page:n,per_page:r,sort:i,q:s}=e.req.valid("query"),a=e.var.tenant_id;if(!a)throw new I(400,{message:"tenant-id header is required"});if(!await e.env.data.roles.get(a,t))throw new I(404,{message:"Role not found"});const l=await e.env.data.rolePermissions.list(a,t,{page:n,per_page:r,include_totals:!1,sort:ht(i),q:s});return e.json(l)}).openapi(o.createRoute({tags:["roles"],method:"post",path:"/{id}/permissions",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:o.z.object({permissions:o.z.array(o.z.object({permission_name:o.z.string(),resource_server_identifier:o.z.string()}))})}}}},security:[{Bearer:["update:roles","auth:write"]}],responses:{201:{description:"Permissions assigned to role"}}}),async e=>{const{id:t}=e.req.valid("param"),{permissions:n}=e.req.valid("json"),r=e.var.tenant_id;if(!r)throw new I(400,{message:"tenant-id header is required"});if(!await e.env.data.roles.get(r,t))throw new I(404,{message:"Role not found"});const s=n.map(c=>({role_id:t,resource_server_identifier:c.resource_server_identifier,permission_name:c.permission_name}));if(!await e.env.data.rolePermissions.assign(r,t,s))throw new I(500,{message:"Failed to assign permissions to role"});return e.json({message:"Permissions assigned successfully"},{status:201})}).openapi(o.createRoute({tags:["roles"],method:"delete",path:"/{id}/permissions",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:o.z.object({permissions:o.z.array(o.z.object({permission_name:o.z.string(),resource_server_identifier:o.z.string()}))})}}}},security:[{Bearer:["update:roles","auth:write"]}],responses:{200:{description:"Permissions removed from role"}}}),async e=>{const{id:t}=e.req.valid("param"),{permissions:n}=e.req.valid("json"),r=e.var.tenant_id;if(!r)throw new I(400,{message:"tenant-id header is required"});if(!await e.env.data.roles.get(r,t))throw new I(404,{message:"Role not found"});if(!await e.env.data.rolePermissions.remove(r,t,n))throw new I(500,{message:"Failed to remove permissions from role"});return e.json({message:"Permissions removed successfully"})}),Kj=jt.extend({resource_servers:o.z.array(ri)}),Gj=new o.OpenAPIHono().openapi(o.createRoute({tags:["resource-servers"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:resource_servers","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(ri),Kj])}},description:"List of resource servers"}}}),async e=>{const t=e.var.tenant_id,{page:n,per_page:r,include_totals:i=!1,sort:s,q:a}=e.req.valid("query"),c=await e.env.data.resourceServers.list(t,{page:n,per_page:r,include_totals:i,sort:ht(s),q:a});return i?e.json(c):e.json(c.resource_servers)}).openapi(o.createRoute({tags:["resource-servers"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:resource_servers","auth:read"]}],responses:{200:{content:{"application/json":{schema:ri}},description:"A resource server"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=await e.env.data.resourceServers.get(t,n);if(!r)throw new I(404);return e.json(r)}).openapi(o.createRoute({tags:["resource-servers"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:resource_servers","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=await e.env.data.resourceServers.get(t,n);if(!r)throw new I(404,{message:"Resource server not found"});if(r.is_system)throw new I(403,{message:"System entities cannot be deleted"});return await e.env.data.resourceServers.remove(t,n),e.text("OK")}).openapi(o.createRoute({tags:["resource-servers"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:o.z.object(rl.shape).partial()}}},params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:resource_servers","auth:write"]}],responses:{200:{content:{"application/json":{schema:ri}},description:"The updated resource server"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=e.req.valid("json"),i=await e.env.data.resourceServers.get(t,n);if(!i)throw new I(404,{message:"Resource server not found"});if(i.is_system)throw new I(403,{message:"System entities cannot be modified"});await e.env.data.resourceServers.update(t,n,r);const s=await e.env.data.resourceServers.get(t,n);if(!s)throw new I(404,{message:"Resource server not found"});return e.json(s)}).openapi(o.createRoute({tags:["resource-servers"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:o.z.object(rl.shape)}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["create:resource_servers","auth:write"]}],responses:{201:{content:{"application/json":{schema:ri}},description:"A resource server"}}}),async e=>{const t=e.var.tenant_id,n=e.req.valid("json"),r=await e.env.data.resourceServers.create(t,n);return e.json(r,{status:201})}),Wj=o.z.object({per_page:o.z.string().min(1).optional().default("50").transform(e=>parseInt(e,10)).openapi({description:"Number of results per page. Defaults to 50."}),page:o.z.string().min(0).optional().default("0").transform(e=>parseInt(e,10)).openapi({description:"Page index of the results to return. First page is 0."}),include_totals:o.z.string().optional().default("false").transform(e=>e==="true").openapi({description:"Return results inside an object that contains the total result count (true) or as a direct array of results (false, default)."}),from:o.z.string().optional().openapi({description:"Optional Id from which to start selection."}),take:o.z.string().min(1).optional().transform(e=>e?parseInt(e,10):void 0).openapi({description:"Number of results per page. Defaults to 50."}),audience:o.z.string().optional().openapi({description:"Optional filter on audience."}),client_id:o.z.string().optional().openapi({description:"Optional filter on client_id."}),allow_any_organization:o.z.string().optional().transform(e=>e==="true"?!0:e==="false"?!1:void 0).openapi({description:"Optional filter on allow_any_organization."}),subject_type:o.z.enum(["client","user"]).optional().openapi({description:"EA 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."})}),Jj=jt.extend({client_grants:o.z.array(ni)}),Zj=new o.OpenAPIHono().openapi(o.createRoute({tags:["client-grants"],method:"get",path:"/",request:{query:Wj,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:client_grants","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(ni),Jj])}},description:"List of client grants"}}}),async e=>{const t=e.var.tenant_id,{page:n,per_page:r,include_totals:i=!1,from:s,take:a,audience:c,client_id:l,allow_any_organization:u,subject_type:d}=e.req.valid("query"),f=[];l&&f.push(`client_id:"${l}"`),c&&f.push(`audience:"${c}"`),u!==void 0&&f.push(`allow_any_organization:${u}`),d&&f.push(`subject_type:"${d}"`),s&&f.push(`id:>${s}`);const p=f.length>0?f.join(" AND "):void 0,h=a??r,_=await e.env.data.clientGrants.list(t,{page:n,per_page:h,include_totals:i,q:p});return i?e.json(_):e.json(_.client_grants)}).openapi(o.createRoute({tags:["client-grants"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:client_grants","auth:read"]}],responses:{200:{content:{"application/json":{schema:ni}},description:"A client grant"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=await e.env.data.clientGrants.get(t,n);if(!r)throw new I(404,{message:"Client grant not found"});return e.json(r)}).openapi(o.createRoute({tags:["client-grants"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:client_grants","auth:write"]}],responses:{200:{description:"Status"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param");if(!await e.env.data.clientGrants.remove(t,n))throw new I(404,{message:"Client grant not found"});return e.text("OK")}).openapi(o.createRoute({tags:["client-grants"],method:"patch",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),body:{content:{"application/json":{schema:o.z.object(Yc.shape).partial()}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:client_grants","auth:write"]}],responses:{200:{content:{"application/json":{schema:ni}},description:"The updated client grant"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=e.req.valid("json");if(!await e.env.data.clientGrants.get(t,n))throw new I(404,{message:"Client grant not found"});if(!await e.env.data.clientGrants.update(t,n,r))throw new I(500,{message:"Failed to update client grant"});const a=await e.env.data.clientGrants.get(t,n);if(!a)throw new I(404,{message:"Client grant not found"});return e.json(a)}).openapi(o.createRoute({tags:["client-grants"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:o.z.object(Yc.shape)}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["create:client_grants","auth:write"]}],responses:{201:{content:{"application/json":{schema:ni}},description:"A client grant"}}}),async e=>{const t=e.var.tenant_id,n=e.req.valid("json"),r=await e.env.data.clientGrants.create(t,n);return e.json(r,{status:201})}),Xj=o.z.object({page:o.z.string().optional().default("0").transform(e=>parseInt(e,10)).openapi({description:"Page index of the results to return. First page is 0."}),per_page:o.z.string().optional().default("50").transform(e=>parseInt(e,10)).openapi({description:"Number of results per page. Defaults to 50."}),include_totals:o.z.string().optional().default("false").transform(e=>e==="true").openapi({description:"When true, return results inside an object that also contains the start and limit. When false (default), a direct array of results is returned."}),fields:o.z.string().optional().openapi({description:"Comma-separated list of fields to include or exclude (based on value provided for include_fields) in the result. Leave empty to retrieve all fields."}),include_fields:o.z.string().optional().default("true").transform(e=>e==="true").openapi({description:"Whether specified fields are to be included (true) or excluded (false). Defaults to true."}),sort:o.z.string().optional().default("created_at:-1").openapi({description:"Field to sort by. Use field:order where order is 1 for ascending and -1 for descending. Defaults to created_at:-1."})}),Yj=o.z.object({invitations:o.z.array(Ds),start:o.z.number(),limit:o.z.number(),length:o.z.number()}),Qj=bh.omit({organization_id:!0,invitation_url:!0}),eN=jt.extend({organizations:o.z.array(mr)}),N_=o.z.object({user_id:o.z.string().openapi({description:"ID of this user"}),email:o.z.string().email().optional().openapi({description:"Email address of this user",format:"email"}),roles:o.z.array(o.z.object({})).default([]).openapi({description:"Array of roles assigned to this user in the organization"})}),tN=o.z.object({start:o.z.number().openapi({description:"Start index of the current page"}),limit:o.z.number().openapi({description:"Number of items per page"}),total:o.z.number().openapi({description:"Total number of members"}),members:o.z.array(N_).openapi({description:"Array of organization members"})}),nN=o.z.object({next:o.z.string().optional().openapi({description:"Checkpoint ID to be used to retrieve the next set of results"}),members:o.z.array(N_).openapi({description:"Array of organization members"})}),rN=o.z.object({members:o.z.array(o.z.string()).openapi({description:"Array of user IDs to add to the organization"})}),iN=o.z.object({members:o.z.array(o.z.string()).openapi({description:"Array of user IDs to remove from the organization"})}),oN=new o.OpenAPIHono().openapi(o.createRoute({tags:["organizations"],method:"get",path:"/",request:{query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:organizations","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([eN,o.z.array(mr)])}},description:"List of organizations"}}}),async e=>{const t=e.var.tenant_id,{page:n,per_page:r,include_totals:i,sort:s,q:a,from:c,take:l}=e.req.valid("query"),u=await e.env.data.organizations.list(t,{page:n,per_page:r,include_totals:i,sort:ht(s),q:a,from:c,take:l});return i?e.json(u):e.json(u.organizations)}).openapi(o.createRoute({tags:["organizations"],method:"get",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:organizations","auth:read"]}],responses:{200:{content:{"application/json":{schema:mr}},description:"An organization"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=await e.env.data.organizations.get(t,n);if(!r)throw new I(404,{message:"Organization not found"});return e.json(r)}).openapi(o.createRoute({tags:["organizations"],method:"delete",path:"/{id}",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["delete:organizations","auth:write"]}],responses:{200:{description:"Organization deleted successfully"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param");if(!await e.env.data.organizations.remove(t,n))throw new I(404,{message:"Organization not found"});return e.text("OK")}).openapi(o.createRoute({tags:["organizations"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:sl.partial()}}},params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:organizations","auth:write"]}],responses:{200:{content:{"application/json":{schema:mr}},description:"The updated organization"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=e.req.valid("json");if(!await e.env.data.organizations.update(t,n,r))throw new I(404,{message:"Organization not found"});const s=await e.env.data.organizations.get(t,n);if(!s)throw new I(404,{message:"Organization not found"});return e.json(s)}).openapi(o.createRoute({tags:["organizations"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:sl}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["create:organizations","auth:write"]}],responses:{201:{content:{"application/json":{schema:mr}},description:"The created organization"}}}),async e=>{const t=e.var.tenant_id,n=e.req.valid("json"),r={...n,id:n.id||VI()},i=await e.env.data.organizations.create(t,r);return e.json(i,{status:201})}).openapi(o.createRoute({tags:["organizations"],method:"get",path:"/{id}/members",request:{params:o.z.object({id:o.z.string()}),query:ot,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:organizations","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(N_),tN,nN])}},description:"List of organization members"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),{page:r,per_page:i,include_totals:s,sort:a}=e.req.valid("query");if(!await e.env.data.organizations.get(t,n))throw new I(404,{message:"Organization not found"});const l=await e.env.data.userOrganizations.list(t,{page:r,per_page:i,include_totals:s,sort:ht(a),q:`organization_id:${n}`}),u=[];for(const d of l.userOrganizations){const f=await e.env.data.users.get(t,d.user_id);f&&u.push({user_id:f.user_id,email:f.email||void 0,roles:[]})}return s?e.json({start:l.start,limit:l.limit,total:l.length,members:u}):e.json(u)}).openapi(o.createRoute({tags:["organizations"],method:"post",path:"/{id}/members",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:rN}}}},security:[{Bearer:["update:organizations","auth:write"]}],responses:{204:{description:"Members added successfully"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),{members:r}=e.req.valid("json");if(!await e.env.data.organizations.get(t,n))throw new I(404,{message:"Organization not found"});for(const s of r)(await e.env.data.userOrganizations.list(t,{q:`user_id:${s}`,per_page:1})).userOrganizations.some(l=>l.organization_id===n)||await e.env.data.userOrganizations.create(t,{user_id:s,organization_id:n});return new Response(null,{status:204})}).openapi(o.createRoute({tags:["organizations"],method:"delete",path:"/{id}/members",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:iN}}}},security:[{Bearer:["update:organizations","auth:write"]}],responses:{200:{description:"Members removed successfully"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),{members:r}=e.req.valid("json");for(const i of r){const a=(await e.env.data.userOrganizations.list(t,{q:`user_id:${i}`,per_page:100})).userOrganizations.find(c=>c.organization_id===n);a&&await e.env.data.userOrganizations.remove(t,a.id)}return e.json({message:"Members removed successfully"})}).openapi(o.createRoute({tags:["organizations"],method:"get",path:"/{id}/members/{user_id}/roles",request:{params:o.z.object({id:o.z.string(),user_id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),query:ot},security:[{Bearer:["read:organizations","auth:read"]}],responses:{200:{content:{"application/json":{schema:ol}},description:"User roles in organization"}}}),async e=>{const t=e.var.tenant_id,{id:n,user_id:r}=e.req.valid("param");if(!await e.env.data.organizations.get(t,n))throw new I(404,{message:"Organization not found"});if(!await e.env.data.users.get(t,r))throw new I(404,{message:"User not found"});const a=await e.env.data.userRoles.list(t,r,void 0,n);return e.json(a)}).openapi(o.createRoute({tags:["organizations"],method:"post",path:"/{id}/members/{user_id}/roles",request:{params:o.z.object({id:o.z.string(),user_id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:o.z.object({roles:o.z.array(o.z.string()).openapi({description:"List of role IDs to associate with the user"})})}}}},security:[{Bearer:["update:organizations","auth:write"]}],responses:{201:{description:"Roles assigned successfully"}}}),async e=>{const t=e.var.tenant_id,{id:n,user_id:r}=e.req.valid("param"),{roles:i}=e.req.valid("json");if(!await e.env.data.organizations.get(t,n))throw new I(404,{message:"Organization not found"});if(!await e.env.data.users.get(t,r))throw new I(404,{message:"User not found"});for(const c of i){if(!await e.env.data.roles.get(t,c))throw new I(400,{message:`Role ${c} not found`});if(!await e.env.data.userRoles.create(t,r,c,n))throw new I(500,{message:`Failed to assign role ${c} to user`})}return e.json({message:"Roles assigned successfully"},{status:201})}).openapi(o.createRoute({tags:["organizations"],method:"delete",path:"/{id}/members/{user_id}/roles",request:{params:o.z.object({id:o.z.string(),user_id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:o.z.object({roles:o.z.array(o.z.string()).openapi({description:"List of role IDs to remove from the user"})})}}}},security:[{Bearer:["update:organizations","auth:write"]}],responses:{200:{description:"Roles removed successfully"}}}),async e=>{const t=e.var.tenant_id,{id:n,user_id:r}=e.req.valid("param"),{roles:i}=e.req.valid("json");if(!await e.env.data.organizations.get(t,n))throw new I(404,{message:"Organization not found"});if(!await e.env.data.users.get(t,r))throw new I(404,{message:"User not found"});for(const c of i)if(!await e.env.data.userRoles.remove(t,r,c,n))throw new I(500,{message:`Failed to remove role ${c} from user`});return e.json({message:"Roles removed successfully"})}).openapi(o.createRoute({tags:["organizations"],method:"get",path:"/{id}/roles",request:{params:o.z.object({id:o.z.string()}),headers:o.z.object({"tenant-id":o.z.string().optional()}),query:ot},security:[{Bearer:["read:organizations","auth:read"]}],responses:{200:{content:{"application/json":{schema:ol}},description:"List of roles available in organization"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),{page:r,per_page:i,sort:s,q:a}=e.req.valid("query");if(!await e.env.data.organizations.get(t,n))throw new I(404,{message:"Organization not found"});const l=await e.env.data.roles.list(t,{page:r,per_page:i,sort:ht(s),q:a});return e.json(l.roles)}).openapi(o.createRoute({tags:["organizations"],method:"get",path:"/{id}/invitations",request:{params:o.z.object({id:o.z.string().openapi({description:"Organization ID",param:{name:"id",in:"path"}})}),query:Xj,headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:organizations","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.union([o.z.array(Ds),Yj])}},description:"List of organization invitations"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),{page:r,per_page:i,include_totals:s,fields:a,include_fields:c,sort:l}=e.req.valid("query");if(!await e.env.data.organizations.get(t,n))throw new I(404,{message:"Organization not found"});let f=(await e.env.data.invites.list(t,{page:r,per_page:i})).invites.filter(p=>p.organization_id===n);if(l){const p=ht(l);if(p){const{sort_by:h,sort_order:_}=p;f.sort((g,y)=>{const m=g[h],w=y[h];if(m===void 0||w===void 0||m===w)return 0;const k=m<w?-1:1;return _==="asc"?k:-k})}}if(a){const p=a.split(",").map(h=>h.trim());f=f.map(h=>{const _={};for(const g of Object.keys(h))(c?p.includes(g):!p.includes(g))&&(_[g]=h[g]);return _})}return s?e.json({invitations:f,start:r*i,limit:i,length:f.length}):e.json(f)}).openapi(o.createRoute({tags:["organizations"],method:"get",path:"/{id}/invitations/{invitation_id}",request:{params:o.z.object({id:o.z.string().openapi({description:"Organization ID",param:{name:"id",in:"path"}}),invitation_id:o.z.string().openapi({description:"Invitation ID",param:{name:"invitation_id",in:"path"}})}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:organizations","auth:read"]}],responses:{200:{content:{"application/json":{schema:Ds}},description:"An invitation"},404:{description:"Invitation not found"}}}),async e=>{const t=e.var.tenant_id,{id:n,invitation_id:r}=e.req.valid("param"),i=await e.env.data.invites.get(t,r);if(!i||i.organization_id!==n)throw new I(404,{message:"Invitation not found"});return e.json(i)}).openapi(o.createRoute({tags:["organizations"],method:"post",path:"/{id}/invitations",request:{params:o.z.object({id:o.z.string().openapi({description:"Organization ID",param:{name:"id",in:"path"}})}),body:{content:{"application/json":{schema:Qj}}},headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:organizations","auth:write"]}],responses:{201:{content:{"application/json":{schema:Ds}},description:"The created invitation"}}}),async e=>{const t=e.var.tenant_id,{id:n}=e.req.valid("param"),r=e.req.valid("json");if(!await e.env.data.organizations.get(t,n))throw new I(404,{message:"Organization not found"});const a=`https://invite.placeholder/${WI()}`,c={...r,organization_id:n,invitation_url:a},l=await e.env.data.invites.create(t,c);return e.json(l,{status:201})}).openapi(o.createRoute({tags:["organizations"],method:"delete",path:"/{id}/invitations/{invitation_id}",request:{params:o.z.object({id:o.z.string().openapi({description:"Organization ID",param:{name:"id",in:"path"}}),invitation_id:o.z.string().openapi({description:"Invitation ID",param:{name:"invitation_id",in:"path"}})}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["update:organizations","auth:write"]}],responses:{204:{description:"Invitation deleted successfully"},404:{description:"Invitation not found"}}}),async e=>{const t=e.var.tenant_id,{id:n,invitation_id:r}=e.req.valid("param"),i=await e.env.data.invites.get(t,r);if(!i||i.organization_id!==n)throw new I(404,{message:"Invitation not found"});if(!await e.env.data.invites.remove(t,r))throw new I(404,{message:"Invitation not found"});return e.body(null,{status:204})}),sN=new o.OpenAPIHono().openapi(o.createRoute({tags:["stats"],method:"get",path:"/daily",request:{query:o.z.object({from:o.z.string().optional().openapi({description:"Optional first day of the date range (inclusive) in YYYYMMDD format",example:"20251120"}),to:o.z.string().optional().openapi({description:"Optional last day of the date range (inclusive) in YYYYMMDD format",example:"20251219"})}),headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:stats","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.array(Nw)}},description:"Daily statistics including logins, signups, and leaked passwords"}}}),async e=>{const{from:t,to:n}=e.req.valid("query");if(!e.env.data.stats)throw new I(501,{message:"Stats adapter not configured"});const r=await e.env.data.stats.getDaily(e.var.tenant_id,{from:t,to:n});return e.json(r)}).openapi(o.createRoute({tags:["stats"],method:"get",path:"/active-users",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:stats","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.number().openapi({description:"Number of active users in the last 30 days",example:1234})}},description:"Number of active users in the last 30 days"}}}),async e=>{if(!e.env.data.stats)throw new I(501,{message:"Stats adapter not configured"});const t=await e.env.data.stats.getActiveUsers(e.var.tenant_id);return e.json(t)}),Dc=["sms","otp","email","push-notification","webauthn-roaming","webauthn-platform","recovery-code","duo"];function cp(e){return e.replace(/-/g,"_")}const V0=o.z.object({name:o.z.enum(Dc),enabled:o.z.boolean(),trial_expired:o.z.boolean().optional()}),aN=o.z.array(V0),cN=o.z.object({enabled:o.z.boolean()}),lp=o.z.object({provider:o.z.enum(["twilio","vonage","aws_sns","phone_message_hook"])}),up=o.z.object({sid:o.z.string().optional(),auth_token:o.z.string().optional(),from:o.z.string().optional(),messaging_service_sid:o.z.string().optional()}),lN=o.z.object({message_type:o.z.enum(["sms","voice"])}),uN=new o.OpenAPIHono().openapi(o.createRoute({tags:["guardian"],method:"get",path:"/factors",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:guardian_factors","auth:read"]}],responses:{200:{content:{"application/json":{schema:aN}},description:"List of MFA factors"}}}),async e=>{const n=(await e.env.data.tenants.get(e.var.tenant_id))?.mfa?.factors,r=Dc.map(i=>{const s=cp(i);return{name:i,enabled:!!n?.[s],trial_expired:!1}});return e.json(r)}).openapi(o.createRoute({tags:["guardian"],method:"get",path:"/factors/sms/selected-provider",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:guardian_factors","auth:read"]}],responses:{200:{content:{"application/json":{schema:lp}},description:"Selected SMS provider"}}}),async e=>{const n=(await e.env.data.tenants.get(e.var.tenant_id))?.mfa?.sms_provider?.provider||"twilio";return e.json({provider:n})}).openapi(o.createRoute({tags:["guardian"],method:"put",path:"/factors/sms/selected-provider",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:lp}}}},security:[{Bearer:["update:guardian_factors","auth:write"]}],responses:{200:{content:{"application/json":{schema:lp}},description:"Updated SMS provider selection"}}}),async e=>{const{provider:t}=e.req.valid("json"),n=await e.env.data.tenants.get(e.var.tenant_id);if(!n)throw new I(404,{message:"Tenant not found"});return await e.env.data.tenants.update(e.var.tenant_id,{mfa:{...n.mfa,sms_provider:{provider:t}}}),e.json({provider:t})}).openapi(o.createRoute({tags:["guardian"],method:"get",path:"/factors/sms/providers/twilio",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:guardian_factors","auth:read"]}],responses:{200:{content:{"application/json":{schema:up}},description:"Twilio provider configuration"}}}),async e=>{const n=(await e.env.data.tenants.get(e.var.tenant_id))?.mfa?.twilio||{};return e.json({sid:n.sid,auth_token:n.auth_token?"********":void 0,from:n.from,messaging_service_sid:n.messaging_service_sid})}).openapi(o.createRoute({tags:["guardian"],method:"put",path:"/factors/sms/providers/twilio",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),body:{content:{"application/json":{schema:up}}}},security:[{Bearer:["update:guardian_factors","auth:write"]}],responses:{200:{content:{"application/json":{schema:up}},description:"Updated Twilio configuration"}}}),async e=>{const t=e.req.valid("json"),n=await e.env.data.tenants.get(e.var.tenant_id);if(!n)throw new I(404,{message:"Tenant not found"});const r=n.mfa?.twilio||{},i={...r,...t,auth_token:t.auth_token&&t.auth_token!=="********"?t.auth_token:r.auth_token};return await e.env.data.tenants.update(e.var.tenant_id,{mfa:{...n.mfa,twilio:i}}),e.json({sid:i.sid,auth_token:i.auth_token?"********":void 0,from:i.from,messaging_service_sid:i.messaging_service_sid})}).openapi(o.createRoute({tags:["guardian"],method:"get",path:"/factors/phone/message-types",request:{headers:o.z.object({"tenant-id":o.z.string().optional()})},security:[{Bearer:["read:guardian_factors","auth:read"]}],responses:{200:{content:{"application/json":{schema:o.z.array(lN)}},description:"Available message types"}}}),async e=>{const t=[{message_type:"sms"}];return e.json(t)}).openapi(o.createRoute({tags:["guardian"],method:"get",path:"/factors/{factor_name}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({factor_name:o.z.enum(Dc)})},security:[{Bearer:["read:guardian_factors","auth:read"]}],responses:{200:{content:{"application/json":{schema:V0}},description:"MFA factor details"}}}),async e=>{const{factor_name:t}=e.req.valid("param"),r=(await e.env.data.tenants.get(e.var.tenant_id))?.mfa?.factors,i=cp(t);return e.json({name:t,enabled:!!r?.[i],trial_expired:!1})}).openapi(o.createRoute({tags:["guardian"],method:"put",path:"/factors/{factor_name}",request:{headers:o.z.object({"tenant-id":o.z.string().optional()}),params:o.z.object({factor_name:o.z.enum(Dc)}),body:{content:{"application/json":{schema:cN}}}},security:[{Bearer:["update:guardian_factors","auth:write"]}],responses:{200:{content:{"application/json":{schema:V0}},description:"Updated MFA factor"}}}),async e=>{const{factor_name:t}=e.req.valid("param"),{enabled:n}=e.req.valid("json"),r=cp(t),i=await e.env.data.tenants.get(e.var.tenant_id);if(!i)throw new I(404,{message:"Tenant not found"});const s=i.mfa?.factors;return await e.env.data.tenants.update(e.var.tenant_id,{mfa:{...i.mfa,factors:{sms:s?.sms??!1,otp:s?.otp??!1,email:s?.email??!1,push_notification:s?.push_notification??!1,webauthn_roaming:s?.webauthn_roaming??!1,webauthn_platform:s?.webauthn_platform??!1,recovery_code:s?.recovery_code??!1,duo:s?.duo??!1,[r]:n}}}),e.json({name:t,enabled:n,trial_expired:!1})});function dN(e){const t=new o.OpenAPIHono,n=e.managementDataAdapter??e.dataAdapter;t.use(async(i,s)=>{const a=i.req.header("origin"),c=l=>{i.res.headers.set("Access-Control-Allow-Origin",l),i.res.headers.set("Access-Control-Allow-Headers","Tenant-Id, Content-Type, Content-Range, Auth0-Client, Authorization, Range, Upgrade-Insecure-Requests"),i.res.headers.set("Access-Control-Allow-Methods","POST, PUT, GET, DELETE, PATCH, OPTIONS"),i.res.headers.set("Access-Control-Expose-Headers","Content-Length, Content-Range"),i.res.headers.set("Access-Control-Max-Age","600"),i.res.headers.set("Access-Control-Allow-Credentials","true")};if(i.req.method==="OPTIONS"){const l=new Response(null,{status:204});if(a){if(e.allowedOrigins?.includes(a))return l.headers.set("Access-Control-Allow-Origin",a),l.headers.set("Access-Control-Allow-Headers","Tenant-Id, Content-Type, Content-Range, Auth0-Client, Authorization, Range, Upgrade-Insecure-Requests"),l.headers.set("Access-Control-Allow-Methods","POST, PUT, GET, DELETE, PATCH, OPTIONS"),l.headers.set("Access-Control-Expose-Headers","Content-Length, Content-Range"),l.headers.set("Access-Control-Max-Age","600"),l.headers.set("Access-Control-Allow-Credentials","true"),l;const u=i.req.header("tenant-id");if(u&&(await n.clients.list(u,{})).clients.flatMap(p=>p.web_origins||[]).includes(a))return l.headers.set("Access-Control-Allow-Origin",a),l.headers.set("Access-Control-Allow-Headers","Tenant-Id, Content-Type, Content-Range, Auth0-Client, Authorization, Range, Upgrade-Insecure-Requests"),l.headers.set("Access-Control-Allow-Methods","POST, PUT, GET, DELETE, PATCH, OPTIONS"),l.headers.set("Access-Control-Expose-Headers","Content-Length, Content-Range"),l.headers.set("Access-Control-Max-Age","600"),l.headers.set("Access-Control-Allow-Credentials","true"),l}return l}if(await s(),a){if(e.allowedOrigins?.includes(a)){c(a);return}const l=i.var.tenant_id||i.req.header("tenant-id");l&&(await n.clients.list(l,{})).clients.flatMap(f=>f.web_origins||[]).includes(a)&&c(a)}}),j_(t),t.use(async(i,s)=>{const a=Mo(i,n),c=is({defaultTtlSeconds:0,maxEntries:100,cleanupIntervalMs:0}),l=Qa(a,{defaultTtl:0,cacheEntities:["tenants","connections","clients","branding","themes","promptSettings","customText","forms","hooks"],cache:c});return i.env.data=Ya(i,l),i.env.entityHooks=e.entityHooks,s()}),t.use(rs).use(ns).use(kd(t)).use(async(i,s)=>(e.entityHooks&&i.var.tenant_id&&(i.env.data=Ok(i.env.data,{tenantId:i.var.tenant_id,entityHooks:e.entityHooks})),s()));const r=t.route("/branding",rz).route("/custom-domains",Tj).route("/email/providers",Ij).route("/users",O7).route("/keys",OI).route("/users-by-email",RI).route("/clients",UI).route("/client-grants",Zj).route("/tenants",BI).route("/logs",qI).route("/hooks",ZI).route("/connections",ej).route("/prompts",tj).route("/sessions",jj).route("/refresh_tokens",Nj).route("/forms",Mj).route("/flows",Fj).route("/roles",Vj).route("/resource-servers",Gj).route("/organizations",oN).route("/stats",sN).route("/guardian",uN);if(e.managementApiExtensions)for(const i of e.managementApiExtensions)r.route(i.path,i.router);return r.doc("/spec",{openapi:"3.0.0",info:{version:"1.0.0",title:"Management API"},servers:[{url:"/api/v2",description:"API V2"}],security:[{oauth2:["openid","email","profile"]}]}),r}var Rk=e=>{const n={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...e},r=(s=>typeof s=="string"?s==="*"?()=>s:a=>s===a?a:null:typeof s=="function"?s:a=>s.includes(a)?a:null)(n.origin),i=(s=>typeof s=="function"?s:Array.isArray(s)?()=>s:()=>[])(n.allowMethods);return async function(a,c){function l(d,f){a.res.headers.set(d,f)}const u=await r(a.req.header("origin")||"",a);if(u&&l("Access-Control-Allow-Origin",u),n.credentials&&l("Access-Control-Allow-Credentials","true"),n.exposeHeaders?.length&&l("Access-Control-Expose-Headers",n.exposeHeaders.join(",")),a.req.method==="OPTIONS"){n.origin!=="*"&&l("Vary","Origin"),n.maxAge!=null&&l("Access-Control-Max-Age",n.maxAge.toString());const d=await i(a.req.header("origin")||"",a);d.length&&l("Access-Control-Allow-Methods",d.join(","));let f=n.allowHeaders;if(!f?.length){const p=a.req.header("Access-Control-Request-Headers");p&&(f=p.split(/\s*,\s*/))}return f?.length&&(l("Access-Control-Allow-Headers",f.join(",")),a.res.headers.append("Vary","Access-Control-Request-Headers")),a.res.headers.delete("Content-Length"),a.res.headers.delete("Content-Type"),new Response(null,{headers:a.res.headers,status:204,statusText:"No Content"})}await c(),n.origin!=="*"&&a.header("Vary","Origin",{append:!0})}};function rr(e){if(e)return`${e.name}/${e.version}${e.env?.node?` (env: node/${e.env.node})`:""}`}function Vt(e,t){const n=e.var.tenant_id;if(!n){e.set("tenant_id",t);return}if(n!==t)throw new I(403,{message:"Tenant mismatch"})}async function Zy(e,t,n,r){if(!r.state)throw new W(400,{message:"State not found"});const i=t.connections.find(l=>l.name===n);if(!i)throw e.set("client_id",t.client_id),await fe(e,t.tenant.id,{type:pe.FAILED_LOGIN,description:"Connection not found"}),new W(403,{message:"Connection Not Found"});let s=await e.env.data.loginSessions.get(t.tenant.id,r.state);if(!s){const l=e.get("ip"),u=e.get("useragent"),d=e.get("auth0_client");s=await e.env.data.loginSessions.create(t.tenant.id,{expires_at:new Date(Date.now()+di*1e3).toISOString(),authParams:r,csrf_token:Oe(),ip:l,useragent:u,auth0Client:rr(d)})}const c=await B2(e,i.strategy).getRedirect(e,i);return await e.env.data.codes.create(t.tenant.id,{login_id:s.id,code_id:c.code,code_type:"oauth2_state",connection_id:i.id,code_verifier:c.codeVerifier,expires_at:new Date(Date.now()+Iz*1e3).toISOString()}),new Response(null,{status:302,headers:{location:c.redirectUrl}})}async function Xy(e,{code:t,state:n}){const{env:r}=e,i=await r.data.codes.get(e.var.tenant_id||"",n,"oauth2_state");if(!i||!i.connection_id)throw new W(403,{message:"State not found"});const s=await r.data.loginSessions.get(e.var.tenant_id||"",i.login_id);if(!s)throw new W(403,{message:"Session not found"});if(s.authorization_url){const _=new URL(s.authorization_url).hostname,g=e.var.host||"";if(_!==g&&_){const y=new URL(`https://${_}/callback`);return y.searchParams.set("state",n),y.searchParams.set("code",t),new Response("Redirecting",{status:307,headers:{location:y.toString()}})}}const a=await qe(r,s.authParams.client_id);e.set("client_id",a.client_id),Vt(e,a.tenant.id);const c=a.connections.find(_=>_.id===i.connection_id);if(!c)throw await fe(e,a.tenant.id,{type:pe.FAILED_LOGIN,description:"Connection not found"}),new W(403,{message:"Connection not found"});if(e.set("connection",c.name),!s.authParams.redirect_uri)throw await fe(e,a.tenant.id,{type:pe.FAILED_LOGIN,description:"Redirect URI not defined"}),new W(403,{message:"Redirect URI not defined"});const u=await B2(e,c.strategy).validateAuthorizationCodeAndGetUser(e,c,t,i.code_verifier),{sub:d,...f}=u;e.set("user_id",d);const p=u.email?.toLocaleLowerCase()||`${c.name}.${d}@${new URL(e.env.ISSUER).hostname}`;e.set("username",p);const h=await Eu(e,{client:a,username:p,provider:c.strategy,connection:c.name,userId:d,profileData:f,isSocial:!0,ip:e.var.ip});return gt(e,{client:a,authParams:s.authParams,loginSession:s,user:h,authStrategy:{strategy:c.strategy,strategy_type:"social"}})}async function yc(e,t,n,r,i){const s=await e.env.data.codes.get(e.var.tenant_id||"",t,"oauth2_state");if(!s)throw new I(400,{message:"State not found"});const a=await e.env.data.loginSessions.get(e.var.tenant_id,s.login_id);if(!a)throw new I(400,{message:"Login not found"});const{redirect_uri:c}=a.authParams;if(!c)throw new I(400,{message:"Redirect uri not found"});fe(e,e.var.tenant_id,{type:pe.FAILED_LOGIN,description:`Failed connection login: ${i} ${n}, ${r}`});let l="/u",u="/login/identifier";if(a.authParams.client_id)try{const f=await qe(e.env,a.authParams.client_id,e.var.tenant_id);if(f?.client_metadata?.universal_login_version==="2"){l="/u2";const p=await e.env.data.promptSettings.get(e.var.tenant_id),h=lo.parse(p||{}),_=f.connections.some(g=>g.strategy==="Username-Password-Authentication");h.identifier_first===!1&&_&&(u="/login")}}catch{}const d=new URL(`${l}${u}`,e.env.ISSUER);return DA(d,{state:a.id,error:n,error_description:r}),e.redirect(d.toString())}const pN=new o.OpenAPIHono().openapi(o.createRoute({tags:["oauth2"],method:"get",path:"/",request:{query:o.z.object({state:o.z.string(),code:o.z.string().optional(),scope:o.z.string().optional(),hd:o.z.string().optional(),error:o.z.string().optional(),error_description:o.z.string().optional(),error_code:o.z.string().optional(),error_reason:o.z.string().optional()})},responses:{302:{description:"Redirect to the client's redirect uri"},400:{description:"Bad Request",content:{"application/json":{schema:o.z.object({message:o.z.string()})}}},500:{description:"Internal Server Error",content:{"application/json":{schema:o.z.object({message:o.z.string()})}}}}}),async e=>{const{state:t,code:n,error:r,error_description:i,error_code:s}=e.req.valid("query");if(r)return yc(e,t,r,i,s);if(!n)throw new I(400,{message:"Code is required"});try{const a=await Xy(e,{code:n,state:t});if(!(a instanceof Response))throw new I(500,{message:"Internal server error"});return a}catch(a){if(a instanceof W&&a.status===400){const c=await e.env.data.codes.get(e.var.tenant_id||"",t,"oauth2_state");if(c&&await e.env.data.loginSessions.get(e.var.tenant_id,c.login_id)){let u="access_denied";try{u=JSON.parse(a.message).message||u}catch{u=a.message||u}return yc(e,t,"access_denied",u)}}throw a}}).openapi(o.createRoute({tags:["oauth2"],method:"post",path:"/",request:{body:{content:{"application/x-www-form-urlencoded":{schema:o.z.object({state:o.z.string(),code:o.z.string().optional(),scope:o.z.string().optional(),hd:o.z.string().optional(),error:o.z.string().optional(),error_description:o.z.string().optional(),error_code:o.z.string().optional(),error_reason:o.z.string().optional()})}}}},responses:{302:{description:"Redirect to the client's redirect uri"},400:{description:"Bad Request",content:{"application/json":{schema:o.z.object({message:o.z.string()})}}},500:{description:"Internal Server Error",content:{"application/json":{schema:o.z.object({message:o.z.string()})}}}}}),async e=>{const{state:t,code:n,error:r,error_description:i,error_code:s}=e.req.valid("form");if(r)return yc(e,t,r,i,s);if(!n)throw new I(400,{message:"Code is required"});try{const a=await Xy(e,{code:n,state:t});if(!(a instanceof Response))throw new I(500,{message:"Internal server error"});return a}catch(a){if(a instanceof W&&a.status===400){const c=await e.env.data.codes.get(e.var.tenant_id||"",t,"oauth2_state");if(c&&await e.env.data.loginSessions.get(e.var.tenant_id,c.login_id)){let u="access_denied";try{u=JSON.parse(a.message).message||u}catch{u=a.message||u}return yc(e,t,"access_denied",u)}}throw a}});function T_(e,t=[],n={}){try{const r=new URL(e);return t.some(i=>{try{return fN(r,new URL(i),n)}catch{return!1}})}catch{return!1}}function fN(e,t,n={}){if(e.protocol!==t.protocol)return!1;if(n.allowPathWildcards&&t.pathname.includes("*")){const r=t.pathname.replace(/\*/g,".*").replace(/\//g,"\\/");if(!new RegExp(`^${r}$`).test(e.pathname))return!1}else if(e.pathname!==t.pathname)return!1;if(n.allowSubDomainWildcards&&t.hostname.startsWith("*.")&&t.hostname.split(".").length>2&&["http:","https:"].includes(t.protocol)){const r=t.hostname.split(".").slice(1).join(".");return e.hostname===r||e.hostname.endsWith("."+r)}return e.hostname===t.hostname}const hN=new o.OpenAPIHono().openapi(o.createRoute({tags:["oauth2"],method:"get",path:"/",request:{query:o.z.object({client_id:o.z.string(),returnTo:o.z.string().optional()}),header:o.z.object({cookie:o.z.string().optional()})},responses:{302:{description:"Log the user out"}}}),async e=>{const{client_id:t,returnTo:n}=e.req.valid("query");let r;try{r=await qe(e.env,t)}catch{return e.text("OK")}let i;try{i=await qe(e.env,"DEFAULT_CLIENT")}catch{}e.set("client_id",t),Vt(e,r.tenant.id);const s=n||e.req.header("referer");if(!s)return e.text("OK");if(!T_(s,[...r.allowed_logout_urls||[],...i?.allowed_logout_urls||[]],{allowPathWildcards:!0,allowSubDomainWildcards:!0}))throw new I(400,{message:"Invalid redirect uri"});const a=e.req.header("cookie");if(a){const u=pi(r.tenant.id,a);if(u){const d=await e.env.data.sessions.get(r.tenant.id,u);if(d){const f=await e.env.data.users.get(r.tenant.id,d.user_id);if(f&&(e.set("user_id",f.user_id),e.set("connection",f.connection)),d.login_session_id){const p=await e.env.data.refreshTokens.list(r.tenant.id,{q:`login_id=${d.login_session_id}`,page:0,per_page:100,include_totals:!1});await Promise.all(p.refresh_tokens.map(h=>e.env.data.refreshTokens.remove(r.tenant.id,h.id)))}await e.env.data.sessions.update(r.tenant.id,u,{revoked_at:new Date().toISOString()})}}}fe(e,r.tenant.id,{type:pe.SUCCESS_LOGOUT,description:"User successfully logged out"});const c=new Headers;return Fw(r.tenant.id,e.var.custom_domain||e.req.header("host")).forEach(u=>{c.append("set-cookie",u)}),c.set("location",s),new Response("Redirecting",{status:302,headers:c})}),_N=o.z.object({formatted:o.z.string().optional(),street_address:o.z.string().optional(),locality:o.z.string().optional(),region:o.z.string().optional(),postal_code:o.z.string().optional(),country:o.z.string().optional()}).optional(),Yy=o.z.object({sub:o.z.string(),email:o.z.string().optional(),email_verified:o.z.boolean().optional(),phone_number:o.z.string().optional(),phone_number_verified:o.z.boolean().optional(),name:o.z.string().optional(),family_name:o.z.string().optional(),given_name:o.z.string().optional(),middle_name:o.z.string().optional(),nickname:o.z.string().optional(),preferred_username:o.z.string().optional(),profile:o.z.string().optional(),picture:o.z.string().optional(),website:o.z.string().optional(),gender:o.z.string().optional(),birthdate:o.z.string().optional(),zoneinfo:o.z.string().optional(),locale:o.z.string().optional(),updated_at:o.z.number().optional(),address:_N});function Qy(e,t){const n={sub:e.user_id};if(t.includes("email")&&(e.email&&(n.email=e.email),e.email_verified!==void 0&&(n.email_verified=e.email_verified)),t.includes("profile")){e.name&&(n.name=e.name),e.family_name&&(n.family_name=e.family_name),e.given_name&&(n.given_name=e.given_name),e.middle_name&&(n.middle_name=e.middle_name),e.nickname&&(n.nickname=e.nickname);const r=e.preferred_username||e.username;r&&(n.preferred_username=r),e.profile&&(n.profile=e.profile),e.picture&&(n.picture=e.picture),e.website&&(n.website=e.website),e.gender&&(n.gender=e.gender),e.birthdate&&(n.birthdate=e.birthdate),e.zoneinfo&&(n.zoneinfo=e.zoneinfo),e.locale&&(n.locale=e.locale),e.updated_at&&(n.updated_at=Math.floor(new Date(e.updated_at).getTime()/1e3))}return t.includes("address")&&e.address&&(n.address=e.address),t.includes("phone")&&(e.phone_number&&(n.phone_number=e.phone_number),e.phone_verified!==void 0&&(n.phone_number_verified=e.phone_verified)),n}const mN=o.z.object({access_token:o.z.string().optional()}),gN=new o.OpenAPIHono().openapi(o.createRoute({tags:["oauth2"],method:"get",path:"/",request:{},security:[{Bearer:["openid"]}],responses:{200:{content:{"application/json":{schema:Yy}},description:"Userinfo"}}}),async e=>{if(!e.var.user)throw new I(404,{message:"User not found"});const t=e.var.user.tenant_id||e.var.tenant_id;if(!t)throw new I(400,{message:"Unable to determine tenant"});const n=await e.env.data.users.get(t,e.var.user.sub);if(!n)throw new I(404,{message:"User not found"});const i=e.var.user?.scope?.split(" ")||[],s=Qy(n,i),a=e.env.hooks?.onFetchUserInfo;if(a){const c={};return await a({ctx:e,user:n,tenant_id:t,scopes:i},{setCustomClaim:(l,u)=>{c[l]=u}}),e.json({...s,...c})}return e.json(s)}).openapi(o.createRoute({tags:["oauth2"],method:"post",path:"/",request:{body:{content:{"application/x-www-form-urlencoded":{schema:mN}}}},responses:{200:{content:{"application/json":{schema:Yy}},description:"Userinfo"}}}),async e=>{let t=null;if(e.var.user&&(t=e.var.user),!t){const c=e.req.header("authorization")||"",[l,u]=c.split(" ");if(l?.toLowerCase()==="bearer"&&u){if(t=await H0(e,u),!(t?.scope?.split(" ")||[]).includes("openid"))throw new W(403,{message:"openid scope required"});e.set("user",t)}}if(!t)try{const c=await e.req.parseBody(),l=typeof c.access_token=="string"?c.access_token:void 0;if(l){if(t=await H0(e,l),!(t?.scope?.split(" ")||[]).includes("openid"))throw new W(403,{message:"openid scope required"});e.set("user",t)}}catch(c){if(c instanceof I||c instanceof W)throw c}if(!t)throw new I(401,{message:"No access token provided"});const n=t.tenant_id||e.var.tenant_id;if(!n)throw new I(400,{message:"Unable to determine tenant"});const r=await e.env.data.users.get(n,t.sub);if(!r)throw new I(404,{message:"User not found"});const i=t?.scope?.split(" ")||[],s=Qy(r,i),a=e.env.hooks?.onFetchUserInfo;if(a){const c={};return await a({ctx:e,user:r,tenant_id:n,scopes:i},{setCustomClaim:(l,u)=>{c[l]=u}}),e.json({...s,...c})}return e.json(s)}),yN=new o.OpenAPIHono().openapi(o.createRoute({tags:["well known"],method:"get",path:"/jwks.json",request:{},responses:{200:{content:{"application/json":{schema:nw}},description:"List of tenants"}}}),async e=>{const t=await Lc(e.env.data);return e.json({keys:t},{headers:{"access-control-allow-origin":"*","access-control-allow-method":"GET","cache-control":`public, max-age=${uc}, stale-while-revalidate=${uc*2}, stale-if-error=86400`}})}).openapi(o.createRoute({tags:["well known"],method:"get",path:"/openid-configuration",request:{},responses:{200:{content:{"application/json":{schema:cf}},description:"List of tenants"}}}),async e=>{const t=cf.parse({issuer:ku(e.env),authorization_endpoint:`${Le(e.env)}authorize`,token_endpoint:`${Le(e.env)}oauth/token`,device_authorization_endpoint:`${Le(e.env)}oauth/device/code`,userinfo_endpoint:`${Le(e.env)}userinfo`,mfa_challenge_endpoint:`${Le(e.env)}mfa/challenge`,jwks_uri:`${Le(e.env)}.well-known/jwks.json`,registration_endpoint:`${Le(e.env)}oidc/register`,revocation_endpoint:`${Le(e.env)}oauth/revoke`,scopes_supported:["openid","profile","offline_access","name","given_name","family_name","nickname","email","email_verified","picture","created_at","identities","phone","address"],response_types_supported:["code","token","id_token","code token","code id_token","token id_token","code token id_token"],code_challenge_methods_supported:["S256","plain"],response_modes_supported:["query","fragment","form_post"],subject_types_supported:["public"],id_token_signing_alg_values_supported:["RS256"],token_endpoint_auth_methods_supported:["client_secret_basic","client_secret_post"],claims_supported:["aud","auth_time","created_at","email","email_verified","exp","family_name","given_name","iat","identities","iss","name","nickname","phone_number","picture","sub"],request_uri_parameter_supported:!1,request_parameter_supported:!1,token_endpoint_auth_signing_alg_values_supported:["RS256","RS384","PS256"]});return e.json(t,{headers:{"access-control-allow-origin":"*","access-control-allow-method":"GET","cache-control":`public, max-age=${uc}, stale-while-revalidate=${uc*2}, stale-if-error=86400`}})}).get("/*",async e=>{const t=e.var.custom_domain||e.req.header("x-forwarded-host");if(!t)return e.text("Not Found",404);const n=await e.env.data.customDomains.getByDomain(t);if(!n)return e.text("Not Found",404);const r=await e.env.data.customDomains.get(n.tenant_id,n.custom_domain_id);if(!r?.verification?.methods)return e.text("Not Found",404);const i=new URL(e.req.url).pathname,s=r.verification.methods.find(a=>a.name==="http"&&new URL(a.http_url).pathname===i);return!s||s.name!=="http"?e.text("Not Found",404):e.text(s.http_body,200,{"content-type":"text/plain"})});function Js(e,t){if(!e||!t||e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e.charCodeAt(r)^t.charCodeAt(r);return n===0}const Lk=o.z.object({grant_type:o.z.literal("client_credentials"),scope:o.z.string().optional(),client_secret:o.z.string(),client_id:o.z.string(),audience:o.z.string().optional(),organization:o.z.string().optional()});async function bN(e,t){const n=await qe(e.env,t.client_id,e.var.tenant_id);if(n.client_secret&&!Js(n.client_secret,t.client_secret))throw new W(403,{message:"Invalid client credentials"});let r;if(t.organization){const s=await e.env.data.organizations.get(n.tenant.id,t.organization);if(!s)throw new W(400,{error:"invalid_request",error_description:`Organization '${t.organization}' not found`});r={id:s.id,name:s.name}}const i={client_id:n.client_id,scope:t.scope,audience:t.audience||n.tenant.default_audience,organization:t.organization};return{client:n,authParams:i,organization:r}}const vN=o.z.object({grant_type:o.z.literal("authorization_code"),client_id:o.z.string(),code:o.z.string(),redirect_uri:o.z.string().optional(),client_secret:o.z.string().optional(),code_verifier:o.z.string().optional(),organization:o.z.string().optional()}).refine(e=>"client_secret"in e&&!("code_verifier"in e)||!("client_secret"in e)&&"code_verifier"in e,{message:"Must provide either client_secret (standard flow) or code_verifier/code_verifier_mode (PKCE flow), but not both"});async function wN(e,t){const n=await qe(e.env,t.client_id,e.var.tenant_id),r=await e.env.data.codes.get(n.tenant.id,t.code,"authorization_code");if(!r||!r.user_id)throw fe(e,n.tenant.id,{type:pe.FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,description:"Invalid client credentials"}),new W(403,{message:"Invalid client credentials"});if(new Date(r.expires_at)<new Date)throw fe(e,n.tenant.id,{type:pe.FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,description:"Code expired",userId:r.user_id}),new W(403,{message:"Code expired"});if(r.used_at)throw fe(e,n.tenant.id,{type:pe.FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,description:"Invalid authorization code",userId:r.user_id}),new W(400,{error:"invalid_grant",error_description:"Invalid authorization code"});const i=await e.env.data.loginSessions.get(n.tenant.id,r.login_id);if(!i)throw new W(403,{message:"Invalid login"});if(t.organization&&i.authParams.organization&&t.organization!==i.authParams.organization)throw new W(400,{error:"invalid_request",error_description:"Organization parameter does not match login session organization"});if("client_secret"in t){let u;try{u=await qe(e.env,"DEFAULT_CLIENT")}catch{}if(!Js(n.client_secret,t.client_secret)&&!Js(u?.client_secret,t.client_secret))throw fe(e,n.tenant.id,{type:pe.FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,description:"Invalid client credentials",userId:r.user_id}),new W(403,{message:"Invalid client credentials"})}else if(r.code_challenge&&r.code_challenge_method&&t.code_verifier){const u=await Az(t.code_verifier,r.code_challenge_method);if(!Js(u,r.code_challenge))throw fe(e,n.tenant.id,{type:pe.FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,description:"Invalid client credentials",userId:r.user_id}),new W(403,{message:"Invalid client credentials"})}if(r.redirect_uri&&r.redirect_uri!==t.redirect_uri)throw fe(e,n.tenant.id,{type:pe.FAILED_EXCHANGE_AUTHORIZATION_CODE_FOR_ACCESS_TOKEN,description:"Invalid redirect uri",userId:r.user_id}),new W(403,{message:"Invalid redirect uri"});const s=await e.env.data.users.get(n.tenant.id,r.user_id);if(!s)throw new W(403,{message:"User not found"});await e.env.data.codes.used(n.tenant.id,t.code);let a;i.session_id&&i.authParams.scope?.split(" ").includes("offline_access")&&(a=await v2(e,{user:s,client:n,login_id:i.id,scope:i.authParams.scope,audience:i.authParams.audience}));let c;if(i.authParams.organization){const u=await e.env.data.organizations.get(n.tenant.id,i.authParams.organization);u?c={id:u.id,name:u.name}:c={id:i.authParams.organization,name:"Unknown"}}let l;if(i.authParams.max_age!==void 0&&i.session_id){const u=await e.env.data.sessions.get(n.tenant.id,i.session_id);u?.authenticated_at&&(l=Math.floor(new Date(u.authenticated_at).getTime()/1e3))}return{user:s,client:n,loginSession:i,session_id:i.session_id,refresh_token:a?.id,organization:c,auth_time:l,authParams:{...i.authParams,state:r.state,nonce:r.nonce,response_mode:pn.WEB_MESSAGE,client_id:n.client_id,scope:i.authParams.scope,audience:i.authParams.audience}}}function eb(e,t){const n=e.var.log;n?e.set("log",`${n}
|
|
82
82
|
${t}`):e.set("log",t)}const kN=o.z.object({grant_type:o.z.literal("refresh_token"),client_id:o.z.string(),redirect_uri:o.z.string().optional(),refresh_token:o.z.string(),client_secret:o.z.string().optional()});async function $N(e,t){const n=await qe(e.env,t.client_id,e.var.tenant_id);if(t.client_secret&&n.client_secret&&!Js(n.client_secret,t.client_secret))throw new W(403,{error:"invalid_client",error_description:"Client authentication failed"});const r=await e.env.data.refreshTokens.get(n.tenant.id,t.refresh_token);if(r){if(r.expires_at&&new Date(r.expires_at)<new Date||r.idle_expires_at&&new Date(r.idle_expires_at)<new Date)throw eb(e,`Refresh token has expired: ${t.refresh_token}`),new W(400,{error:"invalid_grant",error_description:"Refresh token has expired"})}else throw eb(e,`Invalid refresh token: ${t.refresh_token}`),new W(400,{error:"invalid_grant",error_description:"Invalid refresh token"});const i=await e.env.data.users.get(n.tenant.id,r.user_id);if(!i)throw new W(403,{message:"User not found"});e.set("user_id",i.user_id);const s=r.resource_servers[0];let a;if(r.login_id&&(a=(await e.env.data.loginSessions.get(n.tenant.id,r.login_id))?.session_id),r.idle_expires_at){const c=new Date(Date.now()+2592e6);await e.env.data.refreshTokens.update(n.tenant.id,r.id,{idle_expires_at:c.toISOString(),last_exchanged_at:new Date().toISOString(),device:{...r.device,last_ip:e.req.header["x-real-ip"]||"",last_user_agent:e.req.header["user-agent"]||""}}),r.login_id&&await e.env.data.loginSessions.update(n.tenant.id,r.login_id,{expires_at:c.toISOString()})}return{user:i,client:n,refresh_token:r.id,session_id:a,login_id:r.login_id,authParams:{client_id:n.client_id,audience:s?.audience,scope:s?.scopes,response_mode:pn.WEB_MESSAGE}}}const SN={version:4,country_calling_codes:{1:["US","AG","AI","AS","BB","BM","BS","CA","DM","DO","GD","GU","JM","KN","KY","LC","MP","MS","PR","SX","TC","TT","VC","VG","VI"],7:["RU","KZ"],20:["EG"],27:["ZA"],30:["GR"],31:["NL"],32:["BE"],33:["FR"],34:["ES"],36:["HU"],39:["IT","VA"],40:["RO"],41:["CH"],43:["AT"],44:["GB","GG","IM","JE"],45:["DK"],46:["SE"],47:["NO","SJ"],48:["PL"],49:["DE"],51:["PE"],52:["MX"],53:["CU"],54:["AR"],55:["BR"],56:["CL"],57:["CO"],58:["VE"],60:["MY"],61:["AU","CC","CX"],62:["ID"],63:["PH"],64:["NZ"],65:["SG"],66:["TH"],81:["JP"],82:["KR"],84:["VN"],86:["CN"],90:["TR"],91:["IN"],92:["PK"],93:["AF"],94:["LK"],95:["MM"],98:["IR"],211:["SS"],212:["MA","EH"],213:["DZ"],216:["TN"],218:["LY"],220:["GM"],221:["SN"],222:["MR"],223:["ML"],224:["GN"],225:["CI"],226:["BF"],227:["NE"],228:["TG"],229:["BJ"],230:["MU"],231:["LR"],232:["SL"],233:["GH"],234:["NG"],235:["TD"],236:["CF"],237:["CM"],238:["CV"],239:["ST"],240:["GQ"],241:["GA"],242:["CG"],243:["CD"],244:["AO"],245:["GW"],246:["IO"],247:["AC"],248:["SC"],249:["SD"],250:["RW"],251:["ET"],252:["SO"],253:["DJ"],254:["KE"],255:["TZ"],256:["UG"],257:["BI"],258:["MZ"],260:["ZM"],261:["MG"],262:["RE","YT"],263:["ZW"],264:["NA"],265:["MW"],266:["LS"],267:["BW"],268:["SZ"],269:["KM"],290:["SH","TA"],291:["ER"],297:["AW"],298:["FO"],299:["GL"],350:["GI"],351:["PT"],352:["LU"],353:["IE"],354:["IS"],355:["AL"],356:["MT"],357:["CY"],358:["FI","AX"],359:["BG"],370:["LT"],371:["LV"],372:["EE"],373:["MD"],374:["AM"],375:["BY"],376:["AD"],377:["MC"],378:["SM"],380:["UA"],381:["RS"],382:["ME"],383:["XK"],385:["HR"],386:["SI"],387:["BA"],389:["MK"],420:["CZ"],421:["SK"],423:["LI"],500:["FK"],501:["BZ"],502:["GT"],503:["SV"],504:["HN"],505:["NI"],506:["CR"],507:["PA"],508:["PM"],509:["HT"],590:["GP","BL","MF"],591:["BO"],592:["GY"],593:["EC"],594:["GF"],595:["PY"],596:["MQ"],597:["SR"],598:["UY"],599:["CW","BQ"],670:["TL"],672:["NF"],673:["BN"],674:["NR"],675:["PG"],676:["TO"],677:["SB"],678:["VU"],679:["FJ"],680:["PW"],681:["WF"],682:["CK"],683:["NU"],685:["WS"],686:["KI"],687:["NC"],688:["TV"],689:["PF"],690:["TK"],691:["FM"],692:["MH"],850:["KP"],852:["HK"],853:["MO"],855:["KH"],856:["LA"],880:["BD"],886:["TW"],960:["MV"],961:["LB"],962:["JO"],963:["SY"],964:["IQ"],965:["KW"],966:["SA"],967:["YE"],968:["OM"],970:["PS"],971:["AE"],972:["IL"],973:["BH"],974:["QA"],975:["BT"],976:["MN"],977:["NP"],992:["TJ"],993:["TM"],994:["AZ"],995:["GE"],996:["KG"],998:["UZ"]},countries:{AC:["247","00","(?:[01589]\\d|[46])\\d{4}",[5,6]],AD:["376","00","(?:1|6\\d)\\d{7}|[135-9]\\d{5}",[6,8,9],[["(\\d{3})(\\d{3})","$1 $2",["[135-9]"]],["(\\d{4})(\\d{4})","$1 $2",["1"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]]]],AE:["971","00","(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}",[5,6,7,8,9,10,11,12],[["(\\d{3})(\\d{2,9})","$1 $2",["60|8"]],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[236]|[479][2-8]"],"0$1"],["(\\d{3})(\\d)(\\d{5})","$1 $2 $3",["[479]"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"]],"0"],AF:["93","00","[2-7]\\d{8}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[2-7]"],"0$1"]],"0"],AG:["1","011","(?:268|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([457]\\d{6})$|1","268$1",0,"268"],AI:["1","011","(?:264|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([2457]\\d{6})$|1","264$1",0,"264"],AL:["355","00","(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}",[6,7,8,9],[["(\\d{3})(\\d{3,4})","$1 $2",["80|9"],"0$1"],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["4[2-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2358][2-5]|4"],"0$1"],["(\\d{3})(\\d{5})","$1 $2",["[23578]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["6"],"0$1"]],"0"],AM:["374","00","(?:[1-489]\\d|55|60|77)\\d{6}",[8],[["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[89]0"],"0 $1"],["(\\d{3})(\\d{5})","$1 $2",["2|3[12]"],"(0$1)"],["(\\d{2})(\\d{6})","$1 $2",["1|47"],"(0$1)"],["(\\d{2})(\\d{6})","$1 $2",["[3-9]"],"0$1"]],"0"],AO:["244","00","[29]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[29]"]]]],AR:["54","00","(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}",[10,11],[["(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])","2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"],"0$1",1],["(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["1"],"0$1",1],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["[23]"],"0$1",1],["(\\d)(\\d{4})(\\d{2})(\\d{4})","$2 15-$3-$4",["9(?:2[2-469]|3[3-578])","9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))","9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"],"0$1",0,"$1 $2 $3-$4"],["(\\d)(\\d{2})(\\d{4})(\\d{4})","$2 15-$3-$4",["91"],"0$1",0,"$1 $2 $3-$4"],["(\\d{3})(\\d{3})(\\d{5})","$1-$2-$3",["8"],"0$1"],["(\\d)(\\d{3})(\\d{3})(\\d{4})","$2 15-$3-$4",["9"],"0$1",0,"$1 $2 $3-$4"]],"0",0,"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?","9$1"],AS:["1","011","(?:[58]\\d\\d|684|900)\\d{7}",[10],0,"1",0,"([267]\\d{6})$|1","684$1",0,"684"],AT:["43","00","1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}",[4,5,6,7,8,9,10,11,12,13],[["(\\d)(\\d{3,12})","$1 $2",["1(?:11|[2-9])"],"0$1"],["(\\d{3})(\\d{2})","$1 $2",["517"],"0$1"],["(\\d{2})(\\d{3,5})","$1 $2",["5[079]"],"0$1"],["(\\d{3})(\\d{3,10})","$1 $2",["(?:31|4)6|51|6(?:48|5[0-3579]|[6-9])|7(?:20|32|8)|[89]","(?:31|4)6|51|6(?:485|5[0-3579]|[6-9])|7(?:20|32|8)|[89]"],"0$1"],["(\\d{4})(\\d{3,9})","$1 $2",["[2-467]|5[2-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["5"],"0$1"],["(\\d{2})(\\d{4})(\\d{4,7})","$1 $2 $3",["5"],"0$1"]],"0"],AU:["61","001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}",[5,6,7,8,9,10,12],[["(\\d{2})(\\d{3,4})","$1 $2",["16"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,4})","$1 $2 $3",["16"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["14|4"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[2378]"],"(0$1)"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:30|[89])"]]],"0",0,"(183[12])|0",0,0,0,[["(?:(?:241|349)0\\d\\d|8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\d|7[89]|9[0-4])|[34]\\d\\d)|91(?:(?:[0-58]\\d|6[0135-9])\\d|7(?:0[0-24-9]|[1-9]\\d)|9(?:[0-46-9]\\d|5[0-79]))))\\d{3}|(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\d|2[0-8])|8(?:55|6[0-8]|[78]\\d|9[02-9]))\\d{6}",[9]],["4(?:79[01]|83[0-36-9]|95[0-3])\\d{5}|4(?:[0-36]\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\d{6}",[9]],["180(?:0\\d{3}|2)\\d{3}",[7,10]],["190[0-26]\\d{6}",[10]],0,0,0,["163\\d{2,6}",[5,6,7,8,9]],["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}",[9]],["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}",[6,8,10,12]]],"0011"],AW:["297","00","(?:[25-79]\\d\\d|800)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[25-9]"]]]],AX:["358","00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}",[5,6,7,8,9,10,11,12],0,"0",0,0,0,0,"18",0,"00"],AZ:["994","00","365\\d{6}|(?:[124579]\\d|60|88)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["90"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[28]|2|365|46","1[28]|2|365[45]|46","1[28]|2|365(?:4|5[02])|46"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[13-9]"],"0$1"]],"0"],BA:["387","00","6\\d{8}|(?:[35689]\\d|49|70)\\d{6}",[8,9],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["6[1-3]|[7-9]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2-$3",["[3-5]|6[56]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["6"],"0$1"]],"0"],BB:["1","011","(?:246|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([2-9]\\d{6})$|1","246$1",0,"246"],BD:["880","00","[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}",[6,7,8,9,10],[["(\\d{2})(\\d{4,6})","$1-$2",["31[5-8]|[459]1"],"0$1"],["(\\d{3})(\\d{3,7})","$1-$2",["3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]"],"0$1"],["(\\d{4})(\\d{3,6})","$1-$2",["[13-9]|2[23]"],"0$1"],["(\\d)(\\d{7,8})","$1-$2",["2"],"0$1"]],"0"],BE:["32","00","4\\d{8}|[1-9]\\d{7}",[8,9],[["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:80|9)0"],"0$1"],["(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[239]|4[23]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[15-8]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4"],"0$1"]],"0"],BF:["226","00","(?:[025-7]\\d|44)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[024-7]"]]]],BG:["359","00","00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}",[6,7,8,9,12],[["(\\d)(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["2"],"0$1"],["(\\d{3})(\\d{4})","$1 $2",["43[1-6]|70[1-9]"],"0$1"],["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"],"0$1"],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:70|8)0"],"0$1"],["(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3",["43[1-7]|7"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[48]|9[08]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1"]],"0"],BH:["973","00","[136-9]\\d{7}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[13679]|8[02-4679]"]]]],BI:["257","00","(?:[267]\\d|31)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2367]"]]]],BJ:["229","00","(?:01\\d|8)\\d{7}",[8,10],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["0"]]]],BL:["590","00","(?:590\\d|7090)\\d{5}|(?:69|[89]\\d)\\d{7}",[9],0,"0",0,0,0,0,0,[["590(?:2[7-9]|3[3-7]|5[12]|87)\\d{4}"],["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}"],["80\\d{7}"],["8[129]\\d{7}"],0,0,0,0,["9(?:(?:39[5-7]|76[018])\\d|475[0-6])\\d{4}"]]],BM:["1","011","(?:441|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([2-9]\\d{6})$|1","441$1",0,"441"],BN:["673","00","[2-578]\\d{6}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-578]"]]]],BO:["591","00(?:1\\d)?","8001\\d{5}|(?:[2-467]\\d|50)\\d{6}",[8,9],[["(\\d)(\\d{7})","$1 $2",["[235]|4[46]"]],["(\\d{8})","$1",["[67]"]],["(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["8"]]],"0",0,"0(1\\d)?"],BQ:["599","00","(?:[34]1|7\\d)\\d{5}",[7],0,0,0,0,0,0,"[347]"],BR:["55","00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)","[1-467]\\d{9,10}|55[0-46-9]\\d{8}|[34]\\d{7}|55\\d{7,8}|(?:5[0-46-9]|[89]\\d)\\d{7,9}",[8,9,10,11],[["(\\d{4})(\\d{4})","$1-$2",["300|4(?:0[02]|37|86)","300|4(?:0(?:0|20)|370|864)"]],["(\\d{3})(\\d{2,3})(\\d{4})","$1 $2 $3",["(?:[358]|90)0"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"],"($1)"],["(\\d{2})(\\d{5})(\\d{4})","$1 $2-$3",["[16][1-9]|[2-57-9]"],"($1)"]],"0",0,"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?","$2"],BS:["1","011","(?:242|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([3-8]\\d{6})$|1","242$1",0,"242"],BT:["975","00","[178]\\d{7}|[2-8]\\d{6}",[7,8],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[2-6]|7[246]|8[2-4]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[67]|[78]"]]]],BW:["267","00","(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}",[7,8,10],[["(\\d{2})(\\d{5})","$1 $2",["90"]],["(\\d{3})(\\d{4})","$1 $2",["[24-6]|3[15-9]"]],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[37]"]],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["0"]],["(\\d{3})(\\d{4})(\\d{3})","$1 $2 $3",["8"]]]],BY:["375","810","(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}",[6,7,8,9,10,11],[["(\\d{3})(\\d{3})","$1 $2",["800"],"8 $1"],["(\\d{3})(\\d{2})(\\d{2,4})","$1 $2 $3",["800"],"8 $1"],["(\\d{4})(\\d{2})(\\d{3})","$1 $2-$3",["1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])","1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])"],"8 0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["1(?:[56]|7[467])|2[1-3]"],"8 0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[1-4]"],"8 0$1"],["(\\d{3})(\\d{3,4})(\\d{4})","$1 $2 $3",["[89]"],"8 $1"]],"8",0,"0|80?",0,0,0,0,"8~10"],BZ:["501","00","(?:0800\\d|[2-8])\\d{6}",[7,11],[["(\\d{3})(\\d{4})","$1-$2",["[2-8]"]],["(\\d)(\\d{3})(\\d{4})(\\d{3})","$1-$2-$3-$4",["0"]]]],CA:["1","011","[2-9]\\d{9}|3\\d{6}",[7,10],0,"1",0,0,0,0,0,[["(?:2(?:04|[23]6|[48]9|5[07]|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\d{6}",[10]],["",[10]],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",[10]],["900[2-9]\\d{6}",[10]],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:2[125-9]|3[23]|44|66|77|88)|6(?:22|33))[2-9]\\d{6}",[10]],0,["310\\d{4}",[7]],0,["600[2-9]\\d{6}",[10]]]],CC:["61","001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}",[6,7,8,9,10,12],0,"0",0,"([59]\\d{7})$|0","8$1",0,0,[["8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}",[9]],["4(?:79[01]|83[0-36-9]|95[0-3])\\d{5}|4(?:[0-36]\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\d{6}",[9]],["180(?:0\\d{3}|2)\\d{3}",[7,10]],["190[0-26]\\d{6}",[10]],0,0,0,0,["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}",[9]],["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}",[6,8,10,12]]],"0011"],CD:["243","00","(?:(?:[189]|5\\d)\\d|2)\\d{7}|[1-68]\\d{6}",[7,8,9,10],[["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["88"],"0$1"],["(\\d{2})(\\d{5})","$1 $2",["[1-6]"],"0$1"],["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[89]"],"0$1"],["(\\d{2})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["5"],"0$1"]],"0"],CF:["236","00","8776\\d{4}|(?:[27]\\d|61)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[26-8]"]]]],CG:["242","00","222\\d{6}|(?:0\\d|80)\\d{7}",[9],[["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["8"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[02]"]]]],CH:["41","00","8\\d{11}|[2-9]\\d{8}",[9,12],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8[047]|90"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-79]|81"],"0$1"],["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["8"],"0$1"]],"0"],CI:["225","00","[02]\\d{9}",[10],[["(\\d{2})(\\d{2})(\\d)(\\d{5})","$1 $2 $3 $4",["2"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3 $4",["0"]]]],CK:["682","00","[2-578]\\d{4}",[5],[["(\\d{2})(\\d{3})","$1 $2",["[2-578]"]]]],CL:["56","(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0","12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}",[9,10,11],[["(\\d{5})(\\d{4})","$1 $2",["219","2196"],"($1)"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["60|809"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["44"]],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2[1-36]"],"($1)"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["9(?:10|[2-9])"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-8]|[1-9])"],"($1)"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["60|8"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]],["(\\d{3})(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3 $4",["60"]]]],CM:["237","00","[26]\\d{8}|88\\d{6,7}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["88"]],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[26]|88"]]]],CN:["86","00|1(?:[12]\\d|79)\\d\\d00","(?:(?:1[03-689]|2\\d)\\d\\d|6)\\d{8}|1\\d{10}|[126]\\d{6}(?:\\d(?:\\d{2})?)?|86\\d{5,6}|(?:[3-579]\\d|8[0-57-9])\\d{5,9}",[7,8,9,10,11,12],[["(\\d{2})(\\d{5,6})","$1 $2",["(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]","(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1","10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12","10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123","10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123"],"0$1"],["(\\d{3})(\\d{5,6})","$1 $2",["3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]","(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]","85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])","85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["(?:4|80)0"]],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["10|2(?:[02-57-9]|1[1-9])","10|2(?:[02-57-9]|1[1-9])","10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])"],"0$1",1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]"],"0$1",1],["(\\d{3})(\\d{7,8})","$1 $2",["9"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["80"],"0$1",1],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[3-578]"],"0$1",1],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["1[3-9]"]],["(\\d{2})(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3 $4",["[12]"],"0$1",1]],"0",0,"(1(?:[12]\\d|79)\\d\\d)|0",0,0,0,0,"00"],CO:["57","00(?:4(?:[14]4|56)|[579])","(?:46|60\\d\\d)\\d{6}|(?:1\\d|[39])\\d{9}",[8,10,11],[["(\\d{4})(\\d{4})","$1 $2",["46"]],["(\\d{3})(\\d{7})","$1 $2",["6|90"],"($1)"],["(\\d{3})(\\d{7})","$1 $2",["3[0-357]|9[14]"]],["(\\d)(\\d{3})(\\d{7})","$1-$2-$3",["1"],"0$1",0,"$1 $2 $3"]],"0",0,"0([3579]|4(?:[14]4|56))?"],CR:["506","00","(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}",[8,10],[["(\\d{4})(\\d{4})","$1 $2",["[2-7]|8[3-9]"]],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[89]"]]],0,0,"(19(?:0[0-2468]|1[09]|20|66|77|99))"],CU:["53","119","(?:[2-7]|8\\d\\d)\\d{7}|[2-47]\\d{6}|[34]\\d{5}",[6,7,8,10],[["(\\d{2})(\\d{4,6})","$1 $2",["2[1-4]|[34]"],"(0$1)"],["(\\d)(\\d{6,7})","$1 $2",["7"],"(0$1)"],["(\\d)(\\d{7})","$1 $2",["[56]"],"0$1"],["(\\d{3})(\\d{7})","$1 $2",["8"],"0$1"]],"0"],CV:["238","0","(?:[2-59]\\d\\d|800)\\d{4}",[7],[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[2-589]"]]]],CW:["599","00","(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["[3467]"]],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["9[4-8]"]]],0,0,0,0,0,"[69]"],CX:["61","001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}",[6,7,8,9,10,12],0,"0",0,"([59]\\d{7})$|0","8$1",0,0,[["8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}",[9]],["4(?:79[01]|83[0-36-9]|95[0-3])\\d{5}|4(?:[0-36]\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\d{6}",[9]],["180(?:0\\d{3}|2)\\d{3}",[7,10]],["190[0-26]\\d{6}",[10]],0,0,0,0,["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}",[9]],["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}",[6,8,10,12]]],"0011"],CY:["357","00","(?:[279]\\d|[58]0)\\d{6}",[8],[["(\\d{2})(\\d{6})","$1 $2",["[257-9]"]]]],CZ:["420","00","(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}",[9,10,11,12],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]|9[015-7]"]],["(\\d{2})(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3 $4",["96"]],["(\\d{2})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]]]],DE:["49","00","[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}",[4,5,6,7,8,9,10,11,12,13,14,15],[["(\\d{2})(\\d{3,13})","$1 $2",["3[02]|40|[68]9"],"0$1"],["(\\d{3})(\\d{3,12})","$1 $2",["2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1","2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1"],"0$1"],["(\\d{4})(\\d{2,11})","$1 $2",["[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]","[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]"],"0$1"],["(\\d{3})(\\d{4})","$1 $2",["138"],"0$1"],["(\\d{5})(\\d{2,10})","$1 $2",["3"],"0$1"],["(\\d{3})(\\d{5,11})","$1 $2",["181"],"0$1"],["(\\d{3})(\\d)(\\d{4,10})","$1 $2 $3",["1(?:3|80)|9"],"0$1"],["(\\d{3})(\\d{7,8})","$1 $2",["1[67]"],"0$1"],["(\\d{3})(\\d{7,12})","$1 $2",["8"],"0$1"],["(\\d{5})(\\d{6})","$1 $2",["185","1850","18500"],"0$1"],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["7"],"0$1"],["(\\d{4})(\\d{7})","$1 $2",["18[68]"],"0$1"],["(\\d{4})(\\d{7})","$1 $2",["15[1279]"],"0$1"],["(\\d{5})(\\d{6})","$1 $2",["15[03568]","15(?:[0568]|3[13])"],"0$1"],["(\\d{3})(\\d{8})","$1 $2",["18"],"0$1"],["(\\d{3})(\\d{2})(\\d{7,8})","$1 $2 $3",["1(?:6[023]|7)"],"0$1"],["(\\d{4})(\\d{2})(\\d{7})","$1 $2 $3",["15[279]"],"0$1"],["(\\d{3})(\\d{2})(\\d{8})","$1 $2 $3",["15"],"0$1"]],"0"],DJ:["253","00","(?:2\\d|77)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[27]"]]]],DK:["45","00","[2-9]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-9]"]]]],DM:["1","011","(?:[58]\\d\\d|767|900)\\d{7}",[10],0,"1",0,"([2-7]\\d{6})$|1","767$1",0,"767"],DO:["1","011","(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,0,0,0,"8001|8[024]9"],DZ:["213","00","(?:[1-4]|[5-79]\\d|80)\\d{7}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1-4]"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["9"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-8]"],"0$1"]],"0"],EC:["593","00","1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}",[8,9,10,11],[["(\\d)(\\d{3})(\\d{4})","$1 $2-$3",["[2-7]"],"(0$1)",0,"$1-$2-$3"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["9"],"0$1"],["(\\d{4})(\\d{3})(\\d{3,4})","$1 $2 $3",["1"]]],"0"],EE:["372","00","8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}",[7,8,10],[["(\\d{3})(\\d{4})","$1 $2",["[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88","[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88"]],["(\\d{4})(\\d{3,4})","$1 $2",["[45]|8(?:00|[1-49])","[45]|8(?:00[1-9]|[1-49])"]],["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["7"]],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["8"]]]],EG:["20","00","[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}",[8,9,10],[["(\\d)(\\d{7,8})","$1 $2",["[23]"],"0$1"],["(\\d{2})(\\d{6,7})","$1 $2",["1[35]|[4-6]|8[2468]|9[235-7]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],["(\\d{2})(\\d{8})","$1 $2",["1"],"0$1"]],"0"],EH:["212","00","[5-8]\\d{8}",[9],0,"0",0,0,0,0,0,[["528[89]\\d{5}"],["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[016-8]\\d|2[0-8]|5[0-5]))\\d{6}"],["80[0-7]\\d{6}"],["89\\d{7}"],0,0,0,0,["(?:592(?:4[0-2]|93)|80[89]\\d\\d)\\d{4}"]]],ER:["291","00","[178]\\d{6}",[7],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[178]"],"0$1"]],"0"],ES:["34","00","[5-9]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[89]00"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-9]"]]]],ET:["251","00","(?:11|[2-579]\\d)\\d{7}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-579]"],"0$1"]],"0"],FI:["358","00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}",[5,6,7,8,9,10,11,12],[["(\\d{5})","$1",["20[2-59]"],"0$1"],["(\\d{3})(\\d{3,7})","$1 $2",["(?:[1-3]0|[68])0|70[07-9]"],"0$1"],["(\\d{2})(\\d{4,8})","$1 $2",["[14]|2[09]|50|7[135]"],"0$1"],["(\\d{2})(\\d{6,10})","$1 $2",["7"],"0$1"],["(\\d)(\\d{4,9})","$1 $2",["(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9"],"0$1"]],"0",0,0,0,0,"1[03-79]|[2-9]",0,"00"],FJ:["679","0(?:0|52)","45\\d{5}|(?:0800\\d|[235-9])\\d{6}",[7,11],[["(\\d{3})(\\d{4})","$1 $2",["[235-9]|45"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]]],0,0,0,0,0,0,0,"00"],FK:["500","00","[2-7]\\d{4}",[5]],FM:["691","00","(?:[39]\\d\\d|820)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[389]"]]]],FO:["298","00","[2-9]\\d{5}",[6],[["(\\d{6})","$1",["[2-9]"]]],0,0,"(10(?:01|[12]0|88))"],FR:["33","00","[1-9]\\d{8}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0 $1"],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[1-79]"],"0$1"]],"0"],GA:["241","00","(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}",[7,8],[["(\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-7]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["11|[67]"],"0$1"]],0,0,"0(11\\d{6}|60\\d{6}|61\\d{6}|6[256]\\d{6}|7[467]\\d{6})","$1"],GB:["44","00","[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}",[7,9,10],[["(\\d{3})(\\d{4})","$1 $2",["800","8001","80011","800111","8001111"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["845","8454","84546","845464"],"0$1"],["(\\d{3})(\\d{6})","$1 $2",["800"],"0$1"],["(\\d{5})(\\d{4,5})","$1 $2",["1(?:38|5[23]|69|76|94)","1(?:(?:38|69)7|5(?:24|39)|768|946)","1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)"],"0$1"],["(\\d{4})(\\d{5,6})","$1 $2",["1(?:[2-69][02-9]|[78])"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[25]|7(?:0|6[02-9])","[25]|7(?:0|6(?:[03-9]|2[356]))"],"0$1"],["(\\d{4})(\\d{6})","$1 $2",["7"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[1389]"],"0$1"]],"0",0,"0|180020",0,0,0,[["(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0-5])|4(?:(?:[0-5]\\d|70)\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\d|6(?:[0-4]\\d|5[01]))\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d|1(?:[0-7]\\d|8[0-3]))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d)\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}",[9,10]],["7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}",[10]],["80[08]\\d{7}|800\\d{6}|8001111"],["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d",[7,10]],["70\\d{8}",[10]],0,["(?:3[0347]|55)\\d{8}",[10]],["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}",[10]],["56\\d{8}",[10]]],0," x"],GD:["1","011","(?:473|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([2-9]\\d{6})$|1","473$1",0,"473"],GE:["995","00","(?:[3-57]\\d\\d|800)\\d{6}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["70"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["32"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[57]"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[348]"],"0$1"]],"0"],GF:["594","00","7093\\d{5}|(?:[56]94|[89]\\d\\d)\\d{6}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]|80[6-9]|9[47]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[89]"],"0$1"]],"0"],GG:["44","00","(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?",[7,9,10],0,"0",0,"([25-9]\\d{5})$|0|180020","1481$1",0,0,[["1481[25-9]\\d{5}",[10]],["7(?:(?:781|839)\\d|911[17])\\d{5}",[10]],["80[08]\\d{7}|800\\d{6}|8001111"],["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d",[7,10]],["70\\d{8}",[10]],0,["(?:3[0347]|55)\\d{8}",[10]],["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}",[10]],["56\\d{8}",[10]]]],GH:["233","00","(?:[235]\\d{3}|800)\\d{5}",[8,9],[["(\\d{3})(\\d{5})","$1 $2",["8"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[235]"],"0$1"]],"0"],GI:["350","00","(?:[25]\\d|60)\\d{6}",[8],[["(\\d{3})(\\d{5})","$1 $2",["2"]]]],GL:["299","00","(?:19|[2-689]\\d|70)\\d{4}",[6],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["19|[2-9]"]]]],GM:["220","00","[2-9]\\d{6}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]]],GN:["224","00","722\\d{6}|(?:3|6\\d)\\d{7}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["3"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[67]"]]]],GP:["590","00","(?:590\\d|7090)\\d{5}|(?:69|[89]\\d)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-79]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0$1"]],"0",0,0,0,0,0,[["590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\d)\\d{4}"],["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}"],["80\\d{7}"],["8[129]\\d{7}"],0,0,0,0,["9(?:(?:39[5-7]|76[018])\\d|475[0-6])\\d{4}"]]],GQ:["240","00","222\\d{6}|(?:3\\d|55|[89]0)\\d{7}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235]"]],["(\\d{3})(\\d{6})","$1 $2",["[89]"]]]],GR:["30","00","5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}",[10,11,12],[["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["21|7"]],["(\\d{4})(\\d{6})","$1 $2",["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2689]"]],["(\\d{3})(\\d{3,4})(\\d{5})","$1 $2 $3",["8"]]]],GT:["502","00","80\\d{6}|(?:1\\d{3}|[2-7])\\d{7}",[8,11],[["(\\d{4})(\\d{4})","$1 $2",["[2-8]"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]]],GU:["1","011","(?:[58]\\d\\d|671|900)\\d{7}",[10],0,"1",0,"([2-9]\\d{6})$|1","671$1",0,"671"],GW:["245","00","[49]\\d{8}|4\\d{6}",[7,9],[["(\\d{3})(\\d{4})","$1 $2",["40"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[49]"]]]],GY:["592","001","(?:[2-8]\\d{3}|9008)\\d{3}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]]],HK:["852","00(?:30|5[09]|[126-9]?)","8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}",[5,6,7,8,9,11],[["(\\d{3})(\\d{2,5})","$1 $2",["900","9003"]],["(\\d{4})(\\d{4})","$1 $2",["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]],["(\\d{3})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]]],0,0,0,0,0,0,0,"00"],HN:["504","00","8\\d{10}|[237-9]\\d{7}",[8,11],[["(\\d{4})(\\d{4})","$1-$2",["[237-9]"]]]],HR:["385","00","[2-69]\\d{8}|80\\d{5,7}|[1-79]\\d{7}|6\\d{6}",[7,8,9],[["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["6[01]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["8"],"0$1"],["(\\d)(\\d{4})(\\d{3})","$1 $2 $3",["1"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["6|7[245]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["9"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-57]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"]],"0"],HT:["509","00","[2-589]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[2-589]"]]]],HU:["36","00","[235-7]\\d{8}|[1-9]\\d{7}",[8,9],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"(06 $1)"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]"],"(06 $1)"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-9]"],"06 $1"]],"06"],ID:["62","00[89]","00[1-9]\\d{9,14}|(?:[1-36]|8\\d{5})\\d{6}|00\\d{9}|[1-9]\\d{8,10}|[2-9]\\d{7}",[7,8,9,10,11,12,13,14,15,16,17],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["15"]],["(\\d{2})(\\d{5,9})","$1 $2",["2[124]|[36]1"],"(0$1)"],["(\\d{3})(\\d{5,7})","$1 $2",["800"],"0$1"],["(\\d{3})(\\d{5,8})","$1 $2",["[2-79]"],"(0$1)"],["(\\d{3})(\\d{3,4})(\\d{3})","$1-$2-$3",["8[1-35-9]"],"0$1"],["(\\d{3})(\\d{6,8})","$1 $2",["1"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["804"],"0$1"],["(\\d{3})(\\d)(\\d{3})(\\d{3})","$1 $2 $3 $4",["80"],"0$1"],["(\\d{3})(\\d{4})(\\d{4,5})","$1-$2-$3",["8"],"0$1"]],"0"],IE:["353","00","(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}",[7,8,9,10],[["(\\d{2})(\\d{5})","$1 $2",["2[24-9]|47|58|6[237-9]|9[35-9]"],"(0$1)"],["(\\d{3})(\\d{5})","$1 $2",["[45]0"],"(0$1)"],["(\\d)(\\d{3,4})(\\d{4})","$1 $2 $3",["1"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2569]|4[1-69]|7[14]"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["70"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["81"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[78]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["4"],"(0$1)"],["(\\d{2})(\\d)(\\d{3})(\\d{4})","$1 $2 $3 $4",["8"],"0$1"]],"0"],IL:["972","0(?:0|1[2-9])","1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}",[7,8,9,10,11,12],[["(\\d{4})(\\d{3})","$1-$2",["125"]],["(\\d{4})(\\d{2})(\\d{2})","$1-$2-$3",["121"]],["(\\d)(\\d{3})(\\d{4})","$1-$2-$3",["[2-489]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[57]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1-$2-$3",["12"]],["(\\d{4})(\\d{6})","$1-$2",["159"]],["(\\d)(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3-$4",["1[7-9]"]],["(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})","$1-$2 $3-$4",["15"]]],"0"],IM:["44","00","1624\\d{6}|(?:[3578]\\d|90)\\d{8}",[10],0,"0",0,"([25-8]\\d{5})$|0|180020","1624$1",0,"74576|(?:16|7[56])24"],IN:["91","00","(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}",[8,9,10,11,12,13],[["(\\d{8})","$1",["5(?:0|2[23]|3[03]|[67]1|88)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)"],0,1],["(\\d{4})(\\d{4,5})","$1 $2",["180","1800"],0,1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["140"],0,1],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["11|2[02]|33|4[04]|79[1-7]|80[2-46]","11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])","11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])"],"0$1",1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]"],"0$1",1],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807","1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]","1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|8(?:28[235-7]|3))|73179|807(?:1|9[1-3])|(?:1552|6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689])\\d|8(?:[14-6]\\d|2[0-79]))|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]"],"0$1",1],["(\\d{5})(\\d{5})","$1 $2",["16|[6-9]"],"0$1",1],["(\\d{4})(\\d{2,4})(\\d{4})","$1 $2 $3",["18[06]","18[06]0"],0,1],["(\\d{4})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["18"],0,1]],"0"],IO:["246","00","3\\d{6}",[7],[["(\\d{3})(\\d{4})","$1 $2",["3"]]]],IQ:["964","00","(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-6]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"]],"0"],IR:["98","00","[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}",[4,5,6,7,10],[["(\\d{4,5})","$1",["96"],"0$1"],["(\\d{2})(\\d{4,5})","$1 $2",["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["9"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[1-8]"],"0$1"]],"0"],IS:["354","00|1(?:0(?:01|[12]0)|100)","(?:38\\d|[4-9])\\d{6}",[7,9],[["(\\d{3})(\\d{4})","$1 $2",["[4-9]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["3"]]],0,0,0,0,0,0,0,"00"],IT:["39","00","0\\d{5,11}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:43|55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?",[6,7,8,9,10,11,12],[["(\\d{2})(\\d{4,6})","$1 $2",["0[26]"]],["(\\d{3})(\\d{3,6})","$1 $2",["0[13-57-9][0159]|8(?:03|4[17]|9[2-5])","0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))"]],["(\\d{4})(\\d{2,6})","$1 $2",["0(?:[13-579][2-46-8]|8[236-8])"]],["(\\d{4})(\\d{4})","$1 $2",["894"]],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[26]|5"]],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["1(?:44|[679])|[378]|43"]],["(\\d{3})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[13-57-9][0159]|14"]],["(\\d{2})(\\d{4})(\\d{5})","$1 $2 $3",["0[26]"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]],["(\\d{3})(\\d{4})(\\d{4,5})","$1 $2 $3",["[03]"]]],0,0,0,0,0,0,[["0(?:669[0-79]\\d{1,6}|831\\d{2,8})|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[2356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}"],["3[2-9]\\d{7,8}|(?:31|43)\\d{8}",[9,10]],["80(?:0\\d{3}|3)\\d{3}",[6,9]],["(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}",[6,8,9,10]],["1(?:78\\d|99)\\d{6}",[9,10]],["3[2-8]\\d{9,10}",[11,12]],0,0,["55\\d{8}",[10]],["84(?:[08]\\d{3}|[17])\\d{3}",[6,9]]]],JE:["44","00","1534\\d{6}|(?:[3578]\\d|90)\\d{8}",[10],0,"0",0,"([0-24-8]\\d{5})$|0|180020","1534$1",0,0,[["1534[0-24-8]\\d{5}"],["7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97\\d))\\d{5}"],["80(?:07(?:35|81)|8901)\\d{4}"],["(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}"],["701511\\d{4}"],0,["(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}"],["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}"],["56\\d{8}"]]],JM:["1","011","(?:[58]\\d\\d|658|900)\\d{7}",[10],0,"1",0,0,0,0,"658|876"],JO:["962","00","(?:(?:[2689]|7\\d)\\d|32|427|53)\\d{6}",[8,9],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2356]|87"],"(0$1)"],["(\\d{3})(\\d{5,6})","$1 $2",["[89]"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["70"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[47]"],"0$1"]],"0"],JP:["81","010","00[1-9]\\d{6,14}|[25-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}",[8,9,10,11,12,13,14,15,16,17],[["(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3",["(?:12|57|99)0"],"0$1"],["(\\d{4})(\\d)(\\d{4})","$1-$2-$3",["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["60"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1-$2-$3",["3|4(?:2[09]|7[01])|6[1-9]","3|4(?:2(?:0|9[02-69])|7(?:0[019]|1))|6[1-9]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]"],"0$1"],["(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["[14]|[289][2-9]|5[3-9]|7[2-4679]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["800"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[25-9]"],"0$1"]],"0",0,"(000[2569]\\d{4,6})$|(?:(?:003768)0?)|0","$1"],KE:["254","000","(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}",[7,8,9,10],[["(\\d{2})(\\d{5,7})","$1 $2",["[24-6]"],"0$1"],["(\\d{3})(\\d{6})","$1 $2",["[17]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"],"0$1"]],"0"],KG:["996","00","8\\d{9}|[235-9]\\d{8}",[9,10],[["(\\d{4})(\\d{5})","$1 $2",["3(?:1[346]|[24-79])"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235-79]|88"],"0$1"],["(\\d{3})(\\d{3})(\\d)(\\d{2,3})","$1 $2 $3 $4",["8"],"0$1"]],"0"],KH:["855","00[14-9]","1\\d{9}|[1-9]\\d{7,8}",[8,9,10],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-9]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],"0"],KI:["686","00","(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}",[5,8],0,"0"],KM:["269","00","[3478]\\d{6}",[7],[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[3478]"]]]],KN:["1","011","(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([2-7]\\d{6})$|1","869$1",0,"869"],KP:["850","00|99","85\\d{6}|(?:19\\d|[2-7])\\d{7}",[8,10],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2-7]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"]],"0"],KR:["82","00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))","00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}",[5,6,8,9,10,11,12,13,14],[["(\\d{2})(\\d{3,4})","$1-$2",["(?:3[1-3]|[46][1-4]|5[1-5])1"],"0$1"],["(\\d{4})(\\d{4})","$1-$2",["1"]],["(\\d)(\\d{3,4})(\\d{4})","$1-$2-$3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[36]0|8"],"0$1"],["(\\d{2})(\\d{3,4})(\\d{4})","$1-$2-$3",["[1346]|5[1-5]"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[57]"],"0$1"],["(\\d{2})(\\d{5})(\\d{4})","$1-$2-$3",["5"],"0$1"]],"0",0,"0(8(?:[1-46-8]|5\\d\\d))?"],KW:["965","00","18\\d{5}|(?:[2569]\\d|41)\\d{6}",[7,8],[["(\\d{4})(\\d{3,4})","$1 $2",["[169]|2(?:[235]|4[1-35-9])|52"]],["(\\d{3})(\\d{5})","$1 $2",["[245]"]]]],KY:["1","011","(?:345|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([2-9]\\d{6})$|1","345$1",0,"345"],KZ:["7","810","8\\d{13}|[78]\\d{9}",[10,14],0,"8",0,0,0,0,"7",0,"8~10"],LA:["856","00","[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}",[8,9,10],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2[13]|3[14]|[4-8]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["3"],"0$1"],["(\\d{2})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[23]"],"0$1"]],"0"],LB:["961","00","[27-9]\\d{7}|[13-9]\\d{6}",[7,8],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[13-69]|7(?:[2-57]|62|8[0-6]|9[04-9])|8[02-9]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[27-9]"]]],"0"],LC:["1","011","(?:[58]\\d\\d|758|900)\\d{7}",[10],0,"1",0,"([2-8]\\d{6})$|1","758$1",0,"758"],LI:["423","00","[68]\\d{8}|(?:[2378]\\d|90)\\d{5}",[7,9],[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[2379]|8(?:0[09]|7)","[2379]|8(?:0(?:02|9)|7)"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["69"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]]],"0",0,"(1001)|0"],LK:["94","00","[1-9]\\d{8}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[1-689]"],"0$1"]],"0"],LR:["231","00","(?:[2457]\\d|33|88)\\d{7}|(?:2\\d|[4-6])\\d{6}",[7,8,9],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["4[67]|[56]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[2-578]"],"0$1"]],"0"],LS:["266","00","(?:[256]\\d\\d|800)\\d{5}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[2568]"]]]],LT:["370","00","(?:[3469]\\d|52|[78]0)\\d{6}",[8],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["52[0-7]"],"(0-$1)",1],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[7-9]"],"0 $1",1],["(\\d{2})(\\d{6})","$1 $2",["37|4(?:[15]|6[1-8])"],"(0-$1)",1],["(\\d{3})(\\d{5})","$1 $2",["[3-6]"],"(0-$1)",1]],"0",0,"[08]"],LU:["352","00","35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}",[4,5,6,7,8,9,10,11],[["(\\d{2})(\\d{3})","$1 $2",["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]],["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["20[2-689]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4",["20"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})","$1 $2 $3 $4",["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"]],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["80[01]|90[015]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["20"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4 $5",["20"]]],0,0,"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)"],LV:["371","00","(?:[268]\\d|78|90)\\d{6}",[8],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2679]|8[01]"]]]],LY:["218","00","[2-9]\\d{8}",[9],[["(\\d{2})(\\d{7})","$1-$2",["[2-9]"],"0$1"]],"0"],MA:["212","00","[5-8]\\d{8}",[9],[["(\\d{4})(\\d{5})","$1-$2",["892"],"0$1"],["(\\d{2})(\\d{7})","$1-$2",["8(?:0[0-7]|9)"],"0$1"],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[5-8]"],"0$1"]],"0",0,0,0,0,"[5-8]"],MC:["377","00","(?:[3489]|[67]\\d)\\d{7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["4"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[389]"]],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[67]"],"0$1"]],"0"],MD:["373","00","(?:[235-7]\\d|[89]0)\\d{6}",[8],[["(\\d{3})(\\d{5})","$1 $2",["[89]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["22|3"],"0$1"],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[25-7]"],"0$1"]],"0"],ME:["382","00","(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-9]"],"0$1"]],"0"],MF:["590","00","(?:590\\d|7090)\\d{5}|(?:69|[89]\\d)\\d{7}",[9],0,"0",0,0,0,0,0,[["590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\d{4}"],["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}"],["80\\d{7}"],["8[129]\\d{7}"],0,0,0,0,["9(?:(?:39[5-7]|76[018])\\d|475[0-6])\\d{4}"]]],MG:["261","00","[23]\\d{8}",[9],[["(\\d{2})(\\d{2})(\\d{3})(\\d{2})","$1 $2 $3 $4",["[23]"],"0$1"]],"0",0,"([24-9]\\d{6})$|0","20$1"],MH:["692","011","329\\d{4}|(?:[256]\\d|45)\\d{5}",[7],[["(\\d{3})(\\d{4})","$1-$2",["[2-6]"]]],"1"],MK:["389","00","[2-578]\\d{7}",[8],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2|34[47]|4(?:[37]7|5[47]|64)"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[347]"],"0$1"],["(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["[58]"],"0$1"]],"0"],ML:["223","00","[24-9]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24-9]"]]]],MM:["95","00","1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}",[6,7,8,9,10],[["(\\d)(\\d{2})(\\d{3})","$1 $2 $3",["16|2"],"0$1"],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]"],"0$1"],["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[12]|452|678|86","[12]|452|6788|86"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[4-7]|8[1-35]"],"0$1"],["(\\d)(\\d{3})(\\d{4,6})","$1 $2 $3",["9(?:2[0-4]|[35-9]|4[137-9])"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"],["(\\d)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["92"],"0$1"],["(\\d)(\\d{5})(\\d{4})","$1 $2 $3",["9"],"0$1"]],"0"],MN:["976","001","[12]\\d{7,9}|[5-9]\\d{7}",[8,9,10],[["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[12]1"],"0$1"],["(\\d{4})(\\d{4})","$1 $2",["[5-9]"]],["(\\d{3})(\\d{5,6})","$1 $2",["[12]2[1-3]"],"0$1"],["(\\d{4})(\\d{5,6})","$1 $2",["[12](?:27|3[2-8]|4[2-68]|5[1-4689])","[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"],"0$1"],["(\\d{5})(\\d{4,5})","$1 $2",["[12]"],"0$1"]],"0"],MO:["853","00","0800\\d{3}|(?:28|[68]\\d)\\d{6}",[7,8],[["(\\d{4})(\\d{3})","$1 $2",["0"]],["(\\d{4})(\\d{4})","$1 $2",["[268]"]]]],MP:["1","011","[58]\\d{9}|(?:67|90)0\\d{7}",[10],0,"1",0,"([2-9]\\d{6})$|1","670$1",0,"670"],MQ:["596","00","(?:596\\d|7091)\\d{5}|(?:69|[89]\\d)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-79]|8(?:0[6-9]|[36])"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0$1"]],"0"],MR:["222","00","(?:[2-4]\\d\\d|800)\\d{5}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-48]"]]]],MS:["1","011","(?:[58]\\d\\d|664|900)\\d{7}",[10],0,"1",0,"([34]\\d{6})$|1","664$1",0,"664"],MT:["356","00","3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[2357-9]"]]]],MU:["230","0(?:0|[24-7]0|3[03])","(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}",[7,8,10],[["(\\d{3})(\\d{4})","$1 $2",["[2-46]|8[013]"]],["(\\d{4})(\\d{4})","$1 $2",["[57]"]],["(\\d{5})(\\d{5})","$1 $2",["8"]]],0,0,0,0,0,0,0,"020"],MV:["960","0(?:0|19)","(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}",[7,10],[["(\\d{3})(\\d{4})","$1-$2",["[34679]"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"]]],0,0,0,0,0,0,0,"00"],MW:["265","00","(?:[1289]\\d|31|77)\\d{7}|1\\d{6}",[7,9],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["1[2-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[137-9]"],"0$1"]],"0"],MX:["52","0[09]","[2-9]\\d{9}",[10],[["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["33|5[56]|81"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2-9]"]]],0,0,0,0,0,0,0,"00"],MY:["60","00","1\\d{8,9}|(?:3\\d|[4-9])\\d{7}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1-$2 $3",["[4-79]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1-$2 $3",["1(?:[02469]|[378][1-9]|53)|8","1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1-$2 $3",["3"],"0$1"],["(\\d)(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3-$4",["1(?:[367]|80)"]],["(\\d{3})(\\d{3})(\\d{4})","$1-$2 $3",["15"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2 $3",["1"],"0$1"]],"0"],MZ:["258","00","(?:2|8\\d)\\d{7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2|8[2-79]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]]]],NA:["264","00","[68]\\d{7,8}",[8,9],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["88"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["6"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["87"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"]],"0"],NC:["687","00","(?:050|[2-57-9]\\d\\d)\\d{3}",[6],[["(\\d{2})(\\d{2})(\\d{2})","$1.$2.$3",["[02-57-9]"]]]],NE:["227","00","[027-9]\\d{7}",[8],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["08"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[089]|2[013]|7[0467]"]]]],NF:["672","00","[13]\\d{5}",[6],[["(\\d{2})(\\d{4})","$1 $2",["1[0-3]"]],["(\\d)(\\d{5})","$1 $2",["[13]"]]],0,0,"([0-258]\\d{4})$","3$1"],NG:["234","009","(?:20|9\\d)\\d{8}|[78]\\d{9,13}",[10,11,12,13,14],[["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[7-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["20[129]"],"0$1"],["(\\d{4})(\\d{2})(\\d{4})","$1 $2 $3",["2"],"0$1"],["(\\d{3})(\\d{4})(\\d{4,5})","$1 $2 $3",["[78]"],"0$1"],["(\\d{3})(\\d{5})(\\d{5,6})","$1 $2 $3",["[78]"],"0$1"]],"0"],NI:["505","00","(?:1800|[25-8]\\d{3})\\d{4}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[125-8]"]]]],NL:["31","00","(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}",[5,6,7,8,9,10,11],[["(\\d{3})(\\d{4,7})","$1 $2",["[89]0"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["66"],"0$1"],["(\\d)(\\d{8})","$1 $2",["6"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-578]|91"],"0$1"],["(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3",["9"],"0$1"]],"0"],NO:["47","00","(?:0|[2-9]\\d{3})\\d{4}",[5,8],[["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["8"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-79]"]]],0,0,0,0,0,"[02-689]|7[0-8]"],NP:["977","00","(?:1\\d|9)\\d{9}|[1-9]\\d{7}",[8,10,11],[["(\\d)(\\d{7})","$1-$2",["1[2-6]"],"0$1"],["(\\d{2})(\\d{6})","$1-$2",["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"],"0$1"],["(\\d{3})(\\d{7})","$1-$2",["9"]]],"0"],NR:["674","00","(?:222|444|(?:55|8\\d)\\d|666|777|999)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[24-9]"]]]],NU:["683","00","(?:[4-7]|888\\d)\\d{3}",[4,7],[["(\\d{3})(\\d{4})","$1 $2",["8"]]]],NZ:["64","0(?:0|161)","[1289]\\d{9}|50\\d{5}(?:\\d{2,3})?|[27-9]\\d{7,8}|(?:[34]\\d|6[0-35-9])\\d{6}|8\\d{4,6}",[5,6,7,8,9,10],[["(\\d{2})(\\d{3,8})","$1 $2",["8[1-79]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["50[036-8]|8|90","50(?:[0367]|88)|8|90"],"0$1"],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["24|[346]|7[2-57-9]|9[2-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["2(?:10|74)|[589]"],"0$1"],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["1|2[028]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,5})","$1 $2 $3",["2(?:[169]|7[0-35-9])|7"],"0$1"]],"0",0,0,0,0,0,0,"00"],OM:["968","00","(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}",[7,8,9],[["(\\d{3})(\\d{4,6})","$1 $2",["[58]"]],["(\\d{2})(\\d{6})","$1 $2",["2"]],["(\\d{4})(\\d{4})","$1 $2",["[179]"]]]],PA:["507","00","(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}",[7,8,10,11],[["(\\d{3})(\\d{4})","$1-$2",["[1-57-9]"]],["(\\d{4})(\\d{4})","$1-$2",["[68]"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]]]],PE:["51","00|19(?:1[124]|77|90)00","(?:[14-8]|9\\d)\\d{7}",[8,9],[["(\\d{3})(\\d{5})","$1 $2",["80"],"(0$1)"],["(\\d)(\\d{7})","$1 $2",["1"],"(0$1)"],["(\\d{2})(\\d{6})","$1 $2",["[4-8]"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"]]],"0",0,0,0,0,0,0,"00"," Anexo "],PF:["689","00","4\\d{5}(?:\\d{2})?|8\\d{7,8}",[6,8,9],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["44"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4|8[7-9]"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]]]],PG:["675","00|140[1-3]","(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["18|[2-69]|85"]],["(\\d{4})(\\d{4})","$1 $2",["[78]"]]],0,0,0,0,0,0,0,"00"],PH:["63","00","(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}",[6,8,9,10,11,12,13],[["(\\d)(\\d{5})","$1 $2",["2"],"(0$1)"],["(\\d{4})(\\d{4,6})","$1 $2",["3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2","3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))"],"(0$1)"],["(\\d{5})(\\d{4})","$1 $2",["346|4(?:27|9[35])|883","3469|4(?:279|9(?:30|56))|8834"],"(0$1)"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[3-7]|8[2-8]"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]],["(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})","$1 $2 $3 $4",["1"]]],"0"],PK:["92","00","122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}",[8,9,10,11,12],[["(\\d{3})(\\d{3})(\\d{2,7})","$1 $2 $3",["[89]0"],"0$1"],["(\\d{4})(\\d{5})","$1 $2",["1"]],["(\\d{3})(\\d{6,7})","$1 $2",["2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])","9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]"],"(0$1)"],["(\\d{2})(\\d{7,8})","$1 $2",["(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"],"(0$1)"],["(\\d{5})(\\d{5})","$1 $2",["58"],"(0$1)"],["(\\d{3})(\\d{7})","$1 $2",["3"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[24-9]"],"(0$1)"]],"0"],PL:["48","00","(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}",[6,7,8,9,10],[["(\\d{5})","$1",["19"]],["(\\d{3})(\\d{3})","$1 $2",["11|20|64"]],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["30|(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1","30|(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19"]],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["64"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)"]],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[2-8]|[2-7]|8[1-79]|9[145]"]],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["8"]]]],PM:["508","00","[78]\\d{8}|[2-9]\\d{5}",[6,9],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[2-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["7"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0$1"]],"0"],PR:["1","011","(?:[589]\\d\\d|787)\\d{7}",[10],0,"1",0,0,0,0,"787|939"],PS:["970","00","[2489]2\\d{6}|(?:1\\d|5)\\d{8}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2489]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["5"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],"0"],PT:["351","00","1693\\d{5}|(?:[26-9]\\d|30)\\d{7}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["2[12]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["16|[236-9]"]]]],PW:["680","01[12]","(?:[24-8]\\d\\d|345|900)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]]],PY:["595","00","[36-8]\\d{5,8}|4\\d{6,8}|59\\d{6}|9\\d{5,10}|(?:2\\d|5[0-8])\\d{6,7}",[6,7,8,9,10,11],[["(\\d{3})(\\d{3,6})","$1 $2",["[2-9]0"],"0$1"],["(\\d{2})(\\d{5})","$1 $2",["3[289]|4[246-8]|61|7[1-3]|8[1-36]"],"(0$1)"],["(\\d{3})(\\d{4,5})","$1 $2",["2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["87"]],["(\\d{3})(\\d{6})","$1 $2",["9(?:[5-79]|8[1-7])"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]"],"0$1"],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["9"]]],"0"],QA:["974","00","800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}",[7,8,9,11],[["(\\d{3})(\\d{4})","$1 $2",["2[136]|8"]],["(\\d{4})(\\d{4})","$1 $2",["[3-7]"]]]],RE:["262","00","709\\d{6}|(?:26|[689]\\d)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[26-9]"],"0$1"]],"0",0,0,0,0,0,[["26(?:2\\d\\d|3(?:0\\d|1[0-6]))\\d{4}"],["(?:69(?:2\\d\\d|3(?:[06][0-6]|1[0-3]|2[0-2]|3[0-39]|4\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\d{4}"],["80\\d{7}"],["89[1-37-9]\\d{6}"],0,0,0,0,["9(?:399[0-3]|479[0-6]|76(?:2[278]|3[0-37]))\\d{4}"],["8(?:1[019]|2[0156]|84|90)\\d{6}"]]],RO:["40","00","(?:[236-8]\\d|90)\\d{7}|[23]\\d{5}",[6,9],[["(\\d{3})(\\d{3})","$1 $2",["2[3-6]","2[3-6]\\d9"],"0$1"],["(\\d{2})(\\d{4})","$1 $2",["219|31"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[23]1"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[236-9]"],"0$1"]],"0",0,0,0,0,0,0,0," int "],RS:["381","00","38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}",[6,7,8,9,10,11,12],[["(\\d{3})(\\d{3,9})","$1 $2",["(?:2[389]|39)0|[7-9]"],"0$1"],["(\\d{2})(\\d{5,10})","$1 $2",["[1-36]"],"0$1"]],"0"],RU:["7","810","8\\d{13}|[347-9]\\d{9}",[10,14],[["(\\d{4})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-8]|2[1-9])","7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))","7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2"],"8 ($1)",1],["(\\d{5})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-68]|2[1-9])","7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))","7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]"],"8 ($1)",1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"8 ($1)",1],["(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[349]|8(?:[02-7]|1[1-8])"],"8 ($1)",1],["(\\d{4})(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3 $4",["8"],"8 ($1)"]],"8",0,0,0,0,"[3489]",0,"8~10"],RW:["250","00","(?:06|[27]\\d\\d|[89]00)\\d{6}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[7-9]"],"0$1"]],"0"],SA:["966","00","(?:[15]\\d|800|92)\\d{7}",[9,10],[["(\\d{4})(\\d{5})","$1 $2",["9"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]]],"0"],SB:["677","0[01]","[6-9]\\d{6}|[1-6]\\d{4}",[5,7],[["(\\d{2})(\\d{5})","$1 $2",["6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])"]]]],SC:["248","010|0[0-2]","(?:[2489]\\d|64)\\d{5}",[7],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[246]|9[57]"]]],0,0,0,0,0,0,0,"00"],SD:["249","00","[19]\\d{8}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[19]"],"0$1"]],"0"],SE:["46","00","(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}",[6,7,8,9,10,12],[["(\\d{2})(\\d{2,3})(\\d{2})","$1-$2 $3",["20"],"0$1",0,"$1 $2 $3"],["(\\d{3})(\\d{4})","$1-$2",["9(?:00|39|44|9)"],"0$1",0,"$1 $2"],["(\\d{2})(\\d{3})(\\d{2})","$1-$2 $3",["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"],"0$1",0,"$1 $2 $3"],["(\\d)(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["8"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2,3})(\\d{2})","$1-$2 $3",["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"],"0$1",0,"$1 $2 $3"],["(\\d{3})(\\d{2,3})(\\d{3})","$1-$2 $3",["9(?:00|39|44)"],"0$1",0,"$1 $2 $3"],["(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"],"0$1",0,"$1 $2 $3 $4"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["10|7"],"0$1",0,"$1 $2 $3 $4"],["(\\d)(\\d{3})(\\d{3})(\\d{2})","$1-$2 $3 $4",["8"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1-$2 $3 $4",["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2})(\\d{2})(\\d{3})","$1-$2 $3 $4",["9"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4 $5",["[26]"],"0$1",0,"$1 $2 $3 $4 $5"]],"0"],SG:["65","0[0-3]\\d","(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}",[8,10,11],[["(\\d{4})(\\d{4})","$1 $2",["[369]|8(?:0[1-9]|[1-9])"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]],["(\\d{4})(\\d{4})(\\d{3})","$1 $2 $3",["7"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]]],SH:["290","00","(?:[256]\\d|8)\\d{3}",[4,5],0,0,0,0,0,0,"[256]"],SI:["386","00|10(?:22|66|88|99)","[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}",[5,6,7,8],[["(\\d{2})(\\d{3,6})","$1 $2",["8[09]|9"],"0$1"],["(\\d{3})(\\d{5})","$1 $2",["59|8"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[37][01]|4[0139]|51|6"],"0$1"],["(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1-57]"],"(0$1)"]],"0",0,0,0,0,0,0,"00"],SJ:["47","00","0\\d{4}|(?:[489]\\d|79)\\d{6}",[5,8],0,0,0,0,0,0,"79"],SK:["421","00","[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}",[6,7,9],[["(\\d)(\\d{2})(\\d{3,4})","$1 $2 $3",["21"],"0$1"],["(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3",["[3-5][1-8]1","[3-5][1-8]1[67]"],"0$1"],["(\\d)(\\d{3})(\\d{3})(\\d{2})","$1/$2 $3 $4",["2"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[689]"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1/$2 $3 $4",["[3-5]"],"0$1"]],"0"],SL:["232","00","(?:[237-9]\\d|66)\\d{6}",[8],[["(\\d{2})(\\d{6})","$1 $2",["[236-9]"],"(0$1)"]],"0"],SM:["378","00","(?:0549|[5-7]\\d)\\d{6}",[8,10],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]"]],["(\\d{4})(\\d{6})","$1 $2",["0"]]],0,0,"([89]\\d{5})$","0549$1"],SN:["221","00","(?:[378]\\d|93)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[379]"]]]],SO:["252","00","[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}",[6,7,8,9],[["(\\d{2})(\\d{4})","$1 $2",["8[125]"]],["(\\d{6})","$1",["[134]"]],["(\\d)(\\d{6})","$1 $2",["[15]|2[0-79]|3[0-46-8]|4[0-7]"]],["(\\d)(\\d{7})","$1 $2",["(?:2|90)4|[67]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[348]|64|79|90"]],["(\\d{2})(\\d{5,7})","$1 $2",["1|28|6[0-35-9]|7[67]|9[2-9]"]]],"0"],SR:["597","00","(?:[2-5]|[6-8]\\d|90)\\d{5}",[6,7],[["(\\d{2})(\\d{2})(\\d{2})","$1-$2-$3",["56"]],["(\\d{3})(\\d{3})","$1-$2",["[2-5]"]],["(\\d{3})(\\d{4})","$1-$2",["[6-9]"]]]],SS:["211","00","[19]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[19]"],"0$1"]],"0"],ST:["239","00","(?:22|9\\d)\\d{5}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[29]"]]]],SV:["503","00","[25-7]\\d{7}|(?:80\\d|900)\\d{4}(?:\\d{4})?",[7,8,11],[["(\\d{3})(\\d{4})","$1 $2",["[89]"]],["(\\d{4})(\\d{4})","$1 $2",["[25-7]"]],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[89]"]]]],SX:["1","011","7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"(5\\d{6})$|1","721$1",0,"721"],SY:["963","00","[1-359]\\d{8}|[1-5]\\d{7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-4]|5[1-3]"],"0$1",1],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[59]"],"0$1",1]],"0"],SZ:["268","00","0800\\d{4}|(?:[237]\\d|900)\\d{6}",[8,9],[["(\\d{4})(\\d{4})","$1 $2",["[0237]"]],["(\\d{5})(\\d{4})","$1 $2",["9"]]]],TA:["290","00","8\\d{3}",[4],0,0,0,0,0,0,"8"],TC:["1","011","(?:[58]\\d\\d|649|900)\\d{7}",[10],0,"1",0,"([2-479]\\d{6})$|1","649$1",0,"649"],TD:["235","00|16","(?:22|30|[689]\\d|77)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[236-9]"]]],0,0,0,0,0,0,0,"00"],TG:["228","00","[279]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[279]"]]]],TH:["66","00[1-9]","(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}",[8,9,10,13],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[13-9]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],"0"],TJ:["992","810","(?:[0-57-9]\\d|66)\\d{7}",[9],[["(\\d{6})(\\d)(\\d{2})","$1 $2 $3",["331","3317"]],["(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["44[02-479]|[34]7"]],["(\\d{4})(\\d)(\\d{4})","$1 $2 $3",["3(?:[1245]|3[12])"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["\\d"]]],0,0,0,0,0,0,0,"8~10"],TK:["690","00","[2-47]\\d{3,6}",[4,5,6,7]],TL:["670","00","7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["[2-489]|70"]],["(\\d{4})(\\d{4})","$1 $2",["7"]]]],TM:["993","810","(?:[1-6]\\d|71)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["12"],"(8 $1)"],["(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2-$3-$4",["[1-5]"],"(8 $1)"],["(\\d{2})(\\d{6})","$1 $2",["[67]"],"8 $1"]],"8",0,0,0,0,0,0,"8~10"],TN:["216","00","[2-57-9]\\d{7}",[8],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2-57-9]"]]]],TO:["676","00","(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}",[5,7],[["(\\d{2})(\\d{3})","$1-$2",["[2-4]|50|6[09]|7[0-24-69]|8[05]"]],["(\\d{4})(\\d{3})","$1 $2",["0"]],["(\\d{3})(\\d{4})","$1 $2",["[5-9]"]]]],TR:["90","00","4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}",[7,10,12,13],[["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["512|8[01589]|90"],"0$1",1],["(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5(?:[0-579]|61)","5(?:[0-579]|61[06])","5(?:[0-579]|61[06]1)"],"0$1",1],["(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24][1-8]|3[1-9]"],"(0$1)",1],["(\\d{3})(\\d{3})(\\d{6,7})","$1 $2 $3",["80"],"0$1",1]],"0"],TT:["1","011","(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([2-46-8]\\d{6})$|1","868$1",0,"868"],TV:["688","00","(?:2|7\\d\\d|90)\\d{4}",[5,6,7],[["(\\d{2})(\\d{3})","$1 $2",["2"]],["(\\d{2})(\\d{4})","$1 $2",["90"]],["(\\d{2})(\\d{5})","$1 $2",["7"]]]],TW:["886","0(?:0[25-79]|19)","[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}",[7,8,9,10,11],[["(\\d{2})(\\d)(\\d{4})","$1 $2 $3",["202"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[258]0"],"0$1"],["(\\d)(\\d{3,4})(\\d{4})","$1 $2 $3",["[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]","[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[49]"],"0$1"],["(\\d{2})(\\d{4})(\\d{4,5})","$1 $2 $3",["7"],"0$1"]],"0",0,0,0,0,0,0,0,"#"],TZ:["255","00[056]","(?:[25-8]\\d|41|90)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[24]"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["5"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[67]"],"0$1"]],"0"],UA:["380","00","[89]\\d{9}|[3-9]\\d{8}",[9,10],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]","6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]"],"0$1"],["(\\d{4})(\\d{5})","$1 $2",["3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])","3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[3-7]|89|9[1-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"],"0$1"]],"0",0,0,0,0,0,0,"0~0"],UG:["256","00[057]","800\\d{6}|(?:[29]0|[347]\\d)\\d{7}",[9],[["(\\d{4})(\\d{5})","$1 $2",["202","2024"],"0$1"],["(\\d{3})(\\d{6})","$1 $2",["[27-9]|4(?:6[45]|[7-9])"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["[34]"],"0$1"]],"0"],US:["1","011","[2-9]\\d{9}|3\\d{6}",[10],[["(\\d{3})(\\d{4})","$1-$2",["310"],0,1],["(\\d{3})(\\d{3})(\\d{4})","($1) $2-$3",["[2-9]"],0,1,"$1-$2-$3"]],"1",0,0,0,0,0,[["(?:274[27]|(?:472|983)[2-47-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[013-79]|3[0-24679]|4[167]|5[0-3]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-269])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[0378]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[0168]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-3589]|8[04-69]))[2-9]\\d{6}"],[""],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"]]],UY:["598","0(?:0|1[3-9]\\d)","0004\\d{2,9}|[1249]\\d{7}|2\\d{3,4}|(?:[49]\\d|80)\\d{5}",[4,5,6,7,8,9,10,11,12,13],[["(\\d{4,5})","$1",["21"]],["(\\d{3})(\\d{3,4})","$1 $2",["0"]],["(\\d{3})(\\d{4})","$1 $2",["[49]0|8"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1"],["(\\d{4})(\\d{4})","$1 $2",["[124]"]],["(\\d{3})(\\d{3})(\\d{2,4})","$1 $2 $3",["0"]],["(\\d{3})(\\d{3})(\\d{3})(\\d{2,4})","$1 $2 $3 $4",["0"]]],"0",0,0,0,0,0,0,"00"," int. "],UZ:["998","00","(?:20|33|[5-9]\\d)\\d{7}",[9],[["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[235-9]"]]]],VA:["39","00","0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}",[6,7,8,9,10,11,12],0,0,0,0,0,0,"06698"],VC:["1","011","(?:[58]\\d\\d|784|900)\\d{7}",[10],0,"1",0,"([2-7]\\d{6})$|1","784$1",0,"784"],VE:["58","00","[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}",[10],[["(\\d{3})(\\d{7})","$1-$2",["[24-689]"],"0$1"]],"0"],VG:["1","011","(?:284|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([2-578]\\d{6})$|1","284$1",0,"284"],VI:["1","011","[58]\\d{9}|(?:34|90)0\\d{7}",[10],0,"1",0,"([2-9]\\d{6})$|1","340$1",0,"340"],VN:["84","00","[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}",[7,8,9,10],[["(\\d{2})(\\d{5})","$1 $2",["80"],"0$1",1],["(\\d{4})(\\d{4,6})","$1 $2",["1"],0,1],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["6"],"0$1",1],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[357-9]"],"0$1",1],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["2[48]"],"0$1",1],["(\\d{3})(\\d{4})(\\d{3})","$1 $2 $3",["2"],"0$1",1]],"0"],VU:["678","00","[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}",[5,7],[["(\\d{3})(\\d{4})","$1 $2",["[57-9]"]]]],WF:["681","00","(?:40|72|8\\d{4})\\d{4}|[89]\\d{5}",[6,9],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[47-9]"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]]]],WS:["685","0","(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}",[5,6,7,10],[["(\\d{5})","$1",["[2-5]|6[1-9]"]],["(\\d{3})(\\d{3,7})","$1 $2",["[68]"]],["(\\d{2})(\\d{5})","$1 $2",["7"]]]],XK:["383","00","2\\d{7,8}|3\\d{7,11}|(?:4\\d\\d|[89]00)\\d{5}",[8,9,10,11,12],[["(\\d{3})(\\d{5})","$1 $2",["[89]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2-4]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2|39"],"0$1"],["(\\d{2})(\\d{7,10})","$1 $2",["3"],"0$1"]],"0"],YE:["967","00","(?:1|7\\d)\\d{7}|[1-7]\\d{6}",[7,8,9],[["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-6]|7(?:[24-6]|8[0-7])"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["7"],"0$1"]],"0"],YT:["262","00","7093\\d{5}|(?:80|9\\d)\\d{7}|(?:26|63)9\\d{6}",[9],0,"0",0,0,0,0,0,[["269(?:0[0-467]|15|5[0-4]|6\\d|[78]0)\\d{4}"],["(?:639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\d{4}"],["80\\d{7}"],0,0,0,0,0,["9(?:(?:39|47)8[01]|769\\d)\\d{4}"]]],ZA:["27","00","[1-79]\\d{8}|8\\d{4,9}",[5,6,7,8,9,10],[["(\\d{2})(\\d{3,4})","$1 $2",["8[1-4]"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["8[1-4]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["860"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"]],"0"],ZM:["260","00","800\\d{6}|(?:21|[579]\\d|63)\\d{7}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[28]"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["[579]"],"0$1"]],"0"],ZW:["263","00","2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}",[5,6,7,8,9,10],[["(\\d{3})(\\d{3,5})","$1 $2",["2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]"],"0$1"],["(\\d)(\\d{3})(\\d{2,4})","$1 $2 $3",["[49]"],"0$1"],["(\\d{3})(\\d{4})","$1 $2",["80"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2","2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)","2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)"],"0$1"],["(\\d{4})(\\d{6})","$1 $2",["8"],"0$1"],["(\\d{2})(\\d{3,5})","$1 $2",["1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["29[013-9]|39|54"],"0$1"],["(\\d{4})(\\d{3,5})","$1 $2",["(?:25|54)8","258|5483"],"0$1"]],"0"]},nonGeographic:{800:["800",0,"(?:00|[1-9]\\d)\\d{6}",[8],[["(\\d{4})(\\d{4})","$1 $2",["\\d"]]],0,0,0,0,0,0,[0,0,["(?:00|[1-9]\\d)\\d{6}"]]],808:["808",0,"[1-9]\\d{7}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[1-9]"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,["[1-9]\\d{7}"]]],870:["870",0,"7\\d{11}|[235-7]\\d{8}",[9,12],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235-7]"]]],0,0,0,0,0,0,[0,["(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}"],0,0,0,0,0,0,["2\\d{8}",[9]]]],878:["878",0,"10\\d{10}",[12],[["(\\d{2})(\\d{5})(\\d{5})","$1 $2 $3",["1"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,["10\\d{10}"]]],881:["881",0,"6\\d{9}|[0-36-9]\\d{8}",[9,10],[["(\\d)(\\d{3})(\\d{5})","$1 $2 $3",["[0-37-9]"]],["(\\d)(\\d{3})(\\d{5,6})","$1 $2 $3",["6"]]],0,0,0,0,0,0,[0,["6\\d{9}|[0-36-9]\\d{8}"]]],882:["882",0,"[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?",[7,8,9,10,11,12],[["(\\d{2})(\\d{5})","$1 $2",["16|342"]],["(\\d{2})(\\d{6})","$1 $2",["49"]],["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["1[36]|9"]],["(\\d{2})(\\d{4})(\\d{3})","$1 $2 $3",["3[23]"]],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["16"]],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["10|23|3(?:[15]|4[57])|4|5[12]"]],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["34"]],["(\\d{2})(\\d{4,5})(\\d{5})","$1 $2 $3",["[1-35]"]]],0,0,0,0,0,0,[0,["342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|5(?:0\\d{3}|2[0-2]))\\d{7}",[7,8,9,10,12]],0,0,0,["348[57]\\d{7}",[11]],0,0,["1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:345\\d|9[89])\\d{6}|(?:10|2(?:3|85\\d)|3(?:[15]|[69]\\d\\d)|4[15-8]|51)\\d{8}"]]],883:["883",0,"(?:[1-4]\\d|51)\\d{6,10}",[8,9,10,11,12],[["(\\d{3})(\\d{3})(\\d{2,8})","$1 $2 $3",["[14]|2[24-689]|3[02-689]|51[24-9]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["510"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["21"]],["(\\d{4})(\\d{4})(\\d{4})","$1 $2 $3",["51[13]"]],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[235]"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,["(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}"]]],888:["888",0,"\\d{11}",[11],[["(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3"]],0,0,0,0,0,0,[0,0,0,0,0,0,["\\d{11}"]]],979:["979",0,"[1359]\\d{8}",[9],[["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[1359]"]]],0,0,0,0,0,0,[0,0,0,["[1359]\\d{8}"]]]}};function xN(e,t){var n=Array.prototype.slice.call(t);return n.push(SN),e.apply(this,n)}function tb(e,t){e=e.split("-"),t=t.split("-");for(var n=e[0].split("."),r=t[0].split("."),i=0;i<3;i++){var s=Number(n[i]),a=Number(r[i]);if(s>a)return 1;if(a>s)return-1;if(!isNaN(s)&&isNaN(a))return 1;if(isNaN(s)&&!isNaN(a))return-1}return e[1]&&t[1]?e[1]>t[1]?1:e[1]<t[1]?-1:0:!e[1]&&t[1]?1:e[1]&&!t[1]?-1:0}var zN={}.constructor;function mo(e){return e!=null&&e.constructor===zN}function Po(e){"@babel/helpers - typeof";return Po=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Po(e)}function $d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function AN(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,EN(r.key),r)}}function Sd(e,t,n){return t&&AN(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function EN(e){var t=CN(e,"string");return Po(t)=="symbol"?t:t+""}function CN(e,t){if(Po(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Po(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var IN="1.2.0",jN="1.7.35",nb=" ext. ",NN=/^\d+$/,bt=(function(){function e(t){$d(this,e),Dk(t),this.metadata=t,Uk.call(this,t)}return Sd(e,[{key:"getCountries",value:function(){return Object.keys(this.metadata.countries).filter(function(n){return n!=="001"})}},{key:"getCountryMetadata",value:function(n){return this.metadata.countries[n]}},{key:"nonGeographic",value:function(){if(!(this.v1||this.v2||this.v3))return this.metadata.nonGeographic||this.metadata.nonGeographical}},{key:"hasCountry",value:function(n){return this.getCountryMetadata(n)!==void 0}},{key:"hasCallingCode",value:function(n){if(this.getCountryCodesForCallingCode(n))return!0;if(this.nonGeographic()){if(this.nonGeographic()[n])return!0}else{var r=this.countryCallingCodes()[n];if(r&&r.length===1&&r[0]==="001")return!0}}},{key:"isNonGeographicCallingCode",value:function(n){return this.nonGeographic()?!!this.nonGeographic()[n]:!this.getCountryCodesForCallingCode(n)}},{key:"country",value:function(n){return this.selectNumberingPlan(n)}},{key:"selectNumberingPlan",value:function(n,r){if(n&&NN.test(n)&&(r=n,n=null),n&&n!=="001"){if(!this.hasCountry(n))throw new Error("Unknown country: ".concat(n));this.numberingPlan=new rb(this.getCountryMetadata(n),this)}else if(r){if(!this.hasCallingCode(r))throw new Error("Unknown calling code: ".concat(r));this.numberingPlan=new rb(this.getNumberingPlanMetadata(r),this)}else this.numberingPlan=void 0;return this}},{key:"getCountryCodesForCallingCode",value:function(n){var r=this.countryCallingCodes()[n];if(r)return r.length===1&&r[0].length===3?void 0:r}},{key:"getCountryCodeForCallingCode",value:function(n){var r=this.getCountryCodesForCallingCode(n);if(r)return r[0]}},{key:"getNumberingPlanMetadata",value:function(n){var r=this.getCountryCodeForCallingCode(n);if(r)return this.getCountryMetadata(r);if(this.nonGeographic()){var i=this.nonGeographic()[n];if(i)return i}else{var s=this.countryCallingCodes()[n];if(s&&s.length===1&&s[0]==="001")return this.metadata.countries["001"]}}},{key:"countryCallingCode",value:function(){return this.numberingPlan.callingCode()}},{key:"IDDPrefix",value:function(){return this.numberingPlan.IDDPrefix()}},{key:"defaultIDDPrefix",value:function(){return this.numberingPlan.defaultIDDPrefix()}},{key:"nationalNumberPattern",value:function(){return this.numberingPlan.nationalNumberPattern()}},{key:"possibleLengths",value:function(){return this.numberingPlan.possibleLengths()}},{key:"formats",value:function(){return this.numberingPlan.formats()}},{key:"nationalPrefixForParsing",value:function(){return this.numberingPlan.nationalPrefixForParsing()}},{key:"nationalPrefixTransformRule",value:function(){return this.numberingPlan.nationalPrefixTransformRule()}},{key:"leadingDigits",value:function(){return this.numberingPlan.leadingDigits()}},{key:"hasTypes",value:function(){return this.numberingPlan.hasTypes()}},{key:"type",value:function(n){return this.numberingPlan.type(n)}},{key:"ext",value:function(){return this.numberingPlan.ext()}},{key:"countryCallingCodes",value:function(){return this.v1?this.metadata.country_phone_code_to_countries:this.metadata.country_calling_codes}},{key:"chooseCountryByCountryCallingCode",value:function(n){return this.selectNumberingPlan(n)}},{key:"hasSelectedNumberingPlan",value:function(){return this.numberingPlan!==void 0}}])})(),rb=(function(){function e(t,n){$d(this,e),this.globalMetadataObject=n,this.metadata=t,Uk.call(this,n.metadata)}return Sd(e,[{key:"callingCode",value:function(){return this.metadata[0]}},{key:"getDefaultCountryMetadataForRegion",value:function(){return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode())}},{key:"IDDPrefix",value:function(){if(!(this.v1||this.v2))return this.metadata[1]}},{key:"defaultIDDPrefix",value:function(){if(!(this.v1||this.v2))return this.metadata[12]}},{key:"nationalNumberPattern",value:function(){return this.v1||this.v2?this.metadata[1]:this.metadata[2]}},{key:"possibleLengths",value:function(){if(!this.v1)return this.metadata[this.v2?2:3]}},{key:"_getFormats",value:function(n){return n[this.v1?2:this.v2?3:4]}},{key:"formats",value:function(){var n=this,r=this._getFormats(this.metadata)||this._getFormats(this.getDefaultCountryMetadataForRegion())||[];return r.map(function(i){return new TN(i,n)})}},{key:"nationalPrefix",value:function(){return this.metadata[this.v1?3:this.v2?4:5]}},{key:"_getNationalPrefixFormattingRule",value:function(n){return n[this.v1?4:this.v2?5:6]}},{key:"nationalPrefixFormattingRule",value:function(){return this._getNationalPrefixFormattingRule(this.metadata)||this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion())}},{key:"_nationalPrefixForParsing",value:function(){return this.metadata[this.v1?5:this.v2?6:7]}},{key:"nationalPrefixForParsing",value:function(){return this._nationalPrefixForParsing()||this.nationalPrefix()}},{key:"nationalPrefixTransformRule",value:function(){return this.metadata[this.v1?6:this.v2?7:8]}},{key:"_getNationalPrefixIsOptionalWhenFormatting",value:function(){return!!this.metadata[this.v1?7:this.v2?8:9]}},{key:"nationalPrefixIsOptionalWhenFormattingInNationalFormat",value:function(){return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata)||this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion())}},{key:"leadingDigits",value:function(){return this.metadata[this.v1?8:this.v2?9:10]}},{key:"types",value:function(){return this.metadata[this.v1?9:this.v2?10:11]}},{key:"hasTypes",value:function(){return this.types()&&this.types().length===0?!1:!!this.types()}},{key:"type",value:function(n){if(this.hasTypes()&&ib(this.types(),n))return new ON(ib(this.types(),n),this)}},{key:"ext",value:function(){return this.v1||this.v2?nb:this.metadata[13]||nb}}])})(),TN=(function(){function e(t,n){$d(this,e),this._format=t,this.metadata=n}return Sd(e,[{key:"pattern",value:function(){return this._format[0]}},{key:"format",value:function(){return this._format[1]}},{key:"leadingDigitsPatterns",value:function(){return this._format[2]||[]}},{key:"nationalPrefixFormattingRule",value:function(){return this._format[3]||this.metadata.nationalPrefixFormattingRule()}},{key:"nationalPrefixIsOptionalWhenFormattingInNationalFormat",value:function(){return!!this._format[4]||this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat()}},{key:"nationalPrefixIsMandatoryWhenFormattingInNationalFormat",value:function(){return this.usesNationalPrefix()&&!this.nationalPrefixIsOptionalWhenFormattingInNationalFormat()}},{key:"usesNationalPrefix",value:function(){return!!(this.nationalPrefixFormattingRule()&&!PN.test(this.nationalPrefixFormattingRule()))}},{key:"internationalFormat",value:function(){return this._format[5]||this.format()}}])})(),PN=/^\(?\$1\)?$/,ON=(function(){function e(t,n){$d(this,e),this.type=t,this.metadata=n}return Sd(e,[{key:"pattern",value:function(){return this.metadata.v1?this.type:this.type[0]}},{key:"possibleLengths",value:function(){if(!this.metadata.v1)return this.type[1]||this.metadata.possibleLengths()}}])})();function ib(e,t){switch(t){case"FIXED_LINE":return e[0];case"MOBILE":return e[1];case"TOLL_FREE":return e[2];case"PREMIUM_RATE":return e[3];case"PERSONAL_NUMBER":return e[4];case"VOICEMAIL":return e[5];case"UAN":return e[6];case"PAGER":return e[7];case"VOIP":return e[8];case"SHARED_COST":return e[9]}}function Dk(e){if(!e)throw new Error("[libphonenumber-js] `metadata` argument not passed. Check your arguments.");if(!mo(e)||!mo(e.countries))throw new Error("[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got ".concat(mo(e)?"an object of shape: { "+Object.keys(e).join(", ")+" }":"a "+RN(e)+": "+e,"."))}var RN=function(t){return Po(t)};function P_(e,t){if(t=new bt(t),t.hasCountry(e))return t.selectNumberingPlan(e).countryCallingCode();throw new Error("Unknown country: ".concat(e))}function LN(e,t){return t.countries.hasOwnProperty(e)}function Uk(e){var t=e.version;typeof t=="number"?(this.v1=t===1,this.v2=t===2,this.v3=t===3,this.v4=t===4):t?tb(t,IN)===-1?this.v2=!0:tb(t,jN)===-1?this.v3=!0:this.v4=!0:this.v1=!0}function O_(e,t,n){return DN(e,t,void 0,n)}function DN(e,t,n,r){t&&(r=new bt(r.metadata),r.selectNumberingPlan(t));var i=r.type(n),s=i&&i.possibleLengths()||r.possibleLengths();if(!s)return"IS_POSSIBLE";var a=e.length,c=s[0];return c===a?"IS_POSSIBLE":c>a?"TOO_SHORT":s[s.length-1]<a?"TOO_LONG":s.indexOf(a,1)>=0?"IS_POSSIBLE":"INVALID_LENGTH"}function UN(e,t,n){if(t===void 0&&(t={}),n=new bt(n),t.v2){if(!e.countryCallingCode)throw new Error("Invalid phone number object passed");n.selectNumberingPlan(e.countryCallingCode)}else{if(!e.phone)return!1;if(e.country){if(!n.hasCountry(e.country))throw new Error("Unknown country: ".concat(e.country));n.selectNumberingPlan(e.country)}else{if(!e.countryCallingCode)throw new Error("Invalid phone number object passed");n.selectNumberingPlan(e.countryCallingCode)}}if(n.possibleLengths())return Bk(e.phone||e.nationalNumber,e.country,n);if(e.countryCallingCode&&n.isNonGeographicCallingCode(e.countryCallingCode))return!0;throw new Error('Missing "possibleLengths" in metadata. Perhaps the metadata has been generated before v1.0.18.')}function Bk(e,t,n){return O_(e,t,n)==="IS_POSSIBLE"}function ir(e,t){return e=e||"",new RegExp("^(?:"+t+")$").test(e)}function BN(e,t){var n=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=MN(e))||t){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
83
83
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function MN(e,t){if(e){if(typeof e=="string")return ob(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ob(e,t):void 0}}function ob(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var qN=["MOBILE","PREMIUM_RATE","TOLL_FREE","SHARED_COST","VOIP","PERSONAL_NUMBER","PAGER","UAN","VOICEMAIL"];function R_(e,t,n){if(t=t||{},!(!e.country&&!e.countryCallingCode)){n=new bt(n),n.selectNumberingPlan(e.country,e.countryCallingCode);var r=t.v2?e.nationalNumber:e.phone;if(ir(r,n.nationalNumberPattern())){if(dp(r,"FIXED_LINE",n))return n.type("MOBILE")&&n.type("MOBILE").pattern()===""||!n.type("MOBILE")||dp(r,"MOBILE",n)?"FIXED_LINE_OR_MOBILE":"FIXED_LINE";for(var i=BN(qN),s;!(s=i()).done;){var a=s.value;if(dp(r,a,n))return a}}}}function dp(e,t,n){var r=n.type(t);return!r||!r.pattern()||r.possibleLengths()&&r.possibleLengths().indexOf(e.length)<0?!1:ir(e,r.pattern())}function FN(e,t,n){if(t=t||{},n=new bt(n),n.selectNumberingPlan(e.country,e.countryCallingCode),n.hasTypes())return R_(e,t,n.metadata)!==void 0;var r=t.v2?e.nationalNumber:e.phone;return ir(r,n.nationalNumberPattern())}function HN(e,t,n){var r=new bt(n),i=r.getCountryCodesForCallingCode(e);return i?i.filter(function(s){return VN(t,s,n)}):[]}function VN(e,t,n){var r=new bt(n);return r.selectNumberingPlan(t),r.numberingPlan.possibleLengths().indexOf(e.length)>=0}var L_=2,KN=17,GN=3,mn="0-90-9٠-٩۰-۹",WN="-‐-―−ー-",JN="//",ZN="..",XN=" ",YN="()()[]\\[\\]",QN="~⁓∼~",tu="".concat(WN).concat(JN).concat(ZN).concat(XN).concat(YN).concat(QN),D_="++",eT=new RegExp("(["+mn+"])");function tT(e,t,n,r){if(t){var i=new bt(r);i.selectNumberingPlan(t,n);var s=new RegExp(i.IDDPrefix());if(e.search(s)===0){e=e.slice(e.match(s)[0].length);var a=e.match(eT);if(!(a&&a[1]!=null&&a[1].length>0&&a[1]==="0"))return e}}}function nT(e,t){if(e&&t.numberingPlan.nationalPrefixForParsing()){var n=new RegExp("^(?:"+t.numberingPlan.nationalPrefixForParsing()+")"),r=n.exec(e);if(r){var i,s,a=r.length-1,c=a>0&&r[a];if(t.nationalPrefixTransformRule()&&c)i=e.replace(n,t.nationalPrefixTransformRule()),a>1&&(s=r[1]);else{var l=r[0];i=e.slice(l.length),c&&(s=r[1])}var u;if(c){var d=e.indexOf(r[1]),f=e.slice(0,d);f===t.numberingPlan.nationalPrefix()&&(u=t.numberingPlan.nationalPrefix())}else u=r[0];return{nationalNumber:i,nationalPrefix:u,carrierCode:s}}}return{nationalNumber:e}}function rT(e,t){var n=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=iT(e))||t){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
84
84
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function iT(e,t){if(e){if(typeof e=="string")return sb(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?sb(e,t):void 0}}function sb(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function oT(e,t){var n=t.countries,r=t.metadata;r=new bt(r);for(var i=rT(n),s;!(s=i()).done;){var a=s.value;if(r.selectNumberingPlan(a),r.leadingDigits()){if(e&&e.search(r.leadingDigits())===0)return a}else if(R_({phone:e,country:a},void 0,r.metadata))return a}}function Mk(e,t){var n=t.nationalNumber,r=t.metadata,i=r.getCountryCodesForCallingCode(e);if(i)return i.length===1?i[0]:oT(n,{countries:i,metadata:r.metadata})}function K0(e,t,n){var r=nT(e,n),i=r.carrierCode,s=r.nationalNumber;if(s!==e){if(!sT(e,s,n))return{nationalNumber:e};if(n.numberingPlan.possibleLengths()&&(t||(t=Mk(n.numberingPlan.callingCode(),{nationalNumber:s,metadata:n})),!aT(s,t,n)))return{nationalNumber:e}}return{nationalNumber:s,carrierCode:i}}function sT(e,t,n){return!(ir(e,n.nationalNumberPattern())&&!ir(t,n.nationalNumberPattern()))}function aT(e,t,n){switch(O_(e,t,n)){case"TOO_SHORT":case"INVALID_LENGTH":return!1;default:return!0}}function cT(e,t,n,r,i){var s=n?P_(n,i):r;if(e.indexOf(s)===0){i=new bt(i),i.selectNumberingPlan(n,s);var a=e.slice(s.length),c=K0(a,t,i),l=c.nationalNumber,u=K0(e,t,i),d=u.nationalNumber;if(!ir(d,i.nationalNumberPattern())&&ir(l,i.nationalNumberPattern())||O_(d,t,i)==="TOO_LONG")return{countryCallingCode:s,number:a}}return{number:e}}function qk(e,t,n,r,i){if(!e)return{};var s;if(e[0]!=="+"){var a=tT(e,n,r,i);if(a&&a!==e)s=!0,e="+"+a;else{if(n||r){var c=cT(e,t,n,r,i),l=c.countryCallingCode,u=c.number;if(l)return{countryCallingCodeSource:"FROM_NUMBER_WITHOUT_PLUS_SIGN",countryCallingCode:l,number:u}}return{number:e}}}if(e[1]==="0")return{};i=new bt(i);for(var d=2;d-1<=GN&&d<=e.length;){var f=e.slice(1,d);if(i.hasCallingCode(f))return i.selectNumberingPlan(f),{countryCallingCodeSource:s?"FROM_NUMBER_WITH_IDD":"FROM_NUMBER_WITH_PLUS_SIGN",countryCallingCode:f,number:e.slice(d)};d++}return{}}function lT(e){return e.replace(new RegExp("[".concat(tu,"]+"),"g")," ").trim()}var uT=/(\$\d)/;function dT(e,t,n){var r=n.useInternationalFormat,i=n.withNationalPrefix,s=e.replace(new RegExp(t.pattern()),r?t.internationalFormat():i&&t.nationalPrefixFormattingRule()?t.format().replace(uT,t.nationalPrefixFormattingRule()):t.format());return r?lT(s):s}var pT=/^[\d]+(?:[~\u2053\u223C\uFF5E][\d]+)?$/;function fT(e,t,n){var r=new bt(n);if(r.selectNumberingPlan(e,t),r.defaultIDDPrefix())return r.defaultIDDPrefix();if(pT.test(r.IDDPrefix()))return r.IDDPrefix()}var hT=";ext=",Vi=function(t){return"([".concat(mn,"]{1,").concat(t,"})")};function Fk(e){var t="20",n="15",r="9",i="6",s="[ \\t,]*",a="[:\\..]?[ \\t,-]*",c="#?",l="(?:e?xt(?:ensi(?:ó?|ó))?n?|e?xtn?|доб|anexo)",u="(?:[xx##~~]|int|int)",d="[- ]+",f="[ \\t]*",p="(?:,{2}|;)",h=hT+Vi(t),_=s+l+a+Vi(t)+c,g=s+u+a+Vi(r)+c,y=d+Vi(i)+"#",m=f+p+a+Vi(n)+c,w=f+"(?:,)+"+a+Vi(r)+c;return h+"|"+_+"|"+g+"|"+y+"|"+m+"|"+w}var _T="["+mn+"]{"+L_+"}",mT="["+D_+"]{0,1}(?:["+tu+"]*["+mn+"]){3,}["+tu+mn+"]*",gT=new RegExp("^["+D_+"]{0,1}(?:["+tu+"]*["+mn+"]){1,2}$","i"),yT=mT+"(?:"+Fk()+")?",bT=new RegExp("^"+_T+"$|^"+yT+"$","i");function vT(e){return e.length>=L_&&bT.test(e)}function wT(e){return gT.test(e)}function kT(e){var t=e.number,n=e.ext;if(!t)return"";if(t[0]!=="+")throw new Error('"formatRFC3966()" expects "number" to be in E.164 format.');return"tel:".concat(t).concat(n?";ext="+n:"")}var ab={formatExtension:function(t,n,r){return"".concat(t).concat(r.ext()).concat(n)}};function $T(e,t,n,r){if(n?n=zT({},ab,n):n=ab,r=new bt(r),e.country&&e.country!=="001"){if(!r.hasCountry(e.country))throw new Error("Unknown country: ".concat(e.country));r.selectNumberingPlan(e.country)}else if(e.countryCallingCode)r.selectNumberingPlan(e.countryCallingCode);else return e.phone||"";var i=r.countryCallingCode(),s=n.v2?e.nationalNumber:e.phone,a;switch(t){case"NATIONAL":return s?(a=nu(s,e.carrierCode,"NATIONAL",r,n),pp(a,e.ext,r,n.formatExtension)):"";case"INTERNATIONAL":return s?(a=nu(s,null,"INTERNATIONAL",r,n),a="+".concat(i," ").concat(a),pp(a,e.ext,r,n.formatExtension)):"+".concat(i);case"E.164":return"+".concat(i).concat(s);case"RFC3966":return kT({number:"+".concat(i).concat(s),ext:e.ext});case"IDD":if(!n.fromCountry)return;var c=xT(s,e.carrierCode,i,n.fromCountry,r);return c?pp(c,e.ext,r,n.formatExtension):void 0;default:throw new Error('Unknown "format" argument passed to "formatNumber()": "'.concat(t,'"'))}}function nu(e,t,n,r,i){var s=ST(r.formats(),e);return s?dT(e,s,{useInternationalFormat:n==="INTERNATIONAL",withNationalPrefix:!(s.nationalPrefixIsOptionalWhenFormattingInNationalFormat()&&i&&i.nationalPrefix===!1)}):e}function ST(e,t){return AT(e,function(n){if(n.leadingDigitsPatterns().length>0){var r=n.leadingDigitsPatterns()[n.leadingDigitsPatterns().length-1];if(t.search(r)!==0)return!1}return ir(t,n.pattern())})}function pp(e,t,n,r){return t?r(e,t,n):e}function xT(e,t,n,r,i){var s=P_(r,i.metadata);if(s===n){var a=nu(e,t,"NATIONAL",i);return n==="1"?n+" "+a:a}var c=fT(r,void 0,i.metadata);if(c)return"".concat(c," ").concat(n," ").concat(nu(e,null,"INTERNATIONAL",i))}function zT(){for(var e=1,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];for(;e<n.length;){if(n[e])for(var i in n[e])n[0][i]=n[e][i];e++}return n[0]}function AT(e,t){for(var n=0;n<e.length;){if(t(e[n]))return e[n];n++}}function ya(e){"@babel/helpers - typeof";return ya=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ya(e)}function cb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function lb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?cb(Object(n),!0).forEach(function(r){ET(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):cb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function ET(e,t,n){return(t=Hk(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function CT(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function IT(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Hk(r.key),r)}}function jT(e,t,n){return t&&IT(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Hk(e){var t=NT(e,"string");return ya(t)=="symbol"?t:t+""}function NT(e,t){if(ya(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(ya(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var TT=(function(){function e(t,n,r){if(CT(this,e),!t)throw new TypeError("First argument is required");if(typeof t!="string")throw new TypeError("First argument must be a string");if(t[0]==="+"&&!n)throw new TypeError("`metadata` argument not passed");if(mo(n)&&mo(n.countries)){r=n;var i=t;if(!RT.test(i))throw new Error('Invalid `number` argument passed: must consist of a "+" followed by digits');var s=qk(i,void 0,void 0,void 0,r),a=s.countryCallingCode,c=s.number;if(n=c,t=a,!n)throw new Error("Invalid `number` argument passed: too short")}if(!n)throw new TypeError("`nationalNumber` argument is required");if(typeof n!="string")throw new TypeError("`nationalNumber` argument must be a string");Dk(r);var l=OT(t,r),u=l.country,d=l.countryCallingCode;this.country=u,this.countryCallingCode=d,this.nationalNumber=n,this.number="+"+this.countryCallingCode+this.nationalNumber,this.getMetadata=function(){return r}}return jT(e,[{key:"setExt",value:function(n){this.ext=n}},{key:"getPossibleCountries",value:function(){return this.country?[this.country]:HN(this.countryCallingCode,this.nationalNumber,this.getMetadata())}},{key:"isPossible",value:function(){return UN(this,{v2:!0},this.getMetadata())}},{key:"isValid",value:function(){return FN(this,{v2:!0},this.getMetadata())}},{key:"isNonGeographic",value:function(){var n=new bt(this.getMetadata());return n.isNonGeographicCallingCode(this.countryCallingCode)}},{key:"isEqual",value:function(n){return this.number===n.number&&this.ext===n.ext}},{key:"getType",value:function(){return R_(this,{v2:!0},this.getMetadata())}},{key:"format",value:function(n,r){return $T(this,n,r?lb(lb({},r),{},{v2:!0}):{v2:!0},this.getMetadata())}},{key:"formatNational",value:function(n){return this.format("NATIONAL",n)}},{key:"formatInternational",value:function(n){return this.format("INTERNATIONAL",n)}},{key:"getURI",value:function(n){return this.format("RFC3966",n)}}])})(),PT=function(t){return/^[A-Z]{2}$/.test(t)};function OT(e,t){var n,r,i=new bt(t);return PT(e)?(n=e,i.selectNumberingPlan(n),r=i.countryCallingCode()):r=e,{country:n,countryCallingCode:r}}var RT=/^\+\d+$/;function G0(e){"@babel/helpers - typeof";return G0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},G0(e)}function LT(e,t,n){return Object.defineProperty(e,"prototype",{writable:!1}),e}function DT(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function UT(e,t,n){return t=va(t),BT(e,U_()?Reflect.construct(t,n||[],va(e).constructor):t.apply(e,n))}function BT(e,t){if(t&&(G0(t)=="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return MT(e)}function MT(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function qT(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&ba(e,t)}function W0(e){var t=typeof Map=="function"?new Map:void 0;return W0=function(r){if(r===null||!HT(r))return r;if(typeof r!="function")throw new TypeError("Super expression must either be null or a function");if(t!==void 0){if(t.has(r))return t.get(r);t.set(r,i)}function i(){return FT(r,arguments,va(this).constructor)}return i.prototype=Object.create(r.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),ba(i,r)},W0(e)}function FT(e,t,n){if(U_())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&ba(i,n.prototype),i}function U_(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(U_=function(){return!!e})()}function HT(e){try{return Function.toString.call(e).indexOf("[native code]")!==-1}catch{return typeof e=="function"}}function ba(e,t){return ba=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},ba(e,t)}function va(e){return va=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},va(e)}var Gn=(function(e){function t(n){var r;return DT(this,t),r=UT(this,t,[n]),Object.setPrototypeOf(r,t.prototype),r.name=r.constructor.name,r}return qT(t,e),LT(t)})(W0(Error)),ub=new RegExp("(?:"+Fk()+")$","i");function VT(e){var t=e.search(ub);if(t<0)return{};for(var n=e.slice(0,t),r=e.match(ub),i=1;i<r.length;){if(r[i])return{number:n,ext:r[i]};i++}}var KT={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","0":"0","1":"1","2":"2","3":"3","4":"4","5":"5","6":"6","7":"7","8":"8","9":"9","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9"};function GT(e){return KT[e]}function WT(e,t){var n=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=JT(e))||t){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
85
85
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function JT(e,t){if(e){if(typeof e=="string")return db(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?db(e,t):void 0}}function db(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function pb(e){for(var t="",n=WT(e.split("")),r;!(r=n()).done;){var i=r.value;t+=ZT(i,t)||""}return t}function ZT(e,t,n){return e==="+"?t?void 0:"+":GT(e)}var Vk="+",XT="[\\-\\.\\(\\)]?",fb="(["+mn+"]|"+XT+")",YT="^\\"+Vk+fb+"*["+mn+"]"+fb+"*$",QT=new RegExp(YT,"g"),J0=mn,eP="["+J0+"]+((\\-)*["+J0+"])*",tP="a-zA-Z",nP="["+tP+"]+((\\-)*["+J0+"])*",rP="^("+eP+"\\.)*"+nP+"\\.?$",iP=new RegExp(rP,"g"),hb="tel:",Z0=";phone-context=",oP=";isub=";function sP(e){var t=e.indexOf(Z0);if(t<0)return null;var n=t+Z0.length;if(n>=e.length)return"";var r=e.indexOf(";",n);return r>=0?e.substring(n,r):e.substring(n)}function aP(e){return e===null?!0:e.length===0?!1:QT.test(e)||iP.test(e)}function cP(e,t){var n=t.extractFormattedPhoneNumber,r=sP(e);if(!aP(r))throw new Gn("NOT_A_NUMBER");var i;if(r===null)i=n(e)||"";else{i="",r.charAt(0)===Vk&&(i+=r);var s=e.indexOf(hb),a;s>=0?a=s+hb.length:a=0;var c=e.indexOf(Z0);i+=e.substring(a,c)}var l=i.indexOf(oP);if(l>0&&(i=i.substring(0,l)),i!=="")return i}var lP=250,uP=new RegExp("["+D_+mn+"]"),dP=new RegExp("[^"+mn+"#]+$");function pP(e,t,n){if(t=t||{},n=new bt(n),t.defaultCountry&&!n.hasCountry(t.defaultCountry))throw t.v2?new Gn("INVALID_COUNTRY"):new Error("Unknown country: ".concat(t.defaultCountry));var r=hP(e,t.v2,t.extract),i=r.number,s=r.ext,a=r.error;if(!i){if(t.v2)throw a==="TOO_SHORT"?new Gn("TOO_SHORT"):new Gn("NOT_A_NUMBER");return{}}var c=mP(i,t.defaultCountry,t.defaultCallingCode,n),l=c.country,u=c.nationalNumber,d=c.countryCallingCode,f=c.countryCallingCodeSource,p=c.carrierCode;if(!n.hasSelectedNumberingPlan()){if(t.v2)throw new Gn("INVALID_COUNTRY");return{}}if(!u||u.length<L_){if(t.v2)throw new Gn("TOO_SHORT");return{}}if(u.length>KN){if(t.v2)throw new Gn("TOO_LONG");return{}}if(t.v2){var h=new TT(d,u,n.metadata);return l&&(h.country=l),p&&(h.carrierCode=p),s&&(h.ext=s),h.__countryCallingCodeSource=f,h}var _=(t.extended?n.hasSelectedNumberingPlan():l)?ir(u,n.nationalNumberPattern()):!1;return t.extended?{country:l,countryCallingCode:d,carrierCode:p,valid:_,possible:_?!0:!!(t.extended===!0&&n.possibleLengths()&&Bk(u,l,n)),phone:u,ext:s}:_?_P(l,u,s):{}}function fP(e,t,n){if(e){if(e.length>lP){if(n)throw new Gn("TOO_LONG");return}if(t===!1)return e;var r=e.search(uP);if(!(r<0))return e.slice(r).replace(dP,"")}}function hP(e,t,n){var r=cP(e,{extractFormattedPhoneNumber:function(a){return fP(a,n,t)}});if(!r)return{};if(!vT(r))return wT(r)?{error:"TOO_SHORT"}:{};var i=VT(r);return i.ext?i:{number:r}}function _P(e,t,n){var r={country:e,phone:t};return n&&(r.ext=n),r}function mP(e,t,n,r){var i=qk(pb(e),void 0,t,n,r.metadata),s=i.countryCallingCodeSource,a=i.countryCallingCode,c=i.number,l;if(a)r.selectNumberingPlan(a);else if(c&&(t||n))r.selectNumberingPlan(t,n),t&&(l=t),a=n||P_(t,r.metadata);else return{};if(!c)return{countryCallingCodeSource:s,countryCallingCode:a};var u=K0(pb(c),l,r),d=u.nationalNumber,f=u.carrierCode,p=Mk(a,{nationalNumber:d,metadata:r});return p&&(l=p,p==="001"||r.selectNumberingPlan(l)),{country:l,countryCallingCode:a,countryCallingCodeSource:s,nationalNumber:d,carrierCode:f}}function wa(e){"@babel/helpers - typeof";return wa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},wa(e)}function _b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function mb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?_b(Object(n),!0).forEach(function(r){gP(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_b(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function gP(e,t,n){return(t=yP(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yP(e){var t=bP(e,"string");return wa(t)=="symbol"?t:t+""}function bP(e,t){if(wa(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(wa(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function vP(e,t,n){return pP(e,mb(mb({},t),{},{v2:!0}),n)}function ka(e){"@babel/helpers - typeof";return ka=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ka(e)}function gb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function wP(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?gb(Object(n),!0).forEach(function(r){kP(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function kP(e,t,n){return(t=$P(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $P(e){var t=SP(e,"string");return ka(t)=="symbol"?t:t+""}function SP(e,t){if(ka(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(ka(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function xP(e,t){return CP(e)||EP(e,t)||AP(e,t)||zP()}function zP(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
86
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function AP(e,t){if(e){if(typeof e=="string")return yb(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?yb(e,t):void 0}}function yb(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function EP(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,s,a,c=[],l=!0,u=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(l=(r=s.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(d){u=!0,i=d}finally{try{if(!l&&n.return!=null&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw i}}return c}}function CP(e){if(Array.isArray(e))return e}function IP(e){var t=Array.prototype.slice.call(e),n=xP(t,4),r=n[0],i=n[1],s=n[2],a=n[3],c,l,u;if(typeof r=="string")c=r;else throw new TypeError("A text for parsing must be a string.");if(!i||typeof i=="string")a?(l=s,u=a):(l=void 0,u=s),i&&(l=wP({defaultCountry:i},l));else if(mo(i))s?(l=i,u=s):u=i;else throw new Error("Invalid second argument: ".concat(i));return{text:c,options:l,metadata:u}}function $a(e){"@babel/helpers - typeof";return $a=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},$a(e)}function bb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function vb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?bb(Object(n),!0).forEach(function(r){jP(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function jP(e,t,n){return(t=NP(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function NP(e){var t=TP(e,"string");return $a(t)=="symbol"?t:t+""}function TP(e,t){if($a(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if($a(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function PP(e,t,n){t&&t.defaultCountry&&!LN(t.defaultCountry,n)&&(t=vb(vb({},t),{},{defaultCountry:void 0}));try{return vP(e,t,n)}catch(r){if(!(r instanceof Gn))throw r}}function OP(){var e=IP(arguments),t=e.text,n=e.options,r=e.metadata;return PP(t,n,r)}function RP(){return xN(OP,arguments)}function os(e,t="US"){const n=e.trim();if(n.includes("@")){const r=n.toLowerCase(),i=/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r);return{connectionType:"email",normalized:i?r:null,isValid:i,provider:"email"}}else if(/^\+?\d[\d\s\-().]*$/.test(n)){const r=RP(n,{defaultCountry:t});return r&&r.isValid()?{connectionType:"sms",normalized:r.number,isValid:!0,provider:"sms"}:{connectionType:"sms",normalized:null,isValid:!1,provider:"sms"}}else return{connectionType:"username",normalized:n,isValid:!0,provider:Te}}function B_(e){let t=e.trim();t.startsWith("[")&&t.endsWith("]")&&(t=t.slice(1,-1));const n=t.indexOf("%");return n!==-1&&(t=t.slice(0,n)),t}function LP(e){const n=B_(e).split(".");return n.length!==4?!1:n.every(r=>/^\d+$/.test(r)&&Number(r)>=0&&Number(r)<=255)}function DP(e){const t=B_(e);if(t.length<2||t.indexOf(":")===-1||!/^[0-9a-fA-F:.]+$/.test(t))return!1;const n=t.split(":");return t.includes("::")?n.length<=8:n.length===8}function UP(e){let t=e.trim();const n=/^\[([^\]]+)\](?::\d+)?$/,r=t.match(n);if(r&&r[1])return r[1];const i=t.lastIndexOf(":");if(i!==-1){const s=t.slice(0,i),a=t.slice(i+1);/^[0-9.]+$/.test(s)&&/^\d+$/.test(a)&&(t=s)}return t}function wb(e){if(!e)return null;const t=B_(UP(e));return LP(t)?{family:4,normalized:t}:DP(t)?{family:6,normalized:t.toLowerCase()}:null}function kb(e){if(e.includes("::")){let[t,n]=e.split("::"),r=t?t.split(":").filter(Boolean):[],i=n?n.split(":").filter(Boolean):[],s=8-(r.length+i.length);return[...r.map(a=>a.toLowerCase()||"0"),...Array(s).fill("0"),...i.map(a=>a.toLowerCase()||"0")]}else return e.split(":").map(t=>t.toLowerCase()||"0")}function BP(e,t,n=!0){const r=wb(e),i=wb(t);if(!r||!i||r.family!==i.family)return!1;if(r.family===4)return r.normalized===i.normalized;const s=kb(r.normalized),a=kb(i.normalized);return n?s.length===8&&a.length===8&&s.join(":")===a.join(":"):s.slice(0,4).join(":")===a.slice(0,4).join(":")}class qt extends Error{location;status;constructor(t,n=302){super(`Redirect to ${t}`),this.name=qt.name,this.location=t,this.status=n}}const MP=o.z.object({client_id:o.z.string(),username:o.z.string().transform(e=>e.toLowerCase()),otp:o.z.string(),authParams:Xs.optional(),enforceIpCheck:o.z.boolean().optional().default(!1)});async function Kk(e,{client_id:t,username:n,otp:r,authParams:i,enforceIpCheck:s=!1}){const a=e.get("ip"),c=e.get("countryCode"),{connectionType:l,normalized:u}=os(n,c);if(!u)throw new W(400,{message:"Invalid username format"});const d=await qe(e.env,t,e.var.tenant_id),{env:f}=e,p=await f.data.codes.get(d.tenant.id,r,"otp");if(!p)throw new W(400,{message:he("code_invalid")});if(p.expires_at<new Date().toISOString())throw new W(400,{message:he("code_expired")});if(p.used_at)throw new W(400,{message:he("code_used")});const h=await f.data.loginSessions.get(d.tenant.id,p.login_id);if(!h||h.authParams.username!==n)throw new W(400,{message:"Code not found or expired"});if(s&&h.ip&&a&&!BP(h.ip,a))throw new qt(`${wt(e.env)}invalid-session?state=${h.id}`);const _=await Eu(e,{client:d,username:u,provider:l,connection:l,isSocial:!1,ip:e.var.ip});return await f.data.codes.used(d.tenant.id,r),{user:_,client:d,loginSession:h,session_id:h.session_id,authParams:{...h.authParams,...i||{}}}}async function xd(e,t){const n=await Kk(e,t);return gt(e,{authParams:n.authParams,client:n.client,user:n.user,loginSession:n.loginSession,authStrategy:{strategy:"email",strategy_type:"passwordless"}})}const $b=o.z.object({client_id:o.z.string().optional(),client_secret:o.z.string().optional()}),Sb=o.z.union([Lk.extend($b.shape),o.z.object({grant_type:o.z.literal("authorization_code"),client_id:o.z.string(),code:o.z.string(),redirect_uri:o.z.string(),code_verifier:o.z.string().min(43).max(128),organization:o.z.string().optional()}),o.z.object({grant_type:o.z.literal("authorization_code"),code:o.z.string(),redirect_uri:o.z.string().optional(),organization:o.z.string().optional(),...$b.shape}),o.z.object({grant_type:o.z.literal("refresh_token"),client_id:o.z.string().optional(),refresh_token:o.z.string(),redirect_uri:o.z.string().optional(),client_secret:o.z.string().optional()}),o.z.object({grant_type:o.z.literal("http://auth0.com/oauth/grant-type/passwordless/otp"),client_id:o.z.string(),username:o.z.string(),otp:o.z.string(),realm:o.z.enum(["email","sms"])})]);function qP(e){if(!e)return{};const[t,n]=e.split(" ");if(t?.toLowerCase()==="basic"&&n){const[r,i]=atob(n).split(":");return{client_id:r,client_secret:i}}return{}}const FP=new o.OpenAPIHono().openapi(o.createRoute({tags:["oauth2"],method:"post",path:"/",request:{body:{content:{"application/x-www-form-urlencoded":{schema:Sb},"application/json":{schema:Sb}}}},responses:{200:{content:{"application/json":{schema:kh}},description:"Tokens"},302:{description:"Redirect for further user interaction (e.g., MFA, consent).",headers:o.z.object({Location:o.z.string().url()}).openapi({})},400:{description:"Bad Request - The request was malformed or invalid.",content:{"application/json":{schema:o.z.object({error:o.z.string(),error_description:o.z.string().optional()})}}},401:{description:"Unauthorized - Client authentication failed.",content:{"application/json":{schema:o.z.object({error:o.z.string(),error_description:o.z.string().optional()})}}},403:{description:"Forbidden - User is not a member of the required organization.",content:{"application/json":{schema:o.z.object({error:o.z.string(),error_description:o.z.string().optional()})}}}}}),async e=>{const n=(e.req.header("Content-Type")||"").includes("application/json")?e.req.valid("json"):e.req.valid("form"),r=qP(e.req.header("Authorization")),i={...n,...r};if(!i.client_id)throw new I(400,{message:"client_id is required"});e.set("client_id",i.client_id);let s;switch(n.grant_type){case an.AuthorizationCode:s=await wN(e,vN.parse(i));break;case an.ClientCredential:s=await bN(e,Lk.parse(i));break;case an.RefreshToken:s=await $N(e,kN.parse(i));break;case an.OTP:s=await Kk(e,MP.parse(i));break;default:return e.json({error:"unsupported_grant_type",error_description:"Grant type not implemented"},400)}Vt(e,s.client.tenant.id);const a=new Headers;s.session_id&&cl(s.client.tenant.id,s.session_id,e.var.host||"").forEach(d=>{a.append("Set-Cookie",d)});let c=[];if(s.authParams.audience)try{let u;if(n.grant_type===an.ClientCredential)u=await ea(e,{grantType:an.ClientCredential,tenantId:s.client.tenant.id,clientId:s.client.client_id,audience:s.authParams.audience,requestedScopes:s.authParams.scope?.split(" ")||[],organizationId:s.organization?.id});else{if(!s.user?.user_id)throw new W(400,{error:"invalid_request",error_description:"User ID is required for user-based grants"});u=await ea(e,{grantType:n.grant_type,tenantId:s.client.tenant.id,userId:s.user.user_id,clientId:s.client.client_id,audience:s.authParams.audience,requestedScopes:s.authParams.scope?.split(" ")||[],organizationId:s.organization?.id})}s.authParams.scope=u.scopes.join(" "),c=u.permissions}catch(u){if(u instanceof I)throw u;console.error("Error calculating scopes and permissions:",u)}const l=await bu(e,{...s,grantType:n.grant_type,permissions:c.length>0?c:void 0});return e.json(l,{headers:a})});async function ec(e,t){const n=await e.env.data.emailProviders.get(e.var.tenant_id);if(!n)throw new I(500,{message:"Email provider not found"});const r=e.env.emailProviders?.[n.name];if(!r)throw new I(500,{message:"Email provider not found"});await r({emailProvider:n,...t,from:n.default_from_address||`login@${e.env.ISSUER}`})}async function Gk(e,t){if(!e.var.client_id)throw new I(500,{message:"Client not found"});const n=await qe(e.env,e.var.client_id),r=n.connections.find(a=>a.strategy==="sms");if(!r)throw new I(500,{message:"SMS provider not found"});const i=r.options?.provider||"twilio",s=e.env.smsProviders?.[i];if(!s)throw new I(500,{message:"SMS provider not found"});await s({options:r.options,to:t.to,from:t.from,text:t.text,template:"auth-code",data:{code:t.code,tenantName:n.tenant.friendly_name,tenantId:n.tenant.id}})}async function Wk(e,t,n,r,i){const s=await e.env.data.tenants.get(e.var.tenant_id);if(!s)throw new I(500,{message:"Tenant not found"});const a=`${wt(e.env)}reset-password?state=${r}&code=${n}`,c=await e.env.data.branding.get(e.var.tenant_id),l=c?.logo_url||"",u=c?.colors?.primary||"#7d68f4",d={vendorName:s.friendly_name,lng:"en"};await ec(e,{to:t,subject:he("reset_password_title",d),html:`Click here to reset your password: ${wt(e.env)}reset-password?state=${r}&code=${n}`,template:"auth-password-reset",data:{vendorName:s.friendly_name,logo:l,passwordResetUrl:a,supportUrl:s.support_url||"https://support.sesamy.com",buttonColor:u,passwordResetTitle:he("password_reset_title",d),resetPasswordEmailClickToReset:he("reset_password_email_click_to_reset",d),resetPasswordEmailReset:he("reset_password_email_reset",d),supportInfo:he("support_info",d),contactUs:he("contact_us",d),copyright:he("copyright",d),tenantName:s.friendly_name,tenantId:s.id}}),fe(e,s.id,{type:pe.SUCCESS_CHANGE_PASSWORD_REQUEST,description:t})}async function zd(e,{to:t,code:n,language:r}){const i=await e.env.data.tenants.get(e.var.tenant_id);if(!i)throw new I(500,{message:"Tenant not found"});const{connectionType:s}=os(t),a=await e.env.data.branding.get(e.var.tenant_id),c=a?.logo_url||"",l=a?.colors?.primary||"#7d68f4",u=new URL(wt(e.env)),d={vendorName:i.friendly_name,vendorId:i.id,loginDomain:u.hostname,code:n,lng:r||"en"};s==="email"?await ec(e,{to:t,subject:he("code_email_subject",d),html:`Click here to validate your email: ${wt(e.env)}validate-email`,template:"auth-code",data:{code:n,vendorName:i.friendly_name,logo:c,supportUrl:i.support_url||"",buttonColor:l,welcomeToYourAccount:he("welcome_to_your_account",d),linkEmailClickToLogin:he("link_email_click_to_login",d),linkEmailLogin:he("link_email_login",d),linkEmailOrEnterCode:he("link_email_or_enter_code",d),codeValid30Mins:he("code_valid_30_minutes",d),supportInfo:he("support_info",d),contactUs:he("contact_us",d),copyright:he("copyright",d)}}):s==="sms"&&await Gk(e,{to:t,text:he("sms_code_text",d),code:n,from:i.friendly_name}),fe(e,i.id,{type:pe.CODE_LINK_SENT,description:t})}async function Ad(e,{to:t,code:n,authParams:r,language:i}){const s=await e.env.data.tenants.get(e.var.tenant_id);if(!s)throw new I(500,{message:"Tenant not found"});if(!r.redirect_uri)throw new I(400,{message:"redirect_uri is required"});const{connectionType:a}=os(t),c=await e.env.data.branding.get(e.var.tenant_id),l=c?.logo_url||"",u=c?.colors?.primary||"",d=new URL(Le(e.env));d.pathname="passwordless/verify_redirect",d.searchParams.set("verification_code",n),d.searchParams.set("connection",a),d.searchParams.set("client_id",r.client_id),d.searchParams.set("redirect_uri",r.redirect_uri),d.searchParams.set("email",t),r.response_type&&d.searchParams.set("response_type",r.response_type),r.scope&&d.searchParams.set("scope",r.scope),r.state&&d.searchParams.set("state",r.state),r.nonce&&d.searchParams.set("nonce",r.nonce),r.code_challenge&&d.searchParams.set("code_challenge",r.code_challenge),r.code_challenge_method&&d.searchParams.set("code_challenge_method",r.code_challenge_method),r.audience&&d.searchParams.set("audience",r.audience);const f={vendorName:s.friendly_name,code:n,lng:i||"en"};if(a==="email")await ec(e,{to:t,subject:he("code_email_subject",f),html:`Click here to validate your email: ${wt(e.env)}validate-email`,template:"auth-link",data:{code:n,vendorName:s.friendly_name,logo:l,supportUrl:s.support_url||"",magicLink:d.toString(),buttonColor:u,welcomeToYourAccount:he("welcome_to_your_account",f),linkEmailClickToLogin:he("link_email_click_to_login",f),linkEmailLogin:he("link_email_login",f),linkEmailOrEnterCode:he("link_email_or_enter_code",f),codeValid30Mins:he("code_valid_30_minutes",f),supportInfo:he("support_info",f),contactUs:he("contact_us",f),copyright:he("copyright",f)}});else if(a==="sms")await Gk(e,{to:t,text:`${he("link_sms_login",f)}: ${d.toString()}`,code:n,from:s.friendly_name});else throw new I(400,{message:"Only email and SMS connections are supported for magic links"});fe(e,s.id,{type:pe.CODE_LINK_SENT,description:t})}async function Ed(e,t,n){const r=await e.env.data.tenants.get(e.var.tenant_id);if(!r)throw new I(500,{message:"Tenant not found"});if(!t.email)throw new I(400,{message:"User has no email"});const i=await e.env.data.branding.get(e.var.tenant_id),s=i?.logo_url||"",a=i?.colors?.primary||"#7d68f4",c={vendorName:r.friendly_name,lng:n||"en"};await ec(e,{to:t.email,subject:he("welcome_to_your_account",c),html:`Click here to validate your email: ${wt(e.env)}validate-email`,template:"auth-verify-email",data:{vendorName:r.friendly_name,logo:s,emailValidationUrl:`${wt(e.env)}validate-email`,supportUrl:r.support_url||"https://support.sesamy.com",buttonColor:a,welcomeToYourAccount:he("welcome_to_your_account",c),verifyEmailVerify:he("verify_email_verify",c),supportInfo:he("support_info",c),contactUs:he("contact_us",c),copyright:he("copyright",c)}})}async function HP(e,t,n,r,i){const s=await e.env.data.tenants.get(e.var.tenant_id);if(!s)throw new I(500,{message:"Tenant not found"});const a=await e.env.data.branding.get(e.var.tenant_id),c=a?.logo_url||"",l=a?.colors?.primary||"#7d68f4",u={vendorName:s.friendly_name,lng:"en"},d=`${wt(e.env)}signup?state=${r}&code=${n}`;await ec(e,{to:t,subject:he("register_password_account",u),html:`Click here to register: ${d}`,template:"auth-pre-signup-verification",data:{vendorName:s.friendly_name,logo:c,signupUrl:d,setPassword:he("set_password",u),registerPasswordAccount:he("register_password_account",u),clickToSignUpDescription:he("click_to_sign_up_description",u),supportUrl:s.support_url||"https://support.sesamy.com",buttonColor:l,welcomeToYourAccount:he("welcome_to_your_account",u),verifyEmailVerify:he("verify_email_verify",u),supportInfo:he("support_info",u),contactUs:he("contact_us",u),copyright:he("copyright",u)}})}const VP=new o.OpenAPIHono().openapi(o.createRoute({tags:["dbconnections"],method:"post",path:"/signup",request:{body:{content:{"application/json":{schema:o.z.object({client_id:o.z.string(),connection:o.z.literal("Username-Password-Authentication"),email:o.z.string().transform(e=>e.toLowerCase()),password:o.z.string()})}}}},responses:{200:{content:{"application/json":{schema:o.z.object({_id:o.z.string(),email:o.z.string().optional(),email_verified:o.z.boolean(),app_metadata:o.z.object({}),user_metadata:o.z.object({})})}},description:"Created user"}}}),async e=>{const{email:t,password:n,client_id:r}=e.req.valid("json"),i=await qe(e.env,r);e.set("client_id",i.client_id),Vt(e,i.tenant.id);const a=i.connections.find(p=>p.strategy==="Username-Password-Authentication")?.name||"Username-Password-Authentication",c=await Ta(e.env.data,i.tenant.id,a);try{await Na(c,{tenantId:i.tenant.id,userId:"",newPassword:n,data:e.env.data})}catch(p){throw new I(400,{message:p?.message||"Password does not meet the requirements"})}if(await Xn({userAdapter:e.env.data.users,tenant_id:i.tenant.id,username:t,provider:Te}))throw new I(400,{message:"Invalid sign up"});const{hash:u,algorithm:d}=await oa(n),f=await e.env.data.users.create(i.tenant.id,{user_id:`${Te}|${Ni()}`,email:t,email_verified:!1,provider:Te,connection:"Username-Password-Authentication",is_social:!1,password:{hash:u,algorithm:d}});e.set("user_id",f.user_id),e.set("username",f.email),e.set("connection",f.connection);try{await Ed(e,f)}catch(p){console.error("Failed to send verification email:",p)}return fe(e,i.tenant.id,{type:pe.SUCCESS_SIGNUP,description:"Successful signup"}),e.json({_id:f.user_id,email:f.email,email_verified:!1,app_metadata:{},user_metadata:{}})}).openapi(o.createRoute({tags:["dbconnections"],method:"post",path:"/change_password",request:{body:{content:{"application/json":{schema:o.z.object({client_id:o.z.string(),connection:o.z.literal("Username-Password-Authentication"),email:o.z.string().transform(e=>e.toLowerCase())})}}}},responses:{200:{description:"Redirect to the client's redirect uri"}}}),async e=>{const{email:t,client_id:n}=e.req.valid("json"),r=await qe(e.env,n);if(e.set("client_id",r.client_id),Vt(e,r.tenant.id),!await Or({userAdapter:e.env.data.users,tenant_id:r.tenant.id,username:t,provider:Te}))return e.html("If an account with that email exists, we've sent instructions to reset your password.");const s={client_id:n,username:t},a=await e.env.data.loginSessions.create(r.tenant.id,{expires_at:new Date(Date.now()+di*1e3).toISOString(),authParams:s,csrf_token:Oe(),ip:e.get("ip"),useragent:e.get("useragent"),auth0Client:rr(e.get("auth0_client"))});return await Wk(e,t,a.id,a.authParams.state),e.html("If an account with that email exists, we've sent instructions to reset your password.")});function In(){const e="1234567890";let t="";for(let n=0;n<6;n+=1)t+=e[Math.floor(Math.random()*10)];return t.toString()}const KP=new o.OpenAPIHono().openapi(o.createRoute({tags:["passwordless"],method:"post",path:"/start",request:{body:{content:{"application/json":{schema:o.z.union([o.z.object({connection:o.z.literal("email"),client_id:o.z.string(),email:o.z.string().transform(e=>e.toLowerCase()),send:o.z.enum(["link","code"]),authParams:Xs.omit({client_id:!0})}),o.z.object({client_id:o.z.string(),connection:o.z.literal("sms"),phone_number:o.z.string(),send:o.z.enum(["link","code"]),authParams:Xs.omit({client_id:!0})})])}}}},responses:{200:{description:"Status"}}}),async e=>{const t=e.req.valid("json"),{env:n}=e,{client_id:r,send:i,authParams:s,connection:a}=t,c=await qe(e.env,r);e.set("client_id",c.client_id),Vt(e,c.tenant.id);const l=a==="email"?t.email:t.phone_number,u=e.get("ip"),d=e.get("useragent"),f=e.get("auth0_client"),p=rr(f),h=await n.data.loginSessions.create(c.tenant.id,{authParams:{...s,client_id:r,username:l},expires_at:new Date(Date.now()+Bs).toISOString(),csrf_token:Oe(),ip:u,useragent:d,auth0Client:p}),_=await n.data.codes.create(c.tenant.id,{code_id:In(),code_type:"otp",login_id:h.id,expires_at:new Date(Date.now()+Bs).toISOString(),redirect_uri:s.redirect_uri}),g=s?.ui_locales?.split(" ")?.map(y=>y.split("-")[0])[0];return i==="link"?await Ad(e,{to:l,code:_.code_id,authParams:{...s,client_id:r},language:g}):await zd(e,{to:l,code:_.code_id,language:g}),e.html("OK")}).openapi(o.createRoute({tags:["passwordless"],method:"get",path:"/verify_redirect",request:{query:o.z.object({scope:o.z.string(),response_type:o.z.nativeEnum(at),redirect_uri:o.z.string(),state:o.z.string(),nonce:o.z.string().optional(),verification_code:o.z.string(),connection:o.z.string(),client_id:o.z.string(),email:o.z.string().transform(e=>e.toLowerCase()),audience:o.z.string().optional()})},responses:{302:{description:"Successful verification, redirecting to continue flow.",headers:o.z.object({Location:o.z.string().url()}).openapi({})},400:{description:"Bad Request (e.g., invalid client, invalid code, missing parameters).",content:{"application/json":{schema:o.z.object({error:o.z.string(),error_description:o.z.string().optional()})}}},500:{description:"Internal Server Error.",content:{"application/json":{schema:o.z.object({error:o.z.string(),error_description:o.z.string().optional()})}}}}}),async e=>{const{env:t}=e,{client_id:n,email:r,verification_code:i,redirect_uri:s,state:a,scope:c,audience:l,response_type:u,nonce:d}=e.req.valid("query"),f=await qe(t,n);e.set("client_id",f.client_id),Vt(e,f.tenant.id),e.set("connection","email");const p={client_id:n,redirect_uri:s,state:a,nonce:d,scope:c,audience:l,response_type:u};let h="Something went wrong. Please try again later.";try{const k=await xd(e,{client_id:n,username:r,otp:i,authParams:p,enforceIpCheck:!0});if(k instanceof Response)return k;if(k&&typeof k=="object"&&"access_token"in k)return e.json(k)}catch(k){const S=k;"message"in S&&typeof S.message=="string"&&(h=S.message)}const _=e.get("ip"),g=e.get("useragent"),y=e.get("auth0_client"),m=rr(y),w=await t.data.loginSessions.create(f.tenant.id,{authParams:{...p,username:r},expires_at:new Date(Date.now()+Bs).toISOString(),csrf_token:Oe(),ip:_,useragent:g,auth0Client:m});return e.redirect(`${wt(e.env)}invalid-session?state=${w.id}&error=${encodeURIComponent(h)}`,302)});class Yi extends I{_code;constructor(t,n){super(t,n),this._code=n?.code}get code(){return this._code}}async function GP(e,t,n){const r=n.app_metadata||{},i=r.failed_logins||[],s=Date.now(),a=[...i.filter(c=>s-c<1e3*60*5),s];r.failed_logins=a,await e.users.update(t,n.user_id,{app_metadata:r})}function WP(e){const n=(e.app_metadata||{}).failed_logins||[],r=Date.now();return n.filter(i=>r-i<1e3*60*5)}async function Jk(e,t,n,r){const{data:i}=e.env,{username:s}=n;if(e.set("username",s),!s)throw new W(400,{message:"Username is required"});const a=await Or({userAdapter:e.env.data.users,tenant_id:t.tenant.id,username:s,provider:Te});if(!a)throw fe(e,t.tenant.id,{type:pe.FAILED_LOGIN_INCORRECT_PASSWORD,description:"Invalid user"}),new Yi(403,{message:"User not found",code:"USER_NOT_FOUND"});const c=a.linked_to?await i.users.get(t.tenant.id,a.linked_to):a;if(!c)throw new Yi(403,{message:"User not found",code:"USER_NOT_FOUND"});if(e.set("connection",a.connection),e.set("user_id",c.user_id),WP(c).length>=3)throw fe(e,t.tenant.id,{type:pe.FAILED_LOGIN,description:"Too many failed login attempts"}),new Yi(403,{message:"Too many failed login attempts",code:"TOO_MANY_FAILED_LOGINS"});const u=await i.passwords.get(t.tenant.id,a.user_id);if(!(u&&await Fo.compare(n.password,u.password)))throw fe(e,t.tenant.id,{type:pe.FAILED_LOGIN_INCORRECT_PASSWORD,description:"Invalid password"}),GP(i,t.tenant.id,c),new Yi(403,{message:"Invalid password",code:"INVALID_PASSWORD"});if(!a.email_verified&&t.client_metadata?.email_validation==="enforced"){const p=r?.authParams?.ui_locales?.split(" ")?.map(h=>h.split("-")[0])[0];throw await Ed(e,a,p),fe(e,t.tenant.id,{type:pe.FAILED_LOGIN,description:"Email not verified"}),r&&await MA(e,t.tenant.id,r,"Email not verified"),new Yi(403,{message:"Email not verified",code:"EMAIL_NOT_VERIFIED"})}const f=c.app_metadata||{};return f.failed_logins&&f.failed_logins.length>0&&(f.failed_logins=[],i.users.update(t.tenant.id,c.user_id,{app_metadata:f})),{client:t,authParams:n,user:c,loginSession:r}}async function tc(e,t,n,r,i){const s=await Jk(e,t,n,r);return gt(e,{...s,ticketAuth:i,authStrategy:{strategy:"Username-Password-Authentication",strategy_type:"database"}})}async function JP(e,t,n,r){await Eu(e,{client:t,username:n,provider:Te,connection:"Username-Password-Authentication",isSocial:!1,ip:e.var.ip});let i=In(),s=await e.env.data.codes.get(t.tenant.id,i,"password_reset");for(;s;)i=In(),s=await e.env.data.codes.get(t.tenant.id,i,"password_reset");const a=e.get("ip"),c=e.get("useragent"),l=e.get("auth0_client"),u=rr(l),d=await e.env.data.loginSessions.create(t.tenant.id,{expires_at:new Date(Date.now()+Tz).toISOString(),authParams:{client_id:t.client_id,username:n},csrf_token:Oe(),ip:a,useragent:c,auth0Client:u}),f=await e.env.data.codes.create(t.tenant.id,{code_id:i,code_type:"password_reset",login_id:d.id,expires_at:new Date(Date.now()+Nz).toISOString()});await Wk(e,n,f.code_id,r)}const ZP=new o.OpenAPIHono().openapi(o.createRoute({tags:["oauth"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:o.z.union([o.z.object({credential_type:o.z.literal("http://auth0.com/oauth/grant-type/passwordless/otp"),otp:o.z.string(),client_id:o.z.string(),username:o.z.string().transform(e=>e.toLowerCase()),realm:o.z.enum(["email"]),scope:o.z.string().optional()}),o.z.object({credential_type:o.z.literal("http://auth0.com/oauth/grant-type/password-realm"),client_id:o.z.string(),username:o.z.string().transform(e=>e.toLowerCase()),password:o.z.string(),realm:o.z.enum(["Username-Password-Authentication"]),scope:o.z.string().optional()})])}}}},responses:{200:{description:"List of tenants"}}}),async e=>{const t=e.req.valid("json"),{client_id:n,username:r}=t;e.set("username",r);const i=await qe(e.env,n);e.set("client_id",n),Vt(e,i.tenant.id);const s=r.toLocaleLowerCase(),a=e.get("ip"),c=e.get("useragent"),l=e.get("auth0_client");let u;if("otp"in t)u=await xd(e,{client_id:n,username:s,otp:t.otp});else if("password"in t){const d=await e.env.data.loginSessions.create(i.tenant.id,{expires_at:new Date(Date.now()+di*1e3).toISOString(),authParams:{client_id:n,username:s},csrf_token:Oe(),ip:a,useragent:c,auth0Client:rr(l)});u=await tc(e,i,{username:s,password:t.password,client_id:n},d,!0)}else throw new I(400,{message:"Code or password required"});return u});function Zk(e,t){if(!e||t.length===0)return!1;const n=fp(e)?.host??null;if(!n)return!1;for(const r of t){let i;if(r.startsWith("http://")||r.startsWith("https://")?i=fp(r)?.host??null:i=fp("https://"+r)?.host??null,n===i)return!0}return!1}function fp(e){try{return new URL(e)}catch{return null}}function XP(e,t){if(!e||t===void 0)return!1;const n=new Date(e.authenticated_at).getTime(),r=t*1e3;return Date.now()-n>r}async function YP({ctx:e,session:t,client:n,authParams:r,connection:i,login_hint:s}){const a=new URL(e.req.url);e.var.custom_domain&&(a.hostname=e.var.custom_domain);const{ip:c,auth0_client:l,useragent:u}=e.var,d=rr(l);XP(t,r.max_age)&&(t=void 0);const f=await e.env.data.loginSessions.create(n.tenant.id,{expires_at:new Date(Date.now()+di*1e3).toISOString(),authParams:r,csrf_token:Oe(),authorization_url:a.toString(),ip:c,useragent:u,auth0Client:d}),p=n.client_metadata?.universal_login_version==="2"?"/u2":"/u";if(t&&s){const h=await e.env.data.users.get(n.tenant.id,t.user_id);if(h?.email===s)return gt(e,{client:n,loginSession:f,authParams:r,user:h,existingSessionIdToLink:t.id})}if(i==="email"&&s){const h=In();return await e.env.data.codes.create(n.tenant.id,{code_id:h,code_type:"otp",login_id:f.id,expires_at:new Date(Date.now()+di*1e3).toISOString(),redirect_uri:r.redirect_uri}),await Ad(e,{code:h,to:s,authParams:r}),e.redirect(`${p}/enter-code?state=${f.id}`)}if(t)return e.redirect(`${p}/check-account?state=${f.id}`);if(p==="/u2"){const h=await e.env.data.promptSettings.get(n.tenant.id),_=lo.parse(h||{}),g=n.connections.some(y=>y.strategy==="Username-Password-Authentication");if(_.identifier_first===!1&&g)return e.redirect(`${p}/login?state=${f.id}`)}return e.redirect(`${p}/login/identifier?state=${f.id}`)}function QP(e){if(e==="Username-Password-Authentication")return Te;if(e==="email")return"email";throw new W(403,{message:"Invalid realm"})}async function eO(e,t,n,r,i){const{env:s}=e;e.set("connection",i);const a=await s.data.codes.get(t,n,"ticket");if(!a||a.used_at)throw new W(403,{message:"Ticket not found"});const c=await s.data.loginSessions.get(t,a.login_id);if(!c||!c.authParams.username)throw new W(403,{message:"Session not found"});const l=await qe(s,c.authParams.client_id,t);e.set("client_id",c.authParams.client_id),await s.data.codes.used(t,n);const u=QP(i),f=l.connections.find(_=>_.name===i)?.strategy||(u===Te?"Username-Password-Authentication":"email"),p=f==="Username-Password-Authentication"?"database":"passwordless";let h=await Eu(e,{username:c.authParams.username,provider:u,client:l,connection:i,isSocial:!1,ip:e.var.ip});return e.set("username",h.email||h.phone_number),e.set("user_id",h.user_id),gt(e,{authParams:{scope:c.authParams?.scope,...r},loginSession:c,user:h,client:l,authStrategy:{strategy:f,strategy_type:p}})}async function tO({ctx:e,client:t,session:n,redirect_uri:r,state:i,nonce:s,code_challenge_method:a,code_challenge:c,audience:l,scope:u,response_type:d,response_mode:f,organization:p,max_age:h}){const{env:_}=e,g=new URL(r),y=`${g.protocol}//${g.host}`,m=f===pn.WEB_MESSAGE;async function w(le="Login required"){const Se=new Headers;if(n&&(fe(e,t.tenant.id,{type:pe.FAILED_SILENT_AUTH,description:le}),Fw(t.tenant.id,e.req.header("host")).forEach(Hr=>{Se.append("set-cookie",Hr)})),m)return _f(e,y,JSON.stringify({error:"login_required",error_description:le,state:i}),Se);const F=new URL(r);if(d===at.TOKEN||d===at.TOKEN_ID_TOKEN){const Xe=new URLSearchParams;Xe.set("error","login_required"),Xe.set("error_description",le),i&&Xe.set("state",i),F.hash=Xe.toString()}else F.searchParams.set("error","login_required"),F.searchParams.set("error_description",le),i&&F.searchParams.set("state",i);const St={Location:F.toString()},ue=Se.get("set-cookie");return ue&&(St["set-cookie"]=ue),new Response(null,{status:302,headers:St})}const k=!n||n?.expires_at&&new Date(n.expires_at)<new Date||n?.idle_expires_at&&new Date(n.idle_expires_at)<new Date,S=n&&h!==void 0&&Date.now()-new Date(n.authenticated_at).getTime()>h*1e3;if(k||S)return w();e.set("user_id",n.user_id);const b=await _.data.users.get(t.tenant.id,n.user_id);if(!b)return console.error("User not found",n.user_id),w("User not found");e.set("username",b.email),e.set("connection",b.connection);let x;if(p&&(x=await _.data.organizations.get(t.tenant.id,p),!x))return w("Organization not found");const A=l||t.tenant.audience;let E=u||"",P=[];if(A)try{const le=await ea(e,{tenantId:t.tenant.id,clientId:t.client_id,audience:A,requestedScopes:u?.split(" ")||[],organizationId:x?.id,userId:b.user_id});E=le.scopes.join(" "),P=le.permissions}catch(le){if(le?.statusCode===403||le?.status===403){const Se=le?.body?.error_description||le?.message||"Access denied";return w(Se)}throw le}else if(x&&!(await _.data.userOrganizations.list(t.tenant.id,{q:`user_id:${b.user_id}`,per_page:1e3})).userOrganizations.some(F=>F.organization_id===x.id))return w("User is not a member of the specified organization");const R=await _.data.loginSessions.create(t.tenant.id,{csrf_token:Oe(),authParams:{client_id:t.client_id,audience:l,scope:u,state:i,nonce:s,response_type:d,redirect_uri:r,organization:p,max_age:h},expires_at:new Date(Date.now()+300*1e3).toISOString(),session_id:n.id,ip:e.var.ip,useragent:e.var.useragent}),C=h!==void 0?Math.floor(new Date(n.authenticated_at).getTime()/1e3):void 0,L={client:t,authParams:{client_id:t.client_id,audience:l,code_challenge_method:a,code_challenge:c,scope:E,state:i,nonce:s,response_type:d,redirect_uri:r,max_age:h},user:b,session_id:n.id,auth_time:C,permissions:P,organization:x},B=d===at.CODE?await b2(e,{user:b,client:t,authParams:L.authParams,login_id:R.id}):await bu(e,L),V=n.idle_expires_at?new Date(Date.now()+hu*1e3).toISOString():void 0;await _.data.sessions.update(t.tenant.id,n.id,{used_at:new Date().toISOString(),last_interaction_at:new Date().toISOString(),login_session_id:R.id,device:{...n.device,last_ip:e.var.ip||"",last_user_agent:e.var.useragent||""},idle_expires_at:V}),V&&await _.data.loginSessions.update(t.tenant.id,R.id,{expires_at:V}),fe(e,t.tenant.id,{type:pe.SUCCESS_SILENT_AUTH,description:"Successful silent authentication"});const D=new Headers;if(cl(t.tenant.id,n.id,e.req.header("host")).forEach(le=>{D.append("set-cookie",le)}),m)return _f(e,y,JSON.stringify({...B,state:i}),D);const ce=new URL(r);if(d===at.TOKEN||d===at.TOKEN_ID_TOKEN){const le=new URLSearchParams;Object.entries(B).forEach(([Se,F])=>{F!==void 0&&le.set(Se,String(F))}),i&&le.set("state",i),ce.hash=le.toString()}else Object.entries(B).forEach(([le,Se])=>{Se!==void 0&&ce.searchParams.set(le,String(Se))}),i&&ce.searchParams.set("state",i);const ve={Location:ce.toString()},Ee=D.get("set-cookie");return Ee&&(ve["set-cookie"]=Ee),new Response(null,{status:302,headers:ve})}const nO=["email","sms","Username-Password-Authentication"],xb=o.z.object({client_id:o.z.string().optional(),vendor_id:o.z.string().optional(),redirect_uri:o.z.string().optional(),scope:o.z.string().optional(),state:o.z.string().optional(),prompt:o.z.string().optional(),response_mode:o.z.nativeEnum(pn).optional(),response_type:o.z.nativeEnum(at).optional(),audience:o.z.string().optional(),connection:o.z.string().optional(),nonce:o.z.string().optional(),max_age:o.z.string().optional(),acr_values:o.z.string().optional(),login_ticket:o.z.string().optional(),code_challenge_method:o.z.nativeEnum(pu).optional(),code_challenge:o.z.string().optional(),realm:o.z.string().optional(),auth0Client:o.z.string().optional(),organization:o.z.string().optional(),login_hint:o.z.string().optional(),screen_hint:o.z.string().optional(),ui_locales:o.z.string().optional()});function rO(e){try{const t=e.split(".");if(t.length<2||!t[1])return null;const n=new TextDecoder().decode(wr.decode(t[1],{strict:!1})),r=JSON.parse(n);return typeof r!="object"||r===null?null:r}catch{return null}}const iO=new o.OpenAPIHono().openapi(o.createRoute({tags:["oauth"],method:"get",path:"/",request:{query:xb.extend({client_id:o.z.string(),screen_hint:o.z.string().openapi({example:"signup",description:'Optional hint for the screen to show, like "signup" or "login".'}).optional(),request:o.z.string().openapi({description:"JWT containing authorization request parameters (OpenID Connect Core Section 6.1)"}).optional()}).passthrough()},responses:{200:{description:"Successful authorization response. This can be an HTML page (e.g., for silent authentication iframe or universal login page) or a JSON object containing tokens (e.g., for response_mode=web_message).",content:{"text/html":{schema:o.z.string().openapi({example:"<html>...</html>"})},"application/json":{schema:kh}}},302:{description:"Redirect to the client's redirect URI, an authentication page, or an external identity provider.",headers:o.z.object({Location:o.z.string().url()})},400:{description:"Bad Request. Invalid parameters or other client-side errors.",content:{"application/json":{schema:o.z.object({message:o.z.string()})}}},403:{description:"Forbidden. The request is not allowed (e.g., invalid origin).",content:{"application/json":{schema:o.z.object({message:o.z.string()})}}}}}),async e=>{const{env:t}=e,n=e.req.valid("query");let r={};if(n.request){const D=rO(n.request);if(D){const ne=xb.safeParse(D);ne.success&&(r=ne.data)}}const{client_id:i,vendor_id:s,redirect_uri:a,scope:c,state:l,audience:u,nonce:d,connection:f,response_type:p,response_mode:h,code_challenge:_,code_challenge_method:g,prompt:y,max_age:m,acr_values:w,login_ticket:k,realm:S,login_hint:b,ui_locales:x,organization:A}={...r,...n};e.set("log","authorize");const E=await qe(t,i);e.set("client_id",E.client_id),Vt(e,E.tenant.id);let P=a;typeof a=="string"&&(P=a.split("#")[0]);const R=e.req.header("origin");if(R&&!Zk(R,E.web_origins||[]))throw new I(403,{message:`Origin ${R} not allowed`});if(!p){if(P){const D=new URL(P);return D.searchParams.set("error","invalid_request"),D.searchParams.set("error_description","Missing required parameter: response_type"),l&&D.searchParams.set("state",l),e.redirect(D.toString())}throw new I(400,{message:"Missing required parameter: response_type"})}const C={redirect_uri:P,scope:c,state:l,client_id:i,vendor_id:s,audience:u,nonce:d,prompt:y,response_type:p,response_mode:h,code_challenge:_,code_challenge_method:g,username:b,ui_locales:x,organization:A,max_age:m?parseInt(m,10):void 0,acr_values:w};if(C.redirect_uri){const D=E.callbacks||[];if(e.var.host&&(D.push(`${ku(e.env)}/*`),D.push(`${wt(e.env)}/*`)),!T_(C.redirect_uri,D,{allowPathWildcards:!0,allowSubDomainWildcards:!0}))throw new I(400,{message:`Invalid redirect URI - ${C.redirect_uri}`})}let L;const B=Rz(E.tenant.id,e.req.header("cookie"));for(const D of B){const ne=await t.data.sessions.get(E.tenant.id,D);if(ne&&!ne.revoked_at){L=ne;break}}if(y=="none"){if(!P||!l||!p)throw new I(400,{message:"Missing required parameters for silent auth: redirect_uri, state, and response_type"});return tO({ctx:e,session:L||void 0,redirect_uri:P,state:l,response_type:p,response_mode:h,client:E,nonce:d,code_challenge_method:g,code_challenge:_,audience:u,scope:c,organization:A,max_age:m?parseInt(m,10):void 0})}if(E.connections.length===1&&E.connections[0]&&!nO.includes(E.connections[0].strategy||""))return Zy(e,E,E.connections[0].name,C);if(f&&f!=="email")return Zy(e,E,f,C);if(k){const D=await eO(e,E.tenant.id,k,C,S);return D instanceof Response?D:e.json(D)}const V=await YP({ctx:e,client:E,authParams:C,session:L||void 0,connection:f,login_hint:b});return V instanceof Response?V:e.json(V)}),oO=new o.OpenAPIHono().openapi(o.createRoute({tags:["oauth"],method:"get",path:"/",request:{query:o.z.object({client_id:o.z.string(),redirect_url:o.z.string().optional(),login_hint:o.z.string().toLowerCase().optional(),screen_hint:o.z.enum(["account","change-email","change-phone","change-password"]).optional().default("account")})},responses:{302:{description:"Redirect to the account page with login session state or login page",headers:o.z.object({Location:o.z.string().url()})},400:{description:"Bad Request. Invalid parameters or other client-side errors.",content:{"application/json":{schema:o.z.object({message:o.z.string()})}}}}}),async e=>{const{env:t}=e,{client_id:n,redirect_url:r,login_hint:i,screen_hint:s}=e.req.valid("query");e.set("log","account");const a=await qe(t,n);e.set("client_id",a.client_id),Vt(e,a.tenant.id);const c={redirect_uri:r||e.req.url,client_id:n,username:i},l=e.req.header("origin");if(l&&!Zk(l,a.web_origins||[]))throw new I(403,{message:`Origin ${l} not allowed`});if(c.redirect_uri){const w=a.callbacks||[];if(e.var.host&&(w.push(`${ku(e.env)}/*`),w.push(`${wt(e.env)}/*`)),!T_(c.redirect_uri,w,{allowPathWildcards:!0,allowSubDomainWildcards:!0}))throw new I(400,{message:`Invalid redirect URI - ${c.redirect_uri}`})}const u=pi(a.tenant.id,e.req.header("cookie")),d=u?await t.data.sessions.get(a.tenant.id,u):void 0,f=d&&!d.revoked_at?d:void 0,p=new URL(e.req.url);e.var.custom_domain&&(p.hostname=e.var.custom_domain);const{ip:h,auth0_client:_,useragent:g}=e.var,y=rr(_),m=await t.data.loginSessions.create(a.tenant.id,{expires_at:new Date(Date.now()+di*1e3).toISOString(),authParams:c,csrf_token:Oe(),authorization_url:p.toString(),ip:h,useragent:g,auth0Client:y});if(f){if(i&&(await t.data.users.get(a.tenant.id,f.user_id))?.email!==i)return e.redirect(`${wt(e.env)}login/identifier?state=${encodeURIComponent(m.id)}`);if(await t.data.loginSessions.update(a.tenant.id,m.id,{session_id:f.id}),s==="change-email"){const k=new URL("/u/account/change-email",e.req.url);return k.searchParams.set("state",m.id),e.redirect(k.toString())}const w=new URL("/u/account",e.req.url);return w.searchParams.set("state",m.id),e.redirect(w.toString())}return e.redirect(`${wt(e.env)}login/identifier?state=${encodeURIComponent(m.id)}`)});function sO(e){const t=new o.OpenAPIHono;t.use(async(r,i)=>{const s=Mo(r,e.dataAdapter),a=e.dataAdapter.cache||is({defaultTtlSeconds:0,maxEntries:100,cleanupIntervalMs:0}),c=e.dataAdapter.cache?300:0,l=Qa(s,{defaultTtl:c,cacheEntities:["tenants","connections","clientConnections","customDomains","clients","branding","themes","promptSettings","forms","resourceServers","roles","organizations","userRoles","userPermissions","hooks"],cache:a});return r.env.data=Ya(r,l),i()}),t.use("/oauth/token",Rk({origin:r=>r||"",allowHeaders:["Tenant-Id","Content-Type","Auth0-Client","Upgrade-Insecure-Requests"],allowMethods:["POST"],maxAge:600})),t.use(rs).use(ns).use(kd(t));const n=t.route("/v2/logout",hN).route("/userinfo",gN).route("/.well-known",yN).route("/oauth/token",FP).route("/dbconnections",VP).route("/passwordless",KP).route("/co/authenticate",ZP).route("/authorize",iO).route("/account",oO).route("/callback",pN);return n.doc("/spec",{openapi:"3.0.0",info:{version:"1.0.0",title:"Oauth API"},security:[{oauth2:["openid","email","profile"]}]}),j_(n),n}var M_=Symbol("RENDERER"),X0=Symbol("ERROR_HANDLER"),Fe=Symbol("STASH"),Xk=Symbol("INTERNAL"),aO=Symbol("MEMO"),ru=Symbol("PERMALINK"),zb=e=>(e[Xk]=!0,e),Yk=e=>({value:t,children:n})=>{if(!n)return;const r={children:[{tag:zb(()=>{e.push(t)}),props:{}}]};Array.isArray(n)?r.children.push(...n.flat()):r.children.push(n),r.children.push({tag:zb(()=>{e.pop()}),props:{}});const i={tag:"",props:r,type:""};return i[X0]=s=>{throw e.pop(),s},i},Qk=e=>{const t=[e],n=Yk(t);return n.values=t,n.Provider=n,Oo.push(n),n},Oo=[],e4=e=>{const t=[e],n=(r=>{t.push(r.value);let i;try{i=r.children?(Array.isArray(r.children)?new s4("",{},r.children):r.children).toString():""}catch(s){throw t.pop(),s}return i instanceof Promise?i.finally(()=>t.pop()).then(s=>Cr(s,s.callbacks)):(t.pop(),Cr(i))});return n.values=t,n.Provider=n,n[M_]=Yk(t),Oo.push(n),n},ss=e=>e.values.at(-1),iu={title:[],script:["src"],style:["data-href"],link:["href"],meta:["name","httpEquiv","charset","itemProp"]},Y0={},ei="data-precedence",t4=e=>e.rel==="stylesheet"&&"precedence"in e,n4=(e,t)=>e==="link"?t:iu[e].length>0,nc=e=>Array.isArray(e)?e:[e],Ab=new WeakMap,Eb=(e,t,n,r)=>({buffer:i,context:s})=>{if(!i)return;const a=Ab.get(s)||{};Ab.set(s,a);const c=a[e]||=[];let l=!1;const u=iu[e],d=n4(e,r!==void 0);if(d){e:for(const[,f]of c)if(!(e==="link"&&!(f.rel==="stylesheet"&&f[ei]!==void 0))){for(const p of u)if((f?.[p]??null)===n?.[p]){l=!0;break e}}}if(l?i[0]=i[0].replaceAll(t,""):d||e==="link"?c.push([t,n,r]):c.unshift([t,n,r]),i[0].indexOf("</head>")!==-1){let f;if(e==="link"||r!==void 0){const p=[];f=c.map(([h,,_],g)=>{if(_===void 0)return[h,Number.MAX_SAFE_INTEGER,g];let y=p.indexOf(_);return y===-1&&(p.push(_),y=p.length-1),[h,y,g]}).sort((h,_)=>h[1]-_[1]||h[2]-_[2]).map(([h])=>h)}else f=c.map(([p])=>p);f.forEach(p=>{i[0]=i[0].replaceAll(p,"")}),i[0]=i[0].replace(/(?=<\/head>)/,f.join(""))}},rc=(e,t,n)=>Cr(new _n(e,n,nc(t??[])).toString()),ic=(e,t,n,r)=>{if("itemProp"in n)return rc(e,t,n);let{precedence:i,blocking:s,...a}=n;i=r?i??"":void 0,r&&(a[ei]=i);const c=new _n(e,a,nc(t||[])).toString();return c instanceof Promise?c.then(l=>Cr(c,[...l.callbacks||[],Eb(e,l,a,i)])):Cr(c,[Eb(e,c,a,i)])},cO=({children:e,...t})=>{const n=q_();if(n){const r=ss(n);if(r==="svg"||r==="head")return new _n("title",t,nc(e??[]))}return ic("title",e,t,!1)},lO=({children:e,...t})=>{const n=q_();return["src","async"].some(r=>!t[r])||n&&ss(n)==="head"?rc("script",e,t):ic("script",e,t,!1)},uO=({children:e,...t})=>["href","precedence"].every(n=>n in t)?(t["data-href"]=t.href,delete t.href,ic("style",e,t,!0)):rc("style",e,t),dO=({children:e,...t})=>["onLoad","onError"].some(n=>n in t)||t.rel==="stylesheet"&&(!("precedence"in t)||"disabled"in t)?rc("link",e,t):ic("link",e,t,t4(t)),pO=({children:e,...t})=>{const n=q_();return n&&ss(n)==="head"?rc("meta",e,t):ic("meta",e,t,!1)},r4=(e,{children:t,...n})=>new _n(e,n,nc(t??[])),fO=e=>(typeof e.action=="function"&&(e.action=ru in e.action?e.action[ru]:void 0),r4("form",e)),i4=(e,t)=>(typeof t.formAction=="function"&&(t.formAction=ru in t.formAction?t.formAction[ru]:void 0),r4(e,t)),hO=e=>i4("input",e),_O=e=>i4("button",e);const hp=Object.freeze(Object.defineProperty({__proto__:null,button:_O,form:fO,input:hO,link:dO,meta:pO,script:lO,style:uO,title:cO},Symbol.toStringTag,{value:"Module"}));var mO=new Map([["className","class"],["htmlFor","for"],["crossOrigin","crossorigin"],["httpEquiv","http-equiv"],["itemProp","itemprop"],["fetchPriority","fetchpriority"],["noModule","nomodule"],["formAction","formaction"]]),ou=e=>mO.get(e)||e,o4=(e,t)=>{for(const[n,r]of Object.entries(e)){const i=n[0]==="-"||!/[A-Z]/.test(n)?n:n.replace(/[A-Z]/g,s=>`-${s.toLowerCase()}`);t(i,r==null?null:typeof r=="number"?i.match(/^(?:a|border-im|column(?:-c|s)|flex(?:$|-[^b])|grid-(?:ar|[^a])|font-w|li|or|sca|st|ta|wido|z)|ty$/)?`${r}`:`${r}px`:r)}},Sa=void 0,q_=()=>Sa,gO=e=>/[A-Z]/.test(e)&&e.match(/^(?:al|basel|clip(?:Path|Rule)$|co|do|fill|fl|fo|gl|let|lig|i|marker[EMS]|o|pai|pointe|sh|st[or]|text[^L]|tr|u|ve|w)/)?e.replace(/([A-Z])/g,"-$1").toLowerCase():e,yO=["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],bO=["allowfullscreen","async","autofocus","autoplay","checked","controls","default","defer","disabled","download","formnovalidate","hidden","inert","ismap","itemscope","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"],F_=(e,t)=>{for(let n=0,r=e.length;n<r;n++){const i=e[n];if(typeof i=="string")_o(i,t);else{if(typeof i=="boolean"||i===null||i===void 0)continue;i instanceof _n?i.toStringToBuffer(t):typeof i=="number"||i.isEscaped?t[0]+=i:i instanceof Promise?t.unshift("",i):F_(i,t)}}},_n=class{tag;props;key;children;isEscaped=!0;localContexts;constructor(e,t,n){this.tag=e,this.props=t,this.children=n}get type(){return this.tag}get ref(){return this.props.ref||null}toString(){const e=[""];this.localContexts?.forEach(([t,n])=>{t.values.push(n)});try{this.toStringToBuffer(e)}finally{this.localContexts?.forEach(([t])=>{t.values.pop()})}return e.length===1?"callbacks"in e?$j(Cr(e[0],e.callbacks)).toString():e[0]:kj(e,e.callbacks)}toStringToBuffer(e){const t=this.tag,n=this.props;let{children:r}=this;e[0]+=`<${t}`;const i=Sa&&ss(Sa)==="svg"?s=>gO(ou(s)):s=>ou(s);for(let[s,a]of Object.entries(n))if(s=i(s),s!=="children"){if(s==="style"&&typeof a=="object"){let c="";o4(a,(l,u)=>{u!=null&&(c+=`${c?";":""}${l}:${u}`)}),e[0]+=' style="',_o(c,e),e[0]+='"'}else if(typeof a=="string")e[0]+=` ${s}="`,_o(a,e),e[0]+='"';else if(a!=null)if(typeof a=="number"||a.isEscaped)e[0]+=` ${s}="${a}"`;else if(typeof a=="boolean"&&bO.includes(s))a&&(e[0]+=` ${s}=""`);else if(s==="dangerouslySetInnerHTML"){if(r.length>0)throw new Error("Can only set one of `children` or `props.dangerouslySetInnerHTML`.");r=[Cr(a.__html)]}else if(a instanceof Promise)e[0]+=` ${s}="`,e.unshift('"',a);else if(typeof a=="function"){if(!s.startsWith("on")&&s!=="ref")throw new Error(`Invalid prop '${s}' of type 'function' supplied to '${t}'.`)}else e[0]+=` ${s}="`,_o(a.toString(),e),e[0]+='"'}if(yO.includes(t)&&r.length===0){e[0]+="/>";return}e[0]+=">",F_(r,e),e[0]+=`</${t}>`}},_p=class extends _n{toStringToBuffer(e){const{children:t}=this,n={...this.props};t.length&&(n.children=t.length===1?t[0]:t);const r=this.tag.call(null,n);if(!(typeof r=="boolean"||r==null))if(r instanceof Promise)if(Oo.length===0)e.unshift("",r);else{const i=Oo.map(s=>[s,s.values.at(-1)]);e.unshift("",r.then(s=>(s instanceof _n&&(s.localContexts=i),s)))}else r instanceof _n?r.toStringToBuffer(e):typeof r=="number"||r.isEscaped?(e[0]+=r,r.callbacks&&(e.callbacks||=[],e.callbacks.push(...r.callbacks))):_o(r,e)}},s4=class extends _n{toStringToBuffer(e){F_(this.children,e)}},vO=(e,t,...n)=>{t??={},n.length&&(t.children=n.length===1?n[0]:n);const r=t.key;delete t.key;const i=Uc(e,t,n);return i.key=r,i},Cb=!1,Uc=(e,t,n)=>{if(!Cb){for(const r in Y0)hp[r][M_]=Y0[r];Cb=!0}return typeof e=="function"?new _p(e,t,n):hp[e]?new _p(hp[e],t,n):e==="svg"||e==="head"?(Sa||=e4(""),new _n(e,t,[new _p(Sa,{value:e},n)])):new _n(e,t,n)},Ro=({children:e})=>new s4("",{children:e},Array.isArray(e)?e:e?[e]:[]),wO=(e,t,...n)=>{let r;if(n.length>0)r=n;else{const i=e.props.children;r=Array.isArray(i)?i:[i]}return vO(e.tag,{...e.props,...t},...r)};function v(e,t,n){let r;if(!t||!("children"in t))r=Uc(e,t,[]);else{const i=t.children;r=Array.isArray(i)?Uc(e,t,i):Uc(e,t,[i])}return r.key=n,r}async function Ae(e,t,n=!1){const{env:r}=e,i=await r.data.loginSessions.get(e.var.tenant_id||"",t);if(!i)throw new W(400,{message:"Login session not found"});e.set("loginSession",i);const s=await qe(r,i.authParams.client_id);e.set("client_id",s.client_id),Vt(e,s.tenant.id);const a=s.tenant;if(i.session_id&&!n){if(!i.authParams.redirect_uri)throw new W(400,{message:"Login session closed and no redirect URI available"});const p=new URL(i.authParams.redirect_uri);throw p.searchParams.set("error","access_denied"),p.searchParams.set("error_description","Login session closed"),i.authParams.state&&p.searchParams.set("state",i.authParams.state),new qt(p.toString(),302)}const[c,l]=await Promise.all([r.data.themes.get(a.id,"default"),r.data.branding.get(a.id)]),u=c??uf,d=l?{...l,favicon_url:e.var.custom_domain?l.favicon_url:void 0}:null,f=i.authParams?.ui_locales?.split(" ")?.map(p=>p.split("-")[0])?.find(p=>{if(Array.isArray(T.options.supportedLngs))return T.options.supportedLngs.includes(p)});return await T.changeLanguage(f||"en"),{theme:u,branding:d,client:s,tenant:a,loginSession:i}}async function Ci(e,t,n){const{theme:r,branding:i,client:s,tenant:a,loginSession:c}=await Ae(e,t,!0),l=pi(s.tenant.id,e.req.header("cookie")),u=l?await e.env.data.sessions.get(s.tenant.id,l):null;if(n?.continuationScope&&HA(c,n.continuationScope)){if(!c.user_id)throw new qt(`/u/login/identifier?state=${encodeURIComponent(t)}`);const h=await e.env.data.users.get(s.tenant.id,c.user_id);if(!h)throw new qt(`/u/login/identifier?state=${encodeURIComponent(t)}`);const _=c.session_id?await e.env.data.sessions.get(s.tenant.id,c.session_id):null;return{theme:r,branding:i,client:s,user:h,tenant:a,loginSession:c,session:_,isContinuation:!0}}if(!u||u.revoked_at||!c.session_id)throw new qt(`/u/login/identifier?state=${encodeURIComponent(t)}`);const f=await e.env.data.sessions.get(s.tenant.id,c.session_id),p=await e.env.data.users.get(s.tenant.id,u.user_id);if(!p||f?.user_id!==u.user_id)throw new qt(`/u/login/identifier?state=${encodeURIComponent(t)}`);return{theme:r,branding:i,client:s,user:p,tenant:a,loginSession:c,session:f,isContinuation:!1}}const mp={"Username-Password-Authentication":"password",email:"email",sms:"sms"};async function a4(e,t,n,r,i){if(r==="username"||i==="password")return"password";if(i==="code")return r==="sms"?"sms":"email";const a=(r==="email"?await qo({userAdapter:e.env.data.users,tenant_id:t.tenant.id,email:n}):await Xn({userAdapter:e.env.data.users,tenant_id:t.tenant.id,username:n,provider:r==="sms"?"sms":Te}))?.app_metadata?.strategy;if(a&&mp[a])return mp[a];const c=t.connections.map(u=>mp[u.strategy]).filter(u=>u!==void 0);return c.length===1&&c[0]?c[0]:(await e.env.data.promptSettings.get(t.tenant.id)).password_first&&c.includes("password")?"password":r==="sms"?"sms":"email"}const H_=({theme:e,branding:t})=>{const n=e?.widget?.logo_url||t?.logo_url;return n?v("div",{className:"inline-flex h-9 items-center",children:v("img",{src:n,className:"h-full w-auto",alt:"Logo"})}):v(Ro,{})},c4=e=>v("div",{className:"mt-8",children:e.client?.client_metadata?.termsAndConditionsUrl&&v("div",{className:"text-xs text-gray-300",children:[T.t("agree_to")," ",v("a",{href:e.client.client_metadata.termsAndConditionsUrl,className:"text-primary hover:underline",target:"_blank",rel:"noreferrer",children:T.t("terms")})]})});var gp={exports:{}};var Ib;function kO(){return Ib||(Ib=1,(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var s="",a=0;a<arguments.length;a++){var c=arguments[a];c&&(s=i(s,r(c)))}return s}function r(s){if(typeof s=="string"||typeof s=="number")return s;if(typeof s!="object")return"";if(Array.isArray(s))return n.apply(null,s);if(s.toString!==Object.prototype.toString&&!s.toString.toString().includes("[native code]"))return s.toString();var a="";for(var c in s)t.call(s,c)&&s[c]&&(a=i(a,c));return a}function i(s,a){return a?s?s+" "+a:s+a:s}e.exports?(n.default=n,e.exports=n):window.classNames=n})()})(gp)),gp.exports}var $O=kO();const Be=Mw($O),SO=e=>e==="small"?"text-base":e==="medium"?"text-2xl":e==="large"?"text-3xl":"",Ze=({name:e,size:t,className:n=""})=>{const r=SO(t);return v("span",{className:Be(`uicon-${e}`,n,r)})},xO=(e,t)=>{const n=e.replace("#",""),r=parseInt(n,16),i=r>>16&255,s=r>>8&255,a=r&255,c=Math.min(255,Math.round(i+(255-i)*t)),l=Math.min(255,Math.round(s+(255-s)*t)),u=Math.min(255,Math.round(a+(255-a)*t));return`#${(c<<16|l<<8|u).toString(16).padStart(6,"0")}`},Lo="mmokx1m9",zO=(e,t)=>{const n=e?.colors?.primary_button||t?.colors?.primary||"#000000",r=e?.colors?.base_hover_color||xO(n,.2),i=e?.colors?.primary_button_label||"#ffffff";return`
|
|
86
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function AP(e,t){if(e){if(typeof e=="string")return yb(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?yb(e,t):void 0}}function yb(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function EP(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,s,a,c=[],l=!0,u=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(l=(r=s.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(d){u=!0,i=d}finally{try{if(!l&&n.return!=null&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw i}}return c}}function CP(e){if(Array.isArray(e))return e}function IP(e){var t=Array.prototype.slice.call(e),n=xP(t,4),r=n[0],i=n[1],s=n[2],a=n[3],c,l,u;if(typeof r=="string")c=r;else throw new TypeError("A text for parsing must be a string.");if(!i||typeof i=="string")a?(l=s,u=a):(l=void 0,u=s),i&&(l=wP({defaultCountry:i},l));else if(mo(i))s?(l=i,u=s):u=i;else throw new Error("Invalid second argument: ".concat(i));return{text:c,options:l,metadata:u}}function $a(e){"@babel/helpers - typeof";return $a=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},$a(e)}function bb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function vb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?bb(Object(n),!0).forEach(function(r){jP(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function jP(e,t,n){return(t=NP(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function NP(e){var t=TP(e,"string");return $a(t)=="symbol"?t:t+""}function TP(e,t){if($a(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if($a(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function PP(e,t,n){t&&t.defaultCountry&&!LN(t.defaultCountry,n)&&(t=vb(vb({},t),{},{defaultCountry:void 0}));try{return vP(e,t,n)}catch(r){if(!(r instanceof Gn))throw r}}function OP(){var e=IP(arguments),t=e.text,n=e.options,r=e.metadata;return PP(t,n,r)}function RP(){return xN(OP,arguments)}function os(e,t="US"){const n=e.trim();if(n.includes("@")){const r=n.toLowerCase(),i=/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r);return{connectionType:"email",normalized:i?r:null,isValid:i,provider:"email"}}else if(/^\+?\d[\d\s\-().]*$/.test(n)){const r=RP(n,{defaultCountry:t});return r&&r.isValid()?{connectionType:"sms",normalized:r.number,isValid:!0,provider:"sms"}:{connectionType:"sms",normalized:null,isValid:!1,provider:"sms"}}else return{connectionType:"username",normalized:n,isValid:!0,provider:Te}}function B_(e){let t=e.trim();t.startsWith("[")&&t.endsWith("]")&&(t=t.slice(1,-1));const n=t.indexOf("%");return n!==-1&&(t=t.slice(0,n)),t}function LP(e){const n=B_(e).split(".");return n.length!==4?!1:n.every(r=>/^\d+$/.test(r)&&Number(r)>=0&&Number(r)<=255)}function DP(e){const t=B_(e);if(t.length<2||t.indexOf(":")===-1||!/^[0-9a-fA-F:.]+$/.test(t))return!1;const n=t.split(":");return t.includes("::")?n.length<=8:n.length===8}function UP(e){let t=e.trim();const n=/^\[([^\]]+)\](?::\d+)?$/,r=t.match(n);if(r&&r[1])return r[1];const i=t.lastIndexOf(":");if(i!==-1){const s=t.slice(0,i),a=t.slice(i+1);/^[0-9.]+$/.test(s)&&/^\d+$/.test(a)&&(t=s)}return t}function wb(e){if(!e)return null;const t=B_(UP(e));return LP(t)?{family:4,normalized:t}:DP(t)?{family:6,normalized:t.toLowerCase()}:null}function kb(e){if(e.includes("::")){let[t,n]=e.split("::"),r=t?t.split(":").filter(Boolean):[],i=n?n.split(":").filter(Boolean):[],s=8-(r.length+i.length);return[...r.map(a=>a.toLowerCase()||"0"),...Array(s).fill("0"),...i.map(a=>a.toLowerCase()||"0")]}else return e.split(":").map(t=>t.toLowerCase()||"0")}function BP(e,t,n=!0){const r=wb(e),i=wb(t);if(!r||!i||r.family!==i.family)return!1;if(r.family===4)return r.normalized===i.normalized;const s=kb(r.normalized),a=kb(i.normalized);return n?s.length===8&&a.length===8&&s.join(":")===a.join(":"):s.slice(0,4).join(":")===a.slice(0,4).join(":")}class qt extends Error{location;status;constructor(t,n=302){super(`Redirect to ${t}`),this.name=qt.name,this.location=t,this.status=n}}const MP=o.z.object({client_id:o.z.string(),username:o.z.string().transform(e=>e.toLowerCase()),otp:o.z.string(),authParams:Xs.optional(),enforceIpCheck:o.z.boolean().optional().default(!1)});async function Kk(e,{client_id:t,username:n,otp:r,authParams:i,enforceIpCheck:s=!1}){const a=e.get("ip"),c=e.get("countryCode"),{connectionType:l,normalized:u}=os(n,c);if(!u)throw new W(400,{message:"Invalid username format"});const d=await qe(e.env,t,e.var.tenant_id),{env:f}=e,p=await f.data.codes.get(d.tenant.id,r,"otp");if(!p)throw new W(400,{message:he("code_invalid")});if(p.expires_at<new Date().toISOString())throw new W(400,{message:he("code_expired")});if(p.used_at)throw new W(400,{message:he("code_used")});const h=await f.data.loginSessions.get(d.tenant.id,p.login_id);if(!h||h.authParams.username!==n)throw new W(400,{message:"Code not found or expired"});if(s&&h.ip&&a&&!BP(h.ip,a))throw new qt(`${wt(e.env)}invalid-session?state=${h.id}`);const _=await Eu(e,{client:d,username:u,provider:l,connection:l,isSocial:!1,ip:e.var.ip});return await f.data.codes.used(d.tenant.id,r),{user:_,client:d,loginSession:h,session_id:h.session_id,authParams:{...h.authParams,...i||{}}}}async function xd(e,t){const n=await Kk(e,t);return gt(e,{authParams:n.authParams,client:n.client,user:n.user,loginSession:n.loginSession,authStrategy:{strategy:"email",strategy_type:"passwordless"}})}const $b=o.z.object({client_id:o.z.string().optional(),client_secret:o.z.string().optional()}),Sb=o.z.union([Lk.extend($b.shape),o.z.object({grant_type:o.z.literal("authorization_code"),client_id:o.z.string(),code:o.z.string(),redirect_uri:o.z.string(),code_verifier:o.z.string().min(43).max(128),organization:o.z.string().optional()}),o.z.object({grant_type:o.z.literal("authorization_code"),code:o.z.string(),redirect_uri:o.z.string().optional(),organization:o.z.string().optional(),...$b.shape}),o.z.object({grant_type:o.z.literal("refresh_token"),client_id:o.z.string().optional(),refresh_token:o.z.string(),redirect_uri:o.z.string().optional(),client_secret:o.z.string().optional()}),o.z.object({grant_type:o.z.literal("http://auth0.com/oauth/grant-type/passwordless/otp"),client_id:o.z.string(),username:o.z.string(),otp:o.z.string(),realm:o.z.enum(["email","sms"])})]);function qP(e){if(!e)return{};const[t,n]=e.split(" ");if(t?.toLowerCase()==="basic"&&n){const[r,i]=atob(n).split(":");return{client_id:r,client_secret:i}}return{}}const FP=new o.OpenAPIHono().openapi(o.createRoute({tags:["oauth2"],method:"post",path:"/",request:{body:{content:{"application/x-www-form-urlencoded":{schema:Sb},"application/json":{schema:Sb}}}},responses:{200:{content:{"application/json":{schema:kh}},description:"Tokens"},302:{description:"Redirect for further user interaction (e.g., MFA, consent).",headers:o.z.object({Location:o.z.string().url()}).openapi({})},400:{description:"Bad Request - The request was malformed or invalid.",content:{"application/json":{schema:o.z.object({error:o.z.string(),error_description:o.z.string().optional()})}}},401:{description:"Unauthorized - Client authentication failed.",content:{"application/json":{schema:o.z.object({error:o.z.string(),error_description:o.z.string().optional()})}}},403:{description:"Forbidden - User is not a member of the required organization.",content:{"application/json":{schema:o.z.object({error:o.z.string(),error_description:o.z.string().optional()})}}}}}),async e=>{const n=(e.req.header("Content-Type")||"").includes("application/json")?e.req.valid("json"):e.req.valid("form"),r=qP(e.req.header("Authorization")),i={...n,...r};if(!i.client_id)throw new I(400,{message:"client_id is required"});e.set("client_id",i.client_id);let s;switch(n.grant_type){case an.AuthorizationCode:s=await wN(e,vN.parse(i));break;case an.ClientCredential:s=await bN(e,Lk.parse(i));break;case an.RefreshToken:s=await $N(e,kN.parse(i));break;case an.OTP:s=await Kk(e,MP.parse(i));break;default:return e.json({error:"unsupported_grant_type",error_description:"Grant type not implemented"},400)}Vt(e,s.client.tenant.id);const a=new Headers;s.session_id&&cl(s.client.tenant.id,s.session_id,e.var.host||"").forEach(d=>{a.append("Set-Cookie",d)});let c=[];if(s.authParams.audience)try{let u;if(n.grant_type===an.ClientCredential)u=await ea(e,{grantType:an.ClientCredential,tenantId:s.client.tenant.id,clientId:s.client.client_id,audience:s.authParams.audience,requestedScopes:s.authParams.scope?.split(" ")||[],organizationId:s.organization?.id});else{if(!s.user?.user_id)throw new W(400,{error:"invalid_request",error_description:"User ID is required for user-based grants"});u=await ea(e,{grantType:n.grant_type,tenantId:s.client.tenant.id,userId:s.user.user_id,clientId:s.client.client_id,audience:s.authParams.audience,requestedScopes:s.authParams.scope?.split(" ")||[],organizationId:s.organization?.id})}s.authParams.scope=u.scopes.join(" "),c=u.permissions}catch(u){if(u instanceof I)throw u;console.error("Error calculating scopes and permissions:",u)}const l=await bu(e,{...s,grantType:n.grant_type,permissions:c.length>0?c:void 0});return e.json(l,{headers:a})});async function ec(e,t){const n=await e.env.data.emailProviders.get(e.var.tenant_id);if(!n)throw new I(500,{message:"Email provider not found"});const r=e.env.emailProviders?.[n.name];if(!r)throw new I(500,{message:"Email provider not found"});await r({emailProvider:n,...t,from:n.default_from_address||`login@${e.env.ISSUER}`})}async function Gk(e,t){if(!e.var.client_id)throw new I(500,{message:"Client not found"});const n=await qe(e.env,e.var.client_id),r=n.connections.find(a=>a.strategy==="sms");if(!r)throw new I(500,{message:"SMS provider not found"});const i=r.options?.provider||"twilio",s=e.env.smsProviders?.[i];if(!s)throw new I(500,{message:"SMS provider not found"});await s({options:r.options,to:t.to,from:t.from,text:t.text,template:"auth-code",data:{code:t.code,tenantName:n.tenant.friendly_name,tenantId:n.tenant.id}})}async function Wk(e,t,n,r,i){const s=await e.env.data.tenants.get(e.var.tenant_id);if(!s)throw new I(500,{message:"Tenant not found"});const a=`${wt(e.env)}reset-password?state=${r}&code=${n}`,c=await e.env.data.branding.get(e.var.tenant_id),l=c?.logo_url||"",u=c?.colors?.primary||"#7d68f4",d={vendorName:s.friendly_name,lng:"en"};await ec(e,{to:t,subject:he("reset_password_title",d),html:`Click here to reset your password: ${wt(e.env)}reset-password?state=${r}&code=${n}`,template:"auth-password-reset",data:{vendorName:s.friendly_name,logo:l,passwordResetUrl:a,supportUrl:s.support_url||"https://support.sesamy.com",buttonColor:u,passwordResetTitle:he("password_reset_title",d),resetPasswordEmailClickToReset:he("reset_password_email_click_to_reset",d),resetPasswordEmailReset:he("reset_password_email_reset",d),supportInfo:he("support_info",d),contactUs:he("contact_us",d),copyright:he("copyright",d),tenantName:s.friendly_name,tenantId:s.id}}),fe(e,s.id,{type:pe.SUCCESS_CHANGE_PASSWORD_REQUEST,description:t})}async function zd(e,{to:t,code:n,language:r}){const i=await e.env.data.tenants.get(e.var.tenant_id);if(!i)throw new I(500,{message:"Tenant not found"});const{connectionType:s}=os(t),a=await e.env.data.branding.get(e.var.tenant_id),c=a?.logo_url||"",l=a?.colors?.primary||"#7d68f4",u=new URL(wt(e.env)),d={vendorName:i.friendly_name,vendorId:i.id,loginDomain:u.hostname,code:n,lng:r||"en"};s==="email"?await ec(e,{to:t,subject:he("code_email_subject",d),html:`Click here to validate your email: ${wt(e.env)}validate-email`,template:"auth-code",data:{code:n,vendorName:i.friendly_name,logo:c,supportUrl:i.support_url||"",buttonColor:l,welcomeToYourAccount:he("welcome_to_your_account",d),linkEmailClickToLogin:he("link_email_click_to_login",d),linkEmailLogin:he("link_email_login",d),linkEmailOrEnterCode:he("link_email_or_enter_code",d),codeValid30Mins:he("code_valid_30_minutes",d),supportInfo:he("support_info",d),contactUs:he("contact_us",d),copyright:he("copyright",d)}}):s==="sms"&&await Gk(e,{to:t,text:he("sms_code_text",d),code:n,from:i.friendly_name}),fe(e,i.id,{type:pe.CODE_LINK_SENT,description:t})}async function Ad(e,{to:t,code:n,authParams:r,language:i}){const s=await e.env.data.tenants.get(e.var.tenant_id);if(!s)throw new I(500,{message:"Tenant not found"});if(!r.redirect_uri)throw new I(400,{message:"redirect_uri is required"});const{connectionType:a}=os(t),c=await e.env.data.branding.get(e.var.tenant_id),l=c?.logo_url||"",u=c?.colors?.primary||"",d=new URL(Le(e.env));d.pathname="passwordless/verify_redirect",d.searchParams.set("verification_code",n),d.searchParams.set("connection",a),d.searchParams.set("client_id",r.client_id),d.searchParams.set("redirect_uri",r.redirect_uri),d.searchParams.set("email",t),r.response_type&&d.searchParams.set("response_type",r.response_type),r.scope&&d.searchParams.set("scope",r.scope),r.state&&d.searchParams.set("state",r.state),r.nonce&&d.searchParams.set("nonce",r.nonce),r.code_challenge&&d.searchParams.set("code_challenge",r.code_challenge),r.code_challenge_method&&d.searchParams.set("code_challenge_method",r.code_challenge_method),r.audience&&d.searchParams.set("audience",r.audience);const f={vendorName:s.friendly_name,code:n,lng:i||"en"};if(a==="email")await ec(e,{to:t,subject:he("code_email_subject",f),html:`Click here to validate your email: ${wt(e.env)}validate-email`,template:"auth-link",data:{code:n,vendorName:s.friendly_name,logo:l,supportUrl:s.support_url||"",magicLink:d.toString(),buttonColor:u,welcomeToYourAccount:he("welcome_to_your_account",f),linkEmailClickToLogin:he("link_email_click_to_login",f),linkEmailLogin:he("link_email_login",f),linkEmailOrEnterCode:he("link_email_or_enter_code",f),codeValid30Mins:he("code_valid_30_minutes",f),supportInfo:he("support_info",f),contactUs:he("contact_us",f),copyright:he("copyright",f)}});else if(a==="sms")await Gk(e,{to:t,text:`${he("link_sms_login",f)}: ${d.toString()}`,code:n,from:s.friendly_name});else throw new I(400,{message:"Only email and SMS connections are supported for magic links"});fe(e,s.id,{type:pe.CODE_LINK_SENT,description:t})}async function Ed(e,t,n){const r=await e.env.data.tenants.get(e.var.tenant_id);if(!r)throw new I(500,{message:"Tenant not found"});if(!t.email)throw new I(400,{message:"User has no email"});const i=await e.env.data.branding.get(e.var.tenant_id),s=i?.logo_url||"",a=i?.colors?.primary||"#7d68f4",c={vendorName:r.friendly_name,lng:n||"en"};await ec(e,{to:t.email,subject:he("welcome_to_your_account",c),html:`Click here to validate your email: ${wt(e.env)}validate-email`,template:"auth-verify-email",data:{vendorName:r.friendly_name,logo:s,emailValidationUrl:`${wt(e.env)}validate-email`,supportUrl:r.support_url||"https://support.sesamy.com",buttonColor:a,welcomeToYourAccount:he("welcome_to_your_account",c),verifyEmailVerify:he("verify_email_verify",c),supportInfo:he("support_info",c),contactUs:he("contact_us",c),copyright:he("copyright",c)}})}async function HP(e,t,n,r,i){const s=await e.env.data.tenants.get(e.var.tenant_id);if(!s)throw new I(500,{message:"Tenant not found"});const a=await e.env.data.branding.get(e.var.tenant_id),c=a?.logo_url||"",l=a?.colors?.primary||"#7d68f4",u={vendorName:s.friendly_name,lng:"en"},d=`${wt(e.env)}signup?state=${r}&code=${n}`;await ec(e,{to:t,subject:he("register_password_account",u),html:`Click here to register: ${d}`,template:"auth-pre-signup-verification",data:{vendorName:s.friendly_name,logo:c,signupUrl:d,setPassword:he("set_password",u),registerPasswordAccount:he("register_password_account",u),clickToSignUpDescription:he("click_to_sign_up_description",u),supportUrl:s.support_url||"https://support.sesamy.com",buttonColor:l,welcomeToYourAccount:he("welcome_to_your_account",u),verifyEmailVerify:he("verify_email_verify",u),supportInfo:he("support_info",u),contactUs:he("contact_us",u),copyright:he("copyright",u)}})}const VP=new o.OpenAPIHono().openapi(o.createRoute({tags:["dbconnections"],method:"post",path:"/signup",request:{body:{content:{"application/json":{schema:o.z.object({client_id:o.z.string(),connection:o.z.literal("Username-Password-Authentication"),email:o.z.string().transform(e=>e.toLowerCase()),password:o.z.string()})}}}},responses:{200:{content:{"application/json":{schema:o.z.object({_id:o.z.string(),email:o.z.string().optional(),email_verified:o.z.boolean(),app_metadata:o.z.object({}),user_metadata:o.z.object({})})}},description:"Created user"}}}),async e=>{const{email:t,password:n,client_id:r}=e.req.valid("json"),i=await qe(e.env,r);e.set("client_id",i.client_id),Vt(e,i.tenant.id);const a=i.connections.find(p=>p.strategy==="Username-Password-Authentication")?.name||"Username-Password-Authentication",c=await Ta(e.env.data,i.tenant.id,a);try{await Na(c,{tenantId:i.tenant.id,userId:"",newPassword:n,data:e.env.data})}catch(p){throw new I(400,{message:p?.message||"Password does not meet the requirements"})}if(await Xn({userAdapter:e.env.data.users,tenant_id:i.tenant.id,username:t,provider:Te}))throw new I(400,{message:"Invalid sign up"});const{hash:u,algorithm:d}=await oa(n),f=await e.env.data.users.create(i.tenant.id,{user_id:`${Te}|${Ni()}`,email:t,email_verified:!1,provider:Te,connection:"Username-Password-Authentication",is_social:!1,password:{hash:u,algorithm:d}});e.set("user_id",f.user_id),e.set("username",f.email),e.set("connection",f.connection);try{await Ed(e,f)}catch(p){console.error("Failed to send verification email:",p)}return fe(e,i.tenant.id,{type:pe.SUCCESS_SIGNUP,description:"Successful signup"}),e.json({_id:f.user_id,email:f.email,email_verified:!1,app_metadata:{},user_metadata:{}})}).openapi(o.createRoute({tags:["dbconnections"],method:"post",path:"/change_password",request:{body:{content:{"application/json":{schema:o.z.object({client_id:o.z.string(),connection:o.z.literal("Username-Password-Authentication"),email:o.z.string().transform(e=>e.toLowerCase())})}}}},responses:{200:{description:"Redirect to the client's redirect uri"}}}),async e=>{const{email:t,client_id:n}=e.req.valid("json"),r=await qe(e.env,n);if(e.set("client_id",r.client_id),Vt(e,r.tenant.id),!await Or({userAdapter:e.env.data.users,tenant_id:r.tenant.id,username:t,provider:Te}))return e.html("If an account with that email exists, we've sent instructions to reset your password.");const s={client_id:n,username:t},a=await e.env.data.loginSessions.create(r.tenant.id,{expires_at:new Date(Date.now()+di*1e3).toISOString(),authParams:s,csrf_token:Oe(),ip:e.get("ip"),useragent:e.get("useragent"),auth0Client:rr(e.get("auth0_client"))});return await Wk(e,t,a.id,a.authParams.state),e.html("If an account with that email exists, we've sent instructions to reset your password.")});function In(){const e="1234567890";let t="";for(let n=0;n<6;n+=1)t+=e[Math.floor(Math.random()*10)];return t.toString()}const KP=new o.OpenAPIHono().openapi(o.createRoute({tags:["passwordless"],method:"post",path:"/start",request:{body:{content:{"application/json":{schema:o.z.union([o.z.object({connection:o.z.literal("email"),client_id:o.z.string(),email:o.z.string().transform(e=>e.toLowerCase()),send:o.z.enum(["link","code"]),authParams:Xs.omit({client_id:!0})}),o.z.object({client_id:o.z.string(),connection:o.z.literal("sms"),phone_number:o.z.string(),send:o.z.enum(["link","code"]),authParams:Xs.omit({client_id:!0})})])}}}},responses:{200:{description:"Status"}}}),async e=>{const t=e.req.valid("json"),{env:n}=e,{client_id:r,send:i,authParams:s,connection:a}=t,c=await qe(e.env,r);e.set("client_id",c.client_id),Vt(e,c.tenant.id);const l=a==="email"?t.email:t.phone_number,u=e.get("ip"),d=e.get("useragent"),f=e.get("auth0_client"),p=rr(f),h=await n.data.loginSessions.create(c.tenant.id,{authParams:{...s,client_id:r,username:l},expires_at:new Date(Date.now()+Bs).toISOString(),csrf_token:Oe(),ip:u,useragent:d,auth0Client:p}),_=await n.data.codes.create(c.tenant.id,{code_id:In(),code_type:"otp",login_id:h.id,expires_at:new Date(Date.now()+Bs).toISOString(),redirect_uri:s.redirect_uri}),g=s?.ui_locales?.split(" ")?.map(y=>y.split("-")[0])[0];return i==="link"?await Ad(e,{to:l,code:_.code_id,authParams:{...s,client_id:r},language:g}):await zd(e,{to:l,code:_.code_id,language:g}),e.html("OK")}).openapi(o.createRoute({tags:["passwordless"],method:"get",path:"/verify_redirect",request:{query:o.z.object({scope:o.z.string(),response_type:o.z.nativeEnum(at),redirect_uri:o.z.string(),state:o.z.string(),nonce:o.z.string().optional(),verification_code:o.z.string(),connection:o.z.string(),client_id:o.z.string(),email:o.z.string().transform(e=>e.toLowerCase()),audience:o.z.string().optional()})},responses:{302:{description:"Successful verification, redirecting to continue flow.",headers:o.z.object({Location:o.z.string().url()}).openapi({})},400:{description:"Bad Request (e.g., invalid client, invalid code, missing parameters).",content:{"application/json":{schema:o.z.object({error:o.z.string(),error_description:o.z.string().optional()})}}},500:{description:"Internal Server Error.",content:{"application/json":{schema:o.z.object({error:o.z.string(),error_description:o.z.string().optional()})}}}}}),async e=>{const{env:t}=e,{client_id:n,email:r,verification_code:i,redirect_uri:s,state:a,scope:c,audience:l,response_type:u,nonce:d}=e.req.valid("query"),f=await qe(t,n);e.set("client_id",f.client_id),Vt(e,f.tenant.id),e.set("connection","email");const p={client_id:n,redirect_uri:s,state:a,nonce:d,scope:c,audience:l,response_type:u};let h="Something went wrong. Please try again later.";try{const k=await xd(e,{client_id:n,username:r,otp:i,authParams:p,enforceIpCheck:!0});if(k instanceof Response)return k;if(k&&typeof k=="object"&&"access_token"in k)return e.json(k)}catch(k){const S=k;"message"in S&&typeof S.message=="string"&&(h=S.message)}const _=e.get("ip"),g=e.get("useragent"),y=e.get("auth0_client"),m=rr(y),w=await t.data.loginSessions.create(f.tenant.id,{authParams:{...p,username:r},expires_at:new Date(Date.now()+Bs).toISOString(),csrf_token:Oe(),ip:_,useragent:g,auth0Client:m});return e.redirect(`${wt(e.env)}invalid-session?state=${w.id}&error=${encodeURIComponent(h)}`,302)});class Yi extends I{_code;constructor(t,n){super(t,n),this._code=n?.code}get code(){return this._code}}async function GP(e,t,n){const r=n.app_metadata||{},i=r.failed_logins||[],s=Date.now(),a=[...i.filter(c=>s-c<1e3*60*5),s];r.failed_logins=a,await e.users.update(t,n.user_id,{app_metadata:r})}function WP(e){const n=(e.app_metadata||{}).failed_logins||[],r=Date.now();return n.filter(i=>r-i<1e3*60*5)}async function Jk(e,t,n,r){const{data:i}=e.env,{username:s}=n;if(e.set("username",s),!s)throw new W(400,{message:"Username is required"});const a=await Or({userAdapter:e.env.data.users,tenant_id:t.tenant.id,username:s,provider:Te});if(!a)throw fe(e,t.tenant.id,{type:pe.FAILED_LOGIN_INCORRECT_PASSWORD,description:"Invalid user"}),new Yi(403,{message:"User not found",code:"USER_NOT_FOUND"});const c=a.linked_to?await i.users.get(t.tenant.id,a.linked_to):a;if(!c)throw new Yi(403,{message:"User not found",code:"USER_NOT_FOUND"});if(e.set("connection",a.connection),e.set("user_id",c.user_id),WP(c).length>=3)throw fe(e,t.tenant.id,{type:pe.FAILED_LOGIN,description:"Too many failed login attempts"}),new Yi(403,{message:"Too many failed login attempts",code:"TOO_MANY_FAILED_LOGINS"});const u=await i.passwords.get(t.tenant.id,a.user_id);if(!(u&&await Fo.compare(n.password,u.password)))throw fe(e,t.tenant.id,{type:pe.FAILED_LOGIN_INCORRECT_PASSWORD,description:"Invalid password"}),GP(i,t.tenant.id,c),new Yi(403,{message:"Invalid password",code:"INVALID_PASSWORD"});if(!a.email_verified&&t.client_metadata?.email_validation==="enforced"){const p=r?.authParams?.ui_locales?.split(" ")?.map(h=>h.split("-")[0])[0];throw await Ed(e,a,p),fe(e,t.tenant.id,{type:pe.FAILED_LOGIN,description:"Email not verified"}),r&&await MA(e,t.tenant.id,r,"Email not verified"),new Yi(403,{message:"Email not verified",code:"EMAIL_NOT_VERIFIED"})}const f=c.app_metadata||{};return f.failed_logins&&f.failed_logins.length>0&&(f.failed_logins=[],i.users.update(t.tenant.id,c.user_id,{app_metadata:f})),{client:t,authParams:n,user:c,loginSession:r}}async function tc(e,t,n,r,i){const s=await Jk(e,t,n,r);return gt(e,{...s,ticketAuth:i,authStrategy:{strategy:"Username-Password-Authentication",strategy_type:"database"}})}async function JP(e,t,n,r){await Eu(e,{client:t,username:n,provider:Te,connection:"Username-Password-Authentication",isSocial:!1,ip:e.var.ip});let i=In(),s=await e.env.data.codes.get(t.tenant.id,i,"password_reset");for(;s;)i=In(),s=await e.env.data.codes.get(t.tenant.id,i,"password_reset");const a=e.get("ip"),c=e.get("useragent"),l=e.get("auth0_client"),u=rr(l),d=await e.env.data.loginSessions.create(t.tenant.id,{expires_at:new Date(Date.now()+Tz).toISOString(),authParams:{client_id:t.client_id,username:n},csrf_token:Oe(),ip:a,useragent:c,auth0Client:u}),f=await e.env.data.codes.create(t.tenant.id,{code_id:i,code_type:"password_reset",login_id:d.id,expires_at:new Date(Date.now()+Nz).toISOString()});await Wk(e,n,f.code_id,r)}const ZP=new o.OpenAPIHono().openapi(o.createRoute({tags:["oauth"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:o.z.union([o.z.object({credential_type:o.z.literal("http://auth0.com/oauth/grant-type/passwordless/otp"),otp:o.z.string(),client_id:o.z.string(),username:o.z.string().transform(e=>e.toLowerCase()),realm:o.z.enum(["email"]),scope:o.z.string().optional()}),o.z.object({credential_type:o.z.literal("http://auth0.com/oauth/grant-type/password-realm"),client_id:o.z.string(),username:o.z.string().transform(e=>e.toLowerCase()),password:o.z.string(),realm:o.z.enum(["Username-Password-Authentication"]),scope:o.z.string().optional()})])}}}},responses:{200:{description:"List of tenants"}}}),async e=>{const t=e.req.valid("json"),{client_id:n,username:r}=t;e.set("username",r);const i=await qe(e.env,n);e.set("client_id",n),Vt(e,i.tenant.id);const s=r.toLocaleLowerCase(),a=e.get("ip"),c=e.get("useragent"),l=e.get("auth0_client");let u;if("otp"in t)u=await xd(e,{client_id:n,username:s,otp:t.otp});else if("password"in t){const d=await e.env.data.loginSessions.create(i.tenant.id,{expires_at:new Date(Date.now()+di*1e3).toISOString(),authParams:{client_id:n,username:s},csrf_token:Oe(),ip:a,useragent:c,auth0Client:rr(l)});u=await tc(e,i,{username:s,password:t.password,client_id:n},d,!0)}else throw new I(400,{message:"Code or password required"});return u});function Zk(e,t){if(!e||t.length===0)return!1;const n=fp(e)?.host??null;if(!n)return!1;for(const r of t){let i;if(r.startsWith("http://")||r.startsWith("https://")?i=fp(r)?.host??null:i=fp("https://"+r)?.host??null,n===i)return!0}return!1}function fp(e){try{return new URL(e)}catch{return null}}function XP(e,t){if(!e||t===void 0)return!1;const n=new Date(e.authenticated_at).getTime(),r=t*1e3;return Date.now()-n>r}async function YP({ctx:e,session:t,client:n,authParams:r,connection:i,login_hint:s}){const a=new URL(e.req.url);e.var.custom_domain&&(a.hostname=e.var.custom_domain);const{ip:c,auth0_client:l,useragent:u}=e.var,d=rr(l);XP(t,r.max_age)&&(t=void 0);const f=await e.env.data.loginSessions.create(n.tenant.id,{expires_at:new Date(Date.now()+di*1e3).toISOString(),authParams:r,csrf_token:Oe(),authorization_url:a.toString(),ip:c,useragent:u,auth0Client:d}),p=n.client_metadata?.universal_login_version==="2"?"/u2":"/u";if(t&&s){const h=await e.env.data.users.get(n.tenant.id,t.user_id);if(h?.email===s)return gt(e,{client:n,loginSession:f,authParams:r,user:h,existingSessionIdToLink:t.id})}if(i==="email"&&s){const h=In();return await e.env.data.codes.create(n.tenant.id,{code_id:h,code_type:"otp",login_id:f.id,expires_at:new Date(Date.now()+di*1e3).toISOString(),redirect_uri:r.redirect_uri}),await Ad(e,{code:h,to:s,authParams:r}),e.redirect(`${p}/enter-code?state=${f.id}`)}if(t)return e.redirect(`${p}/check-account?state=${f.id}`);if(p==="/u2"){const h=await e.env.data.promptSettings.get(n.tenant.id),_=lo.parse(h||{}),g=n.connections.some(y=>y.strategy==="Username-Password-Authentication");if(_.identifier_first===!1&&g)return e.redirect(`${p}/login?state=${f.id}`)}return e.redirect(`${p}/login/identifier?state=${f.id}`)}function QP(e){if(e==="Username-Password-Authentication")return Te;if(e==="email")return"email";throw new W(403,{message:"Invalid realm"})}async function eO(e,t,n,r,i){const{env:s}=e;e.set("connection",i);const a=await s.data.codes.get(t,n,"ticket");if(!a||a.used_at)throw new W(403,{message:"Ticket not found"});const c=await s.data.loginSessions.get(t,a.login_id);if(!c||!c.authParams.username)throw new W(403,{message:"Session not found"});const l=await qe(s,c.authParams.client_id,t);e.set("client_id",c.authParams.client_id),await s.data.codes.used(t,n);const u=QP(i),f=l.connections.find(_=>_.name===i)?.strategy||(u===Te?"Username-Password-Authentication":"email"),p=f==="Username-Password-Authentication"?"database":"passwordless";let h=await Eu(e,{username:c.authParams.username,provider:u,client:l,connection:i,isSocial:!1,ip:e.var.ip});return e.set("username",h.email||h.phone_number),e.set("user_id",h.user_id),gt(e,{authParams:{scope:c.authParams?.scope,...r},loginSession:c,user:h,client:l,authStrategy:{strategy:f,strategy_type:p}})}async function tO({ctx:e,client:t,session:n,redirect_uri:r,state:i,nonce:s,code_challenge_method:a,code_challenge:c,audience:l,scope:u,response_type:d,response_mode:f,organization:p,max_age:h}){const{env:_}=e,g=new URL(r),y=`${g.protocol}//${g.host}`,m=f===pn.WEB_MESSAGE;async function w(le="Login required"){const Se=new Headers;if(n&&(fe(e,t.tenant.id,{type:pe.FAILED_SILENT_AUTH,description:le}),Fw(t.tenant.id,e.req.header("host")).forEach(Hr=>{Se.append("set-cookie",Hr)})),m)return _f(e,y,JSON.stringify({error:"login_required",error_description:le,state:i}),Se);const F=new URL(r);if(d===at.TOKEN||d===at.TOKEN_ID_TOKEN){const Xe=new URLSearchParams;Xe.set("error","login_required"),Xe.set("error_description",le),i&&Xe.set("state",i),F.hash=Xe.toString()}else F.searchParams.set("error","login_required"),F.searchParams.set("error_description",le),i&&F.searchParams.set("state",i);const St={Location:F.toString()},ue=Se.get("set-cookie");return ue&&(St["set-cookie"]=ue),new Response(null,{status:302,headers:St})}const k=!n||n?.expires_at&&new Date(n.expires_at)<new Date||n?.idle_expires_at&&new Date(n.idle_expires_at)<new Date,S=n&&h!==void 0&&Date.now()-new Date(n.authenticated_at).getTime()>h*1e3;if(k||S)return w();e.set("user_id",n.user_id);const b=await _.data.users.get(t.tenant.id,n.user_id);if(!b)return console.error("User not found",n.user_id),w("User not found");e.set("username",b.email),e.set("connection",b.connection);let x;if(p&&(x=await _.data.organizations.get(t.tenant.id,p),!x))return w("Organization not found");const A=l||t.tenant.audience;let E=u||"",P=[];if(A)try{const le=await ea(e,{tenantId:t.tenant.id,clientId:t.client_id,audience:A,requestedScopes:u?.split(" ")||[],organizationId:x?.id,userId:b.user_id});E=le.scopes.join(" "),P=le.permissions}catch(le){if(le?.statusCode===403||le?.status===403){const Se=le?.body?.error_description||le?.message||"Access denied";return w(Se)}throw le}else if(x&&!(await _.data.userOrganizations.list(t.tenant.id,{q:`user_id:${b.user_id}`,per_page:1e3})).userOrganizations.some(F=>F.organization_id===x.id))return w("User is not a member of the specified organization");const R=await _.data.loginSessions.create(t.tenant.id,{csrf_token:Oe(),authParams:{client_id:t.client_id,audience:l,scope:u,state:i,nonce:s,response_type:d,redirect_uri:r,organization:p,max_age:h},expires_at:new Date(Date.now()+300*1e3).toISOString(),session_id:n.id,ip:e.var.ip,useragent:e.var.useragent}),C=h!==void 0?Math.floor(new Date(n.authenticated_at).getTime()/1e3):void 0,L={client:t,authParams:{client_id:t.client_id,audience:l,code_challenge_method:a,code_challenge:c,scope:E,state:i,nonce:s,response_type:d,redirect_uri:r,max_age:h},user:b,session_id:n.id,auth_time:C,permissions:P,organization:x},B=d===at.CODE?await b2(e,{user:b,client:t,authParams:L.authParams,login_id:R.id}):await bu(e,L),V=n.idle_expires_at?new Date(Date.now()+hu*1e3).toISOString():void 0;await _.data.sessions.update(t.tenant.id,n.id,{used_at:new Date().toISOString(),last_interaction_at:new Date().toISOString(),login_session_id:R.id,device:{...n.device,last_ip:e.var.ip||"",last_user_agent:e.var.useragent||""},idle_expires_at:V}),V&&await _.data.loginSessions.update(t.tenant.id,R.id,{expires_at:V}),fe(e,t.tenant.id,{type:pe.SUCCESS_SILENT_AUTH,description:"Successful silent authentication"});const D=new Headers;if(cl(t.tenant.id,n.id,e.req.header("host")).forEach(le=>{D.append("set-cookie",le)}),m)return _f(e,y,JSON.stringify({...B,state:i}),D);const ce=new URL(r);if(d===at.TOKEN||d===at.TOKEN_ID_TOKEN){const le=new URLSearchParams;Object.entries(B).forEach(([Se,F])=>{F!==void 0&&le.set(Se,String(F))}),i&&le.set("state",i),ce.hash=le.toString()}else Object.entries(B).forEach(([le,Se])=>{Se!==void 0&&ce.searchParams.set(le,String(Se))}),i&&ce.searchParams.set("state",i);const ve={Location:ce.toString()},Ee=D.get("set-cookie");return Ee&&(ve["set-cookie"]=Ee),new Response(null,{status:302,headers:ve})}const nO=["email","sms","Username-Password-Authentication"],xb=o.z.object({client_id:o.z.string().optional(),vendor_id:o.z.string().optional(),redirect_uri:o.z.string().optional(),scope:o.z.string().optional(),state:o.z.string().optional(),prompt:o.z.string().optional(),response_mode:o.z.nativeEnum(pn).optional(),response_type:o.z.nativeEnum(at).optional(),audience:o.z.string().optional(),connection:o.z.string().optional(),nonce:o.z.string().optional(),max_age:o.z.string().optional(),acr_values:o.z.string().optional(),login_ticket:o.z.string().optional(),code_challenge_method:o.z.nativeEnum(pu).optional(),code_challenge:o.z.string().optional(),realm:o.z.string().optional(),auth0Client:o.z.string().optional(),organization:o.z.string().optional(),login_hint:o.z.string().optional(),screen_hint:o.z.string().optional(),ui_locales:o.z.string().optional()});function rO(e){try{const t=e.split(".");if(t.length<2||!t[1])return null;const n=new TextDecoder().decode(wr.decode(t[1],{strict:!1})),r=JSON.parse(n);return typeof r!="object"||r===null?null:r}catch{return null}}const iO=new o.OpenAPIHono().openapi(o.createRoute({tags:["oauth"],method:"get",path:"/",request:{query:xb.extend({client_id:o.z.string(),screen_hint:o.z.string().openapi({example:"signup",description:'Optional hint for the screen to show, like "signup" or "login".'}).optional(),request:o.z.string().openapi({description:"JWT containing authorization request parameters (OpenID Connect Core Section 6.1)"}).optional()}).passthrough()},responses:{200:{description:"Successful authorization response. This can be an HTML page (e.g., for silent authentication iframe or universal login page) or a JSON object containing tokens (e.g., for response_mode=web_message).",content:{"text/html":{schema:o.z.string().openapi({example:"<html>...</html>"})},"application/json":{schema:kh}}},302:{description:"Redirect to the client's redirect URI, an authentication page, or an external identity provider.",headers:o.z.object({Location:o.z.string().url()})},400:{description:"Bad Request. Invalid parameters or other client-side errors.",content:{"application/json":{schema:o.z.object({message:o.z.string()})}}},403:{description:"Forbidden. The request is not allowed (e.g., invalid origin).",content:{"application/json":{schema:o.z.object({message:o.z.string()})}}}}}),async e=>{const{env:t}=e,n=e.req.valid("query");let r={};if(n.request){const D=rO(n.request);if(D){const ne=xb.safeParse(D);ne.success&&(r=ne.data)}}const{client_id:i,vendor_id:s,redirect_uri:a,scope:c,state:l,audience:u,nonce:d,connection:f,response_type:p,response_mode:h,code_challenge:_,code_challenge_method:g,prompt:y,max_age:m,acr_values:w,login_ticket:k,realm:S,login_hint:b,ui_locales:x,organization:A}={...r,...n};e.set("log","authorize");const E=await qe(t,i);e.set("client_id",E.client_id),Vt(e,E.tenant.id);let P=a;typeof a=="string"&&(P=a.split("#")[0]);const R=e.req.header("origin");if(R&&!Zk(R,E.web_origins||[]))throw new I(403,{message:`Origin ${R} not allowed`});if(!p){if(P){const D=new URL(P);return D.searchParams.set("error","invalid_request"),D.searchParams.set("error_description","Missing required parameter: response_type"),l&&D.searchParams.set("state",l),e.redirect(D.toString())}throw new I(400,{message:"Missing required parameter: response_type"})}const C={redirect_uri:P,scope:c,state:l,client_id:i,vendor_id:s,audience:u,nonce:d,prompt:y,response_type:p,response_mode:h,code_challenge:_,code_challenge_method:g,username:b,ui_locales:x,organization:A,max_age:m?parseInt(m,10):void 0,acr_values:w};if(C.redirect_uri){const D=E.callbacks||[];if(e.var.host&&(D.push(`${ku(e.env)}/*`),D.push(`${wt(e.env)}/*`)),!T_(C.redirect_uri,D,{allowPathWildcards:!0,allowSubDomainWildcards:!0}))throw new I(400,{message:`Invalid redirect URI - ${C.redirect_uri}`})}let L;const B=Rz(E.tenant.id,e.req.header("cookie"));for(const D of B){const ne=await t.data.sessions.get(E.tenant.id,D);if(ne&&!ne.revoked_at){L=ne;break}}if(y=="none"){if(!P||!l||!p)throw new I(400,{message:"Missing required parameters for silent auth: redirect_uri, state, and response_type"});return tO({ctx:e,session:L||void 0,redirect_uri:P,state:l,response_type:p,response_mode:h,client:E,nonce:d,code_challenge_method:g,code_challenge:_,audience:u,scope:c,organization:A,max_age:m?parseInt(m,10):void 0})}if(E.connections.length===1&&E.connections[0]&&!nO.includes(E.connections[0].strategy||""))return Zy(e,E,E.connections[0].name,C);if(f&&f!=="email")return Zy(e,E,f,C);if(k){const D=await eO(e,E.tenant.id,k,C,S);return D instanceof Response?D:e.json(D)}const V=await YP({ctx:e,client:E,authParams:C,session:L||void 0,connection:f,login_hint:b});return V instanceof Response?V:e.json(V)}),oO=new o.OpenAPIHono().openapi(o.createRoute({tags:["oauth"],method:"get",path:"/",request:{query:o.z.object({client_id:o.z.string(),redirect_url:o.z.string().optional(),login_hint:o.z.string().toLowerCase().optional(),screen_hint:o.z.enum(["account","change-email","change-phone","change-password"]).optional().default("account")})},responses:{302:{description:"Redirect to the account page with login session state or login page",headers:o.z.object({Location:o.z.string().url()})},400:{description:"Bad Request. Invalid parameters or other client-side errors.",content:{"application/json":{schema:o.z.object({message:o.z.string()})}}}}}),async e=>{const{env:t}=e,{client_id:n,redirect_url:r,login_hint:i,screen_hint:s}=e.req.valid("query");e.set("log","account");const a=await qe(t,n);e.set("client_id",a.client_id),Vt(e,a.tenant.id);const c={redirect_uri:r||e.req.url,client_id:n,username:i},l=e.req.header("origin");if(l&&!Zk(l,a.web_origins||[]))throw new I(403,{message:`Origin ${l} not allowed`});if(c.redirect_uri){const w=a.callbacks||[];if(e.var.host&&(w.push(`${ku(e.env)}/*`),w.push(`${wt(e.env)}/*`)),!T_(c.redirect_uri,w,{allowPathWildcards:!0,allowSubDomainWildcards:!0}))throw new I(400,{message:`Invalid redirect URI - ${c.redirect_uri}`})}const u=pi(a.tenant.id,e.req.header("cookie")),d=u?await t.data.sessions.get(a.tenant.id,u):void 0,f=d&&!d.revoked_at?d:void 0,p=new URL(e.req.url);e.var.custom_domain&&(p.hostname=e.var.custom_domain);const{ip:h,auth0_client:_,useragent:g}=e.var,y=rr(_),m=await t.data.loginSessions.create(a.tenant.id,{expires_at:new Date(Date.now()+di*1e3).toISOString(),authParams:c,csrf_token:Oe(),authorization_url:p.toString(),ip:h,useragent:g,auth0Client:y});if(f){if(i&&(await t.data.users.get(a.tenant.id,f.user_id))?.email!==i)return e.redirect(`${wt(e.env)}login/identifier?state=${encodeURIComponent(m.id)}`);if(await t.data.loginSessions.update(a.tenant.id,m.id,{session_id:f.id}),s==="change-email"){const k=new URL("/u/account/change-email",e.req.url);return k.searchParams.set("state",m.id),e.redirect(k.toString())}const w=new URL("/u/account",e.req.url);return w.searchParams.set("state",m.id),e.redirect(w.toString())}return e.redirect(`${wt(e.env)}login/identifier?state=${encodeURIComponent(m.id)}`)});function sO(e){const t=new o.OpenAPIHono;t.use(async(r,i)=>{const s=Mo(r,e.dataAdapter),a=e.dataAdapter.cache||is({defaultTtlSeconds:0,maxEntries:100,cleanupIntervalMs:0}),c=e.dataAdapter.cache?300:0,l=Qa(s,{defaultTtl:c,cacheEntities:["tenants","connections","clientConnections","customDomains","clients","branding","themes","promptSettings","forms","resourceServers","roles","organizations","userRoles","userPermissions","hooks"],cache:a});return r.env.data=Ya(r,l),i()}),t.use("/oauth/token",Rk({origin:r=>r||"",allowHeaders:["Tenant-Id","Content-Type","Auth0-Client","Upgrade-Insecure-Requests"],allowMethods:["POST"],maxAge:600})),t.use(rs).use(ns).use(kd(t));const n=t.route("/v2/logout",hN).route("/userinfo",gN).route("/.well-known",yN).route("/oauth/token",FP).route("/dbconnections",VP).route("/passwordless",KP).route("/co/authenticate",ZP).route("/authorize",iO).route("/account",oO).route("/callback",pN);return n.doc("/spec",{openapi:"3.0.0",info:{version:"1.0.0",title:"Oauth API"},security:[{oauth2:["openid","email","profile"]}]}),j_(n),n}var M_=Symbol("RENDERER"),X0=Symbol("ERROR_HANDLER"),Fe=Symbol("STASH"),Xk=Symbol("INTERNAL"),aO=Symbol("MEMO"),ru=Symbol("PERMALINK"),zb=e=>(e[Xk]=!0,e),Yk=e=>({value:t,children:n})=>{if(!n)return;const r={children:[{tag:zb(()=>{e.push(t)}),props:{}}]};Array.isArray(n)?r.children.push(...n.flat()):r.children.push(n),r.children.push({tag:zb(()=>{e.pop()}),props:{}});const i={tag:"",props:r,type:""};return i[X0]=s=>{throw e.pop(),s},i},Qk=e=>{const t=[e],n=Yk(t);return n.values=t,n.Provider=n,Oo.push(n),n},Oo=[],e4=e=>{const t=[e],n=(r=>{t.push(r.value);let i;try{i=r.children?(Array.isArray(r.children)?new s4("",{},r.children):r.children).toString():""}catch(s){throw t.pop(),s}return i instanceof Promise?i.finally(()=>t.pop()).then(s=>Cr(s,s.callbacks)):(t.pop(),Cr(i))});return n.values=t,n.Provider=n,n[M_]=Yk(t),Oo.push(n),n},ss=e=>e.values.at(-1),iu={title:[],script:["src"],style:["data-href"],link:["href"],meta:["name","httpEquiv","charset","itemProp"]},Y0={},ei="data-precedence",t4=e=>e.rel==="stylesheet"&&"precedence"in e,n4=(e,t)=>e==="link"?t:iu[e].length>0,nc=e=>Array.isArray(e)?e:[e],Ab=new WeakMap,Eb=(e,t,n,r)=>({buffer:i,context:s})=>{if(!i)return;const a=Ab.get(s)||{};Ab.set(s,a);const c=a[e]||=[];let l=!1;const u=iu[e],d=n4(e,r!==void 0);if(d){e:for(const[,f]of c)if(!(e==="link"&&!(f.rel==="stylesheet"&&f[ei]!==void 0))){for(const p of u)if((f?.[p]??null)===n?.[p]){l=!0;break e}}}if(l?i[0]=i[0].replaceAll(t,""):d||e==="link"?c.push([t,n,r]):c.unshift([t,n,r]),i[0].indexOf("</head>")!==-1){let f;if(e==="link"||r!==void 0){const p=[];f=c.map(([h,,_],g)=>{if(_===void 0)return[h,Number.MAX_SAFE_INTEGER,g];let y=p.indexOf(_);return y===-1&&(p.push(_),y=p.length-1),[h,y,g]}).sort((h,_)=>h[1]-_[1]||h[2]-_[2]).map(([h])=>h)}else f=c.map(([p])=>p);f.forEach(p=>{i[0]=i[0].replaceAll(p,"")}),i[0]=i[0].replace(/(?=<\/head>)/,f.join(""))}},rc=(e,t,n)=>Cr(new _n(e,n,nc(t??[])).toString()),ic=(e,t,n,r)=>{if("itemProp"in n)return rc(e,t,n);let{precedence:i,blocking:s,...a}=n;i=r?i??"":void 0,r&&(a[ei]=i);const c=new _n(e,a,nc(t||[])).toString();return c instanceof Promise?c.then(l=>Cr(c,[...l.callbacks||[],Eb(e,l,a,i)])):Cr(c,[Eb(e,c,a,i)])},cO=({children:e,...t})=>{const n=q_();if(n){const r=ss(n);if(r==="svg"||r==="head")return new _n("title",t,nc(e??[]))}return ic("title",e,t,!1)},lO=({children:e,...t})=>{const n=q_();return["src","async"].some(r=>!t[r])||n&&ss(n)==="head"?rc("script",e,t):ic("script",e,t,!1)},uO=({children:e,...t})=>["href","precedence"].every(n=>n in t)?(t["data-href"]=t.href,delete t.href,ic("style",e,t,!0)):rc("style",e,t),dO=({children:e,...t})=>["onLoad","onError"].some(n=>n in t)||t.rel==="stylesheet"&&(!("precedence"in t)||"disabled"in t)?rc("link",e,t):ic("link",e,t,t4(t)),pO=({children:e,...t})=>{const n=q_();return n&&ss(n)==="head"?rc("meta",e,t):ic("meta",e,t,!1)},r4=(e,{children:t,...n})=>new _n(e,n,nc(t??[])),fO=e=>(typeof e.action=="function"&&(e.action=ru in e.action?e.action[ru]:void 0),r4("form",e)),i4=(e,t)=>(typeof t.formAction=="function"&&(t.formAction=ru in t.formAction?t.formAction[ru]:void 0),r4(e,t)),hO=e=>i4("input",e),_O=e=>i4("button",e);const hp=Object.freeze(Object.defineProperty({__proto__:null,button:_O,form:fO,input:hO,link:dO,meta:pO,script:lO,style:uO,title:cO},Symbol.toStringTag,{value:"Module"}));var mO=new Map([["className","class"],["htmlFor","for"],["crossOrigin","crossorigin"],["httpEquiv","http-equiv"],["itemProp","itemprop"],["fetchPriority","fetchpriority"],["noModule","nomodule"],["formAction","formaction"]]),ou=e=>mO.get(e)||e,o4=(e,t)=>{for(const[n,r]of Object.entries(e)){const i=n[0]==="-"||!/[A-Z]/.test(n)?n:n.replace(/[A-Z]/g,s=>`-${s.toLowerCase()}`);t(i,r==null?null:typeof r=="number"?i.match(/^(?:a|border-im|column(?:-c|s)|flex(?:$|-[^b])|grid-(?:ar|[^a])|font-w|li|or|sca|st|ta|wido|z)|ty$/)?`${r}`:`${r}px`:r)}},Sa=void 0,q_=()=>Sa,gO=e=>/[A-Z]/.test(e)&&e.match(/^(?:al|basel|clip(?:Path|Rule)$|co|do|fill|fl|fo|gl|let|lig|i|marker[EMS]|o|pai|pointe|sh|st[or]|text[^L]|tr|u|ve|w)/)?e.replace(/([A-Z])/g,"-$1").toLowerCase():e,yO=["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],bO=["allowfullscreen","async","autofocus","autoplay","checked","controls","default","defer","disabled","download","formnovalidate","hidden","inert","ismap","itemscope","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"],F_=(e,t)=>{for(let n=0,r=e.length;n<r;n++){const i=e[n];if(typeof i=="string")_o(i,t);else{if(typeof i=="boolean"||i===null||i===void 0)continue;i instanceof _n?i.toStringToBuffer(t):typeof i=="number"||i.isEscaped?t[0]+=i:i instanceof Promise?t.unshift("",i):F_(i,t)}}},_n=class{tag;props;key;children;isEscaped=!0;localContexts;constructor(e,t,n){this.tag=e,this.props=t,this.children=n}get type(){return this.tag}get ref(){return this.props.ref||null}toString(){const e=[""];this.localContexts?.forEach(([t,n])=>{t.values.push(n)});try{this.toStringToBuffer(e)}finally{this.localContexts?.forEach(([t])=>{t.values.pop()})}return e.length===1?"callbacks"in e?$j(Cr(e[0],e.callbacks)).toString():e[0]:kj(e,e.callbacks)}toStringToBuffer(e){const t=this.tag,n=this.props;let{children:r}=this;e[0]+=`<${t}`;const i=Sa&&ss(Sa)==="svg"?s=>gO(ou(s)):s=>ou(s);for(let[s,a]of Object.entries(n))if(s=i(s),s!=="children"){if(s==="style"&&typeof a=="object"){let c="";o4(a,(l,u)=>{u!=null&&(c+=`${c?";":""}${l}:${u}`)}),e[0]+=' style="',_o(c,e),e[0]+='"'}else if(typeof a=="string")e[0]+=` ${s}="`,_o(a,e),e[0]+='"';else if(a!=null)if(typeof a=="number"||a.isEscaped)e[0]+=` ${s}="${a}"`;else if(typeof a=="boolean"&&bO.includes(s))a&&(e[0]+=` ${s}=""`);else if(s==="dangerouslySetInnerHTML"){if(r.length>0)throw new Error("Can only set one of `children` or `props.dangerouslySetInnerHTML`.");r=[Cr(a.__html)]}else if(a instanceof Promise)e[0]+=` ${s}="`,e.unshift('"',a);else if(typeof a=="function"){if(!s.startsWith("on")&&s!=="ref")throw new Error(`Invalid prop '${s}' of type 'function' supplied to '${t}'.`)}else e[0]+=` ${s}="`,_o(a.toString(),e),e[0]+='"'}if(yO.includes(t)&&r.length===0){e[0]+="/>";return}e[0]+=">",F_(r,e),e[0]+=`</${t}>`}},_p=class extends _n{toStringToBuffer(e){const{children:t}=this,n={...this.props};t.length&&(n.children=t.length===1?t[0]:t);const r=this.tag.call(null,n);if(!(typeof r=="boolean"||r==null))if(r instanceof Promise)if(Oo.length===0)e.unshift("",r);else{const i=Oo.map(s=>[s,s.values.at(-1)]);e.unshift("",r.then(s=>(s instanceof _n&&(s.localContexts=i),s)))}else r instanceof _n?r.toStringToBuffer(e):typeof r=="number"||r.isEscaped?(e[0]+=r,r.callbacks&&(e.callbacks||=[],e.callbacks.push(...r.callbacks))):_o(r,e)}},s4=class extends _n{toStringToBuffer(e){F_(this.children,e)}},vO=(e,t,...n)=>{t??={},n.length&&(t.children=n.length===1?n[0]:n);const r=t.key;delete t.key;const i=Uc(e,t,n);return i.key=r,i},Cb=!1,Uc=(e,t,n)=>{if(!Cb){for(const r in Y0)hp[r][M_]=Y0[r];Cb=!0}return typeof e=="function"?new _p(e,t,n):hp[e]?new _p(hp[e],t,n):e==="svg"||e==="head"?(Sa||=e4(""),new _n(e,t,[new _p(Sa,{value:e},n)])):new _n(e,t,n)},Ro=({children:e})=>new s4("",{children:e},Array.isArray(e)?e:e?[e]:[]),wO=(e,t,...n)=>{let r;if(n.length>0)r=n;else{const i=e.props.children;r=Array.isArray(i)?i:[i]}return vO(e.tag,{...e.props,...t},...r)};function v(e,t,n){let r;if(!t||!("children"in t))r=Uc(e,t,[]);else{const i=t.children;r=Array.isArray(i)?Uc(e,t,i):Uc(e,t,[i])}return r.key=n,r}async function Ae(e,t,n=!1){const{env:r}=e,i=await r.data.loginSessions.get(e.var.tenant_id||"",t);if(!i)throw new W(400,{message:"Login session not found"});e.set("loginSession",i);const s=await qe(r,i.authParams.client_id);e.set("client_id",s.client_id),Vt(e,s.tenant.id);const a=s.tenant;if(i.session_id&&!n){if(!i.authParams.redirect_uri)throw new W(400,{message:"Login session closed and no redirect URI available"});const p=new URL(i.authParams.redirect_uri);throw p.searchParams.set("error","access_denied"),p.searchParams.set("error_description","Login session closed"),i.authParams.state&&p.searchParams.set("state",i.authParams.state),new qt(p.toString(),302)}const[c,l]=await Promise.all([r.data.themes.get(a.id,"default"),r.data.branding.get(a.id)]),u=c??uf,d=l?{...l,favicon_url:e.var.custom_domain?l.favicon_url:void 0}:null,f=i.authParams?.ui_locales?.split(" ")?.map(p=>p.split("-")[0])?.find(p=>{if(Array.isArray(T.options.supportedLngs))return T.options.supportedLngs.includes(p)});return await T.changeLanguage(f||"en"),{theme:u,branding:d,client:s,tenant:a,loginSession:i}}async function Ci(e,t,n){const{theme:r,branding:i,client:s,tenant:a,loginSession:c}=await Ae(e,t,!0),l=pi(s.tenant.id,e.req.header("cookie")),u=l?await e.env.data.sessions.get(s.tenant.id,l):null;if(n?.continuationScope&&HA(c,n.continuationScope)){if(!c.user_id)throw new qt(`/u/login/identifier?state=${encodeURIComponent(t)}`);const h=await e.env.data.users.get(s.tenant.id,c.user_id);if(!h)throw new qt(`/u/login/identifier?state=${encodeURIComponent(t)}`);const _=c.session_id?await e.env.data.sessions.get(s.tenant.id,c.session_id):null;return{theme:r,branding:i,client:s,user:h,tenant:a,loginSession:c,session:_,isContinuation:!0}}if(!u||u.revoked_at||!c.session_id)throw new qt(`/u/login/identifier?state=${encodeURIComponent(t)}`);const f=await e.env.data.sessions.get(s.tenant.id,c.session_id),p=await e.env.data.users.get(s.tenant.id,u.user_id);if(!p||f?.user_id!==u.user_id)throw new qt(`/u/login/identifier?state=${encodeURIComponent(t)}`);return{theme:r,branding:i,client:s,user:p,tenant:a,loginSession:c,session:f,isContinuation:!1}}const mp={"Username-Password-Authentication":"password",email:"email",sms:"sms"};async function a4(e,t,n,r,i){if(r==="username"||i==="password")return"password";if(i==="code")return r==="sms"?"sms":"email";const a=(r==="email"?await qo({userAdapter:e.env.data.users,tenant_id:t.tenant.id,email:n}):await Xn({userAdapter:e.env.data.users,tenant_id:t.tenant.id,username:n,provider:r==="sms"?"sms":Te}))?.app_metadata?.strategy;if(a&&mp[a])return mp[a];const c=t.connections.map(u=>mp[u.strategy]).filter(u=>u!==void 0);return c.length===1&&c[0]?c[0]:(await e.env.data.promptSettings.get(t.tenant.id)).password_first&&c.includes("password")?"password":r==="sms"?"sms":"email"}const H_=({theme:e,branding:t})=>{const n=e?.widget?.logo_url||t?.logo_url;return n?v("div",{className:"inline-flex h-9 items-center",children:v("img",{src:n,className:"h-full w-auto",alt:"Logo"})}):v(Ro,{})},c4=e=>v("div",{className:"mt-8",children:e.client?.client_metadata?.termsAndConditionsUrl&&v("div",{className:"text-xs text-gray-300",children:[T.t("agree_to")," ",v("a",{href:e.client.client_metadata.termsAndConditionsUrl,className:"text-primary hover:underline",target:"_blank",rel:"noreferrer",children:T.t("terms")})]})});var gp={exports:{}};var Ib;function kO(){return Ib||(Ib=1,(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var s="",a=0;a<arguments.length;a++){var c=arguments[a];c&&(s=i(s,r(c)))}return s}function r(s){if(typeof s=="string"||typeof s=="number")return s;if(typeof s!="object")return"";if(Array.isArray(s))return n.apply(null,s);if(s.toString!==Object.prototype.toString&&!s.toString.toString().includes("[native code]"))return s.toString();var a="";for(var c in s)t.call(s,c)&&s[c]&&(a=i(a,c));return a}function i(s,a){return a?s?s+" "+a:s+a:s}e.exports?(n.default=n,e.exports=n):window.classNames=n})()})(gp)),gp.exports}var $O=kO();const Be=Mw($O),SO=e=>e==="small"?"text-base":e==="medium"?"text-2xl":e==="large"?"text-3xl":"",Ze=({name:e,size:t,className:n=""})=>{const r=SO(t);return v("span",{className:Be(`uicon-${e}`,n,r)})},xO=(e,t)=>{const n=e.replace("#",""),r=parseInt(n,16),i=r>>16&255,s=r>>8&255,a=r&255,c=Math.min(255,Math.round(i+(255-i)*t)),l=Math.min(255,Math.round(s+(255-s)*t)),u=Math.min(255,Math.round(a+(255-a)*t));return`#${(c<<16|l<<8|u).toString(16).padStart(6,"0")}`},Lo="mmp1s9de",zO=(e,t)=>{const n=e?.colors?.primary_button||t?.colors?.primary||"#000000",r=e?.colors?.base_hover_color||xO(n,.2),i=e?.colors?.primary_button_label||"#ffffff";return`
|
|
87
87
|
body {
|
|
88
88
|
--primary-color: ${n};
|
|
89
89
|
--primary-hover: ${r};
|
|
@@ -185,7 +185,7 @@ Możesz kliknąć poniższy link, aby rozpocząć nowe logowanie.`,uX=()=>`Il li
|
|
|
185
185
|
|
|
186
186
|
Assicuratevi di aprire il link di accesso con lo stesso browser con cui avete iniziato l'accesso.
|
|
187
187
|
|
|
188
|
-
Potete fare clic sul link sottostante per iniziare un nuovo accesso.`,E8=((e={},t={})=>{const n=t.locale??j();return n==="en"?rX():n==="nb"?iX():n==="sv"?oX():n==="da"?sX():n==="fi"?aX():n==="cs"?cX():n==="pl"?lX():uX()}),dX=()=>"Invalid link",pX=()=>"Ugyldig lenke",fX=()=>"Ogiltig länk",hX=()=>"Ugyldigt link",_X=()=>"Virheellinen linkki",mX=()=>"Neplatný odkaz",gX=()=>"Nieprawidłowy link",yX=()=>"Collegamento non valido",C8=((e={},t={})=>{const n=t.locale??j();return n==="en"?dX():n==="nb"?pX():n==="sv"?fX():n==="da"?hX():n==="fi"?_X():n==="cs"?mX():n==="pl"?gX():yX()}),bX=()=>"Linked accounts",vX=()=>"Koblede kontoer",wX=()=>"Länkade konton",kX=()=>"Koblede konti",$X=()=>"Linkitetyt tilit",SX=()=>"Propojené účty",xX=()=>"Połączone konta",zX=()=>"Account collegati",I8=((e={},t={})=>{const n=t.locale??j();return n==="en"?bX():n==="nb"?vX():n==="sv"?wX():n==="da"?kX():n==="fi"?$X():n==="cs"?SX():n==="pl"?xX():zX()}),AX=()=>"Click the button to log in",EX=()=>"Klikk på knappen for å logge inn",CX=()=>"Klicka på knappen för att logga in",IX=()=>"Klik på knappen for at logge ind",jX=()=>"Kirjaudu sisään napsauttamalla painiketta",NX=()=>"Kliknutím na tlačítko se přihlásíte",TX=()=>"Kliknij przycisk, aby się zalogować",PX=()=>"Fare clic sul pulsante per accedere",j8=((e={},t={})=>{const n=t.locale??j();return n==="en"?AX():n==="nb"?EX():n==="sv"?CX():n==="da"?IX():n==="fi"?jX():n==="cs"?NX():n==="pl"?TX():PX()}),OX=()=>"Login",RX=()=>"Logg inn",LX=()=>"Logga in",DX=()=>"Login",UX=()=>"Kirjaudu sisään",BX=()=>"Přihlášení",MX=()=>"Zaloguj się",qX=()=>"Accedi",N8=((e={},t={})=>{const n=t.locale??j();return n==="en"?OX():n==="nb"?RX():n==="sv"?LX():n==="da"?DX():n==="fi"?UX():n==="cs"?BX():n==="pl"?MX():qX()}),FX=e=>`Or enter the code at ${e?.vendorName} to complete the login.`,HX=e=>`Eller skriv inn koden på ${e?.vendorName} for å fullføre påloggingen.`,VX=e=>`Eller skriv in koden på ${e?.vendorName} för att slutföra inloggningen.`,KX=e=>`Eller indtast koden på ${e?.vendorName} for at gennemføre login.`,GX=e=>`Tai kirjoita koodi osoitteessa ${e?.vendorName} kirjautumisen loppuun saattamiseksi.`,WX=e=>`Nebo zadejte kód na adrese ${e?.vendorName} a dokončete přihlášení.`,JX=e=>`Lub wprowadź kod na stronie ${e?.vendorName}, aby dokończyć logowanie.`,ZX=e=>`Oppure inserire il codice all'indirizzo ${e?.vendorName} per completare il login.`,T8=((e,t={})=>{const n=t.locale??j();return n==="en"?FX(e):n==="nb"?HX(e):n==="sv"?VX(e):n==="da"?KX(e):n==="fi"?GX(e):n==="cs"?WX(e):n==="pl"?JX(e):ZX(e)}),XX=e=>`Enter your email address to unlock this show on ${e?.service}`,YX=e=>`Skriv inn e-postadressen din for å låse opp dette programmet på ${e?.service}`,QX=e=>`Ange din epost för att låsa upp den här showen på ${e?.service}`,eY=e=>`Indtast din e-mailadresse for at låse op for dette show på ${e?.service}`,tY=e=>`Kirjoita sähköpostiosoitteesi avataksesi tämän ohjelman osoitteessa ${e?.service}`,nY=e=>`Zadejte svou e-mailovou adresu pro odemknutí tohoto pořadu na ${e?.service}`,rY=e=>`Wprowadź swój adres e-mail, aby odblokować ten program na ${e?.service}`,iY=e=>`Inserisci il tuo indirizzo e-mail per sbloccare questo spettacolo su ${e?.service}`,P8=((e,t={})=>{const n=t.locale??j();return n==="en"?XX(e):n==="nb"?YX(e):n==="sv"?QX(e):n==="da"?eY(e):n==="fi"?tY(e):n==="cs"?nY(e):n==="pl"?rY(e):iY(e)}),oY=e=>`Link your account with ${e?.service}`,sY=e=>`Koble kontoen din til ${e?.service}`,aY=e=>`Koppla ditt konto till ${e?.service}`,cY=e=>`Forbind din konto med ${e?.service}`,lY=e=>`Yhdistä tilisi ${e?.service}`,uY=e=>`Propojte svůj účet s ${e?.service}`,dY=e=>`Połącz swoje konto z ${e?.service}`,pY=e=>`Collegate il vostro account con ${e?.service}`,O8=((e,t={})=>{const n=t.locale??j();return n==="en"?oY(e):n==="nb"?sY(e):n==="sv"?aY(e):n==="da"?cY(e):n==="fi"?lY(e):n==="cs"?uY(e):n==="pl"?dY(e):pY(e)}),fY=()=>"Log in",hY=()=>"Logg inn",_Y=()=>"Logga in",mY=()=>"Log ind",gY=()=>"Kirjaudu sisään",yY=()=>"Přihlásit se",bY=()=>"Zaloguj się",vY=()=>"Accedi",R8=((e={},t={})=>{const n=t.locale??j();return n==="en"?fY():n==="nb"?hY():n==="sv"?_Y():n==="da"?mY():n==="fi"?gY():n==="cs"?yY():n==="pl"?bY():vY()}),wY=()=>"You are logged in as",kY=()=>"Du er innlogget som",$Y=()=>"Du är inloggad som",SY=()=>"Du er logget ind som",xY=()=>"Olet kirjautunut sisään nimellä",zY=()=>"Jste přihlášeni jako",AY=()=>"Jesteś zalogowany jako",EY=()=>"L'utente ha effettuato l'accesso come",L8=((e={},t={})=>{const n=t.locale??j();return n==="en"?wY():n==="nb"?kY():n==="sv"?$Y():n==="da"?SY():n==="fi"?xY():n==="cs"?zY():n==="pl"?AY():EY()}),CY=()=>"Login",IY=()=>"Logg inn",jY=()=>"Logga in",NY=()=>"Login",TY=()=>"Kirjaudu sisään",PY=()=>"Přihlášení",OY=()=>"Logowanie",RY=()=>"Accesso",D8=((e={},t={})=>{const n=t.locale??j();return n==="en"?CY():n==="nb"?IY():n==="sv"?jY():n==="da"?NY():n==="fi"?TY():n==="cs"?PY():n==="pl"?OY():RY()}),LY=e=>`Log in to ${e?.companyName} to continue to ${e?.clientName}.`,DY=e=>`Logg inn på ${e?.companyName} for å fortsette til ${e?.clientName}.`,UY=e=>`Logga in på ${e?.companyName} för att fortsätta till ${e?.clientName}.`,BY=e=>`Log ind på ${e?.companyName} for at fortsætte til ${e?.clientName}.`,MY=e=>`Kirjaudu sisään ${e?.companyName} jatkaaksesi ${e?.clientName}.`,qY=e=>`Přihlaste se k ${e?.companyName} a pokračujte na ${e?.clientName}.`,FY=e=>`Zaloguj się do ${e?.companyName}, aby kontynuować do ${e?.clientName}.`,HY=e=>`Accedi a ${e?.companyName} per continuare su ${e?.clientName}.`,U8=((e,t={})=>{const n=t.locale??j();return n==="en"?LY(e):n==="nb"?DY(e):n==="sv"?UY(e):n==="da"?BY(e):n==="fi"?MY(e):n==="cs"?qY(e):n==="pl"?FY(e):HY(e)}),VY=()=>"Enter your email address and we will send you a login code.",KY=()=>"Skriv inn e-postadressen din og vi sender deg en påloggingskode.",GY=()=>"Ange din mejladress, så skickar vi en kod till dig som du kan logga in med.",WY=()=>"Indtast din e-mailadresse, så sender vi dig en login-kode.",JY=()=>"Anna sähköpostiosoitteesi, niin lähetämme sinulle kirjautumiskoodin.",ZY=()=>"Zadejte svou e-mailovou adresu a my vám zašleme přihlašovací kód.",XY=()=>"Wprowadź swój adres e-mail, a my wyślemy Ci kod logowania.",YY=()=>"Inserite il vostro indirizzo e-mail e vi invieremo un codice di accesso.",B8=((e={},t={})=>{const n=t.locale??j();return n==="en"?VY():n==="nb"?KY():n==="sv"?GY():n==="da"?WY():n==="fi"?JY():n==="cs"?ZY():n==="pl"?XY():YY()}),QY=()=>"Enter your email or phone number to sign in",eQ=()=>"Skriv inn e-postadressen eller telefonnummeret ditt for å logge på",tQ=()=>"Ange din e-postadress eller ditt telefonnummer för att logga in",nQ=()=>"Indtast din e-mail eller dit telefonnummer for at logge ind",rQ=()=>"Kirjoita sähköpostiosoitteesi tai puhelinnumerosi kirjautuaksesi sisään",iQ=()=>"Pro přihlášení zadejte svůj e-mail nebo telefonní číslo",oQ=()=>"Wprowadź swój adres e-mail lub numer telefonu, aby się zalogować",sQ=()=>"Inserire l'e-mail o il numero di telefono per accedere",M8=((e={},t={})=>{const n=t.locale??j();return n==="en"?QY():n==="nb"?eQ():n==="sv"?tQ():n==="da"?nQ():n==="fi"?rQ():n==="cs"?iQ():n==="pl"?oQ():sQ()}),aQ=()=>"Enter your email address and we will send you a login link.",cQ=()=>"Skriv inn e-postadressen din og vi sender deg en påloggingslenke.",lQ=()=>"Ange din mejladress, så skickar vi en länk till dig som du kan logga in med.",uQ=()=>"Indtast din e-mailadresse, så sender vi dig et login-link.",dQ=()=>"Anna sähköpostiosoitteesi, niin lähetämme sinulle kirjautumislinkin.",pQ=()=>"Zadejte svou e-mailovou adresu a my vám zašleme odkaz pro přihlášení.",fQ=()=>"Wprowadź swój adres e-mail, a my wyślemy Ci link do logowania.",hQ=()=>"Inserite il vostro indirizzo e-mail e vi invieremo un link di accesso.",q8=((e={},t={})=>{const n=t.locale??j();return n==="en"?aQ():n==="nb"?cQ():n==="sv"?lQ():n==="da"?uQ():n==="fi"?dQ():n==="cs"?pQ():n==="pl"?fQ():hQ()}),_Q=()=>"Enter your phone number to sign in",mQ=()=>"Skriv inn telefonnummeret ditt for å logge på",gQ=()=>"Ange ditt telefonnummer för att logga in",yQ=()=>"Indtast dit telefonnummer for at logge ind",bQ=()=>"Anna puhelinnumerosi kirjautuaksesi sisään",vQ=()=>"Zadejte své telefonní číslo a přihlaste se",wQ=()=>"Wprowadź swój numer telefonu, aby się zalogować",kQ=()=>"Inserire il numero di telefono per accedere",F8=((e={},t={})=>{const n=t.locale??j();return n==="en"?_Q():n==="nb"?mQ():n==="sv"?gQ():n==="da"?yQ():n==="fi"?bQ():n==="cs"?vQ():n==="pl"?wQ():kQ()}),$Q=e=>`Enter your ${e?.authMethod} to sign in.`,SQ=e=>`Skriv inn din ${e?.authMethod} for å logge inn.`,xQ=e=>`Ange din ${e?.authMethod} för att logga in.`,zQ=e=>`Indtast din ${e?.authMethod} for at logge ind.`,AQ=e=>`Kirjoita ${e?.authMethod} kirjautuaksesi sisään.`,EQ=e=>`Pro přihlášení zadejte adresu ${e?.authMethod}.`,CQ=e=>`Wprowadź swój adres ${e?.authMethod}, aby się zalogować.`,IQ=e=>`Inserite il vostro ${e?.authMethod} per accedere.`,H8=((e,t={})=>{const n=t.locale??j();return n==="en"?$Q(e):n==="nb"?SQ(e):n==="sv"?xQ(e):n==="da"?zQ(e):n==="fi"?AQ(e):n==="cs"?EQ(e):n==="pl"?CQ(e):IQ(e)}),jQ=()=>"Continue",NQ=()=>"Fortsett",TQ=()=>"Fortsätt",PQ=()=>"Fortsæt",OQ=()=>"Jatka",RQ=()=>"Pokračovat",LQ=()=>"Kontynuuj",DQ=()=>"Continua",V8=((e={},t={})=>{const n=t.locale??j();return n==="en"?jQ():n==="nb"?NQ():n==="sv"?TQ():n==="da"?PQ():n==="fi"?OQ():n==="cs"?RQ():n==="pl"?LQ():DQ()}),UQ=e=>`Log in to ${e?.companyName} to continue to ${e?.clientName}.`,BQ=e=>`Logg inn på ${e?.companyName} for å fortsette til ${e?.clientName}.`,MQ=e=>`Logga in på ${e?.companyName} för att fortsätta till ${e?.clientName}.`,qQ=e=>`Log ind på ${e?.companyName} for at fortsætte til ${e?.clientName}.`,FQ=e=>`Kirjaudu sisään ${e?.companyName} jatkaaksesi ${e?.clientName}.`,HQ=e=>`Přihlaste se k ${e?.companyName} a pokračujte na ${e?.clientName}.`,VQ=e=>`Zaloguj się do ${e?.companyName}, aby kontynuować do ${e?.clientName}.`,KQ=e=>`Accedi a ${e?.companyName} per continuare su ${e?.clientName}.`,K8=((e,t={})=>{const n=t.locale??j();return n==="en"?UQ(e):n==="nb"?BQ(e):n==="sv"?MQ(e):n==="da"?qQ(e):n==="fi"?FQ(e):n==="cs"?HQ(e):n==="pl"?VQ(e):KQ(e)}),GQ=e=>`Continue with ${e?.connectionName}`,WQ=e=>`Fortsett med ${e?.connectionName}`,JQ=e=>`Fortsätt med ${e?.connectionName}`,ZQ=e=>`Fortsæt med ${e?.connectionName}`,XQ=e=>`Jatka palvelulla ${e?.connectionName}`,YQ=e=>`Pokračovat s ${e?.connectionName}`,QQ=e=>`Kontynuuj z ${e?.connectionName}`,eee=e=>`Continua con ${e?.connectionName}`,G8=((e,t={})=>{const n=t.locale??j();return n==="en"?GQ(e):n==="nb"?WQ(e):n==="sv"?JQ(e):n==="da"?ZQ(e):n==="fi"?XQ(e):n==="cs"?YQ(e):n==="pl"?QQ(e):eee(e)}),tee=e=>`By continuing, you agree to our <a href="${e?.termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Terms and Conditions</a>.`,nee=e=>`Ved å fortsette godtar du våre <a href="${e?.termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">vilkår</a>.`,ree=e=>`Genom att fortsätta godkänner du våra <a href="${e?.termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Villkor</a>.`,iee=e=>`Ved at fortsætte accepterer du vores <a href="${e?.termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Vilkår og betingelser</a>.`,oee=e=>`Jatkamalla hyväksyt <a href="${e?.termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Käyttöehdot</a>.`,see=e=>`Pokračováním souhlasíte s našimi <a href="${e?.termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Podmínkami a pravidly</a>.`,aee=e=>`Kontynuując, akceptujesz nasze <a href="${e?.termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Zasady i warunki</a>.`,cee=e=>`Continuando, accetti i nostri <a href="${e?.termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Termini e condizioni</a>.`,W8=((e,t={})=>{const n=t.locale??j();return n==="en"?tee(e):n==="nb"?nee(e):n==="sv"?ree(e):n==="da"?iee(e):n==="fi"?oee(e):n==="cs"?see(e):n==="pl"?aee(e):cee(e)}),lee=()=>"Welcome",uee=()=>"Velkommen",dee=()=>"Välkommen",pee=()=>"Velkommen",fee=()=>"Tervetuloa",hee=()=>"Vítejte",_ee=()=>"Witamy",mee=()=>"Benvenuto",J8=((e={},t={})=>{const n=t.locale??j();return n==="en"?lee():n==="nb"?uee():n==="sv"?dee():n==="da"?pee():n==="fi"?fee():n==="cs"?hee():n==="pl"?_ee():mee()}),gee=()=>"Log out",yee=()=>"Logg ut",bee=()=>"Logga ut",vee=()=>"Log ud",wee=()=>"Kirjaudu ulos",kee=()=>"Odhlášení",$ee=()=>"Wylogowanie",See=()=>"Disconnettersi",Z8=((e={},t={})=>{const n=t.locale??j();return n==="en"?gee():n==="nb"?yee():n==="sv"?bee():n==="da"?vee():n==="fi"?wee():n==="cs"?kee():n==="pl"?$ee():See()}),xee=()=>"New email address",zee=()=>"Ny e-postadresse",Aee=()=>"Ny e-postadress",Eee=()=>"Ny emailadresse",Cee=()=>"Uusi sähköpostiosoite",Iee=()=>"Nová e-mailová adresa",jee=()=>"Nowy adres e-mail",Nee=()=>"Nuovo indirizzo email",X8=((e={},t={})=>{const n=t.locale??j();return n==="en"?xee():n==="nb"?zee():n==="sv"?Aee():n==="da"?Eee():n==="fi"?Cee():n==="cs"?Iee():n==="pl"?jee():Nee()}),Tee=()=>"A one-time code will be sent to your new email address, enter the code in the next step.",Pee=()=>"En engangskode vil bli sendt til din nye e-postadresse, skriv inn koden i neste steg.",Oee=()=>"En engångskod skickas till din nya e-postadress, ange koden i nästa steg.",Ree=()=>"En engangskode vil blive sendt til din nye e-mailadresse, indtast koden i næste trin.",Lee=()=>"Yksi kertainen koodi lähetetään uuteen sähköpostiosoitteeseesi, syötä koodi seuraavassa vaiheessa.",Dee=()=>"Na vaši novou e-mailovou adresu bude zaslán jednorázový kód, zadejte kód v dalším kroku.",Uee=()=>"Jednorazowy kod zostanie wysłany na Twój nowy adres e-mail, wprowadź kod w następnym kroku.",Bee=()=>"Un codice monouso verrà inviato al tuo nuovo indirizzo email, inserisci il codice nel passaggio successivo.",Y8=((e={},t={})=>{const n=t.locale??j();return n==="en"?Tee():n==="nb"?Pee():n==="sv"?Oee():n==="da"?Ree():n==="fi"?Lee():n==="cs"?Dee():n==="pl"?Uee():Bee()}),Mee=()=>"Please enter an email address",qee=()=>"Vennligst oppgi en e-postadresse",Fee=()=>"Vänligen ange en e-postadress",Hee=()=>"Indtast venligst en e-mailadresse",Vee=()=>"Sähköpostiosoite vaaditaan",Kee=()=>"Zadejte prosím e-mailovou adresu",Gee=()=>"Wprowadź adres e-mail",Wee=()=>"Inserisci un indirizzo email",Q8=((e={},t={})=>{const n=t.locale??j();return n==="en"?Mee():n==="nb"?qee():n==="sv"?Fee():n==="da"?Hee():n==="fi"?Vee():n==="cs"?Kee():n==="pl"?Gee():Wee()}),Jee=()=>"No email address set",Zee=()=>"Ingen e-postadresse satt",Xee=()=>"Ingen e-postadress angiven",Yee=()=>"Ingen e-mailadresse er angivet",Qee=()=>"Ei sähköpostiosoitetta asetettu",ete=()=>"Žádná e-mailová adresa není nastavena",tte=()=>"Brak ustawionego adresu e-mail",nte=()=>"Nessun indirizzo email impostato",e$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Jee():n==="nb"?Zee():n==="sv"?Xee():n==="da"?Yee():n==="fi"?Qee():n==="cs"?ete():n==="pl"?tte():nte()}),rte=()=>"Email or username is required",ite=()=>"E-post eller brukernavn er påkrevd",ote=()=>"E-post eller användarnamn krävs",ste=()=>"E-mail eller brugernavn er påkrævet",ate=()=>"Sähköposti tai käyttäjänimi vaaditaan",cte=()=>"E-mail nebo uživatelské jméno je povinné",lte=()=>"Adres e-mail lub nazwa użytkownika jest wymagana",ute=()=>"Email o nome utente sono obbligatori",t$=((e={},t={})=>{const n=t.locale??j();return n==="en"?rte():n==="nb"?ite():n==="sv"?ote():n==="da"?ste():n==="fi"?ate():n==="cs"?cte():n==="pl"?lte():ute()}),dte=()=>"Verification code is required",pte=()=>"Bekreftelseskode er påkrevd",fte=()=>"Verifieringskod krävs",hte=()=>"Bekræftelseskode er påkrævet",_te=()=>"Vahvistuskoodi vaaditaan",mte=()=>"Ověřovací kód je povinný",gte=()=>"Kod weryfikacyjny jest wymagany",yte=()=>"Il codice di verifica è obbligatorio",n$=((e={},t={})=>{const n=t.locale??j();return n==="en"?dte():n==="nb"?pte():n==="sv"?fte():n==="da"?hte():n==="fi"?_te():n==="cs"?mte():n==="pl"?gte():yte()}),bte=()=>"Password is required",vte=()=>"Passord er påkrevd",wte=()=>"Lösenord krävs",kte=()=>"Adgangskode er påkrævet",$te=()=>"Salasana vaaditaan",Ste=()=>"Heslo je povinné",xte=()=>"Hasło jest wymagane",zte=()=>"La password è obbligatoria",r$=((e={},t={})=>{const n=t.locale??j();return n==="en"?bte():n==="nb"?vte():n==="sv"?wte():n==="da"?kte():n==="fi"?$te():n==="cs"?Ste():n==="pl"?xte():zte()}),Ate=()=>"Username is required",Ete=()=>"Brukernavn er påkrevd",Cte=()=>"Användarnamn krävs",Ite=()=>"Brugernavn er påkrævet",jte=()=>"Käyttäjänimi vaaditaan",Nte=()=>"Uživatelské jméno je povinné",Tte=()=>"Nazwa użytkownika jest wymagana",Pte=()=>"Il nome utente è obbligatorio",i$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Ate():n==="nb"?Ete():n==="sv"?Cte():n==="da"?Ite():n==="fi"?jte():n==="cs"?Nte():n==="pl"?Tte():Pte()}),Ote=()=>"No, I want to use another account",Rte=()=>"Nei, jeg vil bruke en annen konto",Lte=()=>"Nej, jag vill använda ett annat konto",Dte=()=>"Nej, jeg vil bruge en anden konto",Ute=()=>"Ei, haluan käyttää toista tiliä",Bte=()=>"Ne, chci použít jiný účet",Mte=()=>"Nie, chcę użyć innego konta",qte=()=>"No, voglio usare un altro account",o$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Ote():n==="nb"?Rte():n==="sv"?Lte():n==="da"?Dte():n==="fi"?Ute():n==="cs"?Bte():n==="pl"?Mte():qte()}),Fte=()=>"or",Hte=()=>"eller",Vte=()=>"eller",Kte=()=>"eller",Gte=()=>"tai",Wte=()=>"nebo",Jte=()=>"lub",Zte=()=>"o",s$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Fte():n==="nb"?Hte():n==="sv"?Vte():n==="da"?Kte():n==="fi"?Gte():n==="cs"?Wte():n==="pl"?Jte():Zte()}),Xte=()=>"Password",Yte=()=>"Passord",Qte=()=>"Lösenord",ene=()=>"Adgangskode",tne=()=>"Salasana",nne=()=>"Heslo",rne=()=>"Hasło",ine=()=>"Password",a$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Xte():n==="nb"?Yte():n==="sv"?Qte():n==="da"?ene():n==="fi"?tne():n==="cs"?nne():n==="pl"?rne():ine()}),one=()=>"Password contains a forbidden word",sne=()=>"Passordet inneholder et forbudt ord",ane=()=>"Lösenordet innehåller ett förbjudet ord",cne=()=>"Adgangskoden indeholder et forbudt ord",lne=()=>"Salasana sisältää kielletyn sanan",une=()=>"Heslo obsahuje zakázané slovo",dne=()=>"Hasło zawiera zakazane słowo",pne=()=>"La password contiene una parola vietata",c$=((e={},t={})=>{const n=t.locale??j();return n==="en"?one():n==="nb"?sne():n==="sv"?ane():n==="da"?cne():n==="fi"?lne():n==="cs"?une():n==="pl"?dne():pne()}),fne=()=>"Password cannot contain personal information like your name or email",hne=()=>"Passordet kan ikke inneholde personlig informasjon som navn eller e-post",_ne=()=>"Lösenordet får inte innehålla personlig information som ditt namn eller e-post",mne=()=>"Adgangskoden må ikke indeholde personlige oplysninger som dit navn eller e-mail",gne=()=>"Salasana ei saa sisältää henkilötietoja, kuten nimeäsi tai sähköpostiosoitettasi",yne=()=>"Heslo nesmí obsahovat osobní údaje jako jméno nebo e-mail",bne=()=>"Hasło nie może zawierać danych osobowych, takich jak imię lub adres e-mail",vne=()=>"La password non può contenere informazioni personali come il nome o l'email",l$=((e={},t={})=>{const n=t.locale??j();return n==="en"?fne():n==="nb"?hne():n==="sv"?_ne():n==="da"?mne():n==="fi"?gne():n==="cs"?yne():n==="pl"?bne():vne()}),wne=()=>"The password has been reset",kne=()=>"Passordet har blitt tilbakestilt",$ne=()=>"Lösenordet har återställts",Sne=()=>"Adgangskoden er blevet nulstillet",xne=()=>"Salasana on nollattu",zne=()=>"Heslo bylo resetováno",Ane=()=>"Hasło zostało zresetowane",Ene=()=>"La password è stata reimpostata",u$=((e={},t={})=>{const n=t.locale??j();return n==="en"?wne():n==="nb"?kne():n==="sv"?$ne():n==="da"?Sne():n==="fi"?xne():n==="cs"?zne():n==="pl"?Ane():Ene()}),Cne=()=>"Success",Ine=()=>"Suksess",jne=()=>"Framgång",Nne=()=>"Succes",Tne=()=>"Menestys",Pne=()=>"Úspěch",One=()=>"Sukces",Rne=()=>"Il successo",d$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Cne():n==="nb"?Ine():n==="sv"?jne():n==="da"?Nne():n==="fi"?Tne():n==="cs"?Pne():n==="pl"?One():Rne()}),Lne=()=>"Password login not available for this application",Dne=()=>"Passordinnlogging er ikke tilgjengelig for denne applikasjonen",Une=()=>"Lösenordsinloggning är inte tillgänglig för denna applikation",Bne=()=>"Adgangskode-login er ikke tilgængeligt for denne applikation",Mne=()=>"Salasanakirjautuminen ei ole käytettävissä tälle sovellukselle",qne=()=>"Přihlášení heslem není pro tuto aplikaci k dispozici",Fne=()=>"Logowanie hasłem nie jest dostępne dla tej aplikacji",Hne=()=>"Accesso con password non disponibile per questa applicazione",p$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Lne():n==="nb"?Dne():n==="sv"?Une():n==="da"?Bne():n==="fi"?Mne():n==="cs"?qne():n==="pl"?Fne():Hne()}),Vne=()=>"Password must contain at least one lowercase letter",Kne=()=>"Passordet må inneholde minst én liten bokstav",Gne=()=>"Lösenordet måste innehålla minst en liten bokstav",Wne=()=>"Adgangskoden skal indeholde mindst ét lille bogstav",Jne=()=>"Salasanan on sisällettävä vähintään yksi pieni kirjain",Zne=()=>"Heslo musí obsahovat alespoň jedno malé písmeno",Xne=()=>"Hasło musi zawierać co najmniej jedną małą literę",Yne=()=>"La password deve contenere almeno una lettera minuscola",f$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Vne():n==="nb"?Kne():n==="sv"?Gne():n==="da"?Wne():n==="fi"?Jne():n==="cs"?Zne():n==="pl"?Xne():Yne()}),Qne=()=>"Password must contain at least one number",ere=()=>"Passordet må inneholde minst ett tall",tre=()=>"Lösenordet måste innehålla minst en siffra",nre=()=>"Adgangskoden skal indeholde mindst ét tal",rre=()=>"Salasanan on sisällettävä vähintään yksi numero",ire=()=>"Heslo musí obsahovat alespoň jednu číslici",ore=()=>"Hasło musi zawierać co najmniej jedną cyfrę",sre=()=>"La password deve contenere almeno un numero",h$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Qne():n==="nb"?ere():n==="sv"?tre():n==="da"?nre():n==="fi"?rre():n==="cs"?ire():n==="pl"?ore():sre()}),are=()=>"Password must contain at least one special character",cre=()=>"Passordet må inneholde minst ett spesialtegn",lre=()=>"Lösenordet måste innehålla minst ett specialtecken",ure=()=>"Adgangskoden skal indeholde mindst ét specialtegn",dre=()=>"Salasanan on sisällettävä vähintään yksi erikoismerkki",pre=()=>"Heslo musí obsahovat alespoň jeden speciální znak",fre=()=>"Hasło musi zawierać co najmniej jeden znak specjalny",hre=()=>"La password deve contenere almeno un carattere speciale",_$=((e={},t={})=>{const n=t.locale??j();return n==="en"?are():n==="nb"?cre():n==="sv"?lre():n==="da"?ure():n==="fi"?dre():n==="cs"?pre():n==="pl"?fre():hre()}),_re=()=>"Password must contain at least one uppercase letter",mre=()=>"Passordet må inneholde minst én stor bokstav",gre=()=>"Lösenordet måste innehålla minst en stor bokstav",yre=()=>"Adgangskoden skal indeholde mindst ét stort bogstav",bre=()=>"Salasanan on sisällettävä vähintään yksi iso kirjain",vre=()=>"Heslo musí obsahovat alespoň jedno velké písmeno",wre=()=>"Hasło musi zawierać co najmniej jedną wielką literę",kre=()=>"La password deve contenere almeno una lettera maiuscola",m$=((e={},t={})=>{const n=t.locale??j();return n==="en"?_re():n==="nb"?mre():n==="sv"?gre():n==="da"?yre():n==="fi"?bre():n==="cs"?vre():n==="pl"?wre():kre()}),$re=()=>"Code not found or expired",Sre=()=>"Koden ble ikke funnet eller har utløpt",xre=()=>"Koden hittades inte eller har löpt ut",zre=()=>"Koden blev ikke fundet eller er udløbet",Are=()=>"Koodia ei löytynyt tai se on vanhentunut",Ere=()=>"Kód nebyl nalezen nebo vypršel",Cre=()=>"Kod nie został znaleziony lub wygasł",Ire=()=>"Codice non trovato o scaduto",g$=((e={},t={})=>{const n=t.locale??j();return n==="en"?$re():n==="nb"?Sre():n==="sv"?xre():n==="da"?zre():n==="fi"?Are():n==="cs"?Ere():n==="pl"?Cre():Ire()}),jre=()=>"The password could not be reset",Nre=()=>"Passordet kunne ikke tilbakestilles",Tre=()=>"Lösenordet kunde inte återställas",Pre=()=>"Adgangskoden kunne ikke nulstilles",Ore=()=>"Salasanaa ei voitu nollata",Rre=()=>"Heslo se nepodařilo resetovat",Lre=()=>"Nie udało się zresetować hasła",Dre=()=>"Impossibile reimpostare la password",y$=((e={},t={})=>{const n=t.locale??j();return n==="en"?jre():n==="nb"?Nre():n==="sv"?Tre():n==="da"?Pre():n==="fi"?Ore():n==="cs"?Rre():n==="pl"?Lre():Dre()}),Ure=()=>"Password was used recently and cannot be reused",Bre=()=>"Passordet har blitt brukt nylig og kan ikke gjenbrukes",Mre=()=>"Lösenordet har använts nyligen och kan inte återanvändas",qre=()=>"Adgangskoden er blevet brugt for nylig og kan ikke genbruges",Fre=()=>"Salasanaa on käytetty äskettäin, eikä sitä voi käyttää uudelleen",Hre=()=>"Heslo bylo nedávno použito a nelze jej znovu použít",Vre=()=>"Hasło było niedawno używane i nie może być ponownie użyte",Kre=()=>"La password è stata utilizzata di recente e non può essere riutilizzata",b$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Ure():n==="nb"?Bre():n==="sv"?Mre():n==="da"?qre():n==="fi"?Fre():n==="cs"?Hre():n==="pl"?Vre():Kre()}),Gre=e=>`Password must be at least ${e?.minLength} characters`,Wre=e=>`Passordet må være minst ${e?.minLength} tegn`,Jre=e=>`Lösenordet måste vara minst ${e?.minLength} tecken`,Zre=e=>`Adgangskoden skal være mindst ${e?.minLength} tegn`,Xre=e=>`Salasanan on oltava vähintään ${e?.minLength} merkkiä`,Yre=e=>`Heslo musí mít alespoň ${e?.minLength} znaků`,Qre=e=>`Hasło musi mieć co najmniej ${e?.minLength} znaków`,eie=e=>`La password deve contenere almeno ${e?.minLength} caratteri`,v$=((e,t={})=>{const n=t.locale??j();return n==="en"?Gre(e):n==="nb"?Wre(e):n==="sv"?Jre(e):n==="da"?Zre(e):n==="fi"?Xre(e):n==="cs"?Yre(e):n==="pl"?Qre(e):eie(e)}),tie=e=>`Change password for your ${e?.vendorName} account`,nie=e=>`Endre passord for din ${e?.vendorName} konto`,rie=e=>`Byt lösenord för ditt ${e?.vendorName} konto`,iie=e=>`Skift adgangskode til din ${e?.vendorName} konto`,oie=e=>`Vaihda salasana tilillesi ${e?.vendorName} `,sie=e=>`Změna hesla pro účet ${e?.vendorName}`,aie=e=>`Zmień hasło do konta ${e?.vendorName}`,cie=e=>`Cambia la password per il tuo account ${e?.vendorName}`,w$=((e,t={})=>{const n=t.locale??j();return n==="en"?tie(e):n==="nb"?nie(e):n==="sv"?rie(e):n==="da"?iie(e):n==="fi"?oie(e):n==="cs"?sie(e):n==="pl"?aie(e):cie(e)}),lie=e=>`Change password for your ${e?.vendorName} account`,uie=e=>`Endre passord for ${e?.vendorName} kontoen din`,die=e=>`Byt lösenord för ditt ${e?.vendorName} konto`,pie=e=>`Skift adgangskode til din ${e?.vendorName} -konto`,fie=e=>`Vaihda salasana tilillesi ${e?.vendorName} `,hie=e=>`Změna hesla k účtu ${e?.vendorName} `,_ie=e=>`Zmiana hasła do konta ${e?.vendorName} `,mie=e=>`Modifica della password dell'account ${e?.vendorName} `,k$=((e,t={})=>{const n=t.locale??j();return n==="en"?lie(e):n==="nb"?uie(e):n==="sv"?die(e):n==="da"?pie(e):n==="fi"?fie(e):n==="cs"?hie(e):n==="pl"?_ie(e):mie(e)}),gie=()=>"Phone number",yie=()=>"Telefonnummer",bie=()=>"Telefonnummer",vie=()=>"Telefonnummer",wie=()=>"Puhelinnumero",kie=()=>"Telefonní číslo",$ie=()=>"Numer telefonu",Sie=()=>"Numero di telefono",$$=((e={},t={})=>{const n=t.locale??j();return n==="en"?gie():n==="nb"?yie():n==="sv"?bie():n==="da"?vie():n==="fi"?wie():n==="cs"?kie():n==="pl"?$ie():Sie()}),xie=()=>"Privacy Policy",zie=()=>"Personvernerklæring",Aie=()=>"Integritetspolicy",Eie=()=>"Politik for beskyttelse af personlige oplysninger",Cie=()=>"Tietosuojakäytäntö",Iie=()=>"Zásady ochrany osobních údajů",jie=()=>"Polityka prywatności",Nie=()=>"Informativa sulla privacy",S$=((e={},t={})=>{const n=t.locale??j();return n==="en"?xie():n==="nb"?zie():n==="sv"?Aie():n==="da"?Eie():n==="fi"?Cie():n==="cs"?Iie():n==="pl"?jie():Nie()}),Tie=()=>"Redirecting",Pie=()=>"Omdirigerer",Oie=()=>"Du skickas vidare",Rie=()=>"Omdirigering",Lie=()=>"Uudelleenohjaus",Die=()=>"Přesměrování",Uie=()=>"Przekierowanie",Bie=()=>"Reindirizzamento",x$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Tie():n==="nb"?Pie():n==="sv"?Oie():n==="da"?Rie():n==="fi"?Lie():n==="cs"?Die():n==="pl"?Uie():Bie()}),Mie=()=>"Confirm password",qie=()=>"Bekreft passord",Fie=()=>"Bekräfta lösenord",Hie=()=>"Bekræft adgangskode",Vie=()=>"Vahvista salasana",Kie=()=>"Potvrzení hesla",Gie=()=>"Potwierdź hasło",Wie=()=>"Confermare la password",z$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Mie():n==="nb"?qie():n==="sv"?Fie():n==="da"?Hie():n==="fi"?Vie():n==="cs"?Kie():n==="pl"?Gie():Wie()}),Jie=()=>"Register a new password",Zie=()=>"Registrer et nytt passord",Xie=()=>"Registrera ett nytt lösenord",Yie=()=>"Registrer en ny adgangskode",Qie=()=>"Rekisteröi uusi salasana",eoe=()=>"Registrace nového hesla",toe=()=>"Zarejestruj nowe hasło",noe=()=>"Registrazione di una nuova password",A$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Jie():n==="nb"?Zie():n==="sv"?Xie():n==="da"?Yie():n==="fi"?Qie():n==="cs"?eoe():n==="pl"?toe():noe()}),roe=()=>"Resend code",ioe=()=>"Send kode på nytt",ooe=()=>"Skicka koden igen",soe=()=>"Send koden igen",aoe=()=>"Lähetä koodi uudelleen",coe=()=>"Opětovné odeslání kódu",loe=()=>"Wyślij ponownie kod",uoe=()=>"Reinvio del codice",E$=((e={},t={})=>{const n=t.locale??j();return n==="en"?roe():n==="nb"?ioe():n==="sv"?ooe():n==="da"?soe():n==="fi"?aoe():n==="cs"?coe():n==="pl"?loe():uoe()}),doe=()=>"Change password",poe=()=>"Endre passord",foe=()=>"Ändra lösenord",hoe=()=>"Skift adgangskode",_oe=()=>"Vaihda salasana",moe=()=>"Změna hesla",goe=()=>"Zmiana hasła",yoe=()=>"Modifica della password",C$=((e={},t={})=>{const n=t.locale??j();return n==="en"?doe():n==="nb"?poe():n==="sv"?foe():n==="da"?hoe():n==="fi"?_oe():n==="cs"?moe():n==="pl"?goe():yoe()}),boe=()=>"Enter your new password below for the email account: ",voe=()=>"Skriv inn det nye passordet for e-postkontoen nedenfor: ",woe=()=>"Ange ditt nya lösenord nedan för e-postkontot: ",koe=()=>"Indtast din nye adgangskode til e-mailkontoen nedenfor: ",$oe=()=>"Kirjoita alla oleva uusi salasanasi sähköpostitiliä varten: ",Soe=()=>"Níže zadejte nové heslo k e-mailovému účtu: ",xoe=()=>"Wprowadź poniżej nowe hasło do konta e-mail: ",zoe=()=>"Immettere di seguito la nuova password per l'account e-mail: ",I$=((e={},t={})=>{const n=t.locale??j();return n==="en"?boe():n==="nb"?voe():n==="sv"?woe():n==="da"?koe():n==="fi"?$oe():n==="cs"?Soe():n==="pl"?xoe():zoe()}),Aoe=()=>"Click the button to reset your password",Eoe=()=>"Klikk på knappen for å tilbakestille passordet ditt",Coe=()=>"Klicka på knappen för att återställa ditt lösenord",Ioe=()=>"Klik på knappen for at nulstille din adgangskode",joe=()=>"Napsauta painiketta salasanasi palauttamiseksi",Noe=()=>"Kliknutím na tlačítko obnovíte své heslo",Toe=()=>"Kliknij przycisk, aby zresetować hasło",Poe=()=>"Fare clic sul pulsante per reimpostare la password",j$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Aoe():n==="nb"?Eoe():n==="sv"?Coe():n==="da"?Ioe():n==="fi"?joe():n==="cs"?Noe():n==="pl"?Toe():Poe()}),Ooe=()=>"Click the button to reset your password",Roe=()=>"Klikk på knappen for å tilbakestille passordet ditt",Loe=()=>"Klicka på knappen för att återställa ditt lösenord",Doe=()=>"Klik på knappen for at nulstille din adgangskode",Uoe=()=>"Napsauta painiketta salasanasi palauttamiseksi",Boe=()=>"Kliknutím na tlačítko obnovíte své heslo",Moe=()=>"Kliknij przycisk, aby zresetować hasło",qoe=()=>"Fare clic sul pulsante per reimpostare la password",N$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Ooe():n==="nb"?Roe():n==="sv"?Loe():n==="da"?Doe():n==="fi"?Uoe():n==="cs"?Boe():n==="pl"?Moe():qoe()}),Foe=()=>"Reset your password",Hoe=()=>"Tilbakestill passordet ditt",Voe=()=>"Återställ ditt lösenord",Koe=()=>"Nulstil din adgangskode",Goe=()=>"Nollaa salasanasi",Woe=()=>"Obnovení hesla",Joe=()=>"Zmień hasło",Zoe=()=>"Reimpostare la password",T$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Foe():n==="nb"?Hoe():n==="sv"?Voe():n==="da"?Koe():n==="fi"?Goe():n==="cs"?Woe():n==="pl"?Joe():Zoe()}),Xoe=e=>`Change password for your ${e?.vendorName} account`,Yoe=e=>`Endre passord for ${e?.vendorName} -kontoen din`,Qoe=e=>`Byt lösenord för ditt ${e?.vendorName} konto`,ese=e=>`Skift adgangskode til din ${e?.vendorName} -konto`,tse=e=>`Vaihda salasana tilillesi ${e?.vendorName} `,nse=e=>`Změna hesla k účtu ${e?.vendorName} `,rse=e=>`Zmiana hasła do konta ${e?.vendorName} `,ise=e=>`Modifica della password dell'account ${e?.vendorName} `,P$=((e,t={})=>{const n=t.locale??j();return n==="en"?Xoe(e):n==="nb"?Yoe(e):n==="sv"?Qoe(e):n==="da"?ese(e):n==="fi"?tse(e):n==="cs"?nse(e):n==="pl"?rse(e):ise(e)}),ose=()=>"Reset password",sse=()=>"Tilbakestill passord",ase=()=>"Återställ lösenord",cse=()=>"Nulstil adgangskode",lse=()=>"Nollaa salasana",use=()=>"Obnovení hesla",dse=()=>"Resetowanie hasła",pse=()=>"Reimpostare la password",O$=((e={},t={})=>{const n=t.locale??j();return n==="en"?ose():n==="nb"?sse():n==="sv"?ase():n==="da"?cse():n==="fi"?lse():n==="cs"?use():n==="pl"?dse():pse()}),fse=()=>"Send",hse=()=>"Send",_se=()=>"Skicka",mse=()=>"Send",gse=()=>"Lähetä",yse=()=>"Odeslat",bse=()=>"Wyślij",vse=()=>"Inviare",R$=((e={},t={})=>{const n=t.locale??j();return n==="en"?fse():n==="nb"?hse():n==="sv"?_se():n==="da"?mse():n==="fi"?gse():n==="cs"?yse():n==="pl"?bse():vse()}),wse=()=>"Send me a new magic link",kse=()=>"Send meg en ny magisk lenke",$se=()=>"Skicka en ny inloggninglänk",Sse=()=>"Send mig et nyt magisk link",xse=()=>"Lähetä minulle uusi maaginen linkki",zse=()=>"Pošlete mi nový kouzelný odkaz",Ase=()=>"Wyślij mi nowy magiczny link",Ese=()=>"Inviami un nuovo link magico",L$=((e={},t={})=>{const n=t.locale??j();return n==="en"?wse():n==="nb"?kse():n==="sv"?$se():n==="da"?Sse():n==="fi"?xse():n==="cs"?zse():n==="pl"?Ase():Ese()}),Cse=()=>"Remember to check your spam folder if the email did not arrive.",Ise=()=>"Husk å sjekke søppelpostmappen din hvis e-posten ikke kom.",jse=()=>"Kom ihåg att kontrollera din skräppost om du inte kan hitta mailet vi har skickat.",Nse=()=>"Husk at tjekke din spam-mappe, hvis e-mailen ikke er kommet frem.",Tse=()=>"Muista tarkistaa roskapostikansiosi, jos sähköposti ei ole saapunut.",Pse=()=>"Pokud e-mail nedorazil, nezapomeňte zkontrolovat složku nevyžádané pošty.",Ose=()=>"Pamiętaj, aby sprawdzić folder spamu, jeśli wiadomość e-mail nie dotarła.",Rse=()=>"Ricordate di controllare la cartella spam se l'e-mail non è arrivata.",D$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Cse():n==="nb"?Ise():n==="sv"?jse():n==="da"?Nse():n==="fi"?Tse():n==="cs"?Pse():n==="pl"?Ose():Rse()}),Lse=()=>"Invalid code",Dse=()=>"Ugyldig kode",Use=()=>"Koden är inte giltig",Bse=()=>"Ugyldig kode",Mse=()=>"Virheellinen koodi",qse=()=>"Neplatný kód",Fse=()=>"Nieprawidłowy kod",Hse=()=>"Codice non valido",U$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Lse():n==="nb"?Dse():n==="sv"?Use():n==="da"?Bse():n==="fi"?Mse():n==="cs"?qse():n==="pl"?Fse():Hse()}),Vse=()=>"Session expired. Please try again.",Kse=()=>"Økten har utløpt. Vennligst prøv igjen.",Gse=()=>"Sessionen har upphört. Försök igen.",Wse=()=>"Sessionen er udløbet. Prøv venligst igen.",Jse=()=>"Istunto on vanhentunut. Yritä uudelleen.",Zse=()=>"Relace vypršela. Zkuste to prosím znovu.",Xse=()=>"Sesja wygasła. Proszę spróbować ponownie.",Yse=()=>"Sessione scaduta. Si prega di riprovare.",B$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Vse():n==="nb"?Kse():n==="sv"?Gse():n==="da"?Wse():n==="fi"?Jse():n==="cs"?Zse():n==="pl"?Xse():Yse()}),Qse=()=>"Set password",eae=()=>"Angi passord",tae=()=>"Välj lösenord",nae=()=>"Indstil adgangskode",rae=()=>"Aseta salasana",iae=()=>"Nastavení hesla",oae=()=>"Ustaw hasło",sae=()=>"Impostare la password",M$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Qse():n==="nb"?eae():n==="sv"?tae():n==="da"?nae():n==="fi"?rae():n==="cs"?iae():n==="pl"?oae():sae()}),aae=()=>"Show password",cae=()=>"Vis passord",lae=()=>"Visa lösenord",uae=()=>"Vis adgangskode",dae=()=>"Näytä salasana",pae=()=>"Zobrazit heslo",fae=()=>"Pokaż hasło",hae=()=>"Mostra password",q$=((e={},t={})=>{const n=t.locale??j();return n==="en"?aae():n==="nb"?cae():n==="sv"?lae():n==="da"?uae():n==="fi"?dae():n==="cs"?pae():n==="pl"?fae():hae()}),_ae=()=>"Sign in",mae=()=>"Logg inn",gae=()=>"Logga in",yae=()=>"Log ind",bae=()=>"Kirjaudu sisään",vae=()=>"Přihlásit se",wae=()=>"Zaloguj się",kae=()=>"Accedi",F$=((e={},t={})=>{const n=t.locale??j();return n==="en"?_ae():n==="nb"?mae():n==="sv"?gae():n==="da"?yae():n==="fi"?bae():n==="cs"?vae():n==="pl"?wae():kae()}),$ae=()=>"Signup",Sae=()=>"Påmelding",xae=()=>"Registrera dig",zae=()=>"Tilmelding",Aae=()=>"Rekisteröityminen",Eae=()=>"Registrace",Cae=()=>"Rejestracja",Iae=()=>"Iscriviti",H$=((e={},t={})=>{const n=t.locale??j();return n==="en"?$ae():n==="nb"?Sae():n==="sv"?xae():n==="da"?zae():n==="fi"?Aae():n==="cs"?Eae():n==="pl"?Cae():Iae()}),jae=()=>"Sign up successful",Nae=()=>"Vellykket registrering",Tae=()=>"Registrera dig framgångsrik",Pae=()=>"Tilmeld dig med succes",Oae=()=>"Rekisteröidy onnistuneesti",Rae=()=>"Úspěšná registrace",Lae=()=>"Rejestracja zakończona sukcesem",Dae=()=>"Iscriviti con successo",V$=((e={},t={})=>{const n=t.locale??j();return n==="en"?jae():n==="nb"?Nae():n==="sv"?Tae():n==="da"?Pae():n==="fi"?Oae():n==="cs"?Rae():n==="pl"?Lae():Dae()}),Uae=e=>`${e?.code} is your login code for ${e?.vendorName}`,Bae=e=>`${e?.code} er innloggingskoden din for ${e?.vendorName}`,Mae=e=>`${e?.code} är din inloggningskod för ${e?.vendorName}`,qae=e=>`${e?.code} er din login-kode til ${e?.vendorName}`,Fae=e=>`${e?.code} on kirjautumiskoodisi ${e?.vendorName}`,Hae=e=>`${e?.code} je váš přihlašovací kód pro ${e?.vendorName}`,Vae=e=>`${e?.code} to kod logowania do ${e?.vendorName}`,Kae=e=>`${e?.code} è il codice di accesso per ${e?.vendorName}`,K$=((e,t={})=>{const n=t.locale??j();return n==="en"?Uae(e):n==="nb"?Bae(e):n==="sv"?Mae(e):n==="da"?qae(e):n==="fi"?Fae(e):n==="cs"?Hae(e):n==="pl"?Vae(e):Kae(e)}),Gae=()=>"It appears that your Spotify account is currently linked to another Sesamy account. But fear not, we're here to guide you through the process to get this fixed.",Wae=()=>"Det ser ut til at Spotify-kontoen din for øyeblikket er koblet til en annen Sesamy-konto. Men ikke vær redd, vi er her for å veilede deg gjennom prosessen for å få dette fikset.",Jae=()=>"Det verkar som att ditt Spotify-konto för närvarande är kopplat till ett annat Sesamy-konto. Ingen fara, vi är här för att guida dig genom processen för att lösa detta.",Zae=()=>"Det ser ud til, at din Spotify-konto i øjeblikket er knyttet til en anden Sesamy-konto. Men frygt ikke, vi er her for at guide dig gennem processen med at få det løst.",Xae=()=>"Näyttää siltä, että Spotify-tilisi on tällä hetkellä yhdistetty toiseen Sesamy-tiliin. Mutta älä pelkää, me opastamme sinua prosessin läpi, jotta saat tämän korjattua.",Yae=()=>"Zdá se, že váš účet Spotify je v současné době propojen s jiným účtem Sesamy. Ale nebojte se, jsme tu, abychom vás provedli procesem, jak to napravit.",Qae=()=>"Wygląda na to, że Twoje konto Spotify jest obecnie połączone z innym kontem Sesamy. Ale nie martw się, jesteśmy tutaj, aby poprowadzić Cię przez proces, aby to naprawić.",ece=()=>"Sembra che il vostro account Spotify sia attualmente collegato a un altro account Sesamy. Ma non temete, siamo qui per guidarvi attraverso la procedura per risolvere il problema.",G$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Gae():n==="nb"?Wae():n==="sv"?Jae():n==="da"?Zae():n==="fi"?Xae():n==="cs"?Yae():n==="pl"?Qae():ece()}),tce=()=>"Go to Spotify's Content Access page",nce=()=>"Gå til Spotifys innholdstilgangsside",rce=()=>"Gå till Spotify's Content Access sida",ice=()=>"Gå til Spotifys side for adgang til indhold",oce=()=>"Siirry Spotifyn Content Access -sivulle",sce=()=>"Přejděte na stránku Spotify pro přístup k obsahu",ace=()=>"Przejdź do strony dostępu do treści Spotify",cce=()=>"Vai alla pagina di accesso ai contenuti di Spotify",W$=((e={},t={})=>{const n=t.locale??j();return n==="en"?tce():n==="nb"?nce():n==="sv"?rce():n==="da"?ice():n==="fi"?oce():n==="cs"?sce():n==="pl"?ace():cce()}),lce=()=>`Let's start by unlinking your Spotify account. Click the button below to go to Spotify's Content Access page. After you've logged in to your Spotify account, find Sesamy on the list of connected platforms. Click "Unlink" next to the Sesamy logo.`,uce=()=>'La oss starte med å koble fra Spotify-kontoen din. Klikk på knappen nedenfor for å gå til Spotifys innholdstilgang-side. Etter at du har logget på Spotify-kontoen din, finner du Sesamy på listen over tilkoblede plattformer. Klikk "Fjern kobling" ved siden av Sesamy-logoen.',dce=()=>`Vi börjar med att avlänka ditt Spotify-konto. Klicka på knappen nedan för att komma till Spotify's Content Access sida. När du har loggat in på ditt Spotify-konto, leta upp Sesamy i listan över anslutna plattformar. Klicka på "Unlink" bredvid Sesamys logotyp.`,pce=()=>'Lad os starte med at fjerne forbindelsen til din Spotify-konto. Klik på knappen nedenfor for at gå til Spotifys Content Access-side. Når du har logget ind på din Spotify-konto, skal du finde Sesamy på listen over tilsluttede platforme. Klik på "Unlink" ved siden af Sesamy-logoet.',fce=()=>'Aloitetaan poistamalla Spotify-tilisi linkitys. Klikkaa alla olevaa painiketta siirtyäksesi Spotifyn Content Access -sivulle. Kun olet kirjautunut sisään Spotify-tilillesi, etsi Sesamy yhdistettyjen alustojen luettelosta. Napsauta "Unlink" Sesamyn logon vieressä.',hce=()=>'Začněme odpojením účtu Spotify. Kliknutím na tlačítko níže přejděte na stránku přístupu k obsahu služby Spotify. Po přihlášení k účtu Spotify najděte v seznamu připojených platforem položku Sesamy. Klikněte na tlačítko "Unlink" vedle loga Sesamy.',_ce=()=>'Zacznijmy od odłączenia konta Spotify. Kliknij poniższy przycisk, aby przejść do strony dostępu do treści Spotify. Po zalogowaniu się na swoje konto Spotify, znajdź Sesamy na liście połączonych platform. Kliknij "Odłącz" obok logo Sesamy.',mce=()=>`Cominciamo con lo scollegare il vostro account Spotify. Fare clic sul pulsante sottostante per accedere alla pagina di accesso ai contenuti di Spotify. Dopo aver effettuato l'accesso al vostro account Spotify, trovate Sesamy nell'elenco delle piattaforme collegate. Fate clic su "Unlink" accanto al logo di Sesamy.`,J$=((e={},t={})=>{const n=t.locale??j();return n==="en"?lce():n==="nb"?uce():n==="sv"?dce():n==="da"?pce():n==="fi"?fce():n==="cs"?hce():n==="pl"?_ce():mce()}),gce=()=>"Step 1: Unlink Your Spotify Account",yce=()=>"Trinn 1: Koble fra Spotify-kontoen din",bce=()=>"Steg 1: Avlänka ditt Spotify-konto",vce=()=>"Trin 1: Fjern forbindelsen til din Spotify-konto",wce=()=>"Vaihe 1: Poista Spotify-tilisi linkitys",kce=()=>"Krok 1: Odpojení účtu Spotify",$ce=()=>"Krok 1: Odłącz swoje konto Spotify",Sce=()=>"Passo 1: Disconnettere l'account Spotify",Z$=((e={},t={})=>{const n=t.locale??j();return n==="en"?gce():n==="nb"?yce():n==="sv"?bce():n==="da"?vce():n==="fi"?wce():n==="cs"?kce():n==="pl"?$ce():Sce()}),xce=()=>"Once you've successfully unlinked your Spotify account, you can relink it to Sesamy. Simply repeat the steps you previously took that led you to this page.",zce=()=>"Når du har koblet fra Spotify-kontoen din, kan du koble den til Sesamy på nytt. Bare gjenta trinnene du tidligere tok som førte deg til denne siden.",Ace=()=>"När du har avlänkat ditt Spotify-konto kan du koppla det till Sesamy igen. Upprepa helt enkelt de steg du tog som ledde dig till den här sidan.",Ece=()=>"Når du har afkoblet din Spotify-konto, kan du koble den til Sesamy igen. Du skal blot gentage de trin, du tidligere har taget, og som førte dig til denne side.",Cce=()=>"Kun olet onnistuneesti irrottanut Spotify-tilisi, voit yhdistää sen uudelleen Sesamyn kanssa. Toista vain aiemmin tekemäsi vaiheet, jotka johtivat sinut tälle sivulle.",Ice=()=>"Po úspěšném odpojení účtu Spotify jej můžete znovu propojit se službou Sesamy. Stačí zopakovat předchozí kroky, které vás přivedly na tuto stránku.",jce=()=>"Po pomyślnym odłączeniu konta Spotify możesz ponownie połączyć je z Sesamy. Wystarczy powtórzyć poprzednie kroki, które doprowadziły Cię do tej strony.",Nce=()=>"Dopo aver scollegato con successo il proprio account Spotify, è possibile ricollegarlo a Sesamy. È sufficiente ripetere i passaggi precedenti che vi hanno portato a questa pagina.",X$=((e={},t={})=>{const n=t.locale??j();return n==="en"?xce():n==="nb"?zce():n==="sv"?Ace():n==="da"?Ece():n==="fi"?Cce():n==="cs"?Ice():n==="pl"?jce():Nce()}),Tce=()=>"Step 2: Relink Your Spotify Account to Sesamy",Pce=()=>"Trinn 2: Koble Spotify-kontoen din til Sesamy på nytt",Oce=()=>"Steg 2: Koppla ditt Spotify-konto till Sesamy igen",Rce=()=>"Trin 2: Relink din Spotify-konto til Sesamy",Lce=()=>"Vaihe 2: Yhdistä Spotify-tilisi uudelleen Sesamyn kanssa",Dce=()=>"Krok 2: Propojení účtu Spotify s aplikací Sesamy",Uce=()=>"Krok 2: Połącz ponownie swoje konto Spotify z Sesamy",Bce=()=>"Passo 2: ricollegare l'account Spotify a Sesamy",Y$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Tce():n==="nb"?Pce():n==="sv"?Oce():n==="da"?Rce():n==="fi"?Lce():n==="cs"?Dce():n==="pl"?Uce():Bce()}),Mce=()=>"Oops! Your Spotify Account Is Already Linked",qce=()=>"Oops! Spotify-kontoen din er allerede koblet",Fce=()=>"Oj! Ditt Spotify-konto är redan kopplat",Hce=()=>"Ups! Din Spotify-konto er allerede forbundet",Vce=()=>"Hups! Spotify-tilisi on jo linkitetty",Kce=()=>"Ups! Váš účet Spotify je již propojen",Gce=()=>"Ups! Twoje konto Spotify jest już połączone",Wce=()=>"Ops! Il tuo account Spotify è già collegato",Q$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Mce():n==="nb"?qce():n==="sv"?Fce():n==="da"?Hce():n==="fi"?Vce():n==="cs"?Kce():n==="pl"?Gce():Wce()}),Jce=()=>"Success",Zce=()=>"Ferdig",Xce=()=>"Klart",Yce=()=>"Færdig",Qce=()=>"Valmis",ele=()=>"Hotovo",tle=()=>"Gotowe",nle=()=>"Il successo",e5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Jce():n==="nb"?Zce():n==="sv"?Xce():n==="da"?Yce():n==="fi"?Qce():n==="cs"?ele():n==="pl"?tle():nle()}),rle=()=>"If you have questions or need assistance, you can contact our support team",ile=()=>"Hvis du har spørsmål eller trenger hjelp, kan du kontakte supportteamet vårt",ole=()=>"Om du har frågor eller behöver hjälp kan du kontakta vårt supportteam",sle=()=>"Hvis du har spørgsmål eller brug for hjælp, kan du kontakte vores supportteam",ale=()=>"Jos sinulla on kysyttävää tai tarvitset apua, voit ottaa yhteyttä tukitiimiimme.",cle=()=>"Pokud máte dotazy nebo potřebujete pomoc, můžete se obrátit na náš tým podpory.",lle=()=>"Jeśli masz pytania lub potrzebujesz pomocy, skontaktuj się z nami",ule=()=>"Se avete domande o bisogno di assistenza, potete contattare il nostro team di supporto",t5=((e={},t={})=>{const n=t.locale??j();return n==="en"?rle():n==="nb"?ile():n==="sv"?ole():n==="da"?sle():n==="fi"?ale():n==="cs"?cle():n==="pl"?lle():ule()}),dle=()=>"Terms and Conditions",ple=()=>"Vilkår",fle=()=>"Villkor",hle=()=>"Vilkår og betingelser",_le=()=>"Ehdot ja edellytykset",mle=()=>"Podmínky a pravidla",gle=()=>"Zasady i warunki",yle=()=>"Termini e condizioni",n5=((e={},t={})=>{const n=t.locale??j();return n==="en"?dle():n==="nb"?ple():n==="sv"?fle():n==="da"?hle():n==="fi"?_le():n==="cs"?mle():n==="pl"?gle():yle()}),ble=()=>"Too many failed login attempts. Please try again later.",vle=()=>"For mange mislykkede påloggingsforsøk. Vennligst prøv igjen senere.",wle=()=>"För många misslyckade inloggningsförsök. Försök igen senare.",kle=()=>"For mange mislykkede loginforsøg. Prøv venligst igen senere.",$le=()=>"Liian monta epäonnistunutta kirjautumisyritystä. Yritä myöhemmin uudelleen.",Sle=()=>"Příliš mnoho neúspěšných pokusů o přihlášení. Zkuste to prosím později.",xle=()=>"Zbyt wiele nieudanych prób logowania. Spróbuj ponownie później.",zle=()=>"Troppi tentativi di accesso falliti. Riprova più tardi.",r5=((e={},t={})=>{const n=t.locale??j();return n==="en"?ble():n==="nb"?vle():n==="sv"?wle():n==="da"?kle():n==="fi"?$le():n==="cs"?Sle():n==="pl"?xle():zle()}),Ale=()=>"Something went wrong. Please try again.",Ele=()=>"Noe gikk galt. Vennligst prøv igjen.",Cle=()=>"Något gick fel. Vänligen försök igen.",Ile=()=>"Noget gik galt. Prøv venligst igen.",jle=()=>"Jokin meni pieleen. Yritä uudelleen.",Nle=()=>"Něco se pokazilo. Zkuste to prosím znovu.",Tle=()=>"Coś poszło nie tak. Spróbuj ponownie.",Ple=()=>"Qualcosa è andato storto. Riprovare.",i5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Ale():n==="nb"?Ele():n==="sv"?Cle():n==="da"?Ile():n==="fi"?jle():n==="cs"?Nle():n==="pl"?Tle():Ple()}),Ole=()=>"Unlink",Rle=()=>"Koble fra",Lle=()=>"Koppla bort",Dle=()=>"Frakobl",Ule=()=>"Irrota",Ble=()=>"Odpojit",Mle=()=>"Odłącz",qle=()=>"Scollega",o5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Ole():n==="nb"?Rle():n==="sv"?Lle():n==="da"?Dle():n==="fi"?Ule():n==="cs"?Ble():n==="pl"?Mle():qle()}),Fle=()=>"Your email address needs validating. We have sent a new email to your inbox",Hle=()=>"E-postadressen din må bekreftes. Vi har sendt en ny e-post til innboksen din.",Vle=()=>"Din e-postadress behöver valideras. Vi har skickat ett nytt e-postmeddelande till din inkorg",Kle=()=>"Din e-mailadresse skal valideres. Vi har sendt en ny e-mail til din indbakke",Gle=()=>"Sähköpostiosoitteesi on vahvistettava. Olemme lähettäneet uuden sähköpostiviestin sähköpostiisi.",Wle=()=>"Vaši e-mailovou adresu je třeba ověřit. Do vaší e-mailové schránky jsme odeslali nový e-mail.",Jle=()=>"Twój adres e-mail wymaga weryfikacji. Wysłaliśmy nową wiadomość e-mail na Twoją skrzynkę odbiorczą",Zle=()=>"Il tuo indirizzo e-mail deve essere convalidato. Abbiamo inviato una nuova e-mail alla tua casella di posta.",s5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Fle():n==="nb"?Hle():n==="sv"?Vle():n==="da"?Kle():n==="fi"?Gle():n==="cs"?Wle():n==="pl"?Jle():Zle()}),Xle=()=>"Update email",Yle=()=>"Oppdater e-post",Qle=()=>"Ändra e-post",eue=()=>"Opdatering af e-mail",tue=()=>"Päivitä sähköposti",nue=()=>"Aktualizace e-mailu",rue=()=>"Aktualizacja wiadomości e-mail",iue=()=>"Aggiornamento e-mail",a5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Xle():n==="nb"?Yle():n==="sv"?Qle():n==="da"?eue():n==="fi"?tue():n==="cs"?nue():n==="pl"?rue():iue()}),oue=()=>"User account does not exist",sue=()=>"Brukerkonto eksisterer ikke",aue=()=>"Kontot existerar inte",cue=()=>"Brugerkontoen findes ikke",lue=()=>"Käyttäjätiliä ei ole olemassa",uue=()=>"Uživatelský účet neexistuje",due=()=>"Konto użytkownika nie istnieje",pue=()=>"L'account utente non esiste",c5=((e={},t={})=>{const n=t.locale??j();return n==="en"?oue():n==="nb"?sue():n==="sv"?aue():n==="da"?cue():n==="fi"?lue():n==="cs"?uue():n==="pl"?due():pue()}),fue=()=>"User account does not exist",hue=()=>"Brukerkonto eksisterer ikke",_ue=()=>"Kontot existerar inte",mue=()=>"Brugerkontoen findes ikke",gue=()=>"Käyttäjätiliä ei ole olemassa",yue=()=>"Uživatelský účet neexistuje",bue=()=>"Konto użytkownika nie istnieje",vue=()=>"L'account utente non esiste",l5=((e={},t={})=>{const n=t.locale??j();return n==="en"?fue():n==="nb"?hue():n==="sv"?_ue():n==="da"?mue():n==="fi"?gue():n==="cs"?yue():n==="pl"?bue():vue()}),wue=()=>"We could not find a user with the provided email address. Please, try again.",kue=()=>"Vi kunne ikke finne en bruker med den oppgitte e-postadressen. Vær så snill, prøv på nytt.",$ue=()=>"Vi kan inte hitta en användare med denna eposten. Vänligen försök igen.",Sue=()=>"Vi kunne ikke finde en bruger med den angivne e-mailadresse. Prøv venligst igen.",xue=()=>"Emme löytäneet käyttäjää, jolla on annettu sähköpostiosoite. Yritä uudelleen.",zue=()=>"Nepodařilo se nám najít uživatele se zadanou e-mailovou adresou. Zkuste to prosím znovu.",Aue=()=>"Nie mogliśmy znaleźć użytkownika o podanym adresie e-mail. Spróbuj ponownie.",Eue=()=>"Non è stato possibile trovare un utente con l'indirizzo e-mail fornito. Si prega di riprovare.",u5=((e={},t={})=>{const n=t.locale??j();return n==="en"?wue():n==="nb"?kue():n==="sv"?$ue():n==="da"?Sue():n==="fi"?xue():n==="cs"?zue():n==="pl"?Aue():Eue()}),Cue=()=>"Try again.",Iue=()=>"Prøv igjen.",jue=()=>"Försök igen.",Nue=()=>"Prøv igen.",Tue=()=>"Yritä uudelleen.",Pue=()=>"Zkuste to znovu.",Oue=()=>"Spróbuj ponownie.",Rue=()=>"Riprova.",d5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Cue():n==="nb"?Iue():n==="sv"?jue():n==="da"?Nue():n==="fi"?Tue():n==="cs"?Pue():n==="pl"?Oue():Rue()}),Mr=e=>`Username must be at most ${e?.max} characters`,Lue=Mr,Due=Mr,Uue=Mr,Bue=Mr,Mue=Mr,que=Mr,Fue=Mr,p5=((e,t={})=>{const n=t.locale??j();return n==="en"?Mr(e):n==="nb"?Lue(e):n==="sv"?Due(e):n==="da"?Uue(e):n==="fi"?Bue(e):n==="cs"?Mue(e):n==="pl"?que(e):Fue(e)}),qr=e=>`Username must be at least ${e?.min} characters`,Hue=qr,Vue=qr,Kue=qr,Gue=qr,Wue=qr,Jue=qr,Zue=qr,f5=((e,t={})=>{const n=t.locale??j();return n==="en"?qr(e):n==="nb"?Hue(e):n==="sv"?Vue(e):n==="da"?Kue(e):n==="fi"?Gue(e):n==="cs"?Wue(e):n==="pl"?Jue(e):Zue(e)}),Xue=()=>"Validate code",Yue=()=>"Bekreft koden",Que=()=>"Validera kod",ede=()=>"Valider koden",tde=()=>"Validoi koodi",nde=()=>"Ověření kódu",rde=()=>"Sprawdź poprawność kodu",ide=()=>"Convalida del codice",h5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Xue():n==="nb"?Yue():n==="sv"?Que():n==="da"?ede():n==="fi"?tde():n==="cs"?nde():n==="pl"?rde():ide()}),ode=()=>"Check your inbox for email validation instructions.",sde=()=>"Sjekk innboksen din for instruksjoner om e-postvalidering.",ade=()=>"Kontrollera din inkorg för instruktioner om validering av e-post.",cde=()=>"Tjek din indbakke for instruktioner om validering af e-mail.",lde=()=>"Tarkista sähköpostin vahvistusohjeet postilaatikostasi.",ude=()=>"Pokyny k ověření e-mailu najdete ve své e-mailové schránce.",dde=()=>"Sprawdź swoją skrzynkę odbiorczą, aby uzyskać instrukcje dotyczące weryfikacji wiadomości e-mail.",pde=()=>"Controllate la vostra casella di posta per le istruzioni di convalida dell'e-mail.",_5=((e={},t={})=>{const n=t.locale??j();return n==="en"?ode():n==="nb"?sde():n==="sv"?ade():n==="da"?cde():n==="fi"?lde():n==="cs"?ude():n==="pl"?dde():pde()}),fde=()=>"Signed up",hde=()=>"Registrerte seg",_de=()=>"Registrerad",mde=()=>"Tilmeldte sig",gde=()=>"Rekisteröitynyt",yde=()=>"Zaregistrovali jste se",bde=()=>"Zarejestrowany",vde=()=>"Iscritta",m5=((e={},t={})=>{const n=t.locale??j();return n==="en"?fde():n==="nb"?hde():n==="sv"?_de():n==="da"?mde():n==="fi"?gde():n==="cs"?yde():n==="pl"?bde():vde()}),wde=()=>"Click the button to verify your email address",kde=()=>"Klikk på knappen for å bekrefte e-postadressen din",$de=()=>"Klicka på knappen för att verifiera din e-postadress",Sde=()=>"Klik på knappen for at bekræfte din e-mailadresse",xde=()=>"Vahvista sähköpostiosoitteesi napsauttamalla painiketta",zde=()=>"Klikněte na tlačítko pro ověření e-mailové adresy",Ade=()=>"Kliknij przycisk, aby zweryfikować swój adres e-mail",Ede=()=>"Fare clic sul pulsante per verificare l'indirizzo e-mail",g5=((e={},t={})=>{const n=t.locale??j();return n==="en"?wde():n==="nb"?kde():n==="sv"?$de():n==="da"?Sde():n==="fi"?xde():n==="cs"?zde():n==="pl"?Ade():Ede()}),Cde=()=>"Validate your email address",Ide=()=>"Bekreft e-postadressen din",jde=()=>"Bekräfta din e-postadress",Nde=()=>"Bekræft din e-mailadresse",Tde=()=>"Vahvista sähköpostiosoitteesi",Pde=()=>"Ověřte svou e-mailovou adresu",Ode=()=>"Potwierdź swój adres e-mail",Rde=()=>"Convalidare l'indirizzo e-mail",y5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Cde():n==="nb"?Ide():n==="sv"?jde():n==="da"?Nde():n==="fi"?Tde():n==="cs"?Pde():n==="pl"?Ode():Rde()}),Lde=()=>"Validate your email address",Dde=()=>"Bekreft e-postadressen din",Ude=()=>"Bekräfta din e-postadress",Bde=()=>"Bekræft din e-mailadresse",Mde=()=>"Vahvista sähköpostiosoitteesi",qde=()=>"Ověřte svou e-mailovou adresu",Fde=()=>"Potwierdź swój adres e-mail",Hde=()=>"Convalidare l'indirizzo e-mail",b5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Lde():n==="nb"?Dde():n==="sv"?Ude():n==="da"?Bde():n==="fi"?Mde():n==="cs"?qde():n==="pl"?Fde():Hde()}),Vde=()=>"Verify account",Kde=()=>"Bekreft konto",Gde=()=>"Verifiera konto",Wde=()=>"Bekræft konto",Jde=()=>"Vahvista tili",Zde=()=>"Ověření účtu",Xde=()=>"Zweryfikuj konto",Yde=()=>"Verifica dell'account",v5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Vde():n==="nb"?Kde():n==="sv"?Gde():n==="da"?Wde():n==="fi"?Jde():n==="cs"?Zde():n==="pl"?Xde():Yde()}),Qde=()=>"Verify your email",epe=()=>"Bekreft e-posten din",tpe=()=>"Ange engångskod",npe=()=>"Bekræft din e-mail",rpe=()=>"Vahvista sähköpostiosoitteesi",ipe=()=>"Ověření e-mailu",ope=()=>"Zweryfikuj swój adres e-mail",spe=()=>"Verificare l'e-mail",w5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Qde():n==="nb"?epe():n==="sv"?tpe():n==="da"?npe():n==="fi"?rpe():n==="cs"?ipe():n==="pl"?ope():spe()}),ape=()=>"Welcome",cpe=()=>"Velkommen",lpe=()=>"Välkommen",upe=()=>"Velkommen",dpe=()=>"Tervetuloa",ppe=()=>"Vítejte na",fpe=()=>"Witamy",hpe=()=>"Benvenuti",k5=((e={},t={})=>{const n=t.locale??j();return n==="en"?ape():n==="nb"?cpe():n==="sv"?lpe():n==="da"?upe():n==="fi"?dpe():n==="cs"?ppe():n==="pl"?fpe():hpe()}),_pe=e=>`Welcome to your ${e?.vendorName} account!`,mpe=e=>`Velkommen til din brukerkonto hos ${e?.vendorName}!`,gpe=e=>`Välkommen till ditt ${e?.vendorName}-konto!`,ype=e=>`Velkommen til din ${e?.vendorName} konto!`,bpe=e=>`Tervetuloa tilillesi ${e?.vendorName}!`,vpe=e=>`Vítejte na svém účtu ${e?.vendorName}!`,wpe=e=>`Witamy na koncie ${e?.vendorName}!`,kpe=e=>`Benvenuto nel tuo account ${e?.vendorName}!`,$5=((e,t={})=>{const n=t.locale??j();return n==="en"?_pe(e):n==="nb"?mpe(e):n==="sv"?gpe(e):n==="da"?ype(e):n==="fi"?bpe(e):n==="cs"?vpe(e):n==="pl"?wpe(e):kpe(e)}),$pe=e=>`Please check your email at <0>${e?.email}</0> and enter the six-digit code that we've sent you.`,Spe=e=>`Vennligst sjekk e-posten din på <0>${e?.email}</0> og skriv inn den sekssifrede koden som vi har sendt deg.`,xpe=e=>`Vänligen kontrollera din e-post för <0>${e?.email}</0> och ange den sexsiffriga koden som vi har skickat till dig.`,zpe=e=>`Tjek venligst din e-mail på <0>${e?.email}</0> og indtast den sekscifrede kode, vi har sendt dig.`,Ape=e=>`Tarkista sähköpostisi osoitteesta <0>${e?.email}</0> ja syötä lähettämämme kuusinumeroinen koodi.`,Epe=e=>`Zkontrolujte si prosím svůj e-mail na adrese <0>${e?.email}</0> a zadejte šestimístný kód, který jsme vám zaslali.`,Cpe=e=>`Sprawdź swoją skrzynkę e-mail pod adresem <0>${e?.email}</0> i wprowadź sześciocyfrowy kod, który wysłaliśmy.`,Ipe=e=>`Controllate la vostra e-mail all'indirizzo <0>${e?.email}</0> e inserisca il codice a sei cifre che le abbiamo inviato.`,S5=((e,t={})=>{const n=t.locale??j();return n==="en"?$pe(e):n==="nb"?Spe(e):n==="sv"?xpe(e):n==="da"?zpe(e):n==="fi"?Ape(e):n==="cs"?Epe(e):n==="pl"?Cpe(e):Ipe(e)}),jpe=()=>"Continue with this account",Npe=()=>"Fortsett med denne kontoen",Tpe=()=>"Fortsätt med konto",Ppe=()=>"Fortsæt med denne konto",Ope=()=>"Jatka tällä tilillä",Rpe=()=>"Pokračujte s tímto účtem",Lpe=()=>"Kontynuuj korzystanie z tego konta",Dpe=()=>"Continuare con questo account",x5=((e={},t={})=>{const n=t.locale??j();return n==="en"?jpe():n==="nb"?Npe():n==="sv"?Tpe():n==="da"?Ppe():n==="fi"?Ope():n==="cs"?Rpe():n==="pl"?Lpe():Dpe()}),Upe=e=>`Yes, continue with ${e?.text}`,Bpe=e=>`Ja, fortsett med ${e?.text}`,Mpe=e=>`Ja, fortsätt med ${e?.text}`,qpe=e=>`Ja, fortsæt med ${e?.text}`,Fpe=e=>`Kyllä, jatka ${e?.text}`,Hpe=e=>`Ano, pokračujte ${e?.text}`,Vpe=e=>`Tak, kontynuuj ${e?.text}`,Kpe=e=>`Sì, continuare con ${e?.text}`,z5=((e,t={})=>{const n=t.locale??j();return n==="en"?Upe(e):n==="nb"?Bpe(e):n==="sv"?Mpe(e):n==="da"?qpe(e):n==="fi"?Fpe(e):n==="cs"?Hpe(e):n==="pl"?Vpe(e):Kpe(e)}),Gpe=()=>"Yes, continue with existing account",Wpe=()=>"Ja, fortsett med eksisterende konto",Jpe=()=>"Ja, fortsätt med detta kontot",Zpe=()=>"Ja, fortsæt med eksisterende konto",Xpe=()=>"Kyllä, jatka olemassa olevalla tilillä",Ype=()=>"Ano, pokračujte ve stávajícím účtu",Qpe=()=>"Tak, kontynuuj korzystanie z istniejącego konta",efe=()=>"Sì, continuare con l'account esistente",A5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Gpe():n==="nb"?Wpe():n==="sv"?Jpe():n==="da"?Zpe():n==="fi"?Xpe():n==="cs"?Ype():n==="pl"?Qpe():efe()}),tfe=Object.freeze(Object.defineProperty({__proto__:null,"Server error: Invalid code":U$,account_detected:F4,account_page_description:H4,account_title:V4,account_with_sso_provider:K4,agree_to:G4,already_have_account:W4,and:J4,auth_method_email:Z4,auth_method_email_or_phone:X4,auth_method_email_or_username:Y4,auth_method_phone:Q4,auth_method_username:e6,callback_url_mismatch:t6,callback_url_not_allowed:n6,change_email:r6,check_account_continue_question:i6,check_account_description:o6,check_account_description_fallback:s6,check_account_error:a6,check_account_logged_in_as:c6,check_account_title:l6,check_email_title:u6,click_to_sign_up_description:d6,code_email_enter_code:p6,code_email_subject:f6,code_email_title:h6,code_expired:_6,code_invalid:m6,code_sent_template:g6,code_used:y6,code_valid_30_minutes:b6,configuration_error_message:v6,confirm_password:w6,confirm_unlink:k6,contact_support:$6,contact_us:S6,continue:x6,continue_social_login:z6,continue_with:A6,continue_with_sso_provider_headline:E6,copyright:C6,copyright_sesamy:I6,create_account_description:j6,create_account_email_invalid:N6,create_account_passwords_didnt_match:T6,create_account_title:P6,create_account_weak_password:O6,create_new_account_link:R6,create_password_account_title:L6,current_email:U6,currently_logged_in_as:B6,dont_have_account:D6,edit:M6,email:q6,email_already_taken:F6,email_changed_to_template:H6,email_or_phone_placeholder:V6,email_or_username_placeholder:K6,email_placeholder:G6,email_validated:J6,email_validated_cta:Z6,email_verification_for_signup_sent_description:X6,email_verification_for_signup_sent_title:Y6,embedded_browser_detected:Q6,embedded_browser_warning:e8,enter_a_code_btn:t8,enter_code_description:n8,enter_code_label:r8,enter_code_placeholder:i8,enter_code_title:o8,enter_email_for_verification_description:s8,enter_new_email:a8,enter_new_password_placeholder:c8,enter_password:l8,enter_password_description:u8,enter_password_signing_in_as:d8,enter_your_password_btn:p8,error_page_title:f8,expired_code:h8,fokus_info_message:_8,forgot_password_cta:m8,forgot_password_description:g8,forgot_password_email_sent:y8,forgot_password_link:b8,forgot_password_title:v8,go_back:w8,hide_password:k8,incognito_mode_detected:$8,incognito_mode_warning:S8,invalid_email:x8,invalid_identifier:z8,invalid_password:A8,invalid_session_body:E8,invalid_session_title:C8,link_email_click_to_login:j8,link_email_login:N8,link_email_or_enter_code:T8,link_page_body:P8,link_page_headline:O8,linked_accounts:I8,log_in:R8,logged_in_as:L8,login:D8,login_description:U8,login_description_code:B8,login_description_combined:M8,login_description_link:q8,login_description_phone:F8,login_description_template:H8,login_id_button_text:V8,login_id_description:K8,login_id_federated_connection_button_text:G8,login_id_terms_and_conditions_text:W8,login_id_title:J8,logout:Z8,new_email:X8,new_email_code_info:Y8,no_code:n$,no_email:Q8,no_email_address:e$,no_email_or_username:t$,no_password:r$,no_use_another:o$,no_username:i$,or:s$,password:a$,password_contains_forbidden_word:c$,password_contains_personal_info:l$,password_has_been_reset:u$,password_has_been_reset_title:d$,password_login_not_available:p$,password_missing_lowercase:f$,password_missing_number:h$,password_missing_special:_$,password_missing_uppercase:m$,password_reset_code_expired:g$,password_reset_failed:y$,password_reset_subject:w$,password_reset_title:k$,password_reused:b$,password_too_short:v$,phone_placeholder:$$,privacy_policy:S$,redirecting:x$,reenter_new_password_placeholder:z$,register_password_account:A$,resend_code:E$,reset_password_cta:C$,reset_password_description:I$,reset_password_email_click_to_reset:j$,reset_password_email_cta:N$,reset_password_email_reset:T$,reset_password_subject:P$,reset_password_title:O$,send:R$,send_me_a_new_magic_link:L$,sent_code_spam:D$,session_expired:B$,set_password:M$,show_password:q$,sign_in:F$,signup:H$,signup_success:V$,sms_code_text:K$,spotify_already_linked_body:G$,spotify_already_linked_cta:W$,spotify_already_linked_step1_body:J$,spotify_already_linked_step1_title:Z$,spotify_already_linked_step2_body:X$,spotify_already_linked_step2_title:Y$,spotify_already_linked_title:Q$,success:e5,support_info:t5,terms:n5,too_many_failed_logins:r5,unexpected_error_try_again:i5,unlink:o5,unverified_email:s5,update_email:a5,user_account_does_not_exist:c5,user_not_found:l5,user_not_found_body:u5,user_not_found_cta:d5,username_placeholder:W6,username_too_long:p5,username_too_short:f5,validate_code:h5,validate_email_body:_5,validate_email_title:m5,verify_email_click_to_verify:g5,verify_email_subject:y5,verify_email_title:b5,verify_email_verify:v5,verify_your_email:w5,we_sent_a_code_to:S5,welcome:k5,welcome_to_your_account:$5,yes_continue:x5,yes_continue_with:z5,yes_continue_with_existing_account:A5},Symbol.toStringTag,{value:"Module"})),nfe=Object.freeze(Object.defineProperty({__proto__:null,"Server error: Invalid code":U$,account_detected:F4,account_page_description:H4,account_title:V4,account_with_sso_provider:K4,agree_to:G4,already_have_account:W4,and:J4,auth_method_email:Z4,auth_method_email_or_phone:X4,auth_method_email_or_username:Y4,auth_method_phone:Q4,auth_method_username:e6,callback_url_mismatch:t6,callback_url_not_allowed:n6,change_email:r6,check_account_continue_question:i6,check_account_description:o6,check_account_description_fallback:s6,check_account_error:a6,check_account_logged_in_as:c6,check_account_title:l6,check_email_title:u6,click_to_sign_up_description:d6,code_email_enter_code:p6,code_email_subject:f6,code_email_title:h6,code_expired:_6,code_invalid:m6,code_sent_template:g6,code_used:y6,code_valid_30_minutes:b6,configuration_error_message:v6,confirm_password:w6,confirm_unlink:k6,contact_support:$6,contact_us:S6,continue:x6,continue_social_login:z6,continue_with:A6,continue_with_sso_provider_headline:E6,copyright:C6,copyright_sesamy:I6,create_account_description:j6,create_account_email_invalid:N6,create_account_passwords_didnt_match:T6,create_account_title:P6,create_account_weak_password:O6,create_new_account_link:R6,create_password_account_title:L6,current_email:U6,currently_logged_in_as:B6,dont_have_account:D6,edit:M6,email:q6,email_already_taken:F6,email_changed_to_template:H6,email_or_phone_placeholder:V6,email_or_username_placeholder:K6,email_placeholder:G6,email_validated:J6,email_validated_cta:Z6,email_verification_for_signup_sent_description:X6,email_verification_for_signup_sent_title:Y6,embedded_browser_detected:Q6,embedded_browser_warning:e8,enter_a_code_btn:t8,enter_code_description:n8,enter_code_label:r8,enter_code_placeholder:i8,enter_code_title:o8,enter_email_for_verification_description:s8,enter_new_email:a8,enter_new_password_placeholder:c8,enter_password:l8,enter_password_description:u8,enter_password_signing_in_as:d8,enter_your_password_btn:p8,error_page_title:f8,expired_code:h8,fokus_info_message:_8,forgot_password_cta:m8,forgot_password_description:g8,forgot_password_email_sent:y8,forgot_password_link:b8,forgot_password_title:v8,go_back:w8,hide_password:k8,incognito_mode_detected:$8,incognito_mode_warning:S8,invalid_email:x8,invalid_identifier:z8,invalid_password:A8,invalid_session_body:E8,invalid_session_title:C8,link_email_click_to_login:j8,link_email_login:N8,link_email_or_enter_code:T8,link_page_body:P8,link_page_headline:O8,linked_accounts:I8,log_in:R8,logged_in_as:L8,login:D8,login_description:U8,login_description_code:B8,login_description_combined:M8,login_description_link:q8,login_description_phone:F8,login_description_template:H8,login_id_button_text:V8,login_id_description:K8,login_id_federated_connection_button_text:G8,login_id_terms_and_conditions_text:W8,login_id_title:J8,logout:Z8,m:tfe,new_email:X8,new_email_code_info:Y8,no_code:n$,no_email:Q8,no_email_address:e$,no_email_or_username:t$,no_password:r$,no_use_another:o$,no_username:i$,or:s$,password:a$,password_contains_forbidden_word:c$,password_contains_personal_info:l$,password_has_been_reset:u$,password_has_been_reset_title:d$,password_login_not_available:p$,password_missing_lowercase:f$,password_missing_number:h$,password_missing_special:_$,password_missing_uppercase:m$,password_reset_code_expired:g$,password_reset_failed:y$,password_reset_subject:w$,password_reset_title:k$,password_reused:b$,password_too_short:v$,phone_placeholder:$$,privacy_policy:S$,redirecting:x$,reenter_new_password_placeholder:z$,register_password_account:A$,resend_code:E$,reset_password_cta:C$,reset_password_description:I$,reset_password_email_click_to_reset:j$,reset_password_email_cta:N$,reset_password_email_reset:T$,reset_password_subject:P$,reset_password_title:O$,send:R$,send_me_a_new_magic_link:L$,sent_code_spam:D$,session_expired:B$,set_password:M$,show_password:q$,sign_in:F$,signup:H$,signup_success:V$,sms_code_text:K$,spotify_already_linked_body:G$,spotify_already_linked_cta:W$,spotify_already_linked_step1_body:J$,spotify_already_linked_step1_title:Z$,spotify_already_linked_step2_body:X$,spotify_already_linked_step2_title:Y$,spotify_already_linked_title:Q$,success:e5,support_info:t5,terms:n5,too_many_failed_logins:r5,unexpected_error_try_again:i5,unlink:o5,unverified_email:s5,update_email:a5,user_account_does_not_exist:c5,user_not_found:l5,user_not_found_body:u5,user_not_found_cta:d5,username_placeholder:W6,username_too_long:p5,username_too_short:f5,validate_code:h5,validate_email_body:_5,validate_email_title:m5,verify_email_click_to_verify:g5,verify_email_subject:y5,verify_email_title:b5,verify_email_verify:v5,verify_your_email:w5,we_sent_a_code_to:S5,welcome:k5,welcome_to_your_account:$5,yes_continue:x5,yes_continue_with:z5,yes_continue_with_existing_account:A5},Symbol.toStringTag,{value:"Module"}));function rfe(e,t){if(!t)return e;let n=e;for(const[r,i]of Object.entries(t))if(i!==void 0){const s=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");n=n.replace(new RegExp(`\\$\\{${s}\\}`,"g"),String(i)).replace(new RegExp(`#\\{${s}\\}`,"g"),String(i)).replace(new RegExp(`\\{${s}\\}`,"g"),String(i))}return n}function ife(e){const t=e.split("-")[0]?.toLowerCase()||oh;return tm.includes(t)?t:oh}function ofe(e,t){const n={};if(!e)return n;const r=t?t.replace(/-/g,"_").toLowerCase()+"_":"";for(const[i,s]of Object.entries(e))if(typeof s=="string"){const a=i.replace(/([A-Z])/g,"_$1").replace(/-/g,"_").toLowerCase().replace(/^_/,""),c=r+a;n[c]=s,n[a]=s}return n}function sfe(e,t){fL(()=>e);const n={};for(const[r,i]of Object.entries(nfe))typeof i=="function"?n[r]=s=>{const a=t[r];return a!==void 0?rfe(a,s):i(s)}:n[r]=i;return n}function tt(e,t,n){const r=ife(e),i=ofe(t,n),s=sfe(r,i);return{locale:r,m:s}}async function eo(e){const{branding:t,state:n,errors:r,messages:i,data:s,customText:a,routePrefix:c}=e,l=e.language||"en",{m:u}=tt(l,a),d=s?.email,f=d?d.replace(/(.{2})(.*)(@.*)/,"$1***$3"):"",p=f?u.code_sent_template({username:`<strong>${jn(f)}</strong>`}):u.enter_code_description(),h=[{id:"code",type:"TEXT",category:"FIELD",visible:!0,label:u.enter_code_label(),config:{placeholder:u.enter_code_placeholder(),max_length:6},required:!0,order:0,hint:r?.code},{id:"submit",type:"NEXT_BUTTON",category:"BLOCK",visible:!0,config:{text:u.continue()},order:1},{id:"resend",type:"RESEND_BUTTON",category:"BLOCK",visible:!0,config:{text:u.resend_code()},order:2}];return{screen:{name:"enter-code",action:`${c}/enter-code?state=${encodeURIComponent(n)}`,method:"POST",title:u.enter_code_title(),description:p,components:h,messages:i?.map(g=>({text:g.text,type:g.type})),links:[{id:"back",text:"",linkText:u.go_back(),href:`${c}/login/identifier?state=${encodeURIComponent(n)}`}]},branding:t}}const afe={id:"enter-code",name:"Enter Code",description:"OTP code verification screen",handler:{get:eo,post:async(e,t)=>{const{ctx:n,client:r,state:i}=e,s=t.code?.trim(),a=e.language||"en",{m:c}=tt(a,e.customText);if(!s){const u=c.no_code();return{error:u,screen:await eo({...e,errors:{code:u}})}}const l=await n.env.data.loginSessions.get(r.tenant.id,i);if(!l||!l.authParams?.username){const u=c.session_expired();return{error:u,screen:await eo({...e,errors:{code:u}})}}try{const u=await xd(n,{client_id:r.client_id,authParams:l.authParams,username:l.authParams.username,otp:s});if(u instanceof Response){const f=u.headers.get("location"),p=u.headers.getSetCookie?.()||[];return f?{redirect:f,cookies:p}:{response:u}}const d=c.unexpected_error_try_again();return{error:d,screen:await eo({...e,errors:{code:d}})}}catch(u){let d=!1;try{d=!!await Xn({userAdapter:n.env.data.users,tenant_id:r.tenant.id,username:l.authParams.username,provider:Te})}catch{}const f=u.message||c.unexpected_error_try_again();return{error:f,screen:await eo({...e,errors:{code:f},data:{...e.data,hasPasswordLogin:d}})}}}}};async function Ts(e){const{branding:t,state:n,errors:r,data:i,customText:s,routePrefix:a}=e,c=e.language||"en",{m:l}=tt(c,s),u=i?.email,d=r?.password,f=u?l.enter_password_signing_in_as({email:`<strong>${jn(u)}</strong>`}):void 0,p=[{id:"password",type:"PASSWORD",category:"FIELD",visible:!0,label:l.password(),config:{placeholder:l.enter_password()},required:!0,sensitive:!0,order:0,hint:d},{id:"forgot-password-link",type:"RICH_TEXT",category:"BLOCK",visible:!0,config:{content:`<div class="forgot-password-link"><a href="${a}/forgot-password?state=${encodeURIComponent(n)}">${l.forgot_password_link()}</a></div>`},order:1},{id:"submit",type:"NEXT_BUTTON",category:"BLOCK",visible:!0,config:{text:l.continue()},order:2}];return{screen:{name:"enter-password",action:`${a}/enter-password?state=${encodeURIComponent(n)}`,method:"POST",title:l.enter_password(),description:f,components:p,links:[{id:"back",text:"",linkText:l.go_back(),href:`${a}/login/identifier?state=${encodeURIComponent(n)}`}]},branding:t}}const cfe={id:"enter-password",name:"Enter Password",description:"Password authentication screen",handler:{get:Ts,post:async(e,t)=>{const{ctx:n,client:r,state:i}=e,s=t.password?.trim();if(!s)return{error:"Password is required",screen:await Ts({...e,errors:{password:"Password is required"}})};const a=await n.env.data.loginSessions.get(r.tenant.id,i);if(!a||!a.authParams?.username)return{error:"Session expired",screen:await Ts({...e,errors:{password:"Session expired. Please start over."}})};try{const c=await tc(n,r,{...a.authParams,password:s},a),l=c.headers.get("location"),u=c.headers.getSetCookie?.()||[];return l?{redirect:l,cookies:u}:{response:c}}catch(c){const l=c,u=e.language||"en",{m:d}=tt(u,e.customText);let f=l.message||d.invalid_password();return l.code==="INVALID_PASSWORD"||l.code==="USER_NOT_FOUND"?f=d.invalid_password():l.code==="EMAIL_NOT_VERIFIED"?f=d.unverified_email():l.code==="TOO_MANY_FAILED_LOGINS"&&(f=d.too_many_failed_logins()),{error:f,screen:await Ts({...e,errors:{password:f}})}}}}};function lfe(e,t){const{connections:n}=e,r=n.filter(l=>l.strategy!=="email"&&l.strategy!=="sms"&&l.strategy!=="Username-Password-Authentication");if(r.length===0)return[];const i=r.map(l=>{const u=l.display_name||l.name;return{name:l.name,strategy:l.strategy,display_name:t.login_id_federated_connection_button_text({connectionName:u}),icon_url:M2(l)}}),a={id:"social-buttons",type:"SOCIAL",category:"FIELD",visible:!0,config:{providers:r.map(l=>l.name),provider_details:i},order:0};if(n.some(l=>l.strategy==="email"||l.strategy==="sms"||l.strategy==="Username-Password-Authentication")){const l={id:"divider",type:"DIVIDER",category:"BLOCK",visible:!0,order:1,config:{text:t.or()}};return[a,l]}return[a]}async function pr(e){const{client:t,branding:n,state:r,prefill:i,errors:s,messages:a,customText:c,promptScreen:l,routePrefix:u}=e,d=e.language||"en",{m:f}=tt(d,c,l||"login-id"),p=lfe(e,f),h=p.length,_=e.connections.some(E=>E.strategy==="email"||E.strategy==="sms"||E.strategy==="Username-Password-Authentication"),g=e.connections.find(E=>E.strategy==="Username-Password-Authentication"),y=ji(g),m=y.usernameIdentifierActive,w=y.emailIdentifierActive,k=m&&w?f.email_or_username_placeholder():m?f.username_placeholder():f.email_placeholder(),S=[...p];if(_){const E=s?.username;S.push({id:"username",type:m?"TEXT":"EMAIL",category:"FIELD",visible:!0,label:k,config:{placeholder:k},required:!0,order:h+1,hint:E},{id:"submit",type:"NEXT_BUTTON",category:"BLOCK",visible:!0,config:{text:f.login_id_button_text()},order:h+2})}const b=e.connections.some(E=>E.strategy==="Username-Password-Authentication"),x=t.client_metadata?.disable_sign_ups==="true";if(b&&!x){const E=`${u}/signup?state=${encodeURIComponent(r)}`;S.push({id:"signup-link",type:"RICH_TEXT",category:"BLOCK",visible:!0,config:{content:`<div class="signup-link">${f.dont_have_account()} <a href="${E}">${f.create_new_account_link()}</a></div>`},order:S.length+1})}const A={name:"identifier",action:`${u}/login/identifier?state=${encodeURIComponent(r)}`,method:"POST",title:f.login_id_title(),description:f.login_id_description({companyName:t.tenant.friendly_name||t.tenant.id||"AuthHero",clientName:t.name||"the application"}),components:S,messages:a};if(i?.username){const E=A.components.find(P=>P.id==="username");E&&"config"in E&&(E.config.value=i.username)}return{screen:A,branding:n}}const ufe={id:"identifier",name:"Identifier",description:"First screen of the login flow - collects email/username",handler:{get:pr,post:async(e,t)=>{const{ctx:n,client:r,state:i}=e,s=t.username?.toLowerCase()?.trim(),a=r.connections.find(x=>x.strategy==="Username-Password-Authentication"),c=ji(a),l=c.usernameIdentifierActive;if(!s){const x=e.language||"en",{m:A}=tt(x,e.customText),E=l?A.no_email_or_username():A.no_email();return{error:E,screen:await pr({...e,errors:{username:E}})}}const u=n.get("countryCode"),{normalized:d,connectionType:f,provider:p}=os(s,u);if(!d){const x=e.language||"en",{m:A}=tt(x,e.customText),E=A.invalid_identifier();return{error:E,screen:await pr({...e,prefill:{username:s},errors:{username:E}})}}if(f==="username"&&l){const x=c.usernameMinLength,A=c.usernameMaxLength;if(d.length<x){const E=e.language||"en",{m:P}=tt(E,e.customText),R=P.username_too_short({min:String(x)});return{error:R,screen:await pr({...e,prefill:{username:s},errors:{username:R}})}}if(d.length>A){const E=e.language||"en",{m:P}=tt(E,e.customText),R=P.username_too_long({max:String(A)});return{error:R,screen:await pr({...e,prefill:{username:s},errors:{username:R}})}}}const h=f==="email"?await qo({userAdapter:n.env.data.users,tenant_id:r.tenant.id,email:d}):await Xn({userAdapter:n.env.data.users,tenant_id:r.tenant.id,username:d,provider:p});if(!(r.connections.find(x=>x.strategy===f)||f==="username"&&l||h)){const x=e.language||"en",{m:A}=tt(x,e.customText),E=A.invalid_identifier();return{error:E,screen:await pr({...e,prefill:{username:s},errors:{username:E}})}}if(!h){const x=await Au(n,r,n.env.data,d,f);if(!x.allowed){const A=e.language||"en",{m:E}=tt(A,e.customText);return{error:x.reason||E.user_account_does_not_exist(),screen:await pr({...e,prefill:{username:s},errors:{username:E.user_account_does_not_exist()}})}}}const g=await n.env.data.loginSessions.get(r.tenant.id,i);if(!g){const x=e.language||"en",{m:A}=tt(x,e.customText),E=A.session_expired();return{error:E,screen:await pr({...e,prefill:{username:s},errors:{username:E}})}}g.authParams.username=d,await n.env.data.loginSessions.update(r.tenant.id,g.id,g);const y=await a4(n,r,s,f,t.login_selection),m={...e,data:{email:d},errors:void 0};if(y==="password")return{screen:await Ts(m)};let w=In(),k=await n.env.data.codes.get(r.tenant.id,w,"otp");for(;k;)w=In(),k=await n.env.data.codes.get(r.tenant.id,w,"otp");await n.env.data.codes.create(r.tenant.id,{code_id:w,code_type:"otp",login_id:g.id,expires_at:new Date(Date.now()+Bs).toISOString(),redirect_uri:g.authParams.redirect_uri});const S=r.connections.find(x=>x.strategy===f),b=g.authParams?.ui_locales?.split(" ")?.map(x=>x.split("-")[0])[0];return f==="email"&&S?.options?.authentication_method==="magic_link"?await Ad(n,{to:d,code:w,authParams:g.authParams,language:b}):await zd(n,{to:d,code:w,language:b}),{screen:await eo(m)}}}};function dfe(e,t){const{connections:n}=e,r=n.filter(l=>l.strategy!=="email"&&l.strategy!=="sms"&&l.strategy!=="Username-Password-Authentication");if(r.length===0)return[];const i=r.map(l=>{const u=l.display_name||l.name;return{name:l.name,strategy:l.strategy,display_name:t.login_id_federated_connection_button_text({connectionName:u}),icon_url:M2(l)}}),a={id:"social-buttons",type:"SOCIAL",category:"FIELD",visible:!0,config:{providers:r.map(l=>l.name),provider_details:i},order:0};if(n.some(l=>l.strategy==="email"||l.strategy==="sms"||l.strategy==="Username-Password-Authentication")){const l={id:"divider",type:"DIVIDER",category:"BLOCK",visible:!0,order:1,config:{text:t.or()}};return[a,l]}return[a]}async function rn(e){const{client:t,branding:n,state:r,prefill:i,errors:s,messages:a,customText:c,promptScreen:l,routePrefix:u}=e,d=e.language||"en",{m:f}=tt(d,c,l||"login"),p=dfe(e,f),h=p.length,_=e.connections.find(A=>A.strategy==="Username-Password-Authentication"),g=!!_,y=ji(_),m=y.usernameIdentifierActive,w=y.emailIdentifierActive,k=m&&w?f.email_or_username_placeholder():m?f.username_placeholder():f.email_placeholder(),S=[...p];if(g){const A=s?.username,E=s?.password;S.push({id:"username",type:m?"TEXT":"EMAIL",category:"FIELD",visible:!0,label:k,config:{placeholder:k},required:!0,order:h+1,hint:A},{id:"password",type:"PASSWORD",category:"FIELD",visible:!0,label:f.password(),config:{placeholder:f.enter_password()},required:!0,sensitive:!0,order:h+2,hint:E});const P=`${u}/forgot-password?state=${encodeURIComponent(r)}`;S.push({id:"forgot-password-link",type:"RICH_TEXT",category:"BLOCK",visible:!0,config:{content:`<div class="forgot-password-link"><a href="${P}">${f.forgot_password_link()}</a></div>`},order:h+3}),S.push({id:"submit",type:"NEXT_BUTTON",category:"BLOCK",visible:!0,config:{text:f.continue()},order:h+4})}const b=t.client_metadata?.disable_sign_ups==="true";if(g&&!b){const A=`${u}/signup?state=${encodeURIComponent(r)}`;S.push({id:"signup-link",type:"RICH_TEXT",category:"BLOCK",visible:!0,config:{content:`<div class="signup-link">${f.dont_have_account()} <a href="${A}">${f.create_new_account_link()}</a></div>`},order:S.length+1})}const x={name:"login",action:`${u}/login?state=${encodeURIComponent(r)}`,method:"POST",title:f.login_id_title(),description:f.login_id_description({companyName:t.tenant.friendly_name||t.tenant.id||"AuthHero",clientName:t.name||"the application"}),components:S,messages:a};if(i?.username){const A=x.components.find(E=>E.id==="username");A&&"config"in A&&(A.config.value=i.username)}return{screen:x,branding:n}}const pfe={id:"login",name:"Login",description:"Combined login screen with email, password, and social login",handler:{get:rn,post:async(e,t)=>{const{ctx:n,client:r,state:i}=e,s=t.username?.toLowerCase()?.trim(),a=t.password?.trim(),c=e.language||"en",{m:l}=tt(c,e.customText,"login"),u=r.connections.find(w=>w.strategy==="Username-Password-Authentication"),d=ji(u),f=d.usernameIdentifierActive;if(!s){const w=f?l.no_email_or_username():l.no_email();return{error:w,screen:await rn({...e,errors:{username:w}})}}if(!a){const w=l.no_password();return{error:w,screen:await rn({...e,prefill:{username:s},errors:{password:w}})}}const p=n.get("countryCode"),{normalized:h,connectionType:_,provider:g}=os(s,p);if(!h){const w=l.invalid_identifier();return{error:w,screen:await rn({...e,prefill:{username:s},errors:{username:w}})}}if(_==="username"&&f){const w=d.usernameMinLength,k=d.usernameMaxLength;if(h.length<w){const S=l.username_too_short({min:String(w)});return{error:S,screen:await rn({...e,prefill:{username:s},errors:{username:S}})}}if(h.length>k){const S=l.username_too_long({max:String(k)});return{error:S,screen:await rn({...e,prefill:{username:s},errors:{username:S}})}}}if(_==="username"&&!f){const w=l.invalid_email();return{error:w,screen:await rn({...e,prefill:{username:s},errors:{username:w}})}}const y=_==="email"?await qo({userAdapter:n.env.data.users,tenant_id:r.tenant.id,email:h}):await Xn({userAdapter:n.env.data.users,tenant_id:r.tenant.id,username:h,provider:g});if(!u){const w=l.password_login_not_available();return{error:w,screen:await rn({...e,prefill:{username:s},errors:{username:w}})}}if(!y&&!(await Au(n,r,n.env.data,h,_)).allowed){const k=l.user_account_does_not_exist();return{error:k,screen:await rn({...e,prefill:{username:s},errors:{username:k}})}}const m=await n.env.data.loginSessions.get(r.tenant.id,i);if(!m){const w=l.session_expired();return{error:w,screen:await rn({...e,prefill:{username:s},errors:{username:w}})}}m.authParams.username=h,await n.env.data.loginSessions.update(r.tenant.id,m.id,m);try{const w=await tc(n,r,{...m.authParams,password:a},m),k=w.headers.get("location"),S=w.headers.getSetCookie?.()||[];return k?{redirect:k,cookies:S}:{response:w}}catch(w){const k=w;let S=k.message||l.invalid_password();return k.code==="INVALID_PASSWORD"||k.code==="USER_NOT_FOUND"?S=l.invalid_password():k.code==="EMAIL_NOT_VERIFIED"?S=l.unverified_email():k.code==="TOO_MANY_FAILED_LOGINS"&&(S=l.too_many_failed_logins()),{error:S,screen:await rn({...e,prefill:{username:s},errors:{password:S}})}}}}};async function $n(e){const{branding:t,state:n,prefill:r,errors:i,customText:s,routePrefix:a}=e,c=e.language||"en",{m:l}=tt(c,s),u=e.connections.some(p=>p.strategy==="Username-Password-Authentication"),d=[];if(u){let p=1;d.push({id:"email",type:"EMAIL",category:"FIELD",visible:!0,label:l.email_placeholder(),config:{placeholder:l.email_placeholder()},required:!0,order:p++,hint:i?.email},{id:"password",type:"PASSWORD",category:"FIELD",visible:!0,label:l.password(),config:{placeholder:l.password(),show_toggle:!0},required:!0,sensitive:!0,order:p++,hint:i?.password},{id:"re_password",type:"PASSWORD",category:"FIELD",visible:!0,label:l.confirm_password(),config:{placeholder:l.confirm_password(),show_toggle:!0},required:!0,sensitive:!0,order:p++,hint:i?.re_password},{id:"submit",type:"NEXT_BUTTON",category:"BLOCK",visible:!0,config:{text:l.signup()},order:p++})}if(r?.email){const p=d.find(h=>h.id==="email");p&&"config"in p&&(p.config.value=r.email)}return{screen:{name:"signup",action:`${a}/signup?state=${encodeURIComponent(n)}`,method:"POST",title:l.create_account_title(),description:l.create_account_description(),components:d,links:[{id:"login",text:l.already_have_account(),linkText:l.log_in(),href:`${a}/login/identifier?state=${encodeURIComponent(n)}`}]},branding:t}}const ffe={id:"signup",name:"Sign Up",description:"New user registration screen",handler:{get:$n,post:async(e,t)=>{const{ctx:n,client:r,state:i}=e,s=t.email?.toLowerCase()?.trim(),a=t.password?.trim(),c=t.re_password?.trim(),l=e.language||"en",{m:u}=tt(l,e.customText);if(!s)return{error:"Email is required",screen:await $n({...e,errors:{email:u.invalid_email()}})};if(!a)return{error:"Password is required",screen:await $n({...e,prefill:{email:s},errors:{password:u.invalid_password()}})};if(!c)return{error:"Please confirm your password",screen:await $n({...e,prefill:{email:s},errors:{re_password:u.confirm_password()}})};if(a!==c)return{error:"Passwords don't match",screen:await $n({...e,prefill:{email:s},errors:{re_password:u.create_account_passwords_didnt_match()}})};const f=r.connections.find(S=>S.strategy==="Username-Password-Authentication")?.name||"Username-Password-Authentication",p=await Ta(n.env.data,r.tenant.id,f);try{await Na(p,{tenantId:r.tenant.id,userId:"",newPassword:a,data:n.env.data})}catch(S){const b=S instanceof Error?S.message:u.create_account_weak_password();return{error:b,screen:await $n({...e,prefill:{email:s},errors:{password:b}})}}if(await Or({userAdapter:n.env.data.users,tenant_id:r.tenant.id,username:s,provider:Te}))return{error:"User already exists",screen:await $n({...e,prefill:{email:s},errors:{email:u.email_already_taken()}})};const _=await n.env.data.loginSessions.get(r.tenant.id,i);if(!_)return{error:"Session expired",screen:await $n({...e,prefill:{email:s},errors:{email:u.session_expired()}})};_.authParams.username=s,await n.env.data.loginSessions.update(r.tenant.id,_.id,_);const g=`${Te}|${Ni()}`,{hash:y,algorithm:m}=await oa(a);let w;try{w=await n.env.data.users.create(r.tenant.id,{user_id:g,email:s,email_verified:!1,provider:Te,connection:f,is_social:!1,password:{hash:y,algorithm:m}})}catch(S){return console.log("Err: "+S.message),{error:"Failed to create user",screen:await $n({...e,prefill:{email:s},errors:{email:"Failed to create user"}})}}const k=_.authParams?.ui_locales?.split(" ")?.map(S=>S.split("-")[0])[0];try{await Ed(n,w,k)}catch(S){console.error("Failed to send verification email:",S)}try{const S=await tc(n,r,{..._.authParams,password:a},_),b=S.headers.get("location"),x=S.headers.getSetCookie?.()||[];return b?{redirect:b,cookies:x}:{response:S}}catch{return{screen:await $n({...e,messages:[{text:u.validate_email_body(),type:"success"}]})}}}}};async function hfe(e){const{branding:t,state:n,prefill:r,errors:i,messages:s,routePrefix:a="/u2"}=e,c=[{id:"info",type:"RICH_TEXT",category:"BLOCK",visible:!0,config:{content:"Enter your email address and we'll send you a link to reset your password."},order:0},{id:"email",type:"EMAIL",category:"FIELD",visible:!0,label:"Email address",config:{placeholder:"name@example.com"},required:!0,order:1,hint:i?.email},{id:"submit",type:"NEXT_BUTTON",category:"BLOCK",visible:!0,config:{text:"Send reset link"},order:2}];if(r?.email){const u=c.find(d=>d.id==="email");u&&"config"in u&&(u.config.value=r.email)}return{screen:{name:"forgot-password",action:`${a}/forgot-password?state=${encodeURIComponent(n)}`,method:"POST",title:"Reset your password",components:c,messages:s?.map(u=>({text:u.text,type:u.type})),links:[{id:"back",text:"Remember your password?",linkText:"Log in",href:`${a}/login/identifier?state=${encodeURIComponent(n)}`}]},branding:t}}const _fe={id:"forgot-password",name:"Forgot Password",description:"Password reset request screen",handler:{get:hfe}};async function Mn(e){const{branding:t,state:n,errors:r,messages:i,routePrefix:s}=e,a=[{id:"password",type:"PASSWORD",category:"FIELD",visible:!0,label:"New password",config:{placeholder:"Enter new password",show_toggle:!0},required:!0,sensitive:!0,order:0,hint:r?.password},{id:"confirm_password",type:"PASSWORD",category:"FIELD",visible:!0,label:"Confirm new password",config:{placeholder:"Confirm new password"},required:!0,sensitive:!0,order:1,hint:r?.confirm_password},{id:"submit",type:"NEXT_BUTTON",category:"BLOCK",visible:!0,config:{text:"Reset password"},order:2}];return{screen:{name:"reset-password",action:`${s}/reset-password?state=${encodeURIComponent(n)}`,method:"POST",title:"Set your new password",description:"Choose a strong password for your account",components:a,messages:i?.map(l=>({text:l.text,type:l.type}))},branding:t}}const mfe={id:"reset-password",name:"Reset Password",description:"Set new password screen",handler:{get:Mn,post:async(e,t)=>{const{ctx:n,client:r,state:i}=e,{env:s}=n,a=t.password?.trim(),c=t.confirm_password?.trim(),l=e.language||"en",{m:u}=tt(l,e.customText);if(!a)return{error:"Password is required",screen:await Mn({...e,errors:{password:"Password is required"}})};if(a!==c){const m=u.create_account_passwords_didnt_match();return{error:m,screen:await Mn({...e,errors:{confirm_password:m}})}}const d=await s.data.loginSessions.get(r.tenant.id,i);if(!d||!d.authParams?.username)return{error:"Session expired",screen:await Mn({...e,errors:{password:"Session expired. Please start over."}})};const f=await Or({userAdapter:s.data.users,tenant_id:r.tenant.id,username:d.authParams.username,provider:Te});if(!f)return{error:"User not found",screen:await Mn({...e,errors:{password:"User not found"}})};const h=r.connections.find(m=>m.strategy==="Username-Password-Authentication")?.name||f.connection,_=await Ta(s.data,r.tenant.id,h);try{await Na(_,{tenantId:r.tenant.id,userId:f.user_id,newPassword:a,userData:f,data:s.data})}catch(m){const w=m instanceof Error?m.message:u.create_account_weak_password();return{error:w,screen:await Mn({...e,errors:{password:w}})}}const g=e.data?.code;if(!g)return{error:"Reset code not found",screen:await Mn({...e,errors:{password:"Reset code not found"}})};const y=await s.data.codes.get(r.tenant.id,g,"password_reset");if(!y){const m=u.code_expired();return{error:m,screen:await Mn({...e,errors:{password:m}})}}try{const m=await s.data.passwords.get(r.tenant.id,f.user_id);return m&&await s.data.passwords.update(r.tenant.id,{id:m.id,user_id:f.user_id,password:m.password,algorithm:m.algorithm,is_current:!1}),await s.data.passwords.create(r.tenant.id,{user_id:f.user_id,password:await Fo.hash(a,10),algorithm:"bcrypt",is_current:!0}),f.email_verified||await s.data.users.update(r.tenant.id,f.user_id,{email_verified:!0}),await fe(n,r.tenant.id,{type:pe.SUCCESS_CHANGE_PASSWORD,description:`Password changed for ${f.email}`,userId:f.user_id}),await s.data.codes.remove(r.tenant.id,y.code_id),{redirect:`/u2/identifier?state=${encodeURIComponent(i)}&message=password_reset_success`}}catch(m){const w=m instanceof Error?m.message:JSON.stringify(m);await fe(n,r.tenant.id,{type:pe.FAILED_CHANGE_PASSWORD,description:`Password reset failed for ${f.email}: ${w}`,userId:f.user_id});const k=m instanceof Error?m.message:u.password_reset_failed();return{error:k,screen:await Mn({...e,errors:{password:k}})}}}}};async function E5(e){const{ctx:t,tenant:n,client:r,branding:i,state:s,errors:a,routePrefix:c="/u2"}=e,l=await t.env.data.loginSessions.get(n.id,s);if(!l)throw new I(400,{message:"Login session not found"});if(!l.session_id)throw new I(400,{message:"No session linked to login session"});const u=await t.env.data.sessions.get(n.id,l.session_id);if(!u)throw new I(400,{message:"Session not found"});const d=await t.env.data.users.get(n.id,u.user_id);if(!d)throw new I(400,{message:"User not found"});if(!(await t.env.data.userPermissions.list(n.id,d.user_id)).some(g=>g.permission_name==="users:impersonate"))return{screen:{name:"impersonate",action:`${c}/impersonate?state=${encodeURIComponent(s)}`,method:"POST",title:"Access Denied",description:"You do not have permission to impersonate other users.",components:[],messages:[{id:1,text:"You do not have permission to impersonate other users.",type:"error"}]},branding:i};const h=[{id:"info",type:"RICH_TEXT",category:"BLOCK",visible:!0,config:{content:"<p>You have permission to impersonate other users.</p><p>Leave the field empty and click Continue to proceed as yourself, or enter a user ID to impersonate.</p>"},order:0},{id:"current-user",type:"RICH_TEXT",category:"BLOCK",visible:!0,config:{content:`<div class="current-user-info"><strong>Current user:</strong> ${jn(d.email||d.user_id)}</div>`},order:1},{id:"divider",type:"DIVIDER",category:"BLOCK",visible:!0,order:2},{id:"user_id",type:"TEXT",category:"FIELD",visible:!0,label:"User ID to impersonate (optional)",config:{placeholder:"Enter user ID or leave empty to continue as yourself"},required:!1,order:3,hint:a?.user_id},{id:"submit",type:"NEXT_BUTTON",category:"BLOCK",visible:!0,config:{text:"Continue"},order:4}];return{screen:{name:"impersonate",action:`${c}/impersonate?state=${encodeURIComponent(s)}`,method:"POST",title:"Impersonation",description:r.name?`Impersonation for ${jn(r.name)}`:"User impersonation",components:h},branding:i}}async function gfe(e,t){const{ctx:n,tenant:r,client:i,state:s}=e,a=await n.env.data.loginSessions.get(r.id,s);if(!a)throw new I(400,{message:"Login session not found"});if(!a.session_id)throw new I(400,{message:"No session linked to login session"});const c=await n.env.data.sessions.get(r.id,a.session_id);if(!c)throw new I(400,{message:"Current session not found"});const l=await n.env.data.users.get(r.id,c.user_id);if(!l)throw new I(400,{message:"Current user not found"});if(!(await n.env.data.userPermissions.list(r.id,l.user_id)).some(y=>y.permission_name==="users:impersonate"))throw new I(403,{message:"Access denied: insufficient permissions"});const f=t.user_id?.trim();if(!f){const y=await gt(n,{client:i,authParams:a.authParams,loginSession:a,user:l,existingSessionIdToLink:c.id,skipHooks:!0}),m=y.headers.get("Location"),w=y.headers.getSetCookie?.()||[];if(m)return{redirect:m,cookies:w};throw new I(500,{message:"Failed to generate redirect"})}const p=await n.env.data.users.get(r.id,f);if(!p)return fe(n,r.id,{type:pe.FAILED_IMPERSONATION,description:`User ${l.email} failed to impersonate non-existent user: ${f}`,userId:l.user_id}),{error:"User not found",screen:await E5({...e,errors:{user_id:"User not found"}})};const h=await gt(n,{client:i,authParams:a.authParams,loginSession:a,user:p,existingSessionIdToLink:c.id,impersonatingUser:l,skipHooks:!0}),_=h.headers.get("Location"),g=h.headers.getSetCookie?.()||[];if(!_)throw new I(500,{message:"Failed to generate redirect"});return fe(n,r.id,{type:pe.SUCCESS_IMPERSONATION,description:`User ${l.email} impersonating ${p.email||p.user_id}`,userId:p.user_id}),{redirect:_,cookies:g}}const yfe={id:"impersonate",name:"Impersonate",description:"Allows users with permission to impersonate other users",handler:{get:E5,post:gfe}};async function C5(e){const{ctx:t,tenant:n,client:r,branding:i,state:s,routePrefix:a="/u2",customText:c}=e,l=e.language||"en",{m:u}=tt(l,c,"check-account");if(!await t.env.data.loginSessions.get(n.id,s))throw new I(400,{message:"Login session not found"});const f=pi(n.id,t.req.header("cookie")),p=f?await t.env.data.sessions.get(n.id,f):null;if(!p||p.revoked_at)throw new qt(`${a}/login/identifier?state=${encodeURIComponent(s)}`);const h=await t.env.data.users.get(n.id,p.user_id);if(!h)throw new qt(`${a}/login/identifier?state=${encodeURIComponent(s)}`);const _=[{id:"info",type:"RICH_TEXT",category:"BLOCK",visible:!0,config:{content:`<p>${u.check_account_logged_in_as({email:jn(h.email||h.user_id)})}</p><p>${u.check_account_continue_question()}</p>`},order:0},{id:"submit",type:"NEXT_BUTTON",category:"BLOCK",visible:!0,config:{text:u.yes_continue_with_existing_account()},order:1}];return{screen:{name:"check-account",action:`${a}/check-account?state=${encodeURIComponent(s)}`,method:"POST",title:u.check_account_title(),description:r.name?u.check_account_description({clientName:jn(r.name)}):u.check_account_description_fallback(),components:_,links:[{id:"use-another-account",text:u.no_use_another(),href:`${a}/login/identifier?state=${encodeURIComponent(s)}`}]},branding:i}}async function bfe(e,t){const{ctx:n,tenant:r,client:i,state:s}=e,a=await n.env.data.loginSessions.get(r.id,s);if(!a)throw new I(400,{message:"Login session not found"});const c=pi(r.id,n.req.header("cookie")),l=c?await n.env.data.sessions.get(r.id,c):null,u=e.routePrefix||"/u2";if(!l||l.revoked_at)return{redirect:`${u}/login/identifier?state=${encodeURIComponent(s)}`};const d=await n.env.data.users.get(r.id,l.user_id);if(!d)return{redirect:`${u}/login/identifier?state=${encodeURIComponent(s)}`};try{const f=await gt(n,{client:i,authParams:a.authParams,loginSession:a,user:d,existingSessionIdToLink:l.id}),p=f.headers.get("Location"),h=f.headers.getSetCookie?.()||[];return p?{redirect:p,cookies:h}:{response:f}}catch(f){const p=f instanceof Error?f.message:"An unexpected error occurred";if(p.includes("session")||p.includes("expired")||p.includes("completed")||p.includes("failed"))return{redirect:`${u}/login/identifier?state=${encodeURIComponent(s)}`};const h=e.language||"en",{m:_}=tt(h,e.customText,"check-account");return{error:_.check_account_error(),screen:await C5(e)}}}const vfe={id:"check-account",name:"Check Account",description:"Allows users to continue with an existing session",handler:{get:C5,post:bfe}},Pd=new Map([["identifier",ufe],["login",pfe],["enter-code",afe],["enter-password",cfe],["signup",ffe],["forgot-password",_fe],["reset-password",mfe],["impersonate",yfe],["check-account",vfe]]);function I5(e){return Pd.get(e)}function j5(e,t){const n=Pd.get(e);if(n)return n.handler.get(t)}function sh(){return Array.from(Pd.keys())}function N5(e){return Pd.has(e)}const T5={identifier:"login-id","enter-password":"login-password","enter-code":"login",signup:"signup","forgot-password":"reset-password","reset-password":"reset-password",impersonate:"login","pre-signup":"signup-id","pre-signup-sent":"signup",consent:"consent"};function wfe(e,t){if(e){const r=e.split(" ")[0];if(r){const i=r.split("-")[0]?.toLowerCase();if(i)return i}}if(!t)return"en";const n=t.split(",").map(r=>{const[i,s]=r.trim().split(";"),a=s?parseFloat(s.split("=")[1]||"1"):1;return{code:i?.split("-")[0]?.toLowerCase()||"en",q:a}});return n.sort((r,i)=>i.q-r.q),n[0]?.code||"en"}async function kfe(e,t,n,r){const i=T5[n];if(i)try{let s=await e.env.data.customText.get(t,i,r);if(!s&&r.includes("-")){const a=r.split("-")[0];s=await e.env.data.customText.get(t,i,a)}if(!s){const a=await e.env.data.customText.get(t,"common",r);a&&(s=a)}return s||void 0}catch{return}}const $fe=o.z.object({logo_url:o.z.string().optional(),favicon_url:o.z.string().optional(),powered_by_logo_url:o.z.string().optional(),colors:o.z.object({primary:o.z.string().optional(),page_background:o.z.union([o.z.string(),o.z.object({type:o.z.string().optional(),start:o.z.string().optional(),end:o.z.string().optional(),angle_deg:o.z.number().optional()})]).optional()}).optional(),font:o.z.object({url:o.z.string().optional()}).optional()}),P5=o.z.object({id:o.z.number().optional(),text:o.z.string(),type:o.z.enum(["info","error","success","warning"])}),Sfe=o.z.object({id:o.z.string(),type:o.z.string(),category:o.z.string().optional(),config:o.z.record(o.z.any()).optional(),order:o.z.number().optional(),visible:o.z.boolean().optional(),required:o.z.boolean().optional(),sensitive:o.z.boolean().optional(),label:o.z.string().optional(),hint:o.z.string().optional(),messages:o.z.array(P5).optional()}),xfe=o.z.object({name:o.z.string().optional(),action:o.z.string(),method:o.z.enum(["POST","GET"]),title:o.z.string().optional(),description:o.z.string().optional(),components:o.z.array(Sfe),messages:o.z.array(P5).optional(),links:o.z.array(o.z.object({id:o.z.string().optional(),text:o.z.string(),href:o.z.string(),linkText:o.z.string().optional()})).optional()}),ov=o.z.object({screen:xfe,branding:$fe.optional()});function zfe(e){if(e)return{logo_url:e.logo_url,favicon_url:e.favicon_url,powered_by_logo_url:e.powered_by_logo_url,colors:e.colors,font:e.font}}async function of(e,t,n,r,i,s){const{client:a,branding:c,theme:l,loginSession:u}=await Ae(e,t,!0);s&&s!==u?.authParams?.ui_locales&&(await e.env.data.loginSessions.update(a.tenant.id,u.id,{authParams:{...u.authParams,ui_locales:s}}),u.authParams&&(u.authParams.ui_locales=s));const d=a.connections||[],f=e.req.header("Accept-Language"),p=wfe(s||u?.authParams?.ui_locales,f),h=T5[n],_=await kfe(e,e.var.tenant_id,n,p),g=a.client_metadata?.universal_login_version==="2"?"/u2":"/u";return{ctx:e,tenant:a.tenant,client:a,theme:l??void 0,branding:zfe(c),connections:d,state:t,prefill:{...r,username:u?.authParams?.username,email:u?.authParams?.username},errors:i,customText:_,language:p,promptScreen:h,routePrefix:g}}async function Afe(e,t){if(!N5(e))return null;const n=j5(e,t);return n?await n:null}async function zc(e,t,n,r,i,s){const a=await e.env.data.forms.get(t,n);if(!a)return null;const c=i??a.start?.next_node;if(!c)return null;const l=(a.nodes||[]).find(f=>f.id===c&&f.type==="STEP");if(!l)return null;const u=`/u2/screen/${n}?state=${encodeURIComponent(r)}${c?`&nodeId=${encodeURIComponent(c)}`:""}`,d=[...l.config.components].filter(f=>f.visible!==!1).sort((f,p)=>(f.order??0)-(p.order??0)).map(f=>s?.fieldErrors?.[f.id]?{...f,messages:[{text:s.fieldErrors[f.id],type:"error"}]}:f);return{screen:{action:u,method:"POST",title:a.name,components:d,messages:s?.messages},formId:n,nodeId:c,form:a,stepNode:l}}const Efe=new o.OpenAPIHono().openapi(o.createRoute({tags:["screen-api"],method:"get",path:"/:screenId",request:{params:o.z.object({screenId:o.z.string().openapi({description:`Screen ID. Built-in screens: ${sh().join(", ")}. Or a database form ID.`})}),query:o.z.object({state:o.z.string().openapi({description:"The login session state"}),nodeId:o.z.string().optional().openapi({description:"Node ID for database forms (optional)"}),ui_locales:o.z.string().optional().openapi({description:"Language override from the language picker (e.g. 'en', 'sv')"})})},responses:{200:{description:"Screen configuration",content:{"application/json":{schema:ov}}},404:{description:"Screen not found"}}}),async e=>{const{screenId:t}=e.req.valid("param"),{state:n,nodeId:r,ui_locales:i}=e.req.valid("query"),s=await of(e,n,t,void 0,void 0,i),a=await Afe(t,s);if(a){const l={...a.screen,action:`/u2/screen/${t}?state=${encodeURIComponent(n)}`,links:a.screen.links?.map(u=>({...u,href:u.href.replace("/u/widget/","/u2/").replace("/u/signup","/u2/signup").replace("/u/enter-","/u2/enter-")}))};return e.json({screen:l,branding:a.branding})}const c=await zc(e,s.tenant.id,t,n,r);if(c)return e.json({screen:c.screen,branding:s.branding});throw new I(404,{message:`Screen not found: ${t}. Available built-in screens: ${sh().join(", ")}`})}).openapi(o.createRoute({tags:["screen-api"],method:"post",path:"/:screenId",request:{params:o.z.object({screenId:o.z.string()}),query:o.z.object({state:o.z.string(),nodeId:o.z.string().optional()}),body:{content:{"application/json":{schema:o.z.object({data:o.z.record(o.z.string(),o.z.any())})}}}},responses:{200:{description:"Next screen or redirect",content:{"application/json":{schema:o.z.union([ov,o.z.object({redirect:o.z.string()}),o.z.object({complete:o.z.boolean()})])}}},400:{description:"Validation error"},404:{description:"Screen not found"}}}),async e=>{const{screenId:t}=e.req.valid("param"),{state:n,nodeId:r}=e.req.valid("query"),{data:i}=e.req.valid("json"),s=I5(t);if(s?.handler.post){const g=await of(e,n,t),y=await s.handler.post(g,i);if("response"in y)return y.response;if("redirect"in y){const S=new Headers;if(S.set("Content-Type","application/json"),y.cookies&&y.cookies.length>0)for(const b of y.cookies)S.append("Set-Cookie",b);return new Response(JSON.stringify({redirect:y.redirect}),{status:200,headers:S})}const m=y.screen,w=m.screen.action?.match(/\/u2\/(?:screen\/)?([^/?]+)/)?.[1]||t,k=w!==t?`/u2/${w}?state=${encodeURIComponent(n)}`:void 0;return e.json({screen:{...m.screen,action:`/u2/screen/${w}?state=${encodeURIComponent(n)}`,links:m.screen.links?.map(S=>({...S,href:S.href.replace("/u/widget/","/u2/").replace("/u/signup","/u2/signup").replace("/u/enter-","/u2/enter-")}))},branding:m.branding,screenId:w,navigateUrl:k},"error"in y?400:200)}if(N5(t))throw new I(400,{message:`Screen ${t} does not support POST submissions yet`});const a=await of(e,n,t),c=await zc(e,a.tenant.id,t,n,r);if(!c)throw new I(404,{message:`Screen not found: ${t}`});const{form:l,stepNode:u}=c,d={},f=u.config.components;for(const g of f){if("required"in g&&g.required){const y=i[g.id];(y==null||y==="")&&(d[g.id]="This field is required")}g.type==="EMAIL"&&i[g.id]&&(/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String(i[g.id]))||(d[g.id]="Please enter a valid email address"))}if(Object.keys(d).length>0){const g=await zc(e,a.tenant.id,t,n,c.nodeId,{fieldErrors:d,messages:[{text:"Please correct the errors below",type:"error"}]});return e.json({screen:g.screen,branding:a.branding},400)}const{client:p}=await Ae(e,n,!0),h=await e.env.data.loginSessions.get(p.tenant.id,n);if(!h||!h.authParams)throw new I(400,{message:"Session expired"});const _=u.config?.next_node;if(_&&l.nodes){const g=async k=>{const S=await e.env.data.flows.get(p.tenant.id,k);return S?{actions:S.actions?.map(b=>({type:b.type,action:b.action,params:"params"in b&&b.params?b.params:void 0}))}:null};let y=null;if(h.session_id){const k=await e.env.data.sessions.get(p.tenant.id,h.session_id);k?.user_id&&(y=await e.env.data.users.get(e.var.tenant_id,k.user_id))}const m={};for(const k of u.config.components)i[k.id]!==void 0&&i[k.id]!==null&&i[k.id]!==""&&(m[k.id]=String(i[k.id]));const w=await zu(l.nodes,_,{user:y,submittedFields:m},g);if(w){if(w.userUpdates&&w.userUpdates.length>0&&y){const k=Su(w.userUpdates);for(const S of k){const b=$u(S.changes,y);await e.env.data.users.update(p.tenant.id,S.user_id,b)}}if(w.type==="redirect"){const k=w.target,S=xu(k,w.customUrl,n);if(k==="change-email"||k==="account"){const b=`/u/continue?state=${encodeURIComponent(n)}`;await vu(e,p.tenant.id,h,[k],b)}return e.json({redirect:S})}if(w.type==="step"){const k=await zc(e,a.tenant.id,t,n,w.nodeId);if(k)return e.json({screen:k.screen,branding:a.branding})}}}if(h.session_id){const g=await e.env.data.sessions.get(p.tenant.id,h.session_id);if(g?.user_id){const y=await e.env.data.users.get(e.var.tenant_id,g.user_id);if(y){await na(e,p.tenant.id,h);const m=await gt(e,{authParams:h.authParams,client:p,user:y,loginSession:h,skipHooks:!0});if(m.status===302){const w=m.headers.get("location");if(w){const k=m.headers.getSetCookie?.()||[],S=e.json({redirect:w});return k.forEach(b=>{S.headers.append("set-cookie",b)}),S}}}}}return e.json({complete:!0})}),Cfe={en:"English",nb:"Norsk",sv:"Svenska",da:"Dansk",fi:"Suomi",cs:"Čeština",pl:"Polski",it:"Italiano"},sv={en:"Terms and Conditions",nb:"Vilkår",sv:"Villkor",da:"Vilkår og betingelser",fi:"Ehdot ja edellytykset",cs:"Podmínky a pravidla",pl:"Zasady i warunki",it:"Termini e condizioni"};function im({widgetHtml:e,screenId:t,branding:n,theme:r,themePageBackground:i,clientName:s,poweredByLogo:a,language:c,availableLanguages:l,termsAndConditionsUrl:u}){const d=[],f=An(n?.colors?.primary);f&&d.push(`--ah-color-primary: ${f}`);const p=U4(i,n?.colors?.page_background),h=Ft(n?.favicon_url),_=Ft(n?.font?.url),g=An(r?.colors?.widget_background)||"#ffffff",y=a?.url?Ft(a.url):null,m=a?.href?Ft(a.href):null,w=i?.page_layout||"center",b={minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:w==="left"?"flex-start":w==="right"?"flex-end":"center",background:p,fontFamily:_?"'Inter', system-ui, sans-serif":"system-ui, -apple-system, sans-serif",padding:w==="left"?"20px 20px 20px 80px":w==="right"?"20px 80px 20px 20px":"20px"},x=d.length>0?d.join("; ")+"; max-width: 400px; width: 100%;":"max-width: 400px; width: 100%;";return v("html",{lang:"en",children:[v("head",{children:[v("meta",{charSet:"UTF-8"}),v("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),v("title",{children:["Sign in - ",s]}),h&&v("link",{rel:"icon",href:h}),_&&v("link",{rel:"stylesheet",href:_}),v("style",{dangerouslySetInnerHTML:{__html:`
|
|
188
|
+
Potete fare clic sul link sottostante per iniziare un nuovo accesso.`,E8=((e={},t={})=>{const n=t.locale??j();return n==="en"?rX():n==="nb"?iX():n==="sv"?oX():n==="da"?sX():n==="fi"?aX():n==="cs"?cX():n==="pl"?lX():uX()}),dX=()=>"Invalid link",pX=()=>"Ugyldig lenke",fX=()=>"Ogiltig länk",hX=()=>"Ugyldigt link",_X=()=>"Virheellinen linkki",mX=()=>"Neplatný odkaz",gX=()=>"Nieprawidłowy link",yX=()=>"Collegamento non valido",C8=((e={},t={})=>{const n=t.locale??j();return n==="en"?dX():n==="nb"?pX():n==="sv"?fX():n==="da"?hX():n==="fi"?_X():n==="cs"?mX():n==="pl"?gX():yX()}),bX=()=>"Linked accounts",vX=()=>"Koblede kontoer",wX=()=>"Länkade konton",kX=()=>"Koblede konti",$X=()=>"Linkitetyt tilit",SX=()=>"Propojené účty",xX=()=>"Połączone konta",zX=()=>"Account collegati",I8=((e={},t={})=>{const n=t.locale??j();return n==="en"?bX():n==="nb"?vX():n==="sv"?wX():n==="da"?kX():n==="fi"?$X():n==="cs"?SX():n==="pl"?xX():zX()}),AX=()=>"Click the button to log in",EX=()=>"Klikk på knappen for å logge inn",CX=()=>"Klicka på knappen för att logga in",IX=()=>"Klik på knappen for at logge ind",jX=()=>"Kirjaudu sisään napsauttamalla painiketta",NX=()=>"Kliknutím na tlačítko se přihlásíte",TX=()=>"Kliknij przycisk, aby się zalogować",PX=()=>"Fare clic sul pulsante per accedere",j8=((e={},t={})=>{const n=t.locale??j();return n==="en"?AX():n==="nb"?EX():n==="sv"?CX():n==="da"?IX():n==="fi"?jX():n==="cs"?NX():n==="pl"?TX():PX()}),OX=()=>"Login",RX=()=>"Logg inn",LX=()=>"Logga in",DX=()=>"Login",UX=()=>"Kirjaudu sisään",BX=()=>"Přihlášení",MX=()=>"Zaloguj się",qX=()=>"Accedi",N8=((e={},t={})=>{const n=t.locale??j();return n==="en"?OX():n==="nb"?RX():n==="sv"?LX():n==="da"?DX():n==="fi"?UX():n==="cs"?BX():n==="pl"?MX():qX()}),FX=e=>`Or enter the code at ${e?.vendorName} to complete the login.`,HX=e=>`Eller skriv inn koden på ${e?.vendorName} for å fullføre påloggingen.`,VX=e=>`Eller skriv in koden på ${e?.vendorName} för att slutföra inloggningen.`,KX=e=>`Eller indtast koden på ${e?.vendorName} for at gennemføre login.`,GX=e=>`Tai kirjoita koodi osoitteessa ${e?.vendorName} kirjautumisen loppuun saattamiseksi.`,WX=e=>`Nebo zadejte kód na adrese ${e?.vendorName} a dokončete přihlášení.`,JX=e=>`Lub wprowadź kod na stronie ${e?.vendorName}, aby dokończyć logowanie.`,ZX=e=>`Oppure inserire il codice all'indirizzo ${e?.vendorName} per completare il login.`,T8=((e,t={})=>{const n=t.locale??j();return n==="en"?FX(e):n==="nb"?HX(e):n==="sv"?VX(e):n==="da"?KX(e):n==="fi"?GX(e):n==="cs"?WX(e):n==="pl"?JX(e):ZX(e)}),XX=e=>`Enter your email address to unlock this show on ${e?.service}`,YX=e=>`Skriv inn e-postadressen din for å låse opp dette programmet på ${e?.service}`,QX=e=>`Ange din epost för att låsa upp den här showen på ${e?.service}`,eY=e=>`Indtast din e-mailadresse for at låse op for dette show på ${e?.service}`,tY=e=>`Kirjoita sähköpostiosoitteesi avataksesi tämän ohjelman osoitteessa ${e?.service}`,nY=e=>`Zadejte svou e-mailovou adresu pro odemknutí tohoto pořadu na ${e?.service}`,rY=e=>`Wprowadź swój adres e-mail, aby odblokować ten program na ${e?.service}`,iY=e=>`Inserisci il tuo indirizzo e-mail per sbloccare questo spettacolo su ${e?.service}`,P8=((e,t={})=>{const n=t.locale??j();return n==="en"?XX(e):n==="nb"?YX(e):n==="sv"?QX(e):n==="da"?eY(e):n==="fi"?tY(e):n==="cs"?nY(e):n==="pl"?rY(e):iY(e)}),oY=e=>`Link your account with ${e?.service}`,sY=e=>`Koble kontoen din til ${e?.service}`,aY=e=>`Koppla ditt konto till ${e?.service}`,cY=e=>`Forbind din konto med ${e?.service}`,lY=e=>`Yhdistä tilisi ${e?.service}`,uY=e=>`Propojte svůj účet s ${e?.service}`,dY=e=>`Połącz swoje konto z ${e?.service}`,pY=e=>`Collegate il vostro account con ${e?.service}`,O8=((e,t={})=>{const n=t.locale??j();return n==="en"?oY(e):n==="nb"?sY(e):n==="sv"?aY(e):n==="da"?cY(e):n==="fi"?lY(e):n==="cs"?uY(e):n==="pl"?dY(e):pY(e)}),fY=()=>"Log in",hY=()=>"Logg inn",_Y=()=>"Logga in",mY=()=>"Log ind",gY=()=>"Kirjaudu sisään",yY=()=>"Přihlásit se",bY=()=>"Zaloguj się",vY=()=>"Accedi",R8=((e={},t={})=>{const n=t.locale??j();return n==="en"?fY():n==="nb"?hY():n==="sv"?_Y():n==="da"?mY():n==="fi"?gY():n==="cs"?yY():n==="pl"?bY():vY()}),wY=()=>"You are logged in as",kY=()=>"Du er innlogget som",$Y=()=>"Du är inloggad som",SY=()=>"Du er logget ind som",xY=()=>"Olet kirjautunut sisään nimellä",zY=()=>"Jste přihlášeni jako",AY=()=>"Jesteś zalogowany jako",EY=()=>"L'utente ha effettuato l'accesso come",L8=((e={},t={})=>{const n=t.locale??j();return n==="en"?wY():n==="nb"?kY():n==="sv"?$Y():n==="da"?SY():n==="fi"?xY():n==="cs"?zY():n==="pl"?AY():EY()}),CY=()=>"Login",IY=()=>"Logg inn",jY=()=>"Logga in",NY=()=>"Login",TY=()=>"Kirjaudu sisään",PY=()=>"Přihlášení",OY=()=>"Logowanie",RY=()=>"Accesso",D8=((e={},t={})=>{const n=t.locale??j();return n==="en"?CY():n==="nb"?IY():n==="sv"?jY():n==="da"?NY():n==="fi"?TY():n==="cs"?PY():n==="pl"?OY():RY()}),LY=e=>`Log in to ${e?.companyName} to continue to ${e?.clientName}.`,DY=e=>`Logg inn på ${e?.companyName} for å fortsette til ${e?.clientName}.`,UY=e=>`Logga in på ${e?.companyName} för att fortsätta till ${e?.clientName}.`,BY=e=>`Log ind på ${e?.companyName} for at fortsætte til ${e?.clientName}.`,MY=e=>`Kirjaudu sisään ${e?.companyName} jatkaaksesi ${e?.clientName}.`,qY=e=>`Přihlaste se k ${e?.companyName} a pokračujte na ${e?.clientName}.`,FY=e=>`Zaloguj się do ${e?.companyName}, aby kontynuować do ${e?.clientName}.`,HY=e=>`Accedi a ${e?.companyName} per continuare su ${e?.clientName}.`,U8=((e,t={})=>{const n=t.locale??j();return n==="en"?LY(e):n==="nb"?DY(e):n==="sv"?UY(e):n==="da"?BY(e):n==="fi"?MY(e):n==="cs"?qY(e):n==="pl"?FY(e):HY(e)}),VY=()=>"Enter your email address and we will send you a login code.",KY=()=>"Skriv inn e-postadressen din og vi sender deg en påloggingskode.",GY=()=>"Ange din mejladress, så skickar vi en kod till dig som du kan logga in med.",WY=()=>"Indtast din e-mailadresse, så sender vi dig en login-kode.",JY=()=>"Anna sähköpostiosoitteesi, niin lähetämme sinulle kirjautumiskoodin.",ZY=()=>"Zadejte svou e-mailovou adresu a my vám zašleme přihlašovací kód.",XY=()=>"Wprowadź swój adres e-mail, a my wyślemy Ci kod logowania.",YY=()=>"Inserite il vostro indirizzo e-mail e vi invieremo un codice di accesso.",B8=((e={},t={})=>{const n=t.locale??j();return n==="en"?VY():n==="nb"?KY():n==="sv"?GY():n==="da"?WY():n==="fi"?JY():n==="cs"?ZY():n==="pl"?XY():YY()}),QY=()=>"Enter your email or phone number to sign in",eQ=()=>"Skriv inn e-postadressen eller telefonnummeret ditt for å logge på",tQ=()=>"Ange din e-postadress eller ditt telefonnummer för att logga in",nQ=()=>"Indtast din e-mail eller dit telefonnummer for at logge ind",rQ=()=>"Kirjoita sähköpostiosoitteesi tai puhelinnumerosi kirjautuaksesi sisään",iQ=()=>"Pro přihlášení zadejte svůj e-mail nebo telefonní číslo",oQ=()=>"Wprowadź swój adres e-mail lub numer telefonu, aby się zalogować",sQ=()=>"Inserire l'e-mail o il numero di telefono per accedere",M8=((e={},t={})=>{const n=t.locale??j();return n==="en"?QY():n==="nb"?eQ():n==="sv"?tQ():n==="da"?nQ():n==="fi"?rQ():n==="cs"?iQ():n==="pl"?oQ():sQ()}),aQ=()=>"Enter your email address and we will send you a login link.",cQ=()=>"Skriv inn e-postadressen din og vi sender deg en påloggingslenke.",lQ=()=>"Ange din mejladress, så skickar vi en länk till dig som du kan logga in med.",uQ=()=>"Indtast din e-mailadresse, så sender vi dig et login-link.",dQ=()=>"Anna sähköpostiosoitteesi, niin lähetämme sinulle kirjautumislinkin.",pQ=()=>"Zadejte svou e-mailovou adresu a my vám zašleme odkaz pro přihlášení.",fQ=()=>"Wprowadź swój adres e-mail, a my wyślemy Ci link do logowania.",hQ=()=>"Inserite il vostro indirizzo e-mail e vi invieremo un link di accesso.",q8=((e={},t={})=>{const n=t.locale??j();return n==="en"?aQ():n==="nb"?cQ():n==="sv"?lQ():n==="da"?uQ():n==="fi"?dQ():n==="cs"?pQ():n==="pl"?fQ():hQ()}),_Q=()=>"Enter your phone number to sign in",mQ=()=>"Skriv inn telefonnummeret ditt for å logge på",gQ=()=>"Ange ditt telefonnummer för att logga in",yQ=()=>"Indtast dit telefonnummer for at logge ind",bQ=()=>"Anna puhelinnumerosi kirjautuaksesi sisään",vQ=()=>"Zadejte své telefonní číslo a přihlaste se",wQ=()=>"Wprowadź swój numer telefonu, aby się zalogować",kQ=()=>"Inserire il numero di telefono per accedere",F8=((e={},t={})=>{const n=t.locale??j();return n==="en"?_Q():n==="nb"?mQ():n==="sv"?gQ():n==="da"?yQ():n==="fi"?bQ():n==="cs"?vQ():n==="pl"?wQ():kQ()}),$Q=e=>`Enter your ${e?.authMethod} to sign in.`,SQ=e=>`Skriv inn din ${e?.authMethod} for å logge inn.`,xQ=e=>`Ange din ${e?.authMethod} för att logga in.`,zQ=e=>`Indtast din ${e?.authMethod} for at logge ind.`,AQ=e=>`Kirjoita ${e?.authMethod} kirjautuaksesi sisään.`,EQ=e=>`Pro přihlášení zadejte adresu ${e?.authMethod}.`,CQ=e=>`Wprowadź swój adres ${e?.authMethod}, aby się zalogować.`,IQ=e=>`Inserite il vostro ${e?.authMethod} per accedere.`,H8=((e,t={})=>{const n=t.locale??j();return n==="en"?$Q(e):n==="nb"?SQ(e):n==="sv"?xQ(e):n==="da"?zQ(e):n==="fi"?AQ(e):n==="cs"?EQ(e):n==="pl"?CQ(e):IQ(e)}),jQ=()=>"Continue",NQ=()=>"Fortsett",TQ=()=>"Fortsätt",PQ=()=>"Fortsæt",OQ=()=>"Jatka",RQ=()=>"Pokračovat",LQ=()=>"Kontynuuj",DQ=()=>"Continua",V8=((e={},t={})=>{const n=t.locale??j();return n==="en"?jQ():n==="nb"?NQ():n==="sv"?TQ():n==="da"?PQ():n==="fi"?OQ():n==="cs"?RQ():n==="pl"?LQ():DQ()}),UQ=e=>`Log in to ${e?.companyName} to continue to ${e?.clientName}.`,BQ=e=>`Logg inn på ${e?.companyName} for å fortsette til ${e?.clientName}.`,MQ=e=>`Logga in på ${e?.companyName} för att fortsätta till ${e?.clientName}.`,qQ=e=>`Log ind på ${e?.companyName} for at fortsætte til ${e?.clientName}.`,FQ=e=>`Kirjaudu sisään ${e?.companyName} jatkaaksesi ${e?.clientName}.`,HQ=e=>`Přihlaste se k ${e?.companyName} a pokračujte na ${e?.clientName}.`,VQ=e=>`Zaloguj się do ${e?.companyName}, aby kontynuować do ${e?.clientName}.`,KQ=e=>`Accedi a ${e?.companyName} per continuare su ${e?.clientName}.`,K8=((e,t={})=>{const n=t.locale??j();return n==="en"?UQ(e):n==="nb"?BQ(e):n==="sv"?MQ(e):n==="da"?qQ(e):n==="fi"?FQ(e):n==="cs"?HQ(e):n==="pl"?VQ(e):KQ(e)}),GQ=e=>`Continue with ${e?.connectionName}`,WQ=e=>`Fortsett med ${e?.connectionName}`,JQ=e=>`Fortsätt med ${e?.connectionName}`,ZQ=e=>`Fortsæt med ${e?.connectionName}`,XQ=e=>`Jatka palvelulla ${e?.connectionName}`,YQ=e=>`Pokračovat s ${e?.connectionName}`,QQ=e=>`Kontynuuj z ${e?.connectionName}`,eee=e=>`Continua con ${e?.connectionName}`,G8=((e,t={})=>{const n=t.locale??j();return n==="en"?GQ(e):n==="nb"?WQ(e):n==="sv"?JQ(e):n==="da"?ZQ(e):n==="fi"?XQ(e):n==="cs"?YQ(e):n==="pl"?QQ(e):eee(e)}),tee=e=>`By continuing, you agree to our <a href="${e?.termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Terms and Conditions</a>.`,nee=e=>`Ved å fortsette godtar du våre <a href="${e?.termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">vilkår</a>.`,ree=e=>`Genom att fortsätta godkänner du våra <a href="${e?.termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Villkor</a>.`,iee=e=>`Ved at fortsætte accepterer du vores <a href="${e?.termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Vilkår og betingelser</a>.`,oee=e=>`Jatkamalla hyväksyt <a href="${e?.termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Käyttöehdot</a>.`,see=e=>`Pokračováním souhlasíte s našimi <a href="${e?.termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Podmínkami a pravidly</a>.`,aee=e=>`Kontynuując, akceptujesz nasze <a href="${e?.termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Zasady i warunki</a>.`,cee=e=>`Continuando, accetti i nostri <a href="${e?.termsAndConditionsUrl}" target="_blank" rel="noopener noreferrer">Termini e condizioni</a>.`,W8=((e,t={})=>{const n=t.locale??j();return n==="en"?tee(e):n==="nb"?nee(e):n==="sv"?ree(e):n==="da"?iee(e):n==="fi"?oee(e):n==="cs"?see(e):n==="pl"?aee(e):cee(e)}),lee=()=>"Welcome",uee=()=>"Velkommen",dee=()=>"Välkommen",pee=()=>"Velkommen",fee=()=>"Tervetuloa",hee=()=>"Vítejte",_ee=()=>"Witamy",mee=()=>"Benvenuto",J8=((e={},t={})=>{const n=t.locale??j();return n==="en"?lee():n==="nb"?uee():n==="sv"?dee():n==="da"?pee():n==="fi"?fee():n==="cs"?hee():n==="pl"?_ee():mee()}),gee=()=>"Log out",yee=()=>"Logg ut",bee=()=>"Logga ut",vee=()=>"Log ud",wee=()=>"Kirjaudu ulos",kee=()=>"Odhlášení",$ee=()=>"Wylogowanie",See=()=>"Disconnettersi",Z8=((e={},t={})=>{const n=t.locale??j();return n==="en"?gee():n==="nb"?yee():n==="sv"?bee():n==="da"?vee():n==="fi"?wee():n==="cs"?kee():n==="pl"?$ee():See()}),xee=()=>"New email address",zee=()=>"Ny e-postadresse",Aee=()=>"Ny e-postadress",Eee=()=>"Ny emailadresse",Cee=()=>"Uusi sähköpostiosoite",Iee=()=>"Nová e-mailová adresa",jee=()=>"Nowy adres e-mail",Nee=()=>"Nuovo indirizzo email",X8=((e={},t={})=>{const n=t.locale??j();return n==="en"?xee():n==="nb"?zee():n==="sv"?Aee():n==="da"?Eee():n==="fi"?Cee():n==="cs"?Iee():n==="pl"?jee():Nee()}),Tee=()=>"A one-time code will be sent to your new email address, enter the code in the next step.",Pee=()=>"En engangskode vil bli sendt til din nye e-postadresse, skriv inn koden i neste steg.",Oee=()=>"En engångskod skickas till din nya e-postadress, ange koden i nästa steg.",Ree=()=>"En engangskode vil blive sendt til din nye e-mailadresse, indtast koden i næste trin.",Lee=()=>"Yksi kertainen koodi lähetetään uuteen sähköpostiosoitteeseesi, syötä koodi seuraavassa vaiheessa.",Dee=()=>"Na vaši novou e-mailovou adresu bude zaslán jednorázový kód, zadejte kód v dalším kroku.",Uee=()=>"Jednorazowy kod zostanie wysłany na Twój nowy adres e-mail, wprowadź kod w następnym kroku.",Bee=()=>"Un codice monouso verrà inviato al tuo nuovo indirizzo email, inserisci il codice nel passaggio successivo.",Y8=((e={},t={})=>{const n=t.locale??j();return n==="en"?Tee():n==="nb"?Pee():n==="sv"?Oee():n==="da"?Ree():n==="fi"?Lee():n==="cs"?Dee():n==="pl"?Uee():Bee()}),Mee=()=>"Please enter an email address",qee=()=>"Vennligst oppgi en e-postadresse",Fee=()=>"Vänligen ange en e-postadress",Hee=()=>"Indtast venligst en e-mailadresse",Vee=()=>"Sähköpostiosoite vaaditaan",Kee=()=>"Zadejte prosím e-mailovou adresu",Gee=()=>"Wprowadź adres e-mail",Wee=()=>"Inserisci un indirizzo email",Q8=((e={},t={})=>{const n=t.locale??j();return n==="en"?Mee():n==="nb"?qee():n==="sv"?Fee():n==="da"?Hee():n==="fi"?Vee():n==="cs"?Kee():n==="pl"?Gee():Wee()}),Jee=()=>"No email address set",Zee=()=>"Ingen e-postadresse satt",Xee=()=>"Ingen e-postadress angiven",Yee=()=>"Ingen e-mailadresse er angivet",Qee=()=>"Ei sähköpostiosoitetta asetettu",ete=()=>"Žádná e-mailová adresa není nastavena",tte=()=>"Brak ustawionego adresu e-mail",nte=()=>"Nessun indirizzo email impostato",e5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Jee():n==="nb"?Zee():n==="sv"?Xee():n==="da"?Yee():n==="fi"?Qee():n==="cs"?ete():n==="pl"?tte():nte()}),rte=()=>"Email or username is required",ite=()=>"E-post eller brukernavn er påkrevd",ote=()=>"E-post eller användarnamn krävs",ste=()=>"E-mail eller brugernavn er påkrævet",ate=()=>"Sähköposti tai käyttäjänimi vaaditaan",cte=()=>"E-mail nebo uživatelské jméno je povinné",lte=()=>"Adres e-mail lub nazwa użytkownika jest wymagana",ute=()=>"Email o nome utente sono obbligatori",t5=((e={},t={})=>{const n=t.locale??j();return n==="en"?rte():n==="nb"?ite():n==="sv"?ote():n==="da"?ste():n==="fi"?ate():n==="cs"?cte():n==="pl"?lte():ute()}),dte=()=>"Verification code is required",pte=()=>"Bekreftelseskode er påkrevd",fte=()=>"Verifieringskod krävs",hte=()=>"Bekræftelseskode er påkrævet",_te=()=>"Vahvistuskoodi vaaditaan",mte=()=>"Ověřovací kód je povinný",gte=()=>"Kod weryfikacyjny jest wymagany",yte=()=>"Il codice di verifica è obbligatorio",n5=((e={},t={})=>{const n=t.locale??j();return n==="en"?dte():n==="nb"?pte():n==="sv"?fte():n==="da"?hte():n==="fi"?_te():n==="cs"?mte():n==="pl"?gte():yte()}),bte=()=>"Password is required",vte=()=>"Passord er påkrevd",wte=()=>"Lösenord krävs",kte=()=>"Adgangskode er påkrævet",$te=()=>"Salasana vaaditaan",Ste=()=>"Heslo je povinné",xte=()=>"Hasło jest wymagane",zte=()=>"La password è obbligatoria",r5=((e={},t={})=>{const n=t.locale??j();return n==="en"?bte():n==="nb"?vte():n==="sv"?wte():n==="da"?kte():n==="fi"?$te():n==="cs"?Ste():n==="pl"?xte():zte()}),Ate=()=>"Username is required",Ete=()=>"Brukernavn er påkrevd",Cte=()=>"Användarnamn krävs",Ite=()=>"Brugernavn er påkrævet",jte=()=>"Käyttäjänimi vaaditaan",Nte=()=>"Uživatelské jméno je povinné",Tte=()=>"Nazwa użytkownika jest wymagana",Pte=()=>"Il nome utente è obbligatorio",i5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Ate():n==="nb"?Ete():n==="sv"?Cte():n==="da"?Ite():n==="fi"?jte():n==="cs"?Nte():n==="pl"?Tte():Pte()}),Ote=()=>"No, I want to use another account",Rte=()=>"Nei, jeg vil bruke en annen konto",Lte=()=>"Nej, jag vill använda ett annat konto",Dte=()=>"Nej, jeg vil bruge en anden konto",Ute=()=>"Ei, haluan käyttää toista tiliä",Bte=()=>"Ne, chci použít jiný účet",Mte=()=>"Nie, chcę użyć innego konta",qte=()=>"No, voglio usare un altro account",o5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Ote():n==="nb"?Rte():n==="sv"?Lte():n==="da"?Dte():n==="fi"?Ute():n==="cs"?Bte():n==="pl"?Mte():qte()}),Fte=()=>"or",Hte=()=>"eller",Vte=()=>"eller",Kte=()=>"eller",Gte=()=>"tai",Wte=()=>"nebo",Jte=()=>"lub",Zte=()=>"o",s5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Fte():n==="nb"?Hte():n==="sv"?Vte():n==="da"?Kte():n==="fi"?Gte():n==="cs"?Wte():n==="pl"?Jte():Zte()}),Xte=()=>"Password",Yte=()=>"Passord",Qte=()=>"Lösenord",ene=()=>"Adgangskode",tne=()=>"Salasana",nne=()=>"Heslo",rne=()=>"Hasło",ine=()=>"Password",a5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Xte():n==="nb"?Yte():n==="sv"?Qte():n==="da"?ene():n==="fi"?tne():n==="cs"?nne():n==="pl"?rne():ine()}),one=()=>"Password contains a forbidden word",sne=()=>"Passordet inneholder et forbudt ord",ane=()=>"Lösenordet innehåller ett förbjudet ord",cne=()=>"Adgangskoden indeholder et forbudt ord",lne=()=>"Salasana sisältää kielletyn sanan",une=()=>"Heslo obsahuje zakázané slovo",dne=()=>"Hasło zawiera zakazane słowo",pne=()=>"La password contiene una parola vietata",c5=((e={},t={})=>{const n=t.locale??j();return n==="en"?one():n==="nb"?sne():n==="sv"?ane():n==="da"?cne():n==="fi"?lne():n==="cs"?une():n==="pl"?dne():pne()}),fne=()=>"Password cannot contain personal information like your name or email",hne=()=>"Passordet kan ikke inneholde personlig informasjon som navn eller e-post",_ne=()=>"Lösenordet får inte innehålla personlig information som ditt namn eller e-post",mne=()=>"Adgangskoden må ikke indeholde personlige oplysninger som dit navn eller e-mail",gne=()=>"Salasana ei saa sisältää henkilötietoja, kuten nimeäsi tai sähköpostiosoitettasi",yne=()=>"Heslo nesmí obsahovat osobní údaje jako jméno nebo e-mail",bne=()=>"Hasło nie może zawierać danych osobowych, takich jak imię lub adres e-mail",vne=()=>"La password non può contenere informazioni personali come il nome o l'email",l5=((e={},t={})=>{const n=t.locale??j();return n==="en"?fne():n==="nb"?hne():n==="sv"?_ne():n==="da"?mne():n==="fi"?gne():n==="cs"?yne():n==="pl"?bne():vne()}),wne=()=>"The password has been reset",kne=()=>"Passordet har blitt tilbakestilt",$ne=()=>"Lösenordet har återställts",Sne=()=>"Adgangskoden er blevet nulstillet",xne=()=>"Salasana on nollattu",zne=()=>"Heslo bylo resetováno",Ane=()=>"Hasło zostało zresetowane",Ene=()=>"La password è stata reimpostata",u5=((e={},t={})=>{const n=t.locale??j();return n==="en"?wne():n==="nb"?kne():n==="sv"?$ne():n==="da"?Sne():n==="fi"?xne():n==="cs"?zne():n==="pl"?Ane():Ene()}),Cne=()=>"Success",Ine=()=>"Suksess",jne=()=>"Framgång",Nne=()=>"Succes",Tne=()=>"Menestys",Pne=()=>"Úspěch",One=()=>"Sukces",Rne=()=>"Il successo",d5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Cne():n==="nb"?Ine():n==="sv"?jne():n==="da"?Nne():n==="fi"?Tne():n==="cs"?Pne():n==="pl"?One():Rne()}),Lne=()=>"Password login not available for this application",Dne=()=>"Passordinnlogging er ikke tilgjengelig for denne applikasjonen",Une=()=>"Lösenordsinloggning är inte tillgänglig för denna applikation",Bne=()=>"Adgangskode-login er ikke tilgængeligt for denne applikation",Mne=()=>"Salasanakirjautuminen ei ole käytettävissä tälle sovellukselle",qne=()=>"Přihlášení heslem není pro tuto aplikaci k dispozici",Fne=()=>"Logowanie hasłem nie jest dostępne dla tej aplikacji",Hne=()=>"Accesso con password non disponibile per questa applicazione",p5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Lne():n==="nb"?Dne():n==="sv"?Une():n==="da"?Bne():n==="fi"?Mne():n==="cs"?qne():n==="pl"?Fne():Hne()}),Vne=()=>"Password must contain at least one lowercase letter",Kne=()=>"Passordet må inneholde minst én liten bokstav",Gne=()=>"Lösenordet måste innehålla minst en liten bokstav",Wne=()=>"Adgangskoden skal indeholde mindst ét lille bogstav",Jne=()=>"Salasanan on sisällettävä vähintään yksi pieni kirjain",Zne=()=>"Heslo musí obsahovat alespoň jedno malé písmeno",Xne=()=>"Hasło musi zawierać co najmniej jedną małą literę",Yne=()=>"La password deve contenere almeno una lettera minuscola",f5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Vne():n==="nb"?Kne():n==="sv"?Gne():n==="da"?Wne():n==="fi"?Jne():n==="cs"?Zne():n==="pl"?Xne():Yne()}),Qne=()=>"Password must contain at least one number",ere=()=>"Passordet må inneholde minst ett tall",tre=()=>"Lösenordet måste innehålla minst en siffra",nre=()=>"Adgangskoden skal indeholde mindst ét tal",rre=()=>"Salasanan on sisällettävä vähintään yksi numero",ire=()=>"Heslo musí obsahovat alespoň jednu číslici",ore=()=>"Hasło musi zawierać co najmniej jedną cyfrę",sre=()=>"La password deve contenere almeno un numero",h5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Qne():n==="nb"?ere():n==="sv"?tre():n==="da"?nre():n==="fi"?rre():n==="cs"?ire():n==="pl"?ore():sre()}),are=()=>"Password must contain at least one special character",cre=()=>"Passordet må inneholde minst ett spesialtegn",lre=()=>"Lösenordet måste innehålla minst ett specialtecken",ure=()=>"Adgangskoden skal indeholde mindst ét specialtegn",dre=()=>"Salasanan on sisällettävä vähintään yksi erikoismerkki",pre=()=>"Heslo musí obsahovat alespoň jeden speciální znak",fre=()=>"Hasło musi zawierać co najmniej jeden znak specjalny",hre=()=>"La password deve contenere almeno un carattere speciale",_5=((e={},t={})=>{const n=t.locale??j();return n==="en"?are():n==="nb"?cre():n==="sv"?lre():n==="da"?ure():n==="fi"?dre():n==="cs"?pre():n==="pl"?fre():hre()}),_re=()=>"Password must contain at least one uppercase letter",mre=()=>"Passordet må inneholde minst én stor bokstav",gre=()=>"Lösenordet måste innehålla minst en stor bokstav",yre=()=>"Adgangskoden skal indeholde mindst ét stort bogstav",bre=()=>"Salasanan on sisällettävä vähintään yksi iso kirjain",vre=()=>"Heslo musí obsahovat alespoň jedno velké písmeno",wre=()=>"Hasło musi zawierać co najmniej jedną wielką literę",kre=()=>"La password deve contenere almeno una lettera maiuscola",m5=((e={},t={})=>{const n=t.locale??j();return n==="en"?_re():n==="nb"?mre():n==="sv"?gre():n==="da"?yre():n==="fi"?bre():n==="cs"?vre():n==="pl"?wre():kre()}),$re=()=>"Code not found or expired",Sre=()=>"Koden ble ikke funnet eller har utløpt",xre=()=>"Koden hittades inte eller har löpt ut",zre=()=>"Koden blev ikke fundet eller er udløbet",Are=()=>"Koodia ei löytynyt tai se on vanhentunut",Ere=()=>"Kód nebyl nalezen nebo vypršel",Cre=()=>"Kod nie został znaleziony lub wygasł",Ire=()=>"Codice non trovato o scaduto",g5=((e={},t={})=>{const n=t.locale??j();return n==="en"?$re():n==="nb"?Sre():n==="sv"?xre():n==="da"?zre():n==="fi"?Are():n==="cs"?Ere():n==="pl"?Cre():Ire()}),jre=()=>"The password could not be reset",Nre=()=>"Passordet kunne ikke tilbakestilles",Tre=()=>"Lösenordet kunde inte återställas",Pre=()=>"Adgangskoden kunne ikke nulstilles",Ore=()=>"Salasanaa ei voitu nollata",Rre=()=>"Heslo se nepodařilo resetovat",Lre=()=>"Nie udało się zresetować hasła",Dre=()=>"Impossibile reimpostare la password",y5=((e={},t={})=>{const n=t.locale??j();return n==="en"?jre():n==="nb"?Nre():n==="sv"?Tre():n==="da"?Pre():n==="fi"?Ore():n==="cs"?Rre():n==="pl"?Lre():Dre()}),Ure=()=>"Password was used recently and cannot be reused",Bre=()=>"Passordet har blitt brukt nylig og kan ikke gjenbrukes",Mre=()=>"Lösenordet har använts nyligen och kan inte återanvändas",qre=()=>"Adgangskoden er blevet brugt for nylig og kan ikke genbruges",Fre=()=>"Salasanaa on käytetty äskettäin, eikä sitä voi käyttää uudelleen",Hre=()=>"Heslo bylo nedávno použito a nelze jej znovu použít",Vre=()=>"Hasło było niedawno używane i nie może być ponownie użyte",Kre=()=>"La password è stata utilizzata di recente e non può essere riutilizzata",b5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Ure():n==="nb"?Bre():n==="sv"?Mre():n==="da"?qre():n==="fi"?Fre():n==="cs"?Hre():n==="pl"?Vre():Kre()}),Gre=e=>`Password must be at least ${e?.minLength} characters`,Wre=e=>`Passordet må være minst ${e?.minLength} tegn`,Jre=e=>`Lösenordet måste vara minst ${e?.minLength} tecken`,Zre=e=>`Adgangskoden skal være mindst ${e?.minLength} tegn`,Xre=e=>`Salasanan on oltava vähintään ${e?.minLength} merkkiä`,Yre=e=>`Heslo musí mít alespoň ${e?.minLength} znaků`,Qre=e=>`Hasło musi mieć co najmniej ${e?.minLength} znaków`,eie=e=>`La password deve contenere almeno ${e?.minLength} caratteri`,v5=((e,t={})=>{const n=t.locale??j();return n==="en"?Gre(e):n==="nb"?Wre(e):n==="sv"?Jre(e):n==="da"?Zre(e):n==="fi"?Xre(e):n==="cs"?Yre(e):n==="pl"?Qre(e):eie(e)}),tie=e=>`Change password for your ${e?.vendorName} account`,nie=e=>`Endre passord for din ${e?.vendorName} konto`,rie=e=>`Byt lösenord för ditt ${e?.vendorName} konto`,iie=e=>`Skift adgangskode til din ${e?.vendorName} konto`,oie=e=>`Vaihda salasana tilillesi ${e?.vendorName} `,sie=e=>`Změna hesla pro účet ${e?.vendorName}`,aie=e=>`Zmień hasło do konta ${e?.vendorName}`,cie=e=>`Cambia la password per il tuo account ${e?.vendorName}`,w5=((e,t={})=>{const n=t.locale??j();return n==="en"?tie(e):n==="nb"?nie(e):n==="sv"?rie(e):n==="da"?iie(e):n==="fi"?oie(e):n==="cs"?sie(e):n==="pl"?aie(e):cie(e)}),lie=e=>`Change password for your ${e?.vendorName} account`,uie=e=>`Endre passord for ${e?.vendorName} kontoen din`,die=e=>`Byt lösenord för ditt ${e?.vendorName} konto`,pie=e=>`Skift adgangskode til din ${e?.vendorName} -konto`,fie=e=>`Vaihda salasana tilillesi ${e?.vendorName} `,hie=e=>`Změna hesla k účtu ${e?.vendorName} `,_ie=e=>`Zmiana hasła do konta ${e?.vendorName} `,mie=e=>`Modifica della password dell'account ${e?.vendorName} `,k5=((e,t={})=>{const n=t.locale??j();return n==="en"?lie(e):n==="nb"?uie(e):n==="sv"?die(e):n==="da"?pie(e):n==="fi"?fie(e):n==="cs"?hie(e):n==="pl"?_ie(e):mie(e)}),gie=()=>"Phone number",yie=()=>"Telefonnummer",bie=()=>"Telefonnummer",vie=()=>"Telefonnummer",wie=()=>"Puhelinnumero",kie=()=>"Telefonní číslo",$ie=()=>"Numer telefonu",Sie=()=>"Numero di telefono",$5=((e={},t={})=>{const n=t.locale??j();return n==="en"?gie():n==="nb"?yie():n==="sv"?bie():n==="da"?vie():n==="fi"?wie():n==="cs"?kie():n==="pl"?$ie():Sie()}),xie=()=>"Privacy Policy",zie=()=>"Personvernerklæring",Aie=()=>"Integritetspolicy",Eie=()=>"Politik for beskyttelse af personlige oplysninger",Cie=()=>"Tietosuojakäytäntö",Iie=()=>"Zásady ochrany osobních údajů",jie=()=>"Polityka prywatności",Nie=()=>"Informativa sulla privacy",S5=((e={},t={})=>{const n=t.locale??j();return n==="en"?xie():n==="nb"?zie():n==="sv"?Aie():n==="da"?Eie():n==="fi"?Cie():n==="cs"?Iie():n==="pl"?jie():Nie()}),Tie=()=>"Redirecting",Pie=()=>"Omdirigerer",Oie=()=>"Du skickas vidare",Rie=()=>"Omdirigering",Lie=()=>"Uudelleenohjaus",Die=()=>"Přesměrování",Uie=()=>"Przekierowanie",Bie=()=>"Reindirizzamento",x5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Tie():n==="nb"?Pie():n==="sv"?Oie():n==="da"?Rie():n==="fi"?Lie():n==="cs"?Die():n==="pl"?Uie():Bie()}),Mie=()=>"Confirm password",qie=()=>"Bekreft passord",Fie=()=>"Bekräfta lösenord",Hie=()=>"Bekræft adgangskode",Vie=()=>"Vahvista salasana",Kie=()=>"Potvrzení hesla",Gie=()=>"Potwierdź hasło",Wie=()=>"Confermare la password",z5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Mie():n==="nb"?qie():n==="sv"?Fie():n==="da"?Hie():n==="fi"?Vie():n==="cs"?Kie():n==="pl"?Gie():Wie()}),Jie=()=>"Register a new password",Zie=()=>"Registrer et nytt passord",Xie=()=>"Registrera ett nytt lösenord",Yie=()=>"Registrer en ny adgangskode",Qie=()=>"Rekisteröi uusi salasana",eoe=()=>"Registrace nového hesla",toe=()=>"Zarejestruj nowe hasło",noe=()=>"Registrazione di una nuova password",A5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Jie():n==="nb"?Zie():n==="sv"?Xie():n==="da"?Yie():n==="fi"?Qie():n==="cs"?eoe():n==="pl"?toe():noe()}),roe=()=>"Resend code",ioe=()=>"Send kode på nytt",ooe=()=>"Skicka koden igen",soe=()=>"Send koden igen",aoe=()=>"Lähetä koodi uudelleen",coe=()=>"Opětovné odeslání kódu",loe=()=>"Wyślij ponownie kod",uoe=()=>"Reinvio del codice",E5=((e={},t={})=>{const n=t.locale??j();return n==="en"?roe():n==="nb"?ioe():n==="sv"?ooe():n==="da"?soe():n==="fi"?aoe():n==="cs"?coe():n==="pl"?loe():uoe()}),doe=()=>"Change password",poe=()=>"Endre passord",foe=()=>"Ändra lösenord",hoe=()=>"Skift adgangskode",_oe=()=>"Vaihda salasana",moe=()=>"Změna hesla",goe=()=>"Zmiana hasła",yoe=()=>"Modifica della password",C5=((e={},t={})=>{const n=t.locale??j();return n==="en"?doe():n==="nb"?poe():n==="sv"?foe():n==="da"?hoe():n==="fi"?_oe():n==="cs"?moe():n==="pl"?goe():yoe()}),boe=()=>"Enter your new password below for the email account: ",voe=()=>"Skriv inn det nye passordet for e-postkontoen nedenfor: ",woe=()=>"Ange ditt nya lösenord nedan för e-postkontot: ",koe=()=>"Indtast din nye adgangskode til e-mailkontoen nedenfor: ",$oe=()=>"Kirjoita alla oleva uusi salasanasi sähköpostitiliä varten: ",Soe=()=>"Níže zadejte nové heslo k e-mailovému účtu: ",xoe=()=>"Wprowadź poniżej nowe hasło do konta e-mail: ",zoe=()=>"Immettere di seguito la nuova password per l'account e-mail: ",I5=((e={},t={})=>{const n=t.locale??j();return n==="en"?boe():n==="nb"?voe():n==="sv"?woe():n==="da"?koe():n==="fi"?$oe():n==="cs"?Soe():n==="pl"?xoe():zoe()}),Aoe=()=>"Click the button to reset your password",Eoe=()=>"Klikk på knappen for å tilbakestille passordet ditt",Coe=()=>"Klicka på knappen för att återställa ditt lösenord",Ioe=()=>"Klik på knappen for at nulstille din adgangskode",joe=()=>"Napsauta painiketta salasanasi palauttamiseksi",Noe=()=>"Kliknutím na tlačítko obnovíte své heslo",Toe=()=>"Kliknij przycisk, aby zresetować hasło",Poe=()=>"Fare clic sul pulsante per reimpostare la password",j5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Aoe():n==="nb"?Eoe():n==="sv"?Coe():n==="da"?Ioe():n==="fi"?joe():n==="cs"?Noe():n==="pl"?Toe():Poe()}),Ooe=()=>"Click the button to reset your password",Roe=()=>"Klikk på knappen for å tilbakestille passordet ditt",Loe=()=>"Klicka på knappen för att återställa ditt lösenord",Doe=()=>"Klik på knappen for at nulstille din adgangskode",Uoe=()=>"Napsauta painiketta salasanasi palauttamiseksi",Boe=()=>"Kliknutím na tlačítko obnovíte své heslo",Moe=()=>"Kliknij przycisk, aby zresetować hasło",qoe=()=>"Fare clic sul pulsante per reimpostare la password",N5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Ooe():n==="nb"?Roe():n==="sv"?Loe():n==="da"?Doe():n==="fi"?Uoe():n==="cs"?Boe():n==="pl"?Moe():qoe()}),Foe=()=>"Reset your password",Hoe=()=>"Tilbakestill passordet ditt",Voe=()=>"Återställ ditt lösenord",Koe=()=>"Nulstil din adgangskode",Goe=()=>"Nollaa salasanasi",Woe=()=>"Obnovení hesla",Joe=()=>"Zmień hasło",Zoe=()=>"Reimpostare la password",T5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Foe():n==="nb"?Hoe():n==="sv"?Voe():n==="da"?Koe():n==="fi"?Goe():n==="cs"?Woe():n==="pl"?Joe():Zoe()}),Xoe=e=>`Change password for your ${e?.vendorName} account`,Yoe=e=>`Endre passord for ${e?.vendorName} -kontoen din`,Qoe=e=>`Byt lösenord för ditt ${e?.vendorName} konto`,ese=e=>`Skift adgangskode til din ${e?.vendorName} -konto`,tse=e=>`Vaihda salasana tilillesi ${e?.vendorName} `,nse=e=>`Změna hesla k účtu ${e?.vendorName} `,rse=e=>`Zmiana hasła do konta ${e?.vendorName} `,ise=e=>`Modifica della password dell'account ${e?.vendorName} `,P5=((e,t={})=>{const n=t.locale??j();return n==="en"?Xoe(e):n==="nb"?Yoe(e):n==="sv"?Qoe(e):n==="da"?ese(e):n==="fi"?tse(e):n==="cs"?nse(e):n==="pl"?rse(e):ise(e)}),ose=()=>"Reset password",sse=()=>"Tilbakestill passord",ase=()=>"Återställ lösenord",cse=()=>"Nulstil adgangskode",lse=()=>"Nollaa salasana",use=()=>"Obnovení hesla",dse=()=>"Resetowanie hasła",pse=()=>"Reimpostare la password",O5=((e={},t={})=>{const n=t.locale??j();return n==="en"?ose():n==="nb"?sse():n==="sv"?ase():n==="da"?cse():n==="fi"?lse():n==="cs"?use():n==="pl"?dse():pse()}),fse=()=>"Send",hse=()=>"Send",_se=()=>"Skicka",mse=()=>"Send",gse=()=>"Lähetä",yse=()=>"Odeslat",bse=()=>"Wyślij",vse=()=>"Inviare",R5=((e={},t={})=>{const n=t.locale??j();return n==="en"?fse():n==="nb"?hse():n==="sv"?_se():n==="da"?mse():n==="fi"?gse():n==="cs"?yse():n==="pl"?bse():vse()}),wse=()=>"Send me a new magic link",kse=()=>"Send meg en ny magisk lenke",$se=()=>"Skicka en ny inloggninglänk",Sse=()=>"Send mig et nyt magisk link",xse=()=>"Lähetä minulle uusi maaginen linkki",zse=()=>"Pošlete mi nový kouzelný odkaz",Ase=()=>"Wyślij mi nowy magiczny link",Ese=()=>"Inviami un nuovo link magico",L5=((e={},t={})=>{const n=t.locale??j();return n==="en"?wse():n==="nb"?kse():n==="sv"?$se():n==="da"?Sse():n==="fi"?xse():n==="cs"?zse():n==="pl"?Ase():Ese()}),Cse=()=>"Remember to check your spam folder if the email did not arrive.",Ise=()=>"Husk å sjekke søppelpostmappen din hvis e-posten ikke kom.",jse=()=>"Kom ihåg att kontrollera din skräppost om du inte kan hitta mailet vi har skickat.",Nse=()=>"Husk at tjekke din spam-mappe, hvis e-mailen ikke er kommet frem.",Tse=()=>"Muista tarkistaa roskapostikansiosi, jos sähköposti ei ole saapunut.",Pse=()=>"Pokud e-mail nedorazil, nezapomeňte zkontrolovat složku nevyžádané pošty.",Ose=()=>"Pamiętaj, aby sprawdzić folder spamu, jeśli wiadomość e-mail nie dotarła.",Rse=()=>"Ricordate di controllare la cartella spam se l'e-mail non è arrivata.",D5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Cse():n==="nb"?Ise():n==="sv"?jse():n==="da"?Nse():n==="fi"?Tse():n==="cs"?Pse():n==="pl"?Ose():Rse()}),Lse=()=>"Invalid code",Dse=()=>"Ugyldig kode",Use=()=>"Koden är inte giltig",Bse=()=>"Ugyldig kode",Mse=()=>"Virheellinen koodi",qse=()=>"Neplatný kód",Fse=()=>"Nieprawidłowy kod",Hse=()=>"Codice non valido",U5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Lse():n==="nb"?Dse():n==="sv"?Use():n==="da"?Bse():n==="fi"?Mse():n==="cs"?qse():n==="pl"?Fse():Hse()}),Vse=()=>"Session expired. Please try again.",Kse=()=>"Økten har utløpt. Vennligst prøv igjen.",Gse=()=>"Sessionen har upphört. Försök igen.",Wse=()=>"Sessionen er udløbet. Prøv venligst igen.",Jse=()=>"Istunto on vanhentunut. Yritä uudelleen.",Zse=()=>"Relace vypršela. Zkuste to prosím znovu.",Xse=()=>"Sesja wygasła. Proszę spróbować ponownie.",Yse=()=>"Sessione scaduta. Si prega di riprovare.",B5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Vse():n==="nb"?Kse():n==="sv"?Gse():n==="da"?Wse():n==="fi"?Jse():n==="cs"?Zse():n==="pl"?Xse():Yse()}),Qse=()=>"Set password",eae=()=>"Angi passord",tae=()=>"Välj lösenord",nae=()=>"Indstil adgangskode",rae=()=>"Aseta salasana",iae=()=>"Nastavení hesla",oae=()=>"Ustaw hasło",sae=()=>"Impostare la password",M5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Qse():n==="nb"?eae():n==="sv"?tae():n==="da"?nae():n==="fi"?rae():n==="cs"?iae():n==="pl"?oae():sae()}),aae=()=>"Show password",cae=()=>"Vis passord",lae=()=>"Visa lösenord",uae=()=>"Vis adgangskode",dae=()=>"Näytä salasana",pae=()=>"Zobrazit heslo",fae=()=>"Pokaż hasło",hae=()=>"Mostra password",q5=((e={},t={})=>{const n=t.locale??j();return n==="en"?aae():n==="nb"?cae():n==="sv"?lae():n==="da"?uae():n==="fi"?dae():n==="cs"?pae():n==="pl"?fae():hae()}),_ae=()=>"Sign in",mae=()=>"Logg inn",gae=()=>"Logga in",yae=()=>"Log ind",bae=()=>"Kirjaudu sisään",vae=()=>"Přihlásit se",wae=()=>"Zaloguj się",kae=()=>"Accedi",F5=((e={},t={})=>{const n=t.locale??j();return n==="en"?_ae():n==="nb"?mae():n==="sv"?gae():n==="da"?yae():n==="fi"?bae():n==="cs"?vae():n==="pl"?wae():kae()}),$ae=()=>"Signup",Sae=()=>"Påmelding",xae=()=>"Registrera dig",zae=()=>"Tilmelding",Aae=()=>"Rekisteröityminen",Eae=()=>"Registrace",Cae=()=>"Rejestracja",Iae=()=>"Iscriviti",H5=((e={},t={})=>{const n=t.locale??j();return n==="en"?$ae():n==="nb"?Sae():n==="sv"?xae():n==="da"?zae():n==="fi"?Aae():n==="cs"?Eae():n==="pl"?Cae():Iae()}),jae=()=>"Sign up successful",Nae=()=>"Vellykket registrering",Tae=()=>"Registrera dig framgångsrik",Pae=()=>"Tilmeld dig med succes",Oae=()=>"Rekisteröidy onnistuneesti",Rae=()=>"Úspěšná registrace",Lae=()=>"Rejestracja zakończona sukcesem",Dae=()=>"Iscriviti con successo",V5=((e={},t={})=>{const n=t.locale??j();return n==="en"?jae():n==="nb"?Nae():n==="sv"?Tae():n==="da"?Pae():n==="fi"?Oae():n==="cs"?Rae():n==="pl"?Lae():Dae()}),Uae=e=>`${e?.code} is your login code for ${e?.vendorName}`,Bae=e=>`${e?.code} er innloggingskoden din for ${e?.vendorName}`,Mae=e=>`${e?.code} är din inloggningskod för ${e?.vendorName}`,qae=e=>`${e?.code} er din login-kode til ${e?.vendorName}`,Fae=e=>`${e?.code} on kirjautumiskoodisi ${e?.vendorName}`,Hae=e=>`${e?.code} je váš přihlašovací kód pro ${e?.vendorName}`,Vae=e=>`${e?.code} to kod logowania do ${e?.vendorName}`,Kae=e=>`${e?.code} è il codice di accesso per ${e?.vendorName}`,K5=((e,t={})=>{const n=t.locale??j();return n==="en"?Uae(e):n==="nb"?Bae(e):n==="sv"?Mae(e):n==="da"?qae(e):n==="fi"?Fae(e):n==="cs"?Hae(e):n==="pl"?Vae(e):Kae(e)}),Gae=()=>"It appears that your Spotify account is currently linked to another Sesamy account. But fear not, we're here to guide you through the process to get this fixed.",Wae=()=>"Det ser ut til at Spotify-kontoen din for øyeblikket er koblet til en annen Sesamy-konto. Men ikke vær redd, vi er her for å veilede deg gjennom prosessen for å få dette fikset.",Jae=()=>"Det verkar som att ditt Spotify-konto för närvarande är kopplat till ett annat Sesamy-konto. Ingen fara, vi är här för att guida dig genom processen för att lösa detta.",Zae=()=>"Det ser ud til, at din Spotify-konto i øjeblikket er knyttet til en anden Sesamy-konto. Men frygt ikke, vi er her for at guide dig gennem processen med at få det løst.",Xae=()=>"Näyttää siltä, että Spotify-tilisi on tällä hetkellä yhdistetty toiseen Sesamy-tiliin. Mutta älä pelkää, me opastamme sinua prosessin läpi, jotta saat tämän korjattua.",Yae=()=>"Zdá se, že váš účet Spotify je v současné době propojen s jiným účtem Sesamy. Ale nebojte se, jsme tu, abychom vás provedli procesem, jak to napravit.",Qae=()=>"Wygląda na to, że Twoje konto Spotify jest obecnie połączone z innym kontem Sesamy. Ale nie martw się, jesteśmy tutaj, aby poprowadzić Cię przez proces, aby to naprawić.",ece=()=>"Sembra che il vostro account Spotify sia attualmente collegato a un altro account Sesamy. Ma non temete, siamo qui per guidarvi attraverso la procedura per risolvere il problema.",G5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Gae():n==="nb"?Wae():n==="sv"?Jae():n==="da"?Zae():n==="fi"?Xae():n==="cs"?Yae():n==="pl"?Qae():ece()}),tce=()=>"Go to Spotify's Content Access page",nce=()=>"Gå til Spotifys innholdstilgangsside",rce=()=>"Gå till Spotify's Content Access sida",ice=()=>"Gå til Spotifys side for adgang til indhold",oce=()=>"Siirry Spotifyn Content Access -sivulle",sce=()=>"Přejděte na stránku Spotify pro přístup k obsahu",ace=()=>"Przejdź do strony dostępu do treści Spotify",cce=()=>"Vai alla pagina di accesso ai contenuti di Spotify",W5=((e={},t={})=>{const n=t.locale??j();return n==="en"?tce():n==="nb"?nce():n==="sv"?rce():n==="da"?ice():n==="fi"?oce():n==="cs"?sce():n==="pl"?ace():cce()}),lce=()=>`Let's start by unlinking your Spotify account. Click the button below to go to Spotify's Content Access page. After you've logged in to your Spotify account, find Sesamy on the list of connected platforms. Click "Unlink" next to the Sesamy logo.`,uce=()=>'La oss starte med å koble fra Spotify-kontoen din. Klikk på knappen nedenfor for å gå til Spotifys innholdstilgang-side. Etter at du har logget på Spotify-kontoen din, finner du Sesamy på listen over tilkoblede plattformer. Klikk "Fjern kobling" ved siden av Sesamy-logoen.',dce=()=>`Vi börjar med att avlänka ditt Spotify-konto. Klicka på knappen nedan för att komma till Spotify's Content Access sida. När du har loggat in på ditt Spotify-konto, leta upp Sesamy i listan över anslutna plattformar. Klicka på "Unlink" bredvid Sesamys logotyp.`,pce=()=>'Lad os starte med at fjerne forbindelsen til din Spotify-konto. Klik på knappen nedenfor for at gå til Spotifys Content Access-side. Når du har logget ind på din Spotify-konto, skal du finde Sesamy på listen over tilsluttede platforme. Klik på "Unlink" ved siden af Sesamy-logoet.',fce=()=>'Aloitetaan poistamalla Spotify-tilisi linkitys. Klikkaa alla olevaa painiketta siirtyäksesi Spotifyn Content Access -sivulle. Kun olet kirjautunut sisään Spotify-tilillesi, etsi Sesamy yhdistettyjen alustojen luettelosta. Napsauta "Unlink" Sesamyn logon vieressä.',hce=()=>'Začněme odpojením účtu Spotify. Kliknutím na tlačítko níže přejděte na stránku přístupu k obsahu služby Spotify. Po přihlášení k účtu Spotify najděte v seznamu připojených platforem položku Sesamy. Klikněte na tlačítko "Unlink" vedle loga Sesamy.',_ce=()=>'Zacznijmy od odłączenia konta Spotify. Kliknij poniższy przycisk, aby przejść do strony dostępu do treści Spotify. Po zalogowaniu się na swoje konto Spotify, znajdź Sesamy na liście połączonych platform. Kliknij "Odłącz" obok logo Sesamy.',mce=()=>`Cominciamo con lo scollegare il vostro account Spotify. Fare clic sul pulsante sottostante per accedere alla pagina di accesso ai contenuti di Spotify. Dopo aver effettuato l'accesso al vostro account Spotify, trovate Sesamy nell'elenco delle piattaforme collegate. Fate clic su "Unlink" accanto al logo di Sesamy.`,J5=((e={},t={})=>{const n=t.locale??j();return n==="en"?lce():n==="nb"?uce():n==="sv"?dce():n==="da"?pce():n==="fi"?fce():n==="cs"?hce():n==="pl"?_ce():mce()}),gce=()=>"Step 1: Unlink Your Spotify Account",yce=()=>"Trinn 1: Koble fra Spotify-kontoen din",bce=()=>"Steg 1: Avlänka ditt Spotify-konto",vce=()=>"Trin 1: Fjern forbindelsen til din Spotify-konto",wce=()=>"Vaihe 1: Poista Spotify-tilisi linkitys",kce=()=>"Krok 1: Odpojení účtu Spotify",$ce=()=>"Krok 1: Odłącz swoje konto Spotify",Sce=()=>"Passo 1: Disconnettere l'account Spotify",Z5=((e={},t={})=>{const n=t.locale??j();return n==="en"?gce():n==="nb"?yce():n==="sv"?bce():n==="da"?vce():n==="fi"?wce():n==="cs"?kce():n==="pl"?$ce():Sce()}),xce=()=>"Once you've successfully unlinked your Spotify account, you can relink it to Sesamy. Simply repeat the steps you previously took that led you to this page.",zce=()=>"Når du har koblet fra Spotify-kontoen din, kan du koble den til Sesamy på nytt. Bare gjenta trinnene du tidligere tok som førte deg til denne siden.",Ace=()=>"När du har avlänkat ditt Spotify-konto kan du koppla det till Sesamy igen. Upprepa helt enkelt de steg du tog som ledde dig till den här sidan.",Ece=()=>"Når du har afkoblet din Spotify-konto, kan du koble den til Sesamy igen. Du skal blot gentage de trin, du tidligere har taget, og som førte dig til denne side.",Cce=()=>"Kun olet onnistuneesti irrottanut Spotify-tilisi, voit yhdistää sen uudelleen Sesamyn kanssa. Toista vain aiemmin tekemäsi vaiheet, jotka johtivat sinut tälle sivulle.",Ice=()=>"Po úspěšném odpojení účtu Spotify jej můžete znovu propojit se službou Sesamy. Stačí zopakovat předchozí kroky, které vás přivedly na tuto stránku.",jce=()=>"Po pomyślnym odłączeniu konta Spotify możesz ponownie połączyć je z Sesamy. Wystarczy powtórzyć poprzednie kroki, które doprowadziły Cię do tej strony.",Nce=()=>"Dopo aver scollegato con successo il proprio account Spotify, è possibile ricollegarlo a Sesamy. È sufficiente ripetere i passaggi precedenti che vi hanno portato a questa pagina.",X5=((e={},t={})=>{const n=t.locale??j();return n==="en"?xce():n==="nb"?zce():n==="sv"?Ace():n==="da"?Ece():n==="fi"?Cce():n==="cs"?Ice():n==="pl"?jce():Nce()}),Tce=()=>"Step 2: Relink Your Spotify Account to Sesamy",Pce=()=>"Trinn 2: Koble Spotify-kontoen din til Sesamy på nytt",Oce=()=>"Steg 2: Koppla ditt Spotify-konto till Sesamy igen",Rce=()=>"Trin 2: Relink din Spotify-konto til Sesamy",Lce=()=>"Vaihe 2: Yhdistä Spotify-tilisi uudelleen Sesamyn kanssa",Dce=()=>"Krok 2: Propojení účtu Spotify s aplikací Sesamy",Uce=()=>"Krok 2: Połącz ponownie swoje konto Spotify z Sesamy",Bce=()=>"Passo 2: ricollegare l'account Spotify a Sesamy",Y5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Tce():n==="nb"?Pce():n==="sv"?Oce():n==="da"?Rce():n==="fi"?Lce():n==="cs"?Dce():n==="pl"?Uce():Bce()}),Mce=()=>"Oops! Your Spotify Account Is Already Linked",qce=()=>"Oops! Spotify-kontoen din er allerede koblet",Fce=()=>"Oj! Ditt Spotify-konto är redan kopplat",Hce=()=>"Ups! Din Spotify-konto er allerede forbundet",Vce=()=>"Hups! Spotify-tilisi on jo linkitetty",Kce=()=>"Ups! Váš účet Spotify je již propojen",Gce=()=>"Ups! Twoje konto Spotify jest już połączone",Wce=()=>"Ops! Il tuo account Spotify è già collegato",Q5=((e={},t={})=>{const n=t.locale??j();return n==="en"?Mce():n==="nb"?qce():n==="sv"?Fce():n==="da"?Hce():n==="fi"?Vce():n==="cs"?Kce():n==="pl"?Gce():Wce()}),Jce=()=>"Success",Zce=()=>"Ferdig",Xce=()=>"Klart",Yce=()=>"Færdig",Qce=()=>"Valmis",ele=()=>"Hotovo",tle=()=>"Gotowe",nle=()=>"Il successo",e$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Jce():n==="nb"?Zce():n==="sv"?Xce():n==="da"?Yce():n==="fi"?Qce():n==="cs"?ele():n==="pl"?tle():nle()}),rle=()=>"If you have questions or need assistance, you can contact our support team",ile=()=>"Hvis du har spørsmål eller trenger hjelp, kan du kontakte supportteamet vårt",ole=()=>"Om du har frågor eller behöver hjälp kan du kontakta vårt supportteam",sle=()=>"Hvis du har spørgsmål eller brug for hjælp, kan du kontakte vores supportteam",ale=()=>"Jos sinulla on kysyttävää tai tarvitset apua, voit ottaa yhteyttä tukitiimiimme.",cle=()=>"Pokud máte dotazy nebo potřebujete pomoc, můžete se obrátit na náš tým podpory.",lle=()=>"Jeśli masz pytania lub potrzebujesz pomocy, skontaktuj się z nami",ule=()=>"Se avete domande o bisogno di assistenza, potete contattare il nostro team di supporto",t$=((e={},t={})=>{const n=t.locale??j();return n==="en"?rle():n==="nb"?ile():n==="sv"?ole():n==="da"?sle():n==="fi"?ale():n==="cs"?cle():n==="pl"?lle():ule()}),dle=()=>"Terms and Conditions",ple=()=>"Vilkår",fle=()=>"Villkor",hle=()=>"Vilkår og betingelser",_le=()=>"Ehdot ja edellytykset",mle=()=>"Podmínky a pravidla",gle=()=>"Zasady i warunki",yle=()=>"Termini e condizioni",n$=((e={},t={})=>{const n=t.locale??j();return n==="en"?dle():n==="nb"?ple():n==="sv"?fle():n==="da"?hle():n==="fi"?_le():n==="cs"?mle():n==="pl"?gle():yle()}),ble=()=>"Too many failed login attempts. Please try again later.",vle=()=>"For mange mislykkede påloggingsforsøk. Vennligst prøv igjen senere.",wle=()=>"För många misslyckade inloggningsförsök. Försök igen senare.",kle=()=>"For mange mislykkede loginforsøg. Prøv venligst igen senere.",$le=()=>"Liian monta epäonnistunutta kirjautumisyritystä. Yritä myöhemmin uudelleen.",Sle=()=>"Příliš mnoho neúspěšných pokusů o přihlášení. Zkuste to prosím později.",xle=()=>"Zbyt wiele nieudanych prób logowania. Spróbuj ponownie później.",zle=()=>"Troppi tentativi di accesso falliti. Riprova più tardi.",r$=((e={},t={})=>{const n=t.locale??j();return n==="en"?ble():n==="nb"?vle():n==="sv"?wle():n==="da"?kle():n==="fi"?$le():n==="cs"?Sle():n==="pl"?xle():zle()}),Ale=()=>"Something went wrong. Please try again.",Ele=()=>"Noe gikk galt. Vennligst prøv igjen.",Cle=()=>"Något gick fel. Vänligen försök igen.",Ile=()=>"Noget gik galt. Prøv venligst igen.",jle=()=>"Jokin meni pieleen. Yritä uudelleen.",Nle=()=>"Něco se pokazilo. Zkuste to prosím znovu.",Tle=()=>"Coś poszło nie tak. Spróbuj ponownie.",Ple=()=>"Qualcosa è andato storto. Riprovare.",i$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Ale():n==="nb"?Ele():n==="sv"?Cle():n==="da"?Ile():n==="fi"?jle():n==="cs"?Nle():n==="pl"?Tle():Ple()}),Ole=()=>"Unlink",Rle=()=>"Koble fra",Lle=()=>"Koppla bort",Dle=()=>"Frakobl",Ule=()=>"Irrota",Ble=()=>"Odpojit",Mle=()=>"Odłącz",qle=()=>"Scollega",o$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Ole():n==="nb"?Rle():n==="sv"?Lle():n==="da"?Dle():n==="fi"?Ule():n==="cs"?Ble():n==="pl"?Mle():qle()}),Fle=()=>"Your email address needs validating. We have sent a new email to your inbox",Hle=()=>"E-postadressen din må bekreftes. Vi har sendt en ny e-post til innboksen din.",Vle=()=>"Din e-postadress behöver valideras. Vi har skickat ett nytt e-postmeddelande till din inkorg",Kle=()=>"Din e-mailadresse skal valideres. Vi har sendt en ny e-mail til din indbakke",Gle=()=>"Sähköpostiosoitteesi on vahvistettava. Olemme lähettäneet uuden sähköpostiviestin sähköpostiisi.",Wle=()=>"Vaši e-mailovou adresu je třeba ověřit. Do vaší e-mailové schránky jsme odeslali nový e-mail.",Jle=()=>"Twój adres e-mail wymaga weryfikacji. Wysłaliśmy nową wiadomość e-mail na Twoją skrzynkę odbiorczą",Zle=()=>"Il tuo indirizzo e-mail deve essere convalidato. Abbiamo inviato una nuova e-mail alla tua casella di posta.",s$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Fle():n==="nb"?Hle():n==="sv"?Vle():n==="da"?Kle():n==="fi"?Gle():n==="cs"?Wle():n==="pl"?Jle():Zle()}),Xle=()=>"Update email",Yle=()=>"Oppdater e-post",Qle=()=>"Ändra e-post",eue=()=>"Opdatering af e-mail",tue=()=>"Päivitä sähköposti",nue=()=>"Aktualizace e-mailu",rue=()=>"Aktualizacja wiadomości e-mail",iue=()=>"Aggiornamento e-mail",a$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Xle():n==="nb"?Yle():n==="sv"?Qle():n==="da"?eue():n==="fi"?tue():n==="cs"?nue():n==="pl"?rue():iue()}),oue=()=>"User account does not exist",sue=()=>"Brukerkonto eksisterer ikke",aue=()=>"Kontot existerar inte",cue=()=>"Brugerkontoen findes ikke",lue=()=>"Käyttäjätiliä ei ole olemassa",uue=()=>"Uživatelský účet neexistuje",due=()=>"Konto użytkownika nie istnieje",pue=()=>"L'account utente non esiste",c$=((e={},t={})=>{const n=t.locale??j();return n==="en"?oue():n==="nb"?sue():n==="sv"?aue():n==="da"?cue():n==="fi"?lue():n==="cs"?uue():n==="pl"?due():pue()}),fue=()=>"User account does not exist",hue=()=>"Brukerkonto eksisterer ikke",_ue=()=>"Kontot existerar inte",mue=()=>"Brugerkontoen findes ikke",gue=()=>"Käyttäjätiliä ei ole olemassa",yue=()=>"Uživatelský účet neexistuje",bue=()=>"Konto użytkownika nie istnieje",vue=()=>"L'account utente non esiste",l$=((e={},t={})=>{const n=t.locale??j();return n==="en"?fue():n==="nb"?hue():n==="sv"?_ue():n==="da"?mue():n==="fi"?gue():n==="cs"?yue():n==="pl"?bue():vue()}),wue=()=>"We could not find a user with the provided email address. Please, try again.",kue=()=>"Vi kunne ikke finne en bruker med den oppgitte e-postadressen. Vær så snill, prøv på nytt.",$ue=()=>"Vi kan inte hitta en användare med denna eposten. Vänligen försök igen.",Sue=()=>"Vi kunne ikke finde en bruger med den angivne e-mailadresse. Prøv venligst igen.",xue=()=>"Emme löytäneet käyttäjää, jolla on annettu sähköpostiosoite. Yritä uudelleen.",zue=()=>"Nepodařilo se nám najít uživatele se zadanou e-mailovou adresou. Zkuste to prosím znovu.",Aue=()=>"Nie mogliśmy znaleźć użytkownika o podanym adresie e-mail. Spróbuj ponownie.",Eue=()=>"Non è stato possibile trovare un utente con l'indirizzo e-mail fornito. Si prega di riprovare.",u$=((e={},t={})=>{const n=t.locale??j();return n==="en"?wue():n==="nb"?kue():n==="sv"?$ue():n==="da"?Sue():n==="fi"?xue():n==="cs"?zue():n==="pl"?Aue():Eue()}),Cue=()=>"Try again.",Iue=()=>"Prøv igjen.",jue=()=>"Försök igen.",Nue=()=>"Prøv igen.",Tue=()=>"Yritä uudelleen.",Pue=()=>"Zkuste to znovu.",Oue=()=>"Spróbuj ponownie.",Rue=()=>"Riprova.",d$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Cue():n==="nb"?Iue():n==="sv"?jue():n==="da"?Nue():n==="fi"?Tue():n==="cs"?Pue():n==="pl"?Oue():Rue()}),Mr=e=>`Username must be at most ${e?.max} characters`,Lue=Mr,Due=Mr,Uue=Mr,Bue=Mr,Mue=Mr,que=Mr,Fue=Mr,p$=((e,t={})=>{const n=t.locale??j();return n==="en"?Mr(e):n==="nb"?Lue(e):n==="sv"?Due(e):n==="da"?Uue(e):n==="fi"?Bue(e):n==="cs"?Mue(e):n==="pl"?que(e):Fue(e)}),qr=e=>`Username must be at least ${e?.min} characters`,Hue=qr,Vue=qr,Kue=qr,Gue=qr,Wue=qr,Jue=qr,Zue=qr,f$=((e,t={})=>{const n=t.locale??j();return n==="en"?qr(e):n==="nb"?Hue(e):n==="sv"?Vue(e):n==="da"?Kue(e):n==="fi"?Gue(e):n==="cs"?Wue(e):n==="pl"?Jue(e):Zue(e)}),Xue=()=>"Validate code",Yue=()=>"Bekreft koden",Que=()=>"Validera kod",ede=()=>"Valider koden",tde=()=>"Validoi koodi",nde=()=>"Ověření kódu",rde=()=>"Sprawdź poprawność kodu",ide=()=>"Convalida del codice",h$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Xue():n==="nb"?Yue():n==="sv"?Que():n==="da"?ede():n==="fi"?tde():n==="cs"?nde():n==="pl"?rde():ide()}),ode=()=>"Check your inbox for email validation instructions.",sde=()=>"Sjekk innboksen din for instruksjoner om e-postvalidering.",ade=()=>"Kontrollera din inkorg för instruktioner om validering av e-post.",cde=()=>"Tjek din indbakke for instruktioner om validering af e-mail.",lde=()=>"Tarkista sähköpostin vahvistusohjeet postilaatikostasi.",ude=()=>"Pokyny k ověření e-mailu najdete ve své e-mailové schránce.",dde=()=>"Sprawdź swoją skrzynkę odbiorczą, aby uzyskać instrukcje dotyczące weryfikacji wiadomości e-mail.",pde=()=>"Controllate la vostra casella di posta per le istruzioni di convalida dell'e-mail.",_$=((e={},t={})=>{const n=t.locale??j();return n==="en"?ode():n==="nb"?sde():n==="sv"?ade():n==="da"?cde():n==="fi"?lde():n==="cs"?ude():n==="pl"?dde():pde()}),fde=()=>"Signed up",hde=()=>"Registrerte seg",_de=()=>"Registrerad",mde=()=>"Tilmeldte sig",gde=()=>"Rekisteröitynyt",yde=()=>"Zaregistrovali jste se",bde=()=>"Zarejestrowany",vde=()=>"Iscritta",m$=((e={},t={})=>{const n=t.locale??j();return n==="en"?fde():n==="nb"?hde():n==="sv"?_de():n==="da"?mde():n==="fi"?gde():n==="cs"?yde():n==="pl"?bde():vde()}),wde=()=>"Click the button to verify your email address",kde=()=>"Klikk på knappen for å bekrefte e-postadressen din",$de=()=>"Klicka på knappen för att verifiera din e-postadress",Sde=()=>"Klik på knappen for at bekræfte din e-mailadresse",xde=()=>"Vahvista sähköpostiosoitteesi napsauttamalla painiketta",zde=()=>"Klikněte na tlačítko pro ověření e-mailové adresy",Ade=()=>"Kliknij przycisk, aby zweryfikować swój adres e-mail",Ede=()=>"Fare clic sul pulsante per verificare l'indirizzo e-mail",g$=((e={},t={})=>{const n=t.locale??j();return n==="en"?wde():n==="nb"?kde():n==="sv"?$de():n==="da"?Sde():n==="fi"?xde():n==="cs"?zde():n==="pl"?Ade():Ede()}),Cde=()=>"Validate your email address",Ide=()=>"Bekreft e-postadressen din",jde=()=>"Bekräfta din e-postadress",Nde=()=>"Bekræft din e-mailadresse",Tde=()=>"Vahvista sähköpostiosoitteesi",Pde=()=>"Ověřte svou e-mailovou adresu",Ode=()=>"Potwierdź swój adres e-mail",Rde=()=>"Convalidare l'indirizzo e-mail",y$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Cde():n==="nb"?Ide():n==="sv"?jde():n==="da"?Nde():n==="fi"?Tde():n==="cs"?Pde():n==="pl"?Ode():Rde()}),Lde=()=>"Validate your email address",Dde=()=>"Bekreft e-postadressen din",Ude=()=>"Bekräfta din e-postadress",Bde=()=>"Bekræft din e-mailadresse",Mde=()=>"Vahvista sähköpostiosoitteesi",qde=()=>"Ověřte svou e-mailovou adresu",Fde=()=>"Potwierdź swój adres e-mail",Hde=()=>"Convalidare l'indirizzo e-mail",b$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Lde():n==="nb"?Dde():n==="sv"?Ude():n==="da"?Bde():n==="fi"?Mde():n==="cs"?qde():n==="pl"?Fde():Hde()}),Vde=()=>"Verify account",Kde=()=>"Bekreft konto",Gde=()=>"Verifiera konto",Wde=()=>"Bekræft konto",Jde=()=>"Vahvista tili",Zde=()=>"Ověření účtu",Xde=()=>"Zweryfikuj konto",Yde=()=>"Verifica dell'account",v$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Vde():n==="nb"?Kde():n==="sv"?Gde():n==="da"?Wde():n==="fi"?Jde():n==="cs"?Zde():n==="pl"?Xde():Yde()}),Qde=()=>"Verify your email",epe=()=>"Bekreft e-posten din",tpe=()=>"Ange engångskod",npe=()=>"Bekræft din e-mail",rpe=()=>"Vahvista sähköpostiosoitteesi",ipe=()=>"Ověření e-mailu",ope=()=>"Zweryfikuj swój adres e-mail",spe=()=>"Verificare l'e-mail",w$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Qde():n==="nb"?epe():n==="sv"?tpe():n==="da"?npe():n==="fi"?rpe():n==="cs"?ipe():n==="pl"?ope():spe()}),ape=()=>"Welcome",cpe=()=>"Velkommen",lpe=()=>"Välkommen",upe=()=>"Velkommen",dpe=()=>"Tervetuloa",ppe=()=>"Vítejte na",fpe=()=>"Witamy",hpe=()=>"Benvenuti",k$=((e={},t={})=>{const n=t.locale??j();return n==="en"?ape():n==="nb"?cpe():n==="sv"?lpe():n==="da"?upe():n==="fi"?dpe():n==="cs"?ppe():n==="pl"?fpe():hpe()}),_pe=e=>`Welcome to your ${e?.vendorName} account!`,mpe=e=>`Velkommen til din brukerkonto hos ${e?.vendorName}!`,gpe=e=>`Välkommen till ditt ${e?.vendorName}-konto!`,ype=e=>`Velkommen til din ${e?.vendorName} konto!`,bpe=e=>`Tervetuloa tilillesi ${e?.vendorName}!`,vpe=e=>`Vítejte na svém účtu ${e?.vendorName}!`,wpe=e=>`Witamy na koncie ${e?.vendorName}!`,kpe=e=>`Benvenuto nel tuo account ${e?.vendorName}!`,$$=((e,t={})=>{const n=t.locale??j();return n==="en"?_pe(e):n==="nb"?mpe(e):n==="sv"?gpe(e):n==="da"?ype(e):n==="fi"?bpe(e):n==="cs"?vpe(e):n==="pl"?wpe(e):kpe(e)}),$pe=e=>`Please check your email at <0>${e?.email}</0> and enter the six-digit code that we've sent you.`,Spe=e=>`Vennligst sjekk e-posten din på <0>${e?.email}</0> og skriv inn den sekssifrede koden som vi har sendt deg.`,xpe=e=>`Vänligen kontrollera din e-post för <0>${e?.email}</0> och ange den sexsiffriga koden som vi har skickat till dig.`,zpe=e=>`Tjek venligst din e-mail på <0>${e?.email}</0> og indtast den sekscifrede kode, vi har sendt dig.`,Ape=e=>`Tarkista sähköpostisi osoitteesta <0>${e?.email}</0> ja syötä lähettämämme kuusinumeroinen koodi.`,Epe=e=>`Zkontrolujte si prosím svůj e-mail na adrese <0>${e?.email}</0> a zadejte šestimístný kód, který jsme vám zaslali.`,Cpe=e=>`Sprawdź swoją skrzynkę e-mail pod adresem <0>${e?.email}</0> i wprowadź sześciocyfrowy kod, który wysłaliśmy.`,Ipe=e=>`Controllate la vostra e-mail all'indirizzo <0>${e?.email}</0> e inserisca il codice a sei cifre che le abbiamo inviato.`,S$=((e,t={})=>{const n=t.locale??j();return n==="en"?$pe(e):n==="nb"?Spe(e):n==="sv"?xpe(e):n==="da"?zpe(e):n==="fi"?Ape(e):n==="cs"?Epe(e):n==="pl"?Cpe(e):Ipe(e)}),jpe=()=>"Continue with this account",Npe=()=>"Fortsett med denne kontoen",Tpe=()=>"Fortsätt med konto",Ppe=()=>"Fortsæt med denne konto",Ope=()=>"Jatka tällä tilillä",Rpe=()=>"Pokračujte s tímto účtem",Lpe=()=>"Kontynuuj korzystanie z tego konta",Dpe=()=>"Continuare con questo account",x$=((e={},t={})=>{const n=t.locale??j();return n==="en"?jpe():n==="nb"?Npe():n==="sv"?Tpe():n==="da"?Ppe():n==="fi"?Ope():n==="cs"?Rpe():n==="pl"?Lpe():Dpe()}),Upe=e=>`Yes, continue with ${e?.text}`,Bpe=e=>`Ja, fortsett med ${e?.text}`,Mpe=e=>`Ja, fortsätt med ${e?.text}`,qpe=e=>`Ja, fortsæt med ${e?.text}`,Fpe=e=>`Kyllä, jatka ${e?.text}`,Hpe=e=>`Ano, pokračujte ${e?.text}`,Vpe=e=>`Tak, kontynuuj ${e?.text}`,Kpe=e=>`Sì, continuare con ${e?.text}`,z$=((e,t={})=>{const n=t.locale??j();return n==="en"?Upe(e):n==="nb"?Bpe(e):n==="sv"?Mpe(e):n==="da"?qpe(e):n==="fi"?Fpe(e):n==="cs"?Hpe(e):n==="pl"?Vpe(e):Kpe(e)}),Gpe=()=>"Yes, continue with existing account",Wpe=()=>"Ja, fortsett med eksisterende konto",Jpe=()=>"Ja, fortsätt med detta kontot",Zpe=()=>"Ja, fortsæt med eksisterende konto",Xpe=()=>"Kyllä, jatka olemassa olevalla tilillä",Ype=()=>"Ano, pokračujte ve stávajícím účtu",Qpe=()=>"Tak, kontynuuj korzystanie z istniejącego konta",efe=()=>"Sì, continuare con l'account esistente",A$=((e={},t={})=>{const n=t.locale??j();return n==="en"?Gpe():n==="nb"?Wpe():n==="sv"?Jpe():n==="da"?Zpe():n==="fi"?Xpe():n==="cs"?Ype():n==="pl"?Qpe():efe()}),tfe=Object.freeze(Object.defineProperty({__proto__:null,"Server error: Invalid code":U5,account_detected:F4,account_page_description:H4,account_title:V4,account_with_sso_provider:K4,agree_to:G4,already_have_account:W4,and:J4,auth_method_email:Z4,auth_method_email_or_phone:X4,auth_method_email_or_username:Y4,auth_method_phone:Q4,auth_method_username:e6,callback_url_mismatch:t6,callback_url_not_allowed:n6,change_email:r6,check_account_continue_question:i6,check_account_description:o6,check_account_description_fallback:s6,check_account_error:a6,check_account_logged_in_as:c6,check_account_title:l6,check_email_title:u6,click_to_sign_up_description:d6,code_email_enter_code:p6,code_email_subject:f6,code_email_title:h6,code_expired:_6,code_invalid:m6,code_sent_template:g6,code_used:y6,code_valid_30_minutes:b6,configuration_error_message:v6,confirm_password:w6,confirm_unlink:k6,contact_support:$6,contact_us:S6,continue:x6,continue_social_login:z6,continue_with:A6,continue_with_sso_provider_headline:E6,copyright:C6,copyright_sesamy:I6,create_account_description:j6,create_account_email_invalid:N6,create_account_passwords_didnt_match:T6,create_account_title:P6,create_account_weak_password:O6,create_new_account_link:R6,create_password_account_title:L6,current_email:U6,currently_logged_in_as:B6,dont_have_account:D6,edit:M6,email:q6,email_already_taken:F6,email_changed_to_template:H6,email_or_phone_placeholder:V6,email_or_username_placeholder:K6,email_placeholder:G6,email_validated:J6,email_validated_cta:Z6,email_verification_for_signup_sent_description:X6,email_verification_for_signup_sent_title:Y6,embedded_browser_detected:Q6,embedded_browser_warning:e8,enter_a_code_btn:t8,enter_code_description:n8,enter_code_label:r8,enter_code_placeholder:i8,enter_code_title:o8,enter_email_for_verification_description:s8,enter_new_email:a8,enter_new_password_placeholder:c8,enter_password:l8,enter_password_description:u8,enter_password_signing_in_as:d8,enter_your_password_btn:p8,error_page_title:f8,expired_code:h8,fokus_info_message:_8,forgot_password_cta:m8,forgot_password_description:g8,forgot_password_email_sent:y8,forgot_password_link:b8,forgot_password_title:v8,go_back:w8,hide_password:k8,incognito_mode_detected:$8,incognito_mode_warning:S8,invalid_email:x8,invalid_identifier:z8,invalid_password:A8,invalid_session_body:E8,invalid_session_title:C8,link_email_click_to_login:j8,link_email_login:N8,link_email_or_enter_code:T8,link_page_body:P8,link_page_headline:O8,linked_accounts:I8,log_in:R8,logged_in_as:L8,login:D8,login_description:U8,login_description_code:B8,login_description_combined:M8,login_description_link:q8,login_description_phone:F8,login_description_template:H8,login_id_button_text:V8,login_id_description:K8,login_id_federated_connection_button_text:G8,login_id_terms_and_conditions_text:W8,login_id_title:J8,logout:Z8,new_email:X8,new_email_code_info:Y8,no_code:n5,no_email:Q8,no_email_address:e5,no_email_or_username:t5,no_password:r5,no_use_another:o5,no_username:i5,or:s5,password:a5,password_contains_forbidden_word:c5,password_contains_personal_info:l5,password_has_been_reset:u5,password_has_been_reset_title:d5,password_login_not_available:p5,password_missing_lowercase:f5,password_missing_number:h5,password_missing_special:_5,password_missing_uppercase:m5,password_reset_code_expired:g5,password_reset_failed:y5,password_reset_subject:w5,password_reset_title:k5,password_reused:b5,password_too_short:v5,phone_placeholder:$5,privacy_policy:S5,redirecting:x5,reenter_new_password_placeholder:z5,register_password_account:A5,resend_code:E5,reset_password_cta:C5,reset_password_description:I5,reset_password_email_click_to_reset:j5,reset_password_email_cta:N5,reset_password_email_reset:T5,reset_password_subject:P5,reset_password_title:O5,send:R5,send_me_a_new_magic_link:L5,sent_code_spam:D5,session_expired:B5,set_password:M5,show_password:q5,sign_in:F5,signup:H5,signup_success:V5,sms_code_text:K5,spotify_already_linked_body:G5,spotify_already_linked_cta:W5,spotify_already_linked_step1_body:J5,spotify_already_linked_step1_title:Z5,spotify_already_linked_step2_body:X5,spotify_already_linked_step2_title:Y5,spotify_already_linked_title:Q5,success:e$,support_info:t$,terms:n$,too_many_failed_logins:r$,unexpected_error_try_again:i$,unlink:o$,unverified_email:s$,update_email:a$,user_account_does_not_exist:c$,user_not_found:l$,user_not_found_body:u$,user_not_found_cta:d$,username_placeholder:W6,username_too_long:p$,username_too_short:f$,validate_code:h$,validate_email_body:_$,validate_email_title:m$,verify_email_click_to_verify:g$,verify_email_subject:y$,verify_email_title:b$,verify_email_verify:v$,verify_your_email:w$,we_sent_a_code_to:S$,welcome:k$,welcome_to_your_account:$$,yes_continue:x$,yes_continue_with:z$,yes_continue_with_existing_account:A$},Symbol.toStringTag,{value:"Module"})),nfe=Object.freeze(Object.defineProperty({__proto__:null,"Server error: Invalid code":U5,account_detected:F4,account_page_description:H4,account_title:V4,account_with_sso_provider:K4,agree_to:G4,already_have_account:W4,and:J4,auth_method_email:Z4,auth_method_email_or_phone:X4,auth_method_email_or_username:Y4,auth_method_phone:Q4,auth_method_username:e6,callback_url_mismatch:t6,callback_url_not_allowed:n6,change_email:r6,check_account_continue_question:i6,check_account_description:o6,check_account_description_fallback:s6,check_account_error:a6,check_account_logged_in_as:c6,check_account_title:l6,check_email_title:u6,click_to_sign_up_description:d6,code_email_enter_code:p6,code_email_subject:f6,code_email_title:h6,code_expired:_6,code_invalid:m6,code_sent_template:g6,code_used:y6,code_valid_30_minutes:b6,configuration_error_message:v6,confirm_password:w6,confirm_unlink:k6,contact_support:$6,contact_us:S6,continue:x6,continue_social_login:z6,continue_with:A6,continue_with_sso_provider_headline:E6,copyright:C6,copyright_sesamy:I6,create_account_description:j6,create_account_email_invalid:N6,create_account_passwords_didnt_match:T6,create_account_title:P6,create_account_weak_password:O6,create_new_account_link:R6,create_password_account_title:L6,current_email:U6,currently_logged_in_as:B6,dont_have_account:D6,edit:M6,email:q6,email_already_taken:F6,email_changed_to_template:H6,email_or_phone_placeholder:V6,email_or_username_placeholder:K6,email_placeholder:G6,email_validated:J6,email_validated_cta:Z6,email_verification_for_signup_sent_description:X6,email_verification_for_signup_sent_title:Y6,embedded_browser_detected:Q6,embedded_browser_warning:e8,enter_a_code_btn:t8,enter_code_description:n8,enter_code_label:r8,enter_code_placeholder:i8,enter_code_title:o8,enter_email_for_verification_description:s8,enter_new_email:a8,enter_new_password_placeholder:c8,enter_password:l8,enter_password_description:u8,enter_password_signing_in_as:d8,enter_your_password_btn:p8,error_page_title:f8,expired_code:h8,fokus_info_message:_8,forgot_password_cta:m8,forgot_password_description:g8,forgot_password_email_sent:y8,forgot_password_link:b8,forgot_password_title:v8,go_back:w8,hide_password:k8,incognito_mode_detected:$8,incognito_mode_warning:S8,invalid_email:x8,invalid_identifier:z8,invalid_password:A8,invalid_session_body:E8,invalid_session_title:C8,link_email_click_to_login:j8,link_email_login:N8,link_email_or_enter_code:T8,link_page_body:P8,link_page_headline:O8,linked_accounts:I8,log_in:R8,logged_in_as:L8,login:D8,login_description:U8,login_description_code:B8,login_description_combined:M8,login_description_link:q8,login_description_phone:F8,login_description_template:H8,login_id_button_text:V8,login_id_description:K8,login_id_federated_connection_button_text:G8,login_id_terms_and_conditions_text:W8,login_id_title:J8,logout:Z8,m:tfe,new_email:X8,new_email_code_info:Y8,no_code:n5,no_email:Q8,no_email_address:e5,no_email_or_username:t5,no_password:r5,no_use_another:o5,no_username:i5,or:s5,password:a5,password_contains_forbidden_word:c5,password_contains_personal_info:l5,password_has_been_reset:u5,password_has_been_reset_title:d5,password_login_not_available:p5,password_missing_lowercase:f5,password_missing_number:h5,password_missing_special:_5,password_missing_uppercase:m5,password_reset_code_expired:g5,password_reset_failed:y5,password_reset_subject:w5,password_reset_title:k5,password_reused:b5,password_too_short:v5,phone_placeholder:$5,privacy_policy:S5,redirecting:x5,reenter_new_password_placeholder:z5,register_password_account:A5,resend_code:E5,reset_password_cta:C5,reset_password_description:I5,reset_password_email_click_to_reset:j5,reset_password_email_cta:N5,reset_password_email_reset:T5,reset_password_subject:P5,reset_password_title:O5,send:R5,send_me_a_new_magic_link:L5,sent_code_spam:D5,session_expired:B5,set_password:M5,show_password:q5,sign_in:F5,signup:H5,signup_success:V5,sms_code_text:K5,spotify_already_linked_body:G5,spotify_already_linked_cta:W5,spotify_already_linked_step1_body:J5,spotify_already_linked_step1_title:Z5,spotify_already_linked_step2_body:X5,spotify_already_linked_step2_title:Y5,spotify_already_linked_title:Q5,success:e$,support_info:t$,terms:n$,too_many_failed_logins:r$,unexpected_error_try_again:i$,unlink:o$,unverified_email:s$,update_email:a$,user_account_does_not_exist:c$,user_not_found:l$,user_not_found_body:u$,user_not_found_cta:d$,username_placeholder:W6,username_too_long:p$,username_too_short:f$,validate_code:h$,validate_email_body:_$,validate_email_title:m$,verify_email_click_to_verify:g$,verify_email_subject:y$,verify_email_title:b$,verify_email_verify:v$,verify_your_email:w$,we_sent_a_code_to:S$,welcome:k$,welcome_to_your_account:$$,yes_continue:x$,yes_continue_with:z$,yes_continue_with_existing_account:A$},Symbol.toStringTag,{value:"Module"}));function rfe(e,t){if(!t)return e;let n=e;for(const[r,i]of Object.entries(t))if(i!==void 0){const s=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");n=n.replace(new RegExp(`\\$\\{${s}\\}`,"g"),String(i)).replace(new RegExp(`#\\{${s}\\}`,"g"),String(i)).replace(new RegExp(`\\{${s}\\}`,"g"),String(i))}return n}function ife(e){const t=e.split("-")[0]?.toLowerCase()||oh;return tm.includes(t)?t:oh}function ofe(e,t){const n={};if(!e)return n;const r=t?t.replace(/-/g,"_").toLowerCase()+"_":"";for(const[i,s]of Object.entries(e))if(typeof s=="string"){const a=i.replace(/([A-Z])/g,"_$1").replace(/-/g,"_").toLowerCase().replace(/^_/,""),c=r+a;n[c]=s,n[a]=s}return n}function sfe(e,t){fL(()=>e);const n={};for(const[r,i]of Object.entries(nfe))typeof i=="function"?n[r]=s=>{const a=t[r];return a!==void 0?rfe(a,s):i(s)}:n[r]=i;return n}function tt(e,t,n){const r=ife(e),i=ofe(t,n),s=sfe(r,i);return{locale:r,m:s}}async function eo(e){const{branding:t,state:n,errors:r,messages:i,data:s,customText:a,routePrefix:c}=e,l=e.language||"en",{m:u}=tt(l,a),d=s?.email,f=d?d.replace(/(.{2})(.*)(@.*)/,"$1***$3"):"",p=f?u.code_sent_template({username:`<strong>${jn(f)}</strong>`}):u.enter_code_description(),h=[{id:"code",type:"TEXT",category:"FIELD",visible:!0,label:u.enter_code_label(),config:{placeholder:u.enter_code_placeholder(),max_length:6},required:!0,order:0,hint:r?.code},{id:"submit",type:"NEXT_BUTTON",category:"BLOCK",visible:!0,config:{text:u.continue()},order:1},{id:"resend",type:"RESEND_BUTTON",category:"BLOCK",visible:!0,config:{text:u.resend_code()},order:2}];return{screen:{name:"enter-code",action:`${c}/enter-code?state=${encodeURIComponent(n)}`,method:"POST",title:u.enter_code_title(),description:p,components:h,messages:i?.map(g=>({text:g.text,type:g.type})),links:[{id:"back",text:"",linkText:u.go_back(),href:`${c}/login/identifier?state=${encodeURIComponent(n)}`}]},branding:t}}const afe={id:"enter-code",name:"Enter Code",description:"OTP code verification screen",handler:{get:eo,post:async(e,t)=>{const{ctx:n,client:r,state:i}=e,s=t.code?.trim(),a=e.language||"en",{m:c}=tt(a,e.customText);if(!s){const u=c.no_code();return{error:u,screen:await eo({...e,errors:{code:u}})}}const l=await n.env.data.loginSessions.get(r.tenant.id,i);if(!l||!l.authParams?.username){const u=c.session_expired();return{error:u,screen:await eo({...e,errors:{code:u}})}}try{const u=await xd(n,{client_id:r.client_id,authParams:l.authParams,username:l.authParams.username,otp:s});if(u instanceof Response){const f=u.headers.get("location"),p=u.headers.getSetCookie?.()||[];return f?{redirect:f,cookies:p}:{response:u}}const d=c.unexpected_error_try_again();return{error:d,screen:await eo({...e,errors:{code:d}})}}catch(u){let d=!1;try{d=!!await Xn({userAdapter:n.env.data.users,tenant_id:r.tenant.id,username:l.authParams.username,provider:Te})}catch{}const f=u.message||c.unexpected_error_try_again();return{error:f,screen:await eo({...e,errors:{code:f},data:{...e.data,hasPasswordLogin:d}})}}}}};async function Ts(e){const{branding:t,state:n,errors:r,data:i,customText:s,routePrefix:a}=e,c=e.language||"en",{m:l}=tt(c,s),u=i?.email,d=r?.password,f=u?l.enter_password_signing_in_as({email:`<strong>${jn(u)}</strong>`}):void 0,p=[{id:"password",type:"PASSWORD",category:"FIELD",visible:!0,label:l.password(),config:{placeholder:l.enter_password()},required:!0,sensitive:!0,order:0,hint:d},{id:"forgot-password-link",type:"RICH_TEXT",category:"BLOCK",visible:!0,config:{content:`<div class="forgot-password-link"><a href="${a}/forgot-password?state=${encodeURIComponent(n)}">${l.forgot_password_link()}</a></div>`},order:1},{id:"submit",type:"NEXT_BUTTON",category:"BLOCK",visible:!0,config:{text:l.continue()},order:2}];return{screen:{name:"enter-password",action:`${a}/enter-password?state=${encodeURIComponent(n)}`,method:"POST",title:l.enter_password(),description:f,components:p,links:[{id:"back",text:"",linkText:l.go_back(),href:`${a}/login/identifier?state=${encodeURIComponent(n)}`}]},branding:t}}const cfe={id:"enter-password",name:"Enter Password",description:"Password authentication screen",handler:{get:Ts,post:async(e,t)=>{const{ctx:n,client:r,state:i}=e,s=t.password?.trim();if(!s)return{error:"Password is required",screen:await Ts({...e,errors:{password:"Password is required"}})};const a=await n.env.data.loginSessions.get(r.tenant.id,i);if(!a||!a.authParams?.username)return{error:"Session expired",screen:await Ts({...e,errors:{password:"Session expired. Please start over."}})};try{const c=await tc(n,r,{...a.authParams,password:s},a),l=c.headers.get("location"),u=c.headers.getSetCookie?.()||[];return l?{redirect:l,cookies:u}:{response:c}}catch(c){const l=c,u=e.language||"en",{m:d}=tt(u,e.customText);let f=l.message||d.invalid_password();return l.code==="INVALID_PASSWORD"||l.code==="USER_NOT_FOUND"?f=d.invalid_password():l.code==="EMAIL_NOT_VERIFIED"?f=d.unverified_email():l.code==="TOO_MANY_FAILED_LOGINS"&&(f=d.too_many_failed_logins()),{error:f,screen:await Ts({...e,errors:{password:f}})}}}}};function lfe(e,t){const{connections:n}=e,r=n.filter(l=>l.strategy!=="email"&&l.strategy!=="sms"&&l.strategy!=="Username-Password-Authentication");if(r.length===0)return[];const i=r.map(l=>{const u=l.display_name||l.name;return{name:l.name,strategy:l.strategy,display_name:t.login_id_federated_connection_button_text({connectionName:u}),icon_url:M2(l)}}),a={id:"social-buttons",type:"SOCIAL",category:"FIELD",visible:!0,config:{providers:r.map(l=>l.name),provider_details:i},order:0};if(n.some(l=>l.strategy==="email"||l.strategy==="sms"||l.strategy==="Username-Password-Authentication")){const l={id:"divider",type:"DIVIDER",category:"BLOCK",visible:!0,order:1,config:{text:t.or()}};return[a,l]}return[a]}async function pr(e){const{client:t,branding:n,state:r,prefill:i,errors:s,messages:a,customText:c,promptScreen:l,routePrefix:u}=e,d=e.language||"en",{m:f}=tt(d,c,l||"login-id"),p=lfe(e,f),h=p.length,_=e.connections.some(E=>E.strategy==="email"||E.strategy==="sms"||E.strategy==="Username-Password-Authentication"),g=e.connections.find(E=>E.strategy==="Username-Password-Authentication"),y=ji(g),m=y.usernameIdentifierActive,w=y.emailIdentifierActive,k=m&&w?f.email_or_username_placeholder():m?f.username_placeholder():f.email_placeholder(),S=[...p];if(_){const E=s?.username;S.push({id:"username",type:m?"TEXT":"EMAIL",category:"FIELD",visible:!0,label:k,config:{placeholder:k},required:!0,order:h+1,hint:E},{id:"submit",type:"NEXT_BUTTON",category:"BLOCK",visible:!0,config:{text:f.login_id_button_text()},order:h+2})}const b=e.connections.some(E=>E.strategy==="Username-Password-Authentication"),x=t.client_metadata?.disable_sign_ups==="true";if(b&&!x){const E=`${u}/signup?state=${encodeURIComponent(r)}`;S.push({id:"signup-link",type:"RICH_TEXT",category:"BLOCK",visible:!0,config:{content:`<div class="signup-link">${f.dont_have_account()} <a href="${E}">${f.create_new_account_link()}</a></div>`},order:S.length+1})}const A={name:"identifier",action:`${u}/login/identifier?state=${encodeURIComponent(r)}`,method:"POST",title:f.login_id_title(),description:f.login_id_description({companyName:t.tenant.friendly_name||t.tenant.id||"AuthHero",clientName:t.name||"the application"}),components:S,messages:a};if(i?.username){const E=A.components.find(P=>P.id==="username");E&&"config"in E&&(E.config.value=i.username)}return{screen:A,branding:n}}const ufe={id:"identifier",name:"Identifier",description:"First screen of the login flow - collects email/username",handler:{get:pr,post:async(e,t)=>{const{ctx:n,client:r,state:i}=e,s=t.username?.toLowerCase()?.trim(),a=r.connections.find(x=>x.strategy==="Username-Password-Authentication"),c=ji(a),l=c.usernameIdentifierActive;if(!s){const x=e.language||"en",{m:A}=tt(x,e.customText),E=l?A.no_email_or_username():A.no_email();return{error:E,screen:await pr({...e,errors:{username:E}})}}const u=n.get("countryCode"),{normalized:d,connectionType:f,provider:p}=os(s,u);if(!d){const x=e.language||"en",{m:A}=tt(x,e.customText),E=A.invalid_identifier();return{error:E,screen:await pr({...e,prefill:{username:s},errors:{username:E}})}}if(f==="username"&&l){const x=c.usernameMinLength,A=c.usernameMaxLength;if(d.length<x){const E=e.language||"en",{m:P}=tt(E,e.customText),R=P.username_too_short({min:String(x)});return{error:R,screen:await pr({...e,prefill:{username:s},errors:{username:R}})}}if(d.length>A){const E=e.language||"en",{m:P}=tt(E,e.customText),R=P.username_too_long({max:String(A)});return{error:R,screen:await pr({...e,prefill:{username:s},errors:{username:R}})}}}const h=f==="email"?await qo({userAdapter:n.env.data.users,tenant_id:r.tenant.id,email:d}):await Xn({userAdapter:n.env.data.users,tenant_id:r.tenant.id,username:d,provider:p});if(!(r.connections.find(x=>x.strategy===f)||f==="username"&&l||h)){const x=e.language||"en",{m:A}=tt(x,e.customText),E=A.invalid_identifier();return{error:E,screen:await pr({...e,prefill:{username:s},errors:{username:E}})}}if(!h){const x=await Au(n,r,n.env.data,d,f);if(!x.allowed){const A=e.language||"en",{m:E}=tt(A,e.customText);return{error:x.reason||E.user_account_does_not_exist(),screen:await pr({...e,prefill:{username:s},errors:{username:E.user_account_does_not_exist()}})}}}const g=await n.env.data.loginSessions.get(r.tenant.id,i);if(!g){const x=e.language||"en",{m:A}=tt(x,e.customText),E=A.session_expired();return{error:E,screen:await pr({...e,prefill:{username:s},errors:{username:E}})}}g.authParams.username=d,await n.env.data.loginSessions.update(r.tenant.id,g.id,g);const y=await a4(n,r,s,f,t.login_selection),m={...e,data:{email:d},errors:void 0};if(y==="password")return{screen:await Ts(m)};let w=In(),k=await n.env.data.codes.get(r.tenant.id,w,"otp");for(;k;)w=In(),k=await n.env.data.codes.get(r.tenant.id,w,"otp");await n.env.data.codes.create(r.tenant.id,{code_id:w,code_type:"otp",login_id:g.id,expires_at:new Date(Date.now()+Bs).toISOString(),redirect_uri:g.authParams.redirect_uri});const S=r.connections.find(x=>x.strategy===f),b=g.authParams?.ui_locales?.split(" ")?.map(x=>x.split("-")[0])[0];return f==="email"&&S?.options?.authentication_method==="magic_link"?await Ad(n,{to:d,code:w,authParams:g.authParams,language:b}):await zd(n,{to:d,code:w,language:b}),{screen:await eo(m)}}}};function dfe(e,t){const{connections:n}=e,r=n.filter(l=>l.strategy!=="email"&&l.strategy!=="sms"&&l.strategy!=="Username-Password-Authentication");if(r.length===0)return[];const i=r.map(l=>{const u=l.display_name||l.name;return{name:l.name,strategy:l.strategy,display_name:t.login_id_federated_connection_button_text({connectionName:u}),icon_url:M2(l)}}),a={id:"social-buttons",type:"SOCIAL",category:"FIELD",visible:!0,config:{providers:r.map(l=>l.name),provider_details:i},order:0};if(n.some(l=>l.strategy==="email"||l.strategy==="sms"||l.strategy==="Username-Password-Authentication")){const l={id:"divider",type:"DIVIDER",category:"BLOCK",visible:!0,order:1,config:{text:t.or()}};return[a,l]}return[a]}async function rn(e){const{client:t,branding:n,state:r,prefill:i,errors:s,messages:a,customText:c,promptScreen:l,routePrefix:u}=e,d=e.language||"en",{m:f}=tt(d,c,l||"login"),p=dfe(e,f),h=p.length,_=e.connections.find(A=>A.strategy==="Username-Password-Authentication"),g=!!_,y=ji(_),m=y.usernameIdentifierActive,w=y.emailIdentifierActive,k=m&&w?f.email_or_username_placeholder():m?f.username_placeholder():f.email_placeholder(),S=[...p];if(g){const A=s?.username,E=s?.password;S.push({id:"username",type:m?"TEXT":"EMAIL",category:"FIELD",visible:!0,label:k,config:{placeholder:k},required:!0,order:h+1,hint:A},{id:"password",type:"PASSWORD",category:"FIELD",visible:!0,label:f.password(),config:{placeholder:f.enter_password()},required:!0,sensitive:!0,order:h+2,hint:E});const P=`${u}/forgot-password?state=${encodeURIComponent(r)}`;S.push({id:"forgot-password-link",type:"RICH_TEXT",category:"BLOCK",visible:!0,config:{content:`<div class="forgot-password-link"><a href="${P}">${f.forgot_password_link()}</a></div>`},order:h+3}),S.push({id:"submit",type:"NEXT_BUTTON",category:"BLOCK",visible:!0,config:{text:f.continue()},order:h+4})}const b=t.client_metadata?.disable_sign_ups==="true";if(g&&!b){const A=`${u}/signup?state=${encodeURIComponent(r)}`;S.push({id:"signup-link",type:"RICH_TEXT",category:"BLOCK",visible:!0,config:{content:`<div class="signup-link">${f.dont_have_account()} <a href="${A}">${f.create_new_account_link()}</a></div>`},order:S.length+1})}const x={name:"login",action:`${u}/login?state=${encodeURIComponent(r)}`,method:"POST",title:f.login_id_title(),description:f.login_id_description({companyName:t.tenant.friendly_name||t.tenant.id||"AuthHero",clientName:t.name||"the application"}),components:S,messages:a};if(i?.username){const A=x.components.find(E=>E.id==="username");A&&"config"in A&&(A.config.value=i.username)}return{screen:x,branding:n}}const pfe={id:"login",name:"Login",description:"Combined login screen with email, password, and social login",handler:{get:rn,post:async(e,t)=>{const{ctx:n,client:r,state:i}=e,s=t.username?.toLowerCase()?.trim(),a=t.password?.trim(),c=e.language||"en",{m:l}=tt(c,e.customText,"login"),u=r.connections.find(w=>w.strategy==="Username-Password-Authentication"),d=ji(u),f=d.usernameIdentifierActive;if(!s){const w=f?l.no_email_or_username():l.no_email();return{error:w,screen:await rn({...e,errors:{username:w}})}}if(!a){const w=l.no_password();return{error:w,screen:await rn({...e,prefill:{username:s},errors:{password:w}})}}const p=n.get("countryCode"),{normalized:h,connectionType:_,provider:g}=os(s,p);if(!h){const w=l.invalid_identifier();return{error:w,screen:await rn({...e,prefill:{username:s},errors:{username:w}})}}if(_==="username"&&f){const w=d.usernameMinLength,k=d.usernameMaxLength;if(h.length<w){const S=l.username_too_short({min:String(w)});return{error:S,screen:await rn({...e,prefill:{username:s},errors:{username:S}})}}if(h.length>k){const S=l.username_too_long({max:String(k)});return{error:S,screen:await rn({...e,prefill:{username:s},errors:{username:S}})}}}if(_==="username"&&!f){const w=l.invalid_email();return{error:w,screen:await rn({...e,prefill:{username:s},errors:{username:w}})}}const y=_==="email"?await qo({userAdapter:n.env.data.users,tenant_id:r.tenant.id,email:h}):await Xn({userAdapter:n.env.data.users,tenant_id:r.tenant.id,username:h,provider:g});if(!u){const w=l.password_login_not_available();return{error:w,screen:await rn({...e,prefill:{username:s},errors:{username:w}})}}if(!y&&!(await Au(n,r,n.env.data,h,_)).allowed){const k=l.user_account_does_not_exist();return{error:k,screen:await rn({...e,prefill:{username:s},errors:{username:k}})}}const m=await n.env.data.loginSessions.get(r.tenant.id,i);if(!m){const w=l.session_expired();return{error:w,screen:await rn({...e,prefill:{username:s},errors:{username:w}})}}m.authParams.username=h,await n.env.data.loginSessions.update(r.tenant.id,m.id,m);try{const w=await tc(n,r,{...m.authParams,password:a},m),k=w.headers.get("location"),S=w.headers.getSetCookie?.()||[];return k?{redirect:k,cookies:S}:{response:w}}catch(w){const k=w;let S=k.message||l.invalid_password();return k.code==="INVALID_PASSWORD"||k.code==="USER_NOT_FOUND"?S=l.invalid_password():k.code==="EMAIL_NOT_VERIFIED"?S=l.unverified_email():k.code==="TOO_MANY_FAILED_LOGINS"&&(S=l.too_many_failed_logins()),{error:S,screen:await rn({...e,prefill:{username:s},errors:{password:S}})}}}}};async function $n(e){const{branding:t,state:n,prefill:r,errors:i,customText:s,routePrefix:a}=e,c=e.language||"en",{m:l}=tt(c,s),u=e.connections.some(p=>p.strategy==="Username-Password-Authentication"),d=[];if(u){let p=1;d.push({id:"email",type:"EMAIL",category:"FIELD",visible:!0,label:l.email_placeholder(),config:{placeholder:l.email_placeholder()},required:!0,order:p++,hint:i?.email},{id:"password",type:"PASSWORD",category:"FIELD",visible:!0,label:l.password(),config:{placeholder:l.password(),show_toggle:!0},required:!0,sensitive:!0,order:p++,hint:i?.password},{id:"re_password",type:"PASSWORD",category:"FIELD",visible:!0,label:l.confirm_password(),config:{placeholder:l.confirm_password(),show_toggle:!0},required:!0,sensitive:!0,order:p++,hint:i?.re_password},{id:"submit",type:"NEXT_BUTTON",category:"BLOCK",visible:!0,config:{text:l.signup()},order:p++})}if(r?.email){const p=d.find(h=>h.id==="email");p&&"config"in p&&(p.config.value=r.email)}return{screen:{name:"signup",action:`${a}/signup?state=${encodeURIComponent(n)}`,method:"POST",title:l.create_account_title(),description:l.create_account_description(),components:d,links:[{id:"login",text:l.already_have_account(),linkText:l.log_in(),href:`${a}/login/identifier?state=${encodeURIComponent(n)}`}]},branding:t}}const ffe={id:"signup",name:"Sign Up",description:"New user registration screen",handler:{get:$n,post:async(e,t)=>{const{ctx:n,client:r,state:i}=e,s=t.email?.toLowerCase()?.trim(),a=t.password?.trim(),c=t.re_password?.trim(),l=e.language||"en",{m:u}=tt(l,e.customText);if(!s)return{error:"Email is required",screen:await $n({...e,errors:{email:u.invalid_email()}})};if(!a)return{error:"Password is required",screen:await $n({...e,prefill:{email:s},errors:{password:u.invalid_password()}})};if(!c)return{error:"Please confirm your password",screen:await $n({...e,prefill:{email:s},errors:{re_password:u.confirm_password()}})};if(a!==c)return{error:"Passwords don't match",screen:await $n({...e,prefill:{email:s},errors:{re_password:u.create_account_passwords_didnt_match()}})};const f=r.connections.find(S=>S.strategy==="Username-Password-Authentication")?.name||"Username-Password-Authentication",p=await Ta(n.env.data,r.tenant.id,f);try{await Na(p,{tenantId:r.tenant.id,userId:"",newPassword:a,data:n.env.data})}catch(S){const b=S instanceof Error?S.message:u.create_account_weak_password();return{error:b,screen:await $n({...e,prefill:{email:s},errors:{password:b}})}}if(await Or({userAdapter:n.env.data.users,tenant_id:r.tenant.id,username:s,provider:Te}))return{error:"User already exists",screen:await $n({...e,prefill:{email:s},errors:{email:u.email_already_taken()}})};const _=await n.env.data.loginSessions.get(r.tenant.id,i);if(!_)return{error:"Session expired",screen:await $n({...e,prefill:{email:s},errors:{email:u.session_expired()}})};_.authParams.username=s,await n.env.data.loginSessions.update(r.tenant.id,_.id,_);const g=`${Te}|${Ni()}`,{hash:y,algorithm:m}=await oa(a);let w;try{w=await n.env.data.users.create(r.tenant.id,{user_id:g,email:s,email_verified:!1,provider:Te,connection:f,is_social:!1,password:{hash:y,algorithm:m}})}catch(S){return console.log("Err: "+S.message),{error:"Failed to create user",screen:await $n({...e,prefill:{email:s},errors:{email:"Failed to create user"}})}}const k=_.authParams?.ui_locales?.split(" ")?.map(S=>S.split("-")[0])[0];try{await Ed(n,w,k)}catch(S){console.error("Failed to send verification email:",S)}try{const S=await tc(n,r,{..._.authParams,password:a},_),b=S.headers.get("location"),x=S.headers.getSetCookie?.()||[];return b?{redirect:b,cookies:x}:{response:S}}catch{return{screen:await $n({...e,messages:[{text:u.validate_email_body(),type:"success"}]})}}}}};async function hfe(e){const{branding:t,state:n,prefill:r,errors:i,messages:s,routePrefix:a="/u2"}=e,c=[{id:"info",type:"RICH_TEXT",category:"BLOCK",visible:!0,config:{content:"Enter your email address and we'll send you a link to reset your password."},order:0},{id:"email",type:"EMAIL",category:"FIELD",visible:!0,label:"Email address",config:{placeholder:"name@example.com"},required:!0,order:1,hint:i?.email},{id:"submit",type:"NEXT_BUTTON",category:"BLOCK",visible:!0,config:{text:"Send reset link"},order:2}];if(r?.email){const u=c.find(d=>d.id==="email");u&&"config"in u&&(u.config.value=r.email)}return{screen:{name:"forgot-password",action:`${a}/forgot-password?state=${encodeURIComponent(n)}`,method:"POST",title:"Reset your password",components:c,messages:s?.map(u=>({text:u.text,type:u.type})),links:[{id:"back",text:"Remember your password?",linkText:"Log in",href:`${a}/login/identifier?state=${encodeURIComponent(n)}`}]},branding:t}}const _fe={id:"forgot-password",name:"Forgot Password",description:"Password reset request screen",handler:{get:hfe}};async function Mn(e){const{branding:t,state:n,errors:r,messages:i,routePrefix:s}=e,a=[{id:"password",type:"PASSWORD",category:"FIELD",visible:!0,label:"New password",config:{placeholder:"Enter new password",show_toggle:!0},required:!0,sensitive:!0,order:0,hint:r?.password},{id:"confirm_password",type:"PASSWORD",category:"FIELD",visible:!0,label:"Confirm new password",config:{placeholder:"Confirm new password"},required:!0,sensitive:!0,order:1,hint:r?.confirm_password},{id:"submit",type:"NEXT_BUTTON",category:"BLOCK",visible:!0,config:{text:"Reset password"},order:2}];return{screen:{name:"reset-password",action:`${s}/reset-password?state=${encodeURIComponent(n)}`,method:"POST",title:"Set your new password",description:"Choose a strong password for your account",components:a,messages:i?.map(l=>({text:l.text,type:l.type}))},branding:t}}const mfe={id:"reset-password",name:"Reset Password",description:"Set new password screen",handler:{get:Mn,post:async(e,t)=>{const{ctx:n,client:r,state:i}=e,{env:s}=n,a=t.password?.trim(),c=t.confirm_password?.trim(),l=e.language||"en",{m:u}=tt(l,e.customText);if(!a)return{error:"Password is required",screen:await Mn({...e,errors:{password:"Password is required"}})};if(a!==c){const m=u.create_account_passwords_didnt_match();return{error:m,screen:await Mn({...e,errors:{confirm_password:m}})}}const d=await s.data.loginSessions.get(r.tenant.id,i);if(!d||!d.authParams?.username)return{error:"Session expired",screen:await Mn({...e,errors:{password:"Session expired. Please start over."}})};const f=await Or({userAdapter:s.data.users,tenant_id:r.tenant.id,username:d.authParams.username,provider:Te});if(!f)return{error:"User not found",screen:await Mn({...e,errors:{password:"User not found"}})};const h=r.connections.find(m=>m.strategy==="Username-Password-Authentication")?.name||f.connection,_=await Ta(s.data,r.tenant.id,h);try{await Na(_,{tenantId:r.tenant.id,userId:f.user_id,newPassword:a,userData:f,data:s.data})}catch(m){const w=m instanceof Error?m.message:u.create_account_weak_password();return{error:w,screen:await Mn({...e,errors:{password:w}})}}const g=e.data?.code;if(!g)return{error:"Reset code not found",screen:await Mn({...e,errors:{password:"Reset code not found"}})};const y=await s.data.codes.get(r.tenant.id,g,"password_reset");if(!y){const m=u.code_expired();return{error:m,screen:await Mn({...e,errors:{password:m}})}}try{const m=await s.data.passwords.get(r.tenant.id,f.user_id);return m&&await s.data.passwords.update(r.tenant.id,{id:m.id,user_id:f.user_id,password:m.password,algorithm:m.algorithm,is_current:!1}),await s.data.passwords.create(r.tenant.id,{user_id:f.user_id,password:await Fo.hash(a,10),algorithm:"bcrypt",is_current:!0}),f.email_verified||await s.data.users.update(r.tenant.id,f.user_id,{email_verified:!0}),await fe(n,r.tenant.id,{type:pe.SUCCESS_CHANGE_PASSWORD,description:`Password changed for ${f.email}`,userId:f.user_id}),await s.data.codes.remove(r.tenant.id,y.code_id),{redirect:`/u2/identifier?state=${encodeURIComponent(i)}&message=password_reset_success`}}catch(m){const w=m instanceof Error?m.message:JSON.stringify(m);await fe(n,r.tenant.id,{type:pe.FAILED_CHANGE_PASSWORD,description:`Password reset failed for ${f.email}: ${w}`,userId:f.user_id});const k=m instanceof Error?m.message:u.password_reset_failed();return{error:k,screen:await Mn({...e,errors:{password:k}})}}}}};async function E$(e){const{ctx:t,tenant:n,client:r,branding:i,state:s,errors:a,routePrefix:c="/u2"}=e,l=await t.env.data.loginSessions.get(n.id,s);if(!l)throw new I(400,{message:"Login session not found"});if(!l.session_id)throw new I(400,{message:"No session linked to login session"});const u=await t.env.data.sessions.get(n.id,l.session_id);if(!u)throw new I(400,{message:"Session not found"});const d=await t.env.data.users.get(n.id,u.user_id);if(!d)throw new I(400,{message:"User not found"});if(!(await t.env.data.userPermissions.list(n.id,d.user_id)).some(g=>g.permission_name==="users:impersonate"))return{screen:{name:"impersonate",action:`${c}/impersonate?state=${encodeURIComponent(s)}`,method:"POST",title:"Access Denied",description:"You do not have permission to impersonate other users.",components:[],messages:[{id:1,text:"You do not have permission to impersonate other users.",type:"error"}]},branding:i};const h=[{id:"info",type:"RICH_TEXT",category:"BLOCK",visible:!0,config:{content:"<p>You have permission to impersonate other users.</p><p>Leave the field empty and click Continue to proceed as yourself, or enter a user ID to impersonate.</p>"},order:0},{id:"current-user",type:"RICH_TEXT",category:"BLOCK",visible:!0,config:{content:`<div class="current-user-info"><strong>Current user:</strong> ${jn(d.email||d.user_id)}</div>`},order:1},{id:"divider",type:"DIVIDER",category:"BLOCK",visible:!0,order:2},{id:"user_id",type:"TEXT",category:"FIELD",visible:!0,label:"User ID to impersonate (optional)",config:{placeholder:"Enter user ID or leave empty to continue as yourself"},required:!1,order:3,hint:a?.user_id},{id:"submit",type:"NEXT_BUTTON",category:"BLOCK",visible:!0,config:{text:"Continue"},order:4}];return{screen:{name:"impersonate",action:`${c}/impersonate?state=${encodeURIComponent(s)}`,method:"POST",title:"Impersonation",description:r.name?`Impersonation for ${jn(r.name)}`:"User impersonation",components:h},branding:i}}async function gfe(e,t){const{ctx:n,tenant:r,client:i,state:s}=e,a=await n.env.data.loginSessions.get(r.id,s);if(!a)throw new I(400,{message:"Login session not found"});if(!a.session_id)throw new I(400,{message:"No session linked to login session"});const c=await n.env.data.sessions.get(r.id,a.session_id);if(!c)throw new I(400,{message:"Current session not found"});const l=await n.env.data.users.get(r.id,c.user_id);if(!l)throw new I(400,{message:"Current user not found"});if(!(await n.env.data.userPermissions.list(r.id,l.user_id)).some(y=>y.permission_name==="users:impersonate"))throw new I(403,{message:"Access denied: insufficient permissions"});const f=t.user_id?.trim();if(!f){const y=await gt(n,{client:i,authParams:a.authParams,loginSession:a,user:l,existingSessionIdToLink:c.id,skipHooks:!0}),m=y.headers.get("Location"),w=y.headers.getSetCookie?.()||[];if(m)return{redirect:m,cookies:w};throw new I(500,{message:"Failed to generate redirect"})}const p=await n.env.data.users.get(r.id,f);if(!p)return fe(n,r.id,{type:pe.FAILED_IMPERSONATION,description:`User ${l.email} failed to impersonate non-existent user: ${f}`,userId:l.user_id}),{error:"User not found",screen:await E$({...e,errors:{user_id:"User not found"}})};const h=await gt(n,{client:i,authParams:a.authParams,loginSession:a,user:p,existingSessionIdToLink:c.id,impersonatingUser:l,skipHooks:!0}),_=h.headers.get("Location"),g=h.headers.getSetCookie?.()||[];if(!_)throw new I(500,{message:"Failed to generate redirect"});return fe(n,r.id,{type:pe.SUCCESS_IMPERSONATION,description:`User ${l.email} impersonating ${p.email||p.user_id}`,userId:p.user_id}),{redirect:_,cookies:g}}const yfe={id:"impersonate",name:"Impersonate",description:"Allows users with permission to impersonate other users",handler:{get:E$,post:gfe}};async function C$(e){const{ctx:t,tenant:n,client:r,branding:i,state:s,routePrefix:a="/u2",customText:c}=e,l=e.language||"en",{m:u}=tt(l,c,"check-account");if(!await t.env.data.loginSessions.get(n.id,s))throw new I(400,{message:"Login session not found"});const f=pi(n.id,t.req.header("cookie")),p=f?await t.env.data.sessions.get(n.id,f):null;if(!p||p.revoked_at)throw new qt(`${a}/login/identifier?state=${encodeURIComponent(s)}`);const h=await t.env.data.users.get(n.id,p.user_id);if(!h)throw new qt(`${a}/login/identifier?state=${encodeURIComponent(s)}`);const _=[{id:"info",type:"RICH_TEXT",category:"BLOCK",visible:!0,config:{content:`<p>${u.check_account_logged_in_as({email:jn(h.email||h.user_id)})}</p><p>${u.check_account_continue_question()}</p>`},order:0},{id:"submit",type:"NEXT_BUTTON",category:"BLOCK",visible:!0,config:{text:u.yes_continue_with_existing_account()},order:1}];return{screen:{name:"check-account",action:`${a}/check-account?state=${encodeURIComponent(s)}`,method:"POST",title:u.check_account_title(),description:r.name?u.check_account_description({clientName:jn(r.name)}):u.check_account_description_fallback(),components:_,links:[{id:"use-another-account",text:u.no_use_another(),href:`${a}/login/identifier?state=${encodeURIComponent(s)}`}]},branding:i}}async function bfe(e,t){const{ctx:n,tenant:r,client:i,state:s}=e,a=await n.env.data.loginSessions.get(r.id,s);if(!a)throw new I(400,{message:"Login session not found"});const c=pi(r.id,n.req.header("cookie")),l=c?await n.env.data.sessions.get(r.id,c):null,u=e.routePrefix||"/u2";if(!l||l.revoked_at)return{redirect:`${u}/login/identifier?state=${encodeURIComponent(s)}`};const d=await n.env.data.users.get(r.id,l.user_id);if(!d)return{redirect:`${u}/login/identifier?state=${encodeURIComponent(s)}`};try{const f=await gt(n,{client:i,authParams:a.authParams,loginSession:a,user:d,existingSessionIdToLink:l.id}),p=f.headers.get("Location"),h=f.headers.getSetCookie?.()||[];return p?{redirect:p,cookies:h}:{response:f}}catch(f){const p=f instanceof Error?f.message:"An unexpected error occurred";if(p.includes("session")||p.includes("expired")||p.includes("completed")||p.includes("failed"))return{redirect:`${u}/login/identifier?state=${encodeURIComponent(s)}`};const h=e.language||"en",{m:_}=tt(h,e.customText,"check-account");return{error:_.check_account_error(),screen:await C$(e)}}}const vfe={id:"check-account",name:"Check Account",description:"Allows users to continue with an existing session",handler:{get:C$,post:bfe}},Pd=new Map([["identifier",ufe],["login",pfe],["enter-code",afe],["enter-password",cfe],["signup",ffe],["forgot-password",_fe],["reset-password",mfe],["impersonate",yfe],["check-account",vfe]]);function I$(e){return Pd.get(e)}function j$(e,t){const n=Pd.get(e);if(n)return n.handler.get(t)}function sh(){return Array.from(Pd.keys())}function N$(e){return Pd.has(e)}const T$={identifier:"login-id","enter-password":"login-password","enter-code":"login",signup:"signup","forgot-password":"reset-password","reset-password":"reset-password",impersonate:"login","pre-signup":"signup-id","pre-signup-sent":"signup",consent:"consent"};function wfe(e,t){if(e){const r=e.split(" ")[0];if(r){const i=r.split("-")[0]?.toLowerCase();if(i)return i}}if(!t)return"en";const n=t.split(",").map(r=>{const[i,s]=r.trim().split(";"),a=s?parseFloat(s.split("=")[1]||"1"):1;return{code:i?.split("-")[0]?.toLowerCase()||"en",q:a}});return n.sort((r,i)=>i.q-r.q),n[0]?.code||"en"}async function kfe(e,t,n,r){const i=T$[n];if(i)try{let s=await e.env.data.customText.get(t,i,r);if(!s&&r.includes("-")){const a=r.split("-")[0];s=await e.env.data.customText.get(t,i,a)}if(!s){const a=await e.env.data.customText.get(t,"common",r);a&&(s=a)}return s||void 0}catch{return}}const $fe=o.z.object({logo_url:o.z.string().optional(),favicon_url:o.z.string().optional(),powered_by_logo_url:o.z.string().optional(),colors:o.z.object({primary:o.z.string().optional(),page_background:o.z.union([o.z.string(),o.z.object({type:o.z.string().optional(),start:o.z.string().optional(),end:o.z.string().optional(),angle_deg:o.z.number().optional()})]).optional()}).optional(),font:o.z.object({url:o.z.string().optional()}).optional()}),P$=o.z.object({id:o.z.number().optional(),text:o.z.string(),type:o.z.enum(["info","error","success","warning"])}),Sfe=o.z.object({id:o.z.string(),type:o.z.string(),category:o.z.string().optional(),config:o.z.record(o.z.any()).optional(),order:o.z.number().optional(),visible:o.z.boolean().optional(),required:o.z.boolean().optional(),sensitive:o.z.boolean().optional(),label:o.z.string().optional(),hint:o.z.string().optional(),messages:o.z.array(P$).optional()}),xfe=o.z.object({name:o.z.string().optional(),action:o.z.string(),method:o.z.enum(["POST","GET"]),title:o.z.string().optional(),description:o.z.string().optional(),components:o.z.array(Sfe),messages:o.z.array(P$).optional(),links:o.z.array(o.z.object({id:o.z.string().optional(),text:o.z.string(),href:o.z.string(),linkText:o.z.string().optional()})).optional()}),ov=o.z.object({screen:xfe,branding:$fe.optional()});function zfe(e){if(e)return{logo_url:e.logo_url,favicon_url:e.favicon_url,powered_by_logo_url:e.powered_by_logo_url,colors:e.colors,font:e.font}}async function of(e,t,n,r,i,s){const{client:a,branding:c,theme:l,loginSession:u}=await Ae(e,t,!0);s&&s!==u?.authParams?.ui_locales&&(await e.env.data.loginSessions.update(a.tenant.id,u.id,{authParams:{...u.authParams,ui_locales:s}}),u.authParams&&(u.authParams.ui_locales=s));const d=a.connections||[],f=e.req.header("Accept-Language"),p=wfe(s||u?.authParams?.ui_locales,f),h=T$[n],_=await kfe(e,e.var.tenant_id,n,p),g=a.client_metadata?.universal_login_version==="2"?"/u2":"/u";return{ctx:e,tenant:a.tenant,client:a,theme:l??void 0,branding:zfe(c),connections:d,state:t,prefill:{...r,username:u?.authParams?.username,email:u?.authParams?.username},errors:i,customText:_,language:p,promptScreen:h,routePrefix:g}}async function Afe(e,t){if(!N$(e))return null;const n=j$(e,t);return n?await n:null}async function zc(e,t,n,r,i,s){const a=await e.env.data.forms.get(t,n);if(!a)return null;const c=i??a.start?.next_node;if(!c)return null;const l=(a.nodes||[]).find(f=>f.id===c&&f.type==="STEP");if(!l)return null;const u=`/u2/screen/${n}?state=${encodeURIComponent(r)}${c?`&nodeId=${encodeURIComponent(c)}`:""}`,d=[...l.config.components].filter(f=>f.visible!==!1).sort((f,p)=>(f.order??0)-(p.order??0)).map(f=>s?.fieldErrors?.[f.id]?{...f,messages:[{text:s.fieldErrors[f.id],type:"error"}]}:f);return{screen:{action:u,method:"POST",title:a.name,components:d,messages:s?.messages},formId:n,nodeId:c,form:a,stepNode:l}}const Efe=new o.OpenAPIHono().openapi(o.createRoute({tags:["screen-api"],method:"get",path:"/:screenId",request:{params:o.z.object({screenId:o.z.string().openapi({description:`Screen ID. Built-in screens: ${sh().join(", ")}. Or a database form ID.`})}),query:o.z.object({state:o.z.string().openapi({description:"The login session state"}),nodeId:o.z.string().optional().openapi({description:"Node ID for database forms (optional)"}),ui_locales:o.z.string().optional().openapi({description:"Language override from the language picker (e.g. 'en', 'sv')"})})},responses:{200:{description:"Screen configuration",content:{"application/json":{schema:ov}}},404:{description:"Screen not found"}}}),async e=>{const{screenId:t}=e.req.valid("param"),{state:n,nodeId:r,ui_locales:i}=e.req.valid("query"),s=await of(e,n,t,void 0,void 0,i),a=await Afe(t,s);if(a){const l={...a.screen,action:`/u2/screen/${t}?state=${encodeURIComponent(n)}`,links:a.screen.links?.map(u=>({...u,href:u.href.replace("/u/widget/","/u2/").replace("/u/signup","/u2/signup").replace("/u/enter-","/u2/enter-")}))};return e.json({screen:l,branding:a.branding})}const c=await zc(e,s.tenant.id,t,n,r);if(c)return e.json({screen:c.screen,branding:s.branding});throw new I(404,{message:`Screen not found: ${t}. Available built-in screens: ${sh().join(", ")}`})}).openapi(o.createRoute({tags:["screen-api"],method:"post",path:"/:screenId",request:{params:o.z.object({screenId:o.z.string()}),query:o.z.object({state:o.z.string(),nodeId:o.z.string().optional()}),body:{content:{"application/json":{schema:o.z.object({data:o.z.record(o.z.string(),o.z.any())})}}}},responses:{200:{description:"Next screen or redirect",content:{"application/json":{schema:o.z.union([ov,o.z.object({redirect:o.z.string()}),o.z.object({complete:o.z.boolean()})])}}},400:{description:"Validation error"},404:{description:"Screen not found"}}}),async e=>{const{screenId:t}=e.req.valid("param"),{state:n,nodeId:r}=e.req.valid("query"),{data:i}=e.req.valid("json"),s=I$(t);if(s?.handler.post){const g=await of(e,n,t),y=await s.handler.post(g,i);if("response"in y)return y.response;if("redirect"in y){const S=new Headers;if(S.set("Content-Type","application/json"),y.cookies&&y.cookies.length>0)for(const b of y.cookies)S.append("Set-Cookie",b);return new Response(JSON.stringify({redirect:y.redirect}),{status:200,headers:S})}const m=y.screen,w=m.screen.name||t,k=w!==t?`/u2/${w}?state=${encodeURIComponent(n)}`:void 0;return e.json({screen:{...m.screen,action:`/u2/screen/${w}?state=${encodeURIComponent(n)}`,links:m.screen.links?.map(S=>({...S,href:S.href.replace("/u/widget/","/u2/").replace("/u/signup","/u2/signup").replace("/u/enter-","/u2/enter-")}))},branding:m.branding,screenId:w,navigateUrl:k},"error"in y?400:200)}if(N$(t))throw new I(400,{message:`Screen ${t} does not support POST submissions yet`});const a=await of(e,n,t),c=await zc(e,a.tenant.id,t,n,r);if(!c)throw new I(404,{message:`Screen not found: ${t}`});const{form:l,stepNode:u}=c,d={},f=u.config.components;for(const g of f){if("required"in g&&g.required){const y=i[g.id];(y==null||y==="")&&(d[g.id]="This field is required")}g.type==="EMAIL"&&i[g.id]&&(/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String(i[g.id]))||(d[g.id]="Please enter a valid email address"))}if(Object.keys(d).length>0){const g=await zc(e,a.tenant.id,t,n,c.nodeId,{fieldErrors:d,messages:[{text:"Please correct the errors below",type:"error"}]});return e.json({screen:g.screen,branding:a.branding},400)}const{client:p}=await Ae(e,n,!0),h=await e.env.data.loginSessions.get(p.tenant.id,n);if(!h||!h.authParams)throw new I(400,{message:"Session expired"});const _=u.config?.next_node;if(_&&l.nodes){const g=async k=>{const S=await e.env.data.flows.get(p.tenant.id,k);return S?{actions:S.actions?.map(b=>({type:b.type,action:b.action,params:"params"in b&&b.params?b.params:void 0}))}:null};let y=null;if(h.session_id){const k=await e.env.data.sessions.get(p.tenant.id,h.session_id);k?.user_id&&(y=await e.env.data.users.get(e.var.tenant_id,k.user_id))}const m={};for(const k of u.config.components)i[k.id]!==void 0&&i[k.id]!==null&&i[k.id]!==""&&(m[k.id]=String(i[k.id]));const w=await zu(l.nodes,_,{user:y,submittedFields:m},g);if(w){if(w.userUpdates&&w.userUpdates.length>0&&y){const k=Su(w.userUpdates);for(const S of k){const b=$u(S.changes,y);await e.env.data.users.update(p.tenant.id,S.user_id,b)}}if(w.type==="redirect"){const k=w.target,S=xu(k,w.customUrl,n);if(k==="change-email"||k==="account"){const b=`/u/continue?state=${encodeURIComponent(n)}`;await vu(e,p.tenant.id,h,[k],b)}return e.json({redirect:S})}if(w.type==="step"){const k=await zc(e,a.tenant.id,t,n,w.nodeId);if(k)return e.json({screen:k.screen,branding:a.branding})}}}if(h.session_id){const g=await e.env.data.sessions.get(p.tenant.id,h.session_id);if(g?.user_id){const y=await e.env.data.users.get(e.var.tenant_id,g.user_id);if(y){await na(e,p.tenant.id,h);const m=await gt(e,{authParams:h.authParams,client:p,user:y,loginSession:h,skipHooks:!0});if(m.status===302){const w=m.headers.get("location");if(w){const k=m.headers.getSetCookie?.()||[],S=e.json({redirect:w});return k.forEach(b=>{S.headers.append("set-cookie",b)}),S}}}}}return e.json({complete:!0})}),Cfe={en:"English",nb:"Norsk",sv:"Svenska",da:"Dansk",fi:"Suomi",cs:"Čeština",pl:"Polski",it:"Italiano"},sv={en:"Terms and Conditions",nb:"Vilkår",sv:"Villkor",da:"Vilkår og betingelser",fi:"Ehdot ja edellytykset",cs:"Podmínky a pravidla",pl:"Zasady i warunki",it:"Termini e condizioni"};function im({widgetHtml:e,screenId:t,branding:n,theme:r,themePageBackground:i,clientName:s,poweredByLogo:a,language:c,availableLanguages:l,termsAndConditionsUrl:u}){const d=[],f=An(n?.colors?.primary);f&&d.push(`--ah-color-primary: ${f}`);const p=U4(i,n?.colors?.page_background),h=Ft(n?.favicon_url),_=Ft(n?.font?.url),g=An(r?.colors?.widget_background)||"#ffffff",y=a?.url?Ft(a.url):null,m=a?.href?Ft(a.href):null,w=i?.page_layout||"center",b={minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:w==="left"?"flex-start":w==="right"?"flex-end":"center",background:p,fontFamily:_?"'Inter', system-ui, sans-serif":"system-ui, -apple-system, sans-serif",padding:w==="left"?"20px 20px 20px 80px":w==="right"?"20px 80px 20px 20px":"20px"},x=d.length>0?d.join("; ")+"; max-width: 400px; width: 100%;":"max-width: 400px; width: 100%;";return v("html",{lang:"en",children:[v("head",{children:[v("meta",{charSet:"UTF-8"}),v("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),v("title",{children:["Sign in - ",s]}),h&&v("link",{rel:"icon",href:h}),_&&v("link",{rel:"stylesheet",href:_}),v("style",{dangerouslySetInnerHTML:{__html:`
|
|
189
189
|
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
190
190
|
.powered-by { position: fixed; bottom: 16px; left: 16px; opacity: 0.7; transition: opacity 0.2s; }
|
|
191
191
|
.powered-by:hover { opacity: 1; }
|
|
@@ -226,7 +226,7 @@ Potete fare clic sul link sottostante per iniziare un nuovo accesso.`,E8=((e={},
|
|
|
226
226
|
auth-params='${a.replace(/'/g,"'")}'
|
|
227
227
|
auto-submit="true"
|
|
228
228
|
auto-navigate="true"
|
|
229
|
-
></authhero-widget>`,{fullDocument:!1,serializeShadowRoot:"declarative-shadow-dom"})).html||""}catch(c){return console.error("SSR failed:",c),""}}function Aa(e){if(e)return{colors:e.colors,logo_url:e.logo_url,favicon_url:e.favicon_url,font:e.font}}async function Ife(e,t){const n=await om({screenId:t.screenId,screenJson:t.screenJson,brandingJson:t.brandingJson,themeJson:t.themeJson,state:t.state,authParamsJson:t.authParamsJson});return e.html(v(im,{widgetHtml:n,screenId:t.screenId,branding:Aa(t.branding),theme:t.theme,themePageBackground:t.theme?.page_background,clientName:t.clientName,poweredByLogo:t.poweredByLogo,language:t.language,availableLanguages:t.availableLanguages,termsAndConditionsUrl:t.termsAndConditionsUrl}))}const jfe={identifier:"login-id",login:"login","enter-password":"login-password","enter-code":"login",signup:"signup","forgot-password":"reset-password","reset-password":"reset-password",impersonate:"login","pre-signup":"signup-id","pre-signup-sent":"signup",consent:"consent",mfa:"mfa","mfa-otp":"mfa-otp","mfa-sms":"mfa-sms","mfa-email":"mfa-email","mfa-push":"mfa-push","mfa-webauthn":"mfa-webauthn","mfa-voice":"mfa-voice","mfa-phone":"mfa-phone","mfa-recovery-code":"mfa-recovery-code",status:"status","device-flow":"device-flow","email-verification":"email-verification","email-otp-challenge":"email-otp-challenge",organizations:"organizations",invitation:"invitation"};function sm(e){return jfe[e]}function
|
|
229
|
+
></authhero-widget>`,{fullDocument:!1,serializeShadowRoot:"declarative-shadow-dom"})).html||""}catch(c){return console.error("SSR failed:",c),""}}function Aa(e){if(e)return{colors:e.colors,logo_url:e.logo_url,favicon_url:e.favicon_url,font:e.font}}async function Ife(e,t){const n=await om({screenId:t.screenId,screenJson:t.screenJson,brandingJson:t.brandingJson,themeJson:t.themeJson,state:t.state,authParamsJson:t.authParamsJson});return e.html(v(im,{widgetHtml:n,screenId:t.screenId,branding:Aa(t.branding),theme:t.theme,themePageBackground:t.theme?.page_background,clientName:t.clientName,poweredByLogo:t.poweredByLogo,language:t.language,availableLanguages:t.availableLanguages,termsAndConditionsUrl:t.termsAndConditionsUrl}))}const jfe={identifier:"login-id",login:"login","enter-password":"login-password","enter-code":"login",signup:"signup","forgot-password":"reset-password","reset-password":"reset-password",impersonate:"login","pre-signup":"signup-id","pre-signup-sent":"signup",consent:"consent",mfa:"mfa","mfa-otp":"mfa-otp","mfa-sms":"mfa-sms","mfa-email":"mfa-email","mfa-push":"mfa-push","mfa-webauthn":"mfa-webauthn","mfa-voice":"mfa-voice","mfa-phone":"mfa-phone","mfa-recovery-code":"mfa-recovery-code",status:"status","device-flow":"device-flow","email-verification":"email-verification","email-otp-challenge":"email-otp-challenge",organizations:"organizations",invitation:"invitation"};function sm(e){return jfe[e]}function O$(e,t){if(e){const r=e.split(" ")[0];if(r){const i=r.split("-")[0]?.toLowerCase();if(i)return i}}if(!t)return"en";const n=t.split(",").map(r=>{const[i,s]=r.trim().split(";"),a=s?parseFloat(s.split("=")[1]||"1"):1;return{code:i?.split("-")[0]?.toLowerCase()||"en",q:a}});return n.sort((r,i)=>i.q-r.q),n[0]?.code||"en"}async function R$(e,t,n,r){const i=sm(n);if(i)try{let s=await e.env.data.customText.get(t,i,r);if(!s&&r.includes("-")){const a=r.split("-")[0];s=await e.env.data.customText.get(t,i,a)}if(!s){const a=await e.env.data.customText.get(t,"common",r);a&&(s=a)}return s||void 0}catch{return}}function Nfe({clientName:e,branding:t,themePageBackground:n,theme:r}){const i=Ft(t?.favicon_url),s=Ft(t?.font?.url),a=An(t?.colors?.primary),c=U4(n,t?.colors?.page_background),l=An(r?.colors?.widget_background)||"#ffffff",u=[];a&&u.push(`--ah-color-primary: ${a}`);const d=n?.page_layout||"center",h=`
|
|
230
230
|
* {
|
|
231
231
|
box-sizing: border-box;
|
|
232
232
|
margin: 0;
|
|
@@ -401,13 +401,13 @@ Potete fare clic sul link sottostante per iniziare un nuovo accesso.`,E8=((e={},
|
|
|
401
401
|
max-width: none;
|
|
402
402
|
}
|
|
403
403
|
}
|
|
404
|
-
`;return v(Ro,{children:[v("meta",{charSet:"UTF-8"}),v("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),v("title",{children:["Sign in - ",e]}),i&&v("link",{rel:"icon",href:i}),s&&v("link",{rel:"stylesheet",href:s}),v("style",{dangerouslySetInnerHTML:{__html:h}}),v("script",{type:"module",src:`/u/widget/authhero-widget.esm.js?v=${Lo}`})]})}function L5(e){return v(Nfe,{...e}).toString()}function Tfe({state:e,screenId:t,authParams:n,screenJson:r,brandingJson:i,themeJson:s,widgetHtml:a,poweredByLogo:c}){const l=JSON.stringify(n),u=c?.url?Ft(c.url):null,d=c?.href?Ft(c.href):null;return v("div",{class:"widget-container","data-authhero-widget-container":!0,"data-screen":t,children:[a?v("div",{"data-screen":t,dangerouslySetInnerHTML:{__html:a}}):v("div",{"data-screen":t,children:v("authhero-widget",{id:"widget",screen:r,branding:i,theme:s,state:e,"auth-params":l,"auto-submit":"true","auto-navigate":"true"})}),u&&v("div",{class:"powered-by",children:d?v("a",{href:d,target:"_blank",rel:"noopener noreferrer",children:v("img",{src:u,alt:c?.alt||"",height:c?.height||20})}):v("img",{src:u,alt:c?.alt||"",height:c?.height||20})})]})}function D5(e){return v(Tfe,{...e}).toString()}const Ea={en:"English",nb:"Norsk",sv:"Svenska",da:"Dansk",fi:"Suomi",cs:"Čeština",pl:"Polski",it:"Italiano"};function Pfe({language:e,availableLanguages:t}){const n=t&&t.length>1?t:void 0;return v("div",{class:"page-footer",children:[v("button",{class:"dark-mode-toggle",type:"button","aria-label":"Toggle dark mode",onclick:"(function(btn){var h=document.documentElement,isDark=h.classList.toggle('ah-dark-mode');var v={'--ah-color-text':'#f9fafb','--ah-color-text-muted':'#9ca3af','--ah-color-text-label':'#d1d5db','--ah-color-header':'#f9fafb','--ah-color-bg':'#1f2937','--ah-color-bg-hover':'#374151','--ah-color-bg-muted':'#374151','--ah-color-bg-disabled':'#4b5563','--ah-color-input-bg':'#374151','--ah-color-border':'#4b5563','--ah-color-border-hover':'#6b7280','--ah-color-border-muted':'#374151','--ah-color-error-bg':'rgba(220,38,38,0.2)','--ah-color-success-bg':'rgba(22,163,74,0.2)','--ah-color-link':'#60a5fa'};var w=document.querySelector('authhero-widget');for(var k in v){if(isDark){h.style.setProperty(k,v[k]);if(w)w.style.setProperty(k,v[k])}else{h.style.removeProperty(k);if(w)w.style.removeProperty(k)}}btn.querySelector('.icon-sun').style.display=isDark?'none':'block';btn.querySelector('.icon-moon').style.display=isDark?'block':'none';try{localStorage.setItem('ah-dark-mode',isDark?'1':'0')}catch(e){}})(this)",children:[v("svg",{class:"icon-sun",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",children:[v("circle",{cx:"12",cy:"12",r:"5"}),v("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),v("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),v("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),v("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),v("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),v("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),v("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),v("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"})]}),v("svg",{class:"icon-moon",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",style:"display:none",children:v("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})})]}),n&&v("div",{class:"language-picker",children:[v("svg",{class:"language-icon",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",children:[v("circle",{cx:"12",cy:"12",r:"10"}),v("path",{d:"M2 12h20"}),v("path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"})]}),v("select",{class:"language-select",onchange:"var p=new URLSearchParams(window.location.search);p.set('ui_locales',this.value);window.location.search=p.toString()",children:n.map(r=>v("option",{value:r,selected:r===e,children:Ea[r]||r}))})]})]})}function U5(e){return v(Pfe,{...e}).toString()}function B5(e,t,n,r){let i=e.replace("{%- auth0:head -%}",t).replace("{%- auth0:widget -%}",n);return r&&(i=i.replace("{%- auth0:footer -%}",r)),i}function qn(e){return async t=>{const{state:n,error:r,error_description:i,ui_locales:s}=t.req.valid("query");let a,c,l,u;try{const C=await Ae(t,n,!0);a=C.theme,c=C.branding,l=C.client,u=C.loginSession}catch(C){throw console.error(`[u2/${e}] Failed to initialize route:`,C),C}s&&s!==u.authParams?.ui_locales&&(await t.env.data.loginSessions.update(l.tenant.id,u.id,{authParams:{...u.authParams,ui_locales:s}}),u.authParams&&(u.authParams.ui_locales=s));let d=null;try{d=await t.env.data.universalLoginTemplates.get(t.var.tenant_id)}catch{}const f=t.req.header("Accept-Language"),p=O5(s||u.authParams?.ui_locales,f),h=sm(e),_=await R5(t,t.var.tenant_id,e,p),g=[];i?g.push({text:i,type:"error"}):r&&g.push({text:r,type:"error"});const y=l.client_metadata?.universal_login_version==="2"?"/u2":"/u",m={ctx:t,tenant:l.tenant,client:l,branding:c??void 0,connections:l.connections,state:n,prefill:{username:u.authParams.username,email:u.authParams.username},data:{email:u.authParams.username},customText:_,language:p,promptScreen:h,routePrefix:y,messages:g.length>0?g:void 0},w=j5(e,m);if(!w)throw new I(404,{message:`Screen not found: ${e}`});let k;try{k=await w}catch(C){throw console.error(`[u2/${e}] Screen handler error:`,C),console.error(`[u2/${e}] Context:`,{tenant_id:l.tenant?.id,client_id:l.client_id,client_name:l.name,state:n}),C}const S={...k.screen,action:`/u2/screen/${e}?state=${encodeURIComponent(n)}`,links:k.screen.links?.map(C=>({...C,href:C.href.replace("/u/widget/","/u2/").replace("/u2/signup","/u2/signup").replace("/u/signup","/u2/signup").replace("/u/enter-","/u2/enter-")}))},b={client_id:u.authParams.client_id,...u.authParams.redirect_uri&&{redirect_uri:u.authParams.redirect_uri},...u.authParams.scope&&{scope:u.authParams.scope},...u.authParams.audience&&{audience:u.authParams.audience},...u.authParams.nonce&&{nonce:u.authParams.nonce},...u.authParams.response_type&&{response_type:u.authParams.response_type}},x=JSON.stringify(S),A=k.branding?JSON.stringify(k.branding):void 0,E=JSON.stringify(b),P=a?JSON.stringify(a):void 0,R=await om({screenId:e,screenJson:x,brandingJson:A,themeJson:P,state:n,authParamsJson:E});if(d){const C=Aa(c),L=L5({clientName:l.name||"AuthHero",branding:C,themePageBackground:a?.page_background,theme:a}),B=D5({state:n,screenId:e,authParams:b,screenJson:x,brandingJson:A,themeJson:P,widgetHtml:R,poweredByLogo:t.env.poweredByLogo}),V=U5({language:p,availableLanguages:Object.keys(Ea)}),D=B5(d.body,L,B,V);return t.html(D)}return t.html(v(im,{widgetHtml:R,screenId:e,branding:Aa(c),theme:a,themePageBackground:a?.page_background,clientName:l.name||"AuthHero",poweredByLogo:t.env.poweredByLogo,language:p,availableLanguages:Object.keys(Ea),termsAndConditionsUrl:Ft(l.client_metadata?.termsAndConditionsUrl)}))}}const M5=o.z.object({state:o.z.string().openapi({description:"The login session state"}),error:o.z.string().optional().openapi({description:"Error code from failed authentication"}),error_description:o.z.string().optional().openapi({description:"Human-readable error description"}),ui_locales:o.z.string().optional().openapi({description:"Language override from the language picker (e.g. 'en', 'sv')"})});function Fn(e,t,n){return o.createRoute({tags:["u2"],method:"get",path:t,request:{query:M5},responses:{200:{description:n,content:{"text/html":{schema:o.z.string()}}}}})}function Hn(e,t,n){return o.createRoute({tags:["u2"],method:"post",path:t,request:{query:M5,body:{content:{"application/x-www-form-urlencoded":{schema:o.z.record(o.z.string(),o.z.string())}}}},responses:{200:{description:n,content:{"text/html":{schema:o.z.string()}}},302:{description:"Redirect to next screen or external URL"}}})}function Vn(e){return async t=>{const{state:n,ui_locales:r}=t.req.valid("query"),i=await t.req.parseBody(),s={};for(const[C,L]of Object.entries(i))s[C]=L;const{theme:a,branding:c,client:l,loginSession:u}=await Ae(t,n,!0);r&&r!==u.authParams?.ui_locales&&(await t.env.data.loginSessions.update(l.tenant.id,u.id,{authParams:{...u.authParams,ui_locales:r}}),u.authParams&&(u.authParams.ui_locales=r));const d=t.req.header("Accept-Language"),f=O5(r||u.authParams?.ui_locales,d),p=sm(e),h=await R5(t,t.var.tenant_id,e,f),_=l.client_metadata?.universal_login_version==="2"?"/u2":"/u",g={ctx:t,tenant:l.tenant,client:l,branding:c??void 0,connections:l.connections,state:n,prefill:{username:u.authParams.username,email:u.authParams.username},data:{email:u.authParams.username},customText:h,language:f,promptScreen:p,routePrefix:_},y=I5(e);if(!y?.handler.post)throw new I(400,{message:`Screen ${e} does not support POST submissions`});const m=await y.handler.post(g,s);if("redirect"in m){const C=new Headers;if(C.set("Location",m.redirect),m.cookies&&m.cookies.length>0)for(const L of m.cookies)C.append("Set-Cookie",L);return new Response(null,{status:302,headers:C})}if("response"in m)return m.response;const w=m.screen;let k=null;try{k=await t.env.data.universalLoginTemplates.get(t.var.tenant_id)}catch{}const S={client_id:u.authParams.client_id,...u.authParams.redirect_uri&&{redirect_uri:u.authParams.redirect_uri},...u.authParams.scope&&{scope:u.authParams.scope},...u.authParams.audience&&{audience:u.authParams.audience},...u.authParams.nonce&&{nonce:u.authParams.nonce},...u.authParams.response_type&&{response_type:u.authParams.response_type}},b=JSON.stringify(w.screen),x=w.branding?JSON.stringify(w.branding):void 0,A=JSON.stringify(S),E=a?JSON.stringify(a):void 0,P=w.screen.name||e,R=await om({screenId:P,screenJson:b,brandingJson:x,themeJson:E,state:n,authParamsJson:A});if(k){const C=Aa(c),L=L5({clientName:l.name||"AuthHero",branding:C,themePageBackground:a?.page_background,theme:a}),B=D5({state:n,screenId:P,authParams:S,screenJson:b,brandingJson:x,themeJson:E,widgetHtml:R,poweredByLogo:t.env.poweredByLogo}),V=B5(k.body,L,B,U5({language:f,availableLanguages:Object.keys(Ea)}));return t.html(V)}return t.html(v(im,{widgetHtml:R,screenId:P,branding:Aa(c),theme:a,themePageBackground:a?.page_background,clientName:l.name||"AuthHero",poweredByLogo:t.env.poweredByLogo,language:f,availableLanguages:Object.keys(Ea),termsAndConditionsUrl:Ft(l.client_metadata?.termsAndConditionsUrl)}))}}const q5=new o.OpenAPIHono().openapi(Fn("login","/login","Login screen - combined email, password, and social login"),qn("login")).openapi(Fn("identifier","/login/identifier","Identifier screen - collects email/username"),qn("identifier")).openapi(Fn("enter-code","/enter-code","Enter code screen - OTP verification"),qn("enter-code")).openapi(Fn("enter-password","/enter-password","Enter password screen"),qn("enter-password")).openapi(Fn("signup","/signup","Signup screen - new user registration"),qn("signup")).openapi(Fn("forgot-password","/forgot-password","Forgot password screen"),qn("forgot-password")).openapi(Fn("reset-password","/reset-password","Reset password screen"),qn("reset-password")).openapi(Fn("impersonate","/impersonate","Impersonate screen - allows users with permission to impersonate other users"),qn("impersonate")).openapi(Hn("login","/login","Process login form submission (no-JS fallback)"),Vn("login")).openapi(Hn("identifier","/login/identifier","Process identifier form submission (no-JS fallback)"),Vn("identifier")).openapi(Hn("enter-code","/enter-code","Process enter-code form submission (no-JS fallback)"),Vn("enter-code")).openapi(Hn("enter-password","/enter-password","Process enter-password form submission (no-JS fallback)"),Vn("enter-password")).openapi(Hn("signup","/signup","Process signup form submission (no-JS fallback)"),Vn("signup")).openapi(Hn("forgot-password","/forgot-password","Process forgot-password form submission (no-JS fallback)"),Vn("forgot-password")).openapi(Hn("reset-password","/reset-password","Process reset-password form submission (no-JS fallback)"),Vn("reset-password")).openapi(Hn("impersonate","/impersonate","Process impersonate form submission (no-JS fallback)"),Vn("impersonate")).openapi(Fn("check-account","/check-account","Check account screen - allows users to continue with existing session"),qn("check-account")).openapi(Hn("check-account","/check-account","Process check-account form submission (no-JS fallback)"),Vn("check-account"));q5.doc("/spec",{openapi:"3.0.0",info:{version:"1.0.0",title:"U2 Universal Login (Client-side Widget)",description:`Client-side widget-based universal login. Available built-in screens: ${sh().join(", ")}`}});function Ac(e,t,n,r,i,s,a,c){const l=[];let u=0;for(const f of i){let p=f;if(c&&f.config&&"default_value"in f.config&&typeof f.config.default_value=="string"&&f.config.default_value.startsWith("{{")&&f.config.default_value.endsWith("}}")){const h=wo(f.config.default_value,{user:c});p={...f,config:{...f.config,default_value:h??""}}}(p.type==="TEXT"||p.type==="EMAIL"||p.type==="PASSWORD"||p.type==="NUMBER"||p.type==="TEL"||p.type==="URL")&&!p.label&&p.config&&"placeholder"in p.config&&p.config.placeholder?l.push({...p,label:p.config.placeholder,config:{...p.config,placeholder:void 0},order:u++}):l.push({...p,order:u++})}return{name:`form-${r}`,action:`/u2/forms/${e}/nodes/${t}?state=${encodeURIComponent(s)}`,method:"POST",title:n,components:l,messages:a?[{text:a,type:"error"}]:void 0}}async function Ofe(e,t,n,r,i,s,a,c,l){const u=JSON.stringify(n),d=i?JSON.stringify(i):void 0,f=s?JSON.stringify(s):void 0,p=JSON.stringify({client_id:c,state:r});return Ife(e,{screenId:t,screenJson:u,brandingJson:d,themeJson:f,state:r,authParamsJson:p,branding:i,theme:s,clientName:a,poweredByLogo:e.env.poweredByLogo,termsAndConditionsUrl:l})}const Rfe=new o.OpenAPIHono().openapi(o.createRoute({tags:["u2-forms"],method:"get",path:"/:formId/nodes/:nodeId",request:{params:o.z.object({formId:o.z.string(),nodeId:o.z.string()}),query:o.z.object({state:o.z.string()})},responses:{200:{description:"Form node HTML with widget"},404:{description:"Form or node not found"}}}),async e=>{const{formId:t,nodeId:n}=e.req.valid("param"),{state:r}=e.req.valid("query"),{client:i,theme:s,branding:a,loginSession:c}=await Ae(e,r,!0),l=await e.env.data.forms.get(i.tenant.id,t);if(!l)throw new I(404,{message:"Form not found"});const u=(l.nodes||[]).find(h=>h.id===n&&h.type==="STEP");if(!u)throw new I(404,{message:"Node not found or not a STEP node"});const d="components"in u.config?u.config.components:[];let f;if(c.session_id){const h=await e.env.data.sessions.get(i.tenant.id,c.session_id);h?.user_id&&(f=await e.env.data.users.get(i.tenant.id,h.user_id)??void 0)}else c.user_id&&(f=await e.env.data.users.get(i.tenant.id,c.user_id)??void 0);const p=Ac(t,n,l.name,u.alias||u.type,d,r,void 0,f);return Ofe(e,`form-${u.alias||n}`,p,r,a,s,i.name||"AuthHero",i.client_id,Ft(i.client_metadata?.termsAndConditionsUrl))}).openapi(o.createRoute({tags:["u2-forms"],method:"post",path:"/:formId/nodes/:nodeId",request:{params:o.z.object({formId:o.z.string(),nodeId:o.z.string()}),query:o.z.object({state:o.z.string()}),body:{content:{"application/json":{schema:o.z.object({data:o.z.record(o.z.string(),o.z.any())})}}}},responses:{200:{description:"Next screen or redirect",content:{"application/json":{schema:o.z.union([o.z.object({screen:o.z.any(),branding:o.z.any()}),o.z.object({redirect:o.z.string()})])}}},404:{description:"Form or node not found"}}}),async e=>{const{formId:t,nodeId:n}=e.req.valid("param"),{state:r}=e.req.valid("query"),{branding:i,client:s,loginSession:a}=await Ae(e,r,!0);let c,l,u=[];try{if(c=await e.env.data.forms.get(s.tenant.id,t),!c)throw new I(404,{message:"Form not found"});if(l=(c.nodes||[]).find(w=>w.id===n&&w.type==="STEP"),!l)throw new I(404,{message:"Node not found or not a STEP node"});u="components"in l.config?l.config.components:[];const{data:d}=e.req.valid("json"),f=[],p={};for(const w of u)if(gh.has(w.type)){const k=w.id,S=w,b=!!S.required,x=d[k];b&&(!x||x==="")&&f.push(S.label||k),typeof x=="string"&&x!==""&&(p[k]=x)}if(f.length>0){const w=Ac(t,n,c.name,l.alias||l.type,u,r,`Missing required fields: ${f.join(", ")}`);return e.json({screen:w,branding:i})}if(!a.session_id||!a.authParams)throw new Error("Session expired");const h=await e.env.data.sessions.get(s.tenant.id,a.session_id);if(!h||!h.user_id)throw new Error("Session expired");const _=await e.env.data.users.get(s.tenant.id,h.user_id);if(!_)throw new Error("Session expired");const g=l.config?.next_node;if(g&&c.nodes){const w=async S=>{const b=await e.env.data.flows.get(s.tenant.id,S);return b?{actions:b.actions?.map(x=>({type:x.type,action:x.action,params:"params"in x&&x.params?x.params:void 0}))}:null},k=await zu(c.nodes,g,{user:_,submittedFields:p},w);if(k){if(k.userUpdates&&k.userUpdates.length>0){const S=Su(k.userUpdates);for(const b of S){const x=$u(b.changes,_);await e.env.data.users.update(s.tenant.id,b.user_id,x)}}if(k.type==="redirect"){const S=k.target,b=xu(S,k.customUrl,r);if(S==="change-email"||S==="account"){const x=`/u2/continue?state=${encodeURIComponent(r)}`;await vu(e,s.tenant.id,a,[S],x)}return e.json({redirect:b})}if(k.type==="step"){const S=(c.nodes||[]).find(b=>b.id===k.nodeId&&b.type==="STEP");if(S){const b="components"in S.config?S.config.components:[],x=Ac(t,k.nodeId,c.name,S.alias||S.type,b,r);return e.json({screen:x,branding:i,navigateUrl:`/u2/forms/${t}/nodes/${k.nodeId}?state=${encodeURIComponent(r)}`})}return e.json({redirect:`/u2/forms/${t}/nodes/${k.nodeId}?state=${encodeURIComponent(r)}`})}}}await na(e,s.tenant.id,a);const y=await gt(e,{authParams:a.authParams,client:s,user:_,loginSession:a,skipHooks:!0}),m=y.headers.get("location");if(m){const w=y.headers.getSetCookie?.()||[],k=e.json({redirect:m});return w.forEach(S=>{k.headers.append("set-cookie",S)}),k}return y}catch(d){if(d instanceof I)throw d;console.error("Form node POST error:",d);const p=d instanceof Error&&d.message==="Session expired"?"Your session has expired. Please try again.":"An error occurred. Please try again.",h=Ac(t,n,c?.name||"",l?.alias||n||"",u,r,p);return e.json({screen:h,branding:i})}});function Lfe(e){const t=new o.OpenAPIHono,n=e.dataAdapter.cache||is({defaultTtlSeconds:0,maxEntries:100,cleanupIntervalMs:0}),r=e.dataAdapter.cache?300:0;t.onError((s,a)=>s instanceof qt?a.redirect(s.location,s.status):s instanceof I?a.text(s.message||"Error",s.status):a.text("Unexpected error",500)),t.use("/screen/*",Rk({origin:"*",allowHeaders:["Content-Type","Tenant-Id"],allowMethods:["GET","POST","OPTIONS"],maxAge:600})),t.use(async(s,a)=>{const c=Mo(s,e.dataAdapter),l=Qa(c,{defaultTtl:r,cacheEntities:["tenants","connections","clients","clientConnections","customDomains","resourceServers","roles","organizations","branding","themes","promptSettings","forms","hooks"],cache:n});return s.env.data=Ya(s,l),a()}).use(rs).use(ns);const i=t.route("/screen",Efe).route("/forms",Rfe).route("/",q5);return i.doc("/spec",{openapi:"3.0.0",info:{version:"1.0.0",title:"U2 Universal Login (Client-side Widget)"}}),i}var Dfe=Object.defineProperty,Ufe=(e,t,n)=>t in e?Dfe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,go=(e,t,n)=>Ufe(e,typeof t!="symbol"?t+"":t,n);const ft=o.z.object({"#text":o.z.string()}),Bfe=o.z.object({"#text":o.z.string(),"@_xmlns:saml":o.z.string().optional()}),Mfe=o.z.object({"samlp:AuthnRequest":o.z.object({"saml:Issuer":Bfe,"@_xmlns:samlp":o.z.string(),"@_xmlns:saml":o.z.string().optional(),"@_ForceAuthn":o.z.string().transform(e=>e.toLowerCase()==="true").optional(),"@_ID":o.z.string(),"@_IssueInstant":o.z.string().datetime(),"@_Destination":o.z.string().url(),"@_AssertionConsumerServiceURL":o.z.string().url().optional(),"@_ProtocolBinding":o.z.string().optional(),"@_Version":o.z.string()})});o.z.array(o.z.object({":@":o.z.object({"@_xmlns":o.z.string(),"@_entityID":o.z.string()}),EntityDescriptor:o.z.array(o.z.object({":@":o.z.object({"@_protocolSupportEnumeration":o.z.string()}),IDPSSODescriptor:o.z.array(o.z.union([o.z.object({KeyDescriptor:o.z.array(o.z.object({KeyInfo:o.z.array(o.z.object({X509Data:o.z.array(o.z.object({X509Certificate:o.z.array(ft)}))})),":@":o.z.object({"@_xmlns":o.z.string()})})),":@":o.z.object({"@_use":o.z.string()})}),o.z.object({SingleLogoutService:o.z.array(o.z.object({})),":@":o.z.object({"@_Binding":o.z.string(),"@_Location":o.z.string()})}),o.z.object({NameIDFormat:o.z.array(ft)}),o.z.object({SingleSignOnService:o.z.array(o.z.object({})),":@":o.z.object({"@_Binding":o.z.string(),"@_Location":o.z.string()})}),o.z.object({Attribute:o.z.array(o.z.object({})),":@":o.z.object({"@_Name":o.z.string(),"@_NameFormat":o.z.string(),"@_FriendlyName":o.z.string(),"@_xmlns":o.z.string()})})]))}))}));const qfe=o.z.object({"saml:Attribute":o.z.array(o.z.object({"saml:AttributeValue":o.z.array(o.z.object({"#text":o.z.string()})),":@":o.z.object({"@_xmlns:xs":o.z.string().optional(),"@_xmlns:xsi":o.z.string(),"@_xsi:type":o.z.string()}).optional()})),":@":o.z.object({"@_Name":o.z.string(),"@_NameFormat":o.z.string(),"@_FriendlyName":o.z.string().optional()})}),Ffe=o.z.object({"ds:Transform":o.z.array(o.z.any()),":@":o.z.object({"@_Algorithm":o.z.string()})}),av=o.z.object({"ds:Signature":o.z.array(o.z.union([o.z.object({"ds:SignedInfo":o.z.array(o.z.union([o.z.object({"ds:CanonicalizationMethod":o.z.array(o.z.object({":@":o.z.object({"@_Algorithm":o.z.string()})}))}),o.z.object({"ds:SignatureMethod":o.z.array(o.z.object({":@":o.z.object({"@_Algorithm":o.z.string()})}))}),o.z.object({"ds:Reference":o.z.array(o.z.union([o.z.object({"ds:Transforms":o.z.array(Ffe)}),o.z.object({"ds:DigestMethod":o.z.array(o.z.object({":@":o.z.object({"@_Algorithm":o.z.string()})}))}),o.z.object({"ds:DigestValue":o.z.array(ft)})])),":@":o.z.object({"@_URI":o.z.string().optional()}).optional()})]))}),o.z.object({"ds:SignatureValue":o.z.array(ft)}),o.z.object({"ds:KeyInfo":o.z.array(o.z.union([o.z.object({"ds:KeyValue":o.z.array(o.z.object({"ds:RSAKeyValue":o.z.array(o.z.union([o.z.object({"ds:Modulus":o.z.array(ft)}),o.z.object({"ds:Exponent":o.z.array(ft)})]))}))}),o.z.object({"ds:X509Data":o.z.array(o.z.object({"ds:X509Certificate":o.z.array(ft)}))}),o.z.object({"ds:KeyValue":o.z.array(o.z.object({"ds:RSAKeyValue":o.z.array(o.z.union([o.z.object({"ds:Modulus":o.z.array(ft)}),o.z.object({"ds:Exponent":o.z.array(ft)})]))})),"ds:X509Data":o.z.array(o.z.object({"ds:X509Certificate":o.z.array(ft)}))})]))})])),":@":o.z.object({"@_xmlns:ds":o.z.string().optional()}).optional()});o.z.array(o.z.object({"samlp:Response":o.z.array(o.z.union([o.z.object({"saml:Issuer":o.z.array(ft)}),av,o.z.object({"samlp:Status":o.z.array(o.z.object({"samlp:StatusCode":o.z.array(ft),":@":o.z.object({"@_Value":o.z.string()})}))}),o.z.object({"saml:Assertion":o.z.array(o.z.union([o.z.object({"saml:Issuer":o.z.array(ft)}),av,o.z.object({"saml:Subject":o.z.array(o.z.union([o.z.object({"saml:NameID":o.z.array(ft),":@":o.z.object({"@_Format":o.z.string()})}),o.z.object({"saml:SubjectConfirmation":o.z.array(o.z.object({"saml:SubjectConfirmationData":o.z.array(o.z.any()),":@":o.z.object({"@_InResponseTo":o.z.string(),"@_NotOnOrAfter":o.z.string(),"@_Recipient":o.z.string()})})),":@":o.z.object({"@_Method":o.z.string()})})]))}),o.z.object({"saml:Conditions":o.z.array(o.z.object({"saml:AudienceRestriction":o.z.array(o.z.object({"saml:Audience":o.z.array(ft)}))})),":@":o.z.object({"@_NotBefore":o.z.string(),"@_NotOnOrAfter":o.z.string()})}),o.z.object({"saml:AuthnStatement":o.z.array(o.z.object({"saml:AuthnContext":o.z.array(o.z.object({"saml:AuthnContextClassRef":o.z.array(ft)}))})),":@":o.z.object({"@_AuthnInstant":o.z.string(),"@_SessionIndex":o.z.string(),"@_SessionNotOnOrAfter":o.z.string()})}),o.z.object({"saml:AttributeStatement":o.z.array(qfe)})])),":@":o.z.object({"@_xmlns":o.z.string(),"@_ID":o.z.string(),"@_IssueInstant":o.z.string(),"@_Version":o.z.string()})})])),":@":o.z.object({"@_xmlns:samlp":o.z.string(),"@_xmlns:saml":o.z.string(),"@_Destination":o.z.string(),"@_ID":o.z.string(),"@_InResponseTo":o.z.string(),"@_IssueInstant":o.z.string(),"@_Version":o.z.string()})}));var F5={},Od={};(function(e){const t=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",n=t+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040",r="["+t+"]["+n+"]*",i=new RegExp("^"+r+"$"),s=function(c,l){const u=[];let d=l.exec(c);for(;d;){const f=[];f.startIndex=l.lastIndex-d[0].length;const p=d.length;for(let h=0;h<p;h++)f.push(d[h]);u.push(f),d=l.exec(c)}return u},a=function(c){const l=i.exec(c);return!(l===null||typeof l>"u")};e.isExist=function(c){return typeof c<"u"},e.isEmptyObject=function(c){return Object.keys(c).length===0},e.merge=function(c,l,u){if(l){const d=Object.keys(l),f=d.length;for(let p=0;p<f;p++)u==="strict"?c[d[p]]=[l[d[p]]]:c[d[p]]=l[d[p]]}},e.getValue=function(c){return e.isExist(c)?c:""},e.isName=a,e.getAllMatches=s,e.nameRegexp=r})(Od);const am=Od,Hfe={allowBooleanAttributes:!1,unpairedTags:[]};F5.validate=function(e,t){t=Object.assign({},Hfe,t);const n=[];let r=!1,i=!1;e[0]==="\uFEFF"&&(e=e.substr(1));for(let s=0;s<e.length;s++)if(e[s]==="<"&&e[s+1]==="?"){if(s+=2,s=lv(e,s),s.err)return s}else if(e[s]==="<"){let a=s;if(s++,e[s]==="!"){s=uv(e,s);continue}else{let c=!1;e[s]==="/"&&(c=!0,s++);let l="";for(;s<e.length&&e[s]!==">"&&e[s]!==" "&&e[s]!==" "&&e[s]!==`
|
|
404
|
+
`;return v(Ro,{children:[v("meta",{charSet:"UTF-8"}),v("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),v("title",{children:["Sign in - ",e]}),i&&v("link",{rel:"icon",href:i}),s&&v("link",{rel:"stylesheet",href:s}),v("style",{dangerouslySetInnerHTML:{__html:h}}),v("script",{type:"module",src:`/u/widget/authhero-widget.esm.js?v=${Lo}`})]})}function L$(e){return v(Nfe,{...e}).toString()}function Tfe({state:e,screenId:t,authParams:n,screenJson:r,brandingJson:i,themeJson:s,widgetHtml:a,poweredByLogo:c}){const l=JSON.stringify(n),u=c?.url?Ft(c.url):null,d=c?.href?Ft(c.href):null;return v("div",{class:"widget-container","data-authhero-widget-container":!0,"data-screen":t,children:[a?v("div",{"data-screen":t,dangerouslySetInnerHTML:{__html:a}}):v("div",{"data-screen":t,children:v("authhero-widget",{id:"widget",screen:r,branding:i,theme:s,state:e,"auth-params":l,"auto-submit":"true","auto-navigate":"true"})}),u&&v("div",{class:"powered-by",children:d?v("a",{href:d,target:"_blank",rel:"noopener noreferrer",children:v("img",{src:u,alt:c?.alt||"",height:c?.height||20})}):v("img",{src:u,alt:c?.alt||"",height:c?.height||20})})]})}function D$(e){return v(Tfe,{...e}).toString()}const Ea={en:"English",nb:"Norsk",sv:"Svenska",da:"Dansk",fi:"Suomi",cs:"Čeština",pl:"Polski",it:"Italiano"};function Pfe({language:e,availableLanguages:t}){const n=t&&t.length>1?t:void 0;return v("div",{class:"page-footer",children:[v("button",{class:"dark-mode-toggle",type:"button","aria-label":"Toggle dark mode",onclick:"(function(btn){var h=document.documentElement,isDark=h.classList.toggle('ah-dark-mode');var v={'--ah-color-text':'#f9fafb','--ah-color-text-muted':'#9ca3af','--ah-color-text-label':'#d1d5db','--ah-color-header':'#f9fafb','--ah-color-bg':'#1f2937','--ah-color-bg-hover':'#374151','--ah-color-bg-muted':'#374151','--ah-color-bg-disabled':'#4b5563','--ah-color-input-bg':'#374151','--ah-color-border':'#4b5563','--ah-color-border-hover':'#6b7280','--ah-color-border-muted':'#374151','--ah-color-error-bg':'rgba(220,38,38,0.2)','--ah-color-success-bg':'rgba(22,163,74,0.2)','--ah-color-link':'#60a5fa'};var w=document.querySelector('authhero-widget');for(var k in v){if(isDark){h.style.setProperty(k,v[k]);if(w)w.style.setProperty(k,v[k])}else{h.style.removeProperty(k);if(w)w.style.removeProperty(k)}}btn.querySelector('.icon-sun').style.display=isDark?'none':'block';btn.querySelector('.icon-moon').style.display=isDark?'block':'none';try{localStorage.setItem('ah-dark-mode',isDark?'1':'0')}catch(e){}})(this)",children:[v("svg",{class:"icon-sun",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",children:[v("circle",{cx:"12",cy:"12",r:"5"}),v("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),v("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),v("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),v("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),v("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),v("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),v("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),v("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"})]}),v("svg",{class:"icon-moon",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",style:"display:none",children:v("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})})]}),n&&v("div",{class:"language-picker",children:[v("svg",{class:"language-icon",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",children:[v("circle",{cx:"12",cy:"12",r:"10"}),v("path",{d:"M2 12h20"}),v("path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"})]}),v("select",{class:"language-select",onchange:"var p=new URLSearchParams(window.location.search);p.set('ui_locales',this.value);window.location.search=p.toString()",children:n.map(r=>v("option",{value:r,selected:r===e,children:Ea[r]||r}))})]})]})}function U$(e){return v(Pfe,{...e}).toString()}function B$(e,t,n,r){let i=e.replace("{%- auth0:head -%}",t).replace("{%- auth0:widget -%}",n);return r&&(i=i.replace("{%- auth0:footer -%}",r)),i}function qn(e){return async t=>{const{state:n,error:r,error_description:i,ui_locales:s}=t.req.valid("query");let a,c,l,u;try{const C=await Ae(t,n,!0);a=C.theme,c=C.branding,l=C.client,u=C.loginSession}catch(C){throw console.error(`[u2/${e}] Failed to initialize route:`,C),C}s&&s!==u.authParams?.ui_locales&&(await t.env.data.loginSessions.update(l.tenant.id,u.id,{authParams:{...u.authParams,ui_locales:s}}),u.authParams&&(u.authParams.ui_locales=s));let d=null;try{d=await t.env.data.universalLoginTemplates.get(t.var.tenant_id)}catch{}const f=t.req.header("Accept-Language"),p=O$(s||u.authParams?.ui_locales,f),h=sm(e),_=await R$(t,t.var.tenant_id,e,p),g=[];i?g.push({text:i,type:"error"}):r&&g.push({text:r,type:"error"});const y=l.client_metadata?.universal_login_version==="2"?"/u2":"/u",m={ctx:t,tenant:l.tenant,client:l,branding:c??void 0,connections:l.connections,state:n,prefill:{username:u.authParams.username,email:u.authParams.username},data:{email:u.authParams.username},customText:_,language:p,promptScreen:h,routePrefix:y,messages:g.length>0?g:void 0},w=j$(e,m);if(!w)throw new I(404,{message:`Screen not found: ${e}`});let k;try{k=await w}catch(C){throw console.error(`[u2/${e}] Screen handler error:`,C),console.error(`[u2/${e}] Context:`,{tenant_id:l.tenant?.id,client_id:l.client_id,client_name:l.name,state:n}),C}const S={...k.screen,action:`/u2/screen/${e}?state=${encodeURIComponent(n)}`,links:k.screen.links?.map(C=>({...C,href:C.href.replace("/u/widget/","/u2/").replace("/u2/signup","/u2/signup").replace("/u/signup","/u2/signup").replace("/u/enter-","/u2/enter-")}))},b={client_id:u.authParams.client_id,...u.authParams.redirect_uri&&{redirect_uri:u.authParams.redirect_uri},...u.authParams.scope&&{scope:u.authParams.scope},...u.authParams.audience&&{audience:u.authParams.audience},...u.authParams.nonce&&{nonce:u.authParams.nonce},...u.authParams.response_type&&{response_type:u.authParams.response_type}},x=JSON.stringify(S),A=k.branding?JSON.stringify(k.branding):void 0,E=JSON.stringify(b),P=a?JSON.stringify(a):void 0,R=await om({screenId:e,screenJson:x,brandingJson:A,themeJson:P,state:n,authParamsJson:E});if(d){const C=Aa(c),L=L$({clientName:l.name||"AuthHero",branding:C,themePageBackground:a?.page_background,theme:a}),B=D$({state:n,screenId:e,authParams:b,screenJson:x,brandingJson:A,themeJson:P,widgetHtml:R,poweredByLogo:t.env.poweredByLogo}),V=U$({language:p,availableLanguages:Object.keys(Ea)}),D=B$(d.body,L,B,V);return t.html(D)}return t.html(v(im,{widgetHtml:R,screenId:e,branding:Aa(c),theme:a,themePageBackground:a?.page_background,clientName:l.name||"AuthHero",poweredByLogo:t.env.poweredByLogo,language:p,availableLanguages:Object.keys(Ea),termsAndConditionsUrl:Ft(l.client_metadata?.termsAndConditionsUrl)}))}}const M$=o.z.object({state:o.z.string().openapi({description:"The login session state"}),error:o.z.string().optional().openapi({description:"Error code from failed authentication"}),error_description:o.z.string().optional().openapi({description:"Human-readable error description"}),ui_locales:o.z.string().optional().openapi({description:"Language override from the language picker (e.g. 'en', 'sv')"})});function Fn(e,t,n){return o.createRoute({tags:["u2"],method:"get",path:t,request:{query:M$},responses:{200:{description:n,content:{"text/html":{schema:o.z.string()}}}}})}function Hn(e,t,n){return o.createRoute({tags:["u2"],method:"post",path:t,request:{query:M$,body:{content:{"application/x-www-form-urlencoded":{schema:o.z.record(o.z.string(),o.z.string())}}}},responses:{200:{description:n,content:{"text/html":{schema:o.z.string()}}},302:{description:"Redirect to next screen or external URL"}}})}function Vn(e){return async t=>{const{state:n,ui_locales:r}=t.req.valid("query"),i=await t.req.parseBody(),s={};for(const[C,L]of Object.entries(i))s[C]=L;const{theme:a,branding:c,client:l,loginSession:u}=await Ae(t,n,!0);r&&r!==u.authParams?.ui_locales&&(await t.env.data.loginSessions.update(l.tenant.id,u.id,{authParams:{...u.authParams,ui_locales:r}}),u.authParams&&(u.authParams.ui_locales=r));const d=t.req.header("Accept-Language"),f=O$(r||u.authParams?.ui_locales,d),p=sm(e),h=await R$(t,t.var.tenant_id,e,f),_=l.client_metadata?.universal_login_version==="2"?"/u2":"/u",g={ctx:t,tenant:l.tenant,client:l,branding:c??void 0,connections:l.connections,state:n,prefill:{username:u.authParams.username,email:u.authParams.username},data:{email:u.authParams.username},customText:h,language:f,promptScreen:p,routePrefix:_},y=I$(e);if(!y?.handler.post)throw new I(400,{message:`Screen ${e} does not support POST submissions`});const m=await y.handler.post(g,s);if("redirect"in m){const C=new Headers;if(C.set("Location",m.redirect),m.cookies&&m.cookies.length>0)for(const L of m.cookies)C.append("Set-Cookie",L);return new Response(null,{status:302,headers:C})}if("response"in m)return m.response;const w=m.screen;let k=null;try{k=await t.env.data.universalLoginTemplates.get(t.var.tenant_id)}catch{}const S={client_id:u.authParams.client_id,...u.authParams.redirect_uri&&{redirect_uri:u.authParams.redirect_uri},...u.authParams.scope&&{scope:u.authParams.scope},...u.authParams.audience&&{audience:u.authParams.audience},...u.authParams.nonce&&{nonce:u.authParams.nonce},...u.authParams.response_type&&{response_type:u.authParams.response_type}},b=JSON.stringify(w.screen),x=w.branding?JSON.stringify(w.branding):void 0,A=JSON.stringify(S),E=a?JSON.stringify(a):void 0,P=w.screen.name||e,R=await om({screenId:P,screenJson:b,brandingJson:x,themeJson:E,state:n,authParamsJson:A});if(k){const C=Aa(c),L=L$({clientName:l.name||"AuthHero",branding:C,themePageBackground:a?.page_background,theme:a}),B=D$({state:n,screenId:P,authParams:S,screenJson:b,brandingJson:x,themeJson:E,widgetHtml:R,poweredByLogo:t.env.poweredByLogo}),V=B$(k.body,L,B,U$({language:f,availableLanguages:Object.keys(Ea)}));return t.html(V)}return t.html(v(im,{widgetHtml:R,screenId:P,branding:Aa(c),theme:a,themePageBackground:a?.page_background,clientName:l.name||"AuthHero",poweredByLogo:t.env.poweredByLogo,language:f,availableLanguages:Object.keys(Ea),termsAndConditionsUrl:Ft(l.client_metadata?.termsAndConditionsUrl)}))}}const q$=new o.OpenAPIHono().openapi(Fn("login","/login","Login screen - combined email, password, and social login"),qn("login")).openapi(Fn("identifier","/login/identifier","Identifier screen - collects email/username"),qn("identifier")).openapi(Fn("enter-code","/enter-code","Enter code screen - OTP verification"),qn("enter-code")).openapi(Fn("enter-password","/enter-password","Enter password screen"),qn("enter-password")).openapi(Fn("signup","/signup","Signup screen - new user registration"),qn("signup")).openapi(Fn("forgot-password","/forgot-password","Forgot password screen"),qn("forgot-password")).openapi(Fn("reset-password","/reset-password","Reset password screen"),qn("reset-password")).openapi(Fn("impersonate","/impersonate","Impersonate screen - allows users with permission to impersonate other users"),qn("impersonate")).openapi(Hn("login","/login","Process login form submission (no-JS fallback)"),Vn("login")).openapi(Hn("identifier","/login/identifier","Process identifier form submission (no-JS fallback)"),Vn("identifier")).openapi(Hn("enter-code","/enter-code","Process enter-code form submission (no-JS fallback)"),Vn("enter-code")).openapi(Hn("enter-password","/enter-password","Process enter-password form submission (no-JS fallback)"),Vn("enter-password")).openapi(Hn("signup","/signup","Process signup form submission (no-JS fallback)"),Vn("signup")).openapi(Hn("forgot-password","/forgot-password","Process forgot-password form submission (no-JS fallback)"),Vn("forgot-password")).openapi(Hn("reset-password","/reset-password","Process reset-password form submission (no-JS fallback)"),Vn("reset-password")).openapi(Hn("impersonate","/impersonate","Process impersonate form submission (no-JS fallback)"),Vn("impersonate")).openapi(Fn("check-account","/check-account","Check account screen - allows users to continue with existing session"),qn("check-account")).openapi(Hn("check-account","/check-account","Process check-account form submission (no-JS fallback)"),Vn("check-account"));q$.doc("/spec",{openapi:"3.0.0",info:{version:"1.0.0",title:"U2 Universal Login (Client-side Widget)",description:`Client-side widget-based universal login. Available built-in screens: ${sh().join(", ")}`}});function Ac(e,t,n,r,i,s,a,c){const l=[];let u=0;for(const f of i){let p=f;if(c&&f.config&&"default_value"in f.config&&typeof f.config.default_value=="string"&&f.config.default_value.startsWith("{{")&&f.config.default_value.endsWith("}}")){const h=wo(f.config.default_value,{user:c});p={...f,config:{...f.config,default_value:h??""}}}(p.type==="TEXT"||p.type==="EMAIL"||p.type==="PASSWORD"||p.type==="NUMBER"||p.type==="TEL"||p.type==="URL")&&!p.label&&p.config&&"placeholder"in p.config&&p.config.placeholder?l.push({...p,label:p.config.placeholder,config:{...p.config,placeholder:void 0},order:u++}):l.push({...p,order:u++})}return{name:`form-${r}`,action:`/u2/forms/${e}/nodes/${t}?state=${encodeURIComponent(s)}`,method:"POST",title:n,components:l,messages:a?[{text:a,type:"error"}]:void 0}}async function Ofe(e,t,n,r,i,s,a,c,l){const u=JSON.stringify(n),d=i?JSON.stringify(i):void 0,f=s?JSON.stringify(s):void 0,p=JSON.stringify({client_id:c,state:r});return Ife(e,{screenId:t,screenJson:u,brandingJson:d,themeJson:f,state:r,authParamsJson:p,branding:i,theme:s,clientName:a,poweredByLogo:e.env.poweredByLogo,termsAndConditionsUrl:l})}const Rfe=new o.OpenAPIHono().openapi(o.createRoute({tags:["u2-forms"],method:"get",path:"/:formId/nodes/:nodeId",request:{params:o.z.object({formId:o.z.string(),nodeId:o.z.string()}),query:o.z.object({state:o.z.string()})},responses:{200:{description:"Form node HTML with widget"},404:{description:"Form or node not found"}}}),async e=>{const{formId:t,nodeId:n}=e.req.valid("param"),{state:r}=e.req.valid("query"),{client:i,theme:s,branding:a,loginSession:c}=await Ae(e,r,!0),l=await e.env.data.forms.get(i.tenant.id,t);if(!l)throw new I(404,{message:"Form not found"});const u=(l.nodes||[]).find(h=>h.id===n&&h.type==="STEP");if(!u)throw new I(404,{message:"Node not found or not a STEP node"});const d="components"in u.config?u.config.components:[];let f;if(c.session_id){const h=await e.env.data.sessions.get(i.tenant.id,c.session_id);h?.user_id&&(f=await e.env.data.users.get(i.tenant.id,h.user_id)??void 0)}else c.user_id&&(f=await e.env.data.users.get(i.tenant.id,c.user_id)??void 0);const p=Ac(t,n,l.name,u.alias||u.type,d,r,void 0,f);return Ofe(e,`form-${u.alias||n}`,p,r,a,s,i.name||"AuthHero",i.client_id,Ft(i.client_metadata?.termsAndConditionsUrl))}).openapi(o.createRoute({tags:["u2-forms"],method:"post",path:"/:formId/nodes/:nodeId",request:{params:o.z.object({formId:o.z.string(),nodeId:o.z.string()}),query:o.z.object({state:o.z.string()}),body:{content:{"application/json":{schema:o.z.object({data:o.z.record(o.z.string(),o.z.any())})}}}},responses:{200:{description:"Next screen or redirect",content:{"application/json":{schema:o.z.union([o.z.object({screen:o.z.any(),branding:o.z.any()}),o.z.object({redirect:o.z.string()})])}}},404:{description:"Form or node not found"}}}),async e=>{const{formId:t,nodeId:n}=e.req.valid("param"),{state:r}=e.req.valid("query"),{branding:i,client:s,loginSession:a}=await Ae(e,r,!0);let c,l,u=[];try{if(c=await e.env.data.forms.get(s.tenant.id,t),!c)throw new I(404,{message:"Form not found"});if(l=(c.nodes||[]).find(w=>w.id===n&&w.type==="STEP"),!l)throw new I(404,{message:"Node not found or not a STEP node"});u="components"in l.config?l.config.components:[];const{data:d}=e.req.valid("json"),f=[],p={};for(const w of u)if(gh.has(w.type)){const k=w.id,S=w,b=!!S.required,x=d[k];b&&(!x||x==="")&&f.push(S.label||k),typeof x=="string"&&x!==""&&(p[k]=x)}if(f.length>0){const w=Ac(t,n,c.name,l.alias||l.type,u,r,`Missing required fields: ${f.join(", ")}`);return e.json({screen:w,branding:i})}if(!a.session_id||!a.authParams)throw new Error("Session expired");const h=await e.env.data.sessions.get(s.tenant.id,a.session_id);if(!h||!h.user_id)throw new Error("Session expired");const _=await e.env.data.users.get(s.tenant.id,h.user_id);if(!_)throw new Error("Session expired");const g=l.config?.next_node;if(g&&c.nodes){const w=async S=>{const b=await e.env.data.flows.get(s.tenant.id,S);return b?{actions:b.actions?.map(x=>({type:x.type,action:x.action,params:"params"in x&&x.params?x.params:void 0}))}:null},k=await zu(c.nodes,g,{user:_,submittedFields:p},w);if(k){if(k.userUpdates&&k.userUpdates.length>0){const S=Su(k.userUpdates);for(const b of S){const x=$u(b.changes,_);await e.env.data.users.update(s.tenant.id,b.user_id,x)}}if(k.type==="redirect"){const S=k.target,b=xu(S,k.customUrl,r);if(S==="change-email"||S==="account"){const x=`/u2/continue?state=${encodeURIComponent(r)}`;await vu(e,s.tenant.id,a,[S],x)}return e.json({redirect:b})}if(k.type==="step"){const S=(c.nodes||[]).find(b=>b.id===k.nodeId&&b.type==="STEP");if(S){const b="components"in S.config?S.config.components:[],x=Ac(t,k.nodeId,c.name,S.alias||S.type,b,r);return e.json({screen:x,branding:i,navigateUrl:`/u2/forms/${t}/nodes/${k.nodeId}?state=${encodeURIComponent(r)}`})}return e.json({redirect:`/u2/forms/${t}/nodes/${k.nodeId}?state=${encodeURIComponent(r)}`})}}}await na(e,s.tenant.id,a);const y=await gt(e,{authParams:a.authParams,client:s,user:_,loginSession:a,skipHooks:!0}),m=y.headers.get("location");if(m){const w=y.headers.getSetCookie?.()||[],k=e.json({redirect:m});return w.forEach(S=>{k.headers.append("set-cookie",S)}),k}return y}catch(d){if(d instanceof I)throw d;console.error("Form node POST error:",d);const p=d instanceof Error&&d.message==="Session expired"?"Your session has expired. Please try again.":"An error occurred. Please try again.",h=Ac(t,n,c?.name||"",l?.alias||n||"",u,r,p);return e.json({screen:h,branding:i})}});function Lfe(e){const t=new o.OpenAPIHono,n=e.dataAdapter.cache||is({defaultTtlSeconds:0,maxEntries:100,cleanupIntervalMs:0}),r=e.dataAdapter.cache?300:0;t.onError((s,a)=>s instanceof qt?a.redirect(s.location,s.status):s instanceof I?a.text(s.message||"Error",s.status):a.text("Unexpected error",500)),t.use("/screen/*",Rk({origin:"*",allowHeaders:["Content-Type","Tenant-Id"],allowMethods:["GET","POST","OPTIONS"],maxAge:600})),t.use(async(s,a)=>{const c=Mo(s,e.dataAdapter),l=Qa(c,{defaultTtl:r,cacheEntities:["tenants","connections","clients","clientConnections","customDomains","resourceServers","roles","organizations","branding","themes","promptSettings","forms","hooks"],cache:n});return s.env.data=Ya(s,l),a()}).use(rs).use(ns);const i=t.route("/screen",Efe).route("/forms",Rfe).route("/",q$);return i.doc("/spec",{openapi:"3.0.0",info:{version:"1.0.0",title:"U2 Universal Login (Client-side Widget)"}}),i}var Dfe=Object.defineProperty,Ufe=(e,t,n)=>t in e?Dfe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,go=(e,t,n)=>Ufe(e,typeof t!="symbol"?t+"":t,n);const ft=o.z.object({"#text":o.z.string()}),Bfe=o.z.object({"#text":o.z.string(),"@_xmlns:saml":o.z.string().optional()}),Mfe=o.z.object({"samlp:AuthnRequest":o.z.object({"saml:Issuer":Bfe,"@_xmlns:samlp":o.z.string(),"@_xmlns:saml":o.z.string().optional(),"@_ForceAuthn":o.z.string().transform(e=>e.toLowerCase()==="true").optional(),"@_ID":o.z.string(),"@_IssueInstant":o.z.string().datetime(),"@_Destination":o.z.string().url(),"@_AssertionConsumerServiceURL":o.z.string().url().optional(),"@_ProtocolBinding":o.z.string().optional(),"@_Version":o.z.string()})});o.z.array(o.z.object({":@":o.z.object({"@_xmlns":o.z.string(),"@_entityID":o.z.string()}),EntityDescriptor:o.z.array(o.z.object({":@":o.z.object({"@_protocolSupportEnumeration":o.z.string()}),IDPSSODescriptor:o.z.array(o.z.union([o.z.object({KeyDescriptor:o.z.array(o.z.object({KeyInfo:o.z.array(o.z.object({X509Data:o.z.array(o.z.object({X509Certificate:o.z.array(ft)}))})),":@":o.z.object({"@_xmlns":o.z.string()})})),":@":o.z.object({"@_use":o.z.string()})}),o.z.object({SingleLogoutService:o.z.array(o.z.object({})),":@":o.z.object({"@_Binding":o.z.string(),"@_Location":o.z.string()})}),o.z.object({NameIDFormat:o.z.array(ft)}),o.z.object({SingleSignOnService:o.z.array(o.z.object({})),":@":o.z.object({"@_Binding":o.z.string(),"@_Location":o.z.string()})}),o.z.object({Attribute:o.z.array(o.z.object({})),":@":o.z.object({"@_Name":o.z.string(),"@_NameFormat":o.z.string(),"@_FriendlyName":o.z.string(),"@_xmlns":o.z.string()})})]))}))}));const qfe=o.z.object({"saml:Attribute":o.z.array(o.z.object({"saml:AttributeValue":o.z.array(o.z.object({"#text":o.z.string()})),":@":o.z.object({"@_xmlns:xs":o.z.string().optional(),"@_xmlns:xsi":o.z.string(),"@_xsi:type":o.z.string()}).optional()})),":@":o.z.object({"@_Name":o.z.string(),"@_NameFormat":o.z.string(),"@_FriendlyName":o.z.string().optional()})}),Ffe=o.z.object({"ds:Transform":o.z.array(o.z.any()),":@":o.z.object({"@_Algorithm":o.z.string()})}),av=o.z.object({"ds:Signature":o.z.array(o.z.union([o.z.object({"ds:SignedInfo":o.z.array(o.z.union([o.z.object({"ds:CanonicalizationMethod":o.z.array(o.z.object({":@":o.z.object({"@_Algorithm":o.z.string()})}))}),o.z.object({"ds:SignatureMethod":o.z.array(o.z.object({":@":o.z.object({"@_Algorithm":o.z.string()})}))}),o.z.object({"ds:Reference":o.z.array(o.z.union([o.z.object({"ds:Transforms":o.z.array(Ffe)}),o.z.object({"ds:DigestMethod":o.z.array(o.z.object({":@":o.z.object({"@_Algorithm":o.z.string()})}))}),o.z.object({"ds:DigestValue":o.z.array(ft)})])),":@":o.z.object({"@_URI":o.z.string().optional()}).optional()})]))}),o.z.object({"ds:SignatureValue":o.z.array(ft)}),o.z.object({"ds:KeyInfo":o.z.array(o.z.union([o.z.object({"ds:KeyValue":o.z.array(o.z.object({"ds:RSAKeyValue":o.z.array(o.z.union([o.z.object({"ds:Modulus":o.z.array(ft)}),o.z.object({"ds:Exponent":o.z.array(ft)})]))}))}),o.z.object({"ds:X509Data":o.z.array(o.z.object({"ds:X509Certificate":o.z.array(ft)}))}),o.z.object({"ds:KeyValue":o.z.array(o.z.object({"ds:RSAKeyValue":o.z.array(o.z.union([o.z.object({"ds:Modulus":o.z.array(ft)}),o.z.object({"ds:Exponent":o.z.array(ft)})]))})),"ds:X509Data":o.z.array(o.z.object({"ds:X509Certificate":o.z.array(ft)}))})]))})])),":@":o.z.object({"@_xmlns:ds":o.z.string().optional()}).optional()});o.z.array(o.z.object({"samlp:Response":o.z.array(o.z.union([o.z.object({"saml:Issuer":o.z.array(ft)}),av,o.z.object({"samlp:Status":o.z.array(o.z.object({"samlp:StatusCode":o.z.array(ft),":@":o.z.object({"@_Value":o.z.string()})}))}),o.z.object({"saml:Assertion":o.z.array(o.z.union([o.z.object({"saml:Issuer":o.z.array(ft)}),av,o.z.object({"saml:Subject":o.z.array(o.z.union([o.z.object({"saml:NameID":o.z.array(ft),":@":o.z.object({"@_Format":o.z.string()})}),o.z.object({"saml:SubjectConfirmation":o.z.array(o.z.object({"saml:SubjectConfirmationData":o.z.array(o.z.any()),":@":o.z.object({"@_InResponseTo":o.z.string(),"@_NotOnOrAfter":o.z.string(),"@_Recipient":o.z.string()})})),":@":o.z.object({"@_Method":o.z.string()})})]))}),o.z.object({"saml:Conditions":o.z.array(o.z.object({"saml:AudienceRestriction":o.z.array(o.z.object({"saml:Audience":o.z.array(ft)}))})),":@":o.z.object({"@_NotBefore":o.z.string(),"@_NotOnOrAfter":o.z.string()})}),o.z.object({"saml:AuthnStatement":o.z.array(o.z.object({"saml:AuthnContext":o.z.array(o.z.object({"saml:AuthnContextClassRef":o.z.array(ft)}))})),":@":o.z.object({"@_AuthnInstant":o.z.string(),"@_SessionIndex":o.z.string(),"@_SessionNotOnOrAfter":o.z.string()})}),o.z.object({"saml:AttributeStatement":o.z.array(qfe)})])),":@":o.z.object({"@_xmlns":o.z.string(),"@_ID":o.z.string(),"@_IssueInstant":o.z.string(),"@_Version":o.z.string()})})])),":@":o.z.object({"@_xmlns:samlp":o.z.string(),"@_xmlns:saml":o.z.string(),"@_Destination":o.z.string(),"@_ID":o.z.string(),"@_InResponseTo":o.z.string(),"@_IssueInstant":o.z.string(),"@_Version":o.z.string()})}));var F$={},Od={};(function(e){const t=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",n=t+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040",r="["+t+"]["+n+"]*",i=new RegExp("^"+r+"$"),s=function(c,l){const u=[];let d=l.exec(c);for(;d;){const f=[];f.startIndex=l.lastIndex-d[0].length;const p=d.length;for(let h=0;h<p;h++)f.push(d[h]);u.push(f),d=l.exec(c)}return u},a=function(c){const l=i.exec(c);return!(l===null||typeof l>"u")};e.isExist=function(c){return typeof c<"u"},e.isEmptyObject=function(c){return Object.keys(c).length===0},e.merge=function(c,l,u){if(l){const d=Object.keys(l),f=d.length;for(let p=0;p<f;p++)u==="strict"?c[d[p]]=[l[d[p]]]:c[d[p]]=l[d[p]]}},e.getValue=function(c){return e.isExist(c)?c:""},e.isName=a,e.getAllMatches=s,e.nameRegexp=r})(Od);const am=Od,Hfe={allowBooleanAttributes:!1,unpairedTags:[]};F$.validate=function(e,t){t=Object.assign({},Hfe,t);const n=[];let r=!1,i=!1;e[0]==="\uFEFF"&&(e=e.substr(1));for(let s=0;s<e.length;s++)if(e[s]==="<"&&e[s+1]==="?"){if(s+=2,s=lv(e,s),s.err)return s}else if(e[s]==="<"){let a=s;if(s++,e[s]==="!"){s=uv(e,s);continue}else{let c=!1;e[s]==="/"&&(c=!0,s++);let l="";for(;s<e.length&&e[s]!==">"&&e[s]!==" "&&e[s]!==" "&&e[s]!==`
|
|
405
405
|
`&&e[s]!=="\r";s++)l+=e[s];if(l=l.trim(),l[l.length-1]==="/"&&(l=l.substring(0,l.length-1),s--),!Yfe(l)){let f;return l.trim().length===0?f="Invalid space after '<'.":f="Tag '"+l+"' is an invalid name.",Ge("InvalidTag",f,vt(e,s))}const u=Gfe(e,s);if(u===!1)return Ge("InvalidAttr","Attributes for '"+l+"' have open quote.",vt(e,s));let d=u.value;if(s=u.index,d[d.length-1]==="/"){const f=s-d.length;d=d.substring(0,d.length-1);const p=dv(d,t);if(p===!0)r=!0;else return Ge(p.err.code,p.err.msg,vt(e,f+p.err.line))}else if(c)if(u.tagClosed){if(d.trim().length>0)return Ge("InvalidTag","Closing tag '"+l+"' can't have attributes or invalid starting.",vt(e,a));if(n.length===0)return Ge("InvalidTag","Closing tag '"+l+"' has not been opened.",vt(e,a));{const f=n.pop();if(l!==f.tagName){let p=vt(e,f.tagStartPos);return Ge("InvalidTag","Expected closing tag '"+f.tagName+"' (opened in line "+p.line+", col "+p.col+") instead of closing tag '"+l+"'.",vt(e,a))}n.length==0&&(i=!0)}}else return Ge("InvalidTag","Closing tag '"+l+"' doesn't have proper closing.",vt(e,s));else{const f=dv(d,t);if(f!==!0)return Ge(f.err.code,f.err.msg,vt(e,s-d.length+f.err.line));if(i===!0)return Ge("InvalidXml","Multiple possible root nodes found.",vt(e,s));t.unpairedTags.indexOf(l)!==-1||n.push({tagName:l,tagStartPos:a}),r=!0}for(s++;s<e.length;s++)if(e[s]==="<")if(e[s+1]==="!"){s++,s=uv(e,s);continue}else if(e[s+1]==="?"){if(s=lv(e,++s),s.err)return s}else break;else if(e[s]==="&"){const f=Zfe(e,s);if(f==-1)return Ge("InvalidChar","char '&' is not expected.",vt(e,s));s=f}else if(i===!0&&!cv(e[s]))return Ge("InvalidXml","Extra text at the end",vt(e,s));e[s]==="<"&&s--}}else{if(cv(e[s]))continue;return Ge("InvalidChar","char '"+e[s]+"' is not expected.",vt(e,s))}if(r){if(n.length==1)return Ge("InvalidTag","Unclosed tag '"+n[0].tagName+"'.",vt(e,n[0].tagStartPos));if(n.length>0)return Ge("InvalidXml","Invalid '"+JSON.stringify(n.map(s=>s.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1})}else return Ge("InvalidXml","Start tag expected.",1);return!0};function cv(e){return e===" "||e===" "||e===`
|
|
406
|
-
`||e==="\r"}function lv(e,t){const n=t;for(;t<e.length;t++)if(e[t]=="?"||e[t]==" "){const r=e.substr(n,t-n);if(t>5&&r==="xml")return Ge("InvalidXml","XML declaration allowed only at the start of the document.",vt(e,t));if(e[t]=="?"&&e[t+1]==">"){t++;break}else continue}return t}function uv(e,t){if(e.length>t+5&&e[t+1]==="-"&&e[t+2]==="-"){for(t+=3;t<e.length;t++)if(e[t]==="-"&&e[t+1]==="-"&&e[t+2]===">"){t+=2;break}}else if(e.length>t+8&&e[t+1]==="D"&&e[t+2]==="O"&&e[t+3]==="C"&&e[t+4]==="T"&&e[t+5]==="Y"&&e[t+6]==="P"&&e[t+7]==="E"){let n=1;for(t+=8;t<e.length;t++)if(e[t]==="<")n++;else if(e[t]===">"&&(n--,n===0))break}else if(e.length>t+9&&e[t+1]==="["&&e[t+2]==="C"&&e[t+3]==="D"&&e[t+4]==="A"&&e[t+5]==="T"&&e[t+6]==="A"&&e[t+7]==="["){for(t+=8;t<e.length;t++)if(e[t]==="]"&&e[t+1]==="]"&&e[t+2]===">"){t+=2;break}}return t}const Vfe='"',Kfe="'";function Gfe(e,t){let n="",r="",i=!1;for(;t<e.length;t++){if(e[t]===Vfe||e[t]===Kfe)r===""?r=e[t]:r!==e[t]||(r="");else if(e[t]===">"&&r===""){i=!0;break}n+=e[t]}return r!==""?!1:{value:n,index:t,tagClosed:i}}const Wfe=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,"g");function dv(e,t){const n=am.getAllMatches(e,Wfe),r={};for(let i=0;i<n.length;i++){if(n[i][1].length===0)return Ge("InvalidAttr","Attribute '"+n[i][2]+"' has no space in starting.",ds(n[i]));if(n[i][3]!==void 0&&n[i][4]===void 0)return Ge("InvalidAttr","Attribute '"+n[i][2]+"' is without value.",ds(n[i]));if(n[i][3]===void 0&&!t.allowBooleanAttributes)return Ge("InvalidAttr","boolean attribute '"+n[i][2]+"' is not allowed.",ds(n[i]));const s=n[i][2];if(!Xfe(s))return Ge("InvalidAttr","Attribute '"+s+"' is an invalid name.",ds(n[i]));if(!r.hasOwnProperty(s))r[s]=1;else return Ge("InvalidAttr","Attribute '"+s+"' is repeated.",ds(n[i]))}return!0}function Jfe(e,t){let n=/\d/;for(e[t]==="x"&&(t++,n=/[\da-fA-F]/);t<e.length;t++){if(e[t]===";")return t;if(!e[t].match(n))break}return-1}function Zfe(e,t){if(t++,e[t]===";")return-1;if(e[t]==="#")return t++,Jfe(e,t);let n=0;for(;t<e.length;t++,n++)if(!(e[t].match(/\w/)&&n<20)){if(e[t]===";")break;return-1}return t}function Ge(e,t,n){return{err:{code:e,msg:t,line:n.line||n,col:n.col}}}function Xfe(e){return am.isName(e)}function Yfe(e){return am.isName(e)}function vt(e,t){const n=e.substring(0,t).split(/\r?\n/);return{line:n.length,col:n[n.length-1].length+1}}function ds(e){return e.startIndex+e[1].length}var cm={};const H5={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(e,t){return t},attributeValueProcessor:function(e,t){return t},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(e,t,n){return e},captureMetaData:!1,maxNestedTags:100,strictReservedNames:!0};function V5(e){return typeof e=="boolean"?{enabled:e,maxEntitySize:1e4,maxExpansionDepth:10,maxTotalExpansions:1e3,maxExpandedLength:1e5,allowedTags:null,tagFilter:null}:typeof e=="object"&&e!==null?{enabled:e.enabled!==!1,maxEntitySize:e.maxEntitySize??1e4,maxExpansionDepth:e.maxExpansionDepth??10,maxTotalExpansions:e.maxTotalExpansions??1e3,maxExpandedLength:e.maxExpandedLength??1e5,allowedTags:e.allowedTags??null,tagFilter:e.tagFilter??null}:V5(!0)}const Qfe=function(e){const t=Object.assign({},H5,e);return t.processEntities=V5(t.processEntities),t};cm.buildOptions=Qfe;cm.defaultOptions=H5;class e0e{constructor(t){this.tagname=t,this.child=[],this[":@"]={}}add(t,n){t==="__proto__"&&(t="#__proto__"),this.child.push({[t]:n})}addChild(t){t.tagname==="__proto__"&&(t.tagname="#__proto__"),t[":@"]&&Object.keys(t[":@"]).length>0?this.child.push({[t.tagname]:t.child,":@":t[":@"]}):this.child.push({[t.tagname]:t.child})}}var t0e=e0e;const K5=Od;let n0e=class{constructor(e){this.suppressValidationErr=!e,this.options=e||{}}readDocType(e,t){const n=Object.create(null);if(e[t+3]==="O"&&e[t+4]==="C"&&e[t+5]==="T"&&e[t+6]==="Y"&&e[t+7]==="P"&&e[t+8]==="E"){t=t+9;let r=1,i=!1,s=!1,a="";for(;t<e.length;t++)if(e[t]==="<"&&!s){if(i&&Zr(e,"!ENTITY",t)){t+=7;let c,l;if([c,l,t]=this.readEntityExp(e,t+1,this.suppressValidationErr),l.indexOf("&")===-1){const u=c.replace(/[.\-+*:]/g,"\\.");n[c]={regx:RegExp(`&${u};`,"g"),val:l}}}else if(i&&Zr(e,"!ELEMENT",t)){t+=8;const{index:c}=this.readElementExp(e,t+1);t=c}else if(i&&Zr(e,"!ATTLIST",t))t+=8;else if(i&&Zr(e,"!NOTATION",t)){t+=9;const{index:c}=this.readNotationExp(e,t+1,this.suppressValidationErr);t=c}else if(Zr(e,"!--",t))s=!0;else throw new Error("Invalid DOCTYPE");r++,a=""}else if(e[t]===">"){if(s?e[t-1]==="-"&&e[t-2]==="-"&&(s=!1,r--):r--,r===0)break}else e[t]==="["?i=!0:a+=e[t];if(r!==0)throw new Error("Unclosed DOCTYPE")}else throw new Error("Invalid Tag instead of DOCTYPE");return{entities:n,i:t}}readEntityExp(e,t){t=At(e,t);let n="";for(;t<e.length&&!/\s/.test(e[t])&&e[t]!=='"'&&e[t]!=="'";)n+=e[t],t++;if(ps(n),t=At(e,t),!this.suppressValidationErr){if(e.substring(t,t+6).toUpperCase()==="SYSTEM")throw new Error("External entities are not supported");if(e[t]==="%")throw new Error("Parameter entities are not supported")}let r="";if([t,r]=this.readIdentifierVal(e,t,"entity"),this.options.enabled!==!1&&this.options.maxEntitySize&&r.length>this.options.maxEntitySize)throw new Error(`Entity "${n}" size (${r.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return t--,[n,r,t]}readNotationExp(e,t){t=At(e,t);let n="";for(;t<e.length&&!/\s/.test(e[t]);)n+=e[t],t++;!this.suppressValidationErr&&ps(n),t=At(e,t);const r=e.substring(t,t+6).toUpperCase();if(!this.suppressValidationErr&&r!=="SYSTEM"&&r!=="PUBLIC")throw new Error(`Expected SYSTEM or PUBLIC, found "${r}"`);t+=r.length,t=At(e,t);let i=null,s=null;if(r==="PUBLIC")[t,i]=this.readIdentifierVal(e,t,"publicIdentifier"),t=At(e,t),(e[t]==='"'||e[t]==="'")&&([t,s]=this.readIdentifierVal(e,t,"systemIdentifier"));else if(r==="SYSTEM"&&([t,s]=this.readIdentifierVal(e,t,"systemIdentifier"),!this.suppressValidationErr&&!s))throw new Error("Missing mandatory system identifier for SYSTEM notation");return{notationName:n,publicIdentifier:i,systemIdentifier:s,index:--t}}readIdentifierVal(e,t,n){let r="";const i=e[t];if(i!=='"'&&i!=="'")throw new Error(`Expected quoted string, found "${i}"`);for(t++;t<e.length&&e[t]!==i;)r+=e[t],t++;if(e[t]!==i)throw new Error(`Unterminated ${n} value`);return t++,[t,r]}readElementExp(e,t){t=At(e,t);let n="";for(;t<e.length&&!/\s/.test(e[t]);)n+=e[t],t++;if(!this.suppressValidationErr&&!K5.isName(n))throw new Error(`Invalid element name: "${n}"`);t=At(e,t);let r="";if(e[t]==="E"&&Zr(e,"MPTY",t))t+=4;else if(e[t]==="A"&&Zr(e,"NY",t))t+=2;else if(e[t]==="("){for(t++;t<e.length&&e[t]!==")";)r+=e[t],t++;if(e[t]!==")")throw new Error("Unterminated content model")}else if(!this.suppressValidationErr)throw new Error(`Invalid Element Expression, found "${e[t]}"`);return{elementName:n,contentModel:r.trim(),index:t}}readAttlistExp(e,t){t=At(e,t);let n="";for(;t<e.length&&!/\s/.test(e[t]);)n+=e[t],t++;ps(n),t=At(e,t);let r="";for(;t<e.length&&!/\s/.test(e[t]);)r+=e[t],t++;if(!ps(r))throw new Error(`Invalid attribute name: "${r}"`);t=At(e,t);let i="";if(e.substring(t,t+8).toUpperCase()==="NOTATION"){if(i="NOTATION",t+=8,t=At(e,t),e[t]!=="(")throw new Error(`Expected '(', found "${e[t]}"`);t++;let a=[];for(;t<e.length&&e[t]!==")";){let c="";for(;t<e.length&&e[t]!=="|"&&e[t]!==")";)c+=e[t],t++;if(c=c.trim(),!ps(c))throw new Error(`Invalid notation name: "${c}"`);a.push(c),e[t]==="|"&&(t++,t=At(e,t))}if(e[t]!==")")throw new Error("Unterminated list of notations");t++,i+=" ("+a.join("|")+")"}else{for(;t<e.length&&!/\s/.test(e[t]);)i+=e[t],t++;const a=["CDATA","ID","IDREF","IDREFS","ENTITY","ENTITIES","NMTOKEN","NMTOKENS"];if(!this.suppressValidationErr&&!a.includes(i.toUpperCase()))throw new Error(`Invalid attribute type: "${i}"`)}t=At(e,t);let s="";return e.substring(t,t+8).toUpperCase()==="#REQUIRED"?(s="#REQUIRED",t+=8):e.substring(t,t+7).toUpperCase()==="#IMPLIED"?(s="#IMPLIED",t+=7):[t,s]=this.readIdentifierVal(e,t,"ATTLIST"),{elementName:n,attributeName:r,attributeType:i,defaultValue:s,index:t}}};const At=(e,t)=>{for(;t<e.length&&/\s/.test(e[t]);)t++;return t};function Zr(e,t,n){for(let r=0;r<t.length;r++)if(t[r]!==e[n+r+1])return!1;return!0}function ps(e){if(K5.isName(e))return e;throw new Error(`Invalid entity name ${e}`)}var r0e=n0e;const i0e=/^[-+]?0x[a-fA-F0-9]+$/,o0e=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/,s0e={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};function a0e(e,t={}){if(t=Object.assign({},s0e,t),!e||typeof e!="string")return e;let n=e.trim();if(t.skipLike!==void 0&&t.skipLike.test(n))return e;if(e==="0")return 0;if(t.hex&&i0e.test(n))return l0e(n,16);if(n.search(/[eE]/)!==-1){const r=n.match(/^([-\+])?(0*)([0-9]*(\.[0-9]*)?[eE][-\+]?[0-9]+)$/);if(r){if(t.leadingZeros)n=(r[1]||"")+r[3];else if(!(r[2]==="0"&&r[3][0]==="."))return e;return t.eNotation?Number(n):e}else return e}else{const r=o0e.exec(n);if(r){const i=r[1],s=r[2];let a=c0e(r[3]);if(!t.leadingZeros&&s.length>0&&i&&n[2]!=="."||!t.leadingZeros&&s.length>0&&!i&&n[1]!==".")return e;if(t.leadingZeros&&s===e)return 0;{const c=Number(n),l=""+c;return l.search(/[eE]/)!==-1?t.eNotation?c:e:n.indexOf(".")!==-1?l==="0"&&a===""||l===a||i&&l==="-"+a?c:e:s?a===l||i+a===l?c:e:n===l||n===i+l?c:e}}else return e}}function c0e(e){return e&&e.indexOf(".")!==-1&&(e=e.replace(/0+$/,""),e==="."?e="0":e[0]==="."?e="0"+e:e[e.length-1]==="."&&(e=e.substr(0,e.length-1))),e}function l0e(e,t){if(parseInt)return parseInt(e,t);if(Number.parseInt)return Number.parseInt(e,t);if(window&&window.parseInt)return window.parseInt(e,t);throw new Error("parseInt, Number.parseInt, window.parseInt are not supported")}var u0e=a0e;function d0e(e){return typeof e=="function"?e:Array.isArray(e)?t=>{for(const n of e)if(typeof n=="string"&&t===n||n instanceof RegExp&&n.test(t))return!0}:()=>!1}var G5=d0e;const W5=Od,Ki=t0e,p0e=r0e,f0e=u0e,h0e=G5;let _0e=class{constructor(e){if(this.options=e,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,n)=>pv(n,10,"&#")},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,n)=>pv(n,16,"&#x")}},this.addExternalEntities=m0e,this.parseXml=w0e,this.parseTextData=g0e,this.resolveNameSpace=y0e,this.buildAttributesMap=v0e,this.isItStopNode=x0e,this.replaceEntitiesValue=$0e,this.readStopNodeData=A0e,this.saveTextToParentTag=S0e,this.addChild=k0e,this.ignoreAttributesFn=h0e(this.options.ignoreAttributes),this.entityExpansionCount=0,this.currentExpandedLength=0,this.options.stopNodes&&this.options.stopNodes.length>0){this.stopNodesExact=new Set,this.stopNodesWildcard=new Set;for(let t=0;t<this.options.stopNodes.length;t++){const n=this.options.stopNodes[t];typeof n=="string"&&(n.startsWith("*.")?this.stopNodesWildcard.add(n.substring(2)):this.stopNodesExact.add(n))}}}};function m0e(e){const t=Object.keys(e);for(let n=0;n<t.length;n++){const r=t[n],i=r.replace(/[.\-+*:]/g,"\\.");this.lastEntities[r]={regex:new RegExp("&"+i+";","g"),val:e[r]}}}function g0e(e,t,n,r,i,s,a){if(e!==void 0&&(this.options.trimValues&&!r&&(e=e.trim()),e.length>0)){a||(e=this.replaceEntitiesValue(e,t,n));const c=this.options.tagValueProcessor(t,e,n,i,s);return c==null?e:typeof c!=typeof e||c!==e?c:this.options.trimValues?ch(e,this.options.parseTagValue,this.options.numberParseOptions):e.trim()===e?ch(e,this.options.parseTagValue,this.options.numberParseOptions):e}}function y0e(e){if(this.options.removeNSPrefix){const t=e.split(":"),n=e.charAt(0)==="/"?"/":"";if(t[0]==="xmlns")return"";t.length===2&&(e=n+t[1])}return e}const b0e=new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`,"gm");function v0e(e,t,n){if(this.options.ignoreAttributes!==!0&&typeof e=="string"){const r=W5.getAllMatches(e,b0e),i=r.length,s={};for(let a=0;a<i;a++){const c=this.resolveNameSpace(r[a][1]);if(this.ignoreAttributesFn(c,t))continue;let l=r[a][4],u=this.options.attributeNamePrefix+c;if(c.length)if(this.options.transformAttributeName&&(u=this.options.transformAttributeName(u)),u==="__proto__"&&(u="#__proto__"),l!==void 0){this.options.trimValues&&(l=l.trim()),l=this.replaceEntitiesValue(l,n,t);const d=this.options.attributeValueProcessor(c,l,t);d==null?s[u]=l:typeof d!=typeof l||d!==l?s[u]=d:s[u]=ch(l,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(s[u]=!0)}if(!Object.keys(s).length)return;if(this.options.attributesGroupName){const a={};return a[this.options.attributesGroupName]=s,a}return s}}const w0e=function(e){e=e.replace(/\r\n?/g,`
|
|
407
|
-
`);const t=new Ki("!xml");let n=t,r="",i="";this.entityExpansionCount=0,this.currentExpandedLength=0;const s=new p0e(this.options.processEntities);for(let a=0;a<e.length;a++)if(e[a]==="<")if(e[a+1]==="/"){const c=ai(e,">",a,"Closing Tag is not closed.");let l=e.substring(a+2,c).trim();if(this.options.removeNSPrefix){const f=l.indexOf(":");f!==-1&&(l=l.substr(f+1))}this.options.transformTagName&&(l=this.options.transformTagName(l)),n&&(r=this.saveTextToParentTag(r,n,i));const u=i.substring(i.lastIndexOf(".")+1);if(l&&this.options.unpairedTags.indexOf(l)!==-1)throw new Error(`Unpaired tag can not be used as closing tag: </${l}>`);let d=0;u&&this.options.unpairedTags.indexOf(u)!==-1?(d=i.lastIndexOf(".",i.lastIndexOf(".")-1),this.tagsNodeStack.pop()):d=i.lastIndexOf("."),i=i.substring(0,d),n=this.tagsNodeStack.pop(),r="",a=c}else if(e[a+1]==="?"){let c=ah(e,a,!1,"?>");if(!c)throw new Error("Pi Tag is not closed.");if(r=this.saveTextToParentTag(r,n,i),!(this.options.ignoreDeclaration&&c.tagName==="?xml"||this.options.ignorePiTags)){const l=new Ki(c.tagName);l.add(this.options.textNodeName,""),c.tagName!==c.tagExp&&c.attrExpPresent&&(l[":@"]=this.buildAttributesMap(c.tagExp,i,c.tagName)),this.addChild(n,l,i,a)}a=c.closeIndex+1}else if(e.substr(a+1,3)==="!--"){const c=ai(e,"-->",a+4,"Comment is not closed.");if(this.options.commentPropName){const l=e.substring(a+4,c-2);r=this.saveTextToParentTag(r,n,i),n.add(this.options.commentPropName,[{[this.options.textNodeName]:l}])}a=c}else if(e.substr(a+1,2)==="!D"){const c=s.readDocType(e,a);this.docTypeEntities=c.entities,a=c.i}else if(e.substr(a+1,2)==="!["){const c=ai(e,"]]>",a,"CDATA is not closed.")-2,l=e.substring(a+9,c);r=this.saveTextToParentTag(r,n,i);let u=this.parseTextData(l,n.tagname,i,!0,!1,!0,!0);u==null&&(u=""),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:l}]):n.add(this.options.textNodeName,u),a=c+2}else{let c=ah(e,a,this.options.removeNSPrefix),l=c.tagName;const u=c.rawTagName;let d=c.tagExp,f=c.attrExpPresent,p=c.closeIndex;if(this.options.transformTagName){const g=this.options.transformTagName(l);d===l&&(d=g),l=g}if(this.options.strictReservedNames&&(l===this.options.commentPropName||l===this.options.cdataPropName))throw new Error(`Invalid tag name: ${l}`);n&&r&&n.tagname!=="!xml"&&(r=this.saveTextToParentTag(r,n,i,!1));const h=n;h&&this.options.unpairedTags.indexOf(h.tagname)!==-1&&(n=this.tagsNodeStack.pop(),i=i.substring(0,i.lastIndexOf("."))),l!==t.tagname&&(i+=i?"."+l:l);const _=a;if(this.isItStopNode(this.stopNodesExact,this.stopNodesWildcard,i,l)){let g="";if(d.length>0&&d.lastIndexOf("/")===d.length-1)l[l.length-1]==="/"?(l=l.substr(0,l.length-1),i=i.substr(0,i.length-1),d=l):d=d.substr(0,d.length-1),a=c.closeIndex;else if(this.options.unpairedTags.indexOf(l)!==-1)a=c.closeIndex;else{const m=this.readStopNodeData(e,u,p+1);if(!m)throw new Error(`Unexpected end of ${u}`);a=m.i,g=m.tagContent}const y=new Ki(l);l!==d&&f&&(y[":@"]=this.buildAttributesMap(d,i,l)),g&&(g=this.parseTextData(g,l,i,!0,f,!0,!0)),i=i.substr(0,i.lastIndexOf(".")),y.add(this.options.textNodeName,g),this.addChild(n,y,i,_)}else{if(d.length>0&&d.lastIndexOf("/")===d.length-1){if(l[l.length-1]==="/"?(l=l.substr(0,l.length-1),i=i.substr(0,i.length-1),d=l):d=d.substr(0,d.length-1),this.options.transformTagName){const y=this.options.transformTagName(l);d===l&&(d=y),l=y}const g=new Ki(l);l!==d&&f&&(g[":@"]=this.buildAttributesMap(d,i,l)),this.addChild(n,g,i,_),i=i.substr(0,i.lastIndexOf("."))}else if(this.options.unpairedTags.indexOf(l)!==-1){const g=new Ki(l);l!==d&&f&&(g[":@"]=this.buildAttributesMap(d,i)),this.addChild(n,g,i,_),i=i.substr(0,i.lastIndexOf(".")),a=c.closeIndex;continue}else{const g=new Ki(l);if(this.tagsNodeStack.length>this.options.maxNestedTags)throw new Error("Maximum nested tags exceeded");this.tagsNodeStack.push(n),l!==d&&f&&(g[":@"]=this.buildAttributesMap(d,i,l)),this.addChild(n,g,i),n=g}r="",a=p}}else r+=e[a];return t.child};function k0e(e,t,n,r){this.options.captureMetaData||(r=void 0);const i=this.options.updateTag(t.tagname,n,t[":@"]);i===!1||(typeof i=="string"&&(t.tagname=i),e.addChild(t,r))}const $0e=function(e,t,n){if(e.indexOf("&")===-1)return e;const r=this.options.processEntities;if(!r.enabled||r.allowedTags&&!r.allowedTags.includes(t)||r.tagFilter&&!r.tagFilter(t,n))return e;for(let i in this.docTypeEntities){const s=this.docTypeEntities[i],a=e.match(s.regx);if(a){if(this.entityExpansionCount+=a.length,r.maxTotalExpansions&&this.entityExpansionCount>r.maxTotalExpansions)throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${r.maxTotalExpansions}`);const c=e.length;if(e=e.replace(s.regx,s.val),r.maxExpandedLength&&(this.currentExpandedLength+=e.length-c,this.currentExpandedLength>r.maxExpandedLength))throw new Error(`Total expanded content size exceeded: ${this.currentExpandedLength} > ${r.maxExpandedLength}`)}}if(e.indexOf("&")===-1)return e;for(let i in this.lastEntities){const s=this.lastEntities[i];e=e.replace(s.regex,s.val)}if(e.indexOf("&")===-1)return e;if(this.options.htmlEntities)for(let i in this.htmlEntities){const s=this.htmlEntities[i];e=e.replace(s.regex,s.val)}return e=e.replace(this.ampEntity.regex,this.ampEntity.val),e};function S0e(e,t,n,r){return e&&(r===void 0&&(r=t.child.length===0),e=this.parseTextData(e,t.tagname,n,!1,t[":@"]?Object.keys(t[":@"]).length!==0:!1,r),e!==void 0&&e!==""&&t.add(this.options.textNodeName,e),e=""),e}function x0e(e,t,n,r){return!!(t&&t.has(r)||e&&e.has(n))}function z0e(e,t,n=">"){let r,i="";for(let s=t;s<e.length;s++){let a=e[s];if(r)a===r&&(r="");else if(a==='"'||a==="'")r=a;else if(a===n[0])if(n[1]){if(e[s+1]===n[1])return{data:i,index:s}}else return{data:i,index:s};else a===" "&&(a=" ");i+=a}}function ai(e,t,n,r){const i=e.indexOf(t,n);if(i===-1)throw new Error(r);return i+t.length-1}function ah(e,t,n,r=">"){const i=z0e(e,t+1,r);if(!i)return;let s=i.data;const a=i.index,c=s.search(/\s/);let l=s,u=!0;c!==-1&&(l=s.substring(0,c),s=s.substring(c+1).trimStart());const d=l;if(n){const f=l.indexOf(":");f!==-1&&(l=l.substr(f+1),u=l!==i.data.substr(f+1))}return{tagName:l,tagExp:s,closeIndex:a,attrExpPresent:u,rawTagName:d}}function A0e(e,t,n){const r=n;let i=1;for(;n<e.length;n++)if(e[n]==="<")if(e[n+1]==="/"){const s=ai(e,">",n,`${t} is not closed`);if(e.substring(n+2,s).trim()===t&&(i--,i===0))return{tagContent:e.substring(r,n),i:s};n=s}else if(e[n+1]==="?")n=ai(e,"?>",n+1,"StopNode is not closed.");else if(e.substr(n+1,3)==="!--")n=ai(e,"-->",n+3,"StopNode is not closed.");else if(e.substr(n+1,2)==="![")n=ai(e,"]]>",n,"StopNode is not closed.")-2;else{const s=ah(e,n,">");s&&((s&&s.tagName)===t&&s.tagExp[s.tagExp.length-1]!=="/"&&i++,n=s.closeIndex)}}function ch(e,t,n){if(t&&typeof e=="string"){const r=e.trim();return r==="true"?!0:r==="false"?!1:f0e(e,n)}else return
|
|
408
|
-
`;function B0e(e,t){let n="";return t.format&&t.indentBy.length>0&&(n=U0e),
|
|
406
|
+
`||e==="\r"}function lv(e,t){const n=t;for(;t<e.length;t++)if(e[t]=="?"||e[t]==" "){const r=e.substr(n,t-n);if(t>5&&r==="xml")return Ge("InvalidXml","XML declaration allowed only at the start of the document.",vt(e,t));if(e[t]=="?"&&e[t+1]==">"){t++;break}else continue}return t}function uv(e,t){if(e.length>t+5&&e[t+1]==="-"&&e[t+2]==="-"){for(t+=3;t<e.length;t++)if(e[t]==="-"&&e[t+1]==="-"&&e[t+2]===">"){t+=2;break}}else if(e.length>t+8&&e[t+1]==="D"&&e[t+2]==="O"&&e[t+3]==="C"&&e[t+4]==="T"&&e[t+5]==="Y"&&e[t+6]==="P"&&e[t+7]==="E"){let n=1;for(t+=8;t<e.length;t++)if(e[t]==="<")n++;else if(e[t]===">"&&(n--,n===0))break}else if(e.length>t+9&&e[t+1]==="["&&e[t+2]==="C"&&e[t+3]==="D"&&e[t+4]==="A"&&e[t+5]==="T"&&e[t+6]==="A"&&e[t+7]==="["){for(t+=8;t<e.length;t++)if(e[t]==="]"&&e[t+1]==="]"&&e[t+2]===">"){t+=2;break}}return t}const Vfe='"',Kfe="'";function Gfe(e,t){let n="",r="",i=!1;for(;t<e.length;t++){if(e[t]===Vfe||e[t]===Kfe)r===""?r=e[t]:r!==e[t]||(r="");else if(e[t]===">"&&r===""){i=!0;break}n+=e[t]}return r!==""?!1:{value:n,index:t,tagClosed:i}}const Wfe=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,"g");function dv(e,t){const n=am.getAllMatches(e,Wfe),r={};for(let i=0;i<n.length;i++){if(n[i][1].length===0)return Ge("InvalidAttr","Attribute '"+n[i][2]+"' has no space in starting.",ds(n[i]));if(n[i][3]!==void 0&&n[i][4]===void 0)return Ge("InvalidAttr","Attribute '"+n[i][2]+"' is without value.",ds(n[i]));if(n[i][3]===void 0&&!t.allowBooleanAttributes)return Ge("InvalidAttr","boolean attribute '"+n[i][2]+"' is not allowed.",ds(n[i]));const s=n[i][2];if(!Xfe(s))return Ge("InvalidAttr","Attribute '"+s+"' is an invalid name.",ds(n[i]));if(!r.hasOwnProperty(s))r[s]=1;else return Ge("InvalidAttr","Attribute '"+s+"' is repeated.",ds(n[i]))}return!0}function Jfe(e,t){let n=/\d/;for(e[t]==="x"&&(t++,n=/[\da-fA-F]/);t<e.length;t++){if(e[t]===";")return t;if(!e[t].match(n))break}return-1}function Zfe(e,t){if(t++,e[t]===";")return-1;if(e[t]==="#")return t++,Jfe(e,t);let n=0;for(;t<e.length;t++,n++)if(!(e[t].match(/\w/)&&n<20)){if(e[t]===";")break;return-1}return t}function Ge(e,t,n){return{err:{code:e,msg:t,line:n.line||n,col:n.col}}}function Xfe(e){return am.isName(e)}function Yfe(e){return am.isName(e)}function vt(e,t){const n=e.substring(0,t).split(/\r?\n/);return{line:n.length,col:n[n.length-1].length+1}}function ds(e){return e.startIndex+e[1].length}var cm={};const H$={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(e,t){return t},attributeValueProcessor:function(e,t){return t},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(e,t,n){return e},captureMetaData:!1,maxNestedTags:100,strictReservedNames:!0};function V$(e){return typeof e=="boolean"?{enabled:e,maxEntitySize:1e4,maxExpansionDepth:10,maxTotalExpansions:1e3,maxExpandedLength:1e5,allowedTags:null,tagFilter:null}:typeof e=="object"&&e!==null?{enabled:e.enabled!==!1,maxEntitySize:e.maxEntitySize??1e4,maxExpansionDepth:e.maxExpansionDepth??10,maxTotalExpansions:e.maxTotalExpansions??1e3,maxExpandedLength:e.maxExpandedLength??1e5,allowedTags:e.allowedTags??null,tagFilter:e.tagFilter??null}:V$(!0)}const Qfe=function(e){const t=Object.assign({},H$,e);return t.processEntities=V$(t.processEntities),t};cm.buildOptions=Qfe;cm.defaultOptions=H$;class e0e{constructor(t){this.tagname=t,this.child=[],this[":@"]={}}add(t,n){t==="__proto__"&&(t="#__proto__"),this.child.push({[t]:n})}addChild(t){t.tagname==="__proto__"&&(t.tagname="#__proto__"),t[":@"]&&Object.keys(t[":@"]).length>0?this.child.push({[t.tagname]:t.child,":@":t[":@"]}):this.child.push({[t.tagname]:t.child})}}var t0e=e0e;const K$=Od;let n0e=class{constructor(e){this.suppressValidationErr=!e,this.options=e||{}}readDocType(e,t){const n=Object.create(null);if(e[t+3]==="O"&&e[t+4]==="C"&&e[t+5]==="T"&&e[t+6]==="Y"&&e[t+7]==="P"&&e[t+8]==="E"){t=t+9;let r=1,i=!1,s=!1,a="";for(;t<e.length;t++)if(e[t]==="<"&&!s){if(i&&Zr(e,"!ENTITY",t)){t+=7;let c,l;if([c,l,t]=this.readEntityExp(e,t+1,this.suppressValidationErr),l.indexOf("&")===-1){const u=c.replace(/[.\-+*:]/g,"\\.");n[c]={regx:RegExp(`&${u};`,"g"),val:l}}}else if(i&&Zr(e,"!ELEMENT",t)){t+=8;const{index:c}=this.readElementExp(e,t+1);t=c}else if(i&&Zr(e,"!ATTLIST",t))t+=8;else if(i&&Zr(e,"!NOTATION",t)){t+=9;const{index:c}=this.readNotationExp(e,t+1,this.suppressValidationErr);t=c}else if(Zr(e,"!--",t))s=!0;else throw new Error("Invalid DOCTYPE");r++,a=""}else if(e[t]===">"){if(s?e[t-1]==="-"&&e[t-2]==="-"&&(s=!1,r--):r--,r===0)break}else e[t]==="["?i=!0:a+=e[t];if(r!==0)throw new Error("Unclosed DOCTYPE")}else throw new Error("Invalid Tag instead of DOCTYPE");return{entities:n,i:t}}readEntityExp(e,t){t=At(e,t);let n="";for(;t<e.length&&!/\s/.test(e[t])&&e[t]!=='"'&&e[t]!=="'";)n+=e[t],t++;if(ps(n),t=At(e,t),!this.suppressValidationErr){if(e.substring(t,t+6).toUpperCase()==="SYSTEM")throw new Error("External entities are not supported");if(e[t]==="%")throw new Error("Parameter entities are not supported")}let r="";if([t,r]=this.readIdentifierVal(e,t,"entity"),this.options.enabled!==!1&&this.options.maxEntitySize&&r.length>this.options.maxEntitySize)throw new Error(`Entity "${n}" size (${r.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return t--,[n,r,t]}readNotationExp(e,t){t=At(e,t);let n="";for(;t<e.length&&!/\s/.test(e[t]);)n+=e[t],t++;!this.suppressValidationErr&&ps(n),t=At(e,t);const r=e.substring(t,t+6).toUpperCase();if(!this.suppressValidationErr&&r!=="SYSTEM"&&r!=="PUBLIC")throw new Error(`Expected SYSTEM or PUBLIC, found "${r}"`);t+=r.length,t=At(e,t);let i=null,s=null;if(r==="PUBLIC")[t,i]=this.readIdentifierVal(e,t,"publicIdentifier"),t=At(e,t),(e[t]==='"'||e[t]==="'")&&([t,s]=this.readIdentifierVal(e,t,"systemIdentifier"));else if(r==="SYSTEM"&&([t,s]=this.readIdentifierVal(e,t,"systemIdentifier"),!this.suppressValidationErr&&!s))throw new Error("Missing mandatory system identifier for SYSTEM notation");return{notationName:n,publicIdentifier:i,systemIdentifier:s,index:--t}}readIdentifierVal(e,t,n){let r="";const i=e[t];if(i!=='"'&&i!=="'")throw new Error(`Expected quoted string, found "${i}"`);for(t++;t<e.length&&e[t]!==i;)r+=e[t],t++;if(e[t]!==i)throw new Error(`Unterminated ${n} value`);return t++,[t,r]}readElementExp(e,t){t=At(e,t);let n="";for(;t<e.length&&!/\s/.test(e[t]);)n+=e[t],t++;if(!this.suppressValidationErr&&!K$.isName(n))throw new Error(`Invalid element name: "${n}"`);t=At(e,t);let r="";if(e[t]==="E"&&Zr(e,"MPTY",t))t+=4;else if(e[t]==="A"&&Zr(e,"NY",t))t+=2;else if(e[t]==="("){for(t++;t<e.length&&e[t]!==")";)r+=e[t],t++;if(e[t]!==")")throw new Error("Unterminated content model")}else if(!this.suppressValidationErr)throw new Error(`Invalid Element Expression, found "${e[t]}"`);return{elementName:n,contentModel:r.trim(),index:t}}readAttlistExp(e,t){t=At(e,t);let n="";for(;t<e.length&&!/\s/.test(e[t]);)n+=e[t],t++;ps(n),t=At(e,t);let r="";for(;t<e.length&&!/\s/.test(e[t]);)r+=e[t],t++;if(!ps(r))throw new Error(`Invalid attribute name: "${r}"`);t=At(e,t);let i="";if(e.substring(t,t+8).toUpperCase()==="NOTATION"){if(i="NOTATION",t+=8,t=At(e,t),e[t]!=="(")throw new Error(`Expected '(', found "${e[t]}"`);t++;let a=[];for(;t<e.length&&e[t]!==")";){let c="";for(;t<e.length&&e[t]!=="|"&&e[t]!==")";)c+=e[t],t++;if(c=c.trim(),!ps(c))throw new Error(`Invalid notation name: "${c}"`);a.push(c),e[t]==="|"&&(t++,t=At(e,t))}if(e[t]!==")")throw new Error("Unterminated list of notations");t++,i+=" ("+a.join("|")+")"}else{for(;t<e.length&&!/\s/.test(e[t]);)i+=e[t],t++;const a=["CDATA","ID","IDREF","IDREFS","ENTITY","ENTITIES","NMTOKEN","NMTOKENS"];if(!this.suppressValidationErr&&!a.includes(i.toUpperCase()))throw new Error(`Invalid attribute type: "${i}"`)}t=At(e,t);let s="";return e.substring(t,t+8).toUpperCase()==="#REQUIRED"?(s="#REQUIRED",t+=8):e.substring(t,t+7).toUpperCase()==="#IMPLIED"?(s="#IMPLIED",t+=7):[t,s]=this.readIdentifierVal(e,t,"ATTLIST"),{elementName:n,attributeName:r,attributeType:i,defaultValue:s,index:t}}};const At=(e,t)=>{for(;t<e.length&&/\s/.test(e[t]);)t++;return t};function Zr(e,t,n){for(let r=0;r<t.length;r++)if(t[r]!==e[n+r+1])return!1;return!0}function ps(e){if(K$.isName(e))return e;throw new Error(`Invalid entity name ${e}`)}var r0e=n0e;const i0e=/^[-+]?0x[a-fA-F0-9]+$/,o0e=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/,s0e={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};function a0e(e,t={}){if(t=Object.assign({},s0e,t),!e||typeof e!="string")return e;let n=e.trim();if(t.skipLike!==void 0&&t.skipLike.test(n))return e;if(e==="0")return 0;if(t.hex&&i0e.test(n))return l0e(n,16);if(n.search(/[eE]/)!==-1){const r=n.match(/^([-\+])?(0*)([0-9]*(\.[0-9]*)?[eE][-\+]?[0-9]+)$/);if(r){if(t.leadingZeros)n=(r[1]||"")+r[3];else if(!(r[2]==="0"&&r[3][0]==="."))return e;return t.eNotation?Number(n):e}else return e}else{const r=o0e.exec(n);if(r){const i=r[1],s=r[2];let a=c0e(r[3]);if(!t.leadingZeros&&s.length>0&&i&&n[2]!=="."||!t.leadingZeros&&s.length>0&&!i&&n[1]!==".")return e;if(t.leadingZeros&&s===e)return 0;{const c=Number(n),l=""+c;return l.search(/[eE]/)!==-1?t.eNotation?c:e:n.indexOf(".")!==-1?l==="0"&&a===""||l===a||i&&l==="-"+a?c:e:s?a===l||i+a===l?c:e:n===l||n===i+l?c:e}}else return e}}function c0e(e){return e&&e.indexOf(".")!==-1&&(e=e.replace(/0+$/,""),e==="."?e="0":e[0]==="."?e="0"+e:e[e.length-1]==="."&&(e=e.substr(0,e.length-1))),e}function l0e(e,t){if(parseInt)return parseInt(e,t);if(Number.parseInt)return Number.parseInt(e,t);if(window&&window.parseInt)return window.parseInt(e,t);throw new Error("parseInt, Number.parseInt, window.parseInt are not supported")}var u0e=a0e;function d0e(e){return typeof e=="function"?e:Array.isArray(e)?t=>{for(const n of e)if(typeof n=="string"&&t===n||n instanceof RegExp&&n.test(t))return!0}:()=>!1}var G$=d0e;const W$=Od,Ki=t0e,p0e=r0e,f0e=u0e,h0e=G$;let _0e=class{constructor(e){if(this.options=e,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,n)=>pv(n,10,"&#")},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,n)=>pv(n,16,"&#x")}},this.addExternalEntities=m0e,this.parseXml=w0e,this.parseTextData=g0e,this.resolveNameSpace=y0e,this.buildAttributesMap=v0e,this.isItStopNode=x0e,this.replaceEntitiesValue=$0e,this.readStopNodeData=A0e,this.saveTextToParentTag=S0e,this.addChild=k0e,this.ignoreAttributesFn=h0e(this.options.ignoreAttributes),this.entityExpansionCount=0,this.currentExpandedLength=0,this.options.stopNodes&&this.options.stopNodes.length>0){this.stopNodesExact=new Set,this.stopNodesWildcard=new Set;for(let t=0;t<this.options.stopNodes.length;t++){const n=this.options.stopNodes[t];typeof n=="string"&&(n.startsWith("*.")?this.stopNodesWildcard.add(n.substring(2)):this.stopNodesExact.add(n))}}}};function m0e(e){const t=Object.keys(e);for(let n=0;n<t.length;n++){const r=t[n],i=r.replace(/[.\-+*:]/g,"\\.");this.lastEntities[r]={regex:new RegExp("&"+i+";","g"),val:e[r]}}}function g0e(e,t,n,r,i,s,a){if(e!==void 0&&(this.options.trimValues&&!r&&(e=e.trim()),e.length>0)){a||(e=this.replaceEntitiesValue(e,t,n));const c=this.options.tagValueProcessor(t,e,n,i,s);return c==null?e:typeof c!=typeof e||c!==e?c:this.options.trimValues?ch(e,this.options.parseTagValue,this.options.numberParseOptions):e.trim()===e?ch(e,this.options.parseTagValue,this.options.numberParseOptions):e}}function y0e(e){if(this.options.removeNSPrefix){const t=e.split(":"),n=e.charAt(0)==="/"?"/":"";if(t[0]==="xmlns")return"";t.length===2&&(e=n+t[1])}return e}const b0e=new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`,"gm");function v0e(e,t,n){if(this.options.ignoreAttributes!==!0&&typeof e=="string"){const r=W$.getAllMatches(e,b0e),i=r.length,s={};for(let a=0;a<i;a++){const c=this.resolveNameSpace(r[a][1]);if(this.ignoreAttributesFn(c,t))continue;let l=r[a][4],u=this.options.attributeNamePrefix+c;if(c.length)if(this.options.transformAttributeName&&(u=this.options.transformAttributeName(u)),u==="__proto__"&&(u="#__proto__"),l!==void 0){this.options.trimValues&&(l=l.trim()),l=this.replaceEntitiesValue(l,n,t);const d=this.options.attributeValueProcessor(c,l,t);d==null?s[u]=l:typeof d!=typeof l||d!==l?s[u]=d:s[u]=ch(l,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(s[u]=!0)}if(!Object.keys(s).length)return;if(this.options.attributesGroupName){const a={};return a[this.options.attributesGroupName]=s,a}return s}}const w0e=function(e){e=e.replace(/\r\n?/g,`
|
|
407
|
+
`);const t=new Ki("!xml");let n=t,r="",i="";this.entityExpansionCount=0,this.currentExpandedLength=0;const s=new p0e(this.options.processEntities);for(let a=0;a<e.length;a++)if(e[a]==="<")if(e[a+1]==="/"){const c=ai(e,">",a,"Closing Tag is not closed.");let l=e.substring(a+2,c).trim();if(this.options.removeNSPrefix){const f=l.indexOf(":");f!==-1&&(l=l.substr(f+1))}this.options.transformTagName&&(l=this.options.transformTagName(l)),n&&(r=this.saveTextToParentTag(r,n,i));const u=i.substring(i.lastIndexOf(".")+1);if(l&&this.options.unpairedTags.indexOf(l)!==-1)throw new Error(`Unpaired tag can not be used as closing tag: </${l}>`);let d=0;u&&this.options.unpairedTags.indexOf(u)!==-1?(d=i.lastIndexOf(".",i.lastIndexOf(".")-1),this.tagsNodeStack.pop()):d=i.lastIndexOf("."),i=i.substring(0,d),n=this.tagsNodeStack.pop(),r="",a=c}else if(e[a+1]==="?"){let c=ah(e,a,!1,"?>");if(!c)throw new Error("Pi Tag is not closed.");if(r=this.saveTextToParentTag(r,n,i),!(this.options.ignoreDeclaration&&c.tagName==="?xml"||this.options.ignorePiTags)){const l=new Ki(c.tagName);l.add(this.options.textNodeName,""),c.tagName!==c.tagExp&&c.attrExpPresent&&(l[":@"]=this.buildAttributesMap(c.tagExp,i,c.tagName)),this.addChild(n,l,i,a)}a=c.closeIndex+1}else if(e.substr(a+1,3)==="!--"){const c=ai(e,"-->",a+4,"Comment is not closed.");if(this.options.commentPropName){const l=e.substring(a+4,c-2);r=this.saveTextToParentTag(r,n,i),n.add(this.options.commentPropName,[{[this.options.textNodeName]:l}])}a=c}else if(e.substr(a+1,2)==="!D"){const c=s.readDocType(e,a);this.docTypeEntities=c.entities,a=c.i}else if(e.substr(a+1,2)==="!["){const c=ai(e,"]]>",a,"CDATA is not closed.")-2,l=e.substring(a+9,c);r=this.saveTextToParentTag(r,n,i);let u=this.parseTextData(l,n.tagname,i,!0,!1,!0,!0);u==null&&(u=""),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:l}]):n.add(this.options.textNodeName,u),a=c+2}else{let c=ah(e,a,this.options.removeNSPrefix),l=c.tagName;const u=c.rawTagName;let d=c.tagExp,f=c.attrExpPresent,p=c.closeIndex;if(this.options.transformTagName){const g=this.options.transformTagName(l);d===l&&(d=g),l=g}if(this.options.strictReservedNames&&(l===this.options.commentPropName||l===this.options.cdataPropName))throw new Error(`Invalid tag name: ${l}`);n&&r&&n.tagname!=="!xml"&&(r=this.saveTextToParentTag(r,n,i,!1));const h=n;h&&this.options.unpairedTags.indexOf(h.tagname)!==-1&&(n=this.tagsNodeStack.pop(),i=i.substring(0,i.lastIndexOf("."))),l!==t.tagname&&(i+=i?"."+l:l);const _=a;if(this.isItStopNode(this.stopNodesExact,this.stopNodesWildcard,i,l)){let g="";if(d.length>0&&d.lastIndexOf("/")===d.length-1)l[l.length-1]==="/"?(l=l.substr(0,l.length-1),i=i.substr(0,i.length-1),d=l):d=d.substr(0,d.length-1),a=c.closeIndex;else if(this.options.unpairedTags.indexOf(l)!==-1)a=c.closeIndex;else{const m=this.readStopNodeData(e,u,p+1);if(!m)throw new Error(`Unexpected end of ${u}`);a=m.i,g=m.tagContent}const y=new Ki(l);l!==d&&f&&(y[":@"]=this.buildAttributesMap(d,i,l)),g&&(g=this.parseTextData(g,l,i,!0,f,!0,!0)),i=i.substr(0,i.lastIndexOf(".")),y.add(this.options.textNodeName,g),this.addChild(n,y,i,_)}else{if(d.length>0&&d.lastIndexOf("/")===d.length-1){if(l[l.length-1]==="/"?(l=l.substr(0,l.length-1),i=i.substr(0,i.length-1),d=l):d=d.substr(0,d.length-1),this.options.transformTagName){const y=this.options.transformTagName(l);d===l&&(d=y),l=y}const g=new Ki(l);l!==d&&f&&(g[":@"]=this.buildAttributesMap(d,i,l)),this.addChild(n,g,i,_),i=i.substr(0,i.lastIndexOf("."))}else if(this.options.unpairedTags.indexOf(l)!==-1){const g=new Ki(l);l!==d&&f&&(g[":@"]=this.buildAttributesMap(d,i)),this.addChild(n,g,i,_),i=i.substr(0,i.lastIndexOf(".")),a=c.closeIndex;continue}else{const g=new Ki(l);if(this.tagsNodeStack.length>this.options.maxNestedTags)throw new Error("Maximum nested tags exceeded");this.tagsNodeStack.push(n),l!==d&&f&&(g[":@"]=this.buildAttributesMap(d,i,l)),this.addChild(n,g,i),n=g}r="",a=p}}else r+=e[a];return t.child};function k0e(e,t,n,r){this.options.captureMetaData||(r=void 0);const i=this.options.updateTag(t.tagname,n,t[":@"]);i===!1||(typeof i=="string"&&(t.tagname=i),e.addChild(t,r))}const $0e=function(e,t,n){if(e.indexOf("&")===-1)return e;const r=this.options.processEntities;if(!r.enabled||r.allowedTags&&!r.allowedTags.includes(t)||r.tagFilter&&!r.tagFilter(t,n))return e;for(let i in this.docTypeEntities){const s=this.docTypeEntities[i],a=e.match(s.regx);if(a){if(this.entityExpansionCount+=a.length,r.maxTotalExpansions&&this.entityExpansionCount>r.maxTotalExpansions)throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${r.maxTotalExpansions}`);const c=e.length;if(e=e.replace(s.regx,s.val),r.maxExpandedLength&&(this.currentExpandedLength+=e.length-c,this.currentExpandedLength>r.maxExpandedLength))throw new Error(`Total expanded content size exceeded: ${this.currentExpandedLength} > ${r.maxExpandedLength}`)}}if(e.indexOf("&")===-1)return e;for(let i in this.lastEntities){const s=this.lastEntities[i];e=e.replace(s.regex,s.val)}if(e.indexOf("&")===-1)return e;if(this.options.htmlEntities)for(let i in this.htmlEntities){const s=this.htmlEntities[i];e=e.replace(s.regex,s.val)}return e=e.replace(this.ampEntity.regex,this.ampEntity.val),e};function S0e(e,t,n,r){return e&&(r===void 0&&(r=t.child.length===0),e=this.parseTextData(e,t.tagname,n,!1,t[":@"]?Object.keys(t[":@"]).length!==0:!1,r),e!==void 0&&e!==""&&t.add(this.options.textNodeName,e),e=""),e}function x0e(e,t,n,r){return!!(t&&t.has(r)||e&&e.has(n))}function z0e(e,t,n=">"){let r,i="";for(let s=t;s<e.length;s++){let a=e[s];if(r)a===r&&(r="");else if(a==='"'||a==="'")r=a;else if(a===n[0])if(n[1]){if(e[s+1]===n[1])return{data:i,index:s}}else return{data:i,index:s};else a===" "&&(a=" ");i+=a}}function ai(e,t,n,r){const i=e.indexOf(t,n);if(i===-1)throw new Error(r);return i+t.length-1}function ah(e,t,n,r=">"){const i=z0e(e,t+1,r);if(!i)return;let s=i.data;const a=i.index,c=s.search(/\s/);let l=s,u=!0;c!==-1&&(l=s.substring(0,c),s=s.substring(c+1).trimStart());const d=l;if(n){const f=l.indexOf(":");f!==-1&&(l=l.substr(f+1),u=l!==i.data.substr(f+1))}return{tagName:l,tagExp:s,closeIndex:a,attrExpPresent:u,rawTagName:d}}function A0e(e,t,n){const r=n;let i=1;for(;n<e.length;n++)if(e[n]==="<")if(e[n+1]==="/"){const s=ai(e,">",n,`${t} is not closed`);if(e.substring(n+2,s).trim()===t&&(i--,i===0))return{tagContent:e.substring(r,n),i:s};n=s}else if(e[n+1]==="?")n=ai(e,"?>",n+1,"StopNode is not closed.");else if(e.substr(n+1,3)==="!--")n=ai(e,"-->",n+3,"StopNode is not closed.");else if(e.substr(n+1,2)==="![")n=ai(e,"]]>",n,"StopNode is not closed.")-2;else{const s=ah(e,n,">");s&&((s&&s.tagName)===t&&s.tagExp[s.tagExp.length-1]!=="/"&&i++,n=s.closeIndex)}}function ch(e,t,n){if(t&&typeof e=="string"){const r=e.trim();return r==="true"?!0:r==="false"?!1:f0e(e,n)}else return W$.isExist(e)?e:""}function pv(e,t,n){const r=Number.parseInt(e,t);return r>=0&&r<=1114111?String.fromCodePoint(r):n+e+";"}var E0e=_0e,J$={};function C0e(e,t){return Z$(e,t)}function Z$(e,t,n){let r;const i={};for(let s=0;s<e.length;s++){const a=e[s],c=I0e(a);let l="";if(n===void 0?l=c:l=n+"."+c,c===t.textNodeName)r===void 0?r=a[c]:r+=""+a[c];else{if(c===void 0)continue;if(a[c]){let u=Z$(a[c],t,l);const d=N0e(u,t);a[":@"]?j0e(u,a[":@"],l,t):Object.keys(u).length===1&&u[t.textNodeName]!==void 0&&!t.alwaysCreateTextNode?u=u[t.textNodeName]:Object.keys(u).length===0&&(t.alwaysCreateTextNode?u[t.textNodeName]="":u=""),i[c]!==void 0&&i.hasOwnProperty(c)?(Array.isArray(i[c])||(i[c]=[i[c]]),i[c].push(u)):t.isArray(c,l,d)?i[c]=[u]:i[c]=u}}}return typeof r=="string"?r.length>0&&(i[t.textNodeName]=r):r!==void 0&&(i[t.textNodeName]=r),i}function I0e(e){const t=Object.keys(e);for(let n=0;n<t.length;n++){const r=t[n];if(r!==":@")return r}}function j0e(e,t,n,r){if(t){const i=Object.keys(t),s=i.length;for(let a=0;a<s;a++){const c=i[a];r.isArray(c,n+"."+c,!0,!0)?e[c]=[t[c]]:e[c]=t[c]}}}function N0e(e,t){const{textNodeName:n}=t,r=Object.keys(e).length;return!!(r===0||r===1&&(e[n]||typeof e[n]=="boolean"||e[n]===0))}J$.prettify=C0e;const{buildOptions:T0e}=cm,P0e=E0e,{prettify:O0e}=J$,R0e=F$;let L0e=class{constructor(e){this.externalEntities={},this.options=T0e(e)}parse(e,t){if(typeof e!="string")if(e.toString)e=e.toString();else throw new Error("XML data is accepted in String or Bytes[] form.");if(t){t===!0&&(t={});const i=R0e.validate(e,t);if(i!==!0)throw Error(`${i.err.msg}:${i.err.line}:${i.err.col}`)}const n=new P0e(this.options);n.addExternalEntities(this.externalEntities);const r=n.parseXml(e);return this.options.preserveOrder||r===void 0?r:O0e(r,this.options)}addEntity(e,t){if(t.indexOf("&")!==-1)throw new Error("Entity value can't have '&'");if(e.indexOf("&")!==-1||e.indexOf(";")!==-1)throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '
'");if(t==="&")throw new Error("An entity with value '&' is not permitted");this.externalEntities[e]=t}};var D0e=L0e;const U0e=`
|
|
408
|
+
`;function B0e(e,t){let n="";return t.format&&t.indentBy.length>0&&(n=U0e),X$(e,t,"",n)}function X$(e,t,n,r){let i="",s=!1;if(!Array.isArray(e)){if(e!=null){let a=e.toString();return a=lh(a,t),a}return""}for(let a=0;a<e.length;a++){const c=e[a],l=M0e(c);if(l===void 0)continue;let u="";if(n.length===0?u=l:u=`${n}.${l}`,l===t.textNodeName){let _=c[l];q0e(u,t)||(_=t.tagValueProcessor(l,_),_=lh(_,t)),s&&(i+=r),i+=_,s=!1;continue}else if(l===t.cdataPropName){s&&(i+=r),i+=`<![CDATA[${c[l][0][t.textNodeName]}]]>`,s=!1;continue}else if(l===t.commentPropName){i+=r+`<!--${c[l][0][t.textNodeName]}-->`,s=!0;continue}else if(l[0]==="?"){const _=fv(c[":@"],t),g=l==="?xml"?"":r;let y=c[l][0][t.textNodeName];y=y.length!==0?" "+y:"",i+=g+`<${l}${y}${_}?>`,s=!0;continue}let d=r;d!==""&&(d+=t.indentBy);const f=fv(c[":@"],t),p=r+`<${l}${f}`,h=X$(c[l],t,u,d);t.unpairedTags.indexOf(l)!==-1?t.suppressUnpairedNode?i+=p+">":i+=p+"/>":(!h||h.length===0)&&t.suppressEmptyNode?i+=p+"/>":h&&h.endsWith(">")?i+=p+`>${h}${r}</${l}>`:(i+=p+">",h&&r!==""&&(h.includes("/>")||h.includes("</"))?i+=r+t.indentBy+h+r:i+=h,i+=`</${l}>`),s=!0}return i}function M0e(e){const t=Object.keys(e);for(let n=0;n<t.length;n++){const r=t[n];if(Object.prototype.hasOwnProperty.call(e,r)&&r!==":@")return r}}function fv(e,t){let n="";if(e&&!t.ignoreAttributes)for(let r in e){if(!Object.prototype.hasOwnProperty.call(e,r))continue;let i=t.attributeValueProcessor(r,e[r]);i=lh(i,t),i===!0&&t.suppressBooleanAttributes?n+=` ${r.substr(t.attributeNamePrefix.length)}`:n+=` ${r.substr(t.attributeNamePrefix.length)}="${i}"`}return n}function q0e(e,t){e=e.substr(0,e.length-t.textNodeName.length-1);let n=e.substr(e.lastIndexOf(".")+1);for(let r in t.stopNodes)if(t.stopNodes[r]===e||t.stopNodes[r]==="*."+n)return!0;return!1}function lh(e,t){if(e&&e.length>0&&t.processEntities)for(let n=0;n<t.entities.length;n++){const r=t.entities[n];e=e.replace(r.regex,r.val)}return e}var F0e=B0e;const H0e=F0e,V0e=G$,K0e={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(e,t){return t},attributeValueProcessor:function(e,t){return t},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&"},{regex:new RegExp(">","g"),val:">"},{regex:new RegExp("<","g"),val:"<"},{regex:new RegExp("'","g"),val:"'"},{regex:new RegExp('"',"g"),val:"""}],processEntities:!0,stopNodes:[],oneListGroup:!1};function Fr(e){this.options=Object.assign({},K0e,e),this.options.ignoreAttributes===!0||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=V0e(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=J0e),this.processTextOrObjNode=G0e,this.options.format?(this.indentate=W0e,this.tagEndChar=`>
|
|
409
409
|
`,this.newLine=`
|
|
410
|
-
`):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}Fr.prototype.build=function(e){return this.options.preserveOrder?H0e(e,this.options):(Array.isArray(e)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(e={[this.options.arrayNodeName]:e}),this.j2x(e,0,[]).val)};Fr.prototype.j2x=function(e,t,n){let r="",i="";const s=n.join(".");for(let a in e)if(Object.prototype.hasOwnProperty.call(e,a))if(typeof e[a]>"u")this.isAttribute(a)&&(i+="");else if(e[a]===null)this.isAttribute(a)||a===this.options.cdataPropName?i+="":a[0]==="?"?i+=this.indentate(t)+"<"+a+"?"+this.tagEndChar:i+=this.indentate(t)+"<"+a+"/"+this.tagEndChar;else if(e[a]instanceof Date)i+=this.buildTextValNode(e[a],a,"",t);else if(typeof e[a]!="object"){const c=this.isAttribute(a);if(c&&!this.ignoreAttributesFn(c,s))r+=this.buildAttrPairStr(c,""+e[a]);else if(!c)if(a===this.options.textNodeName){let l=this.options.tagValueProcessor(a,""+e[a]);i+=this.replaceEntitiesValue(l)}else i+=this.buildTextValNode(e[a],a,"",t)}else if(Array.isArray(e[a])){const c=e[a].length;let l="",u="";for(let d=0;d<c;d++){const f=e[a][d];if(!(typeof f>"u"))if(f===null)a[0]==="?"?i+=this.indentate(t)+"<"+a+"?"+this.tagEndChar:i+=this.indentate(t)+"<"+a+"/"+this.tagEndChar;else if(typeof f=="object")if(this.options.oneListGroup){const p=this.j2x(f,t+1,n.concat(a));l+=p.val,this.options.attributesGroupName&&f.hasOwnProperty(this.options.attributesGroupName)&&(u+=p.attrStr)}else l+=this.processTextOrObjNode(f,a,t,n);else if(this.options.oneListGroup){let p=this.options.tagValueProcessor(a,f);p=this.replaceEntitiesValue(p),l+=p}else l+=this.buildTextValNode(f,a,"",t)}this.options.oneListGroup&&(l=this.buildObjectNode(l,a,u,t)),i+=l}else if(this.options.attributesGroupName&&a===this.options.attributesGroupName){const c=Object.keys(e[a]),l=c.length;for(let u=0;u<l;u++)r+=this.buildAttrPairStr(c[u],""+e[a][c[u]])}else i+=this.processTextOrObjNode(e[a],a,t,n);return{attrStr:r,val:i}};Fr.prototype.buildAttrPairStr=function(e,t){return t=this.options.attributeValueProcessor(e,""+t),t=this.replaceEntitiesValue(t),this.options.suppressBooleanAttributes&&t==="true"?" "+e:" "+e+'="'+t+'"'};function G0e(e,t,n,r){const i=this.j2x(e,n+1,r.concat(t));return e[this.options.textNodeName]!==void 0&&Object.keys(e).length===1?this.buildTextValNode(e[this.options.textNodeName],t,i.attrStr,n):this.buildObjectNode(i.val,t,i.attrStr,n)}Fr.prototype.buildObjectNode=function(e,t,n,r){if(e==="")return t[0]==="?"?this.indentate(r)+"<"+t+n+"?"+this.tagEndChar:this.indentate(r)+"<"+t+n+this.closeTag(t)+this.tagEndChar;{let i="</"+t+this.tagEndChar,s="";return t[0]==="?"&&(s="?",i=""),(n||n==="")&&e.indexOf("<")===-1?this.indentate(r)+"<"+t+n+s+">"+e+i:this.options.commentPropName!==!1&&t===this.options.commentPropName&&s.length===0?this.indentate(r)+`<!--${e}-->`+this.newLine:this.indentate(r)+"<"+t+n+s+this.tagEndChar+e+this.indentate(r)+i}};Fr.prototype.closeTag=function(e){let t="";return this.options.unpairedTags.indexOf(e)!==-1?this.options.suppressUnpairedNode||(t="/"):this.options.suppressEmptyNode?t="/":t=`></${e}`,t};Fr.prototype.buildTextValNode=function(e,t,n,r){if(this.options.cdataPropName!==!1&&t===this.options.cdataPropName)return this.indentate(r)+`<![CDATA[${e}]]>`+this.newLine;if(this.options.commentPropName!==!1&&t===this.options.commentPropName)return this.indentate(r)+`<!--${e}-->`+this.newLine;if(t[0]==="?")return this.indentate(r)+"<"+t+n+"?"+this.tagEndChar;{let i=this.options.tagValueProcessor(t,e);return i=this.replaceEntitiesValue(i),i===""?this.indentate(r)+"<"+t+n+this.closeTag(t)+this.tagEndChar:this.indentate(r)+"<"+t+n+">"+i+"</"+t+this.tagEndChar}};Fr.prototype.replaceEntitiesValue=function(e){if(e&&e.length>0&&this.options.processEntities)for(let t=0;t<this.options.entities.length;t++){const n=this.options.entities[t];e=e.replace(n.regex,n.val)}return e};function W0e(e){return this.options.indentBy.repeat(e)}function J0e(e){return e.startsWith(this.options.attributeNamePrefix)&&e!==this.options.textNodeName?e.substr(this.attrPrefixLen):!1}var Z0e=Fr;const X0e=D0e,Y0e=Z0e;var Y5={XMLParser:X0e,XMLBuilder:Y0e};class Q5{constructor(t,n){if(go(this,"alphabet"),go(this,"padding"),go(this,"decodeMap",new Map),t.length!==32)throw new Error("Invalid alphabet");if(this.alphabet=t,this.padding=n?.padding??"=",this.alphabet.includes(this.padding)||this.padding.length!==1)throw new Error("Invalid padding");for(let r=0;r<t.length;r++)this.decodeMap.set(t[r],r)}encode(t,n){let r="",i=0,s=0;for(let a=0;a<t.length;a++)for(i=i<<8|t[a],s+=8;s>=5;)s-=5,r+=this.alphabet[i>>s&31];if(s>0&&(r+=this.alphabet[i<<5-s&31]),n?.includePadding??!0){const a=(8-r.length%8)%8;for(let c=0;c<a;c++)r+="="}return r}decode(t,n){const r=n?.strict??!0,i=Math.ceil(t.length/8),s=[];for(let a=0;a<i;a++){let c=0;const l=[];for(let d=0;d<8;d++){const f=t[a*8+d];if(f==="="){if(a+1!==i)throw new Error(`Invalid character: ${f}`);c+=1;continue}if(f===void 0){if(r)throw new Error("Invalid data");c+=1;continue}const p=this.decodeMap.get(f)??null;if(p===null)throw new Error(`Invalid character: ${f}`);l.push(p)}if(c===8||c===7||c===5||c===2)throw new Error("Invalid padding");const u=(l[0]<<3)+(l[1]>>2);if(s.push(u),c<6){const d=((l[1]&3)<<6)+(l[2]<<1)+(l[3]>>4);s.push(d)}if(c<4){const d=((l[3]&255)<<4)+(l[4]>>1);s.push(d)}if(c<3){const d=((l[4]&1)<<7)+(l[5]<<2)+(l[6]>>3);s.push(d)}if(c<1){const d=((l[6]&7)<<5)+l[7];s.push(d)}}return Uint8Array.from(s)}}new Q5("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567");new Q5("0123456789ABCDEFGHIJKLMNOPQRSTUV");class eS{constructor(t,n){if(go(this,"alphabet"),go(this,"padding"),go(this,"decodeMap",new Map),t.length!==64)throw new Error("Invalid alphabet");if(this.alphabet=t,this.padding=n?.padding??"=",this.alphabet.includes(this.padding)||this.padding.length!==1)throw new Error("Invalid padding");for(let r=0;r<t.length;r++)this.decodeMap.set(t[r],r)}encode(t,n){let r="",i=0,s=0;for(let a=0;a<t.length;a++)for(i=i<<8|t[a],s+=8;s>=6;)s+=-6,r+=this.alphabet[i>>s&63];if(s>0&&(r+=this.alphabet[i<<6-s&63]),n?.includePadding??!0){const a=(4-r.length%4)%4;for(let c=0;c<a;c++)r+="="}return r}decode(t,n){const r=n?.strict??!0,i=Math.ceil(t.length/4),s=[];for(let a=0;a<i;a++){let c=0,l=0;for(let u=0;u<4;u++){const d=t[a*4+u];if(d==="="){if(a+1!==i)throw new Error(`Invalid character: ${d}`);c+=1;continue}if(d===void 0){if(r)throw new Error("Invalid data");c+=1;continue}const f=this.decodeMap.get(d)??null;if(f===null)throw new Error(`Invalid character: ${d}`);l+=f<<6*(3-u)}s.push(l>>16&255),c<2&&s.push(l>>8&255),c<1&&s.push(l&255)}return Uint8Array.from(s)}}const Q0e=new eS("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/");new eS("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_");async function ehe(e){const t=new DecompressionStream("deflate-raw"),n=new Uint8Array(e),r=new Blob([n]).stream().pipeThrough(t);return new Uint8Array(await new Response(r).arrayBuffer())}async function the(e){const t=await Q0e.decode(e.replace(/ /g,"+"));try{const n=await ehe(t);return new TextDecoder().decode(n)}catch(n){return console.warn("Decompression failed, assuming data is not compressed:",n),new TextDecoder().decode(t)}}async function nhe(e){const t=await the(e),n=new Y5.XMLParser({attributeNamePrefix:"@_",alwaysCreateTextNode:!0,ignoreAttributes:!1}).parse(t);return Mfe.parse(n)}function rhe(e){const t=e.certificates.map(r=>({"@_use":"signing",KeyInfo:{"@_xmlns":"http://www.w3.org/2000/09/xmldsig#",X509Data:{X509Certificate:r}}})),n={EntityDescriptor:{"@_entityID":e.entityId,"@_xmlns":"urn:oasis:names:tc:SAML:2.0:metadata",IDPSSODescriptor:{"@_protocolSupportEnumeration":"urn:oasis:names:tc:SAML:2.0:protocol",KeyDescriptor:t,SingleLogoutService:[{"@_Binding":"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect","@_Location":e.singleLogoutServiceUrl},{"@_Binding":"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST","@_Location":e.singleLogoutServiceUrl}],NameIDFormat:["urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress","urn:oasis:names:tc:SAML:2.0:nameid-format:persistent","urn:oasis:names:tc:SAML:2.0:nameid-format:transient"],SingleSignOnService:[{"@_Binding":"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect","@_Location":e.assertionConsumerServiceUrl},{"@_Binding":"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST","@_Location":e.assertionConsumerServiceUrl}],Attribute:[{"@_Name":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress","@_NameFormat":"urn:oasis:names:tc:SAML:2.0:attrname-format:uri","@_FriendlyName":"E-Mail Address","@_xmlns":"urn:oasis:names:tc:SAML:2.0:assertion"},{"@_Name":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname","@_NameFormat":"urn:oasis:names:tc:SAML:2.0:attrname-format:uri","@_FriendlyName":"Given Name","@_xmlns":"urn:oasis:names:tc:SAML:2.0:assertion"},{"@_Name":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name","@_NameFormat":"urn:oasis:names:tc:SAML:2.0:attrname-format:uri","@_FriendlyName":"Name","@_xmlns":"urn:oasis:names:tc:SAML:2.0:assertion"},{"@_Name":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname","@_NameFormat":"urn:oasis:names:tc:SAML:2.0:attrname-format:uri","@_FriendlyName":"Surname","@_xmlns":"urn:oasis:names:tc:SAML:2.0:assertion"},{"@_Name":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier","@_NameFormat":"urn:oasis:names:tc:SAML:2.0:attrname-format:uri","@_FriendlyName":"Name ID","@_xmlns":"urn:oasis:names:tc:SAML:2.0:assertion"}]}}};return new Y5.XMLBuilder({ignoreAttributes:!1,suppressEmptyNode:!0,preserveOrder:!1,format:!0,attributeNamePrefix:"@_"}).build(n)}const ihe=new o.OpenAPIHono().openapi(o.createRoute({tags:["saml"],method:"get",path:"/metadata/{client_id}",request:{params:o.z.object({client_id:o.z.string()})},responses:{200:{description:"Decoded SAML Request",content:{"text/xml":{schema:o.z.string()}}},400:{description:"Bad Request"}}}),async e=>{const{client_id:t}=e.req.valid("param"),n=await qe(e.env,t),{signingKeys:r}=await e.env.data.keys.list({q:"type:saml_encryption"});if(r.length===0)throw new I(500,{message:"No signing key found"});const i=r.map(c=>new vd(c.cert).toString("base64")),s=e.env.ISSUER,a=rhe({entityId:n.addons?.samlp?.audience||n.client_id,certificates:i,assertionConsumerServiceUrl:`${s}samlp/${t}`,singleLogoutServiceUrl:`${s}samlp/${t}/logout`});return new Response(a,{headers:{"Content-Type":"text/xml"}})}).openapi(o.createRoute({tags:["saml"],method:"get",path:"/{client_id}",request:{query:o.z.object({SAMLRequest:o.z.string(),RelayState:o.z.string().optional(),SigAlg:o.z.string().optional(),Signature:o.z.string().optional()}),params:o.z.object({client_id:o.z.string()})},responses:{200:{description:"Decoded SAML Request",content:{"text/xml":{schema:o.z.string()}}},400:{description:"Bad Request"}}}),async e=>{const{client_id:t}=e.req.valid("param"),{SAMLRequest:n,RelayState:r}=e.req.valid("query"),i=await qe(e.env,t);e.set("client_id",i.client_id),Vt(e,i.tenant.id);const s=await nhe(n),a=s["samlp:AuthnRequest"]["saml:Issuer"]["#text"],c=await e.env.data.loginSessions.create(e.var.tenant_id,{csrf_token:Oe(),authParams:{client_id:t,state:JSON.stringify({requestId:s["samlp:AuthnRequest"]["@_ID"],relayState:r}),response_mode:pn.SAML_POST,redirect_uri:s["samlp:AuthnRequest"]["@_AssertionConsumerServiceURL"],audience:a},expires_at:new Date(Date.now()+di*1e3).toISOString(),ip:e.get("ip"),useragent:e.get("useragent"),auth0Client:rr(e.get("auth0_client"))});return e.redirect(`/u/login/identifier?state=${c.id}`)});function ohe(e){const t=new o.OpenAPIHono;t.use(async(r,i)=>{const s=Mo(r,e.dataAdapter),a=e.dataAdapter.cache||is({defaultTtlSeconds:0,maxEntries:100,cleanupIntervalMs:0}),c=e.dataAdapter.cache?300:0,l=Qa(s,{defaultTtl:c,cacheEntities:["tenants","connections","clients","clientConnections","branding","themes","promptSettings","forms","hooks"],cache:a});return r.env.data=Ya(r,l),i()}),t.use(rs).use(ns).use(kd(t));const n=t.route("/",ihe);return n.doc("/spec",{openapi:"3.0.0",info:{version:"1.0.0",title:"SAML API"},security:[{oauth2:["openid","email","profile"]}]}),j_(n),n}const she="Account detected",ahe="Manage your account details",che="Account",lhe="We have detected that you have already created an account through",uhe="By signing in, you agree to our",dhe="and",phe="email address",fhe="email or phone number",hhe="phone number",_he="Callback URL mismatch",mhe="The provided redirect_uri is not in the list of allowed callback URLs.",ghe="Change email address",yhe="continue with user",bhe="Please click the button to create a new password account.",vhe="Enter the code at {{vendorName}} to complete the login",whe="Welcome to {{vendorName}}! {{code}} is the login code",khe="Welcome to {{vendorName}}! {{code}} is the login code",$he="Code expired",She="Invalid code",xhe="Welcome",zhe="Log in to {{companyName}} to continue to {{clientName}}.",Ahe="Please check <0>{{username}}</0> and enter the six-digit code that we've sent you.",Ehe="The code is already used",Che="The code is valid for 30 minutes",Ihe="A configuration error occurred.",jhe="Confirm password",Nhe="Are you sure you want to unlink this account?",The="Need Help?",Phe="Contact us",Ohe="or continue with social account",Rhe="Continue with {{provider}}",Lhe="Would you like to continue with your existing account?",Dhe="Copyright © 2023 SESAMY. All rights reserved.",Uhe="©2023 Sesamy",Bhe="Choose a password with a mix of uppercase and lowercase letters, numbers, and symbols.",Mhe="Please enter a valid email address.",qhe="The passwords didn't match. Try again.",Fhe="Choose password",Hhe="Password must be at least 8 characters long and contain at least one lowercase letter, one uppercase letter, one number and one symbol.",Vhe="Sign up",Khe="Sign up with password",Ghe="Don't have an account?",Whe="Current email address",Jhe="You are currently logged in as <0>{{email}}</0>",Zhe="Edit",Xhe="Email",Yhe="Email is already taken",Qhe="Email changed to <0>{{email}}</0> ",e_e="Email or Phone Number",t_e="Email address",n_e="Your email address has been validated",r_e="Now enter your password to login again",i_e="An email has been sent to <0>{{email}}</0> with a verification link. Please click the link to verify your email address and set a password.",o_e="Email verification sent",s_e="Do you have to keep logging in?",a_e="You are currently inside the {{browserName}}. This browser often logs you out, so we recommend using your phone's default browser instead.",c_e="Enter a code",l_e="Enter the verification code",u_e="Verification code",d_e="Enter code",p_e="Check your email",f_e="We'll send you a verification link to ensure you own this email address.",h_e="Enter new email",__e="Enter new password",m_e="Enter password",g_e="Enter your email address and password to login.",y_e="Signing in as {{email}}",b_e="Enter your password",v_e="Something went wrong",w_e="The magic link has expired. Please click on the button below to receive a new link in your inbox.",k_e="Hey! We updated our login experience. <0>Click here to learn more about it.</0>",$_e="Send password reset email",S_e="Click the button below and we’ll send instructions on how to reset your password.",x_e="Password reset email sent",z_e="Forgot password?",A_e="Forgot password?",E_e="Go back",C_e="Hide password",I_e="Incognito Mode Detected",j_e="You are in incognito/private mode. Session data may not persist across page refreshes. Some features might not work as expected.",N_e="Invalid identifier",T_e="Invalid password",P_e=`The link is no longer valid.
|
|
410
|
+
`):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}Fr.prototype.build=function(e){return this.options.preserveOrder?H0e(e,this.options):(Array.isArray(e)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(e={[this.options.arrayNodeName]:e}),this.j2x(e,0,[]).val)};Fr.prototype.j2x=function(e,t,n){let r="",i="";const s=n.join(".");for(let a in e)if(Object.prototype.hasOwnProperty.call(e,a))if(typeof e[a]>"u")this.isAttribute(a)&&(i+="");else if(e[a]===null)this.isAttribute(a)||a===this.options.cdataPropName?i+="":a[0]==="?"?i+=this.indentate(t)+"<"+a+"?"+this.tagEndChar:i+=this.indentate(t)+"<"+a+"/"+this.tagEndChar;else if(e[a]instanceof Date)i+=this.buildTextValNode(e[a],a,"",t);else if(typeof e[a]!="object"){const c=this.isAttribute(a);if(c&&!this.ignoreAttributesFn(c,s))r+=this.buildAttrPairStr(c,""+e[a]);else if(!c)if(a===this.options.textNodeName){let l=this.options.tagValueProcessor(a,""+e[a]);i+=this.replaceEntitiesValue(l)}else i+=this.buildTextValNode(e[a],a,"",t)}else if(Array.isArray(e[a])){const c=e[a].length;let l="",u="";for(let d=0;d<c;d++){const f=e[a][d];if(!(typeof f>"u"))if(f===null)a[0]==="?"?i+=this.indentate(t)+"<"+a+"?"+this.tagEndChar:i+=this.indentate(t)+"<"+a+"/"+this.tagEndChar;else if(typeof f=="object")if(this.options.oneListGroup){const p=this.j2x(f,t+1,n.concat(a));l+=p.val,this.options.attributesGroupName&&f.hasOwnProperty(this.options.attributesGroupName)&&(u+=p.attrStr)}else l+=this.processTextOrObjNode(f,a,t,n);else if(this.options.oneListGroup){let p=this.options.tagValueProcessor(a,f);p=this.replaceEntitiesValue(p),l+=p}else l+=this.buildTextValNode(f,a,"",t)}this.options.oneListGroup&&(l=this.buildObjectNode(l,a,u,t)),i+=l}else if(this.options.attributesGroupName&&a===this.options.attributesGroupName){const c=Object.keys(e[a]),l=c.length;for(let u=0;u<l;u++)r+=this.buildAttrPairStr(c[u],""+e[a][c[u]])}else i+=this.processTextOrObjNode(e[a],a,t,n);return{attrStr:r,val:i}};Fr.prototype.buildAttrPairStr=function(e,t){return t=this.options.attributeValueProcessor(e,""+t),t=this.replaceEntitiesValue(t),this.options.suppressBooleanAttributes&&t==="true"?" "+e:" "+e+'="'+t+'"'};function G0e(e,t,n,r){const i=this.j2x(e,n+1,r.concat(t));return e[this.options.textNodeName]!==void 0&&Object.keys(e).length===1?this.buildTextValNode(e[this.options.textNodeName],t,i.attrStr,n):this.buildObjectNode(i.val,t,i.attrStr,n)}Fr.prototype.buildObjectNode=function(e,t,n,r){if(e==="")return t[0]==="?"?this.indentate(r)+"<"+t+n+"?"+this.tagEndChar:this.indentate(r)+"<"+t+n+this.closeTag(t)+this.tagEndChar;{let i="</"+t+this.tagEndChar,s="";return t[0]==="?"&&(s="?",i=""),(n||n==="")&&e.indexOf("<")===-1?this.indentate(r)+"<"+t+n+s+">"+e+i:this.options.commentPropName!==!1&&t===this.options.commentPropName&&s.length===0?this.indentate(r)+`<!--${e}-->`+this.newLine:this.indentate(r)+"<"+t+n+s+this.tagEndChar+e+this.indentate(r)+i}};Fr.prototype.closeTag=function(e){let t="";return this.options.unpairedTags.indexOf(e)!==-1?this.options.suppressUnpairedNode||(t="/"):this.options.suppressEmptyNode?t="/":t=`></${e}`,t};Fr.prototype.buildTextValNode=function(e,t,n,r){if(this.options.cdataPropName!==!1&&t===this.options.cdataPropName)return this.indentate(r)+`<![CDATA[${e}]]>`+this.newLine;if(this.options.commentPropName!==!1&&t===this.options.commentPropName)return this.indentate(r)+`<!--${e}-->`+this.newLine;if(t[0]==="?")return this.indentate(r)+"<"+t+n+"?"+this.tagEndChar;{let i=this.options.tagValueProcessor(t,e);return i=this.replaceEntitiesValue(i),i===""?this.indentate(r)+"<"+t+n+this.closeTag(t)+this.tagEndChar:this.indentate(r)+"<"+t+n+">"+i+"</"+t+this.tagEndChar}};Fr.prototype.replaceEntitiesValue=function(e){if(e&&e.length>0&&this.options.processEntities)for(let t=0;t<this.options.entities.length;t++){const n=this.options.entities[t];e=e.replace(n.regex,n.val)}return e};function W0e(e){return this.options.indentBy.repeat(e)}function J0e(e){return e.startsWith(this.options.attributeNamePrefix)&&e!==this.options.textNodeName?e.substr(this.attrPrefixLen):!1}var Z0e=Fr;const X0e=D0e,Y0e=Z0e;var Y$={XMLParser:X0e,XMLBuilder:Y0e};class Q${constructor(t,n){if(go(this,"alphabet"),go(this,"padding"),go(this,"decodeMap",new Map),t.length!==32)throw new Error("Invalid alphabet");if(this.alphabet=t,this.padding=n?.padding??"=",this.alphabet.includes(this.padding)||this.padding.length!==1)throw new Error("Invalid padding");for(let r=0;r<t.length;r++)this.decodeMap.set(t[r],r)}encode(t,n){let r="",i=0,s=0;for(let a=0;a<t.length;a++)for(i=i<<8|t[a],s+=8;s>=5;)s-=5,r+=this.alphabet[i>>s&31];if(s>0&&(r+=this.alphabet[i<<5-s&31]),n?.includePadding??!0){const a=(8-r.length%8)%8;for(let c=0;c<a;c++)r+="="}return r}decode(t,n){const r=n?.strict??!0,i=Math.ceil(t.length/8),s=[];for(let a=0;a<i;a++){let c=0;const l=[];for(let d=0;d<8;d++){const f=t[a*8+d];if(f==="="){if(a+1!==i)throw new Error(`Invalid character: ${f}`);c+=1;continue}if(f===void 0){if(r)throw new Error("Invalid data");c+=1;continue}const p=this.decodeMap.get(f)??null;if(p===null)throw new Error(`Invalid character: ${f}`);l.push(p)}if(c===8||c===7||c===5||c===2)throw new Error("Invalid padding");const u=(l[0]<<3)+(l[1]>>2);if(s.push(u),c<6){const d=((l[1]&3)<<6)+(l[2]<<1)+(l[3]>>4);s.push(d)}if(c<4){const d=((l[3]&255)<<4)+(l[4]>>1);s.push(d)}if(c<3){const d=((l[4]&1)<<7)+(l[5]<<2)+(l[6]>>3);s.push(d)}if(c<1){const d=((l[6]&7)<<5)+l[7];s.push(d)}}return Uint8Array.from(s)}}new Q$("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567");new Q$("0123456789ABCDEFGHIJKLMNOPQRSTUV");class eS{constructor(t,n){if(go(this,"alphabet"),go(this,"padding"),go(this,"decodeMap",new Map),t.length!==64)throw new Error("Invalid alphabet");if(this.alphabet=t,this.padding=n?.padding??"=",this.alphabet.includes(this.padding)||this.padding.length!==1)throw new Error("Invalid padding");for(let r=0;r<t.length;r++)this.decodeMap.set(t[r],r)}encode(t,n){let r="",i=0,s=0;for(let a=0;a<t.length;a++)for(i=i<<8|t[a],s+=8;s>=6;)s+=-6,r+=this.alphabet[i>>s&63];if(s>0&&(r+=this.alphabet[i<<6-s&63]),n?.includePadding??!0){const a=(4-r.length%4)%4;for(let c=0;c<a;c++)r+="="}return r}decode(t,n){const r=n?.strict??!0,i=Math.ceil(t.length/4),s=[];for(let a=0;a<i;a++){let c=0,l=0;for(let u=0;u<4;u++){const d=t[a*4+u];if(d==="="){if(a+1!==i)throw new Error(`Invalid character: ${d}`);c+=1;continue}if(d===void 0){if(r)throw new Error("Invalid data");c+=1;continue}const f=this.decodeMap.get(d)??null;if(f===null)throw new Error(`Invalid character: ${d}`);l+=f<<6*(3-u)}s.push(l>>16&255),c<2&&s.push(l>>8&255),c<1&&s.push(l&255)}return Uint8Array.from(s)}}const Q0e=new eS("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/");new eS("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_");async function ehe(e){const t=new DecompressionStream("deflate-raw"),n=new Uint8Array(e),r=new Blob([n]).stream().pipeThrough(t);return new Uint8Array(await new Response(r).arrayBuffer())}async function the(e){const t=await Q0e.decode(e.replace(/ /g,"+"));try{const n=await ehe(t);return new TextDecoder().decode(n)}catch(n){return console.warn("Decompression failed, assuming data is not compressed:",n),new TextDecoder().decode(t)}}async function nhe(e){const t=await the(e),n=new Y$.XMLParser({attributeNamePrefix:"@_",alwaysCreateTextNode:!0,ignoreAttributes:!1}).parse(t);return Mfe.parse(n)}function rhe(e){const t=e.certificates.map(r=>({"@_use":"signing",KeyInfo:{"@_xmlns":"http://www.w3.org/2000/09/xmldsig#",X509Data:{X509Certificate:r}}})),n={EntityDescriptor:{"@_entityID":e.entityId,"@_xmlns":"urn:oasis:names:tc:SAML:2.0:metadata",IDPSSODescriptor:{"@_protocolSupportEnumeration":"urn:oasis:names:tc:SAML:2.0:protocol",KeyDescriptor:t,SingleLogoutService:[{"@_Binding":"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect","@_Location":e.singleLogoutServiceUrl},{"@_Binding":"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST","@_Location":e.singleLogoutServiceUrl}],NameIDFormat:["urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress","urn:oasis:names:tc:SAML:2.0:nameid-format:persistent","urn:oasis:names:tc:SAML:2.0:nameid-format:transient"],SingleSignOnService:[{"@_Binding":"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect","@_Location":e.assertionConsumerServiceUrl},{"@_Binding":"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST","@_Location":e.assertionConsumerServiceUrl}],Attribute:[{"@_Name":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress","@_NameFormat":"urn:oasis:names:tc:SAML:2.0:attrname-format:uri","@_FriendlyName":"E-Mail Address","@_xmlns":"urn:oasis:names:tc:SAML:2.0:assertion"},{"@_Name":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname","@_NameFormat":"urn:oasis:names:tc:SAML:2.0:attrname-format:uri","@_FriendlyName":"Given Name","@_xmlns":"urn:oasis:names:tc:SAML:2.0:assertion"},{"@_Name":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name","@_NameFormat":"urn:oasis:names:tc:SAML:2.0:attrname-format:uri","@_FriendlyName":"Name","@_xmlns":"urn:oasis:names:tc:SAML:2.0:assertion"},{"@_Name":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname","@_NameFormat":"urn:oasis:names:tc:SAML:2.0:attrname-format:uri","@_FriendlyName":"Surname","@_xmlns":"urn:oasis:names:tc:SAML:2.0:assertion"},{"@_Name":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier","@_NameFormat":"urn:oasis:names:tc:SAML:2.0:attrname-format:uri","@_FriendlyName":"Name ID","@_xmlns":"urn:oasis:names:tc:SAML:2.0:assertion"}]}}};return new Y$.XMLBuilder({ignoreAttributes:!1,suppressEmptyNode:!0,preserveOrder:!1,format:!0,attributeNamePrefix:"@_"}).build(n)}const ihe=new o.OpenAPIHono().openapi(o.createRoute({tags:["saml"],method:"get",path:"/metadata/{client_id}",request:{params:o.z.object({client_id:o.z.string()})},responses:{200:{description:"Decoded SAML Request",content:{"text/xml":{schema:o.z.string()}}},400:{description:"Bad Request"}}}),async e=>{const{client_id:t}=e.req.valid("param"),n=await qe(e.env,t),{signingKeys:r}=await e.env.data.keys.list({q:"type:saml_encryption"});if(r.length===0)throw new I(500,{message:"No signing key found"});const i=r.map(c=>new vd(c.cert).toString("base64")),s=e.env.ISSUER,a=rhe({entityId:n.addons?.samlp?.audience||n.client_id,certificates:i,assertionConsumerServiceUrl:`${s}samlp/${t}`,singleLogoutServiceUrl:`${s}samlp/${t}/logout`});return new Response(a,{headers:{"Content-Type":"text/xml"}})}).openapi(o.createRoute({tags:["saml"],method:"get",path:"/{client_id}",request:{query:o.z.object({SAMLRequest:o.z.string(),RelayState:o.z.string().optional(),SigAlg:o.z.string().optional(),Signature:o.z.string().optional()}),params:o.z.object({client_id:o.z.string()})},responses:{200:{description:"Decoded SAML Request",content:{"text/xml":{schema:o.z.string()}}},400:{description:"Bad Request"}}}),async e=>{const{client_id:t}=e.req.valid("param"),{SAMLRequest:n,RelayState:r}=e.req.valid("query"),i=await qe(e.env,t);e.set("client_id",i.client_id),Vt(e,i.tenant.id);const s=await nhe(n),a=s["samlp:AuthnRequest"]["saml:Issuer"]["#text"],c=await e.env.data.loginSessions.create(e.var.tenant_id,{csrf_token:Oe(),authParams:{client_id:t,state:JSON.stringify({requestId:s["samlp:AuthnRequest"]["@_ID"],relayState:r}),response_mode:pn.SAML_POST,redirect_uri:s["samlp:AuthnRequest"]["@_AssertionConsumerServiceURL"],audience:a},expires_at:new Date(Date.now()+di*1e3).toISOString(),ip:e.get("ip"),useragent:e.get("useragent"),auth0Client:rr(e.get("auth0_client"))});return e.redirect(`/u/login/identifier?state=${c.id}`)});function ohe(e){const t=new o.OpenAPIHono;t.use(async(r,i)=>{const s=Mo(r,e.dataAdapter),a=e.dataAdapter.cache||is({defaultTtlSeconds:0,maxEntries:100,cleanupIntervalMs:0}),c=e.dataAdapter.cache?300:0,l=Qa(s,{defaultTtl:c,cacheEntities:["tenants","connections","clients","clientConnections","branding","themes","promptSettings","forms","hooks"],cache:a});return r.env.data=Ya(r,l),i()}),t.use(rs).use(ns).use(kd(t));const n=t.route("/",ihe);return n.doc("/spec",{openapi:"3.0.0",info:{version:"1.0.0",title:"SAML API"},security:[{oauth2:["openid","email","profile"]}]}),j_(n),n}const she="Account detected",ahe="Manage your account details",che="Account",lhe="We have detected that you have already created an account through",uhe="By signing in, you agree to our",dhe="and",phe="email address",fhe="email or phone number",hhe="phone number",_he="Callback URL mismatch",mhe="The provided redirect_uri is not in the list of allowed callback URLs.",ghe="Change email address",yhe="continue with user",bhe="Please click the button to create a new password account.",vhe="Enter the code at {{vendorName}} to complete the login",whe="Welcome to {{vendorName}}! {{code}} is the login code",khe="Welcome to {{vendorName}}! {{code}} is the login code",$he="Code expired",She="Invalid code",xhe="Welcome",zhe="Log in to {{companyName}} to continue to {{clientName}}.",Ahe="Please check <0>{{username}}</0> and enter the six-digit code that we've sent you.",Ehe="The code is already used",Che="The code is valid for 30 minutes",Ihe="A configuration error occurred.",jhe="Confirm password",Nhe="Are you sure you want to unlink this account?",The="Need Help?",Phe="Contact us",Ohe="or continue with social account",Rhe="Continue with {{provider}}",Lhe="Would you like to continue with your existing account?",Dhe="Copyright © 2023 SESAMY. All rights reserved.",Uhe="©2023 Sesamy",Bhe="Choose a password with a mix of uppercase and lowercase letters, numbers, and symbols.",Mhe="Please enter a valid email address.",qhe="The passwords didn't match. Try again.",Fhe="Choose password",Hhe="Password must be at least 8 characters long and contain at least one lowercase letter, one uppercase letter, one number and one symbol.",Vhe="Sign up",Khe="Sign up with password",Ghe="Don't have an account?",Whe="Current email address",Jhe="You are currently logged in as <0>{{email}}</0>",Zhe="Edit",Xhe="Email",Yhe="Email is already taken",Qhe="Email changed to <0>{{email}}</0> ",e_e="Email or Phone Number",t_e="Email address",n_e="Your email address has been validated",r_e="Now enter your password to login again",i_e="An email has been sent to <0>{{email}}</0> with a verification link. Please click the link to verify your email address and set a password.",o_e="Email verification sent",s_e="Do you have to keep logging in?",a_e="You are currently inside the {{browserName}}. This browser often logs you out, so we recommend using your phone's default browser instead.",c_e="Enter a code",l_e="Enter the verification code",u_e="Verification code",d_e="Enter code",p_e="Check your email",f_e="We'll send you a verification link to ensure you own this email address.",h_e="Enter new email",__e="Enter new password",m_e="Enter password",g_e="Enter your email address and password to login.",y_e="Signing in as {{email}}",b_e="Enter your password",v_e="Something went wrong",w_e="The magic link has expired. Please click on the button below to receive a new link in your inbox.",k_e="Hey! We updated our login experience. <0>Click here to learn more about it.</0>",$_e="Send password reset email",S_e="Click the button below and we’ll send instructions on how to reset your password.",x_e="Password reset email sent",z_e="Forgot password?",A_e="Forgot password?",E_e="Go back",C_e="Hide password",I_e="Incognito Mode Detected",j_e="You are in incognito/private mode. Session data may not persist across page refreshes. Some features might not work as expected.",N_e="Invalid identifier",T_e="Invalid password",P_e=`The link is no longer valid.
|
|
411
411
|
|
|
412
412
|
Please make sure to open the login link in the same browser you started the login with.
|
|
413
413
|
|
|
@@ -427,15 +427,15 @@ Du kan klicka på länken nedan för att starta en ny inloggning.`,dke="Ogiltig
|
|
|
427
427
|
|
|
428
428
|
Upewnij się, że otworzyłeś link logowania w tej samej przeglądarce, w której rozpocząłeś logowanie.
|
|
429
429
|
|
|
430
|
-
Możesz kliknąć poniższy link, aby rozpocząć nowe logowanie.`,w8e="Nieprawidłowy link",k8e="Połączone konta",$8e="Kliknij przycisk, aby się zalogować",S8e="Zaloguj się",x8e="Lub wprowadź kod na stronie {{vendorName}}, aby dokończyć logowanie.",z8e="Wprowadź swój adres e-mail, aby odblokować ten program na {{service}}",A8e="Połącz swoje konto z {{service}}",E8e="Jesteś zalogowany jako",C8e="Logowanie",I8e="Wprowadź swój adres e-mail, aby się zalogować.",j8e="Wprowadź swój adres e-mail, a my wyślemy Ci kod logowania.",N8e="Wprowadź swój adres e-mail lub numer telefonu, aby się zalogować",T8e="Wprowadź swój adres e-mail, a my wyślemy Ci link do logowania.",P8e="Wprowadź swój numer telefonu, aby się zalogować",O8e="Wprowadź swój adres {{authMethod}}, aby się zalogować.",R8e="Wylogowanie",L8e="Nowy adres e-mail",D8e="Jednorazowy kod zostanie wysłany na Twój nowy adres e-mail, wprowadź kod w następnym kroku.",U8e="Brak ustawionego adresu e-mail",B8e="Nie, chcę użyć innego konta",M8e="lub",q8e="Hasło",F8e="Hasło zawiera zakazane słowo",H8e="Hasło nie może zawierać danych osobowych, takich jak imię lub adres e-mail",V8e="Hasło zostało zresetowane",K8e="Sukces",G8e="Hasło musi zawierać co najmniej jedną małą literę",W8e="Hasło musi zawierać co najmniej jedną cyfrę",J8e="Hasło musi zawierać co najmniej jeden znak specjalny",Z8e="Hasło musi zawierać co najmniej jedną wielką literę",X8e="Kod nie został znaleziony lub wygasł",Y8e="Nie udało się zresetować hasła",Q8e="Hasło było niedawno używane i nie może być ponownie użyte",e$e="Hasło musi mieć co najmniej {{minLength}} znaków",t$e="Zmień hasło do konta {{vendorName}}",n$e="Zmiana hasła do konta {{vendorName}} ",r$e="Numer telefonu",i$e="Polityka prywatności",o$e="Przekierowanie",s$e="Potwierdź hasło",a$e="Zarejestruj nowe hasło",c$e="Wyślij ponownie kod",l$e="Zmiana hasła",u$e="Wprowadź poniżej nowe hasło do konta e-mail: ",d$e="Kliknij przycisk, aby zresetować hasło",p$e="Kliknij przycisk, aby zresetować hasło",f$e="Zmień hasło",h$e="Zmiana hasła do konta {{vendorName}} ",_$e="Resetowanie hasła",m$e="Wyślij",g$e="Wyślij mi nowy magiczny link",y$e="Pamiętaj, aby sprawdzić folder spamu, jeśli wiadomość e-mail nie dotarła.",b$e="Ustaw hasło",v$e="Pokaż hasło",w$e="Zaloguj się",k$e="Rejestracja",$$e="Rejestracja zakończona sukcesem",S$e="{{code}} to kod logowania do {{vendorName}}",x$e="Wygląda na to, że Twoje konto Spotify jest obecnie połączone z innym kontem Sesamy. Ale nie martw się, jesteśmy tutaj, aby poprowadzić Cię przez proces, aby to naprawić.",z$e="Przejdź do strony dostępu do treści Spotify",A$e='Zacznijmy od odłączenia konta Spotify. Kliknij poniższy przycisk, aby przejść do strony dostępu do treści Spotify. Po zalogowaniu się na swoje konto Spotify, znajdź Sesamy na liście połączonych platform. Kliknij "Odłącz" obok logo Sesamy.',E$e="Krok 1: Odłącz swoje konto Spotify",C$e="Po pomyślnym odłączeniu konta Spotify możesz ponownie połączyć je z Sesamy. Wystarczy powtórzyć poprzednie kroki, które doprowadziły Cię do tej strony.",I$e="Krok 2: Połącz ponownie swoje konto Spotify z Sesamy",j$e="Ups! Twoje konto Spotify jest już połączone",N$e="Gotowe",T$e="Jeśli masz pytania lub potrzebujesz pomocy, skontaktuj się z nami",P$e="Zasady i warunki",O$e="Coś poszło nie tak. Spróbuj ponownie.",R$e="Odłącz",L$e="Twój adres e-mail wymaga weryfikacji. Wysłaliśmy nową wiadomość e-mail na Twoją skrzynkę odbiorczą",D$e="Aktualizacja wiadomości e-mail",U$e="Konto użytkownika nie istnieje",B$e="Konto użytkownika nie istnieje",M$e="Nie mogliśmy znaleźć użytkownika o podanym adresie e-mail. Spróbuj ponownie.",q$e="Spróbuj ponownie.",F$e="Sprawdź poprawność kodu",H$e="Sprawdź swoją skrzynkę odbiorczą, aby uzyskać instrukcje dotyczące weryfikacji wiadomości e-mail.",V$e="Zarejestrowany",K$e="Kliknij przycisk, aby zweryfikować swój adres e-mail",G$e="Potwierdź swój adres e-mail",W$e="Potwierdź swój adres e-mail",J$e="Zweryfikuj konto",Z$e="Zweryfikuj swój adres e-mail",X$e="Witamy",Y$e="Witamy na koncie {{vendorName}}!",Q$e="Sprawdź swoją skrzynkę e-mail pod adresem <0>{{email}}</0> i wprowadź sześciocyfrowy kod, który wysłaliśmy.",e5e="Kontynuuj korzystanie z tego konta",t5e="Tak, kontynuuj {{text}}",n5e="Tak, kontynuuj korzystanie z istniejącego konta",r5e={account_detected:W4e,account_page_description:J4e,account_title:Z4e,account_with_sso_provider:X4e,agree_to:Y4e,and:Q4e,auth_method_email:e6e,auth_method_email_or_phone:t6e,auth_method_phone:n6e,callback_url_mismatch:r6e,callback_url_not_allowed:i6e,change_email:o6e,check_email_title:s6e,click_to_sign_up_description:a6e,code_email_enter_code:c6e,code_email_subject:l6e,code_email_title:u6e,code_expired:d6e,code_invalid:p6e,code_sent_template:f6e,code_used:h6e,code_valid_30_minutes:_6e,configuration_error_message:m6e,confirm_password:g6e,confirm_unlink:y6e,contact_support:b6e,contact_us:v6e,continue:"Kontynuuj",continue_social_login:w6e,continue_with:k6e,continue_with_sso_provider_headline:$6e,copyright:S6e,copyright_sesamy:x6e,create_account_description:z6e,create_account_email_invalid:A6e,create_account_passwords_didnt_match:E6e,create_account_title:C6e,create_account_weak_password:I6e,create_new_account_link:j6e,create_password_account_title:N6e,dont_have_account:T6e,current_email:P6e,currently_logged_in_as:O6e,edit:R6e,email:L6e,email_already_taken:D6e,email_changed_to_template:U6e,email_or_phone_placeholder:B6e,email_placeholder:M6e,email_validated:q6e,email_validated_cta:F6e,email_verification_for_signup_sent_description:H6e,email_verification_for_signup_sent_title:V6e,embedded_browser_detected:K6e,embedded_browser_warning:G6e,enter_a_code_btn:W6e,enter_code_description:J6e,enter_code_label:Z6e,enter_code_placeholder:X6e,enter_code_title:Y6e,enter_email_for_verification_description:Q6e,enter_new_email:e8e,enter_new_password_placeholder:t8e,enter_password:n8e,enter_password_description:r8e,enter_password_signing_in_as:i8e,enter_your_password_btn:o8e,error_page_title:s8e,expired_code:a8e,fokus_info_message:c8e,forgot_password_cta:l8e,forgot_password_description:u8e,forgot_password_email_sent:d8e,forgot_password_link:p8e,forgot_password_title:f8e,go_back:h8e,hide_password:_8e,incognito_mode_detected:m8e,incognito_mode_warning:g8e,"invalid-email":"Nieprawidłowy adres e-mail",invalid_identifier:y8e,invalid_password:b8e,invalid_session_body:v8e,invalid_session_title:w8e,linked_accounts:k8e,link_email_click_to_login:$8e,link_email_login:S8e,link_email_or_enter_code:x8e,link_page_body:z8e,link_page_headline:A8e,logged_in_as:E8e,login:C8e,login_description:I8e,login_description_code:j8e,login_description_combined:N8e,login_description_link:T8e,login_description_phone:P8e,login_description_template:O8e,logout:R8e,new_email:L8e,new_email_code_info:D8e,no_email_address:U8e,no_use_another:B8e,or:M8e,password:q8e,password_contains_forbidden_word:F8e,password_contains_personal_info:H8e,password_has_been_reset:V8e,password_has_been_reset_title:K8e,password_missing_lowercase:G8e,password_missing_number:W8e,password_missing_special:J8e,password_missing_uppercase:Z8e,password_reset_code_expired:X8e,password_reset_failed:Y8e,password_reused:Q8e,password_too_short:e$e,password_reset_subject:t$e,password_reset_title:n$e,phone_placeholder:r$e,privacy_policy:i$e,redirecting:o$e,reenter_new_password_placeholder:s$e,register_password_account:a$e,resend_code:c$e,reset_password_cta:l$e,reset_password_description:u$e,reset_password_email_click_to_reset:d$e,reset_password_email_cta:p$e,reset_password_email_reset:f$e,reset_password_subject:h$e,reset_password_title:_$e,send:m$e,send_me_a_new_magic_link:g$e,sent_code_spam:y$e,"Server error: Invalid code":"Nieprawidłowy kod",set_password:b$e,show_password:v$e,sign_in:w$e,signup:k$e,signup_success:$$e,sms_code_text:S$e,spotify_already_linked_body:x$e,spotify_already_linked_cta:z$e,spotify_already_linked_step1_body:A$e,spotify_already_linked_step1_title:E$e,spotify_already_linked_step2_body:C$e,spotify_already_linked_step2_title:I$e,spotify_already_linked_title:j$e,success:N$e,support_info:T$e,terms:P$e,unexpected_error_try_again:O$e,unlink:R$e,unverified_email:L$e,update_email:D$e,user_account_does_not_exist:U$e,user_not_found:B$e,user_not_found_body:M$e,user_not_found_cta:q$e,validate_code:F$e,validate_email_body:H$e,validate_email_title:V$e,verify_email_click_to_verify:K$e,verify_email_subject:G$e,verify_email_title:W$e,verify_email_verify:J$e,verify_your_email:Z$e,welcome:X$e,welcome_to_your_account:Y$e,we_sent_a_code_to:Q$e,yes_continue:e5e,yes_continue_with:t5e,yes_continue_with_existing_account:n5e},i5e="Zjištěný účet",o5e="Spravujte podrobnosti svého účtu",s5e="Účet",a5e="Zjistili jsme, že jste si již vytvořili účet prostřednictvím",c5e="Přihlášením souhlasíte s našimi",l5e="a",u5e="e-mailová adresa",d5e="e-mail nebo telefonní číslo",p5e="telefonní číslo",f5e="Neshoda adresy URL zpětného volání",h5e="Zadané redirect_uri není v seznamu povolených zpětných adres URL.",_5e="Změnit e-mailovou adresu",m5e="pokračovat s uživatelem",g5e="Klikněte na tlačítko pro vytvoření nového účtu s heslem.",y5e="Pro dokončení přihlášení zadejte kód na adrese {{vendorName}}.",b5e="Vítejte na {{vendorName}}! {{code}} je přihlašovací kód.",v5e="Vítejte na {{vendorName}}! {{code}} je přihlašovací kód.",w5e="Kód vypršel",k5e="Neplatný kód",$5e="Zkontrolujte prosím <0>{{username}}</0> a zadejte šestimístný kód, který jsme vám zaslali.",S5e="Kód je již použit",x5e="Kód je platný po dobu 30 minut",z5e="Došlo k chybě konfigurace.",A5e="Potvrzení hesla",E5e="Jste si jisti, že chcete zrušit propojení tohoto účtu?",C5e="Potřebujete pomoc?",I5e="Kontaktujte nás",j5e="nebo pokračovat v sociálním účtu",N5e="Pokračovat s {{provider}}",T5e="Chcete pokračovat ve svém stávajícím účtu?",P5e="Copyright © 2023 SESAMY. Všechna práva vyhrazena.",O5e="©2023 Sesamy",R5e="Zvolte heslo složené z velkých a malých písmen, číslic a symbolů.",L5e="Zadejte prosím platnou e-mailovou adresu.",D5e="Hesla se neshodovala. Zkuste to znovu.",U5e="Zvolte heslo",B5e="Heslo musí mít alespoň 8 znaků a obsahovat alespoň jedno malé písmeno, jedno velké písmeno, jednu číslici a jeden symbol.",M5e="Zaregistrujte se",q5e="Zaregistrujte se pomocí hesla",F5e="Nemáte účet?",H5e="Aktuální e-mailová adresa",V5e="V současné době jste přihlášeni jako <0>{{email}}</0>",K5e="Upravit",G5e="E-mail",W5e="E-mail je již obsazen",J5e="E-mail se změnil na <0>{{email}}</0> ",Z5e="E-mail nebo telefonní číslo",X5e="E-mailová adresa",Y5e="Vaše e-mailová adresa byla ověřena",Q5e="Nyní zadejte své heslo a znovu se přihlaste",eSe="E-mail byl odeslán na adresu <0>{{email}}</0> s ověřovacím odkazem. Kliknutím na odkaz ověřte svou e-mailovou adresu a nastavte heslo.",tSe="Ověření e-mailem odesláno",nSe="Musíte se stále přihlašovat?",rSe="Právě se nacházíte v prohlížeči {{browserName}}. Tento prohlížeč vás často odhlašuje, proto doporučujeme použít výchozí prohlížeč telefonu.",iSe="Zadejte kód",oSe="Zadejte ověřovací kód",sSe="Ověřovací kód",aSe="Zadejte kód",cSe="Zkontrolujte svůj e-mail",lSe="Pošleme vám ověřovací odkaz, abychom se ujistili, že tuto e-mailovou adresu vlastníte.",uSe="Zadejte nový e-mail",dSe="Zadejte nové heslo",pSe="Zadejte heslo",fSe="Pro přihlášení zadejte svou e-mailovou adresu a heslo.",hSe="Přihlášení jako {{email}}",_Se="Zadejte své heslo",mSe="Něco se pokazilo",gSe="Platnost kouzelného odkazu vypršela. Klikněte na tlačítko níže, abyste obdrželi nový odkaz do své e-mailové schránky.",ySe="Ahoj! Aktualizovali jsme naše přihlašovací prostředí. <0>Klikněte sem a dozvíte se o něm více.</0>",bSe="Odeslání e-mailu pro obnovení hesla",vSe="Klikněte na tlačítko níže a my vám zašleme pokyny k obnovení hesla.",wSe="Odeslání e-mailu s žádostí o obnovení hesla",kSe="Zapomněli jste heslo?",$Se="Zapomněli jste heslo?",SSe="Vrátit se zpět",xSe="Skrýt heslo",zSe="Zjištěn režim inkognito",ASe="Jste v inkognito/soukromém režimu. Data relace nemusí přetrvávat při obnovení stránky. Některé funkce nemusí fungovat podle očekávání.",ESe="Neplatný identifikátor",CSe="Neplatné heslo",ISe=`Odkaz již není platný.
|
|
430
|
+
Możesz kliknąć poniższy link, aby rozpocząć nowe logowanie.`,w8e="Nieprawidłowy link",k8e="Połączone konta",$8e="Kliknij przycisk, aby się zalogować",S8e="Zaloguj się",x8e="Lub wprowadź kod na stronie {{vendorName}}, aby dokończyć logowanie.",z8e="Wprowadź swój adres e-mail, aby odblokować ten program na {{service}}",A8e="Połącz swoje konto z {{service}}",E8e="Jesteś zalogowany jako",C8e="Logowanie",I8e="Wprowadź swój adres e-mail, aby się zalogować.",j8e="Wprowadź swój adres e-mail, a my wyślemy Ci kod logowania.",N8e="Wprowadź swój adres e-mail lub numer telefonu, aby się zalogować",T8e="Wprowadź swój adres e-mail, a my wyślemy Ci link do logowania.",P8e="Wprowadź swój numer telefonu, aby się zalogować",O8e="Wprowadź swój adres {{authMethod}}, aby się zalogować.",R8e="Wylogowanie",L8e="Nowy adres e-mail",D8e="Jednorazowy kod zostanie wysłany na Twój nowy adres e-mail, wprowadź kod w następnym kroku.",U8e="Brak ustawionego adresu e-mail",B8e="Nie, chcę użyć innego konta",M8e="lub",q8e="Hasło",F8e="Hasło zawiera zakazane słowo",H8e="Hasło nie może zawierać danych osobowych, takich jak imię lub adres e-mail",V8e="Hasło zostało zresetowane",K8e="Sukces",G8e="Hasło musi zawierać co najmniej jedną małą literę",W8e="Hasło musi zawierać co najmniej jedną cyfrę",J8e="Hasło musi zawierać co najmniej jeden znak specjalny",Z8e="Hasło musi zawierać co najmniej jedną wielką literę",X8e="Kod nie został znaleziony lub wygasł",Y8e="Nie udało się zresetować hasła",Q8e="Hasło było niedawno używane i nie może być ponownie użyte",e5e="Hasło musi mieć co najmniej {{minLength}} znaków",t5e="Zmień hasło do konta {{vendorName}}",n5e="Zmiana hasła do konta {{vendorName}} ",r5e="Numer telefonu",i5e="Polityka prywatności",o5e="Przekierowanie",s5e="Potwierdź hasło",a5e="Zarejestruj nowe hasło",c5e="Wyślij ponownie kod",l5e="Zmiana hasła",u5e="Wprowadź poniżej nowe hasło do konta e-mail: ",d5e="Kliknij przycisk, aby zresetować hasło",p5e="Kliknij przycisk, aby zresetować hasło",f5e="Zmień hasło",h5e="Zmiana hasła do konta {{vendorName}} ",_5e="Resetowanie hasła",m5e="Wyślij",g5e="Wyślij mi nowy magiczny link",y5e="Pamiętaj, aby sprawdzić folder spamu, jeśli wiadomość e-mail nie dotarła.",b5e="Ustaw hasło",v5e="Pokaż hasło",w5e="Zaloguj się",k5e="Rejestracja",$5e="Rejestracja zakończona sukcesem",S5e="{{code}} to kod logowania do {{vendorName}}",x5e="Wygląda na to, że Twoje konto Spotify jest obecnie połączone z innym kontem Sesamy. Ale nie martw się, jesteśmy tutaj, aby poprowadzić Cię przez proces, aby to naprawić.",z5e="Przejdź do strony dostępu do treści Spotify",A5e='Zacznijmy od odłączenia konta Spotify. Kliknij poniższy przycisk, aby przejść do strony dostępu do treści Spotify. Po zalogowaniu się na swoje konto Spotify, znajdź Sesamy na liście połączonych platform. Kliknij "Odłącz" obok logo Sesamy.',E5e="Krok 1: Odłącz swoje konto Spotify",C5e="Po pomyślnym odłączeniu konta Spotify możesz ponownie połączyć je z Sesamy. Wystarczy powtórzyć poprzednie kroki, które doprowadziły Cię do tej strony.",I5e="Krok 2: Połącz ponownie swoje konto Spotify z Sesamy",j5e="Ups! Twoje konto Spotify jest już połączone",N5e="Gotowe",T5e="Jeśli masz pytania lub potrzebujesz pomocy, skontaktuj się z nami",P5e="Zasady i warunki",O5e="Coś poszło nie tak. Spróbuj ponownie.",R5e="Odłącz",L5e="Twój adres e-mail wymaga weryfikacji. Wysłaliśmy nową wiadomość e-mail na Twoją skrzynkę odbiorczą",D5e="Aktualizacja wiadomości e-mail",U5e="Konto użytkownika nie istnieje",B5e="Konto użytkownika nie istnieje",M5e="Nie mogliśmy znaleźć użytkownika o podanym adresie e-mail. Spróbuj ponownie.",q5e="Spróbuj ponownie.",F5e="Sprawdź poprawność kodu",H5e="Sprawdź swoją skrzynkę odbiorczą, aby uzyskać instrukcje dotyczące weryfikacji wiadomości e-mail.",V5e="Zarejestrowany",K5e="Kliknij przycisk, aby zweryfikować swój adres e-mail",G5e="Potwierdź swój adres e-mail",W5e="Potwierdź swój adres e-mail",J5e="Zweryfikuj konto",Z5e="Zweryfikuj swój adres e-mail",X5e="Witamy",Y5e="Witamy na koncie {{vendorName}}!",Q5e="Sprawdź swoją skrzynkę e-mail pod adresem <0>{{email}}</0> i wprowadź sześciocyfrowy kod, który wysłaliśmy.",e$e="Kontynuuj korzystanie z tego konta",t$e="Tak, kontynuuj {{text}}",n$e="Tak, kontynuuj korzystanie z istniejącego konta",r$e={account_detected:W4e,account_page_description:J4e,account_title:Z4e,account_with_sso_provider:X4e,agree_to:Y4e,and:Q4e,auth_method_email:e6e,auth_method_email_or_phone:t6e,auth_method_phone:n6e,callback_url_mismatch:r6e,callback_url_not_allowed:i6e,change_email:o6e,check_email_title:s6e,click_to_sign_up_description:a6e,code_email_enter_code:c6e,code_email_subject:l6e,code_email_title:u6e,code_expired:d6e,code_invalid:p6e,code_sent_template:f6e,code_used:h6e,code_valid_30_minutes:_6e,configuration_error_message:m6e,confirm_password:g6e,confirm_unlink:y6e,contact_support:b6e,contact_us:v6e,continue:"Kontynuuj",continue_social_login:w6e,continue_with:k6e,continue_with_sso_provider_headline:$6e,copyright:S6e,copyright_sesamy:x6e,create_account_description:z6e,create_account_email_invalid:A6e,create_account_passwords_didnt_match:E6e,create_account_title:C6e,create_account_weak_password:I6e,create_new_account_link:j6e,create_password_account_title:N6e,dont_have_account:T6e,current_email:P6e,currently_logged_in_as:O6e,edit:R6e,email:L6e,email_already_taken:D6e,email_changed_to_template:U6e,email_or_phone_placeholder:B6e,email_placeholder:M6e,email_validated:q6e,email_validated_cta:F6e,email_verification_for_signup_sent_description:H6e,email_verification_for_signup_sent_title:V6e,embedded_browser_detected:K6e,embedded_browser_warning:G6e,enter_a_code_btn:W6e,enter_code_description:J6e,enter_code_label:Z6e,enter_code_placeholder:X6e,enter_code_title:Y6e,enter_email_for_verification_description:Q6e,enter_new_email:e8e,enter_new_password_placeholder:t8e,enter_password:n8e,enter_password_description:r8e,enter_password_signing_in_as:i8e,enter_your_password_btn:o8e,error_page_title:s8e,expired_code:a8e,fokus_info_message:c8e,forgot_password_cta:l8e,forgot_password_description:u8e,forgot_password_email_sent:d8e,forgot_password_link:p8e,forgot_password_title:f8e,go_back:h8e,hide_password:_8e,incognito_mode_detected:m8e,incognito_mode_warning:g8e,"invalid-email":"Nieprawidłowy adres e-mail",invalid_identifier:y8e,invalid_password:b8e,invalid_session_body:v8e,invalid_session_title:w8e,linked_accounts:k8e,link_email_click_to_login:$8e,link_email_login:S8e,link_email_or_enter_code:x8e,link_page_body:z8e,link_page_headline:A8e,logged_in_as:E8e,login:C8e,login_description:I8e,login_description_code:j8e,login_description_combined:N8e,login_description_link:T8e,login_description_phone:P8e,login_description_template:O8e,logout:R8e,new_email:L8e,new_email_code_info:D8e,no_email_address:U8e,no_use_another:B8e,or:M8e,password:q8e,password_contains_forbidden_word:F8e,password_contains_personal_info:H8e,password_has_been_reset:V8e,password_has_been_reset_title:K8e,password_missing_lowercase:G8e,password_missing_number:W8e,password_missing_special:J8e,password_missing_uppercase:Z8e,password_reset_code_expired:X8e,password_reset_failed:Y8e,password_reused:Q8e,password_too_short:e5e,password_reset_subject:t5e,password_reset_title:n5e,phone_placeholder:r5e,privacy_policy:i5e,redirecting:o5e,reenter_new_password_placeholder:s5e,register_password_account:a5e,resend_code:c5e,reset_password_cta:l5e,reset_password_description:u5e,reset_password_email_click_to_reset:d5e,reset_password_email_cta:p5e,reset_password_email_reset:f5e,reset_password_subject:h5e,reset_password_title:_5e,send:m5e,send_me_a_new_magic_link:g5e,sent_code_spam:y5e,"Server error: Invalid code":"Nieprawidłowy kod",set_password:b5e,show_password:v5e,sign_in:w5e,signup:k5e,signup_success:$5e,sms_code_text:S5e,spotify_already_linked_body:x5e,spotify_already_linked_cta:z5e,spotify_already_linked_step1_body:A5e,spotify_already_linked_step1_title:E5e,spotify_already_linked_step2_body:C5e,spotify_already_linked_step2_title:I5e,spotify_already_linked_title:j5e,success:N5e,support_info:T5e,terms:P5e,unexpected_error_try_again:O5e,unlink:R5e,unverified_email:L5e,update_email:D5e,user_account_does_not_exist:U5e,user_not_found:B5e,user_not_found_body:M5e,user_not_found_cta:q5e,validate_code:F5e,validate_email_body:H5e,validate_email_title:V5e,verify_email_click_to_verify:K5e,verify_email_subject:G5e,verify_email_title:W5e,verify_email_verify:J5e,verify_your_email:Z5e,welcome:X5e,welcome_to_your_account:Y5e,we_sent_a_code_to:Q5e,yes_continue:e$e,yes_continue_with:t$e,yes_continue_with_existing_account:n$e},i$e="Zjištěný účet",o$e="Spravujte podrobnosti svého účtu",s$e="Účet",a$e="Zjistili jsme, že jste si již vytvořili účet prostřednictvím",c$e="Přihlášením souhlasíte s našimi",l$e="a",u$e="e-mailová adresa",d$e="e-mail nebo telefonní číslo",p$e="telefonní číslo",f$e="Neshoda adresy URL zpětného volání",h$e="Zadané redirect_uri není v seznamu povolených zpětných adres URL.",_$e="Změnit e-mailovou adresu",m$e="pokračovat s uživatelem",g$e="Klikněte na tlačítko pro vytvoření nového účtu s heslem.",y$e="Pro dokončení přihlášení zadejte kód na adrese {{vendorName}}.",b$e="Vítejte na {{vendorName}}! {{code}} je přihlašovací kód.",v$e="Vítejte na {{vendorName}}! {{code}} je přihlašovací kód.",w$e="Kód vypršel",k$e="Neplatný kód",$$e="Zkontrolujte prosím <0>{{username}}</0> a zadejte šestimístný kód, který jsme vám zaslali.",S$e="Kód je již použit",x$e="Kód je platný po dobu 30 minut",z$e="Došlo k chybě konfigurace.",A$e="Potvrzení hesla",E$e="Jste si jisti, že chcete zrušit propojení tohoto účtu?",C$e="Potřebujete pomoc?",I$e="Kontaktujte nás",j$e="nebo pokračovat v sociálním účtu",N$e="Pokračovat s {{provider}}",T$e="Chcete pokračovat ve svém stávajícím účtu?",P$e="Copyright © 2023 SESAMY. Všechna práva vyhrazena.",O$e="©2023 Sesamy",R$e="Zvolte heslo složené z velkých a malých písmen, číslic a symbolů.",L$e="Zadejte prosím platnou e-mailovou adresu.",D$e="Hesla se neshodovala. Zkuste to znovu.",U$e="Zvolte heslo",B$e="Heslo musí mít alespoň 8 znaků a obsahovat alespoň jedno malé písmeno, jedno velké písmeno, jednu číslici a jeden symbol.",M$e="Zaregistrujte se",q$e="Zaregistrujte se pomocí hesla",F$e="Nemáte účet?",H$e="Aktuální e-mailová adresa",V$e="V současné době jste přihlášeni jako <0>{{email}}</0>",K$e="Upravit",G$e="E-mail",W$e="E-mail je již obsazen",J$e="E-mail se změnil na <0>{{email}}</0> ",Z$e="E-mail nebo telefonní číslo",X$e="E-mailová adresa",Y$e="Vaše e-mailová adresa byla ověřena",Q$e="Nyní zadejte své heslo a znovu se přihlaste",eSe="E-mail byl odeslán na adresu <0>{{email}}</0> s ověřovacím odkazem. Kliknutím na odkaz ověřte svou e-mailovou adresu a nastavte heslo.",tSe="Ověření e-mailem odesláno",nSe="Musíte se stále přihlašovat?",rSe="Právě se nacházíte v prohlížeči {{browserName}}. Tento prohlížeč vás často odhlašuje, proto doporučujeme použít výchozí prohlížeč telefonu.",iSe="Zadejte kód",oSe="Zadejte ověřovací kód",sSe="Ověřovací kód",aSe="Zadejte kód",cSe="Zkontrolujte svůj e-mail",lSe="Pošleme vám ověřovací odkaz, abychom se ujistili, že tuto e-mailovou adresu vlastníte.",uSe="Zadejte nový e-mail",dSe="Zadejte nové heslo",pSe="Zadejte heslo",fSe="Pro přihlášení zadejte svou e-mailovou adresu a heslo.",hSe="Přihlášení jako {{email}}",_Se="Zadejte své heslo",mSe="Něco se pokazilo",gSe="Platnost kouzelného odkazu vypršela. Klikněte na tlačítko níže, abyste obdrželi nový odkaz do své e-mailové schránky.",ySe="Ahoj! Aktualizovali jsme naše přihlašovací prostředí. <0>Klikněte sem a dozvíte se o něm více.</0>",bSe="Odeslání e-mailu pro obnovení hesla",vSe="Klikněte na tlačítko níže a my vám zašleme pokyny k obnovení hesla.",wSe="Odeslání e-mailu s žádostí o obnovení hesla",kSe="Zapomněli jste heslo?",$Se="Zapomněli jste heslo?",SSe="Vrátit se zpět",xSe="Skrýt heslo",zSe="Zjištěn režim inkognito",ASe="Jste v inkognito/soukromém režimu. Data relace nemusí přetrvávat při obnovení stránky. Některé funkce nemusí fungovat podle očekávání.",ESe="Neplatný identifikátor",CSe="Neplatné heslo",ISe=`Odkaz již není platný.
|
|
431
431
|
|
|
432
432
|
Ujistěte se, že jste odkaz na přihlášení otevřeli ve stejném prohlížeči, ve kterém jste přihlášení zahájili.
|
|
433
433
|
|
|
434
|
-
Kliknutím na odkaz níže můžete zahájit nové přihlášení.`,jSe="Neplatný odkaz",NSe="Propojené účty",TSe="Kliknutím na tlačítko se přihlásíte",PSe="Přihlášení",OSe="Nebo zadejte kód na adrese {{vendorName}} a dokončete přihlášení.",RSe="Zadejte svou e-mailovou adresu pro odemknutí tohoto pořadu na {{service}}",LSe="Propojte svůj účet s {{service}}",DSe="Jste přihlášeni jako",USe="Přihlášení",BSe="Pro přihlášení zadejte svou e-mailovou adresu.",MSe="Zadejte svou e-mailovou adresu a my vám zašleme přihlašovací kód.",qSe="Pro přihlášení zadejte svůj e-mail nebo telefonní číslo",FSe="Zadejte svou e-mailovou adresu a my vám zašleme odkaz pro přihlášení.",HSe="Zadejte své telefonní číslo a přihlaste se",VSe="Pro přihlášení zadejte adresu {{authMethod}}.",KSe="Odhlášení",GSe="Nová e-mailová adresa",WSe="Na vaši novou e-mailovou adresu bude zaslán jednorázový kód, zadejte kód v dalším kroku.",JSe="Žádná e-mailová adresa není nastavena",ZSe="Ne, chci použít jiný účet",XSe="nebo",YSe="Heslo",QSe="Heslo obsahuje zakázané slovo",exe="Heslo nesmí obsahovat osobní údaje jako jméno nebo e-mail",txe="Heslo bylo resetováno",nxe="Úspěch",rxe="Heslo musí obsahovat alespoň jedno malé písmeno",ixe="Heslo musí obsahovat alespoň jednu číslici",oxe="Heslo musí obsahovat alespoň jeden speciální znak",sxe="Heslo musí obsahovat alespoň jedno velké písmeno",axe="Kód nebyl nalezen nebo vypršel",cxe="Heslo se nepodařilo resetovat",lxe="Heslo bylo nedávno použito a nelze jej znovu použít",uxe="Heslo musí mít alespoň {{minLength}} znaků",dxe="Změna hesla pro účet {{vendorName}}",pxe="Změna hesla k účtu {{vendorName}} ",fxe="Telefonní číslo",hxe="Zásady ochrany osobních údajů",_xe="Přesměrování",mxe="Potvrzení hesla",gxe="Registrace nového hesla",yxe="Opětovné odeslání kódu",bxe="Změna hesla",vxe="Níže zadejte nové heslo k e-mailovému účtu: ",wxe="Kliknutím na tlačítko obnovíte své heslo",kxe="Kliknutím na tlačítko obnovíte své heslo",$xe="Obnovení hesla",Sxe="Změna hesla k účtu {{vendorName}} ",xxe="Obnovení hesla",zxe="Odeslat",Axe="Pošlete mi nový kouzelný odkaz",Exe="Pokud e-mail nedorazil, nezapomeňte zkontrolovat složku nevyžádané pošty.",Cxe="Nastavení hesla",Ixe="Zobrazit heslo",jxe="Přihlásit se",Nxe="Registrace",Txe="Úspěšná registrace",Pxe="{{code}} je váš přihlašovací kód pro {{vendorName}}",Oxe="Zdá se, že váš účet Spotify je v současné době propojen s jiným účtem Sesamy. Ale nebojte se, jsme tu, abychom vás provedli procesem, jak to napravit.",Rxe="Přejděte na stránku Spotify pro přístup k obsahu",Lxe='Začněme odpojením účtu Spotify. Kliknutím na tlačítko níže přejděte na stránku přístupu k obsahu služby Spotify. Po přihlášení k účtu Spotify najděte v seznamu připojených platforem položku Sesamy. Klikněte na tlačítko "Unlink" vedle loga Sesamy.',Dxe="Krok 1: Odpojení účtu Spotify",Uxe="Po úspěšném odpojení účtu Spotify jej můžete znovu propojit se službou Sesamy. Stačí zopakovat předchozí kroky, které vás přivedly na tuto stránku.",Bxe="Krok 2: Propojení účtu Spotify s aplikací Sesamy",Mxe="Ups! Váš účet Spotify je již propojen",qxe="Hotovo",Fxe="Pokud máte dotazy nebo potřebujete pomoc, můžete se obrátit na náš tým podpory.",Hxe="Podmínky a pravidla",Vxe="Něco se pokazilo. Zkuste to prosím znovu.",Kxe="Odpojit",Gxe="Vaši e-mailovou adresu je třeba ověřit. Do vaší e-mailové schránky jsme odeslali nový e-mail.",Wxe="Aktualizace e-mailu",Jxe="Uživatelský účet neexistuje",Zxe="Uživatelský účet neexistuje",Xxe="Nepodařilo se nám najít uživatele se zadanou e-mailovou adresou. Zkuste to prosím znovu.",Yxe="Zkuste to znovu.",Qxe="Ověření kódu",eze="Pokyny k ověření e-mailu najdete ve své e-mailové schránce.",tze="Zaregistrovali jste se",nze="Klikněte na tlačítko pro ověření e-mailové adresy",rze="Ověřte svou e-mailovou adresu",ize="Ověřte svou e-mailovou adresu",oze="Ověření účtu",sze="Ověření e-mailu",aze="Vítejte na",cze="Vítejte na svém účtu {{vendorName}}!",lze="Zkontrolujte si prosím svůj e-mail na adrese <0>{{email}}</0> a zadejte šestimístný kód, který jsme vám zaslali.",uze="Pokračujte s tímto účtem",dze="Ano, pokračujte {{text}}",pze="Ano, pokračujte ve stávajícím účtu",fze={account_detected:i5e,account_page_description:o5e,account_title:s5e,account_with_sso_provider:a5e,agree_to:c5e,and:l5e,auth_method_email:u5e,auth_method_email_or_phone:d5e,auth_method_phone:p5e,callback_url_mismatch:f5e,callback_url_not_allowed:h5e,change_email:_5e,check_email_title:m5e,click_to_sign_up_description:g5e,code_email_enter_code:y5e,code_email_subject:b5e,code_email_title:v5e,code_expired:w5e,code_invalid:k5e,code_sent_template:$5e,code_used:S5e,code_valid_30_minutes:x5e,configuration_error_message:z5e,confirm_password:A5e,confirm_unlink:E5e,contact_support:C5e,contact_us:I5e,continue:"Pokračovat",continue_social_login:j5e,continue_with:N5e,continue_with_sso_provider_headline:T5e,copyright:P5e,copyright_sesamy:O5e,create_account_description:R5e,create_account_email_invalid:L5e,create_account_passwords_didnt_match:D5e,create_account_title:U5e,create_account_weak_password:B5e,create_new_account_link:M5e,create_password_account_title:q5e,dont_have_account:F5e,current_email:H5e,currently_logged_in_as:V5e,edit:K5e,email:G5e,email_already_taken:W5e,email_changed_to_template:J5e,email_or_phone_placeholder:Z5e,email_placeholder:X5e,email_validated:Y5e,email_validated_cta:Q5e,email_verification_for_signup_sent_description:eSe,email_verification_for_signup_sent_title:tSe,embedded_browser_detected:nSe,embedded_browser_warning:rSe,enter_a_code_btn:iSe,enter_code_description:oSe,enter_code_label:sSe,enter_code_placeholder:aSe,enter_code_title:cSe,enter_email_for_verification_description:lSe,enter_new_email:uSe,enter_new_password_placeholder:dSe,enter_password:pSe,enter_password_description:fSe,enter_password_signing_in_as:hSe,enter_your_password_btn:_Se,error_page_title:mSe,expired_code:gSe,fokus_info_message:ySe,forgot_password_cta:bSe,forgot_password_description:vSe,forgot_password_email_sent:wSe,forgot_password_link:kSe,forgot_password_title:$Se,go_back:SSe,hide_password:xSe,incognito_mode_detected:zSe,incognito_mode_warning:ASe,"invalid-email":"Neplatný e-mail",invalid_identifier:ESe,invalid_password:CSe,invalid_session_body:ISe,invalid_session_title:jSe,linked_accounts:NSe,link_email_click_to_login:TSe,link_email_login:PSe,link_email_or_enter_code:OSe,link_page_body:RSe,link_page_headline:LSe,logged_in_as:DSe,login:USe,login_description:BSe,login_description_code:MSe,login_description_combined:qSe,login_description_link:FSe,login_description_phone:HSe,login_description_template:VSe,logout:KSe,new_email:GSe,new_email_code_info:WSe,no_email_address:JSe,no_use_another:ZSe,or:XSe,password:YSe,password_contains_forbidden_word:QSe,password_contains_personal_info:exe,password_has_been_reset:txe,password_has_been_reset_title:nxe,password_missing_lowercase:rxe,password_missing_number:ixe,password_missing_special:oxe,password_missing_uppercase:sxe,password_reset_code_expired:axe,password_reset_failed:cxe,password_reused:lxe,password_too_short:uxe,password_reset_subject:dxe,password_reset_title:pxe,phone_placeholder:fxe,privacy_policy:hxe,redirecting:_xe,reenter_new_password_placeholder:mxe,register_password_account:gxe,resend_code:yxe,reset_password_cta:bxe,reset_password_description:vxe,reset_password_email_click_to_reset:wxe,reset_password_email_cta:kxe,reset_password_email_reset:$xe,reset_password_subject:Sxe,reset_password_title:xxe,send:zxe,send_me_a_new_magic_link:Axe,sent_code_spam:Exe,"Server error: Invalid code":"Neplatný kód",set_password:Cxe,show_password:Ixe,sign_in:jxe,signup:Nxe,signup_success:Txe,sms_code_text:Pxe,spotify_already_linked_body:Oxe,spotify_already_linked_cta:Rxe,spotify_already_linked_step1_body:Lxe,spotify_already_linked_step1_title:Dxe,spotify_already_linked_step2_body:Uxe,spotify_already_linked_step2_title:Bxe,spotify_already_linked_title:Mxe,success:qxe,support_info:Fxe,terms:Hxe,unexpected_error_try_again:Vxe,unlink:Kxe,unverified_email:Gxe,update_email:Wxe,user_account_does_not_exist:Jxe,user_not_found:Zxe,user_not_found_body:Xxe,user_not_found_cta:Yxe,validate_code:Qxe,validate_email_body:eze,validate_email_title:tze,verify_email_click_to_verify:nze,verify_email_subject:rze,verify_email_title:ize,verify_email_verify:oze,verify_your_email:sze,welcome:aze,welcome_to_your_account:cze,we_sent_a_code_to:lze,yes_continue:uze,yes_continue_with:dze,yes_continue_with_existing_account:pze},hze="Tili havaittu",_ze="Hallitse tilisi tietoja",mze="Tili",gze="Olemme havainneet, että olet jo luonut tilin kautta",yze="Kirjautumalla sisään hyväksyt",bze="ja",vze="sähköpostiosoite",wze="sähköpostiosoite tai puhelinnumero",kze="puhelinnumero",$ze="Takaisinkutsun URL-osoite ei vastaa toisiaan",Sze="Annettu redirect_uri ei ole sallittujen takaisinsoitto-URL-osoitteiden luettelossa.",xze="Vaihda sähköpostiosoite",zze="jatka käyttäjän kanssa",Aze="Klikkaa painiketta luodaksesi uuden salasanatilin.",Eze="Kirjoita koodi osoitteessa {{vendorName}} kirjautumisen loppuun saattamiseksi.",Cze="Tervetuloa osoitteeseen {{vendorName}}! {{code}} on kirjautumiskoodi.",Ize="Tervetuloa osoitteeseen {{vendorName}}! {{code}} on kirjautumiskoodi.",jze="Koodi päättynyt",Nze="Virheellinen koodi",Tze="Tarkista <0>{{username}}</0> ja syötä lähettämämme kuusinumeroinen koodi.",Pze="Koodi on jo käytössä",Oze="Koodi on voimassa 30 minuuttia",Rze="Konfigurointivirhe tapahtui.",Lze="Vahvista salasana",Dze="Oletko varma, että haluat poistaa tämän tilin linkityksen?",Uze="Tarvitsetko apua?",Bze="Ota yhteyttä",Mze="tai jatka sosiaalisella tilillä",qze="Jatka {{provider}}",Fze="Haluatko jatkaa olemassa olevalla tililläsi?",Hze="Copyright © 2023 SESAMY. Kaikki oikeudet pidätetään.",Vze="©2023 Sesamy",Kze="Valitse salasana, jossa on isoja ja pieniä kirjaimia, numeroita ja symboleja.",Gze="Kirjoita voimassa oleva sähköpostiosoite.",Wze="Salasanat eivät vastanneet toisiaan. Yritä uudelleen.",Jze="Valitse salasana",Zze="Salasanan on oltava vähintään 8 merkkiä pitkä ja sisällettävä vähintään yksi pieni kirjain, yksi iso kirjain, yksi numero ja yksi symboli.",Xze="Rekisteröidy",Yze="Rekisteröidy salasanalla",Qze="Eikö sinulla ole tiliä?",e9e="Nykyinen sähköpostiosoite",t9e="Olet tällä hetkellä kirjautuneena sisään nimellä <0>{{email}}</0>",n9e="Muokkaa",r9e="Sähköposti",i9e="Sähköposti on jo varattu",o9e="Sähköposti muutettu muotoon <0>{{email}}</0> ",s9e="Sähköposti tai puhelinnumero",a9e="Sähköpostiosoite",c9e="Sähköpostiosoitteesi on vahvistettu",l9e="Kirjoita nyt salasanasi kirjautuaksesi uudelleen",u9e="Sähköposti on lähetetty osoitteeseen <0>{{email}}</0> jossa on vahvistuslinkki. Klikkaa linkkiä vahvistaaksesi sähköpostiosoitteesi ja asettaaksesi salasanan.",d9e="Sähköpostivarmennus lähetetty",p9e="Pitääkö sinun kirjautua jatkuvasti sisään?",f9e="Olet tällä hetkellä osoitteessa {{browserName}}. Tämä selain kirjautuu usein ulos, joten suosittelemme käyttämään sen sijaan puhelimen oletusselainta.",h9e="Syötä koodi",_9e="Syötä vahvistuskoodi",m9e="Vahvistuskoodi",g9e="Syötä koodi",y9e="Tarkista sähköpostisi",b9e="Lähetämme sinulle vahvistuslinkin varmistaaksemme, että omistat tämän sähköpostiosoitteen.",v9e="Kirjoita uusi sähköpostiosoite",w9e="Anna uusi salasana",k9e="Anna salasana",$9e="Anna sähköpostiosoitteesi ja salasanasi kirjautuaksesi sisään.",S9e="Kirjaudutaan sisään käyttäjänä {{email}}",x9e="Syötä salasanasi",z9e="Jotain meni pieleen",A9e="Taikalinkki on vanhentunut. Klikkaa alla olevaa painiketta saadaksesi uuden linkin sähköpostiisi.",E9e="Hei! Päivitimme kirjautumiskokemuksemme. <0>Klikkaa tästä saadaksesi lisätietoja siitä.</0>",C9e="Lähetä salasanan palautussähköposti",I9e="Napsauta alla olevaa painiketta, niin lähetämme ohjeet salasanasi palauttamiseen.",j9e="Salasanan palautussähköposti lähetetty",N9e="Unohditko salasanan?",T9e="Unohditko salasanan?",P9e="Palaa takaisin",O9e="Piilota salasana",R9e="Incognito-tila havaittu",L9e="Olet incognito/yksityisessä tilassa. Istuntotiedot eivät välttämättä säily sivun päivitysten aikana. Jotkin ominaisuudet eivät ehkä toimi odotetulla tavalla.",D9e="Virheellinen tunniste",U9e="Virheellinen salasana",B9e=`Linkki ei ole enää voimassa.
|
|
434
|
+
Kliknutím na odkaz níže můžete zahájit nové přihlášení.`,jSe="Neplatný odkaz",NSe="Propojené účty",TSe="Kliknutím na tlačítko se přihlásíte",PSe="Přihlášení",OSe="Nebo zadejte kód na adrese {{vendorName}} a dokončete přihlášení.",RSe="Zadejte svou e-mailovou adresu pro odemknutí tohoto pořadu na {{service}}",LSe="Propojte svůj účet s {{service}}",DSe="Jste přihlášeni jako",USe="Přihlášení",BSe="Pro přihlášení zadejte svou e-mailovou adresu.",MSe="Zadejte svou e-mailovou adresu a my vám zašleme přihlašovací kód.",qSe="Pro přihlášení zadejte svůj e-mail nebo telefonní číslo",FSe="Zadejte svou e-mailovou adresu a my vám zašleme odkaz pro přihlášení.",HSe="Zadejte své telefonní číslo a přihlaste se",VSe="Pro přihlášení zadejte adresu {{authMethod}}.",KSe="Odhlášení",GSe="Nová e-mailová adresa",WSe="Na vaši novou e-mailovou adresu bude zaslán jednorázový kód, zadejte kód v dalším kroku.",JSe="Žádná e-mailová adresa není nastavena",ZSe="Ne, chci použít jiný účet",XSe="nebo",YSe="Heslo",QSe="Heslo obsahuje zakázané slovo",exe="Heslo nesmí obsahovat osobní údaje jako jméno nebo e-mail",txe="Heslo bylo resetováno",nxe="Úspěch",rxe="Heslo musí obsahovat alespoň jedno malé písmeno",ixe="Heslo musí obsahovat alespoň jednu číslici",oxe="Heslo musí obsahovat alespoň jeden speciální znak",sxe="Heslo musí obsahovat alespoň jedno velké písmeno",axe="Kód nebyl nalezen nebo vypršel",cxe="Heslo se nepodařilo resetovat",lxe="Heslo bylo nedávno použito a nelze jej znovu použít",uxe="Heslo musí mít alespoň {{minLength}} znaků",dxe="Změna hesla pro účet {{vendorName}}",pxe="Změna hesla k účtu {{vendorName}} ",fxe="Telefonní číslo",hxe="Zásady ochrany osobních údajů",_xe="Přesměrování",mxe="Potvrzení hesla",gxe="Registrace nového hesla",yxe="Opětovné odeslání kódu",bxe="Změna hesla",vxe="Níže zadejte nové heslo k e-mailovému účtu: ",wxe="Kliknutím na tlačítko obnovíte své heslo",kxe="Kliknutím na tlačítko obnovíte své heslo",$xe="Obnovení hesla",Sxe="Změna hesla k účtu {{vendorName}} ",xxe="Obnovení hesla",zxe="Odeslat",Axe="Pošlete mi nový kouzelný odkaz",Exe="Pokud e-mail nedorazil, nezapomeňte zkontrolovat složku nevyžádané pošty.",Cxe="Nastavení hesla",Ixe="Zobrazit heslo",jxe="Přihlásit se",Nxe="Registrace",Txe="Úspěšná registrace",Pxe="{{code}} je váš přihlašovací kód pro {{vendorName}}",Oxe="Zdá se, že váš účet Spotify je v současné době propojen s jiným účtem Sesamy. Ale nebojte se, jsme tu, abychom vás provedli procesem, jak to napravit.",Rxe="Přejděte na stránku Spotify pro přístup k obsahu",Lxe='Začněme odpojením účtu Spotify. Kliknutím na tlačítko níže přejděte na stránku přístupu k obsahu služby Spotify. Po přihlášení k účtu Spotify najděte v seznamu připojených platforem položku Sesamy. Klikněte na tlačítko "Unlink" vedle loga Sesamy.',Dxe="Krok 1: Odpojení účtu Spotify",Uxe="Po úspěšném odpojení účtu Spotify jej můžete znovu propojit se službou Sesamy. Stačí zopakovat předchozí kroky, které vás přivedly na tuto stránku.",Bxe="Krok 2: Propojení účtu Spotify s aplikací Sesamy",Mxe="Ups! Váš účet Spotify je již propojen",qxe="Hotovo",Fxe="Pokud máte dotazy nebo potřebujete pomoc, můžete se obrátit na náš tým podpory.",Hxe="Podmínky a pravidla",Vxe="Něco se pokazilo. Zkuste to prosím znovu.",Kxe="Odpojit",Gxe="Vaši e-mailovou adresu je třeba ověřit. Do vaší e-mailové schránky jsme odeslali nový e-mail.",Wxe="Aktualizace e-mailu",Jxe="Uživatelský účet neexistuje",Zxe="Uživatelský účet neexistuje",Xxe="Nepodařilo se nám najít uživatele se zadanou e-mailovou adresou. Zkuste to prosím znovu.",Yxe="Zkuste to znovu.",Qxe="Ověření kódu",eze="Pokyny k ověření e-mailu najdete ve své e-mailové schránce.",tze="Zaregistrovali jste se",nze="Klikněte na tlačítko pro ověření e-mailové adresy",rze="Ověřte svou e-mailovou adresu",ize="Ověřte svou e-mailovou adresu",oze="Ověření účtu",sze="Ověření e-mailu",aze="Vítejte na",cze="Vítejte na svém účtu {{vendorName}}!",lze="Zkontrolujte si prosím svůj e-mail na adrese <0>{{email}}</0> a zadejte šestimístný kód, který jsme vám zaslali.",uze="Pokračujte s tímto účtem",dze="Ano, pokračujte {{text}}",pze="Ano, pokračujte ve stávajícím účtu",fze={account_detected:i$e,account_page_description:o$e,account_title:s$e,account_with_sso_provider:a$e,agree_to:c$e,and:l$e,auth_method_email:u$e,auth_method_email_or_phone:d$e,auth_method_phone:p$e,callback_url_mismatch:f$e,callback_url_not_allowed:h$e,change_email:_$e,check_email_title:m$e,click_to_sign_up_description:g$e,code_email_enter_code:y$e,code_email_subject:b$e,code_email_title:v$e,code_expired:w$e,code_invalid:k$e,code_sent_template:$$e,code_used:S$e,code_valid_30_minutes:x$e,configuration_error_message:z$e,confirm_password:A$e,confirm_unlink:E$e,contact_support:C$e,contact_us:I$e,continue:"Pokračovat",continue_social_login:j$e,continue_with:N$e,continue_with_sso_provider_headline:T$e,copyright:P$e,copyright_sesamy:O$e,create_account_description:R$e,create_account_email_invalid:L$e,create_account_passwords_didnt_match:D$e,create_account_title:U$e,create_account_weak_password:B$e,create_new_account_link:M$e,create_password_account_title:q$e,dont_have_account:F$e,current_email:H$e,currently_logged_in_as:V$e,edit:K$e,email:G$e,email_already_taken:W$e,email_changed_to_template:J$e,email_or_phone_placeholder:Z$e,email_placeholder:X$e,email_validated:Y$e,email_validated_cta:Q$e,email_verification_for_signup_sent_description:eSe,email_verification_for_signup_sent_title:tSe,embedded_browser_detected:nSe,embedded_browser_warning:rSe,enter_a_code_btn:iSe,enter_code_description:oSe,enter_code_label:sSe,enter_code_placeholder:aSe,enter_code_title:cSe,enter_email_for_verification_description:lSe,enter_new_email:uSe,enter_new_password_placeholder:dSe,enter_password:pSe,enter_password_description:fSe,enter_password_signing_in_as:hSe,enter_your_password_btn:_Se,error_page_title:mSe,expired_code:gSe,fokus_info_message:ySe,forgot_password_cta:bSe,forgot_password_description:vSe,forgot_password_email_sent:wSe,forgot_password_link:kSe,forgot_password_title:$Se,go_back:SSe,hide_password:xSe,incognito_mode_detected:zSe,incognito_mode_warning:ASe,"invalid-email":"Neplatný e-mail",invalid_identifier:ESe,invalid_password:CSe,invalid_session_body:ISe,invalid_session_title:jSe,linked_accounts:NSe,link_email_click_to_login:TSe,link_email_login:PSe,link_email_or_enter_code:OSe,link_page_body:RSe,link_page_headline:LSe,logged_in_as:DSe,login:USe,login_description:BSe,login_description_code:MSe,login_description_combined:qSe,login_description_link:FSe,login_description_phone:HSe,login_description_template:VSe,logout:KSe,new_email:GSe,new_email_code_info:WSe,no_email_address:JSe,no_use_another:ZSe,or:XSe,password:YSe,password_contains_forbidden_word:QSe,password_contains_personal_info:exe,password_has_been_reset:txe,password_has_been_reset_title:nxe,password_missing_lowercase:rxe,password_missing_number:ixe,password_missing_special:oxe,password_missing_uppercase:sxe,password_reset_code_expired:axe,password_reset_failed:cxe,password_reused:lxe,password_too_short:uxe,password_reset_subject:dxe,password_reset_title:pxe,phone_placeholder:fxe,privacy_policy:hxe,redirecting:_xe,reenter_new_password_placeholder:mxe,register_password_account:gxe,resend_code:yxe,reset_password_cta:bxe,reset_password_description:vxe,reset_password_email_click_to_reset:wxe,reset_password_email_cta:kxe,reset_password_email_reset:$xe,reset_password_subject:Sxe,reset_password_title:xxe,send:zxe,send_me_a_new_magic_link:Axe,sent_code_spam:Exe,"Server error: Invalid code":"Neplatný kód",set_password:Cxe,show_password:Ixe,sign_in:jxe,signup:Nxe,signup_success:Txe,sms_code_text:Pxe,spotify_already_linked_body:Oxe,spotify_already_linked_cta:Rxe,spotify_already_linked_step1_body:Lxe,spotify_already_linked_step1_title:Dxe,spotify_already_linked_step2_body:Uxe,spotify_already_linked_step2_title:Bxe,spotify_already_linked_title:Mxe,success:qxe,support_info:Fxe,terms:Hxe,unexpected_error_try_again:Vxe,unlink:Kxe,unverified_email:Gxe,update_email:Wxe,user_account_does_not_exist:Jxe,user_not_found:Zxe,user_not_found_body:Xxe,user_not_found_cta:Yxe,validate_code:Qxe,validate_email_body:eze,validate_email_title:tze,verify_email_click_to_verify:nze,verify_email_subject:rze,verify_email_title:ize,verify_email_verify:oze,verify_your_email:sze,welcome:aze,welcome_to_your_account:cze,we_sent_a_code_to:lze,yes_continue:uze,yes_continue_with:dze,yes_continue_with_existing_account:pze},hze="Tili havaittu",_ze="Hallitse tilisi tietoja",mze="Tili",gze="Olemme havainneet, että olet jo luonut tilin kautta",yze="Kirjautumalla sisään hyväksyt",bze="ja",vze="sähköpostiosoite",wze="sähköpostiosoite tai puhelinnumero",kze="puhelinnumero",$ze="Takaisinkutsun URL-osoite ei vastaa toisiaan",Sze="Annettu redirect_uri ei ole sallittujen takaisinsoitto-URL-osoitteiden luettelossa.",xze="Vaihda sähköpostiosoite",zze="jatka käyttäjän kanssa",Aze="Klikkaa painiketta luodaksesi uuden salasanatilin.",Eze="Kirjoita koodi osoitteessa {{vendorName}} kirjautumisen loppuun saattamiseksi.",Cze="Tervetuloa osoitteeseen {{vendorName}}! {{code}} on kirjautumiskoodi.",Ize="Tervetuloa osoitteeseen {{vendorName}}! {{code}} on kirjautumiskoodi.",jze="Koodi päättynyt",Nze="Virheellinen koodi",Tze="Tarkista <0>{{username}}</0> ja syötä lähettämämme kuusinumeroinen koodi.",Pze="Koodi on jo käytössä",Oze="Koodi on voimassa 30 minuuttia",Rze="Konfigurointivirhe tapahtui.",Lze="Vahvista salasana",Dze="Oletko varma, että haluat poistaa tämän tilin linkityksen?",Uze="Tarvitsetko apua?",Bze="Ota yhteyttä",Mze="tai jatka sosiaalisella tilillä",qze="Jatka {{provider}}",Fze="Haluatko jatkaa olemassa olevalla tililläsi?",Hze="Copyright © 2023 SESAMY. Kaikki oikeudet pidätetään.",Vze="©2023 Sesamy",Kze="Valitse salasana, jossa on isoja ja pieniä kirjaimia, numeroita ja symboleja.",Gze="Kirjoita voimassa oleva sähköpostiosoite.",Wze="Salasanat eivät vastanneet toisiaan. Yritä uudelleen.",Jze="Valitse salasana",Zze="Salasanan on oltava vähintään 8 merkkiä pitkä ja sisällettävä vähintään yksi pieni kirjain, yksi iso kirjain, yksi numero ja yksi symboli.",Xze="Rekisteröidy",Yze="Rekisteröidy salasanalla",Qze="Eikö sinulla ole tiliä?",e9e="Nykyinen sähköpostiosoite",t9e="Olet tällä hetkellä kirjautuneena sisään nimellä <0>{{email}}</0>",n9e="Muokkaa",r9e="Sähköposti",i9e="Sähköposti on jo varattu",o9e="Sähköposti muutettu muotoon <0>{{email}}</0> ",s9e="Sähköposti tai puhelinnumero",a9e="Sähköpostiosoite",c9e="Sähköpostiosoitteesi on vahvistettu",l9e="Kirjoita nyt salasanasi kirjautuaksesi uudelleen",u9e="Sähköposti on lähetetty osoitteeseen <0>{{email}}</0> jossa on vahvistuslinkki. Klikkaa linkkiä vahvistaaksesi sähköpostiosoitteesi ja asettaaksesi salasanan.",d9e="Sähköpostivarmennus lähetetty",p9e="Pitääkö sinun kirjautua jatkuvasti sisään?",f9e="Olet tällä hetkellä osoitteessa {{browserName}}. Tämä selain kirjautuu usein ulos, joten suosittelemme käyttämään sen sijaan puhelimen oletusselainta.",h9e="Syötä koodi",_9e="Syötä vahvistuskoodi",m9e="Vahvistuskoodi",g9e="Syötä koodi",y9e="Tarkista sähköpostisi",b9e="Lähetämme sinulle vahvistuslinkin varmistaaksemme, että omistat tämän sähköpostiosoitteen.",v9e="Kirjoita uusi sähköpostiosoite",w9e="Anna uusi salasana",k9e="Anna salasana",$9e="Anna sähköpostiosoitteesi ja salasanasi kirjautuaksesi sisään.",S9e="Kirjaudutaan sisään käyttäjänä {{email}}",x9e="Syötä salasanasi",z9e="Jotain meni pieleen",A9e="Taikalinkki on vanhentunut. Klikkaa alla olevaa painiketta saadaksesi uuden linkin sähköpostiisi.",E9e="Hei! Päivitimme kirjautumiskokemuksemme. <0>Klikkaa tästä saadaksesi lisätietoja siitä.</0>",C9e="Lähetä salasanan palautussähköposti",I9e="Napsauta alla olevaa painiketta, niin lähetämme ohjeet salasanasi palauttamiseen.",j9e="Salasanan palautussähköposti lähetetty",N9e="Unohditko salasanan?",T9e="Unohditko salasanan?",P9e="Palaa takaisin",O9e="Piilota salasana",R9e="Incognito-tila havaittu",L9e="Olet incognito/yksityisessä tilassa. Istuntotiedot eivät välttämättä säily sivun päivitysten aikana. Jotkin ominaisuudet eivät ehkä toimi odotetulla tavalla.",D9e="Virheellinen tunniste",U9e="Virheellinen salasana",B9e=`Linkki ei ole enää voimassa.
|
|
435
435
|
|
|
436
436
|
Varmista, että avaat kirjautumislinkin samalla selaimella, jolla aloitit kirjautumisen.
|
|
437
437
|
|
|
438
438
|
Voit aloittaa uuden kirjautumisen klikkaamalla alla olevaa linkkiä.`,M9e="Virheellinen linkki",q9e="Linkitetyt tilit",F9e="Kirjaudu sisään napsauttamalla painiketta",H9e="Kirjaudu sisään",V9e="Tai kirjoita koodi osoitteessa {{vendorName}} kirjautumisen loppuun saattamiseksi.",K9e="Kirjoita sähköpostiosoitteesi avataksesi tämän ohjelman osoitteessa {{service}}",G9e="Yhdistä tilisi {{service}}",W9e="Olet kirjautunut sisään nimellä",J9e="Kirjaudu sisään",Z9e="Kirjoita sähköpostiosoitteesi kirjautuaksesi sisään.",X9e="Anna sähköpostiosoitteesi, niin lähetämme sinulle kirjautumiskoodin.",Y9e="Kirjoita sähköpostiosoitteesi tai puhelinnumerosi kirjautuaksesi sisään",Q9e="Anna sähköpostiosoitteesi, niin lähetämme sinulle kirjautumislinkin.",eAe="Anna puhelinnumerosi kirjautuaksesi sisään",tAe="Kirjoita {{authMethod}} kirjautuaksesi sisään.",nAe="Kirjaudu ulos",rAe="Uusi sähköpostiosoite",iAe="Yksi kertainen koodi lähetetään uuteen sähköpostiosoitteeseesi, syötä koodi seuraavassa vaiheessa.",oAe="Ei sähköpostiosoitetta asetettu",sAe="Ei, haluan käyttää toista tiliä",aAe="tai",cAe="Salasana",lAe="Salasana sisältää kielletyn sanan",uAe="Salasana ei saa sisältää henkilötietoja, kuten nimeäsi tai sähköpostiosoitettasi",dAe="Salasana on nollattu",pAe="Menestys",fAe="Salasanan on sisällettävä vähintään yksi pieni kirjain",hAe="Salasanan on sisällettävä vähintään yksi numero",_Ae="Salasanan on sisällettävä vähintään yksi erikoismerkki",mAe="Salasanan on sisällettävä vähintään yksi iso kirjain",gAe="Koodia ei löytynyt tai se on vanhentunut",yAe="Salasanaa ei voitu nollata",bAe="Salasanaa on käytetty äskettäin, eikä sitä voi käyttää uudelleen",vAe="Salasanan on oltava vähintään {{minLength}} merkkiä",wAe="Vaihda salasana tilillesi {{vendorName}} ",kAe="Vaihda salasana tilillesi {{vendorName}} ",$Ae="Puhelinnumero",SAe="Tietosuojakäytäntö",xAe="Uudelleenohjaus",zAe="Vahvista salasana",AAe="Rekisteröi uusi salasana",EAe="Lähetä koodi uudelleen",CAe="Vaihda salasana",IAe="Kirjoita alla oleva uusi salasanasi sähköpostitiliä varten: ",jAe="Napsauta painiketta salasanasi palauttamiseksi",NAe="Napsauta painiketta salasanasi palauttamiseksi",TAe="Nollaa salasanasi",PAe="Vaihda salasana tilillesi {{vendorName}} ",OAe="Nollaa salasana",RAe="Lähetä",LAe="Lähetä minulle uusi maaginen linkki",DAe="Muista tarkistaa roskapostikansiosi, jos sähköposti ei ole saapunut.",UAe="Aseta salasana",BAe="Näytä salasana",MAe="Kirjaudu sisään",qAe="Rekisteröityminen",FAe="Rekisteröidy onnistuneesti",HAe="{{code}} on kirjautumiskoodisi {{vendorName}}",VAe="Näyttää siltä, että Spotify-tilisi on tällä hetkellä yhdistetty toiseen Sesamy-tiliin. Mutta älä pelkää, me opastamme sinua prosessin läpi, jotta saat tämän korjattua.",KAe="Siirry Spotifyn Content Access -sivulle",GAe='Aloitetaan poistamalla Spotify-tilisi linkitys. Klikkaa alla olevaa painiketta siirtyäksesi Spotifyn Content Access -sivulle. Kun olet kirjautunut sisään Spotify-tilillesi, etsi Sesamy yhdistettyjen alustojen luettelosta. Napsauta "Unlink" Sesamyn logon vieressä.',WAe="Vaihe 1: Poista Spotify-tilisi linkitys",JAe="Kun olet onnistuneesti irrottanut Spotify-tilisi, voit yhdistää sen uudelleen Sesamyn kanssa. Toista vain aiemmin tekemäsi vaiheet, jotka johtivat sinut tälle sivulle.",ZAe="Vaihe 2: Yhdistä Spotify-tilisi uudelleen Sesamyn kanssa",XAe="Hups! Spotify-tilisi on jo linkitetty",YAe="Valmis",QAe="Jos sinulla on kysyttävää tai tarvitset apua, voit ottaa yhteyttä tukitiimiimme.",eEe="Ehdot ja edellytykset",tEe="Jokin meni pieleen. Yritä uudelleen.",nEe="Irrota",rEe="Sähköpostiosoitteesi on vahvistettava. Olemme lähettäneet uuden sähköpostiviestin sähköpostiisi.",iEe="Päivitä sähköposti",oEe="Käyttäjätiliä ei ole olemassa",sEe="Käyttäjätiliä ei ole olemassa",aEe="Emme löytäneet käyttäjää, jolla on annettu sähköpostiosoite. Yritä uudelleen.",cEe="Yritä uudelleen.",lEe="Validoi koodi",uEe="Tarkista sähköpostin vahvistusohjeet postilaatikostasi.",dEe="Rekisteröitynyt",pEe="Vahvista sähköpostiosoitteesi napsauttamalla painiketta",fEe="Vahvista sähköpostiosoitteesi",hEe="Vahvista sähköpostiosoitteesi",_Ee="Vahvista tili",mEe="Vahvista sähköpostiosoitteesi",gEe="Tervetuloa",yEe="Tervetuloa tilillesi {{vendorName}}!",bEe="Tarkista sähköpostisi osoitteesta <0>{{email}}</0> ja syötä lähettämämme kuusinumeroinen koodi.",vEe="Jatka tällä tilillä",wEe="Kyllä, jatka {{text}}",kEe="Kyllä, jatka olemassa olevalla tilillä",$Ee={account_detected:hze,account_page_description:_ze,account_title:mze,account_with_sso_provider:gze,agree_to:yze,and:bze,auth_method_email:vze,auth_method_email_or_phone:wze,auth_method_phone:kze,callback_url_mismatch:$ze,callback_url_not_allowed:Sze,change_email:xze,check_email_title:zze,click_to_sign_up_description:Aze,code_email_enter_code:Eze,code_email_subject:Cze,code_email_title:Ize,code_expired:jze,code_invalid:Nze,code_sent_template:Tze,code_used:Pze,code_valid_30_minutes:Oze,configuration_error_message:Rze,confirm_password:Lze,confirm_unlink:Dze,contact_support:Uze,contact_us:Bze,continue:"Jatka",continue_social_login:Mze,continue_with:qze,continue_with_sso_provider_headline:Fze,copyright:Hze,copyright_sesamy:Vze,create_account_description:Kze,create_account_email_invalid:Gze,create_account_passwords_didnt_match:Wze,create_account_title:Jze,create_account_weak_password:Zze,create_new_account_link:Xze,create_password_account_title:Yze,dont_have_account:Qze,current_email:e9e,currently_logged_in_as:t9e,edit:n9e,email:r9e,email_already_taken:i9e,email_changed_to_template:o9e,email_or_phone_placeholder:s9e,email_placeholder:a9e,email_validated:c9e,email_validated_cta:l9e,email_verification_for_signup_sent_description:u9e,email_verification_for_signup_sent_title:d9e,embedded_browser_detected:p9e,embedded_browser_warning:f9e,enter_a_code_btn:h9e,enter_code_description:_9e,enter_code_label:m9e,enter_code_placeholder:g9e,enter_code_title:y9e,enter_email_for_verification_description:b9e,enter_new_email:v9e,enter_new_password_placeholder:w9e,enter_password:k9e,enter_password_description:$9e,enter_password_signing_in_as:S9e,enter_your_password_btn:x9e,error_page_title:z9e,expired_code:A9e,fokus_info_message:E9e,forgot_password_cta:C9e,forgot_password_description:I9e,forgot_password_email_sent:j9e,forgot_password_link:N9e,forgot_password_title:T9e,go_back:P9e,hide_password:O9e,incognito_mode_detected:R9e,incognito_mode_warning:L9e,"invalid-email":"Virheellinen sähköpostiosoite",invalid_identifier:D9e,invalid_password:U9e,invalid_session_body:B9e,invalid_session_title:M9e,linked_accounts:q9e,link_email_click_to_login:F9e,link_email_login:H9e,link_email_or_enter_code:V9e,link_page_body:K9e,link_page_headline:G9e,logged_in_as:W9e,login:J9e,login_description:Z9e,login_description_code:X9e,login_description_combined:Y9e,login_description_link:Q9e,login_description_phone:eAe,login_description_template:tAe,logout:nAe,new_email:rAe,new_email_code_info:iAe,no_email_address:oAe,no_use_another:sAe,or:aAe,password:cAe,password_contains_forbidden_word:lAe,password_contains_personal_info:uAe,password_has_been_reset:dAe,password_has_been_reset_title:pAe,password_missing_lowercase:fAe,password_missing_number:hAe,password_missing_special:_Ae,password_missing_uppercase:mAe,password_reset_code_expired:gAe,password_reset_failed:yAe,password_reused:bAe,password_too_short:vAe,password_reset_subject:wAe,password_reset_title:kAe,phone_placeholder:$Ae,privacy_policy:SAe,redirecting:xAe,reenter_new_password_placeholder:zAe,register_password_account:AAe,resend_code:EAe,reset_password_cta:CAe,reset_password_description:IAe,reset_password_email_click_to_reset:jAe,reset_password_email_cta:NAe,reset_password_email_reset:TAe,reset_password_subject:PAe,reset_password_title:OAe,send:RAe,send_me_a_new_magic_link:LAe,sent_code_spam:DAe,"Server error: Invalid code":"Virheellinen koodi",set_password:UAe,show_password:BAe,sign_in:MAe,signup:qAe,signup_success:FAe,sms_code_text:HAe,spotify_already_linked_body:VAe,spotify_already_linked_cta:KAe,spotify_already_linked_step1_body:GAe,spotify_already_linked_step1_title:WAe,spotify_already_linked_step2_body:JAe,spotify_already_linked_step2_title:ZAe,spotify_already_linked_title:XAe,success:YAe,support_info:QAe,terms:eEe,unexpected_error_try_again:tEe,unlink:nEe,unverified_email:rEe,update_email:iEe,user_account_does_not_exist:oEe,user_not_found:sEe,user_not_found_body:aEe,user_not_found_cta:cEe,validate_code:lEe,validate_email_body:uEe,validate_email_title:dEe,verify_email_click_to_verify:pEe,verify_email_subject:fEe,verify_email_title:hEe,verify_email_verify:_Ee,verify_your_email:mEe,welcome:gEe,welcome_to_your_account:yEe,we_sent_a_code_to:bEe,yes_continue:vEe,yes_continue_with:wEe,yes_continue_with_existing_account:kEe},SEe="Konto opdaget",xEe="Administrer dine kontooplysninger",zEe="Konto",AEe="Vi har opdaget, at du allerede har oprettet en konto gennem",EEe="Når du logger ind, accepterer du vores",CEe="og",IEe="e-mail-adresse",jEe="e-mail eller telefonnummer",NEe="Telefonnummer",TEe="Uoverensstemmelse mellem URL og tilbagekald",PEe="Den angivne redirect_uri er ikke på listen over tilladte tilbagekalds-URL'er.",OEe="Ændre e-mailadresse",REe="Fortsæt med brugeren",LEe="Klik på knappen for at oprette en ny adgangskodekonto.",DEe="Indtast koden på {{vendorName}} for at gennemføre login.",UEe="Velkommen til {{vendorName}}! {{code}} er login-koden",BEe="Velkommen til {{vendorName}}! {{code}} er login-koden",MEe="Koden er udløbet",qEe="Ugyldig kode",FEe="Tjek venligst <0>{{username}}</0> og indtast den sekscifrede kode, som vi har sendt til dig.",HEe="Koden er allerede brugt",VEe="Koden er gyldig i 30 minutter",KEe="Der opstod en konfigurationsfejl.",GEe="Bekræft adgangskode",WEe="Er du sikker på, at du vil fjerne forbindelsen til denne konto?",JEe="Har du brug for hjælp?",ZEe="Kontakt os",XEe="eller fortsæt med social konto",YEe="Fortsæt med {{provider}}",QEe="Vil du gerne fortsætte med din eksisterende konto?",e7e="Ophavsret © 2023 SESAMY. Alle rettigheder forbeholdes.",t7e="©2023 Sesamy",n7e="Vælg en adgangskode med en blanding af store og små bogstaver, tal og symboler.",r7e="Indtast venligst en gyldig e-mailadresse.",i7e="Adgangskoderne stemte ikke overens. Prøv igen.",o7e="Vælg adgangskode",s7e="Adgangskoden skal være mindst 8 tegn lang og indeholde mindst et lille bogstav, et stort bogstav, et tal og et symbol.",a7e="Tilmeld dig",c7e="Tilmeld dig med adgangskode",l7e="Har du ikke en konto?",u7e="Nuværende e-mailadresse",d7e="Du er i øjeblikket logget ind som <0>{{email}}</0>",p7e="Rediger",f7e="E-mail",h7e="E-mailen er allerede optaget",_7e="E-mail ændret til <0>{{email}}</0> ",m7e="E-mail eller telefonnummer",g7e="E-mail-adresse",y7e="Din e-mailadresse er blevet valideret",b7e="Indtast nu din adgangskode for at logge ind igen",v7e="Der er sendt en e-mail til <0>{{email}}</0> med et bekræftelseslink. Klik på linket for at bekræfte din e-mailadresse og angive en adgangskode.",w7e="E-mail-bekræftelse sendt",k7e="Skal man blive ved med at logge ind?",$7e="Du er i øjeblikket inde på {{browserName}}. Denne browser logger dig ofte ud, så vi anbefaler, at du bruger din telefons standardbrowser i stedet.",S7e="Indtast en kode",x7e="Indtast bekræftelseskoden",z7e="Bekræftelseskode",A7e="Indtast kode",E7e="Tjek din e-mail",C7e="Vi sender dig et bekræftelseslink for at sikre, at du ejer denne e-mailadresse.",I7e="Indtast ny e-mail",j7e="Indtast ny adgangskode",N7e="Indtast adgangskode",T7e="Indtast din e-mailadresse og adgangskode for at logge ind.",P7e="Logger ind som {{email}}",O7e="Indtast din adgangskode",R7e="Noget gik galt",L7e="Det magiske link er udløbet. Klik på knappen nedenfor for at modtage et nyt link i din indbakke.",D7e="Hej! Vi har opdateret vores login-oplevelse. <0>Klik her for at lære mere om det.</0>",U7e="Send e-mail til nulstilling af adgangskode",B7e="Klik på knappen nedenfor, så sender vi instruktioner om, hvordan du nulstiller din adgangskode.",M7e="E-mail til nulstilling af adgangskode sendt",q7e="Har du glemt din adgangskode?",F7e="Har du glemt din adgangskode?",H7e="Gå tilbage",V7e="Skjul adgangskode",K7e="Inkognitotilstand opdaget",G7e="Du er i inkognito/privat tilstand. Sessionsdata fortsætter muligvis ikke på tværs af sideopdateringer. Nogle funktioner fungerer måske ikke som forventet.",W7e="Ugyldig identifikator",J7e="Ugyldig adgangskode",Z7e="Linket er ikke længere gyldigt. Sørg for at åbne login-linket i den samme browser, som du startede login med. Du kan klikke på linket nedenfor for at starte et nyt login.",X7e="Ugyldigt link",Y7e="Koblede konti",Q7e="Klik på knappen for at logge ind",eCe="Login",tCe="Eller indtast koden på {{vendorName}} for at gennemføre login.",nCe="Indtast din e-mailadresse for at låse op for dette show på {{service}}",rCe="Forbind din konto med {{service}}",iCe="Du er logget ind som",oCe="Login",sCe="Indtast din e-mailadresse for at logge ind.",aCe="Indtast din e-mailadresse, så sender vi dig en login-kode.",cCe="Indtast din e-mail eller dit telefonnummer for at logge ind",lCe="Indtast din e-mailadresse, så sender vi dig et login-link.",uCe="Indtast dit telefonnummer for at logge ind",dCe="Indtast din {{authMethod}} for at logge ind.",pCe="Log ud",fCe="Ny emailadresse",hCe="En engangskode vil blive sendt til din nye e-mailadresse, indtast koden i næste trin.",_Ce="Ingen e-mailadresse er angivet",mCe="Nej, jeg vil bruge en anden konto",gCe="eller",yCe="Adgangskode",bCe="Adgangskoden indeholder et forbudt ord",vCe="Adgangskoden må ikke indeholde personlige oplysninger som dit navn eller e-mail",wCe="Adgangskoden er blevet nulstillet",kCe="Succes",$Ce="Adgangskoden skal indeholde mindst ét lille bogstav",SCe="Adgangskoden skal indeholde mindst ét tal",xCe="Adgangskoden skal indeholde mindst ét specialtegn",zCe="Adgangskoden skal indeholde mindst ét stort bogstav",ACe="Koden blev ikke fundet eller er udløbet",ECe="Adgangskoden kunne ikke nulstilles",CCe="Adgangskoden er blevet brugt for nylig og kan ikke genbruges",ICe="Adgangskoden skal være mindst {{minLength}} tegn",jCe="Skift adgangskode til din {{vendorName}} konto",NCe="Skift adgangskode til din {{vendorName}} -konto",TCe="Telefonnummer",PCe="Politik for beskyttelse af personlige oplysninger",OCe="Omdirigering",RCe="Bekræft adgangskode",LCe="Registrer en ny adgangskode",DCe="Send koden igen",UCe="Skift adgangskode",BCe="Indtast din nye adgangskode til e-mailkontoen nedenfor: ",MCe="Klik på knappen for at nulstille din adgangskode",qCe="Klik på knappen for at nulstille din adgangskode",FCe="Nulstil din adgangskode",HCe="Skift adgangskode til din {{vendorName}} -konto",VCe="Nulstil adgangskode",KCe="Send",GCe="Send mig et nyt magisk link",WCe="Husk at tjekke din spam-mappe, hvis e-mailen ikke er kommet frem.",JCe="Indstil adgangskode",ZCe="Vis adgangskode",XCe="Log ind",YCe="Tilmelding",QCe="Tilmeld dig med succes",eIe="{{code}} er din login-kode til {{vendorName}}",tIe="Det ser ud til, at din Spotify-konto i øjeblikket er knyttet til en anden Sesamy-konto. Men frygt ikke, vi er her for at guide dig gennem processen med at få det løst.",nIe="Gå til Spotifys side for adgang til indhold",rIe='Lad os starte med at fjerne forbindelsen til din Spotify-konto. Klik på knappen nedenfor for at gå til Spotifys Content Access-side. Når du har logget ind på din Spotify-konto, skal du finde Sesamy på listen over tilsluttede platforme. Klik på "Unlink" ved siden af Sesamy-logoet.',iIe="Trin 1: Fjern forbindelsen til din Spotify-konto",oIe="Når du har afkoblet din Spotify-konto, kan du koble den til Sesamy igen. Du skal blot gentage de trin, du tidligere har taget, og som førte dig til denne side.",sIe="Trin 2: Relink din Spotify-konto til Sesamy",aIe="Ups! Din Spotify-konto er allerede forbundet",cIe="Færdig",lIe="Hvis du har spørgsmål eller brug for hjælp, kan du kontakte vores supportteam",uIe="Vilkår og betingelser",dIe="Noget gik galt. Prøv venligst igen.",pIe="Frakobl",fIe="Din e-mailadresse skal valideres. Vi har sendt en ny e-mail til din indbakke",hIe="Opdatering af e-mail",_Ie="Brugerkontoen findes ikke",mIe="Brugerkontoen findes ikke",gIe="Vi kunne ikke finde en bruger med den angivne e-mailadresse. Prøv venligst igen.",yIe="Prøv igen.",bIe="Valider koden",vIe="Tjek din indbakke for instruktioner om validering af e-mail.",wIe="Tilmeldte sig",kIe="Klik på knappen for at bekræfte din e-mailadresse",$Ie="Bekræft din e-mailadresse",SIe="Bekræft din e-mailadresse",xIe="Bekræft konto",zIe="Bekræft din e-mail",AIe="Velkommen",EIe="Velkommen til din {{vendorName}} konto!",CIe="Tjek venligst din e-mail på <0>{{email}}</0> og indtast den sekscifrede kode, vi har sendt dig.",IIe="Fortsæt med denne konto",jIe="Ja, fortsæt med {{text}}",NIe="Ja, fortsæt med eksisterende konto",TIe={account_detected:SEe,account_page_description:xEe,account_title:zEe,account_with_sso_provider:AEe,agree_to:EEe,and:CEe,auth_method_email:IEe,auth_method_email_or_phone:jEe,auth_method_phone:NEe,callback_url_mismatch:TEe,callback_url_not_allowed:PEe,change_email:OEe,check_email_title:REe,click_to_sign_up_description:LEe,code_email_enter_code:DEe,code_email_subject:UEe,code_email_title:BEe,code_expired:MEe,code_invalid:qEe,code_sent_template:FEe,code_used:HEe,code_valid_30_minutes:VEe,configuration_error_message:KEe,confirm_password:GEe,confirm_unlink:WEe,contact_support:JEe,contact_us:ZEe,continue:"Fortsæt",continue_social_login:XEe,continue_with:YEe,continue_with_sso_provider_headline:QEe,copyright:e7e,copyright_sesamy:t7e,create_account_description:n7e,create_account_email_invalid:r7e,create_account_passwords_didnt_match:i7e,create_account_title:o7e,create_account_weak_password:s7e,create_new_account_link:a7e,create_password_account_title:c7e,dont_have_account:l7e,current_email:u7e,currently_logged_in_as:d7e,edit:p7e,email:f7e,email_already_taken:h7e,email_changed_to_template:_7e,email_or_phone_placeholder:m7e,email_placeholder:g7e,email_validated:y7e,email_validated_cta:b7e,email_verification_for_signup_sent_description:v7e,email_verification_for_signup_sent_title:w7e,embedded_browser_detected:k7e,embedded_browser_warning:$7e,enter_a_code_btn:S7e,enter_code_description:x7e,enter_code_label:z7e,enter_code_placeholder:A7e,enter_code_title:E7e,enter_email_for_verification_description:C7e,enter_new_email:I7e,enter_new_password_placeholder:j7e,enter_password:N7e,enter_password_description:T7e,enter_password_signing_in_as:P7e,enter_your_password_btn:O7e,error_page_title:R7e,expired_code:L7e,fokus_info_message:D7e,forgot_password_cta:U7e,forgot_password_description:B7e,forgot_password_email_sent:M7e,forgot_password_link:q7e,forgot_password_title:F7e,go_back:H7e,hide_password:V7e,incognito_mode_detected:K7e,incognito_mode_warning:G7e,"invalid-email":"Ugyldig e-mail",invalid_identifier:W7e,invalid_password:J7e,invalid_session_body:Z7e,invalid_session_title:X7e,linked_accounts:Y7e,link_email_click_to_login:Q7e,link_email_login:eCe,link_email_or_enter_code:tCe,link_page_body:nCe,link_page_headline:rCe,logged_in_as:iCe,login:oCe,login_description:sCe,login_description_code:aCe,login_description_combined:cCe,login_description_link:lCe,login_description_phone:uCe,login_description_template:dCe,logout:pCe,new_email:fCe,new_email_code_info:hCe,no_email_address:_Ce,no_use_another:mCe,or:gCe,password:yCe,password_contains_forbidden_word:bCe,password_contains_personal_info:vCe,password_has_been_reset:wCe,password_has_been_reset_title:kCe,password_missing_lowercase:$Ce,password_missing_number:SCe,password_missing_special:xCe,password_missing_uppercase:zCe,password_reset_code_expired:ACe,password_reset_failed:ECe,password_reused:CCe,password_too_short:ICe,password_reset_subject:jCe,password_reset_title:NCe,phone_placeholder:TCe,privacy_policy:PCe,redirecting:OCe,reenter_new_password_placeholder:RCe,register_password_account:LCe,resend_code:DCe,reset_password_cta:UCe,reset_password_description:BCe,reset_password_email_click_to_reset:MCe,reset_password_email_cta:qCe,reset_password_email_reset:FCe,reset_password_subject:HCe,reset_password_title:VCe,send:KCe,send_me_a_new_magic_link:GCe,sent_code_spam:WCe,"Server error: Invalid code":"Ugyldig kode",set_password:JCe,show_password:ZCe,sign_in:XCe,signup:YCe,signup_success:QCe,sms_code_text:eIe,spotify_already_linked_body:tIe,spotify_already_linked_cta:nIe,spotify_already_linked_step1_body:rIe,spotify_already_linked_step1_title:iIe,spotify_already_linked_step2_body:oIe,spotify_already_linked_step2_title:sIe,spotify_already_linked_title:aIe,success:cIe,support_info:lIe,terms:uIe,unexpected_error_try_again:dIe,unlink:pIe,unverified_email:fIe,update_email:hIe,user_account_does_not_exist:_Ie,user_not_found:mIe,user_not_found_body:gIe,user_not_found_cta:yIe,validate_code:bIe,validate_email_body:vIe,validate_email_title:wIe,verify_email_click_to_verify:kIe,verify_email_subject:$Ie,verify_email_title:SIe,verify_email_verify:xIe,verify_your_email:zIe,welcome:AIe,welcome_to_your_account:EIe,we_sent_a_code_to:CIe,yes_continue:IIe,yes_continue_with:jIe,yes_continue_with_existing_account:NIe},PIe="https://assets.sesamy.com/images/login-bg.jpg",OIe=({title:e,children:t,theme:n,branding:r})=>{const i=n?.page_background?.page_layout||"center",s=n?.page_background?.background_color||"#ffffff",a=n?.page_background?.background_image_url,c=a??PIe,l=c?.startsWith("linear-gradient")||c?.startsWith("radial-gradient")||c?.startsWith("conic-gradient"),u=c?l?c:`url(${c})`:void 0;let d="justify-center",f="p-6 md:p-10";i==="left"?(d="justify-start",f="pl-12 pr-6 py-6 md:pl-20 md:pr-10 md:py-10"):i==="right"&&(d="justify-end",f="pr-12 pl-6 py-6 md:pr-20 md:pl-10 md:py-10");const p=Be("min-h-screen w-full flex bg-cover bg-center",d,f),h={...u&&{backgroundImage:u},backgroundColor:s,display:"flex",alignItems:"stretch",justifyContent:i==="left"?"flex-start":i==="right"?"flex-end":"center",minHeight:"100vh",width:"100%"},_=Be("w-full max-w-sm","flex flex-col justify-center");return v("html",{lang:T.language||"en",children:[v("head",{children:[v("title",{children:e}),v("meta",{charset:"UTF-8"}),v("meta",{name:"robots",content:"noindex, follow"}),v("link",{rel:"stylesheet",href:`/u/css/tailwind.css?v=${Lo}`}),v("meta",{name:"viewport",content:"width=device-width, initial-scale=1, maximum-scale=1"}),v("meta",{name:"theme-color",content:"#000000"}),r?.favicon_url&&v("link",{rel:"icon",type:"image/x-icon",href:r.favicon_url}),n?.fonts?.font_url&&v("link",{rel:"stylesheet",href:n.fonts.font_url})]}),v("body",{children:[v("div",{className:p,style:h,children:v("div",{className:_,children:[t,r?.powered_by_logo_url&&v("div",{className:"mt-5 text-left",children:v("a",{href:"https://authhero.com",target:"_blank",rel:"noopener noreferrer",className:"inline-block",children:v("img",{src:r.powered_by_logo_url,alt:"Powered by",className:"h-9 opacity-60 hover:opacity-100 transition-opacity"})})})]})}),v("div",{id:"client-root"}),v("script",{type:"module",src:`/u/js/client.js?v=${Lo}`})]})]})},tS=({children:e,className:t,style:n})=>v("div",{className:Be("rounded-lg border border-gray-200 bg-white shadow-sm dark:border-gray-700 dark:bg-gray-800",t),style:n,children:e}),nS=({children:e,className:t})=>v("div",{className:Be("flex flex-col space-y-1.5 p-6",t),children:e}),rS=({children:e,className:t,style:n})=>v("h3",{className:Be("text-2xl font-semibold leading-none tracking-tight",t),style:n,children:e}),iS=({children:e,className:t,style:n})=>v("p",{className:Be("text-sm text-gray-500 dark:text-gray-400",t),style:n,children:e}),oS=({children:e,className:t})=>v("div",{className:Be("p-6 pt-0",t),children:e}),RIe=({children:e,className:t})=>v("div",{className:Be("flex items-center p-6 pt-0",t),children:e}),sS=({id:e,type:t="text",name:n,placeholder:r,className:i,required:s=!1,value:a,disabled:c=!1,error:l=!1,style:u})=>v("input",{id:e,type:t,name:n,placeholder:r,required:s,value:a,disabled:c,className:Be("flex h-10 w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm ring-offset-white transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-gray-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 dark:border-gray-600 dark:bg-gray-800 dark:ring-offset-gray-900 dark:placeholder:text-gray-400",l&&"border-red-500 focus-visible:ring-red-500",i),style:u}),aS=({children:e,className:t,variant:n="default",size:r="default",type:i="button",disabled:s=!1,style:a})=>{const c={default:"bg-blue-600 text-white hover:bg-blue-700 dark:bg-blue-700 dark:hover:bg-blue-800",outline:"border border-gray-300 bg-transparent hover:bg-gray-100 dark:border-gray-600 dark:hover:bg-gray-800",ghost:"hover:bg-gray-100 dark:hover:bg-gray-800"},l={default:"h-10 px-4 py-2",sm:"h-9 px-3 text-sm",lg:"h-11 px-8"};return v("button",{type:i,disabled:s,className:Be("inline-flex items-center justify-center gap-2 rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 disabled:pointer-events-none disabled:opacity-50",c[n],l[r],t),style:a,children:e})},cS=({htmlFor:e,className:t,style:n,children:r})=>v("label",{for:e,className:Be("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",t),style:n,children:r}),LIe=({error:e,theme:t,branding:n,loginSession:r,email:i,client:s,className:a,isEmbedded:c,browserName:l})=>{const u=s.connections.map(({strategy:ue})=>ue),d=u.includes("email")||u.includes("Username-Password-Authentication"),f=u.includes("sms"),p=new Set(["email","sms","Username-Password-Authentication","auth0"]),h=s.connections.filter(ue=>!p.has(ue.strategy)).filter(ue=>ue.show_as_button!==!1).map(ue=>{const Xe=Iu[ue.strategy];return Xe?{...Xe,connectionName:ue.name,displayName:ue.display_name||Xe.displayName||ue.name,iconUrl:ue.options.icon_url}:null}).filter(ue=>ue!==null).filter(ue=>!(c&&ue.disableEmbeddedBrowsers)),_=d||f,g=d&&f?"email_or_phone_placeholder":d?"email_placeholder":f?"phone_placeholder":null,y=g?T.t(g,d&&f?"Email or Phone Number":d?"Email Address":"Phone Number"):"",m=t?.colors?.primary_button||n?.colors?.primary||"#0066cc",w=t?.colors?.primary_button_label||"#ffffff",k=t?.colors?.body_text||"#333333",S=t?.colors?.input_background||"#ffffff",b=t?.colors?.input_border||"#d1d5db",x=t?.colors?.input_filled_text||"#111827",A=t?.colors?.error||"#dc2626",E=t?.colors?.widget_background||"#ffffff",P=t?.colors?.widget_border||"#e5e7eb",R=t?.borders?.widget_corner_radius||8,C=t?.borders?.input_border_radius||4,L=t?.borders?.button_border_radius||4,B=t?.borders?.show_widget_shadow??!0,V=t?.fonts?.title?.size||24,D=t?.fonts?.title?.bold??!0,ne=t?.fonts?.body_text?.size||14,ce={backgroundColor:E,borderColor:P,borderRadius:`${R}px`,boxShadow:B?"0 1px 3px 0 rgba(0, 0, 0, 0.1)":"none",color:k},ae={fontSize:`${V}px`,fontWeight:D?"700":"400",color:t?.colors?.header||k},ve={fontSize:`${ne}px`,color:t?.colors?.input_labels_placeholders||"#6b7280"},Ee={backgroundColor:S,borderColor:e?A:b,borderRadius:`${C}px`,color:x},le={backgroundColor:m,color:w,borderRadius:`${L}px`},Se=t?.widget?.logo_position||"center",F=Se==="left"?"text-left":Se==="right"?"text-right":"text-center",Pe=t?.widget?.logo_url||n?.logo_url,St=Se!=="none"&&Pe;return v("div",{className:Be("flex flex-col gap-6 w-full max-w-sm",a),children:[v("div",{id:"incognito-warning-container",className:"mb-4 hidden rounded-md border border-yellow-200 bg-yellow-50 p-4 text-sm text-yellow-800 dark:border-yellow-900 dark:bg-yellow-900/20 dark:text-yellow-100",role:"alert",children:v("div",{className:"flex items-start gap-3",children:[v("span",{className:"text-lg leading-none",children:"⚠️"}),v("div",{children:[v("strong",{children:T.t("incognito_mode_detected")}),v("p",{className:"mt-1 text-xs opacity-90",children:T.t("incognito_mode_warning")})]})]})}),c&&v("div",{className:"mb-4 rounded-md border border-orange-200 bg-orange-50 p-4 text-sm text-orange-800 dark:border-orange-900 dark:bg-orange-900/20 dark:text-orange-100",role:"alert",children:v("div",{className:"flex items-start gap-3",children:[v("span",{className:"text-lg leading-none",children:"⚠️"}),v("div",{children:[v("strong",{children:T.t("embedded_browser_detected")}),v("p",{className:"mt-1 text-xs opacity-90",children:T.t("embedded_browser_warning",{browserName:l||"the app"})})]})]})}),v(tS,{style:ce,className:"border",children:[v(nS,{children:[St&&v("div",{className:Be("mb-4",F),children:v(H_,{theme:t,branding:n})}),v(rS,{style:ae,children:T.t("welcome","Login")}),v(iS,{style:ve,children:_?T.t("login_description_template",{authMethod:T.t(g,{defaultValue:d&&f?"email or phone number":d?"email address":"phone number"}).toLocaleLowerCase(),defaultValue:"Enter your {{authMethod}} below to login to your account"}):T.t("login_description_social_only","Choose how to login")})]}),v(oS,{children:v("form",{method:"post",children:v("div",{className:"grid gap-6",children:[_&&v(Ro,{children:[v("div",{className:"grid gap-2",children:[v(cS,{htmlFor:"username",style:ve,children:T.t(g,d&&f?"Email or Phone Number":d?"Email":"Phone Number")}),v(sS,{id:"username",name:"username",type:"text",placeholder:y,required:!0,value:i||"",error:!!e,className:"border lowercase",style:Ee}),e&&v(Jt,{children:e})]}),v(aS,{type:"submit",className:"w-full transition-colors hover:brightness-90",style:le,children:T.t("continue","Continue")})]}),h.length>0&&v(Ro,{children:[_&&v("div",{className:"relative text-center",style:{color:t?.colors?.input_labels_placeholders||"#6b7280",fontSize:`${ne}px`},children:[v("div",{className:"absolute left-0 right-0 top-1/2 border-b",style:{borderColor:P}}),v("div",{className:"relative inline-block px-2",style:{backgroundColor:E},children:T.t("or","Or")})]}),v("div",{className:"flex gap-4 sm:flex-col short:flex-row",children:h.map(ue=>{const Xe=ue.iconUrl||ue.logoDataUri;return v("a",{href:`/authorize/redirect?state=${r.id}&connection=${ue.connectionName}`,className:"inline-flex items-center justify-center gap-2 rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 disabled:pointer-events-none disabled:opacity-50 border bg-transparent hover:bg-gray-100 dark:hover:bg-gray-800 h-10 px-4 py-2 w-full sm:w-full short:flex-1",style:{borderColor:b,borderRadius:`${L}px`,color:k},children:[Xe&&v("img",{src:Xe,alt:ue.displayName,className:"h-5 w-5"}),v("span",{className:"sm:inline short:hidden",children:T.t("continue_with","Login with {{provider}}",{provider:ue.displayName})}),v("span",{className:"hidden short:inline",children:ue.displayName})]},ue.connectionName)})})]})]})})})]})]})},DIe=({...e})=>v("svg",{width:"45",height:"45",viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",...e,children:[v("path",{d:"M44.1035 23.0123C44.1054 21.4791 43.9758 19.9486 43.716 18.4375H22.498V27.1028H34.6507C34.4021 28.4868 33.8757 29.8061 33.1034 30.9812C32.3311 32.1562 31.3289 33.1628 30.1571 33.9401V39.5649H37.41C41.6567 35.6494 44.1035 29.859 44.1035 23.0123Z",fill:"#4285F4"}),v("path",{d:"M22.4982 44.9997C28.5698 44.9997 33.6821 43.0061 37.4101 39.5687L30.1573 33.9439C28.1386 35.3126 25.5387 36.0938 22.4982 36.0938C16.6296 36.0938 11.6485 32.1377 9.86736 26.8066H2.39575V32.6033C4.26839 36.3297 7.13989 39.4622 10.6896 41.6512C14.2394 43.8402 18.3277 44.9995 22.4982 44.9997Z",fill:"#34A853"}),v("path",{d:"M9.86737 26.8073C8.92572 24.0138 8.92572 20.9886 9.86737 18.1951V12.3984H2.39576C0.820432 15.5332 0 18.9929 0 22.5012C0 26.0095 0.820432 29.4692 2.39576 32.604L9.86737 26.8073Z",fill:"#FBBC04"}),v("path",{d:"M22.4982 8.90741C25.7068 8.85499 28.8071 10.0673 31.1291 12.2823L37.5507 5.86064C33.4788 2.03602 28.0843 -0.0637686 22.4982 0.00147616C18.3277 0.00166623 14.2394 1.16098 10.6896 3.34999C7.13989 5.539 4.26839 8.67155 2.39575 12.3979L9.86736 18.1946C11.6485 12.8635 16.6296 8.90741 22.4982 8.90741Z",fill:"#EA4335"})]}),UIe=e=>{const{theme:t,branding:n,client:r,authParams:i}=e,a=`/authorize?${new URLSearchParams(Object.entries(i).filter(([,c])=>c!==void 0).map(([c,l])=>[c,String(l)]))}`;return v(Ve,{theme:t,branding:n,client:r,title:T.t("user_not_found"),children:v("div",{className:"flex flex-1 flex-col justify-center",children:[v("p",{className:"mb-8 text-gray-300 text-lg",children:T.t("user_not_found_body")}),v(He,{Component:"a",href:a,children:T.t("user_not_found_cta")})]})})},BIe=({...e})=>v("svg",{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:"0 0 48 48",enableBackground:"new 0 0 48 48",width:"45",height:"45",...e,children:[v("path",{fill:"#FF5B24",d:"M3.5,8h41c1.9,0,3.5,1.6,3.5,3.5v25c0,1.9-1.6,3.5-3.5,3.5h-41C1.6,40,0,38.4,0,36.5v-25C0,9.6,1.6,8,3.5,8z"}),v("path",{fillRule:"evenodd",clipRule:"evenodd",fill:"#FFFFFF",d:`M27.9,20.3c1.4,0,2.6-1,2.6-2.5h0c0-1.5-1.2-2.5-2.6-2.5c-1.4,0-2.6,1-2.6,2.5C25.3,19.2,26.5,20.3,27.9,20.3z
|
|
439
439
|
M31.2,24.4c-1.7,2.2-3.5,3.8-6.7,3.8h0c-3.2,0-5.8-2-7.7-4.8c-0.8-1.2-2-1.4-2.9-0.8c-0.8,0.6-1,1.8-0.3,2.9
|
|
440
440
|
c2.7,4.1,6.5,6.6,10.9,6.6c4,0,7.2-2,9.6-5.2c0.9-1.2,0.9-2.5,0-3.1C33.3,22.9,32.1,23.2,31.2,24.4z`})]});async function MIe(e,t){const{tenantId:n,userId:r}=t,{data:i}=e.env;i.sessionCleanup&&await i.sessionCleanup({tenant_id:n,user_id:r})}const Ps=[{description:"Read Client Grants",value:"read:client_grants"},{description:"Create Client Grants",value:"create:client_grants"},{description:"Delete Client Grants",value:"delete:client_grants"},{description:"Update Client Grants",value:"update:client_grants"},{description:"Read Users",value:"read:users"},{description:"Update Users",value:"update:users"},{description:"Delete Users",value:"delete:users"},{description:"Create Users",value:"create:users"},{description:"Read Users App Metadata",value:"read:users_app_metadata"},{description:"Update Users App Metadata",value:"update:users_app_metadata"},{description:"Delete Users App Metadata",value:"delete:users_app_metadata"},{description:"Create Users App Metadata",value:"create:users_app_metadata"},{description:"Read Custom User Blocks",value:"read:user_custom_blocks"},{description:"Create Custom User Blocks",value:"create:user_custom_blocks"},{description:"Delete Custom User Blocks",value:"delete:user_custom_blocks"},{description:"Create User Tickets",value:"create:user_tickets"},{description:"Read Clients",value:"read:clients"},{description:"Update Clients",value:"update:clients"},{description:"Delete Clients",value:"delete:clients"},{description:"Create Clients",value:"create:clients"},{description:"Read Client Keys",value:"read:client_keys"},{description:"Update Client Keys",value:"update:client_keys"},{description:"Delete Client Keys",value:"delete:client_keys"},{description:"Create Client Keys",value:"create:client_keys"},{description:"Read Client Credentials",value:"read:client_credentials"},{description:"Update Client Credentials",value:"update:client_credentials"},{description:"Delete Client Credentials",value:"delete:client_credentials"},{description:"Create Client Credentials",value:"create:client_credentials"},{description:"Read Connections",value:"read:connections"},{description:"Update Connections",value:"update:connections"},{description:"Delete Connections",value:"delete:connections"},{description:"Create Connections",value:"create:connections"},{description:"Read Resource Servers",value:"read:resource_servers"},{description:"Update Resource Servers",value:"update:resource_servers"},{description:"Delete Resource Servers",value:"delete:resource_servers"},{description:"Create Resource Servers",value:"create:resource_servers"},{description:"Read Device Credentials",value:"read:device_credentials"},{description:"Update Device Credentials",value:"update:device_credentials"},{description:"Delete Device Credentials",value:"delete:device_credentials"},{description:"Create Device Credentials",value:"create:device_credentials"},{description:"Read Rules",value:"read:rules"},{description:"Update Rules",value:"update:rules"},{description:"Delete Rules",value:"delete:rules"},{description:"Create Rules",value:"create:rules"},{description:"Read Rules Configs",value:"read:rules_configs"},{description:"Update Rules Configs",value:"update:rules_configs"},{description:"Delete Rules Configs",value:"delete:rules_configs"},{description:"Read Hooks",value:"read:hooks"},{description:"Update Hooks",value:"update:hooks"},{description:"Delete Hooks",value:"delete:hooks"},{description:"Create Hooks",value:"create:hooks"},{description:"Read Actions",value:"read:actions"},{description:"Update Actions",value:"update:actions"},{description:"Delete Actions",value:"delete:actions"},{description:"Create Actions",value:"create:actions"},{description:"Read Email Provider",value:"read:email_provider"},{description:"Update Email Provider",value:"update:email_provider"},{description:"Delete Email Provider",value:"delete:email_provider"},{description:"Create Email Provider",value:"create:email_provider"},{description:"Blacklist Tokens",value:"blacklist:tokens"},{description:"Read Stats",value:"read:stats"},{description:"Read Insights",value:"read:insights"},{description:"Read Tenant Settings",value:"read:tenant_settings"},{description:"Update Tenant Settings",value:"update:tenant_settings"},{description:"Read Logs",value:"read:logs"},{description:"Read logs relating to users",value:"read:logs_users"},{description:"Read Shields",value:"read:shields"},{description:"Create Shields",value:"create:shields"},{description:"Update Shields",value:"update:shields"},{description:"Delete Shields",value:"delete:shields"},{description:"Read Anomaly Detection Blocks",value:"read:anomaly_blocks"},{description:"Delete Anomaly Detection Blocks",value:"delete:anomaly_blocks"},{description:"Update Triggers",value:"update:triggers"},{description:"Read Triggers",value:"read:triggers"},{description:"Read User Grants",value:"read:grants"},{description:"Delete User Grants",value:"delete:grants"},{description:"Read Guardian factors configuration",value:"read:guardian_factors"},{description:"Update Guardian factors",value:"update:guardian_factors"},{description:"Read Guardian enrollments",value:"read:guardian_enrollments"},{description:"Delete Guardian enrollments",value:"delete:guardian_enrollments"},{description:"Create enrollment tickets for Guardian",value:"create:guardian_enrollment_tickets"},{description:"Read Users IDP tokens",value:"read:user_idp_tokens"},{description:"Create password checking jobs",value:"create:passwords_checking_job"},{description:"Deletes password checking job and all its resources",value:"delete:passwords_checking_job"},{description:"Read custom domains configurations",value:"read:custom_domains"},{description:"Delete custom domains configurations",value:"delete:custom_domains"},{description:"Configure new custom domains",value:"create:custom_domains"},{description:"Update custom domain configurations",value:"update:custom_domains"},{description:"Read email templates",value:"read:email_templates"},{description:"Create email templates",value:"create:email_templates"},{description:"Update email templates",value:"update:email_templates"},{description:"Read Multifactor Authentication policies",value:"read:mfa_policies"},{description:"Update Multifactor Authentication policies",value:"update:mfa_policies"},{description:"Read roles",value:"read:roles"},{description:"Create roles",value:"create:roles"},{description:"Delete roles",value:"delete:roles"},{description:"Update roles",value:"update:roles"},{description:"Read prompts settings",value:"read:prompts"},{description:"Update prompts settings",value:"update:prompts"},{description:"Read branding settings",value:"read:branding"},{description:"Update branding settings",value:"update:branding"},{description:"Delete branding settings",value:"delete:branding"},{description:"Read log_streams",value:"read:log_streams"},{description:"Create log_streams",value:"create:log_streams"},{description:"Delete log_streams",value:"delete:log_streams"},{description:"Update log_streams",value:"update:log_streams"},{description:"Create signing keys",value:"create:signing_keys"},{description:"Read signing keys",value:"read:signing_keys"},{description:"Update signing keys",value:"update:signing_keys"},{description:"Read entity limits",value:"read:limits"},{description:"Update entity limits",value:"update:limits"},{description:"Create role members",value:"create:role_members"},{description:"Read role members",value:"read:role_members"},{description:"Update role members",value:"delete:role_members"},{description:"Read entitlements",value:"read:entitlements"},{description:"Read attack protection",value:"read:attack_protection"},{description:"Update attack protection",value:"update:attack_protection"},{description:"Read organization summary",value:"read:organizations_summary"},{description:"Create Authentication Methods",value:"create:authentication_methods"},{description:"Read Authentication Methods",value:"read:authentication_methods"},{description:"Update Authentication Methods",value:"update:authentication_methods"},{description:"Delete Authentication Methods",value:"delete:authentication_methods"},{description:"Read Organizations",value:"read:organizations"},{description:"Update Organizations",value:"update:organizations"},{description:"Create Organizations",value:"create:organizations"},{description:"Delete Organizations",value:"delete:organizations"},{description:"Administer Organizations",value:"admin:organizations"},{description:"Read Organization Discovery Domains",value:"read:organization_discovery_domains"},{description:"Update Organization Discovery Domains",value:"update:organization_discovery_domains"},{description:"Create Organization Discovery Domains",value:"create:organization_discovery_domains"},{description:"Delete Organization Discovery Domains",value:"delete:organization_discovery_domains"},{description:"Create organization members",value:"create:organization_members"},{description:"Read organization members",value:"read:organization_members"},{description:"Delete organization members",value:"delete:organization_members"},{description:"Create organization connections",value:"create:organization_connections"},{description:"Read organization connections",value:"read:organization_connections"},{description:"Update organization connections",value:"update:organization_connections"},{description:"Delete organization connections",value:"delete:organization_connections"},{description:"Create organization member roles",value:"create:organization_member_roles"},{description:"Read organization member roles",value:"read:organization_member_roles"},{description:"Delete organization member roles",value:"delete:organization_member_roles"},{description:"Create organization invitations",value:"create:organization_invitations"},{description:"Read organization invitations",value:"read:organization_invitations"},{description:"Delete organization invitations",value:"delete:organization_invitations"},{description:"Read SCIM configuration",value:"read:scim_config"},{description:"Create SCIM configuration",value:"create:scim_config"},{description:"Update SCIM configuration",value:"update:scim_config"},{description:"Delete SCIM configuration",value:"delete:scim_config"},{description:"Create SCIM token",value:"create:scim_token"},{description:"Read SCIM token",value:"read:scim_token"},{description:"Delete SCIM token",value:"delete:scim_token"},{description:"Delete a Phone Notification Provider",value:"delete:phone_providers"},{description:"Create a Phone Notification Provider",value:"create:phone_providers"},{description:"Read a Phone Notification Provider",value:"read:phone_providers"},{description:"Update a Phone Notification Provider",value:"update:phone_providers"},{description:"Delete a Phone Notification Template",value:"delete:phone_templates"},{description:"Create a Phone Notification Template",value:"create:phone_templates"},{description:"Read a Phone Notification Template",value:"read:phone_templates"},{description:"Update a Phone Notification Template",value:"update:phone_templates"},{description:"Create encryption keys",value:"create:encryption_keys"},{description:"Read encryption keys",value:"read:encryption_keys"},{description:"Update encryption keys",value:"update:encryption_keys"},{description:"Delete encryption keys",value:"delete:encryption_keys"},{description:"Read Sessions",value:"read:sessions"},{description:"Update Sessions",value:"update:sessions"},{description:"Delete Sessions",value:"delete:sessions"},{description:"Read Refresh Tokens",value:"read:refresh_tokens"},{description:"Update Refresh Tokens",value:"update:refresh_tokens"},{description:"Delete Refresh Tokens",value:"delete:refresh_tokens"},{description:"Create Self Service Profiles",value:"create:self_service_profiles"},{description:"Read Self Service Profiles",value:"read:self_service_profiles"},{description:"Update Self Service Profiles",value:"update:self_service_profiles"},{description:"Delete Self Service Profiles",value:"delete:self_service_profiles"},{description:"Create SSO Access Tickets",value:"create:sso_access_tickets"},{description:"Delete SSO Access Tickets",value:"delete:sso_access_tickets"},{description:"Read Forms",value:"read:forms"},{description:"Update Forms",value:"update:forms"},{description:"Delete Forms",value:"delete:forms"},{description:"Create Forms",value:"create:forms"},{description:"Read Flows",value:"read:flows"},{description:"Update Flows",value:"update:flows"},{description:"Delete Flows",value:"delete:flows"},{description:"Create Flows",value:"create:flows"},{description:"Read Flows Vault items",value:"read:flows_vault"},{description:"Read Flows Vault connections",value:"read:flows_vault_connections"},{description:"Update Flows Vault connections",value:"update:flows_vault_connections"},{description:"Delete Flows Vault connections",value:"delete:flows_vault_connections"},{description:"Create Flows Vault connections",value:"create:flows_vault_connections"},{description:"Read Flows Executions",value:"read:flows_executions"},{description:"Delete Flows Executions",value:"delete:flows_executions"},{description:"Read Connections Options",value:"read:connections_options"},{description:"Update Connections Options",value:"update:connections_options"},{description:"Read Self Service Profile Custom Texts",value:"read:self_service_profile_custom_texts"},{description:"Update Self Service Profile Custom Texts",value:"update:self_service_profile_custom_texts"},{description:"Create Network ACLs",value:"create:network_acls"},{description:"Update Network ACLs",value:"update:network_acls"},{description:"Read Network ACLs",value:"read:network_acls"},{description:"Delete Network ACLs",value:"delete:network_acls"},{description:"Delete Verifiable Digital Credential Templates",value:"delete:vdcs_templates"},{description:"Read Verifiable Digital Credential Templates",value:"read:vdcs_templates"},{description:"Create Verifiable Digital Credential Templates",value:"create:vdcs_templates"},{description:"Update Verifiable Digital Credential Templates",value:"update:vdcs_templates"},{description:"Create Customer Provided Public Signing Keys",value:"create:custom_signing_keys"},{description:"Read Customer Provided Public Signing Keys",value:"read:custom_signing_keys"},{description:"Update Customer Provided Public Signing Keys",value:"update:custom_signing_keys"},{description:"Delete Customer Provided Public Signing Keys",value:"delete:custom_signing_keys"},{description:"List Federated Connections Tokensets belonging to a user",value:"read:federated_connections_tokens"},{description:"Delete Federated Connections Tokensets belonging to a user",value:"delete:federated_connections_tokens"},{description:"Create User Attribute Profiles",value:"create:user_attribute_profiles"},{description:"Read User Attribute Profiles",value:"read:user_attribute_profiles"},{description:"Update User Attribute Profiles",value:"update:user_attribute_profiles"},{description:"Delete User Attribute Profiles",value:"delete:user_attribute_profiles"},{description:"Read event streams",value:"read:event_streams"},{description:"Create event streams",value:"create:event_streams"},{description:"Delete event streams",value:"delete:event_streams"},{description:"Update event streams",value:"update:event_streams"},{description:"Read event stream deliveries",value:"read:event_deliveries"},{description:"Redeliver event(s) to an event stream",value:"update:event_deliveries"},{description:"Create Connection Profiles",value:"create:connection_profiles"},{description:"Read Connection Profiles",value:"read:connection_profiles"},{description:"Update Connection Profiles",value:"update:connection_profiles"},{description:"Delete Connection Profiles",value:"delete:connection_profiles"},{description:"Read Organization Client Grants",value:"read:organization_client_grants"},{description:"Create Organization Client Grants",value:"create:organization_client_grants"},{description:"Delete Organization Client Grants",value:"delete:organization_client_grants"},{description:"Create Token Exchange Profile",value:"create:token_exchange_profiles"},{description:"Read Token Exchange Profiles",value:"read:token_exchange_profiles"},{description:"Update Token Exchange Profile",value:"update:token_exchange_profiles"},{description:"Delete Token Exchange Profile",value:"delete:token_exchange_profiles"},{description:"Read connection keys",value:"read:connections_keys"},{description:"Update connection keys",value:"update:connections_keys"},{description:"Create connection keys",value:"create:connections_keys"},{description:"Read Tenants",value:"read:tenants"},{description:"Create Tenants",value:"create:tenants"},{description:"Update Tenants",value:"update:tenants"},{description:"Delete Tenants",value:"delete:tenants"},{description:"Read access to authentication resources",value:"auth:read"},{description:"Write access to authentication resources",value:"auth:write"}];async function qIe(e,t){const{adminUsername:n,adminPassword:r,tenantId:i="control_plane",tenantName:s="Control Plane",isControlPlane:a=!0,clientId:c="default",callbacks:l=["https://manage.authhero.net/auth-callback","https://local.authhero.net/auth-callback","https://localhost:5173/auth-callback","https://localhost:3000/auth-callback"],allowedLogoutUrls:u=["https://manage.authhero.net","https://local.authhero.net","https://localhost:5173","https://localhost:3000"],debug:d=!0}=t,f=t.audience||(a?"urn:authhero:management":`urn:authhero:tenant:${i}`);await e.tenants.get(i)?d&&console.log(`Tenant "${i}" already exists, skipping...`):(d&&console.log(`Creating tenant "${i}"...`),await e.tenants.create({id:i,friendly_name:s,audience:f,sender_email:"noreply@example.com",sender_name:"AuthHero"}),a&&await e.tenants.update(i,{allow_organization_name_in_authentication_api:!0,flags:{inherit_global_permissions_in_organizations:!0}}),d&&console.log("✅ Tenant created"));const{signingKeys:h}=await e.keys.list({q:"type:jwt_signing"});if(h.length===0){d&&console.log("Creating signing key...");const ae=await Yl({name:`CN=${i}`});await e.keys.create(ae),d&&console.log("✅ Signing key created")}else d&&console.log("Signing key already exists, skipping...");const _=await e.users.list(i,{q:`username:${n}`});let g;if(_.users.length===0){d&&console.log(`Creating admin user "${n}"...`);const{hash:ae,algorithm:ve}=await oa(r);g=`${Te}|${Ni()}`,await e.users.create(i,{user_id:g,username:n,email_verified:!1,connection:"Username-Password-Authentication",provider:Te,password:{hash:ae,algorithm:ve}}),d&&(console.log("✅ Admin user created"),console.log(` Username: ${n}`))}else g=_.users[0].user_id,d&&console.log(`Admin user "${n}" already exists, skipping...`);(await e.connections.list(i)).connections.some(ae=>ae.name==="Username-Password-Authentication")?d&&console.log("Password connection already exists, skipping..."):(d&&console.log("Creating password connection..."),await e.connections.create(i,{name:"Username-Password-Authentication",strategy:"Username-Password-Authentication",options:{attributes:{username:{identifier:{active:!0}},email:{identifier:{active:!1}}}}}),d&&console.log("✅ Password connection created"));const w=await e.clients.get(i,c);let k;w?(k=w.client_secret||"",d&&console.log("Default client already exists, skipping...")):(d&&console.log("Creating default client..."),k=Oe(),await e.clients.create(i,{client_id:c,client_secret:k,name:"Default Application",callbacks:l,allowed_logout_urls:u,connections:["Username-Password-Authentication"],client_metadata:{universal_login_version:"2"}}),d&&(console.log("✅ Default client created"),console.log(` Client ID: ${c}`),console.log(` Callback URLs: ${l.join(", ")}`),console.log(` Allowed Logout URLs: ${u.join(", ")}`)));const S="urn:authhero:management";(await e.resourceServers.list(i,{})).resource_servers.some(ae=>ae.identifier===S)?d&&console.log("Management API resource server already exists, skipping..."):(d&&console.log("Creating Management API resource server..."),await e.resourceServers.create(i,{name:"Authhero Management API",identifier:S,allow_offline_access:!0,skip_consent_for_verifiable_first_party_clients:!1,token_lifetime:86400,token_lifetime_for_web:7200,signing_alg:"RS256",scopes:Ps,options:{enforce_policies:!0,token_dialect:"access_token_authz"}}),d&&(console.log("✅ Management API resource server created"),console.log(` Identifier: ${S}`),console.log(` Scopes: ${Ps.length} permissions`)));const{organizations:A}=await e.organizations.list(i,{q:`name:${i}`});let E=A[0];E?d&&console.log(`Organization "${i}" already exists, skipping...`):(d&&console.log(`Creating organization "${i}"...`),E=await e.organizations.create(i,{id:`org_${Oe()}`,name:i,display_name:s}),d&&console.log("✅ Organization created"));const P="Tenant Admin";let C=(await e.roles.list(i,{})).roles.find(ae=>ae.name===P);if(C)d&&console.log(`Admin role "${P}" already exists, skipping...`);else{d&&console.log(`Creating admin role "${P}"...`),C=await e.roles.create(i,{name:P,description:"Full access to tenant management operations"});const ae=Ps.map(ve=>({role_id:C.id,resource_server_identifier:S,permission_name:ve.value}));await e.rolePermissions.assign(i,C.id,ae),d&&console.log(`✅ Admin role created with ${Ps.length} permissions`)}return(await e.userOrganizations.listUserOrganizations(i,g,{})).organizations.some(ae=>ae.id===E.id)?d&&console.log("Admin user already in organization, skipping..."):(d&&console.log(`Adding admin user to organization "${E.name}"...`),await e.userOrganizations.create(i,{user_id:g,organization_id:E.id}),d&&console.log("✅ Admin user added to organization")),(await e.userRoles.list(i,g,void 0,E.id)).some(ae=>ae.id===C.id)?d&&console.log("Admin user already has admin role, skipping..."):(d&&console.log(`Assigning admin role to user in organization "${E.name}"...`),await e.userRoles.create(i,g,C.id,E.id),d&&console.log("✅ Admin role assigned to user")),(await e.userRoles.list(i,g,void 0,"")).some(ae=>ae.id===C.id)?d&&console.log("Admin user already has global admin role, skipping..."):(d&&console.log("Assigning global admin role to user..."),await e.userRoles.create(i,g,C.id,""),d&&console.log("✅ Global admin role assigned to user")),d&&console.log(`
|
|
441
|
-
🎉 Seeding complete!`),{tenantId:i,userId:g,username:n,clientId:c,clientSecret:k}}async function FIe(e,t,n={}){const{cursorField:r="id",sortOrder:i="asc",pageSize:s=100,maxItems:a=1e4,q:c}=n,l=[];let u,d=!0;for(;d;){let f=c||"";if(u){const y=`${r}:${i==="asc"?">":"<"}${u}`;f=f?`(${f}) AND ${y}`:y}const p={per_page:s,page:0,sort:{sort_by:r,sort_order:i},...f&&{q:f}},_=(await e(p))[t]||[];if(_.length===0)d=!1;else{l.push(..._);const g=_[_.length-1];if(g&&typeof g=="object"){const y=g[r];y!=null&&(u=String(y))}_.length<s&&(d=!1),a!==-1&&l.length>=a&&(console.warn(`fetchAll: Reached maxItems limit (${a}). There may be more items.`),d=!1)}}return l}T.init({supportedLngs:["en","it","nb","sv","pl","cs","fi","da"],fallbackLng:"en",resources:{en:{translation:gge},it:{translation:A1e},nb:{translation:L2e},sv:{translation:G4e},pl:{translation:
|
|
441
|
+
🎉 Seeding complete!`),{tenantId:i,userId:g,username:n,clientId:c,clientSecret:k}}async function FIe(e,t,n={}){const{cursorField:r="id",sortOrder:i="asc",pageSize:s=100,maxItems:a=1e4,q:c}=n,l=[];let u,d=!0;for(;d;){let f=c||"";if(u){const y=`${r}:${i==="asc"?">":"<"}${u}`;f=f?`(${f}) AND ${y}`:y}const p={per_page:s,page:0,sort:{sort_by:r,sort_order:i},...f&&{q:f}},_=(await e(p))[t]||[];if(_.length===0)d=!1;else{l.push(..._);const g=_[_.length-1];if(g&&typeof g=="object"){const y=g[r];y!=null&&(u=String(y))}_.length<s&&(d=!1),a!==-1&&l.length>=a&&(console.warn(`fetchAll: Reached maxItems limit (${a}). There may be more items.`),d=!1)}}return l}T.init({supportedLngs:["en","it","nb","sv","pl","cs","fi","da"],fallbackLng:"en",resources:{en:{translation:gge},it:{translation:A1e},nb:{translation:L2e},sv:{translation:G4e},pl:{translation:r$e},cs:{translation:fze},fi:{translation:$Ee},da:{translation:TIe}}});function HIe(e){const t=new o.OpenAPIHono;t.onError((c,l)=>c instanceof I?c.getResponse():(console.error(c),l.json({message:"Internal Server Error"},500))),t.use("*",async(c,l)=>{e.hooks&&(c.env.hooks={...e.hooks,...c.env.hooks||{}}),e.samlSigner&&(c.env.samlSigner=e.samlSigner),e.poweredByLogo&&(c.env.poweredByLogo=e.poweredByLogo),e.webhookInvoker&&(c.env.webhookInvoker=e.webhookInvoker),await l()}),t.get("/",c=>c.json({name:"authhero"}));const n=dN(e);t.route("/api/v2",n);const r=sL(e);t.route("/u",r);const i=Lfe(e);t.route("/u2",i);const s=ohe(e);t.route("/samlp",s);const a=sO(e);return t.route("/",a),{app:t,managementApp:n,oauthApp:a,samlApp:s,universalApp:r,u2App:i,createX509Certificate:Yl}}exports.AppLogo=H_;exports.Auth0ActionEnum=qS;exports.Auth0Client=ow;exports.AuthLayout=OIe;exports.AuthorizationResponseMode=pn;exports.AuthorizationResponseType=at;exports.Button=He;exports.ButtonUI=aS;exports.CardContent=oS;exports.CardDescription=iS;exports.CardFooter=RIe;exports.CardHeader=nS;exports.CardTitle=rS;exports.CardUI=tS;exports.CheckEmailPage=k4;exports.CodeChallengeMethod=pu;exports.ComponentCategory=ph;exports.ComponentType=dh;exports.EmailActionEnum=FS;exports.EmailValidatedPage=x4;exports.EnterCodePage=th;exports.EnterPasswordPage=qc;exports.ErrorMessage=Jt;exports.FORM_FIELD_TYPES=gh;exports.FlowActionTypeEnum=MS;exports.Footer=c4;exports.ForgotPasswordPage=v4;exports.ForgotPasswordSentPage=w4;exports.FormComponent=yn;exports.GoBack=Kt;exports.GoogleLogo=DIe;exports.GrantType=an;exports.HttpSamlSigner=Gw;exports.Icon=Ze;exports.IdentifierForm=LIe;exports.IdentifierPage=js;exports.InputUI=sS;exports.InvalidSession=S4;exports.LabelUI=cS;exports.Layout=Ve;exports.LocationInfo=sw;exports.LogTypes=pe;exports.LoginSessionState=We;exports.MANAGEMENT_API_AUDIENCE=Ej;exports.MANAGEMENT_API_SCOPES=Ps;exports.Message=Gt;exports.NodeType=Nv;exports.PreSignUpConfirmationPage=z4;exports.PreSignUpPage=$4;exports.RedirectTargetEnum=wv;exports.ResetPasswordPage=Qi;exports.SignUpPage=Yr;exports.SocialButton=u4;exports.Spinner=l4;exports.Trans=Uo;exports.USERNAME_PASSWORD_PROVIDER=Te;exports.UnverifiedEmailPage=b4;exports.UserNotFoundPage=UIe;exports.VippsLogo=BIe;exports.actionNodeSchema=Ov;exports.activeUsersResponseSchema=Xx;exports.addEntityHooks=Ok;exports.addressSchema=xv;exports.auth0FlowInsertSchema=JS;exports.auth0FlowSchema=Bv;exports.auth0QuerySchema=HS;exports.auth0UpdateUserActionSchema=bv;exports.auth0UserResponseSchema=Sn;exports.authParamsSchema=Xs;exports.baseUserSchema=uu;exports.blockComponentSchema=Vv;exports.bordersSchema=dw;exports.brandingSchema=Ec;exports.buttonComponentSchema=Av;exports.cleanupUserSessions=MIe;exports.clientGrantInsertSchema=Yc;exports.clientGrantListSchema=WS;exports.clientGrantSchema=ni;exports.clientInfoMiddleware=rs;exports.clientInsertSchema=Xc;exports.clientSchema=ti;exports.codeInsertSchema=qv;exports.codeSchema=ZS;exports.codeTypeSchema=Mv;exports.colorsSchema=pw;exports.componentMessageSchema=Jv;exports.componentSchema=jv;exports.connectionInsertSchema=Qc;exports.connectionOptionsSchema=Fv;exports.connectionSchema=_r;exports.coordinatesSchema=Ii;exports.createAuthMiddleware=kd;exports.createInMemoryCache=is;exports.createPassthroughAdapter=ez;exports.createWriteOnlyAdapter=tz;exports.customDomainInsertSchema=fh;exports.customDomainSchema=fr;exports.customDomainWithTenantIdSchema=XS;exports.customTextEntrySchema=Yx;exports.customTextSchema=oo;exports.dailyStatsSchema=Nw;exports.emailProviderSchema=Ic;exports.emailVerificationRulesSchema=yv;exports.emailVerifyActionSchema=vv;exports.endingSchema=Uv;exports.fetchAll=FIe;exports.fieldComponentSchema=Gv;exports.flowActionStepSchema=$v;exports.flowInsertSchema=Wc;exports.flowSchema=to;exports.flowsFieldComponentSchema=Cv;exports.flowsFlowNodeSchema=Pv;exports.flowsStepNodeSchema=Tv;exports.fontDetailsSchema=Xr;exports.fontsSchema=fw;exports.formControlSchema=xx;exports.formInsertSchema=el;exports.formNodeComponentDefinition=mh;exports.formNodeSchema=Wv;exports.formSchema=no;exports.genericComponentSchema=Iv;exports.genericNodeSchema=Rv;exports.getConnectionIdentifierConfig=ji;exports.hookInsertSchema=af;exports.hookSchema=ro;exports.hookTemplateId=yh;exports.hookTemplates=Tx;exports.identitySchema=Jc;exports.init=HIe;exports.injectTailwindCSS=kR;exports.inviteInsertSchema=bh;exports.inviteSchema=Ds;exports.inviteeSchema=tw;exports.inviterSchema=ew;exports.isBlockComponent=Ix;exports.isFieldComponent=Nx;exports.isWidgetComponent=jx;exports.jwksKeySchema=nw;exports.jwksSchema=vh;exports.legalComponentSchema=Ev;exports.logInsertSchema=aw;exports.logSchema=tl;exports.loginSessionInsertSchema=iw;exports.loginSessionSchema=Bx;exports.loginSessionStateSchema=rw;exports.nodeSchema=Lv;exports.openIDConfigurationSchema=cf;exports.organizationBrandingSchema=Ew;exports.organizationEnabledConnectionSchema=Cw;exports.organizationInsertSchema=sl;exports.organizationSchema=mr;exports.organizationTokenQuotaSchema=Iw;exports.pageBackgroundSchema=hw;exports.parseUserId=Qx;exports.passwordInsertSchema=cw;exports.passwordSchema=qx;exports.preDefinedHooks=h9;exports.profileDataSchema=Sv;exports.promptScreenSchema=io;exports.promptSettingSchema=lo;exports.redirectActionSchema=kv;exports.refreshTokenInsertSchema=$h;exports.refreshTokenSchema=Fx;exports.resourceServerInsertSchema=rl;exports.resourceServerListSchema=Kx;exports.resourceServerOptionsSchema=yw;exports.resourceServerSchema=ri;exports.resourceServerScopeSchema=gw;exports.richTextComponentSchema=zv;exports.roleInsertSchema=il;exports.roleListSchema=ol;exports.rolePermissionInsertSchema=bw;exports.rolePermissionListSchema=ww;exports.rolePermissionSchema=vw;exports.roleSchema=ii;exports.screenLinkSchema=Zv;exports.seed=qIe;exports.sessionInsertSchema=uw;exports.sessionSchema=fu;exports.signingKeySchema=lf;exports.smsProviderSchema=Vx;exports.smsSendParamsSchema=Hx;exports.startSchema=Dv;exports.tailwindCss=G_;exports.tenantInsertSchema=wh;exports.tenantMiddleware=ns;exports.tenantSchema=nl;exports.tenantSettingsSchema=Zx;exports.themeInsertSchema=mw;exports.themeSchema=Cc;exports.tokenResponseSchema=kh;exports.totalsSchema=jt;exports.uiScreenSchema=Cx;exports.userInsertSchema=Zc;exports.userOrganizationInsertSchema=jw;exports.userOrganizationSchema=Jx;exports.userPermissionInsertSchema=kw;exports.userPermissionListSchema=Gx;exports.userPermissionSchema=$w;exports.userPermissionWithDetailsListSchema=xw;exports.userPermissionWithDetailsSchema=Sw;exports.userResponseSchema=VS;exports.userRoleInsertSchema=zw;exports.userRoleListSchema=Wx;exports.userRoleSchema=Aw;exports.userSchema=uh;exports.verificationMethodsSchema=Hv;exports.waitUntil=Rw;exports.widgetComponentSchema=Kv;exports.widgetSchema=_w;
|