@pagopa/dx-cli 0.27.0 → 0.27.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.
@@ -22,12 +22,27 @@ import { UndiciInstrumentation } from "@opentelemetry/instrumentation-undici";
22
22
  // import-in-the-middle and module must be the first imports so that
23
23
  // createAddHookMessageChannel / register run as early as possible.
24
24
  import { createAddHookMessageChannel } from "import-in-the-middle";
25
+ import { register as registerSyncHooks, supportsSyncHooks, } from "import-in-the-middle/register-hooks.mjs";
25
26
  import { register } from "module";
26
27
  import os from "node:os";
27
- const { registerOptions, waitForAllMessagesAcknowledged } = createAddHookMessageChannel();
28
28
  // Register the ESM module hook so that subsequent dynamic imports are
29
29
  // intercepted by OpenTelemetry's module instrumentation.
30
- register("import-in-the-middle/hook.mjs", import.meta.url, registerOptions);
30
+ //
31
+ // Prefer the synchronous, non-deprecated `module.registerHooks()` path
32
+ // (import-in-the-middle's register-hooks.mjs) when the running Node.js
33
+ // correctly supports it. Otherwise fall back to the deprecated but broadly
34
+ // compatible `module.register()` + message channel approach, since apps/cli's
35
+ // declared `engines.node` (>=22.0.0) spans patch versions that predate the
36
+ // Node fix `supportsSyncHooks()` checks for (nodejs/node#59929).
37
+ let waitForAllMessagesAcknowledged = () => Promise.resolve();
38
+ if (supportsSyncHooks()) {
39
+ registerSyncHooks();
40
+ }
41
+ else {
42
+ const { registerOptions, waitForAllMessagesAcknowledged: wait } = createAddHookMessageChannel();
43
+ register("import-in-the-middle/hook.mjs", import.meta.url, registerOptions);
44
+ waitForAllMessagesAcknowledged = wait;
45
+ }
31
46
  // Set service name before useAzureMonitor() initialises the Resource so
32
47
  // that Azure Monitor picks it up as the cloud_RoleName.
33
48
  process.env["OTEL_SERVICE_NAME"] = "cli";
@@ -77,8 +92,9 @@ export const enableAzureMonitor = () => {
77
92
  tracerProvider: trace.getTracerProvider(),
78
93
  });
79
94
  };
