@sanity/pkg-utils 1.17.3 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/_handleError-869dec25.js +0 -5
- package/dist/_chunks/_handleError-869dec25.js.map +1 -1
- package/dist/_chunks/_resolveBuildContext-7ca7e64e.js +3 -122
- package/dist/_chunks/_resolveBuildContext-7ca7e64e.js.map +1 -1
- package/dist/_chunks/{build-6fac40bf.js → build-f39a3550.js} +2 -46
- package/dist/_chunks/{build-6fac40bf.js.map → build-f39a3550.js.map} +1 -1
- package/dist/_chunks/{buildAction-ff3e6d24.js → buildAction-8f449d1d.js} +5 -35
- package/dist/_chunks/{buildAction-ff3e6d24.js.map → buildAction-8f449d1d.js.map} +1 -1
- package/dist/_chunks/check-87cbb6cc.js +0 -55
- package/dist/_chunks/check-87cbb6cc.js.map +1 -1
- package/dist/_chunks/checkAction-e7e455d4.js +0 -17
- package/dist/_chunks/checkAction-e7e455d4.js.map +1 -1
- package/dist/_chunks/{index-fbba5480.js → index-7a851efa.js} +47 -224
- package/dist/_chunks/index-7a851efa.js.map +1 -0
- package/dist/_chunks/{watch-2ea1243e.js → watch-f6cf9246.js} +2 -57
- package/dist/_chunks/{watch-2ea1243e.js.map → watch-f6cf9246.js.map} +1 -1
- package/dist/_chunks/{watchAction-10e52cbc.js → watchAction-4cf253a0.js} +5 -38
- package/dist/_chunks/{watchAction-10e52cbc.js.map → watchAction-4cf253a0.js.map} +1 -1
- package/dist/cli.js +3 -6
- package/dist/cli.js.map +1 -1
- package/dist/index.esm.js +56 -397
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +5 -43
- package/dist/index.js.map +1 -1
- package/package.json +3 -1
- package/src/node/_tasks/dts/_doExtract.ts +2 -8
- package/src/node/_tasks/dts/_extractModuleBlocks.ts +45 -0
- package/src/node/_tasks/dts/_extractTypes.ts +11 -1
- package/dist/_chunks/index-fbba5480.js.map +0 -1
- package/src/node/_tasks/dts/_declareModuleFix.ts +0 -99
package/dist/index.js
CHANGED
|
@@ -3,87 +3,49 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
6
|
var _resolveBuildContext = require('./_chunks/_resolveBuildContext-7ca7e64e.js');
|
|
8
|
-
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
var index = require('./_chunks/index-fbba5480.js');
|
|
12
|
-
|
|
7
|
+
var build = require('./_chunks/build-f39a3550.js');
|
|
8
|
+
var index = require('./_chunks/index-7a851efa.js');
|
|
13
9
|
var check = require('./_chunks/check-87cbb6cc.js');
|
|
14
|
-
|
|
15
|
-
var watch = require('./_chunks/watch-2ea1243e.js');
|
|
16
|
-
|
|
10
|
+
var watch = require('./_chunks/watch-f6cf9246.js');
|
|
17
11
|
require('path');
|
|
18
|
-
|
|
19
12
|
require('esbuild-register/dist/node');
|
|
20
|
-
|
|
21
13
|
require('pkg-up');
|
|
22
|
-
|
|
23
14
|
require('fs/promises');
|
|
24
|
-
|
|
25
15
|
require('find-config');
|
|
26
|
-
|
|
27
16
|
require('chalk');
|
|
28
|
-
|
|
29
17
|
require('zod');
|
|
30
|
-
|
|
31
18
|
require('typescript');
|
|
32
|
-
|
|
33
19
|
require('browserslist');
|
|
34
|
-
|
|
35
20
|
require('fs');
|
|
36
|
-
|
|
37
21
|
require('rxjs');
|
|
38
|
-
|
|
39
22
|
require('util');
|
|
40
|
-
|
|
41
23
|
require('rimraf');
|
|
42
|
-
|
|
43
24
|
require('@microsoft/api-extractor');
|
|
44
|
-
|
|
45
25
|
require('mkdirp');
|
|
46
|
-
|
|
47
26
|
require('prettier');
|
|
48
|
-
|
|
49
27
|
require('@microsoft/tsdoc-config');
|
|
50
|
-
|
|
51
28
|
require('jsonc-parser');
|
|
52
|
-
|
|
29
|
+
require('recast');
|
|
30
|
+
require('recast/parsers/typescript');
|
|
53
31
|
require('rollup');
|
|
54
|
-
|
|
55
32
|
require('@rollup/plugin-alias');
|
|
56
|
-
|
|
57
33
|
require('@rollup/plugin-babel');
|
|
58
|
-
|
|
59
34
|
require('@rollup/plugin-commonjs');
|
|
60
|
-
|
|
61
35
|
require('@rollup/plugin-json');
|
|
62
|
-
|
|
63
36
|
require('@rollup/plugin-node-resolve');
|
|
64
|
-
|
|
65
37
|
require('@rollup/plugin-replace');
|
|
66
|
-
|
|
67
38
|
require('rollup-plugin-esbuild');
|
|
68
|
-
|
|
69
39
|
require('rollup-plugin-terser');
|
|
70
|
-
|
|
71
40
|
require('esbuild');
|
|
72
|
-
|
|
73
41
|
require('treeify');
|
|
74
|
-
|
|
75
42
|
require('pretty-bytes');
|
|
76
|
-
|
|
77
43
|
require('rxjs/operators');
|
|
78
|
-
|
|
79
44
|
require('globby');
|
|
80
|
-
|
|
81
45
|
require('chokidar');
|
|
82
|
-
|
|
83
46
|
function defineConfig(configOptions) {
|
|
84
47
|
return configOptions;
|
|
85
48
|
}
|
|
86
|
-
|
|
87
49
|
exports._DEFAULTS = _resolveBuildContext._DEFAULTS;
|
|
88
50
|
exports._MODULE_EXT = _resolveBuildContext._MODULE_EXT;
|
|
89
51
|
exports._isRecord = _resolveBuildContext._isRecord;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/node/_core/config/defineConfig.ts"],"sourcesContent":["import {PkgConfigOptions} from './types'\n\n/** @public */\nexport function defineConfig(configOptions: PkgConfigOptions): PkgConfigOptions {\n return configOptions\n}\n"],"names":["defineConfig","configOptions"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/node/_core/config/defineConfig.ts"],"sourcesContent":["import {PkgConfigOptions} from './types'\n\n/** @public */\nexport function defineConfig(configOptions: PkgConfigOptions): PkgConfigOptions {\n return configOptions\n}\n"],"names":["defineConfig","configOptions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,SAASA,YAAY,CAACC,aAAa,EAAE;EAC1C,OAAOA,aAAa;AACtB;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sanity/pkg-utils",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.18.0",
|
|
4
4
|
"author": "Sanity.io <hello@sanity.io>",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Simple utilities for modern npm packages.",
|
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"@babel/core": "^7.19.0",
|
|
57
|
+
"@babel/types": "^7.19.0",
|
|
57
58
|
"@babel/plugin-proposal-object-rest-spread": "^7.18.9",
|
|
58
59
|
"@babel/preset-env": "^7.19.0",
|
|
59
60
|
"@microsoft/api-extractor": "^7.29.5",
|
|
@@ -77,6 +78,7 @@
|
|
|
77
78
|
"pkg-up": "^3.1.0",
|
|
78
79
|
"prettier": "^2.7.1",
|
|
79
80
|
"pretty-bytes": "^5.6.0",
|
|
81
|
+
"recast": "^0.21.5",
|
|
80
82
|
"rimraf": "^3.0.2",
|
|
81
83
|
"rollup": "^2.78.1",
|
|
82
84
|
"rollup-plugin-esbuild": "^4.9.3",
|
|
@@ -4,7 +4,6 @@ import {ExtractorMessage} from '@microsoft/api-extractor'
|
|
|
4
4
|
import rimrafCallback from 'rimraf'
|
|
5
5
|
import {_BuildContext} from '../../_core'
|
|
6
6
|
import {_buildTypes} from './_buildTypes'
|
|
7
|
-
import {_appendModuleBlocks} from './_declareModuleFix'
|
|
8
7
|
import {_DtsError} from './_DtsError'
|
|
9
8
|
import {_extractTypes} from './_extractTypes'
|
|
10
9
|
import {_DtsResult, _DtsTask, _DtsWatchTask} from './_types'
|
|
@@ -52,20 +51,15 @@ export async function _doExtract(
|
|
|
52
51
|
const result = await _extractTypes({
|
|
53
52
|
customTags: config?.extract?.customTags,
|
|
54
53
|
cwd,
|
|
54
|
+
distPath: outDir,
|
|
55
55
|
exportPath,
|
|
56
56
|
files,
|
|
57
57
|
filePath: filePath,
|
|
58
58
|
projectPath: cwd,
|
|
59
59
|
rules: config?.extract?.rules,
|
|
60
60
|
sourceTypesPath: sourceTypesPath,
|
|
61
|
+
tmpPath,
|
|
61
62
|
tsconfigPath: path.resolve(cwd, ts.configPath || 'tsconfig.json'),
|
|
62
|
-
distPath: outDir,
|
|
63
|
-
})
|
|
64
|
-
|
|
65
|
-
await _appendModuleBlocks({
|
|
66
|
-
tsOutDir: tmpPath,
|
|
67
|
-
extractResult: result.extractorResult,
|
|
68
|
-
extractTypesOutFile: path.resolve(outDir, targetPath),
|
|
69
63
|
})
|
|
70
64
|
|
|
71
65
|
messages.push(...result.messages)
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type {File} from '@babel/types'
|
|
2
|
+
import {ExtractorResult} from '@microsoft/api-extractor'
|
|
3
|
+
import {parse, print} from 'recast'
|
|
4
|
+
import typeScriptParser from 'recast/parsers/typescript'
|
|
5
|
+
import {Program} from 'typescript'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* A workaround to find all module blocks in extract TS files.
|
|
9
|
+
* @internal
|
|
10
|
+
* */
|
|
11
|
+
export async function _extractModuleBlocksFromTypes({
|
|
12
|
+
tsOutDir,
|
|
13
|
+
extractResult,
|
|
14
|
+
}: {
|
|
15
|
+
tsOutDir: string
|
|
16
|
+
extractResult: ExtractorResult
|
|
17
|
+
}): Promise<string[]> {
|
|
18
|
+
const program = extractResult.compilerState.program as Program
|
|
19
|
+
const moduleBlocks: string[] = []
|
|
20
|
+
|
|
21
|
+
// all program files, including node_modules
|
|
22
|
+
const allProgramFiles = [...program.getSourceFiles()]
|
|
23
|
+
|
|
24
|
+
// just our compiled files used in the program
|
|
25
|
+
const sourceFiles = allProgramFiles.filter((sourceFile) => sourceFile.fileName.includes(tsOutDir))
|
|
26
|
+
|
|
27
|
+
for (const sourceFile of sourceFiles) {
|
|
28
|
+
if (sourceFile.text.includes('declare module')) {
|
|
29
|
+
moduleBlocks.push(..._extractModuleBlocks(sourceFile.text))
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return moduleBlocks
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** @internal */
|
|
37
|
+
export function _extractModuleBlocks(fileContent: string): string[] {
|
|
38
|
+
const ast = parse(fileContent, {
|
|
39
|
+
parser: typeScriptParser,
|
|
40
|
+
}) as File
|
|
41
|
+
|
|
42
|
+
return ast.program.body
|
|
43
|
+
.filter((node) => node.type === 'TSModuleDeclaration')
|
|
44
|
+
.map((node) => print(node).code)
|
|
45
|
+
}
|
|
@@ -11,6 +11,7 @@ import prettier from 'prettier'
|
|
|
11
11
|
import {PkgConfigOptions, _BuildFile} from '../../_core'
|
|
12
12
|
import {_createApiExtractorConfig} from './_createApiExtractorConfig'
|
|
13
13
|
import {_createTSDocConfig} from './_createTSDocConfig'
|
|
14
|
+
import {_extractModuleBlocksFromTypes} from './_extractModuleBlocks'
|
|
14
15
|
import {_getExtractMessagesConfig} from './_getExtractMessagesConfig'
|
|
15
16
|
|
|
16
17
|
export async function _extractTypes(options: {
|
|
@@ -23,6 +24,7 @@ export async function _extractTypes(options: {
|
|
|
23
24
|
projectPath: string
|
|
24
25
|
rules?: NonNullable<PkgConfigOptions['extract']>['rules']
|
|
25
26
|
sourceTypesPath: string
|
|
27
|
+
tmpPath: string
|
|
26
28
|
tsconfigPath: string
|
|
27
29
|
}): Promise<{extractorResult: ExtractorResult; messages: ExtractorMessage[]}> {
|
|
28
30
|
const {
|
|
@@ -34,6 +36,7 @@ export async function _extractTypes(options: {
|
|
|
34
36
|
projectPath,
|
|
35
37
|
rules,
|
|
36
38
|
sourceTypesPath,
|
|
39
|
+
tmpPath,
|
|
37
40
|
tsconfigPath,
|
|
38
41
|
} = options
|
|
39
42
|
|
|
@@ -77,9 +80,16 @@ export async function _extractTypes(options: {
|
|
|
77
80
|
|
|
78
81
|
await mkdirp(path.dirname(typesPath))
|
|
79
82
|
|
|
83
|
+
const moduleBlocks = await _extractModuleBlocksFromTypes({
|
|
84
|
+
extractResult: extractorResult,
|
|
85
|
+
tsOutDir: tmpPath,
|
|
86
|
+
})
|
|
87
|
+
|
|
88
|
+
const code = [typesBuf.toString(), ...moduleBlocks].join('\n\n')
|
|
89
|
+
|
|
80
90
|
await fs.writeFile(
|
|
81
91
|
typesPath,
|
|
82
|
-
prettier.format(
|
|
92
|
+
prettier.format(code, {
|
|
83
93
|
...prettierConfig,
|
|
84
94
|
filepath: typesPath,
|
|
85
95
|
})
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-fbba5480.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 continue\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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"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import fs from 'fs/promises'
|
|
2
|
-
import {ExtractorResult} from '@microsoft/api-extractor'
|
|
3
|
-
import {Program} from 'typescript'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* '@microsoft/api-extractor' omits declare module blocks
|
|
7
|
-
* This is a workaround that finds all module blocks in ts files and appends them to the result
|
|
8
|
-
*/
|
|
9
|
-
export async function _appendModuleBlocks({
|
|
10
|
-
tsOutDir,
|
|
11
|
-
extractResult,
|
|
12
|
-
extractTypesOutFile,
|
|
13
|
-
}: {
|
|
14
|
-
tsOutDir: string
|
|
15
|
-
extractResult: ExtractorResult
|
|
16
|
-
extractTypesOutFile: string
|
|
17
|
-
}): Promise<void> {
|
|
18
|
-
const moduleBlocks = await _extractModuleBlocksFromTypes({tsOutDir, extractResult})
|
|
19
|
-
|
|
20
|
-
if (moduleBlocks.length) {
|
|
21
|
-
await fs.appendFile(extractTypesOutFile, '\n' + moduleBlocks.join('\n\n'))
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
async function _extractModuleBlocksFromTypes({
|
|
26
|
-
tsOutDir,
|
|
27
|
-
extractResult,
|
|
28
|
-
}: {
|
|
29
|
-
tsOutDir: string
|
|
30
|
-
extractResult: ExtractorResult
|
|
31
|
-
}): Promise<string[]> {
|
|
32
|
-
const moduleBlocks: string[] = []
|
|
33
|
-
|
|
34
|
-
const program = extractResult.compilerState.program as Program
|
|
35
|
-
|
|
36
|
-
// all program files, including node_modules
|
|
37
|
-
const allProgramFiles = [...program.getSourceFiles()]
|
|
38
|
-
|
|
39
|
-
// just our compiled files used in the program
|
|
40
|
-
const sourceFiles = allProgramFiles.filter((sourceFile) => sourceFile.fileName.includes(tsOutDir))
|
|
41
|
-
|
|
42
|
-
for (const sourceFile of sourceFiles) {
|
|
43
|
-
if (sourceFile.text.includes('declare module')) {
|
|
44
|
-
moduleBlocks.push(..._extractModuleBlocks(sourceFile.text))
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return moduleBlocks
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export function _extractModuleBlocks(fileContent: string): string[] {
|
|
52
|
-
const moduleBlocks: string[] = []
|
|
53
|
-
|
|
54
|
-
let moduleIndentLevel = 0
|
|
55
|
-
let insideComment = false
|
|
56
|
-
let moduleLines: string[] = []
|
|
57
|
-
|
|
58
|
-
const lines = fileContent.split('\n')
|
|
59
|
-
|
|
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
|
-
continue
|
|
66
|
-
} else if (!insideComment && line.includes('/*') && line.includes('*/')) {
|
|
67
|
-
continue // it's a one-line comment
|
|
68
|
-
} else if (!insideComment && line.includes('/*')) {
|
|
69
|
-
insideComment = true
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (insideComment) {
|
|
73
|
-
continue
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
if (!moduleLines.length) {
|
|
77
|
-
const isModuleDeclaration = line.match(/^\s*declare module.+$/)?.length
|
|
78
|
-
const moduleIndex = line.indexOf('declare module')
|
|
79
|
-
const isModuleStart = isModuleDeclaration && moduleIndex > -1
|
|
80
|
-
|
|
81
|
-
if (isModuleStart) {
|
|
82
|
-
moduleIndentLevel = moduleIndex
|
|
83
|
-
moduleLines = [line]
|
|
84
|
-
}
|
|
85
|
-
} else {
|
|
86
|
-
moduleLines.push(line)
|
|
87
|
-
const blockEndIndex = line.indexOf('}')
|
|
88
|
-
|
|
89
|
-
if (blockEndIndex === moduleIndentLevel) {
|
|
90
|
-
moduleBlocks.push(
|
|
91
|
-
moduleLines.map((l) => l.substring(moduleIndentLevel, l.length)).join('\n')
|
|
92
|
-
)
|
|
93
|
-
moduleLines = []
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
return moduleBlocks
|
|
99
|
-
}
|