@arcgis/coding-components 5.1.0-next.54 → 5.1.0-next.56

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 (87) hide show
  1. package/dist/cdn/{PKG2K3V2.js → 23B5EVBR.js} +1 -1
  2. package/dist/cdn/2RXM4OOZ.js +2 -0
  3. package/dist/cdn/2XTHR2WZ.js +2 -0
  4. package/dist/cdn/5PWITOEV.js +2 -0
  5. package/dist/cdn/A53COIII.js +6 -0
  6. package/dist/cdn/AESP7B22.js +2 -0
  7. package/dist/cdn/AHN2NEBT.js +2 -0
  8. package/dist/cdn/{54ZOADNQ.js → BXUVVQLE.js} +1 -1
  9. package/dist/cdn/BYHBHJML.js +2 -0
  10. package/dist/cdn/CLBLJN2Z.js +7 -0
  11. package/dist/cdn/CZ2DJPO4.js +2 -0
  12. package/dist/cdn/DGFH2WPL.js +2 -0
  13. package/dist/cdn/{RJRCBNNO.js → DJYSIOXC.js} +1 -1
  14. package/dist/cdn/FLNLMLTL.js +2 -0
  15. package/dist/cdn/ITDFOKJG.js +2 -0
  16. package/dist/cdn/MH4UADDE.js +2 -0
  17. package/dist/cdn/{UZJHWA6T.js → ODKUCLFB.js} +1 -1
  18. package/dist/cdn/{PVL67WGX.js → PD5NEK47.js} +1 -1
  19. package/dist/cdn/PRB6IWVU.js +2 -0
  20. package/dist/cdn/{4A2CLADY.js → QCARFVF7.js} +1 -1
  21. package/dist/cdn/{6YD47X7H.js → QF6ON7LK.js} +1 -1
  22. package/dist/cdn/QRDRCFJZ.js +2 -0
  23. package/dist/cdn/SV4IPD4A.js +2 -0
  24. package/dist/cdn/UH44LJA7.js +4 -0
  25. package/dist/cdn/VF7TALAI.js +12 -0
  26. package/dist/cdn/VPP77CFW.js +2 -0
  27. package/dist/cdn/YPMKBMXS.js +2 -0
  28. package/dist/cdn/ZHZFKZA7.js +2 -0
  29. package/dist/cdn/assets/arcade-editor/t9n/messages.en.json +1 -1
  30. package/dist/cdn/assets/code-editor/sql-expr.worker.js +120 -117
  31. package/dist/cdn/assets/code-editor/sql-layer.worker.js +10087 -0
  32. package/dist/cdn/assets/editor-variables/t9n/messages.en.json +1 -1
  33. package/dist/cdn/assets/sql-expression-editor/t9n/messages.en.json +1 -1
  34. package/dist/cdn/assets/sql-layer-editor/t9n/messages.en.json +1 -0
  35. package/dist/cdn/index.js +1 -1
  36. package/dist/cdn/main.css +1 -1
  37. package/dist/chunks/arcade-defaults.js +98 -96
  38. package/dist/chunks/arcade-service-accessors.js +40 -28
  39. package/dist/chunks/bigquery.js +186 -0
  40. package/dist/chunks/colorize.js +1 -1
  41. package/dist/chunks/fields.js +2 -2
  42. package/dist/chunks/language-defaults-base.js +733 -464
  43. package/dist/chunks/postgres.js +209 -0
  44. package/dist/chunks/setup-monaco-theme.js +28 -20
  45. package/dist/chunks/sql-expr-defaults.js +11 -10
  46. package/dist/chunks/sql-layer-defaults.js +231 -0
  47. package/dist/chunks/sql-layer-mode.js +301 -0
  48. package/dist/chunks/sqlServer.js +288 -0
  49. package/dist/chunks/utils.js +184 -0
  50. package/dist/components/arcgis-arcade-coding-assistant/customElement.js +134 -123
  51. package/dist/components/arcgis-arcade-editor/customElement.d.ts +17 -0
  52. package/dist/components/arcgis-arcade-editor/customElement.js +22 -22
  53. package/dist/components/arcgis-code-editor/customElement.d.ts +2 -1
  54. package/dist/components/arcgis-code-editor/customElement.js +91 -71
  55. package/dist/components/arcgis-editor-variables/customElement.js +50 -47
  56. package/dist/components/arcgis-sql-expression-editor/customElement.d.ts +12 -0
  57. package/dist/components/arcgis-sql-expression-editor/customElement.js +17 -17
  58. package/dist/components/arcgis-sql-layer-editor/customElement.d.ts +50 -0
  59. package/dist/components/arcgis-sql-layer-editor/customElement.js +92 -0
  60. package/dist/components/arcgis-sql-layer-editor/index.d.ts +1 -0
  61. package/dist/components/arcgis-sql-layer-editor/index.js +7 -0
  62. package/dist/components/types.d.ts +79 -2
  63. package/dist/docs/api.json +1 -1
  64. package/dist/docs/docs.json +1 -1
  65. package/dist/docs/vscode.html-custom-data.json +1 -1
  66. package/dist/docs/web-types.json +1 -1
  67. package/dist/index.d.ts +10 -0
  68. package/dist/loader.js +6 -5
  69. package/dist/types/lumina.d.ts +9 -2
  70. package/dist/types/preact.d.ts +10 -2
  71. package/dist/types/react.d.ts +11 -2
  72. package/dist/types/stencil.d.ts +9 -2
  73. package/dist/utils/data-catalog-datastore.d.ts +170 -0
  74. package/package.json +5 -5
  75. package/dist/cdn/5CO7XWOT.js +0 -2
  76. package/dist/cdn/5FXY5U3T.js +0 -2
  77. package/dist/cdn/CYC4AWZE.js +0 -2
  78. package/dist/cdn/GVO3LEFV.js +0 -2
  79. package/dist/cdn/J5X2KSYD.js +0 -2
  80. package/dist/cdn/QHJAF7L3.js +0 -6
  81. package/dist/cdn/T7GEIGWF.js +0 -2
  82. package/dist/cdn/TAXRVBJC.js +0 -2
  83. package/dist/cdn/VR5CATAW.js +0 -2
  84. package/dist/cdn/WTNM2NCZ.js +0 -2
  85. package/dist/cdn/XEUG3X2W.js +0 -2
  86. package/dist/cdn/ZJCI6LP6.js +0 -12
  87. package/dist/cdn/ZSVJAJND.js +0 -4
