24 minutes ago
cytoscape.js

v3.33.3

Release version v3.33.3

3 hours ago
remix

tar-parser v0.7.1

Patch Changes

  • Fix parsing tar entries whose file body ends exactly at a chunk boundary.
3 hours ago
remix

remix v3.0.0-alpha.6

Pre-release Changes

  • BREAKING CHANGE: MultipartPart.headers from remix/multipart-parser and remix/multipart-parser/node is now a plain decoded object keyed by lower-case header name instead of a native Headers instance. Access part headers with bracket notation like part.headers['content-type'] instead of part.headers.get('content-type').

  • BREAKING CHANGE: Removed the deprecated remix/component, remix/component/jsx-runtime, remix/component/jsx-dev-runtime, and remix/component/server package exports. Import the consolidated UI runtime from remix/ui, remix/ui/jsx-runtime, remix/ui/jsx-dev-runtime, and remix/ui/server instead.

    Removed package.json bin commands:

    • remix-test

    Added package.json exports:

    • remix/node-fetch-server/test to re-export APIs from @remix-run/node-fetch-server/test
    • remix/terminal to re-export APIs from @remix-run/terminal
    • remix/test/cli to re-export APIs from @remix-run/test/cli

    Added package.json exports for the consolidated UI runtime:

    • remix/ui to re-export APIs from @remix-run/ui
    • remix/ui/jsx-runtime to re-export APIs from @remix-run/ui/jsx-runtime
    • remix/ui/jsx-dev-runtime to re-export APIs from @remix-run/ui/jsx-dev-runtime
    • remix/ui/server to re-export APIs from @remix-run/ui/server
    • remix/ui/animation to re-export APIs from @remix-run/ui/animation
    • remix/ui/accordion to re-export APIs from @remix-run/ui/accordion
    • remix/ui/anchor to re-export APIs from @remix-run/ui/anchor
    • remix/ui/breadcrumbs to re-export APIs from @remix-run/ui/breadcrumbs
    • remix/ui/button to re-export APIs from @remix-run/ui/button
    • remix/ui/combobox to re-export APIs from @remix-run/ui/combobox
    • remix/ui/glyph to re-export APIs from @remix-run/ui/glyph
    • remix/ui/listbox to re-export APIs from @remix-run/ui/listbox
    • remix/ui/menu to re-export APIs from @remix-run/ui/menu
    • remix/ui/popover to re-export APIs from @remix-run/ui/popover
    • remix/ui/scroll-lock to re-export APIs from @remix-run/ui/scroll-lock
    • remix/ui/select to re-export APIs from @remix-run/ui/select
    • remix/ui/separator to re-export APIs from @remix-run/ui/separator
    • remix/ui/theme to re-export APIs from @remix-run/ui/theme
    • remix/ui/test to re-export APIs from @remix-run/ui/test
  • Added package.json exports and binaries for the Remix CLI:

    • remix/cli to expose the Remix CLI programmatic API
    • remix as a package.json bin command that delegates to @remix-run/cli

    The Remix CLI now reads the current Remix version from the remix package and declares Node.js 24.3.0 or later in package metadata.

  • Bumped @remix-run/* dependencies:

3 hours ago
remix

response v0.3.3

Patch Changes

3 hours ago
remix

static-middleware v0.4.7

Patch Changes

3 hours ago
remix

test v0.2.0

Minor Changes

  • Add glob.exclude config for filtering paths during test discovery (defaults to node_modules/**)

  • Add code coverage reporting to remix-test

    • You can enable coverage with default settings vis remix-test --coverage or setting coverage:true in your remix-test.config.ts
    • Or you can specify individual coverage settings via the following config fields:
      • coverage.dir: Directory to store coverage information (default .coverage)
      • coverage.include: Array of globs for files to include in coverage
      • coverage.exclude: Array of globs for files to exclude from coverage
      • coverage.statements: Percentage threshold for statement coverage
      • coverage.lines: Percentage threshold for line coverage
      • coverage.branches: Percentage threshold for branch coverage
      • coverage.functions: Percentage threshold for function coverage
  • Export runRemixTest from @remix-run/test/cli so other tools can run the Remix test runner programmatically without exiting the host process. The function returns an exit code so callers can decide how to terminate. The remix-test executable now declares Node.js 24.3.0 or later in package metadata.

Patch Changes

  • Internal refactor to test discovery to better support test execution in bun.

    • Unlike Node, Bun's fs.promises.glob follows symbolic links and does not prune traversal via the exclude option, which can cause the test runner to enter node_modules symlink cycles in pnpm workspaces
    • Refactored the internal test discovery logic to detect and use Bun's native Glob class when running under the Bun runtime. Bun's Glob#scan does not follow symlinks by default, avoiding the cycle.
    • The Node runtime continues to use fs.promises.glob
  • Use native dynamic import() in Bun to load .ts and .tsx files in the test runner

  • Bumped @remix-run/* dependencies:

3 hours ago
remix

multipart-parser v0.16.0

Minor Changes

  • BREAKING CHANGE: MultipartPart.headers is now a plain decoded object keyed by lower-case header name instead of a native Headers instance. Access part headers with bracket notation like part.headers['content-type'] instead of part.headers.get('content-type').

    This lets multipart part headers preserve decoded UTF-8 field names and filenames that native Headers cannot store.

3 hours ago
remix

terminal v0.1.0

Minor Changes

  • Initial release of terminal output utilities for ANSI styles, color capability detection, escape sequences, and testable terminal streams. Automatic color detection disables styles for CI, NO_COLOR, TERM=dumb, and non-TTY output streams by default, and can be overridden with the colors option. Style helpers include common modifiers, foreground colors, background colors, bright variants, and preserve outer styles when nested formatted strings close inner styles.
3 hours ago
remix

ui v0.1.0

Minor Changes

  • BREAKING CHANGE: Consolidated the deprecated @remix-run/component package into @remix-run/ui. Import component runtime APIs from @remix-run/ui, server rendering APIs from @remix-run/ui/server, JSX runtime APIs from @remix-run/ui/jsx-runtime and @remix-run/ui/jsx-dev-runtime, and animation APIs from @remix-run/ui/animation.

    Removed the deprecated @remix-run/ui/on-outside-pointer-down export. Use the popover, menu, or other component-level outside interaction APIs instead.

  • BREAKING CHANGE: Components now receive props through a stable handle.props object using Handle<Props, Context> instead of receiving a separate setup argument and render callback props. Move initialization values that previously used <Component setup={...} /> onto regular props, and read all props from handle.props in both the component function and render callback.

    Before:

    function Counter(handle: Handle<CounterContext>, setup: { initialCount: number }) {
      let count = setup.initialCount
    
      return (props: { label: string }) => (
        <button>
          {props.label}: {count}
        </button>
      )
    }
    
    ;<Counter setup={{ initialCount: 10 }} label="Count" />

    After:

    function Counter(handle: Handle<{ initialCount: number; label: string }, CounterContext>) {
      let count = handle.props.initialCount
    
      return () => (
        <button>
          {handle.props.label}: {count}
        </button>
      )
    }
    
    ;<Counter initialCount={10} label="Count" />

    The handle.props object keeps the same identity for the component lifetime while its values are updated before each render, so destructuring let { props, update } = handle remains safe. The setup prop is no longer special and is treated like any other prop.

    This also removes the old pattern where setup-scope helpers had to read from a mutable variable that was reassigned inside the render callback:

    function Listbox(handle: Handle<ListboxContext>) {
      let props: ListboxProps
    
      function select(value: string) {
        props.onSelect(value)
      }
    
      handle.context.set({ select })
    
      return (nextProps: ListboxProps) => {
        props = nextProps
        return props.children
      }
    }

    Helpers can now read the current props directly from the stable handle:

    function Listbox(handle: Handle<ListboxProps, ListboxContext>) {
      function select(value: string) {
        handle.props.onSelect(value)
      }
    
      handle.context.set({ select })
    
      return () => handle.props.children
    }
  • BREAKING CHANGE: Removed the deprecated keysEvents, pressEvents, and PressEvent exports from @remix-run/ui. Use on(...) with native DOM keyboard, pointer, and click events directly instead.

3 hours ago
remix

mime v0.4.1

Patch Changes

  • Prefer video/mp4 for .mp4 files and image/x-icon for .ico files.