@sanity/pkg-utils 1.6.0 → 1.7.2

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 (48) hide show
  1. package/dist/{__resolveBuildContext-bc09bff3.cjs → __resolveBuildContext-9b0aa9f9.cjs} +218 -104
  2. package/dist/__resolveBuildContext-9b0aa9f9.cjs.map +1 -0
  3. package/dist/{_build-89aeaf6a.cjs → _build-6e7deb31.cjs} +82 -47
  4. package/dist/_build-6e7deb31.cjs.map +1 -0
  5. package/dist/{_buildAction-8855cb5a.cjs → _buildAction-d8841b41.cjs} +35 -8
  6. package/dist/_buildAction-d8841b41.cjs.map +1 -0
  7. package/dist/_check-04a1f749.cjs +242 -0
  8. package/dist/_check-04a1f749.cjs.map +1 -0
  9. package/dist/{_checkAction-a96c4021.cjs → _checkAction-09426a13.cjs} +17 -4
  10. package/dist/_checkAction-09426a13.cjs.map +1 -0
  11. package/dist/{_index-0e8b664d.cjs → _index-46cab21c.cjs} +331 -202
  12. package/dist/_index-46cab21c.cjs.map +1 -0
  13. package/dist/_watch-cf9c717f.cjs +264 -0
  14. package/dist/_watch-cf9c717f.cjs.map +1 -0
  15. package/dist/{_watchAction-bd901b01.cjs → _watchAction-5941527f.cjs} +38 -4
  16. package/dist/_watchAction-5941527f.cjs.map +1 -0
  17. package/dist/cli.cjs +24 -9
  18. package/dist/cli.cjs.map +1 -1
  19. package/dist/index.cjs +49 -10
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.ts +6 -4
  22. package/dist/index.js +763 -500
  23. package/dist/index.js.map +1 -1
  24. package/package.json +15 -9
  25. package/src/node/_core/config/_loadConfig.ts +5 -0
  26. package/src/node/_core/config/types.ts +3 -2
  27. package/src/node/_core/pkg/_loadPkg.ts +2 -1
  28. package/src/node/_core/pkg/_parseExports.ts +4 -3
  29. package/src/node/_core/pkg/_types.ts +3 -2
  30. package/src/node/_printPackageTree.ts +3 -1
  31. package/src/node/_resolveBuildTasks.ts +1 -3
  32. package/src/node/_resolveWatchTasks.ts +1 -3
  33. package/src/node/_spinner.ts +5 -13
  34. package/src/node/_tasks/rollup/_resolveRollupConfig.ts +26 -3
  35. package/src/node/build.ts +0 -3
  36. package/dist/__printPackageTree-3ff3ecd3.cjs +0 -76
  37. package/dist/__printPackageTree-3ff3ecd3.cjs.map +0 -1
  38. package/dist/__resolveBuildContext-bc09bff3.cjs.map +0 -1
  39. package/dist/_build-89aeaf6a.cjs.map +0 -1
  40. package/dist/_buildAction-8855cb5a.cjs.map +0 -1
  41. package/dist/_check-0ebe9af4.cjs +0 -118
  42. package/dist/_check-0ebe9af4.cjs.map +0 -1
  43. package/dist/_checkAction-a96c4021.cjs.map +0 -1
  44. package/dist/_index-0e8b664d.cjs.map +0 -1
  45. package/dist/_watch-cf0df170.cjs +0 -219
  46. package/dist/_watch-cf0df170.cjs.map +0 -1
  47. package/dist/_watchAction-bd901b01.cjs.map +0 -1
  48. package/src/node/_resolveEsTarget.ts +0 -39
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/node/_core/_defaults.ts","../src/node/_core/_isRecord.ts","../src/node/_core/config/_loadConfig.ts","../src/node/_core/config/_resolveConfigProperty.ts","../src/node/_core/config/defineConfig.ts","../src/node/_core/pkg/_loadPkg.ts","../src/node/_core/pkg/_loadPkgWithReporting.ts","../src/node/_core/pkg/_parseExports.ts","../src/node/_core/ts/_loadTSConfig.ts","../src/node/_resolveEsTarget.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/_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/_getFilesize.ts","../src/node/_printPackageTree.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/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 _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 path from 'path'\nimport {register} from 'esbuild-register/dist/node'\nimport findConfig from 'find-config'\nimport pkgUp from 'pkg-up'\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 = _findConfigFile(root)\n\n if (!configFile) {\n return undefined\n }\n\n try {\n const {unregister} = configFile.transform\n ? register({extensions: ['.js', '.ts']})\n : {unregister: () => undefined}\n\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const mod = require(configFile.path)\n\n unregister()\n\n return mod?.default || mod || undefined\n } catch (_) {\n return undefined\n }\n}\n\n// Looks for:\n// 1. package.config.ts\n// 2. package.config.cjs\n//\nfunction _findConfigFile(cwd: string): {path: string; transform: boolean} | null {\n const ts = findConfig('package.config.ts', {cwd})\n\n if (ts) return {path: ts, transform: true}\n\n const cjs = findConfig('package.config.cjs', {cwd})\n\n if (cjs) return {path: cjs, transform: false}\n\n return null\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 fs from 'fs/promises'\nimport pkgUp from 'pkg-up'\nimport {z} from 'zod'\nimport {_PackageJSON} from './_types'\n\nconst pkgSchema = z.object({\n type: z.optional(z.enum(['module'])),\n name: z.string(),\n version: 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.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.object({\n source: z.string(),\n browser: z.optional(\n z.object({\n require: z.optional(z.string()),\n import: z.optional(z.string()),\n })\n ),\n node: z.optional(\n z.object({\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 types: z.optional(z.string()),\n })\n )\n ),\n browserslist: z.optional(z.array(z.string())),\n})\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 pkgSchema.parse(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 `${chalk.red('invalid type')} in ./package.json at ${chalk.magenta(\n `\\`${issue.path.join('')}\\``\n )} (expected ${issue.expected}, received ${issue.received})`\n )\n }\n }\n } else {\n console.error(err)\n }\n\n process.exit(1)\n }\n}\n","import {_isRecord} from '../_isRecord'\nimport {PkgExport} from '../config'\nimport {_PackageJSON} from './_types'\n\n/** @internal */\nexport function _parseExports(options: {pkg: _PackageJSON}): (PkgExport & {_path: string})[] {\n const {pkg} = options\n\n const rootExport: PkgExport & {_path: string} = {\n _exported: true,\n _path: '.',\n browser: pkg.browser && {\n require: pkg.main && pkg.browser[pkg.main],\n import: pkg.module && pkg.browser[pkg.module],\n },\n source: pkg.source || 'index.js',\n require: pkg.main,\n import: pkg.module,\n types: pkg.types,\n }\n\n const extraExports: (PkgExport & {_path: string})[] = []\n\n if (pkg.exports) {\n for (const [exportPath, exportEntry] of Object.entries(pkg.exports)) {\n if (_isRecord(exportEntry)) {\n if (exportPath === '.') {\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 throw new Error('string entries are not supported')\n }\n }\n }\n\n return [rootExport, ...extraExports]\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 {ScriptTarget} from 'typescript'\nimport {_BuildContext} from './_core'\n\nconst TS_TARGETS: Record<ScriptTarget, string> = {\n // ES3 = 0,\n 0: 'es3',\n // ES5 = 1,\n 1: 'es5',\n // ES2015 = 2,\n 2: 'es2015',\n // ES2016 = 3,\n 3: 'es2016',\n // ES2017 = 4,\n 4: 'es2017',\n // ES2018 = 5,\n 5: 'es2018',\n // ES2019 = 6,\n 6: 'es2019',\n // ES2020 = 7,\n 7: 'es2020',\n // ES2021 = 8,\n 8: 'es2021',\n // ES2022 = 9,\n 9: 'es2022',\n // ESNext = 99,\n 99: 'esnext',\n // JSON = 100,\n 100: 'esnext',\n // Latest = 99\n}\n\n/** @internal */\nexport function _resolveEsTarget(ctx: _BuildContext): string {\n const {ts} = ctx\n\n const tsTarget = ts.config?.options.target || 99\n\n return TS_TARGETS[tsTarget] || 'esnext'\n}\n","import fs from 'fs'\nimport path from 'path'\nimport {PkgExport, PkgFormat, PkgRuntime, _BuildContext} from './_core'\nimport {_resolveEsTarget} from './_resolveEsTarget'\nimport {_BuildTask, _DtsTask, _RollupTask, _RollupTaskEntry} from './_tasks'\n\n/** @internal */\nexport function _resolveBuildTasks(ctx: _BuildContext): _BuildTask[] {\n const {cwd, pkg, target} = ctx\n const esTarget = _resolveEsTarget(ctx)\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 dtsTasks: Record<string, _DtsTask> = {}\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] = {\n type: 'build:js',\n buildId,\n entries: [entry],\n runtime,\n format,\n target: [esTarget].concat(target[runtime]),\n }\n } else {\n rollupTasks[buildId].entries.push(entry)\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 if (!dtsTasks[importId]) {\n dtsTasks[importId] = {\n type: 'build:dts',\n importId,\n exportPath: exp._path,\n sourcePath: exp.source,\n targetPath: exp.types,\n }\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 tasks.push(...Object.values(dtsTasks))\n tasks.push(...Object.values(rollupTasks))\n\n // Parse rollup:esm:browser tasks\n for (const exp of exports) {\n if (exp._exported && exp._path !== '.') {\n const relativeTargetPath = (exp.browser?.import || exp.import || '').replace(/\\.[^/.]+$/, '')\n\n if (relativeTargetPath) {\n fs.writeFileSync(\n path.resolve(cwd, `${exp._path}.js`),\n [\n `// AUTO-GENERATED – DO NOT EDIT`,\n ``,\n // `export {default} from '${relativeTargetPath}'`,\n `export * from '${relativeTargetPath}'`,\n ``,\n ].join('\\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 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 path from 'path'\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 sourcePath: string\n tsconfig: ts.ParsedCommandLine\n}): Promise<{path: string}> {\n const {cwd, outDir, sourcePath, tsconfig} = 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 rootDir =\n path.relative(\n cwd,\n compilerOptions.rootDir\n ? path.resolve(cwd, compilerOptions.rootDir)\n : path.dirname(path.resolve(cwd, sourcePath))\n ) || '.'\n\n const program = ts.createProgram(tsconfig.fileNames, compilerOptions)\n\n const sourceFiles = program.getSourceFiles()\n const sourceFile = sourceFiles.find((f) => f.fileName === path.resolve(cwd, sourcePath))\n\n if (!sourceFile) {\n throw new Error(`source file not found: ${sourcePath}`)\n }\n\n const emitResult = program.emit()\n\n const allDiagnostics = ts.getPreEmitDiagnostics(program).concat(emitResult.diagnostics)\n\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 throw new Error('failed to compile')\n }\n }\n\n const typesPath = path\n .resolve(outDir, path.relative(rootDir, path.resolve(cwd, sourcePath)))\n .replace(/\\.[jt]sx?$/, '.d.ts')\n\n return {path: typesPath}\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 projectPath: string\n sourcePath: string\n tsconfigPath: string\n}): IConfigFile {\n const {distPath, exportPath, filePath, messages, projectPath, sourcePath, tsconfigPath} = 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: sourcePath,\n projectFolder: projectPath,\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 fs from 'fs/promises'\nimport path from 'path'\nimport {\n Extractor,\n ExtractorConfig,\n ExtractorLogLevel,\n ExtractorMessage,\n ExtractorResult,\n IExtractorMessagesConfig,\n} from '@microsoft/api-extractor'\nimport mkdirp from 'mkdirp'\nimport prettier from 'prettier'\nimport {PkgRuleLevel, PkgConfigOptions, _BuildFile} from '../../_core'\nimport {_createApiExtractorConfig} from './_createApiExtractorConfig'\nimport {_createTSDocConfig} from './_createTSDocConfig'\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\nexport async function _extractTypes(options: {\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 sourcePath: string\n tsconfigPath: string\n}): Promise<{extractorResult: ExtractorResult; messages: ExtractorMessage[]}> {\n const {distPath, exportPath, files, filePath, projectPath, rules, sourcePath, tsconfigPath} =\n options\n\n const tsdocConfigFile = await _createTSDocConfig({\n customTags: [],\n })\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 const messagesConfig: IExtractorMessagesConfig = {\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: 'warning' as ExtractorLogLevel,\n // addToApiReportFile: false\n // },\n\n // 'tsdoc-unsupported-tag': {\n // logLevel: 'none' as ExtractorLogLevel,\n // addToApiReportFile: false\n // },\n\n // 'tsdoc-undefined-tag': {\n // logLevel: 'none' as ExtractorLogLevel,\n // addToApiReportFile: false\n // }\n },\n }\n\n const extractorConfig: ExtractorConfig = ExtractorConfig.prepare({\n configObject: _createApiExtractorConfig({\n distPath,\n exportPath,\n filePath,\n messages: messagesConfig,\n projectPath,\n sourcePath,\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 await fs.writeFile(\n typesPath,\n prettier.format(typesBuf.toString(), {\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 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\nexport async function _doExtract(\n ctx: _BuildContext,\n task: _DtsTask | _DtsWatchTask\n): Promise<_DtsResult> {\n const {config, cwd, dist, files, ts} = ctx\n\n if (!ts.config || !ts.configPath) return {type: 'dts', messages: []}\n\n const sourcePath = task.sourcePath\n const exportPath = task.exportPath === '.' ? './index' : task.exportPath\n const distPath = path.resolve(cwd, dist)\n const filePath = path.relative(distPath, path.resolve(cwd, task.targetPath))\n\n const tmpDirPath = path.resolve(distPath, '__dts__')\n const tmpDir = {\n path: tmpDirPath,\n removeCallback: () => rimraf(tmpDirPath),\n }\n\n const types = await _buildTypes({\n cwd,\n outDir: tmpDir.path,\n sourcePath,\n tsconfig: ts.config,\n })\n\n const {messages} = await _extractTypes({\n cwd,\n exportPath,\n files,\n filePath,\n projectPath: cwd,\n rules: config?.extract?.rules,\n sourcePath: types.path,\n tsconfigPath: path.resolve(cwd, ts.configPath),\n distPath,\n })\n\n await tmpDir.removeCallback()\n\n if (messages.some((msg) => msg.logLevel === 'error')) {\n throw new _DtsError('encountered errors when extracting types', messages)\n }\n\n return {type: 'dts', messages}\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 ` ${chalk.blue(task.importId)}: ${task.sourcePath} -> ${task.targetPath}`,\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 ` ${chalk.blue(task.importId)}: ${task.sourcePath} -> ${task.targetPath}`,\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 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} from 'rollup'\nimport esbuild from 'rollup-plugin-esbuild'\nimport {_BuildContext} 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, external, dist: outDir, pkg, ts} = ctx\n const outputExt = format === 'commonjs' ? '.cjs' : pkg.type === 'module' ? '.mjs' : '.js'\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 return {\n inputOptions: {\n context: cwd,\n\n external: (id) => {\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 replace({\n preventAssignment: true,\n values: {\n ...(pkg.name === '@sanity/pkg-utils'\n ? {}\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 throw new Error(`could not find source entry: ${sourcePath}`)\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 }),\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 minify: config?.minify ?? true,\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 ],\n\n treeshake: {\n propertyReadSideEffects: false,\n },\n },\n outputOptions: {\n chunkFileNames: () => `_[name]-[hash]${outputExt}`,\n dir: outDir,\n entryFileNames: () => `[name]${outputExt}`,\n format,\n // esModule: true,\n exports: 'auto',\n // freeze: true,\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, dist: outDir} = ctx\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 {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'> = {source: entry.source}\n\n if (entry.browser) {\n exp.browser = {}\n\n if (entry.browser.import) exp.browser.import = _fileInfo(entry.browser.import)\n if (entry.browser.require) exp.browser.import = _fileInfo(entry.browser.require)\n }\n\n if (entry.import) exp.import = _fileInfo(entry.import)\n if (entry.require) exp.require = _fileInfo(entry.require)\n if (entry.types) exp.types = _fileInfo(entry.types)\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 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 // _loadConfig,\n // _loadPkgWithReporting,\n _loadTSConfig,\n _PackageJSON,\n _parseExports,\n _resolveConfigProperty,\n} from './_core'\nimport {_resolveBrowserslistVersions} from './_resolveBrowserslistVersions'\nimport {_resolveBrowserTarget} from './_resolveBrowserTarget'\nimport {_resolveNodeTarget} from './_resolveNodeTarget'\n\nexport async function _resolveBuildContext(options: {\n config?: PkgConfigOptions\n cwd: string\n pkg: _PackageJSON\n tsconfig: string\n}): Promise<_BuildContext> {\n const {config, cwd, pkg, tsconfig: tsconfigPath} = options\n\n const tsconfig = await _loadTSConfig({cwd, tsconfigPath})\n\n const targetVersions = _resolveBrowserslistVersions(pkg.browserslist || _DEFAULTS.browserslist)\n\n const srcPath = path.resolve(cwd, config?.src || 'src')\n const distPath = path.resolve(cwd, config?.dist || 'dist')\n\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}).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 const external = _resolveConfigProperty(config?.external, parsedExternal)\n\n const ctx: _BuildContext = {\n config,\n cwd,\n dist: path.relative(cwd, distPath),\n exports,\n external,\n files: [],\n logger: {\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 pkg,\n src: path.relative(cwd, srcPath),\n runtime: config?.runtime ?? '*',\n target,\n ts: {\n config: tsconfig,\n configPath: tsconfigPath,\n },\n }\n\n return ctx\n}\n","import chalk from 'chalk'\nimport ora from 'ora'\n\nexport function _spinner(msg: string): {complete: () => void; error: () => void} {\n const startTime = Date.now()\n\n const spinner = ora({\n spinner: 'dots',\n text: `${chalk.yellow('run ')} ${msg}`,\n })\n\n spinner.color = 'yellow'\n\n spinner.start()\n\n return {\n complete: () => {\n spinner.color = 'green'\n spinner.succeed(`${chalk.green('ok ')} ${msg} ${chalk.gray(`${Date.now() - startTime}ms`)}`)\n },\n error: () => {\n spinner.color = 'red'\n spinner.fail(chalk.red(`${msg} failed ${chalk.gray(`${Date.now() - startTime}ms`)}`))\n },\n }\n}\n","import {_loadConfig, _loadPkgWithReporting} from './_core'\nimport {_printPackageTree} from './_printPackageTree'\nimport {_resolveBuildContext} from './_resolveBuildContext'\nimport {_resolveBuildTasks} from './_resolveBuildTasks'\nimport {_spinner} from './_spinner'\nimport {_BuildTask, _TaskHandler, _buildTaskHandlers} from './_tasks'\n\n/** @public */\nexport async function build(options: {cwd: string; tsconfig?: string}): Promise<void> {\n const {cwd, tsconfig = 'tsconfig.json'} = options\n\n const pkg = await _loadPkgWithReporting({cwd})\n const config = await _loadConfig({cwd})\n\n const ctx = await _resolveBuildContext({config, cwd, pkg, 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 _printPackageTree(ctx)\n}\n","/* eslint-disable no-console */\n\nimport path from 'path'\nimport chalk from 'chalk'\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, tsconfig = 'tsconfig.json'} = options\n\n const pkg = await _loadPkgWithReporting({cwd})\n const config = await _loadConfig({cwd})\n const ctx = await _resolveBuildContext({config, cwd, pkg, tsconfig})\n\n _printPackageTree(ctx)\n\n if (strict) {\n const missingFiles: string[] = []\n\n // Check if there are missing files\n for (const [, exp] of Object.entries(ctx.exports || {})) {\n if (exp.source && !_fileExists(path.resolve(cwd, exp.source))) {\n missingFiles.push(exp.source)\n }\n\n if (exp.require && !_fileExists(path.resolve(cwd, exp.require))) {\n missingFiles.push(exp.require)\n }\n\n if (exp.import && !_fileExists(path.resolve(cwd, exp.import))) {\n missingFiles.push(exp.import)\n }\n\n if (exp.types && !_fileExists(path.resolve(cwd, exp.types))) {\n missingFiles.push(exp.types)\n }\n }\n\n if (missingFiles.length) {\n throw new Error('missing files')\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 [exportPath, exp] of Object.entries(ctx.exports || {})) {\n if (!exp._exported) continue\n if (exp.require) _paths.require.push(exportPath)\n if (exp.import) _paths.import.push(exportPath)\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 console.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 console.log(chalk.red('error'), _err.detail || _err.text)\n console.log(`${_err.location.line} | ${_err.location.lineText}`)\n console.log(\n 'in',\n `./${_err.location.file}:${_err.location.line}:${_err.location.column}`\n )\n } else {\n console.log(_err.detail || _err.text)\n }\n\n console.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 }\n\n if (esbuildResult.warnings.length > 0) {\n console.warn(...esbuildResult.warnings)\n }\n }\n }\n}\n","import fs from 'fs'\nimport path from 'path'\nimport {PkgExport, PkgFormat, PkgRuntime, _BuildContext} from './_core'\nimport {_resolveEsTarget} from './_resolveEsTarget'\nimport {_WatchTask, _DtsWatchTask, _RollupWatchTask, _RollupTaskEntry} from './_tasks'\n\n/** @internal */\nexport function _resolveWatchTasks(ctx: _BuildContext): _WatchTask[] {\n const {cwd, pkg, target} = ctx\n const esTarget = _resolveEsTarget(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 dtsTasks: Record<string, _DtsWatchTask> = {}\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] = {\n type: 'watch:js',\n buildId,\n entries: [entry],\n runtime,\n format,\n target: [esTarget].concat(target[runtime]),\n }\n } else {\n rollupTasks[buildId].entries.push(entry)\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 if (!dtsTasks[importId]) {\n dtsTasks[importId] = {\n type: 'watch:dts',\n importId,\n exportPath: exp._path,\n sourcePath: exp.source,\n targetPath: exp.types,\n }\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 tasks.push(...Object.values(dtsTasks))\n tasks.push(...Object.values(rollupTasks))\n\n // Parse rollup:esm:browser tasks\n for (const exp of exports) {\n if (exp._exported && exp._path !== '.') {\n const relativeTargetPath = (exp.browser?.import || exp.import || '').replace(/\\.[^/.]+$/, '')\n\n if (relativeTargetPath) {\n fs.writeFileSync(\n path.resolve(cwd, `${exp._path}.js`),\n [\n `// AUTO-GENERATED – DO NOT EDIT`,\n ``,\n `export {default} from '${relativeTargetPath}'`,\n `export * from '${relativeTargetPath}'`,\n ``,\n ].join('\\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: {cwd: string; tsconfig?: string}): Promise<void> {\n const {cwd, tsconfig = 'tsconfig.json'} = 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\n return _resolveBuildContext({config, cwd, pkg, 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, any>\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":["fs","rollupWatch","esbuild"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/node/_core/_defaults.ts","../src/node/_core/_isRecord.ts","../src/node/_core/config/_loadConfig.ts","../src/node/_core/config/_resolveConfigProperty.ts","../src/node/_core/config/defineConfig.ts","../src/node/_core/pkg/_loadPkg.ts","../src/node/_core/pkg/_loadPkgWithReporting.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/_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/_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 _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 path from 'path'\nimport {register} from 'esbuild-register/dist/node'\nimport findConfig from 'find-config'\nimport pkgUp from 'pkg-up'\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 = _findConfigFile(root)\n\n if (!configFile) {\n return undefined\n }\n\n // Do not accept config files outside of the root\n if (!configFile.path.startsWith(cwd)) {\n return undefined\n }\n\n try {\n const {unregister} = configFile.transform\n ? register({extensions: ['.js', '.ts']})\n : {unregister: () => undefined}\n\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const mod = require(configFile.path)\n\n unregister()\n\n return mod?.default || mod || undefined\n } catch (_) {\n return undefined\n }\n}\n\n// Looks for:\n// 1. package.config.ts\n// 2. package.config.cjs\n//\nfunction _findConfigFile(cwd: string): {path: string; transform: boolean} | null {\n const ts = findConfig('package.config.ts', {cwd})\n\n if (ts) return {path: ts, transform: true}\n\n const cjs = findConfig('package.config.cjs', {cwd})\n\n if (cjs) return {path: cjs, transform: false}\n\n return null\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 fs from 'fs/promises'\nimport pkgUp from 'pkg-up'\nimport {z} from 'zod'\nimport {_PackageJSON} from './_types'\n\nconst pkgSchema = z.object({\n type: z.optional(z.enum(['module'])),\n name: z.string(),\n version: 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.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.object({\n types: z.optional(z.string()),\n source: z.string(),\n browser: z.optional(\n z.object({\n require: z.optional(z.string()),\n import: z.optional(z.string()),\n })\n ),\n node: z.optional(\n z.object({\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 browserslist: z.optional(z.array(z.string())),\n})\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 pkgSchema.parse(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 `${chalk.red('invalid type')} in ./package.json at ${chalk.magenta(\n `\\`${issue.path.join('')}\\``\n )} (expected ${issue.expected}, received ${issue.received})`\n )\n }\n }\n } else {\n console.error(err)\n }\n\n process.exit(1)\n }\n}\n","import {_isRecord} from '../_isRecord'\nimport {PkgExport} from '../config'\nimport {_PackageJSON} from './_types'\n\n/** @internal */\nexport function _parseExports(options: {pkg: _PackageJSON}): (PkgExport & {_path: string})[] {\n const {pkg} = options\n\n const rootExport: PkgExport & {_path: string} = {\n _exported: true,\n _path: '.',\n types: pkg.types,\n source: pkg.source || 'index.js',\n browser: pkg.browser && {\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 || './index.js',\n }\n\n const extraExports: (PkgExport & {_path: string})[] = []\n\n if (pkg.exports) {\n for (const [exportPath, exportEntry] of Object.entries(pkg.exports)) {\n if (_isRecord(exportEntry)) {\n if (exportPath === '.') {\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 throw new Error('string entries are not supported')\n }\n }\n }\n\n return [rootExport, ...extraExports]\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 {cwd, pkg, target} = ctx\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 dtsTasks: Record<string, _DtsTask> = {}\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] = {\n type: 'build:js',\n buildId,\n entries: [entry],\n runtime,\n format,\n target: target[runtime],\n }\n } else {\n rollupTasks[buildId].entries.push(entry)\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 if (!dtsTasks[importId]) {\n dtsTasks[importId] = {\n type: 'build:dts',\n importId,\n exportPath: exp._path,\n sourcePath: exp.source,\n targetPath: exp.types,\n }\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 tasks.push(...Object.values(dtsTasks))\n tasks.push(...Object.values(rollupTasks))\n\n // Parse rollup:esm:browser tasks\n for (const exp of exports) {\n if (exp._exported && exp._path !== '.') {\n const relativeTargetPath = (exp.browser?.import || exp.import || '').replace(/\\.[^/.]+$/, '')\n\n if (relativeTargetPath) {\n fs.writeFileSync(\n path.resolve(cwd, `${exp._path}.js`),\n [\n `// AUTO-GENERATED – DO NOT EDIT`,\n ``,\n // `export {default} from '${relativeTargetPath}'`,\n `export * from '${relativeTargetPath}'`,\n ``,\n ].join('\\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 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 path from 'path'\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 sourcePath: string\n tsconfig: ts.ParsedCommandLine\n}): Promise<{path: string}> {\n const {cwd, outDir, sourcePath, tsconfig} = 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 rootDir =\n path.relative(\n cwd,\n compilerOptions.rootDir\n ? path.resolve(cwd, compilerOptions.rootDir)\n : path.dirname(path.resolve(cwd, sourcePath))\n ) || '.'\n\n const program = ts.createProgram(tsconfig.fileNames, compilerOptions)\n\n const sourceFiles = program.getSourceFiles()\n const sourceFile = sourceFiles.find((f) => f.fileName === path.resolve(cwd, sourcePath))\n\n if (!sourceFile) {\n throw new Error(`source file not found: ${sourcePath}`)\n }\n\n const emitResult = program.emit()\n\n const allDiagnostics = ts.getPreEmitDiagnostics(program).concat(emitResult.diagnostics)\n\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 throw new Error('failed to compile')\n }\n }\n\n const typesPath = path\n .resolve(outDir, path.relative(rootDir, path.resolve(cwd, sourcePath)))\n .replace(/\\.[jt]sx?$/, '.d.ts')\n\n return {path: typesPath}\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 projectPath: string\n sourcePath: string\n tsconfigPath: string\n}): IConfigFile {\n const {distPath, exportPath, filePath, messages, projectPath, sourcePath, tsconfigPath} = 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: sourcePath,\n projectFolder: projectPath,\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 fs from 'fs/promises'\nimport path from 'path'\nimport {\n Extractor,\n ExtractorConfig,\n ExtractorLogLevel,\n ExtractorMessage,\n ExtractorResult,\n IExtractorMessagesConfig,\n} from '@microsoft/api-extractor'\nimport mkdirp from 'mkdirp'\nimport prettier from 'prettier'\nimport {PkgRuleLevel, PkgConfigOptions, _BuildFile} from '../../_core'\nimport {_createApiExtractorConfig} from './_createApiExtractorConfig'\nimport {_createTSDocConfig} from './_createTSDocConfig'\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\nexport async function _extractTypes(options: {\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 sourcePath: string\n tsconfigPath: string\n}): Promise<{extractorResult: ExtractorResult; messages: ExtractorMessage[]}> {\n const {distPath, exportPath, files, filePath, projectPath, rules, sourcePath, tsconfigPath} =\n options\n\n const tsdocConfigFile = await _createTSDocConfig({\n customTags: [],\n })\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 const messagesConfig: IExtractorMessagesConfig = {\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: 'warning' as ExtractorLogLevel,\n // addToApiReportFile: false\n // },\n\n // 'tsdoc-unsupported-tag': {\n // logLevel: 'none' as ExtractorLogLevel,\n // addToApiReportFile: false\n // },\n\n // 'tsdoc-undefined-tag': {\n // logLevel: 'none' as ExtractorLogLevel,\n // addToApiReportFile: false\n // }\n },\n }\n\n const extractorConfig: ExtractorConfig = ExtractorConfig.prepare({\n configObject: _createApiExtractorConfig({\n distPath,\n exportPath,\n filePath,\n messages: messagesConfig,\n projectPath,\n sourcePath,\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 await fs.writeFile(\n typesPath,\n prettier.format(typesBuf.toString(), {\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 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\nexport async function _doExtract(\n ctx: _BuildContext,\n task: _DtsTask | _DtsWatchTask\n): Promise<_DtsResult> {\n const {config, cwd, dist, files, ts} = ctx\n\n if (!ts.config || !ts.configPath) return {type: 'dts', messages: []}\n\n const sourcePath = task.sourcePath\n const exportPath = task.exportPath === '.' ? './index' : task.exportPath\n const distPath = path.resolve(cwd, dist)\n const filePath = path.relative(distPath, path.resolve(cwd, task.targetPath))\n\n const tmpDirPath = path.resolve(distPath, '__dts__')\n const tmpDir = {\n path: tmpDirPath,\n removeCallback: () => rimraf(tmpDirPath),\n }\n\n const types = await _buildTypes({\n cwd,\n outDir: tmpDir.path,\n sourcePath,\n tsconfig: ts.config,\n })\n\n const {messages} = await _extractTypes({\n cwd,\n exportPath,\n files,\n filePath,\n projectPath: cwd,\n rules: config?.extract?.rules,\n sourcePath: types.path,\n tsconfigPath: path.resolve(cwd, ts.configPath),\n distPath,\n })\n\n await tmpDir.removeCallback()\n\n if (messages.some((msg) => msg.logLevel === 'error')) {\n throw new _DtsError('encountered errors when extracting types', messages)\n }\n\n return {type: 'dts', messages}\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 ` ${chalk.blue(task.importId)}: ${task.sourcePath} -> ${task.targetPath}`,\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 ` ${chalk.blue(task.importId)}: ${task.sourcePath} -> ${task.targetPath}`,\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} from 'rollup'\nimport esbuild from 'rollup-plugin-esbuild'\nimport {terser} from 'rollup-plugin-terser'\nimport {_BuildContext, _DEFAULTS} 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, external, dist: outDir, pkg, ts} = ctx\n const outputExt = format === 'commonjs' ? '.cjs' : pkg.type === 'module' ? '.mjs' : '.js'\n const minify = config?.minify ?? true\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 return {\n inputOptions: {\n context: cwd,\n\n external: (id) => {\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 replace({\n preventAssignment: true,\n values: {\n ...(pkg.name === '@sanity/pkg-utils'\n ? {}\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 throw new Error(`could not find source entry: ${sourcePath}`)\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 }),\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 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),\n\n treeshake: {\n propertyReadSideEffects: false,\n },\n },\n outputOptions: {\n chunkFileNames: () => `_[name]-[hash]${outputExt}`,\n dir: outDir,\n entryFileNames: () => `[name]${outputExt}`,\n format,\n // esModule: true,\n exports: 'auto',\n // freeze: true,\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, dist: outDir} = ctx\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 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 // _loadConfig,\n // _loadPkgWithReporting,\n _loadTSConfig,\n _PackageJSON,\n _parseExports,\n _resolveConfigProperty,\n} from './_core'\nimport {_resolveBrowserslistVersions} from './_resolveBrowserslistVersions'\nimport {_resolveBrowserTarget} from './_resolveBrowserTarget'\nimport {_resolveNodeTarget} from './_resolveNodeTarget'\n\nexport async function _resolveBuildContext(options: {\n config?: PkgConfigOptions\n cwd: string\n pkg: _PackageJSON\n tsconfig: string\n}): Promise<_BuildContext> {\n const {config, cwd, pkg, tsconfig: tsconfigPath} = options\n\n const tsconfig = await _loadTSConfig({cwd, tsconfigPath})\n\n const targetVersions = _resolveBrowserslistVersions(pkg.browserslist || _DEFAULTS.browserslist)\n\n const srcPath = path.resolve(cwd, config?.src || 'src')\n const distPath = path.resolve(cwd, config?.dist || 'dist')\n\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}).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 const external = _resolveConfigProperty(config?.external, parsedExternal)\n\n const ctx: _BuildContext = {\n config,\n cwd,\n dist: path.relative(cwd, distPath),\n exports,\n external,\n files: [],\n logger: {\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 pkg,\n src: path.relative(cwd, srcPath),\n runtime: config?.runtime ?? '*',\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/** @public */\nexport async function build(options: {cwd: string; tsconfig?: string}): Promise<void> {\n const {cwd, tsconfig = 'tsconfig.json'} = options\n\n const pkg = await _loadPkgWithReporting({cwd})\n const config = await _loadConfig({cwd})\n\n const ctx = await _resolveBuildContext({config, cwd, pkg, 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'> = {source: entry.source, default: entry.default}\n\n if (entry.browser) {\n exp.browser = {}\n\n if (entry.browser.import) exp.browser.import = _fileInfo(entry.browser.import)\n if (entry.browser.require) exp.browser.import = _fileInfo(entry.browser.require)\n }\n\n if (entry.import) exp.import = _fileInfo(entry.import)\n if (entry.require) exp.require = _fileInfo(entry.require)\n if (entry.types) exp.types = _fileInfo(entry.types)\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","/* eslint-disable no-console */\n\nimport path from 'path'\nimport chalk from 'chalk'\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, tsconfig = 'tsconfig.json'} = options\n\n const pkg = await _loadPkgWithReporting({cwd})\n const config = await _loadConfig({cwd})\n const ctx = await _resolveBuildContext({config, cwd, pkg, tsconfig})\n\n _printPackageTree(ctx)\n\n if (strict) {\n const missingFiles: string[] = []\n\n // Check if there are missing files\n for (const [, exp] of Object.entries(ctx.exports || {})) {\n if (exp.source && !_fileExists(path.resolve(cwd, exp.source))) {\n missingFiles.push(exp.source)\n }\n\n if (exp.require && !_fileExists(path.resolve(cwd, exp.require))) {\n missingFiles.push(exp.require)\n }\n\n if (exp.import && !_fileExists(path.resolve(cwd, exp.import))) {\n missingFiles.push(exp.import)\n }\n\n if (exp.types && !_fileExists(path.resolve(cwd, exp.types))) {\n missingFiles.push(exp.types)\n }\n }\n\n if (missingFiles.length) {\n throw new Error('missing files')\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 [exportPath, exp] of Object.entries(ctx.exports || {})) {\n if (!exp._exported) continue\n if (exp.require) _paths.require.push(exportPath)\n if (exp.import) _paths.import.push(exportPath)\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 console.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 console.log(chalk.red('error'), _err.detail || _err.text)\n console.log(`${_err.location.line} | ${_err.location.lineText}`)\n console.log(\n 'in',\n `./${_err.location.file}:${_err.location.line}:${_err.location.column}`\n )\n } else {\n console.log(_err.detail || _err.text)\n }\n\n console.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 }\n\n if (esbuildResult.warnings.length > 0) {\n console.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 {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 dtsTasks: Record<string, _DtsWatchTask> = {}\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] = {\n type: 'watch:js',\n buildId,\n entries: [entry],\n runtime,\n format,\n target: target[runtime],\n }\n } else {\n rollupTasks[buildId].entries.push(entry)\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 if (!dtsTasks[importId]) {\n dtsTasks[importId] = {\n type: 'watch:dts',\n importId,\n exportPath: exp._path,\n sourcePath: exp.source,\n targetPath: exp.types,\n }\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 tasks.push(...Object.values(dtsTasks))\n tasks.push(...Object.values(rollupTasks))\n\n // Parse rollup:esm:browser tasks\n for (const exp of exports) {\n if (exp._exported && exp._path !== '.') {\n const relativeTargetPath = (exp.browser?.import || exp.import || '').replace(/\\.[^/.]+$/, '')\n\n if (relativeTargetPath) {\n fs.writeFileSync(\n path.resolve(cwd, `${exp._path}.js`),\n [\n `// AUTO-GENERATED – DO NOT EDIT`,\n ``,\n `export {default} from '${relativeTargetPath}'`,\n `export * from '${relativeTargetPath}'`,\n ``,\n ].join('\\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: {cwd: string; tsconfig?: string}): Promise<void> {\n const {cwd, tsconfig = 'tsconfig.json'} = 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\n return _resolveBuildContext({config, cwd, pkg, 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, any>\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":["_DEFAULTS","browserslist","_isRecord","value","Boolean","Array","isArray","_loadConfig","options","cwd","pkgPath","pkgUp","root","path","dirname","configFile","_findConfigFile","startsWith","unregister","transform","register","extensions","mod","require","default","_","ts","findConfig","cjs","_resolveConfigProperty","prop","initialValue","defineConfig","configOptions","pkgSchema","z","object","type","optional","enum","name","string","version","bin","record","dependencies","devDependencies","peerDependencies","source","main","browser","module","types","exports","import","node","array","_loadPkg","Error","buf","fs","readFile","parse","JSON","toString","_loadPkgWithReporting","err","ZodError","issue","issues","code","console","log","chalk","red","magenta","join","expected","received","error","process","exit","_parseExports","pkg","rootExport","_exported","_path","extraExports","exportPath","exportEntry","Object","entries","assign","extraExport","push","_loadTSConfig","tsconfigPath","configPath","findConfigFile","sys","fileExists","readConfigFile","parseJsonConfigFileContent","config","_resolveBuildTasks","ctx","_a","_b","_c","_d","_e","target","tasks","map","exp","dtsTasks","rollupTasks","_addRollupTaskEntry","format","runtime","entry","buildId","importId","sourcePath","targetPath","output","values","relativeTargetPath","replace","writeFileSync","resolve","_printExtractMessages","messages","logger","warnings","filter","msg","logLevel","length","sourceFilePath","relative","messageId","cyan","yellow","sourceFileLine","sourceFileColumn","gray","text","errors","formatHost","getCurrentDirectory","getNewLine","newLine","getCanonicalFileName","useCaseSensitiveFileNames","f","toLowerCase","_buildTypes","outDir","tsconfig","compilerOptions","declaration","declarationDir","emitDeclarationOnly","noEmit","rootDir","program","createProgram","fileNames","sourceFiles","getSourceFiles","sourceFile","find","fileName","emitResult","emit","allDiagnostics","getPreEmitDiagnostics","concat","diagnostics","forEach","diagnostic","file","start","line","character","getLineAndCharacterOfPosition","message","flattenDiagnosticMessageText","messageText","emitSkipped","diag","category","DiagnosticCategory","formatDiagnostics","typesPath","_DtsError","constructor","_createApiExtractorConfig","distPath","filePath","projectPath","apiReport","enabled","reportFileName","compiler","tsconfigFilePath","docModel","apiJsonFilePath","dtsRollup","untrimmedFilePath","tsdocMetadata","mainEntryPointFilePath","projectFolder","_createTSDocConfig","opts","customTags","tsDocBaseBuf","tsDocBaseConfig","tagDefinitions","t","tagName","syntaxKind","allowMultiple","supportForTags","customTag","TSDocConfigFile","loadFromObject","noStandardTags","_LOG_LEVELS","info","off","warn","_extractTypes","files","rules","tsdocConfigFile","_ruleToLogLevel","key","defaultLevel","r","messagesConfig","compilerMessageReporting","extractorMessageReporting","addToApiReportFile","tsdocMessageReporting","extractorConfig","ExtractorConfig","prepare","configObject","configObjectFullPath","packageJsonFullPath","extractorResult","Extractor","invoke","localBuild","showVerboseMessages","messageCallback","handled","typesBuf","prettierConfig","prettier","resolveConfig","mkdirp","writeFile","filepath","rimraf","promisify","rimrafCallback","_doExtract","task","dist","tmpDirPath","tmpDir","removeCallback","extract","some","_dtsTask","_ctx","blue","exec","Observable","observer","then","result","next","complete","catch","_task","_dtsWatchTask","_resolveRollupConfig","buildTask","external","outputExt","minify","pathAliases","fromEntries","paths","val","_a2","baseUrl","inputOptions","context","id","idParts","split","includes","input","reduce","acc","onwarn","warning","rollupWarn","plugins","preventAssignment","arg","e","stringify","env","PKG_VERSION","alias","nodeResolve","preferBuiltins","commonjs","esmExternals","json","esbuild","jsx","jsxFactory","jsxFragment","jsxImportSource","getBabelOutputPlugin","presets","targets","terser","comments","_node","comment","test","treeshake","propertyReadSideEffects","outputOptions","chunkFileNames","dir","entryFileNames","sourcemap","_rollupTask","_execPromise","bundle","rollup","generate","chunkOrAsset","write","close","_rollupWatchTask","watchOptions","watcher","rollupWatch","on","event","success","_buildTaskHandlers","_watchTaskHandlers","_sortAsNumber","a","b","aVersion","Number","bVersion","_resolveBrowserslistVersions","query","andChr","andFf","chrome","edge","ff","iosSaf","saf","opera","versions","sort","_resolveBrowserTarget","_resolveNodeTarget","_resolveBuildContext","targetVersions","srcPath","src","nodeTarget","webTarget","parsedExports","x","parsedExternal","keys","args","green","_spinner","startTime","Date","now","build","buildTasks","handler","taskName","spinner","toPromise","RE_CWD","RegExp","_getFilesize","stats","statSync","prettyBytes","size","_fileExists","accessSync","_getFileInfo","p","exists","_printPackageTree","tree","_fileInfo","treeify","asTree","check","strict","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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"}