@cubejs-backend/shared 1.7.11 → 1.7.12

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.
@@ -22,4 +22,5 @@ export * from './PerfTracker';
22
22
  export * from './disposedProxy';
23
23
  export * from './logger';
24
24
  export * from './pool';
25
+ export * from './sql-escape';
25
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,yBAAyB,EACzB,aAAa,EACb,kBAAkB,GACnB,MAAM,OAAO,CAAC;AACf,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,yBAAyB,EACzB,aAAa,EACb,kBAAkB,GACnB,MAAM,OAAO,CAAC;AACf,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC"}
package/dist/src/index.js CHANGED
@@ -45,4 +45,5 @@ __exportStar(require("./PerfTracker"), exports);
45
45
  __exportStar(require("./disposedProxy"), exports);
46
46
  __exportStar(require("./logger"), exports);
47
47
  __exportStar(require("./pool"), exports);
48
+ __exportStar(require("./sql-escape"), exports);
48
49
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6BAOe;AANb,6FAAA,MAAM,OAAA;AACN,uGAAA,gBAAgB,OAAA;AAChB,sGAAA,eAAe,OAAA;AACf,gHAAA,yBAAyB,OAAA;AACzB,oGAAA,aAAa,OAAA;AACb,yGAAA,kBAAkB,OAAA;AAEpB,0CAAwB;AACxB,4CAA0B;AAC1B,0CAAwB;AACxB,2CAAyB;AACzB,6CAA2B;AAC3B,4CAA0B;AAC1B,4CAA0B;AAC1B,+CAA6B;AAC7B,iDAA+B;AAC/B,iDAA+B;AAC/B,2CAAyB;AACzB,+CAA6B;AAC7B,wCAAsB;AACtB,0CAAwB;AACxB,yCAAuB;AACvB,4CAA0B;AAC1B,6CAA2B;AAC3B,mDAAiC;AACjC,+CAA6B;AAC7B,gDAA8B;AAC9B,kDAAgC;AAChC,2CAAyB;AACzB,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6BAOe;AANb,6FAAA,MAAM,OAAA;AACN,uGAAA,gBAAgB,OAAA;AAChB,sGAAA,eAAe,OAAA;AACf,gHAAA,yBAAyB,OAAA;AACzB,oGAAA,aAAa,OAAA;AACb,yGAAA,kBAAkB,OAAA;AAEpB,0CAAwB;AACxB,4CAA0B;AAC1B,0CAAwB;AACxB,2CAAyB;AACzB,6CAA2B;AAC3B,4CAA0B;AAC1B,4CAA0B;AAC1B,+CAA6B;AAC7B,iDAA+B;AAC/B,iDAA+B;AAC/B,2CAAyB;AACzB,+CAA6B;AAC7B,wCAAsB;AACtB,0CAAwB;AACxB,yCAAuB;AACvB,4CAA0B;AAC1B,6CAA2B;AAC3B,mDAAiC;AACjC,+CAA6B;AAC7B,gDAA8B;AAC9B,kDAAgC;AAChC,2CAAyB;AACzB,yCAAuB;AACvB,+CAA6B"}
@@ -0,0 +1,46 @@
1
+ export interface SqlDialectEscapeRules {
2
+ /** Character that delimits string literals. Standard SQL uses a single quote. */
3
+ readonly stringQuoteChar: string;
4
+ /**
5
+ * When `true`, a quote inside a literal is escaped by doubling it (`''`).
6
+ * Every standards-tracking engine supports this, so it is the safe default.
7
+ */
8
+ readonly doubleQuoteToEscape: boolean;
9
+ /**
10
+ * When `true`, the backslash is an escape character inside string literals and
11
+ * a literal backslash must be doubled (`\\`). MySQL behaves this way; Presto,
12
+ * Trino and standard SQL do NOT.
13
+ */
14
+ readonly escapeBackslash: boolean;
15
+ /** Character that delimits identifiers (`"` for standard SQL, `` ` `` for MySQL). */
16
+ readonly identifierQuoteChar: string;
17
+ }
18
+ /**
19
+ * Escaping dialect of the target engine:
20
+ * - `ansi` — standard SQL: Presto, Trino, Athena, Dremio, ksqlDB, Pinot, ...
21
+ * - `mysql` — MySQL / MariaDB: quotes doubled, backslash is an escape char
22
+ * - `spark` — Spark SQL / Hive / Databricks: backslash escapes only
23
+ */
24
+ export type EscapeDialect = 'ansi' | 'mysql' | 'spark';
25
+ /**
26
+ * Format a query for the given engine dialect: `?` -> escaped value,
27
+ * `??` -> escaped identifier.
28
+ */
29
+ export declare function format(dialect: EscapeDialect, sql: string, values?: unknown): string;
30
+ /**
31
+ * Format a query for standard-SQL engines (Presto, Trino, Postgres, ...):
32
+ * `?` -> escaped value, `??` -> escaped identifier.
33
+ */
34
+ export declare function formatAnsi(sql: string, values?: unknown): string;
35
+ /**
36
+ * Format a query for MySQL / MariaDB: `?` -> escaped value, `??` -> escaped
37
+ * identifier.
38
+ */
39
+ export declare function formatMySql(sql: string, values?: unknown): string;
40
+ /**
41
+ * Format a query for Spark SQL / Hive / Databricks: `?` -> escaped value,
42
+ * `??` -> escaped identifier.
43
+ */
44
+ export declare function formatSparkSql(sql: string, values?: unknown): string;
45
+ export declare function escapeStringLiteral(value: string): string;
46
+ //# sourceMappingURL=sql-escape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-escape.d.ts","sourceRoot":"","sources":["../../src/sql-escape.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,iFAAiF;IACjF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,qFAAqF;IACrF,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAoKD;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAQvD;;;GAGG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAEpF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAEhE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAEjE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAEpE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD"}
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.escapeStringLiteral = exports.formatSparkSql = exports.formatMySql = exports.formatAnsi = exports.format = void 0;
4
+ const AnsiSqlDialect = {
5
+ stringQuoteChar: '\'',
6
+ doubleQuoteToEscape: true,
7
+ escapeBackslash: false,
8
+ identifierQuoteChar: '"',
9
+ };
10
+ const MySqlDialect = {
11
+ stringQuoteChar: '\'',
12
+ doubleQuoteToEscape: true,
13
+ escapeBackslash: true,
14
+ identifierQuoteChar: '`',
15
+ };
16
+ /**
17
+ * Spark SQL / Hive / Databricks. Their lexers know backslash escapes only — a
18
+ * doubled quote is NOT an escape, it closes the literal and opens the next one.
19
+ * Because adjacent literals are concatenated, `'O''Brien'` silently evaluates to
20
+ * `OBrien` instead of raising, so quotes MUST be escaped as `\'` here.
21
+ */
22
+ const SparkSqlDialect = {
23
+ stringQuoteChar: '\'',
24
+ doubleQuoteToEscape: false,
25
+ escapeBackslash: true,
26
+ identifierQuoteChar: '`',
27
+ };
28
+ class SqlEscaper {
29
+ rules;
30
+ constructor(rules) {
31
+ this.rules = rules;
32
+ }
33
+ static forDialect(dialect) {
34
+ return new SqlEscaper(dialect);
35
+ }
36
+ escapeString(value) {
37
+ const { stringQuoteChar, escapeBackslash, doubleQuoteToEscape } = this.rules;
38
+ let escaped = value;
39
+ // Backslash MUST be doubled first (before quote handling) so we do not double
40
+ // the backslashes we ourselves introduce when escaping quotes.
41
+ if (escapeBackslash) {
42
+ escaped = escaped.split('\\').join('\\\\');
43
+ }
44
+ escaped = doubleQuoteToEscape
45
+ ? escaped.split(stringQuoteChar).join(stringQuoteChar + stringQuoteChar)
46
+ : escaped.split(stringQuoteChar).join(`\\${stringQuoteChar}`);
47
+ return `${stringQuoteChar}${escaped}${stringQuoteChar}`;
48
+ }
49
+ escapeIdentifier(identifier) {
50
+ const q = this.rules.identifierQuoteChar;
51
+ return `${q}${String(identifier).split(q).join(q + q)}${q}`;
52
+ }
53
+ escapeValue(value) {
54
+ return this.escapeValueInternal(value, false);
55
+ }
56
+ escapeValueInternal(value, stringifyObjects) {
57
+ if (value === null || value === undefined) {
58
+ return 'NULL';
59
+ }
60
+ switch (typeof value) {
61
+ case 'boolean':
62
+ return value ? 'TRUE' : 'FALSE';
63
+ case 'bigint':
64
+ return value.toString();
65
+ case 'number':
66
+ return String(value);
67
+ case 'string':
68
+ return this.escapeString(value);
69
+ case 'object': {
70
+ const obj = value;
71
+ if (value instanceof Date) {
72
+ return Number.isNaN(value.getTime()) ? 'NULL' : this.escapeString(value.toISOString());
73
+ }
74
+ if (Array.isArray(value)) {
75
+ return value
76
+ .map((v) => (Array.isArray(v)
77
+ ? `(${this.escapeValueInternal(v, true)})`
78
+ : this.escapeValueInternal(v, true)))
79
+ .join(', ');
80
+ }
81
+ if (Buffer.isBuffer(value)) {
82
+ return `X${this.escapeString(value.toString('hex'))}`;
83
+ }
84
+ if (typeof obj.toSqlString === 'function') {
85
+ return String(obj.toSqlString());
86
+ }
87
+ if (stringifyObjects) {
88
+ return this.escapeString(String(value));
89
+ }
90
+ return Object.keys(value)
91
+ .filter((key) => typeof value[key] !== 'function')
92
+ .map((key) => (`${this.escapeIdentifier(key)} = ${this.escapeValueInternal(value[key], true)}`))
93
+ .join(', ');
94
+ }
95
+ default:
96
+ throw new Error(`Unsupported parameter type for SQL escaping: ${typeof value}`);
97
+ }
98
+ }
99
+ /**
100
+ * Substitutes positional placeholders in `sql` with escaped `values`:
101
+ * - `?` is replaced by an escaped value ({@link escapeValue})
102
+ * - `??` is replaced by an escaped identifier ({@link escapeIdentifier})
103
+ * Longer runs of `?` are left untouched. This mirrors `sqlstring.format`'s
104
+ * placeholder semantics so it can be a drop-in replacement in drivers.
105
+ */
106
+ format(sql, values) {
107
+ if (values === null || values === undefined) {
108
+ return sql;
109
+ }
110
+ const valueList = Array.isArray(values) ? values : [values];
111
+ if (valueList.length === 0) {
112
+ return sql;
113
+ }
114
+ const placeholders = /\?+/g;
115
+ let result = '';
116
+ let chunkIndex = 0;
117
+ let valuesIndex = 0;
118
+ let match = placeholders.exec(sql);
119
+ while (valuesIndex < valueList.length && match !== null) {
120
+ const len = match[0].length;
121
+ // `?` -> value, `??` -> identifier. Longer runs (`???`+) are not placeholders
122
+ // we understand, so we leave them verbatim and consume no value.
123
+ if (len <= 2) {
124
+ const rendered = len === 2
125
+ ? this.escapeIdentifier(String(valueList[valuesIndex]))
126
+ : this.escapeValue(valueList[valuesIndex]);
127
+ result += sql.slice(chunkIndex, match.index) + rendered;
128
+ chunkIndex = placeholders.lastIndex;
129
+ valuesIndex += 1;
130
+ }
131
+ match = placeholders.exec(sql);
132
+ }
133
+ if (chunkIndex === 0) {
134
+ return sql;
135
+ }
136
+ return chunkIndex < sql.length ? result + sql.slice(chunkIndex) : result;
137
+ }
138
+ }
139
+ const Dialects = {
140
+ ansi: AnsiSqlDialect,
141
+ mysql: MySqlDialect,
142
+ spark: SparkSqlDialect,
143
+ };
144
+ /**
145
+ * Format a query for the given engine dialect: `?` -> escaped value,
146
+ * `??` -> escaped identifier.
147
+ */
148
+ function format(dialect, sql, values) {
149
+ return new SqlEscaper(Dialects[dialect]).format(sql, values);
150
+ }
151
+ exports.format = format;
152
+ /**
153
+ * Format a query for standard-SQL engines (Presto, Trino, Postgres, ...):
154
+ * `?` -> escaped value, `??` -> escaped identifier.
155
+ */
156
+ function formatAnsi(sql, values) {
157
+ return format('ansi', sql, values);
158
+ }
159
+ exports.formatAnsi = formatAnsi;
160
+ /**
161
+ * Format a query for MySQL / MariaDB: `?` -> escaped value, `??` -> escaped
162
+ * identifier.
163
+ */
164
+ function formatMySql(sql, values) {
165
+ return format('mysql', sql, values);
166
+ }
167
+ exports.formatMySql = formatMySql;
168
+ /**
169
+ * Format a query for Spark SQL / Hive / Databricks: `?` -> escaped value,
170
+ * `??` -> escaped identifier.
171
+ */
172
+ function formatSparkSql(sql, values) {
173
+ return format('spark', sql, values);
174
+ }
175
+ exports.formatSparkSql = formatSparkSql;
176
+ function escapeStringLiteral(value) {
177
+ return new SqlEscaper(AnsiSqlDialect).escapeString(String(value));
178
+ }
179
+ exports.escapeStringLiteral = escapeStringLiteral;
180
+ //# sourceMappingURL=sql-escape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-escape.js","sourceRoot":"","sources":["../../src/sql-escape.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cubejs-backend/shared",
3
- "version": "1.7.11",
3
+ "version": "1.7.12",
4
4
  "description": "Shared code for Cube.js backend packages",
5
5
  "main": "dist/src/index.js",
6
6
  "typings": "dist/src/index.d.ts",
@@ -27,7 +27,7 @@
27
27
  },
28
28
  "license": "Apache-2.0",
29
29
  "devDependencies": {
30
- "@cubejs-backend/linter": "1.7.11",
30
+ "@cubejs-backend/linter": "1.7.12",
31
31
  "@types/bytes": "^3.1.5",
32
32
  "@types/cli-progress": "^3.9.1",
33
33
  "@types/decompress": "^4.2.7",
@@ -67,5 +67,5 @@
67
67
  "resolutions": {
68
68
  "colors": "1.4.0"
69
69
  },
70
- "gitHead": "911e38b02aaee9be361712e68e59a8728d643f1b"
70
+ "gitHead": "2309c055ee3d13192d789aaf32e70a00952c28d3"
71
71
  }