jiek 2.0.2 → 2.1.0
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/cli-only-build.cjs +12 -82
- package/dist/cli-only-build.js +12 -82
- package/dist/cli.cjs +243 -69
- package/dist/cli.js +246 -72
- package/dist/rollup/index.cjs +2 -2
- package/dist/rollup/index.js +2 -2
- package/package.json +26 -33
- package/rollup/package.json +1 -0
- package/src/commands/build.ts +13 -18
- package/src/commands/publish.ts +341 -128
- package/src/rollup/index.ts +2 -2
package/dist/cli-only-build.cjs
CHANGED
@@ -116,7 +116,7 @@ async function getSelectedProjectsGraph(filter = commander.program.getOptionValu
|
|
116
116
|
|
117
117
|
var name = "jiek";
|
118
118
|
var type = "module";
|
119
|
-
var version = "2.0.2";
|
119
|
+
var version = "2.0.2-alpha.17";
|
120
120
|
var description$1 = "A lightweight toolkit for compiling and managing libraries based on `package.json` metadata and suitable for `Monorepo`.";
|
121
121
|
var author = "YiJie <yijie4188@gmail.com>";
|
122
122
|
var repository = {
|
@@ -139,7 +139,8 @@ var files = [
|
|
139
139
|
"README.md"
|
140
140
|
];
|
141
141
|
var scripts = {
|
142
|
-
prepublish: "jb
|
142
|
+
prepublish: "jb -nm && jk",
|
143
|
+
postpublish: "jk"
|
143
144
|
};
|
144
145
|
var exports$1 = {
|
145
146
|
"./package.json": "./package.json",
|
@@ -177,32 +178,6 @@ var peerDependencies = {
|
|
177
178
|
"rollup-plugin-swc3": "^0.12.1",
|
178
179
|
typescript: "^4.0.0||^5.0.0"
|
179
180
|
};
|
180
|
-
var peerDependenciesMeta = {
|
181
|
-
"@rollup/plugin-terser": {
|
182
|
-
optional: true
|
183
|
-
},
|
184
|
-
"@pnpm/filter-workspace-packages": {
|
185
|
-
optional: true
|
186
|
-
},
|
187
|
-
"esbuild-register": {
|
188
|
-
optional: true
|
189
|
-
},
|
190
|
-
postcss: {
|
191
|
-
optional: true
|
192
|
-
},
|
193
|
-
"rollup-plugin-postcss": {
|
194
|
-
optional: true
|
195
|
-
},
|
196
|
-
"rollup-plugin-esbuild": {
|
197
|
-
optional: true
|
198
|
-
},
|
199
|
-
"rollup-plugin-swc3": {
|
200
|
-
optional: true
|
201
|
-
},
|
202
|
-
typescript: {
|
203
|
-
optional: true
|
204
|
-
}
|
205
|
-
};
|
206
181
|
var devDependencies = {
|
207
182
|
"@npm/types": "^1.0.2",
|
208
183
|
"@pnpm/filter-workspace-packages": "^7.2.13",
|
@@ -220,44 +195,6 @@ var devDependencies = {
|
|
220
195
|
"rollup-plugin-esbuild": "^6.1.0",
|
221
196
|
"rollup-plugin-swc3": "^0.12.1"
|
222
197
|
};
|
223
|
-
var publishConfig = {
|
224
|
-
exports: {
|
225
|
-
"./package.json": "./package.json",
|
226
|
-
".": {
|
227
|
-
source: "./src/index.ts",
|
228
|
-
require: "./dist/index.cjs",
|
229
|
-
"default": "./dist/index.js"
|
230
|
-
},
|
231
|
-
"./cli": {
|
232
|
-
source: "./src/cli.ts",
|
233
|
-
require: "./dist/cli.cjs",
|
234
|
-
"default": "./dist/cli.js"
|
235
|
-
},
|
236
|
-
"./cli-only-build": {
|
237
|
-
source: "./src/cli-only-build.ts",
|
238
|
-
require: "./dist/cli-only-build.cjs",
|
239
|
-
"default": "./dist/cli-only-build.js"
|
240
|
-
},
|
241
|
-
"./rollup": {
|
242
|
-
source: "./src/rollup/index.ts",
|
243
|
-
require: "./dist/rollup/index.cjs",
|
244
|
-
"default": "./dist/rollup/index.js"
|
245
|
-
}
|
246
|
-
},
|
247
|
-
main: "./dist/index.cjs",
|
248
|
-
module: "./dist/index.js",
|
249
|
-
typesVersions: {
|
250
|
-
"<5.0": {
|
251
|
-
"*": [
|
252
|
-
"*",
|
253
|
-
"./dist/*",
|
254
|
-
"./dist/*/index.d.ts",
|
255
|
-
"./dist/*/index.d.mts",
|
256
|
-
"./dist/*/index.d.cts"
|
257
|
-
]
|
258
|
-
}
|
259
|
-
}
|
260
|
-
};
|
261
198
|
var pkg = {
|
262
199
|
name: name,
|
263
200
|
type: type,
|
@@ -274,9 +211,7 @@ var pkg = {
|
|
274
211
|
imports: imports,
|
275
212
|
dependencies: dependencies,
|
276
213
|
peerDependencies: peerDependencies,
|
277
|
-
|
278
|
-
devDependencies: devDependencies,
|
279
|
-
publishConfig: publishConfig
|
214
|
+
devDependencies: devDependencies
|
280
215
|
};
|
281
216
|
|
282
217
|
const entriesDescription = `
|
@@ -422,7 +357,7 @@ const require$1 = node_module.createRequire((typeof document === 'undefined' ? r
|
|
422
357
|
const isDefault = process.env.JIEK_IS_ONLY_BUILD === "true";
|
423
358
|
const description = `
|
424
359
|
Build the package according to the 'exports' field from the package.json.
|
425
|
-
If you want to
|
360
|
+
If you want to through the options to the \`rollup\` command, you can pass the options after '--'.
|
426
361
|
${isDefault ? "This command is the default command." : ""}
|
427
362
|
`.trim();
|
428
363
|
async function checkDependency(dependency) {
|
@@ -464,20 +399,15 @@ const buildEntriesDescription = `
|
|
464
399
|
${entriesDescription}
|
465
400
|
If you pass the --entries option, it will merge into the entries of the command.
|
466
401
|
`.trim();
|
467
|
-
const command = isDefault ?
|
468
|
-
|
469
|
-
if (
|
470
|
-
|
402
|
+
const command = isDefault ? (() => {
|
403
|
+
const c = commander.program.name("jb/jiek-build").helpCommand(false);
|
404
|
+
if (IS_WORKSPACE) {
|
405
|
+
c.argument("[filters]", buildFilterDescription);
|
471
406
|
} else {
|
472
|
-
|
407
|
+
c.argument("[entries]", buildEntriesDescription);
|
473
408
|
}
|
474
|
-
|
475
|
-
|
476
|
-
command.argument("[entries]", buildEntriesDescription);
|
477
|
-
} else {
|
478
|
-
command.command("build [entries]");
|
479
|
-
}
|
480
|
-
}
|
409
|
+
return c;
|
410
|
+
})() : commander.program.command(`build [${IS_WORKSPACE ? "filters" : "entries"}]`);
|
481
411
|
command.description(description).option("-t, --type <TYPE>", `The type of build, support ${BUILDER_TYPES.map((s) => `"${s}"`).join(", ")}.`, (v) => {
|
482
412
|
if (!BUILDER_TYPES.includes(v)) {
|
483
413
|
throw new Error(`The value of 'type' must be ${BUILDER_TYPES.map((s) => `"${s}"`).join(", ")}`);
|
package/dist/cli-only-build.js
CHANGED
@@ -108,7 +108,7 @@ async function getSelectedProjectsGraph(filter = program.getOptionValue("filter"
|
|
108
108
|
|
109
109
|
var name = "jiek";
|
110
110
|
var type = "module";
|
111
|
-
var version = "2.0.2";
|
111
|
+
var version = "2.0.2-alpha.17";
|
112
112
|
var description$1 = "A lightweight toolkit for compiling and managing libraries based on `package.json` metadata and suitable for `Monorepo`.";
|
113
113
|
var author = "YiJie <yijie4188@gmail.com>";
|
114
114
|
var repository = {
|
@@ -131,7 +131,8 @@ var files = [
|
|
131
131
|
"README.md"
|
132
132
|
];
|
133
133
|
var scripts = {
|
134
|
-
prepublish: "jb
|
134
|
+
prepublish: "jb -nm && jk",
|
135
|
+
postpublish: "jk"
|
135
136
|
};
|
136
137
|
var exports = {
|
137
138
|
"./package.json": "./package.json",
|
@@ -169,32 +170,6 @@ var peerDependencies = {
|
|
169
170
|
"rollup-plugin-swc3": "^0.12.1",
|
170
171
|
typescript: "^4.0.0||^5.0.0"
|
171
172
|
};
|
172
|
-
var peerDependenciesMeta = {
|
173
|
-
"@rollup/plugin-terser": {
|
174
|
-
optional: true
|
175
|
-
},
|
176
|
-
"@pnpm/filter-workspace-packages": {
|
177
|
-
optional: true
|
178
|
-
},
|
179
|
-
"esbuild-register": {
|
180
|
-
optional: true
|
181
|
-
},
|
182
|
-
postcss: {
|
183
|
-
optional: true
|
184
|
-
},
|
185
|
-
"rollup-plugin-postcss": {
|
186
|
-
optional: true
|
187
|
-
},
|
188
|
-
"rollup-plugin-esbuild": {
|
189
|
-
optional: true
|
190
|
-
},
|
191
|
-
"rollup-plugin-swc3": {
|
192
|
-
optional: true
|
193
|
-
},
|
194
|
-
typescript: {
|
195
|
-
optional: true
|
196
|
-
}
|
197
|
-
};
|
198
173
|
var devDependencies = {
|
199
174
|
"@npm/types": "^1.0.2",
|
200
175
|
"@pnpm/filter-workspace-packages": "^7.2.13",
|
@@ -212,44 +187,6 @@ var devDependencies = {
|
|
212
187
|
"rollup-plugin-esbuild": "^6.1.0",
|
213
188
|
"rollup-plugin-swc3": "^0.12.1"
|
214
189
|
};
|
215
|
-
var publishConfig = {
|
216
|
-
exports: {
|
217
|
-
"./package.json": "./package.json",
|
218
|
-
".": {
|
219
|
-
source: "./src/index.ts",
|
220
|
-
require: "./dist/index.cjs",
|
221
|
-
"default": "./dist/index.js"
|
222
|
-
},
|
223
|
-
"./cli": {
|
224
|
-
source: "./src/cli.ts",
|
225
|
-
require: "./dist/cli.cjs",
|
226
|
-
"default": "./dist/cli.js"
|
227
|
-
},
|
228
|
-
"./cli-only-build": {
|
229
|
-
source: "./src/cli-only-build.ts",
|
230
|
-
require: "./dist/cli-only-build.cjs",
|
231
|
-
"default": "./dist/cli-only-build.js"
|
232
|
-
},
|
233
|
-
"./rollup": {
|
234
|
-
source: "./src/rollup/index.ts",
|
235
|
-
require: "./dist/rollup/index.cjs",
|
236
|
-
"default": "./dist/rollup/index.js"
|
237
|
-
}
|
238
|
-
},
|
239
|
-
main: "./dist/index.cjs",
|
240
|
-
module: "./dist/index.js",
|
241
|
-
typesVersions: {
|
242
|
-
"<5.0": {
|
243
|
-
"*": [
|
244
|
-
"*",
|
245
|
-
"./dist/*",
|
246
|
-
"./dist/*/index.d.ts",
|
247
|
-
"./dist/*/index.d.mts",
|
248
|
-
"./dist/*/index.d.cts"
|
249
|
-
]
|
250
|
-
}
|
251
|
-
}
|
252
|
-
};
|
253
190
|
var pkg = {
|
254
191
|
name: name,
|
255
192
|
type: type,
|
@@ -266,9 +203,7 @@ var pkg = {
|
|
266
203
|
imports: imports,
|
267
204
|
dependencies: dependencies,
|
268
205
|
peerDependencies: peerDependencies,
|
269
|
-
|
270
|
-
devDependencies: devDependencies,
|
271
|
-
publishConfig: publishConfig
|
206
|
+
devDependencies: devDependencies
|
272
207
|
};
|
273
208
|
|
274
209
|
const entriesDescription = `
|
@@ -414,7 +349,7 @@ const require = createRequire(import.meta.url);
|
|
414
349
|
const isDefault = process.env.JIEK_IS_ONLY_BUILD === "true";
|
415
350
|
const description = `
|
416
351
|
Build the package according to the 'exports' field from the package.json.
|
417
|
-
If you want to
|
352
|
+
If you want to through the options to the \`rollup\` command, you can pass the options after '--'.
|
418
353
|
${isDefault ? "This command is the default command." : ""}
|
419
354
|
`.trim();
|
420
355
|
async function checkDependency(dependency) {
|
@@ -456,20 +391,15 @@ const buildEntriesDescription = `
|
|
456
391
|
${entriesDescription}
|
457
392
|
If you pass the --entries option, it will merge into the entries of the command.
|
458
393
|
`.trim();
|
459
|
-
const command = isDefault ?
|
460
|
-
|
461
|
-
if (
|
462
|
-
|
394
|
+
const command = isDefault ? (() => {
|
395
|
+
const c = program.name("jb/jiek-build").helpCommand(false);
|
396
|
+
if (IS_WORKSPACE) {
|
397
|
+
c.argument("[filters]", buildFilterDescription);
|
463
398
|
} else {
|
464
|
-
|
399
|
+
c.argument("[entries]", buildEntriesDescription);
|
465
400
|
}
|
466
|
-
|
467
|
-
|
468
|
-
command.argument("[entries]", buildEntriesDescription);
|
469
|
-
} else {
|
470
|
-
command.command("build [entries]");
|
471
|
-
}
|
472
|
-
}
|
401
|
+
return c;
|
402
|
+
})() : program.command(`build [${IS_WORKSPACE ? "filters" : "entries"}]`);
|
473
403
|
command.description(description).option("-t, --type <TYPE>", `The type of build, support ${BUILDER_TYPES.map((s) => `"${s}"`).join(", ")}.`, (v) => {
|
474
404
|
if (!BUILDER_TYPES.includes(v)) {
|
475
405
|
throw new Error(`The value of 'type' must be ${BUILDER_TYPES.map((s) => `"${s}"`).join(", ")}`);
|
package/dist/cli.cjs
CHANGED
@@ -44,14 +44,6 @@ var detectIndent__default = /*#__PURE__*/_interopDefault(detectIndent);
|
|
44
44
|
var require$$0__default = /*#__PURE__*/_interopDefault(require$$0);
|
45
45
|
var require$$0__default$1 = /*#__PURE__*/_interopDefault(require$$0$1);
|
46
46
|
|
47
|
-
let resolve;
|
48
|
-
function actionDone() {
|
49
|
-
resolve();
|
50
|
-
}
|
51
|
-
function actionRestore() {
|
52
|
-
new Promise((r) => resolve = r);
|
53
|
-
}
|
54
|
-
|
55
47
|
let root;
|
56
48
|
function getRoot() {
|
57
49
|
if (root)
|
@@ -4454,14 +4446,59 @@ Support with variables: 'PKG_NAME',
|
|
4454
4446
|
.e.g. 'dist/{{PKG_NAME}}'.
|
4455
4447
|
`.trim();
|
4456
4448
|
|
4457
|
-
|
4458
|
-
|
4449
|
+
const description = `
|
4450
|
+
Publish package to npm registry, and auto generate exports field and other fields in published package.json.
|
4451
|
+
If you want to through the options to the \`pnpm publish\` command, you can pass the options after '--'.
|
4452
|
+
`.trim();
|
4453
|
+
async function forEachSelectedProjectsGraphEntries(callback) {
|
4459
4454
|
const { value = {} } = await getSelectedProjectsGraph() ?? {};
|
4460
4455
|
const selectedProjectsGraphEntries = Object.entries(value);
|
4461
4456
|
if (selectedProjectsGraphEntries.length === 0) {
|
4462
4457
|
throw new Error("no packages selected");
|
4463
4458
|
}
|
4464
|
-
const
|
4459
|
+
for (const [dir, manifest] of selectedProjectsGraphEntries) {
|
4460
|
+
callback(dir, manifest);
|
4461
|
+
}
|
4462
|
+
}
|
4463
|
+
commander.program.command("publish").description(description).aliases(["pub", "p"]).option("-b, --bumper <bumper>", "bump version", "patch").option("-no-b, --no-bumper", "no bump version").option("-o, --outdir <OUTDIR>", outdirDescription, String, "dist").action(async ({ outdir, bumper: bumper$1 }) => {
|
4464
|
+
let shouldPassThrough = false;
|
4465
|
+
const passThroughOptions = process.argv.reduce(
|
4466
|
+
(acc, value) => {
|
4467
|
+
if (shouldPassThrough) {
|
4468
|
+
acc.push(value);
|
4469
|
+
}
|
4470
|
+
if (value === "--") {
|
4471
|
+
shouldPassThrough = true;
|
4472
|
+
}
|
4473
|
+
return acc;
|
4474
|
+
},
|
4475
|
+
[]
|
4476
|
+
);
|
4477
|
+
await forEachSelectedProjectsGraphEntries((dir) => {
|
4478
|
+
const args = ["pnpm", "publish", "--access", "public", "--no-git-checks"];
|
4479
|
+
if (bumper$1 && bumper.TAGS.includes(bumper$1)) {
|
4480
|
+
args.push("--tag", bumper$1);
|
4481
|
+
}
|
4482
|
+
args.push(...passThroughOptions);
|
4483
|
+
childProcess__namespace.execSync(args.join(" "), {
|
4484
|
+
cwd: dir,
|
4485
|
+
stdio: "inherit",
|
4486
|
+
env: {
|
4487
|
+
...process.env,
|
4488
|
+
JIEK_PUBLISH_OUTDIR: JSON.stringify(outdir),
|
4489
|
+
JIEK_PUBLISH_BUMPER: JSON.stringify(bumper$1)
|
4490
|
+
}
|
4491
|
+
});
|
4492
|
+
});
|
4493
|
+
});
|
4494
|
+
async function prepublish() {
|
4495
|
+
const {
|
4496
|
+
JIEK_PUBLISH_OUTDIR: outdirEnv,
|
4497
|
+
JIEK_PUBLISH_BUMPER: bumperEnv
|
4498
|
+
} = process.env;
|
4499
|
+
const outdir = outdirEnv ? JSON.parse(outdirEnv) : "dist";
|
4500
|
+
const bumper$1 = bumperEnv ? JSON.parse(bumperEnv) : false;
|
4501
|
+
const generateNewManifest = (dir, manifest) => {
|
4465
4502
|
const { name, type, exports: entrypoints = {} } = manifest;
|
4466
4503
|
if (!name) {
|
4467
4504
|
throw new Error(`package.json in ${dir} must have a name field`);
|
@@ -4482,35 +4519,38 @@ commander.program.command("publish").aliases(["pub", "p"]).option("-b, --bumper
|
|
4482
4519
|
...resolvedEntrypoints,
|
4483
4520
|
...exports
|
4484
4521
|
};
|
4485
|
-
return [
|
4486
|
-
}
|
4487
|
-
const
|
4488
|
-
|
4489
|
-
|
4490
|
-
|
4491
|
-
|
4492
|
-
}
|
4493
|
-
for (const [dir, manifest, resolvedOutdir] of manifests) {
|
4494
|
-
const oldJSONString = fs__default.default.readFileSync(path__default.default.join(dir, "package.json"), "utf-8");
|
4495
|
-
const oldJSON = JSON.parse(oldJSONString) ?? "0.0.0";
|
4496
|
-
const newVersion = bumper$1 ? bumper.bump(oldJSON.version, bumper$1) : oldJSON.version;
|
4497
|
-
const { indent = " " } = detectIndent__default.default(oldJSONString);
|
4498
|
-
const formattingOptions = {
|
4499
|
-
tabSize: indent.length,
|
4500
|
-
insertSpaces: true
|
4501
|
-
};
|
4522
|
+
return [newManifest, resolvedOutdir];
|
4523
|
+
};
|
4524
|
+
const generateNewPackageJSONString = ({
|
4525
|
+
oldJSONString,
|
4526
|
+
oldJSON,
|
4527
|
+
manifest,
|
4528
|
+
formattingOptions
|
4529
|
+
}) => {
|
4502
4530
|
let newJSONString = oldJSONString;
|
4503
4531
|
newJSONString = jsoncParser.applyEdits(
|
4504
4532
|
newJSONString,
|
4505
4533
|
jsoncParser.modify(
|
4506
4534
|
newJSONString,
|
4507
|
-
["
|
4508
|
-
|
4535
|
+
["publishConfig", "typesVersions"],
|
4536
|
+
{
|
4537
|
+
"<5.0": {
|
4538
|
+
"*": [
|
4539
|
+
"*",
|
4540
|
+
`./*`,
|
4541
|
+
`./*/index.d.ts`,
|
4542
|
+
`./*/index.d.mts`,
|
4543
|
+
`./*/index.d.cts`
|
4544
|
+
]
|
4545
|
+
}
|
4546
|
+
},
|
4509
4547
|
{ formattingOptions }
|
4510
4548
|
)
|
4511
4549
|
);
|
4512
|
-
for (const [key,
|
4513
|
-
if (
|
4550
|
+
for (const [key, value] of Object.entries(manifest)) {
|
4551
|
+
if (key === "version")
|
4552
|
+
continue;
|
4553
|
+
if (JSON.stringify(value) === JSON.stringify(oldJSON[key]))
|
4514
4554
|
continue;
|
4515
4555
|
if (key !== "exports") {
|
4516
4556
|
newJSONString = jsoncParser.applyEdits(
|
@@ -4518,12 +4558,12 @@ commander.program.command("publish").aliases(["pub", "p"]).option("-b, --bumper
|
|
4518
4558
|
jsoncParser.modify(
|
4519
4559
|
newJSONString,
|
4520
4560
|
["publishConfig", key],
|
4521
|
-
|
4561
|
+
value,
|
4522
4562
|
{ formattingOptions }
|
4523
4563
|
)
|
4524
4564
|
);
|
4525
4565
|
} else {
|
4526
|
-
const exports =
|
4566
|
+
const exports = value;
|
4527
4567
|
for (const [k, v] of Object.entries(exports)) {
|
4528
4568
|
newJSONString = jsoncParser.applyEdits(
|
4529
4569
|
newJSONString,
|
@@ -4565,46 +4605,180 @@ commander.program.command("publish").aliases(["pub", "p"]).option("-b, --bumper
|
|
4565
4605
|
}
|
4566
4606
|
}
|
4567
4607
|
}
|
4568
|
-
|
4569
|
-
|
4570
|
-
|
4571
|
-
|
4572
|
-
|
4573
|
-
{
|
4574
|
-
"<5.0": {
|
4575
|
-
"*": [
|
4576
|
-
"*",
|
4577
|
-
`${resolvedOutdir}/*`,
|
4578
|
-
`${resolvedOutdir}/*/index.d.ts`,
|
4579
|
-
`${resolvedOutdir}/*/index.d.mts`,
|
4580
|
-
`${resolvedOutdir}/*/index.d.cts`
|
4581
|
-
]
|
4582
|
-
}
|
4608
|
+
if (oldJSON["peerDependencies"]) {
|
4609
|
+
const peerDependenciesMeta = Object.keys(oldJSON["peerDependencies"]).reduce(
|
4610
|
+
(acc, key) => {
|
4611
|
+
acc[key] = { optional: true };
|
4612
|
+
return acc;
|
4583
4613
|
},
|
4584
|
-
{
|
4585
|
-
)
|
4614
|
+
{}
|
4615
|
+
);
|
4616
|
+
newJSONString = jsoncParser.applyEdits(
|
4617
|
+
newJSONString,
|
4618
|
+
jsoncParser.modify(
|
4619
|
+
newJSONString,
|
4620
|
+
["peerDependenciesMeta"],
|
4621
|
+
peerDependenciesMeta,
|
4622
|
+
{ formattingOptions }
|
4623
|
+
)
|
4624
|
+
);
|
4625
|
+
}
|
4626
|
+
if (oldJSON["files"]) {
|
4627
|
+
newJSONString = jsoncParser.applyEdits(
|
4628
|
+
newJSONString,
|
4629
|
+
jsoncParser.modify(
|
4630
|
+
newJSONString,
|
4631
|
+
["files"],
|
4632
|
+
void 0,
|
4633
|
+
{ formattingOptions }
|
4634
|
+
)
|
4635
|
+
);
|
4636
|
+
}
|
4637
|
+
return newJSONString;
|
4638
|
+
};
|
4639
|
+
await forEachSelectedProjectsGraphEntries((dir, originalManifest) => {
|
4640
|
+
const [manifest, resolvedOutdir] = generateNewManifest(dir, originalManifest);
|
4641
|
+
const resolveByDir = (...paths) => path__default.default.resolve(dir, ...paths);
|
4642
|
+
const oldJSONString = fs__default.default.readFileSync(resolveByDir("package.json"), "utf-8");
|
4643
|
+
const oldJSON = JSON.parse(oldJSONString) ?? "0.0.0";
|
4644
|
+
if (typeof oldJSON.version !== "string") {
|
4645
|
+
throw new Error(`${dir}/package.json must have a version field with a string value`);
|
4646
|
+
}
|
4647
|
+
const { indent = " " } = detectIndent__default.default(oldJSONString);
|
4648
|
+
const formattingOptions = {
|
4649
|
+
tabSize: indent.length,
|
4650
|
+
insertSpaces: true
|
4651
|
+
};
|
4652
|
+
const newVersion = bumper$1 ? bumper.bump(oldJSON.version, bumper$1) : oldJSON.version;
|
4653
|
+
const modifyVersionPackageJSON = jsoncParser.applyEdits(
|
4654
|
+
oldJSONString,
|
4655
|
+
jsoncParser.modify(oldJSONString, ["version"], newVersion, { formattingOptions })
|
4586
4656
|
);
|
4587
|
-
|
4588
|
-
|
4589
|
-
|
4590
|
-
|
4591
|
-
|
4657
|
+
const newJSONString = generateNewPackageJSONString({
|
4658
|
+
oldJSONString: modifyVersionPackageJSON,
|
4659
|
+
oldJSON: {
|
4660
|
+
...oldJSON,
|
4661
|
+
version: newVersion
|
4662
|
+
},
|
4663
|
+
manifest,
|
4664
|
+
formattingOptions
|
4665
|
+
});
|
4666
|
+
const withPublishConfigDirectoryOldJSONString = jsoncParser.applyEdits(
|
4667
|
+
modifyVersionPackageJSON,
|
4668
|
+
jsoncParser.modify(modifyVersionPackageJSON, ["publishConfig", "directory"], resolvedOutdir, { formattingOptions })
|
4669
|
+
);
|
4670
|
+
if (!fs__default.default.existsSync(resolveByDir(resolvedOutdir))) {
|
4671
|
+
fs__default.default.mkdirSync(resolveByDir(resolvedOutdir));
|
4672
|
+
}
|
4673
|
+
const jiekTempDir = resolveByDir("node_modules/.jiek/.tmp");
|
4674
|
+
if (!fs__default.default.existsSync(resolveByDir(jiekTempDir))) {
|
4675
|
+
fs__default.default.mkdirSync(resolveByDir(jiekTempDir), { recursive: true });
|
4676
|
+
}
|
4677
|
+
fs__default.default.writeFileSync(resolveByDir(resolvedOutdir, "package.json"), newJSONString);
|
4678
|
+
fs__default.default.writeFileSync(resolveByDir(jiekTempDir, "package.json"), modifyVersionPackageJSON);
|
4679
|
+
fs__default.default.writeFileSync(resolveByDir("package.json"), withPublishConfigDirectoryOldJSONString);
|
4680
|
+
const allBuildFiles = fs__default.default.readdirSync(resolveByDir(resolvedOutdir), { recursive: true }).filter((file) => typeof file === "string").filter((file) => file !== "package.json");
|
4681
|
+
for (const file of allBuildFiles) {
|
4682
|
+
const filepath = resolveByDir(resolvedOutdir, file);
|
4683
|
+
const stat = fs__default.default.statSync(filepath);
|
4684
|
+
if (stat.isDirectory()) {
|
4685
|
+
const existsIndexFile = allBuildFiles.some(
|
4686
|
+
(f) => [
|
4687
|
+
path__default.default.join(file, "index.js"),
|
4688
|
+
path__default.default.join(file, "index.mjs"),
|
4689
|
+
path__default.default.join(file, "index.cjs")
|
4690
|
+
].includes(f)
|
4691
|
+
);
|
4692
|
+
if (existsIndexFile) {
|
4693
|
+
const cpDistPath = resolveByDir(resolvedOutdir, resolvedOutdir, file);
|
4694
|
+
const pkgJSONPath = resolveByDir(resolvedOutdir, file, "package.json");
|
4695
|
+
const relativePath = path__default.default.relative(filepath, cpDistPath);
|
4696
|
+
const { type } = manifest;
|
4697
|
+
fs__default.default.writeFileSync(
|
4698
|
+
pkgJSONPath,
|
4699
|
+
JSON.stringify({
|
4700
|
+
type,
|
4701
|
+
main: [relativePath, `index.${type === "module" ? "c" : ""}js`].join("/"),
|
4702
|
+
module: [relativePath, `index.${type === "module" ? "" : "m"}js`].join("/")
|
4703
|
+
})
|
4704
|
+
);
|
4705
|
+
}
|
4706
|
+
}
|
4707
|
+
}
|
4708
|
+
fs__default.default.mkdirSync(resolveByDir(resolvedOutdir, resolvedOutdir));
|
4709
|
+
for (const file of allBuildFiles) {
|
4710
|
+
const filepath = resolveByDir(resolvedOutdir, file);
|
4711
|
+
const newFilepath = resolveByDir(resolvedOutdir, resolvedOutdir, file);
|
4712
|
+
const stat = fs__default.default.statSync(filepath);
|
4713
|
+
if (stat.isDirectory()) {
|
4714
|
+
fs__default.default.mkdirSync(newFilepath, { recursive: true });
|
4592
4715
|
continue;
|
4593
4716
|
}
|
4594
|
-
|
4595
|
-
|
4596
|
-
|
4717
|
+
if (stat.isFile()) {
|
4718
|
+
fs__default.default.cpSync(filepath, newFilepath);
|
4719
|
+
fs__default.default.rmSync(filepath);
|
4720
|
+
}
|
4721
|
+
}
|
4722
|
+
if (oldJSON.files) {
|
4723
|
+
if (!Array.isArray(oldJSON.files)) {
|
4724
|
+
throw new Error(`${dir}/package.json files field must be an array`);
|
4725
|
+
}
|
4726
|
+
if (Array.isArray(oldJSON.files) && oldJSON.files.every((file) => typeof file !== "string")) {
|
4727
|
+
throw new Error(`${dir}/package.json files field must be an array of string`);
|
4597
4728
|
}
|
4598
|
-
childProcess__namespace.execSync(args.join(" "), {
|
4599
|
-
cwd: dir,
|
4600
|
-
stdio: "inherit"
|
4601
|
-
});
|
4602
|
-
const modifyVersionPackageJSON = jsoncParser.applyEdits(oldJSONString, jsoncParser.modify(oldJSONString, ["version"], newVersion, {}));
|
4603
|
-
fs__default.default.writeFileSync(path__default.default.join(dir, "package.json.bak"), modifyVersionPackageJSON);
|
4604
|
-
} finally {
|
4605
|
-
fs__default.default.unlinkSync(path__default.default.join(dir, "package.json"));
|
4606
|
-
fs__default.default.renameSync(path__default.default.join(dir, "package.json.bak"), path__default.default.join(dir, "package.json"));
|
4607
4729
|
}
|
4730
|
+
const resolvedOutdirAbs = resolveByDir(resolvedOutdir);
|
4731
|
+
const files = (oldJSON.files ?? fs__default.default.readdirSync(resolveByDir("."))).filter((file) => file === "node_modules" || resolveByDir(file) !== resolvedOutdirAbs);
|
4732
|
+
for (const file of files) {
|
4733
|
+
const path2 = resolveByDir(file);
|
4734
|
+
try {
|
4735
|
+
const stat = fs__default.default.statSync(path2);
|
4736
|
+
if (stat.isDirectory()) {
|
4737
|
+
fs__default.default.cpSync(path2, resolveByDir(resolvedOutdir, file), { recursive: true });
|
4738
|
+
continue;
|
4739
|
+
}
|
4740
|
+
if (stat.isFile()) {
|
4741
|
+
fs__default.default.cpSync(path2, resolveByDir(resolvedOutdir, file));
|
4742
|
+
continue;
|
4743
|
+
}
|
4744
|
+
} catch (e) {
|
4745
|
+
console.warn(String(e));
|
4746
|
+
continue;
|
4747
|
+
}
|
4748
|
+
throw new Error(`file type of ${path2} is not supported`);
|
4749
|
+
}
|
4750
|
+
});
|
4751
|
+
}
|
4752
|
+
async function postpublish() {
|
4753
|
+
await forEachSelectedProjectsGraphEntries((dir) => {
|
4754
|
+
const jiekTempDir = path__default.default.resolve(dir, "node_modules/.jiek/.tmp");
|
4755
|
+
const packageJSON = path__default.default.resolve(dir, "package.json");
|
4756
|
+
const jiekTempPackageJSON = path__default.default.resolve(jiekTempDir, "package.json");
|
4757
|
+
if (fs__default.default.existsSync(jiekTempPackageJSON)) {
|
4758
|
+
fs__default.default.copyFileSync(jiekTempPackageJSON, packageJSON);
|
4759
|
+
fs__default.default.rmSync(jiekTempPackageJSON);
|
4760
|
+
console.log(`${dir}/package.json has been restored`);
|
4761
|
+
} else {
|
4762
|
+
throw new Error(
|
4763
|
+
`jiek temp \`${dir}/package.json\` not found, please confirm the jiek pre-publish command has been executed`
|
4764
|
+
);
|
4765
|
+
}
|
4766
|
+
});
|
4767
|
+
}
|
4768
|
+
commander.program.action(async () => {
|
4769
|
+
const {
|
4770
|
+
npm_lifecycle_event: NPM_LIFECYCLE_EVENT
|
4771
|
+
} = process.env;
|
4772
|
+
switch (NPM_LIFECYCLE_EVENT) {
|
4773
|
+
case "prepublish":
|
4774
|
+
await prepublish();
|
4775
|
+
break;
|
4776
|
+
case "postpublish":
|
4777
|
+
await postpublish();
|
4778
|
+
break;
|
4779
|
+
default:
|
4780
|
+
commander.program.help();
|
4608
4781
|
}
|
4609
|
-
actionDone();
|
4610
4782
|
});
|
4783
|
+
commander.program.command("prepublish").action(prepublish);
|
4784
|
+
commander.program.command("postpublish").action(postpublish);
|