genosdb 0.17.0 → 0.19.0
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/dist/ai.min.js +2 -1
- package/dist/ai.min.js.gz +0 -0
- package/dist/audit.min.js +2 -1
- package/dist/audit.min.js.gz +0 -0
- package/dist/gdb.min.js +2 -1
- package/dist/gdb.min.js.gz +0 -0
- package/dist/genosrtc-cells.min.js +2 -1
- package/dist/genosrtc-cells.min.js.gz +0 -0
- package/dist/genosrtc.min.js +2 -1
- package/dist/genosrtc.min.js.gz +0 -0
- package/dist/geo.min.js +2 -1
- package/dist/geo.min.js.gz +0 -0
- package/dist/ii.min.js +2 -1
- package/dist/ii.min.js.gz +0 -0
- package/dist/index.js +2 -1
- package/dist/index.js.gz +0 -0
- package/dist/nlq.min.js +2 -1
- package/dist/nlq.min.js.gz +0 -0
- package/dist/rx.min.js +2 -1
- package/dist/rx.min.js.gz +0 -0
- package/dist/sm-acls.min.js +2 -1
- package/dist/sm-acls.min.js.gz +0 -0
- package/dist/sm-gov.min.js +2 -1
- package/dist/sm-gov.min.js.gz +0 -0
- package/dist/sm.min.js +4 -3
- package/dist/sm.min.js.gz +0 -0
- package/package.json +1 -1
package/dist/nlq.min.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
function jj(J){let Y=J.map;return J.map=async function(...j){let H={},Z=null;j.forEach((B)=>{if(typeof B==="object")H={...H,...B};if(typeof B==="function")Z=B});let M=!1;if(H.prompt)try{let B=await Hj(H.prompt);if(H={...H,...B},B.__nlqReturnDeepest)M=!0;delete H.prompt}catch(B){H.query={}}let G=M&&Z?(B)=>{try{let T=w(B);Z&&Z(T)}catch{Z&&Z(B)}}:Z,$=await Y.call(this,H,G);if(M&&$&&Array.isArray($.results))$.results=w($.results);return $},J}async function Hj(J){return Jj(J)}function Jj(J){let Y=i(String(J||"")),j=x(Y),H={query:{}},Z=H.query,M=Fj(j);if(M.length){H.$_ors=[];for(let X of M)H.$_ors.push(X.left,X.right),j=V(j,X.span)}let Q=$j(j);if(Q)Z.type=Q.type,H.type=Q.type,j=V(j,Q.span);if(!Z.type){let X=Gj(j);if(X)Z.type=X.type,H.type=X.type,j=V(j,X.span)}if(!Z.type){let X=Wj(j);if(X)Z.type=X.type,H.type=X.type,j=V(j,X.span)}let G=Vj(j);if(G&&G.edge){if(Z.$edge=G.edge,G.span)j=V(j,G.span)}if(G&&G.edge&&/\bthen\s+finds?\s+(?:that\s+[A-Za-z]+s?\s+)?descendant\s+(?:named|called|with\s+name)\b/i.test(Y))H.__nlqReturnDeepest=!0;let $=p(j);for(let X of $){if(X.mode==="in"){let R=X.values??[X.value];Z[X.field]={...Z[X.field]||{},$in:R}}else Z[X.field]={...Z[X.field]||{},$contains:X.value};j=V(j,X.span)}let B=u(j);for(let X of B)Z[X.field]={...Z[X.field]||{},$regex:`^${X.value}`},j=V(j,X.span);let T=c(j);for(let X of T)Z[X.field]={...Z[X.field]||{},$regex:`${X.value}$`},j=V(j,X.span);let U=d(j);for(let X of U)Z[X.field]={...Z[X.field]||{},$like:X.value},j=V(j,X.span);let O=Xj(j);if(O){let X=O.value,R=[{name:{$regex:X}},{role:{$regex:X}},{level:{$regex:X}},{country:{$regex:X}},{title:{$regex:X}},{body:{$regex:X}},{tags:{$in:[X]}}];H.query.$or=[...H.query.$or||[],...R],j=V(j,O.span)}else if(Yj(j))H.query.__nlq_no_match="__NLQ_NO_MATCH__";let C=m(j);for(let X of C)Z[X.field]={...Z[X.field]||{},$exists:!0},j=V(j,X.span);let A=Bj(j);if(A.after)H.$after=A.after;if(A.before)H.$before=A.before;for(let X of A.spans)j=V(j,X);let F=l(j);for(let X of F)Z[X.field]=X.value,j=V(j,X.span);let I=Zj(j);for(let X of I)Z.name=X.value,j=V(j,X.span);let L=_j(j);for(let X of L)Z.country=X.value,j=V(j,X.span);let v=a(j);for(let X of v)Z[X.field]={...Z[X.field]||{},$between:[X.min,X.max]},j=V(j,X.span);let W=Uj(j);for(let X of W){if(X.op==="eq")Z[X.field]=X.value;else Z[X.field]={...Z[X.field]||{},[X.op]:X.value};j=V(j,X.span)}let z=r(j);for(let X of z){if(X.op==="eq")Z[X.field]=X.value;else Z[X.field]={...Z[X.field]||{},[X.op]:X.value};j=V(j,X.span)}let q=n(j);for(let X of q)Z[X.field]={...Z[X.field]||{},$not:{$eq:X.value}},j=V(j,X.span);let g=o(j);for(let X of g){if(X.kind==="in")Z.id={...Z.id||{},$in:X.values};else if(X.kind==="eq")Z.id=X.value;j=V(j,X.span)}let _=s(j);for(let X of _)Z[X.field]={...Z[X.field]||{},$in:X.values},j=V(j,X.span);let P=Aj(j);if(P)H.order=P.order,H.field=P.field;let N=Mj(j);if(N!=null)H.$limit=N;if(H.order&&!H.field){let X=Object.keys(Z)[0];if(X)H.field=X}if(Object.keys(H.query).length===0){let X=!!H.order,R=H.$limit!=null,f=!!(H.$after||H.$before);if(!X&&!R&&!f)H.query.__nlq_no_match="__NLQ_NO_MATCH__"}if(H.$_ors&&H.$_ors.length)H.query.$or=[...H.query.$or||[],...H.$_ors],delete H.$_ors;return H.query=Qj(H.query),H}function i(J){return J.replace(/\s+/g," ").trim()}function V(J,Y){if(!Y)return J;return i(`${J.slice(0,Y.start)} ${J.slice(Y.end)}`)}function x(J){let Y=/^(?:searches\s+for|search\s+for|searches|search|finds?|gets?|lists?|returns?|shows?|filters?)\s+/i;return J.replace(Y,"")}function p(J){let Y=[],j=[{re:/\bwhose\s+([a-z][\w\.]*)\s+(includes|including|has)\s+((?:"[^\"]+"|[A-Za-z0-9_\-]+)(?:\s*,\s*(?:"[^\"]+"|[A-Za-z0-9_\-]+))*)/ig,mode:"in",list:!0},{re:/\b([a-z][\w\.]*)\s+(includes|including|has)\s+((?:"[^\"]+"|[A-Za-z0-9_\-]+)(?:\s*,\s*(?:"[^\"]+"|[A-Za-z0-9_\-]+))*)/ig,mode:"in",list:!0},{re:/\bwhose\s+([a-z][\w\.]*)\s+(?:contains|containing)\s+(?:the\s+(?:word|phrase|number|value|text|string|token|term|email|url|date|time|datetime)s?\s*:?\s*)?"([^\"]+)"/ig,mode:"contains"},{re:/\bwhose\s+([a-z][\w\.]*)\s+(?:contains|containing)\s+(?:the\s+(?:word|phrase|number|value|text|string|token|term|email|url|date|time|datetime)s?\s*:?\s*)?([A-Za-z0-9_\-]+)/ig,mode:"contains"},{re:/\b([a-z][\w\.]*)\s+(?:contains|containing)\s+(?:the\s+(?:word|phrase|number|value|text|string|token|term|email|url|date|time|datetime)s?\s*:?\s*)?"([^\"]+)"/ig,mode:"contains"},{re:/\b([a-z][\w\.]*)\s+(?:contains|containing)\s+(?:the\s+(?:word|phrase|number|value|text|string|token|term|email|url|date|time|datetime)s?\s*:?\s*)?([A-Za-z0-9_\-]+)/ig,mode:"contains"}];for(let{re:H,mode:Z,list:M}of j){let Q;while((Q=H.exec(J))!==null){let G=Q[1];if(Z==="in"&&M){let B=Q[3].split(/\s*,\s*/).map((T)=>T.replace(/^"|"$/g,""));Y.push({field:G,mode:"in",values:B,span:{start:Q.index,end:Q.index+Q[0].length}})}else if(Z==="contains"){let $=Q[2];Y.push({field:G,mode:"contains",value:$,span:{start:Q.index,end:Q.index+Q[0].length}})}}}return Y}function u(J){let Y=[],j=/\b(?:whose\s+)?([a-z][\w\.]*)\s+starts\s+with\s+"([^\"]+)"/ig,H;while((H=j.exec(J))!==null)Y.push({field:H[1],value:H[2],span:{start:H.index,end:H.index+H[0].length}});let Z=/\b(?:whose\s+)?([a-z][\w\.]*)\s+starts\s+with\s+([A-Za-z0-9_\-]+)/ig;while((H=Z.exec(J))!==null)Y.push({field:H[1],value:H[2],span:{start:H.index,end:H.index+H[0].length}});return Y}function c(J){let Y=[],j=/\b(?:whose\s+)?([a-z][\w\.]*)\s+ends\s+with\s+"([^\"]+)"/ig,H;while((H=j.exec(J))!==null)Y.push({field:H[1],value:H[2],span:{start:H.index,end:H.index+H[0].length}});let Z=/\b(?:whose\s+)?([a-z][\w\.]*)\s+ends\s+with\s+([A-Za-z0-9_\-]+)/ig;while((H=Z.exec(J))!==null)Y.push({field:H[1],value:H[2],span:{start:H.index,end:H.index+H[0].length}});return Y}function d(J){let Y=[],j,H=/\b(?:whose\s+)?([a-z][\w\.]*)\s+like\s+"([^\"]+)"/ig;while((j=H.exec(J))!==null)Y.push({field:j[1],value:j[2],span:{start:j.index,end:j.index+j[0].length}});let Z=/\b(?:whose\s+)?([a-z][\w\.]*)\s+like\s+([A-Za-z0-9_%\-\.\*]+)/ig;while((j=Z.exec(J))!==null)Y.push({field:j[1],value:j[2],span:{start:j.index,end:j.index+j[0].length}});return Y}function Xj(J){let j=/\b(?:full[-\s]?text\s+search|text\s+search)\s+(?:"([^\"]+)"|([A-Za-z0-9_\-]+))/i.exec(J);if(j)return{value:j[1]||j[2],span:{start:j.index,end:j.index+j[0].length}};return null}function Yj(J){return/\b(?:full[-\s]?text\s+search|text\s+search|full[-\s]?text)\b/i.test(J)}function n(J){let Y=[],j,H=/\b([a-z][\w\.]*)\s*(?:!=|is\s+not|not\s+equals)\s+"([^\"]+)"\b/ig;while((j=H.exec(J))!==null)Y.push({field:j[1],value:j[2],span:{start:j.index,end:j.index+j[0].length}});let Z=/\b([a-z][\w\.]*)\s*(?:!=|is\s+not|not\s+equals)\s+([A-Za-z0-9_\-\.]+)\b/ig;while((j=Z.exec(J))!==null)Y.push({field:j[1],value:D(j[2]),span:{start:j.index,end:j.index+j[0].length}});return Y}function s(J){let Y=[],j,H=/\b([a-z][\w\.]*)\s+is\s+([A-Za-z0-9_\-]+)\s+or\s+([A-Za-z0-9_\-]+)(?:\s+or\s+([A-Za-z0-9_\-]+))*/ig;while((j=H.exec(J))!==null){let M=j[1],Q=j[0].replace(new RegExp(`^${j[1]}\\s+is\\s+`,"i"),"").split(/\s+or\s+/i).map((G)=>G.trim().replace(/[,\.]$/,""));Y.push({field:M,values:Q,span:{start:j.index,end:j.index+j[0].length}})}let Z=/\b([a-z][\w\.]*)\s+in\s+((?:"[^\"]+"|[A-Za-z0-9_\-]+)(?:\s*,\s*(?:"[^\"]+"|[A-Za-z0-9_\-]+))*)/ig;while((j=Z.exec(J))!==null){let M=j[1],G=j[2].split(/\s*,\s*/).map(($)=>$.replace(/^"|"$/g,""));Y.push({field:M,values:G,span:{start:j.index,end:j.index+j[0].length}})}return Y}function m(J){let Y=[],j,H=/\b(?:has|with|having)\s+([a-z][\w\.]*)\b(?!\s+(?:"[^"]+"|[A-Za-z0-9_\-.]+)\b)/ig;while((j=H.exec(J))!==null)Y.push({field:j[1],span:{start:j.index,end:j.index+j[0].length}});let Z=/\b(?:has|with|having)\s+([a-z][\w\.]*)\s+exists\b/ig;while((j=Z.exec(J))!==null)Y.push({field:j[1],span:{start:j.index,end:j.index+j[0].length}});let M=/\bwhose\s+([a-z][\w\.]*)\s+exists\b/ig;while((j=M.exec(J))!==null)Y.push({field:j[1],span:{start:j.index,end:j.index+j[0].length}});let Q=/\b([a-z][\w\.]*)\s+exists\b/ig;while((j=Q.exec(J))!==null)Y.push({field:j[1],span:{start:j.index,end:j.index+j[0].length}});return Y}function l(J){let Y=[],j,H=/\bwith\s+([a-z][\w\.]*)\s+("[^"]+"|[A-Za-z0-9_\-.]+)\b/ig;while((j=H.exec(J))!==null){let Z=j[1],M=b(j[2]);Y.push({field:Z,value:M,span:{start:j.index,end:j.index+j[0].length}})}return Y}function Zj(J){let Y=[],j=/\bname\s+(?:"([^"]+)"|(([A-Z][a-zA-Z]+)(?:\s+[A-Z][a-zA-Z]+)*))\b/g,H;while((H=j.exec(J))!==null){let Z=H[1]||(H[2]?H[2].trim():null);if(!Z)continue;Y.push({value:Z,span:{start:H.index,end:H.index+H[0].length}})}return Y}function _j(J){let Y=[],j=/\bfrom\s+(?:"([^"]+)"|([A-Za-z][A-Za-z]+))\b/ig,H;while((H=j.exec(J))!==null){let Z=H[1]||H[2];Y.push({value:Z,span:{start:H.index,end:H.index+H[0].length}})}return Y}function a(J){let Y=[],j=/\b([a-z][\w\.]*)\s+between\s+(?:"([^"]+)"|([0-9]{4}-[0-9]{2}-[0-9]{2}[T\d:._+\-Z]*))\s*(?:and|,|to)\s*(?:"([^"]+)"|([0-9]{4}-[0-9]{2}-[0-9]{2}[T\d:._+\-Z]*))\b/ig,H,Z=[];while((H=j.exec(J))!==null){let Q={start:H.index,end:H.index+H[0].length};Y.push({field:H[1],min:H[2]||H[3],max:H[4]||H[5],span:Q}),Z.push(Q)}let M=/\b([a-z][\w\.]*)\s+between\s+(-?\d+(?:\.\d+)?)\s*(?:and|,|to)\s*(-?\d+(?:\.\d+)?)\b/ig;while((H=M.exec(J))!==null){let Q={start:H.index,end:H.index+H[0].length};if(Z.some(($)=>!(Q.end<=$.start||Q.start>=$.end)))continue;Y.push({field:H[1],min:D(H[2]),max:D(H[3]),span:Q})}return Y}function o(J){let Y=[],j=/\bids?\b\s+((?:-?\d+(?:\.\d+)?\s*,\s*)+-?\d+(?:\.\d+)?)\b/ig,H;while((H=j.exec(J))!==null){let Q=H[1].split(/\s*,\s*/).map(D);Y.push({kind:"in",values:Q,span:{start:H.index,end:H.index+H[0].length}})}let Z=/\bids?\b\s+(-?\d+(?:\.\d+)?)\b/ig;while((H=Z.exec(J))!==null){let M={start:H.index,end:H.index+H[0].length};if(!Y.some((G)=>!(M.end<=G.span.start||M.start>=G.span.end)))Y.push({kind:"eq",value:D(H[1]),span:M})}return Y}function r(J){let Y=[],j,H=/\b([a-z][\w\.]*)\s*(?:>=|at\s+least)\s*(-?\d+(?:\.\d+)?)\b/ig;while((j=H.exec(J))!==null)Y.push({field:j[1],op:"$gte",value:D(j[2]),span:{start:j.index,end:j.index+j[0].length}});let Z=/\b([a-z][\w\.]*)\s*(?:<=|at\s+most)\s*(-?\d+(?:\.\d+)?)\b/ig;while((j=Z.exec(J))!==null)Y.push({field:j[1],op:"$lte",value:D(j[2]),span:{start:j.index,end:j.index+j[0].length}});let M=/\b([a-z][\w\.]*)\s*(?:>|greater\s+than|more\s+than)\s*(-?\d+(?:\.\d+)?)\b/ig;while((j=M.exec(J))!==null)Y.push({field:j[1],op:"$gt",value:D(j[2]),span:{start:j.index,end:j.index+j[0].length}});let Q=/\b([a-z][\w\.]*)\s*(?:<|less\s+than|fewer\s+than)\s*(-?\d+(?:\.\d+)?)\b/ig;while((j=Q.exec(J))!==null)Y.push({field:j[1],op:"$lt",value:D(j[2]),span:{start:j.index,end:j.index+j[0].length}});let G=/\b([a-z][\w\.]*)\s*(?:=|equals|is)(?!\s+not)\s*"([^"]+)"\b/ig;while((j=G.exec(J))!==null)Y.push({field:j[1],op:"eq",value:j[2],span:{start:j.index,end:j.index+j[0].length}});let $=/\b([a-z][\w\.]*)\s*(?:=|equals|is)(?!\s+not)\s*([a-z0-9_\-\.]+)\b/ig;while((j=$.exec(J))!==null)Y.push({field:j[1],op:"eq",value:D(j[2]),span:{start:j.index,end:j.index+j[0].length}});return Y}function Uj(J){let Y=[],j,H=/\b([a-z][\w\.]*)\s+(on\s+or\s+after|on\s+or\s+before|after|before|on)\s+(?:"([^"]+)"|([0-9]{4}-[0-9]{2}-[0-9]{2}[T\d:._+\-Z]*))\b/ig;while((j=H.exec(J))!==null){let Z=j[1],M=j[2].toLowerCase().replace(/\s+/g," "),Q=j[3]||j[4],G="$gt";if(M==="before")G="$lt";else if(M==="on")G="eq";else if(M==="on or after")G="$gte";else if(M==="on or before")G="$lte";Y.push({field:Z,op:G,value:Q,span:{start:j.index,end:j.index+j[0].length}})}return Y}function Aj(J){let Y=[{re:/\b(?:order|sort|sorted)\s+by\s+([a-z][\w\.]*)\s*(asc|ascending|desc|descending)?\b/i,groups:{field:1,dir:2}},{re:/\b(?:order|sort|sorted)\s+(asc|ascending|desc|descending)\s+by\s+([a-z][\w\.]*)\b/i,groups:{dir:1,field:2}}];for(let j of Y){let H=J.match(j.re);if(H){let Z=(H[j.groups.dir]||"asc").toLowerCase(),M=/desc|descending/.test(Z)?"desc":"asc";return{field:H[j.groups.field],order:M}}}return null}function Mj(J){let Y=J.match(/\blimit\s+(\d+)\b/i);return Y?Number(Y[1]):null}function D(J){let Y=Number(J);return Number.isFinite(Y)?Y:J}var Rj=(J)=>{return jj(J)};function w(J){if(!Array.isArray(J))return J;let Y=[],j=(H)=>{let Z=Array.isArray(H?._edgeResult)?H._edgeResult:null;if(Z&&Z.length)for(let M of Z)j(M);else Y.push(H)};for(let H of J)j(H);return Y}function Fj(J){let Y=[],j,H=/\b([a-z][\w\.]*)\s*(=|is|equals)\s*("[^"]+"|[A-Za-z0-9_\-.]+)\s+or\s+\1\s*(=|is|equals)\s*("[^"]+"|[A-Za-z0-9_\-.]+)\b/ig;while((j=H.exec(J))!==null){let Q={[j[1]]:b(j[3])},G={[j[1]]:b(j[5])};Y.push({left:Q,right:G,span:{start:j.index,end:j.index+j[0].length}})}let Z=/\b([a-z][\w\.]*)\s+(?:contains|containing)\s+("[^"]+"|[A-Za-z0-9_\-.]+)\s+or\s+\1\s+(?:contains|containing)\s+("[^"]+"|[A-Za-z0-9_\-.]+)\b/ig;while((j=Z.exec(J))!==null){let Q={[j[1]]:{$contains:b(j[2])}},G={[j[1]]:{$contains:b(j[3])}};Y.push({left:Q,right:G,span:{start:j.index,end:j.index+j[0].length}})}let M=/\b([a-z][\w\.]*)\s+starts\s+with\s+("[^"]+"|[A-Za-z0-9_\-]+)\s+or\s+\1\s+starts\s+with\s+("[^"]+"|[A-Za-z0-9_\-]+)\b/ig;while((j=M.exec(J))!==null){let Q=String(b(j[2])),G=String(b(j[3])),$={[j[1]]:{$regex:`^${Q}`}},B={[j[1]]:{$regex:`^${G}`}};Y.push({left:$,right:B,span:{start:j.index,end:j.index+j[0].length}})}return Y}function b(J){if(!J)return J;let Y=J.replace(/^"|"$/g,"");return D(Y)}function Qj(J){if(!J||typeof J!=="object")return J;let{$edge:Y,...j}=J,H=Y?e(Y):void 0,Z=Object.keys(j);if(Z.length>1){let M={};if(H)M.$edge=H;return M.$and=Z.map((Q)=>({[Q]:j[Q]})),M}return{...j,...Y?{$edge:H}:{}}}function e(J){if(!J||typeof J!=="object")return J;let{$edge:Y,...j}=J,H=Object.keys(j),Z=Y?e(Y):void 0;if(H.length>1){let M={};if(Z)M.$edge=Z;return M.$and=H.map((Q)=>({[Q]:j[Q]})),M}return{...j,...Z?{$edge:Z}:{}}}function $j(J){let j=/\bonly\s+([A-Z][a-zA-Z]+)s?\b/ig.exec(J);if(!j)return null;return{type:K(j[1]),span:{start:j.index,end:j.index+j[0].length}}}function Gj(J){let j=/\b(?:a|an)\s+([A-Z][a-zA-Z]+)s?\b/ig.exec(J);if(!j)return null;return{type:K(j[1]),span:{start:j.index,end:j.index+j[0].length}}}function Wj(J){if(/^(?:full[-\s]?text\s+search|text\s+search)\b/i.test(J))return null;let Y=J.match(/^([A-Z][a-zA-Z]+)s?\b/);if(!Y)return null;return{type:K(Y[1]),span:{start:0,end:Y[0].length}}}function Vj(J){let Y=J.split(/\bthen\b/ig).map((G)=>G.trim()).filter(Boolean),j=null,H=null,Z=null,M=null;for(let G of Y){let $=x(G),B=H?.type?"type":H?.role?"role":null,T=B?String(H[B]).toLowerCase():null,U=$.match(/\bdescendant[s]?\s+of\s+type\s+([A-Za-z][A-Za-z]+)s?\b/i),O=null,C="role",A=null,F=null,I=!1,L=$.match(/\b(?:that|this|those|their|its)\s+([A-Za-z][A-Za-z]+)\s*'s\s+descendant[s]?\b/i);if(!L)L=$.match(/\b(?:that|this|those|their|its)\s+([A-Za-z][A-Za-z]+)s?\s+descendant[s]?\b/i);if(L){let _=K(L[1]).toLowerCase();if(T&&_===T)I=!0,A=L.index,F=L.index+L[0].length}if(U)O=K(U[1]),A=U.index,F=U.index+U[0].length,C="type";else if(U=!I&&$.match(/\b(?:that|this|those|their|its|a|an)?\s*([A-Za-z][A-Za-z]+)s?(?:'s)?\s+descendant[s]?\b/i),U)O=K(U[1]),A=U.index,F=U.index+U[0].length;else if(U=!I&&$.match(/\bdescendant[s]?\s+(?:of\s+)?(?!named\b|called\b|with\b)([A-Za-z][A-Za-z]+)s?\b/i),U)O=K(U[1]),A=U.index,F=U.index+U[0].length;else if(U=$.match(/\bchild(?:ren)?\s+of\s+type\s+([A-Za-z][A-Za-z]+)s?\b/i),U)O=K(U[1]),A=U.index,F=U.index+U[0].length,C="type";else if(U=$.match(/\bchild(?:ren)?\s+(?:of\s+)?([A-Za-z][A-Za-z]+)s?\b/i),U)O=K(U[1]),A=U.index,F=U.index+U[0].length;else if(U=$.match(/\b(?:that|this|those|their|its)?\s*([A-Za-z][A-Za-z]+)s?(?:'s)?\s+child(?:ren)?\b/i),U)O=K(U[1]),A=U.index,F=U.index+U[0].length;else if(U=$.match(/\bgrandchild(?:ren)?\s+of\s+type\s+([A-Za-z][A-Za-z]+)s?\b/i),U)O=K(U[1]),A=U.index,F=U.index+U[0].length,C="type";else if(U=$.match(/\bgrandchild(?:ren)?\s+(?:of\s+)?([A-Za-z][A-Za-z]+)s?\b/i),U)O=K(U[1]),A=U.index,F=U.index+U[0].length;else if(U=$.match(/\b(?:that|this|those|their|its)?\s*([A-Za-z][A-Za-z]+)s?(?:'s)?\s+grandchild(?:ren)?\b/i),U)O=K(U[1]),A=U.index,F=U.index+U[0].length;let v=/\b(descendant|child|children|grandchild|grandchildren)\b/i.test($),W=null;if(O)W={[C]:O};else if(v)W={};else continue;let z=$.match(/\b(?:named|called)\s+"([^"]+)"|\b(?:named|called)\s+([A-Za-z0-9_\-]+)\b|\bwith\s+name\s+"([^"]+)"|\bwith\s+name\s+([A-Za-z0-9_\-]+)\b/i);if(z){let _=z[1]||z[2]||z[3]||z[4];W.name=_;let P=z.index,N=z[0].length;if(A===null||P<A)A=P;let X=P+N;if(F===null||X>F)F=X}for(let _ of p($)){if(_.mode==="in"){let P=_.values??[_.value];W[_.field]={...W[_.field]||{},$in:P}}else W[_.field]={...W[_.field]||{},$contains:_.value};A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end)}for(let _ of u($))W[_.field]={...W[_.field]||{},$regex:`^${_.value}`},A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end);for(let _ of c($))W[_.field]={...W[_.field]||{},$regex:`${_.value}$`},A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end);for(let _ of a($))W[_.field]={...W[_.field]||{},$between:[_.min,_.max]},A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end);for(let _ of r($)){if(_.op==="eq")W[_.field]=_.value;else W[_.field]={...W[_.field]||{},[_.op]:_.value};A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end)}for(let _ of n($))W[_.field]={...W[_.field]||{},$not:{$eq:_.value}},A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end);for(let _ of s($))W[_.field]={...W[_.field]||{},$in:_.values},A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end);let q=m($);for(let _ of q)W[_.field]={...W[_.field]||{},$exists:!0},A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end);let g=$.replace(/\b(?:has|with|having)\s+[a-z][\w\.]*\s+exists\b/ig," ").replace(/\bwhose\s+[a-z][\w\.]*\s+exists\b/ig," ").replace(/\b([a-z][\w\.]*)\s+exists\b/ig," ").replace(/\b(?:whose\s+)?([a-z][\w\.]*)\s+starts\s+with\s+(?:"[^\"]+"|[A-Za-z0-9_\-]+)/ig," ");for(let _ of d($))W[_.field]={...W[_.field]||{},$like:_.value},A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end);for(let _ of l(g))W[_.field]=_.value,A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end);for(let _ of o($)){if(_.kind==="in")W.id={...W.id||{},$in:_.values};else if(_.kind==="eq")W.id=_.value;A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end)}if(!W||Object.keys(W).length===0)continue;if(!j)j=W,H=W,Z=Z??J.indexOf($)+(A??0),M=J.indexOf($)+(F??0);else{let _=H.type?"type":H.role?"role":null,P=_?String(H[_]).toLowerCase():null,N=W.type?"type":W.role?"role":null,X=N?String(W[N]).toLowerCase():null;if(!H.$edge||typeof H.$edge!=="object")H.$edge={};let R=H.$edge,f=R.type?"type":R.role?"role":null,Oj=f?String(R[f]).toLowerCase():null,y=(E)=>{let S={};for(let[h,t]of Object.entries(W)){if(h==="$edge")continue;if(E&&(h==="type"||h==="role"))continue;S[h]=t}return S};if(X&&P&&X===P)Object.assign(R,y(!0));else if(X){for(let E of["type","role"])delete R[E];Object.assign(R,y(!1))}else Object.assign(R,y(!1));H=H.$edge;let k=J.indexOf($);if(Z===null)Z=k+(A??0);M=k+(F??0)}}if(!j)return null;let Q=Z!=null&&M!=null?{start:Z,end:M}:void 0;return{edge:j,span:Q}}function K(J){if(!J)return J;if(/ies$/i.test(J))return J.replace(/ies$/i,"y");if(/ses$/i.test(J))return J.replace(/es$/i,"e");if(/s$/i.test(J))return J.replace(/s$/i,"");return J}function Bj(J){let Y={after:null,before:null,spans:[]},j=[{kind:"after",re:/\b(?:start(?:ing)?\s+)?after\s+(?:id\s+)?(?:"([^"]+)"|([A-Za-z0-9_\-]+))(?=\s|$)/ig},{kind:"before",re:/\b(?:before|until)\s+(?:id\s+)?(?:"([^"]+)"|([A-Za-z0-9_\-]+))(?=\s|$)/ig}];for(let H of j){let Z;while((Z=H.re.exec(J))!==null){let M=Z[1]||Z[2];if(H.kind==="after"&&!Y.after)Y.after=M;if(H.kind==="before"&&!Y.before)Y.before=M;Y.spans.push({start:Z.index,end:Z.index+Z[0].length})}}return Y}export{jj as withModule,Rj as init};
|
|
1
|
+
var log=(()=>{const n=()=>{};return new Proxy(console,{get:(c,m)=>globalThis.__gdbDebug?c[m].bind(c):n})})();
|
|
2
|
+
function jj(J){let Y=J.map;return J.map=async function(...j){let H={},Z=null;j.forEach((V)=>{if(typeof V==="object")H={...H,...V};if(typeof V==="function")Z=V});let M=!1;if(H.prompt)try{let V=await Hj(H.prompt);if(log.info("Query generated from local DSL:",V),H={...H,...V},V.__nlqReturnDeepest)M=!0;delete H.prompt}catch(V){log.error("Error parsing prompt:",V.message),H.query={}}let G=M&&Z?(V)=>{try{let T=w(V);Z&&Z(T)}catch{Z&&Z(V)}}:Z,$=await Y.call(this,H,G);if(M&&$&&Array.isArray($.results))$.results=w($.results);return $},J}async function Hj(J){return Jj(J)}function Jj(J){let Y=i(String(J||"")),j=x(Y),H={query:{}},Z=H.query,M=Fj(j);if(M.length){H.$_ors=[];for(let X of M)H.$_ors.push(X.left,X.right),j=B(j,X.span)}let Q=$j(j);if(Q)Z.type=Q.type,H.type=Q.type,j=B(j,Q.span);if(!Z.type){let X=Gj(j);if(X)Z.type=X.type,H.type=X.type,j=B(j,X.span)}if(!Z.type){let X=Wj(j);if(X)Z.type=X.type,H.type=X.type,j=B(j,X.span)}let G=Vj(j);if(G&&G.edge){if(Z.$edge=G.edge,G.span)j=B(j,G.span)}if(G&&G.edge&&/\bthen\s+finds?\s+(?:that\s+[A-Za-z]+s?\s+)?descendant\s+(?:named|called|with\s+name)\b/i.test(Y))H.__nlqReturnDeepest=!0;let $=p(j);for(let X of $){if(X.mode==="in"){let R=X.values??[X.value];Z[X.field]={...Z[X.field]||{},$in:R}}else Z[X.field]={...Z[X.field]||{},$contains:X.value};j=B(j,X.span)}let V=u(j);for(let X of V)Z[X.field]={...Z[X.field]||{},$regex:`^${X.value}`},j=B(j,X.span);let T=c(j);for(let X of T)Z[X.field]={...Z[X.field]||{},$regex:`${X.value}$`},j=B(j,X.span);let U=d(j);for(let X of U)Z[X.field]={...Z[X.field]||{},$like:X.value},j=B(j,X.span);let O=Xj(j);if(O){let X=O.value,R=[{name:{$regex:X}},{role:{$regex:X}},{level:{$regex:X}},{country:{$regex:X}},{title:{$regex:X}},{body:{$regex:X}},{tags:{$in:[X]}}];H.query.$or=[...H.query.$or||[],...R],j=B(j,O.span)}else if(Yj(j))H.query.__nlq_no_match="__NLQ_NO_MATCH__";let C=m(j);for(let X of C)Z[X.field]={...Z[X.field]||{},$exists:!0},j=B(j,X.span);let A=Bj(j);if(A.after)H.$after=A.after;if(A.before)H.$before=A.before;for(let X of A.spans)j=B(j,X);let F=l(j);for(let X of F)Z[X.field]=X.value,j=B(j,X.span);let I=Zj(j);for(let X of I)Z.name=X.value,j=B(j,X.span);let L=_j(j);for(let X of L)Z.country=X.value,j=B(j,X.span);let v=a(j);for(let X of v)Z[X.field]={...Z[X.field]||{},$between:[X.min,X.max]},j=B(j,X.span);let W=Uj(j);for(let X of W){if(X.op==="eq")Z[X.field]=X.value;else Z[X.field]={...Z[X.field]||{},[X.op]:X.value};j=B(j,X.span)}let z=r(j);for(let X of z){if(X.op==="eq")Z[X.field]=X.value;else Z[X.field]={...Z[X.field]||{},[X.op]:X.value};j=B(j,X.span)}let q=n(j);for(let X of q)Z[X.field]={...Z[X.field]||{},$not:{$eq:X.value}},j=B(j,X.span);let g=o(j);for(let X of g){if(X.kind==="in")Z.id={...Z.id||{},$in:X.values};else if(X.kind==="eq")Z.id=X.value;j=B(j,X.span)}let _=s(j);for(let X of _)Z[X.field]={...Z[X.field]||{},$in:X.values},j=B(j,X.span);let P=Aj(j);if(P)H.order=P.order,H.field=P.field;let N=Mj(j);if(N!=null)H.$limit=N;if(H.order&&!H.field){let X=Object.keys(Z)[0];if(X)H.field=X}if(Object.keys(H.query).length===0){let X=!!H.order,R=H.$limit!=null,f=!!(H.$after||H.$before);if(!X&&!R&&!f)H.query.__nlq_no_match="__NLQ_NO_MATCH__"}if(H.$_ors&&H.$_ors.length)H.query.$or=[...H.query.$or||[],...H.$_ors],delete H.$_ors;return H.query=Qj(H.query),H}function i(J){return J.replace(/\s+/g," ").trim()}function B(J,Y){if(!Y)return J;return i(`${J.slice(0,Y.start)} ${J.slice(Y.end)}`)}function x(J){let Y=/^(?:searches\s+for|search\s+for|searches|search|finds?|gets?|lists?|returns?|shows?|filters?)\s+/i;return J.replace(Y,"")}function p(J){let Y=[],j=[{re:/\bwhose\s+([a-z][\w\.]*)\s+(includes|including|has)\s+((?:"[^\"]+"|[A-Za-z0-9_\-]+)(?:\s*,\s*(?:"[^\"]+"|[A-Za-z0-9_\-]+))*)/ig,mode:"in",list:!0},{re:/\b([a-z][\w\.]*)\s+(includes|including|has)\s+((?:"[^\"]+"|[A-Za-z0-9_\-]+)(?:\s*,\s*(?:"[^\"]+"|[A-Za-z0-9_\-]+))*)/ig,mode:"in",list:!0},{re:/\bwhose\s+([a-z][\w\.]*)\s+(?:contains|containing)\s+(?:the\s+(?:word|phrase|number|value|text|string|token|term|email|url|date|time|datetime)s?\s*:?\s*)?"([^\"]+)"/ig,mode:"contains"},{re:/\bwhose\s+([a-z][\w\.]*)\s+(?:contains|containing)\s+(?:the\s+(?:word|phrase|number|value|text|string|token|term|email|url|date|time|datetime)s?\s*:?\s*)?([A-Za-z0-9_\-]+)/ig,mode:"contains"},{re:/\b([a-z][\w\.]*)\s+(?:contains|containing)\s+(?:the\s+(?:word|phrase|number|value|text|string|token|term|email|url|date|time|datetime)s?\s*:?\s*)?"([^\"]+)"/ig,mode:"contains"},{re:/\b([a-z][\w\.]*)\s+(?:contains|containing)\s+(?:the\s+(?:word|phrase|number|value|text|string|token|term|email|url|date|time|datetime)s?\s*:?\s*)?([A-Za-z0-9_\-]+)/ig,mode:"contains"}];for(let{re:H,mode:Z,list:M}of j){let Q;while((Q=H.exec(J))!==null){let G=Q[1];if(Z==="in"&&M){let V=Q[3].split(/\s*,\s*/).map((T)=>T.replace(/^"|"$/g,""));Y.push({field:G,mode:"in",values:V,span:{start:Q.index,end:Q.index+Q[0].length}})}else if(Z==="contains"){let $=Q[2];Y.push({field:G,mode:"contains",value:$,span:{start:Q.index,end:Q.index+Q[0].length}})}}}return Y}function u(J){let Y=[],j=/\b(?:whose\s+)?([a-z][\w\.]*)\s+starts\s+with\s+"([^\"]+)"/ig,H;while((H=j.exec(J))!==null)Y.push({field:H[1],value:H[2],span:{start:H.index,end:H.index+H[0].length}});let Z=/\b(?:whose\s+)?([a-z][\w\.]*)\s+starts\s+with\s+([A-Za-z0-9_\-]+)/ig;while((H=Z.exec(J))!==null)Y.push({field:H[1],value:H[2],span:{start:H.index,end:H.index+H[0].length}});return Y}function c(J){let Y=[],j=/\b(?:whose\s+)?([a-z][\w\.]*)\s+ends\s+with\s+"([^\"]+)"/ig,H;while((H=j.exec(J))!==null)Y.push({field:H[1],value:H[2],span:{start:H.index,end:H.index+H[0].length}});let Z=/\b(?:whose\s+)?([a-z][\w\.]*)\s+ends\s+with\s+([A-Za-z0-9_\-]+)/ig;while((H=Z.exec(J))!==null)Y.push({field:H[1],value:H[2],span:{start:H.index,end:H.index+H[0].length}});return Y}function d(J){let Y=[],j,H=/\b(?:whose\s+)?([a-z][\w\.]*)\s+like\s+"([^\"]+)"/ig;while((j=H.exec(J))!==null)Y.push({field:j[1],value:j[2],span:{start:j.index,end:j.index+j[0].length}});let Z=/\b(?:whose\s+)?([a-z][\w\.]*)\s+like\s+([A-Za-z0-9_%\-\.\*]+)/ig;while((j=Z.exec(J))!==null)Y.push({field:j[1],value:j[2],span:{start:j.index,end:j.index+j[0].length}});return Y}function Xj(J){let j=/\b(?:full[-\s]?text\s+search|text\s+search)\s+(?:"([^\"]+)"|([A-Za-z0-9_\-]+))/i.exec(J);if(j)return{value:j[1]||j[2],span:{start:j.index,end:j.index+j[0].length}};return null}function Yj(J){return/\b(?:full[-\s]?text\s+search|text\s+search|full[-\s]?text)\b/i.test(J)}function n(J){let Y=[],j,H=/\b([a-z][\w\.]*)\s*(?:!=|is\s+not|not\s+equals)\s+"([^\"]+)"\b/ig;while((j=H.exec(J))!==null)Y.push({field:j[1],value:j[2],span:{start:j.index,end:j.index+j[0].length}});let Z=/\b([a-z][\w\.]*)\s*(?:!=|is\s+not|not\s+equals)\s+([A-Za-z0-9_\-\.]+)\b/ig;while((j=Z.exec(J))!==null)Y.push({field:j[1],value:D(j[2]),span:{start:j.index,end:j.index+j[0].length}});return Y}function s(J){let Y=[],j,H=/\b([a-z][\w\.]*)\s+is\s+([A-Za-z0-9_\-]+)\s+or\s+([A-Za-z0-9_\-]+)(?:\s+or\s+([A-Za-z0-9_\-]+))*/ig;while((j=H.exec(J))!==null){let M=j[1],Q=j[0].replace(new RegExp(`^${j[1]}\\s+is\\s+`,"i"),"").split(/\s+or\s+/i).map((G)=>G.trim().replace(/[,\.]$/,""));Y.push({field:M,values:Q,span:{start:j.index,end:j.index+j[0].length}})}let Z=/\b([a-z][\w\.]*)\s+in\s+((?:"[^\"]+"|[A-Za-z0-9_\-]+)(?:\s*,\s*(?:"[^\"]+"|[A-Za-z0-9_\-]+))*)/ig;while((j=Z.exec(J))!==null){let M=j[1],G=j[2].split(/\s*,\s*/).map(($)=>$.replace(/^"|"$/g,""));Y.push({field:M,values:G,span:{start:j.index,end:j.index+j[0].length}})}return Y}function m(J){let Y=[],j,H=/\b(?:has|with|having)\s+([a-z][\w\.]*)\b(?!\s+(?:"[^"]+"|[A-Za-z0-9_\-.]+)\b)/ig;while((j=H.exec(J))!==null)Y.push({field:j[1],span:{start:j.index,end:j.index+j[0].length}});let Z=/\b(?:has|with|having)\s+([a-z][\w\.]*)\s+exists\b/ig;while((j=Z.exec(J))!==null)Y.push({field:j[1],span:{start:j.index,end:j.index+j[0].length}});let M=/\bwhose\s+([a-z][\w\.]*)\s+exists\b/ig;while((j=M.exec(J))!==null)Y.push({field:j[1],span:{start:j.index,end:j.index+j[0].length}});let Q=/\b([a-z][\w\.]*)\s+exists\b/ig;while((j=Q.exec(J))!==null)Y.push({field:j[1],span:{start:j.index,end:j.index+j[0].length}});return Y}function l(J){let Y=[],j,H=/\bwith\s+([a-z][\w\.]*)\s+("[^"]+"|[A-Za-z0-9_\-.]+)\b/ig;while((j=H.exec(J))!==null){let Z=j[1],M=b(j[2]);Y.push({field:Z,value:M,span:{start:j.index,end:j.index+j[0].length}})}return Y}function Zj(J){let Y=[],j=/\bname\s+(?:"([^"]+)"|(([A-Z][a-zA-Z]+)(?:\s+[A-Z][a-zA-Z]+)*))\b/g,H;while((H=j.exec(J))!==null){let Z=H[1]||(H[2]?H[2].trim():null);if(!Z)continue;Y.push({value:Z,span:{start:H.index,end:H.index+H[0].length}})}return Y}function _j(J){let Y=[],j=/\bfrom\s+(?:"([^"]+)"|([A-Za-z][A-Za-z]+))\b/ig,H;while((H=j.exec(J))!==null){let Z=H[1]||H[2];Y.push({value:Z,span:{start:H.index,end:H.index+H[0].length}})}return Y}function a(J){let Y=[],j=/\b([a-z][\w\.]*)\s+between\s+(?:"([^"]+)"|([0-9]{4}-[0-9]{2}-[0-9]{2}[T\d:._+\-Z]*))\s*(?:and|,|to)\s*(?:"([^"]+)"|([0-9]{4}-[0-9]{2}-[0-9]{2}[T\d:._+\-Z]*))\b/ig,H,Z=[];while((H=j.exec(J))!==null){let Q={start:H.index,end:H.index+H[0].length};Y.push({field:H[1],min:H[2]||H[3],max:H[4]||H[5],span:Q}),Z.push(Q)}let M=/\b([a-z][\w\.]*)\s+between\s+(-?\d+(?:\.\d+)?)\s*(?:and|,|to)\s*(-?\d+(?:\.\d+)?)\b/ig;while((H=M.exec(J))!==null){let Q={start:H.index,end:H.index+H[0].length};if(Z.some(($)=>!(Q.end<=$.start||Q.start>=$.end)))continue;Y.push({field:H[1],min:D(H[2]),max:D(H[3]),span:Q})}return Y}function o(J){let Y=[],j=/\bids?\b\s+((?:-?\d+(?:\.\d+)?\s*,\s*)+-?\d+(?:\.\d+)?)\b/ig,H;while((H=j.exec(J))!==null){let Q=H[1].split(/\s*,\s*/).map(D);Y.push({kind:"in",values:Q,span:{start:H.index,end:H.index+H[0].length}})}let Z=/\bids?\b\s+(-?\d+(?:\.\d+)?)\b/ig;while((H=Z.exec(J))!==null){let M={start:H.index,end:H.index+H[0].length};if(!Y.some((G)=>!(M.end<=G.span.start||M.start>=G.span.end)))Y.push({kind:"eq",value:D(H[1]),span:M})}return Y}function r(J){let Y=[],j,H=/\b([a-z][\w\.]*)\s*(?:>=|at\s+least)\s*(-?\d+(?:\.\d+)?)\b/ig;while((j=H.exec(J))!==null)Y.push({field:j[1],op:"$gte",value:D(j[2]),span:{start:j.index,end:j.index+j[0].length}});let Z=/\b([a-z][\w\.]*)\s*(?:<=|at\s+most)\s*(-?\d+(?:\.\d+)?)\b/ig;while((j=Z.exec(J))!==null)Y.push({field:j[1],op:"$lte",value:D(j[2]),span:{start:j.index,end:j.index+j[0].length}});let M=/\b([a-z][\w\.]*)\s*(?:>|greater\s+than|more\s+than)\s*(-?\d+(?:\.\d+)?)\b/ig;while((j=M.exec(J))!==null)Y.push({field:j[1],op:"$gt",value:D(j[2]),span:{start:j.index,end:j.index+j[0].length}});let Q=/\b([a-z][\w\.]*)\s*(?:<|less\s+than|fewer\s+than)\s*(-?\d+(?:\.\d+)?)\b/ig;while((j=Q.exec(J))!==null)Y.push({field:j[1],op:"$lt",value:D(j[2]),span:{start:j.index,end:j.index+j[0].length}});let G=/\b([a-z][\w\.]*)\s*(?:=|equals|is)(?!\s+not)\s*"([^"]+)"\b/ig;while((j=G.exec(J))!==null)Y.push({field:j[1],op:"eq",value:j[2],span:{start:j.index,end:j.index+j[0].length}});let $=/\b([a-z][\w\.]*)\s*(?:=|equals|is)(?!\s+not)\s*([a-z0-9_\-\.]+)\b/ig;while((j=$.exec(J))!==null)Y.push({field:j[1],op:"eq",value:D(j[2]),span:{start:j.index,end:j.index+j[0].length}});return Y}function Uj(J){let Y=[],j,H=/\b([a-z][\w\.]*)\s+(on\s+or\s+after|on\s+or\s+before|after|before|on)\s+(?:"([^"]+)"|([0-9]{4}-[0-9]{2}-[0-9]{2}[T\d:._+\-Z]*))\b/ig;while((j=H.exec(J))!==null){let Z=j[1],M=j[2].toLowerCase().replace(/\s+/g," "),Q=j[3]||j[4],G="$gt";if(M==="before")G="$lt";else if(M==="on")G="eq";else if(M==="on or after")G="$gte";else if(M==="on or before")G="$lte";Y.push({field:Z,op:G,value:Q,span:{start:j.index,end:j.index+j[0].length}})}return Y}function Aj(J){let Y=[{re:/\b(?:order|sort|sorted)\s+by\s+([a-z][\w\.]*)\s*(asc|ascending|desc|descending)?\b/i,groups:{field:1,dir:2}},{re:/\b(?:order|sort|sorted)\s+(asc|ascending|desc|descending)\s+by\s+([a-z][\w\.]*)\b/i,groups:{dir:1,field:2}}];for(let j of Y){let H=J.match(j.re);if(H){let Z=(H[j.groups.dir]||"asc").toLowerCase(),M=/desc|descending/.test(Z)?"desc":"asc";return{field:H[j.groups.field],order:M}}}return null}function Mj(J){let Y=J.match(/\blimit\s+(\d+)\b/i);return Y?Number(Y[1]):null}function D(J){let Y=Number(J);return Number.isFinite(Y)?Y:J}var Rj=(J)=>{return log.info("\uD83E\uDDE0 NLQ module loaded (local DSL)."),jj(J)};function w(J){if(!Array.isArray(J))return J;let Y=[],j=(H)=>{let Z=Array.isArray(H?._edgeResult)?H._edgeResult:null;if(Z&&Z.length)for(let M of Z)j(M);else Y.push(H)};for(let H of J)j(H);return Y}function Fj(J){let Y=[],j,H=/\b([a-z][\w\.]*)\s*(=|is|equals)\s*("[^"]+"|[A-Za-z0-9_\-.]+)\s+or\s+\1\s*(=|is|equals)\s*("[^"]+"|[A-Za-z0-9_\-.]+)\b/ig;while((j=H.exec(J))!==null){let Q={[j[1]]:b(j[3])},G={[j[1]]:b(j[5])};Y.push({left:Q,right:G,span:{start:j.index,end:j.index+j[0].length}})}let Z=/\b([a-z][\w\.]*)\s+(?:contains|containing)\s+("[^"]+"|[A-Za-z0-9_\-.]+)\s+or\s+\1\s+(?:contains|containing)\s+("[^"]+"|[A-Za-z0-9_\-.]+)\b/ig;while((j=Z.exec(J))!==null){let Q={[j[1]]:{$contains:b(j[2])}},G={[j[1]]:{$contains:b(j[3])}};Y.push({left:Q,right:G,span:{start:j.index,end:j.index+j[0].length}})}let M=/\b([a-z][\w\.]*)\s+starts\s+with\s+("[^"]+"|[A-Za-z0-9_\-]+)\s+or\s+\1\s+starts\s+with\s+("[^"]+"|[A-Za-z0-9_\-]+)\b/ig;while((j=M.exec(J))!==null){let Q=String(b(j[2])),G=String(b(j[3])),$={[j[1]]:{$regex:`^${Q}`}},V={[j[1]]:{$regex:`^${G}`}};Y.push({left:$,right:V,span:{start:j.index,end:j.index+j[0].length}})}return Y}function b(J){if(!J)return J;let Y=J.replace(/^"|"$/g,"");return D(Y)}function Qj(J){if(!J||typeof J!=="object")return J;let{$edge:Y,...j}=J,H=Y?e(Y):void 0,Z=Object.keys(j);if(Z.length>1){let M={};if(H)M.$edge=H;return M.$and=Z.map((Q)=>({[Q]:j[Q]})),M}return{...j,...Y?{$edge:H}:{}}}function e(J){if(!J||typeof J!=="object")return J;let{$edge:Y,...j}=J,H=Object.keys(j),Z=Y?e(Y):void 0;if(H.length>1){let M={};if(Z)M.$edge=Z;return M.$and=H.map((Q)=>({[Q]:j[Q]})),M}return{...j,...Z?{$edge:Z}:{}}}function $j(J){let j=/\bonly\s+([A-Z][a-zA-Z]+)s?\b/ig.exec(J);if(!j)return null;return{type:K(j[1]),span:{start:j.index,end:j.index+j[0].length}}}function Gj(J){let j=/\b(?:a|an)\s+([A-Z][a-zA-Z]+)s?\b/ig.exec(J);if(!j)return null;return{type:K(j[1]),span:{start:j.index,end:j.index+j[0].length}}}function Wj(J){if(/^(?:full[-\s]?text\s+search|text\s+search)\b/i.test(J))return null;let Y=J.match(/^([A-Z][a-zA-Z]+)s?\b/);if(!Y)return null;return{type:K(Y[1]),span:{start:0,end:Y[0].length}}}function Vj(J){let Y=J.split(/\bthen\b/ig).map((G)=>G.trim()).filter(Boolean),j=null,H=null,Z=null,M=null;for(let G of Y){let $=x(G),V=H?.type?"type":H?.role?"role":null,T=V?String(H[V]).toLowerCase():null,U=$.match(/\bdescendant[s]?\s+of\s+type\s+([A-Za-z][A-Za-z]+)s?\b/i),O=null,C="role",A=null,F=null,I=!1,L=$.match(/\b(?:that|this|those|their|its)\s+([A-Za-z][A-Za-z]+)\s*'s\s+descendant[s]?\b/i);if(!L)L=$.match(/\b(?:that|this|those|their|its)\s+([A-Za-z][A-Za-z]+)s?\s+descendant[s]?\b/i);if(L){let _=K(L[1]).toLowerCase();if(T&&_===T)I=!0,A=L.index,F=L.index+L[0].length}if(U)O=K(U[1]),A=U.index,F=U.index+U[0].length,C="type";else if(U=!I&&$.match(/\b(?:that|this|those|their|its|a|an)?\s*([A-Za-z][A-Za-z]+)s?(?:'s)?\s+descendant[s]?\b/i),U)O=K(U[1]),A=U.index,F=U.index+U[0].length;else if(U=!I&&$.match(/\bdescendant[s]?\s+(?:of\s+)?(?!named\b|called\b|with\b)([A-Za-z][A-Za-z]+)s?\b/i),U)O=K(U[1]),A=U.index,F=U.index+U[0].length;else if(U=$.match(/\bchild(?:ren)?\s+of\s+type\s+([A-Za-z][A-Za-z]+)s?\b/i),U)O=K(U[1]),A=U.index,F=U.index+U[0].length,C="type";else if(U=$.match(/\bchild(?:ren)?\s+(?:of\s+)?([A-Za-z][A-Za-z]+)s?\b/i),U)O=K(U[1]),A=U.index,F=U.index+U[0].length;else if(U=$.match(/\b(?:that|this|those|their|its)?\s*([A-Za-z][A-Za-z]+)s?(?:'s)?\s+child(?:ren)?\b/i),U)O=K(U[1]),A=U.index,F=U.index+U[0].length;else if(U=$.match(/\bgrandchild(?:ren)?\s+of\s+type\s+([A-Za-z][A-Za-z]+)s?\b/i),U)O=K(U[1]),A=U.index,F=U.index+U[0].length,C="type";else if(U=$.match(/\bgrandchild(?:ren)?\s+(?:of\s+)?([A-Za-z][A-Za-z]+)s?\b/i),U)O=K(U[1]),A=U.index,F=U.index+U[0].length;else if(U=$.match(/\b(?:that|this|those|their|its)?\s*([A-Za-z][A-Za-z]+)s?(?:'s)?\s+grandchild(?:ren)?\b/i),U)O=K(U[1]),A=U.index,F=U.index+U[0].length;let v=/\b(descendant|child|children|grandchild|grandchildren)\b/i.test($),W=null;if(O)W={[C]:O};else if(v)W={};else continue;let z=$.match(/\b(?:named|called)\s+"([^"]+)"|\b(?:named|called)\s+([A-Za-z0-9_\-]+)\b|\bwith\s+name\s+"([^"]+)"|\bwith\s+name\s+([A-Za-z0-9_\-]+)\b/i);if(z){let _=z[1]||z[2]||z[3]||z[4];W.name=_;let P=z.index,N=z[0].length;if(A===null||P<A)A=P;let X=P+N;if(F===null||X>F)F=X}for(let _ of p($)){if(_.mode==="in"){let P=_.values??[_.value];W[_.field]={...W[_.field]||{},$in:P}}else W[_.field]={...W[_.field]||{},$contains:_.value};A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end)}for(let _ of u($))W[_.field]={...W[_.field]||{},$regex:`^${_.value}`},A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end);for(let _ of c($))W[_.field]={...W[_.field]||{},$regex:`${_.value}$`},A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end);for(let _ of a($))W[_.field]={...W[_.field]||{},$between:[_.min,_.max]},A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end);for(let _ of r($)){if(_.op==="eq")W[_.field]=_.value;else W[_.field]={...W[_.field]||{},[_.op]:_.value};A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end)}for(let _ of n($))W[_.field]={...W[_.field]||{},$not:{$eq:_.value}},A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end);for(let _ of s($))W[_.field]={...W[_.field]||{},$in:_.values},A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end);let q=m($);for(let _ of q)W[_.field]={...W[_.field]||{},$exists:!0},A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end);let g=$.replace(/\b(?:has|with|having)\s+[a-z][\w\.]*\s+exists\b/ig," ").replace(/\bwhose\s+[a-z][\w\.]*\s+exists\b/ig," ").replace(/\b([a-z][\w\.]*)\s+exists\b/ig," ").replace(/\b(?:whose\s+)?([a-z][\w\.]*)\s+starts\s+with\s+(?:"[^\"]+"|[A-Za-z0-9_\-]+)/ig," ");for(let _ of d($))W[_.field]={...W[_.field]||{},$like:_.value},A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end);for(let _ of l(g))W[_.field]=_.value,A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end);for(let _ of o($)){if(_.kind==="in")W.id={...W.id||{},$in:_.values};else if(_.kind==="eq")W.id=_.value;A=A==null?_.span.start:Math.min(A,_.span.start),F=F==null?_.span.end:Math.max(F,_.span.end)}if(!W||Object.keys(W).length===0)continue;if(!j)j=W,H=W,Z=Z??J.indexOf($)+(A??0),M=J.indexOf($)+(F??0);else{let _=H.type?"type":H.role?"role":null,P=_?String(H[_]).toLowerCase():null,N=W.type?"type":W.role?"role":null,X=N?String(W[N]).toLowerCase():null;if(!H.$edge||typeof H.$edge!=="object")H.$edge={};let R=H.$edge,f=R.type?"type":R.role?"role":null,Oj=f?String(R[f]).toLowerCase():null,y=(E)=>{let S={};for(let[h,t]of Object.entries(W)){if(h==="$edge")continue;if(E&&(h==="type"||h==="role"))continue;S[h]=t}return S};if(X&&P&&X===P)Object.assign(R,y(!0));else if(X){for(let E of["type","role"])delete R[E];Object.assign(R,y(!1))}else Object.assign(R,y(!1));H=H.$edge;let k=J.indexOf($);if(Z===null)Z=k+(A??0);M=k+(F??0)}}if(!j)return null;let Q=Z!=null&&M!=null?{start:Z,end:M}:void 0;return{edge:j,span:Q}}function K(J){if(!J)return J;if(/ies$/i.test(J))return J.replace(/ies$/i,"y");if(/ses$/i.test(J))return J.replace(/es$/i,"e");if(/s$/i.test(J))return J.replace(/s$/i,"");return J}function Bj(J){let Y={after:null,before:null,spans:[]},j=[{kind:"after",re:/\b(?:start(?:ing)?\s+)?after\s+(?:id\s+)?(?:"([^"]+)"|([A-Za-z0-9_\-]+))(?=\s|$)/ig},{kind:"before",re:/\b(?:before|until)\s+(?:id\s+)?(?:"([^"]+)"|([A-Za-z0-9_\-]+))(?=\s|$)/ig}];for(let H of j){let Z;while((Z=H.re.exec(J))!==null){let M=Z[1]||Z[2];if(H.kind==="after"&&!Y.after)Y.after=M;if(H.kind==="before"&&!Y.before)Y.before=M;Y.spans.push({start:Z.index,end:Z.index+Z[0].length})}}return Y}export{jj as withModule,Rj as init};
|
package/dist/nlq.min.js.gz
CHANGED
|
Binary file
|
package/dist/rx.min.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
var log=(()=>{const n=()=>{};return new Proxy(console,{get:(c,m)=>globalThis.__gdbDebug?c[m].bind(c):n})})();
|
|
2
|
+
function v(r={}){let e={},l={},x=r.maxSize||1048576,h=r.encode,s=r.decode,o=r.pako;function u(t,n){if(p(n).forEach((i)=>{if(!e[i])e[i]=[];if(!e[i].includes(t))e[i].push(t)}),JSON.stringify(e).length>x)y()}function f(t,n){p(n).forEach((i)=>{if(e[i]){if(e[i]=e[i].filter((m)=>m!==t),e[i].length===0)delete e[i]}})}function p(t){let n=[];if(typeof t==="string")for(let a=1;a<=t.length;a++)n.push(t.substring(0,a));else if(typeof t==="number")n.push(String(t));else if(typeof t==="object"&&t!==null)Object.keys(t).forEach((a)=>{n.push(a.toString());let i=t[a];if(typeof i==="string"||typeof i==="number")n.push(`${a}:${i}`)});return n}function y(){let t=Object.keys(e),n=Math.ceil(t.length/2),a={},i={};t.slice(0,n).forEach((m)=>{a[m]=e[m]}),t.slice(n).forEach((m)=>{i[m]=e[m]}),l.fragment1=a,l.fragment2=i,e={}}function g(){for(let t of Object.values(l))Object.assign(e,t);l={}}function w(t){return e[t]||[]}function I(t){return Object.keys(e).filter((n)=>n.startsWith(t)).flatMap((n)=>e[n])}function E(){if(!h||!o)throw Error("Radix: encode y pako deben estar en options");let t={index:e,fragmentedIndexes:l};return o.deflate(h(t))}function c(t){if(!s||!o)throw Error("Radix: decode y pako deben estar en options");let n=o.inflate(new Uint8Array(t)),a=s(n);e=a.index||{},l=a.fragmentedIndexes||{}}function d(){if(JSON.stringify(e).length>x)throw Error("Index too large");if(!e||typeof e!=="object")e={}}return{upsert:u,remove:f,extractPrefixes:p,splitIndex:y,mergeFragments:g,searchByPrefix:w,searchAllByPrefix:I,serialize:E,deserialize:c,validateIndex:d}}function P(r){let{worker:e,encode:l,decode:x,pako:h}=r,s=v({maxSize:r.maxSize||1048576,encode:l,decode:x,pako:h}),o=r.indexFileName||"graph_radix_index.msgpack",f=((c,d)=>{let t;return(...n)=>{clearTimeout(t),t=setTimeout(()=>c.apply(null,n),d)}})(()=>y(),200);async function p(){try{let c=await new Promise((d,t)=>{let n=(a)=>{if(a.data.type==="loaded"&&a.data.name===o)e.removeEventListener("message",n),d(new Uint8Array(a.data.data));else if(a.data.type==="error")e.removeEventListener("message",n),t(Error(a.data.message||"Error loading the Radix index"))};e.addEventListener("message",n),e.postMessage({type:"load",name:o})});if(c.byteLength>0)s.deserialize(c)}catch{}}async function y(){try{let c=s.serialize();await new Promise((d,t)=>{let n=(a)=>{if(a.data.type==="saved"&&a.data.name===o)e.removeEventListener("message",n),d();else if(a.data.type==="error")e.removeEventListener("message",n),t(Error(a.data.message||"Error saving the Radix index"))};e.addEventListener("message",n),e.postMessage({type:"save",name:o,content:c})})}catch{}}async function g(){try{s.validateIndex(),(typeof r.graph?.getAllNodes==="function"?await r.graph.getAllNodes():Object.values(r.graph.nodes)).forEach((d)=>{s.upsert(d.id,d.value)})}catch{}}async function w(c,d,t="insert"){switch(t){case"insert":s.upsert(c,d);break;case"remove":s.remove(c,d);break}f()}function I(c){return s.searchAllByPrefix(c)}return{ready:p().then(g),updateIndex:w,searchByPrefix:I}}function j(r){let e=P(r),l=r.put;r.put=async function(s,o){let u=o?this.graph.get(o):null,f=await l.call(this,s,o);if(u)await e.updateIndex(f,u.value,"remove");return await e.updateIndex(f,s,"insert"),f};let x=r.remove;r.remove=async function(s){let o=this.graph.get(s);if(await x.call(this,s),o)await e.updateIndex(s,o.value,"remove")};let h=r.map;return r.map=async function(...s){let o=await h.call(this,...s),u=s.find((f)=>typeof f==="object");if(u?.query?.id?.$startsWith){let f=u.query.id.$startsWith,p=e.searchByPrefix(f);return o.filter((y)=>p.includes(y.id))}return o},r.searchByPrefix=async function(s){return e.searchByPrefix(s).map((u)=>this.graph.get(u))},r}var R=(r)=>{return log.info("\uD83C\uDF33 RadixIndexer module loaded."),j(r)};export{j as withModule,R as init,P as RadixIndexer};
|
package/dist/rx.min.js.gz
CHANGED
|
Binary file
|
package/dist/sm-acls.min.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var log=(()=>{const n=()=>{};return new Proxy(console,{get:(c,m)=>globalThis.__gdbDebug?c[m].bind(c):n})})();
|
|
2
|
+
var _=async(F,V)=>{if(!V)return null;let G="owner",H="collaborators",Q=()=>{let h=F.sm.getActiveEthAddress();if(!h)throw Error("❌ [SM-ACLs] Active user session required.");return h},X=(h)=>Error(`❌ [SM-ACLs] Only the owner can ${h}.`),Z=async(h,k)=>{let x=[];for(let z of h){let{signer:D,type:J,id:P}=z;if(!D||!P){x.push(z);continue}let T=k.get(P),{[G]:K,[H]:Y={}}=T?.value||{};if(J==="upsert"||J==="put"){if(!T||K===void 0||D===K||Y[D]==="write"||Y[D]==="delete")x.push(z);else log.warn(`⚠️ [SM-ACLs] DENIED (put): ${D} → ${P}`);continue}if(J==="remove"){if(!T||K===void 0||D===K||Y[D]==="delete")x.push(z);else log.warn(`⚠️ [SM-ACLs] DENIED (remove): ${D} → ${P}`);continue}x.push(z)}return x};return F.use(Z),{async set(h,k){let x=Q(),{result:z}=await F.get(k);if(z){let{[G]:D,[H]:J={}}=z.value;if(x!==D&&J[x]!=="write")throw Error(`\uD83D\uDEE1️ [SM-ACLs] Write denied for node ${k}.`);let{[G]:P,[H]:T,...K}=h;return F.put({...z.value,...K},k)}return F.put({...h,[G]:x,[H]:{}},k)},async grant(h,k,x){let z=Q();if(!["read","write","delete"].includes(x))throw Error("\uD83D\uDEE1️ [SM-ACLs] Permission must be 'read', 'write' or 'delete'.");let{result:D}=await F.get(h);if(!D)throw Error(`❌ [SM-ACLs] Node ${h} not found.`);if(D.value[G]!==z)throw X("grant permissions");let J={...D.value[H]??{},[k]:x};await F.put({...D.value,[H]:J},h)},async revoke(h,k){let x=Q(),{result:z}=await F.get(h);if(!z)throw Error(`❌ [SM-ACLs] Node ${h} not found.`);if(z.value[G]!==x)throw X("revoke permissions");let{[k]:D,...J}=z.value[H]??{};await F.put({...z.value,[H]:J},h)},async delete(h){let k=Q(),{result:x}=await F.get(h);if(!x)return;if(x.value[G]!==k&&x.value[H]?.[k]!=="delete")throw X("delete this node");await F.remove(h)},async getPermissions(h){let{result:k}=await F.get(h);if(!k||k.value[G]===void 0)return null;return{owner:k.value[G],collaborators:k.value[H]??{}}}}};async function f(F,V){log.info("\uD83D\uDEE1️ [SM-ACLs] Starting ACL module...");try{let G=await _(F,V);if(G)try{Object.defineProperty(F.sm,"acls",{value:G,writable:!0,enumerable:!1,configurable:!0}),log.info("\uD83D\uDEE1️ [SM-ACLs] Module initialized and attached to gdb.sm.acls.")}catch(H){throw log.error("❌ [SM-ACLs] Failed to attach: gdb.sm not extensible.",H.message),Error("❌ [SM-ACLs] Cannot attach ACL module to gdb.sm. Ensure gdb.sm is extensible.")}else log.warn("⚠️ [SM-ACLs] Module not activated (options missing).")}catch(G){throw log.error("❌ [SM-ACLs] Failed to start ACL module.",G),G}}export{f as start,_ as createAclModule};
|
package/dist/sm-acls.min.js.gz
CHANGED
|
Binary file
|
package/dist/sm-gov.min.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var log=(()=>{const n=()=>{};return new Proxy(console,{get:(c,m)=>globalThis.__gdbDebug?c[m].bind(c):n})})();
|
|
2
|
+
var D=null,F=[],H=[],B=null,J=(q)=>!!q&&H.some((j)=>j&&j.toLowerCase()===q.toLowerCase()),L=async()=>{let q=new Map;for(let j of F){let x=j.then?.assignRole;if(!x)continue;let z=[];try{({results:z=[]}=await D.map({query:j.if}))}catch(f){log.error("❌ GOVERNANCE: rule evaluation failed.",{rule:j,error:f.message});continue}for(let f of z){if(!f.id.startsWith("user:"))continue;if(J(f.id.slice(5)))continue;if(j.offsetTimestamp&&(f.timestamp?.physical??0)>Date.now()-j.offsetTimestamp)continue;q.set(f.id,{role:x,current:f.value?.role})}}for(let[j,{role:x,current:z}]of q){if(z===x)continue;let f=j.slice(5);try{await D.sm.assignRole(f,x),log.info(`\uD83D\uDCDC GOVERNANCE: ${f} '${z}' -> '${x}'`)}catch(K){log.error("❌ GOVERNANCE: assignRole failed.",{target:f,role:x,error:K.message})}}},M=()=>{if(B)return;log.info("✅ GOVERNANCE ENGINE: activated (superadmin present)."),B=setInterval(L,4000)},N=()=>{if(!B)return;clearInterval(B),B=null,log.info("\uD83D\uDED1 GOVERNANCE ENGINE: deactivated.")},P=(q,{governanceRules:j,superAdmins:x}={})=>{if(!q||!j)return log.error("❌ GOVERNANCE: initialization failed — gdb instance and governanceRules are required.");D=q,F=j,H=x||[],q.sm.setGovernanceStateChangeCallback(({isActive:z,activeAddress:f})=>{if(z&&f&&J(f))M();else N()})};export{P as start};
|
package/dist/sm-gov.min.js.gz
CHANGED
|
Binary file
|