rawsql-ts 0.22.0 → 0.23.1

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.
Files changed (68) hide show
  1. package/dist/esm/index.min.js +6 -6
  2. package/dist/esm/index.min.js.map +4 -4
  3. package/dist/esm/parsers/FullNameParser.js +5 -0
  4. package/dist/esm/parsers/FullNameParser.js.map +1 -1
  5. package/dist/esm/parsers/IdentifierDecorator.d.ts +5 -0
  6. package/dist/esm/parsers/IdentifierDecorator.js +80 -4
  7. package/dist/esm/parsers/IdentifierDecorator.js.map +1 -1
  8. package/dist/esm/parsers/SqlPrintTokenParser.d.ts +2 -0
  9. package/dist/esm/parsers/SqlPrintTokenParser.js +6 -5
  10. package/dist/esm/parsers/SqlPrintTokenParser.js.map +1 -1
  11. package/dist/esm/parsers/ValueParser.d.ts +1 -0
  12. package/dist/esm/parsers/ValueParser.js +12 -0
  13. package/dist/esm/parsers/ValueParser.js.map +1 -1
  14. package/dist/esm/tokenReaders/LiteralTokenReader.js +2 -5
  15. package/dist/esm/tokenReaders/LiteralTokenReader.js.map +1 -1
  16. package/dist/esm/transformers/DynamicQueryBuilder.js +1 -1
  17. package/dist/esm/transformers/DynamicQueryBuilder.js.map +1 -1
  18. package/dist/esm/transformers/FormatOptionResolver.d.ts +9 -5
  19. package/dist/esm/transformers/FormatOptionResolver.js +7 -3
  20. package/dist/esm/transformers/FormatOptionResolver.js.map +1 -1
  21. package/dist/esm/transformers/PruneOptionalConditionBranches.js +40 -8
  22. package/dist/esm/transformers/PruneOptionalConditionBranches.js.map +1 -1
  23. package/dist/esm/transformers/SSSQLFilterBuilder.d.ts +2 -0
  24. package/dist/esm/transformers/SSSQLFilterBuilder.js +85 -10
  25. package/dist/esm/transformers/SSSQLFilterBuilder.js.map +1 -1
  26. package/dist/esm/transformers/SqlFormatter.d.ts +3 -1
  27. package/dist/esm/transformers/SqlFormatter.js +4 -4
  28. package/dist/esm/transformers/SqlFormatter.js.map +1 -1
  29. package/dist/esm/utils/OperatorPrecedence.js +1 -0
  30. package/dist/esm/utils/OperatorPrecedence.js.map +1 -1
  31. package/dist/esm/utils/SqlSpecialValueKeywords.d.ts +2 -0
  32. package/dist/esm/utils/SqlSpecialValueKeywords.js +15 -0
  33. package/dist/esm/utils/SqlSpecialValueKeywords.js.map +1 -0
  34. package/dist/index.min.js +6 -6
  35. package/dist/index.min.js.map +4 -4
  36. package/dist/parsers/FullNameParser.js +5 -0
  37. package/dist/parsers/FullNameParser.js.map +1 -1
  38. package/dist/parsers/IdentifierDecorator.js +80 -4
  39. package/dist/parsers/IdentifierDecorator.js.map +1 -1
  40. package/dist/parsers/SqlPrintTokenParser.js +6 -5
  41. package/dist/parsers/SqlPrintTokenParser.js.map +1 -1
  42. package/dist/parsers/ValueParser.js +12 -0
  43. package/dist/parsers/ValueParser.js.map +1 -1
  44. package/dist/src/parsers/IdentifierDecorator.d.ts +5 -0
  45. package/dist/src/parsers/SqlPrintTokenParser.d.ts +2 -0
  46. package/dist/src/parsers/ValueParser.d.ts +1 -0
  47. package/dist/src/transformers/FormatOptionResolver.d.ts +9 -5
  48. package/dist/src/transformers/SSSQLFilterBuilder.d.ts +2 -0
  49. package/dist/src/transformers/SqlFormatter.d.ts +3 -1
  50. package/dist/src/utils/SqlSpecialValueKeywords.d.ts +2 -0
  51. package/dist/tokenReaders/LiteralTokenReader.js +2 -5
  52. package/dist/tokenReaders/LiteralTokenReader.js.map +1 -1
  53. package/dist/transformers/DynamicQueryBuilder.js +1 -1
  54. package/dist/transformers/DynamicQueryBuilder.js.map +1 -1
  55. package/dist/transformers/FormatOptionResolver.js +7 -3
  56. package/dist/transformers/FormatOptionResolver.js.map +1 -1
  57. package/dist/transformers/PruneOptionalConditionBranches.js +39 -7
  58. package/dist/transformers/PruneOptionalConditionBranches.js.map +1 -1
  59. package/dist/transformers/SSSQLFilterBuilder.js +84 -9
  60. package/dist/transformers/SSSQLFilterBuilder.js.map +1 -1
  61. package/dist/transformers/SqlFormatter.js +6 -6
  62. package/dist/transformers/SqlFormatter.js.map +1 -1
  63. package/dist/tsconfig.browser.tsbuildinfo +1 -1
  64. package/dist/utils/OperatorPrecedence.js +1 -0
  65. package/dist/utils/OperatorPrecedence.js.map +1 -1
  66. package/dist/utils/SqlSpecialValueKeywords.js +18 -0
  67. package/dist/utils/SqlSpecialValueKeywords.js.map +1 -0
  68. package/package.json +4 -4
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FullNameParser = void 0;
4
4
  const Lexeme_1 = require("../models/Lexeme");
