jiek 0.1.12 → 0.2.0-alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. package/dist/commands/build.esm.js +10 -32
  2. package/dist/commands/build.esm.js.map +1 -1
  3. package/dist/commands/build.esm.min.js +1 -1
  4. package/dist/commands/build.esm.min.js.map +1 -1
  5. package/dist/commands/publish.esm.js +50 -34
  6. package/dist/commands/publish.esm.js.map +1 -1
  7. package/dist/commands/publish.esm.min.js +1 -1
  8. package/dist/commands/publish.esm.min.js.map +1 -1
  9. package/dist/index.esm.js +3 -0
  10. package/dist/index.esm.js.map +1 -1
  11. package/dist/index.esm.min.js +1 -1
  12. package/dist/index.esm.min.js.map +1 -1
  13. package/dist/index.iife.js +194 -67
  14. package/dist/index.iife.js.map +1 -1
  15. package/dist/index.iife.min.js +1 -1
  16. package/dist/index.iife.min.js.map +1 -1
  17. package/dist/index.umd.js +196 -69
  18. package/dist/index.umd.js.map +1 -1
  19. package/dist/index.umd.min.js +1 -1
  20. package/dist/index.umd.min.js.map +1 -1
  21. package/dist/merge-package-json.esm.js +45 -4
  22. package/dist/merge-package-json.esm.js.map +1 -1
  23. package/dist/merge-package-json.esm.min.js +1 -1
  24. package/dist/merge-package-json.esm.min.js.map +1 -1
  25. package/dist/rollup.esm.js +7 -0
  26. package/dist/rollup.esm.js.map +1 -1
  27. package/dist/rollup.esm.min.js +1 -1
  28. package/dist/rollup.esm.min.js.map +1 -1
  29. package/dist/rollup.iife.js +9 -2
  30. package/dist/rollup.iife.js.map +1 -1
  31. package/dist/rollup.iife.min.js +1 -1
  32. package/dist/rollup.iife.min.js.map +1 -1
  33. package/dist/rollup.umd.js +11 -4
  34. package/dist/rollup.umd.js.map +1 -1
  35. package/dist/rollup.umd.min.js +1 -1
  36. package/dist/rollup.umd.min.js.map +1 -1
  37. package/dist/utils/commondir.esm.js +25 -0
  38. package/dist/utils/commondir.esm.js.map +1 -0
  39. package/dist/utils/commondir.esm.min.js +2 -0
  40. package/dist/utils/commondir.esm.min.js.map +1 -0
  41. package/dist/utils/filterSupport.esm.js +78 -0
  42. package/dist/utils/filterSupport.esm.js.map +1 -0
  43. package/dist/utils/filterSupport.esm.min.js +2 -0
  44. package/dist/utils/filterSupport.esm.min.js.map +1 -0
  45. package/package.json +27 -30
