UNPKG

autorest

Version:

The AutoRest tool generates client libraries for accessing RESTful web services. Input to AutoRest is an OpenAPI spec that describes the REST API.

807 lines (650 loc) 25.5 kB
/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ({ /***/ "./src/app.ts": /***/ (function(__unused_webpack_module, exports, __webpack_require__) { var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); /* eslint-disable no-process-exit */ /* eslint-disable no-console */ __webpack_require__("../../../common/temp/node_modules/.pnpm/source-map-support@0.5.21/node_modules/source-map-support/register.js"); const common_1 = __webpack_require__("../../libs/common/dist/index.js"); const configuration_1 = __webpack_require__("../../libs/configuration/dist/index.js"); const chalk_1 = __importDefault(__webpack_require__("../../../common/temp/node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/index.js")); const actions_1 = __webpack_require__("./src/actions/index.ts"); const args_1 = __webpack_require__("./src/args.ts"); const autorest_as_a_service_1 = __webpack_require__("./src/autorest-as-a-service.ts"); const commands_1 = __webpack_require__("./src/commands/index.ts"); const constants_1 = __webpack_require__("./src/constants.ts"); const utils_1 = __webpack_require__("./src/utils.ts"); const cwd = process.cwd(); const isDebuggerEnabled = // eslint-disable-next-line node/no-unsupported-features/node-builtins, @typescript-eslint/no-require-imports !!(__webpack_require__("inspector").url)() || globalThis.v8debug || /--debug|--inspect/.test(process.execArgv.join(" ")); const launchCore = isDebuggerEnabled ? autorest_as_a_service_1.runCoreWithRequire : autorest_as_a_service_1.runCoreOutOfProc; // aliases, round one. if (process.argv.indexOf("--no-upgrade-check") !== -1) { process.argv.push("--skip-upgrade-check"); } if (process.argv.indexOf("--json") !== -1) { process.argv.push("--message-format=json"); } if (process.argv.indexOf("--yaml") !== -1) { process.argv.push("--message-format=yaml"); } const args = (0, args_1.parseAutorestArgs)(process.argv); global.__args = args; // aliases args["info"] = args["info"] || args["list-installed"]; args["preview"] = args["preview"] || args["prerelease"]; if (args["v3"] && !args["version"]) { // --v3 without --version infers --version:^3.2.0 + args["version"] = "^3.2.0"; } // argument tweakin' args.info = args.version === "" || args.version === true || args.info; // show --info if they use unparameterized --version. const listAvailable = args["list-available"] || false; function logBanner() { // Suppress the banner if the message-format is set to something other than regular. if (!args["message-format"] || args["message-format"] === "regular") { console.log(chalk_1.default.green.bold.underline(`AutoRest code generation utility [cli version: ${chalk_1.default.white.bold(constants_1.VERSION)}; node: ${chalk_1.default.white.bold(process.version)}]`)); console.log(`(C) 2018 ${chalk_1.default.bold("Microsoft Corporation.")}`); console.log(chalk_1.default.blue.bold.underline("https://aka.ms/autorest")); console.warn(chalk_1.default.yellow.bold("⚠️ AutoRest is deprecated and will be retired on July 1, 2026. Please migrate to TypeSpec: https://typespec.io — details: https://github.com/Azure/autorest/issues/5175")); } } /** * Main Entrypoint for AutoRest Bootstrapper */ async function main() { logBanner(); try { // did they ask for what is available? if (listAvailable) { process.exit(await (0, commands_1.showAvailableCoreVersions)(args)); } // show what we have. if (args.info) { process.exit(await (0, commands_1.showInstalledExtensions)(args)); } try { /* make sure we have a .autorest folder */ await (0, autorest_as_a_service_1.ensureAutorestHome)(); if (args.reset || args["clear-temp"]) { // clear out all the temp-data too await (0, actions_1.clearTempData)(); } // if we have an autorest home folder, --reset may mean something. // if it's not there, --reset won't do anything. if (args.reset) { process.exit(await (0, commands_1.resetAutorest)(args)); } } catch (_a) { // We have a chance to fail again later if this proves problematic. } const sink = new common_1.ConsoleLoggerSink({ format: args["message-format"] }); const logger = new common_1.AutorestSyncLogger({ sinks: [sink], }); const config = await (0, utils_1.loadConfig)(sink, args); if (config === null || config === void 0 ? void 0 : config.version) { logger.info(`AutoRest core version selected from configuration: ${chalk_1.default.yellow.bold(config.version)}.`); } const coreVersionPath = await (0, utils_1.resolveCoreVersion)(logger.with(new common_1.FilterLogger({ level: (0, configuration_1.getLogLevel)({ ...args, ...config }) })), config); if (args.verbose || args.debug) { (0, common_1.configureLibrariesLogger)("verbose", (...x) => logger.debug(x.join(" "))); } // let's strip the extra stuff from the command line before we require the core module. const newArgs = []; for (const each of process.argv) { let keep = true; for (const discard of [ "--version", "--list-installed", "--list-available", "--reset", "--latest", "--latest-release", "--runtime-id", ]) { if (each === discard || each.startsWith(`${discard}=`) || each.startsWith(`${discard}:`)) { keep = false; } } if (keep) { newArgs.push(each); } } // use this to make the core aware that this run may be legal even without any inputs // this is a valid scenario for "preparation calls" to autorest like `autorest --reset` or `autorest --latest` if (args.reset || args.latest || args.version == "latest") { // if there is *any* other argument left, that's an indicator that the core is supposed to do something newArgs.push("--allow-no-input"); } process.argv = newArgs; if (args.debug) { logger.debug(`Starting ${autorest_as_a_service_1.newCorePackage} from ${coreVersionPath}`); } // reset the working folder to the correct place. process.chdir(cwd); const result = await launchCore(coreVersionPath, "app.js", config); if (!result) { throw new Error(`Unable to start AutoRest Core from ${coreVersionPath}`); } } catch (exception) { console.log(chalk_1.default.redBright("Failure:")); console.error(chalk_1.default.bold(exception)); console.error(chalk_1.default.bold(exception.stack)); process.exit(1); } } void main(); /***/ }), /***/ "./src/args.ts": /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports.parseAutorestArgs = parseAutorestArgs; const configuration_1 = __webpack_require__("../../libs/configuration/dist/index.js"); /** * Parse a list of command line arguments. * @param argv List of cli args(process.argv) */ function parseAutorestArgs(argv) { return (0, configuration_1.parseArgs)(argv).options; } /***/ }), /***/ "./src/commands/index.ts": /***/ (function(__unused_webpack_module, exports, __webpack_require__) { var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", ({ value: true })); __exportStar(__webpack_require__("./src/commands/reset.ts"), exports); __exportStar(__webpack_require__("./src/commands/show-available-core-versions.ts"), exports); __exportStar(__webpack_require__("./src/commands/show-installed-extensions.ts"), exports); /***/ }), /***/ "./src/commands/reset.ts": /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports.resetAutorest = void 0; /* eslint-disable no-console */ const common_1 = __webpack_require__("../../libs/common/dist/index.js"); const autorest_as_a_service_1 = __webpack_require__("./src/autorest-as-a-service.ts"); /** * Reset autorest, this will: * - Clear all installed extensions * - Cleared all installed core * @param args CLI args * @returns Exit code. */ const resetAutorest = async (args) => { if (args.debug) { console.log(`Resetting autorest extension folder '${autorest_as_a_service_1.rootFolder}'`); } try { await (await autorest_as_a_service_1.extensionManager).reset(); console.log((0, common_1.color)("\n\n## Cleared the AutoRest extension folder.\nOn the next run, extensions will be reacquired from the repository.")); return 0; } catch (e) { console.log((0, common_1.color)("\n\n## The AutoRest extension folder appears to be locked.\nDo you have a process that is currently using AutoRest (perhaps the vscode extension?).\n\nUnable to reset the extension folder, exiting.")); return 10; } }; exports.resetAutorest = resetAutorest; /***/ }), /***/ "./src/commands/show-available-core-versions.ts": /***/ (function(__unused_webpack_module, exports, __webpack_require__) { var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.showAvailableCoreVersions = void 0; /* eslint-disable no-console */ const chalk_1 = __importDefault(__webpack_require__("../../../common/temp/node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/index.js")); const autorest_as_a_service_1 = __webpack_require__("./src/autorest-as-a-service.ts"); /** * Shows the valid available autorest core packages. * @param args CLI args * @returns Exit code. */ const showAvailableCoreVersions = async (args) => { let table = ""; let max = 10; const cores = await (0, autorest_as_a_service_1.availableVersions)(); for (const v of cores) { max--; table += `\n ${chalk_1.default.cyan.bold(autorest_as_a_service_1.newCorePackage.padEnd(30, " "))} ${chalk_1.default.grey.bold(v.padEnd(14, " "))} `; if (!max) { break; } } if (args.json) { console.log(JSON.stringify(cores, null, " ")); } else { if (table) { console.log(`${chalk_1.default.green.bold.underline(" Extension Name".padEnd(30, " "))} ${chalk_1.default.green.bold.underline("Version".padEnd(14, " "))}\n${table}`); } } return 0; }; exports.showAvailableCoreVersions = showAvailableCoreVersions; /***/ }), /***/ "./src/commands/show-installed-extensions.ts": /***/ (function(__unused_webpack_module, exports, __webpack_require__) { var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.showInstalledExtensions = void 0; /* eslint-disable no-console */ const chalk_1 = __importDefault(__webpack_require__("../../../common/temp/node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/index.js")); const autorest_as_a_service_1 = __webpack_require__("./src/autorest-as-a-service.ts"); /** * Shows all the autorest extensions that are installed. * @param args CLI args * @returns Exit code. */ const showInstalledExtensions = async (args) => { const extensions = await (await autorest_as_a_service_1.extensionManager).getInstalledExtensions(); let table = ""; if (extensions.length > 0) { for (const extension of extensions) { table += `\n ${chalk_1.default.cyan((extension.name === autorest_as_a_service_1.newCorePackage || extension.name === autorest_as_a_service_1.oldCorePackage ? "core" : "extension").padEnd(10))} ${chalk_1.default.cyan.bold(extension.name.padEnd(40))} ${chalk_1.default.cyan(extension.version.padEnd(12))} ${chalk_1.default.cyan(extension.location)}`; } } if (args.json) { console.log(JSON.stringify(extensions, null, " ")); } else { const title = `\n\n${chalk_1.default.greenBright("Showing All Installed Extensions")}\n`; if (table) { console.log(`${title}\n ${chalk_1.default.underline("Type".padEnd(10))} ${chalk_1.default.underline("Extension Name".padEnd(40))} ${chalk_1.default.underline("Version".padEnd(12))} ${chalk_1.default.underline("Location")} ${table}\n\n`); } else { console.log(`${title}\n ${chalk_1.default.cyan("No Extensions are currently installed.")}\n\n`); } } return 0; }; exports.showInstalledExtensions = showInstalledExtensions; /***/ }), /***/ "assert": /***/ ((module) => { module.exports = require("assert"); /***/ }), /***/ "buffer": /***/ ((module) => { module.exports = require("buffer"); /***/ }), /***/ "child_process": /***/ ((module) => { module.exports = require("child_process"); /***/ }), /***/ "constants": /***/ ((module) => { module.exports = require("constants"); /***/ }), /***/ "crypto": /***/ ((module) => { module.exports = require("crypto"); /***/ }), /***/ "dns": /***/ ((module) => { module.exports = require("dns"); /***/ }), /***/ "events": /***/ ((module) => { module.exports = require("events"); /***/ }), /***/ "fs": /***/ ((module) => { module.exports = require("fs"); /***/ }), /***/ "fs/promises": /***/ ((module) => { module.exports = require("fs/promises"); /***/ }), /***/ "http": /***/ ((module) => { module.exports = require("http"); /***/ }), /***/ "http2": /***/ ((module) => { module.exports = require("http2"); /***/ }), /***/ "https": /***/ ((module) => { module.exports = require("https"); /***/ }), /***/ "inspector": /***/ ((module) => { module.exports = require("inspector"); /***/ }), /***/ "module": /***/ ((module) => { module.exports = require("module"); /***/ }), /***/ "net": /***/ ((module) => { module.exports = require("net"); /***/ }), /***/ "node-gyp/bin/node-gyp.js": /***/ ((module) => { module.exports = require("node-gyp/bin/node-gyp.js"); /***/ }), /***/ "node:crypto": /***/ ((module) => { module.exports = require("node:crypto"); /***/ }), /***/ "node:events": /***/ ((module) => { module.exports = require("node:events"); /***/ }), /***/ "node:fs": /***/ ((module) => { module.exports = require("node:fs"); /***/ }), /***/ "node:fs/promises": /***/ ((module) => { module.exports = require("node:fs/promises"); /***/ }), /***/ "node:os": /***/ ((module) => { module.exports = require("node:os"); /***/ }), /***/ "node:path": /***/ ((module) => { module.exports = require("node:path"); /***/ }), /***/ "node:path/win32": /***/ ((module) => { module.exports = require("node:path/win32"); /***/ }), /***/ "node:process": /***/ ((module) => { module.exports = require("node:process"); /***/ }), /***/ "node:stream": /***/ ((module) => { module.exports = require("node:stream"); /***/ }), /***/ "node:string_decoder": /***/ ((module) => { module.exports = require("node:string_decoder"); /***/ }), /***/ "node:url": /***/ ((module) => { module.exports = require("node:url"); /***/ }), /***/ "node:util": /***/ ((module) => { module.exports = require("node:util"); /***/ }), /***/ "os": /***/ ((module) => { module.exports = require("os"); /***/ }), /***/ "path": /***/ ((module) => { module.exports = require("path"); /***/ }), /***/ "process": /***/ ((module) => { module.exports = require("process"); /***/ }), /***/ "querystring": /***/ ((module) => { module.exports = require("querystring"); /***/ }), /***/ "readline": /***/ ((module) => { module.exports = require("readline"); /***/ }), /***/ "stream": /***/ ((module) => { module.exports = require("stream"); /***/ }), /***/ "string_decoder": /***/ ((module) => { module.exports = require("string_decoder"); /***/ }), /***/ "timers/promises": /***/ ((module) => { module.exports = require("timers/promises"); /***/ }), /***/ "tls": /***/ ((module) => { module.exports = require("tls"); /***/ }), /***/ "tty": /***/ ((module) => { module.exports = require("tty"); /***/ }), /***/ "url": /***/ ((module) => { module.exports = require("url"); /***/ }), /***/ "util": /***/ ((module) => { module.exports = require("util"); /***/ }), /***/ "vm": /***/ ((module) => { module.exports = require("vm"); /***/ }), /***/ "zlib": /***/ ((module) => { module.exports = require("zlib"); /***/ }) /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ id: moduleId, /******/ loaded: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.loaded = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = __webpack_modules__; /******/ /******/ // the startup function /******/ __webpack_require__.x = () => { /******/ // Load entry module and return exports /******/ // This entry module depends on other loaded chunks and execution need to be delayed /******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["vendors-common_temp_node_modules_pnpm_azure-tools_uri_3_1_1_node_modules_azure-tools_uri_dist-105f43","vendors-common_temp_node_modules_pnpm_source-map-support_0_5_21_node_modules_source-map-suppo-13bba0","src_autorest-as-a-service_ts"], () => (__webpack_require__("./src/app.ts"))) /******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); /******/ return __webpack_exports__; /******/ }; /******/ /************************************************************************/ /******/ /* webpack/runtime/chunk loaded */ /******/ (() => { /******/ var deferred = []; /******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { /******/ if(chunkIds) { /******/ priority = priority || 0; /******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; /******/ deferred[i] = [chunkIds, fn, priority]; /******/ return; /******/ } /******/ var notFulfilled = Infinity; /******/ for (var i = 0; i < deferred.length; i++) { /******/ var [chunkIds, fn, priority] = deferred[i]; /******/ var fulfilled = true; /******/ for (var j = 0; j < chunkIds.length; j++) { /******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { /******/ chunkIds.splice(j--, 1); /******/ } else { /******/ fulfilled = false; /******/ if(priority < notFulfilled) notFulfilled = priority; /******/ } /******/ } /******/ if(fulfilled) { /******/ deferred.splice(i--, 1) /******/ var r = fn(); /******/ if (r !== undefined) result = r; /******/ } /******/ } /******/ return result; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/ensure chunk */ /******/ (() => { /******/ __webpack_require__.f = {}; /******/ // This file contains only the entry chunk. /******/ // The chunk loading function for additional chunks /******/ __webpack_require__.e = (chunkId) => { /******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { /******/ __webpack_require__.f[key](chunkId, promises); /******/ return promises; /******/ }, [])); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get javascript chunk filename */ /******/ (() => { /******/ // This function allow to reference async chunks and sibling chunks for the entrypoint /******/ __webpack_require__.u = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + chunkId + ".js"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/node module decorator */ /******/ (() => { /******/ __webpack_require__.nmd = (module) => { /******/ module.paths = []; /******/ if (!module.children) module.children = []; /******/ return module; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/require chunk loading */ /******/ (() => { /******/ // no baseURI /******/ /******/ // object to store loaded chunks /******/ // "1" means "loaded", otherwise not loaded yet /******/ var installedChunks = { /******/ "app": 1 /******/ }; /******/ /******/ __webpack_require__.O.require = (chunkId) => (installedChunks[chunkId]); /******/ /******/ var installChunk = (chunk) => { /******/ var moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime; /******/ for(var moduleId in moreModules) { /******/ if(__webpack_require__.o(moreModules, moduleId)) { /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } /******/ if(runtime) runtime(__webpack_require__); /******/ for(var i = 0; i < chunkIds.length; i++) /******/ installedChunks[chunkIds[i]] = 1; /******/ __webpack_require__.O(); /******/ }; /******/ /******/ // require() chunk loading for javascript /******/ __webpack_require__.f.require = (chunkId, promises) => { /******/ // "1" is the signal for "already loaded" /******/ if(!installedChunks[chunkId]) { /******/ if(true) { // all chunks have JS /******/ installChunk(require("./" + __webpack_require__.u(chunkId))); /******/ } else installedChunks[chunkId] = 1; /******/ } /******/ }; /******/ /******/ // no external install chunk /******/ /******/ // no HMR /******/ /******/ // no HMR manifest /******/ })(); /******/ /******/ /* webpack/runtime/startup chunk dependencies */ /******/ (() => { /******/ var next = __webpack_require__.x; /******/ __webpack_require__.x = () => { /******/ __webpack_require__.e("vendors-common_temp_node_modules_pnpm_azure-tools_uri_3_1_1_node_modules_azure-tools_uri_dist-105f43"); /******/ __webpack_require__.e("vendors-common_temp_node_modules_pnpm_source-map-support_0_5_21_node_modules_source-map-suppo-13bba0"); /******/ __webpack_require__.e("src_autorest-as-a-service_ts"); /******/ return next(); /******/ }; /******/ })(); /******/ /************************************************************************/ /******/ /******/ // run startup /******/ var __webpack_exports__ = __webpack_require__.x(); /******/ module.exports = __webpack_exports__; /******/ /******/ })() ; //# sourceMappingURL=app.js.map