k99 0.6.0-alpha.8 → 0.6.0-alpha.9

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/browser.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
package/browser.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
package/browser.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
package/browser.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
package/browser.min.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
package/browser.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
package/cli/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
@@ -106,7 +106,7 @@ async function exec({
106
106
  cfg.dependencies = {};
107
107
  }
108
108
  if (!cfg.dependencies.k99) {
109
- cfg.dependencies.k99 = '^0.6.0-alpha.8';
109
+ cfg.dependencies.k99 = '^0.6.0-alpha.9';
110
110
  }
111
111
  await fsPromise__namespace.writeFile('package.json', JSON.stringify(cfg, null, 2));
112
112
  }
package/cli/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
package/cli.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  /*!
3
- * k99 v0.6.0-alpha.8
3
+ * k99 v0.6.0-alpha.9
4
4
  * (c) 2019-2023 猛火Fierflame
5
5
  * @license MIT
6
6
  */
package/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
@@ -373,6 +373,7 @@ function createWrite() {
373
373
  abortReject = reject;
374
374
  }
375
375
  });
376
+ abortedPromise.then(null, () => {});
376
377
  function abort(e) {
377
378
  if (abortException) {
378
379
  return false;
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
@@ -377,6 +377,7 @@
377
377
  abortReject = reject;
378
378
  }
379
379
  });
