@mytechtoday/augment-extensions 1.7.0 → 2.2.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.
Files changed (440) hide show
  1. package/README.md +119 -8
  2. package/augment-extensions/coding-standards/bash/CHANGELOG.md +51 -0
  3. package/augment-extensions/coding-standards/bash/metadata.json +21 -0
  4. package/augment-extensions/coding-standards/c/metadata.json +50 -0
  5. package/augment-extensions/coding-standards/css/CHANGELOG.md +51 -0
  6. package/augment-extensions/coding-standards/css/metadata.json +30 -0
  7. package/augment-extensions/coding-standards/go/CHANGELOG.md +51 -0
  8. package/augment-extensions/coding-standards/go/metadata.json +57 -0
  9. package/augment-extensions/coding-standards/html/CHANGELOG.md +51 -0
  10. package/augment-extensions/coding-standards/html/metadata.json +25 -0
  11. package/augment-extensions/coding-standards/html-css-js/CHANGELOG.md +51 -0
  12. package/augment-extensions/coding-standards/html-css-js/metadata.json +40 -0
  13. package/augment-extensions/coding-standards/js/CHANGELOG.md +51 -0
  14. package/augment-extensions/coding-standards/js/metadata.json +37 -0
  15. package/augment-extensions/coding-standards/php/CHANGELOG.md +51 -0
  16. package/augment-extensions/coding-standards/php/metadata.json +35 -0
  17. package/augment-extensions/coding-standards/powershell/CHANGELOG.md +51 -0
  18. package/augment-extensions/coding-standards/powershell/metadata.json +33 -0
  19. package/augment-extensions/coding-standards/python/CHANGELOG.md +51 -0
  20. package/augment-extensions/coding-standards/python/metadata.json +38 -0
  21. package/augment-extensions/coding-standards/react/CHANGELOG.md +51 -0
  22. package/augment-extensions/coding-standards/react/metadata.json +31 -0
  23. package/augment-extensions/coding-standards/typescript/CHANGELOG.md +39 -0
  24. package/augment-extensions/coding-standards/typescript/README.md +248 -19
  25. package/augment-extensions/coding-standards/typescript/VERSION +2 -0
  26. package/augment-extensions/coding-standards/typescript/examples/biome.json +199 -0
  27. package/augment-extensions/coding-standards/typescript/examples/eslint-flat-config.js +166 -0
  28. package/augment-extensions/coding-standards/typescript/examples/monorepo-config/README.md +47 -0
  29. package/augment-extensions/coding-standards/typescript/examples/monorepo-config/package.json +37 -0
  30. package/augment-extensions/coding-standards/typescript/examples/monorepo-config/pnpm-workspace.yaml +5 -0
  31. package/augment-extensions/coding-standards/typescript/examples/monorepo-config/tsconfig.base.json +50 -0
  32. package/augment-extensions/coding-standards/typescript/examples/monorepo-config/turbo.json +47 -0
  33. package/augment-extensions/coding-standards/typescript/examples/vitest-setup.ts +198 -0
  34. package/augment-extensions/coding-standards/typescript/metadata.json +46 -0
  35. package/augment-extensions/coding-standards/typescript/module.json +25 -7
  36. package/augment-extensions/coding-standards/typescript/rules/architecture.md +1096 -0
  37. package/augment-extensions/coding-standards/typescript/rules/error-handling.md +1174 -0
  38. package/augment-extensions/coding-standards/typescript/rules/modern-features.md +625 -0
  39. package/augment-extensions/coding-standards/typescript/rules/monorepo.md +745 -0
  40. package/augment-extensions/coding-standards/typescript/rules/security-performance.md +850 -0
  41. package/augment-extensions/coding-standards/typescript/rules/testing.md +918 -0
  42. package/augment-extensions/coding-standards/typescript/rules/tooling.md +1071 -0
  43. package/augment-extensions/coding-standards/typescript/rules/type-patterns.md +750 -0
  44. package/augment-extensions/domain-rules/api-design/CHANGELOG.md +51 -0
  45. package/augment-extensions/domain-rules/api-design/metadata.json +32 -0
  46. package/augment-extensions/domain-rules/database/CHANGELOG.md +51 -0
  47. package/augment-extensions/domain-rules/database/metadata.json +50 -0
  48. package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/CHANGELOG.md +51 -0
  49. package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/metadata.json +18 -0
  50. package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/CHANGELOG.md +51 -0
  51. package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/metadata.json +18 -0
  52. package/augment-extensions/domain-rules/design/color/themes/dracula/CHANGELOG.md +51 -0
  53. package/augment-extensions/domain-rules/design/color/themes/dracula/metadata.json +18 -0
  54. package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/CHANGELOG.md +51 -0
  55. package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/metadata.json +18 -0
  56. package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/CHANGELOG.md +51 -0
  57. package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/metadata.json +18 -0
  58. package/augment-extensions/domain-rules/design/color/themes/high-contrast/CHANGELOG.md +51 -0
  59. package/augment-extensions/domain-rules/design/color/themes/high-contrast/metadata.json +18 -0
  60. package/augment-extensions/domain-rules/design/color/themes/monokai/CHANGELOG.md +51 -0
  61. package/augment-extensions/domain-rules/design/color/themes/monokai/metadata.json +18 -0
  62. package/augment-extensions/domain-rules/design/color/themes/nord/CHANGELOG.md +51 -0
  63. package/augment-extensions/domain-rules/design/color/themes/nord/metadata.json +18 -0
  64. package/augment-extensions/domain-rules/design/color/themes/one-dark/CHANGELOG.md +51 -0
  65. package/augment-extensions/domain-rules/design/color/themes/one-dark/metadata.json +18 -0
  66. package/augment-extensions/domain-rules/design/color/themes/one-light/CHANGELOG.md +51 -0
  67. package/augment-extensions/domain-rules/design/color/themes/one-light/metadata.json +18 -0
  68. package/augment-extensions/domain-rules/design/color/themes/solarized-dark/CHANGELOG.md +51 -0
  69. package/augment-extensions/domain-rules/design/color/themes/solarized-dark/metadata.json +18 -0
  70. package/augment-extensions/domain-rules/design/color/themes/solarized-light/CHANGELOG.md +51 -0
  71. package/augment-extensions/domain-rules/design/color/themes/solarized-light/metadata.json +18 -0
  72. package/augment-extensions/domain-rules/design/color/themes/tokyo-night/CHANGELOG.md +51 -0
  73. package/augment-extensions/domain-rules/design/color/themes/tokyo-night/metadata.json +18 -0
  74. package/augment-extensions/domain-rules/mcp/CHANGELOG.md +51 -0
  75. package/augment-extensions/domain-rules/mcp/metadata.json +42 -0
  76. package/augment-extensions/domain-rules/security/CHANGELOG.md +51 -0
  77. package/augment-extensions/domain-rules/security/metadata.json +33 -0
  78. package/augment-extensions/domain-rules/seo-sales-marketing/CHANGELOG.md +51 -0
  79. package/augment-extensions/domain-rules/seo-sales-marketing/metadata.json +40 -0
  80. package/augment-extensions/domain-rules/software-architecture/CHANGELOG.md +51 -0
  81. package/augment-extensions/domain-rules/software-architecture/metadata.json +55 -0
  82. package/augment-extensions/domain-rules/wordpress/CHANGELOG.md +51 -0
  83. package/augment-extensions/domain-rules/wordpress/metadata.json +42 -0
  84. package/augment-extensions/domain-rules/wordpress-plugin/CHANGELOG.md +51 -0
  85. package/augment-extensions/domain-rules/wordpress-plugin/metadata.json +70 -0
  86. package/augment-extensions/examples/design-patterns/CHANGELOG.md +51 -0
  87. package/augment-extensions/examples/design-patterns/metadata.json +29 -0
  88. package/augment-extensions/examples/gutenberg-block-plugin/CHANGELOG.md +51 -0
  89. package/augment-extensions/examples/gutenberg-block-plugin/metadata.json +26 -0
  90. package/augment-extensions/examples/rest-api-plugin/CHANGELOG.md +51 -0
  91. package/augment-extensions/examples/rest-api-plugin/metadata.json +27 -0
  92. package/augment-extensions/examples/woocommerce-extension/CHANGELOG.md +51 -0
  93. package/augment-extensions/examples/woocommerce-extension/metadata.json +27 -0
  94. package/augment-extensions/visual-design/metadata.json +34 -0
  95. package/augment-extensions/workflows/adr-support/CHANGELOG.md +51 -0
  96. package/augment-extensions/workflows/adr-support/metadata.json +41 -0
  97. package/augment-extensions/workflows/beads/CHANGELOG.md +51 -0
  98. package/augment-extensions/workflows/beads/metadata.json +23 -0
  99. package/augment-extensions/workflows/beads-integration/CHANGELOG.md +51 -0
  100. package/augment-extensions/workflows/beads-integration/metadata.json +30 -0
  101. package/augment-extensions/workflows/database/CHANGELOG.md +51 -0
  102. package/augment-extensions/workflows/database/metadata.json +30 -0
  103. package/augment-extensions/workflows/wordpress-plugin/CHANGELOG.md +51 -0
  104. package/augment-extensions/workflows/wordpress-plugin/metadata.json +41 -0
  105. package/augment-extensions/writing-standards/literature/shakespeare/CHANGELOG.md +51 -0
  106. package/augment-extensions/writing-standards/literature/shakespeare/metadata.json +60 -0
  107. package/augment-extensions/writing-standards/screenplay/CHANGELOG.md +51 -0
  108. package/augment-extensions/writing-standards/screenplay/cinematic-styles/CHANGELOG.md +51 -0
  109. package/augment-extensions/writing-standards/screenplay/cinematic-styles/comedy-formats/CHANGELOG.md +51 -0
  110. package/augment-extensions/writing-standards/screenplay/cinematic-styles/comedy-formats/metadata.json +24 -0
  111. package/augment-extensions/writing-standards/screenplay/cinematic-styles/comedy-formats/monty-python/CHANGELOG.md +51 -0
  112. package/augment-extensions/writing-standards/screenplay/cinematic-styles/comedy-formats/monty-python/metadata.json +24 -0
  113. package/augment-extensions/writing-standards/screenplay/cinematic-styles/comedy-formats/saturday-night-live/CHANGELOG.md +51 -0
  114. package/augment-extensions/writing-standards/screenplay/cinematic-styles/comedy-formats/saturday-night-live/metadata.json +24 -0
  115. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/CHANGELOG.md +51 -0
  116. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/alfred-hitchcock/CHANGELOG.md +51 -0
  117. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/alfred-hitchcock/metadata.json +24 -0
  118. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/ari-aster/CHANGELOG.md +51 -0
  119. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/ari-aster/metadata.json +24 -0
  120. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/brad-bird/CHANGELOG.md +51 -0
  121. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/brad-bird/metadata.json +24 -0
  122. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/brian-de-palma/CHANGELOG.md +51 -0
  123. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/brian-de-palma/metadata.json +24 -0
  124. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/buster-keaton/CHANGELOG.md +51 -0
  125. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/buster-keaton/metadata.json +24 -0
  126. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/christopher-nolan/CHANGELOG.md +51 -0
  127. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/christopher-nolan/metadata.json +24 -0
  128. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/clint-eastwood/CHANGELOG.md +51 -0
  129. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/clint-eastwood/metadata.json +24 -0
  130. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/coen-brothers/CHANGELOG.md +51 -0
  131. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/coen-brothers/metadata.json +24 -0
  132. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/darren-aronofsky/CHANGELOG.md +51 -0
  133. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/darren-aronofsky/metadata.json +24 -0
  134. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/david-fincher/CHANGELOG.md +51 -0
  135. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/david-fincher/metadata.json +24 -0
  136. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/david-lynch/CHANGELOG.md +51 -0
  137. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/david-lynch/metadata.json +24 -0
  138. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/denis-villeneuve/CHANGELOG.md +51 -0
  139. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/denis-villeneuve/metadata.json +24 -0
  140. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/francis-ford-coppola/CHANGELOG.md +51 -0
  141. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/francis-ford-coppola/metadata.json +24 -0
  142. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/gary-marshall/CHANGELOG.md +51 -0
  143. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/gary-marshall/metadata.json +24 -0
  144. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/george-a-romero/CHANGELOG.md +51 -0
  145. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/george-a-romero/metadata.json +24 -0
  146. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/george-lucas/CHANGELOG.md +51 -0
  147. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/george-lucas/metadata.json +24 -0
  148. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/guillermo-del-toro/CHANGELOG.md +51 -0
  149. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/guillermo-del-toro/metadata.json +24 -0
  150. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/gus-van-sant/CHANGELOG.md +51 -0
  151. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/gus-van-sant/metadata.json +24 -0
  152. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/james-ivory-ismail-merchant/CHANGELOG.md +51 -0
  153. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/james-ivory-ismail-merchant/metadata.json +24 -0
  154. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/jim-jarmusch/CHANGELOG.md +51 -0
  155. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/jim-jarmusch/metadata.json +24 -0
  156. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-carpenter/CHANGELOG.md +51 -0
  157. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-carpenter/metadata.json +24 -0
  158. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-ford/CHANGELOG.md +51 -0
  159. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-ford/metadata.json +24 -0
  160. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-huston/CHANGELOG.md +51 -0
  161. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-huston/metadata.json +24 -0
  162. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-landis/CHANGELOG.md +51 -0
  163. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-landis/metadata.json +24 -0
  164. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/jonathan-demme/CHANGELOG.md +51 -0
  165. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/jonathan-demme/metadata.json +24 -0
  166. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/joseph-l-mankiewicz/CHANGELOG.md +51 -0
  167. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/joseph-l-mankiewicz/metadata.json +24 -0
  168. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/kathryn-bigelow/CHANGELOG.md +51 -0
  169. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/kathryn-bigelow/metadata.json +24 -0
  170. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/kelly-reichardt/CHANGELOG.md +51 -0
  171. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/kelly-reichardt/metadata.json +24 -0
  172. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/kevin-smith/CHANGELOG.md +51 -0
  173. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/kevin-smith/metadata.json +24 -0
  174. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/linda-shayne/CHANGELOG.md +51 -0
  175. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/linda-shayne/metadata.json +24 -0
  176. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/martin-scorsese/CHANGELOG.md +51 -0
  177. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/martin-scorsese/metadata.json +24 -0
  178. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/mel-brooks/CHANGELOG.md +51 -0
  179. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/mel-brooks/metadata.json +24 -0
  180. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/metadata.json +25 -0
  181. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/michael-curtiz/CHANGELOG.md +51 -0
  182. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/michael-curtiz/metadata.json +24 -0
  183. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/michael-mann/CHANGELOG.md +51 -0
  184. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/michael-mann/metadata.json +24 -0
  185. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/mike-nichols/CHANGELOG.md +51 -0
  186. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/mike-nichols/metadata.json +24 -0
  187. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/orson-welles/CHANGELOG.md +51 -0
  188. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/orson-welles/metadata.json +24 -0
  189. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/park-chan-wook/CHANGELOG.md +51 -0
  190. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/park-chan-wook/metadata.json +24 -0
  191. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/paul-thomas-anderson/CHANGELOG.md +51 -0
  192. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/paul-thomas-anderson/metadata.json +24 -0
  193. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/penny-marshall/CHANGELOG.md +51 -0
  194. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/penny-marshall/metadata.json +24 -0
  195. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/peter-bogdanovich/CHANGELOG.md +51 -0
  196. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/peter-bogdanovich/metadata.json +24 -0
  197. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/quentin-tarantino/CHANGELOG.md +51 -0
  198. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/quentin-tarantino/metadata.json +24 -0
  199. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/richard-linklater/CHANGELOG.md +51 -0
  200. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/richard-linklater/metadata.json +24 -0
  201. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/rob-reiner/CHANGELOG.md +51 -0
  202. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/rob-reiner/metadata.json +24 -0
  203. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/robert-altman/CHANGELOG.md +51 -0
  204. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/robert-altman/metadata.json +24 -0
  205. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/robert-eggers/CHANGELOG.md +51 -0
  206. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/robert-eggers/metadata.json +24 -0
  207. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/robert-zemeckis/CHANGELOG.md +51 -0
  208. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/robert-zemeckis/metadata.json +24 -0
  209. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/sam-peckinpah/CHANGELOG.md +51 -0
  210. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/sam-peckinpah/metadata.json +24 -0
  211. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/sidney-lumet/CHANGELOG.md +51 -0
  212. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/sidney-lumet/metadata.json +24 -0
  213. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/spike-lee/CHANGELOG.md +51 -0
  214. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/spike-lee/metadata.json +24 -0
  215. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/stanley-donen-gene-kelly/CHANGELOG.md +51 -0
  216. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/stanley-donen-gene-kelly/metadata.json +24 -0
  217. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/stanley-kubrick/CHANGELOG.md +51 -0
  218. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/stanley-kubrick/metadata.json +24 -0
  219. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/steve-martin/CHANGELOG.md +51 -0
  220. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/steve-martin/metadata.json +24 -0
  221. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/steven-spielberg/CHANGELOG.md +51 -0
  222. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/steven-spielberg/metadata.json +24 -0
  223. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/sydney-pollack/CHANGELOG.md +51 -0
  224. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/sydney-pollack/metadata.json +24 -0
  225. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/terry-gilliam/CHANGELOG.md +51 -0
  226. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/terry-gilliam/metadata.json +24 -0
  227. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/tim-burton/CHANGELOG.md +51 -0
  228. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/tim-burton/metadata.json +24 -0
  229. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/tobe-hooper/CHANGELOG.md +51 -0
  230. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/tobe-hooper/metadata.json +24 -0
  231. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/wes-anderson/CHANGELOG.md +51 -0
  232. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/wes-anderson/metadata.json +24 -0
  233. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/william-friedkin/CHANGELOG.md +51 -0
  234. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/william-friedkin/metadata.json +24 -0
  235. package/augment-extensions/writing-standards/screenplay/cinematic-styles/films/CHANGELOG.md +51 -0
  236. package/augment-extensions/writing-standards/screenplay/cinematic-styles/films/blue-ruin/CHANGELOG.md +51 -0
  237. package/augment-extensions/writing-standards/screenplay/cinematic-styles/films/blue-ruin/metadata.json +24 -0
  238. package/augment-extensions/writing-standards/screenplay/cinematic-styles/films/metadata.json +24 -0
  239. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/CHANGELOG.md +51 -0
  240. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/fast-and-furious/CHANGELOG.md +51 -0
  241. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/fast-and-furious/metadata.json +24 -0
  242. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/harry-potter/CHANGELOG.md +51 -0
  243. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/harry-potter/metadata.json +24 -0
  244. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/james-bond/CHANGELOG.md +51 -0
  245. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/james-bond/metadata.json +24 -0
  246. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/john-wick/CHANGELOG.md +51 -0
  247. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/john-wick/metadata.json +24 -0
  248. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/lord-of-the-rings/CHANGELOG.md +51 -0
  249. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/lord-of-the-rings/metadata.json +24 -0
  250. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/mcu/CHANGELOG.md +51 -0
  251. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/mcu/metadata.json +25 -0
  252. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/metadata.json +25 -0
  253. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/star-trek/CHANGELOG.md +51 -0
  254. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/star-trek/metadata.json +33 -0
  255. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/star-wars/CHANGELOG.md +51 -0
  256. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/star-wars/metadata.json +24 -0
  257. package/augment-extensions/writing-standards/screenplay/cinematic-styles/metadata.json +50 -0
  258. package/augment-extensions/writing-standards/screenplay/cinematic-styles/narrative-theory/CHANGELOG.md +51 -0
  259. package/augment-extensions/writing-standards/screenplay/cinematic-styles/narrative-theory/joseph-campbell/CHANGELOG.md +51 -0
  260. package/augment-extensions/writing-standards/screenplay/cinematic-styles/narrative-theory/joseph-campbell/metadata.json +24 -0
  261. package/augment-extensions/writing-standards/screenplay/cinematic-styles/narrative-theory/metadata.json +24 -0
  262. package/augment-extensions/writing-standards/screenplay/cinematic-styles/producers/CHANGELOG.md +51 -0
  263. package/augment-extensions/writing-standards/screenplay/cinematic-styles/producers/bruckheimer-and-simpson/CHANGELOG.md +51 -0
  264. package/augment-extensions/writing-standards/screenplay/cinematic-styles/producers/bruckheimer-and-simpson/metadata.json +24 -0
  265. package/augment-extensions/writing-standards/screenplay/cinematic-styles/producers/metadata.json +23 -0
  266. package/augment-extensions/writing-standards/screenplay/genres/CHANGELOG.md +51 -0
  267. package/augment-extensions/writing-standards/screenplay/genres/metadata.json +43 -0
  268. package/augment-extensions/writing-standards/screenplay/metadata.json +65 -0
  269. package/augment-extensions/writing-standards/screenplay/styles/CHANGELOG.md +51 -0
  270. package/augment-extensions/writing-standards/screenplay/styles/metadata.json +38 -0
  271. package/augment-extensions/writing-standards/screenplay/themes/CHANGELOG.md +51 -0
  272. package/augment-extensions/writing-standards/screenplay/themes/metadata.json +47 -0
  273. package/cli/dist/__test_health-checker.d.ts +2 -0
  274. package/cli/dist/__test_health-checker.d.ts.map +1 -0
  275. package/cli/dist/__test_health-checker.js +4 -0
  276. package/cli/dist/__test_health-checker.js.map +1 -0
  277. package/cli/dist/__test_template-engine.d.ts +2 -0
  278. package/cli/dist/__test_template-engine.d.ts.map +1 -0
  279. package/cli/dist/__test_template-engine.js +4 -0
  280. package/cli/dist/__test_template-engine.js.map +1 -0
  281. package/cli/dist/cli.js +25 -0
  282. package/cli/dist/cli.js.map +1 -1
  283. package/cli/dist/commands/generate-shot-list/generator/index.d.ts +8 -2
  284. package/cli/dist/commands/generate-shot-list/generator/index.d.ts.map +1 -1
  285. package/cli/dist/commands/generate-shot-list/generator/index.js +28 -3
  286. package/cli/dist/commands/generate-shot-list/generator/index.js.map +1 -1
  287. package/cli/dist/commands/generate-shot-list/generator/types.d.ts +3 -0
  288. package/cli/dist/commands/generate-shot-list/generator/types.d.ts.map +1 -1
  289. package/cli/dist/commands/generate-shot-list/help-text.d.ts +1 -1
  290. package/cli/dist/commands/generate-shot-list/help-text.d.ts.map +1 -1
  291. package/cli/dist/commands/generate-shot-list/help-text.js +48 -5
  292. package/cli/dist/commands/generate-shot-list/help-text.js.map +1 -1
  293. package/cli/dist/commands/generate-shot-list/logger/jsonl-writer.d.ts +11 -1
  294. package/cli/dist/commands/generate-shot-list/logger/jsonl-writer.d.ts.map +1 -1
  295. package/cli/dist/commands/generate-shot-list/logger/jsonl-writer.js +61 -1
  296. package/cli/dist/commands/generate-shot-list/logger/jsonl-writer.js.map +1 -1
  297. package/cli/dist/commands/generate-shot-list/parser/docx-parser.d.ts +29 -0
  298. package/cli/dist/commands/generate-shot-list/parser/docx-parser.d.ts.map +1 -0
  299. package/cli/dist/commands/generate-shot-list/parser/docx-parser.js +111 -0
  300. package/cli/dist/commands/generate-shot-list/parser/docx-parser.js.map +1 -0
  301. package/cli/dist/commands/generate-shot-list/parser/finaldraft-parser.d.ts +18 -0
  302. package/cli/dist/commands/generate-shot-list/parser/finaldraft-parser.d.ts.map +1 -0
  303. package/cli/dist/commands/generate-shot-list/parser/finaldraft-parser.js +184 -0
  304. package/cli/dist/commands/generate-shot-list/parser/finaldraft-parser.js.map +1 -0
  305. package/cli/dist/commands/generate-shot-list/parser/index.d.ts +4 -3
  306. package/cli/dist/commands/generate-shot-list/parser/index.d.ts.map +1 -1
  307. package/cli/dist/commands/generate-shot-list/parser/index.js +54 -3
  308. package/cli/dist/commands/generate-shot-list/parser/index.js.map +1 -1
  309. package/cli/dist/commands/generate-shot-list/parser/pdf-parser.d.ts +24 -0
  310. package/cli/dist/commands/generate-shot-list/parser/pdf-parser.d.ts.map +1 -0
  311. package/cli/dist/commands/generate-shot-list/parser/pdf-parser.js +84 -0
  312. package/cli/dist/commands/generate-shot-list/parser/pdf-parser.js.map +1 -0
  313. package/cli/dist/commands/generate-shot-list/parser/rtf-parser.d.ts +28 -0
  314. package/cli/dist/commands/generate-shot-list/parser/rtf-parser.d.ts.map +1 -0
  315. package/cli/dist/commands/generate-shot-list/parser/rtf-parser.js +143 -0
  316. package/cli/dist/commands/generate-shot-list/parser/rtf-parser.js.map +1 -0
  317. package/cli/dist/commands/generate-shot-list/parser/types.d.ts +9 -6
  318. package/cli/dist/commands/generate-shot-list/parser/types.d.ts.map +1 -1
  319. package/cli/dist/commands/generate-shot-list/parser/types.js.map +1 -1
  320. package/cli/dist/commands/generate-shot-list/style/guideline-parser.d.ts +36 -0
  321. package/cli/dist/commands/generate-shot-list/style/guideline-parser.d.ts.map +1 -0
  322. package/cli/dist/commands/generate-shot-list/style/guideline-parser.js +108 -0
  323. package/cli/dist/commands/generate-shot-list/style/guideline-parser.js.map +1 -0
  324. package/cli/dist/commands/generate-shot-list/style/index.d.ts +39 -0
  325. package/cli/dist/commands/generate-shot-list/style/index.d.ts.map +1 -0
  326. package/cli/dist/commands/generate-shot-list/style/index.js +85 -0
  327. package/cli/dist/commands/generate-shot-list/style/index.js.map +1 -0
  328. package/cli/dist/commands/generate-shot-list/style/style-loader.d.ts +35 -0
  329. package/cli/dist/commands/generate-shot-list/style/style-loader.d.ts.map +1 -0
  330. package/cli/dist/commands/generate-shot-list/style/style-loader.js +178 -0
  331. package/cli/dist/commands/generate-shot-list/style/style-loader.js.map +1 -0
  332. package/cli/dist/commands/generate-shot-list/style/style-merger.d.ts +36 -0
  333. package/cli/dist/commands/generate-shot-list/style/style-merger.d.ts.map +1 -0
  334. package/cli/dist/commands/generate-shot-list/style/style-merger.js +123 -0
  335. package/cli/dist/commands/generate-shot-list/style/style-merger.js.map +1 -0
  336. package/cli/dist/commands/generate-shot-list/style/types.d.ts +105 -0
  337. package/cli/dist/commands/generate-shot-list/style/types.d.ts.map +1 -0
  338. package/cli/dist/commands/generate-shot-list/style/types.js +8 -0
  339. package/cli/dist/commands/generate-shot-list/style/types.js.map +1 -0
  340. package/cli/dist/commands/generate-shot-list.d.ts +1 -0
  341. package/cli/dist/commands/generate-shot-list.d.ts.map +1 -1
  342. package/cli/dist/commands/generate-shot-list.js +44 -1
  343. package/cli/dist/commands/generate-shot-list.js.map +1 -1
  344. package/cli/dist/commands/list.d.ts +1 -0
  345. package/cli/dist/commands/list.d.ts.map +1 -1
  346. package/cli/dist/commands/list.js +21 -5
  347. package/cli/dist/commands/list.js.map +1 -1
  348. package/cli/dist/commands/upgrade.d.ts +15 -0
  349. package/cli/dist/commands/upgrade.d.ts.map +1 -0
  350. package/cli/dist/commands/upgrade.js +229 -0
  351. package/cli/dist/commands/upgrade.js.map +1 -0
  352. package/cli/dist/commands/use.d.ts +15 -0
  353. package/cli/dist/commands/use.d.ts.map +1 -0
  354. package/cli/dist/commands/use.js +180 -0
  355. package/cli/dist/commands/use.js.map +1 -0
  356. package/cli/dist/commands/version-info.d.ts +15 -0
  357. package/cli/dist/commands/version-info.d.ts.map +1 -0
  358. package/cli/dist/commands/version-info.js +194 -0
  359. package/cli/dist/commands/version-info.js.map +1 -0
  360. package/cli/dist/core/compatibility-checker.d.ts +73 -0
  361. package/cli/dist/core/compatibility-checker.d.ts.map +1 -0
  362. package/cli/dist/core/compatibility-checker.js +188 -0
  363. package/cli/dist/core/compatibility-checker.js.map +1 -0
  364. package/cli/dist/core/index.d.ts +9 -0
  365. package/cli/dist/core/index.d.ts.map +1 -0
  366. package/cli/dist/core/index.js +16 -0
  367. package/cli/dist/core/index.js.map +1 -0
  368. package/cli/dist/core/module-loader.d.ts +68 -0
  369. package/cli/dist/core/module-loader.d.ts.map +1 -0
  370. package/cli/dist/core/module-loader.js +137 -0
  371. package/cli/dist/core/module-loader.js.map +1 -0
  372. package/cli/dist/core/version-manager.d.ts +62 -0
  373. package/cli/dist/core/version-manager.d.ts.map +1 -0
  374. package/cli/dist/core/version-manager.js +157 -0
  375. package/cli/dist/core/version-manager.js.map +1 -0
  376. package/cli/dist/core/version-resolver.d.ts +63 -0
  377. package/cli/dist/core/version-resolver.d.ts.map +1 -0
  378. package/cli/dist/core/version-resolver.js +163 -0
  379. package/cli/dist/core/version-resolver.js.map +1 -0
  380. package/cli/dist/gui/app.d.ts +17 -0
  381. package/cli/dist/gui/app.d.ts.map +1 -0
  382. package/cli/dist/gui/app.js +79 -0
  383. package/cli/dist/gui/app.js.map +1 -0
  384. package/cli/dist/gui/components/preview-pane.d.ts +40 -0
  385. package/cli/dist/gui/components/preview-pane.d.ts.map +1 -0
  386. package/cli/dist/gui/components/preview-pane.js +90 -0
  387. package/cli/dist/gui/components/preview-pane.js.map +1 -0
  388. package/cli/dist/gui/components/search-filter.d.ts +26 -0
  389. package/cli/dist/gui/components/search-filter.d.ts.map +1 -0
  390. package/cli/dist/gui/components/search-filter.js +168 -0
  391. package/cli/dist/gui/components/search-filter.js.map +1 -0
  392. package/cli/dist/gui/components/status-bar.d.ts +22 -0
  393. package/cli/dist/gui/components/status-bar.d.ts.map +1 -0
  394. package/cli/dist/gui/components/status-bar.js +58 -0
  395. package/cli/dist/gui/components/status-bar.js.map +1 -0
  396. package/cli/dist/gui/components/tree-navigator.d.ts +30 -0
  397. package/cli/dist/gui/components/tree-navigator.d.ts.map +1 -0
  398. package/cli/dist/gui/components/tree-navigator.js +133 -0
  399. package/cli/dist/gui/components/tree-navigator.js.map +1 -0
  400. package/cli/dist/gui/components/version-selector.d.ts +27 -0
  401. package/cli/dist/gui/components/version-selector.d.ts.map +1 -0
  402. package/cli/dist/gui/components/version-selector.js +110 -0
  403. package/cli/dist/gui/components/version-selector.js.map +1 -0
  404. package/cli/dist/gui/hooks/use-version-loader.d.ts +25 -0
  405. package/cli/dist/gui/hooks/use-version-loader.d.ts.map +1 -0
  406. package/cli/dist/gui/hooks/use-version-loader.js +116 -0
  407. package/cli/dist/gui/hooks/use-version-loader.js.map +1 -0
  408. package/cli/dist/gui/index.d.ts +15 -0
  409. package/cli/dist/gui/index.d.ts.map +1 -0
  410. package/cli/dist/gui/index.js +39 -0
  411. package/cli/dist/gui/index.js.map +1 -0
  412. package/cli/dist/gui/layouts/main-layout.d.ts +14 -0
  413. package/cli/dist/gui/layouts/main-layout.d.ts.map +1 -0
  414. package/cli/dist/gui/layouts/main-layout.js +205 -0
  415. package/cli/dist/gui/layouts/main-layout.js.map +1 -0
  416. package/cli/dist/gui/state/navigation-state.d.ts +39 -0
  417. package/cli/dist/gui/state/navigation-state.d.ts.map +1 -0
  418. package/cli/dist/gui/state/navigation-state.js +151 -0
  419. package/cli/dist/gui/state/navigation-state.js.map +1 -0
  420. package/cli/dist/gui/state/selection-state.d.ts +36 -0
  421. package/cli/dist/gui/state/selection-state.d.ts.map +1 -0
  422. package/cli/dist/gui/state/selection-state.js +132 -0
  423. package/cli/dist/gui/state/selection-state.js.map +1 -0
  424. package/cli/dist/gui/theme.d.ts +50 -0
  425. package/cli/dist/gui/theme.d.ts.map +1 -0
  426. package/cli/dist/gui/theme.js +73 -0
  427. package/cli/dist/gui/theme.js.map +1 -0
  428. package/cli/dist/utils/help.d.ts +13 -0
  429. package/cli/dist/utils/help.d.ts.map +1 -0
  430. package/cli/dist/utils/help.js +137 -0
  431. package/cli/dist/utils/help.js.map +1 -0
  432. package/cli/dist/utils/module-system.d.ts +8 -0
  433. package/cli/dist/utils/module-system.d.ts.map +1 -1
  434. package/cli/dist/utils/module-system.js +38 -3
  435. package/cli/dist/utils/module-system.js.map +1 -1
  436. package/cli/dist/utils/validate-versioning.d.ts +43 -0
  437. package/cli/dist/utils/validate-versioning.d.ts.map +1 -0
  438. package/cli/dist/utils/validate-versioning.js +258 -0
  439. package/cli/dist/utils/validate-versioning.js.map +1 -0
  440. package/package.json +10 -1
