jiek 0.2.0 → 0.2.1-alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/commands/init.esm.js +271 -0
- package/dist/commands/init.esm.js.map +1 -0
- package/dist/commands/init.esm.min.js +2 -0
- package/dist/commands/init.esm.min.js.map +1 -0
- package/dist/index.esm.js +3 -2
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/index.iife.js +426 -63
- package/dist/index.iife.js.map +1 -1
- package/dist/index.iife.min.js +1 -1
- package/dist/index.iife.min.js.map +1 -1
- package/dist/index.umd.js +428 -65
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/dist/merge-package-json.esm.js +2 -0
- package/dist/merge-package-json.esm.js.map +1 -1
- package/dist/merge-package-json.esm.min.js +1 -1
- package/dist/merge-package-json.esm.min.js.map +1 -1
- package/dist/utils/filterSupport.esm.js +4 -15
- package/dist/utils/filterSupport.esm.js.map +1 -1
- package/dist/utils/filterSupport.esm.min.js +1 -1
- package/dist/utils/filterSupport.esm.min.js.map +1 -1
- package/dist/utils/getRoot.esm.js +14 -0
- package/dist/utils/getRoot.esm.js.map +1 -0
- package/dist/utils/getRoot.esm.min.js +2 -0
- package/dist/utils/getRoot.esm.min.js.map +1 -0
- package/dist/utils/getWD.esm.js +25 -0
- package/dist/utils/getWD.esm.js.map +1 -0
- package/dist/utils/getWD.esm.min.js +2 -0
- package/dist/utils/getWD.esm.min.js.map +1 -0
- package/dist/utils/loadConfig.esm.js +91 -0
- package/dist/utils/loadConfig.esm.js.map +1 -0
- package/dist/utils/loadConfig.esm.min.js +2 -0
- package/dist/utils/loadConfig.esm.min.js.map +1 -0
- package/package.json +7 -6
package/dist/index.iife.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.iife.js","sources":["../src/utils/filterSupport.ts","../src/inner.ts","../src/utils/commondir.ts","../src/merge-package-json.ts","../src/commands/publish.ts","../src/commands/build.ts","../src/index.ts"],"sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { getWorkspaceDir } from '@jiek/utils/getWorkspaceDir'\nimport { filterPackagesFromDir } from '@pnpm/filter-workspace-packages'\nimport { program } from 'commander'\nimport { load } from 'js-yaml'\n\nexport let type = ''\n\ntry {\n require.resolve('@pnpm/filter-workspace-packages')\n type = 'pnpm'\n} catch { /* empty */ }\nif (type !== '') {\n program\n .option('-f, --filter <filter>', 'filter packages')\n}\n\ninterface ProjectsGraph {\n wd: string\n root: string\n value?: Record<string, {\n name?: string\n }>\n}\n\nexport async function getSelectedProjectsGraph(): Promise<ProjectsGraph> {\n let filter = program.getOptionValue('filter')\n const rootOption = program.getOptionValue('root')\n const root = rootOption\n ? path.isAbsolute(rootOption)\n ? rootOption\n : path.resolve(process.cwd(), rootOption)\n : process.cwd()\n let notWorkspace = false\n let wd: string\n try {\n wd = getWorkspaceDir(root, type)\n } catch (e) {\n // @ts-ignore\n if ('message' in e && e.message === 'workspace root not found') {\n wd = root\n notWorkspace = true\n } else {\n throw e\n }\n }\n if (!notWorkspace && type === 'pnpm') {\n const pnpmWorkspaceFilePath = path.resolve(wd, 'pnpm-workspace.yaml')\n const pnpmWorkspaceFileContent = fs.readFileSync(pnpmWorkspaceFilePath, 'utf-8')\n const pnpmWorkspace = load(pnpmWorkspaceFileContent) as {\n packages: string[]\n }\n if (root === wd && !filter) {\n throw new Error('root path is workspace root, please provide a filter')\n // TODO inquirer prompt support user select packages\n }\n if (root !== wd && !filter) {\n const packageJSONIsExist = fs.existsSync(path.resolve(root, 'package.json'))\n if (!packageJSONIsExist) {\n throw new Error('root path is not workspace root, please provide a filter')\n }\n const packageJSON = JSON.parse(fs.readFileSync(path.resolve(root, 'package.json'), 'utf-8'))\n if (!packageJSON.name) {\n throw new Error('root path is not workspace root, please provide a filter')\n }\n filter = packageJSON.name\n }\n const { selectedProjectsGraph } = await filterPackagesFromDir(wd, [{\n filter: filter ?? '',\n followProdDepsOnly: true\n }], {\n prefix: root,\n workspaceDir: wd,\n patterns: pnpmWorkspace.packages\n })\n return {\n wd, root,\n value: Object.entries(selectedProjectsGraph)\n .reduce((acc, [key, value]) => {\n acc[key] = value.package.manifest\n return acc\n }, {} as NonNullable<ProjectsGraph['value']>)\n }\n }\n return {\n wd, root,\n value: {\n [wd]: JSON.parse(fs.readFileSync(path.resolve(wd, 'package.json'), 'utf-8'))\n }\n }\n}\n","let resolve: () => void\n\nexport let actionFuture: Promise<void>\n\nexport function actionDone() {\n resolve()\n}\n\nexport function actionRestore() {\n actionFuture = new Promise<void>(r => resolve = r)\n}\n","import path from 'node:path'\n\nexport function commondir(files: string[], cwd = process.cwd()): string {\n const resolvedFiles = files.map(file => {\n if (path.isAbsolute(file)) return file\n return path.resolve(cwd, file)\n })\n const sep = '/'\n const [first = ''] = resolvedFiles\n const parts = first.split(sep)\n let common = ''\n for (let i = 0; i < parts.length; i++) {\n const segment = parts[i]\n if (resolvedFiles.every(file => file.startsWith(common + segment))) {\n common += segment + sep\n } else {\n break\n }\n }\n return common\n}\n","import path from 'node:path'\n\nimport { type Options, pkger } from '@jiek/pkger'\nimport type { Manifest } from '@pnpm/workspace.pkgs-graph'\n\nimport { commondir } from './utils/commondir'\n\nexport function mergePackageJson(manifest: Manifest & {\n jiek?: Options\n exports?: unknown | unknown[]\n}, cwd: string) {\n const {\n jiek: { cwd: _, ...jiek } = {}\n } = manifest\n let { exports } = manifest\n let includeIndex = false\n if (typeof exports === 'string') {\n includeIndex = true\n exports = { '.': exports }\n }\n if (exports === undefined) {\n exports = { '.': './src/index.ts' }\n }\n if (typeof exports === 'object') {\n if (Array.isArray(exports) && exports.length > 0) {\n includeIndex = true\n } else {\n includeIndex = !!(<Record<string, unknown>>exports)['.']\n }\n }\n const inputs = Array.isArray(exports)\n ? exports\n : Object\n .entries(<Record<string, unknown>>exports)\n .reduce((acc, [key, value]) => {\n if (typeof value === 'string') return key === '.'\n ? [value, ...acc]\n : acc.concat(value)\n\n throw new TypeError(`Unexpected value type for key \"${key}\" in exports, expected string, got ${typeof value}`)\n }, [] as string[])\n if (inputs.length === 0)\n throw new Error('No inputs found')\n\n const absoluteInputs = inputs.map(input => path.isAbsolute(input)\n ? input\n : path.resolve(cwd, input)\n )\n let cDir = path.dirname(absoluteInputs[0])\n if (absoluteInputs.length > 1) {\n cDir = commondir(absoluteInputs, cwd)\n }\n const resolvedInputs = absoluteInputs.map(input => {\n return path.relative(cDir, input)\n })\n return {\n ...manifest,\n ...pkger({\n cwd,\n noIndex: !includeIndex,\n source: path.relative(cwd, cDir),\n inputs: resolvedInputs,\n ...jiek\n })\n }\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { bump, type BumperType } from '@jiek/utils/bumper'\nimport * as childProcess from 'child_process'\nimport { program } from 'commander'\nimport detectIndent from 'detect-indent'\nimport { applyEdits, modify } from 'jsonc-parser'\n\nimport { actionDone, actionRestore } from '../inner'\nimport { mergePackageJson } from '../merge-package-json'\nimport { getSelectedProjectsGraph } from '../utils/filterSupport'\n\nprogram\n .command('publish')\n .aliases(['pub', 'p'])\n .option('-b, --bumper <bumper>', 'bump version', 'patch')\n .option('-p, --preview', 'preview publish')\n .action(async ({ preview, bumper, ...options }: {\n preview?: boolean\n bumper: BumperType\n }) => {\n actionRestore()\n\n const { value = {} } = await getSelectedProjectsGraph() ?? {}\n const selectedProjectsGraphEntries = Object.entries(value)\n if (selectedProjectsGraphEntries.length === 0) {\n throw new Error('no packages selected')\n }\n const mainfests = selectedProjectsGraphEntries\n .map(([dir, manifest]) => [\n dir, mergePackageJson(manifest, dir)\n ] as const)\n const passArgs = Object\n .entries(options)\n .reduce((acc, [key, value]) => {\n if (value) {\n acc.push(`--${key}`, value as string)\n }\n return acc\n }, [] as string[])\n for (const [dir, manifest] of mainfests) {\n const oldJSONString = fs.readFileSync(path.join(dir, 'package.json'), 'utf-8')\n const oldJSON = JSON.parse(oldJSONString) ?? '0.0.0'\n const newVersion = bump(oldJSON.version, bumper)\n // TODO detectIndent by editorconfig\n const { indent = ' ' } = detectIndent(oldJSONString)\n const formattingOptions = {\n tabSize: indent.length,\n insertSpaces: true\n }\n let newJSONString = oldJSONString\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['version'], newVersion, { formattingOptions }\n ))\n for (const [key, value] of Object.entries(manifest)) {\n if (JSON.stringify(value) === JSON.stringify(oldJSON[key])) continue\n\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['publishConfig', key], value, { formattingOptions }\n ))\n }\n try {\n fs.renameSync(path.join(dir, 'package.json'), path.join(dir, 'package.json.bak'))\n fs.writeFileSync(path.join(dir, 'package.json'), newJSONString)\n console.log(newJSONString)\n if (preview) {\n console.warn('preview mode')\n continue\n }\n childProcess.execSync(['pnpm', 'publish', '--access', 'public', '--no-git-checks', ...passArgs].join(' '), {\n cwd: dir,\n stdio: 'inherit'\n })\n const modifyVersionPackageJSON = applyEdits(oldJSONString, modify(oldJSONString, ['version'], newVersion, {}))\n fs.writeFileSync(path.join(dir, 'package.json.bak'), modifyVersionPackageJSON)\n } finally {\n fs.unlinkSync(path.join(dir, 'package.json'))\n fs.renameSync(path.join(dir, 'package.json.bak'), path.join(dir, 'package.json'))\n }\n }\n actionDone()\n })\n","import * as childProcess from 'node:child_process'\nimport fs from 'node:fs'\nimport path from 'node:path'\n\nimport { program } from 'commander'\n\nimport { actionDone, actionRestore } from '../inner'\nimport { mergePackageJson } from '../merge-package-json'\nimport { getSelectedProjectsGraph } from '../utils/filterSupport'\n\nconst FILE_TEMPLATE = (manifest: unknown) => `\nconst pkg = ${JSON.stringify(manifest, null, 2)}\nconst { jiek = {} } = pkg\nconst templateArg = jiek.templateArgFilePath\n ? require.resolve(jiek.templateArgFilePath)\n : {\n styled: jiek.styled\n }\nmodule.exports = require('jiek/rollup').template(templateArg, pkg)\n`.trimStart()\n\nprogram\n .command('build')\n .action(async () => {\n actionRestore()\n const {\n wd, value = {}\n } = await getSelectedProjectsGraph() ?? {}\n\n if (Object.keys(value).length === 0) {\n throw new Error('no package found')\n }\n const jiekTempDir = (...paths: string[]) => path.resolve(wd, 'node_modules/.jiek', ...paths)\n if (!fs.existsSync(jiekTempDir())) fs.mkdirSync(jiekTempDir())\n\n const rollupBinaryPath = require.resolve('rollup')\n .replace(/dist\\/rollup.js$/, 'dist/bin/rollup')\n let i = 0\n for (const [dir, manifest] of Object.entries(value)) {\n const newManifest = mergePackageJson(manifest, dir)\n // TODO support auto build child packages in workspaces\n const escapeManifestName = manifest.name?.replace(/^@/g, '').replace(/\\//g, '+')\n const configFile = jiekTempDir(\n `${escapeManifestName ?? `anonymous-${i++}`}.rollup.config.js`\n )\n fs.writeFileSync(configFile, FILE_TEMPLATE(newManifest))\n let prefix = ''\n if (process.env.NODE_ENV === 'test') {\n const registerPath = require.resolve('esbuild-register')\n const loaderPath = require.resolve('esbuild-register/loader')\n prefix = `node --import ${registerPath} -r ${loaderPath} `\n }\n // TODO replace with `spawn` to support watch mode\n childProcess.execSync(`${prefix}${rollupBinaryPath} -c ${configFile}`, {\n cwd: dir, stdio: 'inherit'\n })\n }\n\n actionDone()\n })\n","import './utils/filterSupport'\nimport './commands/publish'\nimport './commands/build'\n\nimport { program } from 'commander'\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pkg = require('../package.json')\n\nprogram\n .version(pkg.version)\n .description(pkg.description)\n .option('--root <root>', 'root path')\n\nprogram.parse(process.argv)\n"],"names":["program","path","getWorkspaceDir","fs","load","filterPackagesFromDir","pkger","bumper","value","bump","detectIndent","applyEdits","modify","childProcess"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.iife.js","sources":["../src/utils/getRoot.ts","../src/utils/getWD.ts","../src/utils/filterSupport.ts","../src/inner.ts","../src/utils/commondir.ts","../src/merge-package-json.ts","../src/commands/build.ts","../src/utils/loadConfig.ts","../src/commands/init.ts","../src/commands/publish.ts","../src/index.ts"],"sourcesContent":["import path from 'node:path'\n\nimport { program } from 'commander'\n\nlet root: string\nexport function getRoot() {\n if (root) return root\n\n const rootOption = program.getOptionValue('root')\n root = rootOption\n ? path.isAbsolute(rootOption)\n ? rootOption\n : path.resolve(process.cwd(), rootOption)\n : process.cwd()\n return root\n}\n","import { getWorkspaceDir } from '@jiek/utils/getWorkspaceDir'\n\nimport { type } from './filterSupport'\nimport { getRoot } from './getRoot'\n\nlet wd: string\nlet notWorkspace = false\n\nexport function getWD() {\n if (wd) return { wd, notWorkspace }\n\n const root = getRoot()\n try {\n wd = getWorkspaceDir(root, type)\n } catch (e) {\n // @ts-ignore\n if ('message' in e && e.message === 'workspace root not found') {\n wd = root\n notWorkspace = true\n } else {\n throw e\n }\n }\n return { wd, notWorkspace }\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { getWorkspaceDir } from '@jiek/utils/getWorkspaceDir'\nimport { filterPackagesFromDir } from '@pnpm/filter-workspace-packages'\nimport { program } from 'commander'\nimport { load } from 'js-yaml'\n\nimport { getRoot } from './getRoot'\nimport { getWD } from './getWD'\n\nexport let type = ''\n\ntry {\n require.resolve('@pnpm/filter-workspace-packages')\n type = 'pnpm'\n} catch { /* empty */ }\nif (type !== '') {\n program\n .option('-f, --filter <filter>', 'filter packages')\n}\n\ninterface ProjectsGraph {\n wd: string\n root: string\n value?: Record<string, {\n name?: string\n }>\n}\n\nexport async function getSelectedProjectsGraph(): Promise<ProjectsGraph> {\n let filter = program.getOptionValue('filter')\n const root = getRoot()\n const { wd, notWorkspace } = getWD()\n if (!notWorkspace && type === 'pnpm') {\n const pnpmWorkspaceFilePath = path.resolve(wd, 'pnpm-workspace.yaml')\n const pnpmWorkspaceFileContent = fs.readFileSync(pnpmWorkspaceFilePath, 'utf-8')\n const pnpmWorkspace = load(pnpmWorkspaceFileContent) as {\n packages: string[]\n }\n if (root === wd && !filter) {\n throw new Error('root path is workspace root, please provide a filter')\n // TODO inquirer prompt support user select packages\n }\n if (root !== wd && !filter) {\n const packageJSONIsExist = fs.existsSync(path.resolve(root, 'package.json'))\n if (!packageJSONIsExist) {\n throw new Error('root path is not workspace root, please provide a filter')\n }\n const packageJSON = JSON.parse(fs.readFileSync(path.resolve(root, 'package.json'), 'utf-8'))\n if (!packageJSON.name) {\n throw new Error('root path is not workspace root, please provide a filter')\n }\n filter = packageJSON.name\n }\n const { selectedProjectsGraph } = await filterPackagesFromDir(wd, [{\n filter: filter ?? '',\n followProdDepsOnly: true\n }], {\n prefix: root,\n workspaceDir: wd,\n patterns: pnpmWorkspace.packages\n })\n return {\n wd, root,\n value: Object.entries(selectedProjectsGraph)\n .reduce((acc, [key, value]) => {\n acc[key] = value.package.manifest\n return acc\n }, {} as NonNullable<ProjectsGraph['value']>)\n }\n }\n return {\n wd, root,\n value: {\n [wd]: JSON.parse(fs.readFileSync(path.resolve(wd, 'package.json'), 'utf-8'))\n }\n }\n}\n","let resolve: () => void\n\nexport let actionFuture: Promise<void>\n\nexport function actionDone() {\n resolve()\n}\n\nexport function actionRestore() {\n actionFuture = new Promise<void>(r => resolve = r)\n}\n","import path from 'node:path'\n\nexport function commondir(files: string[], cwd = process.cwd()): string {\n const resolvedFiles = files.map(file => {\n if (path.isAbsolute(file)) return file\n return path.resolve(cwd, file)\n })\n const sep = '/'\n const [first = ''] = resolvedFiles\n const parts = first.split(sep)\n let common = ''\n for (let i = 0; i < parts.length; i++) {\n const segment = parts[i]\n if (resolvedFiles.every(file => file.startsWith(common + segment))) {\n common += segment + sep\n } else {\n break\n }\n }\n return common\n}\n","import path from 'node:path'\n\nimport { type Options, pkger } from '@jiek/pkger'\nimport type { Manifest } from '@pnpm/workspace.pkgs-graph'\n\nimport { commondir } from './utils/commondir'\n\nexport function mergePackageJson(manifest: Manifest & {\n jiek?: Options\n exports?: unknown | unknown[]\n}, cwd: string) {\n const {\n jiek: { cwd: _, ...jiek } = {}\n } = manifest\n let { exports } = manifest\n let includeIndex = false\n if (typeof exports === 'string') {\n includeIndex = true\n exports = { '.': exports }\n }\n if (exports === undefined) {\n exports = { '.': './src/index.ts' }\n }\n if (typeof exports === 'object') {\n if (Array.isArray(exports) && exports.length > 0) {\n includeIndex = true\n } else {\n includeIndex = !!(<Record<string, unknown>>exports)['.']\n }\n }\n const inputs = Array.isArray(exports)\n ? exports as string[]\n : Object\n .entries(<Record<string, unknown>>exports)\n .reduce((acc, [key, value]) => {\n if (typeof value === 'string') return key === '.'\n ? [value, ...acc]\n : acc.concat(value)\n if (Array.isArray(value)) return acc.concat(value)\n\n throw new TypeError(`Unexpected value type for key \"${key}\" in exports, expected string, got ${typeof value}`)\n }, [] as string[])\n if (inputs.length === 0)\n throw new Error('No inputs found')\n\n const absoluteInputs = inputs.map(input => path.isAbsolute(input)\n ? input\n : path.resolve(cwd, input)\n )\n let cDir = path.dirname(absoluteInputs[0])\n if (absoluteInputs.length > 1) {\n cDir = commondir(absoluteInputs, cwd)\n }\n const resolvedInputs = absoluteInputs.map(input => {\n return path.relative(cDir, input)\n })\n return {\n ...manifest,\n ...pkger({\n cwd,\n noIndex: !includeIndex,\n source: path.relative(cwd, cDir),\n inputs: resolvedInputs,\n ...jiek\n })\n }\n}\n","import * as childProcess from 'node:child_process'\nimport fs from 'node:fs'\nimport path from 'node:path'\n\nimport { program } from 'commander'\n\nimport { actionDone, actionRestore } from '../inner'\nimport { mergePackageJson } from '../merge-package-json'\nimport { getSelectedProjectsGraph } from '../utils/filterSupport'\n\nconst FILE_TEMPLATE = (manifest: unknown) => `\nconst pkg = ${JSON.stringify(manifest, null, 2)}\nconst { jiek = {} } = pkg\nconst templateArg = jiek.templateArgFilePath\n ? require.resolve(jiek.templateArgFilePath)\n : {\n styled: jiek.styled\n }\nmodule.exports = require('jiek/rollup').template(templateArg, pkg)\n`.trimStart()\n\nprogram\n .command('build')\n .action(async () => {\n actionRestore()\n const {\n wd, value = {}\n } = await getSelectedProjectsGraph() ?? {}\n\n if (Object.keys(value).length === 0) {\n throw new Error('no package found')\n }\n const jiekTempDir = (...paths: string[]) => path.resolve(wd, 'node_modules/.jiek', ...paths)\n if (!fs.existsSync(jiekTempDir())) fs.mkdirSync(jiekTempDir())\n\n const rollupBinaryPath = require.resolve('rollup')\n .replace(/dist\\/rollup.js$/, 'dist/bin/rollup')\n let i = 0\n for (const [dir, manifest] of Object.entries(value)) {\n const newManifest = mergePackageJson(manifest, dir)\n // TODO support auto build child packages in workspaces\n const escapeManifestName = manifest.name?.replace(/^@/g, '').replace(/\\//g, '+')\n const configFile = jiekTempDir(\n `${escapeManifestName ?? `anonymous-${i++}`}.rollup.config.js`\n )\n fs.writeFileSync(configFile, FILE_TEMPLATE(newManifest))\n let prefix = ''\n if (process.env.NODE_ENV === 'test') {\n const registerPath = require.resolve('esbuild-register')\n const loaderPath = require.resolve('esbuild-register/loader')\n prefix = `node --import ${registerPath} -r ${loaderPath} `\n }\n // TODO replace with `spawn` to support watch mode\n childProcess.execSync(`${prefix}${rollupBinaryPath} -c ${configFile}`, {\n cwd: dir, stdio: 'inherit'\n })\n }\n\n actionDone()\n })\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { program } from 'commander'\nimport { load } from 'js-yaml'\n\nimport { getWD } from './getWD'\n\nfunction packageIsExist(name: string) {\n try {\n require.resolve(name)\n return true\n } catch (e) {\n console.log(e)\n return false\n }\n}\n\nlet tsRegisterName: string | undefined\nconst registers = [\n process.env.JIEK_TS_REGISTER,\n 'esbuild-register'\n].filter(Boolean) as string[]\nfor (const register of registers) {\n if (packageIsExist(register)) {\n tsRegisterName = register\n break\n }\n}\n\nlet configName = 'jiek.config'\n\nfunction getConfigPath(root: string) {\n const isSupportTsLoader = !!tsRegisterName\n function configWithExtIsExist(ext: string) {\n const filenames = [\n path.resolve(root, `${configName}.${ext}`),\n path.resolve(root, `.${configName}.${ext}`)\n ]\n for (const filename of filenames) {\n if (\n fs.existsSync(filename) &&\n fs.lstatSync(filename)\n .isFile()\n ) {\n return filename\n }\n }\n return\n }\n configName = configWithExtIsExist('js') ?? configName\n configName = configWithExtIsExist('json') ?? configName\n configName = configWithExtIsExist('yaml') ?? configName\n if (isSupportTsLoader) {\n configName = configWithExtIsExist('ts') ?? configName\n }\n return path.resolve(root, configName)\n}\n\nexport function loadConfig() {\n const { wd: root, notWorkspace } = getWD()\n if (notWorkspace)\n throw new Error('not in workspace')\n\n let configPath = program.getOptionValue('configPath')\n\n if (!configPath) {\n configPath = getConfigPath(root)\n } else {\n if (!fs.existsSync(configPath))\n throw new Error(`config file not found: ${configPath}`)\n if (!path.isAbsolute(configPath))\n configPath = path.resolve(root, configPath)\n }\n const ext = path.extname(configPath)\n\n let module: any\n switch (ext) {\n case '.js':\n module = require(configPath)\n break\n case '.json':\n return require(configPath)\n case '.yaml':\n return load(fs.readFileSync(configPath, 'utf-8'))\n case '.ts':\n if (tsRegisterName) {\n require(tsRegisterName)\n module = require(configPath)\n break\n }\n throw new Error(\n 'ts config file is not supported without ts register, ' +\n 'please install esbuild-register or set JIEK_TS_REGISTER env for custom ts register'\n )\n default:\n throw new Error(`unsupported config file type: ${ext}`)\n }\n if (!module) throw new Error('config file is empty')\n\n return module.default ?? module\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { program } from 'commander'\nimport detectIndent from 'detect-indent'\nimport inquirer from 'inquirer'\nimport { applyEdits, modify } from 'jsonc-parser'\nimport { isMatch } from 'micromatch'\n\nimport type { Config, InitNamed } from '../base'\nimport { getWD } from '../utils/getWD'\nimport { loadConfig } from '../utils/loadConfig'\n\nconst PACKAGE_JSON_TEMPLATE = `{\n \"name\": \"\",\n \"version\": \"0.0.1\",\n \"description\": \"\",\n \"license\": \"\",\n \"author\": \"\",\n \"files\": [\"dist\"],\n \"exports\": {\n \".\": \"./src/index.ts\"\n },\n \"scripts\": {\n },\n \"homepage\": \"\",\n \"repository\": \"\",\n \"bugs\": \"\"\n}`.trimStart()\nconst README_TEMPLATE = `# $name\n\n## Installation\n\n\\`\\`\\`bash\nnpm install $name\n# or\npnpm install $name\n# or\nyarn add $name\n\\`\\`\\`\n\n## Usage\n\n\n## License\n\n$license\n`.trimStart()\n\nfunction getTemplateStr(wd: string, template: string | undefined) {\n let templateString = template ?? PACKAGE_JSON_TEMPLATE\n let isTemplateFile = false\n try {\n if (template) JSON.parse(template)\n } catch (e) {\n isTemplateFile = true\n }\n if (isTemplateFile) {\n const templatePath = path.resolve(wd, template!)\n templateString = fs.readFileSync(templatePath, 'utf-8')\n }\n return templateString\n}\nconst wdCache = new Map<string, Record<string, any>>()\nfunction getWDPackageJSONFiled(wd: string, field: string) {\n if (wdCache.has(wd)) {\n return wdCache.get(wd)![field]\n }\n const packageJSONPath = path.resolve(wd, 'package.json')\n const packageJSON = JSON.parse(fs.readFileSync(packageJSONPath, 'utf-8'))\n wdCache.set(wd, packageJSON)\n return packageJSON[field]\n}\nasync function getName(\n named: InitNamed | undefined,\n name: string,\n {\n wd, cwd,\n workspaceName\n }: {\n wd: string\n cwd: string\n workspaceName: string\n }\n): Promise<[name?: string, path?: string]> {\n const relativePath = cwd.replace(`${wd}/`, '')\n let basename = path.basename(cwd)\n\n if (typeof named === 'function') {\n return named(name, {\n full: wd,\n relative: cwd\n })\n }\n\n let isParentMatched = false\n let matchedKey: string | undefined\n let matchedRule: NonNullable<typeof named>[string] | undefined\n if (typeof named === 'object') {\n const isWD = cwd === wd\n if (isWD) {\n const { rule } = await inquirer.prompt<{ rule: string }>({\n type: 'list',\n name: 'rule',\n message: 'choose a rule',\n default: 'default',\n choices: ['default'].concat(Object.keys(named))\n })\n if (rule !== 'default') {\n matchedKey = rule\n matchedRule = named[rule]\n }\n } else for (const [key, value] of Object.entries(named)) {\n if (isMatch(relativePath, key)) {\n matchedKey = key\n matchedRule = value\n break\n }\n if (isMatch(`${relativePath}/jiek_ignore_dont_use_same_file_name`, key)) {\n isParentMatched = true\n matchedKey = key\n matchedRule = value\n break\n }\n }\n }\n if (!matchedRule) {\n matchedKey = 'packages/*'\n matchedRule = `@${workspaceName}/$basename`\n }\n if (!matchedRule)\n throw new Error('no matched rule')\n if (!name && isParentMatched) {\n basename = await inquirer.prompt<{ name: string }>({\n type: 'input',\n name: 'name',\n message: `the matched rule is \\`${String(matchedRule)}\\`, please input the basename\\n`\n }).then(({ name }) => name)\n }\n\n if (typeof matchedRule === 'function') {\n return matchedRule(name, {\n full: wd,\n relative: cwd,\n basename: basename\n })\n }\n if (typeof matchedRule === 'string') {\n const dirName = name ?? basename\n return [\n matchedRule.replace(/\\$basename/g, dirName),\n matchedKey?.replace(/\\/\\*$/g, `/${dirName}`)\n ]\n }\n throw new Error('no matched rule')\n}\n\nprogram\n .command('init [name]')\n .option('-t, --template <template>', 'the package.json template file path or file content')\n .action(async () => {\n const [, name] = program.args\n const cwd = process.cwd()\n const { init = {} }: Config = loadConfig() ?? {}\n const { wd } = getWD()\n const workspaceName = path.basename(wd)\n\n const {\n named,\n template,\n bug = {},\n readme: _readme = README_TEMPLATE,\n readmeTemplate\n } = init\n const resolvedBug = {\n template: 'bug_report.yml',\n labels: ['bug'],\n ...bug\n }\n let readme = _readme\n if (readmeTemplate) {\n const readmeTemplatePath = path.resolve(wd, readmeTemplate)\n readme = fs.readFileSync(readmeTemplatePath, 'utf-8')\n }\n\n const templateString = getTemplateStr(wd, template)\n // TODO detectIndent by editorconfig\n const { indent = ' ' } = detectIndent(templateString)\n const formattingOptions = {\n tabSize: indent.length,\n insertSpaces: true\n }\n const passFields = [\n 'license', 'author'\n ]\n let newJSONString = templateString\n for (const field of passFields) {\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, [field], getWDPackageJSONFiled(wd, field), { formattingOptions }\n ))\n }\n let [pkgName, pkgDir] = await getName(named, name, {\n wd, cwd,\n workspaceName\n })\n if (!pkgDir) {\n const { dir } = await inquirer.prompt<{ dir: string }>({\n type: 'input',\n name: 'dir',\n message: 'package directory',\n default: name\n })\n pkgDir = dir\n }\n if (!pkgName) {\n const { name: inputName } = await inquirer.prompt<{\n name: string\n }>({\n type: 'input',\n name: 'name',\n message: 'package name',\n default: name\n })\n pkgName = inputName\n }\n newJSONString = applyEdits(newJSONString, modify(newJSONString, ['name'], pkgName, { formattingOptions }))\n\n let pkgRepo = getWDPackageJSONFiled(wd, 'repository')\n if (typeof pkgRepo === 'string') {\n pkgRepo = {\n type: 'git',\n url: pkgRepo,\n directory: pkgDir\n }\n }\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['repository'], pkgRepo, { formattingOptions }\n ))\n const homepage = `${pkgRepo?.url}/blob/master/${pkgDir}/README.md`\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['homepage'], homepage, { formattingOptions }\n ))\n let labels = resolvedBug.labels\n if (typeof labels === 'function') labels = labels({\n name: pkgName, dir: pkgDir\n })\n labels.push(`scope:${pkgName}`)\n const bugs = `${pkgRepo?.url}/issues/new?template=${\n resolvedBug.template\n }&labels=${\n labels.join(',')\n }`\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['bugs'], bugs, { formattingOptions }\n ))\n\n function pkgDirTo(to: string) {\n if (!pkgDir) throw new Error('pkgDir is not defined')\n\n return path.resolve(pkgDir, to)\n }\n if (!fs.existsSync(pkgDir)) fs.mkdirSync(pkgDir)\n const pkgJSONFilePath = pkgDirTo('package.json')\n if (fs.existsSync(pkgJSONFilePath)) {\n throw new Error('package.json already exists')\n }\n fs.writeFileSync(pkgJSONFilePath, newJSONString)\n console.log(newJSONString, 'written to', pkgJSONFilePath)\n\n const license = getWDPackageJSONFiled(wd, 'license')\n const readmeFilePath = pkgDirTo('README.md')\n if (typeof readme === 'function') {\n readme = readme({\n dir: pkgDir,\n packageJson: JSON.parse(newJSONString)\n })\n }\n const readmeContent = readme\n .replace(/\\$name/g, pkgName)\n .replace(/\\$license/g, license)\n fs.writeFileSync(readmeFilePath, readmeContent)\n })\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { bump, type BumperType } from '@jiek/utils/bumper'\nimport * as childProcess from 'child_process'\nimport { program } from 'commander'\nimport detectIndent from 'detect-indent'\nimport { applyEdits, modify } from 'jsonc-parser'\n\nimport { actionDone, actionRestore } from '../inner'\nimport { mergePackageJson } from '../merge-package-json'\nimport { getSelectedProjectsGraph } from '../utils/filterSupport'\n\nprogram\n .command('publish')\n .aliases(['pub', 'p'])\n .option('-b, --bumper <bumper>', 'bump version', 'patch')\n .option('-p, --preview', 'preview publish')\n .action(async ({ preview, bumper, ...options }: {\n preview?: boolean\n bumper: BumperType\n }) => {\n actionRestore()\n\n const { value = {} } = await getSelectedProjectsGraph() ?? {}\n const selectedProjectsGraphEntries = Object.entries(value)\n if (selectedProjectsGraphEntries.length === 0) {\n throw new Error('no packages selected')\n }\n const mainfests = selectedProjectsGraphEntries\n .map(([dir, manifest]) => [\n dir, mergePackageJson(manifest, dir)\n ] as const)\n const passArgs = Object\n .entries(options)\n .reduce((acc, [key, value]) => {\n if (value) {\n acc.push(`--${key}`, value as string)\n }\n return acc\n }, [] as string[])\n for (const [dir, manifest] of mainfests) {\n const oldJSONString = fs.readFileSync(path.join(dir, 'package.json'), 'utf-8')\n const oldJSON = JSON.parse(oldJSONString) ?? '0.0.0'\n const newVersion = bump(oldJSON.version, bumper)\n // TODO detectIndent by editorconfig\n const { indent = ' ' } = detectIndent(oldJSONString)\n const formattingOptions = {\n tabSize: indent.length,\n insertSpaces: true\n }\n let newJSONString = oldJSONString\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['version'], newVersion, { formattingOptions }\n ))\n for (const [key, value] of Object.entries(manifest)) {\n if (JSON.stringify(value) === JSON.stringify(oldJSON[key])) continue\n\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['publishConfig', key], value, { formattingOptions }\n ))\n }\n try {\n fs.renameSync(path.join(dir, 'package.json'), path.join(dir, 'package.json.bak'))\n fs.writeFileSync(path.join(dir, 'package.json'), newJSONString)\n console.log(newJSONString)\n if (preview) {\n console.warn('preview mode')\n continue\n }\n childProcess.execSync(['pnpm', 'publish', '--access', 'public', '--no-git-checks', ...passArgs].join(' '), {\n cwd: dir,\n stdio: 'inherit'\n })\n const modifyVersionPackageJSON = applyEdits(oldJSONString, modify(oldJSONString, ['version'], newVersion, {}))\n fs.writeFileSync(path.join(dir, 'package.json.bak'), modifyVersionPackageJSON)\n } finally {\n fs.unlinkSync(path.join(dir, 'package.json'))\n fs.renameSync(path.join(dir, 'package.json.bak'), path.join(dir, 'package.json'))\n }\n }\n actionDone()\n })\n","import './utils/filterSupport'\nimport './commands/build'\nimport './commands/init'\nimport './commands/publish'\n\nimport { program } from 'commander'\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pkg = require('../package.json')\n\nprogram\n .version(pkg.version)\n .description(pkg.description)\n .option('--root <root>', 'root path')\n .option('-c, --config-path <configPath>', 'config path')\n\nprogram.parse(process.argv)\n"],"names":["program","path","getWorkspaceDir","fs","load","filterPackagesFromDir","pkger","childProcess","inquirer","isMatch","name","detectIndent","applyEdits","modify","bumper","value","bump"],"mappings":"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"}
|
package/dist/index.iife.min.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
!function(e,t,r,o,n,a,s,i,l,c,p,u){"use strict";function f(e){return e&&e.__esModule?e:{default:e}}function d(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var g=f(e),m=f(t),k=d(i),y=f(l),j=d(u);let w,v="";try{require.resolve("@pnpm/filter-workspace-packages"),v="pnpm"}catch{}async function b(){let e=n.program.getOptionValue("filter");const t=n.program.getOptionValue("root"),s=t?m.default.isAbsolute(t)?t:m.default.resolve(process.cwd(),t):process.cwd();let i,l=!1;try{i=r.getWorkspaceDir(s,v)}catch(e){if(!("message"in e)||"workspace root not found"!==e.message)throw e;i=s,l=!0}if(!l&&"pnpm"===v){const t=m.default.resolve(i,"pnpm-workspace.yaml"),r=g.default.readFileSync(t,"utf-8"),n=a.load(r);if(s===i&&!e)throw new Error("root path is workspace root, please provide a filter");if(s!==i&&!e){if(!g.default.existsSync(m.default.resolve(s,"package.json")))throw new Error("root path is not workspace root, please provide a filter");const t=JSON.parse(g.default.readFileSync(m.default.resolve(s,"package.json"),"utf-8"));if(!t.name)throw new Error("root path is not workspace root, please provide a filter");e=t.name}const{selectedProjectsGraph:l}=await o.filterPackagesFromDir(i,[{filter:e??"",followProdDepsOnly:!0}],{prefix:s,workspaceDir:i,patterns:n.packages});return{wd:i,root:s,value:Object.entries(l).reduce(((e,[t,r])=>(e[t]=r.package.manifest,e)),{})}}return{wd:i,root:s,value:{[i]:JSON.parse(g.default.readFileSync(m.default.resolve(i,"package.json"),"utf-8"))}}}function h(){w()}function O(){new Promise((e=>w=e))}function S(e,t){const{jiek:{cwd:r,...o}={}}=e;let{exports:n}=e,a=!1;"string"==typeof n&&(a=!0,n={".":n}),void 0===n&&(n={".":"./src/index.ts"}),"object"==typeof n&&(a=!!(Array.isArray(n)&&n.length>0)||!!n["."]);const s=Array.isArray(n)?n:Object.entries(n).reduce(((e,[t,r])=>{if("string"==typeof r)return"."===t?[r,...e]:e.concat(r);throw new TypeError(`Unexpected value type for key "${t}" in exports, expected string, got ${typeof r}`)}),[]);if(0===s.length)throw new Error("No inputs found");const i=s.map((e=>m.default.isAbsolute(e)?e:m.default.resolve(t,e)));let l=m.default.dirname(i[0]);i.length>1&&(l=function(e,t=process.cwd()){const r=e.map((e=>m.default.isAbsolute(e)?e:m.default.resolve(t,e))),[o=""]=r,n=o.split("/");let a="";for(let e=0;e<n.length;e++){const t=n[e];if(!r.every((e=>e.startsWith(a+t))))break;a+=t+"/"}return a}(i,t));const c=i.map((e=>m.default.relative(l,e)));return{...e,...p.pkger({cwd:t,noIndex:!a,source:m.default.relative(t,l),inputs:c,...o})}}""!==v&&n.program.option("-f, --filter <filter>","filter packages"),n.program.command("publish").aliases(["pub","p"]).option("-b, --bumper <bumper>","bump version","patch").option("-p, --preview","preview publish").action((async({preview:e,bumper:t,...r})=>{O();const{value:o={}}=await b()??{},n=Object.entries(o);if(0===n.length)throw new Error("no packages selected");const a=n.map((([e,t])=>[e,S(t,e)])),i=Object.entries(r).reduce(((e,[t,r])=>(r&&e.push(`--${t}`,r),e)),[]);for(const[r,o]of a){const n=g.default.readFileSync(m.default.join(r,"package.json"),"utf-8"),a=JSON.parse(n)??"0.0.0",l=s.bump(a.version,t),{indent:p=" "}=y.default(n),u={tabSize:p.length,insertSpaces:!0};let f=n;f=c.applyEdits(f,c.modify(f,["version"],l,{formattingOptions:u}));for(const[e,t]of Object.entries(o))JSON.stringify(t)!==JSON.stringify(a[e])&&(f=c.applyEdits(f,c.modify(f,["publishConfig",e],t,{formattingOptions:u})));try{if(g.default.renameSync(m.default.join(r,"package.json"),m.default.join(r,"package.json.bak")),g.default.writeFileSync(m.default.join(r,"package.json"),f),console.log(f),e){console.warn("preview mode");continue}k.execSync(["pnpm","publish","--access","public","--no-git-checks",...i].join(" "),{cwd:r,stdio:"inherit"});const t=c.applyEdits(n,c.modify(n,["version"],l,{}));g.default.writeFileSync(m.default.join(r,"package.json.bak"),t)}finally{g.default.unlinkSync(m.default.join(r,"package.json")),g.default.renameSync(m.default.join(r,"package.json.bak"),m.default.join(r,"package.json"))}}h()}));const E=e=>`\nconst pkg = ${JSON.stringify(e,null,2)}\nconst { jiek = {} } = pkg\nconst templateArg = jiek.templateArgFilePath\n ? require.resolve(jiek.templateArgFilePath)\n : {\n styled: jiek.styled\n }\nmodule.exports = require('jiek/rollup').template(templateArg, pkg)\n`.trimStart();n.program.command("build").action((async()=>{O();const{wd:e,value:t={}}=await b()??{};if(0===Object.keys(t).length)throw new Error("no package found");const r=(...t)=>m.default.resolve(e,"node_modules/.jiek",...t);g.default.existsSync(r())||g.default.mkdirSync(r());const o=require.resolve("rollup").replace(/dist\/rollup.js$/,"dist/bin/rollup");let n=0;for(const[e,a]of Object.entries(t)){const t=S(a,e),s=a.name?.replace(/^@/g,"").replace(/\//g,"+"),i=r(`${s??"anonymous-"+n++}.rollup.config.js`);g.default.writeFileSync(i,E(t));let l="";if("test"===process.env.NODE_ENV){l=`node --import ${require.resolve("esbuild-register")} -r ${require.resolve("esbuild-register/loader")} `}j.execSync(`${l}${o} -c ${i}`,{cwd:e,stdio:"inherit"})}h()}));const x=require("../package.json");n.program.version(x.version).description(x.description).option("--root <root>","root path"),n.program.parse(process.argv)}(fs,path,getWorkspaceDir,filterWorkspacePackages,commander,jsYaml,bumper,childProcess,detectIndent,jsoncParser,pkger,childProcess$1);
|
1
|
+
!function(e,t,r,n,o,a,s,i,l,c,p,f,u,d){"use strict";function m(e){return e&&e.__esModule?e:{default:e}}function g(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var y=m(e),w=m(t),k=g(s),h=m(l),b=m(c),j=g(d);let v,S;function $(){if(v)return v;const e=n.program.getOptionValue("root");return v=e?w.default.isAbsolute(e)?e:w.default.resolve(process.cwd(),e):process.cwd(),v}let E=!1;function O(){if(S)return{wd:S,notWorkspace:E};const e=$();try{S=a.getWorkspaceDir(e,F)}catch(t){if(!("message"in t)||"workspace root not found"!==t.message)throw t;S=e,E=!0}return{wd:S,notWorkspace:E}}let x,F="";try{require.resolve("@pnpm/filter-workspace-packages"),F="pnpm"}catch{}async function _(){let e=n.program.getOptionValue("filter");const t=$(),{wd:a,notWorkspace:s}=O();if(!s&&"pnpm"===F){const n=w.default.resolve(a,"pnpm-workspace.yaml"),s=y.default.readFileSync(n,"utf-8"),i=o.load(s);if(t===a&&!e)throw new Error("root path is workspace root, please provide a filter");if(t!==a&&!e){if(!y.default.existsSync(w.default.resolve(t,"package.json")))throw new Error("root path is not workspace root, please provide a filter");const r=JSON.parse(y.default.readFileSync(w.default.resolve(t,"package.json"),"utf-8"));if(!r.name)throw new Error("root path is not workspace root, please provide a filter");e=r.name}const{selectedProjectsGraph:l}=await r.filterPackagesFromDir(a,[{filter:e??"",followProdDepsOnly:!0}],{prefix:t,workspaceDir:a,patterns:i.packages});return{wd:a,root:t,value:Object.entries(l).reduce(((e,[t,r])=>(e[t]=r.package.manifest,e)),{})}}return{wd:a,root:t,value:{[a]:JSON.parse(y.default.readFileSync(w.default.resolve(a,"package.json"),"utf-8"))}}}function A(){x()}function N(){new Promise((e=>x=e))}function P(e,t){const{jiek:{cwd:r,...n}={}}=e;let{exports:o}=e,a=!1;"string"==typeof o&&(a=!0,o={".":o}),void 0===o&&(o={".":"./src/index.ts"}),"object"==typeof o&&(a=!!(Array.isArray(o)&&o.length>0)||!!o["."]);const s=Array.isArray(o)?o:Object.entries(o).reduce(((e,[t,r])=>{if("string"==typeof r)return"."===t?[r,...e]:e.concat(r);if(Array.isArray(r))return e.concat(r);throw new TypeError(`Unexpected value type for key "${t}" in exports, expected string, got ${typeof r}`)}),[]);if(0===s.length)throw new Error("No inputs found");const l=s.map((e=>w.default.isAbsolute(e)?e:w.default.resolve(t,e)));let c=w.default.dirname(l[0]);l.length>1&&(c=function(e,t=process.cwd()){const r=e.map((e=>w.default.isAbsolute(e)?e:w.default.resolve(t,e))),[n=""]=r,o=n.split("/");let a="";for(let e=0;e<o.length;e++){const t=o[e];if(!r.every((e=>e.startsWith(a+t))))break;a+=t+"/"}return a}(l,t));const p=l.map((e=>w.default.relative(c,e)));return{...e,...i.pkger({cwd:t,noIndex:!a,source:w.default.relative(t,c),inputs:p,...n})}}""!==F&&n.program.option("-f, --filter <filter>","filter packages");const q=e=>`\nconst pkg = ${JSON.stringify(e,null,2)}\nconst { jiek = {} } = pkg\nconst templateArg = jiek.templateArgFilePath\n ? require.resolve(jiek.templateArgFilePath)\n : {\n styled: jiek.styled\n }\nmodule.exports = require('jiek/rollup').template(templateArg, pkg)\n`.trimStart();function J(e){try{return require.resolve(e),!0}catch(e){return console.log(e),!1}}let D;n.program.command("build").action((async()=>{N();const{wd:e,value:t={}}=await _()??{};if(0===Object.keys(t).length)throw new Error("no package found");const r=(...t)=>w.default.resolve(e,"node_modules/.jiek",...t);y.default.existsSync(r())||y.default.mkdirSync(r());const n=require.resolve("rollup").replace(/dist\/rollup.js$/,"dist/bin/rollup");let o=0;for(const[e,a]of Object.entries(t)){const t=P(a,e),s=a.name?.replace(/^@/g,"").replace(/\//g,"+"),i=r(`${s??"anonymous-"+o++}.rollup.config.js`);y.default.writeFileSync(i,q(t));let l="";if("test"===process.env.NODE_ENV){l=`node --import ${require.resolve("esbuild-register")} -r ${require.resolve("esbuild-register/loader")} `}k.execSync(`${l}${n} -c ${i}`,{cwd:e,stdio:"inherit"})}A()}));const W=[process.env.JIEK_TS_REGISTER,"esbuild-register"].filter(Boolean);for(const e of W)if(J(e)){D=e;break}let I="jiek.config";function M(){const{wd:e,notWorkspace:t}=O();if(t)throw new Error("not in workspace");let r=n.program.getOptionValue("configPath");if(r){if(!y.default.existsSync(r))throw new Error(`config file not found: ${r}`);w.default.isAbsolute(r)||(r=w.default.resolve(e,r))}else r=function(e){const t=!!D;function r(t){const r=[w.default.resolve(e,`${I}.${t}`),w.default.resolve(e,`.${I}.${t}`)];for(const e of r)if(y.default.existsSync(e)&&y.default.lstatSync(e).isFile())return e}return I=r("js")??I,I=r("json")??I,I=r("yaml")??I,t&&(I=r("ts")??I),w.default.resolve(e,I)}(e);const a=w.default.extname(r);let s;switch(a){case".js":s=require(r);break;case".json":return require(r);case".yaml":return o.load(y.default.readFileSync(r,"utf-8"));case".ts":if(D){require(D),s=require(r);break}throw new Error("ts config file is not supported without ts register, please install esbuild-register or set JIEK_TS_REGISTER env for custom ts register");default:throw new Error(`unsupported config file type: ${a}`)}if(!s)throw new Error("config file is empty");return s.default??s}const R='{\n "name": "",\n "version": "0.0.1",\n "description": "",\n "license": "",\n "author": "",\n "files": ["dist"],\n "exports": {\n ".": "./src/index.ts"\n },\n "scripts": {\n },\n "homepage": "",\n "repository": "",\n "bugs": ""\n}'.trimStart(),T="# $name\n\n## Installation\n\n```bash\nnpm install $name\n# or\npnpm install $name\n# or\nyarn add $name\n```\n\n## Usage\n\n\n## License\n\n$license\n".trimStart();const V=new Map;function z(e,t){if(V.has(e))return V.get(e)[t];const r=w.default.resolve(e,"package.json"),n=JSON.parse(y.default.readFileSync(r,"utf-8"));return V.set(e,n),n[t]}n.program.command("init [name]").option("-t, --template <template>","the package.json template file path or file content").action((async()=>{const[,e]=n.program.args,t=process.cwd(),{init:r={}}=M()??{},{wd:o}=O(),a=w.default.basename(o),{named:s,template:i,bug:l={},readme:c=T,readmeTemplate:u}=r,d={template:"bug_report.yml",labels:["bug"],...l};let m=c;if(u){const e=w.default.resolve(o,u);m=y.default.readFileSync(e,"utf-8")}const g=function(e,t){let r=t??R,n=!1;try{t&&JSON.parse(t)}catch(e){n=!0}if(n){const n=w.default.resolve(e,t);r=y.default.readFileSync(n,"utf-8")}return r}(o,i),{indent:k=" "}=h.default(g),j={tabSize:k.length,insertSpaces:!0},v=["license","author"];let S=g;for(const e of v)S=p.applyEdits(S,p.modify(S,[e],z(o,e),{formattingOptions:j}));let[$,E]=await async function(e,t,{wd:r,cwd:n,workspaceName:o}){const a=n.replace(`${r}/`,"");let s=w.default.basename(n);if("function"==typeof e)return e(t,{full:r,relative:n});let i,l,c=!1;if("object"==typeof e)if(n===r){const{rule:t}=await b.default.prompt({type:"list",name:"rule",message:"choose a rule",default:"default",choices:["default"].concat(Object.keys(e))});"default"!==t&&(i=t,l=e[t])}else for(const[t,r]of Object.entries(e)){if(f.isMatch(a,t)){i=t,l=r;break}if(f.isMatch(`${a}/jiek_ignore_dont_use_same_file_name`,t)){c=!0,i=t,l=r;break}}if(l||(i="packages/*",l=`@${o}/$basename`),!l)throw new Error("no matched rule");if(!t&&c&&(s=await b.default.prompt({type:"input",name:"name",message:`the matched rule is \`${String(l)}\`, please input the basename\n`}).then((({name:e})=>e))),"function"==typeof l)return l(t,{full:r,relative:n,basename:s});if("string"==typeof l){const e=t??s;return[l.replace(/\$basename/g,e),i?.replace(/\/\*$/g,`/${e}`)]}throw new Error("no matched rule")}(s,e,{wd:o,cwd:t,workspaceName:a});if(!E){const{dir:t}=await b.default.prompt({type:"input",name:"dir",message:"package directory",default:e});E=t}if(!$){const{name:t}=await b.default.prompt({type:"input",name:"name",message:"package name",default:e});$=t}S=p.applyEdits(S,p.modify(S,["name"],$,{formattingOptions:j}));let x=z(o,"repository");"string"==typeof x&&(x={type:"git",url:x,directory:E}),S=p.applyEdits(S,p.modify(S,["repository"],x,{formattingOptions:j}));const F=`${x?.url}/blob/master/${E}/README.md`;S=p.applyEdits(S,p.modify(S,["homepage"],F,{formattingOptions:j}));let _=d.labels;"function"==typeof _&&(_=_({name:$,dir:E})),_.push(`scope:${$}`);const A=`${x?.url}/issues/new?template=${d.template}&labels=${_.join(",")}`;function N(e){if(!E)throw new Error("pkgDir is not defined");return w.default.resolve(E,e)}S=p.applyEdits(S,p.modify(S,["bugs"],A,{formattingOptions:j})),y.default.existsSync(E)||y.default.mkdirSync(E);const P=N("package.json");if(y.default.existsSync(P))throw new Error("package.json already exists");y.default.writeFileSync(P,S),console.log(S,"written to",P);const q=z(o,"license"),J=N("README.md");"function"==typeof m&&(m=m({dir:E,packageJson:JSON.parse(S)}));const D=m.replace(/\$name/g,$).replace(/\$license/g,q);y.default.writeFileSync(J,D)})),n.program.command("publish").aliases(["pub","p"]).option("-b, --bumper <bumper>","bump version","patch").option("-p, --preview","preview publish").action((async({preview:e,bumper:t,...r})=>{N();const{value:n={}}=await _()??{},o=Object.entries(n);if(0===o.length)throw new Error("no packages selected");const a=o.map((([e,t])=>[e,P(t,e)])),s=Object.entries(r).reduce(((e,[t,r])=>(r&&e.push(`--${t}`,r),e)),[]);for(const[r,n]of a){const o=y.default.readFileSync(w.default.join(r,"package.json"),"utf-8"),a=JSON.parse(o)??"0.0.0",i=u.bump(a.version,t),{indent:l=" "}=h.default(o),c={tabSize:l.length,insertSpaces:!0};let f=o;f=p.applyEdits(f,p.modify(f,["version"],i,{formattingOptions:c}));for(const[e,t]of Object.entries(n))JSON.stringify(t)!==JSON.stringify(a[e])&&(f=p.applyEdits(f,p.modify(f,["publishConfig",e],t,{formattingOptions:c})));try{if(y.default.renameSync(w.default.join(r,"package.json"),w.default.join(r,"package.json.bak")),y.default.writeFileSync(w.default.join(r,"package.json"),f),console.log(f),e){console.warn("preview mode");continue}j.execSync(["pnpm","publish","--access","public","--no-git-checks",...s].join(" "),{cwd:r,stdio:"inherit"});const t=p.applyEdits(o,p.modify(o,["version"],i,{}));y.default.writeFileSync(w.default.join(r,"package.json.bak"),t)}finally{y.default.unlinkSync(w.default.join(r,"package.json")),y.default.renameSync(w.default.join(r,"package.json.bak"),w.default.join(r,"package.json"))}}A()}));const G=require("../package.json");n.program.version(G.version).description(G.description).option("--root <root>","root path").option("-c, --config-path <configPath>","config path"),n.program.parse(process.argv)}(fs,path,filterWorkspacePackages,commander,jsYaml,getWorkspaceDir,childProcess,pkger,detectIndent,inquirer,jsoncParser,micromatch,bumper,childProcess$1);
|
2
2
|
//# sourceMappingURL=index.iife.min.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.iife.min.js","sources":["../src/utils/filterSupport.ts","../src/inner.ts","../src/merge-package-json.ts","../src/utils/commondir.ts","../src/commands/publish.ts","../src/commands/build.ts","../src/index.ts"],"sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { getWorkspaceDir } from '@jiek/utils/getWorkspaceDir'\nimport { filterPackagesFromDir } from '@pnpm/filter-workspace-packages'\nimport { program } from 'commander'\nimport { load } from 'js-yaml'\n\nexport let type = ''\n\ntry {\n require.resolve('@pnpm/filter-workspace-packages')\n type = 'pnpm'\n} catch { /* empty */ }\nif (type !== '') {\n program\n .option('-f, --filter <filter>', 'filter packages')\n}\n\ninterface ProjectsGraph {\n wd: string\n root: string\n value?: Record<string, {\n name?: string\n }>\n}\n\nexport async function getSelectedProjectsGraph(): Promise<ProjectsGraph> {\n let filter = program.getOptionValue('filter')\n const rootOption = program.getOptionValue('root')\n const root = rootOption\n ? path.isAbsolute(rootOption)\n ? rootOption\n : path.resolve(process.cwd(), rootOption)\n : process.cwd()\n let notWorkspace = false\n let wd: string\n try {\n wd = getWorkspaceDir(root, type)\n } catch (e) {\n // @ts-ignore\n if ('message' in e && e.message === 'workspace root not found') {\n wd = root\n notWorkspace = true\n } else {\n throw e\n }\n }\n if (!notWorkspace && type === 'pnpm') {\n const pnpmWorkspaceFilePath = path.resolve(wd, 'pnpm-workspace.yaml')\n const pnpmWorkspaceFileContent = fs.readFileSync(pnpmWorkspaceFilePath, 'utf-8')\n const pnpmWorkspace = load(pnpmWorkspaceFileContent) as {\n packages: string[]\n }\n if (root === wd && !filter) {\n throw new Error('root path is workspace root, please provide a filter')\n // TODO inquirer prompt support user select packages\n }\n if (root !== wd && !filter) {\n const packageJSONIsExist = fs.existsSync(path.resolve(root, 'package.json'))\n if (!packageJSONIsExist) {\n throw new Error('root path is not workspace root, please provide a filter')\n }\n const packageJSON = JSON.parse(fs.readFileSync(path.resolve(root, 'package.json'), 'utf-8'))\n if (!packageJSON.name) {\n throw new Error('root path is not workspace root, please provide a filter')\n }\n filter = packageJSON.name\n }\n const { selectedProjectsGraph } = await filterPackagesFromDir(wd, [{\n filter: filter ?? '',\n followProdDepsOnly: true\n }], {\n prefix: root,\n workspaceDir: wd,\n patterns: pnpmWorkspace.packages\n })\n return {\n wd, root,\n value: Object.entries(selectedProjectsGraph)\n .reduce((acc, [key, value]) => {\n acc[key] = value.package.manifest\n return acc\n }, {} as NonNullable<ProjectsGraph['value']>)\n }\n }\n return {\n wd, root,\n value: {\n [wd]: JSON.parse(fs.readFileSync(path.resolve(wd, 'package.json'), 'utf-8'))\n }\n }\n}\n","let resolve: () => void\n\nexport let actionFuture: Promise<void>\n\nexport function actionDone() {\n resolve()\n}\n\nexport function actionRestore() {\n actionFuture = new Promise<void>(r => resolve = r)\n}\n","import path from 'node:path'\n\nimport { type Options, pkger } from '@jiek/pkger'\nimport type { Manifest } from '@pnpm/workspace.pkgs-graph'\n\nimport { commondir } from './utils/commondir'\n\nexport function mergePackageJson(manifest: Manifest & {\n jiek?: Options\n exports?: unknown | unknown[]\n}, cwd: string) {\n const {\n jiek: { cwd: _, ...jiek } = {}\n } = manifest\n let { exports } = manifest\n let includeIndex = false\n if (typeof exports === 'string') {\n includeIndex = true\n exports = { '.': exports }\n }\n if (exports === undefined) {\n exports = { '.': './src/index.ts' }\n }\n if (typeof exports === 'object') {\n if (Array.isArray(exports) && exports.length > 0) {\n includeIndex = true\n } else {\n includeIndex = !!(<Record<string, unknown>>exports)['.']\n }\n }\n const inputs = Array.isArray(exports)\n ? exports\n : Object\n .entries(<Record<string, unknown>>exports)\n .reduce((acc, [key, value]) => {\n if (typeof value === 'string') return key === '.'\n ? [value, ...acc]\n : acc.concat(value)\n\n throw new TypeError(`Unexpected value type for key \"${key}\" in exports, expected string, got ${typeof value}`)\n }, [] as string[])\n if (inputs.length === 0)\n throw new Error('No inputs found')\n\n const absoluteInputs = inputs.map(input => path.isAbsolute(input)\n ? input\n : path.resolve(cwd, input)\n )\n let cDir = path.dirname(absoluteInputs[0])\n if (absoluteInputs.length > 1) {\n cDir = commondir(absoluteInputs, cwd)\n }\n const resolvedInputs = absoluteInputs.map(input => {\n return path.relative(cDir, input)\n })\n return {\n ...manifest,\n ...pkger({\n cwd,\n noIndex: !includeIndex,\n source: path.relative(cwd, cDir),\n inputs: resolvedInputs,\n ...jiek\n })\n }\n}\n","import path from 'node:path'\n\nexport function commondir(files: string[], cwd = process.cwd()): string {\n const resolvedFiles = files.map(file => {\n if (path.isAbsolute(file)) return file\n return path.resolve(cwd, file)\n })\n const sep = '/'\n const [first = ''] = resolvedFiles\n const parts = first.split(sep)\n let common = ''\n for (let i = 0; i < parts.length; i++) {\n const segment = parts[i]\n if (resolvedFiles.every(file => file.startsWith(common + segment))) {\n common += segment + sep\n } else {\n break\n }\n }\n return common\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { bump, type BumperType } from '@jiek/utils/bumper'\nimport * as childProcess from 'child_process'\nimport { program } from 'commander'\nimport detectIndent from 'detect-indent'\nimport { applyEdits, modify } from 'jsonc-parser'\n\nimport { actionDone, actionRestore } from '../inner'\nimport { mergePackageJson } from '../merge-package-json'\nimport { getSelectedProjectsGraph } from '../utils/filterSupport'\n\nprogram\n .command('publish')\n .aliases(['pub', 'p'])\n .option('-b, --bumper <bumper>', 'bump version', 'patch')\n .option('-p, --preview', 'preview publish')\n .action(async ({ preview, bumper, ...options }: {\n preview?: boolean\n bumper: BumperType\n }) => {\n actionRestore()\n\n const { value = {} } = await getSelectedProjectsGraph() ?? {}\n const selectedProjectsGraphEntries = Object.entries(value)\n if (selectedProjectsGraphEntries.length === 0) {\n throw new Error('no packages selected')\n }\n const mainfests = selectedProjectsGraphEntries\n .map(([dir, manifest]) => [\n dir, mergePackageJson(manifest, dir)\n ] as const)\n const passArgs = Object\n .entries(options)\n .reduce((acc, [key, value]) => {\n if (value) {\n acc.push(`--${key}`, value as string)\n }\n return acc\n }, [] as string[])\n for (const [dir, manifest] of mainfests) {\n const oldJSONString = fs.readFileSync(path.join(dir, 'package.json'), 'utf-8')\n const oldJSON = JSON.parse(oldJSONString) ?? '0.0.0'\n const newVersion = bump(oldJSON.version, bumper)\n // TODO detectIndent by editorconfig\n const { indent = ' ' } = detectIndent(oldJSONString)\n const formattingOptions = {\n tabSize: indent.length,\n insertSpaces: true\n }\n let newJSONString = oldJSONString\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['version'], newVersion, { formattingOptions }\n ))\n for (const [key, value] of Object.entries(manifest)) {\n if (JSON.stringify(value) === JSON.stringify(oldJSON[key])) continue\n\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['publishConfig', key], value, { formattingOptions }\n ))\n }\n try {\n fs.renameSync(path.join(dir, 'package.json'), path.join(dir, 'package.json.bak'))\n fs.writeFileSync(path.join(dir, 'package.json'), newJSONString)\n console.log(newJSONString)\n if (preview) {\n console.warn('preview mode')\n continue\n }\n childProcess.execSync(['pnpm', 'publish', '--access', 'public', '--no-git-checks', ...passArgs].join(' '), {\n cwd: dir,\n stdio: 'inherit'\n })\n const modifyVersionPackageJSON = applyEdits(oldJSONString, modify(oldJSONString, ['version'], newVersion, {}))\n fs.writeFileSync(path.join(dir, 'package.json.bak'), modifyVersionPackageJSON)\n } finally {\n fs.unlinkSync(path.join(dir, 'package.json'))\n fs.renameSync(path.join(dir, 'package.json.bak'), path.join(dir, 'package.json'))\n }\n }\n actionDone()\n })\n","import * as childProcess from 'node:child_process'\nimport fs from 'node:fs'\nimport path from 'node:path'\n\nimport { program } from 'commander'\n\nimport { actionDone, actionRestore } from '../inner'\nimport { mergePackageJson } from '../merge-package-json'\nimport { getSelectedProjectsGraph } from '../utils/filterSupport'\n\nconst FILE_TEMPLATE = (manifest: unknown) => `\nconst pkg = ${JSON.stringify(manifest, null, 2)}\nconst { jiek = {} } = pkg\nconst templateArg = jiek.templateArgFilePath\n ? require.resolve(jiek.templateArgFilePath)\n : {\n styled: jiek.styled\n }\nmodule.exports = require('jiek/rollup').template(templateArg, pkg)\n`.trimStart()\n\nprogram\n .command('build')\n .action(async () => {\n actionRestore()\n const {\n wd, value = {}\n } = await getSelectedProjectsGraph() ?? {}\n\n if (Object.keys(value).length === 0) {\n throw new Error('no package found')\n }\n const jiekTempDir = (...paths: string[]) => path.resolve(wd, 'node_modules/.jiek', ...paths)\n if (!fs.existsSync(jiekTempDir())) fs.mkdirSync(jiekTempDir())\n\n const rollupBinaryPath = require.resolve('rollup')\n .replace(/dist\\/rollup.js$/, 'dist/bin/rollup')\n let i = 0\n for (const [dir, manifest] of Object.entries(value)) {\n const newManifest = mergePackageJson(manifest, dir)\n // TODO support auto build child packages in workspaces\n const escapeManifestName = manifest.name?.replace(/^@/g, '').replace(/\\//g, '+')\n const configFile = jiekTempDir(\n `${escapeManifestName ?? `anonymous-${i++}`}.rollup.config.js`\n )\n fs.writeFileSync(configFile, FILE_TEMPLATE(newManifest))\n let prefix = ''\n if (process.env.NODE_ENV === 'test') {\n const registerPath = require.resolve('esbuild-register')\n const loaderPath = require.resolve('esbuild-register/loader')\n prefix = `node --import ${registerPath} -r ${loaderPath} `\n }\n // TODO replace with `spawn` to support watch mode\n childProcess.execSync(`${prefix}${rollupBinaryPath} -c ${configFile}`, {\n cwd: dir, stdio: 'inherit'\n })\n }\n\n actionDone()\n })\n","import './utils/filterSupport'\nimport './commands/publish'\nimport './commands/build'\n\nimport { program } from 'commander'\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pkg = require('../package.json')\n\nprogram\n .version(pkg.version)\n .description(pkg.description)\n .option('--root <root>', 'root path')\n\nprogram.parse(process.argv)\n"],"names":["resolve","type","require","async","getSelectedProjectsGraph","filter","program","getOptionValue","rootOption","root","path","isAbsolute","process","cwd","wd","notWorkspace","getWorkspaceDir","e","message","pnpmWorkspaceFilePath","default","pnpmWorkspaceFileContent","fs","readFileSync","pnpmWorkspace","load","Error","existsSync","packageJSON","JSON","parse","name","selectedProjectsGraph","filterPackagesFromDir","followProdDepsOnly","prefix","workspaceDir","patterns","packages","value","Object","entries","reduce","acc","key","package","manifest","actionDone","actionRestore","Promise","r","mergePackageJson","jiek","_","exports","includeIndex","Array","isArray","length","inputs","concat","TypeError","absoluteInputs","map","input","cDir","dirname","files","resolvedFiles","file","first","parts","split","common","i","segment","every","startsWith","commondir","resolvedInputs","relative","pkger","noIndex","source","option","command","aliases","action","preview","bumper","options","selectedProjectsGraphEntries","mainfests","dir","passArgs","push","oldJSONString","join","oldJSON","newVersion","bump","version","indent","detectIndent","formattingOptions","tabSize","insertSpaces","newJSONString","applyEdits","modify","stringify","renameSync","writeFileSync","console","log","warn","childProcess","execSync","stdio","modifyVersionPackageJSON","unlinkSync","FILE_TEMPLATE","trimStart","commander","keys","jiekTempDir","paths","mkdirSync","rollupBinaryPath","replace","newManifest","escapeManifestName","configFile","env","NODE_ENV","pkg","description","argv"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.iife.min.js","sources":["../src/utils/getRoot.ts","../src/utils/getWD.ts","../src/utils/filterSupport.ts","../src/inner.ts","../src/merge-package-json.ts","../src/utils/commondir.ts","../src/commands/build.ts","../src/utils/loadConfig.ts","../src/commands/init.ts","../src/commands/publish.ts","../src/index.ts"],"sourcesContent":["import path from 'node:path'\n\nimport { program } from 'commander'\n\nlet root: string\nexport function getRoot() {\n if (root) return root\n\n const rootOption = program.getOptionValue('root')\n root = rootOption\n ? path.isAbsolute(rootOption)\n ? rootOption\n : path.resolve(process.cwd(), rootOption)\n : process.cwd()\n return root\n}\n","import { getWorkspaceDir } from '@jiek/utils/getWorkspaceDir'\n\nimport { type } from './filterSupport'\nimport { getRoot } from './getRoot'\n\nlet wd: string\nlet notWorkspace = false\n\nexport function getWD() {\n if (wd) return { wd, notWorkspace }\n\n const root = getRoot()\n try {\n wd = getWorkspaceDir(root, type)\n } catch (e) {\n // @ts-ignore\n if ('message' in e && e.message === 'workspace root not found') {\n wd = root\n notWorkspace = true\n } else {\n throw e\n }\n }\n return { wd, notWorkspace }\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { getWorkspaceDir } from '@jiek/utils/getWorkspaceDir'\nimport { filterPackagesFromDir } from '@pnpm/filter-workspace-packages'\nimport { program } from 'commander'\nimport { load } from 'js-yaml'\n\nimport { getRoot } from './getRoot'\nimport { getWD } from './getWD'\n\nexport let type = ''\n\ntry {\n require.resolve('@pnpm/filter-workspace-packages')\n type = 'pnpm'\n} catch { /* empty */ }\nif (type !== '') {\n program\n .option('-f, --filter <filter>', 'filter packages')\n}\n\ninterface ProjectsGraph {\n wd: string\n root: string\n value?: Record<string, {\n name?: string\n }>\n}\n\nexport async function getSelectedProjectsGraph(): Promise<ProjectsGraph> {\n let filter = program.getOptionValue('filter')\n const root = getRoot()\n const { wd, notWorkspace } = getWD()\n if (!notWorkspace && type === 'pnpm') {\n const pnpmWorkspaceFilePath = path.resolve(wd, 'pnpm-workspace.yaml')\n const pnpmWorkspaceFileContent = fs.readFileSync(pnpmWorkspaceFilePath, 'utf-8')\n const pnpmWorkspace = load(pnpmWorkspaceFileContent) as {\n packages: string[]\n }\n if (root === wd && !filter) {\n throw new Error('root path is workspace root, please provide a filter')\n // TODO inquirer prompt support user select packages\n }\n if (root !== wd && !filter) {\n const packageJSONIsExist = fs.existsSync(path.resolve(root, 'package.json'))\n if (!packageJSONIsExist) {\n throw new Error('root path is not workspace root, please provide a filter')\n }\n const packageJSON = JSON.parse(fs.readFileSync(path.resolve(root, 'package.json'), 'utf-8'))\n if (!packageJSON.name) {\n throw new Error('root path is not workspace root, please provide a filter')\n }\n filter = packageJSON.name\n }\n const { selectedProjectsGraph } = await filterPackagesFromDir(wd, [{\n filter: filter ?? '',\n followProdDepsOnly: true\n }], {\n prefix: root,\n workspaceDir: wd,\n patterns: pnpmWorkspace.packages\n })\n return {\n wd, root,\n value: Object.entries(selectedProjectsGraph)\n .reduce((acc, [key, value]) => {\n acc[key] = value.package.manifest\n return acc\n }, {} as NonNullable<ProjectsGraph['value']>)\n }\n }\n return {\n wd, root,\n value: {\n [wd]: JSON.parse(fs.readFileSync(path.resolve(wd, 'package.json'), 'utf-8'))\n }\n }\n}\n","let resolve: () => void\n\nexport let actionFuture: Promise<void>\n\nexport function actionDone() {\n resolve()\n}\n\nexport function actionRestore() {\n actionFuture = new Promise<void>(r => resolve = r)\n}\n","import path from 'node:path'\n\nimport { type Options, pkger } from '@jiek/pkger'\nimport type { Manifest } from '@pnpm/workspace.pkgs-graph'\n\nimport { commondir } from './utils/commondir'\n\nexport function mergePackageJson(manifest: Manifest & {\n jiek?: Options\n exports?: unknown | unknown[]\n}, cwd: string) {\n const {\n jiek: { cwd: _, ...jiek } = {}\n } = manifest\n let { exports } = manifest\n let includeIndex = false\n if (typeof exports === 'string') {\n includeIndex = true\n exports = { '.': exports }\n }\n if (exports === undefined) {\n exports = { '.': './src/index.ts' }\n }\n if (typeof exports === 'object') {\n if (Array.isArray(exports) && exports.length > 0) {\n includeIndex = true\n } else {\n includeIndex = !!(<Record<string, unknown>>exports)['.']\n }\n }\n const inputs = Array.isArray(exports)\n ? exports as string[]\n : Object\n .entries(<Record<string, unknown>>exports)\n .reduce((acc, [key, value]) => {\n if (typeof value === 'string') return key === '.'\n ? [value, ...acc]\n : acc.concat(value)\n if (Array.isArray(value)) return acc.concat(value)\n\n throw new TypeError(`Unexpected value type for key \"${key}\" in exports, expected string, got ${typeof value}`)\n }, [] as string[])\n if (inputs.length === 0)\n throw new Error('No inputs found')\n\n const absoluteInputs = inputs.map(input => path.isAbsolute(input)\n ? input\n : path.resolve(cwd, input)\n )\n let cDir = path.dirname(absoluteInputs[0])\n if (absoluteInputs.length > 1) {\n cDir = commondir(absoluteInputs, cwd)\n }\n const resolvedInputs = absoluteInputs.map(input => {\n return path.relative(cDir, input)\n })\n return {\n ...manifest,\n ...pkger({\n cwd,\n noIndex: !includeIndex,\n source: path.relative(cwd, cDir),\n inputs: resolvedInputs,\n ...jiek\n })\n }\n}\n","import path from 'node:path'\n\nexport function commondir(files: string[], cwd = process.cwd()): string {\n const resolvedFiles = files.map(file => {\n if (path.isAbsolute(file)) return file\n return path.resolve(cwd, file)\n })\n const sep = '/'\n const [first = ''] = resolvedFiles\n const parts = first.split(sep)\n let common = ''\n for (let i = 0; i < parts.length; i++) {\n const segment = parts[i]\n if (resolvedFiles.every(file => file.startsWith(common + segment))) {\n common += segment + sep\n } else {\n break\n }\n }\n return common\n}\n","import * as childProcess from 'node:child_process'\nimport fs from 'node:fs'\nimport path from 'node:path'\n\nimport { program } from 'commander'\n\nimport { actionDone, actionRestore } from '../inner'\nimport { mergePackageJson } from '../merge-package-json'\nimport { getSelectedProjectsGraph } from '../utils/filterSupport'\n\nconst FILE_TEMPLATE = (manifest: unknown) => `\nconst pkg = ${JSON.stringify(manifest, null, 2)}\nconst { jiek = {} } = pkg\nconst templateArg = jiek.templateArgFilePath\n ? require.resolve(jiek.templateArgFilePath)\n : {\n styled: jiek.styled\n }\nmodule.exports = require('jiek/rollup').template(templateArg, pkg)\n`.trimStart()\n\nprogram\n .command('build')\n .action(async () => {\n actionRestore()\n const {\n wd, value = {}\n } = await getSelectedProjectsGraph() ?? {}\n\n if (Object.keys(value).length === 0) {\n throw new Error('no package found')\n }\n const jiekTempDir = (...paths: string[]) => path.resolve(wd, 'node_modules/.jiek', ...paths)\n if (!fs.existsSync(jiekTempDir())) fs.mkdirSync(jiekTempDir())\n\n const rollupBinaryPath = require.resolve('rollup')\n .replace(/dist\\/rollup.js$/, 'dist/bin/rollup')\n let i = 0\n for (const [dir, manifest] of Object.entries(value)) {\n const newManifest = mergePackageJson(manifest, dir)\n // TODO support auto build child packages in workspaces\n const escapeManifestName = manifest.name?.replace(/^@/g, '').replace(/\\//g, '+')\n const configFile = jiekTempDir(\n `${escapeManifestName ?? `anonymous-${i++}`}.rollup.config.js`\n )\n fs.writeFileSync(configFile, FILE_TEMPLATE(newManifest))\n let prefix = ''\n if (process.env.NODE_ENV === 'test') {\n const registerPath = require.resolve('esbuild-register')\n const loaderPath = require.resolve('esbuild-register/loader')\n prefix = `node --import ${registerPath} -r ${loaderPath} `\n }\n // TODO replace with `spawn` to support watch mode\n childProcess.execSync(`${prefix}${rollupBinaryPath} -c ${configFile}`, {\n cwd: dir, stdio: 'inherit'\n })\n }\n\n actionDone()\n })\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { program } from 'commander'\nimport { load } from 'js-yaml'\n\nimport { getWD } from './getWD'\n\nfunction packageIsExist(name: string) {\n try {\n require.resolve(name)\n return true\n } catch (e) {\n console.log(e)\n return false\n }\n}\n\nlet tsRegisterName: string | undefined\nconst registers = [\n process.env.JIEK_TS_REGISTER,\n 'esbuild-register'\n].filter(Boolean) as string[]\nfor (const register of registers) {\n if (packageIsExist(register)) {\n tsRegisterName = register\n break\n }\n}\n\nlet configName = 'jiek.config'\n\nfunction getConfigPath(root: string) {\n const isSupportTsLoader = !!tsRegisterName\n function configWithExtIsExist(ext: string) {\n const filenames = [\n path.resolve(root, `${configName}.${ext}`),\n path.resolve(root, `.${configName}.${ext}`)\n ]\n for (const filename of filenames) {\n if (\n fs.existsSync(filename) &&\n fs.lstatSync(filename)\n .isFile()\n ) {\n return filename\n }\n }\n return\n }\n configName = configWithExtIsExist('js') ?? configName\n configName = configWithExtIsExist('json') ?? configName\n configName = configWithExtIsExist('yaml') ?? configName\n if (isSupportTsLoader) {\n configName = configWithExtIsExist('ts') ?? configName\n }\n return path.resolve(root, configName)\n}\n\nexport function loadConfig() {\n const { wd: root, notWorkspace } = getWD()\n if (notWorkspace)\n throw new Error('not in workspace')\n\n let configPath = program.getOptionValue('configPath')\n\n if (!configPath) {\n configPath = getConfigPath(root)\n } else {\n if (!fs.existsSync(configPath))\n throw new Error(`config file not found: ${configPath}`)\n if (!path.isAbsolute(configPath))\n configPath = path.resolve(root, configPath)\n }\n const ext = path.extname(configPath)\n\n let module: any\n switch (ext) {\n case '.js':\n module = require(configPath)\n break\n case '.json':\n return require(configPath)\n case '.yaml':\n return load(fs.readFileSync(configPath, 'utf-8'))\n case '.ts':\n if (tsRegisterName) {\n require(tsRegisterName)\n module = require(configPath)\n break\n }\n throw new Error(\n 'ts config file is not supported without ts register, ' +\n 'please install esbuild-register or set JIEK_TS_REGISTER env for custom ts register'\n )\n default:\n throw new Error(`unsupported config file type: ${ext}`)\n }\n if (!module) throw new Error('config file is empty')\n\n return module.default ?? module\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { program } from 'commander'\nimport detectIndent from 'detect-indent'\nimport inquirer from 'inquirer'\nimport { applyEdits, modify } from 'jsonc-parser'\nimport { isMatch } from 'micromatch'\n\nimport type { Config, InitNamed } from '../base'\nimport { getWD } from '../utils/getWD'\nimport { loadConfig } from '../utils/loadConfig'\n\nconst PACKAGE_JSON_TEMPLATE = `{\n \"name\": \"\",\n \"version\": \"0.0.1\",\n \"description\": \"\",\n \"license\": \"\",\n \"author\": \"\",\n \"files\": [\"dist\"],\n \"exports\": {\n \".\": \"./src/index.ts\"\n },\n \"scripts\": {\n },\n \"homepage\": \"\",\n \"repository\": \"\",\n \"bugs\": \"\"\n}`.trimStart()\nconst README_TEMPLATE = `# $name\n\n## Installation\n\n\\`\\`\\`bash\nnpm install $name\n# or\npnpm install $name\n# or\nyarn add $name\n\\`\\`\\`\n\n## Usage\n\n\n## License\n\n$license\n`.trimStart()\n\nfunction getTemplateStr(wd: string, template: string | undefined) {\n let templateString = template ?? PACKAGE_JSON_TEMPLATE\n let isTemplateFile = false\n try {\n if (template) JSON.parse(template)\n } catch (e) {\n isTemplateFile = true\n }\n if (isTemplateFile) {\n const templatePath = path.resolve(wd, template!)\n templateString = fs.readFileSync(templatePath, 'utf-8')\n }\n return templateString\n}\nconst wdCache = new Map<string, Record<string, any>>()\nfunction getWDPackageJSONFiled(wd: string, field: string) {\n if (wdCache.has(wd)) {\n return wdCache.get(wd)![field]\n }\n const packageJSONPath = path.resolve(wd, 'package.json')\n const packageJSON = JSON.parse(fs.readFileSync(packageJSONPath, 'utf-8'))\n wdCache.set(wd, packageJSON)\n return packageJSON[field]\n}\nasync function getName(\n named: InitNamed | undefined,\n name: string,\n {\n wd, cwd,\n workspaceName\n }: {\n wd: string\n cwd: string\n workspaceName: string\n }\n): Promise<[name?: string, path?: string]> {\n const relativePath = cwd.replace(`${wd}/`, '')\n let basename = path.basename(cwd)\n\n if (typeof named === 'function') {\n return named(name, {\n full: wd,\n relative: cwd\n })\n }\n\n let isParentMatched = false\n let matchedKey: string | undefined\n let matchedRule: NonNullable<typeof named>[string] | undefined\n if (typeof named === 'object') {\n const isWD = cwd === wd\n if (isWD) {\n const { rule } = await inquirer.prompt<{ rule: string }>({\n type: 'list',\n name: 'rule',\n message: 'choose a rule',\n default: 'default',\n choices: ['default'].concat(Object.keys(named))\n })\n if (rule !== 'default') {\n matchedKey = rule\n matchedRule = named[rule]\n }\n } else for (const [key, value] of Object.entries(named)) {\n if (isMatch(relativePath, key)) {\n matchedKey = key\n matchedRule = value\n break\n }\n if (isMatch(`${relativePath}/jiek_ignore_dont_use_same_file_name`, key)) {\n isParentMatched = true\n matchedKey = key\n matchedRule = value\n break\n }\n }\n }\n if (!matchedRule) {\n matchedKey = 'packages/*'\n matchedRule = `@${workspaceName}/$basename`\n }\n if (!matchedRule)\n throw new Error('no matched rule')\n if (!name && isParentMatched) {\n basename = await inquirer.prompt<{ name: string }>({\n type: 'input',\n name: 'name',\n message: `the matched rule is \\`${String(matchedRule)}\\`, please input the basename\\n`\n }).then(({ name }) => name)\n }\n\n if (typeof matchedRule === 'function') {\n return matchedRule(name, {\n full: wd,\n relative: cwd,\n basename: basename\n })\n }\n if (typeof matchedRule === 'string') {\n const dirName = name ?? basename\n return [\n matchedRule.replace(/\\$basename/g, dirName),\n matchedKey?.replace(/\\/\\*$/g, `/${dirName}`)\n ]\n }\n throw new Error('no matched rule')\n}\n\nprogram\n .command('init [name]')\n .option('-t, --template <template>', 'the package.json template file path or file content')\n .action(async () => {\n const [, name] = program.args\n const cwd = process.cwd()\n const { init = {} }: Config = loadConfig() ?? {}\n const { wd } = getWD()\n const workspaceName = path.basename(wd)\n\n const {\n named,\n template,\n bug = {},\n readme: _readme = README_TEMPLATE,\n readmeTemplate\n } = init\n const resolvedBug = {\n template: 'bug_report.yml',\n labels: ['bug'],\n ...bug\n }\n let readme = _readme\n if (readmeTemplate) {\n const readmeTemplatePath = path.resolve(wd, readmeTemplate)\n readme = fs.readFileSync(readmeTemplatePath, 'utf-8')\n }\n\n const templateString = getTemplateStr(wd, template)\n // TODO detectIndent by editorconfig\n const { indent = ' ' } = detectIndent(templateString)\n const formattingOptions = {\n tabSize: indent.length,\n insertSpaces: true\n }\n const passFields = [\n 'license', 'author'\n ]\n let newJSONString = templateString\n for (const field of passFields) {\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, [field], getWDPackageJSONFiled(wd, field), { formattingOptions }\n ))\n }\n let [pkgName, pkgDir] = await getName(named, name, {\n wd, cwd,\n workspaceName\n })\n if (!pkgDir) {\n const { dir } = await inquirer.prompt<{ dir: string }>({\n type: 'input',\n name: 'dir',\n message: 'package directory',\n default: name\n })\n pkgDir = dir\n }\n if (!pkgName) {\n const { name: inputName } = await inquirer.prompt<{\n name: string\n }>({\n type: 'input',\n name: 'name',\n message: 'package name',\n default: name\n })\n pkgName = inputName\n }\n newJSONString = applyEdits(newJSONString, modify(newJSONString, ['name'], pkgName, { formattingOptions }))\n\n let pkgRepo = getWDPackageJSONFiled(wd, 'repository')\n if (typeof pkgRepo === 'string') {\n pkgRepo = {\n type: 'git',\n url: pkgRepo,\n directory: pkgDir\n }\n }\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['repository'], pkgRepo, { formattingOptions }\n ))\n const homepage = `${pkgRepo?.url}/blob/master/${pkgDir}/README.md`\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['homepage'], homepage, { formattingOptions }\n ))\n let labels = resolvedBug.labels\n if (typeof labels === 'function') labels = labels({\n name: pkgName, dir: pkgDir\n })\n labels.push(`scope:${pkgName}`)\n const bugs = `${pkgRepo?.url}/issues/new?template=${\n resolvedBug.template\n }&labels=${\n labels.join(',')\n }`\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['bugs'], bugs, { formattingOptions }\n ))\n\n function pkgDirTo(to: string) {\n if (!pkgDir) throw new Error('pkgDir is not defined')\n\n return path.resolve(pkgDir, to)\n }\n if (!fs.existsSync(pkgDir)) fs.mkdirSync(pkgDir)\n const pkgJSONFilePath = pkgDirTo('package.json')\n if (fs.existsSync(pkgJSONFilePath)) {\n throw new Error('package.json already exists')\n }\n fs.writeFileSync(pkgJSONFilePath, newJSONString)\n console.log(newJSONString, 'written to', pkgJSONFilePath)\n\n const license = getWDPackageJSONFiled(wd, 'license')\n const readmeFilePath = pkgDirTo('README.md')\n if (typeof readme === 'function') {\n readme = readme({\n dir: pkgDir,\n packageJson: JSON.parse(newJSONString)\n })\n }\n const readmeContent = readme\n .replace(/\\$name/g, pkgName)\n .replace(/\\$license/g, license)\n fs.writeFileSync(readmeFilePath, readmeContent)\n })\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { bump, type BumperType } from '@jiek/utils/bumper'\nimport * as childProcess from 'child_process'\nimport { program } from 'commander'\nimport detectIndent from 'detect-indent'\nimport { applyEdits, modify } from 'jsonc-parser'\n\nimport { actionDone, actionRestore } from '../inner'\nimport { mergePackageJson } from '../merge-package-json'\nimport { getSelectedProjectsGraph } from '../utils/filterSupport'\n\nprogram\n .command('publish')\n .aliases(['pub', 'p'])\n .option('-b, --bumper <bumper>', 'bump version', 'patch')\n .option('-p, --preview', 'preview publish')\n .action(async ({ preview, bumper, ...options }: {\n preview?: boolean\n bumper: BumperType\n }) => {\n actionRestore()\n\n const { value = {} } = await getSelectedProjectsGraph() ?? {}\n const selectedProjectsGraphEntries = Object.entries(value)\n if (selectedProjectsGraphEntries.length === 0) {\n throw new Error('no packages selected')\n }\n const mainfests = selectedProjectsGraphEntries\n .map(([dir, manifest]) => [\n dir, mergePackageJson(manifest, dir)\n ] as const)\n const passArgs = Object\n .entries(options)\n .reduce((acc, [key, value]) => {\n if (value) {\n acc.push(`--${key}`, value as string)\n }\n return acc\n }, [] as string[])\n for (const [dir, manifest] of mainfests) {\n const oldJSONString = fs.readFileSync(path.join(dir, 'package.json'), 'utf-8')\n const oldJSON = JSON.parse(oldJSONString) ?? '0.0.0'\n const newVersion = bump(oldJSON.version, bumper)\n // TODO detectIndent by editorconfig\n const { indent = ' ' } = detectIndent(oldJSONString)\n const formattingOptions = {\n tabSize: indent.length,\n insertSpaces: true\n }\n let newJSONString = oldJSONString\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['version'], newVersion, { formattingOptions }\n ))\n for (const [key, value] of Object.entries(manifest)) {\n if (JSON.stringify(value) === JSON.stringify(oldJSON[key])) continue\n\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['publishConfig', key], value, { formattingOptions }\n ))\n }\n try {\n fs.renameSync(path.join(dir, 'package.json'), path.join(dir, 'package.json.bak'))\n fs.writeFileSync(path.join(dir, 'package.json'), newJSONString)\n console.log(newJSONString)\n if (preview) {\n console.warn('preview mode')\n continue\n }\n childProcess.execSync(['pnpm', 'publish', '--access', 'public', '--no-git-checks', ...passArgs].join(' '), {\n cwd: dir,\n stdio: 'inherit'\n })\n const modifyVersionPackageJSON = applyEdits(oldJSONString, modify(oldJSONString, ['version'], newVersion, {}))\n fs.writeFileSync(path.join(dir, 'package.json.bak'), modifyVersionPackageJSON)\n } finally {\n fs.unlinkSync(path.join(dir, 'package.json'))\n fs.renameSync(path.join(dir, 'package.json.bak'), path.join(dir, 'package.json'))\n }\n }\n actionDone()\n })\n","import './utils/filterSupport'\nimport './commands/build'\nimport './commands/init'\nimport './commands/publish'\n\nimport { program } from 'commander'\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pkg = require('../package.json')\n\nprogram\n .version(pkg.version)\n .description(pkg.description)\n .option('--root <root>', 'root path')\n .option('-c, --config-path <configPath>', 'config path')\n\nprogram.parse(process.argv)\n"],"names":["root","wd","getRoot","rootOption","program","getOptionValue","path","default","isAbsolute","resolve","process","cwd","notWorkspace","getWD","getWorkspaceDir","type","e","message","require","async","getSelectedProjectsGraph","filter","pnpmWorkspaceFilePath","pnpmWorkspaceFileContent","fs","readFileSync","pnpmWorkspace","load","Error","existsSync","packageJSON","JSON","parse","name","selectedProjectsGraph","filterPackagesFromDir","followProdDepsOnly","prefix","workspaceDir","patterns","packages","value","Object","entries","reduce","acc","key","package","manifest","actionDone","actionRestore","Promise","r","mergePackageJson","jiek","_","exports","includeIndex","Array","isArray","length","inputs","concat","TypeError","absoluteInputs","map","input","cDir","dirname","files","resolvedFiles","file","first","parts","split","common","i","segment","every","startsWith","commondir","resolvedInputs","relative","pkger","noIndex","source","option","FILE_TEMPLATE","stringify","trimStart","packageIsExist","console","log","tsRegisterName","commander","command","action","keys","jiekTempDir","paths","mkdirSync","rollupBinaryPath","replace","dir","newManifest","escapeManifestName","configFile","writeFileSync","env","NODE_ENV","childProcess","execSync","stdio","registers","JIEK_TS_REGISTER","Boolean","register","configName","loadConfig","configPath","isSupportTsLoader","configWithExtIsExist","ext","filenames","filename","lstatSync","isFile","getConfigPath","extname","module","PACKAGE_JSON_TEMPLATE","README_TEMPLATE","wdCache","Map","getWDPackageJSONFiled","field","has","get","packageJSONPath","set","args","init","workspaceName","basename","named","template","bug","readme","_readme","readmeTemplate","resolvedBug","labels","readmeTemplatePath","templateString","isTemplateFile","templatePath","getTemplateStr","indent","detectIndent","formattingOptions","tabSize","insertSpaces","passFields","newJSONString","applyEdits","modify","pkgName","pkgDir","relativePath","full","matchedKey","matchedRule","isParentMatched","rule","inquirer","prompt","choices","isMatch","String","then","dirName","getName","inputName","pkgRepo","url","directory","homepage","push","bugs","join","pkgDirTo","to","pkgJSONFilePath","license","readmeFilePath","packageJson","readmeContent","aliases","preview","bumper","options","selectedProjectsGraphEntries","mainfests","passArgs","oldJSONString","oldJSON","newVersion","bump","version","renameSync","warn","modifyVersionPackageJSON","unlinkSync","pkg","description","argv"],"mappings":"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"}
|