rawsql-ts 0.11.42-beta → 0.11.43-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.
Files changed (32) hide show
  1. package/README.md +0 -1
  2. package/dist/esm/index.min.js +15 -6
  3. package/dist/esm/index.min.js.map +2 -2
  4. package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +11 -18
  5. package/dist/esm/src/parsers/SqlPrintTokenParser.js +126 -218
  6. package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
  7. package/dist/esm/src/transformers/LinePrinter.d.ts +1 -0
  8. package/dist/esm/src/transformers/LinePrinter.js +22 -1
  9. package/dist/esm/src/transformers/LinePrinter.js.map +1 -1
  10. package/dist/esm/src/transformers/SqlFormatter.d.ts +0 -2
  11. package/dist/esm/src/transformers/SqlFormatter.js +1 -1
  12. package/dist/esm/src/transformers/SqlFormatter.js.map +1 -1
  13. package/dist/esm/src/transformers/SqlPrinter.d.ts +17 -2
  14. package/dist/esm/src/transformers/SqlPrinter.js +383 -18
  15. package/dist/esm/src/transformers/SqlPrinter.js.map +1 -1
  16. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  17. package/dist/index.min.js +15 -6
  18. package/dist/index.min.js.map +2 -2
  19. package/dist/src/parsers/SqlPrintTokenParser.d.ts +11 -18
  20. package/dist/src/parsers/SqlPrintTokenParser.js +126 -218
  21. package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
  22. package/dist/src/transformers/LinePrinter.d.ts +1 -0
  23. package/dist/src/transformers/LinePrinter.js +22 -1
  24. package/dist/src/transformers/LinePrinter.js.map +1 -1
  25. package/dist/src/transformers/SqlFormatter.d.ts +0 -2
  26. package/dist/src/transformers/SqlFormatter.js +0 -1
  27. package/dist/src/transformers/SqlFormatter.js.map +1 -1
  28. package/dist/src/transformers/SqlPrinter.d.ts +17 -2
  29. package/dist/src/transformers/SqlPrinter.js +383 -18
  30. package/dist/src/transformers/SqlPrinter.js.map +1 -1
  31. package/dist/tsconfig.tsbuildinfo +1 -1
  32. package/package.json +1 -1