380
+ abortedPromise.then(null, () => {});
380
381
  function abort(e) {
381
382
  if (abortException) {
382
383
  return false;
package/index.min.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
6
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).k99={})}(this,(function(e){"use strict";let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let n="0123456789ABCDEF";function r(e,r){if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(e instanceof ArrayBuffer)return new Uint8Array(e);if("string"!=typeof e)return null;switch(r){default:case"utf8":return function(e){let t=[],n=0;for(;n<e.length;n++){const r=e.codePointAt(n);if("number"!=typeof r)break;r>=65536&&n++,r<128?t.push(r):r<2048?(t.push(192|31&r>>6),t.push(128|63&r)):r<65536?(t.push(224|15&r>>12),t.push(128|63&r>>6),t.push(128|63&r)):(t.push(240|7&r>>18),t.push(128|63&r>>12),t.push(128|63&r>>6),t.push(128|63&r))}return new Uint8Array(t)}(e);case"base64":return function(e,n=t){const r=Math.floor(Math.log2(n.length));e=e.replace(/[=\s]+/g,"");let o=new Uint8Array(e.length*r>>3),i=0,s=0,u=0;for(let t of e)for(s=s<<r|n.indexOf(t),u+=r;u>=8;)u-=8,o[i++]=s>>u&255,s&=(1<<u)-1;return o}(e);case"hex":return function(e){let t=[];for(let r=0;r<e.length;r+=2)t.push(16*n.indexOf(e[r])+n.indexOf(e[r+1]||"0"));return new Uint8Array(t)}(e)}}function o(e,t){if(1===e.length)return new Uint8Array(e[0]);const n=new Uint8Array(t);let r=0;for(const t of e)n.set(t,r),r+=t.byteLength;return n}function i(e,t){if(!t){const t=o(e,e.reduce(((e,t)=>e+t.byteLength),0));return e.length=0,t}let n=0;const r=[];for(let o;o=e.shift();){if(n+o.byteLength>t){const i=o.slice(0,t-n);r.push(i),n+=i.byteLength,e.unshift(o.slice(i.byteLength));break}if(r.push(o),n+=o.byteLength,n===t)break}return o(r,n)}async function*s(e){if(e){if("string"==typeof e)return yield r(e);if("object"==typeof e){if(e instanceof ArrayBuffer)return yield r(e);if(ArrayBuffer.isView(e))return yield r(e);if(Symbol.asyncIterator in e||Symbol.iterator in e)for await(const t of e)yield*s(t)}}}async function u(e,t){const n=[];let r=0,[o,u]=await t();for await(const c of s(e))if(n.push(c),r+=c.byteLength,o<=0)r=0,u(i(n)),[o,u]=await t();else for(r>=o&&(r-=o,u(i(n,o)),[o,u]=await t());r&&(o<=0||o<=r);){if(o<=0){r=0,u(i(n)),[o,u]=await t();break}r-=o,u(i(n,o)),[o,u]=await t()}for(r&&(u(i(n)),[o,u]=await t()),u(null);;)[o,u]=await t(),u(null)}function c(e){if(!e)return()=>Promise.resolve(null);const t=[];let n=null;return u(e,(function(){return new Promise((e=>{const r=t.shift();if(r)return e(r);n=t=>{n=null,e(t)}}))})),function(e=0){return new Promise((r=>{e=Math.max(e,0),n?n([e,r]):t.push([e,r])}))}}const a=/^(?:(?:https?:)?\/\/(?:(?:[^/?#]*@)?)(?:\d+|(?:\[[0-9a-f:]+\])|(?:\d{1,3}\.){3}\d{1,3}|(?:(?:[a-z0-9\u0100-\uffff]+-*)+\.)+[a-z]+)(?::\d+)?)?((?:\/?[^?#]*)?)((?:\?[^#]*)?)(?:#.*)?$/i;function f(e){const t=e.indexOf("=");return t<0?[decodeURIComponent(e),""]:[decodeURIComponent(e.substring(0,t)),decodeURIComponent(e.substring(t+1))]}function l(e){const t={};for(const n of e.split("&").filter(Boolean)){const[e,r]=f(n);t[e]=e in t?[t[e],r].flat():[r]}return t}function h({method:e,path:t,signal:n,body:r,headers:o={}}){const[i,s]=function(e){const t=a.exec(e);if(!t)return["/",""];let[,n,r]=t;const o=[];for(const e of n.replace(/^[\\/]+/,"").replace(/[\\/]+/g,"/").split("/"))"."!==e&&(".."!==e?o.push(e):o.pop());return[`/${o.join("/")}`,r]}(t);return{method:e,url:`${i}${s}`,headers:o,pathname:i,search:s,signal:n||(new AbortController).signal,query:l(s.substring(1)),read:"function"==typeof r?r:c(r)}}function p(e){return e instanceof ArrayBuffer||!!ArrayBuffer.isView(e)}function d(){let e=!1,t=[],n=null;function o(n){if(e)return null;e=!0,n&&n(!1);for(let e;e=t.shift();){const[,t]=e;t(!1)}return null}let i=Promise.resolve((()=>{}));const s={next(){const e=i.then((e=>{if(e)return u?(e(!1),a):(e(!0),Promise.race([a,new Promise((e=>{const r=t.shift();if(r)return e(r);n=t=>{n=null,e(t)}})).then((e=>{const[t,n]=e;if(!u&&void 0!==t)return e;n(!u)}))]))}));return i=e.then((e=>{if(!e)return null;const[,t]=e;return t}),(()=>o())),e.then((e=>{if(!e)return{done:!0,value:void 0};const[t,n]=e;return{done:!1,value:t}}))},throw:e=>(i=i.then(o),i.then((()=>Promise.reject(e)))),return:e=>(i=i.then(o),i.then((()=>e))),[Symbol.asyncIterator]:()=>s};let u,c,a=new Promise(((e,t)=>{u?t(u):c=t}));function f(r,o){if(e)return o(!1);n?n([r,o]):t.push([r,o])}let l=Promise.resolve(!0);async function h(t){if(e)return Promise.resolve();if("string"==typeof t)return new Promise((e=>f(r(t),e)));if("object"!=typeof t)return!1;if(p(t))return new Promise((e=>f(r(t),e)));if(!(Symbol.asyncIterator in t)&&!(Symbol.iterator in t))return!1;for await(const n of t){if(e)return Promise.resolve();if(n&&!await h(n))return!1}return!0}let d=!1;return[{write(e){const t=l.then((t=>{if(void 0!==t)return!e||h(e)}));return l=t,t.then((e=>Boolean(e)))},end(){d=!0;const r=l.then((r=>new Promise((o=>{if(void 0===r||e)return o();n?n([void 0,()=>o()]):t.push([void 0,()=>o()])}))));return l=r,r},get ended(){return e||d}},s,function(e){return!u&&(u=e||new DOMException("The user aborted a request."),c&&c(u),!0)}]}function y(e){return e.map((({name:e,value:t,expire:n,domain:r,path:o,secure:i,httpOnly:s})=>e&&[`${encodeURI(e)}=${encodeURI(t||"")}`,n&&`Expires=${n}`,r&&`Domain=${encodeURI(r)}`,o&&`Path=${encodeURI(o)}`,i&&"Secure",s&&"HttpOnly"].filter(Boolean).join("; "))).filter(Boolean)}let g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let m="0123456789ABCDEF";function b(e,t){if(!e)return null;switch(t){case"utf8":return function(e){let t=[],n=0;for(;n<e.length;){let r=0|e[n++];r>=240?(r=(7&r)<<18,r|=(63&e[n++])<<12,r|=(63&e[n++])<<6,r|=63&e[n++]):r>=224?(r=(15&r)<<12,r|=(63&e[n++])<<6,r|=63&e[n++]):r>=192&&(r=(31&r)<<6,r|=63&e[n++]),t.push(r)}return t.map((e=>String.fromCharCode(e))).join("")}(e);case"base64":return function(e,t=g){const n=Math.floor(Math.log2(t.length)),r=(1<<n)-1;let o=new Array(Math.floor(((e.byteLength<<3)+n-1)/n)),i=0,s=0,u=0;for(let c of e)for(s=s<<8|c,u+=8;u>=n;)u-=n,o[i++]=t[s>>u&r],s&=(1<<u)-1;for(u&&(o[i++]=t[s<<n-u&r]);o.length%4;)o.push("=");return o.join("")}(e);case"hex":return function(e){let t=new Array(2*e.byteLength);for(let n of e)t.push(n>>4&4369,4369&n);return t.map((e=>m[e])).join("")}(e)}return e}function w(e){let t=Promise.resolve(!1);return function(n=0,r){const o=t.then((t=>t?null:e(n)));return t=o.then((e=>!e)),o.then((e=>b(e,r)))}}const v=/^(\[[^\]]+\]|^:):(\d+)$/;function O({method:e,url:t,pathname:n,search:r,query:o,read:i,headers:s,signal:u},c,a,f){const l=new Map,h=s.host||"",p=v.exec(h),[d,g]=p?[p[1],p[2]]:[h,""],m=function(e){let t={};for(const n of e.replace(/\s/g,"").split(";")){const e=n.split("=");t[decodeURIComponent(e.shift())]=decodeURIComponent(e.join("="))}return t}(s.cookie||""),b=[];let O=200,P={},j=!1,A=!1;const S=f?.root;let $=null,x={};const E={environment:a,parent:f,get error(){return $},get root(){return S||this},signal:u,request:c,service(e,...t){if(e.rootOnly&&S)return S.service(e,...t);let n=l.get(e);if(!n){let t;n=Object.create(E,{destroying:{value:!1,configurable:!0,enumerable:!0},currentService:{value:e,configurable:!0,enumerable:!0},state:{configurable:!0,enumerable:!0,get:()=>t,set(e){t=e}}}),l.set(e,n)}return e(n,...t)},method:e,url:t,pathname:n,search:r,query:o,get params(){return x},headers:Object.freeze({...s}),host:h,hostname:d,port:g,requestType:s["content-type"]||"",referer:s.referer||"",userAgent:s["user-agent"]||"",accept:(s.accept||"").split(/,\s*/).filter(Boolean),acceptLanguage:(s["accept-language"]||"").split(/,\s*/).filter(Boolean),cookies:m,read:w(i),get destroyed(){return A},get headersSent(){return j},get status(){return O},set status(e){j||(O=e)},get location(){return P.location||""},set location(e){j||(P.location=e)},get responseType(){return P["content-type"]||""},set responseType(e){j||(P["content-type"]=e)},getCookie:e=>function*(e,t){const n=e;for(const e of n)t&&e.name!==t||(yield{...e})}(b,e),setCookie(e,t,{expire:n,domain:r,path:o,secure:i,httpOnly:s}={}){j||(b.push({name:e,value:t,expire:n,domain:r,path:o,secure:i,httpOnly:s}),P["set-cookie"]=y(b))},clearCookie(e,t){j||(!function(e,t,n,r){let o="Fri, 31 Dec 1999 16:00:00 GMT";if("string"==typeof n){if(!n)return;const{domain:t,path:i,secure:s,httpOnly:u}=!0!==r&&r||{};e.push({name:n,value:"delete",expire:o,domain:t,path:i,secure:s,httpOnly:u})}else{const{domain:i,path:s,secure:u,httpOnly:c}=n||{};if(e.length=0,r)for(let n in t)e.push({name:n,value:"delete",expire:o,domain:i,path:s,secure:u,httpOnly:c})}}(b,m,e,t),P["set-cookie"]=y(b))},hasHeader:e=>e in P,getHeaderNames:()=>Object.keys(P),getHeaders:()=>({...P}),getHeader:e=>P[e],setHeader(e,t){j||(void 0===t?delete P[e]:P[e]=t)}};return{context:E,setParams:e=>{x=e},destroy:e=>{A||(A=!0,j=!0,e&&($=e),function(e,t){let n=Promise.resolve();for(const[r,o]of[...e.entries()])n=n.then((()=>r(Object.create(o,{destroying:{value:!0,configurable:!0,enumerable:!0}})))).catch((e=>t?.error?.(e)))}(l,a))},sendHeaders:()=>!j&&(j=!0,!0)}}function P(e,t){return"bigint"==typeof t?String(t):t}async function j(e,t){if(e.headersSent)return;const n=await t(e);if(!e.finished){if(function(e){return!(!e||"object"!=typeof e||!Array.isArray(e)&&(p(e)||Symbol.asyncIterator in e||Symbol.iterator in e))}(n)){if(e.headersSent)return;return e.responseType="application/json",void await e.write(JSON.stringify(n,P))}return e.write(n)}}function A(e,t,n,r,o){const i=(s=e.signal,new Promise(((e,t)=>{if(s.aborted)return t(s.reason);s.addEventListener("abort",(()=>t(s.reason)),{once:!0})})));var s;const{context:u,setParams:c,destroy:a,sendHeaders:f}=O(e,(e=>A(h(e),t,n,r,u)),n,o);function l(){return Promise.race([i,Promise.resolve().then((()=>t(u,c)))]).then((e=>new Promise((t=>{if(!e)return a(),t(null);const[n,r,o]=d();function s(){if(!f())return;const{status:e}=u;t({...r,get status(){return e},get finished(){return n.ended},headers:Object.freeze(u.getHeaders()),[Symbol.asyncIterator]:()=>r})}i.catch((e=>o(e)));const c={get finished(){return n.ended},write:e=>(s(),n.write(e))},l=Object.create(u,Object.getOwnPropertyDescriptors(c));Promise.race([i,j(l,e)]).then((()=>{s(),a(),n.end()}),(e=>{u.status=500,s(),o(e),a(e||!0),n.end()}))}))),(e=>(a(e||!0),Promise.reject(e))))}return r?r(u,l):l()}async function S(){}async function $(){return!1}async function x(){return null}async function E(){return!1}function k(e){return"string"==typeof e?e:e instanceof Error?e.stack||`${e.name}:${e.message}`:String(e)}const T=/(?:^|\/)(debug|error|warn|info)\/?$|^\/?(debug|error|warn|info)(?:\/|$)/;async function R(e,t){switch(e){case"debug":console.debug(t);break;case"info":console.info(t);break;case"warn":console.warn(t);break;case"error":console.error(t)}console.group(`log @ ${e}`);const n=T.exec(e);switch(n?n[1]||n[2]:""){case"debug":console.debug(t);break;case"info":console.info(t);break;case"warn":console.warn(t);break;case"error":console.error(t);break;default:console.log(t)}return console.groupEnd(),!0}async function U(){return""}async function B(){}function I({read:e=U,write:t=R,clear:n=B}={}){function r(e,n,r){return t(e,function(e,{tags:t,indent:n,date:r}={}){let o="";return t&&(Array.isArray(t)||(t=[t]),o=t.map((e=>`[${e}]`)).join(" ")),r&&(o=`${(new Date).toISOString()} ${o}`),e.includes("\n")?("number"==typeof n&&(n=Math.floor(n),isFinite(n)&&n>0&&(n=Array(n).fill(" ").join(""))),n&&"string"==typeof n||(n=" "),e=(e=`${o}\n${e}`).split("\n").join(`\n${n}`)):`${o} ${e}`}(n,r))}return{read:e,write:r,clear:n,debug:async(e,t)=>r("debug",e,t),info:async(e,t)=>r("info",e,t),warn:async(e,t)=>r("warn",k(e),t),error:async(e,t)=>r("error",k(e),t)}}function C(e){const t=function({read:e=x,write:t=E,delete:n=E,stat:o=x}={}){return{read:async function(t,n){const r=await e(t);return r&&b(r,n)},write:async function(e,o,i){if(void 0===o)return n(e);const s=r(o,i);return s?t(e,s):n(e)},delete:function(e){return n(e)},stat:async function(e){return o(e)}}}(e?.asset),n=function({read:e=S,write:t=$}={}){return{read:e,write:t}}(e?.setting),o=I(e?.log);return{asset:t,setting:n,log:o,error:e?.error||(e=>{o.error(e)})}}function L(e,t){const n=C(t);return r=>A(r,e,n,t?.runner)}async function D(e,t,n,r,o){if(!(e instanceof M))return r(o),e;if(e.disabled)return null;const i=await async function(e,t,n,r){if(!e.size)return!0;n(r);for(const n of e){if(t.destroyed)return!1;const e=await n(Object.create(t,{params:{value:{...r}}}));if(!1===e)return!1;if("function"==typeof e)return e}return!0}(e.guards,n,r,o);if(!i)return null;if("function"==typeof i)return i;if(n.destroyed)return null;for await(const[i,s,u]of e.find(n.method,t)){if(n.destroyed)return null;const e=await D(i,u,n,r,{...o,...s});if(e)return e}return null}function H(e){try{return decodeURIComponent(e)}catch{return e}}class M{disabled=!1;static make(e){return async(t,n)=>{const r=e.flat(),o=t.pathname.split("/").filter(Boolean).map(H);for(const e of r){const r=await D(e,o,t,n,{});if(r)return r}return null}}static create(e){return Object.create(M.prototype,{find:{configurable:!0,value:e,writable:!0}})}guards=new Set}const z=/^:([a-zA-Z][a-zA-Z0-9]*)(?:\((.+)\))?([ius]+)?([?+*]?)$/;function _(e){const t=z.exec(e);if(!t)return e;const[,n,r=".*",o,i]=t;if(!r)return{name:n,pattern:new RegExp("^.*$",o),optional:"?"===i||"*"===i,many:"+"===i||"*"===i};let s=0,u=0;const c=["^(?:"];for(;s<r.length;){const t=r[s++];if(c.push(t),"\\"!==t)if(")"!==t)if("["!==t){if("("===t&&(u++,"?"===r[s]&&(s+=2,":"!==r[s-1])))return e}else for(;s<r.length;){const e=r[s++];if(c.push(e),"]"===e)break;"\\"===e&&c.push(r[s++])}else{if(0===u)return e;u--}else c.push(r[s++])}return u?e:(c.push(")$"),{name:n,pattern:new RegExp(c.join(""),o),optional:"?"===i||"*"===i,many:"+"===i||"*"===i})}function q(e,t){const n=[];for(const t of e.split("/"))t&&!/^\.+$/.test(t)&&n.push(_(t));if(n.length)return e=>function(e,t,n){const r={};for(let n=0;n<e.length;n++){const o=e[n],i=t[n];if(o!==i){if("string"==typeof o)return;if(!i)return o.optional?[r,[]]:void 0;if(!o.pattern.test(i))return;r[o.name]=i}}if(!n)return[r,t.slice(e.length)];if(t.length<=e.length)return[r,[]];const o=e[e.length-1];if("string"!=typeof o&&(o.many||!(t.length>e.length))){for(let n=e.length;n<t.length;n++)if(!o.pattern.test(t[n]))return;return r[o.name]=t.slice(e.length-1),[r,[]]}}(n,e,t)}function G(e,t,n,r){const o={match:q(n||"",!0),methods:new Set(t),handler:r};e.push(o);let i=!1;return()=>{if(i)return;i=!0;const t=e.indexOf(o);t<0||e.splice(t,1)}}function F(e,t,n){if(!n.length)return n=>G(e,t,"",n);const[r,o]=n;if(r&&"object"==typeof r){const o=String.raw(r,...n.slice(1));return n=>G(e,t,o,n)}const i="string"==typeof r?r:"",s=[r,o].find((e=>"function"==typeof e));return s?G(e,t,i,s):n=>G(e,t,i,n)}const N=new Set(["GET","POST","PUT","DELETE","HEAD","OPTIONS"]);function Z(e){return N.has(e)}function V(e,t,n){const r=n instanceof M?n:"function"==typeof n?M.create(n):new J;return e.push({match:q(t,!1),router:r}),r}class J extends M{#e=[];route(...e){const[t]=e;if(t&&"object"==typeof t&&!(t instanceof M)){const n=String.raw(t,...e.slice(1));return e=>V(this.#e,n,e)}const n="string"==typeof t?t:"",r="string"==typeof t?e[1]:t;return V(this.#e,n,r)}*find(e,t){for(const n of Array.from(this.#e)){if(!n.router&&!n.methods.has(e))continue;const{match:r}=n;if(!r){!n.router&&t.length||(yield[n.router||n.handler,{},t]);continue}if(!t.length)continue;const o=r(t);o&&(yield[n.router||n.handler,...o])}}verb(e,t,n){const r=function(e){return e?"string"==typeof e?[e.toUpperCase()].filter(Z):Array.from(e).map((e=>"string"==typeof e&&e.toUpperCase())).filter(Z):["GET","POST","PUT","DELETE"]}(e);return r.length?F(this.#e,r,[t,n]):()=>{}}match(...e){return F(this.#e,["GET","POST","PUT","DELETE"],e)}get(...e){return F(this.#e,["GET"],e)}post(...e){return F(this.#e,["POST"],e)}put(...e){return F(this.#e,["PUT"],e)}delete(...e){return F(this.#e,["DELETE"],e)}head(...e){return F(this.#e,["HEAD"],e)}options(...e){return F(this.#e,["OPTIONS"],e)}}const K="[a-zA-Z][a-zA-Z0-9_-]*",Q=`${K}(?:.${K})*`,W=new RegExp(`^/(${K})/((?:@${Q}/)?${Q})/(.+)$`);class X{static make(e,{router:t,setting:n,asset:r,log:o,runner:i}={}){const s=[];for(const t of Object.values(e))s.push(t.router);return t instanceof M&&s.push(t),L(M.make(s),{setting:n,asset:X.bindAsset(r,e),log:o,runner:i})}static bindAsset(e,t,n="plugins"){if(!t)return e;const r=e?.read;return"function"!=typeof r?e:{...e,read:async e=>{const o=await r(e);if(null!==o)return o;if(!t)return null;const i=W.exec(e);if(!i)return null;const[,s,u,c]=i;if(s!==n)return null;if(!(u in t))return null;const a=t[u];return a?a.readAsset(c):null}}}constructor(e,t,{author:n,license:r}={}){this.name=e,this.version="string"==typeof t?t:"",this.author="string"==typeof n?n:"",this.license="string"==typeof r?r:""}initRouter(){const{router:e}=this;return this.__initRouterPromise?this.__initRouterPromise:this.__initRouterPromise=Promise.resolve(this._initRouter(e)).then((()=>e))}get router(){const e=this._createRouter();return Reflect.defineProperty(this,"router",{value:e,configurable:!0}),this.initRouter(),e}get disabled(){return this.router.disabled}set disabled(e){this.router.disabled=e}}e.ApiRouter=J,e.Plugin=X,e.Router=M,e.createEnvironment=C,e.main=A,e.make=L,e.merge=function(...e){return t=>async function(e,t){for(const n of t){if(e.headersSent)break;const t=await n(e);if(e.finished)break;if("boolean"==typeof t)return t;if(t)return t}}(t,e.flat())},e.run=function(e,t,n){return A(e,t,C(n),n?.runner)},e.service=function(e,t,n){const r=function(n,...o){return n.currentService!==r?n.service(r,...o):n.destroying?"function"==typeof t?t(n):void 0:e(n,...o)},{rootOnly:o}="object"==typeof t&&t||"object"==typeof n&&n||{};return Object.assign(r,{rootOnly:Boolean(o)}),r},e.stateService=function(e,t,n,r){const o=function(r){if(r.currentService!==o)return r.service(o);if(!r.destroying){let{state:t}=r;return t||(t=e(r)||{},r.state=t),"function"==typeof n&&n(t,r),t}return"function"==typeof t?t(r.state,r):void 0},{rootOnly:i}="object"==typeof t&&t||"object"==typeof n&&n||"object"==typeof r&&r||{};return Object.assign(o,{rootOnly:Boolean(i)}),o},e.storeService=function(e,t,n){const r=function(n,...o){if(n.currentService!==r)return n.service(r,...o);if(!n.destroying){if(!o.length)return n.state;const[e]=o;return n.state=e,"function"==typeof t&&t(e,n),e}return"function"==typeof e?e(n.state,n):void 0},{rootOnly:o}="object"==typeof e&&e||"object"==typeof t&&t||"object"==typeof n&&n||{};return Object.assign(r,{rootOnly:Boolean(o)}),r}}));
6
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).k99={})}(this,(function(e){"use strict";let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let n="0123456789ABCDEF";function r(e,r){if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(e instanceof ArrayBuffer)return new Uint8Array(e);if("string"!=typeof e)return null;switch(r){default:case"utf8":return function(e){let t=[],n=0;for(;n<e.length;n++){const r=e.codePointAt(n);if("number"!=typeof r)break;r>=65536&&n++,r<128?t.push(r):r<2048?(t.push(192|31&r>>6),t.push(128|63&r)):r<65536?(t.push(224|15&r>>12),t.push(128|63&r>>6),t.push(128|63&r)):(t.push(240|7&r>>18),t.push(128|63&r>>12),t.push(128|63&r>>6),t.push(128|63&r))}return new Uint8Array(t)}(e);case"base64":return function(e,n=t){const r=Math.floor(Math.log2(n.length));e=e.replace(/[=\s]+/g,"");let o=new Uint8Array(e.length*r>>3),i=0,s=0,u=0;for(let t of e)for(s=s<<r|n.indexOf(t),u+=r;u>=8;)u-=8,o[i++]=s>>u&255,s&=(1<<u)-1;return o}(e);case"hex":return function(e){let t=[];for(let r=0;r<e.length;r+=2)t.push(16*n.indexOf(e[r])+n.indexOf(e[r+1]||"0"));return new Uint8Array(t)}(e)}}function o(e,t){if(1===e.length)return new Uint8Array(e[0]);const n=new Uint8Array(t);let r=0;for(const t of e)n.set(t,r),r+=t.byteLength;return n}function i(e,t){if(!t){const t=o(e,e.reduce(((e,t)=>e+t.byteLength),0));return e.length=0,t}let n=0;const r=[];for(let o;o=e.shift();){if(n+o.byteLength>t){const i=o.slice(0,t-n);r.push(i),n+=i.byteLength,e.unshift(o.slice(i.byteLength));break}if(r.push(o),n+=o.byteLength,n===t)break}return o(r,n)}async function*s(e){if(e){if("string"==typeof e)return yield r(e);if("object"==typeof e){if(e instanceof ArrayBuffer)return yield r(e);if(ArrayBuffer.isView(e))return yield r(e);if(Symbol.asyncIterator in e||Symbol.iterator in e)for await(const t of e)yield*s(t)}}}async function u(e,t){const n=[];let r=0,[o,u]=await t();for await(const c of s(e))if(n.push(c),r+=c.byteLength,o<=0)r=0,u(i(n)),[o,u]=await t();else for(r>=o&&(r-=o,u(i(n,o)),[o,u]=await t());r&&(o<=0||o<=r);){if(o<=0){r=0,u(i(n)),[o,u]=await t();break}r-=o,u(i(n,o)),[o,u]=await t()}for(r&&(u(i(n)),[o,u]=await t()),u(null);;)[o,u]=await t(),u(null)}function c(e){if(!e)return()=>Promise.resolve(null);const t=[];let n=null;return u(e,(function(){return new Promise((e=>{const r=t.shift();if(r)return e(r);n=t=>{n=null,e(t)}}))})),function(e=0){return new Promise((r=>{e=Math.max(e,0),n?n([e,r]):t.push([e,r])}))}}const a=/^(?:(?:https?:)?\/\/(?:(?:[^/?#]*@)?)(?:\d+|(?:\[[0-9a-f:]+\])|(?:\d{1,3}\.){3}\d{1,3}|(?:(?:[a-z0-9\u0100-\uffff]+-*)+\.)+[a-z]+)(?::\d+)?)?((?:\/?[^?#]*)?)((?:\?[^#]*)?)(?:#.*)?$/i;function f(e){const t=e.indexOf("=");return t<0?[decodeURIComponent(e),""]:[decodeURIComponent(e.substring(0,t)),decodeURIComponent(e.substring(t+1))]}function l(e){const t={};for(const n of e.split("&").filter(Boolean)){const[e,r]=f(n);t[e]=e in t?[t[e],r].flat():[r]}return t}function h({method:e,path:t,signal:n,body:r,headers:o={}}){const[i,s]=function(e){const t=a.exec(e);if(!t)return["/",""];let[,n,r]=t;const o=[];for(const e of n.replace(/^[\\/]+/,"").replace(/[\\/]+/g,"/").split("/"))"."!==e&&(".."!==e?o.push(e):o.pop());return[`/${o.join("/")}`,r]}(t);return{method:e,url:`${i}${s}`,headers:o,pathname:i,search:s,signal:n||(new AbortController).signal,query:l(s.substring(1)),read:"function"==typeof r?r:c(r)}}function p(e){return e instanceof ArrayBuffer||!!ArrayBuffer.isView(e)}function d(){let e=!1,t=[],n=null;function o(n){if(e)return null;e=!0,n&&n(!1);for(let e;e=t.shift();){const[,t]=e;t(!1)}return null}let i=Promise.resolve((()=>{}));const s={next(){const e=i.then((e=>{if(e)return u?(e(!1),a):(e(!0),Promise.race([a,new Promise((e=>{const r=t.shift();if(r)return e(r);n=t=>{n=null,e(t)}})).then((e=>{const[t,n]=e;if(!u&&void 0!==t)return e;n(!u)}))]))}));return i=e.then((e=>{if(!e)return null;const[,t]=e;return t}),(()=>o())),e.then((e=>{if(!e)return{done:!0,value:void 0};const[t,n]=e;return{done:!1,value:t}}))},throw:e=>(i=i.then(o),i.then((()=>Promise.reject(e)))),return:e=>(i=i.then(o),i.then((()=>e))),[Symbol.asyncIterator]:()=>s};let u,c,a=new Promise(((e,t)=>{u?t(u):c=t}));function f(r,o){if(e)return o(!1);n?n([r,o]):t.push([r,o])}a.then(null,(()=>{}));let l=Promise.resolve(!0);async function h(t){if(e)return Promise.resolve();if("string"==typeof t)return new Promise((e=>f(r(t),e)));if("object"!=typeof t)return!1;if(p(t))return new Promise((e=>f(r(t),e)));if(!(Symbol.asyncIterator in t)&&!(Symbol.iterator in t))return!1;for await(const n of t){if(e)return Promise.resolve();if(n&&!await h(n))return!1}return!0}let d=!1;return[{write(e){const t=l.then((t=>{if(void 0!==t)return!e||h(e)}));return l=t,t.then((e=>Boolean(e)))},end(){d=!0;const r=l.then((r=>new Promise((o=>{if(void 0===r||e)return o();n?n([void 0,()=>o()]):t.push([void 0,()=>o()])}))));return l=r,r},get ended(){return e||d}},s,function(e){return!u&&(u=e||new DOMException("The user aborted a request."),c&&c(u),!0)}]}function y(e){return e.map((({name:e,value:t,expire:n,domain:r,path:o,secure:i,httpOnly:s})=>e&&[`${encodeURI(e)}=${encodeURI(t||"")}`,n&&`Expires=${n}`,r&&`Domain=${encodeURI(r)}`,o&&`Path=${encodeURI(o)}`,i&&"Secure",s&&"HttpOnly"].filter(Boolean).join("; "))).filter(Boolean)}let g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let m="0123456789ABCDEF";function b(e,t){if(!e)return null;switch(t){case"utf8":return function(e){let t=[],n=0;for(;n<e.length;){let r=0|e[n++];r>=240?(r=(7&r)<<18,r|=(63&e[n++])<<12,r|=(63&e[n++])<<6,r|=63&e[n++]):r>=224?(r=(15&r)<<12,r|=(63&e[n++])<<6,r|=63&e[n++]):r>=192&&(r=(31&r)<<6,r|=63&e[n++]),t.push(r)}return t.map((e=>String.fromCharCode(e))).join("")}(e);case"base64":return function(e,t=g){const n=Math.floor(Math.log2(t.length)),r=(1<<n)-1;let o=new Array(Math.floor(((e.byteLength<<3)+n-1)/n)),i=0,s=0,u=0;for(let c of e)for(s=s<<8|c,u+=8;u>=n;)u-=n,o[i++]=t[s>>u&r],s&=(1<<u)-1;for(u&&(o[i++]=t[s<<n-u&r]);o.length%4;)o.push("=");return o.join("")}(e);case"hex":return function(e){let t=new Array(2*e.byteLength);for(let n of e)t.push(n>>4&4369,4369&n);return t.map((e=>m[e])).join("")}(e)}return e}function w(e){let t=Promise.resolve(!1);return function(n=0,r){const o=t.then((t=>t?null:e(n)));return t=o.then((e=>!e)),o.then((e=>b(e,r)))}}const v=/^(\[[^\]]+\]|^:):(\d+)$/;function O({method:e,url:t,pathname:n,search:r,query:o,read:i,headers:s,signal:u},c,a,f){const l=new Map,h=s.host||"",p=v.exec(h),[d,g]=p?[p[1],p[2]]:[h,""],m=function(e){let t={};for(const n of e.replace(/\s/g,"").split(";")){const e=n.split("=");t[decodeURIComponent(e.shift())]=decodeURIComponent(e.join("="))}return t}(s.cookie||""),b=[];let O=200,P={},j=!1,A=!1;const S=f?.root;let $=null,x={};const E={environment:a,parent:f,get error(){return $},get root(){return S||this},signal:u,request:c,service(e,...t){if(e.rootOnly&&S)return S.service(e,...t);let n=l.get(e);if(!n){let t;n=Object.create(E,{destroying:{value:!1,configurable:!0,enumerable:!0},currentService:{value:e,configurable:!0,enumerable:!0},state:{configurable:!0,enumerable:!0,get:()=>t,set(e){t=e}}}),l.set(e,n)}return e(n,...t)},method:e,url:t,pathname:n,search:r,query:o,get params(){return x},headers:Object.freeze({...s}),host:h,hostname:d,port:g,requestType:s["content-type"]||"",referer:s.referer||"",userAgent:s["user-agent"]||"",accept:(s.accept||"").split(/,\s*/).filter(Boolean),acceptLanguage:(s["accept-language"]||"").split(/,\s*/).filter(Boolean),cookies:m,read:w(i),get destroyed(){return A},get headersSent(){return j},get status(){return O},set status(e){j||(O=e)},get location(){return P.location||""},set location(e){j||(P.location=e)},get responseType(){return P["content-type"]||""},set responseType(e){j||(P["content-type"]=e)},getCookie:e=>function*(e,t){const n=e;for(const e of n)t&&e.name!==t||(yield{...e})}(b,e),setCookie(e,t,{expire:n,domain:r,path:o,secure:i,httpOnly:s}={}){j||(b.push({name:e,value:t,expire:n,domain:r,path:o,secure:i,httpOnly:s}),P["set-cookie"]=y(b))},clearCookie(e,t){j||(!function(e,t,n,r){let o="Fri, 31 Dec 1999 16:00:00 GMT";if("string"==typeof n){if(!n)return;const{domain:t,path:i,secure:s,httpOnly:u}=!0!==r&&r||{};e.push({name:n,value:"delete",expire:o,domain:t,path:i,secure:s,httpOnly:u})}else{const{domain:i,path:s,secure:u,httpOnly:c}=n||{};if(e.length=0,r)for(let n in t)e.push({name:n,value:"delete",expire:o,domain:i,path:s,secure:u,httpOnly:c})}}(b,m,e,t),P["set-cookie"]=y(b))},hasHeader:e=>e in P,getHeaderNames:()=>Object.keys(P),getHeaders:()=>({...P}),getHeader:e=>P[e],setHeader(e,t){j||(void 0===t?delete P[e]:P[e]=t)}};return{context:E,setParams:e=>{x=e},destroy:e=>{A||(A=!0,j=!0,e&&($=e),function(e,t){let n=Promise.resolve();for(const[r,o]of[...e.entries()])n=n.then((()=>r(Object.create(o,{destroying:{value:!0,configurable:!0,enumerable:!0}})))).catch((e=>t?.error?.(e)))}(l,a))},sendHeaders:()=>!j&&(j=!0,!0)}}function P(e,t){return"bigint"==typeof t?String(t):t}async function j(e,t){if(e.headersSent)return;const n=await t(e);if(!e.finished){if(function(e){return!(!e||"object"!=typeof e||!Array.isArray(e)&&(p(e)||Symbol.asyncIterator in e||Symbol.iterator in e))}(n)){if(e.headersSent)return;return e.responseType="application/json",void await e.write(JSON.stringify(n,P))}return e.write(n)}}function A(e,t,n,r,o){const i=(s=e.signal,new Promise(((e,t)=>{if(s.aborted)return t(s.reason);s.addEventListener("abort",(()=>t(s.reason)),{once:!0})})));var s;const{context:u,setParams:c,destroy:a,sendHeaders:f}=O(e,(e=>A(h(e),t,n,r,u)),n,o);function l(){return Promise.race([i,Promise.resolve().then((()=>t(u,c)))]).then((e=>new Promise((t=>{if(!e)return a(),t(null);const[n,r,o]=d();function s(){if(!f())return;const{status:e}=u;t({...r,get status(){return e},get finished(){return n.ended},headers:Object.freeze(u.getHeaders()),[Symbol.asyncIterator]:()=>r})}i.catch((e=>o(e)));const c={get finished(){return n.ended},write:e=>(s(),n.write(e))},l=Object.create(u,Object.getOwnPropertyDescriptors(c));Promise.race([i,j(l,e)]).then((()=>{s(),a(),n.end()}),(e=>{u.status=500,s(),o(e),a(e||!0),n.end()}))}))),(e=>(a(e||!0),Promise.reject(e))))}return r?r(u,l):l()}async function S(){}async function $(){return!1}async function x(){return null}async function E(){return!1}function k(e){return"string"==typeof e?e:e instanceof Error?e.stack||`${e.name}:${e.message}`:String(e)}const T=/(?:^|\/)(debug|error|warn|info)\/?$|^\/?(debug|error|warn|info)(?:\/|$)/;async function R(e,t){switch(e){case"debug":console.debug(t);break;case"info":console.info(t);break;case"warn":console.warn(t);break;case"error":console.error(t)}console.group(`log @ ${e}`);const n=T.exec(e);switch(n?n[1]||n[2]:""){case"debug":console.debug(t);break;case"info":console.info(t);break;case"warn":console.warn(t);break;case"error":console.error(t);break;default:console.log(t)}return console.groupEnd(),!0}async function U(){return""}async function B(){}function I({read:e=U,write:t=R,clear:n=B}={}){function r(e,n,r){return t(e,function(e,{tags:t,indent:n,date:r}={}){let o="";return t&&(Array.isArray(t)||(t=[t]),o=t.map((e=>`[${e}]`)).join(" ")),r&&(o=`${(new Date).toISOString()} ${o}`),e.includes("\n")?("number"==typeof n&&(n=Math.floor(n),isFinite(n)&&n>0&&(n=Array(n).fill(" ").join(""))),n&&"string"==typeof n||(n=" "),e=(e=`${o}\n${e}`).split("\n").join(`\n${n}`)):`${o} ${e}`}(n,r))}return{read:e,write:r,clear:n,debug:async(e,t)=>r("debug",e,t),info:async(e,t)=>r("info",e,t),warn:async(e,t)=>r("warn",k(e),t),error:async(e,t)=>r("error",k(e),t)}}function C(e){const t=function({read:e=x,write:t=E,delete:n=E,stat:o=x}={}){return{read:async function(t,n){const r=await e(t);return r&&b(r,n)},write:async function(e,o,i){if(void 0===o)return n(e);const s=r(o,i);return s?t(e,s):n(e)},delete:function(e){return n(e)},stat:async function(e){return o(e)}}}(e?.asset),n=function({read:e=S,write:t=$}={}){return{read:e,write:t}}(e?.setting),o=I(e?.log);return{asset:t,setting:n,log:o,error:e?.error||(e=>{o.error(e)})}}function L(e,t){const n=C(t);return r=>A(r,e,n,t?.runner)}async function D(e,t,n,r,o){if(!(e instanceof M))return r(o),e;if(e.disabled)return null;const i=await async function(e,t,n,r){if(!e.size)return!0;n(r);for(const n of e){if(t.destroyed)return!1;const e=await n(Object.create(t,{params:{value:{...r}}}));if(!1===e)return!1;if("function"==typeof e)return e}return!0}(e.guards,n,r,o);if(!i)return null;if("function"==typeof i)return i;if(n.destroyed)return null;for await(const[i,s,u]of e.find(n.method,t)){if(n.destroyed)return null;const e=await D(i,u,n,r,{...o,...s});if(e)return e}return null}function H(e){try{return decodeURIComponent(e)}catch{return e}}class M{disabled=!1;static make(e){return async(t,n)=>{const r=e.flat(),o=t.pathname.split("/").filter(Boolean).map(H);for(const e of r){const r=await D(e,o,t,n,{});if(r)return r}return null}}static create(e){return Object.create(M.prototype,{find:{configurable:!0,value:e,writable:!0}})}guards=new Set}const z=/^:([a-zA-Z][a-zA-Z0-9]*)(?:\((.+)\))?([ius]+)?([?+*]?)$/;function _(e){const t=z.exec(e);if(!t)return e;const[,n,r=".*",o,i]=t;if(!r)return{name:n,pattern:new RegExp("^.*$",o),optional:"?"===i||"*"===i,many:"+"===i||"*"===i};let s=0,u=0;const c=["^(?:"];for(;s<r.length;){const t=r[s++];if(c.push(t),"\\"!==t)if(")"!==t)if("["!==t){if("("===t&&(u++,"?"===r[s]&&(s+=2,":"!==r[s-1])))return e}else for(;s<r.length;){const e=r[s++];if(c.push(e),"]"===e)break;"\\"===e&&c.push(r[s++])}else{if(0===u)return e;u--}else c.push(r[s++])}return u?e:(c.push(")$"),{name:n,pattern:new RegExp(c.join(""),o),optional:"?"===i||"*"===i,many:"+"===i||"*"===i})}function q(e,t){const n=[];for(const t of e.split("/"))t&&!/^\.+$/.test(t)&&n.push(_(t));if(n.length)return e=>function(e,t,n){const r={};for(let n=0;n<e.length;n++){const o=e[n],i=t[n];if(o!==i){if("string"==typeof o)return;if(!i)return o.optional?[r,[]]:void 0;if(!o.pattern.test(i))return;r[o.name]=i}}if(!n)return[r,t.slice(e.length)];if(t.length<=e.length)return[r,[]];const o=e[e.length-1];if("string"!=typeof o&&(o.many||!(t.length>e.length))){for(let n=e.length;n<t.length;n++)if(!o.pattern.test(t[n]))return;return r[o.name]=t.slice(e.length-1),[r,[]]}}(n,e,t)}function G(e,t,n,r){const o={match:q(n||"",!0),methods:new Set(t),handler:r};e.push(o);let i=!1;return()=>{if(i)return;i=!0;const t=e.indexOf(o);t<0||e.splice(t,1)}}function F(e,t,n){if(!n.length)return n=>G(e,t,"",n);const[r,o]=n;if(r&&"object"==typeof r){const o=String.raw(r,...n.slice(1));return n=>G(e,t,o,n)}const i="string"==typeof r?r:"",s=[r,o].find((e=>"function"==typeof e));return s?G(e,t,i,s):n=>G(e,t,i,n)}const N=new Set(["GET","POST","PUT","DELETE","HEAD","OPTIONS"]);function Z(e){return N.has(e)}function V(e,t,n){const r=n instanceof M?n:"function"==typeof n?M.create(n):new J;return e.push({match:q(t,!1),router:r}),r}class J extends M{#e=[];route(...e){const[t]=e;if(t&&"object"==typeof t&&!(t instanceof M)){const n=String.raw(t,...e.slice(1));return e=>V(this.#e,n,e)}const n="string"==typeof t?t:"",r="string"==typeof t?e[1]:t;return V(this.#e,n,r)}*find(e,t){for(const n of Array.from(this.#e)){if(!n.router&&!n.methods.has(e))continue;const{match:r}=n;if(!r){!n.router&&t.length||(yield[n.router||n.handler,{},t]);continue}if(!t.length)continue;const o=r(t);o&&(yield[n.router||n.handler,...o])}}verb(e,t,n){const r=function(e){return e?"string"==typeof e?[e.toUpperCase()].filter(Z):Array.from(e).map((e=>"string"==typeof e&&e.toUpperCase())).filter(Z):["GET","POST","PUT","DELETE"]}(e);return r.length?F(this.#e,r,[t,n]):()=>{}}match(...e){return F(this.#e,["GET","POST","PUT","DELETE"],e)}get(...e){return F(this.#e,["GET"],e)}post(...e){return F(this.#e,["POST"],e)}put(...e){return F(this.#e,["PUT"],e)}delete(...e){return F(this.#e,["DELETE"],e)}head(...e){return F(this.#e,["HEAD"],e)}options(...e){return F(this.#e,["OPTIONS"],e)}}const K="[a-zA-Z][a-zA-Z0-9_-]*",Q=`${K}(?:.${K})*`,W=new RegExp(`^/(${K})/((?:@${Q}/)?${Q})/(.+)$`);class X{static make(e,{router:t,setting:n,asset:r,log:o,runner:i}={}){const s=[];for(const t of Object.values(e))s.push(t.router);return t instanceof M&&s.push(t),L(M.make(s),{setting:n,asset:X.bindAsset(r,e),log:o,runner:i})}static bindAsset(e,t,n="plugins"){if(!t)return e;const r=e?.read;return"function"!=typeof r?e:{...e,read:async e=>{const o=await r(e);if(null!==o)return o;if(!t)return null;const i=W.exec(e);if(!i)return null;const[,s,u,c]=i;if(s!==n)return null;if(!(u in t))return null;const a=t[u];return a?a.readAsset(c):null}}}constructor(e,t,{author:n,license:r}={}){this.name=e,this.version="string"==typeof t?t:"",this.author="string"==typeof n?n:"",this.license="string"==typeof r?r:""}initRouter(){const{router:e}=this;return this.__initRouterPromise?this.__initRouterPromise:this.__initRouterPromise=Promise.resolve(this._initRouter(e)).then((()=>e))}get router(){const e=this._createRouter();return Reflect.defineProperty(this,"router",{value:e,configurable:!0}),this.initRouter(),e}get disabled(){return this.router.disabled}set disabled(e){this.router.disabled=e}}e.ApiRouter=J,e.Plugin=X,e.Router=M,e.createEnvironment=C,e.main=A,e.make=L,e.merge=function(...e){return t=>async function(e,t){for(const n of t){if(e.headersSent)break;const t=await n(e);if(e.finished)break;if("boolean"==typeof t)return t;if(t)return t}}(t,e.flat())},e.run=function(e,t,n){return A(e,t,C(n),n?.runner)},e.service=function(e,t,n){const r=function(n,...o){return n.currentService!==r?n.service(r,...o):n.destroying?"function"==typeof t?t(n):void 0:e(n,...o)},{rootOnly:o}="object"==typeof t&&t||"object"==typeof n&&n||{};return Object.assign(r,{rootOnly:Boolean(o)}),r},e.stateService=function(e,t,n,r){const o=function(r){if(r.currentService!==o)return r.service(o);if(!r.destroying){let{state:t}=r;return t||(t=e(r)||{},r.state=t),"function"==typeof n&&n(t,r),t}return"function"==typeof t?t(r.state,r):void 0},{rootOnly:i}="object"==typeof t&&t||"object"==typeof n&&n||"object"==typeof r&&r||{};return Object.assign(o,{rootOnly:Boolean(i)}),o},e.storeService=function(e,t,n){const r=function(n,...o){if(n.currentService!==r)return n.service(r,...o);if(!n.destroying){if(!o.length)return n.state;const[e]=o;return n.state=e,"function"==typeof t&&t(e,n),e}return"function"==typeof e?e(n.state,n):void 0},{rootOnly:o}="object"==typeof e&&e||"object"==typeof t&&t||"object"==typeof n&&n||{};return Object.assign(r,{rootOnly:Boolean(o)}),r}}));
package/index.min.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
6
- let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let t="0123456789ABCDEF";function n(n,r){if(ArrayBuffer.isView(n))return new Uint8Array(n.buffer,n.byteOffset,n.byteLength);if(n instanceof ArrayBuffer)return new Uint8Array(n);if("string"!=typeof n)return null;switch(r){default:case"utf8":return function(e){let t=[],n=0;for(;n<e.length;n++){const r=e.codePointAt(n);if("number"!=typeof r)break;r>=65536&&n++,r<128?t.push(r):r<2048?(t.push(192|31&r>>6),t.push(128|63&r)):r<65536?(t.push(224|15&r>>12),t.push(128|63&r>>6),t.push(128|63&r)):(t.push(240|7&r>>18),t.push(128|63&r>>12),t.push(128|63&r>>6),t.push(128|63&r))}return new Uint8Array(t)}(n);case"base64":return function(t,n=e){const r=Math.floor(Math.log2(n.length));t=t.replace(/[=\s]+/g,"");let o=new Uint8Array(t.length*r>>3),i=0,s=0,u=0;for(let e of t)for(s=s<<r|n.indexOf(e),u+=r;u>=8;)u-=8,o[i++]=s>>u&255,s&=(1<<u)-1;return o}(n);case"hex":return function(e){let n=[];for(let r=0;r<e.length;r+=2)n.push(16*t.indexOf(e[r])+t.indexOf(e[r+1]||"0"));return new Uint8Array(n)}(n)}}function r(e,t){if(1===e.length)return new Uint8Array(e[0]);const n=new Uint8Array(t);let r=0;for(const t of e)n.set(t,r),r+=t.byteLength;return n}function o(e,t){if(!t){const t=r(e,e.reduce(((e,t)=>e+t.byteLength),0));return e.length=0,t}let n=0;const o=[];for(let r;r=e.shift();){if(n+r.byteLength>t){const i=r.slice(0,t-n);o.push(i),n+=i.byteLength,e.unshift(r.slice(i.byteLength));break}if(o.push(r),n+=r.byteLength,n===t)break}return r(o,n)}async function*i(e){if(e){if("string"==typeof e)return yield n(e);if("object"==typeof e){if(e instanceof ArrayBuffer)return yield n(e);if(ArrayBuffer.isView(e))return yield n(e);if(Symbol.asyncIterator in e||Symbol.iterator in e)for await(const t of e)yield*i(t)}}}async function s(e,t){const n=[];let r=0,[s,u]=await t();for await(const c of i(e))if(n.push(c),r+=c.byteLength,s<=0)r=0,u(o(n)),[s,u]=await t();else for(r>=s&&(r-=s,u(o(n,s)),[s,u]=await t());r&&(s<=0||s<=r);){if(s<=0){r=0,u(o(n)),[s,u]=await t();break}r-=s,u(o(n,s)),[s,u]=await t()}for(r&&(u(o(n)),[s,u]=await t()),u(null);;)[s,u]=await t(),u(null)}function u(e){if(!e)return()=>Promise.resolve(null);const t=[];let n=null;return s(e,(function(){return new Promise((e=>{const r=t.shift();if(r)return e(r);n=t=>{n=null,e(t)}}))})),function(e=0){return new Promise((r=>{e=Math.max(e,0),n?n([e,r]):t.push([e,r])}))}}const c=/^(?:(?:https?:)?\/\/(?:(?:[^/?#]*@)?)(?:\d+|(?:\[[0-9a-f:]+\])|(?:\d{1,3}\.){3}\d{1,3}|(?:(?:[a-z0-9\u0100-\uffff]+-*)+\.)+[a-z]+)(?::\d+)?)?((?:\/?[^?#]*)?)((?:\?[^#]*)?)(?:#.*)?$/i;function a(e){const t=e.indexOf("=");return t<0?[decodeURIComponent(e),""]:[decodeURIComponent(e.substring(0,t)),decodeURIComponent(e.substring(t+1))]}function f(e){const t={};for(const n of e.split("&").filter(Boolean)){const[e,r]=a(n);t[e]=e in t?[t[e],r].flat():[r]}return t}function l({method:e,path:t,signal:n,body:r,headers:o={}}){const[i,s]=function(e){const t=c.exec(e);if(!t)return["/",""];let[,n,r]=t;const o=[];for(const e of n.replace(/^[\\/]+/,"").replace(/[\\/]+/g,"/").split("/"))"."!==e&&(".."!==e?o.push(e):o.pop());return[`/${o.join("/")}`,r]}(t);return{method:e,url:`${i}${s}`,headers:o,pathname:i,search:s,signal:n||(new AbortController).signal,query:f(s.substring(1)),read:"function"==typeof r?r:u(r)}}function h(e){return e instanceof ArrayBuffer||!!ArrayBuffer.isView(e)}function p(){let e=!1,t=[],r=null;function o(n){if(e)return null;e=!0,n&&n(!1);for(let e;e=t.shift();){const[,t]=e;t(!1)}return null}let i=Promise.resolve((()=>{}));const s={next(){const e=i.then((e=>{if(e)return u?(e(!1),a):(e(!0),Promise.race([a,new Promise((e=>{const n=t.shift();if(n)return e(n);r=t=>{r=null,e(t)}})).then((e=>{const[t,n]=e;if(!u&&void 0!==t)return e;n(!u)}))]))}));return i=e.then((e=>{if(!e)return null;const[,t]=e;return t}),(()=>o())),e.then((e=>{if(!e)return{done:!0,value:void 0};const[t,n]=e;return{done:!1,value:t}}))},throw:e=>(i=i.then(o),i.then((()=>Promise.reject(e)))),return:e=>(i=i.then(o),i.then((()=>e))),[Symbol.asyncIterator]:()=>s};let u,c,a=new Promise(((e,t)=>{u?t(u):c=t}));function f(n,o){if(e)return o(!1);r?r([n,o]):t.push([n,o])}let l=Promise.resolve(!0);async function p(t){if(e)return Promise.resolve();if("string"==typeof t)return new Promise((e=>f(n(t),e)));if("object"!=typeof t)return!1;if(h(t))return new Promise((e=>f(n(t),e)));if(!(Symbol.asyncIterator in t)&&!(Symbol.iterator in t))return!1;for await(const n of t){if(e)return Promise.resolve();if(n&&!await p(n))return!1}return!0}let d=!1;return[{write(e){const t=l.then((t=>{if(void 0!==t)return!e||p(e)}));return l=t,t.then((e=>Boolean(e)))},end(){d=!0;const n=l.then((n=>new Promise((o=>{if(void 0===n||e)return o();r?r([void 0,()=>o()]):t.push([void 0,()=>o()])}))));return l=n,n},get ended(){return e||d}},s,function(e){return!u&&(u=e||new DOMException("The user aborted a request."),c&&c(u),!0)}]}function d(e){return e.map((({name:e,value:t,expire:n,domain:r,path:o,secure:i,httpOnly:s})=>e&&[`${encodeURI(e)}=${encodeURI(t||"")}`,n&&`Expires=${n}`,r&&`Domain=${encodeURI(r)}`,o&&`Path=${encodeURI(o)}`,i&&"Secure",s&&"HttpOnly"].filter(Boolean).join("; "))).filter(Boolean)}let y="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let g="0123456789ABCDEF";function m(e,t){if(!e)return null;switch(t){case"utf8":return function(e){let t=[],n=0;for(;n<e.length;){let r=0|e[n++];r>=240?(r=(7&r)<<18,r|=(63&e[n++])<<12,r|=(63&e[n++])<<6,r|=63&e[n++]):r>=224?(r=(15&r)<<12,r|=(63&e[n++])<<6,r|=63&e[n++]):r>=192&&(r=(31&r)<<6,r|=63&e[n++]),t.push(r)}return t.map((e=>String.fromCharCode(e))).join("")}(e);case"base64":return function(e,t=y){const n=Math.floor(Math.log2(t.length)),r=(1<<n)-1;let o=new Array(Math.floor(((e.byteLength<<3)+n-1)/n)),i=0,s=0,u=0;for(let c of e)for(s=s<<8|c,u+=8;u>=n;)u-=n,o[i++]=t[s>>u&r],s&=(1<<u)-1;for(u&&(o[i++]=t[s<<n-u&r]);o.length%4;)o.push("=");return o.join("")}(e);case"hex":return function(e){let t=new Array(2*e.byteLength);for(let n of e)t.push(n>>4&4369,4369&n);return t.map((e=>g[e])).join("")}(e)}return e}function b(e){let t=Promise.resolve(!1);return function(n=0,r){const o=t.then((t=>t?null:e(n)));return t=o.then((e=>!e)),o.then((e=>m(e,r)))}}const w=/^(\[[^\]]+\]|^:):(\d+)$/;function v({method:e,url:t,pathname:n,search:r,query:o,read:i,headers:s,signal:u},c,a,f){const l=new Map,h=s.host||"",p=w.exec(h),[y,g]=p?[p[1],p[2]]:[h,""],m=function(e){let t={};for(const n of e.replace(/\s/g,"").split(";")){const e=n.split("=");t[decodeURIComponent(e.shift())]=decodeURIComponent(e.join("="))}return t}(s.cookie||""),v=[];let O=200,P={},j=!1,A=!1;const S=f?.root;let $=null,x={};const E={environment:a,parent:f,get error(){return $},get root(){return S||this},signal:u,request:c,service(e,...t){if(e.rootOnly&&S)return S.service(e,...t);let n=l.get(e);if(!n){let t;n=Object.create(E,{destroying:{value:!1,configurable:!0,enumerable:!0},currentService:{value:e,configurable:!0,enumerable:!0},state:{configurable:!0,enumerable:!0,get:()=>t,set(e){t=e}}}),l.set(e,n)}return e(n,...t)},method:e,url:t,pathname:n,search:r,query:o,get params(){return x},headers:Object.freeze({...s}),host:h,hostname:y,port:g,requestType:s["content-type"]||"",referer:s.referer||"",userAgent:s["user-agent"]||"",accept:(s.accept||"").split(/,\s*/).filter(Boolean),acceptLanguage:(s["accept-language"]||"").split(/,\s*/).filter(Boolean),cookies:m,read:b(i),get destroyed(){return A},get headersSent(){return j},get status(){return O},set status(e){j||(O=e)},get location(){return P.location||""},set location(e){j||(P.location=e)},get responseType(){return P["content-type"]||""},set responseType(e){j||(P["content-type"]=e)},getCookie:e=>function*(e,t){const n=e;for(const e of n)t&&e.name!==t||(yield{...e})}(v,e),setCookie(e,t,{expire:n,domain:r,path:o,secure:i,httpOnly:s}={}){j||(v.push({name:e,value:t,expire:n,domain:r,path:o,secure:i,httpOnly:s}),P["set-cookie"]=d(v))},clearCookie(e,t){j||(!function(e,t,n,r){let o="Fri, 31 Dec 1999 16:00:00 GMT";if("string"==typeof n){if(!n)return;const{domain:t,path:i,secure:s,httpOnly:u}=!0!==r&&r||{};e.push({name:n,value:"delete",expire:o,domain:t,path:i,secure:s,httpOnly:u})}else{const{domain:i,path:s,secure:u,httpOnly:c}=n||{};if(e.length=0,r)for(let n in t)e.push({name:n,value:"delete",expire:o,domain:i,path:s,secure:u,httpOnly:c})}}(v,m,e,t),P["set-cookie"]=d(v))},hasHeader:e=>e in P,getHeaderNames:()=>Object.keys(P),getHeaders:()=>({...P}),getHeader:e=>P[e],setHeader(e,t){j||(void 0===t?delete P[e]:P[e]=t)}};return{context:E,setParams:e=>{x=e},destroy:e=>{A||(A=!0,j=!0,e&&($=e),function(e,t){let n=Promise.resolve();for(const[r,o]of[...e.entries()])n=n.then((()=>r(Object.create(o,{destroying:{value:!0,configurable:!0,enumerable:!0}})))).catch((e=>t?.error?.(e)))}(l,a))},sendHeaders:()=>!j&&(j=!0,!0)}}function O(e,t){return"bigint"==typeof t?String(t):t}async function P(e,t){if(e.headersSent)return;const n=await t(e);if(!e.finished){if(function(e){return!(!e||"object"!=typeof e||!Array.isArray(e)&&(h(e)||Symbol.asyncIterator in e||Symbol.iterator in e))}(n)){if(e.headersSent)return;return e.responseType="application/json",void await e.write(JSON.stringify(n,O))}return e.write(n)}}function j(e,t,n,r,o){const i=(s=e.signal,new Promise(((e,t)=>{if(s.aborted)return t(s.reason);s.addEventListener("abort",(()=>t(s.reason)),{once:!0})})));var s;const{context:u,setParams:c,destroy:a,sendHeaders:f}=v(e,(e=>j(l(e),t,n,r,u)),n,o);function h(){return Promise.race([i,Promise.resolve().then((()=>t(u,c)))]).then((e=>new Promise((t=>{if(!e)return a(),t(null);const[n,r,o]=p();function s(){if(!f())return;const{status:e}=u;t({...r,get status(){return e},get finished(){return n.ended},headers:Object.freeze(u.getHeaders()),[Symbol.asyncIterator]:()=>r})}i.catch((e=>o(e)));const c={get finished(){return n.ended},write:e=>(s(),n.write(e))},l=Object.create(u,Object.getOwnPropertyDescriptors(c));Promise.race([i,P(l,e)]).then((()=>{s(),a(),n.end()}),(e=>{u.status=500,s(),o(e),a(e||!0),n.end()}))}))),(e=>(a(e||!0),Promise.reject(e))))}return r?r(u,h):h()}async function A(){}async function S(){return!1}async function $(){return null}async function x(){return!1}function E(e){return"string"==typeof e?e:e instanceof Error?e.stack||`${e.name}:${e.message}`:String(e)}const k=/(?:^|\/)(debug|error|warn|info)\/?$|^\/?(debug|error|warn|info)(?:\/|$)/;async function T(e,t){switch(e){case"debug":console.debug(t);break;case"info":console.info(t);break;case"warn":console.warn(t);break;case"error":console.error(t)}console.group(`log @ ${e}`);const n=k.exec(e);switch(n?n[1]||n[2]:""){case"debug":console.debug(t);break;case"info":console.info(t);break;case"warn":console.warn(t);break;case"error":console.error(t);break;default:console.log(t)}return console.groupEnd(),!0}async function U(){return""}async function R(){}function B({read:e=U,write:t=T,clear:n=R}={}){function r(e,n,r){return t(e,function(e,{tags:t,indent:n,date:r}={}){let o="";return t&&(Array.isArray(t)||(t=[t]),o=t.map((e=>`[${e}]`)).join(" ")),r&&(o=`${(new Date).toISOString()} ${o}`),e.includes("\n")?("number"==typeof n&&(n=Math.floor(n),isFinite(n)&&n>0&&(n=Array(n).fill(" ").join(""))),n&&"string"==typeof n||(n=" "),e=(e=`${o}\n${e}`).split("\n").join(`\n${n}`)):`${o} ${e}`}(n,r))}return{read:e,write:r,clear:n,debug:async(e,t)=>r("debug",e,t),info:async(e,t)=>r("info",e,t),warn:async(e,t)=>r("warn",E(e),t),error:async(e,t)=>r("error",E(e),t)}}function I(e){const t=function({read:e=$,write:t=x,delete:r=x,stat:o=$}={}){return{read:async function(t,n){const r=await e(t);return r&&m(r,n)},write:async function(e,o,i){if(void 0===o)return r(e);const s=n(o,i);return s?t(e,s):r(e)},delete:function(e){return r(e)},stat:async function(e){return o(e)}}}(e?.asset),r=function({read:e=A,write:t=S}={}){return{read:e,write:t}}(e?.setting),o=B(e?.log);return{asset:t,setting:r,log:o,error:e?.error||(e=>{o.error(e)})}}function C(e,t,n){return j(e,t,I(n),n?.runner)}function L(e,t){const n=I(t);return r=>j(r,e,n,t?.runner)}function D(...e){return t=>async function(e,t){for(const n of t){if(e.headersSent)break;const t=await n(e);if(e.finished)break;if("boolean"==typeof t)return t;if(t)return t}}(t,e.flat())}function H(e,t,n){const r=function(n,...o){return n.currentService!==r?n.service(r,...o):n.destroying?"function"==typeof t?t(n):void 0:e(n,...o)},{rootOnly:o}="object"==typeof t&&t||"object"==typeof n&&n||{};return Object.assign(r,{rootOnly:Boolean(o)}),r}function M(e,t,n,r){const o=function(r){if(r.currentService!==o)return r.service(o);if(!r.destroying){let{state:t}=r;return t||(t=e(r)||{},r.state=t),"function"==typeof n&&n(t,r),t}return"function"==typeof t?t(r.state,r):void 0},{rootOnly:i}="object"==typeof t&&t||"object"==typeof n&&n||"object"==typeof r&&r||{};return Object.assign(o,{rootOnly:Boolean(i)}),o}function z(e,t,n){const r=function(n,...o){if(n.currentService!==r)return n.service(r,...o);if(!n.destroying){if(!o.length)return n.state;const[e]=o;return n.state=e,"function"==typeof t&&t(e,n),e}return"function"==typeof e?e(n.state,n):void 0},{rootOnly:o}="object"==typeof e&&e||"object"==typeof t&&t||"object"==typeof n&&n||{};return Object.assign(r,{rootOnly:Boolean(o)}),r}async function _(e,t,n,r,o){if(!(e instanceof G))return r(o),e;if(e.disabled)return null;const i=await async function(e,t,n,r){if(!e.size)return!0;n(r);for(const n of e){if(t.destroyed)return!1;const e=await n(Object.create(t,{params:{value:{...r}}}));if(!1===e)return!1;if("function"==typeof e)return e}return!0}(e.guards,n,r,o);if(!i)return null;if("function"==typeof i)return i;if(n.destroyed)return null;for await(const[i,s,u]of e.find(n.method,t)){if(n.destroyed)return null;const e=await _(i,u,n,r,{...o,...s});if(e)return e}return null}function q(e){try{return decodeURIComponent(e)}catch{return e}}class G{disabled=!1;static make(e){return async(t,n)=>{const r=e.flat(),o=t.pathname.split("/").filter(Boolean).map(q);for(const e of r){const r=await _(e,o,t,n,{});if(r)return r}return null}}static create(e){return Object.create(G.prototype,{find:{configurable:!0,value:e,writable:!0}})}guards=new Set}const F=/^:([a-zA-Z][a-zA-Z0-9]*)(?:\((.+)\))?([ius]+)?([?+*]?)$/;function N(e){const t=F.exec(e);if(!t)return e;const[,n,r=".*",o,i]=t;if(!r)return{name:n,pattern:new RegExp("^.*$",o),optional:"?"===i||"*"===i,many:"+"===i||"*"===i};let s=0,u=0;const c=["^(?:"];for(;s<r.length;){const t=r[s++];if(c.push(t),"\\"!==t)if(")"!==t)if("["!==t){if("("===t&&(u++,"?"===r[s]&&(s+=2,":"!==r[s-1])))return e}else for(;s<r.length;){const e=r[s++];if(c.push(e),"]"===e)break;"\\"===e&&c.push(r[s++])}else{if(0===u)return e;u--}else c.push(r[s++])}return u?e:(c.push(")$"),{name:n,pattern:new RegExp(c.join(""),o),optional:"?"===i||"*"===i,many:"+"===i||"*"===i})}function Z(e,t){const n=[];for(const t of e.split("/"))t&&!/^\.+$/.test(t)&&n.push(N(t));if(n.length)return e=>function(e,t,n){const r={};for(let n=0;n<e.length;n++){const o=e[n],i=t[n];if(o!==i){if("string"==typeof o)return;if(!i)return o.optional?[r,[]]:void 0;if(!o.pattern.test(i))return;r[o.name]=i}}if(!n)return[r,t.slice(e.length)];if(t.length<=e.length)return[r,[]];const o=e[e.length-1];if("string"!=typeof o&&(o.many||!(t.length>e.length))){for(let n=e.length;n<t.length;n++)if(!o.pattern.test(t[n]))return;return r[o.name]=t.slice(e.length-1),[r,[]]}}(n,e,t)}function V(e,t,n,r){const o={match:Z(n||"",!0),methods:new Set(t),handler:r};e.push(o);let i=!1;return()=>{if(i)return;i=!0;const t=e.indexOf(o);t<0||e.splice(t,1)}}function J(e,t,n){if(!n.length)return n=>V(e,t,"",n);const[r,o]=n;if(r&&"object"==typeof r){const o=String.raw(r,...n.slice(1));return n=>V(e,t,o,n)}const i="string"==typeof r?r:"",s=[r,o].find((e=>"function"==typeof e));return s?V(e,t,i,s):n=>V(e,t,i,n)}const K=new Set(["GET","POST","PUT","DELETE","HEAD","OPTIONS"]);function Q(e){return K.has(e)}function W(e,t,n){const r=n instanceof G?n:"function"==typeof n?G.create(n):new X;return e.push({match:Z(t,!1),router:r}),r}class X extends G{#e=[];route(...e){const[t]=e;if(t&&"object"==typeof t&&!(t instanceof G)){const n=String.raw(t,...e.slice(1));return e=>W(this.#e,n,e)}const n="string"==typeof t?t:"",r="string"==typeof t?e[1]:t;return W(this.#e,n,r)}*find(e,t){for(const n of Array.from(this.#e)){if(!n.router&&!n.methods.has(e))continue;const{match:r}=n;if(!r){!n.router&&t.length||(yield[n.router||n.handler,{},t]);continue}if(!t.length)continue;const o=r(t);o&&(yield[n.router||n.handler,...o])}}verb(e,t,n){const r=function(e){return e?"string"==typeof e?[e.toUpperCase()].filter(Q):Array.from(e).map((e=>"string"==typeof e&&e.toUpperCase())).filter(Q):["GET","POST","PUT","DELETE"]}(e);return r.length?J(this.#e,r,[t,n]):()=>{}}match(...e){return J(this.#e,["GET","POST","PUT","DELETE"],e)}get(...e){return J(this.#e,["GET"],e)}post(...e){return J(this.#e,["POST"],e)}put(...e){return J(this.#e,["PUT"],e)}delete(...e){return J(this.#e,["DELETE"],e)}head(...e){return J(this.#e,["HEAD"],e)}options(...e){return J(this.#e,["OPTIONS"],e)}}const Y="[a-zA-Z][a-zA-Z0-9_-]*",ee=`${Y}(?:.${Y})*`,te=new RegExp(`^/(${Y})/((?:@${ee}/)?${ee})/(.+)$`);class ne{static make(e,{router:t,setting:n,asset:r,log:o,runner:i}={}){const s=[];for(const t of Object.values(e))s.push(t.router);return t instanceof G&&s.push(t),L(G.make(s),{setting:n,asset:ne.bindAsset(r,e),log:o,runner:i})}static bindAsset(e,t,n="plugins"){if(!t)return e;const r=e?.read;return"function"!=typeof r?e:{...e,read:async e=>{const o=await r(e);if(null!==o)return o;if(!t)return null;const i=te.exec(e);if(!i)return null;const[,s,u,c]=i;if(s!==n)return null;if(!(u in t))return null;const a=t[u];return a?a.readAsset(c):null}}}constructor(e,t,{author:n,license:r}={}){this.name=e,this.version="string"==typeof t?t:"",this.author="string"==typeof n?n:"",this.license="string"==typeof r?r:""}initRouter(){const{router:e}=this;return this.__initRouterPromise?this.__initRouterPromise:this.__initRouterPromise=Promise.resolve(this._initRouter(e)).then((()=>e))}get router(){const e=this._createRouter();return Reflect.defineProperty(this,"router",{value:e,configurable:!0}),this.initRouter(),e}get disabled(){return this.router.disabled}set disabled(e){this.router.disabled=e}}export{X as ApiRouter,ne as Plugin,G as Router,I as createEnvironment,j as main,L as make,D as merge,C as run,H as service,M as stateService,z as storeService};
6
+ let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let t="0123456789ABCDEF";function n(n,r){if(ArrayBuffer.isView(n))return new Uint8Array(n.buffer,n.byteOffset,n.byteLength);if(n instanceof ArrayBuffer)return new Uint8Array(n);if("string"!=typeof n)return null;switch(r){default:case"utf8":return function(e){let t=[],n=0;for(;n<e.length;n++){const r=e.codePointAt(n);if("number"!=typeof r)break;r>=65536&&n++,r<128?t.push(r):r<2048?(t.push(192|31&r>>6),t.push(128|63&r)):r<65536?(t.push(224|15&r>>12),t.push(128|63&r>>6),t.push(128|63&r)):(t.push(240|7&r>>18),t.push(128|63&r>>12),t.push(128|63&r>>6),t.push(128|63&r))}return new Uint8Array(t)}(n);case"base64":return function(t,n=e){const r=Math.floor(Math.log2(n.length));t=t.replace(/[=\s]+/g,"");let o=new Uint8Array(t.length*r>>3),i=0,s=0,u=0;for(let e of t)for(s=s<<r|n.indexOf(e),u+=r;u>=8;)u-=8,o[i++]=s>>u&255,s&=(1<<u)-1;return o}(n);case"hex":return function(e){let n=[];for(let r=0;r<e.length;r+=2)n.push(16*t.indexOf(e[r])+t.indexOf(e[r+1]||"0"));return new Uint8Array(n)}(n)}}function r(e,t){if(1===e.length)return new Uint8Array(e[0]);const n=new Uint8Array(t);let r=0;for(const t of e)n.set(t,r),r+=t.byteLength;return n}function o(e,t){if(!t){const t=r(e,e.reduce(((e,t)=>e+t.byteLength),0));return e.length=0,t}let n=0;const o=[];for(let r;r=e.shift();){if(n+r.byteLength>t){const i=r.slice(0,t-n);o.push(i),n+=i.byteLength,e.unshift(r.slice(i.byteLength));break}if(o.push(r),n+=r.byteLength,n===t)break}return r(o,n)}async function*i(e){if(e){if("string"==typeof e)return yield n(e);if("object"==typeof e){if(e instanceof ArrayBuffer)return yield n(e);if(ArrayBuffer.isView(e))return yield n(e);if(Symbol.asyncIterator in e||Symbol.iterator in e)for await(const t of e)yield*i(t)}}}async function s(e,t){const n=[];let r=0,[s,u]=await t();for await(const c of i(e))if(n.push(c),r+=c.byteLength,s<=0)r=0,u(o(n)),[s,u]=await t();else for(r>=s&&(r-=s,u(o(n,s)),[s,u]=await t());r&&(s<=0||s<=r);){if(s<=0){r=0,u(o(n)),[s,u]=await t();break}r-=s,u(o(n,s)),[s,u]=await t()}for(r&&(u(o(n)),[s,u]=await t()),u(null);;)[s,u]=await t(),u(null)}function u(e){if(!e)return()=>Promise.resolve(null);const t=[];let n=null;return s(e,(function(){return new Promise((e=>{const r=t.shift();if(r)return e(r);n=t=>{n=null,e(t)}}))})),function(e=0){return new Promise((r=>{e=Math.max(e,0),n?n([e,r]):t.push([e,r])}))}}const c=/^(?:(?:https?:)?\/\/(?:(?:[^/?#]*@)?)(?:\d+|(?:\[[0-9a-f:]+\])|(?:\d{1,3}\.){3}\d{1,3}|(?:(?:[a-z0-9\u0100-\uffff]+-*)+\.)+[a-z]+)(?::\d+)?)?((?:\/?[^?#]*)?)((?:\?[^#]*)?)(?:#.*)?$/i;function a(e){const t=e.indexOf("=");return t<0?[decodeURIComponent(e),""]:[decodeURIComponent(e.substring(0,t)),decodeURIComponent(e.substring(t+1))]}function f(e){const t={};for(const n of e.split("&").filter(Boolean)){const[e,r]=a(n);t[e]=e in t?[t[e],r].flat():[r]}return t}function l({method:e,path:t,signal:n,body:r,headers:o={}}){const[i,s]=function(e){const t=c.exec(e);if(!t)return["/",""];let[,n,r]=t;const o=[];for(const e of n.replace(/^[\\/]+/,"").replace(/[\\/]+/g,"/").split("/"))"."!==e&&(".."!==e?o.push(e):o.pop());return[`/${o.join("/")}`,r]}(t);return{method:e,url:`${i}${s}`,headers:o,pathname:i,search:s,signal:n||(new AbortController).signal,query:f(s.substring(1)),read:"function"==typeof r?r:u(r)}}function h(e){return e instanceof ArrayBuffer||!!ArrayBuffer.isView(e)}function p(){let e=!1,t=[],r=null;function o(n){if(e)return null;e=!0,n&&n(!1);for(let e;e=t.shift();){const[,t]=e;t(!1)}return null}let i=Promise.resolve((()=>{}));const s={next(){const e=i.then((e=>{if(e)return u?(e(!1),a):(e(!0),Promise.race([a,new Promise((e=>{const n=t.shift();if(n)return e(n);r=t=>{r=null,e(t)}})).then((e=>{const[t,n]=e;if(!u&&void 0!==t)return e;n(!u)}))]))}));return i=e.then((e=>{if(!e)return null;const[,t]=e;return t}),(()=>o())),e.then((e=>{if(!e)return{done:!0,value:void 0};const[t,n]=e;return{done:!1,value:t}}))},throw:e=>(i=i.then(o),i.then((()=>Promise.reject(e)))),return:e=>(i=i.then(o),i.then((()=>e))),[Symbol.asyncIterator]:()=>s};let u,c,a=new Promise(((e,t)=>{u?t(u):c=t}));function f(n,o){if(e)return o(!1);r?r([n,o]):t.push([n,o])}a.then(null,(()=>{}));let l=Promise.resolve(!0);async function p(t){if(e)return Promise.resolve();if("string"==typeof t)return new Promise((e=>f(n(t),e)));if("object"!=typeof t)return!1;if(h(t))return new Promise((e=>f(n(t),e)));if(!(Symbol.asyncIterator in t)&&!(Symbol.iterator in t))return!1;for await(const n of t){if(e)return Promise.resolve();if(n&&!await p(n))return!1}return!0}let d=!1;return[{write(e){const t=l.then((t=>{if(void 0!==t)return!e||p(e)}));return l=t,t.then((e=>Boolean(e)))},end(){d=!0;const n=l.then((n=>new Promise((o=>{if(void 0===n||e)return o();r?r([void 0,()=>o()]):t.push([void 0,()=>o()])}))));return l=n,n},get ended(){return e||d}},s,function(e){return!u&&(u=e||new DOMException("The user aborted a request."),c&&c(u),!0)}]}function d(e){return e.map((({name:e,value:t,expire:n,domain:r,path:o,secure:i,httpOnly:s})=>e&&[`${encodeURI(e)}=${encodeURI(t||"")}`,n&&`Expires=${n}`,r&&`Domain=${encodeURI(r)}`,o&&`Path=${encodeURI(o)}`,i&&"Secure",s&&"HttpOnly"].filter(Boolean).join("; "))).filter(Boolean)}let y="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let g="0123456789ABCDEF";function m(e,t){if(!e)return null;switch(t){case"utf8":return function(e){let t=[],n=0;for(;n<e.length;){let r=0|e[n++];r>=240?(r=(7&r)<<18,r|=(63&e[n++])<<12,r|=(63&e[n++])<<6,r|=63&e[n++]):r>=224?(r=(15&r)<<12,r|=(63&e[n++])<<6,r|=63&e[n++]):r>=192&&(r=(31&r)<<6,r|=63&e[n++]),t.push(r)}return t.map((e=>String.fromCharCode(e))).join("")}(e);case"base64":return function(e,t=y){const n=Math.floor(Math.log2(t.length)),r=(1<<n)-1;let o=new Array(Math.floor(((e.byteLength<<3)+n-1)/n)),i=0,s=0,u=0;for(let c of e)for(s=s<<8|c,u+=8;u>=n;)u-=n,o[i++]=t[s>>u&r],s&=(1<<u)-1;for(u&&(o[i++]=t[s<<n-u&r]);o.length%4;)o.push("=");return o.join("")}(e);case"hex":return function(e){let t=new Array(2*e.byteLength);for(let n of e)t.push(n>>4&4369,4369&n);return t.map((e=>g[e])).join("")}(e)}return e}function b(e){let t=Promise.resolve(!1);return function(n=0,r){const o=t.then((t=>t?null:e(n)));return t=o.then((e=>!e)),o.then((e=>m(e,r)))}}const w=/^(\[[^\]]+\]|^:):(\d+)$/;function v({method:e,url:t,pathname:n,search:r,query:o,read:i,headers:s,signal:u},c,a,f){const l=new Map,h=s.host||"",p=w.exec(h),[y,g]=p?[p[1],p[2]]:[h,""],m=function(e){let t={};for(const n of e.replace(/\s/g,"").split(";")){const e=n.split("=");t[decodeURIComponent(e.shift())]=decodeURIComponent(e.join("="))}return t}(s.cookie||""),v=[];let O=200,P={},j=!1,A=!1;const S=f?.root;let $=null,x={};const E={environment:a,parent:f,get error(){return $},get root(){return S||this},signal:u,request:c,service(e,...t){if(e.rootOnly&&S)return S.service(e,...t);let n=l.get(e);if(!n){let t;n=Object.create(E,{destroying:{value:!1,configurable:!0,enumerable:!0},currentService:{value:e,configurable:!0,enumerable:!0},state:{configurable:!0,enumerable:!0,get:()=>t,set(e){t=e}}}),l.set(e,n)}return e(n,...t)},method:e,url:t,pathname:n,search:r,query:o,get params(){return x},headers:Object.freeze({...s}),host:h,hostname:y,port:g,requestType:s["content-type"]||"",referer:s.referer||"",userAgent:s["user-agent"]||"",accept:(s.accept||"").split(/,\s*/).filter(Boolean),acceptLanguage:(s["accept-language"]||"").split(/,\s*/).filter(Boolean),cookies:m,read:b(i),get destroyed(){return A},get headersSent(){return j},get status(){return O},set status(e){j||(O=e)},get location(){return P.location||""},set location(e){j||(P.location=e)},get responseType(){return P["content-type"]||""},set responseType(e){j||(P["content-type"]=e)},getCookie:e=>function*(e,t){const n=e;for(const e of n)t&&e.name!==t||(yield{...e})}(v,e),setCookie(e,t,{expire:n,domain:r,path:o,secure:i,httpOnly:s}={}){j||(v.push({name:e,value:t,expire:n,domain:r,path:o,secure:i,httpOnly:s}),P["set-cookie"]=d(v))},clearCookie(e,t){j||(!function(e,t,n,r){let o="Fri, 31 Dec 1999 16:00:00 GMT";if("string"==typeof n){if(!n)return;const{domain:t,path:i,secure:s,httpOnly:u}=!0!==r&&r||{};e.push({name:n,value:"delete",expire:o,domain:t,path:i,secure:s,httpOnly:u})}else{const{domain:i,path:s,secure:u,httpOnly:c}=n||{};if(e.length=0,r)for(let n in t)e.push({name:n,value:"delete",expire:o,domain:i,path:s,secure:u,httpOnly:c})}}(v,m,e,t),P["set-cookie"]=d(v))},hasHeader:e=>e in P,getHeaderNames:()=>Object.keys(P),getHeaders:()=>({...P}),getHeader:e=>P[e],setHeader(e,t){j||(void 0===t?delete P[e]:P[e]=t)}};return{context:E,setParams:e=>{x=e},destroy:e=>{A||(A=!0,j=!0,e&&($=e),function(e,t){let n=Promise.resolve();for(const[r,o]of[...e.entries()])n=n.then((()=>r(Object.create(o,{destroying:{value:!0,configurable:!0,enumerable:!0}})))).catch((e=>t?.error?.(e)))}(l,a))},sendHeaders:()=>!j&&(j=!0,!0)}}function O(e,t){return"bigint"==typeof t?String(t):t}async function P(e,t){if(e.headersSent)return;const n=await t(e);if(!e.finished){if(function(e){return!(!e||"object"!=typeof e||!Array.isArray(e)&&(h(e)||Symbol.asyncIterator in e||Symbol.iterator in e))}(n)){if(e.headersSent)return;return e.responseType="application/json",void await e.write(JSON.stringify(n,O))}return e.write(n)}}function j(e,t,n,r,o){const i=(s=e.signal,new Promise(((e,t)=>{if(s.aborted)return t(s.reason);s.addEventListener("abort",(()=>t(s.reason)),{once:!0})})));var s;const{context:u,setParams:c,destroy:a,sendHeaders:f}=v(e,(e=>j(l(e),t,n,r,u)),n,o);function h(){return Promise.race([i,Promise.resolve().then((()=>t(u,c)))]).then((e=>new Promise((t=>{if(!e)return a(),t(null);const[n,r,o]=p();function s(){if(!f())return;const{status:e}=u;t({...r,get status(){return e},get finished(){return n.ended},headers:Object.freeze(u.getHeaders()),[Symbol.asyncIterator]:()=>r})}i.catch((e=>o(e)));const c={get finished(){return n.ended},write:e=>(s(),n.write(e))},l=Object.create(u,Object.getOwnPropertyDescriptors(c));Promise.race([i,P(l,e)]).then((()=>{s(),a(),n.end()}),(e=>{u.status=500,s(),o(e),a(e||!0),n.end()}))}))),(e=>(a(e||!0),Promise.reject(e))))}return r?r(u,h):h()}async function A(){}async function S(){return!1}async function $(){return null}async function x(){return!1}function E(e){return"string"==typeof e?e:e instanceof Error?e.stack||`${e.name}:${e.message}`:String(e)}const k=/(?:^|\/)(debug|error|warn|info)\/?$|^\/?(debug|error|warn|info)(?:\/|$)/;async function T(e,t){switch(e){case"debug":console.debug(t);break;case"info":console.info(t);break;case"warn":console.warn(t);break;case"error":console.error(t)}console.group(`log @ ${e}`);const n=k.exec(e);switch(n?n[1]||n[2]:""){case"debug":console.debug(t);break;case"info":console.info(t);break;case"warn":console.warn(t);break;case"error":console.error(t);break;default:console.log(t)}return console.groupEnd(),!0}async function U(){return""}async function R(){}function B({read:e=U,write:t=T,clear:n=R}={}){function r(e,n,r){return t(e,function(e,{tags:t,indent:n,date:r}={}){let o="";return t&&(Array.isArray(t)||(t=[t]),o=t.map((e=>`[${e}]`)).join(" ")),r&&(o=`${(new Date).toISOString()} ${o}`),e.includes("\n")?("number"==typeof n&&(n=Math.floor(n),isFinite(n)&&n>0&&(n=Array(n).fill(" ").join(""))),n&&"string"==typeof n||(n=" "),e=(e=`${o}\n${e}`).split("\n").join(`\n${n}`)):`${o} ${e}`}(n,r))}return{read:e,write:r,clear:n,debug:async(e,t)=>r("debug",e,t),info:async(e,t)=>r("info",e,t),warn:async(e,t)=>r("warn",E(e),t),error:async(e,t)=>r("error",E(e),t)}}function I(e){const t=function({read:e=$,write:t=x,delete:r=x,stat:o=$}={}){return{read:async function(t,n){const r=await e(t);return r&&m(r,n)},write:async function(e,o,i){if(void 0===o)return r(e);const s=n(o,i);return s?t(e,s):r(e)},delete:function(e){return r(e)},stat:async function(e){return o(e)}}}(e?.asset),r=function({read:e=A,write:t=S}={}){return{read:e,write:t}}(e?.setting),o=B(e?.log);return{asset:t,setting:r,log:o,error:e?.error||(e=>{o.error(e)})}}function C(e,t,n){return j(e,t,I(n),n?.runner)}function L(e,t){const n=I(t);return r=>j(r,e,n,t?.runner)}function D(...e){return t=>async function(e,t){for(const n of t){if(e.headersSent)break;const t=await n(e);if(e.finished)break;if("boolean"==typeof t)return t;if(t)return t}}(t,e.flat())}function H(e,t,n){const r=function(n,...o){return n.currentService!==r?n.service(r,...o):n.destroying?"function"==typeof t?t(n):void 0:e(n,...o)},{rootOnly:o}="object"==typeof t&&t||"object"==typeof n&&n||{};return Object.assign(r,{rootOnly:Boolean(o)}),r}function M(e,t,n,r){const o=function(r){if(r.currentService!==o)return r.service(o);if(!r.destroying){let{state:t}=r;return t||(t=e(r)||{},r.state=t),"function"==typeof n&&n(t,r),t}return"function"==typeof t?t(r.state,r):void 0},{rootOnly:i}="object"==typeof t&&t||"object"==typeof n&&n||"object"==typeof r&&r||{};return Object.assign(o,{rootOnly:Boolean(i)}),o}function z(e,t,n){const r=function(n,...o){if(n.currentService!==r)return n.service(r,...o);if(!n.destroying){if(!o.length)return n.state;const[e]=o;return n.state=e,"function"==typeof t&&t(e,n),e}return"function"==typeof e?e(n.state,n):void 0},{rootOnly:o}="object"==typeof e&&e||"object"==typeof t&&t||"object"==typeof n&&n||{};return Object.assign(r,{rootOnly:Boolean(o)}),r}async function _(e,t,n,r,o){if(!(e instanceof G))return r(o),e;if(e.disabled)return null;const i=await async function(e,t,n,r){if(!e.size)return!0;n(r);for(const n of e){if(t.destroyed)return!1;const e=await n(Object.create(t,{params:{value:{...r}}}));if(!1===e)return!1;if("function"==typeof e)return e}return!0}(e.guards,n,r,o);if(!i)return null;if("function"==typeof i)return i;if(n.destroyed)return null;for await(const[i,s,u]of e.find(n.method,t)){if(n.destroyed)return null;const e=await _(i,u,n,r,{...o,...s});if(e)return e}return null}function q(e){try{return decodeURIComponent(e)}catch{return e}}class G{disabled=!1;static make(e){return async(t,n)=>{const r=e.flat(),o=t.pathname.split("/").filter(Boolean).map(q);for(const e of r){const r=await _(e,o,t,n,{});if(r)return r}return null}}static create(e){return Object.create(G.prototype,{find:{configurable:!0,value:e,writable:!0}})}guards=new Set}const F=/^:([a-zA-Z][a-zA-Z0-9]*)(?:\((.+)\))?([ius]+)?([?+*]?)$/;function N(e){const t=F.exec(e);if(!t)return e;const[,n,r=".*",o,i]=t;if(!r)return{name:n,pattern:new RegExp("^.*$",o),optional:"?"===i||"*"===i,many:"+"===i||"*"===i};let s=0,u=0;const c=["^(?:"];for(;s<r.length;){const t=r[s++];if(c.push(t),"\\"!==t)if(")"!==t)if("["!==t){if("("===t&&(u++,"?"===r[s]&&(s+=2,":"!==r[s-1])))return e}else for(;s<r.length;){const e=r[s++];if(c.push(e),"]"===e)break;"\\"===e&&c.push(r[s++])}else{if(0===u)return e;u--}else c.push(r[s++])}return u?e:(c.push(")$"),{name:n,pattern:new RegExp(c.join(""),o),optional:"?"===i||"*"===i,many:"+"===i||"*"===i})}function Z(e,t){const n=[];for(const t of e.split("/"))t&&!/^\.+$/.test(t)&&n.push(N(t));if(n.length)return e=>function(e,t,n){const r={};for(let n=0;n<e.length;n++){const o=e[n],i=t[n];if(o!==i){if("string"==typeof o)return;if(!i)return o.optional?[r,[]]:void 0;if(!o.pattern.test(i))return;r[o.name]=i}}if(!n)return[r,t.slice(e.length)];if(t.length<=e.length)return[r,[]];const o=e[e.length-1];if("string"!=typeof o&&(o.many||!(t.length>e.length))){for(let n=e.length;n<t.length;n++)if(!o.pattern.test(t[n]))return;return r[o.name]=t.slice(e.length-1),[r,[]]}}(n,e,t)}function V(e,t,n,r){const o={match:Z(n||"",!0),methods:new Set(t),handler:r};e.push(o);let i=!1;return()=>{if(i)return;i=!0;const t=e.indexOf(o);t<0||e.splice(t,1)}}function J(e,t,n){if(!n.length)return n=>V(e,t,"",n);const[r,o]=n;if(r&&"object"==typeof r){const o=String.raw(r,...n.slice(1));return n=>V(e,t,o,n)}const i="string"==typeof r?r:"",s=[r,o].find((e=>"function"==typeof e));return s?V(e,t,i,s):n=>V(e,t,i,n)}const K=new Set(["GET","POST","PUT","DELETE","HEAD","OPTIONS"]);function Q(e){return K.has(e)}function W(e,t,n){const r=n instanceof G?n:"function"==typeof n?G.create(n):new X;return e.push({match:Z(t,!1),router:r}),r}class X extends G{#e=[];route(...e){const[t]=e;if(t&&"object"==typeof t&&!(t instanceof G)){const n=String.raw(t,...e.slice(1));return e=>W(this.#e,n,e)}const n="string"==typeof t?t:"",r="string"==typeof t?e[1]:t;return W(this.#e,n,r)}*find(e,t){for(const n of Array.from(this.#e)){if(!n.router&&!n.methods.has(e))continue;const{match:r}=n;if(!r){!n.router&&t.length||(yield[n.router||n.handler,{},t]);continue}if(!t.length)continue;const o=r(t);o&&(yield[n.router||n.handler,...o])}}verb(e,t,n){const r=function(e){return e?"string"==typeof e?[e.toUpperCase()].filter(Q):Array.from(e).map((e=>"string"==typeof e&&e.toUpperCase())).filter(Q):["GET","POST","PUT","DELETE"]}(e);return r.length?J(this.#e,r,[t,n]):()=>{}}match(...e){return J(this.#e,["GET","POST","PUT","DELETE"],e)}get(...e){return J(this.#e,["GET"],e)}post(...e){return J(this.#e,["POST"],e)}put(...e){return J(this.#e,["PUT"],e)}delete(...e){return J(this.#e,["DELETE"],e)}head(...e){return J(this.#e,["HEAD"],e)}options(...e){return J(this.#e,["OPTIONS"],e)}}const Y="[a-zA-Z][a-zA-Z0-9_-]*",ee=`${Y}(?:.${Y})*`,te=new RegExp(`^/(${Y})/((?:@${ee}/)?${ee})/(.+)$`);class ne{static make(e,{router:t,setting:n,asset:r,log:o,runner:i}={}){const s=[];for(const t of Object.values(e))s.push(t.router);return t instanceof G&&s.push(t),L(G.make(s),{setting:n,asset:ne.bindAsset(r,e),log:o,runner:i})}static bindAsset(e,t,n="plugins"){if(!t)return e;const r=e?.read;return"function"!=typeof r?e:{...e,read:async e=>{const o=await r(e);if(null!==o)return o;if(!t)return null;const i=te.exec(e);if(!i)return null;const[,s,u,c]=i;if(s!==n)return null;if(!(u in t))return null;const a=t[u];return a?a.readAsset(c):null}}}constructor(e,t,{author:n,license:r}={}){this.name=e,this.version="string"==typeof t?t:"",this.author="string"==typeof n?n:"",this.license="string"==typeof r?r:""}initRouter(){const{router:e}=this;return this.__initRouterPromise?this.__initRouterPromise:this.__initRouterPromise=Promise.resolve(this._initRouter(e)).then((()=>e))}get router(){const e=this._createRouter();return Reflect.defineProperty(this,"router",{value:e,configurable:!0}),this.initRouter(),e}get disabled(){return this.router.disabled}set disabled(e){this.router.disabled=e}}export{X as ApiRouter,ne as Plugin,G as Router,I as createEnvironment,j as main,L as make,D as merge,C as run,H as service,M as stateService,z as storeService};
package/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
@@ -371,6 +371,7 @@ function createWrite() {
371
371
  abortReject = reject;
372
372
  }
373
373
  });
374
+ abortedPromise.then(null, () => {});
374
375
  function abort(e) {
375
376
  if (abortException) {
376
377
  return false;
package/node/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
package/node/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "k99",
3
3
  "description": "前后端均可用的 web 服务器",
4
- "version": "0.6.0-alpha.8",
4
+ "version": "0.6.0-alpha.9",
5
5
  "dependencies": {
6
6
  "entry-cli": "^0.2.0",
7
7
  "json5": "^2.2.3",
package/services.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
package/services.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
package/services.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
package/services.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
package/services.min.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
package/services.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.6.0-alpha.8
2
+ * k99 v0.6.0-alpha.9
3
3
  * (c) 2019-2023 猛火Fierflame
4
4
  * @license MIT
5
5
  */
package/starter.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  /*!
3
- * k99 v0.6.0-alpha.8
3
+ * k99 v0.6.0-alpha.9
4
4
  * (c) 2019-2023 猛火Fierflame
5
5
  * @license MIT
6
6
  */