npm omniroute @3.8.41
score
0.6
med
flagged
2026-06-29 22:31
Signals fired
| signal | weight | rationale |
|---|---|---|
| content | ||
| script_count_spike | 0.5 | scripts count 120 -> 131 |
| topology | ||
| dependency_added_unknown | 0.6 | 1 new non-watchlisted dep(s): ['dompurify'] |
| enrichment | ||
| repo_too_new_for_version_history | 0.7 | claimed repo created 136d ago but package has 280 versions (expect >= 146d for that history) |
Prior profile (what it deviated from)
{
"had_install_script": true,
"maintainers": [
"diegosouza.pw"
],
"versions": 271
}
Evidence (package doc at flag time)
{
"dependencies_count": 71,
"dist": {
"integrity": "sha512-7XUUVdziBkd0wCDGQ1VbXxmjscUq+RuF1vjO87Z4vxSw+1Adu0NzfpTGWSn99aEtzRUBSAuk1XmeuBZfGRf4QQ==",
"tarball": "https://registry.npmjs.org/omniroute/-/omniroute-3.8.41.tgz",
"unpackedSize": 453006701
},
"dist-tags": {
"latest": "3.8.41"
},
"latest_version": "3.8.41",
"maintainers": [
{
"email": "diegosouza.pw@outlook.com",
"name": "diegosouza.pw"
}
],
"num_versions": 280,
"repository": {
"type": "git",
"url": "git+https://github.com/diegosouzapw/OmniRoute.git"
},
"scripts": {
"audit:deps": "npm audit --audit-level=critical && (npm audit --audit-level=high || echo '::warning::high-severity advisories present (non-blocking)') && npm run audit:electron",
"audit:electron": "npm --prefix electron audit --audit-level=critical && (npm --prefix electron audit --audit-level=high || echo '::warning::electron high-severity advisories present (non-blocking)')",
"backfill-aggregation": "node --import tsx src/scripts/backfillAggregation.ts",
"bench:compression": "node --import tsx scripts/compression/benchmark.ts",
"build": "node scripts/build/build-next-isolated.mjs",
"build:cli": "node --import tsx scripts/build/prepublish.ts",
"build:cli-api": "node --import tsx/esm scripts/cli/generate-api-commands.mjs",
"build:native:tproxy": "cd src/mitm/tproxy/native && npx --yes node-gyp rebuild",
"build:release": "rm -rf .build dist && OMNIROUTE_BUILD_SHA=$(git rev-parse --short HEAD) npm run build && npm run build:cli && node scripts/build/write-build-sha.mjs",
"build:secure": "OMNIROUTE_BUILD_PROFILE=minimal node scripts/build/build-next-isolated.mjs",
"check": "npm run lint && npm run test",
"check:any-budget:t11": "node scripts/check/check-t11-any-budget.mjs",
"check:build-scope": "node scripts/check/check-build-scope.mjs",
"check:bundle-size": "node scripts/check/check-bundle-size.mjs",
"check:circular-deps": "node scripts/check/check-circular-deps.mjs",
"check:cli-i18n": "node scripts/check/check-cli-i18n.mjs",
"check:codeql-ratchet": "node scripts/check/check-codeql-ratchet.mjs",
"check:cognitive-complexity": "node scripts/check/check-cognitive-complexity.mjs",
"check:complexity": "node scripts/check/check-complexity.mjs",
"check:compression-budget": "node --import tsx scripts/check/check-compression-budget.ts",
"check:cycles": "node scripts/check/check-cycles.mjs",
"check:db-rules": "node scripts/check/check-db-rules.mjs",
"check:dead-code": "node scripts/check/check-dead-code.mjs",
"check:deprecated-versions": "node scripts/check/check-deprecated-versions.mjs",
"check:deps": "node scripts/check/check-deps.mjs",
"check:doc-links": "node scripts/check/check-doc-links.mjs",
"check:docs-all": "npm run check:docs-sync && npm run check:docs-counts && npm run check:env-doc-sync && npm run check:deprecated-versions && npm run check:doc-links && npm run check:fabricated-docs",
"check:docs-counts": "node scripts/check/check-docs-counts-sync.mjs",
"check:docs-symbols": "node scripts/check/check-docs-symbols.mjs",
"check:docs-sync": "node scripts/check/check-docs-sync.mjs",
"check:duplication": "node scripts/check/check-duplication.mjs",
"check:env-doc-sync": "node scripts/check/check-env-doc-sync.mjs",
"check:error-helper": "node scripts/check/check-error-helper.mjs",
"check:fabricated-docs": "node scripts/check/check-fabricated-docs.mjs --strict",
"check:fetch-targets": "node scripts/check/check-fetch-targets.mjs",
"check:file-size": "node scripts/check/check-file-size.mjs",
"check:known-symbols": "node --import tsx scripts/check/check-known-symbols.ts",
"check:licenses": "node scripts/check/check-licenses.mjs",
"check:lockfile": "node scripts/check/check-lockfile.mjs",
"check:migration-numbering": "node scripts/check/check-migration-numbering.mjs",
"check:mutation-ratchet": "node scripts/check/check-mutation-ratchet.mjs",
"check:node-runtime": "node --import tsx scripts/check/check-supported-node-runtime.ts",
"check:openapi-breaking": "node scripts/check/check-openapi-breaking.mjs",
"check:openapi-coverage": "node scripts/check/check-openapi-coverage.mjs",
"check:openapi-routes": "node scripts/check/check-openapi-routes.mjs",
"check:openapi-security-tiers": "node scripts/check/check-openapi-security-tiers.mjs",
"check:pack-artifact": "node --import tsx scripts/build/validate-pack-artifact.ts",
"check:pack-policy": "node --import tsx scripts/build/validate-pack-artifact.ts --policy-only",
"check:pr-evidence": "node scripts/check/check-pr-evidence.mjs",
"check:pr-test-policy": "node scripts/check/check-pr-test-policy.mjs",
"check:provider-assets": "node scripts/check/check-provider-assets.mjs",
"check:provider-consistency": "node --import tsx scripts/check/check-provider-consistency.ts",
"check:public-creds": "node scripts/check/check-public-creds.mjs",
"check:release-green": "node scripts/quality/validate-release-green.mjs",
"check:route-guard-membership": "node --import tsx scripts/check/check-route-guard-membership.ts",
"check:route-validation:t06": "node scripts/check/check-route-validation.mjs",
"check:secrets": "node scripts/check/check-secrets.mjs",
"check:test-discovery": "node scripts/check/check-test-discovery.mjs",
"check:test-masking": "node scripts/check/check-test-masking.mjs",
"check:test-runner-api": "node scripts/check/check-test-runner-api.mjs",
"check:tracked-artifacts": "node scripts/check/check-tracked-artifacts.mjs",
"check:type-coverage": "node scripts/check/check-type-coverage.mjs",
"check:vuln-ratchet": "node scripts/check/check-vuln-ratchet.mjs",
"check:workflows": "node scripts/check/check-workflows.mjs",
"coverage:report": "cross-env NODE_OPTIONS=--max-old-space-size=8192 c8 report --merge-async --output-dir coverage --exclude=tests/** --exclude=**/*.test.* --reporter=text --reporter=text-summary --reporter=html --reporter=json-summary --reporter=lcov",
"coverage:report:legacy": "c8 report --output-dir coverage --exclude=open-sse --reporter=text --reporter=text-summary",
"coverage:summary": "node scripts/check/test-report-summary.mjs --input coverage/coverage-summary.json --output coverage/coverage-report.md",
"dev": "node --max-old-space-size=8192 scripts/dev/run-next.mjs dev",
"docs:render-diagrams": "node scripts/docs/render-diagrams.mjs",
"electron:build": "npm run build && cd electron && npm run build",
"electron:build:linux": "npm run build && cd electron && npm run build:linux",
"electron:build:mac": "npm run build && cd electron && npm run build:mac",
"electron:build:win": "npm run build && cd electron && npm run build:win",
"electron:dev": "concurrently \"npm run dev\" \"wait-on http://localhost:20128 && cd electron && npm run dev\"",
"electron:smoke:packaged": "node scripts/dev/smoke-electron-packaged.mjs",
"env:sync": "node scripts/dev/sync-env.mjs",
"eval:compression": "node --import tsx scripts/compression-eval/index.ts",
"gen:provider-reference": "node --import tsx scripts/docs/gen-provider-reference.ts",
"i18n:check": "node scripts/i18n/check-translation-drift.mjs",
"i18n:check-ui-coverage": "node scripts/i18n/check-ui-keys-coverage.mjs",
"i18n:run": "node scripts/i18n/run-translation.mjs",
"i18n:run:dry": "node scripts/i18n/run-translation.mjs --dry-run",
"i18n:sync-ui": "node scripts/i18n/sync-ui-keys.mjs",
"i18n:sync-ui:dry": "node scripts/i18n/sync-ui-keys.mjs --dry-run",
"lint": "eslint .",
"lint:md": "npx --yes markdownlint-cli2 \"docs/**/*.md\" \"*.md\" \"!docs/i18n\" \"!docs/research\"",
"lint:prose": "vale docs",
"postinstall": "node scripts/build/postinstall.mjs",
"prebuild:docs": "node scripts/docs/gen-openapi-module.mjs",
"prepare": "husky",
"prepublishOnly": "npm run build:cli-api && npm run build:cli && npm run check:pack-artifact",
"quality:collect": "node scripts/quality/collect-metrics.mjs",
"quality:gate": "npm run quality:collect && npm run quality:ratchet -- --allow-missing",
"quality:ratchet": "node scripts/quality/check-quality-ratchet.mjs",
"quality:scan": "node scripts/quality/run-all-gates.mjs",
"quality:scan:fast": "node scripts/quality/run-all-gates.mjs --fast",
"release:sync-changelog-i18n": "node scripts/release/sync-changelog-i18n.mjs",
"start": "node scripts/dev/run-next.mjs start",
"system-info": "node scripts/dev/system-info.mjs",
"test": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-concurrency=20 tests/unit/*.test.ts \"tests/unit/{api,auth,authz,build,cli,cli-helper,combo,compression,correctness,cors,dashboard,db,db-adapters,docs,gamification,guardrails,lib,mcp,runtime,security,services,settings,shared,ui,usage}/**/*.test.ts\"",
"test:all": "npm run test:unit && npm run test:vitest && npm run test:vitest:ui && npm run test:ecosystem && npm run test:e2e",
"test:chaos": "cross-env RUN_CHAOS_INT=1 node --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 tests/integration/resilience-chaos.test.ts",
"test:combo:live": "cross-env RUN_COMBO_LIVE=1 DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 \"tests/integration/combo-live/*.live.test.ts\"",
"test:combo:live:vps": "node scripts/test/combo-live-vps.mjs",
"test:combo:live:vps:failover": "node scripts/test/combo-live-vps.mjs --failover",
"test:combo:matrix": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 \"tests/integration/combo-matrix/*.test.ts\"",
"test:coverage": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true NODE_OPTIONS=--max-old-space-size=8192 c8 --merge-async --output-dir coverage --exclude=tests/** --exclude=**/*.test.* --reporter=text-summary --reporter=html --reporter=json-summary --reporter=lcov --check-coverage --statements 60 --lines 60 --functions 60 --branches 60 node --max-old-space-size=8192 --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=8 tests/unit/*.test.ts \"tests/unit/{api,auth,authz,build,cli,cli-helper,combo,compression,correctness,cors,dashboard,db,db-adapters,docs,gamification,guardrails,lib,mcp,runtime,security,services,settings,shared,ui,usage}/**/*.test.ts\"",
"test:coverage:legacy": "c8 --output-dir coverage --exclude=open-sse --check-coverage --lines 50 --functions 50 --branches 50 node --import tsx --test tests/unit/*.test.ts",
"test:e2e": "node scripts/dev/run-playwright-tests.mjs test tests/e2e/*.spec.ts",
"test:ecosystem": "node scripts/dev/run-ecosystem-tests.mjs",
"test:fixes": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test tests/unit/fixes-p1.test.ts",
"test:heap": "node --expose-gc --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit tests/integration/heap-growth.test.ts",
"test:integration": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 tests/integration/*.test.ts \"tests/integration/combo-matrix/*.test.ts\"",
"test:mutation": "stryker run",
"test:plan3": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test tests/unit/plan3-p0.test.ts",
"test:property": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx --test --test-force-exit tests/unit/correctness/*.property.test.ts",
"test:protocols:e2e": "node scripts/dev/run-protocol-clients-tests.mjs",
"test:security": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test tests/unit/security-fase01.test.ts",
"test:system": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 tests/e2e/system-failover.test.ts",
"test:unit": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=20 tests/unit/*.test.ts \"tests/unit/{api,auth,authz,build,cli,cli-helper,combo,compression,correctness,cors,dashboard,db,db-adapters,docs,gamification,guardrails,lib,mcp,runtime,security,services,settings,shared,ui,usage}/**/*.test.ts\"",
"test:unit:ci": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=4 tests/unit/*.test.ts \"tests/unit/{api,auth,authz,build,cli,cli-helper,combo,compression,correctness,cors,dashboard,db,db-adapters,docs,gamification,guardrails,lib,mcp,runtime,security,services,settings,shared,ui,usage}/**/*.test.ts\"",
"test:unit:fast": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-isolation=none tests/unit/*.test.ts \"tests/unit/{api,auth,authz,build,cli,cli-helper,combo,compression,correctness,cors,dashboard,db,db-adapters,docs,gamification,guardrails,lib,mcp,runtime,security,services,settings,shared,ui,usage}/**/*.test.ts\"",
"test:unit:shard": "concurrently --kill-others-on-fail -n s1,s2 \"npm:test:unit:shard:1\" \"npm:test:unit:shard:2\"",
"test:unit:shard:1": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=10 --test-shard=1/2 tests/unit/*.test.ts \"tests/unit/{api,auth,authz,build,cli,cli-helper,combo,compression,correctness,cors,dashboard,db,db-adapters,docs,gamification,guardrails,lib,mcp,runtime,security,services,settings,shared,ui,usage}/**/*.test.ts\"",
"test:unit:shard:2": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=10 --test-shard=2/2 tests/unit/*.test.ts \"tests/unit/{api,auth,authz,build,cli,cli-helper,combo,compression,correctness,cors,dashboard,db,db-adapters,docs,gamification,guardrails,lib,mcp,runtime,security,services,settings,shared,ui,usage}/**/*.test.ts\"",
"test:vitest": "vitest run --config vitest.mcp.config.ts",
"test:vitest:ui": "vitest run --config vitest.config.ts tests/unit/ui",
"typecheck:core": "tsc --pretty false -p tsconfig.typecheck-core.json",
"typecheck:noimplicit:core": "tsc --pretty false -p tsconfig.typecheck-noimplicit-core.json",
"uninstall": "node scripts/build/uninstall.mjs",
"uninstall:full": "node scripts/build/uninstall.mjs --full"
},
"signal_details": {
"dependency_added_unknown": "1 new non-watchlisted dep(s): ['dompurify']",
"repo_too_new_for_version_history": "claimed repo created 136d ago but package has 280 versions (expect >= 146d for that history)",
"script_count_spike": "scripts count 120 -> 131"
},
"time": {
"created": "2026-02-14T07:41:10.173Z",
"modified": "2026-06-29T20:55:07.228Z"
}
}