@@ -29,9 +29,13 @@ class SqlPrinter {
29
29
  * @param options Optional style settings for pretty printing
30
30
  */
31
31
  constructor(options) {
32
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
32
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
33
33
  /** Track whether we are currently inside a WITH clause for full-oneline formatting */
34
34
  this.insideWithClause = false;
35
+ /** Pending line comment that needs a forced newline before next token */
36
+ this.pendingLineCommentBreak = null;
37
+ /** Accumulates lines when reconstructing multi-line block comments inside CommentBlocks */
38
+ this.smartCommentBlockBuilder = null;
35
39
  // Resolve logical options to their control character representations before applying defaults.
36
40
  const resolvedIndentChar = (0, FormatOptionResolver_1.resolveIndentCharOption)(options === null || options === void 0 ? void 0 : options.indentChar);
37
41
  const resolvedNewline = (0, FormatOptionResolver_1.resolveNewlineOption)(options === null || options === void 0 ? void 0 : options.newline);
@@ -47,19 +51,18 @@ class SqlPrinter {
47
51
  this.orBreak = (_f = options === null || options === void 0 ? void 0 : options.orBreak) !== null && _f !== void 0 ? _f : 'none';
48
52
  this.keywordCase = (_g = options === null || options === void 0 ? void 0 : options.keywordCase) !== null && _g !== void 0 ? _g : 'none';
49
53
  this.exportComment = (_h = options === null || options === void 0 ? void 0 : options.exportComment) !== null && _h !== void 0 ? _h : false;
50
- this.strictCommentPlacement = (_j = options === null || options === void 0 ? void 0 : options.strictCommentPlacement) !== null && _j !== void 0 ? _j : false;
51
- this.withClauseStyle = (_k = options === null || options === void 0 ? void 0 : options.withClauseStyle) !== null && _k !== void 0 ? _k : 'standard';
52
- this.commentStyle = (_l = options === null || options === void 0 ? void 0 : options.commentStyle) !== null && _l !== void 0 ? _l : 'block';
53
- this.parenthesesOneLine = (_m = options === null || options === void 0 ? void 0 : options.parenthesesOneLine) !== null && _m !== void 0 ? _m : false;
54
- this.betweenOneLine = (_o = options === null || options === void 0 ? void 0 : options.betweenOneLine) !== null && _o !== void 0 ? _o : false;
55
- this.valuesOneLine = (_p = options === null || options === void 0 ? void 0 : options.valuesOneLine) !== null && _p !== void 0 ? _p : false;
56
- this.joinOneLine = (_q = options === null || options === void 0 ? void 0 : options.joinOneLine) !== null && _q !== void 0 ? _q : false;
57
- this.caseOneLine = (_r = options === null || options === void 0 ? void 0 : options.caseOneLine) !== null && _r !== void 0 ? _r : false;
58
- this.subqueryOneLine = (_s = options === null || options === void 0 ? void 0 : options.subqueryOneLine) !== null && _s !== void 0 ? _s : false;
59
- this.indentNestedParentheses = (_t = options === null || options === void 0 ? void 0 : options.indentNestedParentheses) !== null && _t !== void 0 ? _t : false;
54
+ this.withClauseStyle = (_j = options === null || options === void 0 ? void 0 : options.withClauseStyle) !== null && _j !== void 0 ? _j : 'standard';
55
+ this.commentStyle = (_k = options === null || options === void 0 ? void 0 : options.commentStyle) !== null && _k !== void 0 ? _k : 'block';
56
+ this.parenthesesOneLine = (_l = options === null || options === void 0 ? void 0 : options.parenthesesOneLine) !== null && _l !== void 0 ? _l : false;
57
+ this.betweenOneLine = (_m = options === null || options === void 0 ? void 0 : options.betweenOneLine) !== null && _m !== void 0 ? _m : false;
58
+ this.valuesOneLine = (_o = options === null || options === void 0 ? void 0 : options.valuesOneLine) !== null && _o !== void 0 ? _o : false;
59
+ this.joinOneLine = (_p = options === null || options === void 0 ? void 0 : options.joinOneLine) !== null && _p !== void 0 ? _p : false;
60
+ this.caseOneLine = (_q = options === null || options === void 0 ? void 0 : options.caseOneLine) !== null && _q !== void 0 ? _q : false;
61
+ this.subqueryOneLine = (_r = options === null || options === void 0 ? void 0 : options.subqueryOneLine) !== null && _r !== void 0 ? _r : false;
62
+ this.indentNestedParentheses = (_s = options === null || options === void 0 ? void 0 : options.indentNestedParentheses) !== null && _s !== void 0 ? _s : false;
60
63
  this.linePrinter = new LinePrinter_1.LinePrinter(this.indentChar, this.indentSize, this.newline, this.commaBreak);
61
64
  // Initialize
62
- this.indentIncrementContainers = new Set((_u = options === null || options === void 0 ? void 0 : options.indentIncrementContainerTypes) !== null && _u !== void 0 ? _u : [
65
+ this.indentIncrementContainers = new Set((_t = options === null || options === void 0 ? void 0 : options.indentIncrementContainerTypes) !== null && _t !== void 0 ? _t : [
63
66
  SqlPrintToken_1.SqlPrintTokenContainerType.SelectClause,
64
67
  SqlPrintToken_1.SqlPrintTokenContainerType.FromClause,
65
68
  SqlPrintToken_1.SqlPrintTokenContainerType.WhereClause,
@@ -100,6 +103,8 @@ class SqlPrinter {
100
103
  // initialize
101
104
  this.linePrinter = new LinePrinter_1.LinePrinter(this.indentChar, this.indentSize, this.newline, this.commaBreak);
102
105
  this.insideWithClause = false; // Reset WITH clause context
106
+ this.pendingLineCommentBreak = null;
107
+ this.smartCommentBlockBuilder = null;
103
108
  if (this.linePrinter.lines.length > 0 && level !== this.linePrinter.lines[0].level) {
104
109
  this.linePrinter.lines[0].level = level;
105
110
  }
@@ -115,6 +120,23 @@ class SqlPrinter {
115
120
  if (this.shouldSkipToken(token)) {
116
121
  return;
117
122
  }
123
+ if (this.smartCommentBlockBuilder && token.containerType !== SqlPrintToken_1.SqlPrintTokenContainerType.CommentBlock && token.type !== SqlPrintToken_1.SqlPrintTokenType.commentNewline) {
124
+ this.flushSmartCommentBlockBuilder();
125
+ }
126
+ if (this.pendingLineCommentBreak !== null) {
127
+ if (!this.isOnelineMode()) {
128
+ this.linePrinter.appendNewline(this.pendingLineCommentBreak);
129
+ }
130
+ const shouldSkipToken = token.type === SqlPrintToken_1.SqlPrintTokenType.commentNewline;
131
+ this.pendingLineCommentBreak = null;
132
+ if (shouldSkipToken) {
133
+ return;
134
+ }
135
+ }
136
+ if (token.containerType === SqlPrintToken_1.SqlPrintTokenContainerType.CommentBlock) {
137
+ this.handleCommentBlockContainer(token, level);
138
+ return;
139
+ }
118
140
  const current = this.linePrinter.getCurrentLine();
119
141
  const isCaseContext = this.isCaseContext(token.containerType);
120
142
  const nextCaseContextDepth = isCaseContext ? caseContextDepth + 1 : caseContextDepth;
@@ -139,11 +161,8 @@ class SqlPrinter {
139
161
  this.handleJoinClauseToken(token, level);
140
162
  }
141
163
  else if (token.type === SqlPrintToken_1.SqlPrintTokenType.comment) {
142
- // Handle comments as regular tokens - let the standard processing handle everything
143
164
  if (this.exportComment) {
144
- // Note: Smart comment processing is handled at SqlPrintTokenParser level
145
- // via positioned comments system, so we don't need additional processing here
146
- this.linePrinter.appendText(token.text);
165
+ this.printCommentToken(token.text, level, parentContainerType);
147
166
  }
148
167
  }
149
168
  else if (token.type === SqlPrintToken_1.SqlPrintTokenType.space) {
@@ -198,6 +217,9 @@ class SqlPrinter {
198
217
  const childIndentParentActive = token.containerType === SqlPrintToken_1.SqlPrintTokenContainerType.ParenExpression ? shouldIndentNested : indentParentActive;
199
218
  this.appendToken(child, innerLevel, token.containerType, nextCaseContextDepth, childIndentParentActive);
200
219
  }
220
+ if (this.smartCommentBlockBuilder && this.smartCommentBlockBuilder.mode === 'line') {
221
+ this.flushSmartCommentBlockBuilder();
222
+ }
201
223
  // Exit WITH clause context when we finish processing WithClause container
202
224
  if (token.containerType === SqlPrintToken_1.SqlPrintTokenContainerType.WithClause && this.withClauseStyle === 'full-oneline') {
203
225
  this.insideWithClause = false;
@@ -299,6 +321,9 @@ class SqlPrinter {
299
321
  if (previousCommaBreak !== 'after') {
300
322
  this.linePrinter.commaBreak = 'after';
301
323
  }
324
+ if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
325
+ this.linePrinter.appendNewline(level);
326
+ }
302
327
  this.linePrinter.appendText(text);
303
328
  if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
304
329
  this.linePrinter.appendNewline(level);
@@ -431,6 +456,9 @@ class SqlPrinter {
431
456
  * Skips spaces in CommentBlocks when in specific CTE modes to prevent duplication.
432
457
  */
433
458
  handleSpaceToken(token, parentContainerType) {
459
+ if (this.smartCommentBlockBuilder && this.smartCommentBlockBuilder.mode === 'line') {
460
+ this.flushSmartCommentBlockBuilder();
461
+ }
434
462
  if (this.shouldSkipCommentBlockSpace(parentContainerType)) {
435
463
  const currentLine = this.linePrinter.getCurrentLine();
436
464
  if (currentLine.text !== '' && !currentLine.text.endsWith(' ')) {
@@ -449,6 +477,337 @@ class SqlPrinter {
449
477
  this.insideWithClause &&
450
478
  this.withClauseStyle === 'full-oneline';
451
479
  }
480
+ printCommentToken(text, level, parentContainerType) {
481
+ const trimmed = text.trim();
482
+ if (!trimmed) {
483
+ return;
484
+ }
485
+ if (this.commentStyle === 'smart' && parentContainerType === SqlPrintToken_1.SqlPrintTokenContainerType.CommentBlock) {
486
+ if (this.handleSmartCommentBlockToken(text, trimmed, level)) {
487
+ return;
488
+ }
489
+ }
490
+ if (this.commentStyle === 'smart') {
491
+ const normalized = this.normalizeCommentForSmart(trimmed);
492
+ if (normalized.lines.length > 1 || normalized.forceBlock) {
493
+ const blockText = this.buildBlockComment(normalized.lines, level);
494
+ this.linePrinter.appendText(blockText);
495
+ }
496
+ else {
497
+ const content = normalized.lines[0];
498
+ const lineText = content ? `-- ${content}` : '--';
499
+ if (parentContainerType === SqlPrintToken_1.SqlPrintTokenContainerType.CommentBlock) {
500
+ this.linePrinter.appendText(lineText);
501
+ this.pendingLineCommentBreak = level;
502
+ }
503
+ else {
504
+ this.linePrinter.appendText(lineText);
505
+ this.linePrinter.appendNewline(level);
506
+ }
507
+ }
508
+ }
509
+ else {
510
+ if (trimmed.startsWith('/*') && trimmed.endsWith('*/')) {
511
+ if (/\r?\n/.test(trimmed)) {
512
+ // Keep multi-line block comments intact by normalizing line endings once.
513
+ const newlineReplacement = this.isOnelineMode() ? ' ' : (typeof this.newline === 'string' ? this.newline : '\n');
514
+ const normalized = trimmed.replace(/\r?\n/g, newlineReplacement);
515
+ this.linePrinter.appendText(normalized);
516
+ }
517
+ else {
518
+ this.linePrinter.appendText(trimmed);
519
+ }
520
+ }
521
+ else {
522
+ this.linePrinter.appendText(trimmed);
523
+ }
524
+ if (trimmed.startsWith('--')) {
525
+ if (parentContainerType === SqlPrintToken_1.SqlPrintTokenContainerType.CommentBlock) {
526
+ this.pendingLineCommentBreak = level;
527
+ }
528
+ else {
529
+ this.linePrinter.appendNewline(level);
530
+ }
531
+ }
532
+ }
533
+ }
534
+ handleSmartCommentBlockToken(raw, trimmed, level) {
535
+ if (!this.smartCommentBlockBuilder) {
536
+ if (trimmed === '/*') {
537
+ // Begin assembling a multi-line block comment that is emitted as split tokens
538
+ this.smartCommentBlockBuilder = { lines: [], level, mode: 'block' };
539
+ return true;
540
+ }
541
+ const lineContent = this.extractLineCommentContent(trimmed);
542
+ if (lineContent !== null) {
543
+ this.smartCommentBlockBuilder = {
544
+ lines: [lineContent],
545
+ level,
546
+ mode: 'line',
547
+ };
548
+ return true;
549
+ }
550
+ return false;
551
+ }
552
+ if (this.smartCommentBlockBuilder.mode === 'block') {
553
+ if (trimmed === '*/') {
554
+ const { lines, level: blockLevel } = this.smartCommentBlockBuilder;
555
+ const blockText = this.buildBlockComment(lines, blockLevel);
556
+ this.linePrinter.appendText(blockText);
557
+ this.pendingLineCommentBreak = blockLevel;
558
+ this.smartCommentBlockBuilder = null;
559
+ return true;
560
+ }
561
+ this.smartCommentBlockBuilder.lines.push(this.normalizeSmartBlockLine(raw));
562
+ return true;
563
+ }
564
+ const content = this.extractLineCommentContent(trimmed);
565
+ if (content !== null) {
566
+ this.smartCommentBlockBuilder.lines.push(content);
567
+ return true;
568
+ }
569
+ this.flushSmartCommentBlockBuilder();
570
+ return false;
571
+ }
572
+ handleCommentBlockContainer(token, level) {
573
+ var _a;
574
+ if (!this.exportComment) {
575
+ return;
576
+ }
577
+ if (this.commentStyle !== 'smart') {
578
+ const rawLines = this.extractRawCommentBlockLines(token);
579
+ if (rawLines.length > 0) {
580
+ const normalizedBlocks = rawLines.map(line => `/* ${line} */`).join(' ');
581
+ const hasTrailingSpace = (_a = token.innerTokens) === null || _a === void 0 ? void 0 : _a.some(child => child.type === SqlPrintToken_1.SqlPrintTokenType.space && child.text.includes(' '));
582
+ this.linePrinter.appendText(hasTrailingSpace ? `${normalizedBlocks} ` : normalizedBlocks);
583
+ return;
584
+ }
585
+ for (const child of token.innerTokens) {
586
+ this.appendToken(child, level, token.containerType, 0, false);
587
+ }
588
+ return;
589
+ }
590
+ const lines = this.collectCommentBlockLines(token);
591
+ if (lines.length === 0 && !this.smartCommentBlockBuilder) {
592
+ // No meaningful content; treat as empty line comment to preserve spacing
593
+ this.smartCommentBlockBuilder = {
594
+ lines: [''],
595
+ level,
596
+ mode: 'line',
597
+ };
598
+ return;
599
+ }
600
+ if (!this.smartCommentBlockBuilder || this.smartCommentBlockBuilder.mode !== 'line') {
601
+ this.smartCommentBlockBuilder = {
602
+ lines: [...lines],
603
+ level,
604
+ mode: 'line',
605
+ };
606
+ }
607
+ else {
608
+ this.smartCommentBlockBuilder.lines.push(...lines);
609
+ }
610
+ }
611
+ normalizeSmartBlockLine(raw) {
612
+ // Remove trailing whitespace that only carries formatting artifacts
613
+ let line = raw.replace(/\s+$/g, '');
614
+ if (!line) {
615
+ return '';
616
+ }
617
+ if (line.startsWith(' ')) {
618
+ line = line.slice(2);
619
+ }
620
+ if (line.startsWith('* ')) {
621
+ return line.slice(2);
622
+ }
623
+ if (line === '*') {
624
+ return '';
625
+ }
626
+ if (line.startsWith('*')) {
627
+ return line.slice(1);
628
+ }
629
+ return line;
630
+ }
631
+ extractLineCommentContent(trimmed) {
632
+ if (trimmed.startsWith('--')) {
633
+ return trimmed.slice(2).trimStart();
634
+ }
635
+ if (trimmed.startsWith('/*') && trimmed.endsWith('*/')) {
636
+ const inner = trimmed.slice(2, -2).trim();
637
+ return inner;
638
+ }
639
+ return null;
640
+ }
641
+ flushSmartCommentBlockBuilder() {
642
+ var _a;
643
+ if (!this.smartCommentBlockBuilder) {
644
+ return;
645
+ }
646
+ const { lines, level, mode } = this.smartCommentBlockBuilder;
647
+ if (mode === 'line') {
648
+ if (lines.length > 1) {
649
+ const blockText = this.buildBlockComment(lines, level);
650
+ this.linePrinter.appendText(blockText);
651
+ }
652
+ else {
653
+ const content = (_a = lines[0]) !== null && _a !== void 0 ? _a : '';
654
+ const lineText = content ? `-- ${content}` : '--';
655
+ this.linePrinter.appendText(lineText);
656
+ }
657
+ if (!this.isOnelineMode()) {
658
+ this.linePrinter.appendNewline(level);
659
+ }
660
+ this.pendingLineCommentBreak = null;
661
+ }
662
+ this.smartCommentBlockBuilder = null;
663
+ }
664
+ collectCommentBlockLines(token) {
665
+ var _a;
666
+ const lines = [];
667
+ let collectingBlock = false;
668
+ for (const child of (_a = token.innerTokens) !== null && _a !== void 0 ? _a : []) {
669
+ if (child.type === SqlPrintToken_1.SqlPrintTokenType.comment) {
670
+ const trimmed = child.text.trim();
671
+ if (trimmed === '/*') {
672
+ collectingBlock = true;
673
+ continue;
674
+ }
675
+ if (trimmed === '*/') {
676
+ collectingBlock = false;
677
+ continue;
678
+ }
679
+ if (collectingBlock) {
680
+ lines.push(this.normalizeSmartBlockLine(child.text));
681
+ continue;
682
+ }
683
+ const content = this.extractLineCommentContent(trimmed);
684
+ if (content !== null) {
685
+ lines.push(content);
686
+ }
687
+ }
688
+ }
689
+ return lines;
690
+ }
691
+ extractRawCommentBlockLines(token) {
692
+ var _a;
693
+ const lines = [];
694
+ let collectingBlock = false;
695
+ for (const child of (_a = token.innerTokens) !== null && _a !== void 0 ? _a : []) {
696
+ if (child.type === SqlPrintToken_1.SqlPrintTokenType.comment) {
697
+ const text = child.text;
698
+ const trimmed = text.trim();
699
+ if (trimmed === '/*') {
700
+ collectingBlock = true;
701
+ continue;
702
+ }
703
+ if (trimmed === '*/') {
704
+ collectingBlock = false;
705
+ continue;
706
+ }
707
+ if (collectingBlock) {
708
+ if (trimmed.length > 0) {
709
+ lines.push(trimmed);
710
+ }
711
+ continue;
712
+ }
713
+ }
714
+ }
715
+ return lines;
716
+ }
717
+ normalizeCommentForSmart(text) {
718
+ const trimmed = text.trim();
719
+ let source = trimmed;
720
+ let forceBlock = false;
721
+ if (trimmed.startsWith('--')) {
722
+ source = trimmed.slice(2);
723
+ }
724
+ else if (trimmed.startsWith('/*') && trimmed.endsWith('*/')) {
725
+ const inner = trimmed.slice(2, -2);
726
+ const normalizedInner = inner.replace(/\r?\n/g, '\n');
727
+ if (normalizedInner.includes('\n')) {
728
+ forceBlock = true;
729
+ source = inner;
730
+ }
731
+ else {
732
+ source = inner;
733
+ if (!source.trim()) {
734
+ source = trimmed;
735
+ }
736
+ }
737
+ }
738
+ const escaped = this.escapeCommentDelimiters(source);
739
+ const normalized = escaped.replace(/\r?\n/g, '\n');
740
+ const rawSegments = normalized.split('\n');
741
+ const processedLines = [];
742
+ const processedRaw = [];
743
+ for (const segment of rawSegments) {
744
+ const rawTrimmed = segment.trim();
745
+ const sanitized = this.sanitizeCommentLine(segment);
746
+ if (sanitized.length > 0) {
747
+ processedLines.push(sanitized);
748
+ processedRaw.push(rawTrimmed);
749
+ }
750
+ }
751
+ let lines = processedLines;
752
+ if (lines.length === 0) {
753
+ lines = [''];
754
+ }
755
+ if (!forceBlock && lines.length === 1 && !lines[0] && trimmed.startsWith('/*') && trimmed.endsWith('*/')) {
756
+ const escapedFull = this.escapeCommentDelimiters(trimmed);
757
+ lines = [this.sanitizeCommentLine(escapedFull)];
758
+ }
759
+ if (!forceBlock && lines.length > 1) {
760
+ forceBlock = true;
761
+ }
762
+ lines = lines.map((line, index) => {
763
+ var _a;
764
+ if (/^[-=_+*#]+$/.test(line)) {
765
+ const rawLine = (_a = processedRaw[index]) !== null && _a !== void 0 ? _a : line;
766
+ const normalizedRaw = rawLine.replace(/\s+/g, '');
767
+ if (normalizedRaw.length >= line.length) {
768
+ return normalizedRaw;
769
+ }
770
+ }
771
+ return line;
772
+ });
773
+ return { lines, forceBlock };
774
+ }
775
+ buildBlockComment(lines, level) {
776
+ var _a, _b, _c;
777
+ if (lines.length <= 1) {
778
+ const content = (_a = lines[0]) !== null && _a !== void 0 ? _a : '';
779
+ return content ? `/* ${content} */` : '/* */';
780
+ }
781
+ const newline = this.newline === ' ' ? '\n' : this.newline;
782
+ const currentLevel = (_c = (_b = this.linePrinter.getCurrentLine()) === null || _b === void 0 ? void 0 : _b.level) !== null && _c !== void 0 ? _c : level;
783
+ const baseIndent = this.getIndentString(currentLevel);
784
+ const unitIndent = ' ';
785
+ const innerIndent = baseIndent + unitIndent;
786
+ const body = lines.map(line => `${innerIndent}${line}`).join(newline);
787
+ const closing = `${baseIndent}*/`;
788
+ return `/*${newline}${body}${newline}${closing}`;
789
+ }
790
+ getIndentString(level) {
791
+ if (level <= 0) {
792
+ return '';
793
+ }
794
+ if (this.indentSize <= 0) {
795
+ return ' '.repeat(level);
796
+ }
797
+ const unit = typeof this.indentChar === 'string' ? this.indentChar : '';
798
+ return unit.repeat(this.indentSize * level);
799
+ }
800
+ sanitizeCommentLine(content) {
801
+ let sanitized = content;
802
+ sanitized = sanitized.replace(/\u2028|\u2029/g, ' ');
803
+ sanitized = sanitized.replace(/\s+/g, ' ').trim();
804
+ return sanitized;
805
+ }
806
+ escapeCommentDelimiters(content) {
807
+ return content
808
+ .replace(/\/\*/g, '\\/\\*')
809
+ .replace(/\*\//g, '*\\/');
810
+ }
452
811
  /**
453
812
  * Handles commentNewline tokens with conditional newline behavior.
454
813
  * In multiline mode (newline !== ' '), adds a newline after comments.
@@ -456,6 +815,14 @@ class SqlPrinter {
456
815
  * Skips newlines in CTE modes (full-oneline, cte-oneline) to maintain one-line format.
457
816
  */
458
817
  handleCommentNewlineToken(token, level) {
818
+ if (this.smartCommentBlockBuilder) {
819
+ return;
820
+ }
821
+ if (this.pendingLineCommentBreak !== null) {
822
+ this.linePrinter.appendNewline(this.pendingLineCommentBreak);
823
+ this.pendingLineCommentBreak = null;
824
+ return;
825
+ }
459
826
  if (this.shouldSkipCommentNewline()) {
460
827
  return;
461
828
  }
@@ -504,7 +871,6 @@ class SqlPrinter {
504
871
  orBreak: this.orBreak,
505
872
  keywordCase: this.keywordCase,
506
873
  exportComment: false,
507
- strictCommentPlacement: this.strictCommentPlacement,
508
874
  withClauseStyle: 'standard', // Prevent recursive processing
509
875
  indentNestedParentheses: false,
510
876
  });
@@ -536,7 +902,6 @@ class SqlPrinter {
536
902
  orBreak: 'none', // Disable OR-based line breaks
537
903
  keywordCase: this.keywordCase,
538
904
  exportComment: this.exportComment,
539
- strictCommentPlacement: this.strictCommentPlacement,
540
905
  withClauseStyle: 'standard',
541
906
  parenthesesOneLine: false, // Prevent recursive processing (avoid infinite loops)
542
907
  betweenOneLine: false, // Prevent recursive processing (avoid infinite loops)
@@ -1 +1 @@
1
- {"version":3,"file":"SqlPrinter.js","sourceRoot":"","sources":["../../../src/transformers/SqlPrinter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqlPrinter.js","sourceRoot":"","sources":["../../../src/transformers/SqlPrinter.ts"],"names":[],"mappings":"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"}