@niujiajie/freespec 0.0.0-stage → 1.15.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 +22 -0
- package/README.md +58 -2
- package/bin/freespec.js +5 -0
- package/dist/cli/index.d.ts +25 -0
- package/dist/cli/index.js +359 -0
- package/dist/commands/shared-output.d.ts +18 -0
- package/dist/commands/shared-output.js +61 -0
- package/dist/commands/workflow/default-schema.d.ts +2 -0
- package/dist/commands/workflow/default-schema.js +4 -0
- package/dist/commands/workflow/index.d.ts +13 -0
- package/dist/commands/workflow/index.js +10 -0
- package/dist/commands/workflow/instructions.d.ts +39 -0
- package/dist/commands/workflow/instructions.js +565 -0
- package/dist/commands/workflow/new-change.d.ts +19 -0
- package/dist/commands/workflow/new-change.js +135 -0
- package/dist/commands/workflow/shared.d.ts +94 -0
- package/dist/commands/workflow/shared.js +169 -0
- package/dist/commands/workflow/status.d.ts +18 -0
- package/dist/commands/workflow/status.js +201 -0
- package/dist/core/artifact-graph/graph.d.ts +72 -0
- package/dist/core/artifact-graph/graph.js +165 -0
- package/dist/core/artifact-graph/index.d.ts +9 -0
- package/dist/core/artifact-graph/index.js +14 -0
- package/dist/core/artifact-graph/instruction-loader.d.ts +208 -0
- package/dist/core/artifact-graph/instruction-loader.js +268 -0
- package/dist/core/artifact-graph/outputs.d.ts +19 -0
- package/dist/core/artifact-graph/outputs.js +351 -0
- package/dist/core/artifact-graph/resolver.d.ts +89 -0
- package/dist/core/artifact-graph/resolver.js +342 -0
- package/dist/core/artifact-graph/schema.d.ts +27 -0
- package/dist/core/artifact-graph/schema.js +160 -0
- package/dist/core/artifact-graph/state.d.ts +12 -0
- package/dist/core/artifact-graph/state.js +31 -0
- package/dist/core/artifact-graph/types.d.ts +40 -0
- package/dist/core/artifact-graph/types.js +59 -0
- package/dist/core/available-tools.d.ts +18 -0
- package/dist/core/available-tools.js +49 -0
- package/dist/core/change-layout.d.ts +17 -0
- package/dist/core/change-layout.js +30 -0
- package/dist/core/change-metadata/index.d.ts +2 -0
- package/dist/core/change-metadata/index.js +2 -0
- package/dist/core/change-metadata/schema.d.ts +23 -0
- package/dist/core/change-metadata/schema.js +46 -0
- package/dist/core/change-status-policy.d.ts +49 -0
- package/dist/core/change-status-policy.js +50 -0
- package/dist/core/command-generation/adapters/amazon-q.d.ts +17 -0
- package/dist/core/command-generation/adapters/amazon-q.js +32 -0
- package/dist/core/command-generation/adapters/antigravity.d.ts +13 -0
- package/dist/core/command-generation/adapters/antigravity.js +27 -0
- package/dist/core/command-generation/adapters/atomcode.d.ts +24 -0
- package/dist/core/command-generation/adapters/atomcode.js +46 -0
- package/dist/core/command-generation/adapters/auggie.d.ts +13 -0
- package/dist/core/command-generation/adapters/auggie.js +28 -0
- package/dist/core/command-generation/adapters/bob.d.ts +18 -0
- package/dist/core/command-generation/adapters/bob.js +33 -0
- package/dist/core/command-generation/adapters/claude.d.ts +13 -0
- package/dist/core/command-generation/adapters/claude.js +32 -0
- package/dist/core/command-generation/adapters/cline.d.ts +14 -0
- package/dist/core/command-generation/adapters/cline.js +27 -0
- package/dist/core/command-generation/adapters/codeassistant.d.ts +15 -0
- package/dist/core/command-generation/adapters/codeassistant.js +29 -0
- package/dist/core/command-generation/adapters/codebuddy.d.ts +13 -0
- package/dist/core/command-generation/adapters/codebuddy.js +29 -0
- package/dist/core/command-generation/adapters/codestudio.d.ts +13 -0
- package/dist/core/command-generation/adapters/codestudio.js +27 -0
- package/dist/core/command-generation/adapters/command-code.d.ts +19 -0
- package/dist/core/command-generation/adapters/command-code.js +34 -0
- package/dist/core/command-generation/adapters/continue.d.ts +13 -0
- package/dist/core/command-generation/adapters/continue.js +33 -0
- package/dist/core/command-generation/adapters/costrict.d.ts +13 -0
- package/dist/core/command-generation/adapters/costrict.js +28 -0
- package/dist/core/command-generation/adapters/crush.d.ts +13 -0
- package/dist/core/command-generation/adapters/crush.js +30 -0
- package/dist/core/command-generation/adapters/cursor.d.ts +14 -0
- package/dist/core/command-generation/adapters/cursor.js +31 -0
- package/dist/core/command-generation/adapters/devin.d.ts +19 -0
- package/dist/core/command-generation/adapters/devin.js +36 -0
- package/dist/core/command-generation/adapters/easycode.d.ts +17 -0
- package/dist/core/command-generation/adapters/easycode.js +28 -0
- package/dist/core/command-generation/adapters/factory.d.ts +13 -0
- package/dist/core/command-generation/adapters/factory.js +28 -0
- package/dist/core/command-generation/adapters/gemini.d.ts +13 -0
- package/dist/core/command-generation/adapters/gemini.js +27 -0
- package/dist/core/command-generation/adapters/gigacode.d.ts +17 -0
- package/dist/core/command-generation/adapters/gigacode.js +31 -0
- package/dist/core/command-generation/adapters/github-copilot.d.ts +13 -0
- package/dist/core/command-generation/adapters/github-copilot.js +27 -0
- package/dist/core/command-generation/adapters/iflow.d.ts +13 -0
- package/dist/core/command-generation/adapters/iflow.js +30 -0
- package/dist/core/command-generation/adapters/index.d.ts +40 -0
- package/dist/core/command-generation/adapters/index.js +40 -0
- package/dist/core/command-generation/adapters/junie.d.ts +13 -0
- package/dist/core/command-generation/adapters/junie.js +27 -0
- package/dist/core/command-generation/adapters/kilocode.d.ts +14 -0
- package/dist/core/command-generation/adapters/kilocode.js +23 -0
- package/dist/core/command-generation/adapters/kiro.d.ts +13 -0
- package/dist/core/command-generation/adapters/kiro.js +27 -0
- package/dist/core/command-generation/adapters/lingma.d.ts +13 -0
- package/dist/core/command-generation/adapters/lingma.js +30 -0
- package/dist/core/command-generation/adapters/oh-my-pi.d.ts +21 -0
- package/dist/core/command-generation/adapters/oh-my-pi.js +42 -0
- package/dist/core/command-generation/adapters/opencode.d.ts +14 -0
- package/dist/core/command-generation/adapters/opencode.js +38 -0
- package/dist/core/command-generation/adapters/pi.d.ts +18 -0
- package/dist/core/command-generation/adapters/pi.js +39 -0
- package/dist/core/command-generation/adapters/qoder.d.ts +13 -0
- package/dist/core/command-generation/adapters/qoder.js +30 -0
- package/dist/core/command-generation/adapters/qwen.d.ts +17 -0
- package/dist/core/command-generation/adapters/qwen.js +31 -0
- package/dist/core/command-generation/adapters/roocode.d.ts +14 -0
- package/dist/core/command-generation/adapters/roocode.js +27 -0
- package/dist/core/command-generation/adapters/trae.d.ts +13 -0
- package/dist/core/command-generation/adapters/trae.js +28 -0
- package/dist/core/command-generation/adapters/zcode.d.ts +16 -0
- package/dist/core/command-generation/adapters/zcode.js +33 -0
- package/dist/core/command-generation/generator.d.ts +29 -0
- package/dist/core/command-generation/generator.js +43 -0
- package/dist/core/command-generation/index.d.ts +22 -0
- package/dist/core/command-generation/index.js +24 -0
- package/dist/core/command-generation/invocation.d.ts +73 -0
- package/dist/core/command-generation/invocation.js +77 -0
- package/dist/core/command-generation/registry.d.ts +36 -0
- package/dist/core/command-generation/registry.js +114 -0
- package/dist/core/command-generation/toml.d.ts +19 -0
- package/dist/core/command-generation/toml.js +39 -0
- package/dist/core/command-generation/types.d.ts +63 -0
- package/dist/core/command-generation/types.js +8 -0
- package/dist/core/command-generation/yaml.d.ts +36 -0
- package/dist/core/command-generation/yaml.js +48 -0
- package/dist/core/command-surface.d.ts +15 -0
- package/dist/core/command-surface.js +33 -0
- package/dist/core/config-prompts.d.ts +9 -0
- package/dist/core/config-prompts.js +56 -0
- package/dist/core/config-schema.d.ts +98 -0
- package/dist/core/config-schema.js +308 -0
- package/dist/core/config.d.ts +50 -0
- package/dist/core/config.js +122 -0
- package/dist/core/file-state.d.ts +36 -0
- package/dist/core/file-state.js +144 -0
- package/dist/core/file-view.d.ts +13 -0
- package/dist/core/file-view.js +14 -0
- package/dist/core/global-config.d.ts +101 -0
- package/dist/core/global-config.js +182 -0
- package/dist/core/id.d.ts +17 -0
- package/dist/core/id.js +30 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.js +7 -0
- package/dist/core/init.d.ts +57 -0
- package/dist/core/init.js +836 -0
- package/dist/core/list.d.ts +11 -0
- package/dist/core/list.js +197 -0
- package/dist/core/migration.d.ts +121 -0
- package/dist/core/migration.js +540 -0
- package/dist/core/onboarding-commands.d.ts +30 -0
- package/dist/core/onboarding-commands.js +38 -0
- package/dist/core/openspec-root.d.ts +47 -0
- package/dist/core/openspec-root.js +196 -0
- package/dist/core/planning-home.d.ts +16 -0
- package/dist/core/planning-home.js +67 -0
- package/dist/core/profile-sync-drift.d.ts +31 -0
- package/dist/core/profile-sync-drift.js +201 -0
- package/dist/core/profiles.d.ts +19 -0
- package/dist/core/profiles.js +33 -0
- package/dist/core/project-config.d.ts +132 -0
- package/dist/core/project-config.js +519 -0
- package/dist/core/references.d.ts +10 -0
- package/dist/core/references.js +46 -0
- package/dist/core/root-selection.d.ts +59 -0
- package/dist/core/root-selection.js +132 -0
- package/dist/core/shared/allowed-tools.d.ts +12 -0
- package/dist/core/shared/allowed-tools.js +12 -0
- package/dist/core/shared/ide-restart.d.ts +26 -0
- package/dist/core/shared/ide-restart.js +42 -0
- package/dist/core/shared/index.d.ts +11 -0
- package/dist/core/shared/index.js +11 -0
- package/dist/core/shared/skill-content-equivalence.d.ts +7 -0
- package/dist/core/shared/skill-content-equivalence.js +45 -0
- package/dist/core/shared/skill-files.d.ts +7 -0
- package/dist/core/shared/skill-files.js +43 -0
- package/dist/core/shared/skill-generation.d.ts +49 -0
- package/dist/core/shared/skill-generation.js +125 -0
- package/dist/core/shared/skill-paths.d.ts +13 -0
- package/dist/core/shared/skill-paths.js +23 -0
- package/dist/core/shared/tool-detection.d.ts +99 -0
- package/dist/core/shared/tool-detection.js +318 -0
- package/dist/core/shared-skill-target.d.ts +51 -0
- package/dist/core/shared-skill-target.js +239 -0
- package/dist/core/store/errors.d.ts +20 -0
- package/dist/core/store/errors.js +22 -0
- package/dist/core/store/index.d.ts +2 -0
- package/dist/core/store/index.js +2 -0
- package/dist/core/styles/palette.d.ts +7 -0
- package/dist/core/styles/palette.js +8 -0
- package/dist/core/templates/optional-workflow.d.ts +69 -0
- package/dist/core/templates/optional-workflow.js +140 -0
- package/dist/core/templates/types.d.ts +19 -0
- package/dist/core/templates/types.js +5 -0
- package/dist/core/templates/workflows/personal.d.ts +22 -0
- package/dist/core/templates/workflows/personal.js +225 -0
- package/dist/core/update-plan.d.ts +127 -0
- package/dist/core/update-plan.js +390 -0
- package/dist/core/update.d.ts +154 -0
- package/dist/core/update.js +723 -0
- package/dist/core/version-check.d.ts +188 -0
- package/dist/core/version-check.js +906 -0
- package/dist/core/zod-issues.d.ts +4 -0
- package/dist/core/zod-issues.js +10 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/prompts/searchable-multi-select.d.ts +35 -0
- package/dist/prompts/searchable-multi-select.js +188 -0
- package/dist/telemetry/config.d.ts +37 -0
- package/dist/telemetry/config.js +148 -0
- package/dist/telemetry/index.d.ts +39 -0
- package/dist/telemetry/index.js +217 -0
- package/dist/telemetry/opt-out.d.ts +17 -0
- package/dist/telemetry/opt-out.js +27 -0
- package/dist/ui/ascii-patterns.d.ts +16 -0
- package/dist/ui/ascii-patterns.js +133 -0
- package/dist/ui/welcome-screen.d.ts +18 -0
- package/dist/ui/welcome-screen.js +199 -0
- package/dist/utils/change-metadata.d.ts +116 -0
- package/dist/utils/change-metadata.js +324 -0
- package/dist/utils/change-utils.d.ts +79 -0
- package/dist/utils/change-utils.js +121 -0
- package/dist/utils/ci.d.ts +12 -0
- package/dist/utils/ci.js +16 -0
- package/dist/utils/command-references.d.ts +104 -0
- package/dist/utils/command-references.js +190 -0
- package/dist/utils/date.d.ts +8 -0
- package/dist/utils/date.js +13 -0
- package/dist/utils/executable-path.d.ts +5 -0
- package/dist/utils/executable-path.js +44 -0
- package/dist/utils/file-system.d.ts +58 -0
- package/dist/utils/file-system.js +432 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/interactive.d.ts +85 -0
- package/dist/utils/interactive.js +174 -0
- package/dist/utils/item-discovery.d.ts +15 -0
- package/dist/utils/item-discovery.js +33 -0
- package/dist/utils/line-endings.d.ts +34 -0
- package/dist/utils/line-endings.js +46 -0
- package/dist/utils/match.d.ts +3 -0
- package/dist/utils/match.js +22 -0
- package/dist/utils/nested-change.d.ts +35 -0
- package/dist/utils/nested-change.js +185 -0
- package/dist/utils/shell-detection.d.ts +20 -0
- package/dist/utils/shell-detection.js +94 -0
- package/dist/utils/task-progress.d.ts +67 -0
- package/dist/utils/task-progress.js +184 -0
- package/package.json +74 -4
- package/schemas//351/273/230/350/256/244/schema.yaml +68 -0
- package/schemas//351/273/230/350/256/244/templates//344/273/273/345/212/241/346/270/205/345/215/225.md +25 -0
- package/schemas//351/273/230/350/256/244/templates//346/265/213/350/257/225/347/224/250/344/276/213.md +34 -0
- package/schemas//351/273/230/350/256/244/templates//350/256/276/350/256/241/346/226/207/346/241/243.md +172 -0
- package/schemas//351/273/230/350/256/244/templates//351/234/200/346/261/202/346/226/207/346/241/243.md +19 -0
- package/skill-files//344/273/273/345/212/241/references//346/212/244/346/240/217.md +43 -0
- package/skill-files//344/273/273/345/212/241/references//347/262/222/345/272/246.md +23 -0
- package/skill-files//344/273/273/345/212/241/references//347/272/246/346/235/237.md +8 -0
- package/skill-files//344/273/273/345/212/241/scripts/check-tasks.mjs +83 -0
- package/skill-files//345/206/231Java/references/Java/350/247/204/350/214/203.md +25 -0
- package/skill-files//345/206/231Java/references//345/215/261/351/231/251/345/206/231/346/263/225.md +27 -0
- package/skill-files//345/206/231Java/references//345/256/214/346/210/220/345/257/271/347/205/247.md +15 -0
- package/skill-files//345/206/231Java/references//346/212/244/346/240/217.md +35 -0
- package/skill-files//345/206/231Java/references//347/272/246/346/235/237.md +8 -0
- package/skill-files//345/206/231Java/references//350/270/251/345/235/221.md +17 -0
- package/skill-files//345/256/241Java/references//346/212/244/346/240/217.md +19 -0
- package/skill-files//345/256/241Java/references//347/244/272/344/276/213.md +23 -0
- package/skill-files//345/256/241Java/references//347/272/246/346/235/237.md +7 -0
- package/skill-files//345/256/241Java/references//350/247/204/345/210/231.md +23 -0
- package/skill-files//345/256/241Java/references//351/242/206/345/237/237/346/243/200/351/241/271.md +58 -0
- package/skill-files//345/256/241/346/226/207/346/241/243/references//346/212/244/346/240/217.md +18 -0
- package/skill-files//345/256/241/346/226/207/346/241/243/references//347/272/246/346/235/237.md +8 -0
- package/skill-files//345/256/241/346/226/207/346/241/243/references//347/273/264/345/272/246.md +17 -0
- package/skill-files//345/256/241/346/226/207/346/241/243/references//350/270/251/345/235/221.md +11 -0
- package/skill-files//346/226/260/345/273/272/references//344/272/244/346/216/245.md +11 -0
- package/skill-files//346/226/260/345/273/272/references//346/212/244/346/240/217.md +14 -0
- package/skill-files//346/226/260/345/273/272/references//347/272/246/346/235/237.md +7 -0
- package/skill-files//346/267/261/346/200/235/config/prompts.yaml +114 -0
- package/skill-files//346/267/261/346/200/235/references//344/270/211/346/226/271/346/240/270/345/257/271.md +72 -0
- package/skill-files//346/267/261/346/200/235/references//344/276/213/345/255/220.md +39 -0
- package/skill-files//346/267/261/346/200/235/references//346/200/216/344/271/210/346/203/263.md +61 -0
- package/skill-files//346/267/261/346/200/235/references//346/212/244/346/240/217.md +26 -0
- package/skill-files//346/267/261/346/200/235/references//347/202/271/351/200/211/346/217/220/351/227/256.md +66 -0
- package/skill-files//346/267/261/346/200/235/references//347/231/273/350/256/260.md +45 -0
- package/skill-files//346/267/261/346/200/235/references//347/272/246/346/235/237.md +9 -0
- package/skill-files//347/224/250/344/276/213/references//346/200/216/344/271/210/345/206/231.md +13 -0
- package/skill-files//347/224/250/344/276/213/references//346/212/244/346/240/217.md +42 -0
- package/skill-files//347/224/250/344/276/213/references//347/272/246/346/235/237.md +5 -0
- package/skill-files//347/224/250/344/276/213/scripts/check-cases.mjs +70 -0
- package/skill-files//350/256/276/350/256/241/references//345/207/206/345/244/207.md +25 -0
- package/skill-files//350/256/276/350/256/241/references//346/212/244/346/240/217.md +134 -0
- package/skill-files//350/256/276/350/256/241/references//346/226/207/351/243/216.md +17 -0
- package/skill-files//350/256/276/350/256/241/references//347/225/214/351/235/242.md +18 -0
- package/skill-files//350/256/276/350/256/241/references//347/261/273/345/236/213.md +19 -0
- package/skill-files//350/256/276/350/256/241/references//347/272/246/346/235/237.md +25 -0
- package/skill-files//350/256/276/350/256/241/scripts/_smoke.mjs +72 -0
- package/skill-files//350/256/276/350/256/241/scripts/check-design.mjs +331 -0
- package/skill-files//351/234/200/346/261/202/references//346/212/244/346/240/217.md +26 -0
- package/skill-files//351/234/200/346/261/202/references//346/226/207/351/243/216.md +23 -0
- package/skill-files//351/234/200/346/261/202/references//346/267/261/346/200/235/346/221/204/345/205/245.md +21 -0
- package/skill-files//351/234/200/346/261/202/references//347/272/246/346/235/237.md +8 -0
- package/skill-files//351/234/200/346/261/202/references//351/234/200/346/261/202/345/276/205/345/256/232.md +13 -0
- package/skill-files//351/234/200/346/261/202/scripts/check-requirements.mjs +60 -0
- package/skill-files//351/252/214/346/224/266/references//346/212/244/346/240/217.md +27 -0
- package/skill-files//351/252/214/346/224/266/references//346/240/270/345/257/271.md +17 -0
- package/skill-files//351/252/214/346/224/266/references//347/272/246/346/235/237.md +7 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Called by the standalone binary's entry point. That copy has no package
|
|
3
|
+
* manager behind it, so a package-manager command is the wrong upgrade advice.
|
|
4
|
+
*/
|
|
5
|
+
export declare function markStandaloneBinary(executablePath: string): void;
|
|
6
|
+
/** The standalone binary's own path, or null when running from a package. */
|
|
7
|
+
export declare function getStandaloneBinaryPath(): string | null;
|
|
8
|
+
/**
|
|
9
|
+
* The registry to ask. A configured registry is honored only over TLS: a
|
|
10
|
+
* cleartext hop would aim the request at a link-local or internal address and
|
|
11
|
+
* let anyone on the path choose the "newer version" answer.
|
|
12
|
+
*
|
|
13
|
+
* A rejected registry disables the check rather than falling back to public
|
|
14
|
+
* npm. Falling back would send a request an organization on an internal mirror
|
|
15
|
+
* deliberately avoided, and would then report a version resolved against a
|
|
16
|
+
* registry the eventual `npm install -g` does not use.
|
|
17
|
+
*/
|
|
18
|
+
export declare function registryUrl(): string | null;
|
|
19
|
+
/**
|
|
20
|
+
* Compares two semver-ish versions. Returns 1 when a > b, -1 when a < b, 0
|
|
21
|
+
* otherwise. Prereleases sort below their release (1.7.0-beta.1 < 1.7.0).
|
|
22
|
+
*/
|
|
23
|
+
export declare function compareVersions(a: string, b: string): number;
|
|
24
|
+
export type CliUpdateStatus = 'available' | 'current' | 'disabled' | 'offline';
|
|
25
|
+
export interface CliUpdateCheck {
|
|
26
|
+
status: CliUpdateStatus;
|
|
27
|
+
latest: string | null;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Checks the registry while preserving enough detail for callers to explain
|
|
31
|
+
* why no newer version was reported. Never throws.
|
|
32
|
+
*/
|
|
33
|
+
export declare function checkForCliUpdate(): Promise<CliUpdateCheck>;
|
|
34
|
+
/**
|
|
35
|
+
* Returns the published version when the installed CLI is behind it, otherwise
|
|
36
|
+
* null. Kept as the compatibility surface used by `freespec update`.
|
|
37
|
+
*/
|
|
38
|
+
export declare function getAvailableCliUpdate(): Promise<string | null>;
|
|
39
|
+
/**
|
|
40
|
+
* Directory the running CLI was loaded from, or null when it cannot be
|
|
41
|
+
* resolved. Shown in the upgrade hint so anyone who upgraded but still runs an
|
|
42
|
+
* old binary — a stale pnpm/volta/npx shim, or two installs on PATH — can see
|
|
43
|
+
* which copy is actually answering.
|
|
44
|
+
*/
|
|
45
|
+
export declare function getInstallDir(): string | null;
|
|
46
|
+
/**
|
|
47
|
+
* True when the running CLI resolves from a `node_modules` belonging to the
|
|
48
|
+
* project being updated or any ancestor of it — the hoisted-root layout npm and
|
|
49
|
+
* pnpm workspaces produce. Anchored on the target path rather than the working
|
|
50
|
+
* directory, since `freespec update <path>` and running from a sub-package are
|
|
51
|
+
* both normal. Never throws: process.cwd() fails when the directory has been
|
|
52
|
+
* deleted, and a wrong upgrade hint must not take down a successful update.
|
|
53
|
+
*/
|
|
54
|
+
export declare function isProjectLocalInstall(installDir: string | null, projectPath?: string): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* True for the throwaway caches npx/pnpm dlx/bunx unpack into. Telling those
|
|
57
|
+
* users to install globally would create the second copy on PATH they were
|
|
58
|
+
* deliberately avoiding.
|
|
59
|
+
*/
|
|
60
|
+
export declare function isEphemeralRunnerInstall(installDir: string | null): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Directories npm installs global packages into. Derived from the running node
|
|
63
|
+
* rather than by shelling out to `npm prefix -g`, which would cost more than
|
|
64
|
+
* the version check itself. Only a hint: `process.execPath` is realpath'd, so
|
|
65
|
+
* on Homebrew it lands in the Cellar rather than the brew prefix — which is
|
|
66
|
+
* why the install's own layout is the primary signal below.
|
|
67
|
+
*/
|
|
68
|
+
export declare function npmGlobalRoots(): string[];
|
|
69
|
+
/**
|
|
70
|
+
* The prefix of an npm global install, read from the install's own shape:
|
|
71
|
+
* `<prefix>/lib/node_modules/<pkg>` on POSIX, `<prefix>/node_modules/<pkg>` on
|
|
72
|
+
* Windows. Self-describing, so it holds for Homebrew, nvm, Debian and anywhere
|
|
73
|
+
* else npm's prefix is not derivable from the node binary. Null when the
|
|
74
|
+
* layout does not match.
|
|
75
|
+
*/
|
|
76
|
+
export declare function npmPrefixFromInstallDir(installDir: string | null): string | null;
|
|
77
|
+
/**
|
|
78
|
+
* True only when npm itself owns this copy. Everything else — a pnpm, bun,
|
|
79
|
+
* yarn or volta global — would be made worse by `npm install -g`, which adds a
|
|
80
|
+
* second copy that may not even be the one on PATH.
|
|
81
|
+
*/
|
|
82
|
+
export declare function isNpmGlobalInstall(installDir: string | null, roots?: string[]): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* True when the CLI is running from a clone rather than an install. Upgrade
|
|
85
|
+
* advice is meaningless there: the version is whatever the branch says.
|
|
86
|
+
*/
|
|
87
|
+
export declare function isSourceCheckout(installDir: string | null): boolean;
|
|
88
|
+
export type PackageManager = 'npm' | 'pnpm' | 'bun' | 'yarn' | 'volta';
|
|
89
|
+
export type InstallScope = 'global' | 'project' | 'temporary' | 'source' | 'standalone';
|
|
90
|
+
export interface CliInstallInfo {
|
|
91
|
+
location: string | null;
|
|
92
|
+
packageManager: PackageManager | null;
|
|
93
|
+
scope: InstallScope | null;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* The package manager that owns this copy, so the printed command is one the
|
|
97
|
+
* user's setup will actually honor.
|
|
98
|
+
*/
|
|
99
|
+
export declare function detectPackageManager(installDir: string | null): PackageManager;
|
|
100
|
+
/** Describes the running copy without guessing when its owner is ambiguous. */
|
|
101
|
+
export declare function getCliInstallInfo(installDir?: string | null, projectPath?: string): CliInstallInfo;
|
|
102
|
+
/** Returns a safe update command only for an install with known global ownership. */
|
|
103
|
+
export declare function getCliUpdateCommand(install: CliInstallInfo): string | null;
|
|
104
|
+
/** Builds the concise human-readable form of the version report. */
|
|
105
|
+
export declare function buildVersionReportLines(version: string, install: CliInstallInfo, update?: CliUpdateCheck, command?: string | null): string[];
|
|
106
|
+
/**
|
|
107
|
+
* Builds the hint, with the upgrade command chosen for how this copy of the CLI
|
|
108
|
+
* was installed. Pure so every branch is assertable.
|
|
109
|
+
*/
|
|
110
|
+
export declare function buildCliUpdateLines(latestVersion: string, installDir: string | null, projectPath: string, options?: {
|
|
111
|
+
withCommand?: boolean;
|
|
112
|
+
}): string[];
|
|
113
|
+
/**
|
|
114
|
+
* The upgrade command for however this copy was installed, plus the reminder
|
|
115
|
+
* that instruction files come from the CLI and so need a second pass.
|
|
116
|
+
*/
|
|
117
|
+
export declare function buildUpgradeCommandLines(installDir: string | null, projectPath: string): string[];
|
|
118
|
+
/**
|
|
119
|
+
* Whether we can run the upgrade for the user instead of only printing it.
|
|
120
|
+
*
|
|
121
|
+
* Only an npm-owned global install qualifies, because `npm install -g` is the
|
|
122
|
+
* only command we run: a pnpm/bun/yarn/volta global would get a second copy
|
|
123
|
+
* that may not be the one on PATH, a project dependency belongs to that
|
|
124
|
+
* project's package manager, an npx/dlx cache has nothing to upgrade, and a
|
|
125
|
+
* source checkout is not an install at all.
|
|
126
|
+
*
|
|
127
|
+
* A non-default registry is also disqualifying. `npm install -g` resolves
|
|
128
|
+
* against whatever `npm_config_registry` says, which npm may have read from a
|
|
129
|
+
* cloned repository's .npmrc — so such a registry may still inform the check,
|
|
130
|
+
* but must never be the thing that offers to install a global package.
|
|
131
|
+
*/
|
|
132
|
+
export declare function canSelfUpgrade(installDir: string | null, projectPath: string): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Whether to offer the upgrade rather than just print the command. Kept here,
|
|
135
|
+
* as a pure function of the environment, because the interesting mistakes live
|
|
136
|
+
* in this decision: offering where `npm install -g` cannot help, or asking a
|
|
137
|
+
* question no one can answer.
|
|
138
|
+
*/
|
|
139
|
+
export declare function shouldOfferUpgrade(params: {
|
|
140
|
+
installDir: string | null;
|
|
141
|
+
projectPath: string;
|
|
142
|
+
interactive: boolean;
|
|
143
|
+
stdoutIsTty: boolean;
|
|
144
|
+
}): boolean;
|
|
145
|
+
/**
|
|
146
|
+
* The `freespec` npm installs alongside its global package, so the upgrade can
|
|
147
|
+
* be handed to the copy npm just wrote rather than to whatever PATH resolves.
|
|
148
|
+
* Null when it cannot be found, in which case PATH is the only option left.
|
|
149
|
+
*/
|
|
150
|
+
export declare function upgradedBinPath(roots?: string[], installDir?: string | null): string | null;
|
|
151
|
+
/**
|
|
152
|
+
* Asks a CLI binary its version. Used to confirm an upgrade actually landed:
|
|
153
|
+
* `npm install -g` exits 0 even when it installed nothing, so its exit code
|
|
154
|
+
* alone cannot justify telling the user they are on a new version.
|
|
155
|
+
*/
|
|
156
|
+
export declare function readCliVersion(binPath: string): Promise<string | null>;
|
|
157
|
+
export type UpgradeOutcome = 'upgraded' | 'declined' | 'failed' | 'cancelled' | 'not-on-path';
|
|
158
|
+
/**
|
|
159
|
+
* Offers to run the upgrade and reports what actually happened. The version is
|
|
160
|
+
* read back from the installed binary rather than assumed, so "upgraded" is a
|
|
161
|
+
* fact and a PATH that still answers with the old copy is caught here instead
|
|
162
|
+
* of silently doing nothing.
|
|
163
|
+
*/
|
|
164
|
+
export declare function offerCliUpgrade(latestVersion: string): Promise<UpgradeOutcome>;
|
|
165
|
+
/**
|
|
166
|
+
* Runs `freespec update` again with the CLI that was just installed — this
|
|
167
|
+
* process is still the old code, so it cannot write the new workflows itself.
|
|
168
|
+
* Resolves the exit code to pass along; when no `freespec` is on PATH the
|
|
169
|
+
* upgrade still landed but nothing was regenerated, so it says so and
|
|
170
|
+
* resolves 0 rather than reporting a failure the upgrade did not have.
|
|
171
|
+
*/
|
|
172
|
+
export declare function rerunUpdateWithUpgradedCli(projectPath: string, options?: {
|
|
173
|
+
force?: boolean;
|
|
174
|
+
binPath?: string;
|
|
175
|
+
}): Promise<number>;
|
|
176
|
+
/**
|
|
177
|
+
* Prints the upgrade hint. Instruction files are generated by the installed
|
|
178
|
+
* CLI, so "up to date" only ever means "matches this CLI" — without this note
|
|
179
|
+
* a stale install looks like a successful update.
|
|
180
|
+
*/
|
|
181
|
+
export declare function displayCliUpdateNote(latestVersion: string, projectPath?: string, options?: {
|
|
182
|
+
withCommand?: boolean;
|
|
183
|
+
}): void;
|
|
184
|
+
/**
|
|
185
|
+
* Prints just the manual command, for when the offer was declined or failed.
|
|
186
|
+
*/
|
|
187
|
+
export declare function displayUpgradeCommand(projectPath?: string): void;
|
|
188
|
+
//# sourceMappingURL=version-check.d.ts.map
|