80
- // Block module evaluation until the hook is fully acknowledged.
81
- // This ensures that when bin/index.js proceeds to import the CLI entry
82
- // module, all transitive imports go through the registered hook.
95
+ // Block module evaluation until the hook is fully acknowledged (a no-op on
96
+ // the synchronous path, which needs no acknowledgement). This ensures that
97
+ // when bin/index.js proceeds to import the CLI entry module, all transitive
98
+ // imports go through the registered hook.
83
99
  await waitForAllMessagesAcknowledged();
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FkYXB0ZXJzL2F6dXJlLW1vbml0b3IvaW5zdHJ1bWVudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBRUgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsb0VBQW9FO0FBQ3BFLG1FQUFtRTtBQUNuRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV6QixNQUFNLEVBQUUsZUFBZSxFQUFFLDhCQUE4QixFQUFFLEdBQ3ZELDJCQUEyQixFQUFFLENBQUM7QUFFaEMsc0VBQXNFO0FBQ3RFLHlEQUF5RDtBQUN6RCxRQUFRLENBQUMsK0JBQStCLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFFNUUsd0VBQXdFO0FBQ3hFLHdEQUF3RDtBQUN4RCxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsS0FBSyxDQUFDO0FBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsR0FBRztJQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDO0lBQ3ZDLHNCQUFzQjtDQUN2QjtLQUNFLE1BQU0sQ0FBQyxPQUFPLENBQUM7S0FDZixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFYixrRkFBa0Y7QUFDbEYsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ2pDLE1BQU0sTUFBTSxHQUFHLFVBQVUsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0FBQy9ELE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsR0FBRztJQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDO0lBQ3ZDLFdBQVcsTUFBTSxFQUFFO0lBQ25CLGNBQWMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO0lBQzVCLGNBQWMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO0NBQzdCO0tBQ0UsTUFBTSxDQUFDLE9BQU8sQ0FBQztLQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUViLElBQUksbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0FBRWhDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFTLEVBQUU7SUFDM0MsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQ3hCLE9BQU87SUFDVCxDQUFDO0lBQ0QsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBRTNCLGVBQWUsQ0FBQztRQUNkLDJCQUEyQixFQUFFO1lBQzNCLGdCQUFnQixFQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMscUNBQXFDO2dCQUNqRCx3UEFBd1A7U0FDM1A7UUFDRCxpQkFBaUIsRUFBRSxJQUFJO0tBQ3hCLENBQUMsQ0FBQztJQUVILHlFQUF5RTtJQUN6RSw0RUFBNEU7SUFDNUUsd0JBQXdCLENBQUM7UUFDdkIsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDL0MsYUFBYSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtRQUN6QyxjQUFjLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixFQUFFO0tBQzFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLGdFQUFnRTtBQUNoRSx1RUFBdUU7QUFDdkUsaUVBQWlFO0FBQ2pFLE1BQU0sOEJBQThCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogT1RlbCBwcmVsb2FkIG1vZHVsZSBmb3IgdGhlIGR4IENMSS5cbiAqXG4gKiBUaGlzIG1vZHVsZSBpcyBhIGRlbGliZXJhdGUgc2lkZS1lZmZlY3QgZW50cnlwb2ludC4gSXQgTVVTVCBiZSB0aGUgZmlyc3RcbiAqIG1vZHVsZSBsb2FkZWQgYnkgdGhlIHByb2Nlc3MgKHZpYSBhIHNlcXVlbnRpYWwgZHluYW1pYyBpbXBvcnQgaW4gYmluL2luZGV4LmpzKVxuICogc28gdGhhdCBpbXBvcnQtaW4tdGhlLW1pZGRsZSBjYW4gcmVnaXN0ZXIgaXRzIGhvb2sgYmVmb3JlIGFueSBIVFRQIGNsaWVudFxuICogbGlicmFyaWVzICh1bmRpY2kvZmV0Y2gsIG9jdG9raXQsIEF6dXJlIFNES3MpIGFyZSBsb2FkZWQuXG4gKlxuICogSW5pdGlhbGlzaW5nIHRoZSBBenVyZSBNb25pdG9yIGV4cG9ydGVyIGlzIGRlZmVycmVkIHRvIGBlbmFibGVBenVyZU1vbml0b3IoKWBcbiAqIHNvIHRoZSBDTEkgY2FuIGRlY2lkZSBhdCBydW50aW1lIHdoZXRoZXIgdG8gZW1pdCB0ZWxlbWV0cnkgKG9ubHkgUGFnb1BBIG9yZ1xuICogbWVtYmVycyBkbykuIFRoZSBpbXBvcnQtaW4tdGhlLW1pZGRsZSBob29rIGlzIHN0aWxsIHJlZ2lzdGVyZWQgZWFnZXJseSBhdFxuICogcHJlbG9hZCBiZWNhdXNlIGl0IG11c3QgcnVuIGJlZm9yZSBhbnkgaW5zdHJ1bWVudGVkIG1vZHVsZSBpcyBpbXBvcnRlZC5cbiAqXG4gKiBSZWFkcyBBUFBMSUNBVElPTklOU0lHSFRTX0NPTk5FQ1RJT05fU1RSSU5HIGZyb20gcHJvY2Vzcy5lbnYgYmVjYXVzZSB0aGlzIElTXG4gKiB0aGUgY29uZmlndXJhdGlvbiBib3VuZGFyeSDigJQgbm8gaGlnaGVyIGNhbGxlciBjYW4gaW5qZWN0IGNvbmZpZyBhdCB0aGlzIHBvaW50XG4gKiBpbiB0aGUgcHJvY2VzcyBsaWZlY3ljbGUuXG4gKi9cblxuaW1wb3J0IHsgdXNlQXp1cmVNb25pdG9yIH0gZnJvbSBcIkBhenVyZS9tb25pdG9yLW9wZW50ZWxlbWV0cnlcIjtcbmltcG9ydCB7IG1ldHJpY3MsIHRyYWNlIH0gZnJvbSBcIkBvcGVudGVsZW1ldHJ5L2FwaVwiO1xuaW1wb3J0IHsgcmVnaXN0ZXJJbnN0cnVtZW50YXRpb25zIH0gZnJvbSBcIkBvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvblwiO1xuaW1wb3J0IHsgVW5kaWNpSW5zdHJ1bWVudGF0aW9uIH0gZnJvbSBcIkBvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi11bmRpY2lcIjtcbi8vIGltcG9ydC1pbi10aGUtbWlkZGxlIGFuZCBtb2R1bGUgbXVzdCBiZSB0aGUgZmlyc3QgaW1wb3J0cyBzbyB0aGF0XG4vLyBjcmVhdGVBZGRIb29rTWVzc2FnZUNoYW5uZWwgLyByZWdpc3RlciBydW4gYXMgZWFybHkgYXMgcG9zc2libGUuXG5pbXBvcnQgeyBjcmVhdGVBZGRIb29rTWVzc2FnZUNoYW5uZWwgfSBmcm9tIFwiaW1wb3J0LWluLXRoZS1taWRkbGVcIjtcbmltcG9ydCB7IHJlZ2lzdGVyIH0gZnJvbSBcIm1vZHVsZVwiO1xuaW1wb3J0IG9zIGZyb20gXCJub2RlOm9zXCI7XG5cbmNvbnN0IHsgcmVnaXN0ZXJPcHRpb25zLCB3YWl0Rm9yQWxsTWVzc2FnZXNBY2tub3dsZWRnZWQgfSA9XG4gIGNyZWF0ZUFkZEhvb2tNZXNzYWdlQ2hhbm5lbCgpO1xuXG4vLyBSZWdpc3RlciB0aGUgRVNNIG1vZHVsZSBob29rIHNvIHRoYXQgc3Vic2VxdWVudCBkeW5hbWljIGltcG9ydHMgYXJlXG4vLyBpbnRlcmNlcHRlZCBieSBPcGVuVGVsZW1ldHJ5J3MgbW9kdWxlIGluc3RydW1lbnRhdGlvbi5cbnJlZ2lzdGVyKFwiaW1wb3J0LWluLXRoZS1taWRkbGUvaG9vay5tanNcIiwgaW1wb3J0Lm1ldGEudXJsLCByZWdpc3Rlck9wdGlvbnMpO1xuXG4vLyBTZXQgc2VydmljZSBuYW1lIGJlZm9yZSB1c2VBenVyZU1vbml0b3IoKSBpbml0aWFsaXNlcyB0aGUgUmVzb3VyY2Ugc29cbi8vIHRoYXQgQXp1cmUgTW9uaXRvciBwaWNrcyBpdCB1cCBhcyB0aGUgY2xvdWRfUm9sZU5hbWUuXG5wcm9jZXNzLmVudltcIk9URUxfU0VSVklDRV9OQU1FXCJdID0gXCJjbGlcIjtcbnByb2Nlc3MuZW52W1wiT1RFTF9SRVNPVVJDRV9BVFRSSUJVVEVTXCJdID0gW1xuICBwcm9jZXNzLmVudltcIk9URUxfUkVTT1VSQ0VfQVRUUklCVVRFU1wiXSxcbiAgXCJzZXJ2aWNlLm5hbWVzcGFjZT1keFwiLFxuXVxuICAuZmlsdGVyKEJvb2xlYW4pXG4gIC5qb2luKFwiLFwiKTtcblxuLy8gb3MucGxhdGZvcm0oKSByZXR1cm5zIFwid2luMzJcIiBvbiBXaW5kb3dzOyB0aGUgT1RlbCBvcy50eXBlIGVudW0gdXNlcyBcIndpbmRvd3NcIi5cbmNvbnN0IG9zUGxhdGZvcm0gPSBvcy5wbGF0Zm9ybSgpO1xuY29uc3Qgb3NUeXBlID0gb3NQbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiID8gXCJ3aW5kb3dzXCIgOiBvc1BsYXRmb3JtO1xucHJvY2Vzcy5lbnZbXCJPVEVMX1JFU09VUkNFX0FUVFJJQlVURVNcIl0gPSBbXG4gIHByb2Nlc3MuZW52W1wiT1RFTF9SRVNPVVJDRV9BVFRSSUJVVEVTXCJdLFxuICBgb3MudHlwZT0ke29zVHlwZX1gLFxuICBgb3MudmVyc2lvbj0ke29zLnJlbGVhc2UoKX1gLFxuICBgb3MubWFjaGluZT0ke29zLm1hY2hpbmUoKX1gLFxuXVxuICAuZmlsdGVyKEJvb2xlYW4pXG4gIC5qb2luKFwiLFwiKTtcblxubGV0IGF6dXJlTW9uaXRvckVuYWJsZWQgPSBmYWxzZTtcblxuLyoqXG4gKiBJbml0aWFsaXNlcyB0aGUgQXp1cmUgTW9uaXRvciBleHBvcnRlciBhbmQgcmVnaXN0ZXJzIEhUVFAgaW5zdHJ1bWVudGF0aW9uLlxuICpcbiAqIERlZmVycmVkIChub3QgcnVuIGF0IHByZWxvYWQpIHNvIHRoZSBDTEkgb25seSBlbWl0cyB0ZWxlbWV0cnkgb25jZSBpdCBoYXNcbiAqIGNvbmZpcm1lZCB0aGUgdXNlciBpcyBhIFBhZ29QQSBvcmcgbWVtYmVyLiBJZGVtcG90ZW50OiBzYWZlIHRvIGNhbGwgbW9yZSB0aGFuXG4gKiBvbmNlLiBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgbG9nZ2luZyBpcyBjb25maWd1cmVkIHNvIHRoZSBsb2d0YXBlIE9UZWwgc2lua1xuICogYmluZHMgdG8gdGhlIHJlYWwgKHJhdGhlciB0aGFuIG5vLW9wKSBMb2dnZXJQcm92aWRlci5cbiAqL1xuZXhwb3J0IGNvbnN0IGVuYWJsZUF6dXJlTW9uaXRvciA9ICgpOiB2b2lkID0+IHtcbiAgaWYgKGF6dXJlTW9uaXRvckVuYWJsZWQpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgYXp1cmVNb25pdG9yRW5hYmxlZCA9IHRydWU7XG5cbiAgdXNlQXp1cmVNb25pdG9yKHtcbiAgICBhenVyZU1vbml0b3JFeHBvcnRlck9wdGlvbnM6IHtcbiAgICAgIGNvbm5lY3Rpb25TdHJpbmc6XG4gICAgICAgIHByb2Nlc3MuZW52LkFQUExJQ0FUSU9OSU5TSUdIVFNfQ09OTkVDVElPTl9TVFJJTkcgfHxcbiAgICAgICAgXCJJbnN0cnVtZW50YXRpb25LZXk9ZTBmZjgwOTQtNzhmYS00NWU1LWEyMWQtZTYyYjQ1M2RjNWQxO0luZ2VzdGlvbkVuZHBvaW50PWh0dHBzOi8vaXRhbHlub3J0aC0wLmluLmFwcGxpY2F0aW9uaW5zaWdodHMuYXp1cmUuY29tLztMaXZlRW5kcG9pbnQ9aHR0cHM6Ly9pdGFseW5vcnRoLmxpdmVkaWFnbm9zdGljcy5tb25pdG9yLmF6dXJlLmNvbS87QXBwbGljYXRpb25JZD1jZTQ2OWQ1NS0yZmY3LTRkZmQtYTI0OS1jYzc4NzI5MWU2NzJcIixcbiAgICB9LFxuICAgIGVuYWJsZUxpdmVNZXRyaWNzOiB0cnVlLFxuICB9KTtcblxuICAvLyBSZWdpc3RlcmVkIGFmdGVyIHVzZUF6dXJlTW9uaXRvcigpIHNvIHRoZSBpbnN0cnVtZW50YXRpb24gYmluZHMgdG8gdGhlXG4gIC8vIHJlYWwgdHJhY2VyL21ldGVyIHByb3ZpZGVycyBpdCBpbnN0YWxscyAocmF0aGVyIHRoYW4gdGhlIG5vLW9wIGRlZmF1bHRzKS5cbiAgcmVnaXN0ZXJJbnN0cnVtZW50YXRpb25zKHtcbiAgICBpbnN0cnVtZW50YXRpb25zOiBbbmV3IFVuZGljaUluc3RydW1lbnRhdGlvbigpXSxcbiAgICBtZXRlclByb3ZpZGVyOiBtZXRyaWNzLmdldE1ldGVyUHJvdmlkZXIoKSxcbiAgICB0cmFjZXJQcm92aWRlcjogdHJhY2UuZ2V0VHJhY2VyUHJvdmlkZXIoKSxcbiAgfSk7XG59O1xuXG4vLyBCbG9jayBtb2R1bGUgZXZhbHVhdGlvbiB1bnRpbCB0aGUgaG9vayBpcyBmdWxseSBhY2tub3dsZWRnZWQuXG4vLyBUaGlzIGVuc3VyZXMgdGhhdCB3aGVuIGJpbi9pbmRleC5qcyBwcm9jZWVkcyB0byBpbXBvcnQgdGhlIENMSSBlbnRyeVxuLy8gbW9kdWxlLCBhbGwgdHJhbnNpdGl2ZSBpbXBvcnRzIGdvIHRocm91Z2ggdGhlIHJlZ2lzdGVyZWQgaG9vay5cbmF3YWl0IHdhaXRGb3JBbGxNZXNzYWdlc0Fja25vd2xlZGdlZCgpO1xuIl19
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FkYXB0ZXJzL2F6dXJlLW1vbml0b3IvaW5zdHJ1bWVudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBRUgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsb0VBQW9FO0FBQ3BFLG1FQUFtRTtBQUNuRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsUUFBUSxJQUFJLGlCQUFpQixFQUM3QixpQkFBaUIsR0FDbEIsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV6QixzRUFBc0U7QUFDdEUseURBQXlEO0FBQ3pELEVBQUU7QUFDRix1RUFBdUU7QUFDdkUsdUVBQXVFO0FBQ3ZFLDJFQUEyRTtBQUMzRSw4RUFBOEU7QUFDOUUsMkVBQTJFO0FBQzNFLGlFQUFpRTtBQUNqRSxJQUFJLDhCQUE4QixHQUF3QixHQUFHLEVBQUUsQ0FDN0QsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBRXBCLElBQUksaUJBQWlCLEVBQUUsRUFBRSxDQUFDO0lBQ3hCLGlCQUFpQixFQUFFLENBQUM7QUFDdEIsQ0FBQztLQUFNLENBQUM7SUFDTixNQUFNLEVBQUUsZUFBZSxFQUFFLDhCQUE4QixFQUFFLElBQUksRUFBRSxHQUM3RCwyQkFBMkIsRUFBRSxDQUFDO0lBQ2hDLFFBQVEsQ0FBQywrQkFBK0IsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUM1RSw4QkFBOEIsR0FBRyxJQUFJLENBQUM7QUFDeEMsQ0FBQztBQUVELHdFQUF3RTtBQUN4RSx3REFBd0Q7QUFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLEdBQUc7SUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQztJQUN2QyxzQkFBc0I7Q0FDdkI7S0FDRSxNQUFNLENBQUMsT0FBTyxDQUFDO0tBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRWIsa0ZBQWtGO0FBQ2xGLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUNqQyxNQUFNLE1BQU0sR0FBRyxVQUFVLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztBQUMvRCxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLEdBQUc7SUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQztJQUN2QyxXQUFXLE1BQU0sRUFBRTtJQUNuQixjQUFjLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtJQUM1QixjQUFjLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtDQUM3QjtLQUNFLE1BQU0sQ0FBQyxPQUFPLENBQUM7S0FDZixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFYixJQUFJLG1CQUFtQixHQUFHLEtBQUssQ0FBQztBQUVoQzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsR0FBUyxFQUFFO0lBQzNDLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUN4QixPQUFPO0lBQ1QsQ0FBQztJQUNELG1CQUFtQixHQUFHLElBQUksQ0FBQztJQUUzQixlQUFlLENBQUM7UUFDZCwyQkFBMkIsRUFBRTtZQUMzQixnQkFBZ0IsRUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLHFDQUFxQztnQkFDakQsd1BBQXdQO1NBQzNQO1FBQ0QsaUJBQWlCLEVBQUUsSUFBSTtLQUN4QixDQUFDLENBQUM7SUFFSCx5RUFBeUU7SUFDekUsNEVBQTRFO0lBQzVFLHdCQUF3QixDQUFDO1FBQ3ZCLGdCQUFnQixFQUFFLENBQUMsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQy9DLGFBQWEsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7UUFDekMsY0FBYyxFQUFFLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtLQUMxQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRiwyRUFBMkU7QUFDM0UsMkVBQTJFO0FBQzNFLDRFQUE0RTtBQUM1RSwwQ0FBMEM7QUFDMUMsTUFBTSw4QkFBOEIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBPVGVsIHByZWxvYWQgbW9kdWxlIGZvciB0aGUgZHggQ0xJLlxuICpcbiAqIFRoaXMgbW9kdWxlIGlzIGEgZGVsaWJlcmF0ZSBzaWRlLWVmZmVjdCBlbnRyeXBvaW50LiBJdCBNVVNUIGJlIHRoZSBmaXJzdFxuICogbW9kdWxlIGxvYWRlZCBieSB0aGUgcHJvY2VzcyAodmlhIGEgc2VxdWVudGlhbCBkeW5hbWljIGltcG9ydCBpbiBiaW4vaW5kZXguanMpXG4gKiBzbyB0aGF0IGltcG9ydC1pbi10aGUtbWlkZGxlIGNhbiByZWdpc3RlciBpdHMgaG9vayBiZWZvcmUgYW55IEhUVFAgY2xpZW50XG4gKiBsaWJyYXJpZXMgKHVuZGljaS9mZXRjaCwgb2N0b2tpdCwgQXp1cmUgU0RLcykgYXJlIGxvYWRlZC5cbiAqXG4gKiBJbml0aWFsaXNpbmcgdGhlIEF6dXJlIE1vbml0b3IgZXhwb3J0ZXIgaXMgZGVmZXJyZWQgdG8gYGVuYWJsZUF6dXJlTW9uaXRvcigpYFxuICogc28gdGhlIENMSSBjYW4gZGVjaWRlIGF0IHJ1bnRpbWUgd2hldGhlciB0byBlbWl0IHRlbGVtZXRyeSAob25seSBQYWdvUEEgb3JnXG4gKiBtZW1iZXJzIGRvKS4gVGhlIGltcG9ydC1pbi10aGUtbWlkZGxlIGhvb2sgaXMgc3RpbGwgcmVnaXN0ZXJlZCBlYWdlcmx5IGF0XG4gKiBwcmVsb2FkIGJlY2F1c2UgaXQgbXVzdCBydW4gYmVmb3JlIGFueSBpbnN0cnVtZW50ZWQgbW9kdWxlIGlzIGltcG9ydGVkLlxuICpcbiAqIFJlYWRzIEFQUExJQ0FUSU9OSU5TSUdIVFNfQ09OTkVDVElPTl9TVFJJTkcgZnJvbSBwcm9jZXNzLmVudiBiZWNhdXNlIHRoaXMgSVNcbiAqIHRoZSBjb25maWd1cmF0aW9uIGJvdW5kYXJ5IOKAlCBubyBoaWdoZXIgY2FsbGVyIGNhbiBpbmplY3QgY29uZmlnIGF0IHRoaXMgcG9pbnRcbiAqIGluIHRoZSBwcm9jZXNzIGxpZmVjeWNsZS5cbiAqL1xuXG5pbXBvcnQgeyB1c2VBenVyZU1vbml0b3IgfSBmcm9tIFwiQGF6dXJlL21vbml0b3Itb3BlbnRlbGVtZXRyeVwiO1xuaW1wb3J0IHsgbWV0cmljcywgdHJhY2UgfSBmcm9tIFwiQG9wZW50ZWxlbWV0cnkvYXBpXCI7XG5pbXBvcnQgeyByZWdpc3Rlckluc3RydW1lbnRhdGlvbnMgfSBmcm9tIFwiQG9wZW50ZWxlbWV0cnkvaW5zdHJ1bWVudGF0aW9uXCI7XG5pbXBvcnQgeyBVbmRpY2lJbnN0cnVtZW50YXRpb24gfSBmcm9tIFwiQG9wZW50ZWxlbWV0cnkvaW5zdHJ1bWVudGF0aW9uLXVuZGljaVwiO1xuLy8gaW1wb3J0LWluLXRoZS1taWRkbGUgYW5kIG1vZHVsZSBtdXN0IGJlIHRoZSBmaXJzdCBpbXBvcnRzIHNvIHRoYXRcbi8vIGNyZWF0ZUFkZEhvb2tNZXNzYWdlQ2hhbm5lbCAvIHJlZ2lzdGVyIHJ1biBhcyBlYXJseSBhcyBwb3NzaWJsZS5cbmltcG9ydCB7IGNyZWF0ZUFkZEhvb2tNZXNzYWdlQ2hhbm5lbCB9IGZyb20gXCJpbXBvcnQtaW4tdGhlLW1pZGRsZVwiO1xuaW1wb3J0IHtcbiAgcmVnaXN0ZXIgYXMgcmVnaXN0ZXJTeW5jSG9va3MsXG4gIHN1cHBvcnRzU3luY0hvb2tzLFxufSBmcm9tIFwiaW1wb3J0LWluLXRoZS1taWRkbGUvcmVnaXN0ZXItaG9va3MubWpzXCI7XG5pbXBvcnQgeyByZWdpc3RlciB9IGZyb20gXCJtb2R1bGVcIjtcbmltcG9ydCBvcyBmcm9tIFwibm9kZTpvc1wiO1xuXG4vLyBSZWdpc3RlciB0aGUgRVNNIG1vZHVsZSBob29rIHNvIHRoYXQgc3Vic2VxdWVudCBkeW5hbWljIGltcG9ydHMgYXJlXG4vLyBpbnRlcmNlcHRlZCBieSBPcGVuVGVsZW1ldHJ5J3MgbW9kdWxlIGluc3RydW1lbnRhdGlvbi5cbi8vXG4vLyBQcmVmZXIgdGhlIHN5bmNocm9ub3VzLCBub24tZGVwcmVjYXRlZCBgbW9kdWxlLnJlZ2lzdGVySG9va3MoKWAgcGF0aFxuLy8gKGltcG9ydC1pbi10aGUtbWlkZGxlJ3MgcmVnaXN0ZXItaG9va3MubWpzKSB3aGVuIHRoZSBydW5uaW5nIE5vZGUuanNcbi8vIGNvcnJlY3RseSBzdXBwb3J0cyBpdC4gT3RoZXJ3aXNlIGZhbGwgYmFjayB0byB0aGUgZGVwcmVjYXRlZCBidXQgYnJvYWRseVxuLy8gY29tcGF0aWJsZSBgbW9kdWxlLnJlZ2lzdGVyKClgICsgbWVzc2FnZSBjaGFubmVsIGFwcHJvYWNoLCBzaW5jZSBhcHBzL2NsaSdzXG4vLyBkZWNsYXJlZCBgZW5naW5lcy5ub2RlYCAoPj0yMi4wLjApIHNwYW5zIHBhdGNoIHZlcnNpb25zIHRoYXQgcHJlZGF0ZSB0aGVcbi8vIE5vZGUgZml4IGBzdXBwb3J0c1N5bmNIb29rcygpYCBjaGVja3MgZm9yIChub2RlanMvbm9kZSM1OTkyOSkuXG5sZXQgd2FpdEZvckFsbE1lc3NhZ2VzQWNrbm93bGVkZ2VkOiAoKSA9PiBQcm9taXNlPHZvaWQ+ID0gKCkgPT5cbiAgUHJvbWlzZS5yZXNvbHZlKCk7XG5cbmlmIChzdXBwb3J0c1N5bmNIb29rcygpKSB7XG4gIHJlZ2lzdGVyU3luY0hvb2tzKCk7XG59IGVsc2Uge1xuICBjb25zdCB7IHJlZ2lzdGVyT3B0aW9ucywgd2FpdEZvckFsbE1lc3NhZ2VzQWNrbm93bGVkZ2VkOiB3YWl0IH0gPVxuICAgIGNyZWF0ZUFkZEhvb2tNZXNzYWdlQ2hhbm5lbCgpO1xuICByZWdpc3RlcihcImltcG9ydC1pbi10aGUtbWlkZGxlL2hvb2subWpzXCIsIGltcG9ydC5tZXRhLnVybCwgcmVnaXN0ZXJPcHRpb25zKTtcbiAgd2FpdEZvckFsbE1lc3NhZ2VzQWNrbm93bGVkZ2VkID0gd2FpdDtcbn1cblxuLy8gU2V0IHNlcnZpY2UgbmFtZSBiZWZvcmUgdXNlQXp1cmVNb25pdG9yKCkgaW5pdGlhbGlzZXMgdGhlIFJlc291cmNlIHNvXG4vLyB0aGF0IEF6dXJlIE1vbml0b3IgcGlja3MgaXQgdXAgYXMgdGhlIGNsb3VkX1JvbGVOYW1lLlxucHJvY2Vzcy5lbnZbXCJPVEVMX1NFUlZJQ0VfTkFNRVwiXSA9IFwiY2xpXCI7XG5wcm9jZXNzLmVudltcIk9URUxfUkVTT1VSQ0VfQVRUUklCVVRFU1wiXSA9IFtcbiAgcHJvY2Vzcy5lbnZbXCJPVEVMX1JFU09VUkNFX0FUVFJJQlVURVNcIl0sXG4gIFwic2VydmljZS5uYW1lc3BhY2U9ZHhcIixcbl1cbiAgLmZpbHRlcihCb29sZWFuKVxuICAuam9pbihcIixcIik7XG5cbi8vIG9zLnBsYXRmb3JtKCkgcmV0dXJucyBcIndpbjMyXCIgb24gV2luZG93czsgdGhlIE9UZWwgb3MudHlwZSBlbnVtIHVzZXMgXCJ3aW5kb3dzXCIuXG5jb25zdCBvc1BsYXRmb3JtID0gb3MucGxhdGZvcm0oKTtcbmNvbnN0IG9zVHlwZSA9IG9zUGxhdGZvcm0gPT09IFwid2luMzJcIiA/IFwid2luZG93c1wiIDogb3NQbGF0Zm9ybTtcbnByb2Nlc3MuZW52W1wiT1RFTF9SRVNPVVJDRV9BVFRSSUJVVEVTXCJdID0gW1xuICBwcm9jZXNzLmVudltcIk9URUxfUkVTT1VSQ0VfQVRUUklCVVRFU1wiXSxcbiAgYG9zLnR5cGU9JHtvc1R5cGV9YCxcbiAgYG9zLnZlcnNpb249JHtvcy5yZWxlYXNlKCl9YCxcbiAgYG9zLm1hY2hpbmU9JHtvcy5tYWNoaW5lKCl9YCxcbl1cbiAgLmZpbHRlcihCb29sZWFuKVxuICAuam9pbihcIixcIik7XG5cbmxldCBhenVyZU1vbml0b3JFbmFibGVkID0gZmFsc2U7XG5cbi8qKlxuICogSW5pdGlhbGlzZXMgdGhlIEF6dXJlIE1vbml0b3IgZXhwb3J0ZXIgYW5kIHJlZ2lzdGVycyBIVFRQIGluc3RydW1lbnRhdGlvbi5cbiAqXG4gKiBEZWZlcnJlZCAobm90IHJ1biBhdCBwcmVsb2FkKSBzbyB0aGUgQ0xJIG9ubHkgZW1pdHMgdGVsZW1ldHJ5IG9uY2UgaXQgaGFzXG4gKiBjb25maXJtZWQgdGhlIHVzZXIgaXMgYSBQYWdvUEEgb3JnIG1lbWJlci4gSWRlbXBvdGVudDogc2FmZSB0byBjYWxsIG1vcmUgdGhhblxuICogb25jZS4gTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGxvZ2dpbmcgaXMgY29uZmlndXJlZCBzbyB0aGUgbG9ndGFwZSBPVGVsIHNpbmtcbiAqIGJpbmRzIHRvIHRoZSByZWFsIChyYXRoZXIgdGhhbiBuby1vcCkgTG9nZ2VyUHJvdmlkZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBlbmFibGVBenVyZU1vbml0b3IgPSAoKTogdm9pZCA9PiB7XG4gIGlmIChhenVyZU1vbml0b3JFbmFibGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGF6dXJlTW9uaXRvckVuYWJsZWQgPSB0cnVlO1xuXG4gIHVzZUF6dXJlTW9uaXRvcih7XG4gICAgYXp1cmVNb25pdG9yRXhwb3J0ZXJPcHRpb25zOiB7XG4gICAgICBjb25uZWN0aW9uU3RyaW5nOlxuICAgICAgICBwcm9jZXNzLmVudi5BUFBMSUNBVElPTklOU0lHSFRTX0NPTk5FQ1RJT05fU1RSSU5HIHx8XG4gICAgICAgIFwiSW5zdHJ1bWVudGF0aW9uS2V5PWUwZmY4MDk0LTc4ZmEtNDVlNS1hMjFkLWU2MmI0NTNkYzVkMTtJbmdlc3Rpb25FbmRwb2ludD1odHRwczovL2l0YWx5bm9ydGgtMC5pbi5hcHBsaWNhdGlvbmluc2lnaHRzLmF6dXJlLmNvbS87TGl2ZUVuZHBvaW50PWh0dHBzOi8vaXRhbHlub3J0aC5saXZlZGlhZ25vc3RpY3MubW9uaXRvci5henVyZS5jb20vO0FwcGxpY2F0aW9uSWQ9Y2U0NjlkNTUtMmZmNy00ZGZkLWEyNDktY2M3ODcyOTFlNjcyXCIsXG4gICAgfSxcbiAgICBlbmFibGVMaXZlTWV0cmljczogdHJ1ZSxcbiAgfSk7XG5cbiAgLy8gUmVnaXN0ZXJlZCBhZnRlciB1c2VBenVyZU1vbml0b3IoKSBzbyB0aGUgaW5zdHJ1bWVudGF0aW9uIGJpbmRzIHRvIHRoZVxuICAvLyByZWFsIHRyYWNlci9tZXRlciBwcm92aWRlcnMgaXQgaW5zdGFsbHMgKHJhdGhlciB0aGFuIHRoZSBuby1vcCBkZWZhdWx0cykuXG4gIHJlZ2lzdGVySW5zdHJ1bWVudGF0aW9ucyh7XG4gICAgaW5zdHJ1bWVudGF0aW9uczogW25ldyBVbmRpY2lJbnN0cnVtZW50YXRpb24oKV0sXG4gICAgbWV0ZXJQcm92aWRlcjogbWV0cmljcy5nZXRNZXRlclByb3ZpZGVyKCksXG4gICAgdHJhY2VyUHJvdmlkZXI6IHRyYWNlLmdldFRyYWNlclByb3ZpZGVyKCksXG4gIH0pO1xufTtcblxuLy8gQmxvY2sgbW9kdWxlIGV2YWx1YXRpb24gdW50aWwgdGhlIGhvb2sgaXMgZnVsbHkgYWNrbm93bGVkZ2VkIChhIG5vLW9wIG9uXG4vLyB0aGUgc3luY2hyb25vdXMgcGF0aCwgd2hpY2ggbmVlZHMgbm8gYWNrbm93bGVkZ2VtZW50KS4gVGhpcyBlbnN1cmVzIHRoYXRcbi8vIHdoZW4gYmluL2luZGV4LmpzIHByb2NlZWRzIHRvIGltcG9ydCB0aGUgQ0xJIGVudHJ5IG1vZHVsZSwgYWxsIHRyYW5zaXRpdmVcbi8vIGltcG9ydHMgZ28gdGhyb3VnaCB0aGUgcmVnaXN0ZXJlZCBob29rLlxuYXdhaXQgd2FpdEZvckFsbE1lc3NhZ2VzQWNrbm93bGVkZ2VkKCk7XG4iXX0=
@@ -1,4 +1,5 @@
1
- import { azure, AZURE_SOURCE_VALUES, loadConfig } from "@pagopa/dx-savemoney";
1
+ import { trace } from "@opentelemetry/api";
2
+ import { azure, AZURE_SOURCE_VALUES, buildSavemoneyInvocationTelemetryAttributes, buildSavemoneyOutcomeTelemetryAttributes, loadConfig, } from "@pagopa/dx-savemoney";
2
3
  import { Command, InvalidArgumentError } from "commander";
