Public record
Software health reportschema 0.27.0 · metrics 1.13.0 · 2026-07-27 17:13 UTC

cdklabs / cdk-monitoring-constructs

Easy-to-use CDK constructs for monitoring your AWS infrastructure

TypeScriptApache-2.0★ 552 stars⑂ 86 forkssince Feb 2022View on GitHub ↗

cdklabs/cdk-monitoring-constructs holds a health index of 80 out of 100, placing it in the Good band. It scores highest on Vitality (95/100) and lowest on AI Readiness (58/100). It was last updated today. A single contributor accounts for most of its recent work.

80
overall / 100
Good

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At risk ceiling of 49. AI Readiness sits outside the overall score.

80
Excellent85-100Exemplary; meets essentially all checked criteria
Good70-84Healthy; minor gaps
Moderate50-69Acceptable with notable gaps; review recommended
At risk30-49Significant weaknesses; adoption warrants caution
Critical1-29Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

Each axis is a category. The shape matters more than the average — a healthy subject fills the whole shape, while a spike-and-crater profile means strength in one dimension is masking risk in another.

Ownership

CDK Labs at AWSOrganization
431 followers108 public repossince Nov 2020

This repository is backed by an organization — shared, accountable stewardship that can outlive any single maintainer.

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publishTags
npmcdk-monitoring-constructs10.2.0292,2233126 days agocdkcloudwatchmonitoring

Metrics by category

Vitality

Is the project alive — is code being written and are releases shipping?

95Excellent · 22% of overall
How it's scored
36/36Push recency — last push 0 days ago
29.1/36Commit cadence — 42/52 weeks with commits
16.7/18Commit volume — 72 commits in the last year
10/10OpenSSF Scorecard: Maintained — 16 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year72
human_commit_share0.93
days_since_last_push0
active_weeks_last_year42

Release discipline

100Excellent
How it's scored
27/27Ships releases — 100 releases published
36/36Release recency — latest release 6 days ago
27/27Release cadence — a release every ~16.4 days
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count100
latest_release_tagv10.2.0
releases_from_tagsno
days_since_latest_release6
mean_days_between_releases16.4
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.

Community & Adoption

Does the project have users, downloads, attention, and a welcoming setup for contributors?

82Good · 18% of overall
How it's scored
44.5/60Stars — 552 stars
16.1/25Forks — 86 forks
7.5/15Watchers — 23 watchers
Inputs used
forks86
stars552
watchers23
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

Community health

92Excellent
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (Apache-2.0)
18/18CONTRIBUTING guide
13.5/13.5Code of conduct
0/7.2Issue template
6.3/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
has_contributingyes
has_issue_templateno
has_code_of_conductyes
has_pull_request_templateyes
How it's scored
72.9/80Monthly downloads — 292,223 downloads/month across npm
0/20Registry dependents — not reported by this ecosystem
Inputs used
packagescdk-monitoring-constructs
dependents
ecosystemsnpm
total_downloads
monthly_downloads292,223
Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.

Sustainability & Governance

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?

70Good · 24% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
9.4/22.5Commit distribution — top contributor authored 58% of commits
13.5/13.5Contributor breadth — 57 contributors
6/10OpenSSF Scorecard: Contributors — project has 2 contributing companies or organizations -- score normalized to 6
Inputs used
bus_factor1
contributors_sampled57
top_contributor_share0.583
How it's scored
31.4/46.8Issue resolution — 67% of issues closed
34.4/38.3PR acceptance — 489/543 decided PRs merged
15/15OpenSSF Scorecard: Code-Review — all changesets reviewed
Inputs used
merged_prs489
open_issues62
closed_issues127
issue_closed_ratio0.672
closed_unmerged_prs54
How it's scored
30/30Ownership backing — organization-owned
0/20Verified domain
18.9/25Owner reach — 431 followers of cdklabs
24.3/25Track record — 108 public repos, account ~5 yr old
Inputs used
followers431
owner_typeOrganization
is_verified
owner_logincdklabs
public_repos108
account_age_days2,065
How it's scored
25/25Published & resolvable — 1 package(s) on npm
35/35Publish recency — latest publish 6 days ago
20/20Version history — 312 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packagescdk-monitoring-constructs
ecosystemsnpm
any_deprecatedno
min_days_since_publish6

Engineering Quality

Are baseline engineering and documentation practices in place?

76Good · 20% of overall
How it's scored
24/24CI workflows — 9 workflow(s)
24/24Tests present
16/16Linter config — .eslintrc.json
0/9.6Pre-commit hooks
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
Inputs used
has_ciyes
has_testsyes
has_editorconfigno
has_linter_configyes
has_precommit_configno

Documentation

65Moderate
How it's scored
30/30README
0/25Documentation directory
15/15Documentation / homepage site — https://constructs.dev/packages/cdk-monitoring-constructs
10/10Repository description
10/10Topics — 6 topics
0/10Wiki
Inputs used
topicsmonitoring, cdk, cdk-constructs, cdk-construct, ops, aws
has_wikino
homepagehttps://constructs.dev/packages/cdk-monitoring-constructs
has_readmeyes
has_docs_dirno
has_descriptionyes

Security

Are visible security and supply-chain practices strong, without unresolved high-risk jurisdiction exposure?

76Good · 16% of overall
How it's scored
7.5/7.5Binary-Artifacts — no binaries found in the repo
6/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
7.5/7.5Code-Review — all changesets reviewed
1.5/2.5Contributors — project has 2 contributing companies or organizations -- score normalized to 6
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5License — license file detected
7.5/7.5Maintained — 16 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — no data
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
3.5/5SAST — SAST tool is not run on all commits -- score normalized to 7
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — no data
3.8/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 16 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate7
Excluded from scoring (no data or not applicable): packaging, signed_releases. Remaining weights renormalized.
How it's scored
35/35Direct dependencies free of known advisories — no direct dependency carries a known advisory
0/25Indirect dependencies free of known advisories — transitive set not separable from development and test dependencies in this scope
0/40No advisories left outstanding — no advisory carries a publication date
Inputs used
sourceosv
advisories17
affected_packages9
assessed_packages787
unassessed_packages0
affected_by_severityhigh 5, moderate 3, low 1
direct_affected_packages0
Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 787 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.

AI Readiness

How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score.

58Moderate · 0% of overall
How it's scored
0/45Agent instructions — no CLAUDE.md / AGENTS.md / editor rules
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 93 of 93 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share1
agent_instruction_files
agent_instruction_max_bytes
How it's scored
0/18One-command bootstrap
22/22Automated tests
11/11Lint / format config — .eslintrc.json
11/11Static type checking — TypeScript (statically typed)
10/10Reproducible environment — lockfile
0/10Demonstrated agent practice — no agent-authored commits among the last 100
8/8Automated maintenance — 7 of the last 100 commits are automated dependency updates
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Inputs used
has_nixno
has_testsyes
lockfilesyarn.lock
has_dockerfileno
typed_languageyes
bootstrap_files
has_devcontainerno
has_linter_configyes
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0.07
How it's scored
45/45Type-checkable code — TypeScript (statically typed)
55/55Manageable file sizes — 0/304 source files over 60KB
Inputs used
primary_languageTypeScript
largest_source_bytes33,758
source_files_sampled304
oversized_source_files0
How it's scored
40/40API schema (OpenAPI/GraphQL/proto) — test/assets/schema.graphql
0/20MCP server
0/40Runnable examples
Inputs used
example_dirs
has_mcp_signalno
api_schema_filestest/assets/schema.graphql

Key facts

552GitHub stars
57contributors
72commits, last 12 months
0days since last push
100releases
1bus factor
62open issues
npmpackage ecosystems

Data collection warnings

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

More detail

Star and fork history 0 ★ / 86 ⇿
0Stars
86Forks
100Releases

When each star and fork was added, collected from GitHub and bucketed by day. Cumulative growth sits directly above the daily additions it is made of, so the two read against each other: steady organic accretion looks nothing like an abrupt, short-lived burst. Where that difference is measurable, it is reported as growth authenticity.

0204060801008632022-022024-052026-07
Major 5Minor 48Patch 47

Each point covers 5 days.

OpenSSF Scorecard 7.0 / 10
7.0aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).Scorecard v5.5.0 · 2026-07-27 17:13 UTC

10Binary-Artifactsno binaries found in the repo
8Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
10Code-Reviewall changesets reviewed
6Contributorsproject has 2 contributing companies or organizations -- score normalized to 6
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained16 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
n/aPackagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
7SASTSAST tool is not run on all commits -- score normalized to 7
10Security-Policysecurity policy file detected
n/aSigned-Releasesno releases found
5Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities16 existing vulnerabilities detected
All dependencies 787

Full resolved dependency set from the GitHub dependency graph: 0 direct and 787 indirect (transitive) packages. The transitive closure is complete when the repository commits a lockfile.

