create-nx-workspace 13.4.6 → 13.5.0-beta.3
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/README.md +8 -23
- package/bin/create-nx-workspace.js +2 -2
- package/bin/output.d.ts +20 -6
- package/bin/output.js +86 -38
- package/bin/output.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,10 +17,13 @@
|
|
|
17
17
|
|
|
18
18
|
# `> npx create-nx-workspace`
|
|
19
19
|
|
|
20
|
-
# Smart, Fast and Extensible Build System
|
|
21
|
-
|
|
22
20
|
Nx is a next generation build system with first class monorepo support and powerful integrations.
|
|
23
21
|
|
|
22
|
+
{{getting-started}}
|
|
23
|
+
|
|
24
|
+
## What is It?
|
|
25
|
+
|
|
26
|
+
It's a command to create a new Nx workspace.
|
|
24
27
|
|
|
25
28
|
## Getting Started
|
|
26
29
|
|
|
@@ -62,7 +65,7 @@ The `create-nx-workspace` command will ask you to select a preset, which will co
|
|
|
62
65
|
react-express [a workspace with a full stack application (React + Express)]
|
|
63
66
|
```
|
|
64
67
|
|
|
65
|
-
Select the preset that works best for you
|
|
68
|
+
Select the preset that works best for you
|
|
66
69
|
|
|
67
70
|
### Adding Nx to an Existing Monorepo
|
|
68
71
|
|
|
@@ -72,25 +75,7 @@ Run:
|
|
|
72
75
|
npx add-nx-to-monorepo@latest
|
|
73
76
|
```
|
|
74
77
|
|
|
75
|
-
|
|
76
|
-
```
|
|
77
|
-
? Workspace name (e.g., org name) happyorg
|
|
78
|
-
? What to create in the new workspace web components [a workspace with a single app built using web components]
|
|
79
|
-
? Application name myapp
|
|
80
|
-
? Default stylesheet format CSS
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
If it's your first Nx project, the command will recommend you to install the `nx` package globally, so you can invoke `nx` directly without going through yarn or npm.
|
|
84
|
-
|
|
85
|
-
## Serving Application
|
|
86
|
-
|
|
87
|
-
- Run `nx serve myapp` to serve the newly generated application!
|
|
88
|
-
- Run `nx test myapp` to test it.
|
|
89
|
-
- Run `nx e2e myapp-e2e` to run e2e tests for it.
|
|
90
|
-
|
|
91
|
-
Angular users can also run `ng g/serve/test/e2e`.
|
|
92
|
-
|
|
93
|
-
## Documentation & Resources
|
|
78
|
+
### Documentation & Resources
|
|
94
79
|
|
|
95
80
|
A few links to help you get started:
|
|
96
81
|
|
|
@@ -99,6 +84,6 @@ A few links to help you get started:
|
|
|
99
84
|
- [Official Nx YouTube Channel](https://www.youtube.com/c/Nrwl_io)
|
|
100
85
|
- [Blog Posts About Nx](https://blog.nrwl.io/nx/home)
|
|
101
86
|
|
|
102
|
-
<p style="text-align: center;"><a href="https://nx.dev/#learning-materials" target="_blank"><img src="
|
|
87
|
+
<p style="text-align: center;"><a href="https://nx.dev/#learning-materials" target="_blank"><img src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-courses-and-videos.svg"
|
|
103
88
|
width="100%" alt="Nx - Smart, Fast and Extensible Build System"></a></p>
|
|
104
89
|
|
|
@@ -87,8 +87,8 @@ const presetOptions = [
|
|
|
87
87
|
},
|
|
88
88
|
];
|
|
89
89
|
const tsVersion = '~4.4.3';
|
|
90
|
-
const cliVersion = '13.
|
|
91
|
-
const nxVersion = '13.
|
|
90
|
+
const cliVersion = '13.5.0-beta.3';
|
|
91
|
+
const nxVersion = '13.5.0-beta.3';
|
|
92
92
|
const prettierVersion = '2.3.2';
|
|
93
93
|
const parsedArgs = yargsParser(process.argv.slice(2), {
|
|
94
94
|
string: [
|
package/bin/output.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as chalk from 'chalk';
|
|
2
|
+
export declare function isCI(): string | boolean;
|
|
2
3
|
export interface CLIErrorMessageConfig {
|
|
3
4
|
title: string;
|
|
4
5
|
bodyLines?: string[];
|
|
@@ -17,13 +18,18 @@ export interface CLISuccessMessageConfig {
|
|
|
17
18
|
title: string;
|
|
18
19
|
bodyLines?: string[];
|
|
19
20
|
}
|
|
21
|
+
export declare enum TaskCacheStatus {
|
|
22
|
+
NoCache = "[no cache]",
|
|
23
|
+
MatchedExistingOutput = "[existing outputs match the cache, left as is]",
|
|
24
|
+
RetrievedFromCache = "[retrieved from cache]"
|
|
25
|
+
}
|
|
20
26
|
declare class CLIOutput {
|
|
21
|
-
|
|
27
|
+
readonly X_PADDING = " ";
|
|
22
28
|
/**
|
|
23
29
|
* Longer dash character which forms more of a continuous line when place side to side
|
|
24
30
|
* with itself, unlike the standard dash character
|
|
25
31
|
*/
|
|
26
|
-
private
|
|
32
|
+
private get VERTICAL_SEPARATOR();
|
|
27
33
|
/**
|
|
28
34
|
* Expose some color and other utility functions so that other parts of the codebase that need
|
|
29
35
|
* more fine-grained control of message bodies are still using a centralized
|
|
@@ -31,22 +37,30 @@ declare class CLIOutput {
|
|
|
31
37
|
*/
|
|
32
38
|
colors: {
|
|
33
39
|
gray: chalk.Chalk;
|
|
40
|
+
green: chalk.Chalk;
|
|
41
|
+
red: chalk.Chalk;
|
|
42
|
+
cyan: chalk.Chalk;
|
|
43
|
+
white: chalk.Chalk;
|
|
34
44
|
};
|
|
35
45
|
bold: chalk.Chalk;
|
|
36
46
|
underline: chalk.Chalk;
|
|
47
|
+
dim: chalk.Chalk;
|
|
37
48
|
private writeToStdOut;
|
|
38
49
|
private writeOutputTitle;
|
|
39
50
|
private writeOptionalOutputBody;
|
|
51
|
+
applyNxPrefix(color: string, text: string): string;
|
|
40
52
|
addNewline(): void;
|
|
41
|
-
addVerticalSeparator(): void;
|
|
42
|
-
addVerticalSeparatorWithoutNewLines(): void;
|
|
53
|
+
addVerticalSeparator(color?: string): void;
|
|
54
|
+
addVerticalSeparatorWithoutNewLines(color?: string): void;
|
|
43
55
|
error({ title, slug, bodyLines }: CLIErrorMessageConfig): void;
|
|
44
56
|
warn({ title, slug, bodyLines }: CLIWarnMessageConfig): void;
|
|
45
57
|
note({ title, bodyLines }: CLINoteMessageConfig): void;
|
|
46
58
|
success({ title, bodyLines }: CLISuccessMessageConfig): void;
|
|
47
59
|
logSingleLine(message: string): void;
|
|
48
|
-
logCommand(message: string,
|
|
49
|
-
log({ title, bodyLines }: CLIWarnMessageConfig
|
|
60
|
+
logCommand(message: string, cacheStatus?: TaskCacheStatus): void;
|
|
61
|
+
log({ title, bodyLines, color }: CLIWarnMessageConfig & {
|
|
62
|
+
color?: string;
|
|
63
|
+
}): void;
|
|
50
64
|
}
|
|
51
65
|
export declare const output: CLIOutput;
|
|
52
66
|
export {};
|
package/bin/output.js
CHANGED
|
@@ -1,21 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Because we don't want to depend on @nrwl/workspace (to speed up the workspace creation)
|
|
4
|
+
* we duplicate the helper functions from @nrwl/workspace in this file.
|
|
5
|
+
*/
|
|
2
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.output = void 0;
|
|
7
|
+
exports.output = exports.TaskCacheStatus = exports.isCI = void 0;
|
|
4
8
|
const chalk = require("chalk");
|
|
9
|
+
const os_1 = require("os");
|
|
10
|
+
function isCI() {
|
|
11
|
+
return (process.env.CI === 'true' ||
|
|
12
|
+
process.env.TF_BUILD === 'true' ||
|
|
13
|
+
process.env['bamboo.buildKey'] ||
|
|
14
|
+
process.env.BUILDKITE === 'true' ||
|
|
15
|
+
process.env.CIRCLECI === 'true' ||
|
|
16
|
+
process.env.CIRRUS_CI === 'true' ||
|
|
17
|
+
process.env.CODEBUILD_BUILD_ID ||
|
|
18
|
+
process.env.GITHUB_ACTIONS === 'true' ||
|
|
19
|
+
process.env.GITLAB_CI ||
|
|
20
|
+
process.env.HEROKU_TEST_RUN_ID ||
|
|
21
|
+
process.env.BUILD_ID ||
|
|
22
|
+
process.env.BUILD_BUILDID ||
|
|
23
|
+
process.env.TEAMCITY_VERSION ||
|
|
24
|
+
process.env.TRAVIS === 'true');
|
|
25
|
+
}
|
|
26
|
+
exports.isCI = isCI;
|
|
27
|
+
var TaskCacheStatus;
|
|
28
|
+
(function (TaskCacheStatus) {
|
|
29
|
+
TaskCacheStatus["NoCache"] = "[no cache]";
|
|
30
|
+
TaskCacheStatus["MatchedExistingOutput"] = "[existing outputs match the cache, left as is]";
|
|
31
|
+
TaskCacheStatus["RetrievedFromCache"] = "[retrieved from cache]";
|
|
32
|
+
})(TaskCacheStatus = exports.TaskCacheStatus || (exports.TaskCacheStatus = {}));
|
|
5
33
|
/**
|
|
6
34
|
* Automatically disable styling applied by chalk if CI=true
|
|
7
35
|
*/
|
|
8
|
-
if (
|
|
36
|
+
if (isCI()) {
|
|
9
37
|
chalk.level = 0;
|
|
10
38
|
}
|
|
11
39
|
class CLIOutput {
|
|
12
40
|
constructor() {
|
|
13
|
-
this.
|
|
14
|
-
/**
|
|
15
|
-
* Longer dash character which forms more of a continuous line when place side to side
|
|
16
|
-
* with itself, unlike the standard dash character
|
|
17
|
-
*/
|
|
18
|
-
this.VERTICAL_SEPARATOR = '———————————————————————————————————————————————';
|
|
41
|
+
this.X_PADDING = ' ';
|
|
19
42
|
/**
|
|
20
43
|
* Expose some color and other utility functions so that other parts of the codebase that need
|
|
21
44
|
* more fine-grained control of message bodies are still using a centralized
|
|
@@ -23,44 +46,65 @@ class CLIOutput {
|
|
|
23
46
|
*/
|
|
24
47
|
this.colors = {
|
|
25
48
|
gray: chalk.gray,
|
|
49
|
+
green: chalk.green,
|
|
50
|
+
red: chalk.red,
|
|
51
|
+
cyan: chalk.cyan,
|
|
52
|
+
white: chalk.white,
|
|
26
53
|
};
|
|
27
54
|
this.bold = chalk.bold;
|
|
28
55
|
this.underline = chalk.underline;
|
|
56
|
+
this.dim = chalk.dim;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Longer dash character which forms more of a continuous line when place side to side
|
|
60
|
+
* with itself, unlike the standard dash character
|
|
61
|
+
*/
|
|
62
|
+
get VERTICAL_SEPARATOR() {
|
|
63
|
+
let divider = '';
|
|
64
|
+
for (let i = 0; i < process.stdout.columns - this.X_PADDING.length * 2; i++) {
|
|
65
|
+
divider += '\u2014';
|
|
66
|
+
}
|
|
67
|
+
return divider;
|
|
29
68
|
}
|
|
30
69
|
writeToStdOut(str) {
|
|
31
70
|
process.stdout.write(str);
|
|
32
71
|
}
|
|
33
|
-
writeOutputTitle({
|
|
34
|
-
|
|
35
|
-
if (label) {
|
|
36
|
-
outputTitle = `${this.NX_PREFIX} ${label} ${title}\n`;
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
outputTitle = `${this.NX_PREFIX} ${title}\n`;
|
|
40
|
-
}
|
|
41
|
-
this.writeToStdOut(outputTitle);
|
|
72
|
+
writeOutputTitle({ color, title, }) {
|
|
73
|
+
this.writeToStdOut(` ${this.applyNxPrefix(color, title)}${os_1.EOL}`);
|
|
42
74
|
}
|
|
43
75
|
writeOptionalOutputBody(bodyLines) {
|
|
44
76
|
if (!bodyLines) {
|
|
45
77
|
return;
|
|
46
78
|
}
|
|
47
79
|
this.addNewline();
|
|
48
|
-
bodyLines.forEach((bodyLine) => this.writeToStdOut(
|
|
80
|
+
bodyLines.forEach((bodyLine) => this.writeToStdOut(` ${bodyLine}${os_1.EOL}`));
|
|
81
|
+
}
|
|
82
|
+
applyNxPrefix(color = 'cyan', text) {
|
|
83
|
+
let nxPrefix = '';
|
|
84
|
+
if (chalk[color]) {
|
|
85
|
+
nxPrefix = `${chalk[color]('>')} ${chalk.reset.inverse.bold[color](' NX ')}`;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
nxPrefix = `${chalk.keyword(color)('>')} ${chalk.reset.inverse.bold.keyword(color)(' NX ')}`;
|
|
89
|
+
}
|
|
90
|
+
return `${nxPrefix} ${text}`;
|
|
49
91
|
}
|
|
50
92
|
addNewline() {
|
|
51
|
-
this.writeToStdOut(
|
|
93
|
+
this.writeToStdOut(os_1.EOL);
|
|
52
94
|
}
|
|
53
|
-
addVerticalSeparator() {
|
|
54
|
-
this.
|
|
95
|
+
addVerticalSeparator(color = 'gray') {
|
|
96
|
+
this.addNewline();
|
|
97
|
+
this.addVerticalSeparatorWithoutNewLines(color);
|
|
98
|
+
this.addNewline();
|
|
55
99
|
}
|
|
56
|
-
addVerticalSeparatorWithoutNewLines() {
|
|
57
|
-
this.writeToStdOut(`${chalk.
|
|
100
|
+
addVerticalSeparatorWithoutNewLines(color = 'gray') {
|
|
101
|
+
this.writeToStdOut(`${this.X_PADDING}${chalk.dim[color](this.VERTICAL_SEPARATOR)}${os_1.EOL}`);
|
|
58
102
|
}
|
|
59
103
|
error({ title, slug, bodyLines }) {
|
|
60
104
|
this.addNewline();
|
|
61
105
|
this.writeOutputTitle({
|
|
62
|
-
|
|
63
|
-
title: chalk.
|
|
106
|
+
color: 'red',
|
|
107
|
+
title: chalk.red(title),
|
|
64
108
|
});
|
|
65
109
|
this.writeOptionalOutputBody(bodyLines);
|
|
66
110
|
/**
|
|
@@ -68,15 +112,15 @@ class CLIOutput {
|
|
|
68
112
|
*/
|
|
69
113
|
if (slug && typeof slug === 'string') {
|
|
70
114
|
this.addNewline();
|
|
71
|
-
this.writeToStdOut(`${chalk.grey(' Learn more about this error: ')}https://errors.nx.dev/${slug}
|
|
115
|
+
this.writeToStdOut(`${chalk.grey(' Learn more about this error: ')}https://errors.nx.dev/${slug}${os_1.EOL}`);
|
|
72
116
|
}
|
|
73
117
|
this.addNewline();
|
|
74
118
|
}
|
|
75
119
|
warn({ title, slug, bodyLines }) {
|
|
76
120
|
this.addNewline();
|
|
77
121
|
this.writeOutputTitle({
|
|
78
|
-
|
|
79
|
-
title: chalk.
|
|
122
|
+
color: 'yellow',
|
|
123
|
+
title: chalk.yellow(title),
|
|
80
124
|
});
|
|
81
125
|
this.writeOptionalOutputBody(bodyLines);
|
|
82
126
|
/**
|
|
@@ -91,8 +135,8 @@ class CLIOutput {
|
|
|
91
135
|
note({ title, bodyLines }) {
|
|
92
136
|
this.addNewline();
|
|
93
137
|
this.writeOutputTitle({
|
|
94
|
-
|
|
95
|
-
title: chalk.
|
|
138
|
+
color: 'orange',
|
|
139
|
+
title: chalk.keyword('orange')(title),
|
|
96
140
|
});
|
|
97
141
|
this.writeOptionalOutputBody(bodyLines);
|
|
98
142
|
this.addNewline();
|
|
@@ -100,8 +144,8 @@ class CLIOutput {
|
|
|
100
144
|
success({ title, bodyLines }) {
|
|
101
145
|
this.addNewline();
|
|
102
146
|
this.writeOutputTitle({
|
|
103
|
-
|
|
104
|
-
title: chalk.
|
|
147
|
+
color: 'green',
|
|
148
|
+
title: chalk.green(title),
|
|
105
149
|
});
|
|
106
150
|
this.writeOptionalOutputBody(bodyLines);
|
|
107
151
|
this.addNewline();
|
|
@@ -109,22 +153,26 @@ class CLIOutput {
|
|
|
109
153
|
logSingleLine(message) {
|
|
110
154
|
this.addNewline();
|
|
111
155
|
this.writeOutputTitle({
|
|
156
|
+
color: 'gray',
|
|
112
157
|
title: message,
|
|
113
158
|
});
|
|
114
159
|
this.addNewline();
|
|
115
160
|
}
|
|
116
|
-
logCommand(message,
|
|
161
|
+
logCommand(message, cacheStatus = TaskCacheStatus.NoCache) {
|
|
117
162
|
this.addNewline();
|
|
118
|
-
|
|
119
|
-
if (
|
|
120
|
-
|
|
163
|
+
let commandOutput = `${chalk.dim('> nx run')} ${message}`;
|
|
164
|
+
if (cacheStatus !== TaskCacheStatus.NoCache) {
|
|
165
|
+
commandOutput += ` ${chalk.grey(cacheStatus)}`;
|
|
121
166
|
}
|
|
167
|
+
this.writeToStdOut(commandOutput);
|
|
122
168
|
this.addNewline();
|
|
123
169
|
}
|
|
124
|
-
log({ title, bodyLines }) {
|
|
170
|
+
log({ title, bodyLines, color }) {
|
|
125
171
|
this.addNewline();
|
|
172
|
+
color = color || 'white';
|
|
126
173
|
this.writeOutputTitle({
|
|
127
|
-
|
|
174
|
+
color: 'cyan',
|
|
175
|
+
title: chalk[color](title),
|
|
128
176
|
});
|
|
129
177
|
this.writeOptionalOutputBody(bodyLines);
|
|
130
178
|
this.addNewline();
|
package/bin/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../../../packages/create-nx-workspace/bin/output.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../../../packages/create-nx-workspace/bin/output.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+BAA+B;AAC/B,2BAAyB;AAEzB,SAAgB,IAAI;IAClB,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM;QACzB,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM;QAC/B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM;QAChC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM;QAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM;QAChC,OAAO,CAAC,GAAG,CAAC,kBAAkB;QAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM;QACrC,OAAO,CAAC,GAAG,CAAC,SAAS;QACrB,OAAO,CAAC,GAAG,CAAC,kBAAkB;QAC9B,OAAO,CAAC,GAAG,CAAC,QAAQ;QACpB,OAAO,CAAC,GAAG,CAAC,aAAa;QACzB,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAC9B,CAAC;AACJ,CAAC;AAjBD,oBAiBC;AAwBD,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,yCAAsB,CAAA;IACtB,2FAAwE,CAAA;IACxE,gEAA6C,CAAA;AAC/C,CAAC,EAJW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAI1B;AAED;;GAEG;AACH,IAAI,IAAI,EAAE,EAAE;IACT,KAAa,CAAC,KAAK,GAAG,CAAC,CAAC;CAC1B;AAED,MAAM,SAAS;IAAf;QACW,cAAS,GAAG,GAAG,CAAC;QAkBzB;;;;WAIG;QACH,WAAM,GAAG;YACP,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC;QACF,SAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAClB,cAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAC5B,QAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IA0KlB,CAAC;IAxMC;;;OAGG;IACH,IAAY,kBAAkB;QAC5B,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,KACE,IAAI,CAAC,GAAG,CAAC,EACT,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EACtD,CAAC,EAAE,EACH;YACA,OAAO,IAAI,QAAQ,CAAC;SACrB;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAkBO,aAAa,CAAC,GAAW;QAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAEO,gBAAgB,CAAC,EACvB,KAAK,EACL,KAAK,GAIN;QACC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,QAAG,EAAE,CAAC,CAAC;IACnE,CAAC;IAEO,uBAAuB,CAAC,SAAoB;QAClD,IAAI,CAAC,SAAS,EAAE;YACd,OAAO;SACR;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,QAAQ,GAAG,QAAG,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,aAAa,CAAC,KAAK,GAAG,MAAM,EAAE,IAAY;QACxC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;YAChB,QAAQ,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAChE,MAAM,CACP,EAAE,CAAC;SACL;aAAM;YACL,QAAQ,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAChC,GAAG,CACJ,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;SACxD;QACD,OAAO,GAAG,QAAQ,KAAK,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,QAAG,CAAC,CAAC;IAC1B,CAAC;IAED,oBAAoB,CAAC,KAAK,GAAG,MAAM;QACjC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,mCAAmC,CAAC,KAAK,GAAG,MAAM;QAChD,IAAI,CAAC,aAAa,CAChB,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,QAAG,EAAE,CACtE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAyB;QACrD,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,CAAC,gBAAgB,CAAC;YACpB,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAExC;;WAEG;QACH,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YACpC,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,aAAa,CAChB,GAAG,KAAK,CAAC,IAAI,CACX,iCAAiC,CAClC,yBAAyB,IAAI,GAAG,QAAG,EAAE,CACvC,CAAC;SACH;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAwB;QACnD,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,CAAC,gBAAgB,CAAC;YACpB,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAExC;;WAEG;QACH,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YACpC,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,aAAa,CAChB,GAAG,KAAK,CAAC,IAAI,CACX,mCAAmC,CACpC,yBAAyB,IAAI,IAAI,CACnC,CAAC;SACH;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAwB;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,CAAC,gBAAgB,CAAC;YACpB,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;SACtC,CAAC,CAAC;QAEH,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAExC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAA2B;QACnD,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,CAAC,gBAAgB,CAAC;YACpB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAExC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,aAAa,CAAC,OAAe;QAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,CAAC,gBAAgB,CAAC;YACpB,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,OAAO;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,UAAU,CACR,OAAe,EACf,cAA+B,eAAe,CAAC,OAAO;QAEtD,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,aAAa,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,EAAE,CAAC;QAC1D,IAAI,WAAW,KAAK,eAAe,CAAC,OAAO,EAAE;YAC3C,aAAa,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;SACjD;QACD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAElC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAA6C;QACxE,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,KAAK,GAAG,KAAK,IAAI,OAAO,CAAC;QAEzB,IAAI,CAAC,gBAAgB,CAAC;YACpB,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAExC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;CACF;AAEY,QAAA,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC"}
|