.md

Compatibility

These docs describe @dcupl/core 2.1 and @dcupl/cli 2.0. This page collects the requirements that change with a release; every other page links here instead of repeating them.

Requirements

Requirement Supported
Node.js 20.19+ or 22.12+, or any later major (check with node -v)
TypeScript 5.4 or later
Browsers Current evergreen browsers (Chrome, Edge, Firefox, Safari): the packages ship ES2022 JavaScript

Node.js

The SDK, the CLI and the tutorials' Vite setups are documented for Node.js 20.19+ on Node 20, or 22.12+ on Node 22; later majors work too. On an older version the CLI installs but every command fails on startup, see Node version too old. The loader uses the global fetch that Node.js provides.

TypeScript

The public types use NoInfer, which TypeScript added in 5.4. An older compiler can't resolve NoInfer in the @dcupl/* type declarations. The packages are tested with "module": "NodeNext" and "strict": true; see TypeScript for the setup.

Browsers and servers

The packages are compiled to ES2022 and published as ES modules and CommonJS, so they work with import and require(), with any bundler, and in current evergreen browsers. Browsers without ES2022 support need your bundler to transpile @dcupl/* to an older target. For a page without a build step, the @dcupl/bundle script build is described under Script tag. The same packages run on a server (Node.js, SSR); see Node.js server and SSR.

Use the same version for every @dcupl/* package

Use the same version for every @dcupl/* package. The packages require each other in exactly their own version: @dcupl/core depends on exactly its own version of @dcupl/common, and @dcupl/loader and @dcupl/connect on exactly their own versions of @dcupl/core and @dcupl/common.

Install and update them together:

npm install @dcupl/core@<version> @dcupl/loader@<version>

If you list @dcupl/common yourself, pin it to the same version. Common mistakes shows the symptom of a mismatch. Changes between major versions are in the migration guide; for the CLI see Upgrading from 1.3.