@tspub-dev/tspub 0.1.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/LICENSE +21 -0
- package/README.md +495 -0
- package/dist/bin/tspub.d.cts +4 -0
- package/dist/bin/tspub.d.ts +3 -0
- package/dist/bin/tspub.js +1308 -0
- package/dist/chunk-DGUM43GV.js +11 -0
- package/dist/chunk-TNGZXD6W.js +9113 -0
- package/dist/index.d.cts +70 -0
- package/dist/index.d.ts +69 -0
- package/dist/index.js +72 -0
- package/dist/src/builder/changelog-conventional.d.cts +12 -0
- package/dist/src/builder/changelog-conventional.d.ts +11 -0
- package/dist/src/builder/changelog.d.cts +4 -0
- package/dist/src/builder/changelog.d.ts +3 -0
- package/dist/src/builder/cjs-interop.d.cts +4 -0
- package/dist/src/builder/cjs-interop.d.ts +3 -0
- package/dist/src/builder/dts-bundle.d.cts +19 -0
- package/dist/src/builder/dts-bundle.d.ts +18 -0
- package/dist/src/builder/dts.d.cts +9 -0
- package/dist/src/builder/dts.d.ts +8 -0
- package/dist/src/builder/entry-inference.d.cts +4 -0
- package/dist/src/builder/entry-inference.d.ts +3 -0
- package/dist/src/builder/esbuild-builder.d.cts +49 -0
- package/dist/src/builder/esbuild-builder.d.ts +48 -0
- package/dist/src/builder/externals.d.cts +18 -0
- package/dist/src/builder/externals.d.ts +17 -0
- package/dist/src/builder/index.d.cts +52 -0
- package/dist/src/builder/index.d.ts +51 -0
- package/dist/src/builder/plugins.d.cts +26 -0
- package/dist/src/builder/plugins.d.ts +25 -0
- package/dist/src/builder/public-dir.d.cts +7 -0
- package/dist/src/builder/public-dir.d.ts +6 -0
- package/dist/src/builder/shims-plugin.d.cts +4 -0
- package/dist/src/builder/shims-plugin.d.ts +3 -0
- package/dist/src/builder/size-report.d.cts +12 -0
- package/dist/src/builder/size-report.d.ts +11 -0
- package/dist/src/changeset/dependent-bumping.d.cts +9 -0
- package/dist/src/changeset/dependent-bumping.d.ts +8 -0
- package/dist/src/changeset/index.d.cts +9 -0
- package/dist/src/changeset/index.d.ts +8 -0
- package/dist/src/changeset/parser.d.cts +5 -0
- package/dist/src/changeset/parser.d.ts +4 -0
- package/dist/src/changeset/snapshot.d.cts +3 -0
- package/dist/src/changeset/snapshot.d.ts +2 -0
- package/dist/src/changeset/types.d.cts +22 -0
- package/dist/src/changeset/types.d.ts +21 -0
- package/dist/src/changeset/version.d.cts +23 -0
- package/dist/src/changeset/version.d.ts +22 -0
- package/dist/src/changeset/writer.d.cts +4 -0
- package/dist/src/changeset/writer.d.ts +3 -0
- package/dist/src/checker/browser.d.cts +29 -0
- package/dist/src/checker/browser.d.ts +28 -0
- package/dist/src/checker/formatter.d.cts +11 -0
- package/dist/src/checker/formatter.d.ts +10 -0
- package/dist/src/checker/framework/context.d.cts +9 -0
- package/dist/src/checker/framework/context.d.ts +8 -0
- package/dist/src/checker/framework/runner.d.cts +20 -0
- package/dist/src/checker/framework/runner.d.ts +19 -0
- package/dist/src/checker/framework/types.d.cts +42 -0
- package/dist/src/checker/framework/types.d.ts +41 -0
- package/dist/src/checker/index.d.cts +25 -0
- package/dist/src/checker/index.d.ts +24 -0
- package/dist/src/checker/plugins.d.cts +8 -0
- package/dist/src/checker/plugins.d.ts +7 -0
- package/dist/src/checker/profiles.d.cts +19 -0
- package/dist/src/checker/profiles.d.ts +18 -0
- package/dist/src/checker/rules/exports/browser-conflict.d.cts +4 -0
- package/dist/src/checker/rules/exports/browser-conflict.d.ts +3 -0
- package/dist/src/checker/rules/exports/browser-value-conflict.d.cts +4 -0
- package/dist/src/checker/rules/exports/browser-value-conflict.d.ts +3 -0
- package/dist/src/checker/rules/exports/cjs-default-export.d.cts +4 -0
- package/dist/src/checker/rules/exports/cjs-default-export.d.ts +3 -0
- package/dist/src/checker/rules/exports/cjs-esmodule-interop.d.cts +4 -0
- package/dist/src/checker/rules/exports/cjs-esmodule-interop.d.ts +3 -0
- package/dist/src/checker/rules/exports/condition-types.d.cts +4 -0
- package/dist/src/checker/rules/exports/condition-types.d.ts +3 -0
- package/dist/src/checker/rules/exports/default-last.d.cts +4 -0
- package/dist/src/checker/rules/exports/default-last.d.ts +3 -0
- package/dist/src/checker/rules/exports/dot-entry.d.cts +4 -0
- package/dist/src/checker/rules/exports/dot-entry.d.ts +3 -0
- package/dist/src/checker/rules/exports/esm-main-no-exports.d.cts +10 -0
- package/dist/src/checker/rules/exports/esm-main-no-exports.d.ts +9 -0
- package/dist/src/checker/rules/exports/exports-field.d.cts +4 -0
- package/dist/src/checker/rules/exports/exports-field.d.ts +3 -0
- package/dist/src/checker/rules/exports/fallback-array.d.cts +4 -0
- package/dist/src/checker/rules/exports/fallback-array.d.ts +3 -0
- package/dist/src/checker/rules/exports/file-exists.d.cts +4 -0
- package/dist/src/checker/rules/exports/file-exists.d.ts +3 -0
- package/dist/src/checker/rules/exports/file-not-published.d.cts +4 -0
- package/dist/src/checker/rules/exports/file-not-published.d.ts +3 -0
- package/dist/src/checker/rules/exports/format-mismatch.d.cts +4 -0
- package/dist/src/checker/rules/exports/format-mismatch.d.ts +3 -0
- package/dist/src/checker/rules/exports/glob-matched-files.d.cts +4 -0
- package/dist/src/checker/rules/exports/glob-matched-files.d.ts +3 -0
- package/dist/src/checker/rules/exports/import-condition.d.cts +4 -0
- package/dist/src/checker/rules/exports/import-condition.d.ts +3 -0
- package/dist/src/checker/rules/exports/imports-field.d.cts +4 -0
- package/dist/src/checker/rules/exports/imports-field.d.ts +3 -0
- package/dist/src/checker/rules/exports/imports-key-invalid.d.cts +4 -0
- package/dist/src/checker/rules/exports/imports-key-invalid.d.ts +3 -0
- package/dist/src/checker/rules/exports/jsx-extensions.d.cts +4 -0
- package/dist/src/checker/rules/exports/jsx-extensions.d.ts +3 -0
- package/dist/src/checker/rules/exports/module-before-require.d.cts +4 -0
- package/dist/src/checker/rules/exports/module-before-require.d.ts +3 -0
- package/dist/src/checker/rules/exports/module-esm-only.d.cts +4 -0
- package/dist/src/checker/rules/exports/module-esm-only.d.ts +3 -0
- package/dist/src/checker/rules/exports/module-no-exports.d.cts +10 -0
- package/dist/src/checker/rules/exports/module-no-exports.d.ts +9 -0
- package/dist/src/checker/rules/exports/no-deprecated-subpath-mapping.d.cts +4 -0
- package/dist/src/checker/rules/exports/no-deprecated-subpath-mapping.d.ts +3 -0
- package/dist/src/checker/rules/exports/type-module.d.cts +4 -0
- package/dist/src/checker/rules/exports/type-module.d.ts +3 -0
- package/dist/src/checker/rules/exports/types-first.d.cts +11 -0
- package/dist/src/checker/rules/exports/types-first.d.ts +10 -0
- package/dist/src/checker/rules/exports/types-format.d.cts +4 -0
- package/dist/src/checker/rules/exports/types-format.d.ts +3 -0
- package/dist/src/checker/rules/exports/types-not-exported.d.cts +11 -0
- package/dist/src/checker/rules/exports/types-not-exported.d.ts +10 -0
- package/dist/src/checker/rules/exports/types-order.d.cts +4 -0
- package/dist/src/checker/rules/exports/types-order.d.ts +3 -0
- package/dist/src/checker/rules/exports/value-invalid.d.cts +4 -0
- package/dist/src/checker/rules/exports/value-invalid.d.ts +3 -0
- package/dist/src/checker/rules/files/all-files-format.d.cts +4 -0
- package/dist/src/checker/rules/files/all-files-format.d.ts +3 -0
- package/dist/src/checker/rules/files/bin-executable.d.cts +10 -0
- package/dist/src/checker/rules/files/bin-executable.d.ts +9 -0
- package/dist/src/checker/rules/files/bin-shebang.d.cts +4 -0
- package/dist/src/checker/rules/files/bin-shebang.d.ts +3 -0
- package/dist/src/checker/rules/files/duplicate-dep.d.cts +4 -0
- package/dist/src/checker/rules/files/duplicate-dep.d.ts +3 -0
- package/dist/src/checker/rules/files/files-field.d.cts +4 -0
- package/dist/src/checker/rules/files/files-field.d.ts +3 -0
- package/dist/src/checker/rules/files/format-validation.d.cts +12 -0
- package/dist/src/checker/rules/files/format-validation.d.ts +11 -0
- package/dist/src/checker/rules/files/implicit-index-format.d.cts +13 -0
- package/dist/src/checker/rules/files/implicit-index-format.d.ts +12 -0
- package/dist/src/checker/rules/files/local-dependency.d.cts +4 -0
- package/dist/src/checker/rules/files/local-dependency.d.ts +3 -0
- package/dist/src/checker/rules/files/prepublish.d.cts +4 -0
- package/dist/src/checker/rules/files/prepublish.d.ts +3 -0
- package/dist/src/checker/rules/files/sensitive.d.cts +4 -0
- package/dist/src/checker/rules/files/sensitive.d.ts +3 -0
- package/dist/src/checker/rules/imports/default-last.d.cts +4 -0
- package/dist/src/checker/rules/imports/default-last.d.ts +3 -0
- package/dist/src/checker/rules/imports/fallback-array.d.cts +4 -0
- package/dist/src/checker/rules/imports/fallback-array.d.ts +3 -0
- package/dist/src/checker/rules/imports/glob-matched-files.d.cts +4 -0
- package/dist/src/checker/rules/imports/glob-matched-files.d.ts +3 -0
- package/dist/src/checker/rules/imports/module-before-require.d.cts +4 -0
- package/dist/src/checker/rules/imports/module-before-require.d.ts +3 -0
- package/dist/src/checker/rules/imports/module-esm-only.d.cts +4 -0
- package/dist/src/checker/rules/imports/module-esm-only.d.ts +3 -0
- package/dist/src/checker/rules/imports/no-deprecated-subpath.d.cts +4 -0
- package/dist/src/checker/rules/imports/no-deprecated-subpath.d.ts +3 -0
- package/dist/src/checker/rules/index.d.cts +4 -0
- package/dist/src/checker/rules/index.d.ts +3 -0
- package/dist/src/checker/rules/metadata/deprecated-fields.d.cts +4 -0
- package/dist/src/checker/rules/metadata/deprecated-fields.d.ts +3 -0
- package/dist/src/checker/rules/metadata/engines.d.cts +4 -0
- package/dist/src/checker/rules/metadata/engines.d.ts +3 -0
- package/dist/src/checker/rules/metadata/field-value-type.d.cts +4 -0
- package/dist/src/checker/rules/metadata/field-value-type.d.ts +3 -0
- package/dist/src/checker/rules/metadata/license-file.d.cts +4 -0
- package/dist/src/checker/rules/metadata/license-file.d.ts +3 -0
- package/dist/src/checker/rules/metadata/license.d.cts +4 -0
- package/dist/src/checker/rules/metadata/license.d.ts +3 -0
- package/dist/src/checker/rules/metadata/module-esm.d.cts +4 -0
- package/dist/src/checker/rules/metadata/module-esm.d.ts +3 -0
- package/dist/src/checker/rules/metadata/peer-dep-conflict.d.cts +4 -0
- package/dist/src/checker/rules/metadata/peer-dep-conflict.d.ts +3 -0
- package/dist/src/checker/rules/metadata/repository-format.d.cts +13 -0
- package/dist/src/checker/rules/metadata/repository-format.d.ts +12 -0
- package/dist/src/checker/rules/metadata/repository.d.cts +4 -0
- package/dist/src/checker/rules/metadata/repository.d.ts +3 -0
- package/dist/src/checker/rules/metadata/side-effects.d.cts +4 -0
- package/dist/src/checker/rules/metadata/side-effects.d.ts +3 -0
- package/dist/src/checker/rules/metadata/use-exports-browser.d.cts +4 -0
- package/dist/src/checker/rules/metadata/use-exports-browser.d.ts +3 -0
- package/dist/src/checker/rules/size/package-size.d.cts +4 -0
- package/dist/src/checker/rules/size/package-size.d.ts +3 -0
- package/dist/src/checker/rules/types/cjs-resolves-esm.d.cts +15 -0
- package/dist/src/checker/rules/types/cjs-resolves-esm.d.ts +14 -0
- package/dist/src/checker/rules/types/declaration-completeness.d.cts +4 -0
- package/dist/src/checker/rules/types/declaration-completeness.d.ts +3 -0
- package/dist/src/checker/rules/types/declaration.d.cts +4 -0
- package/dist/src/checker/rules/types/declaration.d.ts +3 -0
- package/dist/src/checker/rules/types/esm-dynamic-only.d.cts +11 -0
- package/dist/src/checker/rules/types/esm-dynamic-only.d.ts +10 -0
- package/dist/src/checker/rules/types/false-cjs-esm.d.cts +13 -0
- package/dist/src/checker/rules/types/false-cjs-esm.d.ts +12 -0
- package/dist/src/checker/rules/types/false-export-default.d.cts +11 -0
- package/dist/src/checker/rules/types/false-export-default.d.ts +10 -0
- package/dist/src/checker/rules/types/isolated-modules.d.cts +4 -0
- package/dist/src/checker/rules/types/isolated-modules.d.ts +3 -0
- package/dist/src/checker/rules/types/missing-export-equals.d.cts +11 -0
- package/dist/src/checker/rules/types/missing-export-equals.d.ts +10 -0
- package/dist/src/checker/rules/types/module-resolution.d.cts +4 -0
- package/dist/src/checker/rules/types/module-resolution.d.ts +3 -0
- package/dist/src/checker/rules/types/module.d.cts +4 -0
- package/dist/src/checker/rules/types/module.d.ts +3 -0
- package/dist/src/checker/rules/types/no-any-export.d.cts +4 -0
- package/dist/src/checker/rules/types/no-any-export.d.ts +3 -0
- package/dist/src/checker/rules/types/resolution.d.cts +4 -0
- package/dist/src/checker/rules/types/resolution.d.ts +3 -0
- package/dist/src/checker/rules/types/strict.d.cts +4 -0
- package/dist/src/checker/rules/types/strict.d.ts +3 -0
- package/dist/src/checker/rules/types/tsconfig-exists.d.cts +4 -0
- package/dist/src/checker/rules/types/tsconfig-exists.d.ts +3 -0
- package/dist/src/checker/rules/utils/exports-traversal.d.cts +12 -0
- package/dist/src/checker/rules/utils/exports-traversal.d.ts +11 -0
- package/dist/src/checker/rules/utils/format-detection.d.cts +8 -0
- package/dist/src/checker/rules/utils/format-detection.d.ts +7 -0
- package/dist/src/checker/rules/utils/imports-traversal.d.cts +10 -0
- package/dist/src/checker/rules/utils/imports-traversal.d.ts +9 -0
- package/dist/src/cli/build.d.cts +6 -0
- package/dist/src/cli/build.d.ts +5 -0
- package/dist/src/cli/changeset.d.cts +4 -0
- package/dist/src/cli/changeset.d.ts +3 -0
- package/dist/src/cli/check.d.cts +4 -0
- package/dist/src/cli/check.d.ts +3 -0
- package/dist/src/cli/doctor.d.cts +4 -0
- package/dist/src/cli/doctor.d.ts +3 -0
- package/dist/src/cli/index.d.cts +5 -0
- package/dist/src/cli/index.d.ts +4 -0
- package/dist/src/cli/init.d.cts +4 -0
- package/dist/src/cli/init.d.ts +3 -0
- package/dist/src/cli/publish.d.cts +7 -0
- package/dist/src/cli/publish.d.ts +6 -0
- package/dist/src/cli/scan.d.cts +4 -0
- package/dist/src/cli/scan.d.ts +3 -0
- package/dist/src/cli/test-types.d.cts +4 -0
- package/dist/src/cli/test-types.d.ts +3 -0
- package/dist/src/config/index.d.cts +4 -0
- package/dist/src/config/index.d.ts +3 -0
- package/dist/src/config/loader.d.cts +6 -0
- package/dist/src/config/loader.d.ts +5 -0
- package/dist/src/config/types.d.cts +109 -0
- package/dist/src/config/types.d.ts +108 -0
- package/dist/src/doctor/environment.d.cts +13 -0
- package/dist/src/doctor/environment.d.ts +12 -0
- package/dist/src/doctor/formatter.d.cts +13 -0
- package/dist/src/doctor/formatter.d.ts +12 -0
- package/dist/src/doctor/framework/context.d.cts +5 -0
- package/dist/src/doctor/framework/context.d.ts +4 -0
- package/dist/src/doctor/framework/runner.d.cts +18 -0
- package/dist/src/doctor/framework/runner.d.ts +17 -0
- package/dist/src/doctor/framework/types.d.cts +40 -0
- package/dist/src/doctor/framework/types.d.ts +39 -0
- package/dist/src/doctor/index.d.cts +23 -0
- package/dist/src/doctor/index.d.ts +22 -0
- package/dist/src/doctor/plugins.d.cts +8 -0
- package/dist/src/doctor/plugins.d.ts +7 -0
- package/dist/src/doctor/profiles.d.cts +3 -0
- package/dist/src/doctor/profiles.d.ts +2 -0
- package/dist/src/doctor/resolution.d.cts +8 -0
- package/dist/src/doctor/resolution.d.ts +7 -0
- package/dist/src/doctor/rules/build.d.cts +6 -0
- package/dist/src/doctor/rules/build.d.ts +5 -0
- package/dist/src/doctor/rules/dependencies.d.cts +7 -0
- package/dist/src/doctor/rules/dependencies.d.ts +6 -0
- package/dist/src/doctor/rules/environment.d.cts +10 -0
- package/dist/src/doctor/rules/environment.d.ts +9 -0
- package/dist/src/doctor/rules/index.d.cts +4 -0
- package/dist/src/doctor/rules/index.d.ts +3 -0
- package/dist/src/doctor/rules/typescript.d.cts +9 -0
- package/dist/src/doctor/rules/typescript.d.ts +8 -0
- package/dist/src/publisher/framework/types.d.cts +27 -0
- package/dist/src/publisher/framework/types.d.ts +26 -0
- package/dist/src/publisher/git.d.cts +22 -0
- package/dist/src/publisher/git.d.ts +21 -0
- package/dist/src/publisher/github.d.cts +26 -0
- package/dist/src/publisher/github.d.ts +25 -0
- package/dist/src/publisher/hooks.d.cts +22 -0
- package/dist/src/publisher/hooks.d.ts +21 -0
- package/dist/src/publisher/index.d.cts +13 -0
- package/dist/src/publisher/index.d.ts +12 -0
- package/dist/src/publisher/npm.d.cts +14 -0
- package/dist/src/publisher/npm.d.ts +13 -0
- package/dist/src/publisher/prereqs/branch.d.cts +4 -0
- package/dist/src/publisher/prereqs/branch.d.ts +3 -0
- package/dist/src/publisher/prereqs/checker.d.cts +4 -0
- package/dist/src/publisher/prereqs/checker.d.ts +3 -0
- package/dist/src/publisher/prereqs/dirty-tree.d.cts +4 -0
- package/dist/src/publisher/prereqs/dirty-tree.d.ts +3 -0
- package/dist/src/publisher/prereqs/index.d.cts +4 -0
- package/dist/src/publisher/prereqs/index.d.ts +3 -0
- package/dist/src/publisher/prereqs/registry.d.cts +5 -0
- package/dist/src/publisher/prereqs/registry.d.ts +4 -0
- package/dist/src/publisher/publish.d.cts +24 -0
- package/dist/src/publisher/publish.d.ts +23 -0
- package/dist/src/publisher/types.d.cts +28 -0
- package/dist/src/publisher/types.d.ts +27 -0
- package/dist/src/publisher/version-bump.d.cts +12 -0
- package/dist/src/publisher/version-bump.d.ts +11 -0
- package/dist/src/publisher/version-from-commits.d.cts +7 -0
- package/dist/src/publisher/version-from-commits.d.ts +6 -0
- package/dist/src/scaffold/index.d.cts +15 -0
- package/dist/src/scaffold/index.d.ts +14 -0
- package/dist/src/scaffold/prompts.d.cts +11 -0
- package/dist/src/scaffold/prompts.d.ts +10 -0
- package/dist/src/scaffold/templates/changelog.d.cts +3 -0
- package/dist/src/scaffold/templates/changelog.d.ts +2 -0
- package/dist/src/scaffold/templates/ci.yml.d.cts +4 -0
- package/dist/src/scaffold/templates/ci.yml.d.ts +3 -0
- package/dist/src/scaffold/templates/gitignore.d.cts +3 -0
- package/dist/src/scaffold/templates/gitignore.d.ts +2 -0
- package/dist/src/scaffold/templates/index.ts.d.cts +3 -0
- package/dist/src/scaffold/templates/index.ts.d.ts +2 -0
- package/dist/src/scaffold/templates/license.d.cts +4 -0
- package/dist/src/scaffold/templates/license.d.ts +3 -0
- package/dist/src/scaffold/templates/npmignore.d.cts +3 -0
- package/dist/src/scaffold/templates/npmignore.d.ts +2 -0
- package/dist/src/scaffold/templates/package.json.d.cts +4 -0
- package/dist/src/scaffold/templates/package.json.d.ts +3 -0
- package/dist/src/scaffold/templates/readme.d.cts +4 -0
- package/dist/src/scaffold/templates/readme.d.ts +3 -0
- package/dist/src/scaffold/templates/test.ts.d.cts +4 -0
- package/dist/src/scaffold/templates/test.ts.d.ts +3 -0
- package/dist/src/scaffold/templates/tsconfig.json.d.cts +4 -0
- package/dist/src/scaffold/templates/tsconfig.json.d.ts +3 -0
- package/dist/src/scanner/clone.d.cts +9 -0
- package/dist/src/scanner/clone.d.ts +8 -0
- package/dist/src/scanner/github.d.cts +16 -0
- package/dist/src/scanner/github.d.ts +15 -0
- package/dist/src/scanner/index.d.cts +45 -0
- package/dist/src/scanner/index.d.ts +44 -0
- package/dist/src/scanner/profiles.d.cts +4 -0
- package/dist/src/scanner/profiles.d.ts +3 -0
- package/dist/src/scanner/report.d.cts +18 -0
- package/dist/src/scanner/report.d.ts +17 -0
- package/dist/src/shared/logger.d.cts +15 -0
- package/dist/src/shared/logger.d.ts +14 -0
- package/dist/src/shared/package-json.d.cts +29 -0
- package/dist/src/shared/package-json.d.ts +28 -0
- package/dist/src/shared/resolve.d.cts +3 -0
- package/dist/src/shared/resolve.d.ts +2 -0
- package/dist/src/shared/strip-json-comments.d.cts +8 -0
- package/dist/src/shared/strip-json-comments.d.ts +7 -0
- package/dist/src/type-tester/index.d.cts +17 -0
- package/dist/src/type-tester/index.d.ts +16 -0
- package/dist/src/workspace/index.d.cts +22 -0
- package/dist/src/workspace/index.d.ts +21 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/type-tester/assertions.d.cts +51 -0
- package/dist/type-tester/assertions.d.ts +50 -0
- package/dist/type-tester/assertions.js +21 -0
- package/package.json +90 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,495 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<br>
|
|
4
|
+
|
|
5
|
+
<picture>
|
|
6
|
+
<source media="(prefers-color-scheme: dark)" srcset="docs/terminal.svg">
|
|
7
|
+
<source media="(prefers-color-scheme: light)" srcset="docs/terminal.svg">
|
|
8
|
+
<img alt="tspub terminal demo" src="docs/terminal.svg" width="600">
|
|
9
|
+
</picture>
|
|
10
|
+
|
|
11
|
+
<br>
|
|
12
|
+
<br>
|
|
13
|
+
|
|
14
|
+
# tspub
|
|
15
|
+
|
|
16
|
+
**Stop. Publishing. Broken. Packages.**
|
|
17
|
+
|
|
18
|
+
<br>
|
|
19
|
+
|
|
20
|
+
[](https://www.npmjs.com/package/tspub)
|
|
21
|
+
[](https://www.npmjs.com/package/tspub)
|
|
22
|
+
[](https://github.com/tspub/tspub/actions)
|
|
23
|
+
[](https://github.com/tspub/tspub)
|
|
24
|
+
[](LICENSE)
|
|
25
|
+
[](https://tspub.dev)
|
|
26
|
+
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<br>
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
<br>
|
|
34
|
+
|
|
35
|
+
<table>
|
|
36
|
+
<tr>
|
|
37
|
+
<td width="60%">
|
|
38
|
+
|
|
39
|
+
### The scene
|
|
40
|
+
|
|
41
|
+
It's 6 PM on a Friday. You've just shipped v2.0.0 of your library.
|
|
42
|
+
|
|
43
|
+
You feel good. You grab your coffee. You check Twitter.
|
|
44
|
+
|
|
45
|
+
<br>
|
|
46
|
+
|
|
47
|
+
**@frustrated_dev:** *"Just updated to v2.0.0 and now I'm getting `Cannot use import statement outside a module`. Anyone else?"*
|
|
48
|
+
|
|
49
|
+
**@another_dev:** *"Same. Also my types aren't working anymore."*
|
|
50
|
+
|
|
51
|
+
**@your_biggest_user:** *"Is this package abandoned? v2 is completely broken."*
|
|
52
|
+
|
|
53
|
+
<br>
|
|
54
|
+
|
|
55
|
+
Your stomach drops.
|
|
56
|
+
|
|
57
|
+
</td>
|
|
58
|
+
<td width="40%" align="center">
|
|
59
|
+
|
|
60
|
+
<br>
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
npm publish
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
↓
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
🔥🔥🔥
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
↓
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
npm publish (patch)
|
|
76
|
+
npm publish (patch)
|
|
77
|
+
npm publish (patch)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
<br>
|
|
81
|
+
|
|
82
|
+
</td>
|
|
83
|
+
</tr>
|
|
84
|
+
</table>
|
|
85
|
+
|
|
86
|
+
<br>
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
<br>
|
|
91
|
+
|
|
92
|
+
### What if you could know before they do?
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
npx tspub check
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
exports/types-order "types" should be first in conditions
|
|
100
|
+
exports/file-exists ./dist/index.js doesn't exist
|
|
101
|
+
types/false-esm types say ESM, but it's actually CJS
|
|
102
|
+
metadata/license missing license field
|
|
103
|
+
|
|
104
|
+
4 problems found (3 auto-fixable)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
npx tspub check --fix
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
✓ Fixed 3 problems
|
|
113
|
+
⚠ 1 requires manual fix (types/false-esm)
|
|
114
|
+
|
|
115
|
+
Your package is ready.
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**That's tspub.** One command that catches the 70 ways your package can break.
|
|
119
|
+
|
|
120
|
+
<br>
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
<br>
|
|
125
|
+
|
|
126
|
+
<div align="center">
|
|
127
|
+
|
|
128
|
+
## The full picture
|
|
129
|
+
|
|
130
|
+
</div>
|
|
131
|
+
|
|
132
|
+
<br>
|
|
133
|
+
|
|
134
|
+
<table>
|
|
135
|
+
<tr>
|
|
136
|
+
<td align="center" width="33%">
|
|
137
|
+
|
|
138
|
+
**70 rules**
|
|
139
|
+
|
|
140
|
+
Covers publint.
|
|
141
|
+
Covers attw.
|
|
142
|
+
Plus our own checks.
|
|
143
|
+
|
|
144
|
+
</td>
|
|
145
|
+
<td align="center" width="33%">
|
|
146
|
+
|
|
147
|
+
**Auto-fix**
|
|
148
|
+
|
|
149
|
+
Most problems are one
|
|
150
|
+
config tweak away.
|
|
151
|
+
We just do it for you.
|
|
152
|
+
|
|
153
|
+
</td>
|
|
154
|
+
<td align="center" width="33%">
|
|
155
|
+
|
|
156
|
+
**One tool**
|
|
157
|
+
|
|
158
|
+
Build. Check. Publish.
|
|
159
|
+
No more 5-tool dance.
|
|
160
|
+
No more glue scripts.
|
|
161
|
+
|
|
162
|
+
</td>
|
|
163
|
+
</tr>
|
|
164
|
+
</table>
|
|
165
|
+
|
|
166
|
+
<br>
|
|
167
|
+
|
|
168
|
+
<div align="center">
|
|
169
|
+
|
|
170
|
+
| You currently use | Just use |
|
|
171
|
+
|:--|:--|
|
|
172
|
+
| tsup + publint + arethetypeswrong + np + changesets | `tspub` |
|
|
173
|
+
|
|
174
|
+
</div>
|
|
175
|
+
|
|
176
|
+
<br>
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
<br>
|
|
181
|
+
|
|
182
|
+
## The commands
|
|
183
|
+
|
|
184
|
+
<br>
|
|
185
|
+
|
|
186
|
+
<details open>
|
|
187
|
+
<summary><b>tspub check</b> — Find what's broken</summary>
|
|
188
|
+
|
|
189
|
+
<br>
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
tspub check # find problems
|
|
193
|
+
tspub check --fix # fix the safe ones
|
|
194
|
+
tspub check --fix --unsafe # fix everything
|
|
195
|
+
tspub check --list-rules # see all 70 rules
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
**What it catches:**
|
|
199
|
+
|
|
200
|
+
| | |
|
|
201
|
+
|:--|:--|
|
|
202
|
+
| **exports** (28 rules) | Types not first, missing files, ESM/CJS issues, condition ordering |
|
|
203
|
+
| **imports** (6 rules) | Import map validation, resolution checks |
|
|
204
|
+
| **types** (14 rules) | False ESM/CJS, resolution failures across node10/16/bundler |
|
|
205
|
+
| **files** (10 rules) | .env leaked, wrong shebang, format inconsistencies |
|
|
206
|
+
| **metadata** (11 rules) | Missing license, bad engines, deprecated fields |
|
|
207
|
+
| **size** (1 rule) | Package too big |
|
|
208
|
+
|
|
209
|
+
<br>
|
|
210
|
+
|
|
211
|
+
</details>
|
|
212
|
+
|
|
213
|
+
<details>
|
|
214
|
+
<summary><b>tspub build</b> — Bundle it properly</summary>
|
|
215
|
+
|
|
216
|
+
<br>
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
tspub build # ESM + types
|
|
220
|
+
tspub build --format esm,cjs # dual
|
|
221
|
+
tspub build --dts-bundle # single .d.ts file
|
|
222
|
+
tspub build --minify # production
|
|
223
|
+
tspub build --watch # dev mode
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
- Powered by esbuild — tspub builds itself
|
|
227
|
+
- Infers entries from your package.json
|
|
228
|
+
- CJS interop that actually works (no `.default` nonsense)
|
|
229
|
+
- Size budgets — build fails if too big
|
|
230
|
+
|
|
231
|
+
<br>
|
|
232
|
+
|
|
233
|
+
</details>
|
|
234
|
+
|
|
235
|
+
<details>
|
|
236
|
+
<summary><b>tspub publish</b> — Ship with a safety net</summary>
|
|
237
|
+
|
|
238
|
+
<br>
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
tspub publish patch # bump + ship
|
|
242
|
+
tspub publish minor --dry-run # preview first
|
|
243
|
+
tspub publish --prerelease beta
|
|
244
|
+
tspub publish --provenance # npm attestation
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**What happens:**
|
|
248
|
+
|
|
249
|
+
```
|
|
250
|
+
┌─────────┐ ┌───────┐ ┌───────┐ ┌──────┐ ┌─────────┐
|
|
251
|
+
│ 5 Gates │ → │ Build │ → │ Check │ → │ Bump │ → │ Publish │
|
|
252
|
+
└─────────┘ └───────┘ └───────┘ └──────┘ └─────────┘
|
|
253
|
+
│ │
|
|
254
|
+
↓ ↓
|
|
255
|
+
STOP if ROLLBACK if
|
|
256
|
+
not ready npm fails
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
The 5 gates: clean git, right branch, npm reachable, logged in, check passes.
|
|
260
|
+
|
|
261
|
+
If npm publish fails → git tag deleted, version reverted. No half-broken releases.
|
|
262
|
+
|
|
263
|
+
<br>
|
|
264
|
+
|
|
265
|
+
</details>
|
|
266
|
+
|
|
267
|
+
<details>
|
|
268
|
+
<summary><b>tspub doctor</b> — Debug the weird stuff</summary>
|
|
269
|
+
|
|
270
|
+
<br>
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
tspub doctor # full scan
|
|
274
|
+
tspub doctor --fix # fix what's fixable
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
```
|
|
278
|
+
environment/node-version ✓ v20.10.0 (matches engines)
|
|
279
|
+
environment/lockfiles ✗ found package-lock.json AND yarn.lock
|
|
280
|
+
typescript/strict ✗ strict mode not enabled
|
|
281
|
+
typescript/declaration ✗ declaration not enabled
|
|
282
|
+
build/output-fresh ✗ dist/ older than src/
|
|
283
|
+
dependencies/duplicates ✗ react in deps AND devDeps
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
<br>
|
|
287
|
+
|
|
288
|
+
</details>
|
|
289
|
+
|
|
290
|
+
<details>
|
|
291
|
+
<summary><b>tspub scan</b> — Audit any repo</summary>
|
|
292
|
+
|
|
293
|
+
<br>
|
|
294
|
+
|
|
295
|
+
```bash
|
|
296
|
+
tspub scan https://github.com/someone/thing
|
|
297
|
+
tspub scan --top 20 # top 20 TS repos on GitHub
|
|
298
|
+
tspub scan --top 50 --concurrency 5
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
Great for auditing your dependencies before you `npm install` them.
|
|
302
|
+
|
|
303
|
+
<br>
|
|
304
|
+
|
|
305
|
+
</details>
|
|
306
|
+
|
|
307
|
+
<details>
|
|
308
|
+
<summary><b>tspub init</b> — Start fresh</summary>
|
|
309
|
+
|
|
310
|
+
<br>
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
tspub init my-package
|
|
314
|
+
tspub init my-package --cjs # include CommonJS
|
|
315
|
+
tspub init my-package --react # React + JSX
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
<br>
|
|
319
|
+
|
|
320
|
+
</details>
|
|
321
|
+
|
|
322
|
+
<br>
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
<br>
|
|
327
|
+
|
|
328
|
+
## Install
|
|
329
|
+
|
|
330
|
+
```bash
|
|
331
|
+
npm i -D tspub
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
Or just `npx tspub check` — no install needed.
|
|
335
|
+
|
|
336
|
+
<br>
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
<br>
|
|
341
|
+
|
|
342
|
+
## Config
|
|
343
|
+
|
|
344
|
+
Zero config works. But if you want control:
|
|
345
|
+
|
|
346
|
+
```ts
|
|
347
|
+
// tspub.config.ts
|
|
348
|
+
export default {
|
|
349
|
+
build: {
|
|
350
|
+
formats: ["esm", "cjs"],
|
|
351
|
+
entry: "src/index.ts",
|
|
352
|
+
sizeLimits: { "dist/index.js": "50kb" },
|
|
353
|
+
},
|
|
354
|
+
check: {
|
|
355
|
+
severityOverrides: {
|
|
356
|
+
"exports/types-order": "off", // don't care about this one
|
|
357
|
+
},
|
|
358
|
+
},
|
|
359
|
+
publish: {
|
|
360
|
+
access: "public",
|
|
361
|
+
branch: ["main"],
|
|
362
|
+
},
|
|
363
|
+
};
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
<br>
|
|
367
|
+
|
|
368
|
+
---
|
|
369
|
+
|
|
370
|
+
<br>
|
|
371
|
+
|
|
372
|
+
## Plugins
|
|
373
|
+
|
|
374
|
+
Make your own rules:
|
|
375
|
+
|
|
376
|
+
```js
|
|
377
|
+
export const rules = [{
|
|
378
|
+
meta: { id: "custom/no-barrel-files", fixable: false },
|
|
379
|
+
check(ctx) {
|
|
380
|
+
// your logic here
|
|
381
|
+
},
|
|
382
|
+
}];
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
```ts
|
|
386
|
+
// tspub.config.ts
|
|
387
|
+
export default {
|
|
388
|
+
check: { plugins: ["./my-rules.js"] },
|
|
389
|
+
};
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
<br>
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
<br>
|
|
397
|
+
|
|
398
|
+
## Monorepos
|
|
399
|
+
|
|
400
|
+
It just works.
|
|
401
|
+
|
|
402
|
+
```bash
|
|
403
|
+
tspub build --filter "@myorg/*"
|
|
404
|
+
tspub check --filter "packages/core"
|
|
405
|
+
tspub publish --filter "!docs" # everything except docs
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
pnpm, yarn, npm workspaces — all supported.
|
|
409
|
+
|
|
410
|
+
<br>
|
|
411
|
+
|
|
412
|
+
---
|
|
413
|
+
|
|
414
|
+
<br>
|
|
415
|
+
|
|
416
|
+
## API
|
|
417
|
+
|
|
418
|
+
```ts
|
|
419
|
+
import { check, build, doctor, scan } from "tspub";
|
|
420
|
+
|
|
421
|
+
await check({ dir: ".", fix: true });
|
|
422
|
+
await build({ formats: ["esm", "cjs"] });
|
|
423
|
+
await doctor({ dir: "." });
|
|
424
|
+
await scan({ url: "https://github.com/user/repo" });
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
<br>
|
|
428
|
+
|
|
429
|
+
---
|
|
430
|
+
|
|
431
|
+
<br>
|
|
432
|
+
|
|
433
|
+
## FAQ
|
|
434
|
+
|
|
435
|
+
<details>
|
|
436
|
+
<summary><b>How is this different from publint?</b></summary>
|
|
437
|
+
|
|
438
|
+
publint has 40 rules focused on exports and file formats. tspub has 70 rules covering exports, imports, types, files, metadata, and size. We check everything publint checks, plus type resolution (like attw), plus tsconfig validation, size budgets, and more. And we can auto-fix.
|
|
439
|
+
|
|
440
|
+
</details>
|
|
441
|
+
|
|
442
|
+
<details>
|
|
443
|
+
<summary><b>How is this different from arethetypeswrong?</b></summary>
|
|
444
|
+
|
|
445
|
+
attw only checks types. We check types + exports + files + metadata + size. And we can auto-fix.
|
|
446
|
+
|
|
447
|
+
</details>
|
|
448
|
+
|
|
449
|
+
<details>
|
|
450
|
+
<summary><b>Does this replace tsup/unbuild?</b></summary>
|
|
451
|
+
|
|
452
|
+
Yes. `tspub build` handles ESM, CJS, IIFE, DTS bundling, sourcemaps, minification, and watch mode.
|
|
453
|
+
|
|
454
|
+
</details>
|
|
455
|
+
|
|
456
|
+
<details>
|
|
457
|
+
<summary><b>Does this work with monorepos?</b></summary>
|
|
458
|
+
|
|
459
|
+
Yes. All commands accept `--filter` and process packages in topological order.
|
|
460
|
+
|
|
461
|
+
</details>
|
|
462
|
+
|
|
463
|
+
<br>
|
|
464
|
+
|
|
465
|
+
---
|
|
466
|
+
|
|
467
|
+
<br>
|
|
468
|
+
|
|
469
|
+
## Requirements
|
|
470
|
+
|
|
471
|
+
Node 18+ · TypeScript 5+ recommended
|
|
472
|
+
|
|
473
|
+
<br>
|
|
474
|
+
|
|
475
|
+
---
|
|
476
|
+
|
|
477
|
+
<br>
|
|
478
|
+
|
|
479
|
+
<div align="center">
|
|
480
|
+
|
|
481
|
+
Made for the mass-publishers. The Friday deployers. The "it worked on my machine" crowd.
|
|
482
|
+
|
|
483
|
+
We've all been there. Now we don't have to go back.
|
|
484
|
+
|
|
485
|
+
<br>
|
|
486
|
+
|
|
487
|
+
[Docs](https://tspub.dev) · [Playground](https://tspub.dev/playground) · [GitHub](https://github.com/tspub/tspub) · [Issues](https://github.com/tspub/tspub/issues) · [npm](https://npmjs.com/package/tspub)
|
|
488
|
+
|
|
489
|
+
<br>
|
|
490
|
+
|
|
491
|
+
<sub>If this saved your Friday, consider a ⭐</sub>
|
|
492
|
+
|
|
493
|
+
</div>
|
|
494
|
+
|
|
495
|
+
<br>
|