@pagopa/dx-cli 0.26.0 → 0.26.2
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.
|
@@ -1,13 +1,27 @@
|
|
|
1
|
+
import type { AzureConfig } from "@pagopa/dx-savemoney";
|
|
1
2
|
import { Command } from "commander";
|
|
3
|
+
import { z } from "zod";
|
|
2
4
|
export declare const makeSavemoneyCommand: () => Command;
|
|
5
|
+
declare const SourceSchema: z.ZodEnum<{
|
|
6
|
+
custom: "custom";
|
|
7
|
+
all: "all";
|
|
8
|
+
advisor: "advisor";
|
|
9
|
+
}>;
|
|
10
|
+
type SourceOption = z.infer<typeof SourceSchema>;
|
|
3
11
|
/**
|
|
4
12
|
* Parses the `--source` option via a zod enum, accepting `all`, `advisor`,
|
|
5
13
|
* or `custom` and rejecting any other value with a Commander-friendly error.
|
|
6
14
|
*/
|
|
7
|
-
export declare function parseSourceOption(value: string):
|
|
15
|
+
export declare function parseSourceOption(value: string): SourceOption;
|
|
8
16
|
/**
|
|
9
17
|
* Parses an array of "key=value" strings (from commander variadic option) into a Map<string, string>.
|
|
10
18
|
* Returns an empty Map when the option is not provided or empty.
|
|
11
19
|
* Supports values that contain "=" (only the first "=" is treated as separator).
|
|
12
20
|
*/
|
|
13
21
|
export declare function parseTagsOption(tagsOption: string[] | undefined): Map<string, string>;
|
|
22
|
+
/**
|
|
23
|
+
* Resolves the source filter preserving the difference between an omitted
|
|
24
|
+
* option (respect config/defaults) and an explicit `--source all` override.
|
|
25
|
+
*/
|
|
26
|
+
export declare function resolveSourcesOption(option: SourceOption | undefined, configSources: AzureConfig["sources"]): AzureConfig["sources"];
|
|
27
|
+
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { azure, loadConfig } from "@pagopa/dx-savemoney";
|
|
1
|
+
import { azure, AZURE_SOURCE_VALUES, loadConfig } from "@pagopa/dx-savemoney";
|
|
2
2
|
import { Command, InvalidArgumentError } from "commander";
|
|
3
3
|
import { oraPromise } from "ora";
|
|
4
4
|
import { z } from "zod";
|
|
@@ -10,7 +10,8 @@ export const makeSavemoneyCommand = () => new Command("savemoney")
|
|
|
10
10
|
.option("-l, --location <string>", "Preferred Azure location for resources (overrides config file)", "italynorth")
|
|
11
11
|
.option("-d, --days <number>", "Number of days for metrics analysis (overrides config file)", "30")
|
|
12
12
|
.option("-t, --tags <tags...>", "Filter findings by resource tags (key=value key2=value2). Advisor subscription-level findings remain global.")
|
|
13
|
-
.option("-s, --source <source>", "Restrict findings to a single source: 'advisor', 'custom', or 'all' (
|
|
13
|
+
.option("-s, --source <source>", "Restrict findings to a single source: 'advisor', 'custom', or 'all' (defaults to config file or all)", parseSourceOption)
|
|
14
|
+
.option("--no-pricing", "Disable Azure Retail Prices enrichment (skips custom cost-at-risk estimates)")
|
|
14
15
|
.action(async function (options) {
|
|
15
16
|
const { verbose } = this.optsWithGlobals();
|
|
16
17
|
try {
|
|
@@ -18,14 +19,19 @@ export const makeSavemoneyCommand = () => new Command("savemoney")
|
|
|
18
19
|
const config = await loadConfig(options.config);
|
|
19
20
|
// Parse tag filter
|
|
20
21
|
const filterTags = parseTagsOption(options.tags);
|
|
22
|
+
const cliDays = Number.parseInt(options.days, 10);
|
|
21
23
|
const finalConfig = {
|
|
22
24
|
...config,
|
|
23
25
|
filterTags,
|
|
24
|
-
preferredLocation:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
preferredLocation: this.getOptionValueSource("location") === "cli"
|
|
27
|
+
? options.location
|
|
28
|
+
: config.preferredLocation,
|
|
29
|
+
...(options.pricing === false ? { pricing: { enabled: false } } : {}),
|
|
30
|
+
sources: resolveSourcesOption(options.source, config.sources),
|
|
31
|
+
timespanDays: this.getOptionValueSource("days") === "cli" &&
|
|
32
|
+
!Number.isNaN(cliDays)
|
|
33
|
+
? cliDays
|
|
34
|
+
: config.timespanDays,
|
|
29
35
|
verbose: verbose ?? false,
|
|
30
36
|
};
|
|
31
37
|
// Run analysis showing a progress spinner on stderr so the CLI doesn't
|
|
@@ -44,7 +50,7 @@ export const makeSavemoneyCommand = () => new Command("savemoney")
|
|
|
44
50
|
: new Error(`Analysis failed: ${String(error)}`));
|
|
45
51
|
}
|
|
46
52
|
});
|
|
47
|
-
const SourceSchema = z.enum([
|
|
53
|
+
const SourceSchema = z.enum([...AZURE_SOURCE_VALUES, "all"]);
|
|
48
54
|
/**
|
|
49
55
|
* Parses the `--source` option via a zod enum, accepting `all`, `advisor`,
|
|
50
56
|
* or `custom` and rejecting any other value with a Commander-friendly error.
|
|
@@ -76,4 +82,14 @@ export function parseTagsOption(tagsOption) {
|
|
|
76
82
|
}
|
|
77
83
|
return result;
|
|
78
84
|
}
|
|
79
|
-
|
|
85
|
+
/**
|
|
86
|
+
* Resolves the source filter preserving the difference between an omitted
|
|
87
|
+
* option (respect config/defaults) and an explicit `--source all` override.
|
|
88
|
+
*/
|
|
89
|
+
export function resolveSourcesOption(option, configSources) {
|
|
90
|
+
if (option === undefined) {
|
|
91
|
+
return configSources;
|
|
92
|
+
}
|
|
93
|
+
return option === "all" ? [...AZURE_SOURCE_VALUES] : [option];
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZW1vbmV5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FkYXB0ZXJzL2NvbW1hbmRlci9jb21tYW5kcy9zYXZlbW9uZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDakMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHckQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxFQUFFLENBQ3ZDLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQztLQUNyQixXQUFXLENBQ1Ysd0VBQXdFLENBQ3pFO0tBQ0EsTUFBTSxDQUFDLHFCQUFxQixFQUFFLGlDQUFpQyxDQUFDO0tBQ2hFLE1BQU0sQ0FDTCx1QkFBdUIsRUFDdkIscUVBQXFFLEVBQ3JFLE9BQU8sQ0FDUjtLQUNBLE1BQU0sQ0FDTCx5QkFBeUIsRUFDekIsZ0VBQWdFLEVBQ2hFLFlBQVksQ0FDYjtLQUNBLE1BQU0sQ0FDTCxxQkFBcUIsRUFDckIsNkRBQTZELEVBQzdELElBQUksQ0FDTDtLQUNBLE1BQU0sQ0FDTCxzQkFBc0IsRUFDdEIsOEdBQThHLENBQy9HO0tBQ0EsTUFBTSxDQUNMLHVCQUF1QixFQUN2QixzR0FBc0csRUFDdEcsaUJBQWlCLENBQ2xCO0tBQ0EsTUFBTSxDQUNMLGNBQWMsRUFDZCw4RUFBOEUsQ0FDL0U7S0FDQSxNQUFNLENBQUMsS0FBSyxXQUFXLE9BQU87SUFDN0IsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQWlCLENB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SSxHQUFHLEVBQWtCLENBQUM7SUFDekMsSUFBSSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzNDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxLQUFLLE1BQU0sSUFBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMzQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxNQUFnQyxFQUNoQyxhQUFxQztJQUVyQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN6QixPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsT0FBTyxNQUFNLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBenVyZUNvbmZpZyB9IGZyb20gXCJAcGFnb3BhL2R4LXNhdmVtb25leVwiO1xuXG5pbXBvcnQgeyBhenVyZSwgQVpVUkVfU09VUkNFX1ZBTFVFUywgbG9hZENvbmZpZyB9IGZyb20gXCJAcGFnb3BhL2R4LXNhdmVtb25leVwiO1xuaW1wb3J0IHsgQ29tbWFuZCwgSW52YWxpZEFyZ3VtZW50RXJyb3IgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQgeyBvcmFQcm9taXNlIH0gZnJvbSBcIm9yYVwiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuaW1wb3J0IHsgZXhpdFdpdGhFcnJvciB9IGZyb20gXCIuLi9jb21tYW5kLWVycm9ycy5qc1wiO1xuaW1wb3J0IHsgR2xvYmFsT3B0aW9ucyB9IGZyb20gXCIuLi9nbG9iYWwtb3B0aW9ucy5qc1wiO1xuXG5leHBvcnQgY29uc3QgbWFrZVNhdmVtb25leUNvbW1hbmQgPSAoKSA9PlxuICBuZXcgQ29tbWFuZChcInNhdmVtb25leVwiKVxuICAgIC5kZXNjcmlwdGlvbihcbiAgICAgIFwiQW5hbHl6ZSBBenVyZSBzdWJzY3JpcHRpb25zIGFuZCByZXBvcnQgdW51c2VkIG9yIGluZWZmaWNpZW50IHJlc291cmNlc1wiLFxuICAgIClcbiAgICAub3B0aW9uKFwiLWMsIC0tY29uZmlnIDxwYXRoPlwiLCBcIlBhdGggdG8gWUFNTCBjb25maWd1cmF0aW9uIGZpbGVcIilcbiAgICAub3B0aW9uKFxuICAgICAgXCItZiwgLS1mb3JtYXQgPGZvcm1hdD5cIixcbiAgICAgIFwiUmVwb3J0IGZvcm1hdDoganNvbiwgdGFibGUsIGRldGFpbGVkLWpzb24sIG9yIGxpbnQgKGRlZmF1bHQ6IHRhYmxlKVwiLFxuICAgICAgXCJ0YWJsZVwiLFxuICAgIClcbiAgICAub3B0aW9uKFxuICAgICAgXCItbCwgLS1sb2NhdGlvbiA8c3RyaW5nPlwiLFxuICAgICAgXCJQcmVmZXJyZWQgQXp1cmUgbG9jYXRpb24gZm9yIHJlc291cmNlcyAob3ZlcnJpZGVzIGNvbmZpZyBmaWxlKVwiLFxuICAgICAgXCJpdGFseW5vcnRoXCIsXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICBcIi1kLCAtLWRheXMgPG51bWJlcj5cIixcbiAgICAgIFwiTnVtYmVyIG9mIGRheXMgZm9yIG1ldHJpY3MgYW5hbHlzaXMgKG92ZXJyaWRlcyBjb25maWcgZmlsZSlcIixcbiAgICAgIFwiMzBcIixcbiAgICApXG4gICAgLm9wdGlvbihcbiAgICAgIFwiLXQsIC0tdGFncyA8dGFncy4uLj5cIixcbiAgICAgIFwiRmlsdGVyIGZpbmRpbmdzIGJ5IHJlc291cmNlIHRhZ3MgKGtleT12YWx1ZSBrZXkyPXZhbHVlMikuIEFkdmlzb3Igc3Vic2NyaXB0aW9uLWxldmVsIGZpbmRpbmdzIHJlbWFpbiBnbG9iYWwuXCIsXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICBcIi1zLCAtLXNvdXJjZSA8c291cmNlPlwiLFxuICAgICAgXCJSZXN0cmljdCBmaW5kaW5ncyB0byBhIHNpbmdsZSBzb3VyY2U6ICdhZHZpc29yJywgJ2N1c3RvbScsIG9yICdhbGwnIChkZWZhdWx0cyB0byBjb25maWcgZmlsZSBvciBhbGwpXCIsXG4gICAgICBwYXJzZVNvdXJjZU9wdGlvbixcbiAgICApXG4gICAgLm9wdGlvbihcbiAgICAgIFwiLS1uby1wcmljaW5nXCIsXG4gICAgICBcIkRpc2FibGUgQXp1cmUgUmV0YWlsIFByaWNlcyBlbnJpY2htZW50IChza2lwcyBjdXN0b20gY29zdC1hdC1yaXNrIGVzdGltYXRlcylcIixcbiAgICApXG4gICAgLmFjdGlvbihhc3luYyBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgY29uc3QgeyB2ZXJib3NlIH0gPSB0aGlzLm9wdHNXaXRoR2xvYmFsczxHbG9iYWxPcHRpb25zPigpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gTG9hZCBjb25maWd1cmF0aW9uIGZyb20gWUFNTCAoaW5jbHVkZXMgc3Vic2NyaXB0aW9uSWRzLCBsb2NhdGlvbiwgdGltZXNwYW5EYXlzLCB0aHJlc2hvbGRzKVxuICAgICAgICBjb25zdCBjb25maWc6IEF6dXJlQ29uZmlnID0gYXdhaXQgbG9hZENvbmZpZyhvcHRpb25zLmNvbmZpZyk7XG5cbiAgICAgICAgLy8gUGFyc2UgdGFnIGZpbHRlclxuICAgICAgICBjb25zdCBmaWx0ZXJUYWdzID0gcGFyc2VUYWdzT3B0aW9uKG9wdGlvbnMudGFncyk7XG4gICAgICAgIGNvbnN0IGNsaURheXMgPSBOdW1iZXIucGFyc2VJbnQob3B0aW9ucy5kYXlzLCAxMCk7XG5cbiAgICAgICAgY29uc3QgZmluYWxDb25maWc6IEF6dXJlQ29uZmlnID0ge1xuICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICBmaWx0ZXJUYWdzLFxuICAgICAgICAgIHByZWZlcnJlZExvY2F0aW9uOlxuICAgICAgICAgICAgdGhpcy5nZXRPcHRpb25WYWx1ZVNvdXJjZShcImxvY2F0aW9uXCIpID09PSBcImNsaVwiXG4gICAgICAgICAgICAgID8gb3B0aW9ucy5sb2NhdGlvblxuICAgICAgICAgICAgICA6IGNvbmZpZy5wcmVmZXJyZWRMb2NhdGlvbixcbiAgICAgICAgICAuLi4ob3B0aW9ucy5wcmljaW5nID09PSBmYWxzZSA/IHsgcHJpY2luZzogeyBlbmFibGVkOiBmYWxzZSB9IH0gOiB7fSksXG4gICAgICAgICAgc291cmNlczogcmVzb2x2ZVNvdXJjZXNPcHRpb24ob3B0aW9ucy5zb3VyY2UsIGNvbmZpZy5zb3VyY2VzKSxcbiAgICAgICAgICB0aW1lc3BhbkRheXM6XG4gICAgICAgICAgICB0aGlzLmdldE9wdGlvblZhbHVlU291cmNlKFwiZGF5c1wiKSA9PT0gXCJjbGlcIiAmJlxuICAgICAgICAgICAgIU51bWJlci5pc05hTihjbGlEYXlzKVxuICAgICAgICAgICAgICA/IGNsaURheXNcbiAgICAgICAgICAgICAgOiBjb25maWcudGltZXNwYW5EYXlzLFxuICAgICAgICAgIHZlcmJvc2U6IHZlcmJvc2UgPz8gZmFsc2UsXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gUnVuIGFuYWx5c2lzIHNob3dpbmcgYSBwcm9ncmVzcyBzcGlubmVyIG9uIHN0ZGVyciBzbyB0aGUgQ0xJIGRvZXNuJ3RcbiAgICAgICAgLy8gbG9vayBmcm96ZW4gZHVyaW5nIHRoZSAocG90ZW50aWFsbHkgc2V2ZXJhbC1taW51dGUpIEF6dXJlIHJvdW5kLXRyaXBzLlxuICAgICAgICBjb25zdCByZXBvcnRzID0gYXdhaXQgb3JhUHJvbWlzZShcbiAgICAgICAgICBhenVyZS5hbmFseXplQXp1cmVSZXNvdXJjZXMoZmluYWxDb25maWcpLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZhaWxUZXh0OiBcIkFuYWx5c2lzIGZhaWxlZFwiLFxuICAgICAgICAgICAgc3RyZWFtOiBwcm9jZXNzLnN0ZGVycixcbiAgICAgICAgICAgIHN1Y2Nlc3NUZXh0OiBcIkFuYWx5c2lzIGNvbXBsZXRlXCIsXG4gICAgICAgICAgICB0ZXh0OiBcIkFuYWx5emluZyBBenVyZSByZXNvdXJjZXNcIixcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgICBhd2FpdCBhenVyZS5nZW5lcmF0ZVJlcG9ydChyZXBvcnRzLCBvcHRpb25zLmZvcm1hdCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBleGl0V2l0aEVycm9yKHRoaXMpKFxuICAgICAgICAgIGVycm9yIGluc3RhbmNlb2YgRXJyb3JcbiAgICAgICAgICAgID8gbmV3IEVycm9yKGBBbmFseXNpcyBmYWlsZWQ6ICR7ZXJyb3IubWVzc2FnZX1gLCB7IGNhdXNlOiBlcnJvciB9KVxuICAgICAgICAgICAgOiBuZXcgRXJyb3IoYEFuYWx5c2lzIGZhaWxlZDogJHtTdHJpbmcoZXJyb3IpfWApLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG5jb25zdCBTb3VyY2VTY2hlbWEgPSB6LmVudW0oWy4uLkFaVVJFX1NPVVJDRV9WQUxVRVMsIFwiYWxsXCJdKTtcbnR5cGUgU291cmNlT3B0aW9uID0gei5pbmZlcjx0eXBlb2YgU291cmNlU2NoZW1hPjtcblxuLyoqXG4gKiBQYXJzZXMgdGhlIGAtLXNvdXJjZWAgb3B0aW9uIHZpYSBhIHpvZCBlbnVtLCBhY2NlcHRpbmcgYGFsbGAsIGBhZHZpc29yYCxcbiAqIG9yIGBjdXN0b21gIGFuZCByZWplY3RpbmcgYW55IG90aGVyIHZhbHVlIHdpdGggYSBDb21tYW5kZXItZnJpZW5kbHkgZXJyb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVNvdXJjZU9wdGlvbih2YWx1ZTogc3RyaW5nKTogU291cmNlT3B0aW9uIHtcbiAgY29uc3QgcmVzdWx0ID0gU291cmNlU2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSk7XG4gIGlmICghcmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICBgQWxsb3dlZCB2YWx1ZXMgYXJlOiAke1NvdXJjZVNjaGVtYS5vcHRpb25zLmpvaW4oXCIsIFwiKX1gLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdC5kYXRhO1xufVxuXG4vKipcbiAqIFBhcnNlcyBhbiBhcnJheSBvZiBcImtleT12YWx1ZVwiIHN0cmluZ3MgKGZyb20gY29tbWFuZGVyIHZhcmlhZGljIG9wdGlvbikgaW50byBhIE1hcDxzdHJpbmcsIHN0cmluZz4uXG4gKiBSZXR1cm5zIGFuIGVtcHR5IE1hcCB3aGVuIHRoZSBvcHRpb24gaXMgbm90IHByb3ZpZGVkIG9yIGVtcHR5LlxuICogU3VwcG9ydHMgdmFsdWVzIHRoYXQgY29udGFpbiBcIj1cIiAob25seSB0aGUgZmlyc3QgXCI9XCIgaXMgdHJlYXRlZCBhcyBzZXBhcmF0b3IpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUYWdzT3B0aW9uKFxuICB0YWdzT3B0aW9uOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbik6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICBjb25zdCByZXN1bHQgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBpZiAoIXRhZ3NPcHRpb24gfHwgdGFnc09wdGlvbi5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIGZvciAoY29uc3QgcGFpciBvZiB0YWdzT3B0aW9uKSB7XG4gICAgY29uc3QgW3Jhd0tleSwgLi4ucmVzdF0gPSBwYWlyLnNwbGl0KFwiPVwiKTtcbiAgICBjb25zdCBrZXkgPSByYXdLZXk/LnRyaW0oKTtcbiAgICBjb25zdCB2YWx1ZSA9IHJlc3Quam9pbihcIj1cIikudHJpbSgpO1xuICAgIGlmIChrZXkgJiYgcmVzdC5sZW5ndGggPiAwKSB7XG4gICAgICByZXN1bHQuc2V0KGtleSwgdmFsdWUpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBzb3VyY2UgZmlsdGVyIHByZXNlcnZpbmcgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhbiBvbWl0dGVkXG4gKiBvcHRpb24gKHJlc3BlY3QgY29uZmlnL2RlZmF1bHRzKSBhbmQgYW4gZXhwbGljaXQgYC0tc291cmNlIGFsbGAgb3ZlcnJpZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlU291cmNlc09wdGlvbihcbiAgb3B0aW9uOiBTb3VyY2VPcHRpb24gfCB1bmRlZmluZWQsXG4gIGNvbmZpZ1NvdXJjZXM6IEF6dXJlQ29uZmlnW1wic291cmNlc1wiXSxcbik6IEF6dXJlQ29uZmlnW1wic291cmNlc1wiXSB7XG4gIGlmIChvcHRpb24gPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBjb25maWdTb3VyY2VzO1xuICB9XG4gIHJldHVybiBvcHRpb24gPT09IFwiYWxsXCIgPyBbLi4uQVpVUkVfU09VUkNFX1ZBTFVFU10gOiBbb3B0aW9uXTtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pagopa/dx-cli",
|
|
3
|
-
"version": "0.26.
|
|
3
|
+
"version": "0.26.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A CLI useful to manage DX tools.",
|
|
6
6
|
"repository": {
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"semver": "^7.8.5",
|
|
57
57
|
"yaml": "^2.9.0",
|
|
58
58
|
"zod": "^4.4.3",
|
|
59
|
-
"@pagopa/dx-savemoney": "^0.
|
|
59
|
+
"@pagopa/dx-savemoney": "^0.5.0"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@tsconfig/node24": "24.0.4",
|