azp-cli 0.0.1 → 0.0.4

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.
@@ -0,0 +1,208 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.expandTemplate = exports.resolveDeactivatePresetOptions = exports.resolveActivatePresetOptions = exports.setDefaultPresetName = exports.removePreset = exports.upsertPreset = exports.getPreset = exports.listPresetNames = exports.savePresets = exports.loadPresets = exports.normalizePresetsFile = exports.getDefaultPresetsFilePath = void 0;
7
+ const promises_1 = require("node:fs/promises");
8
+ const node_os_1 = __importDefault(require("node:os"));
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ const AZP_PRESETS_PATH_ENV = "AZP_PRESETS_PATH";
11
+ const getDefaultPresetsFilePath = () => {
12
+ const envOverride = process.env[AZP_PRESETS_PATH_ENV];
13
+ if (envOverride && envOverride.trim()) {
14
+ return envOverride.trim();
15
+ }
16
+ const appName = "azp-cli";
17
+ const platform = process.platform;
18
+ if (platform === "win32") {
19
+ const appData = process.env.APPDATA;
20
+ const base = appData && appData.trim() ? appData.trim() : node_path_1.default.join(node_os_1.default.homedir(), "AppData", "Roaming");
21
+ return node_path_1.default.join(base, appName, "presets.json");
22
+ }
23
+ const xdgConfigHome = process.env.XDG_CONFIG_HOME;
24
+ const base = xdgConfigHome && xdgConfigHome.trim() ? xdgConfigHome.trim() : node_path_1.default.join(node_os_1.default.homedir(), ".config");
25
+ return node_path_1.default.join(base, appName, "presets.json");
26
+ };
27
+ exports.getDefaultPresetsFilePath = getDefaultPresetsFilePath;
28
+ const isObject = (value) => {
29
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
30
+ };
31
+ const normalizeStringArray = (value) => {
32
+ if (value === undefined)
33
+ return undefined;
34
+ if (!Array.isArray(value))
35
+ return undefined;
36
+ const strings = value.filter((v) => typeof v === "string").map((v) => v.trim()).filter(Boolean);
37
+ return strings;
38
+ };
39
+ const validateActivateOptions = (value) => {
40
+ if (value === undefined)
41
+ return undefined;
42
+ if (!isObject(value))
43
+ throw new Error("Invalid presets file: defaults.activate/presets[].activate must be an object");
44
+ const roleNames = normalizeStringArray(value.roleNames);
45
+ const subscriptionId = typeof value.subscriptionId === "string" ? value.subscriptionId : undefined;
46
+ const durationHours = typeof value.durationHours === "number" ? value.durationHours : undefined;
47
+ const justification = typeof value.justification === "string" ? value.justification : undefined;
48
+ const allowMultiple = typeof value.allowMultiple === "boolean" ? value.allowMultiple : undefined;
49
+ return { subscriptionId, roleNames, durationHours, justification, allowMultiple };
50
+ };
51
+ const validateDeactivateOptions = (value) => {
52
+ if (value === undefined)
53
+ return undefined;
54
+ if (!isObject(value))
55
+ throw new Error("Invalid presets file: defaults.deactivate/presets[].deactivate must be an object");
56
+ const roleNames = normalizeStringArray(value.roleNames);
57
+ const subscriptionId = typeof value.subscriptionId === "string" ? value.subscriptionId : undefined;
58
+ const justification = typeof value.justification === "string" ? value.justification : undefined;
59
+ const allowMultiple = typeof value.allowMultiple === "boolean" ? value.allowMultiple : undefined;
60
+ return { subscriptionId, roleNames, justification, allowMultiple };
61
+ };
62
+ const validatePresetEntry = (value) => {
63
+ if (!isObject(value))
64
+ throw new Error("Invalid presets file: each preset must be an object");
65
+ const description = typeof value.description === "string" ? value.description : undefined;
66
+ const activate = validateActivateOptions(value.activate);
67
+ const deactivate = validateDeactivateOptions(value.deactivate);
68
+ return { description, activate, deactivate };
69
+ };
70
+ const normalizePresetsFile = (value) => {
71
+ if (!isObject(value)) {
72
+ throw new Error("Invalid presets file: expected a JSON object at the top level");
73
+ }
74
+ const version = value.version;
75
+ if (version !== 1) {
76
+ throw new Error(`Invalid presets file: expected { version: 1 }, got version=${String(version)}`);
77
+ }
78
+ const defaultsRaw = value.defaults;
79
+ let defaults;
80
+ if (defaultsRaw !== undefined) {
81
+ if (!isObject(defaultsRaw))
82
+ throw new Error("Invalid presets file: defaults must be an object");
83
+ defaults = {
84
+ activatePreset: typeof defaultsRaw.activatePreset === "string" ? defaultsRaw.activatePreset : undefined,
85
+ deactivatePreset: typeof defaultsRaw.deactivatePreset === "string" ? defaultsRaw.deactivatePreset : undefined,
86
+ activate: validateActivateOptions(defaultsRaw.activate),
87
+ deactivate: validateDeactivateOptions(defaultsRaw.deactivate),
88
+ };
89
+ }
90
+ const presetsRaw = value.presets;
91
+ let presets;
92
+ if (presetsRaw !== undefined) {
93
+ if (!isObject(presetsRaw))
94
+ throw new Error("Invalid presets file: presets must be an object map");
95
+ presets = {};
96
+ for (const [name, entry] of Object.entries(presetsRaw)) {
97
+ presets[name] = validatePresetEntry(entry);
98
+ }
99
+ }
100
+ return {
101
+ version: 1,
102
+ defaults,
103
+ presets,
104
+ };
105
+ };
106
+ exports.normalizePresetsFile = normalizePresetsFile;
107
+ const loadPresets = async (filePath = (0, exports.getDefaultPresetsFilePath)()) => {
108
+ try {
109
+ const raw = await (0, promises_1.readFile)(filePath, "utf8");
110
+ const json = JSON.parse(raw);
111
+ return { filePath, data: (0, exports.normalizePresetsFile)(json), exists: true };
112
+ }
113
+ catch (error) {
114
+ if (error?.code === "ENOENT") {
115
+ return { filePath, data: { version: 1, presets: {} }, exists: false };
116
+ }
117
+ if (error instanceof SyntaxError) {
118
+ throw new Error(`Invalid presets file JSON at ${filePath}`);
119
+ }
120
+ throw error;
121
+ }
122
+ };
123
+ exports.loadPresets = loadPresets;
124
+ const savePresets = async (filePath, data) => {
125
+ const dir = node_path_1.default.dirname(filePath);
126
+ await (0, promises_1.mkdir)(dir, { recursive: true });
127
+ const payload = JSON.stringify(data, null, 2);
128
+ await (0, promises_1.writeFile)(filePath, `${payload}\n`, "utf8");
129
+ };
130
+ exports.savePresets = savePresets;
131
+ const listPresetNames = (data) => {
132
+ const presets = data.presets ?? {};
133
+ return Object.keys(presets).sort((a, b) => a.localeCompare(b));
134
+ };
135
+ exports.listPresetNames = listPresetNames;
136
+ const getPreset = (data, name) => {
137
+ return data.presets?.[name];
138
+ };
139
+ exports.getPreset = getPreset;
140
+ const upsertPreset = (data, name, entry) => {
141
+ const next = {
142
+ version: 1,
143
+ defaults: data.defaults,
144
+ presets: { ...(data.presets ?? {}) },
145
+ };
146
+ next.presets[name] = entry;
147
+ return next;
148
+ };
149
+ exports.upsertPreset = upsertPreset;
150
+ const removePreset = (data, name) => {
151
+ const current = data.presets ?? {};
152
+ const { [name]: _removed, ...rest } = current;
153
+ return { version: 1, defaults: data.defaults, presets: rest };
154
+ };
155
+ exports.removePreset = removePreset;
156
+ const setDefaultPresetName = (data, command, name) => {
157
+ const defaults = { ...(data.defaults ?? {}) };
158
+ if (command === "activate") {
159
+ defaults.activatePreset = name;
160
+ }
161
+ else {
162
+ defaults.deactivatePreset = name;
163
+ }
164
+ return { version: 1, defaults, presets: data.presets ?? {} };
165
+ };
166
+ exports.setDefaultPresetName = setDefaultPresetName;
167
+ const resolveActivatePresetOptions = (data, presetName) => {
168
+ const base = data.defaults?.activate ?? {};
169
+ const fromPreset = presetName ? data.presets?.[presetName]?.activate ?? {} : {};
170
+ return {
171
+ subscriptionId: fromPreset.subscriptionId ?? base.subscriptionId,
172
+ roleNames: fromPreset.roleNames ?? base.roleNames,
173
+ durationHours: fromPreset.durationHours ?? base.durationHours,
174
+ justification: fromPreset.justification ?? base.justification,
175
+ allowMultiple: fromPreset.allowMultiple ?? base.allowMultiple,
176
+ };
177
+ };
178
+ exports.resolveActivatePresetOptions = resolveActivatePresetOptions;
179
+ const resolveDeactivatePresetOptions = (data, presetName) => {
180
+ const base = data.defaults?.deactivate ?? {};
181
+ const fromPreset = presetName ? data.presets?.[presetName]?.deactivate ?? {} : {};
182
+ return {
183
+ subscriptionId: fromPreset.subscriptionId ?? base.subscriptionId,
184
+ roleNames: fromPreset.roleNames ?? base.roleNames,
185
+ justification: fromPreset.justification ?? base.justification,
186
+ allowMultiple: fromPreset.allowMultiple ?? base.allowMultiple,
187
+ };
188
+ };
189
+ exports.resolveDeactivatePresetOptions = resolveDeactivatePresetOptions;
190
+ const expandTemplate = (template, context = {}) => {
191
+ const now = context.now ?? new Date();
192
+ const date = now.toISOString().slice(0, 10);
193
+ const datetime = now.toISOString();
194
+ return template.replace(/\$\{([^}]+)\}/g, (_match, keyRaw) => {
195
+ const key = String(keyRaw).trim();
196
+ if (key === "date")
197
+ return date;
198
+ if (key === "datetime")
199
+ return datetime;
200
+ if (key === "userPrincipalName")
201
+ return context.userPrincipalName ?? "";
202
+ if (key === "userId")
203
+ return context.userId ?? "";
204
+ return _match;
205
+ });
206
+ };
207
+ exports.expandTemplate = expandTemplate;
208
+ //# sourceMappingURL=presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"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"}
package/dist/ui.d.ts CHANGED
@@ -1,4 +1,9 @@
1
1
  import { type Ora } from "ora";
