@monosmith/plugin-sdk 2.0.0-beta.11 → 2.0.0-beta.12

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monosmith/plugin-sdk",
3
- "version": "2.0.0-beta.11",
3
+ "version": "2.0.0-beta.12",
4
4
  "description": "The TypeScript SDK for writing smith plugins: the protocol's types, the serve loop, a test host, the conformance checks, templating and key-order-keeping JSON editing. No runtime dependencies.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -643,6 +643,10 @@ export const protocolSchema = {
643
643
  "type": "boolean",
644
644
  "description": "Channels says a prerelease version the plugin publishes never takes the place of the stable one: the plugin publishes under PublishParams.Tag, a release channel's name, without moving the registry's stable pointer (npm's latest), or its registry orders a prerelease below the release (PyPI, NuGet) and needs no tag. A host does not publish a package of a release channel with a plugin that lacks it."
645
645
  },
646
+ "packs": {
647
+ "type": "boolean",
648
+ "description": "Packs says publish honours PublishParams.PackDir: it writes the package file and publishes nowhere (registry = \"github-release\"). A host never calls publish with the setting on a plugin that lacks it, since the plugin would publish to the public registry."
649
+ },
646
650
  "declared": {
647
651
  "type": "boolean",
648
652
  "description": "Declared says the plugin describes the projects smith.toml declares for its language (DiscoverParams.declared): folders with no manifest of their own. A plugin without it finds a project by its manifest only, and the host refuses a declaration for its language with a message that says so."
@@ -2056,6 +2060,10 @@ export const protocolSchema = {
2056
2060
  "type": "string",
2057
2061
  "description": "PropagationWait is the longest time a plugin waits, in a Finalize call, for the packages of the release to be fetchable from the registry: a duration such as \"15m\", \"0\" to not wait. Empty means the default. Only npm has such a wait. A publish never waits."
2058
2062
  },
2063
+ "packDir": {
2064
+ "type": "string",
2065
+ "description": "PackDir, when set, turns the call into a pack: the plugin writes the package file of the project's ecosystem (npm tarball, wheel and sdist, .nupkg, .gem, .crate) and returns the files in PublishResult.Assets, and publishes nothing anywhere. A workspace-relative folder. The host sends it only to a plugin with the packs capability. In a dry run the plugin lists the files it would write, writes none, and reads no registry."
2066
+ },
2059
2067
  "finalize": {
2060
2068
  "type": "array",
2061
2069
  "items": {
@@ -2204,6 +2212,10 @@ export const protocolSchema = {
2204
2212
  "noPublish": {
2205
2213
  "type": "boolean",
2206
2214
  "description": "NoPublish means smith.toml says registry = \"none\": the release versions and tags the project and publishes it to no registry (a registry that builds from the tag, such as JitPack, does the rest)."
2215
+ },
2216
+ "packToRelease": {
2217
+ "type": "boolean",
2218
+ "description": "PackToRelease means smith.toml says registry = \"github-release\": the release packs the project into its ecosystem's package file and attaches it to the project's GitHub Release, publishing to no registry. The host sends PublishParams.PackDir to a plugin with the packs capability and never calls publish on one without it."
2207
2219
  }
2208
2220
  }
2209
2221
  },
@@ -211,6 +211,12 @@ export interface Capabilities {
211
211
  * plugin that lacks it.
212
212
  */
213
213
  channels?: boolean;
214
+ /**
215
+ * Packs says publish honours PublishParams.PackDir: it writes the package file and publishes
216
+ * nowhere (registry = "github-release"). A host never calls publish with the setting on a plugin
217
+ * that lacks it, since the plugin would publish to the public registry.
218
+ */
219
+ packs?: boolean;
214
220
  /**
215
221
  * Declared says the plugin describes the projects smith.toml declares for its language
216
222
  * (DiscoverParams.declared): folders with no manifest of their own. A plugin without it finds a
@@ -1102,6 +1108,14 @@ export interface PublishParams {
1102
1108
  * means the default. Only npm has such a wait. A publish never waits.
1103
1109
  */
1104
1110
  propagationWait?: string;
1111
+ /**
1112
+ * PackDir, when set, turns the call into a pack: the plugin writes the package file of the
1113
+ * project's ecosystem (npm tarball, wheel and sdist, .nupkg, .gem, .crate) and returns the files
1114
+ * in PublishResult.Assets, and publishes nothing anywhere. A workspace-relative folder. The host
1115
+ * sends it only to a plugin with the packs capability. In a dry run the plugin lists the files it
1116
+ * would write, writes none, and reads no registry.
1117
+ */
1118
+ packDir?: string;
1105
1119
  /**
1106
1120
  * Finalize turns the call into the last phase of a release: nothing is published; for each move
1107
1121
  * the plugin waits until its packages are fetchable, then moves the dist-tag. The host sends it
@@ -1195,6 +1209,13 @@ export interface Registries {
1195
1209
  * rest).
1196
1210
  */
1197
1211
  noPublish?: boolean;
1212
+ /**
1213
+ * PackToRelease means smith.toml says registry = "github-release": the release packs the project
1214
+ * into its ecosystem's package file and attaches it to the project's GitHub Release, publishing
1215
+ * to no registry. The host sends PublishParams.PackDir to a plugin with the packs capability and
1216
+ * never calls publish on one without it.
1217
+ */
1218
+ packToRelease?: boolean;
1198
1219
  }
1199
1220
  /**
1200
1221
  * Registry is a package registry smith.toml names in [registries.<name>]: a private feed (Azure