Vigia

Nâng cấp brotli từ 1.x lên 2.x

So sánh API công khai của brotli 1.3.3 và 2.1.0, được tính tự động từ kiểu TypeScript. Chữ ký thay đổi là thay đổi có thể không tương thích, không phải điều chắc chắn.

Tóm tắt

Đường dẫn import bị xóa0
Export bị xóa0
Chữ ký thay đổi2
Thành viên lớp hoặc interface bị xóa0
Thành viên lớp hoặc interface thay đổi0
Mới bị ngừng hỗ trợ0
Thay đổi yêu cầu (engines, phụ thuộc peer)0
Export mới4

Export bị xóa

Không phát hiện.

Chữ ký thay đổi

exportTrướcSau
brotli · compress(buffer: Buffer, options?: CompressOptions | undefined): Uint8Array<ArrayBufferLike> | null(buffer: string | ArrayLike<number>, options?: boolean | CompressOptions | undefined): Promise<Uint8Array<ArrayBufferLike> | null>
brotli · decompress(buffer: Buffer, outputSize?: number | undefined): Uint8Array<ArrayBufferLike>(buffer: ArrayLike<number>, outSize?: number | null | undefined): Uint8Array<ArrayBufferLike>

Thành viên lớp hoặc interface bị xóa

Không phát hiện.

Thành viên lớp hoặc interface thay đổi

Không phát hiện.

Mới bị ngừng hỗ trợ

Không phát hiện.

Thay đổi yêu cầu (engines, phụ thuộc peer)

Không phát hiện.

Export mới (4)
importexportkind
brotliCompressOptionsinterface
brotli/compresscompressfunction
brotli/compressCompressOptionsinterface
brotli/decompressdecompressfunction

Changelog giữa các phiên bản này

Văn bản do tác giả gói công bố, hiển thị nguyên trạng.

2.1.0
### Changed
 - Use the nullish coalescing (??) operator to check if the value is defined (#38)
 - Use imports field to ship differential implementation for node and browser
2.0.0
### Changed

- **Breaking:** Converted the package to ESM only. All public entry points use
  named `compress` and/or `decompress` exports with no default export.
- **Breaking:** `compress()` now returns `Promise<Uint8Array | null>` and must
  be awaited. Compression options, output bytes, and `null` results are unchanged.
  `decompress()` remains synchronous.
- Public entry points are limited to the package root, `brotli/compress`, and
  `brotli/decompress`, including `.js` aliases for both standalone modules.
  Standalone modules export their named function.
- Encoder initialization is deferred until the first compression call. Concurrent
  calls share one initialization Promise, including failures, with no automatic
  retries. Initialization and runtime errors reject the compression Promise.
- Removed top-level await and enabled modern Node.js `require()` through every
  public entry point. Unflagged ESM loading is supported in Node 20.19+, 22.12+,
  and later releases; see the [Node documentation](https://nodejs.org/api/modules.html#loading-ecmascript-modules-using-require).
  The distribution remains ESM only.
- Encoding still runs on the calling thread without workers. Keep the input,
  options, and dictionary unchanged until compression settles; no input copying
  is added.

### Added

- TypeScript declarations for the package root and standalone modules, including
  their `.js` aliases and the `CompressOptions` type.
- Tests for ESM and CommonJS exports, lazy and shared initialization, Promise
  results and failures, and browser bundles, including dictionary initialization
  and decompression without the encoder.

### Migration

```javascript
import { compress, decompress } from 'brotli';

const compressed = await compress(input);
const original = decompress(compressed);
```

To load either function independently:

```javascript
import { compress } from 'brotli/compress';
import { decompress } from 'brotli/decompress';
```

Modern Node.js CommonJS consumers can destructure named exports from the root
or standalone modules:

```javascript
const { compress, decompress } = require('brotli');
// Alternatively: const { compress } = require('brotli/compress');

compress(input).then(compressed => {
  const original = decompress(compressed);
}).catch(console.error);
```

Older Node.js CommonJS consumers can continue to use dynamic `import()`.

Cung cấp dữ liệu này cho tác tử AI của bạn

Vigia là máy chủ MCP miễn phí: tác tử lập trình của bạn kiểm tra phiên bản, thay đổi phá vỡ tương thích và lỗ hổng trước khi viết mã. Không cần đăng ký, không cần khóa API.

claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp

Thêm vào CursorThêm vào VS Code★ Gắn sao trên GitHub

Mọi ứng dụng MCP khác
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }

Kỹ năng cho tác tử (SKILL.md): cho tác tử biết khi nào dùng Vigia · GitHub Action cho pull request

Câu hỏi thường gặp

Nâng cấp brotli từ 1 lên 2 có những thay đổi không tương thích nào?

Giữa brotli 1.3.3 và 2.1.0, Vigia tìm thấy 0 export bị xóa, 2 chữ ký thay đổi và 0 thành viên lớp hoặc interface bị xóa hay thay đổi.

Những gì bị ngừng hỗ trợ trong brotli 2?

0 export hoặc thành viên mới bị đánh dấu ngừng hỗ trợ trong brotli 2.1.0.

Dành cho tác tử

GET https://vigia.coredls.cloud/v1/packages/npm/brotli/upgrade?from=1.3.3&to=2.1.0