2
+ type UiOptions = {
3
+ quiet: boolean;
4
+ };
5
+ export declare const configureUi: (options: Partial<UiOptions>) => void;
6
+ export declare const isQuietMode: () => boolean;
2
7
  export declare const startSpinner: (text: string) => Ora;
3
8
  export declare const updateSpinner: (text: string) => void;
4
9
  export declare const succeedSpinner: (text?: string) => void;
@@ -23,4 +28,5 @@ export declare const showSummary: (title: string, items: {
23
28
  value: string;
24
29
  }[]) => void;
25
30
  export declare const withSpinner: <T>(text: string, operation: () => Promise<T>, successText?: string, failText?: string) => Promise<T>;
31
+ export {};
26
32
  //# sourceMappingURL=ui.d.ts.map
package/dist/ui.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AACA,OAAY,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAYpC,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,GAS3C,CAAC;AAKF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,IAI5C,CAAC;AAKF,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,IAS9C,CAAC;AAKF,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,IAS3C,CAAC;AAKF,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,IAS3C,CAAC;AAKF,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,IAS3C,CAAC;AAKF,eAAO,MAAM,WAAW,QAAO,IAK9B,CAAC;AASF,eAAO,MAAM,OAAO,GAAI,SAAS,MAAM,KAAG,IAEzC,CAAC;AAKF,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,KAAG,IAE5C,CAAC;AAKF,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM,KAAG,IAE1C,CAAC;AAKF,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,KAAG,IAE5C,CAAC;AAKF,eAAO,MAAM,MAAM,GAAI,SAAS,MAAM,KAAG,IAExC,CAAC;AAKF,eAAO,MAAM,QAAQ,QAAO,IAE3B,CAAC;AASF,eAAO,MAAM,UAAU,QAAO,IAM7B,CAAC;AAKF,eAAO,MAAM,WAAW,QAAO,IAE9B,CAAC;AAKF,eAAO,MAAM,UAAU,GAAI,UAAU,MAAM,EAAE,kBAAkB,MAAM,KAAG,MAEvE,CAAC;AAKF,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,EAAE,kBAAkB,MAAM,EAAE,kBAAkB,MAAM,EAAE,eAAe,MAAM,KAAG,MAK9H,CAAC;AAKF,eAAO,MAAM,kBAAkB,GAAI,aAAa,MAAM,EAAE,gBAAgB,MAAM,KAAG,MAEhF,CAAC;AAKF,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,MAe7C,CAAC;AAKF,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,EAAE,OAAO;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,KAAG,IAUtF,CAAC;AAUF,eAAO,MAAM,WAAW,GAAU,CAAC,EAAE,MAAM,MAAM,EAAE,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,MAAM,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,CAAC,CAkBlI,CAAC"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AACA,OAAY,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAEpC,KAAK,SAAS,GAAG;IACf,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAMF,eAAO,MAAM,WAAW,GAAI,SAAS,OAAO,CAAC,SAAS,CAAC,KAAG,IAEzD,CAAC;AAEF,eAAO,MAAM,WAAW,QAAO,OAA0B,CAAC;AAY1D,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,GAa3C,CAAC;AAKF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,IAK5C,CAAC;AAKF,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,IAa9C,CAAC;AAKF,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,IAa3C,CAAC;AAKF,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,IAa3C,CAAC;AAKF,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,IAa3C,CAAC;AAKF,eAAO,MAAM,WAAW,QAAO,IAS9B,CAAC;AASF,eAAO,MAAM,OAAO,GAAI,SAAS,MAAM,KAAG,IAGzC,CAAC;AAKF,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,KAAG,IAG5C,CAAC;AAKF,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM,KAAG,IAG1C,CAAC;AAKF,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,KAAG,IAG5C,CAAC;AAKF,eAAO,MAAM,MAAM,GAAI,SAAS,MAAM,KAAG,IAGxC,CAAC;AAKF,eAAO,MAAM,QAAQ,QAAO,IAG3B,CAAC;AASF,eAAO,MAAM,UAAU,QAAO,IAO7B,CAAC;AAKF,eAAO,MAAM,WAAW,QAAO,IAG9B,CAAC;AAKF,eAAO,MAAM,UAAU,GAAI,UAAU,MAAM,EAAE,kBAAkB,MAAM,KAAG,MAEvE,CAAC;AAKF,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,EAAE,kBAAkB,MAAM,EAAE,kBAAkB,MAAM,EAAE,eAAe,MAAM,KAAG,MAK9H,CAAC;AAKF,eAAO,MAAM,kBAAkB,GAAI,aAAa,MAAM,EAAE,gBAAgB,MAAM,KAAG,MAEhF,CAAC;AAKF,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,MAe7C,CAAC;AAKF,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,EAAE,OAAO;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,KAAG,IAWtF,CAAC;AAUF,eAAO,MAAM,WAAW,GAAU,CAAC,EAAE,MAAM,MAAM,EAAE,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,MAAM,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,CAAC,CAkBlI,CAAC"}
package/dist/ui.js CHANGED
@@ -3,11 +3,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.withSpinner = exports.showSummary = exports.formatStatus = exports.formatSubscription = exports.formatActiveRole = exports.formatRole = exports.showDivider = exports.showHeader = exports.logBlank = exports.logDim = exports.logWarning = exports.logError = exports.logSuccess = exports.logInfo = exports.stopSpinner = exports.infoSpinner = exports.warnSpinner = exports.failSpinner = exports.succeedSpinner = exports.updateSpinner = exports.startSpinner = void 0;
6
+ exports.withSpinner = exports.showSummary = exports.formatStatus = exports.formatSubscription = exports.formatActiveRole = exports.formatRole = exports.showDivider = exports.showHeader = exports.logBlank = exports.logDim = exports.logWarning = exports.logError = exports.logSuccess = exports.logInfo = exports.stopSpinner = exports.infoSpinner = exports.warnSpinner = exports.failSpinner = exports.succeedSpinner = exports.updateSpinner = exports.startSpinner = exports.isQuietMode = exports.configureUi = void 0;
7
7
  const chalk_1 = __importDefault(require("chalk"));
