@codefast/cli 0.10.0 → 0.12.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/CHANGELOG.md +84 -0
- package/README.md +66 -41
- package/dist/arrange/command.js +99 -136
- package/dist/arrange/domain/ast/collectors-cn.d.ts +2 -2
- package/dist/arrange/domain/ast/collectors-cn.js +2 -2
- package/dist/arrange/domain/ast/collectors-jsx.d.ts +2 -2
- package/dist/arrange/domain/ast/collectors-jsx.js +1 -1
- package/dist/arrange/domain/ast/collectors-tv.d.ts +2 -2
- package/dist/arrange/domain/ast/collectors-tv.js +5 -5
- package/dist/arrange/domain/ast/helpers.d.ts +2 -2
- package/dist/arrange/domain/ast/helpers.js +3 -4
- package/dist/arrange/domain/ast/simplify-targets.d.ts +1 -1
- package/dist/arrange/domain/ast/simplify-targets.js +23 -28
- package/dist/arrange/domain/ast/targets.d.ts +2 -2
- package/dist/arrange/domain/ast/targets.js +9 -9
- package/dist/arrange/{typescript-ast-translator.d.ts → domain/ast/translator.d.ts} +6 -5
- package/dist/arrange/{typescript-ast-translator.js → domain/ast/translator.js} +20 -23
- package/dist/arrange/domain/constants.d.ts +1 -1
- package/dist/arrange/domain/grouping-service.d.ts +2 -2
- package/dist/arrange/domain/grouping-service.js +3 -3
- package/dist/arrange/domain/grouping.js +3 -3
- package/dist/arrange/domain/imports.d.ts +1 -1
- package/dist/arrange/domain/imports.js +2 -2
- package/dist/arrange/domain/source-text-formatters.js +1 -1
- package/dist/arrange/domain/tailwind-token.js +1 -1
- package/dist/arrange/domain/token-classifier.d.ts +1 -1
- package/dist/arrange/domain/token-classifier.js +2 -2
- package/dist/arrange/domain/types.d.ts +3 -3
- package/dist/arrange/group/cli-result.d.ts +7 -0
- package/dist/arrange/group/cli-result.js +12 -0
- package/dist/arrange/group/cli-schema.d.ts +17 -0
- package/dist/arrange/group/cli-schema.js +13 -0
- package/dist/arrange/group/output.d.ts +7 -0
- package/dist/arrange/group/output.js +10 -0
- package/dist/arrange/group/suggest.d.ts +8 -0
- package/dist/arrange/{suggest.js → group/suggest.js} +2 -2
- package/dist/arrange/inspect/cli-result.d.ts +7 -0
- package/dist/arrange/inspect/cli-result.js +8 -0
- package/dist/arrange/inspect/cli-schema.d.ts +15 -0
- package/dist/arrange/inspect/cli-schema.js +9 -0
- package/dist/arrange/{domain → inspect/domain}/analyze-service.d.ts +2 -2
- package/dist/arrange/{domain → inspect/domain}/analyze-service.js +7 -7
- package/dist/arrange/inspect/output.d.ts +7 -0
- package/dist/arrange/inspect/output.js +42 -0
- package/dist/arrange/inspect/run.d.ts +10 -0
- package/dist/arrange/{analyze.js → inspect/run.js} +7 -7
- package/dist/arrange/prepare.d.ts +13 -0
- package/dist/arrange/{workspace.js → prepare.js} +9 -12
- package/dist/arrange/regroup/cli-result.d.ts +13 -0
- package/dist/arrange/regroup/cli-result.js +23 -0
- package/dist/arrange/regroup/cli-schema.d.ts +20 -0
- package/dist/arrange/regroup/cli-schema.js +14 -0
- package/dist/arrange/regroup/output.d.ts +14 -0
- package/dist/arrange/regroup/output.js +72 -0
- package/dist/arrange/{process-file.d.ts → regroup/process-file.d.ts} +3 -3
- package/dist/arrange/{process-file.js → regroup/process-file.js} +3 -3
- package/dist/arrange/regroup/run.d.ts +11 -0
- package/dist/arrange/{sync.js → regroup/run.js} +5 -5
- package/dist/arrange/resolve-target.d.ts +2 -2
- package/dist/arrange/resolve-target.js +2 -2
- package/dist/arrange/scan-target.d.ts +2 -2
- package/dist/arrange/scan-target.js +3 -3
- package/dist/arrange/simplify/cli-result.d.ts +7 -0
- package/dist/arrange/simplify/cli-result.js +8 -0
- package/dist/arrange/simplify/cli-schema.d.ts +17 -0
- package/dist/arrange/simplify/cli-schema.js +11 -0
- package/dist/arrange/simplify/fold-targets.d.ts +13 -0
- package/dist/arrange/simplify/fold-targets.js +139 -0
- package/dist/arrange/simplify/output.d.ts +7 -0
- package/dist/arrange/simplify/output.js +15 -0
- package/dist/arrange/simplify/process-file.d.ts +13 -0
- package/dist/arrange/simplify/process-file.js +49 -0
- package/dist/arrange/simplify/run.d.ts +14 -0
- package/dist/arrange/simplify/run.js +38 -0
- package/dist/arrange/simplify/variant-classname-probe.d.ts +35 -0
- package/dist/arrange/simplify/variant-classname-probe.js +95 -0
- package/dist/arrange/source-parse.d.ts +1 -1
- package/dist/arrange/source-parse.js +3 -3
- package/dist/audit/command.js +152 -212
- package/dist/audit/comments/cli-result.d.ts +13 -0
- package/dist/audit/comments/cli-result.js +22 -0
- package/dist/audit/comments/cli-schema.d.ts +19 -0
- package/dist/audit/comments/cli-schema.js +13 -0
- package/dist/audit/comments/output.d.ts +7 -0
- package/dist/audit/comments/output.js +27 -0
- package/dist/audit/comments/prepare.d.ts +16 -0
- package/dist/audit/comments/prepare.js +12 -0
- package/dist/audit/{run-comments.d.ts → comments/run.d.ts} +5 -5
- package/dist/audit/{run-comments.js → comments/run.js} +9 -9
- package/dist/audit/display-names/cli-result.d.ts +13 -0
- package/dist/audit/display-names/cli-result.js +22 -0
- package/dist/audit/display-names/cli-schema.d.ts +18 -0
- package/dist/audit/display-names/cli-schema.js +12 -0
- package/dist/audit/{domain → display-names/domain}/display-names.d.ts +1 -1
- package/dist/audit/display-names/output.d.ts +7 -0
- package/dist/audit/display-names/output.js +21 -0
- package/dist/audit/display-names/prepare.d.ts +16 -0
- package/dist/audit/display-names/prepare.js +12 -0
- package/dist/audit/display-names/run.d.ts +14 -0
- package/dist/audit/{run-display-names.js → display-names/run.js} +5 -5
- package/dist/audit/domain/types.d.ts +43 -0
- package/dist/audit/imports/cli-result.d.ts +13 -0
- package/dist/audit/imports/cli-result.js +22 -0
- package/dist/audit/imports/cli-schema.d.ts +18 -0
- package/dist/audit/imports/cli-schema.js +12 -0
- package/dist/audit/{domain → imports/domain}/import-policy.d.ts +3 -3
- package/dist/audit/{domain → imports/domain}/import-policy.js +4 -11
- package/dist/audit/imports/output.d.ts +7 -0
- package/dist/audit/imports/output.js +21 -0
- package/dist/audit/imports/prepare.d.ts +16 -0
- package/dist/audit/imports/prepare.js +12 -0
- package/dist/audit/imports/run.d.ts +14 -0
- package/dist/audit/{run-imports.js → imports/run.js} +6 -6
- package/dist/audit/links/cli-result.d.ts +13 -0
- package/dist/audit/links/cli-result.js +22 -0
- package/dist/audit/links/cli-schema.d.ts +18 -0
- package/dist/audit/links/cli-schema.js +12 -0
- package/dist/audit/{domain → links/domain}/markdown-links.d.ts +3 -3
- package/dist/audit/{domain → links/domain}/markdown-links.js +22 -8
- package/dist/audit/links/output.d.ts +7 -0
- package/dist/audit/links/output.js +21 -0
- package/dist/audit/links/prepare.d.ts +16 -0
- package/dist/audit/links/prepare.js +12 -0
- package/dist/audit/links/run.d.ts +14 -0
- package/dist/audit/{run-links.js → links/run.js} +4 -4
- package/dist/audit/prepare.d.ts +13 -52
- package/dist/audit/prepare.js +13 -136
- package/dist/audit/publish/cli-result.d.ts +13 -0
- package/dist/audit/publish/cli-result.js +22 -0
- package/dist/audit/publish/cli-schema.d.ts +18 -0
- package/dist/audit/publish/cli-schema.js +12 -0
- package/dist/audit/publish/domain/legacy-subpath.d.ts +8 -0
- package/dist/audit/publish/domain/legacy-subpath.js +22 -0
- package/dist/audit/publish/output.d.ts +7 -0
- package/dist/audit/publish/output.js +24 -0
- package/dist/audit/publish/prepare.d.ts +16 -0
- package/dist/audit/publish/prepare.js +12 -0
- package/dist/audit/publish/run.d.ts +14 -0
- package/dist/audit/publish/run.js +62 -0
- package/dist/audit/rtl/cli-result.d.ts +13 -0
- package/dist/audit/rtl/cli-result.js +22 -0
- package/dist/audit/rtl/cli-schema.d.ts +18 -0
- package/dist/audit/rtl/cli-schema.js +12 -0
- package/dist/audit/{domain → rtl/domain}/audit-file.d.ts +1 -1
- package/dist/audit/{domain → rtl/domain}/audit-file.js +2 -2
- package/dist/audit/{domain → rtl/domain}/tokenize.d.ts +1 -1
- package/dist/audit/rtl/output.d.ts +7 -0
- package/dist/audit/rtl/output.js +21 -0
- package/dist/audit/rtl/prepare.d.ts +13 -0
- package/dist/audit/rtl/prepare.js +41 -0
- package/dist/audit/rtl/run.d.ts +14 -0
- package/dist/audit/{run.js → rtl/run.js} +4 -4
- package/dist/bin.js +1 -1
- package/dist/cli.js +5 -5
- package/dist/core/cli/command-pipeline.d.ts +90 -0
- package/dist/core/cli/command-pipeline.js +83 -0
- package/dist/core/cli/format-error.d.ts +1 -1
- package/dist/core/cli/global-options.d.ts +1 -1
- package/dist/core/cli/global-options.js +1 -1
- package/dist/core/cli/resolve-root.d.ts +9 -0
- package/dist/core/cli/resolve-root.js +16 -0
- package/dist/core/cli/result-handle.d.ts +3 -9
- package/dist/core/cli/result-handle.js +4 -17
- package/dist/core/config/define-config.d.ts +1 -1
- package/dist/core/config/loader.d.ts +3 -3
- package/dist/core/config/loader.js +2 -2
- package/dist/core/config/schema.d.ts +1 -1
- package/dist/core/config/schema.js +1 -1
- package/dist/core/config/warnings.js +1 -1
- package/dist/core/config.d.ts +5 -5
- package/dist/core/config.js +4 -4
- package/dist/core/filesystem/{port.d.ts → filesystem.d.ts} +1 -1
- package/dist/core/filesystem/node.d.ts +3 -3
- package/dist/core/filesystem/node.js +1 -1
- package/dist/core/schema-parse.d.ts +2 -2
- package/dist/core/schema-parse.js +2 -2
- package/dist/core/source-text-edit.d.ts +14 -0
- package/dist/core/source-text-edit.js +22 -0
- package/dist/core/workspace/markdown-walk.d.ts +2 -2
- package/dist/core/workspace/markdown-walk.js +1 -1
- package/dist/core/workspace/package-version.d.ts +2 -2
- package/dist/core/workspace/package-version.js +2 -2
- package/dist/core/workspace/resolver.d.ts +3 -3
- package/dist/core/workspace/resolver.js +5 -5
- package/dist/core/workspace/source-walk.d.ts +2 -2
- package/dist/core/workspace/source-walk.js +1 -1
- package/dist/core/workspace/typescript-walk.d.ts +2 -2
- package/dist/core/workspace/typescript-walk.js +1 -1
- package/dist/core/workspace/walk-files.d.ts +2 -2
- package/dist/core/workspace/walk-files.js +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -2
- package/dist/mirror/cli-result.d.ts +1 -1
- package/dist/mirror/cli-result.js +1 -1
- package/dist/mirror/cli-schema.d.ts +2 -2
- package/dist/mirror/cli-schema.js +1 -1
- package/dist/mirror/command.js +36 -65
- package/dist/mirror/dist-filesystem-node.d.ts +8 -0
- package/dist/mirror/{dist-filesystem-impl.js → dist-filesystem-node.js} +3 -3
- package/dist/mirror/domain/dirent-guard.d.ts +1 -1
- package/dist/mirror/domain/exports.d.ts +2 -2
- package/dist/mirror/domain/exports.js +1 -1
- package/dist/mirror/domain/types.d.ts +59 -2
- package/dist/mirror/output.d.ts +1 -3
- package/dist/mirror/output.js +127 -2
- package/dist/mirror/package-path.d.ts +5 -5
- package/dist/mirror/package-path.js +3 -3
- package/dist/mirror/prepare.d.ts +6 -6
- package/dist/mirror/prepare.js +8 -12
- package/dist/mirror/run.d.ts +12 -0
- package/dist/mirror/{sync.js → run.js} +7 -7
- package/dist/mirror/supplement-exports.d.ts +3 -3
- package/dist/mirror/supplement-exports.js +2 -2
- package/dist/mirror/sync-workspace-package.d.ts +4 -4
- package/dist/mirror/sync-workspace-package.js +11 -14
- package/dist/mirror/write-exports.d.ts +3 -3
- package/dist/mirror/write-exports.js +3 -3
- package/dist/pack-slim/cli-result.d.ts +1 -1
- package/dist/pack-slim/cli-result.js +1 -1
- package/dist/pack-slim/cli-schema.d.ts +1 -1
- package/dist/pack-slim/cli-schema.js +1 -1
- package/dist/pack-slim/command.js +36 -71
- package/dist/pack-slim/domain/transform.d.ts +22 -1
- package/dist/pack-slim/domain/transform.js +65 -8
- package/dist/pack-slim/output.d.ts +1 -1
- package/dist/pack-slim/output.js +1 -1
- package/dist/pack-slim/prepare.d.ts +21 -0
- package/dist/pack-slim/prepare.js +14 -0
- package/dist/pack-slim/{sync.d.ts → run.d.ts} +6 -6
- package/dist/pack-slim/{sync.js → run.js} +5 -5
- package/dist/pack-slim/working-tree.d.ts +2 -2
- package/dist/pack-slim/working-tree.js +2 -2
- package/dist/tag/cli-result.d.ts +8 -2
- package/dist/tag/cli-result.js +15 -2
- package/dist/tag/cli-schema.d.ts +4 -4
- package/dist/tag/cli-schema.js +3 -4
- package/dist/tag/command.js +34 -61
- package/dist/tag/domain/skip-filter.d.ts +13 -0
- package/dist/tag/domain/skip-filter.js +29 -0
- package/dist/tag/domain/types.d.ts +22 -2
- package/dist/tag/domain/version-summary.d.ts +13 -0
- package/dist/tag/domain/version-summary.js +24 -0
- package/dist/tag/output.d.ts +4 -4
- package/dist/tag/output.js +7 -10
- package/dist/tag/prepare.d.ts +5 -5
- package/dist/tag/prepare.js +5 -5
- package/dist/tag/run.d.ts +10 -0
- package/dist/tag/{sync.js → run.js} +23 -53
- package/dist/tag/target/candidates.d.ts +8 -0
- package/dist/tag/{target-candidates.js → target/candidates.js} +3 -3
- package/dist/tag/{resolve-target-path.d.ts → target/resolve-path.d.ts} +2 -2
- package/dist/tag/target/runner.d.ts +8 -0
- package/dist/tag/{target-runner.js → target/runner.js} +3 -3
- package/dist/tag/{since-writer.d.ts → writer/since-writer.d.ts} +3 -3
- package/dist/tag/{since-writer.js → writer/since-writer.js} +1 -1
- package/dist/tag/{version-resolver.d.ts → writer/version-resolver.d.ts} +2 -2
- package/dist/tag/{version-resolver.js → writer/version-resolver.js} +1 -1
- package/package.json +15 -7
- package/dist/arrange/analyze.d.ts +0 -10
- package/dist/arrange/cli-schema.d.ts +0 -50
- package/dist/arrange/cli-schema.js +0 -34
- package/dist/arrange/output.d.ts +0 -26
- package/dist/arrange/output.js +0 -127
- package/dist/arrange/simplify-process-file.d.ts +0 -11
- package/dist/arrange/simplify-process-file.js +0 -30
- package/dist/arrange/simplify-sync.d.ts +0 -13
- package/dist/arrange/simplify-sync.js +0 -30
- package/dist/arrange/suggest.d.ts +0 -8
- package/dist/arrange/sync.d.ts +0 -11
- package/dist/arrange/workspace.d.ts +0 -13
- package/dist/audit/cli-schema.d.ts +0 -93
- package/dist/audit/cli-schema.js +0 -66
- package/dist/audit/output.d.ts +0 -91
- package/dist/audit/output.js +0 -213
- package/dist/audit/run-display-names.d.ts +0 -14
- package/dist/audit/run-imports.d.ts +0 -14
- package/dist/audit/run-links.d.ts +0 -14
- package/dist/audit/run.d.ts +0 -14
- package/dist/mirror/dist-filesystem-impl.d.ts +0 -8
- package/dist/mirror/sync-reporter.d.ts +0 -60
- package/dist/mirror/sync-reporter.js +0 -128
- package/dist/mirror/sync-types.d.ts +0 -43
- package/dist/mirror/sync-types.js +0 -1
- package/dist/mirror/sync.d.ts +0 -12
- package/dist/tag/sync.d.ts +0 -42
- package/dist/tag/target-candidates.d.ts +0 -8
- package/dist/tag/target-runner.d.ts +0 -8
- /package/dist/audit/{domain → comments/domain}/comment-content.d.ts +0 -0
- /package/dist/audit/{domain → comments/domain}/comment-content.js +0 -0
- /package/dist/audit/{domain → comments/domain}/comment-dividers.d.ts +0 -0
- /package/dist/audit/{domain → comments/domain}/comment-dividers.js +0 -0
- /package/dist/audit/{domain → comments/domain}/link-references.d.ts +0 -0
- /package/dist/audit/{domain → comments/domain}/link-references.js +0 -0
- /package/dist/audit/{domain → comments/domain}/since-versions.d.ts +0 -0
- /package/dist/audit/{domain → comments/domain}/since-versions.js +0 -0
- /package/dist/audit/{domain → comments/domain}/tsdoc-syntax.d.ts +0 -0
- /package/dist/audit/{domain → comments/domain}/tsdoc-syntax.js +0 -0
- /package/dist/audit/{domain → display-names/domain}/display-names.js +0 -0
- /package/dist/audit/{domain → rtl/domain}/mappings.d.ts +0 -0
- /package/dist/audit/{domain → rtl/domain}/mappings.js +0 -0
- /package/dist/audit/{domain → rtl/domain}/tokenize.js +0 -0
- /package/dist/core/filesystem/{port.js → filesystem.js} +0 -0
- /package/dist/tag/{resolve-target-path.js → target/resolve-path.js} +0 -0
package/dist/mirror/prepare.js
CHANGED
|
@@ -1,22 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { resolveProjectRoot } from "#/core/workspace/resolver";
|
|
6
|
-
import { resolveMirrorPackageFromCliArg } from "#/mirror/package-path";
|
|
1
|
+
import { resolveProjectRootResult } from "#core/cli/resolve-root";
|
|
2
|
+
import { loadCodefastConfig } from "#core/config";
|
|
3
|
+
import { ok } from "#core/result";
|
|
4
|
+
import { resolveMirrorPackageFromCliArg } from "#mirror/package-path";
|
|
7
5
|
/**
|
|
8
6
|
* Resolves the repo root, config, and package filter into the prelude a mirror run starts from.
|
|
9
7
|
*
|
|
10
8
|
* @since 0.3.16-canary.0
|
|
11
9
|
*/
|
|
12
10
|
export async function prepareMirrorSync(fs, args) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
catch (caughtError) {
|
|
18
|
-
return err(new AppError("INFRA_FAILURE", messageFrom(caughtError), caughtError));
|
|
11
|
+
const rootOutcome = resolveProjectRootResult(fs, args.currentWorkingDirectory);
|
|
12
|
+
if (!rootOutcome.ok) {
|
|
13
|
+
return rootOutcome;
|
|
19
14
|
}
|
|
15
|
+
const rootDir = rootOutcome.value;
|
|
20
16
|
const filterOutcome = resolveMirrorPackageFromCliArg(fs, {
|
|
21
17
|
rootDir,
|
|
22
18
|
packageArg: args.packageArg,
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AppError } from "#core/errors";
|
|
2
|
+
import type { Filesystem } from "#core/filesystem/filesystem";
|
|
3
|
+
import type { Result } from "#core/result";
|
|
4
|
+
import type { GlobalStats } from "#mirror/domain/types";
|
|
5
|
+
import type { MirrorSyncExecutionInput } from "#mirror/domain/types";
|
|
6
|
+
export type { MirrorSyncExecutionInput } from "#mirror/domain/types";
|
|
7
|
+
/**
|
|
8
|
+
* Runs the mirror sync across the targeted packages and returns the aggregate stats.
|
|
9
|
+
*
|
|
10
|
+
* @since 0.3.16-canary.0
|
|
11
|
+
*/
|
|
12
|
+
export declare function runMirrorSync(fs: Filesystem, input: MirrorSyncExecutionInput): Promise<Result<GlobalStats, AppError>>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import { AppError } from "
|
|
3
|
-
import { messageFrom } from "
|
|
4
|
-
import { err, ok } from "
|
|
5
|
-
import { listWorkspacePackageDirectories } from "
|
|
6
|
-
import { normalizePath } from "
|
|
7
|
-
import { resolvePackageFilterUnderRoot } from "
|
|
8
|
-
import { syncExportsForWorkspacePackage } from "
|
|
2
|
+
import { AppError } from "#core/errors";
|
|
3
|
+
import { messageFrom } from "#core/errors";
|
|
4
|
+
import { err, ok } from "#core/result";
|
|
5
|
+
import { listWorkspacePackageDirectories } from "#core/workspace/resolver";
|
|
6
|
+
import { normalizePath } from "#mirror/domain/path-normalizer";
|
|
7
|
+
import { resolvePackageFilterUnderRoot } from "#mirror/package-path";
|
|
8
|
+
import { syncExportsForWorkspacePackage } from "#mirror/sync-workspace-package";
|
|
9
9
|
/**
|
|
10
10
|
* Runs the mirror sync across the targeted packages and returns the aggregate stats.
|
|
11
11
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Filesystem } from "#core/filesystem/filesystem";
|
|
2
2
|
/**
|
|
3
3
|
* The export specifiers a preserve-mode run added conditions to.
|
|
4
4
|
*
|
|
@@ -12,7 +12,7 @@ export type SupplementResult = {
|
|
|
12
12
|
*
|
|
13
13
|
* @since 0.3.16-canary.0
|
|
14
14
|
*/
|
|
15
|
-
export declare function supplementExportsInPackageJson(fs:
|
|
15
|
+
export declare function supplementExportsInPackageJson(fs: Filesystem, packageJsonPath: string, packageDir: string, options: {
|
|
16
16
|
source: boolean | string;
|
|
17
17
|
types: boolean;
|
|
18
18
|
import: boolean;
|
|
@@ -24,4 +24,4 @@ export declare function supplementExportsInPackageJson(fs: FilesystemPort, packa
|
|
|
24
24
|
*
|
|
25
25
|
* @since 0.3.16-canary.0
|
|
26
26
|
*/
|
|
27
|
-
export declare function buildSourcePathResolver(fs:
|
|
27
|
+
export declare function buildSourcePathResolver(fs: Filesystem, packageDir: string): (modulePath: string) => string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import { distDirName } from "
|
|
3
|
-
import { writePackageJsonExportsAtomic } from "
|
|
2
|
+
import { distDirName } from "#core/workspace/well-known-files";
|
|
3
|
+
import { writePackageJsonExportsAtomic } from "#mirror/write-exports";
|
|
4
4
|
const DTS_EXTENSIONS = [".d.mts", ".d.ts", ".d.cts"];
|
|
5
5
|
const JS_EXTENSIONS = [".mjs", ".js"];
|
|
6
6
|
/**
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { MirrorConfig } from "
|
|
2
|
-
import type {
|
|
3
|
-
import type { PackageStats } from "
|
|
1
|
+
import type { MirrorConfig } from "#core/config/schema";
|
|
2
|
+
import type { Filesystem } from "#core/filesystem/filesystem";
|
|
3
|
+
import type { PackageStats } from "#mirror/domain/types";
|
|
4
4
|
/**
|
|
5
5
|
* Regenerates one package's `package.json#exports` from its `dist/` and returns the package's stats.
|
|
6
6
|
*
|
|
7
7
|
* @since 0.3.16-canary.0
|
|
8
8
|
*/
|
|
9
|
-
export declare function syncExportsForWorkspacePackage(fs:
|
|
9
|
+
export declare function syncExportsForWorkspacePackage(fs: Filesystem, rootDir: string, packagePathStr: string, config: MirrorConfig, write?: boolean): Promise<PackageStats>;
|
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import { messageFrom } from "
|
|
3
|
-
import { distDirName, packageJsonFileName } from "
|
|
4
|
-
import { createMirrorDistFilesystem } from "
|
|
5
|
-
import { createPathTransform, generateExports } from "
|
|
6
|
-
import { resolvePackageDisplayName } from "
|
|
7
|
-
import { buildSourcePathResolver, supplementExportsInPackageJson } from "
|
|
8
|
-
import { writePackageJsonExportsAtomic } from "
|
|
2
|
+
import { messageFrom } from "#core/errors";
|
|
3
|
+
import { distDirName, packageJsonFileName } from "#core/workspace/well-known-files";
|
|
4
|
+
import { createMirrorDistFilesystem } from "#mirror/dist-filesystem-node";
|
|
5
|
+
import { createPathTransform, generateExports } from "#mirror/domain/exports";
|
|
6
|
+
import { resolvePackageDisplayName } from "#mirror/domain/package-display-name";
|
|
7
|
+
import { buildSourcePathResolver, supplementExportsInPackageJson } from "#mirror/supplement-exports";
|
|
8
|
+
import { writePackageJsonExportsAtomic } from "#mirror/write-exports";
|
|
9
9
|
/**
|
|
10
10
|
* Regenerates one package's `package.json#exports` from its `dist/` and returns the package's stats.
|
|
11
11
|
*
|
|
12
12
|
* @since 0.3.16-canary.0
|
|
13
13
|
*/
|
|
14
14
|
export async function syncExportsForWorkspacePackage(fs, rootDir, packagePathStr, config, write = true) {
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const distDir = pathJoin(packageDir, distDirName);
|
|
20
|
-
const packageJsonPath = pathJoin(packageDir, packageJsonFileName);
|
|
21
|
-
const folderBasename = pathBasename(packageDir);
|
|
15
|
+
const packageDir = path.resolve(rootDir, packagePathStr);
|
|
16
|
+
const distDir = path.join(packageDir, distDirName);
|
|
17
|
+
const packageJsonPath = path.join(packageDir, packageJsonFileName);
|
|
18
|
+
const folderBasename = path.basename(packageDir);
|
|
22
19
|
const distFilesystem = createMirrorDistFilesystem(fs);
|
|
23
20
|
const pkgStats = {
|
|
24
21
|
name: folderBasename,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { ExportMapData, ExportOriginalPathBySpecifier } from "
|
|
1
|
+
import type { Filesystem } from "#core/filesystem/filesystem";
|
|
2
|
+
import type { ExportMapData, ExportOriginalPathBySpecifier } from "#mirror/domain/types";
|
|
3
3
|
/**
|
|
4
4
|
* Writes `exports` into `package.json` via a temp file + rename (atomic on same volume).
|
|
5
5
|
* Preserves a trailing newline after JSON.
|
|
6
6
|
*
|
|
7
7
|
* @since 0.3.16-canary.0
|
|
8
8
|
*/
|
|
9
|
-
export declare function writePackageJsonExportsAtomic(fs:
|
|
9
|
+
export declare function writePackageJsonExportsAtomic(fs: Filesystem, packageJsonPath: string, mergeInput: {
|
|
10
10
|
generatedExports: ExportMapData;
|
|
11
11
|
managedExportSpecifiers: Array<string>;
|
|
12
12
|
originalPathBySpecifier: ExportOriginalPathBySpecifier;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { messageFrom } from "
|
|
2
|
-
import { PACKAGE_JSON_EXPORT } from "
|
|
3
|
-
import { MirrorError, MirrorErrorCode } from "
|
|
1
|
+
import { messageFrom } from "#core/errors";
|
|
2
|
+
import { PACKAGE_JSON_EXPORT } from "#mirror/domain/constants";
|
|
3
|
+
import { MirrorError, MirrorErrorCode } from "#mirror/domain/errors";
|
|
4
4
|
/**
|
|
5
5
|
* Writes `exports` into `package.json` via a temp file + rename (atomic on same volume).
|
|
6
6
|
* Preserves a trailing newline after JSON.
|
|
@@ -1,80 +1,45 @@
|
|
|
1
|
-
import process from "node:process";
|
|
2
1
|
import { Command } from "commander";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
2
|
+
import { applyCommandPipeline } from "#core/cli/command-pipeline";
|
|
3
|
+
import { nodeFilesystem } from "#core/filesystem/node";
|
|
4
|
+
import { ok } from "#core/result";
|
|
5
|
+
import { exitCodeForPackSlimResult, formatPackSlimJsonOutput } from "#pack-slim/cli-result";
|
|
6
|
+
import { packSlimRunRequestSchema } from "#pack-slim/cli-schema";
|
|
7
|
+
import { PackSlimProgressPresenter } from "#pack-slim/output";
|
|
8
|
+
import { preparePackSlim } from "#pack-slim/prepare";
|
|
9
|
+
import { runPackSlim } from "#pack-slim/run";
|
|
10
|
+
import { ensureWorkingTreeClean } from "#pack-slim/working-tree";
|
|
11
|
+
const packSlimPipeline = {
|
|
12
|
+
positional: { name: "[package]", help: "Optional package path relative to repo root (e.g. packages/ui)" },
|
|
13
|
+
schema: packSlimRunRequestSchema,
|
|
14
|
+
configureArgv: (command) => {
|
|
15
|
+
command.option("--dry-run", "Report what would change without touching any file", false);
|
|
16
|
+
command.option("--force", "Run even if the git working tree has uncommitted tracked changes", false);
|
|
17
|
+
},
|
|
18
|
+
prepare: (fs, input) => preparePackSlim(fs, { currentWorkingDirectory: input.currentWorkingDirectory, packageArg: input.rawArg }),
|
|
19
|
+
// A destructive slim must never land on uncommitted work; --dry-run writes nothing, so it is exempt.
|
|
20
|
+
guard: async ({ prelude, opts }) => !opts.dryRun && !opts.force ? ensureWorkingTreeClean(prelude.rootDir) : ok(undefined),
|
|
21
|
+
buildRequest: ({ prelude, opts }) => ({
|
|
22
|
+
rootDir: prelude.rootDir,
|
|
23
|
+
packageFilter: prelude.packageFilter,
|
|
24
|
+
write: !opts.dryRun,
|
|
25
|
+
}),
|
|
26
|
+
createPresenter: ({ opts }) => {
|
|
27
|
+
const presenter = new PackSlimProgressPresenter();
|
|
28
|
+
presenter.configure({ dryRun: !!opts.dryRun });
|
|
29
|
+
return presenter;
|
|
30
|
+
},
|
|
31
|
+
run: (fs, request, presenter) => runPackSlim(fs, { ...request, listener: presenter }),
|
|
32
|
+
formatJson: ({ result, opts, elapsedSeconds }) => formatPackSlimJsonOutput(result, elapsedSeconds, !opts.dryRun),
|
|
33
|
+
exitCode: exitCodeForPackSlimResult,
|
|
34
|
+
};
|
|
17
35
|
/**
|
|
18
36
|
* Creates the `pack-slim` subcommand, which slims published packages down to what a consumer reads before publish.
|
|
19
37
|
*
|
|
20
38
|
* @since 0.8.1
|
|
21
39
|
*/
|
|
22
40
|
export function createPackSlimCommand() {
|
|
23
|
-
const cmd = new Command("pack-slim")
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
.argument("[package]", "Optional package path relative to repo root (e.g. packages/ui)")
|
|
27
|
-
.option("--dry-run", "Report what would change without touching any file", false)
|
|
28
|
-
.option("--force", "Run even if the git working tree has uncommitted tracked changes", false)
|
|
29
|
-
.option("--json", "Print one JSON summary on stdout (suppresses human progress)", false)
|
|
30
|
-
.action(async (packageArg, opts, command) => {
|
|
31
|
-
const globalsOptionCarrier = command.optsWithGlobals?.() ??
|
|
32
|
-
command.opts();
|
|
33
|
-
const globalOptionsOutcome = parseWithSchema(globalCliCommanderOptionsSchema, globalsOptionCarrier);
|
|
34
|
-
if (!consumeCliAppError(globalOptionsOutcome)) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
let rootDir;
|
|
38
|
-
try {
|
|
39
|
-
rootDir = resolveProjectRoot(process.cwd(), nodeFilesystem).rootDir;
|
|
40
|
-
}
|
|
41
|
-
catch (caughtError) {
|
|
42
|
-
consumeCliAppError(err(new AppError("INFRA_FAILURE", messageFrom(caughtError), caughtError)));
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
const write = !opts.dryRun;
|
|
46
|
-
// A destructive slim must never land on a developer's uncommitted work; --dry-run writes nothing, so it is exempt.
|
|
47
|
-
if (write && !opts.force) {
|
|
48
|
-
const cleanCheck = ensureWorkingTreeClean(rootDir);
|
|
49
|
-
if (!consumeCliAppError(cleanCheck)) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
const parsed = parseWithSchema(packSlimRunRequestSchema, {
|
|
54
|
-
rootDir,
|
|
55
|
-
packageFilter: readOptionalPositionalArg(packageArg),
|
|
56
|
-
write,
|
|
57
|
-
});
|
|
58
|
-
if (!consumeCliAppError(parsed)) {
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
const json = !!opts.json;
|
|
62
|
-
const presenter = new PackSlimProgressPresenter();
|
|
63
|
-
if (!json) {
|
|
64
|
-
presenter.configure({ dryRun: !write });
|
|
65
|
-
}
|
|
66
|
-
const startTime = performance.now();
|
|
67
|
-
const outcome = await runPackSlim(nodeFilesystem, {
|
|
68
|
-
...parsed.value,
|
|
69
|
-
listener: json ? undefined : presenter,
|
|
70
|
-
});
|
|
71
|
-
if (!consumeCliAppError(outcome)) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
if (json) {
|
|
75
|
-
logger.out(formatPackSlimJsonOutput(outcome.value, (performance.now() - startTime) / 1000, write));
|
|
76
|
-
}
|
|
77
|
-
process.exitCode = exitCodeForPackSlimResult(outcome.value);
|
|
78
|
-
});
|
|
41
|
+
const cmd = new Command("pack-slim").description("Strip src, source conditions, unshipped imports, dev-only scripts, devDependencies, and dist source maps from " +
|
|
42
|
+
"published packages before publish");
|
|
43
|
+
applyCommandPipeline(cmd, nodeFilesystem, packSlimPipeline);
|
|
79
44
|
return cmd;
|
|
80
45
|
}
|
|
@@ -54,12 +54,33 @@ export declare function isLifecycleScript(name: string): boolean;
|
|
|
54
54
|
* Produces a publish manifest carrying only what a consumer's `tsc` and Node read.
|
|
55
55
|
*
|
|
56
56
|
* @remarks Operates on a structural clone, so the caller's manifest is left intact. A consumer never enables `source`
|
|
57
|
-
* and resolves
|
|
57
|
+
* and resolves `#` through `types`/`default` to `dist`, so dropping the source lane, the `imports` left pointing
|
|
58
58
|
* outside `files`, the scripts that are not lifecycle hooks, and `devDependencies` leaves the published surface whole.
|
|
59
59
|
*
|
|
60
60
|
* @since 0.8.1
|
|
61
61
|
*/
|
|
62
62
|
export declare function slimPublishManifest(manifest: Record<string, unknown>): SlimManifestResult;
|
|
63
|
+
/**
|
|
64
|
+
* A published `exports`/`imports` target the slimmed manifest points at but does not ship.
|
|
65
|
+
*
|
|
66
|
+
* @since 0.12.0
|
|
67
|
+
*/
|
|
68
|
+
export interface UnshippedTarget {
|
|
69
|
+
readonly field: "exports" | "imports";
|
|
70
|
+
readonly subpath: string;
|
|
71
|
+
readonly target: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* The publish targets a package would resolve to a file it does not ship.
|
|
75
|
+
*
|
|
76
|
+
* @remarks Runs the same slim the publish step applies, then checks each surviving `exports`/`imports`
|
|
77
|
+
* target against the shipped `files`. A non-empty result means a consumer resolves that subpath to a
|
|
78
|
+
* missing file — the failure dropping a stylesheet's `src` subtree produces. With no `files` field npm
|
|
79
|
+
* ships everything, so nothing is unshipped.
|
|
80
|
+
*
|
|
81
|
+
* @since 0.12.0
|
|
82
|
+
*/
|
|
83
|
+
export declare function unshippedPublishTargets(manifest: Record<string, unknown>): Array<UnshippedTarget>;
|
|
63
84
|
/**
|
|
64
85
|
* Strips every `sourceMappingURL` directive line from an emitted file's text.
|
|
65
86
|
*
|
|
@@ -58,16 +58,16 @@ export function isLifecycleScript(name) {
|
|
|
58
58
|
* Produces a publish manifest carrying only what a consumer's `tsc` and Node read.
|
|
59
59
|
*
|
|
60
60
|
* @remarks Operates on a structural clone, so the caller's manifest is left intact. A consumer never enables `source`
|
|
61
|
-
* and resolves
|
|
61
|
+
* and resolves `#` through `types`/`default` to `dist`, so dropping the source lane, the `imports` left pointing
|
|
62
62
|
* outside `files`, the scripts that are not lifecycle hooks, and `devDependencies` leaves the published surface whole.
|
|
63
63
|
*
|
|
64
64
|
* @since 0.8.1
|
|
65
65
|
*/
|
|
66
66
|
export function slimPublishManifest(manifest) {
|
|
67
67
|
const draft = structuredClone(manifest);
|
|
68
|
-
const filesSrcRemoved = removeSrcFromFiles(draft);
|
|
69
68
|
const exportsSourceRemoved = deleteSourceConditions(draft.exports);
|
|
70
69
|
const importsSourceRemoved = deleteSourceConditions(draft.imports);
|
|
70
|
+
const filesSrcRemoved = removeSrcFromFiles(draft);
|
|
71
71
|
const importsUnshippedRemoved = deleteUnshippedImports(draft);
|
|
72
72
|
const scriptsRemoved = deleteDevOnlyScripts(draft);
|
|
73
73
|
const devDependenciesRemoved = deleteDevDependencies(draft);
|
|
@@ -85,6 +85,44 @@ export function slimPublishManifest(manifest) {
|
|
|
85
85
|
},
|
|
86
86
|
};
|
|
87
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* The publish targets a package would resolve to a file it does not ship.
|
|
90
|
+
*
|
|
91
|
+
* @remarks Runs the same slim the publish step applies, then checks each surviving `exports`/`imports`
|
|
92
|
+
* target against the shipped `files`. A non-empty result means a consumer resolves that subpath to a
|
|
93
|
+
* missing file — the failure dropping a stylesheet's `src` subtree produces. With no `files` field npm
|
|
94
|
+
* ships everything, so nothing is unshipped.
|
|
95
|
+
*
|
|
96
|
+
* @since 0.12.0
|
|
97
|
+
*/
|
|
98
|
+
export function unshippedPublishTargets(manifest) {
|
|
99
|
+
const { manifest: slimmed } = slimPublishManifest(manifest);
|
|
100
|
+
const files = Array.isArray(slimmed.files)
|
|
101
|
+
? slimmed.files.filter((entry) => typeof entry === "string")
|
|
102
|
+
: [];
|
|
103
|
+
if (files.length === 0) {
|
|
104
|
+
return [];
|
|
105
|
+
}
|
|
106
|
+
const unshipped = [];
|
|
107
|
+
for (const field of ["exports", "imports"]) {
|
|
108
|
+
const node = slimmed[field];
|
|
109
|
+
if (!isRecord(node)) {
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
for (const subpath of Object.keys(node)) {
|
|
113
|
+
for (const target of collectTargets(node[subpath])) {
|
|
114
|
+
// Only relative file targets can be unshipped; npm always includes package.json.
|
|
115
|
+
if (!target.startsWith("./") || stripDotSlash(target) === "package.json") {
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
if (!isShippedTarget(target, files)) {
|
|
119
|
+
unshipped.push({ field, subpath, target });
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return unshipped;
|
|
125
|
+
}
|
|
88
126
|
/**
|
|
89
127
|
* Strips every `sourceMappingURL` directive line from an emitted file's text.
|
|
90
128
|
*
|
|
@@ -98,18 +136,37 @@ export function stripSourceMappingComment(text) {
|
|
|
98
136
|
}
|
|
99
137
|
return { text: kept.join("\n"), stripped: true };
|
|
100
138
|
}
|
|
139
|
+
// Replaces the `src` files entry with only the src subtrees the published surface still points into —
|
|
140
|
+
// a stylesheet export like `./css/*` -> `./src/css/*` ships Tailwind source, so dropping all of src
|
|
141
|
+
// would ship a broken export. Runs after the source conditions are stripped, so the `#*` source lane
|
|
142
|
+
// no longer counts; with nothing left pointing into src the entry is dropped outright.
|
|
101
143
|
function removeSrcFromFiles(manifest) {
|
|
102
144
|
const files = manifest.files;
|
|
103
|
-
if (!Array.isArray(files)) {
|
|
145
|
+
if (!Array.isArray(files) || !files.includes("src")) {
|
|
104
146
|
return false;
|
|
105
147
|
}
|
|
106
|
-
const
|
|
107
|
-
|
|
108
|
-
return false;
|
|
109
|
-
}
|
|
110
|
-
manifest.files = next;
|
|
148
|
+
const keep = srcPathsShippedBySurface(manifest);
|
|
149
|
+
manifest.files = files.flatMap((entry) => (entry === "src" ? keep : [entry]));
|
|
111
150
|
return true;
|
|
112
151
|
}
|
|
152
|
+
// The src subtrees a surviving `exports`/`imports` target still ships, e.g. `./src/css/*` -> `src/css`.
|
|
153
|
+
function srcPathsShippedBySurface(manifest) {
|
|
154
|
+
const targets = [...collectTargets(manifest.exports), ...collectTargets(manifest.imports)];
|
|
155
|
+
const kept = new Set();
|
|
156
|
+
for (const target of targets) {
|
|
157
|
+
const relative = stripDotSlash(target);
|
|
158
|
+
if (relative !== "src" && !relative.startsWith("src/")) {
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
const segments = relative.split("/");
|
|
162
|
+
// A glob tail (`*`, `**`) ships its directory; a concrete file ships itself.
|
|
163
|
+
if (segments.at(-1)?.includes("*")) {
|
|
164
|
+
segments.pop();
|
|
165
|
+
}
|
|
166
|
+
kept.add(segments.join("/"));
|
|
167
|
+
}
|
|
168
|
+
return [...kept].sort();
|
|
169
|
+
}
|
|
113
170
|
// Walks a conditions tree deleting every `source` key. A subpath key always starts with ".", so only real condition
|
|
114
171
|
// objects match; an `imports` entry this leaves empty is what the unshipped pass removes.
|
|
115
172
|
function deleteSourceConditions(node) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PackSlimPackageStats, PackSlimProgressListener, PackSlimRunStats } from "
|
|
1
|
+
import type { PackSlimPackageStats, PackSlimProgressListener, PackSlimRunStats } from "#pack-slim/domain/types";
|
|
2
2
|
/**
|
|
3
3
|
* A progress listener that renders pack-slim run events as human-readable CLI lines.
|
|
4
4
|
*
|
package/dist/pack-slim/output.js
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { AppError } from "#core/errors";
|
|
2
|
+
import type { Filesystem } from "#core/filesystem/filesystem";
|
|
3
|
+
import type { Result } from "#core/result";
|
|
4
|
+
/**
|
|
5
|
+
* The repo root and package filter a pack-slim run starts from.
|
|
6
|
+
*
|
|
7
|
+
* @since 0.8.1
|
|
8
|
+
*/
|
|
9
|
+
export interface PackSlimCommandPrelude {
|
|
10
|
+
readonly rootDir: string;
|
|
11
|
+
readonly packageFilter: string | undefined;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Resolves the repo root and optional package filter into the prelude a pack-slim run starts from.
|
|
15
|
+
*
|
|
16
|
+
* @since 0.8.1
|
|
17
|
+
*/
|
|
18
|
+
export declare function preparePackSlim(fs: Filesystem, args: {
|
|
19
|
+
readonly currentWorkingDirectory: string;
|
|
20
|
+
readonly packageArg: string | undefined;
|
|
21
|
+
}): Promise<Result<PackSlimCommandPrelude, AppError>>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { resolveProjectRootResult } from "#core/cli/resolve-root";
|
|
2
|
+
import { ok } from "#core/result";
|
|
3
|
+
/**
|
|
4
|
+
* Resolves the repo root and optional package filter into the prelude a pack-slim run starts from.
|
|
5
|
+
*
|
|
6
|
+
* @since 0.8.1
|
|
7
|
+
*/
|
|
8
|
+
export async function preparePackSlim(fs, args) {
|
|
9
|
+
const rootOutcome = resolveProjectRootResult(fs, args.currentWorkingDirectory);
|
|
10
|
+
if (!rootOutcome.ok) {
|
|
11
|
+
return rootOutcome;
|
|
12
|
+
}
|
|
13
|
+
return ok({ rootDir: rootOutcome.value, packageFilter: args.packageArg });
|
|
14
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { AppError } from "
|
|
2
|
-
import type {
|
|
3
|
-
import type { Result } from "
|
|
4
|
-
import type { PackSlimRunRequest } from "
|
|
5
|
-
import type { PackSlimProgressListener, PackSlimRunStats } from "
|
|
1
|
+
import { AppError } from "#core/errors";
|
|
2
|
+
import type { Filesystem } from "#core/filesystem/filesystem";
|
|
3
|
+
import type { Result } from "#core/result";
|
|
4
|
+
import type { PackSlimRunRequest } from "#pack-slim/cli-schema";
|
|
5
|
+
import type { PackSlimProgressListener, PackSlimRunStats } from "#pack-slim/domain/types";
|
|
6
6
|
/**
|
|
7
7
|
* A pack-slim run request paired with an optional progress listener.
|
|
8
8
|
*
|
|
@@ -20,4 +20,4 @@ export type PackSlimRunInput = PackSlimRunRequest & {
|
|
|
20
20
|
*
|
|
21
21
|
* @since 0.8.1
|
|
22
22
|
*/
|
|
23
|
-
export declare function runPackSlim(fs:
|
|
23
|
+
export declare function runPackSlim(fs: Filesystem, input: PackSlimRunInput): Promise<Result<PackSlimRunStats, AppError>>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import { AppError, messageFrom } from "
|
|
3
|
-
import { err, ok } from "
|
|
4
|
-
import { listWorkspacePackageDirectories } from "
|
|
5
|
-
import { distDirName, packageJsonFileName } from "
|
|
6
|
-
import { isMapAnnotatedFile, isSourceMapFile, slimPublishManifest, stripSourceMappingComment, } from "
|
|
2
|
+
import { AppError, messageFrom } from "#core/errors";
|
|
3
|
+
import { err, ok } from "#core/result";
|
|
4
|
+
import { listWorkspacePackageDirectories } from "#core/workspace/resolver";
|
|
5
|
+
import { distDirName, packageJsonFileName } from "#core/workspace/well-known-files";
|
|
6
|
+
import { isMapAnnotatedFile, isSourceMapFile, slimPublishManifest, stripSourceMappingComment, } from "#pack-slim/domain/transform";
|
|
7
7
|
/**
|
|
8
8
|
* Slims every published package's manifest and build output for publish and returns the aggregate stats.
|
|
9
9
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { execFileSync } from "node:child_process";
|
|
2
|
-
import { AppError, messageFrom } from "
|
|
3
|
-
import { err, ok } from "
|
|
2
|
+
import { AppError, messageFrom } from "#core/errors";
|
|
3
|
+
import { err, ok } from "#core/result";
|
|
4
4
|
/**
|
|
5
5
|
* Whether git's tracked-only porcelain output reports any uncommitted change.
|
|
6
6
|
*
|
package/dist/tag/cli-result.d.ts
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { TagResult } from "#tag/domain/types";
|
|
2
2
|
/**
|
|
3
3
|
* Maps a tag run's result to the process exit code.
|
|
4
4
|
*
|
|
5
5
|
* @since 0.3.16-canary.0
|
|
6
6
|
*/
|
|
7
|
-
export declare function
|
|
7
|
+
export declare function exitCodeForTagResult(result: TagResult): number;
|
|
8
|
+
/**
|
|
9
|
+
* Serializes a tag run's result as the `--json` output string.
|
|
10
|
+
*
|
|
11
|
+
* @since 0.11.0
|
|
12
|
+
*/
|
|
13
|
+
export declare function formatTagJsonOutput(result: TagResult, rootDir: string): string;
|
package/dist/tag/cli-result.js
CHANGED
|
@@ -1,13 +1,26 @@
|
|
|
1
|
-
import { CLI_EXIT_GENERAL_ERROR, CLI_EXIT_SUCCESS } from "
|
|
1
|
+
import { CLI_EXIT_GENERAL_ERROR, CLI_EXIT_SUCCESS } from "#core/exit-codes";
|
|
2
2
|
/**
|
|
3
3
|
* Maps a tag run's result to the process exit code.
|
|
4
4
|
*
|
|
5
5
|
* @since 0.3.16-canary.0
|
|
6
6
|
*/
|
|
7
|
-
export function
|
|
7
|
+
export function exitCodeForTagResult(result) {
|
|
8
8
|
if (result.selectedTargets.length === 0) {
|
|
9
9
|
return CLI_EXIT_GENERAL_ERROR;
|
|
10
10
|
}
|
|
11
11
|
const hasRunErrors = result.targetResults.some((targetResult) => targetResult.runError !== null);
|
|
12
12
|
return hasRunErrors || result.hookError !== null ? CLI_EXIT_GENERAL_ERROR : CLI_EXIT_SUCCESS;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Serializes a tag run's result as the `--json` output string.
|
|
16
|
+
*
|
|
17
|
+
* @since 0.11.0
|
|
18
|
+
*/
|
|
19
|
+
export function formatTagJsonOutput(result, rootDir) {
|
|
20
|
+
return JSON.stringify({
|
|
21
|
+
schemaVersion: 1,
|
|
22
|
+
ok: result.hookError === null,
|
|
23
|
+
cwd: rootDir,
|
|
24
|
+
result,
|
|
25
|
+
});
|
|
13
26
|
}
|
package/dist/tag/cli-schema.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type {
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
import type { TagRunRequest } from "#tag/domain/types";
|
|
3
3
|
/**
|
|
4
|
-
* Zod schema validating a `
|
|
4
|
+
* Zod schema validating a `TagRunRequest`.
|
|
5
5
|
*
|
|
6
6
|
* @since 0.3.16-canary.0
|
|
7
7
|
*/
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const tagRunRequestSchema: z.ZodType<TagRunRequest>;
|