2 lines
1.4 KiB
JavaScript
2 lines
1.4 KiB
JavaScript
import{T as c}from"./index-CtNAsql9.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 f(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(c,t)?t:"",meeting:i(a(e.meeting)),tag:u.test(n)?n:"",page:Number.isSafeInteger(s)&&s>=1?s:1}}function o(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 y(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 h(e){const t=o(e);return new URLSearchParams(Object.keys(t).sort().map(n=>[n,t[n]])).toString()}function S(e,t){const n=o(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 d(e,t){if(typeof e!="string"||!e)return!1;try{return t(e)==="materials"}catch{return!1}}function w(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)},get size(){return t.size}}}export{d as a,w as b,S as i,h as m,p as n,f as r,y as s,o as w};
|