Comparing version 0.21.1-dev.2 to 0.21.1-dev.3
@@ -5,3 +5,2 @@ Object.defineProperty(exports,"getDrBrowserScriptHTML",{enumerable:!0,get:function(){return _resource.DR_BROWSER_SCRIPT_TAG}}) | ||
Object.defineProperty(exports,"packageVersion",{enumerable:!0,get:function(){return _package.version}}) | ||
var _fs=require("fs") | ||
var _os=require("os") | ||
@@ -59,10 +58,10 @@ var _function=require("../library/env/function") | ||
exports.describeServer=describeServer | ||
const commonStartServer=async({protocol:e,hostname:r,port:t,routeConfigList:o,isAddFavicon:s,title:n,extraInfoList:a,log:i})=>{const{server:c,option:l,start:p,stop:u}=(0,_Server.createServer)({protocol:e,hostname:r,port:t}) | ||
const d=(0,_Common.createResponderLogEnd)({log:i}) | ||
const commonStartServer=async({protocol:e,hostname:r,port:t,routeConfigList:o,isAddFavicon:s,title:n,extraInfoList:a,log:i})=>{const{server:c,option:l,start:p,stop:d}=(0,_Server.createServer)({protocol:e,hostname:r,port:t}) | ||
const u=(0,_Common.createResponderLogEnd)({log:i}) | ||
s&&(o=[...o,[["/favicon","/favicon.ico"],"GET",(0,_Send.createResponderFavicon)()]]) | ||
c.on("request",(0,_Server.createRequestListener)({responderList:[(0,_Common.createResponderLog)({log:i}),(0,_Router.createResponderRouter)({routeMap:(0,_Router.createRouteMap)(o),baseUrl:l.baseUrl})],responderEnd:e=>{(0,_Common.responderEnd)(e) | ||
d(e)}})) | ||
u(e)}})) | ||
await p() | ||
i(describeServer(l,n,a)) | ||
return{server:c,option:l,start:p,stop:u}} | ||
return{server:c,option:l,start:p,stop:d}} | ||
exports.commonStartServer=commonStartServer |
@@ -23,3 +23,3 @@ var e=require("../../library/common/time") | ||
e[t]=s%t | ||
s===t?(0,a.responderSendJSON)(r,{object:{}}):r.response.destroy()}})()],["/","GET",(0,u.createResponderRouteList)({getRouteMap:()=>(0,u.createRouteMap)(S),extraBodyList:[(0,s.DR_BROWSER_SCRIPT_TAG)()]})]] | ||
s===t?(0,a.responderSendJSON)(r,{object:{}}):r.response.destroy()}})()],["/","GET",(0,u.createResponderRouteListHTML)({getRouteMap:()=>(0,u.createRouteMap)(S),extraBodyList:[(0,s.DR_BROWSER_SCRIPT_TAG)()]})]] | ||
await(0,c.commonStartServer)({protocol:d,hostname:m,port:p,routeConfigList:S,isAddFavicon:!0,title:"TestConnection",log:f})} |
@@ -121,11 +121,11 @@ var e=require("../../library/common/error") | ||
const F=async(e,t)=>{const[o,n]=await k(e) | ||
const{type:s,targetId:i,payload:u}=JSON.parse(o) | ||
if(s===c)t(u.id) | ||
else if(s===l){I(`Current ${u.length} user: ${u.join(", ")}`) | ||
a("#button-send").disabled=u.length<=1 | ||
a("#button-send",`Send to ${u.length-1} User [Ctrl+Enter]`) | ||
P.groupInfo=u}else if(s===d){const{id:e,text:t,fileName:o,fileSize:r,fileId:n}=u | ||
const{type:s,payload:i}=JSON.parse(o) | ||
if(s===c)t(i.id) | ||
else if(s===l){I(`Current ${i.length} user: ${i.join(", ")}`) | ||
a("#button-send").disabled=i.length<=1 | ||
a("#button-send",`Send to ${i.length-1} User [Ctrl+Enter]`) | ||
P.groupInfo=i}else if(s===d){const{id:e,text:t,fileName:o,fileSize:r,fileId:n}=i | ||
t&&x({id:e,text:t}) | ||
o&&T({id:e,fileName:o,fileSize:r,fileId:n})}else if(s===p){const{id:e,intent:t}=u | ||
if("request"===t){const{fileId:t}=u | ||
o&&T({id:e,fileName:o,fileSize:r,fileId:n})}else if(s===p){const{id:e,intent:t}=i | ||
if("request"===t){const{fileId:t}=i | ||
const o=P.fileWeakMap.get(a(`#${t}`)) | ||
@@ -135,3 +135,3 @@ const r=o&&o.name | ||
P.websocket.send(S(JSON.stringify({type:p,targetId:e,payload:{intent:"response",ok:Boolean(o),fileName:r,fileType:n}}),o)) | ||
I(o?`Send file: ${r} to ${e}`:`Miss file request from ${e}`)}else if("response"===t){const{ok:t,fileName:o,fileType:a}=u | ||
I(o?`Send file: ${r} to ${e}`:`Miss file request from ${e}`)}else if("response"===t){const{ok:t,fileName:o,fileType:a}=i | ||
t&&E(o,new r([n],{type:a})) | ||
@@ -138,0 +138,0 @@ I(t?`Get file: ${o} from ${e}`:`Miss file response from ${e}`)}}} |
var r=require("../compare") | ||
const e=/^(\d+)\.(\d+)\.(\d+)(.*)$/ | ||
const t=r=>{let[,t,a,o,s=""]=e.exec(r)||[] | ||
const t=r=>{let[,t,a,n,o=""]=e.exec(r)||[] | ||
t=parseInt(t) | ||
a=parseInt(a) | ||
o=parseInt(o) | ||
if(isNaN(t)||isNaN(a)||isNaN(o))throw new Error(`invalid version: ${r}`) | ||
return{major:t,minor:a,patch:o,label:s}} | ||
n=parseInt(n) | ||
if(isNaN(t)||isNaN(a)||isNaN(n))throw new Error(`invalid version: ${r}`) | ||
return{major:t,minor:a,patch:n,label:o}} | ||
exports.parseSemVer=t | ||
exports.compareSemVer=(r,e)=>{const o=t(r) | ||
const s=t(e) | ||
return o.major-s.major||o.minor-s.minor||o.patch-s.patch||a(o.label,s.label)} | ||
const a=(e,t)=>e===t?0:t.startsWith(e)?1:e.startsWith(t)?-1:(0,r.compareStringWithNumber)(e,t) | ||
exports.compareSemVer=(r,e)=>{const n=t(r) | ||
const o=t(e) | ||
return n.major-o.major||n.minor-o.minor||n.patch-o.patch||a(n.label,o.label)} | ||
const a=(e,t)=>e===t?0:o(e,t)?1:o(t,e)?-1:(0,r.compareStringWithNumber)(e,t) | ||
const n=/\d\d/ | ||
const o=(r,e)=>e.startsWith(r)&&!n.test(e.slice(r.length-1,r.length+1)) |
@@ -125,4 +125,4 @@ root=window,factory=function(){return function(t){var e={} | ||
n.r(f) | ||
n.d(f,"createTreeDepthFirstSearch",()=>Wt) | ||
n.d(f,"createTreeDepthFirstSearchAsync",()=>Jt) | ||
n.d(f,"createTreeDepthFirstSearch",()=>Jt) | ||
n.d(f,"createTreeDepthFirstSearchAsync",()=>Wt) | ||
n.d(f,"createTreeBreadthFirstSearch",()=>Xt) | ||
@@ -198,4 +198,4 @@ n.d(f,"createTreeBreadthFirstSearchAsync",()=>Zt) | ||
n.d(w,"isIntersect",()=>Ge) | ||
n.d(w,"isContain",()=>We) | ||
n.d(w,"isContainPoint",()=>Je) | ||
n.d(w,"isContain",()=>Je) | ||
n.d(w,"isContainPoint",()=>We) | ||
var x={} | ||
@@ -266,4 +266,4 @@ n.r(x) | ||
n.r(O) | ||
n.d(O,"isString",()=>Wn) | ||
n.d(O,"isBoolean",()=>Jn) | ||
n.d(O,"isString",()=>Jn) | ||
n.d(O,"isBoolean",()=>Wn) | ||
n.d(O,"isNumber",()=>Xn) | ||
@@ -322,4 +322,4 @@ n.d(O,"isInteger",()=>Zn) | ||
n.d(k,"createStateStoreEnhanced",()=>Gr) | ||
n.d(k,"toReduxStore",()=>Wr) | ||
n.d(k,"reducerFromMap",()=>Jr) | ||
n.d(k,"toReduxStore",()=>Jr) | ||
n.d(k,"reducerFromMap",()=>Wr) | ||
n.d(k,"createEntryEnhancer",()=>Xr) | ||
@@ -395,4 +395,4 @@ n.d(k,"createStoreStateSyncReducer",()=>Zr) | ||
n.d(R,"withTimeoutAsync",()=>Go) | ||
n.d(R,"withTimeoutPromise",()=>Wo) | ||
n.d(R,"createInsideOutPromise",()=>Jo) | ||
n.d(R,"withTimeoutPromise",()=>Jo) | ||
n.d(R,"createInsideOutPromise",()=>Wo) | ||
var P={} | ||
@@ -456,15 +456,15 @@ n.r(P) | ||
n.r(V) | ||
n.d(V,"verifyOption",()=>Ks) | ||
n.d(V,"verifyCheckCode",()=>Qs) | ||
n.d(V,"verifyParsedCheckCode",()=>Vs) | ||
n.d(V,"generateLookupData",()=>Hs) | ||
n.d(V,"generateCheckCode",()=>Ys) | ||
n.d(V,"packCheckCode",()=>Gs) | ||
n.d(V,"parseCheckCode",()=>Ws) | ||
n.d(V,"packDataArrayBuffer",()=>Js) | ||
n.d(V,"parseDataArrayBuffer",()=>Xs) | ||
n.d(V,"verifyOption",()=>Vs) | ||
n.d(V,"verifyCheckCode",()=>Hs) | ||
n.d(V,"verifyParsedCheckCode",()=>Ys) | ||
n.d(V,"generateLookupData",()=>Gs) | ||
n.d(V,"generateCheckCode",()=>Js) | ||
n.d(V,"packCheckCode",()=>Ws) | ||
n.d(V,"parseCheckCode",()=>Xs) | ||
n.d(V,"packDataArrayBuffer",()=>Zs) | ||
n.d(V,"parseDataArrayBuffer",()=>ta) | ||
var H={} | ||
n.r(H) | ||
n.d(H,"createUpdater",()=>Zs) | ||
n.d(H,"createUpdateLoop",()=>ta) | ||
n.d(H,"createUpdater",()=>ea) | ||
n.d(H,"createUpdateLoop",()=>na) | ||
var Y={} | ||
@@ -488,21 +488,21 @@ n.r(Y) | ||
n.r(G) | ||
n.d(G,"objectMergeDeep",()=>ea) | ||
n.d(G,"objectSortKey",()=>na) | ||
n.d(G,"objectMergeDeep",()=>ra) | ||
n.d(G,"objectSortKey",()=>oa) | ||
var J={} | ||
n.r(J) | ||
n.d(J,"Object",()=>G) | ||
var W={} | ||
n.r(W) | ||
n.d(W,"Object",()=>G) | ||
var J={} | ||
n.r(J) | ||
n.d(J,"indentLine",()=>oa) | ||
n.d(J,"indentList",()=>sa) | ||
n.d(J,"autoEllipsis",()=>aa) | ||
n.d(J,"splitCamelCase",()=>da) | ||
n.d(J,"joinCamelCase",()=>ha) | ||
n.d(J,"splitSnakeCase",()=>ua) | ||
n.d(J,"joinSnakeCase",()=>pa) | ||
n.d(J,"splitKebabCase",()=>la) | ||
n.d(J,"joinKebabCase",()=>fa) | ||
n.d(J,"escapeHTML",()=>wa) | ||
n.d(J,"unescapeHTML",()=>Aa) | ||
n.d(J,"removeInvalidCharXML",()=>Sa) | ||
n.d(W,"indentLine",()=>aa) | ||
n.d(W,"indentList",()=>ca) | ||
n.d(W,"autoEllipsis",()=>ia) | ||
n.d(W,"splitCamelCase",()=>la) | ||
n.d(W,"joinCamelCase",()=>fa) | ||
n.d(W,"splitSnakeCase",()=>ha) | ||
n.d(W,"joinSnakeCase",()=>ya) | ||
n.d(W,"splitKebabCase",()=>pa) | ||
n.d(W,"joinKebabCase",()=>ga) | ||
n.d(W,"escapeHTML",()=>ba) | ||
n.d(W,"unescapeHTML",()=>Sa) | ||
n.d(W,"removeInvalidCharXML",()=>La) | ||
var X={} | ||
@@ -515,3 +515,3 @@ n.r(X) | ||
n.d(X,"Module",()=>Y) | ||
n.d(X,"Mutable",()=>W) | ||
n.d(X,"Mutable",()=>J) | ||
n.d(X,"Check",()=>O) | ||
@@ -522,3 +522,3 @@ n.d(X,"Compare",()=>F) | ||
n.d(X,"Function",()=>R) | ||
n.d(X,"String",()=>J) | ||
n.d(X,"String",()=>W) | ||
n.d(X,"Time",()=>C) | ||
@@ -528,10 +528,10 @@ n.d(X,"Verify",()=>T) | ||
n.r(Z) | ||
n.d(Z,"Blob",()=>Oa) | ||
n.d(Z,"parseBlobAsText",()=>ka) | ||
n.d(Z,"parseBlobAsDataURL",()=>ja) | ||
n.d(Z,"parseBlobAsArrayBuffer",()=>Da) | ||
n.d(Z,"Blob",()=>Ta) | ||
n.d(Z,"parseBlobAsText",()=>Da) | ||
n.d(Z,"parseBlobAsDataURL",()=>Ca) | ||
n.d(Z,"parseBlobAsArrayBuffer",()=>Ra) | ||
var tt={} | ||
n.r(tt) | ||
n.d(tt,"packBlobPacket",()=>Ra) | ||
n.d(tt,"parseBlobPacket",()=>Pa) | ||
n.d(tt,"packBlobPacket",()=>$a) | ||
n.d(tt,"parseBlobPacket",()=>_a) | ||
var et={} | ||
@@ -543,9 +543,9 @@ n.r(et) | ||
n.r(nt) | ||
n.d(nt,"createKeyCommandHub",()=>$a) | ||
n.d(nt,"createKeyCommandHub",()=>Ba) | ||
var rt={} | ||
n.r(rt) | ||
n.d(rt,"POINTER_EVENT_TYPE",()=>_a) | ||
n.d(rt,"applyPointerEventListener",()=>Ba) | ||
n.d(rt,"ENHANCED_POINTER_EVENT_TYPE",()=>Na) | ||
n.d(rt,"applyEnhancedPointerEventListener",()=>Fa) | ||
n.d(rt,"POINTER_EVENT_TYPE",()=>Na) | ||
n.d(rt,"applyPointerEventListener",()=>Fa) | ||
n.d(rt,"ENHANCED_POINTER_EVENT_TYPE",()=>Ia) | ||
n.d(rt,"applyEnhancedPointerEventListener",()=>za) | ||
var ot={} | ||
@@ -557,6 +557,6 @@ n.r(ot) | ||
n.r(st) | ||
n.d(st,"createHistoryStateStore",()=>Ia) | ||
n.d(st,"createHistoryStateStore",()=>Ua) | ||
var at={} | ||
n.r(at) | ||
n.d(at,"createSyncStateStorage",()=>za) | ||
n.d(at,"createSyncStateStorage",()=>qa) | ||
var ct={} | ||
@@ -568,21 +568,21 @@ n.r(ct) | ||
n.r(it) | ||
n.d(it,"throttleByAnimationFrame",()=>Ua) | ||
n.d(it,"applyDragFileListListener",()=>Ka) | ||
n.d(it,"getPathElementList",()=>Qa) | ||
n.d(it,"getElementAtViewport",()=>Va) | ||
n.d(it,"throttleByAnimationFrame",()=>Ka) | ||
n.d(it,"applyDragFileListListener",()=>Va) | ||
n.d(it,"getPathElementList",()=>Ha) | ||
n.d(it,"getElementAtViewport",()=>Ya) | ||
var dt={} | ||
n.r(dt) | ||
n.d(dt,"fetchLikeRequest",()=>Ja) | ||
n.d(dt,"fetchLikeRequest",()=>Za) | ||
var ut={} | ||
n.r(ut) | ||
n.d(ut,"loadText",()=>uc) | ||
n.d(ut,"loadImage",()=>lc) | ||
n.d(ut,"loadScript",()=>hc) | ||
n.d(ut,"createDownload",()=>pc) | ||
n.d(ut,"createDownloadWithBlob",()=>fc) | ||
n.d(ut,"createDownloadWithString",()=>yc) | ||
n.d(ut,"createDownloadWithObject",()=>gc) | ||
n.d(ut,"saveArrayBufferCache",()=>mc) | ||
n.d(ut,"loadArrayBufferCache",()=>vc) | ||
n.d(ut,"deleteArrayBufferCache",()=>wc) | ||
n.d(ut,"loadText",()=>hc) | ||
n.d(ut,"loadImage",()=>pc) | ||
n.d(ut,"loadScript",()=>fc) | ||
n.d(ut,"createDownload",()=>yc) | ||
n.d(ut,"createDownloadWithBlob",()=>gc) | ||
n.d(ut,"createDownloadWithString",()=>mc) | ||
n.d(ut,"createDownloadWithObject",()=>vc) | ||
n.d(ut,"saveArrayBufferCache",()=>wc) | ||
n.d(ut,"loadArrayBufferCache",()=>xc) | ||
n.d(ut,"deleteArrayBufferCache",()=>bc) | ||
var lt={} | ||
@@ -804,3 +804,3 @@ n.r(lt) | ||
return e} | ||
const Wt=t=>{const e=(e,n)=>{const r=t(n) | ||
const Jt=t=>{const e=(e,n)=>{const r=t(n) | ||
Array.isArray(r)&&e.unshift(...r)} | ||
@@ -812,3 +812,3 @@ return(t,n)=>{let r | ||
e(o,r)}}} | ||
const Jt=t=>{const e=async(e,n)=>{const r=await t(n) | ||
const Wt=t=>{const e=async(e,n)=>{const r=await t(n) | ||
Array.isArray(r)&&e.unshift(...r)} | ||
@@ -851,3 +851,3 @@ return async(t,n)=>{let r | ||
const ne=(t,e,n)=>{const r=[] | ||
Wt(e)(t,([t,e,o])=>{r.length=e | ||
Jt(e)(t,([t,e,o])=>{r.length=e | ||
0!==e&&(r[e-1]=o?"├─ ":"└─ ") | ||
@@ -936,4 +936,4 @@ n(r.join(""),t) | ||
const Ge=(t,e)=>!(t.max.x<e.min.x||t.min.x>e.max.x||t.max.y<e.min.y||t.min.y>e.max.y) | ||
const We=(t,e)=>t.min.x<=e.min.x&&t.max.x>=e.max.x&&t.min.y<=e.min.y&&t.max.y>=e.max.y | ||
const Je=({min:t,max:e},{x:n,y:r})=>n>=t.x&&n<=e.x&&r>=t.y&&r<=e.y | ||
const Je=(t,e)=>t.min.x<=e.min.x&&t.max.x>=e.max.x&&t.min.y<=e.min.y&&t.max.y>=e.max.y | ||
const We=({min:t,max:e},{x:n,y:r})=>n>=t.x&&n<=e.x&&r>=t.y&&r<=e.y | ||
const Xe=t=>Math.round(1e4*t)/1e4 | ||
@@ -1040,4 +1040,4 @@ const Ze=(t,e)=>Math.sign(t)*Math.max(0,Math.abs(t)+e) | ||
delete e[n]}return e||t} | ||
const Wn=t=>"string"==typeof t | ||
const Jn=t=>"boolean"==typeof t | ||
const Jn=t=>"string"==typeof t | ||
const Wn=t=>"boolean"==typeof t | ||
const Xn=t=>"number"==typeof t | ||
@@ -1100,4 +1100,4 @@ const Zn=Number.isInteger | ||
const Mr=(t,e)=>(n,r)=>e(n)||Ar(t,r,`get: ${pr(n)}`) | ||
const Sr=Mr("String",Wn) | ||
const Or=Mr("Boolean",Jn) | ||
const Sr=Mr("String",Jn) | ||
const Or=Mr("Boolean",Wn) | ||
const Lr=Mr("Number",Xn) | ||
@@ -1150,3 +1150,3 @@ const Tr=Mr("Integer",Zn) | ||
return{subscribe:r,unsubscribe:o,getState:u,dispatch:l}} | ||
const Wr=t=>{const{subscribe:e,unsubscribe:n}=t | ||
const Jr=t=>{const{subscribe:e,unsubscribe:n}=t | ||
$r(e,"store.subscribe required") | ||
@@ -1156,3 +1156,3 @@ $r(n,"store.unsubscribe required") | ||
return()=>n(t)}})} | ||
const Jr=t=>{const e=Object.keys(t) | ||
const Wr=t=>{const e=Object.keys(t) | ||
const n=e.length | ||
@@ -1279,8 +1279,8 @@ return(r,o)=>{const s={} | ||
s>0&&await _o(s)}}} | ||
const Go=(t,e)=>Wo(t(),e) | ||
const Wo=(t,e)=>{let n=null | ||
const Go=(t,e)=>Jo(t(),e) | ||
const Jo=(t,e)=>{let n=null | ||
return Promise.race([t,new Promise((t,r)=>{n=setTimeout(()=>r(new Error(`timeout after: ${e}`)),e)})]).then(t=>{clearTimeout(n) | ||
return t},t=>{clearTimeout(n) | ||
throw t})} | ||
const Jo=()=>{let t,e | ||
const Wo=()=>{let t,e | ||
return{promise:new Promise((n,r)=>{t=n | ||
@@ -1297,3 +1297,3 @@ e=r}),resolve:n=>{const r=t | ||
e=Xo() | ||
n=Promise.resolve("QUEUE_HEAD")},getLength:()=>e.A(),pushTask:r=>{const{promise:o,resolve:s}=Jo() | ||
n=Promise.resolve("QUEUE_HEAD")},getLength:()=>e.A(),pushTask:r=>{const{promise:o,resolve:s}=Wo() | ||
const a=n.then(r) | ||
@@ -1383,3 +1383,3 @@ a.catch(t).then(()=>{e.C() | ||
return{stringify:t=>JSON.stringify(t).replace(r,"[").replace(o,(t,e)=>"]".repeat(e.length/2)).replace(n,","),parse:n=>JSON.parse(n.replace(s,`"},{"${t}":"`).replace(c,(e,n,r,o)=>`"${"}]".repeat(n.length)}${r+e.length!==o.length?`},{"${t}":"`:""}`).replace(a,(n,r)=>`${0!==r?`","${e}":`:""}[{"${t}":"`))}} | ||
const ws=({NAME_KEY:t="key",NAME_SUB_LIST:e="subList"})=>{const n=Wt(([n,r,o])=>n[e]&&n[e].length&&n[e].map((e,r)=>[e,r,n[t]])) | ||
const ws=({NAME_KEY:t="key",NAME_SUB_LIST:e="subList"})=>{const n=Jt(([n,r,o])=>n[e]&&n[e].length&&n[e].map((e,r)=>[e,r,n[t]])) | ||
return Object.assign({},vs({NAME_KEY:t,NAME_SUB_LIST:e}),{createBuilder:n=>{const r=new Map | ||
@@ -1505,11 +1505,13 @@ const o=n=>{const a={[t]:n} | ||
return n.major-r.major||n.minor-r.minor||n.patch-r.patch||zs(n.label,r.label)} | ||
const zs=(t,e)=>t===e?0:e.startsWith(t)?1:t.startsWith(e)?-1:fs(t,e) | ||
const Us="1".charCodeAt(0) | ||
const qs=(t,e,n,r=0)=>{const o=(r=Math.floor(r)).toString(2) | ||
const zs=(t,e)=>t===e?0:qs(t,e)?1:qs(e,t)?-1:fs(t,e) | ||
const Us=/\d\d/ | ||
const qs=(t,e)=>e.startsWith(t)&&!Us.test(e.slice(t.length-1,t.length+1)) | ||
const Ks="1".charCodeAt(0) | ||
const Qs=(t,e,n,r=0)=>{const o=(r=Math.floor(r)).toString(2) | ||
const s=Math.pow(16,e) | ||
let a=r%t | ||
let c=n.getUint8(a) | ||
for(let e=0,r=o.length;e<r;e++){o.charCodeAt(e)===Us?a=(a+n.getUint8((a+1)%t))%t:c*=16 | ||
for(let e=0,r=o.length;e<r;e++){o.charCodeAt(e)===Ks?a=(a+n.getUint8((a+1)%t))%t:c*=16 | ||
c=(c+n.getUint8(a))%s}return(c%Math.pow(2,4*e)).toString(16).padStart(e,"0")} | ||
const Ks=({tag:t=$o().toString(36),size:e=65536,tokenSize:n=8,timeGap:r=30})=>{if(!/^\w*$/.test(t))throw new Error(`invalid tag: ${t}`) | ||
const Vs=({tag:t=$o().toString(36),size:e=65536,tokenSize:n=8,timeGap:r=30})=>{if(!/^\w*$/.test(t))throw new Error(`invalid tag: ${t}`) | ||
if(!Number.isInteger(e)||e<=1024||e%32)throw new Error(`invalid size: ${e}`) | ||
@@ -1519,21 +1521,21 @@ if(!Number.isInteger(n)||n>13||n<2)throw new Error(`invalid tokenSize: ${n}`) | ||
return{tag:t,size:e,tokenSize:n,timeGap:r}} | ||
const Qs=(t,e,n=$o())=>{if("string"!=typeof e||e.length<t.tokenSize)throw new Error(`invalid checkCode: ${e}`) | ||
Vs(t,Ws(e),n)} | ||
const Vs=({tag:t,size:e,tokenSize:n,timeGap:r,dataView:o},[s,a,c],i=$o())=>{if(s!==t)throw new Error(`tag mismatch: ${s}, expect: ${t}`) | ||
const Hs=(t,e,n=$o())=>{if("string"!=typeof e||e.length<t.tokenSize)throw new Error(`invalid checkCode: ${e}`) | ||
Ys(t,Xs(e),n)} | ||
const Ys=({tag:t,size:e,tokenSize:n,timeGap:r,dataView:o},[s,a,c],i=$o())=>{if(s!==t)throw new Error(`tag mismatch: ${s}, expect: ${t}`) | ||
if(Math.abs(i-a)>r)throw new Error(`timestamp mismatch: ${a}, expect: ${i}±${r}`) | ||
const d=qs(e,n,o,a/r) | ||
const d=Qs(e,n,o,a/r) | ||
if(d!==c)throw new Error(`code mismatch: ${c}, expect: ${d}`)} | ||
const Hs=t=>{t=Ks(t) | ||
const Gs=t=>{t=Vs(t) | ||
return Object.assign({},t,{dataView:new DataView(Object(To.a)(t.size))})} | ||
const Ys=({tag:t,size:e,tokenSize:n,timeGap:r,dataView:o},s=$o())=>{const a=qs(e,n,o,s/r) | ||
return Gs(t,s,a)} | ||
const Gs=(t,e,n)=>se([t,e.toString(36),n].join("-")) | ||
const Ws=t=>{const e=se(t).split("-") | ||
const Js=({tag:t,size:e,tokenSize:n,timeGap:r,dataView:o},s=$o())=>{const a=Qs(e,n,o,s/r) | ||
return Ws(t,s,a)} | ||
const Ws=(t,e,n)=>se([t,e.toString(36),n].join("-")) | ||
const Xs=t=>{const e=se(t).split("-") | ||
e[1]=Number.parseInt(e[1],36) | ||
return e} | ||
const Js=({tag:t,size:e,tokenSize:n,timeGap:r,dataView:o})=>Tt(JSON.stringify([t,e,n,r]),o.buffer) | ||
const Xs=t=>{const[e,n]=kt(t) | ||
const Zs=({tag:t,size:e,tokenSize:n,timeGap:r,dataView:o})=>Tt(JSON.stringify([t,e,n,r]),o.buffer) | ||
const ta=t=>{const[e,n]=kt(t) | ||
const[r,o,s,a]=JSON.parse(e) | ||
return{tag:r,size:o,tokenSize:s,timeGap:a,dataView:new DataView(n)}} | ||
const Zs=()=>{let t | ||
const ea=()=>{let t | ||
let e | ||
@@ -1555,48 +1557,48 @@ let n | ||
n.forEach(s)}}} | ||
const ta=({delay:t,queueTask:e=Bo,cancelTask:n=No}={})=>{const{clear:r,pushFunc:o,setFunc:s,deleteFunc:a,update:c}=Zs() | ||
const na=({delay:t,queueTask:e=Bo,cancelTask:n=No}={})=>{const{clear:r,pushFunc:o,setFunc:s,deleteFunc:a,update:c}=ea() | ||
const{start:i,stop:d}=Fo({func:c,queueTask:e,cancelTask:n,delay:t}) | ||
return{start:i,stop:d,clear:r,pushFunc:o,setFunc:s,deleteFunc:a}} | ||
const ea=(t,e)=>{Object.entries(e).forEach(([e,n])=>{const r=t[e] | ||
r!==n&&(t[e]=er(r)&&er(n)?ea(r,n):n)}) | ||
const ra=(t,e)=>{Object.entries(e).forEach(([e,n])=>{const r=t[e] | ||
r!==n&&(t[e]=er(r)&&er(n)?ra(r,n):n)}) | ||
return t} | ||
const na=(t,e=ps)=>{Object.keys(t).sort(e).forEach(e=>{const n=t[e] | ||
const oa=(t,e=ps)=>{Object.keys(t).sort(e).forEach(e=>{const n=t[e] | ||
delete t[e] | ||
t[e]=n}) | ||
return t} | ||
const ra=/\n/g | ||
const oa=(t,e=" ",n=e)=>`${n}${t.replace(ra,`\n${e}`)}` | ||
const sa=(t,e=[],n=" - ",r=" ".repeat(n.length))=>[t,...e.map(t=>oa(t,r,n))].join("\n") | ||
const aa=(t="",e=64,n=32,r=16)=>t.length>e?`${t.slice(0,n)}...${r>0?t.slice(-r):""} (+${t.length-n-r})`:t | ||
const ca=/[^A-Z]/ | ||
const ia=/([^A-Z]|[A-Z]{2,})([A-Z])/g | ||
const da=t=>ca.test(t)?t.replace(ia,"$1 $2").split(" "):[t] | ||
const ua=t=>t.split("_") | ||
const la=t=>t.split("-") | ||
const ha=(t,e=1)=>t.reduce((t,n,r)=>t+(r<e?n:ya(n)),"") | ||
const pa=t=>t.join("_").toUpperCase() | ||
const fa=t=>t.join("-").toLowerCase() | ||
const ya=t=>t.charAt(0).toUpperCase()+t.slice(1) | ||
const ga={'"':""","&":"&","'":"'","<":"<",">":">"} | ||
const ma=/["&'<>]/g | ||
const va=t=>ga[t]||t | ||
const wa=t=>t&&t.replace(ma,va) | ||
const xa={""":'"',""":'"',"&":"&","&":"&","'":"'","'":"'","<":"<","<":"<",">":">",">":">"} | ||
const ba=/&(?:#34|quot|#38|amp|#39|apos|#60|lt|#62|gt);/g | ||
const Ea=t=>xa[t]||t | ||
const Aa=t=>t&&t.replace(ba,Ea) | ||
const Ma=/[^\x09\x0A\x0D\x20-\xFF\x85\xA0-\uD7FF\uE000-\uFDCF\uFDE0-\uFFFD]/gm | ||
const Sa=t=>t.replace(Ma,"") | ||
const{Blob:Oa,FileReader:La}=window | ||
const Ta=t=>e=>new Promise((n,r)=>{const o=new La | ||
const sa=/\n/g | ||
const aa=(t,e=" ",n=e)=>`${n}${t.replace(sa,`\n${e}`)}` | ||
const ca=(t,e=[],n=" - ",r=" ".repeat(n.length))=>[t,...e.map(t=>aa(t,r,n))].join("\n") | ||
const ia=(t="",e=64,n=32,r=16)=>t.length>e?`${t.slice(0,n)}...${r>0?t.slice(-r):""} (+${t.length-n-r})`:t | ||
const da=/[^A-Z]/ | ||
const ua=/([^A-Z]|[A-Z]{2,})([A-Z])/g | ||
const la=t=>da.test(t)?t.replace(ua,"$1 $2").split(" "):[t] | ||
const ha=t=>t.split("_") | ||
const pa=t=>t.split("-") | ||
const fa=(t,e=1)=>t.reduce((t,n,r)=>t+(r<e?n:ma(n)),"") | ||
const ya=t=>t.join("_").toUpperCase() | ||
const ga=t=>t.join("-").toLowerCase() | ||
const ma=t=>t.charAt(0).toUpperCase()+t.slice(1) | ||
const va={'"':""","&":"&","'":"'","<":"<",">":">"} | ||
const wa=/["&'<>]/g | ||
const xa=t=>va[t]||t | ||
const ba=t=>t&&t.replace(wa,xa) | ||
const Ea={""":'"',""":'"',"&":"&","&":"&","'":"'","'":"'","<":"<","<":"<",">":">",">":">"} | ||
const Aa=/&(?:#34|quot|#38|amp|#39|apos|#60|lt|#62|gt);/g | ||
const Ma=t=>Ea[t]||t | ||
const Sa=t=>t&&t.replace(Aa,Ma) | ||
const Oa=/[^\x09\x0A\x0D\x20-\xFF\x85\xA0-\uD7FF\uE000-\uFDCF\uFDE0-\uFFFD]/gm | ||
const La=t=>t.replace(Oa,"") | ||
const{Blob:Ta,FileReader:ka}=window | ||
const ja=t=>e=>new Promise((n,r)=>{const o=new ka | ||
o.addEventListener("error",r) | ||
o.addEventListener("load",()=>n(o.result)) | ||
o[t](e)}) | ||
const ka=Ta("readAsText") | ||
const ja=Ta("readAsDataURL") | ||
const Da=Ta("readAsArrayBuffer") | ||
const Ca=new Oa | ||
const Ra=(t,e=Ca)=>new Oa([...Ot(Et(t)),e]) | ||
const Pa=async t=>{const e=new DataView(await Da(t.slice(0,Mt))).getUint32(0,!1) | ||
return[bt(await Da(t.slice(Mt,Mt+e))),t.slice(Mt+e)]} | ||
const $a=({eventSource:t=window.document,isSkipPreventDefault:e=!1})=>{const n=new Map | ||
const Da=ja("readAsText") | ||
const Ca=ja("readAsDataURL") | ||
const Ra=ja("readAsArrayBuffer") | ||
const Pa=new Ta | ||
const $a=(t,e=Pa)=>new Ta([...Ot(Et(t)),e]) | ||
const _a=async t=>{const e=new DataView(await Ra(t.slice(0,Mt))).getUint32(0,!1) | ||
return[bt(await Ra(t.slice(Mt,Mt+e))),t.slice(Mt+e)]} | ||
const Ba=({eventSource:t=window.document,isSkipPreventDefault:e=!1})=>{const n=new Map | ||
const r=t=>n.forEach(n=>{const{target:r,checkMap:o,callback:s}=n | ||
@@ -1610,4 +1612,4 @@ if((!r||r.contains(t.target))&&rr(t,o)){!e&&t.preventDefault() | ||
return t},deleteKeyCommand:({id:t})=>n.delete(t)}} | ||
const _a={START:"START",MOVE:"MOVE",END:"END",CANCEL:"CANCEL"} | ||
const Ba=({element:t,onEvent:e,isGlobal:n=!1,isCancel:r=!0,isCancelOnOutOfBound:o=!0,isUseTouchEvent:s=!0})=>{!window.getComputedStyle(t).touchAction&&console.warn("[applyPointerEventListener] should set CSS 'touch-action' to 'none' to prevent browser defaults") | ||
const Na={START:"START",MOVE:"MOVE",END:"END",CANCEL:"CANCEL"} | ||
const Fa=({element:t,onEvent:e,isGlobal:n=!1,isCancel:r=!0,isCancelOnOutOfBound:o=!0,isUseTouchEvent:s=!0})=>{!window.getComputedStyle(t).touchAction&&console.warn("[applyPointerEventListener] should set CSS 'touch-action' to 'none' to prevent browser defaults") | ||
const a=n?window.document:t | ||
@@ -1648,10 +1650,10 @@ o=r&&o | ||
s&&r&&a.addEventListener("touchcancel",w) | ||
e(_a.START,t,f)}} | ||
e(Na.START,t,f)}} | ||
const m=n=>{if(y(n))return | ||
const{point:r}=f(n) | ||
if(o&&!ye(t.getBoundingClientRect(),r))return w(n) | ||
e(_a.MOVE,n,f)} | ||
const v=t=>{if(!y(t)){e(_a.END,t,f) | ||
e(Na.MOVE,n,f)} | ||
const v=t=>{if(!y(t)){e(Na.END,t,f) | ||
h()}} | ||
const w=t=>{if(!y(t)){e(_a.CANCEL,t,f) | ||
const w=t=>{if(!y(t)){e(Na.CANCEL,t,f) | ||
h()}} | ||
@@ -1664,4 +1666,4 @@ t.addEventListener("pointerdown",g) | ||
h()}} | ||
const Na={TAP:"TAP",HOLD:"HOLD",DRAG_MOVE:"DRAG_MOVE",DRAG_END:"DRAG_END",DRAG_CANCEL:"DRAG_CANCEL"} | ||
const Fa=t=>{let{onEnhancedEvent:e,onEvent:n,holdDurationThreshold:r=500,dragDistanceThreshold:o=5}=t,s=function(t,e){if(null==t)return{} | ||
const Ia={TAP:"TAP",HOLD:"HOLD",DRAG_MOVE:"DRAG_MOVE",DRAG_END:"DRAG_END",DRAG_CANCEL:"DRAG_CANCEL"} | ||
const za=t=>{let{onEnhancedEvent:e,onEvent:n,holdDurationThreshold:r=500,dragDistanceThreshold:o=5}=t,s=function(t,e){if(null==t)return{} | ||
var n={} | ||
@@ -1673,11 +1675,11 @@ var r=Object.keys(t) | ||
let a=!1 | ||
return Ba(Object.assign({onEvent:(t,s,c)=>{const i=c(s) | ||
switch(t){case _a.START:a=!1 | ||
return Fa(Object.assign({onEvent:(t,s,c)=>{const i=c(s) | ||
switch(t){case Na.START:a=!1 | ||
break | ||
case _a.MOVE:(a|=i.distance>=o)&&e(Na.DRAG_MOVE,i) | ||
case Na.MOVE:(a|=i.distance>=o)&&e(Ia.DRAG_MOVE,i) | ||
break | ||
case _a.END:a?e(Na.DRAG_END,i):i.duration>=r?e(Na.HOLD,i):e(Na.TAP,i) | ||
case Na.END:a?e(Ia.DRAG_END,i):i.duration>=r?e(Ia.HOLD,i):e(Ia.TAP,i) | ||
break | ||
case _a.CANCEL:a&&e(Na.DRAG_CANCEL,i)}n&&n(t,s,c)}},s))} | ||
const Ia=(t=window.location.href)=>{const e=(e,n)=>{if("string"!=typeof e)throw new Error(`non-string href: ${e}`) | ||
case Na.CANCEL:a&&e(Ia.DRAG_CANCEL,i)}n&&n(t,s,c)}},s))} | ||
const Ua=(t=window.location.href)=>{const e=(e,n)=>{if("string"!=typeof e)throw new Error(`non-string href: ${e}`) | ||
if(e===t)return t | ||
@@ -1698,3 +1700,3 @@ const r=t | ||
window.removeEventListener("hashchange",r)}}}} | ||
const za=({keyPrefix:t="STATE",setItem:e=((e,n)=>window.localStorage.setItem(`${t}|${e}`,JSON.stringify(n))),getItem:n=(e=>JSON.parse(window.localStorage.getItem(`${t}|${e}`))),removeItem:r=(e=>window.localStorage.removeItem(`${t}|${e}`))})=>{let o={} | ||
const qa=({keyPrefix:t="STATE",setItem:e=((e,n)=>window.localStorage.setItem(`${t}|${e}`,JSON.stringify(n))),getItem:n=(e=>JSON.parse(window.localStorage.getItem(`${t}|${e}`))),removeItem:r=(e=>window.localStorage.removeItem(`${t}|${e}`))})=>{let o={} | ||
let s=[] | ||
@@ -1715,3 +1717,3 @@ const a=t=>{o={} | ||
return{reset:a,init:t=>a(Object.assign({},t,i())),save:c,load:i}} | ||
const Ua=t=>{let e=null | ||
const Ka=t=>{let e=null | ||
const n=()=>{const n=e | ||
@@ -1722,14 +1724,14 @@ e=null | ||
e=t}} | ||
const qa=t=>{t.stopPropagation() | ||
const Qa=t=>{t.stopPropagation() | ||
t.preventDefault()} | ||
const Ka=(t=window.document,e)=>{const n=t=>{qa(t) | ||
const Va=(t=window.document,e)=>{const n=t=>{Qa(t) | ||
const{files:n}=t.dataTransfer | ||
n&&n.length&&e(n)} | ||
t.addEventListener("dragenter",qa) | ||
t.addEventListener("dragover",qa) | ||
t.addEventListener("dragenter",Qa) | ||
t.addEventListener("dragover",Qa) | ||
t.addEventListener("drop",n) | ||
return()=>{t.removeEventListener("dragenter",qa) | ||
t.removeEventListener("dragover",qa) | ||
return()=>{t.removeEventListener("dragenter",Qa) | ||
t.removeEventListener("dragover",Qa) | ||
t.removeEventListener("drop",n)}} | ||
const Qa=(t,e)=>{if(!t.contains(e))return[] | ||
const Ha=(t,e)=>{if(!t.contains(e))return[] | ||
let n=e | ||
@@ -1739,3 +1741,3 @@ const r=[] | ||
n=n.parentElement}return r} | ||
const Va=(t,e)=>{const n=e&&e.map(t=>{const{visibility:e}=t.style | ||
const Ya=(t,e)=>{const n=e&&e.map(t=>{const{visibility:e}=t.style | ||
t.style.visibility="hidden" | ||
@@ -1746,6 +1748,6 @@ return e}) | ||
return r} | ||
const{XMLHttpRequest:Ha,Blob:Ya,TextDecoder:Ga}=ft.c | ||
const Wa=/[\r\n]+/ | ||
const Ja=(t,{method:e="GET",headers:n,body:r,timeout:o=0,credentials:s,onUploadProgress:a,onDownloadProgress:c}={})=>new Promise((i,d)=>{const u=(n,r)=>Object.assign(new Error(n),{status:r,url:t,method:e}) | ||
const l=new Ha | ||
const{XMLHttpRequest:Ga,Blob:Ja,TextDecoder:Wa}=ft.c | ||
const Xa=/[\r\n]+/ | ||
const Za=(t,{method:e="GET",headers:n,body:r,timeout:o=0,credentials:s,onUploadProgress:a,onDownloadProgress:c}={})=>new Promise((i,d)=>{const u=(n,r)=>Object.assign(new Error(n),{status:r,url:t,method:e}) | ||
const l=new Ga | ||
l.onerror=()=>d(u("NETWORK_ERROR",-1)) | ||
@@ -1756,6 +1758,6 @@ l.ontimeout=()=>d(u("NETWORK_TIMEOUT",-1)) | ||
if(0===e){l.abort() | ||
return d(u("HEADER_STATUS_ERROR",-1))}const n=l.getAllResponseHeaders().split(Wa).reduce((t,e)=>{const[n,...r]=e.split(":") | ||
return d(u("HEADER_STATUS_ERROR",-1))}const n=l.getAllResponseHeaders().split(Xa).reduce((t,e)=>{const[n,...r]=e.split(":") | ||
r.length&&(t[n.trim().toLowerCase()]=r.join(":").trim()) | ||
return t},{}) | ||
i(Object.assign({status:e,ok:e>=200&&e<300,headers:n},Xa(l,u)))} | ||
i(Object.assign({status:e,ok:e>=200&&e<300,headers:n},tc(l,u)))} | ||
a&&l.upload&&(l.upload.onprogress=a) | ||
@@ -1769,3 +1771,3 @@ c&&(l.onprogress=c) | ||
l.send(r||null)}) | ||
const Xa=(t,e)=>{let n | ||
const tc=(t,e)=>{let n | ||
let r | ||
@@ -1781,31 +1783,31 @@ setTimeout(()=>{if(!n){r=!0 | ||
n(t.response)}}})} | ||
const s=()=>o().then(tc) | ||
return{arrayBuffer:o,blob:()=>o().then(Za),text:s,json:()=>s().then(ec)}} | ||
const Za=t=>new Ya([t]) | ||
const tc=t=>(new Ga).decode(t) | ||
const ec=t=>JSON.parse(t) | ||
const{fetch:nc,navigator:rc,caches:oc,URL:sc,Blob:ac,Request:cc,Response:ic}=window | ||
const dc=(t,e={})=>Object.assign(document.createElement(t),e) | ||
const uc=async t=>(await nc(t)).text() | ||
const lc=t=>new Promise((e,n)=>dc("img",{src:t,onerror:n,onload:t=>e(t.currentTarget)})) | ||
const hc=t=>new Promise((e,n)=>document.body.appendChild(dc("script",{src:t,async:!1,type:Ms.js,onerror:n,onload:t=>e(t.currentTarget)}))) | ||
const pc=(t,e)=>{const n=dc("a",{download:t,href:e}) | ||
const s=()=>o().then(nc) | ||
return{arrayBuffer:o,blob:()=>o().then(ec),text:s,json:()=>s().then(rc)}} | ||
const ec=t=>new Ja([t]) | ||
const nc=t=>(new Wa).decode(t) | ||
const rc=t=>JSON.parse(t) | ||
const{fetch:oc,navigator:sc,caches:ac,URL:cc,Blob:ic,Request:dc,Response:uc}=window | ||
const lc=(t,e={})=>Object.assign(document.createElement(t),e) | ||
const hc=async t=>(await oc(t)).text() | ||
const pc=t=>new Promise((e,n)=>lc("img",{src:t,onerror:n,onload:t=>e(t.currentTarget)})) | ||
const fc=t=>new Promise((e,n)=>document.body.appendChild(lc("script",{src:t,async:!1,type:Ms.js,onerror:n,onload:t=>e(t.currentTarget)}))) | ||
const yc=(t,e)=>{const n=lc("a",{download:t,href:e}) | ||
document.body.appendChild(n) | ||
n.click() | ||
document.body.removeChild(n)} | ||
const fc=(t,e)=>{if(rc.msSaveOrOpenBlob)return rc.msSaveOrOpenBlob(e,t) | ||
const n=sc.createObjectURL(e) | ||
pc(t,n) | ||
setTimeout(()=>sc.revokeObjectURL(n),5e3)} | ||
const yc=(t,e,n=Ms.txt)=>fc(t,new ac([e],{type:n})) | ||
const gc=(t,e,n=Ms.json)=>yc(t,JSON.stringify(e),n) | ||
const mc=async(t,e,n)=>{const r=await oc.open(t) | ||
await r.put(new cc(e),new ic(n)) | ||
const gc=(t,e)=>{if(sc.msSaveOrOpenBlob)return sc.msSaveOrOpenBlob(e,t) | ||
const n=cc.createObjectURL(e) | ||
yc(t,n) | ||
setTimeout(()=>cc.revokeObjectURL(n),5e3)} | ||
const mc=(t,e,n=Ms.txt)=>gc(t,new ic([e],{type:n})) | ||
const vc=(t,e,n=Ms.json)=>mc(t,JSON.stringify(e),n) | ||
const wc=async(t,e,n)=>{const r=await ac.open(t) | ||
await r.put(new dc(e),new uc(n)) | ||
return{bucketName:t,key:e}} | ||
const vc=async(t,e)=>{const n=await oc.open(t) | ||
const r=await n.match(new cc(e)) | ||
const xc=async(t,e)=>{const n=await ac.open(t) | ||
const r=await n.match(new dc(e)) | ||
return r&&r.arrayBuffer()} | ||
const wc=async(t,e)=>{if(!e)return oc.delete(t) | ||
const n=await oc.open(t) | ||
return n&&n.delete(new cc(e))} | ||
const bc=async(t,e)=>{if(!e)return ac.delete(t) | ||
const n=await ac.open(t) | ||
return n&&n.delete(new dc(e))} | ||
n.d(e,"Env",()=>r) | ||
@@ -1812,0 +1814,0 @@ n.d(e,"Common",()=>X) |
@@ -6,27 +6,27 @@ var e=require("../../../common/check") | ||
var a=require("../commonHTML") | ||
var u=require("./Send") | ||
const n={GET:"/GET",POST:"/POST",PUT:"/PUT",PATCH:"/PATCH",DELETE:"/DELETE",HEAD:"/HEAD",OPTIONS:"/OPTIONS",CONNECT:"/CONNECT",TRACE:"/TRACE"} | ||
exports.METHOD_MAP=n | ||
const s=(e,r="/",o="GET",a)=>{if(Array.isArray(r))return r.reduce((r,t)=>s(e,t,o,a),e) | ||
if(Array.isArray(o))return o.reduce((t,o)=>s(e,r,o,a),e) | ||
const{routeNode:u,paramNameList:c}=(0,t.parseRouteToMap)(e,r) | ||
const d=n[o] | ||
var s=require("./Send") | ||
const u={GET:"/GET",POST:"/POST",PUT:"/PUT",PATCH:"/PATCH",DELETE:"/DELETE",HEAD:"/HEAD",OPTIONS:"/OPTIONS",CONNECT:"/CONNECT",TRACE:"/TRACE"} | ||
exports.METHOD_MAP=u | ||
const n=(e,r="/",o="GET",a)=>{if(Array.isArray(r))return r.reduce((r,t)=>n(e,t,o,a),e) | ||
if(Array.isArray(o))return o.reduce((t,o)=>n(e,r,o,a),e) | ||
const{routeNode:s,paramNameList:c}=(0,t.parseRouteToMap)(e,r) | ||
const d=u[o] | ||
if(!d)throw new Error(`invalid method [${o}] for: ${r}`) | ||
if(u[d])throw new Error(`duplicate method [${o}] for: ${r}`) | ||
if(s[d])throw new Error(`duplicate method [${o}] for: ${r}`) | ||
if("function"!=typeof a)throw new Error(`invalid responder for: ${r}`) | ||
u[d]={route:r,paramNameList:c,routeResponder:a} | ||
s[d]={route:r,paramNameList:c,routeResponder:a} | ||
return e} | ||
exports.appendRouteMap=s | ||
exports.createRouteMap=e=>e.reduce((e,[r,t,o])=>s(e,r,t,o),{}) | ||
exports.createResponderRouter=({routeMap:e,baseUrl:r="",getMethodUrl:o=c(new URL(r))})=>r=>{const{method:a,url:u}=o(r) | ||
const s=n[a] | ||
if(void 0===s)return | ||
const c=(0,t.findRouteFromMap)(e,u.pathname) | ||
exports.appendRouteMap=n | ||
exports.createRouteMap=e=>e.reduce((e,[r,t,o])=>n(e,r,t,o),{}) | ||
exports.createResponderRouter=({routeMap:e,baseUrl:r="",getMethodUrl:o=c(new URL(r))})=>r=>{const{method:a,url:s}=o(r) | ||
const n=u[a] | ||
if(void 0===n)return | ||
const c=(0,t.findRouteFromMap)(e,s.pathname) | ||
if(void 0===c)return | ||
const{routeNode:d,paramValueList:i}=c | ||
if(void 0===d[s])return | ||
const{route:p,paramNameList:m,routeResponder:T}=d[s] | ||
const E=m.reduce((e,r,t)=>{e[r]=i[t] | ||
if(void 0===d[n])return | ||
const{route:p,paramNameList:m,routeResponder:T}=d[n] | ||
const R=m.reduce((e,r,t)=>{e[r]=i[t] | ||
return e},{}) | ||
return T(r,r.setState({method:a,url:u,route:p,paramMap:E}))} | ||
return T(r,r.setState({method:a,url:s,route:p,paramMap:R}))} | ||
const c=e=>({request:{method:r,url:t}})=>({method:r,url:new URL(t.replace(d,"/"),e)}) | ||
@@ -37,3 +37,3 @@ const d=/\/\//g | ||
const i=e=>{const r=[] | ||
const t=new Set(Object.values(n)) | ||
const t=new Set(Object.values(u)) | ||
p(["ROOT",e],([e,{route:o}])=>{t.has(e)&&r.push({method:e,route:o})}) | ||
@@ -43,5 +43,5 @@ return r} | ||
const p=(0,r.createTreeDepthFirstSearch)(([r,t])=>(0,e.isBasicObject)(t)&&Object.entries(t)) | ||
exports.createResponderRouteList=({getRouteMap:e,extraBodyList:r})=>{let t | ||
return async a=>{void 0===t&&(t=await(0,u.prepareBufferData)(Buffer.from(m(e(),r)),o.BASIC_EXTENSION_MAP.html)) | ||
return(0,u.responderSendBufferCompress)(a,t)}} | ||
exports.createResponderRouteList=exports.createResponderRouteListHTML=({getRouteMap:e,extraBodyList:r})=>{let t | ||
return async a=>{void 0===t&&(t=await(0,s.prepareBufferData)(Buffer.from(m(e(),r)),o.BASIC_EXTENSION_MAP.html)) | ||
return(0,s.responderSendBufferCompress)(a,t)}} | ||
const m=(e,r=[])=>(0,a.COMMON_LAYOUT)([(0,a.COMMON_STYLE)(),"<style>body { align-items: start; }</style>"],["<h2>Route List</h2>","<table>",...i(e).map(({method:e,route:r})=>`<tr><td><b>${e}</b></td><td>${"/GET"===e?`<a href="${r}">${r}</a>`:r}</td></tr>`),"</table>",...r]) |
@@ -21,3 +21,5 @@ import { compareStringWithNumber } from "../compare"; | ||
}; | ||
const compareSemVerLabel = (a, b) => a === b ? 0 : b.startsWith(a) ? 1 : a.startsWith(b) ? -1 : compareStringWithNumber(a, b); | ||
const compareSemVerLabel = (a, b) => a === b ? 0 : isShorterWithoutNumber(a, b) ? 1 : isShorterWithoutNumber(b, a) ? -1 : compareStringWithNumber(a, b); | ||
const REGEXP_DOUBLE_NUMBER = /\d\d/; | ||
const isShorterWithoutNumber = (shorter, longer) => longer.startsWith(shorter) && !REGEXP_DOUBLE_NUMBER.test(longer.slice(shorter.length - 1, shorter.length + 1)); | ||
export { parseSemVer, compareSemVer }; |
@@ -73,3 +73,3 @@ import { isBasicObject } from "../../../common/check"; | ||
const routeMapDepthFirstSearch = createTreeDepthFirstSearch(([key, routeNode]) => isBasicObject(routeNode) && Object.entries(routeNode)); | ||
const createResponderRouteList = ({getRouteMap, extraBodyList}) => { | ||
const createResponderRouteListHTML = ({getRouteMap, extraBodyList}) => { | ||
let bufferData; | ||
@@ -82,2 +82,2 @@ return async store => { | ||
const getRouteListHTML = (routeMap, extraBodyList = []) => COMMON_LAYOUT([ COMMON_STYLE(), "<style>body { align-items: start; }</style>" ], [ "<h2>Route List</h2>", "<table>", ...describeRouteMap(routeMap).map(({method, route}) => `<tr><td><b>${method}</b></td><td>${"/GET" === method ? `<a href="${route}">${route}</a>` : route}</td></tr>`), "</table>", ...extraBodyList ]); | ||
export { METHOD_MAP, createRouteMap, createResponderRouter, appendRouteMap, getRouteParamAny, getRouteParam, describeRouteMap, createResponderRouteList }; | ||
export { METHOD_MAP, createRouteMap, createResponderRouter, appendRouteMap, getRouteParamAny, getRouteParam, describeRouteMap, createResponderRouteListHTML, createResponderRouteListHTML as createResponderRouteList }; |
@@ -1,1 +0,1 @@ | ||
{"name":"dr-js","version":"0.21.1-dev.2","description":"A collection of strange functions","author":"dr-js","license":"MIT","keywords":["Dr","Dr-js","JavaScript"],"repository":"github:dr-js/dr-js","bin":"bin/index.js","browser":"library/Dr.browser.js","engines":{"node":">=10.15","npm":">=6"},"sideEffects":false} | ||
{"name":"dr-js","version":"0.21.1-dev.3","description":"A collection of strange functions","author":"dr-js","license":"MIT","keywords":["Dr","Dr-js","JavaScript"],"repository":"github:dr-js/dr-js","bin":"bin/index.js","browser":"library/Dr.browser.js","engines":{"node":">=10.15","npm":">=6"},"sideEffects":false} |
430394
9919
18