{"id":46530664,"url":"https://github.com/winccoa-tools-pack/npm-winccoa-syntax-check","last_synced_at":"2026-05-30T11:00:15.211Z","repository":{"id":342681093,"uuid":"1174777881","full_name":"winccoa-tools-pack/npm-winccoa-syntax-check","owner":"winccoa-tools-pack","description":"The template for WinCC OA NPM packages","archived":false,"fork":false,"pushed_at":"2026-05-30T09:01:05.000Z","size":340,"stargazers_count":0,"open_issues_count":4,"forks_count":1,"subscribers_count":0,"default_branch":"develop","last_synced_at":"2026-05-30T10:13:22.173Z","etag":null,"topics":["automation","code-quality","etm","hmi","industrial-automation","linting","npm","scada","siemens","static-code-analysis","vscode","wincc-oa","winccoa"],"latest_commit_sha":null,"homepage":"https://github.com/winccoa-tools-pack","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/winccoa-tools-pack.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"buy_me_a_coffee":"mPokornyETM"}},"created_at":"2026-03-06T20:40:40.000Z","updated_at":"2026-05-30T09:01:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/winccoa-tools-pack/npm-winccoa-syntax-check","commit_stats":null,"previous_names":["winccoa-tools-pack/npm-winccoa-syntax-check","mpokornyetm/npm-winccoa-syntax-check"],"tags_count":28,"template":false,"template_full_name":"winccoa-tools-pack/template-npm-shared-library","purl":"pkg:github/winccoa-tools-pack/npm-winccoa-syntax-check","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winccoa-tools-pack%2Fnpm-winccoa-syntax-check","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winccoa-tools-pack%2Fnpm-winccoa-syntax-check/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winccoa-tools-pack%2Fnpm-winccoa-syntax-check/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winccoa-tools-pack%2Fnpm-winccoa-syntax-check/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/winccoa-tools-pack","download_url":"https://codeload.github.com/winccoa-tools-pack/npm-winccoa-syntax-check/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winccoa-tools-pack%2Fnpm-winccoa-syntax-check/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33689564,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","code-quality","etm","hmi","industrial-automation","linting","npm","scada","siemens","static-code-analysis","vscode","wincc-oa","winccoa"],"created_at":"2026-03-06T22:10:14.544Z","updated_at":"2026-05-30T11:00:15.198Z","avatar_url":"https://github.com/winccoa-tools-pack.png","language":"TypeScript","funding_links":["https://buymeacoffee.com/mPokornyETM"],"categories":[],"sub_categories":[],"readme":"# WinCC OA Syntax Check Tool\n\nA lightweight developer tool for SIMATIC WinCC Open Architecture projects, providing syntax checking for panels and scripts.\nThis package is part of the modular winccoa-tools-pack ecosystem, which delivers modern development tooling,\nreusable libraries, and VS Code extensions for WinCC OA engineers.\n[github.com](https://github.com/winccoa-tools-pack)\n\n## ✨ Features\n\n- **Syntax checking for panels and scripts**  \n  Run WinCC OA's built-in syntax checker on your project to catch errors before deployment.\n\n- **CI/CD ready**  \n  Exit code 0 on success, non-zero on errors - perfect for pipeline integration.\n\n- **Cross-platform support**  \n  Works on Windows and Linux (headless mode with `-platform minimal`).\n\n- **Multiple check modes**  \n  Check all, panels only, or scripts only - with optional integrity checking.\n\n## 📦 Installation\n\n```shell\nnpm install @winccoa-tools-pack/npm-winccoa-syntax-check\n```\n\nOr globally:\n\n```shell\nnpm install -g @winccoa-tools-pack/npm-winccoa-syntax-check\n```\n\n## 🖥 Usage (CLI)\n\n```shell\n# Check all panels and scripts\nwinccoa-syntax-check -v 3.20 -c /path/to/project/config/config\n\n# Check only panels with integrity check\nwinccoa-syntax-check -v 3.20 -c ./config/config -m panels -i\n\n# Check only scripts in a specific directory\nwinccoa-syntax-check -v 3.20 -c ./config/config -m scripts -s libs/\n\n# Options:\n#   -v, --version \u003cver\u003e   WinCC OA version (e.g. 3.20)  [required]\n#   -c, --config \u003cpath\u003e   WinCC OA project config file  [required]\n#   -m, --mode \u003cmode\u003e     Check mode: all, scripts, panels (default: all)\n#   -i, --integrity       Add integrity check\n#   -s, --scripts \u003cpath\u003e  Start path for scripts\n#   -p, --panels \u003cpath\u003e   Start path for panels\n#   -t, --timeout \u003cms\u003e    Process timeout in milliseconds (default: 60000)\n```\n\n## ⚠️ Important Notes\n\n- **Requires WinCC OA 3.19+** with UI manager installed.\n- The `-syntax` option only works with `-config`, not `-proj` (WinCC OA limitation).\n- On Linux, the tool uses `-platform minimal` for headless execution.\n\n## 🧩 Usage (API)\n\n```typescript\nimport { checkSyntax, checkPanels, checkScripts, SyntaxCheckMode } from \"@winccoa-tools-pack/npm-winccoa-syntax-check\";\n\n// Full syntax check\nconst result = await checkSyntax({\n  version: \"3.20\",\n  configPath: \"/path/to/project/config/config\",\n  mode: SyntaxCheckMode.ALL,\n  integrity: true,\n});\n\nif (!result.success) {\n  throw new Error(`Syntax check failed (exit ${result.exitCode}): ${result.stderr}`);\n}\n\n// Convenience wrappers\nconst panelsResult = await checkPanels({\n  version: \"3.20\",\n  configPath: \"./config/config\",\n  panelsPath: \"mySubDir/\",\n});\n\nconst scriptsResult = await checkScripts({\n  version: \"3.20\",\n  configPath: \"./config/config\",\n  scriptsPath: \"libs/\",\n});\n```\n\n## 🩺 Troubleshooting\n\n- **Non-zero exit code**: Inspect `stderr` and ensure `--version` matches your WinCC OA installation.\n- **Timeouts**: Increase `--timeout` / `timeout` for large projects.\n- **Syntax errors not detected**: Ensure `-config` points to a valid WinCC OA project config file.\n\n## 📚 Ecosystem Integration\n\nThis package is designed for seamless use with:\n\n- **VS Code extensions for WinCC OA development**  \n  Our open source community provides multiple VS Code tools that enhance the engineering workflow for WinCC OA developers.\n\n- **Node.js libraries**  \n  Works side-by-side with other libraries in the winccoa-tools-pack suite (project management, core utilities, testing, etc.).\n\n- **CI/CD automation**  \n  Ideal for pipelines needing validation of WinCC OA projects.\n\n## 📦 Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Build the library\nnpm run build\n\n# Run tests\nnpm test\n\n# Lint code\nnpm run lint\n```\n\n## 🏆 Recognition\n\nSpecial thanks to all our [contributors](https://github.com/orgs/winccoa-tools-pack/people) who make this project possible!\n\n### Key Contributors\n\n- **Martin Pokorny** ([@mPokornyETM](https://github.com/mPokornyETM)) - Creator \u0026 Lead Developer\n- And many more amazing contributors!\n\n---\n\n## 📜 License\n\nThis project is licensed under the **MIT License** - see the [LICENSE](https://github.com/winccoa-tools-pack/.github/blob/main/LICENSE) file for details.\n\n---\n\n## ⚠️ Disclaimer\n\n**WinCC OA** and **Siemens** are trademarks of Siemens AG.\nThis project is not affiliated with, endorsed by, or sponsored by Siemens AG.\nThis is a community-driven open source project created to enhance the development experience for WinCC OA developers.\n\n---\n\n## 🎉 Thank You\n\nThank you for using WinCC OA tools package! We're excited to be part of your development journey.\n\nHappy Coding! 🚀\n\n---\n\n## Quick Links\n\n[📦 VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=mPokornyETM.wincc-oa-projects)\n\nMade with ❤️ for and by the WinCC OA community\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinccoa-tools-pack%2Fnpm-winccoa-syntax-check","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwinccoa-tools-pack%2Fnpm-winccoa-syntax-check","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinccoa-tools-pack%2Fnpm-winccoa-syntax-check/lists"}