@detergent-software/atk 3.0.0 → 5.0.0-dev.1
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/README.md +361 -0
- 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 +76 -37
- package/build/commands/audit.js.map +1 -1
- package/build/commands/browse.d.ts.map +1 -1
- package/build/commands/browse.js +126 -154
- 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 -117
- 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 +41 -414
- package/build/commands/init.js.map +1 -1
- package/build/commands/install.d.ts.map +1 -1
- package/build/commands/install.js +79 -72
- package/build/commands/install.js.map +1 -1
- package/build/commands/list.d.ts +2 -2
- package/build/commands/list.d.ts.map +1 -1
- package/build/commands/list.js +138 -27
- package/build/commands/list.js.map +1 -1
- package/build/commands/outdated.d.ts.map +1 -1
- package/build/commands/outdated.js +20 -10
- 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 +76 -151
- package/build/commands/prune.js.map +1 -1
- package/build/commands/publish.d.ts +4 -1
- package/build/commands/publish.d.ts.map +1 -1
- package/build/commands/publish.js +139 -388
- 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 +1 -1
- package/build/commands/setup.d.ts.map +1 -1
- package/build/commands/setup.js +48 -253
- package/build/commands/setup.js.map +1 -1
- package/build/commands/sync.d.ts.map +1 -1
- package/build/commands/sync.js +43 -169
- 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 +106 -221
- 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 +57 -54
- 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 +5 -2
- package/build/components/AssetTable.d.ts.map +1 -1
- package/build/components/AssetTable.js +37 -40
- 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 +28 -3
- package/build/components/BrowseExpandedBundle.js.map +1 -1
- package/build/components/BrowseExpandedRow.d.ts +9 -1
- package/build/components/BrowseExpandedRow.d.ts.map +1 -1
- package/build/components/BrowseExpandedRow.js +35 -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/DryRunBanner.d.ts +3 -3
- package/build/components/DryRunBanner.d.ts.map +1 -1
- package/build/components/DryRunBanner.js +2 -2
- package/build/components/DryRunBanner.js.map +1 -1
- package/build/components/FilterBar.d.ts +10 -3
- package/build/components/FilterBar.d.ts.map +1 -1
- package/build/components/FilterBar.js +4 -4
- package/build/components/FilterBar.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/InitSuccess.d.ts +5 -0
- package/build/components/InitSuccess.d.ts.map +1 -0
- package/build/components/InitSuccess.js +20 -0
- package/build/components/InitSuccess.js.map +1 -0
- package/build/components/InstallSummary.d.ts +3 -3
- package/build/components/InstallSummary.d.ts.map +1 -1
- package/build/components/InstallSummary.js +2 -2
- package/build/components/InstallSummary.js.map +1 -1
- package/build/components/Link.d.ts +7 -0
- package/build/components/Link.d.ts.map +1 -0
- package/build/components/Link.js +6 -0
- package/build/components/Link.js.map +1 -0
- package/build/components/ListActionBar.d.ts +11 -0
- package/build/components/ListActionBar.d.ts.map +1 -0
- package/build/components/ListActionBar.js +30 -0
- package/build/components/ListActionBar.js.map +1 -0
- package/build/components/ListBrowseList.d.ts +27 -0
- package/build/components/ListBrowseList.d.ts.map +1 -0
- package/build/components/ListBrowseList.js +57 -0
- package/build/components/ListBrowseList.js.map +1 -0
- package/build/components/ListExpandedRow.d.ts +38 -0
- package/build/components/ListExpandedRow.d.ts.map +1 -0
- package/build/components/ListExpandedRow.js +49 -0
- package/build/components/ListExpandedRow.js.map +1 -0
- package/build/components/ListHelpBar.d.ts +19 -0
- package/build/components/ListHelpBar.d.ts.map +1 -0
- package/build/components/ListHelpBar.js +11 -0
- package/build/components/ListHelpBar.js.map +1 -0
- 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/PromptField.d.ts +19 -0
- package/build/components/PromptField.d.ts.map +1 -0
- package/build/components/PromptField.js +7 -0
- package/build/components/PromptField.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 +16 -2
- package/build/components/index.d.ts.map +1 -1
- package/build/components/index.js +16 -2
- package/build/components/index.js.map +1 -1
- package/build/hooks/useBrowseState.d.ts +44 -1
- package/build/hooks/useBrowseState.d.ts.map +1 -1
- package/build/hooks/useBrowseState.js +148 -13
- package/build/hooks/useBrowseState.js.map +1 -1
- package/build/hooks/useConfirmation.d.ts +18 -0
- package/build/hooks/useConfirmation.d.ts.map +1 -0
- package/build/hooks/useConfirmation.js +56 -0
- package/build/hooks/useConfirmation.js.map +1 -0
- package/build/hooks/useInitState.d.ts +109 -0
- package/build/hooks/useInitState.d.ts.map +1 -0
- package/build/hooks/useInitState.js +474 -0
- package/build/hooks/useInitState.js.map +1 -0
- package/build/hooks/useListActions.d.ts +15 -0
- package/build/hooks/useListActions.d.ts.map +1 -0
- package/build/hooks/useListActions.js +155 -0
- package/build/hooks/useListActions.js.map +1 -0
- package/build/hooks/useListState.d.ts +151 -0
- package/build/hooks/useListState.d.ts.map +1 -0
- package/build/hooks/useListState.js +448 -0
- package/build/hooks/useListState.js.map +1 -0
- 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 +147 -0
- package/build/hooks/usePublishState.d.ts.map +1 -0
- package/build/hooks/usePublishState.js +916 -0
- package/build/hooks/usePublishState.js.map +1 -0
- package/build/hooks/useSetupState.d.ts +57 -0
- package/build/hooks/useSetupState.d.ts.map +1 -0
- package/build/hooks/useSetupState.js +236 -0
- package/build/hooks/useSetupState.js.map +1 -0
- package/build/hooks/useUninstallState.d.ts +102 -0
- package/build/hooks/useUninstallState.d.ts.map +1 -0
- package/build/hooks/useUninstallState.js +342 -0
- package/build/hooks/useUninstallState.js.map +1 -0
- 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 +39 -0
- package/build/lib/checksum.d.ts.map +1 -1
- package/build/lib/checksum.js +98 -13
- package/build/lib/checksum.js.map +1 -1
- package/build/lib/config.d.ts +38 -18
- package/build/lib/config.d.ts.map +1 -1
- package/build/lib/config.js +103 -55
- 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/format.d.ts +6 -0
- package/build/lib/format.d.ts.map +1 -0
- package/build/lib/format.js +18 -0
- package/build/lib/format.js.map +1 -0
- package/build/lib/github.d.ts +35 -0
- package/build/lib/github.d.ts.map +1 -1
- package/build/lib/github.js +44 -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 +7 -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 +45 -68
- package/build/lib/lockfile.js.map +1 -1
- package/build/lib/publisher.d.ts +41 -12
- package/build/lib/publisher.d.ts.map +1 -1
- package/build/lib/publisher.js +226 -64
- 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 +45 -33
- package/build/lib/registry.js.map +1 -1
- package/build/lib/sanitize.d.ts +25 -0
- package/build/lib/sanitize.d.ts.map +1 -0
- package/build/lib/sanitize.js +61 -0
- package/build/lib/sanitize.js.map +1 -0
- package/build/lib/schemas/config.d.ts +31 -3
- package/build/lib/schemas/config.d.ts.map +1 -1
- package/build/lib/schemas/config.js +21 -2
- 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 +20 -4
- package/build/lib/schemas/lockfile.d.ts.map +1 -1
- package/build/lib/schemas/lockfile.js +7 -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 +29 -6
- package/build/lib/tool-resolver.d.ts.map +1 -1
- package/build/lib/tool-resolver.js +54 -15
- 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 +10 -6
- 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 +79 -65
- package/tool-adapters/claude-code.json +1 -1
- package/tool-adapters/copilot-cli.json +1 -1
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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/lib/diagnostics.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/lib/diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { FileDiffEntry } from '../components/index.js';
|
|
2
|
+
import type { InstalledAsset, InstalledFile } from './schemas/lockfile.js';
|
|
3
|
+
import type { RegistryAsset } from './schemas/registry.js';
|
|
4
|
+
export type DiffOutcome = {
|
|
5
|
+
diffs: FileDiffEntry[];
|
|
6
|
+
installed: InstalledAsset;
|
|
7
|
+
latestVersion: string;
|
|
8
|
+
name: string;
|
|
9
|
+
outcome: 'results';
|
|
10
|
+
registryAsset: RegistryAsset;
|
|
11
|
+
sameVersion: boolean;
|
|
12
|
+
} | {
|
|
13
|
+
name: string;
|
|
14
|
+
outcome: 'not-in-registry';
|
|
15
|
+
} | {
|
|
16
|
+
name: string;
|
|
17
|
+
outcome: 'not-installed';
|
|
18
|
+
};
|
|
19
|
+
/** Describes a file to fetch for diff comparison, with its installed and remote paths. */
|
|
20
|
+
export interface FileFetchEntry {
|
|
21
|
+
file: InstalledFile;
|
|
22
|
+
installedPath: string;
|
|
23
|
+
remotePath: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Core logic for the `atk diff` command. Computes the diff between a locally
|
|
27
|
+
* installed asset and the latest version in the registry.
|
|
28
|
+
*
|
|
29
|
+
* @param name - Asset name (without org prefix)
|
|
30
|
+
* @param org - Org from the --org CLI flag or inline @org/name syntax (already merged)
|
|
31
|
+
* @param tool - Tool override from --tool CLI flag
|
|
32
|
+
* @param context - Number of context lines for unified diff output
|
|
33
|
+
* @param refresh - Whether to bypass the registry cache
|
|
34
|
+
* @param projectRoot - Optional project root override
|
|
35
|
+
* @param cliOrg - Org from the --org CLI flag
|
|
36
|
+
* @param inlineOrg - Org parsed from @org/name syntax
|
|
37
|
+
* @param progress - Callback to report progress messages to the UI
|
|
38
|
+
*/
|
|
39
|
+
export declare function computeDiffOutcome(name: string, org: string | undefined, tool: string | undefined, context: number, refresh: boolean, projectRoot: string | undefined, cliOrg: string | undefined, inlineOrg: string | undefined, progress: (message: string) => void): Promise<DiffOutcome>;
|
|
40
|
+
//# sourceMappingURL=diff-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-command.d.ts","sourceRoot":"","sources":["../../src/lib/diff-command.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAa3D,MAAM,MAAM,WAAW,GACnB;IACE,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,SAAS,EAAE,cAAc,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;CACtB,GACD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,CAAC;AAE/C,0FAA0F;AAC1F,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC,OAAO,CAAC,WAAW,CAAC,CAqJtB"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { readFile } from 'node:fs/promises';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { resolveInstalledPaths } from './adapter.js';
|
|
5
|
+
import { getGitHubToken } from './auth.js';
|
|
6
|
+
import { loadConfig } from './config.js';
|
|
7
|
+
import { computeAddedFileDiff, computeRemovedFileDiff, computeUnifiedDiff } from './diff.js';
|
|
8
|
+
import { fetchFileContent, getEffectiveBranch, listAssetDirectoryFiles } from './github.js';
|
|
9
|
+
import { findInstalledAsset, readLockfile } from './lockfile.js';
|
|
10
|
+
import { resolveActiveOrg } from './org.js';
|
|
11
|
+
import { findProjectRoot } from './paths.js';
|
|
12
|
+
import { fetchRegistry, findAsset } from './registry.js';
|
|
13
|
+
import { resolveTool } from './tool-resolver.js';
|
|
14
|
+
/**
|
|
15
|
+
* Core logic for the `atk diff` command. Computes the diff between a locally
|
|
16
|
+
* installed asset and the latest version in the registry.
|
|
17
|
+
*
|
|
18
|
+
* @param name - Asset name (without org prefix)
|
|
19
|
+
* @param org - Org from the --org CLI flag or inline @org/name syntax (already merged)
|
|
20
|
+
* @param tool - Tool override from --tool CLI flag
|
|
21
|
+
* @param context - Number of context lines for unified diff output
|
|
22
|
+
* @param refresh - Whether to bypass the registry cache
|
|
23
|
+
* @param projectRoot - Optional project root override
|
|
24
|
+
* @param cliOrg - Org from the --org CLI flag
|
|
25
|
+
* @param inlineOrg - Org parsed from @org/name syntax
|
|
26
|
+
* @param progress - Callback to report progress messages to the UI
|
|
27
|
+
*/
|
|
28
|
+
export async function computeDiffOutcome(name, org, tool, context, refresh, projectRoot, cliOrg, inlineOrg, progress) {
|
|
29
|
+
const projectDir = findProjectRoot(projectRoot);
|
|
30
|
+
progress('Loading configuration...');
|
|
31
|
+
const config = await loadConfig();
|
|
32
|
+
const { adapter } = await resolveTool(tool);
|
|
33
|
+
progress('Reading lockfile...');
|
|
34
|
+
const lockfile = await readLockfile(projectDir);
|
|
35
|
+
const resolvedOrg = resolveActiveOrg(inlineOrg ?? cliOrg, lockfile.org, config.org);
|
|
36
|
+
const installed = findInstalledAsset(lockfile, name, undefined, resolvedOrg);
|
|
37
|
+
if (!installed) {
|
|
38
|
+
return { name, outcome: 'not-installed' };
|
|
39
|
+
}
|
|
40
|
+
progress('Fetching registry...');
|
|
41
|
+
const registry = await fetchRegistry({ force: refresh });
|
|
42
|
+
const foundAsset = findAsset(registry, name, installed.type, undefined, resolvedOrg);
|
|
43
|
+
if (!foundAsset) {
|
|
44
|
+
return { name, outcome: 'not-in-registry' };
|
|
45
|
+
}
|
|
46
|
+
const { asset: registryAsset, version: latestVersion } = foundAsset;
|
|
47
|
+
progress('Fetching latest version...');
|
|
48
|
+
const token = await getGitHubToken();
|
|
49
|
+
const effectiveBranch = getEffectiveBranch(config.registryBranch);
|
|
50
|
+
let remoteFilesList;
|
|
51
|
+
try {
|
|
52
|
+
remoteFilesList = await listAssetDirectoryFiles(token, registryAsset, latestVersion, effectiveBranch);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
throw new Error(`Failed to list asset directory files for "${name}". ` +
|
|
56
|
+
`Ensure your GitHub authentication is valid (run \`gh auth login\`). ` +
|
|
57
|
+
`Original error: ${error instanceof Error ? error.message : String(error)}`);
|
|
58
|
+
}
|
|
59
|
+
// Convert remote files array to a Map for O(1) lookups by name
|
|
60
|
+
const remoteFiles = new Map(remoteFilesList.map((f) => [f.name, f]));
|
|
61
|
+
// Resolve installed paths via the adapter
|
|
62
|
+
const resolved = resolveInstalledPaths(installed, adapter, projectDir);
|
|
63
|
+
const installedPathMap = new Map(resolved.files.map((f) => [f.sourcePath, f.installedPath]));
|
|
64
|
+
// Identify which installed files have a remote counterpart and exist locally
|
|
65
|
+
const filesToFetch = [];
|
|
66
|
+
const diffs = [];
|
|
67
|
+
for (const file of installed.files) {
|
|
68
|
+
const installedPath = installedPathMap.get(file.sourcePath);
|
|
69
|
+
const remoteFile = remoteFiles.get(file.sourcePath);
|
|
70
|
+
if (!remoteFile) {
|
|
71
|
+
const absoluteInstalledPath = installedPath ? join(projectDir, installedPath) : undefined;
|
|
72
|
+
if (absoluteInstalledPath && existsSync(absoluteInstalledPath)) {
|
|
73
|
+
const localContent = await readFile(absoluteInstalledPath, 'utf-8');
|
|
74
|
+
diffs.push({
|
|
75
|
+
diffLines: computeRemovedFileDiff(localContent),
|
|
76
|
+
fileName: file.sourcePath,
|
|
77
|
+
status: 'removed',
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
diffs.push({ fileName: file.sourcePath, status: 'removed' });
|
|
82
|
+
}
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
if (!installedPath) {
|
|
86
|
+
diffs.push({ fileName: file.sourcePath, status: 'missing-local' });
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
const absoluteInstalledPath = join(projectDir, installedPath);
|
|
90
|
+
if (!existsSync(absoluteInstalledPath)) {
|
|
91
|
+
diffs.push({ fileName: file.sourcePath, status: 'missing-local' });
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
filesToFetch.push({ file, installedPath, remotePath: remoteFile.path });
|
|
95
|
+
}
|
|
96
|
+
// Fetch all remote file contents in parallel
|
|
97
|
+
const remoteContents = await Promise.all(filesToFetch.map(async ({ remotePath }) => fetchFileContent(token, remotePath, effectiveBranch)));
|
|
98
|
+
// Read all local file contents in parallel
|
|
99
|
+
const localContents = await Promise.all(filesToFetch.map(async ({ installedPath }) => readFile(join(projectDir, installedPath), 'utf-8')));
|
|
100
|
+
// Build diffs from fetched content
|
|
101
|
+
for (let i = 0; i < filesToFetch.length; i++) {
|
|
102
|
+
const { file } = filesToFetch[i];
|
|
103
|
+
const remoteContent = remoteContents[i];
|
|
104
|
+
const localContent = localContents[i];
|
|
105
|
+
if (localContent === remoteContent) {
|
|
106
|
+
diffs.push({
|
|
107
|
+
fileName: file.sourcePath,
|
|
108
|
+
localLines: localContent.split('\n').length,
|
|
109
|
+
remoteLines: remoteContent.split('\n').length,
|
|
110
|
+
status: 'unchanged',
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
// Diff argument order: remote (old) → local (new).
|
|
115
|
+
// This means '+' lines represent local content and '-' lines represent registry content.
|
|
116
|
+
diffs.push({
|
|
117
|
+
diffLines: computeUnifiedDiff(remoteContent, localContent, context),
|
|
118
|
+
fileName: file.sourcePath,
|
|
119
|
+
localLines: localContent.split('\n').length,
|
|
120
|
+
remoteLines: remoteContent.split('\n').length,
|
|
121
|
+
status: 'modified',
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Collect added files (present in registry but not in installed files), then batch-fetch in parallel
|
|
126
|
+
const installedSourcePaths = new Set(installed.files.map((f) => f.sourcePath));
|
|
127
|
+
const addedRemoteFiles = [...remoteFiles.values()].filter((rf) => !installedSourcePaths.has(rf.name));
|
|
128
|
+
const addedContents = await Promise.all(addedRemoteFiles.map(async (rf) => fetchFileContent(token, rf.path, effectiveBranch)));
|
|
129
|
+
for (let i = 0; i < addedRemoteFiles.length; i++) {
|
|
130
|
+
const remoteFile = addedRemoteFiles[i];
|
|
131
|
+
const remoteContent = addedContents[i];
|
|
132
|
+
diffs.push({ diffLines: computeAddedFileDiff(remoteContent), fileName: remoteFile.name, status: 'added' });
|
|
133
|
+
}
|
|
134
|
+
const sameVersion = installed.version === latestVersion;
|
|
135
|
+
return {
|
|
136
|
+
diffs,
|
|
137
|
+
installed,
|
|
138
|
+
latestVersion,
|
|
139
|
+
name,
|
|
140
|
+
outcome: 'results',
|
|
141
|
+
registryAsset,
|
|
142
|
+
sameVersion,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=diff-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-command.js","sourceRoot":"","sources":["../../src/lib/diff-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAsBjD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAY,EACZ,GAAuB,EACvB,IAAwB,EACxB,OAAe,EACf,OAAgB,EAChB,WAA+B,EAC/B,MAA0B,EAC1B,SAA6B,EAC7B,QAAmC;IAEnC,MAAM,UAAU,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAEhD,QAAQ,CAAC,0BAA0B,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IAE5C,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,gBAAgB,CAAC,SAAS,IAAI,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAE7E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IAC5C,CAAC;IAED,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAErF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC;IAEpE,QAAQ,CAAC,4BAA4B,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,CAAC;IACrC,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAElE,IAAI,eAAkC,CAAC;IAEvC,IAAI,CAAC;QACH,eAAe,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IACxG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,6CAA6C,IAAI,KAAK;YACpD,sEAAsE;YACtE,mBAAmB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC9E,CAAC;IACJ,CAAC;IAED,+DAA+D;IAC/D,MAAM,WAAW,GAAG,IAAI,GAAG,CAA0B,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9F,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IACvE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAE7F,6EAA6E;IAC7E,MAAM,YAAY,GAAqB,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAoB,EAAE,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEpD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,qBAAqB,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE1F,IAAI,qBAAqB,IAAI,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBAC/D,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;gBACpE,KAAK,CAAC,IAAI,CAAC;oBACT,SAAS,EAAE,sBAAsB,CAAC,YAAY,CAAC;oBAC/C,QAAQ,EAAE,IAAI,CAAC,UAAU;oBACzB,MAAM,EAAE,SAAS;iBAClB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAC/D,CAAC;YAED,SAAS;QACX,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;YACnE,SAAS;QACX,CAAC;QAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAE9D,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;YACnE,SAAS;QACX,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,6CAA6C;IAC7C,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACtC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CACjG,CAAC;IAEF,2CAA2C;IAC3C,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC,CAClG,CAAC;IAEF,mCAAmC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,CAAC,CAAE,CAAC;QAClC,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAE,CAAC;QACzC,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAE,CAAC;QAEvC,IAAI,YAAY,KAAK,aAAa,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC;gBACT,QAAQ,EAAE,IAAI,CAAC,UAAU;gBACzB,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;gBAC3C,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;gBAC7C,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,mDAAmD;YACnD,yFAAyF;YACzF,KAAK,CAAC,IAAI,CAAC;gBACT,SAAS,EAAE,kBAAkB,CAAC,aAAa,EAAE,YAAY,EAAE,OAAO,CAAC;gBACnE,QAAQ,EAAE,IAAI,CAAC,UAAU;gBACzB,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;gBAC3C,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;gBAC7C,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,qGAAqG;IACrG,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/E,MAAM,gBAAgB,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtG,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CACtF,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAE,CAAC;QACxC,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAE,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,oBAAoB,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7G,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,KAAK,aAAa,CAAC;IACxD,OAAO;QACL,KAAK;QACL,SAAS;QACT,aAAa;QACb,IAAI;QACJ,OAAO,EAAE,SAAS;QAClB,aAAa;QACb,WAAW;KACZ,CAAC;AACJ,CAAC"}
|
package/build/lib/diff.d.ts
CHANGED
|
@@ -31,4 +31,11 @@ export declare function computeRemovedFileDiff(content: string): DiffLine[];
|
|
|
31
31
|
* @param contextLines - Number of context lines surrounding each change (default: 3).
|
|
32
32
|
*/
|
|
33
33
|
export declare function computeUnifiedDiff(oldContent: string, newContent: string, contextLines?: number): DiffLine[];
|
|
34
|
+
/**
|
|
35
|
+
* Split content into lines and strip the trailing empty string
|
|
36
|
+
* that results from a final newline character.
|
|
37
|
+
*
|
|
38
|
+
* @param content - The raw string content to split.
|
|
39
|
+
*/
|
|
40
|
+
export declare function splitContentLines(content: string): string[];
|
|
34
41
|
//# sourceMappingURL=diff.d.ts.map
|
package/build/lib/diff.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/lib/diff.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,CAAC;AAE/E;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/lib/diff.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,CAAC;AAE/E;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAehE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAelE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAE,MAAU,GAAG,QAAQ,EAAE,CA4B/G;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAM3D"}
|
package/build/lib/diff.js
CHANGED
|
@@ -5,11 +5,7 @@ import { structuredPatch } from 'diff';
|
|
|
5
5
|
* @param content - The full content of the added file.
|
|
6
6
|
*/
|
|
7
7
|
export function computeAddedFileDiff(content) {
|
|
8
|
-
const contentLines = content
|
|
9
|
-
// Remove trailing empty string from a final newline
|
|
10
|
-
if (contentLines.length > 0 && contentLines[contentLines.length - 1] === '') {
|
|
11
|
-
contentLines.pop();
|
|
12
|
-
}
|
|
8
|
+
const contentLines = splitContentLines(content);
|
|
13
9
|
const lines = [];
|
|
14
10
|
lines.push({
|
|
15
11
|
content: `@@ -0,0 +1,${contentLines.length} @@`,
|
|
@@ -26,11 +22,7 @@ export function computeAddedFileDiff(content) {
|
|
|
26
22
|
* @param content - The full content of the removed file.
|
|
27
23
|
*/
|
|
28
24
|
export function computeRemovedFileDiff(content) {
|
|
29
|
-
const contentLines = content
|
|
30
|
-
// Remove trailing empty string from a final newline
|
|
31
|
-
if (contentLines.length > 0 && contentLines[contentLines.length - 1] === '') {
|
|
32
|
-
contentLines.pop();
|
|
33
|
-
}
|
|
25
|
+
const contentLines = splitContentLines(content);
|
|
34
26
|
const lines = [];
|
|
35
27
|
lines.push({
|
|
36
28
|
content: `@@ -1,${contentLines.length} +0,0 @@`,
|
|
@@ -75,4 +67,17 @@ export function computeUnifiedDiff(oldContent, newContent, contextLines = 3) {
|
|
|
75
67
|
}
|
|
76
68
|
return lines;
|
|
77
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Split content into lines and strip the trailing empty string
|
|
72
|
+
* that results from a final newline character.
|
|
73
|
+
*
|
|
74
|
+
* @param content - The raw string content to split.
|
|
75
|
+
*/
|
|
76
|
+
export function splitContentLines(content) {
|
|
77
|
+
const lines = content.split('\n');
|
|
78
|
+
if (lines.length > 0 && lines[lines.length - 1] === '') {
|
|
79
|
+
lines.pop();
|
|
80
|
+
}
|
|
81
|
+
return lines;
|
|
82
|
+
}
|
|
78
83
|
//# sourceMappingURL=diff.js.map
|
package/build/lib/diff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/lib/diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAgBvC;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/lib/diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/lib/format.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAWpD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format an ISO date string into a human-readable short date (e.g. "Jan 5, 2025").
|
|
3
|
+
* Returns the original string if parsing fails.
|
|
4
|
+
*/
|
|
5
|
+
export function formatDate(isoString) {
|
|
6
|
+
try {
|
|
7
|
+
const date = new Date(isoString);
|
|
8
|
+
return date.toLocaleDateString('en-US', {
|
|
9
|
+
day: 'numeric',
|
|
10
|
+
month: 'short',
|
|
11
|
+
year: 'numeric',
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return isoString;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/lib/format.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;YACtC,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
package/build/lib/github.d.ts
CHANGED
|
@@ -11,11 +11,24 @@ export declare const GITHUB_API_VERSION = "2022-11-28";
|
|
|
11
11
|
export declare const GITHUB_ACCEPT_JSON = "application/vnd.github+json";
|
|
12
12
|
/** Accept header value for raw file content responses from GitHub API. */
|
|
13
13
|
export declare const GITHUB_ACCEPT_RAW = "application/vnd.github.raw+json";
|
|
14
|
+
/** Files fetched from the registry for a specific asset version. */
|
|
15
|
+
export interface FetchedAssetFiles {
|
|
16
|
+
/** The raw JSON string of manifest.json (or bundle.json for bundles). */
|
|
17
|
+
manifestContent: string;
|
|
18
|
+
/** The manifest file name that was fetched. */
|
|
19
|
+
manifestFileName: 'bundle.json' | 'manifest.json';
|
|
20
|
+
/** README.md content if it exists; undefined if the asset has no README. */
|
|
21
|
+
readmeContent: string | undefined;
|
|
22
|
+
}
|
|
14
23
|
/** A file entry returned from listing an asset directory on GitHub. */
|
|
15
24
|
export interface GitHubFileEntry {
|
|
16
25
|
name: string;
|
|
17
26
|
path: string;
|
|
18
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Build a browsable GitHub URL pointing to a bundle's README.md in the registry repo.
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildBundleReadmeUrl(name: string, version: string): string;
|
|
19
32
|
/**
|
|
20
33
|
* Build a GitHub Contents API URL for a file or directory in the registry repo.
|
|
21
34
|
*/
|
|
@@ -28,6 +41,28 @@ export declare function buildGitHubContentsUrl(path: string, branch?: string): s
|
|
|
28
41
|
* @returns HeadersInit with Accept, Authorization, and X-GitHub-Api-Version
|
|
29
42
|
*/
|
|
30
43
|
export declare function buildGitHubHeaders(token: string, accept?: string): HeadersInit;
|
|
44
|
+
/**
|
|
45
|
+
* Build a browsable GitHub URL pointing to an asset's README.md in the registry repo.
|
|
46
|
+
*/
|
|
47
|
+
export declare function buildReadmeUrl(asset: {
|
|
48
|
+
name: string;
|
|
49
|
+
org?: string;
|
|
50
|
+
type: string;
|
|
51
|
+
}, version: string): string;
|
|
52
|
+
/**
|
|
53
|
+
* Fetch the manifest (or bundle) JSON and optional README.md for an asset
|
|
54
|
+
* at a specific version from the registry repository.
|
|
55
|
+
*
|
|
56
|
+
* @param token - GitHub authentication token
|
|
57
|
+
* @param asset - Object with `name`, `type`, and optional `org` identifying the asset
|
|
58
|
+
* @param version - Semver version string
|
|
59
|
+
* @param branch - Optional branch override
|
|
60
|
+
*/
|
|
61
|
+
export declare function fetchAssetFiles(token: string, asset: {
|
|
62
|
+
name: string;
|
|
63
|
+
org?: string;
|
|
64
|
+
type: string;
|
|
65
|
+
}, version: string, branch?: string): Promise<FetchedAssetFiles>;
|
|
31
66
|
/**
|
|
32
67
|
* Fetch raw file content from the GitHub Contents API.
|
|
33
68
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,8CAA8C,CAAC;AACjF,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAE/C,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,gCAAgC,CAAC;AAEhE,0EAA0E;AAC1E,eAAO,MAAM,iBAAiB,oCAAoC,CAAC;AAEnE,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAG5E;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAM9E;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAWpG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYzE;AAED;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACnD,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,EAAE,CAAC,CAuB5B"}
|
|
1
|
+
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,8CAA8C,CAAC;AACjF,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAE/C,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,gCAAgC,CAAC;AAEhE,0EAA0E;AAC1E,eAAO,MAAM,iBAAiB,oCAAoC,CAAC;AAEnE,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,eAAe,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,gBAAgB,EAAE,aAAa,GAAG,eAAe,CAAC;IAClD,4EAA4E;IAC5E,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAG5E;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAM9E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAK3G;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACnD,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,CAuB5B;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAWpG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYzE;AAED;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACnD,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,EAAE,CAAC,CAuB5B"}
|
package/build/lib/github.js
CHANGED
|
@@ -14,6 +14,12 @@ export const GITHUB_API_VERSION = '2022-11-28';
|
|
|
14
14
|
export const GITHUB_ACCEPT_JSON = 'application/vnd.github+json';
|
|
15
15
|
/** Accept header value for raw file content responses from GitHub API. */
|
|
16
16
|
export const GITHUB_ACCEPT_RAW = 'application/vnd.github.raw+json';
|
|
17
|
+
/**
|
|
18
|
+
* Build a browsable GitHub URL pointing to a bundle's README.md in the registry repo.
|
|
19
|
+
*/
|
|
20
|
+
export function buildBundleReadmeUrl(name, version) {
|
|
21
|
+
return `https://github.com/${DEFAULT_REGISTRY_REPO}/blob/${DEFAULT_REGISTRY_BRANCH}/bundles/${name}/${version}/README.md`;
|
|
22
|
+
}
|
|
17
23
|
/**
|
|
18
24
|
* Build a GitHub Contents API URL for a file or directory in the registry repo.
|
|
19
25
|
*/
|
|
@@ -35,6 +41,44 @@ export function buildGitHubHeaders(token, accept) {
|
|
|
35
41
|
'X-GitHub-Api-Version': GITHUB_API_VERSION,
|
|
36
42
|
};
|
|
37
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Build a browsable GitHub URL pointing to an asset's README.md in the registry repo.
|
|
46
|
+
*/
|
|
47
|
+
export function buildReadmeUrl(asset, version) {
|
|
48
|
+
const assetDir = asset.org
|
|
49
|
+
? `assets/${asset.type}s/@${asset.org}/${asset.name}/${version}`
|
|
50
|
+
: `assets/${asset.type}s/${asset.name}/${version}`;
|
|
51
|
+
return `https://github.com/${DEFAULT_REGISTRY_REPO}/blob/${DEFAULT_REGISTRY_BRANCH}/${assetDir}/README.md`;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Fetch the manifest (or bundle) JSON and optional README.md for an asset
|
|
55
|
+
* at a specific version from the registry repository.
|
|
56
|
+
*
|
|
57
|
+
* @param token - GitHub authentication token
|
|
58
|
+
* @param asset - Object with `name`, `type`, and optional `org` identifying the asset
|
|
59
|
+
* @param version - Semver version string
|
|
60
|
+
* @param branch - Optional branch override
|
|
61
|
+
*/
|
|
62
|
+
export async function fetchAssetFiles(token, asset, version, branch) {
|
|
63
|
+
const isBundle = asset.type === 'bundle';
|
|
64
|
+
const assetDir = isBundle
|
|
65
|
+
? `bundles/${asset.name}/${version}`
|
|
66
|
+
: asset.org
|
|
67
|
+
? `assets/${asset.type}s/@${asset.org}/${asset.name}/${version}`
|
|
68
|
+
: `assets/${asset.type}s/${asset.name}/${version}`;
|
|
69
|
+
const manifestFileName = isBundle ? 'bundle.json' : 'manifest.json';
|
|
70
|
+
// Manifest is mandatory — let errors propagate
|
|
71
|
+
const manifestContent = await fetchFileContent(token, `${assetDir}/${manifestFileName}`, branch);
|
|
72
|
+
// README is optional — swallow 404s
|
|
73
|
+
let readmeContent;
|
|
74
|
+
try {
|
|
75
|
+
readmeContent = await fetchFileContent(token, `${assetDir}/README.md`, branch);
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
readmeContent = undefined;
|
|
79
|
+
}
|
|
80
|
+
return { manifestContent, manifestFileName, readmeContent };
|
|
81
|
+
}
|
|
38
82
|
/**
|
|
39
83
|
* Fetch raw file content from the GitHub Contents API.
|
|
40
84
|
*
|
package/build/lib/github.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,MAAM,qBAAqB,GAAG,2CAA2C,CAAC;AACjF,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,cAAuB;IACxD,OAAO,cAAc,IAAI,uBAAuB,CAAC;AACnD,CAAC;AAED,oDAAoD;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAE/C,uEAAuE;AACvE,MAAM,CAAC,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;AAEhE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"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"}
|
package/build/lib/gitignore.d.ts
CHANGED
|
@@ -14,6 +14,23 @@ export declare function ensureGitignoreEntries(projectDir: string, adapter: Adap
|
|
|
14
14
|
added: string[];
|
|
15
15
|
alreadyPresent: string[];
|
|
16
16
|
}>;
|
|
17
|
+
/**
|
|
18
|
+
* Ensure that the given gitignore patterns are present in the project's
|
|
19
|
+
* `.gitignore` file.
|
|
20
|
+
*
|
|
21
|
+
* - Reads `.gitignore` from `projectDir` (creates it if missing)
|
|
22
|
+
* - Checks which patterns are already present
|
|
23
|
+
* - Appends missing entries under a `# ATK managed assets` comment header
|
|
24
|
+
*
|
|
25
|
+
* This is the low-level API that accepts raw string patterns, making it
|
|
26
|
+
* usable without an adapter (e.g., from the setup fallback path).
|
|
27
|
+
*
|
|
28
|
+
* Returns which entries were added vs already present.
|
|
29
|
+
*/
|
|
30
|
+
export declare function ensureGitignorePatterns(projectDir: string, patterns: string[]): Promise<{
|
|
31
|
+
added: string[];
|
|
32
|
+
alreadyPresent: string[];
|
|
33
|
+
}>;
|
|
17
34
|
/**
|
|
18
35
|
* Extract gitignore patterns from an adapter's placements.
|
|
19
36
|
*
|