@detergent-software/atk 8.9.0 → 8.9.1-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/CHANGELOG.md +312 -0
- package/README.md +22 -12
- package/build/cli.js +18 -6
- package/build/cli.js.map +1 -1
- package/build/command-manifest.json +1507 -0
- package/build/commands/_app.d.ts.map +1 -1
- package/build/commands/_app.js +8 -4
- package/build/commands/_app.js.map +1 -1
- package/build/commands/audit.d.ts.map +1 -1
- package/build/commands/audit.js +1 -1
- package/build/commands/audit.js.map +1 -1
- package/build/commands/browse.js +2 -2
- package/build/commands/browse.js.map +1 -1
- package/build/commands/cache.d.ts +1 -1
- package/build/commands/cache.d.ts.map +1 -1
- package/build/commands/cache.js +1 -16
- package/build/commands/cache.js.map +1 -1
- package/build/commands/config.d.ts.map +1 -1
- package/build/commands/config.js +1 -1
- package/build/commands/config.js.map +1 -1
- package/build/commands/diff.d.ts.map +1 -1
- package/build/commands/diff.js +4 -0
- package/build/commands/diff.js.map +1 -1
- package/build/commands/drift.d.ts.map +1 -1
- package/build/commands/drift.js +4 -0
- package/build/commands/drift.js.map +1 -1
- package/build/commands/index.d.ts.map +1 -1
- package/build/commands/index.js +5 -40
- package/build/commands/index.js.map +1 -1
- package/build/commands/info.d.ts.map +1 -1
- package/build/commands/info.js +50 -33
- package/build/commands/info.js.map +1 -1
- package/build/commands/init.d.ts.map +1 -1
- package/build/commands/init.js +4 -2
- package/build/commands/init.js.map +1 -1
- package/build/commands/install.d.ts.map +1 -1
- package/build/commands/install.js +28 -7
- package/build/commands/install.js.map +1 -1
- package/build/commands/list.js +2 -2
- package/build/commands/list.js.map +1 -1
- package/build/commands/login.d.ts.map +1 -1
- package/build/commands/login.js +12 -2
- package/build/commands/login.js.map +1 -1
- package/build/commands/logout.d.ts.map +1 -1
- package/build/commands/logout.js +9 -1
- package/build/commands/logout.js.map +1 -1
- package/build/commands/outdated.js +1 -1
- package/build/commands/outdated.js.map +1 -1
- package/build/commands/prune.d.ts.map +1 -1
- package/build/commands/prune.js +4 -2
- package/build/commands/prune.js.map +1 -1
- package/build/commands/publish.d.ts +1 -1
- package/build/commands/publish.d.ts.map +1 -1
- package/build/commands/publish.js +33 -37
- package/build/commands/publish.js.map +1 -1
- package/build/commands/release-notes.d.ts.map +1 -1
- package/build/commands/release-notes.js +4 -0
- package/build/commands/release-notes.js.map +1 -1
- package/build/commands/schema.d.ts +3 -3
- package/build/commands/search.js +1 -1
- package/build/commands/search.js.map +1 -1
- package/build/commands/sync.d.ts +1 -1
- package/build/commands/sync.d.ts.map +1 -1
- package/build/commands/sync.js +27 -12
- package/build/commands/sync.js.map +1 -1
- package/build/commands/update.d.ts.map +1 -1
- package/build/commands/update.js +58 -9
- package/build/commands/update.js.map +1 -1
- package/build/commands/whoami.d.ts.map +1 -1
- package/build/commands/whoami.js +16 -4
- package/build/commands/whoami.js.map +1 -1
- package/build/commands/why.js +3 -4
- package/build/commands/why.js.map +1 -1
- package/build/components/Header.d.ts +2 -3
- package/build/components/Header.d.ts.map +1 -1
- package/build/components/Header.js +2 -9
- package/build/components/Header.js.map +1 -1
- package/build/components/LocalEditsHint.d.ts +16 -0
- package/build/components/LocalEditsHint.d.ts.map +1 -0
- package/build/components/LocalEditsHint.js +18 -0
- package/build/components/LocalEditsHint.js.map +1 -0
- package/build/components/SyncAllInSync.d.ts +5 -1
- package/build/components/SyncAllInSync.d.ts.map +1 -1
- package/build/components/SyncAllInSync.js +2 -2
- package/build/components/SyncAllInSync.js.map +1 -1
- package/build/components/header-art.d.ts +7 -0
- package/build/components/header-art.d.ts.map +1 -0
- package/build/components/header-art.js +14 -0
- package/build/components/header-art.js.map +1 -0
- package/build/components/index.d.ts +1 -0
- package/build/components/index.d.ts.map +1 -1
- package/build/components/index.js +1 -0
- package/build/components/index.js.map +1 -1
- package/build/hooks/useListActions.d.ts.map +1 -1
- package/build/hooks/useListActions.js +4 -0
- package/build/hooks/useListActions.js.map +1 -1
- package/build/hooks/usePruneState.d.ts +1 -7
- package/build/hooks/usePruneState.d.ts.map +1 -1
- package/build/hooks/usePruneState.js +18 -62
- package/build/hooks/usePruneState.js.map +1 -1
- package/build/hooks/usePublishState.d.ts +38 -207
- package/build/hooks/usePublishState.d.ts.map +1 -1
- package/build/hooks/usePublishState.js +83 -1501
- package/build/hooks/usePublishState.js.map +1 -1
- package/build/lib/adapter.d.ts +10 -1
- package/build/lib/adapter.d.ts.map +1 -1
- package/build/lib/adapter.js +46 -3
- package/build/lib/adapter.js.map +1 -1
- package/build/lib/api-client.d.ts +9 -5
- package/build/lib/api-client.d.ts.map +1 -1
- package/build/lib/api-client.js +35 -8
- package/build/lib/api-client.js.map +1 -1
- package/build/lib/atk-api/errors.d.ts +5 -2
- package/build/lib/atk-api/errors.d.ts.map +1 -1
- package/build/lib/atk-api/errors.js +1 -0
- package/build/lib/atk-api/errors.js.map +1 -1
- package/build/lib/atk-api/generated/types.gen.d.ts +12 -12
- package/build/lib/atk-api/index.d.ts +2 -2
- package/build/lib/atk-api/index.d.ts.map +1 -1
- package/build/lib/atk-api/index.js +1 -1
- package/build/lib/atk-api/index.js.map +1 -1
- package/build/lib/atk-api/web-routes.d.ts +25 -6
- package/build/lib/atk-api/web-routes.d.ts.map +1 -1
- package/build/lib/atk-api/web-routes.js +27 -8
- package/build/lib/atk-api/web-routes.js.map +1 -1
- package/build/lib/auth.d.ts +12 -2
- package/build/lib/auth.d.ts.map +1 -1
- package/build/lib/auth.js +38 -3
- package/build/lib/auth.js.map +1 -1
- package/build/lib/checksum.d.ts +40 -14
- package/build/lib/checksum.d.ts.map +1 -1
- package/build/lib/checksum.js +110 -57
- package/build/lib/checksum.js.map +1 -1
- package/build/lib/config.d.ts +4 -4
- package/build/lib/config.d.ts.map +1 -1
- package/build/lib/config.js +31 -8
- package/build/lib/config.js.map +1 -1
- package/build/lib/diagnostics.d.ts.map +1 -1
- package/build/lib/diagnostics.js +10 -7
- package/build/lib/diagnostics.js.map +1 -1
- package/build/lib/diff-command.js +1 -1
- package/build/lib/diff-command.js.map +1 -1
- package/build/lib/errors.d.ts +4 -1
- package/build/lib/errors.d.ts.map +1 -1
- package/build/lib/errors.js.map +1 -1
- package/build/lib/format-age.d.ts +3 -0
- package/build/lib/format-age.d.ts.map +1 -0
- package/build/lib/format-age.js +18 -0
- package/build/lib/format-age.js.map +1 -0
- package/build/lib/installer.d.ts +8 -11
- package/build/lib/installer.d.ts.map +1 -1
- package/build/lib/installer.js +83 -28
- package/build/lib/installer.js.map +1 -1
- package/build/lib/local-edits.d.ts +72 -0
- package/build/lib/local-edits.d.ts.map +1 -0
- package/build/lib/local-edits.js +145 -0
- package/build/lib/local-edits.js.map +1 -0
- package/build/lib/lockfile.d.ts +12 -8
- package/build/lib/lockfile.d.ts.map +1 -1
- package/build/lib/lockfile.js +209 -59
- package/build/lib/lockfile.js.map +1 -1
- package/build/lib/mover.d.ts.map +1 -1
- package/build/lib/mover.js +11 -12
- package/build/lib/mover.js.map +1 -1
- package/build/lib/multi-tool-install.d.ts +4 -2
- package/build/lib/multi-tool-install.d.ts.map +1 -1
- package/build/lib/multi-tool-install.js +12 -2
- package/build/lib/multi-tool-install.js.map +1 -1
- package/build/lib/offline.d.ts +19 -0
- package/build/lib/offline.d.ts.map +1 -0
- package/build/lib/offline.js +26 -0
- package/build/lib/offline.js.map +1 -0
- package/build/lib/owned-paths.d.ts +7 -4
- package/build/lib/owned-paths.d.ts.map +1 -1
- package/build/lib/owned-paths.js +23 -8
- package/build/lib/owned-paths.js.map +1 -1
- package/build/lib/parse-json.d.ts +12 -0
- package/build/lib/parse-json.d.ts.map +1 -1
- package/build/lib/parse-json.js +15 -2
- package/build/lib/parse-json.js.map +1 -1
- package/build/lib/pastel/commander-specs.d.ts +7 -0
- package/build/lib/pastel/commander-specs.d.ts.map +1 -0
- package/build/lib/pastel/commander-specs.js +50 -0
- package/build/lib/pastel/commander-specs.js.map +1 -0
- package/build/lib/pastel/generate-arguments.d.ts +3 -3
- package/build/lib/pastel/generate-arguments.d.ts.map +1 -1
- package/build/lib/pastel/generate-arguments.js +25 -22
- package/build/lib/pastel/generate-arguments.js.map +1 -1
- package/build/lib/pastel/generate-command.d.ts +7 -5
- package/build/lib/pastel/generate-command.d.ts.map +1 -1
- package/build/lib/pastel/generate-command.js +32 -67
- package/build/lib/pastel/generate-command.js.map +1 -1
- package/build/lib/pastel/generate-commands.d.ts +3 -5
- package/build/lib/pastel/generate-commands.d.ts.map +1 -1
- package/build/lib/pastel/generate-commands.js +6 -10
- package/build/lib/pastel/generate-commands.js.map +1 -1
- package/build/lib/pastel/generate-options.d.ts +3 -3
- package/build/lib/pastel/generate-options.d.ts.map +1 -1
- package/build/lib/pastel/generate-options.js +16 -13
- package/build/lib/pastel/generate-options.js.map +1 -1
- package/build/lib/pastel/index.d.ts +26 -4
- package/build/lib/pastel/index.d.ts.map +1 -1
- package/build/lib/pastel/index.js +104 -18
- package/build/lib/pastel/index.js.map +1 -1
- package/build/lib/pastel/internal-types.d.ts +39 -8
- package/build/lib/pastel/internal-types.d.ts.map +1 -1
- package/build/lib/pastel/manifest.d.ts +8 -0
- package/build/lib/pastel/manifest.d.ts.map +1 -0
- package/build/lib/pastel/manifest.js +7 -0
- package/build/lib/pastel/manifest.js.map +1 -0
- package/build/lib/pastel/read-commands.d.ts +7 -2
- package/build/lib/pastel/read-commands.d.ts.map +1 -1
- package/build/lib/pastel/read-commands.js +51 -30
- package/build/lib/pastel/read-commands.js.map +1 -1
- package/build/lib/pastel/render-command.d.ts +13 -0
- package/build/lib/pastel/render-command.d.ts.map +1 -0
- package/build/lib/pastel/render-command.js +56 -0
- package/build/lib/pastel/render-command.js.map +1 -0
- package/build/lib/process-alive.d.ts +11 -0
- package/build/lib/process-alive.d.ts.map +1 -0
- package/build/lib/process-alive.js +22 -0
- package/build/lib/process-alive.js.map +1 -0
- package/build/lib/pruner.d.ts +26 -0
- package/build/lib/pruner.d.ts.map +1 -0
- package/build/lib/pruner.js +42 -0
- package/build/lib/pruner.js.map +1 -0
- package/build/lib/publish-flow.d.ts +224 -0
- package/build/lib/publish-flow.d.ts.map +1 -0
- package/build/lib/publish-flow.js +1258 -0
- package/build/lib/publish-flow.js.map +1 -0
- package/build/lib/publish-run.d.ts +55 -0
- package/build/lib/publish-run.d.ts.map +1 -0
- package/build/lib/publish-run.js +169 -0
- package/build/lib/publish-run.js.map +1 -0
- package/build/lib/publisher.d.ts +25 -17
- package/build/lib/publisher.d.ts.map +1 -1
- package/build/lib/publisher.js +54 -53
- package/build/lib/publisher.js.map +1 -1
- package/build/lib/registrar.d.ts.map +1 -1
- package/build/lib/registrar.js +2 -2
- package/build/lib/registrar.js.map +1 -1
- package/build/lib/registry.d.ts +18 -7
- package/build/lib/registry.d.ts.map +1 -1
- package/build/lib/registry.js +113 -32
- package/build/lib/registry.js.map +1 -1
- package/build/lib/root-path.d.ts +11 -0
- package/build/lib/root-path.d.ts.map +1 -1
- package/build/lib/root-path.js +15 -1
- package/build/lib/root-path.js.map +1 -1
- package/build/lib/schemas/config.d.ts +3 -1
- package/build/lib/schemas/config.d.ts.map +1 -1
- package/build/lib/schemas/config.js +1 -1
- package/build/lib/schemas/config.js.map +1 -1
- package/build/lib/schemas/lockfile.d.ts +156 -23
- package/build/lib/schemas/lockfile.d.ts.map +1 -1
- package/build/lib/schemas/lockfile.js +100 -79
- package/build/lib/schemas/lockfile.js.map +1 -1
- package/build/lib/setup.d.ts.map +1 -1
- package/build/lib/setup.js +53 -48
- package/build/lib/setup.js.map +1 -1
- package/build/lib/staging.d.ts +15 -0
- package/build/lib/staging.d.ts.map +1 -0
- package/build/lib/staging.js +33 -0
- package/build/lib/staging.js.map +1 -0
- package/build/lib/sync.d.ts +22 -6
- package/build/lib/sync.d.ts.map +1 -1
- package/build/lib/sync.js +59 -7
- package/build/lib/sync.js.map +1 -1
- package/build/lib/uninstaller.d.ts.map +1 -1
- package/build/lib/uninstaller.js +8 -5
- package/build/lib/uninstaller.js.map +1 -1
- package/build/lib/update-check.d.ts +4 -0
- package/build/lib/update-check.d.ts.map +1 -1
- package/build/lib/update-check.js +55 -56
- package/build/lib/update-check.js.map +1 -1
- package/build/lib/updater.d.ts +31 -1
- package/build/lib/updater.d.ts.map +1 -1
- package/build/lib/updater.js +143 -4
- package/build/lib/updater.js.map +1 -1
- package/build/lib/usage-error.d.ts +20 -0
- package/build/lib/usage-error.d.ts.map +1 -0
- package/build/lib/usage-error.js +41 -0
- package/build/lib/usage-error.js.map +1 -0
- package/build/lib/user-setup.d.ts.map +1 -1
- package/build/lib/user-setup.js +62 -59
- package/build/lib/user-setup.js.map +1 -1
- package/build/lib/write-file.d.ts +5 -0
- package/build/lib/write-file.d.ts.map +1 -1
- package/build/lib/write-file.js +68 -13
- package/build/lib/write-file.js.map +1 -1
- package/package.json +81 -81
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-tool-install.d.ts","sourceRoot":"","sources":["../../src/lib/multi-tool-install.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAkB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAKtE,OAAO,
|
|
1
|
+
{"version":3,"file":"multi-tool-install.d.ts","sourceRoot":"","sources":["../../src/lib/multi-tool-install.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAkB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAKtE,OAAO,EAKL,KAAK,cAAc,EAEnB,KAAK,aAAa,EAGnB,MAAM,gBAAgB,CAAC;AAMxB,qFAAqF;AACrF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,uGAAuG;IACvG,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACpC;AAED,2FAA2F;AAC3F,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,0BAA0B,CAC9C,aAAa,EAAE,WAAW,EAC1B,KAAK,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAChD,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,OAAO,GAAG,iBAAiB,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GAC3G,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAoE9B;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,QAAQ,EACnB,KAAK,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,EAClC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,YAAY,GAAG,OAAO,CAAC,GACnE,WAAW,CA2Cb"}
|
|
@@ -2,13 +2,15 @@ import { satisfies } from 'semver';
|
|
|
2
2
|
import { declaresTool, isExcludedForTool, placesAsset, supportsType, withToolExcluded } from './asset-tools.js';
|
|
3
3
|
import { errorMessage } from './errors.js';
|
|
4
4
|
import { isInstalledForTool } from './installed-for-tool.js';
|
|
5
|
-
import { assertInstalledByAnyTool, executeInstallPlan, InstallerError, InstallPlanError, placeableEntries, rollBackInstalledAssets, } from './installer.js';
|
|
5
|
+
import { assertInstalledByAnyTool, executeInstallPlan, fetchPlanFiles, InstallerError, InstallPlanError, placeableEntries, rollBackInstalledAssets, } from './installer.js';
|
|
6
6
|
import { addAssetToLockfile, findInstalledAsset, readLockfile, writeLockfile } from './lockfile.js';
|
|
7
7
|
import { formatOrgName } from './org.js';
|
|
8
8
|
import { isLatestAlias } from './registry.js';
|
|
9
9
|
import { scopedCommand } from './scope.js';
|
|
10
10
|
/**
|
|
11
|
-
* Install `plan` once per tool, as `atk install` and `atk browse` do.
|
|
11
|
+
* Install `plan` once per tool, as `atk install` and `atk browse` do. The files are downloaded once,
|
|
12
|
+
* for every tool, before the first pass: a refused download (a `PlanDownloadError`) leaves the
|
|
13
|
+
* project as it was. A failure in any tool's pass
|
|
12
14
|
* undoes the earlier tools' passes too, then rethrows: the assets the command added for a tool
|
|
13
15
|
* leave it, and the lockfile gets their entries from before the command back. An asset that was
|
|
14
16
|
* already in place for a tool keeps what that tool's pass placed, because rolling it back would
|
|
@@ -33,6 +35,13 @@ export async function executeInstallPlanForTools(requestedPlan, tools, options)
|
|
|
33
35
|
}
|
|
34
36
|
return inPlace;
|
|
35
37
|
});
|
|
38
|
+
// Every tool's files, downloaded once before any pass writes, so a refused download leaves the
|
|
39
|
+
// project as it was and the passes share one copy.
|
|
40
|
+
const adapters = tools.map(({ adapter }) => adapter);
|
|
41
|
+
const downloadCount = new Set(adapters.flatMap((adapter) => placeableEntries(plan, adapter))).size;
|
|
42
|
+
if (downloadCount > 0)
|
|
43
|
+
options.onProgress?.(`Downloading ${downloadCount} asset(s)...`);
|
|
44
|
+
const files = await fetchPlanFiles(plan, ...adapters);
|
|
36
45
|
const toolResults = [];
|
|
37
46
|
try {
|
|
38
47
|
for (const { adapter, tool } of tools) {
|
|
@@ -40,6 +49,7 @@ export async function executeInstallPlanForTools(requestedPlan, tools, options)
|
|
|
40
49
|
const results = await executeInstallPlan(plan, {
|
|
41
50
|
...installOptions,
|
|
42
51
|
adapter,
|
|
52
|
+
files,
|
|
43
53
|
installedBefore: before,
|
|
44
54
|
skipUnsupported: tools.length > 1,
|
|
45
55
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-tool-install.js","sourceRoot":"","sources":["../../src/lib/multi-tool-install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAOnC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAChH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EAEd,gBAAgB,EAEhB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAc,aAAa,EAAE,MAAM,YAAY,CAAC;AA8BvD
|
|
1
|
+
{"version":3,"file":"multi-tool-install.js","sourceRoot":"","sources":["../../src/lib/multi-tool-install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAOnC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAChH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EACd,cAAc,EAEd,gBAAgB,EAEhB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAc,aAAa,EAAE,MAAM,YAAY,CAAC;AA8BvD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,aAA0B,EAC1B,KAAgD,EAChD,OAA4G;IAE5G,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5E,mGAAmG;IACnG,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;QAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoC,CAAC;QAC5D,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YACpD,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClG,IAAI,SAAS,IAAI,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC7G,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,+FAA+F;IAC/F,mDAAmD;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnG,IAAI,aAAa,GAAG,CAAC;QAAE,OAAO,CAAC,UAAU,EAAE,CAAC,eAAe,aAAa,cAAc,CAAC,CAAC;IACxF,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC;IAEtD,MAAM,WAAW,GAAwB,EAAE,CAAC;IAC5C,IAAI,CAAC;QACH,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;YACtC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;YACf,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE;gBAC7C,GAAG,cAAc;gBACjB,OAAO;gBACP,KAAK;gBACL,eAAe,EAAE,MAAM;gBACvB,eAAe,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC;aAClC,CAAC,CAAC;YACH,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,wBAAwB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACjF,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAAE,MAAM,mBAAmB,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACpH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,gGAAgG;QAChG,IAAI,KAAK,YAAY,gBAAgB,IAAI,KAAK,CAAC,WAAW;YAAE,MAAM,KAAK,CAAC;QACxE,IAAI,CAAC;YACH,IAAI,QAA8B,CAAC;YACnC,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;gBACpC,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAChD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzD,KAAK,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,KAAK;oBACxB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAE;oBAClB,MAAM;iBACP,CAAC,CAAC,CAAC;gBACJ,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpG,OAAO,CAAC,UAAU,EAAE,CAAC,2BAA2B,IAAI,mDAAmD,CAAC,CAAC;oBACzG,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBACjC,OAAO,CAAC,UAAU,EAAE,CAAC,gCAAgC,KAAK,CAAC,MAAM,2BAA2B,IAAI,KAAK,CAAC,CAAC;gBACvG,QAAQ,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,IAAI,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE;oBAC5G,GAAG,cAAc;oBACjB,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,aAAsB,EAAE,CAAC;YAChC,OAAO,CAAC,UAAU,EAAE,CAAC,kDAAkD,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACxG,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAiB,EACjB,SAAmB,EACnB,KAAkC,EAClC,OAAoE;IAEpE,8FAA8F;IAC9F,4FAA4F;IAC5F,2EAA2E;IAC3E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC3C,MAAM,SAAS,GAAG,CAAC,eAAwE,EAAE,EAAE,EAAE;QAC/F,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,YAAY,EAAE,CAAC;YACnD,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;gBACpC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACvF,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoC,CAAC;IACzD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;QAC9C,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC;QACxC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3G,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YAC1C,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3G,MAAM,OAAO,GAAG,KAAK;aAClB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aAC5E,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QACpF,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACzB,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;YAC/D,MAAM,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACvE,CAAC;QACD,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,KAAK,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC;QAC1D,OAAO,CAAC,UAAU,EAAE,CAAC,WAAW,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,qBAAqB,CAAC,CAAC;IAChH,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,mBAAmB,CAChC,WAAgC,EAChC,KAAgD,EAChD,MAAgB,EAChB,UAAkB;IAElB,IAAI,QAAQ,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QAChE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAC9B,KAAK,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YAChE,IAAI,CAAC,SAAS,IAAI,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC;gBAAE,SAAS;YAC/D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YAC7D,IAAI,QAAQ,IAAI,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;gBAAE,SAAS;YAC5E,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;YAC3E,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IACD,IAAI,OAAO;QAAE,MAAM,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAC5B,KAAuB,EACvB,OAAuB,EACvB,QAAiB,EACjB,KAAwB;IAExB,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAI,WAAW,kBAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAClE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,IAAI,cAAc,CACvB,GAAG,MAAM,iEAAiE,KAAK,CAAC,OAAO,GAAG,EAC1F;YACE,OAAO,EAAE,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC;YACzC,IAAI,EAAE,sEAAsE;SAC7E,CACF,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC;IACtF,OAAO,IAAI,cAAc,CAAC,GAAG,MAAM,WAAW,SAAS,8BAA8B,KAAK,CAAC,OAAO,IAAI,EAAE;QACtG,OAAO,EAAE,aAAa,CAAC,aAAa,WAAW,EAAE,EAAE,KAAK,CAAC;QACzD,IAAI,EAAE,6CAA6C;KACpD,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,IAAiB,EAAE,OAAgB;IAC3D,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,KAAK,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC;YAAE,SAAS;QAClG,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC;QAC1G,IAAI,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,MAAM,OAAO,GACX,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBACjF,OAAO,OAAO,CAAC,IAAI,0BAA0B,CAAC;YAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACrF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IACD,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACtG,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Offline mode: the global `--offline` flag. `cli.tsx` reads it from the raw
|
|
3
|
+
* arguments before anything runs (the JSON update check runs before Pastel
|
|
4
|
+
* parses), and Pastel declares it so every command accepts it and lists it in
|
|
5
|
+
* its help. Registry reads come from the cache of any age, and every other
|
|
6
|
+
* ATK API call fails at once instead of trying the network.
|
|
7
|
+
*/
|
|
8
|
+
/** The program options `cli.tsx` declares to Pastel, so every command accepts them and lists them in its help. */
|
|
9
|
+
export declare const GLOBAL_OPTIONS: readonly [{
|
|
10
|
+
readonly description: "Read the registry from the local cache and never call the ATK API";
|
|
11
|
+
readonly flags: "--offline";
|
|
12
|
+
}];
|
|
13
|
+
/** Whether this run is offline (`--offline`). */
|
|
14
|
+
export declare function isOffline(): boolean;
|
|
15
|
+
/** Whether the raw arguments ask for offline mode. Arguments after `--` are values. */
|
|
16
|
+
export declare function isOfflineRun(argv: readonly string[]): boolean;
|
|
17
|
+
/** Set offline mode for the rest of the run. Also used by tests to reset it. */
|
|
18
|
+
export declare function setOffline(value: boolean): void;
|
|
19
|
+
//# sourceMappingURL=offline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offline.d.ts","sourceRoot":"","sources":["../../src/lib/offline.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,kHAAkH;AAClH,eAAO,MAAM,cAAc;;;EAEjB,CAAC;AAIX,iDAAiD;AACjD,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,uFAAuF;AACvF,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAG7D;AAED,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAE/C"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Offline mode: the global `--offline` flag. `cli.tsx` reads it from the raw
|
|
3
|
+
* arguments before anything runs (the JSON update check runs before Pastel
|
|
4
|
+
* parses), and Pastel declares it so every command accepts it and lists it in
|
|
5
|
+
* its help. Registry reads come from the cache of any age, and every other
|
|
6
|
+
* ATK API call fails at once instead of trying the network.
|
|
7
|
+
*/
|
|
8
|
+
/** The program options `cli.tsx` declares to Pastel, so every command accepts them and lists them in its help. */
|
|
9
|
+
export const GLOBAL_OPTIONS = [
|
|
10
|
+
{ description: 'Read the registry from the local cache and never call the ATK API', flags: '--offline' },
|
|
11
|
+
];
|
|
12
|
+
let offline = false;
|
|
13
|
+
/** Whether this run is offline (`--offline`). */
|
|
14
|
+
export function isOffline() {
|
|
15
|
+
return offline;
|
|
16
|
+
}
|
|
17
|
+
/** Whether the raw arguments ask for offline mode. Arguments after `--` are values. */
|
|
18
|
+
export function isOfflineRun(argv) {
|
|
19
|
+
const end = argv.indexOf('--');
|
|
20
|
+
return (end === -1 ? argv : argv.slice(0, end)).includes('--offline');
|
|
21
|
+
}
|
|
22
|
+
/** Set offline mode for the rest of the run. Also used by tests to reset it. */
|
|
23
|
+
export function setOffline(value) {
|
|
24
|
+
offline = value;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=offline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offline.js","sourceRoot":"","sources":["../../src/lib/offline.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,kHAAkH;AAClH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,EAAE,WAAW,EAAE,mEAAmE,EAAE,KAAK,EAAE,WAAW,EAAE;CAChG,CAAC;AAEX,IAAI,OAAO,GAAG,KAAK,CAAC;AAEpB,iDAAiD;AACjD,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,YAAY,CAAC,IAAuB;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACxE,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,GAAG,KAAK,CAAC;AAClB,CAAC"}
|
|
@@ -4,13 +4,15 @@ import { type ConfigEntryFailure } from './checksum.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* Each config entry, memory-template block or hook group that installed assets other than one
|
|
6
6
|
* asset placed for a tool, by {@link configEntryKey}, mapped to the checksums those owners recorded
|
|
7
|
-
* for it (`
|
|
7
|
+
* for it, each with its version (`checksum` undefined for an owner that recorded none, such as a
|
|
8
|
+
* memory-template).
|
|
8
9
|
*/
|
|
9
|
-
export type ConfigEntryOwners = Map<string, Array<
|
|
10
|
+
export type ConfigEntryOwners = Map<string, Array<Pick<PlacedConfigEntry, 'checksum' | 'checksumVersion'>>>;
|
|
10
11
|
/** A config entry, memory-template block or hook group an asset placed for one tool. */
|
|
11
12
|
export interface PlacedConfigEntry {
|
|
12
13
|
/** The value's checksum the asset recorded; absent for an entry the adapter rebuilt. */
|
|
13
14
|
checksum?: string;
|
|
15
|
+
checksumVersion?: ConfigEntry['checksumVersion'];
|
|
14
16
|
command?: string;
|
|
15
17
|
file: string;
|
|
16
18
|
key: string;
|
|
@@ -46,9 +48,10 @@ export declare function pathsOwnedByOthers(lockfile: Pick<Lockfile, 'assets'>, a
|
|
|
46
48
|
* except that an entry holding the recorded value of another asset that owns it is not drift. Two
|
|
47
49
|
* owners of one entry with different values can't both match, so without this sync would rewrite
|
|
48
50
|
* each in turn and audit would always report one. An owner that recorded no checksum doesn't count,
|
|
49
|
-
* so a hand-edited entry is still reported.
|
|
51
|
+
* so a hand-edited entry is still reported. An entry whose file is outside the scope's directories
|
|
52
|
+
* is refused ({@link configEntryPath}) rather than read.
|
|
50
53
|
*/
|
|
51
|
-
export declare function verifyOwnConfigEntries(entries: ConfigEntry[], asset: Pick<InstalledAsset, 'name' | 'org' | 'type'>, lockfile: Pick<Lockfile, 'assets'>, adapter: Adapter, projectDir: string): Promise<ConfigEntryFailure[]>;
|
|
54
|
+
export declare function verifyOwnConfigEntries(entries: ConfigEntry[], asset: Pick<InstalledAsset, 'name' | 'org' | 'type' | 'userConfigDirs'>, lockfile: Pick<Lockfile, 'assets'>, adapter: Adapter, projectDir: string): Promise<ConfigEntryFailure[]>;
|
|
52
55
|
/**
|
|
53
56
|
* Verify the files `asset` placed, like {@link verifyChecksums}, except that files holding the
|
|
54
57
|
* content another asset that places them recorded are not drift. Like {@link verifyOwnConfigEntries}:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owned-paths.d.ts","sourceRoot":"","sources":["../../src/lib/owned-paths.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAInF,OAAO,EAAE,KAAK,kBAAkB,EAAyD,MAAM,eAAe,CAAC;AAI/G
|
|
1
|
+
{"version":3,"file":"owned-paths.d.ts","sourceRoot":"","sources":["../../src/lib/owned-paths.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAInF,OAAO,EAAE,KAAK,kBAAkB,EAAyD,MAAM,eAAe,CAAC;AAI/G;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAE5G,wFAAwF;AACxF,MAAM,WAAW,iBAAiB;IAChC,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAClC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC,EACpD,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,GACjB,iBAAiB,CAYnB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,GACjB,iBAAiB,EAAE,CAWrB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAClC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC,EACpD,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,GACjB,GAAG,CAAC,MAAM,CAAC,CAQb;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,gBAAgB,CAAC,EACvE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAClC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAc/B;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAChD,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC,EACpD,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAClC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAmBpE"}
|
package/build/lib/owned-paths.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { readFile } from 'node:fs/promises';
|
|
2
|
-
import { adapterAsPlaced, resolveInstalledPaths } from './adapter.js';
|
|
2
|
+
import { adapterAsPlaced, configEntryPath, resolveInstalledPaths } from './adapter.js';
|
|
3
3
|
import { isExcludedForTool, supportsType } from './asset-tools.js';
|
|
4
4
|
import { matchesChecksum, verifyChecksums, verifyConfigEntries } from './checksum.js';
|
|
5
5
|
import { getConfigEntriesForTool } from './config-entries.js';
|
|
@@ -18,7 +18,7 @@ export function configEntriesOwnedByOthers(lockfile, asset, adapter, projectDir)
|
|
|
18
18
|
continue;
|
|
19
19
|
for (const entry of configEntriesToRemove(other, adapter, projectDir)) {
|
|
20
20
|
const key = configEntryKey(entry, projectDir);
|
|
21
|
-
owners.set(key, [...(owners.get(key) ?? []), entry
|
|
21
|
+
owners.set(key, [...(owners.get(key) ?? []), recordedChecksum(entry)]);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
return owners;
|
|
@@ -32,7 +32,13 @@ export function configEntriesOwnedByOthers(lockfile, asset, adapter, projectDir)
|
|
|
32
32
|
export function configEntriesToRemove(asset, adapter, projectDir) {
|
|
33
33
|
const ownEntries = getConfigEntriesForTool(asset, adapter);
|
|
34
34
|
return ownEntries.length > 0
|
|
35
|
-
? ownEntries.map((e) => ({
|
|
35
|
+
? ownEntries.map((e) => ({
|
|
36
|
+
checksum: e.checksum,
|
|
37
|
+
checksumVersion: e.checksumVersion,
|
|
38
|
+
command: e.command,
|
|
39
|
+
file: e.file,
|
|
40
|
+
key: e.key,
|
|
41
|
+
}))
|
|
36
42
|
: resolveInstalledPaths(asset, adapterAsPlaced(adapter, asset), projectDir).configEntries;
|
|
37
43
|
}
|
|
38
44
|
/**
|
|
@@ -42,7 +48,7 @@ export function configEntriesToRemove(asset, adapter, projectDir) {
|
|
|
42
48
|
* An owner that recorded no checksum (a memory-template's block) can't be told apart, so it keeps it.
|
|
43
49
|
*/
|
|
44
50
|
export async function holdsAnotherOwnersValue(entry, owners, projectDir) {
|
|
45
|
-
if ((owners.get(configEntryKey(entry, projectDir)) ?? []).
|
|
51
|
+
if ((owners.get(configEntryKey(entry, projectDir)) ?? []).some((owner) => owner.checksum === undefined))
|
|
46
52
|
return true;
|
|
47
53
|
return holdsAnotherOwnersRecordedValue(entry, owners, projectDir);
|
|
48
54
|
}
|
|
@@ -65,12 +71,14 @@ export function pathsOwnedByOthers(lockfile, asset, adapter, projectDir) {
|
|
|
65
71
|
* except that an entry holding the recorded value of another asset that owns it is not drift. Two
|
|
66
72
|
* owners of one entry with different values can't both match, so without this sync would rewrite
|
|
67
73
|
* each in turn and audit would always report one. An owner that recorded no checksum doesn't count,
|
|
68
|
-
* so a hand-edited entry is still reported.
|
|
74
|
+
* so a hand-edited entry is still reported. An entry whose file is outside the scope's directories
|
|
75
|
+
* is refused ({@link configEntryPath}) rather than read.
|
|
69
76
|
*/
|
|
70
77
|
export async function verifyOwnConfigEntries(entries, asset, lockfile, adapter, projectDir) {
|
|
71
78
|
const failures = [];
|
|
72
79
|
let owners;
|
|
73
80
|
for (const entry of entries) {
|
|
81
|
+
configEntryPath(entry, asset, adapter, projectDir);
|
|
74
82
|
const [failure] = await verifyConfigEntries([entry], projectDir);
|
|
75
83
|
if (!failure)
|
|
76
84
|
continue;
|
|
@@ -129,12 +137,15 @@ function filesPlacedByOthers(lockfile, asset, adapter, projectDir) {
|
|
|
129
137
|
file.checksum,
|
|
130
138
|
])));
|
|
131
139
|
}
|
|
132
|
-
/**
|
|
140
|
+
/**
|
|
141
|
+
* Whether `entry` holds the value another owner of it recorded a checksum for, judged by that
|
|
142
|
+
* owner's checksum version: an owner recorded before deep checksums matches by its legacy digest.
|
|
143
|
+
*/
|
|
133
144
|
async function holdsAnotherOwnersRecordedValue(entry, owners, projectDir) {
|
|
134
|
-
for (const checksum of owners.get(configEntryKey(entry, projectDir)) ?? []) {
|
|
145
|
+
for (const { checksum, checksumVersion } of owners.get(configEntryKey(entry, projectDir)) ?? []) {
|
|
135
146
|
if (checksum === undefined)
|
|
136
147
|
continue;
|
|
137
|
-
const failures = await verifyConfigEntries([{ ...entry, checksum }], projectDir);
|
|
148
|
+
const failures = await verifyConfigEntries([{ ...entry, checksum, checksumVersion }], projectDir);
|
|
138
149
|
if (failures.length === 0)
|
|
139
150
|
return true;
|
|
140
151
|
}
|
|
@@ -159,4 +170,8 @@ function otherAssetsPlacedFor(lockfile, asset, adapter) {
|
|
|
159
170
|
!isExcludedForTool(other, adapter.tool) &&
|
|
160
171
|
supportsType(adapter, other.type));
|
|
161
172
|
}
|
|
173
|
+
/** The checksum `entry` recorded and its version, as a {@link ConfigEntryOwners} owner. */
|
|
174
|
+
function recordedChecksum(entry) {
|
|
175
|
+
return { checksum: entry.checksum, checksumVersion: entry.checksumVersion };
|
|
176
|
+
}
|
|
162
177
|
//# sourceMappingURL=owned-paths.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owned-paths.js","sourceRoot":"","sources":["../../src/lib/owned-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAK5C,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"owned-paths.js","sourceRoot":"","sources":["../../src/lib/owned-paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,18 @@ export type SafeParseJsonResult<T> = {
|
|
|
9
9
|
error: string;
|
|
10
10
|
success: false;
|
|
11
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* Format Zod issues as one line that names each failing field,
|
|
14
|
+
* e.g. `description: Invalid input: expected string, received undefined`.
|
|
15
|
+
* An issue at the root carries no path prefix.
|
|
16
|
+
*
|
|
17
|
+
* @param issues - The issues of a failed `safeParse`
|
|
18
|
+
* @returns The issues as `path: message`, joined with `; `
|
|
19
|
+
*/
|
|
20
|
+
export declare function formatZodIssues(issues: readonly {
|
|
21
|
+
message: string;
|
|
22
|
+
path: readonly PropertyKey[];
|
|
23
|
+
}[]): string;
|
|
12
24
|
/**
|
|
13
25
|
* Parse a raw JSON string and validate against a Zod schema.
|
|
14
26
|
* Throws with a formatted error message on failure.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-json.d.ts","sourceRoot":"","sources":["../../src/lib/parse-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;AAEpG;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,CAczF;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAiB3G"}
|
|
1
|
+
{"version":3,"file":"parse-json.d.ts","sourceRoot":"","sources":["../../src/lib/parse-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;AAEpG;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAA;CAAE,EAAE,GAAG,MAAM,CAI5G;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,CAczF;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAiB3G"}
|
package/build/lib/parse-json.js
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format Zod issues as one line that names each failing field,
|
|
3
|
+
* e.g. `description: Invalid input: expected string, received undefined`.
|
|
4
|
+
* An issue at the root carries no path prefix.
|
|
5
|
+
*
|
|
6
|
+
* @param issues - The issues of a failed `safeParse`
|
|
7
|
+
* @returns The issues as `path: message`, joined with `; `
|
|
8
|
+
*/
|
|
9
|
+
export function formatZodIssues(issues) {
|
|
10
|
+
return issues
|
|
11
|
+
.map((issue) => (issue.path.length > 0 ? `${issue.path.map(String).join('.')}: ${issue.message}` : issue.message))
|
|
12
|
+
.join('; ');
|
|
13
|
+
}
|
|
1
14
|
/**
|
|
2
15
|
* Parse a raw JSON string and validate against a Zod schema.
|
|
3
16
|
* Throws with a formatted error message on failure.
|
|
@@ -18,7 +31,7 @@ export function parseAndValidate(raw, schema, context) {
|
|
|
18
31
|
}
|
|
19
32
|
const result = schema.safeParse(parsed);
|
|
20
33
|
if (!result.success) {
|
|
21
|
-
throw new Error(`${context}: ${result.error.issues
|
|
34
|
+
throw new Error(`${context}: ${formatZodIssues(result.error.issues)}`);
|
|
22
35
|
}
|
|
23
36
|
return result.data;
|
|
24
37
|
}
|
|
@@ -43,7 +56,7 @@ export function safeParseJson(raw, schema, context) {
|
|
|
43
56
|
const result = schema.safeParse(parsed);
|
|
44
57
|
if (!result.success) {
|
|
45
58
|
return {
|
|
46
|
-
error: `${context}: ${result.error.issues
|
|
59
|
+
error: `${context}: ${formatZodIssues(result.error.issues)}`,
|
|
47
60
|
success: false,
|
|
48
61
|
};
|
|
49
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-json.js","sourceRoot":"","sources":["../../src/lib/parse-json.ts"],"names":[],"mappings":"AAOA;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAI,GAAW,EAAE,MAAoB,EAAE,OAAe;IACpF,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,gBAAgB,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"parse-json.js","sourceRoot":"","sources":["../../src/lib/parse-json.ts"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoE;IAClG,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SACjH,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAI,GAAW,EAAE,MAAoB,EAAE,OAAe;IACpF,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,gBAAgB,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,KAAK,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAI,GAAW,EAAE,MAAoB,EAAE,OAAe;IACjF,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO;YACL,KAAK,EAAE,GAAG,OAAO,KAAK,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAC5D,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Argument, Option } from 'commander';
|
|
2
|
+
import type { ArgumentSpec, OptionSpec } from './internal-types.js';
|
|
3
|
+
/** commander's arguments from their specs, with no Zod (ATK-605). */
|
|
4
|
+
export declare function toArguments(specs: readonly ArgumentSpec[]): Argument[];
|
|
5
|
+
/** commander's options from their specs, with no Zod (ATK-605). */
|
|
6
|
+
export declare function toOptions(specs: readonly OptionSpec[]): Option[];
|
|
7
|
+
//# sourceMappingURL=commander-specs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commander-specs.d.ts","sourceRoot":"","sources":["../../../src/lib/pastel/commander-specs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEpE,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,QAAQ,EAAE,CA2BtE;AAED,mEAAmE;AACnE,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,EAAE,CA8BhE"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Argument, Option } from 'commander';
|
|
2
|
+
/** commander's arguments from their specs, with no Zod (ATK-605). */
|
|
3
|
+
export function toArguments(specs) {
|
|
4
|
+
return specs.map((spec) => {
|
|
5
|
+
const argument = new Argument(spec.name, spec.description);
|
|
6
|
+
if (spec.parse === 'number') {
|
|
7
|
+
argument.argParser((value) => Number.parseFloat(value));
|
|
8
|
+
}
|
|
9
|
+
if (spec.parse === 'number-list') {
|
|
10
|
+
// The default itself (not a list equal to it) is what commander passes before the first value.
|
|
11
|
+
argument.argParser((value, previousValue) => {
|
|
12
|
+
const joinPreviousValue = previousValue !== spec.defaultValue;
|
|
13
|
+
return joinPreviousValue ? [...(previousValue ?? []), Number.parseFloat(value)] : [Number.parseFloat(value)];
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
if (spec.choices) {
|
|
17
|
+
argument.choices(spec.choices);
|
|
18
|
+
}
|
|
19
|
+
if (spec.defaultValue !== undefined) {
|
|
20
|
+
argument.default(spec.defaultValue, spec.defaultValueDescription);
|
|
21
|
+
}
|
|
22
|
+
return argument;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
/** commander's options from their specs, with no Zod (ATK-605). */
|
|
26
|
+
export function toOptions(specs) {
|
|
27
|
+
return specs.map((spec) => {
|
|
28
|
+
const option = new Option(spec.flags, spec.description);
|
|
29
|
+
// A set's default is carried as its members.
|
|
30
|
+
const defaultValue = spec.parse === 'set' && Array.isArray(spec.defaultValue) ? new Set(spec.defaultValue) : spec.defaultValue;
|
|
31
|
+
if (spec.parse === 'number') {
|
|
32
|
+
option.argParser((value) => Number.parseFloat(value));
|
|
33
|
+
}
|
|
34
|
+
if (spec.choices) {
|
|
35
|
+
option.choices(spec.choices);
|
|
36
|
+
}
|
|
37
|
+
if (spec.parse === 'set') {
|
|
38
|
+
// By identity, unlike upstream: values that add up to the default (`--tag a --tag b`) are still values.
|
|
39
|
+
option.argParser((value, previousValue) => {
|
|
40
|
+
const joinPreviousValue = previousValue instanceof Set && previousValue !== defaultValue;
|
|
41
|
+
return joinPreviousValue ? new Set([...previousValue, value]) : new Set([value]);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (defaultValue !== undefined) {
|
|
45
|
+
option.default(defaultValue, spec.defaultValueDescription);
|
|
46
|
+
}
|
|
47
|
+
return option;
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=commander-specs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commander-specs.js","sourceRoot":"","sources":["../../../src/lib/pastel/commander-specs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export default function
|
|
1
|
+
import { type ArgumentSpec, type CommandArguments } from './internal-types.js';
|
|
2
|
+
/** Describe a command's Zod `args` as commander argument specs (`toArguments` in `commander-specs.ts` builds them). */
|
|
3
|
+
export default function describeArguments(argumentsSchema: CommandArguments): ArgumentSpec[];
|
|
4
4
|
//# sourceMappingURL=generate-arguments.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-arguments.d.ts","sourceRoot":"","sources":["../../../src/lib/pastel/generate-arguments.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate-arguments.d.ts","sourceRoot":"","sources":["../../../src/lib/pastel/generate-arguments.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAqB/E,uHAAuH;AACvH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,eAAe,EAAE,gBAAgB,GAAG,YAAY,EAAE,CA0G3F"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { Argument } from 'commander';
|
|
2
1
|
import decamelize from 'decamelize';
|
|
3
|
-
import { isDeepStrictEqual } from 'node:util';
|
|
4
2
|
import { ZodArray, ZodDefault, ZodEnum, ZodNumber, ZodOptional, ZodTuple } from 'zod';
|
|
5
3
|
import {} from './internal-types.js';
|
|
6
4
|
import {} from './types.js';
|
|
@@ -18,7 +16,8 @@ const getDescription = (value) => {
|
|
|
18
16
|
const getDefaultValueDescription = (value) => {
|
|
19
17
|
return getConfig(value)?.defaultValueDescription;
|
|
20
18
|
};
|
|
21
|
-
|
|
19
|
+
/** Describe a command's Zod `args` as commander argument specs (`toArguments` in `commander-specs.ts` builds them). */
|
|
20
|
+
export default function describeArguments(argumentsSchema) {
|
|
22
21
|
let isOptionalByDefault = false;
|
|
23
22
|
let arrayDefaultValue;
|
|
24
23
|
let arrayName = getName(argumentsSchema.description);
|
|
@@ -65,47 +64,51 @@ export default function generateArguments(argumentsSchema) {
|
|
|
65
64
|
name = getName(argumentSchema.description) ?? name;
|
|
66
65
|
}
|
|
67
66
|
name = decamelize(name ?? 'arg', { separator: '-' });
|
|
68
|
-
const argument =
|
|
67
|
+
const argument = spec(isOptional ? `[${name}]` : `<${name}>`, description);
|
|
69
68
|
if (argumentSchema instanceof ZodNumber) {
|
|
70
|
-
argument.
|
|
69
|
+
argument.parse = 'number';
|
|
71
70
|
}
|
|
72
71
|
if (argumentSchema instanceof ZodEnum) {
|
|
73
|
-
argument.choices
|
|
74
|
-
}
|
|
75
|
-
if (defaultValue !== undefined) {
|
|
76
|
-
argument.default(defaultValue, defaultValueDescription);
|
|
72
|
+
argument.choices = Object.values(argumentSchema._zod.def.entries).map(String);
|
|
77
73
|
}
|
|
74
|
+
setDefault(argument, defaultValue, defaultValueDescription);
|
|
78
75
|
arguments_.push(argument);
|
|
79
76
|
}
|
|
80
77
|
const restSchema = argumentsSchema._zod.def.rest;
|
|
81
78
|
if (restSchema) {
|
|
82
79
|
const name = getName(restSchema.description) ?? 'arg';
|
|
83
|
-
const argument =
|
|
80
|
+
const argument = spec(`[${name}...]`, getDescription(restSchema.description));
|
|
81
|
+
// No default, so every value joins the list.
|
|
84
82
|
if (restSchema instanceof ZodNumber) {
|
|
85
|
-
argument.
|
|
86
|
-
return [...(previousValue ?? []), Number.parseFloat(value)];
|
|
87
|
-
});
|
|
83
|
+
argument.parse = 'number-list';
|
|
88
84
|
}
|
|
89
85
|
if (restSchema instanceof ZodEnum) {
|
|
90
|
-
argument.choices
|
|
86
|
+
argument.choices = Object.values(restSchema._zod.def.entries).map(String);
|
|
91
87
|
}
|
|
92
88
|
arguments_.push(argument);
|
|
93
89
|
}
|
|
94
90
|
}
|
|
95
91
|
if (argumentsSchema instanceof ZodArray) {
|
|
96
92
|
const name = arrayName ?? 'arg';
|
|
97
|
-
const argument =
|
|
98
|
-
|
|
99
|
-
argument.default(arrayDefaultValue, arrayDefaultValueDescription);
|
|
100
|
-
}
|
|
93
|
+
const argument = spec(isOptionalByDefault ? `[${name}...]` : `<${name}...>`, arrayDescription);
|
|
94
|
+
setDefault(argument, arrayDefaultValue, arrayDefaultValueDescription);
|
|
101
95
|
if (argumentsSchema.element instanceof ZodNumber) {
|
|
102
|
-
argument.
|
|
103
|
-
const joinPreviousValue = !isDeepStrictEqual(previousValue, arrayDefaultValue);
|
|
104
|
-
return joinPreviousValue ? [...(previousValue ?? []), Number.parseFloat(value)] : [Number.parseFloat(value)];
|
|
105
|
-
});
|
|
96
|
+
argument.parse = 'number-list';
|
|
106
97
|
}
|
|
107
98
|
arguments_.push(argument);
|
|
108
99
|
}
|
|
109
100
|
return arguments_;
|
|
110
101
|
}
|
|
102
|
+
function setDefault(argument, defaultValue, defaultValueDescription) {
|
|
103
|
+
if (defaultValue === undefined) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
argument.defaultValue = defaultValue;
|
|
107
|
+
if (defaultValueDescription) {
|
|
108
|
+
argument.defaultValueDescription = defaultValueDescription;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function spec(name, description) {
|
|
112
|
+
return description ? { description, name } : { name };
|
|
113
|
+
}
|
|
111
114
|
//# sourceMappingURL=generate-arguments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-arguments.js","sourceRoot":"","sources":["../../../src/lib/pastel/generate-arguments.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"generate-arguments.js","sourceRoot":"","sources":["../../../src/lib/pastel/generate-arguments.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { type Command as CommanderCommand } from 'commander';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
import type { CommandSpec } from './internal-types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Set up a commander command from its spec. Its module is imported only when the command runs, and Ink with it
|
|
5
|
+
* (`render-command.tsx`), so `--help` and `--version` load neither (ATK-605).
|
|
6
|
+
*/
|
|
7
|
+
declare const generateCommand: (commanderCommand: CommanderCommand, pastelCommand: CommandSpec, { commandsDirectory }: {
|
|
8
|
+
commandsDirectory: string;
|
|
7
9
|
}) => void;
|
|
8
10
|
export default generateCommand;
|
|
9
11
|
//# sourceMappingURL=generate-command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-command.d.ts","sourceRoot":"","sources":["../../../src/lib/pastel/generate-command.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate-command.d.ts","sourceRoot":"","sources":["../../../src/lib/pastel/generate-command.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAI7D,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvE;;;GAGG;AACH,QAAA,MAAM,eAAe,GACnB,kBAAkB,gBAAgB,EAClC,eAAe,WAAW,EAC1B,uBAAuB;IAAE,iBAAiB,EAAE,MAAM,CAAA;CAAE,SA0CrD,CAAC;AAEF,eAAe,eAAe,CAAC"}
|