@elastic/esql 4.0.0 → 4.1.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.
@@ -50,7 +50,7 @@ export interface WalkerOptions {
50
50
  skipHeader?: boolean;
51
51
  }
52
52
  export type WalkerAstNode = types.ESQLAstNode | types.ESQLAstNode[];
53
- export type WalkerVisitorApi = Pick<Walker, 'abort'>;
53
+ export type WalkerVisitorApi = Pick<Walker, 'abort' | 'skipChildren'>;
54
54
  /**
55
55
  * Iterates over all nodes in the AST and calls the appropriate visitor
56
56
  * functions.
@@ -237,8 +237,11 @@ export declare class Walker {
237
237
  */
238
238
  static visitAny: (tree: WalkerAstNode, visitAny: WalkerOptions["visitAny"], options?: WalkerOptions) => void;
239
239
  protected aborted: boolean;
240
+ protected skippedChildren: boolean;
240
241
  constructor(options: WalkerOptions);
241
242
  abort(): void;
243
+ skipChildren(): void;
244
+ protected readAndResetSkippedChildren(): boolean;
242
245
  walk(tree: WalkerAstNode | undefined, parent?: types.ESQLProperNode | undefined): void;
243
246
  protected walkList(list: types.ESQLAstNode[], parent: types.ESQLProperNode | undefined): void;
244
247
  walkCommand(node: types.ESQLAstCommand, parent: types.ESQLAstQueryExpression | undefined): void;
