@sanity/pkg-utils 1.16.2 → 1.17.1

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-a822eb55.js → build-f2af311b.js} +3 -3
  4. package/dist/_chunks/{build-a822eb55.js.map → build-f2af311b.js.map} +1 -1
  5. package/dist/_chunks/{buildAction-2b54017d.js → buildAction-e362986d.js} +4 -4
  6. package/dist/_chunks/{buildAction-2b54017d.js.map → buildAction-e362986d.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-7ec7f61a.js → index-2c392b48.js} +49 -42
  12. package/dist/_chunks/index-2c392b48.js.map +1 -0
  13. package/dist/_chunks/{watch-79594e7f.js → watch-29c57619.js} +3 -3
  14. package/dist/_chunks/{watch-79594e7f.js.map → watch-29c57619.js.map} +1 -1
  15. package/dist/_chunks/{watchAction-8d500150.js → watchAction-65236621.js} +4 -4
  16. package/dist/_chunks/{watchAction-8d500150.js.map → watchAction-65236621.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 +68 -51
  20. package/dist/index.esm.js.map +1 -1
  21. package/dist/index.js +5 -5
  22. package/package.json +3 -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 +38 -26
  27. package/src/node/_tasks/dts/_doExtract.ts +3 -2
  28. package/dist/_chunks/_resolveBuildContext-0d61dcca.js.map +0 -1
  29. package/dist/_chunks/index-7ec7f61a.js.map +0 -1
package/dist/index.js CHANGED
@@ -4,15 +4,15 @@ Object.defineProperty(exports, '__esModule', {
4
4
  value: true
5
5
  });
6
6
 
7
- var _resolveBuildContext = require('./_chunks/_resolveBuildContext-0d61dcca.js');
7
+ var _resolveBuildContext = require('./_chunks/_resolveBuildContext-6a4ed92a.js');
8
8
 
9
- var build = require('./_chunks/build-a822eb55.js');
9
+ var build = require('./_chunks/build-f2af311b.js');
10
10
 
11
- var index = require('./_chunks/index-7ec7f61a.js');
11
+ var index = require('./_chunks/index-2c392b48.js');
12
12
 
13
- var check = require('./_chunks/check-f86cdc15.js');
13
+ var check = require('./_chunks/check-abba8425.js');
14
14
 
15
- var watch = require('./_chunks/watch-79594e7f.js');
15
+ var watch = require('./_chunks/watch-29c57619.js');
16
16
 
17
17
  require('path');
18
18
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sanity/pkg-utils",
3
- "version": "1.16.2",
3
+ "version": "1.17.1",
4
4
  "author": "Sanity.io <hello@sanity.io>",
5
5
  "license": "MIT",
6
6
  "description": "Simple utilities for modern npm packages.",
@@ -24,7 +24,8 @@
24
24
  "import": "./dist/index.esm.js",
25
25
  "require": "./dist/index.js",
26
26
  "default": "./dist/index.esm.js"
27
- }
27
+ },
28
+ "./package.json": "./package.json"
28
29
  },
