push neon reactor

This commit is contained in:
2026-07-12 15:11:38 +02:00
parent 172e72dbcd
commit aeab5f7820
9597 changed files with 2407488 additions and 0 deletions
@@ -0,0 +1,9 @@
/*!
* Copyright (C) Microsoft Corporation. All rights reserved.
*/
/**
* Formats the verb registry into a table for help output.
* Uses simple text-based table formatting suitable for terminal display.
*/
export declare function buildVerbDescriptionTable(): string;
//# sourceMappingURL=BuildVerbDescriptionTable.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"BuildVerbDescriptionTable.d.ts","sourceRoot":"","sources":["../../src/Utils/BuildVerbDescriptionTable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAwBlD"}
@@ -0,0 +1,29 @@
/*!
* Copyright (C) Microsoft Corporation. All rights reserved.
*/
import { VERB_HELP_REGISTRY } from '../Constants/VerbRegistry.js';
/**
* Formats the verb registry into a table for help output.
* Uses simple text-based table formatting suitable for terminal display.
*/
export function buildVerbDescriptionTable() {
const verbEntries = Object.entries(VERB_HELP_REGISTRY);
if (verbEntries.length === 0) {
return '';
}
// Calculate column width based on longest verb name
const maxVerbLength = Math.max(...verbEntries.map(([verb]) => verb.length));
const verbColumnWidth = Math.max(maxVerbLength + 2, 10);
const lines = [];
lines.push('Available Commands:');
lines.push('');
lines.push(` ${'Command'.padEnd(verbColumnWidth)} Description`);
lines.push(` ${'-'.repeat(verbColumnWidth)} ${'-'.repeat(60)}`);
// Format each verb as a table row
verbEntries.forEach(([verb, verbMetadata]) => {
const verbColumn = verb.padEnd(verbColumnWidth);
lines.push(` ${verbColumn} ${verbMetadata.description}`);
});
return lines.join('\n');
}
//# sourceMappingURL=BuildVerbDescriptionTable.js.map
@@ -0,0 +1 @@
{"version":3,"file":"BuildVerbDescriptionTable.js","sourceRoot":"","sources":["../../src/Utils/BuildVerbDescriptionTable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;;GAGG;AACH,MAAM,UAAU,yBAAyB;IACvC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEvD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,oDAAoD;IACpD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAExD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IAClE,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAElE,kCAAkC;IAClC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,EAAE;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,39 @@
/*!
* Copyright (C) Microsoft Corporation. All rights reserved.
*/
export interface ColumnDef {
header: string;
maxWidth?: number;
}
/**
* Renders a titled table with optional metadata, column headers, and data rows.
* Separator lines are suppressed in non-TTY mode (piped output, LLM agents).
*/
export declare function printTable(options: {
title: string;
metadata?: string[];
columns: ColumnDef[];
rows: string[][];
emptyMessage?: string;
totalLabel?: string;
width?: number;
}): void;
/**
* Renders a titled key-value list where each item is displayed as a set of labeled fields.
* Multiple items are separated by a divider line. Separator lines are suppressed in non-TTY mode.
*/
export declare function printKeyValueList<T>(options: {
title: string;
items: T[];
fields: {
label: string;
value: (item: T) => string;
}[];
emptyMessage?: string;
width?: number;
}): void;
export declare function printSuccess(message: string): void;
export declare function printInfo(message: string): void;
export declare function printWarning(message: string): void;
export declare function printError(message: string): void;
//# sourceMappingURL=ConsoleOutput.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"ConsoleOutput.d.ts","sourceRoot":"","sources":["../../src/Utils/ConsoleOutput.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CA8DP;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAA;KAAE,EAAE,CAAC;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CAyBP;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD"}
@@ -0,0 +1,111 @@
/*!
* Copyright (C) Microsoft Corporation. All rights reserved.
*/
import chalk from 'chalk';
// Suppress decorative separator lines when output is piped or redirected (non-interactive).
// This applies to both shell pipelines and LLM agents that invoke CLI commands programmatically —
// in both cases stdout is not a TTY, and box-drawing characters would pollute the parseable output.
function isTTY() {
return process.stdout.isTTY ?? false;
}
/**
* Renders a titled table with optional metadata, column headers, and data rows.
* Separator lines are suppressed in non-TTY mode (piped output, LLM agents).
*/
export function printTable(options) {
const { title, metadata, columns, rows, emptyMessage, totalLabel, width = 80 } = options;
const line = isTTY() ? chalk.dim('-'.repeat(width)) : null;
console.log('');
console.log(chalk.cyan.bold(` ${title}`));
if (metadata) {
if (line)
console.log(line);
for (const meta of metadata) {
console.log(chalk.white(` ${meta}`));
}
}
if (rows.length === 0) {
if (emptyMessage) {
if (line)
console.log(line);
console.log(` ${emptyMessage}`);
}
return;
}
// Column width = max(header.length, longest effective cell length)
// Effective cell length respects maxWidth (truncated value is always maxWidth chars)
const colWidths = columns.map((col, i) => {
const maxCellLen = rows.reduce((max, row) => {
const cell = row[i] ?? '';
const len = col.maxWidth !== undefined && cell.length > col.maxWidth ? col.maxWidth : cell.length;
return Math.max(max, len);
}, 0);
return Math.max(col.header.length, maxCellLen);
});
if (line)
console.log(line);
const headerParts = columns.map((col, i) => i === columns.length - 1 ? col.header : col.header.padEnd(colWidths[i]));
console.log(chalk.cyan(` ${headerParts.join(' ')}`));
if (line)
console.log(line);
for (const row of rows) {
const rowParts = columns.map((col, i) => {
let cell = row[i] ?? '';
if (col.maxWidth !== undefined && cell.length > col.maxWidth) {
if (col.maxWidth <= 3) {
cell = cell.slice(0, col.maxWidth);
}
else {
cell = cell.slice(0, col.maxWidth - 3) + '...';
}
}
return i === columns.length - 1 ? cell : cell.padEnd(colWidths[i]);
});
console.log(` ${rowParts.join(' ')}`);
}
if (line)
console.log(line);
if (totalLabel !== undefined) {
console.log(chalk.dim(` Total: ${rows.length} ${totalLabel}`));
}
}
/**
* Renders a titled key-value list where each item is displayed as a set of labeled fields.
* Multiple items are separated by a divider line. Separator lines are suppressed in non-TTY mode.
*/
export function printKeyValueList(options) {
const { title, items, fields, emptyMessage, width = 80 } = options;
const line = isTTY() ? chalk.dim('-'.repeat(width)) : null;
console.log('');
console.log(chalk.cyan.bold(` ${title}`));
if (line)
console.log(line);
if (items.length === 0) {
if (emptyMessage) {
console.log(` ${emptyMessage}`);
}
return;
}
for (let i = 0; i < items.length; i++) {
for (const field of fields) {
console.log(` ${chalk.white(field.label)}: ${field.value(items[i])}`);
}
// Separator between items only — no trailing separator after the last item (intentional).
if (i < items.length - 1 && line) {
console.log(line);
}
}
}
export function printSuccess(message) {
console.log(chalk.green(message));
}
export function printInfo(message) {
console.log(message);
}
export function printWarning(message) {
console.warn(chalk.yellow(message));
}
export function printError(message) {
console.error(chalk.red(message));
}
//# sourceMappingURL=ConsoleOutput.js.map
@@ -0,0 +1 @@
{"version":3,"file":"ConsoleOutput.js","sourceRoot":"","sources":["../../src/Utils/ConsoleOutput.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
/*!
* Copyright (C) Microsoft Corporation. All rights reserved.
*/
/**
* Enhances network/fetch error messages with more detailed information
* about the underlying cause when available.
*
* @param error - The original error from fetch
* @param method - HTTP method (GET, POST, etc.)
* @param url - The URL that was being accessed
* @returns Enhanced error with more detailed message
*/
export declare function enhanceNetworkError(error: unknown, method: string, url: string): Error;
//# sourceMappingURL=EnhanceNetworkError.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"EnhanceNetworkError.d.ts","sourceRoot":"","sources":["../../src/Utils/EnhanceNetworkError.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,CA8CtF"}
@@ -0,0 +1,59 @@
/*!
* Copyright (C) Microsoft Corporation. All rights reserved.
*/
/* eslint-disable @typescript-eslint/no-explicit-any */
/**
* Enhances network/fetch error messages with more detailed information
* about the underlying cause when available.
*
* @param error - The original error from fetch
* @param method - HTTP method (GET, POST, etc.)
* @param url - The URL that was being accessed
* @returns Enhanced error with more detailed message
*/
export function enhanceNetworkError(error, method, url) {
if (!(error instanceof TypeError) || !error.message.includes('fetch failed')) {
// Not a fetch failure, return original error
return error instanceof Error ? error : new Error(String(error));
}
let detailedMessage = `Network request failed for ${method} ${url}.`;
// Try to extract more specific error details from the cause chain
const cause = error.cause;
if (cause) {
const errorCode = cause.code || cause.errno;
if (errorCode === 'ENOTFOUND') {
detailedMessage += ` DNS lookup failed - unable to resolve hostname.`;
}
else if (errorCode === 'ECONNREFUSED') {
detailedMessage += ` Connection refused - server is not accepting connections.`;
}
else if (errorCode === 'ETIMEDOUT') {
detailedMessage += ` Connection timed out - server did not respond in time.`;
}
else if (errorCode === 'ECONNRESET') {
detailedMessage += ` Connection reset - server closed the connection unexpectedly.`;
}
else if (errorCode === 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' ||
errorCode === 'CERT_HAS_EXPIRED' ||
String(errorCode).startsWith('CERT_')) {
detailedMessage += ` Certificate validation failed (${errorCode}).`;
}
else if (errorCode) {
detailedMessage += ` System error: ${errorCode}.`;
}
if (cause.message && cause.message !== error.message) {
detailedMessage += ` Details: ${cause.message}`;
}
}
// Add general suggestions if we don't have a specific error code
if (!cause || !cause.code) {
detailedMessage +=
` Possible causes: network connectivity issues, DNS resolution failure, ` +
`VPN/proxy configuration, firewall/certificate issues, or server not reachable.`;
}
const enhancedError = new Error(detailedMessage);
enhancedError.cause = error;
return enhancedError;
}
/* eslint-enable @typescript-eslint/no-explicit-any */
//# sourceMappingURL=EnhanceNetworkError.js.map
@@ -0,0 +1 @@
{"version":3,"file":"EnhanceNetworkError.js","sourceRoot":"","sources":["../../src/Utils/EnhanceNetworkError.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,uDAAuD;AACvD;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc,EAAE,MAAc,EAAE,GAAW;IAC7E,IAAI,CAAC,CAAC,KAAK,YAAY,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7E,6CAA6C;QAC7C,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,eAAe,GAAG,8BAA8B,MAAM,IAAI,GAAG,GAAG,CAAC;IAErE,kEAAkE;IAClE,MAAM,KAAK,GAAI,KAAa,CAAC,KAAK,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC;QAE5C,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC9B,eAAe,IAAI,kDAAkD,CAAC;QACxE,CAAC;aAAM,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;YACxC,eAAe,IAAI,4DAA4D,CAAC;QAClF,CAAC;aAAM,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YACrC,eAAe,IAAI,yDAAyD,CAAC;QAC/E,CAAC;aAAM,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;YACtC,eAAe,IAAI,gEAAgE,CAAC;QACtF,CAAC;aAAM,IACL,SAAS,KAAK,iCAAiC;YAC/C,SAAS,KAAK,kBAAkB;YAChC,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EACrC,CAAC;YACD,eAAe,IAAI,mCAAmC,SAAS,IAAI,CAAC;QACtE,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,eAAe,IAAI,kBAAkB,SAAS,GAAG,CAAC;QACpD,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;YACrD,eAAe,IAAI,aAAa,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,eAAe;YACb,yEAAyE;gBACzE,gFAAgF,CAAC;IACrF,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IAChD,aAAqB,CAAC,KAAK,GAAG,KAAK,CAAC;IACrC,OAAO,aAAa,CAAC;AACvB,CAAC;AACD,sDAAsD"}
@@ -0,0 +1,15 @@
/*!
* Copyright (C) Microsoft Corporation. All rights reserved.
*/
export declare class CliSpinner {
private _timer;
private _frameIndex;
private _restoreCursor;
private _handleSIGINT;
private _handleSIGTERM;
private _handleUncaughtException;
private _handleUnhandledRejection;
start(): void;
stop(): void;
}
//# sourceMappingURL=Spinner.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/Utils/Spinner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA+C;IAC7D,OAAO,CAAC,WAAW,CAAK;IAGxB,OAAO,CAAC,cAAc,CAGpB;IAEF,OAAO,CAAC,aAAa,CAKnB;IAEF,OAAO,CAAC,cAAc,CAIpB;IAEF,OAAO,CAAC,wBAAwB,CAK9B;IAEF,OAAO,CAAC,yBAAyB,CAI/B;IAEF,KAAK,IAAI,IAAI;IAeb,IAAI,IAAI,IAAI;CAcb"}
@@ -0,0 +1,71 @@
/*!
* Copyright (C) Microsoft Corporation. All rights reserved.
*/
// SYNC: this file is duplicated in packages/managed-apps-cli/src/Utils/Spinner.ts.
// Changes here must be mirrored there until a shared CLI utilities package exists.
const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
export class CliSpinner {
_timer = null;
_frameIndex = 0;
// Arrow functions so `this` is stable when passed to process.on/off.
_restoreCursor = () => {
process.stdout.write('\r\x1B[K'); // erase spinner line
process.stdout.write('\x1B[?25h'); // show cursor
};
_handleSIGINT = () => {
if (this._timer !== null)
clearInterval(this._timer);
this._restoreCursor();
// Re-raise so the process actually exits with the correct signal.
process.kill(process.pid, 'SIGINT');
};
_handleSIGTERM = () => {
if (this._timer !== null)
clearInterval(this._timer);
this._restoreCursor();
process.kill(process.pid, 'SIGTERM');
};
_handleUncaughtException = (error) => {
if (this._timer !== null)
clearInterval(this._timer);
this._restoreCursor();
// Re-throw so Node.js prints the error and exits with code 1.
throw error;
};
_handleUnhandledRejection = (reason) => {
if (this._timer !== null)
clearInterval(this._timer);
this._restoreCursor();
throw reason;
};
start() {
if (this._timer !== null)
return;
process.stdout.write('\x1B[?25l'); // hide cursor
// Restore cursor if the process exits before stop() is called normally.
process.once('exit', this._restoreCursor);
process.once('SIGINT', this._handleSIGINT);
process.once('SIGTERM', this._handleSIGTERM);
process.once('uncaughtException', this._handleUncaughtException);
process.once('unhandledRejection', this._handleUnhandledRejection);
this._timer = setInterval(() => {
process.stdout.write(`\r${SPINNER_FRAMES[this._frameIndex]}`);
this._frameIndex = (this._frameIndex + 1) % SPINNER_FRAMES.length;
}, 80);
}
stop() {
if (this._timer !== null) {
clearInterval(this._timer);
this._timer = null;
this._frameIndex = 0;
// Clean up exit handlers registered in start().
process.off('exit', this._restoreCursor);
process.off('SIGINT', this._handleSIGINT);
process.off('SIGTERM', this._handleSIGTERM);
process.off('uncaughtException', this._handleUncaughtException);
process.off('unhandledRejection', this._handleUnhandledRejection);
this._restoreCursor();
}
}
}
//# sourceMappingURL=Spinner.js.map
@@ -0,0 +1 @@
{"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../src/Utils/Spinner.ts"],"names":[],"mappings":"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"}