rawsql-ts 0.11.35-beta → 0.11.37-beta
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/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +28 -27
- package/dist/esm/index.min.js.map +3 -3
- package/dist/esm/src/index.d.ts +1 -0
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/models/BinarySelectQuery.d.ts +2 -0
- package/dist/esm/src/models/BinarySelectQuery.js +2 -0
- package/dist/esm/src/models/BinarySelectQuery.js.map +1 -1
- package/dist/esm/src/models/Clause.d.ts +2 -0
- package/dist/esm/src/models/Clause.js +2 -0
- package/dist/esm/src/models/Clause.js.map +1 -1
- package/dist/esm/src/models/SelectQuery.d.ts +2 -0
- package/dist/esm/src/models/SelectQuery.js.map +1 -1
- package/dist/esm/src/models/SimpleSelectQuery.d.ts +2 -0
- package/dist/esm/src/models/SimpleSelectQuery.js +2 -0
- package/dist/esm/src/models/SimpleSelectQuery.js.map +1 -1
- package/dist/esm/src/models/ValuesQuery.d.ts +2 -0
- package/dist/esm/src/models/ValuesQuery.js +2 -0
- package/dist/esm/src/models/ValuesQuery.js.map +1 -1
- package/dist/esm/src/parsers/CommonTableParser.d.ts +1 -0
- package/dist/esm/src/parsers/CommonTableParser.js +9 -2
- package/dist/esm/src/parsers/CommonTableParser.js.map +1 -1
- package/dist/esm/src/parsers/SelectClauseParser.js +7 -1
- package/dist/esm/src/parsers/SelectClauseParser.js.map +1 -1
- package/dist/esm/src/parsers/SelectQueryParser.d.ts +6 -0
- package/dist/esm/src/parsers/SelectQueryParser.js +51 -12
- package/dist/esm/src/parsers/SelectQueryParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +2 -1
- package/dist/esm/src/parsers/SqlPrintTokenParser.js +73 -4
- package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/esm/src/parsers/WithClauseParser.d.ts +1 -0
- package/dist/esm/src/parsers/WithClauseParser.js +27 -3
- package/dist/esm/src/parsers/WithClauseParser.js.map +1 -1
- package/dist/esm/src/transformers/CTEQueryDecomposer.d.ts +69 -0
- package/dist/esm/src/transformers/CTEQueryDecomposer.js +123 -0
- package/dist/esm/src/transformers/CTEQueryDecomposer.js.map +1 -1
- package/dist/esm/src/transformers/SqlFormatter.d.ts +34 -16
- package/dist/esm/src/transformers/SqlFormatter.js +1 -1
- package/dist/esm/src/transformers/SqlFormatter.js.map +1 -1
- package/dist/esm/src/transformers/SqlPrinter.d.ts +25 -20
- package/dist/esm/src/transformers/SqlPrinter.js +51 -2
- package/dist/esm/src/transformers/SqlPrinter.js.map +1 -1
- package/dist/esm/src/utils/CommentEditor.d.ts +11 -0
- package/dist/esm/src/utils/CommentEditor.js +141 -29
- package/dist/esm/src/utils/CommentEditor.js.map +1 -1
- package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/index.min.js +31 -30
- package/dist/index.min.js.map +3 -3
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/BinarySelectQuery.d.ts +2 -0
- package/dist/src/models/BinarySelectQuery.js +2 -0
- package/dist/src/models/BinarySelectQuery.js.map +1 -1
- package/dist/src/models/Clause.d.ts +2 -0
- package/dist/src/models/Clause.js +2 -0
- package/dist/src/models/Clause.js.map +1 -1
- package/dist/src/models/SelectQuery.d.ts +2 -0
- package/dist/src/models/SelectQuery.js.map +1 -1
- package/dist/src/models/SimpleSelectQuery.d.ts +2 -0
- package/dist/src/models/SimpleSelectQuery.js +2 -0
- package/dist/src/models/SimpleSelectQuery.js.map +1 -1
- package/dist/src/models/ValuesQuery.d.ts +2 -0
- package/dist/src/models/ValuesQuery.js +2 -0
- package/dist/src/models/ValuesQuery.js.map +1 -1
- package/dist/src/parsers/CommonTableParser.d.ts +1 -0
- package/dist/src/parsers/CommonTableParser.js +9 -2
- package/dist/src/parsers/CommonTableParser.js.map +1 -1
- package/dist/src/parsers/SelectClauseParser.js +7 -1
- package/dist/src/parsers/SelectClauseParser.js.map +1 -1
- package/dist/src/parsers/SelectQueryParser.d.ts +6 -0
- package/dist/src/parsers/SelectQueryParser.js +51 -12
- package/dist/src/parsers/SelectQueryParser.js.map +1 -1
- package/dist/src/parsers/SqlPrintTokenParser.d.ts +2 -1
- package/dist/src/parsers/SqlPrintTokenParser.js +73 -4
- package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/src/parsers/WithClauseParser.d.ts +1 -0
- package/dist/src/parsers/WithClauseParser.js +27 -3
- package/dist/src/parsers/WithClauseParser.js.map +1 -1
- package/dist/src/transformers/CTEQueryDecomposer.d.ts +69 -0
- package/dist/src/transformers/CTEQueryDecomposer.js +123 -0
- package/dist/src/transformers/CTEQueryDecomposer.js.map +1 -1
- package/dist/src/transformers/SqlFormatter.d.ts +34 -16
- package/dist/src/transformers/SqlFormatter.js +9 -1
- package/dist/src/transformers/SqlFormatter.js.map +1 -1
- package/dist/src/transformers/SqlPrinter.d.ts +25 -20
- package/dist/src/transformers/SqlPrinter.js +51 -2
- package/dist/src/transformers/SqlPrinter.js.map +1 -1
- package/dist/src/utils/CommentEditor.d.ts +11 -0
- package/dist/src/utils/CommentEditor.js +141 -29
- package/dist/src/utils/CommentEditor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
@@ -9,43 +9,89 @@ const SqlComponent_1 = require("../models/SqlComponent");
|
|
9
9
|
class CommentEditor {
|
10
10
|
/**
|
11
11
|
* Add a comment to a SQL component
|
12
|
+
* For SelectQuery components, adds to headerComments for query-level comments
|
12
13
|
* @param component The SQL component to add comment to
|
13
14
|
* @param comment The comment text to add
|
14
15
|
*/
|
15
16
|
static addComment(component, comment) {
|
16
|
-
if
|
17
|
-
|
17
|
+
// Check if this is a SelectQuery component - add to headerComments for query-level comments
|
18
|
+
if (this.isSelectQuery(component)) {
|
19
|
+
const selectQuery = component;
|
20
|
+
if (!selectQuery.headerComments) {
|
21
|
+
selectQuery.headerComments = [];
|
22
|
+
}
|
23
|
+
selectQuery.headerComments.push(comment);
|
24
|
+
}
|
25
|
+
else {
|
26
|
+
// For other components, add to regular comments
|
27
|
+
if (!component.comments) {
|
28
|
+
component.comments = [];
|
29
|
+
}
|
30
|
+
component.comments.push(comment);
|
18
31
|
}
|
19
|
-
|
32
|
+
}
|
33
|
+
/**
|
34
|
+
* Check if a component implements SelectQuery interface
|
35
|
+
* Uses discriminator property for robust type detection
|
36
|
+
* @param component The component to check
|
37
|
+
* @returns true if the component is a SelectQuery
|
38
|
+
*/
|
39
|
+
static isSelectQuery(component) {
|
40
|
+
// Use discriminator property for robust type detection
|
41
|
+
return '__selectQueryType' in component &&
|
42
|
+
component.__selectQueryType === 'SelectQuery';
|
20
43
|
}
|
21
44
|
/**
|
22
45
|
* Edit an existing comment by index
|
46
|
+
* For SelectQuery components, edits headerComments
|
23
47
|
* @param component The SQL component containing the comment
|
24
48
|
* @param index The index of the comment to edit (0-based)
|
25
49
|
* @param newComment The new comment text
|
26
50
|
* @throws Error if index is invalid
|
27
51
|
*/
|
28
52
|
static editComment(component, index, newComment) {
|
29
|
-
var _a;
|
30
|
-
if (
|
31
|
-
|
53
|
+
var _a, _b;
|
54
|
+
if (this.isSelectQuery(component)) {
|
55
|
+
const selectQuery = component;
|
56
|
+
if (!selectQuery.headerComments || index < 0 || index >= selectQuery.headerComments.length) {
|
57
|
+
throw new Error(`Invalid comment index: ${index}. Component has ${((_a = selectQuery.headerComments) === null || _a === void 0 ? void 0 : _a.length) || 0} comments.`);
|
58
|
+
}
|
59
|
+
selectQuery.headerComments[index] = newComment;
|
60
|
+
}
|
61
|
+
else {
|
62
|
+
if (!component.comments || index < 0 || index >= component.comments.length) {
|
63
|
+
throw new Error(`Invalid comment index: ${index}. Component has ${((_b = component.comments) === null || _b === void 0 ? void 0 : _b.length) || 0} comments.`);
|
64
|
+
}
|
65
|
+
component.comments[index] = newComment;
|
32
66
|
}
|
33
|
-
component.comments[index] = newComment;
|
34
67
|
}
|
35
68
|
/**
|
36
69
|
* Delete a comment by index
|
70
|
+
* For SelectQuery components, deletes from headerComments
|
37
71
|
* @param component The SQL component containing the comment
|
38
72
|
* @param index The index of the comment to delete (0-based)
|
39
73
|
* @throws Error if index is invalid
|
40
74
|
*/
|
41
75
|
static deleteComment(component, index) {
|
42
|
-
var _a;
|
43
|
-
if (
|
44
|
-
|
76
|
+
var _a, _b;
|
77
|
+
if (this.isSelectQuery(component)) {
|
78
|
+
const selectQuery = component;
|
79
|
+
if (!selectQuery.headerComments || index < 0 || index >= selectQuery.headerComments.length) {
|
80
|
+
throw new Error(`Invalid comment index: ${index}. Component has ${((_a = selectQuery.headerComments) === null || _a === void 0 ? void 0 : _a.length) || 0} comments.`);
|
81
|
+
}
|
82
|
+
selectQuery.headerComments.splice(index, 1);
|
83
|
+
if (selectQuery.headerComments.length === 0) {
|
84
|
+
selectQuery.headerComments = null;
|
85
|
+
}
|
45
86
|
}
|
46
|
-
|
47
|
-
|
48
|
-
|
87
|
+
else {
|
88
|
+
if (!component.comments || index < 0 || index >= component.comments.length) {
|
89
|
+
throw new Error(`Invalid comment index: ${index}. Component has ${((_b = component.comments) === null || _b === void 0 ? void 0 : _b.length) || 0} comments.`);
|
90
|
+
}
|
91
|
+
component.comments.splice(index, 1);
|
92
|
+
if (component.comments.length === 0) {
|
93
|
+
component.comments = null;
|
94
|
+
}
|
49
95
|
}
|
50
96
|
}
|
51
97
|
/**
|
@@ -53,14 +99,25 @@ class CommentEditor {
|
|
53
99
|
* @param component The SQL component to clear comments from
|
54
100
|
*/
|
55
101
|
static deleteAllComments(component) {
|
56
|
-
component
|
102
|
+
if (this.isSelectQuery(component)) {
|
103
|
+
const selectQuery = component;
|
104
|
+
selectQuery.headerComments = null;
|
105
|
+
}
|
106
|
+
else {
|
107
|
+
component.comments = null;
|
108
|
+
}
|
57
109
|
}
|
58
110
|
/**
|
59
111
|
* Get all comments from a component
|
112
|
+
* For SelectQuery components, returns headerComments instead of regular comments
|
60
113
|
* @param component The SQL component to get comments from
|
61
114
|
* @returns Array of comment strings (empty array if no comments)
|
62
115
|
*/
|
63
116
|
static getComments(component) {
|
117
|
+
if (this.isSelectQuery(component)) {
|
118
|
+
const selectQuery = component;
|
119
|
+
return selectQuery.headerComments || [];
|
120
|
+
}
|
64
121
|
return component.comments || [];
|
65
122
|
}
|
66
123
|
/**
|
@@ -75,10 +132,25 @@ class CommentEditor {
|
|
75
132
|
const searchTerm = caseSensitive ? searchText : searchText.toLowerCase();
|
76
133
|
const traverse = (component) => {
|
77
134
|
if (component && component instanceof SqlComponent_1.SqlComponent) {
|
135
|
+
let hasMatchingComment = false;
|
136
|
+
// Check regular comments
|
78
137
|
if (component.comments && component.comments.some(c => {
|
79
138
|
const commentText = caseSensitive ? c : c.toLowerCase();
|
80
139
|
return commentText.includes(searchTerm);
|
81
140
|
})) {
|
141
|
+
hasMatchingComment = true;
|
142
|
+
}
|
143
|
+
// Check headerComments for SelectQuery components
|
144
|
+
if (this.isSelectQuery(component)) {
|
145
|
+
const selectQuery = component;
|
146
|
+
if (selectQuery.headerComments && selectQuery.headerComments.some(c => {
|
147
|
+
const commentText = caseSensitive ? c : c.toLowerCase();
|
148
|
+
return commentText.includes(searchTerm);
|
149
|
+
})) {
|
150
|
+
hasMatchingComment = true;
|
151
|
+
}
|
152
|
+
}
|
153
|
+
if (hasMatchingComment) {
|
82
154
|
results.push(component);
|
83
155
|
}
|
84
156
|
}
|
@@ -108,15 +180,34 @@ class CommentEditor {
|
|
108
180
|
static replaceInComments(root, searchText, replaceText, caseSensitive = false) {
|
109
181
|
let replacementCount = 0;
|
110
182
|
const traverse = (component) => {
|
111
|
-
if (component && component instanceof SqlComponent_1.SqlComponent
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
183
|
+
if (component && component instanceof SqlComponent_1.SqlComponent) {
|
184
|
+
// Handle regular comments
|
185
|
+
if (component.comments) {
|
186
|
+
for (let i = 0; i < component.comments.length; i++) {
|
187
|
+
const originalComment = component.comments[i];
|
188
|
+
const flags = caseSensitive ? 'g' : 'gi';
|
189
|
+
const regex = new RegExp(searchText.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), flags);
|
190
|
+
const newComment = originalComment.replace(regex, replaceText);
|
191
|
+
if (newComment !== originalComment) {
|
192
|
+
component.comments[i] = newComment;
|
193
|
+
replacementCount++;
|
194
|
+
}
|
195
|
+
}
|
196
|
+
}
|
197
|
+
// Handle headerComments for SelectQuery components
|
198
|
+
if (this.isSelectQuery(component)) {
|
199
|
+
const selectQuery = component;
|
200
|
+
if (selectQuery.headerComments) {
|
201
|
+
for (let i = 0; i < selectQuery.headerComments.length; i++) {
|
202
|
+
const originalComment = selectQuery.headerComments[i];
|
203
|
+
const flags = caseSensitive ? 'g' : 'gi';
|
204
|
+
const regex = new RegExp(searchText.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), flags);
|
205
|
+
const newComment = originalComment.replace(regex, replaceText);
|
206
|
+
if (newComment !== originalComment) {
|
207
|
+
selectQuery.headerComments[i] = newComment;
|
208
|
+
replacementCount++;
|
209
|
+
}
|
210
|
+
}
|
120
211
|
}
|
121
212
|
}
|
122
213
|
}
|
@@ -143,8 +234,17 @@ class CommentEditor {
|
|
143
234
|
static countComments(root) {
|
144
235
|
let count = 0;
|
145
236
|
const traverse = (component) => {
|
146
|
-
if (component && component instanceof SqlComponent_1.SqlComponent
|
147
|
-
|
237
|
+
if (component && component instanceof SqlComponent_1.SqlComponent) {
|
238
|
+
if (component.comments) {
|
239
|
+
count += component.comments.length;
|
240
|
+
}
|
241
|
+
// Count headerComments for SelectQuery components
|
242
|
+
if (this.isSelectQuery(component)) {
|
243
|
+
const selectQuery = component;
|
244
|
+
if (selectQuery.headerComments) {
|
245
|
+
count += selectQuery.headerComments.length;
|
246
|
+
}
|
247
|
+
}
|
148
248
|
}
|
149
249
|
// Traverse all properties recursively
|
150
250
|
for (const key in component) {
|
@@ -169,10 +269,22 @@ class CommentEditor {
|
|
169
269
|
static getAllComments(root) {
|
170
270
|
const results = [];
|
171
271
|
const traverse = (component) => {
|
172
|
-
if (component && component instanceof SqlComponent_1.SqlComponent
|
173
|
-
|
174
|
-
|
175
|
-
|
272
|
+
if (component && component instanceof SqlComponent_1.SqlComponent) {
|
273
|
+
// Add regular comments
|
274
|
+
if (component.comments) {
|
275
|
+
component.comments.forEach((comment, index) => {
|
276
|
+
results.push({ comment, component, index });
|
277
|
+
});
|
278
|
+
}
|
279
|
+
// Add headerComments for SelectQuery components
|
280
|
+
if (this.isSelectQuery(component)) {
|
281
|
+
const selectQuery = component;
|
282
|
+
if (selectQuery.headerComments) {
|
283
|
+
selectQuery.headerComments.forEach((comment, index) => {
|
284
|
+
results.push({ comment, component, index });
|
285
|
+
});
|
286
|
+
}
|
287
|
+
}
|
176
288
|
}
|
177
289
|
// Traverse all properties recursively
|
178
290
|
for (const key in component) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CommentEditor.js","sourceRoot":"","sources":["../../../src/utils/CommentEditor.ts"],"names":[],"mappings":";;;AAAA,yDAAsD;
|
1
|
+
{"version":3,"file":"CommentEditor.js","sourceRoot":"","sources":["../../../src/utils/CommentEditor.ts"],"names":[],"mappings":"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"}
|