@sanity/pkg-utils 1.17.0 → 1.17.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 (29) hide show
  1. package/dist/_chunks/{_resolveBuildContext-6a4ed92a.js → _resolveBuildContext-7ca7e64e.js} +6 -4
  2. package/dist/_chunks/_resolveBuildContext-7ca7e64e.js.map +1 -0
  3. package/dist/_chunks/{build-ce9b3fba.js → build-072e58ec.js} +3 -3
  4. package/dist/_chunks/{build-ce9b3fba.js.map → build-072e58ec.js.map} +1 -1
  5. package/dist/_chunks/{buildAction-1f1e18f0.js → buildAction-35aab706.js} +4 -4
  6. package/dist/_chunks/{buildAction-1f1e18f0.js.map → buildAction-35aab706.js.map} +1 -1
  7. package/dist/_chunks/{check-abba8425.js → check-87cbb6cc.js} +2 -2
  8. package/dist/_chunks/{check-abba8425.js.map → check-87cbb6cc.js.map} +1 -1
  9. package/dist/_chunks/{checkAction-0ec1ffd5.js → checkAction-e7e455d4.js} +3 -3
  10. package/dist/_chunks/{checkAction-0ec1ffd5.js.map → checkAction-e7e455d4.js.map} +1 -1
  11. package/dist/_chunks/{index-b6235a62.js → index-68bcc7e2.js} +49 -42
  12. package/dist/_chunks/index-68bcc7e2.js.map +1 -0
  13. package/dist/_chunks/{watch-7868b922.js → watch-e09a4a66.js} +3 -3
  14. package/dist/_chunks/{watch-7868b922.js.map → watch-e09a4a66.js.map} +1 -1
  15. package/dist/_chunks/{watchAction-9bef2175.js → watchAction-c64a95c7.js} +4 -4
  16. package/dist/_chunks/{watchAction-9bef2175.js.map → watchAction-c64a95c7.js.map} +1 -1
  17. package/dist/cli.js +4 -4
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.esm.js +60 -51
  20. package/dist/index.esm.js.map +1 -1
  21. package/dist/index.js +5 -5
  22. package/package.json +1 -1
  23. package/src/node/_core/pkg/_parseExports.ts +6 -3
  24. package/src/node/_printExtractMessages.ts +3 -0
  25. package/src/node/_resolveBuildContext.ts +1 -1
  26. package/src/node/_tasks/dts/_declareModuleFix.ts +38 -26
  27. package/src/node/_tasks/dts/_doExtract.ts +3 -2
  28. package/dist/_chunks/_resolveBuildContext-6a4ed92a.js.map +0 -1
  29. package/dist/_chunks/index-b6235a62.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-68bcc7e2.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 // Ignore this warning:\n // > TS6307: <filename> is not in project file list.\n // > Projects must list all files or use an 'include' pattern.\n continue\n }\n\n logger.log(\n [\n `${chalk.cyan(sourceFilePath || '?')}`,\n `:${chalk.yellow(msg.sourceFileLine)}:${chalk.yellow(msg.sourceFileColumn)}`,\n ` - ${chalk.yellow('warning')} ${chalk.gray(msg.messageId)}\\n`,\n msg.text,\n '\\n',\n ].join('')\n )\n }\n\n const errors: ExtractorMessage[] = messages.filter((msg) => msg.logLevel === 'error')\n\n if (!warnings.length && errors.length) {\n logger.log('')\n }\n\n for (const msg of errors) {\n const sourceFilePath = msg.sourceFilePath && path.relative(cwd, msg.sourceFilePath)\n\n logger.log(\n [\n `${chalk.cyan(sourceFilePath || '?')}`,\n `:${chalk.yellow(msg.sourceFileLine)}:${chalk.yellow(msg.sourceFileColumn)}`,\n ` - ${chalk.red('error')} ${chalk.gray(msg.messageId)}\\n`,\n msg.text,\n '\\n',\n ].join('')\n )\n }\n\n if (errors.length) {\n process.exit(1)\n }\n}\n","/* eslint-disable no-console */\n\nimport ts from 'typescript'\n\nexport const formatHost: ts.FormatDiagnosticsHost = {\n getCurrentDirectory: () => ts.sys.getCurrentDirectory(),\n getNewLine: () => ts.sys.newLine,\n getCanonicalFileName: ts.sys.useCaseSensitiveFileNames ? (f) => f : (f) => f.toLowerCase(),\n}\n\n/** @internal */\nexport async function _buildTypes(options: {\n cwd: string\n outDir: string\n tsconfig: ts.ParsedCommandLine\n strict: boolean\n}): Promise<void> {\n const {outDir, tsconfig, strict = false} = options\n\n const compilerOptions: ts.CompilerOptions = {\n ...tsconfig.options,\n declaration: true,\n declarationDir: outDir,\n emitDeclarationOnly: true,\n noEmit: false,\n outDir,\n }\n\n const program = ts.createProgram(tsconfig.fileNames, compilerOptions)\n\n const emitResult = program.emit()\n\n const allDiagnostics = ts.getPreEmitDiagnostics(program).concat(emitResult.diagnostics)\n\n // TODO: improve logging\n allDiagnostics.forEach((diagnostic) => {\n if (diagnostic.file && diagnostic.start) {\n const {line, character} = ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start)\n const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n')\n\n console.log(`${diagnostic.file.fileName} ${line + 1}:${character + 1}\\n${message}`)\n } else {\n console.log(ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n'))\n }\n })\n\n if (emitResult.emitSkipped) {\n const errors = allDiagnostics.filter((diag) => diag.category === ts.DiagnosticCategory.Error)\n\n if (errors.length) {\n console.error(ts.formatDiagnostics(errors, formatHost))\n\n if (strict) {\n throw new Error('failed to compile TypeScript definitions')\n }\n }\n }\n}\n","import fs from 'fs/promises'\nimport {ExtractorResult} from '@microsoft/api-extractor'\nimport {Program} from 'typescript'\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 extractResult,\n extractTypesOutFile,\n}: {\n tsOutDir: string\n extractResult: ExtractorResult\n extractTypesOutFile: string\n}): Promise<void> {\n const moduleBlocks = await _extractModuleBlocksFromTypes({tsOutDir, extractResult})\n\n if (moduleBlocks.length) {\n await fs.appendFile(extractTypesOutFile, '\\n' + moduleBlocks.join('\\n\\n'))\n }\n}\n\nasync function _extractModuleBlocksFromTypes({\n tsOutDir,\n extractResult,\n}: {\n tsOutDir: string\n extractResult: ExtractorResult\n}): Promise<string[]> {\n const moduleBlocks: string[] = []\n\n const program = extractResult.compilerState.program as Program\n\n // all program files, including node_modules\n const allProgramFiles = [...program.getSourceFiles()]\n\n // just our compiled files used in the program\n const sourceFiles = allProgramFiles.filter((sourceFile) => sourceFile.fileName.includes(tsOutDir))\n\n for (const sourceFile of sourceFiles) {\n if (sourceFile.text.includes('declare module')) {\n moduleBlocks.push(..._extractModuleBlocks(sourceFile.text))\n }\n }\n\n return moduleBlocks\n}\n\nexport function _extractModuleBlocks(fileContent: string): string[] {\n const moduleBlocks: string[] = []\n\n let moduleIndentLevel = 0\n let insideComment = false\n let moduleLines: string[] = []\n\n const lines = fileContent.split('\\n')\n\n for (const line of lines) {\n // Note: Extractor already removes comment blocks, so fileContent is typically already comment free\n // This is just defensive code, just in case\n if (insideComment && line.includes('*/')) {\n insideComment = false\n } else if (!insideComment && line.includes('/*') && line.includes('*/')) {\n continue // it's a one-line comment\n } else if (!insideComment && line.includes('/*')) {\n insideComment = true\n }\n\n if (insideComment) {\n continue\n }\n\n if (!moduleLines.length) {\n const isModuleDeclaration = line.match(/^\\s*declare module.+$/)?.length\n const moduleIndex = line.indexOf('declare module')\n const isModuleStart = isModuleDeclaration && 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 const filePath = path.relative(outDir, targetPath)\n const result = await _extractTypes({\n customTags: config?.extract?.customTags,\n cwd,\n exportPath,\n files,\n filePath: filePath,\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 extractResult: result.extractorResult,\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","extractResult","extractTypesOutFile","moduleBlocks","_extractModuleBlocksFromTypes","fs","appendFile","compilerState","allProgramFiles","getSourceFiles","sourceFiles","sourceFile","includes","push","_extractModuleBlocks","fileContent","_a","moduleIndentLevel","insideComment","moduleLines","lines","split","isModuleDeclaration","match","moduleIndex","indexOf","isModuleStart","blockEndIndex","map","l","substring","_DtsError","constructor","_createApiExtractorConfig","distPath","exportPath","filePath","projectFolder","mainEntryPointFilePath","tsconfigPath","apiReport","enabled","reportFileName","compiler","tsconfigFilePath","docModel","apiJsonFilePath","resolve","dtsRollup","untrimmedFilePath","tsdocMetadata","_createTSDocConfig","opts","customTags","tsDocBaseBuf","readFile","require","tsDocBaseConfig","parse","toString","tagDefinitions","t","tagName","name","syntaxKind","allowMultiple","supportForTags","customTag","TSDocConfigFile","loadFromObject","noStandardTags","_LOG_LEVELS","info","off","warn","_getExtractMessagesConfig","rules","_ruleToLogLevel","key","defaultLevel","r","compilerMessageReporting","default","extractorMessageReporting","addToApiReportFile","tsdocMessageReporting","_extractTypes","files","projectPath","sourceTypesPath","tsdocConfigFile","extractorConfig","ExtractorConfig","prepare","configObject","configObjectFullPath","packageJsonFullPath","extractorResult","Extractor","invoke","localBuild","showVerboseMessages","messageCallback","handled","typesPath","typesBuf","prettierConfig","prettier","resolveConfig","mkdirp","dirname","writeFile","format","filepath","type","rimraf","promisify","rimrafCallback","_doExtract","task","_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-6a4ed92a.js');
