File: //var/www/quadcode.com/build/server/chunks/WLogger-ddafd77a.js.map
{"version":3,"file":"WLogger-ddafd77a.js","sources":["../../../node_modules/nanoid/url-alphabet/index.js","../../../node_modules/nanoid/index.js","../../../node_modules/@isaacs/ttlcache/index.js","../../../.svelte-kit/adapter-node/chunks/WLogger.js"],"sourcesContent":["let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nexport { urlAlphabet }\n","import crypto from 'crypto'\nimport { urlAlphabet } from './url-alphabet/index.js'\nconst POOL_SIZE_MULTIPLIER = 128\nlet pool, poolOffset\nlet fillPool = bytes => {\n if (!pool || pool.length < bytes) {\n pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER)\n crypto.randomFillSync(pool)\n poolOffset = 0\n } else if (poolOffset + bytes > pool.length) {\n crypto.randomFillSync(pool)\n poolOffset = 0\n }\n poolOffset += bytes\n}\nlet random = bytes => {\n fillPool((bytes -= 0))\n return pool.subarray(poolOffset - bytes, poolOffset)\n}\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1\n let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let i = step\n while (i--) {\n id += alphabet[bytes[i] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nlet nanoid = (size = 21) => {\n fillPool((size -= 0))\n let id = ''\n for (let i = poolOffset - size; i < poolOffset; i++) {\n id += urlAlphabet[pool[i] & 63]\n }\n return id\n}\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n","// A simple TTL cache with max capacity option, ms resolution,\n// autopurge, and reasonably optimized performance\n// Relies on the fact that integer Object keys are kept sorted,\n// and managed very efficiently by V8.\n\n/* istanbul ignore next */\nconst perf =\n typeof performance === 'object' &&\n performance &&\n typeof performance.now === 'function'\n ? performance\n : Date\n\nconst now = () => perf.now()\nconst isPosInt = n => n && n === Math.floor(n) && n > 0 && isFinite(n)\nconst isPosIntOrInf = n => n === Infinity || isPosInt(n)\n\nclass TTLCache {\n constructor({\n max = Infinity,\n ttl,\n updateAgeOnGet = false,\n checkAgeOnGet = false,\n noUpdateTTL = false,\n dispose,\n noDisposeOnSet = false,\n } = {}) {\n // {[expirationTime]: [keys]}\n this.expirations = Object.create(null)\n // {key=>val}\n this.data = new Map()\n // {key=>expiration}\n this.expirationMap = new Map()\n if (ttl !== undefined && !isPosIntOrInf(ttl)) {\n throw new TypeError(\n 'ttl must be positive integer or Infinity if set'\n )\n }\n if (!isPosIntOrInf(max)) {\n throw new TypeError('max must be positive integer or Infinity')\n }\n this.ttl = ttl\n this.max = max\n this.updateAgeOnGet = !!updateAgeOnGet\n this.checkAgeOnGet = !!checkAgeOnGet\n this.noUpdateTTL = !!noUpdateTTL\n this.noDisposeOnSet = !!noDisposeOnSet\n if (dispose !== undefined) {\n if (typeof dispose !== 'function') {\n throw new TypeError('dispose must be function if set')\n }\n this.dispose = dispose\n }\n\n this.timer = undefined\n this.timerExpiration = undefined\n }\n\n setTimer(expiration, ttl) {\n if (this.timerExpiration < expiration) {\n return\n }\n\n if (this.timer) {\n clearTimeout(this.timer)\n }\n\n const t = setTimeout(() => {\n this.timer = undefined\n this.timerExpiration = undefined\n this.purgeStale()\n for (const exp in this.expirations) {\n this.setTimer(exp, exp - now())\n break\n }\n }, ttl)\n\n /* istanbul ignore else - affordance for non-node envs */\n if (t.unref) t.unref()\n\n this.timerExpiration = expiration\n this.timer = t\n }\n\n // hang onto the timer so we can clearTimeout if all items\n // are deleted. Deno doesn't have Timer.unref(), so it\n // hangs otherwise.\n cancelTimer() {\n if (this.timer) {\n clearTimeout(this.timer)\n this.timerExpiration = undefined\n this.timer = undefined\n }\n }\n\n /* istanbul ignore next */\n cancelTimers() {\n process.emitWarning(\n 'TTLCache.cancelTimers has been renamed to ' +\n 'TTLCache.cancelTimer (no \"s\"), and will be removed in the next ' +\n 'major version update'\n )\n return this.cancelTimer()\n }\n\n clear() {\n const entries =\n this.dispose !== TTLCache.prototype.dispose ? [...this] : []\n this.data.clear()\n this.expirationMap.clear()\n // no need for any purging now\n this.cancelTimer()\n this.expirations = Object.create(null)\n for (const [key, val] of entries) {\n this.dispose(val, key, 'delete')\n }\n }\n\n setTTL(key, ttl = this.ttl) {\n const current = this.expirationMap.get(key)\n if (current !== undefined) {\n // remove from the expirations list, so it isn't purged\n const exp = this.expirations[current]\n if (!exp || exp.length <= 1) {\n delete this.expirations[current]\n } else {\n this.expirations[current] = exp.filter(k => k !== key)\n }\n }\n\n if (ttl !== Infinity) {\n const expiration = Math.floor(now() + ttl)\n this.expirationMap.set(key, expiration)\n if (!this.expirations[expiration]) {\n this.expirations[expiration] = []\n this.setTimer(expiration, ttl)\n }\n this.expirations[expiration].push(key)\n } else {\n this.expirationMap.set(key, Infinity)\n }\n }\n\n set(\n key,\n val,\n {\n ttl = this.ttl,\n noUpdateTTL = this.noUpdateTTL,\n noDisposeOnSet = this.noDisposeOnSet,\n } = {}\n ) {\n if (!isPosIntOrInf(ttl)) {\n throw new TypeError('ttl must be positive integer or Infinity')\n }\n if (this.expirationMap.has(key)) {\n if (!noUpdateTTL) {\n this.setTTL(key, ttl)\n }\n // has old value\n const oldValue = this.data.get(key)\n if (oldValue !== val) {\n this.data.set(key, val)\n if (!noDisposeOnSet) {\n this.dispose(oldValue, key, 'set')\n }\n }\n } else {\n this.setTTL(key, ttl)\n this.data.set(key, val)\n }\n\n while (this.size > this.max) {\n this.purgeToCapacity()\n }\n\n return this\n }\n\n has(key) {\n return this.data.has(key)\n }\n\n getRemainingTTL(key) {\n const expiration = this.expirationMap.get(key)\n return expiration === Infinity\n ? expiration\n : expiration !== undefined\n ? Math.max(0, Math.ceil(expiration - now()))\n : 0\n }\n\n get(\n key,\n {\n updateAgeOnGet = this.updateAgeOnGet,\n ttl = this.ttl,\n checkAgeOnGet = this.checkAgeOnGet,\n } = {}\n ) {\n const val = this.data.get(key)\n if (checkAgeOnGet && this.getRemainingTTL(key) === 0) {\n this.delete(key)\n return undefined\n }\n if (updateAgeOnGet) {\n this.setTTL(key, ttl)\n }\n return val\n }\n\n dispose(_, __) {}\n\n delete(key) {\n const current = this.expirationMap.get(key)\n if (current !== undefined) {\n const value = this.data.get(key)\n this.data.delete(key)\n this.expirationMap.delete(key)\n const exp = this.expirations[current]\n if (exp) {\n if (exp.length <= 1) {\n delete this.expirations[current]\n } else {\n this.expirations[current] = exp.filter(k => k !== key)\n }\n }\n this.dispose(value, key, 'delete')\n if (this.size === 0) {\n this.cancelTimer()\n }\n return true\n }\n return false\n }\n\n purgeToCapacity() {\n for (const exp in this.expirations) {\n const keys = this.expirations[exp]\n if (this.size - keys.length >= this.max) {\n delete this.expirations[exp]\n const entries = []\n for (const key of keys) {\n entries.push([key, this.data.get(key)])\n this.data.delete(key)\n this.expirationMap.delete(key)\n }\n for (const [key, val] of entries) {\n this.dispose(val, key, 'evict')\n }\n } else {\n const s = this.size - this.max\n const entries = []\n for (const key of keys.splice(0, s)) {\n entries.push([key, this.data.get(key)])\n this.data.delete(key)\n this.expirationMap.delete(key)\n }\n for (const [key, val] of entries) {\n this.dispose(val, key, 'evict')\n }\n return\n }\n }\n }\n\n get size() {\n return this.data.size\n }\n\n purgeStale() {\n const n = Math.ceil(now())\n for (const exp in this.expirations) {\n if (exp === 'Infinity' || exp > n) {\n return\n }\n\n /* istanbul ignore next\n * mysterious need for a guard here?\n * https://github.com/isaacs/ttlcache/issues/26 */\n const keys = [...(this.expirations[exp] || [])]\n const entries = []\n delete this.expirations[exp]\n for (const key of keys) {\n entries.push([key, this.data.get(key)])\n this.data.delete(key)\n this.expirationMap.delete(key)\n }\n for (const [key, val] of entries) {\n this.dispose(val, key, 'stale')\n }\n }\n if (this.size === 0) {\n this.cancelTimer()\n }\n }\n\n *entries() {\n for (const exp in this.expirations) {\n for (const key of this.expirations[exp]) {\n yield [key, this.data.get(key)]\n }\n }\n }\n *keys() {\n for (const exp in this.expirations) {\n for (const key of this.expirations[exp]) {\n yield key\n }\n }\n }\n *values() {\n for (const exp in this.expirations) {\n for (const key of this.expirations[exp]) {\n yield this.data.get(key)\n }\n }\n }\n [Symbol.iterator]() {\n return this.entries()\n }\n}\n\nmodule.exports = TTLCache\n","import{nanoid as f}from\"nanoid\";import g from\"@isaacs/ttlcache\";import{createLogger as w,format as u,transports as m}from\"winston\";class L{rate;constructor(t){this.rate=t}async hash(t){return t.getClientAddress()}}class T{rate;constructor(t){this.rate=t}async hash(t){const e=t.request.headers.get(\"user-agent\");return e?t.getClientAddress()+e:!1}}class p{rate;cookieOptions;secret;requirePreflight;cookieId;hashFunction;constructor(t){this.cookieId=t.name,this.secret=t.secret,this.rate=t.rate,this.requirePreflight=t.preflight,this.hashFunction=t.hashFunction??l,this.cookieOptions={path:\"/\",httpOnly:!0,maxAge:60*60*24*7,sameSite:\"strict\",...t.serializeOptions}}async hash(t){const e=await this.userIdFromCookie(t.cookies.get(this.cookieId),t);return e||!1}async preflight(t){const e=t.cookies.get(this.cookieId);if(e){const r=await this.userIdFromCookie(e,t);if(r)return r}const s=f();return t.cookies.set(this.cookieId,s+\";\"+await this.hashFunction(this.secret+s),this.cookieOptions),s}async userIdFromCookie(t,e){const s=()=>this.requirePreflight?null:this.preflight(e);if(!t)return s();const[r,i]=t.split(\";\");return!r||!i||await this.hashFunction(this.secret+r)!=i?s():r}}let l;globalThis?.crypto?.subtle&&(l=I);async function I(c){const t=await crypto.subtle.digest(\"SHA-256\",new TextEncoder().encode(c));return[...new Uint8Array(t)].map(e=>e.toString(16).padStart(2,\"0\")).join(\"\")}class a{store;plugins;onLimited;hashFunction;cookieLimiter;static TTLTime(t){switch(t){case\"s\":return 1e3;case\"m\":return 6e4;case\"h\":return 60*6e4;case\"2s\":return 2e3;case\"5s\":return 5e3;case\"10s\":return 1e4;case\"15s\":return 15e3;case\"30s\":return 3e4;case\"45s\":return 45e3;case\"15m\":return 15*6e4;case\"30m\":return 30*6e4;case\"100ms\":return 100;case\"250ms\":return 250;case\"500ms\":return 500;case\"2h\":return 2*60*6e4;case\"6h\":return 6*60*6e4;case\"12h\":return 12*60*6e4;case\"d\":return 24*60*6e4;case\"ms\":return 1}throw new Error(\"Invalid unit for TTLTime: \"+t)}async isLimited(t){return(await this._isLimited(t)).limited}async clear(){return await this.store.clear()}async _isLimited(t){let e=!1;for(const s of this.plugins){const r=await s.hash(t);if(r===!1)return this.onLimited&&await this.onLimited(t,\"rejected\")===!0?{limited:!1,hash:null,unit:s.rate[1]}:{limited:!0,hash:null,unit:s.rate[1]};if(r===!0)return{limited:!1,hash:null,unit:s.rate[1]};if(r===null){e=!0;continue}else e=!1;if(!r)throw new Error(\"Empty hash returned from rate limiter \"+s.constructor.name);const i=await this.hashFunction(r);if(await this.store.add(i,s.rate[1])>s.rate[0])return this.onLimited&&await this.onLimited(t,\"rate\")===!0?{limited:!1,hash:i,unit:s.rate[1]}:{limited:!0,hash:i,unit:s.rate[1]}}return{limited:e,hash:null,unit:this.plugins[this.plugins.length-1].rate[1]}}constructor(t={}){if(this.plugins=[...t.plugins??[]],this.onLimited=t.onLimited,this.hashFunction=t.hashFunction??l,!this.hashFunction)throw new Error(\"No RateLimiter hash function found. Please set one with the hashFunction option.\");const e=t.IP??t.rates?.IP;e&&this.plugins.push(new L(e));const s=t.IPUA??t.rates?.IPUA;s&&this.plugins.push(new T(s));const r=t.cookie??t.rates?.cookie;if(r&&this.plugins.push(this.cookieLimiter=new p({hashFunction:this.hashFunction,...r})),!this.plugins.length)throw new Error(\"No plugins set for RateLimiter!\");this.plugins.sort((o,n)=>{const h=a.TTLTime(o.rate[1])-a.TTLTime(n.rate[1]);return h==0?o.rate[0]-n.rate[0]:h});const i=this.plugins.reduce((o,n)=>{const h=n.rate[1];h==\"ms\"&&console.warn('RateLimiter: The \"ms\" unit is not reliable due to OS timing issues.');const d=a.TTLTime(h);return Math.max(d,o)},0);this.store=t.store??new k(i,t.maxItems)}}class k{cache;constructor(t,e=1/0){this.cache=new g({ttl:t,max:e,noUpdateTTL:!0})}async clear(){return this.cache.clear()}async add(t,e){const s=this.cache.get(t)??0;return this.set(t,s+1,e)}set(t,e,s){return this.cache.set(t,e,{ttl:a.TTLTime(s)}),e}}const A=new a({rates:{IP:[5,\"h\"]}}),C=w({level:\"info\",format:u.combine(u.timestamp({format:\"YYYY-MM-DD HH:mm:ss\"}),u.simple()),transports:[new m.Console,new m.File({filename:\"Logger.log\"})]});export{C as W,A as l};\n"],"names":["crypto","f","w","u","m"],"mappings":"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","x_google_ignoreList":[0,1,2]}