@sapphire/docusaurus-plugin-npm2yarn2pnpm 2.0.2-next.fafceb7.0 → 2.0.3-next.c24a7a0.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/CHANGELOG.md +14 -0
- package/dist/{index.js → cjs/index.cjs} +31 -54
- package/dist/{index.mjs → esm/index.mjs} +27 -15
- package/dist/esm/index.mjs.map +1 -0
- package/package.json +13 -12
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- /package/dist/{index.d.mts → cjs/index.d.cts} +0 -0
- /package/dist/{index.d.ts → esm/index.d.mts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
# [@sapphire/docusaurus-plugin-npm2yarn2pnpm@2.0.2](https://github.com/sapphiredev/documentation-plugins/compare/@sapphire/docusaurus-plugin-npm2yarn2pnpm@2.0.2...@sapphire/docusaurus-plugin-npm2yarn2pnpm@2.0.2) - (2024-01-19)
|
|
6
|
+
|
|
7
|
+
## 🐛 Bug Fixes
|
|
8
|
+
|
|
9
|
+
- Properly split CJS and ESM (#228) ([ea4951c](https://github.com/sapphiredev/documentation-plugins/commit/ea4951cb04eea5f6c5d1882b68e1ae42ed73e3ea))
|
|
10
|
+
|
|
11
|
+
## 📝 Documentation
|
|
12
|
+
|
|
13
|
+
- Incorrect syntax in readme of ts2esm2cjs & npm2yarn2pnpm (#203) ([621df18](https://github.com/sapphiredev/documentation-plugins/commit/621df18aaa89d8f82887c5124ebc681cfec8986c))
|
|
14
|
+
|
|
15
|
+
## 🧪 Testing
|
|
16
|
+
|
|
17
|
+
- Fix test config ([7b4a6ab](https://github.com/sapphiredev/documentation-plugins/commit/7b4a6ab7732e5e886a40f31d5adb27874a04e43b))
|
|
18
|
+
|
|
5
19
|
# [@sapphire/docusaurus-plugin-npm2yarn2pnpm@2.0.1](https://github.com/sapphiredev/documentation-plugins/compare/@sapphire/docusaurus-plugin-npm2yarn2pnpm@2.0.1...@sapphire/docusaurus-plugin-npm2yarn2pnpm@2.0.1) - (2023-11-05)
|
|
6
20
|
|
|
7
21
|
## 🐛 Bug Fixes
|
|
@@ -1,41 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
'use strict';
|
|
29
2
|
|
|
30
|
-
|
|
31
|
-
var
|
|
32
|
-
__export(src_exports, {
|
|
33
|
-
convertNpmToPackageManagers: () => convertNpmToPackageManagers,
|
|
34
|
-
npmToBun: () => npmToBun,
|
|
35
|
-
npmToPnpm: () => npmToPnpm,
|
|
36
|
-
npmToYarn: () => npmToYarn
|
|
37
|
-
});
|
|
38
|
-
module.exports = __toCommonJS(src_exports);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
39
5
|
|
|
40
6
|
// src/npm2bun.ts
|
|
41
7
|
var unchangedCLICommands = ["init", "run", "test", "login", "logout", "link", "publish", "cache"];
|
|
@@ -45,6 +11,7 @@ function parseNpmInstall(command, isShortHand = false) {
|
|
|
45
11
|
}
|
|
46
12
|
return command.replace(isShortHand ? "i " : "install ", "add ").replace(/(\s*)--save(?!-)/, "$1--save-prod").replace("--no-package-lock", "");
|
|
47
13
|
}
|
|
14
|
+
__name(parseNpmInstall, "parseNpmInstall");
|
|
48
15
|
var npmToBunTable = {
|
|
49
16
|
install(command) {
|
|
50
17
|
return parseNpmInstall(command);
|
|
@@ -78,9 +45,11 @@ function convert(_, command) {
|
|
|
78
45
|
return `bun ${command}
|
|
79
46
|
# couldn't auto-convert command`;
|
|
80
47
|
}
|
|
48
|
+
__name(convert, "convert");
|
|
81
49
|
function npmToBun(str) {
|
|
82
50
|
return str.replace(/npm(?: +([^&\n\r]*))?/gm, convert);
|
|
83
51
|
}
|
|
52
|
+
__name(npmToBun, "npmToBun");
|
|
84
53
|
|
|
85
54
|
// src/npm2pnpm.ts
|
|
86
55
|
var unchangedCLICommands2 = ["init", "run", "test", "login", "logout", "link", "publish", "cache"];
|
|
@@ -90,6 +59,7 @@ function parseNpmInstall2(command, isShortHand = false) {
|
|
|
90
59
|
}
|
|
91
60
|
return command.replace(isShortHand ? "i " : "install ", "add ").replace(/(\s*)--save(?!-)/, "$1--save-prod").replace("--no-package-lock", "");
|
|
92
61
|
}
|
|
62
|
+
__name(parseNpmInstall2, "parseNpmInstall");
|
|
93
63
|
var npmToPnpmTable = {
|
|
94
64
|
install(command) {
|
|
95
65
|
return parseNpmInstall2(command);
|
|
@@ -123,9 +93,11 @@ function convert2(_, command) {
|
|
|
123
93
|
return `pnpm ${command}
|
|
124
94
|
# couldn't auto-convert command`;
|
|
125
95
|
}
|
|
96
|
+
__name(convert2, "convert");
|
|
126
97
|
function npmToPnpm(str) {
|
|
127
98
|
return str.replace(/npm(?: +([^&\n\r]*))?/gm, convert2);
|
|
128
99
|
}
|
|
100
|
+
__name(npmToPnpm, "npmToPnpm");
|
|
129
101
|
|
|
130
102
|
// src/npm2yarn.ts
|
|
131
103
|
var unchangedCLICommands3 = ["test", "login", "logout", "link", "publish", "cache"];
|
|
@@ -179,6 +151,7 @@ function parseNpmInstall3(command, isShortHand = false) {
|
|
|
179
151
|
}
|
|
180
152
|
return yarnAddCommand;
|
|
181
153
|
}
|
|
154
|
+
__name(parseNpmInstall3, "parseNpmInstall");
|
|
182
155
|
var npmToYarnTable = {
|
|
183
156
|
install(command) {
|
|
184
157
|
return parseNpmInstall3(command);
|
|
@@ -284,9 +257,11 @@ function convert3(_, command) {
|
|
|
284
257
|
return `yarn ${command}
|
|
285
258
|
# couldn't auto-convert command`;
|
|
286
259
|
}
|
|
260
|
+
__name(convert3, "convert");
|
|
287
261
|
function npmToYarn(str) {
|
|
288
262
|
return str.replace(/npm(?: +([^&\n\r]*))?/gm, convert3);
|
|
289
263
|
}
|
|
264
|
+
__name(npmToYarn, "npmToYarn");
|
|
290
265
|
|
|
291
266
|
// src/npm2yarn2pnpm.ts
|
|
292
267
|
function createAttribute(attributeName, attributeValue) {
|
|
@@ -296,6 +271,7 @@ function createAttribute(attributeName, attributeValue) {
|
|
|
296
271
|
value: attributeValue
|
|
297
272
|
};
|
|
298
273
|
}
|
|
274
|
+
__name(createAttribute, "createAttribute");
|
|
299
275
|
function createTabItem({ code, node, value }) {
|
|
300
276
|
const [, highlight] = (node.meta ?? "").split("|");
|
|
301
277
|
return {
|
|
@@ -312,7 +288,8 @@ function createTabItem({ code, node, value }) {
|
|
|
312
288
|
]
|
|
313
289
|
};
|
|
314
290
|
}
|
|
315
|
-
|
|
291
|
+
__name(createTabItem, "createTabItem");
|
|
292
|
+
var transformNode = /* @__PURE__ */ __name((node, options) => {
|
|
316
293
|
const groupIdProp = {
|
|
317
294
|
type: "mdxJsxAttribute",
|
|
318
295
|
name: "groupId",
|
|
@@ -355,11 +332,11 @@ var transformNode = (node, options) => {
|
|
|
355
332
|
]
|
|
356
333
|
}
|
|
357
334
|
];
|
|
358
|
-
};
|
|
359
|
-
var isMdxEsmLiteral = (node) => node.type === "mdxjsEsm";
|
|
360
|
-
var isTabsImport = (node) => isMdxEsmLiteral(node) && node.value.includes("@theme/Tabs");
|
|
361
|
-
var isParent = (node) => Array.isArray(node.children);
|
|
362
|
-
var matchNode = (node) => node.type === "code" && typeof node.meta === "string" && (node.meta ?? "").startsWith("npm2yarn2pnpm");
|
|
335
|
+
}, "transformNode");
|
|
336
|
+
var isMdxEsmLiteral = /* @__PURE__ */ __name((node) => node.type === "mdxjsEsm", "isMdxEsmLiteral");
|
|
337
|
+
var isTabsImport = /* @__PURE__ */ __name((node) => isMdxEsmLiteral(node) && node.value.includes("@theme/Tabs"), "isTabsImport");
|
|
338
|
+
var isParent = /* @__PURE__ */ __name((node) => Array.isArray(node.children), "isParent");
|
|
339
|
+
var matchNode = /* @__PURE__ */ __name((node) => node.type === "code" && typeof node.meta === "string" && (node.meta ?? "").startsWith("npm2yarn2pnpm"), "matchNode");
|
|
363
340
|
function createImportNode() {
|
|
364
341
|
return {
|
|
365
342
|
type: "mdxjsEsm",
|
|
@@ -402,8 +379,9 @@ function createImportNode() {
|
|
|
402
379
|
}
|
|
403
380
|
};
|
|
404
381
|
}
|
|
405
|
-
|
|
406
|
-
|
|
382
|
+
__name(createImportNode, "createImportNode");
|
|
383
|
+
var convertNpmToPackageManagers = /* @__PURE__ */ __name(({ sync = true, convertToBun = false } = { sync: true, convertToBun: false }) => async (root) => {
|
|
384
|
+
const { visit } = await import('unist-util-visit');
|
|
407
385
|
let transformed = false;
|
|
408
386
|
let alreadyImported = false;
|
|
409
387
|
visit(root, (node) => {
|
|
@@ -428,12 +406,11 @@ var convertNpmToPackageManagers = ({ sync = true, convertToBun = false } = { syn
|
|
|
428
406
|
if (transformed && !alreadyImported) {
|
|
429
407
|
root.children.unshift(createImportNode());
|
|
430
408
|
}
|
|
431
|
-
};
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
//# sourceMappingURL=index.js.map
|
|
409
|
+
}, "convertNpmToPackageManagers");
|
|
410
|
+
|
|
411
|
+
exports.convertNpmToPackageManagers = convertNpmToPackageManagers;
|
|
412
|
+
exports.npmToBun = npmToBun;
|
|
413
|
+
exports.npmToPnpm = npmToPnpm;
|
|
414
|
+
exports.npmToYarn = npmToYarn;
|
|
415
|
+
//# sourceMappingURL=out.js.map
|
|
416
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
|
|
1
4
|
// src/npm2bun.ts
|
|
2
5
|
var unchangedCLICommands = ["init", "run", "test", "login", "logout", "link", "publish", "cache"];
|
|
3
6
|
function parseNpmInstall(command, isShortHand = false) {
|
|
@@ -6,6 +9,7 @@ function parseNpmInstall(command, isShortHand = false) {
|
|
|
6
9
|
}
|
|
7
10
|
return command.replace(isShortHand ? "i " : "install ", "add ").replace(/(\s*)--save(?!-)/, "$1--save-prod").replace("--no-package-lock", "");
|
|
8
11
|
}
|
|
12
|
+
__name(parseNpmInstall, "parseNpmInstall");
|
|
9
13
|
var npmToBunTable = {
|
|
10
14
|
install(command) {
|
|
11
15
|
return parseNpmInstall(command);
|
|
@@ -39,9 +43,11 @@ function convert(_, command) {
|
|
|
39
43
|
return `bun ${command}
|
|
40
44
|
# couldn't auto-convert command`;
|
|
41
45
|
}
|
|
46
|
+
__name(convert, "convert");
|
|
42
47
|
function npmToBun(str) {
|
|
43
48
|
return str.replace(/npm(?: +([^&\n\r]*))?/gm, convert);
|
|
44
49
|
}
|
|
50
|
+
__name(npmToBun, "npmToBun");
|
|
45
51
|
|
|
46
52
|
// src/npm2pnpm.ts
|
|
47
53
|
var unchangedCLICommands2 = ["init", "run", "test", "login", "logout", "link", "publish", "cache"];
|
|
@@ -51,6 +57,7 @@ function parseNpmInstall2(command, isShortHand = false) {
|
|
|
51
57
|
}
|
|
52
58
|
return command.replace(isShortHand ? "i " : "install ", "add ").replace(/(\s*)--save(?!-)/, "$1--save-prod").replace("--no-package-lock", "");
|
|
53
59
|
}
|
|
60
|
+
__name(parseNpmInstall2, "parseNpmInstall");
|
|
54
61
|
var npmToPnpmTable = {
|
|
55
62
|
install(command) {
|
|
56
63
|
return parseNpmInstall2(command);
|
|
@@ -84,9 +91,11 @@ function convert2(_, command) {
|
|
|
84
91
|
return `pnpm ${command}
|
|
85
92
|
# couldn't auto-convert command`;
|
|
86
93
|
}
|
|
94
|
+
__name(convert2, "convert");
|
|
87
95
|
function npmToPnpm(str) {
|
|
88
96
|
return str.replace(/npm(?: +([^&\n\r]*))?/gm, convert2);
|
|
89
97
|
}
|
|
98
|
+
__name(npmToPnpm, "npmToPnpm");
|
|
90
99
|
|
|
91
100
|
// src/npm2yarn.ts
|
|
92
101
|
var unchangedCLICommands3 = ["test", "login", "logout", "link", "publish", "cache"];
|
|
@@ -140,6 +149,7 @@ function parseNpmInstall3(command, isShortHand = false) {
|
|
|
140
149
|
}
|
|
141
150
|
return yarnAddCommand;
|
|
142
151
|
}
|
|
152
|
+
__name(parseNpmInstall3, "parseNpmInstall");
|
|
143
153
|
var npmToYarnTable = {
|
|
144
154
|
install(command) {
|
|
145
155
|
return parseNpmInstall3(command);
|
|
@@ -245,9 +255,11 @@ function convert3(_, command) {
|
|
|
245
255
|
return `yarn ${command}
|
|
246
256
|
# couldn't auto-convert command`;
|
|
247
257
|
}
|
|
258
|
+
__name(convert3, "convert");
|
|
248
259
|
function npmToYarn(str) {
|
|
249
260
|
return str.replace(/npm(?: +([^&\n\r]*))?/gm, convert3);
|
|
250
261
|
}
|
|
262
|
+
__name(npmToYarn, "npmToYarn");
|
|
251
263
|
|
|
252
264
|
// src/npm2yarn2pnpm.ts
|
|
253
265
|
function createAttribute(attributeName, attributeValue) {
|
|
@@ -257,6 +269,7 @@ function createAttribute(attributeName, attributeValue) {
|
|
|
257
269
|
value: attributeValue
|
|
258
270
|
};
|
|
259
271
|
}
|
|
272
|
+
__name(createAttribute, "createAttribute");
|
|
260
273
|
function createTabItem({ code, node, value }) {
|
|
261
274
|
const [, highlight] = (node.meta ?? "").split("|");
|
|
262
275
|
return {
|
|
@@ -273,7 +286,8 @@ function createTabItem({ code, node, value }) {
|
|
|
273
286
|
]
|
|
274
287
|
};
|
|
275
288
|
}
|
|
276
|
-
|
|
289
|
+
__name(createTabItem, "createTabItem");
|
|
290
|
+
var transformNode = /* @__PURE__ */ __name((node, options) => {
|
|
277
291
|
const groupIdProp = {
|
|
278
292
|
type: "mdxJsxAttribute",
|
|
279
293
|
name: "groupId",
|
|
@@ -316,11 +330,11 @@ var transformNode = (node, options) => {
|
|
|
316
330
|
]
|
|
317
331
|
}
|
|
318
332
|
];
|
|
319
|
-
};
|
|
320
|
-
var isMdxEsmLiteral = (node) => node.type === "mdxjsEsm";
|
|
321
|
-
var isTabsImport = (node) => isMdxEsmLiteral(node) && node.value.includes("@theme/Tabs");
|
|
322
|
-
var isParent = (node) => Array.isArray(node.children);
|
|
323
|
-
var matchNode = (node) => node.type === "code" && typeof node.meta === "string" && (node.meta ?? "").startsWith("npm2yarn2pnpm");
|
|
333
|
+
}, "transformNode");
|
|
334
|
+
var isMdxEsmLiteral = /* @__PURE__ */ __name((node) => node.type === "mdxjsEsm", "isMdxEsmLiteral");
|
|
335
|
+
var isTabsImport = /* @__PURE__ */ __name((node) => isMdxEsmLiteral(node) && node.value.includes("@theme/Tabs"), "isTabsImport");
|
|
336
|
+
var isParent = /* @__PURE__ */ __name((node) => Array.isArray(node.children), "isParent");
|
|
337
|
+
var matchNode = /* @__PURE__ */ __name((node) => node.type === "code" && typeof node.meta === "string" && (node.meta ?? "").startsWith("npm2yarn2pnpm"), "matchNode");
|
|
324
338
|
function createImportNode() {
|
|
325
339
|
return {
|
|
326
340
|
type: "mdxjsEsm",
|
|
@@ -363,8 +377,9 @@ function createImportNode() {
|
|
|
363
377
|
}
|
|
364
378
|
};
|
|
365
379
|
}
|
|
366
|
-
|
|
367
|
-
|
|
380
|
+
__name(createImportNode, "createImportNode");
|
|
381
|
+
var convertNpmToPackageManagers = /* @__PURE__ */ __name(({ sync = true, convertToBun = false } = { sync: true, convertToBun: false }) => async (root) => {
|
|
382
|
+
const { visit } = await import('unist-util-visit');
|
|
368
383
|
let transformed = false;
|
|
369
384
|
let alreadyImported = false;
|
|
370
385
|
visit(root, (node) => {
|
|
@@ -389,11 +404,8 @@ var convertNpmToPackageManagers = ({ sync = true, convertToBun = false } = { syn
|
|
|
389
404
|
if (transformed && !alreadyImported) {
|
|
390
405
|
root.children.unshift(createImportNode());
|
|
391
406
|
}
|
|
392
|
-
};
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
npmToPnpm,
|
|
397
|
-
npmToYarn
|
|
398
|
-
};
|
|
407
|
+
}, "convertNpmToPackageManagers");
|
|
408
|
+
|
|
409
|
+
export { convertNpmToPackageManagers, npmToBun, npmToPnpm, npmToYarn };
|
|
410
|
+
//# sourceMappingURL=out.js.map
|
|
399
411
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/npm2bun.ts","../../src/npm2pnpm.ts","../../src/npm2yarn.ts","../../src/npm2yarn2pnpm.ts"],"names":["unchangedCLICommands","parseNpmInstall","convert"],"mappings":";;;;AAAA,IAAM,uBAAuB,CAAC,QAAQ,OAAO,QAAQ,SAAS,UAAU,QAAQ,WAAW,OAAO;AAElG,SAAS,gBAAgB,SAAiB,cAAc,OAAO;AAC9D,MAAI,cAAc,KAAK,OAAO,GAAG;AAChC,WAAO;AAAA,EACR;AAEA,SAAO,QACL,QAAQ,cAAc,OAAO,YAAY,MAAM,EAC/C,QAAQ,oBAAoB,eAAe,EAC3C,QAAQ,qBAAqB,EAAE;AAClC;AATS;AAWT,IAAM,gBAAgB;AAAA,EACrB,QAAQ,SAAiB;AACxB,WAAO,gBAAgB,OAAO;AAAA,EAC/B;AAAA,EAEA,EAAE,SAAiB;AAClB,WAAO,gBAAgB,SAAS,IAAI;AAAA,EACrC;AAAA,EAEA,UAAU,SAAiB;AAC1B,WAAO,QACL,QAAQ,aAAa,QAAQ,EAC7B,QAAQ,oBAAoB,eAAe,EAC3C,QAAQ,qBAAqB,EAAE;AAAA,EAClC;AAAA,EAEA,QAAQ,SAAiB;AACxB,WAAO,QAAQ,QAAQ,uBAAuB,MAAM;AAAA,EACrD;AAAA,EAEA,QAAQ,SAAiB;AACxB,WAAO,QAAQ,QAAQ,WAAW,aAAa;AAAA,EAChD;AACD;AAEA,SAAS,QAAQ,GAAW,SAAiB;AAC5C,aAAW,WAAW,IAAI,KAAK;AAC/B,QAAM,gBAAgB,MAAM,KAAK,OAAO,KAAK,CAAC,EAAE,GAAG,CAAC;AAEpD,MAAI,qBAAqB,SAAS,YAAY,GAAG;AAChD,WAAO,OAAO,OAAO;AAAA,EACtB;AAEA,MAAI,gBAAgB,eAAe;AAClC,UAAM,YAAY,cAAc,YAA0C;AAE1E,QAAI,OAAO,cAAc,YAAY;AACpC,aAAO,OAAO,UAAU,OAAO,CAAC;AAAA,IACjC;AAEA,WAAO,OAAO,QAAQ,QAAQ,cAAc,SAAS,CAAC;AAAA,EACvD;AAEA,SAAO,OAAO,OAAO;AAAA;AACtB;AAnBS;AAqBF,SAAS,SAAS,KAAa;AACrC,SAAO,IAAI,QAAQ,2BAA2B,OAAO;AACtD;AAFgB;;;ACpDhB,IAAMA,wBAAuB,CAAC,QAAQ,OAAO,QAAQ,SAAS,UAAU,QAAQ,WAAW,OAAO;AAElG,SAASC,iBAAgB,SAAiB,cAAc,OAAO;AAC9D,MAAI,cAAc,KAAK,OAAO,GAAG;AAChC,WAAO;AAAA,EACR;AAEA,SAAO,QACL,QAAQ,cAAc,OAAO,YAAY,MAAM,EAC/C,QAAQ,oBAAoB,eAAe,EAC3C,QAAQ,qBAAqB,EAAE;AAClC;AATS,OAAAA,kBAAA;AAWT,IAAM,iBAAiB;AAAA,EACtB,QAAQ,SAAiB;AACxB,WAAOA,iBAAgB,OAAO;AAAA,EAC/B;AAAA,EAEA,EAAE,SAAiB;AAClB,WAAOA,iBAAgB,SAAS,IAAI;AAAA,EACrC;AAAA,EAEA,UAAU,SAAiB;AAC1B,WAAO,QACL,QAAQ,aAAa,QAAQ,EAC7B,QAAQ,oBAAoB,eAAe,EAC3C,QAAQ,qBAAqB,EAAE;AAAA,EAClC;AAAA,EAEA,QAAQ,SAAiB;AACxB,WAAO,QAAQ,QAAQ,uBAAuB,MAAM;AAAA,EACrD;AAAA,EAEA,QAAQ,SAAiB;AACxB,WAAO,QAAQ,QAAQ,WAAW,aAAa;AAAA,EAChD;AACD;AAEA,SAASC,SAAQ,GAAW,SAAiB;AAC5C,aAAW,WAAW,IAAI,KAAK;AAC/B,QAAM,gBAAgB,MAAM,KAAK,OAAO,KAAK,CAAC,EAAE,GAAG,CAAC;AAEpD,MAAIF,sBAAqB,SAAS,YAAY,GAAG;AAChD,WAAO,QAAQ,OAAO;AAAA,EACvB;AAEA,MAAI,gBAAgB,gBAAgB;AACnC,UAAM,YAAY,eAAe,YAA2C;AAE5E,QAAI,OAAO,cAAc,YAAY;AACpC,aAAO,QAAQ,UAAU,OAAO,CAAC;AAAA,IAClC;AAEA,WAAO,QAAQ,QAAQ,QAAQ,cAAc,SAAS,CAAC;AAAA,EACxD;AAEA,SAAO,QAAQ,OAAO;AAAA;AACvB;AAnBS,OAAAE,UAAA;AAqBF,SAAS,UAAU,KAAa;AACtC,SAAO,IAAI,QAAQ,2BAA2BA,QAAO;AACtD;AAFgB;;;AC3DT,IAAMF,wBAAuB,CAAC,QAAQ,SAAS,UAAU,QAAQ,WAAW,OAAO;AACnF,IAAM,kBAAkB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEA,SAASC,iBAAgB,SAAiB,cAAc,OAAO;AAC9D,MAAI,cAAc,KAAK,OAAO,GAAG;AAChC,WAAO;AAAA,EACR;AAEA,MAAI,iBAAiB,QACnB,QAAQ,cAAc,OAAO,YAAY,MAAM,EAC/C,QAAQ,cAAc,OAAO,EAC7B,QAAQ,kBAAkB,EAAE,EAC5B,QAAQ,qBAAqB,eAAe,EAC5C,QAAQ,mBAAmB,YAAY,EACvC,QAAQ,gBAAgB,SAAS;AAEnC,MAAI,2BAA2B,KAAK,cAAc,GAAG;AACpD,qBAAiB,eAAe,QAAQ,4BAA4B,EAAE;AACtE,qBAAiB,UAAU,cAAc;AAAA,EAC1C;AAEA,SAAO;AACR;AAnBS,OAAAA,kBAAA;AAqBT,IAAM,iBAAiB;AAAA,EACtB,QAAQ,SAAiB;AACxB,WAAOA,iBAAgB,OAAO;AAAA,EAC/B;AAAA,EAEA,EAAE,SAAiB;AAClB,WAAOA,iBAAgB,SAAS,IAAI;AAAA,EACrC;AAAA,EAEA,UAAU,SAAiB;AAC1B,QAAI,oBAAoB,QACtB,QAAQ,aAAa,QAAQ,EAC7B,QAAQ,cAAc,OAAO,EAC7B,QAAQ,kBAAkB,EAAE,EAC5B,QAAQ,qBAAqB,eAAe;AAE9C,QAAI,2BAA2B,KAAK,iBAAiB,GAAG;AACvD,0BAAoB,kBAAkB,QAAQ,4BAA4B,EAAE;AAC5E,0BAAoB,UAAU,iBAAiB;AAAA,IAChD;AAEA,WAAO;AAAA,EACR;AAAA,EAEA,QAAQ,SAAiB;AACxB,WAAO,QAAQ,QAAQ,WAAW,aAAa;AAAA,EAChD;AAAA,EAEA,KAAK,SAAiB;AACrB,WAAO,QAAQ,QAAQ,qCAAqC,CAAC,GAAG,MAAe,MAAe,SAA0B;AACvH,UAAI,SAAS;AAEb,UAAI,QAAQ,CAACD,sBAAqB,SAAS,IAAI,KAAK,CAAC,gBAAgB,SAAS,IAAI,GAAG;AACpF,kBAAU;AAAA,MACX,OAAO;AACN,kBAAU,OAAO,QAAQ,EAAE;AAAA,MAC5B;AAEA,UAAI,MAAM;AACT,kBAAU,KAAK,QAAQ,SAAS,EAAE;AAAA,MACnC;AAEA,UAAI,MAAM;AACT,kBAAU;AAAA,MACX;AAEA,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AAAA,EAEA,IAAI,SAAiB;AACpB,WAAO,QAAQ,QAAQ,oCAAoC,CAAC,GAAG,MAAe,MAAe,SAA0B;AACtH,UAAI,SAAS;AAEb,UAAI,QAAQ,CAACA,sBAAqB,SAAS,IAAI,KAAK,CAAC,gBAAgB,SAAS,IAAI,GAAG;AACpF,kBAAU;AAAA,MACX,OAAO;AACN,kBAAU,OAAO,QAAQ,EAAE;AAAA,MAC5B;AAEA,UAAI,MAAM;AACT,kBAAU,KAAK,QAAQ,SAAS,EAAE;AAAA,MACnC;AAEA,UAAI,MAAM;AACT,kBAAU;AAAA,MACX;AAEA,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AAAA,EAEA,GAAG,SAAiB;AACnB,WAAO,QAAQ,QAAQ,mBAAmB,CAAC,IAAI,IAAY,SAAyB;AACnF,UAAI,SAAS;AAEb,UAAI,MAAM;AACT,YAAI,QAAQ;AACZ,YAAI,WAAW,CAAC;AAChB,cAAM,QAAQ,KAAK,MAAM,GAAG,EAAE,OAAO,OAAO;AAE5C,mBAAW,QAAQ,OAAO;AACzB,cAAI,OAAO;AACV,sBAAU,IAAI,IAAI;AAAA,UACnB,WAAW,KAAK,WAAW,GAAG,GAAG;AAChC,sBAAU,eAAe,SAAS,KAAK,GAAG,CAAC;AAC3C,uBAAW,CAAC;AACZ,oBAAQ;AACR,sBAAU,IAAI,IAAI;AAAA,UACnB,OAAO;AACN,qBAAS,KAAK,IAAI;AAAA,UACnB;AAAA,QACD;AAEA,YAAI,SAAS,SAAS,GAAG;AACxB,oBAAU,eAAe,SAAS,KAAK,GAAG,CAAC;AAAA,QAC5C;AAEA,eAAO;AAAA,MACR;AAEA,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AAAA,EAEA,KAAK,SAAiB;AACrB,WAAO,eAAe,GAAG,OAAO;AAAA,EACjC;AAAA,EAEA,KAAK,SAAiB;AACrB,QAAI,iBAAiB,KAAK,OAAO,GAAG;AACnC,aAAO,QAAQ,QAAQ,QAAQ,QAAQ;AAAA,IACxC;AAEA,WAAO,QAAQ,QAAQ,YAAY,EAAE;AAAA,EACtC;AACD;AAEA,SAASE,SAAQ,GAAW,SAAiB;AAC5C,aAAW,WAAW,IAAI,KAAK;AAC/B,QAAM,gBAAgB,MAAM,KAAK,OAAO,KAAK,CAAC,EAAE,GAAG,CAAC;AAEpD,MAAIF,sBAAqB,SAAS,YAAY,GAAG;AAChD,WAAO,QAAQ,OAAO;AAAA,EACvB;AAEA,MAAI,gBAAgB,gBAAgB;AACnC,UAAM,YAAY,eAAe,YAA2C;AAE5E,QAAI,OAAO,cAAc,YAAY;AACpC,aAAO,QAAQ,UAAU,OAAO,CAAC;AAAA,IAClC;AAEA,WAAO,QAAQ,QAAQ,QAAQ,cAAc,SAAS,CAAC;AAAA,EACxD;AAEA,SAAO,QAAQ,OAAO;AAAA;AACvB;AAnBS,OAAAE,UAAA;AAqBF,SAAS,UAAU,KAAa;AACtC,SAAO,IAAI,QAAQ,2BAA2BA,QAAO;AACtD;AAFgB;;;ACtMhB,SAAS,gBAAgB,eAAuB,gBAA2D;AAC1G,SAAO;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACR;AACD;AANS;AAcT,SAAS,cAAc,EAAE,MAAM,MAAM,MAAM,GAA4C;AACtF,QAAM,CAAC,EAAE,SAAS,KAAK,KAAK,QAAQ,IAAI,MAAM,GAAG;AAEjD,SAAO;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,YAAY,CAAC,gBAAgB,SAAS,KAAK,GAAG,gBAAgB,SAAS,KAAK,CAAC;AAAA,IAC7E,UAAU;AAAA,MACT;AAAA,QACC,MAAM,KAAK;AAAA,QACX,MAAM,KAAK;AAAA,QACX,OAAO;AAAA,QACP,MAAM,GAAG,SAAS;AAAA,MACnB;AAAA,IACD;AAAA,EACD;AACD;AAhBS;AAiCT,IAAM,gBAAgB,wBAAC,MAAY,YAA2B;AAC7D,QAAM,cAAc;AAAA,IACnB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACR;AAEA,QAAM,UAAU,KAAK;AAErB,QAAM,WAAW,UAAU,KAAK,KAAK;AACrC,QAAM,WAAW,UAAU,KAAK,KAAK;AACrC,QAAM,UAAU,SAAS,KAAK,KAAK;AAEnC,SAAO;AAAA,IACN;AAAA,MACC,MAAM;AAAA,MACN,MAAM;AAAA,MACN,GAAI,QAAQ,QAAQ;AAAA,QACnB,YAAY,CAAC,WAAW;AAAA,MACzB;AAAA,MACA,UAAU;AAAA,QACT,cAAc;AAAA,UACb,MAAM;AAAA,UACN;AAAA,UACA,OAAO;AAAA,QACR,CAAC;AAAA,QACD,cAAc;AAAA,UACb,MAAM;AAAA,UACN;AAAA,UACA,OAAO;AAAA,QACR,CAAC;AAAA,QACD,cAAc;AAAA,UACb,MAAM;AAAA,UACN;AAAA,UACA,OAAO;AAAA,QACR,CAAC;AAAA,QACD,GAAI,QAAQ,eACT;AAAA,UACA,cAAc;AAAA,YACb,MAAM;AAAA,YACN;AAAA,YACA,OAAO;AAAA,UACR,CAAC;AAAA,QACF,IACC,CAAC;AAAA,MACL;AAAA,IACD;AAAA,EACD;AACD,GAhDsB;AAkDtB,IAAM,kBAAkB,wBAAC,SAAgC,KAAK,SAAS,YAA/C;AACxB,IAAM,eAAe,wBAAC,SAAwB,gBAAgB,IAAI,KAAK,KAAK,MAAM,SAAS,aAAa,GAAnF;AACrB,IAAM,WAAW,wBAAC,SAA+B,MAAM,QAAS,KAAgB,QAAQ,GAAvE;AACjB,IAAM,YAAY,wBAAC,SAClB,KAAK,SAAS,UAAU,OAAQ,KAAc,SAAS,aAAc,KAAc,QAAQ,IAAI,WAAW,eAAe,GADxG;AAGlB,SAAS,mBAAmB;AAC3B,SAAO;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,MACL,QAAQ;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,UACL;AAAA,YACC,MAAM;AAAA,YACN,YAAY;AAAA,cACX;AAAA,gBACC,MAAM;AAAA,gBACN,OAAO,EAAE,MAAM,cAAc,MAAM,OAAO;AAAA,cAC3C;AAAA,YACD;AAAA,YACA,QAAQ;AAAA,cACP,MAAM;AAAA,cACN,OAAO;AAAA,cACP,KAAK;AAAA,YACN;AAAA,UACD;AAAA,UACA;AAAA,YACC,MAAM;AAAA,YACN,YAAY;AAAA,cACX;AAAA,gBACC,MAAM;AAAA,gBACN,OAAO,EAAE,MAAM,cAAc,MAAM,UAAU;AAAA,cAC9C;AAAA,YACD;AAAA,YACA,QAAQ;AAAA,cACP,MAAM;AAAA,cACN,OAAO;AAAA,cACP,KAAK;AAAA,YACN;AAAA,UACD;AAAA,QACD;AAAA,QACA,YAAY;AAAA,MACb;AAAA,IACD;AAAA,EACD;AACD;AAzCS;AA2CF,IAAM,8BACZ,wBAAC,EAAE,OAAO,MAAM,eAAe,MAAM,IAAI,EAAE,MAAM,MAAM,cAAc,MAAM,MAC3E,OAAO,SAAS;AACf,QAAM,EAAE,MAAM,IAAI,MAAM,OAAO,kBAAkB;AAEjD,MAAI,cAAc;AAClB,MAAI,kBAAkB;AAEtB,QAAM,MAAM,CAAC,SAAe;AAC3B,QAAI,aAAa,IAAI,GAAG;AACvB,wBAAkB;AAAA,IACnB;AAEA,QAAI,SAAS,IAAI,GAAG;AACnB,UAAI,QAAQ;AACZ,aAAO,QAAQ,KAAK,SAAS,QAAQ;AACpC,cAAM,QAAQ,KAAK,SAAS,KAAK;AACjC,YAAI,UAAU,KAAK,GAAG;AACrB,gBAAM,SAAS,cAAc,OAAO,EAAE,MAAM,aAAa,CAAC;AAC1D,eAAK,SAAS,OAAO,OAAO,GAAG,GAAG,MAAM;AACxC,mBAAS,OAAO;AAChB,wBAAc;AAAA,QACf,OAAO;AACN,mBAAS;AAAA,QACV;AAAA,MACD;AAAA,IACD;AAAA,EACD,CAAC;AAED,MAAI,eAAe,CAAC,iBAAiB;AACpC,IAAC,KAAgB,SAAS,QAAQ,iBAAiB,CAAC;AAAA,EACrD;AACD,GA/BA","sourcesContent":["const unchangedCLICommands = ['init', 'run', 'test', 'login', 'logout', 'link', 'publish', 'cache'];\n\nfunction parseNpmInstall(command: string, isShortHand = false) {\n\tif (/^install *$/.test(command)) {\n\t\treturn 'install';\n\t}\n\n\treturn command\n\t\t.replace(isShortHand ? 'i ' : 'install ', 'add ')\n\t\t.replace(/(\\s*)--save(?!-)/, '$1--save-prod')\n\t\t.replace('--no-package-lock', '');\n}\n\nconst npmToBunTable = {\n\tinstall(command: string) {\n\t\treturn parseNpmInstall(command);\n\t},\n\n\ti(command: string) {\n\t\treturn parseNpmInstall(command, true);\n\t},\n\n\tuninstall(command: string) {\n\t\treturn command\n\t\t\t.replace('uninstall', 'remove')\n\t\t\t.replace(/(\\s*)--save(?!-)/, '$1--save-prod')\n\t\t\t.replace('--no-package-lock', '');\n\t},\n\n\tversion(command: string) {\n\t\treturn command.replace(/(major|minor|patch)/, '--$1');\n\t},\n\n\trebuild(command: string) {\n\t\treturn command.replace('rebuild', 'add --force');\n\t}\n} as const;\n\nfunction convert(_: string, command: string) {\n\tcommand = (command ?? '').trim();\n\tconst firstCommand = (/\\w+/.exec(command) || [''])[0];\n\n\tif (unchangedCLICommands.includes(firstCommand)) {\n\t\treturn `bun ${command}`;\n\t}\n\n\tif (firstCommand in npmToBunTable) {\n\t\tconst converter = npmToBunTable[firstCommand as keyof typeof npmToBunTable];\n\n\t\tif (typeof converter === 'function') {\n\t\t\treturn `bun ${converter(command)}`;\n\t\t}\n\n\t\treturn `bun ${command.replace(firstCommand, converter)}`;\n\t}\n\n\treturn `bun ${command}\\n# couldn't auto-convert command`;\n}\n\nexport function npmToBun(str: string) {\n\treturn str.replace(/npm(?: +([^&\\n\\r]*))?/gm, convert);\n}\n","/**\n * Copyright (c) 2019 Ben Gubler <nebrelbug@gmail.com>\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nconst unchangedCLICommands = ['init', 'run', 'test', 'login', 'logout', 'link', 'publish', 'cache'];\n\nfunction parseNpmInstall(command: string, isShortHand = false) {\n\tif (/^install *$/.test(command)) {\n\t\treturn 'install';\n\t}\n\n\treturn command\n\t\t.replace(isShortHand ? 'i ' : 'install ', 'add ')\n\t\t.replace(/(\\s*)--save(?!-)/, '$1--save-prod')\n\t\t.replace('--no-package-lock', '');\n}\n\nconst npmToPnpmTable = {\n\tinstall(command: string) {\n\t\treturn parseNpmInstall(command);\n\t},\n\n\ti(command: string) {\n\t\treturn parseNpmInstall(command, true);\n\t},\n\n\tuninstall(command: string) {\n\t\treturn command\n\t\t\t.replace('uninstall', 'remove')\n\t\t\t.replace(/(\\s*)--save(?!-)/, '$1--save-prod')\n\t\t\t.replace('--no-package-lock', '');\n\t},\n\n\tversion(command: string) {\n\t\treturn command.replace(/(major|minor|patch)/, '--$1');\n\t},\n\n\trebuild(command: string) {\n\t\treturn command.replace('rebuild', 'add --force');\n\t}\n} as const;\n\nfunction convert(_: string, command: string) {\n\tcommand = (command ?? '').trim();\n\tconst firstCommand = (/\\w+/.exec(command) || [''])[0];\n\n\tif (unchangedCLICommands.includes(firstCommand)) {\n\t\treturn `pnpm ${command}`;\n\t}\n\n\tif (firstCommand in npmToPnpmTable) {\n\t\tconst converter = npmToPnpmTable[firstCommand as keyof typeof npmToPnpmTable];\n\n\t\tif (typeof converter === 'function') {\n\t\t\treturn `pnpm ${converter(command)}`;\n\t\t}\n\n\t\treturn `pnpm ${command.replace(firstCommand, converter)}`;\n\t}\n\n\treturn `pnpm ${command}\\n# couldn't auto-convert command`;\n}\n\nexport function npmToPnpm(str: string) {\n\treturn str.replace(/npm(?: +([^&\\n\\r]*))?/gm, convert);\n}\n","/**\n * Copyright (c) 2019 Ben Gubler <nebrelbug@gmail.com>\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nexport const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache'];\nexport const yarnCLICommands = [\n\t'init',\n\t'run',\n\t'add',\n\t'audit',\n\t'autoclean',\n\t'bin',\n\t'check',\n\t'config',\n\t'create',\n\t'dedupe',\n\t'generate-lock-entry',\n\t'global',\n\t'help',\n\t'import',\n\t'info',\n\t'install',\n\t'licenses',\n\t'list',\n\t'lockfile',\n\t'outdated',\n\t'owner',\n\t'pack',\n\t'policies',\n\t'prune',\n\t'remove',\n\t'self-update',\n\t'tag',\n\t'team',\n\t'link',\n\t'unlink',\n\t'upgrade',\n\t'upgrade-interactive',\n\t'version',\n\t'versions',\n\t'why',\n\t'workspace',\n\t'workspaces'\n];\n\nfunction parseNpmInstall(command: string, isShortHand = false) {\n\tif (/^install *$/.test(command)) {\n\t\treturn 'install';\n\t}\n\n\tlet yarnAddCommand = command\n\t\t.replace(isShortHand ? 'i ' : 'install ', 'add ')\n\t\t.replace('--save-dev', '--dev')\n\t\t.replace(/\\s*--save(?!-)/, '')\n\t\t.replace('--no-package-lock', '--no-lockfile')\n\t\t.replace('--save-optional', '--optional')\n\t\t.replace('--save-exact', '--exact');\n\n\tif (/ -(?:-global|g)(?![^\\b])/.test(yarnAddCommand)) {\n\t\tyarnAddCommand = yarnAddCommand.replace(/ -(?:-global|g)(?![^\\b])/, '');\n\t\tyarnAddCommand = `global ${yarnAddCommand}`;\n\t}\n\n\treturn yarnAddCommand;\n}\n\nconst npmToYarnTable = {\n\tinstall(command: string) {\n\t\treturn parseNpmInstall(command);\n\t},\n\n\ti(command: string) {\n\t\treturn parseNpmInstall(command, true);\n\t},\n\n\tuninstall(command: string) {\n\t\tlet yarnRemoveCommand = command\n\t\t\t.replace('uninstall', 'remove')\n\t\t\t.replace('--save-dev', '--dev')\n\t\t\t.replace(/\\s*--save(?!-)/, '')\n\t\t\t.replace('--no-package-lock', '--no-lockfile');\n\n\t\tif (/ -(?:-global|g)(?![^\\b])/.test(yarnRemoveCommand)) {\n\t\t\tyarnRemoveCommand = yarnRemoveCommand.replace(/ -(?:-global|g)(?![^\\b])/, '');\n\t\t\tyarnRemoveCommand = `global ${yarnRemoveCommand}`;\n\t\t}\n\n\t\treturn yarnRemoveCommand;\n\t},\n\n\trebuild(command: string) {\n\t\treturn command.replace('rebuild', 'add --force');\n\t},\n\n\texec(command: string) {\n\t\treturn command.replace(/^exec\\s?([^\\s]+)?(\\s--\\s--)?(.*)$/, (_, data?: string, dash?: string, rest?: string): string => {\n\t\t\tlet result = '';\n\n\t\t\tif (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) {\n\t\t\t\tresult += data;\n\t\t\t} else {\n\t\t\t\tresult += `run ${data || ''}`;\n\t\t\t}\n\n\t\t\tif (dash) {\n\t\t\t\tresult += dash.replace(/^\\s--/, '');\n\t\t\t}\n\n\t\t\tif (rest) {\n\t\t\t\tresult += rest;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t});\n\t},\n\n\trun(command: string) {\n\t\treturn command.replace(/^run\\s?([^\\s]+)?(\\s--\\s--)?(.*)$/, (_, data?: string, dash?: string, rest?: string): string => {\n\t\t\tlet result = '';\n\n\t\t\tif (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) {\n\t\t\t\tresult += data;\n\t\t\t} else {\n\t\t\t\tresult += `run ${data || ''}`;\n\t\t\t}\n\n\t\t\tif (dash) {\n\t\t\t\tresult += dash.replace(/^\\s--/, '');\n\t\t\t}\n\n\t\t\tif (rest) {\n\t\t\t\tresult += rest;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t});\n\t},\n\n\tls(command: string) {\n\t\treturn command.replace(/^(ls|list)(.*)$/, (_1, _2: string, args: string): string => {\n\t\t\tlet result = 'list';\n\n\t\t\tif (args) {\n\t\t\t\tlet ended = false;\n\t\t\t\tlet packages = [];\n\t\t\t\tconst items = args.split(' ').filter(Boolean);\n\n\t\t\t\tfor (const item of items) {\n\t\t\t\t\tif (ended) {\n\t\t\t\t\t\tresult += ` ${item}`;\n\t\t\t\t\t} else if (item.startsWith('-')) {\n\t\t\t\t\t\tresult += ` --pattern \"${packages.join('|')}\"`;\n\t\t\t\t\t\tpackages = [];\n\t\t\t\t\t\tended = true;\n\t\t\t\t\t\tresult += ` ${item}`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpackages.push(item);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (packages.length > 0) {\n\t\t\t\t\tresult += ` --pattern \"${packages.join('|')}\"`;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\treturn 'list';\n\t\t});\n\t},\n\n\tlist(command: string) {\n\t\treturn npmToYarnTable.ls(command);\n\t},\n\n\tinit(command: string) {\n\t\tif (/^init (?!-).*$/.test(command)) {\n\t\t\treturn command.replace('init', 'create');\n\t\t}\n\n\t\treturn command.replace(' --scope', '');\n\t}\n} as const;\n\nfunction convert(_: string, command: string) {\n\tcommand = (command || '').trim();\n\tconst firstCommand = (/\\w+/.exec(command) || [''])[0];\n\n\tif (unchangedCLICommands.includes(firstCommand)) {\n\t\treturn `yarn ${command}`;\n\t}\n\n\tif (firstCommand in npmToYarnTable) {\n\t\tconst converter = npmToYarnTable[firstCommand as keyof typeof npmToYarnTable];\n\n\t\tif (typeof converter === 'function') {\n\t\t\treturn `yarn ${converter(command)}`;\n\t\t}\n\n\t\treturn `yarn ${command.replace(firstCommand, converter)}`;\n\t}\n\n\treturn `yarn ${command}\\n# couldn't auto-convert command`;\n}\n\nexport function npmToYarn(str: string) {\n\treturn str.replace(/npm(?: +([^&\\n\\r]*))?/gm, convert);\n}\n","import type { Code, Literal, RootContent } from 'mdast';\nimport type { MdxJsxAttribute, MdxJsxFlowElement } from 'mdast-util-mdx';\nimport type { Plugin, Transformer } from 'unified';\nimport type { Node, Parent } from 'unist';\n\nimport { npmToBun } from './npm2bun';\nimport { npmToPnpm } from './npm2pnpm';\nimport { npmToYarn } from './npm2yarn';\nimport type { PluginOptions } from './types';\n\nfunction createAttribute(attributeName: string, attributeValue: MdxJsxAttribute['value']): MdxJsxAttribute {\n\treturn {\n\t\ttype: 'mdxJsxAttribute',\n\t\tname: attributeName,\n\t\tvalue: attributeValue\n\t};\n}\n\ninterface CreateTabItemOptions {\n\tcode: string;\n\tnode: Code;\n\tvalue: 'npm' | 'yarn' | 'pnpm' | 'bun';\n}\n\nfunction createTabItem({ code, node, value }: CreateTabItemOptions): MdxJsxFlowElement {\n\tconst [, highlight] = (node.meta ?? '').split('|');\n\n\treturn {\n\t\ttype: 'mdxJsxFlowElement',\n\t\tname: 'TabItem',\n\t\tattributes: [createAttribute('value', value), createAttribute('label', value)],\n\t\tchildren: [\n\t\t\t{\n\t\t\t\ttype: node.type,\n\t\t\t\tlang: node.lang,\n\t\t\t\tvalue: code,\n\t\t\t\tmeta: `${highlight} showLineNumbers`\n\t\t\t}\n\t\t]\n\t};\n}\n\n/**\n * A Docusaurus plugin that transforms code blocks from NPM to Yarn, Pnpm, and optionally to Bun.\n *\n * @param options - The plugin options to customize the transformation behavior.\n * - `sync` (optional): A boolean indicating whether to synchronize code examples (default: `true`).\n * - `convertToBun` (optional): A boolean indicating whether to include a Bun option (default: `false`).\n * Set this option to `true` to enable Bun code transformation.\n *\n * @returns A unified plugin function that can be used to transform Docusaurus content.\n *\n * @remarks This plugin searches for code blocks within the provided Markdown content and\n * converts them into Tabs, allowing users to switch between NPM, Yarn, and Pnpm examples.\n * Additionally, it can include a Bun option when the `convertToBun` option is set to `true`.\n * If the Tabs component is not already imported, it adds the necessary import statement.\n */\nconst transformNode = (node: Code, options: PluginOptions) => {\n\tconst groupIdProp = {\n\t\ttype: 'mdxJsxAttribute',\n\t\tname: 'groupId',\n\t\tvalue: 'npm2yarn2pnpm'\n\t};\n\n\tconst npmCode = node.value;\n\n\tconst yarnCode = npmToYarn(node.value);\n\tconst pnpmCode = npmToPnpm(node.value);\n\tconst bunCode = npmToBun(node.value);\n\n\treturn [\n\t\t{\n\t\t\ttype: 'mdxJsxFlowElement',\n\t\t\tname: 'Tabs',\n\t\t\t...(options.sync && {\n\t\t\t\tattributes: [groupIdProp]\n\t\t\t}),\n\t\t\tchildren: [\n\t\t\t\tcreateTabItem({\n\t\t\t\t\tcode: npmCode,\n\t\t\t\t\tnode,\n\t\t\t\t\tvalue: 'npm'\n\t\t\t\t}),\n\t\t\t\tcreateTabItem({\n\t\t\t\t\tcode: yarnCode,\n\t\t\t\t\tnode,\n\t\t\t\t\tvalue: 'yarn'\n\t\t\t\t}),\n\t\t\t\tcreateTabItem({\n\t\t\t\t\tcode: pnpmCode,\n\t\t\t\t\tnode,\n\t\t\t\t\tvalue: 'pnpm'\n\t\t\t\t}),\n\t\t\t\t...(options.convertToBun\n\t\t\t\t\t? [\n\t\t\t\t\t\t\tcreateTabItem({\n\t\t\t\t\t\t\t\tcode: bunCode,\n\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t\tvalue: 'bun'\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t]\n\t\t\t\t\t: [])\n\t\t\t]\n\t\t}\n\t] as RootContent[];\n};\n\nconst isMdxEsmLiteral = (node: Node): node is Literal => node.type === 'mdxjsEsm';\nconst isTabsImport = (node: Node): boolean => isMdxEsmLiteral(node) && node.value.includes('@theme/Tabs');\nconst isParent = (node: Node): node is Parent => Array.isArray((node as Parent).children);\nconst matchNode = (node: Node): node is Code =>\n\tnode.type === 'code' && typeof (node as Code).meta === 'string' && ((node as Code).meta ?? '').startsWith('npm2yarn2pnpm');\n\nfunction createImportNode() {\n\treturn {\n\t\ttype: 'mdxjsEsm',\n\t\tvalue: \"import Tabs from '@theme/Tabs'\\nimport TabItem from '@theme/TabItem'\",\n\t\tdata: {\n\t\t\testree: {\n\t\t\t\ttype: 'Program',\n\t\t\t\tbody: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'ImportDeclaration',\n\t\t\t\t\t\tspecifiers: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'ImportDefaultSpecifier',\n\t\t\t\t\t\t\t\tlocal: { type: 'Identifier', name: 'Tabs' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\tsource: {\n\t\t\t\t\t\t\ttype: 'Literal',\n\t\t\t\t\t\t\tvalue: '@theme/Tabs',\n\t\t\t\t\t\t\traw: \"'@theme/Tabs'\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'ImportDeclaration',\n\t\t\t\t\t\tspecifiers: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'ImportDefaultSpecifier',\n\t\t\t\t\t\t\t\tlocal: { type: 'Identifier', name: 'TabItem' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\tsource: {\n\t\t\t\t\t\t\ttype: 'Literal',\n\t\t\t\t\t\t\tvalue: '@theme/TabItem',\n\t\t\t\t\t\t\traw: \"'@theme/TabItem'\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tsourceType: 'module'\n\t\t\t}\n\t\t}\n\t};\n}\n\nexport const convertNpmToPackageManagers: Plugin<[PluginOptions?]> =\n\t({ sync = true, convertToBun = false } = { sync: true, convertToBun: false }): Transformer =>\n\tasync (root) => {\n\t\tconst { visit } = await import('unist-util-visit');\n\n\t\tlet transformed = false;\n\t\tlet alreadyImported = false;\n\n\t\tvisit(root, (node: Node) => {\n\t\t\tif (isTabsImport(node)) {\n\t\t\t\talreadyImported = true;\n\t\t\t}\n\n\t\t\tif (isParent(node)) {\n\t\t\t\tlet index = 0;\n\t\t\t\twhile (index < node.children.length) {\n\t\t\t\t\tconst child = node.children[index]!;\n\t\t\t\t\tif (matchNode(child)) {\n\t\t\t\t\t\tconst result = transformNode(child, { sync, convertToBun });\n\t\t\t\t\t\tnode.children.splice(index, 1, ...result);\n\t\t\t\t\t\tindex += result.length;\n\t\t\t\t\t\ttransformed = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tindex += 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tif (transformed && !alreadyImported) {\n\t\t\t(root as Parent).children.unshift(createImportNode());\n\t\t}\n\t};\n"]}
|
package/package.json
CHANGED
|
@@ -1,26 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sapphire/docusaurus-plugin-npm2yarn2pnpm",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.3-next.c24a7a0.0",
|
|
4
4
|
"description": "Docusaurus Remark plugin for converting NPM Commands to Yarn and Pnpm",
|
|
5
5
|
"author": "@sapphire",
|
|
6
6
|
"license": "MIT",
|
|
7
|
-
"main": "dist/index.
|
|
8
|
-
"module": "dist/index.mjs",
|
|
9
|
-
"types": "dist/index.d.
|
|
7
|
+
"main": "dist/cjs/index.cjs",
|
|
8
|
+
"module": "dist/esm/index.mjs",
|
|
9
|
+
"types": "dist/cjs/index.d.cts",
|
|
10
10
|
"exports": {
|
|
11
11
|
"import": {
|
|
12
|
-
"types": "./dist/index.d.mts",
|
|
13
|
-
"default": "./dist/index.mjs"
|
|
12
|
+
"types": "./dist/esm/index.d.mts",
|
|
13
|
+
"default": "./dist/esm/index.mjs"
|
|
14
14
|
},
|
|
15
15
|
"require": {
|
|
16
|
-
"types": "./dist/index.d.
|
|
17
|
-
"default": "./dist/index.
|
|
16
|
+
"types": "./dist/cjs/index.d.cts",
|
|
17
|
+
"default": "./dist/cjs/index.cjs"
|
|
18
18
|
}
|
|
19
19
|
},
|
|
20
20
|
"sideEffects": false,
|
|
21
21
|
"scripts": {
|
|
22
22
|
"lint": "eslint src --ext ts --fix",
|
|
23
|
-
"build": "tsup",
|
|
23
|
+
"build": "tsup && yarn build:rename-cjs-index",
|
|
24
|
+
"build:rename-cjs-index": "node ../../scripts/rename-cjs-index.mjs",
|
|
24
25
|
"typecheck": "tsc -p tsconfig.eslint.json",
|
|
25
26
|
"prepack": "yarn build",
|
|
26
27
|
"bump": "cliff-jumper",
|
|
@@ -66,8 +67,8 @@
|
|
|
66
67
|
},
|
|
67
68
|
"devDependencies": {
|
|
68
69
|
"@favware/cliff-jumper": "^2.2.3",
|
|
69
|
-
"tsup": "^
|
|
70
|
-
"typescript": "^5.
|
|
71
|
-
"vitest": "^
|
|
70
|
+
"tsup": "^8.0.1",
|
|
71
|
+
"typescript": "^5.3.3",
|
|
72
|
+
"vitest": "^1.2.1"
|
|
72
73
|
}
|
|
73
74
|
}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/npm2bun.ts","../src/npm2pnpm.ts","../src/npm2yarn.ts","../src/npm2yarn2pnpm.ts"],"sourcesContent":["export { npmToBun } from './npm2bun';\nexport { npmToPnpm } from './npm2pnpm';\nexport { npmToYarn } from './npm2yarn';\nexport { convertNpmToPackageManagers } from './npm2yarn2pnpm';\nexport type { PluginOptions } from './types';\n","const unchangedCLICommands = ['init', 'run', 'test', 'login', 'logout', 'link', 'publish', 'cache'];\n\nfunction parseNpmInstall(command: string, isShortHand = false) {\n\tif (/^install *$/.test(command)) {\n\t\treturn 'install';\n\t}\n\n\treturn command\n\t\t.replace(isShortHand ? 'i ' : 'install ', 'add ')\n\t\t.replace(/(\\s*)--save(?!-)/, '$1--save-prod')\n\t\t.replace('--no-package-lock', '');\n}\n\nconst npmToBunTable = {\n\tinstall(command: string) {\n\t\treturn parseNpmInstall(command);\n\t},\n\n\ti(command: string) {\n\t\treturn parseNpmInstall(command, true);\n\t},\n\n\tuninstall(command: string) {\n\t\treturn command\n\t\t\t.replace('uninstall', 'remove')\n\t\t\t.replace(/(\\s*)--save(?!-)/, '$1--save-prod')\n\t\t\t.replace('--no-package-lock', '');\n\t},\n\n\tversion(command: string) {\n\t\treturn command.replace(/(major|minor|patch)/, '--$1');\n\t},\n\n\trebuild(command: string) {\n\t\treturn command.replace('rebuild', 'add --force');\n\t}\n} as const;\n\nfunction convert(_: string, command: string) {\n\tcommand = (command ?? '').trim();\n\tconst firstCommand = (/\\w+/.exec(command) || [''])[0];\n\n\tif (unchangedCLICommands.includes(firstCommand)) {\n\t\treturn `bun ${command}`;\n\t}\n\n\tif (firstCommand in npmToBunTable) {\n\t\tconst converter = npmToBunTable[firstCommand as keyof typeof npmToBunTable];\n\n\t\tif (typeof converter === 'function') {\n\t\t\treturn `bun ${converter(command)}`;\n\t\t}\n\n\t\treturn `bun ${command.replace(firstCommand, converter)}`;\n\t}\n\n\treturn `bun ${command}\\n# couldn't auto-convert command`;\n}\n\nexport function npmToBun(str: string) {\n\treturn str.replace(/npm(?: +([^&\\n\\r]*))?/gm, convert);\n}\n","/**\n * Copyright (c) 2019 Ben Gubler <nebrelbug@gmail.com>\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nconst unchangedCLICommands = ['init', 'run', 'test', 'login', 'logout', 'link', 'publish', 'cache'];\n\nfunction parseNpmInstall(command: string, isShortHand = false) {\n\tif (/^install *$/.test(command)) {\n\t\treturn 'install';\n\t}\n\n\treturn command\n\t\t.replace(isShortHand ? 'i ' : 'install ', 'add ')\n\t\t.replace(/(\\s*)--save(?!-)/, '$1--save-prod')\n\t\t.replace('--no-package-lock', '');\n}\n\nconst npmToPnpmTable = {\n\tinstall(command: string) {\n\t\treturn parseNpmInstall(command);\n\t},\n\n\ti(command: string) {\n\t\treturn parseNpmInstall(command, true);\n\t},\n\n\tuninstall(command: string) {\n\t\treturn command\n\t\t\t.replace('uninstall', 'remove')\n\t\t\t.replace(/(\\s*)--save(?!-)/, '$1--save-prod')\n\t\t\t.replace('--no-package-lock', '');\n\t},\n\n\tversion(command: string) {\n\t\treturn command.replace(/(major|minor|patch)/, '--$1');\n\t},\n\n\trebuild(command: string) {\n\t\treturn command.replace('rebuild', 'add --force');\n\t}\n} as const;\n\nfunction convert(_: string, command: string) {\n\tcommand = (command ?? '').trim();\n\tconst firstCommand = (/\\w+/.exec(command) || [''])[0];\n\n\tif (unchangedCLICommands.includes(firstCommand)) {\n\t\treturn `pnpm ${command}`;\n\t}\n\n\tif (firstCommand in npmToPnpmTable) {\n\t\tconst converter = npmToPnpmTable[firstCommand as keyof typeof npmToPnpmTable];\n\n\t\tif (typeof converter === 'function') {\n\t\t\treturn `pnpm ${converter(command)}`;\n\t\t}\n\n\t\treturn `pnpm ${command.replace(firstCommand, converter)}`;\n\t}\n\n\treturn `pnpm ${command}\\n# couldn't auto-convert command`;\n}\n\nexport function npmToPnpm(str: string) {\n\treturn str.replace(/npm(?: +([^&\\n\\r]*))?/gm, convert);\n}\n","/**\n * Copyright (c) 2019 Ben Gubler <nebrelbug@gmail.com>\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nexport const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache'];\nexport const yarnCLICommands = [\n\t'init',\n\t'run',\n\t'add',\n\t'audit',\n\t'autoclean',\n\t'bin',\n\t'check',\n\t'config',\n\t'create',\n\t'dedupe',\n\t'generate-lock-entry',\n\t'global',\n\t'help',\n\t'import',\n\t'info',\n\t'install',\n\t'licenses',\n\t'list',\n\t'lockfile',\n\t'outdated',\n\t'owner',\n\t'pack',\n\t'policies',\n\t'prune',\n\t'remove',\n\t'self-update',\n\t'tag',\n\t'team',\n\t'link',\n\t'unlink',\n\t'upgrade',\n\t'upgrade-interactive',\n\t'version',\n\t'versions',\n\t'why',\n\t'workspace',\n\t'workspaces'\n];\n\nfunction parseNpmInstall(command: string, isShortHand = false) {\n\tif (/^install *$/.test(command)) {\n\t\treturn 'install';\n\t}\n\n\tlet yarnAddCommand = command\n\t\t.replace(isShortHand ? 'i ' : 'install ', 'add ')\n\t\t.replace('--save-dev', '--dev')\n\t\t.replace(/\\s*--save(?!-)/, '')\n\t\t.replace('--no-package-lock', '--no-lockfile')\n\t\t.replace('--save-optional', '--optional')\n\t\t.replace('--save-exact', '--exact');\n\n\tif (/ -(?:-global|g)(?![^\\b])/.test(yarnAddCommand)) {\n\t\tyarnAddCommand = yarnAddCommand.replace(/ -(?:-global|g)(?![^\\b])/, '');\n\t\tyarnAddCommand = `global ${yarnAddCommand}`;\n\t}\n\n\treturn yarnAddCommand;\n}\n\nconst npmToYarnTable = {\n\tinstall(command: string) {\n\t\treturn parseNpmInstall(command);\n\t},\n\n\ti(command: string) {\n\t\treturn parseNpmInstall(command, true);\n\t},\n\n\tuninstall(command: string) {\n\t\tlet yarnRemoveCommand = command\n\t\t\t.replace('uninstall', 'remove')\n\t\t\t.replace('--save-dev', '--dev')\n\t\t\t.replace(/\\s*--save(?!-)/, '')\n\t\t\t.replace('--no-package-lock', '--no-lockfile');\n\n\t\tif (/ -(?:-global|g)(?![^\\b])/.test(yarnRemoveCommand)) {\n\t\t\tyarnRemoveCommand = yarnRemoveCommand.replace(/ -(?:-global|g)(?![^\\b])/, '');\n\t\t\tyarnRemoveCommand = `global ${yarnRemoveCommand}`;\n\t\t}\n\n\t\treturn yarnRemoveCommand;\n\t},\n\n\trebuild(command: string) {\n\t\treturn command.replace('rebuild', 'add --force');\n\t},\n\n\texec(command: string) {\n\t\treturn command.replace(/^exec\\s?([^\\s]+)?(\\s--\\s--)?(.*)$/, (_, data?: string, dash?: string, rest?: string): string => {\n\t\t\tlet result = '';\n\n\t\t\tif (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) {\n\t\t\t\tresult += data;\n\t\t\t} else {\n\t\t\t\tresult += `run ${data || ''}`;\n\t\t\t}\n\n\t\t\tif (dash) {\n\t\t\t\tresult += dash.replace(/^\\s--/, '');\n\t\t\t}\n\n\t\t\tif (rest) {\n\t\t\t\tresult += rest;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t});\n\t},\n\n\trun(command: string) {\n\t\treturn command.replace(/^run\\s?([^\\s]+)?(\\s--\\s--)?(.*)$/, (_, data?: string, dash?: string, rest?: string): string => {\n\t\t\tlet result = '';\n\n\t\t\tif (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) {\n\t\t\t\tresult += data;\n\t\t\t} else {\n\t\t\t\tresult += `run ${data || ''}`;\n\t\t\t}\n\n\t\t\tif (dash) {\n\t\t\t\tresult += dash.replace(/^\\s--/, '');\n\t\t\t}\n\n\t\t\tif (rest) {\n\t\t\t\tresult += rest;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t});\n\t},\n\n\tls(command: string) {\n\t\treturn command.replace(/^(ls|list)(.*)$/, (_1, _2: string, args: string): string => {\n\t\t\tlet result = 'list';\n\n\t\t\tif (args) {\n\t\t\t\tlet ended = false;\n\t\t\t\tlet packages = [];\n\t\t\t\tconst items = args.split(' ').filter(Boolean);\n\n\t\t\t\tfor (const item of items) {\n\t\t\t\t\tif (ended) {\n\t\t\t\t\t\tresult += ` ${item}`;\n\t\t\t\t\t} else if (item.startsWith('-')) {\n\t\t\t\t\t\tresult += ` --pattern \"${packages.join('|')}\"`;\n\t\t\t\t\t\tpackages = [];\n\t\t\t\t\t\tended = true;\n\t\t\t\t\t\tresult += ` ${item}`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpackages.push(item);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (packages.length > 0) {\n\t\t\t\t\tresult += ` --pattern \"${packages.join('|')}\"`;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\treturn 'list';\n\t\t});\n\t},\n\n\tlist(command: string) {\n\t\treturn npmToYarnTable.ls(command);\n\t},\n\n\tinit(command: string) {\n\t\tif (/^init (?!-).*$/.test(command)) {\n\t\t\treturn command.replace('init', 'create');\n\t\t}\n\n\t\treturn command.replace(' --scope', '');\n\t}\n} as const;\n\nfunction convert(_: string, command: string) {\n\tcommand = (command || '').trim();\n\tconst firstCommand = (/\\w+/.exec(command) || [''])[0];\n\n\tif (unchangedCLICommands.includes(firstCommand)) {\n\t\treturn `yarn ${command}`;\n\t}\n\n\tif (firstCommand in npmToYarnTable) {\n\t\tconst converter = npmToYarnTable[firstCommand as keyof typeof npmToYarnTable];\n\n\t\tif (typeof converter === 'function') {\n\t\t\treturn `yarn ${converter(command)}`;\n\t\t}\n\n\t\treturn `yarn ${command.replace(firstCommand, converter)}`;\n\t}\n\n\treturn `yarn ${command}\\n# couldn't auto-convert command`;\n}\n\nexport function npmToYarn(str: string) {\n\treturn str.replace(/npm(?: +([^&\\n\\r]*))?/gm, convert);\n}\n","import type { Code, Literal, RootContent } from 'mdast';\nimport type { MdxJsxAttribute, MdxJsxFlowElement } from 'mdast-util-mdx';\nimport type { Plugin, Transformer } from 'unified';\nimport type { Node, Parent } from 'unist';\n\nimport { npmToBun } from './npm2bun';\nimport { npmToPnpm } from './npm2pnpm';\nimport { npmToYarn } from './npm2yarn';\nimport type { PluginOptions } from './types';\n\nfunction createAttribute(attributeName: string, attributeValue: MdxJsxAttribute['value']): MdxJsxAttribute {\n\treturn {\n\t\ttype: 'mdxJsxAttribute',\n\t\tname: attributeName,\n\t\tvalue: attributeValue\n\t};\n}\n\ninterface CreateTabItemOptions {\n\tcode: string;\n\tnode: Code;\n\tvalue: 'npm' | 'yarn' | 'pnpm' | 'bun';\n}\n\nfunction createTabItem({ code, node, value }: CreateTabItemOptions): MdxJsxFlowElement {\n\tconst [, highlight] = (node.meta ?? '').split('|');\n\n\treturn {\n\t\ttype: 'mdxJsxFlowElement',\n\t\tname: 'TabItem',\n\t\tattributes: [createAttribute('value', value), createAttribute('label', value)],\n\t\tchildren: [\n\t\t\t{\n\t\t\t\ttype: node.type,\n\t\t\t\tlang: node.lang,\n\t\t\t\tvalue: code,\n\t\t\t\tmeta: `${highlight} showLineNumbers`\n\t\t\t}\n\t\t]\n\t};\n}\n\n/**\n * A Docusaurus plugin that transforms code blocks from NPM to Yarn, Pnpm, and optionally to Bun.\n *\n * @param options - The plugin options to customize the transformation behavior.\n * - `sync` (optional): A boolean indicating whether to synchronize code examples (default: `true`).\n * - `convertToBun` (optional): A boolean indicating whether to include a Bun option (default: `false`).\n * Set this option to `true` to enable Bun code transformation.\n *\n * @returns A unified plugin function that can be used to transform Docusaurus content.\n *\n * @remarks This plugin searches for code blocks within the provided Markdown content and\n * converts them into Tabs, allowing users to switch between NPM, Yarn, and Pnpm examples.\n * Additionally, it can include a Bun option when the `convertToBun` option is set to `true`.\n * If the Tabs component is not already imported, it adds the necessary import statement.\n */\nconst transformNode = (node: Code, options: PluginOptions) => {\n\tconst groupIdProp = {\n\t\ttype: 'mdxJsxAttribute',\n\t\tname: 'groupId',\n\t\tvalue: 'npm2yarn2pnpm'\n\t};\n\n\t// const groupIdProp = options.sync ? ' groupId=\"npm2yarn2pnpm\"' : '';\n\tconst npmCode = node.value;\n\n\tconst yarnCode = npmToYarn(node.value);\n\tconst pnpmCode = npmToPnpm(node.value);\n\tconst bunCode = npmToBun(node.value);\n\n\treturn [\n\t\t{\n\t\t\ttype: 'mdxJsxFlowElement',\n\t\t\tname: 'Tabs',\n\t\t\t...(options.sync && {\n\t\t\t\tattributes: [groupIdProp]\n\t\t\t}),\n\t\t\tchildren: [\n\t\t\t\tcreateTabItem({\n\t\t\t\t\tcode: npmCode,\n\t\t\t\t\tnode,\n\t\t\t\t\tvalue: 'npm'\n\t\t\t\t}),\n\t\t\t\tcreateTabItem({\n\t\t\t\t\tcode: yarnCode,\n\t\t\t\t\tnode,\n\t\t\t\t\tvalue: 'yarn'\n\t\t\t\t}),\n\t\t\t\tcreateTabItem({\n\t\t\t\t\tcode: pnpmCode,\n\t\t\t\t\tnode,\n\t\t\t\t\tvalue: 'pnpm'\n\t\t\t\t}),\n\t\t\t\t...(options.convertToBun\n\t\t\t\t\t? [\n\t\t\t\t\t\t\tcreateTabItem({\n\t\t\t\t\t\t\t\tcode: bunCode,\n\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t\tvalue: 'bun'\n\t\t\t\t\t\t\t})\n\t\t\t\t\t ]\n\t\t\t\t\t: [])\n\t\t\t]\n\t\t}\n\t] as RootContent[];\n};\n\nconst isMdxEsmLiteral = (node: Node): node is Literal => node.type === 'mdxjsEsm';\nconst isTabsImport = (node: Node): boolean => isMdxEsmLiteral(node) && node.value.includes('@theme/Tabs');\nconst isParent = (node: Node): node is Parent => Array.isArray((node as Parent).children);\nconst matchNode = (node: Node): node is Code =>\n\tnode.type === 'code' && typeof (node as Code).meta === 'string' && ((node as Code).meta ?? '').startsWith('npm2yarn2pnpm');\n\nfunction createImportNode() {\n\treturn {\n\t\ttype: 'mdxjsEsm',\n\t\tvalue: \"import Tabs from '@theme/Tabs'\\nimport TabItem from '@theme/TabItem'\",\n\t\tdata: {\n\t\t\testree: {\n\t\t\t\ttype: 'Program',\n\t\t\t\tbody: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'ImportDeclaration',\n\t\t\t\t\t\tspecifiers: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'ImportDefaultSpecifier',\n\t\t\t\t\t\t\t\tlocal: { type: 'Identifier', name: 'Tabs' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\tsource: {\n\t\t\t\t\t\t\ttype: 'Literal',\n\t\t\t\t\t\t\tvalue: '@theme/Tabs',\n\t\t\t\t\t\t\traw: \"'@theme/Tabs'\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'ImportDeclaration',\n\t\t\t\t\t\tspecifiers: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'ImportDefaultSpecifier',\n\t\t\t\t\t\t\t\tlocal: { type: 'Identifier', name: 'TabItem' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\tsource: {\n\t\t\t\t\t\t\ttype: 'Literal',\n\t\t\t\t\t\t\tvalue: '@theme/TabItem',\n\t\t\t\t\t\t\traw: \"'@theme/TabItem'\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tsourceType: 'module'\n\t\t\t}\n\t\t}\n\t};\n}\n\nexport const convertNpmToPackageManagers: Plugin<[PluginOptions?]> =\n\t({ sync = true, convertToBun = false } = { sync: true, convertToBun: false }): Transformer =>\n\tasync (root) => {\n\t\tconst { visit } = await import('unist-util-visit');\n\n\t\tlet transformed = false;\n\t\tlet alreadyImported = false;\n\n\t\tvisit(root, (node: Node) => {\n\t\t\tif (isTabsImport(node)) {\n\t\t\t\talreadyImported = true;\n\t\t\t}\n\n\t\t\tif (isParent(node)) {\n\t\t\t\tlet index = 0;\n\t\t\t\twhile (index < node.children.length) {\n\t\t\t\t\tconst child = node.children[index]!;\n\t\t\t\t\tif (matchNode(child)) {\n\t\t\t\t\t\tconst result = transformNode(child, { sync, convertToBun });\n\t\t\t\t\t\tnode.children.splice(index, 1, ...result);\n\t\t\t\t\t\tindex += result.length;\n\t\t\t\t\t\ttransformed = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tindex += 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tif (transformed && !alreadyImported) {\n\t\t\t(root as Parent).children.unshift(createImportNode());\n\t\t}\n\t};\n"],"mappings":"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","names":["unchangedCLICommands","parseNpmInstall","convert","unchangedCLICommands","parseNpmInstall","convert"]}
|
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/npm2bun.ts","../src/npm2pnpm.ts","../src/npm2yarn.ts","../src/npm2yarn2pnpm.ts"],"sourcesContent":["const unchangedCLICommands = ['init', 'run', 'test', 'login', 'logout', 'link', 'publish', 'cache'];\n\nfunction parseNpmInstall(command: string, isShortHand = false) {\n\tif (/^install *$/.test(command)) {\n\t\treturn 'install';\n\t}\n\n\treturn command\n\t\t.replace(isShortHand ? 'i ' : 'install ', 'add ')\n\t\t.replace(/(\\s*)--save(?!-)/, '$1--save-prod')\n\t\t.replace('--no-package-lock', '');\n}\n\nconst npmToBunTable = {\n\tinstall(command: string) {\n\t\treturn parseNpmInstall(command);\n\t},\n\n\ti(command: string) {\n\t\treturn parseNpmInstall(command, true);\n\t},\n\n\tuninstall(command: string) {\n\t\treturn command\n\t\t\t.replace('uninstall', 'remove')\n\t\t\t.replace(/(\\s*)--save(?!-)/, '$1--save-prod')\n\t\t\t.replace('--no-package-lock', '');\n\t},\n\n\tversion(command: string) {\n\t\treturn command.replace(/(major|minor|patch)/, '--$1');\n\t},\n\n\trebuild(command: string) {\n\t\treturn command.replace('rebuild', 'add --force');\n\t}\n} as const;\n\nfunction convert(_: string, command: string) {\n\tcommand = (command ?? '').trim();\n\tconst firstCommand = (/\\w+/.exec(command) || [''])[0];\n\n\tif (unchangedCLICommands.includes(firstCommand)) {\n\t\treturn `bun ${command}`;\n\t}\n\n\tif (firstCommand in npmToBunTable) {\n\t\tconst converter = npmToBunTable[firstCommand as keyof typeof npmToBunTable];\n\n\t\tif (typeof converter === 'function') {\n\t\t\treturn `bun ${converter(command)}`;\n\t\t}\n\n\t\treturn `bun ${command.replace(firstCommand, converter)}`;\n\t}\n\n\treturn `bun ${command}\\n# couldn't auto-convert command`;\n}\n\nexport function npmToBun(str: string) {\n\treturn str.replace(/npm(?: +([^&\\n\\r]*))?/gm, convert);\n}\n","/**\n * Copyright (c) 2019 Ben Gubler <nebrelbug@gmail.com>\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nconst unchangedCLICommands = ['init', 'run', 'test', 'login', 'logout', 'link', 'publish', 'cache'];\n\nfunction parseNpmInstall(command: string, isShortHand = false) {\n\tif (/^install *$/.test(command)) {\n\t\treturn 'install';\n\t}\n\n\treturn command\n\t\t.replace(isShortHand ? 'i ' : 'install ', 'add ')\n\t\t.replace(/(\\s*)--save(?!-)/, '$1--save-prod')\n\t\t.replace('--no-package-lock', '');\n}\n\nconst npmToPnpmTable = {\n\tinstall(command: string) {\n\t\treturn parseNpmInstall(command);\n\t},\n\n\ti(command: string) {\n\t\treturn parseNpmInstall(command, true);\n\t},\n\n\tuninstall(command: string) {\n\t\treturn command\n\t\t\t.replace('uninstall', 'remove')\n\t\t\t.replace(/(\\s*)--save(?!-)/, '$1--save-prod')\n\t\t\t.replace('--no-package-lock', '');\n\t},\n\n\tversion(command: string) {\n\t\treturn command.replace(/(major|minor|patch)/, '--$1');\n\t},\n\n\trebuild(command: string) {\n\t\treturn command.replace('rebuild', 'add --force');\n\t}\n} as const;\n\nfunction convert(_: string, command: string) {\n\tcommand = (command ?? '').trim();\n\tconst firstCommand = (/\\w+/.exec(command) || [''])[0];\n\n\tif (unchangedCLICommands.includes(firstCommand)) {\n\t\treturn `pnpm ${command}`;\n\t}\n\n\tif (firstCommand in npmToPnpmTable) {\n\t\tconst converter = npmToPnpmTable[firstCommand as keyof typeof npmToPnpmTable];\n\n\t\tif (typeof converter === 'function') {\n\t\t\treturn `pnpm ${converter(command)}`;\n\t\t}\n\n\t\treturn `pnpm ${command.replace(firstCommand, converter)}`;\n\t}\n\n\treturn `pnpm ${command}\\n# couldn't auto-convert command`;\n}\n\nexport function npmToPnpm(str: string) {\n\treturn str.replace(/npm(?: +([^&\\n\\r]*))?/gm, convert);\n}\n","/**\n * Copyright (c) 2019 Ben Gubler <nebrelbug@gmail.com>\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nexport const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache'];\nexport const yarnCLICommands = [\n\t'init',\n\t'run',\n\t'add',\n\t'audit',\n\t'autoclean',\n\t'bin',\n\t'check',\n\t'config',\n\t'create',\n\t'dedupe',\n\t'generate-lock-entry',\n\t'global',\n\t'help',\n\t'import',\n\t'info',\n\t'install',\n\t'licenses',\n\t'list',\n\t'lockfile',\n\t'outdated',\n\t'owner',\n\t'pack',\n\t'policies',\n\t'prune',\n\t'remove',\n\t'self-update',\n\t'tag',\n\t'team',\n\t'link',\n\t'unlink',\n\t'upgrade',\n\t'upgrade-interactive',\n\t'version',\n\t'versions',\n\t'why',\n\t'workspace',\n\t'workspaces'\n];\n\nfunction parseNpmInstall(command: string, isShortHand = false) {\n\tif (/^install *$/.test(command)) {\n\t\treturn 'install';\n\t}\n\n\tlet yarnAddCommand = command\n\t\t.replace(isShortHand ? 'i ' : 'install ', 'add ')\n\t\t.replace('--save-dev', '--dev')\n\t\t.replace(/\\s*--save(?!-)/, '')\n\t\t.replace('--no-package-lock', '--no-lockfile')\n\t\t.replace('--save-optional', '--optional')\n\t\t.replace('--save-exact', '--exact');\n\n\tif (/ -(?:-global|g)(?![^\\b])/.test(yarnAddCommand)) {\n\t\tyarnAddCommand = yarnAddCommand.replace(/ -(?:-global|g)(?![^\\b])/, '');\n\t\tyarnAddCommand = `global ${yarnAddCommand}`;\n\t}\n\n\treturn yarnAddCommand;\n}\n\nconst npmToYarnTable = {\n\tinstall(command: string) {\n\t\treturn parseNpmInstall(command);\n\t},\n\n\ti(command: string) {\n\t\treturn parseNpmInstall(command, true);\n\t},\n\n\tuninstall(command: string) {\n\t\tlet yarnRemoveCommand = command\n\t\t\t.replace('uninstall', 'remove')\n\t\t\t.replace('--save-dev', '--dev')\n\t\t\t.replace(/\\s*--save(?!-)/, '')\n\t\t\t.replace('--no-package-lock', '--no-lockfile');\n\n\t\tif (/ -(?:-global|g)(?![^\\b])/.test(yarnRemoveCommand)) {\n\t\t\tyarnRemoveCommand = yarnRemoveCommand.replace(/ -(?:-global|g)(?![^\\b])/, '');\n\t\t\tyarnRemoveCommand = `global ${yarnRemoveCommand}`;\n\t\t}\n\n\t\treturn yarnRemoveCommand;\n\t},\n\n\trebuild(command: string) {\n\t\treturn command.replace('rebuild', 'add --force');\n\t},\n\n\texec(command: string) {\n\t\treturn command.replace(/^exec\\s?([^\\s]+)?(\\s--\\s--)?(.*)$/, (_, data?: string, dash?: string, rest?: string): string => {\n\t\t\tlet result = '';\n\n\t\t\tif (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) {\n\t\t\t\tresult += data;\n\t\t\t} else {\n\t\t\t\tresult += `run ${data || ''}`;\n\t\t\t}\n\n\t\t\tif (dash) {\n\t\t\t\tresult += dash.replace(/^\\s--/, '');\n\t\t\t}\n\n\t\t\tif (rest) {\n\t\t\t\tresult += rest;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t});\n\t},\n\n\trun(command: string) {\n\t\treturn command.replace(/^run\\s?([^\\s]+)?(\\s--\\s--)?(.*)$/, (_, data?: string, dash?: string, rest?: string): string => {\n\t\t\tlet result = '';\n\n\t\t\tif (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) {\n\t\t\t\tresult += data;\n\t\t\t} else {\n\t\t\t\tresult += `run ${data || ''}`;\n\t\t\t}\n\n\t\t\tif (dash) {\n\t\t\t\tresult += dash.replace(/^\\s--/, '');\n\t\t\t}\n\n\t\t\tif (rest) {\n\t\t\t\tresult += rest;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t});\n\t},\n\n\tls(command: string) {\n\t\treturn command.replace(/^(ls|list)(.*)$/, (_1, _2: string, args: string): string => {\n\t\t\tlet result = 'list';\n\n\t\t\tif (args) {\n\t\t\t\tlet ended = false;\n\t\t\t\tlet packages = [];\n\t\t\t\tconst items = args.split(' ').filter(Boolean);\n\n\t\t\t\tfor (const item of items) {\n\t\t\t\t\tif (ended) {\n\t\t\t\t\t\tresult += ` ${item}`;\n\t\t\t\t\t} else if (item.startsWith('-')) {\n\t\t\t\t\t\tresult += ` --pattern \"${packages.join('|')}\"`;\n\t\t\t\t\t\tpackages = [];\n\t\t\t\t\t\tended = true;\n\t\t\t\t\t\tresult += ` ${item}`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpackages.push(item);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (packages.length > 0) {\n\t\t\t\t\tresult += ` --pattern \"${packages.join('|')}\"`;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\treturn 'list';\n\t\t});\n\t},\n\n\tlist(command: string) {\n\t\treturn npmToYarnTable.ls(command);\n\t},\n\n\tinit(command: string) {\n\t\tif (/^init (?!-).*$/.test(command)) {\n\t\t\treturn command.replace('init', 'create');\n\t\t}\n\n\t\treturn command.replace(' --scope', '');\n\t}\n} as const;\n\nfunction convert(_: string, command: string) {\n\tcommand = (command || '').trim();\n\tconst firstCommand = (/\\w+/.exec(command) || [''])[0];\n\n\tif (unchangedCLICommands.includes(firstCommand)) {\n\t\treturn `yarn ${command}`;\n\t}\n\n\tif (firstCommand in npmToYarnTable) {\n\t\tconst converter = npmToYarnTable[firstCommand as keyof typeof npmToYarnTable];\n\n\t\tif (typeof converter === 'function') {\n\t\t\treturn `yarn ${converter(command)}`;\n\t\t}\n\n\t\treturn `yarn ${command.replace(firstCommand, converter)}`;\n\t}\n\n\treturn `yarn ${command}\\n# couldn't auto-convert command`;\n}\n\nexport function npmToYarn(str: string) {\n\treturn str.replace(/npm(?: +([^&\\n\\r]*))?/gm, convert);\n}\n","import type { Code, Literal, RootContent } from 'mdast';\nimport type { MdxJsxAttribute, MdxJsxFlowElement } from 'mdast-util-mdx';\nimport type { Plugin, Transformer } from 'unified';\nimport type { Node, Parent } from 'unist';\n\nimport { npmToBun } from './npm2bun';\nimport { npmToPnpm } from './npm2pnpm';\nimport { npmToYarn } from './npm2yarn';\nimport type { PluginOptions } from './types';\n\nfunction createAttribute(attributeName: string, attributeValue: MdxJsxAttribute['value']): MdxJsxAttribute {\n\treturn {\n\t\ttype: 'mdxJsxAttribute',\n\t\tname: attributeName,\n\t\tvalue: attributeValue\n\t};\n}\n\ninterface CreateTabItemOptions {\n\tcode: string;\n\tnode: Code;\n\tvalue: 'npm' | 'yarn' | 'pnpm' | 'bun';\n}\n\nfunction createTabItem({ code, node, value }: CreateTabItemOptions): MdxJsxFlowElement {\n\tconst [, highlight] = (node.meta ?? '').split('|');\n\n\treturn {\n\t\ttype: 'mdxJsxFlowElement',\n\t\tname: 'TabItem',\n\t\tattributes: [createAttribute('value', value), createAttribute('label', value)],\n\t\tchildren: [\n\t\t\t{\n\t\t\t\ttype: node.type,\n\t\t\t\tlang: node.lang,\n\t\t\t\tvalue: code,\n\t\t\t\tmeta: `${highlight} showLineNumbers`\n\t\t\t}\n\t\t]\n\t};\n}\n\n/**\n * A Docusaurus plugin that transforms code blocks from NPM to Yarn, Pnpm, and optionally to Bun.\n *\n * @param options - The plugin options to customize the transformation behavior.\n * - `sync` (optional): A boolean indicating whether to synchronize code examples (default: `true`).\n * - `convertToBun` (optional): A boolean indicating whether to include a Bun option (default: `false`).\n * Set this option to `true` to enable Bun code transformation.\n *\n * @returns A unified plugin function that can be used to transform Docusaurus content.\n *\n * @remarks This plugin searches for code blocks within the provided Markdown content and\n * converts them into Tabs, allowing users to switch between NPM, Yarn, and Pnpm examples.\n * Additionally, it can include a Bun option when the `convertToBun` option is set to `true`.\n * If the Tabs component is not already imported, it adds the necessary import statement.\n */\nconst transformNode = (node: Code, options: PluginOptions) => {\n\tconst groupIdProp = {\n\t\ttype: 'mdxJsxAttribute',\n\t\tname: 'groupId',\n\t\tvalue: 'npm2yarn2pnpm'\n\t};\n\n\t// const groupIdProp = options.sync ? ' groupId=\"npm2yarn2pnpm\"' : '';\n\tconst npmCode = node.value;\n\n\tconst yarnCode = npmToYarn(node.value);\n\tconst pnpmCode = npmToPnpm(node.value);\n\tconst bunCode = npmToBun(node.value);\n\n\treturn [\n\t\t{\n\t\t\ttype: 'mdxJsxFlowElement',\n\t\t\tname: 'Tabs',\n\t\t\t...(options.sync && {\n\t\t\t\tattributes: [groupIdProp]\n\t\t\t}),\n\t\t\tchildren: [\n\t\t\t\tcreateTabItem({\n\t\t\t\t\tcode: npmCode,\n\t\t\t\t\tnode,\n\t\t\t\t\tvalue: 'npm'\n\t\t\t\t}),\n\t\t\t\tcreateTabItem({\n\t\t\t\t\tcode: yarnCode,\n\t\t\t\t\tnode,\n\t\t\t\t\tvalue: 'yarn'\n\t\t\t\t}),\n\t\t\t\tcreateTabItem({\n\t\t\t\t\tcode: pnpmCode,\n\t\t\t\t\tnode,\n\t\t\t\t\tvalue: 'pnpm'\n\t\t\t\t}),\n\t\t\t\t...(options.convertToBun\n\t\t\t\t\t? [\n\t\t\t\t\t\t\tcreateTabItem({\n\t\t\t\t\t\t\t\tcode: bunCode,\n\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t\tvalue: 'bun'\n\t\t\t\t\t\t\t})\n\t\t\t\t\t ]\n\t\t\t\t\t: [])\n\t\t\t]\n\t\t}\n\t] as RootContent[];\n};\n\nconst isMdxEsmLiteral = (node: Node): node is Literal => node.type === 'mdxjsEsm';\nconst isTabsImport = (node: Node): boolean => isMdxEsmLiteral(node) && node.value.includes('@theme/Tabs');\nconst isParent = (node: Node): node is Parent => Array.isArray((node as Parent).children);\nconst matchNode = (node: Node): node is Code =>\n\tnode.type === 'code' && typeof (node as Code).meta === 'string' && ((node as Code).meta ?? '').startsWith('npm2yarn2pnpm');\n\nfunction createImportNode() {\n\treturn {\n\t\ttype: 'mdxjsEsm',\n\t\tvalue: \"import Tabs from '@theme/Tabs'\\nimport TabItem from '@theme/TabItem'\",\n\t\tdata: {\n\t\t\testree: {\n\t\t\t\ttype: 'Program',\n\t\t\t\tbody: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'ImportDeclaration',\n\t\t\t\t\t\tspecifiers: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'ImportDefaultSpecifier',\n\t\t\t\t\t\t\t\tlocal: { type: 'Identifier', name: 'Tabs' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\tsource: {\n\t\t\t\t\t\t\ttype: 'Literal',\n\t\t\t\t\t\t\tvalue: '@theme/Tabs',\n\t\t\t\t\t\t\traw: \"'@theme/Tabs'\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'ImportDeclaration',\n\t\t\t\t\t\tspecifiers: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'ImportDefaultSpecifier',\n\t\t\t\t\t\t\t\tlocal: { type: 'Identifier', name: 'TabItem' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\tsource: {\n\t\t\t\t\t\t\ttype: 'Literal',\n\t\t\t\t\t\t\tvalue: '@theme/TabItem',\n\t\t\t\t\t\t\traw: \"'@theme/TabItem'\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tsourceType: 'module'\n\t\t\t}\n\t\t}\n\t};\n}\n\nexport const convertNpmToPackageManagers: Plugin<[PluginOptions?]> =\n\t({ sync = true, convertToBun = false } = { sync: true, convertToBun: false }): Transformer =>\n\tasync (root) => {\n\t\tconst { visit } = await import('unist-util-visit');\n\n\t\tlet transformed = false;\n\t\tlet alreadyImported = false;\n\n\t\tvisit(root, (node: Node) => {\n\t\t\tif (isTabsImport(node)) {\n\t\t\t\talreadyImported = true;\n\t\t\t}\n\n\t\t\tif (isParent(node)) {\n\t\t\t\tlet index = 0;\n\t\t\t\twhile (index < node.children.length) {\n\t\t\t\t\tconst child = node.children[index]!;\n\t\t\t\t\tif (matchNode(child)) {\n\t\t\t\t\t\tconst result = transformNode(child, { sync, convertToBun });\n\t\t\t\t\t\tnode.children.splice(index, 1, ...result);\n\t\t\t\t\t\tindex += result.length;\n\t\t\t\t\t\ttransformed = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tindex += 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tif (transformed && !alreadyImported) {\n\t\t\t(root as Parent).children.unshift(createImportNode());\n\t\t}\n\t};\n"],"mappings":"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","names":["unchangedCLICommands","parseNpmInstall","convert","unchangedCLICommands","parseNpmInstall","convert"]}
|
|
File without changes
|
|
File without changes
|