diff --git a/AGENTS.md b/AGENTS.md
index 1f4a93d..263a1c9 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -19,7 +19,7 @@ VitePress build. It is also what CI runs, on every pull request
- every `require("@cap2ui5/cds-plugin")` or `import { … } from
"@cap2ui5/cds-plugin"` **inside a code fence** names only what the package
really exports (and two dead packages are reported, in either form: the
- port's `abap2UI5/…` and the plugin's withdrawn old name `cap2ui5`),
+ port's `abap2UI5/…` and the plugin's old name `cap2ui5`, deprecated on npm),
- every `cds.requires.cap2ui5.` is an option the plugin defines (and
0.1.0's `cds.cap2ui5. ` is reported as the deprecated place),
- every `1.x.y` release number is the pinned runtime release,
@@ -66,8 +66,10 @@ On npm since 2026-09-29: `@cap2ui5/cds-plugin@0.3.1` (Node ≥ 22, peer
`@sap/cds` ≥ 9), published by the npm organisation `cap2ui5`, and
`@cap2ui5/samples@0.1.0`. The plugin pins `@abap2ui5/node-runtime@1.145.0`
(on npm since 2026-09-27) **exactly**. Up to 0.2.0 the plugin was the unscoped
-package `cap2ui5`; it is withdrawn from npm (0.2.0 never reached it), so the
-site names it only as the old name. What did NOT change name: the
+package `cap2ui5`. On npm that name is now only a deprecated notice,
+`cap2ui5@0.1.1`, whose `require` throws and whose bin exits naming
+`@cap2ui5/cds-plugin` (0.2.0 never reached npm), so the site names it only as
+the old name. What did NOT change name: the
configuration `cds.requires.cap2ui5`, `cds add cap2ui5`, the bin
`npx cap2ui5 abap2js`, the entity `cap2ui5.Drafts` and the logger `cap2ui5`. The runtime package was renamed from
`@abap2ui5/runtime` before its first publish — the old name never existed on
diff --git a/docs/guide/ecosystem.md b/docs/guide/ecosystem.md
index f401279..ce79a08 100644
--- a/docs/guide/ecosystem.md
+++ b/docs/guide/ecosystem.md
@@ -35,7 +35,8 @@ All three are on npm: `@cap2ui5/cds-plugin` 0.3.1 (Node ≥ 22, `@sap/cds` ≥ 9
`@abap2ui5/node-runtime` 1.145.0 (Node ≥ 22), which the plugin pins exactly,
and `@cap2ui5/samples` 0.1.0. `npm add @cap2ui5/cds-plugin` installs the first two — see the
[Quickstart](./getting-started). Up to 0.2.0 the plugin was the unscoped
-package `cap2ui5`, which is withdrawn from npm.
+package `cap2ui5`. On npm that name is now a deprecated notice (0.1.1) and
+nothing else: requiring it throws an error that names `@cap2ui5/cds-plugin`.
## What the plugin does and does not own
diff --git a/docs/guide/getting-started.md b/docs/guide/getting-started.md
index 5e0c182..e4710e6 100644
--- a/docs/guide/getting-started.md
+++ b/docs/guide/getting-started.md
@@ -72,8 +72,9 @@ Your own `server.js`, if you have one, is not touched. Nothing is generated
into your repository, and there are no frontend files to serve.
::: info Coming from the package `cap2ui5`
-Up to 0.2.0 the plugin was the unscoped package `cap2ui5`, which is withdrawn
-from npm. A project that has it swaps it:
+Up to 0.2.0 the plugin was the unscoped package `cap2ui5`. On npm that name is
+now a deprecated notice that only throws an error naming the new package. A
+project that has it swaps it:
```bash
npm rm cap2ui5 && npm add @cap2ui5/cds-plugin
diff --git a/scripts/verify-refs.mjs b/scripts/verify-refs.mjs
index 954139e..bcaf5cb 100644
--- a/scripts/verify-refs.mjs
+++ b/scripts/verify-refs.mjs
@@ -55,13 +55,13 @@
* package actually exports, and a "@cap2ui5/cds-plugin/" specifier
* lands on a file that exists. Two dead packages are reported by name,
* in either form: "abap2UI5/…", the port's package, and "cap2ui5", the
- * plugin's name up to 0.2.0, withdrawn from npm.
+ * plugin's name up to 0.2.0, now a deprecated notice on npm.
* 5. every plugin option named as `cds.requires.cap2ui5.` is a key the plugin
* really defines, every three-part release number (1.x.y) is the runtime
* release the checkout pins or an allowlisted historical number, and a
* `"@cap2ui5/cds-plugin": "^x.y.z"` a page tells a reader to write is a
* range the plugin's own version actually falls in (and a dependency on
- * the withdrawn `"cap2ui5"` is reported whatever its range).
+ * the deprecated `"cap2ui5"` is reported whatever its range).
*
* Check 4 exists because the first three did not see the largest defect this
* site ever had. Fenced blocks were skipped wholesale as "examples, not
@@ -221,8 +221,9 @@ const PLUGIN_VERSION = (() => {
} catch { return null; }
})();
const CAP2UI5_DEP_RE = /"@cap2ui5\/cds-plugin"\s*:\s*"[~^]?(\d+\.\d+)\.[\dx]+"/g;
-// The unscoped package `cap2ui5` was withdrawn from npm with 0.3.0 - a
-// dependency on it is a line a reader cannot install, whatever its range.
+// The unscoped package `cap2ui5` is, since 0.3.0, only a deprecated notice on
+// npm whose require( ) throws - a dependency on it installs nothing a reader
+// can use, whatever its range.
const WITHDRAWN_DEP_RE = /"cap2ui5"\s*:\s*"[~^]?\d/g;
const minor = (v) => String(v).split(".").slice(0, 2).join(".");
@@ -268,7 +269,7 @@ const RELEASE_RE = /\b1\.\d{2,3}\.\d+\b/g;
const CLASS_RE = /`(z2ui5_(?:cl|if|cx)_[a-z0-9_]+)(?![a-z0-9_])/gi;
// require("@cap2ui5/cds-plugin"), require("@cap2ui5/cds-plugin/lib/…"), and two
// dead packages: the port's `abap2UI5` and the plugin's own old name `cap2ui5`,
-// withdrawn from npm with 0.3.0.
+// a deprecated notice on npm since 0.3.0.
const PKG = "@cap2ui5/cds-plugin";
const REQUIRE_RE = /require\(\s*["'`](@cap2ui5\/cds-plugin|cap2ui5|abap2UI5)(?:\/([^"'`]+))?["'`]\s*\)/gi;
// `const { defineApp, t } = require("@cap2ui5/cds-plugin")` — the names, not just the path
@@ -326,7 +327,7 @@ for (const file of markdownFiles(DOCS)) {
}
for (const m of line.matchAll(WITHDRAWN_DEP_RE)) {
- add(file, n, `tells a reader to depend on "cap2ui5", which was withdrawn from npm `
+ add(file, n, `tells a reader to depend on "cap2ui5", which is only a deprecated notice on npm `
+ `- the package is "${PKG}"`);
}
@@ -362,7 +363,7 @@ for (const file of markdownFiles(DOCS)) {
continue;
}
if (pkg.toLowerCase() === "cap2ui5") {
- add(file, n, `${how} "${spec}" is the plugin's OLD name, withdrawn from npm - `
+ add(file, n, `${how} "${spec}" is the plugin's OLD name, only a deprecated notice on npm - `
+ `the package is "${PKG}"`);
continue;
}