{"bin":{"omniroute":"bin/omniroute.mjs","omniroute-reset-password":"bin/reset-password.mjs"},"bugs":{"url":"https://github.com/diegosouzapw/OmniRoute/issues"},"dist":{"shasum":"12e56f049e617edca50cc17835ea807dbf8c2042","tarball":"https://registry.npmjs.org/omniroute/-/omniroute-3.8.51.tgz","fileCount":26761,"integrity":"sha512-VwwSt+bP9lJiPJXFJMz0nNGGuoewPZU3nFe1SLuO11ADgdSwTegGCxhg8Ov75+31m/cocPxHiO63zygn1XQ0MQ==","signatures":[{"sig":"MEUCIQCxRMXdyBj3ooifS0Veon/pnND1PGtJPQCCx88ks1aDKQIgTTrkDCBjsUTuAXPtnnSPxhVfzEBtA4KWbmxMFh/dMKg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDypCGtgQ439mt91HIgpSgo5TuIR3zZpr0sZwW/s9ZyfQIhAP1pWJfAR5zqTeTsvL0qzLiwgpueez8eP6FWHIIoZsRw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/omniroute@3.8.51","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":546111751},"name":"omniroute","pnpm":{"onlyBuiltDependencies":["@parcel/watcher","@swc/core","better-sqlite3","esbuild","omniroute","sharp"]},"type":"module","_from":"file:omniroute-3.8.51.tgz","author":{"name":"diegosouzapw"},"engines":{"node":">=22.22.2 <23 || >=24.0.0 <27"},"license":"MIT","scripts":{"dev":"node --max-old-space-size=8192 scripts/dev/run-next.mjs dev","lint":"eslint . --cache --cache-location .eslintcache --suppressions-location config/quality/eslint-suppressions.json","test":"cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --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,db,db-adapters,docs,gamification,guardrails,lib,mcp,memory,runtime,security,services,settings,shared,translator,ui,usage}/**/*.test.ts\" \"tests/unit/**/*.test.mjs\" && 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/dashboard/**/*.test.ts\" && npm run test:unit:serial","build":"node scripts/build/build-next-isolated.mjs","check":"npm run lint && npm run test","start":"node scripts/dev/run-next.mjs start","homolog":"node scripts/homolog/run.mjs","lint:md":"npx --yes markdownlint-cli2 \"docs/**/*.md\" \"*.md\" \"!docs/i18n\" \"!docs/research\"","prepare":"node -e \"try{require.resolve('husky')}catch(e){process.exit(0)};require('child_process').execSync('husky',{stdio:'inherit'})\"","env:sync":"node scripts/dev/sync-env.mjs","i18n:run":"node scripts/i18n/run-translation.mjs","prebuild":"npm run check:native-deps","test:all":"npm run test:unit && npm run test:vitest && npm run test:vitest:ui && npm run test:ecosystem && npm run test:e2e","test:e2e":"node scripts/dev/run-playwright-tests.mjs test tests/e2e/*.spec.ts","build:cli":"node --import tsx scripts/build/prepublish.ts","lint:json":"node scripts/quality/run-eslint-json.mjs","postbuild":"node scripts/build/colocate-standalone.mjs","test:heap":"node --expose-gc --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit tests/integration/heap-growth.test.ts","test:unit":"cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --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,db,db-adapters,docs,gamification,guardrails,lib,mcp,memory,runtime,security,services,settings,shared,translator,ui,usage}/**/*.test.ts\" \"tests/unit/**/*.test.mjs\" && 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/dashboard/**/*.test.ts\" && npm run test:unit:serial","uninstall":"node scripts/build/uninstall.mjs","audit:deps":"npm audit --audit-level=critical && (npm audit --audit-level=high || echo '::warning::high-severity advisories present (non-blocking)') && npm run audit:electron","build:fast":"cross-env OMNIROUTE_SKIP_STANDALONE=1 node scripts/build/build-next-isolated.mjs","check:deps":"node scripts/check/check-deps.mjs","i18n:check":"node scripts/i18n/check-translation-drift.mjs","lint:prose":"vale docs","start:fast":"cross-env OMNIROUTE_SKIP_STANDALONE=1 node scripts/dev/run-next.mjs start","test:chaos":"cross-env RUN_CHAOS_INT=1 node --import tsx/esm --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:fixes":"cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test tests/unit/fixes-p1.test.ts","test:plan3":"cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test tests/unit/plan3-p0.test.ts","eval:router":"node --import tsx scripts/router-eval/index.ts","postinstall":"node scripts/build/postinstall.mjs","system-info":"node scripts/dev/system-info.mjs","test:bun:db":"bun test tests/unit/db-adapters/bunSqliteAdapter.test.ts tests/unit/db-adapters/driverFactory.test.ts tests/unit/db-adapters/cliSqlite.test.mjs","test:scoped":"bash scripts/quality/test-scoped.sh","test:system":"cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --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:vitest":"vitest run --config vitest.mcp.config.ts","build:secure":"OMNIROUTE_BUILD_PROFILE=minimal node scripts/build/build-next-isolated.mjs","check:cycles":"node scripts/check/check-cycles.mjs","electron:dev":"concurrently \"npm run dev\" \"wait-on http://localhost:${PORT:-20128} && cd electron && npm run dev\"","i18n:run:dry":"node scripts/i18n/run-translation.mjs --dry-run","i18n:sync-ui":"node scripts/i18n/sync-ui-keys.mjs","quality:gate":"npm run quality:collect && npm run quality:ratchet -- --allow-missing","quality:scan":"node scripts/quality/run-all-gates.mjs","test:unit:ci":"cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --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,db,db-adapters,docs,gamification,guardrails,lib,mcp,memory,runtime,security,services,settings,shared,translator,ui,usage}/**/*.test.ts\" \"tests/unit/**/*.test.mjs\" && 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/dashboard/**/*.test.ts\" && npm run test:unit:serial","build:backend":"cross-env OMNIROUTE_BUILD_BACKEND_ONLY=1 node scripts/build/build-next-isolated.mjs","build:cli-api":"node --import tsx/esm scripts/cli/generate-api-commands.mjs","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","check:secrets":"node scripts/check/check-secrets.mjs","prebuild:docs":"node scripts/docs/gen-openapi-module.mjs","prebuild:fast":"npm run check:native-deps","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 npm run test:coverage:runner","test:mutation":"stryker run","test:property":"cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --test --test-force-exit tests/unit/correctness/*.property.test.ts","test:security":"cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test tests/unit/security-fase01.test.ts","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)')","check:cli-i18n":"node scripts/check/check-cli-i18n.mjs","check:db-rules":"node scripts/check/check-db-rules.mjs","check:docs-all":"npm run check:docs-sync && npm run check:docs-frontmatter && 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:licenses":"node scripts/check/check-licenses.mjs","check:lockfile":"node scripts/check/check-lockfile.mjs","electron:build":"npm run build && cd electron && npm run build","i18n:sync-bars":"node scripts/i18n/sync-language-bars.mjs","prepublishOnly":"npm run build:cli-api && npm run build:cli && npm run check:pack-artifact","test:ecosystem":"node scripts/dev/run-ecosystem-tests.mjs","test:unit:fast":"cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --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,db,db-adapters,docs,gamification,guardrails,lib,mcp,memory,runtime,security,services,settings,shared,translator,ui,usage}/**/*.test.ts\" \"tests/unit/**/*.test.mjs\" && 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/dashboard/**/*.test.ts\" && npm run test:unit:serial","test:vitest:ui":"vitest run --config vitest.config.ts","typecheck:core":"tsc --pretty false -p tsconfig.typecheck-core.json","uninstall:full":"node scripts/build/uninstall.mjs --full","bench:heap-body":"node --expose-gc --import tsx/esm scripts/perf/request-body-heap.ts","check:dead-code":"node scripts/check/check-dead-code.mjs","check:doc-links":"node scripts/check/check-doc-links.mjs","check:docs-sync":"node scripts/check/check-docs-sync.mjs","check:file-size":"node scripts/check/check-file-size.mjs","check:pack-boot":"node scripts/check/check-pack-boot.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","i18n:add-locale":"node scripts/i18n/add-locale.mjs","i18n:check-keys":"node scripts/i18n/check-key-completeness.mjs","quality:collect":"node scripts/quality/collect-metrics.mjs","quality:ratchet":"node scripts/quality/check-quality-ratchet.mjs","test:combo:live":"cross-env RUN_COMBO_LIVE=1 DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --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:unit:shard":"concurrently --kill-others-on-fail -n s1,s2 \"npm:test:unit:shard:1\" \"npm:test:unit:shard:2\"","check:complexity":"node scripts/check/check-complexity.mjs","coverage:summary":"node scripts/check/test-report-summary.mjs --input coverage/coverage-summary.json --output coverage/coverage-report.md","eval:compression":"node --import tsx scripts/compression-eval/index.ts","i18n:check-ratio":"node scripts/i18n/check-translation-ratio.mjs","i18n:sync-ui:dry":"node scripts/i18n/sync-ui-keys.mjs --dry-run","omniroute:verify":"node scripts/check/omniroute-verify.mjs","pretest:coverage":"rm -rf coverage","quality:headroom":"node scripts/quality/baseline-headroom.mjs","test:integration":"cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --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:scoped:full":"bash scripts/quality/test-scoped.sh --full","test:unit:serial":"cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 \"tests/unit/serial/**/*.test.ts\"","bench:compression":"bun scripts/compression/benchmark.ts","build:contributor":"cross-env OMNIROUTE_BUILD_PROFILE=contributor OMNIROUTE_USE_TURBOPACK=0 node scripts/build/build-next-isolated.mjs","check:build-scope":"node scripts/check/check-build-scope.mjs","check:bundle-size":"node scripts/check/check-bundle-size.mjs","check:docs-counts":"node scripts/check/check-docs-counts-sync.mjs","check:duplication":"node scripts/check/check-duplication.mjs","check:native-deps":"node scripts/check/check-native-deps.mjs","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:router-eval":"node --import tsx scripts/check/check-router-eval-regression.ts","check:rtl-ratchet":"node scripts/check/check-rtl-ratchet.mjs","quality:scan:fast":"node scripts/quality/run-all-gates.mjs --fast","release:reconcile":"node scripts/release/reconcile-changelog.mjs","release:uncovered":"node scripts/release/list-uncovered-commits.mjs","test:combo:matrix":"cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --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:unit:shard:1":"cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --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,db,db-adapters,docs,gamification,guardrails,lib,mcp,memory,runtime,security,services,settings,shared,translator,ui,usage}/**/*.test.ts\" \"tests/unit/**/*.test.mjs\" && 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/dashboard/**/*.test.ts\" && cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 --test-shard=1/2 \"tests/unit/serial/**/*.test.ts\"","test:unit:shard:2":"cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --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,db,db-adapters,docs,gamification,guardrails,lib,mcp,memory,runtime,security,services,settings,shared,translator,ui,usage}/**/*.test.ts\" \"tests/unit/**/*.test.mjs\" && 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/dashboard/**/*.test.ts\" && cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 --test-shard=2/2 \"tests/unit/serial/**/*.test.ts\"","check:docs-symbols":"node scripts/check/check-docs-symbols.mjs","check:env-doc-sync":"node scripts/check/check-env-doc-sync.mjs","check:error-helper":"node scripts/check/check-error-helper.mjs","check:node-runtime":"node --import tsx scripts/check/check-supported-node-runtime.ts","check:public-creds":"node scripts/check/check-public-creds.mjs","check:ratchet-bank":"node scripts/quality/verify-ratchet-bank.mjs","check:test-masking":"node scripts/check/check-test-masking.mjs","check:vuln-ratchet":"node scripts/check/check-vuln-ratchet.mjs","electron:build:mac":"npm run build && cd electron && npm run build:mac","electron:build:win":"npm run build && cd electron && npm run build:win","eval:router:search":"node --import tsx scripts/router-eval/search.ts","eval:router:trends":"node --import tsx scripts/router-eval/trends.ts","test:boundary:live":"cross-env RUN_BOUNDARY_LIVE=1 DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 \"tests/boundary/*.live.test.ts\"","test:protocols:e2e":"node scripts/dev/run-protocol-clients-tests.mjs","test:scoped:staged":"bash scripts/quality/test-scoped.sh --staged","test:unit:ci:shard":"cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=4 --test-shard=$TEST_SHARD tests/unit/*.test.ts \"tests/unit/{api,auth,authz,build,cli,cli-helper,combo,compression,correctness,cors,db,db-adapters,docs,gamification,guardrails,lib,mcp,memory,runtime,security,services,settings,shared,translator,ui,usage}/**/*.test.ts\" \"tests/unit/**/*.test.mjs\" && 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 --test-shard=$TEST_SHARD \"tests/unit/dashboard/**/*.test.ts\" && cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 --test-shard=$TEST_SHARD \"tests/unit/serial/**/*.test.ts\"","bench:highwatermark":"node --import tsx/esm scripts/perf/benchmark-highwatermark.ts","build:native:tproxy":"cd src/mitm/tproxy/native && npx --yes node-gyp rebuild","changelog:aggregate":"node scripts/release/aggregate-changelog.mjs","check:api-docs-refs":"node scripts/check/check-api-docs-refs.mjs","check:circular-deps":"node scripts/check/check-circular-deps.mjs","check:fetch-targets":"node scripts/check/check-fetch-targets.mjs","check:known-symbols":"bun scripts/check/check-known-symbols.ts","check:pack-artifact":"node --import tsx scripts/build/validate-pack-artifact.ts","check:release-green":"node scripts/quality/validate-release-green.mjs","check:type-coverage":"node scripts/check/check-type-coverage.mjs","eval:router:compare":"node --import tsx scripts/router-eval/compare.ts","i18n:check-glossary":"node scripts/i18n/check-glossary-consistency.mjs","i18n:check-keys:cli":"node scripts/i18n/check-key-completeness.mjs --catalog=cli","i18n:check-new-keys":"node scripts/i18n/check-new-key-coverage.mjs","test:combo:live:vps":"node scripts/test/combo-live-vps.mjs","test:integration:ci":"cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 --test-shard=$TEST_SHARD tests/integration/*.test.ts \"tests/integration/combo-matrix/*.test.ts\"","backfill-aggregation":"node --import tsx src/scripts/backfillAggregation.ts","bench:routing-events":"node --import tsx/esm scripts/perf/routing-events-bench.ts","check:ai-attribution":"node scripts/check/check-ai-attribution.mjs","check:any-budget:t11":"node scripts/check/check-t11-any-budget.mjs","check:codeql-ratchet":"node scripts/check/check-codeql-ratchet.mjs","check:openapi-routes":"node scripts/check/check-openapi-routes.mjs","check:pr-test-policy":"node scripts/check/check-pr-test-policy.mjs","check:test-discovery":"node scripts/check/check-test-discovery.mjs","docs:render-diagrams":"node scripts/docs/render-diagrams.mjs","electron:build:linux":"npm run build && cd electron && npm run build:linux","release:contributors":"node scripts/release/gen-contributors.mjs","test:coverage:legacy":"c8 --output-dir coverage --exclude=open-sse --check-coverage --lines 50 --functions 50 --branches 50 node --import tsx/esm --test tests/unit/*.test.ts","test:coverage:runner":"node --max-old-space-size=8192 --import tsx/esm --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,db,db-adapters,docs,gamification,guardrails,lib,mcp,memory,runtime,security,services,settings,shared,translator,ui,usage}/**/*.test.ts\" \"tests/unit/**/*.test.mjs\" && 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/dashboard/**/*.test.ts\" && npm run test:unit:serial","check:fabricated-docs":"node scripts/check/check-fabricated-docs.mjs --strict","check:install-upgrade":"node scripts/check/check-install-upgrade.mjs","check:model-lifecycle":"node --import tsx/esm scripts/check/check-model-lifecycle.mjs","check:provider-assets":"node scripts/check/check-provider-assets.mjs","check:radar-sentinels":"node scripts/check/check-radar-sentinels.mjs","check:test-runner-api":"node scripts/check/check-test-runner-api.mjs","sweep:stale-fragments":"node scripts/release/sweep-stale-fragments.mjs","alibaba:sync-allowlist":"node --import tsx/esm scripts/ops/sync-alibaba-allowlist.mjs","check:docs-frontmatter":"node scripts/check/check-docs-frontmatter.mjs","check:mutation-ratchet":"node scripts/check/check-mutation-ratchet.mjs","check:openapi-breaking":"node scripts/check/check-openapi-breaking.mjs","check:openapi-coverage":"node scripts/check/check-openapi-coverage.mjs","coverage:report:legacy":"c8 report --output-dir coverage --exclude=open-sse --reporter=text --reporter=text-summary","gen:provider-reference":"bun scripts/docs/gen-provider-reference.ts","i18n:check-glossary:ko":"node scripts/i18n/check-glossary-consistency.mjs --locale=ko","i18n:check-ui-coverage":"node scripts/i18n/check-ui-keys-coverage.mjs","i18n:check-value-drift":"node scripts/i18n/check-ui-value-drift.mjs","check:agent-skills-sync":"node --import tsx/esm scripts/skills/generate-agent-skills.mjs","check:pricing-freshness":"node scripts/check/check-pricing-freshness.mjs","check:tracked-artifacts":"node scripts/check/check-tracked-artifacts.mjs","check:vitest-exclusions":"node scripts/check/check-vitest-exclusions.mjs","electron:smoke:packaged":"node scripts/dev/smoke-electron-packaged.mjs","i18n:check-ratio:update":"node scripts/i18n/check-translation-ratio.mjs --update","i18n:translate-new-keys":"bash scripts/i18n/translate-new-keys.sh","quality:relax-baselines":"node scripts/quality/relax-baselines.mjs","check:compression-budget":"bun scripts/check/check-compression-budget.ts","check:open-sse-typecheck":"node scripts/check/check-open-sse-typecheck.mjs","check:changelog-integrity":"node scripts/check/check-changelog-integrity.mjs","check:complexity-ratchets":"node scripts/check/check-complexity-ratchets.mjs","check:dashboard-typecheck":"node scripts/check/check-dashboard-typecheck.mjs","check:deprecated-versions":"node scripts/check/check-deprecated-versions.mjs","check:migration-numbering":"node scripts/check/check-migration-numbering.mjs","check:provider-order-sync":"node scripts/check/check-provider-order-sync.mjs","check:routing-error-guard":"node scripts/check/check-routing-error-guard.mjs","eval:router:patch-compare":"node --import tsx scripts/router-eval/patch-compare.ts","typecheck:noimplicit:core":"tsc --pretty false -p tsconfig.typecheck-noimplicit-core.json","check:cognitive-complexity":"node scripts/check/check-cognitive-complexity.mjs","check:nvidia-catalog-drift":"node --import tsx/esm scripts/check/check-nvidia-catalog-drift.ts","check:provider-consistency":"bun scripts/check/check-provider-consistency.ts","check:route-validation:t06":"node scripts/check/check-route-validation.mjs","check:cli-fingerprint-drift":"node --import tsx/esm scripts/check/check-cli-fingerprint-drift.ts","i18n:check-value-drift:warn":"node scripts/i18n/check-ui-value-drift.mjs --warn","release:sync-changelog-i18n":"node scripts/release/sync-changelog-i18n.mjs","check:mutation-test-coverage":"node scripts/check/check-mutation-test-coverage.mjs --strict","check:openapi-security-tiers":"node scripts/check/check-openapi-security-tiers.mjs","check:route-guard-membership":"node --import tsx scripts/check/check-route-guard-membership.ts","test:combo:live:vps:failover":"node scripts/test/combo-live-vps.mjs --failover","check:forgotten-sibling-tests":"node scripts/check/check-forgotten-sibling-tests.mjs","check:ts7-diagnostics-ratchet":"node scripts/check/check-ts7-diagnostics-ratchet.mjs","check:provider-asset-provenance":"node scripts/check/check-provider-asset-provenance.mjs","quality:refresh-model-lifecycle":"node scripts/quality/refresh-model-lifecycle.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"942a88d5-f89c-4526-8d73-067d84e0dd10"}},"homepage":"https://omniroute.online","keywords":["ai","router","proxy","openai","claude","anthropic","gemini","fallback","cursor","cline","codex","llm","auto-fallback"],"_resolved":"/home/runner/work/OmniRoute/OmniRoute/omniroute-3.8.51.tgz","overrides":{"qs":"^6.16.0","joi":"^18.2.8","tar":"^7.5.21","hono":"^4.13.7","uuid":"^14.0.2","vite":"^8.0.16","jsdom":{"undici":"^7.29.0"},"sharp":"^0.35.4","nanoid":"^3.3.17","rimraf":{"minimatch@9":{"brace-expansion":"^2.1.4"}},"adm-zip":"^0.6.1","postcss":"^8.5.18","fast-uri":"^3.1.7","node-gyp":{"undici":"^6.28.0"},"csv-parse":"^7.0.2","form-data":"^4.0.6","libxmljs2":{"minimatch":{"brace-expansion":"^2.1.4"}},"promptfoo":{"js-yaml":"^5.2.2","undici@7":"^7.29.0"},"ip-address":"^10.7.2","protobufjs":"^7.6.5","@babel/core":"^7.29.6","body-parser":"^2.3.0","xmlbuilder2":{"js-yaml":"^4.3.1"},"browserslist":"^4.28.8","concurrently":{"shell-quote":"^1.9.0"},"lockfile-lint":{"js-yaml":"^4.3.1"},"monaco-editor":{"dompurify":"^3.4.14"},"fast-xml-parser":"^5.10.1","@eslint/eslintrc":{"js-yaml":"^4.3.1"},"@yarnpkg/parsers":{"js-yaml":"^4.3.2"},"onnxruntime-node":"1.30.0","socket.io-parser":"^4.2.7","@hono/node-server":"^2.0.5","@openai/codex-security":{"smol-toml":"^1.8.0"},"eslint-plugin-react-hooks":"7.1.1","@apidevtools/json-schema-ref-parser":{"js-yaml":"^4.3.1"}},"_integrity":"sha512-VwwSt+bP9lJiPJXFJMz0nNGGuoewPZU3nFe1SLuO11ADgdSwTegGCxhg8Ov75+31m/cocPxHiO63zygn1XQ0MQ==","repository":{"url":"git+https://github.com/diegosouzapw/OmniRoute.git","type":"git"},"workspaces":["open-sse","packages/browser-pool"],"_npmVersion":"11.19.0","description":"Unified AI router with 358 providers, RTK+Caveman compression, auto fallback, MCP/A2A, desktop, PWA, and OpenAI-compatible APIs.","directories":{},"lint-staged":{"*.{js,jsx,ts,tsx,mjs}":["prettier --write","eslint --fix --no-error-on-unmatched-pattern --no-warn-ignored --suppressions-location config/quality/eslint-suppressions.json"],"*.{json,md,yml,yaml,css}":["prettier --write"]},"maintainers":[{"name":"diegosouza.pw","email":"diegosouza.pw@outlook.com"}],"_nodeVersion":"24.21.0","allowScripts":{"keytar":true,"esbuild":true,"@swc/core":true,"protobufjs":true,"unrs-resolver":true,"better-sqlite3":true,"@parcel/watcher":true},"dependencies":{"ws":"^8.21.3","ajv":"^8.20.0","ink":"^7.0.3","ora":"^9.4.1","tsx":"^4.23.13","zod":"^4.5.4","clsx":"^2.1.1","jose":"^6.2.10","next":"16.3.5","open":"^11.0.2","pino":"^10.3.1","uuid":"^14.0.2","yazl":"^3.3.1","axios":"^1.20.0","lowdb":"^7.0.1","react":"19.2.8","sharp":"^0.35.4","socks":"^2.8.7","fflate":"^0.8.3","marked":"^18.0.11","parse5":"^8.0.1","sql.js":"^1.14.2","undici":"^8.11.2","express":"^5.2.1","ioredis":"^5.10.1","js-yaml":"^5.4.1","mermaid":"^11.17.2","zustand":"^5.0.15","bcryptjs":"^3.0.3","react-is":"^19.2.6","recharts":"^3.8.1","tiktoken":"^1.0.22","turndown":"7.2.4","commander":"^15.0.0","dompurify":"^3.4.14","next-intl":"^4.14.0","omniglyph":"^1.4.0","react-dom":"19.2.8","smol-toml":"1.8.0","@types/mdx":"^2.0.13","bottleneck":"^2.19.5","playwright":"1.62.1","remark-gfm":"^4.0.1","safe-regex":"^2.1.1","selfsigned":"^5.5.0","ajv-formats":"^3.0.1","cron-parser":"^5.10.0","fetch-socks":"^1.3.3","fumadocs-ui":"^16.15.4","ink-spinner":"^5.0.0","next-themes":"^0.4.6","pino-pretty":"^13.1.3","xxhash-wasm":"^1.1.0","@ngrok/ngrok":"^1.7.0","@swc/helpers":"0.5.23","jsonc-parser":"^3.3.1","lucide-react":"^1.33.0","@dnd-kit/core":"^6.3.1","@xyflow/react":"^12.11.5","csv-stringify":"^6.8.3","fumadocs-core":"^16.15.4","monaco-editor":"^0.56.0","@lobehub/icons":"^5.16.0","ink-text-input":"^6.0.0","react-markdown":"^10.1.0","tailwind-merge":"^3.6.0","marked-terminal":"^7.3.0","node-machine-id":"^1.1.12","playwright-core":"1.62.1","update-notifier":"^7.3.1","material-symbols":"^0.47.0","react-reconciler":"^0.33.0","@dnd-kit/sortable":"^10.0.0","@toon-format/toon":"^4.1.1","https-proxy-agent":"^9.0.0","react18-json-view":"0.2.10","@dnd-kit/utilities":"^3.2.2","turndown-plugin-gfm":"1.0.2","@monaco-editor/react":"^4.7.0","http-proxy-middleware":"^4.0.0","pino-abstract-transport":"^3.0.0","@modelcontextprotocol/sdk":"^1.30.0","@aws-sdk/client-bedrock-runtime":"^3.1120.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","bun":"1.4.2","ctrf":"^0.3.0","dpdm":"^4.3.0","glob":"^13.0.6","knip":"^6.35.1","vite":"^8.0.16","husky":"^9.1.7","jscpd":"^4.3.0","jsdom":"^30.0.1","eslint":"^10.10.0","espree":"^11.2.0","vitest":"^5.0.0","esbuild":"0.28.2","httpyac":"^6.16.7","wait-on":"^9.1.0","wtfnode":"^0.10.1","prettier":"^3.9.6","@types/ws":"^8.18.0","cross-env":"^10.1.0","promptfoo":"^0.123.0","@types/bun":"1.4.2","fast-check":"^4.10.0","size-limit":"^13.0.3","typescript":"^6.0.3","@types/node":"^26.5.1","lint-staged":"^17.5.1","node-loader":"^2.1.0","opencode-ai":"1.18.30","tailwindcss":"^4.3.0","@types/react":"^19.2.18","concurrently":"^10.0.5","fumadocs-mdx":"^15.4.0","junit-to-ctrf":"^0.0.14","lockfile-lint":"^5.0.1","type-coverage":"^2.30.1","@eslint/compat":"^2.1.1","@playwright/test":"^1.63.0","@size-limit/file":"^13.0.3","@types/react-dom":"^19.2.5","@types/safe-regex":"^1.1.6","typescript-eslint":"^8.70.0","eslint-config-next":"16.3.5","@axe-core/playwright":"^4.13.0","@tailwindcss/postcss":"^4.3.0","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.1.0","@stryker-mutator/core":"^10.0.0","@types/better-sqlite3":"^9.6.0","eslint-plugin-sonarjs":"^4.1.0","@testing-library/react":"^16.3.3","@cyclonedx/cyclonedx-npm":"6.0.1","@testing-library/jest-dom":"^7.0.1","eslint-plugin-react-hooks":"7.1.1","@stryker-mutator/tap-runner":"^10.0.0","@testing-library/user-event":"^14.6.7","babel-plugin-react-compiler":"^1.0.0","license-checker-rseidelsohn":"^5.0.1","playwright-ctrf-json-reporter":"^0.0.29"},"optionalDependencies":{"keytar":"^7.9.0","wreq-js":"3.2.0","sqlite-vec":"^0.1.9","js-tiktoken":"^1.0.20","better-sqlite3":"^13.0.3","onnxruntime-node":"1.30.0","@atjsh/llmlingua-2":"3.0.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/omniroute_3.8.51_1790736842990_0.6757869229997227","host":"s3://npm-registry-packages-npm-production"},"_id":"omniroute@3.8.51","version":"3.8.51"}