{"id":15130949,"url":"https://github.com/hpcc-systems/visualization","last_synced_at":"2026-05-29T08:01:55.783Z","repository":{"id":18899047,"uuid":"22117259","full_name":"hpcc-systems/Visualization","owner":"hpcc-systems","description":"HPCC JavaScript Framework","archived":false,"fork":false,"pushed_at":"2026-05-18T08:47:10.000Z","size":152683,"stargazers_count":103,"open_issues_count":2,"forks_count":64,"subscribers_count":27,"default_branch":"main","last_synced_at":"2026-05-18T08:50:53.223Z","etag":null,"topics":["typescript","umd"],"latest_commit_sha":null,"homepage":"https://hpcc-systems.github.io/Visualization/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hpcc-systems.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"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}},"created_at":"2014-07-22T19:13:04.000Z","updated_at":"2026-05-18T08:43:48.000Z","dependencies_parsed_at":"2023-02-18T15:02:22.733Z","dependency_job_id":"19783ce9-26f6-4d3f-8daf-6a0277eb2daa","html_url":"https://github.com/hpcc-systems/Visualization","commit_stats":{"total_commits":2963,"total_committers":37,"mean_commits":80.08108108108108,"dds":0.6395545055686804,"last_synced_commit":"75ecad346886326107f515194f47508a982a0c91"},"previous_names":[],"tags_count":5953,"template":false,"template_full_name":null,"purl":"pkg:github/hpcc-systems/Visualization","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpcc-systems%2FVisualization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpcc-systems%2FVisualization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpcc-systems%2FVisualization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpcc-systems%2FVisualization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hpcc-systems","download_url":"https://codeload.github.com/hpcc-systems/Visualization/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpcc-systems%2FVisualization/sbom","scorecard":{"id":470084,"data":{"date":"2025-08-11","repo":{"name":"github.com/hpcc-systems/Visualization","commit":"b9c9c06b9efc2938171d8cd4d65e23ebf1a1b899"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.1,"checks":[{"name":"Code-Review","score":0,"reason":"Found 2/21 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/release-please.yml:13","Warn: no topLevel permission defined: .github/workflows/update-docs.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'trunk'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":3,"reason":"dependency not pinned by hash detected -- score normalized to 3","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/hpcc-systems/Visualization/codeql-analysis.yml/trunk?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/hpcc-systems/Visualization/codeql-analysis.yml/trunk?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:67: update your workflow using https://app.stepsecurity.io/secureworkflow/hpcc-systems/Visualization/codeql-analysis.yml/trunk?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-please.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/hpcc-systems/Visualization/release-please.yml/trunk?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-please.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/hpcc-systems/Visualization/release-please.yml/trunk?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-please.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/hpcc-systems/Visualization/release-please.yml/trunk?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-please.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/hpcc-systems/Visualization/release-please.yml/trunk?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-please.yml:132: update your workflow using https://app.stepsecurity.io/secureworkflow/hpcc-systems/Visualization/release-please.yml/trunk?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/update-docs.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/hpcc-systems/Visualization/update-docs.yml/trunk?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/update-docs.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/hpcc-systems/Visualization/update-docs.yml/trunk?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/update-docs.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/hpcc-systems/Visualization/update-docs.yml/trunk?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/release-please.yml:47","Info:   0 out of   9 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   1 pipCommand dependencies pinned","Info:   2 out of   2 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release-please.yml:19"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"SAST","score":7,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 2 commits out of 17 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":8,"reason":"2 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-67mh-4wv8-2f99","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-19T13:40:23.358Z","repository_id":18899047,"created_at":"2025-08-19T13:40:23.358Z","updated_at":"2025-08-19T13:40:23.358Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33642318,"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-29T02:00:06.066Z","response_time":107,"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":["typescript","umd"],"created_at":"2024-09-26T03:08:57.284Z","updated_at":"2026-05-29T08:01:55.765Z","avatar_url":"https://github.com/hpcc-systems.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @hpcc-js (*aka Viz Framework 2.0*)\n\n![Test PR](https://github.com/hpcc-systems/Visualization/workflows/Test%20PR/badge.svg)\n[![Join the chat at https://gitter.im/hpcc-systems/Visualization](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/hpcc-systems/Visualization?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\nThe **HPCC Visualization Framework** is a comprehensive TypeScript/JavaScript-based data visualization library that provides charting, graphing, and dashboard capabilities. Published as scoped NPM packages under `@hpcc-js`, this framework is designed to work seamlessly with the HPCC Systems big data platform while being flexible enough for general-purpose visualization needs.\n\n## How to get started?\n1. [Quick Start](https://github.com/hpcc-systems/Visualization/wiki/Quick-Start): Covers the basics on how to include the framework into your web application.\n2. [Tutorials](https://github.com/hpcc-systems/Visualization/wiki/Tutorials): Starting with a simple \"hello world\", the tutorials walk through the basics of instantiating visualizations, fetching data and creating dashboards.\n3. [Gallery](https://raw.githack.com/hpcc-systems/Visualization/trunk/demos/gallery/index.html): Interactive gallery with live code examples and a property editor for discovering the capabilities of each visualization.\n\n## Architecture \u0026 Overview\n\n### Monorepo Structure\nThis is a **Lerna-based monorepo** with packages organized in the `/packages/` directory. Each package has its own `package.json`, build configuration, and TypeScript setup. Packages are published independently to NPM under the `@hpcc-js/` scope.\n\n### Build System\n- **Vite** is the primary compiler and bundler for all packages\n- **TypeScript** source code with strict configuration\n- **Multiple module formats**: ESM, UMD, and IIFE\n- **Source maps** generated for all builds\n- **PostCSS** for CSS processing and minification\n\n### Package Categories\n\n#### Core Packages\n- **`@hpcc-js/common`** - Base widgets, utilities, and D3 re-exports\n- **`@hpcc-js/api`** - TypeScript interfaces and API definitions  \n- **`@hpcc-js/util`** - Utility functions and helpers\n\n#### Visualization Packages\n- **`@hpcc-js/chart`** - Charts (Bar, Line, Pie, Scatter, etc.)\n- **`@hpcc-js/graph`** - Graph visualizations and network diagrams\n- **`@hpcc-js/map`** - Geographic visualizations with Leaflet integration\n- **`@hpcc-js/tree`** - Tree and hierarchy visualizations\n- **`@hpcc-js/timeline`** - Timeline and temporal visualizations\n\n#### UI \u0026 Layout Packages\n- **`@hpcc-js/layout`** - Layout containers and dashboard components\n- **`@hpcc-js/form`** - Form controls and input widgets\n- **`@hpcc-js/html`** - HTML-based components and React integration\n\n#### Integration Packages\n- **`@hpcc-js/marshaller`** - Data marshalling and dashboard orchestration\n- **`@hpcc-js/comms`** - Communication with HPCC Systems platform\n- **`@hpcc-js/codemirror`** - Code editors for various languages\n\n### Browser \u0026 Module Support\n\n#### Target Environments\n- **Modern browsers** (Chrome, Firefox, Edge, Safari)\n- **Node.js** for server-side rendering and data processing\n\n#### Module Formats\n- **ES6 modules** (primary format for tree-shaking and modern bundlers)\n- **UMD** (Universal Module Definition for broad compatibility)\n- **IIFE** (Immediately Invoked Function Expression for direct browser usage)\n- **CommonJS** support for Node.js environments\n\n#### Bundler Compatibility\n- **Vite** (recommended)\n- **Webpack** \n- **Rollup.js**\n- **Parcel**\n- **Direct CDN usage** via unpkg\n\n## Installation\n\n### Via NPM (Recommended)\n\nTo install via npm, use `npm install` with the specific packages you need. Each package is scoped with \"@hpcc-js\":\n\n```bash\nnpm install @hpcc-js/chart @hpcc-js/map @hpcc-js/common\n```\n\n### Via CDN (Quick Start)\n\nFor quick prototyping, you can load packages directly from unpkg CDN:\n\n```html\n\u003cscript src=\"https://unpkg.com/@hpcc-js/util\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://unpkg.com/@hpcc-js/api\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://unpkg.com/@hpcc-js/common\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://unpkg.com/@hpcc-js/chart\"\u003e\u003c/script\u003e\n```\n\nYou can see all available packages at: [https://www.npmjs.com/search?q=maintainer:hpcc-js](https://www.npmjs.com/search?q=maintainer:hpcc-js)\n\n## Usage Examples\n\n### ES6 Modules (Recommended)\n\n```javascript\nimport { Bar } from \"@hpcc-js/chart\";\n\nconst chart = new Bar()\n    .target(\"placeholder\")\n    .columns([\"Subject\", \"Year 1\", \"Year 2\", \"Year 3\"])\n    .data([\n        [\"Geography\", 75, 68, 65],\n        [\"English\", 45, 55, -52],\n        [\"Math\", 98, 92, 90],\n        [\"Science\", 66, 60, 72]\n    ])\n    .render();\n```\n\n### AMD\n\n```javascript\nrequire([\"@hpcc-js/chart\"], function(hpccChart) {\n    const chart = new hpccChart.Bar()\n        .target(\"placeholder\")\n        .columns([\"Subject\", \"Year 1\", \"Year 2\", \"Year 3\"])\n        .data([\n            [\"Geography\", 75, 68, 65],\n            [\"English\", 45, 55, -52],\n            [\"Math\", 98, 92, 90],\n            [\"Science\", 66, 60, 72]\n        ])\n        .render();\n});\n```\n\n### IIFE (Browser Global)\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n    \u003cmeta charset=\"utf-8\"\u003e\n    \u003ctitle\u003eSimple Bar Chart\u003c/title\u003e\n    \u003cscript src=\"https://unpkg.com/@hpcc-js/util\"\u003e\u003c/script\u003e\n    \u003cscript src=\"https://unpkg.com/@hpcc-js/common\"\u003e\u003c/script\u003e\n    \u003cscript src=\"https://unpkg.com/@hpcc-js/api\"\u003e\u003c/script\u003e\n    \u003cscript src=\"https://unpkg.com/@hpcc-js/chart\"\u003e\u003c/script\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n    \u003cdiv id=\"placeholder\" style=\"width:800px; height:600px;\"\u003e\u003c/div\u003e\n    \u003cscript\u003e\n        const hpccChart = window[\"@hpcc-js/chart\"];\n        const chart = new hpccChart.Bar()\n            .target(\"placeholder\")\n            .columns([\"Subject\", \"Year 1\", \"Year 2\", \"Year 3\"])\n            .data([\n                [\"Geography\", 75, 68, 65],\n                [\"English\", 45, 55, -52],\n                [\"Math\", 98, 92, 90],\n                [\"Science\", 66, 60, 72]\n            ])\n            .render();\n    \u003c/script\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n```\n\n## Developer Zone\n\n### Prerequisites\n- **Node.js** LTS (18.x or later recommended)\n- **Git** for version control\n\n### Setting up a Development Environment\n\n1. **Clone the repository:**\n```bash\ngit clone https://github.com/hpcc-systems/Visualization.git Visualization\ncd Visualization\n```\n\n2. **Install dependencies:**\n```bash\nnpm install\n```\n\n3. **Build all packages:**\n```bash\nnpm run build\n```\n\n4. **Start the development server:**\n```bash\ncd demos/gallery\nnpm run bundle-watch\n```\n\nThe gallery will be available at `http://localhost:5500` with hot reloading for development.\n\n### Common Development Tasks\n\n#### Building\n```bash\n# Build all packages\nnpm run build\n\n# Clean all build artifacts\nnpm run clean\n```\n\n#### Linting\n```bash\n# Lint all packages\nnpm run lint\n\n# Fix linting issues automatically\nnpm run lint-fix\n```\n\n#### Testing\n```bash\n# Run all tests\nnpm run test\n\n# Run browser tests\nnpm run test-browser\n\n# Run Node.js tests  \nnpm run test-node\n```\n\n#### Working with Individual Packages\n```bash\n# Navigate to a specific package\ncd packages/chart\n\n# Build just this package\nnpm run build\n\n# Run tests for this package\nnpm run test\n```\n\n### Full Clean\n\nTo completely reset your development environment:\n\n```bash\nnpm run clean\nnpm run uninstall\nrm -rf node_modules\nnpm install\n```\n\n## HPCC Platform Integration\n\nThis framework is designed to work with the **HPCC Systems** big data platform, providing:\n\n- **ECL (Enterprise Control Language)** integration\n- **Roxie query integration** through `@hpcc-js/comms`\n- **Workunit result visualization**\n- **ESP (Enterprise Services Platform)** connectivity\n- **Real-time data streaming** capabilities\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md).\n\n## License\n\nThis project is licensed under the Apache-2.0 License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhpcc-systems%2Fvisualization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhpcc-systems%2Fvisualization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhpcc-systems%2Fvisualization/lists"}