UNPKG

alwaysai

Version:

The alwaysAI command-line interface (CLI)

79 lines 2.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.enhancer = exports.cleanArgv = void 0; const logSymbols = require("log-symbols"); const alwayscli_1 = require("@alwaysai/alwayscli"); const util_1 = require("./util"); const environment_1 = require("./environment"); const post_tracking_data_to_segment_1 = require("./infrastructure/post-tracking-data-to-segment"); // NOTE: THis doesn't cover model ID's since those don't have a leading argument flag const SENSITIVE_KEYWORDS = [ '--email', '--password', '--project', '--deviceId', '--model', '--releaseHash', '--name', '--tag' ]; function cleanArgv(argv) { const clean = []; let cleaning = false; for (const arg of argv) { if (cleaning) { // Push cleaned values until next argument if (!arg.includes('--')) { clean.push('******'); continue; } } cleaning = false; if (SENSITIVE_KEYWORDS.includes(arg)) { clean.push(arg); cleaning = true; } else { clean.push(arg); } } return clean; } exports.cleanArgv = cleanArgv; const enhancer = (argvInterface) => async (...argv) => { if (environment_1.ALWAYSAI_AUDIT_LOG) { try { await (0, util_1.openAuditLog)(environment_1.ALWAYSAI_AUDIT_LOG); } catch (exception) { console.error(`${logSymbols.warning} Failed to open audit log: "${exception.message}"`); } } const argvString = cleanArgv(argv).join(' '); (0, util_1.audit)(`start "${argvString}"`); const trackingPromise = (0, post_tracking_data_to_segment_1.postTrackingDataToSegment)(argvString); try { const returnValue = await argvInterface(...argv); await new Promise((resolve) => { (0, util_1.audit)(`end "${returnValue}"`, () => { resolve(); }); }); await trackingPromise; return returnValue; } catch (exception) { if (exception.code !== alwayscli_1.CLI_USAGE_ERROR) { await Promise.all([ (0, post_tracking_data_to_segment_1.postTrackingDataToSegment)(argvString, exception), trackingPromise ]); } else { await trackingPromise; } throw exception; } }; exports.enhancer = enhancer; //# sourceMappingURL=enhancer.js.map