├── .gitignore
├── .template
├── config.json
├── tsx-next-page
│ ├── __ROOT_UP__.hooks.ts
│ ├── __ROOT_UP__.styles.ts
│ ├── __ROOT_UP__.types.ts
│ └── index.page.tsx
├── tsx-styled-hooks
│ ├── __ROOT_UP__.hooks.ts
│ ├── __ROOT_UP__.styles.ts
│ ├── __ROOT_UP__.types.ts
│ └── index.tsx
└── tsx-styled
│ ├── __ROOT_UP__.styles.ts
│ ├── __ROOT_UP__.types.ts
│ └── index.tsx
├── CHANGELOG.md
├── LICENSE
├── README.ko.md
├── README.md
├── package.json
├── src
├── @types
│ └── index.d.ts
├── assets
│ └── images
│ │ ├── banner.png
│ │ └── example
│ │ ├── example-results-folder-structure.png
│ │ └── example-results.png
├── constants
│ ├── common.ts
│ └── questions.ts
├── index.ts
├── lib
│ ├── doc.ts
│ ├── generate.ts
│ └── readTemplates.ts
└── scripts
│ └── build.js
├── tsconfig.json
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | build
4 | yarn-error.log
5 |
6 | # for test
7 | .yarn
--------------------------------------------------------------------------------
/.template/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "prefix": "__ROOT_UP__",
3 | "output": "./src/components",
4 | "excludePath": [".yarn"]
5 | }
6 |
--------------------------------------------------------------------------------
/.template/tsx-next-page/__ROOT_UP__.hooks.ts:
--------------------------------------------------------------------------------
1 | export const use__ROOT_UP__hooks = () => {
2 | return null;
3 | };
4 |
--------------------------------------------------------------------------------
/.template/tsx-next-page/__ROOT_UP__.styles.ts:
--------------------------------------------------------------------------------
1 | import styled from "styled-components";
2 |
3 | export const Container = styled.div``;
4 |
--------------------------------------------------------------------------------
/.template/tsx-next-page/__ROOT_UP__.types.ts:
--------------------------------------------------------------------------------
1 | export interface __ROOT_UP__Props {
2 | dummy?: any;
3 | }
4 |
--------------------------------------------------------------------------------
/.template/tsx-next-page/index.page.tsx:
--------------------------------------------------------------------------------
1 | import { GetServerSideProps } from "next";
2 | import { use__ROOT_UP__hooks } from "./__ROOT_UP__.hooks";
3 | import * as Styled from "./__ROOT_UP__.styles";
4 | import type { __ROOT_UP__Props } from "./__ROOT_UP__.types";
5 |
6 | export const __ROOT_UP__ = ({ dummy }: __ROOT_UP__Props) => {
7 | const app = use__ROOT_UP__hooks();
8 |
9 | return hi;
10 | };
11 |
12 | export const getServerSideProps: GetServerSideProps = async context => {
13 | const query = context.query;
14 |
15 | return {};
16 | };
17 |
--------------------------------------------------------------------------------
/.template/tsx-styled-hooks/__ROOT_UP__.hooks.ts:
--------------------------------------------------------------------------------
1 | export const use__ROOT_UP__hooks = () => {
2 | return null;
3 | };
4 |
--------------------------------------------------------------------------------
/.template/tsx-styled-hooks/__ROOT_UP__.styles.ts:
--------------------------------------------------------------------------------
1 | import styled from "styled-components";
2 |
3 | export const Container = styled.div``;
4 |
--------------------------------------------------------------------------------
/.template/tsx-styled-hooks/__ROOT_UP__.types.ts:
--------------------------------------------------------------------------------
1 | export interface __ROOT_UP__Props {
2 | dummy?: any;
3 | }
4 |
--------------------------------------------------------------------------------
/.template/tsx-styled-hooks/index.tsx:
--------------------------------------------------------------------------------
1 | import { use__ROOT_UP__hooks } from "./__ROOT_UP__.hooks";
2 | import * as Styled from "./__ROOT_UP__.styles";
3 | import type { __ROOT_UP__Props } from "./__ROOT_UP__.types";
4 |
5 | export const __ROOT_UP__ = ({ dummy }: __ROOT_UP__Props) => {
6 | const app = use__ROOT_UP__hooks();
7 |
8 | return hi;
9 | };
10 |
--------------------------------------------------------------------------------
/.template/tsx-styled/__ROOT_UP__.styles.ts:
--------------------------------------------------------------------------------
1 | import styled from "styled-components";
2 |
3 | export const Container = styled.div``;
4 |
--------------------------------------------------------------------------------
/.template/tsx-styled/__ROOT_UP__.types.ts:
--------------------------------------------------------------------------------
1 | export interface __ROOT_UP__Props {
2 | dummy?: any;
3 | }
4 |
--------------------------------------------------------------------------------
/.template/tsx-styled/index.tsx:
--------------------------------------------------------------------------------
1 | import * as Styled from "./__ROOT_UP__.styles";
2 | import type { __ROOT_UP__Props } from "./__ROOT_UP__.types";
3 |
4 | export const __ROOT_UP__ = ({ dummy }: __ROOT_UP__Props) => {
5 | return hi;
6 | };
7 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # CHANGELOG
2 |
3 | ## v0
4 |
5 | ### 0.1.0 / 2022-02-27
6 |
7 | - Initial release
8 |
9 | ### 0.1.1 / 2022-02-27
10 |
11 | - command change
12 | - m-rcg to m-rfcg
13 | - write readme
14 |
15 | ### 0.2.0
16 |
17 | - add doc command
18 | - change template config
19 | - add template.json file
20 |
21 | ### 0.2.3
22 |
23 | - hotfix
24 | - doc command not working
25 | - apply to template path -> path.resolve
26 |
27 | ## v2
28 |
29 | ### 2.0.0
30 |
31 | ### 2.0.5
32 |
33 | - Add output path input
34 |
35 | ### 2.0.6
36 |
37 | - Remove doc generate config
38 | - It will be work next time (2.1.0)
39 |
40 | ### 2.0.7
41 |
42 | - Refactoring (with @jgjgill)
43 | - refactoring: 에러 관련 코드 위치 변경 (#3)
44 |
45 | ### 2.0.8
46 |
47 | - feat: Add Edge case cover for no exists config.json
48 | - Add exclude path config
49 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 [fullname] Minsoo Kim
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.ko.md:
--------------------------------------------------------------------------------
1 | # Root Up
2 |
3 | 
4 |
5 | [English](https://github.com/minsoo-web/root-up/blob/main/README.md) | 한국어
6 |
7 | ## 목차
8 |
9 | - [🗂 Root Up이 뭔데?](#🗂-root-up이-뭔데)
10 | - [🚗 설치](#🚗-설치)
11 | - [Global](#global)
12 | - [Local](#local)
13 | - [🛑 시작하기 전에](#🛑-시작하기-전에)
14 | - [templateFolder](#templateFolder)
15 | - [config.json](#config.json)
16 | - [🚀 실행 방법](#🚀-실행-방법)
17 | - [🚕 예제](#🚕-예제)
18 | - [Contributing](#contributing)
19 |
20 | ## 🗂 Root Up이 뭔데?
21 |
22 | `Root Up` 이란, 반복되어 사용되는 폴더 템플릿이 있는 사람들에게 손쉽게 폴더 구조를 생성할 수 있게 해주는 패키지입니다.
23 |
24 | ## 🚗 설치
25 |
26 | ### 전역 설치
27 |
28 | ```bash
29 | # yarn을 사용할 경우
30 | yarn global add root-up
31 | ```
32 |
33 | ```bash
34 | # npm을 사용할 경우
35 | npm install -g root-up
36 | ```
37 |
38 | ### 로컬 설치
39 |
40 | ```bash
41 | # yarn을 사용할 경우
42 | yarn add -D root-up
43 | ```
44 |
45 | ```bash
46 | # npm을 사용할 경우
47 | npm install -D root-up
48 | ```
49 |
50 | > 주의: 만약 npm 버전 5.0.0 이전의 버전을 사용할 경우 --save 옵션을 꼭 넣어주어야 합니다.
51 |
52 | 아래와 같이 `package.json`의 scripts에 추가해줍니다.
53 |
54 | ```json
55 | "scripts": {
56 | "root-up": "root-up"
57 | },
58 | ```
59 |
60 | ## 🛑 시작하기 전에
61 |
62 | 시작하기 전에, 워크스페이스의 루트 경로에 `.template`라는 폴더를 꼭 생성해야 합니다.
63 | `.template`폴더는 아래와 같이 구성되어야 합니다.
64 |
65 | ```txt
66 | /.template
67 | /
68 | /
69 | ...
70 | config.json
71 | ```
72 |
73 | [`.template`폴더 예시 확인하기](https://github.com/minsoo-web/root-up/tree/main/.template)
74 |
75 | ### templateFolder
76 |
77 | `/` 은 자주 사용되는 템플릿 폴더입니다.
78 | prefix가 제대로 설정되었는지, config.json에 명시되어있는 내용과 일치하는지를 꼭 확인하세요
79 |
80 | ### config.json
81 |
82 | `.config.json` 파일은 다음과 같이 구성되어야 합니다.
83 |
84 | ```json
85 | {
86 | "prefix": "내가_좋아하는_PREFIX",
87 | "output": "내가_자주_사용하는_output_path",
88 | "excludePath": "내가_무시하고_싶은_folder_name_prefix"
89 | }
90 | ```
91 |
92 | **prefix**:
93 | `prefix` 속성은 이름으로 대체되는 속성입니다. 파일의 이름과 코드 내부에서 사용되었을 때,
94 | 입력된 `name`으로 대체됩니다.
95 |
96 | **output**:
97 | `output` 속성은 템플릿을 통해 생성된 폴더가 위치할 경로를 명시합니다.
98 | 명령어가 실행된 workspace를 기준으로 상대경로를 명시합니다.
99 |
100 | **excludePath**:
101 | excludePath 속성은 생성할 폴더를 검색할 때 무시하고 싶은 폴더 이름을 설정할 수 있습니다.
102 | (예를 들면, .yarn 폴더와 같이요!)
103 | default로 `node_modules`와 `.git`이 설정되어있습니다.
104 |
105 | ## 🚀 실행 방법
106 |
107 | ```bash
108 | # 전역으로 설치된 경우
109 | root-up
110 |
111 | # 로컬로 설치된 경우
112 | yarn # package.json에 명시된 명령어를 입력합니다.
113 | ```
114 |
115 | ## 🚕 예제
116 |
117 | > npx를 사용할 수도 있습니다.
118 |
119 | https://user-images.githubusercontent.com/57122180/218425678-eabb9b8d-f7a2-4048-bec1-e32f2da900b0.mov
120 |
121 | ## Contributing
122 |
123 | 기여는 언제든지 환영입니다!
124 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Root Up
2 |
3 | 
4 |
5 | English | [한국어](https://github.com/minsoo-web/root-up/blob/main/README.ko.md)
6 |
7 | ## Table of contents
8 |
9 | - [🗂 What is Root Up?](#-what-is-root-up)
10 | - [🚗 Installation](#-installation)
11 | - [Global](#global)
12 | - [Local](#local)
13 | - [🛑 Before you start](#-before-you-start)
14 | - [templateFolder](#templateFolder)
15 | - [config.json](#config.json)
16 | - [🚀 How to run](#-how-to-run)
17 | - [🚕 Demo](#-demo)
18 | - [Contributing](#contributing)
19 |
20 | ## 🗂 What is Root Up?
21 |
22 | This package is built for folder structure generator who has specific folder template.
23 |
24 | ## 🚗 Installation
25 |
26 | ### Global
27 |
28 | ```bash
29 | # using yarn
30 | yarn global add root-up
31 | ```
32 |
33 | ```bash
34 | # using npm
35 | npm install -g root-up
36 | ```
37 |
38 | ### Local
39 |
40 | ```bash
41 | # using yarn
42 | yarn add -D root-up
43 | ```
44 |
45 | ```bash
46 | # using npm
47 | npm install -D root-up
48 | ```
49 |
50 | > Note: add --save if you are using npm < 5.0.0
51 |
52 | Add script in your `package.json`
53 |
54 | ```json
55 | "scripts": {
56 | "root-up": "root-up"
57 | },
58 | ```
59 |
60 | ## 🛑 Before you start
61 |
62 | You must make `.template` folder to your root path in workspace
63 | The `.template` folder must be configured as follows
64 |
65 | ```txt
66 | /.template
67 | /
68 | /
69 | ...
70 | config.json
71 | ```
72 |
73 | [Checkout `.template` folder demo](https://github.com/minsoo-web/root-up/tree/main/.template)
74 |
75 | ### templateFolder
76 |
77 | `/` ... is your own template.
78 | Make sure check prefix in your config.json
79 |
80 | ### config.json
81 |
82 | The `.config.json` file must be configured as follows
83 |
84 | ```json
85 | {
86 | "prefix": "YOUR_FAVORITE_PREFIX",
87 | "output": "YOUR_DEFAULT_OUTPUT_PATH_IN_YOUR_WORKSPACE",
88 | "excludePath": ["YOUR_IGNORE_PREFIX"]
89 | }
90 | ```
91 |
92 | **prefix**:
93 | The `prefix` property is the property that sets the alternate text to be replaced by the name of the folder.
94 | Write down the name of the file, the code used in the template.
95 |
96 | **output**:
97 | The `output` property is the property that path to template folder generated _related path_ to your command is executed path
98 |
99 | **excludePath**:
100 | The `excludePath` property is the property that can ignore path finding in searching path to generate folder (e.g: .yarn folder)
101 | Default is `node_modules` and `.git`
102 |
103 | ## 🚀 How to run
104 |
105 | ```bash
106 | # Global installed
107 | root-up
108 |
109 | # or local installed
110 | yarn # specified in your package.json
111 | ```
112 |
113 | ## 🚕 Demo
114 |
115 | > You can use npx
116 |
117 | https://user-images.githubusercontent.com/57122180/218425678-eabb9b8d-f7a2-4048-bec1-e32f2da900b0.mov
118 |
119 | ## Contributing
120 |
121 | We welcome contribution from everyone in the community.
122 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "root-up",
3 | "version": "2.0.8",
4 | "description": "generator for template folder by boilerplate",
5 | "homepage": "https://github.com/minsoo-web/root-up",
6 | "repository": {
7 | "type": "git",
8 | "url": "https://github.com/minsoo-web/root-up"
9 | },
10 | "bugs": {
11 | "email": "zlemzlem5656@naver.com",
12 | "url": "https://github.com/minsoo-web/root-up/issues"
13 | },
14 | "bin": {
15 | "root-up": "./build/index.js"
16 | },
17 | "scripts": {
18 | "prepublishOnly": "tsc && node src/scripts/build.js",
19 | "build": "tsc && node src/scripts/build.js",
20 | "dev": "npx tsx ./src/index.ts"
21 | },
22 | "author": "minsoo-web ",
23 | "keywords": [
24 | "boilerplate",
25 | "template generate",
26 | "folder generate",
27 | "template",
28 | "template folder auto generate"
29 | ],
30 | "license": "MIT",
31 | "dependencies": {
32 | "inquirer": "^9.1.4"
33 | },
34 | "devDependencies": {
35 | "@types/inquirer": "^9.0.3",
36 | "@types/node": "^18.8.0",
37 | "esbuild": "^0.17.7",
38 | "inquirer-fuzzy-path": "^2.3.0",
39 | "typescript": "^4.9.5"
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/@types/index.d.ts:
--------------------------------------------------------------------------------
1 | declare module Common {
2 | interface Config {
3 | prefix: string;
4 | output: string;
5 | excludePath: string[];
6 | }
7 |
8 | interface UserInput {
9 | name: string;
10 | template: string;
11 | outputPath: string;
12 | }
13 |
14 | interface GenerateParam extends Pick, Omit {
15 | templatePath: string;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/assets/images/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minsoo-web/root-up/bd1cac2b994e5f320f1c635b48981cebca6b4674/src/assets/images/banner.png
--------------------------------------------------------------------------------
/src/assets/images/example/example-results-folder-structure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minsoo-web/root-up/bd1cac2b994e5f320f1c635b48981cebca6b4674/src/assets/images/example/example-results-folder-structure.png
--------------------------------------------------------------------------------
/src/assets/images/example/example-results.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minsoo-web/root-up/bd1cac2b994e5f320f1c635b48981cebca6b4674/src/assets/images/example/example-results.png
--------------------------------------------------------------------------------
/src/constants/common.ts:
--------------------------------------------------------------------------------
1 | export const TEMPLATE_PATH = "./.template";
2 |
--------------------------------------------------------------------------------
/src/constants/questions.ts:
--------------------------------------------------------------------------------
1 | import { Question } from "inquirer";
2 |
3 | type QuestionWithChoices = Question & { choices?: string[] } & Partial<{
4 | excludePath: (path: string) => boolean;
5 | excludeFilter: (path: string) => boolean;
6 | itemType: "any" | "directory" | "file";
7 | rootPath: string;
8 | suggestOnly: boolean;
9 | depthLimit: number;
10 | }>;
11 |
12 | export const componentNameQuestion: QuestionWithChoices[] = [];
13 |
14 | export const questions = (
15 | templates: string[],
16 | configFile: Common.Config
17 | ): QuestionWithChoices[] => [
18 | {
19 | name: "name",
20 | message: "What is your folder name?",
21 | askAnswered: true
22 | },
23 | {
24 | name: "template",
25 | message: "Chose your template",
26 | type: "list",
27 | choices: templates
28 | },
29 | {
30 | type: "fuzzypath",
31 | name: "outputPath",
32 | excludePath: nodePath => {
33 | return configFile.excludePath.some(exclude => {
34 | return (
35 | nodePath.startsWith("node_modules") ||
36 | nodePath.startsWith(".git") ||
37 | nodePath.startsWith(exclude)
38 | );
39 | });
40 | },
41 | // excludePath :: (String) -> Bool
42 | // excludePath to exclude some paths from the file-system scan
43 | excludeFilter: nodePath => nodePath === ".",
44 | // excludeFilter :: (String) -> Bool
45 | // excludeFilter to exclude some paths from the final list, e.g. '.'
46 | itemType: "directory",
47 | // itemType :: 'any' | 'directory' | 'file'
48 | // specify the type of nodes to display
49 | // default value: 'any'
50 | // example: itemType: 'file' - hides directories from the item list
51 | rootPath: ".",
52 | // rootPath :: String
53 | // Root search directory
54 | message: "Select a target directory for your component:",
55 | default: configFile.output,
56 | suggestOnly: false,
57 | // suggestOnly :: Bool
58 | // Restrict prompt answer to available choices or use them as suggestions
59 | depthLimit: 5
60 | // depthLimit :: integer >= 0
61 | // Limit the depth of sub-folders to scan
62 | // Defaults to infinite depth if undefined
63 | }
64 | ];
65 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | import { TEMPLATE_PATH } from "constants/common";
4 | import inquirer from "inquirer";
5 | import { questions } from "./constants/questions";
6 | import { generate } from "./lib/generate";
7 | import { readTemplates } from "./lib/readTemplates";
8 |
9 | inquirer.registerPrompt("fuzzypath", require("inquirer-fuzzy-path"));
10 |
11 | const main = async () => {
12 | const { templateList, configFile } = readTemplates();
13 |
14 | const { name, template, outputPath } = await inquirer.prompt(
15 | questions(templateList, configFile)
16 | );
17 |
18 | generate({
19 | name,
20 | templatePath: `${TEMPLATE_PATH}/${template}`,
21 | prefix: configFile.prefix,
22 | outputPath
23 | });
24 | };
25 |
26 | main();
27 |
--------------------------------------------------------------------------------
/src/lib/doc.ts:
--------------------------------------------------------------------------------
1 | import { TEMPLATE_PATH } from "constants/common";
2 | import fs from "fs";
3 | import path from "path";
4 |
5 | export const doc = () => {
6 | const exampleTemplateFolderPath = path.resolve(__dirname, "../assets/data/.template");
7 |
8 | if (!fs.existsSync(TEMPLATE_PATH)) {
9 | fs.mkdirSync(TEMPLATE_PATH);
10 |
11 | const fileList = fs.readdirSync(exampleTemplateFolderPath);
12 | fileList.forEach(fileName => {
13 | const data = fs.readFileSync(`${exampleTemplateFolderPath}/${fileName}`, "utf-8");
14 | fs.writeFileSync(`.template/${fileName}`, data);
15 | });
16 |
17 | console.log(
18 | "🚀 Generate template folder with doc file! \nif you want specify custom template check https://github.com/minsoo-web/react-component-folder-generator#case-of-your-own-template"
19 | );
20 | } else {
21 | console.log(
22 | `".template" folder is already exists😢\nmake sure folder name ".template" is not exists`
23 | );
24 | }
25 | };
26 |
--------------------------------------------------------------------------------
/src/lib/generate.ts:
--------------------------------------------------------------------------------
1 | import fs from "fs";
2 |
3 | export const generate = ({ prefix, templatePath, name, outputPath }: Common.GenerateParam) => {
4 | if (!fs.existsSync(outputPath)) {
5 | fs.mkdirSync(outputPath, { recursive: true });
6 | }
7 |
8 | if (!fs.existsSync(`${outputPath}/${name}`)) {
9 | fs.mkdirSync(`${outputPath}/${name}`);
10 | }
11 |
12 | const reg = new RegExp(prefix, "gi");
13 |
14 | const fileList = fs.readdirSync(templatePath);
15 |
16 | fileList.forEach(fileName => {
17 | const fileString = fs.readFileSync(`${templatePath}/${fileName}`, "utf-8").toString();
18 |
19 | fs.writeFileSync(
20 | `${outputPath}/${name}/${fileName.replace(reg, name)}`,
21 | fileString.replace(reg, name)
22 | );
23 | });
24 |
25 | console.log(`🚀 ${name} folder is made with root-up!!!\n\n😎Happy Hacking`);
26 | };
27 |
--------------------------------------------------------------------------------
/src/lib/readTemplates.ts:
--------------------------------------------------------------------------------
1 | import { TEMPLATE_PATH } from "constants/common";
2 | import fs from "fs";
3 |
4 | const readConfigFile = (path = TEMPLATE_PATH) => {
5 | let configFile;
6 |
7 | try {
8 | configFile = fs.readFileSync(`${path}/config.json`);
9 | } catch (error) {
10 | throw new Error(
11 | "config.json is not found please checkout https://github.com/minsoo-web/root-up/blob/main/README.md"
12 | );
13 | }
14 |
15 | return JSON.parse(configFile.toString());
16 | };
17 |
18 | export const readTemplates = () => {
19 | let templateList = [];
20 | try {
21 | templateList = fs.readdirSync(TEMPLATE_PATH);
22 | } catch (error) {
23 | throw new Error(
24 | "`/.template` folder is not found please checkout https://github.com/minsoo-web/root-up/blob/main/README.md"
25 | );
26 | }
27 |
28 | const configFileIndex = templateList.findIndex(template => template === "config.json");
29 | let configFile: Common.Config = readConfigFile();
30 |
31 | if (configFileIndex === -1) {
32 | throw new Error("🔥 No Exist config.json file in .template folder");
33 | }
34 |
35 | if (configFileIndex >= 0) {
36 | templateList.splice(configFileIndex, 1);
37 | }
38 |
39 | if (templateList.length === 0) {
40 | throw new Error("🔥 No Exist template in .template folder");
41 | }
42 |
43 | return { templateList, configFile };
44 | };
45 |
--------------------------------------------------------------------------------
/src/scripts/build.js:
--------------------------------------------------------------------------------
1 | require("esbuild")
2 | .build({
3 | entryPoints: ["src/index.ts"],
4 | outdir: "build",
5 | bundle: true,
6 | platform: "node"
7 | })
8 | .catch(() => process.exit(1));
9 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "CommonJS",
4 | "target": "ESNext",
5 | "outDir": "build",
6 | "baseUrl": "./src",
7 | "declaration": true,
8 | "emitDeclarationOnly": true,
9 | "sourceMap": true,
10 | "strict": true,
11 | "esModuleInterop": true,
12 | "experimentalDecorators": true,
13 | "skipLibCheck": true // node_modules 타입 검증 skip
14 | },
15 | "moduleResolution": "node",
16 | "include": ["./src/**/*"],
17 | "exclude": ["node_modules", "assets"]
18 | }
19 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@esbuild/android-arm64@0.17.8":
6 | version "0.17.8"
7 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.8.tgz#b3d5b65a3b2e073a6c7ee36b1f3c30c8f000315b"
8 | integrity sha512-oa/N5j6v1svZQs7EIRPqR8f+Bf8g6HBDjD/xHC02radE/NjKHK7oQmtmLxPs1iVwYyvE+Kolo6lbpfEQ9xnhxQ==
9 |
10 | "@esbuild/android-arm@0.17.8":
11 | version "0.17.8"
12 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.8.tgz#c41e496af541e175369d48164d0cf01a5f656cf6"
13 | integrity sha512-0/rb91GYKhrtbeglJXOhAv9RuYimgI8h623TplY2X+vA4EXnk3Zj1fXZreJ0J3OJJu1bwmb0W7g+2cT/d8/l/w==
14 |
15 | "@esbuild/android-x64@0.17.8":
16 | version "0.17.8"
17 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.8.tgz#080fa67c29be77f5a3ca5ee4cc78d5bf927e3a3b"
18 | integrity sha512-bTliMLqD7pTOoPg4zZkXqCDuzIUguEWLpeqkNfC41ODBHwoUgZ2w5JBeYimv4oP6TDVocoYmEhZrCLQTrH89bg==
19 |
20 | "@esbuild/darwin-arm64@0.17.8":
21 | version "0.17.8"
22 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.8.tgz#053622bf9a82f43d5c075b7818e02618f7b4a397"
23 | integrity sha512-ghAbV3ia2zybEefXRRm7+lx8J/rnupZT0gp9CaGy/3iolEXkJ6LYRq4IpQVI9zR97ID80KJVoUlo3LSeA/sMAg==
24 |
25 | "@esbuild/darwin-x64@0.17.8":
26 | version "0.17.8"
27 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.8.tgz#8a1aadb358d537d8efad817bb1a5bff91b84734b"
28 | integrity sha512-n5WOpyvZ9TIdv2V1K3/iIkkJeKmUpKaCTdun9buhGRWfH//osmUjlv4Z5mmWdPWind/VGcVxTHtLfLCOohsOXw==
29 |
30 | "@esbuild/freebsd-arm64@0.17.8":
31 | version "0.17.8"
32 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.8.tgz#e6738d0081ba0721a5c6c674e84c6e7fcea61989"
33 | integrity sha512-a/SATTaOhPIPFWvHZDoZYgxaZRVHn0/LX1fHLGfZ6C13JqFUZ3K6SMD6/HCtwOQ8HnsNaEeokdiDSFLuizqv5A==
34 |
35 | "@esbuild/freebsd-x64@0.17.8":
36 | version "0.17.8"
37 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.8.tgz#1855e562f2b730f4483f6e94086e9e2597feb4c3"
38 | integrity sha512-xpFJb08dfXr5+rZc4E+ooZmayBW6R3q59daCpKZ/cDU96/kvDM+vkYzNeTJCGd8rtO6fHWMq5Rcv/1cY6p6/0Q==
39 |
40 | "@esbuild/linux-arm64@0.17.8":
41 | version "0.17.8"
42 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.8.tgz#481da38952721a3fdb77c17a36ceaacc4270b5c5"
43 | integrity sha512-v3iwDQuDljLTxpsqQDl3fl/yihjPAyOguxuloON9kFHYwopeJEf1BkDXODzYyXEI19gisEsQlG1bM65YqKSIww==
44 |
45 | "@esbuild/linux-arm@0.17.8":
46 | version "0.17.8"
47 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.8.tgz#18127072b270bb6321c6d11be20bfd30e0d6ad17"
48 | integrity sha512-6Ij8gfuGszcEwZpi5jQIJCVIACLS8Tz2chnEBfYjlmMzVsfqBP1iGmHQPp7JSnZg5xxK9tjCc+pJ2WtAmPRFVA==
49 |
50 | "@esbuild/linux-ia32@0.17.8":
51 | version "0.17.8"
52 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.8.tgz#ee400af7b3bc69e8ca2e593ca35156ffb9abd54f"
53 | integrity sha512-8svILYKhE5XetuFk/B6raFYIyIqydQi+GngEXJgdPdI7OMKUbSd7uzR02wSY4kb53xBrClLkhH4Xs8P61Q2BaA==
54 |
55 | "@esbuild/linux-loong64@0.17.8":
56 | version "0.17.8"
57 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.8.tgz#8c509d8a454693d39824b83b3f66c400872fce82"
58 | integrity sha512-B6FyMeRJeV0NpyEOYlm5qtQfxbdlgmiGdD+QsipzKfFky0K5HW5Td6dyK3L3ypu1eY4kOmo7wW0o94SBqlqBSA==
59 |
60 | "@esbuild/linux-mips64el@0.17.8":
61 | version "0.17.8"
62 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.8.tgz#f2b0d36e63fb26bc3f95b203b6a80638292101ca"
63 | integrity sha512-CCb67RKahNobjm/eeEqeD/oJfJlrWyw29fgiyB6vcgyq97YAf3gCOuP6qMShYSPXgnlZe/i4a8WFHBw6N8bYAA==
64 |
65 | "@esbuild/linux-ppc64@0.17.8":
66 | version "0.17.8"
67 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.8.tgz#1e628be003e036e90423716028cc884fe5ba25bd"
68 | integrity sha512-bytLJOi55y55+mGSdgwZ5qBm0K9WOCh0rx+vavVPx+gqLLhxtSFU0XbeYy/dsAAD6xECGEv4IQeFILaSS2auXw==
69 |
70 | "@esbuild/linux-riscv64@0.17.8":
71 | version "0.17.8"
72 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.8.tgz#419a815cb4c3fb9f1b78ef5295f5b48b8bf6427a"
73 | integrity sha512-2YpRyQJmKVBEHSBLa8kBAtbhucaclb6ex4wchfY0Tj3Kg39kpjeJ9vhRU7x4mUpq8ISLXRXH1L0dBYjAeqzZAw==
74 |
75 | "@esbuild/linux-s390x@0.17.8":
76 | version "0.17.8"
77 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.8.tgz#291c49ae5c3d11d226352755c0835911fe1a9e5c"
78 | integrity sha512-QgbNY/V3IFXvNf11SS6exkpVcX0LJcob+0RWCgV9OiDAmVElnxciHIisoSix9uzYzScPmS6dJFbZULdSAEkQVw==
79 |
80 | "@esbuild/linux-x64@0.17.8":
81 | version "0.17.8"
82 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.8.tgz#03199d91c76faf80bd54104f5cbf0a489bc39f6a"
83 | integrity sha512-mM/9S0SbAFDBc4OPoyP6SEOo5324LpUxdpeIUUSrSTOfhHU9hEfqRngmKgqILqwx/0DVJBzeNW7HmLEWp9vcOA==
84 |
85 | "@esbuild/netbsd-x64@0.17.8":
86 | version "0.17.8"
87 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.8.tgz#b436d767e1b21852f9ed212e2bb57f77203b0ae2"
88 | integrity sha512-eKUYcWaWTaYr9zbj8GertdVtlt1DTS1gNBWov+iQfWuWyuu59YN6gSEJvFzC5ESJ4kMcKR0uqWThKUn5o8We6Q==
89 |
90 | "@esbuild/openbsd-x64@0.17.8":
91 | version "0.17.8"
92 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.8.tgz#d1481d8539e21d4729cd04a0450a26c2c8789e89"
93 | integrity sha512-Vc9J4dXOboDyMXKD0eCeW0SIeEzr8K9oTHJU+Ci1mZc5njPfhKAqkRt3B/fUNU7dP+mRyralPu8QUkiaQn7iIg==
94 |
95 | "@esbuild/sunos-x64@0.17.8":
96 | version "0.17.8"
97 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.8.tgz#2cfb8126e079b2c00fd1bf095541e9f5c47877e4"
98 | integrity sha512-0xvOTNuPXI7ft1LYUgiaXtpCEjp90RuBBYovdd2lqAFxje4sEucurg30M1WIm03+3jxByd3mfo+VUmPtRSVuOw==
99 |
100 | "@esbuild/win32-arm64@0.17.8":
101 | version "0.17.8"
102 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.8.tgz#7c6ecfd097ca23b82119753bf7072bbaefe51e3a"
103 | integrity sha512-G0JQwUI5WdEFEnYNKzklxtBheCPkuDdu1YrtRrjuQv30WsYbkkoixKxLLv8qhJmNI+ATEWquZe/N0d0rpr55Mg==
104 |
105 | "@esbuild/win32-ia32@0.17.8":
106 | version "0.17.8"
107 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.8.tgz#cffec63c3cb0ef8563a04df4e09fa71056171d00"
108 | integrity sha512-Fqy63515xl20OHGFykjJsMnoIWS+38fqfg88ClvPXyDbLtgXal2DTlhb1TfTX34qWi3u4I7Cq563QcHpqgLx8w==
109 |
110 | "@esbuild/win32-x64@0.17.8":
111 | version "0.17.8"
112 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.8.tgz#200a0965cf654ac28b971358ecdca9cc5b44c335"
113 | integrity sha512-1iuezdyDNngPnz8rLRDO2C/ZZ/emJLb72OsZeqQ6gL6Avko/XCXZw+NuxBSNhBAP13Hie418V7VMt9et1FMvpg==
114 |
115 | "@types/inquirer@^9.0.3":
116 | version "9.0.3"
117 | resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-9.0.3.tgz#dc99da4f2f6de9d26c284b4f6aaab4d98c456db1"
118 | integrity sha512-CzNkWqQftcmk2jaCWdBTf9Sm7xSw4rkI1zpU/Udw3HX5//adEZUIm9STtoRP1qgWj0CWQtJ9UTvqmO2NNjhMJw==
119 | dependencies:
120 | "@types/through" "*"
121 | rxjs "^7.2.0"
122 |
123 | "@types/node@*", "@types/node@^18.8.0":
124 | version "18.13.0"
125 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.13.0.tgz#0400d1e6ce87e9d3032c19eb6c58205b0d3f7850"
126 | integrity sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==
127 |
128 | "@types/through@*":
129 | version "0.0.30"
130 | resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.30.tgz#e0e42ce77e897bd6aead6f6ea62aeb135b8a3895"
131 | integrity sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==
132 | dependencies:
133 | "@types/node" "*"
134 |
135 | ansi-escapes@^3.2.0:
136 | version "3.2.0"
137 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
138 | integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
139 |
140 | ansi-escapes@^4.3.1:
141 | version "4.3.2"
142 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
143 | integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
144 | dependencies:
145 | type-fest "^0.21.3"
146 |
147 | ansi-escapes@^6.0.0:
148 | version "6.0.0"
149 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.0.0.tgz#68c580e87a489f6df3d761028bb93093fde6bd8a"
150 | integrity sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==
151 | dependencies:
152 | type-fest "^3.0.0"
153 |
154 | ansi-regex@^3.0.0:
155 | version "3.0.1"
156 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
157 | integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
158 |
159 | ansi-regex@^4.1.0:
160 | version "4.1.1"
161 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed"
162 | integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==
163 |
164 | ansi-regex@^6.0.1:
165 | version "6.0.1"
166 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
167 | integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
168 |
169 | ansi-styles@^3.2.1:
170 | version "3.2.1"
171 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
172 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
173 | dependencies:
174 | color-convert "^1.9.0"
175 |
176 | ansi-styles@^4.1.0:
177 | version "4.3.0"
178 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
179 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
180 | dependencies:
181 | color-convert "^2.0.1"
182 |
183 | ansi-styles@^6.1.0:
184 | version "6.2.1"
185 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
186 | integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
187 |
188 | base64-js@^1.3.1:
189 | version "1.5.1"
190 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
191 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
192 |
193 | bl@^5.0.0:
194 | version "5.1.0"
195 | resolved "https://registry.yarnpkg.com/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273"
196 | integrity sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==
197 | dependencies:
198 | buffer "^6.0.3"
199 | inherits "^2.0.4"
200 | readable-stream "^3.4.0"
201 |
202 | buffer@^6.0.3:
203 | version "6.0.3"
204 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
205 | integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
206 | dependencies:
207 | base64-js "^1.3.1"
208 | ieee754 "^1.2.1"
209 |
210 | chalk@^2.4.2:
211 | version "2.4.2"
212 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
213 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
214 | dependencies:
215 | ansi-styles "^3.2.1"
216 | escape-string-regexp "^1.0.5"
217 | supports-color "^5.3.0"
218 |
219 | chalk@^4.0.0:
220 | version "4.1.2"
221 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
222 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
223 | dependencies:
224 | ansi-styles "^4.1.0"
225 | supports-color "^7.1.0"
226 |
227 | chalk@^5.0.0, chalk@^5.1.2:
228 | version "5.2.0"
229 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3"
230 | integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==
231 |
232 | chardet@^0.7.0:
233 | version "0.7.0"
234 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
235 | integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
236 |
237 | cli-cursor@^2.1.0:
238 | version "2.1.0"
239 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
240 | integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==
241 | dependencies:
242 | restore-cursor "^2.0.0"
243 |
244 | cli-cursor@^4.0.0:
245 | version "4.0.0"
246 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea"
247 | integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==
248 | dependencies:
249 | restore-cursor "^4.0.0"
250 |
251 | cli-spinners@^2.6.1:
252 | version "2.7.0"
253 | resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a"
254 | integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==
255 |
256 | cli-width@^2.0.0:
257 | version "2.2.1"
258 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48"
259 | integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==
260 |
261 | cli-width@^4.0.0:
262 | version "4.0.0"
263 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.0.0.tgz#a5622f6a3b0a9e3e711a25f099bf2399f608caf6"
264 | integrity sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==
265 |
266 | clone@^1.0.2:
267 | version "1.0.4"
268 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
269 | integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==
270 |
271 | color-convert@^1.9.0:
272 | version "1.9.3"
273 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
274 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
275 | dependencies:
276 | color-name "1.1.3"
277 |
278 | color-convert@^2.0.1:
279 | version "2.0.1"
280 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
281 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
282 | dependencies:
283 | color-name "~1.1.4"
284 |
285 | color-name@1.1.3:
286 | version "1.1.3"
287 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
288 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
289 |
290 | color-name@~1.1.4:
291 | version "1.1.4"
292 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
293 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
294 |
295 | defaults@^1.0.3:
296 | version "1.0.4"
297 | resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a"
298 | integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==
299 | dependencies:
300 | clone "^1.0.2"
301 |
302 | eastasianwidth@^0.2.0:
303 | version "0.2.0"
304 | resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
305 | integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
306 |
307 | emoji-regex@^9.2.2:
308 | version "9.2.2"
309 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
310 | integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
311 |
312 | esbuild@^0.17.7:
313 | version "0.17.8"
314 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.8.tgz#f7f799abc7cdce3f0f2e3e0c01f120d4d55193b4"
315 | integrity sha512-g24ybC3fWhZddZK6R3uD2iF/RIPnRpwJAqLov6ouX3hMbY4+tKolP0VMF3zuIYCaXun+yHwS5IPQ91N2BT191g==
316 | optionalDependencies:
317 | "@esbuild/android-arm" "0.17.8"
318 | "@esbuild/android-arm64" "0.17.8"
319 | "@esbuild/android-x64" "0.17.8"
320 | "@esbuild/darwin-arm64" "0.17.8"
321 | "@esbuild/darwin-x64" "0.17.8"
322 | "@esbuild/freebsd-arm64" "0.17.8"
323 | "@esbuild/freebsd-x64" "0.17.8"
324 | "@esbuild/linux-arm" "0.17.8"
325 | "@esbuild/linux-arm64" "0.17.8"
326 | "@esbuild/linux-ia32" "0.17.8"
327 | "@esbuild/linux-loong64" "0.17.8"
328 | "@esbuild/linux-mips64el" "0.17.8"
329 | "@esbuild/linux-ppc64" "0.17.8"
330 | "@esbuild/linux-riscv64" "0.17.8"
331 | "@esbuild/linux-s390x" "0.17.8"
332 | "@esbuild/linux-x64" "0.17.8"
333 | "@esbuild/netbsd-x64" "0.17.8"
334 | "@esbuild/openbsd-x64" "0.17.8"
335 | "@esbuild/sunos-x64" "0.17.8"
336 | "@esbuild/win32-arm64" "0.17.8"
337 | "@esbuild/win32-ia32" "0.17.8"
338 | "@esbuild/win32-x64" "0.17.8"
339 |
340 | escape-string-regexp@^1.0.5:
341 | version "1.0.5"
342 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
343 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
344 |
345 | escape-string-regexp@^5.0.0:
346 | version "5.0.0"
347 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
348 | integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
349 |
350 | external-editor@^3.0.3:
351 | version "3.1.0"
352 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
353 | integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
354 | dependencies:
355 | chardet "^0.7.0"
356 | iconv-lite "^0.4.24"
357 | tmp "^0.0.33"
358 |
359 | figures@^2.0.0:
360 | version "2.0.0"
361 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
362 | integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==
363 | dependencies:
364 | escape-string-regexp "^1.0.5"
365 |
366 | figures@^3.2.0:
367 | version "3.2.0"
368 | resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
369 | integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
370 | dependencies:
371 | escape-string-regexp "^1.0.5"
372 |
373 | figures@^5.0.0:
374 | version "5.0.0"
375 | resolved "https://registry.yarnpkg.com/figures/-/figures-5.0.0.tgz#126cd055052dea699f8a54e8c9450e6ecfc44d5f"
376 | integrity sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==
377 | dependencies:
378 | escape-string-regexp "^5.0.0"
379 | is-unicode-supported "^1.2.0"
380 |
381 | fuzzy@^0.1.3:
382 | version "0.1.3"
383 | resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8"
384 | integrity sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==
385 |
386 | has-flag@^3.0.0:
387 | version "3.0.0"
388 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
389 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
390 |
391 | has-flag@^4.0.0:
392 | version "4.0.0"
393 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
394 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
395 |
396 | iconv-lite@^0.4.24:
397 | version "0.4.24"
398 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
399 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
400 | dependencies:
401 | safer-buffer ">= 2.1.2 < 3"
402 |
403 | ieee754@^1.2.1:
404 | version "1.2.1"
405 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
406 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
407 |
408 | inherits@^2.0.3, inherits@^2.0.4:
409 | version "2.0.4"
410 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
411 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
412 |
413 | inquirer-autocomplete-prompt@^1.0.2:
414 | version "1.4.0"
415 | resolved "https://registry.yarnpkg.com/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.4.0.tgz#e767592f747e3d5bb6336fe71fb4094352e4c317"
416 | integrity sha512-qHgHyJmbULt4hI+kCmwX92MnSxDs/Yhdt4wPA30qnoa01OF6uTXV8yvH4hKXgdaTNmkZ9D01MHjqKYEuJN+ONw==
417 | dependencies:
418 | ansi-escapes "^4.3.1"
419 | chalk "^4.0.0"
420 | figures "^3.2.0"
421 | run-async "^2.4.0"
422 | rxjs "^6.6.2"
423 |
424 | inquirer-fuzzy-path@^2.3.0:
425 | version "2.3.0"
426 | resolved "https://registry.yarnpkg.com/inquirer-fuzzy-path/-/inquirer-fuzzy-path-2.3.0.tgz#9bc51dc47d7d9c7eb53daac7fd7c9e615eb040c5"
427 | integrity sha512-zfHC/97GSkxKKM7IctZM22x1sVi+FYBh9oaHTmI7Er/GKFpNykUgtviTmqqpiFQs5yJoSowxbT0PHy6N+H+QRg==
428 | dependencies:
429 | ansi-styles "^3.2.1"
430 | fuzzy "^0.1.3"
431 | inquirer "^6.0.0"
432 | inquirer-autocomplete-prompt "^1.0.2"
433 | strip-ansi "^4.0.0"
434 |
435 | inquirer@^6.0.0:
436 | version "6.5.2"
437 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca"
438 | integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==
439 | dependencies:
440 | ansi-escapes "^3.2.0"
441 | chalk "^2.4.2"
442 | cli-cursor "^2.1.0"
443 | cli-width "^2.0.0"
444 | external-editor "^3.0.3"
445 | figures "^2.0.0"
446 | lodash "^4.17.12"
447 | mute-stream "0.0.7"
448 | run-async "^2.2.0"
449 | rxjs "^6.4.0"
450 | string-width "^2.1.0"
451 | strip-ansi "^5.1.0"
452 | through "^2.3.6"
453 |
454 | inquirer@^9.1.4:
455 | version "9.1.4"
456 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.1.4.tgz#482da8803670a64bd942bc5166a9547a19d41474"
457 | integrity sha512-9hiJxE5gkK/cM2d1mTEnuurGTAoHebbkX0BYl3h7iEg7FYfuNIom+nDfBCSWtvSnoSrWCeBxqqBZu26xdlJlXA==
458 | dependencies:
459 | ansi-escapes "^6.0.0"
460 | chalk "^5.1.2"
461 | cli-cursor "^4.0.0"
462 | cli-width "^4.0.0"
463 | external-editor "^3.0.3"
464 | figures "^5.0.0"
465 | lodash "^4.17.21"
466 | mute-stream "0.0.8"
467 | ora "^6.1.2"
468 | run-async "^2.4.0"
469 | rxjs "^7.5.7"
470 | string-width "^5.1.2"
471 | strip-ansi "^7.0.1"
472 | through "^2.3.6"
473 | wrap-ansi "^8.0.1"
474 |
475 | is-fullwidth-code-point@^2.0.0:
476 | version "2.0.0"
477 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
478 | integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==
479 |
480 | is-interactive@^2.0.0:
481 | version "2.0.0"
482 | resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90"
483 | integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==
484 |
485 | is-unicode-supported@^1.1.0, is-unicode-supported@^1.2.0:
486 | version "1.3.0"
487 | resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714"
488 | integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==
489 |
490 | lodash@^4.17.12, lodash@^4.17.21:
491 | version "4.17.21"
492 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
493 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
494 |
495 | log-symbols@^5.1.0:
496 | version "5.1.0"
497 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-5.1.0.tgz#a20e3b9a5f53fac6aeb8e2bb22c07cf2c8f16d93"
498 | integrity sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==
499 | dependencies:
500 | chalk "^5.0.0"
501 | is-unicode-supported "^1.1.0"
502 |
503 | mimic-fn@^1.0.0:
504 | version "1.2.0"
505 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
506 | integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
507 |
508 | mimic-fn@^2.1.0:
509 | version "2.1.0"
510 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
511 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
512 |
513 | mute-stream@0.0.7:
514 | version "0.0.7"
515 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
516 | integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==
517 |
518 | mute-stream@0.0.8:
519 | version "0.0.8"
520 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
521 | integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
522 |
523 | onetime@^2.0.0:
524 | version "2.0.1"
525 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
526 | integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==
527 | dependencies:
528 | mimic-fn "^1.0.0"
529 |
530 | onetime@^5.1.0:
531 | version "5.1.2"
532 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
533 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
534 | dependencies:
535 | mimic-fn "^2.1.0"
536 |
537 | ora@^6.1.2:
538 | version "6.1.2"
539 | resolved "https://registry.yarnpkg.com/ora/-/ora-6.1.2.tgz#7b3c1356b42fd90fb1dad043d5dbe649388a0bf5"
540 | integrity sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==
541 | dependencies:
542 | bl "^5.0.0"
543 | chalk "^5.0.0"
544 | cli-cursor "^4.0.0"
545 | cli-spinners "^2.6.1"
546 | is-interactive "^2.0.0"
547 | is-unicode-supported "^1.1.0"
548 | log-symbols "^5.1.0"
549 | strip-ansi "^7.0.1"
550 | wcwidth "^1.0.1"
551 |
552 | os-tmpdir@~1.0.2:
553 | version "1.0.2"
554 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
555 | integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
556 |
557 | readable-stream@^3.4.0:
558 | version "3.6.0"
559 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
560 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
561 | dependencies:
562 | inherits "^2.0.3"
563 | string_decoder "^1.1.1"
564 | util-deprecate "^1.0.1"
565 |
566 | restore-cursor@^2.0.0:
567 | version "2.0.0"
568 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
569 | integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==
570 | dependencies:
571 | onetime "^2.0.0"
572 | signal-exit "^3.0.2"
573 |
574 | restore-cursor@^4.0.0:
575 | version "4.0.0"
576 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9"
577 | integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==
578 | dependencies:
579 | onetime "^5.1.0"
580 | signal-exit "^3.0.2"
581 |
582 | run-async@^2.2.0, run-async@^2.4.0:
583 | version "2.4.1"
584 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
585 | integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
586 |
587 | rxjs@^6.4.0, rxjs@^6.6.2:
588 | version "6.6.7"
589 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"
590 | integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==
591 | dependencies:
592 | tslib "^1.9.0"
593 |
594 | rxjs@^7.2.0, rxjs@^7.5.7:
595 | version "7.8.0"
596 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4"
597 | integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==
598 | dependencies:
599 | tslib "^2.1.0"
600 |
601 | safe-buffer@~5.2.0:
602 | version "5.2.1"
603 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
604 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
605 |
606 | "safer-buffer@>= 2.1.2 < 3":
607 | version "2.1.2"
608 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
609 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
610 |
611 | signal-exit@^3.0.2:
612 | version "3.0.7"
613 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
614 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
615 |
616 | string-width@^2.1.0:
617 | version "2.1.1"
618 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
619 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
620 | dependencies:
621 | is-fullwidth-code-point "^2.0.0"
622 | strip-ansi "^4.0.0"
623 |
624 | string-width@^5.0.1, string-width@^5.1.2:
625 | version "5.1.2"
626 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
627 | integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
628 | dependencies:
629 | eastasianwidth "^0.2.0"
630 | emoji-regex "^9.2.2"
631 | strip-ansi "^7.0.1"
632 |
633 | string_decoder@^1.1.1:
634 | version "1.3.0"
635 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
636 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
637 | dependencies:
638 | safe-buffer "~5.2.0"
639 |
640 | strip-ansi@^4.0.0:
641 | version "4.0.0"
642 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
643 | integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==
644 | dependencies:
645 | ansi-regex "^3.0.0"
646 |
647 | strip-ansi@^5.1.0:
648 | version "5.2.0"
649 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
650 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
651 | dependencies:
652 | ansi-regex "^4.1.0"
653 |
654 | strip-ansi@^7.0.1:
655 | version "7.0.1"
656 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2"
657 | integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==
658 | dependencies:
659 | ansi-regex "^6.0.1"
660 |
661 | supports-color@^5.3.0:
662 | version "5.5.0"
663 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
664 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
665 | dependencies:
666 | has-flag "^3.0.0"
667 |
668 | supports-color@^7.1.0:
669 | version "7.2.0"
670 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
671 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
672 | dependencies:
673 | has-flag "^4.0.0"
674 |
675 | through@^2.3.6:
676 | version "2.3.8"
677 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
678 | integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
679 |
680 | tmp@^0.0.33:
681 | version "0.0.33"
682 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
683 | integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
684 | dependencies:
685 | os-tmpdir "~1.0.2"
686 |
687 | tslib@^1.9.0:
688 | version "1.14.1"
689 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
690 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
691 |
692 | tslib@^2.1.0:
693 | version "2.5.0"
694 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf"
695 | integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==
696 |
697 | type-fest@^0.21.3:
698 | version "0.21.3"
699 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
700 | integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
701 |
702 | type-fest@^3.0.0:
703 | version "3.5.7"
704 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.5.7.tgz#1ee9efc9a172f4002c40b896689928a7bba537f2"
705 | integrity sha512-6J4bYzb4sdkcLBty4XW7F18VPI66M4boXNE+CY40532oq2OJe6AVMB5NmjOp6skt/jw5mRjz/hLRpuglz0U+FA==
706 |
707 | typescript@^4.9.5:
708 | version "4.9.5"
709 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
710 | integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
711 |
712 | util-deprecate@^1.0.1:
713 | version "1.0.2"
714 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
715 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
716 |
717 | wcwidth@^1.0.1:
718 | version "1.0.1"
719 | resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
720 | integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==
721 | dependencies:
722 | defaults "^1.0.3"
723 |
724 | wrap-ansi@^8.0.1:
725 | version "8.1.0"
726 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
727 | integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
728 | dependencies:
729 | ansi-styles "^6.1.0"
730 | string-width "^5.0.1"
731 | strip-ansi "^7.0.1"
732 |
--------------------------------------------------------------------------------