@k-l-lambda/lilylet 0.1.63 → 0.1.65

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 (104) hide show
  1. package/lib/lilylet/grammar.jison.js +1 -10
  2. package/lib/lilylet/meiEncoder.js +58 -40
  3. package/lib/source/abc/abc.d.ts +102 -0
  4. package/lib/source/abc/abc.js +25 -0
  5. package/lib/source/abc/parser.d.ts +3 -0
  6. package/lib/source/abc/parser.js +6 -0
  7. package/lib/source/lilylet/abcDecoder.d.ts +25 -0
  8. package/lib/source/lilylet/abcDecoder.js +1035 -0
  9. package/lib/source/lilylet/index.d.ts +10 -0
  10. package/lib/source/lilylet/index.js +10 -0
  11. package/lib/source/lilylet/lilypondDecoder.d.ts +29 -0
  12. package/lib/source/lilylet/lilypondDecoder.js +1223 -0
  13. package/lib/source/lilylet/lilypondEncoder.d.ts +34 -0
  14. package/lib/source/lilylet/lilypondEncoder.js +893 -0
  15. package/lib/source/lilylet/meiEncoder.d.ts +8 -0
  16. package/lib/source/lilylet/meiEncoder.js +1985 -0
  17. package/lib/source/lilylet/musicXmlDecoder.d.ts +20 -0
  18. package/lib/source/lilylet/musicXmlDecoder.js +1195 -0
  19. package/lib/source/lilylet/musicXmlEncoder.d.ts +15 -0
  20. package/lib/source/lilylet/musicXmlEncoder.js +701 -0
  21. package/lib/source/lilylet/musicXmlTypes.d.ts +199 -0
  22. package/lib/source/lilylet/musicXmlTypes.js +7 -0
  23. package/lib/source/lilylet/musicXmlUtils.d.ts +92 -0
  24. package/lib/source/lilylet/musicXmlUtils.js +469 -0
  25. package/lib/source/lilylet/parser.d.ts +14 -0
  26. package/lib/source/lilylet/parser.js +161 -0
  27. package/lib/source/lilylet/serializer.d.ts +11 -0
  28. package/lib/source/lilylet/serializer.js +791 -0
  29. package/lib/source/lilylet/types.d.ts +253 -0
  30. package/lib/source/lilylet/types.js +100 -0
  31. package/lib/tests/abc-abcjs-parse.d.ts +8 -0
  32. package/lib/tests/abc-abcjs-parse.js +90 -0
  33. package/lib/tests/abc-abcjs-svg.d.ts +1 -0
  34. package/lib/tests/abc-abcjs-svg.js +143 -0
  35. package/lib/tests/abc-decoder.d.ts +1 -0
  36. package/lib/tests/abc-decoder.js +67 -0
  37. package/lib/tests/abc-mei-compare.d.ts +1 -0
  38. package/lib/tests/abc-mei-compare.js +525 -0
  39. package/lib/tests/auto-beam.d.ts +9 -0
  40. package/lib/tests/auto-beam.js +151 -0
  41. package/lib/tests/computeMeiHashes.d.ts +1 -0
  42. package/lib/tests/computeMeiHashes.js +87 -0
  43. package/lib/tests/encoder-mutation.d.ts +9 -0
  44. package/lib/tests/encoder-mutation.js +110 -0
  45. package/lib/tests/gpt-review-issues.d.ts +5 -0
  46. package/lib/tests/gpt-review-issues.js +255 -0
  47. package/lib/tests/json-to-lyl.d.ts +1 -0
  48. package/lib/tests/json-to-lyl.js +18 -0
  49. package/lib/tests/lilypond-roundtrip.d.ts +7 -0
  50. package/lib/tests/lilypond-roundtrip.js +558 -0
  51. package/lib/tests/lilypondDecoder.d.ts +6 -0
  52. package/lib/tests/lilypondDecoder.js +95 -0
  53. package/lib/tests/ly-to-lyl.d.ts +1 -0
  54. package/lib/tests/ly-to-lyl.js +12 -0
  55. package/lib/tests/mei.d.ts +1 -0
  56. package/lib/tests/mei.js +278 -0
  57. package/lib/tests/musicxml-decoder.d.ts +4 -0
  58. package/lib/tests/musicxml-decoder.js +61 -0
  59. package/lib/tests/musicxml-detail.d.ts +4 -0
  60. package/lib/tests/musicxml-detail.js +85 -0
  61. package/lib/tests/musicxml-fprod.d.ts +9 -0
  62. package/lib/tests/musicxml-fprod.js +153 -0
  63. package/lib/tests/musicxml-roundtrip.d.ts +7 -0
  64. package/lib/tests/musicxml-roundtrip.js +296 -0
  65. package/lib/tests/musicxml-to-mei.d.ts +6 -0
  66. package/lib/tests/musicxml-to-mei.js +115 -0
  67. package/lib/tests/parser.d.ts +1 -0
  68. package/lib/tests/parser.js +17 -0
  69. package/lib/tests/render-k283.d.ts +1 -0
  70. package/lib/tests/render-k283.js +33 -0
  71. package/lib/tests/render-lyl.d.ts +1 -0
  72. package/lib/tests/render-lyl.js +35 -0
  73. package/lib/tests/unit/afterGraceInsideTuplet.test.d.ts +23 -0
  74. package/lib/tests/unit/afterGraceInsideTuplet.test.js +186 -0
  75. package/lib/tests/unit/changeStaffBeforeTuplet.test.d.ts +21 -0
  76. package/lib/tests/unit/changeStaffBeforeTuplet.test.js +356 -0
  77. package/lib/tests/unit/crossStaffDecoder.test.d.ts +15 -0
  78. package/lib/tests/unit/crossStaffDecoder.test.js +147 -0
  79. package/lib/tests/unit/crossStaffEdgeCases.test.d.ts +1 -0
  80. package/lib/tests/unit/crossStaffEdgeCases.test.js +209 -0
  81. package/lib/tests/unit/crossStaffMultiMeasure.test.d.ts +15 -0
  82. package/lib/tests/unit/crossStaffMultiMeasure.test.js +231 -0
  83. package/lib/tests/unit/fullMeasureRestDecoder.test.d.ts +11 -0
  84. package/lib/tests/unit/fullMeasureRestDecoder.test.js +154 -0
  85. package/lib/tests/unit/gptReviewIssues.test.d.ts +8 -0
  86. package/lib/tests/unit/gptReviewIssues.test.js +240 -0
  87. package/lib/tests/unit/parallelMusicDecoder.test.d.ts +13 -0
  88. package/lib/tests/unit/parallelMusicDecoder.test.js +261 -0
  89. package/lib/tests/unit/partialWarning.test.d.ts +4 -0
  90. package/lib/tests/unit/partialWarning.test.js +65 -0
  91. package/lib/tests/unit/serializerRoundTrip.test.d.ts +8 -0
  92. package/lib/tests/unit/serializerRoundTrip.test.js +263 -0
  93. package/lib/tests/unit/staffInsideTuplet.test.d.ts +25 -0
  94. package/lib/tests/unit/staffInsideTuplet.test.js +133 -0
  95. package/lib/tests/unit/timesFirstNoteEscape.test.d.ts +16 -0
  96. package/lib/tests/unit/timesFirstNoteEscape.test.js +152 -0
  97. package/lib/tests/unit/tupletWithBaseDuration.test.d.ts +17 -0
  98. package/lib/tests/unit/tupletWithBaseDuration.test.js +139 -0
  99. package/lib/tests/unit/voiceStaffParsing.test.d.ts +13 -0
  100. package/lib/tests/unit/voiceStaffParsing.test.js +118 -0
  101. package/package.json +1 -1
  102. package/source/lilylet/grammar.jison.js +1 -10
  103. package/source/lilylet/lilylet.jison +1 -10
  104. package/source/lilylet/meiEncoder.ts +65 -40
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Lilylet to LilyPond Encoder
3
+ *
4
+ * Converts LilyletDoc to LilyPond (.ly) format.
5
+ * Uses relative pitch mode matching LilyPond's default behavior.
6
+ */
7
+ import { LilyletDoc } from "./types";
8
+ interface RenderOptions {
9
+ paper?: {
10
+ width?: number | string;
11
+ height?: number | string;
12
+ };
13
+ fontSize?: number;
14
+ withMIDI?: boolean;
15
+ autoBeaming?: boolean;
16
+ }
17
+ /**
18
+ * Encode a complete LilyletDoc to LilyPond format
19
+ *
20
+ * Structure:
21
+ * - Multiple parts → outer <<>>
22
+ * - Part with multiple staves → GrandStaff
23
+ * - Part with single staff → standalone Staff
24
+ */
25
+ export declare const encode: (doc: LilyletDoc, options?: RenderOptions) => string;
26
+ /**
27
+ * Encode LilyletDoc to minimal LilyPond (music content only, no headers)
28
+ */
29
+ export declare const encodeMinimal: (doc: LilyletDoc) => string;
30
+ declare const _default: {
31
+ encode: (doc: LilyletDoc, options?: RenderOptions) => string;
32
+ encodeMinimal: (doc: LilyletDoc) => string;
33
+ };
34
+ export default _default;