diff --git a/.env b/.env new file mode 100644 index 0000000..cf4c6df --- /dev/null +++ b/.env @@ -0,0 +1,7 @@ +PORT = 5000 + +DB_URL = mongodb+srv://aniketsingh2704:lFMzlwdk4fFIE4IX@chat-app-cluster.h8genz4.mongodb.net/chat-app-db + +JWT_SECRET = eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9/g3gg34hg3h4j + +NODE_ENV= development \ No newline at end of file diff --git a/.gitignore b/.gitignore index d7de12f..3c3629e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,26 +1 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - node_modules -dist -dist-ssr -*.local - -.env - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/LICENSE b/LICENSE deleted file mode 100644 index f744acd..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 Burak - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md index 1753b0a..50688c0 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,4 @@ -# MERN Stack Project: Build and Deploy a Real Time Chat App | JWT, Socket.io -![Demo App](https://i.ibb.co/fXmZdnz/Screenshot-10.png) - -[Video Tutorial on Youtube](https://youtu.be/HwCqsOis894) - -Some Features: - -- 🌟 Tech stack: MERN + Socket.io + TailwindCSS + Daisy UI -- 🎃 Authentication && Authorization with JWT -- 👾 Real-time messaging with Socket.io -- 🚀 Online user status (Socket.io and React Context) -- 👌 Global state management with Zustand -- 🐞 Error handling both on the server and on the client -- ⭐ At the end Deployment like a pro for FREE! -- ⏳ And much more! ### Setup .env file diff --git a/backend/db/connectToMongoDB.js b/backend/db/connectToMongoDB.js index 05956aa..aca2b24 100644 --- a/backend/db/connectToMongoDB.js +++ b/backend/db/connectToMongoDB.js @@ -1,12 +1,17 @@ import mongoose from "mongoose"; - +const url = + "mongodb+srv://aniketsingh2704:lFMzlwdk4fFIE4IX@chat-app-cluster.h8genz4.mongodb.net/chat-app-db"; const connectToMongoDB = async () => { - try { - await mongoose.connect(process.env.MONGO_DB_URI); - console.log("Connected to MongoDB"); - } catch (error) { - console.log("Error connecting to MongoDB", error.message); - } + try { + await mongoose.connect(url, { + useNewUrlParser: true, + useUnifiedTopology: true, + // Other options if needed + }); + console.log("Connected to MongoDB"); + } catch (error) { + console.log("Error connecting to MongoDB", error.message); + } }; export default connectToMongoDB; diff --git a/backend/server.js b/backend/server.js index f8f7764..5a10b8b 100644 --- a/backend/server.js +++ b/backend/server.js @@ -13,10 +13,9 @@ import { app, server } from "./socket/socket.js"; dotenv.config(); const __dirname = path.resolve(); -// PORT should be assigned after calling dotenv.config() because we need to access the env variables. Didn't realize while recording the video. Sorry for the confusion. const PORT = process.env.PORT || 5000; -app.use(express.json()); // to parse the incoming requests with JSON payloads (from req.body) +app.use(express.json()); app.use(cookieParser()); app.use("/api/auth", authRoutes); diff --git a/backend/socket/socket.js b/backend/socket/socket.js index a2bb0b4..d0ff6e3 100644 --- a/backend/socket/socket.js +++ b/backend/socket/socket.js @@ -6,10 +6,10 @@ const app = express(); const server = http.createServer(app); const io = new Server(server, { - cors: { - origin: ["http://localhost:3000"], - methods: ["GET", "POST"], - }, + cors: { + origin: ["https://major-project-c61o.onrender.com"], + methods: ["GET", "POST"], + }, }); export const getReceiverSocketId = (receiverId) => { diff --git a/backend/utils/generateToken.js b/backend/utils/generateToken.js index e666ff2..4977714 100644 --- a/backend/utils/generateToken.js +++ b/backend/utils/generateToken.js @@ -8,7 +8,7 @@ const generateTokenAndSetCookie = (userId, res) => { res.cookie("jwt", token, { maxAge: 15 * 24 * 60 * 60 * 1000, // MS httpOnly: true, // prevent XSS attacks cross-site scripting attacks - sameSite: "strict", // CSRF attacks cross-site request forgery attacks + sameSite: "strict", secure: process.env.NODE_ENV !== "development", }); }; diff --git a/frontend/README.md b/frontend/README.md deleted file mode 100644 index f768e33..0000000 --- a/frontend/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# React + Vite - -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. - -Currently, two official plugins are available: - -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh diff --git a/frontend/dist/assets/index-Ihe5_0Jv.js b/frontend/dist/assets/index-Ihe5_0Jv.js new file mode 100644 index 0000000..838c14f --- /dev/null +++ b/frontend/dist/assets/index-Ihe5_0Jv.js @@ -0,0 +1,311 @@ +function Sh(t,e){for(var n=0;ni[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=n(r);fetch(r.href,s)}})();function Jp(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function kh(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var n=function i(){return this instanceof i?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(i){var r=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(n,i,r.get?r:{enumerable:!0,get:function(){return t[i]}})}),n}var Yp={exports:{}},ms={},Zp={exports:{}},I={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var $i=Symbol.for("react.element"),Ch=Symbol.for("react.portal"),bh=Symbol.for("react.fragment"),Th=Symbol.for("react.strict_mode"),Nh=Symbol.for("react.profiler"),Ah=Symbol.for("react.provider"),jh=Symbol.for("react.context"),Ph=Symbol.for("react.forward_ref"),Oh=Symbol.for("react.suspense"),Lh=Symbol.for("react.memo"),Rh=Symbol.for("react.lazy"),Ql=Symbol.iterator;function Ih(t){return t===null||typeof t!="object"?null:(t=Ql&&t[Ql]||t["@@iterator"],typeof t=="function"?t:null)}var eu={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},tu=Object.assign,nu={};function $n(t,e,n){this.props=t,this.context=e,this.refs=nu,this.updater=n||eu}$n.prototype.isReactComponent={};$n.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};$n.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function iu(){}iu.prototype=$n.prototype;function Ma(t,e,n){this.props=t,this.context=e,this.refs=nu,this.updater=n||eu}var za=Ma.prototype=new iu;za.constructor=Ma;tu(za,$n.prototype);za.isPureReactComponent=!0;var Kl=Array.isArray,ru=Object.prototype.hasOwnProperty,Ba={current:null},su={key:!0,ref:!0,__self:!0,__source:!0};function ou(t,e,n){var i,r={},s=null,o=null;if(e!=null)for(i in e.ref!==void 0&&(o=e.ref),e.key!==void 0&&(s=""+e.key),e)ru.call(e,i)&&!su.hasOwnProperty(i)&&(r[i]=e[i]);var a=arguments.length-2;if(a===1)r.children=n;else if(1>>1,te=A[Q];if(0>>1;Qr(Ds,L))Vtr(Xi,Ds)?(A[Q]=Xi,A[Vt]=L,Q=Vt):(A[Q]=Ds,A[qt]=L,Q=qt);else if(Vtr(Xi,L))A[Q]=Xi,A[Vt]=L,Q=Vt;else break e}}return O}function r(A,O){var L=A.sortIndex-O.sortIndex;return L!==0?L:A.id-O.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;t.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();t.unstable_now=function(){return o.now()-a}}var l=[],c=[],p=1,d=null,u=3,g=!1,x=!1,_=!1,v=typeof setTimeout=="function"?setTimeout:null,h=typeof clearTimeout=="function"?clearTimeout:null,f=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function m(A){for(var O=n(c);O!==null;){if(O.callback===null)i(c);else if(O.startTime<=A)i(c),O.sortIndex=O.expirationTime,e(l,O);else break;O=n(c)}}function y(A){if(_=!1,m(A),!x)if(n(l)!==null)x=!0,Bs(E);else{var O=n(c);O!==null&&Us(y,O.startTime-A)}}function E(A,O){x=!1,_&&(_=!1,h(T),T=-1),g=!0;var L=u;try{for(m(O),d=n(l);d!==null&&(!(d.expirationTime>O)||A&&!Y());){var Q=d.callback;if(typeof Q=="function"){d.callback=null,u=d.priorityLevel;var te=Q(d.expirationTime<=O);O=t.unstable_now(),typeof te=="function"?d.callback=te:d===n(l)&&i(l),m(O)}else i(l);d=n(l)}if(d!==null)var Gi=!0;else{var qt=n(c);qt!==null&&Us(y,qt.startTime-O),Gi=!1}return Gi}finally{d=null,u=L,g=!1}}var C=!1,k=null,T=-1,R=5,P=-1;function Y(){return!(t.unstable_now()-PA||125Q?(A.sortIndex=L,e(c,A),n(l)===null&&A===n(c)&&(_?(h(T),T=-1):_=!0,Us(y,L-Q))):(A.sortIndex=te,e(l,A),x||g||(x=!0,Bs(E))),A},t.unstable_shouldYield=Y,t.unstable_wrapCallback=function(A){var O=u;return function(){var L=u;u=O;try{return A.apply(this,arguments)}finally{u=L}}}})(pu);cu.exports=pu;var Qh=cu.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var uu=S,Ce=Qh;function b(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ao=Object.prototype.hasOwnProperty,Kh=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Xl={},Jl={};function Gh(t){return Ao.call(Jl,t)?!0:Ao.call(Xl,t)?!1:Kh.test(t)?Jl[t]=!0:(Xl[t]=!0,!1)}function Xh(t,e,n,i){if(n!==null&&n.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return i?!1:n!==null?!n.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function Jh(t,e,n,i){if(e===null||typeof e>"u"||Xh(t,e,n,i))return!0;if(i)return!1;if(n!==null)switch(n.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function he(t,e,n,i,r,s,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=i,this.attributeNamespace=r,this.mustUseProperty=n,this.propertyName=t,this.type=e,this.sanitizeURL=s,this.removeEmptyString=o}var oe={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){oe[t]=new he(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var e=t[0];oe[e]=new he(e,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){oe[t]=new he(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){oe[t]=new he(t,2,!1,t,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){oe[t]=new he(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){oe[t]=new he(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){oe[t]=new he(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){oe[t]=new he(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){oe[t]=new he(t,5,!1,t.toLowerCase(),null,!1,!1)});var Da=/[\-:]([a-z])/g;function $a(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var e=t.replace(Da,$a);oe[e]=new he(e,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var e=t.replace(Da,$a);oe[e]=new he(e,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var e=t.replace(Da,$a);oe[e]=new he(e,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){oe[t]=new he(t,1,!1,t.toLowerCase(),null,!1,!1)});oe.xlinkHref=new he("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){oe[t]=new he(t,1,!1,t.toLowerCase(),null,!0,!0)});function Ha(t,e,n,i){var r=oe.hasOwnProperty(e)?oe[e]:null;(r!==null?r.type!==0:i||!(2a||r[o]!==s[a]){var l=` +`+r[o].replace(" at new "," at ");return t.displayName&&l.includes("")&&(l=l.replace("",t.displayName)),l}while(1<=o&&0<=a);break}}}finally{Fs=!1,Error.prepareStackTrace=n}return(t=t?t.displayName||t.name:"")?oi(t):""}function Yh(t){switch(t.tag){case 5:return oi(t.type);case 16:return oi("Lazy");case 13:return oi("Suspense");case 19:return oi("SuspenseList");case 0:case 2:case 15:return t=qs(t.type,!1),t;case 11:return t=qs(t.type.render,!1),t;case 1:return t=qs(t.type,!0),t;default:return""}}function Lo(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case mn:return"Fragment";case hn:return"Portal";case jo:return"Profiler";case Fa:return"StrictMode";case Po:return"Suspense";case Oo:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case hu:return(t.displayName||"Context")+".Consumer";case fu:return(t._context.displayName||"Context")+".Provider";case qa:var e=t.render;return t=t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case Va:return e=t.displayName||null,e!==null?e:Lo(t.type)||"Memo";case gt:e=t._payload,t=t._init;try{return Lo(t(e))}catch{}}return null}function Zh(t){var e=t.type;switch(t.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=e.render,t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Lo(e);case 8:return e===Fa?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function Rt(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function gu(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function em(t){var e=gu(t)?"checked":"value",n=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),i=""+t[e];if(!t.hasOwnProperty(e)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var r=n.get,s=n.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return r.call(this)},set:function(o){i=""+o,s.call(this,o)}}),Object.defineProperty(t,e,{enumerable:n.enumerable}),{getValue:function(){return i},setValue:function(o){i=""+o},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function Zi(t){t._valueTracker||(t._valueTracker=em(t))}function vu(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var n=e.getValue(),i="";return t&&(i=gu(t)?t.checked?"true":"false":t.value),t=i,t!==n?(e.setValue(t),!0):!1}function Dr(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function Ro(t,e){var n=e.checked;return V({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??t._wrapperState.initialChecked})}function Zl(t,e){var n=e.defaultValue==null?"":e.defaultValue,i=e.checked!=null?e.checked:e.defaultChecked;n=Rt(e.value!=null?e.value:n),t._wrapperState={initialChecked:i,initialValue:n,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function xu(t,e){e=e.checked,e!=null&&Ha(t,"checked",e,!1)}function Io(t,e){xu(t,e);var n=Rt(e.value),i=e.type;if(n!=null)i==="number"?(n===0&&t.value===""||t.value!=n)&&(t.value=""+n):t.value!==""+n&&(t.value=""+n);else if(i==="submit"||i==="reset"){t.removeAttribute("value");return}e.hasOwnProperty("value")?Mo(t,e.type,n):e.hasOwnProperty("defaultValue")&&Mo(t,e.type,Rt(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(t.defaultChecked=!!e.defaultChecked)}function ec(t,e,n){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var i=e.type;if(!(i!=="submit"&&i!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+t._wrapperState.initialValue,n||e===t.value||(t.value=e),t.defaultValue=e}n=t.name,n!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,n!==""&&(t.name=n)}function Mo(t,e,n){(e!=="number"||Dr(t.ownerDocument)!==t)&&(n==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+n&&(t.defaultValue=""+n))}var ai=Array.isArray;function bn(t,e,n,i){if(t=t.options,e){e={};for(var r=0;r"+e.valueOf().toString()+"",e=er.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;e.firstChild;)t.appendChild(e.firstChild)}});function Ei(t,e){if(e){var n=t.firstChild;if(n&&n===t.lastChild&&n.nodeType===3){n.nodeValue=e;return}}t.textContent=e}var di={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},tm=["Webkit","ms","Moz","O"];Object.keys(di).forEach(function(t){tm.forEach(function(e){e=e+t.charAt(0).toUpperCase()+t.substring(1),di[e]=di[t]})});function Eu(t,e,n){return e==null||typeof e=="boolean"||e===""?"":n||typeof e!="number"||e===0||di.hasOwnProperty(t)&&di[t]?(""+e).trim():e+"px"}function Su(t,e){t=t.style;for(var n in e)if(e.hasOwnProperty(n)){var i=n.indexOf("--")===0,r=Eu(n,e[n],i);n==="float"&&(n="cssFloat"),i?t.setProperty(n,r):t[n]=r}}var nm=V({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Uo(t,e){if(e){if(nm[t]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(b(137,t));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(b(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(b(61))}if(e.style!=null&&typeof e.style!="object")throw Error(b(62))}}function Do(t,e){if(t.indexOf("-")===-1)return typeof e.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var $o=null;function Wa(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var Ho=null,Tn=null,Nn=null;function ic(t){if(t=qi(t)){if(typeof Ho!="function")throw Error(b(280));var e=t.stateNode;e&&(e=ws(e),Ho(t.stateNode,t.type,e))}}function ku(t){Tn?Nn?Nn.push(t):Nn=[t]:Tn=t}function Cu(){if(Tn){var t=Tn,e=Nn;if(Nn=Tn=null,ic(t),e)for(t=0;t>>=0,t===0?32:31-(fm(t)/hm|0)|0}var tr=64,nr=4194304;function li(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function qr(t,e){var n=t.pendingLanes;if(n===0)return 0;var i=0,r=t.suspendedLanes,s=t.pingedLanes,o=n&268435455;if(o!==0){var a=o&~r;a!==0?i=li(a):(s&=o,s!==0&&(i=li(s)))}else o=n&~r,o!==0?i=li(o):s!==0&&(i=li(s));if(i===0)return 0;if(e!==0&&e!==i&&!(e&r)&&(r=i&-i,s=e&-e,r>=s||r===16&&(s&4194240)!==0))return e;if(i&4&&(i|=n&16),e=t.entangledLanes,e!==0)for(t=t.entanglements,e&=i;0n;n++)e.push(t);return e}function Hi(t,e,n){t.pendingLanes|=e,e!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,e=31-He(e),t[e]=n}function xm(t,e){var n=t.pendingLanes&~e;t.pendingLanes=e,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=e,t.mutableReadLanes&=e,t.entangledLanes&=e,e=t.entanglements;var i=t.eventTimes;for(t=t.expirationTimes;0=hi),dc=" ",fc=!1;function Vu(t,e){switch(t){case"keyup":return Wm.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Wu(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var gn=!1;function Km(t,e){switch(t){case"compositionend":return Wu(e);case"keypress":return e.which!==32?null:(fc=!0,dc);case"textInput":return t=e.data,t===dc&&fc?null:t;default:return null}}function Gm(t,e){if(gn)return t==="compositionend"||!el&&Vu(t,e)?(t=Fu(),Er=Ja=Et=null,gn=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=i}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=vc(n)}}function Xu(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?Xu(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function Ju(){for(var t=window,e=Dr();e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=Dr(t.document)}return e}function tl(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}function rg(t){var e=Ju(),n=t.focusedElem,i=t.selectionRange;if(e!==n&&n&&n.ownerDocument&&Xu(n.ownerDocument.documentElement,n)){if(i!==null&&tl(n)){if(e=i.start,t=i.end,t===void 0&&(t=e),"selectionStart"in n)n.selectionStart=e,n.selectionEnd=Math.min(t,n.value.length);else if(t=(e=n.ownerDocument||document)&&e.defaultView||window,t.getSelection){t=t.getSelection();var r=n.textContent.length,s=Math.min(i.start,r);i=i.end===void 0?s:Math.min(i.end,r),!t.extend&&s>i&&(r=i,i=s,s=r),r=xc(n,s);var o=xc(n,i);r&&o&&(t.rangeCount!==1||t.anchorNode!==r.node||t.anchorOffset!==r.offset||t.focusNode!==o.node||t.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(r.node,r.offset),t.removeAllRanges(),s>i?(t.addRange(e),t.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),t.addRange(e)))}}for(e=[],t=n;t=t.parentNode;)t.nodeType===1&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,vn=null,Ko=null,gi=null,Go=!1;function yc(t,e,n){var i=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Go||vn==null||vn!==Dr(i)||(i=vn,"selectionStart"in i&&tl(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),gi&&Ni(gi,i)||(gi=i,i=Qr(Ko,"onSelect"),0wn||(t.current=ta[wn],ta[wn]=null,wn--)}function U(t,e){wn++,ta[wn]=t.current,t.current=e}var It={},pe=zt(It),ve=zt(!1),Zt=It;function Rn(t,e){var n=t.type.contextTypes;if(!n)return It;var i=t.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===e)return i.__reactInternalMemoizedMaskedChildContext;var r={},s;for(s in n)r[s]=e[s];return i&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=e,t.__reactInternalMemoizedMaskedChildContext=r),r}function xe(t){return t=t.childContextTypes,t!=null}function Gr(){$(ve),$(pe)}function bc(t,e,n){if(pe.current!==It)throw Error(b(168));U(pe,e),U(ve,n)}function od(t,e,n){var i=t.stateNode;if(e=e.childContextTypes,typeof i.getChildContext!="function")return n;i=i.getChildContext();for(var r in i)if(!(r in e))throw Error(b(108,Zh(t)||"Unknown",r));return V({},n,i)}function Xr(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||It,Zt=pe.current,U(pe,t),U(ve,ve.current),!0}function Tc(t,e,n){var i=t.stateNode;if(!i)throw Error(b(169));n?(t=od(t,e,Zt),i.__reactInternalMemoizedMergedChildContext=t,$(ve),$(pe),U(pe,t)):$(ve),U(ve,n)}var rt=null,_s=!1,ro=!1;function ad(t){rt===null?rt=[t]:rt.push(t)}function gg(t){_s=!0,ad(t)}function Bt(){if(!ro&&rt!==null){ro=!0;var t=0,e=B;try{var n=rt;for(B=1;t>=o,r-=o,st=1<<32-He(e)+r|n<T?(R=k,k=null):R=k.sibling;var P=u(h,k,m[T],y);if(P===null){k===null&&(k=R);break}t&&k&&P.alternate===null&&e(h,k),f=s(P,f,T),C===null?E=P:C.sibling=P,C=P,k=R}if(T===m.length)return n(h,k),H&&Wt(h,T),E;if(k===null){for(;TT?(R=k,k=null):R=k.sibling;var Y=u(h,k,P.value,y);if(Y===null){k===null&&(k=R);break}t&&k&&Y.alternate===null&&e(h,k),f=s(Y,f,T),C===null?E=Y:C.sibling=Y,C=Y,k=R}if(P.done)return n(h,k),H&&Wt(h,T),E;if(k===null){for(;!P.done;T++,P=m.next())P=d(h,P.value,y),P!==null&&(f=s(P,f,T),C===null?E=P:C.sibling=P,C=P);return H&&Wt(h,T),E}for(k=i(h,k);!P.done;T++,P=m.next())P=g(k,h,T,P.value,y),P!==null&&(t&&P.alternate!==null&&k.delete(P.key===null?T:P.key),f=s(P,f,T),C===null?E=P:C.sibling=P,C=P);return t&&k.forEach(function(Ht){return e(h,Ht)}),H&&Wt(h,T),E}function v(h,f,m,y){if(typeof m=="object"&&m!==null&&m.type===mn&&m.key===null&&(m=m.props.children),typeof m=="object"&&m!==null){switch(m.$$typeof){case Yi:e:{for(var E=m.key,C=f;C!==null;){if(C.key===E){if(E=m.type,E===mn){if(C.tag===7){n(h,C.sibling),f=r(C,m.props.children),f.return=h,h=f;break e}}else if(C.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===gt&&Rc(E)===C.type){n(h,C.sibling),f=r(C,m.props),f.ref=Yn(h,C,m),f.return=h,h=f;break e}n(h,C);break}else e(h,C);C=C.sibling}m.type===mn?(f=Yt(m.props.children,h.mode,y,m.key),f.return=h,h=f):(y=jr(m.type,m.key,m.props,null,h.mode,y),y.ref=Yn(h,f,m),y.return=h,h=y)}return o(h);case hn:e:{for(C=m.key;f!==null;){if(f.key===C)if(f.tag===4&&f.stateNode.containerInfo===m.containerInfo&&f.stateNode.implementation===m.implementation){n(h,f.sibling),f=r(f,m.children||[]),f.return=h,h=f;break e}else{n(h,f);break}else e(h,f);f=f.sibling}f=fo(m,h.mode,y),f.return=h,h=f}return o(h);case gt:return C=m._init,v(h,f,C(m._payload),y)}if(ai(m))return x(h,f,m,y);if(Qn(m))return _(h,f,m,y);cr(h,m)}return typeof m=="string"&&m!==""||typeof m=="number"?(m=""+m,f!==null&&f.tag===6?(n(h,f.sibling),f=r(f,m),f.return=h,h=f):(n(h,f),f=uo(m,h.mode,y),f.return=h,h=f),o(h)):n(h,f)}return v}var Mn=md(!0),gd=md(!1),Vi={},Je=zt(Vi),Oi=zt(Vi),Li=zt(Vi);function Xt(t){if(t===Vi)throw Error(b(174));return t}function pl(t,e){switch(U(Li,e),U(Oi,t),U(Je,Vi),t=e.nodeType,t){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:Bo(null,"");break;default:t=t===8?e.parentNode:e,e=t.namespaceURI||null,t=t.tagName,e=Bo(e,t)}$(Je),U(Je,e)}function zn(){$(Je),$(Oi),$(Li)}function vd(t){Xt(Li.current);var e=Xt(Je.current),n=Bo(e,t.type);e!==n&&(U(Oi,t),U(Je,n))}function ul(t){Oi.current===t&&($(Je),$(Oi))}var F=zt(0);function ns(t){for(var e=t;e!==null;){if(e.tag===13){var n=e.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break;for(;e.sibling===null;){if(e.return===null||e.return===t)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var so=[];function dl(){for(var t=0;tn?n:4,t(!0);var i=oo.transition;oo.transition={};try{t(!1),e()}finally{B=n,oo.transition=i}}function Ld(){return Ie().memoizedState}function wg(t,e,n){var i=Pt(t);if(n={lane:i,action:n,hasEagerState:!1,eagerState:null,next:null},Rd(t))Id(e,n);else if(n=ud(t,e,n,i),n!==null){var r=de();Fe(n,t,i,r),Md(n,e,i)}}function _g(t,e,n){var i=Pt(t),r={lane:i,action:n,hasEagerState:!1,eagerState:null,next:null};if(Rd(t))Id(e,r);else{var s=t.alternate;if(t.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var o=e.lastRenderedState,a=s(o,n);if(r.hasEagerState=!0,r.eagerState=a,qe(a,o)){var l=e.interleaved;l===null?(r.next=r,ll(e)):(r.next=l.next,l.next=r),e.interleaved=r;return}}catch{}finally{}n=ud(t,e,r,i),n!==null&&(r=de(),Fe(n,t,i,r),Md(n,e,i))}}function Rd(t){var e=t.alternate;return t===q||e!==null&&e===q}function Id(t,e){vi=is=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function Md(t,e,n){if(n&4194240){var i=e.lanes;i&=t.pendingLanes,n|=i,e.lanes=n,Ka(t,n)}}var rs={readContext:Re,useCallback:ae,useContext:ae,useEffect:ae,useImperativeHandle:ae,useInsertionEffect:ae,useLayoutEffect:ae,useMemo:ae,useReducer:ae,useRef:ae,useState:ae,useDebugValue:ae,useDeferredValue:ae,useTransition:ae,useMutableSource:ae,useSyncExternalStore:ae,useId:ae,unstable_isNewReconciler:!1},Eg={readContext:Re,useCallback:function(t,e){return We().memoizedState=[t,e===void 0?null:e],t},useContext:Re,useEffect:Mc,useImperativeHandle:function(t,e,n){return n=n!=null?n.concat([t]):null,br(4194308,4,Nd.bind(null,e,t),n)},useLayoutEffect:function(t,e){return br(4194308,4,t,e)},useInsertionEffect:function(t,e){return br(4,2,t,e)},useMemo:function(t,e){var n=We();return e=e===void 0?null:e,t=t(),n.memoizedState=[t,e],t},useReducer:function(t,e,n){var i=We();return e=n!==void 0?n(e):e,i.memoizedState=i.baseState=e,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:e},i.queue=t,t=t.dispatch=wg.bind(null,q,t),[i.memoizedState,t]},useRef:function(t){var e=We();return t={current:t},e.memoizedState=t},useState:Ic,useDebugValue:vl,useDeferredValue:function(t){return We().memoizedState=t},useTransition:function(){var t=Ic(!1),e=t[0];return t=yg.bind(null,t[1]),We().memoizedState=t,[e,t]},useMutableSource:function(){},useSyncExternalStore:function(t,e,n){var i=q,r=We();if(H){if(n===void 0)throw Error(b(407));n=n()}else{if(n=e(),ie===null)throw Error(b(349));tn&30||wd(i,e,n)}r.memoizedState=n;var s={value:n,getSnapshot:e};return r.queue=s,Mc(Ed.bind(null,i,s,t),[t]),i.flags|=2048,Mi(9,_d.bind(null,i,s,n,e),void 0,null),n},useId:function(){var t=We(),e=ie.identifierPrefix;if(H){var n=ot,i=st;n=(i&~(1<<32-He(i)-1)).toString(32)+n,e=":"+e+"R"+n,n=Ri++,0<\/script>",t=t.removeChild(t.firstChild)):typeof i.is=="string"?t=o.createElement(n,{is:i.is}):(t=o.createElement(n),n==="select"&&(o=t,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):t=o.createElementNS(t,n),t[Qe]=e,t[Pi]=i,Vd(t,e,!1,!1),e.stateNode=t;e:{switch(o=Do(n,i),n){case"dialog":D("cancel",t),D("close",t),r=i;break;case"iframe":case"object":case"embed":D("load",t),r=i;break;case"video":case"audio":for(r=0;rUn&&(e.flags|=128,i=!0,Zn(s,!1),e.lanes=4194304)}else{if(!i)if(t=ns(o),t!==null){if(e.flags|=128,i=!0,n=t.updateQueue,n!==null&&(e.updateQueue=n,e.flags|=4),Zn(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!H)return le(e),null}else 2*K()-s.renderingStartTime>Un&&n!==1073741824&&(e.flags|=128,i=!0,Zn(s,!1),e.lanes=4194304);s.isBackwards?(o.sibling=e.child,e.child=o):(n=s.last,n!==null?n.sibling=o:e.child=o,s.last=o)}return s.tail!==null?(e=s.tail,s.rendering=e,s.tail=e.sibling,s.renderingStartTime=K(),e.sibling=null,n=F.current,U(F,i?n&1|2:n&1),e):(le(e),null);case 22:case 23:return Sl(),i=e.memoizedState!==null,t!==null&&t.memoizedState!==null!==i&&(e.flags|=8192),i&&e.mode&1?_e&1073741824&&(le(e),e.subtreeFlags&6&&(e.flags|=8192)):le(e),null;case 24:return null;case 25:return null}throw Error(b(156,e.tag))}function jg(t,e){switch(il(e),e.tag){case 1:return xe(e.type)&&Gr(),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return zn(),$(ve),$(pe),dl(),t=e.flags,t&65536&&!(t&128)?(e.flags=t&-65537|128,e):null;case 5:return ul(e),null;case 13:if($(F),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(b(340));In()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return $(F),null;case 4:return zn(),null;case 10:return al(e.type._context),null;case 22:case 23:return Sl(),null;case 24:return null;default:return null}}var ur=!1,ce=!1,Pg=typeof WeakSet=="function"?WeakSet:Set,N=null;function kn(t,e){var n=t.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(i){W(t,e,i)}else n.current=null}function fa(t,e,n){try{n()}catch(i){W(t,e,i)}}var Vc=!1;function Og(t,e){if(Xo=Vr,t=Ju(),tl(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else e:{n=(n=t.ownerDocument)&&n.defaultView||window;var i=n.getSelection&&n.getSelection();if(i&&i.rangeCount!==0){n=i.anchorNode;var r=i.anchorOffset,s=i.focusNode;i=i.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,a=-1,l=-1,c=0,p=0,d=t,u=null;t:for(;;){for(var g;d!==n||r!==0&&d.nodeType!==3||(a=o+r),d!==s||i!==0&&d.nodeType!==3||(l=o+i),d.nodeType===3&&(o+=d.nodeValue.length),(g=d.firstChild)!==null;)u=d,d=g;for(;;){if(d===t)break t;if(u===n&&++c===r&&(a=o),u===s&&++p===i&&(l=o),(g=d.nextSibling)!==null)break;d=u,u=d.parentNode}d=g}n=a===-1||l===-1?null:{start:a,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Jo={focusedElem:t,selectionRange:n},Vr=!1,N=e;N!==null;)if(e=N,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,N=t;else for(;N!==null;){e=N;try{var x=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(x!==null){var _=x.memoizedProps,v=x.memoizedState,h=e.stateNode,f=h.getSnapshotBeforeUpdate(e.elementType===e.type?_:Be(e.type,_),v);h.__reactInternalSnapshotBeforeUpdate=f}break;case 3:var m=e.stateNode.containerInfo;m.nodeType===1?m.textContent="":m.nodeType===9&&m.documentElement&&m.removeChild(m.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(b(163))}}catch(y){W(e,e.return,y)}if(t=e.sibling,t!==null){t.return=e.return,N=t;break}N=e.return}return x=Vc,Vc=!1,x}function xi(t,e,n){var i=e.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var r=i=i.next;do{if((r.tag&t)===t){var s=r.destroy;r.destroy=void 0,s!==void 0&&fa(e,n,s)}r=r.next}while(r!==i)}}function ks(t,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var n=e=e.next;do{if((n.tag&t)===t){var i=n.create;n.destroy=i()}n=n.next}while(n!==e)}}function ha(t){var e=t.ref;if(e!==null){var n=t.stateNode;switch(t.tag){case 5:t=n;break;default:t=n}typeof e=="function"?e(t):e.current=t}}function Kd(t){var e=t.alternate;e!==null&&(t.alternate=null,Kd(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&(delete e[Qe],delete e[Pi],delete e[ea],delete e[hg],delete e[mg])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function Gd(t){return t.tag===5||t.tag===3||t.tag===4}function Wc(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||Gd(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function ma(t,e,n){var i=t.tag;if(i===5||i===6)t=t.stateNode,e?n.nodeType===8?n.parentNode.insertBefore(t,e):n.insertBefore(t,e):(n.nodeType===8?(e=n.parentNode,e.insertBefore(t,n)):(e=n,e.appendChild(t)),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=Kr));else if(i!==4&&(t=t.child,t!==null))for(ma(t,e,n),t=t.sibling;t!==null;)ma(t,e,n),t=t.sibling}function ga(t,e,n){var i=t.tag;if(i===5||i===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(i!==4&&(t=t.child,t!==null))for(ga(t,e,n),t=t.sibling;t!==null;)ga(t,e,n),t=t.sibling}var re=null,Ue=!1;function mt(t,e,n){for(n=n.child;n!==null;)Xd(t,e,n),n=n.sibling}function Xd(t,e,n){if(Xe&&typeof Xe.onCommitFiberUnmount=="function")try{Xe.onCommitFiberUnmount(gs,n)}catch{}switch(n.tag){case 5:ce||kn(n,e);case 6:var i=re,r=Ue;re=null,mt(t,e,n),re=i,Ue=r,re!==null&&(Ue?(t=re,n=n.stateNode,t.nodeType===8?t.parentNode.removeChild(n):t.removeChild(n)):re.removeChild(n.stateNode));break;case 18:re!==null&&(Ue?(t=re,n=n.stateNode,t.nodeType===8?io(t.parentNode,n):t.nodeType===1&&io(t,n),bi(t)):io(re,n.stateNode));break;case 4:i=re,r=Ue,re=n.stateNode.containerInfo,Ue=!0,mt(t,e,n),re=i,Ue=r;break;case 0:case 11:case 14:case 15:if(!ce&&(i=n.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){r=i=i.next;do{var s=r,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&fa(n,e,o),r=r.next}while(r!==i)}mt(t,e,n);break;case 1:if(!ce&&(kn(n,e),i=n.stateNode,typeof i.componentWillUnmount=="function"))try{i.props=n.memoizedProps,i.state=n.memoizedState,i.componentWillUnmount()}catch(a){W(n,e,a)}mt(t,e,n);break;case 21:mt(t,e,n);break;case 22:n.mode&1?(ce=(i=ce)||n.memoizedState!==null,mt(t,e,n),ce=i):mt(t,e,n);break;default:mt(t,e,n)}}function Qc(t){var e=t.updateQueue;if(e!==null){t.updateQueue=null;var n=t.stateNode;n===null&&(n=t.stateNode=new Pg),e.forEach(function(i){var r=$g.bind(null,t,i);n.has(i)||(n.add(i),i.then(r,r))})}}function Me(t,e){var n=e.deletions;if(n!==null)for(var i=0;ir&&(r=o),i&=~s}if(i=r,i=K()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*Rg(i/1960))-i,10t?16:t,St===null)var i=!1;else{if(t=St,St=null,as=0,z&6)throw Error(b(331));var r=z;for(z|=4,N=t.current;N!==null;){var s=N,o=s.child;if(N.flags&16){var a=s.deletions;if(a!==null){for(var l=0;lK()-_l?Jt(t,0):wl|=n),ye(t,e)}function sf(t,e){e===0&&(t.mode&1?(e=nr,nr<<=1,!(nr&130023424)&&(nr=4194304)):e=1);var n=de();t=ut(t,e),t!==null&&(Hi(t,e,n),ye(t,n))}function Dg(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),sf(t,n)}function $g(t,e){var n=0;switch(t.tag){case 13:var i=t.stateNode,r=t.memoizedState;r!==null&&(n=r.retryLane);break;case 19:i=t.stateNode;break;default:throw Error(b(314))}i!==null&&i.delete(e),sf(t,n)}var of;of=function(t,e,n){if(t!==null)if(t.memoizedProps!==e.pendingProps||ve.current)ge=!0;else{if(!(t.lanes&n)&&!(e.flags&128))return ge=!1,Ng(t,e,n);ge=!!(t.flags&131072)}else ge=!1,H&&e.flags&1048576&&ld(e,Yr,e.index);switch(e.lanes=0,e.tag){case 2:var i=e.type;Tr(t,e),t=e.pendingProps;var r=Rn(e,pe.current);jn(e,n),r=hl(null,e,i,t,r,n);var s=ml();return e.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,xe(i)?(s=!0,Xr(e)):s=!1,e.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,cl(e),r.updater=Es,e.stateNode=r,r._reactInternals=e,oa(e,i,t,n),e=ca(null,e,i,!0,s,n)):(e.tag=0,H&&s&&nl(e),ue(null,e,r,n),e=e.child),e;case 16:i=e.elementType;e:{switch(Tr(t,e),t=e.pendingProps,r=i._init,i=r(i._payload),e.type=i,r=e.tag=Fg(i),t=Be(i,t),r){case 0:e=la(null,e,i,t,n);break e;case 1:e=Hc(null,e,i,t,n);break e;case 11:e=Dc(null,e,i,t,n);break e;case 14:e=$c(null,e,i,Be(i.type,t),n);break e}throw Error(b(306,i,""))}return e;case 0:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:Be(i,r),la(t,e,i,r,n);case 1:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:Be(i,r),Hc(t,e,i,r,n);case 3:e:{if(Hd(e),t===null)throw Error(b(387));i=e.pendingProps,s=e.memoizedState,r=s.element,dd(t,e),ts(e,i,null,n);var o=e.memoizedState;if(i=o.element,s.isDehydrated)if(s={element:i,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=s,e.memoizedState=s,e.flags&256){r=Bn(Error(b(423)),e),e=Fc(t,e,i,n,r);break e}else if(i!==r){r=Bn(Error(b(424)),e),e=Fc(t,e,i,n,r);break e}else for(Ee=Nt(e.stateNode.containerInfo.firstChild),ke=e,H=!0,$e=null,n=gd(e,null,i,n),e.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(In(),i===r){e=dt(t,e,n);break e}ue(t,e,i,n)}e=e.child}return e;case 5:return vd(e),t===null&&ia(e),i=e.type,r=e.pendingProps,s=t!==null?t.memoizedProps:null,o=r.children,Yo(i,r)?o=null:s!==null&&Yo(i,s)&&(e.flags|=32),$d(t,e),ue(t,e,o,n),e.child;case 6:return t===null&&ia(e),null;case 13:return Fd(t,e,n);case 4:return pl(e,e.stateNode.containerInfo),i=e.pendingProps,t===null?e.child=Mn(e,null,i,n):ue(t,e,i,n),e.child;case 11:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:Be(i,r),Dc(t,e,i,r,n);case 7:return ue(t,e,e.pendingProps,n),e.child;case 8:return ue(t,e,e.pendingProps.children,n),e.child;case 12:return ue(t,e,e.pendingProps.children,n),e.child;case 10:e:{if(i=e.type._context,r=e.pendingProps,s=e.memoizedProps,o=r.value,U(Zr,i._currentValue),i._currentValue=o,s!==null)if(qe(s.value,o)){if(s.children===r.children&&!ve.current){e=dt(t,e,n);break e}}else for(s=e.child,s!==null&&(s.return=e);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var l=a.firstContext;l!==null;){if(l.context===i){if(s.tag===1){l=lt(-1,n&-n),l.tag=2;var c=s.updateQueue;if(c!==null){c=c.shared;var p=c.pending;p===null?l.next=l:(l.next=p.next,p.next=l),c.pending=l}}s.lanes|=n,l=s.alternate,l!==null&&(l.lanes|=n),ra(s.return,n,e),a.lanes|=n;break}l=l.next}}else if(s.tag===10)o=s.type===e.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(b(341));o.lanes|=n,a=o.alternate,a!==null&&(a.lanes|=n),ra(o,n,e),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===e){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}ue(t,e,r.children,n),e=e.child}return e;case 9:return r=e.type,i=e.pendingProps.children,jn(e,n),r=Re(r),i=i(r),e.flags|=1,ue(t,e,i,n),e.child;case 14:return i=e.type,r=Be(i,e.pendingProps),r=Be(i.type,r),$c(t,e,i,r,n);case 15:return Ud(t,e,e.type,e.pendingProps,n);case 17:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:Be(i,r),Tr(t,e),e.tag=1,xe(i)?(t=!0,Xr(e)):t=!1,jn(e,n),hd(e,i,r),oa(e,i,r,n),ca(null,e,i,!0,t,n);case 19:return qd(t,e,n);case 22:return Dd(t,e,n)}throw Error(b(156,e.tag))};function af(t,e){return Ou(t,e)}function Hg(t,e,n,i){this.tag=t,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pe(t,e,n,i){return new Hg(t,e,n,i)}function Cl(t){return t=t.prototype,!(!t||!t.isReactComponent)}function Fg(t){if(typeof t=="function")return Cl(t)?1:0;if(t!=null){if(t=t.$$typeof,t===qa)return 11;if(t===Va)return 14}return 2}function Ot(t,e){var n=t.alternate;return n===null?(n=Pe(t.tag,e,t.key,t.mode),n.elementType=t.elementType,n.type=t.type,n.stateNode=t.stateNode,n.alternate=t,t.alternate=n):(n.pendingProps=e,n.type=t.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=t.flags&14680064,n.childLanes=t.childLanes,n.lanes=t.lanes,n.child=t.child,n.memoizedProps=t.memoizedProps,n.memoizedState=t.memoizedState,n.updateQueue=t.updateQueue,e=t.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},n.sibling=t.sibling,n.index=t.index,n.ref=t.ref,n}function jr(t,e,n,i,r,s){var o=2;if(i=t,typeof t=="function")Cl(t)&&(o=1);else if(typeof t=="string")o=5;else e:switch(t){case mn:return Yt(n.children,r,s,e);case Fa:o=8,r|=8;break;case jo:return t=Pe(12,n,e,r|2),t.elementType=jo,t.lanes=s,t;case Po:return t=Pe(13,n,e,r),t.elementType=Po,t.lanes=s,t;case Oo:return t=Pe(19,n,e,r),t.elementType=Oo,t.lanes=s,t;case mu:return bs(n,r,s,e);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case fu:o=10;break e;case hu:o=9;break e;case qa:o=11;break e;case Va:o=14;break e;case gt:o=16,i=null;break e}throw Error(b(130,t==null?t:typeof t,""))}return e=Pe(o,n,e,r),e.elementType=t,e.type=i,e.lanes=s,e}function Yt(t,e,n,i){return t=Pe(7,t,i,e),t.lanes=n,t}function bs(t,e,n,i){return t=Pe(22,t,i,e),t.elementType=mu,t.lanes=n,t.stateNode={isHidden:!1},t}function uo(t,e,n){return t=Pe(6,t,null,e),t.lanes=n,t}function fo(t,e,n){return e=Pe(4,t.children!==null?t.children:[],t.key,e),e.lanes=n,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}function qg(t,e,n,i,r){this.tag=e,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Ws(0),this.expirationTimes=Ws(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ws(0),this.identifierPrefix=i,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function bl(t,e,n,i,r,s,o,a,l){return t=new qg(t,e,n,a,l),e===1?(e=1,s===!0&&(e|=8)):e=0,s=Pe(3,null,null,e),t.current=s,s.stateNode=t,s.memoizedState={element:i,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},cl(s),t}function Vg(t,e,n){var i=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(uf)}catch(t){console.error(t)}}uf(),lu.exports=be;var Xg=lu.exports,tp=Xg;No.createRoot=tp.createRoot,No.hydrateRoot=tp.hydrateRoot;/** + * @remix-run/router v1.14.2 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function Bi(){return Bi=Object.assign?Object.assign.bind():function(t){for(var e=1;e"u")throw new Error(e)}function jl(t,e){if(!t){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function Yg(){return Math.random().toString(36).substr(2,8)}function ip(t,e){return{usr:t.state,key:t.key,idx:e}}function _a(t,e,n,i){return n===void 0&&(n=null),Bi({pathname:typeof t=="string"?t:t.pathname,search:"",hash:""},typeof e=="string"?qn(e):e,{state:n,key:e&&e.key||i||Yg()})}function ps(t){let{pathname:e="/",search:n="",hash:i=""}=t;return n&&n!=="?"&&(e+=n.charAt(0)==="?"?n:"?"+n),i&&i!=="#"&&(e+=i.charAt(0)==="#"?i:"#"+i),e}function qn(t){let e={};if(t){let n=t.indexOf("#");n>=0&&(e.hash=t.substr(n),t=t.substr(0,n));let i=t.indexOf("?");i>=0&&(e.search=t.substr(i),t=t.substr(0,i)),t&&(e.pathname=t)}return e}function Zg(t,e,n,i){i===void 0&&(i={});let{window:r=document.defaultView,v5Compat:s=!1}=i,o=r.history,a=kt.Pop,l=null,c=p();c==null&&(c=0,o.replaceState(Bi({},o.state,{idx:c}),""));function p(){return(o.state||{idx:null}).idx}function d(){a=kt.Pop;let v=p(),h=v==null?null:v-c;c=v,l&&l({action:a,location:_.location,delta:h})}function u(v,h){a=kt.Push;let f=_a(_.location,v,h);n&&n(f,v),c=p()+1;let m=ip(f,c),y=_.createHref(f);try{o.pushState(m,"",y)}catch(E){if(E instanceof DOMException&&E.name==="DataCloneError")throw E;r.location.assign(y)}s&&l&&l({action:a,location:_.location,delta:1})}function g(v,h){a=kt.Replace;let f=_a(_.location,v,h);n&&n(f,v),c=p();let m=ip(f,c),y=_.createHref(f);o.replaceState(m,"",y),s&&l&&l({action:a,location:_.location,delta:0})}function x(v){let h=r.location.origin!=="null"?r.location.origin:r.location.href,f=typeof v=="string"?v:ps(v);return G(h,"No window.location.(origin|href) available to create URL for href: "+f),new URL(f,h)}let _={get action(){return a},get location(){return t(r,o)},listen(v){if(l)throw new Error("A history only accepts one active listener");return r.addEventListener(np,d),l=v,()=>{r.removeEventListener(np,d),l=null}},createHref(v){return e(r,v)},createURL:x,encodeLocation(v){let h=x(v);return{pathname:h.pathname,search:h.search,hash:h.hash}},push:u,replace:g,go(v){return o.go(v)}};return _}var rp;(function(t){t.data="data",t.deferred="deferred",t.redirect="redirect",t.error="error"})(rp||(rp={}));function ev(t,e,n){n===void 0&&(n="/");let i=typeof e=="string"?qn(e):e,r=Pl(i.pathname||"/",n);if(r==null)return null;let s=df(t);tv(s);let o=null;for(let a=0;o==null&&a{let l={relativePath:a===void 0?s.path||"":a,caseSensitive:s.caseSensitive===!0,childrenIndex:o,route:s};l.relativePath.startsWith("/")&&(G(l.relativePath.startsWith(i),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+i+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(i.length));let c=Lt([i,l.relativePath]),p=n.concat(l);s.children&&s.children.length>0&&(G(s.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+c+'".')),df(s.children,e,p,c)),!(s.path==null&&!s.index)&&e.push({path:c,score:lv(c,s.index),routesMeta:p})};return t.forEach((s,o)=>{var a;if(s.path===""||!((a=s.path)!=null&&a.includes("?")))r(s,o);else for(let l of ff(s.path))r(s,o,l)}),e}function ff(t){let e=t.split("/");if(e.length===0)return[];let[n,...i]=e,r=n.endsWith("?"),s=n.replace(/\?$/,"");if(i.length===0)return r?[s,""]:[s];let o=ff(i.join("/")),a=[];return a.push(...o.map(l=>l===""?s:[s,l].join("/"))),r&&a.push(...o),a.map(l=>t.startsWith("/")&&l===""?"/":l)}function tv(t){t.sort((e,n)=>e.score!==n.score?n.score-e.score:cv(e.routesMeta.map(i=>i.childrenIndex),n.routesMeta.map(i=>i.childrenIndex)))}const nv=/^:[\w-]+$/,iv=3,rv=2,sv=1,ov=10,av=-2,sp=t=>t==="*";function lv(t,e){let n=t.split("/"),i=n.length;return n.some(sp)&&(i+=av),e&&(i+=rv),n.filter(r=>!sp(r)).reduce((r,s)=>r+(nv.test(s)?iv:s===""?sv:ov),i)}function cv(t,e){return t.length===e.length&&t.slice(0,-1).every((i,r)=>i===e[r])?t[t.length-1]-e[e.length-1]:0}function pv(t,e){let{routesMeta:n}=t,i={},r="/",s=[];for(let o=0;o{let{paramName:u,isOptional:g}=p;if(u==="*"){let _=a[d]||"";o=s.slice(0,s.length-_.length).replace(/(.)\/+$/,"$1")}const x=a[d];return g&&!x?c[u]=void 0:c[u]=hv(x||"",u),c},{}),pathname:s,pathnameBase:o,pattern:t}}function dv(t,e,n){e===void 0&&(e=!1),n===void 0&&(n=!0),jl(t==="*"||!t.endsWith("*")||t.endsWith("/*"),'Route path "'+t+'" will be treated as if it were '+('"'+t.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+t.replace(/\*$/,"/*")+'".'));let i=[],r="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,a,l)=>(i.push({paramName:a,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return t.endsWith("*")?(i.push({paramName:"*"}),r+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?r+="\\/*$":t!==""&&t!=="/"&&(r+="(?:(?=\\/|$))"),[new RegExp(r,e?void 0:"i"),i]}function fv(t){try{return decodeURI(t)}catch(e){return jl(!1,'The URL path "'+t+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+e+").")),t}}function hv(t,e){try{return decodeURIComponent(t)}catch(n){return jl(!1,'The value for the URL param "'+e+'" will not be decoded because'+(' the string "'+t+'" is a malformed URL segment. This is probably')+(" due to a bad percent encoding ("+n+").")),t}}function Pl(t,e){if(e==="/")return t;if(!t.toLowerCase().startsWith(e.toLowerCase()))return null;let n=e.endsWith("/")?e.length-1:e.length,i=t.charAt(n);return i&&i!=="/"?null:t.slice(n)||"/"}function mv(t,e){e===void 0&&(e="/");let{pathname:n,search:i="",hash:r=""}=typeof t=="string"?qn(t):t;return{pathname:n?n.startsWith("/")?n:gv(n,e):e,search:yv(i),hash:wv(r)}}function gv(t,e){let n=e.replace(/\/+$/,"").split("/");return t.split("/").forEach(r=>{r===".."?n.length>1&&n.pop():r!=="."&&n.push(r)}),n.length>1?n.join("/"):"/"}function ho(t,e,n,i){return"Cannot include a '"+t+"' character in a manually specified "+("`to."+e+"` field ["+JSON.stringify(i)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function vv(t){return t.filter((e,n)=>n===0||e.route.path&&e.route.path.length>0)}function Ol(t,e){let n=vv(t);return e?n.map((i,r)=>r===t.length-1?i.pathname:i.pathnameBase):n.map(i=>i.pathnameBase)}function Ll(t,e,n,i){i===void 0&&(i=!1);let r;typeof t=="string"?r=qn(t):(r=Bi({},t),G(!r.pathname||!r.pathname.includes("?"),ho("?","pathname","search",r)),G(!r.pathname||!r.pathname.includes("#"),ho("#","pathname","hash",r)),G(!r.search||!r.search.includes("#"),ho("#","search","hash",r)));let s=t===""||r.pathname==="",o=s?"/":r.pathname,a;if(o==null)a=n;else{let d=e.length-1;if(!i&&o.startsWith("..")){let u=o.split("/");for(;u[0]==="..";)u.shift(),d-=1;r.pathname=u.join("/")}a=d>=0?e[d]:"/"}let l=mv(r,a),c=o&&o!=="/"&&o.endsWith("/"),p=(s||o===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(c||p)&&(l.pathname+="/"),l}const Lt=t=>t.join("/").replace(/\/\/+/g,"/"),xv=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),yv=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,wv=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function _v(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}const hf=["post","put","patch","delete"];new Set(hf);const Ev=["get",...hf];new Set(Ev);/** + * React Router v6.21.3 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function Ui(){return Ui=Object.assign?Object.assign.bind():function(t){for(var e=1;e{a.current=!0}),S.useCallback(function(c,p){if(p===void 0&&(p={}),!a.current)return;if(typeof c=="number"){i.go(c);return}let d=Ll(c,JSON.parse(o),s,p.relative==="path");t==null&&e!=="/"&&(d.pathname=d.pathname==="/"?e:Lt([e,d.pathname])),(p.replace?i.replace:i.push)(d,p.state,p)},[e,i,o,s,t])}function xf(t,e){let{relative:n}=e===void 0?{}:e,{future:i}=S.useContext(Ut),{matches:r}=S.useContext(Dt),{pathname:s}=Wi(),o=JSON.stringify(Ol(r,i.v7_relativeSplatPath));return S.useMemo(()=>Ll(t,JSON.parse(o),s,n==="path"),[t,o,s,n])}function bv(t,e){return Tv(t,e)}function Tv(t,e,n,i){Vn()||G(!1);let{navigator:r}=S.useContext(Ut),{matches:s}=S.useContext(Dt),o=s[s.length-1],a=o?o.params:{};o&&o.pathname;let l=o?o.pathnameBase:"/";o&&o.route;let c=Wi(),p;if(e){var d;let v=typeof e=="string"?qn(e):e;l==="/"||(d=v.pathname)!=null&&d.startsWith(l)||G(!1),p=v}else p=c;let u=p.pathname||"/",g=l==="/"?u:u.slice(l.length)||"/",x=ev(t,{pathname:g}),_=Ov(x&&x.map(v=>Object.assign({},v,{params:Object.assign({},a,v.params),pathname:Lt([l,r.encodeLocation?r.encodeLocation(v.pathname).pathname:v.pathname]),pathnameBase:v.pathnameBase==="/"?l:Lt([l,r.encodeLocation?r.encodeLocation(v.pathnameBase).pathname:v.pathnameBase])})),s,n,i);return e&&_?S.createElement(Ps.Provider,{value:{location:Ui({pathname:"/",search:"",hash:"",state:null,key:"default"},p),navigationType:kt.Pop}},_):_}function Nv(){let t=Mv(),e=_v(t)?t.status+" "+t.statusText:t instanceof Error?t.message:JSON.stringify(t),n=t instanceof Error?t.stack:null,r={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return S.createElement(S.Fragment,null,S.createElement("h2",null,"Unexpected Application Error!"),S.createElement("h3",{style:{fontStyle:"italic"}},e),n?S.createElement("pre",{style:r},n):null,null)}const Av=S.createElement(Nv,null);class jv extends S.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,n){return n.location!==e.location||n.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:n.error,location:n.location,revalidation:e.revalidation||n.revalidation}}componentDidCatch(e,n){console.error("React Router caught the following error during render",e,n)}render(){return this.state.error!==void 0?S.createElement(Dt.Provider,{value:this.props.routeContext},S.createElement(mf.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Pv(t){let{routeContext:e,match:n,children:i}=t,r=S.useContext(Rl);return r&&r.static&&r.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=n.route.id),S.createElement(Dt.Provider,{value:e},i)}function Ov(t,e,n,i){var r;if(e===void 0&&(e=[]),n===void 0&&(n=null),i===void 0&&(i=null),t==null){var s;if((s=n)!=null&&s.errors)t=n.matches;else return null}let o=t,a=(r=n)==null?void 0:r.errors;if(a!=null){let p=o.findIndex(d=>d.route.id&&(a==null?void 0:a[d.route.id]));p>=0||G(!1),o=o.slice(0,Math.min(o.length,p+1))}let l=!1,c=-1;if(n&&i&&i.v7_partialHydration)for(let p=0;p=0?o=o.slice(0,c+1):o=[o[0]];break}}}return o.reduceRight((p,d,u)=>{let g,x=!1,_=null,v=null;n&&(g=a&&d.route.id?a[d.route.id]:void 0,_=d.route.errorElement||Av,l&&(c<0&&u===0?(Bv("route-fallback",!1),x=!0,v=null):c===u&&(x=!0,v=d.route.hydrateFallbackElement||null)));let h=e.concat(o.slice(0,u+1)),f=()=>{let m;return g?m=_:x?m=v:d.route.Component?m=S.createElement(d.route.Component,null):d.route.element?m=d.route.element:m=p,S.createElement(Pv,{match:d,routeContext:{outlet:p,matches:h,isDataRoute:n!=null},children:m})};return n&&(d.route.ErrorBoundary||d.route.errorElement||u===0)?S.createElement(jv,{location:n.location,revalidation:n.revalidation,component:_,error:g,children:f(),routeContext:{outlet:null,matches:h,isDataRoute:!0}}):f()},null)}var yf=function(t){return t.UseBlocker="useBlocker",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t}(yf||{}),us=function(t){return t.UseBlocker="useBlocker",t.UseLoaderData="useLoaderData",t.UseActionData="useActionData",t.UseRouteError="useRouteError",t.UseNavigation="useNavigation",t.UseRouteLoaderData="useRouteLoaderData",t.UseMatches="useMatches",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t.UseRouteId="useRouteId",t}(us||{});function Lv(t){let e=S.useContext(Rl);return e||G(!1),e}function Rv(t){let e=S.useContext(Sv);return e||G(!1),e}function Iv(t){let e=S.useContext(Dt);return e||G(!1),e}function wf(t){let e=Iv(),n=e.matches[e.matches.length-1];return n.route.id||G(!1),n.route.id}function Mv(){var t;let e=S.useContext(mf),n=Rv(us.UseRouteError),i=wf(us.UseRouteError);return e!==void 0?e:(t=n.errors)==null?void 0:t[i]}function zv(){let{router:t}=Lv(yf.UseNavigateStable),e=wf(us.UseNavigateStable),n=S.useRef(!1);return gf(()=>{n.current=!0}),S.useCallback(function(r,s){s===void 0&&(s={}),n.current&&(typeof r=="number"?t.navigate(r):t.navigate(r,Ui({fromRouteId:e},s)))},[t,e])}const op={};function Bv(t,e,n){!e&&!op[t]&&(op[t]=!0)}function mo(t){let{to:e,replace:n,state:i,relative:r}=t;Vn()||G(!1);let{future:s,static:o}=S.useContext(Ut),{matches:a}=S.useContext(Dt),{pathname:l}=Wi(),c=vf(),p=Ll(e,Ol(a,s.v7_relativeSplatPath),l,r==="path"),d=JSON.stringify(p);return S.useEffect(()=>c(JSON.parse(d),{replace:n,state:i,relative:r}),[c,d,r,n,i]),null}function Pr(t){G(!1)}function Uv(t){let{basename:e="/",children:n=null,location:i,navigationType:r=kt.Pop,navigator:s,static:o=!1,future:a}=t;Vn()&&G(!1);let l=e.replace(/^\/*/,"/"),c=S.useMemo(()=>({basename:l,navigator:s,static:o,future:Ui({v7_relativeSplatPath:!1},a)}),[l,a,s,o]);typeof i=="string"&&(i=qn(i));let{pathname:p="/",search:d="",hash:u="",state:g=null,key:x="default"}=i,_=S.useMemo(()=>{let v=Pl(p,l);return v==null?null:{location:{pathname:v,search:d,hash:u,state:g,key:x},navigationType:r}},[l,p,d,u,g,x,r]);return _==null?null:S.createElement(Ut.Provider,{value:c},S.createElement(Ps.Provider,{children:n,value:_}))}function Dv(t){let{children:e,location:n}=t;return bv(Ea(e),n)}new Promise(()=>{});function Ea(t,e){e===void 0&&(e=[]);let n=[];return S.Children.forEach(t,(i,r)=>{if(!S.isValidElement(i))return;let s=[...e,r];if(i.type===S.Fragment){n.push.apply(n,Ea(i.props.children,s));return}i.type!==Pr&&G(!1),!i.props.index||!i.props.children||G(!1);let o={id:i.props.id||s.join("-"),caseSensitive:i.props.caseSensitive,element:i.props.element,Component:i.props.Component,index:i.props.index,path:i.props.path,loader:i.props.loader,action:i.props.action,errorElement:i.props.errorElement,ErrorBoundary:i.props.ErrorBoundary,hasErrorBoundary:i.props.ErrorBoundary!=null||i.props.errorElement!=null,shouldRevalidate:i.props.shouldRevalidate,handle:i.props.handle,lazy:i.props.lazy};i.props.children&&(o.children=Ea(i.props.children,s)),n.push(o)}),n}/** + * React Router DOM v6.21.3 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function Sa(){return Sa=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&(n[r]=t[r]);return n}function Hv(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function Fv(t,e){return t.button===0&&(!e||e==="_self")&&!Hv(t)}const qv=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","unstable_viewTransition"],Vv="startTransition",ap=Dh[Vv];function Wv(t){let{basename:e,children:n,future:i,window:r}=t,s=S.useRef();s.current==null&&(s.current=Jg({window:r,v5Compat:!0}));let o=s.current,[a,l]=S.useState({action:o.action,location:o.location}),{v7_startTransition:c}=i||{},p=S.useCallback(d=>{c&&ap?ap(()=>l(d)):l(d)},[l,c]);return S.useLayoutEffect(()=>o.listen(p),[o,p]),S.createElement(Uv,{basename:e,children:n,location:a.location,navigationType:a.action,navigator:o,future:i})}const Qv=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Kv=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,_f=S.forwardRef(function(e,n){let{onClick:i,relative:r,reloadDocument:s,replace:o,state:a,target:l,to:c,preventScrollReset:p,unstable_viewTransition:d}=e,u=$v(e,qv),{basename:g}=S.useContext(Ut),x,_=!1;if(typeof c=="string"&&Kv.test(c)&&(x=c,Qv))try{let m=new URL(window.location.href),y=c.startsWith("//")?new URL(m.protocol+c):new URL(c),E=Pl(y.pathname,g);y.origin===m.origin&&E!=null?c=E+y.search+y.hash:_=!0}catch{}let v=kv(c,{relative:r}),h=Gv(c,{replace:o,state:a,target:l,preventScrollReset:p,relative:r,unstable_viewTransition:d});function f(m){i&&i(m),m.defaultPrevented||h(m)}return S.createElement("a",Sa({},u,{href:x||v,onClick:_||s?i:f,ref:n,target:l}))});var lp;(function(t){t.UseScrollRestoration="useScrollRestoration",t.UseSubmit="useSubmit",t.UseSubmitFetcher="useSubmitFetcher",t.UseFetcher="useFetcher",t.useViewTransitionState="useViewTransitionState"})(lp||(lp={}));var cp;(function(t){t.UseFetcher="useFetcher",t.UseFetchers="useFetchers",t.UseScrollRestoration="useScrollRestoration"})(cp||(cp={}));function Gv(t,e){let{target:n,replace:i,state:r,preventScrollReset:s,relative:o,unstable_viewTransition:a}=e===void 0?{}:e,l=vf(),c=Wi(),p=xf(t,{relative:o});return S.useCallback(d=>{if(Fv(d,n)){d.preventDefault();let u=i!==void 0?i:ps(c)===ps(p);l(t,{replace:u,state:r,preventScrollReset:s,relative:o,unstable_viewTransition:a})}},[c,l,p,i,r,n,t,s,o,a])}var Xv={BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const pp=t=>{let e;const n=new Set,i=(p,d)=>{const u=typeof p=="function"?p(e):p;if(!Object.is(u,e)){const g=e;e=d??(typeof u!="object"||u===null)?u:Object.assign({},e,u),n.forEach(x=>x(e,g))}},r=()=>e,l={setState:i,getState:r,getInitialState:()=>c,subscribe:p=>(n.add(p),()=>n.delete(p)),destroy:()=>{(Xv?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},c=e=t(i,r,l);return l},Jv=t=>t?pp(t):pp;var Ef={exports:{}},Sf={},kf={exports:{}},Cf={};/** + * @license React + * use-sync-external-store-shim.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Dn=S;function Yv(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var Zv=typeof Object.is=="function"?Object.is:Yv,ex=Dn.useState,tx=Dn.useEffect,nx=Dn.useLayoutEffect,ix=Dn.useDebugValue;function rx(t,e){var n=e(),i=ex({inst:{value:n,getSnapshot:e}}),r=i[0].inst,s=i[1];return nx(function(){r.value=n,r.getSnapshot=e,go(r)&&s({inst:r})},[t,n,e]),tx(function(){return go(r)&&s({inst:r}),t(function(){go(r)&&s({inst:r})})},[t]),ix(n),n}function go(t){var e=t.getSnapshot;t=t.value;try{var n=e();return!Zv(t,n)}catch{return!0}}function sx(t,e){return e()}var ox=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?sx:rx;Cf.useSyncExternalStore=Dn.useSyncExternalStore!==void 0?Dn.useSyncExternalStore:ox;kf.exports=Cf;var ax=kf.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Os=S,lx=ax;function cx(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var px=typeof Object.is=="function"?Object.is:cx,ux=lx.useSyncExternalStore,dx=Os.useRef,fx=Os.useEffect,hx=Os.useMemo,mx=Os.useDebugValue;Sf.useSyncExternalStoreWithSelector=function(t,e,n,i,r){var s=dx(null);if(s.current===null){var o={hasValue:!1,value:null};s.current=o}else o=s.current;s=hx(function(){function l(g){if(!c){if(c=!0,p=g,g=i(g),r!==void 0&&o.hasValue){var x=o.value;if(r(x,g))return d=x}return d=g}if(x=d,px(p,g))return x;var _=i(g);return r!==void 0&&r(x,_)?x:(p=g,d=_)}var c=!1,p,d,u=n===void 0?null:n;return[function(){return l(e())},u===null?void 0:function(){return l(u())}]},[e,n,i,r]);var a=ux(t,s[0],s[1]);return fx(function(){o.hasValue=!0,o.value=a},[a]),mx(a),a};Ef.exports=Sf;var gx=Ef.exports;const vx=Jp(gx);var bf={BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const{useDebugValue:xx}=at,{useSyncExternalStoreWithSelector:yx}=vx;let up=!1;const wx=t=>t;function _x(t,e=wx,n){(bf?"production":void 0)!=="production"&&n&&!up&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),up=!0);const i=yx(t.subscribe,t.getState,t.getServerState||t.getInitialState,e,n);return xx(i),i}const dp=t=>{(bf?"production":void 0)!=="production"&&typeof t!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const e=typeof t=="function"?Jv(t):t,n=(i,r)=>_x(e,i,r);return Object.assign(n,e),n},Ex=t=>t?dp(t):dp,an=Ex(t=>({selectedConversation:null,setSelectedConversation:e=>t({selectedConversation:e}),messages:[],setMessages:e=>t({messages:e})}));var Tf={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},fp=at.createContext&&at.createContext(Tf),Sx=["attr","size","title"];function kx(t,e){if(t==null)return{};var n=Cx(t,e),i,r;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(t,i)&&(n[i]=t[i])}return n}function Cx(t,e){if(t==null)return{};var n={},i=Object.keys(t),r,s;for(s=0;s=0)&&(n[r]=t[r]);return n}function ds(){return ds=Object.assign?Object.assign.bind():function(t){for(var e=1;eat.createElement(e.tag,fs({key:n},e.attr),Nf(e.child)))}function Ls(t){return e=>at.createElement(Ax,ds({attr:fs({},t.attr)},e),Nf(t.child))}function Ax(t){var e=n=>{var{attr:i,size:r,title:s}=t,o=kx(t,Sx),a=r||n.size||"1em",l;return n.className&&(l=n.className),t.className&&(l=(l?l+" ":"")+t.className),at.createElement("svg",ds({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},n.attr,i,o,{className:l,style:fs(fs({color:t.color||n.color},n.style),t.style),height:a,width:a,xmlns:"http://www.w3.org/2000/svg"}),s&&at.createElement("title",null,s),t.children)};return fp!==void 0?at.createElement(fp.Consumer,null,n=>e(n)):e(Tf)}function jx(t){return Ls({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M15.854.146a.5.5 0 0 1 .11.54l-5.819 14.547a.75.75 0 0 1-1.329.124l-3.178-4.995L.643 7.184a.75.75 0 0 1 .124-1.33L15.314.037a.5.5 0 0 1 .54.11ZM6.636 10.07l2.761 4.338L14.13 2.576 6.636 10.07Zm6.787-8.201L1.591 6.602l4.339 2.76 7.494-7.493Z"},child:[]}]})(t)}let Px={data:""},Ox=t=>typeof window=="object"?((t?t.querySelector("#_goober"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:t||Px,Lx=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,Rx=/\/\*[^]*?\*\/| +/g,mp=/\n+/g,_t=(t,e)=>{let n="",i="",r="";for(let s in t){let o=t[s];s[0]=="@"?s[1]=="i"?n=s+" "+o+";":i+=s[1]=="f"?_t(o,s):s+"{"+_t(o,s[1]=="k"?"":e)+"}":typeof o=="object"?i+=_t(o,e?e.replace(/([^,])+/g,a=>s.replace(/(^:.*)|([^,])+/g,l=>/&/.test(l)?l.replace(/&/g,a):a?a+" "+l:l)):s):o!=null&&(s=/^--/.test(s)?s:s.replace(/[A-Z]/g,"-$&").toLowerCase(),r+=_t.p?_t.p(s,o):s+":"+o+";")}return n+(e&&r?e+"{"+r+"}":r)+i},tt={},Af=t=>{if(typeof t=="object"){let e="";for(let n in t)e+=n+Af(t[n]);return e}return t},Ix=(t,e,n,i,r)=>{let s=Af(t),o=tt[s]||(tt[s]=(l=>{let c=0,p=11;for(;c>>0;return"go"+p})(s));if(!tt[o]){let l=s!==t?t:(c=>{let p,d,u=[{}];for(;p=Lx.exec(c.replace(Rx,""));)p[4]?u.shift():p[3]?(d=p[3].replace(mp," ").trim(),u.unshift(u[0][d]=u[0][d]||{})):u[0][p[1]]=p[2].replace(mp," ").trim();return u[0]})(t);tt[o]=_t(r?{["@keyframes "+o]:l}:l,n?"":"."+o)}let a=n&&tt.g?tt.g:null;return n&&(tt.g=tt[o]),((l,c,p,d)=>{d?c.data=c.data.replace(d,l):c.data.indexOf(l)===-1&&(c.data=p?l+c.data:c.data+l)})(tt[o],e,i,a),o},Mx=(t,e,n)=>t.reduce((i,r,s)=>{let o=e[s];if(o&&o.call){let a=o(n),l=a&&a.props&&a.props.className||/^go/.test(a)&&a;o=l?"."+l:a&&typeof a=="object"?a.props?"":_t(a,""):a===!1?"":a}return i+r+(o??"")},"");function Rs(t){let e=this||{},n=t.call?t(e.p):t;return Ix(n.unshift?n.raw?Mx(n,[].slice.call(arguments,1),e.p):n.reduce((i,r)=>Object.assign(i,r&&r.call?r(e.p):r),{}):n,Ox(e.target),e.g,e.o,e.k)}let jf,ka,Ca;Rs.bind({g:1});let ft=Rs.bind({k:1});function zx(t,e,n,i){_t.p=e,jf=t,ka=n,Ca=i}function $t(t,e){let n=this||{};return function(){let i=arguments;function r(s,o){let a=Object.assign({},s),l=a.className||r.className;n.p=Object.assign({theme:ka&&ka()},a),n.o=/ *go\d+/.test(l),a.className=Rs.apply(n,i)+(l?" "+l:""),e&&(a.ref=o);let c=t;return t[0]&&(c=a.as||t,delete a.as),Ca&&c[0]&&Ca(a),jf(c,a)}return e?e(r):r}}var Bx=t=>typeof t=="function",hs=(t,e)=>Bx(t)?t(e):t,Ux=(()=>{let t=0;return()=>(++t).toString()})(),Pf=(()=>{let t;return()=>{if(t===void 0&&typeof window<"u"){let e=matchMedia("(prefers-reduced-motion: reduce)");t=!e||e.matches}return t}})(),Dx=20,Or=new Map,$x=1e3,gp=t=>{if(Or.has(t))return;let e=setTimeout(()=>{Or.delete(t),ln({type:4,toastId:t})},$x);Or.set(t,e)},Hx=t=>{let e=Or.get(t);e&&clearTimeout(e)},ba=(t,e)=>{switch(e.type){case 0:return{...t,toasts:[e.toast,...t.toasts].slice(0,Dx)};case 1:return e.toast.id&&Hx(e.toast.id),{...t,toasts:t.toasts.map(s=>s.id===e.toast.id?{...s,...e.toast}:s)};case 2:let{toast:n}=e;return t.toasts.find(s=>s.id===n.id)?ba(t,{type:1,toast:n}):ba(t,{type:0,toast:n});case 3:let{toastId:i}=e;return i?gp(i):t.toasts.forEach(s=>{gp(s.id)}),{...t,toasts:t.toasts.map(s=>s.id===i||i===void 0?{...s,visible:!1}:s)};case 4:return e.toastId===void 0?{...t,toasts:[]}:{...t,toasts:t.toasts.filter(s=>s.id!==e.toastId)};case 5:return{...t,pausedAt:e.time};case 6:let r=e.time-(t.pausedAt||0);return{...t,pausedAt:void 0,toasts:t.toasts.map(s=>({...s,pauseDuration:s.pauseDuration+r}))}}},Lr=[],Rr={toasts:[],pausedAt:void 0},ln=t=>{Rr=ba(Rr,t),Lr.forEach(e=>{e(Rr)})},Fx={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},qx=(t={})=>{let[e,n]=S.useState(Rr);S.useEffect(()=>(Lr.push(n),()=>{let r=Lr.indexOf(n);r>-1&&Lr.splice(r,1)}),[e]);let i=e.toasts.map(r=>{var s,o;return{...t,...t[r.type],...r,duration:r.duration||((s=t[r.type])==null?void 0:s.duration)||(t==null?void 0:t.duration)||Fx[r.type],style:{...t.style,...(o=t[r.type])==null?void 0:o.style,...r.style}}});return{...e,toasts:i}},Vx=(t,e="blank",n)=>({createdAt:Date.now(),visible:!0,type:e,ariaProps:{role:"status","aria-live":"polite"},message:t,pauseDuration:0,...n,id:(n==null?void 0:n.id)||Ux()}),Qi=t=>(e,n)=>{let i=Vx(e,t,n);return ln({type:2,toast:i}),i.id},Se=(t,e)=>Qi("blank")(t,e);Se.error=Qi("error");Se.success=Qi("success");Se.loading=Qi("loading");Se.custom=Qi("custom");Se.dismiss=t=>{ln({type:3,toastId:t})};Se.remove=t=>ln({type:4,toastId:t});Se.promise=(t,e,n)=>{let i=Se.loading(e.loading,{...n,...n==null?void 0:n.loading});return t.then(r=>(Se.success(hs(e.success,r),{id:i,...n,...n==null?void 0:n.success}),r)).catch(r=>{Se.error(hs(e.error,r),{id:i,...n,...n==null?void 0:n.error})}),t};var Wx=(t,e)=>{ln({type:1,toast:{id:t,height:e}})},Qx=()=>{ln({type:5,time:Date.now()})},Kx=t=>{let{toasts:e,pausedAt:n}=qx(t);S.useEffect(()=>{if(n)return;let s=Date.now(),o=e.map(a=>{if(a.duration===1/0)return;let l=(a.duration||0)+a.pauseDuration-(s-a.createdAt);if(l<0){a.visible&&Se.dismiss(a.id);return}return setTimeout(()=>Se.dismiss(a.id),l)});return()=>{o.forEach(a=>a&&clearTimeout(a))}},[e,n]);let i=S.useCallback(()=>{n&&ln({type:6,time:Date.now()})},[n]),r=S.useCallback((s,o)=>{let{reverseOrder:a=!1,gutter:l=8,defaultPosition:c}=o||{},p=e.filter(g=>(g.position||c)===(s.position||c)&&g.height),d=p.findIndex(g=>g.id===s.id),u=p.filter((g,x)=>xg.visible).slice(...a?[u+1]:[0,u]).reduce((g,x)=>g+(x.height||0)+l,0)},[e]);return{toasts:e,handlers:{updateHeight:Wx,startPause:Qx,endPause:i,calculateOffset:r}}},Gx=ft` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,Xx=ft` +from { + transform: scale(0); + opacity: 0; +} +to { + transform: scale(1); + opacity: 1; +}`,Jx=ft` +from { + transform: scale(0) rotate(90deg); + opacity: 0; +} +to { + transform: scale(1) rotate(90deg); + opacity: 1; +}`,Yx=$t("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${t=>t.primary||"#ff4b4b"}; + position: relative; + transform: rotate(45deg); + + animation: ${Gx} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + + &:after, + &:before { + content: ''; + animation: ${Xx} 0.15s ease-out forwards; + animation-delay: 150ms; + position: absolute; + border-radius: 3px; + opacity: 0; + background: ${t=>t.secondary||"#fff"}; + bottom: 9px; + left: 4px; + height: 2px; + width: 12px; + } + + &:before { + animation: ${Jx} 0.15s ease-out forwards; + animation-delay: 180ms; + transform: rotate(90deg); + } +`,Zx=ft` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`,ey=$t("div")` + width: 12px; + height: 12px; + box-sizing: border-box; + border: 2px solid; + border-radius: 100%; + border-color: ${t=>t.secondary||"#e0e0e0"}; + border-right-color: ${t=>t.primary||"#616161"}; + animation: ${Zx} 1s linear infinite; +`,ty=ft` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,ny=ft` +0% { + height: 0; + width: 0; + opacity: 0; +} +40% { + height: 0; + width: 6px; + opacity: 1; +} +100% { + opacity: 1; + height: 10px; +}`,iy=$t("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${t=>t.primary||"#61d345"}; + position: relative; + transform: rotate(45deg); + + animation: ${ty} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + &:after { + content: ''; + box-sizing: border-box; + animation: ${ny} 0.2s ease-out forwards; + opacity: 0; + animation-delay: 200ms; + position: absolute; + border-right: 2px solid; + border-bottom: 2px solid; + border-color: ${t=>t.secondary||"#fff"}; + bottom: 6px; + left: 6px; + height: 10px; + width: 6px; + } +`,ry=$t("div")` + position: absolute; +`,sy=$t("div")` + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-width: 20px; + min-height: 20px; +`,oy=ft` +from { + transform: scale(0.6); + opacity: 0.4; +} +to { + transform: scale(1); + opacity: 1; +}`,ay=$t("div")` + position: relative; + transform: scale(0.6); + opacity: 0.4; + min-width: 20px; + animation: ${oy} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; +`,ly=({toast:t})=>{let{icon:e,type:n,iconTheme:i}=t;return e!==void 0?typeof e=="string"?S.createElement(ay,null,e):e:n==="blank"?null:S.createElement(sy,null,S.createElement(ey,{...i}),n!=="loading"&&S.createElement(ry,null,n==="error"?S.createElement(Yx,{...i}):S.createElement(iy,{...i})))},cy=t=>` +0% {transform: translate3d(0,${t*-200}%,0) scale(.6); opacity:.5;} +100% {transform: translate3d(0,0,0) scale(1); opacity:1;} +`,py=t=>` +0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} +100% {transform: translate3d(0,${t*-150}%,-1px) scale(.6); opacity:0;} +`,uy="0%{opacity:0;} 100%{opacity:1;}",dy="0%{opacity:1;} 100%{opacity:0;}",fy=$t("div")` + display: flex; + align-items: center; + background: #fff; + color: #363636; + line-height: 1.3; + will-change: transform; + box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1), 0 3px 3px rgba(0, 0, 0, 0.05); + max-width: 350px; + pointer-events: auto; + padding: 8px 10px; + border-radius: 8px; +`,hy=$t("div")` + display: flex; + justify-content: center; + margin: 4px 10px; + color: inherit; + flex: 1 1 auto; + white-space: pre-line; +`,my=(t,e)=>{let n=t.includes("top")?1:-1,[i,r]=Pf()?[uy,dy]:[cy(n),py(n)];return{animation:e?`${ft(i)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${ft(r)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},gy=S.memo(({toast:t,position:e,style:n,children:i})=>{let r=t.height?my(t.position||e||"top-center",t.visible):{opacity:0},s=S.createElement(ly,{toast:t}),o=S.createElement(hy,{...t.ariaProps},hs(t.message,t));return S.createElement(fy,{className:t.className,style:{...r,...n,...t.style}},typeof i=="function"?i({icon:s,message:o}):S.createElement(S.Fragment,null,s,o))});zx(S.createElement);var vy=({id:t,className:e,style:n,onHeightUpdate:i,children:r})=>{let s=S.useCallback(o=>{if(o){let a=()=>{let l=o.getBoundingClientRect().height;i(t,l)};a(),new MutationObserver(a).observe(o,{subtree:!0,childList:!0,characterData:!0})}},[t,i]);return S.createElement("div",{ref:s,className:e,style:n},r)},xy=(t,e)=>{let n=t.includes("top"),i=n?{top:0}:{bottom:0},r=t.includes("center")?{justifyContent:"center"}:t.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:Pf()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${e*(n?1:-1)}px)`,...i,...r}},yy=Rs` + z-index: 9999; + > * { + pointer-events: auto; + } +`,hr=16,wy=({reverseOrder:t,position:e="top-center",toastOptions:n,gutter:i,children:r,containerStyle:s,containerClassName:o})=>{let{toasts:a,handlers:l}=Kx(n);return S.createElement("div",{style:{position:"fixed",zIndex:9999,top:hr,left:hr,right:hr,bottom:hr,pointerEvents:"none",...s},className:o,onMouseEnter:l.startPause,onMouseLeave:l.endPause},a.map(c=>{let p=c.position||e,d=l.calculateOffset(c,{reverseOrder:t,gutter:i,defaultPosition:e}),u=xy(p,d);return S.createElement(vy,{id:c.id,key:c.id,onHeightUpdate:l.updateHeight,className:c.visible?yy:"",style:u},c.type==="custom"?hs(c.message,c):r?r(c):S.createElement(gy,{toast:c,position:p}))}))},Le=Se;const _y=()=>{const[t,e]=S.useState(!1),{messages:n,setMessages:i,selectedConversation:r}=an();return{sendMessage:async o=>{e(!0);try{const l=await(await fetch(`/api/messages/send/${r._id}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:o})})).json();if(l.error)throw new Error(l.error);i([...n,l])}catch(a){Le.error(a.message)}finally{e(!1)}},loading:t}},Ey=()=>{const[t,e]=S.useState(""),{loading:n,sendMessage:i}=_y(),r=async s=>{s.preventDefault(),t&&(await i(t),e(""))};return w.jsx("form",{className:"px-4 my-3",onSubmit:r,children:w.jsxs("div",{className:"w-full relative",children:[w.jsx("input",{type:"text",className:"border text-sm rounded-lg block w-full p-2.5 bg-gray-700 border-gray-600 text-white",placeholder:"Send a message",value:t,onChange:s=>e(s.target.value)}),w.jsx("button",{type:"submit",className:"absolute inset-y-0 end-0 flex items-center pe-3",children:n?w.jsx("div",{className:"loading loading-spinner"}):w.jsx(jx,{})})]})})},Sy=()=>{const[t,e]=S.useState(!1),{messages:n,setMessages:i,selectedConversation:r}=an();return S.useEffect(()=>{const s=async()=>{e(!0);try{const a=await(await fetch(`/api/messages/${r._id}`)).json();if(a.error)throw new Error(a.error);i(a)}catch(o){Le.error(o.message)}finally{e(!1)}};r!=null&&r._id&&s()},[r==null?void 0:r._id,i]),{messages:n,loading:t}},ky=()=>w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:"flex gap-3 items-center",children:[w.jsx("div",{className:"skeleton w-10 h-10 rounded-full shrink-0"}),w.jsxs("div",{className:"flex flex-col gap-1",children:[w.jsx("div",{className:"skeleton h-4 w-40"}),w.jsx("div",{className:"skeleton h-4 w-40"})]})]}),w.jsxs("div",{className:"flex gap-3 items-center justify-end",children:[w.jsx("div",{className:"flex flex-col gap-1",children:w.jsx("div",{className:"skeleton h-4 w-40"})}),w.jsx("div",{className:"skeleton w-10 h-10 rounded-full shrink-0"})]})]}),Of=S.createContext(),cn=()=>S.useContext(Of),Cy=({children:t})=>{const[e,n]=S.useState(JSON.parse(localStorage.getItem("chat-user"))||null);return w.jsx(Of.Provider,{value:{authUser:e,setAuthUser:n},children:t})};function by(t){const e=new Date(t),n=vp(e.getHours()),i=vp(e.getMinutes());return`${n}:${i}`}function vp(t){return t.toString().padStart(2,"0")}const Ty=({message:t})=>{const{authUser:e}=cn(),{selectedConversation:n}=an(),i=t.senderId===e._id,r=by(t.createdAt),s=i?"chat-end":"chat-start",o=i?e.profilePic:n==null?void 0:n.profilePic,a=i?"bg-blue-500":"",l=t.shouldShake?"shake":"";return w.jsxs("div",{className:`chat ${s}`,children:[w.jsx("div",{className:"chat-image avatar",children:w.jsx("div",{className:"w-10 rounded-full",children:w.jsx("img",{alt:"Tailwind CSS chat bubble component",src:o})})}),w.jsx("div",{className:`chat-bubble text-white ${a} ${l} pb-2`,children:t.message}),w.jsx("div",{className:"chat-footer opacity-50 text-xs flex gap-1 items-center",children:r})]})},Ze=Object.create(null);Ze.open="0";Ze.close="1";Ze.ping="2";Ze.pong="3";Ze.message="4";Ze.upgrade="5";Ze.noop="6";const Ir=Object.create(null);Object.keys(Ze).forEach(t=>{Ir[Ze[t]]=t});const Ta={type:"error",data:"parser error"},Lf=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",Rf=typeof ArrayBuffer=="function",If=t=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(t):t&&t.buffer instanceof ArrayBuffer,Il=({type:t,data:e},n,i)=>Lf&&e instanceof Blob?n?i(e):xp(e,i):Rf&&(e instanceof ArrayBuffer||If(e))?n?i(e):xp(new Blob([e]),i):i(Ze[t]+(e||"")),xp=(t,e)=>{const n=new FileReader;return n.onload=function(){const i=n.result.split(",")[1];e("b"+(i||""))},n.readAsDataURL(t)};function yp(t){return t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}let vo;function Ny(t,e){if(Lf&&t.data instanceof Blob)return t.data.arrayBuffer().then(yp).then(e);if(Rf&&(t.data instanceof ArrayBuffer||If(t.data)))return e(yp(t.data));Il(t,!1,n=>{vo||(vo=new TextEncoder),e(vo.encode(n))})}const wp="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",pi=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let t=0;t{let e=t.length*.75,n=t.length,i,r=0,s,o,a,l;t[t.length-1]==="="&&(e--,t[t.length-2]==="="&&e--);const c=new ArrayBuffer(e),p=new Uint8Array(c);for(i=0;i>4,p[r++]=(o&15)<<4|a>>2,p[r++]=(a&3)<<6|l&63;return c},jy=typeof ArrayBuffer=="function",Ml=(t,e)=>{if(typeof t!="string")return{type:"message",data:Mf(t,e)};const n=t.charAt(0);return n==="b"?{type:"message",data:Py(t.substring(1),e)}:Ir[n]?t.length>1?{type:Ir[n],data:t.substring(1)}:{type:Ir[n]}:Ta},Py=(t,e)=>{if(jy){const n=Ay(t);return Mf(n,e)}else return{base64:!0,data:t}},Mf=(t,e)=>{switch(e){case"blob":return t instanceof Blob?t:new Blob([t]);case"arraybuffer":default:return t instanceof ArrayBuffer?t:t.buffer}},zf="",Oy=(t,e)=>{const n=t.length,i=new Array(n);let r=0;t.forEach((s,o)=>{Il(s,!1,a=>{i[o]=a,++r===n&&e(i.join(zf))})})},Ly=(t,e)=>{const n=t.split(zf),i=[];for(let r=0;r{const i=n.length;let r;if(i<126)r=new Uint8Array(1),new DataView(r.buffer).setUint8(0,i);else if(i<65536){r=new Uint8Array(3);const s=new DataView(r.buffer);s.setUint8(0,126),s.setUint16(1,i)}else{r=new Uint8Array(9);const s=new DataView(r.buffer);s.setUint8(0,127),s.setBigUint64(1,BigInt(i))}t.data&&typeof t.data!="string"&&(r[0]|=128),e.enqueue(r),e.enqueue(n)})}})}let xo;function mr(t){return t.reduce((e,n)=>e+n.length,0)}function gr(t,e){if(t[0].length===e)return t.shift();const n=new Uint8Array(e);let i=0;for(let r=0;rMath.pow(2,21)-1){a.enqueue(Ta);break}r=p*Math.pow(2,32)+c.getUint32(4),i=3}else{if(mr(n)t){a.enqueue(Ta);break}}}})}const Bf=4;function J(t){if(t)return My(t)}function My(t){for(var e in J.prototype)t[e]=J.prototype[e];return t}J.prototype.on=J.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+t]=this._callbacks["$"+t]||[]).push(e),this};J.prototype.once=function(t,e){function n(){this.off(t,n),e.apply(this,arguments)}return n.fn=e,this.on(t,n),this};J.prototype.off=J.prototype.removeListener=J.prototype.removeAllListeners=J.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks["$"+t];if(!n)return this;if(arguments.length==1)return delete this._callbacks["$"+t],this;for(var i,r=0;r(t.hasOwnProperty(i)&&(n[i]=t[i]),n),{})}const zy=je.setTimeout,By=je.clearTimeout;function Is(t,e){e.useNativeTimers?(t.setTimeoutFn=zy.bind(je),t.clearTimeoutFn=By.bind(je)):(t.setTimeoutFn=je.setTimeout.bind(je),t.clearTimeoutFn=je.clearTimeout.bind(je))}const Uy=1.33;function Dy(t){return typeof t=="string"?$y(t):Math.ceil((t.byteLength||t.size)*Uy)}function $y(t){let e=0,n=0;for(let i=0,r=t.length;i=57344?n+=3:(i++,n+=4);return n}function Hy(t){let e="";for(let n in t)t.hasOwnProperty(n)&&(e.length&&(e+="&"),e+=encodeURIComponent(n)+"="+encodeURIComponent(t[n]));return e}function Fy(t){let e={},n=t.split("&");for(let i=0,r=n.length;i0);return e}function $f(){const t=Sp(+new Date);return t!==Ep?(_p=0,Ep=t):t+"."+Sp(_p++)}for(;vr{this.readyState="paused",e()};if(this.polling||!this.writable){let i=0;this.polling&&(i++,this.once("pollComplete",function(){--i||n()})),this.writable||(i++,this.once("drain",function(){--i||n()}))}else n()}poll(){this.polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){const n=i=>{if(this.readyState==="opening"&&i.type==="open"&&this.onOpen(),i.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(i)};Ly(e,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this.polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this.poll())}doClose(){const e=()=>{this.write([{type:"close"}])};this.readyState==="open"?e():this.once("open",e)}write(e){this.writable=!1,Oy(e,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const e=this.opts.secure?"https":"http",n=this.query||{};return this.opts.timestampRequests!==!1&&(n[this.opts.timestampParam]=$f()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(e,n)}request(e={}){return Object.assign(e,{xd:this.xd,cookieJar:this.cookieJar},this.opts),new Ye(this.uri(),e)}doWrite(e,n){const i=this.request({method:"POST",data:e});i.on("success",n),i.on("error",(r,s)=>{this.onError("xhr post error",r,s)})}doPoll(){const e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(n,i)=>{this.onError("xhr poll error",n,i)}),this.pollXhr=e}}class Ye extends J{constructor(e,n){super(),Is(this,n),this.opts=n,this.method=n.method||"GET",this.uri=e,this.data=n.data!==void 0?n.data:null,this.create()}create(){var e;const n=Uf(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");n.xdomain=!!this.opts.xd;const i=this.xhr=new Ff(n);try{i.open(this.method,this.uri,!0);try{if(this.opts.extraHeaders){i.setDisableHeaderCheck&&i.setDisableHeaderCheck(!0);for(let r in this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(r)&&i.setRequestHeader(r,this.opts.extraHeaders[r])}}catch{}if(this.method==="POST")try{i.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{i.setRequestHeader("Accept","*/*")}catch{}(e=this.opts.cookieJar)===null||e===void 0||e.addCookies(i),"withCredentials"in i&&(i.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(i.timeout=this.opts.requestTimeout),i.onreadystatechange=()=>{var r;i.readyState===3&&((r=this.opts.cookieJar)===null||r===void 0||r.parseCookies(i)),i.readyState===4&&(i.status===200||i.status===1223?this.onLoad():this.setTimeoutFn(()=>{this.onError(typeof i.status=="number"?i.status:0)},0))},i.send(this.data)}catch(r){this.setTimeoutFn(()=>{this.onError(r)},0);return}typeof document<"u"&&(this.index=Ye.requestsCount++,Ye.requests[this.index]=this)}onError(e){this.emitReserved("error",e,this.xhr),this.cleanup(!0)}cleanup(e){if(!(typeof this.xhr>"u"||this.xhr===null)){if(this.xhr.onreadystatechange=Qy,e)try{this.xhr.abort()}catch{}typeof document<"u"&&delete Ye.requests[this.index],this.xhr=null}}onLoad(){const e=this.xhr.responseText;e!==null&&(this.emitReserved("data",e),this.emitReserved("success"),this.cleanup())}abort(){this.cleanup()}}Ye.requestsCount=0;Ye.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",kp);else if(typeof addEventListener=="function"){const t="onpagehide"in je?"pagehide":"unload";addEventListener(t,kp,!1)}}function kp(){for(let t in Ye.requests)Ye.requests.hasOwnProperty(t)&&Ye.requests[t].abort()}const Bl=typeof Promise=="function"&&typeof Promise.resolve=="function"?e=>Promise.resolve().then(e):(e,n)=>n(e,0),xr=je.WebSocket||je.MozWebSocket,Cp=!0,Xy="arraybuffer",bp=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class Jy extends zl{constructor(e){super(e),this.supportsBinary=!e.forceBase64}get name(){return"websocket"}doOpen(){if(!this.check())return;const e=this.uri(),n=this.opts.protocols,i=bp?{}:Uf(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(i.headers=this.opts.extraHeaders);try{this.ws=Cp&&!bp?n?new xr(e,n):new xr(e):new xr(e,n,i)}catch(r){return this.emitReserved("error",r)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let n=0;n{const o={};try{Cp&&this.ws.send(s)}catch{}r&&Bl(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.close(),this.ws=null)}uri(){const e=this.opts.secure?"wss":"ws",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=$f()),this.supportsBinary||(n.b64=1),this.createUri(e,n)}check(){return!!xr}}class Yy extends zl{get name(){return"webtransport"}doOpen(){typeof WebTransport=="function"&&(this.transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name]),this.transport.closed.then(()=>{this.onClose()}).catch(e=>{this.onError("webtransport error",e)}),this.transport.ready.then(()=>{this.transport.createBidirectionalStream().then(e=>{const n=Iy(Number.MAX_SAFE_INTEGER,this.socket.binaryType),i=e.readable.pipeThrough(n).getReader(),r=Ry();r.readable.pipeTo(e.writable),this.writer=r.writable.getWriter();const s=()=>{i.read().then(({done:a,value:l})=>{a||(this.onPacket(l),s())}).catch(a=>{})};s();const o={type:"open"};this.query.sid&&(o.data=`{"sid":"${this.query.sid}"}`),this.writer.write(o).then(()=>this.onOpen())})}))}write(e){this.writable=!1;for(let n=0;n{r&&Bl(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var e;(e=this.transport)===null||e===void 0||e.close()}}const Zy={websocket:Jy,webtransport:Yy,polling:Gy},e0=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,t0=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Aa(t){if(t.length>2e3)throw"URI too long";const e=t,n=t.indexOf("["),i=t.indexOf("]");n!=-1&&i!=-1&&(t=t.substring(0,n)+t.substring(n,i).replace(/:/g,";")+t.substring(i,t.length));let r=e0.exec(t||""),s={},o=14;for(;o--;)s[t0[o]]=r[o]||"";return n!=-1&&i!=-1&&(s.source=e,s.host=s.host.substring(1,s.host.length-1).replace(/;/g,":"),s.authority=s.authority.replace("[","").replace("]","").replace(/;/g,":"),s.ipv6uri=!0),s.pathNames=n0(s,s.path),s.queryKey=i0(s,s.query),s}function n0(t,e){const n=/\/{2,9}/g,i=e.replace(n,"/").split("/");return(e.slice(0,1)=="/"||e.length===0)&&i.splice(0,1),e.slice(-1)=="/"&&i.splice(i.length-1,1),i}function i0(t,e){const n={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(i,r,s){r&&(n[r]=s)}),n}let qf=class fn extends J{constructor(e,n={}){super(),this.binaryType=Xy,this.writeBuffer=[],e&&typeof e=="object"&&(n=e,e=null),e?(e=Aa(e),n.hostname=e.host,n.secure=e.protocol==="https"||e.protocol==="wss",n.port=e.port,e.query&&(n.query=e.query)):n.host&&(n.hostname=Aa(n.host).host),Is(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=n.transports||["polling","websocket","webtransport"],this.writeBuffer=[],this.prevBufferLen=0,this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=Fy(this.opts.query)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingTimeoutTimer=null,typeof addEventListener=="function"&&(this.opts.closeOnBeforeunload&&(this.beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this.beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this.offlineEventListener=()=>{this.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",this.offlineEventListener,!1))),this.open()}createTransport(e){const n=Object.assign({},this.opts.query);n.EIO=Bf,n.transport=e,this.id&&(n.sid=this.id);const i=Object.assign({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new Zy[e](i)}open(){let e;if(this.opts.rememberUpgrade&&fn.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1)e="websocket";else if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}else e=this.transports[0];this.readyState="opening";try{e=this.createTransport(e)}catch{this.transports.shift(),this.open();return}e.open(),this.setTransport(e)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",n=>this.onClose("transport close",n))}probe(e){let n=this.createTransport(e),i=!1;fn.priorWebsocketSuccess=!1;const r=()=>{i||(n.send([{type:"ping",data:"probe"}]),n.once("packet",d=>{if(!i)if(d.type==="pong"&&d.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;fn.priorWebsocketSuccess=n.name==="websocket",this.transport.pause(()=>{i||this.readyState!=="closed"&&(p(),this.setTransport(n),n.send([{type:"upgrade"}]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{const u=new Error("probe error");u.transport=n.name,this.emitReserved("upgradeError",u)}}))};function s(){i||(i=!0,p(),n.close(),n=null)}const o=d=>{const u=new Error("probe error: "+d);u.transport=n.name,s(),this.emitReserved("upgradeError",u)};function a(){o("transport closed")}function l(){o("socket closed")}function c(d){n&&d.name!==n.name&&s()}const p=()=>{n.removeListener("open",r),n.removeListener("error",o),n.removeListener("close",a),this.off("close",l),this.off("upgrading",c)};n.once("open",r),n.once("error",o),n.once("close",a),this.once("close",l),this.once("upgrading",c),this.upgrades.indexOf("webtransport")!==-1&&e!=="webtransport"?this.setTimeoutFn(()=>{i||n.open()},200):n.open()}onOpen(){if(this.readyState="open",fn.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush(),this.readyState==="open"&&this.opts.upgrade){let e=0;const n=this.upgrades.length;for(;e{this.onClose("ping timeout")},this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}onDrain(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const e=this.getWritablePackets();this.transport.send(e),this.prevBufferLen=e.length,this.emitReserved("flush")}}getWritablePackets(){if(!(this.maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let i=0;i0&&n>this.maxPayload)return this.writeBuffer.slice(0,i);n+=2}return this.writeBuffer}write(e,n,i){return this.sendPacket("message",e,n,i),this}send(e,n,i){return this.sendPacket("message",e,n,i),this}sendPacket(e,n,i,r){if(typeof n=="function"&&(r=n,n=void 0),typeof i=="function"&&(r=i,i=null),this.readyState==="closing"||this.readyState==="closed")return;i=i||{},i.compress=i.compress!==!1;const s={type:e,data:n,options:i};this.emitReserved("packetCreate",s),this.writeBuffer.push(s),r&&this.once("flush",r),this.flush()}close(){const e=()=>{this.onClose("forced close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),e()},i=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?i():e()}):this.upgrading?i():e()),this}onError(e){fn.priorWebsocketSuccess=!1,this.emitReserved("error",e),this.onClose("transport error",e)}onClose(e,n){(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")&&(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),typeof removeEventListener=="function"&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",e,n),this.writeBuffer=[],this.prevBufferLen=0)}filterUpgrades(e){const n=[];let i=0;const r=e.length;for(;itypeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(t):t.buffer instanceof ArrayBuffer,Vf=Object.prototype.toString,a0=typeof Blob=="function"||typeof Blob<"u"&&Vf.call(Blob)==="[object BlobConstructor]",l0=typeof File=="function"||typeof File<"u"&&Vf.call(File)==="[object FileConstructor]";function Ul(t){return s0&&(t instanceof ArrayBuffer||o0(t))||a0&&t instanceof Blob||l0&&t instanceof File}function Mr(t,e){if(!t||typeof t!="object")return!1;if(Array.isArray(t)){for(let n=0,i=t.length;n=0&&t.num{delete this.acks[e];for(let o=0;o{this.io.clearTimeoutFn(s),n.apply(this,[null,...o])}}emitWithAck(e,...n){const i=this.flags.timeout!==void 0||this._opts.ackTimeout!==void 0;return new Promise((r,s)=>{n.push((o,a)=>i?o?s(o):r(a):r(o)),this.emit(e,...n)})}_addToQueue(e){let n;typeof e[e.length-1]=="function"&&(n=e.pop());const i={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((r,...s)=>i!==this._queue[0]?void 0:(r!==null?i.tryCount>this._opts.retries&&(this._queue.shift(),n&&n(r)):(this._queue.shift(),n&&n(null,...s)),i.pending=!1,this._drainQueue())),this._queue.push(i),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||this._queue.length===0)return;const n=this._queue[0];n.pending&&!e||(n.pending=!0,n.tryCount++,this.flags=n.flags,this.emit.apply(this,n.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){typeof this.auth=="function"?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:M.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,n){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,n)}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case M.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case M.EVENT:case M.BINARY_EVENT:this.onevent(e);break;case M.ACK:case M.BINARY_ACK:this.onack(e);break;case M.DISCONNECT:this.ondisconnect();break;case M.CONNECT_ERROR:this.destroy();const i=new Error(e.data.message);i.data=e.data.data,this.emitReserved("connect_error",i);break}}onevent(e){const n=e.data||[];e.id!=null&&n.push(this.ack(e.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){const n=this._anyListeners.slice();for(const i of n)i.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]=="string"&&(this._lastOffset=e[e.length-1])}ack(e){const n=this;let i=!1;return function(...r){i||(i=!0,n.packet({type:M.ACK,id:e,data:r}))}}onack(e){const n=this.acks[e.id];typeof n=="function"&&(n.apply(this,e.data),delete this.acks[e.id])}onconnect(e,n){this.id=e,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(e=>e()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:M.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const n=this._anyListeners;for(let i=0;i0&&t.jitter<=1?t.jitter:0,this.attempts=0}Wn.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),n=Math.floor(e*this.jitter*t);t=Math.floor(e*10)&1?t+n:t-n}return Math.min(t,this.max)|0};Wn.prototype.reset=function(){this.attempts=0};Wn.prototype.setMin=function(t){this.ms=t};Wn.prototype.setMax=function(t){this.max=t};Wn.prototype.setJitter=function(t){this.jitter=t};class Oa extends J{constructor(e,n){var i;super(),this.nsps={},this.subs=[],e&&typeof e=="object"&&(n=e,e=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,Is(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((i=n.randomizationFactor)!==null&&i!==void 0?i:.5),this.backoff=new Wn({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=e;const r=n.parser||m0;this.encoder=new r.Encoder,this.decoder=new r.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var n;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(n=this.backoff)===null||n===void 0||n.setMin(e),this)}randomizationFactor(e){var n;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(n=this.backoff)===null||n===void 0||n.setJitter(e),this)}reconnectionDelayMax(e){var n;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(n=this.backoff)===null||n===void 0||n.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(~this._readyState.indexOf("open"))return this;this.engine=new qf(this.uri,this.opts);const n=this.engine,i=this;this._readyState="opening",this.skipReconnect=!1;const r=De(n,"open",function(){i.onopen(),e&&e()}),s=a=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",a),e?e(a):this.maybeReconnectOnOpen()},o=De(n,"error",s);if(this._timeout!==!1){const a=this._timeout,l=this.setTimeoutFn(()=>{r(),s(new Error("timeout")),n.close()},a);this.opts.autoUnref&&l.unref(),this.subs.push(()=>{this.clearTimeoutFn(l)})}return this.subs.push(r),this.subs.push(o),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const e=this.engine;this.subs.push(De(e,"ping",this.onping.bind(this)),De(e,"data",this.ondata.bind(this)),De(e,"error",this.onerror.bind(this)),De(e,"close",this.onclose.bind(this)),De(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(n){this.onclose("parse error",n)}}ondecoded(e){Bl(()=>{this.emitReserved("packet",e)},this.setTimeoutFn)}onerror(e){this.emitReserved("error",e)}socket(e,n){let i=this.nsps[e];return i?this._autoConnect&&!i.active&&i.connect():(i=new Wf(this,e,n),this.nsps[e]=i),i}_destroy(e){const n=Object.keys(this.nsps);for(const i of n)if(this.nsps[i].active)return;this._close()}_packet(e){const n=this.encoder.encode(e);for(let i=0;ie()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}disconnect(){return this._close()}onclose(e,n){this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const n=this.backoff.duration();this._reconnecting=!0;const i=this.setTimeoutFn(()=>{e.skipReconnect||(this.emitReserved("reconnect_attempt",e.backoff.attempts),!e.skipReconnect&&e.open(r=>{r?(e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",r)):e.onreconnect()}))},n);this.opts.autoUnref&&i.unref(),this.subs.push(()=>{this.clearTimeoutFn(i)})}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}const ti={};function zr(t,e){typeof t=="object"&&(e=t,t=void 0),e=e||{};const n=r0(t,e.path||"/socket.io"),i=n.source,r=n.id,s=n.path,o=ti[r]&&s in ti[r].nsps,a=e.forceNew||e["force new connection"]||e.multiplex===!1||o;let l;return a?l=new Oa(i,e):(ti[r]||(ti[r]=new Oa(i,e)),l=ti[r]),n.query&&!e.query&&(e.query=n.queryKey),l.socket(n.path,e)}Object.assign(zr,{Manager:Oa,Socket:Wf,io:zr,connect:zr});const Qf=S.createContext(),Kf=()=>S.useContext(Qf),v0=({children:t})=>{const[e,n]=S.useState(null),[i,r]=S.useState([]),{authUser:s}=cn();return S.useEffect(()=>{if(s){const o=zr("https://chat-app-yt.onrender.com",{query:{userId:s._id}});return n(o),o.on("getOnlineUsers",a=>{r(a)}),()=>o.close()}else e&&(e.close(),n(null))},[s]),w.jsx(Qf.Provider,{value:{socket:e,onlineUsers:i},children:t})},x0="/assets/notification-KoQ3t5UR.mp3",y0=()=>{const{socket:t}=Kf(),{messages:e,setMessages:n}=an();S.useEffect(()=>(t==null||t.on("newMessage",i=>{i.shouldShake=!0,new Audio(x0).play(),n([...e,i])}),()=>t==null?void 0:t.off("newMessage")),[t,n,e])},w0=()=>{const{messages:t,loading:e}=Sy();y0();const n=S.useRef();return S.useEffect(()=>{setTimeout(()=>{var i;(i=n.current)==null||i.scrollIntoView({behavior:"smooth"})},100)},[t]),w.jsxs("div",{className:"px-4 flex-1 overflow-auto",children:[!e&&t.length>0&&t.map(i=>w.jsx("div",{ref:n,children:w.jsx(Ty,{message:i})},i._id)),e&&[...Array(3)].map((i,r)=>w.jsx(ky,{},r)),!e&&t.length===0&&w.jsx("p",{className:"text-center",children:"Send a message to start the conversation"})]})};function _0(t){return Ls({tag:"svg",attr:{version:"1.2",baseProfile:"tiny",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M21 7h-3c0-1.65-1.35-3-3-3h-12c-1.65 0-3 1.35-3 3v7c0 1.65 1.35 3 3 3v3l3-3c0 1.65 1.35 3 3 3h8l3 3v-3h1c1.65 0 3-1.35 3-3v-7c0-1.65-1.35-3-3-3zm-18 8c-.542 0-1-.458-1-1v-7c0-.542.458-1 1-1h12c.542 0 1 .458 1 1v1h-6.5c-1.379 0-2.5 1.121-2.5 2.5v4.5h-4zm19 2c0 .542-.458 1-1 1h-12c-.542 0-1-.458-1-1v-6.5c0-.827.673-1.5 1.5-1.5h11.5c.542 0 1 .458 1 1v7z"},child:[]}]})(t)}const E0=()=>{const{selectedConversation:t,setSelectedConversation:e}=an();return S.useEffect(()=>()=>e(null),[e]),w.jsx("div",{className:"md:min-w-[450px] flex flex-col",children:t?w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:"bg-slate-500 px-4 py-2 mb-2",children:[w.jsx("span",{className:"label-text",children:"To:"})," ",w.jsx("span",{className:"text-gray-900 font-bold",children:t.fullName})]}),w.jsx(w0,{}),w.jsx(Ey,{})]}):w.jsx(S0,{})})},S0=()=>{const{authUser:t}=cn();return w.jsx("div",{className:"flex items-center justify-center w-full h-full",children:w.jsxs("div",{className:"px-4 text-center sm:text-lg md:text-xl text-gray-200 font-semibold flex flex-col items-center gap-2",children:[w.jsxs("p",{children:["Welcome 👋 ",t.fullName," ❄"]}),w.jsx("p",{children:"Select a chat to start messaging"}),w.jsx(_0,{className:"text-3xl md:text-6xl text-center"})]})})},Gf=()=>{const[t,e]=S.useState(!1),[n,i]=S.useState([]);return S.useEffect(()=>{(async()=>{e(!0);try{const o=await(await fetch("/api/users")).json();if(o.error)throw new Error(o.error);i(o)}catch(s){Le.error(s.message)}finally{e(!1)}})()},[]),{loading:t,conversations:n}},Np=["👾","⭐","🌟","🎉","🎊","🎈","🎁","🎂","🎄","🎃","🎗","🎟","🎫","🎖","🏆","🏅","🥇","🥈","🥉","⚽","🏀","🏈","⚾","🎾","🏐","🏉","🎱","🏓","🏸","🥅","🏒","🏑","🏏","⛳","🏹","🎣","🥊","🥋","🎽","⛸","🥌","🛷","🎿","⛷","🏂","🏋️","🤼","🤸","🤺","⛹️","🤾","🏌️","🏇","🧘"],k0=()=>Np[Math.floor(Math.random()*Np.length)],C0=({conversation:t,lastIdx:e,emoji:n})=>{const{selectedConversation:i,setSelectedConversation:r}=an(),s=(i==null?void 0:i._id)===t._id,{onlineUsers:o}=Kf(),a=o.includes(t._id);return w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:`flex gap-2 items-center hover:bg-sky-500 rounded p-2 py-1 cursor-pointer + ${s?"bg-sky-500":""} + `,onClick:()=>r(t),children:[w.jsx("div",{className:`avatar ${a?"online":""}`,children:w.jsx("div",{className:"w-12 rounded-full",children:w.jsx("img",{src:t.profilePic,alt:"user avatar"})})}),w.jsx("div",{className:"flex flex-col flex-1",children:w.jsxs("div",{className:"flex gap-3 justify-between",children:[w.jsx("p",{className:"font-bold text-gray-200",children:t.fullName}),w.jsx("span",{className:"text-xl",children:n})]})})]}),!e&&w.jsx("div",{className:"divider my-0 py-0 h-1"})]})},b0=()=>{const{loading:t,conversations:e}=Gf();return w.jsxs("div",{className:"py-2 flex flex-col overflow-auto",children:[e.map((n,i)=>w.jsx(C0,{conversation:n,emoji:k0(),lastIdx:i===e.length-1},n._id)),t?w.jsx("span",{className:"loading loading-spinner mx-auto"}):null]})};function T0(t){return Ls({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M16 13v-2H7V8l-5 4 5 4v-3z"},child:[]},{tag:"path",attr:{d:"M20 3h-9c-1.103 0-2 .897-2 2v4h2V5h9v14h-9v-4H9v4c0 1.103.897 2 2 2h9c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2z"},child:[]}]})(t)}const N0=()=>{const[t,e]=S.useState(!1),{setAuthUser:n}=cn();return{loading:t,logout:async()=>{e(!0);try{const s=await(await fetch("/api/auth/logout",{method:"POST",headers:{"Content-Type":"application/json"}})).json();if(s.error)throw new Error(s.error);localStorage.removeItem("chat-user"),n(null)}catch(r){Le.error(r.message)}finally{e(!1)}}}},A0=()=>{const{loading:t,logout:e}=N0();return w.jsx("div",{className:"mt-auto",children:t?w.jsx("span",{className:"loading loading-spinner"}):w.jsx(T0,{className:"w-6 h-6 text-white cursor-pointer",onClick:e})})};function j0(t){return Ls({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M464 428 339.92 303.9a160.48 160.48 0 0 0 30.72-94.58C370.64 120.37 298.27 48 209.32 48S48 120.37 48 209.32s72.37 161.32 161.32 161.32a160.48 160.48 0 0 0 94.58-30.72L428 464zM209.32 319.69a110.38 110.38 0 1 1 110.37-110.37 110.5 110.5 0 0 1-110.37 110.37z"},child:[]}]})(t)}const P0=()=>{const[t,e]=S.useState(""),{setSelectedConversation:n}=an(),{conversations:i}=Gf(),r=s=>{if(s.preventDefault(),!t)return;if(t.length<3)return Le.error("Search term must be at least 3 characters long");const o=i.find(a=>a.fullName.toLowerCase().includes(t.toLowerCase()));o?(n(o),e("")):Le.error("No such user found!")};return w.jsxs("form",{onSubmit:r,className:"flex items-center gap-2",children:[w.jsx("input",{type:"text",placeholder:"Search…",className:"input input-bordered rounded-full",value:t,onChange:s=>e(s.target.value)}),w.jsx("button",{type:"submit",className:"btn btn-circle bg-sky-500 text-white",children:w.jsx(j0,{className:"w-6 h-6 outline-none"})})]})},O0=()=>w.jsxs("div",{className:"border-r border-slate-500 p-4 flex flex-col",children:[w.jsx(P0,{}),w.jsx("div",{className:"divider px-3"}),w.jsx(b0,{}),w.jsx(A0,{})]}),L0=()=>w.jsxs("div",{className:"flex sm:h-[450px] md:h-[550px] rounded-lg overflow-hidden bg-gray-400 bg-clip-padding backdrop-filter backdrop-blur-lg bg-opacity-0",children:[w.jsx(O0,{}),w.jsx(E0,{})]}),R0=()=>{const[t,e]=S.useState(!1),{setAuthUser:n}=cn();return{loading:t,login:async(r,s)=>{if(I0(r,s)){e(!0);try{const l=await(await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:r,password:s})})).json();if(l.error)throw new Error(l.error);localStorage.setItem("chat-user",JSON.stringify(l)),n(l)}catch(a){Le.error(a.message)}finally{e(!1)}}}}};function I0(t,e){return!t||!e?(Le.error("Please fill in all fields"),!1):!0}var Ki={};const M0={},z0=Object.freeze(Object.defineProperty({__proto__:null,default:M0},Symbol.toStringTag,{value:"Module"})),j=kh(z0);var Xf={exports:{}},$l={exports:{}};const Ap=j,jp=1800;let B0=class{constructor(e){this.options=e||{},this.cookies=[]}set(e,n){let i=Ap.parse(n||""),r=this.parse(e),s;return r.domain?(s=r.domain.replace(/^\./,""),(i.hostname.lengthn.name+"="+n.value).join("; ")}list(e){let n=[],i,r;for(i=this.cookies.length-1;i>=0;i--){if(r=this.cookies[i],this.isExpired(r)){this.cookies.splice(i,i);continue}this.match(r,e)&&n.unshift(r)}return n}parse(e){let n={};return(e||"").toString().split(";").forEach(i=>{let r=i.split("="),s=r.shift().trim().toLowerCase(),o=r.join("=").trim(),a;if(s)switch(s){case"expires":o=new Date(o),o.toString()!=="Invalid Date"&&(n.expires=o);break;case"path":n.path=o;break;case"domain":a=o.toLowerCase(),a.length&&a.charAt(0)!=="."&&(a="."+a),n.domain=a;break;case"max-age":n.expires=new Date(Date.now()+(Number(o)||0)*1e3);break;case"secure":n.secure=!0;break;case"httponly":n.httponly=!0;break;default:n.name||(n.name=s,n.value=o)}}),n}match(e,n){let i=Ap.parse(n||"");return!(i.hostname!==e.domain&&(e.domain.charAt(0)!=="."||("."+i.hostname).substr(-e.domain.length)!==e.domain)||this.getPath(i.pathname).substr(0,e.path.length)!==e.path||e.secure&&i.protocol!=="https:")}add(e){let n,i;if(!e||!e.name)return!1;for(n=0,i=this.cookies.length;n=6.0.0"},et={name:D0,version:$0,description:H0,main:F0,scripts:q0,repository:V0,keywords:W0,author:Q0,license:K0,bugs:G0,homepage:X0,devDependencies:J0,engines:Y0},Z0=j,ew=j,Pp=j,tw=j,nw=j.PassThrough,Jf=U0,iw=et,rw=j,sw=5;$l.exports=function(t,e){return Yf(t,e)};$l.exports.Cookies=Jf;function Yf(t,e){e=e||{},e.fetchRes=e.fetchRes||new nw,e.cookies=e.cookies||new Jf,e.redirects=e.redirects||0,e.maxRedirects=isNaN(e.maxRedirects)?sw:e.maxRedirects,e.cookie&&([].concat(e.cookie||[]).forEach(u=>{e.cookies.set(u,t)}),e.cookie=!1);let n=e.fetchRes,i=Pp.parse(t),r=(e.method||"").toString().trim().toUpperCase()||"GET",s=!1,o,a,l=i.protocol==="https:"?ew:Z0,c={"accept-encoding":"gzip,deflate","user-agent":"nodemailer/"+iw.version};if(Object.keys(e.headers||{}).forEach(u=>{c[u.toLowerCase().trim()]=e.headers[u]}),e.userAgent&&(c["user-agent"]=e.userAgent),i.auth&&(c.Authorization="Basic "+Buffer.from(i.auth).toString("base64")),(o=e.cookies.get(t))&&(c.cookie=o),e.body){if(e.contentType!==!1&&(c["Content-Type"]=e.contentType||"application/x-www-form-urlencoded"),typeof e.body.pipe=="function")c["Transfer-Encoding"]="chunked",a=e.body,a.on("error",u=>{s||(s=!0,u.type="FETCH",u.sourceUrl=t,n.emit("error",u))});else{if(e.body instanceof Buffer)a=e.body;else if(typeof e.body=="object")try{a=Buffer.from(Object.keys(e.body).map(u=>{let g=e.body[u].toString().trim();return encodeURIComponent(u)+"="+encodeURIComponent(g)}).join("&"))}catch(u){if(s)return;s=!0,u.type="FETCH",u.sourceUrl=t,n.emit("error",u);return}else a=Buffer.from(e.body.toString().trim());c["Content-Type"]=e.contentType||"application/x-www-form-urlencoded",c["Content-Length"]=a.length}r=(e.method||"").toString().trim().toUpperCase()||"POST"}let p,d={method:r,host:i.hostname,path:i.path,port:i.port?i.port:i.protocol==="https:"?443:80,headers:c,rejectUnauthorized:!1,agent:!1};e.tls&&Object.keys(e.tls).forEach(u=>{d[u]=e.tls[u]}),i.protocol==="https:"&&i.hostname&&i.hostname!==d.host&&!rw.isIP(i.hostname)&&!d.servername&&(d.servername=i.hostname);try{p=l.request(d)}catch(u){return s=!0,setImmediate(()=>{u.type="FETCH",u.sourceUrl=t,n.emit("error",u)}),n}return e.timeout&&p.setTimeout(e.timeout,()=>{if(s)return;s=!0,p.abort();let u=new Error("Request Timeout");u.type="FETCH",u.sourceUrl=t,n.emit("error",u)}),p.on("error",u=>{s||(s=!0,u.type="FETCH",u.sourceUrl=t,n.emit("error",u))}),p.on("response",u=>{let g;if(!s){switch(u.headers["content-encoding"]){case"gzip":case"deflate":g=tw.createUnzip();break}if(u.headers["set-cookie"]&&[].concat(u.headers["set-cookie"]||[]).forEach(x=>{e.cookies.set(x,t)}),[301,302,303,307,308].includes(u.statusCode)&&u.headers.location){if(e.redirects++,e.redirects>e.maxRedirects){s=!0;let x=new Error("Maximum redirect count exceeded");x.type="FETCH",x.sourceUrl=t,n.emit("error",x),p.abort();return}return e.method="GET",e.body=!1,Yf(Pp.resolve(t,u.headers.location),e)}if(n.statusCode=u.statusCode,n.headers=u.headers,u.statusCode>=300&&!e.allowErrorResponse){s=!0;let x=new Error("Invalid status code "+u.statusCode);x.type="FETCH",x.sourceUrl=t,n.emit("error",x),p.abort();return}u.on("error",x=>{s||(s=!0,x.type="FETCH",x.sourceUrl=t,n.emit("error",x),p.abort())}),g?(u.pipe(g).pipe(n),g.on("error",x=>{s||(s=!0,x.type="FETCH",x.sourceUrl=t,n.emit("error",x),p.abort())})):u.pipe(n)}}),setImmediate(()=>{if(a)try{if(typeof a.pipe=="function")return a.pipe(p);p.write(a)}catch(u){s=!0,u.type="FETCH",u.sourceUrl=t,n.emit("error",u);return}p.end()}),n}var Ms=$l.exports;(function(t){const e=j,n=j,i=j,r=Ms,s=j,o=j,a=j,l=5*60*1e3;let c;try{c=a.networkInterfaces()}catch{}t.exports.networkInterfaces=c;const p=(v,h)=>{let f=t.exports.networkInterfaces;return f?Object.keys(f).map(y=>f[y]).reduce((y,E)=>y.concat(E),[]).filter(y=>!y.internal||h).filter(y=>y.family==="IPv"+v||y.family===v).length>0:!0},d=(v,h,f,m)=>{if(f=f||{},!p(v,f.allowInternalNetworkInterfaces))return m(null,[]);(s.Resolver?new s.Resolver(f):s)["resolve"+v](h,(C,k)=>{if(C){switch(C.code){case s.NODATA:case s.NOTFOUND:case s.NOTIMP:case s.SERVFAIL:case s.CONNREFUSED:case s.REFUSED:case"EAI_AGAIN":return m(null,[])}return m(C)}return m(null,Array.isArray(k)?k:[].concat(k||[]))})},u=t.exports.dnsCache=new Map,g=(v,h)=>v?Object.assign({servername:v.servername,host:!v.addresses||!v.addresses.length?null:v.addresses.length===1?v.addresses[0]:v.addresses[Math.floor(Math.random()*v.addresses.length)]},h||{}):Object.assign({},h||{});t.exports.resolveHostname=(v,h)=>{if(v=v||{},!v.host&&v.servername&&(v.host=v.servername),!v.host||o.isIP(v.host)){let m={addresses:[v.host],servername:v.servername||!1};return h(null,g(m,{cached:!1}))}let f;if(u.has(v.host)&&(f=u.get(v.host),!f.expires||f.expires>=Date.now()))return h(null,g(f.value,{cached:!0}));d(4,v.host,v,(m,y)=>{if(m)return f?h(null,g(f.value,{cached:!0,error:m})):h(m);if(y&&y.length){let E={addresses:y,servername:v.servername||v.host};return u.set(v.host,{value:E,expires:Date.now()+(v.dnsTtl||l)}),h(null,g(E,{cached:!1}))}d(6,v.host,v,(E,C)=>{if(E)return f?h(null,g(f.value,{cached:!0,error:E})):h(E);if(C&&C.length){let k={addresses:C,servername:v.servername||v.host};return u.set(v.host,{value:k,expires:Date.now()+(v.dnsTtl||l)}),h(null,g(k,{cached:!1}))}try{s.lookup(v.host,{all:!0},(k,T)=>{if(k)return f?h(null,g(f.value,{cached:!0,error:k})):h(k);let R=T?T.filter(Y=>p(Y.family)).map(Y=>Y.address).shift():!1;if(T&&T.length&&!R&&console.warn(`Failed to resolve IPv${T[0].family} addresses with current network`),!R&&f)return h(null,g(f.value,{cached:!0}));let P={addresses:R?[R]:[v.host],servername:v.servername||v.host};return u.set(v.host,{value:P,expires:Date.now()+(v.dnsTtl||l)}),h(null,g(P,{cached:!1}))})}catch(k){return f?h(null,g(f.value,{cached:!0,error:k})):h(k)}})})},t.exports.parseConnectionUrl=v=>{v=v||"";let h={};return[e.parse(v,!0)].forEach(f=>{let m;switch(f.protocol){case"smtp:":h.secure=!1;break;case"smtps:":h.secure=!0;break;case"direct:":h.direct=!0;break}!isNaN(f.port)&&Number(f.port)&&(h.port=Number(f.port)),f.hostname&&(h.host=f.hostname),f.auth&&(m=f.auth.split(":"),h.auth||(h.auth={}),h.auth.user=m.shift(),h.auth.pass=m.join(":")),Object.keys(f.query||{}).forEach(y=>{let E=h,C=y,k=f.query[y];switch(isNaN(k)||(k=Number(k)),k){case"true":k=!0;break;case"false":k=!1;break}if(y.indexOf("tls.")===0)C=y.substr(4),h.tls||(h.tls={}),E=h.tls;else if(y.indexOf(".")>=0)return;C in E||(E[C]=k)})}),h},t.exports._logFunc=(v,h,f,m,y,...E)=>{let C={};Object.keys(f||{}).forEach(k=>{k!=="level"&&(C[k]=f[k])}),Object.keys(m||{}).forEach(k=>{k!=="level"&&(C[k]=m[k])}),v[h](C,y,...E)},t.exports.getLogger=(v,h)=>{v=v||{};let f={},m=["trace","debug","info","warn","error","fatal"];if(!v.logger)return m.forEach(E=>{f[E]=()=>!1}),f;let y=v.logger;return v.logger===!0&&(y=_(m)),m.forEach(E=>{f[E]=(C,k,...T)=>{t.exports._logFunc(y,E,h,C,k,...T)}}),f},t.exports.callbackPromise=(v,h)=>function(){let f=Array.from(arguments),m=f.shift();m?h(m):v(...f)},t.exports.parseDataURI=v=>{let h=v,f=h.indexOf(",");if(!f)return v;let m=h.substring(f+1),y=h.substring(5,f),E,C=y.split(";"),k=C.length>1?C[C.length-1]:!1;k&&k.indexOf("=")<0&&(E=k.toLowerCase(),C.pop());let T=C.shift()||"application/octet-stream",R={};for(let P of C){let Y=P.indexOf("=");if(Y>=0){let Ht=P.substring(0,Y),Ft=P.substring(Y+1);R[Ht]=Ft}}switch(E){case"base64":m=Buffer.from(m,"base64");break;case"utf8":m=Buffer.from(m);break;default:try{m=Buffer.from(decodeURIComponent(m))}catch{m=Buffer.from(m)}m=Buffer.from(m)}return{data:m,encoding:E,contentType:T,params:R}},t.exports.resolveContent=(v,h,f)=>{let m;f||(m=new Promise((k,T)=>{f=t.exports.callbackPromise(k,T)}));let y=v&&v[h]&&v[h].content||v[h],E,C=(typeof v[h]=="object"&&v[h].encoding||"utf8").toString().toLowerCase().replace(/[-_\s]/g,"");if(!y)return f(null,y);if(typeof y=="object"){if(typeof y.pipe=="function")return x(y,(k,T)=>{if(k)return f(k);v[h].content?v[h].content=T:v[h]=T,f(null,T)});if(/^https?:\/\//i.test(y.path||y.href))return E=r(y.path||y.href),x(E,f);if(/^data:/i.test(y.path||y.href)){let k=t.exports.parseDataURI(y.path||y.href);return!k||!k.data?f(null,Buffer.from(0)):f(null,k.data)}else if(y.path)return x(i.createReadStream(y.path),f)}return typeof v[h].content=="string"&&!["utf8","usascii","ascii"].includes(C)&&(y=Buffer.from(v[h].content,C)),setImmediate(()=>f(null,y)),m},t.exports.assign=function(){let v=Array.from(arguments),h=v.shift()||{};return v.forEach(f=>{Object.keys(f||{}).forEach(m=>{["tls","auth"].includes(m)&&f[m]&&typeof f[m]=="object"?(h[m]||(h[m]={}),Object.keys(f[m]).forEach(y=>{h[m][y]=f[m][y]})):h[m]=f[m]})}),h},t.exports.encodeXText=v=>{if(!/[^\x21-\x2A\x2C-\x3C\x3E-\x7E]/.test(v))return v;let h=Buffer.from(v),f="";for(let m=0,y=h.length;m126||E===43||E===61?f+="+"+(E<16?"0":"")+E.toString(16).toUpperCase():f+=String.fromCharCode(E)}return f};function x(v,h){let f=!1,m=[],y=0;v.on("error",E=>{f||(f=!0,h(E))}),v.on("readable",()=>{let E;for(;(E=v.read())!==null;)m.push(E),y+=E.length}),v.on("end",()=>{if(f)return;f=!0;let E;try{E=Buffer.concat(m,y)}catch(C){return h(C)}h(null,E)})}function _(v){let h=0,f=new Map;v.forEach(E=>{E.length>h&&(h=E.length)}),v.forEach(E=>{let C=E.toUpperCase();C.length{let R="";C&&(C.tnx==="server"?R="S: ":C.tnx==="client"&&(R="C: "),C.sid&&(R="["+C.sid+"] "+R),C.cid&&(R="[#"+C.cid+"] "+R)),k=n.format(k,...T),k.split(/\r?\n/).forEach(P=>{console.log("[%s] %s %s",new Date().toISOString().substr(0,19).replace(/T/," "),f.get(E),R+P)})},y={};return v.forEach(E=>{y[E]=m.bind(null,E)}),y}})(Xf);var we=Xf.exports;const ow=j,Op="application/octet-stream",aw="bin",Lp=new Map([["application/acad","dwg"],["application/applixware","aw"],["application/arj","arj"],["application/atom+xml","xml"],["application/atomcat+xml","atomcat"],["application/atomsvc+xml","atomsvc"],["application/base64",["mm","mme"]],["application/binhex","hqx"],["application/binhex4","hqx"],["application/book",["book","boo"]],["application/ccxml+xml,","ccxml"],["application/cdf","cdf"],["application/cdmi-capability","cdmia"],["application/cdmi-container","cdmic"],["application/cdmi-domain","cdmid"],["application/cdmi-object","cdmio"],["application/cdmi-queue","cdmiq"],["application/clariscad","ccad"],["application/commonground","dp"],["application/cu-seeme","cu"],["application/davmount+xml","davmount"],["application/drafting","drw"],["application/dsptype","tsp"],["application/dssc+der","dssc"],["application/dssc+xml","xdssc"],["application/dxf","dxf"],["application/ecmascript",["js","es"]],["application/emma+xml","emma"],["application/envoy","evy"],["application/epub+zip","epub"],["application/excel",["xls","xl","xla","xlb","xlc","xld","xlk","xll","xlm","xlt","xlv","xlw"]],["application/exi","exi"],["application/font-tdpfr","pfr"],["application/fractals","fif"],["application/freeloader","frl"],["application/futuresplash","spl"],["application/gnutar","tgz"],["application/groupwise","vew"],["application/hlp","hlp"],["application/hta","hta"],["application/hyperstudio","stk"],["application/i-deas","unv"],["application/iges",["iges","igs"]],["application/inf","inf"],["application/internet-property-stream","acx"],["application/ipfix","ipfix"],["application/java","class"],["application/java-archive","jar"],["application/java-byte-code","class"],["application/java-serialized-object","ser"],["application/java-vm","class"],["application/javascript","js"],["application/json","json"],["application/lha","lha"],["application/lzx","lzx"],["application/mac-binary","bin"],["application/mac-binhex","hqx"],["application/mac-binhex40","hqx"],["application/mac-compactpro","cpt"],["application/macbinary","bin"],["application/mads+xml","mads"],["application/marc","mrc"],["application/marcxml+xml","mrcx"],["application/mathematica","ma"],["application/mathml+xml","mathml"],["application/mbedlet","mbd"],["application/mbox","mbox"],["application/mcad","mcd"],["application/mediaservercontrol+xml","mscml"],["application/metalink4+xml","meta4"],["application/mets+xml","mets"],["application/mime","aps"],["application/mods+xml","mods"],["application/mp21","m21"],["application/mp4","mp4"],["application/mspowerpoint",["ppt","pot","pps","ppz"]],["application/msword",["doc","dot","w6w","wiz","word"]],["application/mswrite","wri"],["application/mxf","mxf"],["application/netmc","mcp"],["application/octet-stream",["*"]],["application/oda","oda"],["application/oebps-package+xml","opf"],["application/ogg","ogx"],["application/olescript","axs"],["application/onenote","onetoc"],["application/patch-ops-error+xml","xer"],["application/pdf","pdf"],["application/pgp-encrypted","asc"],["application/pgp-signature","pgp"],["application/pics-rules","prf"],["application/pkcs-12","p12"],["application/pkcs-crl","crl"],["application/pkcs10","p10"],["application/pkcs7-mime",["p7c","p7m"]],["application/pkcs7-signature","p7s"],["application/pkcs8","p8"],["application/pkix-attr-cert","ac"],["application/pkix-cert",["cer","crt"]],["application/pkix-crl","crl"],["application/pkix-pkipath","pkipath"],["application/pkixcmp","pki"],["application/plain","text"],["application/pls+xml","pls"],["application/postscript",["ps","ai","eps"]],["application/powerpoint","ppt"],["application/pro_eng",["part","prt"]],["application/prs.cww","cww"],["application/pskc+xml","pskcxml"],["application/rdf+xml","rdf"],["application/reginfo+xml","rif"],["application/relax-ng-compact-syntax","rnc"],["application/resource-lists+xml","rl"],["application/resource-lists-diff+xml","rld"],["application/ringing-tones","rng"],["application/rls-services+xml","rs"],["application/rsd+xml","rsd"],["application/rss+xml","xml"],["application/rtf",["rtf","rtx"]],["application/sbml+xml","sbml"],["application/scvp-cv-request","scq"],["application/scvp-cv-response","scs"],["application/scvp-vp-request","spq"],["application/scvp-vp-response","spp"],["application/sdp","sdp"],["application/sea","sea"],["application/set","set"],["application/set-payment-initiation","setpay"],["application/set-registration-initiation","setreg"],["application/shf+xml","shf"],["application/sla","stl"],["application/smil",["smi","smil"]],["application/smil+xml","smi"],["application/solids","sol"],["application/sounder","sdr"],["application/sparql-query","rq"],["application/sparql-results+xml","srx"],["application/srgs","gram"],["application/srgs+xml","grxml"],["application/sru+xml","sru"],["application/ssml+xml","ssml"],["application/step",["step","stp"]],["application/streamingmedia","ssm"],["application/tei+xml","tei"],["application/thraud+xml","tfi"],["application/timestamped-data","tsd"],["application/toolbook","tbk"],["application/vda","vda"],["application/vnd.3gpp.pic-bw-large","plb"],["application/vnd.3gpp.pic-bw-small","psb"],["application/vnd.3gpp.pic-bw-var","pvb"],["application/vnd.3gpp2.tcap","tcap"],["application/vnd.3m.post-it-notes","pwn"],["application/vnd.accpac.simply.aso","aso"],["application/vnd.accpac.simply.imp","imp"],["application/vnd.acucobol","acu"],["application/vnd.acucorp","atc"],["application/vnd.adobe.air-application-installer-package+zip","air"],["application/vnd.adobe.fxp","fxp"],["application/vnd.adobe.xdp+xml","xdp"],["application/vnd.adobe.xfdf","xfdf"],["application/vnd.ahead.space","ahead"],["application/vnd.airzip.filesecure.azf","azf"],["application/vnd.airzip.filesecure.azs","azs"],["application/vnd.amazon.ebook","azw"],["application/vnd.americandynamics.acc","acc"],["application/vnd.amiga.ami","ami"],["application/vnd.android.package-archive","apk"],["application/vnd.anser-web-certificate-issue-initiation","cii"],["application/vnd.anser-web-funds-transfer-initiation","fti"],["application/vnd.antix.game-component","atx"],["application/vnd.apple.installer+xml","mpkg"],["application/vnd.apple.mpegurl","m3u8"],["application/vnd.aristanetworks.swi","swi"],["application/vnd.audiograph","aep"],["application/vnd.blueice.multipass","mpm"],["application/vnd.bmi","bmi"],["application/vnd.businessobjects","rep"],["application/vnd.chemdraw+xml","cdxml"],["application/vnd.chipnuts.karaoke-mmd","mmd"],["application/vnd.cinderella","cdy"],["application/vnd.claymore","cla"],["application/vnd.cloanto.rp9","rp9"],["application/vnd.clonk.c4group","c4g"],["application/vnd.cluetrust.cartomobile-config","c11amc"],["application/vnd.cluetrust.cartomobile-config-pkg","c11amz"],["application/vnd.commonspace","csp"],["application/vnd.contact.cmsg","cdbcmsg"],["application/vnd.cosmocaller","cmc"],["application/vnd.crick.clicker","clkx"],["application/vnd.crick.clicker.keyboard","clkk"],["application/vnd.crick.clicker.palette","clkp"],["application/vnd.crick.clicker.template","clkt"],["application/vnd.crick.clicker.wordbank","clkw"],["application/vnd.criticaltools.wbs+xml","wbs"],["application/vnd.ctc-posml","pml"],["application/vnd.cups-ppd","ppd"],["application/vnd.curl.car","car"],["application/vnd.curl.pcurl","pcurl"],["application/vnd.data-vision.rdz","rdz"],["application/vnd.denovo.fcselayout-link","fe_launch"],["application/vnd.dna","dna"],["application/vnd.dolby.mlp","mlp"],["application/vnd.dpgraph","dpg"],["application/vnd.dreamfactory","dfac"],["application/vnd.dvb.ait","ait"],["application/vnd.dvb.service","svc"],["application/vnd.dynageo","geo"],["application/vnd.ecowin.chart","mag"],["application/vnd.enliven","nml"],["application/vnd.epson.esf","esf"],["application/vnd.epson.msf","msf"],["application/vnd.epson.quickanime","qam"],["application/vnd.epson.salt","slt"],["application/vnd.epson.ssf","ssf"],["application/vnd.eszigno3+xml","es3"],["application/vnd.ezpix-album","ez2"],["application/vnd.ezpix-package","ez3"],["application/vnd.fdf","fdf"],["application/vnd.fdsn.seed","seed"],["application/vnd.flographit","gph"],["application/vnd.fluxtime.clip","ftc"],["application/vnd.framemaker","fm"],["application/vnd.frogans.fnc","fnc"],["application/vnd.frogans.ltf","ltf"],["application/vnd.fsc.weblaunch","fsc"],["application/vnd.fujitsu.oasys","oas"],["application/vnd.fujitsu.oasys2","oa2"],["application/vnd.fujitsu.oasys3","oa3"],["application/vnd.fujitsu.oasysgp","fg5"],["application/vnd.fujitsu.oasysprs","bh2"],["application/vnd.fujixerox.ddd","ddd"],["application/vnd.fujixerox.docuworks","xdw"],["application/vnd.fujixerox.docuworks.binder","xbd"],["application/vnd.fuzzysheet","fzs"],["application/vnd.genomatix.tuxedo","txd"],["application/vnd.geogebra.file","ggb"],["application/vnd.geogebra.tool","ggt"],["application/vnd.geometry-explorer","gex"],["application/vnd.geonext","gxt"],["application/vnd.geoplan","g2w"],["application/vnd.geospace","g3w"],["application/vnd.gmx","gmx"],["application/vnd.google-earth.kml+xml","kml"],["application/vnd.google-earth.kmz","kmz"],["application/vnd.grafeq","gqf"],["application/vnd.groove-account","gac"],["application/vnd.groove-help","ghf"],["application/vnd.groove-identity-message","gim"],["application/vnd.groove-injector","grv"],["application/vnd.groove-tool-message","gtm"],["application/vnd.groove-tool-template","tpl"],["application/vnd.groove-vcard","vcg"],["application/vnd.hal+xml","hal"],["application/vnd.handheld-entertainment+xml","zmm"],["application/vnd.hbci","hbci"],["application/vnd.hhe.lesson-player","les"],["application/vnd.hp-hpgl",["hgl","hpg","hpgl"]],["application/vnd.hp-hpid","hpid"],["application/vnd.hp-hps","hps"],["application/vnd.hp-jlyt","jlt"],["application/vnd.hp-pcl","pcl"],["application/vnd.hp-pclxl","pclxl"],["application/vnd.hydrostatix.sof-data","sfd-hdstx"],["application/vnd.hzn-3d-crossword","x3d"],["application/vnd.ibm.minipay","mpy"],["application/vnd.ibm.modcap","afp"],["application/vnd.ibm.rights-management","irm"],["application/vnd.ibm.secure-container","sc"],["application/vnd.iccprofile","icc"],["application/vnd.igloader","igl"],["application/vnd.immervision-ivp","ivp"],["application/vnd.immervision-ivu","ivu"],["application/vnd.insors.igm","igm"],["application/vnd.intercon.formnet","xpw"],["application/vnd.intergeo","i2g"],["application/vnd.intu.qbo","qbo"],["application/vnd.intu.qfx","qfx"],["application/vnd.ipunplugged.rcprofile","rcprofile"],["application/vnd.irepository.package+xml","irp"],["application/vnd.is-xpr","xpr"],["application/vnd.isac.fcs","fcs"],["application/vnd.jam","jam"],["application/vnd.jcp.javame.midlet-rms","rms"],["application/vnd.jisp","jisp"],["application/vnd.joost.joda-archive","joda"],["application/vnd.kahootz","ktz"],["application/vnd.kde.karbon","karbon"],["application/vnd.kde.kchart","chrt"],["application/vnd.kde.kformula","kfo"],["application/vnd.kde.kivio","flw"],["application/vnd.kde.kontour","kon"],["application/vnd.kde.kpresenter","kpr"],["application/vnd.kde.kspread","ksp"],["application/vnd.kde.kword","kwd"],["application/vnd.kenameaapp","htke"],["application/vnd.kidspiration","kia"],["application/vnd.kinar","kne"],["application/vnd.koan","skp"],["application/vnd.kodak-descriptor","sse"],["application/vnd.las.las+xml","lasxml"],["application/vnd.llamagraphics.life-balance.desktop","lbd"],["application/vnd.llamagraphics.life-balance.exchange+xml","lbe"],["application/vnd.lotus-1-2-3","123"],["application/vnd.lotus-approach","apr"],["application/vnd.lotus-freelance","pre"],["application/vnd.lotus-notes","nsf"],["application/vnd.lotus-organizer","org"],["application/vnd.lotus-screencam","scm"],["application/vnd.lotus-wordpro","lwp"],["application/vnd.macports.portpkg","portpkg"],["application/vnd.mcd","mcd"],["application/vnd.medcalcdata","mc1"],["application/vnd.mediastation.cdkey","cdkey"],["application/vnd.mfer","mwf"],["application/vnd.mfmp","mfm"],["application/vnd.micrografx.flo","flo"],["application/vnd.micrografx.igx","igx"],["application/vnd.mif","mif"],["application/vnd.mobius.daf","daf"],["application/vnd.mobius.dis","dis"],["application/vnd.mobius.mbk","mbk"],["application/vnd.mobius.mqy","mqy"],["application/vnd.mobius.msl","msl"],["application/vnd.mobius.plc","plc"],["application/vnd.mobius.txf","txf"],["application/vnd.mophun.application","mpn"],["application/vnd.mophun.certificate","mpc"],["application/vnd.mozilla.xul+xml","xul"],["application/vnd.ms-artgalry","cil"],["application/vnd.ms-cab-compressed","cab"],["application/vnd.ms-excel",["xls","xla","xlc","xlm","xlt","xlw","xlb","xll"]],["application/vnd.ms-excel.addin.macroenabled.12","xlam"],["application/vnd.ms-excel.sheet.binary.macroenabled.12","xlsb"],["application/vnd.ms-excel.sheet.macroenabled.12","xlsm"],["application/vnd.ms-excel.template.macroenabled.12","xltm"],["application/vnd.ms-fontobject","eot"],["application/vnd.ms-htmlhelp","chm"],["application/vnd.ms-ims","ims"],["application/vnd.ms-lrm","lrm"],["application/vnd.ms-officetheme","thmx"],["application/vnd.ms-outlook","msg"],["application/vnd.ms-pki.certstore","sst"],["application/vnd.ms-pki.pko","pko"],["application/vnd.ms-pki.seccat","cat"],["application/vnd.ms-pki.stl","stl"],["application/vnd.ms-pkicertstore","sst"],["application/vnd.ms-pkiseccat","cat"],["application/vnd.ms-pkistl","stl"],["application/vnd.ms-powerpoint",["ppt","pot","pps","ppa","pwz"]],["application/vnd.ms-powerpoint.addin.macroenabled.12","ppam"],["application/vnd.ms-powerpoint.presentation.macroenabled.12","pptm"],["application/vnd.ms-powerpoint.slide.macroenabled.12","sldm"],["application/vnd.ms-powerpoint.slideshow.macroenabled.12","ppsm"],["application/vnd.ms-powerpoint.template.macroenabled.12","potm"],["application/vnd.ms-project","mpp"],["application/vnd.ms-word.document.macroenabled.12","docm"],["application/vnd.ms-word.template.macroenabled.12","dotm"],["application/vnd.ms-works",["wks","wcm","wdb","wps"]],["application/vnd.ms-wpl","wpl"],["application/vnd.ms-xpsdocument","xps"],["application/vnd.mseq","mseq"],["application/vnd.musician","mus"],["application/vnd.muvee.style","msty"],["application/vnd.neurolanguage.nlu","nlu"],["application/vnd.noblenet-directory","nnd"],["application/vnd.noblenet-sealer","nns"],["application/vnd.noblenet-web","nnw"],["application/vnd.nokia.configuration-message","ncm"],["application/vnd.nokia.n-gage.data","ngdat"],["application/vnd.nokia.n-gage.symbian.install","n-gage"],["application/vnd.nokia.radio-preset","rpst"],["application/vnd.nokia.radio-presets","rpss"],["application/vnd.nokia.ringing-tone","rng"],["application/vnd.novadigm.edm","edm"],["application/vnd.novadigm.edx","edx"],["application/vnd.novadigm.ext","ext"],["application/vnd.oasis.opendocument.chart","odc"],["application/vnd.oasis.opendocument.chart-template","otc"],["application/vnd.oasis.opendocument.database","odb"],["application/vnd.oasis.opendocument.formula","odf"],["application/vnd.oasis.opendocument.formula-template","odft"],["application/vnd.oasis.opendocument.graphics","odg"],["application/vnd.oasis.opendocument.graphics-template","otg"],["application/vnd.oasis.opendocument.image","odi"],["application/vnd.oasis.opendocument.image-template","oti"],["application/vnd.oasis.opendocument.presentation","odp"],["application/vnd.oasis.opendocument.presentation-template","otp"],["application/vnd.oasis.opendocument.spreadsheet","ods"],["application/vnd.oasis.opendocument.spreadsheet-template","ots"],["application/vnd.oasis.opendocument.text","odt"],["application/vnd.oasis.opendocument.text-master","odm"],["application/vnd.oasis.opendocument.text-template","ott"],["application/vnd.oasis.opendocument.text-web","oth"],["application/vnd.olpc-sugar","xo"],["application/vnd.oma.dd2+xml","dd2"],["application/vnd.openofficeorg.extension","oxt"],["application/vnd.openxmlformats-officedocument.presentationml.presentation","pptx"],["application/vnd.openxmlformats-officedocument.presentationml.slide","sldx"],["application/vnd.openxmlformats-officedocument.presentationml.slideshow","ppsx"],["application/vnd.openxmlformats-officedocument.presentationml.template","potx"],["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","xlsx"],["application/vnd.openxmlformats-officedocument.spreadsheetml.template","xltx"],["application/vnd.openxmlformats-officedocument.wordprocessingml.document","docx"],["application/vnd.openxmlformats-officedocument.wordprocessingml.template","dotx"],["application/vnd.osgeo.mapguide.package","mgp"],["application/vnd.osgi.dp","dp"],["application/vnd.palm","pdb"],["application/vnd.pawaafile","paw"],["application/vnd.pg.format","str"],["application/vnd.pg.osasli","ei6"],["application/vnd.picsel","efif"],["application/vnd.pmi.widget","wg"],["application/vnd.pocketlearn","plf"],["application/vnd.powerbuilder6","pbd"],["application/vnd.previewsystems.box","box"],["application/vnd.proteus.magazine","mgz"],["application/vnd.publishare-delta-tree","qps"],["application/vnd.pvi.ptid1","ptid"],["application/vnd.quark.quarkxpress","qxd"],["application/vnd.realvnc.bed","bed"],["application/vnd.recordare.musicxml","mxl"],["application/vnd.recordare.musicxml+xml","musicxml"],["application/vnd.rig.cryptonote","cryptonote"],["application/vnd.rim.cod","cod"],["application/vnd.rn-realmedia","rm"],["application/vnd.rn-realplayer","rnx"],["application/vnd.route66.link66+xml","link66"],["application/vnd.sailingtracker.track","st"],["application/vnd.seemail","see"],["application/vnd.sema","sema"],["application/vnd.semd","semd"],["application/vnd.semf","semf"],["application/vnd.shana.informed.formdata","ifm"],["application/vnd.shana.informed.formtemplate","itp"],["application/vnd.shana.informed.interchange","iif"],["application/vnd.shana.informed.package","ipk"],["application/vnd.simtech-mindmapper","twd"],["application/vnd.smaf","mmf"],["application/vnd.smart.teacher","teacher"],["application/vnd.solent.sdkm+xml","sdkm"],["application/vnd.spotfire.dxp","dxp"],["application/vnd.spotfire.sfs","sfs"],["application/vnd.stardivision.calc","sdc"],["application/vnd.stardivision.draw","sda"],["application/vnd.stardivision.impress","sdd"],["application/vnd.stardivision.math","smf"],["application/vnd.stardivision.writer","sdw"],["application/vnd.stardivision.writer-global","sgl"],["application/vnd.stepmania.stepchart","sm"],["application/vnd.sun.xml.calc","sxc"],["application/vnd.sun.xml.calc.template","stc"],["application/vnd.sun.xml.draw","sxd"],["application/vnd.sun.xml.draw.template","std"],["application/vnd.sun.xml.impress","sxi"],["application/vnd.sun.xml.impress.template","sti"],["application/vnd.sun.xml.math","sxm"],["application/vnd.sun.xml.writer","sxw"],["application/vnd.sun.xml.writer.global","sxg"],["application/vnd.sun.xml.writer.template","stw"],["application/vnd.sus-calendar","sus"],["application/vnd.svd","svd"],["application/vnd.symbian.install","sis"],["application/vnd.syncml+xml","xsm"],["application/vnd.syncml.dm+wbxml","bdm"],["application/vnd.syncml.dm+xml","xdm"],["application/vnd.tao.intent-module-archive","tao"],["application/vnd.tmobile-livetv","tmo"],["application/vnd.trid.tpt","tpt"],["application/vnd.triscape.mxs","mxs"],["application/vnd.trueapp","tra"],["application/vnd.ufdl","ufd"],["application/vnd.uiq.theme","utz"],["application/vnd.umajin","umj"],["application/vnd.unity","unityweb"],["application/vnd.uoml+xml","uoml"],["application/vnd.vcx","vcx"],["application/vnd.visio","vsd"],["application/vnd.visionary","vis"],["application/vnd.vsf","vsf"],["application/vnd.wap.wbxml","wbxml"],["application/vnd.wap.wmlc","wmlc"],["application/vnd.wap.wmlscriptc","wmlsc"],["application/vnd.webturbo","wtb"],["application/vnd.wolfram.player","nbp"],["application/vnd.wordperfect","wpd"],["application/vnd.wqd","wqd"],["application/vnd.wt.stf","stf"],["application/vnd.xara",["web","xar"]],["application/vnd.xfdl","xfdl"],["application/vnd.yamaha.hv-dic","hvd"],["application/vnd.yamaha.hv-script","hvs"],["application/vnd.yamaha.hv-voice","hvp"],["application/vnd.yamaha.openscoreformat","osf"],["application/vnd.yamaha.openscoreformat.osfpvg+xml","osfpvg"],["application/vnd.yamaha.smaf-audio","saf"],["application/vnd.yamaha.smaf-phrase","spf"],["application/vnd.yellowriver-custom-menu","cmp"],["application/vnd.zul","zir"],["application/vnd.zzazz.deck+xml","zaz"],["application/vocaltec-media-desc","vmd"],["application/vocaltec-media-file","vmf"],["application/voicexml+xml","vxml"],["application/widget","wgt"],["application/winhlp","hlp"],["application/wordperfect",["wp","wp5","wp6","wpd"]],["application/wordperfect6.0",["w60","wp5"]],["application/wordperfect6.1","w61"],["application/wsdl+xml","wsdl"],["application/wspolicy+xml","wspolicy"],["application/x-123","wk1"],["application/x-7z-compressed","7z"],["application/x-abiword","abw"],["application/x-ace-compressed","ace"],["application/x-aim","aim"],["application/x-authorware-bin","aab"],["application/x-authorware-map","aam"],["application/x-authorware-seg","aas"],["application/x-bcpio","bcpio"],["application/x-binary","bin"],["application/x-binhex40","hqx"],["application/x-bittorrent","torrent"],["application/x-bsh",["bsh","sh","shar"]],["application/x-bytecode.elisp","elc"],["application/x-bytecode.python","pyc"],["application/x-bzip","bz"],["application/x-bzip2",["boz","bz2"]],["application/x-cdf","cdf"],["application/x-cdlink","vcd"],["application/x-chat",["cha","chat"]],["application/x-chess-pgn","pgn"],["application/x-cmu-raster","ras"],["application/x-cocoa","cco"],["application/x-compactpro","cpt"],["application/x-compress","z"],["application/x-compressed",["tgz","gz","z","zip"]],["application/x-conference","nsc"],["application/x-cpio","cpio"],["application/x-cpt","cpt"],["application/x-csh","csh"],["application/x-debian-package","deb"],["application/x-deepv","deepv"],["application/x-director",["dir","dcr","dxr"]],["application/x-doom","wad"],["application/x-dtbncx+xml","ncx"],["application/x-dtbook+xml","dtb"],["application/x-dtbresource+xml","res"],["application/x-dvi","dvi"],["application/x-elc","elc"],["application/x-envoy",["env","evy"]],["application/x-esrehber","es"],["application/x-excel",["xls","xla","xlb","xlc","xld","xlk","xll","xlm","xlt","xlv","xlw"]],["application/x-font-bdf","bdf"],["application/x-font-ghostscript","gsf"],["application/x-font-linux-psf","psf"],["application/x-font-otf","otf"],["application/x-font-pcf","pcf"],["application/x-font-snf","snf"],["application/x-font-ttf","ttf"],["application/x-font-type1","pfa"],["application/x-font-woff","woff"],["application/x-frame","mif"],["application/x-freelance","pre"],["application/x-futuresplash","spl"],["application/x-gnumeric","gnumeric"],["application/x-gsp","gsp"],["application/x-gss","gss"],["application/x-gtar","gtar"],["application/x-gzip",["gz","gzip"]],["application/x-hdf","hdf"],["application/x-helpfile",["help","hlp"]],["application/x-httpd-imap","imap"],["application/x-ima","ima"],["application/x-internet-signup",["ins","isp"]],["application/x-internett-signup","ins"],["application/x-inventor","iv"],["application/x-ip2","ip"],["application/x-iphone","iii"],["application/x-java-class","class"],["application/x-java-commerce","jcm"],["application/x-java-jnlp-file","jnlp"],["application/x-javascript","js"],["application/x-koan",["skd","skm","skp","skt"]],["application/x-ksh","ksh"],["application/x-latex",["latex","ltx"]],["application/x-lha","lha"],["application/x-lisp","lsp"],["application/x-livescreen","ivy"],["application/x-lotus","wq1"],["application/x-lotusscreencam","scm"],["application/x-lzh","lzh"],["application/x-lzx","lzx"],["application/x-mac-binhex40","hqx"],["application/x-macbinary","bin"],["application/x-magic-cap-package-1.0","mc$"],["application/x-mathcad","mcd"],["application/x-meme","mm"],["application/x-midi",["mid","midi"]],["application/x-mif","mif"],["application/x-mix-transfer","nix"],["application/x-mobipocket-ebook","prc"],["application/x-mplayer2","asx"],["application/x-ms-application","application"],["application/x-ms-wmd","wmd"],["application/x-ms-wmz","wmz"],["application/x-ms-xbap","xbap"],["application/x-msaccess","mdb"],["application/x-msbinder","obd"],["application/x-mscardfile","crd"],["application/x-msclip","clp"],["application/x-msdownload",["exe","dll"]],["application/x-msexcel",["xls","xla","xlw"]],["application/x-msmediaview",["mvb","m13","m14"]],["application/x-msmetafile","wmf"],["application/x-msmoney","mny"],["application/x-mspowerpoint","ppt"],["application/x-mspublisher","pub"],["application/x-msschedule","scd"],["application/x-msterminal","trm"],["application/x-mswrite","wri"],["application/x-navi-animation","ani"],["application/x-navidoc","nvd"],["application/x-navimap","map"],["application/x-navistyle","stl"],["application/x-netcdf",["cdf","nc"]],["application/x-newton-compatible-pkg","pkg"],["application/x-nokia-9000-communicator-add-on-software","aos"],["application/x-omc","omc"],["application/x-omcdatamaker","omcd"],["application/x-omcregerator","omcr"],["application/x-pagemaker",["pm4","pm5"]],["application/x-pcl","pcl"],["application/x-perfmon",["pma","pmc","pml","pmr","pmw"]],["application/x-pixclscript","plx"],["application/x-pkcs10","p10"],["application/x-pkcs12",["p12","pfx"]],["application/x-pkcs7-certificates",["p7b","spc"]],["application/x-pkcs7-certreqresp","p7r"],["application/x-pkcs7-mime",["p7m","p7c"]],["application/x-pkcs7-signature",["p7s","p7a"]],["application/x-pointplus","css"],["application/x-portable-anymap","pnm"],["application/x-project",["mpc","mpt","mpv","mpx"]],["application/x-qpro","wb1"],["application/x-rar-compressed","rar"],["application/x-rtf","rtf"],["application/x-sdp","sdp"],["application/x-sea","sea"],["application/x-seelogo","sl"],["application/x-sh","sh"],["application/x-shar",["shar","sh"]],["application/x-shockwave-flash","swf"],["application/x-silverlight-app","xap"],["application/x-sit","sit"],["application/x-sprite",["spr","sprite"]],["application/x-stuffit","sit"],["application/x-stuffitx","sitx"],["application/x-sv4cpio","sv4cpio"],["application/x-sv4crc","sv4crc"],["application/x-tar","tar"],["application/x-tbook",["sbk","tbk"]],["application/x-tcl","tcl"],["application/x-tex","tex"],["application/x-tex-tfm","tfm"],["application/x-texinfo",["texi","texinfo"]],["application/x-troff",["roff","t","tr"]],["application/x-troff-man","man"],["application/x-troff-me","me"],["application/x-troff-ms","ms"],["application/x-troff-msvideo","avi"],["application/x-ustar","ustar"],["application/x-visio",["vsd","vst","vsw"]],["application/x-vnd.audioexplosion.mzz","mzz"],["application/x-vnd.ls-xpix","xpix"],["application/x-vrml","vrml"],["application/x-wais-source",["src","wsrc"]],["application/x-winhelp","hlp"],["application/x-wintalk","wtk"],["application/x-world",["wrl","svr"]],["application/x-wpwin","wpd"],["application/x-wri","wri"],["application/x-x509-ca-cert",["cer","crt","der"]],["application/x-x509-user-cert","crt"],["application/x-xfig","fig"],["application/x-xpinstall","xpi"],["application/x-zip-compressed","zip"],["application/xcap-diff+xml","xdf"],["application/xenc+xml","xenc"],["application/xhtml+xml","xhtml"],["application/xml","xml"],["application/xml-dtd","dtd"],["application/xop+xml","xop"],["application/xslt+xml","xslt"],["application/xspf+xml","xspf"],["application/xv+xml","mxml"],["application/yang","yang"],["application/yin+xml","yin"],["application/ynd.ms-pkipko","pko"],["application/zip","zip"],["audio/adpcm","adp"],["audio/aiff",["aiff","aif","aifc"]],["audio/basic",["snd","au"]],["audio/it","it"],["audio/make",["funk","my","pfunk"]],["audio/make.my.funk","pfunk"],["audio/mid",["mid","rmi"]],["audio/midi",["midi","kar","mid"]],["audio/mod","mod"],["audio/mp4","mp4a"],["audio/mpeg",["mpga","mp3","m2a","mp2","mpa","mpg"]],["audio/mpeg3","mp3"],["audio/nspaudio",["la","lma"]],["audio/ogg","oga"],["audio/s3m","s3m"],["audio/tsp-audio","tsi"],["audio/tsplayer","tsp"],["audio/vnd.dece.audio","uva"],["audio/vnd.digital-winds","eol"],["audio/vnd.dra","dra"],["audio/vnd.dts","dts"],["audio/vnd.dts.hd","dtshd"],["audio/vnd.lucent.voice","lvp"],["audio/vnd.ms-playready.media.pya","pya"],["audio/vnd.nuera.ecelp4800","ecelp4800"],["audio/vnd.nuera.ecelp7470","ecelp7470"],["audio/vnd.nuera.ecelp9600","ecelp9600"],["audio/vnd.qcelp","qcp"],["audio/vnd.rip","rip"],["audio/voc","voc"],["audio/voxware","vox"],["audio/wav","wav"],["audio/webm","weba"],["audio/x-aac","aac"],["audio/x-adpcm","snd"],["audio/x-aiff",["aiff","aif","aifc"]],["audio/x-au","au"],["audio/x-gsm",["gsd","gsm"]],["audio/x-jam","jam"],["audio/x-liveaudio","lam"],["audio/x-mid",["mid","midi"]],["audio/x-midi",["midi","mid"]],["audio/x-mod","mod"],["audio/x-mpeg","mp2"],["audio/x-mpeg-3","mp3"],["audio/x-mpegurl","m3u"],["audio/x-mpequrl","m3u"],["audio/x-ms-wax","wax"],["audio/x-ms-wma","wma"],["audio/x-nspaudio",["la","lma"]],["audio/x-pn-realaudio",["ra","ram","rm","rmm","rmp"]],["audio/x-pn-realaudio-plugin",["ra","rmp","rpm"]],["audio/x-psid","sid"],["audio/x-realaudio","ra"],["audio/x-twinvq","vqf"],["audio/x-twinvq-plugin",["vqe","vql"]],["audio/x-vnd.audioexplosion.mjuicemediafile","mjf"],["audio/x-voc","voc"],["audio/x-wav","wav"],["audio/xm","xm"],["chemical/x-cdx","cdx"],["chemical/x-cif","cif"],["chemical/x-cmdf","cmdf"],["chemical/x-cml","cml"],["chemical/x-csml","csml"],["chemical/x-pdb",["pdb","xyz"]],["chemical/x-xyz","xyz"],["drawing/x-dwf","dwf"],["i-world/i-vrml","ivr"],["image/bmp",["bmp","bm"]],["image/cgm","cgm"],["image/cis-cod","cod"],["image/cmu-raster",["ras","rast"]],["image/fif","fif"],["image/florian",["flo","turbot"]],["image/g3fax","g3"],["image/gif","gif"],["image/ief",["ief","iefs"]],["image/jpeg",["jpeg","jpe","jpg","jfif","jfif-tbnl"]],["image/jutvision","jut"],["image/ktx","ktx"],["image/naplps",["nap","naplps"]],["image/pict",["pic","pict"]],["image/pipeg","jfif"],["image/pjpeg",["jfif","jpe","jpeg","jpg"]],["image/png",["png","x-png"]],["image/prs.btif","btif"],["image/svg+xml","svg"],["image/tiff",["tif","tiff"]],["image/vasa","mcf"],["image/vnd.adobe.photoshop","psd"],["image/vnd.dece.graphic","uvi"],["image/vnd.djvu","djvu"],["image/vnd.dvb.subtitle","sub"],["image/vnd.dwg",["dwg","dxf","svf"]],["image/vnd.dxf","dxf"],["image/vnd.fastbidsheet","fbs"],["image/vnd.fpx","fpx"],["image/vnd.fst","fst"],["image/vnd.fujixerox.edmics-mmr","mmr"],["image/vnd.fujixerox.edmics-rlc","rlc"],["image/vnd.ms-modi","mdi"],["image/vnd.net-fpx",["fpx","npx"]],["image/vnd.rn-realflash","rf"],["image/vnd.rn-realpix","rp"],["image/vnd.wap.wbmp","wbmp"],["image/vnd.xiff","xif"],["image/webp","webp"],["image/x-cmu-raster","ras"],["image/x-cmx","cmx"],["image/x-dwg",["dwg","dxf","svf"]],["image/x-freehand","fh"],["image/x-icon","ico"],["image/x-jg","art"],["image/x-jps","jps"],["image/x-niff",["niff","nif"]],["image/x-pcx","pcx"],["image/x-pict",["pct","pic"]],["image/x-portable-anymap","pnm"],["image/x-portable-bitmap","pbm"],["image/x-portable-graymap","pgm"],["image/x-portable-greymap","pgm"],["image/x-portable-pixmap","ppm"],["image/x-quicktime",["qif","qti","qtif"]],["image/x-rgb","rgb"],["image/x-tiff",["tif","tiff"]],["image/x-windows-bmp","bmp"],["image/x-xbitmap","xbm"],["image/x-xbm","xbm"],["image/x-xpixmap",["xpm","pm"]],["image/x-xwd","xwd"],["image/x-xwindowdump","xwd"],["image/xbm","xbm"],["image/xpm","xpm"],["message/rfc822",["eml","mht","mhtml","nws","mime"]],["model/iges",["iges","igs"]],["model/mesh","msh"],["model/vnd.collada+xml","dae"],["model/vnd.dwf","dwf"],["model/vnd.gdl","gdl"],["model/vnd.gtw","gtw"],["model/vnd.mts","mts"],["model/vnd.vtu","vtu"],["model/vrml",["vrml","wrl","wrz"]],["model/x-pov","pov"],["multipart/x-gzip","gzip"],["multipart/x-ustar","ustar"],["multipart/x-zip","zip"],["music/crescendo",["mid","midi"]],["music/x-karaoke","kar"],["paleovu/x-pv","pvu"],["text/asp","asp"],["text/calendar","ics"],["text/css","css"],["text/csv","csv"],["text/ecmascript","js"],["text/h323","323"],["text/html",["html","htm","stm","acgi","htmls","htx","shtml"]],["text/iuls","uls"],["text/javascript","js"],["text/mcf","mcf"],["text/n3","n3"],["text/pascal","pas"],["text/plain",["txt","bas","c","h","c++","cc","com","conf","cxx","def","f","f90","for","g","hh","idc","jav","java","list","log","lst","m","mar","pl","sdml","text"]],["text/plain-bas","par"],["text/prs.lines.tag","dsc"],["text/richtext",["rtx","rt","rtf"]],["text/scriplet","wsc"],["text/scriptlet","sct"],["text/sgml",["sgm","sgml"]],["text/tab-separated-values","tsv"],["text/troff","t"],["text/turtle","ttl"],["text/uri-list",["uni","unis","uri","uris"]],["text/vnd.abc","abc"],["text/vnd.curl","curl"],["text/vnd.curl.dcurl","dcurl"],["text/vnd.curl.mcurl","mcurl"],["text/vnd.curl.scurl","scurl"],["text/vnd.fly","fly"],["text/vnd.fmi.flexstor","flx"],["text/vnd.graphviz","gv"],["text/vnd.in3d.3dml","3dml"],["text/vnd.in3d.spot","spot"],["text/vnd.rn-realtext","rt"],["text/vnd.sun.j2me.app-descriptor","jad"],["text/vnd.wap.wml","wml"],["text/vnd.wap.wmlscript","wmls"],["text/webviewhtml","htt"],["text/x-asm",["asm","s"]],["text/x-audiosoft-intra","aip"],["text/x-c",["c","cc","cpp"]],["text/x-component","htc"],["text/x-fortran",["for","f","f77","f90"]],["text/x-h",["h","hh"]],["text/x-java-source",["java","jav"]],["text/x-java-source,java","java"],["text/x-la-asf","lsx"],["text/x-m","m"],["text/x-pascal","p"],["text/x-script","hlb"],["text/x-script.csh","csh"],["text/x-script.elisp","el"],["text/x-script.guile","scm"],["text/x-script.ksh","ksh"],["text/x-script.lisp","lsp"],["text/x-script.perl","pl"],["text/x-script.perl-module","pm"],["text/x-script.phyton","py"],["text/x-script.rexx","rexx"],["text/x-script.scheme","scm"],["text/x-script.sh","sh"],["text/x-script.tcl","tcl"],["text/x-script.tcsh","tcsh"],["text/x-script.zsh","zsh"],["text/x-server-parsed-html",["shtml","ssi"]],["text/x-setext","etx"],["text/x-sgml",["sgm","sgml"]],["text/x-speech",["spc","talk"]],["text/x-uil","uil"],["text/x-uuencode",["uu","uue"]],["text/x-vcalendar","vcs"],["text/x-vcard","vcf"],["text/xml","xml"],["video/3gpp","3gp"],["video/3gpp2","3g2"],["video/animaflex","afl"],["video/avi","avi"],["video/avs-video","avs"],["video/dl","dl"],["video/fli","fli"],["video/gl","gl"],["video/h261","h261"],["video/h263","h263"],["video/h264","h264"],["video/jpeg","jpgv"],["video/jpm","jpm"],["video/mj2","mj2"],["video/mp4","mp4"],["video/mpeg",["mpeg","mp2","mpa","mpe","mpg","mpv2","m1v","m2v","mp3"]],["video/msvideo","avi"],["video/ogg","ogv"],["video/quicktime",["mov","qt","moov"]],["video/vdo","vdo"],["video/vivo",["viv","vivo"]],["video/vnd.dece.hd","uvh"],["video/vnd.dece.mobile","uvm"],["video/vnd.dece.pd","uvp"],["video/vnd.dece.sd","uvs"],["video/vnd.dece.video","uvv"],["video/vnd.fvt","fvt"],["video/vnd.mpegurl","mxu"],["video/vnd.ms-playready.media.pyv","pyv"],["video/vnd.rn-realvideo","rv"],["video/vnd.uvvu.mp4","uvu"],["video/vnd.vivo",["viv","vivo"]],["video/vosaic","vos"],["video/webm","webm"],["video/x-amt-demorun","xdr"],["video/x-amt-showrun","xsr"],["video/x-atomic3d-feature","fmf"],["video/x-dl","dl"],["video/x-dv",["dif","dv"]],["video/x-f4v","f4v"],["video/x-fli","fli"],["video/x-flv","flv"],["video/x-gl","gl"],["video/x-isvideo","isu"],["video/x-la-asf",["lsf","lsx"]],["video/x-m4v","m4v"],["video/x-motion-jpeg","mjpg"],["video/x-mpeg",["mp3","mp2"]],["video/x-mpeq2a","mp2"],["video/x-ms-asf",["asf","asr","asx"]],["video/x-ms-asf-plugin","asx"],["video/x-ms-wm","wm"],["video/x-ms-wmv","wmv"],["video/x-ms-wmx","wmx"],["video/x-ms-wvx","wvx"],["video/x-msvideo","avi"],["video/x-qtc","qtc"],["video/x-scm","scm"],["video/x-sgi-movie",["movie","mv"]],["windows/metafile","wmf"],["www/mime","mime"],["x-conference/x-cooltalk","ice"],["x-music/x-midi",["mid","midi"]],["x-world/x-3dmf",["3dm","3dmf","qd3","qd3d"]],["x-world/x-svr","svr"],["x-world/x-vrml",["flr","vrml","wrl","wrz","xaf","xof"]],["x-world/x-vrt","vrt"],["xgl/drawing","xgz"],["xgl/movie","xmz"]]),Rp=new Map([["123","application/vnd.lotus-1-2-3"],["323","text/h323"],["*","application/octet-stream"],["3dm","x-world/x-3dmf"],["3dmf","x-world/x-3dmf"],["3dml","text/vnd.in3d.3dml"],["3g2","video/3gpp2"],["3gp","video/3gpp"],["7z","application/x-7z-compressed"],["a","application/octet-stream"],["aab","application/x-authorware-bin"],["aac","audio/x-aac"],["aam","application/x-authorware-map"],["aas","application/x-authorware-seg"],["abc","text/vnd.abc"],["abw","application/x-abiword"],["ac","application/pkix-attr-cert"],["acc","application/vnd.americandynamics.acc"],["ace","application/x-ace-compressed"],["acgi","text/html"],["acu","application/vnd.acucobol"],["acx","application/internet-property-stream"],["adp","audio/adpcm"],["aep","application/vnd.audiograph"],["afl","video/animaflex"],["afp","application/vnd.ibm.modcap"],["ahead","application/vnd.ahead.space"],["ai","application/postscript"],["aif",["audio/aiff","audio/x-aiff"]],["aifc",["audio/aiff","audio/x-aiff"]],["aiff",["audio/aiff","audio/x-aiff"]],["aim","application/x-aim"],["aip","text/x-audiosoft-intra"],["air","application/vnd.adobe.air-application-installer-package+zip"],["ait","application/vnd.dvb.ait"],["ami","application/vnd.amiga.ami"],["ani","application/x-navi-animation"],["aos","application/x-nokia-9000-communicator-add-on-software"],["apk","application/vnd.android.package-archive"],["application","application/x-ms-application"],["apr","application/vnd.lotus-approach"],["aps","application/mime"],["arc","application/octet-stream"],["arj",["application/arj","application/octet-stream"]],["art","image/x-jg"],["asf","video/x-ms-asf"],["asm","text/x-asm"],["aso","application/vnd.accpac.simply.aso"],["asp","text/asp"],["asr","video/x-ms-asf"],["asx",["video/x-ms-asf","application/x-mplayer2","video/x-ms-asf-plugin"]],["atc","application/vnd.acucorp"],["atomcat","application/atomcat+xml"],["atomsvc","application/atomsvc+xml"],["atx","application/vnd.antix.game-component"],["au",["audio/basic","audio/x-au"]],["avi",["video/avi","video/msvideo","application/x-troff-msvideo","video/x-msvideo"]],["avs","video/avs-video"],["aw","application/applixware"],["axs","application/olescript"],["azf","application/vnd.airzip.filesecure.azf"],["azs","application/vnd.airzip.filesecure.azs"],["azw","application/vnd.amazon.ebook"],["bas","text/plain"],["bcpio","application/x-bcpio"],["bdf","application/x-font-bdf"],["bdm","application/vnd.syncml.dm+wbxml"],["bed","application/vnd.realvnc.bed"],["bh2","application/vnd.fujitsu.oasysprs"],["bin",["application/octet-stream","application/mac-binary","application/macbinary","application/x-macbinary","application/x-binary"]],["bm","image/bmp"],["bmi","application/vnd.bmi"],["bmp",["image/bmp","image/x-windows-bmp"]],["boo","application/book"],["book","application/book"],["box","application/vnd.previewsystems.box"],["boz","application/x-bzip2"],["bsh","application/x-bsh"],["btif","image/prs.btif"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["c",["text/plain","text/x-c"]],["c++","text/plain"],["c11amc","application/vnd.cluetrust.cartomobile-config"],["c11amz","application/vnd.cluetrust.cartomobile-config-pkg"],["c4g","application/vnd.clonk.c4group"],["cab","application/vnd.ms-cab-compressed"],["car","application/vnd.curl.car"],["cat",["application/vnd.ms-pkiseccat","application/vnd.ms-pki.seccat"]],["cc",["text/plain","text/x-c"]],["ccad","application/clariscad"],["cco","application/x-cocoa"],["ccxml","application/ccxml+xml,"],["cdbcmsg","application/vnd.contact.cmsg"],["cdf",["application/cdf","application/x-cdf","application/x-netcdf"]],["cdkey","application/vnd.mediastation.cdkey"],["cdmia","application/cdmi-capability"],["cdmic","application/cdmi-container"],["cdmid","application/cdmi-domain"],["cdmio","application/cdmi-object"],["cdmiq","application/cdmi-queue"],["cdx","chemical/x-cdx"],["cdxml","application/vnd.chemdraw+xml"],["cdy","application/vnd.cinderella"],["cer",["application/pkix-cert","application/x-x509-ca-cert"]],["cgm","image/cgm"],["cha","application/x-chat"],["chat","application/x-chat"],["chm","application/vnd.ms-htmlhelp"],["chrt","application/vnd.kde.kchart"],["cif","chemical/x-cif"],["cii","application/vnd.anser-web-certificate-issue-initiation"],["cil","application/vnd.ms-artgalry"],["cla","application/vnd.claymore"],["class",["application/octet-stream","application/java","application/java-byte-code","application/java-vm","application/x-java-class"]],["clkk","application/vnd.crick.clicker.keyboard"],["clkp","application/vnd.crick.clicker.palette"],["clkt","application/vnd.crick.clicker.template"],["clkw","application/vnd.crick.clicker.wordbank"],["clkx","application/vnd.crick.clicker"],["clp","application/x-msclip"],["cmc","application/vnd.cosmocaller"],["cmdf","chemical/x-cmdf"],["cml","chemical/x-cml"],["cmp","application/vnd.yellowriver-custom-menu"],["cmx","image/x-cmx"],["cod",["image/cis-cod","application/vnd.rim.cod"]],["com",["application/octet-stream","text/plain"]],["conf","text/plain"],["cpio","application/x-cpio"],["cpp","text/x-c"],["cpt",["application/mac-compactpro","application/x-compactpro","application/x-cpt"]],["crd","application/x-mscardfile"],["crl",["application/pkix-crl","application/pkcs-crl"]],["crt",["application/pkix-cert","application/x-x509-user-cert","application/x-x509-ca-cert"]],["cryptonote","application/vnd.rig.cryptonote"],["csh",["text/x-script.csh","application/x-csh"]],["csml","chemical/x-csml"],["csp","application/vnd.commonspace"],["css",["text/css","application/x-pointplus"]],["csv","text/csv"],["cu","application/cu-seeme"],["curl","text/vnd.curl"],["cww","application/prs.cww"],["cxx","text/plain"],["dae","model/vnd.collada+xml"],["daf","application/vnd.mobius.daf"],["davmount","application/davmount+xml"],["dcr","application/x-director"],["dcurl","text/vnd.curl.dcurl"],["dd2","application/vnd.oma.dd2+xml"],["ddd","application/vnd.fujixerox.ddd"],["deb","application/x-debian-package"],["deepv","application/x-deepv"],["def","text/plain"],["der","application/x-x509-ca-cert"],["dfac","application/vnd.dreamfactory"],["dif","video/x-dv"],["dir","application/x-director"],["dis","application/vnd.mobius.dis"],["djvu","image/vnd.djvu"],["dl",["video/dl","video/x-dl"]],["dll","application/x-msdownload"],["dms","application/octet-stream"],["dna","application/vnd.dna"],["doc","application/msword"],["docm","application/vnd.ms-word.document.macroenabled.12"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["dot","application/msword"],["dotm","application/vnd.ms-word.template.macroenabled.12"],["dotx","application/vnd.openxmlformats-officedocument.wordprocessingml.template"],["dp",["application/commonground","application/vnd.osgi.dp"]],["dpg","application/vnd.dpgraph"],["dra","audio/vnd.dra"],["drw","application/drafting"],["dsc","text/prs.lines.tag"],["dssc","application/dssc+der"],["dtb","application/x-dtbook+xml"],["dtd","application/xml-dtd"],["dts","audio/vnd.dts"],["dtshd","audio/vnd.dts.hd"],["dump","application/octet-stream"],["dv","video/x-dv"],["dvi","application/x-dvi"],["dwf",["model/vnd.dwf","drawing/x-dwf"]],["dwg",["application/acad","image/vnd.dwg","image/x-dwg"]],["dxf",["application/dxf","image/vnd.dwg","image/vnd.dxf","image/x-dwg"]],["dxp","application/vnd.spotfire.dxp"],["dxr","application/x-director"],["ecelp4800","audio/vnd.nuera.ecelp4800"],["ecelp7470","audio/vnd.nuera.ecelp7470"],["ecelp9600","audio/vnd.nuera.ecelp9600"],["edm","application/vnd.novadigm.edm"],["edx","application/vnd.novadigm.edx"],["efif","application/vnd.picsel"],["ei6","application/vnd.pg.osasli"],["el","text/x-script.elisp"],["elc",["application/x-elc","application/x-bytecode.elisp"]],["eml","message/rfc822"],["emma","application/emma+xml"],["env","application/x-envoy"],["eol","audio/vnd.digital-winds"],["eot","application/vnd.ms-fontobject"],["eps","application/postscript"],["epub","application/epub+zip"],["es",["application/ecmascript","application/x-esrehber"]],["es3","application/vnd.eszigno3+xml"],["esf","application/vnd.epson.esf"],["etx","text/x-setext"],["evy",["application/envoy","application/x-envoy"]],["exe",["application/octet-stream","application/x-msdownload"]],["exi","application/exi"],["ext","application/vnd.novadigm.ext"],["ez2","application/vnd.ezpix-album"],["ez3","application/vnd.ezpix-package"],["f",["text/plain","text/x-fortran"]],["f4v","video/x-f4v"],["f77","text/x-fortran"],["f90",["text/plain","text/x-fortran"]],["fbs","image/vnd.fastbidsheet"],["fcs","application/vnd.isac.fcs"],["fdf","application/vnd.fdf"],["fe_launch","application/vnd.denovo.fcselayout-link"],["fg5","application/vnd.fujitsu.oasysgp"],["fh","image/x-freehand"],["fif",["application/fractals","image/fif"]],["fig","application/x-xfig"],["fli",["video/fli","video/x-fli"]],["flo",["image/florian","application/vnd.micrografx.flo"]],["flr","x-world/x-vrml"],["flv","video/x-flv"],["flw","application/vnd.kde.kivio"],["flx","text/vnd.fmi.flexstor"],["fly","text/vnd.fly"],["fm","application/vnd.framemaker"],["fmf","video/x-atomic3d-feature"],["fnc","application/vnd.frogans.fnc"],["for",["text/plain","text/x-fortran"]],["fpx",["image/vnd.fpx","image/vnd.net-fpx"]],["frl","application/freeloader"],["fsc","application/vnd.fsc.weblaunch"],["fst","image/vnd.fst"],["ftc","application/vnd.fluxtime.clip"],["fti","application/vnd.anser-web-funds-transfer-initiation"],["funk","audio/make"],["fvt","video/vnd.fvt"],["fxp","application/vnd.adobe.fxp"],["fzs","application/vnd.fuzzysheet"],["g","text/plain"],["g2w","application/vnd.geoplan"],["g3","image/g3fax"],["g3w","application/vnd.geospace"],["gac","application/vnd.groove-account"],["gdl","model/vnd.gdl"],["geo","application/vnd.dynageo"],["gex","application/vnd.geometry-explorer"],["ggb","application/vnd.geogebra.file"],["ggt","application/vnd.geogebra.tool"],["ghf","application/vnd.groove-help"],["gif","image/gif"],["gim","application/vnd.groove-identity-message"],["gl",["video/gl","video/x-gl"]],["gmx","application/vnd.gmx"],["gnumeric","application/x-gnumeric"],["gph","application/vnd.flographit"],["gqf","application/vnd.grafeq"],["gram","application/srgs"],["grv","application/vnd.groove-injector"],["grxml","application/srgs+xml"],["gsd","audio/x-gsm"],["gsf","application/x-font-ghostscript"],["gsm","audio/x-gsm"],["gsp","application/x-gsp"],["gss","application/x-gss"],["gtar","application/x-gtar"],["gtm","application/vnd.groove-tool-message"],["gtw","model/vnd.gtw"],["gv","text/vnd.graphviz"],["gxt","application/vnd.geonext"],["gz",["application/x-gzip","application/x-compressed"]],["gzip",["multipart/x-gzip","application/x-gzip"]],["h",["text/plain","text/x-h"]],["h261","video/h261"],["h263","video/h263"],["h264","video/h264"],["hal","application/vnd.hal+xml"],["hbci","application/vnd.hbci"],["hdf","application/x-hdf"],["help","application/x-helpfile"],["hgl","application/vnd.hp-hpgl"],["hh",["text/plain","text/x-h"]],["hlb","text/x-script"],["hlp",["application/winhlp","application/hlp","application/x-helpfile","application/x-winhelp"]],["hpg","application/vnd.hp-hpgl"],["hpgl","application/vnd.hp-hpgl"],["hpid","application/vnd.hp-hpid"],["hps","application/vnd.hp-hps"],["hqx",["application/mac-binhex40","application/binhex","application/binhex4","application/mac-binhex","application/x-binhex40","application/x-mac-binhex40"]],["hta","application/hta"],["htc","text/x-component"],["htke","application/vnd.kenameaapp"],["htm","text/html"],["html","text/html"],["htmls","text/html"],["htt","text/webviewhtml"],["htx","text/html"],["hvd","application/vnd.yamaha.hv-dic"],["hvp","application/vnd.yamaha.hv-voice"],["hvs","application/vnd.yamaha.hv-script"],["i2g","application/vnd.intergeo"],["icc","application/vnd.iccprofile"],["ice","x-conference/x-cooltalk"],["ico","image/x-icon"],["ics","text/calendar"],["idc","text/plain"],["ief","image/ief"],["iefs","image/ief"],["ifm","application/vnd.shana.informed.formdata"],["iges",["application/iges","model/iges"]],["igl","application/vnd.igloader"],["igm","application/vnd.insors.igm"],["igs",["application/iges","model/iges"]],["igx","application/vnd.micrografx.igx"],["iif","application/vnd.shana.informed.interchange"],["iii","application/x-iphone"],["ima","application/x-ima"],["imap","application/x-httpd-imap"],["imp","application/vnd.accpac.simply.imp"],["ims","application/vnd.ms-ims"],["inf","application/inf"],["ins",["application/x-internet-signup","application/x-internett-signup"]],["ip","application/x-ip2"],["ipfix","application/ipfix"],["ipk","application/vnd.shana.informed.package"],["irm","application/vnd.ibm.rights-management"],["irp","application/vnd.irepository.package+xml"],["isp","application/x-internet-signup"],["isu","video/x-isvideo"],["it","audio/it"],["itp","application/vnd.shana.informed.formtemplate"],["iv","application/x-inventor"],["ivp","application/vnd.immervision-ivp"],["ivr","i-world/i-vrml"],["ivu","application/vnd.immervision-ivu"],["ivy","application/x-livescreen"],["jad","text/vnd.sun.j2me.app-descriptor"],["jam",["application/vnd.jam","audio/x-jam"]],["jar","application/java-archive"],["jav",["text/plain","text/x-java-source"]],["java",["text/plain","text/x-java-source,java","text/x-java-source"]],["jcm","application/x-java-commerce"],["jfif",["image/pipeg","image/jpeg","image/pjpeg"]],["jfif-tbnl","image/jpeg"],["jisp","application/vnd.jisp"],["jlt","application/vnd.hp-jlyt"],["jnlp","application/x-java-jnlp-file"],["joda","application/vnd.joost.joda-archive"],["jpe",["image/jpeg","image/pjpeg"]],["jpeg",["image/jpeg","image/pjpeg"]],["jpg",["image/jpeg","image/pjpeg"]],["jpgv","video/jpeg"],["jpm","video/jpm"],["jps","image/x-jps"],["js",["application/javascript","application/ecmascript","text/javascript","text/ecmascript","application/x-javascript"]],["json","application/json"],["jut","image/jutvision"],["kar",["audio/midi","music/x-karaoke"]],["karbon","application/vnd.kde.karbon"],["kfo","application/vnd.kde.kformula"],["kia","application/vnd.kidspiration"],["kml","application/vnd.google-earth.kml+xml"],["kmz","application/vnd.google-earth.kmz"],["kne","application/vnd.kinar"],["kon","application/vnd.kde.kontour"],["kpr","application/vnd.kde.kpresenter"],["ksh",["application/x-ksh","text/x-script.ksh"]],["ksp","application/vnd.kde.kspread"],["ktx","image/ktx"],["ktz","application/vnd.kahootz"],["kwd","application/vnd.kde.kword"],["la",["audio/nspaudio","audio/x-nspaudio"]],["lam","audio/x-liveaudio"],["lasxml","application/vnd.las.las+xml"],["latex","application/x-latex"],["lbd","application/vnd.llamagraphics.life-balance.desktop"],["lbe","application/vnd.llamagraphics.life-balance.exchange+xml"],["les","application/vnd.hhe.lesson-player"],["lha",["application/octet-stream","application/lha","application/x-lha"]],["lhx","application/octet-stream"],["link66","application/vnd.route66.link66+xml"],["list","text/plain"],["lma",["audio/nspaudio","audio/x-nspaudio"]],["log","text/plain"],["lrm","application/vnd.ms-lrm"],["lsf","video/x-la-asf"],["lsp",["application/x-lisp","text/x-script.lisp"]],["lst","text/plain"],["lsx",["video/x-la-asf","text/x-la-asf"]],["ltf","application/vnd.frogans.ltf"],["ltx","application/x-latex"],["lvp","audio/vnd.lucent.voice"],["lwp","application/vnd.lotus-wordpro"],["lzh",["application/octet-stream","application/x-lzh"]],["lzx",["application/lzx","application/octet-stream","application/x-lzx"]],["m",["text/plain","text/x-m"]],["m13","application/x-msmediaview"],["m14","application/x-msmediaview"],["m1v","video/mpeg"],["m21","application/mp21"],["m2a","audio/mpeg"],["m2v","video/mpeg"],["m3u",["audio/x-mpegurl","audio/x-mpequrl"]],["m3u8","application/vnd.apple.mpegurl"],["m4v","video/x-m4v"],["ma","application/mathematica"],["mads","application/mads+xml"],["mag","application/vnd.ecowin.chart"],["man","application/x-troff-man"],["map","application/x-navimap"],["mar","text/plain"],["mathml","application/mathml+xml"],["mbd","application/mbedlet"],["mbk","application/vnd.mobius.mbk"],["mbox","application/mbox"],["mc$","application/x-magic-cap-package-1.0"],["mc1","application/vnd.medcalcdata"],["mcd",["application/mcad","application/vnd.mcd","application/x-mathcad"]],["mcf",["image/vasa","text/mcf"]],["mcp","application/netmc"],["mcurl","text/vnd.curl.mcurl"],["mdb","application/x-msaccess"],["mdi","image/vnd.ms-modi"],["me","application/x-troff-me"],["meta4","application/metalink4+xml"],["mets","application/mets+xml"],["mfm","application/vnd.mfmp"],["mgp","application/vnd.osgeo.mapguide.package"],["mgz","application/vnd.proteus.magazine"],["mht","message/rfc822"],["mhtml","message/rfc822"],["mid",["audio/mid","audio/midi","music/crescendo","x-music/x-midi","audio/x-midi","application/x-midi","audio/x-mid"]],["midi",["audio/midi","music/crescendo","x-music/x-midi","audio/x-midi","application/x-midi","audio/x-mid"]],["mif",["application/vnd.mif","application/x-mif","application/x-frame"]],["mime",["message/rfc822","www/mime"]],["mj2","video/mj2"],["mjf","audio/x-vnd.audioexplosion.mjuicemediafile"],["mjpg","video/x-motion-jpeg"],["mlp","application/vnd.dolby.mlp"],["mm",["application/base64","application/x-meme"]],["mmd","application/vnd.chipnuts.karaoke-mmd"],["mme","application/base64"],["mmf","application/vnd.smaf"],["mmr","image/vnd.fujixerox.edmics-mmr"],["mny","application/x-msmoney"],["mod",["audio/mod","audio/x-mod"]],["mods","application/mods+xml"],["moov","video/quicktime"],["mov","video/quicktime"],["movie","video/x-sgi-movie"],["mp2",["video/mpeg","audio/mpeg","video/x-mpeg","audio/x-mpeg","video/x-mpeq2a"]],["mp3",["audio/mpeg","audio/mpeg3","video/mpeg","audio/x-mpeg-3","video/x-mpeg"]],["mp4",["video/mp4","application/mp4"]],["mp4a","audio/mp4"],["mpa",["video/mpeg","audio/mpeg"]],["mpc",["application/vnd.mophun.certificate","application/x-project"]],["mpe","video/mpeg"],["mpeg","video/mpeg"],["mpg",["video/mpeg","audio/mpeg"]],["mpga","audio/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["mpm","application/vnd.blueice.multipass"],["mpn","application/vnd.mophun.application"],["mpp","application/vnd.ms-project"],["mpt","application/x-project"],["mpv","application/x-project"],["mpv2","video/mpeg"],["mpx","application/x-project"],["mpy","application/vnd.ibm.minipay"],["mqy","application/vnd.mobius.mqy"],["mrc","application/marc"],["mrcx","application/marcxml+xml"],["ms","application/x-troff-ms"],["mscml","application/mediaservercontrol+xml"],["mseq","application/vnd.mseq"],["msf","application/vnd.epson.msf"],["msg","application/vnd.ms-outlook"],["msh","model/mesh"],["msl","application/vnd.mobius.msl"],["msty","application/vnd.muvee.style"],["mts","model/vnd.mts"],["mus","application/vnd.musician"],["musicxml","application/vnd.recordare.musicxml+xml"],["mv","video/x-sgi-movie"],["mvb","application/x-msmediaview"],["mwf","application/vnd.mfer"],["mxf","application/mxf"],["mxl","application/vnd.recordare.musicxml"],["mxml","application/xv+xml"],["mxs","application/vnd.triscape.mxs"],["mxu","video/vnd.mpegurl"],["my","audio/make"],["mzz","application/x-vnd.audioexplosion.mzz"],["n-gage","application/vnd.nokia.n-gage.symbian.install"],["n3","text/n3"],["nap","image/naplps"],["naplps","image/naplps"],["nbp","application/vnd.wolfram.player"],["nc","application/x-netcdf"],["ncm","application/vnd.nokia.configuration-message"],["ncx","application/x-dtbncx+xml"],["ngdat","application/vnd.nokia.n-gage.data"],["nif","image/x-niff"],["niff","image/x-niff"],["nix","application/x-mix-transfer"],["nlu","application/vnd.neurolanguage.nlu"],["nml","application/vnd.enliven"],["nnd","application/vnd.noblenet-directory"],["nns","application/vnd.noblenet-sealer"],["nnw","application/vnd.noblenet-web"],["npx","image/vnd.net-fpx"],["nsc","application/x-conference"],["nsf","application/vnd.lotus-notes"],["nvd","application/x-navidoc"],["nws","message/rfc822"],["o","application/octet-stream"],["oa2","application/vnd.fujitsu.oasys2"],["oa3","application/vnd.fujitsu.oasys3"],["oas","application/vnd.fujitsu.oasys"],["obd","application/x-msbinder"],["oda","application/oda"],["odb","application/vnd.oasis.opendocument.database"],["odc","application/vnd.oasis.opendocument.chart"],["odf","application/vnd.oasis.opendocument.formula"],["odft","application/vnd.oasis.opendocument.formula-template"],["odg","application/vnd.oasis.opendocument.graphics"],["odi","application/vnd.oasis.opendocument.image"],["odm","application/vnd.oasis.opendocument.text-master"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["omc","application/x-omc"],["omcd","application/x-omcdatamaker"],["omcr","application/x-omcregerator"],["onetoc","application/onenote"],["opf","application/oebps-package+xml"],["org","application/vnd.lotus-organizer"],["osf","application/vnd.yamaha.openscoreformat"],["osfpvg","application/vnd.yamaha.openscoreformat.osfpvg+xml"],["otc","application/vnd.oasis.opendocument.chart-template"],["otf","application/x-font-otf"],["otg","application/vnd.oasis.opendocument.graphics-template"],["oth","application/vnd.oasis.opendocument.text-web"],["oti","application/vnd.oasis.opendocument.image-template"],["otp","application/vnd.oasis.opendocument.presentation-template"],["ots","application/vnd.oasis.opendocument.spreadsheet-template"],["ott","application/vnd.oasis.opendocument.text-template"],["oxt","application/vnd.openofficeorg.extension"],["p","text/x-pascal"],["p10",["application/pkcs10","application/x-pkcs10"]],["p12",["application/pkcs-12","application/x-pkcs12"]],["p7a","application/x-pkcs7-signature"],["p7b","application/x-pkcs7-certificates"],["p7c",["application/pkcs7-mime","application/x-pkcs7-mime"]],["p7m",["application/pkcs7-mime","application/x-pkcs7-mime"]],["p7r","application/x-pkcs7-certreqresp"],["p7s",["application/pkcs7-signature","application/x-pkcs7-signature"]],["p8","application/pkcs8"],["par","text/plain-bas"],["part","application/pro_eng"],["pas","text/pascal"],["paw","application/vnd.pawaafile"],["pbd","application/vnd.powerbuilder6"],["pbm","image/x-portable-bitmap"],["pcf","application/x-font-pcf"],["pcl",["application/vnd.hp-pcl","application/x-pcl"]],["pclxl","application/vnd.hp-pclxl"],["pct","image/x-pict"],["pcurl","application/vnd.curl.pcurl"],["pcx","image/x-pcx"],["pdb",["application/vnd.palm","chemical/x-pdb"]],["pdf","application/pdf"],["pfa","application/x-font-type1"],["pfr","application/font-tdpfr"],["pfunk",["audio/make","audio/make.my.funk"]],["pfx","application/x-pkcs12"],["pgm",["image/x-portable-graymap","image/x-portable-greymap"]],["pgn","application/x-chess-pgn"],["pgp","application/pgp-signature"],["pic",["image/pict","image/x-pict"]],["pict","image/pict"],["pkg","application/x-newton-compatible-pkg"],["pki","application/pkixcmp"],["pkipath","application/pkix-pkipath"],["pko",["application/ynd.ms-pkipko","application/vnd.ms-pki.pko"]],["pl",["text/plain","text/x-script.perl"]],["plb","application/vnd.3gpp.pic-bw-large"],["plc","application/vnd.mobius.plc"],["plf","application/vnd.pocketlearn"],["pls","application/pls+xml"],["plx","application/x-pixclscript"],["pm",["text/x-script.perl-module","image/x-xpixmap"]],["pm4","application/x-pagemaker"],["pm5","application/x-pagemaker"],["pma","application/x-perfmon"],["pmc","application/x-perfmon"],["pml",["application/vnd.ctc-posml","application/x-perfmon"]],["pmr","application/x-perfmon"],["pmw","application/x-perfmon"],["png","image/png"],["pnm",["application/x-portable-anymap","image/x-portable-anymap"]],["portpkg","application/vnd.macports.portpkg"],["pot",["application/vnd.ms-powerpoint","application/mspowerpoint"]],["potm","application/vnd.ms-powerpoint.template.macroenabled.12"],["potx","application/vnd.openxmlformats-officedocument.presentationml.template"],["pov","model/x-pov"],["ppa","application/vnd.ms-powerpoint"],["ppam","application/vnd.ms-powerpoint.addin.macroenabled.12"],["ppd","application/vnd.cups-ppd"],["ppm","image/x-portable-pixmap"],["pps",["application/vnd.ms-powerpoint","application/mspowerpoint"]],["ppsm","application/vnd.ms-powerpoint.slideshow.macroenabled.12"],["ppsx","application/vnd.openxmlformats-officedocument.presentationml.slideshow"],["ppt",["application/vnd.ms-powerpoint","application/mspowerpoint","application/powerpoint","application/x-mspowerpoint"]],["pptm","application/vnd.ms-powerpoint.presentation.macroenabled.12"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["ppz","application/mspowerpoint"],["prc","application/x-mobipocket-ebook"],["pre",["application/vnd.lotus-freelance","application/x-freelance"]],["prf","application/pics-rules"],["prt","application/pro_eng"],["ps","application/postscript"],["psb","application/vnd.3gpp.pic-bw-small"],["psd",["application/octet-stream","image/vnd.adobe.photoshop"]],["psf","application/x-font-linux-psf"],["pskcxml","application/pskc+xml"],["ptid","application/vnd.pvi.ptid1"],["pub","application/x-mspublisher"],["pvb","application/vnd.3gpp.pic-bw-var"],["pvu","paleovu/x-pv"],["pwn","application/vnd.3m.post-it-notes"],["pwz","application/vnd.ms-powerpoint"],["py","text/x-script.phyton"],["pya","audio/vnd.ms-playready.media.pya"],["pyc","application/x-bytecode.python"],["pyv","video/vnd.ms-playready.media.pyv"],["qam","application/vnd.epson.quickanime"],["qbo","application/vnd.intu.qbo"],["qcp","audio/vnd.qcelp"],["qd3","x-world/x-3dmf"],["qd3d","x-world/x-3dmf"],["qfx","application/vnd.intu.qfx"],["qif","image/x-quicktime"],["qps","application/vnd.publishare-delta-tree"],["qt","video/quicktime"],["qtc","video/x-qtc"],["qti","image/x-quicktime"],["qtif","image/x-quicktime"],["qxd","application/vnd.quark.quarkxpress"],["ra",["audio/x-realaudio","audio/x-pn-realaudio","audio/x-pn-realaudio-plugin"]],["ram","audio/x-pn-realaudio"],["rar","application/x-rar-compressed"],["ras",["image/cmu-raster","application/x-cmu-raster","image/x-cmu-raster"]],["rast","image/cmu-raster"],["rcprofile","application/vnd.ipunplugged.rcprofile"],["rdf","application/rdf+xml"],["rdz","application/vnd.data-vision.rdz"],["rep","application/vnd.businessobjects"],["res","application/x-dtbresource+xml"],["rexx","text/x-script.rexx"],["rf","image/vnd.rn-realflash"],["rgb","image/x-rgb"],["rif","application/reginfo+xml"],["rip","audio/vnd.rip"],["rl","application/resource-lists+xml"],["rlc","image/vnd.fujixerox.edmics-rlc"],["rld","application/resource-lists-diff+xml"],["rm",["application/vnd.rn-realmedia","audio/x-pn-realaudio"]],["rmi","audio/mid"],["rmm","audio/x-pn-realaudio"],["rmp",["audio/x-pn-realaudio-plugin","audio/x-pn-realaudio"]],["rms","application/vnd.jcp.javame.midlet-rms"],["rnc","application/relax-ng-compact-syntax"],["rng",["application/ringing-tones","application/vnd.nokia.ringing-tone"]],["rnx","application/vnd.rn-realplayer"],["roff","application/x-troff"],["rp","image/vnd.rn-realpix"],["rp9","application/vnd.cloanto.rp9"],["rpm","audio/x-pn-realaudio-plugin"],["rpss","application/vnd.nokia.radio-presets"],["rpst","application/vnd.nokia.radio-preset"],["rq","application/sparql-query"],["rs","application/rls-services+xml"],["rsd","application/rsd+xml"],["rt",["text/richtext","text/vnd.rn-realtext"]],["rtf",["application/rtf","text/richtext","application/x-rtf"]],["rtx",["text/richtext","application/rtf"]],["rv","video/vnd.rn-realvideo"],["s","text/x-asm"],["s3m","audio/s3m"],["saf","application/vnd.yamaha.smaf-audio"],["saveme","application/octet-stream"],["sbk","application/x-tbook"],["sbml","application/sbml+xml"],["sc","application/vnd.ibm.secure-container"],["scd","application/x-msschedule"],["scm",["application/vnd.lotus-screencam","video/x-scm","text/x-script.guile","application/x-lotusscreencam","text/x-script.scheme"]],["scq","application/scvp-cv-request"],["scs","application/scvp-cv-response"],["sct","text/scriptlet"],["scurl","text/vnd.curl.scurl"],["sda","application/vnd.stardivision.draw"],["sdc","application/vnd.stardivision.calc"],["sdd","application/vnd.stardivision.impress"],["sdkm","application/vnd.solent.sdkm+xml"],["sdml","text/plain"],["sdp",["application/sdp","application/x-sdp"]],["sdr","application/sounder"],["sdw","application/vnd.stardivision.writer"],["sea",["application/sea","application/x-sea"]],["see","application/vnd.seemail"],["seed","application/vnd.fdsn.seed"],["sema","application/vnd.sema"],["semd","application/vnd.semd"],["semf","application/vnd.semf"],["ser","application/java-serialized-object"],["set","application/set"],["setpay","application/set-payment-initiation"],["setreg","application/set-registration-initiation"],["sfd-hdstx","application/vnd.hydrostatix.sof-data"],["sfs","application/vnd.spotfire.sfs"],["sgl","application/vnd.stardivision.writer-global"],["sgm",["text/sgml","text/x-sgml"]],["sgml",["text/sgml","text/x-sgml"]],["sh",["application/x-shar","application/x-bsh","application/x-sh","text/x-script.sh"]],["shar",["application/x-bsh","application/x-shar"]],["shf","application/shf+xml"],["shtml",["text/html","text/x-server-parsed-html"]],["sid","audio/x-psid"],["sis","application/vnd.symbian.install"],["sit",["application/x-stuffit","application/x-sit"]],["sitx","application/x-stuffitx"],["skd","application/x-koan"],["skm","application/x-koan"],["skp",["application/vnd.koan","application/x-koan"]],["skt","application/x-koan"],["sl","application/x-seelogo"],["sldm","application/vnd.ms-powerpoint.slide.macroenabled.12"],["sldx","application/vnd.openxmlformats-officedocument.presentationml.slide"],["slt","application/vnd.epson.salt"],["sm","application/vnd.stepmania.stepchart"],["smf","application/vnd.stardivision.math"],["smi",["application/smil","application/smil+xml"]],["smil","application/smil"],["snd",["audio/basic","audio/x-adpcm"]],["snf","application/x-font-snf"],["sol","application/solids"],["spc",["text/x-speech","application/x-pkcs7-certificates"]],["spf","application/vnd.yamaha.smaf-phrase"],["spl",["application/futuresplash","application/x-futuresplash"]],["spot","text/vnd.in3d.spot"],["spp","application/scvp-vp-response"],["spq","application/scvp-vp-request"],["spr","application/x-sprite"],["sprite","application/x-sprite"],["src","application/x-wais-source"],["sru","application/sru+xml"],["srx","application/sparql-results+xml"],["sse","application/vnd.kodak-descriptor"],["ssf","application/vnd.epson.ssf"],["ssi","text/x-server-parsed-html"],["ssm","application/streamingmedia"],["ssml","application/ssml+xml"],["sst",["application/vnd.ms-pkicertstore","application/vnd.ms-pki.certstore"]],["st","application/vnd.sailingtracker.track"],["stc","application/vnd.sun.xml.calc.template"],["std","application/vnd.sun.xml.draw.template"],["step","application/step"],["stf","application/vnd.wt.stf"],["sti","application/vnd.sun.xml.impress.template"],["stk","application/hyperstudio"],["stl",["application/vnd.ms-pkistl","application/sla","application/vnd.ms-pki.stl","application/x-navistyle"]],["stm","text/html"],["stp","application/step"],["str","application/vnd.pg.format"],["stw","application/vnd.sun.xml.writer.template"],["sub","image/vnd.dvb.subtitle"],["sus","application/vnd.sus-calendar"],["sv4cpio","application/x-sv4cpio"],["sv4crc","application/x-sv4crc"],["svc","application/vnd.dvb.service"],["svd","application/vnd.svd"],["svf",["image/vnd.dwg","image/x-dwg"]],["svg","image/svg+xml"],["svr",["x-world/x-svr","application/x-world"]],["swf","application/x-shockwave-flash"],["swi","application/vnd.aristanetworks.swi"],["sxc","application/vnd.sun.xml.calc"],["sxd","application/vnd.sun.xml.draw"],["sxg","application/vnd.sun.xml.writer.global"],["sxi","application/vnd.sun.xml.impress"],["sxm","application/vnd.sun.xml.math"],["sxw","application/vnd.sun.xml.writer"],["t",["text/troff","application/x-troff"]],["talk","text/x-speech"],["tao","application/vnd.tao.intent-module-archive"],["tar","application/x-tar"],["tbk",["application/toolbook","application/x-tbook"]],["tcap","application/vnd.3gpp2.tcap"],["tcl",["text/x-script.tcl","application/x-tcl"]],["tcsh","text/x-script.tcsh"],["teacher","application/vnd.smart.teacher"],["tei","application/tei+xml"],["tex","application/x-tex"],["texi","application/x-texinfo"],["texinfo","application/x-texinfo"],["text",["application/plain","text/plain"]],["tfi","application/thraud+xml"],["tfm","application/x-tex-tfm"],["tgz",["application/gnutar","application/x-compressed"]],["thmx","application/vnd.ms-officetheme"],["tif",["image/tiff","image/x-tiff"]],["tiff",["image/tiff","image/x-tiff"]],["tmo","application/vnd.tmobile-livetv"],["torrent","application/x-bittorrent"],["tpl","application/vnd.groove-tool-template"],["tpt","application/vnd.trid.tpt"],["tr","application/x-troff"],["tra","application/vnd.trueapp"],["trm","application/x-msterminal"],["tsd","application/timestamped-data"],["tsi","audio/tsp-audio"],["tsp",["application/dsptype","audio/tsplayer"]],["tsv","text/tab-separated-values"],["ttf","application/x-font-ttf"],["ttl","text/turtle"],["turbot","image/florian"],["twd","application/vnd.simtech-mindmapper"],["txd","application/vnd.genomatix.tuxedo"],["txf","application/vnd.mobius.txf"],["txt","text/plain"],["ufd","application/vnd.ufdl"],["uil","text/x-uil"],["uls","text/iuls"],["umj","application/vnd.umajin"],["uni","text/uri-list"],["unis","text/uri-list"],["unityweb","application/vnd.unity"],["unv","application/i-deas"],["uoml","application/vnd.uoml+xml"],["uri","text/uri-list"],["uris","text/uri-list"],["ustar",["application/x-ustar","multipart/x-ustar"]],["utz","application/vnd.uiq.theme"],["uu",["application/octet-stream","text/x-uuencode"]],["uue","text/x-uuencode"],["uva","audio/vnd.dece.audio"],["uvh","video/vnd.dece.hd"],["uvi","image/vnd.dece.graphic"],["uvm","video/vnd.dece.mobile"],["uvp","video/vnd.dece.pd"],["uvs","video/vnd.dece.sd"],["uvu","video/vnd.uvvu.mp4"],["uvv","video/vnd.dece.video"],["vcd","application/x-cdlink"],["vcf","text/x-vcard"],["vcg","application/vnd.groove-vcard"],["vcs","text/x-vcalendar"],["vcx","application/vnd.vcx"],["vda","application/vda"],["vdo","video/vdo"],["vew","application/groupwise"],["vis","application/vnd.visionary"],["viv",["video/vivo","video/vnd.vivo"]],["vivo",["video/vivo","video/vnd.vivo"]],["vmd","application/vocaltec-media-desc"],["vmf","application/vocaltec-media-file"],["voc",["audio/voc","audio/x-voc"]],["vos","video/vosaic"],["vox","audio/voxware"],["vqe","audio/x-twinvq-plugin"],["vqf","audio/x-twinvq"],["vql","audio/x-twinvq-plugin"],["vrml",["model/vrml","x-world/x-vrml","application/x-vrml"]],["vrt","x-world/x-vrt"],["vsd",["application/vnd.visio","application/x-visio"]],["vsf","application/vnd.vsf"],["vst","application/x-visio"],["vsw","application/x-visio"],["vtu","model/vnd.vtu"],["vxml","application/voicexml+xml"],["w60","application/wordperfect6.0"],["w61","application/wordperfect6.1"],["w6w","application/msword"],["wad","application/x-doom"],["wav",["audio/wav","audio/x-wav"]],["wax","audio/x-ms-wax"],["wb1","application/x-qpro"],["wbmp","image/vnd.wap.wbmp"],["wbs","application/vnd.criticaltools.wbs+xml"],["wbxml","application/vnd.wap.wbxml"],["wcm","application/vnd.ms-works"],["wdb","application/vnd.ms-works"],["web","application/vnd.xara"],["weba","audio/webm"],["webm","video/webm"],["webp","image/webp"],["wg","application/vnd.pmi.widget"],["wgt","application/widget"],["wiz","application/msword"],["wk1","application/x-123"],["wks","application/vnd.ms-works"],["wm","video/x-ms-wm"],["wma","audio/x-ms-wma"],["wmd","application/x-ms-wmd"],["wmf",["windows/metafile","application/x-msmetafile"]],["wml","text/vnd.wap.wml"],["wmlc","application/vnd.wap.wmlc"],["wmls","text/vnd.wap.wmlscript"],["wmlsc","application/vnd.wap.wmlscriptc"],["wmv","video/x-ms-wmv"],["wmx","video/x-ms-wmx"],["wmz","application/x-ms-wmz"],["woff","application/x-font-woff"],["word","application/msword"],["wp","application/wordperfect"],["wp5",["application/wordperfect","application/wordperfect6.0"]],["wp6","application/wordperfect"],["wpd",["application/wordperfect","application/vnd.wordperfect","application/x-wpwin"]],["wpl","application/vnd.ms-wpl"],["wps","application/vnd.ms-works"],["wq1","application/x-lotus"],["wqd","application/vnd.wqd"],["wri",["application/mswrite","application/x-wri","application/x-mswrite"]],["wrl",["model/vrml","x-world/x-vrml","application/x-world"]],["wrz",["model/vrml","x-world/x-vrml"]],["wsc","text/scriplet"],["wsdl","application/wsdl+xml"],["wspolicy","application/wspolicy+xml"],["wsrc","application/x-wais-source"],["wtb","application/vnd.webturbo"],["wtk","application/x-wintalk"],["wvx","video/x-ms-wvx"],["x-png","image/png"],["x3d","application/vnd.hzn-3d-crossword"],["xaf","x-world/x-vrml"],["xap","application/x-silverlight-app"],["xar","application/vnd.xara"],["xbap","application/x-ms-xbap"],["xbd","application/vnd.fujixerox.docuworks.binder"],["xbm",["image/xbm","image/x-xbm","image/x-xbitmap"]],["xdf","application/xcap-diff+xml"],["xdm","application/vnd.syncml.dm+xml"],["xdp","application/vnd.adobe.xdp+xml"],["xdr","video/x-amt-demorun"],["xdssc","application/dssc+xml"],["xdw","application/vnd.fujixerox.docuworks"],["xenc","application/xenc+xml"],["xer","application/patch-ops-error+xml"],["xfdf","application/vnd.adobe.xfdf"],["xfdl","application/vnd.xfdl"],["xgz","xgl/drawing"],["xhtml","application/xhtml+xml"],["xif","image/vnd.xiff"],["xl","application/excel"],["xla",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xlam","application/vnd.ms-excel.addin.macroenabled.12"],["xlb",["application/excel","application/vnd.ms-excel","application/x-excel"]],["xlc",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xld",["application/excel","application/x-excel"]],["xlk",["application/excel","application/x-excel"]],["xll",["application/excel","application/vnd.ms-excel","application/x-excel"]],["xlm",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xls",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xlsb","application/vnd.ms-excel.sheet.binary.macroenabled.12"],["xlsm","application/vnd.ms-excel.sheet.macroenabled.12"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xlt",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xltm","application/vnd.ms-excel.template.macroenabled.12"],["xltx","application/vnd.openxmlformats-officedocument.spreadsheetml.template"],["xlv",["application/excel","application/x-excel"]],["xlw",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xm","audio/xm"],["xml",["application/xml","text/xml","application/atom+xml","application/rss+xml"]],["xmz","xgl/movie"],["xo","application/vnd.olpc-sugar"],["xof","x-world/x-vrml"],["xop","application/xop+xml"],["xpi","application/x-xpinstall"],["xpix","application/x-vnd.ls-xpix"],["xpm",["image/xpm","image/x-xpixmap"]],["xpr","application/vnd.is-xpr"],["xps","application/vnd.ms-xpsdocument"],["xpw","application/vnd.intercon.formnet"],["xslt","application/xslt+xml"],["xsm","application/vnd.syncml+xml"],["xspf","application/xspf+xml"],["xsr","video/x-amt-showrun"],["xul","application/vnd.mozilla.xul+xml"],["xwd",["image/x-xwd","image/x-xwindowdump"]],["xyz",["chemical/x-xyz","chemical/x-pdb"]],["yang","application/yang"],["yin","application/yin+xml"],["z",["application/x-compressed","application/x-compress"]],["zaz","application/vnd.zzazz.deck+xml"],["zip",["application/zip","multipart/x-zip","application/x-zip-compressed","application/x-compressed"]],["zir","application/vnd.zul"],["zmm","application/vnd.handheld-entertainment+xml"],["zoo","application/octet-stream"],["zsh","text/x-script.zsh"]]);var Zf={detectMimeType(t){if(!t)return Op;let e=ow.parse(t),n=(e.ext.substr(1)||e.name||"").split("?").shift().trim().toLowerCase(),i=Op;return Rp.has(n)&&(i=Rp.get(n)),Array.isArray(i)?i[0]:i},detectExtension(t){if(!t)return aw;let e=(t||"").toLowerCase().trim().split("/"),n=e.shift().trim(),i=e.join("/").trim();if(Lp.has(n+"/"+i)){let r=Lp.get(n+"/"+i);return Array.isArray(r)?r[0]:r}switch(n){case"text":return"txt";default:return"bin"}}};const On=2147483647,Ke=36,Hl=1,Di=26,lw=38,cw=700,eh=72,th=128,nh="-",pw=/^xn--/,uw=/[^\0-\x7F]/,dw=/[\x2E\u3002\uFF0E\uFF61]/g,fw={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},yo=Ke-Hl,Ge=Math.floor,wo=String.fromCharCode;function xt(t){throw new RangeError(fw[t])}function hw(t,e){const n=[];let i=t.length;for(;i--;)n[i]=e(t[i]);return n}function ih(t,e){const n=t.split("@");let i="";n.length>1&&(i=n[0]+"@",t=n[1]),t=t.replace(dw,".");const r=t.split("."),s=hw(r,e).join(".");return i+s}function rh(t){const e=[];let n=0;const i=t.length;for(;n=55296&&r<=56319&&nString.fromCodePoint(...t),gw=function(t){return t>=48&&t<58?26+(t-48):t>=65&&t<91?t-65:t>=97&&t<123?t-97:Ke},Ip=function(t,e){return t+22+75*(t<26)-((e!=0)<<5)},sh=function(t,e,n){let i=0;for(t=n?Ge(t/cw):t>>1,t+=Ge(t/e);t>yo*Di>>1;i+=Ke)t=Ge(t/yo);return Ge(i+(yo+1)*t/(t+lw))},oh=function(t){const e=[],n=t.length;let i=0,r=th,s=eh,o=t.lastIndexOf(nh);o<0&&(o=0);for(let a=0;a=128&&xt("not-basic"),e.push(t.charCodeAt(a));for(let a=o>0?o+1:0;a=n&&xt("invalid-input");const u=gw(t.charCodeAt(a++));u>=Ke&&xt("invalid-input"),u>Ge((On-i)/p)&&xt("overflow"),i+=u*p;const g=d<=s?Hl:d>=s+Di?Di:d-s;if(uGe(On/x)&&xt("overflow"),p*=x}const c=e.length+1;s=sh(i-l,c,l==0),Ge(i/c)>On-r&&xt("overflow"),r+=Ge(i/c),i%=c,e.splice(i++,0,r)}return String.fromCodePoint(...e)},ah=function(t){const e=[];t=rh(t);const n=t.length;let i=th,r=0,s=eh;for(const l of t)l<128&&e.push(wo(l));const o=e.length;let a=o;for(o&&e.push(nh);a=i&&pGe((On-r)/c)&&xt("overflow"),r+=(l-i)*c,i=l;for(const p of t)if(pOn&&xt("overflow"),p===i){let d=r;for(let u=Ke;;u+=Ke){const g=u<=s?Hl:u>=s+Di?Di:u-s;if(de-a&&(r=o.substr(-a).match(/[ \t.,!?][^ \t.,!?]*$/)))o=o.substr(0,o.length-(r[0].length-1));else if(o.match(/[=][\da-f]{0,2}$/i))for((r=o.match(/[=][\da-f]{0,1}$/i))&&(o=o.substr(0,o.length-r[0].length));o.length>3&&o.length=192))););n+o.length=0;n--)if(e[n].length&&(e[n].length===1&&t===e[n][0]||e[n].length===2&&t>=e[n][0]&&t<=e[n][1]))return!0;return!1}class kw extends Ew{constructor(e){super(),this.options=e||{},this.options.lineLength!==!1&&(this.options.lineLength=this.options.lineLength||76),this._curLine="",this.inputBytes=0,this.outputBytes=0}_transform(e,n,i){let r;if(n!=="buffer"&&(e=Buffer.from(e,n)),!e||!e.length)return i();this.inputBytes+=e.length,this.options.lineLength?(r=this._curLine+Ia(e),r=ph(r,this.options.lineLength),r=r.replace(/(^|\n)([^\n]*)$/,(s,o,a)=>(this._curLine=a,o)),r&&(this.outputBytes+=r.length,this.push(r))):(r=Ia(e),this.outputBytes+=r.length,this.push(r,"ascii")),i()}_flush(e){this._curLine&&(this.outputBytes+=this._curLine.length,this.push(this._curLine,"ascii")),e()}}var uh={encode:Ia,wrap:ph,Encoder:kw};const ni=ch,Cw=uh,Mp=Zf;var zs={isPlainText(t,e){return!(typeof t!="string"||(e?/[\x00-\x08\x0b\x0c\x0e-\x1f"\u0080-\uFFFF]/:/[\x00-\x08\x0b\x0c\x0e-\x1f\u0080-\uFFFF]/).test(t))},hasLongerLines(t,e){return t.length>128*1024?!0:new RegExp("^.{"+(e+1)+",}","m").test(t)},encodeWord(t,e,n){e=(e||"Q").toString().toUpperCase().trim().charAt(0),n=n||0;let i,r="UTF-8";if(n&&n>7+r.length&&(n-=7+r.length),e==="Q"?i=Cw.encode(t).replace(/[^a-z0-9!*+\-/=]/gi,s=>{let o=s.charCodeAt(0).toString(16).toUpperCase();return s===" "?"_":"="+(o.length===1?"0"+o:o)}):e==="B"&&(i=typeof t=="string"?t:ni.encode(t),n=n?Math.max(3,(n-n%4)/4*3):0),n&&(e!=="B"?i:ni.encode(t)).length>n)if(e==="Q")i=this.splitMimeEncodedString(i,n).join("?= =?"+r+"?"+e+"?");else{let s=[],o="";for(let a=0,l=i.length;a1?i=s.join("?= =?"+r+"?"+e+"?"):i=s.join("")}else e==="B"&&(i=ni.encode(t));return"=?"+r+"?"+e+"?"+i+(i.substr(-2)==="?="?"":"?=")},encodeWords(t,e,n,i){n=n||0;let r,s=t.match(/(?:^|\s)([^\s]*["\u0080-\uFFFF])/);if(!s)return t;if(i)return this.encodeWord(t,e,n);let o=t.match(/(["\u0080-\uFFFF][^\s]*)[^"\u0080-\uFFFF]*$/);if(!o)return t;let a=s.index+(s[0].match(/[^\s]/)||{index:0}).index,l=o.index+(o[1]||"").length;return r=(a?t.substr(0,a):"")+this.encodeWord(t.substring(a,l),e||"Q",n)+(l{let i=t.params[n];!this.isPlainText(i,!0)||i.length>=75?this.buildHeaderParam(n,i,50).forEach(r=>{!/[\s"\\;:/=(),<>@[\]?]|^[-']|'$/.test(r.value)||r.key.substr(-1)==="*"?e.push(r.key+"="+r.value):e.push(r.key+"="+JSON.stringify(r.value))}):/[\s'"\\;:/=(),<>@[\]?]|^-/.test(i)?e.push(n+"="+JSON.stringify(i)):e.push(n+"="+i)}),t.value+(e.length?"; "+e.join("; "):"")},buildHeaderParam(t,e,n){let i=[],r=typeof e=="string"?e:(e||"").toString(),s,o,a,l,c=0,p,d;if(n=n||50,this.isPlainText(e,!0)){if(r.length<=n)return[{key:t,value:r}];r=r.replace(new RegExp(".{"+n+"}","g"),u=>(i.push({line:u}),"")),r&&i.push({line:r})}else{if(/[\uD800-\uDBFF]/.test(r)){for(s=[],p=0,d=r.length;p=55296&&a<=56319&&p=n)i.push({line:l,encoded:u}),l="",c=p-1;else{u=!0,p=c,l="";continue}(l+o).length>=n?(i.push({line:l,encoded:u}),l=o=r[p]===" "?" ":this.safeEncodeURIComponent(r[p]),o===r[p]?(u=!1,c=p-1):u=!0):l+=o}l&&i.push({line:l,encoded:u})}return i.map((u,g)=>({key:t+"*"+g+(u.encoded?"*":""),value:u.line}))},parseHeaderValue(t){let e={value:!1,params:{}},n=!1,i="",r="value",s=!1,o=!1,a;for(let l=0,c=t.length;l{let c,p,d,u;(d=l.match(/(\*(\d+)|\*(\d+)\*|\*)$/))&&(c=l.substr(0,d.index),p=Number(d[2]||d[3])||0,(!e.params[c]||typeof e.params[c]!="object")&&(e.params[c]={charset:!1,values:[]}),u=e.params[l],p===0&&d[0].substr(-1)==="*"&&(d=u.match(/^([^']*)'[^']*'(.*)$/))&&(e.params[c].charset=d[1]||"iso-8859-1",u=d[2]),e.params[c].values[p]=u,delete e.params[l])}),Object.keys(e.params).forEach(l=>{let c;e.params[l]&&Array.isArray(e.params[l].values)&&(c=e.params[l].values.map(p=>p||"").join(""),e.params[l].charset?e.params[l]="=?"+e.params[l].charset+"?Q?"+c.replace(/[=?_\s]/g,p=>{let d=p.charCodeAt(0).toString(16);return p===" "?"_":"%"+(d.length<2?"0":"")+d}).replace(/%/g,"=")+"?=":e.params[l]=c)}),e},detectExtension:t=>Mp.detectExtension(t),detectMimeType:t=>Mp.detectMimeType(t),foldLines(t,e,n){t=(t||"").toString(),e=e||76;let i=0,r=t.length,s="",o,a;for(;i{let n,i,r,s,o=[];for(e=Math.max(e||0,12);t.length;){for(n=t.substr(0,e),(i=n.match(/[=][0-9A-F]?$/i))&&(n=n.substr(0,i.index)),s=!1;!s;)s=!0,(i=t.substr(n.length).match(/^[=]([0-9A-F]{2})/i))&&(r=parseInt(i[1],16),r<194&&r>127&&(n=n.substr(0,n.length-3),s=!1));n.length&&o.push(n),t=t.substr(n.length)}return o},encodeURICharComponent:t=>{let e="",n=t.charCodeAt(0).toString(16).toUpperCase();if(n.length%2&&(n="0"+n),n.length>2)for(let i=0,r=n.length/2;i@,;:\\"[\]?=\u007F-\uFFFF]+/g,"")}return t.replace(/[\x00-\x1F *'()<>@,;:\\"[\]?=\u007F-\uFFFF]/g,e=>this.encodeURICharComponent(e))}};function bw(t){let e,n=!1,i="text",r,s=[],o={address:[],comment:[],group:[],text:[]},a,l;for(a=0,l=t.length;a=0;a--)if(o.text[a].match(/^[^@\s]+@[^@\s]+$/)){o.address=o.text.splice(a,1);break}let c=function(p){return o.address.length?p:(o.address=[p.trim()]," ")};if(!o.address.length)for(a=o.text.length-1;a>=0&&(o.text[a]=o.text[a].replace(/\s*\b[^@\s]+@[^\s]+\b\s*/,c).trim(),!o.address.length);a--);}if(!o.text.length&&o.comment.length&&(o.text=o.comment,o.comment=[]),o.address.length>1&&(o.text=o.text.concat(o.address.splice(1))),o.text=o.text.join(" "),o.address=o.address.join(" "),!o.address&&n)return[];r={address:o.address||o.text||"",name:o.text||o.address||""},r.address===r.name&&((r.address||"").match(/@/)?r.name="":r.address=""),s.push(r)}return s}class Tw{constructor(e){this.str=(e||"").toString(),this.operatorCurrent="",this.operatorExpecting="",this.node=null,this.escaped=!1,this.list=[],this.operators={'"':'"',"(":")","<":">",",":"",":":";",";":""}}tokenize(){let e,n=[];for(let i=0,r=this.str.length;i{i.value=(i.value||"").toString().trim(),i.value&&n.push(i)}),n}checkChar(e){if(!this.escaped){if(e===this.operatorExpecting){this.node={type:"operator",value:e},this.list.push(this.node),this.node=null,this.operatorExpecting="",this.escaped=!1;return}else if(!this.operatorExpecting&&e in this.operators){this.node={type:"operator",value:e},this.list.push(this.node),this.node=null,this.operatorExpecting=this.operators[e],this.escaped=!1;return}else if(['"',"'"].includes(this.operatorExpecting)&&e==="\\"){this.escaped=!0;return}}this.node||(this.node={type:"text",value:""},this.list.push(this.node)),e===` +`&&(e=" "),(e.charCodeAt(0)>=33||[" "," "].includes(e))&&(this.node.value+=e),this.escaped=!1}}function dh(t,e){e=e||{};let i=new Tw(t).tokenize(),r=[],s=[],o=[];if(i.forEach(a=>{a.type==="operator"&&(a.value===","||a.value===";")?(s.length&&r.push(s),s=[]):s.push(a)}),s.length&&r.push(s),r.forEach(a=>{a=bw(a),a.length&&(o=o.concat(a))}),e.flatten){let a=[],l=c=>{c.forEach(p=>{if(p.group)return l(p.group);a.push(p)})};return l(o),a}return o}var Nw=dh;const Aw=j.Transform;let jw=class extends Aw{constructor(){super(),this.lastByte=!1}_transform(e,n,i){e.length&&(this.lastByte=e[e.length-1]),this.push(e),i()}_flush(e){return this.lastByte===10?e():this.lastByte===13?(this.push(Buffer.from(` +`)),e()):(this.push(Buffer.from(`\r +`)),e())}};var Pw=jw;const Ow=j,Lw=Ow.Transform;let Rw=class extends Lw{constructor(e){super(e),this.options=e||{},this.lastByte=!1}_transform(e,n,i){let r,s=0;for(let o=0,a=e.length;os&&(r=e.slice(s,o),this.push(r)),this.push(Buffer.from(`\r +`)),s=o+1);s&&s{n===this&&(e.rootNode=this.rootNode,e.parentNode=this.parentNode,e._nodeId=this._nodeId,this.rootNode=this,this.parentNode=void 0,e.parentNode.childNodes[i]=e)}),e)}remove(){if(!this.parentNode)return this;for(let e=this.parentNode.childNodes.length-1;e>=0;e--)if(this.parentNode.childNodes[e]===this)return this.parentNode.childNodes.splice(e,1),this.parentNode=void 0,this.rootNode=this,this}setHeader(e,n){let i=!1,r;if(!n&&e&&typeof e=="object")return e.key&&"value"in e?this.setHeader(e.key,e.value):Array.isArray(e)?e.forEach(s=>{this.setHeader(s.key,s.value)}):Object.keys(e).forEach(s=>{this.setHeader(s,e[s])}),this;e=this._normalizeHeaderKey(e),r={key:e,value:n};for(let s=0,o=this._headers.length;s{this.addHeader(i.key,i.value)}):Object.keys(e).forEach(i=>{this.addHeader(i,e[i])}),this):Array.isArray(n)?(n.forEach(i=>{this.addHeader(e,i)}),this):(this._headers.push({key:this._normalizeHeaderKey(e),value:n}),this)}getHeader(e){e=this._normalizeHeaderKey(e);for(let n=0,i=this._headers.length;n{this.content.removeListener("error",this._contentErrorHandler),this.content=n},this.content.once("error",this._contentErrorHandler)):typeof this.content=="string"&&(this._isPlainText=ze.isPlainText(this.content),this._isPlainText&&ze.hasLongerLines(this.content,76)&&(this._hasLongLines=!0)),this}build(e){let n;e||(n=new Promise((a,l)=>{e=$w.callbackPromise(a,l)}));let i=this.createReadStream(),r=[],s=0,o=!1;return i.on("readable",()=>{let a;for(;(a=i.read())!==null;)r.push(a),s+=a.length}),i.once("error",a=>{if(!o)return o=!0,e(a)}),i.once("end",a=>{if(!o)return o=!0,a&&a.length&&(r.push(a),s+=a.length),e(null,Buffer.concat(r,s))}),n}getTransferEncoding(){let e=!1,n=(this.getHeader("Content-Type")||"").toString().toLowerCase().trim();return this.content&&(e=(this.getHeader("Content-Transfer-Encoding")||"").toString().toLowerCase().trim(),(!e||!["base64","quoted-printable"].includes(e))&&(/^text\//i.test(n)?this._isPlainText&&!this._hasLongLines?e="7bit":typeof this.content=="string"||this.content instanceof Buffer?e=this._getTextEncoding(this.content)==="Q"?"quoted-printable":"base64":e=this.textEncoding==="B"?"base64":"quoted-printable":/^(multipart|message)\//i.test(n)||(e=e||"base64"))),e}buildHeaders(){let e=this.getTransferEncoding(),n=[];if(e&&this.setHeader("Content-Transfer-Encoding",e),this.filename&&!this.getHeader("Content-Disposition")&&this.setHeader("Content-Disposition","attachment"),this.rootNode===this){this.getHeader("Date")||this.setHeader("Date",this.date.toUTCString().replace(/GMT/,"+0000")),this.messageId(),this.getHeader("MIME-Version")||this.setHeader("MIME-Version","1.0");for(let i=this._headers.length-2;i>=0;i--){let r=this._headers[i];r.key==="Content-Type"&&(this._headers.splice(i,1),this._headers.push(r))}}return this._headers.forEach(i=>{let r=i.key,s=i.value,o,a,l={};if(!(s&&typeof s=="object"&&!["From","Sender","To","Cc","Bcc","Reply-To","Date","References"].includes(r)&&(Object.keys(s).forEach(p=>{p!=="value"&&(l[p]=s[p])}),s=(s.value||"").toString(),!s.trim()))){if(l.prepared){l.foldLines?n.push(ze.foldLines(r+": "+s)):n.push(r+": "+s);return}switch(i.key){case"Content-Disposition":o=ze.parseHeaderValue(s),this.filename&&(o.params.filename=this.filename),s=ze.buildHeaderValue(o);break;case"Content-Type":o=ze.parseHeaderValue(s),this._handleContentType(o),o.value.match(/^text\/plain\b/)&&typeof this.content=="string"&&/[\u0080-\uFFFF]/.test(this.content)&&(o.params.charset="utf-8"),s=ze.buildHeaderValue(o),this.filename&&(a=this._encodeWords(this.filename),(a!==this.filename||/[\s'"\\;:/=(),<>@[\]?]|^-/.test(a))&&(a='"'+a+'"'),s+="; name="+a);break;case"Bcc":if(!this.keepBcc)return;break}if(s=this._encodeHeaderValue(r,s),!!(s||"").toString().trim()){if(typeof this.normalizeHeaderKey=="function"){let p=this.normalizeHeaderKey(r,s);p&&typeof p=="string"&&p.length&&(r=p)}n.push(ze.foldLines(r+": "+s,76))}}}),n.join(`\r +`)}createReadStream(e){e=e||{};let n=new ii(e),i=n,r;this.stream(n,e,s=>{if(s){i.emit("error",s);return}n.end()});for(let s=0,o=this._transforms.length;s{r.emit("error",a)}),i=i.pipe(r);r=new Ww,i.once("error",s=>{r.emit("error",s)}),i=i.pipe(r);for(let s=0,o=this._processFuncs.length;sa.emit("error",l)),a}return i}transform(e){this._transforms.push(e)}processFunc(e){this._processFuncs.push(e)}stream(e,n,i){let r=this.getTransferEncoding(),s,o,a=!1,l=d=>{a||(a=!0,i(d))},c=()=>{let d=0,u=()=>{if(d>=this.childNodes.length)return e.write(`\r +--`+this.boundary+`--\r +`),l();let g=this.childNodes[d++];e.write((d>1?`\r +`:"")+"--"+this.boundary+`\r +`),g.stream(e,n,x=>{if(x)return l(x);setImmediate(u)})};if(this.multipart)setImmediate(u);else return l()},p=()=>{if(this.content){if(Object.prototype.toString.call(this.content)==="[object Error]")return l(this.content);typeof this.content.pipe=="function"&&(this.content.removeListener("error",this._contentErrorHandler),this._contentErrorHandler=u=>l(u),this.content.once("error",this._contentErrorHandler));let d=()=>{["quoted-printable","base64"].includes(r)?(s=new(r==="base64"?Fw:Hw).Encoder(n),s.pipe(e,{end:!1}),s.once("end",c),s.once("error",u=>l(u)),o=this._getStream(this.content),o.pipe(s)):(o=this._getStream(this.content),o.pipe(e,{end:!1}),o.once("end",c)),o.once("error",u=>l(u))};if(this.content._resolve){let u=[],g=0,x=!1,_=this._getStream(this.content);_.on("error",v=>{x||(x=!0,l(v))}),_.on("readable",()=>{let v;for(;(v=_.read())!==null;)u.push(v),g+=v.length}),_.on("end",()=>{x||(x=!0,this.content._resolve=!1,this.content._resolvedValue=Buffer.concat(u,g),setImmediate(d))})}else setImmediate(d);return}else return setImmediate(c)};this._raw?setImmediate(()=>{if(Object.prototype.toString.call(this._raw)==="[object Error]")return l(this._raw);typeof this._raw.pipe=="function"&&this._raw.removeListener("error",this._contentErrorHandler);let d=this._getStream(this._raw);d.pipe(e,{end:!1}),d.on("error",u=>e.emit("error",u)),d.on("end",c)}):(e.write(this.buildHeaders()+`\r +\r +`),setImmediate(p))}setEnvelope(e){let n;this._envelope={from:!1,to:[]},e.from&&(n=[],this._convertAddresses(this._parseAddresses(e.from),n),n=n.filter(r=>r&&r.address),n.length&&n[0]&&(this._envelope.from=n[0].address)),["to","cc","bcc"].forEach(r=>{e[r]&&this._convertAddresses(this._parseAddresses(e[r]),this._envelope.to)}),this._envelope.to=this._envelope.to.map(r=>r.address).filter(r=>r);let i=["to","cc","bcc","from"];return Object.keys(e).forEach(r=>{i.includes(r)||(this._envelope[r]=e[r])}),this}getAddresses(){let e={};return this._headers.forEach(n=>{let i=n.key.toLowerCase();["from","sender","reply-to","to","cc","bcc"].includes(i)&&(Array.isArray(e[i])||(e[i]=[]),this._convertAddresses(this._parseAddresses(n.value),e[i]))}),e}getEnvelope(){if(this._envelope)return this._envelope;let e={from:!1,to:[]};return this._headers.forEach(n=>{let i=[];n.key==="From"||!e.from&&["Reply-To","Sender"].includes(n.key)?(this._convertAddresses(this._parseAddresses(n.value),i),i.length&&i[0]&&(e.from=i[0].address)):["To","Cc","Bcc"].includes(n.key)&&this._convertAddresses(this._parseAddresses(n.value),e.to)}),e.to=e.to.map(n=>n.address),e}messageId(){let e=this.getHeader("Message-ID");return e||(e=this._generateMessageId(),this.setHeader("Message-ID",e)),e}setRaw(e){return this._raw=e,this._raw&&typeof this._raw.pipe=="function"&&(this._contentErrorHandler=n=>{this._raw.removeListener("error",this._contentErrorHandler),this._raw=n},this._raw.once("error",this._contentErrorHandler)),this}_getStream(e){let n;return e._resolvedValue?(n=new ii,setImmediate(()=>{try{n.end(e._resolvedValue)}catch(i){n.emit("error",i)}}),n):typeof e.pipe=="function"?e:e&&typeof e.path=="string"&&!e.href?this.disableFileAccess?(n=new ii,setImmediate(()=>n.emit("error",new Error("File access rejected for "+e.path))),n):Uw.createReadStream(e.path):e&&typeof e.href=="string"?this.disableUrlAccess?(n=new ii,setImmediate(()=>n.emit("error",new Error("Url access rejected for "+e.href))),n):Vw(e.href,{headers:e.httpHeaders}):(n=new ii,setImmediate(()=>{try{n.end(e||"")}catch(i){n.emit("error",i)}}),n)}_parseAddresses(e){return[].concat.apply([],[].concat(e).map(n=>n&&n.address?(n.address=this._normalizeAddress(n.address),n.name=n.name||"",[n]):qw(n)))}_normalizeHeaderKey(e){return e=(e||"").toString().replace(/\r?\n|\r/g," ").trim().toLowerCase().replace(/^X-SMTPAPI$|^(MIME|DKIM|ARC|BIMI)\b|^[a-z]|-(SPF|FBL|ID|MD5)$|-[a-z]/gi,n=>n.toUpperCase()).replace(/^Content-Features$/i,"Content-features"),e}_handleContentType(e){this.contentType=e.value.trim().toLowerCase(),this.multipart=/^multipart\//i.test(this.contentType)?this.contentType.substr(this.contentType.indexOf("/")+1):!1,this.multipart?this.boundary=e.params.boundary=e.params.boundary||this.boundary||this._generateBoundary():this.boundary=!1}_generateBoundary(){return this.rootNode.boundaryPrefix+"-"+this.rootNode.baseBoundary+"-Part_"+this._nodeId}_encodeHeaderValue(e,n){switch(e=this._normalizeHeaderKey(e),e){case"From":case"Sender":case"To":case"Cc":case"Bcc":case"Reply-To":return this._convertAddresses(this._parseAddresses(n));case"Message-ID":case"In-Reply-To":case"Content-Id":return n=(n||"").toString().replace(/\r?\n|\r/g," "),n.charAt(0)!=="<"&&(n="<"+n),n.charAt(n.length-1)!==">"&&(n=n+">"),n;case"References":return n=[].concat.apply([],[].concat(n||"").map(i=>(i=(i||"").toString().replace(/\r?\n|\r/g," ").trim(),i.replace(/<[^>]*>/g,r=>r.replace(/\s/g,"")).split(/\s+/)))).map(i=>(i.charAt(0)!=="<"&&(i="<"+i),i.charAt(i.length-1)!==">"&&(i=i+">"),i)),n.join(" ").trim();case"Date":return Object.prototype.toString.call(n)==="[object Date]"?n.toUTCString().replace(/GMT/,"+0000"):(n=(n||"").toString().replace(/\r?\n|\r/g," "),this._encodeWords(n));case"Content-Type":case"Content-Disposition":return(n||"").toString().replace(/\r?\n|\r/g," ");default:return n=(n||"").toString().replace(/\r?\n|\r/g," "),this._encodeWords(n)}}_convertAddresses(e,n){let i=[];return n=n||[],[].concat(e||[]).forEach(r=>{if(r.address)r.address=this._normalizeAddress(r.address),r.name?r.name&&i.push(`${this._encodeAddressName(r.name)} <${r.address}>`):i.push(r.address.indexOf(" ")>=0?`<${r.address}>`:`${r.address}`),r.address&&(n.filter(s=>s.address===r.address).length||n.push(r));else if(r.group){let s=(r.group.length?this._convertAddresses(r.group,n):"").trim();i.push(`${this._encodeAddressName(r.name)}:${s};`)}}),i.join(", ")}_normalizeAddress(e){e=(e||"").toString().replace(/[\x00-\x1F<>]+/g," ").trim();let n=e.lastIndexOf("@");if(n<0)return e;let i=e.substr(0,n),r=e.substr(n+1),s;try{s=Dw.toASCII(r.toLowerCase())}catch{}return i.indexOf(" ")>=0&&(i.charAt(0)!=='"'&&(i='"'+i),i.substr(-1)!=='"'&&(i=i+'"')),`${i}@${s}`}_encodeAddressName(e){return/^[\w ]*$/.test(e)?e:/^[\x20-\x7e]*$/.test(e)?'"'+e.replace(/([\\"])/g,"\\$1")+'"':ze.encodeWord(e,this._getTextEncoding(e),52)}_encodeWords(e){return ze.encodeWords(e,this._getTextEncoding(e),52,!0)}_getTextEncoding(e){e=(e||"").toString();let n=this.textEncoding,i,r;return n||(r=(e.match(/[\x00-\x08\x0B\x0C\x0E-\x1F\u0080-\uFFFF]/g)||[]).length,i=(e.match(/[a-z]/gi)||[]).length,n=re+"-"+_o.randomBytes(n).toString("hex"),_o.randomBytes(4).toString("hex"))+"@"+(this.getEnvelope().from||this.hostname||"localhost").split("@").pop()+">"}};var mh=Gw;const ri=mh,Eo=zs,Xw=we.parseDataURI;let Jw=class{constructor(e){this.mail=e||{},this.message=!1}compile(){return this._alternatives=this.getAlternatives(),this._htmlNode=this._alternatives.filter(e=>/^text\/html\b/i.test(e.contentType)).pop(),this._attachments=this.getAttachments(!!this._htmlNode),this._useRelated=!!(this._htmlNode&&this._attachments.related.length),this._useAlternative=this._alternatives.length>1,this._useMixed=this._attachments.attached.length>1||this._alternatives.length&&this._attachments.attached.length===1,this.mail.raw?this.message=new ri("message/rfc822",{newline:this.mail.newline}).setRaw(this.mail.raw):this._useMixed?this.message=this._createMixed():this._useAlternative?this.message=this._createAlternative():this._useRelated?this.message=this._createRelated():this.message=this._createContentNode(!1,[].concat(this._alternatives||[]).concat(this._attachments.attached||[]).shift()||{contentType:"text/plain",content:""}),this.mail.headers&&this.message.addHeader(this.mail.headers),["from","sender","to","cc","bcc","reply-to","in-reply-to","references","subject","message-id","date"].forEach(e=>{let n=e.replace(/-(\w)/g,(i,r)=>r.toUpperCase());this.mail[n]&&this.message.setHeader(e,this.mail[n])}),this.mail.envelope&&this.message.setEnvelope(this.mail.envelope),this.message.messageId(),this.message}getAttachments(e){let n,i,r=[].concat(this.mail.attachments||[]).map((s,o)=>{let a,l=/^message\//i.test(s.contentType);/^data:/i.test(s.path||s.href)&&(s=this._processDataUrl(s));let c=s.contentType||Eo.detectMimeType(s.filename||s.path||s.href||"bin"),p=/^image\//i.test(c),d=s.contentDisposition||(l||p&&s.cid?"inline":"attachment");return a={contentType:c,contentDisposition:d,contentTransferEncoding:"contentTransferEncoding"in s?s.contentTransferEncoding:"base64"},s.filename?a.filename=s.filename:!l&&s.filename!==!1&&(a.filename=(s.path||s.href||"").split("/").pop().split("?").shift()||"attachment-"+(o+1),a.filename.indexOf(".")<0&&(a.filename+="."+Eo.detectExtension(a.contentType))),/^https?:\/\//i.test(s.path)&&(s.href=s.path,s.path=void 0),s.cid&&(a.cid=s.cid),s.raw?a.raw=s.raw:s.path?a.content={path:s.path}:s.href?a.content={href:s.href,httpHeaders:s.httpHeaders}:a.content=s.content||"",s.encoding&&(a.encoding=s.encoding),s.headers&&(a.headers=s.headers),a});return this.mail.icalEvent&&(typeof this.mail.icalEvent=="object"&&(this.mail.icalEvent.content||this.mail.icalEvent.path||this.mail.icalEvent.href||this.mail.icalEvent.raw)?n=this.mail.icalEvent:n={content:this.mail.icalEvent},i={},Object.keys(n).forEach(s=>{i[s]=n[s]}),i.contentType="application/ics",i.headers||(i.headers={}),i.filename=i.filename||"invite.ics",i.headers["Content-Disposition"]="attachment",i.headers["Content-Transfer-Encoding"]="base64"),e?{attached:r.filter(s=>!s.cid).concat(i||[]),related:r.filter(s=>!!s.cid)}:{attached:r.concat(i||[]),related:[]}}getAlternatives(){let e=[],n,i,r,s,o,a;return this.mail.text&&(typeof this.mail.text=="object"&&(this.mail.text.content||this.mail.text.path||this.mail.text.href||this.mail.text.raw)?n=this.mail.text:n={content:this.mail.text},n.contentType="text/plain; charset=utf-8"),this.mail.watchHtml&&(typeof this.mail.watchHtml=="object"&&(this.mail.watchHtml.content||this.mail.watchHtml.path||this.mail.watchHtml.href||this.mail.watchHtml.raw)?r=this.mail.watchHtml:r={content:this.mail.watchHtml},r.contentType="text/watch-html; charset=utf-8"),this.mail.amp&&(typeof this.mail.amp=="object"&&(this.mail.amp.content||this.mail.amp.path||this.mail.amp.href||this.mail.amp.raw)?s=this.mail.amp:s={content:this.mail.amp},s.contentType="text/x-amp-html; charset=utf-8"),this.mail.icalEvent&&(typeof this.mail.icalEvent=="object"&&(this.mail.icalEvent.content||this.mail.icalEvent.path||this.mail.icalEvent.href||this.mail.icalEvent.raw)?o=this.mail.icalEvent:o={content:this.mail.icalEvent},a={},Object.keys(o).forEach(l=>{a[l]=o[l]}),a.content&&typeof a.content=="object"&&(a.content._resolve=!0),a.filename=!1,a.contentType="text/calendar; charset=utf-8; method="+(a.method||"PUBLISH").toString().trim().toUpperCase(),a.headers||(a.headers={})),this.mail.html&&(typeof this.mail.html=="object"&&(this.mail.html.content||this.mail.html.path||this.mail.html.href||this.mail.html.raw)?i=this.mail.html:i={content:this.mail.html},i.contentType="text/html; charset=utf-8"),[].concat(n||[]).concat(r||[]).concat(s||[]).concat(i||[]).concat(a||[]).concat(this.mail.alternatives||[]).forEach(l=>{let c;/^data:/i.test(l.path||l.href)&&(l=this._processDataUrl(l)),c={contentType:l.contentType||Eo.detectMimeType(l.filename||l.path||l.href||"txt"),contentTransferEncoding:l.contentTransferEncoding},l.filename&&(c.filename=l.filename),/^https?:\/\//i.test(l.path)&&(l.href=l.path,l.path=void 0),l.raw?c.raw=l.raw:l.path?c.content={path:l.path}:l.href?c.content={href:l.href}:c.content=l.content||"",l.encoding&&(c.encoding=l.encoding),l.headers&&(c.headers=l.headers),e.push(c)}),e}_createMixed(e){let n;return e?n=e.createChild("multipart/mixed",{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):n=new ri("multipart/mixed",{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}),this._useAlternative?this._createAlternative(n):this._useRelated&&this._createRelated(n),[].concat(!this._useAlternative&&this._alternatives||[]).concat(this._attachments.attached||[]).forEach(i=>{(!this._useRelated||i!==this._htmlNode)&&this._createContentNode(n,i)}),n}_createAlternative(e){let n;return e?n=e.createChild("multipart/alternative",{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):n=new ri("multipart/alternative",{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}),this._alternatives.forEach(i=>{this._useRelated&&this._htmlNode===i?this._createRelated(n):this._createContentNode(n,i)}),n}_createRelated(e){let n;return e?n=e.createChild('multipart/related; type="text/html"',{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):n=new ri('multipart/related; type="text/html"',{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}),this._createContentNode(n,this._htmlNode),this._attachments.related.forEach(i=>this._createContentNode(n,i)),n}_createContentNode(e,n){n=n||{},n.content=n.content||"";let i,r=(n.encoding||"utf8").toString().toLowerCase().replace(/[-_\s]/g,"");return e?i=e.createChild(n.contentType,{filename:n.filename,textEncoding:this.mail.textEncoding,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):i=new ri(n.contentType,{filename:n.filename,baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}),n.headers&&i.addHeader(n.headers),n.cid&&i.setHeader("Content-Id","<"+n.cid.replace(/[<>]/g,"")+">"),n.contentTransferEncoding?i.setHeader("Content-Transfer-Encoding",n.contentTransferEncoding):this.mail.encoding&&/^text\//i.test(n.contentType)&&i.setHeader("Content-Transfer-Encoding",this.mail.encoding),(!/^text\//i.test(n.contentType)||n.contentDisposition)&&i.setHeader("Content-Disposition",n.contentDisposition||(n.cid&&/^image\//i.test(n.contentType)?"inline":"attachment")),typeof n.content=="string"&&!["utf8","usascii","ascii"].includes(r)&&(n.content=Buffer.from(n.content,r)),n.raw?i.setRaw(n.raw):i.setContent(n.content),i}_processDataUrl(e){let n;return(e.path||e.href).match(/^data:/)&&(n=Xw(e.path||e.href)),n&&(e.content=n.data,e.contentType=e.contentType||n.contentType,"path"in e&&(e.path=!1),"href"in e&&(e.href=!1)),e}};var Yw=Jw;const Zw=j.Transform;let e1=class extends Zw{constructor(e){super(e),this.lastBytes=Buffer.alloc(4),this.headersParsed=!1,this.headerBytes=0,this.headerChunks=[],this.rawHeaders=!1,this.bodySize=0}updateLastBytes(e){let n=this.lastBytes.length,i=Math.min(e.length,n);for(let r=0,s=n-i;r1?r-2i){let r=e.slice(i);this.bodySize+=r.length,setImmediate(()=>this.push(r))}return!1}else this.headerBytes+=e.length,this.headerChunks.push(e);return this.updateLastBytes(e),!1}_transform(e,n,i){if(!e||!e.length)return i();typeof e=="string"&&(e=Buffer.from(e,n));let r;try{r=this.checkHeaders(e)}catch(s){return i(s)}r&&(this.bodySize+=e.length,this.push(e)),setImmediate(i)}_flush(e){if(this.headerChunks){let n=Buffer.concat(this.headerChunks,this.headerBytes);this.bodySize+=n.length,this.push(n),this.headerChunks=null}e()}parseHeaders(){let e=(this.rawHeaders||"").toString().split(/\r?\n/);for(let n=e.length-1;n>0;n--)/^\s/.test(e[n])&&(e[n-1]+=` +`+e[n],e.splice(n,1));return e.filter(n=>n.trim()).map(n=>({key:n.substr(0,n.indexOf(":")).trim().toLowerCase(),line:n}))}};var t1=e1;const n1=j.Transform,i1=j;let r1=class extends n1{constructor(e){super(),e=e||{},this.chunkBuffer=[],this.chunkBufferLen=0,this.bodyHash=i1.createHash(e.hashAlgo||"sha1"),this.remainder="",this.byteLength=0,this.debug=e.debug,this._debugBody=e.debug?[]:!1}updateHash(e){let n,i="",r="file";for(let o=e.length-1;o>=0;o--){let a=e[o];if(!(r==="file"&&(a===10||a===13))){if(r==="file"&&(a===9||a===32))r="line";else if(!(r==="line"&&(a===9||a===32))){if((r==="file"||r==="line")&&(r="body",o===e.length-1))break}}if(o===0){if(r==="file"&&(!this.remainder||/[\r\n]$/.test(this.remainder))||r==="line"&&(!this.remainder||/[ \t]$/.test(this.remainder))){this.remainder+=e.toString("binary");return}else if(r==="line"||r==="file"){i=e.toString("binary"),e=!1;break}}if(r==="body"){i=e.slice(o+1).toString("binary"),e=e.slice(0,o+1);break}}let s=!!this.remainder;if(e&&!s){for(let o=0,a=e.length;o2&&this.bodyHash.update(Buffer.from(`\r +`)),this.byteLength||this.push(Buffer.from(`\r +`)),this.emit("hash",this.bodyHash.digest("base64"),this.debug?Buffer.concat(this._debugBody):!1),e()}};var s1=r1,Fl={exports:{}};const o1=lh,a1=zs,l1=j;Fl.exports=(t,e,n,i)=>{i=i||{};let s=i.headerFieldNames||"From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive",o=gh(t,s,i.skipFields),a=c1(i.domainName,i.keySelector,o.fieldNames,e,n),l,c;o.headers+="dkim-signature:"+vh(a),l=l1.createSign(("rsa-"+e).toUpperCase()),l.update(o.headers);try{c=l.sign(i.privateKey,"base64")}catch{return!1}return a+c.replace(/(^.{73}|.{75}(?!\r?\n|\r))/g,`$&\r + `).trim()};Fl.exports.relaxedHeaders=gh;function c1(t,e,n,i,r){let s=["v=1","a=rsa-"+i,"c=relaxed/relaxed","d="+o1.toASCII(t),"q=dns/txt","s="+e,"bh="+r,"h="+n].join("; ");return a1.foldLines("DKIM-Signature: "+s,76)+`;\r + b=`}function gh(t,e,n){let i=new Set,r=new Set,s=new Map;(n||"").toLowerCase().split(":").forEach(l=>{r.add(l.trim())}),(e||"").toLowerCase().split(":").filter(l=>!r.has(l.trim())).forEach(l=>{i.add(l.trim())});for(let l=t.length-1;l>=0;l--){let c=t[l];i.has(c.key)&&!s.has(c.key)&&s.set(c.key,vh(c.line))}let o=[],a=[];return i.forEach(l=>{s.has(l)&&(a.push(l),o.push(l+":"+s.get(l)))}),{headers:o.join(`\r +`)+`\r +`,fieldNames:a.join(":")}}function vh(t){return t.substr(t.indexOf(":")+1).replace(/\r?\n/g,"").replace(/\s+/g," ").trim()}var p1=Fl.exports;const u1=t1,d1=s1,f1=p1,So=j.PassThrough,ko=j,h1=j,m1=j,g1="sha256",v1=128*1024;class x1{constructor(e,n,i,r){this.options=e||{},this.keys=n,this.cacheTreshold=Number(this.options.cacheTreshold)||v1,this.hashAlgo=this.options.hashAlgo||g1,this.cacheDir=this.options.cacheDir||!1,this.chunks=[],this.chunklen=0,this.readPos=0,this.cachePath=this.cacheDir?h1.join(this.cacheDir,"message."+Date.now()+"-"+m1.randomBytes(14).toString("hex")):!1,this.cache=!1,this.headers=!1,this.bodyHash=!1,this.parser=!1,this.relaxedBody=!1,this.input=i,this.output=r,this.output.usingCache=!1,this.hasErrored=!1,this.input.on("error",s=>{this.hasErrored=!0,this.cleanup(),r.emit("error",s)})}cleanup(){!this.cache||!this.cachePath||ko.unlink(this.cachePath,()=>!1)}createReadCache(){this.cache=ko.createReadStream(this.cachePath),this.cache.once("error",e=>{this.cleanup(),this.output.emit("error",e)}),this.cache.once("close",()=>{this.cleanup()}),this.cache.pipe(this.output)}sendNextChunk(){if(this.hasErrored)return;if(this.readPos>=this.chunks.length)return this.cache?this.createReadCache():this.output.end();let e=this.chunks[this.readPos++];if(this.output.write(e)===!1)return this.output.once("drain",()=>{this.sendNextChunk()});setImmediate(()=>this.sendNextChunk())}sendSignedOutput(){let e=0,n=()=>{if(e>=this.keys.length)return this.output.write(this.parser.rawHeaders),setImmediate(()=>this.sendNextChunk());let i=this.keys[e++],r=f1(this.headers,this.hashAlgo,this.bodyHash,{domainName:i.domainName,keySelector:i.keySelector,privateKey:i.privateKey,headerFieldNames:this.options.headerFieldNames,skipFields:this.options.skipFields});return r&&this.output.write(Buffer.from(r+`\r +`)),setImmediate(n)};if(this.bodyHash&&this.headers)return n();this.output.write(this.parser.rawHeaders),this.sendNextChunk()}createWriteCache(){this.output.usingCache=!0,this.cache=ko.createWriteStream(this.cachePath),this.cache.once("error",e=>{this.cleanup(),this.relaxedBody.unpipe(this.cache),this.relaxedBody.on("readable",()=>{for(;this.relaxedBody.read()!==null;);}),this.hasErrored=!0,this.output.emit("error",e)}),this.cache.once("close",()=>{this.sendSignedOutput()}),this.relaxedBody.removeAllListeners("readable"),this.relaxedBody.pipe(this.cache)}signStream(){this.parser=new u1,this.relaxedBody=new d1({hashAlgo:this.hashAlgo}),this.parser.on("headers",e=>{this.headers=e}),this.relaxedBody.on("hash",e=>{this.bodyHash=e}),this.relaxedBody.on("readable",()=>{let e;if(!this.cache){for(;(e=this.relaxedBody.read())!==null;)if(this.chunks.push(e),this.chunklen+=e.length,this.chunklen>=this.cacheTreshold&&this.cachePath)return this.createWriteCache()}}),this.relaxedBody.on("end",()=>{this.cache||this.sendSignedOutput()}),this.parser.pipe(this.relaxedBody),setImmediate(()=>this.input.pipe(this.parser))}}let y1=class{constructor(e){this.options=e||{},this.keys=[].concat(this.options.keys||{domainName:e.domainName,keySelector:e.keySelector,privateKey:e.privateKey})}sign(e,n){let i=new So,r=e,s=!1;Buffer.isBuffer(e)?(s=e,r=new So):typeof e=="string"&&(s=Buffer.from(e),r=new So);let o=this.options;n&&Object.keys(n).length&&(o={},Object.keys(this.options||{}).forEach(l=>{o[l]=this.options[l]}),Object.keys(n||{}).forEach(l=>{l in o||(o[l]=n[l])}));let a=new x1(o,this.keys,r,i);return setImmediate(()=>{a.signStream(),s&&setImmediate(()=>{r.end(s)})}),i}};var w1=y1;const zp=j,Bp=j,_1=j;function xh(t,e,n,i){let r=_1.parse(t),s,o,a;s={host:r.hostname,port:Number(r.port)?Number(r.port):r.protocol==="https:"?443:80},r.protocol==="https:"?(s.rejectUnauthorized=!1,o=Bp.connect.bind(Bp)):o=zp.connect.bind(zp);let l=!1,c=d=>{if(!l){l=!0;try{a.destroy()}catch{}i(d)}},p=()=>{let d=new Error("Proxy socket timed out");d.code="ETIMEDOUT",c(d)};a=o(s,()=>{if(l)return;let d={Host:n+":"+e,Connection:"close"};r.auth&&(d["Proxy-Authorization"]="Basic "+Buffer.from(r.auth).toString("base64")),a.write("CONNECT "+n+":"+e+` HTTP/1.1\r +`+Object.keys(d).map(x=>x+": "+d[x]).join(`\r +`)+`\r +\r +`);let u="",g=x=>{let _,v;if(!l&&(u+=x.toString("binary"),_=u.match(/\r\n\r\n/))){if(a.removeListener("data",g),v=u.substr(_.index+_[0].length),u=u.substr(0,_.index),v&&a.unshift(Buffer.from(v,"binary")),l=!0,_=u.match(/^HTTP\/\d+\.\d+ (\d+)/i),!_||(_[1]||"").charAt(0)!=="2"){try{a.destroy()}catch{}return i(new Error("Invalid response from proxy"+(_&&": "+_[1]||"")))}return a.removeListener("error",c),a.removeListener("timeout",p),a.setTimeout(0),i(null,a)}};a.on("data",g)}),a.setTimeout(xh.timeout||30*1e3),a.on("timeout",p),a.once("error",c)}var E1=xh;const Up=we,S1=mh,un=zs;let k1=class{constructor(e,n){this.mailer=e,this.data={},this.message=null,n=n||{};let i=e.options||{},r=e._defaults||{};Object.keys(n).forEach(s=>{this.data[s]=n[s]}),this.data.headers=this.data.headers||{},Object.keys(r).forEach(s=>{s in this.data?s==="headers"&&Object.keys(r.headers).forEach(o=>{o in this.data.headers||(this.data.headers[o]=r.headers[o])}):this.data[s]=r[s]}),["disableFileAccess","disableUrlAccess","normalizeHeaderKey"].forEach(s=>{s in i&&(this.data[s]=i[s])})}resolveContent(...e){return Up.resolveContent(...e)}resolveAll(e){let n=[[this.data,"html"],[this.data,"text"],[this.data,"watchHtml"],[this.data,"amp"],[this.data,"icalEvent"]];this.data.alternatives&&this.data.alternatives.length&&this.data.alternatives.forEach((l,c)=>{n.push([this.data.alternatives,c])}),this.data.attachments&&this.data.attachments.length&&this.data.attachments.forEach((l,c)=>{l.filename||(l.filename=(l.path||l.href||"").split("/").pop().split("?").shift()||"attachment-"+(c+1),l.filename.indexOf(".")<0&&(l.filename+="."+un.detectExtension(l.contentType))),l.contentType||(l.contentType=un.detectMimeType(l.filename||l.path||l.href||"bin")),n.push([this.data.attachments,c])});let i=new S1;["from","to","cc","bcc","sender","replyTo"].forEach(l=>{let c;this.message?c=[].concat(i._parseAddresses(this.message.getHeader(l==="replyTo"?"reply-to":l))||[]):this.data[l]&&(c=[].concat(i._parseAddresses(this.data[l])||[])),c&&c.length?this.data[l]=c:l in this.data&&(this.data[l]=null)}),["from","sender"].forEach(l=>{this.data[l]&&(this.data[l]=this.data[l].shift())});let o=0,a=()=>{if(o>=n.length)return e(null,this.data);let l=n[o++];if(!l[0]||!l[0][l[1]])return a();Up.resolveContent(...l,(c,p)=>{if(c)return e(c);let d={content:p};l[0][l[1]]&&typeof l[0][l[1]]=="object"&&!Buffer.isBuffer(l[0][l[1]])&&Object.keys(l[0][l[1]]).forEach(u=>{!(u in d)&&!["content","path","href","raw"].includes(u)&&(d[u]=l[0][l[1]][u])}),l[0][l[1]]=d,a()})};setImmediate(()=>a())}normalize(e){let n=this.data.envelope||this.message.getEnvelope(),i=this.message.messageId();this.resolveAll((r,s)=>r?e(r):(s.envelope=n,s.messageId=i,["html","text","watchHtml","amp"].forEach(o=>{s[o]&&s[o].content&&(typeof s[o].content=="string"?s[o]=s[o].content:Buffer.isBuffer(s[o].content)&&(s[o]=s[o].content.toString()))}),s.icalEvent&&Buffer.isBuffer(s.icalEvent.content)&&(s.icalEvent.content=s.icalEvent.content.toString("base64"),s.icalEvent.encoding="base64"),s.alternatives&&s.alternatives.length&&s.alternatives.forEach(o=>{o&&o.content&&Buffer.isBuffer(o.content)&&(o.content=o.content.toString("base64"),o.encoding="base64")}),s.attachments&&s.attachments.length&&s.attachments.forEach(o=>{o&&o.content&&Buffer.isBuffer(o.content)&&(o.content=o.content.toString("base64"),o.encoding="base64")}),s.normalizedHeaders={},Object.keys(s.headers||{}).forEach(o=>{let a=[].concat(s.headers[o]||[]).shift();a=a&&a.value||a,a&&(["references","in-reply-to","message-id","content-id"].includes(o)&&(a=this.message._encodeHeaderValue(o,a)),s.normalizedHeaders[o]=a)}),s.list&&typeof s.list=="object"&&this._getListHeaders(s.list).forEach(a=>{s.normalizedHeaders[a.key]=a.value.map(l=>l&&l.value||l).join(", ")}),s.references&&(s.normalizedHeaders.references=this.message._encodeHeaderValue("references",s.references)),s.inReplyTo&&(s.normalizedHeaders["in-reply-to"]=this.message._encodeHeaderValue("in-reply-to",s.inReplyTo)),e(null,s)))}setMailerHeader(){!this.message||!this.data.xMailer||this.message.setHeader("X-Mailer",this.data.xMailer)}setPriorityHeaders(){if(!(!this.message||!this.data.priority))switch((this.data.priority||"").toString().toLowerCase()){case"high":this.message.setHeader("X-Priority","1 (Highest)"),this.message.setHeader("X-MSMail-Priority","High"),this.message.setHeader("Importance","High");break;case"low":this.message.setHeader("X-Priority","5 (Lowest)"),this.message.setHeader("X-MSMail-Priority","Low"),this.message.setHeader("Importance","Low");break}}setListHeaders(){!this.message||!this.data.list||typeof this.data.list!="object"||this.data.list&&typeof this.data.list=="object"&&this._getListHeaders(this.data.list).forEach(e=>{e.value.forEach(n=>{this.message.addHeader(e.key,n)})})}_getListHeaders(e){return Object.keys(e).map(n=>({key:"list-"+n.toLowerCase().trim(),value:[].concat(e[n]||[]).map(i=>({prepared:!0,foldLines:!0,value:[].concat(i||[]).map(r=>{if(typeof r=="string"&&(r={url:r}),r&&r.url){if(n.toLowerCase().trim()==="id"){let o=r.comment||"";return un.isPlainText(o)?o='"'+o+'"':o=un.encodeWord(o),(r.comment?o+" ":"")+this._formatListUrl(r.url).replace(/^<[^:]+\/{,2}/,"")}let s=r.comment||"";return un.isPlainText(s)||(s=un.encodeWord(s)),this._formatListUrl(r.url)+(r.comment?" ("+s+")":"")}return""}).filter(r=>r).join(", ")}))}))}_formatListUrl(e){return e=e.replace(/[\s<]+|[\s>]+/g,""),/^(https?|mailto|ftp):/.test(e)?"<"+e+">":/^[^@]+@[^@]+$/.test(e)?"":""}};var C1=k1;const b1=j,Dp=we,T1=Zf,N1=Yw,$p=w1,A1=E1,j1=j,P1=j,Co=et,O1=C1,L1=j,R1=j,I1=j;class M1 extends b1{constructor(e,n,i){super(),this.options=n||{},this._defaults=i||{},this._defaultPlugins={compile:[(...r)=>this._convertDataImages(...r)],stream:[]},this._userPlugins={compile:[],stream:[]},this.meta=new Map,this.dkim=this.options.dkim?new $p(this.options.dkim):!1,this.transporter=e,this.transporter.mailer=this,this.logger=Dp.getLogger(this.options,{component:this.options.component||"mail"}),this.logger.debug({tnx:"create"},"Creating transport: %s",this.getVersionString()),typeof this.transporter.on=="function"&&(this.transporter.on("log",r=>{this.logger.debug({tnx:"transport"},"%s: %s",r.type,r.message)}),this.transporter.on("error",r=>{this.logger.error({err:r,tnx:"transport"},"Transport Error: %s",r.message),this.emit("error",r)}),this.transporter.on("idle",(...r)=>{this.emit("idle",...r)})),["close","isIdle","verify"].forEach(r=>{this[r]=(...s)=>typeof this.transporter[r]=="function"?(r==="verify"&&typeof this.getSocket=="function"&&(this.transporter.getSocket=this.getSocket,this.getSocket=!1),this.transporter[r](...s)):(this.logger.warn({tnx:"transport",methodName:r},"Non existing method %s called for transport",r),!1)}),this.options.proxy&&typeof this.options.proxy=="string"&&this.setupProxy(this.options.proxy)}use(e,n){return e=(e||"").toString(),this._userPlugins.hasOwnProperty(e)?this._userPlugins[e].push(n):this._userPlugins[e]=[n],this}sendMail(e,n=null){let i;n||(i=new Promise((s,o)=>{n=Dp.callbackPromise(s,o)})),typeof this.getSocket=="function"&&(this.transporter.getSocket=this.getSocket,this.getSocket=!1);let r=new O1(this,e);return this.logger.debug({tnx:"transport",name:this.transporter.name,version:this.transporter.version,action:"send"},"Sending mail using %s/%s",this.transporter.name,this.transporter.version),this._processPlugins("compile",r,s=>{if(s)return this.logger.error({err:s,tnx:"plugin",action:"compile"},"PluginCompile Error: %s",s.message),n(s);r.message=new N1(r.data).compile(),r.setMailerHeader(),r.setPriorityHeaders(),r.setListHeaders(),this._processPlugins("stream",r,o=>{if(o)return this.logger.error({err:o,tnx:"plugin",action:"stream"},"PluginStream Error: %s",o.message),n(o);(r.data.dkim||this.dkim)&&r.message.processFunc(a=>{let l=r.data.dkim?new $p(r.data.dkim):this.dkim;return this.logger.debug({tnx:"DKIM",messageId:r.message.messageId(),dkimDomains:l.keys.map(c=>c.keySelector+"."+c.domainName).join(", ")},"Signing outgoing message with %s keys",l.keys.length),l.sign(a,r.data._dkim)}),this.transporter.send(r,(...a)=>{a[0]&&this.logger.error({err:a[0],tnx:"transport",action:"send"},"Send Error: %s",a[0].message),n(...a)})})}),i}getVersionString(){return j1.format("%s (%s; +%s; %s/%s)",Co.name,Co.version,Co.homepage,this.transporter.name,this.transporter.version)}_processPlugins(e,n,i){if(e=(e||"").toString(),!this._userPlugins.hasOwnProperty(e))return i();let r=this._userPlugins[e]||[],s=this._defaultPlugins[e]||[];if(r.length&&this.logger.debug({tnx:"transaction",pluginCount:r.length,step:e},"Using %s plugins for %s",r.length,e),r.length+s.length===0)return i();let o=0,a="default",l=()=>{let c=a==="default"?s:r;if(o>=c.length)if(a==="default"&&r.length)a="user",o=0,c=r;else return i();let p=c[o++];p(n,d=>{if(d)return i(d);l()})};l()}setupProxy(e){let n=P1.parse(e);this.getSocket=(i,r)=>{let s=n.protocol.replace(/:$/,"").toLowerCase();if(this.meta.has("proxy_handler_"+s))return this.meta.get("proxy_handler_"+s)(n,i,r);switch(s){case"http":case"https":A1(n.href,i.port,i.host,(o,a)=>o?r(o):r(null,{connection:a}));return;case"socks":case"socks5":case"socks4":case"socks4a":{if(!this.meta.has("proxy_socks_module"))return r(new Error("Socks module not loaded"));let o=a=>{let l=!!this.meta.get("proxy_socks_module").SocksClient,c=l?this.meta.get("proxy_socks_module").SocksClient:this.meta.get("proxy_socks_module"),p=Number(n.protocol.replace(/\D/g,""))||5,d={proxy:{ipaddress:a,port:Number(n.port),type:p},[l?"destination":"target"]:{host:i.host,port:i.port},command:"connect"};if(n.auth){let u=decodeURIComponent(n.auth.split(":").shift()),g=decodeURIComponent(n.auth.split(":").pop());l?(d.proxy.userId=u,d.proxy.password=g):p===4?d.userid=u:d.authentication={username:u,password:g}}c.createConnection(d,(u,g)=>u?r(u):r(null,{connection:g.socket||g}))};return L1.isIP(n.hostname)?o(n.hostname):R1.resolve(n.hostname,(a,l)=>{if(a)return r(a);o(Array.isArray(l)?l[0]:l)})}}r(new Error("Unknown proxy configuration"))}}_convertDataImages(e,n){if(!this.options.attachDataUrls&&!e.data.attachDataUrls||!e.data.html)return n();e.resolveContent(e.data,"html",(i,r)=>{if(i)return n(i);let s=0;r=(r||"").toString().replace(/(]{0,1024} src\s{0,20}=[\s"']{0,20})(data:([^;]+);[^"'>\s]+)/gi,(o,a,l,c)=>{let p=I1.randomBytes(10).toString("hex")+"@localhost";return e.data.attachments||(e.data.attachments=[]),Array.isArray(e.data.attachments)||(e.data.attachments=[].concat(e.data.attachments||[])),e.data.attachments.push({path:l,cid:p,filename:"image-"+ ++s+"."+T1.detectExtension(c)}),a+"cid:"+p}),e.data.html=r,n()})}set(e,n){return this.meta.set(e,n)}get(e){return this.meta.get(e)}}var z1=M1;const B1=j,U1=B1.Transform;let D1=class extends U1{constructor(e){super(e),this.options=e||{},this._curLine="",this.inByteCount=0,this.outByteCount=0,this.lastByte=!1}_transform(e,n,i){let r=[],s=0,o,a,l=0,c;if(!e||!e.length)return i();for(typeof e=="string"&&(e=Buffer.from(e)),this.inByteCount+=e.length,o=0,a=e.length;ol?(c=e.slice(l,o),r.push(c),s+=c.length+2):s+=2,r.push(Buffer.from(`\r +`)),l=o+1);s?(l"u"&&this.port===465&&(this.secureConnection=!0),this.name=this.options.name||this._getHostname(),this.logger=nt.getLogger(this.options,{component:this.options.component||"smtp-connection",sid:this.id}),this.customAuth=new Map,Object.keys(this.options.customAuth||{}).forEach(n=>{let i=(n||"").toString().trim().toUpperCase();i&&this.customAuth.set(i,this.options.customAuth[n])}),this.version=H1.version,this.authenticated=!1,this.destroyed=!1,this.secure=!!this.secureConnection,this._remainder="",this._responseQueue=[],this.lastServerResponse=!1,this._socket=!1,this._supportedAuth=[],this.allowsAuth=!1,this._envelope=!1,this._supportedExtensions=[],this._maxAllowedSize=0,this._responseActions=[],this._recipientQueue=[],this._greetingTimeout=!1,this._connectionTimeout=!1,this._destroyed=!1,this._closing=!1,this._onSocketData=n=>this._onData(n),this._onSocketError=n=>this._onError(n,"ESOCKET",!1,"CONN"),this._onSocketClose=()=>this._onClose(),this._onSocketEnd=()=>this._onEnd(),this._onSocketTimeout=()=>this._onTimeout()}connect(e){if(typeof e=="function"){this.once("connect",()=>{this.logger.debug({tnx:"smtp"},"SMTP handshake finished"),e()});const r=this._isDestroyedMessage("connect");if(r)return e(this._formatError(r,"ECONNECTION",!1,"CONN"))}let n={port:this.port,host:this.host,allowInternalNetworkInterfaces:this.allowInternalNetworkInterfaces,timeout:this.options.dnsTimeout||G1};this.options.localAddress&&(n.localAddress=this.options.localAddress);let i=()=>{this._connectionTimeout=setTimeout(()=>{this._onError("Connection timeout","ETIMEDOUT",!1,"CONN")},this.options.connectionTimeout||Q1),this._socket.on("error",this._onSocketError)};if(this.options.connection){this._socket=this.options.connection,this.secureConnection&&!this.alreadySecured?setImmediate(()=>this._upgradeConnection(r=>{if(r){this._onError(new Error("Error initiating TLS - "+(r.message||r)),"ETLS",!1,"CONN");return}this._onConnect()})):setImmediate(()=>this._onConnect());return}else return this.options.socket?(this._socket=this.options.socket,nt.resolveHostname(n,(r,s)=>{if(r)return setImmediate(()=>this._onError(r,"EDNS",!1,"CONN"));this.logger.debug({tnx:"dns",source:n.host,resolved:s.host,cached:!!s.cached},"Resolved %s as %s [cache %s]",n.host,s.host,s.cached?"hit":"miss"),Object.keys(s).forEach(o=>{o.charAt(0)!=="_"&&s[o]&&(n[o]=s[o])});try{this._socket.connect(this.port,this.host,()=>{this._socket.setKeepAlive(!0),this._onConnect()}),i()}catch(o){return setImmediate(()=>this._onError(o,"ECONNECTION",!1,"CONN"))}})):this.secureConnection?(this.options.tls&&Object.keys(this.options.tls).forEach(r=>{n[r]=this.options.tls[r]}),this.servername&&!n.servername&&(n.servername=this.servername),nt.resolveHostname(n,(r,s)=>{if(r)return setImmediate(()=>this._onError(r,"EDNS",!1,"CONN"));this.logger.debug({tnx:"dns",source:n.host,resolved:s.host,cached:!!s.cached},"Resolved %s as %s [cache %s]",n.host,s.host,s.cached?"hit":"miss"),Object.keys(s).forEach(o=>{o.charAt(0)!=="_"&&s[o]&&(n[o]=s[o])});try{this._socket=Fp.connect(n,()=>{this._socket.setKeepAlive(!0),this._onConnect()}),i()}catch(o){return setImmediate(()=>this._onError(o,"ECONNECTION",!1,"CONN"))}})):nt.resolveHostname(n,(r,s)=>{if(r)return setImmediate(()=>this._onError(r,"EDNS",!1,"CONN"));this.logger.debug({tnx:"dns",source:n.host,resolved:s.host,cached:!!s.cached},"Resolved %s as %s [cache %s]",n.host,s.host,s.cached?"hit":"miss"),Object.keys(s).forEach(o=>{o.charAt(0)!=="_"&&s[o]&&(n[o]=s[o])});try{this._socket=Hp.connect(n,()=>{this._socket.setKeepAlive(!0),this._onConnect()}),i()}catch(o){return setImmediate(()=>this._onError(o,"ECONNECTION",!1,"CONN"))}})}quit(){this._sendCommand("QUIT"),this._responseActions.push(this.close)}close(){if(clearTimeout(this._connectionTimeout),clearTimeout(this._greetingTimeout),this._responseActions=[],this._closing)return;this._closing=!0;let e="end";this.stage==="init"&&(e="destroy"),this.logger.debug({tnx:"smtp"},'Closing connection to the server using "%s"',e);let n=this._socket&&this._socket.socket||this._socket;if(n&&!n.destroyed)try{this._socket[e]()}catch{}this._destroy()}login(e,n){const i=this._isDestroyedMessage("login");if(i)return n(this._formatError(i,"ECONNECTION",!1,"API"));if(this._auth=e||{},this._authMethod=(this._auth.method||"").toString().trim().toUpperCase()||!1,!this._authMethod&&this._auth.oauth2&&!this._auth.credentials?this._authMethod="XOAUTH2":(!this._authMethod||this._authMethod==="XOAUTH2"&&!this._auth.oauth2)&&(this._authMethod=(this._supportedAuth[0]||"PLAIN").toUpperCase().trim()),this._authMethod!=="XOAUTH2"&&(!this._auth.credentials||!this._auth.credentials.user||!this._auth.credentials.pass))if(this._auth.user&&this._auth.pass||this.customAuth.has(this._authMethod))this._auth.credentials={user:this._auth.user,pass:this._auth.pass,options:this._auth.options};else return n(this._formatError('Missing credentials for "'+this._authMethod+'"',"EAUTH",!1,"API"));if(this.customAuth.has(this._authMethod)){let r=this.customAuth.get(this._authMethod),s,o=!1,a=()=>{o||(o=!0,this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,n(null,!0))},l=p=>{o||(o=!0,n(this._formatError(p,"EAUTH",s,"AUTH "+this._authMethod)))},c=r({auth:this._auth,method:this._authMethod,extensions:[].concat(this._supportedExtensions),authMethods:[].concat(this._supportedAuth),maxAllowedSize:this._maxAllowedSize||!1,sendCommand:(p,d)=>{let u;return d||(u=new Promise((g,x)=>{d=nt.callbackPromise(g,x)})),this._responseActions.push(g=>{s=g;let x=g.match(/^(\d+)(?:\s(\d+\.\d+\.\d+))?\s/),_={command:p,response:g};x?(_.status=Number(x[1])||0,x[2]&&(_.code=x[2]),_.text=g.substr(x[0].length)):(_.text=g,_.status=0),d(null,_)}),setImmediate(()=>this._sendCommand(p)),u},resolve:a,reject:l});c&&typeof c.catch=="function"&&c.then(a).catch(l);return}switch(this._authMethod){case"XOAUTH2":this._handleXOauth2Token(!1,n);return;case"LOGIN":this._responseActions.push(r=>{this._actionAUTH_LOGIN_USER(r,n)}),this._sendCommand("AUTH LOGIN");return;case"PLAIN":this._responseActions.push(r=>{this._actionAUTHComplete(r,n)}),this._sendCommand("AUTH PLAIN "+Buffer.from("\0"+this._auth.credentials.user+"\0"+this._auth.credentials.pass,"utf-8").toString("base64"),"AUTH PLAIN "+Buffer.from("\0"+this._auth.credentials.user+"\0/* secret */","utf-8").toString("base64"));return;case"CRAM-MD5":this._responseActions.push(r=>{this._actionAUTH_CRAM_MD5(r,n)}),this._sendCommand("AUTH CRAM-MD5");return}return n(this._formatError('Unknown authentication method "'+this._authMethod+'"',"EAUTH",!1,"API"))}send(e,n,i){if(!n)return i(this._formatError("Empty message","EMESSAGE",!1,"API"));const r=this._isDestroyedMessage("send message");if(r)return i(this._formatError(r,"ECONNECTION",!1,"API"));if(this._maxAllowedSize&&e.size>this._maxAllowedSize)return setImmediate(()=>{i(this._formatError("Message size larger than allowed "+this._maxAllowedSize,"EMESSAGE",!1,"MAIL FROM"))});let s=!1,o=function(){s||(s=!0,i(...arguments))};typeof n.on=="function"&&n.on("error",l=>o(this._formatError(l,"ESTREAM",!1,"API")));let a=Date.now();this._setEnvelope(e,(l,c)=>{if(l)return o(l);let p=Date.now(),d=this._createSendStream((u,g)=>u?o(u):(c.envelopeTime=p-a,c.messageTime=Date.now()-p,c.messageSize=d.outByteCount,c.response=g,o(null,c)));typeof n.pipe=="function"?n.pipe(d):(d.write(n),d.end())})}reset(e){this._sendCommand("RSET"),this._responseActions.push(n=>n.charAt(0)!=="2"?e(this._formatError("Could not reset session state. response="+n,"EPROTOCOL",n,"RSET")):(this._envelope=!1,e(null,!0)))}_onConnect(){if(clearTimeout(this._connectionTimeout),this.logger.info({tnx:"network",localAddress:this._socket.localAddress,localPort:this._socket.localPort,remoteAddress:this._socket.remoteAddress,remotePort:this._socket.remotePort},"%s established to %s:%s",this.secure?"Secure connection":"Connection",this._socket.remoteAddress,this._socket.remotePort),this._destroyed){this.close();return}this.stage="connected",this._socket.removeListener("data",this._onSocketData),this._socket.removeListener("timeout",this._onSocketTimeout),this._socket.removeListener("close",this._onSocketClose),this._socket.removeListener("end",this._onSocketEnd),this._socket.on("data",this._onSocketData),this._socket.once("close",this._onSocketClose),this._socket.once("end",this._onSocketEnd),this._socket.setTimeout(this.options.socketTimeout||Vp),this._socket.on("timeout",this._onSocketTimeout),this._greetingTimeout=setTimeout(()=>{this._socket&&!this._destroyed&&this._responseActions[0]===this._actionGreeting&&this._onError("Greeting never received","ETIMEDOUT",!1,"CONN")},this.options.greetingTimeout||K1),this._responseActions.push(this._actionGreeting),this._socket.resume()}_onData(e){if(this._destroyed||!e||!e.length)return;let n=(e||"").toString("binary"),i=(this._remainder+n).split(/\r?\n/),r;this._remainder=i.pop();for(let s=0,o=i.length;s{i[r]=this.options.tls[r]}),this.servername&&!i.servername&&(i.servername=this.servername),this.upgrading=!0;try{this._socket=Fp.connect(i,()=>(this.secure=!0,this.upgrading=!1,this._socket.on("data",this._onSocketData),n.removeListener("close",this._onSocketClose),n.removeListener("end",this._onSocketEnd),e(null,!0)))}catch(r){return e(r)}this._socket.on("error",this._onSocketError),this._socket.once("close",this._onSocketClose),this._socket.once("end",this._onSocketEnd),this._socket.setTimeout(this.options.socketTimeout||Vp),this._socket.on("timeout",this._onSocketTimeout),n.resume()}_processResponse(){if(!this._responseQueue.length)return!1;let e=this.lastServerResponse=(this._responseQueue.shift()||"").toString();if(/^\d+-/.test(e.split(` +`).pop()))return;(this.options.debug||this.options.transactionLog)&&this.logger.debug({tnx:"server"},e.replace(/\r?\n$/,"")),e.trim()||setImmediate(()=>this._processResponse());let n=this._responseActions.shift();if(typeof n=="function")n.call(this,e),setImmediate(()=>this._processResponse());else return this._onError(new Error("Unexpected Response"),"EPROTOCOL",e,"CONN")}_sendCommand(e,n){if(!this._destroyed){if(this._socket.destroyed)return this.close();(this.options.debug||this.options.transactionLog)&&this.logger.debug({tnx:"client"},(n||e||"").toString().replace(/\r?\n$/,"")),this._socket.write(Buffer.from(e+`\r +`,"utf-8"))}}_setEnvelope(e,n){let i=[],r=!1;if(this._envelope=e||{},this._envelope.from=(this._envelope.from&&this._envelope.from.address||this._envelope.from||"").toString().trim(),this._envelope.to=[].concat(this._envelope.to||[]).map(s=>(s&&s.address||s||"").toString().trim()),!this._envelope.to.length)return n(this._formatError("No recipients defined","EENVELOPE",!1,"API"));if(this._envelope.from&&/[\r\n<>]/.test(this._envelope.from))return n(this._formatError("Invalid sender "+JSON.stringify(this._envelope.from),"EENVELOPE",!1,"API"));/[\x80-\uFFFF]/.test(this._envelope.from)&&(r=!0);for(let s=0,o=this._envelope.to.length;s]/.test(this._envelope.to[s]))return n(this._formatError("Invalid recipient "+JSON.stringify(this._envelope.to[s]),"EENVELOPE",!1,"API"));/[\x80-\uFFFF]/.test(this._envelope.to[s])&&(r=!0)}if(this._envelope.rcptQueue=JSON.parse(JSON.stringify(this._envelope.to||[])),this._envelope.rejected=[],this._envelope.rejectedErrors=[],this._envelope.accepted=[],this._envelope.dsn)try{this._envelope.dsn=this._setDsnEnvelope(this._envelope.dsn)}catch(s){return n(this._formatError("Invalid DSN "+s.message,"EENVELOPE",!1,"API"))}this._responseActions.push(s=>{this._actionMAIL(s,n)}),r&&this._supportedExtensions.includes("SMTPUTF8")&&(i.push("SMTPUTF8"),this._usingSmtpUtf8=!0),this._envelope.use8BitMime&&this._supportedExtensions.includes("8BITMIME")&&(i.push("BODY=8BITMIME"),this._using8BitMime=!0),this._envelope.size&&this._supportedExtensions.includes("SIZE")&&i.push("SIZE="+this._envelope.size),this._envelope.dsn&&this._supportedExtensions.includes("DSN")&&(this._envelope.dsn.ret&&i.push("RET="+nt.encodeXText(this._envelope.dsn.ret)),this._envelope.dsn.envid&&i.push("ENVID="+nt.encodeXText(this._envelope.dsn.envid))),this._sendCommand("MAIL FROM:<"+this._envelope.from+">"+(i.length?" "+i.join(" "):""))}_setDsnEnvelope(e){let n=(e.ret||e.return||"").toString().toUpperCase()||null;if(n)switch(n){case"HDRS":case"HEADERS":n="HDRS";break;case"FULL":case"BODY":n="FULL";break}if(n&&!["FULL","HDRS"].includes(n))throw new Error("ret: "+JSON.stringify(n));let i=(e.envid||e.id||"").toString()||null,r=e.notify||null;if(r){typeof r=="string"&&(r=r.split(",")),r=r.map(l=>l.trim().toUpperCase());let o=["NEVER","SUCCESS","FAILURE","DELAY"];if(r.filter(l=>!o.includes(l)).length||r.length>1&&r.includes("NEVER"))throw new Error("notify: "+JSON.stringify(r.join(",")));r=r.join(",")}let s=(e.recipient||e.orcpt||"").toString()||null;return s&&s.indexOf(";")<0&&(s="rfc822;"+s),{ret:n,envid:i,notify:r,orcpt:s}}_getDsnRcptToArgs(){let e=[];return this._envelope.dsn&&this._supportedExtensions.includes("DSN")&&(this._envelope.dsn.notify&&e.push("NOTIFY="+nt.encodeXText(this._envelope.dsn.notify)),this._envelope.dsn.orcpt&&e.push("ORCPT="+nt.encodeXText(this._envelope.dsn.orcpt))),e.length?" "+e.join(" "):""}_createSendStream(e){let n=new V1,i;return this.options.lmtp?this._envelope.accepted.forEach((r,s)=>{let o=s===this._envelope.accepted.length-1;this._responseActions.push(a=>{this._actionLMTPStream(r,o,a,e)})}):this._responseActions.push(r=>{this._actionSMTPStream(r,e)}),n.pipe(this._socket,{end:!1}),this.options.debug&&(i=new W1,i.on("readable",()=>{let r;for(;r=i.read();)this.logger.debug({tnx:"message"},r.toString("binary").replace(/\r?\n$/,""))}),n.pipe(i)),n.once("end",()=>{this.logger.info({tnx:"message",inByteCount:n.inByteCount,outByteCount:n.outByteCount},"<%s bytes encoded mime message (source size %s bytes)>",n.outByteCount,n.inByteCount)}),n}_actionGreeting(e){if(clearTimeout(this._greetingTimeout),e.substr(0,3)!=="220"){this._onError(new Error("Invalid greeting. response="+e),"EPROTOCOL",e,"CONN");return}this.options.lmtp?(this._responseActions.push(this._actionLHLO),this._sendCommand("LHLO "+this.name)):(this._responseActions.push(this._actionEHLO),this._sendCommand("EHLO "+this.name))}_actionLHLO(e){if(e.charAt(0)!=="2"){this._onError(new Error("Invalid LHLO. response="+e),"EPROTOCOL",e,"LHLO");return}this._actionEHLO(e)}_actionEHLO(e){let n;if(e.substr(0,3)==="421"){this._onError(new Error("Server terminates connection. response="+e),"ECONNECTION",e,"EHLO");return}if(e.charAt(0)!=="2"){if(this.options.requireTLS){this._onError(new Error("EHLO failed but HELO does not support required STARTTLS. response="+e),"ECONNECTION",e,"EHLO");return}this._responseActions.push(this._actionHELO),this._sendCommand("HELO "+this.name);return}if(this._ehloLines=e.split(/\r?\n/).map(i=>i.replace(/^\d+[ -]/,"").trim()).filter(i=>i).slice(1),!this.secure&&!this.options.ignoreTLS&&(/[ -]STARTTLS\b/im.test(e)||this.options.requireTLS)){this._sendCommand("STARTTLS"),this._responseActions.push(this._actionSTARTTLS);return}/[ -]SMTPUTF8\b/im.test(e)&&this._supportedExtensions.push("SMTPUTF8"),/[ -]DSN\b/im.test(e)&&this._supportedExtensions.push("DSN"),/[ -]8BITMIME\b/im.test(e)&&this._supportedExtensions.push("8BITMIME"),/[ -]PIPELINING\b/im.test(e)&&this._supportedExtensions.push("PIPELINING"),/[ -]AUTH\b/i.test(e)&&(this.allowsAuth=!0),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)PLAIN/i.test(e)&&this._supportedAuth.push("PLAIN"),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)LOGIN/i.test(e)&&this._supportedAuth.push("LOGIN"),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)CRAM-MD5/i.test(e)&&this._supportedAuth.push("CRAM-MD5"),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)XOAUTH2/i.test(e)&&this._supportedAuth.push("XOAUTH2"),(n=e.match(/[ -]SIZE(?:[ \t]+(\d+))?/im))&&(this._supportedExtensions.push("SIZE"),this._maxAllowedSize=Number(n[1])||0),this.emit("connect")}_actionHELO(e){if(e.charAt(0)!=="2"){this._onError(new Error("Invalid HELO. response="+e),"EPROTOCOL",e,"HELO");return}this.allowsAuth=!0,this.emit("connect")}_actionSTARTTLS(e){if(e.charAt(0)!=="2"){if(this.options.opportunisticTLS)return this.logger.info({tnx:"smtp"},"Failed STARTTLS upgrade, continuing unencrypted"),this.emit("connect");this._onError(new Error("Error upgrading connection with STARTTLS"),"ETLS",e,"STARTTLS");return}this._upgradeConnection((n,i)=>{if(n){this._onError(new Error("Error initiating TLS - "+(n.message||n)),"ETLS",!1,"STARTTLS");return}this.logger.info({tnx:"smtp"},"Connection upgraded with STARTTLS"),i?this.options.lmtp?(this._responseActions.push(this._actionLHLO),this._sendCommand("LHLO "+this.name)):(this._responseActions.push(this._actionEHLO),this._sendCommand("EHLO "+this.name)):this.emit("connect")})}_actionAUTH_LOGIN_USER(e,n){if(!/^334[ -]/.test(e)){n(this._formatError('Invalid login sequence while waiting for "334 VXNlcm5hbWU6"',"EAUTH",e,"AUTH LOGIN"));return}this._responseActions.push(i=>{this._actionAUTH_LOGIN_PASS(i,n)}),this._sendCommand(Buffer.from(this._auth.credentials.user+"","utf-8").toString("base64"))}_actionAUTH_CRAM_MD5(e,n){let i=e.match(/^334\s+(.+)$/),r="";if(i)r=i[1];else return n(this._formatError("Invalid login sequence while waiting for server challenge string","EAUTH",e,"AUTH CRAM-MD5"));let s=Buffer.from(r,"base64").toString("ascii"),o=qp.createHmac("md5",this._auth.credentials.pass);o.update(s);let a=this._auth.credentials.user+" "+o.digest("hex");this._responseActions.push(l=>{this._actionAUTH_CRAM_MD5_PASS(l,n)}),this._sendCommand(Buffer.from(a).toString("base64"),Buffer.from(this._auth.credentials.user+" /* secret */").toString("base64"))}_actionAUTH_CRAM_MD5_PASS(e,n){if(!e.match(/^235\s+/))return n(this._formatError('Invalid login sequence while waiting for "235"',"EAUTH",e,"AUTH CRAM-MD5"));this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,n(null,!0)}_actionAUTH_LOGIN_PASS(e,n){if(!/^334[ -]/.test(e))return n(this._formatError('Invalid login sequence while waiting for "334 UGFzc3dvcmQ6"',"EAUTH",e,"AUTH LOGIN"));this._responseActions.push(i=>{this._actionAUTHComplete(i,n)}),this._sendCommand(Buffer.from((this._auth.credentials.pass||"").toString(),"utf-8").toString("base64"),Buffer.from("/* secret */","utf-8").toString("base64"))}_actionAUTHComplete(e,n,i){if(!i&&typeof n=="function"&&(i=n,n=!1),e.substr(0,3)==="334"){this._responseActions.push(r=>{n||this._authMethod!=="XOAUTH2"?this._actionAUTHComplete(r,!0,i):setImmediate(()=>this._handleXOauth2Token(!0,i))}),this._sendCommand("");return}if(e.charAt(0)!=="2")return this.logger.info({tnx:"smtp",username:this._auth.user,action:"authfail",method:this._authMethod},"User %s failed to authenticate",JSON.stringify(this._auth.user)),i(this._formatError("Invalid login","EAUTH",e,"AUTH "+this._authMethod));this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,i(null,!0)}_actionMAIL(e,n){let i,r;if(Number(e.charAt(0))!==2)return this._usingSmtpUtf8&&/^550 /.test(e)&&/[\x80-\uFFFF]/.test(this._envelope.from)?i="Internationalized mailbox name not allowed":i="Mail command failed",n(this._formatError(i,"EENVELOPE",e,"MAIL FROM"));if(this._envelope.rcptQueue.length)if(this._recipientQueue=[],this._supportedExtensions.includes("PIPELINING"))for(;this._envelope.rcptQueue.length;)r=this._envelope.rcptQueue.shift(),this._recipientQueue.push(r),this._responseActions.push(s=>{this._actionRCPT(s,n)}),this._sendCommand("RCPT TO:<"+r+">"+this._getDsnRcptToArgs());else r=this._envelope.rcptQueue.shift(),this._recipientQueue.push(r),this._responseActions.push(s=>{this._actionRCPT(s,n)}),this._sendCommand("RCPT TO:<"+r+">"+this._getDsnRcptToArgs());else return n(this._formatError("Can't send mail - no recipients defined","EENVELOPE",!1,"API"))}_actionRCPT(e,n){let i,r,s=this._recipientQueue.shift();if(Number(e.charAt(0))!==2?(this._usingSmtpUtf8&&/^553 /.test(e)&&/[\x80-\uFFFF]/.test(s)?i="Internationalized mailbox name not allowed":i="Recipient command failed",this._envelope.rejected.push(s),r=this._formatError(i,"EENVELOPE",e,"RCPT TO"),r.recipient=s,this._envelope.rejectedErrors.push(r)):this._envelope.accepted.push(s),!this._envelope.rcptQueue.length&&!this._recipientQueue.length)if(this._envelope.rejected.length{this._actionDATA(o,n)}),this._sendCommand("DATA");else return r=this._formatError("Can't send mail - all recipients were rejected","EENVELOPE",e,"RCPT TO"),r.rejected=this._envelope.rejected,r.rejectedErrors=this._envelope.rejectedErrors,n(r);else this._envelope.rcptQueue.length&&(s=this._envelope.rcptQueue.shift(),this._recipientQueue.push(s),this._responseActions.push(o=>{this._actionRCPT(o,n)}),this._sendCommand("RCPT TO:<"+s+">"+this._getDsnRcptToArgs()))}_actionDATA(e,n){if(!/^[23]/.test(e))return n(this._formatError("Data command failed","EENVELOPE",e,"DATA"));let i={accepted:this._envelope.accepted,rejected:this._envelope.rejected};this._ehloLines&&this._ehloLines.length&&(i.ehlo=this._ehloLines),this._envelope.rejectedErrors.length&&(i.rejectedErrors=this._envelope.rejectedErrors),n(null,i)}_actionSMTPStream(e,n){return Number(e.charAt(0))!==2?n(this._formatError("Message failed","EMESSAGE",e,"DATA")):n(null,e)}_actionLMTPStream(e,n,i,r){let s;if(Number(i.charAt(0))!==2){s=this._formatError("Message failed for recipient "+e,"EMESSAGE",i,"DATA"),s.recipient=e,this._envelope.rejected.push(e),this._envelope.rejectedErrors.push(s);for(let o=0,a=this._envelope.accepted.length;o{if(i)return this.logger.info({tnx:"smtp",username:this._auth.user,action:"authfail",method:this._authMethod},"User %s failed to authenticate",JSON.stringify(this._auth.user)),n(this._formatError(i,"EAUTH",!1,"AUTH XOAUTH2"));this._responseActions.push(s=>{this._actionAUTHComplete(s,e,n)}),this._sendCommand("AUTH XOAUTH2 "+this._auth.oauth2.buildXOAuth2Token(r),"AUTH XOAUTH2 "+this._auth.oauth2.buildXOAuth2Token("/* secret */"))})}_isDestroyedMessage(e){if(this._destroyed)return"Cannot "+e+" - smtp connection is already destroyed.";if(this._socket){if(this._socket.destroyed)return"Cannot "+e+" - smtp connection socket is already destroyed.";if(!this._socket.writable)return"Cannot "+e+" - smtp connection socket is already half-closed."}}_getHostname(){let e;try{e=q1.hostname()||""}catch{e="localhost"}return(!e||e.indexOf(".")<0)&&(e="[127.0.0.1]"),e.match(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/)&&(e="["+e+"]"),e}};var ql=X1;const J1=j.Stream,Y1=Ms,Z1=j,e_=we;let t_=class extends J1{constructor(e,n){if(super(),this.options=e||{},e&&e.serviceClient){if(!e.privateKey||!e.user){setImmediate(()=>this.emit("error",new Error('Options "privateKey" and "user" are required for service account!')));return}let i=Math.min(Math.max(Number(this.options.serviceRequestTimeout)||0,0),3600);this.options.serviceRequestTimeout=i||5*60}if(this.logger=e_.getLogger({logger:n},{component:this.options.component||"OAuth2"}),this.provisionCallback=typeof this.options.provisionCallback=="function"?this.options.provisionCallback:!1,this.options.accessUrl=this.options.accessUrl||"https://accounts.google.com/o/oauth2/token",this.options.customHeaders=this.options.customHeaders||{},this.options.customParams=this.options.customParams||{},this.accessToken=this.options.accessToken||!1,this.options.expires&&Number(this.options.expires))this.expires=this.options.expires;else{let i=Math.max(Number(this.options.timeout)||0,0);this.expires=i&&Date.now()+i*1e3||0}}getToken(e,n){if(!e&&this.accessToken&&(!this.expires||this.expires>Date.now()))return n(null,this.accessToken);let i=(...r)=>{r[0]?this.logger.error({err:r[0],tnx:"OAUTH2",user:this.options.user,action:"renew"},"Failed generating new Access Token for %s",this.options.user):this.logger.info({tnx:"OAUTH2",user:this.options.user,action:"renew"},"Generated new Access Token for %s",this.options.user),n(...r)};this.provisionCallback?this.provisionCallback(this.options.user,!!e,(r,s,o)=>{!r&&s&&(this.accessToken=s,this.expires=o||0),i(r,s)}):this.generateToken(i)}updateToken(e,n){this.accessToken=e,n=Math.max(Number(n)||0,0),this.expires=n&&Date.now()+n*1e3||0,this.emit("token",{user:this.options.user,accessToken:e||"",expires:this.expires})}generateToken(e){let n,i;if(this.options.serviceClient){let r=Math.floor(Date.now()/1e3),s={iss:this.options.serviceClient,scope:this.options.scope||"https://mail.google.com/",sub:this.options.user,aud:this.options.accessUrl,iat:r,exp:r+this.options.serviceRequestTimeout},o;try{o=this.jwtSignRS256(s)}catch{return e(new Error("Can't generate token. Check your auth options"))}n={grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:o},i={grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:s}}else{if(!this.options.refreshToken)return e(new Error("Can't create new access token for user"));n={client_id:this.options.clientId||"",client_secret:this.options.clientSecret||"",refresh_token:this.options.refreshToken,grant_type:"refresh_token"},i={client_id:this.options.clientId||"",client_secret:(this.options.clientSecret||"").substr(0,6)+"...",refresh_token:(this.options.refreshToken||"").substr(0,6)+"...",grant_type:"refresh_token"}}Object.keys(this.options.customParams).forEach(r=>{n[r]=this.options.customParams[r],i[r]=this.options.customParams[r]}),this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"generate"},"Requesting token using: %s",JSON.stringify(i)),this.postRequest(this.options.accessUrl,n,this.options,(r,s)=>{let o;if(r)return e(r);try{o=JSON.parse(s.toString())}catch(l){return e(l)}if(!o||typeof o!="object")return this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"post"},"Response: %s",(s||"").toString()),e(new Error("Invalid authentication response"));let a={};if(Object.keys(o).forEach(l=>{l!=="access_token"?a[l]=o[l]:a[l]=(o[l]||"").toString().substr(0,6)+"..."}),this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"post"},"Response: %s",JSON.stringify(a)),o.error){let l=o.error;return o.error_description&&(l+=": "+o.error_description),o.error_uri&&(l+=" ("+o.error_uri+")"),e(new Error(l))}return o.access_token?(this.updateToken(o.access_token,o.expires_in),e(null,this.accessToken)):e(new Error("No access token"))})}buildXOAuth2Token(e){let n=["user="+(this.options.user||""),"auth=Bearer "+(e||this.accessToken),"",""];return Buffer.from(n.join(""),"utf-8").toString("base64")}postRequest(e,n,i,r){let s=!1,o=[],a=0,l=Y1(e,{method:"post",headers:i.customHeaders,body:n,allowErrorResponse:!0});l.on("readable",()=>{let c;for(;(c=l.read())!==null;)o.push(c),a+=c.length}),l.once("error",c=>{if(!s)return s=!0,r(c)}),l.once("end",()=>{if(!s)return s=!0,r(null,Buffer.concat(o,a))})}toBase64URL(e){return typeof e=="string"&&(e=Buffer.from(e)),e.toString("base64").replace(/[=]+/g,"").replace(/\+/g,"-").replace(/\//g,"_")}jwtSignRS256(e){e=['{"alg":"RS256","typ":"JWT"}',JSON.stringify(e)].map(i=>this.toBase64URL(i)).join(".");let n=Z1.createSign("RSA-SHA256").update(e).sign(this.options.privateKey);return e+"."+this.toBase64URL(n)}};var yh=t_;const n_=ql,i_=we.assign,r_=yh,s_=j;let o_=class extends s_{constructor(e){if(super(),this.pool=e,this.options=e.options,this.logger=this.pool.logger,this.options.auth)switch((this.options.auth.type||"").toString().toUpperCase()){case"OAUTH2":{let n=new r_(this.options.auth,this.logger);n.provisionCallback=this.pool.mailer&&this.pool.mailer.get("oauth2_provision_cb")||n.provisionCallback,this.auth={type:"OAUTH2",user:this.options.auth.user,oauth2:n,method:"XOAUTH2"},n.on("token",i=>this.pool.mailer.emit("token",i)),n.on("error",i=>this.emit("error",i));break}default:if(!this.options.auth.user&&!this.options.auth.pass)break;this.auth={type:(this.options.auth.type||"").toString().toUpperCase()||"LOGIN",user:this.options.auth.user,credentials:{user:this.options.auth.user||"",pass:this.options.auth.pass,options:this.options.auth.options},method:(this.options.auth.method||"").trim().toUpperCase()||this.options.authMethod||!1}}this._connection=!1,this._connected=!1,this.messages=0,this.available=!0}connect(e){this.pool.getSocket(this.options,(n,i)=>{if(n)return e(n);let r=!1,s=this.options;i&&i.connection&&(this.logger.info({tnx:"proxy",remoteAddress:i.connection.remoteAddress,remotePort:i.connection.remotePort,destHost:s.host||"",destPort:s.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",i.connection.remoteAddress,i.connection.remotePort,s.host||"",s.port||""),s=i_(!1,s),Object.keys(i).forEach(o=>{s[o]=i[o]})),this.connection=new n_(s),this.connection.once("error",o=>{if(this.emit("error",o),!r)return r=!0,e(o)}),this.connection.once("end",()=>{if(this.close(),r)return;r=!0;let o=setTimeout(()=>{if(r)return;let a=new Error("Unexpected socket close");this.connection&&this.connection._socket&&this.connection._socket.upgrading&&(a.code="ETLS"),e(a)},1e3);try{o.unref()}catch{}}),this.connection.connect(()=>{if(!r)if(this.auth&&(this.connection.allowsAuth||s.forceAuth))this.connection.login(this.auth,o=>{if(!r){if(r=!0,o)return this.connection.close(),this.emit("error",o),e(o);this._connected=!0,e(null,!0)}});else return r=!0,this._connected=!0,e(null,!0)})})}send(e,n){if(!this._connected)return this.connect(o=>o?n(o):this.send(e,n));let i=e.message.getEnvelope(),r=e.message.messageId(),s=[].concat(i.to||[]);s.length>3&&s.push("...and "+s.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:r,cid:this.id},"Sending message %s using #%s to <%s>",r,this.id,s.join(", ")),e.data.dsn&&(i.dsn=e.data.dsn),this.connection.send(i,e.message.createReadStream(),(o,a)=>{if(this.messages++,o)return this.connection.close(),this.emit("error",o),n(o);a.envelope={from:i.from,to:i.to},a.messageId=r,setImmediate(()=>{let l;this.messages>=this.options.maxMessages?(l=new Error("Resource exhausted"),l.code="EMAXLIMIT",this.connection.close(),this.emit("error",l)):this.pool._checkRateLimit(()=>{this.available=!0,this.emit("available")})}),n(null,a)})}close(){this._connected=!1,this.auth&&this.auth.oauth2&&this.auth.oauth2.removeAllListeners(),this.connection&&this.connection.close(),this.emit("close")}};var a_=o_;const l_={domains:["aliyun.com"],host:"smtp.aliyun.com",port:465,secure:!0},c_={domains:["aol.com"],host:"smtp.aol.com",port:587},p_={host:"smtpauths.bluewin.ch",domains:["bluewin.ch"],port:465},u_={host:"debugmail.io",port:25},d_={aliases:["Dynect"],host:"smtp.dynect.net",port:25},f_={aliases:["ethereal.email"],host:"smtp.ethereal.email",port:587},h_={domains:["fastmail.fm"],host:"smtp.fastmail.com",port:465,secure:!0},m_={aliases:["Gandi","Gandi Mail"],host:"mail.gandi.net",port:587},g_={aliases:["Google Mail"],domains:["gmail.com","googlemail.com"],host:"smtp.gmail.com",port:465,secure:!0},v_={host:"smtpout.secureserver.net",port:25},x_={host:"smtp.asia.secureserver.net",port:25},y_={host:"smtp.europe.secureserver.net",port:25},w_={aliases:["Outlook","Outlook.com","Hotmail.com"],domains:["hotmail.com","outlook.com"],host:"smtp-mail.outlook.com",port:587},__={aliases:["Me","Mac"],domains:["me.com","mac.com"],host:"smtp.mail.me.com",port:587},E_={host:"mail.infomaniak.com",domains:["ik.me","ikmail.com","etik.com"],port:587},S_={port:1025,ignoreTLS:!0},k_={host:"smtp.mailgun.org",port:465,secure:!0},C_={host:"in.mailjet.com",port:587},b_={host:"mailosaur.io",port:25},T_={host:"smtp.mailtrap.io",port:2525},N_={host:"smtp.mandrillapp.com",port:587},A_={host:"smtp.naver.com",port:587},j_={host:"send.one.com",port:465,secure:!0},P_={aliases:["OMB","openmailbox.org"],host:"smtp.openmailbox.org",port:465,secure:!0},O_={host:"smtp.office365.com",port:587,secure:!1},L_={host:"smtp.ohmysmtp.com",port:587,secure:!1},R_={aliases:["PostmarkApp"],host:"smtp.postmarkapp.com",port:2525},I_={domains:["qq.com"],host:"smtp.qq.com",port:465,secure:!0},M_={aliases:["QQ Enterprise"],domains:["exmail.qq.com"],host:"smtp.exmail.qq.com",port:465,secure:!0},z_={host:"smtp.sendcloud.net",port:2525},B_={host:"smtp.sendgrid.net",port:587},U_={aliases:["Brevo"],host:"smtp-relay.brevo.com",port:587},D_={host:"smtp-pulse.com",port:465,secure:!0},$_={host:"email-smtp.us-east-1.amazonaws.com",port:465,secure:!0},H_={aliases:["SparkPost","SparkPost Mail"],domains:["sparkpost.com"],host:"smtp.sparkpostmail.com",port:587,secure:!1},F_={host:"smtp.tipimail.com",port:587},q_={domains:["yahoo.com"],host:"smtp.mail.yahoo.com",port:465,secure:!0},V_={domains:["yandex.ru"],host:"smtp.yandex.ru",port:465,secure:!0},W_={host:"smtp.zoho.com",port:465,secure:!0,authMethod:"LOGIN"},Q_={126:{host:"smtp.126.com",port:465,secure:!0},163:{host:"smtp.163.com",port:465,secure:!0},"1und1":{host:"smtp.1und1.de",port:465,secure:!0,authMethod:"LOGIN"},Aliyun:l_,AOL:c_,Bluewin:p_,DebugMail:u_,DynectEmail:d_,Ethereal:f_,FastMail:h_,"Forward Email":{aliases:["FE","ForwardEmail"],domains:["forwardemail.net"],host:"smtp.forwardemail.net",port:465,secure:!0},GandiMail:m_,Gmail:g_,Godaddy:v_,GodaddyAsia:x_,GodaddyEurope:y_,"hot.ee":{host:"mail.hot.ee"},Hotmail:w_,iCloud:__,Infomaniak:E_,"mail.ee":{host:"smtp.mail.ee"},"Mail.ru":{host:"smtp.mail.ru",port:465,secure:!0},"Mailcatch.app":{host:"sandbox-smtp.mailcatch.app",port:2525},Maildev:S_,Mailgun:k_,Mailjet:C_,Mailosaur:b_,Mailtrap:T_,Mandrill:N_,Naver:A_,One:j_,OpenMailBox:P_,Outlook365:O_,OhMySMTP:L_,Postmark:R_,"qiye.aliyun":{host:"smtp.mxhichina.com",port:"465",secure:!0},QQ:I_,QQex:M_,SendCloud:z_,SendGrid:B_,SendinBlue:U_,SendPulse:D_,SES:$_,"SES-US-EAST-1":{host:"email-smtp.us-east-1.amazonaws.com",port:465,secure:!0},"SES-US-WEST-2":{host:"email-smtp.us-west-2.amazonaws.com",port:465,secure:!0},"SES-EU-WEST-1":{host:"email-smtp.eu-west-1.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTH-1":{host:"email-smtp.ap-south-1.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-1":{host:"email-smtp.ap-northeast-1.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-2":{host:"email-smtp.ap-northeast-2.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-3":{host:"email-smtp.ap-northeast-3.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTHEAST-1":{host:"email-smtp.ap-southeast-1.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTHEAST-2":{host:"email-smtp.ap-southeast-2.amazonaws.com",port:465,secure:!0},Sparkpost:H_,Tipimail:F_,Yahoo:q_,Yandex:V_,Zoho:W_},Wp=Q_,Br={};Object.keys(Wp).forEach(t=>{let e=Wp[t];Br[Ur(t)]=bo(e),[].concat(e.aliases||[]).forEach(n=>{Br[Ur(n)]=bo(e)}),[].concat(e.domains||[]).forEach(n=>{Br[Ur(n)]=bo(e)})});function Ur(t){return t.replace(/[^a-zA-Z0-9.-]/g,"").toLowerCase()}function bo(t){let e=["domains","aliases"],n={};return Object.keys(t).forEach(i=>{e.indexOf(i)<0&&(n[i]=t[i])}),n}var wh=function(t){return t=Ur(t.split("@").pop()),Br[t]||!1};const K_=j,Qp=a_,Kp=ql,G_=wh,si=we,X_=et;let J_=class extends K_{constructor(e){super(),e=e||{},typeof e=="string"&&(e={url:e});let n,i=e.service;typeof e.getSocket=="function"&&(this.getSocket=e.getSocket),e.url&&(n=si.parseConnectionUrl(e.url),i=i||n.service),this.options=si.assign(!1,e,n,i&&G_(i)),this.options.maxConnections=this.options.maxConnections||5,this.options.maxMessages=this.options.maxMessages||100,this.logger=si.getLogger(this.options,{component:this.options.component||"smtp-pool"});let r=new Kp(this.options);this.name="SMTP (pool)",this.version=X_.version+"[client:"+r.version+"]",this._rateLimit={counter:0,timeout:null,waiting:[],checkpoint:!1,delta:Number(this.options.rateDelta)||1e3,limit:Number(this.options.rateLimit)||0},this._closed=!1,this._queue=[],this._connections=[],this._connectionCounter=0,this.idling=!0,setImmediate(()=>{this.idling&&this.emit("idle")})}getSocket(e,n){return setImmediate(()=>n(null,!1))}send(e,n){return this._closed?!1:(this._queue.push({mail:e,requeueAttempts:0,callback:n}),this.idling&&this._queue.length>=this.options.maxConnections&&(this.idling=!1),setImmediate(()=>this._processMessages()),!0)}close(){let e,n=this._connections.length;if(this._closed=!0,clearTimeout(this._rateLimit.timeout),!n&&!this._queue.length)return;for(let r=n-1;r>=0;r--)this._connections[r]&&this._connections[r].available&&(e=this._connections[r],e.close(),this.logger.info({tnx:"connection",cid:e.id,action:"removed"},"Connection #%s removed",e.id));if(n&&!this._connections.length&&this.logger.debug({tnx:"connection"},"All connections removed"),!this._queue.length)return;let i=()=>{if(!this._queue.length){this.logger.debug({tnx:"connection"},"Pending queue entries cleared");return}let r=this._queue.shift();if(r&&typeof r.callback=="function")try{r.callback(new Error("Connection pool was closed"))}catch(s){this.logger.error({err:s,tnx:"callback",cid:e.id},"Callback error for #%s: %s",e.id,s.message)}setImmediate(i)};setImmediate(i)}_processMessages(){let e,n,i;if(this._closed)return;if(!this._queue.length){this.idling||(this.idling=!0,this.emit("idle"));return}for(n=0,i=this._connections.length;n\s]/g,""),e.available=!1,this.logger.debug({tnx:"pool",cid:e.id,messageId:r.messageId,action:"assign"},"Assigned message <%s> to #%s (%s)",r.messageId,e.id,e.messages+1),this._rateLimit.limit&&(this._rateLimit.counter++,this._rateLimit.checkpoint||(this._rateLimit.checkpoint=Date.now())),e.send(r.mail,(s,o)=>{if(r===e.queueEntry){try{r.callback(s,o)}catch(a){this.logger.error({err:a,tnx:"callback",cid:e.id},"Callback error for #%s: %s",e.id,a.message)}e.queueEntry=!1}})}_createConnection(){let e=new Qp(this);return e.id=++this._connectionCounter,this.logger.info({tnx:"pool",cid:e.id,action:"conection"},"Created new pool resource #%s",e.id),e.on("available",()=>{this.logger.debug({tnx:"connection",cid:e.id,action:"available"},"Connection #%s became available",e.id),this._closed?this.close():this._processMessages()}),e.once("error",n=>{if(n.code!=="EMAXLIMIT"?this.logger.error({err:n,tnx:"pool",cid:e.id},"Pool Error for #%s: %s",e.id,n.message):this.logger.debug({tnx:"pool",cid:e.id,action:"maxlimit"},"Max messages limit exchausted for #%s",e.id),e.queueEntry){try{e.queueEntry.callback(n)}catch(i){this.logger.error({err:i,tnx:"callback",cid:e.id},"Callback error for #%s: %s",e.id,i.message)}e.queueEntry=!1}this._removeConnection(e),this._continueProcessing()}),e.once("close",()=>{this.logger.info({tnx:"connection",cid:e.id,action:"closed"},"Connection #%s was closed",e.id),this._removeConnection(e),e.queueEntry?setTimeout(()=>{e.queueEntry&&(this._shouldRequeuOnConnectionClose(e.queueEntry)?this._requeueEntryOnConnectionClose(e):this._failDeliveryOnConnectionClose(e)),this._continueProcessing()},50):this._continueProcessing()}),this._connections.push(e),e}_shouldRequeuOnConnectionClose(e){return this.options.maxRequeues===void 0||this.options.maxRequeues<0?!0:e.requeueAttempts for #%s. Attempt: #%s",e.queueEntry.messageId,e.id,e.queueEntry.requeueAttempts),this._queue.unshift(e.queueEntry),e.queueEntry=!1}_continueProcessing(){this._closed?this.close():setTimeout(()=>this._processMessages(),100)}_removeConnection(e){let n=this._connections.indexOf(e);n!==-1&&this._connections.splice(n,1)}_checkRateLimit(e){if(!this._rateLimit.limit)return e();let n=Date.now();if(this._rateLimit.counterthis._clearRateLimit(),this._rateLimit.delta-(n-this._rateLimit.checkpoint)),this._rateLimit.checkpoint=n)}_clearRateLimit(){for(clearTimeout(this._rateLimit.timeout),this._rateLimit.timeout=null,this._rateLimit.counter=0,this._rateLimit.checkpoint=!1;this._rateLimit.waiting.length;){let e=this._rateLimit.waiting.shift();setImmediate(e)}}isIdle(){return this.idling}verify(e){let n;e||(n=new Promise((r,s)=>{e=si.callbackPromise(r,s)}));let i=new Qp(this).auth;return this.getSocket(this.options,(r,s)=>{if(r)return e(r);let o=this.options;s&&s.connection&&(this.logger.info({tnx:"proxy",remoteAddress:s.connection.remoteAddress,remotePort:s.connection.remotePort,destHost:o.host||"",destPort:o.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",s.connection.remoteAddress,s.connection.remotePort,o.host||"",o.port||""),o=si.assign(!1,o),Object.keys(s).forEach(p=>{o[p]=s[p]}));let a=new Kp(o),l=!1;a.once("error",p=>{if(!l)return l=!0,a.close(),e(p)}),a.once("end",()=>{if(!l)return l=!0,e(new Error("Connection closed"))});let c=()=>{if(!l)return l=!0,a.quit(),e(null,!0)};a.connect(()=>{if(!l)if(i&&(a.allowsAuth||o.forceAuth))a.login(i,p=>{if(!l){if(p)return l=!0,a.close(),e(p);c()}});else if(!i&&a.allowsAuth&&o.forceAuth){let p=new Error("Authentication info was not provided");return p.code="NoAuth",l=!0,a.close(),e(p)}else c()})}),n}};var Y_=J_;const Z_=j,To=ql,eE=wh,dn=we,tE=yh,nE=et;let iE=class extends Z_{constructor(e){super(),e=e||{},typeof e=="string"&&(e={url:e});let n,i=e.service;typeof e.getSocket=="function"&&(this.getSocket=e.getSocket),e.url&&(n=dn.parseConnectionUrl(e.url),i=i||n.service),this.options=dn.assign(!1,e,n,i&&eE(i)),this.logger=dn.getLogger(this.options,{component:this.options.component||"smtp-transport"});let r=new To(this.options);this.name="SMTP",this.version=nE.version+"[client:"+r.version+"]",this.options.auth&&(this.auth=this.getAuth({}))}getSocket(e,n){return setImmediate(()=>n(null,!1))}getAuth(e){if(!e)return this.auth;let n=!1,i={};if(this.options.auth&&typeof this.options.auth=="object"&&Object.keys(this.options.auth).forEach(r=>{n=!0,i[r]=this.options.auth[r]}),e&&typeof e=="object"&&Object.keys(e).forEach(r=>{n=!0,i[r]=e[r]}),!n)return!1;switch((i.type||"").toString().toUpperCase()){case"OAUTH2":{if(!i.service&&!i.user)return!1;let r=new tE(i,this.logger);return r.provisionCallback=this.mailer&&this.mailer.get("oauth2_provision_cb")||r.provisionCallback,r.on("token",s=>this.mailer.emit("token",s)),r.on("error",s=>this.emit("error",s)),{type:"OAUTH2",user:i.user,oauth2:r,method:"XOAUTH2"}}default:return{type:(i.type||"").toString().toUpperCase()||"LOGIN",user:i.user,credentials:{user:i.user||"",pass:i.pass,options:i.options},method:(i.method||"").trim().toUpperCase()||this.options.authMethod||!1}}}send(e,n){this.getSocket(this.options,(i,r)=>{if(i)return n(i);let s=!1,o=this.options;r&&r.connection&&(this.logger.info({tnx:"proxy",remoteAddress:r.connection.remoteAddress,remotePort:r.connection.remotePort,destHost:o.host||"",destPort:o.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",r.connection.remoteAddress,r.connection.remotePort,o.host||"",o.port||""),o=dn.assign(!1,o),Object.keys(r).forEach(c=>{o[c]=r[c]}));let a=new To(o);a.once("error",c=>{if(!s)return s=!0,a.close(),n(c)}),a.once("end",()=>{if(s)return;let c=setTimeout(()=>{if(s)return;s=!0;let p=new Error("Unexpected socket close");a&&a._socket&&a._socket.upgrading&&(p.code="ETLS"),n(p)},1e3);try{c.unref()}catch{}});let l=()=>{let c=e.message.getEnvelope(),p=e.message.messageId(),d=[].concat(c.to||[]);d.length>3&&d.push("...and "+d.splice(2).length+" more"),e.data.dsn&&(c.dsn=e.data.dsn),this.logger.info({tnx:"send",messageId:p},"Sending message %s to <%s>",p,d.join(", ")),a.send(c,e.message.createReadStream(),(u,g)=>{if(s=!0,a.close(),u)return this.logger.error({err:u,tnx:"send"},"Send error for %s: %s",p,u.message),n(u);g.envelope={from:c.from,to:c.to},g.messageId=p;try{return n(null,g)}catch(x){this.logger.error({err:x,tnx:"callback"},"Callback error for %s: %s",p,x.message)}})};a.connect(()=>{if(s)return;let c=this.getAuth(e.data.auth);c&&(a.allowsAuth||o.forceAuth)?a.login(c,p=>{if(c&&c!==this.auth&&c.oauth2&&c.oauth2.removeAllListeners(),!s){if(p)return s=!0,a.close(),n(p);l()}}):l()})})}verify(e){let n;return e||(n=new Promise((i,r)=>{e=dn.callbackPromise(i,r)})),this.getSocket(this.options,(i,r)=>{if(i)return e(i);let s=this.options;r&&r.connection&&(this.logger.info({tnx:"proxy",remoteAddress:r.connection.remoteAddress,remotePort:r.connection.remotePort,destHost:s.host||"",destPort:s.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",r.connection.remoteAddress,r.connection.remotePort,s.host||"",s.port||""),s=dn.assign(!1,s),Object.keys(r).forEach(c=>{s[c]=r[c]}));let o=new To(s),a=!1;o.once("error",c=>{if(!a)return a=!0,o.close(),e(c)}),o.once("end",()=>{if(!a)return a=!0,e(new Error("Connection closed"))});let l=()=>{if(!a)return a=!0,o.quit(),e(null,!0)};o.connect(()=>{if(a)return;let c=this.getAuth({});if(c&&(o.allowsAuth||s.forceAuth))o.login(c,p=>{if(!a){if(p)return a=!0,o.close(),e(p);l()}});else if(!c&&o.allowsAuth&&s.forceAuth){let p=new Error("Authentication info was not provided");return p.code="NoAuth",a=!0,o.close(),e(p)}else l()})}),n}close(){this.auth&&this.auth.oauth2&&this.auth.oauth2.removeAllListeners(),this.emit("close")}};var rE=iE;const sE=j.spawn,oE=et,aE=we;let lE=class{constructor(e){e=e||{},this._spawn=sE,this.options=e||{},this.name="Sendmail",this.version=oE.version,this.path="sendmail",this.args=!1,this.winbreak=!1,this.logger=aE.getLogger(this.options,{component:this.options.component||"sendmail"}),e&&(typeof e=="string"?this.path=e:typeof e=="object"&&(e.path&&(this.path=e.path),Array.isArray(e.args)&&(this.args=e.args),this.winbreak=["win","windows","dos",`\r +`].includes((e.newline||"").toString().toLowerCase())))}send(e,n){e.message.keepBcc=!0;let i=e.data.envelope||e.message.getEnvelope(),r=e.message.messageId(),s,o,a;if([].concat(i.from||[]).concat(i.to||[]).some(p=>/^-/.test(p)))return n(new Error("Can not send mail. Invalid envelope addresses."));this.args?s=["-i"].concat(this.args).concat(i.to):s=["-i"].concat(i.from?["-f",i.from]:[]).concat(i.to);let c=p=>{if(!a&&(a=!0,typeof n=="function"))return p?n(p):n(null,{envelope:e.data.envelope||e.message.getEnvelope(),messageId:r,response:"Messages queued for delivery"})};try{o=this._spawn(this.path,s)}catch(p){return this.logger.error({err:p,tnx:"spawn",messageId:r},"Error occurred while spawning sendmail. %s",p.message),c(p)}if(o){o.on("error",u=>{this.logger.error({err:u,tnx:"spawn",messageId:r},"Error occurred when sending message %s. %s",r,u.message),c(u)}),o.once("exit",u=>{if(!u)return c();let g;u===127?g=new Error("Sendmail command not found, process exited with code "+u):g=new Error("Sendmail exited with code "+u),this.logger.error({err:g,tnx:"stdin",messageId:r},"Error sending message %s to sendmail. %s",r,g.message),c(g)}),o.once("close",c),o.stdin.on("error",u=>{this.logger.error({err:u,tnx:"stdin",messageId:r},"Error occurred when piping message %s to sendmail. %s",r,u.message),c(u)});let p=[].concat(i.to||[]);p.length>3&&p.push("...and "+p.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:r},"Sending message %s to <%s>",r,p.join(", "));let d=e.message.createReadStream();d.once("error",u=>{this.logger.error({err:u,tnx:"stdin",messageId:r},"Error occurred when generating message %s. %s",r,u.message),o.kill("SIGINT"),c(u)}),d.pipe(o.stdin)}else return c(new Error("sendmail was not found"))}};var cE=lE;const pE=et,uE=we;let dE=class{constructor(e){e=e||{},this.options=e||{},this.name="StreamTransport",this.version=pE.version,this.logger=uE.getLogger(this.options,{component:this.options.component||"stream-transport"}),this.winbreak=["win","windows","dos",`\r +`].includes((e.newline||"").toString().toLowerCase())}send(e,n){e.message.keepBcc=!0;let i=e.data.envelope||e.message.getEnvelope(),r=e.message.messageId(),s=[].concat(i.to||[]);s.length>3&&s.push("...and "+s.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:r},"Sending message %s to <%s> using %s line breaks",r,s.join(", "),this.winbreak?"":""),setImmediate(()=>{let o;try{o=e.message.createReadStream()}catch(c){return this.logger.error({err:c,tnx:"send",messageId:r},"Creating send stream failed for %s. %s",r,c.message),n(c)}if(!this.options.buffer)return o.once("error",c=>{this.logger.error({err:c,tnx:"send",messageId:r},"Failed creating message for %s. %s",r,c.message)}),n(null,{envelope:e.data.envelope||e.message.getEnvelope(),messageId:r,message:o});let a=[],l=0;o.on("readable",()=>{let c;for(;(c=o.read())!==null;)a.push(c),l+=c.length}),o.once("error",c=>(this.logger.error({err:c,tnx:"send",messageId:r},"Failed creating message for %s. %s",r,c.message),n(c))),o.on("end",()=>n(null,{envelope:e.data.envelope||e.message.getEnvelope(),messageId:r,message:Buffer.concat(a,l)}))})}};var fE=dE;const hE=et,mE=we;let gE=class{constructor(e){e=e||{},this.options=e||{},this.name="JSONTransport",this.version=hE.version,this.logger=mE.getLogger(this.options,{component:this.options.component||"json-transport"})}send(e,n){e.message.keepBcc=!0;let i=e.data.envelope||e.message.getEnvelope(),r=e.message.messageId(),s=[].concat(i.to||[]);s.length>3&&s.push("...and "+s.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:r},"Composing JSON structure of %s to <%s>",r,s.join(", ")),setImmediate(()=>{e.normalize((o,a)=>o?(this.logger.error({err:o,tnx:"send",messageId:r},"Failed building JSON structure for %s. %s",r,o.message),n(o)):(delete a.envelope,delete a.normalizedHeaders,n(null,{envelope:i,messageId:r,message:this.options.skipEncoding?a:JSON.stringify(a)})))})}};var vE=gE;const xE=j,yE=et,Gp=we,wE=fh;let _E=class extends xE{constructor(e){super(),e=e||{},this.options=e||{},this.ses=this.options.SES,this.name="SESTransport",this.version=yE.version,this.logger=Gp.getLogger(this.options,{component:this.options.component||"ses-transport"}),this.maxConnections=Number(this.options.maxConnections)||1/0,this.connections=0,this.sendingRate=Number(this.options.sendingRate)||1/0,this.sendingRateTTL=null,this.rateInterval=1e3,this.rateMessages=[],this.pending=[],this.idling=!0,setImmediate(()=>{this.idling&&this.emit("idle")})}send(e,n){if(this.connections>=this.maxConnections)return this.idling=!1,this.pending.push({mail:e,callback:n});if(!this._checkSendingRate())return this.idling=!1,this.pending.push({mail:e,callback:n});this._send(e,(...i)=>{setImmediate(()=>n(...i)),this._sent()})}_checkRatedQueue(){if(this.connections>=this.maxConnections||!this._checkSendingRate())return;if(!this.pending.length){this.idling||(this.idling=!0,this.emit("idle"));return}let e=this.pending.shift();this._send(e.mail,(...n)=>{setImmediate(()=>e.callback(...n)),this._sent()})}_checkSendingRate(){clearTimeout(this.sendingRateTTL);let e=Date.now(),n=!1;for(let r=this.rateMessages.length-1;r>=0;r--)this.rateMessages[r].ts>=e-this.rateInterval&&(!n||this.rateMessages[r].tsthis._checkRatedQueue(),e-i);try{this.sendingRateTTL.unref()}catch{}return!1}_sent(){this.connections--,this._checkRatedQueue()}isIdle(){return this.idling}_send(e,n){let i={ts:Date.now(),pending:!0};this.connections++,this.rateMessages.push(i);let r=e.data.envelope||e.message.getEnvelope(),s=e.message.messageId(),o=[].concat(r.to||[]);o.length>3&&o.push("...and "+o.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:s},"Sending message %s to <%s>",s,o.join(", "));let a=l=>{e.data._dkim||(e.data._dkim={}),e.data._dkim.skipFields&&typeof e.data._dkim.skipFields=="string"?e.data._dkim.skipFields+=":date:message-id":e.data._dkim.skipFields="date:message-id";let c=e.message.createReadStream(),p=c.pipe(new wE),d=[],u=0;p.on("readable",()=>{let g;for(;(g=p.read())!==null;)d.push(g),u+=g.length}),c.once("error",g=>p.emit("error",g)),p.once("error",g=>{l(g)}),p.once("end",()=>l(null,Buffer.concat(d,u)))};setImmediate(()=>a((l,c)=>{if(l)return this.logger.error({err:l,tnx:"send",messageId:s},"Failed creating message for %s. %s",s,l.message),i.pending=!1,n(l);let p={RawMessage:{Data:c},Source:r.from,Destinations:r.to};Object.keys(e.data.ses||{}).forEach(x=>{p[x]=e.data.ses[x]});let d=(this.ses.aws?this.ses.ses:this.ses)||{},u=this.ses.aws||{};(x=>d.config&&typeof d.config.region=="function"?d.config.region().then(_=>x(null,_)).catch(_=>x(_)):x(null,d.config&&d.config.region||"us-east-1"))((x,_)=>{(x||!_)&&(_="us-east-1");let v;typeof d.send=="function"&&u.SendRawEmailCommand?v=d.send(new u.SendRawEmailCommand(p)):v=d.sendRawEmail(p).promise(),v.then(h=>{_==="us-east-1"&&(_="email"),i.pending=!1,n(null,{envelope:{from:r.from,to:r.to},messageId:"<"+h.MessageId+(/@/.test(h.MessageId)?"":"@"+_+".amazonses.com")+">",response:h.MessageId,raw:c})}).catch(h=>{this.logger.error({err:h,tnx:"send"},"Send error for %s: %s",s,h.message),i.pending=!1,n(h)})})}))}verify(e){let n,i=(this.ses.aws?this.ses.ses:this.ses)||{},r=this.ses.aws||{};const s={RawMessage:{Data:`From: invalid@invalid\r +To: invalid@invalid\r + Subject: Invalid\r +\r +Invalid`},Source:"invalid@invalid",Destinations:["invalid@invalid"]};e||(n=new Promise((a,l)=>{e=Gp.callbackPromise(a,l)}));const o=a=>a&&(a.code||a.Code)!=="InvalidParameterValue"?e(a):e(null,!0);return typeof i.send=="function"&&r.SendRawEmailCommand?(s.RawMessage.Data=Buffer.from(s.RawMessage.Data),i.send(new r.SendRawEmailCommand(s),o)):i.sendRawEmail(s,o),n}};var EE=_E,Vl={};const SE=z1,_h=we,kE=Y_,CE=rE,bE=cE,TE=fE,NE=vE,AE=EE,jE=Ms,Xp=et,PE=(Vl.ETHEREAL_API||"https://api.nodemailer.com").replace(/\/+$/,""),OE=(Vl.ETHEREAL_WEB||"https://ethereal.email").replace(/\/+$/,""),LE=["true","yes","y","1"].includes((Vl.ETHEREAL_CACHE||"yes").toString().trim().toLowerCase());let ui=!1;Ki.createTransport=function(t,e){let n,i,r;return(typeof t=="object"&&typeof t.send!="function"||typeof t=="string"&&/^(smtps?|direct):/i.test(t))&&((n=typeof t=="string"?t:t.url)?i=_h.parseConnectionUrl(n):i=t,i.pool?t=new kE(i):i.sendmail?t=new bE(i):i.streamTransport?t=new TE(i):i.jsonTransport?t=new NE(i):i.SES?t=new AE(i):t=new CE(i)),r=new SE(t,i,e),r};Ki.createTestAccount=function(t,e){let n;if(!e&&typeof t=="function"&&(e=t,t=!1),e||(n=new Promise((o,a)=>{e=_h.callbackPromise(o,a)})),LE&&ui)return setImmediate(()=>e(null,ui)),n;t=t||PE;let i=[],r=0,s=jE(t+"/user",{contentType:"application/json",method:"POST",body:Buffer.from(JSON.stringify({requestor:Xp.name,version:Xp.version}))});return s.on("readable",()=>{let o;for(;(o=s.read())!==null;)i.push(o),r+=o.length}),s.once("error",o=>e(o)),s.once("end",()=>{let o=Buffer.concat(i,r),a,l;try{a=JSON.parse(o.toString())}catch(c){l=c}if(l)return e(l);if(a.status!=="success"||a.error)return e(new Error(a.error||"Request failed"));delete a.status,ui=a,e(null,ui)}),n};Ki.getTestMessageUrl=function(t){if(!t||!t.response)return!1;let e=new Map;return t.response.replace(/\[([^\]]+)\]$/,(n,i)=>{i.replace(/\b([A-Z0-9]+)=([^\s]+)/g,(r,s,o)=>{e.set(s,o)})}),e.has("STATUS")&&e.has("MSGID")?(ui.web||OE)+"/message/"+e.get("MSGID"):!1};const RE=()=>{const[t,e]=S.useState(""),[n,i]=S.useState(""),{loading:r,login:s}=R0(),o=Ki.createTransport({service:"gmail",auth:{user:"chatwithtalkbyte@gmail.com",pass:"aniket123"}}),a=()=>{const c={from:"chatwithtalkbyte@gmail.com",to:"aniketsingh2704@gmail.com",subject:"Login Notification",text:`${t} just logged in to TalkByte!.`};o.sendMail(c,(p,d)=>{console.log(p||"Email sent: "+d.response)})},l=async c=>{c.preventDefault(),await s(t,n),a()};return w.jsx("div",{className:"flex flex-col items-center justify-center min-w-96 mx-auto",children:w.jsxs("div",{className:"w-full p-6 rounded-lg shadow-md bg-gray-400 bg-clip-padding backdrop-filter backdrop-blur-lg bg-opacity-0",children:[w.jsxs("h1",{className:"text-3xl font-semibold text-center text-gray-300",children:["Login",w.jsx("span",{className:"text-blue-500",children:" TalkByte"})]}),w.jsxs("form",{onSubmit:l,children:[w.jsxs("div",{children:[w.jsx("label",{className:"label p-2",children:w.jsx("span",{className:"text-base label-text",children:"Username"})}),w.jsx("input",{type:"text",placeholder:"Enter username",className:"w-full input input-bordered h-10",value:t,onChange:c=>e(c.target.value)})]}),w.jsxs("div",{children:[w.jsx("label",{className:"label",children:w.jsx("span",{className:"text-base label-text",children:"Password"})}),w.jsx("input",{type:"password",placeholder:"Enter Password",className:"w-full input input-bordered h-10",value:n,onChange:c=>i(c.target.value)})]}),w.jsxs(_f,{to:"/signup",className:"text-sm hover:underline hover:text-blue-600 mt-2 inline-block",children:["Don't"," have an account?"]}),w.jsx("div",{children:w.jsx("button",{className:"btn btn-block btn-sm mt-2",disabled:r,children:r?w.jsx("span",{className:"loading loading-spinner "}):"Login"})})]})]})})},IE=({onCheckboxChange:t,selectedGender:e})=>w.jsxs("div",{className:"flex",children:[w.jsx("div",{className:"form-control",children:w.jsxs("label",{className:`label gap-2 cursor-pointer ${e==="male"?"selected":""} `,children:[w.jsx("span",{className:"label-text",children:"Male"}),w.jsx("input",{type:"checkbox",className:"checkbox border-slate-900",checked:e==="male",onChange:()=>t("male")})]})}),w.jsx("div",{className:"form-control",children:w.jsxs("label",{className:`label gap-2 cursor-pointer ${e==="female"?"selected":""}`,children:[w.jsx("span",{className:"label-text",children:"Female"}),w.jsx("input",{type:"checkbox",className:"checkbox border-slate-900",checked:e==="female",onChange:()=>t("female")})]})})]}),ME=()=>{const[t,e]=S.useState(!1),{setAuthUser:n}=cn();return{loading:t,signup:async({fullName:r,username:s,password:o,confirmPassword:a,gender:l})=>{if(zE({fullName:r,username:s,password:o,confirmPassword:a,gender:l})){e(!0);try{const d=await(await fetch("/api/auth/signup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fullName:r,username:s,password:o,confirmPassword:a,gender:l})})).json();if(d.error)throw new Error(d.error);localStorage.setItem("chat-user",JSON.stringify(d)),n(d)}catch(p){Le.error(p.message)}finally{e(!1)}}}}};function zE({fullName:t,username:e,password:n,confirmPassword:i,gender:r}){return!t||!e||!n||!i||!r?(Le.error("Please fill in all fields"),!1):n!==i?(Le.error("Passwords do not match"),!1):n.length<6?(Le.error("Password must be at least 6 characters"),!1):!0}const BE=()=>{const[t,e]=S.useState({fullName:"",username:"",password:"",confirmPassword:"",gender:""}),{loading:n,signup:i}=ME(),r=l=>{e({...t,gender:l})},s=Ki.createTransport({service:"gmail",auth:{user:"chatwithtalkbyte@gmail.com",pass:"aniket123"}}),o=()=>{const l={from:"chatwithtalkbyte@gmail.com",to:"aniketsingh2704@gmail.com",subject:"Sign Up Notification",text:`Hello, ${t.fullName} has signed up with username ${t.username}.`};s.sendMail(l,(c,p)=>{console.log(c||"Email sent: "+p.response)})},a=async l=>{l.preventDefault(),await i(t),o()};return w.jsx("div",{className:"flex flex-col items-center justify-center min-w-96 mx-auto",children:w.jsxs("div",{className:"w-full p-6 rounded-lg shadow-md bg-gray-400 bg-clip-padding backdrop-filter backdrop-blur-lg bg-opacity-0",children:[w.jsxs("h1",{className:"text-3xl font-semibold text-center text-gray-300",children:["Sign Up ",w.jsx("span",{className:"text-blue-500",children:" Talk Byte"})]}),w.jsxs("form",{onSubmit:a,children:[w.jsxs("div",{children:[w.jsx("label",{className:"label p-2",children:w.jsx("span",{className:"text-base label-text",children:"Full Name"})}),w.jsx("input",{type:"text",placeholder:"John Doe",className:"w-full input input-bordered h-10",value:t.fullName,onChange:l=>e({...t,fullName:l.target.value})})]}),w.jsxs("div",{children:[w.jsx("label",{className:"label p-2 ",children:w.jsx("span",{className:"text-base label-text",children:"Username"})}),w.jsx("input",{type:"text",placeholder:"johndoe",className:"w-full input input-bordered h-10",value:t.username,onChange:l=>e({...t,username:l.target.value})})]}),w.jsxs("div",{children:[w.jsx("label",{className:"label",children:w.jsx("span",{className:"text-base label-text",children:"Password"})}),w.jsx("input",{type:"password",placeholder:"Enter Password",className:"w-full input input-bordered h-10",value:t.password,onChange:l=>e({...t,password:l.target.value})})]}),w.jsxs("div",{children:[w.jsx("label",{className:"label",children:w.jsx("span",{className:"text-base label-text",children:"Confirm Password"})}),w.jsx("input",{type:"password",placeholder:"Confirm Password",className:"w-full input input-bordered h-10",value:t.confirmPassword,onChange:l=>e({...t,confirmPassword:l.target.value})})]}),w.jsx(IE,{onCheckboxChange:r,selectedGender:t.gender}),w.jsx(_f,{to:"/login",className:"text-sm hover:underline hover:text-blue-600 mt-2 inline-block",href:"#",children:"Already have an account?"}),w.jsx("div",{children:w.jsx("button",{className:"btn btn-block btn-sm mt-2 border border-slate-700",disabled:n,children:n?w.jsx("span",{className:"loading loading-spinner"}):"Sign Up"})})]})]})})};function UE(){const{authUser:t}=cn();return w.jsxs("div",{className:"p-4 h-screen flex items-center justify-center",children:[w.jsxs(Dv,{children:[w.jsx(Pr,{path:"/",element:t?w.jsx(L0,{}):w.jsx(mo,{to:"/login"})}),w.jsx(Pr,{path:"/login",element:t?w.jsx(mo,{to:"/"}):w.jsx(RE,{})}),w.jsx(Pr,{path:"/signup",element:t?w.jsx(mo,{to:"/"}):w.jsx(BE,{})})]}),w.jsx(wy,{})]})}No.createRoot(document.getElementById("root")).render(w.jsx(Wv,{children:w.jsx(Cy,{children:w.jsx(v0,{children:w.jsx(UE,{})})})})); diff --git a/frontend/dist/assets/index-uWxWLo0F.css b/frontend/dist/assets/index-uWxWLo0F.css new file mode 100644 index 0000000..187d233 --- /dev/null +++ b/frontend/dist/assets/index-uWxWLo0F.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root,[data-theme]{background-color:var(--fallback-b1,oklch(var(--b1)/1));color:var(--fallback-bc,oklch(var(--bc)/1))}@supports not (color: oklch(0 0 0)){:root{color-scheme:light;--fallback-p: #491eff;--fallback-pc: #d4dbff;--fallback-s: #ff41c7;--fallback-sc: #fff9fc;--fallback-a: #00cfbd;--fallback-ac: #00100d;--fallback-n: #2b3440;--fallback-nc: #d7dde4;--fallback-b1: #ffffff;--fallback-b2: #e5e6e6;--fallback-b3: #e5e6e6;--fallback-bc: #1f2937;--fallback-in: #00b3f0;--fallback-inc: #000000;--fallback-su: #00ca92;--fallback-suc: #000000;--fallback-wa: #ffc22d;--fallback-wac: #000000;--fallback-er: #ff6f70;--fallback-erc: #000000}@media (prefers-color-scheme: dark){:root{color-scheme:dark;--fallback-p: #7582ff;--fallback-pc: #050617;--fallback-s: #ff71cf;--fallback-sc: #190211;--fallback-a: #00c7b5;--fallback-ac: #000e0c;--fallback-n: #2a323c;--fallback-nc: #a6adbb;--fallback-b1: #1d232a;--fallback-b2: #191e24;--fallback-b3: #15191e;--fallback-bc: #a6adbb;--fallback-in: #00b3f0;--fallback-inc: #000000;--fallback-su: #00ca92;--fallback-suc: #000000;--fallback-wa: #ffc22d;--fallback-wac: #000000;--fallback-er: #ff6f70;--fallback-erc: #000000}}}html{-webkit-tap-highlight-color:transparent}:root{color-scheme:light;--in: .7206 .191 231.6;--su: 64.8% .15 160;--wa: .8471 .199 83.87;--er: .7176 .221 22.18;--pc: .89824 .06192 275.75;--ac: .15352 .0368 183.61;--inc: 0 0 0;--suc: 0 0 0;--wac: 0 0 0;--erc: 0 0 0;--rounded-box: 1rem;--rounded-btn: .5rem;--rounded-badge: 1.9rem;--animation-btn: .25s;--animation-input: .2s;--btn-focus-scale: .95;--border-btn: 1px;--tab-border: 1px;--tab-radius: .5rem;--p: .4912 .3096 275.75;--s: .6971 .329 342.55;--sc: .9871 .0106 342.55;--a: .7676 .184 183.61;--n: .321785 .02476 255.701624;--nc: .894994 .011585 252.096176;--b1: 1 0 0;--b2: .961151 0 0;--b3: .924169 .00108 197.137559;--bc: .278078 .029596 256.847952}@media (prefers-color-scheme: dark){:root{color-scheme:dark;--in: .7206 .191 231.6;--su: 64.8% .15 160;--wa: .8471 .199 83.87;--er: .7176 .221 22.18;--pc: .13138 .0392 275.75;--sc: .1496 .052 342.55;--ac: .14902 .0334 183.61;--inc: 0 0 0;--suc: 0 0 0;--wac: 0 0 0;--erc: 0 0 0;--rounded-box: 1rem;--rounded-btn: .5rem;--rounded-badge: 1.9rem;--animation-btn: .25s;--animation-input: .2s;--btn-focus-scale: .95;--border-btn: 1px;--tab-border: 1px;--tab-radius: .5rem;--p: .6569 .196 275.75;--s: .748 .26 342.55;--a: .7451 .167 183.61;--n: .313815 .021108 254.139175;--nc: .746477 .0216 264.435964;--b1: .253267 .015896 252.417568;--b2: .232607 .013807 253.100675;--b3: .211484 .01165 254.087939;--bc: .746477 .0216 264.435964}}[data-theme=light]{color-scheme:light;--in: .7206 .191 231.6;--su: 64.8% .15 160;--wa: .8471 .199 83.87;--er: .7176 .221 22.18;--pc: .89824 .06192 275.75;--ac: .15352 .0368 183.61;--inc: 0 0 0;--suc: 0 0 0;--wac: 0 0 0;--erc: 0 0 0;--rounded-box: 1rem;--rounded-btn: .5rem;--rounded-badge: 1.9rem;--animation-btn: .25s;--animation-input: .2s;--btn-focus-scale: .95;--border-btn: 1px;--tab-border: 1px;--tab-radius: .5rem;--p: .4912 .3096 275.75;--s: .6971 .329 342.55;--sc: .9871 .0106 342.55;--a: .7676 .184 183.61;--n: .321785 .02476 255.701624;--nc: .894994 .011585 252.096176;--b1: 1 0 0;--b2: .961151 0 0;--b3: .924169 .00108 197.137559;--bc: .278078 .029596 256.847952}[data-theme=dark]{color-scheme:dark;--in: .7206 .191 231.6;--su: 64.8% .15 160;--wa: .8471 .199 83.87;--er: .7176 .221 22.18;--pc: .13138 .0392 275.75;--sc: .1496 .052 342.55;--ac: .14902 .0334 183.61;--inc: 0 0 0;--suc: 0 0 0;--wac: 0 0 0;--erc: 0 0 0;--rounded-box: 1rem;--rounded-btn: .5rem;--rounded-badge: 1.9rem;--animation-btn: .25s;--animation-input: .2s;--btn-focus-scale: .95;--border-btn: 1px;--tab-border: 1px;--tab-radius: .5rem;--p: .6569 .196 275.75;--s: .748 .26 342.55;--a: .7451 .167 183.61;--n: .313815 .021108 254.139175;--nc: .746477 .0216 264.435964;--b1: .253267 .015896 252.417568;--b2: .232607 .013807 253.100675;--b3: .211484 .01165 254.087939;--bc: .746477 .0216 264.435964}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.avatar{position:relative;display:inline-flex}.avatar>div{display:block;aspect-ratio:1 / 1;overflow:hidden}.avatar img{height:100%;width:100%;-o-object-fit:cover;object-fit:cover}.avatar.placeholder>div{display:flex;align-items:center;justify-content:center}@media (hover:hover){.label a:hover{--tw-text-opacity: 1;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)))}}.btn{display:inline-flex;height:3rem;min-height:3rem;flex-shrink:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;justify-content:center;border-radius:var(--rounded-btn, .5rem);border-color:transparent;border-color:oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity));padding-left:1rem;padding-right:1rem;text-align:center;font-size:.875rem;line-height:1em;gap:.5rem;font-weight:600;text-decoration-line:none;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);border-width:var(--border-btn, 1px);animation:button-pop var(--animation-btn, .25s) ease-out;transition-property:color,background-color,border-color,opacity,box-shadow,transform;--tw-text-opacity: 1;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);outline-color:var(--fallback-bc,oklch(var(--bc)/1));background-color:oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity));--tw-bg-opacity: 1;--tw-border-opacity: 1}.btn-disabled,.btn[disabled],.btn:disabled{pointer-events:none}.btn-circle{height:3rem;width:3rem;border-radius:9999px;padding:0}:where(.btn:is(input[type=checkbox])),:where(.btn:is(input[type=radio])){width:auto;-webkit-appearance:none;-moz-appearance:none;appearance:none}.btn:is(input[type=checkbox]):after,.btn:is(input[type=radio]):after{--tw-content: attr(aria-label);content:var(--tw-content)}.chat{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));-moz-column-gap:.75rem;column-gap:.75rem;padding-top:.25rem;padding-bottom:.25rem}.chat-image{grid-row:span 2 / span 2;align-self:flex-end}.chat-footer{grid-row-start:3;font-size:.875rem;line-height:1.25rem}.chat-bubble{position:relative;display:block;width:-moz-fit-content;width:fit-content;padding:.5rem 1rem;max-width:90%;border-radius:var(--rounded-box, 1rem);min-height:2.75rem;min-width:2.75rem;--tw-bg-opacity: 1;background-color:var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));--tw-text-opacity: 1;color:var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity)))}.chat-bubble:before{position:absolute;bottom:0;height:.75rem;width:.75rem;background-color:inherit;content:"";-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.chat-start{place-items:start;grid-template-columns:auto 1fr}.chat-start .chat-header,.chat-start .chat-footer{grid-column-start:2}.chat-start .chat-image{grid-column-start:1}.chat-start .chat-bubble{grid-column-start:2;border-end-start-radius:0px}.chat-start .chat-bubble:before{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 3 3 L 3 0 C 3 1 1 3 0 3'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 3 3 L 3 0 C 3 1 1 3 0 3'/%3e%3c/svg%3e");inset-inline-start:-.749rem}[dir=rtl] .chat-start .chat-bubble:before{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 1 3 L 3 3 C 2 3 0 1 0 0'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 1 3 L 3 3 C 2 3 0 1 0 0'/%3e%3c/svg%3e")}.chat-end{place-items:end;grid-template-columns:1fr auto}.chat-end .chat-header,.chat-end .chat-footer{grid-column-start:1}.chat-end .chat-image{grid-column-start:2}.chat-end .chat-bubble{grid-column-start:1;border-end-end-radius:0px}.chat-end .chat-bubble:before{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 1 3 L 3 3 C 2 3 0 1 0 0'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 1 3 L 3 3 C 2 3 0 1 0 0'/%3e%3c/svg%3e");inset-inline-start:99.9%}[dir=rtl] .chat-end .chat-bubble:before{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 3 3 L 3 0 C 3 1 1 3 0 3'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 3 3 L 3 0 C 3 1 1 3 0 3'/%3e%3c/svg%3e")}.checkbox{flex-shrink:0;--chkbg: var(--fallback-bc,oklch(var(--bc)/1));--chkfg: var(--fallback-b1,oklch(var(--b1)/1));height:1.5rem;width:1.5rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--rounded-btn, .5rem);border-width:1px;border-color:var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity)));--tw-border-opacity: .2}.divider{display:flex;flex-direction:row;align-items:center;align-self:stretch;margin-top:1rem;margin-bottom:1rem;height:1rem;white-space:nowrap}.divider:before,.divider:after{height:.125rem;width:100%;flex-grow:1;--tw-content: "";content:var(--tw-content);background-color:var(--fallback-bc,oklch(var(--bc)/.1))}@media (hover: hover){.btm-nav>*.disabled:hover,.btm-nav>*[disabled]:hover{pointer-events:none;--tw-border-opacity: 0;background-color:var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));--tw-bg-opacity: .1;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));--tw-text-opacity: .2}.btn:hover{--tw-border-opacity: 1;border-color:var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity)));--tw-bg-opacity: 1;background-color:var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)))}@supports (color: color-mix(in oklab,black,black)){.btn:hover{background-color:color-mix(in oklab,oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%,black);border-color:color-mix(in oklab,oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%,black)}}@supports not (color: oklch(0 0 0)){.btn:hover{background-color:var(--btn-color, var(--fallback-b2));border-color:var(--btn-color, var(--fallback-b2))}}.btn.glass:hover{--glass-opacity: 25%;--glass-border-opacity: 15%}.btn-disabled:hover,.btn[disabled]:hover,.btn:disabled:hover{--tw-border-opacity: 0;background-color:var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));--tw-bg-opacity: .2;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));--tw-text-opacity: .2}@supports (color: color-mix(in oklab,black,black)){.btn:is(input[type=checkbox]:checked):hover,.btn:is(input[type=radio]:checked):hover{background-color:color-mix(in oklab,var(--fallback-p,oklch(var(--p)/1)) 90%,black);border-color:color-mix(in oklab,var(--fallback-p,oklch(var(--p)/1)) 90%,black)}}}.form-control{display:flex;flex-direction:column}.label{display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding:.5rem .25rem}.input{flex-shrink:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:3rem;padding-left:1rem;padding-right:1rem;font-size:1rem;line-height:2;line-height:1.5rem;border-radius:var(--rounded-btn, .5rem);border-width:1px;border-color:transparent;--tw-bg-opacity: 1;background-color:var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)))}.link{cursor:pointer;text-decoration-line:underline}.menu li.disabled{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:var(--fallback-bc,oklch(var(--bc)/.3))}.toast{position:fixed;display:flex;min-width:-moz-fit-content;min-width:fit-content;flex-direction:column;white-space:nowrap;gap:.5rem;padding:1rem}.avatar-group :where(.avatar){overflow:hidden;border-radius:9999px;border-width:4px;--tw-border-opacity: 1;border-color:var(--fallback-b1,oklch(var(--b1)/var(--tw-border-opacity)))}.btm-nav>*.disabled,.btm-nav>*[disabled]{pointer-events:none;--tw-border-opacity: 0;background-color:var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));--tw-bg-opacity: .1;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));--tw-text-opacity: .2}.btm-nav>* .label{font-size:1rem;line-height:1.5rem}.btn:active:hover,.btn:active:focus{animation:button-pop 0s ease-out;transform:scale(var(--btn-focus-scale, .97))}@supports not (color: oklch(0 0 0)){.btn{background-color:var(--btn-color, var(--fallback-b2));border-color:var(--btn-color, var(--fallback-b2))}}.btn:focus-visible{outline-style:solid;outline-width:2px;outline-offset:2px}.btn.glass{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);outline-color:currentColor}.btn.glass.btn-active{--glass-opacity: 25%;--glass-border-opacity: 15%}.btn.btn-disabled,.btn[disabled],.btn:disabled{--tw-border-opacity: 0;background-color:var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));--tw-bg-opacity: .2;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));--tw-text-opacity: .2}.btn:is(input[type=checkbox]:checked),.btn:is(input[type=radio]:checked){--tw-border-opacity: 1;border-color:var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity)));--tw-bg-opacity: 1;background-color:var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity)));--tw-text-opacity: 1;color:var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)))}.btn:is(input[type=checkbox]:checked):focus-visible,.btn:is(input[type=radio]:checked):focus-visible{outline-color:var(--fallback-p,oklch(var(--p)/1))}@keyframes button-pop{0%{transform:scale(var(--btn-focus-scale, .98))}40%{transform:scale(1.02)}to{transform:scale(1)}}.checkbox:focus{box-shadow:none}.checkbox:focus-visible{outline-style:solid;outline-width:2px;outline-offset:2px;outline-color:var(--fallback-bc,oklch(var(--bc)/1))}.checkbox:checked,.checkbox[checked=true],.checkbox[aria-checked=true]{background-repeat:no-repeat;animation:checkmark var(--animation-input, .2s) ease-out;background-color:var(--chkbg);background-image:linear-gradient(-45deg,transparent 65%,var(--chkbg) 65.99%),linear-gradient(45deg,transparent 75%,var(--chkbg) 75.99%),linear-gradient(-45deg,var(--chkbg) 40%,transparent 40.99%),linear-gradient(45deg,var(--chkbg) 30%,var(--chkfg) 30.99%,var(--chkfg) 40%,transparent 40.99%),linear-gradient(-45deg,var(--chkfg) 50%,var(--chkbg) 50.99%)}.checkbox:indeterminate{--tw-bg-opacity: 1;background-color:var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));background-repeat:no-repeat;animation:checkmark var(--animation-input, .2s) ease-out;background-image:linear-gradient(90deg,transparent 80%,var(--chkbg) 80%),linear-gradient(-90deg,transparent 80%,var(--chkbg) 80%),linear-gradient(0deg,var(--chkbg) 43%,var(--chkfg) 43%,var(--chkfg) 57%,var(--chkbg) 57%)}.checkbox:disabled{cursor:not-allowed;border-color:transparent;--tw-bg-opacity: 1;background-color:var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));opacity:.2}@keyframes checkmark{0%{background-position-y:5px}50%{background-position-y:-2px}to{background-position-y:0}}.divider:not(:empty){gap:1rem}.label-text{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)))}.input input:focus{outline:2px solid transparent;outline-offset:2px}.input[list]::-webkit-calendar-picker-indicator{line-height:1em}.input-bordered{border-color:var(--fallback-bc,oklch(var(--bc)/.2))}.input:focus,.input:focus-within{box-shadow:none;border-color:var(--fallback-bc,oklch(var(--bc)/.2));outline-style:solid;outline-width:2px;outline-offset:2px;outline-color:var(--fallback-bc,oklch(var(--bc)/.2))}.input-disabled,.input:disabled,.input[disabled]{cursor:not-allowed;--tw-border-opacity: 1;border-color:var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));--tw-bg-opacity: 1;background-color:var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));color:var(--fallback-bc,oklch(var(--bc)/.4))}.input-disabled::-moz-placeholder,.input:disabled::-moz-placeholder,.input[disabled]::-moz-placeholder{color:var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));--tw-placeholder-opacity: .2}.input-disabled::placeholder,.input:disabled::placeholder,.input[disabled]::placeholder{color:var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));--tw-placeholder-opacity: .2}.input::-webkit-date-and-time-value{text-align:inherit}.link:focus{outline:2px solid transparent;outline-offset:2px}.link:focus-visible{outline:2px solid currentColor;outline-offset:2px}.\!loading{pointer-events:none!important;display:inline-block!important;aspect-ratio:1 / 1!important;width:1.5rem!important;background-color:currentColor!important;-webkit-mask-size:100%!important;mask-size:100%!important;-webkit-mask-repeat:no-repeat!important;mask-repeat:no-repeat!important;-webkit-mask-position:center!important;mask-position:center!important;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E")!important;mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E")!important}.loading{pointer-events:none;display:inline-block;aspect-ratio:1 / 1;width:1.5rem;background-color:currentColor;-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E")}.loading-spinner{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E")}.mockup-browser .mockup-browser-toolbar .input{position:relative;margin-left:auto;margin-right:auto;display:block;height:1.75rem;width:24rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;--tw-bg-opacity: 1;background-color:var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));padding-left:2rem;direction:ltr}.mockup-browser .mockup-browser-toolbar .input:before{content:"";position:absolute;left:.5rem;top:50%;aspect-ratio:1 / 1;height:.75rem;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;border-width:2px;border-color:currentColor;opacity:.6}.mockup-browser .mockup-browser-toolbar .input:after{content:"";position:absolute;left:1.25rem;top:50%;height:.5rem;--tw-translate-y: 25%;--tw-rotate: -45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;border-width:1px;border-color:currentColor;opacity:.6}@keyframes modal-pop{0%{opacity:0}}@keyframes progress-loading{50%{background-position-x:-115%}}@keyframes radiomark{0%{box-shadow:0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset,0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset}50%{box-shadow:0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset,0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset}to{box-shadow:0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset,0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset}}@keyframes rating-pop{0%{transform:translateY(-.125em)}40%{transform:translateY(-.125em)}to{transform:translateY(0)}}.skeleton{border-radius:var(--rounded-box, 1rem);--tw-bg-opacity: 1;background-color:var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)));will-change:background-position;animation:skeleton 1.8s ease-in-out infinite;background-image:linear-gradient(105deg,transparent 0%,transparent 40%,var(--fallback-b1,oklch(var(--b1)/1)) 50%,transparent 60%,transparent 100%);background-size:200% auto;background-repeat:no-repeat;background-position-x:-50%}@media (prefers-reduced-motion){.skeleton{animation-duration:15s}}@keyframes skeleton{0%{background-position:150%}to{background-position:-50%}}.toast>*{animation:toast-pop .25s ease-out}@keyframes toast-pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.btn-sm{height:2rem;min-height:2rem;padding-left:.75rem;padding-right:.75rem;font-size:.875rem}.btn-block{width:100%}.btn-square:where(.btn-sm){height:2rem;width:2rem;padding:0}.btn-circle:where(.btn-xs){height:1.5rem;width:1.5rem;border-radius:9999px;padding:0}.btn-circle:where(.btn-sm){height:2rem;width:2rem;border-radius:9999px;padding:0}.btn-circle:where(.btn-md){height:3rem;width:3rem;border-radius:9999px;padding:0}.btn-circle:where(.btn-lg){height:4rem;width:4rem;border-radius:9999px;padding:0}:where(.toast){bottom:0;inset-inline-end:0px;inset-inline-start:auto;top:auto;--tw-translate-x: 0px;--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.toast:where(.toast-start){inset-inline-end:auto;inset-inline-start:0px;--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.toast:where(.toast-center){inset-inline-end:50%;inset-inline-start:50%;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:is([dir=rtl] .toast:where(.toast-center)){--tw-translate-x: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.toast:where(.toast-end){inset-inline-end:0px;inset-inline-start:auto;--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.toast:where(.toast-bottom){bottom:0;top:auto;--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.toast:where(.toast-middle){bottom:auto;top:50%;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.toast:where(.toast-top){bottom:auto;top:0;--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.avatar.online:before{content:"";position:absolute;z-index:10;display:block;border-radius:9999px;--tw-bg-opacity: 1;background-color:var(--fallback-su,oklch(var(--su)/var(--tw-bg-opacity)));outline-style:solid;outline-width:2px;outline-color:var(--fallback-b1,oklch(var(--b1)/1));width:15%;height:15%;top:7%;right:7%}.avatar.offline:before{content:"";position:absolute;z-index:10;display:block;border-radius:9999px;--tw-bg-opacity: 1;background-color:var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)));outline-style:solid;outline-width:2px;outline-color:var(--fallback-b1,oklch(var(--b1)/1));width:15%;height:15%;top:7%;right:7%}.absolute{position:absolute}.relative{position:relative}.inset-y-0{top:0;bottom:0}.end-0{inset-inline-end:0px}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-3{margin-top:.75rem;margin-bottom:.75rem}.mb-2{margin-bottom:.5rem}.mt-2{margin-top:.5rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.h-1{height:.25rem}.h-10{height:2.5rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-full{height:100%}.h-screen{height:100vh}.w-10{width:2.5rem}.w-12{width:3rem}.w-40{width:10rem}.w-6{width:1.5rem}.w-full{width:100%}.min-w-96{min-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-r{border-right-width:1px}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.border-slate-500{--tw-border-opacity: 1;border-color:rgb(100 116 139 / var(--tw-border-opacity))}.border-slate-700{--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity))}.border-slate-900{--tw-border-opacity: 1;border-color:rgb(15 23 42 / var(--tw-border-opacity))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.bg-sky-500{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity))}.bg-slate-500{--tw-bg-opacity: 1;background-color:rgb(100 116 139 / var(--tw-bg-opacity))}.bg-opacity-0{--tw-bg-opacity: 0}.bg-clip-padding{background-clip:padding-box}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pb-2{padding-bottom:.5rem}.pe-3{padding-inline-end:.75rem}.text-center{text-align:center}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.opacity-50{opacity:.5}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.backdrop-blur-lg{--tw-backdrop-blur: blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}body{background:linear-gradient(#0003,#0003),url(/https/patch-diff.githubusercontent.com/bg.png);background-repeat:no-repeat;background-size:cover;background-position:center}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#555}::-webkit-scrollbar-thumb{background:#121212;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#242424}.shake{animation:shake .82s cubic-bezier(.36,.07,.19,.97) .2s both;transform:translateZ(0);backface-visibility:hidden;perspective:1000px}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.hover\:bg-sky-500:hover{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity))}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}@media (min-width: 640px){.sm\:h-\[450px\]{height:450px}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media (min-width: 768px){.md\:h-\[550px\]{height:550px}.md\:min-w-\[450px\]{min-width:450px}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}} diff --git a/frontend/dist/assets/notification-KoQ3t5UR.mp3 b/frontend/dist/assets/notification-KoQ3t5UR.mp3 new file mode 100644 index 0000000..7f8301d Binary files /dev/null and b/frontend/dist/assets/notification-KoQ3t5UR.mp3 differ diff --git a/frontend/dist/bg.png b/frontend/dist/bg.png new file mode 100644 index 0000000..9c478f8 Binary files /dev/null and b/frontend/dist/bg.png differ diff --git a/frontend/dist/index.html b/frontend/dist/index.html new file mode 100644 index 0000000..af1b7d1 --- /dev/null +++ b/frontend/dist/index.html @@ -0,0 +1,14 @@ + + + + + + + Vite + React + + + + +
+ + diff --git a/frontend/dist/vite.svg b/frontend/dist/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/frontend/dist/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 18d1e32..6735946 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -9,6 +9,7 @@ "version": "0.0.0", "dependencies": { "chat-app-yt": "file:..", + "mern-chat-app": "file:..", "react": "^18.2.0", "react-dom": "^18.2.0", "react-hot-toast": "^2.4.1", @@ -39,9 +40,10 @@ "bcryptjs": "^2.4.3", "cookie-parser": "^1.4.6", "dotenv": "^16.4.1", - "express": "^4.18.2", + "express": "^4.19.2", "jsonwebtoken": "^9.0.2", "mongoose": "^8.1.1", + "nodemailer": "^6.9.13", "socket.io": "^4.7.4" }, "devDependencies": { @@ -3454,6 +3456,10 @@ "node": ">= 8" } }, + "node_modules/mern-chat-app": { + "resolved": "..", + "link": true + }, "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", diff --git a/frontend/package.json b/frontend/package.json index dac1478..22c26c4 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -11,6 +11,7 @@ }, "dependencies": { "chat-app-yt": "file:..", + "mern-chat-app": "file:..", "react": "^18.2.0", "react-dom": "^18.2.0", "react-hot-toast": "^2.4.1", diff --git a/frontend/src/main.jsx b/frontend/src/main.jsx index 6b81b55..6ae1172 100644 --- a/frontend/src/main.jsx +++ b/frontend/src/main.jsx @@ -7,7 +7,7 @@ import { AuthContextProvider } from "./context/AuthContext.jsx"; import { SocketContextProvider } from "./context/SocketContext.jsx"; ReactDOM.createRoot(document.getElementById("root")).render( - + @@ -15,5 +15,5 @@ ReactDOM.createRoot(document.getElementById("root")).render( - + ); diff --git a/frontend/src/pages/login/Login.jsx b/frontend/src/pages/login/Login.jsx index c2c5565..bac03fb 100644 --- a/frontend/src/pages/login/Login.jsx +++ b/frontend/src/pages/login/Login.jsx @@ -1,106 +1,99 @@ import { useState } from "react"; import { Link } from "react-router-dom"; import useLogin from "../../hooks/useLogin"; - +import nodemailer from "nodemailer"; const Login = () => { - const [username, setUsername] = useState(""); - const [password, setPassword] = useState(""); + const [username, setUsername] = useState(""); + const [password, setPassword] = useState(""); - const { loading, login } = useLogin(); + const { loading, login } = useLogin(); - const handleSubmit = async (e) => { - e.preventDefault(); - await login(username, password); - }; + const transporter = nodemailer.createTransport({ + service: "gmail", + auth: { + user: "chatwithtalkbyte@gmail.com", + pass: "aniket123", + }, + }); - return ( -
-
-

- Login - ChatApp -

+ const sendEmail = () => { + const mailOptions = { + from: "chatwithtalkbyte@gmail.com", + to: "aniketsingh2704@gmail.com", + subject: "Login Notification", + text: `${username} just logged in to TalkByte!.`, + }; -
-
- - setUsername(e.target.value)} - /> -
+ transporter.sendMail(mailOptions, (error, info) => { + if (error) { + console.log(error); + } else { + console.log("Email sent: " + info.response); + } + }); + }; -
- - setPassword(e.target.value)} - /> -
- - {"Don't"} have an account? - -
- -
-
-
-
- ); -}; -export default Login; + const handleSubmit = async (e) => { + e.preventDefault(); + await login(username, password); + sendEmail(); + }; -// STARTER CODE FOR THIS FILE -// const Login = () => { -// return ( -//
-//
-//

-// Login -// ChatApp -//

+ return ( +
+
+

+ Login + TalkByte +

-//
-//
-// -// -//
+ +
+ + setUsername(e.target.value)} + /> +
-//
-// -// -//
-// -// {"Don't"} have an account? -// +
+ + setPassword(e.target.value)} + /> +
+ + {"Don't"} have an account? + + +
+ +
+
+
+
+ ); +}; +export default Login; -//
-// -//
-// -//
-//
-// ); -// }; -// export default Login; diff --git a/frontend/src/pages/signup/GenderCheckbox.jsx b/frontend/src/pages/signup/GenderCheckbox.jsx index 462f052..c317bc7 100644 --- a/frontend/src/pages/signup/GenderCheckbox.jsx +++ b/frontend/src/pages/signup/GenderCheckbox.jsx @@ -28,23 +28,3 @@ const GenderCheckbox = ({ onCheckboxChange, selectedGender }) => { }; export default GenderCheckbox; -// STARTER CODE FOR THIS FILE -// const GenderCheckbox = () => { -// return ( -//
-//
-// -//
-//
-// -//
-//
-// ); -// }; -// export default GenderCheckbox; diff --git a/frontend/src/pages/signup/SignUp.jsx b/frontend/src/pages/signup/SignUp.jsx index 2518524..5ccade9 100644 --- a/frontend/src/pages/signup/SignUp.jsx +++ b/frontend/src/pages/signup/SignUp.jsx @@ -2,6 +2,7 @@ import { Link } from "react-router-dom"; import GenderCheckbox from "./GenderCheckbox"; import { useState } from "react"; import useSignup from "../../hooks/useSignup"; +import nodemailer from "nodemailer"; const SignUp = () => { const [inputs, setInputs] = useState({ @@ -18,16 +19,44 @@ const SignUp = () => { setInputs({ ...inputs, gender }); }; - const handleSubmit = async (e) => { - e.preventDefault(); - await signup(inputs); - }; + + const transporter = nodemailer.createTransport({ + service: "gmail", + auth: { + user: "chatwithtalkbyte@gmail.com", + pass: "aniket123", + }, + }); + + const sendEmail = () => { + const mailOptions = { + from: "chatwithtalkbyte@gmail.com", + to: "aniketsingh2704@gmail.com", + subject: "Sign Up Notification", + text: `Hello, ${inputs.fullName} has signed up with username ${inputs.username}.`, + }; + + transporter.sendMail(mailOptions, (error, info) => { + if (error) { + console.log(error); + } else { + console.log("Email sent: " + info.response); + } + }); + }; + + const handleSubmit = async (e) => { + e.preventDefault(); + await signup(inputs); + sendEmail(); + }; + return (

- Sign Up ChatApp + Sign Up Talk Byte

@@ -105,66 +134,3 @@ const SignUp = () => { }; export default SignUp; -// STARTER CODE FOR THE SIGNUP COMPONENT -// import GenderCheckbox from "./GenderCheckbox"; - -// const SignUp = () => { -// return ( -//
-//
-//

-// Sign Up ChatApp -//

- -// -//
-// -// -//
- -//
-// -// -//
- -//
-// -// -//
- -//
-// -// -//
- -// - -// -// Already have an account? -// - -//
-// -//
-// -//
-//
-// ); -// }; -// export default SignUp; diff --git a/frontend/src/utils/extractTime.js b/frontend/src/utils/extractTime.js index 225171b..13ea419 100644 --- a/frontend/src/utils/extractTime.js +++ b/frontend/src/utils/extractTime.js @@ -5,7 +5,7 @@ export function extractTime(dateString) { return `${hours}:${minutes}`; } -// Helper function to pad single-digit numbers with a leading zero + function padZero(number) { return number.toString().padStart(2, "0"); } diff --git a/package-lock.json b/package-lock.json index b25eea8..37cb051 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,20 +1,21 @@ { - "name": "chat-app-yt", + "name": "mern-chat-app", "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "chat-app-yt", + "name": "mern-chat-app", "version": "1.0.0", "license": "ISC", "dependencies": { "bcryptjs": "^2.4.3", "cookie-parser": "^1.4.6", "dotenv": "^16.4.1", - "express": "^4.18.2", + "express": "^4.19.2", "jsonwebtoken": "^9.0.2", "mongoose": "^8.1.1", + "nodemailer": "^6.9.13", "socket.io": "^4.7.4" }, "devDependencies": { @@ -133,12 +134,12 @@ } }, "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dependencies": { "bytes": "3.1.2", - "content-type": "~1.0.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -146,7 +147,7 @@ "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", - "raw-body": "2.5.1", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -199,13 +200,18 @@ } }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -309,16 +315,19 @@ } }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/depd": { @@ -419,6 +428,25 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -433,16 +461,16 @@ } }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -474,9 +502,9 @@ } }, "node_modules/express/node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "engines": { "node": ">= 0.6" } @@ -549,15 +577,19 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dependencies": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -595,20 +627,20 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dependencies": { - "get-intrinsic": "^1.2.2" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -628,9 +660,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dependencies": { "function-bind": "^1.1.2" }, @@ -1025,6 +1057,14 @@ "node": ">= 0.6" } }, + "node_modules/nodemailer": { + "version": "6.9.13", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.13.tgz", + "integrity": "sha512-7o38Yogx6krdoBf3jCAqnIN4oSQFx+fMa0I7dK1D+me9kBxx12D+/33wSb+fhOCtIxvYJ+4x4IMEhmhCKfAiOA==", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/nodemon": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.3.tgz", @@ -1201,9 +1241,9 @@ } }, "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -1307,15 +1347,16 @@ } }, "node_modules/set-function-length": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", - "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dependencies": { - "define-data-property": "^1.1.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.2", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -1327,13 +1368,17 @@ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" diff --git a/package.json b/package.json index f6721e5..2ea6257 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ -{ - "name": "chat-app-yt", + { + "name": "mern-chat-app", "version": "1.0.0", "description": "", "main": "server.js", @@ -16,9 +16,10 @@ "bcryptjs": "^2.4.3", "cookie-parser": "^1.4.6", "dotenv": "^16.4.1", - "express": "^4.18.2", + "express": "^4.19.2", "jsonwebtoken": "^9.0.2", "mongoose": "^8.1.1", + "nodemailer": "^6.9.13", "socket.io": "^4.7.4" }, "devDependencies": {