@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.
- package/README.md +119 -8
- package/augment-extensions/coding-standards/bash/CHANGELOG.md +51 -0
- package/augment-extensions/coding-standards/bash/metadata.json +21 -0
- package/augment-extensions/coding-standards/c/metadata.json +50 -0
- package/augment-extensions/coding-standards/css/CHANGELOG.md +51 -0
- package/augment-extensions/coding-standards/css/metadata.json +30 -0
- package/augment-extensions/coding-standards/go/CHANGELOG.md +51 -0
- package/augment-extensions/coding-standards/go/metadata.json +57 -0
- package/augment-extensions/coding-standards/html/CHANGELOG.md +51 -0
- package/augment-extensions/coding-standards/html/metadata.json +25 -0
- package/augment-extensions/coding-standards/html-css-js/CHANGELOG.md +51 -0
- package/augment-extensions/coding-standards/html-css-js/metadata.json +40 -0
- package/augment-extensions/coding-standards/js/CHANGELOG.md +51 -0
- package/augment-extensions/coding-standards/js/metadata.json +37 -0
- package/augment-extensions/coding-standards/php/CHANGELOG.md +51 -0
- package/augment-extensions/coding-standards/php/metadata.json +35 -0
- package/augment-extensions/coding-standards/powershell/CHANGELOG.md +51 -0
- package/augment-extensions/coding-standards/powershell/metadata.json +33 -0
- package/augment-extensions/coding-standards/python/CHANGELOG.md +51 -0
- package/augment-extensions/coding-standards/python/metadata.json +38 -0
- package/augment-extensions/coding-standards/react/CHANGELOG.md +51 -0
- package/augment-extensions/coding-standards/react/metadata.json +31 -0
- package/augment-extensions/coding-standards/typescript/CHANGELOG.md +39 -0
- package/augment-extensions/coding-standards/typescript/README.md +248 -19
- package/augment-extensions/coding-standards/typescript/VERSION +2 -0
- package/augment-extensions/coding-standards/typescript/examples/biome.json +199 -0
- package/augment-extensions/coding-standards/typescript/examples/eslint-flat-config.js +166 -0
- package/augment-extensions/coding-standards/typescript/examples/monorepo-config/README.md +47 -0
- package/augment-extensions/coding-standards/typescript/examples/monorepo-config/package.json +37 -0
- package/augment-extensions/coding-standards/typescript/examples/monorepo-config/pnpm-workspace.yaml +5 -0
- package/augment-extensions/coding-standards/typescript/examples/monorepo-config/tsconfig.base.json +50 -0
- package/augment-extensions/coding-standards/typescript/examples/monorepo-config/turbo.json +47 -0
- package/augment-extensions/coding-standards/typescript/examples/vitest-setup.ts +198 -0
- package/augment-extensions/coding-standards/typescript/metadata.json +46 -0
- package/augment-extensions/coding-standards/typescript/module.json +25 -7
- package/augment-extensions/coding-standards/typescript/rules/architecture.md +1096 -0
- package/augment-extensions/coding-standards/typescript/rules/error-handling.md +1174 -0
- package/augment-extensions/coding-standards/typescript/rules/modern-features.md +625 -0
- package/augment-extensions/coding-standards/typescript/rules/monorepo.md +745 -0
- package/augment-extensions/coding-standards/typescript/rules/security-performance.md +850 -0
- package/augment-extensions/coding-standards/typescript/rules/testing.md +918 -0
- package/augment-extensions/coding-standards/typescript/rules/tooling.md +1071 -0
- package/augment-extensions/coding-standards/typescript/rules/type-patterns.md +750 -0
- package/augment-extensions/domain-rules/api-design/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/api-design/metadata.json +32 -0
- package/augment-extensions/domain-rules/database/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/database/metadata.json +50 -0
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/metadata.json +18 -0
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/metadata.json +18 -0
- package/augment-extensions/domain-rules/design/color/themes/dracula/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/design/color/themes/dracula/metadata.json +18 -0
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/metadata.json +18 -0
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/metadata.json +18 -0
- package/augment-extensions/domain-rules/design/color/themes/high-contrast/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/design/color/themes/high-contrast/metadata.json +18 -0
- package/augment-extensions/domain-rules/design/color/themes/monokai/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/design/color/themes/monokai/metadata.json +18 -0
- package/augment-extensions/domain-rules/design/color/themes/nord/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/design/color/themes/nord/metadata.json +18 -0
- package/augment-extensions/domain-rules/design/color/themes/one-dark/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/design/color/themes/one-dark/metadata.json +18 -0
- package/augment-extensions/domain-rules/design/color/themes/one-light/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/design/color/themes/one-light/metadata.json +18 -0
- package/augment-extensions/domain-rules/design/color/themes/solarized-dark/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/design/color/themes/solarized-dark/metadata.json +18 -0
- package/augment-extensions/domain-rules/design/color/themes/solarized-light/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/design/color/themes/solarized-light/metadata.json +18 -0
- package/augment-extensions/domain-rules/design/color/themes/tokyo-night/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/design/color/themes/tokyo-night/metadata.json +18 -0
- package/augment-extensions/domain-rules/mcp/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/mcp/metadata.json +42 -0
- package/augment-extensions/domain-rules/security/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/security/metadata.json +33 -0
- package/augment-extensions/domain-rules/seo-sales-marketing/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/seo-sales-marketing/metadata.json +40 -0
- package/augment-extensions/domain-rules/software-architecture/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/software-architecture/metadata.json +55 -0
- package/augment-extensions/domain-rules/wordpress/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/wordpress/metadata.json +42 -0
- package/augment-extensions/domain-rules/wordpress-plugin/CHANGELOG.md +51 -0
- package/augment-extensions/domain-rules/wordpress-plugin/metadata.json +70 -0
- package/augment-extensions/examples/design-patterns/CHANGELOG.md +51 -0
- package/augment-extensions/examples/design-patterns/metadata.json +29 -0
- package/augment-extensions/examples/gutenberg-block-plugin/CHANGELOG.md +51 -0
- package/augment-extensions/examples/gutenberg-block-plugin/metadata.json +26 -0
- package/augment-extensions/examples/rest-api-plugin/CHANGELOG.md +51 -0
- package/augment-extensions/examples/rest-api-plugin/metadata.json +27 -0
- package/augment-extensions/examples/woocommerce-extension/CHANGELOG.md +51 -0
- package/augment-extensions/examples/woocommerce-extension/metadata.json +27 -0
- package/augment-extensions/visual-design/metadata.json +34 -0
- package/augment-extensions/workflows/adr-support/CHANGELOG.md +51 -0
- package/augment-extensions/workflows/adr-support/metadata.json +41 -0
- package/augment-extensions/workflows/beads/CHANGELOG.md +51 -0
- package/augment-extensions/workflows/beads/metadata.json +23 -0
- package/augment-extensions/workflows/beads-integration/CHANGELOG.md +51 -0
- package/augment-extensions/workflows/beads-integration/metadata.json +30 -0
- package/augment-extensions/workflows/database/CHANGELOG.md +51 -0
- package/augment-extensions/workflows/database/metadata.json +30 -0
- package/augment-extensions/workflows/wordpress-plugin/CHANGELOG.md +51 -0
- package/augment-extensions/workflows/wordpress-plugin/metadata.json +41 -0
- package/augment-extensions/writing-standards/literature/shakespeare/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/literature/shakespeare/metadata.json +60 -0
- package/augment-extensions/writing-standards/screenplay/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/comedy-formats/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/comedy-formats/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/comedy-formats/monty-python/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/comedy-formats/monty-python/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/comedy-formats/saturday-night-live/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/comedy-formats/saturday-night-live/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/alfred-hitchcock/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/alfred-hitchcock/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/ari-aster/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/ari-aster/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/brad-bird/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/brad-bird/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/brian-de-palma/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/brian-de-palma/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/buster-keaton/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/buster-keaton/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/christopher-nolan/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/christopher-nolan/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/clint-eastwood/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/clint-eastwood/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/coen-brothers/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/coen-brothers/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/darren-aronofsky/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/darren-aronofsky/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/david-fincher/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/david-fincher/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/david-lynch/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/david-lynch/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/denis-villeneuve/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/denis-villeneuve/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/francis-ford-coppola/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/francis-ford-coppola/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/gary-marshall/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/gary-marshall/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/george-a-romero/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/george-a-romero/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/george-lucas/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/george-lucas/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/guillermo-del-toro/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/guillermo-del-toro/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/gus-van-sant/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/gus-van-sant/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/james-ivory-ismail-merchant/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/james-ivory-ismail-merchant/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/jim-jarmusch/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/jim-jarmusch/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-carpenter/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-carpenter/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-ford/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-ford/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-huston/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-huston/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-landis/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-landis/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/jonathan-demme/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/jonathan-demme/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/joseph-l-mankiewicz/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/joseph-l-mankiewicz/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/kathryn-bigelow/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/kathryn-bigelow/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/kelly-reichardt/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/kelly-reichardt/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/kevin-smith/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/kevin-smith/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/linda-shayne/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/linda-shayne/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/martin-scorsese/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/martin-scorsese/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/mel-brooks/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/mel-brooks/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/metadata.json +25 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/michael-curtiz/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/michael-curtiz/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/michael-mann/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/michael-mann/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/mike-nichols/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/mike-nichols/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/orson-welles/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/orson-welles/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/park-chan-wook/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/park-chan-wook/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/paul-thomas-anderson/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/paul-thomas-anderson/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/penny-marshall/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/penny-marshall/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/peter-bogdanovich/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/peter-bogdanovich/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/quentin-tarantino/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/quentin-tarantino/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/richard-linklater/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/richard-linklater/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/rob-reiner/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/rob-reiner/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/robert-altman/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/robert-altman/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/robert-eggers/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/robert-eggers/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/robert-zemeckis/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/robert-zemeckis/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/sam-peckinpah/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/sam-peckinpah/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/sidney-lumet/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/sidney-lumet/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/spike-lee/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/spike-lee/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/stanley-donen-gene-kelly/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/stanley-donen-gene-kelly/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/stanley-kubrick/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/stanley-kubrick/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/steve-martin/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/steve-martin/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/steven-spielberg/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/steven-spielberg/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/sydney-pollack/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/sydney-pollack/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/terry-gilliam/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/terry-gilliam/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/tim-burton/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/tim-burton/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/tobe-hooper/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/tobe-hooper/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/wes-anderson/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/wes-anderson/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/william-friedkin/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/william-friedkin/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/films/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/films/blue-ruin/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/films/blue-ruin/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/films/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/fast-and-furious/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/fast-and-furious/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/harry-potter/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/harry-potter/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/james-bond/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/james-bond/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/john-wick/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/john-wick/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/lord-of-the-rings/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/lord-of-the-rings/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/mcu/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/mcu/metadata.json +25 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/metadata.json +25 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/star-trek/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/star-trek/metadata.json +33 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/star-wars/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/star-wars/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/metadata.json +50 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/narrative-theory/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/narrative-theory/joseph-campbell/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/narrative-theory/joseph-campbell/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/narrative-theory/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/producers/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/producers/bruckheimer-and-simpson/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/producers/bruckheimer-and-simpson/metadata.json +24 -0
- package/augment-extensions/writing-standards/screenplay/cinematic-styles/producers/metadata.json +23 -0
- package/augment-extensions/writing-standards/screenplay/genres/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/genres/metadata.json +43 -0
- package/augment-extensions/writing-standards/screenplay/metadata.json +65 -0
- package/augment-extensions/writing-standards/screenplay/styles/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/styles/metadata.json +38 -0
- package/augment-extensions/writing-standards/screenplay/themes/CHANGELOG.md +51 -0
- package/augment-extensions/writing-standards/screenplay/themes/metadata.json +47 -0
- package/cli/dist/__test_health-checker.d.ts +2 -0
- package/cli/dist/__test_health-checker.d.ts.map +1 -0
- package/cli/dist/__test_health-checker.js +4 -0
- package/cli/dist/__test_health-checker.js.map +1 -0
- package/cli/dist/__test_template-engine.d.ts +2 -0
- package/cli/dist/__test_template-engine.d.ts.map +1 -0
- package/cli/dist/__test_template-engine.js +4 -0
- package/cli/dist/__test_template-engine.js.map +1 -0
- package/cli/dist/cli.js +25 -0
- package/cli/dist/cli.js.map +1 -1
- package/cli/dist/commands/generate-shot-list/generator/index.d.ts +8 -2
- package/cli/dist/commands/generate-shot-list/generator/index.d.ts.map +1 -1
- package/cli/dist/commands/generate-shot-list/generator/index.js +28 -3
- package/cli/dist/commands/generate-shot-list/generator/index.js.map +1 -1
- package/cli/dist/commands/generate-shot-list/generator/types.d.ts +3 -0
- package/cli/dist/commands/generate-shot-list/generator/types.d.ts.map +1 -1
- package/cli/dist/commands/generate-shot-list/help-text.d.ts +1 -1
- package/cli/dist/commands/generate-shot-list/help-text.d.ts.map +1 -1
- package/cli/dist/commands/generate-shot-list/help-text.js +48 -5
- package/cli/dist/commands/generate-shot-list/help-text.js.map +1 -1
- package/cli/dist/commands/generate-shot-list/logger/jsonl-writer.d.ts +11 -1
- package/cli/dist/commands/generate-shot-list/logger/jsonl-writer.d.ts.map +1 -1
- package/cli/dist/commands/generate-shot-list/logger/jsonl-writer.js +61 -1
- package/cli/dist/commands/generate-shot-list/logger/jsonl-writer.js.map +1 -1
- package/cli/dist/commands/generate-shot-list/parser/docx-parser.d.ts +29 -0
- package/cli/dist/commands/generate-shot-list/parser/docx-parser.d.ts.map +1 -0
- package/cli/dist/commands/generate-shot-list/parser/docx-parser.js +111 -0
- package/cli/dist/commands/generate-shot-list/parser/docx-parser.js.map +1 -0
- package/cli/dist/commands/generate-shot-list/parser/finaldraft-parser.d.ts +18 -0
- package/cli/dist/commands/generate-shot-list/parser/finaldraft-parser.d.ts.map +1 -0
- package/cli/dist/commands/generate-shot-list/parser/finaldraft-parser.js +184 -0
- package/cli/dist/commands/generate-shot-list/parser/finaldraft-parser.js.map +1 -0
- package/cli/dist/commands/generate-shot-list/parser/index.d.ts +4 -3
- package/cli/dist/commands/generate-shot-list/parser/index.d.ts.map +1 -1
- package/cli/dist/commands/generate-shot-list/parser/index.js +54 -3
- package/cli/dist/commands/generate-shot-list/parser/index.js.map +1 -1
- package/cli/dist/commands/generate-shot-list/parser/pdf-parser.d.ts +24 -0
- package/cli/dist/commands/generate-shot-list/parser/pdf-parser.d.ts.map +1 -0
- package/cli/dist/commands/generate-shot-list/parser/pdf-parser.js +84 -0
- package/cli/dist/commands/generate-shot-list/parser/pdf-parser.js.map +1 -0
- package/cli/dist/commands/generate-shot-list/parser/rtf-parser.d.ts +28 -0
- package/cli/dist/commands/generate-shot-list/parser/rtf-parser.d.ts.map +1 -0
- package/cli/dist/commands/generate-shot-list/parser/rtf-parser.js +143 -0
- package/cli/dist/commands/generate-shot-list/parser/rtf-parser.js.map +1 -0
- package/cli/dist/commands/generate-shot-list/parser/types.d.ts +9 -6
- package/cli/dist/commands/generate-shot-list/parser/types.d.ts.map +1 -1
- package/cli/dist/commands/generate-shot-list/parser/types.js.map +1 -1
- package/cli/dist/commands/generate-shot-list/style/guideline-parser.d.ts +36 -0
- package/cli/dist/commands/generate-shot-list/style/guideline-parser.d.ts.map +1 -0
- package/cli/dist/commands/generate-shot-list/style/guideline-parser.js +108 -0
- package/cli/dist/commands/generate-shot-list/style/guideline-parser.js.map +1 -0
- package/cli/dist/commands/generate-shot-list/style/index.d.ts +39 -0
- package/cli/dist/commands/generate-shot-list/style/index.d.ts.map +1 -0
- package/cli/dist/commands/generate-shot-list/style/index.js +85 -0
- package/cli/dist/commands/generate-shot-list/style/index.js.map +1 -0
- package/cli/dist/commands/generate-shot-list/style/style-loader.d.ts +35 -0
- package/cli/dist/commands/generate-shot-list/style/style-loader.d.ts.map +1 -0
- package/cli/dist/commands/generate-shot-list/style/style-loader.js +178 -0
- package/cli/dist/commands/generate-shot-list/style/style-loader.js.map +1 -0
- package/cli/dist/commands/generate-shot-list/style/style-merger.d.ts +36 -0
- package/cli/dist/commands/generate-shot-list/style/style-merger.d.ts.map +1 -0
- package/cli/dist/commands/generate-shot-list/style/style-merger.js +123 -0
- package/cli/dist/commands/generate-shot-list/style/style-merger.js.map +1 -0
- package/cli/dist/commands/generate-shot-list/style/types.d.ts +105 -0
- package/cli/dist/commands/generate-shot-list/style/types.d.ts.map +1 -0
- package/cli/dist/commands/generate-shot-list/style/types.js +8 -0
- package/cli/dist/commands/generate-shot-list/style/types.js.map +1 -0
- package/cli/dist/commands/generate-shot-list.d.ts +1 -0
- package/cli/dist/commands/generate-shot-list.d.ts.map +1 -1
- package/cli/dist/commands/generate-shot-list.js +44 -1
- package/cli/dist/commands/generate-shot-list.js.map +1 -1
- package/cli/dist/commands/list.d.ts +1 -0
- package/cli/dist/commands/list.d.ts.map +1 -1
- package/cli/dist/commands/list.js +21 -5
- package/cli/dist/commands/list.js.map +1 -1
- package/cli/dist/commands/upgrade.d.ts +15 -0
- package/cli/dist/commands/upgrade.d.ts.map +1 -0
- package/cli/dist/commands/upgrade.js +229 -0
- package/cli/dist/commands/upgrade.js.map +1 -0
- package/cli/dist/commands/use.d.ts +15 -0
- package/cli/dist/commands/use.d.ts.map +1 -0
- package/cli/dist/commands/use.js +180 -0
- package/cli/dist/commands/use.js.map +1 -0
- package/cli/dist/commands/version-info.d.ts +15 -0
- package/cli/dist/commands/version-info.d.ts.map +1 -0
- package/cli/dist/commands/version-info.js +194 -0
- package/cli/dist/commands/version-info.js.map +1 -0
- package/cli/dist/core/compatibility-checker.d.ts +73 -0
- package/cli/dist/core/compatibility-checker.d.ts.map +1 -0
- package/cli/dist/core/compatibility-checker.js +188 -0
- package/cli/dist/core/compatibility-checker.js.map +1 -0
- package/cli/dist/core/index.d.ts +9 -0
- package/cli/dist/core/index.d.ts.map +1 -0
- package/cli/dist/core/index.js +16 -0
- package/cli/dist/core/index.js.map +1 -0
- package/cli/dist/core/module-loader.d.ts +68 -0
- package/cli/dist/core/module-loader.d.ts.map +1 -0
- package/cli/dist/core/module-loader.js +137 -0
- package/cli/dist/core/module-loader.js.map +1 -0
- package/cli/dist/core/version-manager.d.ts +62 -0
- package/cli/dist/core/version-manager.d.ts.map +1 -0
- package/cli/dist/core/version-manager.js +157 -0
- package/cli/dist/core/version-manager.js.map +1 -0
- package/cli/dist/core/version-resolver.d.ts +63 -0
- package/cli/dist/core/version-resolver.d.ts.map +1 -0
- package/cli/dist/core/version-resolver.js +163 -0
- package/cli/dist/core/version-resolver.js.map +1 -0
- package/cli/dist/gui/app.d.ts +17 -0
- package/cli/dist/gui/app.d.ts.map +1 -0
- package/cli/dist/gui/app.js +79 -0
- package/cli/dist/gui/app.js.map +1 -0
- package/cli/dist/gui/components/preview-pane.d.ts +40 -0
- package/cli/dist/gui/components/preview-pane.d.ts.map +1 -0
- package/cli/dist/gui/components/preview-pane.js +90 -0
- package/cli/dist/gui/components/preview-pane.js.map +1 -0
- package/cli/dist/gui/components/search-filter.d.ts +26 -0
- package/cli/dist/gui/components/search-filter.d.ts.map +1 -0
- package/cli/dist/gui/components/search-filter.js +168 -0
- package/cli/dist/gui/components/search-filter.js.map +1 -0
- package/cli/dist/gui/components/status-bar.d.ts +22 -0
- package/cli/dist/gui/components/status-bar.d.ts.map +1 -0
- package/cli/dist/gui/components/status-bar.js +58 -0
- package/cli/dist/gui/components/status-bar.js.map +1 -0
- package/cli/dist/gui/components/tree-navigator.d.ts +30 -0
- package/cli/dist/gui/components/tree-navigator.d.ts.map +1 -0
- package/cli/dist/gui/components/tree-navigator.js +133 -0
- package/cli/dist/gui/components/tree-navigator.js.map +1 -0
- package/cli/dist/gui/components/version-selector.d.ts +27 -0
- package/cli/dist/gui/components/version-selector.d.ts.map +1 -0
- package/cli/dist/gui/components/version-selector.js +110 -0
- package/cli/dist/gui/components/version-selector.js.map +1 -0
- package/cli/dist/gui/hooks/use-version-loader.d.ts +25 -0
- package/cli/dist/gui/hooks/use-version-loader.d.ts.map +1 -0
- package/cli/dist/gui/hooks/use-version-loader.js +116 -0
- package/cli/dist/gui/hooks/use-version-loader.js.map +1 -0
- package/cli/dist/gui/index.d.ts +15 -0
- package/cli/dist/gui/index.d.ts.map +1 -0
- package/cli/dist/gui/index.js +39 -0
- package/cli/dist/gui/index.js.map +1 -0
- package/cli/dist/gui/layouts/main-layout.d.ts +14 -0
- package/cli/dist/gui/layouts/main-layout.d.ts.map +1 -0
- package/cli/dist/gui/layouts/main-layout.js +205 -0
- package/cli/dist/gui/layouts/main-layout.js.map +1 -0
- package/cli/dist/gui/state/navigation-state.d.ts +39 -0
- package/cli/dist/gui/state/navigation-state.d.ts.map +1 -0
- package/cli/dist/gui/state/navigation-state.js +151 -0
- package/cli/dist/gui/state/navigation-state.js.map +1 -0
- package/cli/dist/gui/state/selection-state.d.ts +36 -0
- package/cli/dist/gui/state/selection-state.d.ts.map +1 -0
- package/cli/dist/gui/state/selection-state.js +132 -0
- package/cli/dist/gui/state/selection-state.js.map +1 -0
- package/cli/dist/gui/theme.d.ts +50 -0
- package/cli/dist/gui/theme.d.ts.map +1 -0
- package/cli/dist/gui/theme.js +73 -0
- package/cli/dist/gui/theme.js.map +1 -0
- package/cli/dist/utils/help.d.ts +13 -0
- package/cli/dist/utils/help.d.ts.map +1 -0
- package/cli/dist/utils/help.js +137 -0
- package/cli/dist/utils/help.js.map +1 -0
- package/cli/dist/utils/module-system.d.ts +8 -0
- package/cli/dist/utils/module-system.d.ts.map +1 -1
- package/cli/dist/utils/module-system.js +38 -3
- package/cli/dist/utils/module-system.js.map +1 -1
- package/cli/dist/utils/validate-versioning.d.ts +43 -0
- package/cli/dist/utils/validate-versioning.d.ts.map +1 -0
- package/cli/dist/utils/validate-versioning.js +258 -0
- package/cli/dist/utils/validate-versioning.js.map +1 -0
- 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
|
-
|
|
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
|
-
|
|
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
|
|
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":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;
|
|
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
|
|
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":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,YAAY,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,IAAI,EAAE,YAAY,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,aAAa,GACb,eAAe,GACf,iBAAiB,GACjB,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE;QACR,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;
|
|
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;;;
|
|
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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"}
|