@nlabs/lex 1.46.2 → 1.47.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__mocks__/LexConfig.js +20 -0
- package/__mocks__/boxen.js +7 -0
- package/__mocks__/build.js +16 -0
- package/__mocks__/chalk.js +23 -0
- package/__mocks__/compile.js +8 -0
- package/__mocks__/execa.js +21 -0
- package/__mocks__/ora.js +17 -0
- package/__mocks__/versions.js +12 -0
- package/dist/LexConfig.d.ts +79 -0
- package/dist/LexConfig.js +83 -15
- package/dist/commands/ai/ai.d.ts +17 -0
- package/dist/commands/ai/ai.js +303 -0
- package/dist/commands/ai/index.d.ts +8 -0
- package/dist/commands/ai/index.js +7 -0
- package/dist/commands/build/build.cli.test.d.ts +5 -0
- package/dist/commands/build/build.d.ts +18 -0
- package/dist/commands/build/build.integration.test.d.ts +1 -0
- package/dist/commands/build/build.js +400 -0
- package/dist/commands/build/build.options.test.d.ts +5 -0
- package/dist/commands/clean/clean.cli.test.d.ts +1 -0
- package/dist/commands/clean/clean.d.ts +7 -0
- package/dist/commands/clean/clean.integration.test.d.ts +1 -0
- package/dist/commands/clean/clean.js +31 -0
- package/dist/commands/clean/clean.options.test.d.ts +1 -0
- package/dist/commands/compile/compile.cli.test.d.ts +1 -0
- package/dist/commands/compile/compile.d.ts +2 -0
- package/dist/commands/compile/compile.integration.test.d.ts +1 -0
- package/dist/commands/compile/compile.js +239 -0
- package/dist/commands/compile/compile.options.test.d.ts +1 -0
- package/dist/commands/config/config.cli.test.d.ts +1 -0
- package/dist/commands/config/config.d.ts +7 -0
- package/dist/commands/config/config.integration.test.d.ts +1 -0
- package/dist/commands/config/config.js +43 -0
- package/dist/commands/config/config.options.test.d.ts +1 -0
- package/dist/commands/copy/copy.cli.test.d.ts +1 -0
- package/dist/commands/copy/copy.d.ts +6 -0
- package/dist/commands/copy/copy.integration.test.d.ts +1 -0
- package/dist/commands/copy/copy.js +38 -0
- package/dist/commands/copy/copy.options.test.d.ts +1 -0
- package/dist/commands/create/create.cli.test.d.ts +1 -0
- package/dist/commands/create/create.d.ts +8 -0
- package/dist/commands/create/create.integration.test.d.ts +1 -0
- package/dist/commands/create/create.js +124 -0
- package/dist/commands/create/create.options.test.d.ts +1 -0
- package/dist/commands/dev/dev.cli.test.d.ts +1 -0
- package/dist/commands/dev/dev.d.ts +11 -0
- package/dist/commands/dev/dev.integration.test.d.ts +1 -0
- package/dist/commands/dev/dev.js +70 -0
- package/dist/commands/dev/dev.options.test.d.ts +1 -0
- package/dist/commands/init/init.cli.test.d.ts +1 -0
- package/dist/commands/init/init.d.ts +9 -0
- package/dist/commands/init/init.integration.test.d.ts +1 -0
- package/dist/commands/init/init.js +93 -0
- package/dist/commands/init/init.options.test.d.ts +1 -0
- package/dist/commands/link/link.cli.test.d.ts +1 -0
- package/dist/commands/link/link.d.ts +6 -0
- package/dist/commands/link/link.integration.test.d.ts +1 -0
- package/dist/commands/link/link.js +15 -0
- package/dist/commands/link/link.options.test.d.ts +1 -0
- package/dist/commands/lint/autofix.d.ts +2 -0
- package/dist/commands/lint/lint.cli.test.d.ts +1 -0
- package/dist/commands/lint/lint.d.ts +39 -0
- package/dist/commands/lint/lint.integration.test.d.ts +1 -0
- package/dist/commands/lint/lint.js +820 -0
- package/dist/commands/lint/lint.options.test.d.ts +1 -0
- package/dist/commands/migrate/migrate.cli.test.d.ts +1 -0
- package/dist/commands/migrate/migrate.d.ts +7 -0
- package/dist/commands/migrate/migrate.integration.test.d.ts +1 -0
- package/dist/commands/migrate/migrate.js +37 -0
- package/dist/commands/migrate/migrate.options.test.d.ts +1 -0
- package/dist/commands/publish/publish.cli.test.d.ts +1 -0
- package/dist/commands/publish/publish.d.ts +12 -0
- package/dist/commands/publish/publish.integration.test.d.ts +1 -0
- package/dist/commands/publish/publish.js +104 -0
- package/dist/commands/publish/publish.options.test.d.ts +1 -0
- package/dist/commands/test/test.cli.test.d.ts +1 -0
- package/dist/commands/test/test.d.ts +50 -0
- package/dist/commands/test/test.integration.test.d.ts +1 -0
- package/dist/commands/test/test.js +327 -0
- package/dist/commands/test/test.options.test.d.ts +1 -0
- package/dist/commands/test/test.test.d.ts +1 -0
- package/dist/commands/update/update.cli.test.d.ts +1 -0
- package/dist/commands/update/update.d.ts +9 -0
- package/dist/commands/update/update.integration.test.d.ts +1 -0
- package/dist/commands/update/update.js +131 -0
- package/dist/commands/update/update.options.test.d.ts +1 -0
- package/dist/commands/upgrade/upgrade.cli.test.d.ts +1 -0
- package/dist/commands/upgrade/upgrade.d.ts +7 -0
- package/dist/commands/upgrade/upgrade.integration.test.d.ts +1 -0
- package/dist/commands/upgrade/upgrade.js +47 -0
- package/dist/commands/upgrade/upgrade.options.test.d.ts +1 -0
- package/dist/commands/versions/versions.cli.test.d.ts +1 -0
- package/dist/commands/versions/versions.d.ts +13 -0
- package/dist/commands/versions/versions.integration.test.d.ts +1 -0
- package/dist/commands/versions/versions.js +41 -0
- package/dist/commands/versions/versions.options.test.d.ts +1 -0
- package/dist/create/changelog.d.ts +6 -0
- package/dist/create/changelog.js +3 -3
- package/dist/index.d.ts +31 -0
- package/dist/index.js +35 -0
- package/dist/lex.d.ts +2 -0
- package/dist/lex.js +25 -22
- package/dist/types.d.ts +5 -0
- package/dist/types.js +1 -0
- package/dist/utils/aiService.d.ts +9 -0
- package/dist/utils/aiService.js +299 -0
- package/dist/utils/app.d.ts +41 -0
- package/dist/utils/app.js +53 -3
- package/dist/utils/file.d.ts +3 -0
- package/dist/utils/file.js +18 -3
- package/dist/utils/log.d.ts +1 -0
- package/dist/utils/log.js +2 -1
- package/dist/utils/reactShim.d.ts +2 -0
- package/dist/utils/reactShim.js +3 -3
- package/eslint.config.js +5 -0
- package/index.cjs +20 -0
- package/jest.config.cjs +31 -27
- package/jest.config.lex.d.ts +2 -0
- package/jest.config.lex.js +86 -38
- package/jest.setup.js +5 -0
- package/lex.config.js +50 -0
- package/package.json +73 -53
- package/{.postcssrc.js → postcss.config.js} +21 -9
- package/resolver.cjs +125 -14
- package/tsconfig.json +2 -1
- package/webpack.config.d.ts +2 -0
- package/webpack.config.js +27 -11
- package/dist/commands/build.js +0 -265
- package/dist/commands/bulid.test.js +0 -317
- package/dist/commands/clean.js +0 -31
- package/dist/commands/clean.test.js +0 -63
- package/dist/commands/compile.js +0 -195
- package/dist/commands/compile.test.js +0 -93
- package/dist/commands/config.js +0 -43
- package/dist/commands/copy.js +0 -38
- package/dist/commands/create.js +0 -120
- package/dist/commands/dev.js +0 -70
- package/dist/commands/init.js +0 -93
- package/dist/commands/link.js +0 -15
- package/dist/commands/lint.js +0 -179
- package/dist/commands/migrate.js +0 -37
- package/dist/commands/publish.js +0 -104
- package/dist/commands/test.js +0 -190
- package/dist/commands/update.js +0 -64
- package/dist/commands/upgrade.js +0 -47
- package/dist/commands/versions.js +0 -41
- package/dist/commands/versions.test.js +0 -49
- package/dist/lint.js +0 -11
- package/jest.setup.ts +0 -3
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
2
|
+
import { resolve as pathResolve } from "path";
|
|
3
|
+
import readline from "readline";
|
|
4
|
+
import { createSpinner } from "./app.js";
|
|
5
|
+
import { log } from "./log.js";
|
|
6
|
+
import { LexConfig } from "../LexConfig.js";
|
|
7
|
+
const callCursorAI = async (prompt, options) => {
|
|
8
|
+
try {
|
|
9
|
+
log("Using Cursor IDE for AI fixes...", "info");
|
|
10
|
+
log("AI fix requested via Cursor IDE", "info");
|
|
11
|
+
const taskMatch = prompt.match(/^(Generate code according to the following request|Explain the following code|Generate comprehensive unit tests|Analyze the following code|Provide guidance on the following development question):/);
|
|
12
|
+
const task = taskMatch ? taskMatch[1] : "";
|
|
13
|
+
const isGenerateTask = task.startsWith("Generate code");
|
|
14
|
+
const questionMatch = prompt.match(/(?:Generate code according to the following request|Explain the following code|Generate comprehensive unit tests|Analyze the following code|Provide guidance on the following development question):\s*([\s\S]+?)(?:===CONTEXT===|$)/);
|
|
15
|
+
const question = questionMatch ? questionMatch[1].trim() : prompt;
|
|
16
|
+
if (question.toLowerCase().includes("how many files") && prompt.includes("Project structure:")) {
|
|
17
|
+
const projectStructure = prompt.split("Project structure:")[1] || "";
|
|
18
|
+
const files = projectStructure.trim().split("\n");
|
|
19
|
+
return `Based on the project structure provided, there are ${files.length} files in the project.`;
|
|
20
|
+
}
|
|
21
|
+
if (isGenerateTask) {
|
|
22
|
+
return `
|
|
23
|
+
# Code Generation Request: "${question}"
|
|
24
|
+
|
|
25
|
+
To generate code using Cursor's AI capabilities:
|
|
26
|
+
|
|
27
|
+
1. **Open your project in Cursor IDE** (https://cursor.sh)
|
|
28
|
+
2. Press **Cmd+L** (or Ctrl+L on Windows/Linux) to open the AI chat
|
|
29
|
+
3. Type your request: "${question}"
|
|
30
|
+
4. Cursor will generate the code directly in your editor
|
|
31
|
+
|
|
32
|
+
The current CLI integration doesn't have direct access to Cursor's code generation capabilities.
|
|
33
|
+
|
|
34
|
+
**Alternative options:**
|
|
35
|
+
|
|
36
|
+
1. **Use OpenAI or Anthropic directly:**
|
|
37
|
+
Configure in your lex.config file:
|
|
38
|
+
\`\`\`js
|
|
39
|
+
export default {
|
|
40
|
+
ai: {
|
|
41
|
+
provider: 'openai',
|
|
42
|
+
apiKey: process.env.OPENAI_API_KEY,
|
|
43
|
+
model: 'gpt-4o'
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
\`\`\`
|
|
47
|
+
|
|
48
|
+
2. **Use Cursor's command line tool:**
|
|
49
|
+
Install: \`npm install -g @cursor/cli\`
|
|
50
|
+
Run: \`cursor ai "${question}"\`
|
|
51
|
+
`;
|
|
52
|
+
}
|
|
53
|
+
return `
|
|
54
|
+
To use Cursor's AI capabilities for "${question}", you need to:
|
|
55
|
+
|
|
56
|
+
1. Open your project in Cursor IDE (https://cursor.sh)
|
|
57
|
+
2. Use Cursor's built-in AI features by pressing Cmd+K or Cmd+L
|
|
58
|
+
3. Or run the 'cursor' command directly from your terminal
|
|
59
|
+
|
|
60
|
+
The current integration is limited and doesn't directly access Cursor's AI capabilities.
|
|
61
|
+
|
|
62
|
+
For the best experience with AI code generation:
|
|
63
|
+
- Use Cursor IDE directly
|
|
64
|
+
- Or configure OpenAI or Anthropic as your provider in your lex.config file:
|
|
65
|
+
|
|
66
|
+
\`\`\`js
|
|
67
|
+
// lex.config.js (or lex.config.mjs, lex.config.cjs, etc.)
|
|
68
|
+
export default {
|
|
69
|
+
ai: {
|
|
70
|
+
provider: 'openai', // or 'anthropic'
|
|
71
|
+
apiKey: process.env.OPENAI_API_KEY, // or ANTHROPIC_API_KEY
|
|
72
|
+
model: 'gpt-4o' // or 'claude-3-opus'
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
\`\`\`
|
|
76
|
+
|
|
77
|
+
Then set your API key as an environment variable:
|
|
78
|
+
\`\`\`
|
|
79
|
+
export OPENAI_API_KEY=your_key_here
|
|
80
|
+
\`\`\`
|
|
81
|
+
`;
|
|
82
|
+
} catch (error) {
|
|
83
|
+
throw new Error(`Cursor AI error: ${error.message}`);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
const callOpenAIAI = async (prompt, options) => {
|
|
87
|
+
try {
|
|
88
|
+
const apiKey = options.apiKey || process.env.OPENAI_API_KEY;
|
|
89
|
+
if (!apiKey) {
|
|
90
|
+
throw new Error("OpenAI API key is required. Set it in your lex.config file or as OPENAI_API_KEY environment variable.");
|
|
91
|
+
}
|
|
92
|
+
const response = await fetch("https://api.openai.com/v1/chat/completions", {
|
|
93
|
+
body: JSON.stringify({
|
|
94
|
+
max_tokens: options.maxTokens || 4e3,
|
|
95
|
+
messages: [
|
|
96
|
+
{ content: "You are a helpful assistant that fixes ESLint errors in code.", role: "system" },
|
|
97
|
+
{ content: prompt, role: "user" }
|
|
98
|
+
],
|
|
99
|
+
model: options.model || "gpt-4o",
|
|
100
|
+
temperature: options.temperature || 0.1
|
|
101
|
+
}),
|
|
102
|
+
headers: {
|
|
103
|
+
Authorization: `Bearer ${apiKey}`,
|
|
104
|
+
"Content-Type": "application/json"
|
|
105
|
+
},
|
|
106
|
+
method: "POST"
|
|
107
|
+
});
|
|
108
|
+
if (!response.ok) {
|
|
109
|
+
const error = await response.json();
|
|
110
|
+
throw new Error(`OpenAI API error: ${error.error?.message || response.statusText}`);
|
|
111
|
+
}
|
|
112
|
+
const data = await response.json();
|
|
113
|
+
return data.choices[0].message.content;
|
|
114
|
+
} catch (error) {
|
|
115
|
+
throw new Error(`OpenAI AI error: ${error.message}`);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
const callAnthropicAI = async (prompt, options) => {
|
|
119
|
+
try {
|
|
120
|
+
const apiKey = options.apiKey || process.env.ANTHROPIC_API_KEY;
|
|
121
|
+
if (!apiKey) {
|
|
122
|
+
throw new Error("Anthropic API key is required. Set it in your lex.config file or as ANTHROPIC_API_KEY environment variable.");
|
|
123
|
+
}
|
|
124
|
+
const response = await fetch("https://api.anthropic.com/v1/messages", {
|
|
125
|
+
body: JSON.stringify({
|
|
126
|
+
max_tokens: options.maxTokens || 4e3,
|
|
127
|
+
messages: [
|
|
128
|
+
{ content: prompt, role: "user" }
|
|
129
|
+
],
|
|
130
|
+
model: options.model || "claude-3-sonnet-20240229",
|
|
131
|
+
temperature: options.temperature || 0.1
|
|
132
|
+
}),
|
|
133
|
+
headers: {
|
|
134
|
+
"Content-Type": "application/json",
|
|
135
|
+
"anthropic-version": "2023-06-01",
|
|
136
|
+
"x-api-key": apiKey
|
|
137
|
+
},
|
|
138
|
+
method: "POST"
|
|
139
|
+
});
|
|
140
|
+
if (!response.ok) {
|
|
141
|
+
const error = await response.json();
|
|
142
|
+
throw new Error(`Anthropic API error: ${error.error?.message || response.statusText}`);
|
|
143
|
+
}
|
|
144
|
+
const data = await response.json();
|
|
145
|
+
return data.content[0].text;
|
|
146
|
+
} catch (error) {
|
|
147
|
+
throw new Error(`Anthropic AI error: ${error.message}`);
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
const callCopilotAI = async (prompt, options) => {
|
|
151
|
+
try {
|
|
152
|
+
log("GitHub Copilot AI fixes not directly supported. Using manual fix mode.", "info");
|
|
153
|
+
return prompt;
|
|
154
|
+
} catch (error) {
|
|
155
|
+
throw new Error(`GitHub Copilot AI error: ${error.message}`);
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
const promptForAIProvider = async (quiet = false) => {
|
|
159
|
+
const rl = readline.createInterface({
|
|
160
|
+
input: process.stdin,
|
|
161
|
+
output: process.stdout
|
|
162
|
+
});
|
|
163
|
+
return new Promise((resolve) => {
|
|
164
|
+
log("\nNo AI provider configured. Please choose an AI provider:", "info");
|
|
165
|
+
log("1. Cursor IDE", "info");
|
|
166
|
+
log("2. OpenAI", "info");
|
|
167
|
+
log("3. Anthropic", "info");
|
|
168
|
+
log("4. GitHub Copilot", "info");
|
|
169
|
+
log("5. None (Skip AI features)", "info");
|
|
170
|
+
rl.question("Enter your choice (1-5): ", (answer) => {
|
|
171
|
+
rl.close();
|
|
172
|
+
switch (answer) {
|
|
173
|
+
case "1":
|
|
174
|
+
resolve("cursor");
|
|
175
|
+
break;
|
|
176
|
+
case "2":
|
|
177
|
+
resolve("openai");
|
|
178
|
+
break;
|
|
179
|
+
case "3":
|
|
180
|
+
resolve("anthropic");
|
|
181
|
+
break;
|
|
182
|
+
case "4":
|
|
183
|
+
resolve("copilot");
|
|
184
|
+
break;
|
|
185
|
+
default:
|
|
186
|
+
resolve("none");
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
};
|
|
191
|
+
const promptForAPIKey = async (provider, quiet = false) => {
|
|
192
|
+
const rl = readline.createInterface({
|
|
193
|
+
input: process.stdin,
|
|
194
|
+
output: process.stdout
|
|
195
|
+
});
|
|
196
|
+
return new Promise((resolve) => {
|
|
197
|
+
rl.question(`Please enter your ${provider} API key: `, (answer) => {
|
|
198
|
+
rl.close();
|
|
199
|
+
resolve(answer);
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
};
|
|
203
|
+
const getAIService = (provider, options) => {
|
|
204
|
+
switch (provider) {
|
|
205
|
+
case "cursor":
|
|
206
|
+
return callCursorAI;
|
|
207
|
+
case "openai":
|
|
208
|
+
return callOpenAIAI;
|
|
209
|
+
case "anthropic":
|
|
210
|
+
return callAnthropicAI;
|
|
211
|
+
case "copilot":
|
|
212
|
+
return callCopilotAI;
|
|
213
|
+
default:
|
|
214
|
+
return async () => "No AI provider configured";
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
const callAIService = async (prompt, quiet = false) => {
|
|
218
|
+
const spinner = createSpinner(quiet);
|
|
219
|
+
spinner.start("Calling AI service to fix code issues...");
|
|
220
|
+
try {
|
|
221
|
+
const aiConfig = LexConfig.config.ai || { provider: "none" };
|
|
222
|
+
const isInCursorIDE = process.env.CURSOR_IDE === "true";
|
|
223
|
+
if (isInCursorIDE && (aiConfig.provider === "none" || !aiConfig.provider)) {
|
|
224
|
+
log("Detected Cursor IDE environment, using Cursor as AI provider", "info", quiet);
|
|
225
|
+
aiConfig.provider = "cursor";
|
|
226
|
+
}
|
|
227
|
+
if (aiConfig.provider === "none") {
|
|
228
|
+
const provider = await promptForAIProvider(quiet);
|
|
229
|
+
if (provider === "none") {
|
|
230
|
+
spinner.fail("AI features skipped");
|
|
231
|
+
return "";
|
|
232
|
+
}
|
|
233
|
+
aiConfig.provider = provider;
|
|
234
|
+
if (provider !== "cursor" && provider !== "copilot" && !process.env[`${provider.toUpperCase()}_API_KEY`]) {
|
|
235
|
+
aiConfig.apiKey = await promptForAPIKey(provider, quiet);
|
|
236
|
+
}
|
|
237
|
+
LexConfig.config.ai = aiConfig;
|
|
238
|
+
const configFormats = ["js", "mjs", "cjs", "ts", "json"];
|
|
239
|
+
const configBaseName = "lex.config";
|
|
240
|
+
let configPath = "";
|
|
241
|
+
for (const format of configFormats) {
|
|
242
|
+
const potentialPath = pathResolve(process.cwd(), `./${configBaseName}.${format}`);
|
|
243
|
+
if (existsSync(potentialPath)) {
|
|
244
|
+
configPath = potentialPath;
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if (configPath) {
|
|
249
|
+
try {
|
|
250
|
+
const configContent = readFileSync(configPath, "utf8");
|
|
251
|
+
const updatedConfig = configContent.replace(
|
|
252
|
+
/ai:.*?[,}]/s,
|
|
253
|
+
`ai: { provider: '${aiConfig.provider}' },`
|
|
254
|
+
);
|
|
255
|
+
writeFileSync(configPath, updatedConfig);
|
|
256
|
+
} catch (_error) {
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
let result = "";
|
|
261
|
+
switch (aiConfig.provider) {
|
|
262
|
+
case "cursor":
|
|
263
|
+
result = await callCursorAI(prompt, aiConfig);
|
|
264
|
+
log("Cursor IDE AI integration active", "info", quiet);
|
|
265
|
+
break;
|
|
266
|
+
case "openai":
|
|
267
|
+
result = await callOpenAIAI(prompt, aiConfig);
|
|
268
|
+
break;
|
|
269
|
+
case "anthropic":
|
|
270
|
+
result = await callAnthropicAI(prompt, aiConfig);
|
|
271
|
+
break;
|
|
272
|
+
case "copilot":
|
|
273
|
+
result = await callCopilotAI(prompt, aiConfig);
|
|
274
|
+
break;
|
|
275
|
+
default:
|
|
276
|
+
spinner.fail("No AI provider configured");
|
|
277
|
+
return "";
|
|
278
|
+
}
|
|
279
|
+
spinner.succeed("AI code fixes generated successfully");
|
|
280
|
+
return result;
|
|
281
|
+
} catch (error) {
|
|
282
|
+
spinner.fail(`AI service error: ${error.message}`);
|
|
283
|
+
if (!quiet) {
|
|
284
|
+
log(error, "error");
|
|
285
|
+
}
|
|
286
|
+
return "";
|
|
287
|
+
}
|
|
288
|
+
};
|
|
289
|
+
export {
|
|
290
|
+
callAIService,
|
|
291
|
+
callAnthropicAI,
|
|
292
|
+
callCopilotAI,
|
|
293
|
+
callCursorAI,
|
|
294
|
+
callOpenAIAI,
|
|
295
|
+
getAIService,
|
|
296
|
+
promptForAIProvider,
|
|
297
|
+
promptForAPIKey
|
|
298
|
+
};
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2FpU2VydmljZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjItUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7ZXhpc3RzU3luYywgcmVhZEZpbGVTeW5jLCB3cml0ZUZpbGVTeW5jfSBmcm9tICdmcyc7XG5pbXBvcnQge3Jlc29sdmUgYXMgcGF0aFJlc29sdmV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHJlYWRsaW5lIGZyb20gJ3JlYWRsaW5lJztcblxuaW1wb3J0IHtjcmVhdGVTcGlubmVyfSBmcm9tICcuL2FwcC5qcyc7XG5pbXBvcnQge2xvZ30gZnJvbSAnLi9sb2cuanMnO1xuaW1wb3J0IHtMZXhDb25maWcsIEFJQ29uZmlnfSBmcm9tICcuLi9MZXhDb25maWcuanMnO1xuXG4vLyBDdXJzb3IgSURFIGludGVncmF0aW9uXG5leHBvcnQgY29uc3QgY2FsbEN1cnNvckFJID0gYXN5bmMgKHByb21wdDogc3RyaW5nLCBvcHRpb25zOiBBSUNvbmZpZyk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIHRyeSB7XG4gICAgLy8gV2hlbiBydW5uaW5nIHdpdGhpbiBDdXJzb3IgSURFLCB3ZSBjYW4gd3JpdGUgdGhlIHByb21wdCB0byBhIHRlbXBvcmFyeSBmaWxlXG4gICAgLy8gdGhhdCBDdXJzb3IgY2FuIHVzZSB0byBwcm92aWRlIEFJIGFzc2lzdGFuY2VcbiAgICBsb2coJ1VzaW5nIEN1cnNvciBJREUgZm9yIEFJIGZpeGVzLi4uJywgJ2luZm8nKTtcblxuICAgIC8vIEZvciBub3csIGp1c3QgbG9nIHRoZSBwcm9tcHQgYW5kIHJldHVybiBhIHBsYWNlaG9sZGVyXG4gICAgLy8gSW4gYSByZWFsIGltcGxlbWVudGF0aW9uLCBDdXJzb3Igd291bGQgaGFuZGxlIHRoaXMgYXV0b21hdGljYWxseVxuICAgIGxvZygnQUkgZml4IHJlcXVlc3RlZCB2aWEgQ3Vyc29yIElERScsICdpbmZvJyk7XG5cbiAgICBjb25zdCB0YXNrTWF0Y2ggPSBwcm9tcHQubWF0Y2goL14oR2VuZXJhdGUgY29kZSBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZyByZXF1ZXN0fEV4cGxhaW4gdGhlIGZvbGxvd2luZyBjb2RlfEdlbmVyYXRlIGNvbXByZWhlbnNpdmUgdW5pdCB0ZXN0c3xBbmFseXplIHRoZSBmb2xsb3dpbmcgY29kZXxQcm92aWRlIGd1aWRhbmNlIG9uIHRoZSBmb2xsb3dpbmcgZGV2ZWxvcG1lbnQgcXVlc3Rpb24pOi8pO1xuICAgIGNvbnN0IHRhc2sgPSB0YXNrTWF0Y2ggPyB0YXNrTWF0Y2hbMV0gOiAnJztcbiAgICBjb25zdCBpc0dlbmVyYXRlVGFzayA9IHRhc2suc3RhcnRzV2l0aCgnR2VuZXJhdGUgY29kZScpO1xuXG4gICAgY29uc3QgcXVlc3Rpb25NYXRjaCA9IHByb21wdC5tYXRjaCgvKD86R2VuZXJhdGUgY29kZSBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZyByZXF1ZXN0fEV4cGxhaW4gdGhlIGZvbGxvd2luZyBjb2RlfEdlbmVyYXRlIGNvbXByZWhlbnNpdmUgdW5pdCB0ZXN0c3xBbmFseXplIHRoZSBmb2xsb3dpbmcgY29kZXxQcm92aWRlIGd1aWRhbmNlIG9uIHRoZSBmb2xsb3dpbmcgZGV2ZWxvcG1lbnQgcXVlc3Rpb24pOlxccyooW1xcc1xcU10rPykoPzo9PT1DT05URVhUPT09fCQpLyk7XG4gICAgY29uc3QgcXVlc3Rpb24gPSBxdWVzdGlvbk1hdGNoID8gcXVlc3Rpb25NYXRjaFsxXS50cmltKCkgOiBwcm9tcHQ7XG5cbiAgICBpZihxdWVzdGlvbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdob3cgbWFueSBmaWxlcycpICYmIHByb21wdC5pbmNsdWRlcygnUHJvamVjdCBzdHJ1Y3R1cmU6JykpIHtcbiAgICAgIGNvbnN0IHByb2plY3RTdHJ1Y3R1cmUgPSBwcm9tcHQuc3BsaXQoJ1Byb2plY3Qgc3RydWN0dXJlOicpWzFdIHx8ICcnO1xuICAgICAgY29uc3QgZmlsZXMgPSBwcm9qZWN0U3RydWN0dXJlLnRyaW0oKS5zcGxpdCgnXFxuJyk7XG4gICAgICByZXR1cm4gYEJhc2VkIG9uIHRoZSBwcm9qZWN0IHN0cnVjdHVyZSBwcm92aWRlZCwgdGhlcmUgYXJlICR7ZmlsZXMubGVuZ3RofSBmaWxlcyBpbiB0aGUgcHJvamVjdC5gO1xuICAgIH1cblxuICAgIGlmKGlzR2VuZXJhdGVUYXNrKSB7XG4gICAgICByZXR1cm4gYFxuIyBDb2RlIEdlbmVyYXRpb24gUmVxdWVzdDogXCIke3F1ZXN0aW9ufVwiXG5cblRvIGdlbmVyYXRlIGNvZGUgdXNpbmcgQ3Vyc29yJ3MgQUkgY2FwYWJpbGl0aWVzOlxuXG4xLiAqKk9wZW4geW91ciBwcm9qZWN0IGluIEN1cnNvciBJREUqKiAoaHR0cHM6Ly9jdXJzb3Iuc2gpXG4yLiBQcmVzcyAqKkNtZCtMKiogKG9yIEN0cmwrTCBvbiBXaW5kb3dzL0xpbnV4KSB0byBvcGVuIHRoZSBBSSBjaGF0XG4zLiBUeXBlIHlvdXIgcmVxdWVzdDogXCIke3F1ZXN0aW9ufVwiXG40LiBDdXJzb3Igd2lsbCBnZW5lcmF0ZSB0aGUgY29kZSBkaXJlY3RseSBpbiB5b3VyIGVkaXRvclxuXG5UaGUgY3VycmVudCBDTEkgaW50ZWdyYXRpb24gZG9lc24ndCBoYXZlIGRpcmVjdCBhY2Nlc3MgdG8gQ3Vyc29yJ3MgY29kZSBnZW5lcmF0aW9uIGNhcGFiaWxpdGllcy5cblxuKipBbHRlcm5hdGl2ZSBvcHRpb25zOioqXG5cbjEuICoqVXNlIE9wZW5BSSBvciBBbnRocm9waWMgZGlyZWN0bHk6KipcbiAgIENvbmZpZ3VyZSBpbiB5b3VyIGxleC5jb25maWcgZmlsZTpcbiAgIFxcYFxcYFxcYGpzXG4gICBleHBvcnQgZGVmYXVsdCB7XG4gICAgIGFpOiB7XG4gICAgICAgcHJvdmlkZXI6ICdvcGVuYWknLFxuICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksXG4gICAgICAgbW9kZWw6ICdncHQtNG8nXG4gICAgIH1cbiAgIH1cbiAgIFxcYFxcYFxcYFxuXG4yLiAqKlVzZSBDdXJzb3IncyBjb21tYW5kIGxpbmUgdG9vbDoqKlxuICAgSW5zdGFsbDogXFxgbnBtIGluc3RhbGwgLWcgQGN1cnNvci9jbGlcXGBcbiAgIFJ1bjogXFxgY3Vyc29yIGFpIFwiJHtxdWVzdGlvbn1cIlxcYFxuYDtcbiAgICB9XG5cbiAgICByZXR1cm4gYFxuVG8gdXNlIEN1cnNvcidzIEFJIGNhcGFiaWxpdGllcyBmb3IgXCIke3F1ZXN0aW9ufVwiLCB5b3UgbmVlZCB0bzpcblxuMS4gT3BlbiB5b3VyIHByb2plY3QgaW4gQ3Vyc29yIElERSAoaHR0cHM6Ly9jdXJzb3Iuc2gpXG4yLiBVc2UgQ3Vyc29yJ3MgYnVpbHQtaW4gQUkgZmVhdHVyZXMgYnkgcHJlc3NpbmcgQ21kK0sgb3IgQ21kK0xcbjMuIE9yIHJ1biB0aGUgJ2N1cnNvcicgY29tbWFuZCBkaXJlY3RseSBmcm9tIHlvdXIgdGVybWluYWxcblxuVGhlIGN1cnJlbnQgaW50ZWdyYXRpb24gaXMgbGltaXRlZCBhbmQgZG9lc24ndCBkaXJlY3RseSBhY2Nlc3MgQ3Vyc29yJ3MgQUkgY2FwYWJpbGl0aWVzLlxuXG5Gb3IgdGhlIGJlc3QgZXhwZXJpZW5jZSB3aXRoIEFJIGNvZGUgZ2VuZXJhdGlvbjpcbi0gVXNlIEN1cnNvciBJREUgZGlyZWN0bHlcbi0gT3IgY29uZmlndXJlIE9wZW5BSSBvciBBbnRocm9waWMgYXMgeW91ciBwcm92aWRlciBpbiB5b3VyIGxleC5jb25maWcgZmlsZTpcblxuXFxgXFxgXFxganNcbi8vIGxleC5jb25maWcuanMgKG9yIGxleC5jb25maWcubWpzLCBsZXguY29uZmlnLmNqcywgZXRjLilcbmV4cG9ydCBkZWZhdWx0IHtcbiAgYWk6IHtcbiAgICBwcm92aWRlcjogJ29wZW5haScsIC8vIG9yICdhbnRocm9waWMnXG4gICAgYXBpS2V5OiBwcm9jZXNzLmVudi5PUEVOQUlfQVBJX0tFWSwgLy8gb3IgQU5USFJPUElDX0FQSV9LRVlcbiAgICBtb2RlbDogJ2dwdC00bycgLy8gb3IgJ2NsYXVkZS0zLW9wdXMnXG4gIH1cbn1cblxcYFxcYFxcYFxuXG5UaGVuIHNldCB5b3VyIEFQSSBrZXkgYXMgYW4gZW52aXJvbm1lbnQgdmFyaWFibGU6XG5cXGBcXGBcXGBcbmV4cG9ydCBPUEVOQUlfQVBJX0tFWT15b3VyX2tleV9oZXJlXG5cXGBcXGBcXGBcbmA7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEN1cnNvciBBSSBlcnJvcjogJHtlcnJvci5tZXNzYWdlfWApO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY2FsbE9wZW5BSUFJID0gYXN5bmMgKHByb21wdDogc3RyaW5nLCBvcHRpb25zOiBBSUNvbmZpZyk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgYXBpS2V5ID0gb3B0aW9ucy5hcGlLZXkgfHwgcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVk7XG4gICAgaWYoIWFwaUtleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdPcGVuQUkgQVBJIGtleSBpcyByZXF1aXJlZC4gU2V0IGl0IGluIHlvdXIgbGV4LmNvbmZpZyBmaWxlIG9yIGFzIE9QRU5BSV9BUElfS0VZIGVudmlyb25tZW50IHZhcmlhYmxlLicpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJ2h0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvY2hhdC9jb21wbGV0aW9ucycsIHtcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgbWF4X3Rva2Vuczogb3B0aW9ucy5tYXhUb2tlbnMgfHwgNDAwMCxcbiAgICAgICAgbWVzc2FnZXM6IFtcbiAgICAgICAgICB7Y29udGVudDogJ1lvdSBhcmUgYSBoZWxwZnVsIGFzc2lzdGFudCB0aGF0IGZpeGVzIEVTTGludCBlcnJvcnMgaW4gY29kZS4nLCByb2xlOiAnc3lzdGVtJ30sXG4gICAgICAgICAge2NvbnRlbnQ6IHByb21wdCwgcm9sZTogJ3VzZXInfVxuICAgICAgICBdLFxuICAgICAgICBtb2RlbDogb3B0aW9ucy5tb2RlbCB8fCAnZ3B0LTRvJyxcbiAgICAgICAgdGVtcGVyYXR1cmU6IG9wdGlvbnMudGVtcGVyYXR1cmUgfHwgMC4xXG4gICAgICB9KSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FwaUtleX1gLFxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICB9LFxuICAgICAgbWV0aG9kOiAnUE9TVCdcbiAgICB9KTtcblxuICAgIGlmKCFyZXNwb25zZS5vaykge1xuICAgICAgY29uc3QgZXJyb3IgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE9wZW5BSSBBUEkgZXJyb3I6ICR7ZXJyb3IuZXJyb3I/Lm1lc3NhZ2UgfHwgcmVzcG9uc2Uuc3RhdHVzVGV4dH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgIHJldHVybiBkYXRhLmNob2ljZXNbMF0ubWVzc2FnZS5jb250ZW50O1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBPcGVuQUkgQUkgZXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGNhbGxBbnRocm9waWNBSSA9IGFzeW5jIChwcm9tcHQ6IHN0cmluZywgb3B0aW9uczogQUlDb25maWcpOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IGFwaUtleSA9IG9wdGlvbnMuYXBpS2V5IHx8IHByb2Nlc3MuZW52LkFOVEhST1BJQ19BUElfS0VZO1xuICAgIGlmKCFhcGlLZXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQW50aHJvcGljIEFQSSBrZXkgaXMgcmVxdWlyZWQuIFNldCBpdCBpbiB5b3VyIGxleC5jb25maWcgZmlsZSBvciBhcyBBTlRIUk9QSUNfQVBJX0tFWSBlbnZpcm9ubWVudCB2YXJpYWJsZS4nKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCdodHRwczovL2FwaS5hbnRocm9waWMuY29tL3YxL21lc3NhZ2VzJywge1xuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBtYXhfdG9rZW5zOiBvcHRpb25zLm1heFRva2VucyB8fCA0MDAwLFxuICAgICAgICBtZXNzYWdlczogW1xuICAgICAgICAgIHtjb250ZW50OiBwcm9tcHQsIHJvbGU6ICd1c2VyJ31cbiAgICAgICAgXSxcbiAgICAgICAgbW9kZWw6IG9wdGlvbnMubW9kZWwgfHwgJ2NsYXVkZS0zLXNvbm5ldC0yMDI0MDIyOScsXG4gICAgICAgIHRlbXBlcmF0dXJlOiBvcHRpb25zLnRlbXBlcmF0dXJlIHx8IDAuMVxuICAgICAgfSksXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICdhbnRocm9waWMtdmVyc2lvbic6ICcyMDIzLTA2LTAxJyxcbiAgICAgICAgJ3gtYXBpLWtleSc6IGFwaUtleVxuICAgICAgfSxcbiAgICAgIG1ldGhvZDogJ1BPU1QnXG4gICAgfSk7XG5cbiAgICBpZighcmVzcG9uc2Uub2spIHtcbiAgICAgIGNvbnN0IGVycm9yID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBbnRocm9waWMgQVBJIGVycm9yOiAke2Vycm9yLmVycm9yPy5tZXNzYWdlIHx8IHJlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICByZXR1cm4gZGF0YS5jb250ZW50WzBdLnRleHQ7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEFudGhyb3BpYyBBSSBlcnJvcjogJHtlcnJvci5tZXNzYWdlfWApO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY2FsbENvcGlsb3RBSSA9IGFzeW5jIChwcm9tcHQ6IHN0cmluZywgb3B0aW9uczogQUlDb25maWcpOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICB0cnkge1xuICAgIGxvZygnR2l0SHViIENvcGlsb3QgQUkgZml4ZXMgbm90IGRpcmVjdGx5IHN1cHBvcnRlZC4gVXNpbmcgbWFudWFsIGZpeCBtb2RlLicsICdpbmZvJyk7XG4gICAgcmV0dXJuIHByb21wdDtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHRocm93IG5ldyBFcnJvcihgR2l0SHViIENvcGlsb3QgQUkgZXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHByb21wdEZvckFJUHJvdmlkZXIgPSBhc3luYyAocXVpZXQgPSBmYWxzZSk6IFByb21pc2U8J2N1cnNvcicgfCAnY29waWxvdCcgfCAnb3BlbmFpJyB8ICdhbnRocm9waWMnIHwgJ25vbmUnPiA9PiB7XG4gIGNvbnN0IHJsID0gcmVhZGxpbmUuY3JlYXRlSW50ZXJmYWNlKHtcbiAgICBpbnB1dDogcHJvY2Vzcy5zdGRpbixcbiAgICBvdXRwdXQ6IHByb2Nlc3Muc3Rkb3V0XG4gIH0pO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGxvZygnXFxuTm8gQUkgcHJvdmlkZXIgY29uZmlndXJlZC4gUGxlYXNlIGNob29zZSBhbiBBSSBwcm92aWRlcjonLCAnaW5mbycpO1xuICAgIGxvZygnMS4gQ3Vyc29yIElERScsICdpbmZvJyk7XG4gICAgbG9nKCcyLiBPcGVuQUknLCAnaW5mbycpO1xuICAgIGxvZygnMy4gQW50aHJvcGljJywgJ2luZm8nKTtcbiAgICBsb2coJzQuIEdpdEh1YiBDb3BpbG90JywgJ2luZm8nKTtcbiAgICBsb2coJzUuIE5vbmUgKFNraXAgQUkgZmVhdHVyZXMpJywgJ2luZm8nKTtcblxuICAgIHJsLnF1ZXN0aW9uKCdFbnRlciB5b3VyIGNob2ljZSAoMS01KTogJywgKGFuc3dlcikgPT4ge1xuICAgICAgcmwuY2xvc2UoKTtcblxuICAgICAgc3dpdGNoKGFuc3dlcikge1xuICAgICAgICBjYXNlICcxJzpcbiAgICAgICAgICByZXNvbHZlKCdjdXJzb3InKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnMic6XG4gICAgICAgICAgcmVzb2x2ZSgnb3BlbmFpJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJzMnOlxuICAgICAgICAgIHJlc29sdmUoJ2FudGhyb3BpYycpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICc0JzpcbiAgICAgICAgICByZXNvbHZlKCdjb3BpbG90Jyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmVzb2x2ZSgnbm9uZScpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBwcm9tcHRGb3JBUElLZXkgPSBhc3luYyAocHJvdmlkZXI6IHN0cmluZywgcXVpZXQgPSBmYWxzZSk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IHJsID0gcmVhZGxpbmUuY3JlYXRlSW50ZXJmYWNlKHtcbiAgICBpbnB1dDogcHJvY2Vzcy5zdGRpbixcbiAgICBvdXRwdXQ6IHByb2Nlc3Muc3Rkb3V0XG4gIH0pO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIHJsLnF1ZXN0aW9uKGBQbGVhc2UgZW50ZXIgeW91ciAke3Byb3ZpZGVyfSBBUEkga2V5OiBgLCAoYW5zd2VyKSA9PiB7XG4gICAgICBybC5jbG9zZSgpO1xuICAgICAgcmVzb2x2ZShhbnN3ZXIpO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBSVNlcnZpY2UgPSAocHJvdmlkZXI6IHN0cmluZywgb3B0aW9uczogQUlDb25maWcpOiAocHJvbXB0OiBzdHJpbmcsIG9wdGlvbnM6IEFJQ29uZmlnKSA9PiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICBzd2l0Y2gocHJvdmlkZXIpIHtcbiAgICBjYXNlICdjdXJzb3InOlxuICAgICAgcmV0dXJuIGNhbGxDdXJzb3JBSTtcbiAgICBjYXNlICdvcGVuYWknOlxuICAgICAgcmV0dXJuIGNhbGxPcGVuQUlBSTtcbiAgICBjYXNlICdhbnRocm9waWMnOlxuICAgICAgcmV0dXJuIGNhbGxBbnRocm9waWNBSTtcbiAgICBjYXNlICdjb3BpbG90JzpcbiAgICAgIHJldHVybiBjYWxsQ29waWxvdEFJO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gYXN5bmMgKCkgPT4gJ05vIEFJIHByb3ZpZGVyIGNvbmZpZ3VyZWQnO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY2FsbEFJU2VydmljZSA9IGFzeW5jIChwcm9tcHQ6IHN0cmluZywgcXVpZXQgPSBmYWxzZSk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IHNwaW5uZXIgPSBjcmVhdGVTcGlubmVyKHF1aWV0KTtcbiAgc3Bpbm5lci5zdGFydCgnQ2FsbGluZyBBSSBzZXJ2aWNlIHRvIGZpeCBjb2RlIGlzc3Vlcy4uLicpO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgYWlDb25maWcgPSBMZXhDb25maWcuY29uZmlnLmFpIHx8IHtwcm92aWRlcjogJ25vbmUnfTtcblxuICAgIGNvbnN0IGlzSW5DdXJzb3JJREUgPSBwcm9jZXNzLmVudi5DVVJTT1JfSURFID09PSAndHJ1ZSc7XG4gICAgaWYoaXNJbkN1cnNvcklERSAmJiAoYWlDb25maWcucHJvdmlkZXIgPT09ICdub25lJyB8fCAhYWlDb25maWcucHJvdmlkZXIpKSB7XG4gICAgICBsb2coJ0RldGVjdGVkIEN1cnNvciBJREUgZW52aXJvbm1lbnQsIHVzaW5nIEN1cnNvciBhcyBBSSBwcm92aWRlcicsICdpbmZvJywgcXVpZXQpO1xuICAgICAgYWlDb25maWcucHJvdmlkZXIgPSAnY3Vyc29yJztcbiAgICB9XG5cbiAgICBpZihhaUNvbmZpZy5wcm92aWRlciA9PT0gJ25vbmUnKSB7XG4gICAgICBjb25zdCBwcm92aWRlciA9IGF3YWl0IHByb21wdEZvckFJUHJvdmlkZXIocXVpZXQpO1xuXG4gICAgICBpZihwcm92aWRlciA9PT0gJ25vbmUnKSB7XG4gICAgICAgIHNwaW5uZXIuZmFpbCgnQUkgZmVhdHVyZXMgc2tpcHBlZCcpO1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9XG5cbiAgICAgIGFpQ29uZmlnLnByb3ZpZGVyID0gcHJvdmlkZXI7XG5cbiAgICAgIGlmKHByb3ZpZGVyICE9PSAnY3Vyc29yJyAmJiBwcm92aWRlciAhPT0gJ2NvcGlsb3QnICYmXG4gICAgICAgICAhcHJvY2Vzcy5lbnZbYCR7cHJvdmlkZXIudG9VcHBlckNhc2UoKX1fQVBJX0tFWWBdKSB7XG4gICAgICAgIGFpQ29uZmlnLmFwaUtleSA9IGF3YWl0IHByb21wdEZvckFQSUtleShwcm92aWRlciwgcXVpZXQpO1xuICAgICAgfVxuXG4gICAgICBMZXhDb25maWcuY29uZmlnLmFpID0gYWlDb25maWc7XG5cbiAgICAgIC8vIFNlYXJjaCBmb3IgY29uZmlnIGZpbGVzIGluIG11bHRpcGxlIGZvcm1hdHMgbGlrZSBMZXhDb25maWcucGFyc2VDb25maWcgZG9lc1xuICAgICAgY29uc3QgY29uZmlnRm9ybWF0cyA9IFsnanMnLCAnbWpzJywgJ2NqcycsICd0cycsICdqc29uJ107XG4gICAgICBjb25zdCBjb25maWdCYXNlTmFtZSA9ICdsZXguY29uZmlnJztcbiAgICAgIGxldCBjb25maWdQYXRoID0gJyc7XG5cbiAgICAgIGZvcihjb25zdCBmb3JtYXQgb2YgY29uZmlnRm9ybWF0cykge1xuICAgICAgICBjb25zdCBwb3RlbnRpYWxQYXRoID0gcGF0aFJlc29sdmUocHJvY2Vzcy5jd2QoKSwgYC4vJHtjb25maWdCYXNlTmFtZX0uJHtmb3JtYXR9YCk7XG4gICAgICAgIGlmKGV4aXN0c1N5bmMocG90ZW50aWFsUGF0aCkpIHtcbiAgICAgICAgICBjb25maWdQYXRoID0gcG90ZW50aWFsUGF0aDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZihjb25maWdQYXRoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgY29uZmlnQ29udGVudCA9IHJlYWRGaWxlU3luYyhjb25maWdQYXRoLCAndXRmOCcpO1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRDb25maWcgPSBjb25maWdDb250ZW50LnJlcGxhY2UoXG4gICAgICAgICAgICAvYWk6Lio/Wyx9XS9zLFxuICAgICAgICAgICAgYGFpOiB7IHByb3ZpZGVyOiAnJHthaUNvbmZpZy5wcm92aWRlcn0nIH0sYFxuICAgICAgICAgICk7XG4gICAgICAgICAgd3JpdGVGaWxlU3luYyhjb25maWdQYXRoLCB1cGRhdGVkQ29uZmlnKTtcbiAgICAgICAgfSBjYXRjaChfZXJyb3IpIHtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCByZXN1bHQgPSAnJztcblxuICAgIHN3aXRjaChhaUNvbmZpZy5wcm92aWRlcikge1xuICAgICAgY2FzZSAnY3Vyc29yJzpcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgY2FsbEN1cnNvckFJKHByb21wdCwgYWlDb25maWcpO1xuICAgICAgICBsb2coJ0N1cnNvciBJREUgQUkgaW50ZWdyYXRpb24gYWN0aXZlJywgJ2luZm8nLCBxdWlldCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnb3BlbmFpJzpcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgY2FsbE9wZW5BSUFJKHByb21wdCwgYWlDb25maWcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2FudGhyb3BpYyc6XG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IGNhbGxBbnRocm9waWNBSShwcm9tcHQsIGFpQ29uZmlnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjb3BpbG90JzpcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgY2FsbENvcGlsb3RBSShwcm9tcHQsIGFpQ29uZmlnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBzcGlubmVyLmZhaWwoJ05vIEFJIHByb3ZpZGVyIGNvbmZpZ3VyZWQnKTtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHNwaW5uZXIuc3VjY2VlZCgnQUkgY29kZSBmaXhlcyBnZW5lcmF0ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHNwaW5uZXIuZmFpbChgQUkgc2VydmljZSBlcnJvcjogJHtlcnJvci5tZXNzYWdlfWApO1xuICAgIGlmKCFxdWlldCkge1xuICAgICAgbG9nKGVycm9yLCAnZXJyb3InKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG59OyJdLAogICJtYXBwaW5ncyI6ICJBQUlBLFNBQVEsWUFBWSxjQUFjLHFCQUFvQjtBQUN0RCxTQUFRLFdBQVcsbUJBQWtCO0FBQ3JDLE9BQU8sY0FBYztBQUVyQixTQUFRLHFCQUFvQjtBQUM1QixTQUFRLFdBQVU7QUFDbEIsU0FBUSxpQkFBMEI7QUFHM0IsTUFBTSxlQUFlLE9BQU8sUUFBZ0IsWUFBdUM7QUFDeEYsTUFBSTtBQUdGLFFBQUksb0NBQW9DLE1BQU07QUFJOUMsUUFBSSxtQ0FBbUMsTUFBTTtBQUU3QyxVQUFNLFlBQVksT0FBTyxNQUFNLHFNQUFxTTtBQUNwTyxVQUFNLE9BQU8sWUFBWSxVQUFVLENBQUMsSUFBSTtBQUN4QyxVQUFNLGlCQUFpQixLQUFLLFdBQVcsZUFBZTtBQUV0RCxVQUFNLGdCQUFnQixPQUFPLE1BQU0sc09BQXNPO0FBQ3pRLFVBQU0sV0FBVyxnQkFBZ0IsY0FBYyxDQUFDLEVBQUUsS0FBSyxJQUFJO0FBRTNELFFBQUcsU0FBUyxZQUFZLEVBQUUsU0FBUyxnQkFBZ0IsS0FBSyxPQUFPLFNBQVMsb0JBQW9CLEdBQUc7QUFDN0YsWUFBTSxtQkFBbUIsT0FBTyxNQUFNLG9CQUFvQixFQUFFLENBQUMsS0FBSztBQUNsRSxZQUFNLFFBQVEsaUJBQWlCLEtBQUssRUFBRSxNQUFNLElBQUk7QUFDaEQsYUFBTyxzREFBc0QsTUFBTSxNQUFNO0FBQUEsSUFDM0U7QUFFQSxRQUFHLGdCQUFnQjtBQUNqQixhQUFPO0FBQUEsOEJBQ2lCLFFBQVE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBTWIsUUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFxQlYsUUFBUTtBQUFBO0FBQUEsSUFFM0I7QUFFQSxXQUFPO0FBQUEsdUNBQzRCLFFBQVE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQTRCN0MsU0FBUSxPQUFPO0FBQ2IsVUFBTSxJQUFJLE1BQU0sb0JBQW9CLE1BQU0sT0FBTyxFQUFFO0FBQUEsRUFDckQ7QUFDRjtBQUVPLE1BQU0sZUFBZSxPQUFPLFFBQWdCLFlBQXVDO0FBQ3hGLE1BQUk7QUFDRixVQUFNLFNBQVMsUUFBUSxVQUFVLFFBQVEsSUFBSTtBQUM3QyxRQUFHLENBQUMsUUFBUTtBQUNWLFlBQU0sSUFBSSxNQUFNLHVHQUF1RztBQUFBLElBQ3pIO0FBRUEsVUFBTSxXQUFXLE1BQU0sTUFBTSw4Q0FBOEM7QUFBQSxNQUN6RSxNQUFNLEtBQUssVUFBVTtBQUFBLFFBQ25CLFlBQVksUUFBUSxhQUFhO0FBQUEsUUFDakMsVUFBVTtBQUFBLFVBQ1IsRUFBQyxTQUFTLGlFQUFpRSxNQUFNLFNBQVE7QUFBQSxVQUN6RixFQUFDLFNBQVMsUUFBUSxNQUFNLE9BQU07QUFBQSxRQUNoQztBQUFBLFFBQ0EsT0FBTyxRQUFRLFNBQVM7QUFBQSxRQUN4QixhQUFhLFFBQVEsZUFBZTtBQUFBLE1BQ3RDLENBQUM7QUFBQSxNQUNELFNBQVM7QUFBQSxRQUNQLGVBQWUsVUFBVSxNQUFNO0FBQUEsUUFDL0IsZ0JBQWdCO0FBQUEsTUFDbEI7QUFBQSxNQUNBLFFBQVE7QUFBQSxJQUNWLENBQUM7QUFFRCxRQUFHLENBQUMsU0FBUyxJQUFJO0FBQ2YsWUFBTSxRQUFRLE1BQU0sU0FBUyxLQUFLO0FBQ2xDLFlBQU0sSUFBSSxNQUFNLHFCQUFxQixNQUFNLE9BQU8sV0FBVyxTQUFTLFVBQVUsRUFBRTtBQUFBLElBQ3BGO0FBRUEsVUFBTSxPQUFPLE1BQU0sU0FBUyxLQUFLO0FBQ2pDLFdBQU8sS0FBSyxRQUFRLENBQUMsRUFBRSxRQUFRO0FBQUEsRUFDakMsU0FBUSxPQUFPO0FBQ2IsVUFBTSxJQUFJLE1BQU0sb0JBQW9CLE1BQU0sT0FBTyxFQUFFO0FBQUEsRUFDckQ7QUFDRjtBQUVPLE1BQU0sa0JBQWtCLE9BQU8sUUFBZ0IsWUFBdUM7QUFDM0YsTUFBSTtBQUNGLFVBQU0sU0FBUyxRQUFRLFVBQVUsUUFBUSxJQUFJO0FBQzdDLFFBQUcsQ0FBQyxRQUFRO0FBQ1YsWUFBTSxJQUFJLE1BQU0sNkdBQTZHO0FBQUEsSUFDL0g7QUFFQSxVQUFNLFdBQVcsTUFBTSxNQUFNLHlDQUF5QztBQUFBLE1BQ3BFLE1BQU0sS0FBSyxVQUFVO0FBQUEsUUFDbkIsWUFBWSxRQUFRLGFBQWE7QUFBQSxRQUNqQyxVQUFVO0FBQUEsVUFDUixFQUFDLFNBQVMsUUFBUSxNQUFNLE9BQU07QUFBQSxRQUNoQztBQUFBLFFBQ0EsT0FBTyxRQUFRLFNBQVM7QUFBQSxRQUN4QixhQUFhLFFBQVEsZUFBZTtBQUFBLE1BQ3RDLENBQUM7QUFBQSxNQUNELFNBQVM7QUFBQSxRQUNQLGdCQUFnQjtBQUFBLFFBQ2hCLHFCQUFxQjtBQUFBLFFBQ3JCLGFBQWE7QUFBQSxNQUNmO0FBQUEsTUFDQSxRQUFRO0FBQUEsSUFDVixDQUFDO0FBRUQsUUFBRyxDQUFDLFNBQVMsSUFBSTtBQUNmLFlBQU0sUUFBUSxNQUFNLFNBQVMsS0FBSztBQUNsQyxZQUFNLElBQUksTUFBTSx3QkFBd0IsTUFBTSxPQUFPLFdBQVcsU0FBUyxVQUFVLEVBQUU7QUFBQSxJQUN2RjtBQUVBLFVBQU0sT0FBTyxNQUFNLFNBQVMsS0FBSztBQUNqQyxXQUFPLEtBQUssUUFBUSxDQUFDLEVBQUU7QUFBQSxFQUN6QixTQUFRLE9BQU87QUFDYixVQUFNLElBQUksTUFBTSx1QkFBdUIsTUFBTSxPQUFPLEVBQUU7QUFBQSxFQUN4RDtBQUNGO0FBRU8sTUFBTSxnQkFBZ0IsT0FBTyxRQUFnQixZQUF1QztBQUN6RixNQUFJO0FBQ0YsUUFBSSwwRUFBMEUsTUFBTTtBQUNwRixXQUFPO0FBQUEsRUFDVCxTQUFRLE9BQU87QUFDYixVQUFNLElBQUksTUFBTSw0QkFBNEIsTUFBTSxPQUFPLEVBQUU7QUFBQSxFQUM3RDtBQUNGO0FBRU8sTUFBTSxzQkFBc0IsT0FBTyxRQUFRLFVBQTJFO0FBQzNILFFBQU0sS0FBSyxTQUFTLGdCQUFnQjtBQUFBLElBQ2xDLE9BQU8sUUFBUTtBQUFBLElBQ2YsUUFBUSxRQUFRO0FBQUEsRUFDbEIsQ0FBQztBQUVELFNBQU8sSUFBSSxRQUFRLENBQUMsWUFBWTtBQUM5QixRQUFJLDhEQUE4RCxNQUFNO0FBQ3hFLFFBQUksaUJBQWlCLE1BQU07QUFDM0IsUUFBSSxhQUFhLE1BQU07QUFDdkIsUUFBSSxnQkFBZ0IsTUFBTTtBQUMxQixRQUFJLHFCQUFxQixNQUFNO0FBQy9CLFFBQUksOEJBQThCLE1BQU07QUFFeEMsT0FBRyxTQUFTLDZCQUE2QixDQUFDLFdBQVc7QUFDbkQsU0FBRyxNQUFNO0FBRVQsY0FBTyxRQUFRO0FBQUEsUUFDYixLQUFLO0FBQ0gsa0JBQVEsUUFBUTtBQUNoQjtBQUFBLFFBQ0YsS0FBSztBQUNILGtCQUFRLFFBQVE7QUFDaEI7QUFBQSxRQUNGLEtBQUs7QUFDSCxrQkFBUSxXQUFXO0FBQ25CO0FBQUEsUUFDRixLQUFLO0FBQ0gsa0JBQVEsU0FBUztBQUNqQjtBQUFBLFFBQ0Y7QUFDRSxrQkFBUSxNQUFNO0FBQUEsTUFDbEI7QUFBQSxJQUNGLENBQUM7QUFBQSxFQUNILENBQUM7QUFDSDtBQUVPLE1BQU0sa0JBQWtCLE9BQU8sVUFBa0IsUUFBUSxVQUEyQjtBQUN6RixRQUFNLEtBQUssU0FBUyxnQkFBZ0I7QUFBQSxJQUNsQyxPQUFPLFFBQVE7QUFBQSxJQUNmLFFBQVEsUUFBUTtBQUFBLEVBQ2xCLENBQUM7QUFFRCxTQUFPLElBQUksUUFBUSxDQUFDLFlBQVk7QUFDOUIsT0FBRyxTQUFTLHFCQUFxQixRQUFRLGNBQWMsQ0FBQyxXQUFXO0FBQ2pFLFNBQUcsTUFBTTtBQUNULGNBQVEsTUFBTTtBQUFBLElBQ2hCLENBQUM7QUFBQSxFQUNILENBQUM7QUFDSDtBQUVPLE1BQU0sZUFBZSxDQUFDLFVBQWtCLFlBQThFO0FBQzNILFVBQU8sVUFBVTtBQUFBLElBQ2YsS0FBSztBQUNILGFBQU87QUFBQSxJQUNULEtBQUs7QUFDSCxhQUFPO0FBQUEsSUFDVCxLQUFLO0FBQ0gsYUFBTztBQUFBLElBQ1QsS0FBSztBQUNILGFBQU87QUFBQSxJQUNUO0FBQ0UsYUFBTyxZQUFZO0FBQUEsRUFDdkI7QUFDRjtBQUVPLE1BQU0sZ0JBQWdCLE9BQU8sUUFBZ0IsUUFBUSxVQUEyQjtBQUNyRixRQUFNLFVBQVUsY0FBYyxLQUFLO0FBQ25DLFVBQVEsTUFBTSwwQ0FBMEM7QUFFeEQsTUFBSTtBQUNGLFVBQU0sV0FBVyxVQUFVLE9BQU8sTUFBTSxFQUFDLFVBQVUsT0FBTTtBQUV6RCxVQUFNLGdCQUFnQixRQUFRLElBQUksZUFBZTtBQUNqRCxRQUFHLGtCQUFrQixTQUFTLGFBQWEsVUFBVSxDQUFDLFNBQVMsV0FBVztBQUN4RSxVQUFJLGdFQUFnRSxRQUFRLEtBQUs7QUFDakYsZUFBUyxXQUFXO0FBQUEsSUFDdEI7QUFFQSxRQUFHLFNBQVMsYUFBYSxRQUFRO0FBQy9CLFlBQU0sV0FBVyxNQUFNLG9CQUFvQixLQUFLO0FBRWhELFVBQUcsYUFBYSxRQUFRO0FBQ3RCLGdCQUFRLEtBQUsscUJBQXFCO0FBQ2xDLGVBQU87QUFBQSxNQUNUO0FBRUEsZUFBUyxXQUFXO0FBRXBCLFVBQUcsYUFBYSxZQUFZLGFBQWEsYUFDdEMsQ0FBQyxRQUFRLElBQUksR0FBRyxTQUFTLFlBQVksQ0FBQyxVQUFVLEdBQUc7QUFDcEQsaUJBQVMsU0FBUyxNQUFNLGdCQUFnQixVQUFVLEtBQUs7QUFBQSxNQUN6RDtBQUVBLGdCQUFVLE9BQU8sS0FBSztBQUd0QixZQUFNLGdCQUFnQixDQUFDLE1BQU0sT0FBTyxPQUFPLE1BQU0sTUFBTTtBQUN2RCxZQUFNLGlCQUFpQjtBQUN2QixVQUFJLGFBQWE7QUFFakIsaUJBQVUsVUFBVSxlQUFlO0FBQ2pDLGNBQU0sZ0JBQWdCLFlBQVksUUFBUSxJQUFJLEdBQUcsS0FBSyxjQUFjLElBQUksTUFBTSxFQUFFO0FBQ2hGLFlBQUcsV0FBVyxhQUFhLEdBQUc7QUFDNUIsdUJBQWE7QUFDYjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsVUFBRyxZQUFZO0FBQ2IsWUFBSTtBQUNGLGdCQUFNLGdCQUFnQixhQUFhLFlBQVksTUFBTTtBQUNyRCxnQkFBTSxnQkFBZ0IsY0FBYztBQUFBLFlBQ2xDO0FBQUEsWUFDQSxvQkFBb0IsU0FBUyxRQUFRO0FBQUEsVUFDdkM7QUFDQSx3QkFBYyxZQUFZLGFBQWE7QUFBQSxRQUN6QyxTQUFRLFFBQVE7QUFBQSxRQUNoQjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBRUEsUUFBSSxTQUFTO0FBRWIsWUFBTyxTQUFTLFVBQVU7QUFBQSxNQUN4QixLQUFLO0FBQ0gsaUJBQVMsTUFBTSxhQUFhLFFBQVEsUUFBUTtBQUM1QyxZQUFJLG9DQUFvQyxRQUFRLEtBQUs7QUFDckQ7QUFBQSxNQUNGLEtBQUs7QUFDSCxpQkFBUyxNQUFNLGFBQWEsUUFBUSxRQUFRO0FBQzVDO0FBQUEsTUFDRixLQUFLO0FBQ0gsaUJBQVMsTUFBTSxnQkFBZ0IsUUFBUSxRQUFRO0FBQy9DO0FBQUEsTUFDRixLQUFLO0FBQ0gsaUJBQVMsTUFBTSxjQUFjLFFBQVEsUUFBUTtBQUM3QztBQUFBLE1BQ0Y7QUFDRSxnQkFBUSxLQUFLLDJCQUEyQjtBQUN4QyxlQUFPO0FBQUEsSUFDWDtBQUVBLFlBQVEsUUFBUSxzQ0FBc0M7QUFDdEQsV0FBTztBQUFBLEVBQ1QsU0FBUSxPQUFPO0FBQ2IsWUFBUSxLQUFLLHFCQUFxQixNQUFNLE9BQU8sRUFBRTtBQUNqRCxRQUFHLENBQUMsT0FBTztBQUNULFVBQUksT0FBTyxPQUFPO0FBQUEsSUFDcEI7QUFDQSxXQUFPO0FBQUEsRUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { LexConfigType } from '../LexConfig.js';
|
|
2
|
+
export declare const cwd: string;
|
|
3
|
+
export interface GetFilenamesProps {
|
|
4
|
+
readonly callback?: (status: number) => void;
|
|
5
|
+
readonly cliName?: string;
|
|
6
|
+
readonly name?: string;
|
|
7
|
+
readonly quiet?: boolean;
|
|
8
|
+
readonly type?: string;
|
|
9
|
+
readonly useTypescript?: boolean;
|
|
10
|
+
}
|
|
11
|
+
interface FilenamesResult {
|
|
12
|
+
nameCaps: string;
|
|
13
|
+
templateExt: string;
|
|
14
|
+
templatePath: string;
|
|
15
|
+
templateReact: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const getFilenames: (props: GetFilenamesProps) => FilenamesResult | void;
|
|
18
|
+
export interface Spinner {
|
|
19
|
+
fail: (text?: string) => void;
|
|
20
|
+
start: (text?: string) => void;
|
|
21
|
+
succeed: (text?: string) => void;
|
|
22
|
+
}
|
|
23
|
+
export declare const createSpinner: (quiet?: boolean) => Spinner;
|
|
24
|
+
export declare const copyFiles: (files: string[], typeName: string, spinner: any, config: LexConfigType) => Promise<void>;
|
|
25
|
+
export declare const copyConfiguredFiles: (spinner: any, config: LexConfigType, quiet: boolean) => Promise<void>;
|
|
26
|
+
export declare const copyFileSync: (source: string, target: string) => void;
|
|
27
|
+
export declare const copyFolderRecursiveSync: (source: string, target: string) => void;
|
|
28
|
+
export declare const getPackageJson: (packagePath?: string) => any;
|
|
29
|
+
export declare const getFilesByExt: (ext: string, config: LexConfigType) => string[];
|
|
30
|
+
export declare const removeConflictModules: (moduleList: object) => object;
|
|
31
|
+
export declare const removeFiles: (fileName: string, isRelative?: boolean) => Promise<unknown>;
|
|
32
|
+
export declare const removeModules: () => Promise<unknown>;
|
|
33
|
+
export declare const setPackageJson: (json: any, packagePath?: string) => void;
|
|
34
|
+
export interface LinkedModuleType {
|
|
35
|
+
readonly name: string;
|
|
36
|
+
readonly path: string;
|
|
37
|
+
}
|
|
38
|
+
export declare const linkedModules: (startPath?: string) => LinkedModuleType[];
|
|
39
|
+
export declare const checkLinkedModules: () => void;
|
|
40
|
+
export declare const updateTemplateName: (filePath: string, replace: string, replaceCaps: string) => void;
|
|
41
|
+
export {};
|
package/dist/utils/app.js
CHANGED
|
@@ -77,7 +77,56 @@ const copyFiles = async (files, typeName, spinner, config) => {
|
|
|
77
77
|
} catch (error) {
|
|
78
78
|
spinner.fail(`Copying of ${typeName} files failed.`);
|
|
79
79
|
log(`Error: ${error.message}`, "error");
|
|
80
|
-
|
|
80
|
+
log(error, "error");
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
const copyConfiguredFiles = async (spinner, config, quiet) => {
|
|
84
|
+
const { copyFiles: copyFilesConfig, outputFullPath, sourceFullPath, sourcePath } = config;
|
|
85
|
+
if (!copyFilesConfig || copyFilesConfig.length === 0) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
try {
|
|
89
|
+
spinner.start("Copying configured files...");
|
|
90
|
+
let totalCopied = 0;
|
|
91
|
+
const baseDir = sourceFullPath || (sourcePath ? pathResolve(cwd, sourcePath) : cwd);
|
|
92
|
+
for (const pattern of copyFilesConfig) {
|
|
93
|
+
const resolvedPattern = pathResolve(baseDir, pattern);
|
|
94
|
+
const matchingFiles = globSync(resolvedPattern, {
|
|
95
|
+
nodir: true,
|
|
96
|
+
absolute: true
|
|
97
|
+
});
|
|
98
|
+
if (matchingFiles.length === 0) {
|
|
99
|
+
if (!quiet) {
|
|
100
|
+
log(`Warning: No files found matching pattern: ${pattern}`, "warn", quiet);
|
|
101
|
+
}
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
for (const sourceFile of matchingFiles) {
|
|
105
|
+
const relativePath = pathRelative(baseDir, sourceFile);
|
|
106
|
+
const destPath = pathResolve(outputFullPath, relativePath);
|
|
107
|
+
const destDir = pathResolve(destPath, "..");
|
|
108
|
+
mkdirSync(destDir, { recursive: true });
|
|
109
|
+
await new Promise((resolve, reject) => {
|
|
110
|
+
copyFile(sourceFile, destPath, (copyError) => {
|
|
111
|
+
if (copyError) {
|
|
112
|
+
reject(copyError);
|
|
113
|
+
} else {
|
|
114
|
+
resolve(true);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
totalCopied++;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (totalCopied > 0) {
|
|
122
|
+
spinner.succeed(`Successfully copied ${totalCopied} configured files!`);
|
|
123
|
+
} else {
|
|
124
|
+
spinner.succeed("No configured files to copy");
|
|
125
|
+
}
|
|
126
|
+
} catch (error) {
|
|
127
|
+
spinner.fail("Failed to copy configured files");
|
|
128
|
+
log(`Error copying configured files: ${error.message}`, "error", quiet);
|
|
129
|
+
throw error;
|
|
81
130
|
}
|
|
82
131
|
};
|
|
83
132
|
const copyFileSync = (source, target) => {
|
|
@@ -119,7 +168,7 @@ const getFilesByExt = (ext, config) => {
|
|
|
119
168
|
const removeConflictModules = (moduleList) => {
|
|
120
169
|
const updatedList = { ...moduleList };
|
|
121
170
|
Object.keys(updatedList).forEach((moduleName) => {
|
|
122
|
-
const regex = new RegExp("^(?!@types/)
|
|
171
|
+
const regex = new RegExp("^(?!@types/).*?(jest|webpack).*$", "gi");
|
|
123
172
|
if (regex.test(moduleName)) {
|
|
124
173
|
delete updatedList[moduleName];
|
|
125
174
|
}
|
|
@@ -199,6 +248,7 @@ const updateTemplateName = (filePath, replace, replaceCaps) => {
|
|
|
199
248
|
};
|
|
200
249
|
export {
|
|
201
250
|
checkLinkedModules,
|
|
251
|
+
copyConfiguredFiles,
|
|
202
252
|
copyFileSync,
|
|
203
253
|
copyFiles,
|
|
204
254
|
copyFolderRecursiveSync,
|
|
@@ -214,4 +264,4 @@ export {
|
|
|
214
264
|
setPackageJson,
|
|
215
265
|
updateTemplateName
|
|
216
266
|
};
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2FwcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBib3hlbiBmcm9tICdib3hlbic7XG5pbXBvcnQge2NvcHlGaWxlLCBleGlzdHNTeW5jLCBsc3RhdFN5bmMsIG1rZGlyU3luYywgcmVhZGRpclN5bmMsIHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnZnMnO1xuaW1wb3J0IHtnbG9iU3luY30gZnJvbSAnZ2xvYic7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eS5qcyc7XG5pbXBvcnQgb3JhIGZyb20gJ29yYSc7XG5pbXBvcnQge2Jhc2VuYW1lIGFzIHBhdGhCYXNlbmFtZSwgam9pbiBhcyBwYXRoSm9pbiwgcmVsYXRpdmUgYXMgcGF0aFJlbGF0aXZlLCByZXNvbHZlIGFzIHBhdGhSZXNvbHZlfSBmcm9tICdwYXRoJztcbmltcG9ydCB7cmltcmFmU3luY30gZnJvbSAncmltcmFmJztcblxuaW1wb3J0IHtsb2d9IGZyb20gJy4vbG9nLmpzJztcblxuaW1wb3J0IHR5cGUge0xleENvbmZpZ1R5cGV9IGZyb20gJy4uL0xleENvbmZpZy5qcyc7XG5cbmV4cG9ydCBjb25zdCBjd2Q6IHN0cmluZyA9IHByb2Nlc3MuY3dkKCk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0RmlsZW5hbWVzUHJvcHMge1xuICByZWFkb25seSBjYWxsYmFjaz86IChzdGF0dXM6IG51bWJlcikgPT4gdm9pZDtcbiAgcmVhZG9ubHkgY2xpTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgcXVpZXQ/OiBib29sZWFuO1xuICByZWFkb25seSB0eXBlPzogc3RyaW5nO1xuICByZWFkb25seSB1c2VUeXBlc2NyaXB0PzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIEZpbGVuYW1lc1Jlc3VsdCB7XG4gIG5hbWVDYXBzOiBzdHJpbmc7XG4gIHRlbXBsYXRlRXh0OiBzdHJpbmc7XG4gIHRlbXBsYXRlUGF0aDogc3RyaW5nO1xuICB0ZW1wbGF0ZVJlYWN0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRGaWxlbmFtZXMgPSAocHJvcHM6IEdldEZpbGVuYW1lc1Byb3BzKTogRmlsZW5hbWVzUmVzdWx0IHwgdm9pZCA9PiB7XG4gIGNvbnN0IHtjYWxsYmFjaywgY2xpTmFtZSwgbmFtZSwgcXVpZXQsIHR5cGUsIHVzZVR5cGVzY3JpcHR9ID0gcHJvcHM7XG5cbiAgLy8gU2V0IGZpbGVuYW1lXG4gIGxldCBuYW1lQ2Fwczogc3RyaW5nO1xuICBjb25zdCBpdGVtVHlwZXM6IHN0cmluZ1tdID0gWydzdG9yZXMnLCAndmlld3MnXTtcblxuICBpZighbmFtZSkge1xuICAgIGlmKGl0ZW1UeXBlcy5pbmNsdWRlcyh0eXBlKSkge1xuICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiAke3R5cGV9IG5hbWUgaXMgcmVxdWlyZWQuIFBsZWFzZSB1c2UgJ2xleCAtaCcgZm9yIG9wdGlvbnMuYCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgcmV0dXJuIGNhbGxiYWNrPy4oMSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG5hbWVDYXBzID0gYCR7bmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke25hbWUuc3Vic3RyKDEpfWA7XG4gIH1cblxuICAvLyBEaXNwbGF5IG1lc3NhZ2VcbiAgbG9nKGAke2NsaU5hbWV9IGFkZGluZyAke25hbWV9ICR7dHlwZX0uLi5gLCAnaW5mbycsIHF1aWV0KTtcblxuICAvLyBUZW1wbGF0ZSBkaXJlY3RvcnlcbiAgbGV0IHRlbXBsYXRlUGF0aDogc3RyaW5nO1xuICBsZXQgdGVtcGxhdGVFeHQ6IHN0cmluZztcbiAgbGV0IHRlbXBsYXRlUmVhY3Q6IHN0cmluZztcblxuICBpZih1c2VUeXBlc2NyaXB0KSB7XG4gICAgdGVtcGxhdGVQYXRoID0gJy4uLy4uL3RlbXBsYXRlcy90eXBlc2NyaXB0JztcbiAgICB0ZW1wbGF0ZUV4dCA9ICcudHMnO1xuICAgIHRlbXBsYXRlUmVhY3QgPSAnLnRzeCc7XG4gIH0gZWxzZSB7XG4gICAgdGVtcGxhdGVQYXRoID0gJy4uLy4uL3RlbXBsYXRlcy9mbG93JztcbiAgICB0ZW1wbGF0ZUV4dCA9ICcuanMnO1xuICAgIHRlbXBsYXRlUmVhY3QgPSAnLmpzJztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZUNhcHMsXG4gICAgdGVtcGxhdGVFeHQsXG4gICAgdGVtcGxhdGVQYXRoLFxuICAgIHRlbXBsYXRlUmVhY3RcbiAgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3Bpbm5lciB7XG4gIGZhaWw6ICh0ZXh0Pzogc3RyaW5nKSA9PiB2b2lkO1xuICBzdGFydDogKHRleHQ/OiBzdHJpbmcpID0+IHZvaWQ7XG4gIHN1Y2NlZWQ6ICh0ZXh0Pzogc3RyaW5nKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlU3Bpbm5lciA9IChxdWlldCA9IGZhbHNlKTogU3Bpbm5lciA9PiB7XG4gIGlmKHF1aWV0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZhaWw6ICgpID0+IHt9LFxuICAgICAgc3RhcnQ6ICgpID0+IHt9LFxuICAgICAgc3VjY2VlZDogKCkgPT4ge31cbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIG9yYSh7Y29sb3I6ICd5ZWxsb3cnfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY29weUZpbGVzID0gYXN5bmMgKGZpbGVzOiBzdHJpbmdbXSwgdHlwZU5hbWU6IHN0cmluZywgc3Bpbm5lciwgY29uZmlnOiBMZXhDb25maWdUeXBlKSA9PiB7XG4gIGNvbnN0IHtvdXRwdXRGdWxsUGF0aCwgc291cmNlRnVsbFBhdGh9ID0gY29uZmlnO1xuICBjb25zdCBpdGVtcyA9IGZpbGVzLm1hcCgoZmlsZU5hbWU6IHN0cmluZykgPT4gKHtcbiAgICBmcm9tOiBmaWxlTmFtZSxcbiAgICB0bzogcGF0aFJlc29sdmUob3V0cHV0RnVsbFBhdGgsIHBhdGhSZWxhdGl2ZShzb3VyY2VGdWxsUGF0aCwgZmlsZU5hbWUpKVxuICB9KSk7XG5cbiAgdHJ5IHtcbiAgICBzcGlubmVyLnN0YXJ0KGBDb3B5aW5nICR7dHlwZU5hbWV9IGZpbGVzLi4uYCk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoaXRlbXMubWFwKCh7ZnJvbSwgdG99KSA9PiBuZXcgUHJvbWlzZShcbiAgICAgIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgbWtkaXJTeW5jKHBhdGhSZXNvbHZlKHRvLCAnLi4nKSwge3JlY3Vyc2l2ZTogdHJ1ZX0pO1xuICAgICAgICByZXR1cm4gY29weUZpbGUoZnJvbSwgdG8sIChjb3B5RXJyb3IpID0+IHtcbiAgICAgICAgICBpZihjb3B5RXJyb3IpIHtcbiAgICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgKSkpO1xuICAgIHNwaW5uZXIuc3VjY2VlZChgU3VjY2Vzc2Z1bGx5IGNvcGllZCAke2ZpbGVzLmxlbmd0aH0gJHt0eXBlTmFtZX0gZmlsZXMhYCk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAvLyBTdG9wIHNwaW5uZXJcbiAgICBzcGlubmVyLmZhaWwoYENvcHlpbmcgb2YgJHt0eXBlTmFtZX0gZmlsZXMgZmFpbGVkLmApO1xuICAgIGxvZyhgRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InKTtcbiAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBjb3B5RmlsZVN5bmMgPSAoc291cmNlOiBzdHJpbmcsIHRhcmdldDogc3RyaW5nKSA9PiB7XG4gIGxldCB0YXJnZXRGaWxlOiBzdHJpbmcgPSB0YXJnZXQ7XG5cbiAgLy8gSWYgdGFyZ2V0IGlzIGEgZGlyZWN0b3J5IGEgbmV3IGZpbGUgd2l0aCB0aGUgc2FtZSBuYW1lIHdpbGwgYmUgY3JlYXRlZFxuICBpZihleGlzdHNTeW5jKHRhcmdldCkpIHtcbiAgICBpZihsc3RhdFN5bmModGFyZ2V0KS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICB0YXJnZXRGaWxlID0gcGF0aEpvaW4odGFyZ2V0LCBwYXRoQmFzZW5hbWUoc291cmNlKSk7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVGaWxlU3luYyh0YXJnZXRGaWxlLCByZWFkRmlsZVN5bmMoc291cmNlKSk7XG59O1xuXG5leHBvcnQgY29uc3QgY29weUZvbGRlclJlY3Vyc2l2ZVN5bmMgPSAoc291cmNlOiBzdHJpbmcsIHRhcmdldDogc3RyaW5nKTogdm9pZCA9PiB7XG4gIGxldCBmaWxlczogc3RyaW5nW10gPSBbXTtcblxuICAvLyBDaGVjayBpZiBmb2xkZXIgbmVlZHMgdG8gYmUgY3JlYXRlZCBvciBpbnRlZ3JhdGVkXG4gIGNvbnN0IHRhcmdldEZvbGRlcjogc3RyaW5nID0gcGF0aEpvaW4odGFyZ2V0LCBwYXRoQmFzZW5hbWUoc291cmNlKSk7XG5cbiAgaWYoIWV4aXN0c1N5bmModGFyZ2V0Rm9sZGVyKSkge1xuICAgIG1rZGlyU3luYyh0YXJnZXRGb2xkZXIpO1xuICB9XG5cbiAgLy8gQ29weVxuICBpZihsc3RhdFN5bmMoc291cmNlKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgZmlsZXMgPSByZWFkZGlyU3luYyhzb3VyY2UpO1xuICAgIGZpbGVzLmZvckVhY2goKGZpbGU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgY3VyU291cmNlOiBzdHJpbmcgPSBwYXRoSm9pbihzb3VyY2UsIGZpbGUpO1xuXG4gICAgICBpZihsc3RhdFN5bmMoY3VyU291cmNlKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgIGNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jKGN1clNvdXJjZSwgdGFyZ2V0Rm9sZGVyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvcHlGaWxlU3luYyhjdXJTb3VyY2UsIHRhcmdldEZvbGRlcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRQYWNrYWdlSnNvbiA9IChwYWNrYWdlUGF0aD86IHN0cmluZykgPT4ge1xuICBjb25zdCBmb3JtYXRQYXRoOiBzdHJpbmcgPSBwYWNrYWdlUGF0aCB8fCBgJHtwcm9jZXNzLmN3ZCgpfS9wYWNrYWdlLmpzb25gO1xuXG4gIC8vIENvbmZpZ3VyZSBwYWNrYWdlLmpzb25cbiAgY29uc3QgcGFja2FnZURhdGE6IHN0cmluZyA9IHJlYWRGaWxlU3luYyhmb3JtYXRQYXRoKS50b1N0cmluZygpO1xuICByZXR1cm4gSlNPTi5wYXJzZShwYWNrYWdlRGF0YSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RmlsZXNCeUV4dCA9IChleHQ6IHN0cmluZywgY29uZmlnOiBMZXhDb25maWdUeXBlKTogc3RyaW5nW10gPT4ge1xuICBjb25zdCB7c291cmNlRnVsbFBhdGh9ID0gY29uZmlnO1xuICByZXR1cm4gZ2xvYlN5bmMoYCR7c291cmNlRnVsbFBhdGh9LyoqLyoqJHtleHR9YCk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlQ29uZmxpY3RNb2R1bGVzID0gKG1vZHVsZUxpc3Q6IG9iamVjdCkgPT4ge1xuICBjb25zdCB1cGRhdGVkTGlzdDogb2JqZWN0ID0gey4uLm1vZHVsZUxpc3R9O1xuXG4gIE9iamVjdC5rZXlzKHVwZGF0ZWRMaXN0KS5mb3JFYWNoKChtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCByZWdleDogUmVnRXhwID0gbmV3IFJlZ0V4cCgnXig/IUB0eXBlc1xcLykuKihqZXN0fHdlYnBhY2spLiokJywgJ2dpJyk7XG4gICAgaWYocmVnZXgudGVzdChtb2R1bGVOYW1lKSkge1xuICAgICAgZGVsZXRlIHVwZGF0ZWRMaXN0W21vZHVsZU5hbWVdO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHVwZGF0ZWRMaXN0O1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUZpbGVzID0gKGZpbGVOYW1lOiBzdHJpbmcsIGlzUmVsYXRpdmU6IGJvb2xlYW4gPSBmYWxzZSkgPT4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICBjb25zdCBmaWxlUGF0aDogc3RyaW5nID0gaXNSZWxhdGl2ZSA/IHBhdGhSZXNvbHZlKGN3ZCwgZmlsZU5hbWUpIDogZmlsZU5hbWU7XG4gIHRyeSB7XG4gICAgcmltcmFmU3luYyhmaWxlUGF0aCk7XG4gICAgcmV0dXJuIHJlc29sdmUobnVsbCk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCByZW1vdmVNb2R1bGVzID0gKCkgPT4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICB0cnkge1xuICAgIC8vIFJlbW92ZSBub2RlX21vZHVsZXNcbiAgICBhd2FpdCByZW1vdmVGaWxlcygnLi9ub2RlX21vZHVsZXMnLCB0cnVlKTtcblxuICAgIC8vIFJlbW92ZSB5YXJuIGxvY2tcbiAgICBhd2FpdCByZW1vdmVGaWxlcygnLi95YXJuLmxvY2snLCB0cnVlKTtcblxuICAgIC8vIFJlbW92ZSBucG0gbG9ja1xuICAgIGF3YWl0IHJlbW92ZUZpbGVzKCcuL3BhY2thZ2UtbG9jay5qc29uJywgdHJ1ZSk7XG5cbiAgICByZXNvbHZlKG51bGwpO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgcmVqZWN0KGVycm9yKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCBzZXRQYWNrYWdlSnNvbiA9IChqc29uLCBwYWNrYWdlUGF0aD86IHN0cmluZykgPT4ge1xuICBpZighanNvbikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGZvcm1hdFBhdGg6IHN0cmluZyA9IHBhY2thZ2VQYXRoIHx8IGAke3Byb2Nlc3MuY3dkKCl9L3BhY2thZ2UuanNvbmA7XG5cbiAgLy8gVXBkYXRlIHBhY2thZ2UuanNvblxuICB3cml0ZUZpbGVTeW5jKGZvcm1hdFBhdGgsIEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIDIpKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlua2VkTW9kdWxlVHlwZSB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgbGlua2VkTW9kdWxlcyA9IChzdGFydFBhdGg/OiBzdHJpbmcpOiBMaW5rZWRNb2R1bGVUeXBlW10gPT4ge1xuICBjb25zdCB3b3JraW5nUGF0aDogc3RyaW5nID0gc3RhcnRQYXRoIHx8IHByb2Nlc3MuY3dkKCk7XG4gIGxldCBtb2R1bGVQYXRoOiBzdHJpbmc7XG4gIGxldCBwcmVmaXg6IHN0cmluZztcblxuICAvLyBpZiB3ZSBoYXZlIGEgc2NvcGUgd2Ugc2hvdWxkIGNoZWNrIGlmIHRoZSBtb2R1bGVzIGluc2lkZSB0aGUgZm9sZGVyIGlzIGxpbmtlZFxuICBpZih3b3JraW5nUGF0aC5pbmNsdWRlcygnQCcpKSB7XG4gICAgcHJlZml4ID0gYEAke3dvcmtpbmdQYXRoLnNwbGl0KCdAJykucG9wKCl9YDtcbiAgICBtb2R1bGVQYXRoID0gd29ya2luZ1BhdGg7XG4gIH0gZWxzZSB7XG4gICAgbW9kdWxlUGF0aCA9IHBhdGhKb2luKHdvcmtpbmdQYXRoLCAnbm9kZV9tb2R1bGVzJyk7XG4gIH1cblxuICBjb25zdCBmb3VuZFBhdGhzOiBzdHJpbmdbXSA9IGdsb2JTeW5jKGAke21vZHVsZVBhdGh9LypgKTtcbiAgcmV0dXJuIGZvdW5kUGF0aHMucmVkdWNlKChsaXN0OiBMaW5rZWRNb2R1bGVUeXBlW10sIGZvdW5kUGF0aDogc3RyaW5nKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0YXRzID0gbHN0YXRTeW5jKGZvdW5kUGF0aCk7XG5cbiAgICAgIGlmKHN0YXRzLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgY29uc3QgZGVlcExpc3Q6IExpbmtlZE1vZHVsZVR5cGVbXSA9IGxpbmtlZE1vZHVsZXMoZm91bmRQYXRoKTtcbiAgICAgICAgbGlzdC5wdXNoKC4uLmRlZXBMaXN0KTtcbiAgICAgIH0gZWxzZSBpZihzdGF0cy5pc1N5bWJvbGljTGluaygpKSB7XG4gICAgICAgIGNvbnN0IG1vZHVsZU5hbWVzOiBzdHJpbmdbXSA9IChbcHJlZml4LCBwYXRoQmFzZW5hbWUoZm91bmRQYXRoKV0pLmZpbHRlcigoaXRlbTogc3RyaW5nKSA9PiAhaXNFbXB0eShpdGVtKSk7XG4gICAgICAgIGxpc3QucHVzaCh7bmFtZTogYCR7bW9kdWxlTmFtZXMuam9pbignLycpfWAsIHBhdGg6IGZvdW5kUGF0aH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9IGNhdGNoKGZzRXJyb3IpIHtcbiAgICAgIHRocm93IGZzRXJyb3I7XG4gICAgfVxuICB9LCBbXSk7XG59O1xuXG4vLyBDaGVjayBmb3IgbGlua2VkIG1vZHVsZXNcbmV4cG9ydCBjb25zdCBjaGVja0xpbmtlZE1vZHVsZXMgPSAoKSA9PiB7XG4gIGNvbnN0IGxpbmtlZCA9IGxpbmtlZE1vZHVsZXMoKTtcblxuICBpZihsaW5rZWQubGVuZ3RoKSB7XG4gICAgY29uc3QgbXNnTW9kdWxlOiBzdHJpbmcgPSBsaW5rZWQubGVuZ3RoID4gMSA/ICdNb2R1bGVzJyA6ICdNb2R1bGUnO1xuICAgIGNvbnN0IGxpbmtlZE1zZzogc3RyaW5nID0gbGlua2VkLnJlZHVjZShcbiAgICAgIChtc2c6IHN0cmluZywgbGlua2VkTW9kdWxlOiBMaW5rZWRNb2R1bGVUeXBlKSA9PlxuICAgICAgICBgJHttc2d9XFxuICogJHtsaW5rZWRNb2R1bGUubmFtZX1gLFxuICAgICAgYExpbmtlZCAke21zZ01vZHVsZX06YFxuICAgICk7XG4gICAgbG9nKGJveGVuKGxpbmtlZE1zZywge2RpbUJvcmRlcjogdHJ1ZSwgcGFkZGluZzogMX0pLCAnd2FybicpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlVGVtcGxhdGVOYW1lID0gKGZpbGVQYXRoOiBzdHJpbmcsIHJlcGxhY2U6IHN0cmluZywgcmVwbGFjZUNhcHM6IHN0cmluZykgPT4ge1xuICBsZXQgZGF0YTogc3RyaW5nID0gcmVhZEZpbGVTeW5jKGZpbGVQYXRoLCAndXRmOCcpO1xuICBkYXRhID0gZGF0YS5yZXBsYWNlKC9zYW1wbGUvZywgcmVwbGFjZSk7XG4gIGRhdGEgPSBkYXRhLnJlcGxhY2UoL1NhbXBsZS9nLCByZXBsYWNlQ2Fwcyk7XG4gIHdyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIGRhdGEsICd1dGY4Jyk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBTyxXQUFXO0FBQ2xCLFNBQVEsVUFBVSxZQUFZLFdBQVcsV0FBVyxhQUFhLGNBQWMscUJBQW9CO0FBQ25HLFNBQVEsZ0JBQWU7QUFDdkIsT0FBTyxhQUFhO0FBQ3BCLE9BQU8sU0FBUztBQUNoQixTQUFRLFlBQVksY0FBYyxRQUFRLFVBQVUsWUFBWSxjQUFjLFdBQVcsbUJBQWtCO0FBQzNHLFNBQVEsa0JBQWlCO0FBRXpCLFNBQVEsV0FBVTtBQUlYLE1BQU0sTUFBYyxRQUFRLElBQUk7QUFrQmhDLE1BQU0sZUFBZSxDQUFDLFVBQXFEO0FBQ2hGLFFBQU0sRUFBQyxVQUFVLFNBQVMsTUFBTSxPQUFPLE1BQU0sY0FBYSxJQUFJO0FBRzlELE1BQUk7QUFDSixRQUFNLFlBQXNCLENBQUMsVUFBVSxPQUFPO0FBRTlDLE1BQUcsQ0FBQyxNQUFNO0FBQ1IsUUFBRyxVQUFVLFNBQVMsSUFBSSxHQUFHO0FBQzNCLFVBQUk7QUFBQSxFQUFLLE9BQU8sV0FBVyxJQUFJLHVEQUF1RCxTQUFTLEtBQUs7QUFDcEcsYUFBTyxXQUFXLENBQUM7QUFBQSxJQUNyQjtBQUFBLEVBQ0YsT0FBTztBQUNMLGVBQVcsR0FBRyxLQUFLLE9BQU8sQ0FBQyxFQUFFLFlBQVksQ0FBQyxHQUFHLEtBQUssT0FB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
|
|
267
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2FwcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBib3hlbiBmcm9tICdib3hlbic7XG5pbXBvcnQge2NvcHlGaWxlLCBleGlzdHNTeW5jLCBsc3RhdFN5bmMsIG1rZGlyU3luYywgcmVhZGRpclN5bmMsIHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnZnMnO1xuaW1wb3J0IHtnbG9iU3luY30gZnJvbSAnZ2xvYic7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eS5qcyc7XG5pbXBvcnQgb3JhIGZyb20gJ29yYSc7XG5pbXBvcnQge2Jhc2VuYW1lIGFzIHBhdGhCYXNlbmFtZSwgam9pbiBhcyBwYXRoSm9pbiwgcmVsYXRpdmUgYXMgcGF0aFJlbGF0aXZlLCByZXNvbHZlIGFzIHBhdGhSZXNvbHZlfSBmcm9tICdwYXRoJztcbmltcG9ydCB7cmltcmFmU3luY30gZnJvbSAncmltcmFmJztcblxuaW1wb3J0IHtsb2d9IGZyb20gJy4vbG9nLmpzJztcblxuaW1wb3J0IHR5cGUge0xleENvbmZpZ1R5cGV9IGZyb20gJy4uL0xleENvbmZpZy5qcyc7XG5cbmV4cG9ydCBjb25zdCBjd2Q6IHN0cmluZyA9IHByb2Nlc3MuY3dkKCk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0RmlsZW5hbWVzUHJvcHMge1xuICByZWFkb25seSBjYWxsYmFjaz86IChzdGF0dXM6IG51bWJlcikgPT4gdm9pZDtcbiAgcmVhZG9ubHkgY2xpTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgcXVpZXQ/OiBib29sZWFuO1xuICByZWFkb25seSB0eXBlPzogc3RyaW5nO1xuICByZWFkb25seSB1c2VUeXBlc2NyaXB0PzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIEZpbGVuYW1lc1Jlc3VsdCB7XG4gIG5hbWVDYXBzOiBzdHJpbmc7XG4gIHRlbXBsYXRlRXh0OiBzdHJpbmc7XG4gIHRlbXBsYXRlUGF0aDogc3RyaW5nO1xuICB0ZW1wbGF0ZVJlYWN0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRGaWxlbmFtZXMgPSAocHJvcHM6IEdldEZpbGVuYW1lc1Byb3BzKTogRmlsZW5hbWVzUmVzdWx0IHwgdm9pZCA9PiB7XG4gIGNvbnN0IHtjYWxsYmFjaywgY2xpTmFtZSwgbmFtZSwgcXVpZXQsIHR5cGUsIHVzZVR5cGVzY3JpcHR9ID0gcHJvcHM7XG5cbiAgbGV0IG5hbWVDYXBzOiBzdHJpbmc7XG4gIGNvbnN0IGl0ZW1UeXBlczogc3RyaW5nW10gPSBbJ3N0b3JlcycsICd2aWV3cyddO1xuXG4gIGlmKCFuYW1lKSB7XG4gICAgaWYoaXRlbVR5cGVzLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6ICR7dHlwZX0gbmFtZSBpcyByZXF1aXJlZC4gUGxlYXNlIHVzZSAnbGV4IC1oJyBmb3Igb3B0aW9ucy5gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICByZXR1cm4gY2FsbGJhY2s/LigxKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbmFtZUNhcHMgPSBgJHtuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7bmFtZS5zdWJzdHIoMSl9YDtcbiAgfVxuXG4gIGxvZyhgJHtjbGlOYW1lfSBhZGRpbmcgJHtuYW1lfSAke3R5cGV9Li4uYCwgJ2luZm8nLCBxdWlldCk7XG5cbiAgbGV0IHRlbXBsYXRlUGF0aDogc3RyaW5nO1xuICBsZXQgdGVtcGxhdGVFeHQ6IHN0cmluZztcbiAgbGV0IHRlbXBsYXRlUmVhY3Q6IHN0cmluZztcblxuICBpZih1c2VUeXBlc2NyaXB0KSB7XG4gICAgdGVtcGxhdGVQYXRoID0gJy4uLy4uL3RlbXBsYXRlcy90eXBlc2NyaXB0JztcbiAgICB0ZW1wbGF0ZUV4dCA9ICcudHMnO1xuICAgIHRlbXBsYXRlUmVhY3QgPSAnLnRzeCc7XG4gIH0gZWxzZSB7XG4gICAgdGVtcGxhdGVQYXRoID0gJy4uLy4uL3RlbXBsYXRlcy9mbG93JztcbiAgICB0ZW1wbGF0ZUV4dCA9ICcuanMnO1xuICAgIHRlbXBsYXRlUmVhY3QgPSAnLmpzJztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZUNhcHMsXG4gICAgdGVtcGxhdGVFeHQsXG4gICAgdGVtcGxhdGVQYXRoLFxuICAgIHRlbXBsYXRlUmVhY3RcbiAgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3Bpbm5lciB7XG4gIGZhaWw6ICh0ZXh0Pzogc3RyaW5nKSA9PiB2b2lkO1xuICBzdGFydDogKHRleHQ/OiBzdHJpbmcpID0+IHZvaWQ7XG4gIHN1Y2NlZWQ6ICh0ZXh0Pzogc3RyaW5nKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlU3Bpbm5lciA9IChxdWlldCA9IGZhbHNlKTogU3Bpbm5lciA9PiB7XG4gIGlmKHF1aWV0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZhaWw6ICgpID0+IHt9LFxuICAgICAgc3RhcnQ6ICgpID0+IHt9LFxuICAgICAgc3VjY2VlZDogKCkgPT4ge31cbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIG9yYSh7Y29sb3I6ICd5ZWxsb3cnfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY29weUZpbGVzID0gYXN5bmMgKGZpbGVzOiBzdHJpbmdbXSwgdHlwZU5hbWU6IHN0cmluZywgc3Bpbm5lciwgY29uZmlnOiBMZXhDb25maWdUeXBlKSA9PiB7XG4gIGNvbnN0IHtvdXRwdXRGdWxsUGF0aCwgc291cmNlRnVsbFBhdGh9ID0gY29uZmlnO1xuICBjb25zdCBpdGVtcyA9IGZpbGVzLm1hcCgoZmlsZU5hbWU6IHN0cmluZykgPT4gKHtcbiAgICBmcm9tOiBmaWxlTmFtZSxcbiAgICB0bzogcGF0aFJlc29sdmUob3V0cHV0RnVsbFBhdGgsIHBhdGhSZWxhdGl2ZShzb3VyY2VGdWxsUGF0aCwgZmlsZU5hbWUpKVxuICB9KSk7XG5cbiAgdHJ5IHtcbiAgICBzcGlubmVyLnN0YXJ0KGBDb3B5aW5nICR7dHlwZU5hbWV9IGZpbGVzLi4uYCk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoaXRlbXMubWFwKCh7ZnJvbSwgdG99KSA9PiBuZXcgUHJvbWlzZShcbiAgICAgIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgbWtkaXJTeW5jKHBhdGhSZXNvbHZlKHRvLCAnLi4nKSwge3JlY3Vyc2l2ZTogdHJ1ZX0pO1xuICAgICAgICByZXR1cm4gY29weUZpbGUoZnJvbSwgdG8sIChjb3B5RXJyb3IpID0+IHtcbiAgICAgICAgICBpZihjb3B5RXJyb3IpIHtcbiAgICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgKSkpO1xuICAgIHNwaW5uZXIuc3VjY2VlZChgU3VjY2Vzc2Z1bGx5IGNvcGllZCAke2ZpbGVzLmxlbmd0aH0gJHt0eXBlTmFtZX0gZmlsZXMhYCk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBzcGlubmVyLmZhaWwoYENvcHlpbmcgb2YgJHt0eXBlTmFtZX0gZmlsZXMgZmFpbGVkLmApO1xuICAgIGxvZyhgRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InKTtcbiAgICBsb2coZXJyb3IsICdlcnJvcicpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY29weUNvbmZpZ3VyZWRGaWxlcyA9IGFzeW5jIChzcGlubmVyLCBjb25maWc6IExleENvbmZpZ1R5cGUsIHF1aWV0OiBib29sZWFuKSA9PiB7XG4gIGNvbnN0IHtjb3B5RmlsZXM6IGNvcHlGaWxlc0NvbmZpZywgb3V0cHV0RnVsbFBhdGgsIHNvdXJjZUZ1bGxQYXRoLCBzb3VyY2VQYXRofSA9IGNvbmZpZztcbiAgaWYgKCFjb3B5RmlsZXNDb25maWcgfHwgY29weUZpbGVzQ29uZmlnLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHRyeSB7XG4gICAgc3Bpbm5lci5zdGFydCgnQ29weWluZyBjb25maWd1cmVkIGZpbGVzLi4uJyk7XG4gICAgbGV0IHRvdGFsQ29waWVkID0gMDtcblxuICAgIGNvbnN0IGJhc2VEaXIgPSBzb3VyY2VGdWxsUGF0aCB8fCAoc291cmNlUGF0aCA/IHBhdGhSZXNvbHZlKGN3ZCwgc291cmNlUGF0aCkgOiBjd2QpO1xuXG4gICAgZm9yIChjb25zdCBwYXR0ZXJuIG9mIGNvcHlGaWxlc0NvbmZpZykge1xuICAgICAgY29uc3QgcmVzb2x2ZWRQYXR0ZXJuID0gcGF0aFJlc29sdmUoYmFzZURpciwgcGF0dGVybik7XG4gICAgICBjb25zdCBtYXRjaGluZ0ZpbGVzID0gZ2xvYlN5bmMocmVzb2x2ZWRQYXR0ZXJuLCB7XG4gICAgICAgIG5vZGlyOiB0cnVlLFxuICAgICAgICBhYnNvbHV0ZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgICBpZiAobWF0Y2hpbmdGaWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgaWYgKCFxdWlldCkge1xuICAgICAgICAgIGxvZyhgV2FybmluZzogTm8gZmlsZXMgZm91bmQgbWF0Y2hpbmcgcGF0dGVybjogJHtwYXR0ZXJufWAsICd3YXJuJywgcXVpZXQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IHNvdXJjZUZpbGUgb2YgbWF0Y2hpbmdGaWxlcykge1xuICAgICAgICAvLyBDYWxjdWxhdGUgcmVsYXRpdmUgcGF0aCBmcm9tIHNvdXJjZSBkaXJlY3RvcnlcbiAgICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gcGF0aFJlbGF0aXZlKGJhc2VEaXIsIHNvdXJjZUZpbGUpO1xuICAgICAgICAvLyBEZXRlcm1pbmUgZGVzdGluYXRpb24gcGF0aCBpbiBvdXRwdXQgZGlyZWN0b3J5XG4gICAgICAgIGNvbnN0IGRlc3RQYXRoID0gcGF0aFJlc29sdmUob3V0cHV0RnVsbFBhdGgsIHJlbGF0aXZlUGF0aCk7XG4gICAgICAgIC8vIENyZWF0ZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgICAgICBjb25zdCBkZXN0RGlyID0gcGF0aFJlc29sdmUoZGVzdFBhdGgsICcuLicpO1xuICAgICAgICBta2RpclN5bmMoZGVzdERpciwge3JlY3Vyc2l2ZTogdHJ1ZX0pO1xuXG4gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICBjb3B5RmlsZShzb3VyY2VGaWxlLCBkZXN0UGF0aCwgKGNvcHlFcnJvcikgPT4ge1xuICAgICAgICAgICAgaWYgKGNvcHlFcnJvcikge1xuICAgICAgICAgICAgICByZWplY3QoY29weUVycm9yKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0b3RhbENvcGllZCsrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodG90YWxDb3BpZWQgPiAwKSB7XG4gICAgICBzcGlubmVyLnN1Y2NlZWQoYFN1Y2Nlc3NmdWxseSBjb3BpZWQgJHt0b3RhbENvcGllZH0gY29uZmlndXJlZCBmaWxlcyFgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3Bpbm5lci5zdWNjZWVkKCdObyBjb25maWd1cmVkIGZpbGVzIHRvIGNvcHknKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgc3Bpbm5lci5mYWlsKCdGYWlsZWQgdG8gY29weSBjb25maWd1cmVkIGZpbGVzJyk7XG4gICAgbG9nKGBFcnJvciBjb3B5aW5nIGNvbmZpZ3VyZWQgZmlsZXM6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBjb3B5RmlsZVN5bmMgPSAoc291cmNlOiBzdHJpbmcsIHRhcmdldDogc3RyaW5nKSA9PiB7XG4gIGxldCB0YXJnZXRGaWxlOiBzdHJpbmcgPSB0YXJnZXQ7XG5cbiAgaWYoZXhpc3RzU3luYyh0YXJnZXQpKSB7XG4gICAgaWYobHN0YXRTeW5jKHRhcmdldCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgdGFyZ2V0RmlsZSA9IHBhdGhKb2luKHRhcmdldCwgcGF0aEJhc2VuYW1lKHNvdXJjZSkpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlRmlsZVN5bmModGFyZ2V0RmlsZSwgcmVhZEZpbGVTeW5jKHNvdXJjZSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jID0gKHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZyk6IHZvaWQgPT4ge1xuICBsZXQgZmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3QgdGFyZ2V0Rm9sZGVyOiBzdHJpbmcgPSBwYXRoSm9pbih0YXJnZXQsIHBhdGhCYXNlbmFtZShzb3VyY2UpKTtcblxuICBpZighZXhpc3RzU3luYyh0YXJnZXRGb2xkZXIpKSB7XG4gICAgbWtkaXJTeW5jKHRhcmdldEZvbGRlcik7XG4gIH1cblxuICBpZihsc3RhdFN5bmMoc291cmNlKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgZmlsZXMgPSByZWFkZGlyU3luYyhzb3VyY2UpO1xuICAgIGZpbGVzLmZvckVhY2goKGZpbGU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgY3VyU291cmNlOiBzdHJpbmcgPSBwYXRoSm9pbihzb3VyY2UsIGZpbGUpO1xuXG4gICAgICBpZihsc3RhdFN5bmMoY3VyU291cmNlKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgIGNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jKGN1clNvdXJjZSwgdGFyZ2V0Rm9sZGVyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvcHlGaWxlU3luYyhjdXJTb3VyY2UsIHRhcmdldEZvbGRlcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRQYWNrYWdlSnNvbiA9IChwYWNrYWdlUGF0aD86IHN0cmluZykgPT4ge1xuICBjb25zdCBmb3JtYXRQYXRoOiBzdHJpbmcgPSBwYWNrYWdlUGF0aCB8fCBgJHtwcm9jZXNzLmN3ZCgpfS9wYWNrYWdlLmpzb25gO1xuXG4gIGNvbnN0IHBhY2thZ2VEYXRhOiBzdHJpbmcgPSByZWFkRmlsZVN5bmMoZm9ybWF0UGF0aCkudG9TdHJpbmcoKTtcbiAgcmV0dXJuIEpTT04ucGFyc2UocGFja2FnZURhdGEpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZpbGVzQnlFeHQgPSAoZXh0OiBzdHJpbmcsIGNvbmZpZzogTGV4Q29uZmlnVHlwZSk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3Qge3NvdXJjZUZ1bGxQYXRofSA9IGNvbmZpZztcbiAgcmV0dXJuIGdsb2JTeW5jKGAke3NvdXJjZUZ1bGxQYXRofS8qKi8qKiR7ZXh0fWApO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUNvbmZsaWN0TW9kdWxlcyA9IChtb2R1bGVMaXN0OiBvYmplY3QpID0+IHtcbiAgY29uc3QgdXBkYXRlZExpc3Q6IG9iamVjdCA9IHsuLi5tb2R1bGVMaXN0fTtcblxuICBPYmplY3Qua2V5cyh1cGRhdGVkTGlzdCkuZm9yRWFjaCgobW9kdWxlTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcmVnZXg6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoJ14oPyFAdHlwZXMvKS4qPyhqZXN0fHdlYnBhY2spLiokJywgJ2dpJyk7XG4gICAgaWYocmVnZXgudGVzdChtb2R1bGVOYW1lKSkge1xuICAgICAgZGVsZXRlIHVwZGF0ZWRMaXN0W21vZHVsZU5hbWVdO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHVwZGF0ZWRMaXN0O1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUZpbGVzID0gKGZpbGVOYW1lOiBzdHJpbmcsIGlzUmVsYXRpdmU6IGJvb2xlYW4gPSBmYWxzZSkgPT4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICBjb25zdCBmaWxlUGF0aDogc3RyaW5nID0gaXNSZWxhdGl2ZSA/IHBhdGhSZXNvbHZlKGN3ZCwgZmlsZU5hbWUpIDogZmlsZU5hbWU7XG4gIHRyeSB7XG4gICAgcmltcmFmU3luYyhmaWxlUGF0aCk7XG4gICAgcmV0dXJuIHJlc29sdmUobnVsbCk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCByZW1vdmVNb2R1bGVzID0gKCkgPT4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICB0cnkge1xuICAgIC8vIFJlbW92ZSBub2RlX21vZHVsZXNcbiAgICBhd2FpdCByZW1vdmVGaWxlcygnLi9ub2RlX21vZHVsZXMnLCB0cnVlKTtcblxuICAgIC8vIFJlbW92ZSB5YXJuIGxvY2tcbiAgICBhd2FpdCByZW1vdmVGaWxlcygnLi95YXJuLmxvY2snLCB0cnVlKTtcblxuICAgIC8vIFJlbW92ZSBucG0gbG9ja1xuICAgIGF3YWl0IHJlbW92ZUZpbGVzKCcuL3BhY2thZ2UtbG9jay5qc29uJywgdHJ1ZSk7XG5cbiAgICByZXNvbHZlKG51bGwpO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgcmVqZWN0KGVycm9yKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCBzZXRQYWNrYWdlSnNvbiA9IChqc29uLCBwYWNrYWdlUGF0aD86IHN0cmluZykgPT4ge1xuICBpZighanNvbikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGZvcm1hdFBhdGg6IHN0cmluZyA9IHBhY2thZ2VQYXRoIHx8IGAke3Byb2Nlc3MuY3dkKCl9L3BhY2thZ2UuanNvbmA7XG5cbiAgd3JpdGVGaWxlU3luYyhmb3JtYXRQYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKSk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExpbmtlZE1vZHVsZVR5cGUge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGxpbmtlZE1vZHVsZXMgPSAoc3RhcnRQYXRoPzogc3RyaW5nKTogTGlua2VkTW9kdWxlVHlwZVtdID0+IHtcbiAgY29uc3Qgd29ya2luZ1BhdGg6IHN0cmluZyA9IHN0YXJ0UGF0aCB8fCBwcm9jZXNzLmN3ZCgpO1xuICBsZXQgbW9kdWxlUGF0aDogc3RyaW5nO1xuICBsZXQgcHJlZml4OiBzdHJpbmc7XG5cbiAgaWYod29ya2luZ1BhdGguaW5jbHVkZXMoJ0AnKSkge1xuICAgIHByZWZpeCA9IGBAJHt3b3JraW5nUGF0aC5zcGxpdCgnQCcpLnBvcCgpfWA7XG4gICAgbW9kdWxlUGF0aCA9IHdvcmtpbmdQYXRoO1xuICB9IGVsc2Uge1xuICAgIG1vZHVsZVBhdGggPSBwYXRoSm9pbih3b3JraW5nUGF0aCwgJ25vZGVfbW9kdWxlcycpO1xuICB9XG5cbiAgY29uc3QgZm91bmRQYXRoczogc3RyaW5nW10gPSBnbG9iU3luYyhgJHttb2R1bGVQYXRofS8qYCk7XG4gIHJldHVybiBmb3VuZFBhdGhzLnJlZHVjZSgobGlzdDogTGlua2VkTW9kdWxlVHlwZVtdLCBmb3VuZFBhdGg6IHN0cmluZykgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGF0cyA9IGxzdGF0U3luYyhmb3VuZFBhdGgpO1xuXG4gICAgICBpZihzdGF0cy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgIGNvbnN0IGRlZXBMaXN0OiBMaW5rZWRNb2R1bGVUeXBlW10gPSBsaW5rZWRNb2R1bGVzKGZvdW5kUGF0aCk7XG4gICAgICAgIGxpc3QucHVzaCguLi5kZWVwTGlzdCk7XG4gICAgICB9IGVsc2UgaWYoc3RhdHMuaXNTeW1ib2xpY0xpbmsoKSkge1xuICAgICAgICBjb25zdCBtb2R1bGVOYW1lczogc3RyaW5nW10gPSAoW3ByZWZpeCwgcGF0aEJhc2VuYW1lKGZvdW5kUGF0aCldKS5maWx0ZXIoKGl0ZW06IHN0cmluZykgPT4gIWlzRW1wdHkoaXRlbSkpO1xuICAgICAgICBsaXN0LnB1c2goe25hbWU6IGAke21vZHVsZU5hbWVzLmpvaW4oJy8nKX1gLCBwYXRoOiBmb3VuZFBhdGh9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSBjYXRjaChmc0Vycm9yKSB7XG4gICAgICB0aHJvdyBmc0Vycm9yO1xuICAgIH1cbiAgfSwgW10pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNoZWNrTGlua2VkTW9kdWxlcyA9ICgpID0+IHtcbiAgY29uc3QgbGlua2VkID0gbGlua2VkTW9kdWxlcygpO1xuXG4gIGlmKGxpbmtlZC5sZW5ndGgpIHtcbiAgICBjb25zdCBtc2dNb2R1bGU6IHN0cmluZyA9IGxpbmtlZC5sZW5ndGggPiAxID8gJ01vZHVsZXMnIDogJ01vZHVsZSc7XG4gICAgY29uc3QgbGlua2VkTXNnOiBzdHJpbmcgPSBsaW5rZWQucmVkdWNlKFxuICAgICAgKG1zZzogc3RyaW5nLCBsaW5rZWRNb2R1bGU6IExpbmtlZE1vZHVsZVR5cGUpID0+XG4gICAgICAgIGAke21zZ31cXG4gKiAke2xpbmtlZE1vZHVsZS5uYW1lfWAsXG4gICAgICBgTGlua2VkICR7bXNnTW9kdWxlfTpgXG4gICAgKTtcbiAgICBsb2coYm94ZW4obGlua2VkTXNnLCB7ZGltQm9yZGVyOiB0cnVlLCBwYWRkaW5nOiAxfSksICd3YXJuJyk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVUZW1wbGF0ZU5hbWUgPSAoZmlsZVBhdGg6IHN0cmluZywgcmVwbGFjZTogc3RyaW5nLCByZXBsYWNlQ2Fwczogc3RyaW5nKSA9PiB7XG4gIGxldCBkYXRhOiBzdHJpbmcgPSByZWFkRmlsZVN5bmMoZmlsZVBhdGgsICd1dGY4Jyk7XG4gIGRhdGEgPSBkYXRhLnJlcGxhY2UoL3NhbXBsZS9nLCByZXBsYWNlKTtcbiAgZGF0YSA9IGRhdGEucmVwbGFjZSgvU2FtcGxlL2csIHJlcGxhY2VDYXBzKTtcbiAgd3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgZGF0YSwgJ3V0ZjgnKTtcbn07Il0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBTyxXQUFXO0FBQ2xCLFNBQVEsVUFBVSxZQUFZLFdBQVcsV0FBVyxhQUFhLGNBQWMscUJBQW9CO0FBQ25HLFNBQVEsZ0JBQWU7QUFDdkIsT0FBTyxhQUFhO0FBQ3BCLE9BQU8sU0FBUztBQUNoQixTQUFRLFlBQVksY0FBYyxRQUFRLFVBQVUsWUFBWSxjQUFjLFdBQVcsbUJBQWtCO0FBQzNHLFNBQVEsa0JBQWlCO0FBRXpCLFNBQVEsV0FBVTtBQUlYLE1BQU0sTUFBYyxRQUFRLElBQUk7QUFrQmhDLE1BQU0sZUFBZSxDQUFDLFVBQXFEO0FBQ2hGLFFBQU0sRUFBQyxVQUFVLFNBQVMsTUFBTSxPQUFPLE1BQU0sY0FBYSxJQUFJO0FBRTlELE1BQUk7QUFDSixRQUFNLFlBQXNCLENBQUMsVUFBVSxPQUFPO0FBRTlDLE1BQUcsQ0FBQyxNQUFNO0FBQ1IsUUFBRyxVQUFVLFNBQVMsSUFBSSxHQUFHO0FBQzNCLFVBQUk7QUFBQSxFQUFLLE9BQU8sV0FBVyxJQUFJLHVEQUF1RCxTQUFTLEtBQUs7QUFDcEcsYUFBTyxXQUFXLENBQUM7QUFBQSxJQUNyQjtBQUFBLEVBQ0YsT0FBTztBQUNMLGVBQVcsR0FBRyxLQUFLLE9BQU8sQ0FBQyxFQUFFLFlBQVksQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDLENBQUM7QUFBQSxFQUM3RDtBQUVBLE1BQUksR0FBRyxPQUFPLFdBQVcsSUFBSSxJQUFJLElBQUksT0FBTyxRQUFRLEtBQUs7QUFFekQsTUFBSTtBQUNKLE1BQUk7QUFDSixNQUFJO0FBRUosTUFBRyxlQUFlO0FBQ2hCLG1CQUFlO0FBQ2Ysa0JBQWM7QUFDZCxvQkFBZ0I7QUFBQSxFQUNsQixPQUFPO0FBQ0wsbUJBQWU7QUFDZixrQkFBYztBQUNkLG9CQUFnQjtBQUFBLEVBQ2xCO0FBRUEsU0FBTztBQUFBLElBQ0w7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGO0FBQ0Y7QUFRTyxNQUFNLGdCQUFnQixDQUFDLFFBQVEsVUFBbUI7QUFDdkQsTUFBRyxPQUFPO0FBQ1IsV0FBTztBQUFBLE1BQ0wsTUFBTSxNQUFNO0FBQUEsTUFBQztBQUFBLE1BQ2IsT0FBTyxNQUFNO0FBQUEsTUFBQztBQUFBLE1BQ2QsU0FBUyxNQUFNO0FBQUEsTUFBQztBQUFBLElBQ2xCO0FBQUEsRUFDRjtBQUVBLFNBQU8sSUFBSSxFQUFDLE9BQU8sU0FBUSxDQUFDO0FBQzlCO0FBRU8sTUFBTSxZQUFZLE9BQU8sT0FBaUIsVUFBa0IsU0FBUyxXQUEwQjtBQUNwRyxRQUFNLEVBQUMsZ0JBQWdCLGVBQWMsSUFBSTtBQUN6QyxRQUFNLFFBQVEsTUFBTSxJQUFJLENBQUMsY0FBc0I7QUFBQSxJQUM3QyxNQUFNO0FBQUEsSUFDTixJQUFJLFlBQVksZ0JBQWdCLGFBQWEsZ0JBQWdCLFFBQVEsQ0FBQztBQUFBLEVBQ3hFLEVBQUU7QUFFRixNQUFJO0FBQ0YsWUFBUSxNQUFNLFdBQVcsUUFBUSxXQUFXO0FBQzVDLFVBQU0sUUFBUSxJQUFJLE1BQU0sSUFBSSxDQUFDLEVBQUMsTUFBTSxHQUFFLE1BQU0sSUFBSTtBQUFBLE1BQzlDLENBQUMsU0FBUyxXQUFXO0FBQ25CLGtCQUFVLFlBQVksSUFBSSxJQUFJLEdBQUcsRUFBQyxXQUFXLEtBQUksQ0FBQztBQUNsRCxlQUFPLFNBQVMsTUFBTSxJQUFJLENBQUMsY0FBYztBQUN2QyxjQUFHLFdBQVc7QUFDWixtQkFBTztBQUFBLFVBQ1QsT0FBTztBQUNMLG9CQUFRLElBQUk7QUFBQSxVQUNkO0FBQUEsUUFDRixDQUFDO0FBQUEsTUFDSDtBQUFBLElBQ0YsQ0FBQyxDQUFDO0FBQ0YsWUFBUSxRQUFRLHVCQUF1QixNQUFNLE1BQU0sSUFBSSxRQUFRLFNBQVM7QUFBQSxFQUMxRSxTQUFRLE9BQU87QUFDYixZQUFRLEtBQUssY0FBYyxRQUFRLGdCQUFnQjtBQUNuRCxRQUFJLFVBQVUsTUFBTSxPQUFPLElBQUksT0FBTztBQUN0QyxRQUFJLE9BQU8sT0FBTztBQUFBLEVBQ3BCO0FBQ0Y7QUFFTyxNQUFNLHNCQUFzQixPQUFPLFNBQVMsUUFBdUIsVUFBbUI7QUFDM0YsUUFBTSxFQUFDLFdBQVcsaUJBQWlCLGdCQUFnQixnQkFBZ0IsV0FBVSxJQUFJO0FBQ2pGLE1BQUksQ0FBQyxtQkFBbUIsZ0JBQWdCLFdBQVcsR0FBRztBQUNwRDtBQUFBLEVBQ0Y7QUFFQSxNQUFJO0FBQ0YsWUFBUSxNQUFNLDZCQUE2QjtBQUMzQyxRQUFJLGNBQWM7QUFFbEIsVUFBTSxVQUFVLG1CQUFtQixhQUFhLFlBQVksS0FBSyxVQUFVLElBQUk7QUFFL0UsZUFBVyxXQUFXLGlCQUFpQjtBQUNyQyxZQUFNLGtCQUFrQixZQUFZLFNBQVMsT0FBTztBQUNwRCxZQUFNLGdCQUFnQixTQUFTLGlCQUFpQjtBQUFBLFFBQzlDLE9BQU87QUFBQSxRQUNQLFVBQVU7QUFBQSxNQUNaLENBQUM7QUFDRCxVQUFJLGNBQWMsV0FBVyxHQUFHO0FBQzlCLFlBQUksQ0FBQyxPQUFPO0FBQ1YsY0FBSSw2Q0FBNkMsT0FBTyxJQUFJLFFBQVEsS0FBSztBQUFBLFFBQzNFO0FBQ0E7QUFBQSxNQUNGO0FBRUEsaUJBQVcsY0FBYyxlQUFlO0FBRXRDLGNBQU0sZUFBZSxhQUFhLFNBQVMsVUFBVTtBQUVyRCxjQUFNLFdBQVcsWUFBWSxnQkFBZ0IsWUFBWTtBQUV6RCxjQUFNLFVBQVUsWUFBWSxVQUFVLElBQUk7QUFDMUMsa0JBQVUsU0FBUyxFQUFDLFdBQVcsS0FBSSxDQUFDO0FBRXBDLGNBQU0sSUFBSSxRQUFRLENBQUMsU0FBUyxXQUFXO0FBQ3JDLG1CQUFTLFlBQVksVUFBVSxDQUFDLGNBQWM7QUFDNUMsZ0JBQUksV0FBVztBQUNiLHFCQUFPLFNBQVM7QUFBQSxZQUNsQixPQUFPO0FBQ0wsc0JBQVEsSUFBSTtBQUFBLFlBQ2Q7QUFBQSxVQUNGLENBQUM7QUFBQSxRQUNILENBQUM7QUFDRDtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQ0EsUUFBSSxjQUFjLEdBQUc7QUFDbkIsY0FBUSxRQUFRLHVCQUF1QixXQUFXLG9CQUFvQjtBQUFBLElBQ3hFLE9BQU87QUFDTCxjQUFRLFFBQVEsNkJBQTZCO0FBQUEsSUFDL0M7QUFBQSxFQUNGLFNBQVMsT0FBTztBQUNkLFlBQVEsS0FBSyxpQ0FBaUM7QUFDOUMsUUFBSSxtQ0FBbUMsTUFBTSxPQUFPLElBQUksU0FBUyxLQUFLO0FBQ3RFLFVBQU07QUFBQSxFQUNSO0FBQ0Y7QUFFTyxNQUFNLGVBQWUsQ0FBQyxRQUFnQixXQUFtQjtBQUM5RCxNQUFJLGFBQXFCO0FBRXpCLE1BQUcsV0FBVyxNQUFNLEdBQUc7QUFDckIsUUFBRyxVQUFVLE1BQU0sRUFBRSxZQUFZLEdBQUc7QUFDbEMsbUJBQWEsU0FBUyxRQUFRLGFBQWEsTUFBTSxDQUFDO0FBQUEsSUFDcEQ7QUFBQSxFQUNGO0FBRUEsZ0JBQWMsWUFBWSxhQUFhLE1BQU0sQ0FBQztBQUNoRDtBQUVPLE1BQU0sMEJBQTBCLENBQUMsUUFBZ0IsV0FBeUI7QUFDL0UsTUFBSSxRQUFrQixDQUFDO0FBRXZCLFFBQU0sZUFBdUIsU0FBUyxRQUFRLGFBQWEsTUFBTSxDQUFDO0FBRWxFLE1BQUcsQ0FBQyxXQUFXLFlBQVksR0FBRztBQUM1QixjQUFVLFlBQVk7QUFBQSxFQUN4QjtBQUVBLE1BQUcsVUFBVSxNQUFNLEVBQUUsWUFBWSxHQUFHO0FBQ2xDLFlBQVEsWUFBWSxNQUFNO0FBQzFCLFVBQU0sUUFBUSxDQUFDLFNBQWlCO0FBQzlCLFlBQU0sWUFBb0IsU0FBUyxRQUFRLElBQUk7QUFFL0MsVUFBRyxVQUFVLFNBQVMsRUFBRSxZQUFZLEdBQUc7QUFDckMsZ0NBQXdCLFdBQVcsWUFBWTtBQUFBLE1BQ2pELE9BQU87QUFDTCxxQkFBYSxXQUFXLFlBQVk7QUFBQSxNQUN0QztBQUFBLElBQ0YsQ0FBQztBQUFBLEVBQ0g7QUFDRjtBQUVPLE1BQU0saUJBQWlCLENBQUMsZ0JBQXlCO0FBQ3RELFFBQU0sYUFBcUIsZUFBZSxHQUFHLFFBQVEsSUFBSSxDQUFDO0FBRTFELFFBQU0sY0FBc0IsYUFBYSxVQUFVLEVBQUUsU0FBUztBQUM5RCxTQUFPLEtBQUssTUFBTSxXQUFXO0FBQy9CO0FBRU8sTUFBTSxnQkFBZ0IsQ0FBQyxLQUFhLFdBQW9DO0FBQzdFLFFBQU0sRUFBQyxlQUFjLElBQUk7QUFDekIsU0FBTyxTQUFTLEdBQUcsY0FBYyxTQUFTLEdBQUcsRUFBRTtBQUNqRDtBQUVPLE1BQU0sd0JBQXdCLENBQUMsZUFBdUI7QUFDM0QsUUFBTSxjQUFzQixFQUFDLEdBQUcsV0FBVTtBQUUxQyxTQUFPLEtBQUssV0FBVyxFQUFFLFFBQVEsQ0FBQyxlQUF1QjtBQUN2RCxVQUFNLFFBQWdCLElBQUksT0FBTyxvQ0FBb0MsSUFBSTtBQUN6RSxRQUFHLE1BQU0sS0FBSyxVQUFVLEdBQUc7QUFDekIsYUFBTyxZQUFZLFVBQVU7QUFBQSxJQUMvQjtBQUFBLEVBQ0YsQ0FBQztBQUVELFNBQU87QUFDVDtBQUVPLE1BQU0sY0FBYyxDQUFDLFVBQWtCLGFBQXNCLFVBQVUsSUFBSSxRQUFRLENBQUMsU0FBUyxXQUFXO0FBQzdHLFFBQU0sV0FBbUIsYUFBYSxZQUFZLEtBQUssUUFBUSxJQUFJO0FBQ25FLE1BQUk7QUFDRixlQUFXLFFBQVE7QUFDbkIsV0FBTyxRQUFRLElBQUk7QUFBQSxFQUNyQixTQUFRLE9BQU87QUFDYixXQUFPLE9BQU8sS0FBSztBQUFBLEVBQ3JCO0FBQ0YsQ0FBQztBQUVNLE1BQU0sZ0JBQWdCLE1BQU0sSUFBSSxRQUFRLE9BQU8sU0FBUyxXQUFXO0FBQ3hFLE1BQUk7QUFFRixVQUFNLFlBQVksa0JBQWtCLElBQUk7QUFHeEMsVUFBTSxZQUFZLGVBQWUsSUFBSTtBQUdyQyxVQUFNLFlBQVksdUJBQXVCLElBQUk7QUFFN0MsWUFBUSxJQUFJO0FBQUEsRUFDZCxTQUFRLE9BQU87QUFDYixXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQ0YsQ0FBQztBQUVNLE1BQU0saUJBQWlCLENBQUMsTUFBTSxnQkFBeUI7QUFDNUQsTUFBRyxDQUFDLE1BQU07QUFDUjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLGFBQXFCLGVBQWUsR0FBRyxRQUFRLElBQUksQ0FBQztBQUUxRCxnQkFBYyxZQUFZLEtBQUssVUFBVSxNQUFNLE1BQU0sQ0FBQyxDQUFDO0FBQ3pEO0FBT08sTUFBTSxnQkFBZ0IsQ0FBQyxjQUEyQztBQUN2RSxRQUFNLGNBQXNCLGFBQWEsUUFBUSxJQUFJO0FBQ3JELE1BQUk7QUFDSixNQUFJO0FBRUosTUFBRyxZQUFZLFNBQVMsR0FBRyxHQUFHO0FBQzVCLGFBQVMsSUFBSSxZQUFZLE1BQU0sR0FBRyxFQUFFLElBQUksQ0FBQztBQUN6QyxpQkFBYTtBQUFBLEVBQ2YsT0FBTztBQUNMLGlCQUFhLFNBQVMsYUFBYSxjQUFjO0FBQUEsRUFDbkQ7QUFFQSxRQUFNLGFBQXVCLFNBQVMsR0FBRyxVQUFVLElBQUk7QUFDdkQsU0FBTyxXQUFXLE9BQU8sQ0FBQyxNQUEwQixjQUFzQjtBQUN4RSxRQUFJO0FBQ0YsWUFBTSxRQUFRLFVBQVUsU0FBUztBQUVqQyxVQUFHLE1BQU0sWUFBWSxHQUFHO0FBQ3RCLGNBQU0sV0FBK0IsY0FBYyxTQUFTO0FBQzVELGFBQUssS0FBSyxHQUFHLFFBQVE7QUFBQSxNQUN2QixXQUFVLE1BQU0sZUFBZSxHQUFHO0FBQ2hDLGNBQU0sY0FBeUIsQ0FBQyxRQUFRLGFBQWEsU0FBUyxDQUFDLEVBQUcsT0FBTyxDQUFDLFNBQWlCLENBQUMsUUFBUSxJQUFJLENBQUM7QUFDekcsYUFBSyxLQUFLLEVBQUMsTUFBTSxHQUFHLFlBQVksS0FBSyxHQUFHLENBQUMsSUFBSSxNQUFNLFVBQVMsQ0FBQztBQUFBLE1BQy9EO0FBRUEsYUFBTztBQUFBLElBQ1QsU0FBUSxTQUFTO0FBQ2YsWUFBTTtBQUFBLElBQ1I7QUFBQSxFQUNGLEdBQUcsQ0FBQyxDQUFDO0FBQ1A7QUFFTyxNQUFNLHFCQUFxQixNQUFNO0FBQ3RDLFFBQU0sU0FBUyxjQUFjO0FBRTdCLE1BQUcsT0FBTyxRQUFRO0FBQ2hCLFVBQU0sWUFBb0IsT0FBTyxTQUFTLElBQUksWUFBWTtBQUMxRCxVQUFNLFlBQW9CLE9BQU87QUFBQSxNQUMvQixDQUFDLEtBQWEsaUJBQ1osR0FBRyxHQUFHO0FBQUEsS0FBUSxhQUFhLElBQUk7QUFBQSxNQUNqQyxVQUFVLFNBQVM7QUFBQSxJQUNyQjtBQUNBLFFBQUksTUFBTSxXQUFXLEVBQUMsV0FBVyxNQUFNLFNBQVMsRUFBQyxDQUFDLEdBQUcsTUFBTTtBQUFBLEVBQzdEO0FBQ0Y7QUFFTyxNQUFNLHFCQUFxQixDQUFDLFVBQWtCLFNBQWlCLGdCQUF3QjtBQUM1RixNQUFJLE9BQWUsYUFBYSxVQUFVLE1BQU07QUFDaEQsU0FBTyxLQUFLLFFBQVEsV0FBVyxPQUFPO0FBQ3RDLFNBQU8sS0FBSyxRQUFRLFdBQVcsV0FBVztBQUMxQyxnQkFBYyxVQUFVLE1BQU0sTUFBTTtBQUN0QzsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const relativeFilePath: (filename: string, dirPath?: string, backUp?: number) => string;
|
|
2
|
+
export declare const relativeNodePath: (filename: string, dirPath?: string, backUp?: number) => string;
|
|
3
|
+
export declare const getNodePath: (moduleName: string) => string;
|
package/dist/utils/file.js
CHANGED
|
@@ -13,16 +13,31 @@ const relativeFilePath = (filename, dirPath = "./", backUp = 0) => {
|
|
|
13
13
|
};
|
|
14
14
|
const relativeNodePath = (filename, dirPath = "./", backUp = 0) => {
|
|
15
15
|
const nestDepth = 10;
|
|
16
|
+
const modulePath = `node_modules/${filename}`;
|
|
17
|
+
if (dirPath !== "./") {
|
|
18
|
+
const lexModulePath = pathResolve(dirPath, modulePath);
|
|
19
|
+
if (existsSync(lexModulePath)) {
|
|
20
|
+
return lexModulePath;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const projectPath = pathResolve(process.cwd(), modulePath);
|
|
24
|
+
if (existsSync(projectPath)) {
|
|
25
|
+
return projectPath;
|
|
26
|
+
}
|
|
16
27
|
if (backUp) {
|
|
17
|
-
const filePath = findFileUp.sync(
|
|
28
|
+
const filePath = findFileUp.sync(modulePath, dirPath, nestDepth);
|
|
18
29
|
const previousPath = Array(nestDepth).fill(null).map(() => "../").join("");
|
|
19
30
|
return pathResolve(filePath, previousPath);
|
|
20
31
|
}
|
|
21
|
-
return findFileUp.sync(
|
|
32
|
+
return findFileUp.sync(modulePath, dirPath, nestDepth) || `/node_modules/${filename}`;
|
|
22
33
|
};
|
|
23
34
|
const getNodePath = (moduleName) => {
|
|
24
35
|
const dirName = new URL(".", import.meta.url).pathname;
|
|
25
36
|
const modulePath = `node_modules/${moduleName}`;
|
|
37
|
+
const projectPath = pathResolve(process.cwd(), modulePath);
|
|
38
|
+
if (existsSync(projectPath)) {
|
|
39
|
+
return projectPath;
|
|
40
|
+
}
|
|
26
41
|
const repoPath = findFileUp.sync(modulePath, dirName);
|
|
27
42
|
if (repoPath && existsSync(repoPath)) {
|
|
28
43
|
return repoPath;
|
|
@@ -35,4 +50,4 @@ export {
|
|
|
35
50
|
relativeFilePath,
|
|
36
51
|
relativeNodePath
|
|
37
52
|
};
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2ZpbGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIyLVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgZmluZEZpbGVVcCBmcm9tICdmaW5kLWZpbGUtdXAnO1xuaW1wb3J0IHtleGlzdHNTeW5jfSBmcm9tICdmcyc7XG5pbXBvcnQge3Jlc29sdmUgYXMgcGF0aFJlc29sdmV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtVUkx9IGZyb20gJ3VybCc7XG5cbi8vIEdldCBmaWxlIHBhdGhzIHJlbGF0aXZlIHRvIExleFxuZXhwb3J0IGNvbnN0IHJlbGF0aXZlRmlsZVBhdGggPSAoZmlsZW5hbWU6IHN0cmluZywgZGlyUGF0aDogc3RyaW5nID0gJy4vJywgYmFja1VwOiBudW1iZXIgPSAwKTogc3RyaW5nID0+
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2ZpbGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIyLVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgZmluZEZpbGVVcCBmcm9tICdmaW5kLWZpbGUtdXAnO1xuaW1wb3J0IHtleGlzdHNTeW5jfSBmcm9tICdmcyc7XG5pbXBvcnQge3Jlc29sdmUgYXMgcGF0aFJlc29sdmV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtVUkx9IGZyb20gJ3VybCc7XG5cbi8vIEdldCBmaWxlIHBhdGhzIHJlbGF0aXZlIHRvIExleFxuZXhwb3J0IGNvbnN0IHJlbGF0aXZlRmlsZVBhdGggPSAoZmlsZW5hbWU6IHN0cmluZywgZGlyUGF0aDogc3RyaW5nID0gJy4vJywgYmFja1VwOiBudW1iZXIgPSAwKTogc3RyaW5nID0+IHtcbiAgY29uc3QgbmVzdERlcHRoOiBudW1iZXIgPSAxMDtcblxuICBpZihiYWNrVXApIHtcbiAgICBjb25zdCBmaWxlUGF0aDogc3RyaW5nID0gZmluZEZpbGVVcC5zeW5jKGZpbGVuYW1lLCBkaXJQYXRoLCBuZXN0RGVwdGgpO1xuICAgIGNvbnN0IHByZXZpb3VzUGF0aDogc3RyaW5nID0gQXJyYXkoYmFja1VwKS5maWxsKG51bGwpLm1hcCgoKSA9PiAnLi4vJykuam9pbignJyk7XG4gICAgcmV0dXJuIHBhdGhSZXNvbHZlKGZpbGVQYXRoLCBwcmV2aW91c1BhdGgpO1xuICB9XG5cbiAgcmV0dXJuIGZpbmRGaWxlVXAuc3luYyhmaWxlbmFtZSwgZGlyUGF0aCwgbmVzdERlcHRoKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZWxhdGl2ZU5vZGVQYXRoID0gKGZpbGVuYW1lOiBzdHJpbmcsIGRpclBhdGg6IHN0cmluZyA9ICcuLycsIGJhY2tVcDogbnVtYmVyID0gMCk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IG5lc3REZXB0aDogbnVtYmVyID0gMTA7XG4gIGNvbnN0IG1vZHVsZVBhdGggPSBgbm9kZV9tb2R1bGVzLyR7ZmlsZW5hbWV9YDtcblxuICAvLyBGaXJzdCwgY2hlY2sgdGhlIExleCBwYWNrYWdlJ3Mgbm9kZV9tb2R1bGVzIGRpcmVjdG9yeVxuICBpZihkaXJQYXRoICE9PSAnLi8nKSB7XG4gICAgY29uc3QgbGV4TW9kdWxlUGF0aCA9IHBhdGhSZXNvbHZlKGRpclBhdGgsIG1vZHVsZVBhdGgpO1xuICAgIGlmKGV4aXN0c1N5bmMobGV4TW9kdWxlUGF0aCkpIHtcbiAgICAgIHJldHVybiBsZXhNb2R1bGVQYXRoO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNlY29uZCwgY2hlY2sgdGhlIHVzZXIncyBwcm9qZWN0IG5vZGVfbW9kdWxlcyBkaXJlY3RvcnlcbiAgY29uc3QgcHJvamVjdFBhdGggPSBwYXRoUmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBtb2R1bGVQYXRoKTtcbiAgaWYoZXhpc3RzU3luYyhwcm9qZWN0UGF0aCkpIHtcbiAgICByZXR1cm4gcHJvamVjdFBhdGg7XG4gIH1cblxuICAvLyBPcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiBhcyBmYWxsYmFja1xuICBpZihiYWNrVXApIHtcbiAgICBjb25zdCBmaWxlUGF0aDogc3RyaW5nID0gZmluZEZpbGVVcC5zeW5jKG1vZHVsZVBhdGgsIGRpclBhdGgsIG5lc3REZXB0aCk7XG4gICAgY29uc3QgcHJldmlvdXNQYXRoOiBzdHJpbmcgPSBBcnJheShuZXN0RGVwdGgpLmZpbGwobnVsbCkubWFwKCgpID0+ICcuLi8nKS5qb2luKCcnKTtcbiAgICByZXR1cm4gcGF0aFJlc29sdmUoZmlsZVBhdGgsIHByZXZpb3VzUGF0aCk7XG4gIH1cblxuICByZXR1cm4gZmluZEZpbGVVcC5zeW5jKG1vZHVsZVBhdGgsIGRpclBhdGgsIG5lc3REZXB0aCkgfHwgYC9ub2RlX21vZHVsZXMvJHtmaWxlbmFtZX1gO1xufTtcblxuLy8gR2V0IGZpbGUgcGF0aHMgcmVsYXRpdmUgdG8gTGV4XG5leHBvcnQgY29uc3QgZ2V0Tm9kZVBhdGggPSAobW9kdWxlTmFtZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgZGlyTmFtZSA9IG5ldyBVUkwoJy4nLCBpbXBvcnQubWV0YS51cmwpLnBhdGhuYW1lO1xuICBjb25zdCBtb2R1bGVQYXRoOiBzdHJpbmcgPSBgbm9kZV9tb2R1bGVzLyR7bW9kdWxlTmFtZX1gO1xuXG4gIC8vIFRyeSBwcm9qZWN0IHJvb3QgZmlyc3RcbiAgY29uc3QgcHJvamVjdFBhdGggPSBwYXRoUmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBtb2R1bGVQYXRoKTtcbiAgaWYoZXhpc3RzU3luYyhwcm9qZWN0UGF0aCkpIHtcbiAgICByZXR1cm4gcHJvamVjdFBhdGg7XG4gIH1cblxuICAvLyBUaGVuIHRyeSBtb2R1bGUgbG9jYWwgdG8gTGV4XG4gIGNvbnN0IHJlcG9QYXRoOiBzdHJpbmcgPSBmaW5kRmlsZVVwLnN5bmMobW9kdWxlUGF0aCwgZGlyTmFtZSk7XG4gIGlmKHJlcG9QYXRoICYmIGV4aXN0c1N5bmMocmVwb1BhdGgpKSB7XG4gICAgcmV0dXJuIHJlcG9QYXRoO1xuICB9XG5cbiAgLy8gRmFsbGJhY2sgdG8gZ2VuZXJhbCBzZWFyY2hcbiAgY29uc3QgbG9jYWxQYXRoOiBzdHJpbmcgPSBmaW5kRmlsZVVwLnN5bmMobW9kdWxlUGF0aCwgJy4vJywgMTApIHx8IGAuLyR7bW9kdWxlUGF0aH1gO1xuICByZXR1cm4gbG9jYWxQYXRoO1xufTsiXSwKICAibWFwcGluZ3MiOiAiQUFJQSxPQUFPLGdCQUFnQjtBQUN2QixTQUFRLGtCQUFpQjtBQUN6QixTQUFRLFdBQVcsbUJBQWtCO0FBQ3JDLFNBQVEsV0FBVTtBQUdYLE1BQU0sbUJBQW1CLENBQUMsVUFBa0IsVUFBa0IsTUFBTSxTQUFpQixNQUFjO0FBQ3hHLFFBQU0sWUFBb0I7QUFFMUIsTUFBRyxRQUFRO0FBQ1QsVUFBTSxXQUFtQixXQUFXLEtBQUssVUFBVSxTQUFTLFNBQVM7QUFDckUsVUFBTSxlQUF1QixNQUFNLE1BQU0sRUFBRSxLQUFLLElBQUksRUFBRSxJQUFJLE1BQU0sS0FBSyxFQUFFLEtBQUssRUFBRTtBQUM5RSxXQUFPLFlBQVksVUFBVSxZQUFZO0FBQUEsRUFDM0M7QUFFQSxTQUFPLFdBQVcsS0FBSyxVQUFVLFNBQVMsU0FBUztBQUNyRDtBQUVPLE1BQU0sbUJBQW1CLENBQUMsVUFBa0IsVUFBa0IsTUFBTSxTQUFpQixNQUFjO0FBQ3hHLFFBQU0sWUFBb0I7QUFDMUIsUUFBTSxhQUFhLGdCQUFnQixRQUFRO0FBRzNDLE1BQUcsWUFBWSxNQUFNO0FBQ25CLFVBQU0sZ0JBQWdCLFlBQVksU0FBUyxVQUFVO0FBQ3JELFFBQUcsV0FBVyxhQUFhLEdBQUc7QUFDNUIsYUFBTztBQUFBLElBQ1Q7QUFBQSxFQUNGO0FBR0EsUUFBTSxjQUFjLFlBQVksUUFBUSxJQUFJLEdBQUcsVUFBVTtBQUN6RCxNQUFHLFdBQVcsV0FBVyxHQUFHO0FBQzFCLFdBQU87QUFBQSxFQUNUO0FBR0EsTUFBRyxRQUFRO0FBQ1QsVUFBTSxXQUFtQixXQUFXLEtBQUssWUFBWSxTQUFTLFNBQVM7QUFDdkUsVUFBTSxlQUF1QixNQUFNLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRSxJQUFJLE1BQU0sS0FBSyxFQUFFLEtBQUssRUFBRTtBQUNqRixXQUFPLFlBQVksVUFBVSxZQUFZO0FBQUEsRUFDM0M7QUFFQSxTQUFPLFdBQVcsS0FBSyxZQUFZLFNBQVMsU0FBUyxLQUFLLGlCQUFpQixRQUFRO0FBQ3JGO0FBR08sTUFBTSxjQUFjLENBQUMsZUFBK0I7QUFDekQsUUFBTSxVQUFVLElBQUksSUFBSSxLQUFLLFlBQVksR0FBRyxFQUFFO0FBQzlDLFFBQU0sYUFBcUIsZ0JBQWdCLFVBQVU7QUFHckQsUUFBTSxjQUFjLFlBQVksUUFBUSxJQUFJLEdBQUcsVUFBVTtBQUN6RCxNQUFHLFdBQVcsV0FBVyxHQUFHO0FBQzFCLFdBQU87QUFBQSxFQUNUO0FBR0EsUUFBTSxXQUFtQixXQUFXLEtBQUssWUFBWSxPQUFPO0FBQzVELE1BQUcsWUFBWSxXQUFXLFFBQVEsR0FBRztBQUNuQyxXQUFPO0FBQUEsRUFDVDtBQUdBLFFBQU0sWUFBb0IsV0FBVyxLQUFLLFlBQVksTUFBTSxFQUFFLEtBQUssS0FBSyxVQUFVO0FBQ2xGLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const log: (message: string, type?: string, quiet?: boolean) => void;
|
package/dist/utils/log.js
CHANGED
|
@@ -13,6 +13,7 @@ const log = (message, type = "info", quiet = false) => {
|
|
|
13
13
|
color = chalk.greenBright;
|
|
14
14
|
break;
|
|
15
15
|
case "warn":
|
|
16
|
+
case "warning":
|
|
16
17
|
color = chalk.yellow;
|
|
17
18
|
break;
|
|
18
19
|
default:
|
|
@@ -25,4 +26,4 @@ const log = (message, type = "info", quiet = false) => {
|
|
|
25
26
|
export {
|
|
26
27
|
log
|
|
27
28
|
};
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2xvZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjItUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5cbmV4cG9ydCBjb25zdCBsb2cgPSAobWVzc2FnZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcgPSAnaW5mbycsIHF1aWV0ID0gZmFsc2UpID0+
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2xvZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjItUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5cbmV4cG9ydCBjb25zdCBsb2cgPSAobWVzc2FnZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcgPSAnaW5mbycsIHF1aWV0ID0gZmFsc2UpID0+IHtcbiAgaWYoIXF1aWV0KSB7XG4gICAgbGV0IGNvbG9yO1xuXG4gICAgc3dpdGNoKHR5cGUpIHtcbiAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgY29sb3IgPSBjaGFsay5yZWQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbm90ZSc6XG4gICAgICAgIGNvbG9yID0gY2hhbGsuZ3JleTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgY29sb3IgPSBjaGFsay5ncmVlbkJyaWdodDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd3YXJuJzpcbiAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICBjb2xvciA9IGNoYWxrLnllbGxvdztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb2xvciA9IGNoYWxrLmN5YW47XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS5sb2coY29sb3IobWVzc2FnZSkpO1xuICB9XG59OyJdLAogICJtYXBwaW5ncyI6ICJBQUlBLE9BQU8sV0FBVztBQUVYLE1BQU0sTUFBTSxDQUFDLFNBQWlCLE9BQWUsUUFBUSxRQUFRLFVBQVU7QUFDNUUsTUFBRyxDQUFDLE9BQU87QUFDVCxRQUFJO0FBRUosWUFBTyxNQUFNO0FBQUEsTUFDWCxLQUFLO0FBQ0gsZ0JBQVEsTUFBTTtBQUNkO0FBQUEsTUFDRixLQUFLO0FBQ0gsZ0JBQVEsTUFBTTtBQUNkO0FBQUEsTUFDRixLQUFLO0FBQ0gsZ0JBQVEsTUFBTTtBQUNkO0FBQUEsTUFDRixLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQ0gsZ0JBQVEsTUFBTTtBQUNkO0FBQUEsTUFDRjtBQUNFLGdCQUFRLE1BQU07QUFDZDtBQUFBLElBQ0o7QUFHQSxZQUFRLElBQUksTUFBTSxPQUFPLENBQUM7QUFBQSxFQUM1QjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
package/dist/utils/reactShim.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as react from "react";
|
|
2
2
|
export {
|
|
3
|
-
|
|
3
|
+
react
|
|
4
4
|
};
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL3JlYWN0U2hpbS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0ICogYXMgcmVhY3QgZnJvbSAncmVhY3QnO1xuXG5leHBvcnQge3JlYWN0fTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxZQUFZLFdBQVc7IiwKICAibmFtZXMiOiBbXQp9Cg==
|