BEACON

← candidates

npm turbine-orm @0.62.1

score
0.6465 med
flagged 2026-07-28 11:24
signals by category
content 1 cadence 1

maintainers added:

package profile →

Signals fired

signalweightrationale
content
script_count_spike 0.5 scripts count 33 -> 42
cadence
rapid_release 0.8 12 versions in last 24h: ['0.60.0', '0.60.1', '0.61.0', '0.62.0', '0.62.1']

Prior profile (what it deviated from)

{
  "had_install_script": false,
  "maintainers": [
    "kirby_zvndev"
  ],
  "versions": 95
}

Evidence (package doc at flag time)

{
  "dependencies_count": 2,
  "dist": {
    "integrity": "sha512-/0CM9FixlM1SydQxCDaMZDSh2sGY7cGJLun3L28Dj35n2T437xZdK74oEk329tBiCcrtlRDisPug7kddAWO/Jw==",
    "tarball": "https://registry.npmjs.org/turbine-orm/-/turbine-orm-0.62.1.tgz",
    "unpackedSize": 7060603
  },
  "dist-tags": {
    "latest": "0.62.1",
    "next": "0.55.0-next.cccce72"
  },
  "latest_version": "0.62.1",
  "maintainers": [
    {
      "email": "kirby@zvndev.com",
      "name": "kirby_zvndev"
    }
  ],
  "num_versions": 97,
  "repository": {
    "type": "git",
    "url": "git+https://github.com/zvndev/turbine-orm.git"
  },
  "scripts": {
    "//coverage:cli": "The CLI coverage gate, split into ONE collection run plus FOUR threshold checks. c8 enforces a single threshold set per invocation and its --per-file applies the SAME numbers to every file, neither of which can express 'destructive.ts holds 100 while migrate.ts holds 70'. An aggregate-only floor lets the least-covered file spend the whole slack the best-covered file earned: at the measured 3623/2951 lines, migrate.ts could fall from 70.3% to 66.6% with the aggregate still green. So each file gets its OWN floor, checked by re-reporting the coverage already on disk (c8 report re-reads ./coverage/tmp, so this costs no extra test run). The aggregate check is kept as well: it catches all three sagging together inside their individual margins. Per-file gates run FIRST because their failure names the file. DATABASE_URL is neutralized on the collection run: these test files include live migration tests that create and drop tables, and this script runs from prepublishOnly.",
    "build": "rm -rf dist && tsc && tsc --project tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json",
    "check:changelog": "node scripts/check-changelog-headings.mjs",
    "check:error-codes": "tsx scripts/check-error-codes.ts",
    "check:package": "publint --strict && attw --pack . --profile node16",
    "coverage:cli:collect": "DATABASE_URL= c8 --all --reporter text --exclude 'src/test/**' --include src/cli/studio.ts --include src/cli/migrate.ts --include src/cli/destructive.ts tsx --test src/test/studio-write.test.ts src/test/studio-demo.test.ts src/test/studio.test.ts src/test/studio-security.test.ts src/test/migrate.test.ts src/test/migrate-deploy.test.ts src/test/migrate-smoke-fixes.test.ts src/test/destructive-migrations.test.ts src/test/backfill-recipe.test.ts src/test/cli.test.ts src/test/cli-diff-migration.test.ts src/test/cli-flags.test.ts src/test/cli-first-run.test.ts",
    "coverage:cli:gate": "c8 report --all --exclude 'src/test/**' --reporter text --check-coverage",
    "coverage:cli:gate:aggregate": "npm run coverage:cli:gate -- --include src/cli/studio.ts --include src/cli/migrate.ts --include src/cli/destructive.ts --lines 78 --statements 78 --branches 84 --functions 82",
    "coverage:cli:gate:destructive": "npm run coverage:cli:gate -- --include src/cli/destructive.ts --lines 98 --statements 98 --branches 84 --functions 98",
    "coverage:cli:gate:migrate": "npm run coverage:cli:gate -- --include src/cli/migrate.ts --lines 69 --statements 69 --branches 91 --functions 73",
    "coverage:cli:gate:studio": "npm run coverage:cli:gate -- --include src/cli/studio.ts --lines 82 --statements 82 --branches 81 --functions 86",
    "db:reset": "psql $DATABASE_URL -c 'DROP SCHEMA public CASCADE; CREATE SCHEMA public;' && npm run db:seed",
    "db:seed": "psql $DATABASE_URL -v ON_ERROR_STOP=1 -f src/test/fixtures/seed.sql",
    "dev": "tsc --watch",
    "dogfood": "tsx examples/dogfood.ts",
    "format": "biome format --write src/",
    "gen:studio": "node scripts/build-studio-ui.mjs",
    "generate": "tsx src/cli/index.ts generate",
    "lint": "biome check src/",
    "lint:fix": "biome check --write src/",
    "postpack": "node scripts/restore-prepare.mjs",
    "prebuild": "npm run gen:studio",
    "prepack": "node scripts/strip-prepare.mjs",
    "prepare": "husky",
    "prepublishOnly": "npm run build && npm run typecheck && npm run lint && npm run test:unit && npm run test:coverage:cli && npm run check:error-codes && npm run check:changelog && npm run check:package && npm run size",
    "pretest": "npm run gen:studio",
    "pretest:coverage": "npm run gen:studio",
    "pretest:coverage:cli": "npm run gen:studio",
    "pretest:unit": "npm run gen:studio",
    "pretypecheck": "npm run gen:studio",
    "site:build": "cd site && npm run build",
    "site:deploy": "cd site && vercel --prod",
    "site:dev": "cd site && npm run dev",
    "size": "size-limit",
    "size:check": "size-limit",
    "status": "tsx src/cli/index.ts status",
    "test": "tsx --test --test-concurrency=1 src/test/*.test.ts",
    "test:coverage": "c8 tsx --test --test-concurrency=1 src/test/*.test.ts",
    "test:coverage:cli": "npm run coverage:cli:collect && npm run coverage:cli:gate:destructive && npm run coverage:cli:gate:studio && npm run coverage:cli:gate:migrate && npm run coverage:cli:gate:aggregate",
    "test:unit": "DATABASE_URL= tsx --test src/test/*.test.ts",
    "test:watch": "tsx --watch --test src/test/*.test.ts",
    "typecheck": "tsc --noEmit --project tsconfig.test.json"
  },
  "signal_details": {
    "rapid_release": "12 versions in last 24h: ['0.60.0', '0.60.1', '0.61.0', '0.62.0', '0.62.1']",
    "script_count_spike": "scripts count 33 -> 42"
  },
  "time": {
    "created": "2026-03-27T04:13:19.667Z",
    "modified": "2026-07-28T16:24:56.133Z"
  }
}