@monosmith/plugin-sdk 2.0.0-beta.7 → 2.0.0-beta.9
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.
|
|
3
|
+
"version": "2.0.0-beta.9",
|
|
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",
|
|
@@ -2047,7 +2047,14 @@ export const protocolSchema = {
|
|
|
2047
2047
|
},
|
|
2048
2048
|
"propagationWait": {
|
|
2049
2049
|
"type": "string",
|
|
2050
|
-
"description": "PropagationWait is the longest time a plugin waits,
|
|
2050
|
+
"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."
|
|
2051
|
+
},
|
|
2052
|
+
"finalize": {
|
|
2053
|
+
"type": "array",
|
|
2054
|
+
"items": {
|
|
2055
|
+
"$ref": "#/$defs/TagMove"
|
|
2056
|
+
},
|
|
2057
|
+
"description": "Finalize turns the call into the last phase of a release: nothing is published; for each move the plugin waits until its packages are fetchable, then moves the dist-tag. The host sends it after every project has published, so a wait never blocks another publish."
|
|
2051
2058
|
}
|
|
2052
2059
|
},
|
|
2053
2060
|
"required": [
|
|
@@ -2075,12 +2082,19 @@ export const protocolSchema = {
|
|
|
2075
2082
|
},
|
|
2076
2083
|
"description": "Notes are things the person must know about a publish that succeeded, such as a dist-tag that was not moved; the host prints them and the report keeps them."
|
|
2077
2084
|
},
|
|
2078
|
-
"
|
|
2085
|
+
"pendingMoves": {
|
|
2086
|
+
"type": "array",
|
|
2087
|
+
"items": {
|
|
2088
|
+
"$ref": "#/$defs/TagMove"
|
|
2089
|
+
},
|
|
2090
|
+
"description": "PendingMoves are the dist-tags the call did not move, because the packages the release needs were not fetchable yet. A publish returns them for the host to move at the end of the release; a Finalize call returns the ones still waiting when its time ran out. The release then ends with a warning, never silently."
|
|
2091
|
+
},
|
|
2092
|
+
"moved": {
|
|
2079
2093
|
"type": "array",
|
|
2080
2094
|
"items": {
|
|
2081
2095
|
"type": "string"
|
|
2082
2096
|
},
|
|
2083
|
-
"description": "
|
|
2097
|
+
"description": "Moved names the dist-tags a Finalize call moved (\"name@version tag\")."
|
|
2084
2098
|
},
|
|
2085
2099
|
"assets": {
|
|
2086
2100
|
"type": "array",
|
|
@@ -2490,6 +2504,36 @@ export const protocolSchema = {
|
|
|
2490
2504
|
"blocking"
|
|
2491
2505
|
]
|
|
2492
2506
|
},
|
|
2507
|
+
"TagMove": {
|
|
2508
|
+
"description": "TagMove is a dist-tag a publish left where it was, because the packages the release needs were not fetchable yet.",
|
|
2509
|
+
"type": "object",
|
|
2510
|
+
"properties": {
|
|
2511
|
+
"package": {
|
|
2512
|
+
"type": "string",
|
|
2513
|
+
"description": "Package and Version name the package that carries the tag."
|
|
2514
|
+
},
|
|
2515
|
+
"version": {
|
|
2516
|
+
"type": "string"
|
|
2517
|
+
},
|
|
2518
|
+
"tag": {
|
|
2519
|
+
"type": "string",
|
|
2520
|
+
"description": "Tag is the dist-tag to move to Version."
|
|
2521
|
+
},
|
|
2522
|
+
"awaits": {
|
|
2523
|
+
"type": "array",
|
|
2524
|
+
"items": {
|
|
2525
|
+
"type": "string"
|
|
2526
|
+
},
|
|
2527
|
+
"description": "Awaits are the packages that must be fetchable first."
|
|
2528
|
+
}
|
|
2529
|
+
},
|
|
2530
|
+
"required": [
|
|
2531
|
+
"package",
|
|
2532
|
+
"version",
|
|
2533
|
+
"tag",
|
|
2534
|
+
"awaits"
|
|
2535
|
+
]
|
|
2536
|
+
},
|
|
2493
2537
|
"Task": {
|
|
2494
2538
|
"description": "Task is a command the host can run, hash and cache.",
|
|
2495
2539
|
"type": "object",
|
|
@@ -2561,7 +2605,7 @@ export const protocolSchema = {
|
|
|
2561
2605
|
]
|
|
2562
2606
|
},
|
|
2563
2607
|
"ToolInstall": {
|
|
2564
|
-
"description": "ToolInstall is one way to get a tool with a package manager. Manager is one of: \"winget\", \"brew\", \"brew-cask\", \"apt\", \"dnf\", \"pacman\", \"npm\", \"uv\", \"fnm\" and \"
|
|
2608
|
+
"description": "ToolInstall is one way to get a tool with a package manager. Manager is one of: \"winget\", \"brew\", \"brew-cask\", \"apt\", \"dnf\", \"pacman\", \"npm\", \"uv\", \"fnm\", \"rustup\" and \"cargo\". The host builds the exact command from the manager and Package; Package may hold {major} and {major.minor}, which the pinned or suggested version fills. The language's own installers (uv, fnm, rustup, cargo) are offered only when they are already on the machine.",
|
|
2565
2609
|
"type": "object",
|
|
2566
2610
|
"properties": {
|
|
2567
2611
|
"manager": {
|
|
@@ -1092,11 +1092,17 @@ export interface PublishParams {
|
|
|
1092
1092
|
*/
|
|
1093
1093
|
tag?: string;
|
|
1094
1094
|
/**
|
|
1095
|
-
* PropagationWait is the longest time a plugin waits,
|
|
1096
|
-
*
|
|
1097
|
-
*
|
|
1095
|
+
* PropagationWait is the longest time a plugin waits, in a Finalize call, for the packages of the
|
|
1096
|
+
* release to be fetchable from the registry: a duration such as "15m", "0" to not wait. Empty
|
|
1097
|
+
* means the default. Only npm has such a wait. A publish never waits.
|
|
1098
1098
|
*/
|
|
1099
1099
|
propagationWait?: string;
|
|
1100
|
+
/**
|
|
1101
|
+
* Finalize turns the call into the last phase of a release: nothing is published; for each move
|
|
1102
|
+
* the plugin waits until its packages are fetchable, then moves the dist-tag. The host sends it
|
|
1103
|
+
* after every project has published, so a wait never blocks another publish.
|
|
1104
|
+
*/
|
|
1105
|
+
finalize?: TagMove[];
|
|
1100
1106
|
}
|
|
1101
1107
|
/**
|
|
1102
1108
|
* PublishResult reports what happened. Skipped with a reason is a success: an already-published
|
|
@@ -1112,11 +1118,14 @@ export interface PublishResult {
|
|
|
1112
1118
|
*/
|
|
1113
1119
|
notes?: string[];
|
|
1114
1120
|
/**
|
|
1115
|
-
*
|
|
1116
|
-
*
|
|
1117
|
-
*
|
|
1121
|
+
* PendingMoves are the dist-tags the call did not move, because the packages the release needs
|
|
1122
|
+
* were not fetchable yet. A publish returns them for the host to move at the end of the release;
|
|
1123
|
+
* a Finalize call returns the ones still waiting when its time ran out. The release then ends
|
|
1124
|
+
* with a warning, never silently.
|
|
1118
1125
|
*/
|
|
1119
|
-
|
|
1126
|
+
pendingMoves?: TagMove[];
|
|
1127
|
+
/** Moved names the dist-tags a Finalize call moved ("name@version tag"). */
|
|
1128
|
+
moved?: string[];
|
|
1120
1129
|
/**
|
|
1121
1130
|
* Assets are the workspace-relative files built for the release, in upload order; in a dry run,
|
|
1122
1131
|
* the files that would be built.
|
|
@@ -1320,6 +1329,19 @@ export interface Step {
|
|
|
1320
1329
|
*/
|
|
1321
1330
|
cacheFiles?: string[];
|
|
1322
1331
|
}
|
|
1332
|
+
/**
|
|
1333
|
+
* TagMove is a dist-tag a publish left where it was, because the packages the release needs were
|
|
1334
|
+
* not fetchable yet.
|
|
1335
|
+
*/
|
|
1336
|
+
export interface TagMove {
|
|
1337
|
+
/** Package and Version name the package that carries the tag. */
|
|
1338
|
+
package: string;
|
|
1339
|
+
version: string;
|
|
1340
|
+
/** Tag is the dist-tag to move to Version. */
|
|
1341
|
+
tag: string;
|
|
1342
|
+
/** Awaits are the packages that must be fetchable first. */
|
|
1343
|
+
awaits: string[];
|
|
1344
|
+
}
|
|
1323
1345
|
/** Task is a command the host can run, hash and cache. */
|
|
1324
1346
|
export interface Task {
|
|
1325
1347
|
/** Command is an argv array; it is never passed through a shell. */
|
|
@@ -1365,10 +1387,10 @@ export interface Task {
|
|
|
1365
1387
|
}
|
|
1366
1388
|
/**
|
|
1367
1389
|
* ToolInstall is one way to get a tool with a package manager. Manager is one of: "winget", "brew",
|
|
1368
|
-
* "brew-cask", "apt", "dnf", "pacman", "npm", "uv", "fnm" and "
|
|
1369
|
-
* command from the manager and Package; Package may hold {major} and {major.minor}, which
|
|
1370
|
-
* pinned or suggested version fills. The language's own installers (uv, fnm, rustup) are
|
|
1371
|
-
* only when they are already on the machine.
|
|
1390
|
+
* "brew-cask", "apt", "dnf", "pacman", "npm", "uv", "fnm", "rustup" and "cargo". The host builds
|
|
1391
|
+
* the exact command from the manager and Package; Package may hold {major} and {major.minor}, which
|
|
1392
|
+
* the pinned or suggested version fills. The language's own installers (uv, fnm, rustup, cargo) are
|
|
1393
|
+
* offered only when they are already on the machine.
|
|
1372
1394
|
*/
|
|
1373
1395
|
export interface ToolInstall {
|
|
1374
1396
|
manager: string;
|