@vibe-agent-toolkit/resource-compiler 0.1.11

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 (119) hide show
  1. package/README.md +449 -0
  2. package/bin/vat-compile-resources +8 -0
  3. package/dist/cli/compile-command.d.ts +11 -0
  4. package/dist/cli/compile-command.d.ts.map +1 -0
  5. package/dist/cli/compile-command.js +34 -0
  6. package/dist/cli/compile-command.js.map +1 -0
  7. package/dist/cli/compile-utils.d.ts +41 -0
  8. package/dist/cli/compile-utils.d.ts.map +1 -0
  9. package/dist/cli/compile-utils.js +51 -0
  10. package/dist/cli/compile-utils.js.map +1 -0
  11. package/dist/cli/generate-types-command.d.ts +11 -0
  12. package/dist/cli/generate-types-command.d.ts.map +1 -0
  13. package/dist/cli/generate-types-command.js +107 -0
  14. package/dist/cli/generate-types-command.js.map +1 -0
  15. package/dist/cli/index.d.ts +17 -0
  16. package/dist/cli/index.d.ts.map +1 -0
  17. package/dist/cli/index.js +34 -0
  18. package/dist/cli/index.js.map +1 -0
  19. package/dist/cli/watch-command.d.ts +11 -0
  20. package/dist/cli/watch-command.d.ts.map +1 -0
  21. package/dist/cli/watch-command.js +88 -0
  22. package/dist/cli/watch-command.js.map +1 -0
  23. package/dist/compiler/dts-generator.d.ts +29 -0
  24. package/dist/compiler/dts-generator.d.ts.map +1 -0
  25. package/dist/compiler/dts-generator.js +133 -0
  26. package/dist/compiler/dts-generator.js.map +1 -0
  27. package/dist/compiler/index.d.ts +9 -0
  28. package/dist/compiler/index.d.ts.map +1 -0
  29. package/dist/compiler/index.js +9 -0
  30. package/dist/compiler/index.js.map +1 -0
  31. package/dist/compiler/javascript-generator.d.ts +22 -0
  32. package/dist/compiler/javascript-generator.d.ts.map +1 -0
  33. package/dist/compiler/javascript-generator.js +106 -0
  34. package/dist/compiler/javascript-generator.js.map +1 -0
  35. package/dist/compiler/markdown-compiler.d.ts +30 -0
  36. package/dist/compiler/markdown-compiler.d.ts.map +1 -0
  37. package/dist/compiler/markdown-compiler.js +125 -0
  38. package/dist/compiler/markdown-compiler.js.map +1 -0
  39. package/dist/compiler/markdown-parser.d.ts +32 -0
  40. package/dist/compiler/markdown-parser.d.ts.map +1 -0
  41. package/dist/compiler/markdown-parser.js +126 -0
  42. package/dist/compiler/markdown-parser.js.map +1 -0
  43. package/dist/compiler/types.d.ts +71 -0
  44. package/dist/compiler/types.d.ts.map +1 -0
  45. package/dist/compiler/types.js +5 -0
  46. package/dist/compiler/types.js.map +1 -0
  47. package/dist/index.d.ts +7 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +7 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/language-service/completions.d.ts +27 -0
  52. package/dist/language-service/completions.d.ts.map +1 -0
  53. package/dist/language-service/completions.js +147 -0
  54. package/dist/language-service/completions.js.map +1 -0
  55. package/dist/language-service/definitions.d.ts +14 -0
  56. package/dist/language-service/definitions.d.ts.map +1 -0
  57. package/dist/language-service/definitions.js +140 -0
  58. package/dist/language-service/definitions.js.map +1 -0
  59. package/dist/language-service/diagnostics.d.ts +13 -0
  60. package/dist/language-service/diagnostics.d.ts.map +1 -0
  61. package/dist/language-service/diagnostics.js +169 -0
  62. package/dist/language-service/diagnostics.js.map +1 -0
  63. package/dist/language-service/hover.d.ts +15 -0
  64. package/dist/language-service/hover.d.ts.map +1 -0
  65. package/dist/language-service/hover.js +125 -0
  66. package/dist/language-service/hover.js.map +1 -0
  67. package/dist/language-service/index.d.ts +26 -0
  68. package/dist/language-service/index.d.ts.map +1 -0
  69. package/dist/language-service/index.js +30 -0
  70. package/dist/language-service/index.js.map +1 -0
  71. package/dist/language-service/markdown-cache.d.ts +44 -0
  72. package/dist/language-service/markdown-cache.d.ts.map +1 -0
  73. package/dist/language-service/markdown-cache.js +77 -0
  74. package/dist/language-service/markdown-cache.js.map +1 -0
  75. package/dist/language-service/plugin.d.ts +15 -0
  76. package/dist/language-service/plugin.d.ts.map +1 -0
  77. package/dist/language-service/plugin.js +51 -0
  78. package/dist/language-service/plugin.js.map +1 -0
  79. package/dist/language-service/utils.d.ts +173 -0
  80. package/dist/language-service/utils.d.ts.map +1 -0
  81. package/dist/language-service/utils.js +341 -0
  82. package/dist/language-service/utils.js.map +1 -0
  83. package/dist/transformer/ast-helpers.d.ts +35 -0
  84. package/dist/transformer/ast-helpers.d.ts.map +1 -0
  85. package/dist/transformer/ast-helpers.js +153 -0
  86. package/dist/transformer/ast-helpers.js.map +1 -0
  87. package/dist/transformer/declaration-generator.d.ts +47 -0
  88. package/dist/transformer/declaration-generator.d.ts.map +1 -0
  89. package/dist/transformer/declaration-generator.js +53 -0
  90. package/dist/transformer/declaration-generator.js.map +1 -0
  91. package/dist/transformer/import-detector.d.ts +62 -0
  92. package/dist/transformer/import-detector.d.ts.map +1 -0
  93. package/dist/transformer/import-detector.js +115 -0
  94. package/dist/transformer/import-detector.js.map +1 -0
  95. package/dist/transformer/index.d.ts +11 -0
  96. package/dist/transformer/index.d.ts.map +1 -0
  97. package/dist/transformer/index.js +11 -0
  98. package/dist/transformer/index.js.map +1 -0
  99. package/dist/transformer/module-generator.d.ts +29 -0
  100. package/dist/transformer/module-generator.d.ts.map +1 -0
  101. package/dist/transformer/module-generator.js +48 -0
  102. package/dist/transformer/module-generator.js.map +1 -0
  103. package/dist/transformer/path-resolver.d.ts +32 -0
  104. package/dist/transformer/path-resolver.d.ts.map +1 -0
  105. package/dist/transformer/path-resolver.js +112 -0
  106. package/dist/transformer/path-resolver.js.map +1 -0
  107. package/dist/transformer/transformer.d.ts +46 -0
  108. package/dist/transformer/transformer.d.ts.map +1 -0
  109. package/dist/transformer/transformer.js +89 -0
  110. package/dist/transformer/transformer.js.map +1 -0
  111. package/dist/utils/copy-resources.d.ts +54 -0
  112. package/dist/utils/copy-resources.d.ts.map +1 -0
  113. package/dist/utils/copy-resources.js +77 -0
  114. package/dist/utils/copy-resources.js.map +1 -0
  115. package/dist/utils/index.d.ts +6 -0
  116. package/dist/utils/index.d.ts.map +1 -0
  117. package/dist/utils/index.js +5 -0
  118. package/dist/utils/index.js.map +1 -0
  119. package/package.json +84 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/language-service/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,2QAA2Q;AAE3Q,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,mBAAmB,IAAI,kCAAkC,EAAE,MAAM,iCAAiC,CAAC;AAG5G,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,EAAO,EACP,UAAe,EACf,QAAgB;IAEhB,IAAI,SAAc,CAAC;IAEnB,SAAS,KAAK,CAAC,IAAS;QACtB,IAAI,QAAQ,IAAI,IAAI,CAAC,GAAG,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAChD,SAAS,GAAG,IAAI,CAAC;YACjB,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,CAAC;IAClB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,yBAAyB,CACvC,EAAO,EACP,IAAS;IAET,sCAAsC;IACtC,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC7C,IAAI,EAAE,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAChF,OAAO,eAAe,CAAC,IAAI,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QACtF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,QAAQ,IAAI,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9E,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,6BAA6B,CAC3C,EAAO,EACP,IAAS,EACT,UAAe;IAEf,uDAAuD;IACvD,IAAI,CAAC,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yCAAyC;IACzC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAEpC,kCAAkC;IAClC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IAC/B,IAAI,CAAC,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6CAA6C;IAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACrC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kDAAkD;IAClD,MAAM,UAAU,GAAG,2BAA2B,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAChF,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AACpD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,2BAA2B,CAClC,EAAO,EACP,cAAsB,EACtB,UAAe;IAEf,IAAI,UAAU,GAAkB,IAAI,CAAC;IAErC,SAAS,KAAK,CAAC,IAAS;QACtB,IAAI,UAAU,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,4BAA4B;QAC5B,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YACjC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC7C,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,CAAC;gBACzC,OAAO;YACT,CAAC;YAED,uBAAuB;YACvB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;YAChC,IAAI,WAAW,EAAE,IAAI,KAAK,cAAc,EAAE,CAAC;gBACzC,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,sBAAsB;YACtB,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;YAC3C,IAAI,aAAa,EAAE,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;gBACvD,KAAK,MAAM,OAAO,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;oBAC7C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;wBACzC,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC;wBAClC,OAAO;oBACT,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,CAAC;IAClB,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAkB,EAClB,cAAsB,EACtB,eAAoB;IAEpB,OAAO,kCAAkC,CAAC,UAAU,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;AACzF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxC,4HAA4H;QAC5H,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAe,EACf,OAAe;IAEf,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,SAAS,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEjF,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACxC,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,UAAU,CAAC,qBAAqB,EAAE,MAAM,CAAC,GAAG,CAAA,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,EAAO,EACP,IAAS,EACT,QAAgB,EAChB,QAAgB;IAEhB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACnD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAS,EACT,YAAoB,EACpB,cAAsB;IAEtB,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAC1D,MAAM,YAAY,GAAG,mBAAmB,CAAC,YAAY,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;IAExF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACpD,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;AACpC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAS,EACT,YAAoB,EACpB,YAAoB,EACpB,cAAsB;IAEtB,0CAA0C;IAC1C,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAC1E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE1C,kDAAkD;IAClD,MAAM,WAAW,GAAG,YAAY;SAC7B,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC;SAC7B,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC;IACjF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,+BAA+B,CAC7C,EAAO,EACP,IAAS,EACT,KAAU,EACV,QAAgB,EAChB,QAAgB,EAChB,aAAqB,EACrB,QAA0D;IAE1D,IAAI,CAAC;QACH,kDAAkD;QAClD,MAAM,OAAO,GAAG,oBAAoB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QAED,sCAAsC;QACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,QAAQ,IAAI,KAAK,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,uCAAuC;QACvC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CACrC,2CAA2C,aAAa,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAC7E,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAO,EAAE,IAAS;IACpD,IAAI,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAgBD;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAkC;IACvE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAE3G,IAAI,CAAC;QACH,0DAA0D;QAC1D,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;QACxF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/C,CAAC;QAED,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CACrC,wCAAwC,aAAa,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1E,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * AST helper utilities for creating TypeScript nodes
