Skip to content

chore(deps): apply pending Dependabot updates - #118

Merged
betschki merged 11 commits into
mainfrom
chore/deps-oct
Oct 13, 2026
Merged

betschki merged 11 commits into
mainfrom
chore/deps-oct

Conversation

@betschki

Copy link
Copy Markdown
Contributor

Supersedes #97, #98, #100, #101, #102, #103, #104, #105, #107. Dependabot closes those on its own once this lands. #99 (TypeScript 7) is not included; see below.

What

One commit per Dependabot PR, applied to current main and re-resolved, so a few versions are newer than in the original PRs:

PR Change Notes
#107 dev-dependencies group (eslint, typescript-eslint, prettier, jsdom, rollup, cssnano, postcss, globals, inquirer, @types/node) minors/patches
#100 zod 4.4 → 4.6
#103 dotenv 16 → 17 root devDependency, nothing imports it
#98 @rollup/plugin-terser 0.4 → 1.0 bundle within 250 bytes of before
#104 @rollup/plugin-commonjs 25 → 29
#101 typesense-js 1.8 → 3.1 in core, config (peer range) and playground search-ui keeps its exact 3.0.6 pin from b4fec95
#102 vitest 4 → 5 no test changes
#97 vite 5 → 8 (playground) vite.config.js uses import.meta.dirname
#105 turbo 1 → 2 pipeline → tasks (why #105 failed CI), envMode: "loose", agentGuidance: false

Plus npm audit fix (lockfile only, no --force) and CHANGELOG entries.

Why

  • Security. On main, the esbuild alert comes from vite 5 in the playground; vite 8 removes it. The form-data and tar-fs alerts point at versions main's lockfile no longer contains (form-data is already 4.0.6, tar-fs is gone), so they should close on the next scan. npm audit also listed axios ≤ 1.19 advisories. typesense-js bundles axios into search.min.js and the indexer uses it, so it ships. It now resolves to 1.20.
  • turbo 2 settings. turbo 2 defaults to strict env mode, which would hide undeclared variables such as the playground seed's TYPESENSE_*, so loose mode keeps the turbo 1 behaviour. agentGuidance: false stops turbo writing an AGENTS.md into the repo root when it detects an AI coding agent.
  • typesense-js 3 for the indexer. The search UI moved to v3 after the 1.8.2 outage. The indexer was still on 1.8.2. Published-package impact: the config package's peer range is now ^3.1.1, so a project installing it next to typesense-js 1.x gets a peer conflict.

Not included: TypeScript 7 (#99)

Its CI failed with ERESOLVE: typescript-eslint (latest 8.71.2) declares typescript >=4.8.4 <6.1.0. TypeScript 7 is the Go port and lacks the JS compiler API that typescript-eslint and tsup's d.ts build use. #99 stays open until typescript-eslint supports it.

Verification

  • Clean npm ci, then npm run lint, typecheck, test and build at the root. Tests: search-ui 290, config 18, core 23, webhook 5, cli 3, all passing. Each commit was checked the same way before the next one.
  • Indexer on typesense-js 3.1: ran core against a Typesense 28 container with a stubbed Ghost: create and recreate the collection, paginated bulk import of 20 posts including one Typesense rejects, single-post upsert, removal of a members-only post, delete, clear. Output is identical to 1.8.2: 19 indexed, the rejected one missing, upsert and deletes applied, search finds 17.
  • Search bundle (axios 1.20, new terser/commonjs): search.min.js is 214,335 bytes, up from 211,199 (axios). Opened the playground on vite 8 against a seeded Typesense 28 and searched "ghost" in modal, palette and discovery: 4 results in each, with highlights, gated badges and the discovery preview. Author profiles also work against the mock backend.
  • The playground seed script runs on typesense-js 3.
  • turbo run test --dry=json reports envMode: loose, and no AGENTS.md appears after turbo runs.

Found while testing, not changed here: when one document in a bulk import is rejected, typesense-js throws for the whole batch, and core then reports 0 succeeded, 20 failed even though 19 were indexed. It behaves the same on 1.8.2 and 3.1.

@types/node, @typescript-eslint/*, eslint, globals, inquirer, prettier, cssnano, jsdom, postcss and rollup to their latest minor/patch releases.
Only a root devDependency; nothing in the repo imports it, so the v17 default of logging on config() has no effect.
…rsedes #101)

The search UI already moved to typesense-js 3.0.6 (b4fec95) and keeps its
exact pin. This brings the indexer (core), the config peer range and the
playground seed script onto the same major.

Core only uses collections().retrieve/create/delete and documents()
import/upsert/delete, whose signatures are unchanged. Checked against a
Typesense 28 server: create/recreate, paginated bulk import (including a
rejected document), single-post upsert, gated-post and explicit delete,
and clear give the same results as 1.8.2.
No test changes needed; all five workspaces pass unchanged.
Drops the last copy of esbuild <= 0.24.2 (pulled in by vite 5), which
Dependabot flagged for its dev server answering cross-origin requests.

vite.config.js uses import.meta.dirname instead of __dirname, which vite 8
warns is unsupported by its upcoming native config loader.
turbo 2 renamed the turbo.json "pipeline" key to "tasks", which is why
#105 failed CI. Also:

- envMode "loose": turbo 2 defaults to strict and would hide undeclared
  environment variables from tasks (e.g. TYPESENSE_* for the playground
  seed). Loose keeps the turbo 1 behaviour.
- agentGuidance false: otherwise turbo writes an AGENTS.md into the repo
  root whenever it detects an AI coding agent.
Lockfile only (npm audit fix, no --force). axios 1.19 -> 1.20 is the one
that ships: typesense-js bundles it into search.min.js (+2.9 kB) and the
indexer uses it at runtime. svgo, brace-expansion and colord are build
tools.

The remaining moderate findings all sit under rollup-plugin-postcss's
bundled cssnano 6 and only process our own stylesheet at build time.
@coderabbitai

coderabbitai Bot commented Oct 13, 2026

Copy link
Copy Markdown

Warning

Review limit reached

  • Run on-demand review

This review includes 10 billable files and costs up to $2.50.

  • Ask an admin to make reviews automatic

Open in CodeRabbit

Reviews can continue after your included limit without a manual trigger. An admin must approve usage-based billing.

Or wait 15 minutes for your next included review.

Check out review usage here.

View limit details

Limit details: You’ve used all 2 included reviews currently available. Your 80 included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Team
  • Run ID: b2c7f7e8-289a-4b62-8523-19e5105f4c85
📥 Commits

Reviewing files that changed from the base of the PR and between b2684f5 and f026cbd.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (10)
  • CHANGELOG.md
  • apps/cli/package.json
  • apps/playground/package.json
  • apps/playground/vite.config.js
  • apps/webhook-handler/package.json
  • package.json
  • packages/config/package.json
  • packages/core/package.json
  • packages/search-ui/package.json
  • turbo.json
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant