@outfitter/tooling 0.2.4 → 0.3.3

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.
Files changed (56) hide show
  1. package/README.md +69 -1
  2. package/biome.json +1 -1
  3. package/dist/cli/index.js +163 -24
  4. package/dist/index.d.ts +79 -4
  5. package/dist/index.js +17 -6
  6. package/dist/shared/chunk-cmde0fwx.js +421 -0
  7. package/package.json +14 -7
  8. package/registry/registry.json +6 -6
  9. package/dist/cli/check-boundary-invocations.d.ts +0 -34
  10. package/dist/cli/check-boundary-invocations.js +0 -14
  11. package/dist/cli/check-bunup-registry.d.ts +0 -36
  12. package/dist/cli/check-bunup-registry.js +0 -12
  13. package/dist/cli/check-changeset.d.ts +0 -64
  14. package/dist/cli/check-changeset.js +0 -14
  15. package/dist/cli/check-clean-tree.d.ts +0 -36
  16. package/dist/cli/check-clean-tree.js +0 -14
  17. package/dist/cli/check-exports.d.ts +0 -2
  18. package/dist/cli/check-exports.js +0 -14
  19. package/dist/cli/check-readme-imports.d.ts +0 -61
  20. package/dist/cli/check-readme-imports.js +0 -198
  21. package/dist/cli/check.d.ts +0 -19
  22. package/dist/cli/check.js +0 -10
  23. package/dist/cli/fix.d.ts +0 -19
  24. package/dist/cli/fix.js +0 -10
  25. package/dist/cli/init.d.ts +0 -31
  26. package/dist/cli/init.js +0 -12
  27. package/dist/cli/pre-push.d.ts +0 -41
  28. package/dist/cli/pre-push.js +0 -20
  29. package/dist/cli/upgrade-bun.d.ts +0 -8
  30. package/dist/cli/upgrade-bun.js +0 -8
  31. package/dist/registry/build.d.ts +0 -6
  32. package/dist/registry/build.js +0 -147
  33. package/dist/registry/index.d.ts +0 -3
  34. package/dist/registry/index.js +0 -13
  35. package/dist/registry/schema.d.ts +0 -2
  36. package/dist/registry/schema.js +0 -12
  37. package/dist/shared/@outfitter/tooling-0x5q15ec.js +0 -21
  38. package/dist/shared/@outfitter/tooling-1y8w5ahg.js +0 -70
  39. package/dist/shared/@outfitter/tooling-3w8vr2w3.js +0 -94
  40. package/dist/shared/@outfitter/tooling-8sd32ts6.js +0 -277
  41. package/dist/shared/@outfitter/tooling-9errkcvk.js +0 -21
  42. package/dist/shared/@outfitter/tooling-9vs606gq.d.ts +0 -3
  43. package/dist/shared/@outfitter/tooling-9yzd08v1.js +0 -146
  44. package/dist/shared/@outfitter/tooling-ctmgnap5.js +0 -19
  45. package/dist/shared/@outfitter/tooling-dvwh9qve.js +0 -4
  46. package/dist/shared/@outfitter/tooling-enjcenja.js +0 -229
  47. package/dist/shared/@outfitter/tooling-g83d0kjv.js +0 -23
  48. package/dist/shared/@outfitter/tooling-kcvs6mys.js +0 -1
  49. package/dist/shared/@outfitter/tooling-mxwc1n8w.js +0 -68
  50. package/dist/shared/@outfitter/tooling-r9976n43.js +0 -100
  51. package/dist/shared/@outfitter/tooling-sjm8nebx.d.ts +0 -109
  52. package/dist/shared/@outfitter/tooling-t17gnh9b.js +0 -78
  53. package/dist/shared/@outfitter/tooling-wesswf21.d.ts +0 -59
  54. package/dist/shared/chunk-8aenrm6f.js +0 -18
  55. package/dist/version.d.ts +0 -2
  56. package/dist/version.js +0 -8
@@ -1,64 +0,0 @@
1
- /**
2
- * Check-changeset command — validates PRs touching package source include a changeset.
3
- *
4
- * Pure core functions for detecting changed packages and verifying changeset
5
- * presence. The CLI runner in {@link runCheckChangeset} handles git discovery
6
- * and output.
7
- *
8
- * @packageDocumentation
9
- */
10
- /** Result of checking whether changesets are required */
11
- interface ChangesetCheckResult {
12
- readonly ok: boolean;
13
- readonly missingFor: string[];
14
- }
15
- /**
16
- * Extract unique package names from changed file paths.
17
- *
18
- * Only considers files matching the pattern "packages/NAME/src/..." and
19
- * ignores apps/, root files, and package-level config.
20
- *
21
- * @param files - List of changed file paths relative to repo root
22
- * @returns Sorted array of unique package names
23
- */
24
- declare function getChangedPackagePaths(files: string[]): string[];
25
- /**
26
- * Extract changeset filenames from changed file paths.
27
- *
28
- * Only considers files matching `.changeset/*.md`, excluding README.md.
29
- * This checks the git diff rather than disk, ensuring only changesets added
30
- * in the current PR are counted.
31
- *
32
- * @param files - List of changed file paths relative to repo root
33
- * @returns Array of changeset filenames (e.g. `["happy-turtle.md"]`)
34
- */
35
- declare function getChangedChangesetFiles(files: string[]): string[];
36
- /**
37
- * Determine whether a changeset is required and present.
38
- *
39
- * Returns `ok: true` when either no packages were changed or at least one
40
- * changeset file exists. Returns `ok: false` with the list of changed
41
- * packages when changesets are missing.
42
- *
43
- * @param changedPackages - Package names with source changes
44
- * @param changesetFiles - Changeset filenames found in `.changeset/`
45
- */
46
- declare function checkChangesetRequired(changedPackages: string[], changesetFiles: string[]): ChangesetCheckResult;
47
- interface CheckChangesetOptions {
48
- readonly skip?: boolean;
49
- }
50
- /**
51
- * Run check-changeset to verify PRs include changeset files.
52
- *
53
- * Uses `git diff --name-only origin/main...HEAD` to detect changed files,
54
- * then checks for changeset presence when package source files are modified.
55
- *
56
- * Skips silently when:
57
- * - `NO_CHANGESET=1` env var is set
58
- * - `--skip` flag is passed
59
- * - `GITHUB_EVENT_NAME=push` (post-merge on main)
60
- * - No packages have source changes
61
- * - Git diff fails (local dev without origin)
62
- */
63
- declare function runCheckChangeset(options?: CheckChangesetOptions): Promise<void>;
64
- export { runCheckChangeset, getChangedPackagePaths, getChangedChangesetFiles, checkChangesetRequired, CheckChangesetOptions, ChangesetCheckResult };
@@ -1,14 +0,0 @@
1
- // @bun
2
- import {
3
- checkChangesetRequired,
4
- getChangedChangesetFiles,
5
- getChangedPackagePaths,
6
- runCheckChangeset
7
- } from "../shared/@outfitter/tooling-3w8vr2w3.js";
8
- import"../shared/@outfitter/tooling-dvwh9qve.js";
9
- export {
10
- runCheckChangeset,
11
- getChangedPackagePaths,
12
- getChangedChangesetFiles,
13
- checkChangesetRequired
14
- };
@@ -1,36 +0,0 @@
1
- /**
2
- * Check-clean-tree command — asserts the working tree has no modified or untracked files.
3
- *
4
- * Pure core functions for parsing git output and determining tree cleanliness.
5
- * The CLI runner in {@link runCheckCleanTree} handles git invocation and output.
6
- *
7
- * @packageDocumentation
8
- */
9
- /** Status of the working tree after verification steps */
10
- interface TreeStatus {
11
- readonly clean: boolean;
12
- readonly modified: string[];
13
- readonly untracked: string[];
14
- }
15
- /**
16
- * Parse `git diff --name-only` output into a list of modified file paths.
17
- */
18
- declare function parseGitDiff(diffOutput: string): string[];
19
- /**
20
- * Parse `git ls-files --others --exclude-standard` output into a list of untracked file paths.
21
- */
22
- declare function parseUntrackedFiles(lsOutput: string): string[];
23
- /**
24
- * Determine if the tree status represents a clean working tree.
25
- */
26
- declare function isCleanTree(status: TreeStatus): boolean;
27
- interface CheckCleanTreeOptions {
28
- readonly paths?: string[];
29
- }
30
- /**
31
- * Run clean-tree check against the current working directory.
32
- *
33
- * Exits 0 if clean, 1 if dirty files are found.
34
- */
35
- declare function runCheckCleanTree(options?: CheckCleanTreeOptions): Promise<void>;
36
- export { runCheckCleanTree, parseUntrackedFiles, parseGitDiff, isCleanTree, TreeStatus, CheckCleanTreeOptions };
@@ -1,14 +0,0 @@
1
- // @bun
2
- import {
3
- isCleanTree,
4
- parseGitDiff,
5
- parseUntrackedFiles,
6
- runCheckCleanTree
7
- } from "../shared/@outfitter/tooling-1y8w5ahg.js";
8
- import"../shared/@outfitter/tooling-dvwh9qve.js";
9
- export {
10
- runCheckCleanTree,
11
- parseUntrackedFiles,
12
- parseGitDiff,
13
- isCleanTree
14
- };
@@ -1,2 +0,0 @@
1
- import { CheckExportsOptions, CheckResult, CompareInput, ExportDrift, ExportMap, PackageResult, compareExports, entryToSubpath, resolveJsonMode, runCheckExports } from "../shared/@outfitter/tooling-wesswf21";
2
- export { runCheckExports, resolveJsonMode, entryToSubpath, compareExports, PackageResult, ExportMap, ExportDrift, CompareInput, CheckResult, CheckExportsOptions };
@@ -1,14 +0,0 @@
1
- // @bun
2
- import {
3
- compareExports,
4
- entryToSubpath,
5
- resolveJsonMode,
6
- runCheckExports
7
- } from "../shared/@outfitter/tooling-enjcenja.js";
8
- import"../shared/@outfitter/tooling-dvwh9qve.js";
9
- export {
10
- runCheckExports,
11
- resolveJsonMode,
12
- entryToSubpath,
13
- compareExports
14
- };
@@ -1,61 +0,0 @@
1
- import { ExportMap } from "../shared/@outfitter/tooling-wesswf21";
2
- /** An import example extracted from a markdown code block */
3
- interface ImportExample {
4
- /** Package name, e.g. "@outfitter/cli" */
5
- readonly packageName: string;
6
- /** Export subpath, e.g. "./output" or "." */
7
- readonly subpath: string;
8
- /** Full import specifier, e.g. "@outfitter/cli/output" */
9
- readonly fullSpecifier: string;
10
- /** File where the import was found */
11
- readonly file: string;
12
- /** 1-based line number */
13
- readonly line: number;
14
- }
15
- /** Result of checking imports in a single file */
16
- interface ImportCheckResult {
17
- readonly file: string;
18
- readonly valid: ImportExample[];
19
- readonly invalid: ImportExample[];
20
- }
21
- /**
22
- * Parse a full import specifier into package name and subpath.
23
- *
24
- * Only recognizes `@outfitter/*` scoped packages.
25
- *
26
- * @example
27
- * parseSpecifier("@outfitter/cli/output")
28
- * // { packageName: "@outfitter/cli", subpath: "./output" }
29
- *
30
- * parseSpecifier("@outfitter/contracts")
31
- * // { packageName: "@outfitter/contracts", subpath: "." }
32
- */
33
- declare function parseSpecifier(specifier: string): {
34
- packageName: string;
35
- subpath: string;
36
- } | null;
37
- /**
38
- * Extract import specifiers from markdown content.
39
- *
40
- * Only extracts imports from fenced code blocks (typescript, ts,
41
- * javascript, js). Skips blocks preceded by a non-contractual HTML comment.
42
- * Deduplicates by full specifier within a single file.
43
- */
44
- declare function extractImports(content: string, file: string): ImportExample[];
45
- /**
46
- * Check whether a subpath exists in a package.json map.
47
- */
48
- declare function isExportedSubpath(subpath: string, exports: ExportMap): boolean;
49
- interface CheckReadmeImportsOptions {
50
- readonly json?: boolean;
51
- }
52
- declare function resolveJsonMode(options?: CheckReadmeImportsOptions): boolean;
53
- /**
54
- * Run check-readme-imports across all workspace packages.
55
- *
56
- * Finds README.md files in `packages/` and `docs/packages/`, extracts
57
- * import examples, and validates each subpath against the corresponding
58
- * package.json exports.
59
- */
60
- declare function runCheckReadmeImports(options?: CheckReadmeImportsOptions): Promise<void>;
61
- export { runCheckReadmeImports, resolveJsonMode, parseSpecifier, isExportedSubpath, extractImports, ImportExample, ImportCheckResult, ExportMap, CheckReadmeImportsOptions };
@@ -1,198 +0,0 @@
1
- // @bun
2
- import"../shared/@outfitter/tooling-dvwh9qve.js";
3
-
4
- // packages/tooling/src/cli/check-readme-imports.ts
5
- import { resolve } from "path";
6
- function parseSpecifier(specifier) {
7
- if (!specifier.startsWith("@outfitter/")) {
8
- return null;
9
- }
10
- const parts = specifier.split("/");
11
- if (parts.length < 2) {
12
- return null;
13
- }
14
- const packageName = `${parts[0]}/${parts[1]}`;
15
- const rest = parts.slice(2);
16
- if (rest.length === 0) {
17
- return { packageName, subpath: "." };
18
- }
19
- return { packageName, subpath: `./${rest.join("/")}` };
20
- }
21
- function extractImports(content, file) {
22
- const lines = content.split(`
23
- `);
24
- const results = [];
25
- const seen = new Set;
26
- const CODE_FENCE_OPEN = /^```(?:typescript|ts|javascript|js)\s*$/;
27
- const CODE_FENCE_CLOSE = /^```\s*$/;
28
- const IMPORT_RE = /from\s+["'](@outfitter\/[^"']+)["']/;
29
- const NON_CONTRACTUAL = /<!--\s*non-contractual\s*-->/;
30
- let inCodeBlock = false;
31
- let skipBlock = false;
32
- for (let i = 0;i < lines.length; i++) {
33
- const line = lines[i];
34
- if (!inCodeBlock) {
35
- if (CODE_FENCE_OPEN.test(line)) {
36
- inCodeBlock = true;
37
- skipBlock = false;
38
- for (let j = i - 1;j >= 0; j--) {
39
- const prev = lines[j].trim();
40
- if (prev === "")
41
- continue;
42
- if (NON_CONTRACTUAL.test(prev)) {
43
- skipBlock = true;
44
- }
45
- break;
46
- }
47
- }
48
- continue;
49
- }
50
- if (CODE_FENCE_CLOSE.test(line) && !CODE_FENCE_OPEN.test(line)) {
51
- inCodeBlock = false;
52
- skipBlock = false;
53
- continue;
54
- }
55
- if (skipBlock)
56
- continue;
57
- const match = IMPORT_RE.exec(line);
58
- if (!match?.[1])
59
- continue;
60
- const fullSpecifier = match[1];
61
- if (seen.has(fullSpecifier))
62
- continue;
63
- seen.add(fullSpecifier);
64
- const parsed = parseSpecifier(fullSpecifier);
65
- if (!parsed)
66
- continue;
67
- results.push({
68
- packageName: parsed.packageName,
69
- subpath: parsed.subpath,
70
- fullSpecifier,
71
- file,
72
- line: i + 1
73
- });
74
- }
75
- return results;
76
- }
77
- function isExportedSubpath(subpath, exports) {
78
- return subpath in exports;
79
- }
80
- var COLORS = {
81
- reset: "\x1B[0m",
82
- red: "\x1B[31m",
83
- green: "\x1B[32m",
84
- yellow: "\x1B[33m",
85
- blue: "\x1B[34m",
86
- dim: "\x1B[2m"
87
- };
88
- function resolveJsonMode(options = {}) {
89
- return options.json ?? process.env["OUTFITTER_JSON"] === "1";
90
- }
91
- async function runCheckReadmeImports(options = {}) {
92
- const cwd = process.cwd();
93
- const readmeGlob = new Bun.Glob("**/README.md");
94
- const readmeDirs = ["packages", "docs/packages"];
95
- const readmePaths = [];
96
- for (const dir of readmeDirs) {
97
- const fullDir = resolve(cwd, dir);
98
- try {
99
- for (const match of readmeGlob.scanSync({ cwd: fullDir, dot: false })) {
100
- const segments = match.split("/");
101
- if (segments.length === 2 && segments[1] === "README.md") {
102
- readmePaths.push(resolve(fullDir, match));
103
- }
104
- }
105
- } catch {}
106
- }
107
- if (readmePaths.length === 0) {
108
- process.stdout.write(`No README.md files found.
109
- `);
110
- return;
111
- }
112
- const exportsCache = new Map;
113
- async function getExportsForPackage(packageName) {
114
- if (exportsCache.has(packageName)) {
115
- return exportsCache.get(packageName) ?? null;
116
- }
117
- const shortName = packageName.replace("@outfitter/", "");
118
- const pkgPath = resolve(cwd, "packages", shortName, "package.json");
119
- try {
120
- const pkg = await Bun.file(pkgPath).json();
121
- const exports = typeof pkg.exports === "object" && pkg.exports !== null ? pkg.exports : {};
122
- exportsCache.set(packageName, exports);
123
- return exports;
124
- } catch {
125
- return null;
126
- }
127
- }
128
- const results = [];
129
- let hasInvalid = false;
130
- for (const readmePath of readmePaths.sort()) {
131
- const content = await Bun.file(readmePath).text();
132
- const relativePath = readmePath.replace(`${cwd}/`, "");
133
- const imports = extractImports(content, relativePath);
134
- if (imports.length === 0)
135
- continue;
136
- const valid = [];
137
- const invalid = [];
138
- for (const imp of imports) {
139
- const exports = await getExportsForPackage(imp.packageName);
140
- if (exports === null) {
141
- invalid.push(imp);
142
- continue;
143
- }
144
- if (isExportedSubpath(imp.subpath, exports)) {
145
- valid.push(imp);
146
- } else {
147
- invalid.push(imp);
148
- }
149
- }
150
- if (valid.length > 0 || invalid.length > 0) {
151
- results.push({ file: relativePath, valid, invalid });
152
- }
153
- if (invalid.length > 0) {
154
- hasInvalid = true;
155
- }
156
- }
157
- if (resolveJsonMode(options)) {
158
- const output = {
159
- ok: !hasInvalid,
160
- files: results
161
- };
162
- process.stdout.write(`${JSON.stringify(output, null, 2)}
163
- `);
164
- } else {
165
- const totalValid = results.reduce((n, r) => n + r.valid.length, 0);
166
- const totalInvalid = results.reduce((n, r) => n + r.invalid.length, 0);
167
- if (!hasInvalid) {
168
- process.stdout.write(`${COLORS.green}All ${totalValid} README import examples match package exports.${COLORS.reset}
169
- `);
170
- } else {
171
- process.stderr.write(`${COLORS.red}Invalid README import examples found:${COLORS.reset}
172
-
173
- `);
174
- for (const result of results) {
175
- if (result.invalid.length === 0)
176
- continue;
177
- process.stderr.write(` ${COLORS.yellow}${result.file}${COLORS.reset}
178
- `);
179
- for (const imp of result.invalid) {
180
- process.stderr.write(` ${COLORS.red}line ${imp.line}:${COLORS.reset} ${imp.fullSpecifier} ${COLORS.dim}(subpath ${imp.subpath} not in ${imp.packageName} exports)${COLORS.reset}
181
- `);
182
- }
183
- process.stderr.write(`
184
- `);
185
- }
186
- process.stderr.write(`${totalInvalid} invalid, ${totalValid} valid across ${results.length} file(s).
187
- `);
188
- }
189
- }
190
- process.exit(hasInvalid ? 1 : 0);
191
- }
192
- export {
193
- runCheckReadmeImports,
194
- resolveJsonMode,
195
- parseSpecifier,
196
- isExportedSubpath,
197
- extractImports
198
- };
@@ -1,19 +0,0 @@
1
- /**
2
- * CLI check command - Run linting checks (wraps ultracite)
3
- */
4
- /** Options for the check command */
5
- interface CheckOptions {
6
- paths?: string[];
7
- }
8
- /**
9
- * Build the ultracite check command
10
- * @param options - Command options
11
- * @returns Array of command arguments
12
- */
13
- declare function buildCheckCommand(options: CheckOptions): string[];
14
- /**
15
- * Run the check command
16
- * @param paths - Paths to check
17
- */
18
- declare function runCheck(paths?: string[]): Promise<void>;
19
- export { runCheck, buildCheckCommand };
package/dist/cli/check.js DELETED
@@ -1,10 +0,0 @@
1
- // @bun
2
- import {
3
- buildCheckCommand,
4
- runCheck
5
- } from "../shared/@outfitter/tooling-0x5q15ec.js";
6
- import"../shared/@outfitter/tooling-dvwh9qve.js";
7
- export {
8
- runCheck,
9
- buildCheckCommand
10
- };
package/dist/cli/fix.d.ts DELETED
@@ -1,19 +0,0 @@
1
- /**
2
- * CLI fix command - Fix linting issues (wraps ultracite)
3
- */
4
- /** Options for the fix command */
5
- interface FixOptions {
6
- paths?: string[];
7
- }
8
- /**
9
- * Build the ultracite fix command
10
- * @param options - Command options
11
- * @returns Array of command arguments
12
- */
13
- declare function buildFixCommand(options: FixOptions): string[];
14
- /**
15
- * Run the fix command
16
- * @param paths - Paths to fix
17
- */
18
- declare function runFix(paths?: string[]): Promise<void>;
19
- export { runFix, buildFixCommand };
package/dist/cli/fix.js DELETED
@@ -1,10 +0,0 @@
1
- // @bun
2
- import {
3
- buildFixCommand,
4
- runFix
5
- } from "../shared/@outfitter/tooling-9errkcvk.js";
6
- import"../shared/@outfitter/tooling-dvwh9qve.js";
7
- export {
8
- runFix,
9
- buildFixCommand
10
- };
@@ -1,31 +0,0 @@
1
- /**
2
- * CLI init command - Initialize tooling config in a project
3
- */
4
- /** Package.json structure for framework detection */
5
- interface PackageJson {
6
- dependencies?: Record<string, string>;
7
- devDependencies?: Record<string, string>;
8
- }
9
- /** Options for building the ultracite command */
10
- interface UltraciteOptions {
11
- frameworks?: string[];
12
- quiet?: boolean;
13
- }
14
- /**
15
- * Detect frameworks from package.json dependencies
16
- * @param pkg - Package.json contents
17
- * @returns Array of CLI flags for detected frameworks
18
- */
19
- declare function detectFrameworks(pkg: PackageJson): string[];
20
- /**
21
- * Build the ultracite init command with appropriate flags
22
- * @param options - Command options
23
- * @returns Array of command arguments
24
- */
25
- declare function buildUltraciteCommand(options: UltraciteOptions): string[];
26
- /**
27
- * Run the init command
28
- * @param cwd - Working directory
29
- */
30
- declare function runInit(cwd?: string): Promise<void>;
31
- export { runInit, detectFrameworks, buildUltraciteCommand };
package/dist/cli/init.js DELETED
@@ -1,12 +0,0 @@
1
- // @bun
2
- import {
3
- buildUltraciteCommand,
4
- detectFrameworks,
5
- runInit
6
- } from "../shared/@outfitter/tooling-mxwc1n8w.js";
7
- import"../shared/@outfitter/tooling-dvwh9qve.js";
8
- export {
9
- runInit,
10
- detectFrameworks,
11
- buildUltraciteCommand
12
- };
@@ -1,41 +0,0 @@
1
- /**
2
- * Check if branch is a TDD RED phase branch
3
- */
4
- declare function isRedPhaseBranch(branch: string): boolean;
5
- /**
6
- * Check if branch is a scaffold branch
7
- */
8
- declare function isScaffoldBranch(branch: string): boolean;
9
- declare function isTestOnlyPath(path: string): boolean;
10
- declare function areFilesTestOnly(paths: readonly string[]): boolean;
11
- interface PushChangedFiles {
12
- readonly files: readonly string[];
13
- readonly deterministic: boolean;
14
- readonly source: "upstream" | "baseRef" | "undetermined";
15
- }
16
- declare function canBypassRedPhaseByChangedFiles(changedFiles: PushChangedFiles): boolean;
17
- type ScriptMap = Readonly<Record<string, string | undefined>>;
18
- type VerificationPlan = {
19
- readonly ok: true;
20
- readonly scripts: readonly string[];
21
- readonly source: "verify:ci" | "fallback";
22
- } | {
23
- readonly ok: false;
24
- readonly error: string;
25
- };
26
- /**
27
- * Derive strict pre-push verification from package scripts.
28
- *
29
- * Priority:
30
- * 1) `verify:ci`
31
- * 2) fallback sequence: `typecheck`, `check|lint`, `build`, `test`
32
- */
33
- declare function createVerificationPlan(scripts: ScriptMap): VerificationPlan;
34
- interface PrePushOptions {
35
- force?: boolean;
36
- }
37
- /**
38
- * Main pre-push command
39
- */
40
- declare function runPrePush(options?: PrePushOptions): Promise<void>;
41
- export { runPrePush, isTestOnlyPath, isScaffoldBranch, isRedPhaseBranch, createVerificationPlan, canBypassRedPhaseByChangedFiles, areFilesTestOnly, VerificationPlan, PushChangedFiles, PrePushOptions };
@@ -1,20 +0,0 @@
1
- // @bun
2
- import {
3
- areFilesTestOnly,
4
- canBypassRedPhaseByChangedFiles,
5
- createVerificationPlan,
6
- isRedPhaseBranch,
7
- isScaffoldBranch,
8
- isTestOnlyPath,
9
- runPrePush
10
- } from "../shared/@outfitter/tooling-8sd32ts6.js";
11
- import"../shared/@outfitter/tooling-dvwh9qve.js";
12
- export {
13
- runPrePush,
14
- isTestOnlyPath,
15
- isScaffoldBranch,
16
- isRedPhaseBranch,
17
- createVerificationPlan,
18
- canBypassRedPhaseByChangedFiles,
19
- areFilesTestOnly
20
- };
@@ -1,8 +0,0 @@
1
- interface UpgradeBunOptions {
2
- install?: boolean;
3
- }
4
- /**
5
- * Main upgrade-bun command
6
- */
7
- declare function runUpgradeBun(targetVersion?: string, options?: UpgradeBunOptions): Promise<void>;
8
- export { runUpgradeBun, UpgradeBunOptions };
@@ -1,8 +0,0 @@
1
- // @bun
2
- import {
3
- runUpgradeBun
4
- } from "../shared/@outfitter/tooling-9yzd08v1.js";
5
- import"../shared/@outfitter/tooling-dvwh9qve.js";
6
- export {
7
- runUpgradeBun
8
- };
@@ -1,6 +0,0 @@
1
- import { RegistryBuildConfig } from "../shared/@outfitter/tooling-sjm8nebx";
2
- /**
3
- * Registry build configuration
4
- */
5
- declare const REGISTRY_CONFIG: RegistryBuildConfig;
6
- export { REGISTRY_CONFIG };