@@ -26,6 +26,10 @@ exports.createParserAuto = createParserAuto;
26
26
  const fountain_parser_1 = require("./fountain-parser");
27
27
  const markdown_parser_1 = require("./markdown-parser");
28
28
  const plaintext_parser_1 = require("./plaintext-parser");
29
+ const finaldraft_parser_1 = require("./finaldraft-parser");
30
+ const pdf_parser_1 = require("./pdf-parser");
31
+ const docx_parser_1 = require("./docx-parser");
32
+ const rtf_parser_1 = require("./rtf-parser");
29
33
  /**
30
34
  * Create parser for specified format
31
35
  */
@@ -37,6 +41,14 @@ const createParser = (format) => {
37
41
  return new markdown_parser_1.MarkdownParser();
38
42
  case 'plaintext':
39
43
  return new plaintext_parser_1.PlainTextParser();
44
+ case 'finaldraft':
45
+ return new finaldraft_parser_1.FinalDraftParser();
46
+ case 'pdf':
47
+ return new pdf_parser_1.PDFParser();
48
+ case 'docx':
49
+ return new docx_parser_1.DOCXParser();
50
+ case 'rtf':
51
+ return new rtf_parser_1.RTFParser();
40
52
  default:
41
53
  throw new Error(`Unknown format: ${format}`);
42
54
  }