RegistryPackageVersionRelation
npm@aws-cdk/asset-awscli-v12.2.215indirect
npm@aws-cdk/asset-kubectl-v202.1.3indirect
npm@aws-cdk/asset-node-proxy-agent-v62.1.0indirect
npm@aws-cdk/aws-redshift-alpha2.160.0-alpha.0indirect
npm@aws-cdk/aws-service-spec0.1.190indirect
npm@aws-cdk/cloud-assembly-schema38.0.1indirect
npm@aws-cdk/integ-runner2.203.2indirect
npm@aws-cdk/integ-tests-alpha2.262.1-alpha.0indirect
npm@aws-cdk/service-spec-types0.0.256indirect
npm@babel/code-frame7.29.7indirect
npm@babel/compat-data7.29.7indirect
npm@babel/core7.29.7indirect
npm@babel/generator7.29.7indirect
npm@babel/helper-compilation-targets7.29.7indirect
npm@babel/helper-globals7.29.7indirect
npm@babel/helper-module-imports7.29.7indirect
npm@babel/helper-module-transforms7.29.7indirect
npm@babel/helper-plugin-utils7.29.7indirect
npm@babel/helper-string-parser7.29.7indirect
npm@babel/helper-validator-identifier7.29.7indirect
npm@babel/helper-validator-option7.29.7indirect
npm@babel/helpers7.29.7indirect
npm@babel/parser7.29.7indirect
npm@babel/plugin-syntax-async-generators7.8.4indirect
npm@babel/plugin-syntax-bigint7.8.3indirect
npm@babel/plugin-syntax-class-properties7.12.13indirect
npm@babel/plugin-syntax-class-static-block7.14.5indirect
npm@babel/plugin-syntax-import-attributes7.29.7indirect
npm@babel/plugin-syntax-import-meta7.10.4indirect
npm@babel/plugin-syntax-json-strings7.8.3indirect
npm@babel/plugin-syntax-logical-assignment-operators7.10.4indirect
npm@babel/plugin-syntax-nullish-coalescing-operator7.8.3indirect
npm@babel/plugin-syntax-numeric-separator7.10.4indirect
npm@babel/plugin-syntax-object-rest-spread7.8.3indirect
npm@babel/plugin-syntax-optional-catch-binding7.8.3indirect
npm@babel/plugin-syntax-optional-chaining7.8.3indirect
npm@babel/plugin-syntax-private-property-in-object7.14.5indirect
npm@babel/plugin-syntax-top-level-await7.14.5indirect
npm@babel/plugin-syntax-typescript7.29.7indirect
npm@babel/template7.29.7indirect
npm@babel/traverse7.29.7indirect
npm@babel/types7.29.7indirect
npm@balena/dockerignore1.0.2indirect
npm@bcoe/v8-coverage0.2.3indirect
npm@cdklabs/tskb0.0.4indirect
npm@cspotcode/source-map-support0.8.1indirect
npm@eslint-community/eslint-utils4.10.1indirect
npm@eslint-community/regexpp4.12.2indirect
npm@eslint/config-array0.21.2indirect
npm@eslint/config-helpers0.4.2indirect
npm@eslint/core0.17.0indirect
npm@eslint/eslintrc3.3.6indirect
npm@eslint/js9.39.5indirect
npm@eslint/object-schema2.1.7indirect
npm@eslint/plugin-kit0.4.1indirect
npm@humanfs/core0.19.2indirect
npm@humanfs/node0.16.8indirect
npm@humanfs/types0.15.0indirect
npm@humanwhocodes/module-importer1.0.1indirect
npm@humanwhocodes/retry0.4.3indirect
npm@hutson/parse-repository-url3.0.2indirect
npm@iarna/toml2.2.5indirect
npm@istanbuljs/load-nyc-config1.1.0indirect
npm@istanbuljs/schema0.1.6indirect
npm@jest/console27.5.1indirect
npm@jest/core27.5.1indirect
npm@jest/environment27.5.1indirect
npm@jest/fake-timers27.5.1indirect
npm@jest/globals27.5.1indirect
npm@jest/reporters27.5.1indirect
npm@jest/source-map27.5.1indirect
npm@jest/test-result27.5.1indirect
npm@jest/test-sequencer27.5.1indirect
npm@jest/transform27.5.1indirect
npm@jest/types27.5.1indirect
npm@jridgewell/gen-mapping0.3.13indirect
npm@jridgewell/remapping2.3.5indirect
npm@jridgewell/resolve-uri3.1.2indirect
npm@jridgewell/sourcemap-codec1.5.5indirect
npm@jridgewell/trace-mapping0.3.31indirect
npm@jridgewell/trace-mapping0.3.9indirect
npm@jsii/check-node1.139.0indirect
npm@jsii/spec1.139.0indirect
npm@nodable/entities3.0.0indirect
npm@nodelib/fs.scandir2.1.5indirect
npm@nodelib/fs.stat2.0.5indirect
npm@nodelib/fs.walk1.2.8indirect
npm@oozcitak/dom1.15.10indirect
npm@oozcitak/infra1.0.8indirect
npm@oozcitak/url1.0.4indirect
npm@oozcitak/util8.3.8indirect
npm@rtsao/scc1.1.0indirect
npm@sinonjs/commons1.8.6indirect
npm@sinonjs/fake-timers8.1.0indirect
npm@tootallnate/once1.1.2indirect
npm@tsconfig/node101.0.12indirect
npm@tsconfig/node121.0.11indirect
npm@tsconfig/node141.0.3indirect
npm@tsconfig/node161.0.4indirect
npm@types/babel__core7.20.5indirect
npm@types/babel__generator7.27.0indirect
npm@types/babel__template7.4.4indirect
npm@types/babel__traverse7.28.0indirect
npm@types/estree1.0.9indirect
npm@types/graceful-fs4.1.9indirect
npm@types/istanbul-lib-coverage2.0.6indirect
npm@types/istanbul-lib-report3.0.3indirect
npm@types/istanbul-reports3.0.4indirect
npm@types/jest27.5.2indirect
npm@types/json-schema7.0.15indirect
npm@types/json50.0.29indirect
npm@types/minimist1.2.5indirect
npm@types/node18.19.130indirect
npm@types/node26.1.1indirect
npm@types/normalize-package-data2.4.4indirect
npm@types/prettier2.7.3indirect
npm@types/stack-utils2.0.3indirect
npm@types/yargs16.0.11indirect
npm@types/yargs-parser21.0.3indirect
npm@typescript-eslint/eslint-plugin8.65.0indirect
npm@typescript-eslint/parser8.65.0indirect
npm@typescript-eslint/project-service8.65.0indirect
npm@typescript-eslint/scope-manager8.65.0indirect
npm@typescript-eslint/tsconfig-utils8.65.0indirect
npm@typescript-eslint/type-utils8.65.0indirect
npm@typescript-eslint/types8.65.0indirect
npm@typescript-eslint/typescript-estree8.65.0indirect
npm@typescript-eslint/utils8.65.0indirect
npm@typescript-eslint/visitor-keys8.65.0indirect
npm@xmldom/xmldom0.9.10indirect
npmabab2.0.6indirect
npmacorn7.4.1indirect
npmacorn8.17.0indirect
npmacorn-globals6.0.0indirect
npmacorn-jsx5.3.2indirect
npmacorn-walk7.2.0indirect
npmacorn-walk8.3.5indirect
npmadd-stream1.0.0indirect
npmagent-base6.0.2indirect
npmajv6.15.0indirect
npmajv8.17.1indirect
npmansi-escapes4.3.2indirect
npmansi-regex5.0.1indirect
npmansi-styles3.2.1indirect
npmansi-styles4.3.0indirect
npmansi-styles5.2.0indirect
npmanymatch3.1.3indirect
npmanynum1.0.1indirect
npmarg4.1.3indirect
npmargparse1.0.10indirect
npmargparse2.0.1indirect
npmarray-buffer-byte-length1.0.2indirect
npmarray-ify1.0.0indirect
npmarray-includes3.1.9indirect
npmarray-timsort1.0.3indirect
npmarray.prototype.findlastindex1.2.6indirect
npmarray.prototype.flat1.3.3indirect
npmarray.prototype.flatmap1.3.3indirect
npmarraybuffer.prototype.slice1.0.4indirect
npmarrify1.0.1indirect
npmastral-regex2.0.0indirect
npmasync-function1.0.0indirect
npmasynckit0.4.0indirect
npmavailable-typed-arrays1.0.7indirect
npmaws-cdk-lib2.160.0indirect
npmbabel-jest27.5.1indirect
npmbabel-plugin-istanbul6.1.1indirect
npmbabel-plugin-jest-hoist27.5.1indirect
npmbabel-preset-current-node-syntax1.2.0indirect
npmbabel-preset-jest27.5.1indirect
npmbalanced-match1.0.2indirect
npmbalanced-match4.0.4indirect
npmbaseline-browser-mapping2.11.4indirect
npmbrace-expansion1.1.16indirect
npmbrace-expansion5.0.8indirect
npmbraces3.0.3indirect
npmbrowser-process-hrtime1.0.0indirect
npmbrowserslist4.28.7indirect
npmbs-logger0.2.6indirect
npmbser2.1.1indirect
npmbuffer-from1.1.2indirect
npmcall-bind1.0.9indirect
npmcall-bind-apply-helpers1.0.2indirect
npmcall-bound1.0.4indirect
npmcallsites3.1.0indirect
npmcamelcase5.3.1indirect
npmcamelcase6.3.0indirect
npmcamelcase-keys6.2.2indirect
npmcaniuse-lite1.0.30001806indirect
npmcase1.6.3indirect
npmcdklabs-projen-project-types0.3.7indirect
npmchalk2.4.2indirect
npmchalk4.1.2indirect
npmchar-regex1.0.2indirect
npmci-info3.9.0indirect
npmcjs-module-lexer1.4.3indirect
npmcliui7.0.4indirect
npmcliui8.0.1indirect
npmclone2.1.2indirect
npmco4.6.0indirect
npmcodemaker1.139.0indirect
npmcollect-v8-coverage1.0.3indirect
npmcolor-convert1.9.3indirect
npmcolor-convert2.0.1indirect
npmcolor-name1.1.3indirect
npmcolor-name1.1.4indirect
npmcombined-stream1.0.8indirect
npmcomment-json4.2.2indirect
npmcommit-and-tag-version12.7.3indirect
npmcommonmark0.31.2indirect
npmcompare-func2.0.0indirect
npmconcat-map0.0.1indirect
npmconcat-stream2.0.0indirect
npmconstructs10.0.5indirect
npmconstructs10.4.2indirect
npmconventional-changelog4.0.0indirect
npmconventional-changelog-angular6.0.0indirect
npmconventional-changelog-atom3.0.0indirect
npmconventional-changelog-codemirror3.0.0indirect
npmconventional-changelog-config-spec2.1.0indirect
npmconventional-changelog-conventionalcommits6.1.0indirect
npmconventional-changelog-core5.0.2indirect
npmconventional-changelog-ember3.0.0indirect
npmconventional-changelog-eslint4.0.0indirect
npmconventional-changelog-express3.0.0indirect
npmconventional-changelog-jquery4.0.0indirect
npmconventional-changelog-jshint3.0.0indirect
npmconventional-changelog-preset-loader3.0.0indirect
npmconventional-changelog-writer6.0.1indirect
npmconventional-commits-filter3.0.0indirect
npmconventional-commits-parser4.0.0indirect
npmconventional-recommended-bump7.0.1indirect
npmconvert-source-map1.9.0indirect
npmconvert-source-map2.0.0indirect
npmcore-util-is1.0.3indirect
npmcreate-require1.1.1indirect
npmcross-spawn6.0.6indirect
npmcross-spawn7.0.6indirect
npmcssom0.3.8indirect
npmcssom0.4.4indirect
npmcssstyle2.3.0indirect
npmdargs7.0.0indirect
npmdata-urls2.0.0indirect
npmdata-view-buffer1.0.2indirect
npmdata-view-byte-length1.0.2indirect
npmdata-view-byte-offset1.0.1indirect
npmdate-format4.0.14indirect
npmdateformat3.0.3indirect
npmdebug3.2.7indirect
npmdebug4.4.3indirect
npmdecamelize1.2.0indirect
npmdecamelize5.0.1indirect
npmdecamelize-keys1.1.1indirect
npmdecimal.js10.6.0indirect
npmdedent0.7.0indirect
npmdeep-is0.1.4indirect
npmdeepmerge4.3.1indirect
npmdefine-data-property1.1.4indirect
npmdefine-properties1.2.1indirect
npmdelayed-stream1.0.0indirect
npmdetect-indent5.0.0indirect
npmdetect-indent6.1.0indirect
npmdetect-newline2.1.0indirect
npmdetect-newline3.1.0indirect
npmdiff4.0.4indirect
npmdiff-sequences27.5.1indirect
npmdoctrine2.1.0indirect
npmdomexception2.0.1indirect
npmdot-prop5.3.0indirect
npmdotgitignore2.1.0indirect
npmdunder-proto1.0.1indirect
npmelectron-to-chromium1.5.396indirect
npmemittery0.8.1indirect
npmemoji-regex8.0.0indirect
npmend-of-stream1.4.5indirect
npmentities3.0.1indirect
npmerror-ex1.3.4indirect
npmes-abstract1.24.2indirect
npmes-abstract-get1.0.0indirect
npmes-define-property1.0.1indirect
npmes-errors1.3.0indirect
npmes-object-atoms1.1.2indirect
npmes-set-tostringtag2.1.0indirect
npmes-shim-unscopables1.1.0indirect
npmes-to-primitive1.3.4indirect
npmescalade3.2.0indirect
npmescape-string-regexp1.0.5indirect
npmescape-string-regexp2.0.0indirect
npmescape-string-regexp4.0.0indirect
npmescodegen2.1.0indirect
npmeslint9.39.5indirect
npmeslint-config-prettier8.10.2indirect
npmeslint-import-resolver-node0.3.10indirect
npmeslint-import-resolver-typescript2.7.1indirect
npmeslint-module-utils2.14.0indirect
npmeslint-plugin-import2.32.0indirect
npmeslint-plugin-prettier4.2.5indirect
npmeslint-scope8.4.0indirect
npmeslint-visitor-keys3.4.3indirect
npmeslint-visitor-keys4.2.1indirect
npmeslint-visitor-keys5.0.1indirect
npmespree10.4.0indirect
npmesprima4.0.1indirect
npmesquery1.7.0indirect
npmesrecurse4.3.0indirect
npmestraverse5.3.0indirect
npmesutils2.0.3indirect
npmexeca1.0.0indirect
npmexeca5.1.1indirect
npmexit0.1.2indirect
npmexpect27.5.1indirect
npmfast-deep-equal3.1.3indirect
npmfast-diff1.3.0indirect
npmfast-glob3.3.3indirect
npmfast-json-patch3.1.1indirect
npmfast-json-stable-stringify2.1.0indirect
npmfast-levenshtein2.0.6indirect
npmfast-uri3.1.2indirect
npmfast-xml-builder1.3.0indirect
npmfast-xml-parser5.10.1indirect
npmfastq1.20.1indirect
npmfb-watchman2.0.2indirect
npmfdir6.5.0indirect
npmfigures3.2.0indirect
npmfile-entry-cache8.0.0indirect
npmfill-range7.1.1indirect
npmfind-up2.1.0indirect
npmfind-up3.0.0indirect
npmfind-up4.1.0indirect
npmfind-up5.0.0indirect
npmflat-cache4.0.1indirect
npmflatted3.4.3indirect
npmfor-each0.3.5indirect
npmform-data3.0.5indirect
npmfs-extra10.1.0indirect
npmfs-extra11.2.0indirect
npmfs-extra8.1.0indirect
npmfs.realpath1.0.0indirect
npmfsevents2.3.3indirect
npmfunction-bind1.1.2indirect
npmfunction.prototype.name1.2.0indirect
npmfunctions-have-names1.2.3indirect
npmgenerator-function2.0.1indirect
npmgensync1.0.0-beta.2indirect
npmget-caller-file2.0.5indirect
npmget-intrinsic1.3.0indirect
npmget-package-type0.1.0indirect
npmget-pkg-repo4.2.1indirect
npmget-proto1.0.1indirect
npmget-stream4.1.0indirect
npmget-stream6.0.1indirect
npmget-symbol-description1.1.0indirect
npmgit-raw-commits3.0.0indirect
npmgit-remote-origin-url2.0.0indirect
npmgit-semver-tags5.0.1indirect
npmgitconfiglocal1.0.0indirect
npmglob7.2.3indirect
npmglob-parent5.1.2indirect
npmglob-parent6.0.2indirect
npmglobals14.0.0indirect
npmglobalthis1.0.4indirect
npmgopd1.2.0indirect
npmgraceful-fs4.2.11indirect
npmhandlebars4.7.9indirect
npmhard-rejection2.1.0indirect
npmhas-bigints1.1.0indirect
npmhas-flag3.0.0indirect
npmhas-flag4.0.0indirect
npmhas-own-prop2.0.0indirect
npmhas-property-descriptors1.0.2indirect
npmhas-proto1.2.0indirect
npmhas-symbols1.1.0indirect
npmhas-tostringtag1.0.2indirect
npmhasown2.0.4indirect
npmhosted-git-info2.8.9indirect
npmhosted-git-info4.1.0indirect
npmhtml-encoding-sniffer2.0.1indirect
npmhtml-escaper2.0.2indirect
npmhttp-proxy-agent4.0.1indirect
npmhttps-proxy-agent5.0.1indirect
npmhuman-signals2.1.0indirect
npmiconv-lite0.4.24indirect
npmignore5.3.2indirect
npmignore7.0.6indirect
npmimport-fresh3.3.1indirect
npmimport-local3.2.0indirect
npmimurmurhash0.1.4indirect
npmindent-string4.0.0indirect
npminflight1.0.6indirect
npminherits2.0.4indirect
npmini1.3.8indirect
npmini2.0.0indirect
npminternal-slot1.1.0indirect
npminterpret1.4.0indirect
npmis-array-buffer3.0.5indirect
npmis-arrayish0.2.1indirect
npmis-async-function2.1.1indirect
npmis-bigint1.1.0indirect
npmis-boolean-object1.2.2indirect
npmis-callable1.2.7indirect
npmis-core-module2.16.2indirect
npmis-data-view1.0.2indirect
npmis-date-object1.1.0indirect
npmis-document.all1.0.0indirect
npmis-extglob2.1.1indirect
npmis-finalizationregistry1.1.1indirect
npmis-fullwidth-code-point3.0.0indirect
npmis-generator-fn2.1.0indirect
npmis-generator-function1.1.2indirect
npmis-glob4.0.3indirect
npmis-map2.0.3indirect
npmis-negative-zero2.0.3indirect
npmis-number7.0.0indirect
npmis-number-object1.1.1indirect
npmis-obj2.0.0indirect
npmis-plain-obj1.1.0indirect
npmis-potential-custom-element-name1.0.1indirect
npmis-regex1.2.1indirect
npmis-set2.0.3indirect
npmis-shared-array-buffer1.0.4indirect
npmis-stream1.1.0indirect
npmis-stream2.0.1indirect
npmis-string1.1.1indirect
npmis-symbol1.1.1indirect
npmis-text-path1.0.1indirect
npmis-typed-array1.1.15indirect
npmis-typedarray1.0.0indirect
npmis-unsafe2.0.0indirect
npmis-weakmap2.0.2indirect
npmis-weakref1.1.1indirect
npmis-weakset2.0.4indirect
npmisarray1.0.0indirect
npmisarray2.0.5indirect
npmisexe2.0.0indirect
npmistanbul-lib-coverage3.2.2indirect
npmistanbul-lib-instrument5.2.1indirect
npmistanbul-lib-report3.0.1indirect
npmistanbul-lib-source-maps4.0.1indirect
npmistanbul-reports3.2.0indirect
npmjest27.5.1indirect
npmjest-changed-files27.5.1indirect
npmjest-circus27.5.1indirect
npmjest-cli27.5.1indirect
npmjest-config27.5.1indirect
npmjest-diff27.5.1indirect
npmjest-docblock27.5.1indirect
npmjest-each27.5.1indirect
npmjest-environment-jsdom27.5.1indirect
npmjest-environment-node27.5.1indirect
npmjest-get-type27.5.1indirect
npmjest-haste-map27.5.1indirect
npmjest-jasmine227.5.1indirect
npmjest-junit16.0.0indirect
npmjest-leak-detector27.5.1indirect
npmjest-matcher-utils27.5.1indirect
npmjest-message-util27.5.1indirect
npmjest-mock27.5.1indirect
npmjest-pnp-resolver1.2.3indirect
npmjest-regex-util27.5.1indirect
npmjest-resolve27.5.1indirect
npmjest-resolve-dependencies27.5.1indirect
npmjest-runner27.5.1indirect
npmjest-runtime27.5.1indirect
npmjest-serializer27.5.1indirect
npmjest-snapshot27.5.1indirect
npmjest-util27.5.1indirect
npmjest-validate27.5.1indirect
npmjest-watcher27.5.1indirect
npmjest-worker27.5.1indirect
npmjs-tokens4.0.0indirect
npmjs-yaml3.14.1indirect
npmjs-yaml3.15.0indirect
npmjs-yaml4.3.0indirect
npmjsdom16.7.0indirect
npmjsesc3.1.0indirect
npmjsii5.9.48indirect
npmjsii-diff1.139.0indirect
npmjsii-docgen10.12.4indirect
npmjsii-pacmak1.139.0indirect
npmjsii-reflect1.139.0indirect
npmjsii-rosetta5.9.57indirect
npmjson-buffer3.0.1indirect
npmjson-parse-better-errors1.0.2indirect
npmjson-parse-even-better-errors2.3.1indirect
npmjson-parse-even-better-errors4.0.0indirect
npmjson-schema-traverse0.4.1indirect
npmjson-schema-traverse1.0.0indirect
npmjson-stable-stringify-without-jsonify1.0.1indirect
npmjson-stream-stringify3.1.7indirect
npmjson-stringify-safe5.0.1indirect
npmjson51.0.2indirect
npmjson52.2.3indirect
npmjsonfile4.0.0indirect
npmjsonfile6.2.1indirect
npmjsonparse1.3.1indirect
npmjsonschema1.4.1indirect
npmJSONStream1.3.5indirect
npmjust-diff6.0.2indirect
npmjust-diff-apply5.5.0indirect
npmkeyv4.5.4indirect
npmkind-of6.0.3indirect
npmkleur3.0.3indirect
npmleven3.1.0indirect
npmlevn0.4.1indirect
npmlines-and-columns1.2.4indirect
npmload-json-file4.0.0indirect
npmlocate-path2.0.0indirect
npmlocate-path3.0.0indirect
npmlocate-path5.0.0indirect
npmlocate-path6.0.0indirect
npmlodash4.18.1indirect
npmlodash.ismatch4.4.0indirect
npmlodash.memoize4.1.2indirect
npmlodash.merge4.6.2indirect
npmlodash.truncate4.4.2indirect
npmlog4js6.9.1indirect
npmlru-cache5.1.1indirect
npmlru-cache6.0.0indirect
npmmake-dir4.0.0indirect
npmmake-error1.3.6indirect
npmmakeerror1.0.12indirect
npmmap-obj1.0.1indirect
npmmap-obj4.3.0indirect
npmmath-intrinsics1.1.0indirect
npmmdurl1.0.1indirect
npmmeow8.1.2indirect
npmmerge-stream2.0.0indirect
npmmerge21.4.1indirect
npmmicromatch4.0.8indirect
npmmime-db1.52.0indirect
npmmime-types2.1.35indirect
npmmimic-fn2.1.0indirect
npmmin-indent1.0.1indirect
npmminimatch10.2.5indirect
npmminimatch3.1.5indirect
npmminimist1.2.8indirect
npmminimist-options4.1.0indirect
npmmkdirp1.0.4indirect
npmmodify-values1.0.1indirect
npmms2.1.3indirect
npmnatural-compare1.4.0indirect
npmneo-async2.6.2indirect
npmnice-try1.0.5indirect
npmnode-exports-info1.6.2indirect
npmnode-int640.4.0indirect
npmnode-releases2.0.51indirect
npmnormalize-package-data2.5.0indirect
npmnormalize-package-data3.0.3indirect
npmnormalize-path3.0.0indirect
npmnpm-run-path2.0.2indirect
npmnpm-run-path4.0.1indirect
npmnwsapi2.2.24indirect
npmobject-inspect1.13.4indirect
npmobject-keys1.1.1indirect
npmobject.assign4.1.7indirect
npmobject.entries1.1.9indirect
npmobject.fromentries2.0.8indirect
npmobject.groupby1.0.3indirect
npmobject.values1.2.1indirect
npmonce1.4.0indirect
npmonetime5.1.2indirect
npmoo-ascii-tree1.139.0indirect
npmoptionator0.9.4indirect
npmown-keys1.0.2indirect
npmp-finally1.0.0indirect
npmp-limit1.3.0indirect
npmp-limit2.3.0indirect
npmp-limit3.1.0indirect
npmp-locate2.0.0indirect
npmp-locate3.0.0indirect
npmp-locate4.1.0indirect
npmp-locate5.0.0indirect
npmp-try1.0.0indirect
npmp-try2.2.0indirect
npmparent-module1.0.1indirect
npmparse-conflict-json4.0.0indirect
npmparse-json4.0.0indirect
npmparse-json5.2.0indirect
npmparse56.0.1indirect
npmpath-exists3.0.0indirect
npmpath-exists4.0.0indirect
npmpath-expression-matcher1.6.2indirect
npmpath-is-absolute1.0.1indirect
npmpath-key2.0.1indirect
npmpath-key3.1.1indirect
npmpath-parse1.0.7indirect
npmpath-type3.0.0indirect
npmpicocolors1.1.1indirect
npmpicomatch2.3.2indirect
npmpicomatch4.0.5indirect
npmpify2.3.0indirect
npmpify3.0.0indirect
npmpirates4.0.7indirect
npmpkg-dir4.2.0indirect
npmpossible-typed-array-names1.1.0indirect
npmprelude-ls1.2.1indirect
npmprettier2.8.8indirect
npmprettier-linter-helpers1.0.1indirect
npmpretty-format27.5.1indirect
npmprocess-nextick-args2.0.1indirect
npmprojen0.98.6indirect
npmprompts2.4.2indirect
npmpsl1.15.0indirect
npmpump3.0.3indirect
npmpunycode2.3.1indirect
npmquerystringify2.2.0indirect
npmqueue-microtask1.2.3indirect
npmquick-lru4.0.1indirect
npmreact-is17.0.2indirect
npmread-pkg3.0.0indirect
npmread-pkg5.2.0indirect
npmread-pkg-up3.0.0indirect
npmread-pkg-up7.0.1indirect
npmreadable-stream2.3.8indirect
npmreadable-stream3.6.2indirect
npmrechoir0.6.2indirect
npmredent3.0.0indirect
npmreflect.getprototypeof1.0.10indirect
npmregexp.prototype.flags1.5.4indirect
npmrepeat-string1.6.1indirect
npmrequire-directory2.1.1indirect
npmrequire-from-string2.0.2indirect
npmrequires-port1.0.0indirect
npmresolve1.22.11indirect
npmresolve1.22.12indirect
npmresolve2.0.0-next.7indirect
npmresolve-cwd3.0.0indirect
npmresolve-from4.0.0indirect
npmresolve-from5.0.0indirect
npmresolve.exports1.1.1indirect
npmreusify1.1.0indirect
npmrfdc1.4.1indirect
npmrimraf3.0.2indirect
npmrun-parallel1.2.0indirect
npmsafe-array-concat1.1.4indirect
npmsafe-buffer5.1.2indirect
npmsafe-buffer5.2.1indirect
npmsafe-push-apply1.0.0indirect
npmsafe-regex-test1.1.0indirect
npmsafer-buffer2.1.2indirect
npmsaxes5.0.1indirect
npmsemver5.7.2indirect
npmsemver6.3.1indirect
npmsemver7.7.4indirect
npmsemver7.8.5indirect
npmsemver-intersect1.5.0indirect
npmset-function-length1.2.2indirect
npmset-function-name2.0.2indirect
npmset-proto1.0.0indirect
npmshebang-command1.2.0indirect
npmshebang-command2.0.0indirect
npmshebang-regex1.0.0indirect
npmshebang-regex3.0.0indirect
npmshelljs0.9.2indirect
npmshx0.4.0indirect
npmside-channel1.1.1indirect
npmside-channel-list1.0.1indirect
npmside-channel-map1.0.1indirect
npmside-channel-weakmap1.0.2indirect
npmsignal-exit3.0.7indirect
npmsisteransi1.0.5indirect
npmslash3.0.0indirect
npmslice-ansi4.0.0indirect
npmsort-json2.0.1indirect
npmsource-map0.6.1indirect
npmsource-map0.7.6indirect
npmsource-map-support0.5.21indirect
npmspdx-correct3.2.0indirect
npmspdx-exceptions2.5.0indirect
npmspdx-expression-parse3.0.1indirect
npmspdx-license-ids3.0.23indirect
npmspdx-license-list6.12.0indirect
npmsplit1.0.1indirect
npmsplit23.2.2indirect
npmsprintf-js1.0.3indirect
npmstack-utils2.0.6indirect
npmstop-iteration-iterator1.1.0indirect
npmstream-chain2.2.5indirect
npmstream-json1.9.1indirect
npmstreamroller3.1.5indirect
npmstring-length4.0.2indirect
npmstring-width4.2.3indirect
npmstring.prototype.trim1.2.11indirect
npmstring.prototype.trimend1.0.10indirect
npmstring.prototype.trimstart1.0.8indirect
npmstring_decoder1.1.1indirect
npmstring_decoder1.3.0indirect
npmstrip-ansi6.0.1indirect
npmstrip-bom3.0.0indirect
npmstrip-bom4.0.0indirect
npmstrip-eof1.0.0indirect
npmstrip-final-newline2.0.0indirect
npmstrip-indent3.0.0indirect
npmstrip-json-comments3.1.1indirect
npmstrnum2.4.1indirect
npmsupports-color5.5.0indirect
npmsupports-color7.2.0indirect
npmsupports-color8.1.1indirect
npmsupports-hyperlinks2.3.0indirect
npmsupports-preserve-symlinks-flag1.0.0indirect
npmsymbol-tree3.2.4indirect
npmtable6.9.0indirect
npmterminal-link2.1.1indirect
npmtest-exclude6.0.0indirect
npmtext-extensions1.9.0indirect
npmthroat6.0.2indirect
npmthrough2.3.8indirect
npmthrough22.0.5indirect
npmtinyglobby0.2.17indirect
npmtmpl1.0.5indirect
npmto-regex-range5.0.1indirect
npmtough-cookie4.1.4indirect
npmtr462.1.0indirect
npmtrim-newlines3.0.1indirect
npmts-api-utils2.5.0indirect
npmts-jest27.1.5indirect
npmts-node10.9.2indirect
npmtsconfig-paths3.15.0indirect
npmtype-check0.4.0indirect
npmtype-detect4.0.8indirect
npmtype-fest0.18.1indirect
npmtype-fest0.21.3indirect
npmtype-fest0.6.0indirect
npmtype-fest0.8.1indirect
npmtyped-array-buffer1.0.3indirect
npmtyped-array-byte-length1.0.3indirect
npmtyped-array-byte-offset1.0.4indirect
npmtyped-array-length1.0.8indirect
npmtypedarray0.0.6indirect
npmtypedarray-to-buffer3.1.5indirect
npmtypescript4.9.5indirect
npmtypescript5.9.3indirect
npmuglify-js3.19.3indirect
npmunbox-primitive1.1.0indirect
npmundici-types5.26.5indirect
npmundici-types8.3.0indirect
npmuniversalify0.1.2indirect
npmuniversalify0.2.0indirect
npmuniversalify2.0.1indirect
npmupdate-browserslist-db1.2.3indirect
npmuri-js4.4.1indirect
npmurl-parse1.5.10indirect
npmutil-deprecate1.0.2indirect
npmuuid8.3.2indirect
npmv8-compile-cache-lib3.0.1indirect
npmv8-to-istanbul8.1.1indirect
npmvalidate-npm-package-license3.0.4indirect
npmw3c-hr-time1.0.2indirect
npmw3c-xmlserializer2.0.0indirect
npmwalker1.0.8indirect
npmwebidl-conversions5.0.0indirect
npmwebidl-conversions6.1.0indirect
npmwhatwg-encoding1.0.5indirect
npmwhatwg-mimetype2.3.0indirect
npmwhatwg-url8.7.0indirect
npmwhich1.3.1indirect
npmwhich2.0.2indirect
npmwhich-boxed-primitive1.1.1indirect
npmwhich-builtin-type1.2.1indirect
npmwhich-collection1.0.2indirect
npmwhich-typed-array1.1.22indirect
npmword-wrap1.2.5indirect
npmwordwrap1.0.0indirect
npmworkerpool6.5.1indirect
npmwrap-ansi7.0.0indirect
npmwrappy1.0.2indirect
npmwrite-file-atomic3.0.3indirect
npmws7.5.13indirect
npmxml1.0.1indirect
npmxml-name-validator3.0.0indirect
npmxml-naming0.3.0indirect
npmxmlbuilder15.1.1indirect
npmxmlbuilder23.1.1indirect
npmxmlchars2.2.0indirect
npmxtend4.0.2indirect
npmy18n5.0.8indirect
npmyallist3.1.1indirect
npmyallist4.0.0indirect
npmyaml1.10.2indirect
npmyaml2.8.1indirect
npmyaml2.9.0indirect
npmyargs16.2.2indirect
npmyargs17.7.3indirect
npmyargs-parser20.2.9indirect
npmyargs-parser21.1.1indirect
npmyn3.1.1indirect
npmyocto-queue0.1.0indirect
Dependency advisories 9