@@ -1 +1 @@
1
- {"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../../src/ast/walker/walker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../../src/ast/walker/walker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { PromQLAstNode, PromQLAstQueryExpression } from '../types';
2
+ /**
3
+ * Finds the deepest PromQL AST node at or after the given character position.
4
+ *
5
+ * - If `pos` falls inside a node, descends into that node looking for the most
6
+ * specific descendant containing `pos`.
7
+ * - If no node contains `pos`, returns the first node whose `location.min` is
8
+ * greater than `pos`.
9
+ * - Returns `null` if no such node exists (i.e. `pos` is past the end of the
10
+ * tree).
11
+ */
12
+ export declare const findNodeAtOrAfter: (ast: PromQLAstQueryExpression, pos: number) => PromQLAstNode | null;
13
+ /**
14
+ * Finds the deepest PromQL AST node at or before the given character position.
15
+ *
16
+ * - If `pos` falls inside a node, descends into that node looking for the most
17
+ * specific descendant containing `pos`.
18
+ * - If no node contains `pos`, returns the last node whose `location.max` is
19
+ * less than `pos`.
20
+ * - Returns `null` if no such node exists (i.e. `pos` is before the start of
21
+ * the tree).
22
+ */
23
+ export declare const findNodeAtOrBefore: (ast: PromQLAstQueryExpression, pos: number) => PromQLAstNode | null;
24
+ //# sourceMappingURL=find_node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find_node.d.ts","sourceRoot":"","sources":["../../../../src/embedded_languages/promql/ast/find_node.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAqDxE;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAC5B,KAAK,wBAAwB,EAC7B,KAAK,MAAM,KACV,aAAa,GAAG,IAA6B,CAAC;AAEjD;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,GAC7B,KAAK,wBAAwB,EAC7B,KAAK,MAAM,KACV,aAAa,GAAG,IAA8B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"traversal.d.ts","sourceRoot":"","sources":["../../../../src/embedded_languages/promql/ast/traversal.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAiB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,CAmClF"}
1
+ {"version":3,"file":"traversal.d.ts","sourceRoot":"","sources":["../../../../src/embedded_languages/promql/ast/traversal.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAiB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,CAiFlF"}
@@ -0,0 +1,39 @@
1
+ import { type CommonTokenStream } from 'antlr4';
2
+ import type { ESQLAstCommentSingleLine } from '../../../types';
3
+ import type { PromQLAstQueryExpression } from '../types';
4
+ /**
5
+ * A collected comment decoration with its positional context.
6
+ */
7
+ export interface PromQLCommentDecoration {
8
+ type: 'comment';
9
+ /**
10
+ * Whether there is non-punctuation content to the left of this comment on
11
+ * the same line. When `true`, the comment is a trailing comment (e.g.
12
+ * `rate(x[5m]) # trailing`). When `false`, the comment occupies its own
13
+ * line (e.g. `# whole-line comment`).
14
+ */
15
+ hasContentToLeft: boolean;
16
+ /** The AST comment node. */
17
+ node: ESQLAstCommentSingleLine;
18
+ }
19
+ /**
20
+ * Collects all comments from the PromQL token stream.
21
+ *
22
+ * Iterates through every token (including hidden-channel tokens) and extracts
23
+ * comment decorations with their positional context.
24
+ *
25
+ * @param tokens ANTLR token stream from the PromQL lexer.
26
+ * @param offset Character offset to add to all locations (for embedded PromQL).
27
+ * @returns List of comment decorations in source order.
28
+ */
29
+ export declare const collectPromQLDecorations: (tokens: CommonTokenStream, offset?: number) => PromQLCommentDecoration[];
30
+ /**
31
+ * Attaches the comments collected by {@link collectPromQLDecorations} to the
32
+ * appropriate nodes in the PromQL AST. Similar attachment logic is used as
33
+ * in ES|QL.
34
+ *
35
+ * @param ast Root of the PromQL AST.
36
+ * @param comments Decorations collected from the token stream.
37
+ */
38
+ export declare const attachPromQLDecorations: (ast: PromQLAstQueryExpression, comments: PromQLCommentDecoration[]) => void;
39
+ //# sourceMappingURL=decorations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorations.d.ts","sourceRoot":"","sources":["../../../../src/embedded_languages/promql/parser/decorations.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAGhD,OAAO,KAAK,EAAE,wBAAwB,EAAyB,MAAM,gBAAgB,CAAC;AACtF,OAAO,KAAK,EAAiB,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAiBxE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,SAAS,CAAC;IAEhB;;;;;OAKG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B,4BAA4B;IAC5B,IAAI,EAAE,wBAAwB,CAAC;CAChC;AAkBD;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,GACnC,QAAQ,iBAAiB,EACzB,SAAQ,MAAU,KACjB,uBAAuB,EAsDzB,CAAC;AA2BF;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,GAClC,KAAK,wBAAwB,EAC7B,UAAU,uBAAuB,EAAE,KAClC,IAuBF,CAAC"}
@@ -11,6 +11,12 @@ export interface PromQLParseOptions {
11
11
  * The offset will be added to all location values in the AST.
12
12
  */
13
13
  offset?: number;
14
+ /**
15
+ * When `true`, comments are collected from the token stream and attached to
16
+ * AST nodes via the `formatting` property. Required for the pretty-printer
17
+ * to round-trip comments. Defaults to `false`.
18
+ */
19
+ withFormatting?: boolean;
14
20
  }
15
21
  /**
16
22
  * Parser for PromQL queries.
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/embedded_languages/promql/parser/parser.ts"],"names":[],"mappings":"AAOA,OAAO,EAAe,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,KAAK,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,qBAAa,YAAY;aA2CL,GAAG,EAAE,MAAM;aACX,OAAO,EAAE,kBAAkB;IA3C7C;;OAEG;IACH,gBAAuB,MAAM,GAAI,KAAK,MAAM,EAAE,UAAU,kBAAkB,kBAExE;IAEF;;;;;;;;;;;;;OAaG;IACH,gBAAuB,KAAK,GAAI,KAAK,MAAM,EAAE,UAAU,kBAAkB,KAAG,iBAAiB,CAE3F;IAEF;;;;;OAKG;IACH,gBAAuB,WAAW,GAAI,KAAK,MAAM,KAAG,WAAW,EAAE,CAE/D;IAEF,SAAgB,OAAO,EAAE,UAAU,CAAC;IACpC,SAAgB,KAAK,EAAE,WAAW,CAAC;IACnC,SAAgB,MAAM,EAAE,iBAAiB,CAAC;IAC1C,SAAgB,MAAM,EAAE,qBAAqB,CAAC;IAC9C,SAAgB,MAAM,sBAA6B;gBAGjC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,kBAAuB;IAclD;;OAEG;IACI,KAAK,IAAI,iBAAiB,CAAC,wBAAwB,CAAC;IA2B3D;;OAEG;IACI,WAAW,IAAI,WAAW,EAAE;CAIpC"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/embedded_languages/promql/parser/parser.ts"],"names":[],"mappings":"AAOA,OAAO,EAAe,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAI9D,OAAO,KAAK,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;GAKG;AACH,qBAAa,YAAY;aA2CL,GAAG,EAAE,MAAM;aACX,OAAO,EAAE,kBAAkB;IA3C7C;;OAEG;IACH,gBAAuB,MAAM,GAAI,KAAK,MAAM,EAAE,UAAU,kBAAkB,kBAExE;IAEF;;;;;;;;;;;;;OAaG;IACH,gBAAuB,KAAK,GAAI,KAAK,MAAM,EAAE,UAAU,kBAAkB,KAAG,iBAAiB,CAE3F;IAEF;;;;;OAKG;IACH,gBAAuB,WAAW,GAAI,KAAK,MAAM,KAAG,WAAW,EAAE,CAE/D;IAEF,SAAgB,OAAO,EAAE,UAAU,CAAC;IACpC,SAAgB,KAAK,EAAE,WAAW,CAAC;IACnC,SAAgB,MAAM,EAAE,iBAAiB,CAAC;IAC1C,SAAgB,MAAM,EAAE,qBAAqB,CAAC;IAC9C,SAAgB,MAAM,sBAA6B;gBAGjC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,kBAAuB;IAclD;;OAEG;IACI,KAAK,IAAI,iBAAiB,CAAC,wBAAwB,CAAC;IAiC3D;;OAEG;IACI,WAAW,IAAI,WAAW,EAAE;CAIpC"}
package/lib/index.js CHANGED
@@ -311,10 +311,13 @@ function* childrenOfPromqlNode(node) {
311
311
  return;
312
312
  }
313
313
  case "function": {
314
- if (node.grouping) {
314
+ if (node.grouping && node.groupingPosition !== "after") {
315
315
  yield node.grouping;
316
316
  }
317
317
  yield* node.args;
318
+ if (node.grouping && node.groupingPosition === "after") {
319
+ yield node.grouping;
320
+ }
318
321
  return;
319
322
  }
320
323
  case "selector": {
@@ -327,6 +330,49 @@ function* childrenOfPromqlNode(node) {
327
330
  if (value) yield value;
328
331
  return;
329
332
  }
333
+ case "binary-expression": {
334
+ yield node.left;
335
+ if (node.modifier) yield node.modifier;
336
+ yield node.right;
337
+ return;
338
+ }
339
+ case "unary-expression": {
340
+ yield node.arg;
341
+ return;
342
+ }
343
+ case "subquery": {
344
+ yield node.expr;
345
+ yield node.range;
346
+ if (node.resolution) yield node.resolution;
347
+ if (node.evaluation) yield node.evaluation;
348
+ return;
349
+ }
350
+ case "parens": {
351
+ if (node.child) yield node.child;
352
+ return;
353
+ }
354
+ case "evaluation": {
355
+ if (node.offset) yield node.offset;
356
+ if (node.at) yield node.at;
357
+ return;
358
+ }
359
+ case "offset": {
360
+ if (node.duration) yield node.duration;
361
+ return;
362
+ }
363
+ case "at": {
364
+ if (typeof node.value !== "string") yield node.value;
365
+ return;
366
+ }
367
+ case "modifier": {
368
+ yield* node.labels;
369
+ if (node.groupModifier) yield node.groupModifier;
370
+ return;
371
+ }
372
+ case "group-modifier": {
373
+ yield* node.labels;
374
+ return;
375
+ }
330
376
  }
331
377
  if ("args" in node && Array.isArray(node.args)) {
332
378
  yield* node.args;
@@ -1065,9 +1111,18 @@ var Walker = class _Walker {
1065
1111
  _Walker.walk(tree, { ...options, visitAny });
1066
1112
  };
1067
1113
  aborted = false;
1114
+ skippedChildren = false;
1068
1115
  abort() {
1069
1116
  this.aborted = true;
1070
1117
  }
1118
+ skipChildren() {
1119
+ this.skippedChildren = true;
1120
+ }
1121
+ readAndResetSkippedChildren() {
1122
+ const skipped = this.skippedChildren;
1123
+ this.skippedChildren = false;
1124
+ return skipped;
1125
+ }
1071
1126
  walk(tree, parent = void 0) {
1072
1127
  if (this.aborted) return;
1073
1128
  if (!tree) return;
@@ -1105,17 +1160,20 @@ var Walker = class _Walker {
1105
1160
  if (this.aborted) return;
1106
1161
  const { options } = this;
1107
1162
  (options.visitCommand ?? options.visitAny)?.(node, parent, this);
1163
+ if (this.readAndResetSkippedChildren()) return;
1108
1164
  this.walkList(node.args, node);
1109
1165
  }
1110
1166
  walkHeaderCommand(node, parent) {
1111
1167
  if (this.aborted) return;
1112
1168
  const { options } = this;
1113
1169
  (options.visitHeaderCommand ?? options.visitAny)?.(node, parent, this);
1170
+ if (this.readAndResetSkippedChildren()) return;
1114
1171
  this.walkList(node.args, node);
1115
1172
  }
1116
1173
  walkOption(node, parent) {
1117
1174
  const { options } = this;
1118
1175
  (options.visitCommandOption ?? options.visitAny)?.(node, parent, this);
1176
+ if (this.readAndResetSkippedChildren()) return;
1119
1177
  this.walkList(node.args, node);
1120
1178
  }
1121
1179
  walkExpression(node, parent = void 0) {
@@ -1130,11 +1188,13 @@ var Walker = class _Walker {
1130
1188
  walkListLiteral(node, parent) {
1131
1189
  const { options } = this;
1132
1190
  (options.visitListLiteral ?? options.visitAny)?.(node, parent, this);
1191
+ if (this.readAndResetSkippedChildren()) return;
1133
1192
  this.walkList(node.values, node);
1134
1193
  }
1135
1194
  walkSource(node, parent) {
1136
1195
  const { options } = this;
1137
1196
  (options.visitSource ?? options.visitAny)?.(node, parent, this);
1197
+ if (this.readAndResetSkippedChildren()) return;
1138
1198
  const children2 = [];
1139
1199
  if (node.prefix) {
1140
1200
  children2.push(node.prefix);
@@ -1151,6 +1211,7 @@ var Walker = class _Walker {
1151
1211
  const { options } = this;
1152
1212
  const { args } = node;
1153
1213
  (options.visitColumn ?? options.visitAny)?.(node, parent, this);
1214
+ if (this.readAndResetSkippedChildren()) return;
1154
1215
  if (args) {
1155
1216
  this.walkList(args, node);
1156
1217
  }
@@ -1158,27 +1219,32 @@ var Walker = class _Walker {
1158
1219
  walkOrder(node, parent) {
1159
1220
  const { options } = this;
1160
1221
  (options.visitOrder ?? options.visitAny)?.(node, parent, this);
1222
+ if (this.readAndResetSkippedChildren()) return;
1161
1223
  this.walkList(node.args, node);
1162
1224
  }
1163
1225
  walkInlineCast(node, parent) {
1164
1226
  const { options } = this;
1165
1227
  (options.visitInlineCast ?? options.visitAny)?.(node, parent, this);
1228
+ if (this.readAndResetSkippedChildren()) return;
1166
1229
  this.walkExpression(node.value, node);
1167
1230
  }
1168
1231
  walkFunction(node, parent = void 0) {
1169
1232
  const { options } = this;
1170
1233
  (options.visitFunction ?? options.visitAny)?.(node, parent, this);
1234
+ if (this.readAndResetSkippedChildren()) return;
1171
1235
  if (node.operator) this.walkSingleAstItem(node.operator, node);
1172
1236
  this.walkList(node.args, node);
1173
1237
  }
1174
1238
  walkMap(node, parent) {
1175
1239
  const { options } = this;
1176
1240
  (options.visitMap ?? options.visitAny)?.(node, parent, this);
1241
+ if (this.readAndResetSkippedChildren()) return;
1177
1242
  this.walkList(node.entries, node);
1178
1243
  }
1179
1244
  walkMapEntry(node, parent) {
1180
1245
  const { options } = this;
1181
1246
  (options.visitMapEntry ?? options.visitAny)?.(node, parent, this);
1247
+ if (this.readAndResetSkippedChildren()) return;
1182
1248
  if (options.order === "backward") {
1183
1249
  this.walkSingleAstItem(resolveItem(node.value), node);
1184
1250
  this.walkSingleAstItem(resolveItem(node.key), node);
@@ -1190,6 +1256,7 @@ var Walker = class _Walker {
1190
1256
  walkParens(node, parent) {
1191
1257
  const { options } = this;
1192
1258
  (options.visitParens ?? options.visitAny)?.(node, parent, this);
1259
+ if (this.readAndResetSkippedChildren()) return;
1193
1260
  if (node.child) {
1194
1261
  this.walkSingleAstItem(node.child, node);
1195
1262
  }
@@ -1197,6 +1264,7 @@ var Walker = class _Walker {
1197
1264
  walkQuery(node, parent) {
1198
1265
  const { options } = this;
1199
1266
  (options.visitQuery ?? options.visitAny)?.(node, parent, this);
1267
+ if (this.readAndResetSkippedChildren()) return;
1200
1268
  if (node.header && !options.skipHeader) {
1201
1269
  this.walkList(node.header, node);
1202
1270
  }
@@ -1265,6 +1333,7 @@ var Walker = class _Walker {
1265
1333
  }
1266
1334
  case "literal": {
1267
1335
  (options.visitLiteral ?? options.visitAny)?.(node, parent, this);
1336
+ this.readAndResetSkippedChildren();
1268
1337
  break;
1269
1338
  }
1270
1339
  case "list": {
@@ -1281,10 +1350,12 @@ var Walker = class _Walker {
1281
1350
  }
1282
1351
  case "identifier": {
1283
1352
  (options.visitIdentifier ?? options.visitAny)?.(node, parent, this);
1353
+ this.readAndResetSkippedChildren();
1284
1354
  break;
1285
1355
  }
1286
1356
  case "unknown": {
1287
1357
  (options.visitUnknown ?? options.visitAny)?.(node, parent, this);
1358
+ this.readAndResetSkippedChildren();
1288
1359
  break;
1289
1360
  }
1290
1361
  }
@@ -61132,6 +61203,140 @@ var PromQLCstToAstConverter = class {
61132
61203
  }
61133
61204
  };
61134
61205
 
61206
+ // src/embedded_languages/promql/ast/find_node.ts
61207
+ var sortedLocatedChildren = (node) => {
61208
+ const children2 = [];
61209
+ for (const child of childrenOfPromqlNode(node)) {
61210
+ if (child.location) children2.push(child);
61211
+ }
61212
+ children2.sort((a, b) => a.location.min - b.location.min);
61213
+ return children2;
61214
+ };
61215
+ var findForward = (node, pos) => {
61216
+ for (const child of sortedLocatedChildren(node)) {
61217
+ const { min, max } = child.location;
61218
+ if (min <= pos && max >= pos) {
61219
+ return findForward(child, pos) ?? child;
61220
+ }
61221
+ if (min > pos) {
61222
+ return child;
61223
+ }
61224
+ }
61225
+ return null;
61226
+ };
61227
+ var findBackward = (node, pos) => {
61228
+ const children2 = sortedLocatedChildren(node);
61229
+ for (let i = children2.length - 1; i >= 0; i--) {
61230
+ const child = children2[i];
61231
+ const { min, max } = child.location;
61232
+ if (min <= pos && max >= pos) {
61233
+ return findBackward(child, pos) ?? child;
61234
+ }
61235
+ if (max < pos) {
61236
+ return child;
61237
+ }
61238
+ }
61239
+ return null;
61240
+ };
61241
+ var findNodeAtOrAfter = (ast, pos) => findForward(ast, pos);
61242
+ var findNodeAtOrBefore = (ast, pos) => findBackward(ast, pos);
61243
+
61244
+ // src/embedded_languages/promql/parser/decorations.ts
61245
+ var HIDDEN_CHANNEL2 = 1;
61246
+ var punctuationChars2 = /* @__PURE__ */ new Set([".", ",", ";", ":", "(", ")", "[", "]", "{", "}"]);
61247
+ var isLikelyPunctuation2 = (text2) => text2.length === 1 && punctuationChars2.has(text2);
61248
+ var cleanCommentText = (text2) => {
61249
+ let end = text2.length;
61250
+ if (text2[end - 1] === "\n") {
61251
+ end--;
61252
+ }
61253
+ if (end > 0 && text2[end - 1] === "\r") {
61254
+ end--;
61255
+ }
61256
+ return text2.slice(1, end);
61257
+ };
61258
+ var collectPromQLDecorations = (tokens, offset = 0) => {
61259
+ const result = [];
61260
+ const list12 = tokens.tokens;
61261
+ const length = list12.length;
61262
+ let pos = 0;
61263
+ let hasContentToLeft = false;
61264
+ for (let i = 0; i < length - 1; i++) {
61265
+ const token = list12[i];
61266
+ const { channel, text: text2 } = token;
61267
+ const min = pos;
61268
+ const max = min + text2.length - 1;
61269
+ pos = max + 1;
61270
+ if (channel !== HIDDEN_CHANNEL2) {
61271
+ if (!isLikelyPunctuation2(text2)) {
61272
+ hasContentToLeft = true;
61273
+ }
61274
+ continue;
61275
+ }
61276
+ if (text2[0] !== "#") {
61277
+ if (text2.indexOf("\n") !== -1) {
61278
+ hasContentToLeft = false;
61279
+ }
61280
+ continue;
61281
+ }
61282
+ const cleanText = cleanCommentText(text2);
61283
+ const endsWithNewline = text2[text2.length - 1] === "\n";
61284
+ const maxOffset = endsWithNewline ? text2[text2.length - 2] === "\r" ? 2 : 1 : 0;
61285
+ const node = Builder.comment("single-line", cleanText, {
61286
+ min: min + offset,
61287
+ max: max - maxOffset + offset
61288
+ });
61289
+ result.push({
61290
+ type: "comment",
61291
+ hasContentToLeft,
61292
+ node
61293
+ });
61294
+ if (endsWithNewline) {
61295
+ hasContentToLeft = false;
61296
+ }
61297
+ }
61298
+ return result;
61299
+ };
61300
+ var ensureFormatting = (node) => {
61301
+ if (!node.formatting) {
61302
+ node.formatting = {};
61303
+ }
61304
+ return node.formatting;
61305
+ };
61306
+ var attachTopComment2 = (node, comment) => {
61307
+ const formatting = ensureFormatting(node);
61308
+ if (!formatting.top) formatting.top = [];
61309
+ formatting.top.push(comment);
61310
+ };
61311
+ var attachBottomComment2 = (node, comment) => {
61312
+ const formatting = ensureFormatting(node);
61313
+ if (!formatting.bottom) formatting.bottom = [];
61314
+ formatting.bottom.push(comment);
61315
+ };
61316
+ var attachTrailingComment = (node, comment) => {
61317
+ const formatting = ensureFormatting(node);
61318
+ formatting.rightSingleLine = comment;
61319
+ };
61320
+ var attachPromQLDecorations = (ast, comments) => {
61321
+ for (const comment of comments) {
61322
+ const { location } = comment.node;
61323
+ if (!location) continue;
61324
+ if (!comment.hasContentToLeft) {
61325
+ const target2 = findNodeAtOrAfter(ast, location.max);
61326
+ if (target2) {
61327
+ attachTopComment2(target2, comment.node);
61328
+ } else {
61329
+ attachBottomComment2(ast, comment.node);
61330
+ }
61331
+ continue;
61332
+ }
61333
+ const target = findNodeAtOrBefore(ast, location.min);
61334
+ if (target) {
61335
+ attachTrailingComment(target, comment.node);
61336
+ }
61337
+ }
61338
+ };
61339
+
61135
61340
  // src/embedded_languages/promql/parser/parser.ts
61136
61341
  var PromQLParser = class _PromQLParser {
61137
61342
  constructor(src2, options = {}) {
@@ -61197,6 +61402,11 @@ var PromQLParser = class _PromQLParser {
61197
61402
  errors: this.errors.getErrors()
61198
61403
  };
61199
61404
  }
61405
+ if (this.options.withFormatting) {
61406
+ this.tokens.fill();
61407
+ const comments = collectPromQLDecorations(this.tokens, this.options.offset ?? 0);
61408
+ attachPromQLDecorations(root, comments);
61409
+ }
61200
61410
  return {
61201
61411
  root,
61202
61412
  errors: this.errors.getErrors()