@@ -1,4 +1,4 @@
1
- (function (fs, path, bumper, getWorkspaceDir, filterWorkspacePackages, childProcess, commander, pkger, childProcess$1, jsYaml) {
1
+ (function (fs, path, getWorkspaceDir, filterWorkspacePackages, commander, jsYaml, bumper, childProcess, detectIndent, jsoncParser, pkger, childProcess$1) {
2
2
  'use strict';
3
3
 
4
4
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -24,8 +24,78 @@
24
24
  var fs__default = /*#__PURE__*/_interopDefault(fs);
25
25
  var path__default = /*#__PURE__*/_interopDefault(path);
26
26
  var childProcess__namespace = /*#__PURE__*/_interopNamespace(childProcess);
27
+ var detectIndent__default = /*#__PURE__*/_interopDefault(detectIndent);
27
28
  var childProcess__namespace$1 = /*#__PURE__*/_interopNamespace(childProcess$1);
28
29
 
30
+ let type = "";
31
+ try {
32
+ require.resolve("@pnpm/filter-workspace-packages");
33
+ type = "pnpm";
34
+ } catch {
35
+ }
36
+ if (type !== "") {
37
+ commander.program.option("-f, --filter <filter>", "filter packages");
38
+ }
39
+ async function getSelectedProjectsGraph() {
40
+ let filter = commander.program.getOptionValue("filter");
41
+ const rootOption = commander.program.getOptionValue("root");
42
+ const root = rootOption ? path__default.default.isAbsolute(rootOption) ? rootOption : path__default.default.resolve(process.cwd(), rootOption) : process.cwd();
43
+ let notWorkspace = false;
44
+ let wd;
45
+ try {
46
+ wd = getWorkspaceDir.getWorkspaceDir(root, type);
47
+ } catch (e) {
48
+ if ("message" in e && e.message === "workspace root not found") {
49
+ wd = root;
50
+ notWorkspace = true;
51
+ } else {
52
+ throw e;
53
+ }
54
+ }
55
+ if (!notWorkspace && type === "pnpm") {
56
+ const pnpmWorkspaceFilePath = path__default.default.resolve(wd, "pnpm-workspace.yaml");
57
+ const pnpmWorkspaceFileContent = fs__default.default.readFileSync(pnpmWorkspaceFilePath, "utf-8");
58
+ const pnpmWorkspace = jsYaml.load(pnpmWorkspaceFileContent);
59
+ if (root === wd && !filter) {
60
+ throw new Error("root path is workspace root, please provide a filter");
61
+ }
62
+ if (root !== wd && !filter) {
63
+ const packageJSONIsExist = fs__default.default.existsSync(path__default.default.resolve(root, "package.json"));
64
+ if (!packageJSONIsExist) {
65
+ throw new Error("root path is not workspace root, please provide a filter");
66
+ }
67
+ const packageJSON = JSON.parse(fs__default.default.readFileSync(path__default.default.resolve(root, "package.json"), "utf-8"));
68
+ if (!packageJSON.name) {
69
+ throw new Error("root path is not workspace root, please provide a filter");
70
+ }
71
+ filter = packageJSON.name;
72
+ }
73
+ const { selectedProjectsGraph } = await filterWorkspacePackages.filterPackagesFromDir(wd, [{
74
+ filter: filter ?? "",
75
+ followProdDepsOnly: true
76
+ }], {
77
+ prefix: root,
78
+ workspaceDir: wd,
79
+ patterns: pnpmWorkspace.packages
80
+ });
81
+ return {
82
+ wd,
83
+ root,
84
+ value: Object.entries(selectedProjectsGraph).reduce((acc, [key, value]) => {
85
+ acc[key] = value.package.manifest;
86
+ return acc;
87
+ }, {})
88
+ };
89
+ }
90
+ return {
91
+ wd,
92
+ root,
93
+ value: {
94
+ [wd]: JSON.parse(fs__default.default.readFileSync(path__default.default.resolve(wd, "package.json"), "utf-8"))
95
+ }
96
+ };
97
+ }
98
+
29
99
  let resolve;
30
100
  function actionDone() {
31
101
  resolve();
@@ -34,60 +104,135 @@
34
104
  new Promise((r) => resolve = r);
35
105
  }
36
106
 
107
+ function commondir(files, cwd = process.cwd()) {
108
+ const resolvedFiles = files.map((file) => {
109
+ if (path__default.default.isAbsolute(file))
110
+ return file;
111
+ return path__default.default.resolve(cwd, file);
112
+ });
113
+ const sep = "/";
114
+ const [first = ""] = resolvedFiles;
115
+ const parts = first.split(sep);
116
+ let common = "";
117
+ for (let i = 0; i < parts.length; i++) {
118
+ const segment = parts[i];
119
+ if (resolvedFiles.every((file) => file.startsWith(common + segment))) {
120
+ common += segment + sep;
121
+ } else {
122
+ break;
123
+ }
124
+ }
125
+ return common;
126
+ }
127
+
37
128
  function mergePackageJson(manifest, cwd) {
38
129
  const {
39
- jiek: { inputs: jiekInputs, cwd: _, ...jiek } = {},
40
- exports
130
+ jiek: { cwd: _, ...jiek } = {}
41
131
  } = manifest;
42
- const inputs = jiekInputs ?? (Array.isArray(exports) ? exports : void 0);
132
+ let { exports } = manifest;
133
+ let includeIndex = false;
134
+ if (typeof exports === "string") {
135
+ includeIndex = true;
136
+ exports = { ".": exports };
137
+ }
138
+ if (exports === void 0) {
139
+ exports = { ".": "./src/index.ts" };
140
+ }
141
+ if (typeof exports === "object") {
142
+ if (Array.isArray(exports) && exports.length > 0) {
143
+ includeIndex = true;
144
+ } else {
145
+ includeIndex = !!exports["."];
146
+ }
147
+ }
148
+ const inputs = Array.isArray(exports) ? exports : Object.entries(exports).reduce((acc, [key, value]) => {
149
+ if (typeof value === "string")
150
+ return key === "." ? [value, ...acc] : acc.concat(value);
151
+ if (Array.isArray(value))
152
+ return acc.concat(value);
153
+ throw new TypeError(`Unexpected value type for key "${key}" in exports, expected string, got ${typeof value}`);
154
+ }, []);
155
+ if (inputs.length === 0)
156
+ throw new Error("No inputs found");
157
+ const absoluteInputs = inputs.map(
158
+ (input) => path__default.default.isAbsolute(input) ? input : path__default.default.resolve(cwd, input)
159
+ );
160
+ let cDir = path__default.default.dirname(absoluteInputs[0]);
161
+ if (absoluteInputs.length > 1) {
162
+ cDir = commondir(absoluteInputs, cwd);
163
+ }
164
+ const resolvedInputs = absoluteInputs.map((input) => {
165
+ return path__default.default.relative(cDir, input);
166
+ });
43
167
  return {
44
168
  ...manifest,
45
- ...pkger.pkger({ inputs, cwd, ...jiek })
169
+ ...pkger.pkger({
170
+ cwd,
171
+ noIndex: !includeIndex,
172
+ source: path__default.default.relative(cwd, cDir),
173
+ inputs: resolvedInputs,
174
+ ...jiek
175
+ })
46
176
  };
47
177
  }
48
178
 
49
- commander.program.command("publish").aliases(["pub", "p"]).option("--filter <filter>", "filter packages").option("--root <root>", "root path").option("--bumper <bumper>", "bump version", "patch").action(async ({ root: rootOption, filter, bumper: bumper$1, ...options }) => {
179
+ commander.program.command("publish").aliases(["pub", "p"]).option("-b, --bumper <bumper>", "bump version", "patch").option("-p, --preview", "preview publish").action(async ({ preview, bumper: bumper$1, ...options }) => {
50
180
  actionRestore();
51
- const root = rootOption ? path__default.default.isAbsolute(rootOption) ? rootOption : path__default.default.resolve(process.cwd(), rootOption) : process.cwd();
52
- const wd = getWorkspaceDir.getWorkspaceDir(root);
53
- const { selectedProjectsGraph } = await filterWorkspacePackages.filterPackagesFromDir(wd, [{
54
- filter: filter ?? "",
55
- followProdDepsOnly: true
56
- }], {
57
- prefix: root,
58
- workspaceDir: wd,
59
- patterns: ["packages/*"]
60
- });
61
- const mainfests = [];
62
- Object.entries(selectedProjectsGraph).forEach(([, { package: { dir, manifest } }]) => {
63
- mainfests.push([
64
- dir,
65
- mergePackageJson(manifest, dir)
66
- ]);
67
- });
68
- const passArgs = Object.entries(options).reduce((acc, [key, value]) => {
69
- if (value) {
70
- acc.push(`--${key}`, value);
181
+ const { value = {} } = await getSelectedProjectsGraph() ?? {};
182
+ const selectedProjectsGraphEntries = Object.entries(value);
183
+ if (selectedProjectsGraphEntries.length === 0) {
184
+ throw new Error("no packages selected");
185
+ }
186
+ const mainfests = selectedProjectsGraphEntries.map(([dir, manifest]) => [
187
+ dir,
188
+ mergePackageJson(manifest, dir)
189
+ ]);
190
+ const passArgs = Object.entries(options).reduce((acc, [key, value2]) => {
191
+ if (value2) {
192
+ acc.push(`--${key}`, value2);
71
193
  }
72
194
  return acc;
73
195
  }, []);
74
- for (const [dir, m] of mainfests) {
75
- const newVersion = bumper.bump(m.version, bumper$1);
76
- const newManifest = {
77
- ...m,
78
- version: newVersion
196
+ for (const [dir, manifest] of mainfests) {
197
+ const oldJSONString = fs__default.default.readFileSync(path__default.default.join(dir, "package.json"), "utf-8");
198
+ const oldJSON = JSON.parse(oldJSONString) ?? "0.0.0";
199
+ const newVersion = bumper.bump(oldJSON.version, bumper$1);
200
+ const { indent = " " } = detectIndent__default.default(oldJSONString);
201
+ const formattingOptions = {
202
+ tabSize: indent.length,
203
+ insertSpaces: true
79
204
  };
80
- fs__default.default.renameSync(path__default.default.join(dir, "package.json"), path__default.default.join(dir, "package.json.bak"));
81
- fs__default.default.writeFileSync(path__default.default.join(dir, "package.json"), JSON.stringify(newManifest, null, 2));
82
- console.log(newManifest);
205
+ let newJSONString = oldJSONString;
206
+ newJSONString = jsoncParser.applyEdits(newJSONString, jsoncParser.modify(
207
+ newJSONString,
208
+ ["version"],
209
+ newVersion,
210
+ { formattingOptions }
211
+ ));
212
+ for (const [key, value2] of Object.entries(manifest)) {
213
+ if (JSON.stringify(value2) === JSON.stringify(oldJSON[key]))
214
+ continue;
215
+ newJSONString = jsoncParser.applyEdits(newJSONString, jsoncParser.modify(
216
+ newJSONString,
217
+ ["publishConfig", key],
218
+ value2,
219
+ { formattingOptions }
220
+ ));
221
+ }
83
222
  try {
223
+ fs__default.default.renameSync(path__default.default.join(dir, "package.json"), path__default.default.join(dir, "package.json.bak"));
224
+ fs__default.default.writeFileSync(path__default.default.join(dir, "package.json"), newJSONString);
225
+ console.log(newJSONString);
226
+ if (preview) {
227
+ console.warn("preview mode");
228
+ continue;
229
+ }
84
230
  childProcess__namespace.execSync(["pnpm", "publish", "--access", "public", "--no-git-checks", ...passArgs].join(" "), {
85
231
  cwd: dir,
86
232
  stdio: "inherit"
87
233
  });
88
- const oldPackageJson = JSON.parse(fs__default.default.readFileSync(path__default.default.join(dir, "package.json.bak"), "utf-8"));
89
- oldPackageJson.version = newVersion;
90
- fs__default.default.writeFileSync(path__default.default.join(dir, "package.json.bak"), JSON.stringify(oldPackageJson, null, 2));
234
+ const modifyVersionPackageJSON = jsoncParser.applyEdits(oldJSONString, jsoncParser.modify(oldJSONString, ["version"], newVersion, {}));
235
+ fs__default.default.writeFileSync(path__default.default.join(dir, "package.json.bak"), modifyVersionPackageJSON);
91
236
  } finally {
92
237
  fs__default.default.unlinkSync(path__default.default.join(dir, "package.json"));
93
238
  fs__default.default.renameSync(path__default.default.join(dir, "package.json.bak"), path__default.default.join(dir, "package.json"));
@@ -104,43 +249,23 @@ const templateArg = jiek.templateArgFilePath
104
249
  : {
105
250
  styled: jiek.styled
106
251
  }
107
- module.exports = require('${process.env.NODE_ENV === "test" ? "jiek/src/rollup/index.ts" : "jiek/rollup"}').template(templateArg, pkg)
252
+ module.exports = require('jiek/rollup').template(templateArg, pkg)
108
253
  `.trimStart();
109
- commander.program.command("build").option("--filter <filter>", "filter packages").option("--root <root>", "root path").action(async ({ root: rootOption, filter, ...options }) => {
254
+ commander.program.command("build").action(async () => {
110
255
  actionRestore();
111
- const root = rootOption ? path__default.default.isAbsolute(rootOption) ? rootOption : path__default.default.resolve(process.cwd(), rootOption) : process.cwd();
112
- const wd = getWorkspaceDir.getWorkspaceDir(root);
113
- const pnpmWorkspaceFilePath = path__default.default.resolve(wd, "pnpm-workspace.yaml");
114
- const pnpmWorkspaceFileContent = fs__default.default.readFileSync(pnpmWorkspaceFilePath, "utf-8");
115
- const pnpmWorkspace = jsYaml.load(pnpmWorkspaceFileContent);
116
- if (root === wd && !filter) {
117
- throw new Error("root path is workspace root, please provide a filter");
118
- }
119
- if (root !== wd && !filter) {
120
- const packageJSONIsExist = fs__default.default.existsSync(path__default.default.resolve(root, "package.json"));
121
- if (!packageJSONIsExist) {
122
- throw new Error("root path is not workspace root, please provide a filter");
123
- }
124
- const packageJSON = JSON.parse(fs__default.default.readFileSync(path__default.default.resolve(root, "package.json"), "utf-8"));
125
- if (!packageJSON.name) {
126
- throw new Error("root path is not workspace root, please provide a filter");
127
- }
128
- filter = packageJSON.name;
256
+ const {
257
+ wd,
258
+ value = {}
259
+ } = await getSelectedProjectsGraph() ?? {};
260
+ if (Object.keys(value).length === 0) {
261
+ throw new Error("no package found");
129
262
  }
130
- const { selectedProjectsGraph } = await filterWorkspacePackages.filterPackagesFromDir(wd, [{
131
- filter: filter ?? "",
132
- followProdDepsOnly: true
133
- }], {
134
- prefix: root,
135
- workspaceDir: wd,
136
- patterns: pnpmWorkspace.packages
137
- });
138
263
  const jiekTempDir = (...paths) => path__default.default.resolve(wd, "node_modules/.jiek", ...paths);
139
264
  if (!fs__default.default.existsSync(jiekTempDir()))
140
265
  fs__default.default.mkdirSync(jiekTempDir());
141
266
  const rollupBinaryPath = require.resolve("rollup").replace(/dist\/rollup.js$/, "dist/bin/rollup");
142
267
  let i = 0;
143
- for (const [dir, { package: { manifest } }] of Object.entries(selectedProjectsGraph)) {
268
+ for (const [dir, manifest] of Object.entries(value)) {
144
269
  const newManifest = mergePackageJson(manifest, dir);
145
270
  const escapeManifestName = manifest.name?.replace(/^@/g, "").replace(/\//g, "+");
146
271
  const configFile = jiekTempDir(
@@ -161,7 +286,9 @@ module.exports = require('${process.env.NODE_ENV === "test" ? "jiek/src/rollup/i
161
286
  actionDone();
162
287
  });
163
288
 
289
+ const pkg = require("../package.json");
290
+ commander.program.version(pkg.version).description(pkg.description).option("--root <root>", "root path");
164
291
  commander.program.parse(process.argv);
165
292
 
166
- })(fs, path, bumper, getWorkspaceDir, filterWorkspacePackages, childProcess, commander, pkger, childProcess$1, jsYaml);
293
+ })(fs, path, getWorkspaceDir, filterWorkspacePackages, commander, jsYaml, bumper, childProcess, detectIndent, jsoncParser, pkger, childProcess$1);
167
294
  //# sourceMappingURL=index.iife.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.iife.js","sources":["../src/inner.ts","../src/merge-package-json.ts","../src/commands/publish.ts","../src/commands/build.ts","../src/index.ts"],"sourcesContent":["let resolve: () => void\n\nexport let actionFuture: Promise<void>\n\nexport function actionDone() {\n resolve()\n}\n\nexport function actionRestore() {\n actionFuture = new Promise<void>(r => resolve = r)\n}\n","import { type Options, pkger } from '@jiek/pkger'\nimport type { PackageJson } from '@npm/types'\nimport type { Manifest } from '@pnpm/workspace.pkgs-graph'\n\nexport function mergePackageJson(manifest: Manifest & {\n jiek?: Options\n exports?: unknown | unknown[]\n}, cwd: string) {\n const {\n jiek: { inputs: jiekInputs, cwd: _, ...jiek } = {}, exports\n } = manifest\n const inputs = jiekInputs ?? (\n Array.isArray(exports) ? exports : undefined\n )\n return {\n ...manifest,\n ...pkger({ inputs, cwd, ...jiek })\n } as PackageJson\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { bump, type BumperType } from '@jiek/utils/bumper'\nimport { getWorkspaceDir } from '@jiek/utils/getWorkspaceDir'\nimport type { PackageJson } from '@npm/types'\nimport { filterPackagesFromDir } from '@pnpm/filter-workspace-packages'\nimport * as childProcess from 'child_process'\nimport { program } from 'commander'\n\nimport { actionDone, actionRestore } from '../inner'\nimport { mergePackageJson } from '../merge-package-json'\n\nprogram\n .command('publish')\n .aliases(['pub', 'p'])\n .option('--filter <filter>', 'filter packages')\n .option('--root <root>', 'root path')\n .option('--bumper <bumper>', 'bump version', 'patch')\n .action(async ({ root: rootOption, filter, bumper, ...options }: {\n root?: string\n filter?: string\n bumper: BumperType\n }) => {\n actionRestore()\n const root = rootOption\n ? path.isAbsolute(rootOption)\n ? rootOption\n : path.resolve(process.cwd(), rootOption)\n : process.cwd()\n const wd = getWorkspaceDir(root)\n const { selectedProjectsGraph } = await filterPackagesFromDir(wd, [{\n filter: filter ?? '',\n followProdDepsOnly: true\n }], {\n prefix: root,\n workspaceDir: wd,\n patterns: ['packages/*']\n })\n const mainfests: [dir: string, PackageJson][] = []\n Object\n .entries(selectedProjectsGraph)\n .forEach(([, { package: { dir, manifest } }]) => {\n mainfests.push([\n dir, mergePackageJson(manifest, dir)\n ])\n })\n const passArgs = Object\n .entries(options)\n .reduce((acc, [key, value]) => {\n if (value) {\n acc.push(`--${key}`, value as string)\n }\n return acc\n }, [] as string[])\n for (const [dir, m] of mainfests) {\n const newVersion = bump(m.version, bumper)\n const newManifest = {\n ...m,\n version: newVersion\n }\n fs.renameSync(path.join(dir, 'package.json'), path.join(dir, 'package.json.bak'))\n fs.writeFileSync(path.join(dir, 'package.json'), JSON.stringify(newManifest, null, 2))\n console.log(newManifest)\n try {\n childProcess.execSync(['pnpm', 'publish', '--access', 'public', '--no-git-checks', ...passArgs].join(' '), {\n cwd: dir,\n stdio: 'inherit'\n })\n const oldPackageJson = JSON.parse(fs.readFileSync(path.join(dir, 'package.json.bak'), 'utf-8'))\n oldPackageJson.version = newVersion\n fs.writeFileSync(path.join(dir, 'package.json.bak'), JSON.stringify(oldPackageJson, null, 2))\n } finally {\n fs.unlinkSync(path.join(dir, 'package.json'))\n fs.renameSync(path.join(dir, 'package.json.bak'), path.join(dir, 'package.json'))\n }\n }\n actionDone()\n })\n","import * as childProcess from 'node:child_process'\nimport fs from 'node:fs'\nimport path from 'node:path'\n\nimport { getWorkspaceDir } from '@jiek/utils/getWorkspaceDir'\nimport { filterPackagesFromDir } from '@pnpm/filter-workspace-packages'\nimport { program } from 'commander'\nimport { load } from 'js-yaml'\n\nimport { actionDone, actionRestore } from '../inner'\nimport { mergePackageJson } from '../merge-package-json'\n\nconst FILE_TEMPLATE = (manifest: unknown) => `\nconst pkg = ${JSON.stringify(manifest, null, 2)}\nconst { jiek = {} } = pkg\nconst templateArg = jiek.templateArgFilePath\n ? require.resolve(jiek.templateArgFilePath)\n : {\n styled: jiek.styled\n }\nmodule.exports = require('${\n process.env.NODE_ENV === 'test'\n ? 'jiek/src/rollup/index.ts'\n : 'jiek/rollup'\n}').template(templateArg, pkg)\n`.trimStart()\n\nprogram\n .command('build')\n .option('--filter <filter>', 'filter packages')\n .option('--root <root>', 'root path')\n .action(async ({ root: rootOption, filter, ...options }: {\n root?: string\n filter?: string\n }) => {\n actionRestore()\n const root = rootOption\n ? path.isAbsolute(rootOption)\n ? rootOption\n : path.resolve(process.cwd(), rootOption)\n : process.cwd()\n const wd = getWorkspaceDir(root)\n const pnpmWorkspaceFilePath = path.resolve(wd, 'pnpm-workspace.yaml')\n const pnpmWorkspaceFileContent = fs.readFileSync(pnpmWorkspaceFilePath, 'utf-8')\n const pnpmWorkspace = load(pnpmWorkspaceFileContent) as {\n packages: string[]\n }\n if (root === wd && !filter) {\n throw new Error('root path is workspace root, please provide a filter')\n // TODO inquirer prompt support user select packages\n }\n if (root !== wd && !filter) {\n const packageJSONIsExist = fs.existsSync(path.resolve(root, 'package.json'))\n if (!packageJSONIsExist) {\n throw new Error('root path is not workspace root, please provide a filter')\n }\n const packageJSON = JSON.parse(fs.readFileSync(path.resolve(root, 'package.json'), 'utf-8'))\n if (!packageJSON.name) {\n throw new Error('root path is not workspace root, please provide a filter')\n }\n filter = packageJSON.name\n }\n const { selectedProjectsGraph } = await filterPackagesFromDir(wd, [{\n filter: filter ?? '',\n followProdDepsOnly: true\n }], {\n prefix: root,\n workspaceDir: wd,\n patterns: pnpmWorkspace.packages\n })\n const jiekTempDir = (...paths: string[]) => path.resolve(wd, 'node_modules/.jiek', ...paths)\n if (!fs.existsSync(jiekTempDir())) fs.mkdirSync(jiekTempDir())\n\n const rollupBinaryPath = require.resolve('rollup')\n .replace(/dist\\/rollup.js$/, 'dist/bin/rollup')\n let i = 0\n for (const [dir, { package: { manifest } }] of Object.entries(selectedProjectsGraph)) {\n const newManifest = mergePackageJson(manifest, dir)\n // TODO support auto build child packages in workspaces\n const escapeManifestName = manifest.name?.replace(/^@/g, '').replace(/\\//g, '+')\n const configFile = jiekTempDir(\n `${escapeManifestName ?? `anonymous-${i++}`}.rollup.config.js`\n )\n fs.writeFileSync(configFile, FILE_TEMPLATE(newManifest))\n let prefix = ''\n if (process.env.NODE_ENV === 'test') {\n const registerPath = require.resolve('esbuild-register')\n const loaderPath = require.resolve('esbuild-register/loader')\n prefix = `node --import ${registerPath} -r ${loaderPath} `\n }\n // TODO replace with `spawn` to support watch mode\n childProcess.execSync(`${prefix}${rollupBinaryPath} -c ${configFile}`, {\n cwd: dir, stdio: 'inherit'\n })\n }\n\n actionDone()\n })\n","import './commands/publish'\nimport './commands/build'\n\nimport { program } from 'commander'\n\nprogram.parse(process.argv)\n"],"names":["pkger","program","bumper","path","getWorkspaceDir","filterPackagesFromDir","bump","fs","childProcess","load"],"mappings":"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"}
1
+ {"version":3,"file":"index.iife.js","sources":["../src/utils/filterSupport.ts","../src/inner.ts","../src/utils/commondir.ts","../src/merge-package-json.ts","../src/commands/publish.ts","../src/commands/build.ts","../src/index.ts"],"sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { getWorkspaceDir } from '@jiek/utils/getWorkspaceDir'\nimport { filterPackagesFromDir } from '@pnpm/filter-workspace-packages'\nimport { program } from 'commander'\nimport { load } from 'js-yaml'\n\nexport let type = ''\n\ntry {\n require.resolve('@pnpm/filter-workspace-packages')\n type = 'pnpm'\n} catch { /* empty */ }\nif (type !== '') {\n program\n .option('-f, --filter <filter>', 'filter packages')\n}\n\ninterface ProjectsGraph {\n wd: string\n root: string\n value?: Record<string, {\n name?: string\n }>\n}\n\nexport async function getSelectedProjectsGraph(): Promise<ProjectsGraph> {\n let filter = program.getOptionValue('filter')\n const rootOption = program.getOptionValue('root')\n const root = rootOption\n ? path.isAbsolute(rootOption)\n ? rootOption\n : path.resolve(process.cwd(), rootOption)\n : process.cwd()\n let notWorkspace = false\n let wd: string\n try {\n wd = getWorkspaceDir(root, type)\n } catch (e) {\n // @ts-ignore\n if ('message' in e && e.message === 'workspace root not found') {\n wd = root\n notWorkspace = true\n } else {\n throw e\n }\n }\n if (!notWorkspace && type === 'pnpm') {\n const pnpmWorkspaceFilePath = path.resolve(wd, 'pnpm-workspace.yaml')\n const pnpmWorkspaceFileContent = fs.readFileSync(pnpmWorkspaceFilePath, 'utf-8')\n const pnpmWorkspace = load(pnpmWorkspaceFileContent) as {\n packages: string[]\n }\n if (root === wd && !filter) {\n throw new Error('root path is workspace root, please provide a filter')\n // TODO inquirer prompt support user select packages\n }\n if (root !== wd && !filter) {\n const packageJSONIsExist = fs.existsSync(path.resolve(root, 'package.json'))\n if (!packageJSONIsExist) {\n throw new Error('root path is not workspace root, please provide a filter')\n }\n const packageJSON = JSON.parse(fs.readFileSync(path.resolve(root, 'package.json'), 'utf-8'))\n if (!packageJSON.name) {\n throw new Error('root path is not workspace root, please provide a filter')\n }\n filter = packageJSON.name\n }\n const { selectedProjectsGraph } = await filterPackagesFromDir(wd, [{\n filter: filter ?? '',\n followProdDepsOnly: true\n }], {\n prefix: root,\n workspaceDir: wd,\n patterns: pnpmWorkspace.packages\n })\n return {\n wd, root,\n value: Object.entries(selectedProjectsGraph)\n .reduce((acc, [key, value]) => {\n acc[key] = value.package.manifest\n return acc\n }, {} as NonNullable<ProjectsGraph['value']>)\n }\n }\n return {\n wd, root,\n value: {\n [wd]: JSON.parse(fs.readFileSync(path.resolve(wd, 'package.json'), 'utf-8'))\n }\n }\n}\n","let resolve: () => void\n\nexport let actionFuture: Promise<void>\n\nexport function actionDone() {\n resolve()\n}\n\nexport function actionRestore() {\n actionFuture = new Promise<void>(r => resolve = r)\n}\n","import path from 'node:path'\n\nexport function commondir(files: string[], cwd = process.cwd()): string {\n const resolvedFiles = files.map(file => {\n if (path.isAbsolute(file)) return file\n return path.resolve(cwd, file)\n })\n const sep = '/'\n const [first = ''] = resolvedFiles\n const parts = first.split(sep)\n let common = ''\n for (let i = 0; i < parts.length; i++) {\n const segment = parts[i]\n if (resolvedFiles.every(file => file.startsWith(common + segment))) {\n common += segment + sep\n } else {\n break\n }\n }\n return common\n}\n","import path from 'node:path'\n\nimport { type Options, pkger } from '@jiek/pkger'\nimport type { Manifest } from '@pnpm/workspace.pkgs-graph'\n\nimport { commondir } from './utils/commondir'\n\nexport function mergePackageJson(manifest: Manifest & {\n jiek?: Options\n exports?: unknown | unknown[]\n}, cwd: string) {\n const {\n jiek: { cwd: _, ...jiek } = {}\n } = manifest\n let { exports } = manifest\n let includeIndex = false\n if (typeof exports === 'string') {\n includeIndex = true\n exports = { '.': exports }\n }\n if (exports === undefined) {\n exports = { '.': './src/index.ts' }\n }\n if (typeof exports === 'object') {\n if (Array.isArray(exports) && exports.length > 0) {\n includeIndex = true\n } else {\n includeIndex = !!(<Record<string, unknown>>exports)['.']\n }\n }\n const inputs = Array.isArray(exports)\n ? exports as string[]\n : Object\n .entries(<Record<string, unknown>>exports)\n .reduce((acc, [key, value]) => {\n if (typeof value === 'string') return key === '.'\n ? [value, ...acc]\n : acc.concat(value)\n if (Array.isArray(value)) return acc.concat(value)\n\n throw new TypeError(`Unexpected value type for key \"${key}\" in exports, expected string, got ${typeof value}`)\n }, [] as string[])\n if (inputs.length === 0)\n throw new Error('No inputs found')\n\n const absoluteInputs = inputs.map(input => path.isAbsolute(input)\n ? input\n : path.resolve(cwd, input)\n )\n let cDir = path.dirname(absoluteInputs[0])\n if (absoluteInputs.length > 1) {\n cDir = commondir(absoluteInputs, cwd)\n }\n const resolvedInputs = absoluteInputs.map(input => {\n return path.relative(cDir, input)\n })\n return {\n ...manifest,\n ...pkger({\n cwd,\n noIndex: !includeIndex,\n source: path.relative(cwd, cDir),\n inputs: resolvedInputs,\n ...jiek\n })\n }\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { bump, type BumperType } from '@jiek/utils/bumper'\nimport * as childProcess from 'child_process'\nimport { program } from 'commander'\nimport detectIndent from 'detect-indent'\nimport { applyEdits, modify } from 'jsonc-parser'\n\nimport { actionDone, actionRestore } from '../inner'\nimport { mergePackageJson } from '../merge-package-json'\nimport { getSelectedProjectsGraph } from '../utils/filterSupport'\n\nprogram\n .command('publish')\n .aliases(['pub', 'p'])\n .option('-b, --bumper <bumper>', 'bump version', 'patch')\n .option('-p, --preview', 'preview publish')\n .action(async ({ preview, bumper, ...options }: {\n preview?: boolean\n bumper: BumperType\n }) => {\n actionRestore()\n\n const { value = {} } = await getSelectedProjectsGraph() ?? {}\n const selectedProjectsGraphEntries = Object.entries(value)\n if (selectedProjectsGraphEntries.length === 0) {\n throw new Error('no packages selected')\n }\n const mainfests = selectedProjectsGraphEntries\n .map(([dir, manifest]) => [\n dir, mergePackageJson(manifest, dir)\n ] as const)\n const passArgs = Object\n .entries(options)\n .reduce((acc, [key, value]) => {\n if (value) {\n acc.push(`--${key}`, value as string)\n }\n return acc\n }, [] as string[])\n for (const [dir, manifest] of mainfests) {\n const oldJSONString = fs.readFileSync(path.join(dir, 'package.json'), 'utf-8')\n const oldJSON = JSON.parse(oldJSONString) ?? '0.0.0'\n const newVersion = bump(oldJSON.version, bumper)\n // TODO detectIndent by editorconfig\n const { indent = ' ' } = detectIndent(oldJSONString)\n const formattingOptions = {\n tabSize: indent.length,\n insertSpaces: true\n }\n let newJSONString = oldJSONString\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['version'], newVersion, { formattingOptions }\n ))\n for (const [key, value] of Object.entries(manifest)) {\n if (JSON.stringify(value) === JSON.stringify(oldJSON[key])) continue\n\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['publishConfig', key], value, { formattingOptions }\n ))\n }\n try {\n fs.renameSync(path.join(dir, 'package.json'), path.join(dir, 'package.json.bak'))\n fs.writeFileSync(path.join(dir, 'package.json'), newJSONString)\n console.log(newJSONString)\n if (preview) {\n console.warn('preview mode')\n continue\n }\n childProcess.execSync(['pnpm', 'publish', '--access', 'public', '--no-git-checks', ...passArgs].join(' '), {\n cwd: dir,\n stdio: 'inherit'\n })\n const modifyVersionPackageJSON = applyEdits(oldJSONString, modify(oldJSONString, ['version'], newVersion, {}))\n fs.writeFileSync(path.join(dir, 'package.json.bak'), modifyVersionPackageJSON)\n } finally {\n fs.unlinkSync(path.join(dir, 'package.json'))\n fs.renameSync(path.join(dir, 'package.json.bak'), path.join(dir, 'package.json'))\n }\n }\n actionDone()\n })\n","import * as childProcess from 'node:child_process'\nimport fs from 'node:fs'\nimport path from 'node:path'\n\nimport { program } from 'commander'\n\nimport { actionDone, actionRestore } from '../inner'\nimport { mergePackageJson } from '../merge-package-json'\nimport { getSelectedProjectsGraph } from '../utils/filterSupport'\n\nconst FILE_TEMPLATE = (manifest: unknown) => `\nconst pkg = ${JSON.stringify(manifest, null, 2)}\nconst { jiek = {} } = pkg\nconst templateArg = jiek.templateArgFilePath\n ? require.resolve(jiek.templateArgFilePath)\n : {\n styled: jiek.styled\n }\nmodule.exports = require('jiek/rollup').template(templateArg, pkg)\n`.trimStart()\n\nprogram\n .command('build')\n .action(async () => {\n actionRestore()\n const {\n wd, value = {}\n } = await getSelectedProjectsGraph() ?? {}\n\n if (Object.keys(value).length === 0) {\n throw new Error('no package found')\n }\n const jiekTempDir = (...paths: string[]) => path.resolve(wd, 'node_modules/.jiek', ...paths)\n if (!fs.existsSync(jiekTempDir())) fs.mkdirSync(jiekTempDir())\n\n const rollupBinaryPath = require.resolve('rollup')\n .replace(/dist\\/rollup.js$/, 'dist/bin/rollup')\n let i = 0\n for (const [dir, manifest] of Object.entries(value)) {\n const newManifest = mergePackageJson(manifest, dir)\n // TODO support auto build child packages in workspaces\n const escapeManifestName = manifest.name?.replace(/^@/g, '').replace(/\\//g, '+')\n const configFile = jiekTempDir(\n `${escapeManifestName ?? `anonymous-${i++}`}.rollup.config.js`\n )\n fs.writeFileSync(configFile, FILE_TEMPLATE(newManifest))\n let prefix = ''\n if (process.env.NODE_ENV === 'test') {\n const registerPath = require.resolve('esbuild-register')\n const loaderPath = require.resolve('esbuild-register/loader')\n prefix = `node --import ${registerPath} -r ${loaderPath} `\n }\n // TODO replace with `spawn` to support watch mode\n childProcess.execSync(`${prefix}${rollupBinaryPath} -c ${configFile}`, {\n cwd: dir, stdio: 'inherit'\n })\n }\n\n actionDone()\n })\n","import './utils/filterSupport'\nimport './commands/publish'\nimport './commands/build'\n\nimport { program } from 'commander'\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pkg = require('../package.json')\n\nprogram\n .version(pkg.version)\n .description(pkg.description)\n .option('--root <root>', 'root path')\n\nprogram.parse(process.argv)\n"],"names":["program","path","getWorkspaceDir","fs","load","filterPackagesFromDir","pkger","bumper","value","bump","detectIndent","applyEdits","modify","childProcess"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(e,r,t,o,a,s,n,i,l,c){"use strict";function p(e){return e&&e.__esModule?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var f=p(e),d=p(r),k=u(s),g=u(l);let m;function j(){m()}function y(){new Promise((e=>m=e))}function b(e,r){const{jiek:{inputs:t,cwd:o,...a}={},exports:s}=e,n=t??(Array.isArray(s)?s:void 0);return{...e,...i.pkger({inputs:n,cwd:r,...a})}}n.program.command("publish").aliases(["pub","p"]).option("--filter <filter>","filter packages").option("--root <root>","root path").option("--bumper <bumper>","bump version","patch").action((async({root:e,filter:r,bumper:s,...n})=>{y();const i=e?d.default.isAbsolute(e)?e:d.default.resolve(process.cwd(),e):process.cwd(),l=o.getWorkspaceDir(i),{selectedProjectsGraph:c}=await a.filterPackagesFromDir(l,[{filter:r??"",followProdDepsOnly:!0}],{prefix:i,workspaceDir:l,patterns:["packages/*"]}),p=[];Object.entries(c).forEach((([,{package:{dir:e,manifest:r}}])=>{p.push([e,b(r,e)])}));const u=Object.entries(n).reduce(((e,[r,t])=>(t&&e.push(`--${r}`,t),e)),[]);for(const[e,r]of p){const o=t.bump(r.version,s),a={...r,version:o};f.default.renameSync(d.default.join(e,"package.json"),d.default.join(e,"package.json.bak")),f.default.writeFileSync(d.default.join(e,"package.json"),JSON.stringify(a,null,2)),console.log(a);try{k.execSync(["pnpm","publish","--access","public","--no-git-checks",...u].join(" "),{cwd:e,stdio:"inherit"});const r=JSON.parse(f.default.readFileSync(d.default.join(e,"package.json.bak"),"utf-8"));r.version=o,f.default.writeFileSync(d.default.join(e,"package.json.bak"),JSON.stringify(r,null,2))}finally{f.default.unlinkSync(d.default.join(e,"package.json")),f.default.renameSync(d.default.join(e,"package.json.bak"),d.default.join(e,"package.json"))}}j()}));const w=e=>`\nconst pkg = ${JSON.stringify(e,null,2)}\nconst { jiek = {} } = pkg\nconst templateArg = jiek.templateArgFilePath\n ? require.resolve(jiek.templateArgFilePath)\n : {\n styled: jiek.styled\n }\nmodule.exports = require('${"test"===process.env.NODE_ENV?"jiek/src/rollup/index.ts":"jiek/rollup"}').template(templateArg, pkg)\n`.trimStart();n.program.command("build").option("--filter <filter>","filter packages").option("--root <root>","root path").action((async({root:e,filter:r,...t})=>{y();const s=e?d.default.isAbsolute(e)?e:d.default.resolve(process.cwd(),e):process.cwd(),n=o.getWorkspaceDir(s),i=d.default.resolve(n,"pnpm-workspace.yaml"),l=f.default.readFileSync(i,"utf-8"),p=c.load(l);if(s===n&&!r)throw new Error("root path is workspace root, please provide a filter");if(s!==n&&!r){if(!f.default.existsSync(d.default.resolve(s,"package.json")))throw new Error("root path is not workspace root, please provide a filter");const e=JSON.parse(f.default.readFileSync(d.default.resolve(s,"package.json"),"utf-8"));if(!e.name)throw new Error("root path is not workspace root, please provide a filter");r=e.name}const{selectedProjectsGraph:u}=await a.filterPackagesFromDir(n,[{filter:r??"",followProdDepsOnly:!0}],{prefix:s,workspaceDir:n,patterns:p.packages}),k=(...e)=>d.default.resolve(n,"node_modules/.jiek",...e);f.default.existsSync(k())||f.default.mkdirSync(k());const m=require.resolve("rollup").replace(/dist\/rollup.js$/,"dist/bin/rollup");let h=0;for(const[e,{package:{manifest:r}}]of Object.entries(u)){const t=b(r,e),o=r.name?.replace(/^@/g,"").replace(/\//g,"+"),a=k(`${o??"anonymous-"+h++}.rollup.config.js`);f.default.writeFileSync(a,w(t));let s="";if("test"===process.env.NODE_ENV){s=`node --import ${require.resolve("esbuild-register")} -r ${require.resolve("esbuild-register/loader")} `}g.execSync(`${s}${m} -c ${a}`,{cwd:e,stdio:"inherit"})}j()})),n.program.parse(process.argv)}(fs,path,bumper,getWorkspaceDir,filterWorkspacePackages,childProcess,commander,pkger,childProcess$1,jsYaml);
1
+ !function(e,t,r,o,n,a,s,i,l,c,p,u){"use strict";function f(e){return e&&e.__esModule?e:{default:e}}function d(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var g=f(e),m=f(t),y=d(i),k=f(l),j=d(u);let w,v="";try{require.resolve("@pnpm/filter-workspace-packages"),v="pnpm"}catch{}async function b(){let e=n.program.getOptionValue("filter");const t=n.program.getOptionValue("root"),s=t?m.default.isAbsolute(t)?t:m.default.resolve(process.cwd(),t):process.cwd();let i,l=!1;try{i=r.getWorkspaceDir(s,v)}catch(e){if(!("message"in e)||"workspace root not found"!==e.message)throw e;i=s,l=!0}if(!l&&"pnpm"===v){const t=m.default.resolve(i,"pnpm-workspace.yaml"),r=g.default.readFileSync(t,"utf-8"),n=a.load(r);if(s===i&&!e)throw new Error("root path is workspace root, please provide a filter");if(s!==i&&!e){if(!g.default.existsSync(m.default.resolve(s,"package.json")))throw new Error("root path is not workspace root, please provide a filter");const t=JSON.parse(g.default.readFileSync(m.default.resolve(s,"package.json"),"utf-8"));if(!t.name)throw new Error("root path is not workspace root, please provide a filter");e=t.name}const{selectedProjectsGraph:l}=await o.filterPackagesFromDir(i,[{filter:e??"",followProdDepsOnly:!0}],{prefix:s,workspaceDir:i,patterns:n.packages});return{wd:i,root:s,value:Object.entries(l).reduce(((e,[t,r])=>(e[t]=r.package.manifest,e)),{})}}return{wd:i,root:s,value:{[i]:JSON.parse(g.default.readFileSync(m.default.resolve(i,"package.json"),"utf-8"))}}}function h(){w()}function O(){new Promise((e=>w=e))}function S(e,t){const{jiek:{cwd:r,...o}={}}=e;let{exports:n}=e,a=!1;"string"==typeof n&&(a=!0,n={".":n}),void 0===n&&(n={".":"./src/index.ts"}),"object"==typeof n&&(a=!!(Array.isArray(n)&&n.length>0)||!!n["."]);const s=Array.isArray(n)?n:Object.entries(n).reduce(((e,[t,r])=>{if("string"==typeof r)return"."===t?[r,...e]:e.concat(r);if(Array.isArray(r))return e.concat(r);throw new TypeError(`Unexpected value type for key "${t}" in exports, expected string, got ${typeof r}`)}),[]);if(0===s.length)throw new Error("No inputs found");const i=s.map((e=>m.default.isAbsolute(e)?e:m.default.resolve(t,e)));let l=m.default.dirname(i[0]);i.length>1&&(l=function(e,t=process.cwd()){const r=e.map((e=>m.default.isAbsolute(e)?e:m.default.resolve(t,e))),[o=""]=r,n=o.split("/");let a="";for(let e=0;e<n.length;e++){const t=n[e];if(!r.every((e=>e.startsWith(a+t))))break;a+=t+"/"}return a}(i,t));const c=i.map((e=>m.default.relative(l,e)));return{...e,...p.pkger({cwd:t,noIndex:!a,source:m.default.relative(t,l),inputs:c,...o})}}""!==v&&n.program.option("-f, --filter <filter>","filter packages"),n.program.command("publish").aliases(["pub","p"]).option("-b, --bumper <bumper>","bump version","patch").option("-p, --preview","preview publish").action((async({preview:e,bumper:t,...r})=>{O();const{value:o={}}=await b()??{},n=Object.entries(o);if(0===n.length)throw new Error("no packages selected");const a=n.map((([e,t])=>[e,S(t,e)])),i=Object.entries(r).reduce(((e,[t,r])=>(r&&e.push(`--${t}`,r),e)),[]);for(const[r,o]of a){const n=g.default.readFileSync(m.default.join(r,"package.json"),"utf-8"),a=JSON.parse(n)??"0.0.0",l=s.bump(a.version,t),{indent:p=" "}=k.default(n),u={tabSize:p.length,insertSpaces:!0};let f=n;f=c.applyEdits(f,c.modify(f,["version"],l,{formattingOptions:u}));for(const[e,t]of Object.entries(o))JSON.stringify(t)!==JSON.stringify(a[e])&&(f=c.applyEdits(f,c.modify(f,["publishConfig",e],t,{formattingOptions:u})));try{if(g.default.renameSync(m.default.join(r,"package.json"),m.default.join(r,"package.json.bak")),g.default.writeFileSync(m.default.join(r,"package.json"),f),console.log(f),e){console.warn("preview mode");continue}y.execSync(["pnpm","publish","--access","public","--no-git-checks",...i].join(" "),{cwd:r,stdio:"inherit"});const t=c.applyEdits(n,c.modify(n,["version"],l,{}));g.default.writeFileSync(m.default.join(r,"package.json.bak"),t)}finally{g.default.unlinkSync(m.default.join(r,"package.json")),g.default.renameSync(m.default.join(r,"package.json.bak"),m.default.join(r,"package.json"))}}h()}));const A=e=>`\nconst pkg = ${JSON.stringify(e,null,2)}\nconst { jiek = {} } = pkg\nconst templateArg = jiek.templateArgFilePath\n ? require.resolve(jiek.templateArgFilePath)\n : {\n styled: jiek.styled\n }\nmodule.exports = require('jiek/rollup').template(templateArg, pkg)\n`.trimStart();n.program.command("build").action((async()=>{O();const{wd:e,value:t={}}=await b()??{};if(0===Object.keys(t).length)throw new Error("no package found");const r=(...t)=>m.default.resolve(e,"node_modules/.jiek",...t);g.default.existsSync(r())||g.default.mkdirSync(r());const o=require.resolve("rollup").replace(/dist\/rollup.js$/,"dist/bin/rollup");let n=0;for(const[e,a]of Object.entries(t)){const t=S(a,e),s=a.name?.replace(/^@/g,"").replace(/\//g,"+"),i=r(`${s??"anonymous-"+n++}.rollup.config.js`);g.default.writeFileSync(i,A(t));let l="";if("test"===process.env.NODE_ENV){l=`node --import ${require.resolve("esbuild-register")} -r ${require.resolve("esbuild-register/loader")} `}j.execSync(`${l}${o} -c ${i}`,{cwd:e,stdio:"inherit"})}h()}));const E=require("../package.json");n.program.version(E.version).description(E.description).option("--root <root>","root path"),n.program.parse(process.argv)}(fs,path,getWorkspaceDir,filterWorkspacePackages,commander,jsYaml,bumper,childProcess,detectIndent,jsoncParser,pkger,childProcess$1);
2
2
  //# sourceMappingURL=index.iife.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.iife.min.js","sources":["../src/inner.ts","../src/merge-package-json.ts","../src/commands/publish.ts","../src/commands/build.ts","../src/index.ts"],"sourcesContent":["let resolve: () => void\n\nexport let actionFuture: Promise<void>\n\nexport function actionDone() {\n resolve()\n}\n\nexport function actionRestore() {\n actionFuture = new Promise<void>(r => resolve = r)\n}\n","import { type Options, pkger } from '@jiek/pkger'\nimport type { PackageJson } from '@npm/types'\nimport type { Manifest } from '@pnpm/workspace.pkgs-graph'\n\nexport function mergePackageJson(manifest: Manifest & {\n jiek?: Options\n exports?: unknown | unknown[]\n}, cwd: string) {\n const {\n jiek: { inputs: jiekInputs, cwd: _, ...jiek } = {}, exports\n } = manifest\n const inputs = jiekInputs ?? (\n Array.isArray(exports) ? exports : undefined\n )\n return {\n ...manifest,\n ...pkger({ inputs, cwd, ...jiek })\n } as PackageJson\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { bump, type BumperType } from '@jiek/utils/bumper'\nimport { getWorkspaceDir } from '@jiek/utils/getWorkspaceDir'\nimport type { PackageJson } from '@npm/types'\nimport { filterPackagesFromDir } from '@pnpm/filter-workspace-packages'\nimport * as childProcess from 'child_process'\nimport { program } from 'commander'\n\nimport { actionDone, actionRestore } from '../inner'\nimport { mergePackageJson } from '../merge-package-json'\n\nprogram\n .command('publish')\n .aliases(['pub', 'p'])\n .option('--filter <filter>', 'filter packages')\n .option('--root <root>', 'root path')\n .option('--bumper <bumper>', 'bump version', 'patch')\n .action(async ({ root: rootOption, filter, bumper, ...options }: {\n root?: string\n filter?: string\n bumper: BumperType\n }) => {\n actionRestore()\n const root = rootOption\n ? path.isAbsolute(rootOption)\n ? rootOption\n : path.resolve(process.cwd(), rootOption)\n : process.cwd()\n const wd = getWorkspaceDir(root)\n const { selectedProjectsGraph } = await filterPackagesFromDir(wd, [{\n filter: filter ?? '',\n followProdDepsOnly: true\n }], {\n prefix: root,\n workspaceDir: wd,\n patterns: ['packages/*']\n })\n const mainfests: [dir: string, PackageJson][] = []\n Object\n .entries(selectedProjectsGraph)\n .forEach(([, { package: { dir, manifest } }]) => {\n mainfests.push([\n dir, mergePackageJson(manifest, dir)\n ])\n })\n const passArgs = Object\n .entries(options)\n .reduce((acc, [key, value]) => {\n if (value) {\n acc.push(`--${key}`, value as string)\n }\n return acc\n }, [] as string[])\n for (const [dir, m] of mainfests) {\n const newVersion = bump(m.version, bumper)\n const newManifest = {\n ...m,\n version: newVersion\n }\n fs.renameSync(path.join(dir, 'package.json'), path.join(dir, 'package.json.bak'))\n fs.writeFileSync(path.join(dir, 'package.json'), JSON.stringify(newManifest, null, 2))\n console.log(newManifest)\n try {\n childProcess.execSync(['pnpm', 'publish', '--access', 'public', '--no-git-checks', ...passArgs].join(' '), {\n cwd: dir,\n stdio: 'inherit'\n })\n const oldPackageJson = JSON.parse(fs.readFileSync(path.join(dir, 'package.json.bak'), 'utf-8'))\n oldPackageJson.version = newVersion\n fs.writeFileSync(path.join(dir, 'package.json.bak'), JSON.stringify(oldPackageJson, null, 2))\n } finally {\n fs.unlinkSync(path.join(dir, 'package.json'))\n fs.renameSync(path.join(dir, 'package.json.bak'), path.join(dir, 'package.json'))\n }\n }\n actionDone()\n })\n","import * as childProcess from 'node:child_process'\nimport fs from 'node:fs'\nimport path from 'node:path'\n\nimport { getWorkspaceDir } from '@jiek/utils/getWorkspaceDir'\nimport { filterPackagesFromDir } from '@pnpm/filter-workspace-packages'\nimport { program } from 'commander'\nimport { load } from 'js-yaml'\n\nimport { actionDone, actionRestore } from '../inner'\nimport { mergePackageJson } from '../merge-package-json'\n\nconst FILE_TEMPLATE = (manifest: unknown) => `\nconst pkg = ${JSON.stringify(manifest, null, 2)}\nconst { jiek = {} } = pkg\nconst templateArg = jiek.templateArgFilePath\n ? require.resolve(jiek.templateArgFilePath)\n : {\n styled: jiek.styled\n }\nmodule.exports = require('${\n process.env.NODE_ENV === 'test'\n ? 'jiek/src/rollup/index.ts'\n : 'jiek/rollup'\n}').template(templateArg, pkg)\n`.trimStart()\n\nprogram\n .command('build')\n .option('--filter <filter>', 'filter packages')\n .option('--root <root>', 'root path')\n .action(async ({ root: rootOption, filter, ...options }: {\n root?: string\n filter?: string\n }) => {\n actionRestore()\n const root = rootOption\n ? path.isAbsolute(rootOption)\n ? rootOption\n : path.resolve(process.cwd(), rootOption)\n : process.cwd()\n const wd = getWorkspaceDir(root)\n const pnpmWorkspaceFilePath = path.resolve(wd, 'pnpm-workspace.yaml')\n const pnpmWorkspaceFileContent = fs.readFileSync(pnpmWorkspaceFilePath, 'utf-8')\n const pnpmWorkspace = load(pnpmWorkspaceFileContent) as {\n packages: string[]\n }\n if (root === wd && !filter) {\n throw new Error('root path is workspace root, please provide a filter')\n // TODO inquirer prompt support user select packages\n }\n if (root !== wd && !filter) {\n const packageJSONIsExist = fs.existsSync(path.resolve(root, 'package.json'))\n if (!packageJSONIsExist) {\n throw new Error('root path is not workspace root, please provide a filter')\n }\n const packageJSON = JSON.parse(fs.readFileSync(path.resolve(root, 'package.json'), 'utf-8'))\n if (!packageJSON.name) {\n throw new Error('root path is not workspace root, please provide a filter')\n }\n filter = packageJSON.name\n }\n const { selectedProjectsGraph } = await filterPackagesFromDir(wd, [{\n filter: filter ?? '',\n followProdDepsOnly: true\n }], {\n prefix: root,\n workspaceDir: wd,\n patterns: pnpmWorkspace.packages\n })\n const jiekTempDir = (...paths: string[]) => path.resolve(wd, 'node_modules/.jiek', ...paths)\n if (!fs.existsSync(jiekTempDir())) fs.mkdirSync(jiekTempDir())\n\n const rollupBinaryPath = require.resolve('rollup')\n .replace(/dist\\/rollup.js$/, 'dist/bin/rollup')\n let i = 0\n for (const [dir, { package: { manifest } }] of Object.entries(selectedProjectsGraph)) {\n const newManifest = mergePackageJson(manifest, dir)\n // TODO support auto build child packages in workspaces\n const escapeManifestName = manifest.name?.replace(/^@/g, '').replace(/\\//g, '+')\n const configFile = jiekTempDir(\n `${escapeManifestName ?? `anonymous-${i++}`}.rollup.config.js`\n )\n fs.writeFileSync(configFile, FILE_TEMPLATE(newManifest))\n let prefix = ''\n if (process.env.NODE_ENV === 'test') {\n const registerPath = require.resolve('esbuild-register')\n const loaderPath = require.resolve('esbuild-register/loader')\n prefix = `node --import ${registerPath} -r ${loaderPath} `\n }\n // TODO replace with `spawn` to support watch mode\n childProcess.execSync(`${prefix}${rollupBinaryPath} -c ${configFile}`, {\n cwd: dir, stdio: 'inherit'\n })\n }\n\n actionDone()\n })\n","import './commands/publish'\nimport './commands/build'\n\nimport { program } from 'commander'\n\nprogram.parse(process.argv)\n"],"names":["resolve","actionDone","actionRestore","Promise","r","mergePackageJson","manifest","cwd","jiek","inputs","jiekInputs","_","exports","Array","isArray","pkger","commander","program","command","aliases","option","action","async","root","rootOption","filter","bumper","options","path","isAbsolute","process","wd","getWorkspaceDir","selectedProjectsGraph","filterPackagesFromDir","followProdDepsOnly","prefix","workspaceDir","patterns","mainfests","Object","entries","forEach","package","dir","push","passArgs","reduce","acc","key","value","m","newVersion","bump","version","newManifest","fs","renameSync","join","writeFileSync","JSON","stringify","console","log","childProcess","execSync","stdio","oldPackageJson","parse","default","readFileSync","unlinkSync","FILE_TEMPLATE","env","NODE_ENV","trimStart","pnpmWorkspaceFilePath","pnpmWorkspaceFileContent","pnpmWorkspace","load","Error","existsSync","packageJSON","name","packages","jiekTempDir","paths","mkdirSync","rollupBinaryPath","require","replace","i","escapeManifestName","configFile","argv"],"mappings":"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"}
1
+ {"version":3,"file":"index.iife.min.js","sources":["../src/utils/filterSupport.ts","../src/inner.ts","../src/merge-package-json.ts","../src/utils/commondir.ts","../src/commands/publish.ts","../src/commands/build.ts","../src/index.ts"],"sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { getWorkspaceDir } from '@jiek/utils/getWorkspaceDir'\nimport { filterPackagesFromDir } from '@pnpm/filter-workspace-packages'\nimport { program } from 'commander'\nimport { load } from 'js-yaml'\n\nexport let type = ''\n\ntry {\n require.resolve('@pnpm/filter-workspace-packages')\n type = 'pnpm'\n} catch { /* empty */ }\nif (type !== '') {\n program\n .option('-f, --filter <filter>', 'filter packages')\n}\n\ninterface ProjectsGraph {\n wd: string\n root: string\n value?: Record<string, {\n name?: string\n }>\n}\n\nexport async function getSelectedProjectsGraph(): Promise<ProjectsGraph> {\n let filter = program.getOptionValue('filter')\n const rootOption = program.getOptionValue('root')\n const root = rootOption\n ? path.isAbsolute(rootOption)\n ? rootOption\n : path.resolve(process.cwd(), rootOption)\n : process.cwd()\n let notWorkspace = false\n let wd: string\n try {\n wd = getWorkspaceDir(root, type)\n } catch (e) {\n // @ts-ignore\n if ('message' in e && e.message === 'workspace root not found') {\n wd = root\n notWorkspace = true\n } else {\n throw e\n }\n }\n if (!notWorkspace && type === 'pnpm') {\n const pnpmWorkspaceFilePath = path.resolve(wd, 'pnpm-workspace.yaml')\n const pnpmWorkspaceFileContent = fs.readFileSync(pnpmWorkspaceFilePath, 'utf-8')\n const pnpmWorkspace = load(pnpmWorkspaceFileContent) as {\n packages: string[]\n }\n if (root === wd && !filter) {\n throw new Error('root path is workspace root, please provide a filter')\n // TODO inquirer prompt support user select packages\n }\n if (root !== wd && !filter) {\n const packageJSONIsExist = fs.existsSync(path.resolve(root, 'package.json'))\n if (!packageJSONIsExist) {\n throw new Error('root path is not workspace root, please provide a filter')\n }\n const packageJSON = JSON.parse(fs.readFileSync(path.resolve(root, 'package.json'), 'utf-8'))\n if (!packageJSON.name) {\n throw new Error('root path is not workspace root, please provide a filter')\n }\n filter = packageJSON.name\n }\n const { selectedProjectsGraph } = await filterPackagesFromDir(wd, [{\n filter: filter ?? '',\n followProdDepsOnly: true\n }], {\n prefix: root,\n workspaceDir: wd,\n patterns: pnpmWorkspace.packages\n })\n return {\n wd, root,\n value: Object.entries(selectedProjectsGraph)\n .reduce((acc, [key, value]) => {\n acc[key] = value.package.manifest\n return acc\n }, {} as NonNullable<ProjectsGraph['value']>)\n }\n }\n return {\n wd, root,\n value: {\n [wd]: JSON.parse(fs.readFileSync(path.resolve(wd, 'package.json'), 'utf-8'))\n }\n }\n}\n","let resolve: () => void\n\nexport let actionFuture: Promise<void>\n\nexport function actionDone() {\n resolve()\n}\n\nexport function actionRestore() {\n actionFuture = new Promise<void>(r => resolve = r)\n}\n","import path from 'node:path'\n\nimport { type Options, pkger } from '@jiek/pkger'\nimport type { Manifest } from '@pnpm/workspace.pkgs-graph'\n\nimport { commondir } from './utils/commondir'\n\nexport function mergePackageJson(manifest: Manifest & {\n jiek?: Options\n exports?: unknown | unknown[]\n}, cwd: string) {\n const {\n jiek: { cwd: _, ...jiek } = {}\n } = manifest\n let { exports } = manifest\n let includeIndex = false\n if (typeof exports === 'string') {\n includeIndex = true\n exports = { '.': exports }\n }\n if (exports === undefined) {\n exports = { '.': './src/index.ts' }\n }\n if (typeof exports === 'object') {\n if (Array.isArray(exports) && exports.length > 0) {\n includeIndex = true\n } else {\n includeIndex = !!(<Record<string, unknown>>exports)['.']\n }\n }\n const inputs = Array.isArray(exports)\n ? exports as string[]\n : Object\n .entries(<Record<string, unknown>>exports)\n .reduce((acc, [key, value]) => {\n if (typeof value === 'string') return key === '.'\n ? [value, ...acc]\n : acc.concat(value)\n if (Array.isArray(value)) return acc.concat(value)\n\n throw new TypeError(`Unexpected value type for key \"${key}\" in exports, expected string, got ${typeof value}`)\n }, [] as string[])\n if (inputs.length === 0)\n throw new Error('No inputs found')\n\n const absoluteInputs = inputs.map(input => path.isAbsolute(input)\n ? input\n : path.resolve(cwd, input)\n )\n let cDir = path.dirname(absoluteInputs[0])\n if (absoluteInputs.length > 1) {\n cDir = commondir(absoluteInputs, cwd)\n }\n const resolvedInputs = absoluteInputs.map(input => {\n return path.relative(cDir, input)\n })\n return {\n ...manifest,\n ...pkger({\n cwd,\n noIndex: !includeIndex,\n source: path.relative(cwd, cDir),\n inputs: resolvedInputs,\n ...jiek\n })\n }\n}\n","import path from 'node:path'\n\nexport function commondir(files: string[], cwd = process.cwd()): string {\n const resolvedFiles = files.map(file => {\n if (path.isAbsolute(file)) return file\n return path.resolve(cwd, file)\n })\n const sep = '/'\n const [first = ''] = resolvedFiles\n const parts = first.split(sep)\n let common = ''\n for (let i = 0; i < parts.length; i++) {\n const segment = parts[i]\n if (resolvedFiles.every(file => file.startsWith(common + segment))) {\n common += segment + sep\n } else {\n break\n }\n }\n return common\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { bump, type BumperType } from '@jiek/utils/bumper'\nimport * as childProcess from 'child_process'\nimport { program } from 'commander'\nimport detectIndent from 'detect-indent'\nimport { applyEdits, modify } from 'jsonc-parser'\n\nimport { actionDone, actionRestore } from '../inner'\nimport { mergePackageJson } from '../merge-package-json'\nimport { getSelectedProjectsGraph } from '../utils/filterSupport'\n\nprogram\n .command('publish')\n .aliases(['pub', 'p'])\n .option('-b, --bumper <bumper>', 'bump version', 'patch')\n .option('-p, --preview', 'preview publish')\n .action(async ({ preview, bumper, ...options }: {\n preview?: boolean\n bumper: BumperType\n }) => {\n actionRestore()\n\n const { value = {} } = await getSelectedProjectsGraph() ?? {}\n const selectedProjectsGraphEntries = Object.entries(value)\n if (selectedProjectsGraphEntries.length === 0) {\n throw new Error('no packages selected')\n }\n const mainfests = selectedProjectsGraphEntries\n .map(([dir, manifest]) => [\n dir, mergePackageJson(manifest, dir)\n ] as const)\n const passArgs = Object\n .entries(options)\n .reduce((acc, [key, value]) => {\n if (value) {\n acc.push(`--${key}`, value as string)\n }\n return acc\n }, [] as string[])\n for (const [dir, manifest] of mainfests) {\n const oldJSONString = fs.readFileSync(path.join(dir, 'package.json'), 'utf-8')\n const oldJSON = JSON.parse(oldJSONString) ?? '0.0.0'\n const newVersion = bump(oldJSON.version, bumper)\n // TODO detectIndent by editorconfig\n const { indent = ' ' } = detectIndent(oldJSONString)\n const formattingOptions = {\n tabSize: indent.length,\n insertSpaces: true\n }\n let newJSONString = oldJSONString\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['version'], newVersion, { formattingOptions }\n ))\n for (const [key, value] of Object.entries(manifest)) {\n if (JSON.stringify(value) === JSON.stringify(oldJSON[key])) continue\n\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['publishConfig', key], value, { formattingOptions }\n ))\n }\n try {\n fs.renameSync(path.join(dir, 'package.json'), path.join(dir, 'package.json.bak'))\n fs.writeFileSync(path.join(dir, 'package.json'), newJSONString)\n console.log(newJSONString)\n if (preview) {\n console.warn('preview mode')\n continue\n }\n childProcess.execSync(['pnpm', 'publish', '--access', 'public', '--no-git-checks', ...passArgs].join(' '), {\n cwd: dir,\n stdio: 'inherit'\n })\n const modifyVersionPackageJSON = applyEdits(oldJSONString, modify(oldJSONString, ['version'], newVersion, {}))\n fs.writeFileSync(path.join(dir, 'package.json.bak'), modifyVersionPackageJSON)\n } finally {\n fs.unlinkSync(path.join(dir, 'package.json'))\n fs.renameSync(path.join(dir, 'package.json.bak'), path.join(dir, 'package.json'))\n }\n }\n actionDone()\n })\n","import * as childProcess from 'node:child_process'\nimport fs from 'node:fs'\nimport path from 'node:path'\n\nimport { program } from 'commander'\n\nimport { actionDone, actionRestore } from '../inner'\nimport { mergePackageJson } from '../merge-package-json'\nimport { getSelectedProjectsGraph } from '../utils/filterSupport'\n\nconst FILE_TEMPLATE = (manifest: unknown) => `\nconst pkg = ${JSON.stringify(manifest, null, 2)}\nconst { jiek = {} } = pkg\nconst templateArg = jiek.templateArgFilePath\n ? require.resolve(jiek.templateArgFilePath)\n : {\n styled: jiek.styled\n }\nmodule.exports = require('jiek/rollup').template(templateArg, pkg)\n`.trimStart()\n\nprogram\n .command('build')\n .action(async () => {\n actionRestore()\n const {\n wd, value = {}\n } = await getSelectedProjectsGraph() ?? {}\n\n if (Object.keys(value).length === 0) {\n throw new Error('no package found')\n }\n const jiekTempDir = (...paths: string[]) => path.resolve(wd, 'node_modules/.jiek', ...paths)\n if (!fs.existsSync(jiekTempDir())) fs.mkdirSync(jiekTempDir())\n\n const rollupBinaryPath = require.resolve('rollup')\n .replace(/dist\\/rollup.js$/, 'dist/bin/rollup')\n let i = 0\n for (const [dir, manifest] of Object.entries(value)) {\n const newManifest = mergePackageJson(manifest, dir)\n // TODO support auto build child packages in workspaces\n const escapeManifestName = manifest.name?.replace(/^@/g, '').replace(/\\//g, '+')\n const configFile = jiekTempDir(\n `${escapeManifestName ?? `anonymous-${i++}`}.rollup.config.js`\n )\n fs.writeFileSync(configFile, FILE_TEMPLATE(newManifest))\n let prefix = ''\n if (process.env.NODE_ENV === 'test') {\n const registerPath = require.resolve('esbuild-register')\n const loaderPath = require.resolve('esbuild-register/loader')\n prefix = `node --import ${registerPath} -r ${loaderPath} `\n }\n // TODO replace with `spawn` to support watch mode\n childProcess.execSync(`${prefix}${rollupBinaryPath} -c ${configFile}`, {\n cwd: dir, stdio: 'inherit'\n })\n }\n\n actionDone()\n })\n","import './utils/filterSupport'\nimport './commands/publish'\nimport './commands/build'\n\nimport { program } from 'commander'\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pkg = require('../package.json')\n\nprogram\n .version(pkg.version)\n .description(pkg.description)\n .option('--root <root>', 'root path')\n\nprogram.parse(process.argv)\n"],"names":["resolve","type","require","async","getSelectedProjectsGraph","filter","program","getOptionValue","rootOption","root","path","isAbsolute","process","cwd","wd","notWorkspace","getWorkspaceDir","e","message","pnpmWorkspaceFilePath","default","pnpmWorkspaceFileContent","fs","readFileSync","pnpmWorkspace","load","Error","existsSync","packageJSON","JSON","parse","name","selectedProjectsGraph","filterPackagesFromDir","followProdDepsOnly","prefix","workspaceDir","patterns","packages","value","Object","entries","reduce","acc","key","package","manifest","actionDone","actionRestore","Promise","r","mergePackageJson","jiek","_","exports","includeIndex","Array","isArray","length","inputs","concat","TypeError","absoluteInputs","map","input","cDir","dirname","files","resolvedFiles","file","first","parts","split","common","i","segment","every","startsWith","commondir","resolvedInputs","relative","pkger","noIndex","source","option","command","aliases","action","preview","bumper","options","selectedProjectsGraphEntries","mainfests","dir","passArgs","push","oldJSONString","join","oldJSON","newVersion","bump","version","indent","detectIndent","formattingOptions","tabSize","insertSpaces","newJSONString","applyEdits","modify","stringify","renameSync","writeFileSync","console","log","warn","childProcess","execSync","stdio","modifyVersionPackageJSON","unlinkSync","FILE_TEMPLATE","trimStart","commander","keys","jiekTempDir","paths","mkdirSync","rollupBinaryPath","replace","newManifest","escapeManifestName","configFile","env","NODE_ENV","pkg","description","argv"],"mappings":"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"}