@@ -506,40 +506,6 @@ type ParseNodesHelper<
506506// Some utils type for the ParseQuery parser logic
507507// Count is a special case where an aggregate function won't need a column to be run against
508508// see: https://postgrest.org/en/v12/references/api/aggregate_functions.html#the-case-of-count
509- type LowerAlphabet =
510- | 'a'
511- | 'b'
512- | 'c'
513- | 'd'
514- | 'e'
515- | 'f'
516- | 'g'
517- | 'h'
518- | 'i'
519- | 'j'
520- | 'k'
521- | 'l'
522- | 'm'
523- | 'n'
524- | 'o'
525- | 'p'
526- | 'q'
527- | 'r'
528- | 's'
529- | 't'
530- | 'u'
531- | 'v'
532- | 'w'
533- | 'x'
534- | 'y'
535- | 'z'
536-
537- type Alphabet = LowerAlphabet | Uppercase < LowerAlphabet >
538-
539- type Digit = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '0'
540-
541- type Letter = Alphabet | Digit | '_'
542-
543509/**
544510 * Reads a consecutive sequence of 1 or more letters, where letters are `[0-9a-zA-Z_]`.
545511 */
@@ -554,7 +520,7 @@ type ReadLetters<Input extends string> = string extends Input
554520type ReadLettersHelper < Input extends string , Acc extends string > = string extends Input
555521 ? GenericStringError
556522 : Input extends `${infer L } ${infer Remainder } `
557- ? L extends Letter
523+ ? L extends Token . Letter
558524 ? ReadLettersHelper < Remainder , `${Acc } ${L } `>
559525 : [ Acc , Input ]
560526 : [ Acc , '' ]
@@ -588,17 +554,52 @@ type CreateParserErrorIfRequired<Input, Message extends string> = Input extends
588554 ? Input
589555 : ParserError < Message >
590556
591- type Whitespace = ' ' | '\n' | '\t'
592-
593557/**
594558 * Trims whitespace from the left of the input.
595559 */
596560type EatWhitespace < Input extends string > = string extends Input
597561 ? GenericStringError
598- : Input extends `${Whitespace } ${infer Remainder } `
562+ : Input extends `${Token . Whitespace } ${infer Remainder } `
599563 ? EatWhitespace < Remainder >
600564 : Input
601565
566+ namespace Token {
567+ type LowerAlphabet =
568+ | 'a'
569+ | 'b'
570+ | 'c'
571+ | 'd'
572+ | 'e'
573+ | 'f'
574+ | 'g'
575+ | 'h'
576+ | 'i'
577+ | 'j'
578+ | 'k'
579+ | 'l'
580+ | 'm'
581+ | 'n'
582+ | 'o'
583+ | 'p'
584+ | 'q'
585+ | 'r'
586+ | 's'
587+ | 't'
588+ | 'u'
589+ | 'v'
590+ | 'w'
591+ | 'x'
592+ | 'y'
593+ | 'z'
594+
595+ type Alphabet = LowerAlphabet | Uppercase < LowerAlphabet >
596+
597+ type Digit = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '0'
598+
599+ export type Letter = Alphabet | Digit | '_'
600+ export type Whitespace = ' ' | '\n' | '\t'
601+ }
602+
602603export namespace Ast {
603604 export interface IdentifierNode {
604605 type : 'identifier'
0 commit comments