3
4
  import { oraPromise } from "ora";
4
5
  import { z } from "zod";
@@ -36,6 +37,15 @@ export const makeSavemoneyCommand = () => new Command("savemoney")
36
37
  : config.timespanDays,
37
38
  verbose: verbose ?? false,
38
39
  };
40
+ // Record usage attributes on the active root span so Application
41
+ // Insights can slice usage by format, source, and feature flags.
42
+ trace.getActiveSpan()?.setAttributes(buildSavemoneyInvocationTelemetryAttributes({
43
+ azqrReportPathOption: options.azqrReport,
44
+ configPathOption: options.config,
45
+ format: options.format,
46
+ resolvedConfig: finalConfig,
47
+ subscriptionIdsEnv: process.env.ARM_SUBSCRIPTION_ID,
48
+ }));
39
49
  // Run analysis showing a progress spinner on stderr so the CLI doesn't
40
50
  // look frozen during the (potentially several-minute) Azure round-trips.
41
51
  const reports = await oraPromise(azure.analyzeAzureResources(finalConfig), {
@@ -44,6 +54,10 @@ export const makeSavemoneyCommand = () => new Command("savemoney")
44
54
  successText: "Analysis complete",
45
55
  text: "Analyzing Azure resources",
46
56
  });
57
+ // Record outcome attributes after analysis completes.
58
+ trace
59
+ .getActiveSpan()
60
+ ?.setAttributes(buildSavemoneyOutcomeTelemetryAttributes(reports));
47
61
  await azure.generateReport(reports, options.format);
