@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.
Files changed (106) hide show
  1. package/dist/arrayUtils-C9sO4qLO.mjs +50 -0
  2. package/dist/arrayUtils-C9sO4qLO.mjs.map +1 -0
  3. package/dist/arrayUtils-QxZOZTf6.js +73 -0
  4. package/dist/arrayUtils-QxZOZTf6.js.map +1 -0
  5. package/dist/basic-BmpEwexQ.d.mts +363 -0
  6. package/dist/basic-CDDA-KZa.d.ts +363 -0
  7. package/dist/cjs/react-querybuilder_core.cjs.development.d.ts +569 -1252
  8. package/dist/cjs/react-querybuilder_core.cjs.development.js +430 -140
  9. package/dist/cjs/react-querybuilder_core.cjs.development.js.map +1 -1
  10. package/dist/cjs/react-querybuilder_core.cjs.production.d.ts +569 -1252
  11. package/dist/cjs/react-querybuilder_core.cjs.production.js +1 -1
  12. package/dist/cjs/react-querybuilder_core.cjs.production.js.map +1 -1
  13. package/dist/convertQuery-BUgyz1GA.mjs +75 -0
  14. package/dist/convertQuery-BUgyz1GA.mjs.map +1 -0
  15. package/dist/export-Ccjfea21.d.mts +453 -0
  16. package/dist/{export-DyrnTh6K.d.ts → export-GUuxJ7zR.d.ts} +3 -2
  17. package/dist/formatQuery.d.mts +668 -0
  18. package/dist/formatQuery.d.ts +3 -2
  19. package/dist/formatQuery.js +217 -87
  20. package/dist/formatQuery.js.map +1 -1
  21. package/dist/formatQuery.mjs +2496 -0
  22. package/dist/formatQuery.mjs.map +1 -0
  23. package/dist/{import-Cksobmln.d.ts → import-D-hm1phN.d.ts} +2 -2
  24. package/dist/import-Dxevzw_-.d.mts +28 -0
  25. package/dist/isRuleGroup-CGe_rb2w.mjs +40 -0
  26. package/dist/isRuleGroup-CGe_rb2w.mjs.map +1 -0
  27. package/dist/isRuleGroup-DqAs2x4E.js.map +1 -1
  28. package/dist/{optGroupUtils-CXLgyg2i.js → optGroupUtils-B0hTpodo.js} +114 -1
  29. package/dist/optGroupUtils-B0hTpodo.js.map +1 -0
  30. package/dist/optGroupUtils-DrubUpx0.mjs +185 -0
  31. package/dist/optGroupUtils-DrubUpx0.mjs.map +1 -0
  32. package/dist/parseCEL.d.mts +315 -0
  33. package/dist/parseCEL.d.ts +292 -11
  34. package/dist/parseCEL.js +114 -30
  35. package/dist/parseCEL.js.map +1 -1
  36. package/dist/parseCEL.mjs +2631 -0
  37. package/dist/parseCEL.mjs.map +1 -0
  38. package/dist/parseJSONata.d.mts +37 -0
  39. package/dist/parseJSONata.d.ts +3 -2
  40. package/dist/parseJSONata.js +49 -77
  41. package/dist/parseJSONata.js.map +1 -1
  42. package/dist/parseJSONata.mjs +267 -0
  43. package/dist/parseJSONata.mjs.map +1 -0
  44. package/dist/parseJsonLogic.d.mts +37 -0
  45. package/dist/parseJsonLogic.d.ts +4 -3
  46. package/dist/parseJsonLogic.js +5 -6
  47. package/dist/parseJsonLogic.js.map +1 -1
  48. package/dist/parseJsonLogic.mjs +190 -0
  49. package/dist/parseJsonLogic.mjs.map +1 -0
  50. package/dist/parseMongoDB.d.mts +80 -0
  51. package/dist/parseMongoDB.d.ts +3 -2
  52. package/dist/parseMongoDB.js +15 -16
  53. package/dist/parseMongoDB.js.map +1 -1
  54. package/dist/parseMongoDB.mjs +266 -0
  55. package/dist/parseMongoDB.mjs.map +1 -0
  56. package/dist/parseNumber-B_-sR6d5.mjs +24 -0
  57. package/dist/parseNumber-B_-sR6d5.mjs.map +1 -0
  58. package/dist/{parseNumber-Bcys1kOH.js → parseNumber-D4iQDxK-.js} +1 -1
  59. package/dist/{parseNumber-Bcys1kOH.js.map → parseNumber-D4iQDxK-.js.map} +1 -1
  60. package/dist/parseSQL.d.mts +38 -0
  61. package/dist/parseSQL.d.ts +3 -2
  62. package/dist/parseSQL.js +11 -15
  63. package/dist/parseSQL.js.map +1 -1
  64. package/dist/parseSQL.mjs +6622 -0
  65. package/dist/parseSQL.mjs.map +1 -0
  66. package/dist/parseSpEL.d.mts +35 -0
  67. package/dist/parseSpEL.d.ts +3 -2
  68. package/dist/parseSpEL.js +7 -9
  69. package/dist/parseSpEL.js.map +1 -1
  70. package/dist/parseSpEL.mjs +272 -0
  71. package/dist/parseSpEL.mjs.map +1 -0
  72. package/dist/{prepareQueryObjects-BqFEs4eV.js → prepareQueryObjects-BOUWfel5.js} +4 -5
  73. package/dist/prepareQueryObjects-BOUWfel5.js.map +1 -0
  74. package/dist/prepareQueryObjects-CJNpnGcJ.mjs +153 -0
  75. package/dist/prepareQueryObjects-CJNpnGcJ.mjs.map +1 -0
  76. package/dist/query-builder-layout.css +1 -1
  77. package/dist/query-builder-layout.css.map +1 -1
  78. package/dist/query-builder.css +1 -1
  79. package/dist/query-builder.css.map +1 -1
  80. package/dist/react-querybuilder_core.d.mts +569 -1252
  81. package/dist/react-querybuilder_core.legacy-esm.d.ts +569 -1252
  82. package/dist/react-querybuilder_core.legacy-esm.js +430 -136
  83. package/dist/react-querybuilder_core.legacy-esm.js.map +1 -1
  84. package/dist/react-querybuilder_core.mjs +426 -141
  85. package/dist/react-querybuilder_core.mjs.map +1 -1
  86. package/dist/react-querybuilder_core.production.d.mts +569 -1252
  87. package/dist/react-querybuilder_core.production.mjs +1 -1
  88. package/dist/react-querybuilder_core.production.mjs.map +1 -1
  89. package/dist/styles/_layout.scss +61 -17
  90. package/dist/styles/_main.scss +17 -4
  91. package/dist/{transformQuery-FL_nlpp5.js → transformQuery-CWDPogO5.js} +1 -1
  92. package/dist/{transformQuery-FL_nlpp5.js.map → transformQuery-CWDPogO5.js.map} +1 -1
  93. package/dist/transformQuery-DHvtgDgZ.mjs +41 -0
  94. package/dist/transformQuery-DHvtgDgZ.mjs.map +1 -0
  95. package/dist/transformQuery.d.mts +118 -0
  96. package/dist/transformQuery.d.ts +1 -1
  97. package/dist/transformQuery.js +1 -1
  98. package/dist/transformQuery.mjs +4 -0
  99. package/package.json +78 -28
  100. package/dist/arrayUtils-D5EoIsKP.js +0 -164
  101. package/dist/arrayUtils-D5EoIsKP.js.map +0 -1
  102. package/dist/basic-C8xXKHIA.d.ts +0 -1235
  103. package/dist/objectUtils-BBZSfZJz.js +0 -17
  104. package/dist/objectUtils-BBZSfZJz.js.map +0 -1
  105. package/dist/optGroupUtils-CXLgyg2i.js.map +0 -1
  106. 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,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;EAC5d,eAAe,SAAS,UAAU,QAAQ,QAAQ,UAAU,IAAI,SAAyB,IAAiB,IAAiB;GAG3H,IAAI,KAAK,GAAG,SAAS;AACrB,WAAQ,SAAR;IACA,KAAK,EACJ,QAAO;KAAE,UAAU;KAAQ,OAAO,GAAG,KAAG;KAAI;IAE7C,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAiB,OAAO,GAAG;MAAK;AACjD;IACA,KAAK;IAAG,KAAK;AACb,UAAK,IAAI;MAAE,MAAM;MAAgB,OAAO,GAAG;MAAK;AAChD;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAkB,OAAO,SAAS,GAAG,KAAK,IAAI,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG;MAAE;AACxF;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAA0B,OAAO,SAAS,GAAG,IAAI,QAAQ,OAAO,GAAG,EAAE,MAAM,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG;MAAE;AACrH;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAgB,OAAO,WAAW,GAAG,IAAI;MAAE;AAC5D;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAkB,OAAO,GAAG,QAAQ;MAAQ;AAC7D;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAe,OAAO;MAAM;AAC7C;IACA,KAAK;IAAI,KAAK;IAAI,KAAK;IAAI,KAAK;IAAI,KAAK;IAAI,KAAK;IAAI,KAAK;IAAI,KAAK;IAAI,KAAK;IAAI,KAAK;IAAI,KAAK;IAAI,KAAK;IAAI,KAAK;IAAI,KAAK;IAAI,KAAK;IAAI,KAAK;IAAI,KAAK;IAAI,KAAK;IAAI,KAAK;IAAI,KAAK;IAAI,KAAK;AACzL,UAAK,IAAI,GAAG;AACZ;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAc,OAAO,GAAG;MAAK;AAC9C;IACA,KAAK;IAAI,KAAK;IAAI,KAAK;AACvB,UAAK,IAAI;MAAE,MAAM;MAAY,MAAM,GAAG,KAAG;MAAI,UAAU,GAAG,KAAG;MAAI,OAAO,GAAG;MAAK;AAChF;IACA,KAAK;IAAI,KAAK;AACd,UAAK,IAAI;AACT;IACA,KAAK;IAAI,KAAK;AACd,UAAK,IAAI,KAAK,KAAK;AACnB;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAY,WAAW,GAAG,KAAG;MAAI,OAAO,GAAG;MAAK;AACjE;IACA,KAAK;IAAI,KAAK;AACd,UAAK,IAAK,GAAG;AACb;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAU,MAAM,GAAG,KAAG;MAAI,OAAO,GAAG;MAAK;AAC1D;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAU,MAAM,GAAG,KAAG;MAAI,OAAO,GAAG,KAAG;MAAI,MAAM,GAAG,KAAG;MAAI;AAC5E;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAA2B,MAAM,GAAG,KAAG;MAAI,OAAO,GAAG,KAAG;MAAI;AAC7E;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAgB,MAAM,GAAG,KAAG;MAAI,MAAM,GAAG,KAAG;MAAI,eAAe,GAAG,KAAG;MAAI;AAC1F;IACA,KAAK;AACL,UAAK,IAAI;AACT;IACA,KAAK;AACL,UAAK,IAAI;AACT;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAY,OAAO,GAAG;MAAK;AAC5C;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAgB,MAAM,GAAG,KAAG;MAAI,MAAM,GAAG,KAAG;MAAI,eAAe,GAAG,KAAG;MAAI;AAC1F;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAY,OAAO,GAAG,KAAG;MAAI,MAAM,GAAG,KAAG;MAAI,eAAe,GAAG,KAAG;MAAI;AACvF;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAmB,OAAO,GAAG,KAAG;MAAI;AACrD;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAQ,OAAO,GAAG,KAAG;MAAI,eAAe,GAAG,KAAG;MAAI;AACnE;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAO,OAAO,GAAG,KAAG;MAAI,eAAe,GAAG,KAAG;MAAI;AAClE;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAY,MAAM,GAAG,KAAG;MAAI,OAAO,GAAG;MAAK;AAC5D;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAe,MAAM,GAAG,KAAG;MAAI,OAAO,GAAG;MAAK;AAC/D;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAkB,MAAM,GAAG,KAAG;MAAI,OAAO,GAAG;MAAK;AAClE;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAY,MAAM,GAAG,KAAG;MAAI,OAAO,GAAG;MAAK;AAC5D;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAU,MAAM,GAAG,KAAG;MAAI,OAAO,GAAG;MAAK;AAC1D;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAmB,WAAW,GAAG,KAAG;MAAI,aAAa,GAAG,KAAG;MAAI,cAAc,GAAG;MAAK;AACtG;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAkB,MAAM,GAAG,KAAG;MAAI,OAAO,GAAG;MAAK;AAClE;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAiB,MAAM,GAAG,KAAG;MAAI,OAAO,GAAG;MAAK;AACjE;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAkB,OAAO,CAAE,GAAG,IAAK;MAAE;AACtD;IACA,KAAK;AACL,UAAK,IAAI,GAAG,KAAG;AAAI,UAAK,EAAE,MAAM,KAAK,GAAG,IAAI;AAC5C;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAc,OAAO,CAAE;OAAE,MAAM;OAAa,MAAM,GAAG,KAAG;OAAI,OAAO,GAAG;OAAK,CAAE;MAAE;AAChG;IACA,KAAK;AACL,UAAK,IAAI,GAAG,KAAG;AAAI,UAAK,EAAE,MAAM,KAAK;MAAE,MAAM;MAAa,MAAM,GAAG,KAAG;MAAI,OAAO,GAAG;MAAK,CAAC;AAC1F;IACA,KAAK;AACL,UAAK,IAAI;MAAE,MAAM;MAAY,OAAO,CAAE;OAAE,MAAM;OAAW,MAAM,GAAG,KAAG;OAAI,OAAO,GAAG;OAAK,CAAE;MAAE;AAC5F;IACA,KAAK;AACL,UAAK,IAAI,GAAG,KAAG;AAAI,UAAK,EAAE,MAAM,KAAK;MAAE,MAAM;MAAW,MAAM,GAAG,KAAG;MAAI,OAAO,GAAG;MAAK,CAAC;AACxF;;;EAGA,OAAO;GAAC;IAAC,GAAE;IAAE,GAAE;IAAE,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,EAAC,GAAE,CAAC,EAAE,EAAC;GAAC;IAAC,GAAE,CAAC,GAAE,GAAG;IAAC,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI;GAAC,EAAE,KAAI,CAAC,GAAE,GAAG,EAAC;IAAC,IAAG;IAAG,IAAG,CAAC,GAAE,GAAG;IAAC,IAAG,CAAC,GAAE,GAAG;IAAC,IAAG,CAAC,GAAE,GAAG;IAAC,IAAG,CAAC,GAAE,GAAG;IAAC,IAAG,CAAC,GAAE,GAAG;IAAC,IAAG,CAAC,GAAE,GAAG;IAAC,IAAG,CAAC,GAAE,GAAG;IAAC,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,GAAG,EAAC,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,CAAC;GAAC;IAAC,IAAG;IAAG,IAAG;IAAI;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,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC;GAAC;IAAC,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;IAAG,IAAG;IAAG,IAAG,CAAC,GAAE,GAAG;IAAC,IAAG;IAAG,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI;GAAC,EAAE;IAAC;IAAE;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG;IAAG,EAAC,CAAC,GAAE,GAAG,CAAC;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;IAAG,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;IAAG,IAAG;IAAE,IAAG;IAAE,IAAG;IAAE,IAAG;IAAE;GAAC,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC;GAAC;IAAC,GAAE;IAAG,GAAE;IAAI;GAAC;IAAC,GAAE;IAAG,GAAE;IAAI;GAAC,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC;GAAC,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC;GAAC,EAAC,GAAE,CAAC,GAAE,EAAE,EAAC;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,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
