jiek 0.4.7-alpha.1 → 0.4.7-alpha.11

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.
Files changed (47) hide show
  1. package/bin/jiek.js +7 -4
  2. package/dist/cli.cjs +5028 -0
  3. package/dist/cli.js +4277 -95
  4. package/dist/cli.min.cjs +19 -0
  5. package/dist/cli.min.js +19 -1
  6. package/dist/index.cjs +5 -0
  7. package/dist/index.js +1 -3
  8. package/dist/index.min.cjs +1 -0
  9. package/dist/index.min.js +1 -1
  10. package/dist/rollup/index.cjs +4670 -0
  11. package/dist/rollup/index.js +4180 -66
  12. package/dist/rollup/index.min.cjs +19 -0
  13. package/dist/rollup/index.min.js +19 -1
  14. package/package.json +13 -11
  15. package/src/commands/base.ts +1 -2
  16. package/src/commands/build.ts +4 -2
  17. package/src/rollup/index.ts +2 -2
  18. package/src/utils/filterSupport.ts +2 -0
  19. package/src/utils/tsRegister.ts +4 -0
  20. package/dist/cli.d.mts.map +0 -1
  21. package/dist/cli.d.ts.map +0 -1
  22. package/dist/cli.js.map +0 -1
  23. package/dist/cli.min.js.map +0 -1
  24. package/dist/cli.min.mjs +0 -1
  25. package/dist/cli.min.mjs.map +0 -1
  26. package/dist/cli.mjs +0 -803
  27. package/dist/cli.mjs.map +0 -1
  28. package/dist/index.d.mts.map +0 -1
  29. package/dist/index.d.ts.map +0 -1
  30. package/dist/index.js.map +0 -1
  31. package/dist/index.min.js.map +0 -1
  32. package/dist/index.min.mjs +0 -1
  33. package/dist/index.min.mjs.map +0 -1
  34. package/dist/index.mjs +0 -3
  35. package/dist/index.mjs.map +0 -1
  36. package/dist/rollup/index.d.mts.map +0 -1
  37. package/dist/rollup/index.d.ts.map +0 -1
  38. package/dist/rollup/index.js.map +0 -1
  39. package/dist/rollup/index.min.js.map +0 -1
  40. package/dist/rollup/index.min.mjs +0 -1
  41. package/dist/rollup/index.min.mjs.map +0 -1
  42. package/dist/rollup/index.mjs +0 -551
  43. package/dist/rollup/index.mjs.map +0 -1
  44. package/src/pkg.ts +0 -1
  45. /package/dist/{cli.d.mts → cli.d.cts} +0 -0
  46. /package/dist/{index.d.mts → index.d.cts} +0 -0
  47. /package/dist/rollup/{index.d.mts → index.d.cts} +0 -0
