@kuindji/typed-sql 0.1.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/LICENSE +21 -0
- package/README.md +227 -0
- package/dist/builder/assemble.d.ts +13 -0
- package/dist/builder/assemble.d.ts.map +1 -0
- package/dist/builder/assemble.js +86 -0
- package/dist/builder/assemble.js.map +1 -0
- package/dist/builder/condition-tree.d.ts +27 -0
- package/dist/builder/condition-tree.d.ts.map +1 -0
- package/dist/builder/condition-tree.js +91 -0
- package/dist/builder/condition-tree.js.map +1 -0
- package/dist/builder/conditional-sql.d.ts +80 -0
- package/dist/builder/conditional-sql.d.ts.map +1 -0
- package/dist/builder/conditional-sql.js +88 -0
- package/dist/builder/conditional-sql.js.map +1 -0
- package/dist/builder/db.d.ts +76 -0
- package/dist/builder/db.d.ts.map +1 -0
- package/dist/builder/db.js +12 -0
- package/dist/builder/db.js.map +1 -0
- package/dist/builder/delete.d.ts +39 -0
- package/dist/builder/delete.d.ts.map +1 -0
- package/dist/builder/delete.js +33 -0
- package/dist/builder/delete.js.map +1 -0
- package/dist/builder/extract-params.d.ts +97 -0
- package/dist/builder/extract-params.d.ts.map +1 -0
- package/dist/builder/extract-params.js +2 -0
- package/dist/builder/extract-params.js.map +1 -0
- package/dist/builder/index.d.ts +23 -0
- package/dist/builder/index.d.ts.map +1 -0
- package/dist/builder/index.js +14 -0
- package/dist/builder/index.js.map +1 -0
- package/dist/builder/insert.d.ts +51 -0
- package/dist/builder/insert.d.ts.map +1 -0
- package/dist/builder/insert.js +39 -0
- package/dist/builder/insert.js.map +1 -0
- package/dist/builder/mutate.d.ts +28 -0
- package/dist/builder/mutate.d.ts.map +1 -0
- package/dist/builder/mutate.js +17 -0
- package/dist/builder/mutate.js.map +1 -0
- package/dist/builder/params.d.ts +22 -0
- package/dist/builder/params.d.ts.map +1 -0
- package/dist/builder/params.js +65 -0
- package/dist/builder/params.js.map +1 -0
- package/dist/builder/return-type.d.ts +39 -0
- package/dist/builder/return-type.d.ts.map +1 -0
- package/dist/builder/return-type.js +2 -0
- package/dist/builder/return-type.js.map +1 -0
- package/dist/builder/scanner.d.ts +49 -0
- package/dist/builder/scanner.d.ts.map +1 -0
- package/dist/builder/scanner.js +240 -0
- package/dist/builder/scanner.js.map +1 -0
- package/dist/builder/select.d.ts +76 -0
- package/dist/builder/select.d.ts.map +1 -0
- package/dist/builder/select.js +240 -0
- package/dist/builder/select.js.map +1 -0
- package/dist/builder/sql-tag.d.ts +319 -0
- package/dist/builder/sql-tag.d.ts.map +1 -0
- package/dist/builder/sql-tag.js +3 -0
- package/dist/builder/sql-tag.js.map +1 -0
- package/dist/builder/sql.d.ts +17 -0
- package/dist/builder/sql.d.ts.map +1 -0
- package/dist/builder/sql.js +36 -0
- package/dist/builder/sql.js.map +1 -0
- package/dist/builder/state.d.ts +53 -0
- package/dist/builder/state.d.ts.map +1 -0
- package/dist/builder/state.js +18 -0
- package/dist/builder/state.js.map +1 -0
- package/dist/builder/update.d.ts +60 -0
- package/dist/builder/update.d.ts.map +1 -0
- package/dist/builder/update.js +40 -0
- package/dist/builder/update.js.map +1 -0
- package/dist/builder/write-assemble.d.ts +5 -0
- package/dist/builder/write-assemble.d.ts.map +1 -0
- package/dist/builder/write-assemble.js +57 -0
- package/dist/builder/write-assemble.js.map +1 -0
- package/dist/builder/write-state.d.ts +39 -0
- package/dist/builder/write-state.d.ts.map +1 -0
- package/dist/builder/write-state.js +6 -0
- package/dist/builder/write-state.js.map +1 -0
- package/dist/builder/write-tag.d.ts +91 -0
- package/dist/builder/write-tag.d.ts.map +1 -0
- package/dist/builder/write-tag.js +2 -0
- package/dist/builder/write-tag.js.map +1 -0
- package/dist/columns.d.ts +33 -0
- package/dist/columns.d.ts.map +1 -0
- package/dist/columns.js +2 -0
- package/dist/columns.js.map +1 -0
- package/dist/expressions.d.ts +71 -0
- package/dist/expressions.d.ts.map +1 -0
- package/dist/expressions.js +2 -0
- package/dist/expressions.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/parsing/extract.d.ts +47 -0
- package/dist/parsing/extract.d.ts.map +1 -0
- package/dist/parsing/extract.js +2 -0
- package/dist/parsing/extract.js.map +1 -0
- package/dist/parsing/normalize.d.ts +44 -0
- package/dist/parsing/normalize.d.ts.map +1 -0
- package/dist/parsing/normalize.js +2 -0
- package/dist/parsing/normalize.js.map +1 -0
- package/dist/parsing/pg-literals.d.ts +37 -0
- package/dist/parsing/pg-literals.d.ts.map +1 -0
- package/dist/parsing/pg-literals.js +2 -0
- package/dist/parsing/pg-literals.js.map +1 -0
- package/dist/parsing/split.d.ts +100 -0
- package/dist/parsing/split.d.ts.map +1 -0
- package/dist/parsing/split.js +2 -0
- package/dist/parsing/split.js.map +1 -0
- package/dist/parsing/string-utils.d.ts +29 -0
- package/dist/parsing/string-utils.d.ts.map +1 -0
- package/dist/parsing/string-utils.js +2 -0
- package/dist/parsing/string-utils.js.map +1 -0
- package/dist/parsing/tokenize.d.ts +27 -0
- package/dist/parsing/tokenize.d.ts.map +1 -0
- package/dist/parsing/tokenize.js +2 -0
- package/dist/parsing/tokenize.js.map +1 -0
- package/dist/parsing.d.ts +7 -0
- package/dist/parsing.d.ts.map +1 -0
- package/dist/parsing.js +9 -0
- package/dist/parsing.js.map +1 -0
- package/dist/partial.d.ts +30 -0
- package/dist/partial.d.ts.map +1 -0
- package/dist/partial.js +10 -0
- package/dist/partial.js.map +1 -0
- package/dist/schema.d.ts +28 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +2 -0
- package/dist/schema.js.map +1 -0
- package/dist/tables.d.ts +34 -0
- package/dist/tables.d.ts.map +1 -0
- package/dist/tables.js +2 -0
- package/dist/tables.js.map +1 -0
- package/dist/utils.d.ts +13 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +3 -0
- package/dist/utils.js.map +1 -0
- package/dist/validation/cte.d.ts +54 -0
- package/dist/validation/cte.d.ts.map +1 -0
- package/dist/validation/cte.js +2 -0
- package/dist/validation/cte.js.map +1 -0
- package/dist/validation/dispatch.d.ts +31 -0
- package/dist/validation/dispatch.d.ts.map +1 -0
- package/dist/validation/dispatch.js +2 -0
- package/dist/validation/dispatch.js.map +1 -0
- package/dist/validation/joins.d.ts +16 -0
- package/dist/validation/joins.d.ts.map +1 -0
- package/dist/validation/joins.js +2 -0
- package/dist/validation/joins.js.map +1 -0
- package/dist/validation/return-derived.d.ts +67 -0
- package/dist/validation/return-derived.d.ts.map +1 -0
- package/dist/validation/return-derived.js +5 -0
- package/dist/validation/return-derived.js.map +1 -0
- package/dist/validation/return-types.d.ts +41 -0
- package/dist/validation/return-types.d.ts.map +1 -0
- package/dist/validation/return-types.js +2 -0
- package/dist/validation/return-types.js.map +1 -0
- package/dist/validation/validate-columns.d.ts +63 -0
- package/dist/validation/validate-columns.d.ts.map +1 -0
- package/dist/validation/validate-columns.js +2 -0
- package/dist/validation/validate-columns.js.map +1 -0
- package/dist/validation.d.ts +7 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +9 -0
- package/dist/validation.js.map +1 -0
- package/package.json +64 -0
- package/src/builder/assemble.ts +100 -0
- package/src/builder/condition-tree.ts +162 -0
- package/src/builder/conditional-sql.ts +325 -0
- package/src/builder/db.ts +281 -0
- package/src/builder/delete.ts +57 -0
- package/src/builder/extract-params.ts +507 -0
- package/src/builder/index.ts +58 -0
- package/src/builder/insert.ts +75 -0
- package/src/builder/mutate.ts +55 -0
- package/src/builder/params.ts +95 -0
- package/src/builder/return-type.ts +66 -0
- package/src/builder/scanner.ts +254 -0
- package/src/builder/select.ts +470 -0
- package/src/builder/sql-tag.ts +422 -0
- package/src/builder/sql.ts +51 -0
- package/src/builder/state.ts +55 -0
- package/src/builder/update.ts +77 -0
- package/src/builder/write-assemble.ts +52 -0
- package/src/builder/write-state.ts +43 -0
- package/src/builder/write-tag.ts +119 -0
- package/src/columns.ts +336 -0
- package/src/expressions.ts +745 -0
- package/src/index.ts +81 -0
- package/src/parsing/extract.ts +260 -0
- package/src/parsing/normalize.ts +243 -0
- package/src/parsing/pg-literals.ts +289 -0
- package/src/parsing/split.ts +288 -0
- package/src/parsing/string-utils.ts +172 -0
- package/src/parsing/tokenize.ts +321 -0
- package/src/parsing.ts +8 -0
- package/src/partial.ts +241 -0
- package/src/schema.ts +130 -0
- package/src/tables.ts +278 -0
- package/src/utils.ts +43 -0
- package/src/validation/cte.ts +198 -0
- package/src/validation/dispatch.ts +312 -0
- package/src/validation/joins.ts +198 -0
- package/src/validation/return-derived.ts +253 -0
- package/src/validation/return-types.ts +271 -0
- package/src/validation/validate-columns.ts +489 -0
- package/src/validation.ts +8 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/parsing/extract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/parsing/extract.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { CollapseSpaces, Trim } from "./string-utils.js";
|
|
2
|
+
import type { NeutralizePgLiterals, RewriteExtractCall, StripComments } from "./pg-literals.js";
|
|
3
|
+
export type NormalizeQuery<S extends string> = RewriteExtractCall<Trim<RemoveTrailingSemicolon<LowercaseOutsideQuotes<CollapseSpaces<ReplaceWhitespace<StripComments<NeutralizePgLiterals<S>>>>>>>>;
|
|
4
|
+
export type LowercaseOutsideQuotes<S extends string> = string extends S ? string : LowercaseOutsideQuotesDrive<LowercaseOutsideQuotesWorker<S, false, false, "", []>>;
|
|
5
|
+
type LowercaseOutsideQuotesDrive<R> = R extends {
|
|
6
|
+
__c: [infer S extends string, infer Q1 extends boolean, infer Q2 extends boolean, infer Acc extends string];
|
|
7
|
+
} ? LowercaseOutsideQuotesDrive<LowercaseOutsideQuotesWorker<S, Q1, Q2, Acc, []>> : R;
|
|
8
|
+
type LowercaseOutsideQuotesWorker<S extends string, InSingleQuote extends boolean, InDoubleQuote extends boolean, Acc extends string, Steps extends any[]> = Steps["length"] extends 450 ? {
|
|
9
|
+
__c: [S, InSingleQuote, InDoubleQuote, Acc];
|
|
10
|
+
} : S extends `${infer C}${infer Rest}` ? C extends "'" ? InDoubleQuote extends true ? LowercaseOutsideQuotesWorker<Rest, InSingleQuote, InDoubleQuote, `${Acc}${C}`, [any, ...Steps]> : InSingleQuote extends true ? LowercaseOutsideQuotesWorker<Rest, false, InDoubleQuote, `${Acc}${C}`, [any, ...Steps]> : LowercaseOutsideQuotesWorker<Rest, true, InDoubleQuote, `${Acc}${C}`, [any, ...Steps]> : C extends `"` ? InSingleQuote extends true ? LowercaseOutsideQuotesWorker<Rest, InSingleQuote, InDoubleQuote, `${Acc}${C}`, [any, ...Steps]> : InDoubleQuote extends true ? LowercaseOutsideQuotesWorker<Rest, InSingleQuote, false, `${Acc}${C}`, [any, ...Steps]> : LowercaseOutsideQuotesWorker<Rest, InSingleQuote, true, `${Acc}${C}`, [any, ...Steps]> : InSingleQuote extends true ? LowercaseOutsideQuotesWorker<Rest, InSingleQuote, InDoubleQuote, `${Acc}${C}`, [any, ...Steps]> : InDoubleQuote extends true ? LowercaseOutsideQuotesWorker<Rest, InSingleQuote, InDoubleQuote, `${Acc}${C}`, [any, ...Steps]> : LowercaseOutsideQuotesWorker<Rest, InSingleQuote, InDoubleQuote, `${Acc}${Lowercase<C>}`, [any, ...Steps]> : Acc;
|
|
11
|
+
type ParamsHaveUpper<S extends string, Steps extends any[] = []> = Steps["length"] extends 64 ? true : S extends `${infer _Pre}:${infer Rest}` ? Rest extends `:${infer R2}` ? ParamsHaveUpper<R2, [any, ...Steps]> : ReadParamIdent<Rest> extends {
|
|
12
|
+
name: infer Nm extends string;
|
|
13
|
+
rest: infer Rr extends string;
|
|
14
|
+
} ? Lowercase<Nm> extends Nm ? ParamsHaveUpper<Rr, [any, ...Steps]> : true : ParamsHaveUpper<Rest, [any, ...Steps]> : false;
|
|
15
|
+
export type LowercaseOutsideQuotesKeepParams<S extends string> = string extends S ? string : ParamsHaveUpper<S> extends true ? LcKeepDrive<LcKeepWorker<S, false, false, "", []>> : Lowercase<S>;
|
|
16
|
+
type LcKeepDrive<R> = R extends {
|
|
17
|
+
__c: [infer S extends string, infer Q1 extends boolean, infer Q2 extends boolean, infer Acc extends string];
|
|
18
|
+
} ? LcKeepDrive<LcKeepWorker<S, Q1, Q2, Acc, []>> : R;
|
|
19
|
+
type ParamNameStop = " " | "\t" | "\n" | "," | ";" | ")" | "(" | "'" | '"' | ":" | "." | "=" | "+" | "-" | "*" | "/" | "|" | "%" | ">" | "<" | "!" | "~" | "@" | "#" | "&" | "^" | "[" | "]" | "{" | "}";
|
|
20
|
+
type ReadParamIdent<S extends string, Acc extends string = "", N extends any[] = []> = N["length"] extends 128 ? {
|
|
21
|
+
name: Acc;
|
|
22
|
+
rest: S;
|
|
23
|
+
} : S extends `${infer C}${infer R}` ? C extends ParamNameStop ? {
|
|
24
|
+
name: Acc;
|
|
25
|
+
rest: S;
|
|
26
|
+
} : ReadParamIdent<R, `${Acc}${C}`, [any, ...N]> : {
|
|
27
|
+
name: Acc;
|
|
28
|
+
rest: S;
|
|
29
|
+
};
|
|
30
|
+
type LcKeepWorker<S extends string, InSingleQuote extends boolean, InDoubleQuote extends boolean, Acc extends string, Steps extends any[]> = Steps["length"] extends 450 ? {
|
|
31
|
+
__c: [S, InSingleQuote, InDoubleQuote, Acc];
|
|
32
|
+
} : S extends `${infer C}${infer Rest}` ? C extends "'" ? InDoubleQuote extends true ? LcKeepWorker<Rest, InSingleQuote, InDoubleQuote, `${Acc}${C}`, [any, ...Steps]> : InSingleQuote extends true ? LcKeepWorker<Rest, false, InDoubleQuote, `${Acc}${C}`, [any, ...Steps]> : LcKeepWorker<Rest, true, InDoubleQuote, `${Acc}${C}`, [any, ...Steps]> : C extends `"` ? InSingleQuote extends true ? LcKeepWorker<Rest, InSingleQuote, InDoubleQuote, `${Acc}${C}`, [any, ...Steps]> : InDoubleQuote extends true ? LcKeepWorker<Rest, InSingleQuote, false, `${Acc}${C}`, [any, ...Steps]> : LcKeepWorker<Rest, InSingleQuote, true, `${Acc}${C}`, [any, ...Steps]> : InSingleQuote extends true ? LcKeepWorker<Rest, InSingleQuote, InDoubleQuote, `${Acc}${C}`, [any, ...Steps]> : InDoubleQuote extends true ? LcKeepWorker<Rest, InSingleQuote, InDoubleQuote, `${Acc}${C}`, [any, ...Steps]> : C extends ":" ? Rest extends `:${infer R2}` ? LcKeepWorker<R2, InSingleQuote, InDoubleQuote, `${Acc}::`, [any, ...Steps]> : ReadParamIdent<Rest> extends {
|
|
33
|
+
name: infer Nm extends string;
|
|
34
|
+
rest: infer Rr extends string;
|
|
35
|
+
} ? LcKeepWorker<Rr, InSingleQuote, InDoubleQuote, `${Acc}:${Nm}`, [any, ...Steps]> : LcKeepWorker<Rest, InSingleQuote, InDoubleQuote, `${Acc}:`, [any, ...Steps]> : LcKeepWorker<Rest, InSingleQuote, InDoubleQuote, `${Acc}${Lowercase<C>}`, [any, ...Steps]> : Acc;
|
|
36
|
+
export type NormalizeQueryKeepParams<S extends string> = RewriteExtractCall<Trim<RemoveTrailingSemicolon<LowercaseOutsideQuotesKeepParams<CollapseSpaces<ReplaceWhitespace<StripComments<NeutralizePgLiterals<S>>>>>>>>;
|
|
37
|
+
export type ReplaceWhitespace<S extends string> = HasLineBreaks<S> extends true ? ReplaceWhitespaceRuns<S> : S;
|
|
38
|
+
type ReplaceWhitespaceRuns<S extends string, Steps extends any[] = []> = string extends S ? S : Steps["length"] extends 1500 ? S : S extends `${infer A}\n${infer B}` ? ReplaceWhitespaceRuns<`${A} ${B}`, [any, ...Steps]> : S extends `${infer A}\t${infer B}` ? ReplaceWhitespaceRuns<`${A} ${B}`, [any, ...Steps]> : S extends `${infer A}\r${infer B}` ? ReplaceWhitespaceRuns<`${A} ${B}`, [any, ...Steps]> : S;
|
|
39
|
+
export type ExceedsLengthBudget<S extends string, Steps extends any[] = []> = string extends S ? true : Steps["length"] extends 50 ? S extends "" ? false : true : S extends "" ? false : ExceedsLengthBudget<Drop10Chars<S>, [any, ...Steps]>;
|
|
40
|
+
export type Drop10Chars<S extends string> = S extends `${infer _A}${infer _B}${infer _C}${infer _D}${infer _E}${infer _F}${infer _G}${infer _H}${infer _I}${infer _J}${infer R}` ? R : "";
|
|
41
|
+
export type HasLineBreaks<S extends string> = S extends `${string}\n${string}` ? true : S extends `${string}\t${string}` ? true : S extends `${string}\r${string}` ? true : false;
|
|
42
|
+
export type RemoveTrailingSemicolon<S extends string> = Trim<S> extends `${infer R};` ? Trim<R> : Trim<S>;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=normalize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/parsing/normalize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/parsing/normalize.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Trim } from "./string-utils.js";
|
|
2
|
+
import type { ExceedsLengthBudget } from "./normalize.js";
|
|
3
|
+
import type { SplitBalancedParen } from "./extract.js";
|
|
4
|
+
export type NeutralizePgLiterals<S extends string> = string extends S ? S : NeedsPgNeutralize<S> extends true ? NeutralizePgDrive<NeutralizePgWorker<S, false, false, false, "", []>> : S;
|
|
5
|
+
type NeedsPgNeutralize<S extends string> = HasPairedDollar<S> extends true ? true : HasEStringOpener<S>;
|
|
6
|
+
type HasPairedDollar<S extends string> = S extends `${string}$${infer Tag}$${infer Rest}` ? Rest extends `${string}$${Tag}$${string}` ? true : false : false;
|
|
7
|
+
type HasEStringOpener<S extends string> = S extends `E'${string}` ? true : S extends `e'${string}` ? true : S extends `${string} E'${string}` ? true : S extends `${string} e'${string}` ? true : S extends `${string}(E'${string}` ? true : S extends `${string}(e'${string}` ? true : S extends `${string},E'${string}` ? true : S extends `${string},e'${string}` ? true : false;
|
|
8
|
+
type NeutralizePgDrive<R> = R extends {
|
|
9
|
+
__c: [infer S extends string, infer A extends boolean, infer B extends boolean, infer C extends boolean, infer Acc extends string];
|
|
10
|
+
} ? NeutralizePgDrive<NeutralizePgWorker<S, A, B, C, Acc, []>> : R;
|
|
11
|
+
type DollarTagLower = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z";
|
|
12
|
+
type DollarTagStart = DollarTagLower | Uppercase<DollarTagLower> | "_";
|
|
13
|
+
type DollarTagChar = DollarTagStart | "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
|
|
14
|
+
type IsValidDollarTag<Tag extends string> = Tag extends "" ? true : Tag extends `${infer F}${infer R}` ? F extends DollarTagStart ? AllDollarTagChars<R> : false : false;
|
|
15
|
+
type AllDollarTagChars<S extends string, Steps extends any[] = []> = S extends "" ? true : Steps["length"] extends 64 ? false : S extends `${infer F}${infer R}` ? F extends DollarTagChar ? AllDollarTagChars<R, [any, ...Steps]> : false : false;
|
|
16
|
+
type NeutralizePgWorker<S extends string, InS extends boolean, // inside '...'
|
|
17
|
+
InD extends boolean, // inside "..."
|
|
18
|
+
InE extends boolean, // inside E'...' (body blanked)
|
|
19
|
+
Acc extends string, Steps extends any[]> = Steps["length"] extends 400 ? {
|
|
20
|
+
__c: [S, InS, InD, InE, Acc];
|
|
21
|
+
} : InE extends true ? S extends `\\${infer _Esc}${infer R}` ? NeutralizePgWorker<R, InS, InD, true, Acc, [any, ...Steps]> : S extends `'${infer R}` ? NeutralizePgWorker<R, false, false, false, `${Acc}'`, [any, ...Steps]> : S extends `${infer _C}${infer R}` ? NeutralizePgWorker<R, InS, InD, true, Acc, [any, ...Steps]> : `${Acc}'` : InS extends true ? S extends `${infer C}${infer R}` ? NeutralizePgWorker<R, C extends "'" ? false : true, InD, false, `${Acc}${C}`, [any, ...Steps]> : Acc : InD extends true ? S extends `${infer C}${infer R}` ? NeutralizePgWorker<R, InS, C extends `"` ? false : true, false, `${Acc}${C}`, [any, ...Steps]> : Acc : S extends `E'${infer R}` ? NeutralizePgWorker<R, false, false, true, `${Acc}'`, [any, ...Steps]> : S extends `e'${infer R}` ? NeutralizePgWorker<R, false, false, true, `${Acc}'`, [any, ...Steps]> : S extends `$${infer Tag}$${infer Rest}` ? IsValidDollarTag<Tag> extends true ? Rest extends `${infer _Body}$${Tag}$${infer After}` ? NeutralizePgWorker<After, false, false, false, `${Acc}''`, [any, ...Steps]> : S extends `$${infer R2}` ? NeutralizePgWorker<R2, false, false, false, `${Acc}$`, [any, ...Steps]> : Acc : S extends `$${infer R3}` ? NeutralizePgWorker<R3, false, false, false, `${Acc}$`, [any, ...Steps]> : Acc : S extends `'${infer R}` ? NeutralizePgWorker<R, true, false, false, `${Acc}'`, [any, ...Steps]> : S extends `"${infer R}` ? NeutralizePgWorker<R, false, true, false, `${Acc}"`, [any, ...Steps]> : S extends `${infer C}${infer R}` ? NeutralizePgWorker<R, false, false, false, `${Acc}${C}`, [any, ...Steps]> : Acc;
|
|
22
|
+
export type RewriteExtractCall<S extends string> = S extends `${string} extract(${string}` ? S extends `${string}'${string}` ? ExceedsLengthBudget<S> extends true ? RewriteExtractWalk<S> : RewriteExtractWalkQuoteAware<S> : RewriteExtractWalk<S> : S;
|
|
23
|
+
export type RewriteExtractWalk<S extends string, Steps extends any[] = []> = Steps["length"] extends 24 ? S : S extends `${infer Pre} extract(${infer AfterOpen}` ? SplitBalancedParen<`(${AfterOpen}`> extends {
|
|
24
|
+
inner: infer Inner extends string;
|
|
25
|
+
rest: infer Rest extends string;
|
|
26
|
+
} ? Inner extends `${infer _Field} from ${infer Source}` ? `${RewriteExtractWalk<Pre, [any, ...Steps]>} extract(${Trim<Source>})${RewriteExtractWalk<Rest, [any, ...Steps]>}` : `${RewriteExtractWalk<Pre, [any, ...Steps]>} extract(${Inner})${RewriteExtractWalk<Rest, [any, ...Steps]>}` : S : S;
|
|
27
|
+
export type RewriteExtractWalkQuoteAware<S extends string, Steps extends any[] = []> = Steps["length"] extends 12 ? S : S extends `${infer Pre} extract(${infer AfterOpen}` ? Pre extends `${string}'${string}` ? OddSingleQuotes<Pre> extends true ? AfterOpen extends `${infer Lit}'${infer Tail}` ? `${RewriteExtractWalkQuoteAware<Pre, [any, ...Steps]>} extract(${Lit}'${RewriteExtractWalkQuoteAware<Tail, [any, ...Steps]>}` : S : RewriteExtractRewriteOne<Pre, AfterOpen, Steps> : RewriteExtractRewriteOne<Pre, AfterOpen, Steps> : S;
|
|
28
|
+
export type RewriteExtractRewriteOne<Pre extends string, AfterOpen extends string, Steps extends any[]> = SplitBalancedParen<`(${AfterOpen}`> extends {
|
|
29
|
+
inner: infer Inner extends string;
|
|
30
|
+
rest: infer Rest extends string;
|
|
31
|
+
} ? Inner extends `${infer _Field} from ${infer Source}` ? `${RewriteExtractWalkQuoteAware<Pre, [any, ...Steps]>} extract(${Trim<Source>})${RewriteExtractWalkQuoteAware<Rest, [any, ...Steps]>}` : `${RewriteExtractWalkQuoteAware<Pre, [any, ...Steps]>} extract(${Inner})${RewriteExtractWalkQuoteAware<Rest, [any, ...Steps]>}` : `${Pre} extract(${AfterOpen}`;
|
|
32
|
+
export type OddSingleQuotes<S extends string, Flag extends boolean = false, Steps extends any[] = []> = string extends S ? false : Steps["length"] extends 400 ? Flag : S extends `${infer C}${infer R}` ? OddSingleQuotes<R, C extends "'" ? (Flag extends true ? false : true) : Flag, [any, ...Steps]> : Flag;
|
|
33
|
+
export type StripComments<S extends string> = string extends S ? S : S extends `${string}/*${string}` ? StripCommentsWalk<S> : S extends `${string}--${string}` ? StripCommentsWalk<S> : S;
|
|
34
|
+
export type StripCommentsWalk<S extends string, InString extends boolean = false, Acc extends string = "", Steps extends any[] = [], InDString extends boolean = false> = string extends S ? S : Steps["length"] extends 500 ? `${Acc}${S}` : InString extends true ? S extends `${infer C}${infer Rest}` ? StripCommentsWalk<Rest, C extends "'" ? false : true, `${Acc}${C}`, [any, ...Steps], InDString> : Acc : InDString extends true ? S extends `${infer C}${infer Rest}` ? StripCommentsWalk<Rest, InString, `${Acc}${C}`, [any, ...Steps], C extends `"` ? false : true> : Acc : S extends `/*${infer AfterOpen}` ? AfterOpen extends `${infer _Body}*/${infer Tail}` ? StripCommentsWalk<Tail, false, `${Acc} `, [any, ...Steps], false> : `${Acc} ` : S extends `--${infer AfterDash}` ? StripCommentsWalk<LineCommentTail<AfterDash>, false, `${Acc} `, [any, ...Steps], false> : S extends `${infer C}${infer Rest}` ? StripCommentsWalk<Rest, C extends "'" ? true : false, `${Acc}${C}`, [any, ...Steps], C extends `"` ? true : false> : Acc;
|
|
35
|
+
export type LineCommentTail<S extends string, Steps extends any[] = []> = Steps["length"] extends 1000 ? S : S extends `${infer C}${infer Rest}` ? C extends "\n" | "\r" ? S : LineCommentTail<Rest, [any, ...Steps]> : "";
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=pg-literals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pg-literals.d.ts","sourceRoot":"","sources":["../../src/parsing/pg-literals.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAevD,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,IAC7C,MAAM,SAAS,CAAC,GACV,CAAC,GACD,iBAAiB,CAAC,CAAC,CAAC,SAAS,IAAI,GAC7B,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACrE,CAAC,CAAC;AAEhB,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,IACnC,eAAe,CAAC,CAAC,CAAC,SAAS,IAAI,GACzB,IAAI,GACJ,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAQ9B,KAAK,eAAe,CAAC,CAAC,SAAS,MAAM,IACjC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,GAAG,IAAI,MAAM,IAAI,EAAE,GAC1C,IAAI,SAAS,GAAG,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,GACrC,IAAI,GACJ,KAAK,GACT,KAAK,CAAC;AAMhB,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAClC,CAAC,SAAS,KAAK,MAAM,EAAE,GAAG,IAAI,GAC5B,CAAC,SAAS,KAAK,MAAM,EAAE,GAAG,IAAI,GAC9B,CAAC,SAAS,GAAG,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,GACxC,CAAC,SAAS,GAAG,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,GACxC,CAAC,SAAS,GAAG,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,GACxC,CAAC,SAAS,GAAG,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,GACxC,CAAC,SAAS,GAAG,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,GACxC,CAAC,SAAS,GAAG,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,GACxC,KAAK,CAAC;AAEZ,KAAK,iBAAiB,CAAC,CAAC,IACpB,CAAC,SAAS;IAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,MAAM,CAAC,SAAS,OAAO,EAAE,MAAM,CAAC,SAAS,OAAO,EAAE,MAAM,CAAC,SAAS,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,CAAC,CAAA;CAAE,GAC1I,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAC1D,CAAC,CAAC;AAOZ,KAAK,cAAc,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAChL,KAAK,cAAc,GAAG,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC;AACvE,KAAK,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEhG,KAAK,gBAAgB,CAAC,GAAG,SAAS,MAAM,IACpC,GAAG,SAAS,EAAE,GACR,IAAI,GACJ,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAC9B,CAAC,SAAS,cAAc,GACpB,iBAAiB,CAAC,CAAC,CAAC,GACpB,KAAK,GACT,KAAK,CAAC;AAEpB,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IAC7D,CAAC,SAAS,EAAE,GACN,IAAI,GACJ,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,GACtB,KAAK,GACL,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAC5B,CAAC,SAAS,aAAa,GACnB,iBAAiB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACrC,KAAK,GACT,KAAK,CAAC;AAOxB,KAAK,kBAAkB,CACnB,CAAC,SAAS,MAAM,EAChB,GAAG,SAAS,OAAO,EAAE,eAAe;AACpC,GAAG,SAAS,OAAO,EAAE,eAAe;AACpC,GAAG,SAAS,OAAO,EAAE,+BAA+B;AACpD,GAAG,SAAS,MAAM,EAClB,KAAK,SAAS,GAAG,EAAE,IACnB,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,GACzB;IAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CAAE,GAChC,GAAG,SAAS,IAAI,GAEZ,CAAC,SAAS,KAAK,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,GACjC,kBAAkB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC3D,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,GACnB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACtE,CAAC,SAAS,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,GAC7B,kBAAkB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC3D,GAAG,GAAG,GAAG,GACzB,GAAG,SAAS,IAAI,GACZ,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAC5B,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,GAAG,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC9F,GAAG,GACX,GAAG,SAAS,IAAI,GACZ,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAC5B,kBAAkB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,GAAG,GAAG,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC9F,GAAG,GAEP,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,GACpB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACrE,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,GACpB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACrE,CAAC,SAAS,IAAI,MAAM,GAAG,IAAI,MAAM,IAAI,EAAE,GACnC,gBAAgB,CAAC,GAAG,CAAC,SAAS,IAAI,GAC9B,IAAI,SAAS,GAAG,MAAM,KAAK,IAAI,GAAG,IAAI,MAAM,KAAK,EAAE,GAC/C,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAE3E,CAAC,SAAS,IAAI,MAAM,EAAE,EAAE,GACpB,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACvE,GAAG,GAEX,CAAC,SAAS,IAAI,MAAM,EAAE,EAAE,GACpB,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACvE,GAAG,GACX,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,GACnB,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACrE,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,GACnB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACrE,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAC5B,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACzE,GAAG,CAAC;AAatC,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAC3C,CAAC,SAAS,GAAG,MAAM,YAAY,MAAM,EAAE,GAKjC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAC3B,mBAAmB,CAAC,CAAC,CAAC,SAAS,IAAI,GAC/B,kBAAkB,CAAC,CAAC,CAAC,GACrB,4BAA4B,CAAC,CAAC,CAAC,GACnC,kBAAkB,CAAC,CAAC,CAAC,GACzB,CAAC,CAAC;AAEZ,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IACrE,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,GACpB,CAAC,GACD,CAAC,SAAS,GAAG,MAAM,GAAG,YAAY,MAAM,SAAS,EAAE,GAC/C,kBAAkB,CAAC,IAAI,SAAS,EAAE,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,KAAK,SAAS,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,CAAA;CAAE,GAC9G,KAAK,SAAS,GAAG,MAAM,MAAM,SAAS,MAAM,MAAM,EAAE,GAChD,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,GAClH,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,KAAK,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,GAC/G,CAAC,GACL,CAAC,CAAC;AAMhB,MAAM,MAAM,4BAA4B,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IAC/E,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,GACpB,CAAC,GACD,CAAC,SAAS,GAAG,MAAM,GAAG,YAAY,MAAM,SAAS,EAAE,GAC/C,GAAG,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAC7B,eAAe,CAAC,GAAG,CAAC,SAAS,IAAI,GAC7B,SAAS,SAAS,GAAG,MAAM,GAAG,IAAI,MAAM,IAAI,EAAE,GAC1C,GAAG,4BAA4B,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,GAAG,IAAI,4BAA4B,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,GAC7H,CAAC,GACL,wBAAwB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,GACnD,wBAAwB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,GACnD,CAAC,CAAC;AAEhB,MAAM,MAAM,wBAAwB,CAAC,GAAG,SAAS,MAAM,EAAE,SAAS,SAAS,MAAM,EAAE,KAAK,SAAS,GAAG,EAAE,IAClG,kBAAkB,CAAC,IAAI,SAAS,EAAE,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,KAAK,SAAS,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,CAAA;CAAE,GAC5G,KAAK,SAAS,GAAG,MAAM,MAAM,SAAS,MAAM,MAAM,EAAE,GAChD,GAAG,4BAA4B,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,4BAA4B,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,GACtI,GAAG,4BAA4B,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,KAAK,IAAI,4BAA4B,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,GACnI,GAAG,GAAG,YAAY,SAAS,EAAE,CAAC;AAKxC,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,SAAS,OAAO,GAAG,KAAK,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IAChG,MAAM,SAAS,CAAC,GACV,KAAK,GACL,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,GACvB,IAAI,GACJ,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAC5B,eAAe,CAAC,CAAC,EAAE,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,SAAS,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC9F,IAAI,CAAC;AAcvB,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IACtC,MAAM,SAAS,CAAC,GACV,CAAC,GACD,CAAC,SAAS,GAAG,MAAM,KAAK,MAAM,EAAE,GAC5B,iBAAiB,CAAC,CAAC,CAAC,GACpB,CAAC,SAAS,GAAG,MAAM,KAAK,MAAM,EAAE,GAC5B,iBAAiB,CAAC,CAAC,CAAC,GACpB,CAAC,CAAC;AAWpB,MAAM,MAAM,iBAAiB,CACzB,CAAC,SAAS,MAAM,EAChB,QAAQ,SAAS,OAAO,GAAG,KAAK,EAChC,GAAG,SAAS,MAAM,GAAG,EAAE,EACvB,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,EACxB,SAAS,SAAS,OAAO,GAAG,KAAK,IACjC,MAAM,SAAS,CAAC,GACd,CAAC,GACD,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,GACvB,GAAG,GAAG,GAAG,CAAC,EAAE,GACZ,QAAQ,SAAS,IAAI,GACjB,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,GAC/B,iBAAiB,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,SAAS,CAAC,GAC/F,GAAG,GACP,SAAS,SAAS,IAAI,GAClB,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,GAC/B,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,SAAS,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,GAC9F,GAAG,GACP,CAAC,SAAS,KAAK,MAAM,SAAS,EAAE,GAC5B,SAAS,SAAS,GAAG,MAAM,KAAK,KAAK,MAAM,IAAI,EAAE,GAC7C,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,GACjE,GAAG,GAAG,GAAG,GACb,CAAC,SAAS,KAAK,MAAM,SAAS,EAAE,GAC5B,iBAAiB,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,GACvF,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,GAC/B,iBAAiB,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,GAAG,IAAI,GAAG,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,SAAS,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC,GAClH,GAAG,CAAC;AAKlC,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IAClE,KAAK,CAAC,QAAQ,CAAC,SAAS,IAAI,GACtB,CAAC,GACD,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,GAC/B,CAAC,SAAS,IAAI,GAAG,IAAI,GACjB,CAAC,GACD,eAAe,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC1C,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pg-literals.js","sourceRoot":"","sources":["../../src/parsing/pg-literals.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { CleanIdent, HasSpecial, SplitLast, Trim } from "./string-utils.js";
|
|
2
|
+
import type { SplitBalancedParen } from "./extract.js";
|
|
3
|
+
import type { SqlReserved } from "./tokenize.js";
|
|
4
|
+
type SplitTopLevelWorker<S extends string, Depth extends any[] = [], Acc extends string[] = [], Cur extends string = "", Steps extends any[] = [], InQ extends boolean = false, InDQ extends boolean = false> = Steps["length"] extends 450 ? {
|
|
5
|
+
__c: [S, Depth, Acc, Cur, InQ, InDQ];
|
|
6
|
+
} : string extends CleanIdent<S> ? [...Acc, `${Cur}string`] : S extends `${infer C}${infer Rest}` ? C extends "'" ? InDQ extends true ? SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ> : SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ extends true ? false : true, InDQ> : InQ extends true ? SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ> : C extends `"` ? SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ extends true ? false : true> : InDQ extends true ? SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ> : C extends "(" ? SplitTopLevelWorker<Rest, [any, ...Depth], Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ> : C extends ")" ? SplitTopLevelWorker<Rest, Depth extends [any, ...infer D] ? D : [], Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ> : C extends "," ? Depth["length"] extends 0 ? SplitTopLevelWorker<Rest, Depth, [...Acc, Cur], "", [any, ...Steps], InQ, InDQ> : SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ> : SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ> : [...Acc, Cur];
|
|
7
|
+
export type SplitTopLevel<S extends string> = SplitTopLevelDrive<SplitTopLevelWorker<S, [], [], "", [], false, false>>;
|
|
8
|
+
type SplitTopLevelDrive<R> = R extends {
|
|
9
|
+
__c: [infer S extends string, infer D extends any[], infer A extends string[], infer Cur extends string, infer InQ extends boolean, infer InDQ extends boolean];
|
|
10
|
+
} ? SplitTopLevelDrive<SplitTopLevelWorker<S, D, A, Cur, [], InQ, InDQ>> : R;
|
|
11
|
+
export type ExtractBeforeFromTopLevel<S extends string, Depth extends any[] = [], InString extends boolean = false, Acc extends string = "", Steps extends any[] = [], InDString extends boolean = false> = Steps["length"] extends 350 ? `${Acc}${ExtractBefore<S, " from ">}` : InString extends true ? S extends `${infer C}${infer Rest}` ? C extends "'" ? ExtractBeforeFromTopLevel<Rest, Depth, false, `${Acc}${C}`, [any, ...Steps], InDString> : ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], InDString> : Acc : InDString extends true ? S extends `${infer C}${infer Rest}` ? C extends `"` ? ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], false> : ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], true> : Acc : Depth["length"] extends 0 ? S extends ` from ${string}` ? Acc : S extends `${infer C}${infer Rest}` ? C extends "'" ? ExtractBeforeFromTopLevel<Rest, Depth, true, `${Acc}${C}`, [any, ...Steps], InDString> : C extends `"` ? ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], true> : C extends "(" ? ExtractBeforeFromTopLevel<Rest, [any, ...Depth], InString, `${Acc}${C}`, [any, ...Steps], InDString> : C extends ")" ? ExtractBeforeFromTopLevel<Rest, Depth extends [any, ...infer D] ? D : [], InString, `${Acc}${C}`, [any, ...Steps], InDString> : ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], InDString> : Acc : S extends `${infer C}${infer Rest}` ? C extends "'" ? ExtractBeforeFromTopLevel<Rest, Depth, true, `${Acc}${C}`, [any, ...Steps], InDString> : C extends `"` ? ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], true> : C extends "(" ? ExtractBeforeFromTopLevel<Rest, [any, ...Depth], InString, `${Acc}${C}`, [any, ...Steps], InDString> : C extends ")" ? ExtractBeforeFromTopLevel<Rest, Depth extends [any, ...infer D] ? D : [], InString, `${Acc}${C}`, [any, ...Steps], InDString> : ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], InDString> : Acc;
|
|
12
|
+
export type SplitCommaSimple<S extends string> = SplitTopLevel<S>;
|
|
13
|
+
export type ExtractBefore<S extends string, Delim extends string> = S extends `${infer Head}${Delim}${infer _}` ? Head : S;
|
|
14
|
+
export type StripDistinct<S extends string> = Trim<S> extends `distinct on (${infer _On})${infer Rest}` ? Trim<Rest> : Trim<S> extends `distinct on(${infer _On})${infer Rest}` ? Trim<Rest> : Trim<S> extends `distinct ${infer R}` ? R : Trim<S> extends `all ${infer R}` ? R : Trim<S>;
|
|
15
|
+
export type IsImplicitQuotedAlias<E extends string> = E extends `${infer Expr} "${infer Alias}"` ? Alias extends `${string}"${string}` ? false : Trim<Expr> extends "" ? false : true : false;
|
|
16
|
+
export type BareImplicitAliasParts<E extends string> = Trim<E> extends `${infer Head} ${infer LastTok}` ? SplitLast<Trim<E>, " "> extends [infer HExpr extends string, infer HAlias extends string] ? {
|
|
17
|
+
expr: Trim<HExpr>;
|
|
18
|
+
alias: Trim<HAlias>;
|
|
19
|
+
} : {
|
|
20
|
+
expr: Trim<Head>;
|
|
21
|
+
alias: Trim<LastTok>;
|
|
22
|
+
} : {
|
|
23
|
+
expr: Trim<E>;
|
|
24
|
+
alias: "";
|
|
25
|
+
};
|
|
26
|
+
export type IsBareImplicitAlias<E extends string> = BareImplicitAliasParts<E> extends {
|
|
27
|
+
expr: infer Expr extends string;
|
|
28
|
+
alias: infer Alias extends string;
|
|
29
|
+
} ? Alias extends "" ? false : IsSimpleAliasToken<Alias> extends true ? IsImplicitAliasExpr<Expr> extends true ? true : false : false : false;
|
|
30
|
+
export type IsSimpleAliasToken<A extends string> = A extends "" ? false : A extends `${string}.${string}` ? false : A extends `${string}"${string}` ? false : A extends `${string}'${string}` ? false : A extends `${string}*${string}` ? false : HasSpecial<A> extends true ? false : CleanIdent<A> extends SqlReserved ? false : true;
|
|
31
|
+
export type IsImplicitAliasExpr<Expr extends string> = Trim<Expr> extends "" ? false : Trim<Expr> extends `${infer Func}(${infer AfterOpen}` ? IsSimpleFuncName<Trim<Func>> extends true ? SplitBalancedParen<`(${AfterOpen}`> extends {
|
|
32
|
+
rest: infer Rest extends string;
|
|
33
|
+
} ? Trim<Rest> extends "" ? true : false : false : false : Trim<Expr> extends `${string} ${string}` ? false : Trim<Expr> extends `${string}'${string}` ? false : Trim<Expr> extends `${string}"${string}` ? false : Trim<Expr> extends `${string}(${string}` ? false : Trim<Expr> extends `${string})${string}` ? false : Trim<Expr> extends `${string}+${string}` ? false : Trim<Expr> extends `${string}-${string}` ? false : Trim<Expr> extends `${string}*${string}` ? false : Trim<Expr> extends `${string}/${string}` ? false : Trim<Expr> extends `${string}=${string}` ? false : Trim<Expr> extends `${string}<${string}` ? false : Trim<Expr> extends `${string}>${string}` ? false : Trim<Expr> extends `${string},${string}` ? false : Trim<Expr> extends `${string}::${string}` ? false : Trim<Expr> extends `${string}||${string}` ? false : CleanIdent<Expr> extends SqlReserved ? false : true;
|
|
34
|
+
export type IsSimpleFuncName<F extends string> = F extends "" ? false : F extends `${string} ${string}` ? false : HasSpecial<F> extends true ? false : true;
|
|
35
|
+
export type IsQuotedIdentifier<S extends string> = Trim<S> extends `"${string}"` ? true : false;
|
|
36
|
+
export type ExtractAlias<E extends string> = SplitLast<Trim<E>, " as "> extends [infer Expr extends string, infer Alias extends string] ? Alias extends "" ? IsImplicitQuotedAlias<Trim<E>> extends true ? Trim<E> extends `${infer IExpr} "${infer IAlias}"` ? {
|
|
37
|
+
expr: Trim<IExpr>;
|
|
38
|
+
alias: CleanIdent<IAlias>;
|
|
39
|
+
} : {
|
|
40
|
+
expr: Trim<E>;
|
|
41
|
+
alias: never;
|
|
42
|
+
} : IsBareImplicitAlias<Trim<E>> extends true ? BareImplicitAliasParts<Trim<E>> extends {
|
|
43
|
+
expr: infer BExpr extends string;
|
|
44
|
+
alias: infer BAlias extends string;
|
|
45
|
+
} ? {
|
|
46
|
+
expr: BExpr;
|
|
47
|
+
alias: CleanIdent<BAlias>;
|
|
48
|
+
} : {
|
|
49
|
+
expr: Trim<E>;
|
|
50
|
+
alias: never;
|
|
51
|
+
} : {
|
|
52
|
+
expr: Trim<E>;
|
|
53
|
+
alias: never;
|
|
54
|
+
} : IsQuotedIdentifier<Alias> extends true ? {
|
|
55
|
+
expr: Trim<Expr>;
|
|
56
|
+
alias: CleanIdent<Alias>;
|
|
57
|
+
} : Alias extends `${string})${string}` ? {
|
|
58
|
+
expr: Trim<E>;
|
|
59
|
+
alias: never;
|
|
60
|
+
} : {
|
|
61
|
+
expr: Trim<Expr>;
|
|
62
|
+
alias: CleanIdent<Alias>;
|
|
63
|
+
} : {
|
|
64
|
+
expr: Trim<E>;
|
|
65
|
+
alias: never;
|
|
66
|
+
};
|
|
67
|
+
export type AliasResultKey<S extends string> = Trim<S> extends `"${infer Q}"` ? Q : CleanIdent<S>;
|
|
68
|
+
export type ExtractAliasResult<E extends string> = SplitLast<Trim<E>, " as "> extends [infer Expr extends string, infer Alias extends string] ? Alias extends "" ? IsImplicitQuotedAlias<Trim<E>> extends true ? Trim<E> extends `${infer IExpr} "${infer IAlias}"` ? {
|
|
69
|
+
expr: Trim<IExpr>;
|
|
70
|
+
alias: IAlias;
|
|
71
|
+
} : {
|
|
72
|
+
expr: Trim<E>;
|
|
73
|
+
alias: never;
|
|
74
|
+
} : IsBareImplicitAlias<Trim<E>> extends true ? BareImplicitAliasParts<Trim<E>> extends {
|
|
75
|
+
expr: infer BExpr extends string;
|
|
76
|
+
alias: infer BAlias extends string;
|
|
77
|
+
} ? {
|
|
78
|
+
expr: BExpr;
|
|
79
|
+
alias: AliasResultKey<BAlias>;
|
|
80
|
+
} : {
|
|
81
|
+
expr: Trim<E>;
|
|
82
|
+
alias: never;
|
|
83
|
+
} : {
|
|
84
|
+
expr: Trim<E>;
|
|
85
|
+
alias: never;
|
|
86
|
+
} : IsQuotedIdentifier<Alias> extends true ? {
|
|
87
|
+
expr: Trim<Expr>;
|
|
88
|
+
alias: AliasResultKey<Alias>;
|
|
89
|
+
} : Alias extends `${string})${string}` ? {
|
|
90
|
+
expr: Trim<E>;
|
|
91
|
+
alias: never;
|
|
92
|
+
} : {
|
|
93
|
+
expr: Trim<Expr>;
|
|
94
|
+
alias: AliasResultKey<Alias>;
|
|
95
|
+
} : {
|
|
96
|
+
expr: Trim<E>;
|
|
97
|
+
alias: never;
|
|
98
|
+
};
|
|
99
|
+
export {};
|
|
100
|
+
//# sourceMappingURL=split.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"split.d.ts","sourceRoot":"","sources":["../../src/parsing/split.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"split.js","sourceRoot":"","sources":["../../src/parsing/split.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { SqlConstant, OperatorToken } from "./tokenize.js";
|
|
2
|
+
export type ReplaceAll<S extends string, From extends string, To extends string> = From extends "" ? S : ReplaceAllImpl<S, From, To>;
|
|
3
|
+
export type ReplaceAllImpl<S extends string, From extends string, To extends string, Steps extends any[] = []> = Steps["length"] extends 250 ? S : S extends `${infer Head}${From}${infer Tail}` ? `${Head}${To}${ReplaceAllImpl<Tail, From, To, [any, ...Steps]>}` : S;
|
|
4
|
+
export type CollapseSpaces<S extends string, Steps extends any[] = []> = Steps["length"] extends 800 ? S : S extends `${infer A} ${infer B}` ? CollapseSpaces<`${A} ${B}`, [any, ...Steps]> : S extends `${infer A} ${infer B}` ? CollapseSpaces<`${A} ${B}`, [any, ...Steps]> : S extends `${infer A} ${infer B}` ? CollapseSpaces<`${A} ${B}`, [any, ...Steps]> : S;
|
|
5
|
+
export type TrimLeft<S extends string> = S extends `${Whitespace}${infer R}` ? TrimLeft<R> : S;
|
|
6
|
+
export type TrimRight<S extends string> = S extends `${infer R}${Whitespace}` ? TrimRight<R> : S;
|
|
7
|
+
export type Trim<S extends string> = TrimLeft<TrimRight<S>>;
|
|
8
|
+
export type Whitespace = " " | "\n" | "\t" | "\r";
|
|
9
|
+
export type CleanIdent<S extends string> = Lowercase<Unquote<TrimPunctuation<Trim<S>>>>;
|
|
10
|
+
export type CleanExpr<S extends string> = Trim<S> extends infer T extends string ? T : S;
|
|
11
|
+
export type IsIdentifier<S extends string> = HasSpecial<S> extends true ? false : true;
|
|
12
|
+
export type IsRuntimeStringFragment<S extends string> = string extends S ? true : `${Lowercase<string>}` extends S ? true : string extends CleanIdent<S> ? true : false;
|
|
13
|
+
export type HasSpecial<S extends string> = S extends `${string} ${string}` ? true : S extends `${string}(${string}` ? true : S extends `${string})${string}` ? true : S extends `${string}+${string}` ? true : S extends `${string}-${string}` ? true : S extends `${string}*${string}` ? true : S extends `${string}/${string}` ? true : S extends `${string}=${string}` ? true : S extends `${string}<${string}` ? true : S extends `${string}>${string}` ? true : S extends `${string},${string}` ? true : S extends `${string}::${string}` ? true : S extends `${string}||${string}` ? true : false;
|
|
14
|
+
export type IsParamPlaceholder<S extends string> = S extends `$${string}` ? true : S extends `:${string}` ? true : S extends "?" ? true : false;
|
|
15
|
+
export type IsQualifiedRefCandidate<S extends string> = S extends `'${string}'` ? false : S extends `${number}.${number}` ? false : true;
|
|
16
|
+
export type IsSqlConstant<S extends string> = CleanIdent<S> extends SqlConstant ? true : false;
|
|
17
|
+
export type SqlConstantType<S extends string> = CleanIdent<S> extends "current_date" ? string : CleanIdent<S> extends "current_time" ? string : CleanIdent<S> extends "current_timestamp" ? string : CleanIdent<S> extends "localtime" ? string : CleanIdent<S> extends "localtimestamp" ? string : CleanIdent<S> extends "current_user" ? string : CleanIdent<S> extends "session_user" ? string : CleanIdent<S> extends "current_schema" ? string : string;
|
|
18
|
+
export type Unquote<S extends string> = S extends `"${infer R}"` ? R : S extends `\`${infer R}\`` ? R : S;
|
|
19
|
+
export type TrimPunctuation<S extends string> = S extends `${Punct}${infer R}` ? TrimPunctuation<R> : S extends `${infer R}${Punct}` ? TrimPunctuation<R> : S;
|
|
20
|
+
export type Punct = "," | ";" | "(" | ")";
|
|
21
|
+
export type Split<S extends string, Delim extends string, Acc extends string[] = [], Steps extends any[] = []> = Steps["length"] extends 2000 ? [...Acc, S] : S extends `${infer Head}${Delim}${infer Tail}` ? Split<Tail, Delim, [...Acc, Head], [any, ...Steps]> : [...Acc, S];
|
|
22
|
+
export type SplitLast<S extends string, Delim extends string> = S extends `${infer Head}${Delim}${infer Tail}` ? Tail extends `${string}${Delim}${string}` ? SplitLast<Tail, Delim> extends [infer H2 extends string, infer T2 extends string] ? [`${Head}${Delim}${H2}`, T2] : [Head, Tail] : [Head, Tail] : [S, ""];
|
|
23
|
+
export type SplitOnDot<S extends string> = S extends `${infer A}.${infer B}` ? [A, ...SplitOnDot<B>] : [S];
|
|
24
|
+
export type SplitOnDotClean<S extends string> = SplitOnDot<S> extends [infer A extends string, infer B extends string, infer C extends string] ? [CleanIdent<A>, CleanIdent<B>, CleanIdent<C>] : SplitOnDot<S> extends [infer A extends string, infer B extends string] ? [CleanIdent<A>, CleanIdent<B>] : SplitOnDot<S> extends [infer A extends string] ? [CleanIdent<A>] : [];
|
|
25
|
+
export type MapClean<Tokens extends string[], Acc extends string[] = []> = Tokens extends [infer H extends string, ...infer R extends string[]] ? MapClean<R, [...Acc, CleanIdent<H> extends "" ? "" : TrimPunctuation<Trim<H>>]> : Acc;
|
|
26
|
+
export type MapCleanLoose<Tokens extends string[], Acc extends string[] = []> = Tokens extends [infer H extends string, ...infer R extends string[]] ? MapCleanLoose<R, [...Acc, CleanLooseToken<H>]> : Acc;
|
|
27
|
+
export type CleanLooseToken<S extends string> = S extends OperatorToken ? S : CleanIdent<S> extends "" ? "" : CleanIdent<S>;
|
|
28
|
+
export type FilterEmpty<Tokens extends string[], Acc extends string[] = []> = Tokens extends [infer H extends string, ...infer R extends string[]] ? H extends "" ? FilterEmpty<R, Acc> : FilterEmpty<R, [...Acc, H]> : Acc;
|
|
29
|
+
//# sourceMappingURL=string-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-utils.d.ts","sourceRoot":"","sources":["../../src/parsing/string-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-utils.js","sourceRoot":"","sources":["../../src/parsing/string-utils.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { CollapseSpaces, FilterEmpty, MapClean, MapCleanLoose, ReplaceAll, Split } from "./string-utils.js";
|
|
2
|
+
import type { ExceedsLengthBudget, HasLineBreaks } from "./normalize.js";
|
|
3
|
+
export type Tokenize<N extends string> = FilterEmpty<MapClean<Split<N, " ">>>;
|
|
4
|
+
export type CommaSep = "__tsqlcomma__";
|
|
5
|
+
export type MarkTopLevelCommas<S extends string, Depth extends any[] = [], InString extends boolean = false, Acc extends string = "", Steps extends any[] = [], InDString extends boolean = false> = string extends S ? S : Steps["length"] extends 1500 ? `${Acc}${S}` : S extends `${infer C}${infer Rest}` ? InDString extends true ? MarkTopLevelCommas<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], C extends `"` ? false : true> : C extends "'" ? MarkTopLevelCommas<Rest, Depth, InString extends true ? false : true, `${Acc}${C}`, [any, ...Steps], InDString> : InString extends true ? MarkTopLevelCommas<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], InDString> : C extends `"` ? MarkTopLevelCommas<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], true> : C extends "(" ? MarkTopLevelCommas<Rest, [any, ...Depth], InString, `${Acc}${C}`, [any, ...Steps], InDString> : C extends ")" ? MarkTopLevelCommas<Rest, Depth extends [any, ...infer D] ? D : [], InString, `${Acc}${C}`, [any, ...Steps], InDString> : C extends "," ? Depth["length"] extends 0 ? MarkTopLevelCommas<Rest, Depth, InString, `${Acc} ${CommaSep} `, [any, ...Steps], InDString> : MarkTopLevelCommas<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], InDString> : MarkTopLevelCommas<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], InDString> : Acc;
|
|
6
|
+
export type TokenizeTables<N extends string> = HasLineBreaks<N> extends true ? Tokenize<N> : ExceedsLengthBudget<N> extends true ? Tokenize<N> : FilterEmpty<MapClean<RestoreDQuotedSpaces<Split<MaybeMarkDQuotedSpaces<MarkTopLevelCommas<N>>, " ">>>>;
|
|
7
|
+
export type TokenizeLoose<N extends string> = FilterEmpty<MapCleanLoose<RestoreDQuotedSpaces<Split<CollapseSpaces<RestoreWildcards<PadOperators<ProtectWildcards<MaybeMarkDQuotedSpaces<MaybeStripDQuotedPunct<N>>>>>>, " ">>>> extends infer Toks extends string[] ? N extends `${string}distinct ${string}` ? DropDistinctFrom<Toks> : Toks : [];
|
|
8
|
+
export type DropDistinctFrom<Tokens extends string[], Acc extends string[] = [], Prev extends string = "", Steps extends any[] = []> = Steps["length"] extends 400 ? [...Acc, ...Tokens] : Tokens extends [infer H extends string, ...infer R extends string[]] ? H extends "from" ? Prev extends "distinct" ? DropDistinctFrom<R, Acc, "from", [any, ...Steps]> : DropDistinctFrom<R, [...Acc, H], H, [any, ...Steps]> : DropDistinctFrom<R, [...Acc, H], H, [any, ...Steps]> : Acc;
|
|
9
|
+
export type DQuotedPunct = "(" | ")" | "," | "=" | "<" | ">" | "+" | "-" | "*" | "/" | "|" | "&" | "!" | "?";
|
|
10
|
+
export type MaybeStripDQuotedPunct<S extends string> = S extends `${string}"${string}` ? StripDQuotedPunct<S> : S;
|
|
11
|
+
export type StripDQuotedPunct<S extends string, InDQ extends boolean = false, Acc extends string = "", Steps extends any[] = []> = string extends S ? S : Steps["length"] extends 1500 ? `${Acc}${S}` : S extends `${infer C}${infer Rest}` ? C extends `"` ? StripDQuotedPunct<Rest, InDQ extends true ? false : true, `${Acc}${C}`, [any, ...Steps]> : InDQ extends true ? C extends DQuotedPunct ? StripDQuotedPunct<Rest, InDQ, Acc, [any, ...Steps]> : StripDQuotedPunct<Rest, InDQ, `${Acc}${C}`, [any, ...Steps]> : StripDQuotedPunct<Rest, InDQ, `${Acc}${C}`, [any, ...Steps]> : Acc;
|
|
12
|
+
export type DQuoteSpaceSentinel = "__tsqldqsp__";
|
|
13
|
+
export type MaybeMarkDQuotedSpaces<S extends string> = S extends `${string}"${string}` ? MarkDQuotedSpaces<S> : S;
|
|
14
|
+
export type MarkDQuotedSpaces<S extends string, InDQ extends boolean = false, Acc extends string = "", Steps extends any[] = []> = string extends S ? S : Steps["length"] extends 1500 ? `${Acc}${S}` : S extends `${infer C}${infer Rest}` ? C extends `"` ? MarkDQuotedSpaces<Rest, InDQ extends true ? false : true, `${Acc}${C}`, [any, ...Steps]> : InDQ extends true ? C extends " " ? MarkDQuotedSpaces<Rest, InDQ, `${Acc}${DQuoteSpaceSentinel}`, [any, ...Steps]> : MarkDQuotedSpaces<Rest, InDQ, `${Acc}${C}`, [any, ...Steps]> : MarkDQuotedSpaces<Rest, InDQ, `${Acc}${C}`, [any, ...Steps]> : Acc;
|
|
15
|
+
export type RestoreDQuotedSpaces<Tokens extends string[], Acc extends string[] = []> = Tokens extends [infer H extends string, ...infer R extends string[]] ? RestoreDQuotedSpaces<R, [...Acc, ReplaceAll<H, DQuoteSpaceSentinel, " ">]> : Acc;
|
|
16
|
+
export type ValidationScanView<S extends string> = S extends `${string}'${string}` ? MaybeMarkDQuotedSpaces<BlankSingleQuotedLiterals<S>> : MaybeMarkDQuotedSpaces<S>;
|
|
17
|
+
export type BlankSingleQuotedLiterals<S extends string, InString extends boolean = false, Acc extends string = "", Steps extends any[] = []> = string extends S ? S : Steps["length"] extends 600 ? `${Acc}${S}` : InString extends true ? S extends `${infer C}${infer R}` ? C extends "'" ? BlankSingleQuotedLiterals<R, false, `${Acc}'`, [any, ...Steps]> : BlankSingleQuotedLiterals<R, true, Acc, [any, ...Steps]> : `${Acc}'` : S extends `${infer C}${infer R}` ? C extends "'" ? BlankSingleQuotedLiterals<R, true, `${Acc}'`, [any, ...Steps]> : BlankSingleQuotedLiterals<R, false, `${Acc}${C}`, [any, ...Steps]> : Acc;
|
|
18
|
+
export type OperatorToken = "(" | ")" | "," | "=" | "<" | ">" | "+" | "-" | "*" | "/" | "|" | "&" | "!" | "?" | "~" | "[" | "]";
|
|
19
|
+
export type PadOperator<S extends string, Op extends string> = ReplaceAll<S, Op, ` ${Op} `>;
|
|
20
|
+
export type ProtectWildcards<S extends string> = ReplaceAll<S, ".*", ".__wildcard__">;
|
|
21
|
+
export type RestoreWildcards<S extends string> = ReplaceAll<S, ".__wildcard__", ".*">;
|
|
22
|
+
export type PadOperators<S extends string> = PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<S, "(">, ")">, ",">, "=">, "<">, ">">, "+">, "-">, "*">, "/">, "|">, "&">, "!">, "[">, "]">, "?">;
|
|
23
|
+
export type SqlKeyword = "as" | "on" | "where" | "join" | "left" | "right" | "inner" | "outer" | "full" | "cross" | "group" | "order" | "by" | "having" | "limit" | "offset" | "union" | "select" | "from" | "update" | "insert" | "into" | "values" | "set" | "delete" | "returning" | "distinct";
|
|
24
|
+
export type SqlReserved = SqlKeyword | "and" | "or" | "not" | "is" | "null" | "true" | "false" | "like" | "ilike" | "in" | "between" | "exists" | "similar" | "to" | "escape" | "case" | "when" | "then" | "else" | "end" | "array" | "asc" | "desc" | "all" | "interval" | "nulls" | "first" | "last" | "over" | "filter" | "partition" | "window" | "within" | "range" | "rows" | "groups" | "preceding" | "following" | "unbounded";
|
|
25
|
+
export type SqlConstant = "current_date" | "current_time" | "current_timestamp" | "localtime" | "localtimestamp" | "current_user" | "session_user" | "current_schema";
|
|
26
|
+
export type CanPrecedeColumn<Token extends string> = Token extends "" ? true : Token extends OperatorToken ? (Token extends ")" ? false : true) : Token extends "select" | "where" | "on" | "and" | "or" | "by" | "having" | "set" | "values" | "returning" | "distinct" | "case" | "when" | "then" | "else" | "not" | "is" | "in" | "between" | "like" | "ilike" | "to" | "escape" ? true : false;
|
|
27
|
+
//# sourceMappingURL=tokenize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenize.d.ts","sourceRoot":"","sources":["../../src/parsing/tokenize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenize.js","sourceRoot":"","sources":["../../src/parsing/tokenize.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from "./parsing/string-utils.js";
|
|
2
|
+
export * from "./parsing/pg-literals.js";
|
|
3
|
+
export * from "./parsing/normalize.js";
|
|
4
|
+
export * from "./parsing/split.js";
|
|
5
|
+
export * from "./parsing/extract.js";
|
|
6
|
+
export * from "./parsing/tokenize.js";
|
|
7
|
+
//# sourceMappingURL=parsing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsing.d.ts","sourceRoot":"","sources":["../src/parsing.ts"],"names":[],"mappings":"AAEA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
|
package/dist/parsing.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Barrel for the type-level SQL parser. Real declarations live in ./parsing/*.
|
|
2
|
+
// Importers keep using `from "./parsing.js"`; this file freezes that path.
|
|
3
|
+
export * from "./parsing/string-utils.js";
|
|
4
|
+
export * from "./parsing/pg-literals.js";
|
|
5
|
+
export * from "./parsing/normalize.js";
|
|
6
|
+
export * from "./parsing/split.js";
|
|
7
|
+
export * from "./parsing/extract.js";
|
|
8
|
+
export * from "./parsing/tokenize.js";
|
|
9
|
+
//# sourceMappingURL=parsing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsing.js","sourceRoot":"","sources":["../src/parsing.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,2EAA2E;AAC3E,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { DatabaseSchema, ColumnExists, TableExists } from "./schema.js";
|
|
2
|
+
import type { CleanExpr, CleanIdent, ExtractBefore, HasSpecial, NormalizeQuery, SplitOnDotClean, SplitTopLevel, TokenizeLoose, Trim } from "./parsing.js";
|
|
3
|
+
import type { QualifiedColumnRefs, ResolveAlias, StripDoubleQuotes, TableKeysByName } from "./columns.js";
|
|
4
|
+
import type { AliasesInQuery, TableKeyValid, TablesInQuery } from "./tables.js";
|
|
5
|
+
import type { AllTrue } from "./utils.js";
|
|
6
|
+
export type PartialResolvePrefix<Name extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = [
|
|
7
|
+
ResolveAlias<CleanIdent<Name>, Aliases>
|
|
8
|
+
] extends [never] ? [TableKeysByName<CleanIdent<Name>, Tables>] extends [never] ? TableExists<S, S["defaultSchema"], CleanIdent<Name>> extends true ? `${S["defaultSchema"]}.${CleanIdent<Name>}` : never : TableKeysByName<CleanIdent<Name>, Tables> : ResolveAlias<CleanIdent<Name>, Aliases>;
|
|
9
|
+
export type ColumnRefValidPartialWith<ColRef extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = ColRef extends `${string}.*` ? true : SplitOnDotClean<StripDoubleQuotes<CleanExpr<ColRef>>> extends [infer A extends string, infer B extends string, infer C extends string] ? TableExists<S, A, B> extends true ? ColumnExists<`${A}.${B}`, C, S> : true : SplitOnDotClean<StripDoubleQuotes<CleanExpr<ColRef>>> extends [infer A extends string, infer B extends string] ? PartialResolvePrefix<A, Tables, Aliases, S> extends infer TK ? [TK] extends [never] ? true : TK extends string ? ColumnExists<TK, B, S> : true : true : true;
|
|
10
|
+
export type QualifiedColumnRefsValidPartialFor<S extends DatabaseSchema, Tables extends string, Aliases extends string, LooseTokens extends string[]> = QualifiedColumnRefs<LooseTokens, S, Tables, Aliases> extends infer Cols ? AllTrue<Cols extends string ? ColumnRefValidPartialWith<Cols, Tables, Aliases, S> : true> : true;
|
|
11
|
+
export type AllPartTablesValid<Tables extends string, S extends DatabaseSchema> = AllTrue<Tables extends string ? TableKeyValid<Tables, S> : true>;
|
|
12
|
+
export type ValidateTableSourcePart<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? AllPartTablesValid<Tables, S> extends true ? TokenizeLoose<N> extends infer Toks extends string[] ? QualifiedColumnRefsValidPartialFor<S, Tables, Aliases, Toks> : true : false : true : true;
|
|
13
|
+
export type EnsureFromLed<N extends string> = N extends `from ${string}` ? N : `from ${N}`;
|
|
14
|
+
export type ValidateFromPart<Part extends string, S extends DatabaseSchema> = string extends Part ? false : NormalizeQuery<Part> extends infer N extends string ? ValidateTableSourcePart<EnsureFromLed<N>, S> : false;
|
|
15
|
+
export type ValidateJoinPart<Part extends string, S extends DatabaseSchema> = string extends Part ? false : NormalizeQuery<Part> extends infer N extends string ? ValidateTableSourcePart<N, S> : false;
|
|
16
|
+
export type ValidateClausePart<Part extends string, S extends DatabaseSchema> = string extends Part ? false : NormalizeQuery<Part> extends infer N extends string ? TokenizeLoose<N> extends infer Toks extends string[] ? QualifiedColumnRefsValidPartialFor<S, never, never, Toks> : true : false;
|
|
17
|
+
export type ValidateClausePartScoped<Part extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = string extends Part ? false : NormalizeQuery<Part> extends infer N extends string ? TokenizeLoose<N> extends infer Toks extends string[] ? QualifiedColumnRefsValidPartialFor<S, Tables, Aliases, Toks> : true : false;
|
|
18
|
+
type RefHasSpecial<S extends string> = HasSpecial<S> extends true ? true : S extends `${string}[${string}` ? true : S extends `${string}]${string}` ? true : S extends `${string}"${string}` ? true : S extends `${string}'${string}` ? true : S extends `${string}:${string}` ? true : false;
|
|
19
|
+
type IsPlainQualifiedRef<S extends string> = S extends `${infer A}.${infer B}` ? RefHasSpecial<A> extends true ? false : RefHasSpecial<B> extends true ? false : B extends `${string}.${string}` ? false : true : false;
|
|
20
|
+
type SelectItemRef<Item extends string> = ExtractBefore<Trim<Item>, " ">;
|
|
21
|
+
type SelectItemValid<Item extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = SelectItemRef<Item> extends infer Ref extends string ? IsPlainQualifiedRef<Ref> extends true ? ColumnRefValidPartialWith<Ref, Tables, Aliases, S> : true : true;
|
|
22
|
+
type SelectListValidScoped<List extends readonly string[], Tables extends string, Aliases extends string, S extends DatabaseSchema, Steps extends any[] = []> = Steps["length"] extends 200 ? true : List extends readonly [infer H extends string, ...infer R extends readonly string[]] ? SelectItemValid<H, Tables, Aliases, S> extends false ? false : SelectListValidScoped<R, Tables, Aliases, S, [any, ...Steps]> : true;
|
|
23
|
+
export type ValidateSelectIdentifiersScoped<Part extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = string extends Part ? false : SplitTopLevel<Part> extends infer Items extends readonly string[] ? SelectListValidScoped<Items, Tables, Aliases, S> : true;
|
|
24
|
+
export type ValidateSelectPart<Part extends string, S extends DatabaseSchema> = ValidateClausePart<Part, S>;
|
|
25
|
+
export type ValidateWherePart<Part extends string, S extends DatabaseSchema> = ValidateClausePart<Part, S>;
|
|
26
|
+
export type ValidateHavingPart<Part extends string, S extends DatabaseSchema> = ValidateClausePart<Part, S>;
|
|
27
|
+
export type ValidateGroupByPart<Part extends string, S extends DatabaseSchema> = ValidateClausePart<Part, S>;
|
|
28
|
+
export type ValidateOrderByPart<Part extends string, S extends DatabaseSchema> = ValidateClausePart<Part, S>;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=partial.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partial.d.ts","sourceRoot":"","sources":["../src/partial.ts"],"names":[],"mappings":"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"}
|
package/dist/partial.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Partial (fragment) query validation for the query builder. Each clause of a
|
|
2
|
+
// query gets its own validation entry point. Clause/SELECT validation is now
|
|
3
|
+
// scope-aware: the builder derives an alias→table map from the FROM+JOIN
|
|
4
|
+
// fragments once and passes it in (Tables/Aliases) so a qualified reference is
|
|
5
|
+
// checked against the whole query's scope, not just one fragment in isolation.
|
|
6
|
+
// Refs whose alias/table is still out of that scope, or that aren't plain
|
|
7
|
+
// `alias.col` identifiers, are SKIPPED rather than failed. FROM/JOIN fragments
|
|
8
|
+
// remain self-contained (validated against the schema directly).
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=partial.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partial.js","sourceRoot":"","sources":["../src/partial.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,6EAA6E;AAC7E,yEAAyE;AACzE,+EAA+E;AAC/E,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAC/E,iEAAiE"}
|