@@ -1,5 +1,6 @@
1
- import { DefaultRuleGroupType, DefaultRuleGroupTypeIC, Except } from "./basic-C8xXKHIA.js";
2
- import { ParserCommonOptions } from "./import-Cksobmln.js";
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
 
@@ -1,6 +1,6 @@
1
1
  const require_isRuleGroup = require('./isRuleGroup-DqAs2x4E.js');
2
- require('./optGroupUtils-CXLgyg2i.js');
3
- const require_prepareQueryObjects = require('./prepareQueryObjects-BqFEs4eV.js');
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 digit = roman[i];
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 suffix123 = {
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
- const today = Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());
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
- const startOfFollowingYear = startOfFirstWeek(thisYear.nextYear());
710
- if (today >= startOfFollowingYear) week = 1;
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
- const startOfFollowingMonth = startOfFirstWeek(thisMonth.nextMonth());
725
- if (today >= startOfFollowingMonth) week = 1;
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
- const formatSpec = analyseIntegerPicture(picture);
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 formatSpec = analyseDateTimePicture(picture);
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
- var res = await func.apply(this, func_args);
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
- var res = await func.apply(this, func_args);
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
- var res = await func.apply(this, func_args);
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
- var chain = await evaluate(chainAST, null, environment);
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 body = "function(" + sigArgs.join(", ") + "){ _ }";
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$1 = {
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$1.remaining = remainingTokens();
4371
- err$1.type = "error";
4372
- errors.push(err$1);
4373
- return err$1;
4348
+ err.remaining = remainingTokens();
4349
+ err.type = "error";
4350
+ errors.push(err);
4351
+ return err;
4374
4352
  } else {
4375
- err$1.stack = (/* @__PURE__ */ new Error()).stack;
4376
- throw err$1;
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$1) {
4370
+ var handleError = function(err) {
4393
4371
  if (recover) {
4394
- err$1.remaining = remainingTokens();
4395
- errors.push(err$1);
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$1;
4376
+ node.error = err;
4399
4377
  node.type = "(error)";
4400
4378
  return node;
4401
4379
  } else {
4402
- err$1.stack = (/* @__PURE__ */ new Error()).stack;
4403
- throw err$1;
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
- var err$1 = {
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$1) {
4612
- err$1.position = sigPos + err$1.offset;
4613
- return handleError(err$1);
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
- var body = processAST(expr$1.body);
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$1 = {
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$1);
5165
+ errors.push(err);
5190
5166
  return {
5191
5167
  type: "error",
5192
- error: err$1
5168
+ error: err
5193
5169
  };
5194
5170
  } else {
5195
- err$1.stack = (/* @__PURE__ */ new Error()).stack;
5196
- throw err$1;
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
- var err = {
5207
- code: "S0201",
5208
- position: node.position,
5209
- token: node.value
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 jsonataAST = jsonataExpr.ast();
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({