{"id":33817249,"url":"https://github.com/hslayers/hslayers-ng","last_synced_at":"2025-12-06T22:01:02.423Z","repository":{"id":37548569,"uuid":"49501864","full_name":"hslayers/hslayers-ng","owner":"hslayers","description":"User interface and map building extensions for OpenLayers","archived":false,"fork":false,"pushed_at":"2025-11-27T06:10:27.000Z","size":232087,"stargazers_count":36,"open_issues_count":40,"forks_count":20,"subscribers_count":10,"default_branch":"develop","last_synced_at":"2025-11-29T17:54:31.953Z","etag":null,"topics":["angular","hslayers","maps","openlayers","wfs","wms"],"latest_commit_sha":null,"homepage":"","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/hslayers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","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":"2016-01-12T13:31:10.000Z","updated_at":"2025-11-26T22:56:38.000Z","dependencies_parsed_at":"2023-10-13T13:17:34.470Z","dependency_job_id":"aa703201-3171-4a7c-a8c8-988d04789a13","html_url":"https://github.com/hslayers/hslayers-ng","commit_stats":{"total_commits":10454,"total_committers":21,"mean_commits":497.8095238095238,"dds":0.6103883680887698,"last_synced_commit":"9848afaeb5b78dd9d5470272e69a9374c6ef9faf"},"previous_names":[],"tags_count":153,"template":false,"template_full_name":null,"purl":"pkg:github/hslayers/hslayers-ng","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hslayers%2Fhslayers-ng","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hslayers%2Fhslayers-ng/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hslayers%2Fhslayers-ng/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hslayers%2Fhslayers-ng/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hslayers","download_url":"https://codeload.github.com/hslayers/hslayers-ng/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hslayers%2Fhslayers-ng/sbom","scorecard":{"id":470900,"data":{"date":"2025-08-11","repo":{"name":"github.com/hslayers/hslayers-ng","commit":"4906ac6694fe9f3517010aedd9f1d66e9d1c4d23"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 8 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":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build+test_libs_apps.yml:1","Warn: no topLevel permission defined: .github/workflows/build+test_server.yml:1","Warn: no topLevel permission defined: .github/workflows/check-focused-tests.yml:1","Warn: no topLevel permission defined: .github/workflows/codeql-analysis.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":"Code-Review","score":0,"reason":"Found 1/11 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":"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":"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":"Pinned-Dependencies","score":1,"reason":"dependency not pinned by hash detected -- score normalized to 1","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build+test_libs_apps.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/hslayers/hslayers-ng/build+test_libs_apps.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build+test_libs_apps.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/hslayers/hslayers-ng/build+test_libs_apps.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build+test_server.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/hslayers/hslayers-ng/build+test_server.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build+test_server.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/hslayers/hslayers-ng/build+test_server.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/check-focused-tests.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/hslayers/hslayers-ng/check-focused-tests.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/hslayers/hslayers-ng/codeql-analysis.yml/develop?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/hslayers/hslayers-ng/codeql-analysis.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/hslayers/hslayers-ng/codeql-analysis.yml/develop?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/hslayers/hslayers-ng/codeql-analysis.yml/develop?enable=pin","Info:   0 out of   9 GitHub-owned GitHubAction 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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"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":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (21) 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":4,"reason":"6 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-54xq-cgqr-rpm3","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-xffm-g5w8-qvg7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-6x33-pw7p-hmpq","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp"],"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:52:20.739Z","repository_id":37548569,"created_at":"2025-08-19T13:52:20.739Z","updated_at":"2025-08-19T13:52:20.739Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27553930,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-06T02:00:06.463Z","response_time":60,"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":["angular","hslayers","maps","openlayers","wfs","wms"],"created_at":"2025-12-06T22:00:42.192Z","updated_at":"2025-12-06T22:01:02.417Z","avatar_url":"https://github.com/hslayers.png","language":"TypeScript","readme":"# HSLayers-NG monorepo\n\nThis is a monorepo for developing HSLayers-NG [Angular](https://angular.io/guide/creating-libraries) library. \n\n| Hslayers version | Angular version     | Bootstrap   | OpenLayers\n| ---------------- | -----------------   |------------ |-----------\n| 1                | 1.7                 | 4.5.3       |\n| 2                | 1.7 + 9.1.x (hybrid)| \u003e=4.4       |\n| 3                | 9.x                 | 4.x         |\n| 4                | 10.x                | 4.x         |\n| 5                | 11.x                | 4.x         |\n| 6                | 12.x                | 4.x         |\n| 7                | 12.x                | 5.x         |\n| 8                | 13.x                | 5.x         |\n| 9                | 13.x                | 5.x         | ^6.14.1\n| 10               | 14.x                | 5.x         | ^6.14.1, ^7.0.0\n| 11               | 15.x                | 5.x         | 7.x\n| 12               | 16.x                | 5.3         | 7.x\n| 13               | 17.x                | 5.3         | ^8.2\n| 14               | 18.x                | 5.3         | ^9.2.2\n| 15               | 19.x                | 5.3         | ^10.4\n| 16               | 20.x                | 5.3         | ^10.5\n\nIt contains source code of libraries which need to be used in an existing Angular based container project:\n+ [hslayers](./projects/hslayers) - core components and services for map application based on OpenLayers + Angular + [Bootstrap](https://getbootstrap.com/),\n+ [hslayers-cesium](./projects/hslayers-cesium) - Angular components for running HSLayers-NG UI with [Cesium](https://cesium.com/cesiumjs/) 3D map renderer,\n+ [hslayers-sensors](./projects/hslayers-sensors) - Angular components for visualizing data from [Senslog](https://www.senslog.org/) server using [Vega](https://vega.github.io/vega/) charts.\n\n\nSource code for ready to use application bundles which can be included in html files through `\u003cscript\u003e` tags:\n+ [hslayers-app](./projects/hslayers-app) - ready-to-use application built on HSLayers-NG,\n+ [hslayers-cesium-app](./projects/hslayers-cesium-app) - ready-to-use application built on HSLayers-NG and Cesium.\n\nConfiguration for these applications can be provided through global `hslayersNgConfig` function which exposes an object containing a subset of most common [OpenLayers](https://openlayers.org/en/latest/apidoc/) classes through an `ol` parameter. In return the function must provide a JSON object conforming to [HsConfig](./projects/hslayers/src/config.service.ts) type. [See](https://github.com/hslayers/hslayers-ng/wiki/App-config-parameters) example and config parameter descriptions. \n\n+ [hslayers-server](./projects/hslayers-server) - a simple [cors-anywhere](https://www.npmjs.com/package/cors-anywhere) based proxy server which can be used to overcome [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) restrictions, fill API keys for services such as [Geonames](https://www.geonames.org/) used for search and other tasks. Copying and modifying the .env file to preserve secrets and not expose them for everyone and all kinds of requests will be necessary.\n\n## Integration\nHSLayers-NG can be integrated into larger systems.\nCheck [hub4everybody.com](https://hub4everybody.com/) to see, what you can achieve with such integration.\n\n## Development\n### Development server\n\nRun `ng serve` for a dev server which displays a simple hslayers based map portal with almost no map layers. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. It's based on hslayers-app project contained in this repository.\n\n### Build\n\nRun `ng build` to build the HSLayers-NG library. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.\n\n### Running unit tests\n\nRun `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).\n\n### Running end-to-end tests\n\nRun `ng e2e` to execute the end-to-end tests via [Cypress](https://docs.cypress.io/guides/tooling/IDE-integration).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhslayers%2Fhslayers-ng","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhslayers%2Fhslayers-ng","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhslayers%2Fhslayers-ng/lists"}