@react-querybuilder/core 8.9.1 → 8.10.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/arrayUtils-C9sO4qLO.mjs +50 -0
- package/dist/arrayUtils-C9sO4qLO.mjs.map +1 -0
- package/dist/arrayUtils-QxZOZTf6.js +73 -0
- package/dist/arrayUtils-QxZOZTf6.js.map +1 -0
- package/dist/basic-BmpEwexQ.d.mts +363 -0
- package/dist/basic-CDDA-KZa.d.ts +363 -0
- package/dist/cjs/react-querybuilder_core.cjs.development.d.ts +569 -1252
- package/dist/cjs/react-querybuilder_core.cjs.development.js +430 -140
- package/dist/cjs/react-querybuilder_core.cjs.development.js.map +1 -1
- package/dist/cjs/react-querybuilder_core.cjs.production.d.ts +569 -1252
- package/dist/cjs/react-querybuilder_core.cjs.production.js +1 -1
- package/dist/cjs/react-querybuilder_core.cjs.production.js.map +1 -1
- package/dist/convertQuery-BUgyz1GA.mjs +75 -0
- package/dist/convertQuery-BUgyz1GA.mjs.map +1 -0
- package/dist/export-Ccjfea21.d.mts +453 -0
- package/dist/{export-DyrnTh6K.d.ts → export-GUuxJ7zR.d.ts} +3 -2
- package/dist/formatQuery.d.mts +668 -0
- package/dist/formatQuery.d.ts +3 -2
- package/dist/formatQuery.js +217 -87
- package/dist/formatQuery.js.map +1 -1
- package/dist/formatQuery.mjs +2496 -0
- package/dist/formatQuery.mjs.map +1 -0
- package/dist/{import-Cksobmln.d.ts → import-D-hm1phN.d.ts} +2 -2
- package/dist/import-Dxevzw_-.d.mts +28 -0
- package/dist/isRuleGroup-CGe_rb2w.mjs +40 -0
- package/dist/isRuleGroup-CGe_rb2w.mjs.map +1 -0
- package/dist/isRuleGroup-DqAs2x4E.js.map +1 -1
- package/dist/{optGroupUtils-CXLgyg2i.js → optGroupUtils-B0hTpodo.js} +114 -1
- package/dist/optGroupUtils-B0hTpodo.js.map +1 -0
- package/dist/optGroupUtils-DrubUpx0.mjs +185 -0
- package/dist/optGroupUtils-DrubUpx0.mjs.map +1 -0
- package/dist/parseCEL.d.mts +315 -0
- package/dist/parseCEL.d.ts +292 -11
- package/dist/parseCEL.js +114 -30
- package/dist/parseCEL.js.map +1 -1
- package/dist/parseCEL.mjs +2631 -0
- package/dist/parseCEL.mjs.map +1 -0
- package/dist/parseJSONata.d.mts +37 -0
- package/dist/parseJSONata.d.ts +3 -2
- package/dist/parseJSONata.js +49 -77
- package/dist/parseJSONata.js.map +1 -1
- package/dist/parseJSONata.mjs +267 -0
- package/dist/parseJSONata.mjs.map +1 -0
- package/dist/parseJsonLogic.d.mts +37 -0
- package/dist/parseJsonLogic.d.ts +4 -3
- package/dist/parseJsonLogic.js +5 -6
- package/dist/parseJsonLogic.js.map +1 -1
- package/dist/parseJsonLogic.mjs +190 -0
- package/dist/parseJsonLogic.mjs.map +1 -0
- package/dist/parseMongoDB.d.mts +80 -0
- package/dist/parseMongoDB.d.ts +3 -2
- package/dist/parseMongoDB.js +15 -16
- package/dist/parseMongoDB.js.map +1 -1
- package/dist/parseMongoDB.mjs +266 -0
- package/dist/parseMongoDB.mjs.map +1 -0
- package/dist/parseNumber-B_-sR6d5.mjs +24 -0
- package/dist/parseNumber-B_-sR6d5.mjs.map +1 -0
- package/dist/{parseNumber-Bcys1kOH.js → parseNumber-D4iQDxK-.js} +1 -1
- package/dist/{parseNumber-Bcys1kOH.js.map → parseNumber-D4iQDxK-.js.map} +1 -1
- package/dist/parseSQL.d.mts +38 -0
- package/dist/parseSQL.d.ts +3 -2
- package/dist/parseSQL.js +11 -15
- package/dist/parseSQL.js.map +1 -1
- package/dist/parseSQL.mjs +6622 -0
- package/dist/parseSQL.mjs.map +1 -0
- package/dist/parseSpEL.d.mts +35 -0
- package/dist/parseSpEL.d.ts +3 -2
- package/dist/parseSpEL.js +7 -9
- package/dist/parseSpEL.js.map +1 -1
- package/dist/parseSpEL.mjs +272 -0
- package/dist/parseSpEL.mjs.map +1 -0
- package/dist/{prepareQueryObjects-BqFEs4eV.js → prepareQueryObjects-BOUWfel5.js} +4 -5
- package/dist/prepareQueryObjects-BOUWfel5.js.map +1 -0
- package/dist/prepareQueryObjects-CJNpnGcJ.mjs +153 -0
- package/dist/prepareQueryObjects-CJNpnGcJ.mjs.map +1 -0
- package/dist/query-builder-layout.css +1 -1
- package/dist/query-builder-layout.css.map +1 -1
- package/dist/query-builder.css +1 -1
- package/dist/query-builder.css.map +1 -1
- package/dist/react-querybuilder_core.d.mts +569 -1252
- package/dist/react-querybuilder_core.legacy-esm.d.ts +569 -1252
- package/dist/react-querybuilder_core.legacy-esm.js +430 -136
- package/dist/react-querybuilder_core.legacy-esm.js.map +1 -1
- package/dist/react-querybuilder_core.mjs +426 -141
- package/dist/react-querybuilder_core.mjs.map +1 -1
- package/dist/react-querybuilder_core.production.d.mts +569 -1252
- package/dist/react-querybuilder_core.production.mjs +1 -1
- package/dist/react-querybuilder_core.production.mjs.map +1 -1
- package/dist/styles/_layout.scss +61 -17
- package/dist/styles/_main.scss +17 -4
- package/dist/{transformQuery-FL_nlpp5.js → transformQuery-CWDPogO5.js} +1 -1
- package/dist/{transformQuery-FL_nlpp5.js.map → transformQuery-CWDPogO5.js.map} +1 -1
- package/dist/transformQuery-DHvtgDgZ.mjs +41 -0
- package/dist/transformQuery-DHvtgDgZ.mjs.map +1 -0
- package/dist/transformQuery.d.mts +118 -0
- package/dist/transformQuery.d.ts +1 -1
- package/dist/transformQuery.js +1 -1
- package/dist/transformQuery.mjs +4 -0
- package/package.json +78 -28
- package/dist/arrayUtils-D5EoIsKP.js +0 -164
- package/dist/arrayUtils-D5EoIsKP.js.map +0 -1
- package/dist/basic-C8xXKHIA.d.ts +0 -1235
- package/dist/objectUtils-BBZSfZJz.js +0 -17
- package/dist/objectUtils-BBZSfZJz.js.map +0 -1
- package/dist/optGroupUtils-CXLgyg2i.js.map +0 -1
- package/dist/prepareQueryObjects-BqFEs4eV.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseCEL.mjs","names":["o","state","returnArray: (DefaultCombinatorName | CELExpression | ('and' | CELExpression)[])[]","emptyQuery: DefaultRuleGroupTypeAny","rules","operatorPre: DefaultOperatorName","valueSource: ValueSource | undefined","field: string | null","value: any","processedCEL: CELExpression"],"sources":["../src/utils/parseCEL/celParser.js","../src/utils/parseCEL/utils.ts","../src/utils/parseCEL/parseCEL.ts"],"sourcesContent":["/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar celParser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,27],$V1=[1,31],$V2=[1,32],$V3=[1,28],$V4=[1,29],$V5=[1,30],$V6=[1,33],$V7=[1,34],$V8=[1,18],$V9=[1,26],$Va=[1,12],$Vb=[1,13],$Vc=[1,19],$Vd=[1,20],$Ve=[1,40],$Vf=[1,39],$Vg=[1,41],$Vh=[1,42],$Vi=[1,43],$Vj=[1,36],$Vk=[1,37],$Vl=[1,38],$Vm=[5,37,43,45,49,50,53,54,55,56,60,61,62,63],$Vn=[1,44],$Vo=[1,45],$Vp=[1,46],$Vq=[5,23,24,25,26,27,28,31,37,40,43,44,45,46,49,50,53,54,55,56,60,61,62,63],$Vr=[7,9,10,12,13,14,16,18,21,35,40,41,44,46],$Vs=[2,36],$Vt=[1,85],$Vu=[43,45,50],$Vv=[5,37,43,45,49,50,53,61,62,63],$Vw=[5,37,43,45,49,50,53,54,55,56,61,62,63],$Vx=[2,37],$Vy=[49,50];\nvar parser = {trace: function trace() {},\nyy: {},\nsymbols_: {\"error\":2,\"main\":3,\"expr\":4,\"EOF\":5,\"string_literal\":6,\"STRING_LIT\":7,\"bytes_literal\":8,\"b\":9,\"B\":10,\"number_literal\":11,\"INT_LIT\":12,\"UINT_LIT\":13,\"FLOAT_LIT\":14,\"boolean_literal\":15,\"BOOL_LIT\":16,\"null_literal\":17,\"NULL_LIT\":18,\"literal\":19,\"ident\":20,\"IDENT\":21,\"relop\":22,\"==\":23,\">=\":24,\">\":25,\"<=\":26,\"<\":27,\"!=\":28,\"relation\":29,\"member\":30,\"in\":31,\"list\":32,\"map\":33,\"negation\":34,\"!\":35,\"negative\":36,\"-\":37,\"unary\":38,\"primary\":39,\"DOT\":40,\"(\":41,\"expr_list\":42,\")\":43,\"[\":44,\"]\":45,\"{\":46,\"field_inits\":47,\"trailing_comma\":48,\"}\":49,\",\":50,\"map_inits\":51,\"math_operation\":52,\"+\":53,\"*\":54,\"/\":55,\"%\":56,\"conditional_expr\":57,\"conditional_and\":58,\"conditional_or\":59,\"?\":60,\":\":61,\"&&\":62,\"||\":63,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"EOF\",7:\"STRING_LIT\",9:\"b\",10:\"B\",12:\"INT_LIT\",13:\"UINT_LIT\",14:\"FLOAT_LIT\",16:\"BOOL_LIT\",18:\"NULL_LIT\",21:\"IDENT\",23:\"==\",24:\">=\",25:\">\",26:\"<=\",27:\"<\",28:\"!=\",31:\"in\",35:\"!\",37:\"-\",40:\"DOT\",41:\"(\",43:\")\",44:\"[\",45:\"]\",46:\"{\",49:\"}\",50:\",\",53:\"+\",54:\"*\",55:\"/\",56:\"%\",60:\"?\",61:\":\",62:\"&&\",63:\"||\"},\nproductions_: [0,[3,2],[6,1],[8,2],[8,2],[11,1],[11,1],[11,1],[15,1],[17,1],[19,1],[19,1],[19,1],[19,1],[19,1],[20,1],[22,1],[22,1],[22,1],[22,1],[22,1],[22,1],[29,3],[29,3],[29,3],[34,1],[34,2],[36,1],[36,2],[38,2],[30,1],[30,1],[30,3],[30,6],[30,4],[30,5],[48,0],[48,1],[39,1],[39,2],[39,5],[39,6],[39,3],[39,1],[39,1],[39,1],[32,4],[33,4],[52,3],[52,3],[52,3],[52,3],[52,3],[4,1],[4,1],[4,1],[4,1],[4,1],[4,1],[57,5],[58,3],[59,3],[42,1],[42,3],[47,3],[47,5],[51,3],[51,5]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\n return { nodeType: 'Main', value: $$[$0-1] }; \nbreak;\ncase 2:\nthis.$ = { type: 'StringLiteral', value: $$[$0] };\nbreak;\ncase 3: case 4:\nthis.$ = { type: 'BytesLiteral', value: $$[$0] };\nbreak;\ncase 5:\nthis.$ = { type: 'IntegerLiteral', value: parseInt($$[$0], /x/.test($$[$0]) ? 16 : 10) };\nbreak;\ncase 6:\nthis.$ = { type: 'UnsignedIntegerLiteral', value: parseInt($$[$0].replace(/u$/i, ''), /^0x/.test($$[$0]) ? 16 : 10) };\nbreak;\ncase 7:\nthis.$ = { type: 'FloatLiteral', value: parseFloat($$[$0]) };\nbreak;\ncase 8:\nthis.$ = { type: 'BooleanLiteral', value: $$[$0] === 'true' };\nbreak;\ncase 9:\nthis.$ = { type: 'NullLiteral', value: null };\nbreak;\ncase 10: case 11: case 12: case 13: case 14: case 16: case 17: case 18: case 19: case 20: case 21: case 38: case 43: case 44: case 45: case 53: case 54: case 55: case 56: case 57: case 58:\nthis.$ = $$[$0];\nbreak;\ncase 15:\nthis.$ = { type: 'Identifier', value: $$[$0] };\nbreak;\ncase 22: case 23: case 24:\nthis.$ = { type: 'Relation', left: $$[$0-2], operator: $$[$0-1], right: $$[$0] };\nbreak;\ncase 25: case 27:\nthis.$ = 1;\nbreak;\ncase 26: case 28:\nthis.$ = this.$ += 1;;\nbreak;\ncase 29:\nthis.$ = { type: 'Negation', negations: $$[$0-1], value: $$[$0] };\nbreak;\ncase 30: case 31:\nthis.$ = $$[$0];\nbreak;\ncase 32:\nthis.$ = { type: 'Member', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 33:\nthis.$ = { type: 'Member', left: $$[$0-5], right: $$[$0-3], list: $$[$0-1] };\nbreak;\ncase 34:\nthis.$ = { type: 'DynamicPropertyAccessor', left: $$[$0-3], right: $$[$0-1] };\nbreak;\ncase 35:\nthis.$ = { type: 'FieldsObject', left: $$[$0-4], list: $$[$0-2], trailingComma: $$[$0-1] };\nbreak;\ncase 36:\nthis.$ = false;\nbreak;\ncase 37:\nthis.$ = true;\nbreak;\ncase 39:\nthis.$ = { type: 'Property', value: $$[$0] };\nbreak;\ncase 40:\nthis.$ = { type: 'FunctionCall', name: $$[$0-4], args: $$[$0-2], trailingComma: $$[$0-1] };\nbreak;\ncase 41:\nthis.$ = { type: 'Property', value: $$[$0-4], args: $$[$0-2], trailingComma: $$[$0-1] };\nbreak;\ncase 42:\nthis.$ = { type: 'ExpressionGroup', value: $$[$0-1] };\nbreak;\ncase 46:\nthis.$ = { type: 'List', value: $$[$0-2], trailingComma: $$[$0-1] };\nbreak;\ncase 47:\nthis.$ = { type: 'Map', value: $$[$0-2], trailingComma: $$[$0-1] };\nbreak;\ncase 48:\nthis.$ = { type: 'Addition', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 49:\nthis.$ = { type: 'Subtraction', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 50:\nthis.$ = { type: 'Multiplication', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 51:\nthis.$ = { type: 'Division', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 52:\nthis.$ = { type: 'Modulo', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 59:\nthis.$ = { type: 'ConditionalExpr', condition: $$[$0-4], valueIfTrue: $$[$0-2], valueIfFalse: $$[$0] };\nbreak;\ncase 60:\nthis.$ = { type: 'ConditionalAnd', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 61:\nthis.$ = { type: 'ConditionalOr', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 62:\nthis.$ = { type: 'ExpressionList', value: [ $$[$0] ] };\nbreak;\ncase 63:\nthis.$ = $$[$0-2]; this.$.value.push($$[$0]);;\nbreak;\ncase 64:\nthis.$ = { type: 'FieldInits', value: [ { type: 'FieldInit', left: $$[$0-2], right: $$[$0] } ] };\nbreak;\ncase 65:\nthis.$ = $$[$0-4]; this.$.value.push({ type: 'FieldInit', left: $$[$0-2], right: $$[$0] });;\nbreak;\ncase 66:\nthis.$ = { type: 'MapInits', value: [ { type: 'MapInit', left: $$[$0-2], right: $$[$0] } ] };\nbreak;\ncase 67:\nthis.$ = $$[$0-4]; this.$.value.push({ type: 'MapInit', left: $$[$0-2], right: $$[$0] });;\nbreak;\n}\n},\ntable: [{3:1,4:2,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},{1:[3]},{5:[1,35],37:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,60:$Vj,62:$Vk,63:$Vl},o($Vm,[2,53],{22:47,23:[1,49],24:[1,50],25:[1,51],26:[1,52],27:[1,53],28:[1,54],31:[1,48],40:$Vn,44:$Vo,46:$Vp}),o($Vm,[2,54]),o($Vm,[2,55]),o($Vm,[2,56]),o($Vm,[2,57]),o($Vm,[2,58]),o($Vq,[2,30]),o($Vq,[2,31]),o($Vq,[2,38],{41:[1,55]}),{20:56,21:$V8},{4:57,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},o($Vq,[2,43]),o($Vq,[2,44]),o($Vq,[2,45]),{6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,32:14,33:15,35:[1,59],39:58,40:$Va,41:$Vb,44:$Vc,46:$Vd},o([5,23,24,25,26,27,28,31,37,40,41,43,44,45,46,49,50,53,54,55,56,60,61,62,63],[2,15]),{4:61,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,42:60,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},{4:63,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,51:62,52:8,57:4,58:5,59:6},o($Vq,[2,10]),o($Vq,[2,11]),o($Vq,[2,12]),o($Vq,[2,13]),o($Vq,[2,14]),o($Vr,[2,25]),o($Vq,[2,2]),o($Vq,[2,5]),o($Vq,[2,6]),o($Vq,[2,7]),{6:64,7:$V0},{6:65,7:$V0},o($Vq,[2,8]),o($Vq,[2,9]),{1:[2,1]},{4:66,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},{4:67,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},{4:68,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},{4:69,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},{4:70,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},{4:71,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},{4:72,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},{4:73,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},{20:74,21:$V8},{4:75,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},{20:77,21:$V8,47:76},{6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,30:78,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd},{32:79,33:80,44:$Vc,46:$Vd},o($Vr,[2,16]),o($Vr,[2,17]),o($Vr,[2,18]),o($Vr,[2,19]),o($Vr,[2,20]),o($Vr,[2,21]),{4:61,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,42:81,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},o($Vq,[2,39],{41:[1,82]}),{37:$Ve,43:[1,83],53:$Vf,54:$Vg,55:$Vh,56:$Vi,60:$Vj,62:$Vk,63:$Vl},o($Vq,[2,29]),o($Vr,[2,26]),{45:$Vs,48:84,50:$Vt},o($Vu,[2,62],{37:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,60:$Vj,62:$Vk,63:$Vl}),{48:86,49:$Vs,50:[1,87]},{37:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,60:$Vj,61:[1,88],62:$Vk,63:$Vl},o($Vq,[2,3]),o($Vq,[2,4]),{37:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,60:$Vj,61:[1,89],62:$Vk,63:$Vl},o([5,43,45,49,50,61,62,63],[2,60],{37:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,60:$Vj}),o([5,43,45,49,50,61,63],[2,61],{37:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,60:$Vj,62:$Vk}),o($Vv,[2,48],{54:$Vg,55:$Vh,56:$Vi,60:$Vj}),o($Vv,[2,49],{54:$Vg,55:$Vh,56:$Vi,60:$Vj}),o($Vw,[2,50],{60:$Vj}),o($Vw,[2,51],{60:$Vj}),o($Vw,[2,52],{60:$Vj}),o($Vq,[2,32],{41:[1,90]}),{37:$Ve,45:[1,91],53:$Vf,54:$Vg,55:$Vh,56:$Vi,60:$Vj,62:$Vk,63:$Vl},{48:92,49:$Vs,50:[1,93]},{61:[1,94]},o($Vm,[2,22],{40:$Vn,44:$Vo,46:$Vp}),o($Vm,[2,23]),o($Vm,[2,24]),{43:$Vs,48:95,50:$Vt},{4:61,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,42:96,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},o($Vq,[2,42]),{45:[1,97]},o([43,45],$Vx,{30:3,57:4,58:5,59:6,29:7,52:8,39:9,38:10,20:11,32:14,33:15,19:16,34:17,6:21,11:22,8:23,15:24,17:25,4:98,7:$V0,9:$V1,10:$V2,12:$V3,13:$V4,14:$V5,16:$V6,18:$V7,21:$V8,35:$V9,40:$Va,41:$Vb,44:$Vc,46:$Vd}),{49:[1,99]},{4:100,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,49:$Vx,52:8,57:4,58:5,59:6},{4:101,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},{4:102,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},{4:61,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,42:103,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},o($Vq,[2,34]),{49:[1,104]},{20:105,21:$V8,49:$Vx},{4:106,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},{43:[1,107]},{43:$Vs,48:108,50:$Vt},o($Vq,[2,46]),o($Vu,[2,63],{37:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,60:$Vj,62:$Vk,63:$Vl}),o($Vq,[2,47]),{37:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,60:$Vj,61:[1,109],62:$Vk,63:$Vl},o($Vy,[2,66],{37:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,60:$Vj,62:$Vk,63:$Vl}),o($Vm,[2,59]),{43:[1,110],50:[1,111]},o($Vq,[2,35]),{61:[1,112]},o($Vy,[2,64],{37:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,60:$Vj,62:$Vk,63:$Vl}),o($Vq,[2,40]),{43:[1,113]},{4:114,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},o($Vq,[2,33]),{4:98,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},{4:115,6:21,7:$V0,8:23,9:$V1,10:$V2,11:22,12:$V3,13:$V4,14:$V5,15:24,16:$V6,17:25,18:$V7,19:16,20:11,21:$V8,29:7,30:3,32:14,33:15,34:17,35:$V9,38:10,39:9,40:$Va,41:$Vb,44:$Vc,46:$Vd,52:8,57:4,58:5,59:6},o($Vq,[2,41]),o($Vy,[2,67],{37:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,60:$Vj,62:$Vk,63:$Vl}),o($Vy,[2,65],{37:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,60:$Vj,62:$Vk,63:$Vl})],\ndefaultActions: {35:[2,1]},\nparseError: function parseError(str, hash) {\n if (hash.recoverable)\n this.trace(str);\n else {\n var error = Error(str);\n error.hash = hash;\n throw error;\n }\n },\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1, args = lstack.slice.call(arguments, 1), lexer = Object.create(this.lexer), sharedState = { yy: {} };\n for (var k in this.yy)\n if (Object.prototype.hasOwnProperty.call(this.yy, k))\n sharedState.yy[k] = this.yy[k];\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc > \"u\")\n lexer.yylloc = {};\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\")\n this.parseError = sharedState.yy.parseError;\n else\n this.parseError = Object.getPrototypeOf(this).parseError;\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n var lex = function() {\n var token = lexer.lex() || EOF;\n if (typeof token !== \"number\")\n token = self.symbols_[token] || token;\n return token;\n };\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (!0) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state])\n action = this.defaultActions[state];\n else {\n if (symbol === null || typeof symbol > \"u\")\n symbol = lex();\n action = table[state] && table[state][symbol];\n }\n if (typeof action > \"u\" || !action.length || !action[0]) {\n let locateNearestErrorRecoveryRule = function(state) {\n var stack_probe = stack.length - 1, depth = 0;\n for (;; ) {\n if (TERROR.toString() in table[state])\n return depth;\n if (state === 0 || stack_probe < 2)\n return !1;\n stack_probe -= 2;\n state = stack[stack_probe];\n ++depth;\n }\n };\n var error_rule_depth, errStr = \"\";\n if (!recovering) {\n error_rule_depth = locateNearestErrorRecoveryRule(state);\n expected = [];\n for (p in table[state])\n if (this.terminals_[p] && p > TERROR)\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n if (lexer.showPosition)\n errStr = \"Parse error on line \" + (yylineno + 1) + `:\n` + lexer.showPosition() + `\nExpecting ` + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n else\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected,\n recoverable: error_rule_depth !== !1\n });\n } else if (preErrorSymbol !== EOF)\n error_rule_depth = locateNearestErrorRecoveryRule(state);\n if (recovering == 3) {\n if (symbol === EOF || preErrorSymbol === EOF)\n throw Error(errStr || \"Parsing halted while starting to recover from another error.\");\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n symbol = lex();\n }\n if (error_rule_depth === !1)\n throw Error(errStr || \"Parsing halted. No suitable error recovery rule available.\");\n popStack(error_rule_depth);\n preErrorSymbol = symbol == TERROR ? null : symbol;\n symbol = TERROR;\n state = stack[stack.length - 1];\n action = table[state] && table[state][TERROR];\n recovering = 3;\n }\n if (action[0] instanceof Array && action.length > 1)\n throw Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0)\n recovering--;\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges)\n yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];\n r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));\n if (typeof r < \"u\")\n return r;\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return !0;\n }\n }\n return !0;\n}};\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser)\n this.yy.parser.parseError(str, hash);\n else\n throw Error(str);\n },\n\n// resets the lexer, sets new input\nsetInput:function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = !1;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges)\n this.yylloc.range = [0, 0];\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else\n this.yylloc.last_column++;\n if (this.options.ranges)\n this.yylloc.range[1]++;\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function(ch) {\n var len = ch.length, lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1)\n this.yylineno -= lines.length - 1;\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges)\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function() {\n this._more = !0;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function() {\n if (this.options.backtrack_lexer)\n this._backtrack = !0;\n else\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n` + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n return this;\n },\n\n// retain first n characters of the match\nless:function(n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function() {\n var next = this.match;\n if (next.length < 20)\n next += this._input.substr(0, 20 - next.length);\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function() {\n var pre = this.pastInput(), c = Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + `\n` + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges)\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines)\n this.yylineno += lines.length;\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges)\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n this._more = !1;\n this._backtrack = !1;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input)\n this.done = !1;\n if (token)\n return token;\n else if (this._backtrack) {\n for (var k in backup)\n this[k] = backup[k];\n return !1;\n }\n return !1;\n },\n\n// return next match in input\nnext:function() {\n if (this.done)\n return this.EOF;\n if (!this._input)\n this.done = !0;\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0;i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== !1)\n return token;\n else if (this._backtrack) {\n match = !1;\n continue;\n } else\n return !1;\n } else if (!this.options.flex)\n break;\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== !1)\n return token;\n return !1;\n }\n if (this._input === \"\")\n return this.EOF;\n else\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + `. Unrecognized text.\n` + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n },\n\n// return next match that has a token\nlex:function lex() {\n var r = this.next();\n if (r)\n return r;\n else\n return this.lex();\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin(condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0)\n return this.conditionStack.pop();\n else\n return this.conditionStack[0];\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1])\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n else\n return this.conditions.INITIAL.rules;\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0)\n return this.conditionStack[n];\n else\n return \"INITIAL\";\n },\n\n// alias for begin(condition)\npushState:function pushState(condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"flex\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:/* skip end-of-line comments */\nbreak;\ncase 1:/* skip whitespace */\nbreak;\ncase 2:return 31\nbreak;\ncase 3:return 'as'\nbreak;\ncase 4:return 'break'\nbreak;\ncase 5:return 'const'\nbreak;\ncase 6:return 'continue'\nbreak;\ncase 7:return 'else'\nbreak;\ncase 8:return 'for'\nbreak;\ncase 9:return 'function'\nbreak;\ncase 10:return 'if'\nbreak;\ncase 11:return 'import'\nbreak;\ncase 12:return 'let'\nbreak;\ncase 13:return 'loop'\nbreak;\ncase 14:return 'package'\nbreak;\ncase 15:return 'namespace'\nbreak;\ncase 16:return 'return'\nbreak;\ncase 17:return 'var'\nbreak;\ncase 18:return 'void'\nbreak;\ncase 19:return 'while'\nbreak;\ncase 20:return 18\nbreak;\ncase 21:return 16\nbreak;\ncase 22:return 16\nbreak;\ncase 23:return 40\nbreak;\ncase 24:return 60\nbreak;\ncase 25:return 61\nbreak;\ncase 26:return 50\nbreak;\ncase 27:return 44\nbreak;\ncase 28:return 45\nbreak;\ncase 29:return 41\nbreak;\ncase 30:return 43\nbreak;\ncase 31:return 28\nbreak;\ncase 32:return 35\nbreak;\ncase 33:return 53\nbreak;\ncase 34:return 37\nbreak;\ncase 35:return 54\nbreak;\ncase 36:return 55\nbreak;\ncase 37:return 56\nbreak;\ncase 38:return 23\nbreak;\ncase 39:return 24\nbreak;\ncase 40:return 25\nbreak;\ncase 41:return 26\nbreak;\ncase 42:return 27\nbreak;\ncase 43:return 46\nbreak;\ncase 44:return 49\nbreak;\ncase 45:return 62\nbreak;\ncase 46:return 63\nbreak;\ncase 47:return 21\nbreak;\ncase 48:return 7\nbreak;\ncase 49:return 7\nbreak;\ncase 50:return 7\nbreak;\ncase 51:return 7\nbreak;\ncase 52:return 12\nbreak;\ncase 53:return 13\nbreak;\ncase 54:return 14\nbreak;\ncase 55:return 5\nbreak;\ncase 56:return 'INVALID'\nbreak;\ncase 57:console.log(yy_.yytext);\nbreak;\n}\n},\nrules: [/^(?:[/][/]\\s.*\\n)/,/^(?:\\s+)/,/^(?:in)/,/^(?:as)/,/^(?:break)/,/^(?:const)/,/^(?:continue)/,/^(?:else)/,/^(?:for)/,/^(?:function)/,/^(?:if)/,/^(?:import)/,/^(?:let)/,/^(?:loop)/,/^(?:package)/,/^(?:namespace)/,/^(?:return)/,/^(?:var)/,/^(?:void)/,/^(?:while)/,/^(?:null)/,/^(?:true)/,/^(?:false)/,/^(?:\\.)/,/^(?:\\?)/,/^(?::)/,/^(?:,)/,/^(?:\\[)/,/^(?:\\])/,/^(?:\\()/,/^(?:\\))/,/^(?:!=)/,/^(?:!)/,/^(?:\\+)/,/^(?:-)/,/^(?:\\*)/,/^(?:\\/)/,/^(?:%)/,/^(?:==)/,/^(?:>=)/,/^(?:>)/,/^(?:<=)/,/^(?:<)/,/^(?:\\{)/,/^(?:\\})/,/^(?:&&)/,/^(?:\\|\\|)/,/^(?:[_a-zA-Z][_a-zA-Z0-9]*)/,/^(?:[rR]?['][']['](\\.|[^'])*['][']['])/,/^(?:[rR]?[\"][\"][\"](\\.|[^\"])*[\"][\"][\"])/,/^(?:[rR]?['](\\.|[^'\\n\\r])*['])/,/^(?:[rR]?[\"](\\.|[^\"\\n\\r])*[\"])/,/^(?:[-]?([0-9]+|0x[0-9a-fA-F]+))/,/^(?:([0-9]+|0x[0-9a-fA-F]+)[uU])/,/^(?:[-]?[0-9]+(\\.[0-9]+)?([eE][+-]?[0-9]+(\\.[0-9]+)?)?)/,/^(?:$)/,/^(?:.)/,/^(?:.)/],\nconditions: {\"INITIAL\":{\"rules\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nexport { celParser };","import type { DefaultCombinatorName, DefaultOperatorName } from '../../types';\nimport type {\n CELAddition,\n CELBooleanLiteral,\n CELBytesLiteral,\n CELConditionalAnd,\n CELConditionalExpr,\n CELConditionalOr,\n CELDivision,\n CELDynamicPropertyAccessor,\n CELExpression,\n CELExpressionGroup,\n CELExpressionList,\n CELFieldInit,\n CELFieldInits,\n CELFieldsObject,\n CELFloatLiteral,\n CELFunctionCall,\n CELIdentifier,\n CELIntegerLiteral,\n CELLikeExpression,\n CELList,\n CELLiteral,\n CELMap,\n CELMapInit,\n CELMapInits,\n CELMember,\n CELMemberIdentifierChain,\n CELMemberNegatedIdentifier,\n CELMemberNegatedIdentifierChain,\n CELModulo,\n CELMultiplication,\n CELNegatedLikeExpression,\n CELNegation,\n CELNegative,\n CELNullLiteral,\n CELNumericLiteral,\n CELProperty,\n CELRelation,\n CELRelop,\n CELStringLiteral,\n CELSubtraction,\n CELUnsignedIntegerLiteral,\n} from './types';\n\nexport const isCELExpressionGroup = (expr: CELExpression): expr is CELExpressionGroup =>\n expr.type === 'ExpressionGroup';\nexport const isCELConditionalAnd = (expr: CELExpression): expr is CELConditionalAnd =>\n expr.type === 'ConditionalAnd';\nexport const isCELConditionalOr = (expr: CELExpression): expr is CELConditionalOr =>\n expr.type === 'ConditionalOr';\nexport const isCELStringLiteral = (expr: CELExpression): expr is CELStringLiteral =>\n expr.type === 'StringLiteral';\nexport const isCELLiteral = (expr: CELExpression): expr is CELLiteral =>\n isCELNumericLiteral(expr) ||\n isCELStringLiteral(expr) ||\n isCELBooleanLiteral(expr) ||\n isCELNullLiteral(expr) ||\n isCELBytesLiteral(expr);\nexport const isCELNumericLiteral = (expr: CELExpression): expr is CELNumericLiteral =>\n isCELFloatLiteral(expr) || isCELIntegerLiteral(expr) || isCELUnsignedIntegerLiteral(expr);\nexport const isCELRelation = (expr: CELExpression): expr is CELRelation => expr.type === 'Relation';\nexport const isCELList = (expr: CELExpression): expr is CELList => expr.type === 'List';\nexport const isCELMap = (expr: CELExpression): expr is CELMap => expr.type === 'Map';\nexport const isCELIdentifier = (expr: CELExpression): expr is CELIdentifier =>\n expr.type === 'Identifier';\nexport const isCELNegation = (expr: CELExpression): expr is CELNegation => expr.type === 'Negation';\nexport const isCELMember = (expr: CELExpression): expr is CELMember => expr.type === 'Member';\n\n// istanbul ignore next\nexport const isCELAddition = (expr: CELExpression): expr is CELAddition => expr.type === 'Addition';\nexport const isCELBooleanLiteral = (expr: CELExpression): expr is CELBooleanLiteral =>\n expr.type === 'BooleanLiteral';\nexport const isCELBytesLiteral = (expr: CELExpression): expr is CELBytesLiteral =>\n expr.type === 'BytesLiteral';\n// istanbul ignore next\nexport const isCELConditionalExpr = (expr: CELExpression): expr is CELConditionalExpr =>\n expr.type === 'ConditionalExpr';\n// istanbul ignore next\nexport const isCELDivision = (expr: CELExpression): expr is CELDivision => expr.type === 'Division';\n// istanbul ignore next\nexport const isCELDynamicPropertyAccessor = (\n expr: CELExpression\n): expr is CELDynamicPropertyAccessor => expr.type === 'DynamicPropertyAccessor';\n// istanbul ignore next\nexport const isCELExpressionList = (expr: CELExpression): expr is CELExpressionList =>\n expr.type === 'ExpressionList';\n// istanbul ignore next\nexport const isCELFieldInit = (expr: CELExpression): expr is CELFieldInit =>\n expr.type === 'FieldInit';\n// istanbul ignore next\nexport const isCELFieldInits = (expr: CELExpression): expr is CELFieldInits =>\n expr.type === 'FieldInits';\n// istanbul ignore next\nexport const isCELFieldsObject = (expr: CELExpression): expr is CELFieldsObject =>\n expr.type === 'FieldsObject';\nexport const isCELFloatLiteral = (expr: CELExpression): expr is CELFloatLiteral =>\n expr.type === 'FloatLiteral';\n// istanbul ignore next\nexport const isCELFunctionCall = (expr: CELExpression): expr is CELFunctionCall =>\n expr.type === 'FunctionCall';\nexport const isCELIntegerLiteral = (expr: CELExpression): expr is CELIntegerLiteral =>\n expr.type === 'IntegerLiteral';\n// istanbul ignore next\nexport const isCELMapInit = (expr: CELExpression): expr is CELMapInit => expr.type === 'MapInit';\n// istanbul ignore next\nexport const isCELMapInits = (expr: CELExpression): expr is CELMapInits => expr.type === 'MapInits';\n// istanbul ignore next\nexport const isCELModulo = (expr: CELExpression): expr is CELModulo => expr.type === 'Modulo';\n// istanbul ignore next\nexport const isCELMultiplication = (expr: CELExpression): expr is CELMultiplication =>\n expr.type === 'Multiplication';\n// istanbul ignore next\nexport const isCELNegative = (expr: CELExpression): expr is CELNegative => expr.type === 'Negative';\nexport const isCELNullLiteral = (expr: CELExpression): expr is CELNullLiteral =>\n expr.type === 'NullLiteral';\n// istanbul ignore next\nexport const isCELProperty = (expr: CELExpression): expr is CELProperty => expr.type === 'Property';\n// istanbul ignore next\nexport const isCELSubtraction = (expr: CELExpression): expr is CELSubtraction =>\n expr.type === 'Subtraction';\nexport const isCELUnsignedIntegerLiteral = (\n expr: CELExpression\n): expr is CELUnsignedIntegerLiteral => expr.type === 'UnsignedIntegerLiteral';\n\nexport const isCELIdentifierOrChain = (\n expr: CELExpression\n): expr is CELMemberIdentifierChain | CELIdentifier =>\n isCELIdentifier(expr) ||\n (isCELMember(expr) &&\n !!expr.left &&\n !!expr.right &&\n !expr.list &&\n !expr.value &&\n isCELIdentifierOrChain(expr.left) &&\n isCELIdentifier(expr.right));\n\nexport const isCELNegatedIdentifier = (expr: CELExpression): expr is CELMemberNegatedIdentifier =>\n isCELNegation(expr) && isCELIdentifier(expr.value);\n\nexport const isCELNegatedIdentifierOrChain = (\n expr: CELExpression\n): expr is CELMemberNegatedIdentifierChain | CELMemberNegatedIdentifier =>\n isCELNegatedIdentifier(expr) ||\n (isCELMember(expr) &&\n !!expr.left &&\n !!expr.right &&\n !expr.list &&\n !expr.value &&\n isCELIdentifierOrChain(expr.right) &&\n isCELNegatedIdentifier(expr.left));\n\nexport const isCELLikeExpression = (expr: CELExpression): expr is CELLikeExpression =>\n isCELMember(expr) &&\n !!expr.left &&\n !!expr.right &&\n !!expr.list &&\n isCELIdentifierOrChain(expr.left) &&\n isCELIdentifier(expr.right) &&\n (expr.right.value === 'contains' ||\n expr.right.value === 'startsWith' ||\n expr.right.value === 'endsWith') &&\n expr.list.value.length === 1 &&\n (isCELStringLiteral(expr.list.value[0]) || isCELIdentifier(expr.list.value[0]));\n\nexport const isCELNegatedLikeExpression = (expr: CELExpression): expr is CELNegatedLikeExpression =>\n isCELMember(expr) &&\n !!expr.left &&\n !!expr.right &&\n !!expr.list &&\n isCELNegatedIdentifierOrChain(expr.left) &&\n isCELIdentifier(expr.right) &&\n (expr.right.value === 'contains' ||\n expr.right.value === 'startsWith' ||\n expr.right.value === 'endsWith') &&\n expr.list.value.length === 1 &&\n (isCELStringLiteral(expr.list.value[0]) || isCELIdentifier(expr.list.value[0]));\n\nexport const getCELIdentifierFromChain = (\n expr: CELIdentifier | CELMemberIdentifierChain\n): string => {\n if (isCELIdentifier(expr)) {\n return expr.value;\n }\n\n return `${getCELIdentifierFromChain(expr.left)}.${expr.right.value}`;\n};\n\nexport const getCELIdentifierFromNegatedChain = (\n expr: CELMemberNegatedIdentifier | CELMemberNegatedIdentifierChain\n): string => {\n if (isCELNegatedIdentifier(expr)) {\n return `${``.padStart(expr.negations, `!`)}${expr.value.value}`;\n }\n\n return `${getCELIdentifierFromNegatedChain(expr.left)}.${expr.right.value}`;\n};\n\nexport function evalCELLiteralValue(literal: CELStringLiteral): string;\nexport function evalCELLiteralValue(literal: CELBooleanLiteral): boolean;\nexport function evalCELLiteralValue(literal: CELNumericLiteral): number | null;\nexport function evalCELLiteralValue(literal: CELBytesLiteral): null;\nexport function evalCELLiteralValue(literal: CELNullLiteral): null;\nexport function evalCELLiteralValue(literal: CELLiteral): string | boolean | number | null;\nexport function evalCELLiteralValue(literal: CELLiteral) {\n switch (literal.type) {\n case 'StringLiteral': {\n return literal.value.replaceAll(/^((?:'''|\"\"\"|'|\")?)([\\S\\s]*?)\\1$/gm, '$2');\n }\n case 'BooleanLiteral': {\n return literal.value;\n }\n case 'NullLiteral':\n case 'BytesLiteral': {\n return null;\n }\n default:\n return literal.value;\n }\n}\n\nexport const celNormalizeCombinator = (c: '&&' | '||'): DefaultCombinatorName =>\n c === '||' ? 'or' : 'and';\n\nexport const celNormalizeOperator = (op: CELRelop, flip?: boolean): DefaultOperatorName => {\n if (flip) {\n if (op === '<') return '>';\n if (op === '<=') return '>=';\n if (op === '>') return '<';\n if (op === '>=') return '<=';\n }\n if (op === '==') return '=';\n return op;\n};\n\nexport const celGenerateFlatAndOrList = (\n expr: CELConditionalAnd | CELConditionalOr\n): (DefaultCombinatorName | CELExpression)[] => {\n const combinator = celNormalizeCombinator(expr.type === 'ConditionalAnd' ? '&&' : '||');\n const { left, right } = expr;\n if (isCELConditionalAnd(left) || isCELConditionalOr(left)) {\n return [...celGenerateFlatAndOrList(left), combinator, right];\n }\n return [left, combinator, right];\n};\n\nexport const celGenerateMixedAndOrList = (\n expr: CELConditionalAnd | CELConditionalOr\n): (DefaultCombinatorName | CELExpression | ('and' | CELExpression)[])[] => {\n const arr = celGenerateFlatAndOrList(expr);\n const returnArray: (DefaultCombinatorName | CELExpression | ('and' | CELExpression)[])[] = [];\n let startIndex = 0;\n for (let i = 0; i < arr.length; i += 2) {\n if (arr[i + 1] === 'and') {\n startIndex = i;\n let j = 1;\n while (arr[startIndex + j] === 'and') {\n i += 2;\n j += 2;\n }\n const tempAndArray = arr.slice(startIndex, i + 1) as ('and' | CELExpression)[];\n returnArray.push(tempAndArray);\n i -= 2;\n } else if (arr[i + 1] === 'or') {\n if (i === 0 || i === arr.length - 3) {\n if (i === 0 || arr[i - 1] === 'or') {\n returnArray.push(arr[i]);\n }\n returnArray.push(arr[i + 1]);\n if (i === arr.length - 3) {\n returnArray.push(arr[i + 2]);\n }\n } else {\n if (arr[i - 1] === 'and') {\n returnArray.push(arr[i + 1]);\n } else {\n returnArray.push(arr[i], arr[i + 1]);\n }\n }\n }\n }\n if (returnArray.length === 1 && Array.isArray(returnArray[0])) {\n // If length is 1, then the only element is an AND array so just return that\n return returnArray[0];\n }\n return returnArray;\n};\n","import type { Except } from 'type-fest';\nimport { defaultOperatorNegationMap } from '../../defaults';\nimport type {\n DefaultCombinatorName,\n DefaultOperatorName,\n DefaultRuleGroupArray,\n DefaultRuleGroupICArray,\n DefaultRuleGroupType,\n DefaultRuleGroupTypeAny,\n DefaultRuleGroupTypeIC,\n DefaultRuleType,\n RuleGroupType,\n RuleGroupTypeAny,\n RuleGroupTypeIC,\n RuleType,\n ValueSource,\n} from '../../types';\nimport type { ParserCommonOptions } from '../../types/import';\nimport { joinWith } from '../arrayUtils';\nimport { isRuleGroup } from '../isRuleGroup';\nimport { fieldIsValidUtil, getFieldsArray } from '../parserUtils';\nimport { prepareRuleGroup } from '../prepareQueryObjects';\nimport { celParser } from './celParser';\nimport type { CELExpression, CELIdentifier, CELLikeExpression, CELLiteral } from './types';\nimport {\n celGenerateFlatAndOrList,\n celGenerateMixedAndOrList,\n celNormalizeOperator,\n evalCELLiteralValue,\n getCELIdentifierFromChain,\n getCELIdentifierFromNegatedChain,\n isCELConditionalAnd,\n isCELConditionalOr,\n isCELExpressionGroup,\n isCELIdentifierOrChain,\n isCELLikeExpression,\n isCELList,\n isCELLiteral,\n isCELMap,\n isCELNegatedLikeExpression,\n isCELNegation,\n isCELRelation,\n isCELStringLiteral,\n} from './utils';\n\nexport interface ParseCELOptionsStandard\n extends Except<ParserCommonOptions, 'independentCombinators'> {\n independentCombinators?: false;\n /**\n * Handler for custom CEL expressions.\n */\n customExpressionHandler?: (expr: CELExpression) => RuleType | RuleGroupType | null;\n}\nexport interface ParseCELOptionsIC extends Except<ParserCommonOptions, 'independentCombinators'> {\n independentCombinators: true;\n /**\n * Handler for custom CEL expressions.\n */\n customExpressionHandler?: (expr: CELExpression) => RuleType | RuleGroupTypeIC | null;\n}\n\n/**\n * Options object for {@link parseCEL}.\n */\nexport type ParseCELOptions = ParseCELOptionsStandard | ParseCELOptionsIC;\n\n/**\n * Converts a CEL string expression into a query suitable for the\n * {@link index!QueryBuilder QueryBuilder} component's `query` or `defaultQuery` props\n * ({@link index!DefaultRuleGroupType DefaultRuleGroupType}).\n */\nfunction parseCEL(cel: string): DefaultRuleGroupType;\n/**\n * Converts a CEL string expression into a query suitable for the\n * {@link index!QueryBuilder QueryBuilder} component's `query` or `defaultQuery` props\n * ({@link index!RuleGroupType RuleGroupType}).\n */\nfunction parseCEL(\n cel: string,\n options: ParseCELOptionsStandard & {\n customExpressionHandler: (expr: CELExpression) => RuleType | RuleGroupType | null;\n }\n): RuleGroupType;\n/**\n * Converts a CEL string expression into a query suitable for the\n * {@link index!QueryBuilder QueryBuilder} component's `query` or `defaultQuery` props\n * ({@link index!RuleGroupTypeIC RuleGroupTypeIC}).\n */\nfunction parseCEL(\n cel: string,\n options: ParseCELOptionsIC & {\n customExpressionHandler: (expr: CELExpression) => RuleType | RuleGroupTypeIC | null;\n }\n): RuleGroupTypeIC;\n/**\n * Converts a CEL string expression into a query suitable for the\n * {@link index!QueryBuilder QueryBuilder} component's `query` or `defaultQuery` props\n * ({@link index!DefaultRuleGroupType DefaultRuleGroupType}).\n */\nfunction parseCEL(cel: string, options?: ParseCELOptionsStandard): DefaultRuleGroupType;\n/**\n * Converts a CEL string expression into a query suitable for the\n * {@link index!QueryBuilder QueryBuilder} component's `query` or `defaultQuery` props\n * ({@link index!DefaultRuleGroupTypeIC DefaultRuleGroupTypeIC}).\n */\nfunction parseCEL(cel: string, options: ParseCELOptionsIC): DefaultRuleGroupTypeIC;\nfunction parseCEL(cel: string, options: ParseCELOptions = {}): RuleGroupTypeAny {\n const { fields, independentCombinators, listsAsArrays, customExpressionHandler } = options;\n const ic = !!independentCombinators;\n const fieldsFlat = getFieldsArray(fields);\n\n const fieldIsValid = (\n fieldName: string,\n operator: DefaultOperatorName,\n subordinateFieldName?: string\n ) =>\n fieldIsValidUtil({\n fieldName,\n fieldsFlat,\n operator,\n subordinateFieldName,\n getValueSources: options?.getValueSources,\n });\n\n const emptyQuery: DefaultRuleGroupTypeAny = {\n rules: [],\n ...(ic ? {} : { combinator: 'and' }),\n };\n\n const processCELExpression = (\n expr: CELExpression,\n processOpts: {\n groupOnlyIfNecessary?: boolean;\n forwardNegation?: boolean;\n } = {}\n ): DefaultRuleType | DefaultRuleGroupTypeAny | null => {\n const { forwardNegation: forwardedNegation, groupOnlyIfNecessary } = processOpts;\n /* istanbul ignore if */\n if (isCELNegation(expr) || isCELNegatedLikeExpression(expr)) {\n const negate = isCELNegation(expr)\n ? expr.negations % 2 === 1\n : (getCELIdentifierFromNegatedChain(expr.left).match(/^!+/)?.[0].length ?? 0) % 2 === 1;\n const negatedExpr =\n isCELNegation(expr) &&\n isCELExpressionGroup(expr.value) &&\n isCELLikeExpression(expr.value.value)\n ? processCELExpression(expr.value.value, { forwardNegation: negate })\n : isCELNegatedLikeExpression(expr)\n ? processCELExpression(\n {\n ...expr,\n left: {\n type: 'Identifier',\n value: getCELIdentifierFromNegatedChain(expr.left).replace(/^!+/, ''),\n },\n } as CELLikeExpression,\n { forwardNegation: negate }\n )\n : isCELNegation(expr) &&\n isCELExpressionGroup(expr.value) &&\n isCELRelation(expr.value.value)\n ? processCELExpression(expr.value.value, { forwardNegation: negate })\n : processCELExpression(expr.value, {\n groupOnlyIfNecessary: true,\n forwardNegation: negate,\n });\n if (negatedExpr) {\n if (\n isCELNegatedLikeExpression(expr) ||\n (isCELNegation(expr) &&\n isCELExpressionGroup(expr.value) &&\n isCELRelation(expr.value.value))\n ) {\n return negatedExpr;\n } else if (\n !negate ||\n (negate && !isRuleGroup(negatedExpr) && negatedExpr.operator.startsWith('doesNot'))\n ) {\n return ic\n ? ({ rules: [negatedExpr] } as DefaultRuleGroupTypeIC)\n : ({\n combinator: 'and',\n rules: [negatedExpr],\n } as DefaultRuleGroupType);\n }\n return ic\n ? ({ rules: [negatedExpr], not: true } as DefaultRuleGroupTypeIC)\n : ({\n combinator: 'and',\n rules: [negatedExpr],\n not: true,\n } as DefaultRuleGroupType);\n }\n } else if (isCELExpressionGroup(expr)) {\n const rule = processCELExpression(expr.value, {\n groupOnlyIfNecessary: true,\n });\n if (rule) {\n if (isRuleGroup(rule) || (groupOnlyIfNecessary && isCELExpressionGroup(expr.value))) {\n return rule;\n }\n return ic ? { rules: [rule] } : { combinator: 'and', rules: [rule] };\n }\n } else if (isCELConditionalAnd(expr) || isCELConditionalOr(expr)) {\n if (ic) {\n const andOrList = celGenerateFlatAndOrList(expr);\n const rules = andOrList.map(v => {\n if (typeof v === 'string') {\n return v;\n }\n return processCELExpression(v);\n });\n // Bail out completely if any rules in the list were invalid\n // so as not to return an incorrect and/or sequence\n if (!rules.every(Boolean)) {\n return null;\n }\n return {\n rules: rules as DefaultRuleGroupICArray,\n };\n }\n const andOrList = celGenerateMixedAndOrList(expr);\n const combinator = andOrList[1] as DefaultCombinatorName;\n const filteredList = andOrList\n .filter(v => Array.isArray(v) || (!!v && typeof v !== 'string' && 'type' in v))\n .map(v =>\n Array.isArray(v) ? v.filter(vf => !!v && typeof vf !== 'string' && 'type' in vf) : v\n ) as (CELExpression | CELExpression[])[];\n const rules = filteredList\n .map((exp): DefaultRuleGroupType | DefaultRuleType | null => {\n if (Array.isArray(exp)) {\n return {\n combinator: 'and',\n rules: exp.map(e => processCELExpression(e)).filter(Boolean) as DefaultRuleGroupArray,\n };\n }\n return processCELExpression(exp) as DefaultRuleType | DefaultRuleGroupType | null;\n })\n .filter(Boolean) as DefaultRuleGroupArray;\n /* istanbul ignore else */\n if (rules.length > 0) {\n return { combinator, rules };\n }\n } else if (isCELLikeExpression(expr)) {\n const field = getCELIdentifierFromChain(expr.left);\n const func = expr.right.value;\n const operatorPre: DefaultOperatorName = func === 'startsWith' ? 'beginsWith' : func;\n const operator = forwardedNegation\n ? (`doesNot${operatorPre[0].toUpperCase()}${operatorPre\n .slice(1)\n .replace('s', '')}` as DefaultOperatorName)\n : operatorPre;\n const valueObj = expr.list.value[0];\n const value = isCELStringLiteral(valueObj) ? evalCELLiteralValue(valueObj) : valueObj.value;\n const valueSource: ValueSource | undefined =\n expr.list.value[0].type === 'Identifier' ? 'field' : undefined;\n if (fieldIsValid(field, operator, valueSource === 'field' ? value : undefined)) {\n return valueSource ? { field, operator, value, valueSource } : { field, operator, value };\n }\n } else if (isCELRelation(expr)) {\n let field: string | null = null;\n // oxlint-disable-next-line typescript/no-explicit-any\n let value: any = undefined;\n let valueSource: ValueSource | undefined = undefined;\n let flip = false;\n const { left, right } = expr;\n if (isCELIdentifierOrChain(left)) {\n field = getCELIdentifierFromChain(left);\n if (isCELIdentifierOrChain(right)) {\n value = getCELIdentifierFromChain(right);\n valueSource = 'field';\n } else if (isCELLiteral(right)) {\n value = evalCELLiteralValue(right);\n }\n } else {\n /* istanbul ignore else */\n if (isCELIdentifierOrChain(right) && isCELLiteral(left) && expr.operator !== 'in') {\n flip = true;\n field = getCELIdentifierFromChain(right);\n value = evalCELLiteralValue(left);\n }\n }\n let operator = celNormalizeOperator(expr.operator, flip);\n if (forwardedNegation) {\n operator = defaultOperatorNegationMap[operator];\n }\n if (value === null && (operator === '=' || operator === '!=')) {\n operator = operator === '=' ? 'null' : 'notNull';\n } else if ((operator === 'in' || operator === 'notIn') && isCELList(right)) {\n if (right.value.value.every(v => isCELLiteral(v))) {\n value = right.value.value.map(v => evalCELLiteralValue(v));\n } else {\n if (right.value.value.every(v => isCELIdentifierOrChain(v))) {\n valueSource = 'field';\n value = right.value.value.map(id => getCELIdentifierFromChain(id));\n }\n }\n if (value && !listsAsArrays) {\n value = joinWith(\n value.map((v: string | boolean | number) => `${v}`),\n ','\n );\n }\n } else if ((operator === 'in' || operator === 'notIn') && isCELMap(right)) {\n const keys = right.value.value.map(v => v.left);\n if (keys.every(k => isCELLiteral(k) || isCELIdentifierOrChain(k))) {\n value = (keys as (CELLiteral | CELIdentifier)[]).map(k =>\n isCELLiteral(k) ? evalCELLiteralValue(k) : getCELIdentifierFromChain(k)\n );\n }\n if (value && !listsAsArrays) {\n value = joinWith(\n value.map((v: string | boolean | number) => `${v}`),\n ','\n );\n }\n }\n if (\n field &&\n fieldIsValid(field, operator, valueSource === 'field' ? value : undefined) &&\n value !== undefined\n ) {\n return valueSource ? { field, operator, value, valueSource } : { field, operator, value };\n }\n } else if (customExpressionHandler) {\n return customExpressionHandler(expr) as DefaultRuleType | DefaultRuleGroupTypeAny | null;\n }\n return null;\n };\n\n const prepare = options.generateIDs ? prepareRuleGroup : <T>(g: T) => g;\n\n let processedCEL: CELExpression;\n try {\n processedCEL = celParser.parse(cel).value;\n } catch {\n return prepare(emptyQuery);\n }\n const result = processCELExpression(processedCEL);\n if (result) {\n if (isRuleGroup(result)) {\n return prepare(result);\n }\n return prepare({ rules: [result], ...(ic ? {} : { combinator: 'and' }) });\n }\n\n return prepare(emptyQuery);\n}\n\nexport { parseCEL };\n"],"mappings":"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AAI,IAAG;GAAI,IAAG;GAAI,IAAG;GAAI,IAAG;GAAK,IAAG;GAAK;EACpU,cAAc;GAAC;GAAE,CAAC,GAAE,EAAE;GAAC,CAAC,GAAE,EAAE;GAAC,CAAC,GAAE,EAAE;GAAC,CAAC,GAAE,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,IAAG,EAAE;GAAC,CAAC,GAAE,EAAE;GAAC,CAAC,GAAE,EAAE;GAAC,CAAC,GAAE,EAAE;GAAC,CAAC,GAAE,EAAE;GAAC,CAAC,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,IAAG;IAAE,IAAG;IAAE,IAAG;IAAG,IAAG;IAAG,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAE,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAE,IAAG;IAAE,IAAG;IAAE,IAAG;IAAE;GAAC;IAAC,GAAE;IAAG,GAAE;IAAG,GAAE;IAAI,GAAE;IAAG,GAAE;IAAI,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAG,IAAG;IAAI,IAAG;IAAE,IAAG;IAAE,IAAG;IAAG,IAAG;IAAG,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAE,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAE,IAAG;IAAE,IAAG;IAAE,IAAG;IAAE;GAAC;IAAC,GAAE;IAAG,GAAE;IAAG,GAAE;IAAI,GAAE;IAAG,GAAE;IAAI,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAG,IAAG;IAAI,IAAG;IAAE,IAAG;IAAE,IAAG;IAAG,IAAG;IAAG,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAE,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAE,IAAG;IAAE,IAAG;IAAE,IAAG;IAAE;GAAC;IAAC,GAAE;IAAG,GAAE;IAAG,GAAE;IAAI,GAAE;IAAG,GAAE;IAAI,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAG,IAAG;IAAI,IAAG;IAAE,IAAG;IAAE,IAAG;IAAG,IAAG;IAAG,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAE,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAE,IAAG;IAAE,IAAG;IAAE,IAAG;IAAE;GAAC;IAAC,GAAE;IAAG,GAAE;IAAG,GAAE;IAAI,GAAE;IAAG,GAAE;IAAI,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAG,IAAG;IAAI,IAAG;IAAE,IAAG;IAAE,IAAG;IAAG,IAAG;IAAG,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAE,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAE,IAAG;IAAE,IAAG;IAAE,IAAG;IAAE;GAAC;IAAC,GAAE;IAAG,GAAE;IAAG,GAAE;IAAI,GAAE;IAAG,GAAE;IAAI,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAG,IAAG;IAAI,IAAG;IAAE,IAAG;IAAE,IAAG;IAAG,IAAG;IAAG,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAE,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAE,IAAG;IAAE,IAAG;IAAE,IAAG;IAAE;GAAC;IAAC,GAAE;IAAG,GAAE;IAAG,GAAE;IAAI,GAAE;IAAG,GAAE;IAAI,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAG,IAAG;IAAI,IAAG;IAAE,IAAG;IAAE,IAAG;IAAG,IAAG;IAAG,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAE,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAE,IAAG;IAAE,IAAG;IAAE,IAAG;IAAE;GAAC;IAAC,GAAE;IAAG,GAAE;IAAG,GAAE;IAAI,GAAE;IAAG,GAAE;IAAI,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAI,IAAG;IAAG,IAAG;IAAG,IAAG;IAAI,IAAG;IAAE,IAAG;IAAE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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { DefaultRuleGroupType, DefaultRuleGroupTypeIC } from "./basic-BmpEwexQ.mjs";
|
|
2
|
+
import { ParserCommonOptions } from "./import-Dxevzw_-.mjs";
|
|
3
|
+
import { Except } from "type-fest";
|
|
4
|
+
|
|
5
|
+
//#region src/utils/parseJSONata/parseJSONata.d.ts
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Options object for {@link parseJSONata}.
|
|
9
|
+
*
|
|
10
|
+
* Note: `listsAsArrays` is ignored by `parseJSONata`; lists are _always_ arrays.
|
|
11
|
+
*/
|
|
12
|
+
interface ParseJSONataOptions extends ParserCommonOptions {}
|
|
13
|
+
/**
|
|
14
|
+
* Converts a JSONata string expression into a query suitable for the
|
|
15
|
+
* {@link index!QueryBuilder QueryBuilder} component's `query` or `defaultQuery` props
|
|
16
|
+
* ({@link index!DefaultRuleGroupType DefaultRuleGroupType}).
|
|
17
|
+
*/
|
|
18
|
+
declare function parseJSONata(jsonataInput: string): DefaultRuleGroupType;
|
|
19
|
+
/**
|
|
20
|
+
* Converts a JSONata string expression into a query suitable for the
|
|
21
|
+
* {@link index!QueryBuilder QueryBuilder} component's `query` or `defaultQuery` props
|
|
22
|
+
* ({@link index!DefaultRuleGroupType DefaultRuleGroupType}).
|
|
23
|
+
*/
|
|
24
|
+
declare function parseJSONata(jsonataInput: string, options: Except<ParseJSONataOptions, "independentCombinators"> & {
|
|
25
|
+
independentCombinators?: false;
|
|
26
|
+
}): DefaultRuleGroupType;
|
|
27
|
+
/**
|
|
28
|
+
* Converts a JSONata string expression into a query suitable for the
|
|
29
|
+
* {@link index!QueryBuilder QueryBuilder} component's `query` or `defaultQuery` props
|
|
30
|
+
* ({@link index!DefaultRuleGroupTypeIC DefaultRuleGroupTypeIC}).
|
|
31
|
+
*/
|
|
32
|
+
declare function parseJSONata(jsonataInput: string, options: Except<ParseJSONataOptions, "independentCombinators"> & {
|
|
33
|
+
independentCombinators: true;
|
|
34
|
+
}): DefaultRuleGroupTypeIC;
|
|
35
|
+
//#endregion
|
|
36
|
+
export { ParseJSONataOptions, parseJSONata };
|
|
37
|
+
//# sourceMappingURL=parseJSONata.d.mts.map
|
package/dist/parseJSONata.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { DefaultRuleGroupType, DefaultRuleGroupTypeIC
|
|
2
|
-
import { ParserCommonOptions } from "./import-
|
|
1
|
+
import { DefaultRuleGroupType, DefaultRuleGroupTypeIC } from "./basic-CDDA-KZa.js";
|
|
2
|
+
import { ParserCommonOptions } from "./import-D-hm1phN.js";
|
|
3
|
+
import { Except } from "type-fest";
|
|
3
4
|
|
|
4
5
|
//#region src/utils/parseJSONata/parseJSONata.d.ts
|
|
5
6
|
|
package/dist/parseJSONata.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const require_isRuleGroup = require('./isRuleGroup-DqAs2x4E.js');
|
|
2
|
-
require('./optGroupUtils-
|
|
3
|
-
const require_prepareQueryObjects = require('./prepareQueryObjects-
|
|
2
|
+
require('./optGroupUtils-B0hTpodo.js');
|
|
3
|
+
const require_prepareQueryObjects = require('./prepareQueryObjects-BOUWfel5.js');
|
|
4
4
|
|
|
5
5
|
//#region ../../node_modules/jsonata/jsonata.js
|
|
6
6
|
var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../node_modules/jsonata/jsonata.js": ((exports, module) => {
|
|
@@ -230,8 +230,7 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
230
230
|
var decimal = 0;
|
|
231
231
|
var max = 1;
|
|
232
232
|
for (var i = roman.length - 1; i >= 0; i--) {
|
|
233
|
-
const
|
|
234
|
-
const value = romanValues[digit];
|
|
233
|
+
const value = romanValues[roman[i]];
|
|
235
234
|
if (value < max) decimal -= value;
|
|
236
235
|
else {
|
|
237
236
|
max = value;
|
|
@@ -334,13 +333,11 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
334
333
|
formattedInteger = formattedInteger.substr(0, pos) + separator.character + formattedInteger.substr(pos);
|
|
335
334
|
});
|
|
336
335
|
if (format.ordinal) {
|
|
337
|
-
var
|
|
336
|
+
var suffix = {
|
|
338
337
|
"1": "st",
|
|
339
338
|
"2": "nd",
|
|
340
339
|
"3": "rd"
|
|
341
|
-
};
|
|
342
|
-
var lastDigit = formattedInteger[formattedInteger.length - 1];
|
|
343
|
-
var suffix = suffix123[lastDigit];
|
|
340
|
+
}[formattedInteger[formattedInteger.length - 1]];
|
|
344
341
|
if (!suffix || formattedInteger.length > 1 && formattedInteger[formattedInteger.length - 2] === "1") suffix = "th";
|
|
345
342
|
formattedInteger = formattedInteger + suffix;
|
|
346
343
|
}
|
|
@@ -690,12 +687,9 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
690
687
|
case "D":
|
|
691
688
|
componentValue = date.getUTCDate();
|
|
692
689
|
break;
|
|
693
|
-
case "d":
|
|
694
|
-
|
|
695
|
-
const firstJan = Date.UTC(date.getUTCFullYear(), 0);
|
|
696
|
-
componentValue = (today - firstJan) / millisInADay + 1;
|
|
690
|
+
case "d":
|
|
691
|
+
componentValue = (Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()) - Date.UTC(date.getUTCFullYear(), 0)) / millisInADay + 1;
|
|
697
692
|
break;
|
|
698
|
-
}
|
|
699
693
|
case "F":
|
|
700
694
|
componentValue = date.getUTCDay();
|
|
701
695
|
if (componentValue === 0) componentValue = 7;
|
|
@@ -706,12 +700,8 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
706
700
|
const today = Date.UTC(thisYear.year, date.getUTCMonth(), date.getUTCDate());
|
|
707
701
|
let week = deltaWeeks(startOfWeek1, today);
|
|
708
702
|
if (week > 52) {
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
} else if (week < 1) {
|
|
712
|
-
const startOfPreviousYear = startOfFirstWeek(thisYear.previousYear());
|
|
713
|
-
week = deltaWeeks(startOfPreviousYear, today);
|
|
714
|
-
}
|
|
703
|
+
if (today >= startOfFirstWeek(thisYear.nextYear())) week = 1;
|
|
704
|
+
} else if (week < 1) week = deltaWeeks(startOfFirstWeek(thisYear.previousYear()), today);
|
|
715
705
|
componentValue = Math.floor(week);
|
|
716
706
|
break;
|
|
717
707
|
}
|
|
@@ -721,12 +711,8 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
721
711
|
const today = Date.UTC(thisMonth.year, thisMonth.month, date.getUTCDate());
|
|
722
712
|
let week = deltaWeeks(startOfWeek1, today);
|
|
723
713
|
if (week > 4) {
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
} else if (week < 1) {
|
|
727
|
-
const startOfPreviousMonth = startOfFirstWeek(thisMonth.previousMonth());
|
|
728
|
-
week = deltaWeeks(startOfPreviousMonth, today);
|
|
729
|
-
}
|
|
714
|
+
if (today >= startOfFirstWeek(thisMonth.nextMonth())) week = 1;
|
|
715
|
+
} else if (week < 1) week = deltaWeeks(startOfFirstWeek(thisMonth.previousMonth()), today);
|
|
730
716
|
componentValue = Math.floor(week);
|
|
731
717
|
break;
|
|
732
718
|
}
|
|
@@ -967,8 +953,7 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
967
953
|
*/
|
|
968
954
|
function parseInteger(value, picture) {
|
|
969
955
|
if (typeof value === "undefined") return;
|
|
970
|
-
|
|
971
|
-
return generateRegex(formatSpec).parse(value);
|
|
956
|
+
return generateRegex(analyseIntegerPicture(picture)).parse(value);
|
|
972
957
|
}
|
|
973
958
|
/**
|
|
974
959
|
* parse a string containing a timestamp as specified by the picture string
|
|
@@ -977,8 +962,7 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
977
962
|
* @returns {number} - the parsed timestamp in millis since the epoch
|
|
978
963
|
*/
|
|
979
964
|
function parseDateTime(timestamp, picture) {
|
|
980
|
-
const
|
|
981
|
-
const matchSpec = generateRegex(formatSpec);
|
|
965
|
+
const matchSpec = generateRegex(analyseDateTimePicture(picture));
|
|
982
966
|
const fullRegex = "^" + matchSpec.parts.map((part) => "(" + part.regex + ")").join("") + "$";
|
|
983
967
|
var info = new RegExp(fullRegex, "i").exec(timestamp);
|
|
984
968
|
if (info !== null) {
|
|
@@ -2075,8 +2059,7 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
2075
2059
|
for (var i = 0; i < arr.length; i++) {
|
|
2076
2060
|
var entry = arr[i];
|
|
2077
2061
|
var func_args = hofFuncArgs(func, entry, i, arr);
|
|
2078
|
-
|
|
2079
|
-
if (boolean(res)) result.push(entry);
|
|
2062
|
+
if (boolean(await func.apply(this, func_args))) result.push(entry);
|
|
2080
2063
|
}
|
|
2081
2064
|
return result;
|
|
2082
2065
|
}
|
|
@@ -2096,8 +2079,7 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
2096
2079
|
var positiveResult = true;
|
|
2097
2080
|
if (typeof func !== "undefined") {
|
|
2098
2081
|
var func_args = hofFuncArgs(func, entry, i, arr);
|
|
2099
|
-
|
|
2100
|
-
positiveResult = boolean(res);
|
|
2082
|
+
positiveResult = boolean(await func.apply(this, func_args));
|
|
2101
2083
|
}
|
|
2102
2084
|
if (positiveResult) if (!hasFoundMatch) {
|
|
2103
2085
|
result = entry;
|
|
@@ -2425,8 +2407,7 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
2425
2407
|
for (var item in arg) {
|
|
2426
2408
|
var entry = arg[item];
|
|
2427
2409
|
var func_args = hofFuncArgs(func, entry, item, arg);
|
|
2428
|
-
|
|
2429
|
-
if (boolean(res)) result[item] = entry;
|
|
2410
|
+
if (boolean(await func.apply(this, func_args))) result[item] = entry;
|
|
2430
2411
|
}
|
|
2431
2412
|
if (Object.keys(result).length === 0) result = void 0;
|
|
2432
2413
|
return result;
|
|
@@ -3447,10 +3428,8 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
3447
3428
|
position: expr.position,
|
|
3448
3429
|
value: func
|
|
3449
3430
|
};
|
|
3450
|
-
if (isFunction(lhs))
|
|
3451
|
-
|
|
3452
|
-
result = await apply(chain, [lhs, func], null, environment);
|
|
3453
|
-
} else result = await apply(func, [lhs], null, environment);
|
|
3431
|
+
if (isFunction(lhs)) result = await apply(await evaluate(chainAST, null, environment), [lhs, func], null, environment);
|
|
3432
|
+
else result = await apply(func, [lhs], null, environment);
|
|
3454
3433
|
}
|
|
3455
3434
|
return result;
|
|
3456
3435
|
}
|
|
@@ -3669,8 +3648,7 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
3669
3648
|
sigArgs = sigArgs.map(function(sigArg) {
|
|
3670
3649
|
return "$" + sigArg.trim();
|
|
3671
3650
|
});
|
|
3672
|
-
var
|
|
3673
|
-
var bodyAST = parser(body);
|
|
3651
|
+
var bodyAST = parser("function(" + sigArgs.join(", ") + "){ _ }");
|
|
3674
3652
|
bodyAST.body = native;
|
|
3675
3653
|
return partialApplyProcedure(bodyAST, args);
|
|
3676
3654
|
}
|
|
@@ -4361,19 +4339,19 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
4361
4339
|
return remaining;
|
|
4362
4340
|
};
|
|
4363
4341
|
var base_symbol = { nud: function() {
|
|
4364
|
-
var err
|
|
4342
|
+
var err = {
|
|
4365
4343
|
code: "S0211",
|
|
4366
4344
|
token: this.value,
|
|
4367
4345
|
position: this.position
|
|
4368
4346
|
};
|
|
4369
4347
|
if (recover) {
|
|
4370
|
-
err
|
|
4371
|
-
err
|
|
4372
|
-
errors.push(err
|
|
4373
|
-
return err
|
|
4348
|
+
err.remaining = remainingTokens();
|
|
4349
|
+
err.type = "error";
|
|
4350
|
+
errors.push(err);
|
|
4351
|
+
return err;
|
|
4374
4352
|
} else {
|
|
4375
|
-
err
|
|
4376
|
-
throw err
|
|
4353
|
+
err.stack = (/* @__PURE__ */ new Error()).stack;
|
|
4354
|
+
throw err;
|
|
4377
4355
|
}
|
|
4378
4356
|
} };
|
|
4379
4357
|
var symbol = function(id, bp) {
|
|
@@ -4389,18 +4367,18 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
4389
4367
|
}
|
|
4390
4368
|
return s;
|
|
4391
4369
|
};
|
|
4392
|
-
var handleError = function(err
|
|
4370
|
+
var handleError = function(err) {
|
|
4393
4371
|
if (recover) {
|
|
4394
|
-
err
|
|
4395
|
-
errors.push(err
|
|
4372
|
+
err.remaining = remainingTokens();
|
|
4373
|
+
errors.push(err);
|
|
4396
4374
|
var symbol$1 = symbol_table["(error)"];
|
|
4397
4375
|
node = Object.create(symbol$1);
|
|
4398
|
-
node.error = err
|
|
4376
|
+
node.error = err;
|
|
4399
4377
|
node.type = "(error)";
|
|
4400
4378
|
return node;
|
|
4401
4379
|
} else {
|
|
4402
|
-
err
|
|
4403
|
-
throw err
|
|
4380
|
+
err.stack = (/* @__PURE__ */ new Error()).stack;
|
|
4381
|
+
throw err;
|
|
4404
4382
|
}
|
|
4405
4383
|
};
|
|
4406
4384
|
var advance = function(id, infix$1) {
|
|
@@ -4408,13 +4386,12 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
4408
4386
|
var code;
|
|
4409
4387
|
if (node.id === "(end)") code = "S0203";
|
|
4410
4388
|
else code = "S0202";
|
|
4411
|
-
|
|
4389
|
+
return handleError({
|
|
4412
4390
|
code,
|
|
4413
4391
|
position: node.position,
|
|
4414
4392
|
token: node.value,
|
|
4415
4393
|
value: id
|
|
4416
|
-
};
|
|
4417
|
-
return handleError(err$1);
|
|
4394
|
+
});
|
|
4418
4395
|
}
|
|
4419
4396
|
var next_token = lexer(infix$1);
|
|
4420
4397
|
if (next_token === null) {
|
|
@@ -4608,9 +4585,9 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
4608
4585
|
advance(">");
|
|
4609
4586
|
try {
|
|
4610
4587
|
this.signature = parseSignature(sig);
|
|
4611
|
-
} catch (err
|
|
4612
|
-
err
|
|
4613
|
-
return handleError(err
|
|
4588
|
+
} catch (err) {
|
|
4589
|
+
err.position = sigPos + err.offset;
|
|
4590
|
+
return handleError(err);
|
|
4614
4591
|
}
|
|
4615
4592
|
}
|
|
4616
4593
|
advance("{");
|
|
@@ -5095,8 +5072,7 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
5095
5072
|
signature: expr$1.signature,
|
|
5096
5073
|
position: expr$1.position
|
|
5097
5074
|
};
|
|
5098
|
-
|
|
5099
|
-
result.body = tailCallOptimize(body);
|
|
5075
|
+
result.body = tailCallOptimize(processAST(expr$1.body));
|
|
5100
5076
|
break;
|
|
5101
5077
|
case "condition":
|
|
5102
5078
|
result = {
|
|
@@ -5180,20 +5156,20 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
5180
5156
|
var code = "S0206";
|
|
5181
5157
|
/* istanbul ignore else */
|
|
5182
5158
|
if (expr$1.id === "(end)") code = "S0207";
|
|
5183
|
-
var err
|
|
5159
|
+
var err = {
|
|
5184
5160
|
code,
|
|
5185
5161
|
position: expr$1.position,
|
|
5186
5162
|
token: expr$1.value
|
|
5187
5163
|
};
|
|
5188
5164
|
if (recover) {
|
|
5189
|
-
errors.push(err
|
|
5165
|
+
errors.push(err);
|
|
5190
5166
|
return {
|
|
5191
5167
|
type: "error",
|
|
5192
|
-
error: err
|
|
5168
|
+
error: err
|
|
5193
5169
|
};
|
|
5194
5170
|
} else {
|
|
5195
|
-
err
|
|
5196
|
-
throw err
|
|
5171
|
+
err.stack = (/* @__PURE__ */ new Error()).stack;
|
|
5172
|
+
throw err;
|
|
5197
5173
|
}
|
|
5198
5174
|
}
|
|
5199
5175
|
if (expr$1.keepArray) result.keepArray = true;
|
|
@@ -5202,14 +5178,11 @@ var require_jsonata = /* @__PURE__ */ require_isRuleGroup.__commonJS({ "../../no
|
|
|
5202
5178
|
lexer = tokenizer(source);
|
|
5203
5179
|
advance();
|
|
5204
5180
|
var expr = expression(0);
|
|
5205
|
-
if (node.id !== "(end)") {
|
|
5206
|
-
|
|
5207
|
-
|
|
5208
|
-
|
|
5209
|
-
|
|
5210
|
-
};
|
|
5211
|
-
handleError(err);
|
|
5212
|
-
}
|
|
5181
|
+
if (node.id !== "(end)") handleError({
|
|
5182
|
+
code: "S0201",
|
|
5183
|
+
position: node.position,
|
|
5184
|
+
token: node.value
|
|
5185
|
+
});
|
|
5213
5186
|
expr = processAST(expr);
|
|
5214
5187
|
if (expr.type === "parent" || typeof expr.seekingParent !== "undefined") throw {
|
|
5215
5188
|
code: "S0217",
|
|
@@ -5867,8 +5840,7 @@ function parseJSONata(jsonataInput, options = {}) {
|
|
|
5867
5840
|
} catch {
|
|
5868
5841
|
return prepare(emptyQuery);
|
|
5869
5842
|
}
|
|
5870
|
-
const
|
|
5871
|
-
const result = parseJSONataAST(jsonataAST);
|
|
5843
|
+
const result = parseJSONataAST(jsonataExpr.ast());
|
|
5872
5844
|
if (result) {
|
|
5873
5845
|
if (require_isRuleGroup.isRuleGroup(result)) return prepare(result);
|
|
5874
5846
|
return prepare({
|