@xylabs/toolchain 7.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/analyze.mjs +140 -0
- package/dist/actions/analyze.mjs.map +1 -0
- package/dist/actions/build.mjs +173 -0
- package/dist/actions/build.mjs.map +1 -0
- package/dist/actions/claude-check.mjs +199 -0
- package/dist/actions/claude-check.mjs.map +1 -0
- package/dist/actions/claude-clean.mjs +70 -0
- package/dist/actions/claude-clean.mjs.map +1 -0
- package/dist/actions/claude-commands.mjs +126 -0
- package/dist/actions/claude-commands.mjs.map +1 -0
- package/dist/actions/claude-rules.mjs +151 -0
- package/dist/actions/claude-rules.mjs.map +1 -0
- package/dist/actions/claude-settings.mjs +99 -0
- package/dist/actions/claude-settings.mjs.map +1 -0
- package/dist/actions/claude-skills.mjs +131 -0
- package/dist/actions/claude-skills.mjs.map +1 -0
- package/dist/actions/clean-docs.mjs +66 -0
- package/dist/actions/clean-docs.mjs.map +1 -0
- package/dist/actions/clean-eslint.mjs +47 -0
- package/dist/actions/clean-eslint.mjs.map +1 -0
- package/dist/actions/clean.mjs +166 -0
- package/dist/actions/clean.mjs.map +1 -0
- package/dist/actions/compile.mjs +184 -0
- package/dist/actions/compile.mjs.map +1 -0
- package/dist/actions/copy-assets.mjs +81 -0
- package/dist/actions/copy-assets.mjs.map +1 -0
- package/dist/actions/cycle.mjs +275 -0
- package/dist/actions/cycle.mjs.map +1 -0
- package/dist/actions/dead.mjs +119 -0
- package/dist/actions/dead.mjs.map +1 -0
- package/dist/actions/deplint/checkPackage/checkPackage.mjs +1556 -0
- package/dist/actions/deplint/checkPackage/checkPackage.mjs.map +1 -0
- package/dist/actions/deplint/checkPackage/checkPackageTypes.mjs +1 -0
- package/dist/actions/deplint/checkPackage/checkPackageTypes.mjs.map +1 -0
- package/dist/actions/deplint/checkPackage/getMismatchedPeerDevVersions.mjs +77 -0
- package/dist/actions/deplint/checkPackage/getMismatchedPeerDevVersions.mjs.map +1 -0
- package/dist/actions/deplint/checkPackage/getUnlistedDependencies.mjs +158 -0
- package/dist/actions/deplint/checkPackage/getUnlistedDependencies.mjs.map +1 -0
- package/dist/actions/deplint/checkPackage/getUnlistedDevDependencies.mjs +125 -0
- package/dist/actions/deplint/checkPackage/getUnlistedDevDependencies.mjs.map +1 -0
- package/dist/actions/deplint/checkPackage/getUnnecessaryPeerDependencies.mjs +207 -0
- package/dist/actions/deplint/checkPackage/getUnnecessaryPeerDependencies.mjs.map +1 -0
- package/dist/actions/deplint/checkPackage/getUnsatisfiedPeerDependencies.mjs +318 -0
- package/dist/actions/deplint/checkPackage/getUnsatisfiedPeerDependencies.mjs.map +1 -0
- package/dist/actions/deplint/checkPackage/getUnusedDependencies.mjs +163 -0
- package/dist/actions/deplint/checkPackage/getUnusedDependencies.mjs.map +1 -0
- package/dist/actions/deplint/checkPackage/getUnusedDevDependencies.mjs +408 -0
- package/dist/actions/deplint/checkPackage/getUnusedDevDependencies.mjs.map +1 -0
- package/dist/actions/deplint/checkPackage/getUnusedPeerDependencies.mjs +75 -0
- package/dist/actions/deplint/checkPackage/getUnusedPeerDependencies.mjs.map +1 -0
- package/dist/actions/deplint/checkPackage/getWorkspaceVersionProblems.mjs +128 -0
- package/dist/actions/deplint/checkPackage/getWorkspaceVersionProblems.mjs.map +1 -0
- package/dist/actions/deplint/checkPackage/index.mjs +1609 -0
- package/dist/actions/deplint/checkPackage/index.mjs.map +1 -0
- package/dist/actions/deplint/deplint.mjs +1840 -0
- package/dist/actions/deplint/deplint.mjs.map +1 -0
- package/dist/actions/deplint/engine.mjs +1736 -0
- package/dist/actions/deplint/engine.mjs.map +1 -0
- package/dist/actions/deplint/findFiles.mjs +39 -0
- package/dist/actions/deplint/findFiles.mjs.map +1 -0
- package/dist/actions/deplint/findFilesByGlob.mjs +14 -0
- package/dist/actions/deplint/findFilesByGlob.mjs.map +1 -0
- package/dist/actions/deplint/fixer.mjs +103 -0
- package/dist/actions/deplint/fixer.mjs.map +1 -0
- package/dist/actions/deplint/getBasePackageName.mjs +13 -0
- package/dist/actions/deplint/getBasePackageName.mjs.map +1 -0
- package/dist/actions/deplint/getCliReferencedPackagesFromFiles.mjs +140 -0
- package/dist/actions/deplint/getCliReferencedPackagesFromFiles.mjs.map +1 -0
- package/dist/actions/deplint/getDependenciesFromPackageJson.mjs +29 -0
- package/dist/actions/deplint/getDependenciesFromPackageJson.mjs.map +1 -0
- package/dist/actions/deplint/getExtendsFromTsconfigs.mjs +68 -0
- package/dist/actions/deplint/getExtendsFromTsconfigs.mjs.map +1 -0
- package/dist/actions/deplint/getExternalImportsFromFiles.mjs +143 -0
- package/dist/actions/deplint/getExternalImportsFromFiles.mjs.map +1 -0
- package/dist/actions/deplint/getImportsFromFile.mjs +85 -0
- package/dist/actions/deplint/getImportsFromFile.mjs.map +1 -0
- package/dist/actions/deplint/getRequiredPeerDependencies.mjs +37 -0
- package/dist/actions/deplint/getRequiredPeerDependencies.mjs.map +1 -0
- package/dist/actions/deplint/getScriptReferencedPackages.mjs +83 -0
- package/dist/actions/deplint/getScriptReferencedPackages.mjs.map +1 -0
- package/dist/actions/deplint/implicitDevDependencies.mjs +116 -0
- package/dist/actions/deplint/implicitDevDependencies.mjs.map +1 -0
- package/dist/actions/deplint/index.mjs +1848 -0
- package/dist/actions/deplint/index.mjs.map +1 -0
- package/dist/actions/deplint/packageEditor.mjs +82 -0
- package/dist/actions/deplint/packageEditor.mjs.map +1 -0
- package/dist/actions/deplint/packageJsonEditor.mjs +101 -0
- package/dist/actions/deplint/packageJsonEditor.mjs.map +1 -0
- package/dist/actions/deplint/reporters.mjs +36 -0
- package/dist/actions/deplint/reporters.mjs.map +1 -0
- package/dist/actions/deplint/rules.mjs +1223 -0
- package/dist/actions/deplint/rules.mjs.map +1 -0
- package/dist/actions/deplint/snapshot.mjs +372 -0
- package/dist/actions/deplint/snapshot.mjs.map +1 -0
- package/dist/actions/deplint/tsScriptsAliases.mjs +20 -0
- package/dist/actions/deplint/tsScriptsAliases.mjs.map +1 -0
- package/dist/actions/deplint/types.mjs +1 -0
- package/dist/actions/deplint/types.mjs.map +1 -0
- package/dist/actions/deploy.mjs +194 -0
- package/dist/actions/deploy.mjs.map +1 -0
- package/dist/actions/dupdeps.mjs +226 -0
- package/dist/actions/dupdeps.mjs.map +1 -0
- package/dist/actions/eject.mjs +142 -0
- package/dist/actions/eject.mjs.map +1 -0
- package/dist/actions/fix.mjs +359 -0
- package/dist/actions/fix.mjs.map +1 -0
- package/dist/actions/gen-docs.mjs +155 -0
- package/dist/actions/gen-docs.mjs.map +1 -0
- package/dist/actions/gitignore.mjs +159 -0
- package/dist/actions/gitignore.mjs.map +1 -0
- package/dist/actions/gitlint-fix.mjs +27 -0
- package/dist/actions/gitlint-fix.mjs.map +1 -0
- package/dist/actions/gitlint.mjs +48 -0
- package/dist/actions/gitlint.mjs.map +1 -0
- package/dist/actions/index.mjs +8259 -0
- package/dist/actions/index.mjs.map +1 -0
- package/dist/actions/knip.mjs +119 -0
- package/dist/actions/knip.mjs.map +1 -0
- package/dist/actions/license.mjs +92 -0
- package/dist/actions/license.mjs.map +1 -0
- package/dist/actions/lint-init.mjs +275 -0
- package/dist/actions/lint-init.mjs.map +1 -0
- package/dist/actions/lint.mjs +356 -0
- package/dist/actions/lint.mjs.map +1 -0
- package/dist/actions/lintNext.mjs +209 -0
- package/dist/actions/lintNext.mjs.map +1 -0
- package/dist/actions/lintlint.mjs +341 -0
- package/dist/actions/lintlint.mjs.map +1 -0
- package/dist/actions/npmignore-gen.mjs +90 -0
- package/dist/actions/npmignore-gen.mjs.map +1 -0
- package/dist/actions/orphan.mjs +110 -0
- package/dist/actions/orphan.mjs.map +1 -0
- package/dist/actions/package/clean-outputs.mjs +50 -0
- package/dist/actions/package/clean-outputs.mjs.map +1 -0
- package/dist/actions/package/clean-typescript.mjs +50 -0
- package/dist/actions/package/clean-typescript.mjs.map +1 -0
- package/dist/actions/package/clean.mjs +69 -0
- package/dist/actions/package/clean.mjs.map +1 -0
- package/dist/actions/package/compile/XyConfig.mjs +32 -0
- package/dist/actions/package/compile/XyConfig.mjs.map +1 -0
- package/dist/actions/package/compile/buildEntries.mjs +53 -0
- package/dist/actions/package/compile/buildEntries.mjs.map +1 -0
- package/dist/actions/package/compile/compile.mjs +439 -0
- package/dist/actions/package/compile/compile.mjs.map +1 -0
- package/dist/actions/package/compile/copyTypeFiles.mjs +34 -0
- package/dist/actions/package/compile/copyTypeFiles.mjs.map +1 -0
- package/dist/actions/package/compile/deepMerge.mjs +27 -0
- package/dist/actions/package/compile/deepMerge.mjs.map +1 -0
- package/dist/actions/package/compile/getCompilerOptions.mjs +12 -0
- package/dist/actions/package/compile/getCompilerOptions.mjs.map +1 -0
- package/dist/actions/package/compile/index.mjs +472 -0
- package/dist/actions/package/compile/index.mjs.map +1 -0
- package/dist/actions/package/compile/inputs.mjs +22 -0
- package/dist/actions/package/compile/inputs.mjs.map +1 -0
- package/dist/actions/package/compile/packageCompileTsc.mjs +93 -0
- package/dist/actions/package/compile/packageCompileTsc.mjs.map +1 -0
- package/dist/actions/package/compile/packageCompileTscTypes.mjs +92 -0
- package/dist/actions/package/compile/packageCompileTscTypes.mjs.map +1 -0
- package/dist/actions/package/compile/packageCompileTsup.mjs +402 -0
- package/dist/actions/package/compile/packageCompileTsup.mjs.map +1 -0
- package/dist/actions/package/copy-assets.mjs +69 -0
- package/dist/actions/package/copy-assets.mjs.map +1 -0
- package/dist/actions/package/cycle.mjs +62 -0
- package/dist/actions/package/cycle.mjs.map +1 -0
- package/dist/actions/package/gen-docs.mjs +137 -0
- package/dist/actions/package/gen-docs.mjs.map +1 -0
- package/dist/actions/package/index.mjs +1131 -0
- package/dist/actions/package/index.mjs.map +1 -0
- package/dist/actions/package/lint.mjs +87 -0
- package/dist/actions/package/lint.mjs.map +1 -0
- package/dist/actions/package/publint.mjs +336 -0
- package/dist/actions/package/publint.mjs.map +1 -0
- package/dist/actions/package/recompile.mjs +510 -0
- package/dist/actions/package/recompile.mjs.map +1 -0
- package/dist/actions/package-lint-deps.mjs +348 -0
- package/dist/actions/package-lint-deps.mjs.map +1 -0
- package/dist/actions/package-lint.mjs +774 -0
- package/dist/actions/package-lint.mjs.map +1 -0
- package/dist/actions/packman/clean.mjs +144 -0
- package/dist/actions/packman/clean.mjs.map +1 -0
- package/dist/actions/packman/convert.mjs +1331 -0
- package/dist/actions/packman/convert.mjs.map +1 -0
- package/dist/actions/packman/convertToPnpm.mjs +295 -0
- package/dist/actions/packman/convertToPnpm.mjs.map +1 -0
- package/dist/actions/packman/convertToYarn.mjs +307 -0
- package/dist/actions/packman/convertToYarn.mjs.map +1 -0
- package/dist/actions/packman/index.mjs +1493 -0
- package/dist/actions/packman/index.mjs.map +1 -0
- package/dist/actions/packman/lint.mjs +109 -0
- package/dist/actions/packman/lint.mjs.map +1 -0
- package/dist/actions/packman/rewriteScripts.mjs +52 -0
- package/dist/actions/packman/rewriteScripts.mjs.map +1 -0
- package/dist/actions/packman/rewriteSourceImports.mjs +60 -0
- package/dist/actions/packman/rewriteSourceImports.mjs.map +1 -0
- package/dist/actions/packman/swapTsScriptsDependency.mjs +57 -0
- package/dist/actions/packman/swapTsScriptsDependency.mjs.map +1 -0
- package/dist/actions/publint.mjs +748 -0
- package/dist/actions/publint.mjs.map +1 -0
- package/dist/actions/publish.mjs +208 -0
- package/dist/actions/publish.mjs.map +1 -0
- package/dist/actions/reactTest.mjs +142 -0
- package/dist/actions/reactTest.mjs.map +1 -0
- package/dist/actions/readme-gen.mjs +362 -0
- package/dist/actions/readme-gen.mjs.map +1 -0
- package/dist/actions/readme-init.mjs +89 -0
- package/dist/actions/readme-init.mjs.map +1 -0
- package/dist/actions/readme-lint.mjs +147 -0
- package/dist/actions/readme-lint.mjs.map +1 -0
- package/dist/actions/rebuild.mjs +143 -0
- package/dist/actions/rebuild.mjs.map +1 -0
- package/dist/actions/recompile.mjs +196 -0
- package/dist/actions/recompile.mjs.map +1 -0
- package/dist/actions/reinstall.mjs +283 -0
- package/dist/actions/reinstall.mjs.map +1 -0
- package/dist/actions/relint.mjs +355 -0
- package/dist/actions/relint.mjs.map +1 -0
- package/dist/actions/repo-init.mjs +217 -0
- package/dist/actions/repo-init.mjs.map +1 -0
- package/dist/actions/retest.mjs +150 -0
- package/dist/actions/retest.mjs.map +1 -0
- package/dist/actions/sitemap.mjs +121 -0
- package/dist/actions/sitemap.mjs.map +1 -0
- package/dist/actions/sonar.mjs +119 -0
- package/dist/actions/sonar.mjs.map +1 -0
- package/dist/actions/start.mjs +142 -0
- package/dist/actions/start.mjs.map +1 -0
- package/dist/actions/statics.mjs +225 -0
- package/dist/actions/statics.mjs.map +1 -0
- package/dist/actions/test.mjs +144 -0
- package/dist/actions/test.mjs.map +1 -0
- package/dist/actions/up.mjs +140 -0
- package/dist/actions/up.mjs.map +1 -0
- package/dist/actions/updo.mjs +533 -0
- package/dist/actions/updo.mjs.map +1 -0
- package/dist/actions/upplug.mjs +124 -0
- package/dist/actions/upplug.mjs.map +1 -0
- package/dist/actions/upyarn.mjs +119 -0
- package/dist/actions/upyarn.mjs.map +1 -0
- package/dist/actions/yarn3only.mjs +60 -0
- package/dist/actions/yarn3only.mjs.map +1 -0
- package/dist/bin/package/build-only.mjs +451 -0
- package/dist/bin/package/build-only.mjs.map +1 -0
- package/dist/bin/package/build.mjs +451 -0
- package/dist/bin/package/build.mjs.map +1 -0
- package/dist/bin/package/clean-outputs.mjs +50 -0
- package/dist/bin/package/clean-outputs.mjs.map +1 -0
- package/dist/bin/package/clean-typescript.mjs +50 -0
- package/dist/bin/package/clean-typescript.mjs.map +1 -0
- package/dist/bin/package/clean.mjs +75 -0
- package/dist/bin/package/clean.mjs.map +1 -0
- package/dist/bin/package/compile-only.mjs +447 -0
- package/dist/bin/package/compile-only.mjs.map +1 -0
- package/dist/bin/package/compile-tsup.mjs +409 -0
- package/dist/bin/package/compile-tsup.mjs.map +1 -0
- package/dist/bin/package/compile.mjs +451 -0
- package/dist/bin/package/compile.mjs.map +1 -0
- package/dist/bin/package/copy-assets-cjs.mjs +75 -0
- package/dist/bin/package/copy-assets-cjs.mjs.map +1 -0
- package/dist/bin/package/copy-assets-esm.mjs +75 -0
- package/dist/bin/package/copy-assets-esm.mjs.map +1 -0
- package/dist/bin/package/cycle.mjs +72 -0
- package/dist/bin/package/cycle.mjs.map +1 -0
- package/dist/bin/package/fix.mjs +97 -0
- package/dist/bin/package/fix.mjs.map +1 -0
- package/dist/bin/package/gen-docs.mjs +142 -0
- package/dist/bin/package/gen-docs.mjs.map +1 -0
- package/dist/bin/package/lint-verbose.mjs +97 -0
- package/dist/bin/package/lint-verbose.mjs.map +1 -0
- package/dist/bin/package/lint.mjs +97 -0
- package/dist/bin/package/lint.mjs.map +1 -0
- package/dist/bin/package/publint.mjs +423 -0
- package/dist/bin/package/publint.mjs.map +1 -0
- package/dist/bin/package/recompile.mjs +516 -0
- package/dist/bin/package/recompile.mjs.map +1 -0
- package/dist/bin/package/relint.mjs +97 -0
- package/dist/bin/package/relint.mjs.map +1 -0
- package/dist/bin/run-or-exec.mjs +20 -0
- package/dist/bin/run-or-exec.mjs.map +1 -0
- package/dist/bin/xy.mjs +8885 -0
- package/dist/bin/xy.mjs.map +1 -0
- package/dist/index.d.ts +1102 -0
- package/dist/index.mjs +9986 -0
- package/dist/index.mjs.map +1 -0
- package/dist/lib/checkResult.mjs +16 -0
- package/dist/lib/checkResult.mjs.map +1 -0
- package/dist/lib/claudeMdTemplate.mjs +69 -0
- package/dist/lib/claudeMdTemplate.mjs.map +1 -0
- package/dist/lib/concurrency.mjs +38 -0
- package/dist/lib/concurrency.mjs.map +1 -0
- package/dist/lib/createBuildConfig.mjs +55 -0
- package/dist/lib/createBuildConfig.mjs.map +1 -0
- package/dist/lib/defaultBuildConfig.mjs +23 -0
- package/dist/lib/defaultBuildConfig.mjs.map +1 -0
- package/dist/lib/deleteGlob.mjs +13 -0
- package/dist/lib/deleteGlob.mjs.map +1 -0
- package/dist/lib/dependencies/DuplicateDetector.mjs +99 -0
- package/dist/lib/dependencies/DuplicateDetector.mjs.map +1 -0
- package/dist/lib/dependencies/detectDuplicateDependencies.mjs +203 -0
- package/dist/lib/dependencies/detectDuplicateDependencies.mjs.map +1 -0
- package/dist/lib/dependencies/index.mjs +281 -0
- package/dist/lib/dependencies/index.mjs.map +1 -0
- package/dist/lib/dependencies/workspaceCycles.mjs +79 -0
- package/dist/lib/dependencies/workspaceCycles.mjs.map +1 -0
- package/dist/lib/file/ReadFileSyncOptions.mjs +6 -0
- package/dist/lib/file/ReadFileSyncOptions.mjs.map +1 -0
- package/dist/lib/file/constants.mjs +8 -0
- package/dist/lib/file/constants.mjs.map +1 -0
- package/dist/lib/file/fileLines.mjs +32 -0
- package/dist/lib/file/fileLines.mjs.map +1 -0
- package/dist/lib/file/index.mjs +42 -0
- package/dist/lib/file/index.mjs.map +1 -0
- package/dist/lib/file/tryReadFileSync.mjs +14 -0
- package/dist/lib/file/tryReadFileSync.mjs.map +1 -0
- package/dist/lib/fillTemplate.mjs +8 -0
- package/dist/lib/fillTemplate.mjs.map +1 -0
- package/dist/lib/generateIgnoreFiles.mjs +86 -0
- package/dist/lib/generateIgnoreFiles.mjs.map +1 -0
- package/dist/lib/generateReadmeFiles.mjs +323 -0
- package/dist/lib/generateReadmeFiles.mjs.map +1 -0
- package/dist/lib/gitignoreTemplate.mjs +12 -0
- package/dist/lib/gitignoreTemplate.mjs.map +1 -0
- package/dist/lib/index.mjs +1627 -0
- package/dist/lib/index.mjs.map +1 -0
- package/dist/lib/initCwd.mjs +8 -0
- package/dist/lib/initCwd.mjs.map +1 -0
- package/dist/lib/jsonFormatters.mjs +11 -0
- package/dist/lib/jsonFormatters.mjs.map +1 -0
- package/dist/lib/latestVersions.mjs +12 -0
- package/dist/lib/latestVersions.mjs.map +1 -0
- package/dist/lib/loadConfig.mjs +72 -0
- package/dist/lib/loadConfig.mjs.map +1 -0
- package/dist/lib/packageName.mjs +26 -0
- package/dist/lib/packageName.mjs.map +1 -0
- package/dist/lib/parsedPackageJSON.mjs +11 -0
- package/dist/lib/parsedPackageJSON.mjs.map +1 -0
- package/dist/lib/processEx.mjs +36 -0
- package/dist/lib/processEx.mjs.map +1 -0
- package/dist/lib/repoTemplates.mjs +34 -0
- package/dist/lib/repoTemplates.mjs.map +1 -0
- package/dist/lib/runInstall.mjs +30 -0
- package/dist/lib/runInstall.mjs.map +1 -0
- package/dist/lib/runSteps.mjs +118 -0
- package/dist/lib/runSteps.mjs.map +1 -0
- package/dist/lib/runStepsAsync.mjs +136 -0
- package/dist/lib/runStepsAsync.mjs.map +1 -0
- package/dist/lib/runXy.mjs +147 -0
- package/dist/lib/runXy.mjs.map +1 -0
- package/dist/lib/runXyWithWarning.mjs +36 -0
- package/dist/lib/runXyWithWarning.mjs.map +1 -0
- package/dist/lib/safeExit.mjs +61 -0
- package/dist/lib/safeExit.mjs.map +1 -0
- package/dist/lib/string/empty.mjs +8 -0
- package/dist/lib/string/empty.mjs.map +1 -0
- package/dist/lib/string/index.mjs +12 -0
- package/dist/lib/string/index.mjs.map +1 -0
- package/dist/lib/string/union.mjs +6 -0
- package/dist/lib/string/union.mjs.map +1 -0
- package/dist/lib/tryRunLocalScript.mjs +57 -0
- package/dist/lib/tryRunLocalScript.mjs.map +1 -0
- package/dist/lib/updo/applyUpdates.mjs +44 -0
- package/dist/lib/updo/applyUpdates.mjs.map +1 -0
- package/dist/lib/updo/collectWorkspaceDeps.mjs +48 -0
- package/dist/lib/updo/collectWorkspaceDeps.mjs.map +1 -0
- package/dist/lib/updo/fetchRegistryInfo.mjs +53 -0
- package/dist/lib/updo/fetchRegistryInfo.mjs.map +1 -0
- package/dist/lib/updo/index.mjs +594 -0
- package/dist/lib/updo/index.mjs.map +1 -0
- package/dist/lib/updo/interactiveSelect.mjs +185 -0
- package/dist/lib/updo/interactiveSelect.mjs.map +1 -0
- package/dist/lib/updo/interfaces.mjs +1 -0
- package/dist/lib/updo/interfaces.mjs.map +1 -0
- package/dist/lib/updo/renderTable.mjs +79 -0
- package/dist/lib/updo/renderTable.mjs.map +1 -0
- package/dist/lib/updo/resolveVersions.mjs +49 -0
- package/dist/lib/updo/resolveVersions.mjs.map +1 -0
- package/dist/lib/updo/runUpdo.mjs +511 -0
- package/dist/lib/updo/runUpdo.mjs.map +1 -0
- package/dist/lib/withErrnoException.mjs +13 -0
- package/dist/lib/withErrnoException.mjs.map +1 -0
- package/dist/lib/withError.mjs +8 -0
- package/dist/lib/withError.mjs.map +1 -0
- package/dist/lib/yarn/index.mjs +39 -0
- package/dist/lib/yarn/index.mjs.map +1 -0
- package/dist/lib/yarn/isYarnVersionOrGreater.mjs +18 -0
- package/dist/lib/yarn/isYarnVersionOrGreater.mjs.map +1 -0
- package/dist/lib/yarn/workspace/Workspace.mjs +1 -0
- package/dist/lib/yarn/workspace/Workspace.mjs.map +1 -0
- package/dist/lib/yarn/workspace/index.mjs +23 -0
- package/dist/lib/yarn/workspace/index.mjs.map +1 -0
- package/dist/lib/yarn/workspace/yarnWorkspace.mjs +22 -0
- package/dist/lib/yarn/workspace/yarnWorkspace.mjs.map +1 -0
- package/dist/lib/yarn/workspace/yarnWorkspaces.mjs +15 -0
- package/dist/lib/yarn/workspace/yarnWorkspaces.mjs.map +1 -0
- package/dist/lib/yarn/yarnInitCwd.mjs +8 -0
- package/dist/lib/yarn/yarnInitCwd.mjs.map +1 -0
- package/dist/loadPackageConfig.mjs +18 -0
- package/dist/loadPackageConfig.mjs.map +1 -0
- package/dist/pm/PackageManager.mjs +1 -0
- package/dist/pm/PackageManager.mjs.map +1 -0
- package/dist/pm/detectPackageManager.mjs +10 -0
- package/dist/pm/detectPackageManager.mjs.map +1 -0
- package/dist/pm/detectReact.mjs +52 -0
- package/dist/pm/detectReact.mjs.map +1 -0
- package/dist/pm/index.mjs +263 -0
- package/dist/pm/index.mjs.map +1 -0
- package/dist/pm/pnpmPackageManager.mjs +97 -0
- package/dist/pm/pnpmPackageManager.mjs.map +1 -0
- package/dist/pm/registry.mjs +27 -0
- package/dist/pm/registry.mjs.map +1 -0
- package/dist/pm/yarnPackageManager.mjs +112 -0
- package/dist/pm/yarnPackageManager.mjs.map +1 -0
- package/dist/types.d.mjs +1 -0
- package/dist/types.d.mjs.map +1 -0
- package/dist/xy/build/buildCommand.mjs +194 -0
- package/dist/xy/build/buildCommand.mjs.map +1 -0
- package/dist/xy/build/compileCommand.mjs +203 -0
- package/dist/xy/build/compileCommand.mjs.map +1 -0
- package/dist/xy/build/compileOnlyCommand.mjs +204 -0
- package/dist/xy/build/compileOnlyCommand.mjs.map +1 -0
- package/dist/xy/build/copyAssetsCommand.mjs +92 -0
- package/dist/xy/build/copyAssetsCommand.mjs.map +1 -0
- package/dist/xy/build/index.mjs +487 -0
- package/dist/xy/build/index.mjs.map +1 -0
- package/dist/xy/build/rebuildCommand.mjs +156 -0
- package/dist/xy/build/rebuildCommand.mjs.map +1 -0
- package/dist/xy/build/recompileCommand.mjs +215 -0
- package/dist/xy/build/recompileCommand.mjs.map +1 -0
- package/dist/xy/common/checkCommand.mjs +1909 -0
- package/dist/xy/common/checkCommand.mjs.map +1 -0
- package/dist/xy/common/claude/checkCommand.mjs +207 -0
- package/dist/xy/common/claude/checkCommand.mjs.map +1 -0
- package/dist/xy/common/claude/cleanCommand.mjs +78 -0
- package/dist/xy/common/claude/cleanCommand.mjs.map +1 -0
- package/dist/xy/common/claude/commandsCommand.mjs +134 -0
- package/dist/xy/common/claude/commandsCommand.mjs.map +1 -0
- package/dist/xy/common/claude/index.mjs +734 -0
- package/dist/xy/common/claude/index.mjs.map +1 -0
- package/dist/xy/common/claude/initCommand.mjs +458 -0
- package/dist/xy/common/claude/initCommand.mjs.map +1 -0
- package/dist/xy/common/claude/rulesCommand.mjs +167 -0
- package/dist/xy/common/claude/rulesCommand.mjs.map +1 -0
- package/dist/xy/common/claude/settingsCommand.mjs +115 -0
- package/dist/xy/common/claude/settingsCommand.mjs.map +1 -0
- package/dist/xy/common/claude/skillsCommand.mjs +140 -0
- package/dist/xy/common/claude/skillsCommand.mjs.map +1 -0
- package/dist/xy/common/cleanDocsCommand.mjs +74 -0
- package/dist/xy/common/cleanDocsCommand.mjs.map +1 -0
- package/dist/xy/common/deadCommand.mjs +137 -0
- package/dist/xy/common/deadCommand.mjs.map +1 -0
- package/dist/xy/common/genDocsCommand.mjs +175 -0
- package/dist/xy/common/genDocsCommand.mjs.map +1 -0
- package/dist/xy/common/gitignoreCommand.mjs +165 -0
- package/dist/xy/common/gitignoreCommand.mjs.map +1 -0
- package/dist/xy/common/gitlintCommand.mjs +89 -0
- package/dist/xy/common/gitlintCommand.mjs.map +1 -0
- package/dist/xy/common/index.mjs +4654 -0
- package/dist/xy/common/index.mjs.map +1 -0
- package/dist/xy/common/licenseCommand.mjs +108 -0
- package/dist/xy/common/licenseCommand.mjs.map +1 -0
- package/dist/xy/common/npmignoreGenCommand.mjs +100 -0
- package/dist/xy/common/npmignoreGenCommand.mjs.map +1 -0
- package/dist/xy/common/orphan/cleanCommand.mjs +102 -0
- package/dist/xy/common/orphan/cleanCommand.mjs.map +1 -0
- package/dist/xy/common/orphan/index.mjs +138 -0
- package/dist/xy/common/orphan/index.mjs.map +1 -0
- package/dist/xy/common/orphan/listCommand.mjs +100 -0
- package/dist/xy/common/orphan/listCommand.mjs.map +1 -0
- package/dist/xy/common/packmanCommand.mjs +1538 -0
- package/dist/xy/common/packmanCommand.mjs.map +1 -0
- package/dist/xy/common/readme/genCommand.mjs +395 -0
- package/dist/xy/common/readme/genCommand.mjs.map +1 -0
- package/dist/xy/common/readme/index.mjs +538 -0
- package/dist/xy/common/readme/index.mjs.map +1 -0
- package/dist/xy/common/readme/initCommand.mjs +109 -0
- package/dist/xy/common/readme/initCommand.mjs.map +1 -0
- package/dist/xy/common/readme/lintCommand.mjs +181 -0
- package/dist/xy/common/readme/lintCommand.mjs.map +1 -0
- package/dist/xy/common/repo/index.mjs +1070 -0
- package/dist/xy/common/repo/index.mjs.map +1 -0
- package/dist/xy/common/repo/initCommand.mjs +273 -0
- package/dist/xy/common/repo/initCommand.mjs.map +1 -0
- package/dist/xy/common/repo/lintCommand.mjs +789 -0
- package/dist/xy/common/repo/lintCommand.mjs.map +1 -0
- package/dist/xy/common/retestCommand.mjs +163 -0
- package/dist/xy/common/retestCommand.mjs.map +1 -0
- package/dist/xy/common/testCommand.mjs +157 -0
- package/dist/xy/common/testCommand.mjs.map +1 -0
- package/dist/xy/deploy/deployCommand.mjs +214 -0
- package/dist/xy/deploy/deployCommand.mjs.map +1 -0
- package/dist/xy/deploy/index.mjs +289 -0
- package/dist/xy/deploy/index.mjs.map +1 -0
- package/dist/xy/deploy/publishCommand.mjs +218 -0
- package/dist/xy/deploy/publishCommand.mjs.map +1 -0
- package/dist/xy/index.mjs +8887 -0
- package/dist/xy/index.mjs.map +1 -0
- package/dist/xy/install/cleanCommand.mjs +182 -0
- package/dist/xy/install/cleanCommand.mjs.map +1 -0
- package/dist/xy/install/dupdepsCommand.mjs +234 -0
- package/dist/xy/install/dupdepsCommand.mjs.map +1 -0
- package/dist/xy/install/index.mjs +1006 -0
- package/dist/xy/install/index.mjs.map +1 -0
- package/dist/xy/install/reinstallCommand.mjs +292 -0
- package/dist/xy/install/reinstallCommand.mjs.map +1 -0
- package/dist/xy/install/staticsCommand.mjs +233 -0
- package/dist/xy/install/staticsCommand.mjs.map +1 -0
- package/dist/xy/install/upCommand.mjs +150 -0
- package/dist/xy/install/upCommand.mjs.map +1 -0
- package/dist/xy/install/updoCommand.mjs +550 -0
- package/dist/xy/install/updoCommand.mjs.map +1 -0
- package/dist/xy/lint/cycleCommand.mjs +289 -0
- package/dist/xy/lint/cycleCommand.mjs.map +1 -0
- package/dist/xy/lint/deplintCommand.mjs +1897 -0
- package/dist/xy/lint/deplintCommand.mjs.map +1 -0
- package/dist/xy/lint/fixCommand.mjs +398 -0
- package/dist/xy/lint/fixCommand.mjs.map +1 -0
- package/dist/xy/lint/index.mjs +3759 -0
- package/dist/xy/lint/index.mjs.map +1 -0
- package/dist/xy/lint/knipCommand.mjs +142 -0
- package/dist/xy/lint/knipCommand.mjs.map +1 -0
- package/dist/xy/lint/lint/index.mjs +695 -0
- package/dist/xy/lint/lint/index.mjs.map +1 -0
- package/dist/xy/lint/lint/initCommand.mjs +282 -0
- package/dist/xy/lint/lint/initCommand.mjs.map +1 -0
- package/dist/xy/lint/lint/runCommand.mjs +405 -0
- package/dist/xy/lint/lint/runCommand.mjs.map +1 -0
- package/dist/xy/lint/lintCommand.mjs +695 -0
- package/dist/xy/lint/lintCommand.mjs.map +1 -0
- package/dist/xy/lint/lintlintCommand.mjs +359 -0
- package/dist/xy/lint/lintlintCommand.mjs.map +1 -0
- package/dist/xy/lint/publintCommand.mjs +778 -0
- package/dist/xy/lint/publintCommand.mjs.map +1 -0
- package/dist/xy/lint/relintCommand.mjs +381 -0
- package/dist/xy/lint/relintCommand.mjs.map +1 -0
- package/dist/xy/lint/sonarCommand.mjs +137 -0
- package/dist/xy/lint/sonarCommand.mjs.map +1 -0
- package/dist/xy/param.mjs +8 -0
- package/dist/xy/param.mjs.map +1 -0
- package/dist/xy/react/analyzeCommand.mjs +150 -0
- package/dist/xy/react/analyzeCommand.mjs.map +1 -0
- package/dist/xy/react/ejectCommand.mjs +150 -0
- package/dist/xy/react/ejectCommand.mjs.map +1 -0
- package/dist/xy/react/index.mjs +202 -0
- package/dist/xy/react/index.mjs.map +1 -0
- package/dist/xy/react/sitemapCommand.mjs +129 -0
- package/dist/xy/react/sitemapCommand.mjs.map +1 -0
- package/dist/xy/react/startCommand.mjs +150 -0
- package/dist/xy/react/startCommand.mjs.map +1 -0
- package/dist/xy/xy.mjs +8879 -0
- package/dist/xy/xy.mjs.map +1 -0
- package/dist/xy/xyParseOptions.mjs +117 -0
- package/dist/xy/xyParseOptions.mjs.map +1 -0
- package/dist/xy/yarn/index.mjs +188 -0
- package/dist/xy/yarn/index.mjs.map +1 -0
- package/dist/xy/yarn/upplugCommand.mjs +134 -0
- package/dist/xy/yarn/upplugCommand.mjs.map +1 -0
- package/dist/xy/yarn/upyarnCommand.mjs +129 -0
- package/dist/xy/yarn/upyarnCommand.mjs.map +1 -0
- package/dist/xy/yarn/yarn3OnlyCommand.mjs +70 -0
- package/dist/xy/yarn/yarn3OnlyCommand.mjs.map +1 -0
- package/package.json +119 -0
- package/templates/claude/CLAUDE-local.md +4 -0
- package/templates/claude/CLAUDE-project.md +4 -0
- package/templates/claude/commands/xy-build.md +7 -0
- package/templates/claude/commands/xy-clean.md +7 -0
- package/templates/claude/commands/xy-compile.md +7 -0
- package/templates/claude/commands/xy-cycle.md +7 -0
- package/templates/claude/commands/xy-dead.md +7 -0
- package/templates/claude/commands/xy-deplint.md +7 -0
- package/templates/claude/commands/xy-deps.md +24 -0
- package/templates/claude/commands/xy-dupdeps.md +7 -0
- package/templates/claude/commands/xy-fix.md +7 -0
- package/templates/claude/commands/xy-gen-docs.md +7 -0
- package/templates/claude/commands/xy-gitignore.md +7 -0
- package/templates/claude/commands/xy-gitlint.md +7 -0
- package/templates/claude/commands/xy-knip.md +7 -0
- package/templates/claude/commands/xy-license.md +7 -0
- package/templates/claude/commands/xy-lint-rules.md +44 -0
- package/templates/claude/commands/xy-lint.md +7 -0
- package/templates/claude/commands/xy-publint.md +7 -0
- package/templates/claude/commands/xy-rebuild.md +7 -0
- package/templates/claude/commands/xy-recompile.md +7 -0
- package/templates/claude/commands/xy-reinstall.md +7 -0
- package/templates/claude/commands/xy-relint.md +7 -0
- package/templates/claude/commands/xy-retest.md +7 -0
- package/templates/claude/commands/xy-sonar.md +7 -0
- package/templates/claude/commands/xy-test.md +7 -0
- package/templates/claude/commands/xy-up.md +9 -0
- package/templates/claude/rules/xylabs-architecture.md +8 -0
- package/templates/claude/rules/xylabs-git-workflow.md +7 -0
- package/templates/claude/rules/xylabs-naming.md +7 -0
- package/templates/claude/rules/xylabs-style.md +17 -0
- package/templates/claude/skills/xylabs-e2e-setup/SKILL.md +223 -0
- package/templates/claude/skills/xylabs-xy-cli/SKILL.md +236 -0
- package/templates/claude/skills/xylabs-xy-deplint-fix/SKILL.md +122 -0
- package/templates/gitignore/gitignore/template.gitignore +51 -0
- package/templates/gitignore/template.gitignore +51 -0
- package/templates/readme/README.body.md +25 -0
- package/templates/readme/README.template.md +22 -0
- package/templates/repo/cli/package/package.json.tmpl +63 -0
- package/templates/repo/cli/package/src/__packageName__.ts.tmpl +21 -0
- package/templates/repo/cli/package/src/actions/index.ts +1 -0
- package/templates/repo/cli/package/src/actions/printVersion.ts.tmpl +8 -0
- package/templates/repo/cli/package/src/bin/__packageName__.ts.tmpl +12 -0
- package/templates/repo/cli/package/src/commands/index.ts +1 -0
- package/templates/repo/cli/package/src/commands/versionCommand.ts.tmpl +11 -0
- package/templates/repo/cli/package/src/index.ts.tmpl +1 -0
- package/templates/repo/cli/package/tsconfig.build.json +25 -0
- package/templates/repo/cli/package/tsconfig.json +4 -0
- package/templates/repo/cli/package/tsup.config.ts +15 -0
- package/templates/repo/cli/package/xy.config.ts +3 -0
- package/templates/repo/cli/root/CLAUDE.md.tmpl +38 -0
- package/templates/repo/cli/root/cspell.json.tmpl +13 -0
- package/templates/repo/cli/root/eslint.config.ts +28 -0
- package/templates/repo/cli/root/github/workflows/build-pnpm.yml.tmpl +34 -0
- package/templates/repo/cli/root/github/workflows/build-yarn.yml.tmpl +32 -0
- package/templates/repo/cli/root/gitignore.tmpl +47 -0
- package/templates/repo/cli/root/knip.config.ts +16 -0
- package/templates/repo/cli/root/package.json.tmpl +54 -0
- package/templates/repo/cli/root/pnpm-workspace.yaml +2 -0
- package/templates/repo/cli/root/tsconfig.json +4 -0
- package/templates/repo/cli/root/vitest.config.ts +31 -0
- package/templates/repo/cli/root/xy.config.ts.tmpl +5 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// src/bin/package/copy-assets-esm.ts
|
|
4
|
+
import chalk2 from "chalk";
|
|
5
|
+
|
|
6
|
+
// src/lib/initCwd.ts
|
|
7
|
+
function INIT_CWD() {
|
|
8
|
+
return process.env.INIT_CWD ?? process.cwd();
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// src/lib/packageName.ts
|
|
12
|
+
import { readFileSync } from "fs";
|
|
13
|
+
import path from "path";
|
|
14
|
+
function packageName() {
|
|
15
|
+
if (process.env.npm_package_name) {
|
|
16
|
+
return process.env.npm_package_name;
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const pkgPath = path.join(INIT_CWD(), "package.json");
|
|
20
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
|
|
21
|
+
return pkg.name;
|
|
22
|
+
} catch {
|
|
23
|
+
return void 0;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// src/actions/package/copy-assets.ts
|
|
28
|
+
import path2 from "path/posix";
|
|
29
|
+
import chalk from "chalk";
|
|
30
|
+
import cpy from "cpy";
|
|
31
|
+
var copyTargetAssets = async (target, name, location) => {
|
|
32
|
+
try {
|
|
33
|
+
const values = await cpy(
|
|
34
|
+
["**/*.jpg", "**/*.png", "**/*.gif", "**/*.svg", "**/*.webp", "**/*.sass", "**/*.scss", "**/*.gif", "**/*.css"],
|
|
35
|
+
`../dist/${target}`,
|
|
36
|
+
{
|
|
37
|
+
cwd: path2.join(location, "src"),
|
|
38
|
+
flat: false
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
if (values.length > 0) {
|
|
42
|
+
console.log(chalk.green(`Copying Assets [${target.toUpperCase()}] - ${name} - ${location}`));
|
|
43
|
+
}
|
|
44
|
+
for (const value of values) {
|
|
45
|
+
console.log(`${value.split("/").pop()} => ./dist/${target}`);
|
|
46
|
+
}
|
|
47
|
+
return 0;
|
|
48
|
+
} catch (ex) {
|
|
49
|
+
const error = ex;
|
|
50
|
+
console.log(`Copy Assets Failed: ${name}: ${error.message}`);
|
|
51
|
+
return 1;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
var packageCopyAssets = async ({ target }) => {
|
|
55
|
+
const pkg = INIT_CWD();
|
|
56
|
+
const pkgName = packageName() ?? "Unknown";
|
|
57
|
+
switch (target) {
|
|
58
|
+
case "esm": {
|
|
59
|
+
return await copyTargetAssets("esm", pkgName, pkg);
|
|
60
|
+
}
|
|
61
|
+
case "cjs": {
|
|
62
|
+
return await copyTargetAssets("cjs", pkgName, pkg);
|
|
63
|
+
}
|
|
64
|
+
default: {
|
|
65
|
+
return await copyTargetAssets("esm", pkgName, pkg) || await copyTargetAssets("cjs", pkgName, pkg);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
// src/bin/package/copy-assets-esm.ts
|
|
71
|
+
packageCopyAssets({ target: "esm" }).then((value) => process.exitCode = value).catch((reason) => {
|
|
72
|
+
console.error(chalk2.red(reason));
|
|
73
|
+
process.exitCode = 1;
|
|
74
|
+
});
|
|
75
|
+
//# sourceMappingURL=copy-assets-esm.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/bin/package/copy-assets-esm.ts","../../../src/lib/initCwd.ts","../../../src/lib/packageName.ts","../../../src/actions/package/copy-assets.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport chalk from 'chalk'\n\nimport { packageCopyAssets } from '../../actions/index.ts'\n\npackageCopyAssets({ target: 'esm' })\n .then(value => (process.exitCode = value))\n .catch((reason) => {\n console.error(chalk.red(reason))\n process.exitCode = 1\n })\n","export function INIT_CWD(): string {\n return process.env.INIT_CWD ?? process.cwd()\n}\n","import { readFileSync } from 'node:fs'\nimport path from 'node:path'\n\nimport { INIT_CWD } from './initCwd.ts'\n\nexport function packageName(): string | undefined {\n if (process.env.npm_package_name) {\n return process.env.npm_package_name\n }\n try {\n const pkgPath = path.join(INIT_CWD(), 'package.json')\n const pkg = JSON.parse(readFileSync(pkgPath, 'utf8')) as Record<string, unknown>\n return pkg.name as string | undefined\n } catch {\n return undefined\n }\n}\n","import path from 'node:path/posix'\n\nimport chalk from 'chalk'\nimport cpy from 'cpy'\n\nimport { INIT_CWD, packageName } from '../../lib/index.ts'\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 = INIT_CWD()\n const pkgName = packageName() ?? '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"],"mappings":";;;AAEA,OAAOA,YAAW;;;ACFX,SAAS,WAAmB;AACjC,SAAO,QAAQ,IAAI,YAAY,QAAQ,IAAI;AAC7C;;;ACFA,SAAS,oBAAoB;AAC7B,OAAO,UAAU;AAIV,SAAS,cAAkC;AAChD,MAAI,QAAQ,IAAI,kBAAkB;AAChC,WAAO,QAAQ,IAAI;AAAA,EACrB;AACA,MAAI;AACF,UAAM,UAAU,KAAK,KAAK,SAAS,GAAG,cAAc;AACpD,UAAM,MAAM,KAAK,MAAM,aAAa,SAAS,MAAM,CAAC;AACpD,WAAO,IAAI;AAAA,EACb,QAAQ;AACN,WAAO;AAAA,EACT;AACF;;;AChBA,OAAOC,WAAU;AAEjB,OAAO,WAAW;AAClB,OAAO,SAAS;AAMhB,IAAM,mBAAmB,OAAO,QAAuB,MAAc,aAAqB;AACxF,MAAI;AACF,UAAM,SAAS,MAAM;AAAA,MACnB,CAAC,YAAY,YAAY,YAAY,YAAY,aAAa,aAAa,aAAa,YAAY,UAAU;AAAA,MAC9G,WAAW,MAAM;AAAA,MACjB;AAAA,QACE,KAAKC,MAAK,KAAK,UAAU,KAAK;AAAA,QAC9B,MAAM;AAAA,MACR;AAAA,IACF;AACA,QAAI,OAAO,SAAS,GAAG;AACrB,cAAQ,IAAI,MAAM,MAAM,mBAAmB,OAAO,YAAY,CAAC,OAAO,IAAI,MAAM,QAAQ,EAAE,CAAC;AAAA,IAC7F;AACA,eAAW,SAAS,QAAQ;AAC1B,cAAQ,IAAI,GAAG,MAAM,MAAM,GAAG,EAAE,IAAI,CAAC,cAAc,MAAM,EAAE;AAAA,IAC7D;AACA,WAAO;AAAA,EACT,SAAS,IAAI;AACX,UAAM,QAAQ;AACd,YAAQ,IAAI,uBAAuB,IAAI,KAAK,MAAM,OAAO,EAAE;AAC3D,WAAO;AAAA,EACT;AACF;AAEO,IAAM,oBAAoB,OAAO,EAAE,OAAO,MAA+B;AAC9E,QAAM,MAAM,SAAS;AACrB,QAAM,UAAU,YAAY,KAAK;AACjC,UAAQ,QAAQ;AAAA,IACd,KAAK,OAAO;AACV,aAAO,MAAM,iBAAiB,OAAO,SAAS,GAAG;AAAA,IACnD;AAAA,IACA,KAAK,OAAO;AACV,aAAO,MAAM,iBAAiB,OAAO,SAAS,GAAG;AAAA,IACnD;AAAA,IACA,SAAS;AACP,aAAQ,MAAM,iBAAiB,OAAO,SAAS,GAAG,KAAO,MAAM,iBAAiB,OAAO,SAAS,GAAG;AAAA,IACrG;AAAA,EACF;AACF;;;AHzCA,kBAAkB,EAAE,QAAQ,MAAM,CAAC,EAChC,KAAK,WAAU,QAAQ,WAAW,KAAM,EACxC,MAAM,CAAC,WAAW;AACjB,UAAQ,MAAMC,OAAM,IAAI,MAAM,CAAC;AAC/B,UAAQ,WAAW;AACrB,CAAC;","names":["chalk","path","path","chalk"]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// src/bin/package/cycle.ts
|
|
4
|
+
import chalk from "chalk";
|
|
5
|
+
|
|
6
|
+
// src/lib/initCwd.ts
|
|
7
|
+
function INIT_CWD() {
|
|
8
|
+
return process.env.INIT_CWD ?? process.cwd();
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// src/lib/packageName.ts
|
|
12
|
+
import { readFileSync } from "fs";
|
|
13
|
+
import path from "path";
|
|
14
|
+
function packageName() {
|
|
15
|
+
if (process.env.npm_package_name) {
|
|
16
|
+
return process.env.npm_package_name;
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const pkgPath = path.join(INIT_CWD(), "package.json");
|
|
20
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
|
|
21
|
+
return pkg.name;
|
|
22
|
+
} catch {
|
|
23
|
+
return void 0;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// src/actions/package/cycle.ts
|
|
28
|
+
import { cruise } from "dependency-cruiser";
|
|
29
|
+
var packageCycle = async () => {
|
|
30
|
+
const pkg = INIT_CWD();
|
|
31
|
+
const pkgName = packageName();
|
|
32
|
+
const cruiseOptions = {
|
|
33
|
+
ruleSet: {
|
|
34
|
+
forbidden: [
|
|
35
|
+
{
|
|
36
|
+
name: "no-circular",
|
|
37
|
+
severity: "error",
|
|
38
|
+
comment: "This dependency creates a circular reference",
|
|
39
|
+
from: {},
|
|
40
|
+
to: { circular: true }
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
exclude: "node_modules|packages/.*/packages",
|
|
45
|
+
validate: true,
|
|
46
|
+
doNotFollow: { path: "node_modules|packages/.*/packages" },
|
|
47
|
+
tsPreCompilationDeps: false,
|
|
48
|
+
combinedDependencies: true,
|
|
49
|
+
outputType: "err"
|
|
50
|
+
};
|
|
51
|
+
const target = `${pkg}/src`;
|
|
52
|
+
console.log(`Checking for circular dependencies in ${target}...`);
|
|
53
|
+
const result = await cruise([target], cruiseOptions);
|
|
54
|
+
console.log(result.output);
|
|
55
|
+
if (result.exitCode === 0) {
|
|
56
|
+
console.log(`${pkgName} \u2705 No dependency violations`);
|
|
57
|
+
} else {
|
|
58
|
+
console.error(`${pkgName} \u274C Dependency violations found`);
|
|
59
|
+
}
|
|
60
|
+
return result.exitCode;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
// src/bin/package/cycle.ts
|
|
64
|
+
packageCycle().then((value) => {
|
|
65
|
+
if (value > 0) {
|
|
66
|
+
process.exit(value);
|
|
67
|
+
}
|
|
68
|
+
}).catch((reason) => {
|
|
69
|
+
console.error(chalk.red(reason));
|
|
70
|
+
process.exit(-1);
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=cycle.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/bin/package/cycle.ts","../../../src/lib/initCwd.ts","../../../src/lib/packageName.ts","../../../src/actions/package/cycle.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport chalk from 'chalk'\n\nimport { packageCycle } from '../../actions/index.ts'\n\npackageCycle()\n .then((value) => {\n if (value > 0) {\n process.exit(value)\n }\n })\n .catch((reason) => {\n console.error(chalk.red(reason))\n process.exit(-1)\n })\n","export function INIT_CWD(): string {\n return process.env.INIT_CWD ?? process.cwd()\n}\n","import { readFileSync } from 'node:fs'\nimport path from 'node:path'\n\nimport { INIT_CWD } from './initCwd.ts'\n\nexport function packageName(): string | undefined {\n if (process.env.npm_package_name) {\n return process.env.npm_package_name\n }\n try {\n const pkgPath = path.join(INIT_CWD(), 'package.json')\n const pkg = JSON.parse(readFileSync(pkgPath, 'utf8')) as Record<string, unknown>\n return pkg.name as string | undefined\n } catch {\n return undefined\n }\n}\n","import type { ICruiseOptions } from 'dependency-cruiser'\nimport { cruise } from 'dependency-cruiser'\n\nimport { INIT_CWD, packageName } from '../../lib/index.ts'\n\nexport const packageCycle = async () => {\n const pkg = INIT_CWD()\n const pkgName = packageName()\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"],"mappings":";;;AAEA,OAAO,WAAW;;;ACFX,SAAS,WAAmB;AACjC,SAAO,QAAQ,IAAI,YAAY,QAAQ,IAAI;AAC7C;;;ACFA,SAAS,oBAAoB;AAC7B,OAAO,UAAU;AAIV,SAAS,cAAkC;AAChD,MAAI,QAAQ,IAAI,kBAAkB;AAChC,WAAO,QAAQ,IAAI;AAAA,EACrB;AACA,MAAI;AACF,UAAM,UAAU,KAAK,KAAK,SAAS,GAAG,cAAc;AACpD,UAAM,MAAM,KAAK,MAAM,aAAa,SAAS,MAAM,CAAC;AACpD,WAAO,IAAI;AAAA,EACb,QAAQ;AACN,WAAO;AAAA,EACT;AACF;;;ACfA,SAAS,cAAc;AAIhB,IAAM,eAAe,YAAY;AACtC,QAAM,MAAM,SAAS;AACrB,QAAM,UAAU,YAAY;AAE5B,QAAM,gBAAgC;AAAA,IACpC,SAAS;AAAA,MACP,WAAW;AAAA,QACT;AAAA,UACE,MAAM;AAAA,UACN,UAAU;AAAA,UACV,SAAS;AAAA,UACT,MAAM,CAAC;AAAA,UACP,IAAI,EAAE,UAAU,KAAK;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAAA,IACA,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aAAa,EAAE,MAAM,oCAAoC;AAAA,IACzD,sBAAsB;AAAA,IACtB,sBAAsB;AAAA,IACtB,YAAY;AAAA,EACd;AAEA,QAAM,SAAS,GAAG,GAAG;AAErB,UAAQ,IAAI,yCAAyC,MAAM,KAAK;AAEhE,QAAM,SAAS,MAAM,OAAO,CAAC,MAAM,GAAG,aAAa;AACnD,UAAQ,IAAI,OAAO,MAAM;AAEzB,MAAI,OAAO,aAAa,GAAG;AACzB,YAAQ,IAAI,GAAG,OAAO,kCAA6B;AAAA,EACrD,OAAO;AACL,YAAQ,MAAM,GAAG,OAAO,qCAAgC;AAAA,EAC1D;AACA,SAAO,OAAO;AAChB;;;AHpCA,aAAa,EACV,KAAK,CAAC,UAAU;AACf,MAAI,QAAQ,GAAG;AACb,YAAQ,KAAK,KAAK;AAAA,EACpB;AACF,CAAC,EACA,MAAM,CAAC,WAAW;AACjB,UAAQ,MAAM,MAAM,IAAI,MAAM,CAAC;AAC/B,UAAQ,KAAK,EAAE;AACjB,CAAC;","names":[]}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// src/bin/package/fix.ts
|
|
4
|
+
import chalk2 from "chalk";
|
|
5
|
+
|
|
6
|
+
// src/lib/initCwd.ts
|
|
7
|
+
function INIT_CWD() {
|
|
8
|
+
return process.env.INIT_CWD ?? process.cwd();
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// src/actions/package/lint.ts
|
|
12
|
+
import { readdirSync } from "fs";
|
|
13
|
+
import path from "path";
|
|
14
|
+
import { cwd } from "process";
|
|
15
|
+
import { pathToFileURL } from "url";
|
|
16
|
+
import chalk from "chalk";
|
|
17
|
+
import { ESLint } from "eslint";
|
|
18
|
+
import { findUp } from "find-up";
|
|
19
|
+
import picomatch from "picomatch";
|
|
20
|
+
var dumpMessages = (lintResults) => {
|
|
21
|
+
const colors = ["white", "yellow", "red"];
|
|
22
|
+
const severity = ["none", "warning", "error"];
|
|
23
|
+
for (const lintResult of lintResults) {
|
|
24
|
+
if (lintResult.messages.length > 0) {
|
|
25
|
+
console.log(chalk.gray(`
|
|
26
|
+
${lintResult.filePath}`));
|
|
27
|
+
for (const message of lintResult.messages) {
|
|
28
|
+
console.log(
|
|
29
|
+
chalk.gray(` ${message.line}:${message.column}`),
|
|
30
|
+
chalk[colors[message.severity]](` ${severity[message.severity]}`),
|
|
31
|
+
chalk.white(` ${message.message}`),
|
|
32
|
+
chalk.gray(` ${message.ruleId}`)
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
async function getRootESLintConfig() {
|
|
39
|
+
const configPath = await findUp(["eslint.config.ts", "eslint.config.mjs"]);
|
|
40
|
+
if (configPath === void 0) {
|
|
41
|
+
throw new Error("eslint.config.ts not found in the monorepo");
|
|
42
|
+
}
|
|
43
|
+
return pathToFileURL(configPath);
|
|
44
|
+
}
|
|
45
|
+
function getFiles(dir, ignoreFolders) {
|
|
46
|
+
const currentDirectory = cwd();
|
|
47
|
+
const subDirectory = dir.split(currentDirectory)[1]?.split("/")[1];
|
|
48
|
+
if (ignoreFolders.includes(subDirectory)) return [];
|
|
49
|
+
return readdirSync(dir, { withFileTypes: true }).flatMap((dirent) => {
|
|
50
|
+
const res = path.resolve(dir, dirent.name);
|
|
51
|
+
const relativePath = subDirectory === void 0 ? dirent.name : `${subDirectory}/${dirent.name}`;
|
|
52
|
+
const ignoreMatchers = ignoreFolders.map((pattern) => picomatch(pattern));
|
|
53
|
+
if (ignoreMatchers.some((isMatch) => isMatch(relativePath))) return [];
|
|
54
|
+
return dirent.isDirectory() ? getFiles(res, ignoreFolders) : [res];
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
var packageLint = async (fix = false, verbose = false, cache = true) => {
|
|
58
|
+
const pkg = INIT_CWD();
|
|
59
|
+
const configPath = await getRootESLintConfig();
|
|
60
|
+
const { default: eslintConfig } = await import(configPath.href);
|
|
61
|
+
const start = Date.now();
|
|
62
|
+
const ignoreFolders = ["node_modules", "dist", "packages", ".git", "build", ".yarn", ".vscode", ".github"];
|
|
63
|
+
const engine = new ESLint({
|
|
64
|
+
baseConfig: [...eslintConfig],
|
|
65
|
+
fix,
|
|
66
|
+
warnIgnored: false,
|
|
67
|
+
cache
|
|
68
|
+
});
|
|
69
|
+
const files = getFiles(cwd(), ignoreFolders);
|
|
70
|
+
console.log(chalk.green(`Linting ${pkg} [files = ${files.length}]`));
|
|
71
|
+
if (verbose) {
|
|
72
|
+
for (const file of files) {
|
|
73
|
+
console.log(chalk.gray(` ${file}`));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const lintResults = await engine.lintFiles(files);
|
|
77
|
+
dumpMessages(lintResults);
|
|
78
|
+
if (fix) {
|
|
79
|
+
await ESLint.outputFixes(lintResults);
|
|
80
|
+
}
|
|
81
|
+
const filesCountColor = files.length < 100 ? "green" : files.length < 1e3 ? "yellow" : "red";
|
|
82
|
+
const lintTime = Date.now() - start;
|
|
83
|
+
const lintTimeColor = lintTime < 1e3 ? "green" : lintTime < 3e3 ? "yellow" : "red";
|
|
84
|
+
console.log(chalk.white(`Linted ${chalk[filesCountColor](files.length)} files in ${chalk[lintTimeColor](lintTime)}ms`));
|
|
85
|
+
return lintResults.reduce((prev, lintResult) => prev + lintResult.errorCount, 0);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
// src/bin/package/fix.ts
|
|
89
|
+
packageLint(true).then((value) => {
|
|
90
|
+
if (value) {
|
|
91
|
+
process.exit(value);
|
|
92
|
+
}
|
|
93
|
+
}).catch((reason) => {
|
|
94
|
+
console.error(chalk2.red(reason));
|
|
95
|
+
process.exit(-1);
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=fix.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/bin/package/fix.ts","../../../src/lib/initCwd.ts","../../../src/actions/package/lint.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport chalk from 'chalk'\n\nimport { packageLint } from '../../actions/index.ts'\n\npackageLint(true)\n .then((value) => {\n if (value) {\n process.exit(value)\n }\n })\n .catch((reason) => {\n console.error(chalk.red(reason))\n process.exit(-1)\n })\n","export function INIT_CWD(): string {\n return process.env.INIT_CWD ?? process.cwd()\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, type Linter } from 'eslint'\nimport { findUp } from 'find-up'\nimport picomatch from 'picomatch'\n\nimport { INIT_CWD } from '../../lib/index.ts'\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 const configPath = await findUp(['eslint.config.ts', 'eslint.config.mjs'])\n\n if (configPath === undefined) {\n throw new Error('eslint.config.ts 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]?.split('/')[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 = INIT_CWD()\n const configPath = await getRootESLintConfig()\n const { default: eslintConfig } = await import(configPath.href) as { default: Linter.Config[] }\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 console.log(chalk.green(`Linting ${pkg} [files = ${files.length}]`))\n if (verbose) {\n for (const file of files) {\n console.log(chalk.gray(`\\t${file}`))\n }\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"],"mappings":"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","names":["chalk","chalk"]}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// src/lib/initCwd.ts
|
|
4
|
+
function INIT_CWD() {
|
|
5
|
+
return process.env.INIT_CWD ?? process.cwd();
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
// src/lib/packageName.ts
|
|
9
|
+
import { readFileSync } from "fs";
|
|
10
|
+
import path from "path";
|
|
11
|
+
function packageName() {
|
|
12
|
+
if (process.env.npm_package_name) {
|
|
13
|
+
return process.env.npm_package_name;
|
|
14
|
+
}
|
|
15
|
+
try {
|
|
16
|
+
const pkgPath = path.join(INIT_CWD(), "package.json");
|
|
17
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
|
|
18
|
+
return pkg.name;
|
|
19
|
+
} catch {
|
|
20
|
+
return void 0;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// src/actions/package/gen-docs.ts
|
|
25
|
+
import { existsSync } from "fs";
|
|
26
|
+
import path2 from "path";
|
|
27
|
+
import chalk from "chalk";
|
|
28
|
+
import {
|
|
29
|
+
Application,
|
|
30
|
+
ArgumentsReader,
|
|
31
|
+
TSConfigReader,
|
|
32
|
+
TypeDocReader
|
|
33
|
+
} from "typedoc";
|
|
34
|
+
var ExitCodes = {
|
|
35
|
+
CompileError: 3,
|
|
36
|
+
ExceptionThrown: 6,
|
|
37
|
+
NoEntryPoints: 2,
|
|
38
|
+
Ok: 0,
|
|
39
|
+
OptionError: 1,
|
|
40
|
+
OutputError: 5,
|
|
41
|
+
ValidationError: 4
|
|
42
|
+
};
|
|
43
|
+
var packageGenDocs = async () => {
|
|
44
|
+
const pkg = INIT_CWD();
|
|
45
|
+
if (pkg !== void 0 && !existsSync(path2.join(pkg, "typedoc.json"))) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const app = await Application.bootstrap({
|
|
49
|
+
entryPointStrategy: "merge",
|
|
50
|
+
entryPoints: [`${pkg}/src/**/*.ts`, `${pkg}/packages/*/dist/docs.json`],
|
|
51
|
+
excludeExternals: true,
|
|
52
|
+
json: `${pkg}/dist/docs.json`,
|
|
53
|
+
logLevel: "Error",
|
|
54
|
+
tsconfig: `${pkg}/tsconfig.json`
|
|
55
|
+
});
|
|
56
|
+
app.options.addReader(new ArgumentsReader(0));
|
|
57
|
+
app.options.addReader(new TypeDocReader());
|
|
58
|
+
app.options.addReader(new TSConfigReader());
|
|
59
|
+
app.options.addReader(new ArgumentsReader(300));
|
|
60
|
+
return await runTypeDoc(app);
|
|
61
|
+
};
|
|
62
|
+
var runTypeDoc = async (app) => {
|
|
63
|
+
const pkgName = packageName();
|
|
64
|
+
if (app.options.getValue("version")) {
|
|
65
|
+
console.log(app.toString());
|
|
66
|
+
return ExitCodes.Ok;
|
|
67
|
+
}
|
|
68
|
+
if (app.options.getValue("showConfig")) {
|
|
69
|
+
console.log(app.options.getRawValues());
|
|
70
|
+
return ExitCodes.Ok;
|
|
71
|
+
}
|
|
72
|
+
if (app.logger.hasErrors()) {
|
|
73
|
+
return ExitCodes.OptionError;
|
|
74
|
+
}
|
|
75
|
+
if (app.options.getValue("treatWarningsAsErrors") && app.logger.hasWarnings()) {
|
|
76
|
+
return ExitCodes.OptionError;
|
|
77
|
+
}
|
|
78
|
+
if (app.options.getValue("entryPoints").length === 0) {
|
|
79
|
+
app.logger.error("No entry points provided");
|
|
80
|
+
return ExitCodes.NoEntryPoints;
|
|
81
|
+
}
|
|
82
|
+
if (app.options.getValue("watch")) {
|
|
83
|
+
await app.convertAndWatch(async (project2) => {
|
|
84
|
+
const out = app.options.getValue("out");
|
|
85
|
+
if (out) {
|
|
86
|
+
await app.generateDocs(project2, out);
|
|
87
|
+
}
|
|
88
|
+
const json = app.options.getValue("json");
|
|
89
|
+
if (json) {
|
|
90
|
+
await app.generateJson(project2, json);
|
|
91
|
+
}
|
|
92
|
+
if (!out && !json) {
|
|
93
|
+
await app.generateDocs(project2, "./docs");
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
return ExitCodes.Ok;
|
|
97
|
+
}
|
|
98
|
+
const project = await app.convert();
|
|
99
|
+
if (!project) {
|
|
100
|
+
return ExitCodes.CompileError;
|
|
101
|
+
}
|
|
102
|
+
if (app.options.getValue("treatWarningsAsErrors") && app.logger.hasWarnings()) {
|
|
103
|
+
return ExitCodes.CompileError;
|
|
104
|
+
}
|
|
105
|
+
app.validate(project);
|
|
106
|
+
if (app.logger.hasErrors()) {
|
|
107
|
+
return ExitCodes.ValidationError;
|
|
108
|
+
}
|
|
109
|
+
if (app.options.getValue("treatWarningsAsErrors") && app.logger.hasWarnings()) {
|
|
110
|
+
return ExitCodes.ValidationError;
|
|
111
|
+
}
|
|
112
|
+
if (app.options.getValue("emit") !== "none") {
|
|
113
|
+
const out = app.options.getValue("out");
|
|
114
|
+
if (out) {
|
|
115
|
+
await app.generateDocs(project, out);
|
|
116
|
+
}
|
|
117
|
+
const json = app.options.getValue("json");
|
|
118
|
+
if (json) {
|
|
119
|
+
await app.generateJson(project, json);
|
|
120
|
+
}
|
|
121
|
+
if (!out && !json) {
|
|
122
|
+
await app.generateDocs(project, "./docs");
|
|
123
|
+
}
|
|
124
|
+
if (app.logger.hasErrors()) {
|
|
125
|
+
return ExitCodes.OutputError;
|
|
126
|
+
}
|
|
127
|
+
if (app.options.getValue("treatWarningsAsErrors") && app.logger.hasWarnings()) {
|
|
128
|
+
return ExitCodes.OutputError;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
console.log(chalk.green(`${pkgName} - Ok`));
|
|
132
|
+
return ExitCodes.Ok;
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
// src/bin/package/gen-docs.ts
|
|
136
|
+
packageGenDocs().then(() => {
|
|
137
|
+
process.exit(0);
|
|
138
|
+
}).catch((error) => {
|
|
139
|
+
console.error(error);
|
|
140
|
+
process.exit(1);
|
|
141
|
+
});
|
|
142
|
+
//# sourceMappingURL=gen-docs.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/initCwd.ts","../../../src/lib/packageName.ts","../../../src/actions/package/gen-docs.ts","../../../src/bin/package/gen-docs.ts"],"sourcesContent":["export function INIT_CWD(): string {\n return process.env.INIT_CWD ?? process.cwd()\n}\n","import { readFileSync } from 'node:fs'\nimport path from 'node:path'\n\nimport { INIT_CWD } from './initCwd.ts'\n\nexport function packageName(): string | undefined {\n if (process.env.npm_package_name) {\n return process.env.npm_package_name\n }\n try {\n const pkgPath = path.join(INIT_CWD(), 'package.json')\n const pkg = JSON.parse(readFileSync(pkgPath, 'utf8')) as Record<string, unknown>\n return pkg.name as string | undefined\n } catch {\n return undefined\n }\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\nimport { INIT_CWD, packageName } from '../../lib/index.ts'\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 = 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 = packageName()\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","#!/usr/bin/env node\n\nimport { packageGenDocs } from '../../actions/index.ts'\n\npackageGenDocs()\n .then(() => {\n process.exit(0)\n })\n .catch((error) => {\n console.error(error)\n process.exit(1)\n })\n"],"mappings":"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","names":["path","path","project"]}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// src/bin/package/lint-verbose.ts
|
|
4
|
+
import chalk2 from "chalk";
|
|
5
|
+
|
|
6
|
+
// src/lib/initCwd.ts
|
|
7
|
+
function INIT_CWD() {
|
|
8
|
+
return process.env.INIT_CWD ?? process.cwd();
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// src/actions/package/lint.ts
|
|
12
|
+
import { readdirSync } from "fs";
|
|
13
|
+
import path from "path";
|
|
14
|
+
import { cwd } from "process";
|
|
15
|
+
import { pathToFileURL } from "url";
|
|
16
|
+
import chalk from "chalk";
|
|
17
|
+
import { ESLint } from "eslint";
|
|
18
|
+
import { findUp } from "find-up";
|
|
19
|
+
import picomatch from "picomatch";
|
|
20
|
+
var dumpMessages = (lintResults) => {
|
|
21
|
+
const colors = ["white", "yellow", "red"];
|
|
22
|
+
const severity = ["none", "warning", "error"];
|
|
23
|
+
for (const lintResult of lintResults) {
|
|
24
|
+
if (lintResult.messages.length > 0) {
|
|
25
|
+
console.log(chalk.gray(`
|
|
26
|
+
${lintResult.filePath}`));
|
|
27
|
+
for (const message of lintResult.messages) {
|
|
28
|
+
console.log(
|
|
29
|
+
chalk.gray(` ${message.line}:${message.column}`),
|
|
30
|
+
chalk[colors[message.severity]](` ${severity[message.severity]}`),
|
|
31
|
+
chalk.white(` ${message.message}`),
|
|
32
|
+
chalk.gray(` ${message.ruleId}`)
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
async function getRootESLintConfig() {
|
|
39
|
+
const configPath = await findUp(["eslint.config.ts", "eslint.config.mjs"]);
|
|
40
|
+
if (configPath === void 0) {
|
|
41
|
+
throw new Error("eslint.config.ts not found in the monorepo");
|
|
42
|
+
}
|
|
43
|
+
return pathToFileURL(configPath);
|
|
44
|
+
}
|
|
45
|
+
function getFiles(dir, ignoreFolders) {
|
|
46
|
+
const currentDirectory = cwd();
|
|
47
|
+
const subDirectory = dir.split(currentDirectory)[1]?.split("/")[1];
|
|
48
|
+
if (ignoreFolders.includes(subDirectory)) return [];
|
|
49
|
+
return readdirSync(dir, { withFileTypes: true }).flatMap((dirent) => {
|
|
50
|
+
const res = path.resolve(dir, dirent.name);
|
|
51
|
+
const relativePath = subDirectory === void 0 ? dirent.name : `${subDirectory}/${dirent.name}`;
|
|
52
|
+
const ignoreMatchers = ignoreFolders.map((pattern) => picomatch(pattern));
|
|
53
|
+
if (ignoreMatchers.some((isMatch) => isMatch(relativePath))) return [];
|
|
54
|
+
return dirent.isDirectory() ? getFiles(res, ignoreFolders) : [res];
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
var packageLint = async (fix = false, verbose = false, cache = true) => {
|
|
58
|
+
const pkg = INIT_CWD();
|
|
59
|
+
const configPath = await getRootESLintConfig();
|
|
60
|
+
const { default: eslintConfig } = await import(configPath.href);
|
|
61
|
+
const start = Date.now();
|
|
62
|
+
const ignoreFolders = ["node_modules", "dist", "packages", ".git", "build", ".yarn", ".vscode", ".github"];
|
|
63
|
+
const engine = new ESLint({
|
|
64
|
+
baseConfig: [...eslintConfig],
|
|
65
|
+
fix,
|
|
66
|
+
warnIgnored: false,
|
|
67
|
+
cache
|
|
68
|
+
});
|
|
69
|
+
const files = getFiles(cwd(), ignoreFolders);
|
|
70
|
+
console.log(chalk.green(`Linting ${pkg} [files = ${files.length}]`));
|
|
71
|
+
if (verbose) {
|
|
72
|
+
for (const file of files) {
|
|
73
|
+
console.log(chalk.gray(` ${file}`));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const lintResults = await engine.lintFiles(files);
|
|
77
|
+
dumpMessages(lintResults);
|
|
78
|
+
if (fix) {
|
|
79
|
+
await ESLint.outputFixes(lintResults);
|
|
80
|
+
}
|
|
81
|
+
const filesCountColor = files.length < 100 ? "green" : files.length < 1e3 ? "yellow" : "red";
|
|
82
|
+
const lintTime = Date.now() - start;
|
|
83
|
+
const lintTimeColor = lintTime < 1e3 ? "green" : lintTime < 3e3 ? "yellow" : "red";
|
|
84
|
+
console.log(chalk.white(`Linted ${chalk[filesCountColor](files.length)} files in ${chalk[lintTimeColor](lintTime)}ms`));
|
|
85
|
+
return lintResults.reduce((prev, lintResult) => prev + lintResult.errorCount, 0);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
// src/bin/package/lint-verbose.ts
|
|
89
|
+
packageLint(false, true).then((value) => {
|
|
90
|
+
if (value) {
|
|
91
|
+
process.exit(value);
|
|
92
|
+
}
|
|
93
|
+
}).catch((reason) => {
|
|
94
|
+
console.error(chalk2.red(reason));
|
|
95
|
+
process.exit(-1);
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=lint-verbose.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/bin/package/lint-verbose.ts","../../../src/lib/initCwd.ts","../../../src/actions/package/lint.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport chalk from 'chalk'\n\nimport { packageLint } from '../../actions/index.ts'\n\npackageLint(false, true)\n .then((value) => {\n if (value) {\n process.exit(value)\n }\n })\n .catch((reason) => {\n console.error(chalk.red(reason))\n process.exit(-1)\n })\n","export function INIT_CWD(): string {\n return process.env.INIT_CWD ?? process.cwd()\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, type Linter } from 'eslint'\nimport { findUp } from 'find-up'\nimport picomatch from 'picomatch'\n\nimport { INIT_CWD } from '../../lib/index.ts'\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 const configPath = await findUp(['eslint.config.ts', 'eslint.config.mjs'])\n\n if (configPath === undefined) {\n throw new Error('eslint.config.ts 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]?.split('/')[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 = INIT_CWD()\n const configPath = await getRootESLintConfig()\n const { default: eslintConfig } = await import(configPath.href) as { default: Linter.Config[] }\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 console.log(chalk.green(`Linting ${pkg} [files = ${files.length}]`))\n if (verbose) {\n for (const file of files) {\n console.log(chalk.gray(`\\t${file}`))\n }\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"],"mappings":"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","names":["chalk","chalk"]}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// src/bin/package/lint.ts
|
|
4
|
+
import chalk2 from "chalk";
|
|
5
|
+
|
|
6
|
+
// src/lib/initCwd.ts
|
|
7
|
+
function INIT_CWD() {
|
|
8
|
+
return process.env.INIT_CWD ?? process.cwd();
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// src/actions/package/lint.ts
|
|
12
|
+
import { readdirSync } from "fs";
|
|
13
|
+
import path from "path";
|
|
14
|
+
import { cwd } from "process";
|
|
15
|
+
import { pathToFileURL } from "url";
|
|
16
|
+
import chalk from "chalk";
|
|
17
|
+
import { ESLint } from "eslint";
|
|
18
|
+
import { findUp } from "find-up";
|
|
19
|
+
import picomatch from "picomatch";
|
|
20
|
+
var dumpMessages = (lintResults) => {
|
|
21
|
+
const colors = ["white", "yellow", "red"];
|
|
22
|
+
const severity = ["none", "warning", "error"];
|
|
23
|
+
for (const lintResult of lintResults) {
|
|
24
|
+
if (lintResult.messages.length > 0) {
|
|
25
|
+
console.log(chalk.gray(`
|
|
26
|
+
${lintResult.filePath}`));
|
|
27
|
+
for (const message of lintResult.messages) {
|
|
28
|
+
console.log(
|
|
29
|
+
chalk.gray(` ${message.line}:${message.column}`),
|
|
30
|
+
chalk[colors[message.severity]](` ${severity[message.severity]}`),
|
|
31
|
+
chalk.white(` ${message.message}`),
|
|
32
|
+
chalk.gray(` ${message.ruleId}`)
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
async function getRootESLintConfig() {
|
|
39
|
+
const configPath = await findUp(["eslint.config.ts", "eslint.config.mjs"]);
|
|
40
|
+
if (configPath === void 0) {
|
|
41
|
+
throw new Error("eslint.config.ts not found in the monorepo");
|
|
42
|
+
}
|
|
43
|
+
return pathToFileURL(configPath);
|
|
44
|
+
}
|
|
45
|
+
function getFiles(dir, ignoreFolders) {
|
|
46
|
+
const currentDirectory = cwd();
|
|
47
|
+
const subDirectory = dir.split(currentDirectory)[1]?.split("/")[1];
|
|
48
|
+
if (ignoreFolders.includes(subDirectory)) return [];
|
|
49
|
+
return readdirSync(dir, { withFileTypes: true }).flatMap((dirent) => {
|
|
50
|
+
const res = path.resolve(dir, dirent.name);
|
|
51
|
+
const relativePath = subDirectory === void 0 ? dirent.name : `${subDirectory}/${dirent.name}`;
|
|
52
|
+
const ignoreMatchers = ignoreFolders.map((pattern) => picomatch(pattern));
|
|
53
|
+
if (ignoreMatchers.some((isMatch) => isMatch(relativePath))) return [];
|
|
54
|
+
return dirent.isDirectory() ? getFiles(res, ignoreFolders) : [res];
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
var packageLint = async (fix = false, verbose = false, cache = true) => {
|
|
58
|
+
const pkg = INIT_CWD();
|
|
59
|
+
const configPath = await getRootESLintConfig();
|
|
60
|
+
const { default: eslintConfig } = await import(configPath.href);
|
|
61
|
+
const start = Date.now();
|
|
62
|
+
const ignoreFolders = ["node_modules", "dist", "packages", ".git", "build", ".yarn", ".vscode", ".github"];
|
|
63
|
+
const engine = new ESLint({
|
|
64
|
+
baseConfig: [...eslintConfig],
|
|
65
|
+
fix,
|
|
66
|
+
warnIgnored: false,
|
|
67
|
+
cache
|
|
68
|
+
});
|
|
69
|
+
const files = getFiles(cwd(), ignoreFolders);
|
|
70
|
+
console.log(chalk.green(`Linting ${pkg} [files = ${files.length}]`));
|
|
71
|
+
if (verbose) {
|
|
72
|
+
for (const file of files) {
|
|
73
|
+
console.log(chalk.gray(` ${file}`));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const lintResults = await engine.lintFiles(files);
|
|
77
|
+
dumpMessages(lintResults);
|
|
78
|
+
if (fix) {
|
|
79
|
+
await ESLint.outputFixes(lintResults);
|
|
80
|
+
}
|
|
81
|
+
const filesCountColor = files.length < 100 ? "green" : files.length < 1e3 ? "yellow" : "red";
|
|
82
|
+
const lintTime = Date.now() - start;
|
|
83
|
+
const lintTimeColor = lintTime < 1e3 ? "green" : lintTime < 3e3 ? "yellow" : "red";
|
|
84
|
+
console.log(chalk.white(`Linted ${chalk[filesCountColor](files.length)} files in ${chalk[lintTimeColor](lintTime)}ms`));
|
|
85
|
+
return lintResults.reduce((prev, lintResult) => prev + lintResult.errorCount, 0);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
// src/bin/package/lint.ts
|
|
89
|
+
packageLint().then((value) => {
|
|
90
|
+
if (value) {
|
|
91
|
+
process.exit(value);
|
|
92
|
+
}
|
|
93
|
+
}).catch((reason) => {
|
|
94
|
+
console.error(chalk2.red(reason));
|
|
95
|
+
process.exit(-1);
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=lint.mjs.map
|