@sanity/pkg-utils 1.16.1 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/_chunks/{_resolveBuildContext-0d61dcca.js → _resolveBuildContext-6a4ed92a.js} +14 -4
  2. package/dist/_chunks/_resolveBuildContext-6a4ed92a.js.map +1 -0
  3. package/dist/_chunks/{build-8af0e4f8.js → build-ce9b3fba.js} +3 -3
  4. package/dist/_chunks/{build-8af0e4f8.js.map → build-ce9b3fba.js.map} +1 -1
  5. package/dist/_chunks/{buildAction-214e3e6b.js → buildAction-1f1e18f0.js} +4 -4
  6. package/dist/_chunks/{buildAction-214e3e6b.js.map → buildAction-1f1e18f0.js.map} +1 -1
  7. package/dist/_chunks/{check-f86cdc15.js → check-abba8425.js} +2 -2
  8. package/dist/_chunks/{check-f86cdc15.js.map → check-abba8425.js.map} +1 -1
  9. package/dist/_chunks/{checkAction-ea939b95.js → checkAction-0ec1ffd5.js} +3 -3
  10. package/dist/_chunks/{checkAction-ea939b95.js.map → checkAction-0ec1ffd5.js.map} +1 -1
  11. package/dist/_chunks/{index-6065d471.js → index-b6235a62.js} +92 -13
  12. package/dist/_chunks/index-b6235a62.js.map +1 -0
  13. package/dist/_chunks/{watch-1182e1e4.js → watch-7868b922.js} +3 -3
  14. package/dist/_chunks/{watch-1182e1e4.js.map → watch-7868b922.js.map} +1 -1
  15. package/dist/_chunks/{watchAction-ba840165.js → watchAction-9bef2175.js} +4 -4
  16. package/dist/_chunks/{watchAction-ba840165.js.map → watchAction-9bef2175.js.map} +1 -1
  17. package/dist/cli.js +4 -4
  18. package/dist/index.d.ts +14 -13
  19. package/dist/index.esm.js +111 -22
  20. package/dist/index.esm.js.map +1 -1
  21. package/dist/index.js +5 -5
  22. package/package.json +4 -2
  23. package/src/node/_core/pkg/_parseExports.ts +11 -1
  24. package/src/node/_core/pkg/_types.ts +14 -13
  25. package/src/node/_core/pkg/_validatePkg.ts +24 -21
  26. package/src/node/_tasks/dts/_declareModuleFix.ts +86 -0
  27. package/src/node/_tasks/dts/_doExtract.ts +6 -1
  28. package/dist/_chunks/_resolveBuildContext-0d61dcca.js.map +0 -1
  29. package/dist/_chunks/index-6065d471.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-b6235a62.js","sources":["../../src/node/_printExtractMessages.ts","../../src/node/_tasks/dts/_buildTypes.ts","../../src/node/_tasks/dts/_declareModuleFix.ts","../../src/node/_tasks/dts/_DtsError.ts","../../src/node/_tasks/dts/_createApiExtractorConfig.ts","../../src/node/_tasks/dts/_createTSDocConfig.ts","../../src/node/_tasks/dts/_getExtractMessagesConfig.ts","../../src/node/_tasks/dts/_extractTypes.ts","../../src/node/_tasks/dts/_doExtract.ts","../../src/node/_tasks/dts/_dtsTask.ts","../../src/node/_tasks/dts/_dtsWatchTask.ts","../../src/node/_tasks/rollup/_resolveRollupConfig.ts","../../src/node/_tasks/rollup/_rollupTask.ts","../../src/node/_tasks/rollup/_rollupWatchTask.ts","../../src/node/_tasks/index.ts"],"sourcesContent":["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 ts from 'typescript'\n\nexport const formatHost: ts.FormatDiagnosticsHost = {\n getCurrentDirectory: () => ts.sys.getCurrentDirectory(),\n getNewLine: () => ts.sys.newLine,\n getCanonicalFileName: ts.sys.useCaseSensitiveFileNames ? (f) => f : (f) => f.toLowerCase(),\n}\n\n/** @internal */\nexport async function _buildTypes(options: {\n cwd: string\n outDir: string\n tsconfig: ts.ParsedCommandLine\n strict: boolean\n}): Promise<void> {\n const {outDir, tsconfig, strict = false} = options\n\n const compilerOptions: ts.CompilerOptions = {\n ...tsconfig.options,\n declaration: true,\n declarationDir: outDir,\n emitDeclarationOnly: true,\n noEmit: false,\n outDir,\n }\n\n const program = ts.createProgram(tsconfig.fileNames, compilerOptions)\n\n const emitResult = program.emit()\n\n const allDiagnostics = ts.getPreEmitDiagnostics(program).concat(emitResult.diagnostics)\n\n // TODO: improve logging\n allDiagnostics.forEach((diagnostic) => {\n if (diagnostic.file && diagnostic.start) {\n const {line, character} = ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start)\n const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n')\n\n console.log(`${diagnostic.file.fileName} ${line + 1}:${character + 1}\\n${message}`)\n } else {\n console.log(ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n'))\n }\n })\n\n if (emitResult.emitSkipped) {\n const errors = allDiagnostics.filter((diag) => diag.category === ts.DiagnosticCategory.Error)\n\n if (errors.length) {\n console.error(ts.formatDiagnostics(errors, formatHost))\n\n if (strict) {\n throw new Error('failed to compile TypeScript definitions')\n }\n }\n }\n}\n","import fs from 'fs/promises'\nimport path from 'path'\n\n/**\n * '@microsoft/api-extractor' omits declare module blocks\n * This is a workaround that finds all module blocks in ts files and appends them to the result\n */\nexport async function _appendModuleBlocks({\n tsOutDir,\n extractTypesOutFile,\n}: {\n tsOutDir: string\n extractTypesOutFile: string\n}): Promise<void> {\n const moduleBlocks = await _extractModuleBlocksFromTypes(tsOutDir)\n\n if (moduleBlocks.length) {\n await fs.appendFile(extractTypesOutFile, '\\n' + moduleBlocks.join('\\n\\n'))\n }\n}\n\nasync function _extractModuleBlocksFromTypes(dirname: string): Promise<string[]> {\n const moduleBlocks: string[] = []\n\n const files = await _getFileList(dirname)\n\n for (const fileName of files) {\n const content = await fs.readFile(path.resolve(dirname, fileName), {\n encoding: 'utf-8',\n })\n\n if (content.includes('declare module')) {\n moduleBlocks.push(..._extractModuleBlocks(content))\n }\n }\n\n return moduleBlocks\n}\n\nasync function _getFileList(dirName: string): Promise<string[]> {\n let files: string[] = []\n const filesInCurrentDir = await fs.readdir(dirName, {withFileTypes: true})\n\n for (const fileInDir of filesInCurrentDir) {\n if (fileInDir.isDirectory()) {\n files = [...files, ...(await _getFileList(path.resolve(dirName, fileInDir.name)))]\n } else {\n files.push(path.resolve(dirName, fileInDir.name))\n }\n }\n\n return files\n}\n\nexport function _extractModuleBlocks(fileContent: string): string[] {\n const moduleBlocks: string[] = []\n\n let moduleIndentLevel = 0\n let moduleLines: string[] = []\n\n const lines = fileContent.split('\\n')\n\n for (const line of lines) {\n if (!moduleLines.length) {\n const moduleIndex = line.indexOf('declare module')\n const isModuleStart = moduleIndex > -1\n\n if (isModuleStart) {\n moduleIndentLevel = moduleIndex\n moduleLines = [line]\n }\n } else {\n moduleLines.push(line)\n const blockEndIndex = line.indexOf('}')\n\n if (blockEndIndex === moduleIndentLevel) {\n moduleBlocks.push(\n moduleLines.map((l) => l.substring(moduleIndentLevel, l.length)).join('\\n')\n )\n moduleLines = []\n }\n }\n }\n\n return moduleBlocks\n}\n","import {ExtractorMessage} from '@microsoft/api-extractor'\n\n/** @internal */\nexport class _DtsError extends Error {\n messages: ExtractorMessage[]\n\n constructor(message: string, messages: ExtractorMessage[]) {\n super(message)\n this.messages = messages\n }\n}\n","import path from 'path'\nimport {IConfigFile, IExtractorMessagesConfig} from '@microsoft/api-extractor'\n\nexport function _createApiExtractorConfig(options: {\n distPath: string\n exportPath: string\n filePath: string\n messages: IExtractorMessagesConfig\n projectFolder: string\n mainEntryPointFilePath: string\n tsconfigPath: string\n}): IConfigFile {\n const {\n distPath,\n exportPath,\n filePath,\n messages,\n projectFolder,\n mainEntryPointFilePath,\n tsconfigPath,\n } = options\n\n return {\n apiReport: {\n enabled: false,\n reportFileName: '<unscopedPackageName>.api.md',\n },\n // bundledPackages: [],\n compiler: {\n tsconfigFilePath: tsconfigPath,\n },\n docModel: {\n enabled: false,\n apiJsonFilePath: path.resolve(distPath, `${exportPath}.api.json`),\n },\n dtsRollup: {\n enabled: true,\n untrimmedFilePath: path.resolve(distPath, filePath),\n // betaTrimmedFilePath: path.resolve(distPath, filePath.replace('.d.ts', '-beta.d.ts')),\n // publicTrimmedFilePath: path.resolve(distPath, filePath.replace('.d.ts', '-public.d.ts')),\n },\n tsdocMetadata: {\n enabled: false,\n },\n messages,\n mainEntryPointFilePath,\n projectFolder,\n }\n}\n","import {readFile} from 'fs/promises'\nimport {TSDocConfigFile} from '@microsoft/tsdoc-config'\nimport {parse} from 'jsonc-parser'\n\n/** @public */\nexport interface TSDocCustomTag {\n name: string\n syntaxKind: 'block' | 'modifier'\n allowMultiple?: boolean\n}\n\n/** @internal */\nexport async function _createTSDocConfig(opts: {\n customTags: TSDocCustomTag[]\n}): Promise<TSDocConfigFile | undefined> {\n const {customTags} = opts\n\n if (customTags.length === 0) {\n return undefined\n }\n\n const tsDocBaseBuf = await readFile(\n require.resolve('@microsoft/api-extractor/extends/tsdoc-base.json')\n )\n\n // Include the definitions that are required for API Extractor\n // extends: ['@microsoft/api-extractor/extends/tsdoc-base.json'],\n const tsDocBaseConfig = parse(tsDocBaseBuf.toString())\n\n // Define custom tags and specify how they should be parsed\n const tagDefinitions = (tsDocBaseConfig.tagDefinitions || []).concat(\n customTags.map((t) => ({\n tagName: `@${t.name}`,\n syntaxKind: t.syntaxKind,\n allowMultiple: t.allowMultiple,\n }))\n )\n\n // Indicate that custom tags are supported by your tooling.\n // (Without this, warnings may be reported saying that a tag is unsupported.)\n const supportForTags = {...tsDocBaseConfig.supportForTags}\n\n for (const customTag of customTags) {\n supportForTags[`@${customTag.name}`] = true\n }\n\n return TSDocConfigFile.loadFromObject({\n ...tsDocBaseConfig,\n noStandardTags: false,\n tagDefinitions,\n supportForTags,\n })\n}\n","import {ExtractorLogLevel, IExtractorMessagesConfig} from '@microsoft/api-extractor'\nimport {PkgRuleLevel, PkgConfigOptions} from '../../_core'\n\nconst _LOG_LEVELS: Record<PkgRuleLevel, ExtractorLogLevel> = {\n error: 'error' as ExtractorLogLevel.Error,\n info: 'info' as ExtractorLogLevel.Info,\n off: 'none' as ExtractorLogLevel.None,\n warn: 'warning' as ExtractorLogLevel.Warning,\n}\n\n/** @internal */\nexport function _getExtractMessagesConfig(options: {\n rules: NonNullable<PkgConfigOptions['extract']>['rules']\n}): IExtractorMessagesConfig {\n const {rules} = options\n\n function _ruleToLogLevel(\n key: keyof NonNullable<NonNullable<PkgConfigOptions['extract']>['rules']>,\n defaultLevel?: ExtractorLogLevel\n ) {\n const r = rules?.[key]\n\n return (r ? _LOG_LEVELS[r] : defaultLevel || 'warning') as ExtractorLogLevel\n }\n\n return {\n compilerMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n },\n },\n\n extractorMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n\n 'ae-forgotten-export': {\n logLevel: _ruleToLogLevel('ae-forgotten-export', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-incompatible-release-tags': {\n logLevel: _ruleToLogLevel('ae-incompatible-release-tags', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-internal-missing-underscore': {\n logLevel: _ruleToLogLevel('ae-internal-missing-underscore'),\n addToApiReportFile: false,\n },\n\n 'ae-missing-release-tag': {\n logLevel: _ruleToLogLevel('ae-missing-release-tag', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-wrong-input-file-type': {\n logLevel: 'none' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n },\n\n tsdocMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n\n 'tsdoc-link-tag-unescaped-text': {\n logLevel: _ruleToLogLevel('tsdoc-link-tag-unescaped-text', 'warning' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'tsdoc-undefined-tag': {\n logLevel: _ruleToLogLevel('tsdoc-undefined-tag', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'tsdoc-unsupported-tag': {\n logLevel: _ruleToLogLevel('tsdoc-unsupported-tag', 'none' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n },\n }\n}\n","import fs from 'fs/promises'\nimport path from 'path'\nimport {\n Extractor,\n ExtractorConfig,\n ExtractorMessage,\n ExtractorResult,\n} from '@microsoft/api-extractor'\nimport mkdirp from 'mkdirp'\nimport prettier from 'prettier'\nimport {PkgConfigOptions, _BuildFile} from '../../_core'\nimport {_createApiExtractorConfig} from './_createApiExtractorConfig'\nimport {_createTSDocConfig} from './_createTSDocConfig'\nimport {_getExtractMessagesConfig} from './_getExtractMessagesConfig'\n\nexport async function _extractTypes(options: {\n customTags: NonNullable<PkgConfigOptions['extract']>['customTags']\n cwd: string\n distPath: string\n exportPath: string\n filePath: string\n files: _BuildFile[]\n projectPath: string\n rules?: NonNullable<PkgConfigOptions['extract']>['rules']\n sourceTypesPath: string\n tsconfigPath: string\n}): Promise<{extractorResult: ExtractorResult; messages: ExtractorMessage[]}> {\n const {\n customTags,\n distPath,\n exportPath,\n files,\n filePath,\n projectPath,\n rules,\n sourceTypesPath,\n tsconfigPath,\n } = options\n\n const tsdocConfigFile = await _createTSDocConfig({\n customTags: customTags || [],\n })\n\n const extractorConfig: ExtractorConfig = ExtractorConfig.prepare({\n configObject: _createApiExtractorConfig({\n distPath,\n exportPath,\n filePath,\n messages: _getExtractMessagesConfig({rules}),\n projectFolder: projectPath,\n mainEntryPointFilePath: sourceTypesPath,\n tsconfigPath,\n }),\n configObjectFullPath: undefined,\n tsdocConfigFile,\n packageJsonFullPath: path.resolve(projectPath, 'package.json'),\n })\n\n const messages: ExtractorMessage[] = []\n\n // Invoke API Extractor\n const extractorResult = Extractor.invoke(extractorConfig, {\n // Equivalent to the \"--local\" command-line parameter\n localBuild: true,\n // Equivalent to the \"--verbose\" command-line parameter\n showVerboseMessages: true,\n // handle messages\n messageCallback(message: ExtractorMessage) {\n messages.push(message)\n message.handled = true\n },\n })\n\n const typesPath = path.resolve(distPath, filePath)\n const typesBuf = await fs.readFile(typesPath)\n const prettierConfig = await prettier.resolveConfig(typesPath)\n\n await mkdirp(path.dirname(typesPath))\n\n 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 {ExtractorMessage} from '@microsoft/api-extractor'\nimport rimrafCallback from 'rimraf'\nimport {_BuildContext} from '../../_core'\nimport {_buildTypes} from './_buildTypes'\nimport {_appendModuleBlocks} from './_declareModuleFix'\nimport {_DtsError} from './_DtsError'\nimport {_extractTypes} from './_extractTypes'\nimport {_DtsResult, _DtsTask, _DtsWatchTask} from './_types'\n\nconst rimraf = promisify(rimrafCallback)\n\n/**\n * - Build type definitions to a temporary directory using TypeScript compiler.\n * - Create a type definition bundle for each export entry.\n * - When done, remove the temporary directory.\n */\nexport async function _doExtract(\n ctx: _BuildContext,\n task: _DtsTask | _DtsWatchTask\n): Promise<_DtsResult> {\n const {config, cwd, files, strict, ts} = ctx\n\n if (!ts.config || !ts.configPath) {\n return {type: 'dts', messages: [], results: []}\n }\n\n const {outDir, rootDir = cwd} = ts.config.options\n\n if (!outDir) {\n throw new Error('tsconfig.json is missing `compilerOptions.outDir`')\n }\n\n const tmpPath = path.resolve(outDir, '__tmp__')\n\n await _buildTypes({cwd, outDir: tmpPath, strict, tsconfig: ts.config})\n const messages: ExtractorMessage[] = []\n\n const results: {sourcePath: string; filePath: string}[] = []\n\n for (const entry of task.entries) {\n const exportPath = entry.exportPath === '.' ? './index' : entry.exportPath\n\n const sourceTypesPath = path.resolve(\n tmpPath,\n path.relative(rootDir, path.resolve(cwd, entry.sourcePath)).replace(/\\.ts$/, '.d.ts')\n )\n\n const targetPath = path.resolve(cwd, entry.targetPath)\n\n const result = await _extractTypes({\n customTags: config?.extract?.customTags,\n cwd,\n exportPath,\n files,\n filePath: path.relative(outDir, targetPath),\n projectPath: cwd,\n rules: config?.extract?.rules,\n sourceTypesPath: sourceTypesPath,\n tsconfigPath: path.resolve(cwd, ts.configPath || 'tsconfig.json'),\n distPath: outDir,\n })\n\n await _appendModuleBlocks({\n tsOutDir: tmpPath,\n extractTypesOutFile: path.resolve(outDir, targetPath),\n })\n\n messages.push(...result.messages)\n\n if (result.messages.some((msg) => msg.logLevel === 'error')) {\n await rimraf(tmpPath)\n\n throw new _DtsError('encountered errors when extracting types', result.messages)\n }\n\n results.push({sourcePath: path.resolve(cwd, entry.sourcePath), filePath: targetPath})\n }\n\n await rimraf(tmpPath)\n\n return {type: 'dts', messages, results}\n}\n","import chalk from 'chalk'\nimport {Observable} from 'rxjs'\nimport {_printExtractMessages} from '../../_printExtractMessages'\nimport {_TaskHandler} from '../_types'\nimport {_doExtract} from './_doExtract'\nimport {_DtsError} from './_DtsError'\nimport {_DtsResult, _DtsTask} from './_types'\n\n/** @internal */\nexport const _dtsTask: _TaskHandler<_DtsTask, _DtsResult> = {\n name: (_ctx, task) =>\n [\n `build type definitions`,\n ...task.entries.map(\n (entry) =>\n ` ${chalk.blue(entry.importId)}: ${entry.sourcePath} -> ${entry.targetPath}`\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return new Observable((observer) => {\n _doExtract(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => {\n observer.error(err)\n })\n })\n },\n complete: (ctx, _task, result) => {\n _printExtractMessages(ctx, result.messages)\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof _DtsError) {\n _printExtractMessages(ctx, err.messages)\n } else if (err instanceof Error) {\n logger.error(err)\n }\n },\n}\n","import chalk from 'chalk'\nimport {Observable} from 'rxjs'\nimport {_printExtractMessages} from '../../_printExtractMessages'\nimport {_TaskHandler} from '../_types'\nimport {_doExtract} from './_doExtract'\nimport {_DtsError} from './_DtsError'\nimport {_DtsResult, _DtsWatchTask} from './_types'\n\n/** @internal */\nexport const _dtsWatchTask: _TaskHandler<_DtsWatchTask, _DtsResult> = {\n name: (_ctx, task) =>\n [\n `build type definitions`,\n ...task.entries.map(\n (entry) =>\n ` ${chalk.blue(entry.importId)}: ${entry.sourcePath} -> ${entry.targetPath}`\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return new Observable((observer) => {\n _doExtract(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => observer.error(err))\n })\n },\n complete: (ctx, _task, result) => {\n const {logger} = ctx\n\n _printExtractMessages(ctx, result.messages)\n\n logger.warn('watching typescript definitions is currently not supported')\n logger.log()\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof _DtsError) {\n _printExtractMessages(ctx, err.messages)\n } else if (err instanceof Error) {\n logger.error(err)\n }\n },\n}\n","import path from 'path'\nimport alias from '@rollup/plugin-alias'\nimport {getBabelOutputPlugin} from '@rollup/plugin-babel'\nimport commonjs from '@rollup/plugin-commonjs'\nimport json from '@rollup/plugin-json'\nimport {nodeResolve} from '@rollup/plugin-node-resolve'\nimport replace from '@rollup/plugin-replace'\nimport {InputOptions, OutputOptions, Plugin} from 'rollup'\nimport esbuild from 'rollup-plugin-esbuild'\nimport {terser} from 'rollup-plugin-terser'\nimport {_BuildContext, _DEFAULTS, _MODULE_EXT, _resolveConfigProperty} from '../../_core'\nimport {_RollupTask, _RollupWatchTask} from '../_types'\n\nexport interface _RollupConfig {\n inputOptions: InputOptions\n outputOptions: OutputOptions\n}\n\n/** @internal */\nexport function _resolveRollupConfig(\n ctx: _BuildContext,\n buildTask: _RollupTask | _RollupWatchTask\n): _RollupConfig {\n const {format, runtime, target} = buildTask\n const {config, cwd, exports: _exports, external, distPath, logger, pkg, ts} = ctx\n const outputExt = _MODULE_EXT[pkg.type][format]\n const minify = config?.minify ?? true\n const outDir = path.relative(cwd, distPath)\n\n const pathAliases = Object.fromEntries(\n Object.entries(ts.config?.options.paths || {}).map(([key, val]) => {\n return [key, path.resolve(cwd, ts.config?.options.baseUrl || '.', val[0])]\n })\n )\n\n const entries = buildTask.entries.map((entry) => {\n return {\n ...entry,\n name: path.relative(outDir, entry.output).replace(/\\.[^/.]+$/, ''),\n }\n }, {})\n\n const exportIds =\n _exports && Object.keys(_exports).map((exportPath) => path.join(pkg.name, exportPath))\n\n const sourcePaths = _exports && Object.values(_exports).map((e) => path.resolve(cwd, e.source))\n\n const replacements = Object.fromEntries(\n Object.entries(config?.define || {}).map(([key, val]) => [key, JSON.stringify(val)])\n )\n\n const defaultPlugins = [\n replace({\n preventAssignment: true,\n values: {\n ...(pkg.name === '@sanity/pkg-utils'\n ? {...replacements}\n : {\n 'process.env.PKG_FILE_PATH': (arg) => {\n const sourcePath = './' + path.relative(cwd, arg)\n const entry = entries.find((e) => e.source === sourcePath)\n\n if (!entry) {\n // eslint-disable-next-line no-console\n console.error(`could not find source entry: ${sourcePath}`)\n\n return 'null'\n }\n\n return JSON.stringify(\n path.relative(cwd, path.resolve(outDir, entry.name + outputExt))\n )\n },\n 'process.env.PKG_FORMAT': JSON.stringify(format),\n 'process.env.PKG_RUNTIME': JSON.stringify(runtime),\n 'process.env.PKG_VERSION': JSON.stringify(process.env.PKG_VERSION || pkg.version),\n ...replacements,\n }),\n },\n }),\n alias({\n entries: {...pathAliases},\n }),\n nodeResolve({\n // mainFields: ['module', 'jsnext', 'main'],\n browser: runtime === 'browser',\n // exportConditions: [runtime === 'node' ? 'node' : 'browser'],\n extensions: ['.cjs', '.mjs', '.js', '.jsx', '.json', '.node'],\n preferBuiltins: true, // runtime === 'node',\n }),\n commonjs({\n esmExternals: false,\n extensions: ['.js'],\n // include: /\\/node_modules\\//,\n // requireReturnsDefault: 'namespace',\n }),\n json(),\n esbuild({\n jsx: config?.jsx ?? 'automatic',\n jsxFactory: config?.jsxFactory ?? 'createElement',\n jsxFragment: config?.jsxFragment ?? 'Fragment',\n jsxImportSource: config?.jsxImportSource ?? 'react',\n target,\n tsconfig: ctx.ts.configPath || 'tsconfig.json',\n }),\n getBabelOutputPlugin({\n babelrc: false,\n plugins: ['@babel/plugin-proposal-object-rest-spread'],\n presets: [['@babel/preset-env', {targets: pkg.browserslist || _DEFAULTS.browserslist}]],\n }),\n minify &&\n terser({\n output: {\n comments: (_node, comment) => {\n const text = comment.value\n const type = comment.type\n\n // Check if this is a multiline comment\n if (type == 'comment2') {\n // Keep licensing comments\n return /@preserve|@license|@cc_on/i.test(text)\n }\n\n return false\n },\n },\n }),\n ].filter(Boolean) as Plugin[]\n\n const userPlugins = config?.rollup?.plugins\n\n const plugins = Array.isArray(userPlugins)\n ? defaultPlugins.concat(userPlugins)\n : _resolveConfigProperty(config?.rollup?.plugins, defaultPlugins)\n\n return {\n inputOptions: {\n context: cwd,\n\n external: (id, importer) => {\n // Check if the id is a self-referencing import\n if (exportIds?.includes(id)) {\n return true\n }\n\n // Check if the id is a file path that points to an exported source file\n if (importer && (id.startsWith('.') || id.startsWith('/'))) {\n const idPath = path.resolve(path.dirname(importer), id)\n\n if (sourcePaths?.includes(idPath)) {\n logger.warn(\n `detected self-referencing import – treating as external: ${path.relative(\n cwd,\n idPath\n )}`\n )\n\n return true\n }\n }\n\n const idParts = id.split('/')\n\n const name = idParts[0].startsWith('@') ? `${idParts[0]}/${idParts[1]}` : idParts[0]\n\n if (name && external.includes(name)) {\n return true\n }\n\n return false\n },\n\n input: entries.reduce<{[entryAlias: string]: string}>((acc, entry) => {\n return {...acc, [entry.name]: entry.source}\n }, {}),\n\n onwarn(warning, rollupWarn) {\n if (!warning.code || !['CIRCULAR_DEPENDENCY'].includes(warning.code)) {\n rollupWarn(warning)\n }\n },\n\n plugins,\n\n treeshake: {\n propertyReadSideEffects: false,\n },\n },\n outputOptions: {\n chunkFileNames: () => `_chunks/[name]-[hash]${outputExt}`,\n dir: outDir,\n entryFileNames: () => (outputExt === '.esm.js' ? `[name].js` : `[name]${outputExt}`),\n format,\n exports: 'auto',\n sourcemap: config?.sourcemap ?? true,\n },\n }\n}\n","/* eslint-disable no-console */\n\nimport path from 'path'\nimport chalk from 'chalk'\nimport {rollup} from 'rollup'\nimport {Observable} from 'rxjs'\nimport {_BuildContext} from '../../_core'\nimport {_RollupTask, _TaskHandler} from '../_types'\nimport {_resolveRollupConfig} from './_resolveRollupConfig'\n\n/** @internal */\nexport const _rollupTask: _TaskHandler<_RollupTask> = {\n name: (ctx, task) =>\n `build javascript files (target ${task.target.join(' + ')}, format ${\n task.format\n })\\n ${task.entries\n .map((e) => `${chalk.blue(path.join(ctx.pkg.name, e.path))}: ${e.source} -> ${e.output}`)\n .join('\\n ')}`,\n exec: (ctx, task) => {\n return new Observable((observer) => {\n _execPromise(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => observer.error(err))\n })\n },\n complete: () => {\n //\n },\n error: (_ctx, _task, err) => {\n if (err instanceof Error) {\n console.log(err)\n }\n },\n}\n\nasync function _execPromise(ctx: _BuildContext, task: _RollupTask) {\n const {files, distPath} = ctx\n const outDir = path.relative(ctx.cwd, distPath)\n\n const {inputOptions, outputOptions} = _resolveRollupConfig(ctx, task)\n\n // Create bundle\n const bundle = await rollup(inputOptions)\n\n // an array of file names this bundle depends on\n // console.log(bundle.watchFiles)\n\n // generate output specific code in-memory\n // you can call this function multiple times on the same bundle object\n const {output} = await bundle.generate(outputOptions)\n\n for (const chunkOrAsset of output) {\n if (chunkOrAsset.type === 'asset') {\n files.push({\n type: 'asset',\n path: path.resolve(outDir, chunkOrAsset.fileName),\n })\n } else {\n files.push({\n type: 'chunk',\n path: path.resolve(outDir, chunkOrAsset.fileName),\n })\n }\n }\n\n // or write the bundle to disk\n await bundle.write(outputOptions)\n\n // closes the bundle\n await bundle.close()\n}\n","import path from 'path'\nimport chalk from 'chalk'\nimport {RollupWatcherEvent, RollupWatchOptions, watch as rollupWatch} from 'rollup'\nimport {Observable} from 'rxjs'\nimport {_RollupWatchTask, _TaskHandler} from '../_types'\nimport {_resolveRollupConfig} from './_resolveRollupConfig'\n\n/** @internal */\nexport const _rollupWatchTask: _TaskHandler<_RollupWatchTask, RollupWatcherEvent> = {\n name: (ctx, task) =>\n `build javascript files (target ${task.target.join(' + ')}, format ${\n task.format\n })\\n ${task.entries\n .map((e) => `${chalk.blue(path.join(ctx.pkg.name, e.path))}: ${e.source} -> ${e.output}`)\n .join('\\n ')}`,\n exec: (ctx, task) => {\n const {inputOptions, outputOptions} = _resolveRollupConfig(ctx, task)\n\n return new Observable((observer) => {\n const watchOptions: RollupWatchOptions = {\n ...inputOptions,\n output: outputOptions,\n }\n\n const watcher = rollupWatch(watchOptions)\n\n watcher.on('event', (event) => {\n observer.next(event)\n })\n\n return () => {\n watcher.close()\n }\n })\n },\n complete: (ctx, task, event) => {\n const {logger} = ctx\n\n if (event.code === 'BUNDLE_END') {\n logger.success(\n `build javascript files (target ${task.target.join(' + ')}, format ${\n task.format\n })\\n ${task.entries\n .map((e) => `${chalk.blue(path.join(ctx.pkg.name, e.path))}: ${e.source} -> ${e.output}`)\n .join('\\n ')}`\n )\n logger.log('')\n\n return\n }\n\n if (event.code === 'BUNDLE_START') {\n return\n }\n\n if (event.code === 'END') {\n return\n }\n\n if (event.code === 'ERROR') {\n // logger.log('')\n logger.error(event.code, event)\n\n return\n }\n\n if (event.code === 'START') {\n return\n }\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof Error) {\n logger.log(err)\n }\n },\n}\n","import {_BuildTaskHandlers, _WatchTaskHandlers} from './_types'\nimport {_dtsTask, _dtsWatchTask} from './dts'\nimport {_rollupTask, _rollupWatchTask} from './rollup'\n\nexport * from './_types'\nexport * from './dts'\nexport * from './rollup'\n\n/** @internal */\nexport const _buildTaskHandlers: _BuildTaskHandlers = {\n 'build:dts': _dtsTask,\n 'build:js': _rollupTask,\n}\n\n/** @internal */\nexport const _watchTaskHandlers: _WatchTaskHandlers = {\n 'watch:dts': _dtsWatchTask,\n 'watch:js': _rollupWatchTask,\n}\n"],"names":["_printExtractMessages","ctx","messages","cwd","logger","warnings","filter","msg","logLevel","length","log","sourceFilePath","path","relative","messageId","chalk","cyan","yellow","sourceFileLine","sourceFileColumn","gray","text","join","errors","red","process","exit","formatHost","getCurrentDirectory","ts","sys","getNewLine","newLine","getCanonicalFileName","useCaseSensitiveFileNames","f","toLowerCase","_buildTypes","options","outDir","tsconfig","strict","compilerOptions","declaration","declarationDir","emitDeclarationOnly","noEmit","program","createProgram","fileNames","emitResult","emit","allDiagnostics","getPreEmitDiagnostics","concat","diagnostics","forEach","diagnostic","file","start","line","character","getLineAndCharacterOfPosition","message","flattenDiagnosticMessageText","messageText","console","fileName","emitSkipped","diag","category","DiagnosticCategory","Error","error","formatDiagnostics","_appendModuleBlocks","tsOutDir","extractTypesOutFile","moduleBlocks","_extractModuleBlocksFromTypes","fs","appendFile","dirname","files","_getFileList","content","readFile","resolve","encoding","includes","push","_extractModuleBlocks","dirName","filesInCurrentDir","readdir","withFileTypes","fileInDir","isDirectory","name","fileContent","moduleIndentLevel","moduleLines","lines","split","moduleIndex","indexOf","isModuleStart","blockEndIndex","map","l","substring","_DtsError","constructor","_createApiExtractorConfig","distPath","exportPath","filePath","projectFolder","mainEntryPointFilePath","tsconfigPath","apiReport","enabled","reportFileName","compiler","tsconfigFilePath","docModel","apiJsonFilePath","dtsRollup","untrimmedFilePath","tsdocMetadata","_createTSDocConfig","opts","customTags","tsDocBaseBuf","require","tsDocBaseConfig","parse","toString","tagDefinitions","t","tagName","syntaxKind","allowMultiple","supportForTags","customTag","TSDocConfigFile","loadFromObject","noStandardTags","_LOG_LEVELS","info","off","warn","_getExtractMessagesConfig","rules","_ruleToLogLevel","key","defaultLevel","r","compilerMessageReporting","default","extractorMessageReporting","addToApiReportFile","tsdocMessageReporting","_extractTypes","projectPath","sourceTypesPath","tsdocConfigFile","extractorConfig","ExtractorConfig","prepare","configObject","configObjectFullPath","packageJsonFullPath","extractorResult","Extractor","invoke","localBuild","showVerboseMessages","messageCallback","handled","typesPath","typesBuf","prettierConfig","prettier","resolveConfig","mkdirp","writeFile","format","filepath","type","rimraf","promisify","rimrafCallback","_doExtract","task","_a","_b","config","configPath","results","rootDir","tmpPath","entry","entries","sourcePath","replace","targetPath","result","extract","some","_dtsTask","_ctx","blue","importId","exec","Observable","observer","then","next","complete","catch","err","_task","_dtsWatchTask","_resolveRollupConfig","buildTask","_c","runtime","target","exports","_exports","external","pkg","outputExt","_MODULE_EXT","minify","pathAliases","Object","fromEntries","paths","val","_a2","baseUrl","output","exportIds","keys","sourcePaths","values","e","source","replacements","define","JSON","stringify","defaultPlugins","preventAssignment","arg","find","env","PKG_VERSION","version","alias","nodeResolve","browser","extensions","preferBuiltins","commonjs","esmExternals","json","esbuild","jsx","jsxFactory","jsxFragment","jsxImportSource","getBabelOutputPlugin","babelrc","plugins","presets","targets","browserslist","_DEFAULTS","terser","comments","_node","comment","value","test","Boolean","userPlugins","rollup","Array","isArray","_resolveConfigProperty","inputOptions","context","id","importer","startsWith","idPath","idParts","input","reduce","acc","onwarn","warning","rollupWarn","code","treeshake","propertyReadSideEffects","outputOptions","chunkFileNames","dir","entryFileNames","sourcemap","_rollupTask","_execPromise","bundle","generate","chunkOrAsset","write","close","_rollupWatchTask","watchOptions","watcher","rollupWatch","on","event","success","_buildTaskHandlers","_watchTaskHandlers"],"mappings":"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"}
@@ -10,7 +10,7 @@ var path = require('path');
10
10
 
11
11
  var rxjs = require('rxjs');
12
12
 
13
- var _resolveBuildContext = require('./_resolveBuildContext-0d61dcca.js');
13
+ var _resolveBuildContext = require('./_resolveBuildContext-6a4ed92a.js');
14
14
 
15
15
  require('fs/promises');
16
16
 
@@ -20,7 +20,7 @@ require('typescript');
20
20
 
21
21
  var fs = require('fs');
22
22
 
23
- var index = require('./index-6065d471.js');
23
+ var index = require('./index-b6235a62.js');
24
24
 
25
25
  var chalk = require('chalk');
26
26
 
@@ -274,4 +274,4 @@ async function watch(options) {
274
274
  }
275
275
 
276
276
  exports.watch = watch;
277
- //# sourceMappingURL=watch-1182e1e4.js.map
277
+ //# sourceMappingURL=watch-7868b922.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"watch-1182e1e4.js","sources":["../../src/node/_resolveWatchTasks.ts","../../src/node/_globFiles.ts","../../src/node/_watchFiles.ts","../../src/node/_watchConfigFiles.ts","../../src/node/watch.ts"],"sourcesContent":["import fs from 'fs'\nimport path from 'path'\nimport {PkgExport, PkgFormat, PkgRuntime, _BuildContext} from './_core'\nimport {_WatchTask, _DtsWatchTask, _RollupWatchTask, _RollupTaskEntry} from './_tasks'\n\n/** @internal */\nexport function _resolveWatchTasks(ctx: _BuildContext): _WatchTask[] {\n const {config, cwd, pkg, target} = ctx\n const tasks: _WatchTask[] = []\n\n const exports = Object.entries(ctx.exports || {}).map(\n ([_path, exp]) => ({_path, ...exp} as PkgExport & {_path: string})\n )\n\n const dtsTask: _DtsWatchTask = {\n type: 'watch:dts',\n entries: [],\n }\n\n const rollupTasks: Record<string, _RollupWatchTask> = {}\n\n function _addRollupTaskEntry(format: PkgFormat, runtime: PkgRuntime, entry: _RollupTaskEntry) {\n const buildId = `${format}:${runtime}`\n\n if (rollupTasks[buildId]) {\n rollupTasks[buildId].entries.push(entry)\n } else {\n rollupTasks[buildId] = {\n type: 'watch:js',\n buildId,\n entries: [entry],\n runtime,\n format,\n target: target[runtime],\n }\n }\n }\n\n // Parse `dts` tasks\n for (const exp of exports) {\n const importId = path.join(pkg.name, exp._path)\n\n if (exp.types) {\n dtsTask.entries.push({\n importId,\n exportPath: exp._path,\n sourcePath: exp.source,\n targetPath: exp.types,\n })\n }\n }\n\n // Parse rollup:commonjs:* tasks\n for (const exp of exports) {\n const output = exp.require\n\n if (!output) continue\n\n _addRollupTaskEntry('commonjs', ctx.runtime, {\n path: exp._path,\n source: exp.source,\n output,\n })\n }\n\n // Parse rollup:commonjs:browser tasks\n for (const exp of exports) {\n const output = exp.browser?.require\n\n if (!output) continue\n\n _addRollupTaskEntry('commonjs', 'browser', {\n path: exp._path,\n source: exp.browser?.source || exp.source,\n output,\n })\n }\n\n // Parse rollup:esm:* tasks\n for (const exp of exports) {\n const output = exp.import\n\n if (!output) continue\n\n _addRollupTaskEntry('esm', ctx.runtime, {\n path: exp._path,\n source: exp.source,\n output,\n })\n }\n\n // Parse rollup:esm:browser tasks\n for (const exp of exports) {\n const output = exp.browser?.import\n\n if (!output) continue\n\n _addRollupTaskEntry('esm', 'browser', {\n path: exp._path,\n source: exp.browser?.source || exp.source,\n output,\n })\n }\n\n if (dtsTask.entries.length) {\n tasks.push(dtsTask)\n }\n\n tasks.push(...Object.values(rollupTasks))\n\n // Write legacy exports files\n if (config?.legacyExports) {\n for (const exp of exports) {\n if (exp._exported && exp._path !== '.') {\n const relativeTargetPath = (exp.browser?.import || exp.import || '').replace(\n /\\.[^/.]+$/,\n ''\n )\n\n if (relativeTargetPath) {\n fs.writeFileSync(\n path.resolve(cwd, `${exp._path}.js`),\n [`// AUTO-GENERATED – DO NOT EDIT`, `export * from '${relativeTargetPath}'`, ``].join(\n '\\n'\n )\n )\n }\n }\n }\n }\n\n return tasks\n}\n","import globby from 'globby'\n\nexport function _globFiles(patterns: string[]): Promise<string[]> {\n return globby(patterns)\n}\n","import chokidar from 'chokidar'\nimport {Observable} from 'rxjs'\n\nexport interface _FileEvent {\n type: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir'\n file: string\n}\n\nexport function _watchFiles(patterns: string[]): Observable<_FileEvent> {\n return new Observable((observer) => {\n const watcher = chokidar.watch(patterns, {\n ignoreInitial: true,\n })\n\n function _handleFileEvent(\n type: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir',\n file: string\n ) {\n observer.next({type, file})\n }\n\n watcher.on('all', _handleFileEvent)\n\n return () => {\n watcher.off('all', _handleFileEvent)\n watcher.close()\n }\n })\n}\n","import path from 'path'\nimport chalk from 'chalk'\nimport {Observable} from 'rxjs'\nimport {distinctUntilChanged, scan, startWith} from 'rxjs/operators'\nimport {_globFiles} from './_globFiles'\nimport {_watchFiles} from './_watchFiles'\n\nexport async function _watchConfigFiles(options: {cwd: string}): Promise<Observable<string[]>> {\n const {cwd} = options\n\n const initialFiles = await _globFiles([\n path.resolve(cwd, 'package.json'),\n path.resolve(cwd, 'package.config.cjs'),\n path.resolve(cwd, 'package.config.js'),\n path.resolve(cwd, 'package.config.ts'),\n ])\n\n const fileEvent$ = _watchFiles([\n path.resolve(cwd, 'package.json'),\n path.resolve(cwd, 'package.config.cjs'),\n path.resolve(cwd, 'package.config.js'),\n path.resolve(cwd, 'package.config.ts'),\n ])\n\n return fileEvent$.pipe(\n scan((files, fileEvent) => {\n if (fileEvent.type === 'add') {\n return files.concat(fileEvent.file)\n }\n\n if (fileEvent.type === 'unlink') {\n return files.filter((f) => f !== fileEvent.file)\n }\n\n if (fileEvent.type === 'change') {\n /* eslint-disable no-console */\n console.log(\n '--------------------------------------------------------------------------------'\n )\n console.log(chalk.blue('info '), path.relative(cwd, fileEvent.file), 'changed')\n console.log('')\n /* eslint-enable no-console */\n\n return files.slice(0) // trigger update\n }\n\n return files\n }, initialFiles),\n startWith(initialFiles),\n distinctUntilChanged()\n )\n}\n","import path from 'path'\nimport {switchMap} from 'rxjs'\nimport {_loadConfig, _loadPkgWithReporting} from './_core'\nimport {_resolveBuildContext} from './_resolveBuildContext'\nimport {_resolveWatchTasks} from './_resolveWatchTasks'\nimport {_WatchTask, _TaskHandler, _watchTaskHandlers} from './_tasks'\nimport {_watchConfigFiles} from './_watchConfigFiles'\n\n/** @public */\nexport async function watch(options: {\n cwd: string\n strict?: boolean\n tsconfig?: string\n}): Promise<void> {\n const {cwd, strict = false, tsconfig: tsconfigOption} = options\n\n const configFiles$ = await _watchConfigFiles({cwd})\n\n const ctx$ = configFiles$.pipe(\n switchMap(async (configFiles) => {\n const _files = configFiles.map((f) => path.relative(cwd, f))\n\n const packageJsonPath = _files.find((f) => f === 'package.json')\n\n if (!packageJsonPath) {\n throw new Error('missing package.json')\n }\n\n const pkg = await _loadPkgWithReporting({cwd})\n const config = await _loadConfig({cwd})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n\n return _resolveBuildContext({config, cwd, pkg, strict, tsconfig})\n })\n )\n\n ctx$.subscribe(async (ctx) => {\n const watchTasks = _resolveWatchTasks(ctx)\n\n for (const task of watchTasks) {\n const handler = _watchTaskHandlers[task.type] as _TaskHandler<_WatchTask, unknown>\n const result$ = handler.exec(ctx, task)\n\n result$.subscribe({\n error: (err) => {\n ctx.logger.error(err)\n ctx.logger.log()\n\n process.exit(1)\n },\n next: (result) => {\n handler.complete(ctx, task, result)\n },\n complete: () => {\n ctx.logger.success(handler.name(ctx, task))\n ctx.logger.log()\n },\n })\n }\n })\n}\n"],"names":["_resolveWatchTasks","ctx","_a","_b","_c","_d","_e","config","cwd","pkg","target","tasks","exports","Object","entries","map","_path","exp","dtsTask","type","rollupTasks","_addRollupTaskEntry","format","runtime","entry","buildId","push","importId","path","join","name","types","exportPath","sourcePath","source","targetPath","output","require","browser","import","length","values","legacyExports","_exported","relativeTargetPath","replace","fs","writeFileSync","resolve","_globFiles","patterns","globby","_watchFiles","Observable","observer","watcher","chokidar","watch","ignoreInitial","_handleFileEvent","file","next","on","off","close","_watchConfigFiles","options","initialFiles","fileEvent$","pipe","scan","files","fileEvent","concat","filter","f","console","log","chalk","blue","relative","slice","startWith","distinctUntilChanged","strict","tsconfig","tsconfigOption","configFiles$","ctx$","switchMap","configFiles","_files","packageJsonPath","find","Error","_loadPkgWithReporting","_loadConfig","_resolveBuildContext","subscribe","watchTasks","task","handler","_watchTaskHandlers","result$","exec","error","err","logger","process","exit","result","complete","success"],"mappings":"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"}
1
+ {"version":3,"file":"watch-7868b922.js","sources":["../../src/node/_resolveWatchTasks.ts","../../src/node/_globFiles.ts","../../src/node/_watchFiles.ts","../../src/node/_watchConfigFiles.ts","../../src/node/watch.ts"],"sourcesContent":["import fs from 'fs'\nimport path from 'path'\nimport {PkgExport, PkgFormat, PkgRuntime, _BuildContext} from './_core'\nimport {_WatchTask, _DtsWatchTask, _RollupWatchTask, _RollupTaskEntry} from './_tasks'\n\n/** @internal */\nexport function _resolveWatchTasks(ctx: _BuildContext): _WatchTask[] {\n const {config, cwd, pkg, target} = ctx\n const tasks: _WatchTask[] = []\n\n const exports = Object.entries(ctx.exports || {}).map(\n ([_path, exp]) => ({_path, ...exp} as PkgExport & {_path: string})\n )\n\n const dtsTask: _DtsWatchTask = {\n type: 'watch:dts',\n entries: [],\n }\n\n const rollupTasks: Record<string, _RollupWatchTask> = {}\n\n function _addRollupTaskEntry(format: PkgFormat, runtime: PkgRuntime, entry: _RollupTaskEntry) {\n const buildId = `${format}:${runtime}`\n\n if (rollupTasks[buildId]) {\n rollupTasks[buildId].entries.push(entry)\n } else {\n rollupTasks[buildId] = {\n type: 'watch:js',\n buildId,\n entries: [entry],\n runtime,\n format,\n target: target[runtime],\n }\n }\n }\n\n // Parse `dts` tasks\n for (const exp of exports) {\n const importId = path.join(pkg.name, exp._path)\n\n if (exp.types) {\n dtsTask.entries.push({\n importId,\n exportPath: exp._path,\n sourcePath: exp.source,\n targetPath: exp.types,\n })\n }\n }\n\n // Parse rollup:commonjs:* tasks\n for (const exp of exports) {\n const output = exp.require\n\n if (!output) continue\n\n _addRollupTaskEntry('commonjs', ctx.runtime, {\n path: exp._path,\n source: exp.source,\n output,\n })\n }\n\n // Parse rollup:commonjs:browser tasks\n for (const exp of exports) {\n const output = exp.browser?.require\n\n if (!output) continue\n\n _addRollupTaskEntry('commonjs', 'browser', {\n path: exp._path,\n source: exp.browser?.source || exp.source,\n output,\n })\n }\n\n // Parse rollup:esm:* tasks\n for (const exp of exports) {\n const output = exp.import\n\n if (!output) continue\n\n _addRollupTaskEntry('esm', ctx.runtime, {\n path: exp._path,\n source: exp.source,\n output,\n })\n }\n\n // Parse rollup:esm:browser tasks\n for (const exp of exports) {\n const output = exp.browser?.import\n\n if (!output) continue\n\n _addRollupTaskEntry('esm', 'browser', {\n path: exp._path,\n source: exp.browser?.source || exp.source,\n output,\n })\n }\n\n if (dtsTask.entries.length) {\n tasks.push(dtsTask)\n }\n\n tasks.push(...Object.values(rollupTasks))\n\n // Write legacy exports files\n if (config?.legacyExports) {\n for (const exp of exports) {\n if (exp._exported && exp._path !== '.') {\n const relativeTargetPath = (exp.browser?.import || exp.import || '').replace(\n /\\.[^/.]+$/,\n ''\n )\n\n if (relativeTargetPath) {\n fs.writeFileSync(\n path.resolve(cwd, `${exp._path}.js`),\n [`// AUTO-GENERATED – DO NOT EDIT`, `export * from '${relativeTargetPath}'`, ``].join(\n '\\n'\n )\n )\n }\n }\n }\n }\n\n return tasks\n}\n","import globby from 'globby'\n\nexport function _globFiles(patterns: string[]): Promise<string[]> {\n return globby(patterns)\n}\n","import chokidar from 'chokidar'\nimport {Observable} from 'rxjs'\n\nexport interface _FileEvent {\n type: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir'\n file: string\n}\n\nexport function _watchFiles(patterns: string[]): Observable<_FileEvent> {\n return new Observable((observer) => {\n const watcher = chokidar.watch(patterns, {\n ignoreInitial: true,\n })\n\n function _handleFileEvent(\n type: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir',\n file: string\n ) {\n observer.next({type, file})\n }\n\n watcher.on('all', _handleFileEvent)\n\n return () => {\n watcher.off('all', _handleFileEvent)\n watcher.close()\n }\n })\n}\n","import path from 'path'\nimport chalk from 'chalk'\nimport {Observable} from 'rxjs'\nimport {distinctUntilChanged, scan, startWith} from 'rxjs/operators'\nimport {_globFiles} from './_globFiles'\nimport {_watchFiles} from './_watchFiles'\n\nexport async function _watchConfigFiles(options: {cwd: string}): Promise<Observable<string[]>> {\n const {cwd} = options\n\n const initialFiles = await _globFiles([\n path.resolve(cwd, 'package.json'),\n path.resolve(cwd, 'package.config.cjs'),\n path.resolve(cwd, 'package.config.js'),\n path.resolve(cwd, 'package.config.ts'),\n ])\n\n const fileEvent$ = _watchFiles([\n path.resolve(cwd, 'package.json'),\n path.resolve(cwd, 'package.config.cjs'),\n path.resolve(cwd, 'package.config.js'),\n path.resolve(cwd, 'package.config.ts'),\n ])\n\n return fileEvent$.pipe(\n scan((files, fileEvent) => {\n if (fileEvent.type === 'add') {\n return files.concat(fileEvent.file)\n }\n\n if (fileEvent.type === 'unlink') {\n return files.filter((f) => f !== fileEvent.file)\n }\n\n if (fileEvent.type === 'change') {\n /* eslint-disable no-console */\n console.log(\n '--------------------------------------------------------------------------------'\n )\n console.log(chalk.blue('info '), path.relative(cwd, fileEvent.file), 'changed')\n console.log('')\n /* eslint-enable no-console */\n\n return files.slice(0) // trigger update\n }\n\n return files\n }, initialFiles),\n startWith(initialFiles),\n distinctUntilChanged()\n )\n}\n","import path from 'path'\nimport {switchMap} from 'rxjs'\nimport {_loadConfig, _loadPkgWithReporting} from './_core'\nimport {_resolveBuildContext} from './_resolveBuildContext'\nimport {_resolveWatchTasks} from './_resolveWatchTasks'\nimport {_WatchTask, _TaskHandler, _watchTaskHandlers} from './_tasks'\nimport {_watchConfigFiles} from './_watchConfigFiles'\n\n/** @public */\nexport async function watch(options: {\n cwd: string\n strict?: boolean\n tsconfig?: string\n}): Promise<void> {\n const {cwd, strict = false, tsconfig: tsconfigOption} = options\n\n const configFiles$ = await _watchConfigFiles({cwd})\n\n const ctx$ = configFiles$.pipe(\n switchMap(async (configFiles) => {\n const _files = configFiles.map((f) => path.relative(cwd, f))\n\n const packageJsonPath = _files.find((f) => f === 'package.json')\n\n if (!packageJsonPath) {\n throw new Error('missing package.json')\n }\n\n const pkg = await _loadPkgWithReporting({cwd})\n const config = await _loadConfig({cwd})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n\n return _resolveBuildContext({config, cwd, pkg, strict, tsconfig})\n })\n )\n\n ctx$.subscribe(async (ctx) => {\n const watchTasks = _resolveWatchTasks(ctx)\n\n for (const task of watchTasks) {\n const handler = _watchTaskHandlers[task.type] as _TaskHandler<_WatchTask, unknown>\n const result$ = handler.exec(ctx, task)\n\n result$.subscribe({\n error: (err) => {\n ctx.logger.error(err)\n ctx.logger.log()\n\n process.exit(1)\n },\n next: (result) => {\n handler.complete(ctx, task, result)\n },\n complete: () => {\n ctx.logger.success(handler.name(ctx, task))\n ctx.logger.log()\n },\n })\n }\n })\n}\n"],"names":["_resolveWatchTasks","ctx","_a","_b","_c","_d","_e","config","cwd","pkg","target","tasks","exports","Object","entries","map","_path","exp","dtsTask","type","rollupTasks","_addRollupTaskEntry","format","runtime","entry","buildId","push","importId","path","join","name","types","exportPath","sourcePath","source","targetPath","output","require","browser","import","length","values","legacyExports","_exported","relativeTargetPath","replace","fs","writeFileSync","resolve","_globFiles","patterns","globby","_watchFiles","Observable","observer","watcher","chokidar","watch","ignoreInitial","_handleFileEvent","file","next","on","off","close","_watchConfigFiles","options","initialFiles","fileEvent$","pipe","scan","files","fileEvent","concat","filter","f","console","log","chalk","blue","relative","slice","startWith","distinctUntilChanged","strict","tsconfig","tsconfigOption","configFiles$","ctx$","switchMap","configFiles","_files","packageJsonPath","find","Error","_loadPkgWithReporting","_loadConfig","_resolveBuildContext","subscribe","watchTasks","task","handler","_watchTaskHandlers","result$","exec","error","err","logger","process","exit","result","complete","success"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var watch = require('./watch-1182e1e4.js');
3
+ var watch = require('./watch-7868b922.js');
4
4
 
5
5
  var _handleError = require('./_handleError-869dec25.js');
6
6
 
@@ -8,7 +8,7 @@ require('path');
8
8
 
9
9
  require('rxjs');
10
10
 
11
- require('./_resolveBuildContext-0d61dcca.js');
11
+ require('./_resolveBuildContext-6a4ed92a.js');
12
12
 
13
13
  require('esbuild-register/dist/node');
14
14
 
@@ -28,7 +28,7 @@ require('browserslist');
28
28
 
29
29
  require('fs');
30
30
 
31
- require('./index-6065d471.js');
31
+ require('./index-b6235a62.js');
32
32
 
33
33
  require('util');
34
34
 
@@ -81,4 +81,4 @@ async function watchAction(options) {
81
81
  }
82
82
 
83
83
  exports.watchAction = watchAction;
84
- //# sourceMappingURL=watchAction-ba840165.js.map
84
+ //# sourceMappingURL=watchAction-9bef2175.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"watchAction-ba840165.js","sources":["../../src/cli/watchAction.ts"],"sourcesContent":["import {watch} from '../node/watch'\nimport {_handleError} from './_handleError'\n\nexport async function watchAction(options: {strict?: boolean; tsconfig?: string}): Promise<void> {\n try {\n await watch({\n cwd: process.cwd(),\n strict: options.strict,\n tsconfig: options.tsconfig,\n })\n } catch (err) {\n _handleError(err)\n }\n}\n"],"names":["watchAction","options","watch","cwd","process","strict","tsconfig","err","_handleError"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,eAAeA,WAAf,CAA2BC,OAA3B,EAAoC;EACzC,IAAI;IACF,MAAMC,WAAAA,CAAM;MACVC,GAAG,EAAEC,OAAO,CAACD,GAAR,EADK;MAEVE,MAAM,EAAEJ,OAAO,CAACI,MAFN;MAGVC,QAAQ,EAAEL,OAAO,CAACK;IAHR,CAANJ,CAAN;EAKD,CAND,CAME,OAAOK,GAAP,EAAY;IACZC,YAAY,CAAAA,YAAZA,CAAaD,GAAbC;EACD;AACH;;"}
1
+ {"version":3,"file":"watchAction-9bef2175.js","sources":["../../src/cli/watchAction.ts"],"sourcesContent":["import {watch} from '../node/watch'\nimport {_handleError} from './_handleError'\n\nexport async function watchAction(options: {strict?: boolean; tsconfig?: string}): Promise<void> {\n try {\n await watch({\n cwd: process.cwd(),\n strict: options.strict,\n tsconfig: options.tsconfig,\n })\n } catch (err) {\n _handleError(err)\n }\n}\n"],"names":["watchAction","options","watch","cwd","process","strict","tsconfig","err","_handleError"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,eAAeA,WAAf,CAA2BC,OAA3B,EAAoC;EACzC,IAAI;IACF,MAAMC,WAAAA,CAAM;MACVC,GAAG,EAAEC,OAAO,CAACD,GAAR,EADK;MAEVE,MAAM,EAAEJ,OAAO,CAACI,MAFN;MAGVC,QAAQ,EAAEL,OAAO,CAACK;IAHR,CAANJ,CAAN;EAKD,CAND,CAME,OAAOK,GAAP,EAAY;IACZC,YAAY,CAAAA,YAAZA,CAAaD,GAAbC;EACD;AACH;;"}
package/dist/cli.js CHANGED
@@ -10,13 +10,13 @@ function _interopDefaultLegacy(e) {
10
10
 
11
11
  var cac__default = /*#__PURE__*/_interopDefaultLegacy(cac);
12
12
 
13
- var version = "1.16.1";
13
+ var version = "1.17.0";
14
14
  const cli = cac__default["default"]();
15
15
  cli.command("", "Check").option("--strict", "Strict mode").option("--tsconfig [tsconfig]", "[string] tsconfig.json").action(async options => {
16
16
  const {
17
17
  checkAction: statusAction
18
18
  } = await Promise.resolve().then(function () {
19
- return require('./_chunks/checkAction-ea939b95.js');
19
+ return require('./_chunks/checkAction-0ec1ffd5.js');
20
20
  });
21
21
  return statusAction(options);
22
22
  });
@@ -24,7 +24,7 @@ cli.command("build", "Build package").option("--emitDeclarationOnly", "Emit d.ts
24
24
  const {
25
25
  buildAction
26
26
  } = await Promise.resolve().then(function () {
27
- return require('./_chunks/buildAction-214e3e6b.js');
27
+ return require('./_chunks/buildAction-1f1e18f0.js');
28
28
  });
29
29
  return buildAction(options);
30
30
  });
@@ -32,7 +32,7 @@ cli.command("watch", "Watch package").option("--strict", "Strict mode").option("
32
32
  const {
33
33
  watchAction
34
34
  } = await Promise.resolve().then(function () {
35
- return require('./_chunks/watchAction-ba840165.js');
35
+ return require('./_chunks/watchAction-9bef2175.js');
36
36
  });
37
37
  return watchAction(options);
38
38
  });
package/dist/index.d.ts CHANGED
@@ -172,23 +172,24 @@ export declare interface _PackageJSON {
172
172
  peerDependencies?: Record<string, string>
173
173
  exports?: Record<
174
174
  string,
175
- {
176
- source: string
177
- types?: string
178
- browser?: {
175
+ | `./${string}.json`
176
+ | {
179
177
  source: string
180
- require?: string
178
+ types?: string
179
+ browser?: {
180
+ source: string
181
+ require?: string
182
+ import?: string
183
+ }
184
+ node?: {
185
+ source: string
186
+ require?: string
187
+ import?: string
188
+ }
181
189
  import?: string
182
- }
183
- node?: {
184
- source: string
185
190
  require?: string
186
- import?: string
191
+ default: string
187
192
  }
188
- import?: string
189
- require?: string
190
- default: string
191
- }
192
193
  >
193
194
  main?: string
194
195
  browser?: Record<string, string>
package/dist/index.esm.js CHANGED
@@ -154,7 +154,7 @@ const pkgSchema = z.object({
154
154
  browser: z.optional(z.record(z.string())),
155
155
  module: z.optional(z.string()),
156
156
  types: z.optional(z.string()),
157
- exports: z.optional(z.record(z.object({
157
+ exports: z.optional(z.record(z.union([z.custom(val => /^\.\/.*\.json$/.test(val)), z.object({
158
158
  types: z.optional(z.string()),
159
159
  source: z.string(),
160
160
  browser: z.optional(z.object({
@@ -170,7 +170,7 @@ const pkgSchema = z.object({
170
170
  require: z.optional(z.string()),
171
171
  import: z.optional(z.string()),
172
172
  default: z.string()
173
- }))),
173
+ })]))),
174
174
  browserslist: z.optional(z.array(z.string()))
175
175
  });
176
176
 
@@ -269,8 +269,18 @@ function _parseExports(options) {
269
269
  const errors = [];
270
270
 
271
271
  if (pkg.exports) {
272
+ if (!pkg.exports["./package.json"]) {
273
+ errors.push('package.json: `exports["./package.json"] must be declared.');
274
+ }
275
+
272
276
  for (const [exportPath, exportEntry] of Object.entries(pkg.exports)) {
273
- if (_isRecord(exportEntry)) {
277
+ if (exportPath.endsWith(".json")) {
278
+ if (exportPath === "./package.json") {
279
+ if (exportEntry !== "./package.json") {
280
+ errors.push('package.json: `exports["./package.json"] must be "./package.json".');
281
+ }
282
+ }
283
+ } else if (_isRecord(exportEntry)) {
274
284
  if (exportPath === ".") {
275
285
  if (exportEntry.require && rootExport.require && exportEntry.require !== rootExport.require) {
276
286
  errors.push('package.json: mismatch between "main" and "exports.require". These must be equal.');
@@ -555,6 +565,81 @@ async function _buildTypes(options) {
555
565
  }
556
566
  }
557
567
 
568
+ async function _appendModuleBlocks(_ref2) {
569
+ let {
570
+ tsOutDir,
571
+ extractTypesOutFile
572
+ } = _ref2;
573
+ const moduleBlocks = await _extractModuleBlocksFromTypes(tsOutDir);
574
+
575
+ if (moduleBlocks.length) {
576
+ await fs.appendFile(extractTypesOutFile, "\n" + moduleBlocks.join("\n\n"));
577
+ }
578
+ }
579
+
580
+ async function _extractModuleBlocksFromTypes(dirname) {
581
+ const moduleBlocks = [];
582
+ const files = await _getFileList(dirname);
583
+
584
+ for (const fileName of files) {
585
+ const content = await fs.readFile(path.resolve(dirname, fileName), {
586
+ encoding: "utf-8"
587
+ });
588
+
589
+ if (content.includes("declare module")) {
590
+ moduleBlocks.push(..._extractModuleBlocks(content));
591
+ }
592
+ }
593
+
594
+ return moduleBlocks;
595
+ }
596
+
597
+ async function _getFileList(dirName) {
598
+ let files = [];
599
+ const filesInCurrentDir = await fs.readdir(dirName, {
600
+ withFileTypes: true
601
+ });
602
+
603
+ for (const fileInDir of filesInCurrentDir) {
604
+ if (fileInDir.isDirectory()) {
605
+ files = [...files, ...(await _getFileList(path.resolve(dirName, fileInDir.name)))];
606
+ } else {
607
+ files.push(path.resolve(dirName, fileInDir.name));
608
+ }
609
+ }
610
+
611
+ return files;
612
+ }
613
+
614
+ function _extractModuleBlocks(fileContent) {
615
+ const moduleBlocks = [];
616
+ let moduleIndentLevel = 0;
617
+ let moduleLines = [];
618
+ const lines = fileContent.split("\n");
619
+
620
+ for (const line of lines) {
621
+ if (!moduleLines.length) {
622
+ const moduleIndex = line.indexOf("declare module");
623
+ const isModuleStart = moduleIndex > -1;
624
+
625
+ if (isModuleStart) {
626
+ moduleIndentLevel = moduleIndex;
627
+ moduleLines = [line];
628
+ }
629
+ } else {
630
+ moduleLines.push(line);
631
+ const blockEndIndex = line.indexOf("}");
632
+
633
+ if (blockEndIndex === moduleIndentLevel) {
634
+ moduleBlocks.push(moduleLines.map(l => l.substring(moduleIndentLevel, l.length)).join("\n"));
635
+ moduleLines = [];
636
+ }
637
+ }
638
+ }
639
+
640
+ return moduleBlocks;
641
+ }
642
+
558
643
  class _DtsError extends Error {
559
644
  constructor(message, messages) {
560
645
  super(message);
@@ -813,6 +898,10 @@ async function _doExtract(ctx, task) {
813
898
  tsconfigPath: path.resolve(cwd, ts.configPath || "tsconfig.json"),
814
899
  distPath: outDir
815
900
  });
901
+ await _appendModuleBlocks({
902
+ tsOutDir: tmpPath,
903
+ extractTypesOutFile: path.resolve(outDir, targetPath)
904
+ });
816
905
  messages.push(...result.messages);
817
906
 
818
907
  if (result.messages.some(msg => msg.logLevel === "error")) {
@@ -895,7 +984,7 @@ const _dtsWatchTask = {
895
984
  };
896
985
 
897
986
  function _resolveRollupConfig(ctx, buildTask) {
898
- var _ref2, _ref5, _ref6, _ref7, _ref8, _ref9;
987
+ var _ref3, _ref6, _ref7, _ref8, _ref9, _ref10;
899
988
 
900
989
  var _a, _b, _c;
901
990
 
@@ -915,10 +1004,10 @@ function _resolveRollupConfig(ctx, buildTask) {
915
1004
  ts
916
1005
  } = ctx;
917
1006
  const outputExt = _MODULE_EXT[pkg.type][format];
918
- const minify = (_ref2 = config == null ? void 0 : config.minify) !== null && _ref2 !== void 0 ? _ref2 : true;
1007
+ const minify = (_ref3 = config == null ? void 0 : config.minify) !== null && _ref3 !== void 0 ? _ref3 : true;
919
1008
  const outDir = path.relative(cwd, distPath);
920
- const pathAliases = Object.fromEntries(Object.entries(((_a = ts.config) == null ? void 0 : _a.options.paths) || {}).map(_ref3 => {
921
- let [key, val] = _ref3;
1009
+ const pathAliases = Object.fromEntries(Object.entries(((_a = ts.config) == null ? void 0 : _a.options.paths) || {}).map(_ref4 => {
1010
+ let [key, val] = _ref4;
922
1011
 
923
1012
  var _a2;
924
1013
 
@@ -934,8 +1023,8 @@ function _resolveRollupConfig(ctx, buildTask) {
934
1023
 
935
1024
  const sourcePaths = _exports && Object.values(_exports).map(e => path.resolve(cwd, e.source));
936
1025
 
937
- const replacements = Object.fromEntries(Object.entries((config == null ? void 0 : config.define) || {}).map(_ref4 => {
938
- let [key, val] = _ref4;
1026
+ const replacements = Object.fromEntries(Object.entries((config == null ? void 0 : config.define) || {}).map(_ref5 => {
1027
+ let [key, val] = _ref5;
939
1028
  return [key, JSON.stringify(val)];
940
1029
  }));
941
1030
  const defaultPlugins = [replace({
@@ -966,10 +1055,10 @@ function _resolveRollupConfig(ctx, buildTask) {
966
1055
  esmExternals: false,
967
1056
  extensions: [".js"]
968
1057
  }), json(), esbuild({
969
- jsx: (_ref5 = config == null ? void 0 : config.jsx) !== null && _ref5 !== void 0 ? _ref5 : "automatic",
970
- jsxFactory: (_ref6 = config == null ? void 0 : config.jsxFactory) !== null && _ref6 !== void 0 ? _ref6 : "createElement",
971
- jsxFragment: (_ref7 = config == null ? void 0 : config.jsxFragment) !== null && _ref7 !== void 0 ? _ref7 : "Fragment",
972
- jsxImportSource: (_ref8 = config == null ? void 0 : config.jsxImportSource) !== null && _ref8 !== void 0 ? _ref8 : "react",
1058
+ jsx: (_ref6 = config == null ? void 0 : config.jsx) !== null && _ref6 !== void 0 ? _ref6 : "automatic",
1059
+ jsxFactory: (_ref7 = config == null ? void 0 : config.jsxFactory) !== null && _ref7 !== void 0 ? _ref7 : "createElement",
1060
+ jsxFragment: (_ref8 = config == null ? void 0 : config.jsxFragment) !== null && _ref8 !== void 0 ? _ref8 : "Fragment",
1061
+ jsxImportSource: (_ref9 = config == null ? void 0 : config.jsxImportSource) !== null && _ref9 !== void 0 ? _ref9 : "react",
973
1062
  target,
974
1063
  tsconfig: ctx.ts.configPath || "tsconfig.json"
975
1064
  }), getBabelOutputPlugin({
@@ -1043,7 +1132,7 @@ function _resolveRollupConfig(ctx, buildTask) {
1043
1132
  entryFileNames: () => outputExt === ".esm.js" ? "[name].js" : "[name]".concat(outputExt),
1044
1133
  format,
1045
1134
  exports: "auto",
1046
- sourcemap: (_ref9 = config == null ? void 0 : config.sourcemap) !== null && _ref9 !== void 0 ? _ref9 : true
1135
+ sourcemap: (_ref10 = config == null ? void 0 : config.sourcemap) !== null && _ref10 !== void 0 ? _ref10 : true
1047
1136
  }
1048
1137
  };
1049
1138
  }
@@ -1332,7 +1421,7 @@ function _createLogger() {
1332
1421
  }
1333
1422
 
1334
1423
  async function _resolveBuildContext(options) {
1335
- var _ref10;
1424
+ var _ref11;
1336
1425
 
1337
1426
  const {
1338
1427
  config,
@@ -1426,7 +1515,7 @@ async function _resolveBuildContext(options) {
1426
1515
  files: [],
1427
1516
  logger,
1428
1517
  pkg,
1429
- runtime: (_ref10 = config == null ? void 0 : config.runtime) !== null && _ref10 !== void 0 ? _ref10 : "*",
1518
+ runtime: (_ref11 = config == null ? void 0 : config.runtime) !== null && _ref11 !== void 0 ? _ref11 : "*",
1430
1519
  strict,
1431
1520
  target,
1432
1521
  ts: {
@@ -1552,11 +1641,11 @@ function _printPackageTree(ctx) {
1552
1641
  return "".concat(file, " ").concat(chalk.gray(info.size));
1553
1642
  }
1554
1643
 
1555
- tree.exports = Object.fromEntries(Object.entries(exports).filter(_ref11 => {
1556
- let [, entry] = _ref11;
1644
+ tree.exports = Object.fromEntries(Object.entries(exports).filter(_ref12 => {
1645
+ let [, entry] = _ref12;
1557
1646
  return entry._exported;
1558
- }).map(_ref12 => {
1559
- let [exportPath, entry] = _ref12;
1647
+ }).map(_ref13 => {
1648
+ let [exportPath, entry] = _ref13;
1560
1649
  const exp = {
1561
1650
  source: entry.source,
1562
1651
  types: void 0,
@@ -1756,8 +1845,8 @@ function _resolveWatchTasks(ctx) {
1756
1845
  target
1757
1846
  } = ctx;
1758
1847
  const tasks = [];
1759
- const exports = Object.entries(ctx.exports || {}).map(_ref13 => {
1760
- let [_path, exp] = _ref13;
1848
+ const exports = Object.entries(ctx.exports || {}).map(_ref14 => {
1849
+ let [_path, exp] = _ref14;
1761
1850
  return _objectSpread({
1762
1851
  _path
1763
1852
  }, exp);