48
62
  }
49
63
  catch (error) {
@@ -94,4 +108,4 @@ export function resolveSourcesOption(option, configSources) {
94
108
  }
95
109
  return option === "all" ? [...AZURE_SOURCE_VALUES] : [option];
96
110
  }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZW1vbmV5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FkYXB0ZXJzL2NvbW1hbmRlci9jb21tYW5kcy9zYXZlbW9uZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDakMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHckQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxFQUFFLENBQ3ZDLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQztLQUNyQixXQUFXLENBQ1Ysd0VBQXdFLENBQ3pFO0tBQ0EsTUFBTSxDQUFDLHFCQUFxQixFQUFFLGlDQUFpQyxDQUFDO0tBQ2hFLE1BQU0sQ0FDTCx1QkFBdUIsRUFDdkIscUVBQXFFLEVBQ3JFLE9BQU8sQ0FDUjtLQUNBLE1BQU0sQ0FDTCx5QkFBeUIsRUFDekIsZ0VBQWdFLEVBQ2hFLFlBQVksQ0FDYjtLQUNBLE1BQU0sQ0FDTCxxQkFBcUIsRUFDckIsNkRBQTZELEVBQzdELElBQUksQ0FDTDtLQUNBLE1BQU0sQ0FDTCxzQkFBc0IsRUFDdEIsOEdBQThHLENBQy9HO0tBQ0EsTUFBTSxDQUNMLHVCQUF1QixFQUN2QixzR0FBc0csRUFDdEcsaUJBQWlCLENBQ2xCO0tBQ0EsTUFBTSxDQUNMLGNBQWMsRUFDZCw4RUFBOEUsQ0FDL0U7S0FDQSxNQUFNLENBQ0wsc0JBQXNCLEVBQ3RCLDROQUE0TixDQUM3TjtLQUNBLE1BQU0sQ0FBQyxLQUFLLFdBQVcsT0FBTztJQUM3QixNQUFNLEVB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bnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBenVyZUNvbmZpZyB9IGZyb20gXCJAcGFnb3BhL2R4LXNhdmVtb25leVwiO1xuXG5pbXBvcnQgeyBhenVyZSwgQVpVUkVfU09VUkNFX1ZBTFVFUywgbG9hZENvbmZpZyB9IGZyb20gXCJAcGFnb3BhL2R4LXNhdmVtb25leVwiO1xuaW1wb3J0IHsgQ29tbWFuZCwgSW52YWxpZEFyZ3VtZW50RXJyb3IgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQgeyBvcmFQcm9taXNlIH0gZnJvbSBcIm9yYVwiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuaW1wb3J0IHsgZXhpdFdpdGhFcnJvciB9IGZyb20gXCIuLi9jb21tYW5kLWVycm9ycy5qc1wiO1xuaW1wb3J0IHsgR2xvYmFsT3B0aW9ucyB9IGZyb20gXCIuLi9nbG9iYWwtb3B0aW9ucy5qc1wiO1xuXG5leHBvcnQgY29uc3QgbWFrZVNhdmVtb25leUNvbW1hbmQgPSAoKSA9PlxuICBuZXcgQ29tbWFuZChcInNhdmVtb25leVwiKVxuICAgIC5kZXNjcmlwdGlvbihcbiAgICAgIFwiQW5hbHl6ZSBBenVyZSBzdWJzY3JpcHRpb25zIGFuZCByZXBvcnQgdW51c2VkIG9yIGluZWZmaWNpZW50IHJlc291cmNlc1wiLFxuICAgIClcbiAgICAub3B0aW9uKFwiLWMsIC0tY29uZmlnIDxwYXRoPlwiLCBcIlBhdGggdG8gWUFNTCBjb25maWd1cmF0aW9uIGZpbGVcIilcbiAgICAub3B0aW9uKFxuICAgICAgXCItZiwgLS1mb3JtYXQgPGZvcm1hdD5cIixcbiAgICAgIFwiUmVwb3J0IGZvcm1hdDoganNvbiwgdGFibGUsIGRldGFpbGVkLWpzb24sIG9yIGxpbnQgKGRlZmF1bHQ6IHRhYmxlKVwiLFxuICAgICAgXCJ0YWJsZVwiLFxuICAgIClcbiAgICAub3B0aW9uKFxuICAgICAgXCItbCwgLS1sb2NhdGlvbiA8c3RyaW5nPlwiLFxuICAgICAgXCJQcmVmZXJyZWQgQXp1cmUgbG9jYXRpb24gZm9yIHJlc291cmNlcyAob3ZlcnJpZGVzIGNvbmZpZyBmaWxlKVwiLFxuICAgICAgXCJpdGFseW5vcnRoXCIsXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICBcIi1kLCAtLWRheXMgPG51bWJlcj5cIixcbiAgICAgIFwiTnVtYmVyIG9mIGRheXMgZm9yIG1ldHJpY3MgYW5hbHlzaXMgKG92ZXJyaWRlcyBjb25maWcgZmlsZSlcIixcbiAgICAgIFwiMzBcIixcbiAgICApXG4gICAgLm9wdGlvbihcbiAgICAgIFwiLXQsIC0tdGFncyA8dGFncy4uLj5cIixcbiAgICAgIFwiRmlsdGVyIGZpbmRpbmdzIGJ5IHJlc291cmNlIHRhZ3MgKGtleT12YWx1ZSBrZXkyPXZhbHVlMikuIEFkdmlzb3Igc3Vic2NyaXB0aW9uLWxldmVsIGZpbmRpbmdzIHJlbWFpbiBnbG9iYWwuXCIsXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICBcIi1zLCAtLXNvdXJjZSA8c291cmNlPlwiLFxuICAgICAgXCJSZXN0cmljdCBmaW5kaW5ncyB0byBhIHNpbmdsZSBzb3VyY2U6ICdhZHZpc29yJywgJ2N1c3RvbScsIG9yICdhbGwnIChkZWZhdWx0cyB0byBjb25maWcgZmlsZSBvciBhbGwpXCIsXG4gICAgICBwYXJzZVNvdXJjZU9wdGlvbixcbiAgICApXG4gICAgLm9wdGlvbihcbiAgICAgIFwiLS1uby1wcmljaW5nXCIsXG4gICAgICBcIkRpc2FibGUgQXp1cmUgUmV0YWlsIFByaWNlcyBlbnJpY2htZW50IChza2lwcyBjdXN0b20gY29zdC1hdC1yaXNrIGVzdGltYXRlcylcIixcbiAgICApXG4gICAgLm9wdGlvbihcbiAgICAgIFwiLS1henFyLXJlcG9ydCA8cGF0aD5cIixcbiAgICAgIFwiUGF0aCB0byBhbiBBWlFSIChgYXpxciBzY2FuIC0tanNvbmApIHJlcG9ydDsgaXRzIEZpbk9wcy1yZWxldmFudCBpbXBhY3RlZCByZXNvdXJjZXMgYXJlIG1lcmdlZCBpbnRvIHRoZSBvdXRwdXQuIE92ZXJyaWRlcyBgYXp1cmUuYXpxclJlcG9ydFBhdGhgIGZyb20gdGhlIGNvbmZpZyBmaWxlLiBSdW4gQVpRUiB3aXRoIGAtLW1hc2s9ZmFsc2VgIHNvIHJlc291cmNlIElEcyBtYXRjaC5cIixcbiAgICApXG4gICAgLmFjdGlvbihhc3luYyBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgY29uc3QgeyB2ZXJib3NlIH0gPSB0aGlzLm9wdHNXaXRoR2xvYmFsczxHbG9iYWxPcHRpb25zPigpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gTG9hZCBjb25maWd1cmF0aW9uIGZyb20gWUFNTCAoaW5jbHVkZXMgc3Vic2NyaXB0aW9uSWRzLCBsb2NhdGlvbiwgdGltZXNwYW5EYXlzLCB0aHJlc2hvbGRzKVxuICAgICAgICBjb25zdCBjb25maWc6IEF6dXJlQ29uZmlnID0gYXdhaXQgbG9hZENvbmZpZyhvcHRpb25zLmNvbmZpZyk7XG5cbiAgICAgICAgLy8gUGFyc2UgdGFnIGZpbHRlclxuICAgICAgICBjb25zdCBmaWx0ZXJUYWdzID0gcGFyc2VUYWdzT3B0aW9uKG9wdGlvbnMudGFncyk7XG4gICAgICAgIGNvbnN0IGNsaURheXMgPSBOdW1iZXIucGFyc2VJbnQob3B0aW9ucy5kYXlzLCAxMCk7XG5cbiAgICAgICAgY29uc3QgZmluYWxDb25maWc6IEF6dXJlQ29uZmlnID0ge1xuICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICAuLi4ob3B0aW9ucy5henFyUmVwb3J0ID8geyBhenFyUmVwb3J0UGF0aDogb3B0aW9ucy5henFyUmVwb3J0IH0gOiB7fSksXG4gICAgICAgICAgZmlsdGVyVGFncyxcbiAgICAgICAgICBwcmVmZXJyZWRMb2NhdGlvbjpcbiAgICAgICAgICAgIHRoaXMuZ2V0T3B0aW9uVmFsdWVTb3VyY2UoXCJsb2NhdGlvblwiKSA9PT0gXCJjbGlcIlxuICAgICAgICAgICAgICA/IG9wdGlvbnMubG9jYXRpb25cbiAgICAgICAgICAgICAgOiBjb25maWcucHJlZmVycmVkTG9jYXRpb24sXG4gICAgICAgICAgLi4uKG9wdGlvbnMucHJpY2luZyA9PT0gZmFsc2UgPyB7IHByaWNpbmc6IHsgZW5hYmxlZDogZmFsc2UgfSB9IDoge30pLFxuICAgICAgICAgIHNvdXJjZXM6IHJlc29sdmVTb3VyY2VzT3B0aW9uKG9wdGlvbnMuc291cmNlLCBjb25maWcuc291cmNlcyksXG4gICAgICAgICAgdGltZXNwYW5EYXlzOlxuICAgICAgICAgICAgdGhpcy5nZXRPcHRpb25WYWx1ZVNvdXJjZShcImRheXNcIikgPT09IFwiY2xpXCIgJiZcbiAgICAgICAgICAgICFOdW1iZXIuaXNOYU4oY2xpRGF5cylcbiAgICAgICAgICAgICAgPyBjbGlEYXlzXG4gICAgICAgICAgICAgIDogY29uZmlnLnRpbWVzcGFuRGF5cyxcbiAgICAgICAgICB2ZXJib3NlOiB2ZXJib3NlID8/IGZhbHNlLFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIFJ1biBhbmFseXNpcyBzaG93aW5nIGEgcHJvZ3Jlc3Mgc3Bpbm5lciBvbiBzdGRlcnIgc28gdGhlIENMSSBkb2Vzbid0XG4gICAgICAgIC8vIGxvb2sgZnJvemVuIGR1cmluZyB0aGUgKHBvdGVudGlhbGx5IHNldmVyYWwtbWludXRlKSBBenVyZSByb3VuZC10cmlwcy5cbiAgICAgICAgY29uc3QgcmVwb3J0cyA9IGF3YWl0IG9yYVByb21pc2UoXG4gICAgICAgICAgYXp1cmUuYW5hbHl6ZUF6dXJlUmVzb3VyY2VzKGZpbmFsQ29uZmlnKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmYWlsVGV4dDogXCJBbmFseXNpcyBmYWlsZWRcIixcbiAgICAgICAgICAgIHN0cmVhbTogcHJvY2Vzcy5zdGRlcnIsXG4gICAgICAgICAgICBzdWNjZXNzVGV4dDogXCJBbmFseXNpcyBjb21wbGV0ZVwiLFxuICAgICAgICAgICAgdGV4dDogXCJBbmFseXppbmcgQXp1cmUgcmVzb3VyY2VzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgYXp1cmUuZ2VuZXJhdGVSZXBvcnQocmVwb3J0cywgb3B0aW9ucy5mb3JtYXQpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgZXhpdFdpdGhFcnJvcih0aGlzKShcbiAgICAgICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yXG4gICAgICAgICAgICA/IG5ldyBFcnJvcihgQW5hbHlzaXMgZmFpbGVkOiAke2Vycm9yLm1lc3NhZ2V9YCwgeyBjYXVzZTogZXJyb3IgfSlcbiAgICAgICAgICAgIDogbmV3IEVycm9yKGBBbmFseXNpcyBmYWlsZWQ6ICR7U3RyaW5nKGVycm9yKX1gKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuY29uc3QgU291cmNlU2NoZW1hID0gei5lbnVtKFsuLi5BWlVSRV9TT1VSQ0VfVkFMVUVTLCBcImFsbFwiXSk7XG50eXBlIFNvdXJjZU9wdGlvbiA9IHouaW5mZXI8dHlwZW9mIFNvdXJjZVNjaGVtYT47XG5cbi8qKlxuICogUGFyc2VzIHRoZSBgLS1zb3VyY2VgIG9wdGlvbiB2aWEgYSB6b2QgZW51bSwgYWNjZXB0aW5nIGBhbGxgLCBgYWR2aXNvcmAsXG4gKiBvciBgY3VzdG9tYCBhbmQgcmVqZWN0aW5nIGFueSBvdGhlciB2YWx1ZSB3aXRoIGEgQ29tbWFuZGVyLWZyaWVuZGx5IGVycm9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTb3VyY2VPcHRpb24odmFsdWU6IHN0cmluZyk6IFNvdXJjZU9wdGlvbiB7XG4gIGNvbnN0IHJlc3VsdCA9IFNvdXJjZVNjaGVtYS5zYWZlUGFyc2UodmFsdWUpO1xuICBpZiAoIXJlc3VsdC5zdWNjZXNzKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgYEFsbG93ZWQgdmFsdWVzIGFyZTogJHtTb3VyY2VTY2hlbWEub3B0aW9ucy5qb2luKFwiLCBcIil9YCxcbiAgICApO1xuICB9XG4gIHJldHVybiByZXN1bHQuZGF0YTtcbn1cblxuLyoqXG4gKiBQYXJzZXMgYW4gYXJyYXkgb2YgXCJrZXk9dmFsdWVcIiBzdHJpbmdzIChmcm9tIGNvbW1hbmRlciB2YXJpYWRpYyBvcHRpb24pIGludG8gYSBNYXA8c3RyaW5nLCBzdHJpbmc+LlxuICogUmV0dXJucyBhbiBlbXB0eSBNYXAgd2hlbiB0aGUgb3B0aW9uIGlzIG5vdCBwcm92aWRlZCBvciBlbXB0eS5cbiAqIFN1cHBvcnRzIHZhbHVlcyB0aGF0IGNvbnRhaW4gXCI9XCIgKG9ubHkgdGhlIGZpcnN0IFwiPVwiIGlzIHRyZWF0ZWQgYXMgc2VwYXJhdG9yKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVGFnc09wdGlvbihcbiAgdGFnc09wdGlvbjogc3RyaW5nW10gfCB1bmRlZmluZWQsXG4pOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgaWYgKCF0YWdzT3B0aW9uIHx8IHRhZ3NPcHRpb24ubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBmb3IgKGNvbnN0IHBhaXIgb2YgdGFnc09wdGlvbikge1xuICAgIGNvbnN0IFtyYXdLZXksIC4uLnJlc3RdID0gcGFpci5zcGxpdChcIj1cIik7XG4gICAgY29uc3Qga2V5ID0gcmF3S2V5Py50cmltKCk7XG4gICAgY29uc3QgdmFsdWUgPSByZXN0LmpvaW4oXCI9XCIpLnRyaW0oKTtcbiAgICBpZiAoa2V5ICYmIHJlc3QubGVuZ3RoID4gMCkge1xuICAgICAgcmVzdWx0LnNldChrZXksIHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgc291cmNlIGZpbHRlciBwcmVzZXJ2aW5nIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYW4gb21pdHRlZFxuICogb3B0aW9uIChyZXNwZWN0IGNvbmZpZy9kZWZhdWx0cykgYW5kIGFuIGV4cGxpY2l0IGAtLXNvdXJjZSBhbGxgIG92ZXJyaWRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVNvdXJjZXNPcHRpb24oXG4gIG9wdGlvbjogU291cmNlT3B0aW9uIHwgdW5kZWZpbmVkLFxuICBjb25maWdTb3VyY2VzOiBBenVyZUNvbmZpZ1tcInNvdXJjZXNcIl0sXG4pOiBBenVyZUNvbmZpZ1tcInNvdXJjZXNcIl0ge1xuICBpZiAob3B0aW9uID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gY29uZmlnU291cmNlcztcbiAgfVxuICByZXR1cm4gb3B0aW9uID09PSBcImFsbFwiID8gWy4uLkFaVVJFX1NPVVJDRV9WQUxVRVNdIDogW29wdGlvbl07XG59XG4iXX0=
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZW1vbmV5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FkYXB0ZXJzL2NvbW1hbmRlci9jb21tYW5kcy9zYXZlbW9uZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNDLE9BQU8sRUFDTCxLQUFLLEVBQ0wsbUJBQW1CLEVBQ25CLDJDQUEyQyxFQUMzQyx3Q0FBd0MsRUFDeEMsVUFBVSxHQUNYLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3JELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsRUFBRSxDQUN2QyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUM7S0FDckIsV0FBVyxDQUNWLHdFQUF3RSxDQUN6RTtLQUNBLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxpQ0FBaUMsQ0FBQztLQUNoRSxNQUFNLENBQ0wsdUJBQXVCLEVBQ3ZCLHFFQUFxRSxFQUNyRSxPQUFPLENBQ1I7S0FDQSxNQUFNLENBQ0wseUJBQXlCLEVBQ3pCLGdFQUFnRSxFQUNoRSxZQUFZLENBQ2I7S0FDQSxNQUFNLENBQ0wscUJBQXFCLEVBQ3JCLDZEQUE2RCxFQUM3RCxJQUFJLENBQ0w7S0FDQSxNQUFNLENBQ0wsc0JBQXNCLEVBQ3RCLDhHQUE4RyxDQUMvRztLQUNBLE1BQU0sQ0FDTCx1QkFBdUIsRUFDdkIsc0dBQXNHLEVBQ3RHLGlCQUFpQixDQUNsQjtLQUNBLE1BQU0sQ0FDTCxjQUFjLEVBQ2QsOEVBQThFLENBQy9FO0tBQ0EsTUFBTSxDQUNM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LENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEMsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLE1BQWdDLEVBQ2hDLGFBQXFDO0lBRXJDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxPQUFPLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEF6dXJlQ29uZmlnIH0gZnJvbSBcIkBwYWdvcGEvZHgtc2F2ZW1vbmV5XCI7XG5cbmltcG9ydCB7IHRyYWNlIH0gZnJvbSBcIkBvcGVudGVsZW1ldHJ5L2FwaVwiO1xuaW1wb3J0IHtcbiAgYXp1cmUsXG4gIEFaVVJFX1NPVVJDRV9WQUxVRVMsXG4gIGJ1aWxkU2F2ZW1vbmV5SW52b2NhdGlvblRlbGVtZXRyeUF0dHJpYnV0ZXMsXG4gIGJ1aWxkU2F2ZW1vbmV5T3V0Y29tZVRlbGVtZXRyeUF0dHJpYnV0ZXMsXG4gIGxvYWRDb25maWcsXG59IGZyb20gXCJAcGFnb3BhL2R4LXNhdmVtb25leVwiO1xuaW1wb3J0IHsgQ29tbWFuZCwgSW52YWxpZEFyZ3VtZW50RXJyb3IgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQgeyBvcmFQcm9taXNlIH0gZnJvbSBcIm9yYVwiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuaW1wb3J0IHsgZXhpdFdpdGhFcnJvciB9IGZyb20gXCIuLi9jb21tYW5kLWVycm9ycy5qc1wiO1xuaW1wb3J0IHsgR2xvYmFsT3B0aW9ucyB9IGZyb20gXCIuLi9nbG9iYWwtb3B0aW9ucy5qc1wiO1xuXG5leHBvcnQgY29uc3QgbWFrZVNhdmVtb25leUNvbW1hbmQgPSAoKSA9PlxuICBuZXcgQ29tbWFuZChcInNhdmVtb25leVwiKVxuICAgIC5kZXNjcmlwdGlvbihcbiAgICAgIFwiQW5hbHl6ZSBBenVyZSBzdWJzY3JpcHRpb25zIGFuZCByZXBvcnQgdW51c2VkIG9yIGluZWZmaWNpZW50IHJlc291cmNlc1wiLFxuICAgIClcbiAgICAub3B0aW9uKFwiLWMsIC0tY29uZmlnIDxwYXRoPlwiLCBcIlBhdGggdG8gWUFNTCBjb25maWd1cmF0aW9uIGZpbGVcIilcbiAgICAub3B0aW9uKFxuICAgICAgXCItZiwgLS1mb3JtYXQgPGZvcm1hdD5cIixcbiAgICAgIFwiUmVwb3J0IGZvcm1hdDoganNvbiwgdGFibGUsIGRldGFpbGVkLWpzb24sIG9yIGxpbnQgKGRlZmF1bHQ6IHRhYmxlKVwiLFxuICAgICAgXCJ0YWJsZVwiLFxuICAgIClcbiAgICAub3B0aW9uKFxuICAgICAgXCItbCwgLS1sb2NhdGlvbiA8c3RyaW5nPlwiLFxuICAgICAgXCJQcmVmZXJyZWQgQXp1cmUgbG9jYXRpb24gZm9yIHJlc291cmNlcyAob3ZlcnJpZGVzIGNvbmZpZyBmaWxlKVwiLFxuICAgICAgXCJpdGFseW5vcnRoXCIsXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICBcIi1kLCAtLWRheXMgPG51bWJlcj5cIixcbiAgICAgIFwiTnVtYmVyIG9mIGRheXMgZm9yIG1ldHJpY3MgYW5hbHlzaXMgKG92ZXJyaWRlcyBjb25maWcgZmlsZSlcIixcbiAgICAgIFwiMzBcIixcbiAgICApXG4gICAgLm9wdGlvbihcbiAgICAgIFwiLXQsIC0tdGFncyA8dGFncy4uLj5cIixcbiAgICAgIFwiRmlsdGVyIGZpbmRpbmdzIGJ5IHJlc291cmNlIHRhZ3MgKGtleT12YWx1ZSBrZXkyPXZhbHVlMikuIEFkdmlzb3Igc3Vic2NyaXB0aW9uLWxldmVsIGZpbmRpbmdzIHJlbWFpbiBnbG9iYWwuXCIsXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICBcIi1zLCAtLXNvdXJjZSA8c291cmNlPlwiLFxuICAgICAgXCJSZXN0cmljdCBmaW5kaW5ncyB0byBhIHNpbmdsZSBzb3VyY2U6ICdhZHZpc29yJywgJ2N1c3RvbScsIG9yICdhbGwnIChkZWZhdWx0cyB0byBjb25maWcgZmlsZSBvciBhbGwpXCIsXG4gICAgICBwYXJzZVNvdXJjZU9wdGlvbixcbiAgICApXG4gICAgLm9wdGlvbihcbiAgICAgIFwiLS1uby1wcmljaW5nXCIsXG4gICAgICBcIkRpc2FibGUgQXp1cmUgUmV0YWlsIFByaWNlcyBlbnJpY2htZW50IChza2lwcyBjdXN0b20gY29zdC1hdC1yaXNrIGVzdGltYXRlcylcIixcbiAgICApXG4gICAgLm9wdGlvbihcbiAgICAgIFwiLS1henFyLXJlcG9ydCA8cGF0aD5cIixcbiAgICAgIFwiUGF0aCB0byBhbiBBWlFSIChgYXpxciBzY2FuIC0tanNvbmApIHJlcG9ydDsgaXRzIEZpbk9wcy1yZWxldmFudCBpbXBhY3RlZCByZXNvdXJjZXMgYXJlIG1lcmdlZCBpbnRvIHRoZSBvdXRwdXQuIE92ZXJyaWRlcyBgYXp1cmUuYXpxclJlcG9ydFBhdGhgIGZyb20gdGhlIGNvbmZpZyBmaWxlLiBSdW4gQVpRUiB3aXRoIGAtLW1hc2s9ZmFsc2VgIHNvIHJlc291cmNlIElEcyBtYXRjaC5cIixcbiAgICApXG4gICAgLmFjdGlvbihhc3luYyBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgY29uc3QgeyB2ZXJib3NlIH0gPSB0aGlzLm9wdHNXaXRoR2xvYmFsczxHbG9iYWxPcHRpb25zPigpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gTG9hZCBjb25maWd1cmF0aW9uIGZyb20gWUFNTCAoaW5jbHVkZXMgc3Vic2NyaXB0aW9uSWRzLCBsb2NhdGlvbiwgdGltZXNwYW5EYXlzLCB0aHJlc2hvbGRzKVxuICAgICAgICBjb25zdCBjb25maWc6IEF6dXJlQ29uZmlnID0gYXdhaXQgbG9hZENvbmZpZyhvcHRpb25zLmNvbmZpZyk7XG5cbiAgICAgICAgLy8gUGFyc2UgdGFnIGZpbHRlclxuICAgICAgICBjb25zdCBmaWx0ZXJUYWdzID0gcGFyc2VUYWdzT3B0aW9uKG9wdGlvbnMudGFncyk7XG4gICAgICAgIGNvbnN0IGNsaURheXMgPSBOdW1iZXIucGFyc2VJbnQob3B0aW9ucy5kYXlzLCAxMCk7XG5cbiAgICAgICAgY29uc3QgZmluYWxDb25maWc6IEF6dXJlQ29uZmlnID0ge1xuICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICAuLi4ob3B0aW9ucy5henFyUmVwb3J0ID8geyBhenFyUmVwb3J0UGF0aDogb3B0aW9ucy5henFyUmVwb3J0IH0gOiB7fSksXG4gICAgICAgICAgZmlsdGVyVGFncyxcbiAgICAgICAgICBwcmVmZXJyZWRMb2NhdGlvbjpcbiAgICAgICAgICAgIHRoaXMuZ2V0T3B0aW9uVmFsdWVTb3VyY2UoXCJsb2NhdGlvblwiKSA9PT0gXCJjbGlcIlxuICAgICAgICAgICAgICA/IG9wdGlvbnMubG9jYXRpb25cbiAgICAgICAgICAgICAgOiBjb25maWcucHJlZmVycmVkTG9jYXRpb24sXG4gICAgICAgICAgLi4uKG9wdGlvbnMucHJpY2luZyA9PT0gZmFsc2UgPyB7IHByaWNpbmc6IHsgZW5hYmxlZDogZmFsc2UgfSB9IDoge30pLFxuICAgICAgICAgIHNvdXJjZXM6IHJlc29sdmVTb3VyY2VzT3B0aW9uKG9wdGlvbnMuc291cmNlLCBjb25maWcuc291cmNlcyksXG4gICAgICAgICAgdGltZXNwYW5EYXlzOlxuICAgICAgICAgICAgdGhpcy5nZXRPcHRpb25WYWx1ZVNvdXJjZShcImRheXNcIikgPT09IFwiY2xpXCIgJiZcbiAgICAgICAgICAgICFOdW1iZXIuaXNOYU4oY2xpRGF5cylcbiAgICAgICAgICAgICAgPyBjbGlEYXlzXG4gICAgICAgICAgICAgIDogY29uZmlnLnRpbWVzcGFuRGF5cyxcbiAgICAgICAgICB2ZXJib3NlOiB2ZXJib3NlID8/IGZhbHNlLFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIFJlY29yZCB1c2FnZSBhdHRyaWJ1dGVzIG9uIHRoZSBhY3RpdmUgcm9vdCBzcGFuIHNvIEFwcGxpY2F0aW9uXG4gICAgICAgIC8vIEluc2lnaHRzIGNhbiBzbGljZSB1c2FnZSBieSBmb3JtYXQsIHNvdXJjZSwgYW5kIGZlYXR1cmUgZmxhZ3MuXG4gICAgICAgIHRyYWNlLmdldEFjdGl2ZVNwYW4oKT8uc2V0QXR0cmlidXRlcyhcbiAgICAgICAgICBidWlsZFNhdmVtb25leUludm9jYXRpb25UZWxlbWV0cnlBdHRyaWJ1dGVzKHtcbiAgICAgICAgICAgIGF6cXJSZXBvcnRQYXRoT3B0aW9uOiBvcHRpb25zLmF6cXJSZXBvcnQsXG4gICAgICAgICAgICBjb25maWdQYXRoT3B0aW9uOiBvcHRpb25zLmNvbmZpZyxcbiAgICAgICAgICAgIGZvcm1hdDogb3B0aW9ucy5mb3JtYXQsXG4gICAgICAgICAgICByZXNvbHZlZENvbmZpZzogZmluYWxDb25maWcsXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25JZHNFbnY6IHByb2Nlc3MuZW52LkFSTV9TVUJTQ1JJUFRJT05fSUQsXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gUnVuIGFuYWx5c2lzIHNob3dpbmcgYSBwcm9ncmVzcyBzcGlubmVyIG9uIHN0ZGVyciBzbyB0aGUgQ0xJIGRvZXNuJ3RcbiAgICAgICAgLy8gbG9vayBmcm96ZW4gZHVyaW5nIHRoZSAocG90ZW50aWFsbHkgc2V2ZXJhbC1taW51dGUpIEF6dXJlIHJvdW5kLXRyaXBzLlxuICAgICAgICBjb25zdCByZXBvcnRzID0gYXdhaXQgb3JhUHJvbWlzZShcbiAgICAgICAgICBhenVyZS5hbmFseXplQXp1cmVSZXNvdXJjZXMoZmluYWxDb25maWcpLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZhaWxUZXh0OiBcIkFuYWx5c2lzIGZhaWxlZFwiLFxuICAgICAgICAgICAgc3RyZWFtOiBwcm9jZXNzLnN0ZGVycixcbiAgICAgICAgICAgIHN1Y2Nlc3NUZXh0OiBcIkFuYWx5c2lzIGNvbXBsZXRlXCIsXG4gICAgICAgICAgICB0ZXh0OiBcIkFuYWx5emluZyBBenVyZSByZXNvdXJjZXNcIixcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFJlY29yZCBvdXRjb21lIGF0dHJpYnV0ZXMgYWZ0ZXIgYW5hbHlzaXMgY29tcGxldGVzLlxuICAgICAgICB0cmFjZVxuICAgICAgICAgIC5nZXRBY3RpdmVTcGFuKClcbiAgICAgICAgICA/LnNldEF0dHJpYnV0ZXMoYnVpbGRTYXZlbW9uZXlPdXRjb21lVGVsZW1ldHJ5QXR0cmlidXRlcyhyZXBvcnRzKSk7XG5cbiAgICAgICAgYXdhaXQgYXp1cmUuZ2VuZXJhdGVSZXBvcnQocmVwb3J0cywgb3B0aW9ucy5mb3JtYXQpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgZXhpdFdpdGhFcnJvcih0aGlzKShcbiAgICAgICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yXG4gICAgICAgICAgICA/IG5ldyBFcnJvcihgQW5hbHlzaXMgZmFpbGVkOiAke2Vycm9yLm1lc3NhZ2V9YCwgeyBjYXVzZTogZXJyb3IgfSlcbiAgICAgICAgICAgIDogbmV3IEVycm9yKGBBbmFseXNpcyBmYWlsZWQ6ICR7U3RyaW5nKGVycm9yKX1gKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuY29uc3QgU291cmNlU2NoZW1hID0gei5lbnVtKFsuLi5BWlVSRV9TT1VSQ0VfVkFMVUVTLCBcImFsbFwiXSk7XG50eXBlIFNvdXJjZU9wdGlvbiA9IHouaW5mZXI8dHlwZW9mIFNvdXJjZVNjaGVtYT47XG5cbi8qKlxuICogUGFyc2VzIHRoZSBgLS1zb3VyY2VgIG9wdGlvbiB2aWEgYSB6b2QgZW51bSwgYWNjZXB0aW5nIGBhbGxgLCBgYWR2aXNvcmAsXG4gKiBvciBgY3VzdG9tYCBhbmQgcmVqZWN0aW5nIGFueSBvdGhlciB2YWx1ZSB3aXRoIGEgQ29tbWFuZGVyLWZyaWVuZGx5IGVycm9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTb3VyY2VPcHRpb24odmFsdWU6IHN0cmluZyk6IFNvdXJjZU9wdGlvbiB7XG4gIGNvbnN0IHJlc3VsdCA9IFNvdXJjZVNjaGVtYS5zYWZlUGFyc2UodmFsdWUpO1xuICBpZiAoIXJlc3VsdC5zdWNjZXNzKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgYEFsbG93ZWQgdmFsdWVzIGFyZTogJHtTb3VyY2VTY2hlbWEub3B0aW9ucy5qb2luKFwiLCBcIil9YCxcbiAgICApO1xuICB9XG4gIHJldHVybiByZXN1bHQuZGF0YTtcbn1cblxuLyoqXG4gKiBQYXJzZXMgYW4gYXJyYXkgb2YgXCJrZXk9dmFsdWVcIiBzdHJpbmdzIChmcm9tIGNvbW1hbmRlciB2YXJpYWRpYyBvcHRpb24pIGludG8gYSBNYXA8c3RyaW5nLCBzdHJpbmc+LlxuICogUmV0dXJucyBhbiBlbXB0eSBNYXAgd2hlbiB0aGUgb3B0aW9uIGlzIG5vdCBwcm92aWRlZCBvciBlbXB0eS5cbiAqIFN1cHBvcnRzIHZhbHVlcyB0aGF0IGNvbnRhaW4gXCI9XCIgKG9ubHkgdGhlIGZpcnN0IFwiPVwiIGlzIHRyZWF0ZWQgYXMgc2VwYXJhdG9yKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVGFnc09wdGlvbihcbiAgdGFnc09wdGlvbjogc3RyaW5nW10gfCB1bmRlZmluZWQsXG4pOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgaWYgKCF0YWdzT3B0aW9uIHx8IHRhZ3NPcHRpb24ubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBmb3IgKGNvbnN0IHBhaXIgb2YgdGFnc09wdGlvbikge1xuICAgIGNvbnN0IFtyYXdLZXksIC4uLnJlc3RdID0gcGFpci5zcGxpdChcIj1cIik7XG4gICAgY29uc3Qga2V5ID0gcmF3S2V5Py50cmltKCk7XG4gICAgY29uc3QgdmFsdWUgPSByZXN0LmpvaW4oXCI9XCIpLnRyaW0oKTtcbiAgICBpZiAoa2V5ICYmIHJlc3QubGVuZ3RoID4gMCkge1xuICAgICAgcmVzdWx0LnNldChrZXksIHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgc291cmNlIGZpbHRlciBwcmVzZXJ2aW5nIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYW4gb21pdHRlZFxuICogb3B0aW9uIChyZXNwZWN0IGNvbmZpZy9kZWZhdWx0cykgYW5kIGFuIGV4cGxpY2l0IGAtLXNvdXJjZSBhbGxgIG92ZXJyaWRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVNvdXJjZXNPcHRpb24oXG4gIG9wdGlvbjogU291cmNlT3B0aW9uIHwgdW5kZWZpbmVkLFxuICBjb25maWdTb3VyY2VzOiBBenVyZUNvbmZpZ1tcInNvdXJjZXNcIl0sXG4pOiBBenVyZUNvbmZpZ1tcInNvdXJjZXNcIl0ge1xuICBpZiAob3B0aW9uID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gY29uZmlnU291cmNlcztcbiAgfVxuICByZXR1cm4gb3B0aW9uID09PSBcImFsbFwiID8gWy4uLkFaVVJFX1NPVVJDRV9WQUxVRVNdIDogW29wdGlvbl07XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pagopa/dx-cli",
3
- "version": "0.27.0",
3
+ "version": "0.27.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.6.1"
59
+ "@pagopa/dx-savemoney": "^0.6.3"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@tsconfig/node24": "24.0.4",
@@ -79,8 +79,6 @@
79
79
  "node": ">=22.0.0"
80
80
  },
81
81
  "scripts": {
82
- "format": "prettier --write .",
83
- "format:check": "prettier --check .",
84
82
  "plop": "plop"
85
83
  }
86
84
  }