@liminis/editor 0.1.0-rc.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -28,10 +28,14 @@ travelled with the code, are recorded in [`docs/provenance.md`](./docs/provenanc
28
28
 
29
29
  ## Install
30
30
 
31
- > **This package is not published.** It is `private: true` and `@liminis/editor`
32
- > does not exist on the npm registry, so `pnpm add @liminis/editor` will fail.
33
- > That is deliberate — see [Consuming it](#consuming-it) below for the mechanism
34
- > that actually works, and `docs/decisions/adr-078.md` for why.
31
+ ```bash
32
+ pnpm add @liminis/editor
33
+ ```
34
+
35
+ > **This is `0.x`.** Minor versions may contain breaking changes; patch versions
36
+ > will not. The seven declared subpath exports are the public API — anything
37
+ > reachable by a deeper path is private and may move without notice. Breaking
38
+ > changes are listed in the changelog with a migration note.
35
39
 
36
40
  React and Lexical are **peer dependencies**, so your app resolves exactly one
37
41
  copy of each. Two React copies produce `Invalid hook call`; two Lexical copies
@@ -259,8 +263,9 @@ inert).
259
263
 
260
264
  ## Consuming it
261
265
 
262
- Because the package is unpublished, consumers install a **packed tarball** rather
263
- than a registry version:
266
+ The registry is the normal route (`pnpm add @liminis/editor`). The
267
+ **packed tarball** below remains the way to consume an unreleased change — a
268
+ local build, or a commit that has not been tagged:
264
269
 
265
270
  ```bash
266
271
  # in this repository
@@ -271,9 +276,10 @@ pnpm add /tmp/liminis-editor-0.1.0.tgz
271
276
  ```
272
277
 
273
278
  Applications that do this commit the tarball into their own tree (typically under
274
- `vendor/`) and pin it by filename, so the install is reproducible and needs no
275
- credentials for this private repository. `pnpm pack` works on a private package;
276
- only `npm publish` is blocked, which is exactly the guard intended.
279
+ `vendor/`) and pin it by filename, so the install is reproducible and pinned to
280
+ an exact build. `pnpm pack` is unaffected by the publish guard — that guard runs
281
+ from `prepublishOnly`, so packing, installing and vendoring all work normally
282
+ while publishing stays a deliberate act.
277
283
 
278
284
  A git dependency on this repository does **not** work, and the reasons are
279
285
  measured rather than assumed: `files` excludes the directory `main` points at, so
@@ -89,6 +89,16 @@ the built path is exercised only in CI — which is what SC-005 mandates anyway.
89
89
  `private: true` is kept: publishing is out of scope for #940, and `private`
90
90
  blocks `publish` without blocking `pack`.
91
91
 
92
+ > **Amended 2026-08-16 — this clause no longer holds.** The package was
93
+ > published as `0.1.0-rc.1`, so `private: true` is gone. It was also a weaker
94
+ > guard than assumed: `npm publish --dry-run` (npm 10.8.2) builds, packs every
95
+ > file and reports it would publish, exiting 0 without mentioning that the
96
+ > package is private. The guard is now `prepublishOnly` →
97
+ > `scripts/guard-publish.mjs`, which refuses unless `LIMINIS_ALLOW_PUBLISH=1`
98
+ > is set — a script rather than a flag precisely so that it can be tested, and
99
+ > it is, in `tests/package-manifest-contract.test.ts`. The rest of this ADR is
100
+ > unaffected: `publishConfig` and the non-bundling `tsc` emit stand as decided.
101
+
92
102
  ### 3. `mdast-util-wiki-link` is vendored, not merely un-patched.
93
103
 
94
104
  The upstream package is vendored under
package/package.json CHANGED
@@ -1,9 +1,21 @@
1
1
  {
2
2
  "name": "@liminis/editor",
3
- "version": "0.1.0-rc.1",
3
+ "version": "0.1.0",
4
4
  "//publishing": "Publishing is deliberate, never incidental. `private: true` was this package's guard until verveguy/liminis-editor#39 took the publish decision; it is gone because that decision was taken, not because it was tidied away. The guard is now `prepublishOnly` -> scripts/guard-publish.mjs, which refuses unless LIMINIS_ALLOW_PUBLISH=1 is set explicitly. That variable is set at step scope in .github/workflows/publish.yml and nowhere else, so a release is the only path that publishes. Note that `npm publish --dry-run` does NOT report a private package as blocked (npm 10.8.2), which is why the guard is a script rather than a flag.",
5
5
  "license": "MIT",
6
6
  "description": "Lexical-based markdown WYSIWYG editor with mdast round-trip and a host-injection seam",
7
+ "keywords": [
8
+ "markdown",
9
+ "markdown-editor",
10
+ "wysiwyg",
11
+ "rich-text",
12
+ "editor",
13
+ "lexical",
14
+ "react",
15
+ "mdast",
16
+ "round-trip",
17
+ "annotations"
18
+ ],
7
19
  "//packageManager": "Not cosmetic. This field used to live in the monorepo root manifest and did not travel with the package, so `pnpm/action-setup` had no version to read and CI failed before installing anything. It is also what pins the pnpm that resolves the lockfile.",
8
20
  "packageManager": "pnpm@10.33.0",
9
21
  "type": "module",