esvit/ng-table
Simple table with sorting and filtering on AngularJS
- Repository: https://github.com/esvit/ng-table
- Commit:
b6d5d0bfeef923c617081ffe80a0266d7fb4aa33 - Generated: 2026-11-13T23:37:58+00:00
- Scorer 0.1.0, scoring prov-4+qual-2+sec-2, report schema v2
Scores
| Pillar | Score | Signal | Confidence | Coverage |
|---|---|---|---|---|
| AI provenance (estimated AI-generated share) | 0 | none-detected | 65% | 100% |
| Code quality | 71 | adequate | 90% | 100% |
| Security | 52 | weak | 85% | 100% |
AI provenance
No AI attribution or AI-consistent velocity signals detected.
-
Explicitly attributed share (lower bound): 0.0%
-
Unattributed share in AI-consistent velocity bursts: 0.0%
-
Estimated AI-generated share: 0.0%
-
Stylometry index: 0.15 per 1,000 lines (narrated steps 1, placeholders 0, assistant phrasing 0, emoji 0). Reported as a signal, not scored.
| Month | Lines added | Attributed to AI |
|---|---|---|
| 2015-09 | 681 | 0% |
| 2015-10 | 383 | 0% |
| 2015-11 | 40 | 0% |
| 2015-12 | 20,196 | 0% |
| 2016-01 | 2,723 | 0% |
| 2016-06 | 4,115 | 0% |
| 2016-07 | 2,151 | 0% |
| 2016-08 | 8,104 | 0% |
| 2016-09 | 9 | 0% |
| 2016-10 | 88 | 0% |
| 2016-11 | 3,477 | 0% |
| 2016-12 | 1,689 | 0% |
Evidence
- step-by-step narration comment: * Now we setup the mock backend and create the test specs. (examples-old)
AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.
Code quality
Code quality is adequate: test-to-source ratio 0.85, CI runs tests; 5% of function code in complex or long functions; 4% duplicated lines. Weakest area: type safety.
| Area | Score |
|---|---|
| Complexity (lizard) | 85 |
| Duplication | 80 |
| Code smells (Opengrep) | 77 |
| Tests and CI | 90 |
| Documentation | 80 |
| Type safety | 0 |
| Process (Scorecard review/maintenance) | 0 |
- Functions: 513; mean complexity 1.9, 90th percentile 4; 0 complex and 1 long functions
- Duplicated lines: 3.7% of 4,381 compared
- Tests: 5,765 test lines for 6,805 source lines (ratio 0.85); CI test commands: npm test; 45% of recent source commits also change tests
- Docs missing or thin: changelog
Most complex functions:
Security
Security posture is weak: 387 known vulnerabilities in 156 dependencies. Weakest area: dependencies.
| Area | Score |
|---|---|
| Secrets (gitleaks, tree + history) | 100 |
| Static analysis (Opengrep) | 83 |
| Vulnerable dependencies (OSV) | 0 |
| CI workflows (zizmor) | n/a |
| Posture (policy, updates, signing, lockfiles) | 0 |
| OpenSSF Scorecard | 25 |
-
Known vulnerabilities: 387 in 156 packages (critical 44, high 166, medium 131, low 10)
-
Posture checks passed: none; missing: security policy, dependency updates, signed commits, lockfiles
-
OpenSSF Scorecard aggregate: 2.0/10 (published 2026-11-09)
Top findings
| Severity | Finding | Location |
|---|---|---|
| critical | osv/GHSA-8w4h-3cm3-2pm2: atob@1.1.3 (npm) is affected by GHSA-8w4h-3cm3-2pm2 |
npm-shrinkwrap.json |
| critical | osv/GHSA-67hx-6x53-jw92: babel-traverse@6.16.0 (npm) is affected by GHSA-67hx-6x53-jw92 |
npm-shrinkwrap.json |
| critical | osv/GHSA-67hx-6x53-jw92: babel-traverse@6.21.0 (npm) is affected by GHSA-67hx-6x53-jw92 |
npm-shrinkwrap.json |
| critical | osv/GHSA-cpq7-6gpm-g9rc: cipher-base@1.0.3 (npm) is affected by GHSA-cpq7-6gpm-g9rc |
npm-shrinkwrap.json |
| critical | osv/GHSA-vjh7-7g9h-fjfh: elliptic@6.3.2 (npm) is affected by GHSA-vjh7-7g9h-fjfh |
npm-shrinkwrap.json |
| critical | osv/GHSA-6h5x-7c5m-7cr7: eventsource@0.1.6 (npm) is affected by GHSA-6h5x-7c5m-7cr7 |
npm-shrinkwrap.json |
| critical | osv/GHSA-fjxv-7rqg-78g4: form-data@1.0.0-rc4 (npm) is affected by GHSA-fjxv-7rqg-78g4 |
npm-shrinkwrap.json |
| critical | osv/GHSA-fjxv-7rqg-78g4: form-data@1.0.1 (npm) is affected by GHSA-fjxv-7rqg-78g4 |
npm-shrinkwrap.json |
| critical | osv/GHSA-fjxv-7rqg-78g4: form-data@2.0.0 (npm) is affected by GHSA-fjxv-7rqg-78g4 |
npm-shrinkwrap.json |
| critical | osv/GHSA-8mmm-9v2q-x3f9: gh-pages@0.11.0 (npm) is affected by GHSA-8mmm-9v2q-x3f9 |
npm-shrinkwrap.json |
| critical | osv/GHSA-2w6w-674q-4c4q: handlebars@4.0.5 (npm) is affected by GHSA-2w6w-674q-4c4q |
npm-shrinkwrap.json |
| critical | osv/GHSA-765h-qjxv-5f44: handlebars@4.0.5 (npm) is affected by GHSA-765h-qjxv-5f44 |
npm-shrinkwrap.json |
| critical | osv/GHSA-8r5x-fm3f-whwj: handlebars@4.0.5 (npm) is affected by GHSA-8r5x-fm3f-whwj |
npm-shrinkwrap.json |
| critical | osv/GHSA-f2jv-r9rf-7988: handlebars@4.0.5 (npm) is affected by GHSA-f2jv-r9rf-7988 |
npm-shrinkwrap.json |
| critical | osv/GHSA-p8wg-vrv2-v86f: handlebars@4.0.5 (npm) is affected by GHSA-p8wg-vrv2-v86f |
npm-shrinkwrap.json |
| critical | osv/GHSA-w457-6q6x-cgp9: handlebars@4.0.5 (npm) is affected by GHSA-w457-6q6x-cgp9 |
npm-shrinkwrap.json |
| critical | osv/GHSA-8g7p-74h8-hg48: https-proxy-agent@1.0.0 (npm) is affected by GHSA-8g7p-74h8-hg48 |
npm-shrinkwrap.json |
| critical | osv/GHSA-896r-f27r-55mw: json-schema@0.2.2 (npm) is affected by GHSA-896r-f27r-55mw |
npm-shrinkwrap.json |
| critical | osv/GHSA-896r-f27r-55mw: json-schema@0.2.3 (npm) is affected by GHSA-896r-f27r-55mw |
npm-shrinkwrap.json |
| critical | osv/GHSA-76p3-8jx3-jpfq: loader-utils@0.2.16 (npm) is affected by GHSA-76p3-8jx3-jpfq |
npm-shrinkwrap.json |
| critical | osv/GHSA-jf85-cpcp-j695: lodash@3.10.1 (npm) is affected by GHSA-jf85-cpcp-j695 |
npm-shrinkwrap.json |
| critical | osv/GHSA-jf85-cpcp-j695: lodash@4.11.1 (npm) is affected by GHSA-jf85-cpcp-j695 |
npm-shrinkwrap.json |
| critical | osv/GHSA-jf85-cpcp-j695: lodash@4.15.0 (npm) is affected by GHSA-jf85-cpcp-j695 |
npm-shrinkwrap.json |
| critical | osv/GHSA-jf85-cpcp-j695: lodash@4.16.4 (npm) is affected by GHSA-jf85-cpcp-j695 |
npm-shrinkwrap.json |
| critical | osv/GHSA-jf85-cpcp-j695: lodash@4.17.2 (npm) is affected by GHSA-jf85-cpcp-j695 |
npm-shrinkwrap.json |
Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.
Repository profile
- Source lines: 6,805; test lines: 5,765
| Language | Lines |
|---|---|
| TypeScript | 9,199 |
| JavaScript | 3,371 |