5
5
  const ValueComponent_1 = require("../models/ValueComponent");
6
+ const SqlSpecialValueKeywords_1 = require("../utils/SqlSpecialValueKeywords");
6
7
  const SqlTokenizer_1 = require("./SqlTokenizer");
7
8
  /**
8
9
  * PostgreSQL non-reserved keywords that may appear as Command tokens,
@@ -102,6 +103,10 @@ class FullNameParser {
102
103
  identifiers.push(lexemes[idx].value);
103
104
  idx++;
104
105
  }
106
+ else if ((lexemes[idx].type & Lexeme_1.TokenType.Literal) && SqlSpecialValueKeywords_1.SQL_SPECIAL_VALUE_KEYWORD_SET.has(lexemes[idx].value.toLowerCase())) {
107
+ identifiers.push(lexemes[idx].value);
108
+ idx++;
109
+ }
105
110
  else if ((lexemes[idx].type & Lexeme_1.TokenType.Command) &&
106
111
  POSTGRESQL_COMMAND_KEYWORDS_ALLOWED_AS_IDENTIFIER.has(lexemes[idx].value.toLowerCase())) {
107
112
  // Accept selected PostgreSQL non-reserved keywords only when this parser
@@ -1 +1 @@
1
- {"version":3,"file":"FullNameParser.js","sourceRoot":"","sources":["../../src/parsers/FullNameParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FullNameParser.js","sourceRoot":"","sources":["../../src/parsers/FullNameParser.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,93 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IdentifierDecorator = void 0;
4
+ const SqlSpecialValueKeywords_1 = require("../utils/SqlSpecialValueKeywords");
5
+ const Lexeme_1 = require("../models/Lexeme");
6
+ const SqlTokenizer_1 = require("./SqlTokenizer");
4
7
  class IdentifierDecorator {
5
8
  constructor(identifierEscape) {
6
- var _a, _b;
9
+ var _a, _b, _c;
7
10
  this.start = (_a = identifierEscape === null || identifierEscape === void 0 ? void 0 : identifierEscape.start) !== null && _a !== void 0 ? _a : '"';
8
11
  this.end = (_b = identifierEscape === null || identifierEscape === void 0 ? void 0 : identifierEscape.end) !== null && _b !== void 0 ? _b : '"';
12
+ this.target = (_c = identifierEscape === null || identifierEscape === void 0 ? void 0 : identifierEscape.target) !== null && _c !== void 0 ? _c : 'all';
9
13
  }
10
14
  decorate(text) {
11
- // override
12
- text = this.start + text + this.end;
13
- return text;
15
+ if (this.target === 'minimal' && this.canRenderBare(text)) {
16
+ return text;
17
+ }
18
+ return this.start + this.escapeIdentifierText(text) + this.end;
19
+ }
20
+ canRenderBare(text) {
21
+ return /^[a-z_][a-z0-9_]*$/.test(text) &&
22
+ !UNSAFE_BARE_IDENTIFIERS.has(text) &&
23
+ this.isPlainIdentifierToken(text);
24
+ }
25
+ isPlainIdentifierToken(text) {
26
+ const lexemes = new SqlTokenizer_1.SqlTokenizer(text).readLexmes();
27
+ return lexemes.length === 1 && lexemes[0].type === Lexeme_1.TokenType.Identifier && lexemes[0].value === text;
28
+ }
29
+ escapeIdentifierText(text) {
30
+ if (!this.end) {
31
+ return text;
32
+ }
33
+ return text.split(this.end).join(this.end + this.end);
14
34
  }
15
35
  }
16
36
  exports.IdentifierDecorator = IdentifierDecorator;
37
+ const UNSAFE_BARE_IDENTIFIERS = new Set([
38
+ // Core SQL syntax and literals.
39
+ 'all',
40
+ 'and',
41
+ 'any',
42
+ 'as',
43
+ 'between',
44
+ 'by',
45
+ 'case',
46
+ 'cross',
47
+ 'delete',
48
+ 'distinct',
49
+ 'else',
50
+ 'end',
51
+ 'except',
52
+ 'exists',
53
+ 'false',
54
+ 'fetch',
55
+ 'for',
56
+ 'from',
57
+ 'full',
58
+ 'group',
59
+ 'having',
60
+ 'in',
61
+ 'inner',
62
+ 'insert',
63
+ 'intersect',
64
+ 'into',
65
+ 'is',
66
+ 'join',
67
+ 'left',
68
+ 'like',
69
+ 'limit',
70
+ 'not',
71
+ 'null',
72
+ 'offset',
73
+ 'on',
74
+ 'or',
75
+ 'order',
76
+ 'outer',
77
+ 'right',
78
+ 'select',
79
+ 'set',
80
+ 'table',
81
+ 'then',
82
+ 'true',
83
+ 'union',
84
+ 'update',
85
+ 'using',
86
+ 'values',
87
+ 'when',
88
+ 'where',
89
+ 'with',
90
+ // SQL value keywords / special bare expressions.
91
+ ...SqlSpecialValueKeywords_1.SQL_SPECIAL_VALUE_KEYWORDS
92
+ ]);
17
93
  //# sourceMappingURL=IdentifierDecorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IdentifierDecorator.js","sourceRoot":"","sources":["../../src/parsers/IdentifierDecorator.ts"],"names":[],"mappings":";;;AAAA,MAAa,mBAAmB;IAI5B,YAAY,gBAAmD;;QAC3D,IAAI,CAAC,KAAK,GAAG,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,mCAAI,GAAG,CAAC;QAC5C,IAAI,CAAC,GAAG,GAAG,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,GAAG,mCAAI,GAAG,CAAC;IAC5C,CAAC;IAED,QAAQ,CAAC,IAAY;QACjB,WAAW;QACX,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAdD,kDAcC"}
1
+ {"version":3,"file":"IdentifierDecorator.js","sourceRoot":"","sources":["../../src/parsers/IdentifierDecorator.ts"],"names":[],"mappings":";;;AAAA,8EAA8E;AAC9E,6CAA6C;AAC7C,iDAA8C;AAE9C,MAAa,mBAAmB;IAK5B,YAAY,gBAA+E;;QACvF,IAAI,CAAC,KAAK,GAAG,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,mCAAI,GAAG,CAAC;QAC5C,IAAI,CAAC,GAAG,GAAG,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,GAAG,mCAAI,GAAG,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,mCAAI,KAAK,CAAC;IACpD,CAAC;IAED,QAAQ,CAAC,IAAY;QACjB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;IACnE,CAAC;IAEO,aAAa,CAAC,IAAY;QAC9B,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;YAClC,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC;YAClC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEO,sBAAsB,CAAC,IAAY;QACvC,MAAM,OAAO,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;QACpD,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;IACzG,CAAC;IAEO,oBAAoB,CAAC,IAAY;QACrC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;CACJ;AAnCD,kDAmCC;AAED,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACpC,gCAAgC;IAChC,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,SAAS;IACT,IAAI;IACJ,MAAM;IACN,OAAO;IACP,QAAQ;IACR,UAAU;IACV,MAAM;IACN,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,IAAI;IACJ,OAAO;IACP,QAAQ;IACR,WAAW;IACX,MAAM;IACN,IAAI;IACJ,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,QAAQ;IACR,IAAI;IACJ,IAAI;IACJ,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IAEN,iDAAiD;IACjD,GAAG,oDAA0B;CAChC,CAAC,CAAC"}
@@ -157,7 +157,7 @@ class SqlPrintTokenParser {
157
157
  return this._selfHandlingComponentTypes;
158
158
  }
159
159
  constructor(options) {
160
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
160
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
161
161
  this.handlers = new Map();
162
162
  this.index = 1;
163
163
  this.joinConditionContexts = [];
@@ -172,11 +172,12 @@ class SqlPrintTokenParser {
172
172
  });
173
173
  this.identifierDecorator = new IdentifierDecorator_1.IdentifierDecorator({
174
174
  start: (_e = (_d = options === null || options === void 0 ? void 0 : options.identifierEscape) === null || _d === void 0 ? void 0 : _d.start) !== null && _e !== void 0 ? _e : '"',
175
- end: (_g = (_f = options === null || options === void 0 ? void 0 : options.identifierEscape) === null || _f === void 0 ? void 0 : _f.end) !== null && _g !== void 0 ? _g : '"'
175
+ end: (_g = (_f = options === null || options === void 0 ? void 0 : options.identifierEscape) === null || _f === void 0 ? void 0 : _f.end) !== null && _g !== void 0 ? _g : '"',
176
+ target: (_h = options === null || options === void 0 ? void 0 : options.identifierEscape) === null || _h === void 0 ? void 0 : _h.target
176
177
  });
177
- this.castStyle = (_h = options === null || options === void 0 ? void 0 : options.castStyle) !== null && _h !== void 0 ? _h : 'standard';
178
- this.constraintStyle = (_j = options === null || options === void 0 ? void 0 : options.constraintStyle) !== null && _j !== void 0 ? _j : 'postgres';
179
- this.normalizeJoinConditionOrder = (_k = options === null || options === void 0 ? void 0 : options.joinConditionOrderByDeclaration) !== null && _k !== void 0 ? _k : false;
178
+ this.castStyle = (_j = options === null || options === void 0 ? void 0 : options.castStyle) !== null && _j !== void 0 ? _j : 'standard';
179
+ this.constraintStyle = (_k = options === null || options === void 0 ? void 0 : options.constraintStyle) !== null && _k !== void 0 ? _k : 'postgres';
180
+ this.normalizeJoinConditionOrder = (_l = options === null || options === void 0 ? void 0 : options.joinConditionOrderByDeclaration) !== null && _l !== void 0 ? _l : false;
180
181
  this.handlers.set(ValueComponent_1.ValueList.kind, (expr) => this.visitValueList(expr));
181
182
  this.handlers.set(ValueComponent_1.ColumnReference.kind, (expr) => this.visitColumnReference(expr));
182
183
  this.handlers.set(ValueComponent_1.QualifiedName.kind, (expr) => this.visitQualifiedName(expr));