@pubm/core 0.4.8 → 0.4.10
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/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/types.d.ts +10 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/index.cjs +53 -17
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +53 -17
- package/dist/tasks/crates.d.ts.map +1 -1
- package/dist/tasks/npm.d.ts.map +1 -1
- package/dist/tasks/runner.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,UAAU,EAEV,kBAAkB,
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,UAAU,EAEV,kBAAkB,EAGnB,MAAM,YAAY,CAAC;AAiCpB,wBAAsB,aAAa,CACjC,MAAM,EAAE,UAAU,EAClB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,kBAAkB,CAAC,CAqD7B"}
|
package/dist/config/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { resolveConfig } from "./defaults.js";
|
|
2
2
|
export { loadConfig } from "./loader.js";
|
|
3
|
-
export type { PackageConfig, PubmConfig, ResolvedPubmConfig, ValidateConfig, } from "./types.js";
|
|
3
|
+
export type { PackageConfig, PubmConfig, ResolvedPubmConfig, RollbackConfig, ValidateConfig, } from "./types.js";
|
|
4
4
|
export { defineConfig } from "./types.js";
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EACV,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EACV,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -26,6 +26,12 @@ export interface ValidateConfig {
|
|
|
26
26
|
entryPoints?: boolean;
|
|
27
27
|
extraneousFiles?: boolean;
|
|
28
28
|
}
|
|
29
|
+
export interface RollbackConfig {
|
|
30
|
+
/** @default "individual" */
|
|
31
|
+
strategy?: "individual" | "all";
|
|
32
|
+
/** Allow registry unpublish/yank during rollback in non-TTY environments. @default false */
|
|
33
|
+
dangerouslyAllowUnpublish?: boolean;
|
|
34
|
+
}
|
|
29
35
|
export interface PubmConfig {
|
|
30
36
|
versioning?: "independent" | "fixed";
|
|
31
37
|
branch?: string;
|
|
@@ -45,19 +51,22 @@ export interface PubmConfig {
|
|
|
45
51
|
saveToken?: boolean;
|
|
46
52
|
releaseDraft?: boolean;
|
|
47
53
|
releaseNotes?: boolean;
|
|
54
|
+
/** @deprecated Use `rollback.strategy` instead. */
|
|
48
55
|
rollbackStrategy?: "individual" | "all";
|
|
56
|
+
rollback?: RollbackConfig;
|
|
49
57
|
lockfileSync?: "required" | "optional" | "skip";
|
|
50
58
|
plugins?: PubmPlugin[];
|
|
51
59
|
compress?: CompressOption;
|
|
52
60
|
releaseAssets?: ReleaseAssetEntry[];
|
|
53
61
|
excludeRelease?: string[];
|
|
54
62
|
}
|
|
55
|
-
export interface ResolvedPubmConfig extends Required<Omit<PubmConfig, "packages" | "validate" | "registries" | "compress" | "releaseAssets" | "excludeRelease">> {
|
|
63
|
+
export interface ResolvedPubmConfig extends Required<Omit<PubmConfig, "packages" | "validate" | "registries" | "compress" | "releaseAssets" | "excludeRelease" | "rollbackStrategy" | "rollback">> {
|
|
56
64
|
compress?: CompressOption;
|
|
57
65
|
releaseAssets?: ReleaseAssetEntry[];
|
|
58
66
|
excludeRelease?: string[];
|
|
59
67
|
packages: ResolvedPackageConfig[];
|
|
60
68
|
validate: Required<ValidateConfig>;
|
|
69
|
+
rollback: Required<RollbackConfig>;
|
|
61
70
|
discoveryEmpty?: boolean;
|
|
62
71
|
}
|
|
63
72
|
export declare function defineConfig(config: PubmConfig): PubmConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,CAAC,YAAY,GAAG,qBAAqB,CAAC,EAAE,CAAC;IACtD,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,gBAAgB,CAAC,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACpB,0BAA0B,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC;IACxC,YAAY,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;IAChD,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,kBACf,SAAQ,QAAQ,CACd,IAAI,CACF,UAAU,EACR,UAAU,GACV,UAAU,GACV,YAAY,GACZ,UAAU,GACV,eAAe,GACf,gBAAgB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -22714,7 +22714,7 @@ var package_default;
|
|
|
22714
22714
|
var init_package = __esm(() => {
|
|
22715
22715
|
package_default = {
|
|
22716
22716
|
name: "@pubm/core",
|
|
22717
|
-
version: "0.4.
|
|
22717
|
+
version: "0.4.10",
|
|
22718
22718
|
type: "module",
|
|
22719
22719
|
description: "Core SDK for pubm - publish manager for multiple registries",
|
|
22720
22720
|
types: "./dist/index.d.ts",
|
|
@@ -22792,7 +22792,7 @@ var coreEngines, PUBM_VERSION, PUBM_ENGINES;
|
|
|
22792
22792
|
var init_pubm_metadata = __esm(() => {
|
|
22793
22793
|
init_package();
|
|
22794
22794
|
coreEngines = package_default.engines ?? {};
|
|
22795
|
-
PUBM_VERSION = resolveDefine("0.4.
|
|
22795
|
+
PUBM_VERSION = resolveDefine("0.4.10", package_default.version);
|
|
22796
22796
|
PUBM_ENGINES = {
|
|
22797
22797
|
node: resolveDefine(">=24", coreEngines.node ?? ">=18"),
|
|
22798
22798
|
git: resolveDefine(">=2.11.0", coreEngines.git ?? ">=2.11.0"),
|
|
@@ -27930,6 +27930,7 @@ init_ui();
|
|
|
27930
27930
|
init_rust();
|
|
27931
27931
|
init_error();
|
|
27932
27932
|
init_crates();
|
|
27933
|
+
init_ui();
|
|
27933
27934
|
async function getCrateName(packagePath) {
|
|
27934
27935
|
const eco = new RustEcosystem(packagePath);
|
|
27935
27936
|
return await eco.packageName();
|
|
@@ -27962,15 +27963,24 @@ function createCratesPublishTask(packagePath) {
|
|
|
27962
27963
|
};
|
|
27963
27964
|
}
|
|
27964
27965
|
function registerYankRollback(ctx, registry, packageName, version) {
|
|
27965
|
-
if (registry.supportsUnpublish)
|
|
27966
|
+
if (!registry.supportsUnpublish)
|
|
27967
|
+
return;
|
|
27968
|
+
const canYank = ctx.runtime.promptEnabled || ctx.config.rollback.dangerouslyAllowUnpublish;
|
|
27969
|
+
if (!canYank) {
|
|
27966
27970
|
ctx.runtime.rollback.add({
|
|
27967
|
-
label: `Yank ${packageName}@${version} from crates`,
|
|
27968
|
-
fn: async () => {
|
|
27969
|
-
await registry.unpublish(packageName, version);
|
|
27970
|
-
},
|
|
27971
|
-
confirm: true
|
|
27971
|
+
label: `Yank ${packageName}@${version} from crates (skipped — use --dangerously-allow-unpublish to enable)`,
|
|
27972
|
+
fn: async () => {}
|
|
27972
27973
|
});
|
|
27974
|
+
return;
|
|
27973
27975
|
}
|
|
27976
|
+
ctx.runtime.rollback.add({
|
|
27977
|
+
label: `Yank ${packageName}@${version} from crates (⚠ version will be permanently burned)`,
|
|
27978
|
+
fn: async () => {
|
|
27979
|
+
await registry.unpublish(packageName, version);
|
|
27980
|
+
console.log(` ${ui.chalk.yellow("⚠")} v${version} is permanently reserved on crates.io — this version cannot be reused`);
|
|
27981
|
+
},
|
|
27982
|
+
confirm: true
|
|
27983
|
+
});
|
|
27974
27984
|
}
|
|
27975
27985
|
|
|
27976
27986
|
// src/tasks/dry-run-publish.ts
|
|
@@ -28382,6 +28392,7 @@ init_dist2();
|
|
|
28382
28392
|
var import_node_process14 = __toESM(require("node:process"));
|
|
28383
28393
|
init_error();
|
|
28384
28394
|
init_npm();
|
|
28395
|
+
init_ui();
|
|
28385
28396
|
|
|
28386
28397
|
class NpmAvailableError extends AbstractError {
|
|
28387
28398
|
name = "npm is unavailable for publishing.";
|
|
@@ -28460,15 +28471,24 @@ function createNpmPublishTask(packagePath) {
|
|
|
28460
28471
|
};
|
|
28461
28472
|
}
|
|
28462
28473
|
function registerUnpublishRollback(ctx, registry, version) {
|
|
28463
|
-
if (registry.supportsUnpublish)
|
|
28474
|
+
if (!registry.supportsUnpublish)
|
|
28475
|
+
return;
|
|
28476
|
+
const canUnpublish = ctx.runtime.promptEnabled || ctx.config.rollback.dangerouslyAllowUnpublish;
|
|
28477
|
+
if (!canUnpublish) {
|
|
28464
28478
|
ctx.runtime.rollback.add({
|
|
28465
|
-
label: `Unpublish ${registry.packageName}@${version} from npm`,
|
|
28466
|
-
fn: async () => {
|
|
28467
|
-
await registry.unpublish(registry.packageName, version);
|
|
28468
|
-
},
|
|
28469
|
-
confirm: true
|
|
28479
|
+
label: `Unpublish ${registry.packageName}@${version} from npm (skipped — use --dangerously-allow-unpublish to enable)`,
|
|
28480
|
+
fn: async () => {}
|
|
28470
28481
|
});
|
|
28482
|
+
return;
|
|
28471
28483
|
}
|
|
28484
|
+
ctx.runtime.rollback.add({
|
|
28485
|
+
label: `Unpublish ${registry.packageName}@${version} from npm (⚠ version will be permanently burned)`,
|
|
28486
|
+
fn: async () => {
|
|
28487
|
+
await registry.unpublish(registry.packageName, version);
|
|
28488
|
+
console.log(` ${ui.chalk.yellow("⚠")} v${version} is permanently reserved on npm — this version cannot be reused`);
|
|
28489
|
+
},
|
|
28490
|
+
confirm: true
|
|
28491
|
+
});
|
|
28472
28492
|
}
|
|
28473
28493
|
|
|
28474
28494
|
// src/tasks/preflight.ts
|
|
@@ -29695,7 +29715,11 @@ async function run(ctx) {
|
|
|
29695
29715
|
}
|
|
29696
29716
|
}
|
|
29697
29717
|
task.output = `Creating release commit ${tagName}...`;
|
|
29698
|
-
const
|
|
29718
|
+
const singleCommitMsg = `Version Packages
|
|
29719
|
+
|
|
29720
|
+
${ctx2.config.packages.map((pkg) => `- ${pkg.name}: ${plan.version}`).join(`
|
|
29721
|
+
`)}`;
|
|
29722
|
+
const commit = await git.commit(singleCommitMsg);
|
|
29699
29723
|
registerCommitRollback(ctx2);
|
|
29700
29724
|
task.output = "Creating tag...";
|
|
29701
29725
|
await git.createTag(tagName, commit);
|
|
@@ -29749,7 +29773,11 @@ async function run(ctx) {
|
|
|
29749
29773
|
}
|
|
29750
29774
|
}
|
|
29751
29775
|
task.output = `Creating release commit ${tagName}...`;
|
|
29752
|
-
const
|
|
29776
|
+
const fixedCommitMsg = `Version Packages
|
|
29777
|
+
|
|
29778
|
+
${[...plan.packages].map(([pkgPath]) => `- ${getPackageName(ctx2, pkgPath)}: ${plan.version}`).join(`
|
|
29779
|
+
`)}`;
|
|
29780
|
+
const commit = await git.commit(fixedCommitMsg);
|
|
29753
29781
|
registerCommitRollback(ctx2);
|
|
29754
29782
|
task.output = "Creating tag...";
|
|
29755
29783
|
await git.createTag(tagName, commit);
|
|
@@ -30475,6 +30503,10 @@ var defaultValidate = {
|
|
|
30475
30503
|
entryPoints: true,
|
|
30476
30504
|
extraneousFiles: true
|
|
30477
30505
|
};
|
|
30506
|
+
var defaultRollback = {
|
|
30507
|
+
strategy: "individual",
|
|
30508
|
+
dangerouslyAllowUnpublish: false
|
|
30509
|
+
};
|
|
30478
30510
|
var defaultConfig = {
|
|
30479
30511
|
versioning: "independent",
|
|
30480
30512
|
branch: "main",
|
|
@@ -30492,7 +30524,6 @@ var defaultConfig = {
|
|
|
30492
30524
|
saveToken: true,
|
|
30493
30525
|
releaseDraft: true,
|
|
30494
30526
|
releaseNotes: true,
|
|
30495
|
-
rollbackStrategy: "individual",
|
|
30496
30527
|
lockfileSync: "optional"
|
|
30497
30528
|
};
|
|
30498
30529
|
async function resolveConfig(config, cwd) {
|
|
@@ -30534,6 +30565,11 @@ async function resolveConfig(config, cwd) {
|
|
|
30534
30565
|
...config,
|
|
30535
30566
|
packages,
|
|
30536
30567
|
validate: { ...defaultValidate, ...config.validate },
|
|
30568
|
+
rollback: {
|
|
30569
|
+
...defaultRollback,
|
|
30570
|
+
...config.rollbackStrategy ? { strategy: config.rollbackStrategy } : {},
|
|
30571
|
+
...config.rollback
|
|
30572
|
+
},
|
|
30537
30573
|
snapshotTemplate: config.snapshotTemplate ?? defaultConfig.snapshotTemplate,
|
|
30538
30574
|
plugins: config.plugins ?? [],
|
|
30539
30575
|
...discoveryEmpty ? { discoveryEmpty } : {}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export type { AssetPipelineHooks, CompressedAsset, CompressFormat, CompressOptio
|
|
|
11
11
|
export { normalizeConfig, parsePlatform, resolveAssets, runAssetPipeline, } from "./assets/index.js";
|
|
12
12
|
export type { BumpType, ChangelogEntry, Changeset, DependencyUpdate, MigrationResult, PackageStatus, Release, Status, VersionBump, } from "./changeset/index.js";
|
|
13
13
|
export { buildChangelogEntries, calculateVersionBumps, createKeyResolver, deleteChangesetFiles, generateChangelog, generateChangesetContent, generateChangesetId, getStatus, migrateFromChangesets, parseChangelogSection, parseChangeset, readChangesets, writeChangelogToFile, writeChangeset, } from "./changeset/index.js";
|
|
14
|
-
export type { PackageConfig, PubmConfig, ResolvedPubmConfig, } from "./config/index.js";
|
|
14
|
+
export type { PackageConfig, PubmConfig, ResolvedPubmConfig, RollbackConfig, } from "./config/index.js";
|
|
15
15
|
export { defineConfig, loadConfig, resolveConfig } from "./config/index.js";
|
|
16
16
|
export type { ResolvedPackageConfig } from "./config/types.js";
|
|
17
17
|
export type { FixedVersionPlan, IndependentVersionPlan, PubmContext, SingleVersionPlan, VersionPlan, } from "./context.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD;;;;;GAKG;AACH,wBAAsB,IAAI,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAS1D;AAGD,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACd,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,QAAQ,EACR,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,OAAO,EACP,MAAM,EACN,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,aAAa,EACb,UAAU,EACV,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -22633,7 +22633,7 @@ var package_default;
|
|
|
22633
22633
|
var init_package = __esm(() => {
|
|
22634
22634
|
package_default = {
|
|
22635
22635
|
name: "@pubm/core",
|
|
22636
|
-
version: "0.4.
|
|
22636
|
+
version: "0.4.10",
|
|
22637
22637
|
type: "module",
|
|
22638
22638
|
description: "Core SDK for pubm - publish manager for multiple registries",
|
|
22639
22639
|
types: "./dist/index.d.ts",
|
|
@@ -22711,7 +22711,7 @@ var coreEngines, PUBM_VERSION, PUBM_ENGINES;
|
|
|
22711
22711
|
var init_pubm_metadata = __esm(() => {
|
|
22712
22712
|
init_package();
|
|
22713
22713
|
coreEngines = package_default.engines ?? {};
|
|
22714
|
-
PUBM_VERSION = resolveDefine("0.4.
|
|
22714
|
+
PUBM_VERSION = resolveDefine("0.4.10", package_default.version);
|
|
22715
22715
|
PUBM_ENGINES = {
|
|
22716
22716
|
node: resolveDefine(">=24", coreEngines.node ?? ">=18"),
|
|
22717
22717
|
git: resolveDefine(">=2.11.0", coreEngines.git ?? ">=2.11.0"),
|
|
@@ -27827,6 +27827,7 @@ init_ui();
|
|
|
27827
27827
|
init_rust();
|
|
27828
27828
|
init_error();
|
|
27829
27829
|
init_crates();
|
|
27830
|
+
init_ui();
|
|
27830
27831
|
async function getCrateName(packagePath) {
|
|
27831
27832
|
const eco = new RustEcosystem(packagePath);
|
|
27832
27833
|
return await eco.packageName();
|
|
@@ -27859,15 +27860,24 @@ function createCratesPublishTask(packagePath) {
|
|
|
27859
27860
|
};
|
|
27860
27861
|
}
|
|
27861
27862
|
function registerYankRollback(ctx, registry, packageName, version) {
|
|
27862
|
-
if (registry.supportsUnpublish)
|
|
27863
|
+
if (!registry.supportsUnpublish)
|
|
27864
|
+
return;
|
|
27865
|
+
const canYank = ctx.runtime.promptEnabled || ctx.config.rollback.dangerouslyAllowUnpublish;
|
|
27866
|
+
if (!canYank) {
|
|
27863
27867
|
ctx.runtime.rollback.add({
|
|
27864
|
-
label: `Yank ${packageName}@${version} from crates`,
|
|
27865
|
-
fn: async () => {
|
|
27866
|
-
await registry.unpublish(packageName, version);
|
|
27867
|
-
},
|
|
27868
|
-
confirm: true
|
|
27868
|
+
label: `Yank ${packageName}@${version} from crates (skipped — use --dangerously-allow-unpublish to enable)`,
|
|
27869
|
+
fn: async () => {}
|
|
27869
27870
|
});
|
|
27871
|
+
return;
|
|
27870
27872
|
}
|
|
27873
|
+
ctx.runtime.rollback.add({
|
|
27874
|
+
label: `Yank ${packageName}@${version} from crates (⚠ version will be permanently burned)`,
|
|
27875
|
+
fn: async () => {
|
|
27876
|
+
await registry.unpublish(packageName, version);
|
|
27877
|
+
console.log(` ${ui.chalk.yellow("⚠")} v${version} is permanently reserved on crates.io — this version cannot be reused`);
|
|
27878
|
+
},
|
|
27879
|
+
confirm: true
|
|
27880
|
+
});
|
|
27871
27881
|
}
|
|
27872
27882
|
|
|
27873
27883
|
// src/tasks/dry-run-publish.ts
|
|
@@ -28279,6 +28289,7 @@ init_dist2();
|
|
|
28279
28289
|
import process16 from "node:process";
|
|
28280
28290
|
init_error();
|
|
28281
28291
|
init_npm();
|
|
28292
|
+
init_ui();
|
|
28282
28293
|
|
|
28283
28294
|
class NpmAvailableError extends AbstractError {
|
|
28284
28295
|
name = "npm is unavailable for publishing.";
|
|
@@ -28357,15 +28368,24 @@ function createNpmPublishTask(packagePath) {
|
|
|
28357
28368
|
};
|
|
28358
28369
|
}
|
|
28359
28370
|
function registerUnpublishRollback(ctx, registry, version) {
|
|
28360
|
-
if (registry.supportsUnpublish)
|
|
28371
|
+
if (!registry.supportsUnpublish)
|
|
28372
|
+
return;
|
|
28373
|
+
const canUnpublish = ctx.runtime.promptEnabled || ctx.config.rollback.dangerouslyAllowUnpublish;
|
|
28374
|
+
if (!canUnpublish) {
|
|
28361
28375
|
ctx.runtime.rollback.add({
|
|
28362
|
-
label: `Unpublish ${registry.packageName}@${version} from npm`,
|
|
28363
|
-
fn: async () => {
|
|
28364
|
-
await registry.unpublish(registry.packageName, version);
|
|
28365
|
-
},
|
|
28366
|
-
confirm: true
|
|
28376
|
+
label: `Unpublish ${registry.packageName}@${version} from npm (skipped — use --dangerously-allow-unpublish to enable)`,
|
|
28377
|
+
fn: async () => {}
|
|
28367
28378
|
});
|
|
28379
|
+
return;
|
|
28368
28380
|
}
|
|
28381
|
+
ctx.runtime.rollback.add({
|
|
28382
|
+
label: `Unpublish ${registry.packageName}@${version} from npm (⚠ version will be permanently burned)`,
|
|
28383
|
+
fn: async () => {
|
|
28384
|
+
await registry.unpublish(registry.packageName, version);
|
|
28385
|
+
console.log(` ${ui.chalk.yellow("⚠")} v${version} is permanently reserved on npm — this version cannot be reused`);
|
|
28386
|
+
},
|
|
28387
|
+
confirm: true
|
|
28388
|
+
});
|
|
28369
28389
|
}
|
|
28370
28390
|
|
|
28371
28391
|
// src/tasks/preflight.ts
|
|
@@ -29592,7 +29612,11 @@ async function run(ctx) {
|
|
|
29592
29612
|
}
|
|
29593
29613
|
}
|
|
29594
29614
|
task.output = `Creating release commit ${tagName}...`;
|
|
29595
|
-
const
|
|
29615
|
+
const singleCommitMsg = `Version Packages
|
|
29616
|
+
|
|
29617
|
+
${ctx2.config.packages.map((pkg) => `- ${pkg.name}: ${plan.version}`).join(`
|
|
29618
|
+
`)}`;
|
|
29619
|
+
const commit = await git.commit(singleCommitMsg);
|
|
29596
29620
|
registerCommitRollback(ctx2);
|
|
29597
29621
|
task.output = "Creating tag...";
|
|
29598
29622
|
await git.createTag(tagName, commit);
|
|
@@ -29646,7 +29670,11 @@ async function run(ctx) {
|
|
|
29646
29670
|
}
|
|
29647
29671
|
}
|
|
29648
29672
|
task.output = `Creating release commit ${tagName}...`;
|
|
29649
|
-
const
|
|
29673
|
+
const fixedCommitMsg = `Version Packages
|
|
29674
|
+
|
|
29675
|
+
${[...plan.packages].map(([pkgPath]) => `- ${getPackageName(ctx2, pkgPath)}: ${plan.version}`).join(`
|
|
29676
|
+
`)}`;
|
|
29677
|
+
const commit = await git.commit(fixedCommitMsg);
|
|
29650
29678
|
registerCommitRollback(ctx2);
|
|
29651
29679
|
task.output = "Creating tag...";
|
|
29652
29680
|
await git.createTag(tagName, commit);
|
|
@@ -30371,6 +30399,10 @@ var defaultValidate = {
|
|
|
30371
30399
|
entryPoints: true,
|
|
30372
30400
|
extraneousFiles: true
|
|
30373
30401
|
};
|
|
30402
|
+
var defaultRollback = {
|
|
30403
|
+
strategy: "individual",
|
|
30404
|
+
dangerouslyAllowUnpublish: false
|
|
30405
|
+
};
|
|
30374
30406
|
var defaultConfig = {
|
|
30375
30407
|
versioning: "independent",
|
|
30376
30408
|
branch: "main",
|
|
@@ -30388,7 +30420,6 @@ var defaultConfig = {
|
|
|
30388
30420
|
saveToken: true,
|
|
30389
30421
|
releaseDraft: true,
|
|
30390
30422
|
releaseNotes: true,
|
|
30391
|
-
rollbackStrategy: "individual",
|
|
30392
30423
|
lockfileSync: "optional"
|
|
30393
30424
|
};
|
|
30394
30425
|
async function resolveConfig(config, cwd) {
|
|
@@ -30430,6 +30461,11 @@ async function resolveConfig(config, cwd) {
|
|
|
30430
30461
|
...config,
|
|
30431
30462
|
packages,
|
|
30432
30463
|
validate: { ...defaultValidate, ...config.validate },
|
|
30464
|
+
rollback: {
|
|
30465
|
+
...defaultRollback,
|
|
30466
|
+
...config.rollbackStrategy ? { strategy: config.rollbackStrategy } : {},
|
|
30467
|
+
...config.rollback
|
|
30468
|
+
},
|
|
30433
30469
|
snapshotTemplate: config.snapshotTemplate ?? defaultConfig.snapshotTemplate,
|
|
30434
30470
|
plugins: config.plugins ?? [],
|
|
30435
30471
|
...discoveryEmpty ? { discoveryEmpty } : {}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crates.d.ts","sourceRoot":"","sources":["../../src/tasks/crates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"crates.d.ts","sourceRoot":"","sources":["../../src/tasks/crates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAwBpE,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,MAAM,GAClB,SAAS,CAAC,WAAW,CAAC,CAoBxB;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,GAClB,SAAS,CAAC,WAAW,CAAC,CAmCxB"}
|
package/dist/tasks/npm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../src/tasks/npm.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../src/tasks/npm.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAgBpE,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,GAClB,SAAS,CAAC,WAAW,CAAC,CAwGxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/tasks/runner.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AA2lBpE,wBAAsB,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/tasks/runner.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AA2lBpE,wBAAsB,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAksCzD"}
|