13
+ var _resolveBuildContext = require('./_resolveBuildContext-7ca7e64e.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-b6235a62.js');
23
+ var index = require('./index-68bcc7e2.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-7868b922.js.map
277
+ //# sourceMappingURL=watch-e09a4a66.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"watch-e09a4a66.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-7868b922.js');
3
+ var watch = require('./watch-e09a4a66.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-6a4ed92a.js');
11
+ require('./_resolveBuildContext-7ca7e64e.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-b6235a62.js');
31
+ require('./index-68bcc7e2.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-9bef2175.js.map
84
+ //# sourceMappingURL=watchAction-c64a95c7.js.map
@@ -1 +1 @@
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;;"}
1
+ {"version":3,"file":"watchAction-c64a95c7.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.17.0";
13
+ var version = "1.17.2";
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-0ec1ffd5.js');
19
+ return require('./_chunks/checkAction-e7e455d4.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-1f1e18f0.js');
27
+ return require('./_chunks/buildAction-35aab706.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-9bef2175.js');
35
+ return require('./_chunks/watchAction-c64a95c7.js');
36
36
  });
37
37
  return watchAction(options);
38
38
  });
package/dist/index.d.ts CHANGED
@@ -200,7 +200,7 @@ export declare interface _PackageJSON {
200
200
  }