8
8
  const ora_1 = __importDefault(require("ora"));
9
+ let uiOptions = {
10
+ quiet: false,
11
+ };
12
+ const configureUi = (options) => {
13
+ uiOptions = { ...uiOptions, ...options };
14
+ };
15
+ exports.configureUi = configureUi;
16
+ const isQuietMode = () => uiOptions.quiet;
17
+ exports.isQuietMode = isQuietMode;
9
18
  let currentSpinner = null;
10
19
  const startSpinner = (text) => {
20
+ if ((0, exports.isQuietMode)()) {
21
+ currentSpinner = (0, ora_1.default)({ isEnabled: false, text: "" });
22
+ return currentSpinner;
23
+ }
11
24
  if (currentSpinner) {
12
25
  currentSpinner.stop();
13
26
  }
@@ -19,12 +32,18 @@ const startSpinner = (text) => {
19
32
  };
20
33
  exports.startSpinner = startSpinner;
21
34
  const updateSpinner = (text) => {
35
+ if ((0, exports.isQuietMode)())
36
+ return;
22
37
  if (currentSpinner) {
23
38
  currentSpinner.text = chalk_1.default.cyan(text);
24
39
  }
25
40
  };
26
41
  exports.updateSpinner = updateSpinner;
27
42
  const succeedSpinner = (text) => {
43
+ if ((0, exports.isQuietMode)()) {
44
+ currentSpinner = null;
45
+ return;
46
+ }
28
47
  if (currentSpinner) {
29
48
  if (text) {
30
49
  currentSpinner.succeed(chalk_1.default.green(text));
@@ -37,6 +56,10 @@ const succeedSpinner = (text) => {
37
56
  };
38
57
  exports.succeedSpinner = succeedSpinner;
39
58
  const failSpinner = (text) => {
59
+ if ((0, exports.isQuietMode)()) {
60
+ currentSpinner = null;
61
+ return;
62
+ }
40
63
  if (currentSpinner) {
41
64
  if (text) {
42
65
  currentSpinner.fail(chalk_1.default.red(text));
@@ -49,6 +72,10 @@ const failSpinner = (text) => {
49
72
  };
50
73
  exports.failSpinner = failSpinner;
51
74
  const warnSpinner = (text) => {
75
+ if ((0, exports.isQuietMode)()) {
76
+ currentSpinner = null;
77
+ return;
78
+ }
52
79
  if (currentSpinner) {
53
80
  if (text) {
54
81
  currentSpinner.warn(chalk_1.default.yellow(text));
@@ -61,6 +88,10 @@ const warnSpinner = (text) => {
61
88
  };
62
89
  exports.warnSpinner = warnSpinner;
63
90
  const infoSpinner = (text) => {
91
+ if ((0, exports.isQuietMode)()) {
92
+ currentSpinner = null;
93
+ return;
94
+ }
64
95
  if (currentSpinner) {
65
96
  if (text) {
66
97
  currentSpinner.info(chalk_1.default.blue(text));
@@ -73,6 +104,10 @@ const infoSpinner = (text) => {
73
104
  };
74
105
  exports.infoSpinner = infoSpinner;
75
106
  const stopSpinner = () => {
107
+ if ((0, exports.isQuietMode)()) {
108
+ currentSpinner = null;
109
+ return;
110
+ }
76
111
  if (currentSpinner) {
77
112
  currentSpinner.stop();
78
113
  currentSpinner = null;
@@ -80,30 +115,44 @@ const stopSpinner = () => {
80
115
  };
81
116
  exports.stopSpinner = stopSpinner;
82
117
  const logInfo = (message) => {
118
+ if ((0, exports.isQuietMode)())
119
+ return;
83
120
  console.log(chalk_1.default.blue("ℹ"), chalk_1.default.blue(message));
84
121
  };
85
122
  exports.logInfo = logInfo;
86
123
  const logSuccess = (message) => {
124
+ if ((0, exports.isQuietMode)())
125
+ return;
87
126
  console.log(chalk_1.default.green("✔"), chalk_1.default.green(message));
88
127
  };
89
128
  exports.logSuccess = logSuccess;
90
129
  const logError = (message) => {
130
+ if ((0, exports.isQuietMode)())
131
+ return;
91
132
  console.log(chalk_1.default.red("✖"), chalk_1.default.red(message));
92
133
  };
93
134
  exports.logError = logError;
94
135
  const logWarning = (message) => {
136
+ if ((0, exports.isQuietMode)())
137
+ return;
95
138
  console.log(chalk_1.default.yellow("⚠"), chalk_1.default.yellow(message));
96
139
  };
97
140
  exports.logWarning = logWarning;
98
141
  const logDim = (message) => {
142
+ if ((0, exports.isQuietMode)())
143
+ return;
99
144
  console.log(chalk_1.default.dim(message));
100
145
  };
101
146
  exports.logDim = logDim;
102
147
  const logBlank = () => {
148
+ if ((0, exports.isQuietMode)())
149
+ return;
103
150
  console.log();
104
151
  };
105
152
  exports.logBlank = logBlank;
106
153
  const showHeader = () => {
154
+ if ((0, exports.isQuietMode)())
155
+ return;
107
156
  (0, exports.logBlank)();
108
157
  console.log(chalk_1.default.cyan.bold("╔════════════════════════════════════════════════════╗"));
109
158
  console.log(chalk_1.default.cyan.bold("║") + chalk_1.default.white.bold(" Azure PIM CLI - Role Activation Manager ") + chalk_1.default.cyan.bold("║"));
@@ -112,6 +161,8 @@ const showHeader = () => {
112
161
  };
113
162
  exports.showHeader = showHeader;
114
163
  const showDivider = () => {
164
+ if ((0, exports.isQuietMode)())
165
+ return;
115
166
  console.log(chalk_1.default.dim("─".repeat(54)));
116
167
  };
117
168
  exports.showDivider = showDivider;
@@ -146,6 +197,8 @@ const formatStatus = (status) => {
146
197
  };
147
198
  exports.formatStatus = formatStatus;
148
199
  const showSummary = (title, items) => {
200
+ if ((0, exports.isQuietMode)())
201
+ return;
149
202
  const boxWidth = 54;
150
203
  const titleWidth = Math.max(0, boxWidth - 4 - title.length);
151
204
  (0, exports.logBlank)();
package/dist/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "azp-cli",
3
- "version": "0.0.1",
3
+ "version": "0.0.4",
4
4
  "description": "Terminal app to manage Azure PIM role activations",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -34,6 +34,7 @@
34
34
  "@types/inquirer": "^9.0.9",
35
35
  "@types/node": "^25.0.6",
36
36
  "esbuild": "^0.27.2",
37
+ "standard-version": "^9.5.0",
37
38
  "ts-node": "^10.9.2",
38
39
  "tsconfig-paths": "^4.2.0",
39
40
  "typescript": "^5.9.3"
@@ -42,6 +43,8 @@
42
43
  "build": "tsc",
43
44
  "start": "node dist/index.js",
44
45
  "dev": "ts-node -r tsconfig-paths/register src/index.ts",
45
- "lint": "eslint . --ext .ts"
46
+ "lint": "tsc -p tsconfig.json --noEmit",
47
+ "release": "standard-version",
48
+ "release:dry": "standard-version --dry-run"
46
49
  }
47
50
  }
package/src/azure-pim.ts CHANGED
@@ -2,7 +2,7 @@ import { AuthorizationManagementClient } from "@azure/arm-authorization";
2
2
  import { SubscriptionClient } from "@azure/arm-resources-subscriptions";
3
3
  import { AzureCliCredential } from "@azure/identity";
4
4
  import { v4 as uuidv4 } from "uuid";
5
- import { failSpinner, formatStatus, logBlank, logError, logSuccess, logWarning, startSpinner, succeedSpinner, warnSpinner } from "./ui";
5
+ import { failSpinner, formatStatus, logBlank, logDim, logError, logSuccess, logWarning, startSpinner, succeedSpinner, warnSpinner } from "./ui";
6
6
 
7
7
  export interface AzureSubscription {
8
8
  subscriptionId: string;
@@ -154,7 +154,11 @@ export const listActiveAzureRoles = async (
154
154
  }
155
155
  };
156
156
 
157
- export const activateAzureRole = async (credential: AzureCliCredential, request: AzureActivationRequest, subscriptionId: string): Promise<void> => {
157
+ export const activateAzureRole = async (
158
+ credential: AzureCliCredential,
159
+ request: AzureActivationRequest,
160
+ subscriptionId: string
161
+ ): Promise<{ status?: string }> => {
158
162
  const client = new AuthorizationManagementClient(credential, subscriptionId);
159
163
  const requestName = uuidv4();
160
164
  const now = new Date();
@@ -188,7 +192,7 @@ export const activateAzureRole = async (credential: AzureCliCredential, request:
188
192
  logBlank();
189
193
 
190
194
  if (response.status) {
191
- console.log(` Status: ${formatStatus(response.status)}`);
195
+ logDim(` Status: ${formatStatus(response.status)}`);
192
196
  }
193
197
 
194
198
  if (response.status === "Approved" || response.status === "Provisioned") {
@@ -198,6 +202,8 @@ export const activateAzureRole = async (credential: AzureCliCredential, request:
198
202
  } else if (response.status === "PendingApproval") {
199
203
  logWarning(`Role activation for "${request.roleName}" is pending approval`);
200
204
  }
205
+
206
+ return { status: response.status };
201
207
  } catch (error) {
202
208
  failSpinner(`Failed to activate role "${request.roleName}"`);
203
209
  throw error;