diff --git a/npm/packs/client-generator/lib/angular.d.ts b/npm/packs/client-generator/lib/angular.d.ts index 908ba8417a..e49d42ec6a 100644 --- a/npm/packs/client-generator/lib/angular.d.ts +++ b/npm/packs/client-generator/lib/angular.d.ts @@ -1 +1,2 @@ -#!/usr/bin/env node +import { APIDefination } from './types/api-defination'; +export declare function angular(data: APIDefination.Response, selectedModules: string[]): Promise; diff --git a/npm/packs/client-generator/lib/angular.js b/npm/packs/client-generator/lib/angular.js index af21afbd0d..ba7acbe760 100644 --- a/npm/packs/client-generator/lib/angular.js +++ b/npm/packs/client-generator/lib/angular.js @@ -1,2 +1,49 @@ -#!/usr/bin/env node "use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +function angular(data, selectedModules) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + selectedModules.forEach(function (module) { + console.log(module); + }); + return [2 /*return*/]; + }); + }); +} +exports.angular = angular; diff --git a/npm/packs/client-generator/lib/cli.d.ts b/npm/packs/client-generator/lib/cli.d.ts new file mode 100644 index 0000000000..21620dda81 --- /dev/null +++ b/npm/packs/client-generator/lib/cli.d.ts @@ -0,0 +1 @@ +export declare function cli(program: any): Promise; diff --git a/npm/packs/client-generator/lib/cli.js b/npm/packs/client-generator/lib/cli.js new file mode 100644 index 0000000000..8b08b92d2e --- /dev/null +++ b/npm/packs/client-generator/lib/cli.js @@ -0,0 +1,102 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var prompt_1 = require("./utils/prompt"); +var axios_1 = require("./utils/axios"); +var ora = require("ora"); +var angular_1 = require("./angular"); +var chalk_1 = __importDefault(require("chalk")); +function cli(program) { + return __awaiter(this, void 0, void 0, function () { + var _a, loading, data, selection, modules, _b; + var _this = this; + return __generator(this, function (_c) { + switch (_c.label) { + case 0: + if (!(program.ui !== 'angular')) return [3 /*break*/, 2]; + _a = program; + return [4 /*yield*/, prompt_1.uiSelection(['Angular'])]; + case 1: + _a.ui = (_c.sent()).toLowerCase(); + _c.label = 2; + case 2: + loading = ora('Waiting for the API response... \n'); + loading.start(); + return [4 /*yield*/, axios_1.axiosInstance.get('a')]; + case 3: + data = (_c.sent()); + loading.stop(); + selection = function (modules) { return __awaiter(_this, void 0, void 0, function () { + var selectedModules; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, prompt_1.moduleSelection(modules)]; + case 1: + selectedModules = (_a.sent()); + if (!!selectedModules.length) return [3 /*break*/, 3]; + console.log(chalk_1.default.red('Please select module(s)')); + return [4 /*yield*/, selection(modules)]; + case 2: return [2 /*return*/, _a.sent()]; + case 3: return [2 /*return*/, selectedModules]; + } + }); + }); }; + return [4 /*yield*/, selection(Object.keys(data.modules))]; + case 4: + modules = _c.sent(); + _b = program.ui; + switch (_b) { + case 'angular': return [3 /*break*/, 5]; + } + return [3 /*break*/, 7]; + case 5: return [4 /*yield*/, angular_1.angular(data, modules)]; + case 6: + _c.sent(); + return [3 /*break*/, 8]; + case 7: + process.exit(1); + _c.label = 8; + case 8: return [2 /*return*/]; + } + }); + }); +} +exports.cli = cli; diff --git a/npm/packs/client-generator/lib/index.js b/npm/packs/client-generator/lib/index.js index 856a9b020a..a65786ccf2 100644 --- a/npm/packs/client-generator/lib/index.js +++ b/npm/packs/client-generator/lib/index.js @@ -1,50 +1,12 @@ #!/usr/bin/env node "use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var chalk_1 = __importDefault(require("chalk")); var commander_1 = __importDefault(require("commander")); -var ora_1 = __importDefault(require("ora")); -var axios_1 = require("./utils/axios"); -var prompt_1 = require("./utils/prompt"); +var cli_1 = require("./cli"); var clear = require('clear'); var figlet = require('figlet'); clear(); @@ -52,26 +14,11 @@ console.log(chalk_1.default.red(figlet.textSync('ABP', { horizontalLayout: 'full commander_1.default .version('0.0.1') .description('ABP Client Generator') - .option('-u, --ui', 'UI option (Angular)') + .option('-u, --ui ', 'UI option (Angular)') .parse(process.argv); -if (!process.argv.slice(2).length) { +if (!process.argv.slice(2).length || !commander_1.default.ui || typeof commander_1.default.ui !== 'string') { commander_1.default.outputHelp(); process.exit(1); } -var loading = ora_1.default('Waiting for API response... \n'); -loading.start(); -(function () { - return __awaiter(this, void 0, void 0, function () { - var data; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, axios_1.axiosInstance.get('a')]; - case 1: - data = _a.sent(); - loading.stop(); - prompt_1.selectingModule(Object.keys(data)); - return [2 /*return*/]; - } - }); - }); -})(); +commander_1.default.ui = commander_1.default.ui.toLowerCase(); +cli_1.cli(commander_1.default); diff --git a/npm/packs/client-generator/lib/templates/angular/service-templates.d.ts b/npm/packs/client-generator/lib/templates/angular/service-templates.d.ts new file mode 100644 index 0000000000..58b185e760 --- /dev/null +++ b/npm/packs/client-generator/lib/templates/angular/service-templates.d.ts @@ -0,0 +1,3 @@ +export declare namespace ServiceTemplates { + function classTemplate(name: string): void; +} diff --git a/npm/packs/client-generator/lib/templates/angular/service-templates.js b/npm/packs/client-generator/lib/templates/angular/service-templates.js new file mode 100644 index 0000000000..7c7aedcf14 --- /dev/null +++ b/npm/packs/client-generator/lib/templates/angular/service-templates.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var ServiceTemplates; +(function (ServiceTemplates) { + function classTemplate(name) { + "import { RestService } from '@abp/ng.core';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class " + name + "Service {\n\n constructor(private restService: RestService) { }\n\n}"; + } + ServiceTemplates.classTemplate = classTemplate; +})(ServiceTemplates = exports.ServiceTemplates || (exports.ServiceTemplates = {})); diff --git a/npm/packs/client-generator/lib/types/api-defination.d.ts b/npm/packs/client-generator/lib/types/api-defination.d.ts new file mode 100644 index 0000000000..69d1a94fa5 --- /dev/null +++ b/npm/packs/client-generator/lib/types/api-defination.d.ts @@ -0,0 +1,8 @@ +export declare namespace APIDefination { + interface Response { + modules: Modules; + } + interface Modules { + [key: string]: any; + } +} diff --git a/npm/packs/client-generator/lib/types/api-defination.js b/npm/packs/client-generator/lib/types/api-defination.js new file mode 100644 index 0000000000..c8ad2e549b --- /dev/null +++ b/npm/packs/client-generator/lib/types/api-defination.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/npm/packs/client-generator/lib/utils/prompt.d.ts b/npm/packs/client-generator/lib/utils/prompt.d.ts index a468da865d..0cde4f1437 100644 --- a/npm/packs/client-generator/lib/utils/prompt.d.ts +++ b/npm/packs/client-generator/lib/utils/prompt.d.ts @@ -1 +1,2 @@ -export declare const selectingModule: (modules: string[]) => Promise; +export declare const uiSelection: (uiArray: string[]) => Promise; +export declare const moduleSelection: (modules: string[]) => Promise; diff --git a/npm/packs/client-generator/lib/utils/prompt.js b/npm/packs/client-generator/lib/utils/prompt.js index ec59273864..943edd5255 100644 --- a/npm/packs/client-generator/lib/utils/prompt.js +++ b/npm/packs/client-generator/lib/utils/prompt.js @@ -40,13 +40,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); var inquirer_1 = __importDefault(require("inquirer")); -exports.selectingModule = function (modules) { return __awaiter(void 0, void 0, void 0, function () { +exports.uiSelection = function (uiArray) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, inquirer_1.default.prompt(modules)]; - case 1: - _a.sent(); - return [2 /*return*/]; - } + return [2 /*return*/, inquirer_1.default + .prompt({ type: 'list', name: 'Please select an UI', choices: uiArray }) + .then(function (res) { return res['Please select an UI']; })]; + }); +}); }; +exports.moduleSelection = function (modules) { return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2 /*return*/, inquirer_1.default + .prompt({ type: 'checkbox', name: 'Please select module(s)', choices: modules }) + .then(function (res) { return res['Please select module(s)']; })]; }); }); }; diff --git a/npm/packs/client-generator/package.json b/npm/packs/client-generator/package.json index 7926bc7403..9ca4520ffc 100644 --- a/npm/packs/client-generator/package.json +++ b/npm/packs/client-generator/package.json @@ -19,6 +19,7 @@ "dependencies": { "axios": "^0.19.0", "chalk": "^3.0.0", + "change-case": "^3.1.0", "clear": "^0.1.0", "commander": "^4.0.1", "figlet": "^1.2.4", @@ -27,8 +28,8 @@ "path": "^0.12.7" }, "devDependencies": { - "@types/node": "^12.12.8", "@types/inquirer": "^6.5.0", + "@types/node": "^12.12.8", "nodemon": "^1.19.4", "ts-node": "^8.5.2", "typescript": "^3.7.2" diff --git a/npm/packs/client-generator/src/templates/angular/service-templates.ts b/npm/packs/client-generator/src/templates/angular/service-templates.ts new file mode 100644 index 0000000000..8b8bf1704d --- /dev/null +++ b/npm/packs/client-generator/src/templates/angular/service-templates.ts @@ -0,0 +1,20 @@ +import changeCase from 'change-case'; + +export namespace ServiceTemplates { + export function classTemplate(name: string, content: string[]) { + `import { RestService } from '@abp/ng.core'; +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root', +}) +export class ${changeCase.pascalCase(name)}Service { + + constructor(private restService: RestService) { } + + ${content.forEach(element => { + element + '\n\n'; + })} +}`; + } +} diff --git a/npm/packs/client-generator/yarn.lock b/npm/packs/client-generator/yarn.lock index 55f6778c1a..4e5321ab25 100644 --- a/npm/packs/client-generator/yarn.lock +++ b/npm/packs/client-generator/yarn.lock @@ -197,6 +197,13 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +camel-case@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + camelcase@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" @@ -220,6 +227,29 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +change-case@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.1.0.tgz#0e611b7edc9952df2e8513b27b42de72647dd17e" + dependencies: + camel-case "^3.0.0" + constant-case "^2.0.0" + dot-case "^2.1.0" + header-case "^1.0.0" + is-lower-case "^1.1.0" + is-upper-case "^1.1.0" + lower-case "^1.1.1" + lower-case-first "^1.0.0" + no-case "^2.3.2" + param-case "^2.1.0" + pascal-case "^2.0.0" + path-case "^2.1.0" + sentence-case "^2.1.0" + snake-case "^2.1.0" + swap-case "^1.1.0" + title-case "^2.1.0" + upper-case "^1.1.1" + upper-case-first "^1.1.0" + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -343,6 +373,13 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" +constant-case@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-2.0.0.tgz#4175764d389d3fa9c8ecd29186ed6005243b6a46" + dependencies: + snake-case "^2.1.0" + upper-case "^1.1.1" + copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" @@ -432,6 +469,12 @@ diff@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff" +dot-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-2.1.1.tgz#34dcf37f50a8e93c2b3bca8bb7fb9155c7da3bee" + dependencies: + no-case "^2.2.0" + dot-prop@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" @@ -664,6 +707,13 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" +header-case@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/header-case/-/header-case-1.0.1.tgz#9535973197c144b09613cd65d317ef19963bd02d" + dependencies: + no-case "^2.2.0" + upper-case "^1.1.3" + iconv-lite@^0.4.24, iconv-lite@^0.4.4: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -836,6 +886,12 @@ is-interactive@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" +is-lower-case@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393" + dependencies: + lower-case "^1.1.0" + is-npm@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" @@ -878,6 +934,12 @@ is-stream@^1.0.0, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" +is-upper-case@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f" + dependencies: + upper-case "^1.1.0" + is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -936,6 +998,16 @@ log-symbols@^3.0.0: dependencies: chalk "^2.4.2" +lower-case-first@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-1.0.2.tgz#e5da7c26f29a7073be02d52bac9980e5922adfa1" + dependencies: + lower-case "^1.1.2" + +lower-case@^1.1.0, lower-case@^1.1.1, lower-case@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + lowercase-keys@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" @@ -1069,6 +1141,12 @@ needle@^2.2.1: iconv-lite "^0.4.4" sax "^1.2.4" +no-case@^2.2.0, no-case@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + dependencies: + lower-case "^1.1.1" + node-pre-gyp@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" @@ -1229,10 +1307,29 @@ package-json@^4.0.0: registry-url "^3.0.3" semver "^5.1.0" +param-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + dependencies: + no-case "^2.2.0" + +pascal-case@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-2.0.1.tgz#2d578d3455f660da65eca18ef95b4e0de912761e" + dependencies: + camel-case "^3.0.0" + upper-case-first "^1.1.0" + pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" +path-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/path-case/-/path-case-2.1.1.tgz#94b8037c372d3fe2906e465bb45e25d226e8eea5" + dependencies: + no-case "^2.2.0" + path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" @@ -1410,6 +1507,13 @@ semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" +sentence-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-2.1.1.tgz#1f6e2dda39c168bf92d13f86d4a918933f667ed4" + dependencies: + no-case "^2.2.0" + upper-case-first "^1.1.2" + set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -1437,6 +1541,12 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" +snake-case@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f" + dependencies: + no-case "^2.2.0" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -1579,6 +1689,13 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +swap-case@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3" + dependencies: + lower-case "^1.1.1" + upper-case "^1.1.1" + tar@^4: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" @@ -1605,6 +1722,13 @@ timed-out@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" +title-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/title-case/-/title-case-2.1.1.tgz#3e127216da58d2bc5becf137ab91dae3a7cd8faa" + dependencies: + no-case "^2.2.0" + upper-case "^1.0.3" + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -1712,6 +1836,16 @@ update-notifier@^2.5.0: semver-diff "^2.0.0" xdg-basedir "^3.0.0" +upper-case-first@^1.1.0, upper-case-first@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115" + dependencies: + upper-case "^1.1.1" + +upper-case@^1.0.3, upper-case@^1.1.0, upper-case@^1.1.1, upper-case@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"