@nymphjs/query-parser 1.0.0-alpha.1 → 1.0.0-alpha.5
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/CHANGELOG.md +18 -0
- package/README.md +41 -10
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/lib/queryParser.d.ts +6 -1
- package/lib/queryParser.js +204 -161
- package/lib/queryParser.js.map +1 -1
- package/package.json +3 -3
- package/src/queryParser.ts +218 -157
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,24 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.0.0-alpha.5](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.4...v1.0.0-alpha.5) (2021-09-30)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @nymphjs/query-parser
|
|
9
|
+
|
|
10
|
+
# [1.0.0-alpha.4](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.3...v1.0.0-alpha.4) (2021-09-27)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @nymphjs/query-parser
|
|
13
|
+
|
|
14
|
+
# [1.0.0-alpha.3](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.2...v1.0.0-alpha.3) (2021-09-22)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @nymphjs/query-parser
|
|
17
|
+
|
|
18
|
+
# [1.0.0-alpha.2](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.1...v1.0.0-alpha.2) (2021-09-21)
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
- support qref queries in the query parser ([71169a2](https://github.com/sciactive/nymphjs/commit/71169a2aa33f11d791e93bb23d377a6c270b42f2))
|
|
23
|
+
|
|
6
24
|
# 1.0.0-alpha.1 (2021-09-06)
|
|
7
25
|
|
|
8
26
|
### Features
|
package/README.md
CHANGED
|
@@ -16,20 +16,28 @@ The query parser will turn a string into an Options and Selectors array for the
|
|
|
16
16
|
|
|
17
17
|
```ts
|
|
18
18
|
import queryParser from '@nymphjs/query-parser';
|
|
19
|
-
import { Nymph } from '@nymphjs/client';
|
|
20
19
|
|
|
21
|
-
import
|
|
20
|
+
import BlogPost from './BlogPost';
|
|
21
|
+
import Category from './Category';
|
|
22
22
|
|
|
23
23
|
async function doQuery() {
|
|
24
|
-
const query =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
const query =
|
|
25
|
+
'limit:4 foobar (| [archived] mdate<"2 weeks ago") category<{cat Tech}>';
|
|
26
|
+
const [options, ...selectors] = queryParser(
|
|
27
|
+
query,
|
|
28
|
+
BlogPost,
|
|
29
|
+
['title', 'body'],
|
|
30
|
+
{
|
|
31
|
+
cat: {
|
|
32
|
+
class: Category,
|
|
33
|
+
defaultFields: ['name'],
|
|
34
|
+
},
|
|
35
|
+
}
|
|
36
|
+
);
|
|
29
37
|
/*
|
|
30
38
|
Options will be
|
|
31
39
|
{
|
|
32
|
-
class:
|
|
40
|
+
class: BlogPost,
|
|
33
41
|
limit: 4
|
|
34
42
|
}
|
|
35
43
|
|
|
@@ -44,6 +52,21 @@ async function doQuery() {
|
|
|
44
52
|
["mdate", null, "2 weeks ago"]
|
|
45
53
|
]
|
|
46
54
|
},
|
|
55
|
+
{
|
|
56
|
+
type: "&",
|
|
57
|
+
qref: [
|
|
58
|
+
"category",
|
|
59
|
+
[
|
|
60
|
+
{
|
|
61
|
+
class: Category
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
type: "|",
|
|
65
|
+
ilike: ["name", "%Tech%"]
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
]
|
|
69
|
+
},
|
|
47
70
|
{
|
|
48
71
|
type: "|",
|
|
49
72
|
ilike: [
|
|
@@ -53,7 +76,7 @@ async function doQuery() {
|
|
|
53
76
|
}
|
|
54
77
|
]
|
|
55
78
|
*/
|
|
56
|
-
const entities = await
|
|
79
|
+
const entities = await nymph.getEntities(options, ...selectors);
|
|
57
80
|
}
|
|
58
81
|
```
|
|
59
82
|
|
|
@@ -85,7 +108,7 @@ Check for string or JSON representation equality.
|
|
|
85
108
|
|
|
86
109
|
Check for entity GUID.
|
|
87
110
|
|
|
88
|
-
- `{guid}`
|
|
111
|
+
- `{guid}` or `{!guid}`
|
|
89
112
|
|
|
90
113
|
### truthy and !truthy
|
|
91
114
|
|
|
@@ -99,6 +122,14 @@ Check for a reference to another entity.
|
|
|
99
122
|
|
|
100
123
|
- `name<{guid}>` or `name!<{guid}>`
|
|
101
124
|
|
|
125
|
+
### qref and !qref
|
|
126
|
+
|
|
127
|
+
Check for a reference to another entity using a query.
|
|
128
|
+
|
|
129
|
+
- `name<{refclassname inner query}>` or `name!<{refclassname inner query}>`
|
|
130
|
+
- (Esacpe curly brackets with a leading backslash.)
|
|
131
|
+
- (Requires a map of refclassname to their actual class and default fields.)
|
|
132
|
+
|
|
102
133
|
### contain and !contain
|
|
103
134
|
|
|
104
135
|
Check for a JSON representation appearing within the JSON representation of the named property.
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["@nymphjs/client"]=t():e["@nymphjs/client"]=t()}(this,(function(){return(()=>{"use strict";var e={568:function(e,t,l){var
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["@nymphjs/client"]=t():e["@nymphjs/client"]=t()}(this,(function(){return(()=>{"use strict";var e={568:function(e,t,l){var c=this&&this.__createBinding||(Object.create?function(e,t,l,c){void 0===c&&(c=l),Object.defineProperty(e,c,{enumerable:!0,get:function(){return t[l]}})}:function(e,t,l,c){void 0===c&&(c=l),e[c]=t[l]}),i=this&&this.__exportStar||function(e,t){for(var l in e)"default"===l||Object.prototype.hasOwnProperty.call(t,l)||c(t,e,l)},r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.queryParser=void 0,i(l(138),t);const n=r(l(138));t.queryParser=n.default,t.default=n.default},138:(e,t)=>{function l(e,t,l=["name"],i={}){const r={class:t};return[r,...c(e,"&",l,i,r)]}function c(e,t="&",n,s,h){const a={type:t};let o=e;const u=[];let p=!1,f=0,g=null;for(let e=0;e<o.length;e++)if('"'===o[e])p?"\\"!==o[e-1]&&(p=!1):p=!0;else{if(p)continue;"("===o[e]?null==g?g=e:f++:")"===o[e]&&(0===f?null==g||(u.push([g,e+1]),g=null):f--)}if(u.length){a.selector=[],u.reverse();for(let e of u){let t=o.slice(e[0]+1,e[1]-1);o=o.slice(0,e[0])+o.slice(e[1]);let l="&";t.startsWith("&")?t=t.slice(1):t.startsWith("!&")?(l="!&",t=t.slice(2)):t.startsWith("|")?(l="|",t=t.slice(1)):t.startsWith("!|")?(l="!|",t=t.slice(2)):t.startsWith("!")&&(l="!&",t=t.slice(1)),a.selector.push(...c(t,l,n,s))}}if(o=function(e,t,c){let n=e;const s=/(?: |^)(\w+)!?<\{(\w+) (.*?[^\\])\}>(?= |$)/g,h=n.match(s);if(h){t.qref=[],t["!qref"]=[];for(let e of h)try{let[i,r]=e.trim().slice(0,-1).split("<",2);a=r.slice(1,-1),r=a.replace(/\\\{/g,"{").replace(/\\\}/g,"}").replace(/\\\\/g,"\\");let[n,s]=r.split(" ",2);const h=c[n].class;if(null==h)continue;const o=l(s,h,c[n].defaultFields,c);i.endsWith("!")?t["!qref"].push([i.slice(0,-1),o]):t.qref.push([i,o])}catch(e){continue}t.qref.length||delete t.qref,t["!qref"].length||delete t["!qref"]}var a;n=n.replace(s,"");const o=/(?: |^)(\w+)!?=(""|".*?[^\\]"|[^ ]+)(?= |$)/g,u=n.match(o);if(u){t.equal=[],t["!equal"]=[];for(let e of u)try{let[l,c]=e.trim().split("=",2);try{l.endsWith("!")?t["!equal"].push([l.slice(0,-1),JSON.parse(c)]):t.equal.push([l,JSON.parse(c)])}catch(e){l.endsWith("!")?t["!equal"].push([l.slice(0,-1),i(c)]):t.equal.push([l,i(c)])}}catch(e){continue}t.equal.length||delete t.equal,t["!equal"].length||delete t["!equal"]}n=n.replace(o,"");const p=/(?: |^)(\w+)!?<\{([0-9a-f]{24})\}>(?= |$)/g,f=n.match(p);if(f){t.ref=[],t["!ref"]=[];for(let e of f)try{let[l,c]=e.trim().slice(0,-1).split("<",2);l.endsWith("!")?t["!ref"].push([l.slice(0,-1),c.slice(1,-1)]):t.ref.push([l,c.slice(1,-1)])}catch(e){continue}t.ref.length||delete t.ref,t["!ref"].length||delete t["!ref"]}n=n.replace(p,"");const g=/(?: |^)(\w+)!?(<.*?[^\\]>)(?= |$)/g,d=n.match(g);if(d){t.contain=[],t["!contain"]=[];for(let e of d)try{let[l,c]=e.trim().slice(0,-1).split("<",2);try{l.endsWith("!")?t["!contain"].push([l.slice(0,-1),JSON.parse(r(c))]):t.contain.push([l,JSON.parse(r(c))])}catch(e){l.endsWith("!")?t["!contain"].push([l.slice(0,-1),r(c)]):t.contain.push([l,r(c)])}}catch(e){continue}t.contain.length||delete t.contain,t["!contain"].length||delete t["!contain"]}n=n.replace(g,"");const m=/(?: |^)(\w+)!?~(\/\/|\/.*?[^\\]\/)i?(?= |$)/g,y=n.match(m);if(y){t.match=[],t["!match"]=[],t.imatch=[],t["!imatch"]=[];for(let e of y)try{let[l,c]=e.trim().split("~",2);l.endsWith("!")?c.endsWith("i")?t["!imatch"].push([l.slice(0,-1),c.replace(/^\/|\/i$/g,"")]):t["!match"].push([l.slice(0,-1),c.replace(/^\/|\/$/g,"")]):c.endsWith("i")?t.imatch.push([l,c.replace(/^\/|\/i$/g,"")]):t.match.push([l,c.replace(/^\/|\/$/g,"")])}catch(e){continue}t.match.length||delete t.match,t["!match"].length||delete t["!match"],t.imatch.length||delete t.imatch,t["!imatch"].length||delete t["!imatch"]}n=n.replace(m,"");const $=/(?: |^)(\w+)!?~(""i?|".*?[^\\]"i?|[^ ]+)(?= |$)/g,w=n.match($);if(w){t.like=[],t["!like"]=[],t.ilike=[],t["!ilike"]=[];for(let e of w)try{let[l,c]=e.trim().split("~",2);l.endsWith("!")?c.endsWith('"i')?t["!ilike"].push([l.slice(0,-1),i(c.slice(0,-1))]):t["!like"].push([l.slice(0,-1),i(c)]):c.endsWith('"i')?t.ilike.push([l,i(c.slice(0,-1))]):t.like.push([l,i(c)])}catch(e){continue}t.like.length||delete t.like,t["!like"].length||delete t["!like"],t.ilike.length||delete t.ilike,t["!ilike"].length||delete t["!ilike"]}n=n.replace($,"");const q=/(?: |^)\{!?([0-9a-f]{24})\}(?= |$)/g,k=n.match(q);if(k){t.guid=[],t["!guid"]=[];for(let e of k)try{let l=e.trim().replace(/^\{|\}$/g,"");l.startsWith("!")?t["!guid"].push(l.slice(1)):t.guid.push(l)}catch(e){continue}t.guid.length||delete t.guid,t["!guid"].length||delete t["!guid"]}n=n.replace(q,"");const W=/(?: |^)\[(!?\w+)\](?= |$)/g,b=n.match(W);if(b){t.truthy=[],t["!truthy"]=[];for(let e of b)try{let l=e.trim().replace(/^\[|\]$/g,"");l.startsWith("!")?t["!truthy"].push(l.slice(1)):t.truthy.push(l)}catch(e){continue}t.truthy.length||delete t.truthy,t["!truthy"].length||delete t["!truthy"]}n=n.replace(W,"");const v=/(?: |^)(\w+)>(-?\d+(?:\.\d+)?)(?= |$)/g,_=n.match(v);if(_){t.gt=[];for(let e of _)try{let[l,c]=e.trim().split(">",2);t.gt.push([l,Number(c)])}catch(e){continue}t.gt.length||delete t.gt}n=n.replace(v,"");const j=/(?: |^)(\w+)>(\w+|"[^"]+")(?= |$)/g,O=n.match(j);if(O){null==t.gt&&(t.gt=[]);for(let e of O)try{let[l,c]=e.trim().split(">",2);t.gt.push([l,null,c.replace(/"/g,"")])}catch(e){continue}t.gt.length||delete t.gt}n=n.replace(j,"");const x=/(?: |^)(\w+)>=(-?\d+(?:\.\d+)?)(?= |$)/g,N=n.match(x);if(N){t.gte=[];for(let e of N)try{let[l,c]=e.trim().split(">=",2);t.gte.push([l,Number(c)])}catch(e){continue}t.gte.length||delete t.gte}n=n.replace(x,"");const P=/(?: |^)(\w+)>=(\w+|"[^"]+")(?= |$)/g,S=n.match(P);if(S){null==t.gte&&(t.gte=[]);for(let e of S)try{let[l,c]=e.trim().split(">=",2);t.gte.push([l,null,c.replace(/"/g,"")])}catch(e){continue}t.gte.length||delete t.gte}n=n.replace(P,"");const J=/(?: |^)(\w+)<(-?\d+(?:\.\d+)?)(?= |$)/g,M=n.match(J);if(M){t.lt=[];for(let e of M)try{let[l,c]=e.trim().split("<",2);t.lt.push([l,Number(c)])}catch(e){continue}t.lt.length||delete t.lt}n=n.replace(J,"");const B=/(?: |^)(\w+)<(\w+|"[^"]+")(?= |$)/g,D=n.match(B);if(D){null==t.lt&&(t.lt=[]);for(let e of D)try{let[l,c]=e.trim().split("<",2);t.lt.push([l,null,c.replace(/"/g,"")])}catch(e){continue}t.lt.length||delete t.lt}n=n.replace(B,"");const F=/(?: |^)(\w+)<=(-?\d+(?:\.\d+)?)(?= |$)/g,z=n.match(F);if(z){t.lte=[];for(let e of z)try{let[l,c]=e.trim().split("<=",2);t.lte.push([l,Number(c)])}catch(e){continue}t.lte.length||delete t.lte}n=n.replace(F,"");const A=/(?: |^)(\w+)<=(\w+|"[^"]+")(?= |$)/g,C=n.match(A);if(C){null==t.lte&&(t.lte=[]);for(let e of C)try{let[l,c]=e.trim().split("<=",2);t.lte.push([l,null,c.replace(/"/g,"")])}catch(e){continue}t.lte.length||delete t.lte}return n=n.replace(A,""),n.trim()}(o,a,s),h){const e=/(?: |^)limit:(\d+)(?= |$)/,t=o.match(e);t&&(h.limit=Number(t[1])),o=o.replace(e,"");const l=/(?: |^)offset:(\d+)(?= |$)/,c=o.match(l);c&&(h.offset=Number(c[1])),o=o.replace(l,"");const i=/(?: |^)reverse:(true|false|1|0)(?= |$)/,r=o.match(i);r&&(h.reverse="true"===r[1]||"1"===r[1]),o=o.replace(i,"")}return o=o.trim(),o.length&&(o.match(/[_%]/)||(o=`%${o}%`),n.length)?[...Object.keys(a).length>1?[a]:[],{type:"|",ilike:n.map((e=>[e,o]))}]:!("selector"in a)||1!==a.selector.length||2!==Object.keys(a).length||"&"!==a.type&&"|"!==a.type?[a]:a.selector}function i(e){return e.match(/^".*?[^\\]"$/)?e.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"):e}function r(e){return e.replace(/\\</g,"<").replace(/\\>/g,">").replace(/\\\\/g,"\\")}Object.defineProperty(t,"__esModule",{value:!0}),t.default=l}},t={};return function l(c){var i=t[c];if(void 0!==i)return i.exports;var r=t[c]={exports:{}};return e[c].call(r.exports,r,r.exports,l),r.exports}(568)})()}));
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","mappings":"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","sources":["webpack://@nymphjs/client/webpack/universalModuleDefinition","webpack://@nymphjs/client/./lib/index.js","webpack://@nymphjs/client/./lib/queryParser.js","webpack://@nymphjs/client/webpack/bootstrap","webpack://@nymphjs/client/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"@nymphjs/client\"] = factory();\n\telse\n\t\troot[\"@nymphjs/client\"] = factory();\n})(this, function() {\nreturn ","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.queryParser = void 0;\n__exportStar(require(\"./queryParser\"), exports);\nconst queryParser_1 = __importDefault(require(\"./queryParser\"));\nexports.queryParser = queryParser_1.default;\nexports.default = queryParser_1.default;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction queryParser(query, entityClass, defaultFields = ['name']) {\n const options = { class: entityClass };\n return [options, ...selectorsParser(query, '&', defaultFields, options)];\n}\nexports.default = queryParser;\nfunction selectorsParser(query, type = '&', defaultFields = ['name'], options) {\n const selector = { type };\n let curQuery = query;\n const subSelectorPairs = [];\n let inQuote = false;\n let nesting = 0;\n let currentStart = null;\n for (let i = 0; i < curQuery.length; i++) {\n if (curQuery[i] === '\"') {\n if (!inQuote) {\n inQuote = true;\n }\n else if (curQuery[i - 1] !== '\\\\') {\n inQuote = false;\n }\n }\n else if (inQuote) {\n continue;\n }\n else if (curQuery[i] === '(') {\n if (currentStart == null) {\n currentStart = i;\n }\n else {\n nesting++;\n }\n }\n else if (curQuery[i] === ')') {\n if (nesting === 0) {\n if (currentStart == null) {\n }\n else {\n subSelectorPairs.push([currentStart, i + 1]);\n currentStart = null;\n }\n }\n else {\n nesting--;\n }\n }\n }\n if (subSelectorPairs.length) {\n selector.selector = [];\n subSelectorPairs.reverse();\n for (let pair of subSelectorPairs) {\n let selectorQuery = curQuery.slice(pair[0] + 1, pair[1] - 1);\n curQuery = curQuery.slice(0, pair[0]) + curQuery.slice(pair[1]);\n let type = '&';\n if (selectorQuery.startsWith('&')) {\n selectorQuery = selectorQuery.slice(1);\n }\n else if (selectorQuery.startsWith('!&')) {\n type = '!&';\n selectorQuery = selectorQuery.slice(2);\n }\n else if (selectorQuery.startsWith('|')) {\n type = '|';\n selectorQuery = selectorQuery.slice(1);\n }\n else if (selectorQuery.startsWith('!|')) {\n type = '!|';\n selectorQuery = selectorQuery.slice(2);\n }\n else if (selectorQuery.startsWith('!')) {\n type = '!&';\n selectorQuery = selectorQuery.slice(1);\n }\n selector.selector.push(...selectorsParser(selectorQuery, type, defaultFields));\n }\n }\n curQuery = selectorParser(curQuery, selector);\n if (options) {\n const limitRegex = /(?: |^)limit:(\\d+)(?= |$)/;\n const limitMatch = curQuery.match(limitRegex);\n if (limitMatch) {\n options.limit = Number(limitMatch[1]);\n }\n curQuery = curQuery.replace(limitRegex, '');\n const offsetRegex = /(?: |^)offset:(\\d+)(?= |$)/;\n const offsetMatch = curQuery.match(offsetRegex);\n if (offsetMatch) {\n options.offset = Number(offsetMatch[1]);\n }\n curQuery = curQuery.replace(offsetRegex, '');\n const reverseRegex = /(?: |^)reverse:(true|false|1|0)(?= |$)/;\n const reverseMatch = curQuery.match(reverseRegex);\n if (reverseMatch) {\n options.reverse = reverseMatch[1] === 'true' || reverseMatch[1] === '1';\n }\n curQuery = curQuery.replace(reverseRegex, '');\n }\n curQuery = curQuery.trim();\n if (curQuery.length) {\n if (!curQuery.match(/[_%]/)) {\n curQuery = `%${curQuery}%`;\n }\n if (defaultFields.length) {\n return [\n ...(Object.keys(selector).length > 1 ? [selector] : []),\n {\n type: '|',\n ilike: defaultFields.map((field) => [field, curQuery]),\n },\n ];\n }\n }\n if ('selector' in selector &&\n selector.selector.length === 1 &&\n Object.keys(selector).length === 2 &&\n (selector.type === '&' || selector.type === '|')) {\n return selector.selector;\n }\n return [selector];\n}\nfunction selectorParser(query, selector) {\n let curQuery = query;\n const equalRegex = /(?: |^)(\\w+)!?=(\"\"|\".*?[^\\\\]\"|[^ ]+)(?= |$)/g;\n const equalMatch = curQuery.match(equalRegex);\n if (equalMatch) {\n selector.equal = [];\n selector['!equal'] = [];\n for (let match of equalMatch) {\n try {\n let [name, value] = match.trim().split('=', 2);\n try {\n if (name.endsWith('!')) {\n selector['!equal'].push([name.slice(0, -1), JSON.parse(value)]);\n }\n else {\n selector.equal.push([name, JSON.parse(value)]);\n }\n }\n catch (e) {\n if (name.endsWith('!')) {\n selector['!equal'].push([name.slice(0, -1), unQuoteString(value)]);\n }\n else {\n selector.equal.push([name, unQuoteString(value)]);\n }\n }\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.equal.length) {\n delete selector.equal;\n }\n if (!selector['!equal'].length) {\n delete selector['!equal'];\n }\n }\n curQuery = curQuery.replace(equalRegex, '');\n const guidRegex = /(?: |^)\\{!?([0-9a-f]{24})\\}(?= |$)/g;\n const guidMatch = curQuery.match(guidRegex);\n if (guidMatch) {\n selector.guid = [];\n selector['!guid'] = [];\n for (let match of guidMatch) {\n try {\n let guid = match.trim().replace(/^\\{|\\}$/g, '');\n if (guid.startsWith('!')) {\n selector['!guid'].push(guid.slice(1));\n }\n else {\n selector.guid.push(guid);\n }\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.guid.length) {\n delete selector.guid;\n }\n if (!selector['!guid'].length) {\n delete selector['!guid'];\n }\n }\n curQuery = curQuery.replace(guidRegex, '');\n const truthyRegex = /(?: |^)\\[(!?\\w+)\\](?= |$)/g;\n const truthyMatch = curQuery.match(truthyRegex);\n if (truthyMatch) {\n selector.truthy = [];\n selector['!truthy'] = [];\n for (let match of truthyMatch) {\n try {\n let name = match.trim().replace(/^\\[|\\]$/g, '');\n if (name.startsWith('!')) {\n selector['!truthy'].push(name.slice(1));\n }\n else {\n selector.truthy.push(name);\n }\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.truthy.length) {\n delete selector.truthy;\n }\n if (!selector['!truthy'].length) {\n delete selector['!truthy'];\n }\n }\n curQuery = curQuery.replace(truthyRegex, '');\n const refRegex = /(?: |^)(\\w+)!?<\\{([0-9a-f]{24})\\}>(?= |$)/g;\n const refMatch = curQuery.match(refRegex);\n if (refMatch) {\n selector.ref = [];\n selector['!ref'] = [];\n for (let match of refMatch) {\n try {\n let [name, value] = match.trim().slice(0, -1).split('<', 2);\n if (name.endsWith('!')) {\n selector['!ref'].push([name.slice(0, -1), value.slice(1, -1)]);\n }\n else {\n selector.ref.push([name, value.slice(1, -1)]);\n }\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.ref.length) {\n delete selector.ref;\n }\n if (!selector['!ref'].length) {\n delete selector['!ref'];\n }\n }\n curQuery = curQuery.replace(refRegex, '');\n const containRegex = /(?: |^)(\\w+)!?(<.*?[^\\\\]>)(?= |$)/g;\n const containMatch = curQuery.match(containRegex);\n if (containMatch) {\n selector.contain = [];\n selector['!contain'] = [];\n for (let match of containMatch) {\n try {\n let [name, value] = match.trim().slice(0, -1).split('<', 2);\n try {\n if (name.endsWith('!')) {\n selector['!contain'].push([\n name.slice(0, -1),\n JSON.parse(unQuoteAngles(value)),\n ]);\n }\n else {\n selector.contain.push([name, JSON.parse(unQuoteAngles(value))]);\n }\n }\n catch (e) {\n if (name.endsWith('!')) {\n selector['!contain'].push([\n name.slice(0, -1),\n unQuoteAngles(value),\n ]);\n }\n else {\n selector.contain.push([name, unQuoteAngles(value)]);\n }\n }\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.contain.length) {\n delete selector.contain;\n }\n if (!selector['!contain'].length) {\n delete selector['!contain'];\n }\n }\n curQuery = curQuery.replace(containRegex, '');\n const gtRegex = /(?: |^)(\\w+)>(-?\\d+(?:\\.\\d+)?)(?= |$)/g;\n const gtMatch = curQuery.match(gtRegex);\n if (gtMatch) {\n selector.gt = [];\n for (let match of gtMatch) {\n try {\n let [name, value] = match.trim().split('>', 2);\n selector.gt.push([name, Number(value)]);\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.gt.length) {\n delete selector.gt;\n }\n }\n curQuery = curQuery.replace(gtRegex, '');\n const gtRelativeRegex = /(?: |^)(\\w+)>(\\w+|\"[^\"]+\")(?= |$)/g;\n const gtRelativeMatch = curQuery.match(gtRelativeRegex);\n if (gtRelativeMatch) {\n if (selector.gt == null) {\n selector.gt = [];\n }\n for (let match of gtRelativeMatch) {\n try {\n let [name, value] = match.trim().split('>', 2);\n selector.gt.push([\n name,\n null,\n value.replace(/\"/g, ''),\n ]);\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.gt.length) {\n delete selector.gt;\n }\n }\n curQuery = curQuery.replace(gtRelativeRegex, '');\n const gteRegex = /(?: |^)(\\w+)>=(-?\\d+(?:\\.\\d+)?)(?= |$)/g;\n const gteMatch = curQuery.match(gteRegex);\n if (gteMatch) {\n selector.gte = [];\n for (let match of gteMatch) {\n try {\n let [name, value] = match.trim().split('>=', 2);\n selector.gte.push([name, Number(value)]);\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.gte.length) {\n delete selector.gte;\n }\n }\n curQuery = curQuery.replace(gteRegex, '');\n const gteRelativeRegex = /(?: |^)(\\w+)>=(\\w+|\"[^\"]+\")(?= |$)/g;\n const gteRelativeMatch = curQuery.match(gteRelativeRegex);\n if (gteRelativeMatch) {\n if (selector.gte == null) {\n selector.gte = [];\n }\n for (let match of gteRelativeMatch) {\n try {\n let [name, value] = match.trim().split('>=', 2);\n selector.gte.push([\n name,\n null,\n value.replace(/\"/g, ''),\n ]);\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.gte.length) {\n delete selector.gte;\n }\n }\n curQuery = curQuery.replace(gteRelativeRegex, '');\n const ltRegex = /(?: |^)(\\w+)<(-?\\d+(?:\\.\\d+)?)(?= |$)/g;\n const ltMatch = curQuery.match(ltRegex);\n if (ltMatch) {\n selector.lt = [];\n for (let match of ltMatch) {\n try {\n let [name, value] = match.trim().split('<', 2);\n selector.lt.push([name, Number(value)]);\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.lt.length) {\n delete selector.lt;\n }\n }\n curQuery = curQuery.replace(ltRegex, '');\n const ltRelativeRegex = /(?: |^)(\\w+)<(\\w+|\"[^\"]+\")(?= |$)/g;\n const ltRelativeMatch = curQuery.match(ltRelativeRegex);\n if (ltRelativeMatch) {\n if (selector.lt == null) {\n selector.lt = [];\n }\n for (let match of ltRelativeMatch) {\n try {\n let [name, value] = match.trim().split('<', 2);\n selector.lt.push([\n name,\n null,\n value.replace(/\"/g, ''),\n ]);\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.lt.length) {\n delete selector.lt;\n }\n }\n curQuery = curQuery.replace(ltRelativeRegex, '');\n const lteRegex = /(?: |^)(\\w+)<=(-?\\d+(?:\\.\\d+)?)(?= |$)/g;\n const lteMatch = curQuery.match(lteRegex);\n if (lteMatch) {\n selector.lte = [];\n for (let match of lteMatch) {\n try {\n let [name, value] = match.trim().split('<=', 2);\n selector.lte.push([name, Number(value)]);\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.lte.length) {\n delete selector.lte;\n }\n }\n curQuery = curQuery.replace(lteRegex, '');\n const lteRelativeRegex = /(?: |^)(\\w+)<=(\\w+|\"[^\"]+\")(?= |$)/g;\n const lteRelativeMatch = curQuery.match(lteRelativeRegex);\n if (lteRelativeMatch) {\n if (selector.lte == null) {\n selector.lte = [];\n }\n for (let match of lteRelativeMatch) {\n try {\n let [name, value] = match.trim().split('<=', 2);\n selector.lte.push([\n name,\n null,\n value.replace(/\"/g, ''),\n ]);\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.lte.length) {\n delete selector.lte;\n }\n }\n curQuery = curQuery.replace(lteRelativeRegex, '');\n const posixRegex = /(?: |^)(\\w+)!?~(\\/\\/|\\/.*?[^\\\\]\\/)i?(?= |$)/g;\n const posixMatch = curQuery.match(posixRegex);\n if (posixMatch) {\n selector.match = [];\n selector['!match'] = [];\n selector.imatch = [];\n selector['!imatch'] = [];\n for (let match of posixMatch) {\n try {\n let [name, value] = match.trim().split('~', 2);\n if (name.endsWith('!')) {\n if (value.endsWith('i')) {\n selector['!imatch'].push([\n name.slice(0, -1),\n value.replace(/^\\/|\\/i$/g, ''),\n ]);\n }\n else {\n selector['!match'].push([\n name.slice(0, -1),\n value.replace(/^\\/|\\/$/g, ''),\n ]);\n }\n }\n else {\n if (value.endsWith('i')) {\n selector.imatch.push([name, value.replace(/^\\/|\\/i$/g, '')]);\n }\n else {\n selector.match.push([name, value.replace(/^\\/|\\/$/g, '')]);\n }\n }\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.match.length) {\n delete selector.match;\n }\n if (!selector['!match'].length) {\n delete selector['!match'];\n }\n if (!selector.imatch.length) {\n delete selector.imatch;\n }\n if (!selector['!imatch'].length) {\n delete selector['!imatch'];\n }\n }\n curQuery = curQuery.replace(posixRegex, '');\n const likeRegex = /(?: |^)(\\w+)!?~(\"\"i?|\".*?[^\\\\]\"i?|[^ ]+)(?= |$)/g;\n const likeMatch = curQuery.match(likeRegex);\n if (likeMatch) {\n selector.like = [];\n selector['!like'] = [];\n selector.ilike = [];\n selector['!ilike'] = [];\n for (let match of likeMatch) {\n try {\n let [name, value] = match.trim().split('~', 2);\n if (name.endsWith('!')) {\n if (value.endsWith('\"i')) {\n selector['!ilike'].push([\n name.slice(0, -1),\n unQuoteString(value.slice(0, -1)),\n ]);\n }\n else {\n selector['!like'].push([name.slice(0, -1), unQuoteString(value)]);\n }\n }\n else {\n if (value.endsWith('\"i')) {\n selector.ilike.push([name, unQuoteString(value.slice(0, -1))]);\n }\n else {\n selector.like.push([name, unQuoteString(value)]);\n }\n }\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.like.length) {\n delete selector.like;\n }\n if (!selector['!like'].length) {\n delete selector['!like'];\n }\n if (!selector.ilike.length) {\n delete selector.ilike;\n }\n if (!selector['!ilike'].length) {\n delete selector['!ilike'];\n }\n }\n curQuery = curQuery.replace(likeRegex, '');\n return curQuery.trim();\n}\nfunction unQuoteString(input) {\n if (input.match(/^\".*?[^\\\\]\"$/)) {\n return input.slice(1, -1).replace(/\\\\\"/g, '\"');\n }\n return input;\n}\nfunction unQuoteAngles(input) {\n return input.replace(/\\\\</g, '<').replace(/\\\\>/g, '>');\n}\n//# sourceMappingURL=queryParser.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(568);\n"],"names":["root","factory","exports","module","define","amd","this","__createBinding","Object","create","o","m","k","k2","undefined","defineProperty","enumerable","get","__exportStar","p","prototype","hasOwnProperty","call","__importDefault","mod","__esModule","value","queryParser","queryParser_1","default","selectorsParser","query","type","defaultFields","options","selector","curQuery","subSelectorPairs","inQuote","nesting","currentStart","i","length","push","reverse","pair","selectorQuery","slice","startsWith","equalRegex","equalMatch","match","equal","name","trim","split","endsWith","JSON","parse","e","unQuoteString","replace","guidRegex","guidMatch","guid","truthyRegex","truthyMatch","truthy","refRegex","refMatch","ref","containRegex","containMatch","contain","unQuoteAngles","gtRegex","gtMatch","gt","Number","gtRelativeRegex","gtRelativeMatch","gteRegex","gteMatch","gte","gteRelativeRegex","gteRelativeMatch","ltRegex","ltMatch","lt","ltRelativeRegex","ltRelativeMatch","lteRegex","lteMatch","lte","lteRelativeRegex","lteRelativeMatch","posixRegex","posixMatch","imatch","likeRegex","likeMatch","like","ilike","selectorParser","limitRegex","limitMatch","limit","offsetRegex","offsetMatch","offset","reverseRegex","reverseMatch","keys","map","field","input","entityClass","class","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.js","mappings":"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","sources":["webpack://@nymphjs/client/webpack/universalModuleDefinition","webpack://@nymphjs/client/./lib/index.js","webpack://@nymphjs/client/./lib/queryParser.js","webpack://@nymphjs/client/webpack/bootstrap","webpack://@nymphjs/client/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"@nymphjs/client\"] = factory();\n\telse\n\t\troot[\"@nymphjs/client\"] = factory();\n})(this, function() {\nreturn ","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.queryParser = void 0;\n__exportStar(require(\"./queryParser\"), exports);\nconst queryParser_1 = __importDefault(require(\"./queryParser\"));\nexports.queryParser = queryParser_1.default;\nexports.default = queryParser_1.default;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction queryParser(query, entityClass, defaultFields = ['name'], qrefMap = {}) {\n const options = { class: entityClass };\n return [\n options,\n ...selectorsParser(query, '&', defaultFields, qrefMap, options),\n ];\n}\nexports.default = queryParser;\nfunction selectorsParser(query, type = '&', defaultFields, qrefMap, options) {\n const selector = { type };\n let curQuery = query;\n const subSelectorPairs = [];\n let inQuote = false;\n let nesting = 0;\n let currentStart = null;\n for (let i = 0; i < curQuery.length; i++) {\n if (curQuery[i] === '\"') {\n if (!inQuote) {\n inQuote = true;\n }\n else if (curQuery[i - 1] !== '\\\\') {\n inQuote = false;\n }\n }\n else if (inQuote) {\n continue;\n }\n else if (curQuery[i] === '(') {\n if (currentStart == null) {\n currentStart = i;\n }\n else {\n nesting++;\n }\n }\n else if (curQuery[i] === ')') {\n if (nesting === 0) {\n if (currentStart == null) {\n }\n else {\n subSelectorPairs.push([currentStart, i + 1]);\n currentStart = null;\n }\n }\n else {\n nesting--;\n }\n }\n }\n if (subSelectorPairs.length) {\n selector.selector = [];\n subSelectorPairs.reverse();\n for (let pair of subSelectorPairs) {\n let selectorQuery = curQuery.slice(pair[0] + 1, pair[1] - 1);\n curQuery = curQuery.slice(0, pair[0]) + curQuery.slice(pair[1]);\n let type = '&';\n if (selectorQuery.startsWith('&')) {\n selectorQuery = selectorQuery.slice(1);\n }\n else if (selectorQuery.startsWith('!&')) {\n type = '!&';\n selectorQuery = selectorQuery.slice(2);\n }\n else if (selectorQuery.startsWith('|')) {\n type = '|';\n selectorQuery = selectorQuery.slice(1);\n }\n else if (selectorQuery.startsWith('!|')) {\n type = '!|';\n selectorQuery = selectorQuery.slice(2);\n }\n else if (selectorQuery.startsWith('!')) {\n type = '!&';\n selectorQuery = selectorQuery.slice(1);\n }\n selector.selector.push(...selectorsParser(selectorQuery, type, defaultFields, qrefMap));\n }\n }\n curQuery = selectorParser(curQuery, selector, qrefMap);\n if (options) {\n const limitRegex = /(?: |^)limit:(\\d+)(?= |$)/;\n const limitMatch = curQuery.match(limitRegex);\n if (limitMatch) {\n options.limit = Number(limitMatch[1]);\n }\n curQuery = curQuery.replace(limitRegex, '');\n const offsetRegex = /(?: |^)offset:(\\d+)(?= |$)/;\n const offsetMatch = curQuery.match(offsetRegex);\n if (offsetMatch) {\n options.offset = Number(offsetMatch[1]);\n }\n curQuery = curQuery.replace(offsetRegex, '');\n const reverseRegex = /(?: |^)reverse:(true|false|1|0)(?= |$)/;\n const reverseMatch = curQuery.match(reverseRegex);\n if (reverseMatch) {\n options.reverse = reverseMatch[1] === 'true' || reverseMatch[1] === '1';\n }\n curQuery = curQuery.replace(reverseRegex, '');\n }\n curQuery = curQuery.trim();\n if (curQuery.length) {\n if (!curQuery.match(/[_%]/)) {\n curQuery = `%${curQuery}%`;\n }\n if (defaultFields.length) {\n return [\n ...(Object.keys(selector).length > 1 ? [selector] : []),\n {\n type: '|',\n ilike: defaultFields.map((field) => [field, curQuery]),\n },\n ];\n }\n }\n if ('selector' in selector &&\n selector.selector.length === 1 &&\n Object.keys(selector).length === 2 &&\n (selector.type === '&' || selector.type === '|')) {\n return selector.selector;\n }\n return [selector];\n}\nfunction selectorParser(query, selector, qrefMap) {\n let curQuery = query;\n const qrefRegex = /(?: |^)(\\w+)!?<\\{(\\w+) (.*?[^\\\\])\\}>(?= |$)/g;\n const qrefMatch = curQuery.match(qrefRegex);\n if (qrefMatch) {\n selector.qref = [];\n selector['!qref'] = [];\n for (let match of qrefMatch) {\n try {\n let [name, value] = match.trim().slice(0, -1).split('<', 2);\n value = unQuoteCurlies(value.slice(1, -1));\n let [className, qrefQuery] = value.split(' ', 2);\n const EntityClass = qrefMap[className].class;\n if (EntityClass == null) {\n continue;\n }\n const qref = queryParser(qrefQuery, EntityClass, qrefMap[className].defaultFields, qrefMap);\n if (name.endsWith('!')) {\n selector['!qref'].push([name.slice(0, -1), qref]);\n }\n else {\n selector.qref.push([name, qref]);\n }\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.qref.length) {\n delete selector.qref;\n }\n if (!selector['!qref'].length) {\n delete selector['!qref'];\n }\n }\n curQuery = curQuery.replace(qrefRegex, '');\n const equalRegex = /(?: |^)(\\w+)!?=(\"\"|\".*?[^\\\\]\"|[^ ]+)(?= |$)/g;\n const equalMatch = curQuery.match(equalRegex);\n if (equalMatch) {\n selector.equal = [];\n selector['!equal'] = [];\n for (let match of equalMatch) {\n try {\n let [name, value] = match.trim().split('=', 2);\n try {\n if (name.endsWith('!')) {\n selector['!equal'].push([name.slice(0, -1), JSON.parse(value)]);\n }\n else {\n selector.equal.push([name, JSON.parse(value)]);\n }\n }\n catch (e) {\n if (name.endsWith('!')) {\n selector['!equal'].push([name.slice(0, -1), unQuoteString(value)]);\n }\n else {\n selector.equal.push([name, unQuoteString(value)]);\n }\n }\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.equal.length) {\n delete selector.equal;\n }\n if (!selector['!equal'].length) {\n delete selector['!equal'];\n }\n }\n curQuery = curQuery.replace(equalRegex, '');\n const refRegex = /(?: |^)(\\w+)!?<\\{([0-9a-f]{24})\\}>(?= |$)/g;\n const refMatch = curQuery.match(refRegex);\n if (refMatch) {\n selector.ref = [];\n selector['!ref'] = [];\n for (let match of refMatch) {\n try {\n let [name, value] = match.trim().slice(0, -1).split('<', 2);\n if (name.endsWith('!')) {\n selector['!ref'].push([name.slice(0, -1), value.slice(1, -1)]);\n }\n else {\n selector.ref.push([name, value.slice(1, -1)]);\n }\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.ref.length) {\n delete selector.ref;\n }\n if (!selector['!ref'].length) {\n delete selector['!ref'];\n }\n }\n curQuery = curQuery.replace(refRegex, '');\n const containRegex = /(?: |^)(\\w+)!?(<.*?[^\\\\]>)(?= |$)/g;\n const containMatch = curQuery.match(containRegex);\n if (containMatch) {\n selector.contain = [];\n selector['!contain'] = [];\n for (let match of containMatch) {\n try {\n let [name, value] = match.trim().slice(0, -1).split('<', 2);\n try {\n if (name.endsWith('!')) {\n selector['!contain'].push([\n name.slice(0, -1),\n JSON.parse(unQuoteAngles(value)),\n ]);\n }\n else {\n selector.contain.push([name, JSON.parse(unQuoteAngles(value))]);\n }\n }\n catch (e) {\n if (name.endsWith('!')) {\n selector['!contain'].push([\n name.slice(0, -1),\n unQuoteAngles(value),\n ]);\n }\n else {\n selector.contain.push([name, unQuoteAngles(value)]);\n }\n }\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.contain.length) {\n delete selector.contain;\n }\n if (!selector['!contain'].length) {\n delete selector['!contain'];\n }\n }\n curQuery = curQuery.replace(containRegex, '');\n const posixRegex = /(?: |^)(\\w+)!?~(\\/\\/|\\/.*?[^\\\\]\\/)i?(?= |$)/g;\n const posixMatch = curQuery.match(posixRegex);\n if (posixMatch) {\n selector.match = [];\n selector['!match'] = [];\n selector.imatch = [];\n selector['!imatch'] = [];\n for (let match of posixMatch) {\n try {\n let [name, value] = match.trim().split('~', 2);\n if (name.endsWith('!')) {\n if (value.endsWith('i')) {\n selector['!imatch'].push([\n name.slice(0, -1),\n value.replace(/^\\/|\\/i$/g, ''),\n ]);\n }\n else {\n selector['!match'].push([\n name.slice(0, -1),\n value.replace(/^\\/|\\/$/g, ''),\n ]);\n }\n }\n else {\n if (value.endsWith('i')) {\n selector.imatch.push([name, value.replace(/^\\/|\\/i$/g, '')]);\n }\n else {\n selector.match.push([name, value.replace(/^\\/|\\/$/g, '')]);\n }\n }\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.match.length) {\n delete selector.match;\n }\n if (!selector['!match'].length) {\n delete selector['!match'];\n }\n if (!selector.imatch.length) {\n delete selector.imatch;\n }\n if (!selector['!imatch'].length) {\n delete selector['!imatch'];\n }\n }\n curQuery = curQuery.replace(posixRegex, '');\n const likeRegex = /(?: |^)(\\w+)!?~(\"\"i?|\".*?[^\\\\]\"i?|[^ ]+)(?= |$)/g;\n const likeMatch = curQuery.match(likeRegex);\n if (likeMatch) {\n selector.like = [];\n selector['!like'] = [];\n selector.ilike = [];\n selector['!ilike'] = [];\n for (let match of likeMatch) {\n try {\n let [name, value] = match.trim().split('~', 2);\n if (name.endsWith('!')) {\n if (value.endsWith('\"i')) {\n selector['!ilike'].push([\n name.slice(0, -1),\n unQuoteString(value.slice(0, -1)),\n ]);\n }\n else {\n selector['!like'].push([name.slice(0, -1), unQuoteString(value)]);\n }\n }\n else {\n if (value.endsWith('\"i')) {\n selector.ilike.push([name, unQuoteString(value.slice(0, -1))]);\n }\n else {\n selector.like.push([name, unQuoteString(value)]);\n }\n }\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.like.length) {\n delete selector.like;\n }\n if (!selector['!like'].length) {\n delete selector['!like'];\n }\n if (!selector.ilike.length) {\n delete selector.ilike;\n }\n if (!selector['!ilike'].length) {\n delete selector['!ilike'];\n }\n }\n curQuery = curQuery.replace(likeRegex, '');\n const guidRegex = /(?: |^)\\{!?([0-9a-f]{24})\\}(?= |$)/g;\n const guidMatch = curQuery.match(guidRegex);\n if (guidMatch) {\n selector.guid = [];\n selector['!guid'] = [];\n for (let match of guidMatch) {\n try {\n let guid = match.trim().replace(/^\\{|\\}$/g, '');\n if (guid.startsWith('!')) {\n selector['!guid'].push(guid.slice(1));\n }\n else {\n selector.guid.push(guid);\n }\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.guid.length) {\n delete selector.guid;\n }\n if (!selector['!guid'].length) {\n delete selector['!guid'];\n }\n }\n curQuery = curQuery.replace(guidRegex, '');\n const truthyRegex = /(?: |^)\\[(!?\\w+)\\](?= |$)/g;\n const truthyMatch = curQuery.match(truthyRegex);\n if (truthyMatch) {\n selector.truthy = [];\n selector['!truthy'] = [];\n for (let match of truthyMatch) {\n try {\n let name = match.trim().replace(/^\\[|\\]$/g, '');\n if (name.startsWith('!')) {\n selector['!truthy'].push(name.slice(1));\n }\n else {\n selector.truthy.push(name);\n }\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.truthy.length) {\n delete selector.truthy;\n }\n if (!selector['!truthy'].length) {\n delete selector['!truthy'];\n }\n }\n curQuery = curQuery.replace(truthyRegex, '');\n const gtRegex = /(?: |^)(\\w+)>(-?\\d+(?:\\.\\d+)?)(?= |$)/g;\n const gtMatch = curQuery.match(gtRegex);\n if (gtMatch) {\n selector.gt = [];\n for (let match of gtMatch) {\n try {\n let [name, value] = match.trim().split('>', 2);\n selector.gt.push([name, Number(value)]);\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.gt.length) {\n delete selector.gt;\n }\n }\n curQuery = curQuery.replace(gtRegex, '');\n const gtRelativeRegex = /(?: |^)(\\w+)>(\\w+|\"[^\"]+\")(?= |$)/g;\n const gtRelativeMatch = curQuery.match(gtRelativeRegex);\n if (gtRelativeMatch) {\n if (selector.gt == null) {\n selector.gt = [];\n }\n for (let match of gtRelativeMatch) {\n try {\n let [name, value] = match.trim().split('>', 2);\n selector.gt.push([\n name,\n null,\n value.replace(/\"/g, ''),\n ]);\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.gt.length) {\n delete selector.gt;\n }\n }\n curQuery = curQuery.replace(gtRelativeRegex, '');\n const gteRegex = /(?: |^)(\\w+)>=(-?\\d+(?:\\.\\d+)?)(?= |$)/g;\n const gteMatch = curQuery.match(gteRegex);\n if (gteMatch) {\n selector.gte = [];\n for (let match of gteMatch) {\n try {\n let [name, value] = match.trim().split('>=', 2);\n selector.gte.push([name, Number(value)]);\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.gte.length) {\n delete selector.gte;\n }\n }\n curQuery = curQuery.replace(gteRegex, '');\n const gteRelativeRegex = /(?: |^)(\\w+)>=(\\w+|\"[^\"]+\")(?= |$)/g;\n const gteRelativeMatch = curQuery.match(gteRelativeRegex);\n if (gteRelativeMatch) {\n if (selector.gte == null) {\n selector.gte = [];\n }\n for (let match of gteRelativeMatch) {\n try {\n let [name, value] = match.trim().split('>=', 2);\n selector.gte.push([\n name,\n null,\n value.replace(/\"/g, ''),\n ]);\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.gte.length) {\n delete selector.gte;\n }\n }\n curQuery = curQuery.replace(gteRelativeRegex, '');\n const ltRegex = /(?: |^)(\\w+)<(-?\\d+(?:\\.\\d+)?)(?= |$)/g;\n const ltMatch = curQuery.match(ltRegex);\n if (ltMatch) {\n selector.lt = [];\n for (let match of ltMatch) {\n try {\n let [name, value] = match.trim().split('<', 2);\n selector.lt.push([name, Number(value)]);\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.lt.length) {\n delete selector.lt;\n }\n }\n curQuery = curQuery.replace(ltRegex, '');\n const ltRelativeRegex = /(?: |^)(\\w+)<(\\w+|\"[^\"]+\")(?= |$)/g;\n const ltRelativeMatch = curQuery.match(ltRelativeRegex);\n if (ltRelativeMatch) {\n if (selector.lt == null) {\n selector.lt = [];\n }\n for (let match of ltRelativeMatch) {\n try {\n let [name, value] = match.trim().split('<', 2);\n selector.lt.push([\n name,\n null,\n value.replace(/\"/g, ''),\n ]);\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.lt.length) {\n delete selector.lt;\n }\n }\n curQuery = curQuery.replace(ltRelativeRegex, '');\n const lteRegex = /(?: |^)(\\w+)<=(-?\\d+(?:\\.\\d+)?)(?= |$)/g;\n const lteMatch = curQuery.match(lteRegex);\n if (lteMatch) {\n selector.lte = [];\n for (let match of lteMatch) {\n try {\n let [name, value] = match.trim().split('<=', 2);\n selector.lte.push([name, Number(value)]);\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.lte.length) {\n delete selector.lte;\n }\n }\n curQuery = curQuery.replace(lteRegex, '');\n const lteRelativeRegex = /(?: |^)(\\w+)<=(\\w+|\"[^\"]+\")(?= |$)/g;\n const lteRelativeMatch = curQuery.match(lteRelativeRegex);\n if (lteRelativeMatch) {\n if (selector.lte == null) {\n selector.lte = [];\n }\n for (let match of lteRelativeMatch) {\n try {\n let [name, value] = match.trim().split('<=', 2);\n selector.lte.push([\n name,\n null,\n value.replace(/\"/g, ''),\n ]);\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.lte.length) {\n delete selector.lte;\n }\n }\n curQuery = curQuery.replace(lteRelativeRegex, '');\n return curQuery.trim();\n}\nfunction unQuoteString(input) {\n if (input.match(/^\".*?[^\\\\]\"$/)) {\n return input.slice(1, -1).replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, '\\\\');\n }\n return input;\n}\nfunction unQuoteAngles(input) {\n return input.replace(/\\\\</g, '<').replace(/\\\\>/g, '>').replace(/\\\\\\\\/g, '\\\\');\n}\nfunction unQuoteCurlies(input) {\n return input\n .replace(/\\\\\\{/g, '{')\n .replace(/\\\\\\}/g, '}')\n .replace(/\\\\\\\\/g, '\\\\');\n}\n//# sourceMappingURL=queryParser.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(568);\n"],"names":["root","factory","exports","module","define","amd","this","__createBinding","Object","create","o","m","k","k2","undefined","defineProperty","enumerable","get","__exportStar","p","prototype","hasOwnProperty","call","__importDefault","mod","__esModule","value","queryParser","queryParser_1","default","query","entityClass","defaultFields","qrefMap","options","class","selectorsParser","type","selector","curQuery","subSelectorPairs","inQuote","nesting","currentStart","i","length","push","reverse","pair","selectorQuery","slice","startsWith","qrefRegex","qrefMatch","match","qref","name","trim","split","input","replace","className","qrefQuery","EntityClass","endsWith","e","equalRegex","equalMatch","equal","JSON","parse","unQuoteString","refRegex","refMatch","ref","containRegex","containMatch","contain","unQuoteAngles","posixRegex","posixMatch","imatch","likeRegex","likeMatch","like","ilike","guidRegex","guidMatch","guid","truthyRegex","truthyMatch","truthy","gtRegex","gtMatch","gt","Number","gtRelativeRegex","gtRelativeMatch","gteRegex","gteMatch","gte","gteRelativeRegex","gteRelativeMatch","ltRegex","ltMatch","lt","ltRelativeRegex","ltRelativeMatch","lteRegex","lteMatch","lte","lteRelativeRegex","lteRelativeMatch","selectorParser","limitRegex","limitMatch","limit","offsetRegex","offsetMatch","offset","reverseRegex","reverseMatch","keys","map","field","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"sourceRoot":""}
|
package/lib/queryParser.d.ts
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
1
|
import type { EntityConstructor, Options, Selector } from '@nymphjs/client';
|
|
2
|
-
export default function queryParser<T extends EntityConstructor = EntityConstructor>(query: string, entityClass: T, defaultFields?: string[]
|
|
2
|
+
export default function queryParser<T extends EntityConstructor = EntityConstructor>(query: string, entityClass: T, defaultFields?: string[], qrefMap?: {
|
|
3
|
+
[k: string]: {
|
|
4
|
+
class: EntityConstructor;
|
|
5
|
+
defaultFields?: string[];
|
|
6
|
+
};
|
|
7
|
+
}): [Options<T>, ...Selector[]];
|