This repository publishes no package the index resolves, so its own dependency graph was assessed — 787 packages, which also include development and test pins that never ship: 9 carry known advisories, of which 0 are direct.

PackageVersionRelationSeverityAdvisoriesFixed in
aws-cdk-lib2.160.0indirecthigh62.260.0
brace-expansion1.1.16indirecthigh15.0.8
fast-uri3.1.2indirecthigh24.1.1
js-yaml3.14.1indirecthigh34.3.0
uuid8.3.2indirecthigh113.0.1
ajv8.17.1indirectmoderate18.18.0
yaml1.10.2indirectmoderate12.8.3
yaml2.8.1indirectmoderate12.8.3
@tootallnate/once1.1.2indirectlow13.0.1

An advisory means the version recorded in the dependency graph falls inside an advisory’s affected range. Reachability is not analysed, and the graph includes development and test pins — a finding may concern tooling rather than shipped software.

Raw JSON report machine-readable
{
  "data": {
    "repo": {
      "topics": [
        "monitoring",
        "cdk",
        "cdk-constructs",
        "cdk-construct",
        "ops",
        "aws"
      ],
      "is_fork": false,
      "size_kb": 7914,
      "has_wiki": false,
      "homepage": "https://constructs.dev/packages/cdk-monitoring-constructs",
      "languages": {
        "JavaScript": 4304,
        "TypeScript": 1286857
      },
      "pushed_at": "2026-07-27T00:39:33Z",
      "created_at": "2022-02-21T21:53:18Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-27T00:37:16Z",
      "description": "Easy-to-use CDK constructs for monitoring your AWS infrastructure",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript"
      ]
    },
    "owner": {
      "blog": "https://aws.amazon.com/cdk",
      "name": "CDK Labs at AWS",
      "type": "Organization",
      "login": "cdklabs",
      "company": null,
      "location": null,
      "followers": 431,
      "avatar_url": "https://avatars.githubusercontent.com/u/75227353?v=4",
      "created_at": "2020-11-29T23:37:10Z",
      "is_verified": null,
      "public_repos": 108,
      "account_age_days": 2065
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v10.2.0",
          "kind": "minor",
          "published_at": "2026-07-20T22:59:15Z"
        },
        {
          "tag": "v10.1.0",
          "kind": "minor",
          "published_at": "2026-05-27T21:22:01Z"
        },
        {
          "tag": "v10.0.0",
          "kind": "major",
          "published_at": "2026-04-25T01:04:55Z"
        },
        {
          "tag": "v9.23.0",
          "kind": "minor",
          "published_at": "2026-04-24T04:53:43Z"
        },
        {
          "tag": "v9.22.2",
          "kind": "patch",
          "published_at": "2026-03-29T04:54:45Z"
        },
        {
          "tag": "v9.22.1",
          "kind": "patch",
          "published_at": "2026-03-24T18:02:35Z"
        },
        {
          "tag": "v9.22.0",
          "kind": "minor",
          "published_at": "2026-03-09T18:50:12Z"
        },
        {
          "tag": "v9.21.0",
          "kind": "minor",
          "published_at": "2026-03-09T18:43:31Z"
        },
        {
          "tag": "v9.20.0",
          "kind": "minor",
          "published_at": "2026-03-04T17:47:40Z"
        },
        {
          "tag": "v9.19.3",
          "kind": "patch",
          "published_at": "2026-02-23T06:16:16Z"
        },
        {
          "tag": "v9.19.2",
          "kind": "patch",
          "published_at": "2026-02-20T10:36:32Z"
        },
        {
          "tag": "v9.19.1",
          "kind": "patch",
          "published_at": "2026-02-06T21:18:04Z"
        },
        {
          "tag": "v9.19.0",
          "kind": "minor",
          "published_at": "2025-12-11T04:21:27Z"
        },
        {
          "tag": "v9.18.0",
          "kind": "minor",
          "published_at": "2025-12-10T01:37:38Z"
        },
        {
          "tag": "v9.17.1",
          "kind": "patch",
          "published_at": "2025-12-08T23:21:35Z"
        },
        {
          "tag": "v9.17.0",
          "kind": "minor",
          "published_at": "2025-12-07T00:48:06Z"
        },
        {
          "tag": "v9.16.1",
          "kind": "patch",
          "published_at": "2025-12-07T00:41:06Z"
        },
        {
          "tag": "v9.16.0",
          "kind": "minor",
          "published_at": "2025-10-31T11:09:47Z"
        },
        {
          "tag": "v9.15.2",
          "kind": "patch",
          "published_at": "2025-08-19T18:33:35Z"
        },
        {
          "tag": "v9.15.1",
          "kind": "patch",
          "published_at": "2025-08-19T15:42:32Z"
        },
        {
          "tag": "v9.15.0",
          "kind": "minor",
          "published_at": "2025-08-15T20:44:43Z"
        },
        {
          "tag": "v9.14.0",
          "kind": "minor",
          "published_at": "2025-08-15T13:44:50Z"
        },
        {
          "tag": "v9.13.0",
          "kind": "minor",
          "published_at": "2025-07-30T22:13:38Z"
        },
        {
          "tag": "v9.12.0",
          "kind": "minor",
          "published_at": "2025-05-21T18:32:18Z"
        },
        {
          "tag": "v9.11.0",
          "kind": "minor",
          "published_at": "2025-05-20T15:30:21Z"
        },
        {
          "tag": "v9.10.0",
          "kind": "minor",
          "published_at": "2025-05-02T13:39:27Z"
        },
        {
          "tag": "v9.9.0",
          "kind": "minor",
          "published_at": "2025-05-01T21:00:26Z"
        },
        {
          "tag": "v9.8.0",
          "kind": "minor",
          "published_at": "2025-04-28T15:08:33Z"
        },
        {
          "tag": "v9.7.1",
          "kind": "patch",
          "published_at": "2025-04-14T21:07:16Z"
        },
        {
          "tag": "v9.7.0",
          "kind": "minor",
          "published_at": "2025-04-10T19:14:15Z"
        },
        {
          "tag": "v9.6.1",
          "kind": "patch",
          "published_at": "2025-04-08T18:31:28Z"
        },
        {
          "tag": "v9.6.0",
          "kind": "minor",
          "published_at": "2025-03-31T13:36:34Z"
        },
        {
          "tag": "v9.5.0",
          "kind": "minor",
          "published_at": "2025-03-26T18:14:24Z"
        },
        {
          "tag": "v9.4.0",
          "kind": "minor",
          "published_at": "2025-03-21T14:14:07Z"
        },
        {
          "tag": "v9.3.0",
          "kind": "minor",
          "published_at": "2025-03-21T02:54:26Z"
        },
        {
          "tag": "v9.2.0",
          "kind": "minor",
          "published_at": "2025-02-05T15:53:11Z"
        },
        {
          "tag": "v9.1.3",
          "kind": "patch",
          "published_at": "2024-12-18T14:57:57Z"
        },
        {
          "tag": "v9.1.2",
          "kind": "patch",
          "published_at": "2024-12-07T00:35:33Z"
        },
        {
          "tag": "v9.1.1",
          "kind": "patch",
          "published_at": "2024-11-21T09:51:59Z"
        },
        {
          "tag": "v9.1.0",
          "kind": "minor",
          "published_at": "2024-11-13T17:35:36Z"
        },
        {
          "tag": "v9.0.0",
          "kind": "major",
          "published_at": "2024-11-13T17:09:00Z"
        },
        {
          "tag": "v8.4.0",
          "kind": "minor",
          "published_at": "2024-11-12T15:02:25Z"
        },
        {
          "tag": "v8.3.6",
          "kind": "patch",
          "published_at": "2024-11-12T14:45:26Z"
        },
        {
          "tag": "v8.3.5",
          "kind": "patch",
          "published_at": "2024-10-30T14:04:51Z"
        },
        {
          "tag": "v8.3.4",
          "kind": "patch",
          "published_at": "2024-10-28T19:12:06Z"
        },
        {
          "tag": "v8.3.3",
          "kind": "patch",
          "published_at": "2024-10-24T21:30:36Z"
        },
        {
          "tag": "v8.3.2",
          "kind": "patch",
          "published_at": "2024-10-16T19:45:07Z"
        },
        {
          "tag": "v8.3.1",
          "kind": "patch",
          "published_at": "2024-09-24T17:38:28Z"
        },
        {
          "tag": "v8.3.0",
          "kind": "minor",
          "published_at": "2024-09-18T19:53:47Z"
        },
        {
          "tag": "v8.2.0",
          "kind": "minor",
          "published_at": "2024-09-09T20:44:12Z"
        },
        {
          "tag": "v8.1.1",
          "kind": "patch",
          "published_at": "2024-08-23T13:36:42Z"
        },
        {
          "tag": "v8.1.0",
          "kind": "minor",
          "published_at": "2024-08-01T14:08:04Z"
        },
        {
          "tag": "v8.0.1",
          "kind": "patch",
          "published_at": "2024-07-17T20:17:40Z"
        },
        {
          "tag": "v8.0.0",
          "kind": "major",
          "published_at": "2024-07-03T15:51:04Z"
        },
        {
          "tag": "v7.13.1",
          "kind": "patch",
          "published_at": "2024-07-02T14:38:18Z"
        },
        {
          "tag": "v7.13.0",
          "kind": "minor",
          "published_at": "2024-06-26T14:38:06Z"
        },
        {
          "tag": "v7.12.0",
          "kind": "minor",
          "published_at": "2024-06-25T17:46:29Z"
        },
        {
          "tag": "v7.11.0",
          "kind": "minor",
          "published_at": "2024-05-30T19:27:16Z"
        },
        {
          "tag": "v7.10.1",
          "kind": "patch",
          "published_at": "2024-05-10T19:54:14Z"
        },
        {
          "tag": "v7.10.0",
          "kind": "minor",
          "published_at": "2024-05-10T18:06:06Z"
        },
        {
          "tag": "v7.9.0",
          "kind": "minor",
          "published_at": "2024-05-09T18:48:02Z"
        },
        {
          "tag": "v7.8.0",
          "kind": "minor",
          "published_at": "2024-03-22T21:58:00Z"
        },
        {
          "tag": "v7.7.0",
          "kind": "minor",
          "published_at": "2024-02-12T14:37:28Z"
        },
        {
          "tag": "v7.6.0",
          "kind": "minor",
          "published_at": "2024-01-19T20:38:38Z"
        },
        {
          "tag": "v7.5.0",
          "kind": "minor",
          "published_at": "2024-01-17T14:58:27Z"
        },
        {
          "tag": "v7.4.0",
          "kind": "minor",
          "published_at": "2024-01-16T19:49:18Z"
        },
        {
          "tag": "v7.3.2",
          "kind": "patch",
          "published_at": "2024-01-15T00:34:46Z"
        },
        {
          "tag": "v7.3.1",
          "kind": "patch",
          "published_at": "2024-01-08T00:34:20Z"
        },
        {
          "tag": "v7.3.0",
          "kind": "minor",
          "published_at": "2024-01-02T16:46:50Z"
        },
        {
          "tag": "v7.2.3",
          "kind": "patch",
          "published_at": "2024-01-01T00:37:46Z"
        },
        {
          "tag": "v7.2.2",
          "kind": "patch",
          "published_at": "2023-12-25T00:34:25Z"
        },
        {
          "tag": "v7.2.1",
          "kind": "patch",
          "published_at": "2023-12-18T00:35:18Z"
        },
        {
          "tag": "v7.2.0",
          "kind": "minor",
          "published_at": "2023-12-12T18:53:05Z"
        },
        {
          "tag": "v7.1.1",
          "kind": "patch",
          "published_at": "2023-12-11T00:31:26Z"
        },
        {
          "tag": "v7.1.0",
          "kind": "minor",
          "published_at": "2023-12-04T17:12:46Z"
        },
        {
          "tag": "v7.0.1",
          "kind": "patch",
          "published_at": "2023-12-04T00:34:07Z"
        },
        {
          "tag": "v7.0.0",
          "kind": "major",
          "published_at": "2023-12-01T17:23:37Z"
        },
        {
          "tag": "v6.5.2",
          "kind": "patch",
          "published_at": "2023-11-27T00:32:07Z"
        },
        {
          "tag": "v6.5.1",
          "kind": "patch",
          "published_at": "2023-11-20T00:32:31Z"
        },
        {
          "tag": "v6.5.0",
          "kind": "minor",
          "published_at": "2023-11-16T14:55:14Z"
        },
        {
          "tag": "v6.4.1",
          "kind": "patch",
          "published_at": "2023-11-13T00:34:18Z"
        },
        {
          "tag": "v6.4.0",
          "kind": "minor",
          "published_at": "2023-11-10T21:31:55Z"
        },
        {
          "tag": "v6.3.0",
          "kind": "minor",
          "published_at": "2023-11-09T18:41:22Z"
        },
        {
          "tag": "v6.2.3",
          "kind": "patch",
          "published_at": "2023-11-06T00:34:18Z"
        },
        {
          "tag": "v6.2.2",
          "kind": "patch",
          "published_at": "2023-10-30T00:41:59Z"
        },
        {
          "tag": "v6.2.1",
          "kind": "patch",
          "published_at": "2023-10-23T00:38:34Z"
        },
        {
          "tag": "v6.2.0",
          "kind": "minor",
          "published_at": "2023-10-20T16:57:54Z"
        },
        {
          "tag": "v6.1.0",
          "kind": "minor",
          "published_at": "2023-10-20T14:38:34Z"
        },
        {
          "tag": "v6.0.4",
          "kind": "patch",
          "published_at": "2023-10-16T00:38:28Z"
        },
        {
          "tag": "v6.0.3",
          "kind": "patch",
          "published_at": "2023-10-09T00:37:45Z"
        },
        {
          "tag": "v6.0.2",
          "kind": "patch",
          "published_at": "2023-10-02T00:41:02Z"
        },
        {
          "tag": "v6.0.1",
          "kind": "patch",
          "published_at": "2023-09-28T20:04:10Z"
        },
        {
          "tag": "v6.0.0",
          "kind": "major",
          "published_at": "2023-09-28T14:25:39Z"
        },
        {
          "tag": "v5.10.4",
          "kind": "patch",
          "published_at": "2023-09-25T00:32:43Z"
        },
        {
          "tag": "v5.10.3",
          "kind": "patch",
          "published_at": "2023-09-18T00:37:27Z"
        },
        {
          "tag": "v5.10.2",
          "kind": "patch",
          "published_at": "2023-09-14T14:15:20Z"
        },
        {
          "tag": "v5.10.1",
          "kind": "patch",
          "published_at": "2023-09-11T00:35:59Z"
        },
        {
          "tag": "v5.10.0",
          "kind": "minor",
          "published_at": "2023-09-05T15:42:22Z"
        },
        {
          "tag": "v5.9.2",
          "kind": "patch",
          "published_at": "2023-09-04T00:37:44Z"
        },
        {
          "tag": "v5.9.1",
          "kind": "patch",
          "published_at": "2023-08-31T21:16:28Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "a6050f6baa2dd990019823246078141d7c6e5536",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/30227669783\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#760)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-07-27T00:37:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4093e83f76a6d4f34308e532facce0053d16000b",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/29709608896\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Caymon / Kayo <24500457+giantcow@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#756)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-07-20T22:57:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "10f6919a8277776aa55dc064840a7dcf13563e57",
          "body": "Add EventBridge rule-based alarms that detect Glue job FAILED and\nTIMEOUT state changes, catching failures that occur before Spark metrics\nare emitted (e.g., early script errors).\n\nNew props:\n- addJobFailedStateCountAlarm\n- addJobTimeoutStateCountAlarm\n\nThese create EventBridge rules matching 'Glue \n[…]\nhat my contribution is made\nunder the terms of the Apache-2.0 license_\n\nCo-authored-by: Sriram Palacharla <srirpa@amazon.com>\nCo-authored-by: Caymon / Kayo <24500457+giantcow@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(glue): add state-change-based alarms for FAILED and TIMEOUT (#748)",
          "author_name": "Sriram Palacharla",
          "author_login": "srirampalacharla",
          "committed_at": "2026-07-20T22:53:32Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "32a1140a6b2ab08248466b3ec0105876dda62bb1",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/29215487309\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#755)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-07-13T00:36:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d44f498584d8086f68786f8955017b2da1fc5cf2",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/28760469227\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#754)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-07-06T00:40:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e61d18aa7a4a6a2f7c5f4cd2e42f5a6551be8844",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/28341705786\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#753)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-06-29T00:48:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "11e34fbba451f2ce8074e91a06b1b1a72227d57c",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/27922950361\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#752)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-06-22T00:51:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6badc44caab0bad9d254b779b908241ad0bd3349",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/27517574537\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#749)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-06-15T00:52:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "41a113e01b29f5ea60d75c8d100857e4da8e4791",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/27109908455\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#747)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-06-08T00:50:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6e9e1a97b0b2bb41cbc08f725acfae7e32f8d63d",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/26729342902\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#746)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-06-01T00:49:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e18d922fab579df644dee7f06e1a1d7eba7d7c76",
          "body": "…(#744)\n\nCloses #671\n\nAdded TrimmedSum (TS) statistics to the MetricStatistic enum, following\nthe same pattern as the existing TrimmedMean (TM) statistics:\n\n- Basic: TS50, TS70, TS90, TS95, TS99, TS999, TS9999\n- Bidirectional: TS99_BOTH, TS95_BOTH, TS90_BOTH, TS85_BOTH, TS80_BOTH,\nTS75_BOTH, TS70_BO\n[…]\nP, TS99_TOP, TS999_TOP, TS9999_TOP\n\nAll values follow the AWS CloudWatch statistics syntax as documented at:\n\nhttps://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html",
          "is_bot": false,
          "headline": "feat(metric): add TrimmedSum (TS) statistics to MetricStatistic enum …",
          "author_name": "Abhinav Chinta",
          "author_login": "chintaabhinav",
          "committed_at": "2026-05-27T21:16:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "537c61e55889c8861699f86dc416d83d7dfadeaa",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/26377390245\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#745)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-05-25T00:45:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "96f08c6114b6e76203719c7f323d16818b47732f",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/26007433710\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#743)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-05-18T15:39:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0a457c936b803978f315b0dd3b55090d865ec2ff",
          "body": "Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.0 to\n3.1.2.\n<details>\n<summary>Release notes</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/fastify/fast-uri/releases\">fast-uri's\nreleases</a>.</em></p>\n<blockquote>\n<h2>v3.1.2</h2>\n<h2>⚠️ Security Release</h2>\n<ul>\n<li>Fix fo\n[…]\n/v3.1.0...v3.1.2\">compare\nview</a></li>\n</ul>\n</details>\n<br />\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump fast-uri from 3.1.0 to 3.1.2 (#741)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-11T06:03:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5e4f5cd8ad0aa0ee1f9f59acadd28d2fdcdd2e88",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/25644260627\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#742)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-05-11T00:41:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8b47c0c2dfb9e7c17e515a7812b85d2f3d25d7eb",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/25295367197\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#739)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-05-04T00:38:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b8f3dc61c214a9b29619810682c56778cbaadc7d",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/24971007796\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#737)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-04-27T00:34:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "838eee7ed81fe8344810fe48e48e7e96018704f4",
          "body": "This removes some APIs/types that had replacements added previously in\norder to avoid using generics and tuples, which JSII@5 does not support.\n    \nThe BaseMetricFactory might affect other extensions of that abstract\nclass outside of this library, which would need to be confirmed by\nreviewers.\n\nThi\n[…]\nder the terms of the Apache-2.0 license_\n\n---------\n\nCo-authored-by: arkon <arkon@users.noreply.github.com>\nCo-authored-by: Caymon Sullivan <cayman@amazon.com>\nCo-authored-by: Kayo <kayo@giantcow.dev>",
          "is_bot": false,
          "headline": "feat(build)!: upgrade to JSII@5 (#686)",
          "author_name": "arkon",
          "author_login": "arkon",
          "committed_at": "2026-04-25T00:59:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a3ff647190295eb6c4795ed98074858f458ee5cb",
          "body": "## Summary\n\nAdds `KinesisDataStreamConsumerMonitoring` for enhanced fan-out (EFO)\nconsumers of Kinesis Data Streams, dimensioned by `{StreamName,\nConsumerName}`. Complements the existing stream-level\n`KinesisDataStreamMonitoring` which only covers stream-wide metrics.\n\n## Metrics (6)\n\nAll on namespa\n[…]\nBy submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license\n\n---------\n\nCo-authored-by: Caymon / Kayo <24500457+giantcow@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(kinesis): add per-consumer EFO monitoring (#736)",
          "author_name": "costmatt-amzn",
          "author_login": "costmatt-amzn",
          "committed_at": "2026-04-24T04:45:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6dc214d3b0079fceabbb2e2eee65dda499c4469b",
          "body": "## What\n\nWires Fargate services into the auto-applied `MonitoringAspect` so that\nteams relying on the aspect for fleet-wide auto-monitoring get Fargate\ncoverage without manual opt-in.\n\nCovers three cases:\n\n| Matched construct | Facade method | Metrics covered |\n| --- | --- | --- |\n| `ecs.FargateServ\n[…]\nith the same pattern (bare `Ec2Service` + L3 patterns with\nancestor-skip logic).\n\n---\n\nBy submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license",
          "is_bot": false,
          "headline": "feat(MonitoringAspect): add Fargate service support (#734)",
          "author_name": "costmatt-amzn",
          "author_login": "costmatt-amzn",
          "committed_at": "2026-04-24T04:41:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c58ad73daf09b4f8153cde7a015a8a4115f19daa",
          "body": "…oring and alarms (#733)\n\nChanges:\n\n* KinesisDataAnalyticsMetricFactory: add\nmetricBackPressuredTimeMsPerSecond()\n* KinesisDataAnalyticsAlarmFactory: add\nMaxBackPressuredTimeMsPerSecondThreshold interface and\naddBackPressuredTimeMsPerSecondAlarm()\n* KinesisDataAnalyticsMonitoring: expose\naddBackPres\n[…]\nessured\nTime\" widget in the dashboard\n* Tests and snapshots updated accordingly\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "feat(KinesisDataAnalytics): add maxBackPressuredTimeMsPerSecond monit…",
          "author_name": "costmatt-amzn",
          "author_login": "costmatt-amzn",
          "committed_at": "2026-04-24T04:31:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5f61f67d8828442ee5d91294d9fb6cf0b07541bd",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/24642914128\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#735)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-04-20T00:32:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5908bfb960625238a26a8f7f9639d328ed19fab3",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/24320156008\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#731)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-04-13T00:32:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d1463f19dd1fc4ad3912669cbbea52e94f33821c",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/24013855335\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#730)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-04-06T00:29:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "484d9c7f4c43ae5d345089a76bca3c2f266fb94f",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/23722730133\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#729)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-03-30T00:31:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6fb7956aca4612065171ae8aa5a7a52d56bcabdb",
          "body": "Bumps [handlebars](https://github.com/handlebars-lang/handlebars.js)\nfrom 4.7.8 to 4.7.9.\n<details>\n<summary>Release notes</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/handlebars-lang/handlebars.js/releases\">handlebars's\nreleases</a>.</em></p>\n<blockquote>\n<h2>v4.7.9</h2>\n<ul>\n<li>fix: \n[…]\n/cdklabs/cdk-monitoring-constructs/network/alerts).\n\n</details>\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump handlebars from 4.7.8 to 4.7.9 (#728)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-29T04:49:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a6688fff243691fa053801ddefecdc9b57ddee69",
          "body": "…ssed (#726)\n\nAdds logic to use the `stageName` of the API `deploymentStage` when an\noverride is not explicitly passed to the construct. Prevents\nmisconfigured alarms and dashboard widgets when the user does not pass\nthe `stageName` explicitly.\n\nSee also: #409, #381\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "fix(apigateway): use API deployment stage name when not explicitly pa…",
          "author_name": "Drew Davis",
          "author_login": "typeparameter",
          "committed_at": "2026-03-24T17:38:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "67a8cdce477c7e0942705053b54c9d32ce896dd6",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/23416162850\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#727)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-03-23T00:28:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d13e608c3083d1700008ca59a46a378a5fc60a5",
          "body": "Bumps [flatted](https://github.com/WebReflection/flatted) from 3.4.1 to\n3.4.2.\n<details>\n<summary>Commits</summary>\n<ul>\n<li><a\nhref=\"https://github.com/WebReflection/flatted/commit/3bf09091c3562e17a0647bc06710dd6097079cf7\"><code>3bf0909</code></a>\n3.4.2</li>\n<li><a\nhref=\"https://github.com/WebRefle\n[…]\n/cdklabs/cdk-monitoring-constructs/network/alerts).\n\n</details>\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump flatted from 3.4.1 to 3.4.2 (#725)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-20T04:03:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7eba849c4a5ce9d543d53dc515de6923164a8c85",
          "body": "Bumps\n[fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser)\nfrom 5.5.6 to 5.5.7.\n<details>\n<summary>Changelog</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md\">fast-xml-parser's\nchangelog</a>.</em></p>\n<blockqu\n[…]\n/cdklabs/cdk-monitoring-constructs/network/alerts).\n\n</details>\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump fast-xml-parser from 5.5.6 to 5.5.7 (#724)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-20T02:10:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9d65d0cab2698236b057c3fcd29f6934ed7537c0",
          "body": "Bumps\n[fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser)\nfrom 5.5.5 to 5.5.6.\n<details>\n<summary>Release notes</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/NaturalIntelligence/fast-xml-parser/releases\">fast-xml-parser's\nreleases</a>.</em></p>\n<blockquote>\n<h2>fix \n[…]\n/cdklabs/cdk-monitoring-constructs/network/alerts).\n\n</details>\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump fast-xml-parser from 5.5.5 to 5.5.6 (#723)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-18T04:34:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "77170777bdb981e20193e6fd8efa02fda9c815e9",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/23122858839\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#721)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-03-16T00:29:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "63bb22fc07680fe125c7f472ff67305cae7ed459",
          "body": "Add p100 statistic alongside existing average for CPU and memory\nutilization widgets in Fargate and Ec2 service monitoring, enabling\noperators to monitor peak resource usage.\n\nFixes #714\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_\n\nCo-authored-by: Colton White <coltonawhite@gmail.com>",
          "is_bot": false,
          "headline": "feat(ecs): add p100 CPU and memory utilization metrics and alarms (#715)",
          "author_name": "Milosz Watroba",
          "author_login": "miloszwatroba",
          "committed_at": "2026-03-09T18:41:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2d076703d8d8171de493a4203628d63d02394176",
          "body": "…er (#719)\n\nRelax the `errorType` parameter type from `ErrorType` to `ErrorType |\nstring` in `addErrorCountAlarm` and `addErrorRateAlarm` methods. This\nenables creating multiple alarms for error types that fall into the same\nenum category but need distinct names (e.g., `Elb500Error`,\n`Elb502Error` for ALB metrics).\n\nFixes #718\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "feat(ErrorAlarmFactory): allow arbitrary string for errorType paramet…",
          "author_name": "Milosz Watroba",
          "author_login": "miloszwatroba",
          "committed_at": "2026-03-09T18:37:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca4f5b7484a4dcca7c820a8cf6e11f45d3ae3586",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/22833288761\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#717)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-03-09T00:25:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7843764a55874a726e85902a9f8e209042b89330",
          "body": "Add three TCP reset metrics (client, target, ELB) to\nNetworkLoadBalancerMetricFactory and integrate them into\nNetworkLoadBalancerMonitoring dashboard with adaptive layout.\n\n- Add metricClientResetCount(), metricTargetResetCount(),\nmetricElbResetCount() methods\n- Create TCP Reset Counts widget displa\n[…]\net type scenarios\n\nFixes #712\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_\n\nCo-authored-by: Milosz Watroba <miw@amazon.com>",
          "is_bot": false,
          "headline": "feat(nlb): add TCP reset count metrics and dashboard widget (#713)",
          "author_name": "Milosz Watroba",
          "author_login": "miloszwatroba",
          "committed_at": "2026-03-04T17:41:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3b4351552ab355fc99d33828421c0f1b5a266056",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/22556392968\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#711)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-03-02T00:25:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f8e41c3d3fdc00d7562a17112cb99697e2d0868c",
          "body": "Bumps\n[fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser)\nfrom 5.3.7 to 5.4.1.\n<details>\n<summary>Release notes</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/NaturalIntelligence/fast-xml-parser/releases\">fast-xml-parser's\nreleases</a>.</em></p>\n<blockquote>\n<h2>Sepa\n[…]\n/cdklabs/cdk-monitoring-constructs/network/alerts).\n\n</details>\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump fast-xml-parser from 5.3.7 to 5.4.1 (#710)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-02-28T21:59:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9a920598b8b3b6eee2bea7f6d0a1953c331c36fc",
          "body": "Fixes #706\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_\n\n---------\n\nCo-authored-by: Colton White <whitcolt@amazon.com>\nCo-authored-by: Caymon / Kayo <24500457+giantcow@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix: Fixing incorrect usage of searchRegion and searchAccount (#708)",
          "author_name": "Colton White",
          "author_login": "bigbadtrumpet",
          "committed_at": "2026-02-23T06:10:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9226d28f9c536f85f68df46f871dd4d56223f732",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/22288603087\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#709)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-02-23T00:25:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f6d34cc388b6219677fff1f9d6760de621e5b2db",
          "body": "Fixes a naming inconsistency in the CloudFront metric factory by\nchanging the request count metric label from \"Uploaded\" to \"Requests.\"\nDue to [special handling in the `toRate` method on\n`MetricFactory`](https://github.com/cdklabs/cdk-monitoring-constructs/blob/7a613f24f379d6997ca2ef518411a5b04b8a60\n[…]\n rate metrics to \"TPS.\"\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_\n\nCo-authored-by: Colton White <coltonawhite@gmail.com>",
          "is_bot": false,
          "headline": "fix(cloudfront): correct requests metric label (#703)",
          "author_name": "Drew Davis",
          "author_login": "typeparameter",
          "committed_at": "2026-02-19T23:05:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9e945c5e30946249ef945772ab78dff8bf2950a3",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/22097566430\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#705)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-02-17T12:03:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aa8299c3a546d049ac865f8979b075943501cbfb",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/21808151890\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#704)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-02-09T00:26:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7a613f24f379d6997ca2ef518411a5b04b8a60e5",
          "body": "…ported (#702)\n\nFixes #701 \n\n`monitorNetworkLoadBalancer` always renders the Task Health widgets,\neven in case of `ALB` target types for which the `HealthyHostCount`\nmetrics are not supported\n(https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html).\nIn \n[…]\nor NLB monitoring.\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_\n\n---------\n\nCo-authored-by: Milosz Watroba <miw@amazon.com>",
          "is_bot": false,
          "headline": "fix(loadbalancing): do not display NLB task health widgets if not sup…",
          "author_name": "Milosz Watroba",
          "author_login": "miloszwatroba",
          "committed_at": "2026-02-06T21:11:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6105a93b9265161e66c05bfabb572586bd328a1b",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/21573077552\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#700)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-02-02T00:25:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "14f8a9dca4815084b0d425aac986a24ccf60f6f8",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/21342145137\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#698)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-01-26T00:23:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "383175a41a205fd5dcb9dedc37ca41c1bdec8d47",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/21121146956\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#696)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-01-19T00:22:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b9d57286b0a0d83c6de20ad993bacaf311694725",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/20904310228\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#695)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-01-12T00:22:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "464e0e86ab66c4ddbac7fe2192dc532dc8753311",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/20701386138\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#694)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2026-01-05T00:23:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4a99f0ac45cbf3ad245646365b2336888b43502f",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/20561600793\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#693)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2025-12-29T00:22:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ff12619b9be7c8d3c12ea046a7618f47f41d132",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/20418022210\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#692)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2025-12-22T00:22:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1e30170f190a159221bf3fb01445d6ea2347b4f3",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/20216469003\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#689)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2025-12-15T00:22:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b69e97aa80707d6e84fbe1807fed4a82e9bd69e1",
          "body": "This is probably the smarter way of changing the constructor param types\nrather than just having an entirely new class.\n\n---\n\nExample change to replace deprecated constructor usage:\n\n```diff\nnew KeyValueTableWidget([\n-  [\"foo\", \"bar\"],\n+  { key: \"foo\", value: \"bar\" },\n-  [\"baz\", \"qux\"],\n+  { key: \"b\n[…]\nalue: \"qux\" },\n]);\n```\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_\n\nCo-authored-by: arkon <arkon@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: merge KeyValueTableWidget and KeyValueTableWidgetV2 (#688)",
          "author_name": "arkon",
          "author_login": "arkon",
          "committed_at": "2025-12-11T04:14:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "61156bf75eb80b444c23b546a4f706d3a1f210f3",
          "body": "This is extracted from #686 and an incremental step towards upgrading to\nJSII@5.x.\n\nThis introduces new types to replace the usage of the generic type that\nneeds to be removed since JSII@5.x doesn't support generics as part of\nconstructs' APIs.\n\nThis does kind of spam new interfaces into the API, bu\n[…]\nibution is made\nunder the terms of the Apache-2.0 license_\n\n---------\n\nCo-authored-by: arkon <arkon@users.noreply.github.com>\nCo-authored-by: Caymon / Kayo <24500457+giantcow@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: introduce replacement types for aspect (#687)",
          "author_name": "arkon",
          "author_login": "arkon",
          "committed_at": "2025-12-10T01:30:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "82128bb55754e2ad97b9048c564d9d40e4b41cdd",
          "body": "The behaviour \"conflicts\" with the later added XAXR support. We more\nexplicitely check for the relevant ACL scope now rather than just the\nprescence of now ubiquitous \"region\" prop.\n\nFixes #681\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_\n\nCo-authored-by: arkon <arkon@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix(wafv2): don't include Region dimension for CLOUDFRONT ACLs (#683)",
          "author_name": "arkon",
          "author_login": "arkon",
          "committed_at": "2025-12-08T23:14:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "51cb629872638b6b95baf065b5aaaecf5d750075",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/20012637263\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#685)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2025-12-08T00:21:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b3769ce4f00ffb5094420c05810383c68051d416",
          "body": "Fixes #676\n\nAdds support for monitoring Serverless Elasticache.\n\nGenerated widget would look like:\n\n```\n\n┌─────────────────────────────────────────────────────────────┐\n│  Title Widget: \"Serverless ElastiCache - {cluster name}\"   │                                                                     \n[…]\nt, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_\n\n---------\n\nCo-authored-by: Ashish Gupta <ashugpta@amazon.com>\nCo-authored-by: Momo Kornher <kornherm@amazon.co.uk>",
          "is_bot": false,
          "headline": "feat(ElastiCache): add support for serverless cache (#677)",
          "author_name": "Ashish Gupta",
          "author_login": "Ashish0804",
          "committed_at": "2025-12-07T00:41:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2c6b9e71a0c3ac6a5f6b0f3ce26dc63bd44424db",
          "body": "Ideally at some point, the project needs to get to newer versions of\nTS/JSII/etc., but that's a more dramatic set of changes.\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_\n\nCo-authored-by: arkon <arkon@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix(build): resolve to older version of types (#682)",
          "author_name": "arkon",
          "author_login": "arkon",
          "committed_at": "2025-12-07T00:33:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "506a283c314630da17b1d5a13ac27fb1ab005d39",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/19807106808\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#680)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2025-12-01T00:20:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "47d1b35a5b25ad392561a794627c892efeea4dd2",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/19619515153\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#679)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2025-11-24T00:18:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "471ce7094a0ded1c5d76393cfea7e0b6c5b7f603",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/19414363507\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#678)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2025-11-17T00:29:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8cee037266332210a5a089f78fc1ca38e218879f",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/19216663518\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#675)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2025-11-10T00:18:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a9d1dfcb2ff598451e0b734da8882dda25a1d220",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/19020287923\n\n------\n\n*Automatically created by projen via the \"upgrade-dev-deps-main\"\nworkflow*\n\nSigned-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dev dependencies (#673)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2025-11-03T00:17:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bfe1831769da42997bce33630b87ae5ceb779109",
          "body": "Fixes failing releases.\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "chore: upgrade projen and repo config to latest version (#672)",
          "author_name": "Momo Kornher",
          "author_login": "mrgrain",
          "committed_at": "2025-10-31T11:02:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "696804ea21a1e5fb481cc08a86b7cb8ad295071a",
          "body": "…nd add Full Restart Rate monitoring (#668)\n\n### Changes\n\n**Fixed Checkpoint Failure Rate**\n- Replaced manual rate calculation with CloudWatch's native RATE()\nfunction\n- Changed from (3600 * checkpoints) / PERIOD(checkpoints) to\nRATE(numberOfFailedCheckpoints)\n\n**Added Full Restart Rate Monitoring**\n[…]\nalarms\n- Added test coverage for new functionality\n- All 5 alarms now supported (was 4)\n\nProvides more accurate rate monitoring and better insights into Kinesis\nData Analytics application performance.",
          "is_bot": false,
          "headline": "feat(kinesisdataanalytics): Fix Checkpoint Failure Rate calculation a…",
          "author_name": "costmatt-amzn",
          "author_login": "costmatt-amzn",
          "committed_at": "2025-10-29T03:28:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4254fbf6e5145b1ea5c71d8858df83628a31c7fa",
          "body": "…s (#664)\n\nDocs:\nhttps://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_cloudwatch.GraphWidgetProps.html#setperiodtotimerange\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "fix(widget): show values from entire time range for bar and pie chart…",
          "author_name": "Eugene Cheung",
          "author_login": null,
          "committed_at": "2025-08-19T18:28:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d400bfb842ebdee42deccbf97070a7289ebdbc37",
          "body": "Fixes #\nIn the previous PR where I added monitoring for network egress ingress I\nstarted setting color to 'Total Network In\" unfortunately this is not\ncaught during test or synthesis but only during deployment, and I only\ndid e2e testing for ASG monitoring.\n\n\n<img width=\"1795\" height=\"672\" alt=\"per-\n[…]\n/>\n\n\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_\n\n---------\n\nCo-authored-by: Jerzy 'Cedric' Zagorski <jzagorsk@amazon.com>",
          "is_bot": false,
          "headline": "fix:  monitorEc2Instances for instanceId list failing  (#663)",
          "author_name": "xendo",
          "author_login": "xendo",
          "committed_at": "2025-08-19T15:36:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4e6f2ffbf5893039f553c38d941f7328ad4d18fd",
          "body": "This PR adds checkpoint alarms for Kinesis Data Analytics monitoring.",
          "is_bot": false,
          "headline": "feat(kinesisdataanalytics): Add alarms for Checkpoints (#661)",
          "author_name": "costmatt-amzn",
          "author_login": "costmatt-amzn",
          "committed_at": "2025-08-15T20:38:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "27ae4086fa5d453481e68a11a9993861dc15c540",
          "body": "…s (#660)\n\nCloses #335\n\nExamples:\n<img width=\"1656\" height=\"528\" alt=\"Screenshot 2025-08-14 at 11 50 30\"\nsrc=\"https://github.com/user-attachments/assets/c3dac59d-db96-4bcc-8cd9-a670289ae2c8\"\n/>\n<img width=\"1654\" height=\"290\" alt=\"Screenshot 2025-08-14 at 11 50 39\"\nsrc=\"https://github.com/user-attachments/assets/dd824f03-e5d6-4f33-a357-52631768e6c1\"\n/>\n\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "feat(opensearchserverless): add monitoring for Collections and Indice…",
          "author_name": "Eugene Cheung",
          "author_login": null,
          "committed_at": "2025-08-15T13:39:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f9b64e669877e17ab7f2e30360082652a59e4083",
          "body": "Adding network egress and ingress monitoring to the EC2Monitoring.\n\nThis partially addresses:\nhttps://github.com/cdklabs/cdk-monitoring-constructs/issues/515\n\nI tested this by deploying to my infrastructure and eyeballing the\ndashboard and alarms from the console\n\n```\nmonitoring.monitorEC2Instances(\n[…]\nes #\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_\n\n---------\n\nCo-authored-by: Jerzy 'Cedric' Zagorski <jzagorsk@amazon.com>",
          "is_bot": false,
          "headline": "feat: add EC2Monitoring for network ingress/egress (#658)",
          "author_name": "xendo",
          "author_login": "xendo",
          "committed_at": "2025-08-14T20:59:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "525411f7a4c74d044722c31fa4e4d91b09031929",
          "body": "Example:\n<img width=\"1650\" height=\"288\" alt=\"Screenshot 2025-08-14 at 11 20 04\"\nsrc=\"https://github.com/user-attachments/assets/e6d99e37-cab9-4f98-ae54-596d0297972e\"\n/>\n\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "feat(osis): add monitoring for OpenSearch Ingestion pipelines (#659)",
          "author_name": "Eugene Cheung",
          "author_login": null,
          "committed_at": "2025-08-14T17:21:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "327eab645a93f361c38514ee869de2d6567f1820",
          "body": "## Add RDS Cluster IOPS and Latency Monitoring Support\n\n### Changes\n- **RdsClusterMetricFactory**: Added `metricReadIOPS()` and\n`metricWriteIOPS()` methods with proper role-based dimensions\n- **RdsClusterMonitoring**: Added latency alarms for all query types\n(Select, Insert, Update, Delete, Commit) \n[…]\n\n### Breaking Changes\nNone - all changes are additive and backward compatible.\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "feat(rds): Add support for IOPS and Latency alarms (#657)",
          "author_name": "costmatt-amzn",
          "author_login": "costmatt-amzn",
          "committed_at": "2025-08-14T17:21:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3c7227a593f00379cc06371fa9866cf0e2f4909a",
          "body": "… groups (#656)\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "feat: replace deprecated logRetention usages with explicit Lambda log…",
          "author_name": "Eugene Cheung",
          "author_login": null,
          "committed_at": "2025-07-30T22:07:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5880e64c59a9678425e641eec1af6f54c0db3eb8",
          "body": null,
          "is_bot": false,
          "headline": "chore: update to use new Maven endpoint (#650)",
          "author_name": "Rico Hermans",
          "author_login": "rix0rrr",
          "committed_at": "2025-05-30T10:49:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "72da8fd182a342f601c80c9cf1701aa1d9a5bdbd",
          "body": "Fixes https://github.com/cdklabs/cdk-monitoring-constructs/issues/645\n\nImplement what was described in the issue.\n\n![image](https://github.com/user-attachments/assets/5fa11ccf-87fb-4793-b9b5-6fabae7d3151)\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "feat(lambda): fix calculation on function cost (#647)",
          "author_name": "Laxenade",
          "author_login": "Laxenade",
          "committed_at": "2025-05-21T18:26:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "84e95279535667fd9269b76b0465b055641bec4b",
          "body": "…log queries (#644)\n\nIntroduces `filterExpressions: string[]` as an additional option to filter logs\n\nFixes #643 \n\n---\n\n_By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "feat(LogMonitoring): Added filterExpressions to enable advanced JSON …",
          "author_name": "Fethi Ozdol",
          "author_login": "fethiozdol",
          "committed_at": "2025-05-20T15:24:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c29d3da063c0ac17b2a833c2a118324a8b7f92cb",
          "body": "Fixes https://github.com/cdklabs/cdk-monitoring-constructs/issues/462\n\nAdd `init_duration` to `LambdaFunctionMonitoring`. Monitoring INIT has\nbecome increasingly important due to:\n\n1. Lambda now bills for the INIT phase.\n[Blog](https://aws.amazon.com/blogs/compute/aws-lambda-standardizes-billing-for\n[…]\ns://github.com/user-attachments/assets/5e0b53ce-304c-4ae6-94ff-e2d1e30b05ad\"\n/>\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "feat(lambda): Add widget and alarms on init duration (#646)",
          "author_name": "Laxenade",
          "author_login": "Laxenade",
          "committed_at": "2025-05-20T15:09:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cf1aaded92823800080f0533fa3ef5ac9ea4012d",
          "body": "Fixes https://github.com/cdklabs/cdk-monitoring-constructs/issues/391\n\nNot sure if this change is really needed — I’ve been creating dashboards with variables by just grabbing the underlying dashboards and attaching variables that way. That said, it’s a nice cleanup and does make the code a bit cleaner. Totally fine to close the PR if you don’t think it’s worth it.\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "feat(dashboard): add support for dashboard variables (#639)",
          "author_name": "Laxenade",
          "author_login": "Laxenade",
          "committed_at": "2025-05-02T13:33:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1b39b7c95d81c80f47cb3888763450266ad825a4",
          "body": "…ndlers instead (#641)\n\n`NODEJS_LATEST` still points to Node.js 18, which is already EOL.\n\nRelated upstream issue: https://github.com/aws/aws-cdk/issues/28125\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "feat: use dynamically determined latest Node.js runtime for Lambda ha…",
          "author_name": "Eugene Cheung",
          "author_login": null,
          "committed_at": "2025-05-01T20:54:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7b7d081097ef4a87fbb218e00f42304fb6220a07",
          "body": "Closes #550\n\nAdd support for `TableWidget` in dashboards.\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_\n\nCo-authored-by: Danny Zhao <zikangz@amazon.com>",
          "is_bot": false,
          "headline": "feat(widget): add TABLE widget type (#638)",
          "author_name": "Laxenade",
          "author_login": "Laxenade",
          "committed_at": "2025-04-28T15:01:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eee95818460077bd7e59fdad6506fdaed2ef603e",
          "body": "…y wrapped (#637)\n\nThis change splits the namespaces to wrap them individually.\n\nFixes #623\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_\n\nCo-authored-by: Martin Sommer <mtsommer@amazon.com>",
          "is_bot": false,
          "headline": "fix(MetricFactory): Metric Search with multiple namespaces are wrongl…",
          "author_name": "GeeK",
          "author_login": "SeeSharpSoft",
          "committed_at": "2025-04-14T21:01:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a686e1fc510193c8440eba028beb3a6638ffdf98",
          "body": "Closes #631\n\n---\n\n### Summary\n\nThe changes in this pull request implement [a feature to clone conservative ticketing alarms to be more aggressive for rollback alarms](https://github.com/cdklabs/cdk-monitoring-constructs/issues/631). `MonitoringFacade` introduces the capability to specify that all mo\n[…]\nre to a personal account and manually verified it created the expected alarms.\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "feat: add ability to clone monitors (#632)",
          "author_name": "Kyle Peter Fritz",
          "author_login": "kfritz",
          "committed_at": "2025-04-10T19:08:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "18c6bb3ac2bba5b1553e93b142cbae7223eeb00e",
          "body": "---\n\n_By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "chore(docs): add more info about available actions in README (#635)",
          "author_name": "Eugene Cheung",
          "author_login": null,
          "committed_at": "2025-04-09T14:53:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b2f9e5dbdfea8f3f2ba263cb693e8bf6460cf492",
          "body": "Node.js 18 will be blocked later this year.\n\nSee https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "fix: use latest Node.js runtime for utility Lambda functions (#634)",
          "author_name": "Eugene Cheung",
          "author_login": null,
          "committed_at": "2025-04-08T18:25:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "911f5a0cbbfe640d40dc1b7dca179af07854f6fb",
          "body": "…621)\n\nFixes #567 \n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "feat(lambda): allow latency alarms to be based on function timeout (#…",
          "author_name": "Amin Fazl",
          "author_login": "AminFazlMondo",
          "committed_at": "2025-03-31T13:30:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3991ec84981064adf06400b10af36fc799248595",
          "body": "…pect localAlarmNamePrefixOverride (#629)\n\nFixes #628\n\nThis change passes the BaseMonitoringProps passed into\nDynamoTableGlobalSecondaryIndexMonitoring along to the super class\nconstructor, which exposes `localAlarmNamePrefixOverride` to be consumed\nby Monitoring.createAlarmFactory. Additionally, th\n[…]\nng the default naming behavior. (i.e. including table name\nin the alarm name).\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "fix(dynamo): adjusts DynamoTableGlobalSecondaryIndexMonitoring to res…",
          "author_name": "Hal Jarrett",
          "author_login": "haljarrett",
          "committed_at": "2025-03-31T13:29:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0b2bee627bc73ba115bdf96dddc207aca4bbf2a0",
          "body": "…op (#627)\n\nThe conversions widget is useless for any Firehose which doesn't have\ndata format conversions enabled.\n\nDefault is true for backwards compatability.\n\nImplementation is based on the similar `isIterator` parameter for Lambda\nFunctions.\n\nNote that the AWS docs are not consistent about what \n[…]\ns repo's\ntesting approach.\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made\nunder the terms of the Apache-2.0 license_\n\nCo-authored-by: Paul Sinclair <pssincl@amazon.com>",
          "is_bot": false,
          "headline": "feat(KinesisFirehoseMonitoring): add isDataFormatConversionEnabled pr…",
          "author_name": "Paul Sinclair",
          "author_login": "pbsinclair42",
          "committed_at": "2025-03-26T18:06:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f50190586d8fbf03fef66ec34f65603ec2aa0a70",
          "body": "…naming strategy (#625)\n\nThis can be useful if you want to name the alarm based on properties of the action being applied.\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "feat(AlarmFactory): allow accessing action strategy as part of alarm …",
          "author_name": "Eugene Cheung",
          "author_login": null,
          "committed_at": "2025-03-21T14:08:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d473fd0657fa9d0ad7891af10279cb26524f5d63",
          "body": "So we can fully remove these later.\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "chore: replace usages of deprecated TPS metric methods (#620)",
          "author_name": "Eugene Cheung",
          "author_login": null,
          "committed_at": "2025-03-20T23:16:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "09f66a7d3060f31956febc8d5cf5628e31be468a",
          "body": "…d (#622)\n\nAddresses a gap where the deduplication string wasn’t easily customizable via typical facade usage. It can be customized using dedupeStringOverride, but this overrides the entire deduplication string. Since alarm name prefixes (globalPrefix, localPrefix in AlarmNamingStrategy) are usually\n[…]\nally constructed by concatenating prefixes passed as parameters to the facade.\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "feat: Allow specifying alarmDedupeStringSuffix in CustomAlarmThreshol…",
          "author_name": "slawek-amzn",
          "author_login": "slawek-amzn",
          "committed_at": "2025-03-20T17:14:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "53a5c03122cb36e4e4f3442ab21c5de9a9a2d863",
          "body": "…619)\n\nAs noted in https://aws.github.io/jsii/compiler-and-rosetta-maintenance/#how-difficult-is-it-to-migrate-from-1x-to-50x, tuples aren't supported with jsii@5.\n\n`KeyValueTableWidget` will be removed in a future version for the upgrade.\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "feat: create jsii@5 compatible replacement for KeyValueTableWidget (#…",
          "author_name": "Eugene Cheung",
          "author_login": null,
          "committed_at": "2025-02-05T15:47:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "59bc23709eafe70a40a3bc2a30ab82ecaccd082f",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]: https://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/12458969299\n\n------\n\n*Automatically created by projen via the \"upgrade-main\" workflow*",
          "is_bot": false,
          "headline": "chore(deps): upgrade dependencies (#613)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2024-12-23T15:23:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8b50140bd40a370815d2761a75e5c2f42422242b",
          "body": "Adds them to the metric in adaptMetric if they are present in\r\nglobalDefault\r\n\r\n---\r\n\r\n_By submitting this pull request, I confirm that my contribution is made\r\nunder the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "fix: Global Default Region and Account not set in certain metrics (#615)",
          "author_name": "umardab-amzn",
          "author_login": "umardab-amzn",
          "committed_at": "2024-12-18T14:51:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "54d6a06126645ee848f5564062001c06bcfd0ca7",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]: https://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/12226655446\n\n------\n\n*Automatically created by projen via the \"upgrade-main\" workflow*",
          "is_bot": false,
          "headline": "chore(deps): upgrade dependencies (#611)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2024-12-09T00:33:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dc1edac60837a68a81b9692de292f9cf64e87840",
          "body": "…fV2 alarms (#609)\n\nFixes #607\n\nAlso replaces some things marked as deprecated in the unit tests just to make it less noisy.\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "fix(MonitoringAspect): allow specifying CloudFrontDistribution and Wa…",
          "author_name": "Eugene Cheung",
          "author_login": null,
          "committed_at": "2024-12-07T00:29:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a397b93c4a6b835fb9fad7af7d21bb1cff609898",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]: https://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/12110447183\n\n------\n\n*Automatically created by projen via the \"upgrade-main\" workflow*",
          "is_bot": false,
          "headline": "chore(deps): upgrade dependencies (#604)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2024-12-02T00:33:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d0bd841fb738fa0674381627036a84040b0c63e6",
          "body": "Upgrades project dependencies. See details in [workflow run].\n\n[Workflow Run]: https://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/12000946196\n\n------\n\n*Automatically created by projen via the \"upgrade-main\" workflow*",
          "is_bot": false,
          "headline": "chore(deps): upgrade dependencies (#603)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2024-11-25T00:32:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "934b13a51fc647418e236b2c6bc2c4e7b2986823",
          "body": "Upgrades project dependencies. See details in [workflow run].\r\n\r\n[Workflow Run]:\r\nhttps://github.com/cdklabs/cdk-monitoring-constructs/actions/runs/11883528858\r\n\r\n------\r\n\r\n*Automatically created by projen via the \"upgrade-main\" workflow*\r\n\r\nSigned-off-by: github-actions <github-actions@github.com>\r\nCo-authored-by: github-actions <github-actions@github.com>",
          "is_bot": false,
          "headline": "chore(deps): upgrade dependencies (#601)",
          "author_name": "cdklabs-automation",
          "author_login": "cdklabs-automation",
          "committed_at": "2024-11-18T14:54:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f27e485d77469a97da47faf9088b9dc705fe25f9",
          "body": "Bumps [@eslint/plugin-kit](https://github.com/eslint/rewrite) from 0.2.2\r\nto 0.2.3.\r\n<details>\r\n<summary>Release notes</summary>\r\n<p><em>Sourced from <a\r\nhref=\"https://github.com/eslint/rewrite/releases\"><code>@​eslint/plugin-kit</code>'s\r\nreleases</a>.</em></p>\r\n<blockquote>\r\n<h2>plugin-kit: v0.2.3\n[…]\nabs/cdk-monitoring-constructs/network/alerts).\r\n\r\n</details>\r\n\r\nSigned-off-by: dependabot[bot] <support@github.com>\r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump @eslint/plugin-kit from 0.2.2 to 0.2.3 (#600)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2024-11-15T22:13:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1f8ca082a122af8775f01be2d30c92c3de1344a1",
          "body": "Closes #560\n\n---\n\n_By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license_",
          "is_bot": false,
          "headline": "feat: support Lambda actions (#597)",
          "author_name": "Eugene Cheung",
          "author_login": null,
          "committed_at": "2024-11-13T17:29:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 72,
      "latest_release_at": "2026-07-20T22:59:15Z",
      "latest_release_tag": "v10.2.0",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 42,
      "days_since_latest_release": 6,
      "mean_days_between_releases": 16.4
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 87,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "cdk-monitoring-constructs",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "cdk",
            "cloudwatch",
            "monitoring"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/cdk-monitoring-constructs",
          "is_deprecated": false,
          "latest_version": "10.2.0",
          "repository_url": "https://github.com/cdklabs/cdk-monitoring-constructs",
          "versions_count": 312,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 292223,
          "first_published_at": "2022-02-25T09:38:36.148000Z",
          "latest_published_at": "2026-07-20T22:57:34.891000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        }
      ]
    },
    "popularity": {
      "forks": 86,
      "stars": 552,
      "watchers": 23,
      "fork_history": {
        "days": [
          {
            "date": "2022-02-25",
            "count": 1
          },
          {
            "date": "2022-03-08",
            "count": 1
          },
          {
            "date": "2022-03-25",
            "count": 1
          },
          {
            "date": "2022-04-06",
            "count": 1
          },
          {
            "date": "2022-04-19",
            "count": 1
          },
          {
            "date": "2022-05-13",
            "count": 1
          },
          {
            "date": "2022-07-19",
            "count": 1
          },
          {
            "date": "2022-08-02",
            "count": 1
          },
          {
            "date": "2022-08-22",
            "count": 1
          },
          {
            "date": "2022-08-26",
            "count": 1
          },
          {
            "date": "2022-09-08",
            "count": 1
          },
          {
            "date": "2022-09-20",
            "count": 1
          },
          {
            "date": "2022-10-10",
            "count": 1
          },
          {
            "date": "2022-10-21",
            "count": 1
          },
          {
            "date": "2022-11-14",
            "count": 1
          },
          {
            "date": "2022-11-30",
            "count": 1
          },
          {
            "date": "2022-12-07",
            "count": 1
          },
          {
            "date": "2022-12-08",
            "count": 1
          },
          {
            "date": "2023-01-05",
            "count": 1
          },
          {
            "date": "2023-01-22",
            "count": 1
          },
          {
            "date": "2023-01-24",
            "count": 1
          },
          {
            "date": "2023-02-01",
            "count": 1
          },
          {
            "date": "2023-02-14",
            "count": 1
          },
          {
            "date": "2023-03-06",
            "count": 1
          },
          {
            "date": "2023-03-12",
            "count": 1
          },
          {
            "date": "2023-03-28",
            "count": 1
          },
          {
            "date": "2023-04-10",
            "count": 1
          },
          {
            "date": "2023-04-18",
            "count": 1
          },
          {
            "date": "2023-04-28",
            "count": 1
          },
          {
            "date": "2023-05-31",
            "count": 1
          },
          {
            "date": "2023-06-15",
            "count": 1
          },
          {
            "date": "2023-07-28",
            "count": 1
          },
          {
            "date": "2023-08-09",
            "count": 1
          },
          {
            "date": "2023-08-22",
            "count": 1
          },
          {
            "date": "2023-08-26",
            "count": 1
          },
          {
            "date": "2023-08-30",
            "count": 1
          },
          {
            "date": "2023-10-19",
            "count": 1
          },
          {
            "date": "2023-10-20",
            "count": 1
          },
          {
            "date": "2023-11-03",
            "count": 1
          },
          {
            "date": "2023-11-09",
            "count": 1
          },
          {
            "date": "2023-12-12",
            "count": 1
          },
          {
            "date": "2024-01-05",
            "count": 1
          },
          {
            "date": "2024-01-25",
            "count": 1
          },
          {
            "date": "2024-02-21",
            "count": 1
          },
          {
            "date": "2024-03-06",
            "count": 1
          },
          {
            "date": "2024-03-08",
            "count": 1
          },
          {
            "date": "2024-04-30",
            "count": 1
          },
          {
            "date": "2024-05-01",
            "count": 1
          },
          {
            "date": "2024-05-03",
            "count": 1
          },
          {
            "date": "2024-05-06",
            "count": 1
          },
          {
            "date": "2024-05-07",
            "count": 1
          },
          {
            "date": "2024-07-01",
            "count": 1
          },
          {
            "date": "2024-07-14",
            "count": 1
          },
          {
            "date": "2024-07-23",
            "count": 1
          },
          {
            "date": "2024-08-19",
            "count": 1
          },
          {
            "date": "2024-08-20",
            "count": 1
          },
          {
            "date": "2024-08-26",
            "count": 1
          },
          {
            "date": "2024-09-17",
            "count": 1
          },
          {
            "date": "2024-10-11",
            "count": 1
          },
          {
            "date": "2024-10-16",
            "count": 1
          },
          {
            "date": "2024-10-19",
            "count": 1
          },
          {
            "date": "2024-10-28",
            "count": 1
          },
          {
            "date": "2024-10-29",
            "count": 1
          },
          {
            "date": "2024-11-14",
            "count": 1
          },
          {
            "date": "2024-12-18",
            "count": 1
          },
          {
            "date": "2024-12-20",
            "count": 1
          },
          {
            "date": "2025-02-20",
            "count": 1
          },
          {
            "date": "2025-03-06",
            "count": 1
          },
          {
            "date": "2025-03-24",
            "count": 2
          },
          {
            "date": "2025-03-26",
            "count": 1
          },
          {
            "date": "2025-03-28",
            "count": 1
          },
          {
            "date": "2025-04-14",
            "count": 1
          },
          {
            "date": "2025-04-30",
            "count": 1
          },
          {
            "date": "2025-05-14",
            "count": 1
          },
          {
            "date": "2025-08-13",
            "count": 2
          },
          {
            "date": "2025-09-04",
            "count": 1
          },
          {
            "date": "2025-10-31",
            "count": 1
          },
          {
            "date": "2025-11-13",
            "count": 1
          },
          {
            "date": "2026-01-27",
            "count": 1
          },
          {
            "date": "2026-03-08",
            "count": 1
          },
          {
            "date": "2026-04-01",
            "count": 1
          },
          {
            "date": "2026-05-21",
            "count": 1
          },
          {
            "date": "2026-06-10",
            "count": 1
          },
          {
            "date": "2026-07-27",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 86,
        "total_forks": 86
      },
      "star_history": null,
      "open_issues_and_prs": 67
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [
        "test/assets/schema.graphql"
      ],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 33758,
      "source_files_sampled": 304,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "aws-cdk-lib",
            "direct": false,
            "version": "2.160.0",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.3,
            "advisory_ids": [
              "GHSA-464c-974j-9xm6",
              "GHSA-5pq3-h73f-66hr",
              "GHSA-999r-qq7v-r334",
              "GHSA-qq4x-c6h6-rfxh",
              "GHSA-v4mq-x674-ff73",
              "GHSA-vcrf-j523-4mrf"
            ],
            "fixed_version": "2.260.0",
            "advisory_count": 6,
            "oldest_advisory_days": 555
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.16",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-mh99-v99m-4gvg"
            ],
            "fixed_version": "5.0.8",
            "advisory_count": 1,
            "oldest_advisory_days": 2
          },
          {
            "name": "fast-uri",
            "direct": false,
            "version": "3.1.2",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-4c8g-83qw-93j6",
              "GHSA-v2hh-gcrm-f6hx"
            ],
            "fixed_version": "4.1.1",
            "advisory_count": 2,
            "oldest_advisory_days": 5
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "3.14.1",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-52cp-r559-cp3m",
              "GHSA-h67p-54hq-rp68",
              "GHSA-mh29-5h37-fv8m"
            ],
            "fixed_version": "4.3.0",
            "advisory_count": 3,
            "oldest_advisory_days": 255
          },
          {
            "name": "uuid",
            "direct": false,
            "version": "8.3.2",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-w5hq-g745-h8pq"
            ],
            "fixed_version": "13.0.1",
            "advisory_count": 1,
            "oldest_advisory_days": 95
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "8.17.1",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 5.3,
            "advisory_ids": [
              "GHSA-2g4f-4pwh-qvx6"
            ],
            "fixed_version": "8.18.0",
            "advisory_count": 1,
            "oldest_advisory_days": 165
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "1.10.2",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 4.3,
            "advisory_ids": [
              "GHSA-48c2-rrv3-qjmp"
            ],
            "fixed_version": "2.8.3",
            "advisory_count": 1,
            "oldest_advisory_days": 123
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "2.8.1",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 4.3,
            "advisory_ids": [
              "GHSA-48c2-rrv3-qjmp"
            ],
            "fixed_version": "2.8.3",
            "advisory_count": 1,
            "oldest_advisory_days": 123
          },
          {
            "name": "@tootallnate/once",
            "direct": false,
            "version": "1.1.2",
            "severity": "low",
            "ecosystem": "npm",
            "cvss_score": 3.3,
            "advisory_ids": [
              "GHSA-vpq2-c234-7xj6"
            ],
            "fixed_version": "3.0.1",
            "advisory_count": 1,
            "oldest_advisory_days": 146
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "low": 1,
          "high": 5,
          "moderate": 3
        },
        "advisory_count": 17,
        "affected_count": 9,
        "assessed_count": 787,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@aws-cdk/asset-awscli-v1",
            "direct": false,
            "version": "2.2.215",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-cdk/asset-kubectl-v20",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-cdk/asset-node-proxy-agent-v6",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-cdk/aws-redshift-alpha",
            "direct": false,
            "version": "2.160.0-alpha.0",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-cdk/aws-service-spec",
            "direct": false,
            "version": "0.1.190",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-cdk/cloud-assembly-schema",
            "direct": false,
            "version": "38.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-cdk/integ-runner",
            "direct": false,
            "version": "2.203.2",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-cdk/integ-tests-alpha",
            "direct": false,
            "version": "2.262.1-alpha.0",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-cdk/service-spec-types",
            "direct": false,
            "version": "0.0.256",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/code-frame",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/compat-data",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/core",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/generator",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-compilation-targets",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-globals",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-module-imports",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-module-transforms",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-plugin-utils",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-string-parser",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-option",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helpers",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-async-generators",
            "direct": false,
            "version": "7.8.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-bigint",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-class-properties",
            "direct": false,
            "version": "7.12.13",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-class-static-block",
            "direct": false,
            "version": "7.14.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-import-attributes",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-import-meta",
            "direct": false,
            "version": "7.10.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-json-strings",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-logical-assignment-operators",
            "direct": false,
            "version": "7.10.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-nullish-coalescing-operator",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-numeric-separator",
            "direct": false,
            "version": "7.10.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-object-rest-spread",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-optional-catch-binding",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-optional-chaining",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-private-property-in-object",
            "direct": false,
            "version": "7.14.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-top-level-await",
            "direct": false,
            "version": "7.14.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-typescript",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/template",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/traverse",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@balena/dockerignore",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@bcoe/v8-coverage",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@cdklabs/tskb",
            "direct": false,
            "version": "0.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@cspotcode/source-map-support",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint-community/eslint-utils",
            "direct": false,
            "version": "4.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint-community/regexpp",
            "direct": false,
            "version": "4.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/config-array",
            "direct": false,
            "version": "0.21.2",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/config-helpers",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/core",
            "direct": false,
            "version": "0.17.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/eslintrc",
            "direct": false,
            "version": "3.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/js",
            "direct": false,
            "version": "9.39.5",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/object-schema",
            "direct": false,
            "version": "2.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/plugin-kit",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/core",
            "direct": false,
            "version": "0.19.2",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/node",
            "direct": false,
            "version": "0.16.8",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/types",
            "direct": false,
            "version": "0.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/module-importer",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/retry",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@hutson/parse-repository-url",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@iarna/toml",
            "direct": false,
            "version": "2.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "@istanbuljs/load-nyc-config",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@istanbuljs/schema",
            "direct": false,
            "version": "0.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/console",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/core",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/environment",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/fake-timers",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/globals",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/reporters",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/source-map",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/test-result",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/test-sequencer",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/transform",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/types",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/gen-mapping",
            "direct": false,
            "version": "0.3.13",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/remapping",
            "direct": false,
            "version": "2.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/resolve-uri",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/trace-mapping",
            "direct": false,
            "version": "0.3.31",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/trace-mapping",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "@jsii/check-node",
            "direct": false,
            "version": "1.139.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jsii/spec",
            "direct": false,
            "version": "1.139.0",
            "ecosystem": "npm"
          },
          {
            "name": "@nodable/entities",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.scandir",
            "direct": false,
            "version": "2.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.stat",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.walk",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "@oozcitak/dom",
            "direct": false,
            "version": "1.15.10",
            "ecosystem": "npm"
          },
          {
            "name": "@oozcitak/infra",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@oozcitak/url",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@oozcitak/util",
            "direct": false,
            "version": "8.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "@rtsao/scc",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@sinonjs/commons",
            "direct": false,
            "version": "1.8.6",
            "ecosystem": "npm"
          },
          {
            "name": "@sinonjs/fake-timers",
            "direct": false,
            "version": "8.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tootallnate/once",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tsconfig/node10",
            "direct": false,
            "version": "1.0.12",
            "ecosystem": "npm"
          },
          {
            "name": "@tsconfig/node12",
            "direct": false,
            "version": "1.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "@tsconfig/node14",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tsconfig/node16",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/babel__core",
            "direct": false,
            "version": "7.20.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/babel__generator",
            "direct": false,
            "version": "7.27.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/babel__template",
            "direct": false,
            "version": "7.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/babel__traverse",
            "direct": false,
            "version": "7.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/graceful-fs",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/istanbul-lib-coverage",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/istanbul-lib-report",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/istanbul-reports",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/jest",
            "direct": false,
            "version": "27.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/json-schema",
            "direct": false,
            "version": "7.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "@types/json5",
            "direct": false,
            "version": "0.0.29",
            "ecosystem": "npm"
          },
          {
            "name": "@types/minimist",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "18.19.130",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "26.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/normalize-package-data",
            "direct": false,
            "version": "2.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/prettier",
            "direct": false,
            "version": "2.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/stack-utils",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/yargs",
            "direct": false,
            "version": "16.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "@types/yargs-parser",
            "direct": false,
            "version": "21.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/eslint-plugin",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/parser",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/project-service",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/scope-manager",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/tsconfig-utils",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/type-utils",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/types",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/typescript-estree",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/utils",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/visitor-keys",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@xmldom/xmldom",
            "direct": false,
            "version": "0.9.10",
            "ecosystem": "npm"
          },
          {
            "name": "abab",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "7.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.17.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-globals",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-jsx",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-walk",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-walk",
            "direct": false,
            "version": "8.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "add-stream",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "agent-base",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "6.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "8.17.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-escapes",
            "direct": false,
            "version": "4.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "anymatch",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "anynum",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "arg",
            "direct": false,
            "version": "4.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "1.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "array-buffer-byte-length",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "array-ify",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "array-includes",
            "direct": false,
            "version": "3.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "array-timsort",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "array.prototype.findlastindex",
            "direct": false,
            "version": "1.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "array.prototype.flat",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "array.prototype.flatmap",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "arraybuffer.prototype.slice",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "arrify",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "astral-regex",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "async-function",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "asynckit",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "available-typed-arrays",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "aws-cdk-lib",
            "direct": false,
            "version": "2.160.0",
            "ecosystem": "npm"
          },
          {
            "name": "babel-jest",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "babel-plugin-istanbul",
            "direct": false,
            "version": "6.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "babel-plugin-jest-hoist",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "babel-preset-current-node-syntax",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "babel-preset-jest",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "baseline-browser-mapping",
            "direct": false,
            "version": "2.11.4",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.16",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "braces",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "browser-process-hrtime",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "browserslist",
            "direct": false,
            "version": "4.28.7",
            "ecosystem": "npm"
          },
          {
            "name": "bs-logger",
            "direct": false,
            "version": "0.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "bser",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-from",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind-apply-helpers",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "call-bound",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "callsites",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "camelcase",
            "direct": false,
            "version": "5.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "camelcase",
            "direct": false,
            "version": "6.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "camelcase-keys",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "caniuse-lite",
            "direct": false,
            "version": "1.0.30001806",
            "ecosystem": "npm"
          },
          {
            "name": "case",
            "direct": false,
            "version": "1.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "cdklabs-projen-project-types",
            "direct": false,
            "version": "0.3.7",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "char-regex",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "ci-info",
            "direct": false,
            "version": "3.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "cjs-module-lexer",
            "direct": false,
            "version": "1.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "7.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "clone",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "co",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "codemaker",
            "direct": false,
            "version": "1.139.0",
            "ecosystem": "npm"
          },
          {
            "name": "collect-v8-coverage",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "1.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "combined-stream",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "comment-json",
            "direct": false,
            "version": "4.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "commit-and-tag-version",
            "direct": false,
            "version": "12.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "commonmark",
            "direct": false,
            "version": "0.31.2",
            "ecosystem": "npm"
          },
          {
            "name": "compare-func",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "concat-map",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "concat-stream",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "constructs",
            "direct": false,
            "version": "10.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "constructs",
            "direct": false,
            "version": "10.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-angular",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-atom",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-codemirror",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-config-spec",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-conventionalcommits",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-core",
            "direct": false,
            "version": "5.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-ember",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-eslint",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-express",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-jquery",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-jshint",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-preset-loader",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-writer",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-commits-filter",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-commits-parser",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-recommended-bump",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "convert-source-map",
            "direct": false,
            "version": "1.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "convert-source-map",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "core-util-is",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "create-require",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "6.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "cssom",
            "direct": false,
            "version": "0.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "cssom",
            "direct": false,
            "version": "0.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "cssstyle",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "dargs",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "data-urls",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "data-view-buffer",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "data-view-byte-length",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "data-view-byte-offset",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "date-format",
            "direct": false,
            "version": "4.0.14",
            "ecosystem": "npm"
          },
          {
            "name": "dateformat",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "3.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "decamelize",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "decamelize",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "decamelize-keys",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "decimal.js",
            "direct": false,
            "version": "10.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "dedent",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "deep-is",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "deepmerge",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "define-data-property",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "define-properties",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "delayed-stream",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-indent",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-indent",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-newline",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-newline",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "diff",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "diff-sequences",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "doctrine",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "domexception",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "dot-prop",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "dotgitignore",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "dunder-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "electron-to-chromium",
            "direct": false,
            "version": "1.5.396",
            "ecosystem": "npm"
          },
          {
            "name": "emittery",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "end-of-stream",
            "direct": false,
            "version": "1.4.5",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "error-ex",
            "direct": false,
            "version": "1.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "es-abstract",
            "direct": false,
            "version": "1.24.2",
            "ecosystem": "npm"
          },
          {
            "name": "es-abstract-get",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-define-property",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-errors",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-object-atoms",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "es-set-tostringtag",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-shim-unscopables",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-to-primitive",
            "direct": false,
            "version": "1.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "escalade",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "escodegen",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint",
            "direct": false,
            "version": "9.39.5",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-config-prettier",
            "direct": false,
            "version": "8.10.2",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-import-resolver-node",
            "direct": false,
            "version": "0.3.10",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-import-resolver-typescript",
            "direct": false,
            "version": "2.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-module-utils",
            "direct": false,
            "version": "2.14.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-import",
            "direct": false,
            "version": "2.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-prettier",
            "direct": false,
            "version": "4.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-scope",
            "direct": false,
            "version": "8.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "3.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "4.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "espree",
            "direct": false,
            "version": "10.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "esprima",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "esquery",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "esrecurse",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estraverse",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "esutils",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "execa",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "execa",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "exit",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "expect",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-diff",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-glob",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-json-patch",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "fast-json-stable-stringify",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-levenshtein",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "fast-uri",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "fast-xml-builder",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-xml-parser",
            "direct": false,
            "version": "5.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "fastq",
            "direct": false,
            "version": "1.20.1",
            "ecosystem": "npm"
          },
          {
            "name": "fb-watchman",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "figures",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "file-entry-cache",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fill-range",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "flat-cache",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "flatted",
            "direct": false,
            "version": "3.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "for-each",
            "direct": false,
            "version": "0.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "form-data",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "fs-extra",
            "direct": false,
            "version": "10.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fs-extra",
            "direct": false,
            "version": "11.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "fs-extra",
            "direct": false,
            "version": "8.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fs.realpath",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "function-bind",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "function.prototype.name",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "functions-have-names",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "generator-function",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "gensync",
            "direct": false,
            "version": "1.0.0-beta.2",
            "ecosystem": "npm"
          },
          {
            "name": "get-caller-file",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "get-intrinsic",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-package-type",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-pkg-repo",
            "direct": false,
            "version": "4.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-stream",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-stream",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-symbol-description",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "git-raw-commits",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "git-remote-origin-url",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "git-semver-tags",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "gitconfiglocal",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "7.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "globals",
            "direct": false,
            "version": "14.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "globalthis",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "graceful-fs",
            "direct": false,
            "version": "4.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "handlebars",
            "direct": false,
            "version": "4.7.9",
            "ecosystem": "npm"
          },
          {
            "name": "hard-rejection",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-bigints",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-own-prop",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-property-descriptors",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "has-proto",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-symbols",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-tostringtag",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hasown",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "hosted-git-info",
            "direct": false,
            "version": "2.8.9",
            "ecosystem": "npm"
          },
          {
            "name": "hosted-git-info",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "html-encoding-sniffer",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "html-escaper",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "http-proxy-agent",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "https-proxy-agent",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "human-signals",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.4.24",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "import-fresh",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "import-local",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "imurmurhash",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "indent-string",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "inflight",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ini",
            "direct": false,
            "version": "1.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "ini",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "internal-slot",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "interpret",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-array-buffer",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "is-arrayish",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-async-function",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-bigint",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-boolean-object",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-callable",
            "direct": false,
            "version": "1.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "is-core-module",
            "direct": false,
            "version": "2.16.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-data-view",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-date-object",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-document.all",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-extglob",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-finalizationregistry",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-generator-fn",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-generator-function",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-glob",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-map",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-negative-zero",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-number",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-number-object",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-obj",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-plain-obj",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-potential-custom-element-name",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-regex",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-set",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-shared-array-buffer",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "is-stream",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-stream",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-string",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-symbol",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-text-path",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-typed-array",
            "direct": false,
            "version": "1.1.15",
            "ecosystem": "npm"
          },
          {
            "name": "is-typedarray",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-unsafe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-weakmap",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-weakref",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-weakset",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "isarray",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "isarray",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-coverage",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-instrument",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-report",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-source-maps",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-reports",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-changed-files",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-circus",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-cli",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-config",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-diff",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-docblock",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-each",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-environment-jsdom",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-environment-node",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-get-type",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-haste-map",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-jasmine2",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-junit",
            "direct": false,
            "version": "16.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-leak-detector",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-matcher-utils",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-message-util",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-mock",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-pnp-resolver",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "jest-regex-util",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-resolve",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-resolve-dependencies",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-runner",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-runtime",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-serializer",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-snapshot",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-util",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-validate",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-watcher",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-worker",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "js-tokens",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "3.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "3.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsdom",
            "direct": false,
            "version": "16.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsesc",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsii",
            "direct": false,
            "version": "5.9.48",
            "ecosystem": "npm"
          },
          {
            "name": "jsii-diff",
            "direct": false,
            "version": "1.139.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsii-docgen",
            "direct": false,
            "version": "10.12.4",
            "ecosystem": "npm"
          },
          {
            "name": "jsii-pacmak",
            "direct": false,
            "version": "1.139.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsii-reflect",
            "direct": false,
            "version": "1.139.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsii-rosetta",
            "direct": false,
            "version": "5.9.57",
            "ecosystem": "npm"
          },
          {
            "name": "json-buffer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-parse-better-errors",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "json-parse-even-better-errors",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-parse-even-better-errors",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-stable-stringify-without-jsonify",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-stream-stringify",
            "direct": false,
            "version": "3.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "json-stringify-safe",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json5",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "json5",
            "direct": false,
            "version": "2.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "jsonfile",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsonfile",
            "direct": false,
            "version": "6.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "jsonparse",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "jsonschema",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "JSONStream",
            "direct": false,
            "version": "1.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "just-diff",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "just-diff-apply",
            "direct": false,
            "version": "5.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "keyv",
            "direct": false,
            "version": "4.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "kind-of",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "kleur",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "leven",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "levn",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "lines-and-columns",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "load-json-file",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash",
            "direct": false,
            "version": "4.18.1",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.ismatch",
            "direct": false,
            "version": "4.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.memoize",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.merge",
            "direct": false,
            "version": "4.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.truncate",
            "direct": false,
            "version": "4.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "log4js",
            "direct": false,
            "version": "6.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "make-dir",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "make-error",
            "direct": false,
            "version": "1.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "makeerror",
            "direct": false,
            "version": "1.0.12",
            "ecosystem": "npm"
          },
          {
            "name": "map-obj",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "map-obj",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "math-intrinsics",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdurl",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "meow",
            "direct": false,
            "version": "8.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "merge-stream",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "merge2",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromatch",
            "direct": false,
            "version": "4.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "mime-db",
            "direct": false,
            "version": "1.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "2.1.35",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-fn",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "min-indent",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "10.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "3.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimist",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "minimist-options",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mkdirp",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "modify-values",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "natural-compare",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "neo-async",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "nice-try",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "node-exports-info",
            "direct": false,
            "version": "1.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "node-int64",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-releases",
            "direct": false,
            "version": "2.0.51",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-package-data",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-package-data",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-path",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "npm-run-path",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "npm-run-path",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "nwsapi",
            "direct": false,
            "version": "2.2.24",
            "ecosystem": "npm"
          },
          {
            "name": "object-inspect",
            "direct": false,
            "version": "1.13.4",
            "ecosystem": "npm"
          },
          {
            "name": "object-keys",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "object.assign",
            "direct": false,
            "version": "4.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "object.entries",
            "direct": false,
            "version": "1.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "object.fromentries",
            "direct": false,
            "version": "2.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "object.groupby",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "object.values",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "once",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "onetime",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "oo-ascii-tree",
            "direct": false,
            "version": "1.139.0",
            "ecosystem": "npm"
          },
          {
            "name": "optionator",
            "direct": false,
            "version": "0.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "own-keys",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "p-finally",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-try",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-try",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "parent-module",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse-conflict-json",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse-json",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse-json",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-exists",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-exists",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-expression-matcher",
            "direct": false,
            "version": "1.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "path-is-absolute",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-parse",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "path-type",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "pify",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "pify",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "pirates",
            "direct": false,
            "version": "4.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "pkg-dir",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "possible-typed-array-names",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "prelude-ls",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "prettier",
            "direct": false,
            "version": "2.8.8",
            "ecosystem": "npm"
          },
          {
            "name": "prettier-linter-helpers",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "pretty-format",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "process-nextick-args",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "projen",
            "direct": false,
            "version": "0.98.6",
            "ecosystem": "npm"
          },
          {
            "name": "prompts",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "psl",
            "direct": false,
            "version": "1.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "pump",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "punycode",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "querystringify",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "queue-microtask",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "quick-lru",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "react-is",
            "direct": false,
            "version": "17.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "read-pkg",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "read-pkg",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "read-pkg-up",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "read-pkg-up",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "readable-stream",
            "direct": false,
            "version": "2.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "readable-stream",
            "direct": false,
            "version": "3.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "rechoir",
            "direct": false,
            "version": "0.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "redent",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "reflect.getprototypeof",
            "direct": false,
            "version": "1.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "regexp.prototype.flags",
            "direct": false,
            "version": "1.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "repeat-string",
            "direct": false,
            "version": "1.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "require-directory",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "require-from-string",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "requires-port",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve",
            "direct": false,
            "version": "1.22.11",
            "ecosystem": "npm"
          },
          {
            "name": "resolve",
            "direct": false,
            "version": "1.22.12",
            "ecosystem": "npm"
          },
          {
            "name": "resolve",
            "direct": false,
            "version": "2.0.0-next.7",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-cwd",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-from",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-from",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve.exports",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "reusify",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "rfdc",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "rimraf",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "run-parallel",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "safe-array-concat",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "safe-buffer",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "safe-buffer",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "safe-push-apply",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "safe-regex-test",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "safer-buffer",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "saxes",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "5.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "6.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.8.5",
            "ecosystem": "npm"
          },
          {
            "name": "semver-intersect",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "set-function-length",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "set-function-name",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "set-proto",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-command",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-command",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-regex",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-regex",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "shelljs",
            "direct": false,
            "version": "0.9.2",
            "ecosystem": "npm"
          },
          {
            "name": "shx",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-list",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-map",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-weakmap",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "sisteransi",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "slash",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "slice-ansi",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "sort-json",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.7.6",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-support",
            "direct": false,
            "version": "0.5.21",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-correct",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-exceptions",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-expression-parse",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-license-ids",
            "direct": false,
            "version": "3.0.23",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-license-list",
            "direct": false,
            "version": "6.12.0",
            "ecosystem": "npm"
          },
          {
            "name": "split",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "split2",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "sprintf-js",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "stack-utils",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "stop-iteration-iterator",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "stream-chain",
            "direct": false,
            "version": "2.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "stream-json",
            "direct": false,
            "version": "1.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "streamroller",
            "direct": false,
            "version": "3.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "string-length",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.trim",
            "direct": false,
            "version": "1.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.trimend",
            "direct": false,
            "version": "1.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.trimstart",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "string_decoder",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "string_decoder",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-bom",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-bom",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-eof",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-final-newline",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-indent",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-json-comments",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "strnum",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "5.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "8.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "supports-hyperlinks",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-preserve-symlinks-flag",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "symbol-tree",
            "direct": false,
            "version": "3.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "table",
            "direct": false,
            "version": "6.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "terminal-link",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "test-exclude",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "text-extensions",
            "direct": false,
            "version": "1.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "throat",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "through",
            "direct": false,
            "version": "2.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "through2",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "tmpl",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "to-regex-range",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tough-cookie",
            "direct": false,
            "version": "4.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "tr46",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "trim-newlines",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ts-api-utils",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "ts-jest",
            "direct": false,
            "version": "27.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "ts-node",
            "direct": false,
            "version": "10.9.2",
            "ecosystem": "npm"
          },
          {
            "name": "tsconfig-paths",
            "direct": false,
            "version": "3.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-check",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-detect",
            "direct": false,
            "version": "4.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.18.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-buffer",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-byte-length",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-byte-offset",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-length",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "typedarray",
            "direct": false,
            "version": "0.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "typedarray-to-buffer",
            "direct": false,
            "version": "3.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "4.9.5",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "uglify-js",
            "direct": false,
            "version": "3.19.3",
            "ecosystem": "npm"
          },
          {
            "name": "unbox-primitive",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "5.26.5",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "8.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "universalify",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "universalify",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "universalify",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "update-browserslist-db",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "uri-js",
            "direct": false,
            "version": "4.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "url-parse",
            "direct": false,
            "version": "1.5.10",
            "ecosystem": "npm"
          },
          {
            "name": "util-deprecate",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "uuid",
            "direct": false,
            "version": "8.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "v8-compile-cache-lib",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "v8-to-istanbul",
            "direct": false,
            "version": "8.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "validate-npm-package-license",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "w3c-hr-time",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "w3c-xmlserializer",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "walker",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "webidl-conversions",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "webidl-conversions",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-encoding",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-mimetype",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-url",
            "direct": false,
            "version": "8.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "which-boxed-primitive",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "which-builtin-type",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "which-collection",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "which-typed-array",
            "direct": false,
            "version": "1.1.22",
            "ecosystem": "npm"
          },
          {
            "name": "word-wrap",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "wordwrap",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "workerpool",
            "direct": false,
            "version": "6.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrappy",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "write-file-atomic",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "ws",
            "direct": false,
            "version": "7.5.13",
            "ecosystem": "npm"
          },
          {
            "name": "xml",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "xml-name-validator",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "xml-naming",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "xmlbuilder",
            "direct": false,
            "version": "15.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "xmlbuilder2",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "xmlchars",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "xtend",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "y18n",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "yallist",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "yallist",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "1.10.2",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "16.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "17.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "20.2.9",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "21.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "yn",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "yocto-queue",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 787,
        "direct_count": 0,
        "indirect_count": 787
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 5,
        "merged_prs": 489,
        "open_issues": 62,
        "closed_ratio": 0.672,
        "closed_issues": 127,
        "closed_unmerged_prs": 54
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "cdklabs-automation",
          "commits": 196,
          "avatar_url": "https://avatars.githubusercontent.com/u/90142015?v=4"
        },
        {
          "type": "User",
          "login": "voho",
          "commits": 46,
          "avatar_url": "https://avatars.githubusercontent.com/u/1161187?v=4"
        },
        {
          "type": "User",
          "login": "ayush987goyal",
          "commits": 8,
          "avatar_url": "https://avatars.githubusercontent.com/u/5697227?v=4"
        },
        {
          "type": "User",
          "login": "miloszwatroba",
          "commits": 7,
          "avatar_url": "https://avatars.githubusercontent.com/u/19204604?v=4"
        },
        {
          "type": "User",
          "login": "costmatt-amzn",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/211401892?v=4"
        },
        {
          "type": "User",
          "login": "edisongustavo",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/234595?v=4"
        },
        {
          "type": "User",
          "login": "Laxenade",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/7145271?v=4"
        },
        {
          "type": "User",
          "login": "arkon",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/4098258?v=4"
        },
        {
          "type": "User",
          "login": "mrgrain",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/379814?v=4"
        },
        {
          "type": "User",
          "login": "zqumei0",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/92476851?v=4"
        }
      ],
      "contributors_sampled": 57,
      "top_contributor_share": 0.583
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "auto-approve.yml",
        "auto-queue.yml",
        "build.yml",
        "pull-request-lint.yml",
        "release.yml",
        "retry-automerge.yml",
        "upgrade-cdklabs-projen-project-types-main.yml",
        "upgrade-dev-deps-main.yml",
        "upgrade-main.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [
        ".eslintrc.json"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "yarn.lock"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 8,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 10,
            "reason": "all changesets reviewed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 6,
            "reason": "project has 2 contributing companies or organizations -- score normalized to 6",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "16 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 7,
            "reason": "SAST tool is not run on all commits -- score normalized to 7",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 5,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "16 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "a6050f6baa2dd990019823246078141d7c6e5536",
        "ran_at": "2026-07-27T17:13:07Z",
        "aggregate_score": 7,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-27T00:47:35Z",
      "oldest_open_prs": [
        {
          "number": 665,
          "created_at": "2025-09-04T15:26:08Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 691,
          "created_at": "2025-12-18T23:54:44Z",
          "last_comment_at": "2026-02-20T02:42:32Z",
          "last_comment_author": "giantcow"
        },
        {
          "number": 757,
          "created_at": "2026-07-23T23:05:00Z",
          "last_comment_at": "2026-07-25T03:01:24Z",
          "last_comment_author": "giantcow"
        },
        {
          "number": 758,
          "created_at": "2026-07-25T08:26:52Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 759,
          "created_at": "2026-07-25T23:14:18Z",
          "last_comment_at": "2026-07-26T07:11:01Z",
          "last_comment_author": "giantcow"
        }
      ],
      "last_merged_pr_at": "2026-07-27T00:37:11Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 21,
          "created_at": "2022-02-25T17:20:42Z",
          "last_comment_at": "2022-08-12T18:01:11Z",
          "last_comment_author": null
        },
        {
          "number": 25,
          "created_at": "2022-02-25T22:17:58Z",
          "last_comment_at": "2022-04-17T07:01:57Z",
          "last_comment_author": "ayush987goyal"
        },
        {
          "number": 41,
          "created_at": "2022-03-05T06:07:47Z",
          "last_comment_at": "2022-07-05T18:46:52Z",
          "last_comment_author": "RichiCoder1"
        },
        {
          "number": 44,
          "created_at": "2022-03-05T07:55:20Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 46,
          "created_at": "2022-03-05T08:08:13Z",
          "last_comment_at": "2025-04-16T20:23:18Z",
          "last_comment_author": "stocks29"
        },
        {
          "number": 50,
          "created_at": "2022-03-05T15:19:42Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 52,
          "created_at": "2022-03-05T15:26:12Z",
          "last_comment_at": "2023-07-07T18:44:12Z",
          "last_comment_author": "zqumei0"
        },
        {
          "number": 64,
          "created_at": "2022-03-08T21:02:32Z",
          "last_comment_at": "2022-07-15T19:09:09Z",
          "last_comment_author": null
        },
        {
          "number": 66,
          "created_at": "2022-03-08T21:13:16Z",
          "last_comment_at": "2022-09-07T21:41:37Z",
          "last_comment_author": "djdawson3"
        },
        {
          "number": 67,
          "created_at": "2022-03-08T21:20:22Z",
          "last_comment_at": "2023-03-20T14:10:29Z",
          "last_comment_author": null
        },
        {
          "number": 82,
          "created_at": "2022-03-23T20:02:22Z",
          "last_comment_at": "2022-03-24T08:01:53Z",
          "last_comment_author": "voho"
        },
        {
          "number": 90,
          "created_at": "2022-03-26T15:53:21Z",
          "last_comment_at": "2022-08-23T15:13:19Z",
          "last_comment_author": "voho"
        },
        {
          "number": 91,
          "created_at": "2022-03-27T19:56:20Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 120,
          "created_at": "2022-04-13T15:46:49Z",
          "last_comment_at": "2024-10-21T23:21:32Z",
          "last_comment_author": "mobob"
        },
        {
          "number": 170,
          "created_at": "2022-06-20T20:22:23Z",
          "last_comment_at": "2022-06-21T06:58:37Z",
          "last_comment_author": "voho"
        },
        {
          "number": 190,
          "created_at": "2022-07-06T15:36:04Z",
          "last_comment_at": "2022-07-07T12:27:18Z",
          "last_comment_author": "voho"
        },
        {
          "number": 193,
          "created_at": "2022-07-12T08:39:49Z",
          "last_comment_at": "2022-10-25T06:05:10Z",
          "last_comment_author": "jaco-smit"
        },
        {
          "number": 199,
          "created_at": "2022-07-20T15:17:18Z",
          "last_comment_at": "2022-08-23T15:12:12Z",
          "last_comment_author": "voho"
        },
        {
          "number": 237,
          "created_at": "2022-08-29T21:49:17Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 239,
          "created_at": "2022-09-06T17:23:06Z",
          "last_comment_at": "2022-09-13T11:49:05Z",
          "last_comment_author": "voho"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/cdklabs/cdk-monitoring-constructs",
    "host": "github.com",
    "name": "cdk-monitoring-constructs",
    "owner": "cdklabs"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 80,
      "inputs": {
        "security": 76,
        "vitality": 95,
        "community": 82,
        "governance": 70,
        "engineering": 76
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 95,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "commits_last_year": 72,
              "human_commit_share": 0.93,
              "days_since_last_push": 0,
              "active_weeks_last_year": 42
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "42/52 weeks with commits",
                "points": 29.1,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 42
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "72 commits in the last year",
                "points": 16.7,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 72
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "16 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "v10.2.0",
              "releases_from_tags": false,
              "days_since_latest_release": 6,
              "mean_days_between_releases": 16.4
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 6 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~16.4 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 16.4
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 0,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 0 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "good",
        "name": "Community & Adoption",
        "value": 82,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "forks": 86,
              "stars": 552,
              "watchers": 23,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "552 stars",
                "points": 44.5,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 552
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "86 forks",
                "points": 16.1,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 86
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "23 watchers",
                "points": 7.5,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 23
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "excellent",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 91,
            "inputs": {
              "packages": [
                "cdk-monitoring-constructs"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 292223
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "292,223 downloads/month across npm",
                "points": 72.9,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 292223,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "good",
        "name": "Sustainability & Governance",
        "value": 70,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 38,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 57,
              "top_contributor_share": 0.583
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 58% of commits",
                "points": 9.4,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 58
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "57 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 57
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 2 contributing companies or organizations -- score normalized to 6",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 81,
            "inputs": {
              "merged_prs": 489,
              "open_issues": 62,
              "closed_issues": 127,
              "issue_closed_ratio": 0.672,
              "closed_unmerged_prs": 54
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "67% of issues closed",
                "points": 31.4,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 67
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "489/543 decided PRs merged",
                "points": 34.4,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 489,
                      "decided": 543
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "all changesets reviewed",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 73,
            "inputs": {
              "followers": 431,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "cdklabs",
              "public_repos": 108,
              "account_age_days": 2065
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "431 followers of cdklabs",
                "points": 18.9,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 431,
                      "login": "cdklabs"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "108 public repos, account ~5 yr old",
                "points": 24.3,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 108
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 5
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "cdk-monitoring-constructs"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 6
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 6 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "312 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 312
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 76,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "9 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 9
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": ".eslintrc.json",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc.json"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "topics": [
                "monitoring",
                "cdk",
                "cdk-constructs",
                "cdk-construct",
                "ops",
                "aws"
              ],
              "has_wiki": false,
              "homepage": "https://constructs.dev/packages/cdk-monitoring-constructs",
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://constructs.dev/packages/cdk-monitoring-constructs",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "6 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 6
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "good",
        "name": "Security",
        "value": 76,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "good",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 70,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 7
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "all changesets reviewed",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 2 contributing companies or organizations -- score normalized to 6",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "16 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 7",
                "points": 3.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 3.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "16 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 787 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories",
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 787
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 17,
              "affected_packages": 9,
              "assessed_packages": 787,
              "unassessed_packages": 0,
              "affected_by_severity": "high 5, moderate 3, low 1",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 787,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 4
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 58,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "93 of 93 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 93,
                      "sampled": 93
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "yarn.lock"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0.07
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": ".eslintrc.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "TypeScript (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "7 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 7,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 33758,
              "source_files_sampled": 304,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "TypeScript (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/304 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 304,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [],
              "has_mcp_signal": false,
              "api_schema_files": [
                "test/assets/schema.graphql"
              ]
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": "test/assets/schema.graphql",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "test/assets/schema.graphql"
                    }
                  }
                ],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-27T17:13:39.520982Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/c/cdklabs/cdk-monitoring-constructs.svg",
  "full_name": "cdklabs/cdk-monitoring-constructs",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

Scores are signals, not warranties. They reflect publicly visible practices on GitHub — not a code audit, and not a security guarantee.

Missing data is excluded and weights renormalized, never scored as zero. Methodology is versioned and open: metrics v1.13.0, schema v0.27.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statisticsnpm.