deadbyte-mcp 0.15.7 → 0.15.8
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/MANIFEST.SHA256 +6 -5
- package/PROVENANCE.json +1 -1
- package/RELEASE.json +1 -1
- package/package.json +1 -1
- package/scripts/npm-publish-r47.ps1 +5 -21
- package/scripts/npm-release-r47.mjs +178 -28
- package/src/version.mjs +1 -1
package/MANIFEST.SHA256
CHANGED
|
@@ -1329,7 +1329,7 @@ db605a698f917c4006462596e6526fe6a9c6eff9b8409e8472fe545d4b70027c node_modules/z
|
|
|
1329
1329
|
f67a25ded944912bd4621b68df17c7c70a52aae117278c076c0aabbc32a3abba node_modules/zod/v4/mini/schemas.d.ts
|
|
1330
1330
|
51b3a7869df2d3a1bd98acb9d5b6a61bbccc7653d7a3d8fca7f0e0db7e84e284 node_modules/zod/v4/mini/schemas.js
|
|
1331
1331
|
3e3125b5a537a24c3632c1c5c09640ce7bcb3935901b127ad8ae3c37a27f133f node_modules/zod/v4/package.json
|
|
1332
|
-
|
|
1332
|
+
79a1512703a88bc9d9347f26fa54ce0d0dbf52724bf3695e84dfa687f3c5a390 package.json
|
|
1333
1333
|
8177e3a354721a73df889f386a97e7744a2e017d150aecf4bf309f5177d18690 proof/CONTAINMENT-BUILD.txt
|
|
1334
1334
|
a8efa13e44ff50902aee64cfca542d19605a1ae23db95280ad2d44b324f3eae7 proof/MCP-SMOKE-STATUS.txt
|
|
1335
1335
|
7c115069cc4a343ca21b0ebdee74bd8f544b02d4aa906ffa13308725825d891a proof/NODE-SYNTAX.txt
|
|
@@ -1389,7 +1389,7 @@ d433aaea5cccd1e184775ac4d915f34e0b39c6c99916dddd009731ad5fd6443f proof/V073-WIN
|
|
|
1389
1389
|
bd0773a9e02e8ab11475c9cc5a7db29a8313233b7eab7f837922737e75ec5938 proof/VERIFY.txt
|
|
1390
1390
|
2c821808d4596965c577f40191daee224d3aea81989778c4af97f53a83b487db proof/WINDOWS-CONTAINED-STATUS.txt
|
|
1391
1391
|
f8bc839c7b4fcb0ea7b7e7ad9448847c3beae6f95f2eb4d407d1b284aaa4ff68 proof/WINDOWS-CONTAINMENT-STATUS.txt
|
|
1392
|
-
|
|
1392
|
+
60389fa2a0c7f699292cc731ecb33863ce1d38196195d38e8a48cae50228d8a1 PROVENANCE.json
|
|
1393
1393
|
27ca0f3c9ee3a1b6374a9c8dd98008decdd0c7659c7a569c70ad7b9734c74655 R34-BASELINE.json
|
|
1394
1394
|
0b7ec5ee347ddfa6cca59740fc7a8fe3fc5d51406265bb12189e82fa106319d2 R41-PARENT.json
|
|
1395
1395
|
bd2a789b0aab5663f0d208af2ca8e4ec98179bc8c7b57e70a962d4e06a3dcfc4 R42-PARENT.json
|
|
@@ -1398,7 +1398,7 @@ f932ef78b7a72b1bb0d7aedb5fe42fbb9951c2492eb528b72442f46ddff81a6c R44-DONORS.jso
|
|
|
1398
1398
|
731b4c559fc0d25dea701e4474f02400b27e8e3f4cac9f230d5214497d4490a9 R44-PARENT.json
|
|
1399
1399
|
d33ec5d167dd44800ba4e68372b08db43deb8d01df2ef71dd435ff004ac66c8b R45-PARENT.json
|
|
1400
1400
|
0ae37e1c40dff1a47f08ca5a0e9dcdddb3c8c3a8e478d69429e99a2f951f55ab README.txt
|
|
1401
|
-
|
|
1401
|
+
0a318974786d7e58185bd531e9f80de5f5681788b80bbf42d5b5329cdd17ebcb RELEASE.json
|
|
1402
1402
|
507a42441c8fbb0b1bef63a13fad9e1680262cd6d34cc176b7ed0c5423ddbcc7 SBOM.cdx.json
|
|
1403
1403
|
bd138fe5a64088e8e1a7a5bf6104c5b17317bdc8cf3ad8191ea00ed82ace7d9b scripts/agent-eval-r42.mjs
|
|
1404
1404
|
8d90256a6863f3bbbff02e95cb12389fc6f9e8dbcb77bf1c20c902de371425e8 scripts/archive-source-zips.mjs
|
|
@@ -1485,7 +1485,8 @@ a0ad824eed1d8be051d5f731579f9bf4115b311f202b75ea0d03aa257b13a671 scripts/gate-w
|
|
|
1485
1485
|
1a771b5b8a62d57f26762d53472ed68a3e733674b1c91e08becf0dc2e4325039 scripts/inspect-active-release-r45.mjs
|
|
1486
1486
|
de6142bd5693cf4edb8725c9c43fc77e9bdc12f5b398a757006d778d3ee3f8ed scripts/inspect-r46-active.mjs
|
|
1487
1487
|
7ea8cf6bf094a1612603bc716228a3753e5f06fca8a0684d2da15a04d0710c64 scripts/list-source-zips.mjs
|
|
1488
|
-
|
|
1488
|
+
9d12d15f7c83ddf272834072ed37d618a232bd8a3fd36c339761fe08bb9380d8 scripts/npm-publish-r47.ps1
|
|
1489
|
+
9799df2876e6f7851aeec04266b49a2fce58725cae281e58c73df1b4234e317a scripts/npm-release-r47.mjs
|
|
1489
1490
|
453dd636b452f4343a36f31a93a763e97f58ed5d6c9df3d2ba05b236934a3a1f scripts/probe-source-zips.mjs
|
|
1490
1491
|
8f9d97a4d23e9d05e7cadfb6a519b1ddb9da04894bca98bdc293fc3797e8423c scripts/probe-zips.mjs
|
|
1491
1492
|
e19a1d591ccd07af2e87d930ce23b0cc9b814bc2a395408045543847154097d7 scripts/r40-compact-ledger-probe.mjs
|
|
@@ -1703,7 +1704,7 @@ bac271c6f5218752ac5ff4decf5249e3893ddb35c63c092ce17238c27fc4d35b src/trust-init
|
|
|
1703
1704
|
16df134040e3ff1e73df722b568d3e8ac0a6923b097696cead7580da75aa8d2a src/tunnel-stdio-compat.mjs
|
|
1704
1705
|
642cb67d1854850e336ee73fbd71b329056bdcbdab35cea19c1a995a155ff5d9 src/verifier-cli.mjs
|
|
1705
1706
|
8f818a4852ce3be3a380cd4736c3073a7a3e0e45cd7c7ca90588a6b843d3d022 src/verifier.mjs
|
|
1706
|
-
|
|
1707
|
+
75903ce9e7a221d3f6d163f6a908de58765291347f732ff5e1d2cea9f04010ac src/version.mjs
|
|
1707
1708
|
7e09c57a97289360aabfaf3d531208e54872efbfb3182f3c18203d2cb88c46b5 src/worker-registry.mjs
|
|
1708
1709
|
76361d5ae9a710273cf64a7525082197b692236bf23689875e5fd1ef4aa96d2b src/worker-scheduler.mjs
|
|
1709
1710
|
4da1b32f5198bb089bc68b7eb6de21ea296678b5020018a73742bf0df57d62fa src/workload-substrate.mjs
|
package/PROVENANCE.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "deadbyte.provenance.v1",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.8",
|
|
4
4
|
"builder": "deadbyte-r46-fileless-powershell",
|
|
5
5
|
"source_model": "development-root -> MANIFEST.SHA256 -> immutable release slot -> generation bundle -> signed final closure",
|
|
6
6
|
"signing": "ed25519",
|
package/RELEASE.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "deadbyte-mcp",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.8",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Authenticated MCP agentic runtime with signed skills, persistent model backends, identity-bound remote devices, durable job supervision, immutable release slots, and separately revocable machine authority.",
|
|
@@ -1,22 +1,6 @@
|
|
|
1
1
|
$ErrorActionPreference = 'Stop'
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
$
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
try { $existing = & npm.cmd view "deadbyte-mcp@$version" version --json 2>$null } catch { $existing = $null }
|
|
8
|
-
if ($LASTEXITCODE -eq 0 -and $existing) { throw "deadbyte-mcp@$version is already published: $existing" }
|
|
9
|
-
$pack = (& npm.cmd pack --json 2>&1 | Out-String)
|
|
10
|
-
if ($LASTEXITCODE -ne 0) { throw 'npm pack failed' }
|
|
11
|
-
$packObj = $pack | ConvertFrom-Json
|
|
12
|
-
$filename = [string]$packObj.'deadbyte-mcp'.filename
|
|
13
|
-
if ([string]::IsNullOrWhiteSpace($filename)) { throw "npm pack did not return tarball filename. output=$pack" }
|
|
14
|
-
$tarball = Join-Path (Get-Location) $filename
|
|
15
|
-
& npm.cmd publish $tarball --access public
|
|
16
|
-
if ($LASTEXITCODE -ne 0) { throw 'npm publish failed' }
|
|
17
|
-
$published = (& npm.cmd view "deadbyte-mcp@$version" version dist.integrity dist.tarball --json | ConvertFrom-Json)
|
|
18
|
-
$tags = (& npm.cmd view deadbyte-mcp dist-tags --json | ConvertFrom-Json)
|
|
19
|
-
$npx = & npx.cmd --yes "deadbyte-mcp@$version" -- --version
|
|
20
|
-
if ($LASTEXITCODE -ne 0) { throw 'npx verification failed' }
|
|
21
|
-
Remove-Item -LiteralPath $tarball -Force -ErrorAction SilentlyContinue
|
|
22
|
-
[pscustomobject]@{ status='published'; name=$pkg.name; version=$version; tarball=$filename; published=$published; dist_tags=$tags; npx_version_output=($npx -join "`n") } | ConvertTo-Json -Depth 8
|
|
2
|
+
$script = Join-Path $PSScriptRoot 'npm-release-r47.mjs'
|
|
3
|
+
& node $script
|
|
4
|
+
if ($LASTEXITCODE -ne 0) {
|
|
5
|
+
throw "Release pipeline failed with exit code $LASTEXITCODE"
|
|
6
|
+
}
|
|
@@ -1,39 +1,189 @@
|
|
|
1
1
|
import { spawnSync } from 'node:child_process';
|
|
2
|
-
import { readFile, unlink } from 'node:fs/promises';
|
|
2
|
+
import { mkdtemp, readFile, rm, unlink } from 'node:fs/promises';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import os from 'node:os';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
5
6
|
|
|
6
|
-
const root=path.resolve(new URL('..',import.meta.url)
|
|
7
|
-
const
|
|
7
|
+
const root = path.resolve(fileURLToPath(new URL('..', import.meta.url)));
|
|
8
|
+
const node = process.execPath;
|
|
9
|
+
const npmCli = process.env.npm_execpath || path.join(path.dirname(process.execPath), 'node_modules', 'npm', 'bin', 'npm-cli.js');
|
|
8
10
|
|
|
9
|
-
function run(args,
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
function run(command, args, options = {}) {
|
|
12
|
+
const { cwd = root, timeout = 180000 } = options;
|
|
13
|
+
const r = spawnSync(command, args, {
|
|
14
|
+
cwd,
|
|
15
|
+
encoding: 'utf8',
|
|
16
|
+
timeout,
|
|
17
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
18
|
+
shell: false,
|
|
19
|
+
windowsHide: true,
|
|
20
|
+
});
|
|
21
|
+
if (r.error) throw r.error;
|
|
22
|
+
if (r.status !== 0) {
|
|
23
|
+
const detail = (r.stderr || r.stdout || '').slice(-12000);
|
|
24
|
+
throw new Error(`${command} ${args.join(' ')} failed (exit=${r.status}, cwd=${cwd}):\n${detail}`);
|
|
25
|
+
}
|
|
26
|
+
return (r.stdout || '').trim();
|
|
14
27
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
28
|
+
|
|
29
|
+
function runNpm(args, options = {}) {
|
|
30
|
+
return run(node, [npmCli, ...args], options);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function parseJson(text) {
|
|
34
|
+
const start = Math.min(...[text.indexOf('{'), text.indexOf('[')].filter(n => n >= 0));
|
|
35
|
+
if (!Number.isFinite(start)) throw new Error('Command JSON output missing:\n' + text.slice(0, 1000));
|
|
18
36
|
return JSON.parse(text.slice(start));
|
|
19
37
|
}
|
|
20
38
|
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
39
|
+
const allowedUnmanifested = new Set([
|
|
40
|
+
'MANIFEST.SHA256',
|
|
41
|
+
'controller/deadbyte-host-policy.json',
|
|
42
|
+
'controller/deadbyte-coding-policy.json',
|
|
43
|
+
]);
|
|
44
|
+
|
|
45
|
+
async function main() {
|
|
46
|
+
const isVerifyOnly = process.argv.includes('--verify-only') || process.argv.includes('--dry-run');
|
|
47
|
+
|
|
48
|
+
console.log(`[1/7] Reading package.json and checking registry publication status... ${isVerifyOnly ? '(MODE: VERIFY-ONLY / DRY-RUN)' : '(MODE: PUBLISH)'}`);
|
|
49
|
+
const pkg = JSON.parse(await readFile(path.join(root, 'package.json'), 'utf8'));
|
|
50
|
+
const version = pkg.version;
|
|
51
|
+
if (pkg.name !== 'deadbyte-mcp') throw new Error(`unexpected package name: ${pkg.name}`);
|
|
52
|
+
|
|
53
|
+
const existing = spawnSync(node, [npmCli, 'view', `deadbyte-mcp@${version}`, 'version', '--json'], {
|
|
54
|
+
cwd: root, encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'], shell: false, windowsHide: true,
|
|
55
|
+
});
|
|
56
|
+
const existingText = (existing.stdout || '').trim();
|
|
57
|
+
const isAlreadyPublished = existing.status === 0 && existingText && existingText !== 'null';
|
|
58
|
+
|
|
59
|
+
if (isAlreadyPublished) {
|
|
60
|
+
if (!isVerifyOnly) {
|
|
61
|
+
throw new Error(`deadbyte-mcp@${version} is already published on registry: ${existingText}`);
|
|
62
|
+
} else {
|
|
63
|
+
console.log(`Notice: deadbyte-mcp@${version} is already published on registry (${existingText}), proceeding with pre-publish verification only.`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
console.log('[2/7] Pre-pack gates: verifying working tree manifest and doctor...');
|
|
68
|
+
run(node, [path.join(root, 'scripts', 'release-manifest.mjs'), 'verify']);
|
|
69
|
+
run(node, [path.join(root, 'src', 'deadbyte-cli.mjs'), 'doctor']);
|
|
70
|
+
|
|
71
|
+
console.log('[3/7] Packing artifact with npm pack...');
|
|
72
|
+
const packed = parseJson(runNpm(['pack', '--json'], { timeout: 180000 }));
|
|
73
|
+
const filename = packed?.[0]?.filename;
|
|
74
|
+
if (!filename) throw new Error('npm pack did not return a tarball filename');
|
|
75
|
+
const tarball = path.join(root, filename);
|
|
76
|
+
|
|
77
|
+
try {
|
|
78
|
+
console.log('[4/7] Verifying packed artifact file surface against MANIFEST.SHA256 and packaging contract...');
|
|
79
|
+
const manifestText = await readFile(path.join(root, 'MANIFEST.SHA256'), 'utf8');
|
|
80
|
+
const manifestEntries = new Set();
|
|
81
|
+
for (const line of manifestText.split(/\r?\n/)) {
|
|
82
|
+
if (!line) continue;
|
|
83
|
+
const m = /^([0-9a-f]{64})\s+(.+)$/.exec(line);
|
|
84
|
+
if (m) manifestEntries.add(m[2]);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
const tarListing = run('tar', ['-tf', tarball], { timeout: 60000 });
|
|
88
|
+
const tarFiles = new Set(
|
|
89
|
+
tarListing
|
|
90
|
+
.split(/\r?\n/)
|
|
91
|
+
.map(s => s.trim().replaceAll('\\', '/'))
|
|
92
|
+
.filter(s => s.startsWith('package/') && s.length > 'package/'.length && !s.endsWith('/'))
|
|
93
|
+
.map(s => s.slice('package/'.length))
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
const missingInTarball = [];
|
|
97
|
+
for (const rel of manifestEntries) {
|
|
98
|
+
if (!tarFiles.has(rel)) missingInTarball.push(rel);
|
|
99
|
+
}
|
|
100
|
+
if (missingInTarball.length > 0) {
|
|
101
|
+
throw new Error(`Tarball missing files declared in manifest (${missingInTarball.length}): ${missingInTarball.slice(0, 10).join(', ')}`);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const unexpectedInTarball = [];
|
|
105
|
+
for (const rel of tarFiles) {
|
|
106
|
+
if (!manifestEntries.has(rel) && !allowedUnmanifested.has(rel)) {
|
|
107
|
+
unexpectedInTarball.push(rel);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (unexpectedInTarball.length > 0) {
|
|
111
|
+
throw new Error(`Tarball contains unexpected files not in manifest or allowlist (${unexpectedInTarball.length}): ${unexpectedInTarball.slice(0, 10).join(', ')}`);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
console.log(`Packed artifact surface verified OK: ${tarFiles.size} package files, all ${manifestEntries.size} manifest entries present.`);
|
|
115
|
+
|
|
116
|
+
console.log('[5/7] Pre-publish artifact isolation gate in sandbox...');
|
|
117
|
+
const sandbox = await mkdtemp(path.join(os.tmpdir(), 'deadbyte-release-verify-'));
|
|
118
|
+
try {
|
|
119
|
+
run('tar', ['-xzf', tarball, '-C', sandbox]);
|
|
120
|
+
const extractedPackage = path.join(sandbox, 'package');
|
|
121
|
+
|
|
122
|
+
const extractedVersion = run(node, [path.join(extractedPackage, 'src', 'deadbyte-cli.mjs'), '--version'], {
|
|
123
|
+
cwd: extractedPackage,
|
|
124
|
+
});
|
|
125
|
+
if (extractedVersion !== version) {
|
|
126
|
+
throw new Error(`Isolated package version mismatch: expected=${version} got=${extractedVersion}`);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
run(node, [path.join(extractedPackage, 'src', 'deadbyte-cli.mjs'), 'doctor'], {
|
|
130
|
+
cwd: extractedPackage,
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
console.log('Artifact isolation gate PASS (clean doctor and version check on unpacked tarball in sandbox)');
|
|
134
|
+
} finally {
|
|
135
|
+
await rm(sandbox, { recursive: true, force: true }).catch(() => {});
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
if (isVerifyOnly) {
|
|
139
|
+
console.log('[6/7] [VERIFY-ONLY] Skipping npm publish.');
|
|
140
|
+
console.log('[7/7] [VERIFY-ONLY] Skipping external registry smoke test.');
|
|
141
|
+
console.log('\nVERIFY-ONLY PIPELINE PASS: All pre-pack, artifact surface, and isolated sandbox gates passed successfully.');
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
console.log('[6/7] Publishing artifact to npm registry...');
|
|
146
|
+
const publishOut = runNpm(['publish', tarball, '--access', 'public'], { timeout: 300000 });
|
|
147
|
+
const published = parseJson(runNpm(['view', `deadbyte-mcp@${version}`, 'version', 'dist.integrity', 'dist.tarball', '--json'], { timeout: 120000 }));
|
|
148
|
+
const tags = parseJson(runNpm(['view', 'deadbyte-mcp', 'dist-tags', '--json'], { timeout: 120000 }));
|
|
149
|
+
|
|
150
|
+
console.log('[7/7] Post-publish external registry smoke test (executed outside repo in temp)...');
|
|
151
|
+
const tempDir = os.tmpdir();
|
|
152
|
+
const externalVersion = runNpm(['exec', '--yes', `--package=deadbyte-mcp@${version}`, '--', 'deadbyte-mcp', '--version'], {
|
|
153
|
+
cwd: tempDir,
|
|
154
|
+
timeout: 300000,
|
|
155
|
+
});
|
|
156
|
+
if (externalVersion !== version) {
|
|
157
|
+
throw new Error(`External registry smoke test version mismatch: expected=${version} got=${externalVersion}`);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
const externalDoctor = runNpm(['exec', '--yes', `--package=deadbyte-mcp@${version}`, '--', 'deadbyte-mcp', 'doctor'], {
|
|
161
|
+
cwd: tempDir,
|
|
162
|
+
timeout: 300000,
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
console.log('\nRELEASE SUCCESSFUL:');
|
|
166
|
+
console.log(JSON.stringify({
|
|
167
|
+
status: 'published',
|
|
168
|
+
name: pkg.name,
|
|
169
|
+
version,
|
|
170
|
+
tarball: filename,
|
|
171
|
+
published,
|
|
172
|
+
published_output_tail: publishOut.slice(-2000),
|
|
173
|
+
dist_tags: tags,
|
|
174
|
+
external_smoke: {
|
|
175
|
+
version_output: externalVersion,
|
|
176
|
+
doctor_status: 'ok',
|
|
177
|
+
},
|
|
178
|
+
}, null, 2));
|
|
179
|
+
|
|
180
|
+
} finally {
|
|
181
|
+
await unlink(tarball).catch(() => {});
|
|
182
|
+
}
|
|
28
183
|
}
|
|
29
184
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const published=parseJson(run(['view',`deadbyte-mcp@${version}`,'version','dist.integrity','dist.tarball','--json'],120000));
|
|
36
|
-
const tags=parseJson(run(['view','deadbyte-mcp','dist-tags','--json'],120000));
|
|
37
|
-
const npxOut=run(['exec','--yes',`deadbyte-mcp@${version}`,'--','--version'],300000);
|
|
38
|
-
await unlink(tarball).catch(()=>{});
|
|
39
|
-
console.log(JSON.stringify({status:'published',name:pkg.name,version,tarball:filename,published,published_output_tail:publishOut.slice(-2000),dist_tags:tags,npx_version_output:npxOut},null,2));
|
|
185
|
+
main().catch(err => {
|
|
186
|
+
console.error('\nRELEASE ABORTED / FAILED:');
|
|
187
|
+
console.error(err?.stack || err);
|
|
188
|
+
process.exitCode = 1;
|
|
189
|
+
});
|
package/src/version.mjs
CHANGED