Skip to content

Latest commit

 

History

History
277 lines (150 loc) · 10.6 KB

File metadata and controls

277 lines (150 loc) · 10.6 KB

@bomb.sh/tools

0.6.1

Patch Changes

  • 349b48b: format CLI command respects internal format call and passes the exit code to the user.
  • 57d4d61: lint CLI command respects internal lint call and passes the exit code to the user.

0.6.0

Minor Changes

  • 23997e5: Runs publint as a publish gate in bsh build and generates types by default

    • After a successful build, bsh build now runs publint (strict mode) against the emitted dist/ and fails on errors — publishing mistakes like missing declaration files or broken exports targets are caught at build time instead of at publish.
    • Type declarations (.d.mts) are now generated by default; pass --no-dts to opt out. If your package.json declares types but they aren't emitted, the build now fails.
    • Entry globs that match nothing now fail with a clear message (No entry files matched: …) instead of tsdown's opaque Error: undefined Cannot find entry.
    • bsh publint output now renders full messages (e.g. which exports target is broken) instead of bare rule codes.
  • e4ad9d2: Makes bsh pass its own lint and widens the test fixture API

    • The shared oxlint config now exempts *.config.* files and oxlint JS plugins (rules/**) from import/no-default-export — config files and plugins legitimately require default exports.
    • Fixture.write() and Fixture.append() in @bomb.sh/tools/test-utils now accept plain strings (previously typed Uint8Array-only, which contradicted the runtime behavior).
    • bsh test raises the default vitest testTimeout to 15s — integration tests spawn real oxlint/knip binaries, which can exceed 5s on a loaded machine.
    • Internal: replaces all node:path usage with URL APIs, consolidates the duplicate knip config (package.json#knip was silently ignored in favor of knip.jsonc), and throws a coded ToolsError instead of a generic Error.
  • f66e1df: Makes bsh lint --fix fix far more than it used to

    • --fix now chains knip --fix after oxlint: unused dependencies and devDependencies are removed from package.json automatically. Dead-code fixes (unused exports/types) additionally run with --fix --strict; unused files are never deleted automatically. knip fixes respect your knip config — keep ignoreDependencies accurate, since untraceable deps (e.g. binaries referenced by path) will otherwise be removed.
    • The stock no-console rule is replaced by bombshell-dev/no-console-log, which auto-fixes console.logconsole.info (semantically neutral in Node — they're the same stdout write). Other unlisted console methods are still flagged but not auto-fixed.
  • 74356f7: Scopes the bombshell-dev/exported-function-async and bombshell-dev/require-export-jsdoc lint rules to a package's public API surface

    bsh lint now derives the public surface from package.json (exports, bin, and main/module, mapping dist/ paths back to src/), including conventional packages/*/ workspace members. These two rules no longer fire on internal modules — only on files consumers can actually import. Packages without a publish surface (apps, examples) are exempt entirely, and wildcard passthrough exports ("./*": "./dist/*") don't designate surface.

  • c276677: Restructures bsh lint output and tiers knip's dead-code checks behind --strict

    • Errors are now always shown in full; warnings collapse to a per-rule count (pass --warnings to see them). Warnings never affect the exit code, so this keeps actual failures visible.
    • Adds --format json for a machine-readable report ({ summary, violations }). Use pnpm -s run lint -- --format json to keep stdout clean.
    • Knip's dead-code issues (unused exports, types, and files) now only run with --strict — they fire constantly mid-implementation and are only meaningful as a commit-time gate. Dependency hygiene issues (unused dependencies/devDependencies) still always run.
    • Fixes tsgo silently type-checking nothing: file arguments made it skip the project tsconfig (TS5112), so default runs reported zero type errors. Type checking now always runs in project mode and explicit targets filter the report instead. This may surface previously hidden type errors.
    • Widens the default oxlint target from ./src to the whole project (gitignored paths like dist/ are respected), matching the scope of knip and tsgo.
    • Turns off unicorn/consistent-function-scoping and no-underscore-dangle, which fired frequently but were never deliberately enabled.
    • --fix now only exits non-zero when errors remain (previously any warning failed the run).
  • 83c20f7: Replaces the stock max-params lint rule with a Bombshell-aware version

    The 2-parameter limit (use an options bag beyond that) now only applies to signatures we author. Functions conforming to APIs we don't control are exempt: override methods, members of classes that extends or implements (e.g. Node streams, platform-shaped interfaces), and inline callbacks passed to other functions.

  • 7a80756: Updates the shared tsconfig.json baseline for modern Node packages

    • target and lib move from es2022 to es2024, so modern APIs like Array.prototype.toSorted and Promise.withResolvers type-check without shims.
    • Adds "types": ["node"]. Packages must now have @types/node installed — missing it previously surfaced as dozens of Cannot find name 'process'/'Buffer' (TS2591) errors; now it's a single actionable Cannot find type definition file for 'node' (TS2688). Remedy: pnpm add -D @types/node.

Patch Changes

  • 7fe9353: Updates the lint, build, and lifecycle skills to match current bsh behavior

    The lint skill no longer claims publint runs in pnpm run lint (it gates pnpm run build), documents --strict, --warnings, and --format json, and adds a remedies table mapping common violations to their sanctioned fixes. The lifecycle skill moves the knip dead-code gate (lint --strict) to the PR handoff step.

0.5.6

Patch Changes

  • 9650d7e: Updates the README to document the bsh sync and bsh publint commands and accurately describe how sync links agent skills into a project

0.5.5

Patch Changes

  • 08e749c: Fixes bsh sync writing its output into the pnpm store instead of the project root. The project is now resolved from the invocation directory (INIT_CWD, falling back to cwd), so skills/ symlinks, the AGENTS.md section, and the .gitignore entries land in the project that ran the command under pnpm's default isolated node_modules layout

0.5.4

Patch Changes

  • 69fe08c: Fixes declaration file generation so that building with --dts now emits .d.ts files via tsgo

0.5.3

Patch Changes

  • 22f87d0: Fixes the bsh init command—it now points at the directory the template was actually cloned into.

    init / init . now scaffolds into the current directory in-place and uses the current directory's basename as the project name.

  • 14e24a8: In some failure or no-op cases, oxlint seems to return output which is not json-parseable even with --json passed. Log output directly in these instances.

  • dd6abfa: Fixes bsh sync crashing when creating skill symlinks, and makes re-running it safe. It no longer errors or removes already-synced skills.

0.5.2

Patch Changes

  • 340e898: Fixes errors that caused bsh sync to crash

0.5.1

Patch Changes

  • 64e9826: Fixes an EISDIR error when calling bsh sync

0.5.0

Minor Changes

  • fe06180: Add sync command to automatically symlink skills to the local project

  • e3f5833: Updatess oxfmt config:

    • Sets "singleQuote" option to true
    • Adds "*.json", "*.md", "*.yml", "*.jsonc" to "ignorePatterns" option

    Updates format command to include all files by default instead of the ./src directory

    Extracts publint from the lint command into a separate command

0.4.2

Patch Changes

  • 747c189: - Fixes runKnip to correctly handle reported violations
    • Updates knip dependency to 6.9.0

0.4.1

Patch Changes

  • 81cc9f1: Added "rules" to package.json#files

0.4.0

Minor Changes

  • 06a1190: Updates knip dependency to v6

0.3.4

Patch Changes

  • Fixes vitest-ansi-serializer resolution issue

0.3.3

Patch Changes

  • f9d1c06: Fixes bsh test config issue

0.3.2

Patch Changes

  • f716864: Fixes a bundling issue with test-utils

0.3.1

Patch Changes

  • ffba54e: Ignores colocated *.test.ts files in build
  • ffba54e: Adds automatic vitest config with vitest-ansi-serializer

0.3.0

Minor Changes

  • df17b88: Adds skills for coding agents. Eight skills cover the full bsh toolchain — lifecycle, lint, build, test, format, dev, init, and migration for onboarding an existing project.

    If you use an AI coding agent, run pnpm add -D @bomb.sh/tools then have your agent run pnpm dlx @tanstack/intent@latest install to load project-specific skills for @bomb.sh/tools.

0.2.8

Patch Changes

  • Updates fixture.root to include trailing slash

0.2.7

Patch Changes

  • Removes type-only import from bundle

0.2.6

Patch Changes

  • 0eeee28: Adds support for nested object syntax, dynamic file creation, and better fs bindings to createFixture

0.2.5

Patch Changes

  • 0945a18: Allows strongly typed .json files in fixtures
  • 0945a18: Use current test name as a prefix for tmpdir in fixture

0.2.4

Patch Changes

  • Distribute with types

0.2.3

Patch Changes

  • 9d2c754: Adds @bomb.sh/tools/test-utils export with createFixture()

0.2.2

Patch Changes

  • ccb63b7: Adds --dts and --minify flags to build command

0.2.1

Patch Changes

  • 61c3763: Updates tsdown entrypoint (defaults to src)

0.2.0

Minor Changes

  • 5f43969: Implements lint command using oxlint, tsgo, knip, and publint
  • c3f801b: Adds build command which uses tsdown. Default uses --unbundle, but pass --bundle to create single files.

0.1.0

Minor Changes

  • cf9b4c3: Updates commands to use the oxfmt, oxlint, publint, tsdown, vitest

0.0.8

Patch Changes

  • Publishes the changes that were supposed to land in v0.0.7

0.0.7

Patch Changes

  • 48d96a9: Fixes a bundling issue with cloudflare:* and bun:* import specifiers

0.0.6

Patch Changes

  • fe016ca: Fixes an issue when a package.json doesn't have any dependencies

0.0.5

Patch Changes

  • f1425e7: Fixes issue with import paths

0.0.4

Patch Changes

  • f51c30b: Fixes externalized dependency bundling and properly handles rewriting for local .ts modules

0.0.3

Patch Changes

  • Updates bundling approach to avoid code duplication

0.0.2

Patch Changes

  • 4652f97: link to nested local .bin files

0.0.1

Patch Changes

  • fix exports