# Zuplo Editor

This project is not meant to be used independently. It is part of the
[Zuplo CLI](https://zuplo.com/docs/cli)

## Publishing

The published package is **`publish/`**, not this directory.

```bash
pnpm --filter @zuplo/editor build:package
npm publish ./packages/editor/publish
```

This directory is a workspace member, so publishing it directly would ship the
spec files and a `dependencies` list containing everything the editor imports.
`build:package` assembles the real artifact instead: every runtime dependency is
bundled and tree-shaken, only the declarations reachable from the entry points
are copied, and the `package.json` is generated from scratch. **The published
package has no dependencies** — see
[`scripts/build-package.ts`](./scripts/build-package.ts).

That last part is why `EditorApp.fetch` is a plain function and
`AssetSource.serve` takes a `Request`, rather than the `Hono` and hono `Context`
they really are: a published declaration can only name a type a consumer can
resolve, and hono is bundled. The build fails if a reachable declaration names
anything that isn't installable, so this can't regress quietly.

`npm publish` from this directory fails on purpose.
