chore: import upstream snapshot with attribution
CI / E2E Cloudflare (4/8) (push) Failing after 0s
CI / E2E Cloudflare (8/8) (push) Failing after 1s
CI / Lint (push) Failing after 1s
Auto Extract / Extract (push) Failing after 4s
CI / Version Check (push) Failing after 9s
CI / Integration Tests (push) Failing after 1s
CI / E2E tests (1/8) (push) Failing after 1s
CI / E2E tests (2/8) (push) Failing after 2s
CI / E2E tests (3/8) (push) Failing after 2s
CI / Browser Tests (push) Failing after 1s
CI / E2E tests (5/8) (push) Failing after 1s
CI / E2E Cloudflare (2/8) (push) Failing after 2s
CI / Typecheck (push) Failing after 1s
CI / Changeset Validation (push) Failing after 2s
CI / E2E Cloudflare (5/8) (push) Failing after 1s
CI / E2E Cloudflare (6/8) (push) Failing after 1s
CI / E2E Cloudflare (7/8) (push) Failing after 1s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1s
Format / Format (push) Failing after 0s
CodeQL / Analyze (actions) (push) Failing after 4s
CI / E2E tests (4/8) (push) Failing after 1s
CI / E2E tests (6/8) (push) Failing after 1s
CI / E2E tests (7/8) (push) Failing after 2s
CI / E2E tests (8/8) (push) Failing after 1s
CI / E2E Cloudflare (1/8) (push) Failing after 1s
CI / E2E Cloudflare (3/8) (push) Failing after 2s
Preview Releases / Publish Preview (push) Failing after 0s
zizmor / Run zizmor (push) Failing after 1s
Release / Release (push) Failing after 2s
CI / Smoke Tests (push) Failing after 5m36s
CI / Tests (push) Failing after 6m36s
Release / Sync Templates (push) Has been skipped
CI / E2E Tests (push) Has been cancelled

This commit is contained in:
wehub-resource-sync
2026-07-13 12:23:53 +08:00
commit b3a7f98e5a
3020 changed files with 935484 additions and 0 deletions
+69
View File
@@ -0,0 +1,69 @@
/**
* `emdash-plugin build`
*
* Thin citty wrapper around `buildPlugin` from `./api.js`. Produces the
* on-disk dist artifacts for an npm-installed sandboxed plugin:
*
* - `dist/plugin.mjs` (+ `.d.mts`) — runtime bytes (hooks + routes).
* - `dist/index.mjs` (+ `.d.mts`) — descriptor module, bare default export.
* - `dist/manifest.json` — normalised manifest, kept in sync.
*
* Plugin authors run this from their package's `prepublishOnly` (or a
* `pnpm build` script that delegates). Bundling for the registry (the
* tarball form) is a separate command — see `emdash-plugin bundle`.
*/
import { defineCommand } from "citty";
import consola from "consola";
import pc from "picocolors";
import { BuildError, buildPlugin, type BuildLogger } from "./api.js";
export const buildCommand = defineCommand({
meta: {
name: "build",
description: "Build a sandboxed plugin's npm distribution artifacts",
},
args: {
dir: {
type: "string",
description: "Plugin directory (default: current directory)",
default: process.cwd(),
},
"out-dir": {
type: "string",
alias: "o",
description: "Output directory (default: ./dist)",
default: "dist",
},
},
async run({ args }) {
const logger: BuildLogger = {
start: (m) => consola.start(m),
info: (m) => consola.info(m),
success: (m) => consola.success(m),
warn: (m) => consola.warn(m),
};
let result;
try {
result = await buildPlugin({
dir: args.dir,
outDir: args["out-dir"],
logger,
});
} catch (error) {
if (error instanceof BuildError) {
consola.error(error.message);
process.exit(1);
}
throw error;
}
console.log();
consola.info("Output:");
console.log(` ${pc.cyan(result.files.descriptor)}`);
console.log(` ${pc.cyan(result.files.runtime)}`);
console.log(` ${pc.cyan(result.files.manifestJson)}`);
},
});