Raw JSON report machine-readable
{
"data": {
"repo": {
"topics": [
"javascript",
"kucoin",
"kucoin-api",
"nodejs",
"typescript",
"kucoin-api-node",
"kucoin-example",
"kucoin-javascript",
"kucoin-javascript-api",
"kucoin-node-api",
"kucoin-nodejs",
"kucoin-nodejs-api",
"kucoin-rest-api",
"kucoin-typescript",
"kucoin-typescript-api",
"kucoin-websocket-api",
"kucoin-websockets"
],
"is_fork": false,
"size_kb": 1931,
"has_wiki": false,
"homepage": "https://siebly.io/sdk/kucoin/javascript",
"languages": {
"Shell": 292,
"JavaScript": 3100,
"TypeScript": 431939
},
"pushed_at": "2026-07-20T20:18:40Z",
"created_at": "2024-02-21T16:32:44Z",
"owner_type": "User",
"updated_at": "2026-07-17T16:29:52Z",
"description": "Node.js & JavaScript SDK for Kucoin REST APIs & WebSockets, with TypeScript & browser support.",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "master",
"license_spdx_raw": "MIT",
"primary_language": "TypeScript",
"significant_languages": [
"TypeScript"
]
},
"owner": {
"blog": "https://siebly.io",
"name": "Tiago",
"type": "User",
"login": "tiagosiebler",
"company": "@sieblyio ",
"location": null,
"followers": 468,
"avatar_url": "https://avatars.githubusercontent.com/u/14090872?v=4",
"created_at": "2015-09-02T10:42:59Z",
"is_verified": null,
"public_repos": 160,
"account_age_days": 3976
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v2.6.1",
"kind": "patch",
"published_at": "2026-07-17T16:33:50Z"
},
{
"tag": "v2.6.0",
"kind": "minor",
"published_at": "2026-07-16T14:40:50Z"
},
{
"tag": "v2.5.5",
"kind": "patch",
"published_at": "2026-07-07T11:19:01Z"
},
{
"tag": "v2.5.4",
"kind": "patch",
"published_at": "2026-06-19T10:26:30Z"
},
{
"tag": "v2.5.3",
"kind": "patch",
"published_at": "2026-06-08T15:11:44Z"
},
{
"tag": "v2.5.2",
"kind": "patch",
"published_at": "2026-04-28T13:49:38Z"
},
{
"tag": "v2.5.1",
"kind": "patch",
"published_at": "2026-03-10T16:36:01Z"
},
{
"tag": "v2.5.0",
"kind": "minor",
"published_at": "2026-02-09T12:02:20Z"
},
{
"tag": "v2.4.1",
"kind": "patch",
"published_at": "2026-02-04T15:56:30Z"
},
{
"tag": "v2.4.0",
"kind": "minor",
"published_at": "2026-01-30T16:38:43Z"
},
{
"tag": "v2.3.6",
"kind": "patch",
"published_at": "2026-01-27T12:14:11Z"
},
{
"tag": "v2.3.5",
"kind": "patch",
"published_at": "2026-01-15T12:06:11Z"
},
{
"tag": "v2.3.4",
"kind": "patch",
"published_at": "2025-12-29T12:40:58Z"
},
{
"tag": "v2.3.3",
"kind": "patch",
"published_at": "2025-12-18T11:44:49Z"
},
{
"tag": "v2.3.2",
"kind": "patch",
"published_at": "2025-11-17T11:49:45Z"
},
{
"tag": "v2.3.1",
"kind": "patch",
"published_at": "2025-11-14T14:28:39Z"
},
{
"tag": "v2.3.0",
"kind": "minor",
"published_at": "2025-10-02T16:12:40Z"
},
{
"tag": "v2.2.0",
"kind": "minor",
"published_at": "2025-09-22T11:18:52Z"
},
{
"tag": "v2.1.23",
"kind": "patch",
"published_at": "2025-09-15T11:25:05Z"
},
{
"tag": "v2.1.22",
"kind": "patch",
"published_at": "2025-09-12T10:35:48Z"
},
{
"tag": "v2.1.21",
"kind": "patch",
"published_at": "2025-08-12T10:47:12Z"
}
],
"recent_commits": [
{
"oid": "718e976fb9e0302413ea8351ea09b80ed9c6cfab",
"body": "chore(v2.6.1): pin ws to 8.x, remove webpack analyser and improve wsOptions type",
"is_bot": false,
"headline": "Merge pull request #148 from tiagosiebler/pinwsv8",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-07-17T16:29:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "573382ecc192a6a2bd768cc384552e694122e451",
"body": "…ptions type",
"is_bot": false,
"headline": "chore(v2.6.1): pin ws to 8.x, remove webpack analyser and improve wsO…",
"author_name": "Tiago Siebler @ Siebly.io",
"author_login": "tiagosiebler",
"committed_at": "2026-07-17T16:20:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e305a9b0a8f20802cc0d3846c845359ff6d02a2a",
"body": "chore(v2.6.0): upgrade GitHub Actions to setup-node v7 and checkout v6",
"is_bot": false,
"headline": "Merge pull request #147 from JJ-Cro/updateNpmAction0726",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-07-17T11:31:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1e1f6d141f57e2cccef19eaca4de553e9a60b2d5",
"body": "Co-authored-by: Cursor <cursoragent@cursor.com>",
"is_bot": false,
"headline": "chore(v2.6.0): upgrade GitHub Actions to setup-node v7 and checkout v6",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-07-17T11:06:29Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "401316cad5c8cd5bb2c54499a97d4f6eec616b10",
"body": null,
"is_bot": false,
"headline": "fix: add missing awaits to example",
"author_name": "Tiago Siebler @ Siebly.io",
"author_login": "tiagosiebler",
"committed_at": "2026-07-17T10:40:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6b355303cb79a400e97940b5f0478476d41c2ad6",
"body": "chore(v2.6.0): pin npm to v11 and update Node to v24.18.0",
"is_bot": false,
"headline": "Merge pull request #145 from JJ-Cro/updateNpmAction0726",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-07-16T14:16:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "74c4ac0b817efcf81af76739fe59e1117f7db788",
"body": "Co-authored-by: Cursor <cursoragent@cursor.com>",
"is_bot": false,
"headline": "chore(v2.6.0): pin npm to v11 and update Node to v24.18.0",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-07-16T11:52:36Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "5d4f36ab4fb786d7cc752fb45699a6b53dbfe83f",
"body": null,
"is_bot": false,
"headline": "chore: bump deps post audit",
"author_name": "Tiago Siebler @ Siebly.io",
"author_login": "tiagosiebler",
"committed_at": "2026-07-07T11:17:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f5ddb09a0a007ec3d43b1b3e4d432584ec631de9",
"body": "feat(v2.5.5): enhance UTA API with new endpoints for fiat price and rate limits, update deposit status types, and improve WebSocket event interfaces",
"is_bot": false,
"headline": "Merge pull request #144 from JJ-Cro/update03072026",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-07-07T11:17:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b218bb836b34cb2cc1061ff882a06833c79f2d2f",
"body": "…ate limits, update deposit status types, and improve WebSocket event interfaces",
"is_bot": false,
"headline": "feat(v2.5.5): enhance UTA API with new endpoints for fiat price and r…",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-07-03T17:09:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6fc42df9c9419f91f6ebd6358472eeea09795acc",
"body": "fix(v2.5.4): UTA futures request building, chore: bump dependencies post audit",
"is_bot": false,
"headline": "Merge pull request #142 from tiagosiebler/fixutareqbuild",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-06-19T10:24:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cda42dddf0f1fa751877a0a39714f78902e6942e",
"body": "…ost audit",
"is_bot": false,
"headline": "fix(v2.5.4): UTA futures request building, chore: bump dependencies p…",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-06-19T10:20:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "156f275f312d4ad119a78026a70923658a054d29",
"body": "Update README badges",
"is_bot": false,
"headline": "Merge pull request #140 from JJ-Cro/deps_readme_update",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-06-10T11:05:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "048f53879abf94b8476f88cf4765018f73e9e9ba",
"body": null,
"is_bot": false,
"headline": "Update README badges",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-06-09T12:43:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b19337d877b01c034d62a7476001bfbccbe0c5e2",
"body": "chore: npm bumps post-audit",
"is_bot": false,
"headline": "Merge pull request #139 from tiagosiebler/npmbumps",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-06-08T15:09:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "20a77c8488468efc8cb2f1a4882595d904c98df9",
"body": null,
"is_bot": false,
"headline": "chore: npm bumps post-audit",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-06-08T15:08:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "27264de1f6b2bfca9a3429019cf06cf378730d94",
"body": "feat(v2.5.3): update package version to 2.5.3, enhance BrokerClient with Fast API withdrawal functionality, and improve API documentation with new endpoints and status codes",
"is_bot": false,
"headline": "Merge pull request #137 from JJ-Cro/update06062026",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-06-08T15:07:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "de1c9fe072bac9c28d202711f9f36d729ad8e6a4",
"body": "…rt syntax\n\n- Deleted RELEASE_NOTES.md from the project.\n- Updated multiple FuturesClient example files to use ES6 import syntax instead of CommonJS require.\n- Ensured consistency in documentation comments across examples for better clarity.",
"is_bot": false,
"headline": "refactor: remove RELEASE_NOTES.md and update examples to use ES6 impo…",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-06-07T18:05:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5adc00a6ce10d7c2c54668830f58107a5e61f160",
"body": "…ith Fast API withdrawal functionality, and improve API documentation with new endpoints and status codes",
"is_bot": false,
"headline": "feat(v2.5.3): update package version to 2.5.3, enhance BrokerClient w…",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-06-07T18:04:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "06e9e4aa1443007888a037f1e2ee1828eac4db3b",
"body": "chore: lockfile bumps after audit, add quickstart readme link",
"is_bot": false,
"headline": "Merge pull request #133 from tiagosiebler/v2.5.2audits",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-04-28T13:48:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "539dcf16f89b8ca22169db51e8e724a1b973c640",
"body": null,
"is_bot": false,
"headline": "Merge branch 'master' into v2.5.2audits",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-04-28T13:47:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "279f2b725ecf869853ddb30da99a5587733077ca",
"body": null,
"is_bot": false,
"headline": "chore: lockfile bumps after audit, add quickstart readme link",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-04-28T13:47:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "53d97995fbaaec03f76c53b54a61ac11b54f8f0a",
"body": "feat(v2.5.2): enhance Unified Trading Account API with new endpoints …",
"is_bot": false,
"headline": "Merge pull request #130 from JJ-Cro/update23042026",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-04-28T13:45:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4af5df9165a68403f319cfb1970afcc809b6154d",
"body": "…and examples\n\n- Added support for borrowing currencies and borrowing rates/limits.\n- Introduced new methods in UnifiedAPIClient for fetching borrowable currencies and borrowing limits.\n- Updated existing examples to include new API functionalities.\n- Incremented package version to 2.5.2 to reflect these changes.",
"is_bot": false,
"headline": "feat(v2.5.2): enhance Unified Trading Account API with new endpoints …",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-04-23T15:39:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "577e4c1691cee1c0c0bcadd2cf597d672926c082",
"body": "feat(v2.5.1): update API documentation and examples for Unified Trading Account",
"is_bot": false,
"headline": "Merge pull request #122 from JJ-Cro/update09062026",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-03-10T16:16:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9cb7ba045681d9e25a14472f1d60f1bc640f7192",
"body": "- Added new example for batch canceling orders by symbol in the Unified API client.\n- Updated existing examples to reflect changes in endpoint paths and permissions.\n- Enhanced type definitions for broker sub-account permissions and unified transfer requests.\n- Incremented package version to 2.5.1 to reflect recent changes.",
"is_bot": false,
"headline": "feat: update API documentation and examples for Unified Trading Account",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-03-09T08:40:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "275727f33d57eabac80061595c7ce1fc712695ff",
"body": "feat: add Unified Trading Account examples and update Spot and Futures guides",
"is_bot": false,
"headline": "Merge pull request #117 from JJ-Cro/updateV2Mdexample",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-02-11T09:07:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "73fc1f2ecf26446161a1dc88996e1f85207d43c4",
"body": "…s guides\n\n- Introduced a new document for KuCoin Unified Trading Account (PRO) API examples in Node.js.\n- Updated links in the Spot and Futures examples to reference the new Unified examples for better user guidance.",
"is_bot": false,
"headline": "feat: add Unified Trading Account examples and update Spot and Future…",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-02-10T20:23:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b233da3db4c716d4b5d7132ff61b00e0d7ff306c",
"body": "feat(v2.5.0): support regional KuCoin EU and AU REST APIs and WebSockets",
"is_bot": false,
"headline": "Merge pull request #116 from tiagosiebler/regionaleuau",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-02-09T12:01:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8c879775d0a9424ab2d291f3e83470f8ed6e3d43",
"body": null,
"is_bot": false,
"headline": "chore: add migration announcement",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-02-09T11:49:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6dec022089de3b0ea41ac33b2ec8499bfca4c8cf",
"body": null,
"is_bot": false,
"headline": "chore: misc cleaning",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-02-09T11:38:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b00f5926c4f98e166ffc6e84ac77b0b776298692",
"body": null,
"is_bot": false,
"headline": "chore: misc cleaning",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-02-09T11:38:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d188e862a34b13abb4a73582ddf7d996a3a3004e",
"body": null,
"is_bot": false,
"headline": "feat: add regional example to readme, chore: prefer baseUrl if provided",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-02-09T11:34:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5f1adfd628165cb6312fe200d2b385d575c54808",
"body": null,
"is_bot": false,
"headline": "feat(v2.5.0): support regional KuCoin EU and AU REST APIs and WebSockets",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-02-06T17:10:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9aefed9afdb0ce025e042e756ea243b93df0aedc",
"body": null,
"is_bot": false,
"headline": "chore: misc cleaning",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-02-06T17:07:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "96b38a71afe6e386e7e65dd788997c7dfbf9b9fe",
"body": "feat(2.4.1):add tests for isDeepObjectMatch function",
"is_bot": false,
"headline": "Merge pull request #115 from JJ-Cro/WsStore040226",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-02-04T15:55:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "98f10d5ab781678551d6ce78e55cd27518642e02",
"body": "… import path in tests\n\n- Reformatted the conditional checks in the isDeepObjectMatch function for better readability.\n- Updated the import statement in wsStore.test.ts to include the .js extension for compatibility.",
"is_bot": false,
"headline": "refactor: improve formatting in isDeepObjectMatch function and update…",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-02-04T09:54:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e0d109db1ab0ac8cd63adf3febfc738b94a9fa02",
"body": "…ction\n\n- Bumped version in package.json and package-lock.json to 2.4.1.\n- Enhanced isDeepObjectMatch function to handle null values correctly.\n- Added comprehensive tests for isDeepObjectMatch to ensure proper functionality across various scenarios.",
"is_bot": false,
"headline": "feat: update version to 2.4.1 and add tests for isDeepObjectMatch fun…",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-02-04T09:28:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "48362d233d485727290c63b86b314a7022399466",
"body": "refactor: update SDK references and enhance request utility types",
"is_bot": false,
"headline": "Merge pull request #114 from JJ-Cro/update03022026",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-02-03T13:10:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8b8586b8ae586a46e5055c48d7a369dbc4c88ac7",
"body": null,
"is_bot": false,
"headline": "Merge branch 'master' into update03022026",
"author_name": "Jerko J",
"author_login": "JJ-Cro",
"committed_at": "2026-02-03T13:10:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "74fb836551cd69e17b6d23555f82b87020a409d5",
"body": "Co-authored-by: Tiago <tiagosiebler@users.noreply.github.com>",
"is_bot": false,
"headline": "Update examples/auth/fasterHmacSign.ts",
"author_name": "Jerko J",
"author_login": "JJ-Cro",
"committed_at": "2026-02-03T13:09:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3401874a70a6d2334faaab941daf17760d60548f",
"body": "- Updated references from 'bitget-api' to 'kucoin-api' in documentation and example files.\n- Enhanced the RestClientOptions interface with additional properties for improved API request handling.\n- Introduced a new SignedRequest interface to better structure signed requests.\n- Cleaned up comments and improved organization in request utility files for clarity.",
"is_bot": false,
"headline": "refactor: update SDK references and enhance request utility types",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-02-03T12:41:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9c3c289958e6b5a70e847a878cf9a7f6b30070c5",
"body": "refactor: reorganize example directory structure and update WebSocket examples",
"is_bot": false,
"headline": "Merge pull request #113 from JJ-Cro/update03022026",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-02-03T12:26:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eddf208199d4282098c1e1b317eb8e389adfb235",
"body": "- Renamed 'Auth' directory to 'auth' for consistency.\n- Moved example files for authorization headers and HMAC signing to the new 'auth' directory.\n- Added new examples for obtaining private WebSocket connection tokens for both Futures and Spot clients.\n- Improved organization and clarity of example files to enhance usability.",
"is_bot": false,
"headline": "refactor: update example files and directory structure for clarity",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-02-03T12:21:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "79b450fba84d8a9458b1fa59ec5ef362923c6e3c",
"body": "… examples\n\n- Renamed 'auth' directory to 'Auth' and added new 'Rest' directory for REST API examples.\n- Updated WebSocket example files to remove unused imports and improve clarity.\n- Enhanced the organization of example files for better navigation and usability.",
"is_bot": false,
"headline": "refactor: reorganize example directory structure and update WebSocket…",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-02-03T12:17:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0816fd4d2af78344c008abb1b59c41e0d1c0f753",
"body": "feat(v2.4.0): Integrate V2 (Pro) Public & Private WebSockets",
"is_bot": false,
"headline": "Merge pull request #111 from tiagosiebler/wsv2pro",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-01-30T16:37:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "25de4309524a0de8c057436bbb92cddc6fd7fd69",
"body": null,
"is_bot": false,
"headline": "chore: clean comments",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-01-30T16:34:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a830ba4ce3383d50c3fdfe8c169911e1dedd646e",
"body": null,
"is_bot": false,
"headline": "chore: comments",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-01-30T16:32:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "81ec3664ba862224aedeebb683b9c38dca169d10",
"body": null,
"is_bot": false,
"headline": "chore: revert WsOperation rename",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-01-30T16:32:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b51acf8f81f05c5e710093b43fb4305b654a3b3c",
"body": null,
"is_bot": false,
"headline": "chore: bump eslint to fix audit",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-01-30T16:29:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ae44a21bfa94c66e191ab9e4c6e37b8d3074554c",
"body": null,
"is_bot": false,
"headline": "chore: refactoring V2/pro wsKey & example names",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-01-30T15:49:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8e1c02b1ee5d3ad5dd37feb58e704dfdca60880f",
"body": null,
"is_bot": false,
"headline": "chore: update renamed files",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-01-30T12:17:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "798ae4f599ab13a9edbb5e465c10cdaec035053b",
"body": null,
"is_bot": false,
"headline": "Merge branch 'master' into wsv2pro",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-01-30T12:15:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3287932ebd9810954ec9d2e3ef9bf9c4e4b79950",
"body": "feat: add examples for futures and spot trading using WebSocket and REST APIs",
"is_bot": false,
"headline": "Merge pull request #112 from JJ-Cro/updateExamples3101",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-01-30T12:15:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8584c7afffbb4fbc236b917f2bd089d930f0d7cb",
"body": "…EST APIs\n\n- Introduced multiple example scripts demonstrating how to interact with KuCoin's futures and spot trading APIs, including private and public endpoints.\n- Added WebSocket examples for both futures and spot trading, showcasing subscription to market data and account updates.\n- Included detailed comments and usage instructions in each example for better understanding and ease of use.",
"is_bot": false,
"headline": "feat: add examples for futures and spot trading using WebSocket and R…",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-01-30T11:03:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a2879a13fc4dbfdc473bf3aba1374a60719b3679",
"body": null,
"is_bot": false,
"headline": "chore: revert logger in example",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-01-29T16:43:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "48d170400841c7e23a62467982c22fe50e00cdea",
"body": null,
"is_bot": false,
"headline": "chore: readme updates for new V2 websockets",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-01-29T16:38:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7c79b43fe4dacf2079b9a26486c12166899cf514",
"body": null,
"is_bot": false,
"headline": "chore: ping note",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-01-29T16:33:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7950928435ef6672491d978c23ab933842bb50ac",
"body": null,
"is_bot": false,
"headline": "feat: add V2/Pro private subscription examples",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-01-29T16:31:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d95e4bd2e51e7f74493a3afc87c1dbdc3d5de716",
"body": null,
"is_bot": false,
"headline": "chore: rename examples",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-01-29T15:50:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f5ae9fe35a4df6d1d95f61645e92be773c081a93",
"body": null,
"is_bot": false,
"headline": "feat: add v2 futures public ws events example",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-01-29T15:43:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d90da889f074cf3b3cbb6b8e574563df8238484f",
"body": null,
"is_bot": false,
"headline": "chore: split spot public example into v1/v2",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-01-29T15:28:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c965c77a6c732c3944bb8c9fea845fa36544ed56",
"body": null,
"is_bot": false,
"headline": "feat: add v2 example",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-01-29T14:53:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1c3b0df5c1fa9069b0ee83dcb6c15cf1b1c69051",
"body": null,
"is_bot": false,
"headline": "feat: handle incoming V2/pro data mapping",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-01-29T14:52:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bb88e01d9fbc2bf7e8c89054871b78311d747413",
"body": "… mapping",
"is_bot": false,
"headline": "feat: integrate ws event buffer deflate/extract, integrate v2 request…",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-01-29T14:28:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ae64a3760a13fee784559d4b3d66047f0197d127",
"body": "… dependency bump after audit",
"is_bot": false,
"headline": "feat(v2.4.0): integrate V2 (Pro) public & private WebSocket workflow,…",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-01-29T13:46:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bbe6211ced5778dcdd1a5b794badeca70914134f",
"body": "feat(v2.3.6): enhance API client with new endpoints and update package dependencies",
"is_bot": false,
"headline": "Merge pull request #109 from JJ-Cro/update21012026",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-01-27T12:13:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ddb410ed74299f7169ad67fe025aa001735b9b2c",
"body": "…e dependencies\n\n- Added new request and response types for various account and trading operations in the UnifiedAPIClient.\n- Introduced batch order cancellation and DCP (Disconnection Protect) functionalities.\n- Updated package version to 2.3.6 and dependencies, including axios and webpack.\n- Enhanced documentation in llms.txt and endpointFunctionList.md to reflect new features and usage examples.\n- Added example scripts for new API endpoints in the examples/apidoc directory.",
"is_bot": false,
"headline": "feat(v2.3.6): enhance API client with new endpoints and update packag…",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-01-21T14:45:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6554d7072cd187f778b612d682c5a054b7d04ef9",
"body": "…5_120358\n\nchore(): README.md template sections",
"is_bot": false,
"headline": "Merge pull request #108 from tiagosiebler/actions_templates_2026_01_1…",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-01-15T12:04:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "457c1bd7bc0882e216d60fb4e58431d1d1860ad4",
"body": null,
"is_bot": true,
"headline": "chore(): README.md template sections",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-01-15T12:04:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eee4f3d72cbd246fd077774fe676cfcc7e1c3d22",
"body": "feat(v2.3.5): update webpack config, update wsOptions, update release workflow, minor bumps",
"is_bot": false,
"headline": "Merge pull request #107 from tiagosiebler/bumpswebpack",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-01-15T12:03:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2ed0de4ac17aa606f4c603c10d0990fae7c51c50",
"body": "… workflow, minor bumps",
"is_bot": false,
"headline": "feat(v2.3.5): update webpack config, update wsOptions, update release…",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2026-01-15T12:02:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c77fd441c0e34ae2e5a38db2c60ab01f5b7091f4",
"body": "chore: update .gitignore, add webpack configuration, and enhance package.json for optional dependencies",
"is_bot": false,
"headline": "Merge pull request #106 from JJ-Cro/webpack",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-01-15T12:01:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "716a797d5028bc0897448eba2dbe5fe21836b9fc",
"body": null,
"is_bot": false,
"headline": "Merge branch 'master' into webpack",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-01-15T12:00:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7f7b809f8064b669b7457fcc08d5a2c615949dc8",
"body": "chore: enhance WSClientConfigurableOptions to support additional WebSocket and HTTP client options",
"is_bot": false,
"headline": "Merge pull request #105 from JJ-Cro/WsOptions",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-01-15T11:59:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "43150376d29cb1505c22a0c4943ad91e560aafce",
"body": null,
"is_bot": false,
"headline": "Merge branch 'master' into WsOptions",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-01-15T11:57:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0d6f5d1138b237c6563add5eedafae2ce750f3b3",
"body": "chore: update NPM publish workflow to trigger on release events and h…",
"is_bot": false,
"headline": "Merge pull request #104 from JJ-Cro/updateNpmPublish",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2026-01-15T11:57:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3818e13540b1516abc00fe5e14ebc6e208f0cbc8",
"body": "…age.json for optional dependencies",
"is_bot": false,
"headline": "chore: update .gitignore, add webpack configuration, and enhance pack…",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-01-13T18:43:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6ad02a62313fb36dadabcf94e70ad9fee237921e",
"body": "…eRestClient",
"is_bot": false,
"headline": "chore: add notes on Node.js-only functionality for https agent in Bas…",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-01-13T12:49:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9bb04753da5ba7224b2993a9535bc81634850b0c",
"body": "…ocket and HTTP client options",
"is_bot": false,
"headline": "chore: enhance WSClientConfigurableOptions to support additional WebS…",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-01-02T14:22:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1b2d5c0f5847cf36d939dd12a33e1f7a42b00333",
"body": "…andle prerelease tags",
"is_bot": false,
"headline": "chore: update NPM publish workflow to trigger on release events and h…",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2026-01-02T13:30:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b432015d38368f439960e6e1db546908cbb0296c",
"body": "chore(v2.3.4): readme bumps",
"is_bot": false,
"headline": "Merge pull request #103 from tiagosiebler/readmebumps",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2025-12-29T12:40:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c5cb766ec43705a7c4ccc8c13ea667fb0d58ab61",
"body": "…7d6166013dc365027e\n\n[Snyk] Upgrade axios from 1.13.1 to 1.13.2",
"is_bot": false,
"headline": "Merge pull request #101 from tiagosiebler/snyk-upgrade-90b3b75345f66a…",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2025-12-29T12:39:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "12d6005a657e77ea5405adfb3522b2ef6b6e85a3",
"body": null,
"is_bot": false,
"headline": "chore(v2.3.4): readme bumps",
"author_name": "Tiago Siebler",
"author_login": null,
"committed_at": "2025-12-29T12:39:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "97a6d8cdf081df5ff6369d4a7dd9154b56794bb6",
"body": "…9_100941\n\nchore(): README.md template sections",
"is_bot": false,
"headline": "Merge pull request #102 from tiagosiebler/actions_templates_2025_12_2…",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2025-12-29T10:15:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "95ce68714f1e0c4e92211ea6ed50fb804b80e3bc",
"body": null,
"is_bot": true,
"headline": "chore(): README.md template sections",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2025-12-29T10:09:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4d0af84d4e8e6e0c829cbc1fdad082dfaacb73c1",
"body": "Snyk has created this PR to upgrade axios from 1.13.1 to 1.13.2.\n\nSee this package in npm:\naxios\n\nSee this project in Snyk:\nhttps://app.snyk.io/org/tiagosiebler-P8btARS9QSdFGkKd643AUT/project/704e1fc3-4e8a-4af1-b704-d6b231a0d41c?utm_source=github&utm_medium=referral&page=upgrade-pr",
"is_bot": false,
"headline": "fix: upgrade axios from 1.13.1 to 1.13.2",
"author_name": "snyk-bot",
"author_login": "snyk-bot",
"committed_at": "2025-12-24T15:27:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2e70e28f43fcfaddc44e1ea99074c8449414c89e",
"body": "feat(v2.3.3): add new endpoints for market available inventory and kumining, update SDK documentation and examples",
"is_bot": false,
"headline": "Merge pull request #100 from JJ-Cro/update15122025",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2025-12-18T11:43:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6fce17850bbd683f7cd83a5e1b8dcf97c0a240cf",
"body": null,
"is_bot": false,
"headline": "Merge branch 'master' into update15122025",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2025-12-18T11:36:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e594c58d9009e29d240831208e49ad5ad9611d02",
"body": "…aml-3.14.2\n\nchore(deps-dev): bump js-yaml from 3.14.1 to 3.14.2",
"is_bot": false,
"headline": "Merge pull request #98 from tiagosiebler/dependabot/npm_and_yarn/js-y…",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2025-12-18T11:29:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "788598da0db3e84062652b5dce288c45e9355379",
"body": null,
"is_bot": false,
"headline": "Merge branch 'master' into dependabot/npm_and_yarn/js-yaml-3.14.2",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2025-12-18T11:28:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2c03edcc1490e3420de12d744f2b7dc2ef864d16",
"body": "…27b36fe12364d8c68\n\n[Snyk] Upgrade axios from 1.12.2 to 1.13.1",
"is_bot": false,
"headline": "Merge pull request #99 from tiagosiebler/snyk-upgrade-341cd509a0558a1…",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2025-12-18T11:27:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f9d19f3cbc2b62926764a874d0ccb2b87bb3d1ae",
"body": "…mining, update SDK documentation and examples",
"is_bot": false,
"headline": "feat(v2.3.3): add new endpoints for market available inventory and ku…",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2025-12-15T09:59:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7887c5e71524895a74c8263395d401735f4d54bd",
"body": "Snyk has created this PR to upgrade axios from 1.12.2 to 1.13.1.\n\nSee this package in npm:\naxios\n\nSee this project in Snyk:\nhttps://app.snyk.io/org/tiagosiebler-P8btARS9QSdFGkKd643AUT/project/704e1fc3-4e8a-4af1-b704-d6b231a0d41c?utm_source=github&utm_medium=referral&page=upgrade-pr",
"is_bot": false,
"headline": "fix: upgrade axios from 1.12.2 to 1.13.1",
"author_name": "snyk-bot",
"author_login": "snyk-bot",
"committed_at": "2025-11-19T08:43:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8070fd884f55447379adc61b3955f9710e61f683",
"body": "Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.14.2.\n- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/nodeca/js-yaml/compare/3.14.1...3.14.2)\n\n---\nupdated-dependencies:\n- dependency-name: js-yaml\n dependency-version: 3.14.2\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps-dev): bump js-yaml from 3.14.1 to 3.14.2",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-11-18T02:45:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "32ccd4a8413c052273dcf8eb7dc4c67c14d94323",
"body": "feat(v2.3.2): add futures copy trading cross margin, hedge mode, collateral and kyc endpoints",
"is_bot": false,
"headline": "Merge pull request #97 from JJ-Cro/update14112025",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2025-11-17T11:49:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fc727b3f93e6027fe53bbb343f1a1abbfd1374f0",
"body": null,
"is_bot": false,
"headline": "feat(2.3.2): updated SDK per change logs for November",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2025-11-14T17:37:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "09b443a3745818b6f219c10b25cd602ea23680ce",
"body": "fix(2.3.1): improve error handling in WebSocket client, fix circular error",
"is_bot": false,
"headline": "Merge pull request #96 from JJ-Cro/master",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2025-11-14T14:22:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4edc12ba286bb459edfc52d91ea0cd13b16f22ff",
"body": "…error",
"is_bot": false,
"headline": "fix(2.3.1): improve error handling in WebSocket client, fix circular …",
"author_name": "JJ-Cro",
"author_login": "JJ-Cro",
"committed_at": "2025-11-14T12:28:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "41787970904149166a8a670ab7c0cab195631cfc",
"body": "feat(): Add licence file",
"is_bot": false,
"headline": "Merge pull request #95 from JJ-Cro/master",
"author_name": "Tiago",
"author_login": "tiagosiebler",
"committed_at": "2025-11-13T09:26:16Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 21,
"commits_last_year": 162,
"latest_release_at": "2026-07-17T16:33:50Z",
"latest_release_tag": "v2.6.1",
"releases_from_tags": false,
"days_since_last_push": 2,
"active_weeks_last_year": 26,
"days_since_latest_release": 5,
"mean_days_between_releases": 18.7
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 71,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": true
},
"ecosystem": {
"packages": [
{
"name": "kucoin-api",
"exists": true,
"license": "MIT",
"keywords": [
"kucoin",
"kucoin api",
"kucoin nodejs",
"kucoin javascript",
"kucoin typescript",
"kucoin websocket api",
"kucoin websocket api javascript",
"algo trading",
"api",
"websocket",
"rest",
"rest api",
"usdt",
"trading bots",
"nodejs",
"node",
"trading",
"cryptocurrency",
"bitcoin",
"best"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/kucoin-api",
"is_deprecated": false,
"latest_version": "2.6.1",
"repository_url": "https://github.com/tiagosiebler/kucoin-api",
"versions_count": 71,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 2,
"monthly_downloads": 8160,
"first_published_at": "2017-11-01T14:38:54.470000Z",
"latest_published_at": "2026-07-17T16:38:40.261000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 5
}
]
},
"popularity": {
"forks": 8,
"stars": 14,
"watchers": 2,
"fork_history": {
"days": [
{
"date": "2024-08-21",
"count": 1
},
{
"date": "2024-10-27",
"count": 2
},
{
"date": "2025-01-15",
"count": 1
},
{
"date": "2025-01-21",
"count": 1
},
{
"date": "2025-02-10",
"count": 1
},
{
"date": "2025-06-17",
"count": 1
},
{
"date": "2025-12-08",
"count": 1
}
],
"complete": true,
"collected": 8,
"total_forks": 8
},
"star_history": null,
"open_issues_and_prs": 2
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"examples"
],
"has_llms_txt": true,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"tsconfig.json"
],
"toolchain_manifests": [],
"largest_source_bytes": 79790,
"source_files_sampled": 422,
"oversized_source_files": 1,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"package.json"
],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [
{
"name": "axios",
"direct": true,
"version": "1.17.0",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 8.2,
"advisory_ids": [
"GHSA-42h9-826w-cgv3",
"GHSA-7q8q-rj6j-mhjq",
"GHSA-f4gw-2p7v-4548",
"GHSA-gcfj-64vw-6mp9",
"GHSA-hcpx-6fm6-wx23",
"GHSA-jqh4-m9w3-8hp9",
"GHSA-mmx7-hfxf-jppx",
"GHSA-mwf2-3pr3-8698",
"GHSA-pmv8-rq9r-6j72",
"GHSA-xj6q-8x83-jv6g"
],
"fixed_version": "1.18.0",
"advisory_count": 10,
"oldest_advisory_days": 2
},
{
"name": "brace-expansion",
"direct": false,
"version": "1.1.14",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-3jxr-9vmj-r5cp"
],
"fixed_version": "5.0.7",
"advisory_count": 1,
"oldest_advisory_days": 2
},
{
"name": "brace-expansion",
"direct": false,
"version": "2.1.0",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-3jxr-9vmj-r5cp"
],
"fixed_version": "5.0.7",
"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": 1
},
{
"name": "js-yaml",
"direct": false,
"version": "4.2.0",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-52cp-r559-cp3m"
],
"fixed_version": "4.3.0",
"advisory_count": 1,
"oldest_advisory_days": 2
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"high": 5
},
"advisory_count": 15,
"affected_count": 5,
"assessed_count": 472,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 1
},
"ecosystems": [
"npm"
],
"dependencies": [
{
"name": "@types/ws",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^8.18.1"
},
{
"name": "axios",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^1.13.2"
},
{
"name": "isomorphic-ws",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^5.0.0"
},
{
"name": "nanoid",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^3.3.11"
},
{
"name": "ws",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "8.21.1"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "@types/ws",
"direct": true,
"version": "8.18.1",
"ecosystem": "npm"
},
{
"name": "axios",
"direct": true,
"version": "1.17.0",
"ecosystem": "npm"
},
{
"name": "isomorphic-ws",
"direct": true,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "nanoid",
"direct": true,
"version": "3.3.11",
"ecosystem": "npm"
},
{
"name": "ws",
"direct": true,
"version": "8.21.1",
"ecosystem": "npm"
},
{
"name": "@aashutoshrathi/word-wrap",
"direct": false,
"version": "1.2.6",
"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.24.8",
"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-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-jsx",
"direct": false,
"version": "7.24.7",
"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-top-level-await",
"direct": false,
"version": "7.14.5",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-typescript",
"direct": false,
"version": "7.24.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": "@bcoe/v8-coverage",
"direct": false,
"version": "0.2.3",
"ecosystem": "npm"
},
{
"name": "@cspotcode/source-map-support",
"direct": false,
"version": "0.8.1",
"ecosystem": "npm"
},
{
"name": "@discoveryjs/json-ext",
"direct": false,
"version": "0.5.7",
"ecosystem": "npm"
},
{
"name": "@eslint-community/eslint-utils",
"direct": false,
"version": "4.9.1",
"ecosystem": "npm"
},
{
"name": "@eslint-community/regexpp",
"direct": false,
"version": "4.12.2",
"ecosystem": "npm"
},
{
"name": "@eslint/config-array",
"direct": false,
"version": "0.21.1",
"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.3",
"ecosystem": "npm"
},
{
"name": "@eslint/js",
"direct": false,
"version": "9.39.2",
"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.1",
"ecosystem": "npm"
},
{
"name": "@humanfs/node",
"direct": false,
"version": "0.16.7",
"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": "@istanbuljs/load-nyc-config",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "@istanbuljs/schema",
"direct": false,
"version": "0.1.3",
"ecosystem": "npm"
},
{
"name": "@jest/console",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/core",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/environment",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/expect",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/expect-utils",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/fake-timers",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/globals",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/reporters",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/schemas",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "@jest/source-map",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "@jest/test-result",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/test-sequencer",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/transform",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/types",
"direct": false,
"version": "29.6.3",
"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.1",
"ecosystem": "npm"
},
{
"name": "@jridgewell/source-map",
"direct": false,
"version": "0.3.11",
"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": "@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": "@pkgr/core",
"direct": false,
"version": "0.1.1",
"ecosystem": "npm"
},
{
"name": "@sinclair/typebox",
"direct": false,
"version": "0.27.8",
"ecosystem": "npm"
},
{
"name": "@sinonjs/commons",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "@sinonjs/fake-timers",
"direct": false,
"version": "10.3.0",
"ecosystem": "npm"
},
{
"name": "@tsconfig/node10",
"direct": false,
"version": "1.0.9",
"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.6.8",
"ecosystem": "npm"
},
{
"name": "@types/babel__template",
"direct": false,
"version": "7.4.4",
"ecosystem": "npm"
},
{
"name": "@types/babel__traverse",
"direct": false,
"version": "7.20.5",
"ecosystem": "npm"
},
{
"name": "@types/eslint",
"direct": false,
"version": "9.6.1",
"ecosystem": "npm"
},
{
"name": "@types/eslint-scope",
"direct": false,
"version": "3.7.7",
"ecosystem": "npm"
},
{
"name": "@types/estree",
"direct": false,
"version": "1.0.8",
"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": "29.5.12",
"ecosystem": "npm"
},
{
"name": "@types/json-schema",
"direct": false,
"version": "7.0.15",
"ecosystem": "npm"
},
{
"name": "@types/node",
"direct": false,
"version": "22.16.4",
"ecosystem": "npm"
},
{
"name": "@types/stack-utils",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "@types/yargs",
"direct": false,
"version": "17.0.32",
"ecosystem": "npm"
},
{
"name": "@types/yargs-parser",
"direct": false,
"version": "21.0.3",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/eslint-plugin",
"direct": false,
"version": "8.37.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/parser",
"direct": false,
"version": "8.37.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/project-service",
"direct": false,
"version": "8.37.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/scope-manager",
"direct": false,
"version": "8.37.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/tsconfig-utils",
"direct": false,
"version": "8.37.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/type-utils",
"direct": false,
"version": "8.37.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/types",
"direct": false,
"version": "8.37.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/typescript-estree",
"direct": false,
"version": "8.37.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/utils",
"direct": false,
"version": "8.37.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/visitor-keys",
"direct": false,
"version": "8.37.0",
"ecosystem": "npm"
},
{
"name": "@webassemblyjs/ast",
"direct": false,
"version": "1.14.1",
"ecosystem": "npm"
},
{
"name": "@webassemblyjs/floating-point-hex-parser",
"direct": false,
"version": "1.13.2",
"ecosystem": "npm"
},
{
"name": "@webassemblyjs/helper-api-error",
"direct": false,
"version": "1.13.2",
"ecosystem": "npm"
},
{
"name": "@webassemblyjs/helper-buffer",
"direct": false,
"version": "1.14.1",
"ecosystem": "npm"
},
{
"name": "@webassemblyjs/helper-numbers",
"direct": false,
"version": "1.13.2",
"ecosystem": "npm"
},
{
"name": "@webassemblyjs/helper-wasm-bytecode",
"direct": false,
"version": "1.13.2",
"ecosystem": "npm"
},
{
"name": "@webassemblyjs/helper-wasm-section",
"direct": false,
"version": "1.14.1",
"ecosystem": "npm"
},
{
"name": "@webassemblyjs/ieee754",
"direct": false,
"version": "1.13.2",
"ecosystem": "npm"
},
{
"name": "@webassemblyjs/leb128",
"direct": false,
"version": "1.13.2",
"ecosystem": "npm"
},
{
"name": "@webassemblyjs/utf8",
"direct": false,
"version": "1.13.2",
"ecosystem": "npm"
},
{
"name": "@webassemblyjs/wasm-edit",
"direct": false,
"version": "1.14.1",
"ecosystem": "npm"
},
{
"name": "@webassemblyjs/wasm-gen",
"direct": false,
"version": "1.14.1",
"ecosystem": "npm"
},
{
"name": "@webassemblyjs/wasm-opt",
"direct": false,
"version": "1.14.1",
"ecosystem": "npm"
},
{
"name": "@webassemblyjs/wasm-parser",
"direct": false,
"version": "1.14.1",
"ecosystem": "npm"
},
{
"name": "@webassemblyjs/wast-printer",
"direct": false,
"version": "1.14.1",
"ecosystem": "npm"
},
{
"name": "@webpack-cli/configtest",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "@webpack-cli/info",
"direct": false,
"version": "1.5.0",
"ecosystem": "npm"
},
{
"name": "@webpack-cli/serve",
"direct": false,
"version": "1.7.0",
"ecosystem": "npm"
},
{
"name": "@xtuc/ieee754",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "@xtuc/long",
"direct": false,
"version": "4.2.2",
"ecosystem": "npm"
},
{
"name": "acorn",
"direct": false,
"version": "8.15.0",
"ecosystem": "npm"
},
{
"name": "acorn-import-phases",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "acorn-jsx",
"direct": false,
"version": "5.3.2",
"ecosystem": "npm"
},
{
"name": "acorn-walk",
"direct": false,
"version": "8.3.2",
"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.20.0",
"ecosystem": "npm"
},
{
"name": "ajv-formats",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "ajv-keywords",
"direct": false,
"version": "5.1.0",
"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": "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": "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": "asynckit",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "babel-jest",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "babel-plugin-istanbul",
"direct": false,
"version": "6.1.1",
"ecosystem": "npm"
},
{
"name": "babel-plugin-jest-hoist",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "babel-preset-current-node-syntax",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "babel-preset-jest",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "balanced-match",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "baseline-browser-mapping",
"direct": false,
"version": "2.9.14",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "1.1.14",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "braces",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "browserslist",
"direct": false,
"version": "4.28.1",
"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-apply-helpers",
"direct": false,
"version": "1.0.2",
"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": "caniuse-lite",
"direct": false,
"version": "1.0.30001764",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "char-regex",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "chrome-trace-event",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "ci-info",
"direct": false,
"version": "3.9.0",
"ecosystem": "npm"
},
{
"name": "cjs-module-lexer",
"direct": false,
"version": "1.2.3",
"ecosystem": "npm"
},
{
"name": "cliui",
"direct": false,
"version": "8.0.1",
"ecosystem": "npm"
},
{
"name": "clone-deep",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "co",
"direct": false,
"version": "4.6.0",
"ecosystem": "npm"
},
{
"name": "collect-v8-coverage",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "color-convert",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "color-name",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "colorette",
"direct": false,
"version": "2.0.20",
"ecosystem": "npm"
},
{
"name": "combined-stream",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "commander",
"direct": false,
"version": "2.20.3",
"ecosystem": "npm"
},
{
"name": "commander",
"direct": false,
"version": "7.2.0",
"ecosystem": "npm"
},
{
"name": "concat-map",
"direct": false,
"version": "0.0.1",
"ecosystem": "npm"
},
{
"name": "convert-source-map",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "create-jest",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "create-require",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "cross-spawn",
"direct": false,
"version": "7.0.6",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": false,
"version": "4.3.4",
"ecosystem": "npm"
},
{
"name": "dedent",
"direct": false,
"version": "1.5.1",
"ecosystem": "npm"
},
{
"name": "deep-is",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "deepmerge",
"direct": false,
"version": "4.3.1",
"ecosystem": "npm"
},
{
"name": "delayed-stream",
"direct": false,
"version": "1.0.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": "29.6.3",
"ecosystem": "npm"
},
{
"name": "dunder-proto",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "electron-to-chromium",
"direct": false,
"version": "1.5.267",
"ecosystem": "npm"
},
{
"name": "emittery",
"direct": false,
"version": "0.13.1",
"ecosystem": "npm"
},
{
"name": "emoji-regex",
"direct": false,
"version": "8.0.0",
"ecosystem": "npm"
},
{
"name": "enhanced-resolve",
"direct": false,
"version": "5.18.4",
"ecosystem": "npm"
},
{
"name": "envinfo",
"direct": false,
"version": "7.21.0",
"ecosystem": "npm"
},
{
"name": "error-ex",
"direct": false,
"version": "1.3.2",
"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-module-lexer",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "es-object-atoms",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "es-set-tostringtag",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "escalade",
"direct": false,
"version": "3.2.0",
"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": "eslint",
"direct": false,
"version": "9.39.2",
"ecosystem": "npm"
},
{
"name": "eslint-config-prettier",
"direct": false,
"version": "9.1.0",
"ecosystem": "npm"
},
{
"name": "eslint-plugin-prettier",
"direct": false,
"version": "5.1.3",
"ecosystem": "npm"
},
{
"name": "eslint-plugin-require-extensions",
"direct": false,
"version": "0.1.3",
"ecosystem": "npm"
},
{
"name": "eslint-plugin-simple-import-sort",
"direct": false,
"version": "12.1.1",
"ecosystem": "npm"
},
{
"name": "eslint-scope",
"direct": false,
"version": "5.1.1",
"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": "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.5.0",
"ecosystem": "npm"
},
{
"name": "esrecurse",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "estraverse",
"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": "events",
"direct": false,
"version": "3.3.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": "29.7.0",
"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-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": "fastest-levenshtein",
"direct": false,
"version": "1.0.16",
"ecosystem": "npm"
},
{
"name": "fastq",
"direct": false,
"version": "1.17.1",
"ecosystem": "npm"
},
{
"name": "fb-watchman",
"direct": false,
"version": "2.0.2",
"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": "4.1.0",
"ecosystem": "npm"
},
{
"name": "find-up",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "flat",
"direct": false,
"version": "5.0.2",
"ecosystem": "npm"
},
{
"name": "flat-cache",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "flatted",
"direct": false,
"version": "3.4.2",
"ecosystem": "npm"
},
{
"name": "follow-redirects",
"direct": false,
"version": "1.16.0",
"ecosystem": "npm"
},
{
"name": "form-data",
"direct": false,
"version": "4.0.6",
"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": "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-proto",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "get-stream",
"direct": false,
"version": "6.0.1",
"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": "glob-to-regexp",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "globals",
"direct": false,
"version": "14.0.0",
"ecosystem": "npm"
},
{
"name": "gopd",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "graceful-fs",
"direct": false,
"version": "4.2.11",
"ecosystem": "npm"
},
{
"name": "graphemer",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "handlebars",
"direct": false,
"version": "4.7.9",
"ecosystem": "npm"
},
{
"name": "has-flag",
"direct": false,
"version": "4.0.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": "html-escaper",
"direct": false,
"version": "2.0.2",
"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": "ignore",
"direct": false,
"version": "5.3.2",
"ecosystem": "npm"
},
{
"name": "ignore",
"direct": false,
"version": "7.0.5",
"ecosystem": "npm"
},
{
"name": "import-fresh",
"direct": false,
"version": "3.3.1",
"ecosystem": "npm"
},
{
"name": "import-local",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "imurmurhash",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "inflight",
"direct": false,
"version": "1.0.6",
"ecosystem": "npm"
},
{
"name": "inherits",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "interpret",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "is-arrayish",
"direct": false,
"version": "0.2.1",
"ecosystem": "npm"
},
{
"name": "is-core-module",
"direct": false,
"version": "2.13.1",
"ecosystem": "npm"
},
{
"name": "is-extglob",
"direct": false,
"version": "2.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-glob",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "is-number",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "is-plain-object",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "is-stream",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "isexe",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "isobject",
"direct": false,
"version": "3.0.1",
"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-instrument",
"direct": false,
"version": "6.0.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.1.6",
"ecosystem": "npm"
},
{
"name": "jest",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-changed-files",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-circus",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-cli",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-config",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-diff",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-docblock",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-each",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-environment-node",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-get-type",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "jest-haste-map",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-leak-detector",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-matcher-utils",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-message-util",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-mock",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-pnp-resolver",
"direct": false,
"version": "1.2.3",
"ecosystem": "npm"
},
{
"name": "jest-regex-util",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "jest-resolve",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-resolve-dependencies",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-runner",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-runtime",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-snapshot",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-util",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-validate",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-watcher",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-worker",
"direct": false,
"version": "27.5.1",
"ecosystem": "npm"
},
{
"name": "jest-worker",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "js-tokens",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "js-yaml",
"direct": false,
"version": "3.15.0",
"ecosystem": "npm"
},
{
"name": "js-yaml",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "jsesc",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "json-buffer",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "json-parse-even-better-errors",
"direct": false,
"version": "2.3.1",
"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": "json5",
"direct": false,
"version": "2.2.3",
"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": "loader-runner",
"direct": false,
"version": "4.3.1",
"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.memoize",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "lodash.merge",
"direct": false,
"version": "4.6.2",
"ecosystem": "npm"
},
{
"name": "lru-cache",
"direct": false,
"version": "5.1.1",
"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": "math-intrinsics",
"direct": false,
"version": "1.1.0",
"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": "minimatch",
"direct": false,
"version": "3.1.5",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "9.0.9",
"ecosystem": "npm"
},
{
"name": "minimist",
"direct": false,
"version": "1.2.8",
"ecosystem": "npm"
},
{
"name": "ms",
"direct": false,
"version": "2.1.2",
"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": "node-int64",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "node-releases",
"direct": false,
"version": "2.0.27",
"ecosystem": "npm"
},
{
"name": "normalize-path",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "npm-run-path",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "once",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "onetime",
"direct": false,
"version": "5.1.2",
"ecosystem": "npm"
},
{
"name": "optionator",
"direct": false,
"version": "0.9.3",
"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": "4.1.0",
"ecosystem": "npm"
},
{
"name": "p-locate",
"direct": false,
"version": "5.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-json",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "path-exists",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "path-is-absolute",
"direct": false,
"version": "1.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": "picocolors",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "picomatch",
"direct": false,
"version": "2.3.2",
"ecosystem": "npm"
},
{
"name": "pirates",
"direct": false,
"version": "4.0.6",
"ecosystem": "npm"
},
{
"name": "pkg-dir",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "prelude-ls",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "prettier",
"direct": false,
"version": "3.3.3",
"ecosystem": "npm"
},
{
"name": "prettier-linter-helpers",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "pretty-format",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "prompts",
"direct": false,
"version": "2.4.2",
"ecosystem": "npm"
},
{
"name": "proxy-from-env",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "punycode",
"direct": false,
"version": "2.3.1",
"ecosystem": "npm"
},
{
"name": "pure-rand",
"direct": false,
"version": "6.0.4",
"ecosystem": "npm"
},
{
"name": "queue-microtask",
"direct": false,
"version": "1.2.3",
"ecosystem": "npm"
},
{
"name": "react-is",
"direct": false,
"version": "18.2.0",
"ecosystem": "npm"
},
{
"name": "rechoir",
"direct": false,
"version": "0.7.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": "resolve",
"direct": false,
"version": "1.22.8",
"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": "2.0.2",
"ecosystem": "npm"
},
{
"name": "reusify",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "run-parallel",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "schema-utils",
"direct": false,
"version": "4.3.3",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "6.3.1",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "7.8.4",
"ecosystem": "npm"
},
{
"name": "shallow-clone",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "shebang-command",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "shebang-regex",
"direct": false,
"version": "3.0.0",
"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": "source-map",
"direct": false,
"version": "0.6.1",
"ecosystem": "npm"
},
{
"name": "source-map-support",
"direct": false,
"version": "0.5.13",
"ecosystem": "npm"
},
{
"name": "source-map-support",
"direct": false,
"version": "0.5.21",
"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": "string-length",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "string-width",
"direct": false,
"version": "4.2.3",
"ecosystem": "npm"
},
{
"name": "strip-ansi",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "strip-bom",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "strip-final-newline",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "strip-json-comments",
"direct": false,
"version": "3.1.1",
"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-preserve-symlinks-flag",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "synckit",
"direct": false,
"version": "0.8.8",
"ecosystem": "npm"
},
{
"name": "tapable",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "terser",
"direct": false,
"version": "5.44.1",
"ecosystem": "npm"
},
{
"name": "terser-webpack-plugin",
"direct": false,
"version": "5.5.0",
"ecosystem": "npm"
},
{
"name": "test-exclude",
"direct": false,
"version": "6.0.0",
"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": "ts-api-utils",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "ts-jest",
"direct": false,
"version": "29.4.11",
"ecosystem": "npm"
},
{
"name": "ts-node",
"direct": false,
"version": "10.9.2",
"ecosystem": "npm"
},
{
"name": "tslib",
"direct": false,
"version": "2.6.2",
"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.21.3",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "4.41.0",
"ecosystem": "npm"
},
{
"name": "typescript",
"direct": false,
"version": "5.8.3",
"ecosystem": "npm"
},
{
"name": "uglify-js",
"direct": false,
"version": "3.19.3",
"ecosystem": "npm"
},
{
"name": "undici-types",
"direct": false,
"version": "6.21.0",
"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": "v8-compile-cache-lib",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "v8-to-istanbul",
"direct": false,
"version": "9.2.0",
"ecosystem": "npm"
},
{
"name": "walker",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "watchpack",
"direct": false,
"version": "2.5.0",
"ecosystem": "npm"
},
{
"name": "webpack",
"direct": false,
"version": "5.104.1",
"ecosystem": "npm"
},
{
"name": "webpack-cli",
"direct": false,
"version": "4.10.0",
"ecosystem": "npm"
},
{
"name": "webpack-merge",
"direct": false,
"version": "5.10.0",
"ecosystem": "npm"
},
{
"name": "webpack-sources",
"direct": false,
"version": "3.3.3",
"ecosystem": "npm"
},
{
"name": "which",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "wildcard",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "wordwrap",
"direct": false,
"version": "1.0.0",
"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": "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": "yargs",
"direct": false,
"version": "17.7.2",
"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": 472,
"direct_count": 5,
"indirect_count": 467
}
},
"maintainership": {
"issues": {
"open_prs": 2,
"merged_prs": 107,
"open_issues": 0,
"closed_ratio": 1,
"closed_issues": 16,
"closed_unmerged_prs": 24
},
"bus_factor": 1,
"bot_contributors": 2,
"top_contributors": [
{
"type": "User",
"login": "tiagosiebler",
"commits": 228,
"avatar_url": "https://avatars.githubusercontent.com/u/14090872?v=4"
},
{
"type": "User",
"login": "JJ-Cro",
"commits": 188,
"avatar_url": "https://avatars.githubusercontent.com/u/83344666?v=4"
},
{
"type": "User",
"login": "abellsmythe",
"commits": 13,
"avatar_url": "https://avatars.githubusercontent.com/u/24487527?v=4"
},
{
"type": "User",
"login": "ucmahdi",
"commits": 5,
"avatar_url": "https://avatars.githubusercontent.com/u/76846448?v=4"
},
{
"type": "User",
"login": "snyk-bot",
"commits": 4,
"avatar_url": "https://avatars.githubusercontent.com/u/19733683?v=4"
}
],
"contributors_sampled": 5,
"top_contributor_share": 0.521
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"e2etest.yml",
"npmpublish.yml",
"templates-readme.yml"
],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"package-lock.json"
],
"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": 3,
"reason": "5 out of 13 merged PRs checked by a CI test -- score normalized to 3",
"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": 5,
"reason": "Found 8/15 approved changesets -- score normalized to 5",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 5 contributing companies or organizations",
"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": "23 commit(s) and 2 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": 3,
"reason": "dependency not pinned by hash detected -- score normalized to 3",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not 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": 0,
"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": "14 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "718e976fb9e0302413ea8351ea09b80ed9c6cfab",
"ran_at": "2026-07-23T00:25:15Z",
"aggregate_score": 5.4,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-22T07:19:03Z",
"oldest_open_prs": [
{
"number": 146,
"created_at": "2026-07-16T14:17:07Z",
"last_comment_at": "2026-07-16T14:17:08Z",
"last_comment_author": "tiagosiebler"
},
{
"number": 149,
"created_at": "2026-07-20T20:18:41Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-07-17T16:29:26Z",
"ci_last_conclusion": "FAILURE",
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/tiagosiebler/kucoin-api",
"host": "github.com",
"name": "kucoin-api",
"owner": "tiagosiebler"
},
"metrics": {
"overall": {
"key": "overall",
"band": "at_risk",
"name": "Overall health",
"note": "High-Risk Jurisdiction Policy applies a 50% multiplier to weighted overall health and gives it an At risk ceiling of 49.",
"notes": [
{
"code": "jurisdiction_overall_adjustment",
"params": {
"cap": 49,
"pct": 50
}
}
],
"value": 32,
"inputs": {
"security": 35,
"vitality": 89,
"community": 51,
"governance": 70,
"engineering": 68,
"high_risk_jurisdiction_cap": 49,
"high_risk_jurisdiction_multiplier": 50,
"weighted_overall_before_jurisdiction": 65,
"overall_after_jurisdiction_multiplier": 32
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "excellent",
"name": "Vitality",
"value": 89,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "good",
"name": "Development activity",
"note": null,
"notes": [],
"value": 82,
"inputs": {
"commits_last_year": 162,
"human_commit_share": 0.97,
"days_since_last_push": 2,
"active_weeks_last_year": 26
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 2 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 2
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "26/52 weeks with commits",
"points": 18,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 26
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "162 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 162
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "23 commit(s) and 2 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": 21,
"latest_release_tag": "v2.6.1",
"releases_from_tags": false,
"days_since_latest_release": 5,
"mean_days_between_releases": 18.7
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "21 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 21
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 5 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 5
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~18.7 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 18.7
}
}
],
"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": 5,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 5 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 5
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "moderate",
"name": "Community & Adoption",
"value": 51,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 25,
"inputs": {
"forks": 8,
"stars": 14,
"watchers": 2,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "14 stars",
"points": 18.1,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 14
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "8 forks",
"points": 7,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 8
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "2 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 2
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "good",
"name": "Community health",
"note": null,
"notes": [],
"value": 72,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": false,
"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 (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"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": "moderate",
"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": 65,
"inputs": {
"packages": [
"kucoin-api"
],
"dependents": null,
"ecosystems": "npm",
"total_downloads": null,
"monthly_downloads": 8160
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "8,160 downloads/month across npm",
"points": 52.2,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 8160,
"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": 37,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 5,
"top_contributor_share": 0.521
},
"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 52% of commits",
"points": 10.8,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 52
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "5 contributors",
"points": 6.8,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 5
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 5 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "excellent",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 86,
"inputs": {
"merged_prs": 107,
"open_issues": 0,
"closed_issues": 16,
"issue_closed_ratio": 1,
"closed_unmerged_prs": 24
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "100% of issues closed",
"points": 46.8,
"status": "met",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 100
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "107/131 decided PRs merged",
"points": 31.2,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 107,
"decided": 131
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 8/15 approved changesets -- score normalized to 5",
"points": 7.5,
"status": "partial",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 68,
"inputs": {
"followers": 468,
"owner_type": "User",
"is_verified": null,
"owner_login": "tiagosiebler",
"public_repos": 160,
"account_age_days": 3976
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "personal (user) account",
"points": 10,
"status": "partial",
"details": [
{
"code": "owner_personal",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": "not applicable to user accounts",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_applicable_to_user_accounts",
"params": {}
}
],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "468 followers of tiagosiebler",
"points": 19.2,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 468,
"login": "tiagosiebler"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "160 public repos, account ~10 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 160
}
},
{
"code": "account_age_years",
"params": {
"years": 10
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"kucoin-api"
],
"ecosystems": "npm",
"any_deprecated": false,
"min_days_since_publish": 5
},
"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 5 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 5
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "71 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 71
}
}
],
"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": "moderate",
"name": "Engineering Quality",
"value": 68,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 54,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "3 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 3
}
}
],
"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": null,
"points": 0,
"status": "missed",
"details": [],
"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": "5 out of 13 merged PRs checked by a CI test -- score normalized to 3",
"points": 6,
"status": "partial",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "excellent",
"name": "Documentation",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"topics": [
"javascript",
"kucoin",
"kucoin-api",
"nodejs",
"typescript",
"kucoin-api-node",
"kucoin-example",
"kucoin-javascript",
"kucoin-javascript-api",
"kucoin-node-api",
"kucoin-nodejs",
"kucoin-nodejs-api",
"kucoin-rest-api",
"kucoin-typescript",
"kucoin-typescript-api",
"kucoin-websocket-api",
"kucoin-websockets"
],
"has_wiki": false,
"homepage": "https://siebly.io/sdk/kucoin/javascript",
"has_readme": true,
"has_docs_dir": true,
"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": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://siebly.io/sdk/kucoin/javascript",
"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": "17 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 17
}
}
],
"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": "at_risk",
"name": "Security",
"value": 35,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "critical",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized. High-Risk Jurisdiction Policy applies a 50% multiplier to Security posture and gives it an At risk ceiling of 49.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"packaging",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "jurisdiction_posture_adjustment",
"params": {
"cap": 49,
"pct": 50
}
}
],
"value": 27,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 16,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 2,
"scorecard_aggregate": 5.4,
"high_risk_jurisdiction_cap": 49,
"high_risk_jurisdiction_multiplier": 50,
"security_posture_after_multiplier": 27,
"security_posture_before_jurisdiction": 54
},
"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": "5 out of 13 merged PRs checked by a CI test -- score normalized to 3",
"points": 0.8,
"status": "partial",
"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": "Found 8/15 approved changesets -- score normalized to 5",
"points": 3.8,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 5 contributing companies or organizations",
"points": 2.5,
"status": "met",
"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": "23 commit(s) and 2 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 3",
"points": 1.5,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is not run on all commits -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"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": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "14 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "moderate",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 472 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"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_repository",
"params": {
"assessed": 472
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 69,
"inputs": {
"source": "osv",
"advisories": 15,
"affected_packages": 5,
"assessed_packages": 472,
"unassessed_packages": 0,
"affected_by_severity": "high 5",
"direct_affected_packages": 1
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "1 affected: axios 1.17.0 (high 8.2)",
"points": 12,
"status": "partial",
"details": [
{
"code": "advisories_affected",
"params": {
"count": 1,
"packages": "axios 1.17.0 (high 8.2)"
}
}
],
"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 has been public longer than 90 days",
"points": 40,
"status": "met",
"details": [
{
"code": "advisories_none_stale",
"params": {
"days": 90
}
}
],
"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": 472,
"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": "moderate",
"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": 50,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": true,
"exposures": [
{
"role": "top_contributor",
"count": 1,
"country": "Iran"
}
],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 3
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "Iran: top_contributor (1)",
"points": 50,
"status": "partial",
"details": [
{
"code": "jurisdiction_exposure",
"params": {
"role": "top_contributor",
"count": 1,
"country": "Iran"
}
}
],
"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": 61,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "moderate",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 55,
"inputs": {
"has_llms_txt": true,
"legible_history_share": 0.907,
"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": "llms.txt present",
"points": 15,
"status": "met",
"details": [
{
"code": "llms_txt_present",
"params": {}
}
],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "88 of 97 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 88,
"sampled": 97
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 58,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"package-lock.json"
],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [
"tsconfig.json"
],
"agent_commit_share": 0.02,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0.01
},
"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": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "tsconfig.json"
}
}
],
"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": "2 of the last 100 commits agent-authored or agent-credited",
"points": 4,
"status": "partial",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 2,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "1 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 1,
"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 3",
"points": 3,
"status": "partial",
"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": 79790,
"source_files_sampled": 422,
"oversized_source_files": 1
},
"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": "1/422 source files over 60KB",
"points": 54.9,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 422,
"oversized": 1
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"examples"
],
"has_mcp_signal": false,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"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": "examples",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples"
}
}
],
"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",
"deps.dev does not index npm:kucoin-api@2.6.1; advisories assessed against the repository dependency graph instead"
],
"report_type": "repository",
"generated_at": "2026-07-23T00:25:31.427242Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/t/tiagosiebler/kucoin-api.svg",
"full_name": "tiagosiebler/kucoin-api",
"license_state": "standard",
"license_spdx": "MIT"
}