29
30
  "bin": {
30
31
  "pkg": "./bin/pkg-utils.js",
@@ -27,8 +27,18 @@ export function _parseExports(options: {pkg: _PackageJSON}): (PkgExport & {_path
27
27
  const errors: string[] = []
28
28
 
29
29
  if (pkg.exports) {
30
+ if (!pkg.exports['./package.json']) {
31
+ errors.push('package.json: `exports["./package.json"] must be declared.')
32
+ }
33
+
30
34
  for (const [exportPath, exportEntry] of Object.entries(pkg.exports)) {
31
- if (_isRecord(exportEntry)) {
35
+ if (exportPath.endsWith('.json')) {
36
+ if (exportPath === './package.json') {
37
+ if (exportEntry !== './package.json') {
38
+ errors.push('package.json: `exports["./package.json"] must be "./package.json".')
39
+ }
40
+ }
41
+ } else if (_isRecord(exportEntry)) {
32
42
  if (exportPath === '.') {
33
43
  if (
34
44
  exportEntry.require &&
@@ -10,23 +10,24 @@ export interface _PackageJSON {
10
10
  peerDependencies?: Record<string, string>
11
11
  exports?: Record<
12
12
  string,
13
- {
14
- source: string
15
- types?: string
16
- browser?: {
13
+ | `./${string}.json`
14
+ | {
17
15
  source: string
18
- require?: string
16
+ types?: string
17
+ browser?: {
18
+ source: string
19
+ require?: string
20
+ import?: string
21
+ }
22
+ node?: {
23
+ source: string
24
+ require?: string
25
+ import?: string
26
+ }
19
27
  import?: string
20
- }
21
- node?: {
22
- source: string
23
28
  require?: string
24
- import?: string
29
+ default: string
25
30
  }
26
- import?: string
27
- require?: string
28
- default: string
29
- }
30
31
  >
31
32
  main?: string
32
33
  browser?: Record<string, string>
@@ -17,27 +17,30 @@ const pkgSchema = z.object({
17
17
  types: z.optional(z.string()),
18
18
  exports: z.optional(
19
19
  z.record(
20
- z.object({
21
- types: z.optional(z.string()),
22
- source: z.string(),
23
- browser: z.optional(
24
- z.object({
25
- source: z.string(),
26
- require: z.optional(z.string()),
27
- import: z.optional(z.string()),
28
- })
29
- ),
30
- node: z.optional(
31
- z.object({
32
- source: z.string(),
33
- require: z.optional(z.string()),
34
- import: z.optional(z.string()),
35
- })
36
- ),
37
- require: z.optional(z.string()),
38
- import: z.optional(z.string()),
39
- default: z.string(),
40
- })
20
+ z.union([
21
+ z.custom<`./${string}.json`>((val) => /^\.\/.*\.json$/.test(val as string)),
22
+ z.object({
23
+ types: z.optional(z.string()),
24
+ source: z.string(),
25
+ browser: z.optional(
26
+ z.object({
27
+ source: z.string(),
28
+ require: z.optional(z.string()),
29
+ import: z.optional(z.string()),
30
+ })
31
+ ),
32
+ node: z.optional(
33
+ z.object({
34
+ source: z.string(),
35
+ require: z.optional(z.string()),
36
+ import: z.optional(z.string()),
37
+ })
38
+ ),
39
+ require: z.optional(z.string()),
40
+ import: z.optional(z.string()),
41
+ default: z.string(),
42
+ }),
43
+ ])
41
44
  )
42
45
  ),
43
46
  browserslist: z.optional(z.array(z.string())),
@@ -1,5 +1,6 @@
1
1
  import fs from 'fs/promises'
2
- import path from 'path'
2
+ import {ExtractorResult} from '@microsoft/api-extractor'
3
+ import {Program} from 'typescript'
3
4
 
4
5
  /**
5
6
  * '@microsoft/api-extractor' omits declare module blocks
@@ -7,63 +8,74 @@ import path from 'path'
7
8
  */
8
9
  export async function _appendModuleBlocks({
9
10
  tsOutDir,
11
+ extractResult,
10
12
  extractTypesOutFile,
11
13
  }: {
12
14
  tsOutDir: string
15
+ extractResult: ExtractorResult
13
16
  extractTypesOutFile: string
14
17
  }): Promise<void> {
15
- const moduleBlocks = await _extractModuleBlocksFromTypes(tsOutDir)
18
+ const moduleBlocks = await _extractModuleBlocksFromTypes({tsOutDir, extractResult})
16
19
 
17
20
  if (moduleBlocks.length) {
18
21
  await fs.appendFile(extractTypesOutFile, '\n' + moduleBlocks.join('\n\n'))
19
22
  }
20
23
  }
21
24
 
22
- async function _extractModuleBlocksFromTypes(dirname: string): Promise<string[]> {
25
+ async function _extractModuleBlocksFromTypes({
26
+ tsOutDir,
27
+ extractResult,
28
+ }: {
29
+ tsOutDir: string
30
+ extractResult: ExtractorResult
31
+ }): Promise<string[]> {
23
32
  const moduleBlocks: string[] = []
24
33
 
25
- const files = await _getFileList(dirname)
26
-
27
- for (const fileName of files) {
28
- const content = await fs.readFile(path.resolve(dirname, fileName), {
29
- encoding: 'utf-8',
30
- })
34
+ const program = extractResult.compilerState.program as Program
31
35
 
32
- if (content.includes('declare module')) {
33
- moduleBlocks.push(..._extractModuleBlocks(content))
34
- }
35
- }
36
+ // all program files, including node_modules
37
+ const allProgramFiles = [...program.getSourceFiles()]
36
38
 
37
- return moduleBlocks
38
- }
39
+ // just our compiled files used in the program
40
+ const sourceFiles = allProgramFiles.filter((sourceFile) => sourceFile.fileName.includes(tsOutDir))
39
41
 
40
- async function _getFileList(dirName: string): Promise<string[]> {
41
- let files: string[] = []
42
- const filesInCurrentDir = await fs.readdir(dirName, {withFileTypes: true})
43
-
44
- for (const fileInDir of filesInCurrentDir) {
45
- if (fileInDir.isDirectory()) {
46
- files = [...files, ...(await _getFileList(path.resolve(dirName, fileInDir.name)))]
47
- } else {
48
- files.push(path.resolve(dirName, fileInDir.name))
42
+ for (const sourceFile of sourceFiles) {
43
+ if (sourceFile.text.includes('declare module')) {
44
+ moduleBlocks.push(..._extractModuleBlocks(sourceFile.text))
49
45
  }
50
46
  }
51
47
 
52
- return files
48
+ return moduleBlocks
53
49
  }
54
50
 
55
51
  export function _extractModuleBlocks(fileContent: string): string[] {
56
52
  const moduleBlocks: string[] = []
57
53
 
58
54
  let moduleIndentLevel = 0
55
+ let insideComment = false
59
56
  let moduleLines: string[] = []
60
57
 
61
58
  const lines = fileContent.split('\n')
62
59
 
63
60
  for (const line of lines) {
61
+ // Note: Extractor already removes comment blocks, so fileContent is typically already comment free
62
+ // This is just defensive code, just in case
63
+ if (insideComment && line.includes('*/')) {
64
+ insideComment = false
65
+ } else if (!insideComment && line.includes('/*') && line.includes('*/')) {
66
+ continue // it's a one-line comment
67
+ } else if (!insideComment && line.includes('/*')) {
68
+ insideComment = true
69
+ }
70
+
71
+ if (insideComment) {
72
+ continue
73
+ }
74
+
64
75
  if (!moduleLines.length) {
76
+ const isModuleDeclaration = line.match(/^\s*declare module.+$/)?.length
65
77
  const moduleIndex = line.indexOf('declare module')
66
- const isModuleStart = moduleIndex > -1
78
+ const isModuleStart = isModuleDeclaration && moduleIndex > -1
67
79
 
68
80
  if (isModuleStart) {
69
81
  moduleIndentLevel = moduleIndex
@@ -48,13 +48,13 @@ export async function _doExtract(
48
48
  )
49
49
 
50
50
  const targetPath = path.resolve(cwd, entry.targetPath)
51
-
51
+ const filePath = path.relative(outDir, targetPath)
52
52
  const result = await _extractTypes({
53
53
  customTags: config?.extract?.customTags,
54
54
  cwd,
55
55
  exportPath,
56
56
  files,
57
- filePath: path.relative(outDir, targetPath),
57
+ filePath: filePath,
58
58
  projectPath: cwd,
59
59
  rules: config?.extract?.rules,
60
60
  sourceTypesPath: sourceTypesPath,
@@ -64,6 +64,7 @@ export async function _doExtract(
64
64
 
65
65
  await _appendModuleBlocks({
66
66
  tsOutDir: tmpPath,
67
+ extractResult: result.extractorResult,
67
68
  extractTypesOutFile: path.resolve(outDir, targetPath),
68
69
  })
69
70
 
@@ -1 +0,0 @@
1
- {"version":3,"file":"_resolveBuildContext-0d61dcca.js","sources":["../../src/node/_core/_constants.ts","../../src/node/_core/_defaults.ts","../../src/node/_core/_isRecord.ts","../../src/node/_core/config/_findConfigFile.ts","../../src/node/_core/config/_loadConfig.ts","../../src/node/_core/config/_resolveConfigProperty.ts","../../src/node/_core/pkg/_validatePkg.ts","../../src/node/_core/pkg/_loadPkg.ts","../../src/node/_core/pkg/_loadPkgWithReporting.ts","../../src/node/_core/pkg/_validateExports.ts","../../src/node/_core/pkg/_parseExports.ts","../../src/node/_core/ts/_loadTSConfig.ts","../../src/node/_core/_findCommonPath.ts","../../src/node/_resolveBrowserslistVersions.ts","../../src/node/_resolveBrowserTarget.ts","../../src/node/_resolveNodeTarget.ts","../../src/node/_resolveBuildContext.ts"],"sourcesContent":["/** @internal */\nexport const _MODULE_EXT: Record<'commonjs' | 'module', {commonjs: string; esm: string}> = {\n // pkg.type: \"commonjs\"\n commonjs: {\n commonjs: '.js',\n // NOTE: using the `.mjs` extension causing issues in situations where\n // not every and all dependencies support ESM exports.\n // So for now, we require the ESM modules to have the `.esm.js` extension.\n esm: '.esm.js',\n },\n\n // pkg.type: \"module\"\n module: {\n commonjs: '.cjs',\n esm: '.js',\n },\n}\n","/** @internal */\nexport const _DEFAULTS = {\n browserslist: [\n '> 0.2% and supports es6-module and supports es6-module-dynamic-import',\n 'not dead',\n 'not IE 11',\n 'maintained node versions',\n ],\n}\n","/** @internal */\nexport function _isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && !Array.isArray(value) && typeof value === 'object'\n}\n","import {stat} from 'fs/promises'\nimport path from 'path'\nimport findConfig from 'find-config'\n\nconst CONFIG_FILE_NAMES = [\n 'package.config.ts',\n 'package.config.js',\n 'package.config.cjs',\n 'package.config.mjs',\n]\n\nexport async function _findConfigFile(cwd: string): Promise<string | undefined> {\n const pkgJsonPath = findConfig('package.json', {cwd})\n\n if (!pkgJsonPath) return undefined\n\n const pkgPath = path.dirname(pkgJsonPath)\n\n for (const fileName of CONFIG_FILE_NAMES) {\n const configPath = path.resolve(pkgPath, fileName)\n\n const exists = await _fileExists(configPath)\n\n if (exists) {\n return configPath\n }\n }\n\n return undefined\n}\n\nasync function _fileExists(filePath: string) {\n try {\n await stat(filePath)\n\n return true\n } catch (_) {\n return false\n }\n}\n","import path from 'path'\nimport {register} from 'esbuild-register/dist/node'\nimport pkgUp from 'pkg-up'\nimport {_findConfigFile} from './_findConfigFile'\nimport {PkgConfigOptions} from './types'\n\n/** @internal */\nexport async function _loadConfig(options: {cwd: string}): Promise<PkgConfigOptions | undefined> {\n const {cwd} = options\n\n const pkgPath = await pkgUp({cwd})\n\n if (!pkgPath) return undefined\n\n const root = path.dirname(pkgPath)\n\n const configFile = await _findConfigFile(root)\n\n if (!configFile) {\n return undefined\n }\n\n // Do not accept config files outside of the root\n if (!configFile.startsWith(cwd)) {\n return undefined\n }\n\n try {\n const {unregister} = register({extensions: ['.js', '.mjs', '.ts']})\n\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const mod = require(configFile)\n\n unregister()\n\n return mod?.default || mod || undefined\n } catch (_) {\n return undefined\n }\n}\n","import {PkgConfigProperty, PkgConfigPropertyResolver} from './types'\n\n/** @internal */\nexport function _resolveConfigProperty<T>(\n prop: PkgConfigProperty<T> | undefined,\n initialValue: T\n): T {\n if (!prop) return initialValue\n\n if (typeof prop === 'function') {\n return (prop as PkgConfigPropertyResolver<T>)(initialValue)\n }\n\n return prop\n}\n","import {z} from 'zod'\nimport {_PackageJSON} from './_types'\n\nconst pkgSchema = z.object({\n type: z.optional(z.enum(['commonjs', 'module'])),\n name: z.string(),\n version: z.string(),\n license: z.string(),\n bin: z.optional(z.record(z.string())),\n dependencies: z.optional(z.record(z.string())),\n devDependencies: z.optional(z.record(z.string())),\n peerDependencies: z.optional(z.record(z.string())),\n source: z.optional(z.string()),\n main: z.optional(z.string()),\n browser: z.optional(z.record(z.string())),\n module: z.optional(z.string()),\n types: z.optional(z.string()),\n exports: z.optional(\n z.record(\n z.object({\n types: z.optional(z.string()),\n source: z.string(),\n browser: z.optional(\n z.object({\n source: z.string(),\n require: z.optional(z.string()),\n import: z.optional(z.string()),\n })\n ),\n node: z.optional(\n z.object({\n source: z.string(),\n require: z.optional(z.string()),\n import: z.optional(z.string()),\n })\n ),\n require: z.optional(z.string()),\n import: z.optional(z.string()),\n default: z.string(),\n })\n )\n ),\n browserslist: z.optional(z.array(z.string())),\n})\n\nexport function _validatePkg(input: unknown): _PackageJSON {\n const pkg = pkgSchema.parse(input)\n\n return {...pkg, type: pkg.type || 'commonjs'}\n}\n","import fs from 'fs/promises'\nimport pkgUp from 'pkg-up'\nimport {_PackageJSON} from './_types'\nimport {_validatePkg} from './_validatePkg'\n\n/** @internal */\nexport async function _loadPkg(options: {cwd: string}): Promise<_PackageJSON> {\n const {cwd} = options\n\n const pkgPath = await pkgUp({cwd})\n\n if (!pkgPath) throw new Error('no package.json found')\n\n const buf = await fs.readFile(pkgPath)\n\n return _validatePkg(JSON.parse(buf.toString()))\n}\n","/* eslint-disable no-console */\n\nimport chalk from 'chalk'\nimport {ZodError} from 'zod'\nimport {_loadPkg} from './_loadPkg'\nimport {_PackageJSON} from './_types'\n\n/** @internal */\nexport async function _loadPkgWithReporting(options: {cwd: string}): Promise<_PackageJSON> {\n try {\n return await _loadPkg(options)\n } catch (err) {\n if (err instanceof ZodError) {\n for (const issue of err.issues) {\n if (issue.code === 'invalid_type') {\n console.log(\n [\n `${chalk.red('fail')} \\`${_formatPath(issue.path)}\\` `,\n `in ./package.json must be of type ${chalk.magenta(issue.expected)} `,\n `(received ${chalk.magenta(issue.received)})`,\n ].join('')\n )\n }\n }\n } else {\n console.error(err)\n }\n\n process.exit(1)\n }\n}\n\nfunction _formatPath(segments: Array<string | number>) {\n return segments\n .map((s, idx) => {\n if (idx === 0) return s\n\n if (typeof s === 'number') {\n return `[${s}]`\n }\n\n if (s.startsWith('.')) {\n return `[\"${s}\"]`\n }\n\n return `.${s}`\n })\n .join('')\n}\n","import {_MODULE_EXT} from '../_constants'\nimport {PkgExport} from '../config'\nimport {_PackageJSON} from './_types'\n\nexport function _validateExports(\n _exports: (PkgExport & {_path: string})[],\n options: {pkg: _PackageJSON}\n): string[] {\n const {pkg} = options\n const ext = _MODULE_EXT[pkg.type]\n\n const errors: string[] = []\n\n for (const exp of _exports) {\n if (exp.require && !exp.require.endsWith(ext.commonjs)) {\n errors.push(\n `package.json with \\`type: \"${pkg.type}\"\\` - \\`exports[\"${exp._path}\"].require\\` must end with \"${ext.commonjs}\"`\n )\n }\n\n if (exp.import && !exp.import.endsWith(ext.esm)) {\n errors.push(\n `package.json with \\`type: \"${pkg.type}\"\\` - \\`exports[\"${exp._path}\"].import\\` must end with \"${ext.esm}\"`\n )\n }\n }\n\n return errors\n}\n","import {_isRecord} from '../_isRecord'\nimport {PkgExport} from '../config'\nimport {_PackageJSON} from './_types'\nimport {_validateExports} from './_validateExports'\n\n/** @internal */\nexport function _parseExports(options: {pkg: _PackageJSON}): (PkgExport & {_path: string})[] {\n const {pkg} = options\n\n const rootExport: PkgExport & {_path: string} = {\n _exported: true,\n _path: '.',\n types: pkg.types,\n source: pkg.source || '',\n browser: pkg.browser && {\n source: pkg.source || '',\n require: pkg.main && pkg.browser[pkg.main],\n import: pkg.module && pkg.browser[pkg.module],\n },\n import: pkg.module,\n require: pkg.main,\n default: pkg.module || pkg.main || '',\n }\n\n const extraExports: (PkgExport & {_path: string})[] = []\n\n const errors: string[] = []\n\n if (pkg.exports) {\n for (const [exportPath, exportEntry] of Object.entries(pkg.exports)) {\n if (_isRecord(exportEntry)) {\n if (exportPath === '.') {\n if (\n exportEntry.require &&\n rootExport.require &&\n exportEntry.require !== rootExport.require\n ) {\n errors.push(\n 'package.json: mismatch between \"main\" and \"exports.require\". These must be equal.'\n )\n }\n\n if (exportEntry.import && rootExport.import && exportEntry.import !== rootExport.import) {\n errors.push(\n 'package.json: mismatch between \"module\" and \"exports.import\" These must be equal.'\n )\n }\n\n if (exportEntry.types && rootExport.types && exportEntry.types !== rootExport.types) {\n errors.push(\n 'package.json: mismatch between \"types\" and \"exports.types\". These must be equal.'\n )\n }\n\n if (exportEntry.source && rootExport.source && exportEntry.source !== rootExport.source) {\n errors.push(\n 'package.json: mismatch between \"source\" and \"exports.source\". These must be equal.'\n )\n }\n\n Object.assign(rootExport, exportEntry)\n } else {\n const extraExport: PkgExport & {_path: string} = {\n _exported: true,\n _path: exportPath,\n ...exportEntry,\n }\n\n extraExports.push(extraExport)\n }\n } else {\n errors.push('package.json: exports must be an object')\n }\n }\n }\n\n const _exports = [rootExport, ...extraExports]\n\n errors.push(..._validateExports(_exports, {pkg}))\n\n if (errors.length) {\n throw new Error('\\n- ' + errors.join('\\n- '))\n }\n\n return _exports\n}\n","import ts from 'typescript'\n\n/** @internal */\nexport async function _loadTSConfig(options: {\n cwd: string\n tsconfigPath: string\n}): Promise<ts.ParsedCommandLine> {\n const {cwd, tsconfigPath} = options\n\n const configPath = ts.findConfigFile(cwd, ts.sys.fileExists, tsconfigPath)\n\n if (!configPath) {\n throw new Error(`could not find a valid '${tsconfigPath}'`)\n }\n\n const configFile = ts.readConfigFile(configPath, ts.sys.readFile)\n\n return ts.parseJsonConfigFileContent(configFile.config, ts.sys, cwd)\n}\n","import path from 'path'\n\nexport function _pathContains(containerPath: string, itemPath: string): boolean {\n return !path.relative(containerPath, itemPath).startsWith('..')\n}\n\nexport function _findCommonDirPath(filePaths: string[]): string | undefined {\n let ret: string | undefined = undefined\n\n for (const filePath of filePaths) {\n let dirPath = path.dirname(filePath)\n\n if (!ret) {\n ret = dirPath\n continue\n }\n\n while (dirPath !== ret) {\n dirPath = path.dirname(dirPath)\n\n if (dirPath === ret) {\n break\n }\n\n if (_pathContains(dirPath, ret)) {\n ret = dirPath\n break\n }\n\n if (dirPath === '.') return undefined\n }\n }\n\n return ret\n}\n","import browserslist from 'browserslist'\n\nexport interface _PackageTargetVersions {\n chrome: string[]\n ff: string[]\n edge: string[]\n iosSaf: string[]\n saf: string[]\n opera: string[]\n node: string[]\n}\n\nfunction _sortAsNumber(a: string, b: string) {\n const aVersion = Number(a)\n const bVersion = Number(b)\n\n return aVersion - bVersion\n}\n\nexport function _resolveBrowserslistVersions(query: string[]): _PackageTargetVersions {\n const result = browserslist(query)\n\n const entries = result.map((key) => {\n const [name, version] = key.split(' ')\n\n return {name, version: version.split('-')[0].split('.')[0]}\n })\n\n const andChr = entries.filter((b) => b.name === 'and_chr')\n const andFf = entries.filter((b) => b.name === 'and_ff')\n const chrome = entries.filter((b) => b.name === 'chrome')\n const edge = entries.filter((b) => b.name === 'edge')\n const ff = entries.filter((b) => b.name === 'firefox')\n const iosSaf = entries.filter((b) => b.name === 'ios_saf')\n const saf = entries.filter((b) => b.name === 'safari')\n const opera = entries.filter((b) => b.name === 'opera')\n const node = entries.filter((b) => b.name === 'node')\n\n // versions\n const versions: _PackageTargetVersions = {\n chrome: andChr.concat(chrome).map((b) => b.version),\n ff: andFf.concat(ff).map((b) => b.version),\n edge: edge.map((b) => b.version),\n iosSaf: iosSaf.map((b) => b.version),\n saf: saf.map((b) => b.version),\n opera: opera.map((b) => b.version),\n node: node.map((b) => b.version),\n }\n\n // sort\n versions.chrome.sort(_sortAsNumber)\n versions.ff.sort(_sortAsNumber)\n versions.edge.sort(_sortAsNumber)\n versions.iosSaf.sort(_sortAsNumber)\n versions.saf.sort(_sortAsNumber)\n versions.opera.sort(_sortAsNumber)\n versions.node.sort(_sortAsNumber)\n\n return versions\n}\n","import {_PackageTargetVersions} from './_resolveBrowserslistVersions'\n\nexport function _resolveBrowserTarget(versions: _PackageTargetVersions): string[] | undefined {\n const target: string[] = []\n\n if (versions.chrome.length) {\n target.push(`chrome${versions.chrome[0]}`)\n }\n\n if (versions.ff.length) {\n target.push(`firefox${versions.ff[0]}`)\n }\n\n if (versions.edge.length) {\n target.push(`edge${versions.edge[0]}`)\n }\n\n if (versions.iosSaf.length) {\n target.push(`ios${versions.iosSaf[0]}`)\n }\n\n if (versions.saf.length) {\n target.push(`safari${versions.saf[0]}`)\n }\n\n if (versions.opera.length) {\n target.push(`opera${versions.opera[0]}`)\n }\n\n if (target.length === 0) {\n return undefined\n }\n\n return target\n}\n","import {_PackageTargetVersions} from './_resolveBrowserslistVersions'\n\nexport function _resolveNodeTarget(versions: _PackageTargetVersions): string[] | undefined {\n const target: string[] = []\n\n if (versions.node.length) {\n target.push(`node${versions.node[0]}`)\n }\n\n if (target.length === 0) {\n return undefined\n }\n\n return target\n}\n","import path from 'path'\nimport chalk from 'chalk'\nimport {\n PkgConfigOptions,\n PkgExports,\n PkgRuntime,\n _BuildContext,\n _DEFAULTS,\n _loadTSConfig,\n _PackageJSON,\n _parseExports,\n _resolveConfigProperty,\n} from './_core'\nimport {_findCommonDirPath, _pathContains} from './_core/_findCommonPath'\nimport {_resolveBrowserslistVersions} from './_resolveBrowserslistVersions'\nimport {_resolveBrowserTarget} from './_resolveBrowserTarget'\nimport {_resolveNodeTarget} from './_resolveNodeTarget'\n\nfunction _createLogger(): _BuildContext['logger'] {\n return {\n /* eslint-disable no-console */\n log: (...args) => {\n console.log(...args)\n },\n info: (...args) => {\n console.log(chalk.blue(' info'), ...args)\n },\n warn: (...args) => {\n console.log(chalk.yellow(' warn'), ...args)\n },\n error: (...args) => {\n console.log(chalk.red(' fail'), ...args)\n },\n success: (...args) => {\n console.log(chalk.green(' ok '), ...args)\n },\n /* eslint-enable no-console */\n }\n}\n\nexport async function _resolveBuildContext(options: {\n config?: PkgConfigOptions\n cwd: string\n emitDeclarationOnly?: boolean\n pkg: _PackageJSON\n strict: boolean\n tsconfig: string\n}): Promise<_BuildContext> {\n const {config, cwd, emitDeclarationOnly = false, pkg, strict, tsconfig: tsconfigPath} = options\n const logger = _createLogger()\n const tsconfig = await _loadTSConfig({cwd, tsconfigPath})\n const targetVersions = _resolveBrowserslistVersions(pkg.browserslist || _DEFAULTS.browserslist)\n const nodeTarget = _resolveNodeTarget(targetVersions)\n const webTarget = _resolveBrowserTarget(targetVersions)\n\n if (!nodeTarget) {\n throw new Error('no matching `node` target')\n }\n\n if (!webTarget) {\n throw new Error('no matching `web` target')\n }\n\n const target: Record<PkgRuntime, string[]> = {\n '*': webTarget.concat(nodeTarget),\n browser: webTarget,\n node: nodeTarget,\n }\n\n const parsedExports = _parseExports({pkg}).reduce<PkgExports>((acc, x) => {\n const {_path: exportPath, ...exportEntry} = x\n\n return {...acc, [exportPath]: exportEntry}\n }, {})\n\n const exports = _resolveConfigProperty(config?.exports, parsedExports)\n\n const parsedExternal = [\n ...(pkg.dependencies ? Object.keys(pkg.dependencies) : []),\n ...(pkg.peerDependencies ? Object.keys(pkg.peerDependencies) : []),\n ]\n\n // Merge externals if an array is provided, replace if it's a function\n const external =\n config && Array.isArray(config.external)\n ? [...parsedExternal, ...config.external]\n : _resolveConfigProperty(config?.external, parsedExternal)\n\n const outputPaths = Object.values(exports)\n .flatMap((exportEntry) => {\n return [\n exportEntry.import,\n exportEntry.require,\n exportEntry.browser?.import,\n exportEntry.browser?.require,\n exportEntry.node?.import,\n exportEntry.node?.require,\n ].filter(Boolean) as string[]\n })\n .map((p) => path.resolve(cwd, p))\n\n const commonDistPath = _findCommonDirPath(outputPaths)\n\n if (commonDistPath === cwd) {\n throw new Error(\n 'all output files must share a common parent directory which is not the root package directory'\n )\n }\n\n if (commonDistPath && !_pathContains(cwd, commonDistPath)) {\n throw new Error('all output files must be located within the package')\n }\n\n const configDistPath = config?.dist ? path.resolve(cwd, config.dist) : undefined\n\n if (\n configDistPath &&\n commonDistPath &&\n configDistPath !== commonDistPath &&\n !_pathContains(configDistPath, commonDistPath)\n ) {\n logger.log(`did you mean to configure \\`dist: './${path.relative(cwd, commonDistPath)}'\\`?`)\n\n throw new Error('all output files must be located with the configured `dist` path')\n }\n\n const distPath = configDistPath || commonDistPath\n\n if (!distPath) {\n throw new Error('could not detect `dist` path')\n }\n\n const ctx: _BuildContext = {\n config,\n cwd,\n distPath,\n emitDeclarationOnly,\n exports,\n external,\n files: [],\n logger,\n pkg,\n runtime: config?.runtime ?? '*',\n strict,\n target,\n ts: {\n config: tsconfig,\n configPath: tsconfigPath,\n },\n }\n\n return ctx\n}\n"],"names":["_MODULE_EXT","commonjs","esm","module","_DEFAULTS","browserslist","_isRecord","value","Boolean","Array","isArray","CONFIG_FILE_NAMES","_findConfigFile","cwd","pkgJsonPath","findConfig","pkgPath","path","dirname","fileName","configPath","resolve","exists","_fileExists","filePath","stat","_","_loadConfig","options","pkgUp","root","configFile","startsWith","unregister","register","extensions","mod","require","default","_resolveConfigProperty","prop","initialValue","pkgSchema","z","object","type","optional","enum","name","string","version","license","bin","record","dependencies","devDependencies","peerDependencies","source","main","browser","types","exports","import","node","array","_validatePkg","input","pkg","parse","_loadPkg","Error","buf","fs","readFile","JSON","toString","_loadPkgWithReporting","err","ZodError","issue","issues","code","console","log","chalk","red","_formatPath","magenta","expected","received","join","error","process","exit","segments","map","s","idx","_validateExports","_exports","ext","errors","exp","endsWith","push","_path","_parseExports","rootExport","_exported","extraExports","exportPath","exportEntry","Object","entries","assign","extraExport","length","_loadTSConfig","tsconfigPath","ts","findConfigFile","sys","fileExists","readConfigFile","parseJsonConfigFileContent","config","_pathContains","containerPath","itemPath","relative","_findCommonDirPath","filePaths","ret","dirPath","_sortAsNumber","a","b","aVersion","Number","bVersion","_resolveBrowserslistVersions","query","result","key","split","andChr","filter","andFf","chrome","edge","ff","iosSaf","saf","opera","versions","concat","sort","_resolveBrowserTarget","target","_resolveNodeTarget","_createLogger","info","args","blue","warn","yellow","success","green","_resolveBuildContext","emitDeclarationOnly","strict","tsconfig","logger","targetVersions","nodeTarget","webTarget","parsedExports","reduce","acc","x","parsedExternal","keys","external","outputPaths","values","flatMap","_a","_b","_c","_d","p","commonDistPath","configDistPath","dist","distPath","ctx","files","runtime"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-7ec7f61a.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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"}