@oh-my-pi/pi-utils 18.2.5 → 18.2.7

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 (90) hide show
  1. package/CHANGELOG.md +12 -1
  2. package/THIRD-PARTY-NOTICES.txt +0 -37
  3. package/dist/types/mermaid-ascii.d.ts +12 -4
  4. package/package.json +2 -2
  5. package/src/logger.ts +3 -1
  6. package/src/mermaid-ascii.ts +13 -7
  7. package/src/module-timer.ts +7 -4
  8. package/dist/types/vendor/mermaid-ascii/ascii/ansi.d.ts +0 -41
  9. package/dist/types/vendor/mermaid-ascii/ascii/canvas.d.ts +0 -89
  10. package/dist/types/vendor/mermaid-ascii/ascii/class-diagram.d.ts +0 -7
  11. package/dist/types/vendor/mermaid-ascii/ascii/converter.d.ts +0 -12
  12. package/dist/types/vendor/mermaid-ascii/ascii/draw.d.ts +0 -66
  13. package/dist/types/vendor/mermaid-ascii/ascii/edge-bundling.d.ts +0 -48
  14. package/dist/types/vendor/mermaid-ascii/ascii/edge-routing.d.ts +0 -43
  15. package/dist/types/vendor/mermaid-ascii/ascii/er-diagram.d.ts +0 -7
  16. package/dist/types/vendor/mermaid-ascii/ascii/grid.d.ts +0 -56
  17. package/dist/types/vendor/mermaid-ascii/ascii/index.d.ts +0 -65
  18. package/dist/types/vendor/mermaid-ascii/ascii/multiline-utils.d.ts +0 -27
  19. package/dist/types/vendor/mermaid-ascii/ascii/pathfinder.d.ts +0 -17
  20. package/dist/types/vendor/mermaid-ascii/ascii/sequence.d.ts +0 -7
  21. package/dist/types/vendor/mermaid-ascii/ascii/shapes/circle.d.ts +0 -11
  22. package/dist/types/vendor/mermaid-ascii/ascii/shapes/corners.d.ts +0 -34
  23. package/dist/types/vendor/mermaid-ascii/ascii/shapes/diamond.d.ts +0 -11
  24. package/dist/types/vendor/mermaid-ascii/ascii/shapes/hexagon.d.ts +0 -11
  25. package/dist/types/vendor/mermaid-ascii/ascii/shapes/index.d.ts +0 -26
  26. package/dist/types/vendor/mermaid-ascii/ascii/shapes/rectangle.d.ts +0 -31
  27. package/dist/types/vendor/mermaid-ascii/ascii/shapes/rounded.d.ts +0 -11
  28. package/dist/types/vendor/mermaid-ascii/ascii/shapes/special.d.ts +0 -59
  29. package/dist/types/vendor/mermaid-ascii/ascii/shapes/stadium.d.ts +0 -17
  30. package/dist/types/vendor/mermaid-ascii/ascii/shapes/state.d.ts +0 -30
  31. package/dist/types/vendor/mermaid-ascii/ascii/shapes/types.d.ts +0 -55
  32. package/dist/types/vendor/mermaid-ascii/ascii/types.d.ts +0 -206
  33. package/dist/types/vendor/mermaid-ascii/ascii/validate.d.ts +0 -51
  34. package/dist/types/vendor/mermaid-ascii/ascii/xychart.d.ts +0 -2
  35. package/dist/types/vendor/mermaid-ascii/class/parser.d.ts +0 -6
  36. package/dist/types/vendor/mermaid-ascii/class/types.d.ts +0 -102
  37. package/dist/types/vendor/mermaid-ascii/er/parser.d.ts +0 -6
  38. package/dist/types/vendor/mermaid-ascii/er/types.d.ts +0 -76
  39. package/dist/types/vendor/mermaid-ascii/index.d.ts +0 -1
  40. package/dist/types/vendor/mermaid-ascii/multiline-utils.d.ts +0 -9
  41. package/dist/types/vendor/mermaid-ascii/parser.d.ts +0 -7
  42. package/dist/types/vendor/mermaid-ascii/sequence/parser.d.ts +0 -6
  43. package/dist/types/vendor/mermaid-ascii/sequence/types.d.ts +0 -130
  44. package/dist/types/vendor/mermaid-ascii/text-metrics.d.ts +0 -23
  45. package/dist/types/vendor/mermaid-ascii/types.d.ts +0 -114
  46. package/dist/types/vendor/mermaid-ascii/xychart/colors.d.ts +0 -25
  47. package/dist/types/vendor/mermaid-ascii/xychart/parser.d.ts +0 -6
  48. package/dist/types/vendor/mermaid-ascii/xychart/types.d.ts +0 -145
  49. package/src/vendor/mermaid-ascii/NOTICE +0 -33
  50. package/src/vendor/mermaid-ascii/ascii/ansi.ts +0 -409
  51. package/src/vendor/mermaid-ascii/ascii/canvas.ts +0 -478
  52. package/src/vendor/mermaid-ascii/ascii/class-diagram.ts +0 -699
  53. package/src/vendor/mermaid-ascii/ascii/converter.ts +0 -271
  54. package/src/vendor/mermaid-ascii/ascii/draw.ts +0 -1389
  55. package/src/vendor/mermaid-ascii/ascii/edge-bundling.ts +0 -328
  56. package/src/vendor/mermaid-ascii/ascii/edge-routing.ts +0 -297
  57. package/src/vendor/mermaid-ascii/ascii/er-diagram.ts +0 -441
  58. package/src/vendor/mermaid-ascii/ascii/grid.ts +0 -593
  59. package/src/vendor/mermaid-ascii/ascii/index.ts +0 -187
  60. package/src/vendor/mermaid-ascii/ascii/multiline-utils.ts +0 -78
  61. package/src/vendor/mermaid-ascii/ascii/pathfinder.ts +0 -277
  62. package/src/vendor/mermaid-ascii/ascii/sequence.ts +0 -460
  63. package/src/vendor/mermaid-ascii/ascii/shapes/circle.ts +0 -27
  64. package/src/vendor/mermaid-ascii/ascii/shapes/corners.ts +0 -127
  65. package/src/vendor/mermaid-ascii/ascii/shapes/diamond.ts +0 -27
  66. package/src/vendor/mermaid-ascii/ascii/shapes/hexagon.ts +0 -27
  67. package/src/vendor/mermaid-ascii/ascii/shapes/index.ts +0 -101
  68. package/src/vendor/mermaid-ascii/ascii/shapes/rectangle.ts +0 -175
  69. package/src/vendor/mermaid-ascii/ascii/shapes/rounded.ts +0 -27
  70. package/src/vendor/mermaid-ascii/ascii/shapes/special.ts +0 -296
  71. package/src/vendor/mermaid-ascii/ascii/shapes/stadium.ts +0 -114
  72. package/src/vendor/mermaid-ascii/ascii/shapes/state.ts +0 -192
  73. package/src/vendor/mermaid-ascii/ascii/shapes/types.ts +0 -73
  74. package/src/vendor/mermaid-ascii/ascii/types.ts +0 -273
  75. package/src/vendor/mermaid-ascii/ascii/validate.ts +0 -120
  76. package/src/vendor/mermaid-ascii/ascii/xychart.ts +0 -875
  77. package/src/vendor/mermaid-ascii/class/parser.ts +0 -290
  78. package/src/vendor/mermaid-ascii/class/types.ts +0 -121
  79. package/src/vendor/mermaid-ascii/er/parser.ts +0 -181
  80. package/src/vendor/mermaid-ascii/er/types.ts +0 -91
  81. package/src/vendor/mermaid-ascii/index.ts +0 -14
  82. package/src/vendor/mermaid-ascii/multiline-utils.ts +0 -30
  83. package/src/vendor/mermaid-ascii/parser.ts +0 -645
  84. package/src/vendor/mermaid-ascii/sequence/parser.ts +0 -207
  85. package/src/vendor/mermaid-ascii/sequence/types.ts +0 -146
  86. package/src/vendor/mermaid-ascii/text-metrics.ts +0 -74
  87. package/src/vendor/mermaid-ascii/types.ts +0 -164
  88. package/src/vendor/mermaid-ascii/xychart/colors.ts +0 -140
  89. package/src/vendor/mermaid-ascii/xychart/parser.ts +0 -115
  90. package/src/vendor/mermaid-ascii/xychart/types.ts +0 -150