@@ -0,0 +1,301 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ import { Emitter as C, languages as u } from "monaco-editor";
3
+ import "monaco-editor/esm/vs/editor/standalone/browser/standaloneServices.js";
4
+ import "monaco-editor/esm/vs/editor/standalone/common/standaloneTheme.js";
5
+ import "monaco-editor/esm/vs/platform/hover/browser/hover.js";
6
+ import "monaco-editor/esm/vs/editor/common/languages/supports/tokenization.js";
7
+ import "monaco-editor/esm/vs/base/browser/dom.js";
8
+ import "monaco-editor/esm/vs/editor/browser/editorDom.js";
9
+ import "monaco-editor/esm/vs/editor/browser/controller/mouseTarget.js";
10
+ import { i as g } from "./monaco-importer.js";
11
+ import { debounce as x } from "@arcgis/toolkit/function";
12
+ import { rethrowError as l } from "@arcgis/toolkit/log";
13
+ let p = Promise.withResolvers();
14
+ class k {
15
+ constructor(e) {
16
+ this._defaults = e, this._worker = null, this._client = null, this._modelLifecycleListeners = [], this._isDisposed = !1, this._configChangeListener = this._defaults.onDidChange(() => this.stopWorker()), this._modelContextChangeListener = this._defaults.onModelContextDidChange(() => {
17
+ this._stopWorkerIfUnused();
18
+ }), this._registerModelLifecycleListeners();
19
+ }
20
+ dispose() {
21
+ for (this._isDisposed = !0, this._configChangeListener.dispose(), this._modelContextChangeListener.dispose(); this._modelLifecycleListeners.length; )
22
+ this._modelLifecycleListeners.pop()?.dispose();
23
+ this.stopWorker();
24
+ }
25
+ stopWorker() {
26
+ this._worker && (this._worker.dispose(), this._worker = null, p = Promise.withResolvers()), this._client = null;
27
+ }
28
+ static async waitForWorker() {
29
+ return await p.promise;
30
+ }
31
+ // TODO: should also do this for arcade and other languages, as it ensures that workers are stopped when not in use.
32
+ async _registerModelLifecycleListeners() {
33
+ const e = await g();
34
+ this._isDisposed || this._modelLifecycleListeners.push(
35
+ e.onWillDisposeModel(() => {
36
+ this._stopWorkerIfUnused();
37
+ }),
38
+ e.onDidChangeModelLanguage(() => {
39
+ this._stopWorkerIfUnused();
40
+ })
41
+ );
42
+ }
43
+ async _stopWorkerIfUnused() {
44
+ if (!this._worker)
45
+ return;
46
+ (await g()).getModels().some((i) => i.getLanguageId() === this._defaults.languageId) || this.stopWorker();
47
+ }
48
+ async _getClientProxy() {
49
+ const e = await g();
50
+ if (!this._client) {
51
+ const { languageId: t } = this._defaults, i = window.MonacoEnvironment?.getWorker;
52
+ if (!i)
53
+ throw new Error(
54
+ "MonacoEnvironment.getWorker is not configured. Call setupMonacoEnvironment(...) before creating SQL Layer workers."
55
+ );
56
+ this._worker = e.createWebWorker({
57
+ worker: i("SqlLayerWorker", t),
58
+ host: this._defaults.workerHost
59
+ }), p.resolve(this._worker), this._client = this._worker.getProxy();
60
+ }
61
+ return await this._client;
62
+ }
63
+ async getLanguageServiceWorker(...e) {
64
+ const t = await this._getClientProxy();
65
+ return await this._worker?.withSyncedResources(e), t;
66
+ }
67
+ }
68
+ const b = (o) => {
69
+ const e = _(o.start), t = _(o.end);
70
+ return {
71
+ startRegex: new RegExp(e),
72
+ contentRegex: new RegExp(`[^${t}]+`),
73
+ escapedRegex: new RegExp(`${t}${t}`),
74
+ endRegex: new RegExp(t)
75
+ };
76
+ }, M = (o) => {
77
+ const e = o.specialChars.identifierQuote;
78
+ return {
79
+ comments: {
80
+ lineComment: "--",
81
+ blockComment: ["/*", "*/"]
82
+ },
83
+ brackets: [
84
+ ["{", "}"],
85
+ ["[", "]"],
86
+ ["(", ")"]
87
+ ],
88
+ autoClosingPairs: [
89
+ { open: "{", close: "}" },
90
+ { open: "[", close: "]" },
91
+ { open: "(", close: ")" },
92
+ { open: '"', close: '"' },
93
+ { open: "'", close: "'" },
94
+ { open: e.start, close: e.end }
95
+ ],
96
+ surroundingPairs: [
97
+ { open: "{", close: "}" },
98
+ { open: "[", close: "]" },
99
+ { open: "(", close: ")" },
100
+ { open: '"', close: '"' },
101
+ { open: "'", close: "'" },
102
+ { open: e.start, close: e.end }
103
+ ]
104
+ };
105
+ }, S = (o) => {
106
+ const e = b(o.specialChars.identifierQuote);
107
+ return {
108
+ defaultToken: "",
109
+ tokenPostfix: ".arcgis",
110
+ ignoreCase: !0,
111
+ brackets: [
112
+ { open: "[", close: "]", token: "delimiter.square" },
113
+ { open: "(", close: ")", token: "delimiter.parenthesis" }
114
+ ],
115
+ keywords: o.keywords,
116
+ operators: o.operators,
117
+ builtinFunctions: o.functions,
118
+ builtinVariables: [],
119
+ tokenizer: {
120
+ root: [
121
+ { include: "@comments" },
122
+ { include: "@whitespace" },
123
+ { include: "@numbers" },
124
+ { include: "@strings" },
125
+ { include: "@complexIdentifiers" },
126
+ { include: "@scopes" },
127
+ [/[;,.]/, "delimiter"],
128
+ [/[()]/, "@brackets"],
129
+ [
130
+ /[\w@#$]+/,
131
+ {
132
+ cases: {
133
+ "@operators": "operator",
134
+ "@builtinVariables": "predefined",
135
+ "@builtinFunctions": "predefined",
136
+ "@keywords": "keyword",
137
+ "@default": "identifier"
138
+ }
139
+ }
140
+ ],
141
+ [/[<>=!%&+\-*/|~^]/, "operator"]
142
+ ],
143
+ whitespace: [[/\s+/, "white"]],
144
+ comments: [
145
+ [/--+.*/, "comment"],
146
+ [/\/\*/, { token: "comment.quote", next: "@comment" }]
147
+ ],
148
+ comment: [
149
+ [/[^*/]+/, "comment"],
150
+ [/\*\//, { token: "comment.quote", next: "@pop" }],
151
+ [/./, "comment"]
152
+ ],
153
+ numbers: [
154
+ [/0[xX][0-9a-fA-F]*/, "number"],
155
+ [/[$][+-]*\d*(\.\d*)?/, "number"],
156
+ [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, "number"]
157
+ ],
158
+ strings: [
159
+ [/N'/, { token: "string", next: "@string" }],
160
+ [/'/, { token: "string", next: "@string" }]
161
+ ],
162
+ string: [
163
+ [/[^']+/, "string"],
164
+ [/''/, "string"],
165
+ [/'/, { token: "string", next: "@pop" }]
166
+ ],
167
+ complexIdentifiers: [[e.startRegex, { token: "identifier.quote", next: "@quotedIdentifier" }]],
168
+ quotedIdentifier: [
169
+ [e.contentRegex, "identifier"],
170
+ [e.escapedRegex, "identifier"],
171
+ [e.endRegex, { token: "identifier.quote", next: "@pop" }]
172
+ ],
173
+ scopes: [
174
+ [/(BEGIN|CASE)\b/i, { token: "keyword.block" }],
175
+ [/END\b/i, { token: "keyword.block" }],
176
+ [/WHEN\b/i, { token: "keyword.choice" }],
177
+ [/THEN\b/i, { token: "keyword.choice" }]
178
+ ]
179
+ }
180
+ };
181
+ }, _ = (o) => o.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
182
+ class I {
183
+ constructor(e, t) {
184
+ this._worker = e, this._defaults = t;
185
+ }
186
+ async provideCompletionItems(e, t) {
187
+ try {
188
+ const i = await this._worker(e.uri), a = this._defaults.getApiContextForModel(e.uri), r = e.getWordUntilPosition(t), c = {
189
+ startLineNumber: t.lineNumber,
190
+ endLineNumber: t.lineNumber,
191
+ startColumn: r.startColumn,
192
+ endColumn: r.endColumn
193
+ };
194
+ return await i.doComplete(e.uri.toString(), c, t, a);
195
+ } catch (i) {
196
+ return l("SqlLayerCompletionProvider")(i), { suggestions: [] };
197
+ }
198
+ }
199
+ }
200
+ class D {
201
+ constructor(e, t, {
202
+ defaults: i,
203
+ diagnosticService: a
204
+ }) {
205
+ this._languageId = e, this._worker = t, this._disposables = [], this._modelListeners = /* @__PURE__ */ new Map(), this._defaults = i, this._diagnosticsService = a, g().then((r) => {
206
+ const c = (s) => {
207
+ const n = s.getLanguageId();
208
+ if (n !== this._languageId)
209
+ return;
210
+ const d = x(() => {
211
+ this._doValidate(s, n).catch((y) => {
212
+ throw y;
213
+ });
214
+ }), f = s.onDidChangeContent(d), L = s.onDidChangeAttached(d);
215
+ this._modelListeners.set(s.uri.toString(), [f, L]), this._doValidate(s, n).catch(l("SqlLayerDiagnosticsAdapter"));
216
+ }, h = (s) => {
217
+ const n = s.uri.toString();
218
+ r.setModelMarkers(s, this._languageId, []);
219
+ const d = this._modelListeners.get(n);
220
+ if (d) {
221
+ for (; d.length; )
222
+ d.pop()?.dispose();
223
+ this._modelListeners.delete(n);
224
+ }
225
+ };
226
+ this._disposables.push(r.onDidCreateModel(c)), this._disposables.push(r.onWillDisposeModel((s) => h(s))), this._disposables.push(
227
+ r.onDidChangeModelLanguage((s) => {
228
+ h(s.model), c(s.model);
229
+ })
230
+ ), this._disposables.push(
231
+ i.onDidChange(() => {
232
+ r.getModels().forEach((s) => {
233
+ s.getLanguageId() === this._languageId && (h(s), c(s));
234
+ });
235
+ })
236
+ ), this._disposables.push(
237
+ i.onModelContextDidChange((s) => {
238
+ r.getModels().forEach((n) => {
239
+ n.getLanguageId() === this._languageId && n.uri.toString() === s && this._doValidate(n, this._languageId).catch(l("SqlLayerDiagnosticsAdapter"));
240
+ });
241
+ })
242
+ ), this._disposables.push({
243
+ dispose: () => {
244
+ this._modelListeners.forEach((s) => s.forEach((n) => n.dispose())), this._modelListeners.clear();
245
+ }
246
+ }), r.getModels().forEach(c);
247
+ });
248
+ }
249
+ async _doValidate(e, t) {
250
+ const i = await g();
251
+ if (e.isAttachedToEditor())
252
+ try {
253
+ const a = await this._worker(e.uri), r = this._defaults.getApiContextForModel(e.uri), c = await a.doValidation(e.uri.toString(), r);
254
+ this._diagnosticsService.fireDiagnosticsChange(e.uri, c), i.setModelMarkers(e, t, c);
255
+ } catch (a) {
256
+ l("SqlLayerDiagnosticsAdapter")(a);
257
+ }
258
+ }
259
+ }
260
+ let w;
261
+ async function U(...o) {
262
+ return await k.waitForWorker(), await new Promise((e, t) => {
263
+ if (!w) {
264
+ t(new Error("SQL layer worker not registered!"));
265
+ return;
266
+ }
267
+ e(w(...o));
268
+ });
269
+ }
270
+ class v {
271
+ constructor() {
272
+ this._onDiagnosticsChange = new C();
273
+ }
274
+ get onDiagnosticsChange() {
275
+ return this._onDiagnosticsChange.event;
276
+ }
277
+ fireDiagnosticsChange(e, t) {
278
+ this._onDiagnosticsChange.fire({ uri: e, diagnostics: t });
279
+ }
280
+ }
281
+ const m = new v();
282
+ function T() {
283
+ return m;
284
+ }
285
+ async function H(o) {
286
+ const e = new k(o), t = async (...a) => await e.getLanguageServiceWorker(...a);
287
+ w = t;
288
+ const i = await o.getDialectSpec();
289
+ u.setMonarchTokensProvider(o.languageId, S(i)), u.setLanguageConfiguration(o.languageId, M(i)), u.registerCompletionItemProvider(
290
+ o.languageId,
291
+ new I(t, o)
292
+ ), new D(o.languageId, t, {
293
+ defaults: o,
294
+ diagnosticService: m
295
+ });
296
+ }
297
+ export {
298
+ T as getSqlLayerDiagnosticService,
299
+ U as getSqlLayerWorker,
300
+ H as setupMode
301
+ };
@@ -0,0 +1,288 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ const E = {
3
+ id: "sqlServer",
4
+ keywords: [
5
+ "ADD",
6
+ "ALL",
7
+ "ALTER",
8
+ "AND",
9
+ "ANY",
10
+ "AS",
11
+ "ASC",
12
+ "AUTHORIZATION",
13
+ "AVG",
14
+ "BACKUP",
15
+ "BEGIN",
16
+ "BETWEEN",
17
+ "BREAK",
18
+ "BROWSE",
19
+ "BULK",
20
+ "BY",
21
+ "CASCADE",
22
+ "CASE",
23
+ "CHECK",
24
+ "CHECKPOINT",
25
+ "CLOSE",
26
+ "CLUSTERED",
27
+ "COALESCE",
28
+ "COLLATE",
29
+ "COLUMN",
30
+ "COMMIT",
31
+ "COMPUTE",
32
+ "CONSTRAINT",
33
+ "CONTAINS",
34
+ "CONTAINSTABLE",
35
+ "CONTINUE",
36
+ "CONVERT",
37
+ "COUNT",
38
+ "CREATE",
39
+ "CROSS",
40
+ "CURRENT",
41
+ "CURRENT_DATE",
42
+ "CURRENT_TIME",
43
+ "CURRENT_TIMESTAMP",
44
+ "CURRENT_USER",
45
+ "CURSOR",
46
+ "DATABASE",
47
+ "DBCC",
48
+ "DEALLOCATE",
49
+ "DECLARE",
50
+ "DEFAULT",
51
+ "DELETE",
52
+ "DENY",
53
+ "DESC",
54
+ "DISK",
55
+ "DISTINCT",
56
+ "DISTRIBUTED",
57
+ "DOUBLE",
58
+ "DROP",
59
+ "DUMP",
60
+ "ELSE",
61
+ "END",
62
+ "ERRLVL",
63
+ "ESCAPE",
64
+ "EXCEPT",
65
+ "EXEC",
66
+ "EXECUTE",
67
+ "EXISTS",
68
+ "EXIT",
69
+ "EXTERNAL",
70
+ "FETCH",
71
+ "FILE",
72
+ "FILLFACTOR",
73
+ "FOR",
74
+ "FOREIGN",
75
+ "FREETEXT",
76
+ "FREETEXTTABLE",
77
+ "FROM",
78
+ "FULL",
79
+ "FUNCTION",
80
+ "GOTO",
81
+ "GRANT",
82
+ "GROUP",
83
+ "HAVING",
84
+ "HOLDLOCK",
85
+ "IDENTITY",
86
+ "IDENTITYCOL",
87
+ "IDENTITY_INSERT",
88
+ "IF",
89
+ "IN",
90
+ "INDEX",
91
+ "INNER",
92
+ "INSERT",
93
+ "INTERSECT",
94
+ "INTO",
95
+ "IS",
96
+ "ISOLATION",
97
+ "JOIN",
98
+ "KEY",
99
+ "KILL",
100
+ "LEFT",
101
+ "LEVEL",
102
+ "LIKE",
103
+ "LINENO",
104
+ "LOAD",
105
+ "MAX",
106
+ "MERGE",
107
+ "MIN",
108
+ "NATIONAL",
109
+ "NOCHECK",
110
+ "NONCLUSTERED",
111
+ "NOT",
112
+ "NULL",
113
+ "NULLIF",
114
+ "OF",
115
+ "OFF",
116
+ "OFFSETS",
117
+ "ON",
118
+ "ONLY",
119
+ "OPEN",
120
+ "OPENDATASOURCE",
121
+ "OPENQUERY",
122
+ "OPENROWSET",
123
+ "OPENXML",
124
+ "OPTION",
125
+ "OR",
126
+ "ORDER",
127
+ "OUTER",
128
+ "OVER",
129
+ "PERCENT",
130
+ "PIVOT",
131
+ "PLAN",
132
+ "PRECISION",
133
+ "PREPARE",
134
+ "PRIMARY",
135
+ "PRINT",
136
+ "PRIVILEGES",
137
+ "PROC",
138
+ "PROCEDURE",
139
+ "PROCESSEXIT",
140
+ "PUBLIC",
141
+ "RAISERROR",
142
+ "READ",
143
+ "READTEXT",
144
+ "RECONFIGURE",
145
+ "REFERENCES",
146
+ "REPEATABLE",
147
+ "REPLICATION",
148
+ "RESTORE",
149
+ "RESTRICT",
150
+ "RETURN",
151
+ "REVOKE",
152
+ "RIGHT",
153
+ "ROLLBACK",
154
+ "ROWCOUNT",
155
+ "ROWGUIDCOL",
156
+ "RULE",
157
+ "SAVE",
158
+ "SCHEMA",
159
+ "SECURITYAUDIT",
160
+ "SELECT",
161
+ "SEMANTICKEYPHRASETABLE",
162
+ "SEMANTICSIMILARITYDETAILSTABLE",
163
+ "SEMANTICSIMILARITYTABLE",
164
+ "SERIALIZABLE",
165
+ "SESSION_USER",
166
+ "SET",
167
+ "SETUSER",
168
+ "SHUTDOWN",
169
+ "SOME",
170
+ "STATISTICS",
171
+ "SUM",
172
+ "SYSTEM_USER",
173
+ "TABLE",
174
+ "TABLESAMPLE",
175
+ "TEMPORARY",
176
+ "TEXTSIZE",
177
+ "THEN",
178
+ "TO",
179
+ "TOP",
180
+ "TRAN",
181
+ "TRANSACTION",
182
+ "TRIGGER",
183
+ "TRUNCATE",
184
+ "TRY_CONVERT",
185
+ "TSEQUAL",
186
+ "UNION",
187
+ "UNIQUE",
188
+ "UNPIVOT",
189
+ "UPDATE",
190
+ "UPDATETEXT",
191
+ "USE",
192
+ "USER",
193
+ "VALUES",
194
+ "VARYING",
195
+ "VIEW",
196
+ "WAITFOR",
197
+ "WHEN",
198
+ "WHERE",
199
+ "WHILE",
200
+ "WITH",
201
+ "WITHIN_GROUP",
202
+ "WORK",
203
+ "WRITETEXT"
204
+ ],
205
+ functions: [
206
+ "UPPER",
207
+ "LOWER",
208
+ "CONCAT",
209
+ "ASCII",
210
+ "LEN",
211
+ "CHAR",
212
+ "LTRIM",
213
+ "RTRIM",
214
+ "SUBSTRING",
215
+ "SOUNDEX",
216
+ "REPLACE",
217
+ "CEILING",
218
+ "FLOOR",
219
+ "ROUND",
220
+ "LOG",
221
+ "LOG10",
222
+ "MOD",
223
+ "POWER",
224
+ "SIGN",
225
+ "ASIN",
226
+ "ACOS",
227
+ "ATAN",
228
+ "SIN",
229
+ "COS",
230
+ "TAN",
231
+ "DATEPART",
232
+ "DATALENGTH",
233
+ "CHARINDEX",
234
+ "ABS",
235
+ "VAR",
236
+ "STDEV",
237
+ "AVG",
238
+ "COUNT",
239
+ "MAX",
240
+ "MIN",
241
+ "SUM",
242
+ "COALESCE",
243
+ "CONVERT",
244
+ "CAST",
245
+ "CURRENT_USER",
246
+ "GETDATE",
247
+ "CURRENT_TIMESTAMP",
248
+ "STDEVP",
249
+ "VARP",
250
+ "NULLIF",
251
+ "PERCENTILE_CONT",
252
+ "PERCENTILE_DISC",
253
+ "CUME_DIST",
254
+ "FIRST_VALUE",
255
+ "LAST_VALUE",
256
+ "LEAD",
257
+ "LAG",
258
+ "PERCENT_RANK",
259
+ "RANK",
260
+ "NTILE",
261
+ "DENSE_RANK",
262
+ "ROW_NUMBER",
263
+ "STRING_AGG",
264
+ "GROUPING SETS",
265
+ "CUBE",
266
+ "ROLLUP"
267
+ ],
268
+ operators: ["+"],
269
+ specialChars: {
270
+ likeWildcardAny: "%",
271
+ likeWildcardOne: "_",
272
+ identifierQuote: {
273
+ start: '"',
274
+ end: '"'
275
+ },
276
+ escapeKey: {
277
+ start: "'",
278
+ end: null
279
+ },
280
+ escapeClause: {
281
+ keyword: "ESCAPE",
282
+ suffix: ""
283
+ }
284
+ }
285
+ };
286
+ export {
287
+ E as sqlServerDialect
288
+ };