@sanity/pkg-utils 1.18.0 → 1.19.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 (106) hide show
  1. package/dist/_chunks/{build-f39a3550.js → build-bcb33ba5.js} +19 -19
  2. package/dist/_chunks/build-bcb33ba5.js.map +1 -0
  3. package/dist/_chunks/{buildAction-8f449d1d.js → buildAction-f240dab8.js} +6 -6
  4. package/dist/_chunks/buildAction-f240dab8.js.map +1 -0
  5. package/dist/_chunks/{check-87cbb6cc.js → check-1ea361f5.js} +26 -26
  6. package/dist/_chunks/check-1ea361f5.js.map +1 -0
  7. package/dist/_chunks/{checkAction-e7e455d4.js → checkAction-16be1201.js} +5 -5
  8. package/dist/_chunks/checkAction-16be1201.js.map +1 -0
  9. package/dist/_chunks/{_handleError-869dec25.js → handleError-65cf3242.js} +3 -3
  10. package/dist/_chunks/handleError-65cf3242.js.map +1 -0
  11. package/dist/_chunks/{index-7a851efa.js → index-79fdb33f.js} +63 -63
  12. package/dist/_chunks/index-79fdb33f.js.map +1 -0
  13. package/dist/_chunks/{_resolveBuildContext-7ca7e64e.js → resolveBuildContext-f2feec19.js} +60 -62
  14. package/dist/_chunks/resolveBuildContext-f2feec19.js.map +1 -0
  15. package/dist/_chunks/{watch-f6cf9246.js → watch-02c85f8a.js} +25 -25
  16. package/dist/_chunks/watch-02c85f8a.js.map +1 -0
  17. package/dist/_chunks/{watchAction-4cf253a0.js → watchAction-9cb9681b.js} +6 -6
  18. package/dist/_chunks/watchAction-9cb9681b.js.map +1 -0
  19. package/dist/cli.js +4 -4
  20. package/dist/index.d.ts +44 -46
  21. package/dist/index.esm.js +165 -167
  22. package/dist/index.esm.js.map +1 -1
  23. package/dist/index.js +22 -22
  24. package/dist/index.js.map +1 -1
  25. package/package.json +48 -1
  26. package/src/cli/buildAction.ts +2 -2
  27. package/src/cli/checkAction.ts +2 -2
  28. package/src/cli/{_handleError.ts → handleError.ts} +1 -1
  29. package/src/cli/watchAction.ts +2 -2
  30. package/src/node/build.ts +11 -11
  31. package/src/node/check.ts +11 -11
  32. package/src/node/{_core → core}/config/defineConfig.ts +0 -0
  33. package/src/node/{_core/config/_findConfigFile.ts → core/config/findConfigFile.ts} +3 -3
  34. package/src/node/core/config/index.ts +4 -0
  35. package/src/node/{_core/config/_loadConfig.ts → core/config/loadConfig.ts} +3 -3
  36. package/src/node/{_core/config/_resolveConfigProperty.ts → core/config/resolveConfigProperty.ts} +1 -1
  37. package/src/node/{_core → core}/config/types.ts +0 -0
  38. package/src/node/{_core/_constants.ts → core/constants.ts} +1 -1
  39. package/src/node/{_core → core}/contexts/buildContext.ts +5 -5
  40. package/src/node/{_core → core}/contexts/index.ts +0 -0
  41. package/src/node/core/defaults.ts +7 -0
  42. package/src/node/core/findCommonPath.test.ts +9 -0
  43. package/src/node/{_core/_findCommonPath.ts → core/findCommonPath.ts} +3 -3
  44. package/src/node/{_core → core}/index.ts +3 -3
  45. package/src/node/{_core/_isRecord.ts → core/isRecord.ts} +1 -1
  46. package/src/node/core/pkg/index.ts +4 -0
  47. package/src/node/{_core/pkg/_loadPkg.ts → core/pkg/loadPkg.ts} +4 -4
  48. package/src/node/{_core/pkg/_loadPkgWithReporting.ts → core/pkg/loadPkgWithReporting.ts} +6 -6
  49. package/src/node/{_core/pkg/_parseExports.ts → core/pkg/parseExports.ts} +7 -7
  50. package/src/node/{_core/pkg/_types.ts → core/pkg/types.ts} +1 -1
  51. package/src/node/{_core/pkg/_validateExports.ts → core/pkg/validateExports.ts} +5 -5
  52. package/src/node/{_core/pkg/_validatePkg.ts → core/pkg/validatePkg.ts} +2 -2
  53. package/src/node/core/ts/index.ts +1 -0
  54. package/src/node/{_core/ts/_loadTSConfig.ts → core/ts/loadTSConfig.ts} +1 -1
  55. package/src/node/{_getFilesize.ts → getFilesize.ts} +1 -1
  56. package/src/node/globFiles.ts +5 -0
  57. package/src/node/index.ts +3 -3
  58. package/src/node/{_printExtractMessages.ts → printExtractMessages.ts} +2 -2
  59. package/src/node/{_printPackageTree.ts → printPackageTree.ts} +17 -17
  60. package/src/node/{_resolveBrowserTarget.ts → resolveBrowserTarget.ts} +2 -2
  61. package/src/node/{_resolveBrowserslistVersions.ts → resolveBrowserslistVersions.ts} +11 -11
  62. package/src/node/{_resolveBuildContext.ts → resolveBuildContext.ts} +28 -28
  63. package/src/node/{_resolveBuildTasks.ts → resolveBuildTasks.ts} +13 -13
  64. package/src/node/{_resolveNodeTarget.ts → resolveNodeTarget.ts} +2 -2
  65. package/src/node/{_resolveWatchTasks.ts → resolveWatchTasks.ts} +11 -11
  66. package/src/node/{_spinner.ts → spinner.ts} +1 -1
  67. package/src/node/{_tasks/dts/_DtsError.ts → tasks/dts/DtsError.ts} +1 -1
  68. package/src/node/{_tasks/dts/_buildTypes.ts → tasks/dts/buildTypes.ts} +1 -1
  69. package/src/node/{_tasks/dts/_createApiExtractorConfig.ts → tasks/dts/createApiExtractorConfig.ts} +1 -1
  70. package/src/node/{_tasks/dts/_createTSDocConfig.ts → tasks/dts/createTSDocConfig.ts} +1 -1
  71. package/src/node/{_tasks/dts/_doExtract.ts → tasks/dts/doExtract.ts} +12 -12
  72. package/src/node/{_tasks/dts/_dtsTask.ts → tasks/dts/dtsTask.ts} +10 -10
  73. package/src/node/{_tasks/dts/_dtsWatchTask.ts → tasks/dts/dtsWatchTask.ts} +10 -10
  74. package/src/node/{_tasks/dts/_extractModuleBlocks.ts → tasks/dts/extractModuleBlocks.ts} +3 -3
  75. package/src/node/{_tasks/dts/_extractTypes.ts → tasks/dts/extractTypes.ts} +11 -11
  76. package/src/node/{_tasks/dts/_getExtractMessagesConfig.ts → tasks/dts/getExtractMessagesConfig.ts} +12 -12
  77. package/src/node/tasks/dts/index.ts +4 -0
  78. package/src/node/{_tasks/dts/_types.ts → tasks/dts/types.ts} +3 -3
  79. package/src/node/tasks/index.ts +19 -0
  80. package/src/node/tasks/rollup/index.ts +2 -0
  81. package/src/node/{_tasks/rollup/_resolveRollupConfig.ts → tasks/rollup/resolveRollupConfig.ts} +16 -11
  82. package/src/node/{_tasks/rollup/_rollupTask.ts → tasks/rollup/rollupTask.ts} +7 -7
  83. package/src/node/{_tasks/rollup/_rollupWatchTask.ts → tasks/rollup/rollupWatchTask.ts} +4 -4
  84. package/src/node/tasks/types.ts +57 -0
  85. package/src/node/watch.ts +13 -13
  86. package/src/node/{_watchConfigFiles.ts → watchConfigFiles.ts} +5 -5
  87. package/src/node/{_watchFiles.ts → watchFiles.ts} +5 -5
  88. package/dist/_chunks/_handleError-869dec25.js.map +0 -1
  89. package/dist/_chunks/_resolveBuildContext-7ca7e64e.js.map +0 -1
  90. package/dist/_chunks/build-f39a3550.js.map +0 -1
  91. package/dist/_chunks/buildAction-8f449d1d.js.map +0 -1
  92. package/dist/_chunks/check-87cbb6cc.js.map +0 -1
  93. package/dist/_chunks/checkAction-e7e455d4.js.map +0 -1
  94. package/dist/_chunks/index-7a851efa.js.map +0 -1
  95. package/dist/_chunks/watch-f6cf9246.js.map +0 -1
  96. package/dist/_chunks/watchAction-4cf253a0.js.map +0 -1
  97. package/src/node/_core/_defaults.ts +0 -9
  98. package/src/node/_core/_findCommonPath.test.ts +0 -9
  99. package/src/node/_core/config/index.ts +0 -4
  100. package/src/node/_core/pkg/index.ts +0 -4
  101. package/src/node/_core/ts/index.ts +0 -1
  102. package/src/node/_globFiles.ts +0 -5
  103. package/src/node/_tasks/_types.ts +0 -57
  104. package/src/node/_tasks/dts/index.ts +0 -4
  105. package/src/node/_tasks/index.ts +0 -19
  106. package/src/node/_tasks/rollup/index.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.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/_resolveBuildTasks.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/_core/_findCommonPath.ts","../src/node/_resolveBrowserslistVersions.ts","../src/node/_resolveBrowserTarget.ts","../src/node/_resolveNodeTarget.ts","../src/node/_resolveBuildContext.ts","../src/node/_spinner.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 // NOTE: using the `.mjs` extension causing issues in situations where\n // not every and all dependencies support ESM exports.\n // So for now, we require the ESM modules to have the `.esm.js` extension.\n esm: '.esm.js',\n },\n\n // pkg.type: \"module\"\n module: {\n commonjs: '.cjs',\n esm: '.js',\n },\n}\n","/** @internal */\nexport const _DEFAULTS = {\n browserslist: [\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}\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 try {\n const {unregister} = register({extensions: ['.js', '.mjs', '.ts']})\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 } catch (_) {\n return undefined\n }\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.optional(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","/* eslint-disable no-console */\n\nimport chalk from 'chalk'\nimport {ZodError} from 'zod'\nimport {_loadPkg} from './_loadPkg'\nimport {_PackageJSON} from './_types'\n\n/** @internal */\nexport async function _loadPkgWithReporting(options: {cwd: string}): Promise<_PackageJSON> {\n try {\n return await _loadPkg(options)\n } catch (err) {\n if (err instanceof ZodError) {\n for (const issue of err.issues) {\n if (issue.code === 'invalid_type') {\n console.log(\n [\n `${chalk.red('fail')} \\`${_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 console.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 {_MODULE_EXT} from '../_constants'\nimport {PkgExport} from '../config'\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 {_isRecord} from '../_isRecord'\nimport {PkgExport} from '../config'\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 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","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 ...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) => {\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 {InputOptions, OutputOptions, Plugin} from 'rollup'\nimport esbuild from 'rollup-plugin-esbuild'\nimport {terser} from 'rollup-plugin-terser'\nimport {_BuildContext, _DEFAULTS, _MODULE_EXT, _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, 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 || _DEFAULTS.browserslist}]],\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 onwarn(warning, rollupWarn) {\n if (!warning.code || !['CIRCULAR_DEPENDENCY'].includes(warning.code)) {\n rollupWarn(warning)\n }\n },\n\n plugins,\n\n treeshake: {\n propertyReadSideEffects: false,\n },\n },\n outputOptions: {\n chunkFileNames: () => `_chunks/[name]-[hash]${outputExt}`,\n dir: outDir,\n entryFileNames: () => (outputExt === '.esm.js' ? `[name].js` : `[name]${outputExt}`),\n format,\n exports: 'auto',\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 `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 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\nasync function _execPromise(ctx: _BuildContext, task: _RollupTask) {\n const {files, distPath} = ctx\n const outDir = path.relative(ctx.cwd, distPath)\n\n const {inputOptions, outputOptions} = _resolveRollupConfig(ctx, task)\n\n // Create bundle\n const bundle = await rollup(inputOptions)\n\n // an array of file names this bundle depends on\n // console.log(bundle.watchFiles)\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","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.log('')\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 {_BuildTaskHandlers, _WatchTaskHandlers} from './_types'\nimport {_dtsTask, _dtsWatchTask} from './dts'\nimport {_rollupTask, _rollupWatchTask} from './rollup'\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 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 chalk from 'chalk'\nimport {\n PkgConfigOptions,\n PkgExports,\n PkgRuntime,\n _BuildContext,\n _DEFAULTS,\n _loadTSConfig,\n _PackageJSON,\n _parseExports,\n _resolveConfigProperty,\n} from './_core'\nimport {_findCommonDirPath, _pathContains} from './_core/_findCommonPath'\nimport {_resolveBrowserslistVersions} from './_resolveBrowserslistVersions'\nimport {_resolveBrowserTarget} from './_resolveBrowserTarget'\nimport {_resolveNodeTarget} from './_resolveNodeTarget'\n\nfunction _createLogger(): _BuildContext['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(' warn'), ...args)\n },\n error: (...args) => {\n console.log(chalk.red(' fail'), ...args)\n },\n success: (...args) => {\n console.log(chalk.green(' ok '), ...args)\n },\n /* eslint-enable no-console */\n }\n}\n\nexport async function _resolveBuildContext(options: {\n config?: PkgConfigOptions\n cwd: string\n emitDeclarationOnly?: boolean\n pkg: _PackageJSON\n strict: boolean\n tsconfig: string\n}): Promise<_BuildContext> {\n const {config, cwd, emitDeclarationOnly = false, pkg, strict, tsconfig: tsconfigPath} = options\n const logger = _createLogger()\n const tsconfig = await _loadTSConfig({cwd, tsconfigPath})\n const targetVersions = _resolveBrowserslistVersions(pkg.browserslist || _DEFAULTS.browserslist)\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","/* eslint-disable no-console */\n\nimport chalk from 'chalk'\n\nexport function _spinner(msg: string): {complete: () => void; error: () => void} {\n const startTime = Date.now()\n\n console.log(`${chalk.yellow('run ')} ${msg}`)\n\n return {\n complete: () => {\n console.log(`${chalk.green('ok ')} ${chalk.gray(`${Date.now() - startTime}ms`)}`)\n },\n error: () => {\n console.log(`${chalk.red(`failed`)} ${chalk.gray(`${Date.now() - startTime}ms`)}`)\n },\n }\n}\n","import {_loadConfig, _loadPkgWithReporting} from './_core'\nimport {_resolveBuildContext} from './_resolveBuildContext'\nimport {_resolveBuildTasks} from './_resolveBuildTasks'\nimport {_spinner} 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\n const pkg = await _loadPkgWithReporting({cwd})\n const config = await _loadConfig({cwd})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n const ctx = await _resolveBuildContext({config, cwd, emitDeclarationOnly, pkg, strict, tsconfig})\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 = _spinner(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, any> = {}\n\n if (pkg.bin) {\n tree.bin = pkg.bin\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 `${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 source: entry.source,\n types: undefined,\n browser: undefined,\n node: undefined,\n import: undefined,\n require: undefined,\n default: 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: 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: 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 exp.default = _fileInfo(entry.default)\n\n return [chalk.green(path.join(pkg.name, exportPath)), exp]\n })\n )\n\n logger.log(treeify.asTree(tree, true, true))\n}\n","import path from 'path'\nimport esbuild, {BuildFailure} from 'esbuild'\nimport {_loadConfig, _loadPkgWithReporting} from './_core'\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\n const pkg = await _loadPkgWithReporting({cwd})\n const config = await _loadConfig({cwd})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n const ctx = await _resolveBuildContext({config, cwd, pkg, strict, tsconfig})\n const {logger} = ctx\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 chalk from 'chalk'\nimport {Observable} from 'rxjs'\nimport {distinctUntilChanged, scan, startWith} from 'rxjs/operators'\nimport {_globFiles} from './_globFiles'\nimport {_watchFiles} from './_watchFiles'\n\nexport async function _watchConfigFiles(options: {cwd: string}): Promise<Observable<string[]>> {\n const {cwd} = 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 /* eslint-disable no-console */\n console.log(\n '--------------------------------------------------------------------------------'\n )\n console.log(chalk.blue('info '), path.relative(cwd, fileEvent.file), 'changed')\n console.log('')\n /* eslint-enable no-console */\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 {_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 configFiles$ = await _watchConfigFiles({cwd})\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})\n const config = await _loadConfig({cwd})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n\n return _resolveBuildContext({config, cwd, 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","_DEFAULTS","browserslist","_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","unregister","register","extensions","mod","require","default","_resolveConfigProperty","prop","initialValue","defineConfig","configOptions","pkgSchema","z","object","type","optional","enum","name","string","version","license","bin","record","dependencies","devDependencies","peerDependencies","source","main","browser","types","exports","union","custom","val","test","import","node","array","_validatePkg","input","pkg","parse","_loadPkg","Error","buf","fs","readFile","JSON","toString","_loadPkgWithReporting","err","ZodError","issue","issues","code","console","log","chalk","red","_formatPath","magenta","expected","received","join","error","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","findConfigFile","sys","fileExists","readConfigFile","parseJsonConfigFileContent","config","_resolveBuildTasks","ctx","_a","_b","_c","_d","_e","target","bundles","tasks","dtsTask","rollupTasks","_addRollupTaskEntry","format","runtime","entry","buildId","importId","sourcePath","targetPath","emitDeclarationOnly","output","bundle","values","legacyExports","relativeTargetPath","replace","writeFileSync","_printExtractMessages","messages","logger","warnings","filter","msg","logLevel","sourceFilePath","relative","messageId","cyan","yellow","sourceFileLine","sourceFileColumn","gray","text","formatHost","getCurrentDirectory","getNewLine","newLine","getCanonicalFileName","useCaseSensitiveFileNames","f","toLowerCase","_buildTypes","outDir","tsconfig","compilerOptions","declaration","declarationDir","noEmit","program","createProgram","fileNames","emitResult","emit","allDiagnostics","getPreEmitDiagnostics","concat","diagnostics","forEach","diagnostic","file","start","line","character","getLineAndCharacterOfPosition","message","flattenDiagnosticMessageText","messageText","emitSkipped","diag","category","DiagnosticCategory","formatDiagnostics","_DtsError","constructor","_createApiExtractorConfig","distPath","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","info","off","warn","_getExtractMessagesConfig","rules","_ruleToLogLevel","key","defaultLevel","r","compilerMessageReporting","extractorMessageReporting","addToApiReportFile","tsdocMessageReporting","_extractTypes","files","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","result","extract","some","_dtsTask","_ctx","blue","exec","Observable","observer","then","next","complete","catch","_task","_dtsWatchTask","_resolveRollupConfig","buildTask","external","outputExt","minify","pathAliases","fromEntries","paths","_a2","baseUrl","exportIds","keys","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","split","reduce","acc","onwarn","warning","rollupWarn","treeshake","propertyReadSideEffects","outputOptions","chunkFileNames","dir","entryFileNames","sourcemap","_rollupTask","_execPromise","generate","chunkOrAsset","write","close","_rollupWatchTask","watchOptions","watcher","rollupWatch","on","event","success","_buildTaskHandlers","_watchTaskHandlers","_pathContains","containerPath","itemPath","_findCommonDirPath","filePaths","ret","dirPath","_sortAsNumber","a","b","aVersion","Number","bVersion","_resolveBrowserslistVersions","query","andChr","andFf","chrome","edge","ff","iosSaf","saf","opera","versions","sort","_resolveBrowserTarget","_resolveNodeTarget","_createLogger","args","green","_resolveBuildContext","targetVersions","nodeTarget","webTarget","parsedExports","x","parsedExternal","outputPaths","flatMap","p","commonDistPath","configDistPath","dist","_spinner","startTime","Date","now","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","_files","packageJsonPath","subscribe","watchTasks","result$"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.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/resolveBuildTasks.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/core/findCommonPath.ts","../src/node/resolveBrowserslistVersions.ts","../src/node/resolveBrowserTarget.ts","../src/node/resolveNodeTarget.ts","../src/node/resolveBuildContext.ts","../src/node/spinner.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 // NOTE: using the `.mjs` extension causing issues in situations where\n // not every and all dependencies support ESM exports.\n // So for now, we require the ESM modules to have the `.esm.js` extension.\n esm: '.esm.js',\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 try {\n const {unregister} = register({extensions: ['.js', '.mjs', '.ts']})\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 } catch (_) {\n return undefined\n }\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.optional(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","/* eslint-disable no-console */\n\nimport chalk from 'chalk'\nimport {ZodError} from 'zod'\nimport {loadPkg} from './loadPkg'\nimport {PackageJSON} from './types'\n\n/** @internal */\nexport async function loadPkgWithReporting(options: {cwd: string}): Promise<PackageJSON> {\n try {\n return await loadPkg(options)\n } catch (err) {\n if (err instanceof ZodError) {\n for (const issue of err.issues) {\n if (issue.code === 'invalid_type') {\n console.log(\n [\n `${chalk.red('fail')} \\`${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 console.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 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","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 ...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) => {\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 {InputOptions, OutputOptions, Plugin} from 'rollup'\nimport esbuild from 'rollup-plugin-esbuild'\nimport {terser} from 'rollup-plugin-terser'\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 onwarn(warning, rollupWarn) {\n if (!warning.code || !['CIRCULAR_DEPENDENCY'].includes(warning.code)) {\n rollupWarn(warning)\n }\n },\n\n plugins,\n\n treeshake: {\n propertyReadSideEffects: false,\n },\n },\n outputOptions: {\n chunkFileNames: () => `_chunks/[name]-[hash]${outputExt}`,\n dir: outDir,\n entryFileNames: () => (outputExt === '.esm.js' ? `[name].js` : `[name]${outputExt}`),\n format,\n exports: 'auto',\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 `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 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\nasync function execPromise(ctx: BuildContext, task: RollupTask) {\n const {files, distPath} = ctx\n const outDir = path.relative(ctx.cwd, distPath)\n\n const {inputOptions, outputOptions} = resolveRollupConfig(ctx, task)\n\n // Create bundle\n const bundle = await rollup(inputOptions)\n\n // an array of file names this bundle depends on\n // console.log(bundle.watchFiles)\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","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.log('')\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 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 chalk from 'chalk'\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 {resolveBrowserslistVersions} from './resolveBrowserslistVersions'\nimport {resolveBrowserTarget} from './resolveBrowserTarget'\nimport {resolveNodeTarget} from './resolveNodeTarget'\n\nfunction createLogger(): BuildContext['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(' warn'), ...args)\n },\n error: (...args) => {\n console.log(chalk.red(' fail'), ...args)\n },\n success: (...args) => {\n console.log(chalk.green(' ok '), ...args)\n },\n /* eslint-enable no-console */\n }\n}\n\nexport async function resolveBuildContext(options: {\n config?: PkgConfigOptions\n cwd: string\n emitDeclarationOnly?: boolean\n pkg: PackageJSON\n strict: boolean\n tsconfig: string\n}): Promise<BuildContext> {\n const {config, cwd, emitDeclarationOnly = false, pkg, strict, tsconfig: tsconfigPath} = options\n const logger = createLogger()\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","/* 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(`${chalk.yellow('run ')} ${msg}`)\n\n return {\n complete: () => {\n console.log(`${chalk.green('ok ')} ${chalk.gray(`${Date.now() - startTime}ms`)}`)\n },\n error: () => {\n console.log(`${chalk.red(`failed`)} ${chalk.gray(`${Date.now() - startTime}ms`)}`)\n },\n }\n}\n","import {loadConfig, loadPkgWithReporting} from './core'\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\n const pkg = await loadPkgWithReporting({cwd})\n const config = await loadConfig({cwd})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n const ctx = await resolveBuildContext({config, cwd, emitDeclarationOnly, pkg, strict, tsconfig})\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, any> = {}\n\n if (pkg.bin) {\n tree.bin = pkg.bin\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 `${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 source: entry.source,\n types: undefined,\n browser: undefined,\n node: undefined,\n import: undefined,\n require: undefined,\n default: 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: 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: 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 exp.default = fileInfo(entry.default)\n\n return [chalk.green(path.join(pkg.name, exportPath)), exp]\n })\n )\n\n logger.log(treeify.asTree(tree, true, true))\n}\n","import path from 'path'\nimport esbuild, {BuildFailure} from 'esbuild'\nimport {loadConfig, loadPkgWithReporting} from './core'\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\n const pkg = await loadPkgWithReporting({cwd})\n const config = await loadConfig({cwd})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n const ctx = await resolveBuildContext({config, cwd, pkg, strict, tsconfig})\n const {logger} = ctx\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 chalk from 'chalk'\nimport {Observable} from 'rxjs'\nimport {distinctUntilChanged, scan, startWith} from 'rxjs/operators'\nimport {globFiles} from './globFiles'\nimport {watchFiles} from './watchFiles'\n\nexport async function watchConfigFiles(options: {cwd: string}): Promise<Observable<string[]>> {\n const {cwd} = 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 /* eslint-disable no-console */\n console.log(\n '--------------------------------------------------------------------------------'\n )\n console.log(chalk.blue('info '), path.relative(cwd, fileEvent.file), 'changed')\n console.log('')\n /* eslint-enable no-console */\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 {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 configFiles$ = await watchConfigFiles({cwd})\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})\n const config = await loadConfig({cwd})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n\n return resolveBuildContext({config, cwd, 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","unregister","register","extensions","mod","require","default","resolveConfigProperty","prop","initialValue","defineConfig","configOptions","pkgSchema","z","object","type","optional","enum","name","string","version","license","bin","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","err","ZodError","issue","issues","code","console","log","chalk","red","formatPath","magenta","expected","received","join","error","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","resolveBuildTasks","ctx","_a","_b","_c","_d","_e","target","bundles","tasks","dtsTask","rollupTasks","addRollupTaskEntry","format","runtime","entry","buildId","importId","sourcePath","targetPath","emitDeclarationOnly","output","bundle","values","legacyExports","relativeTargetPath","replace","writeFileSync","printExtractMessages","messages","logger","warnings","filter","msg","logLevel","sourceFilePath","relative","messageId","cyan","yellow","sourceFileLine","sourceFileColumn","gray","text","formatHost","getCurrentDirectory","getNewLine","newLine","getCanonicalFileName","useCaseSensitiveFileNames","f","toLowerCase","buildTypes","outDir","tsconfig","compilerOptions","declaration","declarationDir","noEmit","program","createProgram","fileNames","emitResult","emit","allDiagnostics","getPreEmitDiagnostics","concat","diagnostics","forEach","diagnostic","file","start","line","character","getLineAndCharacterOfPosition","message","flattenDiagnosticMessageText","messageText","emitSkipped","diag","category","DiagnosticCategory","formatDiagnostics","DtsError","constructor","createApiExtractorConfig","distPath","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","info","off","warn","getExtractMessagesConfig","rules","ruleToLogLevel","key","defaultLevel","r","compilerMessageReporting","extractorMessageReporting","addToApiReportFile","tsdocMessageReporting","extractTypes","files","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","result","extract","some","_ctx","blue","exec","Observable","observer","then","next","complete","catch","_task","dtsWatchTask","resolveRollupConfig","buildTask","external","outputExt","minify","pathAliases","fromEntries","paths","_a2","baseUrl","exportIds","keys","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","split","reduce","acc","onwarn","warning","rollupWarn","treeshake","propertyReadSideEffects","outputOptions","chunkFileNames","dir","entryFileNames","sourcemap","rollupTask","execPromise","generate","chunkOrAsset","write","close","rollupWatchTask","watchOptions","watcher","rollupWatch","on","event","success","buildTaskHandlers","watchTaskHandlers","pathContains","containerPath","itemPath","findCommonDirPath","filePaths","ret","dirPath","sortAsNumber","a","b","aVersion","Number","bVersion","resolveBrowserslistVersions","query","andChr","andFf","chrome","edge","ff","iosSaf","saf","opera","versions","sort","resolveBrowserTarget","resolveNodeTarget","createLogger","args","green","resolveBuildContext","targetVersions","nodeTarget","webTarget","parsedExports","x","parsedExternal","outputPaths","flatMap","p","commonDistPath","configDistPath","dist","createSpinner","startTime","Date","now","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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"}