201
201
 
202
202
  /** @internal */
203
- export declare function _parseExports(options: {pkg: _PackageJSON}): (PkgExport & {
203
+ export declare function _parseExports(options: {pkg: _PackageJSON; strict: boolean}): (PkgExport & {
204
204
  _path: string
205
205
  })[]
206
206
 
package/dist/index.esm.js CHANGED
@@ -249,7 +249,8 @@ function _validateExports(_exports, options) {
249
249
 
250
250
  function _parseExports(options) {
251
251
  const {
252
- pkg
252
+ pkg,
253
+ strict
253
254
  } = options;
254
255
  const rootExport = {
255
256
  _exported: true,
@@ -269,7 +270,7 @@ function _parseExports(options) {
269
270
  const errors = [];
270
271
 
271
272
  if (pkg.exports) {
272
- if (!pkg.exports["./package.json"]) {
273
+ if (strict && !pkg.exports["./package.json"]) {
273
274
  errors.push('package.json: `exports["./package.json"] must be declared.');
274
275
  }
275
276
 
@@ -568,59 +569,64 @@ async function _buildTypes(options) {
568
569
  async function _appendModuleBlocks(_ref2) {
569
570
  let {
570
571
  tsOutDir,
572
+ extractResult,
571
573
  extractTypesOutFile
572
574
  } = _ref2;
573
- const moduleBlocks = await _extractModuleBlocksFromTypes(tsOutDir);
575
+ const moduleBlocks = await _extractModuleBlocksFromTypes({
576
+ tsOutDir,
577
+ extractResult
578
+ });
574
579
 
575
580
  if (moduleBlocks.length) {
576
581
  await fs.appendFile(extractTypesOutFile, "\n" + moduleBlocks.join("\n\n"));
577
582
  }
578
583
  }
579
584
 
580
- async function _extractModuleBlocksFromTypes(dirname) {
585
+ async function _extractModuleBlocksFromTypes(_ref3) {
586
+ let {
587
+ tsOutDir,
588
+ extractResult
589
+ } = _ref3;
581
590
  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
- });
591
+ const program = extractResult.compilerState.program;
592
+ const allProgramFiles = [...program.getSourceFiles()];
593
+ const sourceFiles = allProgramFiles.filter(sourceFile => sourceFile.fileName.includes(tsOutDir));
588
594
 
589
- if (content.includes("declare module")) {
590
- moduleBlocks.push(..._extractModuleBlocks(content));
595
+ for (const sourceFile of sourceFiles) {
596
+ if (sourceFile.text.includes("declare module")) {
597
+ moduleBlocks.push(..._extractModuleBlocks(sourceFile.text));
591
598
  }
592
599
  }
593
600
 
594
601
  return moduleBlocks;
595
602
  }
596
603
 
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
604
  function _extractModuleBlocks(fileContent) {
605
+ var _a;
606
+
615
607
  const moduleBlocks = [];
616
608
  let moduleIndentLevel = 0;
609
+ let insideComment = false;
617
610
  let moduleLines = [];
618
611
  const lines = fileContent.split("\n");
619
612
 
620
613
  for (const line of lines) {
614
+ if (insideComment && line.includes("*/")) {
615
+ insideComment = false;
616
+ } else if (!insideComment && line.includes("/*") && line.includes("*/")) {
617
+ continue;
618
+ } else if (!insideComment && line.includes("/*")) {
619
+ insideComment = true;
620
+ }
621
+
622
+ if (insideComment) {
623
+ continue;
624
+ }
625
+
621
626
  if (!moduleLines.length) {
627
+ const isModuleDeclaration = (_a = line.match(/^\s*declare module.+$/)) == null ? void 0 : _a.length;
622
628
  const moduleIndex = line.indexOf("declare module");
623
- const isModuleStart = moduleIndex > -1;
629
+ const isModuleStart = isModuleDeclaration && moduleIndex > -1;
624
630
 
625
631
  if (isModuleStart) {
626
632
  moduleIndentLevel = moduleIndex;
@@ -886,12 +892,13 @@ async function _doExtract(ctx, task) {
886
892
  const exportPath = entry.exportPath === "." ? "./index" : entry.exportPath;
887
893
  const sourceTypesPath = path.resolve(tmpPath, path.relative(rootDir, path.resolve(cwd, entry.sourcePath)).replace(/\.ts$/, ".d.ts"));
888
894
  const targetPath = path.resolve(cwd, entry.targetPath);
895
+ const filePath = path.relative(outDir, targetPath);
889
896
  const result = await _extractTypes({
890
897
  customTags: (_a = config == null ? void 0 : config.extract) == null ? void 0 : _a.customTags,
891
898
  cwd,
892
899
  exportPath,
893
900
  files,
894
- filePath: path.relative(outDir, targetPath),
901
+ filePath,
895
902
  projectPath: cwd,
896
903
  rules: (_b = config == null ? void 0 : config.extract) == null ? void 0 : _b.rules,
897
904
  sourceTypesPath,
@@ -900,6 +907,7 @@ async function _doExtract(ctx, task) {
900
907
  });
901
908
  await _appendModuleBlocks({
902
909
  tsOutDir: tmpPath,
910
+ extractResult: result.extractorResult,
903
911
  extractTypesOutFile: path.resolve(outDir, targetPath)
904
912
  });
905
913
  messages.push(...result.messages);
@@ -984,7 +992,7 @@ const _dtsWatchTask = {
984
992
  };
985
993
 
986
994
  function _resolveRollupConfig(ctx, buildTask) {
987
- var _ref3, _ref6, _ref7, _ref8, _ref9, _ref10;
995
+ var _ref4, _ref7, _ref8, _ref9, _ref10, _ref11;
988
996
 
989
997
  var _a, _b, _c;
990
998
 
@@ -1004,10 +1012,10 @@ function _resolveRollupConfig(ctx, buildTask) {
1004
1012
  ts
1005
1013
  } = ctx;
1006
1014
  const outputExt = _MODULE_EXT[pkg.type][format];
1007
- const minify = (_ref3 = config == null ? void 0 : config.minify) !== null && _ref3 !== void 0 ? _ref3 : true;
1015
+ const minify = (_ref4 = config == null ? void 0 : config.minify) !== null && _ref4 !== void 0 ? _ref4 : true;
1008
1016
  const outDir = path.relative(cwd, distPath);
1009
- const pathAliases = Object.fromEntries(Object.entries(((_a = ts.config) == null ? void 0 : _a.options.paths) || {}).map(_ref4 => {
1010
- let [key, val] = _ref4;
1017
+ const pathAliases = Object.fromEntries(Object.entries(((_a = ts.config) == null ? void 0 : _a.options.paths) || {}).map(_ref5 => {
1018
+ let [key, val] = _ref5;
1011
1019
 
1012
1020
  var _a2;
1013
1021
 
@@ -1023,8 +1031,8 @@ function _resolveRollupConfig(ctx, buildTask) {
1023
1031
 
1024
1032
  const sourcePaths = _exports && Object.values(_exports).map(e => path.resolve(cwd, e.source));
1025
1033
 
1026
- const replacements = Object.fromEntries(Object.entries((config == null ? void 0 : config.define) || {}).map(_ref5 => {
1027
- let [key, val] = _ref5;
1034
+ const replacements = Object.fromEntries(Object.entries((config == null ? void 0 : config.define) || {}).map(_ref6 => {
1035
+ let [key, val] = _ref6;
1028
1036
  return [key, JSON.stringify(val)];
1029
1037
  }));
1030
1038
  const defaultPlugins = [replace({
@@ -1055,10 +1063,10 @@ function _resolveRollupConfig(ctx, buildTask) {
1055
1063
  esmExternals: false,
1056
1064
  extensions: [".js"]
1057
1065
  }), json(), esbuild({
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",
1066
+ jsx: (_ref7 = config == null ? void 0 : config.jsx) !== null && _ref7 !== void 0 ? _ref7 : "automatic",
1067
+ jsxFactory: (_ref8 = config == null ? void 0 : config.jsxFactory) !== null && _ref8 !== void 0 ? _ref8 : "createElement",
1068
+ jsxFragment: (_ref9 = config == null ? void 0 : config.jsxFragment) !== null && _ref9 !== void 0 ? _ref9 : "Fragment",
1069
+ jsxImportSource: (_ref10 = config == null ? void 0 : config.jsxImportSource) !== null && _ref10 !== void 0 ? _ref10 : "react",
1062
1070
  target,
1063
1071
  tsconfig: ctx.ts.configPath || "tsconfig.json"
1064
1072
  }), getBabelOutputPlugin({
@@ -1132,7 +1140,7 @@ function _resolveRollupConfig(ctx, buildTask) {
1132
1140
  entryFileNames: () => outputExt === ".esm.js" ? "[name].js" : "[name]".concat(outputExt),
1133
1141
  format,
1134
1142
  exports: "auto",
1135
- sourcemap: (_ref10 = config == null ? void 0 : config.sourcemap) !== null && _ref10 !== void 0 ? _ref10 : true
1143
+ sourcemap: (_ref11 = config == null ? void 0 : config.sourcemap) !== null && _ref11 !== void 0 ? _ref11 : true
1136
1144
  }
1137
1145
  };
1138
1146
  }
@@ -1421,7 +1429,7 @@ function _createLogger() {
1421
1429
  }
1422
1430
 
1423
1431
  async function _resolveBuildContext(options) {
1424
- var _ref11;
1432
+ var _ref12;
1425
1433
 
1426
1434
  const {
1427
1435
  config,
@@ -1460,7 +1468,8 @@ async function _resolveBuildContext(options) {
1460
1468
  };
1461
1469
 
1462
1470
  const parsedExports = _parseExports({
1463
- pkg
1471
+ pkg,
1472
+ strict
1464
1473
  }).reduce((acc, x) => {
1465
1474
  const {
1466
1475
  _path: exportPath
@@ -1515,7 +1524,7 @@ async function _resolveBuildContext(options) {
1515
1524
  files: [],
1516
1525
  logger,
1517
1526
  pkg,
1518
- runtime: (_ref11 = config == null ? void 0 : config.runtime) !== null && _ref11 !== void 0 ? _ref11 : "*",
1527
+ runtime: (_ref12 = config == null ? void 0 : config.runtime) !== null && _ref12 !== void 0 ? _ref12 : "*",
1519
1528
  strict,
1520
1529
  target,
1521
1530
  ts: {
@@ -1641,11 +1650,11 @@ function _printPackageTree(ctx) {
1641
1650
  return "".concat(file, " ").concat(chalk.gray(info.size));
1642
1651
  }
1643
1652
 
1644
- tree.exports = Object.fromEntries(Object.entries(exports).filter(_ref12 => {
1645
- let [, entry] = _ref12;
1653
+ tree.exports = Object.fromEntries(Object.entries(exports).filter(_ref13 => {
1654
+ let [, entry] = _ref13;
1646
1655
  return entry._exported;
1647
- }).map(_ref13 => {
1648
- let [exportPath, entry] = _ref13;
1656
+ }).map(_ref14 => {
1657
+ let [exportPath, entry] = _ref14;
1649
1658
  const exp = {
1650
1659
  source: entry.source,
1651
1660
  types: void 0,
@@ -1845,8 +1854,8 @@ function _resolveWatchTasks(ctx) {
1845
1854
  target
1846
1855
  } = ctx;
1847
1856
  const tasks = [];
1848
- const exports = Object.entries(ctx.exports || {}).map(_ref14 => {
1849
- let [_path, exp] = _ref14;
1857
+ const exports = Object.entries(ctx.exports || {}).map(_ref15 => {
1858
+ let [_path, exp] = _ref15;
1850
1859
  return _objectSpread({
1851
1860
  _path
1852
1861
  }, exp);