DFSG NEW Queue

DFSG, Licensing & New Packages Team

node-cmdk 1.1.1+ds-1

Package Information

Descriptionfast, composable, unstyled command menu React component

cmdk is a high-performance, accessible, and fully customizable command menu component for React applications.

It provides quick keyboard navigation, fuzzy searching, and flexible item composition without imposing any default styles.

This package provides the cmdk command menu library for Node.js environments.

MaintainerDebian Javascript Maintainers <pkg-javascript-devel@lists.alioth.debian.org>
Changed ByAndrew Lee (李健秋) <ajqlee@debian.org>
Sponsorajqlee@debian.org
Distributionunstable
Architectureall
VCSgit: https://salsa.debian.org/js-team/node-cmdk.git (browse)
Closes#1151619
Trackerhttps://tracker.debian.org/pkg/node-cmdk
Uploaded1 day ago

New Package Report

.changes◂
Changed-ByAndrew Lee (李健秋) <ajqlee@debian.org>
Architecturesource all
Distributionunstable
DateFri, 06 Nov 2026 11:32:42 +0100
Sourcenode-cmdk
Version1.1.1+ds-1
Changelog◂
node-cmdk (1.1.1+ds-1) unstable; urgency=medium
 .
   * Initial release. (Closes: #1151619)
.dsc◂
Priorityoptional
Componentmain
Package-Listnode-cmdk deb javascript optional arch=all
Sectionjavascript
debian/copyright◂
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: cmdk
Upstream-Contact: https://github.com/dip/cmdk/issues
Source: https://github.com/pacocoursey/cmdk
Files-Excluded:
 website

Files: *
Copyright: 2022 Paco Coursey
License: Expat

Files: debian/*
Copyright: Andrew Lee (李健秋) <ajqlee@debian.org>
License: Expat

License: Expat
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
 in the Software without restriction, including without limitation the rights
 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:
 .
 The above copyright notice and this permission notice shall be included in all
 copies or substantial portions of the Software.
 .
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.

DFSG Assistant LLM REVIEW

This is an LLM based review using a Debian Inference based workflow. It was not written by a member of the DFSG team and has not been checked by one. It is not a decision on the package: it may be wrong, and it may have missed things.

Reviewed 1 day ago.

Report◂

DFSG NEW review for node-cmdk version 1.1.1+ds-1

Summary

  • Licensing is DFSG-compliant and debian/copyright is accurate: Yes
  • Packaging is of good quality: No
  • Issues: 0 blocker, 1 important, 2 minor; 1 more from the model's own knowledge, under Not confirmed
  • debian/watch: version 5
  • debian/copyright: machine-readable
  • Scan before the review: nothing found

Licensing

The source is a single MIT (DEP-5 Expat) codebase: LICENSE.md is the MIT text for Paco Coursey 2022, and a whole-tree search for copyright/SPDX/licence wording found no other notice, no COPYING/NOTICE/AUTHORS file, no third-party licensed files and no built artefacts. debian/copyright is DEP-5 1.0 with Files: * and Files: debian/*, reproduces the Expat text in full, and Files-Excluded: website matches reality (the directory is in neither the orig tarball nor the tree). The only doubt is an in-tree scoring file that carries no notice at all (see Issues), which is flagged as unconfirmed; it does not make the licence terms non-free.

Packaging

The debhelper/nodejs packaging is broadly competent (compat 14, dh-sequence-nodejs, arch:all, ITP changelog, autopkgtest, no patches needed), but the binary package is broken for ESM consumers: the tsc-only build produces dist/index.js (CommonJS) while the installed cmdk/package.json advertises dist/index.mjs as module and as the exports.import target, so import 'cmdk' and bundlers fail. It also carries an unnecessary runtime dependency on the TypeScript compiler, and its upstream URLs disagree with the tarball actually packaged.

Issues

important packaging 1. Package installs no ESM entry point although cmdk/package.json exports ./dist/index.mjs ◂
  • Files: cmdk/package.json:6,14, debian/nodejs/build:11,27, debian/tests/pkg-js/test:4
  • Basis: checked, in the package or with a reference tool
  • Evidence: cmdk/package.json: "module": "./dist/index.mjs" and "import": "./dist/index.mjs"; debian/nodejs/build: module: "CommonJS" ... tsc --outDir dist --noCheck --skipLibCheck (the upstream tsup src build is never run: tsup is not in pkg-js-tools' @known_build_commands, /usr/share/perl5/Debian/Debhelper/Buildsystem/nodejs.pm).
  • Problem: The Debian build emits only dist/index.js and dist/index.d.ts. pkg-js-tools' install_module copies package.json verbatim and installs only package.json#files (["dist"]), so /usr/share/nodejs/cmdk/package.json points module and exports.import at a file that does not exist. import { Command } from 'cmdk' then fails with ERR_MODULE_NOT_FOUND, and bundlers honouring module/exports.import fail to build. The autopkgtest only does require('./dist/index.js'), so CJS passes and the breakage is invisible.
  • Fix: Produce the ESM build as upstream does (run tsup/rollup, or a second tsc pass emitting dist/index.mjs with rewritten imports), or patch cmdk/package.json to drop the module field and point exports.import at ./dist/index.js; add import('cmdk') to debian/tests/pkg-js/test so the ESM path is exercised.
minor packaging 2. Runtime Depends on node-typescript, which is needed only to build ◂
  • Files: debian/control:28
  • Basis: checked, in the package or with a reference tool
  • Evidence: Depends: ... node-typescript,
  • Problem: TypeScript is used only by debian/nodejs/build (tsc); the installed module is plain dist/*.js plus .d.ts and needs no compiler at run time. Listing it in Depends makes every installation pull in node-typescript (24 MB) for nothing, and a relationship the code does not use is a defect under Policy 7.1.
  • Fix: Drop node-typescript from the binary Depends; keep it in Build-Depends.
minor packaging 3. Upstream URLs disagree: debian/copyright and Homepage say pacocoursey/cmdk, the tarball and upstream/metadata say dip/cmdk ◂
  • Files: debian/copyright:5, debian/control:16, debian/upstream/metadata:4
  • Basis: checked, in the package or with a reference tool
  • Evidence: debian/copyright Source: https://github.com/pacocoursey/cmdk; debian/control Homepage: https://github.com/pacocoursey/cmdk#readme; debian/upstream/metadata Repository: https://github.com/dip/cmdk.git; the orig tarball's root directory is dip-cmdk-fb4ea04/.
  • Problem: The files disagree about where the packaged code came from: the tarball was generated from github.com/dip/cmdk (the tarball root is dip-cmdk- and the metadata names it), while debian/copyright and Homepage name pacocoursey/cmdk. debian/copyright therefore does not record the source of the files it describes, and the DEP-12 metadata and Homepage point readers at different projects.
  • Fix: Settle which repository is upstream. If dip/cmdk is a fork used for packaging, say so (e.g. a Comment in debian/copyright) and package from upstream's own release/tag; otherwise update Source/Homepage/metadata so all name the same repository.
Verified ◂
  • debian/copyright read in full: DEP-5 1.0, Files: * (Paco Coursey, Expat) and Files: debian/* (Andrew Lee, Expat), standalone Expat text reproduced verbatim; Upstream-Name cmdk.
  • LICENSE.md is the MIT/Expat text, Copyright (c) 2022 Paco Coursey; Copyright|(C)|©|SPDX-License-Identifier|Licensed under|GNU (Lesser) General Public|Apache License|Mozilla Public|public domain|All rights reserved searched over the whole tree (all globs/greps with gitignore off, .pc/ skipped) matched only LICENSE.md, debian/copyright and one unrelated onClick={(c) ...} hit.
  • Whole-tree inventory (44 files outside .pc/ and debian/): top-level config/docs, cmdk/{package.json,tsup.config.ts,src/}, test/{.test.ts,pages/*,style.css,next-env.d.ts,...}, .github/, .husky/. Only LICENSE.md is a licence file; no COPYING/NOTICE/AUTHORS; no images, fonts, PDFs, minified or built JS/bytecode in the tree. test/next-env.d.ts is the 4-line Next.js type-reference stub; cmdk/dist is absent (gitignored, generated by the build).
  • Prescan listed no files and its author check found no holder missing from debian/copyright; nothing listed there is left unaccounted for.
  • Files-Excluded: website is accurate: the orig tarball (root dip-cmdk-fb4ea04/) and the tree both lack website/; README.md:2 still references ./website/public/og.png, which is only a broken link and has no licensing consequence (pnpm-workspace.yaml also still lists 'website', harmless since no pnpm install is run).
  • Build/install flow checked against /usr/share/perl5/Debian/Debhelper/Buildsystem/nodejs.pm and Sequence/nodejs.pm: debian/nodejs/build is executed for the main dir (cd cmdk; tsc), the cmdk component's tsup src script is skipped because tsup is not a known build command, install_module installs package.json#files (dist), the forced main file dist/index.js and cmdk/package.json into /usr/share/nodejs/cmdk; debian/rules removes the unwanted /usr/share/nodejs/cmdk-root afterwards.
  • Dependencies checked with apt-cache: node-react 18.3.1, node-react-dom 18.3.1~..., node-react-remove-scroll 2.7.2, node-typescript 6.0.3-2 all exist in unstable; Homepage, Vcs-Browser/Vcs-Git, Testsuite and Section fields are present and well formed.
  • Packaging files: debhelper-compat 14, no debian/patches (nothing to be DEP-3 checked), changelog 1.1.1+ds-1 to unstable closing #1151619 with a valid date, source format 3.0 (quilt), autopkgtest via Testsuite: autopkgtest-pkg-nodejs with debian/tests/pkg-js/test; Standards-Version 4.7.4 against Policy 4.7.4.1.
  • uscan found the packaged version as the newest upstream release (upstream 1.1.1, packaged 1.1.1+ds).
Not confirmed ◂
  • node-radix-ui appears neither in the archive's package lists nor among the uploads waiting in NEW, and nothing provides it; if it is not a virtual package provided by a radix upload, both Build-Depends and Depends are unsatisfiable. The related @radix-ui/react-compose-refs, react-dialog, react-id and react-primitive modules in debian/nodejs/extlinks are only covered if that one package ships all of them.
  • The provenance of cmdk/src/command-score.ts could not be checked offline: no command-score source exists under /usr/share/nodejs to compare against, and nothing in the package states it (reported as a recalled issue above).
  • Whether the tsc 6.0.3 in unstable accepts the generated tsconfig (ignoreDeprecations: "6.0", module: "CommonJS", types: ["node",...] with @types/node only listed in extlinks) was not tested; the maintainer's own clean build is assumed to succeed.
  • Whether this is a fault: cmdk/src/command-score.ts carries no copyright notice though it appears to be vendored from the command-score package. The model reported it as a blocker licensing issue from its own knowledge of something outside the package, which it did not check with a tool, so it is not counted among the issues. Files: cmdk/src/command-score.ts:1-5, debian/copyright:8-10.
    Evidence: The file has no header at all, and its comments refer to another codebase: in the original, we used to do the lower-casing on each recursive call and allow duplicate letters. Ref #7428; the scoring constants (SCORE_CONTINUE_MATCH, PENALTY_CASE_MISMATCH, ...) are the ones of the npm command-score package.
    Problem: If this is copied from command-score (MIT), its copyright notice and permission text must be retained and its holder named in debian/copyright; Files: * names only Paco Coursey. I could not check the file's origin offline (nothing named command-score exists in /usr/share/nodejs), so this is reported as unconfirmed.
    Fix: Check the file's history in the upstream repository; if it is derived from command-score, add a Files: cmdk/src/command-score.ts stanza with its holder and licence and keep the upstream notice in the file.
  • debian/watch looks at github.com/dip/cmdk, but the Source field of debian/copyright names github.com/pacocoursey/cmdk. Whether these are the same upstream was not checked.
Proposed changes ◂

None.

Uploader's response to the LLM review

The uploader was emailed about the review 1 day ago.

Other Reviews of this Package

VersionHashAllocatedCompletedReviewerStatusDetails
1.1.1+ds-1 93767a81… 2026-11-06 10:35 2026-11-06 10:35 dfsg-uploader rejected VIEW
1.1.1-1 705f6964… 2026-11-06 10:35 2026-11-06 10:35 dfsg-uploader rejected VIEW

Back to Dashboard | View all reviews for this package