2 lines
1.5 KiB
JavaScript
2 lines
1.5 KiB
JavaScript
import{T as o}from"./index-DyD9x5ZD.js";const u=/^[a-z0-9-]{1,100}$/,g=/^[1-9]\d*$/,l=/^\d+$/;function p(e){const t=e.trim(),n=[...t].length;return n>=2&&n<=100?t:""}function a(e){const t=Array.isArray(e)?e[0]:e;return typeof t=="string"?t:""}function i(e){if(!g.test(e))return null;const t=Number(e);return Number.isSafeInteger(t)?t:null}function h(e){const t=a(e.type),n=a(e.tag),r=a(e.page),s=l.test(r)?Number(r):0;return{q:p(a(e.q)),course:i(a(e.course)),type:Object.hasOwn(o,t)?t:"",meeting:i(a(e.meeting)),tag:u.test(n)?n:"",page:Number.isSafeInteger(s)&&s>=1?s:1}}function c(e){const t={};return e.q&&(t.q=e.q),e.course!==null&&(t.course=String(e.course)),e.type&&(t.type=e.type),e.meeting!==null&&(t.meeting=String(e.meeting)),e.tag&&(t.tag=e.tag),e.page>1&&(t.page=String(e.page)),t}function S(e,t){return e.q===t.q&&e.course===t.course&&e.type===t.type&&e.meeting===t.meeting&&e.tag===t.tag&&e.page===t.page}function d(e){const t=c(e);return new URLSearchParams(Object.keys(t).sort().map(n=>[n,t[n]])).toString()}function w(e,t){const n=c(t),r=Object.keys(e);return r.length!==Object.keys(n).length?!1:r.every(s=>typeof e[s]=="string"&&e[s]===n[s])}function M(e,t){if(typeof e!="string"||!e)return!1;try{return t(e)==="materials"}catch{return!1}}function m(e){const t=new Map;return{get:n=>t.get(n),set(n,r){for(t.delete(n),t.set(n,r);t.size>e;)t.delete(t.keys().next().value)},clear(){t.clear()},get size(){return t.size}}}const f=m(20);function z(){f.clear()}export{d as a,M as b,z as c,w as i,f as m,p as n,h as r,S as s,c as w};
|