@sanity/pkg-utils 2.0.0-beta.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +3 -3
  2. package/dist/_chunks/{build-b879ad71.cjs → build-a76b6607.cjs} +8 -3
  3. package/dist/_chunks/build-a76b6607.cjs.map +1 -0
  4. package/dist/_chunks/{buildAction-232e6073.cjs → buildAction-bfc3483c.cjs} +4 -4
  5. package/dist/_chunks/{buildAction-232e6073.cjs.map → buildAction-bfc3483c.cjs.map} +1 -1
  6. package/dist/_chunks/{check-617f9494.cjs → check-5451f989.cjs} +7 -2
  7. package/dist/_chunks/check-5451f989.cjs.map +1 -0
  8. package/dist/_chunks/{checkAction-a2d388ad.cjs → checkAction-f67b99f8.cjs} +3 -3
  9. package/dist/_chunks/{checkAction-a2d388ad.cjs.map → checkAction-f67b99f8.cjs.map} +1 -1
  10. package/dist/_chunks/{index-b63b3deb.cjs → index-4a6d7209.cjs} +167 -117
  11. package/dist/_chunks/index-4a6d7209.cjs.map +1 -0
  12. package/dist/_chunks/{resolveBuildContext-bba19cd6.cjs → resolveBuildContext-2fe45294.cjs} +33 -13
  13. package/dist/_chunks/resolveBuildContext-2fe45294.cjs.map +1 -0
  14. package/dist/_chunks/{watch-6fb4e453.cjs → watch-b76059c1.cjs} +8 -3
  15. package/dist/_chunks/watch-b76059c1.cjs.map +1 -0
  16. package/dist/_chunks/{watchAction-8135afe0.cjs → watchAction-2eb6b41f.cjs} +4 -4
  17. package/dist/_chunks/{watchAction-8135afe0.cjs.map → watchAction-2eb6b41f.cjs.map} +1 -1
  18. package/dist/cli.cjs +4 -4
  19. package/dist/index.cjs +7 -6
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.ts +24 -10
  22. package/dist/index.js +219 -135
  23. package/dist/index.js.map +1 -1
  24. package/package.json +1 -1
  25. package/src/node/build.ts +3 -1
  26. package/src/node/check.ts +3 -2
  27. package/src/node/core/contexts/buildContext.ts +2 -1
  28. package/src/node/core/index.ts +0 -1
  29. package/src/node/core/pkg/index.ts +1 -0
  30. package/src/node/core/pkg/parseExports.ts +4 -2
  31. package/src/node/core/pkg/pkgExt.ts +38 -0
  32. package/src/node/core/pkg/validateExports.ts +4 -4
  33. package/src/node/resolveBuildContext.ts +5 -1
  34. package/src/node/tasks/dts/buildTypes.ts +7 -22
  35. package/src/node/tasks/dts/doExtract.ts +2 -2
  36. package/src/node/tasks/dts/printDiagnostic.ts +42 -0
  37. package/src/node/tasks/rollup/consoleSpy.ts +41 -0
  38. package/src/node/tasks/rollup/resolveRollupConfig.ts +22 -11
  39. package/src/node/tasks/rollup/rollupTask.ts +69 -78
  40. package/src/node/watch.ts +3 -2
  41. package/dist/_chunks/build-b879ad71.cjs.map +0 -1
  42. package/dist/_chunks/check-617f9494.cjs.map +0 -1
  43. package/dist/_chunks/index-b63b3deb.cjs.map +0 -1
  44. package/dist/_chunks/resolveBuildContext-bba19cd6.cjs.map +0 -1
  45. package/dist/_chunks/watch-6fb4e453.cjs.map +0 -1
  46. package/src/node/core/constants.ts +0 -14
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/node/core/constants.ts","../src/node/core/defaults.ts","../src/node/core/isRecord.ts","../src/node/core/config/findConfigFile.ts","../src/node/core/config/loadConfig.ts","../src/node/core/config/resolveConfigProperty.ts","../src/node/core/config/defineConfig.ts","../src/node/core/pkg/validatePkg.ts","../src/node/core/pkg/loadPkg.ts","../src/node/core/pkg/loadPkgWithReporting.ts","../src/node/core/pkg/validateExports.ts","../src/node/core/pkg/parseExports.ts","../src/node/core/ts/loadTSConfig.ts","../src/node/logger.ts","../src/node/core/findCommonPath.ts","../src/node/resolveBrowserslistVersions.ts","../src/node/resolveBrowserTarget.ts","../src/node/resolveNodeTarget.ts","../src/node/resolveBuildContext.ts","../src/node/resolveBuildTasks.ts","../src/node/spinner.ts","../src/node/printExtractMessages.ts","../src/node/tasks/dts/buildTypes.ts","../src/node/tasks/dts/DtsError.ts","../src/node/tasks/dts/createApiExtractorConfig.ts","../src/node/tasks/dts/createTSDocConfig.ts","../src/node/tasks/dts/extractModuleBlocks.ts","../src/node/tasks/dts/getExtractMessagesConfig.ts","../src/node/tasks/dts/extractTypes.ts","../src/node/tasks/dts/doExtract.ts","../src/node/tasks/dts/dtsTask.ts","../src/node/tasks/dts/dtsWatchTask.ts","../src/node/tasks/rollup/resolveRollupConfig.ts","../src/node/tasks/rollup/rollupTask.ts","../src/node/tasks/rollup/rollupWatchTask.ts","../src/node/tasks/index.ts","../src/node/build.ts","../src/node/getFilesize.ts","../src/node/printPackageTree.ts","../src/node/check.ts","../src/node/resolveWatchTasks.ts","../src/node/globFiles.ts","../src/node/watchFiles.ts","../src/node/watchConfigFiles.ts","../src/node/watch.ts"],"sourcesContent":["/** @internal */\nexport const MODULE_EXT: Record<'commonjs' | 'module', {commonjs: string; esm: string}> = {\n // pkg.type: \"commonjs\"\n commonjs: {\n commonjs: '.js',\n esm: '.mjs',\n },\n\n // pkg.type: \"module\"\n module: {\n commonjs: '.cjs',\n esm: '.js',\n },\n}\n","/** @public */\nexport const DEFAULT_BROWSERSLIST_QUERY = [\n '> 0.2% and supports es6-module and supports es6-module-dynamic-import',\n 'not dead',\n 'not IE 11',\n 'maintained node versions',\n]\n","/** @internal */\nexport function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && !Array.isArray(value) && typeof value === 'object'\n}\n","import {stat} from 'fs/promises'\nimport path from 'path'\nimport findConfig from 'find-config'\n\nconst CONFIG_FILE_NAMES = [\n 'package.config.ts',\n 'package.config.js',\n 'package.config.cjs',\n 'package.config.mjs',\n]\n\nexport async function findConfigFile(cwd: string): Promise<string | undefined> {\n const pkgJsonPath = findConfig('package.json', {cwd})\n\n if (!pkgJsonPath) return undefined\n\n const pkgPath = path.dirname(pkgJsonPath)\n\n for (const fileName of CONFIG_FILE_NAMES) {\n const configPath = path.resolve(pkgPath, fileName)\n\n const exists = await fileExists(configPath)\n\n if (exists) {\n return configPath\n }\n }\n\n return undefined\n}\n\nasync function fileExists(filePath: string) {\n try {\n await stat(filePath)\n\n return true\n } catch (_) {\n return false\n }\n}\n","import path from 'path'\nimport {register} from 'esbuild-register/dist/node'\nimport pkgUp from 'pkg-up'\nimport {findConfigFile} from './findConfigFile'\nimport {PkgConfigOptions} from './types'\n\n/** @internal */\nexport async function loadConfig(options: {cwd: string}): Promise<PkgConfigOptions | undefined> {\n const {cwd} = options\n\n const pkgPath = await pkgUp({cwd})\n\n if (!pkgPath) return undefined\n\n const root = path.dirname(pkgPath)\n\n const configFile = await findConfigFile(root)\n\n if (!configFile) {\n return undefined\n }\n\n // Do not accept config files outside of the root\n if (!configFile.startsWith(cwd)) {\n return undefined\n }\n\n const esbuildOptions = {extensions: ['.js', '.mjs', '.ts']}\n\n const {unregister} = globalThis.__DEV__ ? {unregister: () => undefined} : register(esbuildOptions)\n\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const mod = require(configFile)\n\n unregister()\n\n return mod?.default || mod || undefined\n}\n","import {PkgConfigProperty, PkgConfigPropertyResolver} from './types'\n\n/** @internal */\nexport function resolveConfigProperty<T>(\n prop: PkgConfigProperty<T> | undefined,\n initialValue: T\n): T {\n if (!prop) return initialValue\n\n if (typeof prop === 'function') {\n return (prop as PkgConfigPropertyResolver<T>)(initialValue)\n }\n\n return prop\n}\n","import {PkgConfigOptions} from './types'\n\n/** @public */\nexport function defineConfig(configOptions: PkgConfigOptions): PkgConfigOptions {\n return configOptions\n}\n","import {z} from 'zod'\nimport {PackageJSON} from './types'\n\nconst pkgSchema = z.object({\n type: z.enum(['commonjs', 'module']),\n name: z.string(),\n version: z.string(),\n license: z.string(),\n bin: z.optional(z.record(z.string())),\n dependencies: z.optional(z.record(z.string())),\n devDependencies: z.optional(z.record(z.string())),\n peerDependencies: z.optional(z.record(z.string())),\n source: z.optional(z.string()),\n main: z.optional(z.string()),\n browser: z.optional(z.record(z.string())),\n module: z.optional(z.string()),\n types: z.optional(z.string()),\n exports: z.optional(\n z.record(\n z.union([\n z.custom<`./${string}.json`>((val) => /^\\.\\/.*\\.json$/.test(val as string)),\n z.object({\n types: z.optional(z.string()),\n source: z.string(),\n browser: z.optional(\n z.object({\n source: z.string(),\n require: z.optional(z.string()),\n import: z.optional(z.string()),\n })\n ),\n node: z.optional(\n z.object({\n source: z.string(),\n require: z.optional(z.string()),\n import: z.optional(z.string()),\n })\n ),\n require: z.optional(z.string()),\n import: z.optional(z.string()),\n default: z.string(),\n }),\n ])\n )\n ),\n browserslist: z.optional(z.array(z.string())),\n})\n\nexport function validatePkg(input: unknown): PackageJSON {\n const pkg = pkgSchema.parse(input)\n\n return {...pkg, type: pkg.type || 'commonjs'}\n}\n","import fs from 'fs/promises'\nimport pkgUp from 'pkg-up'\nimport {PackageJSON} from './types'\nimport {validatePkg} from './validatePkg'\n\n/** @internal */\nexport async function loadPkg(options: {cwd: string}): Promise<PackageJSON> {\n const {cwd} = options\n\n const pkgPath = await pkgUp({cwd})\n\n if (!pkgPath) throw new Error('no package.json found')\n\n const buf = await fs.readFile(pkgPath)\n\n return validatePkg(JSON.parse(buf.toString()))\n}\n","import chalk from 'chalk'\nimport {ZodError} from 'zod'\nimport {Logger} from '../../logger'\nimport {loadPkg} from './loadPkg'\nimport {PackageJSON} from './types'\n\n/** @internal */\nexport async function loadPkgWithReporting(options: {\n cwd: string\n logger: Logger\n}): Promise<PackageJSON> {\n const {cwd, logger} = options\n\n try {\n return await loadPkg({cwd})\n } catch (err) {\n if (err instanceof ZodError) {\n for (const issue of err.issues) {\n if (issue.code === 'invalid_type') {\n logger.error(\n [\n `\\`${formatPath(issue.path)}\\` `,\n `in \\`./package.json\\` must be of type ${chalk.magenta(issue.expected)} `,\n `(received ${chalk.magenta(issue.received)})`,\n ].join('')\n )\n }\n }\n } else {\n logger.error(err)\n }\n\n process.exit(1)\n }\n}\n\nfunction formatPath(segments: Array<string | number>) {\n return segments\n .map((s, idx) => {\n if (idx === 0) return s\n\n if (typeof s === 'number') {\n return `[${s}]`\n }\n\n if (s.startsWith('.')) {\n return `[\"${s}\"]`\n }\n\n return `.${s}`\n })\n .join('')\n}\n","import {PkgExport} from '../config'\nimport {MODULE_EXT} from '../constants'\nimport {PackageJSON} from './types'\n\nexport function validateExports(\n _exports: (PkgExport & {_path: string})[],\n options: {pkg: PackageJSON}\n): string[] {\n const {pkg} = options\n const ext = MODULE_EXT[pkg.type]\n\n const errors: string[] = []\n\n for (const exp of _exports) {\n if (exp.require && !exp.require.endsWith(ext.commonjs)) {\n errors.push(\n `package.json with \\`type: \"${pkg.type}\"\\` - \\`exports[\"${exp._path}\"].require\\` must end with \"${ext.commonjs}\"`\n )\n }\n\n if (exp.import && !exp.import.endsWith(ext.esm)) {\n errors.push(\n `package.json with \\`type: \"${pkg.type}\"\\` - \\`exports[\"${exp._path}\"].import\\` must end with \"${ext.esm}\"`\n )\n }\n }\n\n return errors\n}\n","import {PkgExport} from '../config'\nimport {isRecord} from '../isRecord'\nimport {PackageJSON} from './types'\nimport {validateExports} from './validateExports'\n\n/** @internal */\nexport function parseExports(options: {\n pkg: PackageJSON\n strict: boolean\n}): (PkgExport & {_path: string})[] {\n const {pkg, strict} = options\n\n const rootExport: PkgExport & {_path: string} = {\n _exported: true,\n _path: '.',\n types: pkg.types,\n source: pkg.source || '',\n browser: pkg.browser && {\n source: pkg.source || '',\n require: pkg.main && pkg.browser[pkg.main],\n import: pkg.module && pkg.browser[pkg.module],\n },\n import: pkg.module,\n require: pkg.main,\n default: pkg.module || pkg.main || '',\n }\n\n const extraExports: (PkgExport & {_path: string})[] = []\n\n const errors: string[] = []\n\n if (pkg.exports) {\n if (strict && !pkg.exports['./package.json']) {\n errors.push('package.json: `exports[\"./package.json\"] must be declared.')\n }\n\n for (const [exportPath, exportEntry] of Object.entries(pkg.exports)) {\n if (exportPath.endsWith('.json')) {\n if (exportPath === './package.json') {\n if (exportEntry !== './package.json') {\n errors.push('package.json: `exports[\"./package.json\"] must be \"./package.json\".')\n }\n }\n } else if (isRecord(exportEntry)) {\n if (exportPath === '.') {\n if (\n exportEntry.require &&\n rootExport.require &&\n exportEntry.require !== rootExport.require\n ) {\n errors.push(\n 'package.json: mismatch between \"main\" and \"exports.require\". These must be equal.'\n )\n }\n\n if (exportEntry.import && rootExport.import && exportEntry.import !== rootExport.import) {\n errors.push(\n 'package.json: mismatch between \"module\" and \"exports.import\" These must be equal.'\n )\n }\n\n if (exportEntry.types && rootExport.types && exportEntry.types !== rootExport.types) {\n errors.push(\n 'package.json: mismatch between \"types\" and \"exports.types\". These must be equal.'\n )\n }\n\n if (exportEntry.source && rootExport.source && exportEntry.source !== rootExport.source) {\n errors.push(\n 'package.json: mismatch between \"source\" and \"exports.source\". These must be equal.'\n )\n }\n\n Object.assign(rootExport, exportEntry)\n } else {\n const extraExport: PkgExport & {_path: string} = {\n _exported: true,\n _path: exportPath,\n ...exportEntry,\n }\n\n extraExports.push(extraExport)\n }\n } else {\n errors.push('package.json: exports must be an object')\n }\n }\n }\n\n const _exports = [rootExport, ...extraExports]\n\n errors.push(...validateExports(_exports, {pkg}))\n\n if (errors.length) {\n throw new Error('\\n- ' + errors.join('\\n- '))\n }\n\n return _exports\n}\n","import ts from 'typescript'\n\n/** @internal */\nexport async function loadTSConfig(options: {\n cwd: string\n tsconfigPath: string\n}): Promise<ts.ParsedCommandLine> {\n const {cwd, tsconfigPath} = options\n\n const configPath = ts.findConfigFile(cwd, ts.sys.fileExists, tsconfigPath)\n\n if (!configPath) {\n throw new Error(`could not find a valid '${tsconfigPath}'`)\n }\n\n const configFile = ts.readConfigFile(configPath, ts.sys.readFile)\n\n return ts.parseJsonConfigFileContent(configFile.config, ts.sys, cwd)\n}\n","import chalk from 'chalk'\n\n/** @internal */\nexport interface Logger {\n log: (...args: unknown[]) => void\n info: (...args: unknown[]) => void\n warn: (...args: unknown[]) => void\n error: (...args: unknown[]) => void\n success: (...args: unknown[]) => void\n}\n\n/** @internal */\nexport function createLogger(): Logger {\n return {\n /* eslint-disable no-console */\n log: (...args) => {\n console.log(...args)\n },\n info: (...args) => {\n console.log(chalk.blue('[info]'), ...args)\n },\n warn: (...args) => {\n console.log(chalk.yellow('[warning]'), ...args)\n },\n error: (...args) => {\n console.log(chalk.red('[error]'), ...args)\n },\n success: (...args) => {\n console.log(chalk.green('[success]'), ...args)\n },\n /* eslint-enable no-console */\n }\n}\n","import path from 'path'\n\nexport function pathContains(containerPath: string, itemPath: string): boolean {\n return !path.relative(containerPath, itemPath).startsWith('..')\n}\n\nexport function findCommonDirPath(filePaths: string[]): string | undefined {\n let ret: string | undefined = undefined\n\n for (const filePath of filePaths) {\n let dirPath = path.dirname(filePath)\n\n if (!ret) {\n ret = dirPath\n continue\n }\n\n while (dirPath !== ret) {\n dirPath = path.dirname(dirPath)\n\n if (dirPath === ret) {\n break\n }\n\n if (pathContains(dirPath, ret)) {\n ret = dirPath\n break\n }\n\n if (dirPath === '.') return undefined\n }\n }\n\n return ret\n}\n","import browserslist from 'browserslist'\n\nexport interface PackageTargetVersions {\n chrome: string[]\n ff: string[]\n edge: string[]\n iosSaf: string[]\n saf: string[]\n opera: string[]\n node: string[]\n}\n\nfunction sortAsNumber(a: string, b: string) {\n const aVersion = Number(a)\n const bVersion = Number(b)\n\n return aVersion - bVersion\n}\n\nexport function resolveBrowserslistVersions(query: string[]): PackageTargetVersions {\n const result = browserslist(query)\n\n const entries = result.map((key) => {\n const [name, version] = key.split(' ')\n\n return {name, version: version.split('-')[0].split('.')[0]}\n })\n\n const andChr = entries.filter((b) => b.name === 'and_chr')\n const andFf = entries.filter((b) => b.name === 'and_ff')\n const chrome = entries.filter((b) => b.name === 'chrome')\n const edge = entries.filter((b) => b.name === 'edge')\n const ff = entries.filter((b) => b.name === 'firefox')\n const iosSaf = entries.filter((b) => b.name === 'ios_saf')\n const saf = entries.filter((b) => b.name === 'safari')\n const opera = entries.filter((b) => b.name === 'opera')\n const node = entries.filter((b) => b.name === 'node')\n\n // versions\n const versions: PackageTargetVersions = {\n chrome: andChr.concat(chrome).map((b) => b.version),\n ff: andFf.concat(ff).map((b) => b.version),\n edge: edge.map((b) => b.version),\n iosSaf: iosSaf.map((b) => b.version),\n saf: saf.map((b) => b.version),\n opera: opera.map((b) => b.version),\n node: node.map((b) => b.version),\n }\n\n // sort\n versions.chrome.sort(sortAsNumber)\n versions.ff.sort(sortAsNumber)\n versions.edge.sort(sortAsNumber)\n versions.iosSaf.sort(sortAsNumber)\n versions.saf.sort(sortAsNumber)\n versions.opera.sort(sortAsNumber)\n versions.node.sort(sortAsNumber)\n\n return versions\n}\n","import {PackageTargetVersions} from './resolveBrowserslistVersions'\n\nexport function resolveBrowserTarget(versions: PackageTargetVersions): string[] | undefined {\n const target: string[] = []\n\n if (versions.chrome.length) {\n target.push(`chrome${versions.chrome[0]}`)\n }\n\n if (versions.ff.length) {\n target.push(`firefox${versions.ff[0]}`)\n }\n\n if (versions.edge.length) {\n target.push(`edge${versions.edge[0]}`)\n }\n\n if (versions.iosSaf.length) {\n target.push(`ios${versions.iosSaf[0]}`)\n }\n\n if (versions.saf.length) {\n target.push(`safari${versions.saf[0]}`)\n }\n\n if (versions.opera.length) {\n target.push(`opera${versions.opera[0]}`)\n }\n\n if (target.length === 0) {\n return undefined\n }\n\n return target\n}\n","import {PackageTargetVersions} from './resolveBrowserslistVersions'\n\nexport function resolveNodeTarget(versions: PackageTargetVersions): string[] | undefined {\n const target: string[] = []\n\n if (versions.node.length) {\n target.push(`node${versions.node[0]}`)\n }\n\n if (target.length === 0) {\n return undefined\n }\n\n return target\n}\n","import path from 'path'\nimport {\n PkgConfigOptions,\n PkgExports,\n PkgRuntime,\n BuildContext,\n DEFAULT_BROWSERSLIST_QUERY,\n loadTSConfig,\n PackageJSON,\n parseExports,\n resolveConfigProperty,\n} from './core'\nimport {findCommonDirPath, pathContains} from './core/findCommonPath'\nimport {Logger} from './logger'\nimport {resolveBrowserslistVersions} from './resolveBrowserslistVersions'\nimport {resolveBrowserTarget} from './resolveBrowserTarget'\nimport {resolveNodeTarget} from './resolveNodeTarget'\n\nexport async function resolveBuildContext(options: {\n config?: PkgConfigOptions\n cwd: string\n emitDeclarationOnly?: boolean\n logger: Logger\n pkg: PackageJSON\n strict: boolean\n tsconfig: string\n}): Promise<BuildContext> {\n const {\n config,\n cwd,\n emitDeclarationOnly = false,\n logger,\n pkg,\n strict,\n tsconfig: tsconfigPath,\n } = options\n const tsconfig = await loadTSConfig({cwd, tsconfigPath})\n const targetVersions = resolveBrowserslistVersions(pkg.browserslist || DEFAULT_BROWSERSLIST_QUERY)\n const nodeTarget = resolveNodeTarget(targetVersions)\n const webTarget = resolveBrowserTarget(targetVersions)\n\n if (!nodeTarget) {\n throw new Error('no matching `node` target')\n }\n\n if (!webTarget) {\n throw new Error('no matching `web` target')\n }\n\n const target: Record<PkgRuntime, string[]> = {\n '*': webTarget.concat(nodeTarget),\n browser: webTarget,\n node: nodeTarget,\n }\n\n const parsedExports = parseExports({pkg, strict}).reduce<PkgExports>((acc, x) => {\n const {_path: exportPath, ...exportEntry} = x\n\n return {...acc, [exportPath]: exportEntry}\n }, {})\n\n const exports = resolveConfigProperty(config?.exports, parsedExports)\n\n const parsedExternal = [\n ...(pkg.dependencies ? Object.keys(pkg.dependencies) : []),\n ...(pkg.peerDependencies ? Object.keys(pkg.peerDependencies) : []),\n ]\n\n // Merge externals if an array is provided, replace if it's a function\n const external =\n config && Array.isArray(config.external)\n ? [...parsedExternal, ...config.external]\n : resolveConfigProperty(config?.external, parsedExternal)\n\n const outputPaths = Object.values(exports)\n .flatMap((exportEntry) => {\n return [\n exportEntry.import,\n exportEntry.require,\n exportEntry.browser?.import,\n exportEntry.browser?.require,\n exportEntry.node?.import,\n exportEntry.node?.require,\n ].filter(Boolean) as string[]\n })\n .map((p) => path.resolve(cwd, p))\n\n const commonDistPath = findCommonDirPath(outputPaths)\n\n if (commonDistPath === cwd) {\n throw new Error(\n 'all output files must share a common parent directory which is not the root package directory'\n )\n }\n\n if (commonDistPath && !pathContains(cwd, commonDistPath)) {\n throw new Error('all output files must be located within the package')\n }\n\n const configDistPath = config?.dist ? path.resolve(cwd, config.dist) : undefined\n\n if (\n configDistPath &&\n commonDistPath &&\n configDistPath !== commonDistPath &&\n !pathContains(configDistPath, commonDistPath)\n ) {\n logger.log(`did you mean to configure \\`dist: './${path.relative(cwd, commonDistPath)}'\\`?`)\n\n throw new Error('all output files must be located with the configured `dist` path')\n }\n\n const distPath = configDistPath || commonDistPath\n\n if (!distPath) {\n throw new Error('could not detect `dist` path')\n }\n\n const ctx: BuildContext = {\n config,\n cwd,\n distPath,\n emitDeclarationOnly,\n exports,\n external,\n files: [],\n logger,\n pkg,\n runtime: config?.runtime ?? '*',\n strict,\n target,\n ts: {\n config: tsconfig,\n configPath: tsconfigPath,\n },\n }\n\n return ctx\n}\n","import fs from 'fs'\nimport path from 'path'\nimport {PkgExport, PkgFormat, PkgRuntime, BuildContext} from './core'\nimport {BuildTask, DtsTask, RollupTask, RollupTaskEntry} from './tasks'\n\n/** @internal */\nexport function resolveBuildTasks(ctx: BuildContext): BuildTask[] {\n const {config, cwd, pkg, target} = ctx\n\n const bundles = config?.bundles || []\n\n const tasks: BuildTask[] = []\n\n const exports = Object.entries(ctx.exports || {}).map(\n ([_path, exp]) => ({_path, ...exp} as PkgExport & {_path: string})\n )\n\n const dtsTask: DtsTask = {\n type: 'build:dts',\n entries: [],\n }\n\n const rollupTasks: Record<string, RollupTask> = {}\n\n function addRollupTaskEntry(format: PkgFormat, runtime: PkgRuntime, entry: RollupTaskEntry) {\n const buildId = `${format}:${runtime}`\n\n if (rollupTasks[buildId]) {\n rollupTasks[buildId].entries.push(entry)\n } else {\n rollupTasks[buildId] = {\n type: 'build:js',\n buildId,\n entries: [entry],\n runtime,\n format,\n target: target[runtime],\n }\n }\n }\n\n // Parse `dts` tasks\n for (const exp of exports) {\n const importId = path.join(pkg.name, exp._path)\n\n if (exp.types) {\n dtsTask.entries.push({\n importId,\n exportPath: exp._path,\n sourcePath: exp.source,\n targetPath: exp.types,\n })\n }\n }\n\n // Add dts task\n if (dtsTask.entries.length) {\n tasks.push(dtsTask)\n }\n\n if (!ctx.emitDeclarationOnly) {\n // Parse rollup:commonjs:* tasks\n for (const exp of exports) {\n const output = exp.require\n\n if (!output) continue\n\n addRollupTaskEntry('commonjs', ctx.runtime, {\n path: exp._path,\n source: exp.source,\n output,\n })\n }\n\n // Parse rollup:esm:* tasks\n for (const exp of exports) {\n const output = exp.import\n\n if (!output) continue\n\n addRollupTaskEntry('esm', ctx.runtime, {\n path: exp._path,\n source: exp.source,\n output,\n })\n }\n\n // Parse rollup:commonjs:browser tasks\n for (const exp of exports) {\n const output = exp.browser?.require\n\n if (!output) continue\n\n addRollupTaskEntry('commonjs', 'browser', {\n path: exp._path,\n source: exp.browser?.source || exp.source,\n output,\n })\n }\n\n // Parse rollup:esm:browser tasks\n for (const exp of exports) {\n const output = exp.browser?.import\n\n if (!output) continue\n\n addRollupTaskEntry('esm', 'browser', {\n path: exp._path,\n source: exp.browser?.source || exp.source,\n output,\n })\n }\n\n for (const bundle of bundles) {\n if (bundle.require) {\n addRollupTaskEntry('commonjs', bundle.runtime || ctx.runtime, {\n path: '__bundle__',\n source: bundle.source,\n output: bundle.require,\n })\n }\n\n if (bundle.import) {\n addRollupTaskEntry('commonjs', bundle.runtime || ctx.runtime, {\n path: '__bundle__',\n source: bundle.source,\n output: bundle.import,\n })\n }\n }\n\n tasks.push(...Object.values(rollupTasks))\n\n // Write legacy exports files\n if (config?.legacyExports) {\n for (const exp of exports) {\n if (exp._exported && exp._path !== '.') {\n const relativeTargetPath = (exp.browser?.import || exp.import || '').replace(\n /\\.[^/.]+$/,\n ''\n )\n\n if (relativeTargetPath) {\n fs.writeFileSync(\n path.resolve(cwd, `${exp._path}.js`),\n [`// AUTO-GENERATED – DO NOT EDIT`, `export * from '${relativeTargetPath}'`, ``].join(\n '\\n'\n )\n )\n }\n }\n }\n }\n }\n\n return tasks\n}\n","/* eslint-disable no-console */\n\nimport chalk from 'chalk'\n\nexport function createSpinner(msg: string): {complete: () => void; error: () => void} {\n const startTime = Date.now()\n\n console.log(msg)\n\n return {\n complete: () => {\n console.log(`${chalk.green('[success]')} ${chalk.gray(`${Date.now() - startTime}ms`)}`)\n },\n error: () => {\n console.log(`${chalk.red(`[error]`)} ${chalk.gray(`${Date.now() - startTime}ms`)}`)\n },\n }\n}\n","import path from 'path'\nimport {ExtractorMessage} from '@microsoft/api-extractor'\nimport chalk from 'chalk'\nimport {BuildContext} from './core'\n\nexport function printExtractMessages(ctx: BuildContext, messages: ExtractorMessage[]): void {\n const {cwd, logger} = ctx\n\n const warnings = messages.filter((msg) => msg.logLevel === 'warning')\n\n if (warnings.length) {\n logger.log()\n }\n\n for (const msg of warnings) {\n const sourceFilePath = msg.sourceFilePath && path.relative(cwd, msg.sourceFilePath)\n\n if (msg.messageId === 'TS6307') {\n // Ignore this warning:\n // > TS6307: <filename> is not in project file list.\n // > Projects must list all files or use an 'include' pattern.\n continue\n }\n\n logger.log(\n [\n `${chalk.cyan(sourceFilePath || '?')}`,\n `:${chalk.yellow(msg.sourceFileLine)}:${chalk.yellow(msg.sourceFileColumn)}`,\n ` - ${chalk.yellow('warning')} ${chalk.gray(msg.messageId)}\\n`,\n msg.text,\n '\\n',\n ].join('')\n )\n }\n\n const errors: ExtractorMessage[] = messages.filter((msg) => msg.logLevel === 'error')\n\n if (!warnings.length && errors.length) {\n logger.log('')\n }\n\n for (const msg of errors) {\n const sourceFilePath = msg.sourceFilePath && path.relative(cwd, msg.sourceFilePath)\n\n logger.log(\n [\n `${chalk.cyan(sourceFilePath || '?')}`,\n `:${chalk.yellow(msg.sourceFileLine)}:${chalk.yellow(msg.sourceFileColumn)}`,\n ` - ${chalk.red('error')} ${chalk.gray(msg.messageId)}\\n`,\n msg.text,\n '\\n',\n ].join('')\n )\n }\n\n if (errors.length) {\n process.exit(1)\n }\n}\n","/* eslint-disable no-console */\n\nimport ts from 'typescript'\n\nexport const formatHost: ts.FormatDiagnosticsHost = {\n getCurrentDirectory: () => ts.sys.getCurrentDirectory(),\n getNewLine: () => ts.sys.newLine,\n getCanonicalFileName: ts.sys.useCaseSensitiveFileNames ? (f) => f : (f) => f.toLowerCase(),\n}\n\n/** @internal */\nexport async function buildTypes(options: {\n cwd: string\n outDir: string\n tsconfig: ts.ParsedCommandLine\n strict: boolean\n}): Promise<void> {\n const {outDir, tsconfig, strict = false} = options\n\n const compilerOptions: ts.CompilerOptions = {\n ...tsconfig.options,\n declaration: true,\n declarationDir: outDir,\n emitDeclarationOnly: true,\n noEmit: false,\n outDir,\n }\n\n const program = ts.createProgram(tsconfig.fileNames, compilerOptions)\n\n const emitResult = program.emit()\n\n const allDiagnostics = ts.getPreEmitDiagnostics(program).concat(emitResult.diagnostics)\n\n // TODO: improve logging\n allDiagnostics.forEach((diagnostic) => {\n if (diagnostic.file && diagnostic.start) {\n const {line, character} = ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start)\n const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n')\n\n console.log(`${diagnostic.file.fileName} ${line + 1}:${character + 1}\\n${message}`)\n } else {\n console.log(ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n'))\n }\n })\n\n if (emitResult.emitSkipped) {\n const errors = allDiagnostics.filter((diag) => diag.category === ts.DiagnosticCategory.Error)\n\n if (errors.length) {\n console.error(ts.formatDiagnostics(errors, formatHost))\n\n if (strict) {\n throw new Error('failed to compile TypeScript definitions')\n }\n }\n }\n}\n","import {ExtractorMessage} from '@microsoft/api-extractor'\n\n/** @internal */\nexport class DtsError extends Error {\n messages: ExtractorMessage[]\n\n constructor(message: string, messages: ExtractorMessage[]) {\n super(message)\n this.messages = messages\n }\n}\n","import path from 'path'\nimport {IConfigFile, IExtractorMessagesConfig} from '@microsoft/api-extractor'\n\nexport function createApiExtractorConfig(options: {\n distPath: string\n exportPath: string\n filePath: string\n messages: IExtractorMessagesConfig\n projectFolder: string\n mainEntryPointFilePath: string\n tsconfigPath: string\n}): IConfigFile {\n const {\n distPath,\n exportPath,\n filePath,\n messages,\n projectFolder,\n mainEntryPointFilePath,\n tsconfigPath,\n } = options\n\n return {\n apiReport: {\n enabled: false,\n reportFileName: '<unscopedPackageName>.api.md',\n },\n // bundledPackages: [],\n compiler: {\n tsconfigFilePath: tsconfigPath,\n },\n docModel: {\n enabled: false,\n apiJsonFilePath: path.resolve(distPath, `${exportPath}.api.json`),\n },\n dtsRollup: {\n enabled: true,\n untrimmedFilePath: path.resolve(distPath, filePath),\n // betaTrimmedFilePath: path.resolve(distPath, filePath.replace('.d.ts', '-beta.d.ts')),\n // publicTrimmedFilePath: path.resolve(distPath, filePath.replace('.d.ts', '-public.d.ts')),\n },\n tsdocMetadata: {\n enabled: false,\n },\n messages,\n mainEntryPointFilePath,\n projectFolder,\n }\n}\n","import {readFile} from 'fs/promises'\nimport {TSDocConfigFile} from '@microsoft/tsdoc-config'\nimport {parse} from 'jsonc-parser'\n\n/** @public */\nexport interface TSDocCustomTag {\n name: string\n syntaxKind: 'block' | 'modifier'\n allowMultiple?: boolean\n}\n\n/** @internal */\nexport async function createTSDocConfig(opts: {\n customTags: TSDocCustomTag[]\n}): Promise<TSDocConfigFile | undefined> {\n const {customTags} = opts\n\n if (customTags.length === 0) {\n return undefined\n }\n\n const tsDocBaseBuf = await readFile(\n require.resolve('@microsoft/api-extractor/extends/tsdoc-base.json')\n )\n\n // Include the definitions that are required for API Extractor\n // extends: ['@microsoft/api-extractor/extends/tsdoc-base.json'],\n const tsDocBaseConfig = parse(tsDocBaseBuf.toString())\n\n // Define custom tags and specify how they should be parsed\n const tagDefinitions = (tsDocBaseConfig.tagDefinitions || []).concat(\n customTags.map((t) => ({\n tagName: `@${t.name}`,\n syntaxKind: t.syntaxKind,\n allowMultiple: t.allowMultiple,\n }))\n )\n\n // Indicate that custom tags are supported by your tooling.\n // (Without this, warnings may be reported saying that a tag is unsupported.)\n const supportForTags = {...tsDocBaseConfig.supportForTags}\n\n for (const customTag of customTags) {\n supportForTags[`@${customTag.name}`] = true\n }\n\n return TSDocConfigFile.loadFromObject({\n ...tsDocBaseConfig,\n noStandardTags: false,\n tagDefinitions,\n supportForTags,\n })\n}\n","import type {File} from '@babel/types'\nimport {ExtractorResult} from '@microsoft/api-extractor'\nimport {parse, print} from 'recast'\nimport typeScriptParser from 'recast/parsers/typescript'\nimport {Program} from 'typescript'\n\n/**\n * A workaround to find all module blocks in extract TS files.\n * @internal\n * */\nexport async function extractModuleBlocksFromTypes({\n tsOutDir,\n extractResult,\n}: {\n tsOutDir: string\n extractResult: ExtractorResult\n}): Promise<string[]> {\n const program = extractResult.compilerState.program as Program\n const moduleBlocks: string[] = []\n\n // all program files, including node_modules\n const allProgramFiles = [...program.getSourceFiles()]\n\n // just our compiled files used in the program\n const sourceFiles = allProgramFiles.filter((sourceFile) => sourceFile.fileName.includes(tsOutDir))\n\n for (const sourceFile of sourceFiles) {\n if (sourceFile.text.includes('declare module')) {\n moduleBlocks.push(...extractModuleBlocks(sourceFile.text))\n }\n }\n\n return moduleBlocks\n}\n\n/** @internal */\nexport function extractModuleBlocks(fileContent: string): string[] {\n const ast = parse(fileContent, {\n parser: typeScriptParser,\n }) as File\n\n return ast.program.body\n .filter((node) => node.type === 'TSModuleDeclaration')\n .map((node) => print(node).code)\n}\n","import {ExtractorLogLevel, IExtractorMessagesConfig} from '@microsoft/api-extractor'\nimport {PkgRuleLevel, PkgConfigOptions} from '../../core'\n\nconst LOG_LEVELS: Record<PkgRuleLevel, ExtractorLogLevel> = {\n error: 'error' as ExtractorLogLevel.Error,\n info: 'info' as ExtractorLogLevel.Info,\n off: 'none' as ExtractorLogLevel.None,\n warn: 'warning' as ExtractorLogLevel.Warning,\n}\n\n/** @internal */\nexport function getExtractMessagesConfig(options: {\n rules: NonNullable<PkgConfigOptions['extract']>['rules']\n}): IExtractorMessagesConfig {\n const {rules} = options\n\n function ruleToLogLevel(\n key: keyof NonNullable<NonNullable<PkgConfigOptions['extract']>['rules']>,\n defaultLevel?: ExtractorLogLevel\n ) {\n const r = rules?.[key]\n\n return (r ? LOG_LEVELS[r] : defaultLevel || 'warning') as ExtractorLogLevel\n }\n\n return {\n compilerMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n },\n },\n\n extractorMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n\n 'ae-forgotten-export': {\n logLevel: ruleToLogLevel('ae-forgotten-export', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-incompatible-release-tags': {\n logLevel: ruleToLogLevel('ae-incompatible-release-tags', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-internal-missing-underscore': {\n logLevel: ruleToLogLevel('ae-internal-missing-underscore'),\n addToApiReportFile: false,\n },\n\n 'ae-missing-release-tag': {\n logLevel: ruleToLogLevel('ae-missing-release-tag', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-wrong-input-file-type': {\n logLevel: 'none' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n },\n\n tsdocMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n\n 'tsdoc-link-tag-unescaped-text': {\n logLevel: ruleToLogLevel('tsdoc-link-tag-unescaped-text', 'warning' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'tsdoc-undefined-tag': {\n logLevel: ruleToLogLevel('tsdoc-undefined-tag', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'tsdoc-unsupported-tag': {\n logLevel: ruleToLogLevel('tsdoc-unsupported-tag', 'none' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n },\n }\n}\n","import fs from 'fs/promises'\nimport path from 'path'\nimport {\n Extractor,\n ExtractorConfig,\n ExtractorMessage,\n ExtractorResult,\n} from '@microsoft/api-extractor'\nimport mkdirp from 'mkdirp'\nimport prettier from 'prettier'\nimport {PkgConfigOptions, BuildFile} from '../../core'\nimport {createApiExtractorConfig} from './createApiExtractorConfig'\nimport {createTSDocConfig} from './createTSDocConfig'\nimport {extractModuleBlocksFromTypes} from './extractModuleBlocks'\nimport {getExtractMessagesConfig} from './getExtractMessagesConfig'\n\nexport async function extractTypes(options: {\n customTags: NonNullable<PkgConfigOptions['extract']>['customTags']\n cwd: string\n distPath: string\n exportPath: string\n filePath: string\n files: BuildFile[]\n projectPath: string\n rules?: NonNullable<PkgConfigOptions['extract']>['rules']\n sourceTypesPath: string\n tmpPath: string\n tsconfigPath: string\n}): Promise<{extractorResult: ExtractorResult; messages: ExtractorMessage[]}> {\n const {\n customTags,\n distPath,\n exportPath,\n files,\n filePath,\n projectPath,\n rules,\n sourceTypesPath,\n tmpPath,\n tsconfigPath,\n } = options\n\n const tsdocConfigFile = await createTSDocConfig({\n customTags: customTags || [],\n })\n\n const extractorConfig: ExtractorConfig = ExtractorConfig.prepare({\n configObject: createApiExtractorConfig({\n distPath,\n exportPath,\n filePath,\n messages: getExtractMessagesConfig({rules}),\n projectFolder: projectPath,\n mainEntryPointFilePath: sourceTypesPath,\n tsconfigPath,\n }),\n configObjectFullPath: undefined,\n tsdocConfigFile,\n packageJsonFullPath: path.resolve(projectPath, 'package.json'),\n })\n\n const messages: ExtractorMessage[] = []\n\n // Invoke API Extractor\n const extractorResult = Extractor.invoke(extractorConfig, {\n // Equivalent to the \"--local\" command-line parameter\n localBuild: true,\n // Equivalent to the \"--verbose\" command-line parameter\n showVerboseMessages: true,\n // handle messages\n messageCallback(message: ExtractorMessage) {\n messages.push(message)\n message.handled = true\n },\n })\n\n const typesPath = path.resolve(distPath, filePath)\n const typesBuf = await fs.readFile(typesPath)\n const prettierConfig = await prettier.resolveConfig(typesPath)\n\n await mkdirp(path.dirname(typesPath))\n\n const moduleBlocks = await extractModuleBlocksFromTypes({\n extractResult: extractorResult,\n tsOutDir: tmpPath,\n })\n\n const code = [typesBuf.toString(), ...moduleBlocks].join('\\n\\n')\n\n await fs.writeFile(\n typesPath,\n prettier.format(code, {\n ...prettierConfig,\n filepath: typesPath,\n })\n )\n\n // Add to `files` in context\n files.push({\n type: 'types',\n path: typesPath,\n })\n\n return {extractorResult, messages}\n}\n","import path from 'path'\nimport {promisify} from 'util'\nimport {ExtractorMessage} from '@microsoft/api-extractor'\nimport rimrafCallback from 'rimraf'\nimport {BuildContext} from '../../core'\nimport {buildTypes} from './buildTypes'\nimport {DtsError} from './DtsError'\nimport {extractTypes} from './extractTypes'\nimport {DtsResult, DtsTask, DtsWatchTask} from './types'\n\nconst rimraf = promisify(rimrafCallback)\n\n/**\n * - Build type definitions to a temporary directory using TypeScript compiler.\n * - Create a type definition bundle for each export entry.\n * - When done, remove the temporary directory.\n */\nexport async function doExtract(\n ctx: BuildContext,\n task: DtsTask | DtsWatchTask\n): Promise<DtsResult> {\n const {config, cwd, files, strict, ts} = ctx\n\n if (!ts.config || !ts.configPath) {\n return {type: 'dts', messages: [], results: []}\n }\n\n const {outDir, rootDir = cwd} = ts.config.options\n\n if (!outDir) {\n throw new Error('tsconfig.json is missing `compilerOptions.outDir`')\n }\n\n const tmpPath = path.resolve(outDir, '__tmp__')\n\n await buildTypes({cwd, outDir: tmpPath, strict, tsconfig: ts.config})\n const messages: ExtractorMessage[] = []\n\n const results: {sourcePath: string; filePath: string}[] = []\n\n for (const entry of task.entries) {\n const exportPath = entry.exportPath === '.' ? './index' : entry.exportPath\n\n const sourceTypesPath = path.resolve(\n tmpPath,\n path.relative(rootDir, path.resolve(cwd, entry.sourcePath)).replace(/\\.ts$/, '.d.ts')\n )\n\n const targetPath = path.resolve(cwd, entry.targetPath)\n const filePath = path.relative(outDir, targetPath)\n const result = await extractTypes({\n customTags: config?.extract?.customTags,\n cwd,\n distPath: outDir,\n exportPath,\n files,\n filePath: filePath,\n projectPath: cwd,\n rules: config?.extract?.rules,\n sourceTypesPath: sourceTypesPath,\n tmpPath,\n tsconfigPath: path.resolve(cwd, ts.configPath || 'tsconfig.json'),\n })\n\n messages.push(...result.messages)\n\n if (result.messages.some((msg) => msg.logLevel === 'error')) {\n await rimraf(tmpPath)\n\n throw new DtsError('encountered errors when extracting types', result.messages)\n }\n\n results.push({sourcePath: path.resolve(cwd, entry.sourcePath), filePath: targetPath})\n }\n\n await rimraf(tmpPath)\n\n return {type: 'dts', messages, results}\n}\n","import chalk from 'chalk'\nimport {Observable} from 'rxjs'\nimport {printExtractMessages} from '../../printExtractMessages'\nimport {TaskHandler} from '../types'\nimport {doExtract} from './doExtract'\nimport {DtsError} from './DtsError'\nimport {DtsResult, DtsTask} from './types'\n\n/** @internal */\nexport const dtsTask: TaskHandler<DtsTask, DtsResult> = {\n name: (_ctx, task) =>\n [\n `Build type definitions...`,\n ` entries:`,\n ...task.entries.map((entry) =>\n [\n ` - ${chalk.cyan(entry.importId)}: `,\n `${chalk.yellow(entry.sourcePath)} ${chalk.gray('→')} ${chalk.yellow(entry.targetPath)}`,\n ].join('')\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return new Observable((observer) => {\n doExtract(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => {\n observer.error(err)\n })\n })\n },\n complete: (ctx, _task, result) => {\n printExtractMessages(ctx, result.messages)\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof DtsError) {\n printExtractMessages(ctx, err.messages)\n } else if (err instanceof Error) {\n logger.error(err)\n }\n },\n}\n","import chalk from 'chalk'\nimport {Observable} from 'rxjs'\nimport {printExtractMessages} from '../../printExtractMessages'\nimport {TaskHandler} from '../types'\nimport {doExtract} from './doExtract'\nimport {DtsError} from './DtsError'\nimport {DtsResult, DtsWatchTask} from './types'\n\n/** @internal */\nexport const dtsWatchTask: TaskHandler<DtsWatchTask, DtsResult> = {\n name: (_ctx, task) =>\n [\n `build type definitions`,\n ...task.entries.map(\n (entry) =>\n ` ${chalk.blue(entry.importId)}: ${entry.sourcePath} -> ${entry.targetPath}`\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return new Observable((observer) => {\n doExtract(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => observer.error(err))\n })\n },\n complete: (ctx, _task, result) => {\n const {logger} = ctx\n\n printExtractMessages(ctx, result.messages)\n\n logger.warn('watching typescript definitions is currently not supported')\n logger.log()\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof DtsError) {\n printExtractMessages(ctx, err.messages)\n } else if (err instanceof Error) {\n logger.error(err)\n }\n },\n}\n","import path from 'path'\nimport alias from '@rollup/plugin-alias'\nimport {getBabelOutputPlugin} from '@rollup/plugin-babel'\nimport commonjs from '@rollup/plugin-commonjs'\nimport json from '@rollup/plugin-json'\nimport {nodeResolve} from '@rollup/plugin-node-resolve'\nimport replace from '@rollup/plugin-replace'\nimport terser from '@rollup/plugin-terser'\nimport {InputOptions, OutputOptions, Plugin} from 'rollup'\nimport esbuild from 'rollup-plugin-esbuild'\nimport {\n BuildContext,\n DEFAULT_BROWSERSLIST_QUERY,\n MODULE_EXT,\n resolveConfigProperty,\n} from '../../core'\nimport {RollupTask, RollupWatchTask} from '../types'\n\nexport interface RollupConfig {\n inputOptions: InputOptions\n outputOptions: OutputOptions\n}\n\n/** @internal */\nexport function resolveRollupConfig(\n ctx: BuildContext,\n buildTask: RollupTask | RollupWatchTask\n): RollupConfig {\n const {format, runtime, target} = buildTask\n const {config, cwd, exports: _exports, external, distPath, logger, pkg, ts} = ctx\n const outputExt = MODULE_EXT[pkg.type][format]\n const minify = config?.minify ?? true\n const outDir = path.relative(cwd, distPath)\n\n const pathAliases = Object.fromEntries(\n Object.entries(ts.config?.options.paths || {}).map(([key, val]) => {\n return [key, path.resolve(cwd, ts.config?.options.baseUrl || '.', val[0])]\n })\n )\n\n const entries = buildTask.entries.map((entry) => {\n return {\n ...entry,\n name: path.relative(outDir, entry.output).replace(/\\.[^/.]+$/, ''),\n }\n }, {})\n\n const exportIds =\n _exports && Object.keys(_exports).map((exportPath) => path.join(pkg.name, exportPath))\n\n const sourcePaths = _exports && Object.values(_exports).map((e) => path.resolve(cwd, e.source))\n\n const replacements = Object.fromEntries(\n Object.entries(config?.define || {}).map(([key, val]) => [key, JSON.stringify(val)])\n )\n\n const defaultPlugins = [\n replace({\n preventAssignment: true,\n values: {\n ...(pkg.name === '@sanity/pkg-utils'\n ? {...replacements}\n : {\n 'process.env.PKG_FILE_PATH': (arg) => {\n const sourcePath = './' + path.relative(cwd, arg)\n const entry = entries.find((e) => e.source === sourcePath)\n\n if (!entry) {\n // eslint-disable-next-line no-console\n console.error(`could not find source entry: ${sourcePath}`)\n\n return 'null'\n }\n\n return JSON.stringify(\n path.relative(cwd, path.resolve(outDir, entry.name + outputExt))\n )\n },\n 'process.env.PKG_FORMAT': JSON.stringify(format),\n 'process.env.PKG_RUNTIME': JSON.stringify(runtime),\n 'process.env.PKG_VERSION': JSON.stringify(process.env.PKG_VERSION || pkg.version),\n ...replacements,\n }),\n },\n }),\n alias({\n entries: {...pathAliases},\n }),\n nodeResolve({\n // mainFields: ['module', 'jsnext', 'main'],\n browser: runtime === 'browser',\n // exportConditions: [runtime === 'node' ? 'node' : 'browser'],\n extensions: ['.cjs', '.mjs', '.js', '.jsx', '.json', '.node'],\n preferBuiltins: true, // runtime === 'node',\n }),\n commonjs({\n esmExternals: false,\n extensions: ['.js'],\n // include: /\\/node_modules\\//,\n // requireReturnsDefault: 'namespace',\n }),\n json(),\n esbuild({\n jsx: config?.jsx ?? 'automatic',\n jsxFactory: config?.jsxFactory ?? 'createElement',\n jsxFragment: config?.jsxFragment ?? 'Fragment',\n jsxImportSource: config?.jsxImportSource ?? 'react',\n target,\n tsconfig: ctx.ts.configPath || 'tsconfig.json',\n }),\n getBabelOutputPlugin({\n babelrc: false,\n plugins: ['@babel/plugin-proposal-object-rest-spread'],\n presets: [['@babel/preset-env', {targets: pkg.browserslist || DEFAULT_BROWSERSLIST_QUERY}]],\n }),\n minify &&\n terser({\n output: {\n comments: (_node, comment) => {\n const text = comment.value\n const type = comment.type\n\n // Check if this is a multiline comment\n if (type == 'comment2') {\n // Keep licensing comments\n return /@preserve|@license|@cc_on/i.test(text)\n }\n\n return false\n },\n },\n }),\n ].filter(Boolean) as Plugin[]\n\n const userPlugins = config?.rollup?.plugins\n\n const plugins = Array.isArray(userPlugins)\n ? defaultPlugins.concat(userPlugins)\n : resolveConfigProperty(config?.rollup?.plugins, defaultPlugins)\n\n return {\n inputOptions: {\n context: cwd,\n\n external: (id, importer) => {\n // Check if the id is a self-referencing import\n if (exportIds?.includes(id)) {\n return true\n }\n\n // Check if the id is a file path that points to an exported source file\n if (importer && (id.startsWith('.') || id.startsWith('/'))) {\n const idPath = path.resolve(path.dirname(importer), id)\n\n if (sourcePaths?.includes(idPath)) {\n logger.warn(\n `detected self-referencing import – treating as external: ${path.relative(\n cwd,\n idPath\n )}`\n )\n\n return true\n }\n }\n\n const idParts = id.split('/')\n\n const name = idParts[0].startsWith('@') ? `${idParts[0]}/${idParts[1]}` : idParts[0]\n\n if (name && external.includes(name)) {\n return true\n }\n\n return false\n },\n\n input: entries.reduce<{[entryAlias: string]: string}>((acc, entry) => {\n return {...acc, [entry.name]: entry.source}\n }, {}),\n\n plugins,\n\n treeshake: {\n propertyReadSideEffects: false,\n },\n },\n outputOptions: {\n chunkFileNames: () => `_chunks/[name]-[hash]${outputExt}`,\n compact: minify,\n dir: outDir,\n entryFileNames: () => `[name]${outputExt}`,\n esModule: true,\n format,\n interop: 'compat',\n minifyInternalExports: minify,\n sourcemap: config?.sourcemap ?? true,\n },\n }\n}\n","/* eslint-disable no-console */\n\nimport path from 'path'\nimport chalk from 'chalk'\nimport {rollup} from 'rollup'\nimport {Observable} from 'rxjs'\nimport {BuildContext} from '../../core'\nimport {RollupTask, TaskHandler} from '../types'\nimport {resolveRollupConfig} from './resolveRollupConfig'\n\n/** @internal */\nexport const rollupTask: TaskHandler<RollupTask> = {\n name: (ctx, task) =>\n [\n `Build javascript files...`,\n ` format: ${chalk.yellow(task.format)}`,\n ` target:`,\n ...task.target.map((t) => ` - ${chalk.yellow(t)}`),\n ` entries:`,\n ...task.entries.map((e) =>\n [\n ` - `,\n `${chalk.cyan(path.join(ctx.pkg.name, e.path))}: `,\n `${chalk.yellow(e.source)} ${chalk.gray('→')} ${chalk.yellow(e.output)}`,\n ].join('')\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return new Observable((observer) => {\n execPromise(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => observer.error(err))\n })\n },\n complete: () => {\n //\n },\n error: (_ctx, _task, err) => {\n if (err instanceof Error) {\n console.log(err)\n }\n },\n}\n\nfunction createSpyConsole() {\n const original = {\n log: console.log,\n warn: console.warn,\n error: console.error,\n }\n\n const messages: {type: 'log' | 'warn' | 'error'; args: unknown[]}[] = []\n\n console.log = (...args: unknown[]) => messages.push({type: 'log', args})\n console.warn = (...args: unknown[]) => messages.push({type: 'warn', args})\n console.error = (...args: unknown[]) => messages.push({type: 'error', args})\n\n return {\n messages,\n restore: () => {\n console.log = original.log\n console.warn = original.warn\n console.error = original.error\n },\n }\n}\n\nasync function execPromise(ctx: BuildContext, task: RollupTask) {\n const {distPath, files, logger} = ctx\n const outDir = path.relative(ctx.cwd, distPath)\n\n // Prevent rollup from printing warnings to the console\n const spyConsole = createSpyConsole()\n\n const {inputOptions, outputOptions} = resolveRollupConfig(ctx, task)\n\n // Create bundle\n const bundle = await rollup({\n ...inputOptions,\n onwarn(warning) {\n spyConsole.messages.push({type: 'warn', args: [warning.message]})\n },\n })\n\n // generate output specific code in-memory\n // you can call this function multiple times on the same bundle object\n const {output} = await bundle.generate(outputOptions)\n\n // Restore console\n spyConsole.restore()\n\n for (const msg of spyConsole.messages) {\n const text = String(msg.args[0])\n\n if (text.startsWith('Dynamic import can only')) {\n continue // ignore\n }\n\n if (text.startsWith('Sourcemap is likely to be incorrect')) {\n continue // ignore\n }\n\n if (msg.type === 'log') {\n logger.info(...msg.args)\n }\n\n if (msg.type === 'warn') {\n logger.warn(...msg.args)\n }\n\n if (msg.type === 'error') {\n logger.error(...msg.args)\n }\n }\n\n for (const chunkOrAsset of output) {\n if (chunkOrAsset.type === 'asset') {\n files.push({\n type: 'asset',\n path: path.resolve(outDir, chunkOrAsset.fileName),\n })\n } else {\n files.push({\n type: 'chunk',\n path: path.resolve(outDir, chunkOrAsset.fileName),\n })\n }\n }\n\n // or write the bundle to disk\n await bundle.write(outputOptions)\n\n // closes the bundle\n await bundle.close()\n}\n","import path from 'path'\nimport chalk from 'chalk'\nimport {RollupWatcherEvent, RollupWatchOptions, watch as rollupWatch} from 'rollup'\nimport {Observable} from 'rxjs'\nimport {RollupWatchTask, TaskHandler} from '../types'\nimport {resolveRollupConfig} from './resolveRollupConfig'\n\n/** @internal */\nexport const rollupWatchTask: TaskHandler<RollupWatchTask, RollupWatcherEvent> = {\n name: (ctx, task) =>\n `build javascript files (target ${task.target.join(' + ')}, format ${\n task.format\n })\\n ${task.entries\n .map((e) => `${chalk.blue(path.join(ctx.pkg.name, e.path))}: ${e.source} -> ${e.output}`)\n .join('\\n ')}`,\n exec: (ctx, task) => {\n const {inputOptions, outputOptions} = resolveRollupConfig(ctx, task)\n\n return new Observable((observer) => {\n const watchOptions: RollupWatchOptions = {\n ...inputOptions,\n output: outputOptions,\n }\n\n const watcher = rollupWatch(watchOptions)\n\n watcher.on('event', (event) => {\n observer.next(event)\n })\n\n return () => {\n watcher.close()\n }\n })\n },\n complete: (ctx, task, event) => {\n const {logger} = ctx\n\n if (event.code === 'BUNDLE_END') {\n logger.success(\n `build javascript files (target ${task.target.join(' + ')}, format ${\n task.format\n })\\n ${task.entries\n .map((e) => `${chalk.blue(path.join(ctx.pkg.name, e.path))}: ${e.source} -> ${e.output}`)\n .join('\\n ')}`\n )\n logger.log('')\n\n return\n }\n\n if (event.code === 'BUNDLE_START') {\n return\n }\n\n if (event.code === 'END') {\n return\n }\n\n if (event.code === 'ERROR') {\n logger.error(event.code, event)\n\n return\n }\n\n if (event.code === 'START') {\n return\n }\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof Error) {\n logger.log(err)\n }\n },\n}\n","import {dtsTask, dtsWatchTask} from './dts'\nimport {rollupTask, rollupWatchTask} from './rollup'\nimport {BuildTaskHandlers, WatchTaskHandlers} from './types'\n\nexport * from './types'\nexport * from './dts'\nexport * from './rollup'\n\n/** @internal */\nexport const buildTaskHandlers: BuildTaskHandlers = {\n 'build:dts': dtsTask,\n 'build:js': rollupTask,\n}\n\n/** @internal */\nexport const watchTaskHandlers: WatchTaskHandlers = {\n 'watch:dts': dtsWatchTask,\n 'watch:js': rollupWatchTask,\n}\n","import {loadConfig, loadPkgWithReporting} from './core'\nimport {createLogger} from './logger'\nimport {resolveBuildContext} from './resolveBuildContext'\nimport {resolveBuildTasks} from './resolveBuildTasks'\nimport {createSpinner} from './spinner'\nimport {BuildTask, TaskHandler, buildTaskHandlers} from './tasks'\n\n/**\n * Build the distribution files of a npm package.\n *\n * @example\n * ```ts\n * import {build} from '@sanity/pkg-utils'\n *\n * build({\n * cwd: process.cwd(),\n * tsconfig: 'tsconfig.dist.json,\n * }).then(() => {\n * console.log('successfully built')\n * }).catch((err) => {\n * console.log(`build error: ${err.message}`)\n * })\n * ```\n *\n * @public\n */\nexport async function build(options: {\n cwd: string\n emitDeclarationOnly?: boolean\n strict?: boolean\n tsconfig?: string\n}): Promise<void> {\n const {cwd, emitDeclarationOnly, strict = false, tsconfig: tsconfigOption} = options\n const logger = createLogger()\n\n const pkg = await loadPkgWithReporting({cwd, logger})\n const config = await loadConfig({cwd})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n\n const ctx = await resolveBuildContext({\n config,\n cwd,\n emitDeclarationOnly,\n logger,\n pkg,\n strict,\n tsconfig,\n })\n\n const buildTasks = resolveBuildTasks(ctx)\n\n for (const task of buildTasks) {\n const handler = buildTaskHandlers[task.type] as TaskHandler<BuildTask>\n const taskName = handler.name(ctx, task)\n\n const spinner = createSpinner(taskName)\n\n try {\n const result = await handler.exec(ctx, task).toPromise()\n\n spinner.complete()\n ctx.logger.log()\n\n handler.complete(ctx, task, result)\n } catch (err) {\n spinner.error()\n\n if (err instanceof Error) {\n const RE_CWD = new RegExp(`${cwd}`, 'g')\n\n ctx.logger.error(err.message.replace(RE_CWD, '.'))\n ctx.logger.log()\n }\n\n handler.error(ctx, task, err)\n\n process.exit(1)\n }\n }\n}\n","import {statSync} from 'fs'\nimport prettyBytes from 'pretty-bytes'\n\nexport function getFilesize(file: string): string {\n const stats = statSync(file)\n\n return prettyBytes(stats.size)\n}\n","import fs from 'fs'\nimport path from 'path'\nimport chalk from 'chalk'\nimport treeify from 'treeify'\nimport {PkgExport, BuildContext} from './core'\nimport {getFilesize} from './getFilesize'\n\nexport function fileExists(file: string): boolean {\n try {\n fs.accessSync(file)\n\n return true\n } catch (_) {\n return false\n }\n}\n\nfunction getFileInfo(cwd: string, filePath: string) {\n const p = path.resolve(cwd, filePath)\n const exists = fileExists(p)\n const size = exists ? getFilesize(p) : undefined\n\n return {exists, size}\n}\n\nexport function printPackageTree(ctx: BuildContext): void {\n const {cwd, exports, logger, pkg} = ctx\n\n if (!exports) return\n\n logger.log(`${chalk.blue(pkg.name)}@${chalk.green(pkg.version)}`)\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const tree: Record<string, unknown> = {type: chalk.yellow(pkg.type)}\n\n if (pkg.bin) {\n tree.bin = Object.fromEntries(\n Object.entries(pkg.bin).map(([name, file]) => [chalk.cyan(name), fileInfo(file)])\n )\n }\n\n function fileInfo(file: string) {\n const info = getFileInfo(cwd, file)\n\n if (!info.size) {\n return `${chalk.gray(file)} ${chalk.red('does not exist')}`\n }\n\n return `${chalk.yellow(file)} ${chalk.gray(info.size)}`\n }\n\n tree.exports = Object.fromEntries(\n Object.entries(exports)\n .filter(([, entry]) => entry._exported)\n .map(([exportPath, entry]) => {\n const exp: Omit<PkgExport, '_exported'> = {\n types: undefined,\n source: fileInfo(entry.source),\n browser: undefined,\n node: undefined,\n import: undefined,\n require: undefined,\n default: fileInfo(entry.default),\n }\n\n if (entry.types) {\n exp.types = fileInfo(entry.types)\n } else {\n delete exp.types\n }\n\n if (entry.browser) {\n exp.browser = {source: fileInfo(entry.browser.source)}\n\n if (entry.browser.import) exp.browser.import = fileInfo(entry.browser.import)\n if (entry.browser.require) exp.browser.require = fileInfo(entry.browser.require)\n } else {\n delete exp.browser\n }\n\n if (entry.node) {\n exp.node = {source: fileInfo(entry.node.source)}\n\n if (entry.node.import) exp.node.import = fileInfo(entry.node.import)\n if (entry.node.require) exp.node.require = fileInfo(entry.node.require)\n } else {\n delete exp.node\n }\n\n if (entry.import) {\n exp.import = fileInfo(entry.import)\n } else {\n delete exp.import\n }\n\n if (entry.require) {\n exp.require = fileInfo(entry.require)\n } else {\n delete exp.require\n }\n\n return [chalk.cyan(path.join(pkg.name, exportPath)), exp]\n })\n )\n\n logger.log(treeify.asTree(tree as Record<string, any>, true, true))\n}\n","import path from 'path'\nimport esbuild, {BuildFailure} from 'esbuild'\nimport {loadConfig, loadPkgWithReporting} from './core'\nimport {createLogger} from './logger'\nimport {fileExists, printPackageTree} from './printPackageTree'\nimport {resolveBuildContext} from './resolveBuildContext'\n\n/** @public */\nexport async function check(options: {\n cwd: string\n strict?: boolean\n tsconfig?: string\n}): Promise<void> {\n const {cwd, strict = false, tsconfig: tsconfigOption} = options\n const logger = createLogger()\n\n const pkg = await loadPkgWithReporting({cwd, logger})\n const config = await loadConfig({cwd})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n const ctx = await resolveBuildContext({config, cwd, logger, pkg, strict, tsconfig})\n\n printPackageTree(ctx)\n\n if (strict) {\n const missingFiles: string[] = []\n\n // Check if there are missing files\n for (const [, exp] of Object.entries(ctx.exports || {})) {\n if (exp.source && !fileExists(path.resolve(cwd, exp.source))) {\n missingFiles.push(exp.source)\n }\n\n if (exp.require && !fileExists(path.resolve(cwd, exp.require))) {\n missingFiles.push(exp.require)\n }\n\n if (exp.import && !fileExists(path.resolve(cwd, exp.import))) {\n missingFiles.push(exp.import)\n }\n\n if (exp.types && !fileExists(path.resolve(cwd, exp.types))) {\n missingFiles.push(exp.types)\n }\n }\n\n if (missingFiles.length) {\n logger.error('missing files')\n process.exit(1)\n }\n\n // Check if the files are resolved\n const _paths: {require: string[]; import: string[]} = {\n require: [],\n import: [],\n }\n\n for (const exp of Object.values(ctx.exports || {})) {\n if (!exp._exported) continue\n if (exp.require) _paths.require.push(exp.require)\n if (exp.import) _paths.import.push(exp.import)\n }\n\n const external = Object.keys(pkg.dependencies || {}).concat(\n Object.keys(pkg.devDependencies || {})\n )\n\n if (_paths.import.length) {\n const code = _paths.import.map((id) => `import('${id}')`).join('\\n')\n\n try {\n const esbuildResult = await esbuild.build({\n external,\n stdin: {\n contents: code,\n loader: 'js',\n resolveDir: cwd,\n },\n format: 'esm',\n bundle: true,\n logLevel: 'silent',\n // otherwise output maps to stdout as we're using stdin\n outfile: '/dev/null',\n platform: 'node',\n })\n\n if (esbuildResult.warnings.length > 0) {\n logger.warn(...esbuildResult.warnings)\n }\n } catch (err) {\n const {errors} = err as BuildFailure\n\n for (const _err of errors) {\n if (_err.location) {\n logger.error(_err.detail || _err.text)\n logger.error(`${_err.location.line} | ${_err.location.lineText}`)\n logger.error(\n 'in',\n `./${_err.location.file}:${_err.location.line}:${_err.location.column}`\n )\n } else {\n logger.error(_err.detail || _err.text)\n }\n\n logger.log()\n }\n\n process.exit(1)\n }\n }\n\n if (_paths.require.length) {\n const code = _paths.require.map((id) => `require('${id}')`).join('\\n')\n\n const esbuildResult = await esbuild.build({\n external,\n stdin: {\n contents: code,\n loader: 'js',\n resolveDir: cwd,\n },\n format: 'cjs',\n bundle: true,\n // otherwise output maps to stdout as we're using stdin\n outfile: '/dev/null',\n platform: 'node',\n })\n\n if (esbuildResult.errors.length > 0) {\n // throw new Error(esbuildResult.errors.join(', '))\n logger.error(esbuildResult.errors.join(', '))\n process.exit(1)\n }\n\n if (esbuildResult.warnings.length > 0) {\n logger.warn(...esbuildResult.warnings)\n }\n }\n }\n}\n","import fs from 'fs'\nimport path from 'path'\nimport {PkgExport, PkgFormat, PkgRuntime, BuildContext} from './core'\nimport {WatchTask, DtsWatchTask, RollupWatchTask, RollupTaskEntry} from './tasks'\n\n/** @internal */\nexport function resolveWatchTasks(ctx: BuildContext): WatchTask[] {\n const {config, cwd, pkg, target} = ctx\n const tasks: WatchTask[] = []\n\n const exports = Object.entries(ctx.exports || {}).map(\n ([_path, exp]) => ({_path, ...exp} as PkgExport & {_path: string})\n )\n\n const dtsTask: DtsWatchTask = {\n type: 'watch:dts',\n entries: [],\n }\n\n const rollupTasks: Record<string, RollupWatchTask> = {}\n\n function addRollupTaskEntry(format: PkgFormat, runtime: PkgRuntime, entry: RollupTaskEntry) {\n const buildId = `${format}:${runtime}`\n\n if (rollupTasks[buildId]) {\n rollupTasks[buildId].entries.push(entry)\n } else {\n rollupTasks[buildId] = {\n type: 'watch:js',\n buildId,\n entries: [entry],\n runtime,\n format,\n target: target[runtime],\n }\n }\n }\n\n // Parse `dts` tasks\n for (const exp of exports) {\n const importId = path.join(pkg.name, exp._path)\n\n if (exp.types) {\n dtsTask.entries.push({\n importId,\n exportPath: exp._path,\n sourcePath: exp.source,\n targetPath: exp.types,\n })\n }\n }\n\n // Parse rollup:commonjs:* tasks\n for (const exp of exports) {\n const output = exp.require\n\n if (!output) continue\n\n addRollupTaskEntry('commonjs', ctx.runtime, {\n path: exp._path,\n source: exp.source,\n output,\n })\n }\n\n // Parse rollup:commonjs:browser tasks\n for (const exp of exports) {\n const output = exp.browser?.require\n\n if (!output) continue\n\n addRollupTaskEntry('commonjs', 'browser', {\n path: exp._path,\n source: exp.browser?.source || exp.source,\n output,\n })\n }\n\n // Parse rollup:esm:* tasks\n for (const exp of exports) {\n const output = exp.import\n\n if (!output) continue\n\n addRollupTaskEntry('esm', ctx.runtime, {\n path: exp._path,\n source: exp.source,\n output,\n })\n }\n\n // Parse rollup:esm:browser tasks\n for (const exp of exports) {\n const output = exp.browser?.import\n\n if (!output) continue\n\n addRollupTaskEntry('esm', 'browser', {\n path: exp._path,\n source: exp.browser?.source || exp.source,\n output,\n })\n }\n\n if (dtsTask.entries.length) {\n tasks.push(dtsTask)\n }\n\n tasks.push(...Object.values(rollupTasks))\n\n // Write legacy exports files\n if (config?.legacyExports) {\n for (const exp of exports) {\n if (exp._exported && exp._path !== '.') {\n const relativeTargetPath = (exp.browser?.import || exp.import || '').replace(\n /\\.[^/.]+$/,\n ''\n )\n\n if (relativeTargetPath) {\n fs.writeFileSync(\n path.resolve(cwd, `${exp._path}.js`),\n [`// AUTO-GENERATED – DO NOT EDIT`, `export * from '${relativeTargetPath}'`, ``].join(\n '\\n'\n )\n )\n }\n }\n }\n }\n\n return tasks\n}\n","import globby from 'globby'\n\nexport function globFiles(patterns: string[]): Promise<string[]> {\n return globby(patterns)\n}\n","import chokidar from 'chokidar'\nimport {Observable} from 'rxjs'\n\nexport interface FileEvent {\n type: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir'\n file: string\n}\n\nexport function watchFiles(patterns: string[]): Observable<FileEvent> {\n return new Observable((observer) => {\n const watcher = chokidar.watch(patterns, {\n ignoreInitial: true,\n })\n\n function handleFileEvent(\n type: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir',\n file: string\n ) {\n observer.next({type, file})\n }\n\n watcher.on('all', handleFileEvent)\n\n return () => {\n watcher.off('all', handleFileEvent)\n watcher.close()\n }\n })\n}\n","import path from 'path'\nimport {Observable} from 'rxjs'\nimport {distinctUntilChanged, scan, startWith} from 'rxjs/operators'\nimport {globFiles} from './globFiles'\nimport {Logger} from './logger'\nimport {watchFiles} from './watchFiles'\n\nexport async function watchConfigFiles(options: {\n cwd: string\n logger: Logger\n}): Promise<Observable<string[]>> {\n const {cwd, logger} = options\n\n const initialFiles = await globFiles([\n path.resolve(cwd, 'package.json'),\n path.resolve(cwd, 'package.config.cjs'),\n path.resolve(cwd, 'package.config.js'),\n path.resolve(cwd, 'package.config.ts'),\n ])\n\n const fileEvent$ = watchFiles([\n path.resolve(cwd, 'package.json'),\n path.resolve(cwd, 'package.config.cjs'),\n path.resolve(cwd, 'package.config.js'),\n path.resolve(cwd, 'package.config.ts'),\n ])\n\n return fileEvent$.pipe(\n scan((files, fileEvent) => {\n if (fileEvent.type === 'add') {\n return files.concat(fileEvent.file)\n }\n\n if (fileEvent.type === 'unlink') {\n return files.filter((f) => f !== fileEvent.file)\n }\n\n if (fileEvent.type === 'change') {\n logger.log(\n '--------------------------------------------------------------------------------'\n )\n logger.info(path.relative(cwd, fileEvent.file), 'changed')\n logger.log('')\n\n return files.slice(0) // trigger update\n }\n\n return files\n }, initialFiles),\n startWith(initialFiles),\n distinctUntilChanged()\n )\n}\n","import path from 'path'\nimport {switchMap} from 'rxjs'\nimport {loadConfig, loadPkgWithReporting} from './core'\nimport {createLogger} from './logger'\nimport {resolveBuildContext} from './resolveBuildContext'\nimport {resolveWatchTasks} from './resolveWatchTasks'\nimport {WatchTask, TaskHandler, watchTaskHandlers} from './tasks'\nimport {watchConfigFiles} from './watchConfigFiles'\n\n/** @public */\nexport async function watch(options: {\n cwd: string\n strict?: boolean\n tsconfig?: string\n}): Promise<void> {\n const {cwd, strict = false, tsconfig: tsconfigOption} = options\n\n const logger = createLogger()\n\n const configFiles$ = await watchConfigFiles({cwd, logger})\n\n const ctx$ = configFiles$.pipe(\n switchMap(async (configFiles) => {\n const files = configFiles.map((f) => path.relative(cwd, f))\n\n const packageJsonPath = files.find((f) => f === 'package.json')\n\n if (!packageJsonPath) {\n throw new Error('missing package.json')\n }\n\n const pkg = await loadPkgWithReporting({cwd, logger})\n const config = await loadConfig({cwd})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n\n return resolveBuildContext({config, cwd, logger, pkg, strict, tsconfig})\n })\n )\n\n ctx$.subscribe(async (ctx) => {\n const watchTasks = resolveWatchTasks(ctx)\n\n for (const task of watchTasks) {\n const handler = watchTaskHandlers[task.type] as TaskHandler<WatchTask, unknown>\n const result$ = handler.exec(ctx, task)\n\n result$.subscribe({\n error: (err) => {\n ctx.logger.error(err)\n ctx.logger.log()\n\n process.exit(1)\n },\n next: (result) => {\n handler.complete(ctx, task, result)\n },\n complete: () => {\n ctx.logger.success(handler.name(ctx, task))\n ctx.logger.log()\n },\n })\n }\n })\n}\n"],"names":["MODULE_EXT","commonjs","esm","module","DEFAULT_BROWSERSLIST_QUERY","isRecord","value","Boolean","Array","isArray","CONFIG_FILE_NAMES","findConfigFile","cwd","pkgJsonPath","findConfig","pkgPath","path","dirname","fileName","configPath","resolve","exists","fileExists","filePath","stat","_","loadConfig","options","pkgUp","root","configFile","startsWith","esbuildOptions","extensions","unregister","globalThis","__DEV__","register","mod","require","default","resolveConfigProperty","prop","initialValue","defineConfig","configOptions","pkgSchema","z","object","type","enum","name","string","version","license","bin","optional","record","dependencies","devDependencies","peerDependencies","source","main","browser","types","exports","union","custom","val","test","import","node","browserslist","array","validatePkg","input","pkg","parse","loadPkg","Error","buf","fs","readFile","JSON","toString","loadPkgWithReporting","logger","err","ZodError","issue","issues","code","error","formatPath","chalk","magenta","expected","received","join","process","exit","segments","map","s","idx","validateExports","_exports","ext","errors","exp","endsWith","push","_path","parseExports","strict","rootExport","_exported","extraExports","exportPath","exportEntry","Object","entries","assign","extraExport","length","loadTSConfig","tsconfigPath","ts","sys","readConfigFile","parseJsonConfigFileContent","config","createLogger","log","console","info","args","blue","warn","yellow","red","success","green","pathContains","containerPath","itemPath","relative","findCommonDirPath","filePaths","ret","dirPath","sortAsNumber","a","b","aVersion","Number","bVersion","resolveBrowserslistVersions","query","result","key","split","andChr","filter","andFf","chrome","edge","ff","iosSaf","saf","opera","versions","concat","sort","resolveBrowserTarget","target","resolveNodeTarget","resolveBuildContext","emitDeclarationOnly","tsconfig","targetVersions","nodeTarget","webTarget","parsedExports","reduce","acc","x","parsedExternal","keys","external","outputPaths","values","flatMap","_a","_b","_c","_d","p","commonDistPath","configDistPath","dist","distPath","ctx","files","runtime","resolveBuildTasks","_e","bundles","tasks","dtsTask","rollupTasks","addRollupTaskEntry","format","entry","buildId","importId","sourcePath","targetPath","output","bundle","legacyExports","relativeTargetPath","replace","writeFileSync","createSpinner","msg","startTime","Date","now","complete","gray","printExtractMessages","messages","warnings","logLevel","sourceFilePath","messageId","cyan","sourceFileLine","sourceFileColumn","text","formatHost","getCurrentDirectory","getNewLine","newLine","getCanonicalFileName","useCaseSensitiveFileNames","f","toLowerCase","buildTypes","outDir","compilerOptions","declaration","declarationDir","noEmit","program","createProgram","fileNames","emitResult","emit","allDiagnostics","getPreEmitDiagnostics","diagnostics","forEach","diagnostic","file","start","line","character","getLineAndCharacterOfPosition","message","flattenDiagnosticMessageText","messageText","emitSkipped","diag","category","DiagnosticCategory","formatDiagnostics","DtsError","constructor","createApiExtractorConfig","projectFolder","mainEntryPointFilePath","apiReport","enabled","reportFileName","compiler","tsconfigFilePath","docModel","apiJsonFilePath","dtsRollup","untrimmedFilePath","tsdocMetadata","createTSDocConfig","opts","customTags","tsDocBaseBuf","tsDocBaseConfig","tagDefinitions","t","tagName","syntaxKind","allowMultiple","supportForTags","customTag","TSDocConfigFile","loadFromObject","noStandardTags","extractModuleBlocksFromTypes","tsOutDir","extractResult","compilerState","moduleBlocks","allProgramFiles","getSourceFiles","sourceFiles","sourceFile","includes","extractModuleBlocks","fileContent","ast","parser","typeScriptParser","body","print","LOG_LEVELS","off","getExtractMessagesConfig","rules","ruleToLogLevel","defaultLevel","r","compilerMessageReporting","extractorMessageReporting","addToApiReportFile","tsdocMessageReporting","extractTypes","projectPath","sourceTypesPath","tmpPath","tsdocConfigFile","extractorConfig","ExtractorConfig","prepare","configObject","configObjectFullPath","packageJsonFullPath","extractorResult","Extractor","invoke","localBuild","showVerboseMessages","messageCallback","handled","typesPath","typesBuf","prettierConfig","prettier","resolveConfig","mkdirp","writeFile","filepath","rimraf","promisify","rimrafCallback","doExtract","task","results","rootDir","extract","some","_ctx","exec","Observable","observer","then","next","catch","_task","dtsWatchTask","resolveRollupConfig","buildTask","outputExt","minify","pathAliases","fromEntries","paths","baseUrl","exportIds","sourcePaths","e","replacements","define","stringify","defaultPlugins","preventAssignment","arg","find","env","PKG_VERSION","alias","nodeResolve","preferBuiltins","esmExternals","json","esbuild","jsx","jsxFactory","jsxFragment","jsxImportSource","getBabelOutputPlugin","babelrc","plugins","presets","targets","terser","comments","_node","comment","userPlugins","rollup","inputOptions","context","id","importer","idPath","idParts","treeshake","propertyReadSideEffects","outputOptions","chunkFileNames","compact","dir","entryFileNames","esModule","interop","minifyInternalExports","sourcemap","rollupTask","execPromise","createSpyConsole","original","restore","spyConsole","onwarn","warning","generate","String","chunkOrAsset","write","close","rollupWatchTask","watchOptions","watcher","rollupWatch","on","event","buildTaskHandlers","watchTaskHandlers","build","tsconfigOption","buildTasks","handler","taskName","spinner","toPromise","RE_CWD","RegExp","getFilesize","stats","statSync","prettyBytes","size","accessSync","getFileInfo","printPackageTree","tree","fileInfo","treeify","asTree","check","missingFiles","_paths","esbuildResult","stdin","contents","loader","resolveDir","outfile","platform","_err","location","detail","lineText","column","resolveWatchTasks","globFiles","patterns","globby","watchFiles","chokidar","watch","ignoreInitial","handleFileEvent","watchConfigFiles","initialFiles","fileEvent$","pipe","scan","fileEvent","slice","startWith","distinctUntilChanged","configFiles$","ctx$","switchMap","configFiles","packageJsonPath","subscribe","watchTasks","result$"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/node/core/defaults.ts","../src/node/core/isRecord.ts","../src/node/core/config/findConfigFile.ts","../src/node/core/config/loadConfig.ts","../src/node/core/config/resolveConfigProperty.ts","../src/node/core/config/defineConfig.ts","../src/node/core/pkg/validatePkg.ts","../src/node/core/pkg/loadPkg.ts","../src/node/core/pkg/loadPkgWithReporting.ts","../src/node/core/pkg/validateExports.ts","../src/node/core/pkg/parseExports.ts","../src/node/core/pkg/pkgExt.ts","../src/node/core/ts/loadTSConfig.ts","../src/node/logger.ts","../src/node/core/findCommonPath.ts","../src/node/resolveBrowserslistVersions.ts","../src/node/resolveBrowserTarget.ts","../src/node/resolveNodeTarget.ts","../src/node/resolveBuildContext.ts","../src/node/resolveBuildTasks.ts","../src/node/spinner.ts","../src/node/printExtractMessages.ts","../src/node/tasks/dts/printDiagnostic.ts","../src/node/tasks/dts/buildTypes.ts","../src/node/tasks/dts/DtsError.ts","../src/node/tasks/dts/createApiExtractorConfig.ts","../src/node/tasks/dts/createTSDocConfig.ts","../src/node/tasks/dts/extractModuleBlocks.ts","../src/node/tasks/dts/getExtractMessagesConfig.ts","../src/node/tasks/dts/extractTypes.ts","../src/node/tasks/dts/doExtract.ts","../src/node/tasks/dts/dtsTask.ts","../src/node/tasks/dts/dtsWatchTask.ts","../src/node/tasks/rollup/consoleSpy.ts","../src/node/tasks/rollup/resolveRollupConfig.ts","../src/node/tasks/rollup/rollupTask.ts","../src/node/tasks/rollup/rollupWatchTask.ts","../src/node/tasks/index.ts","../src/node/build.ts","../src/node/getFilesize.ts","../src/node/printPackageTree.ts","../src/node/check.ts","../src/node/resolveWatchTasks.ts","../src/node/globFiles.ts","../src/node/watchFiles.ts","../src/node/watchConfigFiles.ts","../src/node/watch.ts"],"sourcesContent":["/** @public */\nexport const DEFAULT_BROWSERSLIST_QUERY = [\n '> 0.2% and supports es6-module and supports es6-module-dynamic-import',\n 'not dead',\n 'not IE 11',\n 'maintained node versions',\n]\n","/** @internal */\nexport function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && !Array.isArray(value) && typeof value === 'object'\n}\n","import {stat} from 'fs/promises'\nimport path from 'path'\nimport findConfig from 'find-config'\n\nconst CONFIG_FILE_NAMES = [\n 'package.config.ts',\n 'package.config.js',\n 'package.config.cjs',\n 'package.config.mjs',\n]\n\nexport async function findConfigFile(cwd: string): Promise<string | undefined> {\n const pkgJsonPath = findConfig('package.json', {cwd})\n\n if (!pkgJsonPath) return undefined\n\n const pkgPath = path.dirname(pkgJsonPath)\n\n for (const fileName of CONFIG_FILE_NAMES) {\n const configPath = path.resolve(pkgPath, fileName)\n\n const exists = await fileExists(configPath)\n\n if (exists) {\n return configPath\n }\n }\n\n return undefined\n}\n\nasync function fileExists(filePath: string) {\n try {\n await stat(filePath)\n\n return true\n } catch (_) {\n return false\n }\n}\n","import path from 'path'\nimport {register} from 'esbuild-register/dist/node'\nimport pkgUp from 'pkg-up'\nimport {findConfigFile} from './findConfigFile'\nimport {PkgConfigOptions} from './types'\n\n/** @internal */\nexport async function loadConfig(options: {cwd: string}): Promise<PkgConfigOptions | undefined> {\n const {cwd} = options\n\n const pkgPath = await pkgUp({cwd})\n\n if (!pkgPath) return undefined\n\n const root = path.dirname(pkgPath)\n\n const configFile = await findConfigFile(root)\n\n if (!configFile) {\n return undefined\n }\n\n // Do not accept config files outside of the root\n if (!configFile.startsWith(cwd)) {\n return undefined\n }\n\n const esbuildOptions = {extensions: ['.js', '.mjs', '.ts']}\n\n const {unregister} = globalThis.__DEV__ ? {unregister: () => undefined} : register(esbuildOptions)\n\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const mod = require(configFile)\n\n unregister()\n\n return mod?.default || mod || undefined\n}\n","import {PkgConfigProperty, PkgConfigPropertyResolver} from './types'\n\n/** @internal */\nexport function resolveConfigProperty<T>(\n prop: PkgConfigProperty<T> | undefined,\n initialValue: T\n): T {\n if (!prop) return initialValue\n\n if (typeof prop === 'function') {\n return (prop as PkgConfigPropertyResolver<T>)(initialValue)\n }\n\n return prop\n}\n","import {PkgConfigOptions} from './types'\n\n/** @public */\nexport function defineConfig(configOptions: PkgConfigOptions): PkgConfigOptions {\n return configOptions\n}\n","import {z} from 'zod'\nimport {PackageJSON} from './types'\n\nconst pkgSchema = z.object({\n type: z.enum(['commonjs', 'module']),\n name: z.string(),\n version: z.string(),\n license: z.string(),\n bin: z.optional(z.record(z.string())),\n dependencies: z.optional(z.record(z.string())),\n devDependencies: z.optional(z.record(z.string())),\n peerDependencies: z.optional(z.record(z.string())),\n source: z.optional(z.string()),\n main: z.optional(z.string()),\n browser: z.optional(z.record(z.string())),\n module: z.optional(z.string()),\n types: z.optional(z.string()),\n exports: z.optional(\n z.record(\n z.union([\n z.custom<`./${string}.json`>((val) => /^\\.\\/.*\\.json$/.test(val as string)),\n z.object({\n types: z.optional(z.string()),\n source: z.string(),\n browser: z.optional(\n z.object({\n source: z.string(),\n require: z.optional(z.string()),\n import: z.optional(z.string()),\n })\n ),\n node: z.optional(\n z.object({\n source: z.string(),\n require: z.optional(z.string()),\n import: z.optional(z.string()),\n })\n ),\n require: z.optional(z.string()),\n import: z.optional(z.string()),\n default: z.string(),\n }),\n ])\n )\n ),\n browserslist: z.optional(z.array(z.string())),\n})\n\nexport function validatePkg(input: unknown): PackageJSON {\n const pkg = pkgSchema.parse(input)\n\n return {...pkg, type: pkg.type || 'commonjs'}\n}\n","import fs from 'fs/promises'\nimport pkgUp from 'pkg-up'\nimport {PackageJSON} from './types'\nimport {validatePkg} from './validatePkg'\n\n/** @internal */\nexport async function loadPkg(options: {cwd: string}): Promise<PackageJSON> {\n const {cwd} = options\n\n const pkgPath = await pkgUp({cwd})\n\n if (!pkgPath) throw new Error('no package.json found')\n\n const buf = await fs.readFile(pkgPath)\n\n return validatePkg(JSON.parse(buf.toString()))\n}\n","import chalk from 'chalk'\nimport {ZodError} from 'zod'\nimport {Logger} from '../../logger'\nimport {loadPkg} from './loadPkg'\nimport {PackageJSON} from './types'\n\n/** @internal */\nexport async function loadPkgWithReporting(options: {\n cwd: string\n logger: Logger\n}): Promise<PackageJSON> {\n const {cwd, logger} = options\n\n try {\n return await loadPkg({cwd})\n } catch (err) {\n if (err instanceof ZodError) {\n for (const issue of err.issues) {\n if (issue.code === 'invalid_type') {\n logger.error(\n [\n `\\`${formatPath(issue.path)}\\` `,\n `in \\`./package.json\\` must be of type ${chalk.magenta(issue.expected)} `,\n `(received ${chalk.magenta(issue.received)})`,\n ].join('')\n )\n }\n }\n } else {\n logger.error(err)\n }\n\n process.exit(1)\n }\n}\n\nfunction formatPath(segments: Array<string | number>) {\n return segments\n .map((s, idx) => {\n if (idx === 0) return s\n\n if (typeof s === 'number') {\n return `[${s}]`\n }\n\n if (s.startsWith('.')) {\n return `[\"${s}\"]`\n }\n\n return `.${s}`\n })\n .join('')\n}\n","import {PkgExport} from '../config'\nimport {PkgExtMap} from './pkgExt'\nimport {PackageJSON} from './types'\n\nexport function validateExports(\n _exports: (PkgExport & {_path: string})[],\n options: {extMap: PkgExtMap; pkg: PackageJSON}\n): string[] {\n const {extMap, pkg} = options\n const ext = extMap[pkg.type]\n\n const errors: string[] = []\n\n for (const exp of _exports) {\n if (exp.require && !exp.require.endsWith(ext.commonjs)) {\n errors.push(\n `package.json with \\`type: \"${pkg.type}\"\\` - \\`exports[\"${exp._path}\"].require\\` must end with \"${ext.commonjs}\"`\n )\n }\n\n if (exp.import && !exp.import.endsWith(ext.esm)) {\n errors.push(\n `package.json with \\`type: \"${pkg.type}\"\\` - \\`exports[\"${exp._path}\"].import\\` must end with \"${ext.esm}\"`\n )\n }\n }\n\n return errors\n}\n","import {PkgExport} from '../config'\nimport {isRecord} from '../isRecord'\nimport {PkgExtMap} from './pkgExt'\nimport {PackageJSON} from './types'\nimport {validateExports} from './validateExports'\n\n/** @internal */\nexport function parseExports(options: {\n extMap: PkgExtMap\n pkg: PackageJSON\n strict: boolean\n}): (PkgExport & {_path: string})[] {\n const {extMap, pkg, strict} = options\n\n const rootExport: PkgExport & {_path: string} = {\n _exported: true,\n _path: '.',\n types: pkg.types,\n source: pkg.source || '',\n browser: pkg.browser && {\n source: pkg.source || '',\n require: pkg.main && pkg.browser[pkg.main],\n import: pkg.module && pkg.browser[pkg.module],\n },\n import: pkg.module,\n require: pkg.main,\n default: pkg.module || pkg.main || '',\n }\n\n const extraExports: (PkgExport & {_path: string})[] = []\n\n const errors: string[] = []\n\n if (pkg.exports) {\n if (strict && !pkg.exports['./package.json']) {\n errors.push('package.json: `exports[\"./package.json\"] must be declared.')\n }\n\n for (const [exportPath, exportEntry] of Object.entries(pkg.exports)) {\n if (exportPath.endsWith('.json')) {\n if (exportPath === './package.json') {\n if (exportEntry !== './package.json') {\n errors.push('package.json: `exports[\"./package.json\"] must be \"./package.json\".')\n }\n }\n } else if (isRecord(exportEntry)) {\n if (exportPath === '.') {\n if (\n exportEntry.require &&\n rootExport.require &&\n exportEntry.require !== rootExport.require\n ) {\n errors.push(\n 'package.json: mismatch between \"main\" and \"exports.require\". These must be equal.'\n )\n }\n\n if (exportEntry.import && rootExport.import && exportEntry.import !== rootExport.import) {\n errors.push(\n 'package.json: mismatch between \"module\" and \"exports.import\" These must be equal.'\n )\n }\n\n if (exportEntry.types && rootExport.types && exportEntry.types !== rootExport.types) {\n errors.push(\n 'package.json: mismatch between \"types\" and \"exports.types\". These must be equal.'\n )\n }\n\n if (exportEntry.source && rootExport.source && exportEntry.source !== rootExport.source) {\n errors.push(\n 'package.json: mismatch between \"source\" and \"exports.source\". These must be equal.'\n )\n }\n\n Object.assign(rootExport, exportEntry)\n } else {\n const extraExport: PkgExport & {_path: string} = {\n _exported: true,\n _path: exportPath,\n ...exportEntry,\n }\n\n extraExports.push(extraExport)\n }\n } else {\n errors.push('package.json: exports must be an object')\n }\n }\n }\n\n const _exports = [rootExport, ...extraExports]\n\n errors.push(...validateExports(_exports, {extMap, pkg}))\n\n if (errors.length) {\n throw new Error('\\n- ' + errors.join('\\n- '))\n }\n\n return _exports\n}\n","/** @internal */\nexport interface PkgExtMap {\n commonjs: {commonjs: string; esm: string}\n module: {commonjs: string; esm: string}\n}\n\n/** @internal */\nexport const DEFAULT_PKG_EXT_MAP: PkgExtMap = {\n // pkg.type: \"commonjs\"\n commonjs: {\n commonjs: '.js',\n esm: '.mjs',\n },\n\n // pkg.type: \"module\"\n module: {\n commonjs: '.cjs',\n esm: '.js',\n },\n}\n\n/** @internal */\nexport function getPkgExtMap(options: {legacyExports: boolean}): PkgExtMap {\n const {legacyExports} = options\n\n const ret = {...DEFAULT_PKG_EXT_MAP}\n\n // Fall back to legacy file extensions for package.json with `\"type\": \"commonjs\"`\n // NOTE: Not supported by Node 14+ and will be removed in a future version\n if (legacyExports) {\n ret['commonjs'] = {\n commonjs: '.js',\n esm: '.esm.js',\n }\n }\n\n return ret\n}\n","import ts from 'typescript'\n\n/** @internal */\nexport async function loadTSConfig(options: {\n cwd: string\n tsconfigPath: string\n}): Promise<ts.ParsedCommandLine> {\n const {cwd, tsconfigPath} = options\n\n const configPath = ts.findConfigFile(cwd, ts.sys.fileExists, tsconfigPath)\n\n if (!configPath) {\n throw new Error(`could not find a valid '${tsconfigPath}'`)\n }\n\n const configFile = ts.readConfigFile(configPath, ts.sys.readFile)\n\n return ts.parseJsonConfigFileContent(configFile.config, ts.sys, cwd)\n}\n","import chalk from 'chalk'\n\n/** @internal */\nexport interface Logger {\n log: (...args: unknown[]) => void\n info: (...args: unknown[]) => void\n warn: (...args: unknown[]) => void\n error: (...args: unknown[]) => void\n success: (...args: unknown[]) => void\n}\n\n/** @internal */\nexport function createLogger(): Logger {\n return {\n /* eslint-disable no-console */\n log: (...args) => {\n console.log(...args)\n },\n info: (...args) => {\n console.log(chalk.blue('[info]'), ...args)\n },\n warn: (...args) => {\n console.log(chalk.yellow('[warning]'), ...args)\n },\n error: (...args) => {\n console.log(chalk.red('[error]'), ...args)\n },\n success: (...args) => {\n console.log(chalk.green('[success]'), ...args)\n },\n /* eslint-enable no-console */\n }\n}\n","import path from 'path'\n\nexport function pathContains(containerPath: string, itemPath: string): boolean {\n return !path.relative(containerPath, itemPath).startsWith('..')\n}\n\nexport function findCommonDirPath(filePaths: string[]): string | undefined {\n let ret: string | undefined = undefined\n\n for (const filePath of filePaths) {\n let dirPath = path.dirname(filePath)\n\n if (!ret) {\n ret = dirPath\n continue\n }\n\n while (dirPath !== ret) {\n dirPath = path.dirname(dirPath)\n\n if (dirPath === ret) {\n break\n }\n\n if (pathContains(dirPath, ret)) {\n ret = dirPath\n break\n }\n\n if (dirPath === '.') return undefined\n }\n }\n\n return ret\n}\n","import browserslist from 'browserslist'\n\nexport interface PackageTargetVersions {\n chrome: string[]\n ff: string[]\n edge: string[]\n iosSaf: string[]\n saf: string[]\n opera: string[]\n node: string[]\n}\n\nfunction sortAsNumber(a: string, b: string) {\n const aVersion = Number(a)\n const bVersion = Number(b)\n\n return aVersion - bVersion\n}\n\nexport function resolveBrowserslistVersions(query: string[]): PackageTargetVersions {\n const result = browserslist(query)\n\n const entries = result.map((key) => {\n const [name, version] = key.split(' ')\n\n return {name, version: version.split('-')[0].split('.')[0]}\n })\n\n const andChr = entries.filter((b) => b.name === 'and_chr')\n const andFf = entries.filter((b) => b.name === 'and_ff')\n const chrome = entries.filter((b) => b.name === 'chrome')\n const edge = entries.filter((b) => b.name === 'edge')\n const ff = entries.filter((b) => b.name === 'firefox')\n const iosSaf = entries.filter((b) => b.name === 'ios_saf')\n const saf = entries.filter((b) => b.name === 'safari')\n const opera = entries.filter((b) => b.name === 'opera')\n const node = entries.filter((b) => b.name === 'node')\n\n // versions\n const versions: PackageTargetVersions = {\n chrome: andChr.concat(chrome).map((b) => b.version),\n ff: andFf.concat(ff).map((b) => b.version),\n edge: edge.map((b) => b.version),\n iosSaf: iosSaf.map((b) => b.version),\n saf: saf.map((b) => b.version),\n opera: opera.map((b) => b.version),\n node: node.map((b) => b.version),\n }\n\n // sort\n versions.chrome.sort(sortAsNumber)\n versions.ff.sort(sortAsNumber)\n versions.edge.sort(sortAsNumber)\n versions.iosSaf.sort(sortAsNumber)\n versions.saf.sort(sortAsNumber)\n versions.opera.sort(sortAsNumber)\n versions.node.sort(sortAsNumber)\n\n return versions\n}\n","import {PackageTargetVersions} from './resolveBrowserslistVersions'\n\nexport function resolveBrowserTarget(versions: PackageTargetVersions): string[] | undefined {\n const target: string[] = []\n\n if (versions.chrome.length) {\n target.push(`chrome${versions.chrome[0]}`)\n }\n\n if (versions.ff.length) {\n target.push(`firefox${versions.ff[0]}`)\n }\n\n if (versions.edge.length) {\n target.push(`edge${versions.edge[0]}`)\n }\n\n if (versions.iosSaf.length) {\n target.push(`ios${versions.iosSaf[0]}`)\n }\n\n if (versions.saf.length) {\n target.push(`safari${versions.saf[0]}`)\n }\n\n if (versions.opera.length) {\n target.push(`opera${versions.opera[0]}`)\n }\n\n if (target.length === 0) {\n return undefined\n }\n\n return target\n}\n","import {PackageTargetVersions} from './resolveBrowserslistVersions'\n\nexport function resolveNodeTarget(versions: PackageTargetVersions): string[] | undefined {\n const target: string[] = []\n\n if (versions.node.length) {\n target.push(`node${versions.node[0]}`)\n }\n\n if (target.length === 0) {\n return undefined\n }\n\n return target\n}\n","import path from 'path'\nimport {\n PkgConfigOptions,\n PkgExports,\n PkgRuntime,\n BuildContext,\n DEFAULT_BROWSERSLIST_QUERY,\n loadTSConfig,\n PackageJSON,\n parseExports,\n resolveConfigProperty,\n PkgExtMap,\n} from './core'\nimport {findCommonDirPath, pathContains} from './core/findCommonPath'\nimport {Logger} from './logger'\nimport {resolveBrowserslistVersions} from './resolveBrowserslistVersions'\nimport {resolveBrowserTarget} from './resolveBrowserTarget'\nimport {resolveNodeTarget} from './resolveNodeTarget'\n\nexport async function resolveBuildContext(options: {\n config?: PkgConfigOptions\n cwd: string\n emitDeclarationOnly?: boolean\n extMap: PkgExtMap\n logger: Logger\n pkg: PackageJSON\n strict: boolean\n tsconfig: string\n}): Promise<BuildContext> {\n const {\n config,\n cwd,\n emitDeclarationOnly = false,\n extMap,\n logger,\n pkg,\n strict,\n tsconfig: tsconfigPath,\n } = options\n const tsconfig = await loadTSConfig({cwd, tsconfigPath})\n const targetVersions = resolveBrowserslistVersions(pkg.browserslist || DEFAULT_BROWSERSLIST_QUERY)\n const nodeTarget = resolveNodeTarget(targetVersions)\n const webTarget = resolveBrowserTarget(targetVersions)\n\n if (!nodeTarget) {\n throw new Error('no matching `node` target')\n }\n\n if (!webTarget) {\n throw new Error('no matching `web` target')\n }\n\n const target: Record<PkgRuntime, string[]> = {\n '*': webTarget.concat(nodeTarget),\n browser: webTarget,\n node: nodeTarget,\n }\n\n const parsedExports = parseExports({extMap, pkg, strict}).reduce<PkgExports>((acc, x) => {\n const {_path: exportPath, ...exportEntry} = x\n\n return {...acc, [exportPath]: exportEntry}\n }, {})\n\n const exports = resolveConfigProperty(config?.exports, parsedExports)\n\n const parsedExternal = [\n ...(pkg.dependencies ? Object.keys(pkg.dependencies) : []),\n ...(pkg.peerDependencies ? Object.keys(pkg.peerDependencies) : []),\n ]\n\n // Merge externals if an array is provided, replace if it's a function\n const external =\n config && Array.isArray(config.external)\n ? [...parsedExternal, ...config.external]\n : resolveConfigProperty(config?.external, parsedExternal)\n\n const outputPaths = Object.values(exports)\n .flatMap((exportEntry) => {\n return [\n exportEntry.import,\n exportEntry.require,\n exportEntry.browser?.import,\n exportEntry.browser?.require,\n exportEntry.node?.import,\n exportEntry.node?.require,\n ].filter(Boolean) as string[]\n })\n .map((p) => path.resolve(cwd, p))\n\n const commonDistPath = findCommonDirPath(outputPaths)\n\n if (commonDistPath === cwd) {\n throw new Error(\n 'all output files must share a common parent directory which is not the root package directory'\n )\n }\n\n if (commonDistPath && !pathContains(cwd, commonDistPath)) {\n throw new Error('all output files must be located within the package')\n }\n\n const configDistPath = config?.dist ? path.resolve(cwd, config.dist) : undefined\n\n if (\n configDistPath &&\n commonDistPath &&\n configDistPath !== commonDistPath &&\n !pathContains(configDistPath, commonDistPath)\n ) {\n logger.log(`did you mean to configure \\`dist: './${path.relative(cwd, commonDistPath)}'\\`?`)\n\n throw new Error('all output files must be located with the configured `dist` path')\n }\n\n const distPath = configDistPath || commonDistPath\n\n if (!distPath) {\n throw new Error('could not detect `dist` path')\n }\n\n const ctx: BuildContext = {\n config,\n cwd,\n distPath,\n emitDeclarationOnly,\n exports,\n external,\n extMap,\n files: [],\n logger,\n pkg,\n runtime: config?.runtime ?? '*',\n strict,\n target,\n ts: {\n config: tsconfig,\n configPath: tsconfigPath,\n },\n }\n\n return ctx\n}\n","import fs from 'fs'\nimport path from 'path'\nimport {PkgExport, PkgFormat, PkgRuntime, BuildContext} from './core'\nimport {BuildTask, DtsTask, RollupTask, RollupTaskEntry} from './tasks'\n\n/** @internal */\nexport function resolveBuildTasks(ctx: BuildContext): BuildTask[] {\n const {config, cwd, pkg, target} = ctx\n\n const bundles = config?.bundles || []\n\n const tasks: BuildTask[] = []\n\n const exports = Object.entries(ctx.exports || {}).map(\n ([_path, exp]) => ({_path, ...exp} as PkgExport & {_path: string})\n )\n\n const dtsTask: DtsTask = {\n type: 'build:dts',\n entries: [],\n }\n\n const rollupTasks: Record<string, RollupTask> = {}\n\n function addRollupTaskEntry(format: PkgFormat, runtime: PkgRuntime, entry: RollupTaskEntry) {\n const buildId = `${format}:${runtime}`\n\n if (rollupTasks[buildId]) {\n rollupTasks[buildId].entries.push(entry)\n } else {\n rollupTasks[buildId] = {\n type: 'build:js',\n buildId,\n entries: [entry],\n runtime,\n format,\n target: target[runtime],\n }\n }\n }\n\n // Parse `dts` tasks\n for (const exp of exports) {\n const importId = path.join(pkg.name, exp._path)\n\n if (exp.types) {\n dtsTask.entries.push({\n importId,\n exportPath: exp._path,\n sourcePath: exp.source,\n targetPath: exp.types,\n })\n }\n }\n\n // Add dts task\n if (dtsTask.entries.length) {\n tasks.push(dtsTask)\n }\n\n if (!ctx.emitDeclarationOnly) {\n // Parse rollup:commonjs:* tasks\n for (const exp of exports) {\n const output = exp.require\n\n if (!output) continue\n\n addRollupTaskEntry('commonjs', ctx.runtime, {\n path: exp._path,\n source: exp.source,\n output,\n })\n }\n\n // Parse rollup:esm:* tasks\n for (const exp of exports) {\n const output = exp.import\n\n if (!output) continue\n\n addRollupTaskEntry('esm', ctx.runtime, {\n path: exp._path,\n source: exp.source,\n output,\n })\n }\n\n // Parse rollup:commonjs:browser tasks\n for (const exp of exports) {\n const output = exp.browser?.require\n\n if (!output) continue\n\n addRollupTaskEntry('commonjs', 'browser', {\n path: exp._path,\n source: exp.browser?.source || exp.source,\n output,\n })\n }\n\n // Parse rollup:esm:browser tasks\n for (const exp of exports) {\n const output = exp.browser?.import\n\n if (!output) continue\n\n addRollupTaskEntry('esm', 'browser', {\n path: exp._path,\n source: exp.browser?.source || exp.source,\n output,\n })\n }\n\n for (const bundle of bundles) {\n if (bundle.require) {\n addRollupTaskEntry('commonjs', bundle.runtime || ctx.runtime, {\n path: '__bundle__',\n source: bundle.source,\n output: bundle.require,\n })\n }\n\n if (bundle.import) {\n addRollupTaskEntry('commonjs', bundle.runtime || ctx.runtime, {\n path: '__bundle__',\n source: bundle.source,\n output: bundle.import,\n })\n }\n }\n\n tasks.push(...Object.values(rollupTasks))\n\n // Write legacy exports files\n if (config?.legacyExports) {\n for (const exp of exports) {\n if (exp._exported && exp._path !== '.') {\n const relativeTargetPath = (exp.browser?.import || exp.import || '').replace(\n /\\.[^/.]+$/,\n ''\n )\n\n if (relativeTargetPath) {\n fs.writeFileSync(\n path.resolve(cwd, `${exp._path}.js`),\n [`// AUTO-GENERATED – DO NOT EDIT`, `export * from '${relativeTargetPath}'`, ``].join(\n '\\n'\n )\n )\n }\n }\n }\n }\n }\n\n return tasks\n}\n","/* eslint-disable no-console */\n\nimport chalk from 'chalk'\n\nexport function createSpinner(msg: string): {complete: () => void; error: () => void} {\n const startTime = Date.now()\n\n console.log(msg)\n\n return {\n complete: () => {\n console.log(`${chalk.green('[success]')} ${chalk.gray(`${Date.now() - startTime}ms`)}`)\n },\n error: () => {\n console.log(`${chalk.red(`[error]`)} ${chalk.gray(`${Date.now() - startTime}ms`)}`)\n },\n }\n}\n","import path from 'path'\nimport {ExtractorMessage} from '@microsoft/api-extractor'\nimport chalk from 'chalk'\nimport {BuildContext} from './core'\n\nexport function printExtractMessages(ctx: BuildContext, messages: ExtractorMessage[]): void {\n const {cwd, logger} = ctx\n\n const warnings = messages.filter((msg) => msg.logLevel === 'warning')\n\n if (warnings.length) {\n logger.log()\n }\n\n for (const msg of warnings) {\n const sourceFilePath = msg.sourceFilePath && path.relative(cwd, msg.sourceFilePath)\n\n if (msg.messageId === 'TS6307') {\n // Ignore this warning:\n // > TS6307: <filename> is not in project file list.\n // > Projects must list all files or use an 'include' pattern.\n continue\n }\n\n logger.log(\n [\n `${chalk.cyan(sourceFilePath || '?')}`,\n `:${chalk.yellow(msg.sourceFileLine)}:${chalk.yellow(msg.sourceFileColumn)}`,\n ` - ${chalk.yellow('warning')} ${chalk.gray(msg.messageId)}\\n`,\n msg.text,\n '\\n',\n ].join('')\n )\n }\n\n const errors: ExtractorMessage[] = messages.filter((msg) => msg.logLevel === 'error')\n\n if (!warnings.length && errors.length) {\n logger.log('')\n }\n\n for (const msg of errors) {\n const sourceFilePath = msg.sourceFilePath && path.relative(cwd, msg.sourceFilePath)\n\n logger.log(\n [\n `${chalk.cyan(sourceFilePath || '?')}`,\n `:${chalk.yellow(msg.sourceFileLine)}:${chalk.yellow(msg.sourceFileColumn)}`,\n ` - ${chalk.red('error')} ${chalk.gray(msg.messageId)}\\n`,\n msg.text,\n '\\n',\n ].join('')\n )\n }\n\n if (errors.length) {\n process.exit(1)\n }\n}\n","import path from 'path'\nimport chalk from 'chalk'\nimport ts from 'typescript'\nimport {Logger} from '../../logger'\n\nexport function printDiagnostic(options: {\n cwd: string\n logger: Logger\n diagnostic: ts.Diagnostic\n}): void {\n const {cwd, logger, diagnostic} = options\n\n if (diagnostic.file && diagnostic.start) {\n const {line, character} = ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start)\n const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n')\n\n const file = path.relative(cwd, diagnostic.file.fileName)\n\n const output = [\n `${chalk.yellow(file)}:${chalk.blue(line + 1)}:${chalk.blue(character + 1)} - `,\n `${chalk.gray(`TS${diagnostic.code}:`)} ${message}`,\n ].join('')\n\n if (diagnostic.category === ts.DiagnosticCategory.Error) {\n logger.error(output)\n }\n\n if (diagnostic.category === ts.DiagnosticCategory.Warning) {\n logger.warn(output)\n }\n\n if (diagnostic.category === ts.DiagnosticCategory.Message) {\n logger.log(output)\n }\n\n if (diagnostic.category === ts.DiagnosticCategory.Suggestion) {\n logger.log(output)\n }\n } else {\n logger.log(ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n'))\n }\n}\n","import ts from 'typescript'\nimport {Logger} from '../../logger'\nimport {printDiagnostic} from './printDiagnostic'\n\n/** @internal */\nexport async function buildTypes(options: {\n cwd: string\n logger: Logger\n outDir: string\n tsconfig: ts.ParsedCommandLine\n strict: boolean\n}): Promise<void> {\n const {cwd, logger, outDir, tsconfig, strict = false} = options\n\n const compilerOptions: ts.CompilerOptions = {\n ...tsconfig.options,\n declaration: true,\n declarationDir: outDir,\n emitDeclarationOnly: true,\n noEmit: false,\n outDir,\n }\n\n const program = ts.createProgram(tsconfig.fileNames, compilerOptions)\n\n const emitResult = program.emit()\n\n const allDiagnostics = ts.getPreEmitDiagnostics(program).concat(emitResult.diagnostics)\n\n for (const diagnostic of allDiagnostics) {\n printDiagnostic({cwd, logger, diagnostic})\n }\n\n if (emitResult.emitSkipped) {\n const errors = allDiagnostics.filter((diag) => diag.category === ts.DiagnosticCategory.Error)\n\n if (errors.length) {\n if (strict) {\n throw new Error('failed to compile TypeScript definitions')\n }\n }\n }\n}\n","import {ExtractorMessage} from '@microsoft/api-extractor'\n\n/** @internal */\nexport class DtsError extends Error {\n messages: ExtractorMessage[]\n\n constructor(message: string, messages: ExtractorMessage[]) {\n super(message)\n this.messages = messages\n }\n}\n","import path from 'path'\nimport {IConfigFile, IExtractorMessagesConfig} from '@microsoft/api-extractor'\n\nexport function createApiExtractorConfig(options: {\n distPath: string\n exportPath: string\n filePath: string\n messages: IExtractorMessagesConfig\n projectFolder: string\n mainEntryPointFilePath: string\n tsconfigPath: string\n}): IConfigFile {\n const {\n distPath,\n exportPath,\n filePath,\n messages,\n projectFolder,\n mainEntryPointFilePath,\n tsconfigPath,\n } = options\n\n return {\n apiReport: {\n enabled: false,\n reportFileName: '<unscopedPackageName>.api.md',\n },\n // bundledPackages: [],\n compiler: {\n tsconfigFilePath: tsconfigPath,\n },\n docModel: {\n enabled: false,\n apiJsonFilePath: path.resolve(distPath, `${exportPath}.api.json`),\n },\n dtsRollup: {\n enabled: true,\n untrimmedFilePath: path.resolve(distPath, filePath),\n // betaTrimmedFilePath: path.resolve(distPath, filePath.replace('.d.ts', '-beta.d.ts')),\n // publicTrimmedFilePath: path.resolve(distPath, filePath.replace('.d.ts', '-public.d.ts')),\n },\n tsdocMetadata: {\n enabled: false,\n },\n messages,\n mainEntryPointFilePath,\n projectFolder,\n }\n}\n","import {readFile} from 'fs/promises'\nimport {TSDocConfigFile} from '@microsoft/tsdoc-config'\nimport {parse} from 'jsonc-parser'\n\n/** @public */\nexport interface TSDocCustomTag {\n name: string\n syntaxKind: 'block' | 'modifier'\n allowMultiple?: boolean\n}\n\n/** @internal */\nexport async function createTSDocConfig(opts: {\n customTags: TSDocCustomTag[]\n}): Promise<TSDocConfigFile | undefined> {\n const {customTags} = opts\n\n if (customTags.length === 0) {\n return undefined\n }\n\n const tsDocBaseBuf = await readFile(\n require.resolve('@microsoft/api-extractor/extends/tsdoc-base.json')\n )\n\n // Include the definitions that are required for API Extractor\n // extends: ['@microsoft/api-extractor/extends/tsdoc-base.json'],\n const tsDocBaseConfig = parse(tsDocBaseBuf.toString())\n\n // Define custom tags and specify how they should be parsed\n const tagDefinitions = (tsDocBaseConfig.tagDefinitions || []).concat(\n customTags.map((t) => ({\n tagName: `@${t.name}`,\n syntaxKind: t.syntaxKind,\n allowMultiple: t.allowMultiple,\n }))\n )\n\n // Indicate that custom tags are supported by your tooling.\n // (Without this, warnings may be reported saying that a tag is unsupported.)\n const supportForTags = {...tsDocBaseConfig.supportForTags}\n\n for (const customTag of customTags) {\n supportForTags[`@${customTag.name}`] = true\n }\n\n return TSDocConfigFile.loadFromObject({\n ...tsDocBaseConfig,\n noStandardTags: false,\n tagDefinitions,\n supportForTags,\n })\n}\n","import type {File} from '@babel/types'\nimport {ExtractorResult} from '@microsoft/api-extractor'\nimport {parse, print} from 'recast'\nimport typeScriptParser from 'recast/parsers/typescript'\nimport {Program} from 'typescript'\n\n/**\n * A workaround to find all module blocks in extract TS files.\n * @internal\n * */\nexport async function extractModuleBlocksFromTypes({\n tsOutDir,\n extractResult,\n}: {\n tsOutDir: string\n extractResult: ExtractorResult\n}): Promise<string[]> {\n const program = extractResult.compilerState.program as Program\n const moduleBlocks: string[] = []\n\n // all program files, including node_modules\n const allProgramFiles = [...program.getSourceFiles()]\n\n // just our compiled files used in the program\n const sourceFiles = allProgramFiles.filter((sourceFile) => sourceFile.fileName.includes(tsOutDir))\n\n for (const sourceFile of sourceFiles) {\n if (sourceFile.text.includes('declare module')) {\n moduleBlocks.push(...extractModuleBlocks(sourceFile.text))\n }\n }\n\n return moduleBlocks\n}\n\n/** @internal */\nexport function extractModuleBlocks(fileContent: string): string[] {\n const ast = parse(fileContent, {\n parser: typeScriptParser,\n }) as File\n\n return ast.program.body\n .filter((node) => node.type === 'TSModuleDeclaration')\n .map((node) => print(node).code)\n}\n","import {ExtractorLogLevel, IExtractorMessagesConfig} from '@microsoft/api-extractor'\nimport {PkgRuleLevel, PkgConfigOptions} from '../../core'\n\nconst LOG_LEVELS: Record<PkgRuleLevel, ExtractorLogLevel> = {\n error: 'error' as ExtractorLogLevel.Error,\n info: 'info' as ExtractorLogLevel.Info,\n off: 'none' as ExtractorLogLevel.None,\n warn: 'warning' as ExtractorLogLevel.Warning,\n}\n\n/** @internal */\nexport function getExtractMessagesConfig(options: {\n rules: NonNullable<PkgConfigOptions['extract']>['rules']\n}): IExtractorMessagesConfig {\n const {rules} = options\n\n function ruleToLogLevel(\n key: keyof NonNullable<NonNullable<PkgConfigOptions['extract']>['rules']>,\n defaultLevel?: ExtractorLogLevel\n ) {\n const r = rules?.[key]\n\n return (r ? LOG_LEVELS[r] : defaultLevel || 'warning') as ExtractorLogLevel\n }\n\n return {\n compilerMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n },\n },\n\n extractorMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n\n 'ae-forgotten-export': {\n logLevel: ruleToLogLevel('ae-forgotten-export', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-incompatible-release-tags': {\n logLevel: ruleToLogLevel('ae-incompatible-release-tags', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-internal-missing-underscore': {\n logLevel: ruleToLogLevel('ae-internal-missing-underscore'),\n addToApiReportFile: false,\n },\n\n 'ae-missing-release-tag': {\n logLevel: ruleToLogLevel('ae-missing-release-tag', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-wrong-input-file-type': {\n logLevel: 'none' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n },\n\n tsdocMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n\n 'tsdoc-link-tag-unescaped-text': {\n logLevel: ruleToLogLevel('tsdoc-link-tag-unescaped-text', 'warning' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'tsdoc-undefined-tag': {\n logLevel: ruleToLogLevel('tsdoc-undefined-tag', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'tsdoc-unsupported-tag': {\n logLevel: ruleToLogLevel('tsdoc-unsupported-tag', 'none' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n },\n }\n}\n","import fs from 'fs/promises'\nimport path from 'path'\nimport {\n Extractor,\n ExtractorConfig,\n ExtractorMessage,\n ExtractorResult,\n} from '@microsoft/api-extractor'\nimport mkdirp from 'mkdirp'\nimport prettier from 'prettier'\nimport {PkgConfigOptions, BuildFile} from '../../core'\nimport {createApiExtractorConfig} from './createApiExtractorConfig'\nimport {createTSDocConfig} from './createTSDocConfig'\nimport {extractModuleBlocksFromTypes} from './extractModuleBlocks'\nimport {getExtractMessagesConfig} from './getExtractMessagesConfig'\n\nexport async function extractTypes(options: {\n customTags: NonNullable<PkgConfigOptions['extract']>['customTags']\n cwd: string\n distPath: string\n exportPath: string\n filePath: string\n files: BuildFile[]\n projectPath: string\n rules?: NonNullable<PkgConfigOptions['extract']>['rules']\n sourceTypesPath: string\n tmpPath: string\n tsconfigPath: string\n}): Promise<{extractorResult: ExtractorResult; messages: ExtractorMessage[]}> {\n const {\n customTags,\n distPath,\n exportPath,\n files,\n filePath,\n projectPath,\n rules,\n sourceTypesPath,\n tmpPath,\n tsconfigPath,\n } = options\n\n const tsdocConfigFile = await createTSDocConfig({\n customTags: customTags || [],\n })\n\n const extractorConfig: ExtractorConfig = ExtractorConfig.prepare({\n configObject: createApiExtractorConfig({\n distPath,\n exportPath,\n filePath,\n messages: getExtractMessagesConfig({rules}),\n projectFolder: projectPath,\n mainEntryPointFilePath: sourceTypesPath,\n tsconfigPath,\n }),\n configObjectFullPath: undefined,\n tsdocConfigFile,\n packageJsonFullPath: path.resolve(projectPath, 'package.json'),\n })\n\n const messages: ExtractorMessage[] = []\n\n // Invoke API Extractor\n const extractorResult = Extractor.invoke(extractorConfig, {\n // Equivalent to the \"--local\" command-line parameter\n localBuild: true,\n // Equivalent to the \"--verbose\" command-line parameter\n showVerboseMessages: true,\n // handle messages\n messageCallback(message: ExtractorMessage) {\n messages.push(message)\n message.handled = true\n },\n })\n\n const typesPath = path.resolve(distPath, filePath)\n const typesBuf = await fs.readFile(typesPath)\n const prettierConfig = await prettier.resolveConfig(typesPath)\n\n await mkdirp(path.dirname(typesPath))\n\n const moduleBlocks = await extractModuleBlocksFromTypes({\n extractResult: extractorResult,\n tsOutDir: tmpPath,\n })\n\n const code = [typesBuf.toString(), ...moduleBlocks].join('\\n\\n')\n\n await fs.writeFile(\n typesPath,\n prettier.format(code, {\n ...prettierConfig,\n filepath: typesPath,\n })\n )\n\n // Add to `files` in context\n files.push({\n type: 'types',\n path: typesPath,\n })\n\n return {extractorResult, messages}\n}\n","import path from 'path'\nimport {promisify} from 'util'\nimport {ExtractorMessage} from '@microsoft/api-extractor'\nimport rimrafCallback from 'rimraf'\nimport {BuildContext} from '../../core'\nimport {buildTypes} from './buildTypes'\nimport {DtsError} from './DtsError'\nimport {extractTypes} from './extractTypes'\nimport {DtsResult, DtsTask, DtsWatchTask} from './types'\n\nconst rimraf = promisify(rimrafCallback)\n\n/**\n * - Build type definitions to a temporary directory using TypeScript compiler.\n * - Create a type definition bundle for each export entry.\n * - When done, remove the temporary directory.\n */\nexport async function doExtract(\n ctx: BuildContext,\n task: DtsTask | DtsWatchTask\n): Promise<DtsResult> {\n const {config, cwd, files, logger, strict, ts} = ctx\n\n if (!ts.config || !ts.configPath) {\n return {type: 'dts', messages: [], results: []}\n }\n\n const {outDir, rootDir = cwd} = ts.config.options\n\n if (!outDir) {\n throw new Error('tsconfig.json is missing `compilerOptions.outDir`')\n }\n\n const tmpPath = path.resolve(outDir, '__tmp__')\n\n await buildTypes({cwd, logger, outDir: tmpPath, strict, tsconfig: ts.config})\n const messages: ExtractorMessage[] = []\n\n const results: {sourcePath: string; filePath: string}[] = []\n\n for (const entry of task.entries) {\n const exportPath = entry.exportPath === '.' ? './index' : entry.exportPath\n\n const sourceTypesPath = path.resolve(\n tmpPath,\n path.relative(rootDir, path.resolve(cwd, entry.sourcePath)).replace(/\\.ts$/, '.d.ts')\n )\n\n const targetPath = path.resolve(cwd, entry.targetPath)\n const filePath = path.relative(outDir, targetPath)\n const result = await extractTypes({\n customTags: config?.extract?.customTags,\n cwd,\n distPath: outDir,\n exportPath,\n files,\n filePath: filePath,\n projectPath: cwd,\n rules: config?.extract?.rules,\n sourceTypesPath: sourceTypesPath,\n tmpPath,\n tsconfigPath: path.resolve(cwd, ts.configPath || 'tsconfig.json'),\n })\n\n messages.push(...result.messages)\n\n if (result.messages.some((msg) => msg.logLevel === 'error')) {\n await rimraf(tmpPath)\n\n throw new DtsError('encountered errors when extracting types', result.messages)\n }\n\n results.push({sourcePath: path.resolve(cwd, entry.sourcePath), filePath: targetPath})\n }\n\n await rimraf(tmpPath)\n\n return {type: 'dts', messages, results}\n}\n","import chalk from 'chalk'\nimport {Observable} from 'rxjs'\nimport {printExtractMessages} from '../../printExtractMessages'\nimport {TaskHandler} from '../types'\nimport {doExtract} from './doExtract'\nimport {DtsError} from './DtsError'\nimport {DtsResult, DtsTask} from './types'\n\n/** @internal */\nexport const dtsTask: TaskHandler<DtsTask, DtsResult> = {\n name: (_ctx, task) =>\n [\n `Build type definitions...`,\n ` entries:`,\n ...task.entries.map((entry) =>\n [\n ` - ${chalk.cyan(entry.importId)}: `,\n `${chalk.yellow(entry.sourcePath)} ${chalk.gray('→')} ${chalk.yellow(entry.targetPath)}`,\n ].join('')\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return new Observable((observer) => {\n doExtract(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => {\n observer.error(err)\n })\n })\n },\n complete: (ctx, _task, result) => {\n printExtractMessages(ctx, result.messages)\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof DtsError) {\n printExtractMessages(ctx, err.messages)\n } else if (err instanceof Error) {\n logger.error(err)\n }\n },\n}\n","import chalk from 'chalk'\nimport {Observable} from 'rxjs'\nimport {printExtractMessages} from '../../printExtractMessages'\nimport {TaskHandler} from '../types'\nimport {doExtract} from './doExtract'\nimport {DtsError} from './DtsError'\nimport {DtsResult, DtsWatchTask} from './types'\n\n/** @internal */\nexport const dtsWatchTask: TaskHandler<DtsWatchTask, DtsResult> = {\n name: (_ctx, task) =>\n [\n `build type definitions`,\n ...task.entries.map(\n (entry) =>\n ` ${chalk.blue(entry.importId)}: ${entry.sourcePath} -> ${entry.targetPath}`\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return new Observable((observer) => {\n doExtract(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => observer.error(err))\n })\n },\n complete: (ctx, _task, result) => {\n const {logger} = ctx\n\n printExtractMessages(ctx, result.messages)\n\n logger.warn('watching typescript definitions is currently not supported')\n logger.log()\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof DtsError) {\n printExtractMessages(ctx, err.messages)\n } else if (err instanceof Error) {\n logger.error(err)\n }\n },\n}\n","/* eslint-disable no-console */\n\nexport interface ConsoleSpyMsg {\n type: 'log' | 'warn' | 'error'\n code?: string\n args: unknown[]\n}\n\nexport interface ConsoleSpy {\n messages: ConsoleSpyMsg[]\n restore: () => void\n}\n\nexport function createConsoleSpy(options: {\n onRestored: (messages: ConsoleSpyMsg[]) => void\n}): ConsoleSpy {\n const {onRestored} = options\n\n const original = {\n log: console.log,\n warn: console.warn,\n error: console.error,\n }\n\n const messages: ConsoleSpyMsg[] = []\n\n console.log = (...args: unknown[]) => messages.push({type: 'log', args})\n console.warn = (...args: unknown[]) => messages.push({type: 'warn', args})\n console.error = (...args: unknown[]) => messages.push({type: 'error', args})\n\n return {\n messages,\n restore: () => {\n console.log = original.log\n console.warn = original.warn\n console.error = original.error\n\n onRestored(messages)\n },\n }\n}\n","import path from 'path'\nimport alias from '@rollup/plugin-alias'\nimport {getBabelOutputPlugin} from '@rollup/plugin-babel'\nimport commonjs from '@rollup/plugin-commonjs'\nimport json from '@rollup/plugin-json'\nimport {nodeResolve} from '@rollup/plugin-node-resolve'\nimport replace from '@rollup/plugin-replace'\nimport terser from '@rollup/plugin-terser'\nimport {InputOptions, OutputOptions, Plugin} from 'rollup'\nimport esbuild from 'rollup-plugin-esbuild'\nimport {BuildContext, DEFAULT_BROWSERSLIST_QUERY, resolveConfigProperty} from '../../core'\nimport {RollupTask, RollupWatchTask} from '../types'\n\nexport interface RollupConfig {\n inputOptions: InputOptions\n outputOptions: OutputOptions\n}\n\n/** @internal */\nexport function resolveRollupConfig(\n ctx: BuildContext,\n buildTask: RollupTask | RollupWatchTask\n): RollupConfig {\n const {format, runtime, target} = buildTask\n const {config, cwd, exports: _exports, extMap, external, distPath, logger, pkg, ts} = ctx\n const outputExt = extMap[pkg.type][format]\n const minify = config?.minify ?? false\n const outDir = path.relative(cwd, distPath)\n\n const pathAliases = Object.fromEntries(\n Object.entries(ts.config?.options.paths || {}).map(([key, val]) => {\n return [key, path.resolve(cwd, ts.config?.options.baseUrl || '.', val[0])]\n })\n )\n\n const entries = buildTask.entries.map((entry) => {\n return {\n ...entry,\n name: path.relative(outDir, entry.output).replace(/\\.[^/.]+$/, ''),\n }\n }, {})\n\n const exportIds =\n _exports && Object.keys(_exports).map((exportPath) => path.join(pkg.name, exportPath))\n\n const sourcePaths = _exports && Object.values(_exports).map((e) => path.resolve(cwd, e.source))\n\n const replacements = Object.fromEntries(\n Object.entries(config?.define || {}).map(([key, val]) => [key, JSON.stringify(val)])\n )\n\n const defaultPlugins = [\n replace({\n preventAssignment: true,\n values: {\n ...(pkg.name === '@sanity/pkg-utils'\n ? {...replacements}\n : {\n 'process.env.PKG_FILE_PATH': (arg) => {\n const sourcePath = './' + path.relative(cwd, arg)\n const entry = entries.find((e) => e.source === sourcePath)\n\n if (!entry) {\n // eslint-disable-next-line no-console\n console.error(`could not find source entry: ${sourcePath}`)\n\n return 'null'\n }\n\n return JSON.stringify(\n path.relative(cwd, path.resolve(outDir, entry.name + outputExt))\n )\n },\n 'process.env.PKG_FORMAT': JSON.stringify(format),\n 'process.env.PKG_RUNTIME': JSON.stringify(runtime),\n 'process.env.PKG_VERSION': JSON.stringify(process.env.PKG_VERSION || pkg.version),\n ...replacements,\n }),\n },\n }),\n alias({\n entries: {...pathAliases},\n }),\n nodeResolve({\n // mainFields: ['module', 'jsnext', 'main'],\n browser: runtime === 'browser',\n // exportConditions: [runtime === 'node' ? 'node' : 'browser'],\n extensions: ['.cjs', '.mjs', '.js', '.jsx', '.json', '.node'],\n preferBuiltins: true, // runtime === 'node',\n }),\n commonjs({\n esmExternals: false,\n extensions: ['.js'],\n // include: /\\/node_modules\\//,\n // requireReturnsDefault: 'namespace',\n }),\n json(),\n esbuild({\n jsx: config?.jsx ?? 'automatic',\n jsxFactory: config?.jsxFactory ?? 'createElement',\n jsxFragment: config?.jsxFragment ?? 'Fragment',\n jsxImportSource: config?.jsxImportSource ?? 'react',\n target,\n tsconfig: ctx.ts.configPath || 'tsconfig.json',\n }),\n getBabelOutputPlugin({\n babelrc: false,\n plugins: ['@babel/plugin-proposal-object-rest-spread'],\n presets: [['@babel/preset-env', {targets: pkg.browserslist || DEFAULT_BROWSERSLIST_QUERY}]],\n }),\n minify &&\n terser({\n output: {\n comments: (_node, comment) => {\n const text = comment.value\n const type = comment.type\n\n // Check if this is a multiline comment\n if (type == 'comment2') {\n // Keep licensing comments\n return /@preserve|@license|@cc_on/i.test(text)\n }\n\n return false\n },\n },\n }),\n ].filter(Boolean) as Plugin[]\n\n const userPlugins = config?.rollup?.plugins\n\n const plugins = Array.isArray(userPlugins)\n ? defaultPlugins.concat(userPlugins)\n : resolveConfigProperty(config?.rollup?.plugins, defaultPlugins)\n\n return {\n inputOptions: {\n context: cwd,\n\n external: (id, importer) => {\n // Check if the id is a self-referencing import\n if (exportIds?.includes(id)) {\n return true\n }\n\n // Check if the id is a file path that points to an exported source file\n if (importer && (id.startsWith('.') || id.startsWith('/'))) {\n const idPath = path.resolve(path.dirname(importer), id)\n\n if (sourcePaths?.includes(idPath)) {\n logger.warn(\n `detected self-referencing import – treating as external: ${path.relative(\n cwd,\n idPath\n )}`\n )\n\n return true\n }\n }\n\n const idParts = id.split('/')\n\n const name = idParts[0].startsWith('@') ? `${idParts[0]}/${idParts[1]}` : idParts[0]\n\n if (name && external.includes(name)) {\n return true\n }\n\n return false\n },\n\n input: entries.reduce<{[entryAlias: string]: string}>((acc, entry) => {\n return {...acc, [entry.name]: entry.source}\n }, {}),\n\n plugins,\n\n treeshake: {\n propertyReadSideEffects: false,\n },\n },\n outputOptions: {\n chunkFileNames: () => {\n const parts = outputExt.split('.')\n\n if (parts.length === 3) {\n return `_chunks/[name]-[hash].${parts[2]}`\n }\n\n return `_chunks/[name]-[hash]${outputExt}`\n },\n compact: minify,\n dir: outDir,\n entryFileNames: () => {\n const parts = outputExt.split('.')\n\n if (parts.length === 3) {\n return `[name].${parts[2]}`\n }\n\n return `[name]${outputExt}`\n },\n esModule: true,\n format,\n interop: 'compat',\n minifyInternalExports: minify,\n sourcemap: config?.sourcemap ?? true,\n },\n }\n}\n","import path from 'path'\nimport chalk from 'chalk'\nimport {rollup} from 'rollup'\nimport {Observable} from 'rxjs'\nimport {BuildContext} from '../../core'\nimport {RollupTask, TaskHandler} from '../types'\nimport {createConsoleSpy} from './consoleSpy'\nimport {resolveRollupConfig} from './resolveRollupConfig'\n\n/** @internal */\nexport const rollupTask: TaskHandler<RollupTask> = {\n name: (ctx, task) =>\n [\n `Build javascript files...`,\n ` format: ${chalk.yellow(task.format)}`,\n ` target:`,\n ...task.target.map((t) => ` - ${chalk.yellow(t)}`),\n ` entries:`,\n ...task.entries.map((e) =>\n [\n ` - `,\n `${chalk.cyan(path.join(ctx.pkg.name, e.path))}: `,\n `${chalk.yellow(e.source)} ${chalk.gray('→')} ${chalk.yellow(e.output)}`,\n ].join('')\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return new Observable((observer) => {\n execPromise(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => observer.error(err))\n })\n },\n complete: () => {\n //\n },\n error: (_ctx, _task, err) => {\n // eslint-disable-next-line no-console\n console.error(err)\n },\n}\n\nasync function execPromise(ctx: BuildContext, task: RollupTask) {\n const {distPath, files, logger} = ctx\n const outDir = path.relative(ctx.cwd, distPath)\n\n // Prevent rollup from printing directly to the console\n const consoleSpy = createConsoleSpy({\n onRestored: (messages) => {\n for (const msg of messages) {\n const text = String(msg.args[0])\n\n if (msg.code === 'CIRCULAR_DEPENDENCY') {\n continue // ignore\n }\n\n if (text.startsWith('Dynamic import can only')) {\n continue // ignore\n }\n\n if (text.startsWith('Sourcemap is likely to be incorrect')) {\n continue // ignore\n }\n\n if (msg.type === 'log') {\n logger.info(...msg.args)\n }\n\n if (msg.type === 'warn') {\n logger.warn(...msg.args)\n }\n\n if (msg.type === 'error') {\n logger.error(...msg.args)\n }\n }\n },\n })\n\n try {\n const {inputOptions, outputOptions} = resolveRollupConfig(ctx, task)\n\n // Create bundle\n const bundle = await rollup({\n ...inputOptions,\n onwarn(warning) {\n consoleSpy.messages.push({\n type: 'warn',\n code: warning.code,\n args: [warning.message],\n })\n },\n })\n\n // generate output specific code in-memory\n // you can call this function multiple times on the same bundle object\n const {output} = await bundle.generate(outputOptions)\n\n for (const chunkOrAsset of output) {\n if (chunkOrAsset.type === 'asset') {\n files.push({\n type: 'asset',\n path: path.resolve(outDir, chunkOrAsset.fileName),\n })\n } else {\n files.push({\n type: 'chunk',\n path: path.resolve(outDir, chunkOrAsset.fileName),\n })\n }\n }\n\n // or write the bundle to disk\n await bundle.write(outputOptions)\n\n // closes the bundle\n await bundle.close()\n\n // Restore console\n consoleSpy.restore()\n } catch (err) {\n // Restore console\n consoleSpy.restore()\n throw err\n }\n}\n","import path from 'path'\nimport chalk from 'chalk'\nimport {RollupWatcherEvent, RollupWatchOptions, watch as rollupWatch} from 'rollup'\nimport {Observable} from 'rxjs'\nimport {RollupWatchTask, TaskHandler} from '../types'\nimport {resolveRollupConfig} from './resolveRollupConfig'\n\n/** @internal */\nexport const rollupWatchTask: TaskHandler<RollupWatchTask, RollupWatcherEvent> = {\n name: (ctx, task) =>\n `build javascript files (target ${task.target.join(' + ')}, format ${\n task.format\n })\\n ${task.entries\n .map((e) => `${chalk.blue(path.join(ctx.pkg.name, e.path))}: ${e.source} -> ${e.output}`)\n .join('\\n ')}`,\n exec: (ctx, task) => {\n const {inputOptions, outputOptions} = resolveRollupConfig(ctx, task)\n\n return new Observable((observer) => {\n const watchOptions: RollupWatchOptions = {\n ...inputOptions,\n output: outputOptions,\n }\n\n const watcher = rollupWatch(watchOptions)\n\n watcher.on('event', (event) => {\n observer.next(event)\n })\n\n return () => {\n watcher.close()\n }\n })\n },\n complete: (ctx, task, event) => {\n const {logger} = ctx\n\n if (event.code === 'BUNDLE_END') {\n logger.success(\n `build javascript files (target ${task.target.join(' + ')}, format ${\n task.format\n })\\n ${task.entries\n .map((e) => `${chalk.blue(path.join(ctx.pkg.name, e.path))}: ${e.source} -> ${e.output}`)\n .join('\\n ')}`\n )\n logger.log('')\n\n return\n }\n\n if (event.code === 'BUNDLE_START') {\n return\n }\n\n if (event.code === 'END') {\n return\n }\n\n if (event.code === 'ERROR') {\n logger.error(event.code, event)\n\n return\n }\n\n if (event.code === 'START') {\n return\n }\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof Error) {\n logger.log(err)\n }\n },\n}\n","import {dtsTask, dtsWatchTask} from './dts'\nimport {rollupTask, rollupWatchTask} from './rollup'\nimport {BuildTaskHandlers, WatchTaskHandlers} from './types'\n\nexport * from './types'\nexport * from './dts'\nexport * from './rollup'\n\n/** @internal */\nexport const buildTaskHandlers: BuildTaskHandlers = {\n 'build:dts': dtsTask,\n 'build:js': rollupTask,\n}\n\n/** @internal */\nexport const watchTaskHandlers: WatchTaskHandlers = {\n 'watch:dts': dtsWatchTask,\n 'watch:js': rollupWatchTask,\n}\n","import {getPkgExtMap, loadConfig, loadPkgWithReporting} from './core'\nimport {createLogger} from './logger'\nimport {resolveBuildContext} from './resolveBuildContext'\nimport {resolveBuildTasks} from './resolveBuildTasks'\nimport {createSpinner} from './spinner'\nimport {BuildTask, TaskHandler, buildTaskHandlers} from './tasks'\n\n/**\n * Build the distribution files of a npm package.\n *\n * @example\n * ```ts\n * import {build} from '@sanity/pkg-utils'\n *\n * build({\n * cwd: process.cwd(),\n * tsconfig: 'tsconfig.dist.json,\n * }).then(() => {\n * console.log('successfully built')\n * }).catch((err) => {\n * console.log(`build error: ${err.message}`)\n * })\n * ```\n *\n * @public\n */\nexport async function build(options: {\n cwd: string\n emitDeclarationOnly?: boolean\n strict?: boolean\n tsconfig?: string\n}): Promise<void> {\n const {cwd, emitDeclarationOnly, strict = false, tsconfig: tsconfigOption} = options\n const logger = createLogger()\n\n const pkg = await loadPkgWithReporting({cwd, logger})\n const config = await loadConfig({cwd})\n const extMap = getPkgExtMap({legacyExports: config?.legacyExports ?? false})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n\n const ctx = await resolveBuildContext({\n config,\n cwd,\n emitDeclarationOnly,\n extMap,\n logger,\n pkg,\n strict,\n tsconfig,\n })\n\n const buildTasks = resolveBuildTasks(ctx)\n\n for (const task of buildTasks) {\n const handler = buildTaskHandlers[task.type] as TaskHandler<BuildTask>\n const taskName = handler.name(ctx, task)\n\n const spinner = createSpinner(taskName)\n\n try {\n const result = await handler.exec(ctx, task).toPromise()\n\n spinner.complete()\n ctx.logger.log()\n\n handler.complete(ctx, task, result)\n } catch (err) {\n spinner.error()\n\n if (err instanceof Error) {\n const RE_CWD = new RegExp(`${cwd}`, 'g')\n\n ctx.logger.error(err.message.replace(RE_CWD, '.'))\n ctx.logger.log()\n }\n\n handler.error(ctx, task, err)\n\n process.exit(1)\n }\n }\n}\n","import {statSync} from 'fs'\nimport prettyBytes from 'pretty-bytes'\n\nexport function getFilesize(file: string): string {\n const stats = statSync(file)\n\n return prettyBytes(stats.size)\n}\n","import fs from 'fs'\nimport path from 'path'\nimport chalk from 'chalk'\nimport treeify from 'treeify'\nimport {PkgExport, BuildContext} from './core'\nimport {getFilesize} from './getFilesize'\n\nexport function fileExists(file: string): boolean {\n try {\n fs.accessSync(file)\n\n return true\n } catch (_) {\n return false\n }\n}\n\nfunction getFileInfo(cwd: string, filePath: string) {\n const p = path.resolve(cwd, filePath)\n const exists = fileExists(p)\n const size = exists ? getFilesize(p) : undefined\n\n return {exists, size}\n}\n\nexport function printPackageTree(ctx: BuildContext): void {\n const {cwd, exports, logger, pkg} = ctx\n\n if (!exports) return\n\n logger.log(`${chalk.blue(pkg.name)}@${chalk.green(pkg.version)}`)\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const tree: Record<string, unknown> = {type: chalk.yellow(pkg.type)}\n\n if (pkg.bin) {\n tree.bin = Object.fromEntries(\n Object.entries(pkg.bin).map(([name, file]) => [chalk.cyan(name), fileInfo(file)])\n )\n }\n\n function fileInfo(file: string) {\n const info = getFileInfo(cwd, file)\n\n if (!info.size) {\n return `${chalk.gray(file)} ${chalk.red('does not exist')}`\n }\n\n return `${chalk.yellow(file)} ${chalk.gray(info.size)}`\n }\n\n tree.exports = Object.fromEntries(\n Object.entries(exports)\n .filter(([, entry]) => entry._exported)\n .map(([exportPath, entry]) => {\n const exp: Omit<PkgExport, '_exported'> = {\n types: undefined,\n source: fileInfo(entry.source),\n browser: undefined,\n node: undefined,\n import: undefined,\n require: undefined,\n default: fileInfo(entry.default),\n }\n\n if (entry.types) {\n exp.types = fileInfo(entry.types)\n } else {\n delete exp.types\n }\n\n if (entry.browser) {\n exp.browser = {source: fileInfo(entry.browser.source)}\n\n if (entry.browser.import) exp.browser.import = fileInfo(entry.browser.import)\n if (entry.browser.require) exp.browser.require = fileInfo(entry.browser.require)\n } else {\n delete exp.browser\n }\n\n if (entry.node) {\n exp.node = {source: fileInfo(entry.node.source)}\n\n if (entry.node.import) exp.node.import = fileInfo(entry.node.import)\n if (entry.node.require) exp.node.require = fileInfo(entry.node.require)\n } else {\n delete exp.node\n }\n\n if (entry.import) {\n exp.import = fileInfo(entry.import)\n } else {\n delete exp.import\n }\n\n if (entry.require) {\n exp.require = fileInfo(entry.require)\n } else {\n delete exp.require\n }\n\n return [chalk.cyan(path.join(pkg.name, exportPath)), exp]\n })\n )\n\n logger.log(treeify.asTree(tree as Record<string, any>, true, true))\n}\n","import path from 'path'\nimport esbuild, {BuildFailure} from 'esbuild'\nimport {getPkgExtMap, loadConfig, loadPkgWithReporting} from './core'\nimport {createLogger} from './logger'\nimport {fileExists, printPackageTree} from './printPackageTree'\nimport {resolveBuildContext} from './resolveBuildContext'\n\n/** @public */\nexport async function check(options: {\n cwd: string\n strict?: boolean\n tsconfig?: string\n}): Promise<void> {\n const {cwd, strict = false, tsconfig: tsconfigOption} = options\n const logger = createLogger()\n\n const pkg = await loadPkgWithReporting({cwd, logger})\n const config = await loadConfig({cwd})\n const extMap = getPkgExtMap({legacyExports: config?.legacyExports ?? false})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n const ctx = await resolveBuildContext({config, cwd, extMap, logger, pkg, strict, tsconfig})\n\n printPackageTree(ctx)\n\n if (strict) {\n const missingFiles: string[] = []\n\n // Check if there are missing files\n for (const [, exp] of Object.entries(ctx.exports || {})) {\n if (exp.source && !fileExists(path.resolve(cwd, exp.source))) {\n missingFiles.push(exp.source)\n }\n\n if (exp.require && !fileExists(path.resolve(cwd, exp.require))) {\n missingFiles.push(exp.require)\n }\n\n if (exp.import && !fileExists(path.resolve(cwd, exp.import))) {\n missingFiles.push(exp.import)\n }\n\n if (exp.types && !fileExists(path.resolve(cwd, exp.types))) {\n missingFiles.push(exp.types)\n }\n }\n\n if (missingFiles.length) {\n logger.error('missing files')\n process.exit(1)\n }\n\n // Check if the files are resolved\n const _paths: {require: string[]; import: string[]} = {\n require: [],\n import: [],\n }\n\n for (const exp of Object.values(ctx.exports || {})) {\n if (!exp._exported) continue\n if (exp.require) _paths.require.push(exp.require)\n if (exp.import) _paths.import.push(exp.import)\n }\n\n const external = Object.keys(pkg.dependencies || {}).concat(\n Object.keys(pkg.devDependencies || {})\n )\n\n if (_paths.import.length) {\n const code = _paths.import.map((id) => `import('${id}')`).join('\\n')\n\n try {\n const esbuildResult = await esbuild.build({\n external,\n stdin: {\n contents: code,\n loader: 'js',\n resolveDir: cwd,\n },\n format: 'esm',\n bundle: true,\n logLevel: 'silent',\n // otherwise output maps to stdout as we're using stdin\n outfile: '/dev/null',\n platform: 'node',\n })\n\n if (esbuildResult.warnings.length > 0) {\n logger.warn(...esbuildResult.warnings)\n }\n } catch (err) {\n const {errors} = err as BuildFailure\n\n for (const _err of errors) {\n if (_err.location) {\n logger.error(_err.detail || _err.text)\n logger.error(`${_err.location.line} | ${_err.location.lineText}`)\n logger.error(\n 'in',\n `./${_err.location.file}:${_err.location.line}:${_err.location.column}`\n )\n } else {\n logger.error(_err.detail || _err.text)\n }\n\n logger.log()\n }\n\n process.exit(1)\n }\n }\n\n if (_paths.require.length) {\n const code = _paths.require.map((id) => `require('${id}')`).join('\\n')\n\n const esbuildResult = await esbuild.build({\n external,\n stdin: {\n contents: code,\n loader: 'js',\n resolveDir: cwd,\n },\n format: 'cjs',\n bundle: true,\n // otherwise output maps to stdout as we're using stdin\n outfile: '/dev/null',\n platform: 'node',\n })\n\n if (esbuildResult.errors.length > 0) {\n // throw new Error(esbuildResult.errors.join(', '))\n logger.error(esbuildResult.errors.join(', '))\n process.exit(1)\n }\n\n if (esbuildResult.warnings.length > 0) {\n logger.warn(...esbuildResult.warnings)\n }\n }\n }\n}\n","import fs from 'fs'\nimport path from 'path'\nimport {PkgExport, PkgFormat, PkgRuntime, BuildContext} from './core'\nimport {WatchTask, DtsWatchTask, RollupWatchTask, RollupTaskEntry} from './tasks'\n\n/** @internal */\nexport function resolveWatchTasks(ctx: BuildContext): WatchTask[] {\n const {config, cwd, pkg, target} = ctx\n const tasks: WatchTask[] = []\n\n const exports = Object.entries(ctx.exports || {}).map(\n ([_path, exp]) => ({_path, ...exp} as PkgExport & {_path: string})\n )\n\n const dtsTask: DtsWatchTask = {\n type: 'watch:dts',\n entries: [],\n }\n\n const rollupTasks: Record<string, RollupWatchTask> = {}\n\n function addRollupTaskEntry(format: PkgFormat, runtime: PkgRuntime, entry: RollupTaskEntry) {\n const buildId = `${format}:${runtime}`\n\n if (rollupTasks[buildId]) {\n rollupTasks[buildId].entries.push(entry)\n } else {\n rollupTasks[buildId] = {\n type: 'watch:js',\n buildId,\n entries: [entry],\n runtime,\n format,\n target: target[runtime],\n }\n }\n }\n\n // Parse `dts` tasks\n for (const exp of exports) {\n const importId = path.join(pkg.name, exp._path)\n\n if (exp.types) {\n dtsTask.entries.push({\n importId,\n exportPath: exp._path,\n sourcePath: exp.source,\n targetPath: exp.types,\n })\n }\n }\n\n // Parse rollup:commonjs:* tasks\n for (const exp of exports) {\n const output = exp.require\n\n if (!output) continue\n\n addRollupTaskEntry('commonjs', ctx.runtime, {\n path: exp._path,\n source: exp.source,\n output,\n })\n }\n\n // Parse rollup:commonjs:browser tasks\n for (const exp of exports) {\n const output = exp.browser?.require\n\n if (!output) continue\n\n addRollupTaskEntry('commonjs', 'browser', {\n path: exp._path,\n source: exp.browser?.source || exp.source,\n output,\n })\n }\n\n // Parse rollup:esm:* tasks\n for (const exp of exports) {\n const output = exp.import\n\n if (!output) continue\n\n addRollupTaskEntry('esm', ctx.runtime, {\n path: exp._path,\n source: exp.source,\n output,\n })\n }\n\n // Parse rollup:esm:browser tasks\n for (const exp of exports) {\n const output = exp.browser?.import\n\n if (!output) continue\n\n addRollupTaskEntry('esm', 'browser', {\n path: exp._path,\n source: exp.browser?.source || exp.source,\n output,\n })\n }\n\n if (dtsTask.entries.length) {\n tasks.push(dtsTask)\n }\n\n tasks.push(...Object.values(rollupTasks))\n\n // Write legacy exports files\n if (config?.legacyExports) {\n for (const exp of exports) {\n if (exp._exported && exp._path !== '.') {\n const relativeTargetPath = (exp.browser?.import || exp.import || '').replace(\n /\\.[^/.]+$/,\n ''\n )\n\n if (relativeTargetPath) {\n fs.writeFileSync(\n path.resolve(cwd, `${exp._path}.js`),\n [`// AUTO-GENERATED – DO NOT EDIT`, `export * from '${relativeTargetPath}'`, ``].join(\n '\\n'\n )\n )\n }\n }\n }\n }\n\n return tasks\n}\n","import globby from 'globby'\n\nexport function globFiles(patterns: string[]): Promise<string[]> {\n return globby(patterns)\n}\n","import chokidar from 'chokidar'\nimport {Observable} from 'rxjs'\n\nexport interface FileEvent {\n type: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir'\n file: string\n}\n\nexport function watchFiles(patterns: string[]): Observable<FileEvent> {\n return new Observable((observer) => {\n const watcher = chokidar.watch(patterns, {\n ignoreInitial: true,\n })\n\n function handleFileEvent(\n type: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir',\n file: string\n ) {\n observer.next({type, file})\n }\n\n watcher.on('all', handleFileEvent)\n\n return () => {\n watcher.off('all', handleFileEvent)\n watcher.close()\n }\n })\n}\n","import path from 'path'\nimport {Observable} from 'rxjs'\nimport {distinctUntilChanged, scan, startWith} from 'rxjs/operators'\nimport {globFiles} from './globFiles'\nimport {Logger} from './logger'\nimport {watchFiles} from './watchFiles'\n\nexport async function watchConfigFiles(options: {\n cwd: string\n logger: Logger\n}): Promise<Observable<string[]>> {\n const {cwd, logger} = options\n\n const initialFiles = await globFiles([\n path.resolve(cwd, 'package.json'),\n path.resolve(cwd, 'package.config.cjs'),\n path.resolve(cwd, 'package.config.js'),\n path.resolve(cwd, 'package.config.ts'),\n ])\n\n const fileEvent$ = watchFiles([\n path.resolve(cwd, 'package.json'),\n path.resolve(cwd, 'package.config.cjs'),\n path.resolve(cwd, 'package.config.js'),\n path.resolve(cwd, 'package.config.ts'),\n ])\n\n return fileEvent$.pipe(\n scan((files, fileEvent) => {\n if (fileEvent.type === 'add') {\n return files.concat(fileEvent.file)\n }\n\n if (fileEvent.type === 'unlink') {\n return files.filter((f) => f !== fileEvent.file)\n }\n\n if (fileEvent.type === 'change') {\n logger.log(\n '--------------------------------------------------------------------------------'\n )\n logger.info(path.relative(cwd, fileEvent.file), 'changed')\n logger.log('')\n\n return files.slice(0) // trigger update\n }\n\n return files\n }, initialFiles),\n startWith(initialFiles),\n distinctUntilChanged()\n )\n}\n","import path from 'path'\nimport {switchMap} from 'rxjs'\nimport {getPkgExtMap, loadConfig, loadPkgWithReporting} from './core'\nimport {createLogger} from './logger'\nimport {resolveBuildContext} from './resolveBuildContext'\nimport {resolveWatchTasks} from './resolveWatchTasks'\nimport {WatchTask, TaskHandler, watchTaskHandlers} from './tasks'\nimport {watchConfigFiles} from './watchConfigFiles'\n\n/** @public */\nexport async function watch(options: {\n cwd: string\n strict?: boolean\n tsconfig?: string\n}): Promise<void> {\n const {cwd, strict = false, tsconfig: tsconfigOption} = options\n\n const logger = createLogger()\n\n const configFiles$ = await watchConfigFiles({cwd, logger})\n\n const ctx$ = configFiles$.pipe(\n switchMap(async (configFiles) => {\n const files = configFiles.map((f) => path.relative(cwd, f))\n\n const packageJsonPath = files.find((f) => f === 'package.json')\n\n if (!packageJsonPath) {\n throw new Error('missing package.json')\n }\n\n const pkg = await loadPkgWithReporting({cwd, logger})\n const config = await loadConfig({cwd})\n const extMap = getPkgExtMap({legacyExports: config?.legacyExports ?? false})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n\n return resolveBuildContext({config, cwd, extMap, logger, pkg, strict, tsconfig})\n })\n )\n\n ctx$.subscribe(async (ctx) => {\n const watchTasks = resolveWatchTasks(ctx)\n\n for (const task of watchTasks) {\n const handler = watchTaskHandlers[task.type] as TaskHandler<WatchTask, unknown>\n const result$ = handler.exec(ctx, task)\n\n result$.subscribe({\n error: (err) => {\n ctx.logger.error(err)\n ctx.logger.log()\n\n process.exit(1)\n },\n next: (result) => {\n handler.complete(ctx, task, result)\n },\n complete: () => {\n ctx.logger.success(handler.name(ctx, task))\n ctx.logger.log()\n },\n })\n }\n })\n}\n"],"names":["DEFAULT_BROWSERSLIST_QUERY","isRecord","value","Boolean","Array","isArray","CONFIG_FILE_NAMES","findConfigFile","cwd","pkgJsonPath","findConfig","pkgPath","path","dirname","fileName","configPath","resolve","exists","fileExists","filePath","stat","_","loadConfig","options","pkgUp","root","configFile","startsWith","esbuildOptions","extensions","unregister","globalThis","__DEV__","register","mod","require","default","resolveConfigProperty","prop","initialValue","defineConfig","configOptions","pkgSchema","z","object","type","enum","name","string","version","license","bin","optional","record","dependencies","devDependencies","peerDependencies","source","main","browser","module","types","exports","union","custom","val","test","import","node","browserslist","array","validatePkg","input","pkg","parse","loadPkg","Error","buf","fs","readFile","JSON","toString","loadPkgWithReporting","logger","err","ZodError","issue","issues","code","error","formatPath","chalk","magenta","expected","received","join","process","exit","segments","map","s","idx","validateExports","_exports","extMap","ext","errors","exp","endsWith","commonjs","push","_path","esm","parseExports","strict","rootExport","_exported","extraExports","exportPath","exportEntry","Object","entries","assign","extraExport","length","DEFAULT_PKG_EXT_MAP","getPkgExtMap","legacyExports","ret","loadTSConfig","tsconfigPath","ts","sys","readConfigFile","parseJsonConfigFileContent","config","createLogger","log","console","info","args","blue","warn","yellow","red","success","green","pathContains","containerPath","itemPath","relative","findCommonDirPath","filePaths","dirPath","sortAsNumber","a","b","aVersion","Number","bVersion","resolveBrowserslistVersions","query","result","key","split","andChr","filter","andFf","chrome","edge","ff","iosSaf","saf","opera","versions","concat","sort","resolveBrowserTarget","target","resolveNodeTarget","resolveBuildContext","emitDeclarationOnly","tsconfig","targetVersions","nodeTarget","webTarget","parsedExports","reduce","acc","x","parsedExternal","keys","external","outputPaths","values","flatMap","_a","_b","_c","_d","p","commonDistPath","configDistPath","dist","distPath","ctx","files","runtime","resolveBuildTasks","_e","bundles","tasks","dtsTask","rollupTasks","addRollupTaskEntry","format","entry","buildId","importId","sourcePath","targetPath","output","bundle","relativeTargetPath","replace","writeFileSync","createSpinner","msg","startTime","Date","now","complete","gray","printExtractMessages","messages","warnings","logLevel","sourceFilePath","messageId","cyan","sourceFileLine","sourceFileColumn","text","printDiagnostic","diagnostic","file","start","line","character","getLineAndCharacterOfPosition","message","flattenDiagnosticMessageText","messageText","category","DiagnosticCategory","Warning","Message","Suggestion","buildTypes","outDir","compilerOptions","declaration","declarationDir","noEmit","program","createProgram","fileNames","emitResult","emit","allDiagnostics","getPreEmitDiagnostics","diagnostics","emitSkipped","diag","DtsError","constructor","createApiExtractorConfig","projectFolder","mainEntryPointFilePath","apiReport","enabled","reportFileName","compiler","tsconfigFilePath","docModel","apiJsonFilePath","dtsRollup","untrimmedFilePath","tsdocMetadata","createTSDocConfig","opts","customTags","tsDocBaseBuf","tsDocBaseConfig","tagDefinitions","t","tagName","syntaxKind","allowMultiple","supportForTags","customTag","TSDocConfigFile","loadFromObject","noStandardTags","extractModuleBlocksFromTypes","tsOutDir","extractResult","compilerState","moduleBlocks","allProgramFiles","getSourceFiles","sourceFiles","sourceFile","includes","extractModuleBlocks","fileContent","ast","parser","typeScriptParser","body","print","LOG_LEVELS","off","getExtractMessagesConfig","rules","ruleToLogLevel","defaultLevel","r","compilerMessageReporting","extractorMessageReporting","addToApiReportFile","tsdocMessageReporting","extractTypes","projectPath","sourceTypesPath","tmpPath","tsdocConfigFile","extractorConfig","ExtractorConfig","prepare","configObject","configObjectFullPath","packageJsonFullPath","extractorResult","Extractor","invoke","localBuild","showVerboseMessages","messageCallback","handled","typesPath","typesBuf","prettierConfig","prettier","resolveConfig","mkdirp","writeFile","filepath","rimraf","promisify","rimrafCallback","doExtract","task","results","rootDir","extract","some","_ctx","exec","Observable","observer","then","next","catch","_task","dtsWatchTask","createConsoleSpy","onRestored","original","restore","resolveRollupConfig","buildTask","outputExt","minify","pathAliases","fromEntries","paths","baseUrl","exportIds","sourcePaths","e","replacements","define","stringify","defaultPlugins","preventAssignment","arg","find","env","PKG_VERSION","alias","nodeResolve","preferBuiltins","esmExternals","json","esbuild","jsx","jsxFactory","jsxFragment","jsxImportSource","getBabelOutputPlugin","babelrc","plugins","presets","targets","terser","comments","_node","comment","userPlugins","rollup","inputOptions","context","id","importer","idPath","idParts","treeshake","propertyReadSideEffects","outputOptions","chunkFileNames","parts","compact","dir","entryFileNames","esModule","interop","minifyInternalExports","sourcemap","rollupTask","execPromise","consoleSpy","String","onwarn","warning","generate","chunkOrAsset","write","close","rollupWatchTask","watchOptions","watcher","rollupWatch","on","event","buildTaskHandlers","watchTaskHandlers","build","tsconfigOption","buildTasks","handler","taskName","spinner","toPromise","RE_CWD","RegExp","getFilesize","stats","statSync","prettyBytes","size","accessSync","getFileInfo","printPackageTree","tree","fileInfo","treeify","asTree","check","missingFiles","_paths","esbuildResult","stdin","contents","loader","resolveDir","outfile","platform","_err","location","detail","lineText","column","resolveWatchTasks","globFiles","patterns","globby","watchFiles","chokidar","watch","ignoreInitial","handleFileEvent","watchConfigFiles","initialFiles","fileEvent$","pipe","scan","fileEvent","f","slice","startWith","distinctUntilChanged","configFiles$","ctx$","switchMap","configFiles","packageJsonPath","subscribe","watchTasks","result$"],"mappings":"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"}