@@ -55,15 +67,53 @@ function detectFormatFromExtension(filename) {
55
67
  return 'markdown';
56
68
  case 'txt':
57
69
  return 'plaintext';
70
+ case 'fdx':
71
+ return 'finaldraft';
72
+ case 'pdf':
73
+ return 'pdf';
74
+ case 'doc':
75
+ case 'docx':
76
+ return 'docx';
77
+ case 'rtf':
78
+ return 'rtf';
58
79
  default:
59
80
  return null;
60
81
  }
61
82
  }
62
83
  /**
63
84
  * Detect format from content analysis
85
+ * Handles both text-based and binary format detection
64
86
  */
65
87
  function detectFormatFromContent(content) {
66
- const lines = content.split('\n');
88
+ // Convert Buffer to string for signature checking
89
+ const contentStr = typeof content === 'string' ? content : content.toString('binary');
90
+ // Check for binary format signatures first
91
+ // PDF signature: %PDF-
92
+ if (contentStr.startsWith('%PDF-')) {
93
+ return 'pdf';
94
+ }
95
+ // RTF signature: {\rtf
96
+ if (contentStr.startsWith('{\\rtf')) {
97
+ return 'rtf';
98
+ }
99
+ // DOCX signature: PK (ZIP archive)
100
+ // DOCX files are ZIP archives containing XML files
101
+ if (contentStr.startsWith('PK\x03\x04')) {
102
+ // Further check for DOCX-specific content
103
+ // Look for word/ directory or [Content_Types].xml
104
+ if (contentStr.includes('word/') || contentStr.includes('[Content_Types].xml')) {
105
+ return 'docx';
106
+ }
107
+ }
108
+ // Final Draft XML signature: <?xml with <FinalDraft>
109
+ if (contentStr.trimStart().startsWith('<?xml')) {
110
+ // Check if it contains FinalDraft root element
111
+ if (contentStr.includes('<FinalDraft')) {
112
+ return 'finaldraft';
113
+ }
114
+ }
115
+ // Text-based format detection
116
+ const lines = contentStr.split('\n');
67
117
  // Check for Fountain markers
68
118
  let fountainScore = 0;
69
119
  let markdownScore = 0;
@@ -91,10 +141,11 @@ function detectFormatFromContent(content) {
91
141
  }
92
142
  }
