{"version":3,"file":"cli.mjs","sources":["../src/helpers/get-swc-env.ts","../src/helpers/get-swc-config.ts","../src/constants/js-extensions.ts","../src/utils/checks.ts","../src/helpers/get-rollup-typescript-config.ts","../src/constants/styles-extensions.ts","../src/utils/path.ts","../src/utils/url.ts","../src/utils/array-fmt.ts","../src/utils/resolve.ts","../src/helpers/get-rollup-styler-plugin.ts","../src/helpers/bundle-lib-if-needed.ts","../src/helpers/bundle-bin-if-needed.ts","../src/helpers/get-default-options.ts","../src/utils/get-exports-filenames.ts","../src/utils/get-filename-output-format.ts","../src/helpers/get-lib-outputs.ts","../src/helpers/get-bin-output.ts","../src/helpers/get-css-filename.ts","../src/utils/is-ts.ts","../src/utils/is-jsx.ts","../src/helpers/get-ctx.ts","../src/index.ts","../src/program.ts","../src/cli.ts"],"sourcesContent":["import type { OptimalPkgModel } from '../models/optimal-pkg';\nimport type { EnvConfig } from '@swc/core';\n\nexport const getSwcEnv = (pkg: OptimalPkgModel): EnvConfig => {\n  const coreJsVersion =\n    pkg.dependencies?.['core-js'] ??\n    pkg.devDependencies?.['core-js'] ??\n    pkg.peerDependencies?.['core-js'];\n\n  if (!coreJsVersion) return { targets: 'defaults' };\n\n  return {\n    targets: 'defaults',\n    coreJs: coreJsVersion,\n    mode: 'usage',\n    bugfixes: true,\n  };\n};\n","import type { Options as SwcOptions } from '@swc/core';\nimport { getSwcEnv } from './get-swc-env';\nimport type { ContextModel } from '../models/context';\nimport type { ModuleFormat, OutputOptions } from 'rollup';\n\nexport type GetSwcConfigArg = {\n  ts: boolean;\n  jsx: boolean;\n};\n\nexport const getSwcConfig = (\n  { isTs, isJsx, pkg }: Pick<ContextModel, 'isJsx' | 'isTs' | 'pkg'>,\n  { format }: Pick<OutputOptions, 'format'>\n): SwcOptions => {\n  return {\n    env: getSwcEnv(pkg),\n    jsc: {\n      target: undefined,\n      parser: isTs\n        ? {\n            syntax: 'typescript',\n            tsx: isJsx,\n          }\n        : { syntax: 'ecmascript', jsx: isJsx },\n    },\n\n    module: {\n      type: formatToTypeMap[format ?? 'es'],\n    },\n\n    sourceMaps: true,\n    swcrc: false,\n  };\n};\n\nconst formatToTypeMap: Record<\n  ModuleFormat,\n  'es6' | 'commonjs' | 'umd' | 'amd' | 'nodenext' | 'systemjs'\n> = {\n  amd: 'amd',\n\n  umd: 'umd',\n  iife: 'umd',\n\n  system: 'systemjs',\n  systemjs: 'systemjs',\n\n  cjs: 'commonjs',\n  commonjs: 'commonjs',\n\n  es: 'es6',\n  esm: 'es6',\n  module: 'es6',\n};\n","export const jsExtensions = [\n  '.mtsx',\n  '.ctsx',\n  '.tsx',\n  '.mts',\n  '.cts',\n  '.ts',\n  '.mtsx',\n  '.ctsx',\n  '.tsx',\n  '.mts',\n  '.cts',\n  '.ts',\n];\n","// string\nexport const isString = (value: unknown): value is string => typeof value === 'string';\n\nexport const isStringFull = (value: string): boolean => value.length > 0;\n\nexport const isEmptyString = (value: string): boolean => value.length === 0;\n\n// nil\nexport const isNull = (value: unknown): value is null => value === null;\n\nexport const isUndefined = (value: unknown): value is undefined => value === undefined;\n\nexport const isNil = <T>(value: T): value is Extract<T, undefined | null> =>\n  value == null;\n\nexport const isDefined = <T>(value: T): value is Exclude<T, undefined | null> =>\n  value != null;\n\n// object\nexport const isObject = <T>(value: T): value is Extract<T, object> =>\n  typeof value === 'object' && value != null;\n\nexport const isObjectFull = (value: object): boolean =>\n  isObject(value) && Object.keys(value).length > 0;\n\nexport const isEmptyObject = (value: object): boolean => Object.keys(value).length === 0;\n\n// array\nexport const isArray = <T>(value: T): value is Extract<T, unknown[]> =>\n  Array.isArray(value);\n\nexport const isArrayFull = (value: unknown[]): boolean => value.length > 0;\n\nexport const isEmptyArray = (value: unknown[]): boolean => value.length === 0;\n","import path from 'path';\nimport type { ContextModel } from '../models/context';\nimport type { RollupTypescriptOptions } from '@rollup/plugin-typescript';\n\nexport const getRollupTypescriptConfig = ({\n  options,\n  pkg,\n  resolvedSource,\n  tsconfigPath,\n}: Pick<\n  ContextModel,\n  'options' | 'pkg' | 'resolvedSource' | 'tsconfigPath'\n>): RollupTypescriptOptions => {\n  const declarationOptions = pkg.types\n    ? {\n        emitDeclarationOnly: true,\n        declaration: true,\n        declarationDir: path.resolve(options.cwd, path.dirname(pkg.types)),\n      }\n    : {};\n\n  return {\n    tsconfig: tsconfigPath ?? false,\n\n    rootDir: resolvedSource ? path.dirname(resolvedSource) : undefined,\n\n    sourceMap: false,\n    exclude: [\n      '**/__tests__/**',\n      '**/*.test.*',\n      '**/*.spec.*',\n      '**/*.stories.*',\n      '**/*.mock.*',\n    ],\n\n    ...declarationOptions,\n  };\n};\n","export const stylesExtensions = [\n  '.css',\n  '.scss',\n  '.sass',\n  '.less',\n  '.pcss',\n  '.sss',\n  '.styl',\n  '.stylus',\n];\n","import path from 'path';\n\nexport function normalizePath(...paths: string[]): string {\n  const f = path.join(...paths).replaceAll('\\\\', '/');\n\n  if (/^\\.[/\\\\]/.test(paths[0])) return `./${f}`;\n\n  return f;\n}\n","import path from 'path';\nimport { normalizePath } from './path';\n\nexport function getUrlOfPartial(url: string): string {\n  const { dir, base } = path.parse(url);\n\n  return dir ? `${normalizePath(dir)}/_${base}` : `_${base}`;\n}\n","export const arrayFmt = (arr: string[]): string =>\n  arr\n    .map((id, i, arr) => {\n      const fmt = `\\`${id}\\``;\n\n      switch (i) {\n        case arr.length - 1: {\n          return `or ${fmt}`;\n        }\n        case arr.length - 2: {\n          return fmt;\n        }\n        default: {\n          return `${fmt},`;\n        }\n      }\n    })\n    .join(' ');\n","import type { SyncOpts, PackageJSON } from 'resolve';\nimport resolver from 'resolve';\nimport { resolve as resolveExports, legacy as resolveFields } from 'resolve.exports';\nimport { arrayFmt } from './array-fmt';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst baseDir = path.dirname(fileURLToPath(import.meta.url));\n\ninterface Package extends PackageJSON {}\ntype PackageFilterFn = (pkg: Package, pkgfile: string) => Package;\n\nexport interface ResolveOpts {\n  /** name of the caller for error message (default to `Resolver`) */\n  caller?: string;\n  /** directories to begin resolving from (defaults to `[__dirname]`) */\n  basedirs?: string[];\n  /** array of file extensions to search in order (defaults to `[\".mjs\", \".js\", \".cjs\", \".json\"]`) */\n  extensions?: string | ReadonlyArray<string>;\n  /** don't resolve `basedirs` to real path before resolving. (defaults to `true`) */\n  preserveSymlinks?: boolean;\n  /** transform the parsed `package.json` contents before looking at the \"main\" field */\n  packageFilter?: PackageFilterFn;\n}\n\ninterface ResolveDefaultOpts {\n  caller: string;\n  basedirs: ReadonlyArray<string>;\n  extensions: ReadonlyArray<string>;\n  preserveSymlinks: boolean;\n  packageFilter: PackageFilterFn;\n}\n\ninterface PackageFilterBuilderOpts {\n  fields?: string[];\n  conditions?: string[];\n}\n\ntype PackageFilterBuilderFn = (\n  path?: string,\n  opts?: PackageFilterBuilderOpts\n) => PackageFilterFn;\n\nexport const packageFilterBuilder: PackageFilterBuilderFn = (path = '.', opts = {}) => {\n  const conditions = opts.conditions ?? ['style', 'import', 'require'];\n  const fields = opts.fields ?? ['style', 'module', 'main'];\n\n  return pkg => {\n    // Check `exports` fields\n    try {\n      const resolvedExport = resolveExports(pkg, path, { conditions, unsafe: true });\n\n      if (typeof resolvedExport === 'string') {\n        pkg.main = resolvedExport;\n\n        return pkg;\n      }\n    } catch {\n      /* noop */\n    }\n\n    // Check independent fields\n    try {\n      const resolvedField = resolveFields(pkg, { fields, browser: false });\n\n      if (typeof resolvedField === 'string') {\n        pkg.main = resolvedField;\n\n        return pkg;\n      }\n    } catch {\n      /* noop */\n    }\n\n    return pkg;\n  };\n};\n\nconst defaultOpts: ResolveDefaultOpts = {\n  caller: 'Resolver',\n  basedirs: [baseDir],\n  extensions: ['.mjs', '.js', '.cjs', '.json'],\n  preserveSymlinks: true,\n  packageFilter: packageFilterBuilder(),\n};\n\nconst resolverSync = (id: string, options: SyncOpts = {}): string | undefined => {\n  try {\n    return resolver.sync(id, {\n      ...options,\n      pathFilter: (pkg, _path, relativePath) => {\n        const result = resolveExports(pkg, relativePath);\n\n        if (result) return result[0];\n\n        return '';\n      },\n    });\n  } catch {\n    return;\n  }\n};\n\nexport function resolveSync(ids: string[], userOpts: ResolveOpts): string {\n  const options = { ...defaultOpts, ...userOpts };\n\n  for (const basedir of options.basedirs) {\n    const opts = { ...options, basedir, basedirs: undefined, caller: undefined };\n\n    for (const id of ids) {\n      const resolved = resolverSync(id, opts);\n\n      if (resolved) return resolved;\n    }\n  }\n\n  throw new Error(`${options.caller} could not resolve ${arrayFmt(ids)}`);\n}\n","import type { ContextModel } from '../models/context';\nimport { stylesExtensions } from '../constants/styles-extensions';\nimport styles from 'rollup-plugin-styler';\nimport postcssImport from 'postcss-import';\nimport path from 'path';\nimport { getUrlOfPartial } from '../utils/url';\nimport { packageFilterBuilder, resolveSync } from '../utils/resolve';\n\nconst finalize = (id: string) => ({ file: id.replace(/\\.css$/i, '') });\nconst conditions = ['sass', 'style'];\n\nexport const getRollupStylerPlugin = ({\n  options,\n  cssFilename,\n}: Pick<ContextModel, 'options' | 'cssFilename'>) =>\n  styles({\n    autoModules: true,\n    extensions: stylesExtensions,\n    mode: ['extract', cssFilename],\n    sourceMap: true,\n    to: cssFilename,\n    sass: {\n      importer: (url: string, importer: string) => {\n        if (path.isAbsolute(url) || url.startsWith('.')) return null;\n\n        const partialUrl = getUrlOfPartial(url);\n\n        const resolverOptions = {\n          caller: 'Sass importer',\n          basedirs: [path.dirname(importer)],\n          extensions: stylesExtensions,\n          packageFilter: packageFilterBuilder(url, { conditions }),\n        };\n\n        try {\n          return finalize(resolveSync([partialUrl, url], resolverOptions));\n        } catch {\n          return null;\n        }\n      },\n    } as any,\n    plugins: [\n      postcssImport({\n        root: options.cwd,\n      }),\n    ],\n  });\n","import { rollup, type Plugin } from 'rollup';\nimport { nodeResolve } from '@rollup/plugin-node-resolve';\nimport commonjs from '@rollup/plugin-commonjs';\nimport { swc } from 'rollup-plugin-swc3';\nimport { typescriptPaths } from 'rollup-plugin-typescript-paths';\nimport PeerDepsExternalPlugin from 'rollup-plugin-peer-deps-external';\nimport json from '@rollup/plugin-json';\n\nimport { getSwcConfig } from './get-swc-config';\nimport { jsExtensions } from '../constants/js-extensions';\nimport type { ContextModel } from '../models/context';\nimport { isEmptyArray, isNil, isString, isStringFull } from '../utils/checks';\nimport typescript from '@rollup/plugin-typescript';\nimport { getRollupTypescriptConfig } from './get-rollup-typescript-config';\nimport { stylesExtensions } from '../constants/styles-extensions';\nimport { getRollupStylerPlugin } from './get-rollup-styler-plugin';\n\nexport const bundleLibIfNeeded = async (ctx: ContextModel) => {\n  const { pkg, options, libOutputs, pkgPath, resolvedSource } = ctx;\n\n  if (isNil(resolvedSource) || isEmptyArray(libOutputs)) return;\n\n  await Promise.all(\n    libOutputs.map(async output => {\n      const bundle = await rollup({\n        input: resolvedSource,\n        plugins: [\n          PeerDepsExternalPlugin({\n            includeDependencies: true,\n            packageJsonPath: pkgPath,\n          }) as Plugin<any>,\n          typescriptPaths({\n            preserveExtensions: true,\n          }),\n          json(),\n          swc({\n            ...getSwcConfig(ctx, output),\n            tsconfig: ctx.tsconfigPath ?? false,\n          }),\n          commonjs({ extensions: jsExtensions }),\n          nodeResolve({\n            rootDir: options.cwd,\n            extensions: [...jsExtensions, ...stylesExtensions],\n          }),\n          getRollupStylerPlugin(ctx),\n          isString(pkg.types) &&\n            isStringFull(pkg.types) &&\n            typescript(getRollupTypescriptConfig(ctx)),\n        ],\n      });\n\n      await bundle.write(output);\n    })\n  );\n};\n","import path from 'path';\nimport { rollup, type Plugin } from 'rollup';\nimport { nodeResolve } from '@rollup/plugin-node-resolve';\nimport commonjs from '@rollup/plugin-commonjs';\nimport { swc } from 'rollup-plugin-swc3';\nimport { typescriptPaths } from 'rollup-plugin-typescript-paths';\nimport PeerDepsExternalPlugin from 'rollup-plugin-peer-deps-external';\nimport json from '@rollup/plugin-json';\n\nimport { getSwcConfig } from './get-swc-config';\nimport { jsExtensions } from '../constants/js-extensions';\nimport type { ContextModel } from '../models/context';\nimport { isNil } from '../utils/checks';\nimport { stylesExtensions } from '../constants/styles-extensions';\n\nexport const bundleBinIfNeeded = async (ctx: ContextModel) => {\n  const { pkg, pkgPath, options, binOutput } = ctx;\n\n  if (isNil(pkg['bin:source']) || isNil(binOutput)) return;\n\n  const bundle = await rollup({\n    input: path.resolve(options.cwd, pkg['bin:source']),\n    plugins: [\n      PeerDepsExternalPlugin({\n        includeDependencies: true,\n        packageJsonPath: pkgPath,\n      }) as Plugin<any>,\n      typescriptPaths({\n        preserveExtensions: true,\n      }),\n      json(),\n      swc({\n        ...getSwcConfig(ctx, binOutput),\n        tsconfig: ctx.tsconfigPath ?? false,\n      }),\n      commonjs({ extensions: jsExtensions }),\n      nodeResolve({\n        rootDir: options.cwd,\n        extensions: [...jsExtensions, ...stylesExtensions],\n      }),\n    ],\n  });\n\n  await bundle.write(binOutput);\n};\n","import type { OptionsModel } from '../models/options';\n\nexport const getDefaultOptions = (): OptionsModel => ({\n  cwd: '.',\n});\n","import type { OptimalPkgModel } from '../models/optimal-pkg';\nimport { isEmptyObject, isEmptyString, isNil, isObject, isString } from './checks';\n\nexport const getExportsFilenames = (exs: OptimalPkgModel['exports']): string[] => {\n  if (\n    isNil(exs) ||\n    (isObject(exs) && isEmptyObject(exs)) ||\n    (isString(exs) && isEmptyString(exs))\n  )\n    return [];\n\n  if (isString(exs)) return [exs];\n\n  return Object.values(exs).flatMap(ex => getExportsFilenames(ex));\n};\n","import path from 'path';\n\nexport const getFilenameOutputFormat = (\n  filename: string,\n  isModule = false\n): 'esm' | 'cjs' | 'umd' | 'amd' | 'iife' => {\n  const ext = path.extname(filename);\n\n  filename.substring;\n\n  switch (ext) {\n    case '.mjs':\n      return 'esm';\n    case '.cjs':\n      return 'cjs';\n  }\n\n  const filenameWithoutExt = filename.substring(0, filename.length - ext.length);\n\n  const luxuryExt = path.extname(filenameWithoutExt);\n\n  if (!luxuryExt) {\n    return isModule ? 'esm' : 'cjs';\n  }\n\n  switch (luxuryExt) {\n    case '.umd':\n      return 'umd';\n    case '.amd':\n      return 'amd';\n    case '.iife':\n      return 'iife';\n  }\n\n  throw new Error('[lbundle] unknown output format for filename: ' + filename);\n};\n","import { type ModuleFormat, type OutputOptions } from 'rollup';\nimport { isDefined, isString } from '../utils/checks';\nimport { getExportsFilenames } from '../utils/get-exports-filenames';\nimport { getFilenameOutputFormat } from '../utils/get-filename-output-format';\nimport path from 'path';\nimport type { ContextModel } from '../models/context';\n\nexport const getLibOutputs = ({\n  options,\n  globalName,\n  pkg,\n  isModule,\n  cssFilename,\n}: Pick<\n  ContextModel,\n  'options' | 'pkg' | 'isModule' | 'globalName' | 'cssFilename'\n>): OutputOptions[] => {\n  const map = new Map<ModuleFormat, OutputOptions>();\n\n  [pkg.main, pkg.module, pkg.unpkg, ...getExportsFilenames(pkg.exports)]\n    .filter(\n      (filename): filename is string =>\n        isString(filename) && jsExtensions[path.extname(filename) as '.js']\n    )\n    .map<OutputOptions>(filename => {\n      const format = getFilenameOutputFormat(filename, isModule);\n      const ext = path.extname(filename);\n\n      const preserveModules = preserveModulesFormats[format as 'esm'];\n\n      const entryFileNames = preserveModules ? `[name]${ext}` : undefined;\n\n      const dir = preserveModules\n        ? path.resolve(options.cwd, path.dirname(filename))\n        : undefined;\n\n      const file = preserveModules ? undefined : path.resolve(options.cwd, filename);\n\n      return {\n        name: globalName,\n        format,\n\n        file,\n\n        dir,\n        entryFileNames,\n        preserveModules,\n        assetFileNames: ({ names }) => {\n          const normalizedCssFilename = path.posix.normalize(cssFilename);\n\n          if (names.includes(normalizedCssFilename)) {\n            if (isDefined(dir))\n              return path.relative(dir, path.resolve(options.cwd, normalizedCssFilename));\n\n            return normalizedCssFilename;\n          }\n\n          return 'assets/[name]-[hash][extname]';\n        },\n\n        esModule: format === 'cjs',\n\n        strict: true,\n        sourcemap: true,\n      };\n    })\n    .forEach(output => map.set(output.format!, output));\n\n  return [...map.values()];\n};\n\nconst preserveModulesFormats = {\n  'esm': true,\n  'cjs': true,\n};\n\nconst jsExtensions = {\n  '.js': true,\n  '.cjs': true,\n  '.mjs': true,\n};\n","import type { OutputOptions } from 'rollup';\nimport { isEmptyObject, isNil, isObject, isString } from '../utils/checks';\nimport path from 'path';\nimport type { ContextModel } from '../models/context';\nimport { getFilenameOutputFormat } from '../utils/get-filename-output-format';\n\nexport const getBinOutput = ({\n  options,\n  pkg,\n  isModule\n}: Pick<ContextModel, 'options' | 'pkg'| 'isModule'>): OutputOptions | undefined => {\n  if (isNil(pkg.bin) || (isObject(pkg.bin) && isEmptyObject(pkg.bin))) return;\n\n  if (isObject(pkg.bin) && Object.keys(pkg.bin).length > 1) {\n    console.warn(\"[lbundle] multiple bin isn't supported yet\");\n  }\n\n  const binSource = isString(pkg.bin) ? pkg.bin : Object.values(pkg.bin)[0]!;\n\n  return {\n    format: getFilenameOutputFormat(binSource, isModule),\n\n    file: path.resolve(options.cwd, binSource!),\n\n    strict: true,\n    sourcemap: true,\n  };\n};\n","import path from 'path';\nimport { getExportsFilenames } from '../utils/get-exports-filenames';\nimport type { ContextModel } from '../models/context';\n\nexport const getCSSFilename = ({\n  pkg,\n}: Pick<ContextModel, 'pkg'>): string | undefined => {\n  const filenames = getExportsFilenames(pkg.exports);\n\n  return filenames.find(filename => path.extname(filename) === '.css');\n};\n","import type { OptimalPkgModel } from '../models/optimal-pkg';\nimport path from 'path';\n\nexport const isTs = (pkg: OptimalPkgModel): boolean => {\n  if (pkg.source && path.extname(pkg.source).includes('ts')) return true;\n\n  return (\n    !!pkg.dependencies?.typescript ||\n    !!pkg.devDependencies?.typescript ||\n    !!pkg.peerDependencies?.typescript\n  );\n};\n","import type { OptimalPkgModel } from '../models/optimal-pkg';\nimport path from 'path';\n\nexport const isJsx = (pkg: OptimalPkgModel): boolean => {\n  if (pkg.source && path.extname(pkg.source).includes('sx')) return true;\n\n  return (\n    !!pkg.dependencies?.react ||\n    !!pkg.devDependencies?.react ||\n    !!pkg.peerDependencies?.react\n  );\n};\n","import path from 'path';\nimport fs from 'fs';\nimport merge from 'lodash.merge';\n\nimport type { OptimalPkgModel } from '../models/optimal-pkg';\nimport type { OptionsModel } from '../models/options';\nimport { getDefaultOptions } from './get-default-options';\nimport { getLibOutputs } from './get-lib-outputs';\nimport type { ContextModel } from '../models/context';\nimport { getBinOutput } from './get-bin-output';\nimport { isNil } from '../utils/checks';\nimport { getCSSFilename } from './get-css-filename';\nimport { pascalCase } from 'change-case';\nimport { isTs } from '../utils/is-ts';\nimport { isJsx } from '../utils/is-jsx';\n\nexport const getCtx = async (\n  baseOptions: Partial<OptionsModel>\n): Promise<ContextModel> => {\n  const options = merge(getDefaultOptions(), baseOptions);\n\n  const pkgPath = path.resolve(options.cwd, 'package.json');\n\n  const pkg = JSON.parse(await fs.promises.readFile(pkgPath, 'utf-8')) as OptimalPkgModel;\n\n  const tsconfigPath = path.resolve(options.cwd, 'tsconfig.json');\n\n  const swcPath = path.resolve(options.cwd, '.swc');\n\n  if (isNil(pkg.source) && isNil(pkg['bin:source'])) {\n    throw new Error(\n      '[bundle] provide source entry for you library, set `package.json` `source` or `bin:source` field'\n    );\n  }\n\n  const isModule = pkg.type === 'module';\n\n  const globalName = pascalCase(pkg.name);\n\n  const cssFilename = getCSSFilename({ pkg }) ?? 'index.css';\n\n  const libOutputs = getLibOutputs({ pkg, globalName, options, isModule, cssFilename });\n  const binOutput = getBinOutput({ pkg, options, isModule });\n\n  const resolvedSource = pkg.source ? path.resolve(options.cwd, pkg.source) : undefined;\n  const resolvedBinSource = pkg['bin:source']\n    ? path.resolve(options.cwd, pkg['bin:source'])\n    : undefined;\n\n  const ts = isTs(pkg);\n  const jsx = isJsx(pkg);\n\n  return {\n    baseOptions: baseOptions,\n    options: options,\n\n    globalName,\n\n    pkgPath,\n    pkg,\n\n    swcPath: fs.existsSync(swcPath) ? swcPath : undefined,\n\n    tsconfigPath: fs.existsSync(tsconfigPath) ? tsconfigPath : undefined,\n\n    isModule,\n\n    resolvedSource,\n    resolvedBinSource,\n\n    isTs: ts,\n    isJsx: jsx,\n\n    libOutputs,\n    binOutput,\n\n    cssFilename,\n  };\n};\n","import { bundleLibIfNeeded } from './helpers/bundle-lib-if-needed';\nimport { bundleBinIfNeeded } from './helpers/bundle-bin-if-needed';\nimport type { OptionsModel } from './models/options';\nimport { getCtx } from './helpers/get-ctx';\n\nexport const lbundle = async (baseOptions: Partial<OptionsModel>): Promise<void> => {\n  const ctx = await getCtx(baseOptions);\n\n  await Promise.all([bundleLibIfNeeded(ctx), bundleBinIfNeeded(ctx)]);\n};\n","import { Command } from 'commander';\nimport pkg from '../package.json';\n\nexport const prog = new Command(pkg.name);\n\nprog\n  .version(pkg.version)\n  .option('-c, --cwd <cwd>', 'root dir path of your lib', '.')\n  .parse();\n","#!/usr/bin/env node\n\nimport { lbundle } from './index';\nimport { prog } from './program';\n\nlbundle(prog.opts());\n"],"names":["getSwcEnv","pkg","coreJsVersion","dependencies","devDependencies","peerDependencies","targets","coreJs","mode","bugfixes","getSwcConfig","isTs","isJsx","format","env","jsc","target","undefined","parser","syntax","tsx","jsx","module","type","formatToTypeMap","sourceMaps","swcrc","amd","umd","iife","system","systemjs","cjs","commonjs","es","esm","jsExtensions","isString","value","isStringFull","length","isEmptyString","isNil","isDefined","isObject","isEmptyObject","Object","keys","isEmptyArray","getRollupTypescriptConfig","options","resolvedSource","tsconfigPath","declarationOptions","types","emitDeclarationOnly","declaration","declarationDir","path","resolve","cwd","dirname","tsconfig","rootDir","sourceMap","exclude","stylesExtensions","normalizePath","paths","f","join","replaceAll","test","getUrlOfPartial","url","dir","base","parse","arrayFmt","arr","map","id","i","fmt","baseDir","fileURLToPath","packageFilterBuilder","opts","conditions","fields","resolvedExport","resolveExports","unsafe","main","resolvedField","resolveFields","browser","defaultOpts","caller","basedirs","extensions","preserveSymlinks","packageFilter","resolverSync","resolver","sync","pathFilter","_path","relativePath","result","resolveSync","ids","userOpts","basedir","resolved","Error","finalize","file","replace","getRollupStylerPlugin","cssFilename","styles","autoModules","to","sass","importer","isAbsolute","startsWith","partialUrl","resolverOptions","plugins","postcssImport","root","bundleLibIfNeeded","ctx","libOutputs","pkgPath","Promise","all","output","bundle","rollup","input","PeerDepsExternalPlugin","includeDependencies","packageJsonPath","typescriptPaths","preserveExtensions","json","swc","nodeResolve","typescript","write","bundleBinIfNeeded","binOutput","getDefaultOptions","getExportsFilenames","exs","values","flatMap","ex","getFilenameOutputFormat","filename","isModule","ext","extname","substring","filenameWithoutExt","luxuryExt","getLibOutputs","globalName","Map","unpkg","exports","filter","preserveModules","preserveModulesFormats","entryFileNames","name","assetFileNames","names","normalizedCssFilename","posix","normalize","includes","relative","esModule","strict","sourcemap","forEach","set","getBinOutput","bin","console","warn","binSource","getCSSFilename","filenames","find","source","react","getCtx","baseOptions","merge","JSON","fs","promises","readFile","swcPath","pascalCase","resolvedBinSource","ts","existsSync","lbundle","prog","Command","version","option"],"mappings":"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"}