@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,1131 @@
|
|
|
1
|
+
// src/actions/package/clean-outputs.ts
|
|
2
|
+
import path2 from "path";
|
|
3
|
+
import chalk2 from "chalk";
|
|
4
|
+
|
|
5
|
+
// src/lib/deleteGlob.ts
|
|
6
|
+
import fs from "fs";
|
|
7
|
+
import { glob } from "glob";
|
|
8
|
+
var deleteGlob = (globPath) => {
|
|
9
|
+
const files = glob.sync(globPath);
|
|
10
|
+
for (const file of files) {
|
|
11
|
+
fs.rmSync(file, { recursive: true, force: true });
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
// src/lib/initCwd.ts
|
|
16
|
+
function INIT_CWD() {
|
|
17
|
+
return process.env.INIT_CWD ?? process.cwd();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// src/lib/loadConfig.ts
|
|
21
|
+
import chalk from "chalk";
|
|
22
|
+
import { cosmiconfig } from "cosmiconfig";
|
|
23
|
+
import { TypeScriptLoader } from "cosmiconfig-typescript-loader";
|
|
24
|
+
import deepmerge from "deepmerge";
|
|
25
|
+
var config;
|
|
26
|
+
var rootConfigPath;
|
|
27
|
+
function createExplorer() {
|
|
28
|
+
return cosmiconfig("xy", { cache: true, loaders: { ".ts": TypeScriptLoader() } });
|
|
29
|
+
}
|
|
30
|
+
var loadConfig = async (params) => {
|
|
31
|
+
if (config === void 0) {
|
|
32
|
+
const cosmicConfigResult = await createExplorer().search();
|
|
33
|
+
config = cosmicConfigResult?.config ?? {};
|
|
34
|
+
rootConfigPath = cosmicConfigResult?.filepath;
|
|
35
|
+
const configFilePath = cosmicConfigResult?.filepath;
|
|
36
|
+
if (configFilePath !== void 0) {
|
|
37
|
+
console.log(chalk.green(`Loaded config from ${configFilePath}`));
|
|
38
|
+
if (config.verbose) {
|
|
39
|
+
console.log(chalk.gray(`${JSON.stringify(config, null, 2)}`));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return deepmerge(config, params ?? {});
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// src/lib/packageName.ts
|
|
47
|
+
import { readFileSync } from "fs";
|
|
48
|
+
import path from "path";
|
|
49
|
+
function packageName() {
|
|
50
|
+
if (process.env.npm_package_name) {
|
|
51
|
+
return process.env.npm_package_name;
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
const pkgPath = path.join(INIT_CWD(), "package.json");
|
|
55
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
|
|
56
|
+
return pkg.name;
|
|
57
|
+
} catch {
|
|
58
|
+
return void 0;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// src/actions/package/clean-outputs.ts
|
|
63
|
+
var packageCleanOutputs = () => {
|
|
64
|
+
const pkg = INIT_CWD();
|
|
65
|
+
const pkgName = packageName();
|
|
66
|
+
const folders = [path2.join(pkg, "dist"), path2.join(pkg, "build"), path2.join(pkg, "docs")];
|
|
67
|
+
console.log(chalk2.green(`Cleaning Outputs [${pkgName}]`));
|
|
68
|
+
for (const folder of folders) {
|
|
69
|
+
deleteGlob(folder);
|
|
70
|
+
}
|
|
71
|
+
return 0;
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
// src/actions/package/clean-typescript.ts
|
|
75
|
+
import path3 from "path";
|
|
76
|
+
import chalk3 from "chalk";
|
|
77
|
+
var packageCleanTypescript = () => {
|
|
78
|
+
const pkg = INIT_CWD();
|
|
79
|
+
const pkgName = packageName();
|
|
80
|
+
console.log(chalk3.green(`Cleaning Typescript [${pkgName}]`));
|
|
81
|
+
const files = [path3.join(pkg, "*.tsbuildinfo"), path3.join(pkg, ".tsconfig.*"), path3.join(pkg, ".eslintcache")];
|
|
82
|
+
for (const file of files) {
|
|
83
|
+
deleteGlob(file);
|
|
84
|
+
}
|
|
85
|
+
return 0;
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
// src/actions/package/clean.ts
|
|
89
|
+
var packageClean = () => {
|
|
90
|
+
return [packageCleanOutputs(), packageCleanTypescript()].reduce((prev, value) => prev + value, 0);
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
// src/actions/package/compile/compile.ts
|
|
94
|
+
import { cwd as cwd4 } from "process";
|
|
95
|
+
import chalk8 from "chalk";
|
|
96
|
+
|
|
97
|
+
// src/actions/package/compile/packageCompileTsup.ts
|
|
98
|
+
import chalk7 from "chalk";
|
|
99
|
+
import { build, defineConfig } from "tsup";
|
|
100
|
+
|
|
101
|
+
// src/actions/package/compile/inputs.ts
|
|
102
|
+
import chalk4 from "chalk";
|
|
103
|
+
import { glob as glob2 } from "glob";
|
|
104
|
+
var getAllInputs = (srcDir, verbose = false) => {
|
|
105
|
+
return [...glob2.sync(`${srcDir}/**/*.ts`, { posix: true }).map((file) => {
|
|
106
|
+
const result = file.slice(Math.max(0, srcDir.length + 1));
|
|
107
|
+
if (verbose) {
|
|
108
|
+
console.log(chalk4.gray(`getAllInputs: ${JSON.stringify(result, null, 2)}`));
|
|
109
|
+
}
|
|
110
|
+
return result;
|
|
111
|
+
}), ...glob2.sync(`${srcDir}/**/*.tsx`, { posix: true }).map((file) => {
|
|
112
|
+
const result = file.slice(Math.max(0, srcDir.length + 1));
|
|
113
|
+
if (verbose) {
|
|
114
|
+
console.log(chalk4.gray(`getAllInputs: ${JSON.stringify(result, null, 2)}`));
|
|
115
|
+
}
|
|
116
|
+
return result;
|
|
117
|
+
})];
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
// src/actions/package/compile/buildEntries.ts
|
|
121
|
+
var isSpecOrStory = (entry) => {
|
|
122
|
+
return entry.includes(".spec.") || entry.includes(".stories.") || entry.startsWith("spec/") || entry.includes("/spec/") || entry.startsWith("stories/") || entry.includes("/stories/") || entry === "spec.ts" || entry.endsWith("/spec.ts") || entry === "stories.ts" || entry.endsWith("/stories.ts");
|
|
123
|
+
};
|
|
124
|
+
var buildEntries = (srcDir, entryMode = "single", options, excludeSpecAndStories = true, verbose = false) => {
|
|
125
|
+
let entries;
|
|
126
|
+
switch (entryMode) {
|
|
127
|
+
case "platform": {
|
|
128
|
+
entries = ["index-node.ts", "index-browser.ts"];
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
case "all": {
|
|
132
|
+
entries = (excludeSpecAndStories ? getAllInputs(srcDir).filter((entry) => !isSpecOrStory(entry)) : getAllInputs(srcDir)).filter((entry) => !entry.endsWith(".d.ts"));
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
case "custom": {
|
|
136
|
+
entries = [];
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
default: {
|
|
140
|
+
entries = ["index.ts"];
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (typeof options !== "boolean" && Array.isArray(options?.entry)) {
|
|
145
|
+
entries.push(...options.entry);
|
|
146
|
+
}
|
|
147
|
+
if (verbose) console.log(`buildEntries [${entryMode}] ${entries.length}`);
|
|
148
|
+
return entries;
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
// src/actions/package/compile/deepMerge.ts
|
|
152
|
+
function deepMerge(target, source) {
|
|
153
|
+
if (!source || typeof source !== "object") return target;
|
|
154
|
+
for (const key of Object.keys(source)) {
|
|
155
|
+
const sourceVal = source[key];
|
|
156
|
+
if (typeof sourceVal === "object" && sourceVal !== null && !Array.isArray(sourceVal)) {
|
|
157
|
+
if (!target[key] || typeof target[key] !== "object") {
|
|
158
|
+
target[key] = {};
|
|
159
|
+
}
|
|
160
|
+
deepMerge(target[key], sourceVal);
|
|
161
|
+
} else {
|
|
162
|
+
target[key] = sourceVal;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return target;
|
|
166
|
+
}
|
|
167
|
+
function deepMergeObjects(objects) {
|
|
168
|
+
const result = {};
|
|
169
|
+
for (const obj of objects) {
|
|
170
|
+
deepMerge(result, obj);
|
|
171
|
+
}
|
|
172
|
+
return result;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// src/actions/package/compile/packageCompileTsc.ts
|
|
176
|
+
import { cwd as cwd2 } from "process";
|
|
177
|
+
import chalk5 from "chalk";
|
|
178
|
+
import { createProgramFromConfig } from "tsc-prog";
|
|
179
|
+
import ts, {
|
|
180
|
+
DiagnosticCategory,
|
|
181
|
+
formatDiagnosticsWithColorAndContext,
|
|
182
|
+
getPreEmitDiagnostics,
|
|
183
|
+
sys
|
|
184
|
+
} from "typescript";
|
|
185
|
+
|
|
186
|
+
// src/actions/package/compile/getCompilerOptions.ts
|
|
187
|
+
import { cwd } from "process";
|
|
188
|
+
import deepmerge2 from "deepmerge";
|
|
189
|
+
import { getTsconfig } from "get-tsconfig";
|
|
190
|
+
var getCompilerOptions = (options = {}, fileName = "tsconfig.json") => {
|
|
191
|
+
const resolvedTsConfigCompilerOptions = getTsconfig(cwd(), fileName)?.config?.compilerOptions ?? {};
|
|
192
|
+
return deepmerge2(resolvedTsConfigCompilerOptions, options);
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
// src/actions/package/compile/packageCompileTsc.ts
|
|
196
|
+
var packageCompileTsc = (platform, entries, srcDir = "src", outDir = "dist", compilerOptionsParam, verbose = false) => {
|
|
197
|
+
const pkg = cwd2();
|
|
198
|
+
if (verbose) {
|
|
199
|
+
console.log(chalk5.cyan(`Validating code START: ${entries.length} files to ${outDir} from ${srcDir}`));
|
|
200
|
+
}
|
|
201
|
+
const configFilePath = ts.findConfigFile(
|
|
202
|
+
pkg,
|
|
203
|
+
(fileName) => ts.sys.fileExists(fileName),
|
|
204
|
+
"tsconfig.json"
|
|
205
|
+
);
|
|
206
|
+
if (configFilePath === void 0) {
|
|
207
|
+
throw new Error("Could not find tsconfig.json");
|
|
208
|
+
}
|
|
209
|
+
const compilerOptions = {
|
|
210
|
+
...getCompilerOptions({
|
|
211
|
+
removeComments: false,
|
|
212
|
+
skipDefaultLibCheck: true,
|
|
213
|
+
skipLibCheck: true,
|
|
214
|
+
sourceMap: false
|
|
215
|
+
}),
|
|
216
|
+
...compilerOptionsParam,
|
|
217
|
+
outDir: `${outDir}/${platform}`,
|
|
218
|
+
emitDeclarationOnly: true,
|
|
219
|
+
noEmit: false
|
|
220
|
+
};
|
|
221
|
+
console.log(chalk5.cyan(`Validating Files: ${entries.length}`));
|
|
222
|
+
if (verbose) {
|
|
223
|
+
for (const entry of entries) {
|
|
224
|
+
console.log(chalk5.grey(`Validating: ${entry}`));
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
try {
|
|
228
|
+
if (entries.length > 0) {
|
|
229
|
+
const program = createProgramFromConfig({
|
|
230
|
+
configFilePath,
|
|
231
|
+
basePath: pkg,
|
|
232
|
+
compilerOptions,
|
|
233
|
+
files: entries.map((entry) => `${srcDir}/${entry}`),
|
|
234
|
+
include: [`${srcDir}/**/*.*`]
|
|
235
|
+
});
|
|
236
|
+
const diagnostics = getPreEmitDiagnostics(program);
|
|
237
|
+
if (diagnostics.length > 0) {
|
|
238
|
+
const formattedDiagnostics = formatDiagnosticsWithColorAndContext(
|
|
239
|
+
diagnostics,
|
|
240
|
+
{
|
|
241
|
+
getCanonicalFileName: (fileName) => fileName,
|
|
242
|
+
getCurrentDirectory: () => srcDir,
|
|
243
|
+
getNewLine: () => sys.newLine
|
|
244
|
+
}
|
|
245
|
+
);
|
|
246
|
+
console.error(formattedDiagnostics);
|
|
247
|
+
}
|
|
248
|
+
const nonEmitPatterns = [".stories.", "/stories/", "/stories.", ".spec.", "/spec/", "/spec.", ".example."];
|
|
249
|
+
program.emit(void 0, (fileName, text, writeByteOrderMark) => {
|
|
250
|
+
if (nonEmitPatterns.some((pattern) => fileName.includes(pattern))) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
ts.sys.writeFile(fileName, text, writeByteOrderMark);
|
|
254
|
+
});
|
|
255
|
+
return diagnostics.reduce((acc, diag) => acc + (diag.category === DiagnosticCategory.Error ? 1 : 0), 0);
|
|
256
|
+
}
|
|
257
|
+
return 0;
|
|
258
|
+
} finally {
|
|
259
|
+
if (verbose) {
|
|
260
|
+
console.log(chalk5.cyan(`Validating code FINISH: ${entries.length} files to ${outDir} from ${srcDir}`));
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
// src/actions/package/compile/packageCompileTscTypes.ts
|
|
266
|
+
import path4 from "path";
|
|
267
|
+
import { cwd as cwd3 } from "process";
|
|
268
|
+
import chalk6 from "chalk";
|
|
269
|
+
import { rollup } from "rollup";
|
|
270
|
+
import dts from "rollup-plugin-dts";
|
|
271
|
+
import nodeExternals from "rollup-plugin-node-externals";
|
|
272
|
+
var ignoredWarningCodes = /* @__PURE__ */ new Set(["EMPTY_BUNDLE", "UNRESOLVED_IMPORT"]);
|
|
273
|
+
async function bundleDts(inputPath, outputPath, platform, options, verbose = false) {
|
|
274
|
+
const pkg = cwd3();
|
|
275
|
+
const tsconfigPath = path4.resolve(pkg, "tsconfig.json");
|
|
276
|
+
const nodePlugIns = platform === "node" ? [nodeExternals()] : [];
|
|
277
|
+
try {
|
|
278
|
+
const bundle = await rollup({
|
|
279
|
+
input: inputPath,
|
|
280
|
+
plugins: [dts({
|
|
281
|
+
...options,
|
|
282
|
+
tsconfig: tsconfigPath,
|
|
283
|
+
compilerOptions: {
|
|
284
|
+
emitDeclarationOnly: true,
|
|
285
|
+
noEmit: false,
|
|
286
|
+
declarationMap: true
|
|
287
|
+
}
|
|
288
|
+
}), ...nodePlugIns],
|
|
289
|
+
onwarn(warning, warn) {
|
|
290
|
+
if (ignoredWarningCodes.has(warning.code ?? "")) {
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
console.warn(chalk6.yellow(`[${warning.code}] ${warning.message}`));
|
|
294
|
+
console.warn(chalk6.gray(inputPath));
|
|
295
|
+
warn(warning);
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
await bundle.write({
|
|
299
|
+
file: outputPath,
|
|
300
|
+
format: "es"
|
|
301
|
+
});
|
|
302
|
+
} catch (ex) {
|
|
303
|
+
const error = ex;
|
|
304
|
+
console.warn(chalk6.red(error));
|
|
305
|
+
console.warn(chalk6.gray(inputPath));
|
|
306
|
+
}
|
|
307
|
+
if (verbose) {
|
|
308
|
+
console.log(`Bundled declarations written to ${outputPath}`);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
var packageCompileTscTypes = async (entries, outDir, platform, srcDir = "build", verbose = false) => {
|
|
312
|
+
if (verbose) {
|
|
313
|
+
console.log(chalk6.cyan(`Compiling Types START [${platform}]: ${entries.length} files to ${outDir} from ${srcDir}`));
|
|
314
|
+
console.log(`Entries: ${entries.join(", ")}`);
|
|
315
|
+
}
|
|
316
|
+
const pkg = cwd3();
|
|
317
|
+
const srcRoot = `${pkg}/${srcDir}/${platform}`;
|
|
318
|
+
const entryNameToTypeName = (entry) => {
|
|
319
|
+
const splitEntryName = entry.split(".");
|
|
320
|
+
const newEntryExtension = "d." + splitEntryName.at(-1);
|
|
321
|
+
return [...splitEntryName.slice(0, -1), newEntryExtension].join(".");
|
|
322
|
+
};
|
|
323
|
+
const compilerOptions = getCompilerOptions({
|
|
324
|
+
removeComments: false,
|
|
325
|
+
skipDefaultLibCheck: true,
|
|
326
|
+
skipLibCheck: true,
|
|
327
|
+
declarationMap: true,
|
|
328
|
+
emitDeclarationOnly: true,
|
|
329
|
+
noEmit: true
|
|
330
|
+
});
|
|
331
|
+
const entryNames = entries.map((entry) => entry.split(`${srcDir}/`).at(-1) ?? entry);
|
|
332
|
+
await Promise.all(entryNames.map(async (entryName) => {
|
|
333
|
+
const entryTypeName = entryNameToTypeName(entryName);
|
|
334
|
+
await bundleDts(`${srcRoot}/${entryTypeName}`, `${outDir}/${entryTypeName}`, platform, { compilerOptions }, verbose);
|
|
335
|
+
}));
|
|
336
|
+
if (verbose) {
|
|
337
|
+
console.log(chalk6.cyan(`Compiling Types FINISH: ${entries.length} files to ${outDir} from ${srcDir}`));
|
|
338
|
+
}
|
|
339
|
+
return 0;
|
|
340
|
+
};
|
|
341
|
+
|
|
342
|
+
// src/actions/package/compile/packageCompileTsup.ts
|
|
343
|
+
var compileFolder = async (srcDir, entries, buildDir, options, bundleTypes = false, verbose) => {
|
|
344
|
+
const outDir = options?.outDir ?? "dist";
|
|
345
|
+
if (verbose) {
|
|
346
|
+
console.log(`compileFolder [${srcDir}, ${options?.outDir}]`);
|
|
347
|
+
}
|
|
348
|
+
if (entries.length === 0) {
|
|
349
|
+
console.warn(chalk7.yellow(`No entries found in ${srcDir} to compile`));
|
|
350
|
+
return 0;
|
|
351
|
+
}
|
|
352
|
+
if (verbose) {
|
|
353
|
+
console.log(chalk7.gray(`buildDir [${buildDir}]`));
|
|
354
|
+
}
|
|
355
|
+
const validationResult = packageCompileTsc(options?.platform ?? "neutral", entries, srcDir, buildDir, void 0, verbose);
|
|
356
|
+
if (validationResult !== 0) {
|
|
357
|
+
console.error(chalk7.red(`Compile:Validation had ${validationResult} errors`));
|
|
358
|
+
return validationResult;
|
|
359
|
+
}
|
|
360
|
+
const optionsParams = tsupOptions([{
|
|
361
|
+
bundle: true,
|
|
362
|
+
cjsInterop: true,
|
|
363
|
+
clean: false,
|
|
364
|
+
dts: false,
|
|
365
|
+
format: ["esm"],
|
|
366
|
+
outDir,
|
|
367
|
+
silent: true,
|
|
368
|
+
sourcemap: true,
|
|
369
|
+
splitting: false,
|
|
370
|
+
tsconfig: "tsconfig.json",
|
|
371
|
+
...options,
|
|
372
|
+
entry: entries.map((entry) => `${srcDir}/${entry}`)
|
|
373
|
+
}]);
|
|
374
|
+
const optionsResult = defineConfig(optionsParams);
|
|
375
|
+
const optionsList = (await Promise.all(
|
|
376
|
+
(Array.isArray(optionsResult) ? optionsResult : [optionsResult]).flatMap(async (options2) => {
|
|
377
|
+
const result = typeof options2 === "function" ? await options2({}) : [options2];
|
|
378
|
+
return Array.isArray(result) ? result : [result];
|
|
379
|
+
})
|
|
380
|
+
)).flat();
|
|
381
|
+
if (verbose) {
|
|
382
|
+
console.log(chalk7.cyan(`TSUP:build:start [${srcDir}]`));
|
|
383
|
+
console.log(chalk7.gray(`TSUP:build:options [${JSON.stringify(optionsList, null, 2)}]`));
|
|
384
|
+
}
|
|
385
|
+
await Promise.all(optionsList.map((options2) => build(options2)));
|
|
386
|
+
if (verbose) {
|
|
387
|
+
console.log(chalk7.cyan(`TSUP:build:stop [${srcDir}]`));
|
|
388
|
+
}
|
|
389
|
+
if (bundleTypes) {
|
|
390
|
+
await packageCompileTscTypes(entries, outDir, options?.platform ?? "neutral", buildDir, verbose);
|
|
391
|
+
}
|
|
392
|
+
return 0;
|
|
393
|
+
};
|
|
394
|
+
var tsupOptions = (options = []) => {
|
|
395
|
+
const standardLoaders = {
|
|
396
|
+
".gif": "copy",
|
|
397
|
+
".html": "copy",
|
|
398
|
+
".jpg": "copy",
|
|
399
|
+
".json": "json",
|
|
400
|
+
".png": "copy",
|
|
401
|
+
".svg": "text",
|
|
402
|
+
".webp": "copy"
|
|
403
|
+
};
|
|
404
|
+
const standardOptions = {
|
|
405
|
+
bundle: true,
|
|
406
|
+
format: ["esm"],
|
|
407
|
+
loader: standardLoaders,
|
|
408
|
+
outExtension: ({ format }) => format === "esm" ? { js: ".mjs" } : { js: ".cjs" },
|
|
409
|
+
skipNodeModulesBundle: true,
|
|
410
|
+
sourcemap: true,
|
|
411
|
+
target: "esnext"
|
|
412
|
+
};
|
|
413
|
+
return deepMergeObjects([standardOptions, ...options]);
|
|
414
|
+
};
|
|
415
|
+
var packageCompileTsup = async (config2) => {
|
|
416
|
+
const compile = config2?.compile;
|
|
417
|
+
const verbose = config2?.verbose ?? false;
|
|
418
|
+
const outDirAsBuildDir = compile?.outDirAsBuildDir ?? true;
|
|
419
|
+
const bundleTypes = compile?.bundleTypes ?? false;
|
|
420
|
+
if (verbose) {
|
|
421
|
+
console.log("Compiling with TSUP");
|
|
422
|
+
}
|
|
423
|
+
const compileForNode = compile?.node ?? { src: {} };
|
|
424
|
+
const compileForBrowser = compile?.browser ?? { src: {} };
|
|
425
|
+
const compileForNeutral = compile?.neutral ?? { src: {} };
|
|
426
|
+
return (await Promise.all(
|
|
427
|
+
Object.entries(compileForNode).map(async ([srcDir, options]) => {
|
|
428
|
+
const optionsObject = typeof options === "object" ? options : {};
|
|
429
|
+
const inEsBuildOptions = typeof compile?.node?.esbuildOptions === "object" ? compile?.node?.esbuildOptions : {};
|
|
430
|
+
const entry = buildEntries(srcDir, compile?.entryMode, options, true, verbose);
|
|
431
|
+
const platform = "node";
|
|
432
|
+
const rootOutDir = optionsObject.outDir ?? "dist";
|
|
433
|
+
const outDir = rootOutDir + "/" + platform;
|
|
434
|
+
return typeof srcDir === "string" ? await compileFolder(
|
|
435
|
+
srcDir,
|
|
436
|
+
entry,
|
|
437
|
+
outDirAsBuildDir ? rootOutDir : "build",
|
|
438
|
+
tsupOptions([
|
|
439
|
+
inEsBuildOptions,
|
|
440
|
+
compile?.tsup?.options ?? {},
|
|
441
|
+
typeof options === "object" ? options : {},
|
|
442
|
+
{ platform: "node", outDir }
|
|
443
|
+
]),
|
|
444
|
+
bundleTypes,
|
|
445
|
+
verbose
|
|
446
|
+
) : 0;
|
|
447
|
+
})
|
|
448
|
+
)).reduce((prev, value) => prev + value, 0) + (await Promise.all(
|
|
449
|
+
Object.entries(compileForBrowser).map(async ([srcDir, options]) => {
|
|
450
|
+
const optionsObject = typeof options === "object" ? options : {};
|
|
451
|
+
const inEsBuildOptions = typeof compile?.browser?.esbuildOptions === "object" ? compile?.browser?.esbuildOptions : {};
|
|
452
|
+
const entry = buildEntries(srcDir, compile?.entryMode, options, true, verbose);
|
|
453
|
+
const platform = "browser";
|
|
454
|
+
const rootOutDir = optionsObject.outDir ?? "dist";
|
|
455
|
+
const outDir = rootOutDir + "/" + platform;
|
|
456
|
+
return typeof srcDir === "string" ? await compileFolder(
|
|
457
|
+
srcDir,
|
|
458
|
+
entry,
|
|
459
|
+
outDirAsBuildDir ? rootOutDir : "build",
|
|
460
|
+
tsupOptions([
|
|
461
|
+
inEsBuildOptions,
|
|
462
|
+
compile?.tsup?.options ?? {},
|
|
463
|
+
typeof options === "object" ? options : {},
|
|
464
|
+
{ platform: "browser", outDir }
|
|
465
|
+
]),
|
|
466
|
+
bundleTypes,
|
|
467
|
+
verbose
|
|
468
|
+
) : 0;
|
|
469
|
+
})
|
|
470
|
+
)).reduce((prev, value) => prev + value, 0) + (await Promise.all(
|
|
471
|
+
Object.entries(compileForNeutral).map(async ([srcDir, options]) => {
|
|
472
|
+
const optionsObject = typeof options === "object" ? options : {};
|
|
473
|
+
const inEsBuildOptions = typeof compile?.neutral?.esbuildOptions === "object" ? compile?.neutral?.esbuildOptions : {};
|
|
474
|
+
const entry = buildEntries(srcDir, compile?.entryMode, options, true, verbose);
|
|
475
|
+
const platform = "neutral";
|
|
476
|
+
const rootOutDir = optionsObject.outDir ?? "dist";
|
|
477
|
+
const outDir = rootOutDir + "/" + platform;
|
|
478
|
+
return typeof srcDir === "string" ? await compileFolder(
|
|
479
|
+
srcDir,
|
|
480
|
+
entry,
|
|
481
|
+
outDirAsBuildDir ? rootOutDir : "build",
|
|
482
|
+
tsupOptions([
|
|
483
|
+
inEsBuildOptions,
|
|
484
|
+
compile?.tsup?.options ?? {},
|
|
485
|
+
typeof options === "object" ? options : {},
|
|
486
|
+
{ platform: "neutral", outDir }
|
|
487
|
+
]),
|
|
488
|
+
bundleTypes,
|
|
489
|
+
verbose
|
|
490
|
+
) : 0;
|
|
491
|
+
})
|
|
492
|
+
)).reduce((prev, value) => prev + value, 0) + 0;
|
|
493
|
+
};
|
|
494
|
+
|
|
495
|
+
// src/actions/package/compile/compile.ts
|
|
496
|
+
var packageCompile = async (inConfig = {}) => {
|
|
497
|
+
const pkg = cwd4();
|
|
498
|
+
console.log(chalk8.green(`Compiling ${pkg}`));
|
|
499
|
+
const config2 = await loadConfig(inConfig);
|
|
500
|
+
return await packageCompileTsup(config2);
|
|
501
|
+
};
|
|
502
|
+
|
|
503
|
+
// src/actions/package/compile/XyConfig.ts
|
|
504
|
+
var ALL_PUBLINT_CHECKS = [
|
|
505
|
+
"files",
|
|
506
|
+
"importToDefault",
|
|
507
|
+
"main",
|
|
508
|
+
"module",
|
|
509
|
+
"peerDeps",
|
|
510
|
+
"publint",
|
|
511
|
+
"resolutions",
|
|
512
|
+
"rootSource",
|
|
513
|
+
"rootTypes",
|
|
514
|
+
"sideEffects",
|
|
515
|
+
"source",
|
|
516
|
+
"types"
|
|
517
|
+
];
|
|
518
|
+
var PUBLISH_ONLY_CHECKS = [
|
|
519
|
+
"files",
|
|
520
|
+
"importToDefault",
|
|
521
|
+
"main",
|
|
522
|
+
"module",
|
|
523
|
+
"publint",
|
|
524
|
+
"rootSource",
|
|
525
|
+
"rootTypes",
|
|
526
|
+
"sideEffects",
|
|
527
|
+
"source",
|
|
528
|
+
"types"
|
|
529
|
+
];
|
|
530
|
+
|
|
531
|
+
// src/actions/package/copy-assets.ts
|
|
532
|
+
import path5 from "path/posix";
|
|
533
|
+
import chalk9 from "chalk";
|
|
534
|
+
import cpy from "cpy";
|
|
535
|
+
var copyTargetAssets = async (target, name, location) => {
|
|
536
|
+
try {
|
|
537
|
+
const values = await cpy(
|
|
538
|
+
["**/*.jpg", "**/*.png", "**/*.gif", "**/*.svg", "**/*.webp", "**/*.sass", "**/*.scss", "**/*.gif", "**/*.css"],
|
|
539
|
+
`../dist/${target}`,
|
|
540
|
+
{
|
|
541
|
+
cwd: path5.join(location, "src"),
|
|
542
|
+
flat: false
|
|
543
|
+
}
|
|
544
|
+
);
|
|
545
|
+
if (values.length > 0) {
|
|
546
|
+
console.log(chalk9.green(`Copying Assets [${target.toUpperCase()}] - ${name} - ${location}`));
|
|
547
|
+
}
|
|
548
|
+
for (const value of values) {
|
|
549
|
+
console.log(`${value.split("/").pop()} => ./dist/${target}`);
|
|
550
|
+
}
|
|
551
|
+
return 0;
|
|
552
|
+
} catch (ex) {
|
|
553
|
+
const error = ex;
|
|
554
|
+
console.log(`Copy Assets Failed: ${name}: ${error.message}`);
|
|
555
|
+
return 1;
|
|
556
|
+
}
|
|
557
|
+
};
|
|
558
|
+
var packageCopyAssets = async ({ target }) => {
|
|
559
|
+
const pkg = INIT_CWD();
|
|
560
|
+
const pkgName = packageName() ?? "Unknown";
|
|
561
|
+
switch (target) {
|
|
562
|
+
case "esm": {
|
|
563
|
+
return await copyTargetAssets("esm", pkgName, pkg);
|
|
564
|
+
}
|
|
565
|
+
case "cjs": {
|
|
566
|
+
return await copyTargetAssets("cjs", pkgName, pkg);
|
|
567
|
+
}
|
|
568
|
+
default: {
|
|
569
|
+
return await copyTargetAssets("esm", pkgName, pkg) || await copyTargetAssets("cjs", pkgName, pkg);
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
};
|
|
573
|
+
|
|
574
|
+
// src/actions/package/cycle.ts
|
|
575
|
+
import { cruise } from "dependency-cruiser";
|
|
576
|
+
var packageCycle = async () => {
|
|
577
|
+
const pkg = INIT_CWD();
|
|
578
|
+
const pkgName = packageName();
|
|
579
|
+
const cruiseOptions = {
|
|
580
|
+
ruleSet: {
|
|
581
|
+
forbidden: [
|
|
582
|
+
{
|
|
583
|
+
name: "no-circular",
|
|
584
|
+
severity: "error",
|
|
585
|
+
comment: "This dependency creates a circular reference",
|
|
586
|
+
from: {},
|
|
587
|
+
to: { circular: true }
|
|
588
|
+
}
|
|
589
|
+
]
|
|
590
|
+
},
|
|
591
|
+
exclude: "node_modules|packages/.*/packages",
|
|
592
|
+
validate: true,
|
|
593
|
+
doNotFollow: { path: "node_modules|packages/.*/packages" },
|
|
594
|
+
tsPreCompilationDeps: false,
|
|
595
|
+
combinedDependencies: true,
|
|
596
|
+
outputType: "err"
|
|
597
|
+
};
|
|
598
|
+
const target = `${pkg}/src`;
|
|
599
|
+
console.log(`Checking for circular dependencies in ${target}...`);
|
|
600
|
+
const result = await cruise([target], cruiseOptions);
|
|
601
|
+
console.log(result.output);
|
|
602
|
+
if (result.exitCode === 0) {
|
|
603
|
+
console.log(`${pkgName} \u2705 No dependency violations`);
|
|
604
|
+
} else {
|
|
605
|
+
console.error(`${pkgName} \u274C Dependency violations found`);
|
|
606
|
+
}
|
|
607
|
+
return result.exitCode;
|
|
608
|
+
};
|
|
609
|
+
|
|
610
|
+
// src/actions/package/gen-docs.ts
|
|
611
|
+
import { existsSync } from "fs";
|
|
612
|
+
import path6 from "path";
|
|
613
|
+
import chalk10 from "chalk";
|
|
614
|
+
import {
|
|
615
|
+
Application,
|
|
616
|
+
ArgumentsReader,
|
|
617
|
+
TSConfigReader,
|
|
618
|
+
TypeDocReader
|
|
619
|
+
} from "typedoc";
|
|
620
|
+
var ExitCodes = {
|
|
621
|
+
CompileError: 3,
|
|
622
|
+
ExceptionThrown: 6,
|
|
623
|
+
NoEntryPoints: 2,
|
|
624
|
+
Ok: 0,
|
|
625
|
+
OptionError: 1,
|
|
626
|
+
OutputError: 5,
|
|
627
|
+
ValidationError: 4
|
|
628
|
+
};
|
|
629
|
+
var packageGenDocs = async () => {
|
|
630
|
+
const pkg = INIT_CWD();
|
|
631
|
+
if (pkg !== void 0 && !existsSync(path6.join(pkg, "typedoc.json"))) {
|
|
632
|
+
return;
|
|
633
|
+
}
|
|
634
|
+
const app = await Application.bootstrap({
|
|
635
|
+
entryPointStrategy: "merge",
|
|
636
|
+
entryPoints: [`${pkg}/src/**/*.ts`, `${pkg}/packages/*/dist/docs.json`],
|
|
637
|
+
excludeExternals: true,
|
|
638
|
+
json: `${pkg}/dist/docs.json`,
|
|
639
|
+
logLevel: "Error",
|
|
640
|
+
tsconfig: `${pkg}/tsconfig.json`
|
|
641
|
+
});
|
|
642
|
+
app.options.addReader(new ArgumentsReader(0));
|
|
643
|
+
app.options.addReader(new TypeDocReader());
|
|
644
|
+
app.options.addReader(new TSConfigReader());
|
|
645
|
+
app.options.addReader(new ArgumentsReader(300));
|
|
646
|
+
return await runTypeDoc(app);
|
|
647
|
+
};
|
|
648
|
+
var runTypeDoc = async (app) => {
|
|
649
|
+
const pkgName = packageName();
|
|
650
|
+
if (app.options.getValue("version")) {
|
|
651
|
+
console.log(app.toString());
|
|
652
|
+
return ExitCodes.Ok;
|
|
653
|
+
}
|
|
654
|
+
if (app.options.getValue("showConfig")) {
|
|
655
|
+
console.log(app.options.getRawValues());
|
|
656
|
+
return ExitCodes.Ok;
|
|
657
|
+
}
|
|
658
|
+
if (app.logger.hasErrors()) {
|
|
659
|
+
return ExitCodes.OptionError;
|
|
660
|
+
}
|
|
661
|
+
if (app.options.getValue("treatWarningsAsErrors") && app.logger.hasWarnings()) {
|
|
662
|
+
return ExitCodes.OptionError;
|
|
663
|
+
}
|
|
664
|
+
if (app.options.getValue("entryPoints").length === 0) {
|
|
665
|
+
app.logger.error("No entry points provided");
|
|
666
|
+
return ExitCodes.NoEntryPoints;
|
|
667
|
+
}
|
|
668
|
+
if (app.options.getValue("watch")) {
|
|
669
|
+
await app.convertAndWatch(async (project2) => {
|
|
670
|
+
const out = app.options.getValue("out");
|
|
671
|
+
if (out) {
|
|
672
|
+
await app.generateDocs(project2, out);
|
|
673
|
+
}
|
|
674
|
+
const json = app.options.getValue("json");
|
|
675
|
+
if (json) {
|
|
676
|
+
await app.generateJson(project2, json);
|
|
677
|
+
}
|
|
678
|
+
if (!out && !json) {
|
|
679
|
+
await app.generateDocs(project2, "./docs");
|
|
680
|
+
}
|
|
681
|
+
});
|
|
682
|
+
return ExitCodes.Ok;
|
|
683
|
+
}
|
|
684
|
+
const project = await app.convert();
|
|
685
|
+
if (!project) {
|
|
686
|
+
return ExitCodes.CompileError;
|
|
687
|
+
}
|
|
688
|
+
if (app.options.getValue("treatWarningsAsErrors") && app.logger.hasWarnings()) {
|
|
689
|
+
return ExitCodes.CompileError;
|
|
690
|
+
}
|
|
691
|
+
app.validate(project);
|
|
692
|
+
if (app.logger.hasErrors()) {
|
|
693
|
+
return ExitCodes.ValidationError;
|
|
694
|
+
}
|
|
695
|
+
if (app.options.getValue("treatWarningsAsErrors") && app.logger.hasWarnings()) {
|
|
696
|
+
return ExitCodes.ValidationError;
|
|
697
|
+
}
|
|
698
|
+
if (app.options.getValue("emit") !== "none") {
|
|
699
|
+
const out = app.options.getValue("out");
|
|
700
|
+
if (out) {
|
|
701
|
+
await app.generateDocs(project, out);
|
|
702
|
+
}
|
|
703
|
+
const json = app.options.getValue("json");
|
|
704
|
+
if (json) {
|
|
705
|
+
await app.generateJson(project, json);
|
|
706
|
+
}
|
|
707
|
+
if (!out && !json) {
|
|
708
|
+
await app.generateDocs(project, "./docs");
|
|
709
|
+
}
|
|
710
|
+
if (app.logger.hasErrors()) {
|
|
711
|
+
return ExitCodes.OutputError;
|
|
712
|
+
}
|
|
713
|
+
if (app.options.getValue("treatWarningsAsErrors") && app.logger.hasWarnings()) {
|
|
714
|
+
return ExitCodes.OutputError;
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
console.log(chalk10.green(`${pkgName} - Ok`));
|
|
718
|
+
return ExitCodes.Ok;
|
|
719
|
+
};
|
|
720
|
+
|
|
721
|
+
// src/actions/package/lint.ts
|
|
722
|
+
import { readdirSync } from "fs";
|
|
723
|
+
import path7 from "path";
|
|
724
|
+
import { cwd as cwd5 } from "process";
|
|
725
|
+
import { pathToFileURL } from "url";
|
|
726
|
+
import chalk11 from "chalk";
|
|
727
|
+
import { ESLint } from "eslint";
|
|
728
|
+
import { findUp } from "find-up";
|
|
729
|
+
import picomatch from "picomatch";
|
|
730
|
+
var dumpMessages = (lintResults) => {
|
|
731
|
+
const colors = ["white", "yellow", "red"];
|
|
732
|
+
const severity = ["none", "warning", "error"];
|
|
733
|
+
for (const lintResult of lintResults) {
|
|
734
|
+
if (lintResult.messages.length > 0) {
|
|
735
|
+
console.log(chalk11.gray(`
|
|
736
|
+
${lintResult.filePath}`));
|
|
737
|
+
for (const message of lintResult.messages) {
|
|
738
|
+
console.log(
|
|
739
|
+
chalk11.gray(` ${message.line}:${message.column}`),
|
|
740
|
+
chalk11[colors[message.severity]](` ${severity[message.severity]}`),
|
|
741
|
+
chalk11.white(` ${message.message}`),
|
|
742
|
+
chalk11.gray(` ${message.ruleId}`)
|
|
743
|
+
);
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
};
|
|
748
|
+
async function getRootESLintConfig() {
|
|
749
|
+
const configPath = await findUp(["eslint.config.ts", "eslint.config.mjs"]);
|
|
750
|
+
if (configPath === void 0) {
|
|
751
|
+
throw new Error("eslint.config.ts not found in the monorepo");
|
|
752
|
+
}
|
|
753
|
+
return pathToFileURL(configPath);
|
|
754
|
+
}
|
|
755
|
+
function getFiles(dir, ignoreFolders) {
|
|
756
|
+
const currentDirectory = cwd5();
|
|
757
|
+
const subDirectory = dir.split(currentDirectory)[1]?.split("/")[1];
|
|
758
|
+
if (ignoreFolders.includes(subDirectory)) return [];
|
|
759
|
+
return readdirSync(dir, { withFileTypes: true }).flatMap((dirent) => {
|
|
760
|
+
const res = path7.resolve(dir, dirent.name);
|
|
761
|
+
const relativePath = subDirectory === void 0 ? dirent.name : `${subDirectory}/${dirent.name}`;
|
|
762
|
+
const ignoreMatchers = ignoreFolders.map((pattern) => picomatch(pattern));
|
|
763
|
+
if (ignoreMatchers.some((isMatch) => isMatch(relativePath))) return [];
|
|
764
|
+
return dirent.isDirectory() ? getFiles(res, ignoreFolders) : [res];
|
|
765
|
+
});
|
|
766
|
+
}
|
|
767
|
+
var packageLint = async (fix = false, verbose = false, cache = true) => {
|
|
768
|
+
const pkg = INIT_CWD();
|
|
769
|
+
const configPath = await getRootESLintConfig();
|
|
770
|
+
const { default: eslintConfig } = await import(configPath.href);
|
|
771
|
+
const start = Date.now();
|
|
772
|
+
const ignoreFolders = ["node_modules", "dist", "packages", ".git", "build", ".yarn", ".vscode", ".github"];
|
|
773
|
+
const engine = new ESLint({
|
|
774
|
+
baseConfig: [...eslintConfig],
|
|
775
|
+
fix,
|
|
776
|
+
warnIgnored: false,
|
|
777
|
+
cache
|
|
778
|
+
});
|
|
779
|
+
const files = getFiles(cwd5(), ignoreFolders);
|
|
780
|
+
console.log(chalk11.green(`Linting ${pkg} [files = ${files.length}]`));
|
|
781
|
+
if (verbose) {
|
|
782
|
+
for (const file of files) {
|
|
783
|
+
console.log(chalk11.gray(` ${file}`));
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
const lintResults = await engine.lintFiles(files);
|
|
787
|
+
dumpMessages(lintResults);
|
|
788
|
+
if (fix) {
|
|
789
|
+
await ESLint.outputFixes(lintResults);
|
|
790
|
+
}
|
|
791
|
+
const filesCountColor = files.length < 100 ? "green" : files.length < 1e3 ? "yellow" : "red";
|
|
792
|
+
const lintTime = Date.now() - start;
|
|
793
|
+
const lintTimeColor = lintTime < 1e3 ? "green" : lintTime < 3e3 ? "yellow" : "red";
|
|
794
|
+
console.log(chalk11.white(`Linted ${chalk11[filesCountColor](files.length)} files in ${chalk11[lintTimeColor](lintTime)}ms`));
|
|
795
|
+
return lintResults.reduce((prev, lintResult) => prev + lintResult.errorCount, 0);
|
|
796
|
+
};
|
|
797
|
+
|
|
798
|
+
// src/actions/package/publint.ts
|
|
799
|
+
import { promises as fs2 } from "fs";
|
|
800
|
+
import path8 from "path";
|
|
801
|
+
import chalk12 from "chalk";
|
|
802
|
+
import { glob as glob3 } from "glob";
|
|
803
|
+
import sortPackageJson from "sort-package-json";
|
|
804
|
+
var removeSourceFromExports = (exports) => {
|
|
805
|
+
let removed = false;
|
|
806
|
+
for (const [key, value] of Object.entries(exports)) {
|
|
807
|
+
if (key === "source") {
|
|
808
|
+
delete exports[key];
|
|
809
|
+
removed = true;
|
|
810
|
+
} else if (typeof value === "object" && value !== null && removeSourceFromExports(value)) removed = true;
|
|
811
|
+
}
|
|
812
|
+
return removed;
|
|
813
|
+
};
|
|
814
|
+
var hasSourceInExports = (exports) => {
|
|
815
|
+
for (const [key, value] of Object.entries(exports)) {
|
|
816
|
+
if (key === "source") return true;
|
|
817
|
+
if (typeof value === "object" && value !== null && hasSourceInExports(value)) return true;
|
|
818
|
+
}
|
|
819
|
+
return false;
|
|
820
|
+
};
|
|
821
|
+
var hasImportKeyInExports = (exports) => {
|
|
822
|
+
for (const [key, value] of Object.entries(exports)) {
|
|
823
|
+
if (key === "import" && typeof value === "string" && value.endsWith(".mjs")) return true;
|
|
824
|
+
if (typeof value === "object" && value !== null && hasImportKeyInExports(value)) return true;
|
|
825
|
+
}
|
|
826
|
+
return false;
|
|
827
|
+
};
|
|
828
|
+
var replaceImportWithDefault = (exports) => {
|
|
829
|
+
let modified = false;
|
|
830
|
+
for (const [key, value] of Object.entries(exports)) {
|
|
831
|
+
if (key === "import" && typeof value === "string" && value.endsWith(".mjs")) {
|
|
832
|
+
if (exports.default === void 0) {
|
|
833
|
+
exports.default = value;
|
|
834
|
+
}
|
|
835
|
+
delete exports.import;
|
|
836
|
+
if (exports.types === void 0) {
|
|
837
|
+
exports.types = value.replace(/\.mjs$/, ".d.ts");
|
|
838
|
+
}
|
|
839
|
+
modified = true;
|
|
840
|
+
} else if (typeof value === "object" && value !== null && replaceImportWithDefault(value)) modified = true;
|
|
841
|
+
}
|
|
842
|
+
return modified;
|
|
843
|
+
};
|
|
844
|
+
var hasTypesInExports = (exports) => {
|
|
845
|
+
for (const [key, value] of Object.entries(exports)) {
|
|
846
|
+
if (key === "types") return true;
|
|
847
|
+
if (typeof value === "object" && value !== null && hasTypesInExports(value)) return true;
|
|
848
|
+
}
|
|
849
|
+
return false;
|
|
850
|
+
};
|
|
851
|
+
function ensureExportsPath(value) {
|
|
852
|
+
if (value.startsWith("./") || value.startsWith("../")) return value;
|
|
853
|
+
return `./${value}`;
|
|
854
|
+
}
|
|
855
|
+
function emptyCustomResult() {
|
|
856
|
+
return {
|
|
857
|
+
errors: 0,
|
|
858
|
+
modified: false,
|
|
859
|
+
warnings: 0
|
|
860
|
+
};
|
|
861
|
+
}
|
|
862
|
+
function mergeResults(target, source) {
|
|
863
|
+
target.errors += source.errors;
|
|
864
|
+
target.warnings += source.warnings;
|
|
865
|
+
target.modified = target.modified || source.modified;
|
|
866
|
+
}
|
|
867
|
+
function checkFiles(pkg, fix) {
|
|
868
|
+
const result = emptyCustomResult();
|
|
869
|
+
const files = pkg.files;
|
|
870
|
+
if (files === void 0) {
|
|
871
|
+
console.warn(chalk12.yellow('Publint [custom]: "files" field is missing'));
|
|
872
|
+
result.warnings++;
|
|
873
|
+
}
|
|
874
|
+
if (Array.isArray(files) && !files.includes("README.md")) {
|
|
875
|
+
files.push("README.md");
|
|
876
|
+
console.warn(chalk12.yellow('Publint [custom]: added "README.md" to "files"'));
|
|
877
|
+
result.modified = true;
|
|
878
|
+
result.warnings++;
|
|
879
|
+
}
|
|
880
|
+
if (Array.isArray(files) && files.includes("src")) {
|
|
881
|
+
if (fix) {
|
|
882
|
+
pkg.files = files.filter((f) => f !== "src");
|
|
883
|
+
console.warn(chalk12.yellow('Publint [custom]: removed "src" from "files"'));
|
|
884
|
+
result.modified = true;
|
|
885
|
+
} else {
|
|
886
|
+
console.warn(chalk12.yellow('Publint [custom]: "src" should not be in "files" (use --fix to remove)'));
|
|
887
|
+
}
|
|
888
|
+
result.warnings++;
|
|
889
|
+
}
|
|
890
|
+
return result;
|
|
891
|
+
}
|
|
892
|
+
function checkExportsSource(pkg, fix) {
|
|
893
|
+
const result = emptyCustomResult();
|
|
894
|
+
const exports = pkg.exports;
|
|
895
|
+
if (exports && typeof exports === "object" && hasSourceInExports(exports)) {
|
|
896
|
+
if (fix) {
|
|
897
|
+
removeSourceFromExports(exports);
|
|
898
|
+
console.warn(chalk12.yellow('Publint [custom]: removed "source" entries from "exports"'));
|
|
899
|
+
result.modified = true;
|
|
900
|
+
} else {
|
|
901
|
+
console.warn(chalk12.yellow('Publint [custom]: "source" entries should not be in "exports" (use --fix to remove)'));
|
|
902
|
+
}
|
|
903
|
+
result.warnings++;
|
|
904
|
+
}
|
|
905
|
+
return result;
|
|
906
|
+
}
|
|
907
|
+
function migrateFieldToExports(pkg, field, exportKey, fix) {
|
|
908
|
+
const result = emptyCustomResult();
|
|
909
|
+
if (pkg[field] === void 0) return result;
|
|
910
|
+
const fieldValue = pkg[field];
|
|
911
|
+
if (!fieldValue.endsWith(".js") && !fieldValue.endsWith(".mjs") && !fieldValue.endsWith(".cjs")) return result;
|
|
912
|
+
if (fix) {
|
|
913
|
+
const exportValue = ensureExportsPath(fieldValue);
|
|
914
|
+
const exports = pkg.exports;
|
|
915
|
+
if (exports && typeof exports === "object") {
|
|
916
|
+
const dot = exports["."];
|
|
917
|
+
if (dot && typeof dot === "object" && !dot[exportKey]) {
|
|
918
|
+
dot[exportKey] = exportValue;
|
|
919
|
+
console.warn(chalk12.yellow(`Publint [custom]: migrated "${field}" to "exports['.'].${exportKey}" (${fieldValue})`));
|
|
920
|
+
}
|
|
921
|
+
} else if (!pkg.exports) {
|
|
922
|
+
pkg.exports = { ".": { [exportKey]: exportValue } };
|
|
923
|
+
console.warn(chalk12.yellow(`Publint [custom]: migrated "${field}" to "exports" (.\u2192${fieldValue})`));
|
|
924
|
+
}
|
|
925
|
+
delete pkg[field];
|
|
926
|
+
console.warn(chalk12.yellow(`Publint [custom]: removed deprecated "${field}" field`));
|
|
927
|
+
result.modified = true;
|
|
928
|
+
} else {
|
|
929
|
+
console.warn(chalk12.yellow(`Publint [custom]: "${field}" field is deprecated, use "exports" instead (use --fix to remove)`));
|
|
930
|
+
}
|
|
931
|
+
result.warnings++;
|
|
932
|
+
return result;
|
|
933
|
+
}
|
|
934
|
+
function checkSideEffects(pkg) {
|
|
935
|
+
const result = emptyCustomResult();
|
|
936
|
+
if (pkg.sideEffects !== false) {
|
|
937
|
+
console.warn(chalk12.yellow('Publint [custom]: "sideEffects" field should be set to false'));
|
|
938
|
+
result.warnings++;
|
|
939
|
+
}
|
|
940
|
+
return result;
|
|
941
|
+
}
|
|
942
|
+
function checkRootSource(pkg, fix) {
|
|
943
|
+
const result = emptyCustomResult();
|
|
944
|
+
for (const field of ["source", "src"]) {
|
|
945
|
+
if (pkg[field] !== void 0) {
|
|
946
|
+
if (fix) {
|
|
947
|
+
delete pkg[field];
|
|
948
|
+
console.warn(chalk12.yellow(`Publint [custom]: removed root-level "${field}" field`));
|
|
949
|
+
result.modified = true;
|
|
950
|
+
} else {
|
|
951
|
+
console.warn(chalk12.yellow(`Publint [custom]: root-level "${field}" field should not be in package.json (use --fix to remove)`));
|
|
952
|
+
}
|
|
953
|
+
result.warnings++;
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
return result;
|
|
957
|
+
}
|
|
958
|
+
function checkResolutions(pkg) {
|
|
959
|
+
const result = emptyCustomResult();
|
|
960
|
+
if (pkg.resolutions !== void 0) {
|
|
961
|
+
console.warn(chalk12.yellow('Publint [custom]: "resolutions" in use'));
|
|
962
|
+
console.warn(chalk12.gray(JSON.stringify(pkg.resolutions, null, 2)));
|
|
963
|
+
result.warnings++;
|
|
964
|
+
}
|
|
965
|
+
return result;
|
|
966
|
+
}
|
|
967
|
+
function checkImportToDefault(pkg, fix) {
|
|
968
|
+
const result = emptyCustomResult();
|
|
969
|
+
const exports = pkg.exports;
|
|
970
|
+
if (!exports || typeof exports !== "object") return result;
|
|
971
|
+
if (!hasImportKeyInExports(exports)) return result;
|
|
972
|
+
if (fix) {
|
|
973
|
+
replaceImportWithDefault(exports);
|
|
974
|
+
console.warn(chalk12.yellow('Publint [custom]: renamed "import" to "default" in "exports" and ensured "types" siblings'));
|
|
975
|
+
result.modified = true;
|
|
976
|
+
} else {
|
|
977
|
+
console.warn(chalk12.yellow('Publint [custom]: "import" entries in "exports" should use "default" instead (use --fix to rename)'));
|
|
978
|
+
}
|
|
979
|
+
result.warnings++;
|
|
980
|
+
return result;
|
|
981
|
+
}
|
|
982
|
+
function checkRootTypes(pkg, fix) {
|
|
983
|
+
const result = emptyCustomResult();
|
|
984
|
+
if (pkg.types === void 0) return result;
|
|
985
|
+
const exports = pkg.exports;
|
|
986
|
+
if (!exports || typeof exports !== "object" || !hasTypesInExports(exports)) return result;
|
|
987
|
+
if (fix) {
|
|
988
|
+
delete pkg.types;
|
|
989
|
+
console.warn(chalk12.yellow('Publint [custom]: removed redundant root "types" field (already defined in "exports")'));
|
|
990
|
+
result.modified = true;
|
|
991
|
+
} else {
|
|
992
|
+
console.warn(chalk12.yellow('Publint [custom]: root "types" field is redundant when "exports" defines types (use --fix to remove)'));
|
|
993
|
+
}
|
|
994
|
+
result.warnings++;
|
|
995
|
+
return result;
|
|
996
|
+
}
|
|
997
|
+
function customPubLint(pkg, fix = false, exclude = /* @__PURE__ */ new Set()) {
|
|
998
|
+
const result = emptyCustomResult();
|
|
999
|
+
if (!exclude.has("files")) mergeResults(result, checkFiles(pkg, fix));
|
|
1000
|
+
if (!exclude.has("source")) mergeResults(result, checkExportsSource(pkg, fix));
|
|
1001
|
+
if (!exclude.has("rootSource")) mergeResults(result, checkRootSource(pkg, fix));
|
|
1002
|
+
if (!exclude.has("main")) mergeResults(result, migrateFieldToExports(pkg, "main", "default", fix));
|
|
1003
|
+
if (!exclude.has("types")) mergeResults(result, migrateFieldToExports(pkg, "types", "types", fix));
|
|
1004
|
+
if (!exclude.has("module")) mergeResults(result, migrateFieldToExports(pkg, "module", "default", fix));
|
|
1005
|
+
if (!exclude.has("importToDefault")) mergeResults(result, checkImportToDefault(pkg, fix));
|
|
1006
|
+
if (!exclude.has("rootTypes")) mergeResults(result, checkRootTypes(pkg, fix));
|
|
1007
|
+
if (!exclude.has("sideEffects")) mergeResults(result, checkSideEffects(pkg));
|
|
1008
|
+
if (!exclude.has("resolutions")) mergeResults(result, checkResolutions(pkg));
|
|
1009
|
+
return [result.errors, result.warnings, result.modified];
|
|
1010
|
+
}
|
|
1011
|
+
var ALWAYS_INCLUDED_PATTERNS = [
|
|
1012
|
+
"package.json",
|
|
1013
|
+
"README",
|
|
1014
|
+
"README.*",
|
|
1015
|
+
"LICENCE",
|
|
1016
|
+
"LICENCE.*",
|
|
1017
|
+
"LICENSE",
|
|
1018
|
+
"LICENSE.*",
|
|
1019
|
+
"CHANGELOG",
|
|
1020
|
+
"CHANGELOG.*"
|
|
1021
|
+
];
|
|
1022
|
+
async function resolvePackFiles(pkgDir, filesField) {
|
|
1023
|
+
const patterns = [...ALWAYS_INCLUDED_PATTERNS];
|
|
1024
|
+
if (filesField) {
|
|
1025
|
+
for (const pattern of filesField) {
|
|
1026
|
+
if (pattern.startsWith("!")) {
|
|
1027
|
+
patterns.push(pattern);
|
|
1028
|
+
} else {
|
|
1029
|
+
patterns.push(pattern, `${pattern}/**`);
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
1032
|
+
}
|
|
1033
|
+
const matched = await glob3(patterns, {
|
|
1034
|
+
cwd: pkgDir,
|
|
1035
|
+
nodir: true,
|
|
1036
|
+
dot: false
|
|
1037
|
+
});
|
|
1038
|
+
const files = await Promise.all(
|
|
1039
|
+
matched.map(async (rel) => {
|
|
1040
|
+
const abs = path8.join(pkgDir, rel);
|
|
1041
|
+
const data = await fs2.readFile(abs, "utf8").catch(() => "");
|
|
1042
|
+
return { name: path8.join(pkgDir, rel), data };
|
|
1043
|
+
})
|
|
1044
|
+
);
|
|
1045
|
+
return files;
|
|
1046
|
+
}
|
|
1047
|
+
async function runPublintLibrary(pkgDir, pkg, strict, pack) {
|
|
1048
|
+
const { publint } = await import("publint");
|
|
1049
|
+
let packOption = false;
|
|
1050
|
+
if (pack) {
|
|
1051
|
+
const files = await resolvePackFiles(pkgDir, pkg.files);
|
|
1052
|
+
packOption = { files };
|
|
1053
|
+
}
|
|
1054
|
+
const { messages } = await publint({
|
|
1055
|
+
level: "suggestion",
|
|
1056
|
+
pack: packOption,
|
|
1057
|
+
pkgDir,
|
|
1058
|
+
strict
|
|
1059
|
+
});
|
|
1060
|
+
const { formatMessage } = await import("publint/utils");
|
|
1061
|
+
for (const message of messages) {
|
|
1062
|
+
switch (message.type) {
|
|
1063
|
+
case "error": {
|
|
1064
|
+
console.error(chalk12.red(`[${message.code}] ${formatMessage(message, pkg)}`));
|
|
1065
|
+
break;
|
|
1066
|
+
}
|
|
1067
|
+
case "warning": {
|
|
1068
|
+
console.warn(chalk12.yellow(`[${message.code}] ${formatMessage(message, pkg)}`));
|
|
1069
|
+
break;
|
|
1070
|
+
}
|
|
1071
|
+
default: {
|
|
1072
|
+
console.log(chalk12.white(`[${message.code}] ${formatMessage(message, pkg)}`));
|
|
1073
|
+
break;
|
|
1074
|
+
}
|
|
1075
|
+
}
|
|
1076
|
+
}
|
|
1077
|
+
return {
|
|
1078
|
+
errors: messages.filter((message) => message.type === "error").length,
|
|
1079
|
+
total: messages.length
|
|
1080
|
+
};
|
|
1081
|
+
}
|
|
1082
|
+
var packagePublint = async ({
|
|
1083
|
+
exclude = /* @__PURE__ */ new Set(),
|
|
1084
|
+
fix = false,
|
|
1085
|
+
pack = true,
|
|
1086
|
+
pkgDir: pkgDirParam,
|
|
1087
|
+
strict = true,
|
|
1088
|
+
verbose: _verbose = false
|
|
1089
|
+
} = {}) => {
|
|
1090
|
+
const pkgDir = pkgDirParam ?? INIT_CWD();
|
|
1091
|
+
const sortedPkg = sortPackageJson(await fs2.readFile(`${pkgDir}/package.json`, "utf8"));
|
|
1092
|
+
await fs2.writeFile(`${pkgDir}/package.json`, sortedPkg);
|
|
1093
|
+
const pkg = JSON.parse(await fs2.readFile(`${pkgDir}/package.json`, "utf8"));
|
|
1094
|
+
const effectiveExclude = pkg.private ? /* @__PURE__ */ new Set([...exclude, ...PUBLISH_ONLY_CHECKS]) : exclude;
|
|
1095
|
+
console.log(chalk12.green(`Publint: ${String(pkg.name)}${pkg.private ? chalk12.gray(" (private)") : ""}`));
|
|
1096
|
+
console.log(chalk12.gray(pkgDir));
|
|
1097
|
+
let libraryErrors = 0;
|
|
1098
|
+
if (!effectiveExclude.has("publint")) {
|
|
1099
|
+
const library = await runPublintLibrary(pkgDir, pkg, strict, pack);
|
|
1100
|
+
libraryErrors = library.errors;
|
|
1101
|
+
}
|
|
1102
|
+
const [errorCount, _warningCount, modified] = customPubLint(pkg, fix, effectiveExclude);
|
|
1103
|
+
if (modified) {
|
|
1104
|
+
const sorted = sortPackageJson(JSON.stringify(pkg, null, 2));
|
|
1105
|
+
await fs2.writeFile(`${pkgDir}/package.json`, sorted);
|
|
1106
|
+
}
|
|
1107
|
+
return libraryErrors + errorCount;
|
|
1108
|
+
};
|
|
1109
|
+
|
|
1110
|
+
// src/actions/package/recompile.ts
|
|
1111
|
+
var packageRecompile = async () => {
|
|
1112
|
+
return packageClean() || await packageCompile();
|
|
1113
|
+
};
|
|
1114
|
+
export {
|
|
1115
|
+
ALL_PUBLINT_CHECKS,
|
|
1116
|
+
PUBLISH_ONLY_CHECKS,
|
|
1117
|
+
packageClean,
|
|
1118
|
+
packageCleanOutputs,
|
|
1119
|
+
packageCleanTypescript,
|
|
1120
|
+
packageCompile,
|
|
1121
|
+
packageCompileTsc,
|
|
1122
|
+
packageCompileTsup,
|
|
1123
|
+
packageCopyAssets,
|
|
1124
|
+
packageCycle,
|
|
1125
|
+
packageGenDocs,
|
|
1126
|
+
packageLint,
|
|
1127
|
+
packagePublint,
|
|
1128
|
+
packageRecompile,
|
|
1129
|
+
tsupOptions
|
|
1130
|
+
};
|
|
1131
|
+
//# sourceMappingURL=index.mjs.map
|