93
143
  // Determine format based on scores
94
- if (fountainScore > markdownScore && fountainScore > 5) {
144
+ // Lower thresholds to be more sensitive to format indicators
145
+ if (fountainScore > markdownScore && fountainScore >= 3) {
95
146
  return 'fountain';
96
147
  }
97
- if (markdownScore > 5) {
148
+ if (markdownScore >= 3) {
98
149
  return 'markdown';
99
150
  }
100
151
  // Default to plaintext
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { Parser, Screenplay } from './types';
2
+ /**
3
+ * Parser for PDF (.pdf) format
4
+ *
5
+ * Extracts text from PDF files and delegates to PlainTextParser for screenplay parsing.
6
+ * Requires pdf-parse library for text extraction.
7
+ */
8
+ export declare class PDFParser implements Parser {
9
+ private plainTextParser;
10
+ private pdfParse;
11
+ constructor();
12
+ getName(): string;
13
+ canParse(content: string, filePath?: string): boolean;
14
+ parse(content: string | Buffer): Promise<Screenplay>;
15
+ /**
16
+ * Async parse method for PDF files
17
+ */
18
+ parseAsync(content: string | Buffer): Promise<Screenplay>;
19
+ }
20
+ /**
21
+ * Helper function to read PDF file and parse it
22
+ */
23
+ export declare function parsePDFFile(filePath: string): Promise<Screenplay>;
24
+ //# sourceMappingURL=pdf-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-parser.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/pdf-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG7C;;;;;GAKG;AACH,qBAAa,SAAU,YAAW,MAAM;IACtC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAM;;IAetB,OAAO,IAAI,MAAM;IAIjB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAU/C,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAsC1D;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAGhE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAKxE"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PDFParser = void 0;
4
+ exports.parsePDFFile = parsePDFFile;
5
+ const plaintext_parser_1 = require("./plaintext-parser");
6
+ /**
7
+ * Parser for PDF (.pdf) format
8
+ *
9
+ * Extracts text from PDF files and delegates to PlainTextParser for screenplay parsing.
10
+ * Requires pdf-parse library for text extraction.
11
+ */
12
+ class PDFParser {
13
+ constructor() {
14
+ this.plainTextParser = new plaintext_parser_1.PlainTextParser();
15
+ // Lazy load pdf-parse to avoid bundling issues
16
+ try {
17
+ this.pdfParse = require('pdf-parse');
18
+ }
19
+ catch (error) {
20
+ throw new Error('pdf-parse library is required for PDF parsing. Install it with: npm install pdf-parse');
21
+ }
22
+ }
23
+ getName() {
24
+ return 'PDF';
25
+ }
26
+ canParse(content, filePath) {
27
+ // Check file extension
28
+ if (filePath && /\.pdf$/i.test(filePath)) {
29
+ return true;
30
+ }
31
+ // Check for PDF magic number (%PDF-)
32
+ return content.startsWith('%PDF-');
33
+ }
34
+ async parse(content) {
35
+ // Convert string to Buffer if needed
36
+ const buffer = typeof content === 'string'
37
+ ? Buffer.from(content, 'binary')
38
+ : content;
39
+ try {
40
+ // Extract text from PDF
41
+ const data = await this.pdfParse(buffer);
42
+ const text = data.text;
43
+ if (!text || text.trim().length === 0) {
44
+ throw new Error('PDF contains no extractable text');
45
+ }
46
+ // Parse extracted text as plain text screenplay
47
+ const screenplay = this.plainTextParser.parse(text);
48
+ // Update format metadata
49
+ screenplay.format = 'pdf';
50
+ screenplay.metadata = {
51
+ ...screenplay.metadata,
52
+ format: 'pdf',
53
+ originalFormat: 'pdf',
54
+ extractedText: true,
55
+ pdfPages: data.numpages,
56
+ pdfInfo: data.info,
57
+ };
58
+ return screenplay;
59
+ }
60
+ catch (error) {
61
+ if (error instanceof Error) {
62
+ throw new Error(`Failed to parse PDF: ${error.message}`);
63
+ }
64
+ throw error;
65
+ }
66
+ }
67
+ /**
68
+ * Async parse method for PDF files
69
+ */
70
+ async parseAsync(content) {
71
+ return this.parse(content);
72
+ }
73
+ }
74
+ exports.PDFParser = PDFParser;
75
+ /**
76
+ * Helper function to read PDF file and parse it
77
+ */
78
+ async function parsePDFFile(filePath) {
79
+ const fs = require('fs').promises;
80
+ const buffer = await fs.readFile(filePath);
81
+ const parser = new PDFParser();
82
+ return parser.parseAsync(buffer);
83
+ }
84
+ //# sourceMappingURL=pdf-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-parser.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/pdf-parser.ts"],"names":[],"mappings":";;;AAyFA,oCAKC;AA7FD,yDAAqD;AAErD;;;;;GAKG;AACH,MAAa,SAAS;IAIpB;QACE,IAAI,CAAC,eAAe,GAAG,IAAI,kCAAe,EAAE,CAAC;QAE7C,+CAA+C;QAC/C,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ,CAAC,OAAe,EAAE,QAAiB;QACzC,uBAAuB;QACvB,IAAI,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,qCAAqC;QACrC,OAAO,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAwB;QAClC,qCAAqC;QACrC,MAAM,MAAM,GAAG,OAAO,OAAO,KAAK,QAAQ;YACxC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAChC,CAAC,CAAC,OAAO,CAAC;QAEZ,IAAI,CAAC;YACH,wBAAwB;YACxB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAEvB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,CAAC;YAED,gDAAgD;YAChD,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEpD,yBAAyB;YACzB,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;YAC1B,UAAU,CAAC,QAAQ,GAAG;gBACpB,GAAG,UAAU,CAAC,QAAQ;gBACtB,MAAM,EAAE,KAAK;gBACb,cAAc,EAAE,KAAK;gBACrB,aAAa,EAAE,IAAI;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,IAAI,CAAC,IAAI;aACnB,CAAC;YAEF,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,OAAwB;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;CACF;AA3ED,8BA2EC;AAED;;GAEG;AACI,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAC/B,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { Parser, Screenplay } from './types';
2
+ /**
3
+ * Parser for Rich Text Format (.rtf)
4
+ *
5
+ * Extracts text from RTF files and delegates to PlainTextParser for screenplay parsing.
6
+ * Uses rtf-parser library for text extraction.
7
+ */
8
+ export declare class RTFParser implements Parser {
9
+ private plainTextParser;
10
+ private rtfParser;
11
+ constructor();
12
+ getName(): string;
13
+ canParse(content: string | Buffer, filePath?: string): boolean;
14
+ parse(content: string | Buffer): Promise<Screenplay>;
15
+ /**
16
+ * Extract plain text from RTF document tree with formatting awareness
17
+ * Maps RTF formatting to screenplay elements:
18
+ * - \b (bold) + ALL CAPS → Scene heading or Character
19
+ * - \li (left indent) → Dialogue
20
+ * - Normal text → Action
21
+ */
22
+ private extractPlainText;
23
+ }
24
+ /**
25
+ * Helper function to read RTF file and parse it
26
+ */
27
+ export declare function parseRTFFile(filePath: string): Promise<Screenplay>;
28
+ //# sourceMappingURL=rtf-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtf-parser.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/rtf-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG7C;;;;;GAKG;AACH,qBAAa,SAAU,YAAW,MAAM;IACtC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,SAAS,CAAM;;IAevB,OAAO,IAAI,MAAM;IAIjB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAWxD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAoC1D;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;CAgEzB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAKxE"}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RTFParser = void 0;
4
+ exports.parseRTFFile = parseRTFFile;
5
+ const plaintext_parser_1 = require("./plaintext-parser");
6
+ /**
7
+ * Parser for Rich Text Format (.rtf)
8
+ *
9
+ * Extracts text from RTF files and delegates to PlainTextParser for screenplay parsing.
10
+ * Uses rtf-parser library for text extraction.
11
+ */
12
+ class RTFParser {
13
+ constructor() {
14
+ this.plainTextParser = new plaintext_parser_1.PlainTextParser();
15
+ // Lazy load rtf-parser to avoid bundling issues
16
+ try {
17
+ this.rtfParser = require('rtf-parser');
18
+ }
19
+ catch (error) {
20
+ throw new Error('rtf-parser library is required for RTF parsing. Install it with: npm install rtf-parser');
21
+ }
22
+ }
23
+ getName() {
24
+ return 'RTF';
25
+ }
26
+ canParse(content, filePath) {
27
+ // Check file extension
28
+ if (filePath && /\.rtf$/i.test(filePath)) {
29
+ return true;
30
+ }
31
+ // Check for RTF magic string
32
+ const contentStr = typeof content === 'string' ? content : content.toString('utf-8');
33
+ return contentStr.startsWith('{\\rtf');
34
+ }
35
+ async parse(content) {
36
+ // Convert Buffer to string if needed
37
+ const text = typeof content === 'string'
38
+ ? content
39
+ : content.toString('utf-8');
40
+ try {
41
+ // Parse RTF and extract plain text
42
+ const doc = await this.rtfParser.string(text);
43
+ const plainText = this.extractPlainText(doc);
44
+ if (!plainText || plainText.trim().length === 0) {
45
+ throw new Error('RTF contains no extractable text');
46
+ }
47
+ // Parse extracted text as plain text screenplay
48
+ const screenplay = this.plainTextParser.parse(plainText);
49
+ // Update format metadata
50
+ screenplay.format = 'rtf';
51
+ screenplay.metadata = {
52
+ ...screenplay.metadata,
53
+ format: 'rtf',
54
+ originalFormat: 'rtf',
55
+ extractedText: true,
56
+ };
57
+ return screenplay;
58
+ }
59
+ catch (error) {
60
+ if (error instanceof Error) {
61
+ throw new Error(`Failed to parse RTF: ${error.message}`);
62
+ }
63
+ throw error;
64
+ }
65
+ }
66
+ /**
67
+ * Extract plain text from RTF document tree with formatting awareness
68
+ * Maps RTF formatting to screenplay elements:
69
+ * - \b (bold) + ALL CAPS → Scene heading or Character
70
+ * - \li (left indent) → Dialogue
71
+ * - Normal text → Action
72
+ */
73
+ extractPlainText(doc) {
74
+ const lines = [];
75
+ let currentFormatting = {
76
+ bold: false,
77
+ italic: false,
78
+ leftIndent: 0,
79
+ };
80
+ const traverse = (node, formatting = { ...currentFormatting }) => {
81
+ if (!node)
82
+ return;
83
+ // Update formatting state based on RTF control words
84
+ if (node.style) {
85
+ if (node.style.bold !== undefined) {
86
+ formatting.bold = node.style.bold;
87
+ }
88
+ if (node.style.italic !== undefined) {
89
+ formatting.italic = node.style.italic;
90
+ }
91
+ if (node.style.leftIndent !== undefined) {
92
+ formatting.leftIndent = node.style.leftIndent;
93
+ }
94
+ }
95
+ if (node.content) {
96
+ // Text node
97
+ if (typeof node.content === 'string') {
98
+ let text = node.content;
99
+ // Apply formatting hints
100
+ // If text is ALL CAPS and bold, it might be a scene heading or character
101
+ if (formatting.bold && /^[A-Z\s]+$/.test(text.trim()) && text.trim().length > 2) {
102
+ // Keep as-is, PlainTextParser will handle it
103
+ lines.push(text);
104
+ }
105
+ else if (formatting.leftIndent > 0) {
106
+ // Indented text might be dialogue
107
+ lines.push(text);
108
+ }
109
+ else {
110
+ lines.push(text);
111
+ }
112
+ }
113
+ else if (Array.isArray(node.content)) {
114
+ node.content.forEach((child) => traverse(child, { ...formatting }));
115
+ }
116
+ }
117
+ // Handle paragraph breaks
118
+ if (node.type === 'paragraph' || node.type === 'par') {
119
+ lines.push('\n');
120
+ }
121
+ if (node.children && Array.isArray(node.children)) {
122
+ node.children.forEach((child) => traverse(child, { ...formatting }));
123
+ }
124
+ };
125
+ traverse(doc);
126
+ // Clean up multiple consecutive newlines
127
+ return lines
128
+ .join('')
129
+ .replace(/\n{3,}/g, '\n\n')
130
+ .trim();
131
+ }
132
+ }
133
+ exports.RTFParser = RTFParser;
134
+ /**
135
+ * Helper function to read RTF file and parse it
136
+ */
137
+ async function parseRTFFile(filePath) {
138
+ const fs = require('fs').promises;
139
+ const content = await fs.readFile(filePath, 'utf-8');
140
+ const parser = new RTFParser();
141
+ return parser.parse(content);
142
+ }
143
+ //# sourceMappingURL=rtf-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtf-parser.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/rtf-parser.ts"],"names":[],"mappings":"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"}
@@ -93,11 +93,13 @@ export interface Screenplay {
93
93
  title?: string;
94
94
  author?: string;
95
95
  scenes: Scene[];
96
+ format?: string;
96
97
  metadata: {
97
- format: 'fountain' | 'markdown' | 'plaintext';
98
- totalLines: number;
98
+ format: 'fountain' | 'markdown' | 'plaintext' | 'finaldraft' | 'pdf' | 'docx' | 'rtf';
99
+ totalLines?: number;
99
100
  totalScenes: number;
100
- parsedAt: Date;
101
+ parsedAt: string | Date;
102
+ [key: string]: any;
101
103
  };
102
104
  }
103
105
  /**
@@ -106,8 +108,9 @@ export interface Screenplay {
106
108
  export interface Parser {
107
109
  /**
108
110
  * Parse screenplay file content
111
+ * Can be synchronous or asynchronous depending on the parser
109
112
  */
110
- parse(content: string): Screenplay;
113
+ parse(content: string | Buffer): Screenplay | Promise<Screenplay>;
111
114
  /**
112
115
  * Get parser name
113
116
  */
@@ -115,12 +118,12 @@ export interface Parser {
115
118
  /**
116
119
  * Check if parser can handle this content
117
120
  */
118
- canParse(content: string): boolean;
121
+ canParse(content: string | Buffer, filePath?: string): boolean;
119
122
  }
120
123
  /**
121
124
  * Parser factory function type
122
125
  */
123
- export type ParserFactory = (format: 'fountain' | 'markdown' | 'plaintext') => Parser;
126
+ export type ParserFactory = (format: 'fountain' | 'markdown' | 'plaintext' | 'finaldraft' | 'pdf' | 'docx' | 'rtf') => Parser;
124
127
  /**
125
128
  * Parse error
126
129
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAmJH;;GAEG;AACH,MAAa,UAAW,SAAQ,KAAK;IACnC,YACE,OAAe,EACR,IAAY,EACZ,MAAc,EACd,OAAgB;QAEvB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAS;QAGvB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAVD,gCAUC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAsJH;;GAEG;AACH,MAAa,UAAW,SAAQ,KAAK;IACnC,YACE,OAAe,EACR,IAAY,EACZ,MAAc,EACd,OAAgB;QAEvB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAS;QAGvB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAVD,gCAUC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Guideline Parser
3
+ *
4
+ * Parses cinematic style guidelines from markdown files
5
+ */
6
+ import { StyleGuidelines, GuidelineParser as IGuidelineParser } from './types';
7
+ /**
8
+ * Guideline parser implementation
9
+ */
10
+ export declare class GuidelineParser implements IGuidelineParser {
11
+ /**
12
+ * Parse guidelines from markdown content
13
+ */
14
+ parseGuidelines(markdown: string): StyleGuidelines;
15
+ /**
16
+ * Extract a specific section from markdown
17
+ */
18
+ extractSection(markdown: string, sectionName: string): string;
19
+ /**
20
+ * Extract a list of values from markdown
21
+ */
22
+ private extractList;
23
+ /**
24
+ * Extract a single value from markdown
25
+ */
26
+ private extractValue;
27
+ /**
28
+ * Check if content matches keyword in context
29
+ */
30
+ private matchesKeyword;
31
+ }
32
+ /**
33
+ * Create a guideline parser
34
+ */
35
+ export declare function createGuidelineParser(): GuidelineParser;
36
+ //# sourceMappingURL=guideline-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guideline-parser.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/style/guideline-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE/E;;GAEG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IACtD;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;IA6BlD;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAM7D;;OAEG;IACH,OAAO,CAAC,WAAW;IA+BnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACH,OAAO,CAAC,cAAc;CAOvB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ /**
3
+ * Guideline Parser
4
+ *
5
+ * Parses cinematic style guidelines from markdown files
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.GuidelineParser = void 0;
9
+ exports.createGuidelineParser = createGuidelineParser;
10
+ /**
11
+ * Guideline parser implementation
12
+ */
13
+ class GuidelineParser {
14
+ /**
15
+ * Parse guidelines from markdown content
16
+ */
17
+ parseGuidelines(markdown) {
18
+ return {
19
+ cameraWork: {
20
+ preferredFraming: this.extractList(markdown, 'framing', 'camera'),
21
+ preferredMovement: this.extractList(markdown, 'movement', 'camera'),
22
+ preferredAngles: this.extractList(markdown, 'angles', 'camera'),
23
+ techniques: this.extractList(markdown, 'techniques', 'camera'),
24
+ },
25
+ visualCharacteristics: {
26
+ colorPalette: this.extractList(markdown, 'color', 'visual'),
27
+ lighting: this.extractList(markdown, 'lighting', 'visual'),
28
+ composition: this.extractList(markdown, 'composition', 'visual'),
29
+ },
30
+ pacingAndRhythm: {
31
+ editingStyle: this.extractList(markdown, 'editing', 'pacing'),
32
+ shotDuration: this.extractValue(markdown, 'shot duration', 'pacing') || 'varies',
33
+ transitions: this.extractList(markdown, 'transitions', 'pacing'),
34
+ },
35
+ characterBlocking: {
36
+ staging: this.extractList(markdown, 'staging', 'blocking'),
37
+ movement: this.extractList(markdown, 'movement', 'blocking'),
38
+ },
39
+ dialogueDelivery: {
40
+ pacing: this.extractList(markdown, 'pacing', 'dialogue'),
41
+ style: this.extractList(markdown, 'style', 'dialogue'),
42
+ },
43
+ };
44
+ }
45
+ /**
46
+ * Extract a specific section from markdown
47
+ */
48
+ extractSection(markdown, sectionName) {
49
+ const regex = new RegExp(`##\\s+${sectionName}[\\s\\S]*?(?=##|$)`, 'i');
50
+ const match = markdown.match(regex);
51
+ return match ? match[0] : '';
52
+ }
53
+ /**
54
+ * Extract a list of values from markdown
55
+ */
56
+ extractList(markdown, keyword, context) {
57
+ const values = [];
58
+ // Look for bullet points containing the keyword
59
+ const lines = markdown.split('\n');
60
+ for (const line of lines) {
61
+ const trimmed = line.trim();
62
+ if (trimmed.startsWith('-') || trimmed.startsWith('*')) {
63
+ const content = trimmed.substring(1).trim();
64
+ if (this.matchesKeyword(content, keyword, context)) {
65
+ const value = this.extractValue(content, keyword, context);
66
+ if (value) {
67
+ values.push(value);
68
+ }
69
+ }
70
+ }
71
+ }
72
+ // Also look for inline mentions
73
+ const inlineRegex = new RegExp(`${keyword}[:\\s]+([^.\\n]+)`, 'gi');
74
+ let match;
75
+ while ((match = inlineRegex.exec(markdown)) !== null) {
76
+ const value = match[1].trim();
77
+ if (value && !values.includes(value)) {
78
+ values.push(value);
79
+ }
80
+ }
81
+ return values;
82
+ }
83
+ /**
84
+ * Extract a single value from markdown
85
+ */
86
+ extractValue(markdown, keyword, context) {
87
+ const regex = new RegExp(`${keyword}[:\\s]+([^.\\n]+)`, 'i');
88
+ const match = markdown.match(regex);
89
+ return match ? match[1].trim() : null;
90
+ }
91
+ /**
92
+ * Check if content matches keyword in context
93
+ */
94
+ matchesKeyword(content, keyword, context) {
95
+ const lowerContent = content.toLowerCase();
96
+ const lowerKeyword = keyword.toLowerCase();
97
+ const lowerContext = context.toLowerCase();
98
+ return lowerContent.includes(lowerKeyword) || lowerContent.includes(lowerContext);
99
+ }
100
+ }
101
+ exports.GuidelineParser = GuidelineParser;
102
+ /**
103
+ * Create a guideline parser
104
+ */
105
+ function createGuidelineParser() {
106
+ return new GuidelineParser();
107
+ }
108
+ //# sourceMappingURL=guideline-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guideline-parser.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/style/guideline-parser.ts"],"names":[],"mappings":"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"}