Implementation:BerriAI Litellm NPM Lock
Template:Implementation metadata
Overview
Description
The package-lock.json file is an automatically generated NPM dependency lock file that ensures deterministic, reproducible installations of JavaScript/Node.js dependencies used by the LiteLLM project. It locks the exact versions and integrity hashes of all direct and transitive dependencies.
The project's JavaScript dependencies support the LiteLLM Proxy UI Dashboard, which is a Next.js application built and served from litellm/proxy/_experimental/out/. The lock file is associated with the root-level package.json (not shown separately but implied by the lock file).
This file should never be manually edited. It is generated and updated automatically by npm install.
Usage
The lock file is consumed by npm ci or npm install during the UI build process in CI and local development. The CircleCI pipeline includes a ui_build job that installs these dependencies before building the Next.js dashboard.
Data Schema
Top-Level Structure
{
"name": "litellm",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"dependencies": { ... },
"devDependencies": { ... }
},
"node_modules/@adobe/css-tools": { ... },
"node_modules/@babel/code-frame": { ... },
...
}
}
Schema Fields
Root Fields
| Field | Type | Description |
|---|---|---|
name |
String | Package name: "litellm"
|
lockfileVersion |
Integer | Lock file format version: 3 (npm v7+)
|
requires |
Boolean | Whether the package has a requires field
|
packages |
Object | Map of all installed packages with their resolved metadata |
Direct Dependencies
| Package | Purpose |
|---|---|
prism-react-renderer (^2.4.1) |
Syntax highlighting for code blocks in the UI |
prisma (^5.17.0) |
Prisma ORM client for database operations |
react-copy-to-clipboard (^5.1.0) |
Copy-to-clipboard React component for the UI |
Dev Dependencies
| Package | Purpose |
|---|---|
@testing-library/jest-dom (^6.8.0) |
Custom Jest matchers for DOM testing |
@testing-library/react (^14.3.1) |
React component testing utilities |
@types/react-copy-to-clipboard (^5.0.7) |
TypeScript type definitions |
jest (^29.7.0) |
JavaScript testing framework |
Package Entry Fields
Each entry under packages follows the npm lockfile v3 schema:
| Field | Type | Description |
|---|---|---|
version |
String | Resolved package version |
resolved |
String | URL the package was fetched from |
integrity |
String | Subresource Integrity (SRI) hash for verification |
dev |
Boolean | Whether this is a development-only dependency |
license |
String | Package license (e.g., "MIT")
|
dependencies |
Object | Transitive dependencies of this package |
engines |
Object | Node.js version requirements |
funding |
Object | Funding information for the package |
Usage Examples
CI: UI Build Process
The CircleCI configuration includes a ui_build job that uses this lock file:
# The ui_build job installs npm dependencies using the lock file # to ensure reproducible builds, then builds the Next.js UI dashboard. # The ui_unit_tests job depends on ui_build completing first.
Local Development
# Install exact versions from lock file: npm ci # Or install and potentially update lock file: npm install
Related Pages
- CircleCI Config - CI pipeline that includes the
ui_buildandui_unit_testsjobs