@nymphjs/query-parser 1.0.0-beta.13 → 1.0.0-beta.130

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/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Nymph Query Parser
2
2
 
3
- Powerful object data storage and querying.
3
+ Application Data and Access Framework for Node.js and the browser.
4
+
5
+ https://nymph.io/
4
6
 
5
7
  The Query Parser is a utility for creating complex Nymph entity queries from a simple text input. Essentially, it turns a string into a Nymph query.
6
8
 
@@ -23,11 +25,11 @@ import Category from './Category';
23
25
  async function doQuery() {
24
26
  const [options, ...selectors] = queryParser({
25
27
  query:
26
- 'limit:4 foobar (| [archived] mdate<"2 weeks ago") category<{cat Tech}>',
28
+ 'limit:4 sort:mdate foobar (| [archived] mdate<"2 weeks ago") category<{Cat Tech}>',
27
29
  entityClass: BlogPost,
28
30
  defaultFields: ['title', 'body'],
29
31
  qrefMap: {
30
- cat: {
32
+ Cat: {
31
33
  class: Category,
32
34
  defaultFields: ['name'],
33
35
  },
@@ -37,7 +39,8 @@ async function doQuery() {
37
39
  Options will be
38
40
  {
39
41
  class: BlogPost,
40
- limit: 4
42
+ limit: 4,
43
+ sort: 'mdate'
41
44
  }
42
45
 
43
46
  And selectors will be (equivalent to)
@@ -81,133 +84,144 @@ async function doQuery() {
81
84
 
82
85
  ## Options
83
86
 
84
- You can set limit, offset, and reverse like this.
87
+ You can set limit, offset, sort, and reverse like this.
85
88
 
86
89
  - `limit:number`
87
90
  - `offset:number`
91
+ - `sort:string`, `sort:-`
88
92
  - `reverse:true`, `reverse:false`, `reverse:1`, or `reverse:0`
89
93
 
90
94
  These must appear in the top level of the query (outside of any parentheses).
91
95
 
96
+ Using a dash for sort means the results will not be sorted in any particular order. You can also use "cdate" for created date and "mdate" for modified date.
97
+
92
98
  ## Clauses
93
99
 
94
100
  These are the available clauses, and their syntax.
95
101
 
96
- ### equal and !equal
102
+ ### equal and not equal
97
103
 
98
104
  Check for string or JSON representation equality.
99
105
 
100
- - `name=string` or `name!=string`
101
- - `name="string value"` or `name!="string value"`
106
+ - `name=string` or `-name=string`
107
+ - `name="string value"` or `-name="string value"`
102
108
  - (Use this if you have a space in your string, or if your string could be interpreted as valid JSON. Escape double quotes with a leading backslash.)
103
- - `name=JSON` or `name!=JSON`
109
+ - `name=JSON` or `-name=JSON`
104
110
  - (Match a JSON encoded value (like `true`, `1`, `[1,2,3]`, or `{"prop":"val"}`).)
105
111
 
106
- ### guid and !guid
112
+ ### guid and not guid
107
113
 
108
114
  Check for entity GUID.
109
115
 
110
- - `{guid}` or `{!guid}`
116
+ - `{guid}` or `-{guid}`
111
117
 
112
- ### tag and !tag
118
+ ### tag and not tag
113
119
 
114
120
  Check for a tag.
115
121
 
116
- - `<name>` or `<!name>`
122
+ - `<name>` or `-<name>`
117
123
 
118
- ### truthy and !truthy
124
+ ### truthy and not truthy
119
125
 
120
126
  Check for truthiness.
121
127
 
122
- - `[name]` or `[!name]`
128
+ - `[name]` or `-[name]`
123
129
 
124
- ### ref and !ref
130
+ ### ref and not ref
125
131
 
126
132
  Check for a reference to another entity.
127
133
 
128
- - `name<{guid}>` or `name!<{guid}>`
134
+ - `name<{guid}>` or `-name<{guid}>`
129
135
 
130
- ### qref and !qref
136
+ ### qref and not qref
131
137
 
132
138
  Check for a reference to another entity using a query.
133
139
 
134
- - `name<{refclassname inner query}>` or `name!<{refclassname inner query}>`
135
- - (Esacpe curly brackets with a leading backslash.)
140
+ - `name<{refclassname inner query}>` or `-name<{refclassname inner query}>`
141
+ - (Escape curly brackets with a leading backslash.)
136
142
  - (Requires a map of refclassname to their actual class and default fields.)
137
143
 
138
- ### contain and !contain
144
+ ### contain and not contain
139
145
 
140
- Check for a JSON representation appearing within the JSON representation of the named property.
146
+ Check if the array at the named property contains a value.
141
147
 
142
- - `name<value>` or `name!<value>`
148
+ - `name<value>` or `-name<value>`
143
149
  - (Escape angle brackets with a leading backslash. If your value could be interpreted as valid JSON, encode it as a JSON string and use the JSON syntax instead.)
144
- - `name<JSON>` or `name!<JSON>`
150
+ - `name<JSON>` or `-name<JSON>`
145
151
  - (Search for a JSON encoded value (like `true`, `1`, `[1,2,3]`, or `{"prop":"val"}`).)
146
152
 
147
- ### match and !match
153
+ ### search and not search
154
+
155
+ Check for full-text search query match. Use single quotes to find sequential terms and double quotes to find exact terms. Use "or" as the or operator. Use "-" before a term as the negation operator. Stop words and punctuation are stripped. Case insensitive.
156
+
157
+ - `name(query)` or `-name(query)`
158
+ - `name:query` or `name:'sequence query'` or `name:"exact query"` or `-name:query` or `-name:'sequence query'` or `-name:"exact query"`
159
+ - (The "limit", "offset", "sort", and "reverse" properties cannot be used with the colon syntax.)
160
+
161
+ ### match and not match
148
162
 
149
163
  Check for POSIX regex match.
150
164
 
151
- - `name~/pattern/` or `name!~/pattern/`
165
+ - `name~/pattern/` or `-name~/pattern/`
152
166
 
153
- ### imatch and !imatch
167
+ ### imatch and not imatch
154
168
 
155
169
  Check for case insensitive POSIX regex match.
156
170
 
157
- - `name~/pattern/i` or `name!~/pattern/i`
171
+ - `name~/pattern/i` or `-name~/pattern/i`
158
172
 
159
- ### like and !like
173
+ ### like and not like
160
174
 
161
175
  Check for pattern match where \_ is single char wildcard and % is any length wildcard.
162
176
 
163
- - `name~pattern` or `name!~pattern`
164
- - `name~"pattern"` or `name!~"pattern"`
177
+ - `name~pattern` or `-name~pattern`
178
+ - `name~"pattern"` or `-name~"pattern"`
165
179
  - (Use this if you have a space in your pattern.)
166
180
 
167
- ### ilike and !ilike
181
+ ### ilike and not ilike
168
182
 
169
183
  Check for case insensitive pattern match where \_ is single char wildcard and % is any length wildcard.
170
184
 
171
- - `name~"pattern"i` or `name!~"pattern"i`
185
+ - `name~"pattern"i` or `-name~"pattern"i`
172
186
 
173
- ### gt
187
+ ### gt and not gt
174
188
 
175
189
  Check a prop's value is greater than a given value.
176
190
 
177
- - `name>number`
178
- - `name>relative`
191
+ - `name>number` or `-name>number`
192
+ - `name>relative` or `-name>relative`
179
193
  - (A single relative time value like `now` or `yesterday`.)
180
- - `name>"relative time value"`
194
+ - `name>"relative time value"` or `-name>"relative time value"`
181
195
  - (Use this for a time value with a space like `"two days from now"`, `"last thursday"`, `"+4 weeks"`, or `"5 minutes ago"`.)
182
196
 
183
- ### gte
197
+ ### gte and not gte
184
198
 
185
199
  Check a prop's value is greater than or equal to a given value.
186
200
 
187
- - `name>=number`
188
- - `name>=relative`
201
+ - `name>=number` or `-name>=number`
202
+ - `name>=relative` or `-name>=relative`
189
203
  - (A single relative time value like `now` or `yesterday`.)
190
- - `name>="relative time value"`
204
+ - `name>="relative time value"` or `-name>="relative time value"`
191
205
  - (Use this for a time value with a space like `"two days from now"`, `"last thursday"`, `"+4 weeks"`, or `"5 minutes ago"`.)
192
206
 
193
- ### lt
207
+ ### lt and not lt
194
208
 
195
209
  Check a prop's value is less than a given value.
196
210
 
197
- - `name<number`
198
- - `name<relative`
211
+ - `name<number` or `-name<number`
212
+ - `name<relative` or `-name<relative`
199
213
  - (A single relative time value like `now` or `yesterday`.)
200
- - `name<"relative time value"`
214
+ - `name<"relative time value"` or `-name<"relative time value"`
201
215
  - (Use this for a time value with a space like `"two days from now"`, `"last thursday"`, `"+4 weeks"`, or `"5 minutes ago"`.)
202
216
 
203
- ### lte
217
+ ### lte and not lte
204
218
 
205
219
  Check a prop's value is less than or equal to a given value.
206
220
 
207
- - `name<=number`
208
- - `name<=relative`
221
+ - `name<=number` or `-name<=number`
222
+ - `name<=relative` or `-name<=relative`
209
223
  - (A single relative time value like `now` or `yesterday`.)
210
- - `name<="relative time value"`
224
+ - `name<="relative time value"` or `-name<="relative time value"`
211
225
  - (Use this for a time value with a space like `"two days from now"`, `"last thursday"`, `"+4 weeks"`, or `"5 minutes ago"`.)
212
226
 
213
227
  ## Selectors
@@ -237,7 +251,7 @@ You can also supply a function in the option `bareHandler` that will handle bare
237
251
 
238
252
  # License
239
253
 
240
- Copyright 2021 SciActive Inc
254
+ Copyright 2021-2026 SciActive Inc
241
255
 
242
256
  Licensed under the Apache License, Version 2.0 (the "License");
243
257
  you may not use this file except in compliance with the License.
@@ -0,0 +1,4 @@
1
+ export * from './queryParser.js';
2
+ import queryParser from './queryParser.js';
3
+ export { queryParser };
4
+ export default queryParser;
package/dist/index.js CHANGED
@@ -1,2 +1,5 @@
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,(()=>(()=>{"use strict";var e={568:function(e,t,l){var r=this&&this.__createBinding||(Object.create?function(e,t,l,r){void 0===r&&(r=l);var i=Object.getOwnPropertyDescriptor(t,l);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[l]}}),Object.defineProperty(e,r,i)}:function(e,t,l,r){void 0===r&&(r=l),e[r]=t[l]}),i=this&&this.__exportStar||function(e,t){for(var l in e)"default"===l||Object.prototype.hasOwnProperty.call(t,l)||r(t,e,l)},c=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=c(l(138));t.queryParser=n.default,t.default=n.default},138:function(e,t,l){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(l(87));function c({query:e,entityClass:t,defaultFields:l=["name"],qrefMap:r={},bareHandler:i=((e,t,l=["name"])=>(e.match(/[_%]/)||(e=`%${e}%`),l.length?{type:"|",ilike:l.map((t=>[t,e]))}:{}))}){const c={class:t};return[c,...n({query:e,entityClass:t,type:"&",defaultFields:l,qrefMap:r,options:c,bareHandler:i})]}function n({query:e,entityClass:t,type:l,defaultFields:r,qrefMap:o,options:h,bareHandler:u}){const p={type:l};let f=e;const g=[];let d=!1,m=0,y=null;for(let e=0;e<f.length;e++)if('"'===f[e])d?"\\"!==f[e-1]&&(d=!1):d=!0;else{if(d)continue;"("===f[e]?null==y?y=e:m++:")"===f[e]&&(0===m?null==y||(g.push([y,e+1]),y=null):m--)}if(g.length){p.selector=[],g.reverse();for(let e of g){let l=f.slice(e[0]+1,e[1]-1);f=f.slice(0,e[0])+f.slice(e[1]);let i="&";l.startsWith("&")?l=l.slice(1):l.startsWith("!&")?(i="!&",l=l.slice(2)):l.startsWith("|")?(i="|",l=l.slice(1)):l.startsWith("!|")?(i="!|",l=l.slice(2)):l.startsWith("!")&&(i="!&",l=l.slice(1)),p.selector.push(...n({query:l,entityClass:t,type:i,defaultFields:r,qrefMap:o,bareHandler:u}))}}if(f=function({query:e,selector:t,qrefMap:l,bareHandler:r}){let n=e;const o=/(?: |^)(\w+)!?<\{(\w+) (.*?[^\\])\}>(?= |$)/g,h=n.match(o);if(h){t.qref=[],t["!qref"]=[];for(let e of h)try{let[n,a]=(0,i.default)(e.trim().slice(0,-1),"<",2);u=a.slice(1,-1),a=u.replace(/\\\{/g,"{").replace(/\\\}/g,"}").replace(/\\\\/g,"\\");let[s,o]=a.split(" ",2);const h=l[s].class;if(null==h)continue;const p=c({query:o,entityClass:h,defaultFields:l[s].defaultFields,qrefMap:l,bareHandler:r});n.endsWith("!")?t["!qref"].push([n.slice(0,-1),p]):t.qref.push([n,p])}catch(e){continue}t.qref.length||delete t.qref,t["!qref"].length||delete t["!qref"]}var u;n=n.replace(o,"");const p=/(?: |^)(\w+)!?=(""|".*?[^\\]"|[^ ]+)(?= |$)/g,f=n.match(p);if(f){t.equal=[],t["!equal"]=[];for(let e of f)try{let[l,r]=e.trim().split("=",2);try{l.endsWith("!")?t["!equal"].push([l.slice(0,-1),JSON.parse(r)]):t.equal.push([l,JSON.parse(r)])}catch(e){l.endsWith("!")?t["!equal"].push([l.slice(0,-1),a(r)]):t.equal.push([l,a(r)])}}catch(e){continue}t.equal.length||delete t.equal,t["!equal"].length||delete t["!equal"]}n=n.replace(p,"");const g=/(?: |^)(\w+)!?<\{([0-9a-f]{24})\}>(?= |$)/g,d=n.match(g);if(d){t.ref=[],t["!ref"]=[];for(let e of d)try{let[l,r]=e.trim().slice(0,-1).split("<",2);l.endsWith("!")?t["!ref"].push([l.slice(0,-1),r.slice(1,-1)]):t.ref.push([l,r.slice(1,-1)])}catch(e){continue}t.ref.length||delete t.ref,t["!ref"].length||delete t["!ref"]}n=n.replace(g,"");const m=/(?: |^)(\w+)!?(<.*?[^\\]>)(?= |$)/g,y=n.match(m);if(y){t.contain=[],t["!contain"]=[];for(let e of y)try{let[l,r]=e.trim().slice(0,-1).split("<",2);try{l.endsWith("!")?t["!contain"].push([l.slice(0,-1),JSON.parse(s(r))]):t.contain.push([l,JSON.parse(s(r))])}catch(e){l.endsWith("!")?t["!contain"].push([l.slice(0,-1),s(r)]):t.contain.push([l,s(r)])}}catch(e){continue}t.contain.length||delete t.contain,t["!contain"].length||delete t["!contain"]}n=n.replace(m,"");const b=/(?: |^)(\w+)!?~(\/\/|\/.*?[^\\]\/)i?(?= |$)/g,q=n.match(b);if(q){t.match=[],t["!match"]=[],t.imatch=[],t["!imatch"]=[];for(let e of q)try{let[l,r]=e.trim().split("~",2);l.endsWith("!")?r.endsWith("i")?t["!imatch"].push([l.slice(0,-1),r.replace(/^\/|\/i$/g,"")]):t["!match"].push([l.slice(0,-1),r.replace(/^\/|\/$/g,"")]):r.endsWith("i")?t.imatch.push([l,r.replace(/^\/|\/i$/g,"")]):t.match.push([l,r.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(b,"");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,r]=e.trim().split("~",2);l.endsWith("!")?r.endsWith('"i')?t["!ilike"].push([l.slice(0,-1),a(r.slice(0,-1))]):t["!like"].push([l.slice(0,-1),a(r)]):r.endsWith('"i')?t.ilike.push([l,a(r.slice(0,-1))]):t.like.push([l,a(r)])}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 _=/(?: |^)\{!?([0-9a-f]{24})\}(?= |$)/g,k=n.match(_);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(_,"");const v=/(?: |^)\[(!?\w+)\](?= |$)/g,O=n.match(v);if(O){t.truthy=[],t["!truthy"]=[];for(let e of O)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(v,"");const W=/(?: |^)<(!?\w+)>(?= |$)/g,j=n.match(W);if(j){t.tag=[],t["!tag"]=[];for(let e of j)try{let l=e.trim().replace(/^<|>$/g,"");l.startsWith("!")?t["!tag"].push(l.slice(1)):t.tag.push(l)}catch(e){continue}t.tag.length||delete t.tag,t["!tag"].length||delete t["!tag"]}n=n.replace(W,"");const M=/(?: |^)(\w+)>(-?\d+(?:\.\d+)?)(?= |$)/g,P=n.match(M);if(P){t.gt=[];for(let e of P)try{let[l,r]=e.trim().split(">",2);t.gt.push([l,Number(r)])}catch(e){continue}t.gt.length||delete t.gt}n=n.replace(M,"");const x=/(?: |^)(\w+)>(\w+|"[^"]+")(?= |$)/g,N=n.match(x);if(N){null==t.gt&&(t.gt=[]);for(let e of N)try{let[l,r]=e.trim().split(">",2);t.gt.push([l,null,r.replace(/"/g,"")])}catch(e){continue}t.gt.length||delete t.gt}n=n.replace(x,"");const S=/(?: |^)(\w+)>=(-?\d+(?:\.\d+)?)(?= |$)/g,H=n.match(S);if(H){t.gte=[];for(let e of H)try{let[l,r]=e.trim().split(">=",2);t.gte.push([l,Number(r)])}catch(e){continue}t.gte.length||delete t.gte}n=n.replace(S,"");const F=/(?: |^)(\w+)>=(\w+|"[^"]+")(?= |$)/g,C=n.match(F);if(C){null==t.gte&&(t.gte=[]);for(let e of C)try{let[l,r]=e.trim().split(">=",2);t.gte.push([l,null,r.replace(/"/g,"")])}catch(e){continue}t.gte.length||delete t.gte}n=n.replace(F,"");const J=/(?: |^)(\w+)<(-?\d+(?:\.\d+)?)(?= |$)/g,D=n.match(J);if(D){t.lt=[];for(let e of D)try{let[l,r]=e.trim().split("<",2);t.lt.push([l,Number(r)])}catch(e){continue}t.lt.length||delete t.lt}n=n.replace(J,"");const T=/(?: |^)(\w+)<(\w+|"[^"]+")(?= |$)/g,B=n.match(T);if(B){null==t.lt&&(t.lt=[]);for(let e of B)try{let[l,r]=e.trim().split("<",2);t.lt.push([l,null,r.replace(/"/g,"")])}catch(e){continue}t.lt.length||delete t.lt}n=n.replace(T,"");const z=/(?: |^)(\w+)<=(-?\d+(?:\.\d+)?)(?= |$)/g,A=n.match(z);if(A){t.lte=[];for(let e of A)try{let[l,r]=e.trim().split("<=",2);t.lte.push([l,Number(r)])}catch(e){continue}t.lte.length||delete t.lte}n=n.replace(z,"");const E=/(?: |^)(\w+)<=(\w+|"[^"]+")(?= |$)/g,G=n.match(E);if(G){null==t.lte&&(t.lte=[]);for(let e of G)try{let[l,r]=e.trim().split("<=",2);t.lte.push([l,null,r.replace(/"/g,"")])}catch(e){continue}t.lte.length||delete t.lte}return n=n.replace(E,""),n.trim()}({query:f,selector:p,qrefMap:o,bareHandler:u}),h){const e=/(?: |^)limit:(\d+)(?= |$)/,t=f.match(e);t&&(h.limit=Number(t[1])),f=f.replace(e,"");const l=/(?: |^)offset:(\d+)(?= |$)/,r=f.match(l);r&&(h.offset=Number(r[1])),f=f.replace(l,"");const i=/(?: |^)reverse:(true|false|1|0)(?= |$)/,c=f.match(i);c&&(h.reverse="true"===c[1]||"1"===c[1]),f=f.replace(i,"")}if(f=f.trim(),f.length){const e=u(f,t,r);if(Object.keys(e).length)return[...Object.keys(p).length>1?[p]:[],{type:"|",...e}]}return!("selector"in p)||1!==p.selector.length||2!==Object.keys(p).length||"&"!==p.type&&"|"!==p.type?[p]:p.selector}function a(e){return e.match(/^".*?[^\\]"$/)?e.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"):e}function s(e){return e.replace(/\\</g,"<").replace(/\\>/g,">").replace(/\\\\/g,"\\")}t.default=c},87:(e,t,l)=>{function r(e,t,l=1/0){let r=e;const i=[];for(;i.length<l&&r.length;){const e=r.split(t,1);i.push(e[0]),r=r.slice(e[0].length),i.length<l&&r&&(r=r.replace(t,""),r||i.push(r))}return r&&l>0&&(i[i.length-1]+=r),i}l.r(t),l.d(t,{default:()=>r})}},t={};function l(r){var i=t[r];if(void 0!==i)return i.exports;var c=t[r]={exports:{}};return e[r].call(c.exports,c,c.exports,l),c.exports}return l.d=(e,t)=>{for(var r in t)l.o(t,r)&&!l.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),l.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l(568)})()));
1
+ export * from './queryParser.js';
2
+ import queryParser from './queryParser.js';
3
+ export { queryParser };
4
+ export default queryParser;
2
5
  //# 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/./node_modules/@sciactive/splitn/dist/es/index.js","webpack://@nymphjs/client/webpack/bootstrap","webpack://@nymphjs/client/webpack/runtime/define property getters","webpack://@nymphjs/client/webpack/runtime/hasOwnProperty shorthand","webpack://@nymphjs/client/webpack/runtime/make namespace object","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, () => {\nreturn ","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst splitn_1 = __importDefault(require(\"@sciactive/splitn\"));\nfunction queryParser({ query, entityClass, defaultFields = ['name'], qrefMap = {}, bareHandler = (input, _class, defaultFields = ['name']) => {\n if (!input.match(/[_%]/)) {\n input = `%${input}%`;\n }\n if (defaultFields.length) {\n return {\n type: '|',\n ilike: defaultFields.map((field) => [field, input]),\n };\n }\n return {};\n}, }) {\n const options = { class: entityClass };\n return [\n options,\n ...selectorsParser({\n query,\n entityClass,\n type: '&',\n defaultFields,\n qrefMap,\n options,\n bareHandler,\n }),\n ];\n}\nexports.default = queryParser;\nfunction selectorsParser({ query, entityClass, type, defaultFields, qrefMap, options, bareHandler, }) {\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({\n query: selectorQuery,\n entityClass,\n type,\n defaultFields,\n qrefMap,\n bareHandler,\n }));\n }\n }\n curQuery = selectorParser({\n query: curQuery,\n selector,\n qrefMap,\n bareHandler,\n });\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 const bareSelector = bareHandler(curQuery, entityClass, defaultFields);\n if (Object.keys(bareSelector).length) {\n return [\n ...(Object.keys(selector).length > 1 ? [selector] : []),\n {\n type: '|',\n ...bareSelector,\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, bareHandler, }) {\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] = (0, splitn_1.default)(match.trim().slice(0, -1), '<', 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({\n query: qrefQuery,\n entityClass: EntityClass,\n defaultFields: qrefMap[className].defaultFields,\n qrefMap,\n bareHandler,\n });\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 tagRegex = /(?: |^)<(!?\\w+)>(?= |$)/g;\n const tagMatch = curQuery.match(tagRegex);\n if (tagMatch) {\n selector.tag = [];\n selector['!tag'] = [];\n for (let match of tagMatch) {\n try {\n let name = match.trim().replace(/^<|>$/g, '');\n if (name.startsWith('!')) {\n selector['!tag'].push(name.slice(1));\n }\n else {\n selector.tag.push(name);\n }\n }\n catch (e) {\n continue;\n }\n }\n if (!selector.tag.length) {\n delete selector.tag;\n }\n if (!selector['!tag'].length) {\n delete selector['!tag'];\n }\n }\n curQuery = curQuery.replace(tagRegex, '');\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","export default function splitn(str, delimiter, limit = Infinity) {\n let curStr = str;\n const a = [];\n while (a.length < limit && curStr.length) {\n const next = curStr.split(delimiter, 1);\n a.push(next[0]);\n curStr = curStr.slice(next[0].length);\n if (a.length < limit && curStr) {\n curStr = curStr.replace(delimiter, '');\n if (!curStr) {\n a.push(curStr);\n }\n }\n }\n if (curStr && limit > 0) {\n a[a.length - 1] += curStr;\n }\n return a;\n}\n//# sourceMappingURL=index.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","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\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","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","defineProperty","__exportStar","p","prototype","hasOwnProperty","call","__importDefault","mod","value","queryParser","queryParser_1","default","splitn_1","query","entityClass","defaultFields","qrefMap","bareHandler","input","_class","match","length","type","ilike","map","field","options","class","selectorsParser","selector","curQuery","subSelectorPairs","inQuote","nesting","currentStart","i","push","reverse","pair","selectorQuery","slice","startsWith","qrefRegex","qrefMatch","qref","name","trim","replace","className","qrefQuery","split","EntityClass","endsWith","e","equalRegex","equalMatch","equal","JSON","parse","unQuoteString","refRegex","refMatch","ref","containRegex","containMatch","contain","unQuoteAngles","posixRegex","posixMatch","imatch","likeRegex","likeMatch","like","guidRegex","guidMatch","guid","truthyRegex","truthyMatch","truthy","tagRegex","tagMatch","tag","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","bareSelector","keys","splitn","str","delimiter","Infinity","curStr","a","next","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","key","obj","prop","r","Symbol","toStringTag"],"sourceRoot":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,eAAe,WAAW,CAAC"}