3
+ * Converts MarkdownResource objects to TypeScript AST object literals
4
+ */
5
+ import ts from 'typescript';
6
+ import type { MarkdownResource } from '../compiler/types.js';
7
+ /**
8
+ * Convert a MarkdownResource to an AST object literal
9
+ *
10
+ * @param resource - The parsed markdown resource
11
+ * @returns Object literal expression representing the resource
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const resource = { frontmatter: { title: 'Test' }, content: '...', fragments: [...] };
16
+ * const ast = resourceToAst(resource);
17
+ * // Generates: { frontmatter: { title: 'Test' }, content: '...', fragments: [...] }
18
+ * ```
19
+ */
20
+ export declare function resourceToAst(resource: MarkdownResource): ts.ObjectLiteralExpression;
21
+ /**
22
+ * Create a const variable declaration statement
23
+ *
24
+ * @param name - Variable name
25
+ * @param initializer - Expression to assign
26
+ * @returns Variable statement node
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * const node = createConstDeclaration('Core', objectExpression);
31
+ * // Generates: const Core = { ... };
32
+ * ```
33
+ */
34
+ export declare function createConstDeclaration(name: string, initializer: ts.Expression): ts.VariableStatement;
35
+ //# sourceMappingURL=ast-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-helpers.d.ts","sourceRoot":"","sources":["../../src/transformer/ast-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,KAAK,EAAE,gBAAgB,EAAoB,MAAM,sBAAsB,CAAC;AAkH/E;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,gBAAgB,GAAG,EAAE,CAAC,uBAAuB,CAqBpF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,EAAE,CAAC,UAAU,GACzB,EAAE,CAAC,iBAAiB,CAetB"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * AST helper utilities for creating TypeScript nodes
3
+ * Converts MarkdownResource objects to TypeScript AST object literals
4
+ */
5
+ import ts from 'typescript';
6
+ /**
7
+ * Create a string literal node
8
+ *
9
+ * @param value - The string value
10
+ * @returns String literal node
11
+ */
12
+ function createStringLiteral(value) {
13
+ return ts.factory.createStringLiteral(value);
14
+ }
15
+ /**
16
+ * Create an object literal property assignment
17
+ *
18
+ * @param name - Property name
19
+ * @param value - Property value expression
20
+ * @returns Property assignment node
21
+ */
22
+ function createPropertyAssignment(name, value) {
23
+ return ts.factory.createPropertyAssignment(ts.factory.createIdentifier(name), value);
24
+ }
25
+ /**
26
+ * Convert a plain object to an AST object literal
27
+ *
28
+ * @param obj - Plain JavaScript object
29
+ * @returns Object literal expression node
30
+ */
31
+ function objectToAst(obj) {
32
+ const properties = [];
33
+ for (const [key, value] of Object.entries(obj)) {
34
+ let valueNode;
35
+ if (typeof value === 'string') {
36
+ valueNode = createStringLiteral(value);
37
+ }
38
+ else if (typeof value === 'number') {
39
+ valueNode = ts.factory.createNumericLiteral(value);
40
+ }
41
+ else if (typeof value === 'boolean') {
42
+ valueNode = value ? ts.factory.createTrue() : ts.factory.createFalse();
43
+ }
44
+ else if (value === null) {
45
+ valueNode = ts.factory.createNull();
46
+ }
47
+ else if (Array.isArray(value)) {
48
+ valueNode = arrayToAst(value);
49
+ }
50
+ else if (typeof value === 'object') {
51
+ valueNode = objectToAst(value);
52
+ }
53
+ else {
54
+ // Fallback for undefined or other types
55
+ valueNode = ts.factory.createIdentifier('undefined');
56
+ }
57
+ properties.push(createPropertyAssignment(key, valueNode));
58
+ }
59
+ return ts.factory.createObjectLiteralExpression(properties, true);
60
+ }
61
+ /**
62
+ * Convert an array to an AST array literal
63
+ *
64
+ * @param arr - Array of values
65
+ * @returns Array literal expression node
66
+ */
67
+ function arrayToAst(arr) {
68
+ const elements = [];
69
+ for (const item of arr) {
70
+ if (typeof item === 'string') {
71
+ elements.push(createStringLiteral(item));
72
+ }
73
+ else if (typeof item === 'number') {
74
+ elements.push(ts.factory.createNumericLiteral(item));
75
+ }
76
+ else if (typeof item === 'boolean') {
77
+ elements.push(item ? ts.factory.createTrue() : ts.factory.createFalse());
78
+ }
79
+ else if (item === null) {
80
+ elements.push(ts.factory.createNull());
81
+ }
82
+ else if (Array.isArray(item)) {
83
+ elements.push(arrayToAst(item));
84
+ }
85
+ else if (typeof item === 'object') {
86
+ elements.push(objectToAst(item));
87
+ }
88
+ else {
89
+ elements.push(ts.factory.createIdentifier('undefined'));
90
+ }
91
+ }
92
+ return ts.factory.createArrayLiteralExpression(elements, false);
93
+ }
94
+ /**
95
+ * Convert a MarkdownFragment to an AST object literal
96
+ *
97
+ * @param fragment - The markdown fragment
98
+ * @returns Object literal expression node
99
+ */
100
+ function fragmentToAst(fragment) {
101
+ return ts.factory.createObjectLiteralExpression([
102
+ createPropertyAssignment('heading', createStringLiteral(fragment.heading)),
103
+ createPropertyAssignment('slug', createStringLiteral(fragment.slug)),
104
+ createPropertyAssignment('camelCase', createStringLiteral(fragment.camelCase)),
105
+ createPropertyAssignment('header', createStringLiteral(fragment.header)),
106
+ createPropertyAssignment('body', createStringLiteral(fragment.body)),
107
+ createPropertyAssignment('text', createStringLiteral(fragment.text)),
108
+ ], true);
109
+ }
110
+ /**
111
+ * Convert a MarkdownResource to an AST object literal
112
+ *
113
+ * @param resource - The parsed markdown resource
114
+ * @returns Object literal expression representing the resource
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * const resource = { frontmatter: { title: 'Test' }, content: '...', fragments: [...] };
119
+ * const ast = resourceToAst(resource);
120
+ * // Generates: { frontmatter: { title: 'Test' }, content: '...', fragments: [...] }
121
+ * ```
122
+ */
123
+ export function resourceToAst(resource) {
124
+ // Convert frontmatter
125
+ const frontmatterAst = objectToAst(resource.frontmatter);
126
+ // Build fragments object with camelCase property access
127
+ const fragmentsObject = ts.factory.createObjectLiteralExpression(resource.fragments.map((fragment) => createPropertyAssignment(fragment.camelCase, fragmentToAst(fragment))), true);
128
+ // Create main object with meta, text, and fragments
129
+ return ts.factory.createObjectLiteralExpression([
130
+ createPropertyAssignment('meta', frontmatterAst),
131
+ createPropertyAssignment('text', createStringLiteral(resource.content)),
132
+ createPropertyAssignment('fragments', fragmentsObject),
133
+ ], true);
134
+ }
135
+ /**
136
+ * Create a const variable declaration statement
137
+ *
138
+ * @param name - Variable name
139
+ * @param initializer - Expression to assign
140
+ * @returns Variable statement node
141
+ *
142
+ * @example
143
+ * ```typescript
144
+ * const node = createConstDeclaration('Core', objectExpression);
145
+ * // Generates: const Core = { ... };
146
+ * ```
147
+ */
148
+ export function createConstDeclaration(name, initializer) {
149
+ return ts.factory.createVariableStatement(undefined, ts.factory.createVariableDeclarationList([
150
+ ts.factory.createVariableDeclaration(ts.factory.createIdentifier(name), undefined, undefined, initializer),
151
+ ], ts.NodeFlags.Const));
152
+ }
153
+ //# sourceMappingURL=ast-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-helpers.js","sourceRoot":"","sources":["../../src/transformer/ast-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Declaration file generator for markdown modules
3
+ * Generates .md.d.ts files that TypeScript can use for module resolution
4
+ */
5
+ import type { MarkdownResource } from '../compiler/types.js';
6
+ /**
7
+ * Generate a .md.d.ts declaration file for a markdown module
8
+ *
9
+ * For a file named `prompts.md`, this generates `prompts.md.d.ts` that contains
10
+ * the exports directly (not wrapped in declare module), allowing TypeScript to
11
+ * resolve the .md import using standard module resolution.
12
+ *
13
+ * @param mdPath - Absolute path to the markdown file (unused, kept for API compatibility)
14
+ * @param resource - Parsed markdown resource
15
+ * @returns Generated TypeScript declaration content
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const resource = parseMarkdown(content);
20
+ * const declaration = generateMarkdownDeclarationFile('/path/to/prompts.md', resource);
21
+ * // Outputs:
22
+ * // export interface Fragment {
23
+ * // readonly header: string;
24
+ * // readonly body: string;
25
+ * // readonly text: string;
26
+ * // }
27
+ * // export const meta: { ... };
28
+ * // export const text: string;
29
+ * // ...
30
+ * ```
31
+ */
32
+ export declare function generateMarkdownDeclarationFile(_mdPath: string, resource: MarkdownResource): string;
33
+ /**
34
+ * Get the output path for a .md.d.ts file
35
+ * Places the declaration file alongside the source .md file
36
+ *
37
+ * @param mdPath - Absolute path to the markdown file
38
+ * @returns Absolute path for the .md.d.ts file
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * getDeclarationPath('/path/to/file.md')
43
+ * // Returns: '/path/to/file.md.d.ts'
44
+ * ```
45
+ */
46
+ export declare function getDeclarationPath(mdPath: string): string;
47
+ //# sourceMappingURL=declaration-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declaration-generator.d.ts","sourceRoot":"","sources":["../../src/transformer/declaration-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,gBAAgB,GACzB,MAAM,CAIR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzD"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Declaration file generator for markdown modules
3
+ * Generates .md.d.ts files that TypeScript can use for module resolution
4
+ */
5
+ import { generateTypeScriptDeclarations } from '../compiler/dts-generator.js';
6
+ /**
7
+ * Generate a .md.d.ts declaration file for a markdown module
8
+ *
9
+ * For a file named `prompts.md`, this generates `prompts.md.d.ts` that contains
10
+ * the exports directly (not wrapped in declare module), allowing TypeScript to
11
+ * resolve the .md import using standard module resolution.
12
+ *
13
+ * @param mdPath - Absolute path to the markdown file (unused, kept for API compatibility)
14
+ * @param resource - Parsed markdown resource
15
+ * @returns Generated TypeScript declaration content
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const resource = parseMarkdown(content);
20
+ * const declaration = generateMarkdownDeclarationFile('/path/to/prompts.md', resource);
21
+ * // Outputs:
22
+ * // export interface Fragment {
23
+ * // readonly header: string;
24
+ * // readonly body: string;
25
+ * // readonly text: string;
26
+ * // }
27
+ * // export const meta: { ... };
28
+ * // export const text: string;
29
+ * // ...
30
+ * ```
31
+ */
32
+ export function generateMarkdownDeclarationFile(_mdPath, resource) {
33
+ // Simply return the declarations directly
34
+ // TypeScript will associate prompts.md.d.ts with prompts.md automatically
35
+ return generateTypeScriptDeclarations(resource);
36
+ }
37
+ /**
38
+ * Get the output path for a .md.d.ts file
39
+ * Places the declaration file alongside the source .md file
40
+ *
41
+ * @param mdPath - Absolute path to the markdown file
42
+ * @returns Absolute path for the .md.d.ts file
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * getDeclarationPath('/path/to/file.md')
47
+ * // Returns: '/path/to/file.md.d.ts'
48
+ * ```
49
+ */
50
+ export function getDeclarationPath(mdPath) {
51
+ return `${mdPath}.d.ts`;
52
+ }
53
+ //# sourceMappingURL=declaration-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declaration-generator.js","sourceRoot":"","sources":["../../src/transformer/declaration-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAG9E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,+BAA+B,CAC7C,OAAe,EACf,QAA0B;IAE1B,0CAA0C;IAC1C,0EAA0E;IAC1E,OAAO,8BAA8B,CAAC,QAAQ,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,GAAG,MAAM,OAAO,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Import detection utilities for TypeScript AST
3
+ * Detects .md imports and extracts import information
4
+ */
5
+ import ts from 'typescript';
6
+ /**
7
+ * Information about a detected .md import
8
+ */
9
+ export interface MarkdownImportInfo {
10
+ /** The import declaration node */
11
+ node: ts.ImportDeclaration;
12
+ /** The identifier name (e.g., "Core" in "import * as Core") */
13
+ identifier: string;
14
+ /** The module specifier path (e.g., "./prompts/core.md") */
15
+ modulePath: string;
16
+ /** The type of import (namespace, named, or default) */
17
+ importType: 'namespace' | 'named' | 'default';
18
+ }
19
+ /**
20
+ * Check if an import declaration imports a .md file
21
+ *
22
+ * @param node - The import declaration to check
23
+ * @returns True if it imports a .md file
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * import * as Core from './core.md'; // true
28
+ * import { foo } from './bar.ts'; // false
29
+ * ```
30
+ */
31
+ export declare function isMarkdownImport(node: ts.ImportDeclaration): boolean;
32
+ /**
33
+ * Extract import information from a markdown import declaration
34
+ *
35
+ * @param node - The import declaration node
36
+ * @returns Import information or null if invalid
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * // import * as Core from './core.md'
41
+ * extractImportInfo(node) // { identifier: 'Core', modulePath: './core.md', ... }
42
+ *
43
+ * // import Core from './core.md'
44
+ * extractImportInfo(node) // { identifier: 'Core', modulePath: './core.md', importType: 'default' }
45
+ * ```
46
+ */
47
+ export declare function extractImportInfo(node: ts.ImportDeclaration): MarkdownImportInfo | null;
48
+ /**
49
+ * Find all markdown imports in a source file
50
+ *
51
+ * @param sourceFile - The TypeScript source file to scan
52
+ * @returns Array of markdown import information
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * const sourceFile = ts.createSourceFile(...);
57
+ * const mdImports = findMarkdownImports(sourceFile);
58
+ * // [{ identifier: 'Core', modulePath: './core.md', ... }]
59
+ * ```
60
+ */
61
+ export declare function findMarkdownImports(sourceFile: ts.SourceFile): MarkdownImportInfo[];
62
+ //# sourceMappingURL=import-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-detector.d.ts","sourceRoot":"","sources":["../../src/transformer/import-detector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kCAAkC;IAClC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC;IAC3B,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,UAAU,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;CAC/C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,GAAG,OAAO,CASpE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,GAAG,kBAAkB,GAAG,IAAI,CAqDvF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,kBAAkB,EAAE,CAgBnF"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Import detection utilities for TypeScript AST
3
+ * Detects .md imports and extracts import information
4
+ */
5
+ import ts from 'typescript';
6
+ /**
7
+ * Check if an import declaration imports a .md file
8
+ *
9
+ * @param node - The import declaration to check
10
+ * @returns True if it imports a .md file
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import * as Core from './core.md'; // true
15
+ * import { foo } from './bar.ts'; // false
16
+ * ```
17
+ */
18
+ export function isMarkdownImport(node) {
19
+ const moduleSpecifier = node.moduleSpecifier;
20
+ if (!ts.isStringLiteral(moduleSpecifier)) {
21
+ return false;
22
+ }
23
+ const modulePath = moduleSpecifier.text;
24
+ return modulePath.endsWith('.md');
25
+ }
26
+ /**
27
+ * Extract import information from a markdown import declaration
28
+ *
29
+ * @param node - The import declaration node
30
+ * @returns Import information or null if invalid
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * // import * as Core from './core.md'
35
+ * extractImportInfo(node) // { identifier: 'Core', modulePath: './core.md', ... }
36
+ *
37
+ * // import Core from './core.md'
38
+ * extractImportInfo(node) // { identifier: 'Core', modulePath: './core.md', importType: 'default' }
39
+ * ```
40
+ */
41
+ export function extractImportInfo(node) {
42
+ if (!isMarkdownImport(node)) {
43
+ return null;
44
+ }
45
+ const moduleSpecifier = node.moduleSpecifier;
46
+ const modulePath = moduleSpecifier.text;
47
+ const importClause = node.importClause;
48
+ if (!importClause) {
49
+ return null;
50
+ }
51
+ // Handle namespace import: import * as Core from './core.md'
52
+ if (importClause.namedBindings && ts.isNamespaceImport(importClause.namedBindings)) {
53
+ const identifier = importClause.namedBindings.name.text;
54
+ return {
55
+ node,
56
+ identifier,
57
+ modulePath,
58
+ importType: 'namespace',
59
+ };
60
+ }
61
+ // Handle default import: import Core from './core.md'
62
+ if (importClause.name) {
63
+ const identifier = importClause.name.text;
64
+ return {
65
+ node,
66
+ identifier,
67
+ modulePath,
68
+ importType: 'default',
69
+ };
70
+ }
71
+ // Handle named imports: import { foo } from './core.md'
72
+ if (importClause.namedBindings && ts.isNamedImports(importClause.namedBindings)) {
73
+ // For now, we'll use the first named import
74
+ const firstElement = importClause.namedBindings.elements[0];
75
+ if (!firstElement) {
76
+ return null;
77
+ }
78
+ const identifier = firstElement.name.text;
79
+ return {
80
+ node,
81
+ identifier,
82
+ modulePath,
83
+ importType: 'named',
84
+ };
85
+ }
86
+ return null;
87
+ }
88
+ /**
89
+ * Find all markdown imports in a source file
90
+ *
91
+ * @param sourceFile - The TypeScript source file to scan
92
+ * @returns Array of markdown import information
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * const sourceFile = ts.createSourceFile(...);
97
+ * const mdImports = findMarkdownImports(sourceFile);
98
+ * // [{ identifier: 'Core', modulePath: './core.md', ... }]
99
+ * ```
100
+ */
101
+ export function findMarkdownImports(sourceFile) {
102
+ const markdownImports = [];
103
+ function visit(node) {
104
+ if (ts.isImportDeclaration(node)) {
105
+ const importInfo = extractImportInfo(node);
106
+ if (importInfo) {
107
+ markdownImports.push(importInfo);
108
+ }
109
+ }
110
+ ts.forEachChild(node, visit);
111
+ }
112
+ visit(sourceFile);
113
+ return markdownImports;
114
+ }
115
+ //# sourceMappingURL=import-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-detector.js","sourceRoot":"","sources":["../../src/transformer/import-detector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAgB5B;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAA0B;IACzD,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;IAE7C,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC;IACxC,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA0B;IAC1D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,eAAmC,CAAC;IACjE,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC;IAExC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACvC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6DAA6D;IAC7D,IAAI,YAAY,CAAC,aAAa,IAAI,EAAE,CAAC,iBAAiB,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;QACnF,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QACxD,OAAO;YACL,IAAI;YACJ,UAAU;YACV,UAAU;YACV,UAAU,EAAE,WAAW;SACxB,CAAC;IACJ,CAAC;IAED,sDAAsD;IACtD,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,OAAO;YACL,IAAI;YACJ,UAAU;YACV,UAAU;YACV,UAAU,EAAE,SAAS;SACtB,CAAC;IACJ,CAAC;IAED,wDAAwD;IACxD,IAAI,YAAY,CAAC,aAAa,IAAI,EAAE,CAAC,cAAc,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;QAChF,4CAA4C;QAC5C,MAAM,YAAY,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,OAAO;YACL,IAAI;YACJ,UAAU;YACV,UAAU;YACV,UAAU,EAAE,OAAO;SACpB,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAyB;IAC3D,MAAM,eAAe,GAAyB,EAAE,CAAC;IAEjD,SAAS,KAAK,CAAC,IAAa;QAC1B,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,UAAU,EAAE,CAAC;gBACf,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,CAAC;IAClB,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * TypeScript transformer for markdown imports
3
+ * Enables direct .md imports in TypeScript code
4
+ */
5
+ export { isMarkdownImport, extractImportInfo, findMarkdownImports, type MarkdownImportInfo, } from './import-detector.js';
6
+ export { resolveMarkdownPath, createDefaultCompilerOptions, } from './path-resolver.js';
7
+ export { resourceToAst, createConstDeclaration, } from './ast-helpers.js';
8
+ export { generateModuleReplacement, replaceImportWithConst, } from './module-generator.js';
9
+ export { createTransformer, type TransformerOptions, default, } from './transformer.js';
10
+ export { generateMarkdownDeclarationFile, getDeclarationPath, } from './declaration-generator.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,kBAAkB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,aAAa,EACb,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,OAAO,GACR,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,+BAA+B,EAC/B,kBAAkB,GACnB,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * TypeScript transformer for markdown imports
3
+ * Enables direct .md imports in TypeScript code
4
+ */
5
+ export { isMarkdownImport, extractImportInfo, findMarkdownImports, } from './import-detector.js';
6
+ export { resolveMarkdownPath, createDefaultCompilerOptions, } from './path-resolver.js';
7
+ export { resourceToAst, createConstDeclaration, } from './ast-helpers.js';
8
+ export { generateModuleReplacement, replaceImportWithConst, } from './module-generator.js';
9
+ export { createTransformer, default, } from './transformer.js';
10
+ export { generateMarkdownDeclarationFile, getDeclarationPath, } from './declaration-generator.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,aAAa,EACb,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EAEjB,OAAO,GACR,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,+BAA+B,EAC/B,kBAAkB,GACnB,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Module generator for converting markdown imports to const declarations
3
+ * Replaces import statements with inline resource objects
4
+ */
5
+ import ts from 'typescript';
6
+ import type { MarkdownImportInfo } from './import-detector.js';
7
+ /**
8
+ * Generate a const declaration from a markdown import
9
+ *
10
+ * @param importInfo - Information about the markdown import
11
+ * @param resolvedPath - Absolute path to the markdown file
12
+ * @returns Variable statement node replacing the import
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * // Input: import * as Core from './core.md'
17
+ * // Output: const Core = { meta: {...}, text: "...", fragments: {...} };
18
+ * ```
19
+ */
20
+ export declare function generateModuleReplacement(importInfo: MarkdownImportInfo, resolvedPath: string): ts.VariableStatement;
21
+ /**
22
+ * Replace an import declaration with a const declaration
23
+ *
24
+ * @param node - The import declaration node to replace
25
+ * @param replacement - The replacement variable statement
26
+ * @returns The replacement node
27
+ */
28
+ export declare function replaceImportWithConst(node: ts.ImportDeclaration, replacement: ts.VariableStatement): ts.VariableStatement;
29
+ //# sourceMappingURL=module-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-generator.d.ts","sourceRoot":"","sources":["../../src/transformer/module-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,MAAM,YAAY,CAAC;AAK5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,kBAAkB,EAC9B,YAAY,EAAE,MAAM,GACnB,EAAE,CAAC,iBAAiB,CAWtB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAC1B,WAAW,EAAE,EAAE,CAAC,iBAAiB,GAChC,EAAE,CAAC,iBAAiB,CAatB"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Module generator for converting markdown imports to const declarations
3
+ * Replaces import statements with inline resource objects
4
+ */
5
+ import { readFileSync } from 'node:fs';
6
+ import ts from 'typescript';
7
+ import { parseMarkdown } from '../compiler/markdown-parser.js';
8
+ import { resourceToAst, createConstDeclaration } from './ast-helpers.js';
9
+ /**
10
+ * Generate a const declaration from a markdown import
11
+ *
12
+ * @param importInfo - Information about the markdown import
13
+ * @param resolvedPath - Absolute path to the markdown file
14
+ * @returns Variable statement node replacing the import
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * // Input: import * as Core from './core.md'
19
+ * // Output: const Core = { meta: {...}, text: "...", fragments: {...} };
20
+ * ```
21
+ */
22
+ export function generateModuleReplacement(importInfo, resolvedPath) {
23
+ // Read and parse the markdown file
24
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Validated path from import resolution
25
+ const markdownContent = readFileSync(resolvedPath, 'utf-8');
26
+ const resource = parseMarkdown(markdownContent);
27
+ // Convert resource to AST
28
+ const resourceAst = resourceToAst(resource);
29
+ // Create const declaration
30
+ return createConstDeclaration(importInfo.identifier, resourceAst);
31
+ }
32
+ /**
33
+ * Replace an import declaration with a const declaration
34
+ *
35
+ * @param node - The import declaration node to replace
36
+ * @param replacement - The replacement variable statement
37
+ * @returns The replacement node
38
+ */
39
+ export function replaceImportWithConst(node, replacement) {
40
+ // Preserve any comments from the original import
41
+ const leadingComments = ts.getLeadingCommentRanges(node.getSourceFile().getFullText(), node.getFullStart());
42
+ if (leadingComments && leadingComments.length > 0) {
43
+ // Comments are preserved through the source transformation
44
+ return replacement;
45
+ }
46
+ return replacement;
47
+ }
48
+ //# sourceMappingURL=module-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-generator.js","sourceRoot":"","sources":["../../src/transformer/module-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAGzE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAA8B,EAC9B,YAAoB;IAEpB,mCAAmC;IACnC,4GAA4G;IAC5G,MAAM,eAAe,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;IAEhD,0BAA0B;IAC1B,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAE5C,2BAA2B;IAC3B,OAAO,sBAAsB,CAAC,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAA0B,EAC1B,WAAiC;IAEjC,iDAAiD;IACjD,MAAM,eAAe,GAAG,EAAE,CAAC,uBAAuB,CAChD,IAAI,CAAC,aAAa,EAAE,CAAC,WAAW,EAAE,EAClC,IAAI,CAAC,YAAY,EAAE,CACpB,CAAC;IAEF,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,2DAA2D;QAC3D,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}