package/dist/cli.mjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.mjs","sources":["../src/utils/getRoot.ts","../src/utils/getWD.ts","../src/utils/filterSupport.ts","../src/pkg.ts","../src/commands/base.ts","../src/inner.ts","../src/utils/tsRegister.ts","../src/utils/loadConfig.ts","../src/commands/build.ts","../src/commands/init.ts","../src/merge-package-json.ts","../src/commands/publish.ts","../src/cli.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 : undefined\n return root\n}\n","import { getWorkspaceDir, isWorkspaceDir } 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 if (root !== undefined) {\n const isWorkspace = isWorkspaceDir(root, type)\n notWorkspace = !isWorkspace\n wd = root\n return { wd, notWorkspace }\n }\n try {\n wd = getWorkspaceDir(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 { 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,\n 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,\n root,\n value: {\n [wd]: JSON.parse(fs.readFileSync(path.resolve(wd, 'package.json'), 'utf-8'))\n }\n }\n}\n","export default require('../package.json')\n","import { program } from 'commander'\n\nimport pkg from '../pkg'\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","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","function packageIsExist(name: string) {\n try {\n require.resolve(name)\n return true\n } catch (e) {\n return false\n }\n}\n\nexport let tsRegisterName: string | undefined\nconst registers = [\n process.env.JIEK_TS_REGISTER,\n 'esbuild-register',\n '@swc-node/register',\n 'ts-node/register'\n].filter(Boolean) as string[]\nfor (const register of registers) {\n if (packageIsExist(register)) {\n tsRegisterName = register\n break\n }\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { program } from 'commander'\nimport type { Config } from 'jiek'\nimport { load } from 'js-yaml'\n\nimport { getWD } from './getWD'\nimport { tsRegisterName } from './tsRegister'\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(process.cwd(), `${configName}.${ext}`),\n path.resolve(process.cwd(), `.${configName}.${ext}`),\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(): Config {\n const { wd: root, notWorkspace } = getWD()\n if (notWorkspace) {\n throw new Error('not in workspace')\n }\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 }\n if (!path.isAbsolute(configPath)) {\n configPath = path.resolve(root, configPath)\n }\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')) as Config\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 case '.config':\n module = {}\n break\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 '../rollup/base'\n\nimport fs from 'node:fs'\nimport path from 'node:path'\n\nimport { MultiBar, Presets } from 'cli-progress'\nimport { program } from 'commander'\nimport { execaCommand } from 'execa'\n\nimport { actionDone, actionRestore } from '../inner'\nimport type { RollupProgressEvent } from '../rollup/base'\nimport { getSelectedProjectsGraph } from '../utils/filterSupport'\nimport { loadConfig } from '../utils/loadConfig'\nimport { tsRegisterName } from '../utils/tsRegister'\n\nconst FILE_TEMPLATE = (manifest: unknown) => (`\nconst manifest = ${JSON.stringify(manifest, null, 2)}\nmodule.exports = require('jiek/rollup').template(manifest)\n`.trimStart())\n\nprogram\n .command('build')\n .option('-s, --silent', \"Don't display logs.\")\n .option('-e, --entries <ENTRIES>', \"Specify the entries of the package.json's 'exports' field.(support glob)\")\n .action(async ({\n silent,\n entries\n }: {\n silent: boolean\n entries: string\n }) => {\n actionRestore()\n const { build } = loadConfig()\n silent = silent ?? build?.silent ?? false\n const {\n wd,\n value = {}\n } = await getSelectedProjectsGraph() ?? {}\n\n if (Object.keys(value).length === 0) {\n throw new Error('no package found')\n }\n const wdNodeModules = path.resolve(wd, 'node_modules')\n if (!fs.existsSync(wdNodeModules)) {\n fs.mkdirSync(wdNodeModules)\n }\n const jiekTempDir = (...paths: string[]) => path.resolve(wdNodeModules, '.jiek', ...paths)\n if (!fs.existsSync(jiekTempDir())) {\n fs.mkdirSync(jiekTempDir())\n }\n\n const rollupBinaryPath = require.resolve('rollup')\n .replace(/dist\\/rollup.js$/, 'dist/bin/rollup')\n const multiBars = new MultiBar({\n clearOnComplete: false,\n hideCursor: true,\n format: '- {bar} | {status} | {input} | {message}'\n }, Presets.shades_classic)\n let i = 0\n await Promise.all(\n Object.entries(value).map(async ([dir, manifest]) => {\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(manifest))\n let prefix = ''\n if (tsRegisterName) {\n prefix = `node -r ${tsRegisterName} `\n }\n // TODO replace with `spawn` to support watch mode\n const command = `${prefix}${rollupBinaryPath} --silent -c ${configFile}`\n const child = execaCommand(command, {\n ipc: true,\n cwd: dir,\n env: {\n ...process.env,\n JIEK_ROOT: wd,\n JIEK_ENTRIES: entries\n }\n })\n const bars: Record<string, ReturnType<typeof multiBars.create>> = {}\n let inputMaxLen = 10\n child.on('message', (e: RollupProgressEvent) => {\n if (e.type === 'debug') console.log(...(Array.isArray(e.data) ? e.data : [e.data]))\n })\n !silent && child.on('message', (e: RollupProgressEvent) => {\n if (e.type === 'init') {\n const { leafMap, targetsLength } = e.data\n const leafs = Array\n .from(leafMap.entries())\n .flatMap(([input, pathAndCondiions]) =>\n pathAndCondiions.map(([path, ...conditions]) => ({\n input,\n path,\n conditions\n }))\n )\n console.log(`Package '${manifest.name}' has ${targetsLength} targets to build`)\n leafs.forEach(({ input }) => {\n inputMaxLen = Math.max(inputMaxLen, input.length)\n })\n leafs.forEach(({ input, path }) => {\n const key = `${input}:${path}`\n if (bars[key]) return\n bars[key] = multiBars.create(50, 0, {\n input: input.padEnd(inputMaxLen),\n status: 'waiting'.padEnd(10)\n }, {\n barsize: 20,\n linewrap: true\n })\n })\n }\n if (e.type === 'progress') {\n const {\n path,\n tags,\n input,\n event,\n message\n } = e.data\n const bar = bars[`${input}:${path}`]\n if (!bar) return\n bar.update(\n {\n start: 0,\n resolve: 20,\n end: 50\n }[event ?? 'start'] ?? 0,\n {\n input: input.padEnd(inputMaxLen),\n status: event?.padEnd(10),\n message: `${tags?.join(', ')}: ${message}`\n }\n )\n }\n })\n await new Promise<void>((resolve, reject) => {\n let errorStr = ''\n child.stderr?.on('data', (data) => {\n errorStr += data\n })\n child.once('exit', (code) =>\n code === 0\n ? resolve()\n : reject(new Error(`rollup build failed:\\n${errorStr}`)))\n })\n })\n ).finally(() => {\n multiBars.stop()\n })\n\n actionDone()\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 type { Config, InitNamed } from 'jiek'\nimport { applyEdits, modify } from 'jsonc-parser'\nimport { isMatch } from 'micromatch'\n\nimport { getWD } from '../utils/getWD'\nimport { loadConfig } from '../utils/loadConfig'\n\ndeclare module 'jiek' {\n export type InitNamedFunction = (\n argument: string,\n paths: {\n full: string\n relative: string\n basename?: string\n }\n ) => [name?: string, path?: string]\n export type InitNamed =\n | InitNamedFunction\n | {\n [key: string]: string | InitNamedFunction\n }\n export interface Config {\n init?: {\n /**\n * the package.json template file path or file content\n *\n * if it can be parsed as json, it will be parsed\n * if it is a relative file path, it will be resolved to an absolute path based on the current working directory\n * if it is an absolute file path, it will be used directly\n * @default '.jiek.template.package.json'\n */\n template?: string\n /**\n * the readme content\n *\n * $name will be replaced with the package name\n * $license will be replaced with the license\n */\n readme?:\n | string\n | ((ctx: {\n dir: string\n packageJson: Record<string, any>\n }) => string)\n /**\n * the readme template file path\n * @default '.jiek.template.readme.md'\n */\n readmeTemplate?: string\n bug?: {\n /**\n * @default 'bug_report.yml'\n */\n template?: string\n /**\n * @default ['bug']\n */\n labels?:\n | string[]\n | ((ctx: {\n name: string\n dir: string\n }) => string[])\n }\n named?: InitNamed\n }\n }\n}\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,\n 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 {\n 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 }\n if (!matchedRule) {\n matchedKey = 'packages/*'\n matchedRule = `@${workspaceName}/$basename`\n }\n if (!matchedRule) {\n throw new Error('no matched rule')\n }\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',\n 'author'\n ]\n let newJSONString = templateString\n for (const field of passFields) {\n newJSONString = applyEdits(\n newJSONString,\n modify(\n newJSONString,\n [field],\n getWDPackageJSONFiled(wd, field),\n { formattingOptions }\n )\n )\n }\n let [pkgName, pkgDir] = await getName(named, name, {\n wd,\n 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(\n newJSONString,\n modify(\n newJSONString,\n ['repository'],\n pkgRepo,\n { formattingOptions }\n )\n )\n const homepage = `${pkgRepo?.url}/blob/master/${pkgDir}/README.md`\n newJSONString = applyEdits(\n newJSONString,\n modify(\n newJSONString,\n ['homepage'],\n homepage,\n { formattingOptions }\n )\n )\n let labels = resolvedBug.labels\n if (typeof labels === 'function') {\n labels = labels({\n name: pkgName,\n dir: pkgDir\n })\n }\n labels.push(`scope:${pkgName}`)\n const bugs = `${pkgRepo?.url}/issues/new?template=${resolvedBug.template}&labels=${labels.join(',')}`\n newJSONString = applyEdits(\n newJSONString,\n modify(\n newJSONString,\n ['bugs'],\n bugs,\n { formattingOptions }\n )\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 path from 'node:path'\n\nimport { type Options, pkger } from '@jiek/pkger'\nimport { commondir } from '@jiek/utils/commondir'\nimport type { Manifest } from '@pnpm/workspace.pkgs-graph'\n\nexport function mergePackageJson(manifest: Manifest & {\n jiek?: Options\n exports?: unknown | unknown[]\n}, cwd: string, options: {\n excludeDistInExports?: boolean\n} = {}) {\n const {\n excludeDistInExports = false\n } = options\n const {\n jiek: { cwd: _, ...jiek } = {}\n } = manifest\n const { outdir = 'dist' } = jiek\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 let 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 (excludeDistInExports) {\n inputs = inputs.filter(input => !input.startsWith(`./${outdir}`) && !input.startsWith(outdir))\n }\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 { bump, type BumperType } from '@jiek/utils/bumper'\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 if (key !== 'exports') {\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['publishConfig', key], value, { formattingOptions }\n ))\n } else {\n for (const [k, v] of Object.entries(value)) {\n newJSONString = applyEdits(newJSONString, modify(\n newJSONString, ['publishConfig', 'exports', k], v, { formattingOptions }\n ))\n }\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/base'\nimport './commands/build'\nimport './commands/init'\nimport './commands/publish'\n\nimport { program } from 'commander'\n\nprogram.parse(process.argv)\n"],"names":["path","name","value"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.mts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import type {} from './commands/base'\nimport type {} from './commands/build'\nimport type {} from './commands/init'\nimport type {} from './commands/publish'\n\nexport interface Config {}\n\nexport const defineConfig = (config: Config) => config\n"],"names":[],"mappings":";;AAOa,MAAA,YAAA,GAAe,CAAC,MAAmB,KAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.min.js","sources":["../src/index.ts"],"sourcesContent":["import type {} from './commands/base'\nimport type {} from './commands/build'\nimport type {} from './commands/init'\nimport type {} from './commands/publish'\n\nexport interface Config {}\n\nexport const defineConfig = (config: Config) => config\n"],"names":["config"],"mappings":"kCAO6BA,GAAmBA"}
@@ -1 +0,0 @@
1
- const o=o=>o;export{o as defineConfig};
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.min.mjs","sources":["../src/index.ts"],"sourcesContent":["import type {} from './commands/base'\nimport type {} from './commands/build'\nimport type {} from './commands/init'\nimport type {} from './commands/publish'\n\nexport interface Config {}\n\nexport const defineConfig = (config: Config) => config\n"],"names":["defineConfig","config"],"mappings":"AAOa,MAAAA,EAAgBC,GAAmBA"}
package/dist/index.mjs DELETED
@@ -1,3 +0,0 @@
1
- const defineConfig = (config) => config;
2
-
3
- export { defineConfig };
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import type {} from './commands/base'\nimport type {} from './commands/build'\nimport type {} from './commands/init'\nimport type {} from './commands/publish'\n\nexport interface Config {}\n\nexport const defineConfig = (config: Config) => config\n"],"names":[],"mappings":"AAOa,MAAA,YAAA,GAAe,CAAC,MAAmB,KAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.mts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../src/utils/getRoot.ts","../../src/utils/filterSupport.ts","../../src/utils/getWD.ts","../../src/utils/tsRegister.ts","../../src/utils/loadConfig.ts","../../src/rollup/plugins/progress.ts","../../src/rollup/plugins/skip.ts","../../src/rollup/utils/externalResolver.ts","../../src/rollup/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 : undefined\n return root\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\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,\n 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,\n root,\n value: {\n [wd]: JSON.parse(fs.readFileSync(path.resolve(wd, 'package.json'), 'utf-8'))\n }\n }\n}\n","import { getWorkspaceDir, isWorkspaceDir } 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 if (root !== undefined) {\n const isWorkspace = isWorkspaceDir(root, type)\n notWorkspace = !isWorkspace\n wd = root\n return { wd, notWorkspace }\n }\n try {\n wd = getWorkspaceDir(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","function packageIsExist(name: string) {\n try {\n require.resolve(name)\n return true\n } catch (e) {\n return false\n }\n}\n\nexport let tsRegisterName: string | undefined\nconst registers = [\n process.env.JIEK_TS_REGISTER,\n 'esbuild-register',\n '@swc-node/register',\n 'ts-node/register'\n].filter(Boolean) as string[]\nfor (const register of registers) {\n if (packageIsExist(register)) {\n tsRegisterName = register\n break\n }\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { program } from 'commander'\nimport type { Config } from 'jiek'\nimport { load } from 'js-yaml'\n\nimport { getWD } from './getWD'\nimport { tsRegisterName } from './tsRegister'\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(process.cwd(), `${configName}.${ext}`),\n path.resolve(process.cwd(), `.${configName}.${ext}`),\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(): Config {\n const { wd: root, notWorkspace } = getWD()\n if (notWorkspace) {\n throw new Error('not in workspace')\n }\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 }\n if (!path.isAbsolute(configPath)) {\n configPath = path.resolve(root, configPath)\n }\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')) as Config\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 case '.config':\n module = {}\n break\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 type { PluginImpl } from 'rollup'\n\ninterface Options {\n onEvent?: (event: string, message?: string) => void\n}\n\nexport default ((options = {}) => {\n const { onEvent } = options\n return {\n name: 'progress',\n buildStart: () => onEvent?.('start', 'Start building...'),\n buildEnd: () => onEvent?.('end', 'Build completed!'),\n resolveId: {\n order: 'post',\n handler: source => onEvent?.('resolve', `Resolving ${source}...`)\n },\n load: {\n order: 'post',\n handler: id => onEvent?.('load', `Loading ${id}...`)\n },\n transform: {\n order: 'post',\n handler: (_, id) => onEvent?.('transform', `Transforming ${id}...`)\n }\n }\n}) as PluginImpl<Options>\n","import type { PluginImpl } from 'rollup'\n\ninterface Options {\n patterns?: (string | RegExp)[]\n}\n\nexport default ((options = {}) => {\n return {\n name: 'skip',\n // skip the specified files by `options.patterns`\n load(id) {\n if (\n options.patterns?.some((pattern) =>\n typeof pattern === 'string'\n ? id.includes(pattern)\n : pattern.test(id)\n )\n ) {\n return ''\n }\n }\n }\n}) as PluginImpl<Options>\n","import fs from 'node:fs'\n\nexport default function(json: Record<string, unknown>): (string | RegExp)[]\nexport default function(path?: string): (string | RegExp)[]\nexport default function(jsonOrPath: string | Record<string, unknown> = process.cwd()): (string | RegExp)[] {\n const pkg = typeof jsonOrPath === 'string'\n ? fs.existsSync(`${jsonOrPath}/package.json`)\n ? JSON.parse(fs.readFileSync(`${jsonOrPath}/package.json`, 'utf-8'))\n : {}\n : jsonOrPath\n const { dependencies = {}, peerDependencies = {}, optionalDependencies = {} } = pkg\n const external = <(string | RegExp)[]> Object\n .keys(dependencies)\n .concat(Object.keys(peerDependencies))\n .concat(Object.keys(optionalDependencies))\n return external\n .map(dep => new RegExp(`^${dep}(/.*)?$`))\n .concat([\n /^node:/\n ])\n}\n","import '../rollup/base'\n\nimport fs from 'node:fs'\nimport { dirname, resolve } from 'node:path'\n\nimport type { Entrypoints2ExportsOptions, RecursiveRecord } from '@jiek/pkger/entrypoints'\nimport {\n DEFAULT_SKIP_VALUES,\n entrypoints2Exports,\n filterLeafs,\n getAllLeafs,\n resolveEntrypoints\n} from '@jiek/pkger/entrypoints'\nimport { dts } from '@jiek/rollup-plugin-dts'\nimport { getWorkspaceDir } from '@jiek/utils/getWorkspaceDir'\nimport json from '@rollup/plugin-json'\nimport { nodeResolve } from '@rollup/plugin-node-resolve'\nimport terser from '@rollup/plugin-terser'\nimport { sendMessage } from 'execa'\nimport { parse } from 'jsonc-parser'\nimport { isMatch } from 'micromatch'\nimport type { OutputOptions, OutputPlugin, RollupOptions } from 'rollup'\nimport esbuild from 'rollup-plugin-esbuild'\nimport ts from 'typescript'\n\nimport { loadConfig } from '../utils/loadConfig'\nimport type { RollupProgressEvent, TemplateOptions } from './base'\nimport progress from './plugins/progress'\nimport skip from './plugins/skip'\nimport externalResolver from './utils/externalResolver'\n\ninterface PackageJSON {\n name?: string\n type?: string\n exports?: Record<string, unknown> | string | string[]\n}\n\nconst {\n JIEK_ROOT,\n JIEK_ENTRIES\n} = process.env\nconst WORKSPACE_ROOT = JIEK_ROOT ?? getWorkspaceDir()\nconst COMMON_OPTIONS = {} satisfies RollupOptions\nconst COMMON_PLUGINS = [\n json()\n]\n\nconst { build } = loadConfig()\nconst jsOutdir = resolve(\n (\n typeof build?.output?.dir === 'object'\n // the outdir only effect js output in this function\n ? build.output.dir.js\n : build?.output?.dir\n ) ?? 'dist'\n)\n\nconst STYLE_REGEXP = /\\.(css|s[ac]ss|less|styl)$/\n\n// eslint-disable-next-line unused-imports/no-unused-vars\nconst debug = (...args: unknown[]) => sendMessage({ type: 'debug', data: args } satisfies RollupProgressEvent)\n\nconst resolveWorkspacePath = (p: string) => resolve(WORKSPACE_ROOT, p)\n\nconst intersection = <T>(a: Set<T>, b: Set<T>) => new Set([...a].filter(i => b.has(i)))\n\nconst pascalCase = (str: string) =>\n str\n .replace(/[@|/-](\\w)/g, (_, $1) => $1.toUpperCase())\n .replace(/(?:^|-)(\\w)/g, (_, $1) => $1.toUpperCase())\n\nconst reveal = (obj: string | Record<string, unknown>, keys: string[]) =>\n keys.reduce((acc, key) => {\n if (typeof acc === 'string') throw new Error('key not found in exports')\n if (!(key in acc)) throw new Error(`key ${key} not found in exports`)\n return acc[key] as string | Record<string, unknown>\n }, obj)\n\nconst withMinify = (\n output: OutputOptions & {\n plugins?: OutputPlugin[]\n },\n minify = build?.output?.minify\n) =>\n minify === false\n ? [output]\n : minify === 'only-minify'\n ? [{\n ...output,\n // TODO replace suffix when pubish to npm and the `build.output.minify` is 'only-minify'\n // TODO resolve dts output file name\n file: output.file?.replace(/(\\.[cm]?js)$/, '.min$1'),\n plugins: [\n ...(output.plugins ?? []),\n terser()\n ]\n }]\n : [\n output,\n {\n ...output,\n file: output.file?.replace(/(\\.[cm]?js)$/, '.min$1'),\n plugins: [\n ...(output.plugins ?? []),\n terser()\n ]\n }\n ]\n\ntype TSConfig = {\n extends?: string | string[]\n compilerOptions?: Record<string, unknown>\n references?: { path: string }[]\n files?: string[]\n include?: string[]\n exclude?: string[]\n}\n\nconst getTSConfig = (p: string): TSConfig =>\n !fs.existsSync(p) || !fs.statSync(p).isFile()\n ? {}\n : parse(fs.readFileSync(p, 'utf-8'), [], { allowTrailingComma: true, allowEmptyContent: true })\n\nconst getExtendTSConfig = (tsconfigPath: string): TSConfig => {\n tsconfigPath = resolve(tsconfigPath)\n const tsconfigPathDirname = dirname(tsconfigPath)\n const { extends: exts, ...tsconfig } = getTSConfig(tsconfigPath)\n const resolvePaths = (paths: string[] | undefined) => paths?.map(p => resolve(tsconfigPathDirname, p)) ?? []\n\n const extendsPaths = resolvePaths(\n exts ? Array.isArray(exts) ? exts : [exts] : []\n )\n if (extendsPaths.length === 0) return tsconfig\n return extendsPaths\n .map(getExtendTSConfig)\n // https://www.typescriptlang.org/tsconfig/#files:~:text=Currently%2C%20the%20only%20top%2Dlevel%20property%20that%20is%20excluded%20from%20inheritance%20is%20references.\n // Currently, the only top-level property that is excluded from inheritance is references.\n .reduce((acc, { compilerOptions = {}, references: _, ...curr }) => ({\n ...acc,\n ...curr,\n compilerOptions: {\n ...acc.compilerOptions,\n ...compilerOptions\n }\n }), tsconfig)\n}\n\nconst getCompilerOptionsByFilePath = (tsconfigPath: string, filePath: string): Record<string, unknown> | undefined => {\n tsconfigPath = resolve(tsconfigPath)\n filePath = resolve(filePath)\n const tsconfigPathDirname = dirname(tsconfigPath)\n // https://www.typescriptlang.org/tsconfig/#files:~:text=It%E2%80%99s%20worth%20noting%20that%20files%2C%20include%2C%20and%20exclude%20from%20the%20inheriting%20config%20file%20overwrite%20those%20from%20the%20base%20config%20file%2C%20and%20that%20circularity%20between%20configuration%20files%20is%20not%20allowed.\n // It’s worth noting that files, include, and exclude from the inheriting config file overwrite\n // those from the base config file, and that circularity between configuration files is not allowed.\n const tsconfig = getExtendTSConfig(tsconfigPath)\n\n const resolvePaths = (paths: string[] | undefined) => paths?.map(p => resolve(tsconfigPathDirname, p)) ?? []\n\n const [\n references,\n files,\n include,\n exclude\n ] = [\n tsconfig.references?.map(({ path }) => path),\n tsconfig.files,\n tsconfig.include,\n tsconfig.exclude\n ].map(resolvePaths)\n if (exclude.length > 0 && exclude.some(i => isMatch(filePath, i))) return\n\n // when files or include is not empty, the tsconfig should be ignored\n if (tsconfig.files?.length === 0 && tsconfig.include?.length === 0) return\n let isInclude = false\n isInclude ||= files.length > 0 && files.includes(filePath)\n isInclude ||= include.length > 0 && include.some(i => isMatch(filePath, i))\n if (isInclude) {\n return tsconfig.compilerOptions ?? {}\n } else {\n // when files or include is not empty, but the file is not matched, the tsconfig should be ignored\n if (\n (tsconfig.files && tsconfig.files.length > 0)\n || (tsconfig.include && tsconfig.include.length > 0)\n ) return\n }\n\n references.reverse()\n for (const ref of references) {\n const compilerOptions = getCompilerOptionsByFilePath(ref, filePath)\n if (compilerOptions) return compilerOptions\n }\n return tsconfig.compilerOptions\n}\n\nconst generateConfigs = ({\n path,\n name,\n input,\n output,\n external,\n pkgIsModule,\n conditionals\n}: {\n path: string\n name: string\n input: string\n output: string\n external: (string | RegExp)[]\n pkgIsModule: boolean\n conditionals: string[]\n}, options: TemplateOptions = {}): RollupOptions[] => {\n const isModule = conditionals.includes('import')\n const isCommonJS = conditionals.includes('require')\n const isBrowser = conditionals.includes('browser')\n const dtsTSConfigPaths = [\n resolveWorkspacePath('tsconfig.json'),\n resolveWorkspacePath('tsconfig.dts.json')\n ]\n let dtsTSConfigPath: string | undefined\n dtsTSConfigPaths.forEach(p => {\n if (fs.existsSync(p) && fs.statSync(p).isFile()) {\n dtsTSConfigPath = p\n }\n })\n let compilerOptions: ts.CompilerOptions = {}\n if (dtsTSConfigPath) {\n const jsonCompilerOptions = getCompilerOptionsByFilePath(dtsTSConfigPath, resolve(input))\n const { options, errors } = ts.convertCompilerOptionsFromJson(\n jsonCompilerOptions,\n dirname(dtsTSConfigPath)\n )\n if (errors.length > 0) {\n throw new Error(errors.map(e => e.messageText).join('\\n'))\n }\n compilerOptions = options\n }\n const exportConditions = [...conditionals, ...(compilerOptions.customConditions ?? [])]\n const throughEventProps: RollupProgressEvent & { type: 'progress' } = {\n type: 'progress',\n data: { name, path, exportConditions, input }\n }\n const outdir = options?.output?.dir\n return [\n {\n input,\n external,\n output: [\n ...withMinify({\n file: output,\n name,\n sourcemap: typeof options?.output?.sourcemap === 'object'\n ? options.output.sourcemap.js\n : options?.output?.sourcemap ?? true,\n format: isModule ? 'esm' : (\n isCommonJS ? 'cjs' : (\n isBrowser ? 'umd' : (\n pkgIsModule ? 'esm' : 'cjs'\n )\n )\n ),\n strict: typeof options?.output?.strict === 'object'\n ? options.output.strict.js\n : options?.output?.strict\n })\n ],\n plugins: [\n nodeResolve({ exportConditions }),\n import('rollup-plugin-postcss')\n .then(({ default: postcss }) =>\n postcss({\n extract: resolve(output.replace(/\\.[cm]?js$/, '.css')),\n minimize: true\n })\n )\n .catch(() => void 0),\n esbuild(),\n progress({\n onEvent: (event, message) =>\n sendMessage(\n {\n ...throughEventProps,\n data: { ...throughEventProps.data, event, message, tags: ['js'] }\n } satisfies RollupProgressEvent\n )\n })\n ]\n },\n {\n input,\n external,\n output: [\n {\n dir: resolve((typeof outdir === 'object' ? outdir.dts : outdir) ?? 'dist'),\n sourcemap: typeof options?.output?.sourcemap === 'object'\n ? options.output.sourcemap.dts\n : options?.output?.sourcemap ?? true,\n entryFileNames: () =>\n output\n .replace(`${jsOutdir}/`, '')\n .replace(/(\\.[cm]?)js$/, '.d$1ts'),\n strict: typeof options?.output?.strict === 'object'\n ? options.output.strict.dts\n : options?.output?.strict\n }\n ],\n plugins: [\n nodeResolve({ exportConditions }),\n skip({ patterns: [STYLE_REGEXP] }),\n dts({\n respectExternal: true,\n compilerOptions\n }),\n progress({\n onEvent: (event, message) =>\n sendMessage(\n {\n ...throughEventProps,\n data: { ...throughEventProps.data, event, message, tags: ['dts'] }\n } satisfies RollupProgressEvent\n )\n })\n ]\n }\n ]\n}\n\nexport function template(packageJSON: PackageJSON): RollupOptions[] {\n const { name, type, exports: entrypoints } = packageJSON\n const pkgIsModule = type === 'module'\n if (!name) throw new Error('package.json name is required')\n if (!entrypoints) throw new Error('package.json exports is required')\n\n const entries = JIEK_ENTRIES\n ?.split(',')\n .map(e => e.trim())\n .map(e => ({\n 'index': '.'\n }[e] ?? e))\n\n const {\n crossModuleConvertor = true\n } = build ?? {}\n\n const packageName = pascalCase(name)\n\n const external = externalResolver(packageJSON as Record<string, unknown>)\n\n const [, resolvedEntrypoints] = resolveEntrypoints(entrypoints)\n if (entries) {\n Object\n .entries(resolvedEntrypoints)\n .forEach(([key]) => {\n if (!entries.some(e => isMatch(key, e, { matchBase: true }))) {\n delete resolvedEntrypoints[key]\n }\n })\n }\n const filteredResolvedEntrypoints = filterLeafs(\n resolvedEntrypoints as RecursiveRecord<string>,\n {\n skipValue: [\n // ignore values that filename starts with `.jk-noentry`\n /(^|\\/)\\.jk-noentry/,\n ...DEFAULT_SKIP_VALUES\n ]\n }\n )\n const crossModuleWithConditional: Entrypoints2ExportsOptions['withConditional'] = crossModuleConvertor\n ? {\n import: opts =>\n !pkgIsModule && intersection(\n new Set(opts.conditionals),\n new Set(['import', 'module'])\n ).size === 0\n ? opts.dist.replace(/\\.js$/, '.mjs')\n : false,\n require: opts => {\n return pkgIsModule && intersection(\n new Set(opts.conditionals),\n new Set(['require', 'node'])\n ).size === 0\n ? opts.dist.replace(/\\.js$/, '.cjs')\n : false\n }\n }\n : {}\n const exports = entrypoints2Exports(filteredResolvedEntrypoints, {\n outdir: jsOutdir,\n withConditional: {\n ...crossModuleWithConditional\n }\n })\n\n const leafMap = new Map<string, string[][]>()\n getAllLeafs(filteredResolvedEntrypoints as RecursiveRecord<string>, ({ keys, value }) => {\n if (typeof value === 'string') {\n const keysArr = leafMap.get(value) ?? []\n leafMap.set(value, keysArr)\n keysArr.push(keys)\n }\n return false\n })\n\n const configs: RollupOptions[] = []\n leafMap.forEach((keysArr, input) =>\n keysArr.forEach((keys) => {\n const [path, ...conditionals] = keys\n\n const name = packageName + (path === '.' ? '' : pascalCase(path))\n const keyExports = reveal(exports, keys)\n const commonOptions = {\n path,\n name,\n input,\n external,\n pkgIsModule\n }\n\n switch (typeof keyExports) {\n case 'string': {\n configs.push(...generateConfigs({\n ...commonOptions,\n output: keyExports,\n conditionals\n }, build))\n break\n }\n case 'object': {\n getAllLeafs(keyExports as RecursiveRecord<string>, ({ keys: nextKeys, value }) => {\n const allConditionals = [...new Set([...conditionals, ...nextKeys])]\n if (typeof value === 'string') {\n configs.push(...generateConfigs({\n ...commonOptions,\n output: value,\n conditionals: allConditionals\n }, build))\n }\n return false\n })\n break\n }\n }\n })\n )\n sendMessage(\n {\n type: 'init',\n data: {\n leafMap,\n targetsLength: configs.length\n }\n } satisfies RollupProgressEvent\n )\n return configs.map(c => ({\n ...COMMON_OPTIONS,\n ...c,\n plugins: [\n ...COMMON_PLUGINS,\n c.plugins\n ]\n }))\n}\n"],"names":["program","isWorkspaceDir","getWorkspaceDir","load","resolve","parse","dirname","isMatch","path","options","nodeResolve","sendMessage","dts","entrypoints","resolveEntrypoints","filterLeafs","DEFAULT_SKIP_VALUES","entrypoints2Exports","getAllLeafs","name"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.min.js","sources":["../../src/utils/getRoot.ts","../../src/utils/filterSupport.ts","../../src/utils/getWD.ts","../../src/utils/tsRegister.ts","../../src/utils/loadConfig.ts","../../src/rollup/plugins/progress.ts","../../src/rollup/plugins/skip.ts","../../src/rollup/index.ts","../../src/rollup/utils/externalResolver.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 : undefined\n return root\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\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,\n 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,\n root,\n value: {\n [wd]: JSON.parse(fs.readFileSync(path.resolve(wd, 'package.json'), 'utf-8'))\n }\n }\n}\n","import { getWorkspaceDir, isWorkspaceDir } 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 if (root !== undefined) {\n const isWorkspace = isWorkspaceDir(root, type)\n notWorkspace = !isWorkspace\n wd = root\n return { wd, notWorkspace }\n }\n try {\n wd = getWorkspaceDir(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","function packageIsExist(name: string) {\n try {\n require.resolve(name)\n return true\n } catch (e) {\n return false\n }\n}\n\nexport let tsRegisterName: string | undefined\nconst registers = [\n process.env.JIEK_TS_REGISTER,\n 'esbuild-register',\n '@swc-node/register',\n 'ts-node/register'\n].filter(Boolean) as string[]\nfor (const register of registers) {\n if (packageIsExist(register)) {\n tsRegisterName = register\n break\n }\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { program } from 'commander'\nimport type { Config } from 'jiek'\nimport { load } from 'js-yaml'\n\nimport { getWD } from './getWD'\nimport { tsRegisterName } from './tsRegister'\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(process.cwd(), `${configName}.${ext}`),\n path.resolve(process.cwd(), `.${configName}.${ext}`),\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(): Config {\n const { wd: root, notWorkspace } = getWD()\n if (notWorkspace) {\n throw new Error('not in workspace')\n }\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 }\n if (!path.isAbsolute(configPath)) {\n configPath = path.resolve(root, configPath)\n }\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')) as Config\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 case '.config':\n module = {}\n break\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 type { PluginImpl } from 'rollup'\n\ninterface Options {\n onEvent?: (event: string, message?: string) => void\n}\n\nexport default ((options = {}) => {\n const { onEvent } = options\n return {\n name: 'progress',\n buildStart: () => onEvent?.('start', 'Start building...'),\n buildEnd: () => onEvent?.('end', 'Build completed!'),\n resolveId: {\n order: 'post',\n handler: source => onEvent?.('resolve', `Resolving ${source}...`)\n },\n load: {\n order: 'post',\n handler: id => onEvent?.('load', `Loading ${id}...`)\n },\n transform: {\n order: 'post',\n handler: (_, id) => onEvent?.('transform', `Transforming ${id}...`)\n }\n }\n}) as PluginImpl<Options>\n","import type { PluginImpl } from 'rollup'\n\ninterface Options {\n patterns?: (string | RegExp)[]\n}\n\nexport default ((options = {}) => {\n return {\n name: 'skip',\n // skip the specified files by `options.patterns`\n load(id) {\n if (\n options.patterns?.some((pattern) =>\n typeof pattern === 'string'\n ? id.includes(pattern)\n : pattern.test(id)\n )\n ) {\n return ''\n }\n }\n }\n}) as PluginImpl<Options>\n","import '../rollup/base'\n\nimport fs from 'node:fs'\nimport { dirname, resolve } from 'node:path'\n\nimport type { Entrypoints2ExportsOptions, RecursiveRecord } from '@jiek/pkger/entrypoints'\nimport {\n DEFAULT_SKIP_VALUES,\n entrypoints2Exports,\n filterLeafs,\n getAllLeafs,\n resolveEntrypoints\n} from '@jiek/pkger/entrypoints'\nimport { dts } from '@jiek/rollup-plugin-dts'\nimport { getWorkspaceDir } from '@jiek/utils/getWorkspaceDir'\nimport json from '@rollup/plugin-json'\nimport { nodeResolve } from '@rollup/plugin-node-resolve'\nimport terser from '@rollup/plugin-terser'\nimport { sendMessage } from 'execa'\nimport { parse } from 'jsonc-parser'\nimport { isMatch } from 'micromatch'\nimport type { OutputOptions, OutputPlugin, RollupOptions } from 'rollup'\nimport esbuild from 'rollup-plugin-esbuild'\nimport ts from 'typescript'\n\nimport { loadConfig } from '../utils/loadConfig'\nimport type { RollupProgressEvent, TemplateOptions } from './base'\nimport progress from './plugins/progress'\nimport skip from './plugins/skip'\nimport externalResolver from './utils/externalResolver'\n\ninterface PackageJSON {\n name?: string\n type?: string\n exports?: Record<string, unknown> | string | string[]\n}\n\nconst {\n JIEK_ROOT,\n JIEK_ENTRIES\n} = process.env\nconst WORKSPACE_ROOT = JIEK_ROOT ?? getWorkspaceDir()\nconst COMMON_OPTIONS = {} satisfies RollupOptions\nconst COMMON_PLUGINS = [\n json()\n]\n\nconst { build } = loadConfig()\nconst jsOutdir = resolve(\n (\n typeof build?.output?.dir === 'object'\n // the outdir only effect js output in this function\n ? build.output.dir.js\n : build?.output?.dir\n ) ?? 'dist'\n)\n\nconst STYLE_REGEXP = /\\.(css|s[ac]ss|less|styl)$/\n\n// eslint-disable-next-line unused-imports/no-unused-vars\nconst debug = (...args: unknown[]) => sendMessage({ type: 'debug', data: args } satisfies RollupProgressEvent)\n\nconst resolveWorkspacePath = (p: string) => resolve(WORKSPACE_ROOT, p)\n\nconst intersection = <T>(a: Set<T>, b: Set<T>) => new Set([...a].filter(i => b.has(i)))\n\nconst pascalCase = (str: string) =>\n str\n .replace(/[@|/-](\\w)/g, (_, $1) => $1.toUpperCase())\n .replace(/(?:^|-)(\\w)/g, (_, $1) => $1.toUpperCase())\n\nconst reveal = (obj: string | Record<string, unknown>, keys: string[]) =>\n keys.reduce((acc, key) => {\n if (typeof acc === 'string') throw new Error('key not found in exports')\n if (!(key in acc)) throw new Error(`key ${key} not found in exports`)\n return acc[key] as string | Record<string, unknown>\n }, obj)\n\nconst withMinify = (\n output: OutputOptions & {\n plugins?: OutputPlugin[]\n },\n minify = build?.output?.minify\n) =>\n minify === false\n ? [output]\n : minify === 'only-minify'\n ? [{\n ...output,\n // TODO replace suffix when pubish to npm and the `build.output.minify` is 'only-minify'\n // TODO resolve dts output file name\n file: output.file?.replace(/(\\.[cm]?js)$/, '.min$1'),\n plugins: [\n ...(output.plugins ?? []),\n terser()\n ]\n }]\n : [\n output,\n {\n ...output,\n file: output.file?.replace(/(\\.[cm]?js)$/, '.min$1'),\n plugins: [\n ...(output.plugins ?? []),\n terser()\n ]\n }\n ]\n\ntype TSConfig = {\n extends?: string | string[]\n compilerOptions?: Record<string, unknown>\n references?: { path: string }[]\n files?: string[]\n include?: string[]\n exclude?: string[]\n}\n\nconst getTSConfig = (p: string): TSConfig =>\n !fs.existsSync(p) || !fs.statSync(p).isFile()\n ? {}\n : parse(fs.readFileSync(p, 'utf-8'), [], { allowTrailingComma: true, allowEmptyContent: true })\n\nconst getExtendTSConfig = (tsconfigPath: string): TSConfig => {\n tsconfigPath = resolve(tsconfigPath)\n const tsconfigPathDirname = dirname(tsconfigPath)\n const { extends: exts, ...tsconfig } = getTSConfig(tsconfigPath)\n const resolvePaths = (paths: string[] | undefined) => paths?.map(p => resolve(tsconfigPathDirname, p)) ?? []\n\n const extendsPaths = resolvePaths(\n exts ? Array.isArray(exts) ? exts : [exts] : []\n )\n if (extendsPaths.length === 0) return tsconfig\n return extendsPaths\n .map(getExtendTSConfig)\n // https://www.typescriptlang.org/tsconfig/#files:~:text=Currently%2C%20the%20only%20top%2Dlevel%20property%20that%20is%20excluded%20from%20inheritance%20is%20references.\n // Currently, the only top-level property that is excluded from inheritance is references.\n .reduce((acc, { compilerOptions = {}, references: _, ...curr }) => ({\n ...acc,\n ...curr,\n compilerOptions: {\n ...acc.compilerOptions,\n ...compilerOptions\n }\n }), tsconfig)\n}\n\nconst getCompilerOptionsByFilePath = (tsconfigPath: string, filePath: string): Record<string, unknown> | undefined => {\n tsconfigPath = resolve(tsconfigPath)\n filePath = resolve(filePath)\n const tsconfigPathDirname = dirname(tsconfigPath)\n // https://www.typescriptlang.org/tsconfig/#files:~:text=It%E2%80%99s%20worth%20noting%20that%20files%2C%20include%2C%20and%20exclude%20from%20the%20inheriting%20config%20file%20overwrite%20those%20from%20the%20base%20config%20file%2C%20and%20that%20circularity%20between%20configuration%20files%20is%20not%20allowed.\n // It’s worth noting that files, include, and exclude from the inheriting config file overwrite\n // those from the base config file, and that circularity between configuration files is not allowed.\n const tsconfig = getExtendTSConfig(tsconfigPath)\n\n const resolvePaths = (paths: string[] | undefined) => paths?.map(p => resolve(tsconfigPathDirname, p)) ?? []\n\n const [\n references,\n files,\n include,\n exclude\n ] = [\n tsconfig.references?.map(({ path }) => path),\n tsconfig.files,\n tsconfig.include,\n tsconfig.exclude\n ].map(resolvePaths)\n if (exclude.length > 0 && exclude.some(i => isMatch(filePath, i))) return\n\n // when files or include is not empty, the tsconfig should be ignored\n if (tsconfig.files?.length === 0 && tsconfig.include?.length === 0) return\n let isInclude = false\n isInclude ||= files.length > 0 && files.includes(filePath)\n isInclude ||= include.length > 0 && include.some(i => isMatch(filePath, i))\n if (isInclude) {\n return tsconfig.compilerOptions ?? {}\n } else {\n // when files or include is not empty, but the file is not matched, the tsconfig should be ignored\n if (\n (tsconfig.files && tsconfig.files.length > 0)\n || (tsconfig.include && tsconfig.include.length > 0)\n ) return\n }\n\n references.reverse()\n for (const ref of references) {\n const compilerOptions = getCompilerOptionsByFilePath(ref, filePath)\n if (compilerOptions) return compilerOptions\n }\n return tsconfig.compilerOptions\n}\n\nconst generateConfigs = ({\n path,\n name,\n input,\n output,\n external,\n pkgIsModule,\n conditionals\n}: {\n path: string\n name: string\n input: string\n output: string\n external: (string | RegExp)[]\n pkgIsModule: boolean\n conditionals: string[]\n}, options: TemplateOptions = {}): RollupOptions[] => {\n const isModule = conditionals.includes('import')\n const isCommonJS = conditionals.includes('require')\n const isBrowser = conditionals.includes('browser')\n const dtsTSConfigPaths = [\n resolveWorkspacePath('tsconfig.json'),\n resolveWorkspacePath('tsconfig.dts.json')\n ]\n let dtsTSConfigPath: string | undefined\n dtsTSConfigPaths.forEach(p => {\n if (fs.existsSync(p) && fs.statSync(p).isFile()) {\n dtsTSConfigPath = p\n }\n })\n let compilerOptions: ts.CompilerOptions = {}\n if (dtsTSConfigPath) {\n const jsonCompilerOptions = getCompilerOptionsByFilePath(dtsTSConfigPath, resolve(input))\n const { options, errors } = ts.convertCompilerOptionsFromJson(\n jsonCompilerOptions,\n dirname(dtsTSConfigPath)\n )\n if (errors.length > 0) {\n throw new Error(errors.map(e => e.messageText).join('\\n'))\n }\n compilerOptions = options\n }\n const exportConditions = [...conditionals, ...(compilerOptions.customConditions ?? [])]\n const throughEventProps: RollupProgressEvent & { type: 'progress' } = {\n type: 'progress',\n data: { name, path, exportConditions, input }\n }\n const outdir = options?.output?.dir\n return [\n {\n input,\n external,\n output: [\n ...withMinify({\n file: output,\n name,\n sourcemap: typeof options?.output?.sourcemap === 'object'\n ? options.output.sourcemap.js\n : options?.output?.sourcemap ?? true,\n format: isModule ? 'esm' : (\n isCommonJS ? 'cjs' : (\n isBrowser ? 'umd' : (\n pkgIsModule ? 'esm' : 'cjs'\n )\n )\n ),\n strict: typeof options?.output?.strict === 'object'\n ? options.output.strict.js\n : options?.output?.strict\n })\n ],\n plugins: [\n nodeResolve({ exportConditions }),\n import('rollup-plugin-postcss')\n .then(({ default: postcss }) =>\n postcss({\n extract: resolve(output.replace(/\\.[cm]?js$/, '.css')),\n minimize: true\n })\n )\n .catch(() => void 0),\n esbuild(),\n progress({\n onEvent: (event, message) =>\n sendMessage(\n {\n ...throughEventProps,\n data: { ...throughEventProps.data, event, message, tags: ['js'] }\n } satisfies RollupProgressEvent\n )\n })\n ]\n },\n {\n input,\n external,\n output: [\n {\n dir: resolve((typeof outdir === 'object' ? outdir.dts : outdir) ?? 'dist'),\n sourcemap: typeof options?.output?.sourcemap === 'object'\n ? options.output.sourcemap.dts\n : options?.output?.sourcemap ?? true,\n entryFileNames: () =>\n output\n .replace(`${jsOutdir}/`, '')\n .replace(/(\\.[cm]?)js$/, '.d$1ts'),\n strict: typeof options?.output?.strict === 'object'\n ? options.output.strict.dts\n : options?.output?.strict\n }\n ],\n plugins: [\n nodeResolve({ exportConditions }),\n skip({ patterns: [STYLE_REGEXP] }),\n dts({\n respectExternal: true,\n compilerOptions\n }),\n progress({\n onEvent: (event, message) =>\n sendMessage(\n {\n ...throughEventProps,\n data: { ...throughEventProps.data, event, message, tags: ['dts'] }\n } satisfies RollupProgressEvent\n )\n })\n ]\n }\n ]\n}\n\nexport function template(packageJSON: PackageJSON): RollupOptions[] {\n const { name, type, exports: entrypoints } = packageJSON\n const pkgIsModule = type === 'module'\n if (!name) throw new Error('package.json name is required')\n if (!entrypoints) throw new Error('package.json exports is required')\n\n const entries = JIEK_ENTRIES\n ?.split(',')\n .map(e => e.trim())\n .map(e => ({\n 'index': '.'\n }[e] ?? e))\n\n const {\n crossModuleConvertor = true\n } = build ?? {}\n\n const packageName = pascalCase(name)\n\n const external = externalResolver(packageJSON as Record<string, unknown>)\n\n const [, resolvedEntrypoints] = resolveEntrypoints(entrypoints)\n if (entries) {\n Object\n .entries(resolvedEntrypoints)\n .forEach(([key]) => {\n if (!entries.some(e => isMatch(key, e, { matchBase: true }))) {\n delete resolvedEntrypoints[key]\n }\n })\n }\n const filteredResolvedEntrypoints = filterLeafs(\n resolvedEntrypoints as RecursiveRecord<string>,\n {\n skipValue: [\n // ignore values that filename starts with `.jk-noentry`\n /(^|\\/)\\.jk-noentry/,\n ...DEFAULT_SKIP_VALUES\n ]\n }\n )\n const crossModuleWithConditional: Entrypoints2ExportsOptions['withConditional'] = crossModuleConvertor\n ? {\n import: opts =>\n !pkgIsModule && intersection(\n new Set(opts.conditionals),\n new Set(['import', 'module'])\n ).size === 0\n ? opts.dist.replace(/\\.js$/, '.mjs')\n : false,\n require: opts => {\n return pkgIsModule && intersection(\n new Set(opts.conditionals),\n new Set(['require', 'node'])\n ).size === 0\n ? opts.dist.replace(/\\.js$/, '.cjs')\n : false\n }\n }\n : {}\n const exports = entrypoints2Exports(filteredResolvedEntrypoints, {\n outdir: jsOutdir,\n withConditional: {\n ...crossModuleWithConditional\n }\n })\n\n const leafMap = new Map<string, string[][]>()\n getAllLeafs(filteredResolvedEntrypoints as RecursiveRecord<string>, ({ keys, value }) => {\n if (typeof value === 'string') {\n const keysArr = leafMap.get(value) ?? []\n leafMap.set(value, keysArr)\n keysArr.push(keys)\n }\n return false\n })\n\n const configs: RollupOptions[] = []\n leafMap.forEach((keysArr, input) =>\n keysArr.forEach((keys) => {\n const [path, ...conditionals] = keys\n\n const name = packageName + (path === '.' ? '' : pascalCase(path))\n const keyExports = reveal(exports, keys)\n const commonOptions = {\n path,\n name,\n input,\n external,\n pkgIsModule\n }\n\n switch (typeof keyExports) {\n case 'string': {\n configs.push(...generateConfigs({\n ...commonOptions,\n output: keyExports,\n conditionals\n }, build))\n break\n }\n case 'object': {\n getAllLeafs(keyExports as RecursiveRecord<string>, ({ keys: nextKeys, value }) => {\n const allConditionals = [...new Set([...conditionals, ...nextKeys])]\n if (typeof value === 'string') {\n configs.push(...generateConfigs({\n ...commonOptions,\n output: value,\n conditionals: allConditionals\n }, build))\n }\n return false\n })\n break\n }\n }\n })\n )\n sendMessage(\n {\n type: 'init',\n data: {\n leafMap,\n targetsLength: configs.length\n }\n } satisfies RollupProgressEvent\n )\n return configs.map(c => ({\n ...COMMON_OPTIONS,\n ...c,\n plugins: [\n ...COMMON_PLUGINS,\n c.plugins\n ]\n }))\n}\n","import fs from 'node:fs'\n\nexport default function(json: Record<string, unknown>): (string | RegExp)[]\nexport default function(path?: string): (string | RegExp)[]\nexport default function(jsonOrPath: string | Record<string, unknown> = process.cwd()): (string | RegExp)[] {\n const pkg = typeof jsonOrPath === 'string'\n ? fs.existsSync(`${jsonOrPath}/package.json`)\n ? JSON.parse(fs.readFileSync(`${jsonOrPath}/package.json`, 'utf-8'))\n : {}\n : jsonOrPath\n const { dependencies = {}, peerDependencies = {}, optionalDependencies = {} } = pkg\n const external = <(string | RegExp)[]> Object\n .keys(dependencies)\n .concat(Object.keys(peerDependencies))\n .concat(Object.keys(optionalDependencies))\n return external\n .map(dep => new RegExp(`^${dep}(/.*)?$`))\n .concat([\n /^node:/\n ])\n}\n"],"names":["root","getRoot","rootOption","program","getOptionValue","path","isAbsolute","resolve","process","cwd","wd","type","require","option","tsRegisterName","notWorkspace","getWD","isWorkspace","isWorkspaceDir","getWorkspaceDir","e","message","packageIsExist","name","registers","env","JIEK_TS_REGISTER","filter","Boolean","register","configName","progress","options","onEvent","buildStart","buildEnd","resolveId","order","handler","source","load","id","transform","_","skip","patterns","some","pattern","includes","test","JIEK_ROOT","JIEK_ENTRIES","WORKSPACE_ROOT","COMMON_OPTIONS","COMMON_PLUGINS","json","build","Error","configPath","fs","existsSync","isSupportTsLoader","configWithExtIsExist","ext","filenames","filename","lstatSync","isFile","getConfigPath","extname","module","readFileSync","default","loadConfig","jsOutdir","output","dir","js","STYLE_REGEXP","resolveWorkspacePath","p","intersection","a","b","Set","i","has","pascalCase","str","replace","$1","toUpperCase","withMinify","minify","file","plugins","terser","getExtendTSConfig","tsconfigPath","tsconfigPathDirname","dirname","extends","exts","tsconfig","statSync","parse","allowTrailingComma","allowEmptyContent","extendsPaths","paths","Array","isArray","map","length","reduce","acc","compilerOptions","references","curr","getCompilerOptionsByFilePath","filePath","files","include","exclude","isMatch","isInclude","reverse","ref","generateConfigs","input","external","pkgIsModule","conditionals","isModule","isCommonJS","isBrowser","dtsTSConfigPath","forEach","jsonCompilerOptions","errors","ts","convertCompilerOptionsFromJson","messageText","join","exportConditions","customConditions","throughEventProps","data","outdir","sourcemap","format","strict","nodeResolve","import","then","postcss","extract","minimize","catch","esbuild","event","sendMessage","tags","dts","entryFileNames","respectExternal","packageJSON","exports","entrypoints","entries","split","trim","index","crossModuleConvertor","packageName","jsonOrPath","pkg","JSON","dependencies","peerDependencies","optionalDependencies","Object","keys","concat","dep","RegExp","externalResolver","resolvedEntrypoints","resolveEntrypoints","key","matchBase","filteredResolvedEntrypoints","filterLeafs","skipValue","DEFAULT_SKIP_VALUES","crossModuleWithConditional","opts","size","dist","entrypoints2Exports","withConditional","leafMap","Map","getAllLeafs","value","keysArr","get","set","push","configs","keyExports","obj","reveal","commonOptions","nextKeys","allConditionals","targetsLength","c"],"mappings":"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"}
@@ -1 +0,0 @@
1
- import e from"node:fs";import t,{resolve as r,relative as o,dirname as s}from"node:path";import{resolveEntrypoints as n,filterLeafs as i,DEFAULT_SKIP_VALUES as p,entrypoints2Exports as c,getAllLeafs as u}from"@jiek/pkger/entrypoints";import{dts as l}from"@jiek/rollup-plugin-dts";import{isWorkspaceDir as a,getWorkspaceDir as f}from"@jiek/utils/getWorkspaceDir";import d from"@rollup/plugin-json";import{nodeResolve as m}from"@rollup/plugin-node-resolve";import g from"@rollup/plugin-terser";import{sendMessage as y}from"execa";import{parse as w}from"jsonc-parser";import{isMatch as h}from"micromatch";import j from"rollup-plugin-esbuild";import k from"typescript";import{program as $}from"commander";import{load as v}from"js-yaml";import"@pnpm/filter-workspace-packages";const E=(e,t)=>new Set([...e].filter((e=>t.has(e))));let b;function x(){if(b)return b;const e=$.getOptionValue("root");return b=e?t.isAbsolute(e)?e:t.resolve(process.cwd(),e):void 0,b}let S,O="";try{require.resolve("@pnpm/filter-workspace-packages"),O="pnpm"}catch{}""!==O&&$.option("-f, --filter <filter>","filter packages");let I,q=!1;function C(e){try{return require.resolve(e),!0}catch(e){return!1}}const F=[process.env.JIEK_TS_REGISTER,"esbuild-register","@swc-node/register","ts-node/register"].filter(Boolean);for(const e of F)if(C(e)){I=e;break}let T="jiek.config";var R=(e={})=>{const{onEvent:t}=e;return{name:"progress",buildStart:()=>t?.("start","Start building..."),buildEnd:()=>t?.("end","Build completed!"),resolveId:{order:"post",handler:e=>t?.("resolve",`Resolving ${e}...`)},load:{order:"post",handler:e=>t?.("load",`Loading ${e}...`)},transform:{order:"post",handler:(e,r)=>t?.("transform",`Transforming ${r}...`)}}},M=(e={})=>({name:"skip",load(t){if(e.patterns?.some((e=>"string"==typeof e?t.includes(e):e.test(t))))return""}});const{JIEK_ROOT:J,JIEK_ENTRIES:_}=process.env,A=J??f(),K={},W=[d()],z=function(r){const{wd:o}=function(){if(S)return{wd:S,notWorkspace:q};const e=x();if(void 0!==e){const t=a(e,O);return q=!t,S=e,{wd:S,notWorkspace:q}}try{S=f(O)}catch(t){if(!("message"in t)||"workspace root not found"!==t.message)throw t;S=e,q=!0}return{wd:S,notWorkspace:q}}();let s=$.getOptionValue("configPath");if(s){if(!e.existsSync(s))throw new Error(`config file not found: ${s}`);t.isAbsolute(s)||(s=t.resolve(o,s))}else s=function(r,o){const s=!!I;function n(s){const n=[t.resolve(process.cwd(),`${T}.${s}`),t.resolve(process.cwd(),`.${T}.${s}`),t.resolve(r,`${T}.${s}`),t.resolve(r,`.${T}.${s}`)];o&&n.unshift(t.resolve(o,`${T}.${s}`),t.resolve(o,`.${T}.${s}`));for(const t of n)if(e.existsSync(t)&&e.lstatSync(t).isFile())return t}return T=n("js")??T,T=n("json")??T,T=n("yaml")??T,s&&(T=n("ts")??T),t.resolve(r,T)}(o,r);const n=t.extname(s);let i;switch(n){case".js":i=require(s);break;case".json":return require(s);case".yaml":return v(e.readFileSync(s,"utf-8"));case".ts":if(I){require(I),i=require(s);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");case".config":i={};break;default:throw new Error(`unsupported config file type: ${n}`)}if(!i)throw new Error("config file is empty");return i.default??i}()??{},{build:B={}}=z,D=`./${o(process.cwd(),r(("object"==typeof B?.output?.dir?B.output.dir.js:B?.output?.dir)??"dist"))}`,N=/\.(css|s[ac]ss|less|styl)$/,V=e=>r(A,e),G=e=>e.replace(/[@|/-](\w)/g,((e,t)=>t.toUpperCase())).replace(/(?:^|-)(\w)/g,((e,t)=>t.toUpperCase())),L=(e,t=B?.output?.minify)=>!1===t?[e]:"only-minify"===t?[{...e,file:e.file?.replace(/(\.[cm]?js)$/,".min$1"),plugins:[...e.plugins??[],g()]}]:[e,{...e,file:e.file?.replace(/(\.[cm]?js)$/,".min$1"),plugins:[...e.plugins??[],g()]}],U=t=>{t=r(t);const o=s(t),{extends:n,...i}=(p=t,e.existsSync(p)&&e.statSync(p).isFile()?w(e.readFileSync(p,"utf-8"),[],{allowTrailingComma:!0,allowEmptyContent:!0}):{});var p;const c=(u=n?Array.isArray(n)?n:[n]:[],u?.map((e=>r(o,e)))??[]);var u;return 0===c.length?i:c.map(U).reduce(((e,{compilerOptions:t={},references:r,...o})=>({...e,...o,compilerOptions:{...e.compilerOptions,...t}})),i)},P=(e,t)=>{e=r(e),t=r(t);const o=s(e),n=U(e),[i,p,c,u]=[n.references?.map((({path:e})=>e)),n.files,n.include,n.exclude].map((e=>e?.map((e=>r(o,e)))??[]));if(u.length>0&&u.some((e=>h(t,e))))return;if(0===n.files?.length&&0===n.include?.length)return;let l=!1;if(l||(l=p.length>0&&p.includes(t)),l||(l=c.length>0&&c.some((e=>h(t,e)))),l)return n.compilerOptions??{};if(!(n.files&&n.files.length>0||n.include&&n.include.length>0)){i.reverse();for(const e of i){const r=P(e,t);if(r)return r}return n.compilerOptions}},H=({path:t,name:o,input:n,output:i,external:p,pkgIsModule:c,conditionals:u},a={})=>{const f=u.includes("import"),d=u.includes("require"),g=u.includes("browser");let w;[V("tsconfig.json"),V("tsconfig.dts.json")].forEach((t=>{e.existsSync(t)&&e.statSync(t).isFile()&&(w=t)}));let h={};if(w){const e=P(w,r(n)),{options:t,errors:o}=k.convertCompilerOptionsFromJson(e,s(w));if(o.length>0)throw new Error(o.map((e=>e.messageText)).join("\n"));h=t}const $=[...u,...h.customConditions??[]],v={type:"progress",data:{name:o,path:t,exportConditions:$,input:n}},E=a?.output?.dir;return[{input:n,external:p,output:[...L({file:i,name:o,sourcemap:"object"==typeof a?.output?.sourcemap?a.output.sourcemap.js:a?.output?.sourcemap,format:f?"esm":d?"cjs":g?"umd":c?"esm":"cjs",strict:"object"==typeof a?.output?.strict?a.output.strict.js:a?.output?.strict})],plugins:[m({exportConditions:$}),import("rollup-plugin-postcss").then((({default:e})=>e({extract:r(i.replace(/\.[cm]?js$/,".css")),minimize:!0}))).catch((()=>{})),j(),R({onEvent:(e,t)=>y({...v,data:{...v.data,event:e,message:t,tags:["js"]}})})]},{input:n,external:p,output:[{dir:r(("object"==typeof E?E.dts:E)??"dist"),sourcemap:"object"==typeof a?.output?.sourcemap?a.output.sourcemap.dts:a?.output?.sourcemap,entryFileNames:()=>i.replace(`${D}/`,"").replace(/(\.[cm]?)js$/,".d$1ts"),strict:"object"==typeof a?.output?.strict?a.output.strict.dts:a?.output?.strict}],plugins:[m({exportConditions:$}),M({patterns:[N]}),l({respectExternal:!0,compilerOptions:h}),R({onEvent:(e,t)=>y({...v,data:{...v.data,event:e,message:t,tags:["dts"]}})})]}]};function Q(t){const{name:s,type:l,exports:a}=t,f="module"===l;if(!s)throw new Error("package.json name is required");if(!a)throw new Error("package.json exports is required");const d=_?.split(",").map((e=>e.trim())).map((e=>({index:"."}[e]??e))),m=G(s),g=function(t=process.cwd()){const r="string"==typeof t?e.existsSync(`${t}/package.json`)?JSON.parse(e.readFileSync(`${t}/package.json`,"utf-8")):{}:t,{dependencies:o={},peerDependencies:s={},optionalDependencies:n={}}=r;return Object.keys(o).concat(Object.keys(s)).concat(Object.keys(n)).map((e=>new RegExp(`^${e}(/.*)?$`))).concat([/^node:/])}(t),[w,j]=function({entrypoints:e,pkgIsModule:t,entries:s,config:u,dir:l,noFilter:a}){const{build:f={}}=u??{},{crossModuleConvertor:d=!0}=f,m=`./${(e=>o(l??process.cwd(),e))(((...e)=>r(l??process.cwd(),...e))(("object"==typeof f?.output?.dir?f.output.dir.js:f?.output?.dir)??"dist"))}`,[,g]=n(e);s&&Object.entries(g).forEach((([e])=>{s.some((t=>h(e,t,{matchBase:!0})))||delete g[e]}));const y=a?g:i(g,{skipValue:[/(^|\/)\.jk-noentry/,...p]});return[y,c(y,{outdir:m,withConditional:{...d?{import:e=>!t&&0===E(new Set(e.conditionals),new Set(["import","module"])).size&&e.dist.replace(/\.js$/,".mjs"),require:e=>!(!t||0!==E(new Set(e.conditionals),new Set(["require","node"])).size)&&e.dist.replace(/\.js$/,".cjs")}:{}}})]}({entrypoints:a,pkgIsModule:f,entries:d,config:z}),k=new Map;u(w,(({keys:e,value:t})=>{if("string"==typeof t){const r=k.get(t)??[];k.set(t,r),r.push(e)}return!1}));const $=[];return k.forEach(((e,t)=>e.forEach((e=>{const[r,...o]=e,s=m+("."===r?"":G(r)),n=((e,t)=>t.reduce(((e,t)=>{if("string"==typeof e)throw new Error("key not found in exports");if(!(t in e))throw new Error(`key ${t} not found in exports`);return e[t]}),e))(j,e),i={path:r,name:s,input:t,external:g,pkgIsModule:f};switch(typeof n){case"string":$.push(...H({...i,output:n,conditionals:o},B));break;case"object":u(n,(({keys:e,value:t})=>{const r=[...new Set([...o,...e])];return"string"==typeof t&&$.push(...H({...i,output:t,conditionals:r},B)),!1}))}})))),y({type:"init",data:{leafMap:k,targetsLength:$.length}}),$.map((e=>({...K,...e,plugins:[...W,e.plugins]})))}export{Q as template};
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.min.mjs","sources":["../../src/utils/getRoot.ts","../../src/utils/filterSupport.ts","../../src/utils/getWD.ts","../../src/utils/tsRegister.ts","../../src/utils/loadConfig.ts","../../src/rollup/plugins/progress.ts","../../src/rollup/plugins/skip.ts","../../src/rollup/index.ts","../../src/rollup/utils/externalResolver.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 : undefined\n return root\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\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,\n 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,\n root,\n value: {\n [wd]: JSON.parse(fs.readFileSync(path.resolve(wd, 'package.json'), 'utf-8'))\n }\n }\n}\n","import { getWorkspaceDir, isWorkspaceDir } 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 if (root !== undefined) {\n const isWorkspace = isWorkspaceDir(root, type)\n notWorkspace = !isWorkspace\n wd = root\n return { wd, notWorkspace }\n }\n try {\n wd = getWorkspaceDir(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","function packageIsExist(name: string) {\n try {\n require.resolve(name)\n return true\n } catch (e) {\n return false\n }\n}\n\nexport let tsRegisterName: string | undefined\nconst registers = [\n process.env.JIEK_TS_REGISTER,\n 'esbuild-register',\n '@swc-node/register',\n 'ts-node/register'\n].filter(Boolean) as string[]\nfor (const register of registers) {\n if (packageIsExist(register)) {\n tsRegisterName = register\n break\n }\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { program } from 'commander'\nimport type { Config } from 'jiek'\nimport { load } from 'js-yaml'\n\nimport { getWD } from './getWD'\nimport { tsRegisterName } from './tsRegister'\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(process.cwd(), `${configName}.${ext}`),\n path.resolve(process.cwd(), `.${configName}.${ext}`),\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(): Config {\n const { wd: root, notWorkspace } = getWD()\n if (notWorkspace) {\n throw new Error('not in workspace')\n }\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 }\n if (!path.isAbsolute(configPath)) {\n configPath = path.resolve(root, configPath)\n }\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')) as Config\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 case '.config':\n module = {}\n break\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 type { PluginImpl } from 'rollup'\n\ninterface Options {\n onEvent?: (event: string, message?: string) => void\n}\n\nexport default ((options = {}) => {\n const { onEvent } = options\n return {\n name: 'progress',\n buildStart: () => onEvent?.('start', 'Start building...'),\n buildEnd: () => onEvent?.('end', 'Build completed!'),\n resolveId: {\n order: 'post',\n handler: source => onEvent?.('resolve', `Resolving ${source}...`)\n },\n load: {\n order: 'post',\n handler: id => onEvent?.('load', `Loading ${id}...`)\n },\n transform: {\n order: 'post',\n handler: (_, id) => onEvent?.('transform', `Transforming ${id}...`)\n }\n }\n}) as PluginImpl<Options>\n","import type { PluginImpl } from 'rollup'\n\ninterface Options {\n patterns?: (string | RegExp)[]\n}\n\nexport default ((options = {}) => {\n return {\n name: 'skip',\n // skip the specified files by `options.patterns`\n load(id) {\n if (\n options.patterns?.some((pattern) =>\n typeof pattern === 'string'\n ? id.includes(pattern)\n : pattern.test(id)\n )\n ) {\n return ''\n }\n }\n }\n}) as PluginImpl<Options>\n","import '../rollup/base'\n\nimport fs from 'node:fs'\nimport { dirname, resolve } from 'node:path'\n\nimport type { Entrypoints2ExportsOptions, RecursiveRecord } from '@jiek/pkger/entrypoints'\nimport {\n DEFAULT_SKIP_VALUES,\n entrypoints2Exports,\n filterLeafs,\n getAllLeafs,\n resolveEntrypoints\n} from '@jiek/pkger/entrypoints'\nimport { dts } from '@jiek/rollup-plugin-dts'\nimport { getWorkspaceDir } from '@jiek/utils/getWorkspaceDir'\nimport json from '@rollup/plugin-json'\nimport { nodeResolve } from '@rollup/plugin-node-resolve'\nimport terser from '@rollup/plugin-terser'\nimport { sendMessage } from 'execa'\nimport { parse } from 'jsonc-parser'\nimport { isMatch } from 'micromatch'\nimport type { OutputOptions, OutputPlugin, RollupOptions } from 'rollup'\nimport esbuild from 'rollup-plugin-esbuild'\nimport ts from 'typescript'\n\nimport { loadConfig } from '../utils/loadConfig'\nimport type { RollupProgressEvent, TemplateOptions } from './base'\nimport progress from './plugins/progress'\nimport skip from './plugins/skip'\nimport externalResolver from './utils/externalResolver'\n\ninterface PackageJSON {\n name?: string\n type?: string\n exports?: Record<string, unknown> | string | string[]\n}\n\nconst {\n JIEK_ROOT,\n JIEK_ENTRIES\n} = process.env\nconst WORKSPACE_ROOT = JIEK_ROOT ?? getWorkspaceDir()\nconst COMMON_OPTIONS = {} satisfies RollupOptions\nconst COMMON_PLUGINS = [\n json()\n]\n\nconst { build } = loadConfig()\nconst jsOutdir = resolve(\n (\n typeof build?.output?.dir === 'object'\n // the outdir only effect js output in this function\n ? build.output.dir.js\n : build?.output?.dir\n ) ?? 'dist'\n)\n\nconst STYLE_REGEXP = /\\.(css|s[ac]ss|less|styl)$/\n\n// eslint-disable-next-line unused-imports/no-unused-vars\nconst debug = (...args: unknown[]) => sendMessage({ type: 'debug', data: args } satisfies RollupProgressEvent)\n\nconst resolveWorkspacePath = (p: string) => resolve(WORKSPACE_ROOT, p)\n\nconst intersection = <T>(a: Set<T>, b: Set<T>) => new Set([...a].filter(i => b.has(i)))\n\nconst pascalCase = (str: string) =>\n str\n .replace(/[@|/-](\\w)/g, (_, $1) => $1.toUpperCase())\n .replace(/(?:^|-)(\\w)/g, (_, $1) => $1.toUpperCase())\n\nconst reveal = (obj: string | Record<string, unknown>, keys: string[]) =>\n keys.reduce((acc, key) => {\n if (typeof acc === 'string') throw new Error('key not found in exports')\n if (!(key in acc)) throw new Error(`key ${key} not found in exports`)\n return acc[key] as string | Record<string, unknown>\n }, obj)\n\nconst withMinify = (\n output: OutputOptions & {\n plugins?: OutputPlugin[]\n },\n minify = build?.output?.minify\n) =>\n minify === false\n ? [output]\n : minify === 'only-minify'\n ? [{\n ...output,\n // TODO replace suffix when pubish to npm and the `build.output.minify` is 'only-minify'\n // TODO resolve dts output file name\n file: output.file?.replace(/(\\.[cm]?js)$/, '.min$1'),\n plugins: [\n ...(output.plugins ?? []),\n terser()\n ]\n }]\n : [\n output,\n {\n ...output,\n file: output.file?.replace(/(\\.[cm]?js)$/, '.min$1'),\n plugins: [\n ...(output.plugins ?? []),\n terser()\n ]\n }\n ]\n\ntype TSConfig = {\n extends?: string | string[]\n compilerOptions?: Record<string, unknown>\n references?: { path: string }[]\n files?: string[]\n include?: string[]\n exclude?: string[]\n}\n\nconst getTSConfig = (p: string): TSConfig =>\n !fs.existsSync(p) || !fs.statSync(p).isFile()\n ? {}\n : parse(fs.readFileSync(p, 'utf-8'), [], { allowTrailingComma: true, allowEmptyContent: true })\n\nconst getExtendTSConfig = (tsconfigPath: string): TSConfig => {\n tsconfigPath = resolve(tsconfigPath)\n const tsconfigPathDirname = dirname(tsconfigPath)\n const { extends: exts, ...tsconfig } = getTSConfig(tsconfigPath)\n const resolvePaths = (paths: string[] | undefined) => paths?.map(p => resolve(tsconfigPathDirname, p)) ?? []\n\n const extendsPaths = resolvePaths(\n exts ? Array.isArray(exts) ? exts : [exts] : []\n )\n if (extendsPaths.length === 0) return tsconfig\n return extendsPaths\n .map(getExtendTSConfig)\n // https://www.typescriptlang.org/tsconfig/#files:~:text=Currently%2C%20the%20only%20top%2Dlevel%20property%20that%20is%20excluded%20from%20inheritance%20is%20references.\n // Currently, the only top-level property that is excluded from inheritance is references.\n .reduce((acc, { compilerOptions = {}, references: _, ...curr }) => ({\n ...acc,\n ...curr,\n compilerOptions: {\n ...acc.compilerOptions,\n ...compilerOptions\n }\n }), tsconfig)\n}\n\nconst getCompilerOptionsByFilePath = (tsconfigPath: string, filePath: string): Record<string, unknown> | undefined => {\n tsconfigPath = resolve(tsconfigPath)\n filePath = resolve(filePath)\n const tsconfigPathDirname = dirname(tsconfigPath)\n // https://www.typescriptlang.org/tsconfig/#files:~:text=It%E2%80%99s%20worth%20noting%20that%20files%2C%20include%2C%20and%20exclude%20from%20the%20inheriting%20config%20file%20overwrite%20those%20from%20the%20base%20config%20file%2C%20and%20that%20circularity%20between%20configuration%20files%20is%20not%20allowed.\n // It’s worth noting that files, include, and exclude from the inheriting config file overwrite\n // those from the base config file, and that circularity between configuration files is not allowed.\n const tsconfig = getExtendTSConfig(tsconfigPath)\n\n const resolvePaths = (paths: string[] | undefined) => paths?.map(p => resolve(tsconfigPathDirname, p)) ?? []\n\n const [\n references,\n files,\n include,\n exclude\n ] = [\n tsconfig.references?.map(({ path }) => path),\n tsconfig.files,\n tsconfig.include,\n tsconfig.exclude\n ].map(resolvePaths)\n if (exclude.length > 0 && exclude.some(i => isMatch(filePath, i))) return\n\n // when files or include is not empty, the tsconfig should be ignored\n if (tsconfig.files?.length === 0 && tsconfig.include?.length === 0) return\n let isInclude = false\n isInclude ||= files.length > 0 && files.includes(filePath)\n isInclude ||= include.length > 0 && include.some(i => isMatch(filePath, i))\n if (isInclude) {\n return tsconfig.compilerOptions ?? {}\n } else {\n // when files or include is not empty, but the file is not matched, the tsconfig should be ignored\n if (\n (tsconfig.files && tsconfig.files.length > 0)\n || (tsconfig.include && tsconfig.include.length > 0)\n ) return\n }\n\n references.reverse()\n for (const ref of references) {\n const compilerOptions = getCompilerOptionsByFilePath(ref, filePath)\n if (compilerOptions) return compilerOptions\n }\n return tsconfig.compilerOptions\n}\n\nconst generateConfigs = ({\n path,\n name,\n input,\n output,\n external,\n pkgIsModule,\n conditionals\n}: {\n path: string\n name: string\n input: string\n output: string\n external: (string | RegExp)[]\n pkgIsModule: boolean\n conditionals: string[]\n}, options: TemplateOptions = {}): RollupOptions[] => {\n const isModule = conditionals.includes('import')\n const isCommonJS = conditionals.includes('require')\n const isBrowser = conditionals.includes('browser')\n const dtsTSConfigPaths = [\n resolveWorkspacePath('tsconfig.json'),\n resolveWorkspacePath('tsconfig.dts.json')\n ]\n let dtsTSConfigPath: string | undefined\n dtsTSConfigPaths.forEach(p => {\n if (fs.existsSync(p) && fs.statSync(p).isFile()) {\n dtsTSConfigPath = p\n }\n })\n let compilerOptions: ts.CompilerOptions = {}\n if (dtsTSConfigPath) {\n const jsonCompilerOptions = getCompilerOptionsByFilePath(dtsTSConfigPath, resolve(input))\n const { options, errors } = ts.convertCompilerOptionsFromJson(\n jsonCompilerOptions,\n dirname(dtsTSConfigPath)\n )\n if (errors.length > 0) {\n throw new Error(errors.map(e => e.messageText).join('\\n'))\n }\n compilerOptions = options\n }\n const exportConditions = [...conditionals, ...(compilerOptions.customConditions ?? [])]\n const throughEventProps: RollupProgressEvent & { type: 'progress' } = {\n type: 'progress',\n data: { name, path, exportConditions, input }\n }\n const outdir = options?.output?.dir\n return [\n {\n input,\n external,\n output: [\n ...withMinify({\n file: output,\n name,\n sourcemap: typeof options?.output?.sourcemap === 'object'\n ? options.output.sourcemap.js\n : options?.output?.sourcemap ?? true,\n format: isModule ? 'esm' : (\n isCommonJS ? 'cjs' : (\n isBrowser ? 'umd' : (\n pkgIsModule ? 'esm' : 'cjs'\n )\n )\n ),\n strict: typeof options?.output?.strict === 'object'\n ? options.output.strict.js\n : options?.output?.strict\n })\n ],\n plugins: [\n nodeResolve({ exportConditions }),\n import('rollup-plugin-postcss')\n .then(({ default: postcss }) =>\n postcss({\n extract: resolve(output.replace(/\\.[cm]?js$/, '.css')),\n minimize: true\n })\n )\n .catch(() => void 0),\n esbuild(),\n progress({\n onEvent: (event, message) =>\n sendMessage(\n {\n ...throughEventProps,\n data: { ...throughEventProps.data, event, message, tags: ['js'] }\n } satisfies RollupProgressEvent\n )\n })\n ]\n },\n {\n input,\n external,\n output: [\n {\n dir: resolve((typeof outdir === 'object' ? outdir.dts : outdir) ?? 'dist'),\n sourcemap: typeof options?.output?.sourcemap === 'object'\n ? options.output.sourcemap.dts\n : options?.output?.sourcemap ?? true,\n entryFileNames: () =>\n output\n .replace(`${jsOutdir}/`, '')\n .replace(/(\\.[cm]?)js$/, '.d$1ts'),\n strict: typeof options?.output?.strict === 'object'\n ? options.output.strict.dts\n : options?.output?.strict\n }\n ],\n plugins: [\n nodeResolve({ exportConditions }),\n skip({ patterns: [STYLE_REGEXP] }),\n dts({\n respectExternal: true,\n compilerOptions\n }),\n progress({\n onEvent: (event, message) =>\n sendMessage(\n {\n ...throughEventProps,\n data: { ...throughEventProps.data, event, message, tags: ['dts'] }\n } satisfies RollupProgressEvent\n )\n })\n ]\n }\n ]\n}\n\nexport function template(packageJSON: PackageJSON): RollupOptions[] {\n const { name, type, exports: entrypoints } = packageJSON\n const pkgIsModule = type === 'module'\n if (!name) throw new Error('package.json name is required')\n if (!entrypoints) throw new Error('package.json exports is required')\n\n const entries = JIEK_ENTRIES\n ?.split(',')\n .map(e => e.trim())\n .map(e => ({\n 'index': '.'\n }[e] ?? e))\n\n const {\n crossModuleConvertor = true\n } = build ?? {}\n\n const packageName = pascalCase(name)\n\n const external = externalResolver(packageJSON as Record<string, unknown>)\n\n const [, resolvedEntrypoints] = resolveEntrypoints(entrypoints)\n if (entries) {\n Object\n .entries(resolvedEntrypoints)\n .forEach(([key]) => {\n if (!entries.some(e => isMatch(key, e, { matchBase: true }))) {\n delete resolvedEntrypoints[key]\n }\n })\n }\n const filteredResolvedEntrypoints = filterLeafs(\n resolvedEntrypoints as RecursiveRecord<string>,\n {\n skipValue: [\n // ignore values that filename starts with `.jk-noentry`\n /(^|\\/)\\.jk-noentry/,\n ...DEFAULT_SKIP_VALUES\n ]\n }\n )\n const crossModuleWithConditional: Entrypoints2ExportsOptions['withConditional'] = crossModuleConvertor\n ? {\n import: opts =>\n !pkgIsModule && intersection(\n new Set(opts.conditionals),\n new Set(['import', 'module'])\n ).size === 0\n ? opts.dist.replace(/\\.js$/, '.mjs')\n : false,\n require: opts => {\n return pkgIsModule && intersection(\n new Set(opts.conditionals),\n new Set(['require', 'node'])\n ).size === 0\n ? opts.dist.replace(/\\.js$/, '.cjs')\n : false\n }\n }\n : {}\n const exports = entrypoints2Exports(filteredResolvedEntrypoints, {\n outdir: jsOutdir,\n withConditional: {\n ...crossModuleWithConditional\n }\n })\n\n const leafMap = new Map<string, string[][]>()\n getAllLeafs(filteredResolvedEntrypoints as RecursiveRecord<string>, ({ keys, value }) => {\n if (typeof value === 'string') {\n const keysArr = leafMap.get(value) ?? []\n leafMap.set(value, keysArr)\n keysArr.push(keys)\n }\n return false\n })\n\n const configs: RollupOptions[] = []\n leafMap.forEach((keysArr, input) =>\n keysArr.forEach((keys) => {\n const [path, ...conditionals] = keys\n\n const name = packageName + (path === '.' ? '' : pascalCase(path))\n const keyExports = reveal(exports, keys)\n const commonOptions = {\n path,\n name,\n input,\n external,\n pkgIsModule\n }\n\n switch (typeof keyExports) {\n case 'string': {\n configs.push(...generateConfigs({\n ...commonOptions,\n output: keyExports,\n conditionals\n }, build))\n break\n }\n case 'object': {\n getAllLeafs(keyExports as RecursiveRecord<string>, ({ keys: nextKeys, value }) => {\n const allConditionals = [...new Set([...conditionals, ...nextKeys])]\n if (typeof value === 'string') {\n configs.push(...generateConfigs({\n ...commonOptions,\n output: value,\n conditionals: allConditionals\n }, build))\n }\n return false\n })\n break\n }\n }\n })\n )\n sendMessage(\n {\n type: 'init',\n data: {\n leafMap,\n targetsLength: configs.length\n }\n } satisfies RollupProgressEvent\n )\n return configs.map(c => ({\n ...COMMON_OPTIONS,\n ...c,\n plugins: [\n ...COMMON_PLUGINS,\n c.plugins\n ]\n }))\n}\n","import fs from 'node:fs'\n\nexport default function(json: Record<string, unknown>): (string | RegExp)[]\nexport default function(path?: string): (string | RegExp)[]\nexport default function(jsonOrPath: string | Record<string, unknown> = process.cwd()): (string | RegExp)[] {\n const pkg = typeof jsonOrPath === 'string'\n ? fs.existsSync(`${jsonOrPath}/package.json`)\n ? JSON.parse(fs.readFileSync(`${jsonOrPath}/package.json`, 'utf-8'))\n : {}\n : jsonOrPath\n const { dependencies = {}, peerDependencies = {}, optionalDependencies = {} } = pkg\n const external = <(string | RegExp)[]> Object\n .keys(dependencies)\n .concat(Object.keys(peerDependencies))\n .concat(Object.keys(optionalDependencies))\n return external\n .map(dep => new RegExp(`^${dep}(/.*)?$`))\n .concat([\n /^node:/\n ])\n}\n"],"names":["root","getRoot","rootOption","program","getOptionValue","path","isAbsolute","resolve","process","cwd","wd","type","require","option","tsRegisterName","notWorkspace","getWD","isWorkspace","isWorkspaceDir","getWorkspaceDir","e","message","packageIsExist","name","registers","env","JIEK_TS_REGISTER","filter","Boolean","register","configName","progress","options","onEvent","buildStart","buildEnd","resolveId","order","handler","source","load","id","transform","_","skip","patterns","some","pattern","includes","test","JIEK_ROOT","JIEK_ENTRIES","WORKSPACE_ROOT","COMMON_OPTIONS","COMMON_PLUGINS","json","build","Error","configPath","fs","existsSync","isSupportTsLoader","configWithExtIsExist","ext","filenames","filename","lstatSync","isFile","getConfigPath","extname","module","readFileSync","default","loadConfig","jsOutdir","output","dir","js","STYLE_REGEXP","resolveWorkspacePath","p","intersection","a","b","Set","i","has","pascalCase","str","replace","$1","toUpperCase","withMinify","minify","file","plugins","terser","getExtendTSConfig","tsconfigPath","tsconfigPathDirname","dirname","extends","exts","tsconfig","statSync","parse","allowTrailingComma","allowEmptyContent","extendsPaths","paths","Array","isArray","map","length","reduce","acc","compilerOptions","references","curr","getCompilerOptionsByFilePath","filePath","files","include","exclude","isMatch","isInclude","reverse","ref","generateConfigs","input","external","pkgIsModule","conditionals","isModule","isCommonJS","isBrowser","dtsTSConfigPath","forEach","jsonCompilerOptions","errors","ts","convertCompilerOptionsFromJson","messageText","join","exportConditions","customConditions","throughEventProps","data","outdir","sourcemap","format","strict","nodeResolve","import","then","postcss","extract","minimize","catch","esbuild","event","sendMessage","tags","dts","entryFileNames","respectExternal","template","packageJSON","exports","entrypoints","entries","split","trim","index","crossModuleConvertor","packageName","jsonOrPath","pkg","JSON","dependencies","peerDependencies","optionalDependencies","Object","keys","concat","dep","RegExp","externalResolver","resolvedEntrypoints","resolveEntrypoints","key","matchBase","filteredResolvedEntrypoints","filterLeafs","skipValue","DEFAULT_SKIP_VALUES","entrypoints2Exports","withConditional","opts","size","dist","leafMap","Map","getAllLeafs","value","keysArr","get","set","push","configs","keyExports","obj","reveal","commonOptions","nextKeys","allConditionals","targetsLength","c"],"mappings":"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"}