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 +1 -1
- package/browser.d.ts +1 -1
- package/browser.js +1 -1
- package/browser.min.js +1 -1
- package/browser.min.mjs +1 -1
- package/browser.mjs +1 -1
- package/cli/index.cjs +2 -2
- package/cli/index.d.cts +1 -1
- package/cli.cjs +1 -1
- package/index.cjs +2 -1
- package/index.d.ts +1 -1
- package/index.js +2 -1
- package/index.min.js +2 -2
- package/index.min.mjs +2 -2
- package/index.mjs +2 -1
- package/node/index.cjs +1 -1
- package/node/index.d.cts +1 -1
- package/package.json +1 -1
- package/services.cjs +1 -1
- package/services.d.ts +1 -1
- package/services.js +1 -1
- package/services.min.js +1 -1
- package/services.min.mjs +1 -1
- package/services.mjs +1 -1
- package/starter.cjs +1 -1
package/browser.cjs
CHANGED
package/browser.d.ts
CHANGED
package/browser.js
CHANGED
package/browser.min.js
CHANGED
package/browser.min.mjs
CHANGED
package/browser.mjs
CHANGED
package/cli/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* k99 v0.6.0-alpha.
|
|
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.
|
|
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
package/cli.cjs
CHANGED
package/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* k99 v0.6.0-alpha.
|
|
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
package/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* k99 v0.6.0-alpha.
|
|
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.
|
|
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.
|
|
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.
|
|
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
package/node/index.d.cts
CHANGED
package/package.json
CHANGED
package/services.cjs
CHANGED
package/services.d.ts
CHANGED
package/services.js
CHANGED
package/services.min.js
CHANGED
package/services.min.mjs
CHANGED
package/services.mjs
CHANGED