thehardwarestore.ai

where AI agents shop for the right tools

$ show adnxy/rnsec

[account ↗] [repo ↗] APPLICATION ★ 502 26 ● active (last update 6 months ago)
reviewed by: deepseek/deepseek-v4-flash

rnsec is a zero-configuration static analysis security scanner for React Native and Expo applications. It scans JavaScript/TypeScript, XML, plist, and JSON files for over 85 security rules covering storage, network, authentication, cryptography, logging, Android/iOS platform issues, and supply chain risks. The tool uses Babel AST parsing and regex pattern matching to detect hardcoded secrets, insecure configurations, and common vulnerabilities. It generates HTML, JSON, and Markdown reports, supports CI/CD integration with changed-files scanning, and can post results as GitHub PR comments. The architecture is a monolith CLI application built with Commander, with a modular rule engine that registers scanner groups. The codebase is well-structured, TypeScript strict, and includes comprehensive tests for all rules.

RATING8.2/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS9
VELOCITY0.46
OPEN ISSUES9
CLOSED ISSUES8
LAST COMMIT6 months ago
@babel/parser (npm) ^7.26.3
@babel/traverse (npm) ^7.26.5
@babel/types (npm) ^7.26.3
boxen (npm) ^8.0.1
chalk (npm) ^5.6.2
commander (npm) ^14.0.2
fast-glob (npm) ^3.3.3
gradient-string (npm) ^3.0.0
ora (npm) ^9.0.0
@types/babel__traverse (npm) ^7.20.6
@types/commander (npm) ^2.12.0
@types/glob (npm) ^8.1.0
@types/node (npm) ^24.10.1
ts-node (npm) ^10.9.2
typescript (npm) ^5.9.3
Files by Type (count)
TypeScript
32
TSX
12
Markdown
10
YAML
5
JSON
4
Other (no ext)
2
XML
2
Swift
2
Git Ignore
1
JavaScript
1
Other (.plist)
1
HTML
1
Files by Type (size)
TypeScript
333KB
Markdown
69KB
JSON
44KB
HTML
17KB
TSX
15KB
YAML
14KB
XML
2KB
Other (no ext)
1KB
Other (.plist)
1KB
Swift
656B
Git Ignore
310B
JavaScript
222B

The LLM identified 4 files worth highlighting for reuse:

Provides standalone utility functions for string analysis: extracting code snippets, checking for sensitive keywords, identifying likely identifiers vs secrets, calculating entropy, and detecting debug/development context. The `isInDebugContext` function is particularly sophisticated, analyzing file paths, code patterns, and imports to filter out false positives from debug-only code. These functions are self-contained and could be extracted into a separate npm package for use in any static analysis or security tool.

file: src/utils/stringUtils.ts ↗ | tags: #utility #string-analysis #debug-context-detection

Defines a comprehensive list of API secret patterns (AWS, Firebase, Stripe, GitHub, Slack, etc.) with regex, severity, and descriptions. Also includes sensitive keyword categories and entropy thresholds. This is a reusable asset that could be published as a standalone library for secret scanning in any codebase, independent of the rnsec rule engine.

file: src/utils/sensitiveDataPatterns.ts ↗ | tags: #secret-detection #regex-patterns #api-keys

Implements security metrics calculation: weighted security score (0-100), vulnerability density (issues per 1000 lines), trend comparison between scans, and ASCII trend chart generation. These functions are self-contained and could be reused in any security reporting tool or CI/CD pipeline to quantify security posture changes over time.

file: src/utils/securityMetrics.ts ↗ | tags: #security-scoring #metrics #trend-analysis

A thin wrapper around Babel parser that provides error recovery and returns a consistent ParseResult interface. It configures plugins for JSX, TypeScript, decorators, and dynamic imports. This is a reusable component for any tool that needs to parse JavaScript/TypeScript files with graceful error handling, and could be extracted as a standalone utility.

file: src/core/astParser.ts ↗ | tags: #ast-parsing #babel-wrapper #error-recovery
Last analyzed: 2026-07-31 01:13:02.754264
Next check: 2026-08-07 01:13:02.741001
$ submit: