@sanity/pkg-utils 11.0.17 → 12.0.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.
- package/MIGRATE.md +152 -0
- package/README.md +114 -55
- package/dist/buildAction-D-M3KYyN.js +146 -0
- package/dist/buildAction-D-M3KYyN.js.map +1 -0
- package/dist/checkAction-B8M5CP3j.js +141 -0
- package/dist/checkAction-B8M5CP3j.js.map +1 -0
- package/dist/cli.js +22 -28
- package/dist/cli.js.map +1 -1
- package/dist/createApiExtractorConfig-CJoZqw8e.js +30 -0
- package/dist/createApiExtractorConfig-CJoZqw8e.js.map +1 -0
- package/dist/createTSDocConfig-ylfirNWP.js +25 -0
- package/dist/createTSDocConfig-ylfirNWP.js.map +1 -0
- package/dist/getExtractMessagesConfig-CXljwFbQ.js +75 -0
- package/dist/getExtractMessagesConfig-CXljwFbQ.js.map +1 -0
- package/dist/handleError-83GwKIFM.js +40 -0
- package/dist/handleError-83GwKIFM.js.map +1 -0
- package/dist/index.d.ts +141 -195
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +203 -11
- package/dist/index.js.map +1 -1
- package/dist/initAction-CmOO8eod.js +618 -0
- package/dist/initAction-CmOO8eod.js.map +1 -0
- package/dist/printExtractMessages-DyaYtByp.js +33 -0
- package/dist/printExtractMessages-DyaYtByp.js.map +1 -0
- package/dist/resolveBuildContext-CbwvYKj1.js +714 -0
- package/dist/resolveBuildContext-CbwvYKj1.js.map +1 -0
- package/dist/resolveTsdownConfig-CGE_7cMM.js +283 -0
- package/dist/resolveTsdownConfig-CGE_7cMM.js.map +1 -0
- package/dist/spinner-DAHe7SuT.js +15 -0
- package/dist/spinner-DAHe7SuT.js.map +1 -0
- package/dist/watchAction-BQG5_hhl.js +179 -0
- package/dist/watchAction-BQG5_hhl.js.map +1 -0
- package/dist/watchConfigFiles-AGBDblwf.js +43 -0
- package/dist/watchConfigFiles-AGBDblwf.js.map +1 -0
- package/package.json +12 -26
- package/dist/_chunks-es/buildAction.js +0 -195
- package/dist/_chunks-es/buildAction.js.map +0 -1
- package/dist/_chunks-es/checkAction.js +0 -198
- package/dist/_chunks-es/checkAction.js.map +0 -1
- package/dist/_chunks-es/createApiExtractorConfig.js +0 -52
- package/dist/_chunks-es/createApiExtractorConfig.js.map +0 -1
- package/dist/_chunks-es/createTSDocConfig.js +0 -31
- package/dist/_chunks-es/createTSDocConfig.js.map +0 -1
- package/dist/_chunks-es/defaults.js +0 -36
- package/dist/_chunks-es/defaults.js.map +0 -1
- package/dist/_chunks-es/define.js +0 -7
- package/dist/_chunks-es/define.js.map +0 -1
- package/dist/_chunks-es/extractModuleBlocks.js +0 -48
- package/dist/_chunks-es/extractModuleBlocks.js.map +0 -1
- package/dist/_chunks-es/fileExists.js +0 -12
- package/dist/_chunks-es/fileExists.js.map +0 -1
- package/dist/_chunks-es/getExtractMessagesConfig.js +0 -83
- package/dist/_chunks-es/getExtractMessagesConfig.js.map +0 -1
- package/dist/_chunks-es/handleError.js +0 -32
- package/dist/_chunks-es/handleError.js.map +0 -1
- package/dist/_chunks-es/index.js +0 -825
- package/dist/_chunks-es/index.js.map +0 -1
- package/dist/_chunks-es/initAction.js +0 -654
- package/dist/_chunks-es/initAction.js.map +0 -1
- package/dist/_chunks-es/printExtractMessages.js +0 -44
- package/dist/_chunks-es/printExtractMessages.js.map +0 -1
- package/dist/_chunks-es/resolveBuildContext.js +0 -717
- package/dist/_chunks-es/resolveBuildContext.js.map +0 -1
- package/dist/_chunks-es/resolveRolldownConfig.js +0 -117
- package/dist/_chunks-es/resolveRolldownConfig.js.map +0 -1
- package/dist/_chunks-es/spinner.js +0 -16
- package/dist/_chunks-es/spinner.js.map +0 -1
- package/dist/_chunks-es/watchAction.js +0 -160
- package/dist/_chunks-es/watchAction.js.map +0 -1
- package/dist/_chunks-es/watchConfigFiles.js +0 -49
- package/dist/_chunks-es/watchConfigFiles.js.map +0 -1
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { i as fileExists, n as createLogger, t as handleError } from "./handleError-83GwKIFM.js";
|
|
2
|
+
import { a as loadPkgWithReporting, o as loadConfig, t as resolveBuildContext } from "./resolveBuildContext-CbwvYKj1.js";
|
|
3
|
+
import { t as createSpinner } from "./spinner-DAHe7SuT.js";
|
|
4
|
+
import { statSync } from "node:fs";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { up } from "empathic/package";
|
|
7
|
+
import chalk from "chalk";
|
|
8
|
+
import treeify from "treeify";
|
|
9
|
+
import prettyBytes from "pretty-bytes";
|
|
10
|
+
function getFilesize(file) {
|
|
11
|
+
let stats = statSync(file);
|
|
12
|
+
return prettyBytes(stats.size);
|
|
13
|
+
}
|
|
14
|
+
function getFileInfo(cwd, filePath) {
|
|
15
|
+
let p = path.resolve(cwd, filePath), exists = fileExists(p);
|
|
16
|
+
return {
|
|
17
|
+
exists,
|
|
18
|
+
size: exists ? getFilesize(p) : void 0
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function printPackageTree(ctx) {
|
|
22
|
+
let { cwd, exports, logger, pkg } = ctx;
|
|
23
|
+
if (!exports) return;
|
|
24
|
+
logger.log(`${chalk.blue(pkg.name)}@${chalk.green(pkg.version)}`);
|
|
25
|
+
let tree = {};
|
|
26
|
+
pkg.type && (tree.type = chalk.yellow(pkg.type)), pkg.bin && (tree.bin = Object.fromEntries(Object.entries(pkg.bin).map(([name, file]) => [chalk.cyan(name), fileInfo(file)])));
|
|
27
|
+
function fileInfo(file) {
|
|
28
|
+
let info = getFileInfo(cwd, file);
|
|
29
|
+
return info.size ? `${chalk.yellow(file)} ${chalk.gray(info.size)}` : `${chalk.gray(file)} ${chalk.red("does not exist")}`;
|
|
30
|
+
}
|
|
31
|
+
tree.exports = Object.fromEntries(Object.entries(exports).filter(([, entry]) => entry._exported).map(([exportPath, entry]) => {
|
|
32
|
+
let exp = {
|
|
33
|
+
source: fileInfo(entry.source),
|
|
34
|
+
browser: void 0,
|
|
35
|
+
require: void 0,
|
|
36
|
+
node: void 0,
|
|
37
|
+
import: void 0,
|
|
38
|
+
default: fileInfo(entry.default)
|
|
39
|
+
};
|
|
40
|
+
return entry.browser ? (exp.browser = { source: fileInfo(entry.browser.source) }, entry.browser.import && (exp.browser.import = fileInfo(entry.browser.import)), entry.browser.require && (exp.browser.require = fileInfo(entry.browser.require))) : delete exp.browser, entry.require ? exp.require = fileInfo(entry.require) : delete exp.require, entry.node ? (exp.node = {}, entry.node.source && (exp.node.source = fileInfo(entry.node.source)), entry.node.import && (exp.node.import = fileInfo(entry.node.import)), entry.node.require && (exp.node.require = fileInfo(entry.node.require))) : delete exp.node, entry.import ? exp.import = fileInfo(entry.import) : delete exp.import, [chalk.cyan(path.join(pkg.name, exportPath)), exp];
|
|
41
|
+
})), logger.log(treeify.asTree(tree, !0, !0));
|
|
42
|
+
}
|
|
43
|
+
/** @public */
|
|
44
|
+
async function check(options) {
|
|
45
|
+
let { cwd, strict = !1, tsconfig: tsconfigOption } = options, logger = createLogger(), spinner = createSpinner("");
|
|
46
|
+
try {
|
|
47
|
+
let pkgPath = up({ cwd });
|
|
48
|
+
if (!pkgPath) throw Error("no package.json found", { cause: { cwd } });
|
|
49
|
+
let config = await loadConfig({
|
|
50
|
+
cwd,
|
|
51
|
+
pkgPath
|
|
52
|
+
}), { parseStrictOptions } = await import("./resolveBuildContext-CbwvYKj1.js").then((n) => n.n), strictOptions = parseStrictOptions(config?.strictOptions ?? {}), pkg = await loadPkgWithReporting({
|
|
53
|
+
pkgPath,
|
|
54
|
+
logger,
|
|
55
|
+
strict,
|
|
56
|
+
strictOptions
|
|
57
|
+
}), tsconfig = tsconfigOption || config?.tsconfig || "tsconfig.json", ctx = await resolveBuildContext({
|
|
58
|
+
config,
|
|
59
|
+
cwd,
|
|
60
|
+
logger,
|
|
61
|
+
pkg,
|
|
62
|
+
strict,
|
|
63
|
+
tsconfig
|
|
64
|
+
});
|
|
65
|
+
if (printPackageTree(ctx), strict) {
|
|
66
|
+
let missingFiles = [];
|
|
67
|
+
for (let [, exp] of Object.entries(ctx.exports || {})) exp.source && !fileExists(path.resolve(cwd, exp.source)) && missingFiles.push(exp.source), exp.require && !fileExists(path.resolve(cwd, exp.require)) && missingFiles.push(exp.require), exp.import && !fileExists(path.resolve(cwd, exp.import)) && missingFiles.push(exp.import);
|
|
68
|
+
ctx.pkg.types && !fileExists(path.resolve(cwd, ctx.pkg.types)) && missingFiles.push(ctx.pkg.types), missingFiles.length && (logger.error(`missing files: ${missingFiles.join(", ")}`), process.exit(1));
|
|
69
|
+
}
|
|
70
|
+
await runPublint(ctx), ctx.config?.tsdoc !== !1 && await checkApiExtractorReleaseTags(ctx), spinner.complete();
|
|
71
|
+
} catch (err) {
|
|
72
|
+
if (spinner.error(), err instanceof Error) {
|
|
73
|
+
let RE_CWD = new RegExp(cwd.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g");
|
|
74
|
+
logger.error((err.stack || err.message).replace(RE_CWD, ".")), logger.log();
|
|
75
|
+
}
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async function runPublint(ctx) {
|
|
80
|
+
let { cwd, logger, strict } = ctx, [{ publint }, { formatMessage }] = await Promise.all([import("publint"), import("publint/utils")]), { messages, pkg } = await publint({
|
|
81
|
+
pkgDir: cwd,
|
|
82
|
+
strict
|
|
83
|
+
}), hasErrors = !1;
|
|
84
|
+
for (let message of messages) {
|
|
85
|
+
let formatted = formatMessage(message, pkg);
|
|
86
|
+
message.type === "error" ? (hasErrors = !0, logger.error(`publint: ${formatted}`)) : message.type === "warning" ? logger.warn(`publint: ${formatted}`) : logger.log(`publint: ${formatted}`);
|
|
87
|
+
}
|
|
88
|
+
hasErrors && process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
async function checkApiExtractorReleaseTags(ctx) {
|
|
91
|
+
let [{ Extractor, ExtractorConfig }, { createApiExtractorConfig }, { createTSDocConfig }, { getExtractMessagesConfig }, { printExtractMessages }] = await Promise.all([
|
|
92
|
+
import("@microsoft/api-extractor"),
|
|
93
|
+
import("./createApiExtractorConfig-CJoZqw8e.js"),
|
|
94
|
+
import("./createTSDocConfig-ylfirNWP.js"),
|
|
95
|
+
import("./getExtractMessagesConfig-CXljwFbQ.js"),
|
|
96
|
+
import("./printExtractMessages-DyaYtByp.js")
|
|
97
|
+
]), tsdoc = ctx.config?.tsdoc === !1 ? void 0 : ctx.config?.tsdoc, customTags = tsdoc?.customTags || [], bundledPackages = ctx.bundledPackages, distPath = ctx.distPath, outDir = ctx.ts.config?.options.outDir ?? distPath, rules = tsdoc?.rules || {};
|
|
98
|
+
for (let exp of Object.values(ctx.exports || {})) {
|
|
99
|
+
if (!exp._exported || !exp.default.endsWith(".js")) continue;
|
|
100
|
+
let dtsPath = exp.default.replace(/\.js$/, ".d.ts"), exportPath = path.resolve(ctx.cwd, dtsPath);
|
|
101
|
+
if (!fileExists(exportPath)) continue;
|
|
102
|
+
let tsdocConfigFile = await createTSDocConfig({ customTags }), extractorConfig = ExtractorConfig.prepare({
|
|
103
|
+
configObject: createApiExtractorConfig({
|
|
104
|
+
bundledPackages,
|
|
105
|
+
distPath,
|
|
106
|
+
exportPath,
|
|
107
|
+
filePath: path.relative(outDir, dtsPath),
|
|
108
|
+
messages: getExtractMessagesConfig({ rules }),
|
|
109
|
+
projectFolder: ctx.cwd,
|
|
110
|
+
mainEntryPointFilePath: exportPath,
|
|
111
|
+
tsconfig: ctx.ts.config,
|
|
112
|
+
tsconfigPath: path.resolve(ctx.cwd, ctx.ts.configPath || "tsconfig.json"),
|
|
113
|
+
dtsRollupEnabled: !1
|
|
114
|
+
}),
|
|
115
|
+
configObjectFullPath: void 0,
|
|
116
|
+
tsdocConfigFile,
|
|
117
|
+
packageJsonFullPath: path.resolve(ctx.cwd, "package.json")
|
|
118
|
+
}), messages = [];
|
|
119
|
+
Extractor.invoke(extractorConfig, {
|
|
120
|
+
localBuild: !0,
|
|
121
|
+
showVerboseMessages: !0,
|
|
122
|
+
messageCallback(message) {
|
|
123
|
+
messages.push(message), message.handled = !0;
|
|
124
|
+
}
|
|
125
|
+
}), printExtractMessages(ctx, messages);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
async function checkAction(options) {
|
|
129
|
+
try {
|
|
130
|
+
await check({
|
|
131
|
+
cwd: process.cwd(),
|
|
132
|
+
strict: options.strict,
|
|
133
|
+
tsconfig: options.tsconfig
|
|
134
|
+
});
|
|
135
|
+
} catch (err) {
|
|
136
|
+
handleError(err);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
export { checkAction };
|
|
140
|
+
|
|
141
|
+
//# sourceMappingURL=checkAction-B8M5CP3j.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkAction-B8M5CP3j.js","names":["findPkgPath"],"sources":["../src/node/getFilesize.ts","../src/node/printPackageTree.ts","../src/node/check.ts","../src/cli/checkAction.ts"],"sourcesContent":["import {statSync} from 'node:fs'\nimport prettyBytes from 'pretty-bytes'\n\nexport function getFilesize(file: string): string {\n const stats = statSync(file)\n\n return prettyBytes(stats.size)\n}\n","import path from 'node:path'\nimport chalk from 'chalk'\nimport treeify from 'treeify'\nimport type {PkgExport} from './core/config/types.ts'\nimport type {BuildContext} from './core/contexts/buildContext.ts'\nimport {fileExists} from './fileExists.ts'\nimport {getFilesize} from './getFilesize.ts'\n\nfunction getFileInfo(cwd: string, filePath: string) {\n const p = path.resolve(cwd, filePath)\n const exists = fileExists(p)\n const size = exists ? getFilesize(p) : undefined\n\n return {exists, size}\n}\n\nexport function printPackageTree(ctx: BuildContext): void {\n const {cwd, exports, logger, pkg} = ctx\n\n if (!exports) return\n\n logger.log(`${chalk.blue(pkg.name)}@${chalk.green(pkg.version)}`)\n\n const tree: Record<string, unknown> = {}\n\n if (pkg.type) {\n tree['type'] = chalk.yellow(pkg.type)\n }\n\n if (pkg.bin) {\n tree['bin'] = Object.fromEntries(\n Object.entries(pkg.bin).map(([name, file]) => [chalk.cyan(name), fileInfo(file)]),\n )\n }\n\n function fileInfo(file: string) {\n const info = getFileInfo(cwd, file)\n\n if (!info.size) {\n return `${chalk.gray(file)} ${chalk.red('does not exist')}`\n }\n\n return `${chalk.yellow(file)} ${chalk.gray(info.size)}`\n }\n\n tree['exports'] = Object.fromEntries(\n Object.entries(exports)\n .filter(([, entry]) => entry._exported)\n .map(([exportPath, entry]) => {\n const exp: Omit<PkgExport, '_exported'> = {\n source: fileInfo(entry.source),\n browser: undefined,\n require: undefined,\n node: undefined,\n import: undefined,\n default: fileInfo(entry.default),\n }\n\n if (entry.browser) {\n exp.browser = {source: fileInfo(entry.browser.source)}\n\n if (entry.browser.import) exp.browser.import = fileInfo(entry.browser.import)\n if (entry.browser.require) exp.browser.require = fileInfo(entry.browser.require)\n } else {\n delete exp.browser\n }\n\n if (entry.require) {\n exp.require = fileInfo(entry.require)\n } else {\n delete exp.require\n }\n\n if (entry.node) {\n exp.node = {}\n\n if (entry.node.source) exp.node.source = fileInfo(entry.node.source)\n if (entry.node.import) exp.node.import = fileInfo(entry.node.import)\n if (entry.node.require) exp.node.require = fileInfo(entry.node.require)\n } else {\n delete exp.node\n }\n\n if (entry.import) {\n exp.import = fileInfo(entry.import)\n } else {\n delete exp.import\n }\n\n return [chalk.cyan(path.join(pkg.name, exportPath)), exp]\n }),\n )\n\n logger.log(treeify.asTree(tree as Record<string, any>, true, true))\n}\n","import path from 'node:path'\nimport type {ExtractorMessage} from '@microsoft/api-extractor'\nimport {up as findPkgPath} from 'empathic/package'\nimport {loadConfig} from './core/config/loadConfig.ts'\nimport type {BuildContext} from './core/contexts/buildContext.ts'\nimport {loadPkgWithReporting} from './core/pkg/loadPkgWithReporting.ts'\nimport {fileExists} from './fileExists.ts'\nimport {createLogger} from './logger.ts'\nimport {printPackageTree} from './printPackageTree.ts'\nimport {resolveBuildContext} from './resolveBuildContext.ts'\nimport {createSpinner} from './spinner.ts'\n\n/** @public */\nexport async function check(options: {\n cwd: string\n strict?: boolean\n tsconfig?: string\n}): Promise<void> {\n const {cwd, strict = false, tsconfig: tsconfigOption} = options\n const logger = createLogger()\n const spinner = createSpinner('')\n try {\n const pkgPath = findPkgPath({cwd})\n if (!pkgPath) {\n throw new Error('no package.json found', {cause: {cwd}})\n }\n const config = await loadConfig({cwd, pkgPath})\n const {parseStrictOptions} = await import('./strict.ts')\n const strictOptions = parseStrictOptions(config?.strictOptions ?? {})\n const pkg = await loadPkgWithReporting({pkgPath, logger, strict, strictOptions})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n const ctx = await resolveBuildContext({config, cwd, logger, pkg, strict, tsconfig})\n\n printPackageTree(ctx)\n\n if (strict) {\n const missingFiles: string[] = []\n\n // Check if there are missing files\n for (const [, exp] of Object.entries(ctx.exports || {})) {\n if (exp.source && !fileExists(path.resolve(cwd, exp.source))) {\n missingFiles.push(exp.source)\n }\n\n if (exp.require && !fileExists(path.resolve(cwd, exp.require))) {\n missingFiles.push(exp.require)\n }\n\n if (exp.import && !fileExists(path.resolve(cwd, exp.import))) {\n missingFiles.push(exp.import)\n }\n }\n\n if (ctx.pkg.types && !fileExists(path.resolve(cwd, ctx.pkg.types))) {\n missingFiles.push(ctx.pkg.types)\n }\n\n if (missingFiles.length) {\n logger.error(`missing files: ${missingFiles.join(', ')}`)\n process.exit(1)\n }\n }\n\n // publint validates that the built package resolves in every runtime/bundler — it packs\n // the package (which applies `publishConfig`, so the source-condition convention checks\n // out the way consumers see it) and lints the result. This replaced the bespoke\n // esbuild-based resolution checks of previous majors.\n await runPublint(ctx)\n\n if (ctx.config?.tsdoc !== false) {\n await checkApiExtractorReleaseTags(ctx)\n }\n\n spinner.complete()\n } catch (err) {\n spinner.error()\n\n if (err instanceof Error) {\n const RE_CWD = new RegExp(cwd.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'g')\n\n logger.error((err.stack || err.message).replace(RE_CWD, '.'))\n logger.log()\n }\n\n process.exit(1)\n }\n}\n\nasync function runPublint(ctx: BuildContext): Promise<void> {\n const {cwd, logger, strict} = ctx\n const [{publint}, {formatMessage}] = await Promise.all([\n import('publint'),\n import('publint/utils'),\n ])\n\n const {messages, pkg} = await publint({pkgDir: cwd, strict})\n\n let hasErrors = false\n\n for (const message of messages) {\n const formatted = formatMessage(message, pkg)\n if (message.type === 'error') {\n hasErrors = true\n logger.error(`publint: ${formatted}`)\n } else if (message.type === 'warning') {\n logger.warn(`publint: ${formatted}`)\n } else {\n logger.log(`publint: ${formatted}`)\n }\n }\n\n if (hasErrors) {\n process.exit(1)\n }\n}\n\nasync function checkApiExtractorReleaseTags(ctx: BuildContext) {\n const [\n {Extractor, ExtractorConfig},\n {createApiExtractorConfig},\n {createTSDocConfig},\n {getExtractMessagesConfig},\n {printExtractMessages},\n ] = await Promise.all([\n import('@microsoft/api-extractor'),\n import('./tasks/dts/createApiExtractorConfig.ts'),\n import('./tasks/dts/createTSDocConfig.ts'),\n import('./tasks/dts/getExtractMessagesConfig.ts'),\n import('./printExtractMessages.ts'),\n ])\n\n const tsdoc = ctx.config?.tsdoc === false ? undefined : ctx.config?.tsdoc\n const customTags = tsdoc?.customTags || []\n const bundledPackages = ctx.bundledPackages\n const distPath = ctx.distPath\n // api-extractor needs a `compilerOptions.outDir` for its path mapping; tsdown does not, so\n // fall back to the dist folder when the tsconfig leaves it unset\n const outDir = ctx.ts.config?.options.outDir ?? distPath\n const rules = tsdoc?.rules || {}\n\n for (const exp of Object.values(ctx.exports || {})) {\n if (!exp._exported || !exp.default.endsWith('.js')) continue\n const dtsPath = exp.default.replace(/\\.js$/, '.d.ts')\n const exportPath = path.resolve(ctx.cwd, dtsPath)\n\n // JS-only entries emit no declarations; there is nothing to check\n if (!fileExists(exportPath)) continue\n\n const tsdocConfigFile = await createTSDocConfig({\n customTags,\n })\n const extractorConfig = ExtractorConfig.prepare({\n configObject: createApiExtractorConfig({\n bundledPackages,\n distPath,\n exportPath,\n filePath: path.relative(outDir, dtsPath),\n messages: getExtractMessagesConfig({rules}),\n projectFolder: ctx.cwd,\n mainEntryPointFilePath: exportPath,\n tsconfig: ctx.ts.config!,\n tsconfigPath: path.resolve(ctx.cwd, ctx.ts.configPath || 'tsconfig.json'),\n dtsRollupEnabled: false,\n }),\n configObjectFullPath: undefined,\n tsdocConfigFile,\n packageJsonFullPath: path.resolve(ctx.cwd, 'package.json'),\n })\n const messages: ExtractorMessage[] = []\n // Invoke API Extractor\n 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 printExtractMessages(ctx, messages)\n }\n}\n","import {check} from '../node/check.ts'\nimport {handleError} from './handleError.ts'\n\nexport async function checkAction(options: {strict?: boolean; tsconfig?: string}): Promise<void> {\n try {\n await check({\n cwd: process.cwd(),\n strict: options.strict,\n tsconfig: options.tsconfig,\n })\n } catch (err) {\n handleError(err)\n }\n}\n"],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -1,31 +1,25 @@
|
|
|
1
1
|
import { cac } from "cac";
|
|
2
|
-
var version = "
|
|
2
|
+
var version = "12.0.1";
|
|
3
3
|
const cli = cac();
|
|
4
4
|
cli.command("", "Check").alias("check").option("--strict", "Strict mode").option("--tsconfig [tsconfig]", "[string] tsconfig.json").action(async (options) => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
})
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return watchAction(options);
|
|
27
|
-
});
|
|
28
|
-
cli.help();
|
|
29
|
-
cli.version(version);
|
|
30
|
-
cli.parse();
|
|
31
|
-
//# sourceMappingURL=cli.js.map
|
|
5
|
+
let { checkAction } = await import("./checkAction-B8M5CP3j.js");
|
|
6
|
+
return checkAction(options);
|
|
7
|
+
}), cli.command("build", "Build package").option("--emitDeclarationOnly", "Emit d.ts only").option("--strict", "Strict mode").option("--tsconfig [tsconfig]", "[string] tsconfig.json").option("--check", "Run the check command after build (same as running `pkg build && pkg check`)").option("--no-clean", "Skip cleaning the `dist` folder before the build").option("--quiet", "Suppress all output except errors, warnings, and checks").action(async (options) => {
|
|
8
|
+
let { check = !1, ...buildOptions } = options, { buildAction } = await import("./buildAction-D-M3KYyN.js");
|
|
9
|
+
if (await buildAction(buildOptions), check) {
|
|
10
|
+
let { checkAction } = await import("./checkAction-B8M5CP3j.js");
|
|
11
|
+
await checkAction({
|
|
12
|
+
strict: options.strict,
|
|
13
|
+
tsconfig: options.tsconfig
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}), cli.command("init [path]", "Initialize package").action(async (p) => {
|
|
17
|
+
let { initAction } = await import("./initAction-CmOO8eod.js");
|
|
18
|
+
return initAction({ path: p });
|
|
19
|
+
}), cli.command("watch", "Watch package").option("--strict", "Strict mode").option("--tsconfig [tsconfig]", "[string] tsconfig.json").action(async (options) => {
|
|
20
|
+
let { watchAction } = await import("./watchAction-BQG5_hhl.js");
|
|
21
|
+
return watchAction(options);
|
|
22
|
+
}), cli.help(), cli.version(version), cli.parse();
|
|
23
|
+
export {};
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sources":["../src/cli/index.ts"],"sourcesContent":["import {cac} from 'cac'\nimport {version} from '../../package.json' with {type: 'json'}\n\nconst cli = cac()\n\ncli\n .command('', 'Check')\n .alias('check') // alias to align with the action name\n .option('--strict', 'Strict mode')\n .option('--tsconfig [tsconfig]', '[string] tsconfig.json')\n .action(async (options) => {\n const {checkAction} = await import('./checkAction.ts')\n\n return checkAction(options)\n })\n\ncli\n .command('build', 'Build package')\n .option('--emitDeclarationOnly', 'Emit d.ts only')\n .option('--strict', 'Strict mode')\n .option('--tsconfig [tsconfig]', '[string] tsconfig.json')\n .option('--check', 'Run the check command after build (same as running `pkg build && pkg check`)')\n .option('--clean', '
|
|
1
|
+
{"version":3,"file":"cli.js","names":[],"sources":["../package.json","../src/cli/index.ts"],"sourcesContent":["","import {cac} from 'cac'\nimport {version} from '../../package.json' with {type: 'json'}\n\nconst cli = cac()\n\ncli\n .command('', 'Check')\n .alias('check') // alias to align with the action name\n .option('--strict', 'Strict mode')\n .option('--tsconfig [tsconfig]', '[string] tsconfig.json')\n .action(async (options) => {\n const {checkAction} = await import('./checkAction.ts')\n\n return checkAction(options)\n })\n\ncli\n .command('build', 'Build package')\n .option('--emitDeclarationOnly', 'Emit d.ts only')\n .option('--strict', 'Strict mode')\n .option('--tsconfig [tsconfig]', '[string] tsconfig.json')\n .option('--check', 'Run the check command after build (same as running `pkg build && pkg check`)')\n .option('--no-clean', 'Skip cleaning the `dist` folder before the build')\n .option('--quiet', 'Suppress all output except errors, warnings, and checks')\n .action(async (options) => {\n const {check = false, ...buildOptions} = options\n const {buildAction} = await import('./buildAction.ts')\n\n await buildAction(buildOptions)\n\n if (check) {\n const {checkAction} = await import('./checkAction.ts')\n\n await checkAction({\n strict: options.strict,\n tsconfig: options.tsconfig,\n })\n }\n })\n\ncli.command('init [path]', 'Initialize package').action(async (p) => {\n const {initAction} = await import('./initAction.ts')\n\n return initAction({\n path: p,\n })\n})\n\ncli\n .command('watch', 'Watch package')\n .option('--strict', 'Strict mode')\n .option('--tsconfig [tsconfig]', '[string] tsconfig.json')\n .action(async (options) => {\n const {watchAction} = await import('./watchAction.ts')\n\n return watchAction(options)\n })\n\n// Display help message when `-h` or `--help` appears\ncli.help()\n\n// Display version number when `-v` or `--version` appears\n// It's also used in help message\ncli.version(version)\n\ncli.parse()\n"],"mappings":";;ACGA,MAAM,MAAM,IAAI;AAEhB,IACG,QAAQ,IAAI,OAAO,CAAC,CACpB,MAAM,OAAO,CAAC,CACd,OAAO,YAAY,aAAa,CAAC,CACjC,OAAO,yBAAyB,wBAAwB,CAAC,CACzD,OAAO,OAAO,YAAY;CACzB,IAAM,EAAC,gBAAe,MAAM,OAAO;CAEnC,OAAO,YAAY,OAAO;AAC5B,CAAC,GAEH,IACG,QAAQ,SAAS,eAAe,CAAC,CACjC,OAAO,yBAAyB,gBAAgB,CAAC,CACjD,OAAO,YAAY,aAAa,CAAC,CACjC,OAAO,yBAAyB,wBAAwB,CAAC,CACzD,OAAO,WAAW,8EAA8E,CAAC,CACjG,OAAO,cAAc,kDAAkD,CAAC,CACxE,OAAO,WAAW,yDAAyD,CAAC,CAC5E,OAAO,OAAO,YAAY;CACzB,IAAM,EAAC,QAAQ,IAAO,GAAG,iBAAgB,SACnC,EAAC,gBAAe,MAAM,OAAO;CAInC,IAFA,MAAM,YAAY,YAAY,GAE1B,OAAO;EACT,IAAM,EAAC,gBAAe,MAAM,OAAO;EAEnC,MAAM,YAAY;GAChB,QAAQ,QAAQ;GAChB,UAAU,QAAQ;EACpB,CAAC;CACH;AACF,CAAC,GAEH,IAAI,QAAQ,eAAe,oBAAoB,CAAC,CAAC,OAAO,OAAO,MAAM;CACnE,IAAM,EAAC,eAAc,MAAM,OAAO;CAElC,OAAO,WAAW,EAChB,MAAM,EACR,CAAC;AACH,CAAC,GAED,IACG,QAAQ,SAAS,eAAe,CAAC,CACjC,OAAO,YAAY,aAAa,CAAC,CACjC,OAAO,yBAAyB,wBAAwB,CAAC,CACzD,OAAO,OAAO,YAAY;CACzB,IAAM,EAAC,gBAAe,MAAM,OAAO;CAEnC,OAAO,YAAY,OAAO;AAC5B,CAAC,GAGH,IAAI,KAAK,GAIT,IAAI,QAAQ,OAAO,GAEnB,IAAI,MAAM"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
function createApiExtractorConfig(options) {
|
|
3
|
+
let { bundledPackages, distPath, exportPath, filePath, messages, projectFolder, mainEntryPointFilePath, tsconfig, tsconfigPath, dtsRollupEnabled } = options;
|
|
4
|
+
return {
|
|
5
|
+
apiReport: {
|
|
6
|
+
enabled: !1,
|
|
7
|
+
reportFileName: "<unscopedPackageName>.api.md"
|
|
8
|
+
},
|
|
9
|
+
bundledPackages,
|
|
10
|
+
compiler: tsconfig.options.paths ? { overrideTsconfig: {
|
|
11
|
+
extends: tsconfigPath,
|
|
12
|
+
compilerOptions: { paths: {} }
|
|
13
|
+
} } : { tsconfigFilePath: tsconfigPath },
|
|
14
|
+
docModel: {
|
|
15
|
+
enabled: !1,
|
|
16
|
+
apiJsonFilePath: path.resolve(distPath, `${exportPath}.api.json`)
|
|
17
|
+
},
|
|
18
|
+
dtsRollup: {
|
|
19
|
+
enabled: dtsRollupEnabled,
|
|
20
|
+
untrimmedFilePath: path.resolve(distPath, filePath)
|
|
21
|
+
},
|
|
22
|
+
tsdocMetadata: { enabled: !1 },
|
|
23
|
+
messages,
|
|
24
|
+
mainEntryPointFilePath,
|
|
25
|
+
projectFolder
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export { createApiExtractorConfig };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=createApiExtractorConfig-CJoZqw8e.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createApiExtractorConfig-CJoZqw8e.js","names":[],"sources":["../src/node/tasks/dts/createApiExtractorConfig.ts"],"sourcesContent":["import path from 'node:path'\nimport type {IConfigFile, IExtractorMessagesConfig} from '@microsoft/api-extractor'\nimport type ts from '@typescript/typescript6'\n\nexport function createApiExtractorConfig(options: {\n bundledPackages?: string[]\n distPath: string\n exportPath: string\n filePath: string\n messages: IExtractorMessagesConfig\n projectFolder: string\n mainEntryPointFilePath: string\n tsconfig: ts.ParsedCommandLine\n tsconfigPath: string\n dtsRollupEnabled: boolean\n}): IConfigFile {\n const {\n bundledPackages,\n distPath,\n exportPath,\n filePath,\n messages,\n projectFolder,\n mainEntryPointFilePath,\n tsconfig,\n tsconfigPath,\n dtsRollupEnabled,\n } = options\n\n return {\n apiReport: {\n enabled: false,\n reportFileName: '<unscopedPackageName>.api.md',\n },\n bundledPackages,\n\n // If `paths` are used for self-referencing imports (e.g. the module is named `sanity`, and the `sanity/structure` export is also importing from `sanity/router`),\n compiler: tsconfig.options.paths\n ? {\n overrideTsconfig: {\n extends: tsconfigPath,\n compilerOptions: {\n // An empty object replaces whatever is in the original tsconfig file\n paths: {},\n },\n },\n }\n : {tsconfigFilePath: tsconfigPath},\n\n docModel: {\n enabled: false,\n apiJsonFilePath: path.resolve(distPath, `${exportPath}.api.json`),\n },\n dtsRollup: {\n enabled: dtsRollupEnabled,\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"],"mappings":";AAIA,SAAgB,yBAAyB,SAWzB;CACd,IAAM,EACJ,iBACA,UACA,YACA,UACA,UACA,eACA,wBACA,UACA,cACA,qBACE;CAEJ,OAAO;EACL,WAAW;GACT,SAAS;GACT,gBAAgB;EAClB;EACA;EAGA,UAAU,SAAS,QAAQ,QACvB,EACE,kBAAkB;GAChB,SAAS;GACT,iBAAiB,EAEf,OAAO,CAAC,EACV;EACF,EACF,IACA,EAAC,kBAAkB,aAAY;EAEnC,UAAU;GACR,SAAS;GACT,iBAAiB,KAAK,QAAQ,UAAU,GAAG,WAAW,UAAU;EAClE;EACA,WAAW;GACT,SAAS;GACT,mBAAmB,KAAK,QAAQ,UAAU,QAAQ;EAGpD;EACA,eAAe,EACb,SAAS,GACX;EACA;EACA;EACA;CACF;AACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
import { readFile } from "node:fs/promises";
|
|
3
|
+
import { TSDocConfigFile } from "@microsoft/tsdoc-config";
|
|
4
|
+
import { parse } from "jsonc-parser";
|
|
5
|
+
const require = createRequire(import.meta.url);
|
|
6
|
+
/** @internal */
|
|
7
|
+
async function createTSDocConfig(opts) {
|
|
8
|
+
let { customTags } = opts;
|
|
9
|
+
if (customTags.length === 0) return;
|
|
10
|
+
let tsDocBaseBuf = await readFile(require.resolve("@microsoft/api-extractor/extends/tsdoc-base.json")), tsDocBaseConfig = parse(tsDocBaseBuf.toString()), tagDefinitions = (tsDocBaseConfig.tagDefinitions || []).concat(customTags.map((t) => ({
|
|
11
|
+
tagName: `@${t.name}`,
|
|
12
|
+
syntaxKind: t.syntaxKind,
|
|
13
|
+
allowMultiple: t.allowMultiple
|
|
14
|
+
}))), supportForTags = { ...tsDocBaseConfig.supportForTags };
|
|
15
|
+
for (let customTag of customTags) supportForTags[`@${customTag.name}`] = !0;
|
|
16
|
+
return TSDocConfigFile.loadFromObject({
|
|
17
|
+
...tsDocBaseConfig,
|
|
18
|
+
noStandardTags: !1,
|
|
19
|
+
tagDefinitions,
|
|
20
|
+
supportForTags
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
export { createTSDocConfig };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=createTSDocConfig-ylfirNWP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTSDocConfig-ylfirNWP.js","names":[],"sources":["../src/node/tasks/dts/createTSDocConfig.ts"],"sourcesContent":["import {readFile} from 'node:fs/promises'\nimport {createRequire} from 'node:module'\nimport {TSDocConfigFile} from '@microsoft/tsdoc-config'\nimport {parse} from 'jsonc-parser'\n\nconst require = createRequire(import.meta.url)\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"],"mappings":";;;;AAKA,MAAM,UAAU,cAAc,YAAY,GAAG;;AAU7C,eAAsB,kBAAkB,MAEC;CACvC,IAAM,EAAC,eAAc;CAErB,IAAI,WAAW,WAAW,GACxB;CAGF,IAAM,eAAe,MAAM,SACzB,QAAQ,QAAQ,kDAAkD,CACpE,GAIM,kBAAkB,MAAM,aAAa,SAAS,CAAC,GAG/C,kBAAkB,gBAAgB,kBAAkB,CAAC,EAAA,CAAG,OAC5D,WAAW,KAAK,OAAO;EACrB,SAAS,IAAI,EAAE;EACf,YAAY,EAAE;EACd,eAAe,EAAE;CACnB,EAAE,CACJ,GAIM,iBAAiB,EAAC,GAAG,gBAAgB,eAAc;CAEzD,KAAK,IAAM,aAAa,YACtB,eAAe,IAAI,UAAU,UAAU;CAGzC,OAAO,gBAAgB,eAAe;EACpC,GAAG;EACH,gBAAgB;EAChB;EACA;CACF,CAAC;AACH"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { ExtractorLogLevel } from "@microsoft/api-extractor";
|
|
2
|
+
const LOG_LEVELS = {
|
|
3
|
+
error: ExtractorLogLevel.Error,
|
|
4
|
+
info: ExtractorLogLevel.Info,
|
|
5
|
+
off: ExtractorLogLevel.None,
|
|
6
|
+
warn: ExtractorLogLevel.Warning
|
|
7
|
+
};
|
|
8
|
+
/** @alpha */
|
|
9
|
+
function getExtractMessagesConfig(options) {
|
|
10
|
+
let { rules, disabled = !1 } = options;
|
|
11
|
+
function ruleToLogLevel(key, defaultLevel) {
|
|
12
|
+
let r = rules?.[key];
|
|
13
|
+
return r ? LOG_LEVELS[r] : defaultLevel || ExtractorLogLevel.Warning;
|
|
14
|
+
}
|
|
15
|
+
return {
|
|
16
|
+
compilerMessageReporting: { default: { logLevel: disabled ? ExtractorLogLevel.None : ExtractorLogLevel.Warning } },
|
|
17
|
+
extractorMessageReporting: disabled ? { default: {
|
|
18
|
+
logLevel: ExtractorLogLevel.None,
|
|
19
|
+
addToApiReportFile: !1
|
|
20
|
+
} } : {
|
|
21
|
+
default: {
|
|
22
|
+
logLevel: ExtractorLogLevel.Warning,
|
|
23
|
+
addToApiReportFile: !1
|
|
24
|
+
},
|
|
25
|
+
"ae-forgotten-export": {
|
|
26
|
+
/**
|
|
27
|
+
* This is hardcoded to `none` as it's no longer needed since TypeScript 5.5 https://github.com/microsoft/TypeScript/issues/42873
|
|
28
|
+
* It's hardcoded to `none` since supported by API Extractor when using `module: 'Preserve'` doesn't support it well since `@microsoft/api-extractor` v7.49.0, which upgraded from TS 5.4 to 5.7 internally
|
|
29
|
+
*/
|
|
30
|
+
logLevel: ExtractorLogLevel.None,
|
|
31
|
+
addToApiReportFile: !1
|
|
32
|
+
},
|
|
33
|
+
"ae-incompatible-release-tags": {
|
|
34
|
+
logLevel: ruleToLogLevel("ae-incompatible-release-tags", ExtractorLogLevel.Error),
|
|
35
|
+
addToApiReportFile: !1
|
|
36
|
+
},
|
|
37
|
+
"ae-internal-missing-underscore": {
|
|
38
|
+
logLevel: ruleToLogLevel("ae-internal-missing-underscore"),
|
|
39
|
+
addToApiReportFile: !1
|
|
40
|
+
},
|
|
41
|
+
"ae-missing-release-tag": {
|
|
42
|
+
logLevel: ruleToLogLevel("ae-missing-release-tag", ExtractorLogLevel.Error),
|
|
43
|
+
addToApiReportFile: !1
|
|
44
|
+
},
|
|
45
|
+
"ae-wrong-input-file-type": {
|
|
46
|
+
logLevel: ExtractorLogLevel.None,
|
|
47
|
+
addToApiReportFile: !1
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
tsdocMessageReporting: disabled ? { default: {
|
|
51
|
+
logLevel: ExtractorLogLevel.None,
|
|
52
|
+
addToApiReportFile: !1
|
|
53
|
+
} } : {
|
|
54
|
+
default: {
|
|
55
|
+
logLevel: ExtractorLogLevel.Warning,
|
|
56
|
+
addToApiReportFile: !1
|
|
57
|
+
},
|
|
58
|
+
"tsdoc-link-tag-unescaped-text": {
|
|
59
|
+
logLevel: ruleToLogLevel("tsdoc-link-tag-unescaped-text", ExtractorLogLevel.Warning),
|
|
60
|
+
addToApiReportFile: !1
|
|
61
|
+
},
|
|
62
|
+
"tsdoc-undefined-tag": {
|
|
63
|
+
logLevel: ruleToLogLevel("tsdoc-undefined-tag", ExtractorLogLevel.Error),
|
|
64
|
+
addToApiReportFile: !1
|
|
65
|
+
},
|
|
66
|
+
"tsdoc-unsupported-tag": {
|
|
67
|
+
logLevel: ruleToLogLevel("tsdoc-unsupported-tag", ExtractorLogLevel.None),
|
|
68
|
+
addToApiReportFile: !1
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export { getExtractMessagesConfig };
|
|
74
|
+
|
|
75
|
+
//# sourceMappingURL=getExtractMessagesConfig-CXljwFbQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getExtractMessagesConfig-CXljwFbQ.js","names":[],"sources":["../src/node/tasks/dts/getExtractMessagesConfig.ts"],"sourcesContent":["import {ExtractorLogLevel, type IExtractorMessagesConfig} from '@microsoft/api-extractor'\nimport type {PkgRuleLevel, PkgTsdocOptions} from '../../core/config/types.ts'\n\nconst LOG_LEVELS: Record<PkgRuleLevel, ExtractorLogLevel> = {\n error: ExtractorLogLevel.Error,\n info: ExtractorLogLevel.Info,\n off: ExtractorLogLevel.None,\n warn: ExtractorLogLevel.Warning,\n}\n\n/** @alpha */\nexport function getExtractMessagesConfig(options: {\n rules: PkgTsdocOptions['rules']\n disabled?: boolean\n}): IExtractorMessagesConfig {\n const {rules, disabled = false} = options\n\n function ruleToLogLevel(\n key: keyof NonNullable<PkgTsdocOptions['rules']>,\n defaultLevel?: ExtractorLogLevel,\n ) {\n const r = rules?.[key]\n\n return r ? LOG_LEVELS[r] : defaultLevel || ExtractorLogLevel.Warning\n }\n\n return {\n compilerMessageReporting: {\n default: {\n logLevel: disabled ? ExtractorLogLevel.None : ExtractorLogLevel.Warning,\n },\n },\n\n extractorMessageReporting: disabled\n ? {\n default: {\n logLevel: ExtractorLogLevel.None,\n addToApiReportFile: false,\n },\n }\n : {\n 'default': {\n logLevel: ExtractorLogLevel.Warning,\n addToApiReportFile: false,\n },\n\n 'ae-forgotten-export': {\n /**\n * This is hardcoded to `none` as it's no longer needed since TypeScript 5.5 https://github.com/microsoft/TypeScript/issues/42873\n * It's hardcoded to `none` since supported by API Extractor when using `module: 'Preserve'` doesn't support it well since `@microsoft/api-extractor` v7.49.0, which upgraded from TS 5.4 to 5.7 internally\n */\n logLevel: ExtractorLogLevel.None,\n addToApiReportFile: false,\n },\n\n 'ae-incompatible-release-tags': {\n logLevel: ruleToLogLevel('ae-incompatible-release-tags', ExtractorLogLevel.Error),\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', ExtractorLogLevel.Error),\n addToApiReportFile: false,\n },\n\n 'ae-wrong-input-file-type': {\n logLevel: ExtractorLogLevel.None,\n addToApiReportFile: false,\n },\n },\n\n tsdocMessageReporting: disabled\n ? {\n default: {\n logLevel: ExtractorLogLevel.None,\n addToApiReportFile: false,\n },\n }\n : {\n 'default': {\n logLevel: ExtractorLogLevel.Warning,\n addToApiReportFile: false,\n },\n\n 'tsdoc-link-tag-unescaped-text': {\n logLevel: ruleToLogLevel('tsdoc-link-tag-unescaped-text', ExtractorLogLevel.Warning),\n addToApiReportFile: false,\n },\n\n 'tsdoc-undefined-tag': {\n logLevel: ruleToLogLevel('tsdoc-undefined-tag', ExtractorLogLevel.Error),\n addToApiReportFile: false,\n },\n\n 'tsdoc-unsupported-tag': {\n logLevel: ruleToLogLevel('tsdoc-unsupported-tag', ExtractorLogLevel.None),\n addToApiReportFile: false,\n },\n },\n }\n}\n"],"mappings":";AAGA,MAAM,aAAsD;CAC1D,OAAO,kBAAkB;CACzB,MAAM,kBAAkB;CACxB,KAAK,kBAAkB;CACvB,MAAM,kBAAkB;AAC1B;;AAGA,SAAgB,yBAAyB,SAGZ;CAC3B,IAAM,EAAC,OAAO,WAAW,OAAS;CAElC,SAAS,eACP,KACA,cACA;EACA,IAAM,IAAI,QAAQ;EAElB,OAAO,IAAI,WAAW,KAAK,gBAAgB,kBAAkB;CAC/D;CAEA,OAAO;EACL,0BAA0B,EACxB,SAAS,EACP,UAAU,WAAW,kBAAkB,OAAO,kBAAkB,QAClE,EACF;EAEA,2BAA2B,WACvB,EACE,SAAS;GACP,UAAU,kBAAkB;GAC5B,oBAAoB;EACtB,EACF,IACA;GACE,SAAW;IACT,UAAU,kBAAkB;IAC5B,oBAAoB;GACtB;GAEA,uBAAuB;;;;;IAKrB,UAAU,kBAAkB;IAC5B,oBAAoB;GACtB;GAEA,gCAAgC;IAC9B,UAAU,eAAe,gCAAgC,kBAAkB,KAAK;IAChF,oBAAoB;GACtB;GAEA,kCAAkC;IAChC,UAAU,eAAe,gCAAgC;IACzD,oBAAoB;GACtB;GAEA,0BAA0B;IACxB,UAAU,eAAe,0BAA0B,kBAAkB,KAAK;IAC1E,oBAAoB;GACtB;GAEA,4BAA4B;IAC1B,UAAU,kBAAkB;IAC5B,oBAAoB;GACtB;EACF;EAEJ,uBAAuB,WACnB,EACE,SAAS;GACP,UAAU,kBAAkB;GAC5B,oBAAoB;EACtB,EACF,IACA;GACE,SAAW;IACT,UAAU,kBAAkB;IAC5B,oBAAoB;GACtB;GAEA,iCAAiC;IAC/B,UAAU,eAAe,iCAAiC,kBAAkB,OAAO;IACnF,oBAAoB;GACtB;GAEA,uBAAuB;IACrB,UAAU,eAAe,uBAAuB,kBAAkB,KAAK;IACvE,oBAAoB;GACtB;GAEA,yBAAyB;IACvB,UAAU,eAAe,yBAAyB,kBAAkB,IAAI;IACxE,oBAAoB;GACtB;EACF;CACN;AACF"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { statSync } from "node:fs";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
/** @internal */
|
|
4
|
+
function fileExists(filePath) {
|
|
5
|
+
try {
|
|
6
|
+
return statSync(filePath), !0;
|
|
7
|
+
} catch {
|
|
8
|
+
return !1;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
/** @internal */
|
|
12
|
+
function isRecord(value) {
|
|
13
|
+
return !!value && !Array.isArray(value) && typeof value == "object";
|
|
14
|
+
}
|
|
15
|
+
/** @alpha */
|
|
16
|
+
function createLogger(quiet = !1) {
|
|
17
|
+
return {
|
|
18
|
+
log: (...args) => {
|
|
19
|
+
quiet || console.log(...args);
|
|
20
|
+
},
|
|
21
|
+
info: (...args) => {
|
|
22
|
+
quiet || console.log(chalk.blue("[info]"), ...args);
|
|
23
|
+
},
|
|
24
|
+
warn: (...args) => {
|
|
25
|
+
console.log(chalk.yellow("[warning]"), ...args);
|
|
26
|
+
},
|
|
27
|
+
error: (...args) => {
|
|
28
|
+
console.log(chalk.red("[error]"), ...args);
|
|
29
|
+
},
|
|
30
|
+
success: (...args) => {
|
|
31
|
+
quiet || console.log(chalk.green("[success]"), ...args);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function handleError(err) {
|
|
36
|
+
err instanceof Error ? console.error(chalk.red("error"), err.stack) : console.error(err), process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
export { fileExists as i, createLogger as n, isRecord as r, handleError as t };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=handleError-83GwKIFM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleError-83GwKIFM.js","names":[],"sources":["../src/node/fileExists.ts","../src/node/core/isRecord.ts","../src/node/logger.ts","../src/cli/handleError.ts"],"sourcesContent":["import {statSync} from 'node:fs'\n\n/** @internal */\nexport function fileExists(filePath: string): boolean {\n try {\n statSync(filePath)\n\n return true\n } catch {\n return false\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","// oxlint-disable no-console\nimport chalk from 'chalk'\n\n/** @alpha */\nexport interface Logger {\n log: (...args: unknown[]) => void\n info: (...args: unknown[]) => void\n warn: (...args: unknown[]) => void\n error: (...args: unknown[]) => void\n success: (...args: unknown[]) => void\n}\n\n/** @alpha */\nexport function createLogger(quiet = false): Logger {\n return {\n log: (...args) => {\n if (!quiet) console.log(...args)\n },\n info: (...args) => {\n if (!quiet) console.log(chalk.blue('[info]'), ...args)\n },\n warn: (...args) => {\n console.log(chalk.yellow('[warning]'), ...args)\n },\n error: (...args) => {\n console.log(chalk.red('[error]'), ...args)\n },\n success: (...args) => {\n if (!quiet) console.log(chalk.green('[success]'), ...args)\n },\n }\n}\n","import chalk from 'chalk'\n\nexport function handleError(err: unknown): void {\n if (err instanceof Error) {\n console.error(chalk.red('error'), err.stack)\n } else {\n console.error(err)\n }\n\n process.exit(1)\n}\n"],"mappings":";;;AAGA,SAAgB,WAAW,UAA2B;CACpD,IAAI;EAGF,OAFA,SAAS,QAAQ,GAEV;CACT,QAAQ;EACN,OAAO;CACT;AACF;;ACVA,SAAgB,SAAS,OAAkD;CACzE,OAAO,EAAQ,SAAU,CAAC,MAAM,QAAQ,KAAK,KAAK,OAAO,SAAU;AACrE;;ACUA,SAAgB,aAAa,QAAQ,IAAe;CAClD,OAAO;EACL,MAAM,GAAG,SAAS;GAChB,AAAK,SAAO,QAAQ,IAAI,GAAG,IAAI;EACjC;EACA,OAAO,GAAG,SAAS;GACjB,AAAK,SAAO,QAAQ,IAAI,MAAM,KAAK,QAAQ,GAAG,GAAG,IAAI;EACvD;EACA,OAAO,GAAG,SAAS;GACjB,QAAQ,IAAI,MAAM,OAAO,WAAW,GAAG,GAAG,IAAI;EAChD;EACA,QAAQ,GAAG,SAAS;GAClB,QAAQ,IAAI,MAAM,IAAI,SAAS,GAAG,GAAG,IAAI;EAC3C;EACA,UAAU,GAAG,SAAS;GACpB,AAAK,SAAO,QAAQ,IAAI,MAAM,MAAM,WAAW,GAAG,GAAG,IAAI;EAC3D;CACF;AACF;AC7BA,SAAgB,YAAY,KAAoB;CAO9C,AANI,eAAe,QACjB,QAAQ,MAAM,MAAM,IAAI,OAAO,GAAG,IAAI,KAAK,IAE3C,QAAQ,MAAM,GAAG,GAGnB,QAAQ,KAAK,CAAC;AAChB"}
|