@restura/core 1.9.2 → 1.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/index.js CHANGED
@@ -2530,7 +2530,15 @@ NullOperator
2530
2530
  / "null"i { return function(col) { return formatColumn(col) + ' IS NULL'; }; }
2531
2531
 
2532
2532
  OperatorWithValue
2533
- = "in"i _ "," _ val:CastedValueWithPipes { return function(col) { return buildInClauseWithCast(formatColumn(col), val.value, val.cast); }; }
2533
+ = "in"i _ "," _ vals:InValueList cast:TypeCast? { return function(col) {
2534
+ var formattedCol = formatColumn(col);
2535
+ var literals = vals.map(function(v) {
2536
+ var unescaped = unescapeValue(v);
2537
+ var formatted = formatValue(unescaped);
2538
+ return cast ? formatted + '::' + cast : formatted;
2539
+ });
2540
+ return formattedCol + ' IN (' + literals.join(', ') + ')';
2541
+ }; }
2534
2542
  / "ne"i _ "," _ val:CastedValue { return function(col) { return formatColumn(col) + ' <> ' + formatValueWithCast(val.value, val.cast); }; }
2535
2543
  / "gte"i _ "," _ val:CastedValue { return function(col) { return formatColumn(col) + ' >= ' + formatValueWithCast(val.value, val.cast); }; }
2536
2544
  / "gt"i _ "," _ val:CastedValue { return function(col) { return formatColumn(col) + ' > ' + formatValueWithCast(val.value, val.cast); }; }
@@ -2540,6 +2548,26 @@ OperatorWithValue
2540
2548
  / "sw"i _ "," _ val:CastedValue { return function(col) { var formatted = format.literal(unescapeValue(val.value) + '%'); return formatColumn(col) + ' ILIKE ' + (val.cast ? formatted + '::' + val.cast : formatted); }; }
2541
2549
  / "ew"i _ "," _ val:CastedValue { return function(col) { var formatted = format.literal('%' + unescapeValue(val.value)); return formatColumn(col) + ' ILIKE ' + (val.cast ? formatted + '::' + val.cast : formatted); }; }
2542
2550
 
2551
+ InValueList
2552
+ = first:InValue rest:("|" InValue)* {
2553
+ var values = [first];
2554
+ for (var i = 0; i < rest.length; i++) {
2555
+ values.push(rest[i][1]);
2556
+ }
2557
+ return values;
2558
+ }
2559
+
2560
+ InValue
2561
+ = QuotedString
2562
+ / chars:InValueChar+ { return chars.join(''); }
2563
+
2564
+ InValueChar
2565
+ = "\\\\\\\\" { return '\\\\\\\\'; }
2566
+ / "\\\\," { return '\\\\,'; }
2567
+ / "\\\\|" { return '\\\\|'; }
2568
+ / [a-zA-Z0-9_\\-!#/@$%^&*+=<>?~.;'" ]
2569
+ / c:":" !":" { return c; }
2570
+
2543
2571
  CastedValue
2544
2572
  = val:Value cast:TypeCast? { return { value: val, cast: cast }; }
2545
2573
 
@@ -2550,24 +2578,40 @@ TypeCast
2550
2578
  = "::" type:("timestamptz"i / "timestamp"i / "boolean"i / "numeric"i / "bigint"i / "text"i / "date"i / "int"i)
2551
2579
  { return type.toLowerCase(); }
2552
2580
 
2581
+ QuotedString
2582
+ = '"' chars:DoubleQuotedChar* '"' { return chars.join(''); }
2583
+ / "'" chars:SingleQuotedChar* "'" { return chars.join(''); }
2584
+
2585
+ DoubleQuotedChar
2586
+ = '\\\\"' { return '"'; }
2587
+ / '\\\\\\\\' { return '\\\\'; }
2588
+ / [^"\\\\]
2589
+
2590
+ SingleQuotedChar
2591
+ = "\\\\'" { return "'"; }
2592
+ / '\\\\\\\\' { return '\\\\'; }
2593
+ / [^'\\\\]
2594
+
2553
2595
  Value
2554
- = chars:ValueChar+ { return chars.join(''); }
2596
+ = QuotedString
2597
+ / chars:ValueChar+ { return chars.join(''); }
2555
2598
 
2556
2599
  ValueChar
2557
2600
  = "\\\\\\\\" { return '\\\\\\\\'; }
2558
2601
  / "\\\\," { return '\\\\,'; }
2559
2602
  / "\\\\|" { return '\\\\|'; }
2560
- / [^,()\\\\|:]
2603
+ / [a-zA-Z0-9_\\-!#/@$%^&*+=<>?~.;'" ]
2561
2604
  / c:":" !":" { return c; }
2562
2605
 
2563
2606
  ValueWithPipes
2564
- = chars:ValueWithPipesChar+ { return chars.join(''); }
2607
+ = QuotedString
2608
+ / chars:ValueWithPipesChar+ { return chars.join(''); }
2565
2609
 
2566
2610
  ValueWithPipesChar
2567
2611
  = "\\\\\\\\" { return '\\\\\\\\'; }
2568
2612
  / "\\\\," { return '\\\\,'; }
2569
2613
  / "\\\\|" { return '\\\\|'; }
2570
- / [^,()\\\\:]
2614
+ / [a-zA-Z0-9_\\-!#/@$%^&*+=<>?~.;'" |]
2571
2615
  / c:":" !":" { return c; }
2572
2616
  `;
2573
2617
  var fullGrammar = entryGrammar + oldGrammar + newGrammar;