rawsql-ts 0.21.1 → 0.22.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.
@@ -10,6 +10,55 @@ export type SssqlBranchKind = "scalar" | "exists" | "not-exists" | "expression";
10
10
  export interface SssqlTransformResult {
11
11
  query: SelectQuery;
12
12
  }
13
+ export type SssqlRewriteEditKind = "insert" | "replace" | "delete";
14
+ export interface SssqlRewriteEdit {
15
+ start: number;
16
+ end: number;
17
+ before: string;
18
+ after: string;
19
+ kind: SssqlRewriteEditKind;
20
+ reason?: string;
21
+ target?: SssqlRewriteEditTarget;
22
+ }
23
+ export interface SssqlRewriteEditTarget {
24
+ branchKind: SssqlBranchKind;
25
+ parameterName: string;
26
+ column?: string;
27
+ }
28
+ export type SssqlRewriteChangedRegionKind = "target-branch" | "where-keyword" | "boolean-operator" | "parentheses" | "formatter-rewrite" | "comment" | "unknown";
29
+ export interface SssqlRewriteChangedRegion {
30
+ kind: SssqlRewriteChangedRegionKind;
31
+ start: number;
32
+ end: number;
33
+ message?: string;
34
+ }
35
+ export interface SssqlRewritePlanWarning {
36
+ code: string;
37
+ message: string;
38
+ detail?: unknown;
39
+ }
40
+ export interface SssqlRewritePlanError {
41
+ code: string;
42
+ message: string;
43
+ detail?: unknown;
44
+ }
45
+ export interface SssqlRewriteSafety {
46
+ tokenCountBefore: number;
47
+ tokenCountAfter: number;
48
+ tokenSequencePreserved: boolean;
49
+ commentsPreserved: boolean;
50
+ changedOnlyTargetBranches: boolean;
51
+ changedRegions: readonly SssqlRewriteChangedRegion[];
52
+ }
53
+ export interface SssqlRewritePlan {
54
+ ok: boolean;
55
+ requiresFullReformat: boolean;
56
+ edits: readonly SssqlRewriteEdit[];
57
+ sql?: string;
58
+ safety: SssqlRewriteSafety;
59
+ warnings: readonly SssqlRewritePlanWarning[];
60
+ errors: readonly SssqlRewritePlanError[];
61
+ }
13
62
  export interface SssqlBranchInfo {
14
63
  parameterName: string;
15
64
  kind: SssqlBranchKind;
@@ -47,12 +96,28 @@ export declare class SSSQLFilterBuilder {
47
96
  private readonly finder;
48
97
  constructor(tableColumnResolver?: ((tableName: string) => string[]) | undefined);
49
98
  list(query: SelectQuery | string): SssqlBranchInfo[];
99
+ planScaffold(query: SelectQuery | string, filters: SSSQLFilterInput): SssqlRewritePlan;
100
+ dryRunScaffold(query: SelectQuery | string, filters: SSSQLFilterInput): SssqlRewritePlan;
101
+ planScaffoldBranch(query: SelectQuery | string, spec: SssqlScaffoldSpec): SssqlRewritePlan;
102
+ dryRunScaffoldBranch(query: SelectQuery | string, spec: SssqlScaffoldSpec): SssqlRewritePlan;
103
+ planRefresh(query: SelectQuery | string, filters: SSSQLFilterInput): SssqlRewritePlan;
104
+ dryRunRefresh(query: SelectQuery | string, filters: SSSQLFilterInput): SssqlRewritePlan;
105
+ planRemove(query: SelectQuery | string, spec: SssqlRemoveSpec): SssqlRewritePlan;
106
+ dryRunRemove(query: SelectQuery | string, spec: SssqlRemoveSpec): SssqlRewritePlan;
107
+ planRemoveAll(query: SelectQuery | string): SssqlRewritePlan;
108
+ dryRunRemoveAll(query: SelectQuery | string): SssqlRewritePlan;
50
109
  scaffold(query: SelectQuery | string, filters: SSSQLFilterInput): SelectQuery;
51
110
  scaffoldBranch(query: SelectQuery | string, spec: SssqlScaffoldSpec): SelectQuery;
52
111
  refresh(query: SelectQuery | string, filters: SSSQLFilterInput): SelectQuery;
53
112
  remove(query: SelectQuery | string, spec: SssqlRemoveSpec): SelectQuery;
54
113
  removeAll(query: SelectQuery | string): SelectQuery;
55
114
  private parseQuery;
115
+ private planScalarInsert;
116
+ private planExistsInsert;
117
+ private buildMinimalInsertPlan;
118
+ private planBranchRemoval;
119
+ private buildPlanFromEdits;
120
+ private planRewrite;
56
121
  private findMatchingBranchInfos;
57
122
  private scaffoldScalarBranch;
58
123
  private scaffoldExistsBranch;