klaim 1.11.98 → 1.11.99
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/deno.json +1 -1
- package/dist/klaim.umd.js +1 -1
- package/package.json +7 -7
package/deno.json
CHANGED
package/dist/klaim.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(h,g){typeof exports=="object"&&typeof module<"u"?g(exports):typeof define=="function"&&define.amd?define(["exports"],g):(h=typeof globalThis<"u"?globalThis:h||self,g(h.klaim={}))})(this,function(h){"use strict";function g(n){return n.replace(/([-_][a-z])/gi,t=>t.toUpperCase().replace("-","").replace("_","")).replace(/(^\w)/,t=>t.toLowerCase())}function N(n){return n.trim().replace(/^\/|\/$/g,"")}const U={limit:5,duration:10},y=new Map;function k(n,t){const e=Date.now(),r=t.duration*1e3;let a=y.get(n);a||(a={timestamps:[]},y.set(n,a));const s=a.timestamps.filter(c=>e-c<r);return s.length>=t.limit?!1:(s.push(e),a.timestamps=s,!0)}function F(n,t){const e=y.get(n);if(!e||e.timestamps.length<t.limit)return 0;const r=Date.now(),a=t.duration*1e3,o=[...e.timestamps].sort((l,f)=>l-f)[0]+a-r;return Math.max(0,o)}const P={duration:5,message:"Request timed out"};async function I(n,t){const{duration:e,message:r}=t;return Promise.race([n,new Promise((a,s)=>{const c=setTimeout(()=>{clearTimeout(c),s(new Error(r))},e*1e3)})])}const D={page:1,pageParam:"page",limit:10,limitParam:"limit"};class b{type;name;url;headers;parent;method;arguments=new Set;schema;pagination;callbacks={before:null,after:null,call:null};cache=!1;retry=!1;rate=!1;timeout=!1;constructor(t,e,r,a={}){this.type=t,this.name=g(e),this.name!==e&&console.warn(`Name "${e}" has been camelCased to "${this.name}"`),this.url=N(r),this.headers=a||{}}before(t){return this.callbacks.before=t,this}after(t){return this.callbacks.after=t,this}onCall(t){return this.callbacks.call=t,this}withCache=(t=20)=>(this.cache=t,this);withRetry=(t=2)=>(this.retry=t,this);withPagination(t={}){return this.pagination={...D,...t},this}withRate=(t={})=>(this.rate={...U,...t},this);withTimeout=(t=P.duration,e=P.message)=>(this.timeout={duration:t,message:e},this)}class p{static _instance;cache;constructor(){this.cache=new Map}static get i(){return p._instance||(p._instance=new p),p._instance}set(t,e,r=0){const a=Date.now()+r;this.cache.set(t,{data:e,expiry:a})}has(t){const e=this.cache.get(t);return e?Date.now()>e.expiry?(this.cache.delete(t),!1):!0:!1}get(t){return this.has(t)?this.cache.get(t).data:null}}function K(n){let r=2166136261;for(let s=0;s<n.length;s++)r^=n.charCodeAt(s),r*=16777619;let a=(r>>>0).toString(16).padStart(8,"0");for(;a.length<32;)r^=a.charCodeAt(a.length%a.length),r*=16777619,a+=(r>>>0).toString(16).padStart(8,"0");return a.substring(0,32)}async function L(n,t,e){const r=`${n.toString()}${JSON.stringify(t)}`,a=K(r);if(p.i.has(a))return p.i.get(a);const c=await(await fetch(n,t)).json();return p.i.set(a,c,e),c}class S{static _callbacks=new Map;static subscribe(t,e){this._callbacks.set(t,e)}static run(t){const e=this._callbacks.get(t);e&&e()}}const E={};function O(n,t){return async(...e)=>{if(t.pagination){const[s=0,c={},o={}]=e;return v(n,t,s,c,o)}const[r={},a={}]=e;return v(n,t,void 0,r,a)}}async function v(n,t,e,r={},a={}){const s=n.split(".");let c;for(let w=0;w<s.length;w++){const A=s[w];if(c=i.i.getApi(A),c)break}if(!t||!c||t.type!=="route"||c.type!=="api")throw new Error(`Invalid path: ${n}.${t.name}`);let o=x(`${c.url}/${t.url}`,t,r);if(t.pagination&&typeof e<"u"){const{pageParam:w="page",limit:A=10,limitParam:V="limit"}=t.pagination,_=new URLSearchParams;_.append(w,String(e)),_.append(V,String(A));const z=o.includes("?")?"&":"?";o=`${o}${z}${_.toString()}`}let l={};a&&t.method!=="GET"&&(l.body=JSON.stringify(a)),l.headers={"Content-Type":"application/json",...c.headers,...t.headers},l.method=t.method;const{beforeRoute:f,beforeApi:u,beforeUrl:R,beforeConfig:d}=j({route:t,api:c,url:o,config:l});o=R,l=d,i.updateElement(u),i.updateElement(f);let m=await M(c,t,o,l);t.schema&&"validate"in t.schema&&(m=await t.schema.validate(m));const{afterRoute:q,afterApi:W,afterData:J}=H({route:t,api:c,response:m,data:m});return i.updateElement(W),i.updateElement(q),S.run(`${c.name}.${t.name}`),J}async function G(n,t,e,r){return n?await L(t,e,r.cache):await(await fetch(t,e)).json()}async function M(n,t,e,r){const a=n.cache||t.cache,s=t.retry||n.retry||0,c=t.timeout||n.timeout;if(t.rate){const u=`${n.name}.${t.name}`;if(!k(u,t.rate)){const d=F(u,t.rate),m=Math.ceil(d/1e3);throw new Error(`Rate limit exceeded for ${u}. Try again in ${m} seconds.`)}}else if(n.rate){const u=`${n.name}`;if(!k(u,n.rate)){const d=F(u,n.rate),m=Math.ceil(d/1e3);throw new Error(`Rate limit exceeded for ${n.name} API. Try again in ${m} seconds.`)}}let o,l=!1,f=0;for(;f<=s&&!l;)try{t.callbacks?.call?t.callbacks.call({}):n.callbacks?.call&&n.callbacks.call({});const u=G(!!a,e,r,n);o=c?await I(u,c):await u,l=!0}catch(u){if(f++,f>s)throw u.message||(u.message=`Failed to fetch ${e} after ${s} attempts`),u}return o}function x(n,t,e){let r=n;return t.arguments.forEach(a=>{if(e[a]===void 0)throw new Error(`Argument ${a} is missing`);r=r.replace(`[${a}]`,e[a])}),r}function j({route:n,api:t,url:e,config:r}){const a=n.callbacks.before?.({route:n,api:t,url:e,config:r});return{beforeRoute:a?.route||n,beforeApi:a?.api||t,beforeUrl:a?.url||e,beforeConfig:a?.config||r}}function H({route:n,api:t,response:e,data:r}){const a=n.callbacks.after?.({route:n,api:t,response:e,data:r});return{afterRoute:a?.route||n,afterApi:a?.api||t,afterResponse:a?.response||e,afterData:a?.data||r}}class i{static _instance;_elements=new Map;_currentParent=null;constructor(){}static get i(){return i._instance||(i._instance=new i),i._instance}registerElement(t){const e=this._currentParent;e&&(t.parent=this.getFullPath(e));const r=this.getElementKey(t);if(this._elements.set(r,t),t.type==="api"||t.type==="group"){let a=E;if(e){const s=this.getFullPath(e).split(".");for(const c of s)a[c]||(a[c]={}),a=a[c]}a[t.name]||(a[t.name]={})}}getCurrentParent(){return this._currentParent}setCurrentParent(t){const e=this._elements.get(t);if(!e||e.type!=="api"&&e.type!=="group")throw new Error(`Element ${t} not found or not a valid parent type`);this._currentParent=e}clearCurrentParent(){this._currentParent=null}registerRoute(t){if(!this._currentParent)throw new Error("No current parent set, use Route only inside Api or Group create callback");t.parent=this.getFullPath(this._currentParent);const e=this.getElementKey(t);this._elements.set(e,t),this.addToKlaimRoute(t)}addToKlaimRoute(t){if(!t.parent)return;let e=E;const r=t.parent.split(".");for(const a of r)e[a]||(e[a]={}),e=e[a];e[t.name]=O(t.parent,t)}getElementKey(t){return t?t.parent?`${t.parent}.${t.name}`:t.name:""}getFullPath(t){if(!t)return"";if(!t.parent)return t.name;const e=[t.name];let r=t;for(;r.parent;){const a=this._elements.get(r.parent);if(!a)break;e.unshift(a.name),r=a}return e.join(".")}getRoute(t,e){return this._elements.get(`${t}.${e}`)}getChildren(t){const e=[];return this._elements.forEach(r=>{r.parent===t&&e.push(r)}),e}static updateElement(t){return i.i._elements.get(i.i.getElementKey(t))||t}getApi(t){const e=this._elements.get(t);if(!e){for(const[r,a]of this._elements.entries())if(a.type==="api"&&r.endsWith(`.${t}`))return a;return}return e.type==="api"?e:this.findApi(e)}findApi(t){if(!t||!t.parent)return;const e=t.parent.split(".");for(let r=e.length;r>=0;r--){const a=e.slice(0,r).join("."),s=this._elements.get(a);if(s?.type==="api")return s}}}class C extends b{static create(t,e,r,a={}){const s=g(t);s!==t&&console.warn(`API name "${t}" has been camelCased to "${s}"`);const c=new C(s,e,a),o=i.i.getCurrentParent();i.i.registerElement(c);const l=o?i.i.getFullPath(o):"",f=l?`${l}.${s}`:s;return i.i.setCurrentParent(f),r(),o?i.i.setCurrentParent(i.i.getFullPath(o)):i.i.clearCurrentParent(),c}constructor(t,e,r={}){super("api",t,e,r)}}class $ extends b{static create(t,e){const r=g(t),a=i.i.getCurrentParent(),s=a?i.i.getFullPath(a):"",c=s?`${s}.${r}`:r,o=new $(r,"");r!==t&&console.warn(`Group name "${t}" has been camelCased to "${r}"`),i.i.registerElement(o);const l=i.i.getCurrentParent();return i.i.setCurrentParent(c),e(),l?i.i.setCurrentParent(i.i.getFullPath(l)):i.i.clearCurrentParent(),o}constructor(t,e,r={}){super("group",t,e,r)}withCache(t=20){return super.withCache(t),i.i.getChildren(i.i.getFullPath(this)).forEach(e=>{e.cache||(e.cache=t)}),this}withRetry(t=2){return super.withRetry(t),i.i.getChildren(i.i.getFullPath(this)).forEach(e=>{e.retry||(e.retry=t)}),this}withTimeout(t=P.duration,e=P.message){return super.withTimeout(t,e),i.i.getChildren(i.i.getFullPath(this)).forEach(r=>{r.timeout||(r.timeout={duration:t,message:e})}),this}before(t){return super.before(t),i.i.getChildren(i.i.getFullPath(this)).forEach(e=>{e.callbacks.before||(e.callbacks.before=t)}),this}after(t){return super.after(t),i.i.getChildren(i.i.getFullPath(this)).forEach(e=>{e.callbacks.after||(e.callbacks.after=t)}),this}onCall(t){return super.onCall(t),i.i.getChildren(i.i.getFullPath(this)).forEach(e=>{e.callbacks.call||(e.callbacks.call=t)}),this}}class T extends b{constructor(t,e,r={},a="GET"){super("route",t,e,r),this.method=a,this.detectArguments()}static createRoute(t,e,r={},a){const s=new T(t,e,r,a);return i.i.registerRoute(s),s}static get(t,e,r={}){return this.createRoute(t,e,r,"GET")}static post(t,e,r={}){return this.createRoute(t,e,r,"POST")}static put(t,e,r={}){return this.createRoute(t,e,r,"PUT")}static delete(t,e,r={}){return this.createRoute(t,e,r,"DELETE")}static patch(t,e,r={}){return this.createRoute(t,e,r,"PATCH")}static options(t,e,r={}){return this.createRoute(t,e,r,"OPTIONS")}detectArguments(){const t=this.url.match(/\[([^\]]+)]/g);t&&t.forEach(e=>{const r=e.replace("[","").replace("]","");this.arguments.add(r)})}validate(t){return this.schema=t,this}}h.Api=C,h.Group=$,h.Hook=S,h.Klaim=E,h.Registry=i,h.Route=T,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function(h,g){typeof exports=="object"&&typeof module<"u"?g(exports):typeof define=="function"&&define.amd?define(["exports"],g):(h=typeof globalThis<"u"?globalThis:h||self,g(h.klaim={}))})(this,(function(h){"use strict";function g(n){return n.replace(/([-_][a-z])/gi,t=>t.toUpperCase().replace("-","").replace("_","")).replace(/(^\w)/,t=>t.toLowerCase())}function N(n){return n.trim().replace(/^\/|\/$/g,"")}const U={limit:5,duration:10},y=new Map;function k(n,t){const e=Date.now(),r=t.duration*1e3;let a=y.get(n);a||(a={timestamps:[]},y.set(n,a));const s=a.timestamps.filter(c=>e-c<r);return s.length>=t.limit?!1:(s.push(e),a.timestamps=s,!0)}function F(n,t){const e=y.get(n);if(!e||e.timestamps.length<t.limit)return 0;const r=Date.now(),a=t.duration*1e3,o=[...e.timestamps].sort((l,f)=>l-f)[0]+a-r;return Math.max(0,o)}const P={duration:5,message:"Request timed out"};async function I(n,t){const{duration:e,message:r}=t;return Promise.race([n,new Promise((a,s)=>{const c=setTimeout(()=>{clearTimeout(c),s(new Error(r))},e*1e3)})])}const D={page:1,pageParam:"page",limit:10,limitParam:"limit"};class b{type;name;url;headers;parent;method;arguments=new Set;schema;pagination;callbacks={before:null,after:null,call:null};cache=!1;retry=!1;rate=!1;timeout=!1;constructor(t,e,r,a={}){this.type=t,this.name=g(e),this.name!==e&&console.warn(`Name "${e}" has been camelCased to "${this.name}"`),this.url=N(r),this.headers=a||{}}before(t){return this.callbacks.before=t,this}after(t){return this.callbacks.after=t,this}onCall(t){return this.callbacks.call=t,this}withCache=(t=20)=>(this.cache=t,this);withRetry=(t=2)=>(this.retry=t,this);withPagination(t={}){return this.pagination={...D,...t},this}withRate=(t={})=>(this.rate={...U,...t},this);withTimeout=(t=P.duration,e=P.message)=>(this.timeout={duration:t,message:e},this)}class p{static _instance;cache;constructor(){this.cache=new Map}static get i(){return p._instance||(p._instance=new p),p._instance}set(t,e,r=0){const a=Date.now()+r;this.cache.set(t,{data:e,expiry:a})}has(t){const e=this.cache.get(t);return e?Date.now()>e.expiry?(this.cache.delete(t),!1):!0:!1}get(t){return this.has(t)?this.cache.get(t).data:null}}function K(n){let r=2166136261;for(let s=0;s<n.length;s++)r^=n.charCodeAt(s),r*=16777619;let a=(r>>>0).toString(16).padStart(8,"0");for(;a.length<32;)r^=a.charCodeAt(a.length%a.length),r*=16777619,a+=(r>>>0).toString(16).padStart(8,"0");return a.substring(0,32)}async function L(n,t,e){const r=`${n.toString()}${JSON.stringify(t)}`,a=K(r);if(p.i.has(a))return p.i.get(a);const c=await(await fetch(n,t)).json();return p.i.set(a,c,e),c}class S{static _callbacks=new Map;static subscribe(t,e){this._callbacks.set(t,e)}static run(t){const e=this._callbacks.get(t);e&&e()}}const E={};function O(n,t){return async(...e)=>{if(t.pagination){const[s=0,c={},o={}]=e;return v(n,t,s,c,o)}const[r={},a={}]=e;return v(n,t,void 0,r,a)}}async function v(n,t,e,r={},a={}){const s=n.split(".");let c;for(let w=0;w<s.length;w++){const A=s[w];if(c=i.i.getApi(A),c)break}if(!t||!c||t.type!=="route"||c.type!=="api")throw new Error(`Invalid path: ${n}.${t.name}`);let o=x(`${c.url}/${t.url}`,t,r);if(t.pagination&&typeof e<"u"){const{pageParam:w="page",limit:A=10,limitParam:V="limit"}=t.pagination,_=new URLSearchParams;_.append(w,String(e)),_.append(V,String(A));const z=o.includes("?")?"&":"?";o=`${o}${z}${_.toString()}`}let l={};a&&t.method!=="GET"&&(l.body=JSON.stringify(a)),l.headers={"Content-Type":"application/json",...c.headers,...t.headers},l.method=t.method;const{beforeRoute:f,beforeApi:u,beforeUrl:R,beforeConfig:d}=j({route:t,api:c,url:o,config:l});o=R,l=d,i.updateElement(u),i.updateElement(f);let m=await M(c,t,o,l);t.schema&&"validate"in t.schema&&(m=await t.schema.validate(m));const{afterRoute:q,afterApi:W,afterData:J}=H({route:t,api:c,response:m,data:m});return i.updateElement(W),i.updateElement(q),S.run(`${c.name}.${t.name}`),J}async function G(n,t,e,r){return n?await L(t,e,r.cache):await(await fetch(t,e)).json()}async function M(n,t,e,r){const a=n.cache||t.cache,s=t.retry||n.retry||0,c=t.timeout||n.timeout;if(t.rate){const u=`${n.name}.${t.name}`;if(!k(u,t.rate)){const d=F(u,t.rate),m=Math.ceil(d/1e3);throw new Error(`Rate limit exceeded for ${u}. Try again in ${m} seconds.`)}}else if(n.rate){const u=`${n.name}`;if(!k(u,n.rate)){const d=F(u,n.rate),m=Math.ceil(d/1e3);throw new Error(`Rate limit exceeded for ${n.name} API. Try again in ${m} seconds.`)}}let o,l=!1,f=0;for(;f<=s&&!l;)try{t.callbacks?.call?t.callbacks.call({}):n.callbacks?.call&&n.callbacks.call({});const u=G(!!a,e,r,n);o=c?await I(u,c):await u,l=!0}catch(u){if(f++,f>s)throw u.message||(u.message=`Failed to fetch ${e} after ${s} attempts`),u}return o}function x(n,t,e){let r=n;return t.arguments.forEach(a=>{if(e[a]===void 0)throw new Error(`Argument ${a} is missing`);r=r.replace(`[${a}]`,e[a])}),r}function j({route:n,api:t,url:e,config:r}){const a=n.callbacks.before?.({route:n,api:t,url:e,config:r});return{beforeRoute:a?.route||n,beforeApi:a?.api||t,beforeUrl:a?.url||e,beforeConfig:a?.config||r}}function H({route:n,api:t,response:e,data:r}){const a=n.callbacks.after?.({route:n,api:t,response:e,data:r});return{afterRoute:a?.route||n,afterApi:a?.api||t,afterResponse:a?.response||e,afterData:a?.data||r}}class i{static _instance;_elements=new Map;_currentParent=null;constructor(){}static get i(){return i._instance||(i._instance=new i),i._instance}registerElement(t){const e=this._currentParent;e&&(t.parent=this.getFullPath(e));const r=this.getElementKey(t);if(this._elements.set(r,t),t.type==="api"||t.type==="group"){let a=E;if(e){const s=this.getFullPath(e).split(".");for(const c of s)a[c]||(a[c]={}),a=a[c]}a[t.name]||(a[t.name]={})}}getCurrentParent(){return this._currentParent}setCurrentParent(t){const e=this._elements.get(t);if(!e||e.type!=="api"&&e.type!=="group")throw new Error(`Element ${t} not found or not a valid parent type`);this._currentParent=e}clearCurrentParent(){this._currentParent=null}registerRoute(t){if(!this._currentParent)throw new Error("No current parent set, use Route only inside Api or Group create callback");t.parent=this.getFullPath(this._currentParent);const e=this.getElementKey(t);this._elements.set(e,t),this.addToKlaimRoute(t)}addToKlaimRoute(t){if(!t.parent)return;let e=E;const r=t.parent.split(".");for(const a of r)e[a]||(e[a]={}),e=e[a];e[t.name]=O(t.parent,t)}getElementKey(t){return t?t.parent?`${t.parent}.${t.name}`:t.name:""}getFullPath(t){if(!t)return"";if(!t.parent)return t.name;const e=[t.name];let r=t;for(;r.parent;){const a=this._elements.get(r.parent);if(!a)break;e.unshift(a.name),r=a}return e.join(".")}getRoute(t,e){return this._elements.get(`${t}.${e}`)}getChildren(t){const e=[];return this._elements.forEach(r=>{r.parent===t&&e.push(r)}),e}static updateElement(t){return i.i._elements.get(i.i.getElementKey(t))||t}getApi(t){const e=this._elements.get(t);if(!e){for(const[r,a]of this._elements.entries())if(a.type==="api"&&r.endsWith(`.${t}`))return a;return}return e.type==="api"?e:this.findApi(e)}findApi(t){if(!t||!t.parent)return;const e=t.parent.split(".");for(let r=e.length;r>=0;r--){const a=e.slice(0,r).join("."),s=this._elements.get(a);if(s?.type==="api")return s}}}class C extends b{static create(t,e,r,a={}){const s=g(t);s!==t&&console.warn(`API name "${t}" has been camelCased to "${s}"`);const c=new C(s,e,a),o=i.i.getCurrentParent();i.i.registerElement(c);const l=o?i.i.getFullPath(o):"",f=l?`${l}.${s}`:s;return i.i.setCurrentParent(f),r(),o?i.i.setCurrentParent(i.i.getFullPath(o)):i.i.clearCurrentParent(),c}constructor(t,e,r={}){super("api",t,e,r)}}class $ extends b{static create(t,e){const r=g(t),a=i.i.getCurrentParent(),s=a?i.i.getFullPath(a):"",c=s?`${s}.${r}`:r,o=new $(r,"");r!==t&&console.warn(`Group name "${t}" has been camelCased to "${r}"`),i.i.registerElement(o);const l=i.i.getCurrentParent();return i.i.setCurrentParent(c),e(),l?i.i.setCurrentParent(i.i.getFullPath(l)):i.i.clearCurrentParent(),o}constructor(t,e,r={}){super("group",t,e,r)}withCache(t=20){return super.withCache(t),i.i.getChildren(i.i.getFullPath(this)).forEach(e=>{e.cache||(e.cache=t)}),this}withRetry(t=2){return super.withRetry(t),i.i.getChildren(i.i.getFullPath(this)).forEach(e=>{e.retry||(e.retry=t)}),this}withTimeout(t=P.duration,e=P.message){return super.withTimeout(t,e),i.i.getChildren(i.i.getFullPath(this)).forEach(r=>{r.timeout||(r.timeout={duration:t,message:e})}),this}before(t){return super.before(t),i.i.getChildren(i.i.getFullPath(this)).forEach(e=>{e.callbacks.before||(e.callbacks.before=t)}),this}after(t){return super.after(t),i.i.getChildren(i.i.getFullPath(this)).forEach(e=>{e.callbacks.after||(e.callbacks.after=t)}),this}onCall(t){return super.onCall(t),i.i.getChildren(i.i.getFullPath(this)).forEach(e=>{e.callbacks.call||(e.callbacks.call=t)}),this}}class T extends b{constructor(t,e,r={},a="GET"){super("route",t,e,r),this.method=a,this.detectArguments()}static createRoute(t,e,r={},a){const s=new T(t,e,r,a);return i.i.registerRoute(s),s}static get(t,e,r={}){return this.createRoute(t,e,r,"GET")}static post(t,e,r={}){return this.createRoute(t,e,r,"POST")}static put(t,e,r={}){return this.createRoute(t,e,r,"PUT")}static delete(t,e,r={}){return this.createRoute(t,e,r,"DELETE")}static patch(t,e,r={}){return this.createRoute(t,e,r,"PATCH")}static options(t,e,r={}){return this.createRoute(t,e,r,"OPTIONS")}detectArguments(){const t=this.url.match(/\[([^\]]+)]/g);t&&t.forEach(e=>{const r=e.replace("[","").replace("]","");this.arguments.add(r)})}validate(t){return this.schema=t,this}}h.Api=C,h.Group=$,h.Hook=S,h.Klaim=E,h.Registry=i,h.Route=T,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "klaim",
|
|
3
|
-
"version": "1.11.
|
|
3
|
+
"version": "1.11.99",
|
|
4
4
|
"author": "antharuu",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -11,21 +11,21 @@
|
|
|
11
11
|
"devDependencies": {
|
|
12
12
|
"@eslint/js": "9.38.0",
|
|
13
13
|
"@stylistic/eslint-plugin": "5.5.0",
|
|
14
|
-
"@types/bun": "^1.3.
|
|
14
|
+
"@types/bun": "^1.3.1",
|
|
15
15
|
"@types/eslint__js": "9.14.0",
|
|
16
16
|
"@types/node": "^24.9.1",
|
|
17
|
-
"@vitest/coverage-v8": "^4.0.
|
|
18
|
-
"@vitest/ui": "^4.0.
|
|
17
|
+
"@vitest/coverage-v8": "^4.0.2",
|
|
18
|
+
"@vitest/ui": "^4.0.2",
|
|
19
19
|
"dotenv-cli": "^10.0.0",
|
|
20
20
|
"eslint": "9.38.0",
|
|
21
|
-
"eslint-plugin-jsdoc": "61.1.
|
|
21
|
+
"eslint-plugin-jsdoc": "61.1.7",
|
|
22
22
|
"eslint-plugin-simple-import-sort": "12.1.1",
|
|
23
23
|
"jsdom": "^27.0.1",
|
|
24
24
|
"release-it": "^19.0.5",
|
|
25
25
|
"typescript": "5.9.3",
|
|
26
26
|
"typescript-eslint": "8.46.2",
|
|
27
|
-
"vite": "^7.1.
|
|
28
|
-
"vitest": "^4.0.
|
|
27
|
+
"vite": "^7.1.12",
|
|
28
|
+
"vitest": "^4.0.2",
|
|
29
29
|
"yup": "^1.7.1"
|
|
30
30
|
},
|
|
31
31
|
"bugs": {
|