@sapphire/docusaurus-plugin-npm2yarn2pnpm 2.0.3-next.ed47f99.0 → 2.0.3-next.f828055
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/index.mjs.map +1 -1
- package/package.json +6 -6
package/dist/cjs/index.cjs
CHANGED
|
@@ -412,5 +412,5 @@ exports.convertNpmToPackageManagers = convertNpmToPackageManagers;
|
|
|
412
412
|
exports.npmToBun = npmToBun;
|
|
413
413
|
exports.npmToPnpm = npmToPnpm;
|
|
414
414
|
exports.npmToYarn = npmToYarn;
|
|
415
|
-
//# sourceMappingURL=
|
|
415
|
+
//# sourceMappingURL=index.cjs.map
|
|
416
416
|
//# sourceMappingURL=index.cjs.map
|
package/dist/esm/index.mjs
CHANGED
|
@@ -407,5 +407,5 @@ var convertNpmToPackageManagers = /* @__PURE__ */ __name(({ sync = true, convert
|
|
|
407
407
|
}, "convertNpmToPackageManagers");
|
|
408
408
|
|
|
409
409
|
export { convertNpmToPackageManagers, npmToBun, npmToPnpm, npmToYarn };
|
|
410
|
-
//# sourceMappingURL=
|
|
410
|
+
//# sourceMappingURL=index.mjs.map
|
|
411
411
|
//# sourceMappingURL=index.mjs.map
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/npm2bun.ts","../../src/npm2pnpm.ts","../../src/npm2yarn.ts","../../src/npm2yarn2pnpm.ts"],"names":["unchangedCLICommands","parseNpmInstall","convert"],"mappings":"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","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"]}
|
|
1
|
+
{"version":3,"sources":["../../src/npm2bun.ts","../../src/npm2pnpm.ts","../../src/npm2yarn.ts","../../src/npm2yarn2pnpm.ts"],"names":["unchangedCLICommands","parseNpmInstall","convert"],"mappings":"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","file":"index.mjs","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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sapphire/docusaurus-plugin-npm2yarn2pnpm",
|
|
3
|
-
"version": "2.0.3-next.
|
|
3
|
+
"version": "2.0.3-next.f828055",
|
|
4
4
|
"description": "Docusaurus Remark plugin for converting NPM Commands to Yarn and Pnpm",
|
|
5
5
|
"author": "@sapphire",
|
|
6
6
|
"license": "MIT",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"mdast-util-mdx": "^3.0.0",
|
|
33
|
-
"unified": "^11.0.
|
|
33
|
+
"unified": "^11.0.5",
|
|
34
34
|
"unist-util-visit": "^5.0.0"
|
|
35
35
|
},
|
|
36
36
|
"repository": {
|
|
@@ -66,9 +66,9 @@
|
|
|
66
66
|
"access": "public"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"@favware/cliff-jumper": "^
|
|
70
|
-
"tsup": "^8.0
|
|
71
|
-
"typescript": "
|
|
72
|
-
"vitest": "^
|
|
69
|
+
"@favware/cliff-jumper": "^6.0.0",
|
|
70
|
+
"tsup": "^8.4.0",
|
|
71
|
+
"typescript": "~5.4.5",
|
|
72
|
+
"vitest": "^3.0.9"
|
|
73
73
|
}
|
|
74
74
|
}
|