@xylabs/ts-scripts-yarn3 7.0.1 → 7.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/index.mjs +24 -7
- package/dist/actions/index.mjs.map +1 -1
- package/dist/actions/package/index.mjs +24 -7
- package/dist/actions/package/index.mjs.map +1 -1
- package/dist/actions/package/publint.mjs +24 -7
- package/dist/actions/package/publint.mjs.map +1 -1
- package/dist/bin/package/publint.mjs +24 -7
- package/dist/bin/package/publint.mjs.map +1 -1
- package/dist/index.mjs +24 -7
- package/dist/index.mjs.map +1 -1
- package/package.json +9 -11
|
@@ -806,6 +806,26 @@ var packageLint = /* @__PURE__ */ __name(async (fix = false, verbose = false, ca
|
|
|
806
806
|
import { promises as fs2 } from "fs";
|
|
807
807
|
import chalk12 from "chalk";
|
|
808
808
|
import sortPackageJson from "sort-package-json";
|
|
809
|
+
var customPubLint = /* @__PURE__ */ __name((pkg) => {
|
|
810
|
+
let errorCount = 0;
|
|
811
|
+
let warningCount = 0;
|
|
812
|
+
if (pkg.files === void 0) {
|
|
813
|
+
console.error(chalk12.yellow('Publint [custom]: "files" field is missing'));
|
|
814
|
+
warningCount++;
|
|
815
|
+
}
|
|
816
|
+
if (pkg.main !== void 0) {
|
|
817
|
+
console.error(chalk12.yellow('Publint [custom]: "main" field is deprecated, use "exports" instead'));
|
|
818
|
+
warningCount++;
|
|
819
|
+
}
|
|
820
|
+
if (pkg.sideEffects !== false) {
|
|
821
|
+
console.error(chalk12.yellow('Publint [custom]: "sideEffects" field should be set to false'));
|
|
822
|
+
warningCount++;
|
|
823
|
+
}
|
|
824
|
+
return [
|
|
825
|
+
errorCount,
|
|
826
|
+
warningCount
|
|
827
|
+
];
|
|
828
|
+
}, "customPubLint");
|
|
809
829
|
var packagePublint = /* @__PURE__ */ __name(async ({ strict = true, verbose = false } = {}) => {
|
|
810
830
|
const pkgDir = process.env.INIT_CWD;
|
|
811
831
|
const sortedPkg = sortPackageJson(await fs2.readFile(`${pkgDir}/package.json`, "utf8"));
|
|
@@ -820,11 +840,7 @@ var packagePublint = /* @__PURE__ */ __name(async ({ strict = true, verbose = fa
|
|
|
820
840
|
strict
|
|
821
841
|
});
|
|
822
842
|
const { formatMessage } = await import("publint/utils");
|
|
823
|
-
const
|
|
824
|
-
return true;
|
|
825
|
-
}, "validMessage");
|
|
826
|
-
const validMessages = messages.filter(validMessage);
|
|
827
|
-
for (const message of validMessages) {
|
|
843
|
+
for (const message of messages) {
|
|
828
844
|
switch (message.type) {
|
|
829
845
|
case "error": {
|
|
830
846
|
console.error(chalk12.red(`[${message.code}] ${formatMessage(message, pkg)}`));
|
|
@@ -840,10 +856,11 @@ var packagePublint = /* @__PURE__ */ __name(async ({ strict = true, verbose = fa
|
|
|
840
856
|
}
|
|
841
857
|
}
|
|
842
858
|
}
|
|
859
|
+
const [errorCount, warningCount] = customPubLint(pkg);
|
|
843
860
|
if (verbose) {
|
|
844
|
-
console.log(chalk12.gray(`Publint [Finish]: ${pkgDir} [${
|
|
861
|
+
console.log(chalk12.gray(`Publint [Finish]: ${pkgDir} [${messages.length + errorCount + warningCount} messages]`));
|
|
845
862
|
}
|
|
846
|
-
return
|
|
863
|
+
return messages.filter((message) => message.type === "error").length + errorCount;
|
|
847
864
|
}, "packagePublint");
|
|
848
865
|
|
|
849
866
|
// src/actions/package/recompile.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/actions/package/clean-outputs.ts","../../../src/lib/deleteGlob.ts","../../../src/lib/loadConfig.ts","../../../src/actions/package/clean-typescript.ts","../../../src/actions/package/clean.ts","../../../src/actions/package/compile/compile.ts","../../../src/actions/package/compile/packageCompileTsup.ts","../../../src/actions/package/compile/inputs.ts","../../../src/actions/package/compile/buildEntries.ts","../../../src/actions/package/compile/deepMerge.ts","../../../src/actions/package/compile/packageCompileTsc.ts","../../../src/actions/package/compile/getCompilerOptions.ts","../../../src/actions/package/compile/packageCompileTscTypes.ts","../../../src/actions/package/copy-assets.ts","../../../src/actions/package/cycle.ts","../../../src/actions/package/gen-docs.ts","../../../src/actions/package/lint.ts","../../../src/actions/package/publint.ts","../../../src/actions/package/recompile.ts"],"sourcesContent":["import path from 'node:path'\n\nimport chalk from 'chalk'\n\nimport { deleteGlob } from '../../lib/index.ts'\n\nexport const packageCleanOutputs = () => {\n const pkg = process.env.INIT_CWD ?? '.'\n const pkgName = process.env.npm_package_name\n const folders: string[] = [path.join(pkg, 'dist'), path.join(pkg, 'build'), path.join(pkg, 'docs')]\n console.log(chalk.green(`Cleaning Outputs [${pkgName}]`))\n\n for (let folder of folders) {\n deleteGlob(folder)\n }\n\n return 0\n}\n","import fs from 'node:fs'\n\nimport { glob } from 'glob'\n\nexport const deleteGlob = (globPath: string) => {\n // Find all files matching the glob pattern\n const files = glob.sync(globPath)\n\n // Remove each file or directory\n for (const file of files) {\n fs.rmSync(file, { recursive: true, force: true })\n }\n}\n","import chalk from 'chalk'\nimport { cosmiconfig } from 'cosmiconfig'\nimport { TypeScriptLoader } from 'cosmiconfig-typescript-loader'\nimport deepmerge from 'deepmerge'\n\nlet config: Record<string, unknown>\n\nexport const loadConfig = async <T extends object>(params?: T): Promise<T> => {\n if (config === undefined) {\n const cosmicConfigResult = await cosmiconfig('xy', { cache: true, loaders: { '.ts': TypeScriptLoader() } }).search()\n config = cosmicConfigResult?.config\n const configFilePath = cosmicConfigResult?.filepath\n if (configFilePath !== undefined) {\n console.log(chalk.green(`Loaded config from ${configFilePath}`))\n if (config.verbose) {\n console.log(chalk.gray(`${JSON.stringify(config, null, 2)}`))\n }\n }\n }\n return deepmerge(config, params ?? {}) as T\n}\n","import path from 'node:path'\n\nimport chalk from 'chalk'\n\nimport { deleteGlob } from '../../lib/index.ts'\n\nexport const packageCleanTypescript = () => {\n const pkg = process.env.INIT_CWD ?? '.'\n const pkgName = process.env.npm_package_name\n console.log(chalk.green(`Cleaning Typescript [${pkgName}]`))\n const files: string[] = [path.join(pkg, '*.tsbuildinfo'), path.join(pkg, '.tsconfig.*'), path.join(pkg, '.eslintcache')]\n\n for (let file of files) {\n deleteGlob(file)\n }\n\n return 0\n}\n","import { packageCleanOutputs } from './clean-outputs.ts'\nimport { packageCleanTypescript } from './clean-typescript.ts'\n\nexport const packageClean = async () => {\n return (await Promise.all([packageCleanOutputs(), packageCleanTypescript()])).reduce((prev, value) => prev + value, 0)\n}\n","import chalk from 'chalk'\n\nimport { loadConfig } from '../../../lib/index.ts'\nimport { packageCompileTsup } from './packageCompileTsup.ts'\nimport type { XyConfig } from './XyConfig.ts'\n\nexport const packageCompile = async (inConfig: XyConfig = {}): Promise<number> => {\n const pkg = process.env.INIT_CWD\n console.log(chalk.green(`Compiling ${pkg}`))\n const config = await loadConfig(inConfig)\n\n return await packageCompileTsup(config)\n}\n","import chalk from 'chalk'\nimport type { Loader } from 'esbuild'\nimport type { Options } from 'tsup'\nimport { build, defineConfig } from 'tsup'\n\nimport { buildEntries } from './buildEntries.ts'\nimport { deepMergeObjects } from './deepMerge.ts'\nimport { packageCompileTsc } from './packageCompileTsc.ts'\nimport { packageCompileTscTypes } from './packageCompileTscTypes.ts'\nimport type { XyTsupConfig } from './XyConfig.ts'\n\nconst compileFolder = async (\n srcDir: string,\n entries: string[],\n buildDir: string,\n options?: Options,\n bundleTypes = false,\n verbose?: boolean,\n): Promise<number> => {\n const outDir = options?.outDir ?? 'dist'\n\n if (verbose) {\n console.log(`compileFolder [${srcDir}, ${options?.outDir}]`)\n }\n\n if (entries.length === 0) {\n console.warn(chalk.yellow(`No entries found in ${srcDir} to compile`))\n return 0\n }\n\n if (verbose) {\n console.log(chalk.gray(`buildDir [${buildDir}]`))\n }\n\n const validationResult = packageCompileTsc(options?.platform ?? 'neutral', entries, srcDir, buildDir, undefined, verbose)\n if (validationResult !== 0) {\n console.error(chalk.red(`Compile:Validation had ${validationResult} errors`))\n return validationResult\n }\n\n const optionsParams: Options = tsupOptions([{\n bundle: true,\n cjsInterop: true,\n clean: false,\n dts: false,\n format: ['esm'],\n outDir,\n silent: true,\n sourcemap: true,\n splitting: false,\n tsconfig: 'tsconfig.json',\n ...options,\n entry: entries.map(entry => `${srcDir}/${entry}`),\n }])\n\n const optionsResult = defineConfig(optionsParams)\n\n const optionsList = (\n await Promise.all(\n (Array.isArray(optionsResult) ? optionsResult : [optionsResult]).flatMap<Promise<Options[]>>(async (options) => {\n const result = typeof options === 'function' ? await options({}) : [options]\n return Array.isArray(result) ? result : [result]\n }),\n )\n ).flat()\n\n if (verbose) {\n console.log(chalk.cyan(`TSUP:build:start [${srcDir}]`))\n console.log(chalk.gray(`TSUP:build:options [${JSON.stringify(optionsList, null, 2)}]`))\n }\n\n await Promise.all(optionsList.map(options => build(options)))\n\n if (verbose) {\n console.log(chalk.cyan(`TSUP:build:stop [${srcDir}]`))\n }\n if (bundleTypes) {\n await packageCompileTscTypes(entries, outDir, options?.platform ?? 'neutral', buildDir, verbose)\n }\n\n return 0\n}\n\nexport const tsupOptions = (options: Options[] = []): Options => {\n const standardLoaders: Record<string, Loader> = {\n '.gif': 'copy', '.html': 'copy', '.jpg': 'copy', '.json': 'json', '.png': 'copy', '.svg': 'text', '.webp': 'copy',\n }\n\n const standardOptions: Options = {\n bundle: true,\n format: ['esm'],\n loader: standardLoaders,\n outExtension: ({ format }) => (format === 'esm' ? { js: '.mjs' } : { js: '.cjs' }),\n skipNodeModulesBundle: true,\n sourcemap: true,\n target: 'esnext',\n }\n\n return deepMergeObjects([standardOptions, ...options])\n}\n\nexport const packageCompileTsup = async (config?: XyTsupConfig) => {\n const compile = config?.compile\n const verbose = config?.verbose ?? false\n const outDirAsBuildDir = compile?.outDirAsBuildDir ?? true\n const bundleTypes = compile?.bundleTypes ?? false\n if (verbose) {\n console.log('Compiling with TSUP')\n }\n\n const compileForNode = compile?.node ?? { src: {} }\n const compileForBrowser = compile?.browser ?? { src: {} }\n const compileForNeutral = compile?.neutral ?? { src: {} }\n\n return (\n (\n await Promise.all(\n Object.entries(compileForNode).map(async ([srcDir, options]) => {\n const optionsObject: Options = typeof options === 'object' ? options : {}\n const inEsBuildOptions = typeof compile?.node?.esbuildOptions === 'object' ? compile?.node?.esbuildOptions : {}\n const entry = buildEntries(srcDir, compile?.entryMode, options, true, verbose)\n const platform = 'node'\n const rootOutDir = (optionsObject.outDir ?? 'dist')\n const outDir = rootOutDir + '/' + platform\n return typeof srcDir === 'string'\n ? await compileFolder(\n srcDir,\n entry,\n outDirAsBuildDir ? rootOutDir : 'build',\n tsupOptions([inEsBuildOptions,\n compile?.tsup?.options ?? {},\n (typeof options === 'object' ? options : {}),\n { platform: 'node', outDir }]),\n bundleTypes,\n verbose,\n )\n : 0\n }),\n )\n ).reduce((prev, value) => prev + value, 0)\n + (\n await Promise.all(\n Object.entries(compileForBrowser).map(async ([srcDir, options]) => {\n const optionsObject: Options = typeof options === 'object' ? options : {}\n const inEsBuildOptions = typeof compile?.browser?.esbuildOptions === 'object' ? compile?.browser?.esbuildOptions : {}\n const entry = buildEntries(srcDir, compile?.entryMode, options, true, verbose)\n const platform = 'browser'\n const rootOutDir = (optionsObject.outDir ?? 'dist')\n const outDir = rootOutDir + '/' + platform\n return typeof srcDir === 'string'\n ? await compileFolder(\n srcDir,\n entry,\n outDirAsBuildDir ? rootOutDir : 'build',\n tsupOptions([inEsBuildOptions,\n compile?.tsup?.options ?? {},\n (typeof options === 'object' ? options : {}),\n { platform: 'browser', outDir }]),\n bundleTypes,\n verbose,\n )\n : 0\n }),\n )\n ).reduce((prev, value) => prev + value, 0)\n + (\n await Promise.all(\n Object.entries(compileForNeutral).map(async ([srcDir, options]) => {\n const optionsObject: Options = typeof options === 'object' ? options : {}\n const inEsBuildOptions = typeof compile?.neutral?.esbuildOptions === 'object' ? compile?.neutral?.esbuildOptions : {}\n const entry = buildEntries(srcDir, compile?.entryMode, options, true, verbose)\n const platform = 'neutral'\n const rootOutDir = (optionsObject.outDir ?? 'dist')\n const outDir = rootOutDir + '/' + platform\n return typeof srcDir === 'string'\n ? await compileFolder(\n srcDir,\n entry,\n outDirAsBuildDir ? rootOutDir : 'build',\n tsupOptions([inEsBuildOptions,\n compile?.tsup?.options ?? {},\n (typeof options === 'object' ? options : {}),\n { platform: 'neutral', outDir }]),\n bundleTypes,\n verbose,\n )\n : 0\n }),\n )\n ).reduce((prev, value) => prev + value, 0)\n + 0\n )\n}\n","import chalk from 'chalk'\nimport { glob } from 'glob'\n\nexport const getAllInputs = (srcDir: string, verbose = false) => {\n /* tsup wants posix paths */\n return [...glob.sync(`${srcDir}/**/*.ts`, { posix: true }).map((file) => {\n const result = file.slice(Math.max(0, srcDir.length + 1)) // Remove the folder prefix\n if (verbose) {\n console.log(chalk.gray(`getAllInputs: ${JSON.stringify(result, null, 2)}`))\n }\n return result\n }), ...glob.sync(`${srcDir}/**/*.tsx`, { posix: true }).map((file) => {\n const result = file.slice(Math.max(0, srcDir.length + 1)) // Remove the folder prefix\n if (verbose) {\n console.log(chalk.gray(`getAllInputs: ${JSON.stringify(result, null, 2)}`))\n }\n return result\n })]\n}\n","import type { Options } from 'tsup'\n\nimport { getAllInputs } from './inputs.ts'\nimport type { EntryMode } from './XyConfig.ts'\n\nexport const buildEntries = (srcDir: string, entryMode: EntryMode = 'single', options?: Options | boolean, excludeSpecAndStories = true, verbose = false) => {\n let entries: string[] = []\n switch (entryMode) {\n case 'platform': {\n entries = ['index-node.ts', 'index-browser.ts']\n break\n }\n case 'all': {\n entries = (excludeSpecAndStories\n ? getAllInputs(srcDir).filter(entry => !entry.includes('.spec.') && !entry.includes('.stories.'))\n : getAllInputs(srcDir)).filter(entry => !entry.endsWith('.d.ts'))\n break\n }\n case 'custom': {\n entries = []\n break\n }\n default: {\n entries = ['index.ts']\n break\n }\n }\n\n if (typeof options !== 'boolean' && Array.isArray(options?.entry)) {\n entries.push(...options.entry)\n }\n\n if (verbose) console.log(`buildEntries [${entryMode}] ${entries.length}`)\n return entries\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyObject = Record<any, any>\n\nfunction deepMerge<T extends AnyObject>(target: AnyObject, source: AnyObject): T {\n if (!source || typeof source !== 'object') return target\n\n for (const key of Object.keys(source)) {\n if (\n typeof source[key] === 'object'\n && source[key] !== null\n && !Array.isArray(source[key])\n ) {\n // Recursively merge nested objects\n if (!target[key] || typeof target[key] !== 'object') {\n target[key] = {} as T[typeof key]\n }\n deepMerge(target[key], source[key])\n } else {\n // Overwrite with non-object values\n target[key] = source[key]\n }\n }\n\n return target\n}\n\nexport function deepMergeObjects<T extends AnyObject>(objects: T[]): T {\n const result = {} as T\n for (const obj of objects) {\n deepMerge(result, obj)\n }\n return result\n}\n","import { cwd } from 'node:process'\n\nimport chalk from 'chalk'\nimport type { TsConfigCompilerOptions } from 'tsc-prog'\nimport { createProgramFromConfig } from 'tsc-prog'\nimport type { CompilerOptions } from 'typescript'\nimport ts, {\n DiagnosticCategory, formatDiagnosticsWithColorAndContext, getPreEmitDiagnostics, sys,\n} from 'typescript'\n\nimport { getCompilerOptions } from './getCompilerOptions.ts'\n\nexport const packageCompileTsc = (\n platform: 'browser' | 'neutral' | 'node',\n entries: string[],\n srcDir: string = 'src',\n outDir: string = 'dist',\n compilerOptionsParam?: CompilerOptions,\n verbose: boolean = false,\n): number => {\n const pkg = process.env.INIT_CWD ?? cwd()\n\n if (verbose) {\n console.log(chalk.cyan(`Validating code START: ${entries.length} files to ${outDir} from ${srcDir}`))\n }\n\n const configFilePath = ts.findConfigFile(\n './', // search path\n ts.sys.fileExists,\n 'tsconfig.json',\n )\n\n if (configFilePath === undefined) {\n throw new Error('Could not find tsconfig.json')\n }\n\n const compilerOptions = {\n ...(getCompilerOptions({\n removeComments: false,\n skipDefaultLibCheck: true,\n skipLibCheck: true,\n sourceMap: false,\n })),\n ...compilerOptionsParam,\n outDir: `${outDir}/${platform}`,\n emitDeclarationOnly: true,\n noEmit: false,\n } as TsConfigCompilerOptions\n\n console.log(chalk.cyan(`Validating Files: ${entries.length}`))\n if (verbose) {\n for (const entry of entries) {\n console.log(chalk.grey(`Validating: ${entry}`))\n }\n }\n\n try {\n if (entries.length > 0) {\n const program = createProgramFromConfig({\n configFilePath,\n basePath: pkg ?? cwd(),\n compilerOptions,\n files: entries.map(entry => `${srcDir}/${entry}`),\n include: [`${srcDir}/**/*.*`],\n })\n\n const diagnostics = getPreEmitDiagnostics(program)\n\n if (diagnostics.length > 0) {\n const formattedDiagnostics = formatDiagnosticsWithColorAndContext(\n diagnostics,\n {\n getCanonicalFileName: fileName => fileName,\n getCurrentDirectory: () => srcDir,\n getNewLine: () => sys.newLine,\n },\n )\n console.error(formattedDiagnostics)\n }\n\n program.emit()\n return diagnostics.reduce((acc, diag) => acc + (diag.category === DiagnosticCategory.Error ? 1 : 0), 0)\n }\n return 0\n } finally {\n if (verbose) {\n console.log(chalk.cyan(`Validating code FINISH: ${entries.length} files to ${outDir} from ${srcDir}`))\n }\n }\n}\n","import { cwd } from 'node:process'\n\nimport deepmerge from 'deepmerge'\nimport { getTsconfig } from 'get-tsconfig'\nimport type { CompilerOptions } from 'typescript'\n\nexport const getCompilerOptions = (options: CompilerOptions = {}, fileName: string = 'tsconfig.json'): CompilerOptions => {\n const resolvedTsConfigCompilerOptions = getTsconfig(cwd(), fileName)?.config?.compilerOptions ?? {}\n\n return deepmerge(resolvedTsConfigCompilerOptions, options)\n}\n","import path from 'node:path'\nimport { cwd } from 'node:process'\n\nimport chalk from 'chalk'\nimport { rollup } from 'rollup'\nimport type { Options } from 'rollup-plugin-dts'\nimport dts from 'rollup-plugin-dts'\nimport nodeExternals from 'rollup-plugin-node-externals'\n\nimport { getCompilerOptions } from './getCompilerOptions.ts'\n\nconst ignoredWarningCodes = new Set(['EMPTY_BUNDLE', 'UNRESOLVED_IMPORT'])\n\nexport async function bundleDts(inputPath: string, outputPath: string, platform: 'node' | 'browser' | 'neutral', options?: Options, verbose = false) {\n // Find the tsconfig.json path\n const pkg = process.env.INIT_CWD ?? cwd()\n const tsconfigPath = path.resolve(pkg, 'tsconfig.json')\n\n const nodePlugIns = platform === 'node' ? [nodeExternals()] : []\n try {\n const bundle = await rollup({\n input: inputPath,\n\n plugins: [dts({\n ...options,\n tsconfig: tsconfigPath,\n compilerOptions: {\n emitDeclarationOnly: true, noEmit: false, declarationMap: true,\n },\n\n }), ...nodePlugIns],\n onwarn(warning, warn) {\n if (ignoredWarningCodes.has(warning.code ?? '')) {\n return\n }\n console.warn(chalk.yellow(`[${warning.code}] ${warning.message}`))\n console.warn(chalk.gray(inputPath))\n warn(warning)\n },\n })\n await bundle.write({\n file: outputPath,\n format: 'es',\n })\n } catch (ex) {\n const error = ex as Error\n console.warn(chalk.red(error))\n console.warn(chalk.gray(inputPath))\n }\n\n if (verbose) {\n console.log(`Bundled declarations written to ${outputPath}`)\n }\n}\n\nexport const packageCompileTscTypes = async (\n entries: string[],\n outDir: string,\n platform: 'node' | 'browser' | 'neutral',\n srcDir: string = 'build',\n verbose = false,\n): Promise<number> => {\n if (verbose) {\n console.log(chalk.cyan(`Compiling Types START [${platform}]: ${entries.length} files to ${outDir} from ${srcDir}`))\n console.log(`Entries: ${entries.join(', ')}`)\n }\n const pkg = process.env.INIT_CWD ?? cwd()\n const srcRoot = `${pkg}/${srcDir}/${platform}`\n\n const entryNameToTypeName = (entry: string): string => {\n const splitEntryName = entry.split('.')\n const newEntryExtension = 'd.' + splitEntryName.at(-1)\n return [...splitEntryName.slice(0, -1), newEntryExtension].join('.')\n }\n\n const compilerOptions = getCompilerOptions({\n removeComments: false,\n skipDefaultLibCheck: true,\n skipLibCheck: true,\n declarationMap: true,\n emitDeclarationOnly: true,\n noEmit: true,\n })\n\n const entryNames = entries.map(entry => entry.split(`${srcDir}/`).at(-1) ?? entry)\n\n await Promise.all(entryNames.map(async (entryName) => {\n const entryTypeName = entryNameToTypeName(entryName)\n await bundleDts(`${srcRoot}/${entryTypeName}`, `${outDir}/${entryTypeName}`, platform, { compilerOptions }, verbose)\n }))\n\n if (verbose) {\n console.log(chalk.cyan(`Compiling Types FINISH: ${entries.length} files to ${outDir} from ${srcDir}`))\n }\n\n return 0\n}\n","import path from 'node:path/posix'\n\nimport chalk from 'chalk'\nimport cpy from 'cpy'\n\nexport interface PackageCopyAssetsParams { target?: 'esm' | 'cjs' }\n\nconst copyTargetAssets = async (target: 'esm' | 'cjs', name: string, location: string) => {\n try {\n const values = await cpy(\n ['**/*.jpg', '**/*.png', '**/*.gif', '**/*.svg', '**/*.webp', '**/*.sass', '**/*.scss', '**/*.gif', '**/*.css'],\n `../dist/${target}`,\n {\n cwd: path.join(location, 'src'),\n flat: false,\n },\n )\n if (values.length > 0) {\n console.log(chalk.green(`Copying Assets [${target.toUpperCase()}] - ${name} - ${location}`))\n }\n for (const value of values) {\n console.log(`${value.split('/').pop()} => ./dist/${target}`)\n }\n return 0\n } catch (ex) {\n const error = ex as Error\n console.log(`Copy Assets Failed: ${name}: ${error.message}`)\n return 1\n }\n}\n\nexport const packageCopyAssets = async ({ target }: PackageCopyAssetsParams) => {\n const pkg = process.env.INIT_CWD ?? './'\n const pkgName = process.env.npm_package_name ?? 'Unknown'\n switch (target) {\n case 'esm': {\n return await copyTargetAssets('esm', pkgName, pkg)\n }\n case 'cjs': {\n return await copyTargetAssets('cjs', pkgName, pkg)\n }\n default: {\n return (await copyTargetAssets('esm', pkgName, pkg)) || (await copyTargetAssets('cjs', pkgName, pkg))\n }\n }\n}\n","import type { ICruiseOptions } from 'dependency-cruiser'\nimport { cruise } from 'dependency-cruiser'\n\nexport const packageCycle = async () => {\n const pkg = process.env.INIT_CWD\n const pkgName = process.env.npm_package_name\n\n const cruiseOptions: ICruiseOptions = {\n ruleSet: {\n forbidden: [\n {\n name: 'no-circular',\n severity: 'error',\n comment: 'This dependency creates a circular reference',\n from: {},\n to: { circular: true },\n },\n ],\n },\n exclude: 'node_modules|packages/.*/packages',\n validate: true,\n doNotFollow: { path: 'node_modules|packages/.*/packages' },\n tsPreCompilationDeps: false,\n combinedDependencies: true,\n outputType: 'err',\n }\n\n const target = `${pkg}/src`\n\n console.log(`Checking for circular dependencies in ${target}...`)\n\n const result = await cruise([target], cruiseOptions)\n console.log(result.output)\n\n if (result.exitCode === 0) {\n console.log(`${pkgName} ✅ No dependency violations`)\n } else {\n console.error(`${pkgName} ❌ Dependency violations found`)\n }\n return result.exitCode\n}\n","/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { existsSync } from 'node:fs'\nimport path from 'node:path'\n\nimport chalk from 'chalk'\nimport {\n Application, ArgumentsReader, TSConfigReader, TypeDocReader,\n} from 'typedoc'\n\nconst ExitCodes = {\n CompileError: 3,\n ExceptionThrown: 6,\n NoEntryPoints: 2,\n Ok: 0,\n OptionError: 1,\n OutputError: 5,\n ValidationError: 4,\n}\n\nexport const packageGenDocs = async () => {\n const pkg = process.env.INIT_CWD\n\n if (pkg !== undefined && !existsSync(path.join(pkg, 'typedoc.json'))) {\n return\n }\n\n const app = await Application.bootstrap({\n entryPointStrategy: 'merge',\n entryPoints: [`${pkg}/src/**/*.ts`, `${pkg}/packages/*/dist/docs.json`],\n excludeExternals: true,\n json: `${pkg}/dist/docs.json`,\n logLevel: 'Error',\n tsconfig: `${pkg}/tsconfig.json`,\n })\n\n app.options.addReader(new ArgumentsReader(0))\n app.options.addReader(new TypeDocReader())\n app.options.addReader(new TSConfigReader())\n app.options.addReader(new ArgumentsReader(300))\n\n return await runTypeDoc(app)\n}\n\nconst runTypeDoc = async (app: Application) => {\n const pkgName = process.env.npm_package_name\n if (app.options.getValue('version')) {\n console.log(app.toString())\n return ExitCodes.Ok\n }\n\n if (app.options.getValue('showConfig')) {\n console.log(app.options.getRawValues())\n return ExitCodes.Ok\n }\n\n if (app.logger.hasErrors()) {\n return ExitCodes.OptionError\n }\n if (app.options.getValue('treatWarningsAsErrors') && app.logger.hasWarnings()) {\n return ExitCodes.OptionError\n }\n\n if (app.options.getValue('entryPoints').length === 0) {\n app.logger.error('No entry points provided')\n return ExitCodes.NoEntryPoints\n }\n\n if (app.options.getValue('watch')) {\n await app.convertAndWatch(async (project) => {\n const out = app.options.getValue('out')\n if (out) {\n await app.generateDocs(project, out)\n }\n const json = app.options.getValue('json')\n if (json) {\n await app.generateJson(project, json)\n }\n\n if (!out && !json) {\n await app.generateDocs(project, './docs')\n }\n })\n return ExitCodes.Ok\n }\n\n const project = await app.convert()\n if (!project) {\n return ExitCodes.CompileError\n }\n if (app.options.getValue('treatWarningsAsErrors') && app.logger.hasWarnings()) {\n return ExitCodes.CompileError\n }\n\n app.validate(project)\n if (app.logger.hasErrors()) {\n return ExitCodes.ValidationError\n }\n if (app.options.getValue('treatWarningsAsErrors') && app.logger.hasWarnings()) {\n return ExitCodes.ValidationError\n }\n\n if (app.options.getValue('emit') !== 'none') {\n const out = app.options.getValue('out')\n if (out) {\n await app.generateDocs(project, out)\n }\n const json = app.options.getValue('json')\n if (json) {\n await app.generateJson(project, json)\n }\n\n if (!out && !json) {\n await app.generateDocs(project, './docs')\n }\n\n if (app.logger.hasErrors()) {\n return ExitCodes.OutputError\n }\n if (app.options.getValue('treatWarningsAsErrors') && app.logger.hasWarnings()) {\n return ExitCodes.OutputError\n }\n }\n console.log(chalk.green(`${pkgName} - Ok`))\n return ExitCodes.Ok\n}\n","import { readdirSync } from 'node:fs'\nimport path from 'node:path'\nimport { cwd } from 'node:process'\nimport { pathToFileURL } from 'node:url'\n\nimport chalk from 'chalk'\nimport { ESLint } from 'eslint'\nimport { findUp } from 'find-up'\nimport picomatch from 'picomatch'\n\nconst dumpMessages = (lintResults: ESLint.LintResult[]) => {\n const colors: ('white' | 'red' | 'yellow')[] = ['white', 'yellow', 'red']\n const severity: string[] = ['none', 'warning', 'error']\n\n for (const lintResult of lintResults) {\n if (lintResult.messages.length > 0) {\n console.log(chalk.gray(`\\n${lintResult.filePath}`))\n for (const message of lintResult.messages) {\n console.log(\n chalk.gray(`\\t${message.line}:${message.column}`),\n chalk[colors[message.severity]](`\\t${severity[message.severity]}`),\n chalk.white(`\\t${message.message}`),\n chalk.gray(`\\t${message.ruleId}`),\n )\n }\n }\n }\n}\n\nasync function getRootESLintConfig() {\n // Locate the root eslint.config.mjs\n const configPath = await findUp('eslint.config.mjs')\n\n if (configPath === undefined) {\n throw new Error('eslint.config.mjs not found in the monorepo')\n }\n\n return pathToFileURL(configPath)\n}\n\nfunction getFiles(dir: string, ignoreFolders: string[]): string[] {\n const currentDirectory = cwd()\n const subDirectory = dir.split(currentDirectory)[1]\n if (ignoreFolders.includes(subDirectory)) return []\n return readdirSync(dir, { withFileTypes: true })\n .flatMap((dirent) => {\n const res = path.resolve(dir, dirent.name)\n const relativePath = (subDirectory === undefined) ? dirent.name : `${subDirectory}/${dirent.name}`\n\n const ignoreMatchers = ignoreFolders.map(pattern => picomatch(pattern))\n\n // Exclude ignored paths\n if (ignoreMatchers.some(isMatch => isMatch(relativePath))) return []\n\n return dirent.isDirectory()\n ? getFiles(res, ignoreFolders)\n : [res]\n })\n}\n\nexport const packageLint = async (fix = false, verbose = false, cache = true) => {\n const pkg = process.env.INIT_CWD\n const configPath = await getRootESLintConfig()\n const { default: eslintConfig } = await import(configPath.href)\n\n const start = Date.now()\n\n // List of folders to ignore\n const ignoreFolders = ['node_modules', 'dist', 'packages', '.git', 'build', '.yarn', '.vscode', '.github']\n\n const engine = new ESLint({\n baseConfig: [...eslintConfig], fix, warnIgnored: false, cache,\n })\n\n const files = getFiles(cwd(), ignoreFolders)\n if (verbose) {\n console.log(chalk.green(`Linting ${pkg} [files = ${files.length}]`))\n }\n const lintResults = await engine.lintFiles(files)\n\n dumpMessages(lintResults)\n\n if (fix) {\n await ESLint.outputFixes(lintResults)\n }\n const filesCountColor = files.length < 100 ? 'green' : files.length < 1000 ? 'yellow' : 'red'\n const lintTime = Date.now() - start\n const lintTimeColor = lintTime < 1000 ? 'green' : lintTime < 3000 ? 'yellow' : 'red'\n console.log(chalk.white(`Linted ${chalk[filesCountColor](files.length)} files in ${chalk[lintTimeColor](lintTime)}ms`))\n return lintResults.reduce((prev, lintResult) => prev + lintResult.errorCount, 0)\n}\n","import { promises as fs } from 'node:fs'\n\nimport chalk from 'chalk'\nimport type { Message } from 'publint'\nimport sortPackageJson from 'sort-package-json'\n\nexport interface PackagePublintParams { strict?: boolean; verbose?: boolean }\n\nexport const packagePublint = async ({ strict = true, verbose = false }: PackagePublintParams = {}) => {\n const pkgDir = process.env.INIT_CWD\n\n const sortedPkg = sortPackageJson(await fs.readFile(`${pkgDir}/package.json`, 'utf8'))\n await fs.writeFile(`${pkgDir}/package.json`, sortedPkg)\n\n const pkg = JSON.parse(await fs.readFile(`${pkgDir}/package.json`, 'utf8'))\n\n console.log(chalk.green(`Publint: ${pkg.name}`))\n console.log(chalk.gray(pkgDir))\n\n const { publint } = await import('publint')\n\n const { messages } = await publint({\n level: 'suggestion',\n pkgDir,\n strict,\n })\n\n // eslint-disable-next-line import-x/no-internal-modules\n const { formatMessage } = await import('publint/utils')\n\n const validMessage = (_message: Message): boolean => {\n return true\n /* try {\n const value = getValueFromPath(pkg, message.path)\n switch (message.code) {\n case 'FILE_INVALID_FORMAT':\n return !message.args?.actualFilePath?.includes('dist/browser') && !value?.includes('dist/browser')\n case 'EXPORT_TYPES_INVALID_FORMAT':\n return !`${value}`.includes('dist/browser')\n default:\n return true\n }\n } catch (ex) {\n const error = ex as Error\n console.error(chalk.red(`validMessage Excepted: ${error.message}`))\n console.error(chalk.gray(JSON.stringify(error.stack)))\n return true\n } */\n }\n\n // we filter out invalid file formats for the esm folder since it is intentionally done\n const validMessages = messages.filter(validMessage)\n for (const message of validMessages) {\n switch (message.type) {\n case 'error': {\n console.error(chalk.red(`[${message.code}] ${formatMessage(message, pkg)}`))\n break\n }\n case 'warning': {\n console.warn(chalk.yellow(`[${message.code}] ${formatMessage(message, pkg)}`))\n break\n }\n default: {\n console.log(chalk.white(`[${message.code}] ${formatMessage(message, pkg)}`))\n break\n }\n }\n }\n\n if (verbose) {\n console.log(chalk.gray(`Publint [Finish]: ${pkgDir} [${validMessages.length}]`))\n }\n\n return validMessages.filter(message => message.type === 'error').length\n}\n","import { packageClean } from './clean.ts'\nimport { packageCompile } from './compile/index.ts'\n\nexport const packageRecompile = async () => {\n return await packageClean() || await packageCompile()\n}\n"],"mappings":"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","names":["path","chalk","fs","glob","deleteGlob","globPath","files","glob","sync","file","fs","rmSync","recursive","force","chalk","cosmiconfig","TypeScriptLoader","deepmerge","config","loadConfig","params","undefined","cosmicConfigResult","cosmiconfig","cache","loaders","TypeScriptLoader","search","configFilePath","filepath","console","log","chalk","green","verbose","gray","JSON","stringify","deepmerge","packageCleanOutputs","pkg","process","env","INIT_CWD","pkgName","npm_package_name","folders","path","join","console","log","chalk","green","folder","deleteGlob","path","chalk","packageCleanTypescript","pkg","process","env","INIT_CWD","pkgName","npm_package_name","console","log","chalk","green","files","path","join","file","deleteGlob","packageClean","Promise","all","packageCleanOutputs","packageCleanTypescript","reduce","prev","value","chalk","chalk","build","defineConfig","chalk","glob","getAllInputs","srcDir","verbose","glob","sync","posix","map","file","result","slice","Math","max","length","console","log","chalk","gray","JSON","stringify","buildEntries","srcDir","entryMode","options","excludeSpecAndStories","verbose","entries","getAllInputs","filter","entry","includes","endsWith","Array","isArray","push","console","log","length","deepMerge","target","source","key","Object","keys","Array","isArray","deepMergeObjects","objects","result","obj","cwd","chalk","createProgramFromConfig","ts","DiagnosticCategory","formatDiagnosticsWithColorAndContext","getPreEmitDiagnostics","sys","cwd","deepmerge","getTsconfig","getCompilerOptions","options","fileName","resolvedTsConfigCompilerOptions","getTsconfig","cwd","config","compilerOptions","deepmerge","packageCompileTsc","platform","entries","srcDir","outDir","compilerOptionsParam","verbose","pkg","process","env","INIT_CWD","cwd","console","log","chalk","cyan","length","configFilePath","ts","findConfigFile","sys","fileExists","undefined","Error","compilerOptions","getCompilerOptions","removeComments","skipDefaultLibCheck","skipLibCheck","sourceMap","emitDeclarationOnly","noEmit","entry","grey","program","createProgramFromConfig","basePath","files","map","include","diagnostics","getPreEmitDiagnostics","formattedDiagnostics","formatDiagnosticsWithColorAndContext","getCanonicalFileName","fileName","getCurrentDirectory","getNewLine","newLine","error","emit","reduce","acc","diag","category","DiagnosticCategory","path","cwd","chalk","rollup","dts","nodeExternals","ignoredWarningCodes","Set","bundleDts","inputPath","outputPath","platform","options","verbose","pkg","process","env","INIT_CWD","cwd","tsconfigPath","path","resolve","nodePlugIns","nodeExternals","bundle","rollup","input","plugins","dts","tsconfig","compilerOptions","emitDeclarationOnly","noEmit","declarationMap","onwarn","warning","warn","has","code","console","chalk","yellow","message","gray","write","file","format","ex","error","red","log","packageCompileTscTypes","entries","outDir","srcDir","cyan","length","join","srcRoot","entryNameToTypeName","entry","splitEntryName","split","newEntryExtension","at","slice","getCompilerOptions","removeComments","skipDefaultLibCheck","skipLibCheck","entryNames","map","Promise","all","entryName","entryTypeName","compileFolder","srcDir","entries","buildDir","options","bundleTypes","verbose","outDir","console","log","length","warn","chalk","yellow","gray","validationResult","packageCompileTsc","platform","undefined","error","red","optionsParams","tsupOptions","bundle","cjsInterop","clean","dts","format","silent","sourcemap","splitting","tsconfig","entry","map","optionsResult","defineConfig","optionsList","Promise","all","Array","isArray","flatMap","result","flat","cyan","JSON","stringify","build","packageCompileTscTypes","standardLoaders","standardOptions","loader","outExtension","js","skipNodeModulesBundle","target","deepMergeObjects","packageCompileTsup","config","compile","outDirAsBuildDir","compileForNode","node","src","compileForBrowser","browser","compileForNeutral","neutral","Object","optionsObject","inEsBuildOptions","esbuildOptions","buildEntries","entryMode","rootOutDir","tsup","reduce","prev","value","packageCompile","inConfig","pkg","process","env","INIT_CWD","console","log","chalk","green","config","loadConfig","packageCompileTsup","path","chalk","cpy","copyTargetAssets","target","name","location","values","cpy","cwd","path","join","flat","length","console","log","chalk","green","toUpperCase","value","split","pop","ex","error","message","packageCopyAssets","pkg","process","env","INIT_CWD","pkgName","npm_package_name","cruise","packageCycle","pkg","process","env","INIT_CWD","pkgName","npm_package_name","cruiseOptions","ruleSet","forbidden","name","severity","comment","from","to","circular","exclude","validate","doNotFollow","path","tsPreCompilationDeps","combinedDependencies","outputType","target","console","log","result","cruise","output","exitCode","error","existsSync","path","chalk","Application","ArgumentsReader","TSConfigReader","TypeDocReader","ExitCodes","CompileError","ExceptionThrown","NoEntryPoints","Ok","OptionError","OutputError","ValidationError","packageGenDocs","pkg","process","env","INIT_CWD","undefined","existsSync","path","join","app","Application","bootstrap","entryPointStrategy","entryPoints","excludeExternals","json","logLevel","tsconfig","options","addReader","ArgumentsReader","TypeDocReader","TSConfigReader","runTypeDoc","pkgName","npm_package_name","getValue","console","log","toString","getRawValues","logger","hasErrors","hasWarnings","length","error","convertAndWatch","project","out","generateDocs","generateJson","convert","validate","chalk","green","readdirSync","path","cwd","pathToFileURL","chalk","ESLint","findUp","picomatch","dumpMessages","lintResults","colors","severity","lintResult","messages","length","console","log","chalk","gray","filePath","message","line","column","white","ruleId","getRootESLintConfig","configPath","findUp","undefined","Error","pathToFileURL","getFiles","dir","ignoreFolders","currentDirectory","cwd","subDirectory","split","includes","readdirSync","withFileTypes","flatMap","dirent","res","path","resolve","name","relativePath","ignoreMatchers","map","pattern","picomatch","some","isMatch","isDirectory","packageLint","fix","verbose","cache","pkg","process","env","INIT_CWD","default","eslintConfig","href","start","Date","now","engine","ESLint","baseConfig","warnIgnored","files","green","lintFiles","outputFixes","filesCountColor","lintTime","lintTimeColor","reduce","prev","errorCount","promises","fs","chalk","sortPackageJson","packagePublint","strict","verbose","pkgDir","process","env","INIT_CWD","sortedPkg","sortPackageJson","fs","readFile","writeFile","pkg","JSON","parse","console","log","chalk","green","name","gray","publint","messages","level","formatMessage","validMessage","_message","validMessages","filter","message","type","error","red","code","warn","yellow","white","length","packageRecompile","packageClean","packageCompile"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/package/clean-outputs.ts","../../../src/lib/deleteGlob.ts","../../../src/lib/loadConfig.ts","../../../src/actions/package/clean-typescript.ts","../../../src/actions/package/clean.ts","../../../src/actions/package/compile/compile.ts","../../../src/actions/package/compile/packageCompileTsup.ts","../../../src/actions/package/compile/inputs.ts","../../../src/actions/package/compile/buildEntries.ts","../../../src/actions/package/compile/deepMerge.ts","../../../src/actions/package/compile/packageCompileTsc.ts","../../../src/actions/package/compile/getCompilerOptions.ts","../../../src/actions/package/compile/packageCompileTscTypes.ts","../../../src/actions/package/copy-assets.ts","../../../src/actions/package/cycle.ts","../../../src/actions/package/gen-docs.ts","../../../src/actions/package/lint.ts","../../../src/actions/package/publint.ts","../../../src/actions/package/recompile.ts"],"sourcesContent":["import path from 'node:path'\n\nimport chalk from 'chalk'\n\nimport { deleteGlob } from '../../lib/index.ts'\n\nexport const packageCleanOutputs = () => {\n const pkg = process.env.INIT_CWD ?? '.'\n const pkgName = process.env.npm_package_name\n const folders: string[] = [path.join(pkg, 'dist'), path.join(pkg, 'build'), path.join(pkg, 'docs')]\n console.log(chalk.green(`Cleaning Outputs [${pkgName}]`))\n\n for (let folder of folders) {\n deleteGlob(folder)\n }\n\n return 0\n}\n","import fs from 'node:fs'\n\nimport { glob } from 'glob'\n\nexport const deleteGlob = (globPath: string) => {\n // Find all files matching the glob pattern\n const files = glob.sync(globPath)\n\n // Remove each file or directory\n for (const file of files) {\n fs.rmSync(file, { recursive: true, force: true })\n }\n}\n","import chalk from 'chalk'\nimport { cosmiconfig } from 'cosmiconfig'\nimport { TypeScriptLoader } from 'cosmiconfig-typescript-loader'\nimport deepmerge from 'deepmerge'\n\nlet config: Record<string, unknown>\n\nexport const loadConfig = async <T extends object>(params?: T): Promise<T> => {\n if (config === undefined) {\n const cosmicConfigResult = await cosmiconfig('xy', { cache: true, loaders: { '.ts': TypeScriptLoader() } }).search()\n config = cosmicConfigResult?.config\n const configFilePath = cosmicConfigResult?.filepath\n if (configFilePath !== undefined) {\n console.log(chalk.green(`Loaded config from ${configFilePath}`))\n if (config.verbose) {\n console.log(chalk.gray(`${JSON.stringify(config, null, 2)}`))\n }\n }\n }\n return deepmerge(config, params ?? {}) as T\n}\n","import path from 'node:path'\n\nimport chalk from 'chalk'\n\nimport { deleteGlob } from '../../lib/index.ts'\n\nexport const packageCleanTypescript = () => {\n const pkg = process.env.INIT_CWD ?? '.'\n const pkgName = process.env.npm_package_name\n console.log(chalk.green(`Cleaning Typescript [${pkgName}]`))\n const files: string[] = [path.join(pkg, '*.tsbuildinfo'), path.join(pkg, '.tsconfig.*'), path.join(pkg, '.eslintcache')]\n\n for (let file of files) {\n deleteGlob(file)\n }\n\n return 0\n}\n","import { packageCleanOutputs } from './clean-outputs.ts'\nimport { packageCleanTypescript } from './clean-typescript.ts'\n\nexport const packageClean = async () => {\n return (await Promise.all([packageCleanOutputs(), packageCleanTypescript()])).reduce((prev, value) => prev + value, 0)\n}\n","import chalk from 'chalk'\n\nimport { loadConfig } from '../../../lib/index.ts'\nimport { packageCompileTsup } from './packageCompileTsup.ts'\nimport type { XyConfig } from './XyConfig.ts'\n\nexport const packageCompile = async (inConfig: XyConfig = {}): Promise<number> => {\n const pkg = process.env.INIT_CWD\n console.log(chalk.green(`Compiling ${pkg}`))\n const config = await loadConfig(inConfig)\n\n return await packageCompileTsup(config)\n}\n","import chalk from 'chalk'\nimport type { Loader } from 'esbuild'\nimport type { Options } from 'tsup'\nimport { build, defineConfig } from 'tsup'\n\nimport { buildEntries } from './buildEntries.ts'\nimport { deepMergeObjects } from './deepMerge.ts'\nimport { packageCompileTsc } from './packageCompileTsc.ts'\nimport { packageCompileTscTypes } from './packageCompileTscTypes.ts'\nimport type { XyTsupConfig } from './XyConfig.ts'\n\nconst compileFolder = async (\n srcDir: string,\n entries: string[],\n buildDir: string,\n options?: Options,\n bundleTypes = false,\n verbose?: boolean,\n): Promise<number> => {\n const outDir = options?.outDir ?? 'dist'\n\n if (verbose) {\n console.log(`compileFolder [${srcDir}, ${options?.outDir}]`)\n }\n\n if (entries.length === 0) {\n console.warn(chalk.yellow(`No entries found in ${srcDir} to compile`))\n return 0\n }\n\n if (verbose) {\n console.log(chalk.gray(`buildDir [${buildDir}]`))\n }\n\n const validationResult = packageCompileTsc(options?.platform ?? 'neutral', entries, srcDir, buildDir, undefined, verbose)\n if (validationResult !== 0) {\n console.error(chalk.red(`Compile:Validation had ${validationResult} errors`))\n return validationResult\n }\n\n const optionsParams: Options = tsupOptions([{\n bundle: true,\n cjsInterop: true,\n clean: false,\n dts: false,\n format: ['esm'],\n outDir,\n silent: true,\n sourcemap: true,\n splitting: false,\n tsconfig: 'tsconfig.json',\n ...options,\n entry: entries.map(entry => `${srcDir}/${entry}`),\n }])\n\n const optionsResult = defineConfig(optionsParams)\n\n const optionsList = (\n await Promise.all(\n (Array.isArray(optionsResult) ? optionsResult : [optionsResult]).flatMap<Promise<Options[]>>(async (options) => {\n const result = typeof options === 'function' ? await options({}) : [options]\n return Array.isArray(result) ? result : [result]\n }),\n )\n ).flat()\n\n if (verbose) {\n console.log(chalk.cyan(`TSUP:build:start [${srcDir}]`))\n console.log(chalk.gray(`TSUP:build:options [${JSON.stringify(optionsList, null, 2)}]`))\n }\n\n await Promise.all(optionsList.map(options => build(options)))\n\n if (verbose) {\n console.log(chalk.cyan(`TSUP:build:stop [${srcDir}]`))\n }\n if (bundleTypes) {\n await packageCompileTscTypes(entries, outDir, options?.platform ?? 'neutral', buildDir, verbose)\n }\n\n return 0\n}\n\nexport const tsupOptions = (options: Options[] = []): Options => {\n const standardLoaders: Record<string, Loader> = {\n '.gif': 'copy', '.html': 'copy', '.jpg': 'copy', '.json': 'json', '.png': 'copy', '.svg': 'text', '.webp': 'copy',\n }\n\n const standardOptions: Options = {\n bundle: true,\n format: ['esm'],\n loader: standardLoaders,\n outExtension: ({ format }) => (format === 'esm' ? { js: '.mjs' } : { js: '.cjs' }),\n skipNodeModulesBundle: true,\n sourcemap: true,\n target: 'esnext',\n }\n\n return deepMergeObjects([standardOptions, ...options])\n}\n\nexport const packageCompileTsup = async (config?: XyTsupConfig) => {\n const compile = config?.compile\n const verbose = config?.verbose ?? false\n const outDirAsBuildDir = compile?.outDirAsBuildDir ?? true\n const bundleTypes = compile?.bundleTypes ?? false\n if (verbose) {\n console.log('Compiling with TSUP')\n }\n\n const compileForNode = compile?.node ?? { src: {} }\n const compileForBrowser = compile?.browser ?? { src: {} }\n const compileForNeutral = compile?.neutral ?? { src: {} }\n\n return (\n (\n await Promise.all(\n Object.entries(compileForNode).map(async ([srcDir, options]) => {\n const optionsObject: Options = typeof options === 'object' ? options : {}\n const inEsBuildOptions = typeof compile?.node?.esbuildOptions === 'object' ? compile?.node?.esbuildOptions : {}\n const entry = buildEntries(srcDir, compile?.entryMode, options, true, verbose)\n const platform = 'node'\n const rootOutDir = (optionsObject.outDir ?? 'dist')\n const outDir = rootOutDir + '/' + platform\n return typeof srcDir === 'string'\n ? await compileFolder(\n srcDir,\n entry,\n outDirAsBuildDir ? rootOutDir : 'build',\n tsupOptions([inEsBuildOptions,\n compile?.tsup?.options ?? {},\n (typeof options === 'object' ? options : {}),\n { platform: 'node', outDir }]),\n bundleTypes,\n verbose,\n )\n : 0\n }),\n )\n ).reduce((prev, value) => prev + value, 0)\n + (\n await Promise.all(\n Object.entries(compileForBrowser).map(async ([srcDir, options]) => {\n const optionsObject: Options = typeof options === 'object' ? options : {}\n const inEsBuildOptions = typeof compile?.browser?.esbuildOptions === 'object' ? compile?.browser?.esbuildOptions : {}\n const entry = buildEntries(srcDir, compile?.entryMode, options, true, verbose)\n const platform = 'browser'\n const rootOutDir = (optionsObject.outDir ?? 'dist')\n const outDir = rootOutDir + '/' + platform\n return typeof srcDir === 'string'\n ? await compileFolder(\n srcDir,\n entry,\n outDirAsBuildDir ? rootOutDir : 'build',\n tsupOptions([inEsBuildOptions,\n compile?.tsup?.options ?? {},\n (typeof options === 'object' ? options : {}),\n { platform: 'browser', outDir }]),\n bundleTypes,\n verbose,\n )\n : 0\n }),\n )\n ).reduce((prev, value) => prev + value, 0)\n + (\n await Promise.all(\n Object.entries(compileForNeutral).map(async ([srcDir, options]) => {\n const optionsObject: Options = typeof options === 'object' ? options : {}\n const inEsBuildOptions = typeof compile?.neutral?.esbuildOptions === 'object' ? compile?.neutral?.esbuildOptions : {}\n const entry = buildEntries(srcDir, compile?.entryMode, options, true, verbose)\n const platform = 'neutral'\n const rootOutDir = (optionsObject.outDir ?? 'dist')\n const outDir = rootOutDir + '/' + platform\n return typeof srcDir === 'string'\n ? await compileFolder(\n srcDir,\n entry,\n outDirAsBuildDir ? rootOutDir : 'build',\n tsupOptions([inEsBuildOptions,\n compile?.tsup?.options ?? {},\n (typeof options === 'object' ? options : {}),\n { platform: 'neutral', outDir }]),\n bundleTypes,\n verbose,\n )\n : 0\n }),\n )\n ).reduce((prev, value) => prev + value, 0)\n + 0\n )\n}\n","import chalk from 'chalk'\nimport { glob } from 'glob'\n\nexport const getAllInputs = (srcDir: string, verbose = false) => {\n /* tsup wants posix paths */\n return [...glob.sync(`${srcDir}/**/*.ts`, { posix: true }).map((file) => {\n const result = file.slice(Math.max(0, srcDir.length + 1)) // Remove the folder prefix\n if (verbose) {\n console.log(chalk.gray(`getAllInputs: ${JSON.stringify(result, null, 2)}`))\n }\n return result\n }), ...glob.sync(`${srcDir}/**/*.tsx`, { posix: true }).map((file) => {\n const result = file.slice(Math.max(0, srcDir.length + 1)) // Remove the folder prefix\n if (verbose) {\n console.log(chalk.gray(`getAllInputs: ${JSON.stringify(result, null, 2)}`))\n }\n return result\n })]\n}\n","import type { Options } from 'tsup'\n\nimport { getAllInputs } from './inputs.ts'\nimport type { EntryMode } from './XyConfig.ts'\n\nexport const buildEntries = (srcDir: string, entryMode: EntryMode = 'single', options?: Options | boolean, excludeSpecAndStories = true, verbose = false) => {\n let entries: string[] = []\n switch (entryMode) {\n case 'platform': {\n entries = ['index-node.ts', 'index-browser.ts']\n break\n }\n case 'all': {\n entries = (excludeSpecAndStories\n ? getAllInputs(srcDir).filter(entry => !entry.includes('.spec.') && !entry.includes('.stories.'))\n : getAllInputs(srcDir)).filter(entry => !entry.endsWith('.d.ts'))\n break\n }\n case 'custom': {\n entries = []\n break\n }\n default: {\n entries = ['index.ts']\n break\n }\n }\n\n if (typeof options !== 'boolean' && Array.isArray(options?.entry)) {\n entries.push(...options.entry)\n }\n\n if (verbose) console.log(`buildEntries [${entryMode}] ${entries.length}`)\n return entries\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyObject = Record<any, any>\n\nfunction deepMerge<T extends AnyObject>(target: AnyObject, source: AnyObject): T {\n if (!source || typeof source !== 'object') return target\n\n for (const key of Object.keys(source)) {\n if (\n typeof source[key] === 'object'\n && source[key] !== null\n && !Array.isArray(source[key])\n ) {\n // Recursively merge nested objects\n if (!target[key] || typeof target[key] !== 'object') {\n target[key] = {} as T[typeof key]\n }\n deepMerge(target[key], source[key])\n } else {\n // Overwrite with non-object values\n target[key] = source[key]\n }\n }\n\n return target\n}\n\nexport function deepMergeObjects<T extends AnyObject>(objects: T[]): T {\n const result = {} as T\n for (const obj of objects) {\n deepMerge(result, obj)\n }\n return result\n}\n","import { cwd } from 'node:process'\n\nimport chalk from 'chalk'\nimport type { TsConfigCompilerOptions } from 'tsc-prog'\nimport { createProgramFromConfig } from 'tsc-prog'\nimport type { CompilerOptions } from 'typescript'\nimport ts, {\n DiagnosticCategory, formatDiagnosticsWithColorAndContext, getPreEmitDiagnostics, sys,\n} from 'typescript'\n\nimport { getCompilerOptions } from './getCompilerOptions.ts'\n\nexport const packageCompileTsc = (\n platform: 'browser' | 'neutral' | 'node',\n entries: string[],\n srcDir: string = 'src',\n outDir: string = 'dist',\n compilerOptionsParam?: CompilerOptions,\n verbose: boolean = false,\n): number => {\n const pkg = process.env.INIT_CWD ?? cwd()\n\n if (verbose) {\n console.log(chalk.cyan(`Validating code START: ${entries.length} files to ${outDir} from ${srcDir}`))\n }\n\n const configFilePath = ts.findConfigFile(\n './', // search path\n ts.sys.fileExists,\n 'tsconfig.json',\n )\n\n if (configFilePath === undefined) {\n throw new Error('Could not find tsconfig.json')\n }\n\n const compilerOptions = {\n ...(getCompilerOptions({\n removeComments: false,\n skipDefaultLibCheck: true,\n skipLibCheck: true,\n sourceMap: false,\n })),\n ...compilerOptionsParam,\n outDir: `${outDir}/${platform}`,\n emitDeclarationOnly: true,\n noEmit: false,\n } as TsConfigCompilerOptions\n\n console.log(chalk.cyan(`Validating Files: ${entries.length}`))\n if (verbose) {\n for (const entry of entries) {\n console.log(chalk.grey(`Validating: ${entry}`))\n }\n }\n\n try {\n if (entries.length > 0) {\n const program = createProgramFromConfig({\n configFilePath,\n basePath: pkg ?? cwd(),\n compilerOptions,\n files: entries.map(entry => `${srcDir}/${entry}`),\n include: [`${srcDir}/**/*.*`],\n })\n\n const diagnostics = getPreEmitDiagnostics(program)\n\n if (diagnostics.length > 0) {\n const formattedDiagnostics = formatDiagnosticsWithColorAndContext(\n diagnostics,\n {\n getCanonicalFileName: fileName => fileName,\n getCurrentDirectory: () => srcDir,\n getNewLine: () => sys.newLine,\n },\n )\n console.error(formattedDiagnostics)\n }\n\n program.emit()\n return diagnostics.reduce((acc, diag) => acc + (diag.category === DiagnosticCategory.Error ? 1 : 0), 0)\n }\n return 0\n } finally {\n if (verbose) {\n console.log(chalk.cyan(`Validating code FINISH: ${entries.length} files to ${outDir} from ${srcDir}`))\n }\n }\n}\n","import { cwd } from 'node:process'\n\nimport deepmerge from 'deepmerge'\nimport { getTsconfig } from 'get-tsconfig'\nimport type { CompilerOptions } from 'typescript'\n\nexport const getCompilerOptions = (options: CompilerOptions = {}, fileName: string = 'tsconfig.json'): CompilerOptions => {\n const resolvedTsConfigCompilerOptions = getTsconfig(cwd(), fileName)?.config?.compilerOptions ?? {}\n\n return deepmerge(resolvedTsConfigCompilerOptions, options)\n}\n","import path from 'node:path'\nimport { cwd } from 'node:process'\n\nimport chalk from 'chalk'\nimport { rollup } from 'rollup'\nimport type { Options } from 'rollup-plugin-dts'\nimport dts from 'rollup-plugin-dts'\nimport nodeExternals from 'rollup-plugin-node-externals'\n\nimport { getCompilerOptions } from './getCompilerOptions.ts'\n\nconst ignoredWarningCodes = new Set(['EMPTY_BUNDLE', 'UNRESOLVED_IMPORT'])\n\nexport async function bundleDts(inputPath: string, outputPath: string, platform: 'node' | 'browser' | 'neutral', options?: Options, verbose = false) {\n // Find the tsconfig.json path\n const pkg = process.env.INIT_CWD ?? cwd()\n const tsconfigPath = path.resolve(pkg, 'tsconfig.json')\n\n const nodePlugIns = platform === 'node' ? [nodeExternals()] : []\n try {\n const bundle = await rollup({\n input: inputPath,\n\n plugins: [dts({\n ...options,\n tsconfig: tsconfigPath,\n compilerOptions: {\n emitDeclarationOnly: true, noEmit: false, declarationMap: true,\n },\n\n }), ...nodePlugIns],\n onwarn(warning, warn) {\n if (ignoredWarningCodes.has(warning.code ?? '')) {\n return\n }\n console.warn(chalk.yellow(`[${warning.code}] ${warning.message}`))\n console.warn(chalk.gray(inputPath))\n warn(warning)\n },\n })\n await bundle.write({\n file: outputPath,\n format: 'es',\n })\n } catch (ex) {\n const error = ex as Error\n console.warn(chalk.red(error))\n console.warn(chalk.gray(inputPath))\n }\n\n if (verbose) {\n console.log(`Bundled declarations written to ${outputPath}`)\n }\n}\n\nexport const packageCompileTscTypes = async (\n entries: string[],\n outDir: string,\n platform: 'node' | 'browser' | 'neutral',\n srcDir: string = 'build',\n verbose = false,\n): Promise<number> => {\n if (verbose) {\n console.log(chalk.cyan(`Compiling Types START [${platform}]: ${entries.length} files to ${outDir} from ${srcDir}`))\n console.log(`Entries: ${entries.join(', ')}`)\n }\n const pkg = process.env.INIT_CWD ?? cwd()\n const srcRoot = `${pkg}/${srcDir}/${platform}`\n\n const entryNameToTypeName = (entry: string): string => {\n const splitEntryName = entry.split('.')\n const newEntryExtension = 'd.' + splitEntryName.at(-1)\n return [...splitEntryName.slice(0, -1), newEntryExtension].join('.')\n }\n\n const compilerOptions = getCompilerOptions({\n removeComments: false,\n skipDefaultLibCheck: true,\n skipLibCheck: true,\n declarationMap: true,\n emitDeclarationOnly: true,\n noEmit: true,\n })\n\n const entryNames = entries.map(entry => entry.split(`${srcDir}/`).at(-1) ?? entry)\n\n await Promise.all(entryNames.map(async (entryName) => {\n const entryTypeName = entryNameToTypeName(entryName)\n await bundleDts(`${srcRoot}/${entryTypeName}`, `${outDir}/${entryTypeName}`, platform, { compilerOptions }, verbose)\n }))\n\n if (verbose) {\n console.log(chalk.cyan(`Compiling Types FINISH: ${entries.length} files to ${outDir} from ${srcDir}`))\n }\n\n return 0\n}\n","import path from 'node:path/posix'\n\nimport chalk from 'chalk'\nimport cpy from 'cpy'\n\nexport interface PackageCopyAssetsParams { target?: 'esm' | 'cjs' }\n\nconst copyTargetAssets = async (target: 'esm' | 'cjs', name: string, location: string) => {\n try {\n const values = await cpy(\n ['**/*.jpg', '**/*.png', '**/*.gif', '**/*.svg', '**/*.webp', '**/*.sass', '**/*.scss', '**/*.gif', '**/*.css'],\n `../dist/${target}`,\n {\n cwd: path.join(location, 'src'),\n flat: false,\n },\n )\n if (values.length > 0) {\n console.log(chalk.green(`Copying Assets [${target.toUpperCase()}] - ${name} - ${location}`))\n }\n for (const value of values) {\n console.log(`${value.split('/').pop()} => ./dist/${target}`)\n }\n return 0\n } catch (ex) {\n const error = ex as Error\n console.log(`Copy Assets Failed: ${name}: ${error.message}`)\n return 1\n }\n}\n\nexport const packageCopyAssets = async ({ target }: PackageCopyAssetsParams) => {\n const pkg = process.env.INIT_CWD ?? './'\n const pkgName = process.env.npm_package_name ?? 'Unknown'\n switch (target) {\n case 'esm': {\n return await copyTargetAssets('esm', pkgName, pkg)\n }\n case 'cjs': {\n return await copyTargetAssets('cjs', pkgName, pkg)\n }\n default: {\n return (await copyTargetAssets('esm', pkgName, pkg)) || (await copyTargetAssets('cjs', pkgName, pkg))\n }\n }\n}\n","import type { ICruiseOptions } from 'dependency-cruiser'\nimport { cruise } from 'dependency-cruiser'\n\nexport const packageCycle = async () => {\n const pkg = process.env.INIT_CWD\n const pkgName = process.env.npm_package_name\n\n const cruiseOptions: ICruiseOptions = {\n ruleSet: {\n forbidden: [\n {\n name: 'no-circular',\n severity: 'error',\n comment: 'This dependency creates a circular reference',\n from: {},\n to: { circular: true },\n },\n ],\n },\n exclude: 'node_modules|packages/.*/packages',\n validate: true,\n doNotFollow: { path: 'node_modules|packages/.*/packages' },\n tsPreCompilationDeps: false,\n combinedDependencies: true,\n outputType: 'err',\n }\n\n const target = `${pkg}/src`\n\n console.log(`Checking for circular dependencies in ${target}...`)\n\n const result = await cruise([target], cruiseOptions)\n console.log(result.output)\n\n if (result.exitCode === 0) {\n console.log(`${pkgName} ✅ No dependency violations`)\n } else {\n console.error(`${pkgName} ❌ Dependency violations found`)\n }\n return result.exitCode\n}\n","/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { existsSync } from 'node:fs'\nimport path from 'node:path'\n\nimport chalk from 'chalk'\nimport {\n Application, ArgumentsReader, TSConfigReader, TypeDocReader,\n} from 'typedoc'\n\nconst ExitCodes = {\n CompileError: 3,\n ExceptionThrown: 6,\n NoEntryPoints: 2,\n Ok: 0,\n OptionError: 1,\n OutputError: 5,\n ValidationError: 4,\n}\n\nexport const packageGenDocs = async () => {\n const pkg = process.env.INIT_CWD\n\n if (pkg !== undefined && !existsSync(path.join(pkg, 'typedoc.json'))) {\n return\n }\n\n const app = await Application.bootstrap({\n entryPointStrategy: 'merge',\n entryPoints: [`${pkg}/src/**/*.ts`, `${pkg}/packages/*/dist/docs.json`],\n excludeExternals: true,\n json: `${pkg}/dist/docs.json`,\n logLevel: 'Error',\n tsconfig: `${pkg}/tsconfig.json`,\n })\n\n app.options.addReader(new ArgumentsReader(0))\n app.options.addReader(new TypeDocReader())\n app.options.addReader(new TSConfigReader())\n app.options.addReader(new ArgumentsReader(300))\n\n return await runTypeDoc(app)\n}\n\nconst runTypeDoc = async (app: Application) => {\n const pkgName = process.env.npm_package_name\n if (app.options.getValue('version')) {\n console.log(app.toString())\n return ExitCodes.Ok\n }\n\n if (app.options.getValue('showConfig')) {\n console.log(app.options.getRawValues())\n return ExitCodes.Ok\n }\n\n if (app.logger.hasErrors()) {\n return ExitCodes.OptionError\n }\n if (app.options.getValue('treatWarningsAsErrors') && app.logger.hasWarnings()) {\n return ExitCodes.OptionError\n }\n\n if (app.options.getValue('entryPoints').length === 0) {\n app.logger.error('No entry points provided')\n return ExitCodes.NoEntryPoints\n }\n\n if (app.options.getValue('watch')) {\n await app.convertAndWatch(async (project) => {\n const out = app.options.getValue('out')\n if (out) {\n await app.generateDocs(project, out)\n }\n const json = app.options.getValue('json')\n if (json) {\n await app.generateJson(project, json)\n }\n\n if (!out && !json) {\n await app.generateDocs(project, './docs')\n }\n })\n return ExitCodes.Ok\n }\n\n const project = await app.convert()\n if (!project) {\n return ExitCodes.CompileError\n }\n if (app.options.getValue('treatWarningsAsErrors') && app.logger.hasWarnings()) {\n return ExitCodes.CompileError\n }\n\n app.validate(project)\n if (app.logger.hasErrors()) {\n return ExitCodes.ValidationError\n }\n if (app.options.getValue('treatWarningsAsErrors') && app.logger.hasWarnings()) {\n return ExitCodes.ValidationError\n }\n\n if (app.options.getValue('emit') !== 'none') {\n const out = app.options.getValue('out')\n if (out) {\n await app.generateDocs(project, out)\n }\n const json = app.options.getValue('json')\n if (json) {\n await app.generateJson(project, json)\n }\n\n if (!out && !json) {\n await app.generateDocs(project, './docs')\n }\n\n if (app.logger.hasErrors()) {\n return ExitCodes.OutputError\n }\n if (app.options.getValue('treatWarningsAsErrors') && app.logger.hasWarnings()) {\n return ExitCodes.OutputError\n }\n }\n console.log(chalk.green(`${pkgName} - Ok`))\n return ExitCodes.Ok\n}\n","import { readdirSync } from 'node:fs'\nimport path from 'node:path'\nimport { cwd } from 'node:process'\nimport { pathToFileURL } from 'node:url'\n\nimport chalk from 'chalk'\nimport { ESLint } from 'eslint'\nimport { findUp } from 'find-up'\nimport picomatch from 'picomatch'\n\nconst dumpMessages = (lintResults: ESLint.LintResult[]) => {\n const colors: ('white' | 'red' | 'yellow')[] = ['white', 'yellow', 'red']\n const severity: string[] = ['none', 'warning', 'error']\n\n for (const lintResult of lintResults) {\n if (lintResult.messages.length > 0) {\n console.log(chalk.gray(`\\n${lintResult.filePath}`))\n for (const message of lintResult.messages) {\n console.log(\n chalk.gray(`\\t${message.line}:${message.column}`),\n chalk[colors[message.severity]](`\\t${severity[message.severity]}`),\n chalk.white(`\\t${message.message}`),\n chalk.gray(`\\t${message.ruleId}`),\n )\n }\n }\n }\n}\n\nasync function getRootESLintConfig() {\n // Locate the root eslint.config.mjs\n const configPath = await findUp('eslint.config.mjs')\n\n if (configPath === undefined) {\n throw new Error('eslint.config.mjs not found in the monorepo')\n }\n\n return pathToFileURL(configPath)\n}\n\nfunction getFiles(dir: string, ignoreFolders: string[]): string[] {\n const currentDirectory = cwd()\n const subDirectory = dir.split(currentDirectory)[1]\n if (ignoreFolders.includes(subDirectory)) return []\n return readdirSync(dir, { withFileTypes: true })\n .flatMap((dirent) => {\n const res = path.resolve(dir, dirent.name)\n const relativePath = (subDirectory === undefined) ? dirent.name : `${subDirectory}/${dirent.name}`\n\n const ignoreMatchers = ignoreFolders.map(pattern => picomatch(pattern))\n\n // Exclude ignored paths\n if (ignoreMatchers.some(isMatch => isMatch(relativePath))) return []\n\n return dirent.isDirectory()\n ? getFiles(res, ignoreFolders)\n : [res]\n })\n}\n\nexport const packageLint = async (fix = false, verbose = false, cache = true) => {\n const pkg = process.env.INIT_CWD\n const configPath = await getRootESLintConfig()\n const { default: eslintConfig } = await import(configPath.href)\n\n const start = Date.now()\n\n // List of folders to ignore\n const ignoreFolders = ['node_modules', 'dist', 'packages', '.git', 'build', '.yarn', '.vscode', '.github']\n\n const engine = new ESLint({\n baseConfig: [...eslintConfig], fix, warnIgnored: false, cache,\n })\n\n const files = getFiles(cwd(), ignoreFolders)\n if (verbose) {\n console.log(chalk.green(`Linting ${pkg} [files = ${files.length}]`))\n }\n const lintResults = await engine.lintFiles(files)\n\n dumpMessages(lintResults)\n\n if (fix) {\n await ESLint.outputFixes(lintResults)\n }\n const filesCountColor = files.length < 100 ? 'green' : files.length < 1000 ? 'yellow' : 'red'\n const lintTime = Date.now() - start\n const lintTimeColor = lintTime < 1000 ? 'green' : lintTime < 3000 ? 'yellow' : 'red'\n console.log(chalk.white(`Linted ${chalk[filesCountColor](files.length)} files in ${chalk[lintTimeColor](lintTime)}ms`))\n return lintResults.reduce((prev, lintResult) => prev + lintResult.errorCount, 0)\n}\n","import { promises as fs } from 'node:fs'\n\nimport chalk from 'chalk'\nimport sortPackageJson from 'sort-package-json'\n\nexport interface PackagePublintParams { strict?: boolean; verbose?: boolean }\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst customPubLint = (pkg: any): [number, number] => {\n let errorCount = 0\n let warningCount = 0\n if (pkg.files === undefined) {\n console.error(chalk.yellow('Publint [custom]: \"files\" field is missing'))\n warningCount++\n }\n if (pkg.main !== undefined) {\n console.error(chalk.yellow('Publint [custom]: \"main\" field is deprecated, use \"exports\" instead'))\n warningCount++\n }\n if (pkg.sideEffects !== false) {\n console.error(chalk.yellow('Publint [custom]: \"sideEffects\" field should be set to false'))\n warningCount++\n }\n return [errorCount, warningCount]\n}\n\nexport const packagePublint = async ({ strict = true, verbose = false }: PackagePublintParams = {}) => {\n const pkgDir = process.env.INIT_CWD\n\n const sortedPkg = sortPackageJson(await fs.readFile(`${pkgDir}/package.json`, 'utf8'))\n await fs.writeFile(`${pkgDir}/package.json`, sortedPkg)\n\n const pkg = JSON.parse(await fs.readFile(`${pkgDir}/package.json`, 'utf8'))\n\n console.log(chalk.green(`Publint: ${pkg.name}`))\n console.log(chalk.gray(pkgDir))\n\n const { publint } = await import('publint')\n\n const { messages } = await publint({\n level: 'suggestion',\n pkgDir,\n strict,\n })\n\n // eslint-disable-next-line import-x/no-internal-modules\n const { formatMessage } = await import('publint/utils')\n\n for (const message of messages) {\n switch (message.type) {\n case 'error': {\n console.error(chalk.red(`[${message.code}] ${formatMessage(message, pkg)}`))\n break\n }\n case 'warning': {\n console.warn(chalk.yellow(`[${message.code}] ${formatMessage(message, pkg)}`))\n break\n }\n default: {\n console.log(chalk.white(`[${message.code}] ${formatMessage(message, pkg)}`))\n break\n }\n }\n }\n\n const [errorCount, warningCount] = customPubLint(pkg)\n\n if (verbose) {\n console.log(chalk.gray(`Publint [Finish]: ${pkgDir} [${messages.length + errorCount + warningCount} messages]`))\n }\n\n return messages.filter(message => message.type === 'error').length + errorCount\n}\n","import { packageClean } from './clean.ts'\nimport { packageCompile } from './compile/index.ts'\n\nexport const packageRecompile = async () => {\n return await packageClean() || await packageCompile()\n}\n"],"mappings":"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","names":["path","chalk","fs","glob","deleteGlob","globPath","files","glob","sync","file","fs","rmSync","recursive","force","chalk","cosmiconfig","TypeScriptLoader","deepmerge","config","loadConfig","params","undefined","cosmicConfigResult","cosmiconfig","cache","loaders","TypeScriptLoader","search","configFilePath","filepath","console","log","chalk","green","verbose","gray","JSON","stringify","deepmerge","packageCleanOutputs","pkg","process","env","INIT_CWD","pkgName","npm_package_name","folders","path","join","console","log","chalk","green","folder","deleteGlob","path","chalk","packageCleanTypescript","pkg","process","env","INIT_CWD","pkgName","npm_package_name","console","log","chalk","green","files","path","join","file","deleteGlob","packageClean","Promise","all","packageCleanOutputs","packageCleanTypescript","reduce","prev","value","chalk","chalk","build","defineConfig","chalk","glob","getAllInputs","srcDir","verbose","glob","sync","posix","map","file","result","slice","Math","max","length","console","log","chalk","gray","JSON","stringify","buildEntries","srcDir","entryMode","options","excludeSpecAndStories","verbose","entries","getAllInputs","filter","entry","includes","endsWith","Array","isArray","push","console","log","length","deepMerge","target","source","key","Object","keys","Array","isArray","deepMergeObjects","objects","result","obj","cwd","chalk","createProgramFromConfig","ts","DiagnosticCategory","formatDiagnosticsWithColorAndContext","getPreEmitDiagnostics","sys","cwd","deepmerge","getTsconfig","getCompilerOptions","options","fileName","resolvedTsConfigCompilerOptions","getTsconfig","cwd","config","compilerOptions","deepmerge","packageCompileTsc","platform","entries","srcDir","outDir","compilerOptionsParam","verbose","pkg","process","env","INIT_CWD","cwd","console","log","chalk","cyan","length","configFilePath","ts","findConfigFile","sys","fileExists","undefined","Error","compilerOptions","getCompilerOptions","removeComments","skipDefaultLibCheck","skipLibCheck","sourceMap","emitDeclarationOnly","noEmit","entry","grey","program","createProgramFromConfig","basePath","files","map","include","diagnostics","getPreEmitDiagnostics","formattedDiagnostics","formatDiagnosticsWithColorAndContext","getCanonicalFileName","fileName","getCurrentDirectory","getNewLine","newLine","error","emit","reduce","acc","diag","category","DiagnosticCategory","path","cwd","chalk","rollup","dts","nodeExternals","ignoredWarningCodes","Set","bundleDts","inputPath","outputPath","platform","options","verbose","pkg","process","env","INIT_CWD","cwd","tsconfigPath","path","resolve","nodePlugIns","nodeExternals","bundle","rollup","input","plugins","dts","tsconfig","compilerOptions","emitDeclarationOnly","noEmit","declarationMap","onwarn","warning","warn","has","code","console","chalk","yellow","message","gray","write","file","format","ex","error","red","log","packageCompileTscTypes","entries","outDir","srcDir","cyan","length","join","srcRoot","entryNameToTypeName","entry","splitEntryName","split","newEntryExtension","at","slice","getCompilerOptions","removeComments","skipDefaultLibCheck","skipLibCheck","entryNames","map","Promise","all","entryName","entryTypeName","compileFolder","srcDir","entries","buildDir","options","bundleTypes","verbose","outDir","console","log","length","warn","chalk","yellow","gray","validationResult","packageCompileTsc","platform","undefined","error","red","optionsParams","tsupOptions","bundle","cjsInterop","clean","dts","format","silent","sourcemap","splitting","tsconfig","entry","map","optionsResult","defineConfig","optionsList","Promise","all","Array","isArray","flatMap","result","flat","cyan","JSON","stringify","build","packageCompileTscTypes","standardLoaders","standardOptions","loader","outExtension","js","skipNodeModulesBundle","target","deepMergeObjects","packageCompileTsup","config","compile","outDirAsBuildDir","compileForNode","node","src","compileForBrowser","browser","compileForNeutral","neutral","Object","optionsObject","inEsBuildOptions","esbuildOptions","buildEntries","entryMode","rootOutDir","tsup","reduce","prev","value","packageCompile","inConfig","pkg","process","env","INIT_CWD","console","log","chalk","green","config","loadConfig","packageCompileTsup","path","chalk","cpy","copyTargetAssets","target","name","location","values","cpy","cwd","path","join","flat","length","console","log","chalk","green","toUpperCase","value","split","pop","ex","error","message","packageCopyAssets","pkg","process","env","INIT_CWD","pkgName","npm_package_name","cruise","packageCycle","pkg","process","env","INIT_CWD","pkgName","npm_package_name","cruiseOptions","ruleSet","forbidden","name","severity","comment","from","to","circular","exclude","validate","doNotFollow","path","tsPreCompilationDeps","combinedDependencies","outputType","target","console","log","result","cruise","output","exitCode","error","existsSync","path","chalk","Application","ArgumentsReader","TSConfigReader","TypeDocReader","ExitCodes","CompileError","ExceptionThrown","NoEntryPoints","Ok","OptionError","OutputError","ValidationError","packageGenDocs","pkg","process","env","INIT_CWD","undefined","existsSync","path","join","app","Application","bootstrap","entryPointStrategy","entryPoints","excludeExternals","json","logLevel","tsconfig","options","addReader","ArgumentsReader","TypeDocReader","TSConfigReader","runTypeDoc","pkgName","npm_package_name","getValue","console","log","toString","getRawValues","logger","hasErrors","hasWarnings","length","error","convertAndWatch","project","out","generateDocs","generateJson","convert","validate","chalk","green","readdirSync","path","cwd","pathToFileURL","chalk","ESLint","findUp","picomatch","dumpMessages","lintResults","colors","severity","lintResult","messages","length","console","log","chalk","gray","filePath","message","line","column","white","ruleId","getRootESLintConfig","configPath","findUp","undefined","Error","pathToFileURL","getFiles","dir","ignoreFolders","currentDirectory","cwd","subDirectory","split","includes","readdirSync","withFileTypes","flatMap","dirent","res","path","resolve","name","relativePath","ignoreMatchers","map","pattern","picomatch","some","isMatch","isDirectory","packageLint","fix","verbose","cache","pkg","process","env","INIT_CWD","default","eslintConfig","href","start","Date","now","engine","ESLint","baseConfig","warnIgnored","files","green","lintFiles","outputFixes","filesCountColor","lintTime","lintTimeColor","reduce","prev","errorCount","promises","fs","chalk","sortPackageJson","customPubLint","pkg","errorCount","warningCount","files","undefined","console","error","chalk","yellow","main","sideEffects","packagePublint","strict","verbose","pkgDir","process","env","INIT_CWD","sortedPkg","sortPackageJson","fs","readFile","writeFile","JSON","parse","log","green","name","gray","publint","messages","level","formatMessage","message","type","red","code","warn","white","length","filter","packageRecompile","packageClean","packageCompile"]}
|
|
@@ -5,6 +5,26 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
5
5
|
import { promises as fs } from "fs";
|
|
6
6
|
import chalk from "chalk";
|
|
7
7
|
import sortPackageJson from "sort-package-json";
|
|
8
|
+
var customPubLint = /* @__PURE__ */ __name((pkg) => {
|
|
9
|
+
let errorCount = 0;
|
|
10
|
+
let warningCount = 0;
|
|
11
|
+
if (pkg.files === void 0) {
|
|
12
|
+
console.error(chalk.yellow('Publint [custom]: "files" field is missing'));
|
|
13
|
+
warningCount++;
|
|
14
|
+
}
|
|
15
|
+
if (pkg.main !== void 0) {
|
|
16
|
+
console.error(chalk.yellow('Publint [custom]: "main" field is deprecated, use "exports" instead'));
|
|
17
|
+
warningCount++;
|
|
18
|
+
}
|
|
19
|
+
if (pkg.sideEffects !== false) {
|
|
20
|
+
console.error(chalk.yellow('Publint [custom]: "sideEffects" field should be set to false'));
|
|
21
|
+
warningCount++;
|
|
22
|
+
}
|
|
23
|
+
return [
|
|
24
|
+
errorCount,
|
|
25
|
+
warningCount
|
|
26
|
+
];
|
|
27
|
+
}, "customPubLint");
|
|
8
28
|
var packagePublint = /* @__PURE__ */ __name(async ({ strict = true, verbose = false } = {}) => {
|
|
9
29
|
const pkgDir = process.env.INIT_CWD;
|
|
10
30
|
const sortedPkg = sortPackageJson(await fs.readFile(`${pkgDir}/package.json`, "utf8"));
|
|
@@ -19,11 +39,7 @@ var packagePublint = /* @__PURE__ */ __name(async ({ strict = true, verbose = fa
|
|
|
19
39
|
strict
|
|
20
40
|
});
|
|
21
41
|
const { formatMessage } = await import("publint/utils");
|
|
22
|
-
const
|
|
23
|
-
return true;
|
|
24
|
-
}, "validMessage");
|
|
25
|
-
const validMessages = messages.filter(validMessage);
|
|
26
|
-
for (const message of validMessages) {
|
|
42
|
+
for (const message of messages) {
|
|
27
43
|
switch (message.type) {
|
|
28
44
|
case "error": {
|
|
29
45
|
console.error(chalk.red(`[${message.code}] ${formatMessage(message, pkg)}`));
|
|
@@ -39,10 +55,11 @@ var packagePublint = /* @__PURE__ */ __name(async ({ strict = true, verbose = fa
|
|
|
39
55
|
}
|
|
40
56
|
}
|
|
41
57
|
}
|
|
58
|
+
const [errorCount, warningCount] = customPubLint(pkg);
|
|
42
59
|
if (verbose) {
|
|
43
|
-
console.log(chalk.gray(`Publint [Finish]: ${pkgDir} [${
|
|
60
|
+
console.log(chalk.gray(`Publint [Finish]: ${pkgDir} [${messages.length + errorCount + warningCount} messages]`));
|
|
44
61
|
}
|
|
45
|
-
return
|
|
62
|
+
return messages.filter((message) => message.type === "error").length + errorCount;
|
|
46
63
|
}, "packagePublint");
|
|
47
64
|
export {
|
|
48
65
|
packagePublint
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/actions/package/publint.ts"],"sourcesContent":["import { promises as fs } from 'node:fs'\n\nimport chalk from 'chalk'\nimport
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/package/publint.ts"],"sourcesContent":["import { promises as fs } from 'node:fs'\n\nimport chalk from 'chalk'\nimport sortPackageJson from 'sort-package-json'\n\nexport interface PackagePublintParams { strict?: boolean; verbose?: boolean }\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst customPubLint = (pkg: any): [number, number] => {\n let errorCount = 0\n let warningCount = 0\n if (pkg.files === undefined) {\n console.error(chalk.yellow('Publint [custom]: \"files\" field is missing'))\n warningCount++\n }\n if (pkg.main !== undefined) {\n console.error(chalk.yellow('Publint [custom]: \"main\" field is deprecated, use \"exports\" instead'))\n warningCount++\n }\n if (pkg.sideEffects !== false) {\n console.error(chalk.yellow('Publint [custom]: \"sideEffects\" field should be set to false'))\n warningCount++\n }\n return [errorCount, warningCount]\n}\n\nexport const packagePublint = async ({ strict = true, verbose = false }: PackagePublintParams = {}) => {\n const pkgDir = process.env.INIT_CWD\n\n const sortedPkg = sortPackageJson(await fs.readFile(`${pkgDir}/package.json`, 'utf8'))\n await fs.writeFile(`${pkgDir}/package.json`, sortedPkg)\n\n const pkg = JSON.parse(await fs.readFile(`${pkgDir}/package.json`, 'utf8'))\n\n console.log(chalk.green(`Publint: ${pkg.name}`))\n console.log(chalk.gray(pkgDir))\n\n const { publint } = await import('publint')\n\n const { messages } = await publint({\n level: 'suggestion',\n pkgDir,\n strict,\n })\n\n // eslint-disable-next-line import-x/no-internal-modules\n const { formatMessage } = await import('publint/utils')\n\n for (const message of messages) {\n switch (message.type) {\n case 'error': {\n console.error(chalk.red(`[${message.code}] ${formatMessage(message, pkg)}`))\n break\n }\n case 'warning': {\n console.warn(chalk.yellow(`[${message.code}] ${formatMessage(message, pkg)}`))\n break\n }\n default: {\n console.log(chalk.white(`[${message.code}] ${formatMessage(message, pkg)}`))\n break\n }\n }\n }\n\n const [errorCount, warningCount] = customPubLint(pkg)\n\n if (verbose) {\n console.log(chalk.gray(`Publint [Finish]: ${pkgDir} [${messages.length + errorCount + warningCount} messages]`))\n }\n\n return messages.filter(message => message.type === 'error').length + errorCount\n}\n"],"mappings":";;;;AAAA,SAASA,YAAYC,UAAU;AAE/B,OAAOC,WAAW;AAClB,OAAOC,qBAAqB;AAK5B,IAAMC,gBAAgB,wBAACC,QAAAA;AACrB,MAAIC,aAAa;AACjB,MAAIC,eAAe;AACnB,MAAIF,IAAIG,UAAUC,QAAW;AAC3BC,YAAQC,MAAMC,MAAMC,OAAO,4CAAA,CAAA;AAC3BN;EACF;AACA,MAAIF,IAAIS,SAASL,QAAW;AAC1BC,YAAQC,MAAMC,MAAMC,OAAO,qEAAA,CAAA;AAC3BN;EACF;AACA,MAAIF,IAAIU,gBAAgB,OAAO;AAC7BL,YAAQC,MAAMC,MAAMC,OAAO,8DAAA,CAAA;AAC3BN;EACF;AACA,SAAO;IAACD;IAAYC;;AACtB,GAhBsB;AAkBf,IAAMS,iBAAiB,8BAAO,EAAEC,SAAS,MAAMC,UAAU,MAAK,IAA2B,CAAC,MAAC;AAChG,QAAMC,SAASC,QAAQC,IAAIC;AAE3B,QAAMC,YAAYC,gBAAgB,MAAMC,GAAGC,SAAS,GAAGP,MAAAA,iBAAuB,MAAA,CAAA;AAC9E,QAAMM,GAAGE,UAAU,GAAGR,MAAAA,iBAAuBI,SAAAA;AAE7C,QAAMlB,MAAMuB,KAAKC,MAAM,MAAMJ,GAAGC,SAAS,GAAGP,MAAAA,iBAAuB,MAAA,CAAA;AAEnET,UAAQoB,IAAIlB,MAAMmB,MAAM,YAAY1B,IAAI2B,IAAI,EAAE,CAAA;AAC9CtB,UAAQoB,IAAIlB,MAAMqB,KAAKd,MAAAA,CAAAA;AAEvB,QAAM,EAAEe,QAAO,IAAK,MAAM,OAAO,SAAA;AAEjC,QAAM,EAAEC,SAAQ,IAAK,MAAMD,QAAQ;IACjCE,OAAO;IACPjB;IACAF;EACF,CAAA;AAGA,QAAM,EAAEoB,cAAa,IAAK,MAAM,OAAO,eAAA;AAEvC,aAAWC,WAAWH,UAAU;AAC9B,YAAQG,QAAQC,MAAI;MAClB,KAAK,SAAS;AACZ7B,gBAAQC,MAAMC,MAAM4B,IAAI,IAAIF,QAAQG,IAAI,KAAKJ,cAAcC,SAASjC,GAAAA,CAAAA,EAAM,CAAA;AAC1E;MACF;MACA,KAAK,WAAW;AACdK,gBAAQgC,KAAK9B,MAAMC,OAAO,IAAIyB,QAAQG,IAAI,KAAKJ,cAAcC,SAASjC,GAAAA,CAAAA,EAAM,CAAA;AAC5E;MACF;MACA,SAAS;AACPK,gBAAQoB,IAAIlB,MAAM+B,MAAM,IAAIL,QAAQG,IAAI,KAAKJ,cAAcC,SAASjC,GAAAA,CAAAA,EAAM,CAAA;AAC1E;MACF;IACF;EACF;AAEA,QAAM,CAACC,YAAYC,YAAAA,IAAgBH,cAAcC,GAAAA;AAEjD,MAAIa,SAAS;AACXR,YAAQoB,IAAIlB,MAAMqB,KAAK,qBAAqBd,MAAAA,KAAWgB,SAASS,SAAStC,aAAaC,YAAAA,YAAwB,CAAA;EAChH;AAEA,SAAO4B,SAASU,OAAOP,CAAAA,YAAWA,QAAQC,SAAS,OAAA,EAASK,SAAStC;AACvE,GA9C8B;","names":["promises","fs","chalk","sortPackageJson","customPubLint","pkg","errorCount","warningCount","files","undefined","console","error","chalk","yellow","main","sideEffects","packagePublint","strict","verbose","pkgDir","process","env","INIT_CWD","sortedPkg","sortPackageJson","fs","readFile","writeFile","JSON","parse","log","green","name","gray","publint","messages","level","formatMessage","message","type","red","code","warn","white","length","filter"]}
|
|
@@ -9,6 +9,26 @@ import chalk2 from "chalk";
|
|
|
9
9
|
import { promises as fs } from "fs";
|
|
10
10
|
import chalk from "chalk";
|
|
11
11
|
import sortPackageJson from "sort-package-json";
|
|
12
|
+
var customPubLint = /* @__PURE__ */ __name((pkg) => {
|
|
13
|
+
let errorCount = 0;
|
|
14
|
+
let warningCount = 0;
|
|
15
|
+
if (pkg.files === void 0) {
|
|
16
|
+
console.error(chalk.yellow('Publint [custom]: "files" field is missing'));
|
|
17
|
+
warningCount++;
|
|
18
|
+
}
|
|
19
|
+
if (pkg.main !== void 0) {
|
|
20
|
+
console.error(chalk.yellow('Publint [custom]: "main" field is deprecated, use "exports" instead'));
|
|
21
|
+
warningCount++;
|
|
22
|
+
}
|
|
23
|
+
if (pkg.sideEffects !== false) {
|
|
24
|
+
console.error(chalk.yellow('Publint [custom]: "sideEffects" field should be set to false'));
|
|
25
|
+
warningCount++;
|
|
26
|
+
}
|
|
27
|
+
return [
|
|
28
|
+
errorCount,
|
|
29
|
+
warningCount
|
|
30
|
+
];
|
|
31
|
+
}, "customPubLint");
|
|
12
32
|
var packagePublint = /* @__PURE__ */ __name(async ({ strict = true, verbose = false } = {}) => {
|
|
13
33
|
const pkgDir = process.env.INIT_CWD;
|
|
14
34
|
const sortedPkg = sortPackageJson(await fs.readFile(`${pkgDir}/package.json`, "utf8"));
|
|
@@ -23,11 +43,7 @@ var packagePublint = /* @__PURE__ */ __name(async ({ strict = true, verbose = fa
|
|
|
23
43
|
strict
|
|
24
44
|
});
|
|
25
45
|
const { formatMessage } = await import("publint/utils");
|
|
26
|
-
const
|
|
27
|
-
return true;
|
|
28
|
-
}, "validMessage");
|
|
29
|
-
const validMessages = messages.filter(validMessage);
|
|
30
|
-
for (const message of validMessages) {
|
|
46
|
+
for (const message of messages) {
|
|
31
47
|
switch (message.type) {
|
|
32
48
|
case "error": {
|
|
33
49
|
console.error(chalk.red(`[${message.code}] ${formatMessage(message, pkg)}`));
|
|
@@ -43,10 +59,11 @@ var packagePublint = /* @__PURE__ */ __name(async ({ strict = true, verbose = fa
|
|
|
43
59
|
}
|
|
44
60
|
}
|
|
45
61
|
}
|
|
62
|
+
const [errorCount, warningCount] = customPubLint(pkg);
|
|
46
63
|
if (verbose) {
|
|
47
|
-
console.log(chalk.gray(`Publint [Finish]: ${pkgDir} [${
|
|
64
|
+
console.log(chalk.gray(`Publint [Finish]: ${pkgDir} [${messages.length + errorCount + warningCount} messages]`));
|
|
48
65
|
}
|
|
49
|
-
return
|
|
66
|
+
return messages.filter((message) => message.type === "error").length + errorCount;
|
|
50
67
|
}, "packagePublint");
|
|
51
68
|
|
|
52
69
|
// src/bin/package/publint.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/bin/package/publint.ts","../../../src/actions/package/publint.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport chalk from 'chalk'\n\nimport { packagePublint } from '../../actions/index.ts'\n\npackagePublint()\n .then(value => (process.exitCode = value))\n .catch((ex: Error) => {\n console.error(`Publint Failed: ${chalk.red(ex)}`)\n console.error(chalk.gray(ex.stack))\n process.exitCode = -1\n })\n","import { promises as fs } from 'node:fs'\n\nimport chalk from 'chalk'\nimport
|
|
1
|
+
{"version":3,"sources":["../../../src/bin/package/publint.ts","../../../src/actions/package/publint.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport chalk from 'chalk'\n\nimport { packagePublint } from '../../actions/index.ts'\n\npackagePublint()\n .then(value => (process.exitCode = value))\n .catch((ex: Error) => {\n console.error(`Publint Failed: ${chalk.red(ex)}`)\n console.error(chalk.gray(ex.stack))\n process.exitCode = -1\n })\n","import { promises as fs } from 'node:fs'\n\nimport chalk from 'chalk'\nimport sortPackageJson from 'sort-package-json'\n\nexport interface PackagePublintParams { strict?: boolean; verbose?: boolean }\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst customPubLint = (pkg: any): [number, number] => {\n let errorCount = 0\n let warningCount = 0\n if (pkg.files === undefined) {\n console.error(chalk.yellow('Publint [custom]: \"files\" field is missing'))\n warningCount++\n }\n if (pkg.main !== undefined) {\n console.error(chalk.yellow('Publint [custom]: \"main\" field is deprecated, use \"exports\" instead'))\n warningCount++\n }\n if (pkg.sideEffects !== false) {\n console.error(chalk.yellow('Publint [custom]: \"sideEffects\" field should be set to false'))\n warningCount++\n }\n return [errorCount, warningCount]\n}\n\nexport const packagePublint = async ({ strict = true, verbose = false }: PackagePublintParams = {}) => {\n const pkgDir = process.env.INIT_CWD\n\n const sortedPkg = sortPackageJson(await fs.readFile(`${pkgDir}/package.json`, 'utf8'))\n await fs.writeFile(`${pkgDir}/package.json`, sortedPkg)\n\n const pkg = JSON.parse(await fs.readFile(`${pkgDir}/package.json`, 'utf8'))\n\n console.log(chalk.green(`Publint: ${pkg.name}`))\n console.log(chalk.gray(pkgDir))\n\n const { publint } = await import('publint')\n\n const { messages } = await publint({\n level: 'suggestion',\n pkgDir,\n strict,\n })\n\n // eslint-disable-next-line import-x/no-internal-modules\n const { formatMessage } = await import('publint/utils')\n\n for (const message of messages) {\n switch (message.type) {\n case 'error': {\n console.error(chalk.red(`[${message.code}] ${formatMessage(message, pkg)}`))\n break\n }\n case 'warning': {\n console.warn(chalk.yellow(`[${message.code}] ${formatMessage(message, pkg)}`))\n break\n }\n default: {\n console.log(chalk.white(`[${message.code}] ${formatMessage(message, pkg)}`))\n break\n }\n }\n }\n\n const [errorCount, warningCount] = customPubLint(pkg)\n\n if (verbose) {\n console.log(chalk.gray(`Publint [Finish]: ${pkgDir} [${messages.length + errorCount + warningCount} messages]`))\n }\n\n return messages.filter(message => message.type === 'error').length + errorCount\n}\n"],"mappings":";;;;;AAEA,OAAOA,YAAW;;;ACFlB,SAASC,YAAYC,UAAU;AAE/B,OAAOC,WAAW;AAClB,OAAOC,qBAAqB;AAK5B,IAAMC,gBAAgB,wBAACC,QAAAA;AACrB,MAAIC,aAAa;AACjB,MAAIC,eAAe;AACnB,MAAIF,IAAIG,UAAUC,QAAW;AAC3BC,YAAQC,MAAMC,MAAMC,OAAO,4CAAA,CAAA;AAC3BN;EACF;AACA,MAAIF,IAAIS,SAASL,QAAW;AAC1BC,YAAQC,MAAMC,MAAMC,OAAO,qEAAA,CAAA;AAC3BN;EACF;AACA,MAAIF,IAAIU,gBAAgB,OAAO;AAC7BL,YAAQC,MAAMC,MAAMC,OAAO,8DAAA,CAAA;AAC3BN;EACF;AACA,SAAO;IAACD;IAAYC;;AACtB,GAhBsB;AAkBf,IAAMS,iBAAiB,8BAAO,EAAEC,SAAS,MAAMC,UAAU,MAAK,IAA2B,CAAC,MAAC;AAChG,QAAMC,SAASC,QAAQC,IAAIC;AAE3B,QAAMC,YAAYC,gBAAgB,MAAMC,GAAGC,SAAS,GAAGP,MAAAA,iBAAuB,MAAA,CAAA;AAC9E,QAAMM,GAAGE,UAAU,GAAGR,MAAAA,iBAAuBI,SAAAA;AAE7C,QAAMlB,MAAMuB,KAAKC,MAAM,MAAMJ,GAAGC,SAAS,GAAGP,MAAAA,iBAAuB,MAAA,CAAA;AAEnET,UAAQoB,IAAIlB,MAAMmB,MAAM,YAAY1B,IAAI2B,IAAI,EAAE,CAAA;AAC9CtB,UAAQoB,IAAIlB,MAAMqB,KAAKd,MAAAA,CAAAA;AAEvB,QAAM,EAAEe,QAAO,IAAK,MAAM,OAAO,SAAA;AAEjC,QAAM,EAAEC,SAAQ,IAAK,MAAMD,QAAQ;IACjCE,OAAO;IACPjB;IACAF;EACF,CAAA;AAGA,QAAM,EAAEoB,cAAa,IAAK,MAAM,OAAO,eAAA;AAEvC,aAAWC,WAAWH,UAAU;AAC9B,YAAQG,QAAQC,MAAI;MAClB,KAAK,SAAS;AACZ7B,gBAAQC,MAAMC,MAAM4B,IAAI,IAAIF,QAAQG,IAAI,KAAKJ,cAAcC,SAASjC,GAAAA,CAAAA,EAAM,CAAA;AAC1E;MACF;MACA,KAAK,WAAW;AACdK,gBAAQgC,KAAK9B,MAAMC,OAAO,IAAIyB,QAAQG,IAAI,KAAKJ,cAAcC,SAASjC,GAAAA,CAAAA,EAAM,CAAA;AAC5E;MACF;MACA,SAAS;AACPK,gBAAQoB,IAAIlB,MAAM+B,MAAM,IAAIL,QAAQG,IAAI,KAAKJ,cAAcC,SAASjC,GAAAA,CAAAA,EAAM,CAAA;AAC1E;MACF;IACF;EACF;AAEA,QAAM,CAACC,YAAYC,YAAAA,IAAgBH,cAAcC,GAAAA;AAEjD,MAAIa,SAAS;AACXR,YAAQoB,IAAIlB,MAAMqB,KAAK,qBAAqBd,MAAAA,KAAWgB,SAASS,SAAStC,aAAaC,YAAAA,YAAwB,CAAA;EAChH;AAEA,SAAO4B,SAASU,OAAOP,CAAAA,YAAWA,QAAQC,SAAS,OAAA,EAASK,SAAStC;AACvE,GA9C8B;;;ADpB9BwC,eAAAA,EACGC,KAAKC,CAAAA,UAAUC,QAAQC,WAAWF,KAAAA,EAClCG,MAAM,CAACC,OAAAA;AACNC,UAAQC,MAAM,mBAAmBC,OAAMC,IAAIJ,EAAAA,CAAAA,EAAK;AAChDC,UAAQC,MAAMC,OAAME,KAAKL,GAAGM,KAAK,CAAA;AACjCT,UAAQC,WAAW;AACrB,CAAA;","names":["chalk","promises","fs","chalk","sortPackageJson","customPubLint","pkg","errorCount","warningCount","files","undefined","console","error","chalk","yellow","main","sideEffects","packagePublint","strict","verbose","pkgDir","process","env","INIT_CWD","sortedPkg","sortPackageJson","fs","readFile","writeFile","JSON","parse","log","green","name","gray","publint","messages","level","formatMessage","message","type","red","code","warn","white","length","filter","packagePublint","then","value","process","exitCode","catch","ex","console","error","chalk","red","gray","stack"]}
|
package/dist/index.mjs
CHANGED
|
@@ -2424,6 +2424,26 @@ var packageLint = /* @__PURE__ */ __name(async (fix2 = false, verbose = false, c
|
|
|
2424
2424
|
import { promises as fs4 } from "fs";
|
|
2425
2425
|
import chalk33 from "chalk";
|
|
2426
2426
|
import sortPackageJson from "sort-package-json";
|
|
2427
|
+
var customPubLint = /* @__PURE__ */ __name((pkg) => {
|
|
2428
|
+
let errorCount = 0;
|
|
2429
|
+
let warningCount = 0;
|
|
2430
|
+
if (pkg.files === void 0) {
|
|
2431
|
+
console.error(chalk33.yellow('Publint [custom]: "files" field is missing'));
|
|
2432
|
+
warningCount++;
|
|
2433
|
+
}
|
|
2434
|
+
if (pkg.main !== void 0) {
|
|
2435
|
+
console.error(chalk33.yellow('Publint [custom]: "main" field is deprecated, use "exports" instead'));
|
|
2436
|
+
warningCount++;
|
|
2437
|
+
}
|
|
2438
|
+
if (pkg.sideEffects !== false) {
|
|
2439
|
+
console.error(chalk33.yellow('Publint [custom]: "sideEffects" field should be set to false'));
|
|
2440
|
+
warningCount++;
|
|
2441
|
+
}
|
|
2442
|
+
return [
|
|
2443
|
+
errorCount,
|
|
2444
|
+
warningCount
|
|
2445
|
+
];
|
|
2446
|
+
}, "customPubLint");
|
|
2427
2447
|
var packagePublint = /* @__PURE__ */ __name(async ({ strict = true, verbose = false } = {}) => {
|
|
2428
2448
|
const pkgDir = process.env.INIT_CWD;
|
|
2429
2449
|
const sortedPkg = sortPackageJson(await fs4.readFile(`${pkgDir}/package.json`, "utf8"));
|
|
@@ -2438,11 +2458,7 @@ var packagePublint = /* @__PURE__ */ __name(async ({ strict = true, verbose = fa
|
|
|
2438
2458
|
strict
|
|
2439
2459
|
});
|
|
2440
2460
|
const { formatMessage } = await import("publint/utils");
|
|
2441
|
-
const
|
|
2442
|
-
return true;
|
|
2443
|
-
}, "validMessage");
|
|
2444
|
-
const validMessages = messages.filter(validMessage);
|
|
2445
|
-
for (const message of validMessages) {
|
|
2461
|
+
for (const message of messages) {
|
|
2446
2462
|
switch (message.type) {
|
|
2447
2463
|
case "error": {
|
|
2448
2464
|
console.error(chalk33.red(`[${message.code}] ${formatMessage(message, pkg)}`));
|
|
@@ -2458,10 +2474,11 @@ var packagePublint = /* @__PURE__ */ __name(async ({ strict = true, verbose = fa
|
|
|
2458
2474
|
}
|
|
2459
2475
|
}
|
|
2460
2476
|
}
|
|
2477
|
+
const [errorCount, warningCount] = customPubLint(pkg);
|
|
2461
2478
|
if (verbose) {
|
|
2462
|
-
console.log(chalk33.gray(`Publint [Finish]: ${pkgDir} [${
|
|
2479
|
+
console.log(chalk33.gray(`Publint [Finish]: ${pkgDir} [${messages.length + errorCount + warningCount} messages]`));
|
|
2463
2480
|
}
|
|
2464
|
-
return
|
|
2481
|
+
return messages.filter((message) => message.type === "error").length + errorCount;
|
|
2465
2482
|
}, "packagePublint");
|
|
2466
2483
|
|
|
2467
2484
|
// src/actions/package/recompile.ts
|