@detergent-software/atk 3.0.0-dev.9 → 4.0.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/build/commands/_app.d.ts.map +1 -1
- package/build/commands/_app.js +23 -3
- package/build/commands/_app.js.map +1 -1
- package/build/commands/audit.d.ts.map +1 -1
- package/build/commands/audit.js +75 -40
- package/build/commands/audit.js.map +1 -1
- package/build/commands/browse.d.ts.map +1 -1
- package/build/commands/browse.js +117 -80
- package/build/commands/browse.js.map +1 -1
- package/build/commands/cache.d.ts.map +1 -1
- package/build/commands/cache.js +13 -15
- package/build/commands/cache.js.map +1 -1
- package/build/commands/config.d.ts +1 -1
- package/build/commands/config.d.ts.map +1 -1
- package/build/commands/config.js +7 -3
- package/build/commands/config.js.map +1 -1
- package/build/commands/diff.d.ts.map +1 -1
- package/build/commands/diff.js +4 -118
- package/build/commands/diff.js.map +1 -1
- package/build/commands/freeze.d.ts +1 -2
- package/build/commands/freeze.d.ts.map +1 -1
- package/build/commands/freeze.js +17 -37
- package/build/commands/freeze.js.map +1 -1
- package/build/commands/info.d.ts +1 -2
- package/build/commands/info.d.ts.map +1 -1
- package/build/commands/info.js +43 -38
- package/build/commands/info.js.map +1 -1
- package/build/commands/init.d.ts.map +1 -1
- package/build/commands/init.js +7 -14
- package/build/commands/init.js.map +1 -1
- package/build/commands/install.d.ts.map +1 -1
- package/build/commands/install.js +71 -79
- package/build/commands/install.js.map +1 -1
- package/build/commands/list.d.ts.map +1 -1
- package/build/commands/list.js +13 -6
- package/build/commands/list.js.map +1 -1
- package/build/commands/outdated.d.ts.map +1 -1
- package/build/commands/outdated.js +17 -8
- package/build/commands/outdated.js.map +1 -1
- package/build/commands/pin.d.ts +1 -2
- package/build/commands/pin.d.ts.map +1 -1
- package/build/commands/pin.js +44 -47
- package/build/commands/pin.js.map +1 -1
- package/build/commands/prune.d.ts.map +1 -1
- package/build/commands/prune.js +73 -132
- package/build/commands/prune.js.map +1 -1
- package/build/commands/publish.d.ts +2 -1
- package/build/commands/publish.d.ts.map +1 -1
- package/build/commands/publish.js +85 -9
- package/build/commands/publish.js.map +1 -1
- package/build/commands/search.d.ts.map +1 -1
- package/build/commands/search.js +14 -19
- package/build/commands/search.js.map +1 -1
- package/build/commands/setup.d.ts.map +1 -1
- package/build/commands/setup.js +6 -18
- package/build/commands/setup.js.map +1 -1
- package/build/commands/sync.d.ts.map +1 -1
- package/build/commands/sync.js +46 -163
- package/build/commands/sync.js.map +1 -1
- package/build/commands/thaw.d.ts +1 -2
- package/build/commands/thaw.d.ts.map +1 -1
- package/build/commands/thaw.js +19 -37
- package/build/commands/thaw.js.map +1 -1
- package/build/commands/uninstall.d.ts.map +1 -1
- package/build/commands/uninstall.js +7 -7
- package/build/commands/uninstall.js.map +1 -1
- package/build/commands/unpin.d.ts +1 -2
- package/build/commands/unpin.d.ts.map +1 -1
- package/build/commands/unpin.js +23 -38
- package/build/commands/unpin.js.map +1 -1
- package/build/commands/update.d.ts.map +1 -1
- package/build/commands/update.js +33 -40
- package/build/commands/update.js.map +1 -1
- package/build/commands/why.d.ts +1 -1
- package/build/commands/why.d.ts.map +1 -1
- package/build/commands/why.js +14 -6
- package/build/commands/why.js.map +1 -1
- package/build/components/AssetDetail.d.ts +1 -3
- package/build/components/AssetDetail.d.ts.map +1 -1
- package/build/components/AssetDetail.js +22 -21
- package/build/components/AssetDetail.js.map +1 -1
- package/build/components/AssetTable.d.ts +2 -1
- package/build/components/AssetTable.d.ts.map +1 -1
- package/build/components/AssetTable.js +14 -10
- package/build/components/AssetTable.js.map +1 -1
- package/build/components/AssetVersionLine.d.ts +27 -0
- package/build/components/AssetVersionLine.d.ts.map +1 -0
- package/build/components/AssetVersionLine.js +10 -0
- package/build/components/AssetVersionLine.js.map +1 -0
- package/build/components/BrowseExpandedBundle.d.ts +10 -1
- package/build/components/BrowseExpandedBundle.d.ts.map +1 -1
- package/build/components/BrowseExpandedBundle.js +25 -2
- package/build/components/BrowseExpandedBundle.js.map +1 -1
- package/build/components/BrowseExpandedRow.d.ts +4 -1
- package/build/components/BrowseExpandedRow.d.ts.map +1 -1
- package/build/components/BrowseExpandedRow.js +24 -3
- package/build/components/BrowseExpandedRow.js.map +1 -1
- package/build/components/BrowseList.d.ts +5 -1
- package/build/components/BrowseList.d.ts.map +1 -1
- package/build/components/BrowseList.js +57 -47
- package/build/components/BrowseList.js.map +1 -1
- package/build/components/BundleDetail.d.ts +2 -1
- package/build/components/BundleDetail.d.ts.map +1 -1
- package/build/components/BundleDetail.js +3 -2
- package/build/components/BundleDetail.js.map +1 -1
- package/build/components/DiffView.d.ts +0 -2
- package/build/components/DiffView.d.ts.map +1 -1
- package/build/components/DiffView.js +11 -5
- package/build/components/DiffView.js.map +1 -1
- package/build/components/FrozenSkippedHint.d.ts +11 -0
- package/build/components/FrozenSkippedHint.d.ts.map +1 -0
- package/build/components/FrozenSkippedHint.js +12 -0
- package/build/components/FrozenSkippedHint.js.map +1 -0
- package/build/components/HelpBar.d.ts.map +1 -1
- package/build/components/HelpBar.js +3 -3
- package/build/components/HelpBar.js.map +1 -1
- package/build/components/ListActionBar.d.ts +3 -1
- package/build/components/ListActionBar.d.ts.map +1 -1
- package/build/components/ListActionBar.js +4 -4
- package/build/components/ListActionBar.js.map +1 -1
- package/build/components/ListBrowseList.d.ts +3 -1
- package/build/components/ListBrowseList.d.ts.map +1 -1
- package/build/components/ListBrowseList.js +5 -3
- package/build/components/ListBrowseList.js.map +1 -1
- package/build/components/ListExpandedRow.d.ts +4 -2
- package/build/components/ListExpandedRow.d.ts.map +1 -1
- package/build/components/ListExpandedRow.js +4 -4
- package/build/components/ListExpandedRow.js.map +1 -1
- package/build/components/OrphanListItem.d.ts +15 -0
- package/build/components/OrphanListItem.d.ts.map +1 -0
- package/build/components/OrphanListItem.js +6 -0
- package/build/components/OrphanListItem.js.map +1 -0
- package/build/components/SkippedAssetSection.d.ts +35 -0
- package/build/components/SkippedAssetSection.d.ts.map +1 -0
- package/build/components/SkippedAssetSection.js +15 -0
- package/build/components/SkippedAssetSection.js.map +1 -0
- package/build/components/StatusBadge.d.ts +1 -1
- package/build/components/StatusBadge.d.ts.map +1 -1
- package/build/components/StatusBadge.js +4 -0
- package/build/components/StatusBadge.js.map +1 -1
- package/build/components/SyncAllInSync.d.ts +14 -0
- package/build/components/SyncAllInSync.d.ts.map +1 -0
- package/build/components/SyncAllInSync.js +10 -0
- package/build/components/SyncAllInSync.js.map +1 -0
- package/build/components/SyncDriftedList.d.ts +24 -0
- package/build/components/SyncDriftedList.d.ts.map +1 -0
- package/build/components/SyncDriftedList.js +17 -0
- package/build/components/SyncDriftedList.js.map +1 -0
- package/build/components/SyncNoAssets.d.ts +12 -0
- package/build/components/SyncNoAssets.d.ts.map +1 -0
- package/build/components/SyncNoAssets.js +9 -0
- package/build/components/SyncNoAssets.js.map +1 -0
- package/build/components/index.d.ts +9 -2
- package/build/components/index.d.ts.map +1 -1
- package/build/components/index.js +9 -2
- package/build/components/index.js.map +1 -1
- package/build/hooks/useBrowseState.d.ts +21 -1
- package/build/hooks/useBrowseState.d.ts.map +1 -1
- package/build/hooks/useBrowseState.js +71 -12
- package/build/hooks/useBrowseState.js.map +1 -1
- package/build/hooks/useInitState.d.ts +37 -0
- package/build/hooks/useInitState.d.ts.map +1 -1
- package/build/hooks/useInitState.js +286 -184
- package/build/hooks/useInitState.js.map +1 -1
- package/build/hooks/useListActions.d.ts +2 -1
- package/build/hooks/useListActions.d.ts.map +1 -1
- package/build/hooks/useListActions.js +23 -19
- package/build/hooks/useListActions.js.map +1 -1
- package/build/hooks/useListState.d.ts +4 -0
- package/build/hooks/useListState.d.ts.map +1 -1
- package/build/hooks/useListState.js +3 -0
- package/build/hooks/useListState.js.map +1 -1
- package/build/hooks/usePruneState.d.ts +76 -0
- package/build/hooks/usePruneState.d.ts.map +1 -0
- package/build/hooks/usePruneState.js +252 -0
- package/build/hooks/usePruneState.js.map +1 -0
- package/build/hooks/usePublishState.d.ts +33 -1
- package/build/hooks/usePublishState.d.ts.map +1 -1
- package/build/hooks/usePublishState.js +258 -12
- package/build/hooks/usePublishState.js.map +1 -1
- package/build/hooks/useSetupState.d.ts +2 -4
- package/build/hooks/useSetupState.d.ts.map +1 -1
- package/build/hooks/useSetupState.js +40 -101
- package/build/hooks/useSetupState.js.map +1 -1
- package/build/hooks/useUninstallState.d.ts.map +1 -1
- package/build/hooks/useUninstallState.js +9 -2
- package/build/hooks/useUninstallState.js.map +1 -1
- package/build/lib/adapter.d.ts +21 -0
- package/build/lib/adapter.d.ts.map +1 -1
- package/build/lib/adapter.js +59 -1
- package/build/lib/adapter.js.map +1 -1
- package/build/lib/checksum.d.ts +34 -0
- package/build/lib/checksum.d.ts.map +1 -1
- package/build/lib/checksum.js +85 -0
- package/build/lib/checksum.js.map +1 -1
- package/build/lib/config.d.ts +37 -20
- package/build/lib/config.d.ts.map +1 -1
- package/build/lib/config.js +99 -51
- package/build/lib/config.js.map +1 -1
- package/build/lib/detector.d.ts +2 -11
- package/build/lib/detector.d.ts.map +1 -1
- package/build/lib/detector.js +2 -64
- package/build/lib/detector.js.map +1 -1
- package/build/lib/diagnostics.d.ts +7 -0
- package/build/lib/diagnostics.d.ts.map +1 -1
- package/build/lib/diagnostics.js +54 -34
- package/build/lib/diagnostics.js.map +1 -1
- package/build/lib/diff-command.d.ts +40 -0
- package/build/lib/diff-command.d.ts.map +1 -0
- package/build/lib/diff-command.js +145 -0
- package/build/lib/diff-command.js.map +1 -0
- package/build/lib/diff.d.ts +7 -0
- package/build/lib/diff.d.ts.map +1 -1
- package/build/lib/diff.js +15 -10
- package/build/lib/diff.js.map +1 -1
- package/build/lib/github.d.ts +27 -0
- package/build/lib/github.d.ts.map +1 -1
- package/build/lib/github.js +35 -0
- package/build/lib/github.js.map +1 -1
- package/build/lib/gitignore.d.ts +17 -0
- package/build/lib/gitignore.d.ts.map +1 -1
- package/build/lib/gitignore.js +17 -1
- package/build/lib/gitignore.js.map +1 -1
- package/build/lib/init.d.ts +22 -0
- package/build/lib/init.d.ts.map +1 -1
- package/build/lib/init.js +163 -18
- package/build/lib/init.js.map +1 -1
- package/build/lib/installer.d.ts +1 -0
- package/build/lib/installer.d.ts.map +1 -1
- package/build/lib/installer.js +6 -7
- package/build/lib/installer.js.map +1 -1
- package/build/lib/lockfile.d.ts +19 -17
- package/build/lib/lockfile.d.ts.map +1 -1
- package/build/lib/lockfile.js +42 -63
- package/build/lib/lockfile.js.map +1 -1
- package/build/lib/publisher.d.ts +6 -12
- package/build/lib/publisher.d.ts.map +1 -1
- package/build/lib/publisher.js +17 -51
- package/build/lib/publisher.js.map +1 -1
- package/build/lib/registry.d.ts +20 -5
- package/build/lib/registry.d.ts.map +1 -1
- package/build/lib/registry.js +41 -30
- package/build/lib/registry.js.map +1 -1
- package/build/lib/schemas/config.d.ts +24 -0
- package/build/lib/schemas/config.d.ts.map +1 -1
- package/build/lib/schemas/config.js +9 -0
- package/build/lib/schemas/config.js.map +1 -1
- package/build/lib/schemas/index.d.ts +1 -1
- package/build/lib/schemas/index.d.ts.map +1 -1
- package/build/lib/schemas/index.js +1 -1
- package/build/lib/schemas/index.js.map +1 -1
- package/build/lib/schemas/lockfile.d.ts +16 -2
- package/build/lib/schemas/lockfile.d.ts.map +1 -1
- package/build/lib/schemas/lockfile.js +6 -1
- package/build/lib/schemas/lockfile.js.map +1 -1
- package/build/lib/schemas/manifest.d.ts +1 -1
- package/build/lib/schemas/manifest.d.ts.map +1 -1
- package/build/lib/schemas/manifest.js +7 -2
- package/build/lib/schemas/manifest.js.map +1 -1
- package/build/lib/schemas/registry.d.ts +2 -4
- package/build/lib/schemas/registry.d.ts.map +1 -1
- package/build/lib/schemas/registry.js +1 -1
- package/build/lib/schemas/registry.js.map +1 -1
- package/build/lib/search.d.ts +15 -1
- package/build/lib/search.d.ts.map +1 -1
- package/build/lib/search.js +65 -65
- package/build/lib/search.js.map +1 -1
- package/build/lib/setup.d.ts +28 -0
- package/build/lib/setup.d.ts.map +1 -0
- package/build/lib/setup.js +98 -0
- package/build/lib/setup.js.map +1 -0
- package/build/lib/sync.d.ts +109 -0
- package/build/lib/sync.d.ts.map +1 -0
- package/build/lib/sync.js +217 -0
- package/build/lib/sync.js.map +1 -0
- package/build/lib/tool-resolver.d.ts +12 -0
- package/build/lib/tool-resolver.d.ts.map +1 -1
- package/build/lib/tool-resolver.js +23 -0
- package/build/lib/tool-resolver.js.map +1 -1
- package/build/lib/updater.d.ts +7 -4
- package/build/lib/updater.d.ts.map +1 -1
- package/build/lib/updater.js +11 -8
- package/build/lib/updater.js.map +1 -1
- package/build/lib/version.js +1 -1
- package/build/lib/version.js.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checksum.js","sourceRoot":"","sources":["../../src/lib/checksum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"checksum.js","sourceRoot":"","sources":["../../src/lib/checksum.ts"],"names":[],"mappings":"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"}
|
package/build/lib/config.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
+
import type { AssetType } from './schemas/manifest.js';
|
|
1
2
|
import { type Config, type ProjectConfig } from './schemas/config.js';
|
|
3
|
+
/**
|
|
4
|
+
* Freeze an asset by adding it to the project config's `frozenAssets` array.
|
|
5
|
+
* No-op if the asset is already frozen with the same name, type, and org.
|
|
6
|
+
*/
|
|
7
|
+
export declare function freezeAssetInConfig(projectDir: string, name: string, type: AssetType, org?: string): Promise<void>;
|
|
2
8
|
/**
|
|
3
9
|
* Get the path to the ATK cache directory (~/.atk/cache/).
|
|
4
10
|
*/
|
|
@@ -11,6 +17,26 @@ export declare function getConfigPath(): string;
|
|
|
11
17
|
* Get a single config value by key.
|
|
12
18
|
*/
|
|
13
19
|
export declare function getConfigValue(config: Config, key: string): unknown;
|
|
20
|
+
/**
|
|
21
|
+
* Get the path to the project-level config file (.atkrc.json in project root).
|
|
22
|
+
*/
|
|
23
|
+
export declare function getProjectConfigPath(projectDir: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Check whether a local project config (.atkrc.json) exists in the given directory.
|
|
26
|
+
* The config stores the developer's selected tools (`tools: string[]`).
|
|
27
|
+
*/
|
|
28
|
+
export declare function hasLocalConfig(projectDir: string): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Check whether an asset is frozen in the project config.
|
|
31
|
+
* Loads the project config from disk each time — for batch checks use `isFrozenInConfig` instead.
|
|
32
|
+
*/
|
|
33
|
+
export declare function isAssetFrozen(projectDir: string, name: string, type?: AssetType, org?: string): Promise<boolean>;
|
|
34
|
+
/**
|
|
35
|
+
* Synchronous check whether an asset is frozen in a pre-loaded project config.
|
|
36
|
+
* Useful for batch operations (sync, update, outdated) where loading config once
|
|
37
|
+
* and checking many assets is more efficient.
|
|
38
|
+
*/
|
|
39
|
+
export declare function isFrozenInConfig(config: null | ProjectConfig, name: string, type?: AssetType, org?: string): boolean;
|
|
14
40
|
/**
|
|
15
41
|
* List all known config keys with their current values and defaults.
|
|
16
42
|
*/
|
|
@@ -25,6 +51,12 @@ export declare function listConfigEntries(config: Config): Array<{
|
|
|
25
51
|
* Creates no file if none exists — defaults are used.
|
|
26
52
|
*/
|
|
27
53
|
export declare function loadConfig(): Promise<Config>;
|
|
54
|
+
/**
|
|
55
|
+
* Load the project-level config from .atkrc.json in the project directory.
|
|
56
|
+
* Returns null if no project config exists.
|
|
57
|
+
* Legacy `{ tool: string }` files are automatically migrated to `{ tools: string[] }` on read via schema preprocess.
|
|
58
|
+
*/
|
|
59
|
+
export declare function loadProjectConfig(projectDir: string): Promise<null | ProjectConfig>;
|
|
28
60
|
/**
|
|
29
61
|
* Reset a config key back to its default value.
|
|
30
62
|
* Returns the updated config.
|
|
@@ -34,26 +66,6 @@ export declare function resetConfigValue(config: Config, key: string): Config;
|
|
|
34
66
|
* Save the full config object to ~/.atkrc.json.
|
|
35
67
|
*/
|
|
36
68
|
export declare function saveConfig(config: Config): Promise<void>;
|
|
37
|
-
/**
|
|
38
|
-
* Get the path to the project-level config file (.atkrc.json in project root).
|
|
39
|
-
*/
|
|
40
|
-
export declare function getProjectConfigPath(projectDir: string): string;
|
|
41
|
-
/**
|
|
42
|
-
* Check whether a local project config (.atkrc.json) exists in the given directory.
|
|
43
|
-
* The config stores the developer's selected tools (`tools: string[]`).
|
|
44
|
-
*/
|
|
45
|
-
export declare function hasLocalConfig(projectDir: string): boolean;
|
|
46
|
-
/**
|
|
47
|
-
* Load merged config: user-level config only.
|
|
48
|
-
* Project config now only stores `{ tools: string[] }` and does not contribute to Config fields.
|
|
49
|
-
*/
|
|
50
|
-
export declare function loadMergedConfig(projectDir: string): Promise<Config>;
|
|
51
|
-
/**
|
|
52
|
-
* Load the project-level config from .atkrc.json in the project directory.
|
|
53
|
-
* Returns null if no project config exists.
|
|
54
|
-
* Legacy `{ tool: string }` files are automatically migrated to `{ tools: string[] }` on read via schema preprocess.
|
|
55
|
-
*/
|
|
56
|
-
export declare function loadProjectConfig(projectDir: string): Promise<null | ProjectConfig>;
|
|
57
69
|
/**
|
|
58
70
|
* Save the project-level config to .atkrc.json in the project directory.
|
|
59
71
|
* Always writes the new `{ tools: string[] }` format, never the legacy `{ tool }` format.
|
|
@@ -64,4 +76,9 @@ export declare function saveProjectConfig(projectDir: string, config: ProjectCon
|
|
|
64
76
|
* Returns the updated config. Validates the result against the schema.
|
|
65
77
|
*/
|
|
66
78
|
export declare function setConfigValue(config: Config, key: string, value: string): Config;
|
|
79
|
+
/**
|
|
80
|
+
* Thaw an asset by removing it from the project config's `frozenAssets` array.
|
|
81
|
+
* Removes all entries matching the given name, and optionally type and org.
|
|
82
|
+
*/
|
|
83
|
+
export declare function thawAssetInConfig(projectDir: string, name: string, type?: AssetType, org?: string): Promise<void>;
|
|
67
84
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,MAAM,EAGX,KAAK,aAAa,EAEnB,MAAM,qBAAqB,CAAC;AAI7B;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAKnE;AAED;;GAEG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EACL,KAAK,MAAM,EAGX,KAAK,aAAa,EAEnB,MAAM,qBAAqB,CAAC;AAI7B;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,EACf,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAKnE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,SAAS,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,IAAI,GAAG,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CASpH;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAQ5G;AAED;;;;GAIG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAUlD;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC,CASzF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAgBpE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB9D;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBhG;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA2BjF;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,SAAS,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAkBf"}
|
package/build/lib/config.js
CHANGED
|
@@ -2,9 +2,33 @@ import { existsSync } from 'node:fs';
|
|
|
2
2
|
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
4
|
import { dirname, join } from 'node:path';
|
|
5
|
+
import { z } from 'zod';
|
|
5
6
|
import { parseAndValidate } from './parse-json.js';
|
|
6
7
|
import { ConfigSchema, DEFAULT_CONFIG, ProjectConfigSchema, } from './schemas/config.js';
|
|
7
|
-
const
|
|
8
|
+
const ATKRC_FILENAME = '.atkrc.json';
|
|
9
|
+
/**
|
|
10
|
+
* Freeze an asset by adding it to the project config's `frozenAssets` array.
|
|
11
|
+
* No-op if the asset is already frozen with the same name, type, and org.
|
|
12
|
+
*/
|
|
13
|
+
export async function freezeAssetInConfig(projectDir, name, type, org) {
|
|
14
|
+
const config = await loadProjectConfig(projectDir);
|
|
15
|
+
if (!config) {
|
|
16
|
+
throw new Error(`No project config found in ${projectDir}. Run \`atk setup\` first.`);
|
|
17
|
+
}
|
|
18
|
+
const frozenAssets = config.frozenAssets ?? [];
|
|
19
|
+
// Already frozen — nothing to do
|
|
20
|
+
if (frozenAssets.some((entry) => entry.name === name && entry.type === type && entry.org === org)) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const entry = { name, type };
|
|
24
|
+
if (org !== undefined) {
|
|
25
|
+
entry.org = org;
|
|
26
|
+
}
|
|
27
|
+
await saveProjectConfig(projectDir, {
|
|
28
|
+
...config,
|
|
29
|
+
frozenAssets: [...frozenAssets, entry],
|
|
30
|
+
});
|
|
31
|
+
}
|
|
8
32
|
/**
|
|
9
33
|
* Get the path to the ATK cache directory (~/.atk/cache/).
|
|
10
34
|
*/
|
|
@@ -15,29 +39,54 @@ export function getCacheDir(config) {
|
|
|
15
39
|
* Get the path to the user's config file (~/.atkrc.json).
|
|
16
40
|
*/
|
|
17
41
|
export function getConfigPath() {
|
|
18
|
-
return join(homedir(),
|
|
42
|
+
return join(homedir(), ATKRC_FILENAME);
|
|
19
43
|
}
|
|
20
44
|
/**
|
|
21
45
|
* Get a single config value by key.
|
|
22
46
|
*/
|
|
23
47
|
export function getConfigValue(config, key) {
|
|
24
|
-
if (!(key in
|
|
25
|
-
|
|
48
|
+
if (!(key in ConfigSchema.shape)) {
|
|
49
|
+
throw new Error(`Unknown config key: ${key}`);
|
|
26
50
|
}
|
|
27
51
|
return config[key];
|
|
28
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Get the path to the project-level config file (.atkrc.json in project root).
|
|
55
|
+
*/
|
|
56
|
+
export function getProjectConfigPath(projectDir) {
|
|
57
|
+
return join(projectDir, ATKRC_FILENAME);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Check whether a local project config (.atkrc.json) exists in the given directory.
|
|
61
|
+
* The config stores the developer's selected tools (`tools: string[]`).
|
|
62
|
+
*/
|
|
63
|
+
export function hasLocalConfig(projectDir) {
|
|
64
|
+
return existsSync(getProjectConfigPath(projectDir));
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Check whether an asset is frozen in the project config.
|
|
68
|
+
* Loads the project config from disk each time — for batch checks use `isFrozenInConfig` instead.
|
|
69
|
+
*/
|
|
70
|
+
export async function isAssetFrozen(projectDir, name, type, org) {
|
|
71
|
+
const config = await loadProjectConfig(projectDir);
|
|
72
|
+
return isFrozenInConfig(config, name, type, org);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Synchronous check whether an asset is frozen in a pre-loaded project config.
|
|
76
|
+
* Useful for batch operations (sync, update, outdated) where loading config once
|
|
77
|
+
* and checking many assets is more efficient.
|
|
78
|
+
*/
|
|
79
|
+
export function isFrozenInConfig(config, name, type, org) {
|
|
80
|
+
if (!config?.frozenAssets) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
return config.frozenAssets.some((entry) => entry.name === name && (type === undefined || entry.type === type) && (org === undefined || entry.org === org));
|
|
84
|
+
}
|
|
29
85
|
/**
|
|
30
86
|
* List all known config keys with their current values and defaults.
|
|
31
87
|
*/
|
|
32
88
|
export function listConfigEntries(config) {
|
|
33
|
-
const allKeys =
|
|
34
|
-
'registryUrl',
|
|
35
|
-
'registryBranch',
|
|
36
|
-
'cacheDir',
|
|
37
|
-
'cacheTtlMinutes',
|
|
38
|
-
'githubToken',
|
|
39
|
-
'org',
|
|
40
|
-
];
|
|
89
|
+
const allKeys = Object.keys(ConfigSchema.shape);
|
|
41
90
|
return allKeys.map((key) => ({
|
|
42
91
|
isDefault: config[key] === undefined || config[key] === DEFAULT_CONFIG[key],
|
|
43
92
|
key,
|
|
@@ -58,6 +107,19 @@ export async function loadConfig() {
|
|
|
58
107
|
const parsed = parseAndValidate(raw, ConfigSchema, `Invalid config at ${configPath}`);
|
|
59
108
|
return { ...DEFAULT_CONFIG, ...parsed };
|
|
60
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Load the project-level config from .atkrc.json in the project directory.
|
|
112
|
+
* Returns null if no project config exists.
|
|
113
|
+
* Legacy `{ tool: string }` files are automatically migrated to `{ tools: string[] }` on read via schema preprocess.
|
|
114
|
+
*/
|
|
115
|
+
export async function loadProjectConfig(projectDir) {
|
|
116
|
+
const configPath = getProjectConfigPath(projectDir);
|
|
117
|
+
if (!existsSync(configPath)) {
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
const raw = await readFile(configPath, 'utf-8');
|
|
121
|
+
return parseAndValidate(raw, ProjectConfigSchema, `Invalid project config at ${configPath}`);
|
|
122
|
+
}
|
|
61
123
|
/**
|
|
62
124
|
* Reset a config key back to its default value.
|
|
63
125
|
* Returns the updated config.
|
|
@@ -96,43 +158,6 @@ export async function saveConfig(config) {
|
|
|
96
158
|
}
|
|
97
159
|
await writeFile(configPath, JSON.stringify(toSave, null, '\t') + '\n', 'utf-8');
|
|
98
160
|
}
|
|
99
|
-
const PROJECT_CONFIG_FILENAME = '.atkrc.json';
|
|
100
|
-
/**
|
|
101
|
-
* Get the path to the project-level config file (.atkrc.json in project root).
|
|
102
|
-
*/
|
|
103
|
-
export function getProjectConfigPath(projectDir) {
|
|
104
|
-
return join(projectDir, PROJECT_CONFIG_FILENAME);
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Check whether a local project config (.atkrc.json) exists in the given directory.
|
|
108
|
-
* The config stores the developer's selected tools (`tools: string[]`).
|
|
109
|
-
*/
|
|
110
|
-
export function hasLocalConfig(projectDir) {
|
|
111
|
-
return existsSync(getProjectConfigPath(projectDir));
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Load merged config: user-level config only.
|
|
115
|
-
* Project config now only stores `{ tools: string[] }` and does not contribute to Config fields.
|
|
116
|
-
*/
|
|
117
|
-
export async function loadMergedConfig(projectDir) {
|
|
118
|
-
// projectDir is accepted for API compatibility but project config
|
|
119
|
-
// no longer overrides any Config fields (it only stores the tools choice).
|
|
120
|
-
void projectDir;
|
|
121
|
-
return loadConfig();
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Load the project-level config from .atkrc.json in the project directory.
|
|
125
|
-
* Returns null if no project config exists.
|
|
126
|
-
* Legacy `{ tool: string }` files are automatically migrated to `{ tools: string[] }` on read via schema preprocess.
|
|
127
|
-
*/
|
|
128
|
-
export async function loadProjectConfig(projectDir) {
|
|
129
|
-
const configPath = getProjectConfigPath(projectDir);
|
|
130
|
-
if (!existsSync(configPath)) {
|
|
131
|
-
return null;
|
|
132
|
-
}
|
|
133
|
-
const raw = await readFile(configPath, 'utf-8');
|
|
134
|
-
return parseAndValidate(raw, ProjectConfigSchema, `Invalid project config at ${configPath}`);
|
|
135
|
-
}
|
|
136
161
|
/**
|
|
137
162
|
* Save the project-level config to .atkrc.json in the project directory.
|
|
138
163
|
* Always writes the new `{ tools: string[] }` format, never the legacy `{ tool }` format.
|
|
@@ -147,6 +172,10 @@ export async function saveProjectConfig(projectDir, config) {
|
|
|
147
172
|
const toSave = {
|
|
148
173
|
tools: config.tools,
|
|
149
174
|
};
|
|
175
|
+
// Include frozenAssets only when non-empty to keep the file minimal
|
|
176
|
+
if (config.frozenAssets && config.frozenAssets.length > 0) {
|
|
177
|
+
toSave.frozenAssets = config.frozenAssets;
|
|
178
|
+
}
|
|
150
179
|
await writeFile(configPath, JSON.stringify(toSave, null, '\t') + '\n', 'utf-8');
|
|
151
180
|
}
|
|
152
181
|
/**
|
|
@@ -157,9 +186,12 @@ export function setConfigValue(config, key, value) {
|
|
|
157
186
|
if (!(key in ConfigSchema.shape)) {
|
|
158
187
|
throw new Error(`Unknown config key: ${key}`);
|
|
159
188
|
}
|
|
160
|
-
//
|
|
189
|
+
// Schema-driven type coercion: detect number fields from the Zod schema
|
|
190
|
+
// and coerce string CLI input to numbers automatically.
|
|
161
191
|
let coerced = value;
|
|
162
|
-
|
|
192
|
+
const fieldSchema = ConfigSchema.shape[key];
|
|
193
|
+
const jsonSchema = z.toJSONSchema(fieldSchema);
|
|
194
|
+
if ('type' in jsonSchema && jsonSchema.type === 'number') {
|
|
163
195
|
const num = Number(value);
|
|
164
196
|
if (Number.isNaN(num)) {
|
|
165
197
|
throw new Error(`Invalid value for ${key}: expected a number`);
|
|
@@ -173,4 +205,20 @@ export function setConfigValue(config, key, value) {
|
|
|
173
205
|
}
|
|
174
206
|
return result.data;
|
|
175
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* Thaw an asset by removing it from the project config's `frozenAssets` array.
|
|
210
|
+
* Removes all entries matching the given name, and optionally type and org.
|
|
211
|
+
*/
|
|
212
|
+
export async function thawAssetInConfig(projectDir, name, type, org) {
|
|
213
|
+
const config = await loadProjectConfig(projectDir);
|
|
214
|
+
if (!config) {
|
|
215
|
+
throw new Error(`No project config found in ${projectDir}. Run \`atk setup\` first.`);
|
|
216
|
+
}
|
|
217
|
+
const frozenAssets = config.frozenAssets ?? [];
|
|
218
|
+
const filtered = frozenAssets.filter((entry) => !(entry.name === name && (type === undefined || entry.type === type) && (org === undefined || entry.org === org)));
|
|
219
|
+
await saveProjectConfig(projectDir, {
|
|
220
|
+
...config,
|
|
221
|
+
frozenAssets: filtered,
|
|
222
|
+
});
|
|
223
|
+
}
|
|
176
224
|
//# sourceMappingURL=config.js.map
|
package/build/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
package/build/lib/detector.d.ts
CHANGED
|
@@ -1,14 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
adaptersLoaded: number;
|
|
4
|
-
directoryExists: boolean;
|
|
5
|
-
failures: AdapterLoadFailure[];
|
|
6
|
-
filesFound: number;
|
|
7
|
-
}
|
|
8
|
-
export interface AdapterLoadFailure {
|
|
9
|
-
filename: string;
|
|
10
|
-
reason: string;
|
|
11
|
-
}
|
|
1
|
+
import { type AdapterDiagnostics } from './adapter.js';
|
|
2
|
+
export type { AdapterDiagnostics, AdapterLoadFailure } from './adapter.js';
|
|
12
3
|
export interface DetectionResult {
|
|
13
4
|
confidence: 'high' | 'low' | 'medium';
|
|
14
5
|
displayName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/lib/detector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/lib/detector.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,kBAAkB,EAAmD,MAAM,cAAc,CAAC;AAExG,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE3E,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAG3F;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAyChF;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAGzE"}
|
package/build/lib/detector.js
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { dirname, join } from 'node:path';
|
|
5
|
-
import { fileURLToPath } from 'node:url';
|
|
6
|
-
import { safeParseJson } from './parse-json.js';
|
|
7
|
-
import { AdapterSchema } from './schemas/adapter.js';
|
|
8
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
9
|
-
/** Resolve tool-adapters directory relative to the package root (works both in dev and when installed via npm). */
|
|
10
|
-
const ADAPTERS_DIR = join(__dirname, '..', '..', 'tool-adapters');
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { loadAllAdapters, loadAllAdaptersWithDiagnostics } from './adapter.js';
|
|
11
4
|
/**
|
|
12
5
|
* Detect the primary tool in use. Returns the highest-confidence match,
|
|
13
6
|
* or null if no tool is detected.
|
|
@@ -67,59 +60,4 @@ export async function getAdapterDiagnostics() {
|
|
|
67
60
|
const { diagnostics } = await loadAllAdaptersWithDiagnostics();
|
|
68
61
|
return diagnostics;
|
|
69
62
|
}
|
|
70
|
-
/**
|
|
71
|
-
* Load all adapter JSON files from the tool-adapters directory.
|
|
72
|
-
*/
|
|
73
|
-
async function loadAllAdapters() {
|
|
74
|
-
const { adapters } = await loadAllAdaptersWithDiagnostics();
|
|
75
|
-
return adapters;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Load all adapter JSON files from the tool-adapters directory,
|
|
79
|
-
* tracking diagnostic information about the loading process.
|
|
80
|
-
*/
|
|
81
|
-
async function loadAllAdaptersWithDiagnostics() {
|
|
82
|
-
const diagnostics = {
|
|
83
|
-
adaptersDir: ADAPTERS_DIR,
|
|
84
|
-
adaptersLoaded: 0,
|
|
85
|
-
directoryExists: false,
|
|
86
|
-
failures: [],
|
|
87
|
-
filesFound: 0,
|
|
88
|
-
};
|
|
89
|
-
if (!existsSync(ADAPTERS_DIR)) {
|
|
90
|
-
return { adapters: [], diagnostics };
|
|
91
|
-
}
|
|
92
|
-
diagnostics.directoryExists = true;
|
|
93
|
-
const entries = await readdir(ADAPTERS_DIR);
|
|
94
|
-
const adapters = [];
|
|
95
|
-
for (const entry of entries) {
|
|
96
|
-
// Skip schema files and non-JSON files
|
|
97
|
-
if (entry.startsWith('_') || !entry.endsWith('.json')) {
|
|
98
|
-
continue;
|
|
99
|
-
}
|
|
100
|
-
diagnostics.filesFound++;
|
|
101
|
-
const filePath = join(ADAPTERS_DIR, entry);
|
|
102
|
-
try {
|
|
103
|
-
const raw = await readFile(filePath, 'utf-8');
|
|
104
|
-
const result = safeParseJson(raw, AdapterSchema, `Schema validation failed`);
|
|
105
|
-
if (result.success) {
|
|
106
|
-
adapters.push(result.data);
|
|
107
|
-
diagnostics.adaptersLoaded++;
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
diagnostics.failures.push({
|
|
111
|
-
filename: entry,
|
|
112
|
-
reason: result.error,
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
catch (err) {
|
|
117
|
-
diagnostics.failures.push({
|
|
118
|
-
filename: entry,
|
|
119
|
-
reason: err instanceof Error ? err.message : 'Unknown parse error',
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
return { adapters, diagnostics };
|
|
124
|
-
}
|
|
125
63
|
//# sourceMappingURL=detector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/lib/detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/lib/detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAA2B,eAAe,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAWxG;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACxD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAAkB;IAClD,MAAM,QAAQ,GAAG,MAAM,eAAe,EAAE,CAAC;IACzC,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAC7C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;YAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;YAErC,IAAI,UAAqC,CAAC;YAC1C,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,UAAU,GAAG,MAAM,CAAC;YACtB,CAAC;iBAAM,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;gBACxB,UAAU,GAAG,QAAQ,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,KAAK,CAAC;YACrB,CAAC;YAED,OAAO,CAAC,IAAI,CAAC;gBACX,UAAU;gBACV,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,iBAAiB,EAAE,OAAO;gBAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAElE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,8BAA8B,EAAE,CAAC;IAC/D,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import type { DiagnosticCheck } from '../components/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Check whether the given Node.js version string meets the project requirements.
|
|
4
|
+
*
|
|
5
|
+
* @param version - a Node.js-style version string such as `process.version` (e.g. "v24.5.0")
|
|
6
|
+
* @returns a `DiagnosticCheck` with status pass / warn / fail
|
|
7
|
+
*/
|
|
8
|
+
export declare function checkNodeVersion(version: string): DiagnosticCheck;
|
|
2
9
|
/**
|
|
3
10
|
* Run all environment diagnostic checks and return the results.
|
|
4
11
|
* Extracted from the `doctor` command so it can be tested independently.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/lib/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAS9D;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EACnC,mBAAmB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,eAAe,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/lib/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAS9D;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAqBjE;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EACnC,mBAAmB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,eAAe,EAAE,CAAC,CA8L5B"}
|
package/build/lib/diagnostics.js
CHANGED
|
@@ -1,44 +1,52 @@
|
|
|
1
1
|
import { getGitHubToken, isGhCliAvailable, validateToken } from './auth.js';
|
|
2
2
|
import { loadConfig, loadProjectConfig } from './config.js';
|
|
3
3
|
import { detectTools, getAdapterDiagnostics } from './detector.js';
|
|
4
|
-
import { readLockfile } from './lockfile.js';
|
|
4
|
+
import { lockfileExists, readLockfile } from './lockfile.js';
|
|
5
5
|
import { findProjectRoot } from './paths.js';
|
|
6
6
|
import { fetchRegistry } from './registry.js';
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
9
|
-
* Extracted from the `doctor` command so it can be tested independently.
|
|
8
|
+
* Check whether the given Node.js version string meets the project requirements.
|
|
10
9
|
*
|
|
11
|
-
* @param
|
|
12
|
-
* @
|
|
10
|
+
* @param version - a Node.js-style version string such as `process.version` (e.g. "v24.5.0")
|
|
11
|
+
* @returns a `DiagnosticCheck` with status pass / warn / fail
|
|
13
12
|
*/
|
|
14
|
-
export
|
|
15
|
-
const
|
|
16
|
-
const checks = [];
|
|
17
|
-
// Check Node.js version
|
|
18
|
-
progress('Checking Node.js...');
|
|
19
|
-
const nodeVersion = process.version;
|
|
20
|
-
const nodeMajor = parseInt(nodeVersion.slice(1), 10);
|
|
13
|
+
export function checkNodeVersion(version) {
|
|
14
|
+
const nodeMajor = parseInt(version.slice(1), 10);
|
|
21
15
|
if (nodeMajor >= 24) {
|
|
22
|
-
|
|
23
|
-
message: `${
|
|
16
|
+
return {
|
|
17
|
+
message: `${version} (recommended)`,
|
|
24
18
|
name: 'Node.js',
|
|
25
19
|
status: 'pass',
|
|
26
|
-
}
|
|
20
|
+
};
|
|
27
21
|
}
|
|
28
22
|
else if (nodeMajor >= 20) {
|
|
29
|
-
|
|
30
|
-
message: `${
|
|
23
|
+
return {
|
|
24
|
+
message: `${version} (Node 24+ recommended)`,
|
|
31
25
|
name: 'Node.js',
|
|
32
26
|
status: 'warn',
|
|
33
|
-
}
|
|
27
|
+
};
|
|
34
28
|
}
|
|
35
29
|
else {
|
|
36
|
-
|
|
37
|
-
message: `${
|
|
30
|
+
return {
|
|
31
|
+
message: `${version} (Node 20+ required, 24+ recommended)`,
|
|
38
32
|
name: 'Node.js',
|
|
39
33
|
status: 'fail',
|
|
40
|
-
}
|
|
34
|
+
};
|
|
41
35
|
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Run all environment diagnostic checks and return the results.
|
|
39
|
+
* Extracted from the `doctor` command so it can be tested independently.
|
|
40
|
+
*
|
|
41
|
+
* @param progress - callback to report progress messages
|
|
42
|
+
* @param projectRootOverride - optional explicit project root; when omitted, discovered via `findProjectRoot()`
|
|
43
|
+
*/
|
|
44
|
+
export async function runDiagnostics(progress, projectRootOverride) {
|
|
45
|
+
const projectDir = findProjectRoot(projectRootOverride);
|
|
46
|
+
const checks = [];
|
|
47
|
+
// Check Node.js version
|
|
48
|
+
progress('Checking Node.js...');
|
|
49
|
+
checks.push(checkNodeVersion(process.version));
|
|
42
50
|
// Check gh CLI
|
|
43
51
|
progress('Checking GitHub CLI...');
|
|
44
52
|
const ghAvailable = await isGhCliAvailable();
|
|
@@ -170,7 +178,9 @@ export async function runDiagnostics(progress, projectRootOverride) {
|
|
|
170
178
|
const projectConfig = await loadProjectConfig(projectDir);
|
|
171
179
|
if (projectConfig) {
|
|
172
180
|
checks.push({
|
|
173
|
-
message:
|
|
181
|
+
message: projectConfig.tools.length === 0
|
|
182
|
+
? 'Loaded (no tools configured)'
|
|
183
|
+
: `Loaded (tools: ${projectConfig.tools.join(', ')})`,
|
|
174
184
|
name: 'Project config',
|
|
175
185
|
status: 'pass',
|
|
176
186
|
});
|
|
@@ -194,23 +204,33 @@ export async function runDiagnostics(progress, projectRootOverride) {
|
|
|
194
204
|
}
|
|
195
205
|
// Check lockfile
|
|
196
206
|
progress('Checking lockfile...');
|
|
197
|
-
|
|
198
|
-
const lockfile = await readLockfile(projectDir);
|
|
199
|
-
const assetCount = (lockfile.assets ?? []).length;
|
|
200
|
-
checks.push({
|
|
201
|
-
message: `Found .atk-lock.json (${assetCount} asset${assetCount === 1 ? '' : 's'})`,
|
|
202
|
-
name: 'Lockfile',
|
|
203
|
-
status: 'pass',
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
catch {
|
|
207
|
+
if (!lockfileExists(projectDir)) {
|
|
207
208
|
checks.push({
|
|
208
|
-
detail: 'Run `atk setup` to initialize
|
|
209
|
-
message: 'No lockfile found
|
|
209
|
+
detail: 'Run `atk setup` to initialize',
|
|
210
|
+
message: 'No lockfile found',
|
|
210
211
|
name: 'Lockfile',
|
|
211
212
|
status: 'warn',
|
|
212
213
|
});
|
|
213
214
|
}
|
|
215
|
+
else {
|
|
216
|
+
try {
|
|
217
|
+
const lockfile = await readLockfile(projectDir);
|
|
218
|
+
const assetCount = (lockfile.assets ?? []).length;
|
|
219
|
+
checks.push({
|
|
220
|
+
message: `Found .atk-lock.json (${assetCount} asset${assetCount === 1 ? '' : 's'})`,
|
|
221
|
+
name: 'Lockfile',
|
|
222
|
+
status: 'pass',
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
catch (err) {
|
|
226
|
+
checks.push({
|
|
227
|
+
detail: 'Run `atk setup` to re-initialize',
|
|
228
|
+
message: err instanceof Error ? err.message : 'Failed to read lockfile',
|
|
229
|
+
name: 'Lockfile',
|
|
230
|
+
status: 'warn',
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
}
|
|
214
234
|
return checks;
|
|
215
235
|
}
|
|
216
236
|
//# sourceMappingURL=diagnostics.js.map
|