@@ -1,120 +0,0 @@
1
- /**
2
- * ASCII Rendering Validation Utilities
3
- *
4
- * Provides validation functions for ASCII diagram output,
5
- * including diagonal line detection to ensure orthogonal-only routing.
6
- */
7
-
8
- /**
9
- * Characters that represent diagonal lines in ASCII and Unicode modes.
10
- * These should never appear in properly rendered diagrams.
11
- */
12
- export const DIAGONAL_CHARS = {
13
- ascii: ['/', '\\'],
14
- unicode: ['\u2571', '\u2572'], // ╱ ╲
15
- all: ['/', '\\', '\u2571', '\u2572'],
16
- } as const
17
-
18
- /**
19
- * Position of a diagonal character in ASCII output.
20
- */
21
- export interface DiagonalPosition {
22
- line: number
23
- col: number
24
- char: string
25
- }
26
-
27
- /**
28
- * Check if ASCII output contains any diagonal line characters.
29
- * Returns true if diagonals are found (which is an error condition).
30
- *
31
- * @param asciiOutput - The rendered ASCII diagram string
32
- * @returns true if diagonal characters are present, false otherwise
33
- */
34
- export function hasDiagonalLines(asciiOutput: string): boolean {
35
- return DIAGONAL_CHARS.all.some((char) => asciiOutput.includes(char))
36
- }
37
-
38
- /**
39
- * Find all diagonal line character positions in ASCII output.
40
- * Useful for debugging when diagonals are detected.
41
- *
42
- * Skips diagonal characters that appear inside node labels (between box borders).
43
- * This prevents false positives from labels like "feature/auth" or "release/1.0".
44
- *
45
- * @param asciiOutput - The rendered ASCII diagram string
46
- * @returns Array of positions where diagonal characters were found
47
- */
48
- export function findDiagonalLines(asciiOutput: string): DiagonalPosition[] {
49
- const positions: DiagonalPosition[] = []
50
- const lines = asciiOutput.split('\n')
51
-
52
- // Box-drawing characters that indicate node boundaries
53
- const boxBorders = new Set(['│', '┤', '├', '║', '┃', '|'])
54
-
55
- for (let lineNum = 0; lineNum < lines.length; lineNum++) {
56
- const line = lines[lineNum]!
57
-
58
- // Find all box border positions in this line
59
- const borderPositions: number[] = []
60
- for (let col = 0; col < line.length; col++) {
61
- if (boxBorders.has(line[col]!)) {
62
- borderPositions.push(col)
63
- }
64
- }
65
-
66
- for (let col = 0; col < line.length; col++) {
67
- const char = line[col]!
68
- if (DIAGONAL_CHARS.all.includes(char as '/' | '\\' | '╱' | '╲')) {
69
- // Check if this position is inside a node (between two box borders)
70
- // Find the nearest borders before and after this position
71
- let insideNode = false
72
- for (let i = 0; i < borderPositions.length - 1; i++) {
73
- const leftBorder = borderPositions[i]!
74
- const rightBorder = borderPositions[i + 1]!
75
- if (col > leftBorder && col < rightBorder) {
76
- // This diagonal char is between two borders - likely inside a node label
77
- insideNode = true
78
- break
79
- }
80
- }
81
-
82
- if (!insideNode) {
83
- positions.push({
84
- line: lineNum + 1, // 1-indexed for human readability
85
- col: col + 1,
86
- char,
87
- })
88
- }
89
- }
90
- }
91
- }
92
-
93
- return positions
94
- }
95
-
96
- /**
97
- * Assert that ASCII output contains no diagonal lines.
98
- * Throws an error with detailed position information if diagonals are found.
99
- *
100
- * @param asciiOutput - The rendered ASCII diagram string
101
- * @param context - Optional context string for error message (e.g., diagram name)
102
- * @throws Error if diagonal characters are present
103
- */
104
- export function assertNoDiagonals(asciiOutput: string, context?: string): void {
105
- if (!hasDiagonalLines(asciiOutput)) {
106
- return
107
- }
108
-
109
- const positions = findDiagonalLines(asciiOutput)
110
- const contextStr = context ? ` in "${context}"` : ''
111
- const positionStr = positions
112
- .map((p) => ` Line ${p.line}, Col ${p.col}: '${p.char}'`)
113
- .join('\n')
114
-
115
- throw new Error(
116
- `Diagonal lines detected${contextStr}. ` +
117
- `Edges must use orthogonal Manhattan routing (90° bends only).\n` +
118
- `Found ${positions.length} diagonal character(s):\n${positionStr}`
119
- )
120
- }