@qodalis/cli-core 0.0.6 → 0.0.7
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 +53 -10
- package/esm2022/lib/interfaces/index.mjs +1 -1
- package/esm2022/lib/models/index.mjs +13 -1
- package/esm2022/lib/modules/index.mjs +3 -4
- package/esm2022/lib/utils/index.mjs +4 -1
- package/esm2022/lib/utils/object-describer.mjs +133 -0
- package/fesm2022/qodalis-cli-core.mjs +147 -3
- package/fesm2022/qodalis-cli-core.mjs.map +1 -1
- package/lib/interfaces/index.d.ts +30 -9
- package/lib/models/index.d.ts +52 -5
- package/lib/utils/index.d.ts +3 -0
- package/lib/utils/object-describer.d.ts +12 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -23,6 +23,8 @@ npm install @qodalis/angular-cli
|
|
|
23
23
|
|
|
24
24
|
## Usage
|
|
25
25
|
|
|
26
|
+

|
|
27
|
+
|
|
26
28
|
After installing, you can integrate the CLI component into your Angular application:
|
|
27
29
|
|
|
28
30
|
## Basic Setup
|
|
@@ -33,42 +35,73 @@ After installing, you can integrate the CLI component into your Angular applicat
|
|
|
33
35
|
import { CliModule } from "@qodalis/angular-cli";
|
|
34
36
|
|
|
35
37
|
@NgModule({
|
|
36
|
-
imports: [CliModule],
|
|
38
|
+
imports: [CliModule, Cli***Module],
|
|
37
39
|
})
|
|
38
40
|
export class AppModule {}
|
|
39
41
|
```
|
|
40
42
|
|
|
41
|
-
2.
|
|
43
|
+
2. Set the styles in the **angular.json**
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"projects": {
|
|
48
|
+
"your-project": {
|
|
49
|
+
"architect": {
|
|
50
|
+
"options": {
|
|
51
|
+
"styles": ["node_modules/@qodalis/angular-cli/src/assets/styles.sass"]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
3. Add the CLI Component to Your Template:
|
|
42
60
|
|
|
43
61
|
```html
|
|
44
|
-
|
|
62
|
+
<!--
|
|
63
|
+
Show a terminal
|
|
64
|
+
-->
|
|
65
|
+
<cli [options]="cliOptions" />
|
|
66
|
+
|
|
67
|
+
<!--
|
|
68
|
+
Show a terminal wrapped in a container that is located at the bottom of the page and can be collapsed/expanded
|
|
69
|
+
-->
|
|
70
|
+
<cli-panel />
|
|
45
71
|
```
|
|
46
72
|
|
|
47
|
-
|
|
73
|
+
4. Configure the CLI:
|
|
48
74
|
|
|
49
75
|
```typescript
|
|
50
|
-
cliOptions = {
|
|
76
|
+
cliOptions = {
|
|
77
|
+
welcomeMessage: "-- your custom welcome message --",
|
|
78
|
+
//TODO: supports multiple customizations
|
|
79
|
+
};
|
|
51
80
|
```
|
|
52
81
|
|
|
53
82
|
## Example Commands
|
|
54
83
|
|
|
55
84
|
### Built-in Commands
|
|
56
85
|
|
|
86
|
+
### System
|
|
87
|
+
|
|
57
88
|
- **help**: Displays available commands and their descriptions.
|
|
58
89
|
- **clear**: Clears the terminal screen.
|
|
59
90
|
- **echo \<message\>**: Prints the provided message to the terminal.
|
|
60
91
|
- **ping**: Pings the server
|
|
61
92
|
- **theme**: Interact with the cli theme
|
|
62
|
-
- **cookies**: Interact with the cookies
|
|
63
93
|
- **history**: Prints the command history of the current session
|
|
64
|
-
- **local-storage**: Interact with the local storage
|
|
65
|
-
- **regex**: Provide utilities for working with regular expressions
|
|
66
|
-
- **su**: Switch user
|
|
67
94
|
- **version**: Prints the version information
|
|
68
|
-
- **whoami**: Display current user information
|
|
69
95
|
- **eval**: Evaluate a JavaScript expression
|
|
70
96
|
- **packages**: Manage packages in the cli
|
|
71
97
|
|
|
98
|
+
### Users
|
|
99
|
+
|
|
100
|
+
- **whoami**: Display current user information
|
|
101
|
+
- **su**: Switch user
|
|
102
|
+
- **adduser**: Add a new user
|
|
103
|
+
- **listusers**: List all users
|
|
104
|
+
|
|
72
105
|
## Cli Packages
|
|
73
106
|
|
|
74
107
|
- Add JavaScript packages dynamically.
|
|
@@ -77,6 +110,8 @@ cliOptions = {};
|
|
|
77
110
|
|
|
78
111
|
### Usage
|
|
79
112
|
|
|
113
|
+

|
|
114
|
+
|
|
80
115
|
### Add a Package
|
|
81
116
|
|
|
82
117
|
To add a package, use the packages add command:
|
|
@@ -88,6 +123,9 @@ root:~$ packages add <package-name>
|
|
|
88
123
|
Example:
|
|
89
124
|
|
|
90
125
|
```bash
|
|
126
|
+
root:~$ packages add guid
|
|
127
|
+
root:~$ packages add regex
|
|
128
|
+
root:~$ packages add string
|
|
91
129
|
root:~$ packages add lodash
|
|
92
130
|
```
|
|
93
131
|
|
|
@@ -122,6 +160,11 @@ root:~$
|
|
|
122
160
|
- [@qodalis/cli-guid](https://www.npmjs.com/package/@qodalis/cli-guid) - utility for guid
|
|
123
161
|
- [@qodalis/cli-server-logs](https://www.npmjs.com/package/@qodalis/cli-server-logs) - utility for live server logs
|
|
124
162
|
- [@qodalis/cli-text-to-image](https://www.npmjs.com/package/@qodalis/cli-text-to-image) - utility to generate images from text
|
|
163
|
+
- [@qodalis/cli-regex](https://www.npmjs.com/package/@qodalis/cli-regex) - provide utilities for working with regular expressions
|
|
164
|
+
- [@qodalis/cli-speed-test](https://www.npmjs.com/package/@qodalis/cli-speed-test) - run the internet speed test
|
|
165
|
+
- [@qodalis/cli-browser-storage](https://www.npmjs.com/package/@qodalis/cli-browser-storage) - provide commands to operate with browser storage like cookie, localStorage etc.
|
|
166
|
+
- [@qodalis/cli-string](https://www.npmjs.com/package/@qodalis/cli-browser-storage) - provide commands to operate with strings.
|
|
167
|
+
- More will be implemented ...
|
|
125
168
|
|
|
126
169
|
## Extending with Custom Commands
|
|
127
170
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVybWluYWwgfSBmcm9tICdAeHRlcm0veHRlcm0nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgICBDbGlCYWNrZ3JvdW5kQ29sb3IsXG4gICAgQ2xpRm9yZWdyb3VuZENvbG9yLFxuICAgIENsaU9wdGlvbnMsXG4gICAgQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgSUNsaVVzZXIsXG4gICAgSUNsaVVzZXJTZXNzaW9uLFxuICAgIFBhY2thZ2UsXG59IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaUNvbW1hbmRBdXRob3Ige1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBhdXRob3JcbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZW1haWwgb2YgdGhlIGF1dGhvclxuICAgICAqL1xuICAgIGVtYWlsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNvbW1hbmQgcHJvY2Vzc29yXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaUNvbW1hbmRQcm9jZXNzb3Ige1xuICAgIC8qKlxuICAgICAqIFRoZSBjb21tYW5kIHRoYXQgdGhpcyBwcm9jZXNzb3IgaGFuZGxlc1xuICAgICAqL1xuICAgIGNvbW1hbmQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEEgZGVzY3JpcHRpb24gb2YgdGhlIGNvbW1hbmRcbiAgICAgKi9cbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBhdXRob3Igb2YgdGhlIGNvbW1hbmRcbiAgICAgKi9cbiAgICBhdXRob3I/OiBJQ2xpQ29tbWFuZEF1dGhvcjtcblxuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoZSBwcm9jZXNzb3IgY2FuIGhhbmRsZSB1bmxpc3RlZCBjb21tYW5kc1xuICAgICAqL1xuICAgIGFsbG93VW5saXN0ZWRDb21tYW5kcz86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB0aGUgdmFsdWUgaXMgcmVxdWlyZWRcbiAgICAgKi9cbiAgICB2YWx1ZVJlcXVpcmVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBjb21tYW5kIHByb2Nlc3NvclxuICAgICAqIEBkZWZhdWx0ICcxLjAuMCdcbiAgICAgKi9cbiAgICB2ZXJzaW9uPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhlIHByb2Nlc3NvciBpcyBzZWFsZWQgYW5kIGNhbm5vdCBiZSBleHRlbmRlZFxuICAgICAqL1xuICAgIHNlYWxlZD86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBQcm9jZXNzb3JzIHRoYXQgYXJlIG5lc3RlZCB1bmRlciB0aGlzIHByb2Nlc3NvclxuICAgICAqL1xuICAgIHByb2Nlc3NvcnM/OiBJQ2xpQ29tbWFuZFByb2Nlc3NvcltdO1xuXG4gICAgLyoqXG4gICAgICogUGFyYW1ldGVycyB0aGF0IHRoZSBjb21tYW5kIGFjY2VwdHNcbiAgICAgKi9cbiAgICBwYXJhbWV0ZXJzPzogSUNsaUNvbW1hbmRQYXJhbWV0ZXJEZXNjcmlwdG9yW107XG5cbiAgICAvKipcbiAgICAgKiBQcm9jZXNzIHRoZSBjb21tYW5kXG4gICAgICogQHBhcmFtIGNvbW1hbmQgVGhlIGNvbW1hbmQgdG8gcHJvY2Vzc1xuICAgICAqIEBwYXJhbSBjb250ZXh0IFRoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBjb21tYW5kIGlzIGV4ZWN1dGVkXG4gICAgICovXG4gICAgcHJvY2Vzc0NvbW1hbmQoXG4gICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICApOiBQcm9taXNlPHZvaWQ+O1xuXG4gICAgLyoqXG4gICAgICogV3JpdGUgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBjb21tYW5kXG4gICAgICogQHBhcmFtIGNvbnRleHQgVGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIGNvbW1hbmQgaXMgZXhlY3V0ZWRcbiAgICAgKi9cbiAgICB3cml0ZURlc2NyaXB0aW9uPyhjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCk6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBBIGZ1bmN0aW9uIHRoYXQgdmFsaWRhdGVzIHRoZSBjb21tYW5kIGJlZm9yZSBleGVjdXRpb25cbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHZhbGlkYXRlXG4gICAgICogQHJldHVybnMgQW4gb2JqZWN0IHdpdGggYSB2YWxpZCBwcm9wZXJ0eSB0aGF0IGluZGljYXRlcyBpZiB0aGUgdmFsdWUgaXMgdmFsaWQgYW5kIGFuIG9wdGlvbmFsIG1lc3NhZ2UgcHJvcGVydHkgdGhhdCBjb250YWlucyBhIG1lc3NhZ2UgdG8gZGlzcGxheSBpZiB0aGUgdmFsdWUgaXMgbm90IHZhbGlkXG4gICAgICovXG4gICAgdmFsaWRhdGVCZWZvcmVFeGVjdXRpb24/OiAoXG4gICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICApID0+IHtcbiAgICAgICAgdmFsaWQ6IGJvb2xlYW47XG4gICAgICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgdGhlIGNvbW1hbmQgcHJvY2Vzc29yXG4gICAgICogQHBhcmFtIGNvbnRleHQgVGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIGNvbW1hbmQgaXMgZXhlY3V0ZWRcbiAgICAgKi9cbiAgICBpbml0aWFsaXplPyhjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCk6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNvbW1hbmQgcGFyYW1ldGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaUNvbW1hbmRQYXJhbWV0ZXJEZXNjcmlwdG9yIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyXG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQWxpYXNlcyBmb3IgdGhlIHBhcmFtZXRlclxuICAgICAqL1xuICAgIGFsaWFzZXM/OiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIEEgZGVzY3JpcHRpb24gb2YgdGhlIHBhcmFtZXRlclxuICAgICAqL1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB0aGUgcGFyYW1ldGVyIGlzIHJlcXVpcmVkXG4gICAgICovXG4gICAgcmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdHlwZSBvZiB0aGUgcGFyYW1ldGVyXG4gICAgICovXG4gICAgdHlwZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIHBhcmFtZXRlclxuICAgICAqL1xuICAgIGRlZmF1bHRWYWx1ZT86IGFueTtcblxuICAgIC8qKlxuICAgICAqIEEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgdmFsaWRhdGVzIHRoZSB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byB2YWxpZGF0ZVxuICAgICAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIGEgdmFsaWQgcHJvcGVydHkgdGhhdCBpbmRpY2F0ZXMgaWYgdGhlIHZhbHVlIGlzIHZhbGlkIGFuZCBhbiBvcHRpb25hbCBtZXNzYWdlIHByb3BlcnR5IHRoYXQgY29udGFpbnMgYSBtZXNzYWdlIHRvIGRpc3BsYXkgaWYgdGhlIHZhbHVlIGlzIG5vdCB2YWxpZFxuICAgICAqL1xuICAgIHZhbGlkYXRvcj86ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbmRpY2F0ZXMgaWYgdGhlIHZhbHVlIGlzIHZhbGlkXG4gICAgICAgICAqL1xuICAgICAgICB2YWxpZDogYm9vbGVhbjtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQW4gb3B0aW9uYWwgbWVzc2FnZSB0byBkaXNwbGF5IGlmIHRoZSB2YWx1ZSBpcyBub3QgdmFsaWRcbiAgICAgICAgICovXG4gICAgICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2xpVGVybWluYWxXcml0ZXIge1xuICAgIC8qKlxuICAgICAqIFdyaXRlIHRleHQgdG8gdGhlIHRlcm1pbmFsXG4gICAgICogQHBhcmFtIHRleHQgVGhlIHRleHQgdG8gd3JpdGVcbiAgICAgKi9cbiAgICB3cml0ZSh0ZXh0OiBzdHJpbmcpOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogV3JpdGUgdGV4dCB0byB0aGUgdGVybWluYWwgZm9sbG93ZWQgYnkgYSBuZXdsaW5lXG4gICAgICogQHBhcmFtIHRleHQgVGhlIHRleHQgdG8gd3JpdGVcbiAgICAgKi9cbiAgICB3cml0ZWxuKHRleHQ6IHN0cmluZyk6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZSBhIHN1Y2Nlc3MgbWVzc2FnZSB0byB0aGUgdGVybWluYWxcbiAgICAgKiBAcGFyYW0gbWVzc2FnIFRoZSBtZXNzYWdlIHRvIHdyaXRlXG4gICAgICogQHJldHVybnMgdm9pZFxuICAgICAqL1xuICAgIHdyaXRlU3VjY2VzczogKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFdyaXRlIGFuIGluZm8gbWVzc2FnZSB0byB0aGUgdGVybWluYWxcbiAgICAgKiBAcGFyYW0gbWVzc2FnIFRoZSBtZXNzYWdlIHRvIHdyaXRlXG4gICAgICogQHJldHVybnMgdm9pZFxuICAgICAqL1xuICAgIHdyaXRlSW5mbzogKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFdyaXRlIGFuIGVycm9yIG1lc3NhZ2UgdG8gdGhlIHRlcm1pbmFsXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gd3JpdGVcbiAgICAgKiBAcmV0dXJucyB2b2lkXG4gICAgICovXG4gICAgd3JpdGVFcnJvcjogKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFdyaXRlIGEgd2FybmluZyBtZXNzYWdlIHRvIHRoZSB0ZXJtaW5hbFxuICAgICAqIEBwYXJhbSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIHdyaXRlXG4gICAgICogQHJldHVybnMgdm9pZFxuICAgICAqL1xuICAgIHdyaXRlV2FybmluZzogKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFdyaXRlIGEgbWVzc2FnZSB0byB0aGUgdGVybWluYWwgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbG9yXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gd3JpdGVcbiAgICAgKiBAcGFyYW0gY29sb3IgVGhlIGNvbG9yIHRvIHVzZVxuICAgICAqIEByZXR1cm5zIHZvaWRcbiAgICAgKi9cbiAgICB3cmFwSW5Db2xvcjogKHRleHQ6IHN0cmluZywgY29sb3I6IENsaUZvcmVncm91bmRDb2xvcikgPT4gc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogV3JpdGUgYSBtZXNzYWdlIHRvIHRoZSB0ZXJtaW5hbCB3aXRoIHRoZSBzcGVjaWZpZWQgYmFja2dyb3VuZCBjb2xvclxuICAgICAqIEBwYXJhbSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIHdyaXRlXG4gICAgICogQHBhcmFtIGNvbG9yIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIHRvIHVzZVxuICAgICAqIEByZXR1cm5zIHZvaWRcbiAgICAgKi9cbiAgICB3cmFwSW5CYWNrZ3JvdW5kQ29sb3I6ICh0ZXh0OiBzdHJpbmcsIGNvbG9yOiBDbGlCYWNrZ3JvdW5kQ29sb3IpID0+IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFdyaXRlIGEgSlNPTiBvYmplY3QgdG8gdGhlIHRlcm1pbmFsXG4gICAgICogQHBhcmFtIGpzb24gVGhlIEpTT04gb2JqZWN0IHRvIHdyaXRlXG4gICAgICogQHJldHVybnMgdm9pZFxuICAgICAqL1xuICAgIHdyaXRlSnNvbjogKGpzb246IGFueSkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFdyaXRlIGNvbnRlbnQgdG8gYSBmaWxlXG4gICAgICogQHBhcmFtIGZpbGVOYW1lIFRoZSBuYW1lIG9mIHRoZSBmaWxlIHRvIHdyaXRlIHRvXG4gICAgICogQHBhcmFtIGNvbnRlbnQgVGhlIGNvbnRlbnQgdG8gd3JpdGUgdG8gdGhlIGZpbGVcbiAgICAgKiBAcmV0dXJucyB2b2lkXG4gICAgICovXG4gICAgd3JpdGVUb0ZpbGU6IChmaWxlTmFtZTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZSBhbiBvYmplY3QgYXJyYXkgYXMgYSB0YWJsZSB0byB0aGUgdGVybWluYWxcbiAgICAgKiBAcGFyYW0gb2JqZWN0cyBUaGUgb2JqZWN0cyB0byB3cml0ZSB0byB0aGUgdGFibGVcbiAgICAgKiBAcmV0dXJucyB2b2lkXG4gICAgICovXG4gICAgd3JpdGVPYmplY3RBcnJheVRhYmxlKG9iamVjdHM6IGFueVtdKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFdyaXRlIGEgdGFibGUgdG8gdGhlIHRlcm1pbmFsXG4gICAgICogQHBhcmFtIGhlYWRlcnMgVGhlIGhlYWRlcnMgb2YgdGhlIHRhYmxlXG4gICAgICogQHBhcmFtIHJvd3MgVGhlIHJvd3Mgb2YgdGhlIHRhYmxlXG4gICAgICogQHJldHVybnMgdm9pZFxuICAgICAqL1xuICAgIHdyaXRlVGFibGUoaGVhZGVyczogc3RyaW5nW10sIHJvd3M6IHN0cmluZ1tdW10pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDbGlQcm9ncmVzc0JhciB7XG4gICAgLyoqXG4gICAgICogSW5kaWNhdGVzIGlmIHRoZSBwcm9ncmVzcyBiYXIgaXMgcnVubmluZ1xuICAgICAqL1xuICAgIGlzUnVubmluZzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIHByb2dyZXNzIGJhclxuICAgICAqL1xuICAgIHNob3c6ICgpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBIaWRlIHRoZSBwcm9ncmVzcyBiYXJcbiAgICAgKi9cbiAgICBoaWRlOiAoKSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzcGlubmVyIGZvciB0aGUgQ0xJXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaVNwaW5uZXIgZXh0ZW5kcyBJQ2xpUHJvZ3Jlc3NCYXIge31cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcHJvZ3Jlc3MgYmFyIGZvciB0aGUgQ0xJXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaVBlcmNlbnRhZ2VQcm9ncmVzc0JhciBleHRlbmRzIElDbGlQcm9ncmVzc0JhciB7XG4gICAgLyoqXG4gICAgICogVXBkYXRlIHRoZSBwcm9ncmVzcyBvZiB0aGUgcHJvZ3Jlc3MgYmFyXG4gICAgICogQHBhcmFtIHByb2dyZXNzIFRoZSBwcm9ncmVzcyB0byB1cGRhdGUgdG9cbiAgICAgKiBAcmV0dXJucyB2b2lkXG4gICAgICovXG4gICAgdXBkYXRlOiAocHJvZ3Jlc3M6IG51bWJlcikgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIENvbXBsZXRlIHRoZSBwcm9ncmVzcyBiYXJcbiAgICAgKiBAcmV0dXJucyB2b2lkXG4gICAgICovXG4gICAgY29tcGxldGU6ICgpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNsaXBib2FyZCBmb3IgdGhlIENMSVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDbGlDbGlwYm9hcmQge1xuICAgIC8qKlxuICAgICAqIFdyaXRlIHRleHQgdG8gdGhlIGNsaXBib2FyZFxuICAgICAqIEBwYXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIHdyaXRlIHRvIHRoZSBjbGlwYm9hcmRcbiAgICAgKiBAcmV0dXJucyB2b2lkXG4gICAgICovXG4gICAgd3JpdGU6ICh0ZXh0OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiBSZWFkIHRleHQgZnJvbSB0aGUgY2xpcGJvYXJkXG4gICAgICogQHJldHVybnMgVGhlIHRleHQgcmVhZCBmcm9tIHRoZSBjbGlwYm9hcmRcbiAgICAgKi9cbiAgICByZWFkOiAoKSA9PiBQcm9taXNlPHN0cmluZz47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNlcnZpY2UgdGhhdCBleGVjdXRlcyBjb21tYW5kc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElDbGlDb21tYW5kRXhlY3V0b3JTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb21tYW5kXG4gICAgICogQHBhcmFtIGNvbnRleHRcbiAgICAgKi9cbiAgICBzaG93SGVscChcbiAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICk6IFByb21pc2U8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiBMaXN0IGFsbCBjb21tYW5kc1xuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGFsbCBjb21tYW5kc1xuICAgICAqL1xuICAgIGxpc3RDb21tYW5kcygpOiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIEZpbmQgYSBwcm9jZXNzb3IgZm9yIGEgY29tbWFuZFxuICAgICAqIEBwYXJhbSBtYWluQ29tbWFuZFxuICAgICAqIEBwYXJhbSBjaGFpbkNvbW1hbmRzXG4gICAgICovXG4gICAgZmluZFByb2Nlc3NvcihcbiAgICAgICAgbWFpbkNvbW1hbmQ6IHN0cmluZyxcbiAgICAgICAgY2hhaW5Db21tYW5kczogc3RyaW5nW10sXG4gICAgKTogSUNsaUNvbW1hbmRQcm9jZXNzb3IgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciBhIHByb2Nlc3NvclxuICAgICAqIEBwYXJhbSBwcm9jZXNzb3JcbiAgICAgKi9cbiAgICByZWdpc3RlclByb2Nlc3Nvcihwcm9jZXNzb3I6IElDbGlDb21tYW5kUHJvY2Vzc29yKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFVucmVnaXN0ZXIgYSBwcm9jZXNzb3JcbiAgICAgKiBAcGFyYW0gcHJvY2Vzc29yXG4gICAgICovXG4gICAgdW5yZWdpc3RlclByb2Nlc3Nvcihwcm9jZXNzb3I6IElDbGlDb21tYW5kUHJvY2Vzc29yKTogdm9pZDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBjb250ZXh0IGluIHdoaWNoIGEgY29tbWFuZCBpcyBleGVjdXRlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDbGlFeGVjdXRpb25Db250ZXh0IHtcbiAgICAvKipcbiAgICAgKiBUaGUgY3VycmVudCB1c2VyIHNlc3Npb25cbiAgICAgKi9cbiAgICB1c2VyU2Vzc2lvbj86IElDbGlVc2VyU2Vzc2lvbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzcGlubmVyIHRvIHVzZSBmb3Igc2hvd2luZy9oaWRpbmcgdGhlIGxvYWRlclxuICAgICAqL1xuICAgIHNwaW5uZXI/OiBJQ2xpU3Bpbm5lcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBwcm9ncmVzcyBiYXIgdG8gdXNlIGZvciBzaG93aW5nIHByb2dyZXNzXG4gICAgICovXG4gICAgcHJvZ3Jlc3NCYXI6IElDbGlQZXJjZW50YWdlUHJvZ3Jlc3NCYXI7XG5cbiAgICAvKipcbiAgICAgKiBBIHN1YmplY3QgdGhhdCBlbWl0cyB3aGVuIHRoZSBjb21tYW5kIGlzIGFib3J0ZWRcbiAgICAgKi9cbiAgICBvbkFib3J0OiBTdWJqZWN0PHZvaWQ+O1xuXG4gICAgLyoqXG4gICAgICogVGhlIHRlcm1pbmFsIHRvIHVzZSBmb3Igd3JpdGluZ1xuICAgICAqL1xuICAgIHRlcm1pbmFsOiBUZXJtaW5hbDtcblxuICAgIC8qKlxuICAgICAqIFRoZSB3cml0ZXIgdG8gdXNlIGZvciB3cml0aW5nIHRvIHRoZSB0ZXJtaW5hbFxuICAgICAqL1xuICAgIHdyaXRlcjogSUNsaVRlcm1pbmFsV3JpdGVyO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNvbW1hbmQgZXhlY3V0b3IgdG8gdXNlIGZvciBleGVjdXRpbmcgY29tbWFuZHNcbiAgICAgKi9cbiAgICBleGVjdXRvcjogSUNsaUNvbW1hbmRFeGVjdXRvclNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY2xpcGJvYXJkIHRvIHVzZSBmb3IgY29weWluZy9wYXN0aW5nXG4gICAgICovXG4gICAgY2xpcGJvYXJkOiBJQ2xpQ2xpcGJvYXJkO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgc3RvcmUgdG8gdXNlIGZvciBzdG9yaW5nIGRhdGFcbiAgICAgKi9cbiAgICBkYXRhU3RvcmU6IElDbGlDb21tYW5kRGF0YVN0b3JlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG9wdGlvbnMgZm9yIHRoZSBDTElcbiAgICAgKi9cbiAgICBvcHRpb25zPzogQ2xpT3B0aW9ucztcblxuICAgIC8qKlxuICAgICAqIFRoZSBwcm9tcHQgdG8gdXNlIGZvciBwcm9tcHRpbmcgdGhlIHVzZXIgZm9yIGlucHV0XG4gICAgICovXG4gICAgc2hvd1Byb21wdDogKCkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZGF0YSBzdG9yZSBmb3Igc3RvcmluZyBkYXRhIGFzc29jaWF0ZWQgd2l0aCBjb21tYW5kc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElDbGlDb21tYW5kRGF0YVN0b3JlIHtcbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YSBzdG9yZVxuICAgICAqL1xuICAgIGRhdGE6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+O1xuXG4gICAgLyoqXG4gICAgICogQXBwZW5kIGRhdGEgdG8gdGhlIGRhdGEgc3RvcmVcbiAgICAgKiBAcGFyYW0gY29tbWFuZFxuICAgICAqIEBwYXJhbSBrZXlcbiAgICAgKiBAcGFyYW0gZGF0YVxuICAgICAqL1xuICAgIGFwcGVuZERhdGEoY29tbWFuZDogc3RyaW5nLCBrZXk6IHN0cmluZywgZGF0YTogYW55KTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEdldCBkYXRhIGZyb20gdGhlIGRhdGEgc3RvcmVcbiAgICAgKiBAcGFyYW0gY29tbWFuZFxuICAgICAqIEBwYXJhbSBrZXlcbiAgICAgKi9cbiAgICBnZXREYXRhPFQgPSBhbnk+KGNvbW1hbmQ6IHN0cmluZywga2V5OiBzdHJpbmcpOiBUO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzZXJ2aWNlIHRoYXQgbWFuYWdlcyB1c2VyIHNlc3Npb25zIGluIHRoZSBDTElcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2xpVXNlclNlc3Npb25TZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjdXJyZW50IHVzZXIgc2Vzc2lvblxuICAgICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgY3VycmVudCB1c2VyIHNlc3Npb25cbiAgICAgKi9cbiAgICBnZXRVc2VyU2Vzc2lvbigpOiBPYnNlcnZhYmxlPElDbGlVc2VyU2Vzc2lvbiB8IHVuZGVmaW5lZD47XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjdXJyZW50IHVzZXIgc2Vzc2lvblxuICAgICAqIEBwYXJhbSBzZXNzaW9uIFRoZSBzZXNzaW9uIHRvIHNldFxuICAgICAqL1xuICAgIHNldFVzZXJTZXNzaW9uKHNlc3Npb246IElDbGlVc2VyU2Vzc2lvbik6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNlcnZpY2UgdGhhdCBtYW5hZ2VzIHVzZXJzIGluIHRoZSBDTElcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2xpVXNlcnNTdG9yZVNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGN1cnJlbnQgdXNlcnNcbiAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGN1cnJlbnQgdXNlcnNcbiAgICAgKi9cbiAgICBnZXRVc2VycygpOiBPYnNlcnZhYmxlPElDbGlVc2VyW10+O1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY3VycmVudCB1c2Vyc1xuICAgICAqIEBwYXJhbSB1c2VycyBUaGUgdXNlcnMgdG8gc2V0XG4gICAgICovXG4gICAgc2V0VXNlcnModXNlcnM6IElDbGlVc2VyW10pOiBQcm9taXNlPHZvaWQ+O1xuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIHVzZXIgYnkgaWRcbiAgICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSB1c2VyIHRvIGdldFxuICAgICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXNlciB3aXRoIHRoZSBzcGVjaWZpZWQgaWRcbiAgICAgKi9cbiAgICBnZXRVc2VyKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElDbGlVc2VyIHwgdW5kZWZpbmVkPjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2VydmljZSB0aGF0IHBpbmdzIHRoZSBzZXJ2ZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2xpUGluZ1NlcnZlclNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIFBpbmdzIHRoZSBzZXJ2ZXJcbiAgICAgKi9cbiAgICBwaW5nKCk6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIG1vZHVsZSBmb3IgdGhlIENMSVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDbGlVbWRNb2R1bGUge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBtb2R1bGVcbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgcHJvY2Vzc29ycyBmb3IgdGhlIG1vZHVsZVxuICAgICAqL1xuICAgIHByb2Nlc3NvcnM6IElDbGlDb21tYW5kUHJvY2Vzc29yW107XG59XG4iXX0=
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVybWluYWwgfSBmcm9tICdAeHRlcm0veHRlcm0nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgICBDbGlCYWNrZ3JvdW5kQ29sb3IsXG4gICAgQ2xpRm9yZWdyb3VuZENvbG9yLFxuICAgIENsaU9wdGlvbnMsXG4gICAgQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgQ2xpUHJvY2Vzc29yTWV0YWRhdGEsXG4gICAgSUNsaVVzZXIsXG4gICAgSUNsaVVzZXJTZXNzaW9uLFxuICAgIFBhY2thZ2UsXG59IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaUNvbW1hbmRBdXRob3Ige1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBhdXRob3JcbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZW1haWwgb2YgdGhlIGF1dGhvclxuICAgICAqL1xuICAgIGVtYWlsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNvbW1hbmQgcHJvY2Vzc29yXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaUNvbW1hbmRQcm9jZXNzb3Ige1xuICAgIC8qKlxuICAgICAqIFRoZSBjb21tYW5kIHRoYXQgdGhpcyBwcm9jZXNzb3IgaGFuZGxlc1xuICAgICAqL1xuICAgIGNvbW1hbmQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEEgZGVzY3JpcHRpb24gb2YgdGhlIGNvbW1hbmRcbiAgICAgKi9cbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBhdXRob3Igb2YgdGhlIGNvbW1hbmRcbiAgICAgKi9cbiAgICBhdXRob3I/OiBJQ2xpQ29tbWFuZEF1dGhvcjtcblxuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoZSBwcm9jZXNzb3IgY2FuIGhhbmRsZSB1bmxpc3RlZCBjb21tYW5kc1xuICAgICAqL1xuICAgIGFsbG93VW5saXN0ZWRDb21tYW5kcz86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB0aGUgdmFsdWUgaXMgcmVxdWlyZWRcbiAgICAgKi9cbiAgICB2YWx1ZVJlcXVpcmVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBjb21tYW5kIHByb2Nlc3NvclxuICAgICAqIEBkZWZhdWx0ICcxLjAuMCdcbiAgICAgKi9cbiAgICB2ZXJzaW9uPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG1ldGFkYXRhIGZvciB0aGUgY29tbWFuZCBwcm9jZXNzb3JcbiAgICAgKi9cbiAgICBtZXRhZGF0YT86IENsaVByb2Nlc3Nvck1ldGFkYXRhO1xuXG4gICAgLyoqXG4gICAgICogUHJvY2Vzc29ycyB0aGF0IGFyZSBuZXN0ZWQgdW5kZXIgdGhpcyBwcm9jZXNzb3JcbiAgICAgKi9cbiAgICBwcm9jZXNzb3JzPzogSUNsaUNvbW1hbmRQcm9jZXNzb3JbXTtcblxuICAgIC8qKlxuICAgICAqIFBhcmFtZXRlcnMgdGhhdCB0aGUgY29tbWFuZCBhY2NlcHRzXG4gICAgICovXG4gICAgcGFyYW1ldGVycz86IElDbGlDb21tYW5kUGFyYW1ldGVyRGVzY3JpcHRvcltdO1xuXG4gICAgLyoqXG4gICAgICogUHJvY2VzcyB0aGUgY29tbWFuZFxuICAgICAqIEBwYXJhbSBjb21tYW5kIFRoZSBjb21tYW5kIHRvIHByb2Nlc3NcbiAgICAgKiBAcGFyYW0gY29udGV4dCBUaGUgY29udGV4dCBpbiB3aGljaCB0aGUgY29tbWFuZCBpcyBleGVjdXRlZFxuICAgICAqL1xuICAgIHByb2Nlc3NDb21tYW5kKFxuICAgICAgICBjb21tYW5kOiBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICAgICAgY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG4gICAgKTogUHJvbWlzZTx2b2lkPjtcblxuICAgIC8qKlxuICAgICAqIFdyaXRlIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgY29tbWFuZFxuICAgICAqIEBwYXJhbSBjb250ZXh0IFRoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBjb21tYW5kIGlzIGV4ZWN1dGVkXG4gICAgICovXG4gICAgd3JpdGVEZXNjcmlwdGlvbj8oY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQSBmdW5jdGlvbiB0aGF0IHZhbGlkYXRlcyB0aGUgY29tbWFuZCBiZWZvcmUgZXhlY3V0aW9uXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byB2YWxpZGF0ZVxuICAgICAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIGEgdmFsaWQgcHJvcGVydHkgdGhhdCBpbmRpY2F0ZXMgaWYgdGhlIHZhbHVlIGlzIHZhbGlkIGFuZCBhbiBvcHRpb25hbCBtZXNzYWdlIHByb3BlcnR5IHRoYXQgY29udGFpbnMgYSBtZXNzYWdlIHRvIGRpc3BsYXkgaWYgdGhlIHZhbHVlIGlzIG5vdCB2YWxpZFxuICAgICAqL1xuICAgIHZhbGlkYXRlQmVmb3JlRXhlY3V0aW9uPzogKFxuICAgICAgICBjb21tYW5kOiBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICAgICAgY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG4gICAgKSA9PiB7XG4gICAgICAgIHZhbGlkOiBib29sZWFuO1xuICAgICAgICBtZXNzYWdlPzogc3RyaW5nO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplIHRoZSBjb21tYW5kIHByb2Nlc3NvclxuICAgICAqIEBwYXJhbSBjb250ZXh0IFRoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBjb21tYW5kIGlzIGV4ZWN1dGVkXG4gICAgICovXG4gICAgaW5pdGlhbGl6ZT8oY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb21tYW5kIHBhcmFtZXRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDbGlDb21tYW5kUGFyYW1ldGVyRGVzY3JpcHRvciB7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlclxuICAgICAqL1xuICAgIG5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEFsaWFzZXMgZm9yIHRoZSBwYXJhbWV0ZXJcbiAgICAgKi9cbiAgICBhbGlhc2VzPzogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBwYXJhbWV0ZXJcbiAgICAgKi9cbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhlIHBhcmFtZXRlciBpcyByZXF1aXJlZFxuICAgICAqL1xuICAgIHJlcXVpcmVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHR5cGUgb2YgdGhlIHBhcmFtZXRlclxuICAgICAqL1xuICAgIHR5cGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXJcbiAgICAgKi9cbiAgICBkZWZhdWx0VmFsdWU/OiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBBIHZhbGlkYXRvciBmdW5jdGlvbiB0aGF0IHZhbGlkYXRlcyB0aGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlclxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gdmFsaWRhdGVcbiAgICAgKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBhIHZhbGlkIHByb3BlcnR5IHRoYXQgaW5kaWNhdGVzIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCBhbmQgYW4gb3B0aW9uYWwgbWVzc2FnZSBwcm9wZXJ0eSB0aGF0IGNvbnRhaW5zIGEgbWVzc2FnZSB0byBkaXNwbGF5IGlmIHRoZSB2YWx1ZSBpcyBub3QgdmFsaWRcbiAgICAgKi9cbiAgICB2YWxpZGF0b3I/OiAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogSW5kaWNhdGVzIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZFxuICAgICAgICAgKi9cbiAgICAgICAgdmFsaWQ6IGJvb2xlYW47XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFuIG9wdGlvbmFsIG1lc3NhZ2UgdG8gZGlzcGxheSBpZiB0aGUgdmFsdWUgaXMgbm90IHZhbGlkXG4gICAgICAgICAqL1xuICAgICAgICBtZXNzYWdlPzogc3RyaW5nO1xuICAgIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaVRlcm1pbmFsV3JpdGVyIHtcbiAgICAvKipcbiAgICAgKiBXcml0ZSB0ZXh0IHRvIHRoZSB0ZXJtaW5hbFxuICAgICAqIEBwYXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIHdyaXRlXG4gICAgICovXG4gICAgd3JpdGUodGV4dDogc3RyaW5nKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFdyaXRlIHRleHQgdG8gdGhlIHRlcm1pbmFsIGZvbGxvd2VkIGJ5IGEgbmV3bGluZVxuICAgICAqIEBwYXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIHdyaXRlXG4gICAgICovXG4gICAgd3JpdGVsbih0ZXh0OiBzdHJpbmcpOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogV3JpdGUgYSBzdWNjZXNzIG1lc3NhZ2UgdG8gdGhlIHRlcm1pbmFsXG4gICAgICogQHBhcmFtIG1lc3NhZyBUaGUgbWVzc2FnZSB0byB3cml0ZVxuICAgICAqIEByZXR1cm5zIHZvaWRcbiAgICAgKi9cbiAgICB3cml0ZVN1Y2Nlc3M6IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZSBhbiBpbmZvIG1lc3NhZ2UgdG8gdGhlIHRlcm1pbmFsXG4gICAgICogQHBhcmFtIG1lc3NhZyBUaGUgbWVzc2FnZSB0byB3cml0ZVxuICAgICAqIEByZXR1cm5zIHZvaWRcbiAgICAgKi9cbiAgICB3cml0ZUluZm86IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZSBhbiBlcnJvciBtZXNzYWdlIHRvIHRoZSB0ZXJtaW5hbFxuICAgICAqIEBwYXJhbSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIHdyaXRlXG4gICAgICogQHJldHVybnMgdm9pZFxuICAgICAqL1xuICAgIHdyaXRlRXJyb3I6IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZSBhIHdhcm5pbmcgbWVzc2FnZSB0byB0aGUgdGVybWluYWxcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgbWVzc2FnZSB0byB3cml0ZVxuICAgICAqIEByZXR1cm5zIHZvaWRcbiAgICAgKi9cbiAgICB3cml0ZVdhcm5pbmc6IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZSBhIG1lc3NhZ2UgdG8gdGhlIHRlcm1pbmFsIHdpdGggdGhlIHNwZWNpZmllZCBjb2xvclxuICAgICAqIEBwYXJhbSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIHdyaXRlXG4gICAgICogQHBhcmFtIGNvbG9yIFRoZSBjb2xvciB0byB1c2VcbiAgICAgKiBAcmV0dXJucyB2b2lkXG4gICAgICovXG4gICAgd3JhcEluQ29sb3I6ICh0ZXh0OiBzdHJpbmcsIGNvbG9yOiBDbGlGb3JlZ3JvdW5kQ29sb3IpID0+IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFdyaXRlIGEgbWVzc2FnZSB0byB0aGUgdGVybWluYWwgd2l0aCB0aGUgc3BlY2lmaWVkIGJhY2tncm91bmQgY29sb3JcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgbWVzc2FnZSB0byB3cml0ZVxuICAgICAqIEBwYXJhbSBjb2xvciBUaGUgYmFja2dyb3VuZCBjb2xvciB0byB1c2VcbiAgICAgKiBAcmV0dXJucyB2b2lkXG4gICAgICovXG4gICAgd3JhcEluQmFja2dyb3VuZENvbG9yOiAodGV4dDogc3RyaW5nLCBjb2xvcjogQ2xpQmFja2dyb3VuZENvbG9yKSA9PiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZSBhIEpTT04gb2JqZWN0IHRvIHRoZSB0ZXJtaW5hbFxuICAgICAqIEBwYXJhbSBqc29uIFRoZSBKU09OIG9iamVjdCB0byB3cml0ZVxuICAgICAqIEByZXR1cm5zIHZvaWRcbiAgICAgKi9cbiAgICB3cml0ZUpzb246IChqc29uOiBhbnkpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZSBjb250ZW50IHRvIGEgZmlsZVxuICAgICAqIEBwYXJhbSBmaWxlTmFtZSBUaGUgbmFtZSBvZiB0aGUgZmlsZSB0byB3cml0ZSB0b1xuICAgICAqIEBwYXJhbSBjb250ZW50IFRoZSBjb250ZW50IHRvIHdyaXRlIHRvIHRoZSBmaWxlXG4gICAgICogQHJldHVybnMgdm9pZFxuICAgICAqL1xuICAgIHdyaXRlVG9GaWxlOiAoZmlsZU5hbWU6IHN0cmluZywgY29udGVudDogc3RyaW5nKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogV3JpdGUgYW4gb2JqZWN0IGFycmF5IGFzIGEgdGFibGUgdG8gdGhlIHRlcm1pbmFsXG4gICAgICogQHBhcmFtIG9iamVjdHMgVGhlIG9iamVjdHMgdG8gd3JpdGUgdG8gdGhlIHRhYmxlXG4gICAgICogQHJldHVybnMgdm9pZFxuICAgICAqL1xuICAgIHdyaXRlT2JqZWN0c0FzVGFibGUob2JqZWN0czogYW55W10pOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogV3JpdGUgYSB0YWJsZSB0byB0aGUgdGVybWluYWxcbiAgICAgKiBAcGFyYW0gaGVhZGVycyBUaGUgaGVhZGVycyBvZiB0aGUgdGFibGVcbiAgICAgKiBAcGFyYW0gcm93cyBUaGUgcm93cyBvZiB0aGUgdGFibGVcbiAgICAgKiBAcmV0dXJucyB2b2lkXG4gICAgICovXG4gICAgd3JpdGVUYWJsZShoZWFkZXJzOiBzdHJpbmdbXSwgcm93czogc3RyaW5nW11bXSk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaVByb2dyZXNzQmFyIHtcbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZXMgaWYgdGhlIHByb2dyZXNzIGJhciBpcyBydW5uaW5nXG4gICAgICovXG4gICAgaXNSdW5uaW5nOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogU2hvdyB0aGUgcHJvZ3Jlc3MgYmFyXG4gICAgICovXG4gICAgc2hvdzogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEhpZGUgdGhlIHByb2dyZXNzIGJhclxuICAgICAqL1xuICAgIGhpZGU6ICgpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNwaW5uZXIgZm9yIHRoZSBDTElcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2xpU3Bpbm5lciBleHRlbmRzIElDbGlQcm9ncmVzc0JhciB7XG4gICAgLyoqXG4gICAgICogU2V0IHRoZSB0ZXh0IG9mIHRoZSBzcGlubmVyXG4gICAgICogQHBhcmFtIHRleHQgVGhlIHRleHQgdG8gc2V0XG4gICAgICovXG4gICAgc2V0VGV4dDogKHRleHQ6IHN0cmluZykgPT4gdm9pZDtcbn1cblxuZXhwb3J0IHR5cGUgQ2xpUGVyY2VudGFnZVByb2dyZXNzQmFyVXBkYXRlVmFsdWVPcHRpb25zID0ge1xuICAgIC8qKlxuICAgICAqIFRoZSB0eXBlIG9mIHVwZGF0ZSB0byBwZXJmb3JtXG4gICAgICogQGRlZmF1bHQgJ3JlcGxhY2UnXG4gICAgICovXG4gICAgdHlwZT86ICdyZXBsYWNlJyB8ICdpbmNyZW1lbnQnO1xufTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcHJvZ3Jlc3MgYmFyIGZvciB0aGUgQ0xJXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaVBlcmNlbnRhZ2VQcm9ncmVzc0JhciBleHRlbmRzIElDbGlQcm9ncmVzc0JhciB7XG4gICAgLyoqXG4gICAgICogVXBkYXRlIHRoZSBwcm9ncmVzcyBvZiB0aGUgcHJvZ3Jlc3MgYmFyXG4gICAgICogQHBhcmFtIHByb2dyZXNzIFRoZSBwcm9ncmVzcyB0byB1cGRhdGUgdG9cbiAgICAgKiBAcmV0dXJucyB2b2lkXG4gICAgICovXG4gICAgdXBkYXRlOiAoXG4gICAgICAgIHByb2dyZXNzOiBudW1iZXIsXG4gICAgICAgIG9wdGlvbnM/OiBDbGlQZXJjZW50YWdlUHJvZ3Jlc3NCYXJVcGRhdGVWYWx1ZU9wdGlvbnMsXG4gICAgKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQ29tcGxldGUgdGhlIHByb2dyZXNzIGJhclxuICAgICAqIEByZXR1cm5zIHZvaWRcbiAgICAgKi9cbiAgICBjb21wbGV0ZTogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgdGV4dCBvZiB0aGUgc3Bpbm5lclxuICAgICAqIEBwYXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIHNldFxuICAgICAqL1xuICAgIHNldFRleHQ6ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNsaXBib2FyZCBmb3IgdGhlIENMSVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDbGlDbGlwYm9hcmQge1xuICAgIC8qKlxuICAgICAqIFdyaXRlIHRleHQgdG8gdGhlIGNsaXBib2FyZFxuICAgICAqIEBwYXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIHdyaXRlIHRvIHRoZSBjbGlwYm9hcmRcbiAgICAgKiBAcmV0dXJucyB2b2lkXG4gICAgICovXG4gICAgd3JpdGU6ICh0ZXh0OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiBSZWFkIHRleHQgZnJvbSB0aGUgY2xpcGJvYXJkXG4gICAgICogQHJldHVybnMgVGhlIHRleHQgcmVhZCBmcm9tIHRoZSBjbGlwYm9hcmRcbiAgICAgKi9cbiAgICByZWFkOiAoKSA9PiBQcm9taXNlPHN0cmluZz47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNlcnZpY2UgdGhhdCBleGVjdXRlcyBjb21tYW5kc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElDbGlDb21tYW5kRXhlY3V0b3JTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb21tYW5kXG4gICAgICogQHBhcmFtIGNvbnRleHRcbiAgICAgKi9cbiAgICBzaG93SGVscChcbiAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICk6IFByb21pc2U8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiBMaXN0IGFsbCBjb21tYW5kc1xuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGFsbCBjb21tYW5kc1xuICAgICAqL1xuICAgIGxpc3RDb21tYW5kcygpOiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIEZpbmQgYSBwcm9jZXNzb3IgZm9yIGEgY29tbWFuZFxuICAgICAqIEBwYXJhbSBtYWluQ29tbWFuZFxuICAgICAqIEBwYXJhbSBjaGFpbkNvbW1hbmRzXG4gICAgICovXG4gICAgZmluZFByb2Nlc3NvcihcbiAgICAgICAgbWFpbkNvbW1hbmQ6IHN0cmluZyxcbiAgICAgICAgY2hhaW5Db21tYW5kczogc3RyaW5nW10sXG4gICAgKTogSUNsaUNvbW1hbmRQcm9jZXNzb3IgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciBhIHByb2Nlc3NvclxuICAgICAqIEBwYXJhbSBwcm9jZXNzb3JcbiAgICAgKi9cbiAgICByZWdpc3RlclByb2Nlc3Nvcihwcm9jZXNzb3I6IElDbGlDb21tYW5kUHJvY2Vzc29yKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFVucmVnaXN0ZXIgYSBwcm9jZXNzb3JcbiAgICAgKiBAcGFyYW0gcHJvY2Vzc29yXG4gICAgICovXG4gICAgdW5yZWdpc3RlclByb2Nlc3Nvcihwcm9jZXNzb3I6IElDbGlDb21tYW5kUHJvY2Vzc29yKTogdm9pZDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBjb250ZXh0IGluIHdoaWNoIGEgY29tbWFuZCBpcyBleGVjdXRlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDbGlFeGVjdXRpb25Db250ZXh0IHtcbiAgICAvKipcbiAgICAgKiBUaGUgY3VycmVudCB1c2VyIHNlc3Npb25cbiAgICAgKi9cbiAgICB1c2VyU2Vzc2lvbj86IElDbGlVc2VyU2Vzc2lvbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzcGlubmVyIHRvIHVzZSBmb3Igc2hvd2luZy9oaWRpbmcgdGhlIGxvYWRlclxuICAgICAqL1xuICAgIHNwaW5uZXI/OiBJQ2xpU3Bpbm5lcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBwcm9ncmVzcyBiYXIgdG8gdXNlIGZvciBzaG93aW5nIHByb2dyZXNzXG4gICAgICovXG4gICAgcHJvZ3Jlc3NCYXI6IElDbGlQZXJjZW50YWdlUHJvZ3Jlc3NCYXI7XG5cbiAgICAvKipcbiAgICAgKiBBIHN1YmplY3QgdGhhdCBlbWl0cyB3aGVuIHRoZSBjb21tYW5kIGlzIGFib3J0ZWRcbiAgICAgKi9cbiAgICBvbkFib3J0OiBTdWJqZWN0PHZvaWQ+O1xuXG4gICAgLyoqXG4gICAgICogVGhlIHRlcm1pbmFsIHRvIHVzZSBmb3Igd3JpdGluZ1xuICAgICAqL1xuICAgIHRlcm1pbmFsOiBUZXJtaW5hbDtcblxuICAgIC8qKlxuICAgICAqIFRoZSB3cml0ZXIgdG8gdXNlIGZvciB3cml0aW5nIHRvIHRoZSB0ZXJtaW5hbFxuICAgICAqL1xuICAgIHdyaXRlcjogSUNsaVRlcm1pbmFsV3JpdGVyO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNvbW1hbmQgZXhlY3V0b3IgdG8gdXNlIGZvciBleGVjdXRpbmcgY29tbWFuZHNcbiAgICAgKi9cbiAgICBleGVjdXRvcjogSUNsaUNvbW1hbmRFeGVjdXRvclNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY2xpcGJvYXJkIHRvIHVzZSBmb3IgY29weWluZy9wYXN0aW5nXG4gICAgICovXG4gICAgY2xpcGJvYXJkOiBJQ2xpQ2xpcGJvYXJkO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgc3RvcmUgdG8gdXNlIGZvciBzdG9yaW5nIGRhdGFcbiAgICAgKi9cbiAgICBkYXRhU3RvcmU6IElDbGlDb21tYW5kRGF0YVN0b3JlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG9wdGlvbnMgZm9yIHRoZSBDTElcbiAgICAgKi9cbiAgICBvcHRpb25zPzogQ2xpT3B0aW9ucztcblxuICAgIC8qKlxuICAgICAqIFRoZSBwcm9tcHQgdG8gdXNlIGZvciBwcm9tcHRpbmcgdGhlIHVzZXIgZm9yIGlucHV0XG4gICAgICovXG4gICAgc2hvd1Byb21wdDogKCkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZGF0YSBzdG9yZSBmb3Igc3RvcmluZyBkYXRhIGFzc29jaWF0ZWQgd2l0aCBjb21tYW5kc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElDbGlDb21tYW5kRGF0YVN0b3JlIHtcbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YSBzdG9yZVxuICAgICAqL1xuICAgIGRhdGE6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+O1xuXG4gICAgLyoqXG4gICAgICogQXBwZW5kIGRhdGEgdG8gdGhlIGRhdGEgc3RvcmVcbiAgICAgKiBAcGFyYW0gY29tbWFuZFxuICAgICAqIEBwYXJhbSBrZXlcbiAgICAgKiBAcGFyYW0gZGF0YVxuICAgICAqL1xuICAgIGFwcGVuZERhdGEoY29tbWFuZDogc3RyaW5nLCBrZXk6IHN0cmluZywgZGF0YTogYW55KTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEdldCBkYXRhIGZyb20gdGhlIGRhdGEgc3RvcmVcbiAgICAgKiBAcGFyYW0gY29tbWFuZFxuICAgICAqIEBwYXJhbSBrZXlcbiAgICAgKi9cbiAgICBnZXREYXRhPFQgPSBhbnk+KGNvbW1hbmQ6IHN0cmluZywga2V5OiBzdHJpbmcpOiBUO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzZXJ2aWNlIHRoYXQgbWFuYWdlcyB1c2VyIHNlc3Npb25zIGluIHRoZSBDTElcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2xpVXNlclNlc3Npb25TZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjdXJyZW50IHVzZXIgc2Vzc2lvblxuICAgICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgY3VycmVudCB1c2VyIHNlc3Npb25cbiAgICAgKi9cbiAgICBnZXRVc2VyU2Vzc2lvbigpOiBPYnNlcnZhYmxlPElDbGlVc2VyU2Vzc2lvbiB8IHVuZGVmaW5lZD47XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjdXJyZW50IHVzZXIgc2Vzc2lvblxuICAgICAqIEBwYXJhbSBzZXNzaW9uIFRoZSBzZXNzaW9uIHRvIHNldFxuICAgICAqL1xuICAgIHNldFVzZXJTZXNzaW9uKHNlc3Npb246IElDbGlVc2VyU2Vzc2lvbik6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNlcnZpY2UgdGhhdCBtYW5hZ2VzIHVzZXJzIGluIHRoZSBDTElcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2xpVXNlcnNTdG9yZVNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGN1cnJlbnQgdXNlcnNcbiAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGN1cnJlbnQgdXNlcnNcbiAgICAgKi9cbiAgICBnZXRVc2VycyhvcHRpb25zPzoge1xuICAgICAgICBxdWVyeT86IHN0cmluZztcbiAgICAgICAgc2tpcD86IG51bWJlcjtcbiAgICAgICAgdGFrZT86IG51bWJlcjtcbiAgICB9KTogT2JzZXJ2YWJsZTxJQ2xpVXNlcltdPjtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSB1c2VyXG4gICAgICogQHBhcmFtIHVzZXIgVGhlIHVzZXIgdG8gY3JlYXRlXG4gICAgICovXG4gICAgY3JlYXRlVXNlcih1c2VyOiBPbWl0PElDbGlVc2VyLCAnaWQnPik6IFByb21pc2U8SUNsaVVzZXI+O1xuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIHVzZXIgYnkgaWRcbiAgICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSB1c2VyIHRvIGdldFxuICAgICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXNlciB3aXRoIHRoZSBzcGVjaWZpZWQgaWRcbiAgICAgKi9cbiAgICBnZXRVc2VyKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElDbGlVc2VyIHwgdW5kZWZpbmVkPjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2VydmljZSB0aGF0IHBpbmdzIHRoZSBzZXJ2ZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2xpUGluZ1NlcnZlclNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIFBpbmdzIHRoZSBzZXJ2ZXJcbiAgICAgKi9cbiAgICBwaW5nKCk6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIG1vZHVsZSBmb3IgdGhlIENMSVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDbGlVbWRNb2R1bGUge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBtb2R1bGVcbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgcHJvY2Vzc29ycyBmb3IgdGhlIG1vZHVsZVxuICAgICAqL1xuICAgIHByb2Nlc3NvcnM6IElDbGlDb21tYW5kUHJvY2Vzc29yW107XG59XG4iXX0=
|
|
@@ -21,4 +21,16 @@ export var CliBackgroundColor;
|
|
|
21
21
|
CliBackgroundColor["Cyan"] = "\u001B[46m";
|
|
22
22
|
CliBackgroundColor["White"] = "\u001B[47m";
|
|
23
23
|
})(CliBackgroundColor || (CliBackgroundColor = {}));
|
|
24
|
-
|
|
24
|
+
export var CliIcon;
|
|
25
|
+
(function (CliIcon) {
|
|
26
|
+
CliIcon["CheckIcon"] = "\u2714";
|
|
27
|
+
CliIcon["CrossIcon"] = "\u2718";
|
|
28
|
+
CliIcon["InfoIcon"] = "\u2139";
|
|
29
|
+
CliIcon["WarningIcon"] = "\u26A0";
|
|
30
|
+
})(CliIcon || (CliIcon = {}));
|
|
31
|
+
export const enums = {
|
|
32
|
+
CliForegroundColor,
|
|
33
|
+
CliBackgroundColor,
|
|
34
|
+
CliIcon,
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZCQSxNQUFNLENBQU4sSUFBWSxrQkFVWDtBQVZELFdBQVksa0JBQWtCO0lBQzFCLDBDQUFrQixDQUFBO0lBQ2xCLHdDQUFnQixDQUFBO0lBQ2hCLDBDQUFrQixDQUFBO0lBQ2xCLDJDQUFtQixDQUFBO0lBQ25CLHlDQUFpQixDQUFBO0lBQ2pCLDRDQUFvQixDQUFBO0lBQ3BCLHlDQUFpQixDQUFBO0lBQ2pCLDBDQUFrQixDQUFBO0lBQ2xCLHlDQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFWVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBVTdCO0FBRUQsTUFBTSxDQUFOLElBQVksa0JBU1g7QUFURCxXQUFZLGtCQUFrQjtJQUMxQiwwQ0FBa0IsQ0FBQTtJQUNsQix3Q0FBZ0IsQ0FBQTtJQUNoQiwwQ0FBa0IsQ0FBQTtJQUNsQiwyQ0FBbUIsQ0FBQTtJQUNuQix5Q0FBaUIsQ0FBQTtJQUNqQiw0Q0FBb0IsQ0FBQTtJQUNwQix5Q0FBaUIsQ0FBQTtJQUNqQiwwQ0FBa0IsQ0FBQTtBQUN0QixDQUFDLEVBVFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQVM3QjtBQUVELE1BQU0sQ0FBTixJQUFZLE9BS1g7QUFMRCxXQUFZLE9BQU87SUFDZiwrQkFBZSxDQUFBO0lBQ2YsK0JBQWUsQ0FBQTtJQUNmLDhCQUFjLENBQUE7SUFDZCxpQ0FBaUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsT0FBTyxLQUFQLE9BQU8sUUFLbEI7QUEySEQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ2pCLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsT0FBTztDQUNWLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJVGVybWluYWxJbml0T25seU9wdGlvbnMsIElUZXJtaW5hbE9wdGlvbnMgfSBmcm9tICdAeHRlcm0veHRlcm0nO1xuXG5leHBvcnQgdHlwZSBDbGlQcm9jZXNzQ29tbWFuZCA9IHtcbiAgICAvKipcbiAgICAgKiBUaGUgY29tbWFuZCB0aGF0IHdhcyBlbnRlcmVkXG4gICAgICovXG4gICAgY29tbWFuZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNoYWluIG9mIGNvbW1hbmRzIHRoYXQgd2VyZSBlbnRlcmVkXG4gICAgICovXG4gICAgY2hhaW5Db21tYW5kczogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBUaGUgcmF3IGNvbW1hbmQgdGhhdCB3YXMgZW50ZXJlZFxuICAgICAqL1xuICAgIHJhd0NvbW1hbmQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgY29tbWFuZFxuICAgICAqL1xuICAgIHZhbHVlPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGFyZ3VtZW50cyB0aGF0IHdlcmUgZW50ZXJlZFxuICAgICAqL1xuICAgIGFyZ3M6IFJlY29yZDxzdHJpbmcsIGFueT47XG59O1xuXG5leHBvcnQgZW51bSBDbGlGb3JlZ3JvdW5kQ29sb3Ige1xuICAgIEJsYWNrID0gJ1xceDFiWzMwbScsXG4gICAgUmVkID0gJ1xceDFiWzMxbScsXG4gICAgR3JlZW4gPSAnXFx4MWJbMzJtJyxcbiAgICBZZWxsb3cgPSAnXFx4MWJbMzNtJyxcbiAgICBCbHVlID0gJ1xceDFiWzM0bScsXG4gICAgTWFnZW50YSA9ICdcXHgxYlszNW0nLFxuICAgIEN5YW4gPSAnXFx4MWJbMzZtJyxcbiAgICBXaGl0ZSA9ICdcXHgxYlszN20nLFxuICAgIFJlc2V0ID0gJ1xceDFiWzBtJyxcbn1cblxuZXhwb3J0IGVudW0gQ2xpQmFja2dyb3VuZENvbG9yIHtcbiAgICBCbGFjayA9ICdcXHgxYls0MG0nLFxuICAgIFJlZCA9ICdcXHgxYls0MW0nLFxuICAgIEdyZWVuID0gJ1xceDFiWzQybScsXG4gICAgWWVsbG93ID0gJ1xceDFiWzQzbScsXG4gICAgQmx1ZSA9ICdcXHgxYls0NG0nLFxuICAgIE1hZ2VudGEgPSAnXFx4MWJbNDVtJyxcbiAgICBDeWFuID0gJ1xceDFiWzQ2bScsXG4gICAgV2hpdGUgPSAnXFx4MWJbNDdtJyxcbn1cblxuZXhwb3J0IGVudW0gQ2xpSWNvbiB7XG4gICAgQ2hlY2tJY29uID0gJ+KclCcsXG4gICAgQ3Jvc3NJY29uID0gJ+KcmCcsXG4gICAgSW5mb0ljb24gPSAn4oS5JyxcbiAgICBXYXJuaW5nSWNvbiA9ICfimqAnLFxufVxuXG5leHBvcnQgdHlwZSBJQ2xpVXNlciA9IHtcbiAgICAvKipcbiAgICAgKiBUaGUgaWQgb2YgdGhlIHVzZXJcbiAgICAgKi9cbiAgICBpZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIHVzZXJcbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZW1haWwgb2YgdGhlIHVzZXJcbiAgICAgKi9cbiAgICBlbWFpbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGdyb3VwcyB0aGUgdXNlciBiZWxvbmdzIHRvXG4gICAgICogQGRlZmF1bHQgW11cbiAgICAgKi9cbiAgICBncm91cHM/OiBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaVVzZXJTZXNzaW9uIHtcbiAgICAvKipcbiAgICAgKiBUaGUgdXNlciBhc3NvY2lhdGVkIHdpdGggdGhlIHNlc3Npb25cbiAgICAgKi9cbiAgICB1c2VyOiBJQ2xpVXNlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgdXNlciBzZXNzaW9uXG4gICAgICovXG4gICAgZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIENMSVxuICovXG5leHBvcnQgdHlwZSBDbGlPcHRpb25zID0gUmVjb3JkPHN0cmluZywgYW55PiAmIHtcbiAgICAvKipcbiAgICAgKiBUaGUgd2VsY29tZSBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiB0aGUgQ0xJIHN0YXJ0c1xuICAgICAqL1xuICAgIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhlIHdlbGNvbWUgbWVzc2FnZSBpcyBoaWRkZW5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIGhpZGVXZWxjb21lTWVzc2FnZT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBVc2VycyBtb2R1bGUgb3B0aW9uc1xuICAgICAqL1xuICAgIHVzZXJzTW9kdWxlPzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgdHJ1ZSwgdGhlIHVzZXJzIG1vZHVsZSBpcyBlbmFibGVkXG4gICAgICAgICAqL1xuICAgICAgICBlbmFibGVkOiBib29sZWFuO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBIaWRlIHRoZSBwcm9tcHQgdG8gZGlzcGxheSB3aGVuIHRoZSBDTEkgaXMgcmVhZHkgdG8gYWNjZXB0IGlucHV0XG4gICAgICAgICAqL1xuICAgICAgICBoaWRlVXNlck5hbWU/OiBib29sZWFuO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gdGVybWluYWwgb3B0aW9uc1xuICAgICAqL1xuICAgIHRlcm1pbmFsT3B0aW9ucz86IElUZXJtaW5hbE9wdGlvbnMgJiBJVGVybWluYWxJbml0T25seU9wdGlvbnM7XG59O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBwYWNrYWdlIHRoYXQgY2FuIGJlIGluc3RhbGxlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhY2thZ2Uge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlXG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGdsb2JhbCBuYW1lIHVzZWQgdG8gYWNjZXNzIHRoZSBwYWNrYWdlXG4gICAgICovXG4gICAgZ2xvYmFsTmFtZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBwYWNrYWdlXG4gICAgICovXG4gICAgdmVyc2lvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHVucGtnIHVybCB0byB0aGUgcGFja2FnZVxuICAgICAqL1xuICAgIHVybDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRlcGVuZGVuY2llcyBmb3IgdGhlIG1vZHVsZVxuICAgICAqL1xuICAgIGRlcGVuZGVuY2llcz86IFBhY2thZ2VbXTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGNvbW1hbmQgcHJvY2Vzc29yIG1ldGFkYXRhXG4gKi9cbmV4cG9ydCB0eXBlIENsaVByb2Nlc3Nvck1ldGFkYXRhID0gUmVjb3JkPHN0cmluZywgYW55PiAmIHtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB0aGUgcHJvY2Vzc29yIGlzIHNlYWxlZCBhbmQgY2Fubm90IGJlIGV4dGVuZGVkXG4gICAgICovXG4gICAgc2VhbGVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoZSBwcm9jZXNzb3IgcmVxdWlyZXMgdGhlIHNlcnZlciB0byBiZSBydW5uaW5nXG4gICAgICovXG4gICAgcmVxdWlyZVNlcnZlcj86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbW9kdWxlIHRoZSBwcm9jZXNzb3IgYmVsb25ncyB0b1xuICAgICAqL1xuICAgIG1vZHVsZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBlbnVtcyA9IHtcbiAgICBDbGlGb3JlZ3JvdW5kQ29sb3IsXG4gICAgQ2xpQmFja2dyb3VuZENvbG9yLFxuICAgIENsaUljb24sXG59O1xuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { enums } from '../models';
|
|
2
2
|
import { constants } from '../constants';
|
|
3
3
|
import { utils } from '../utils';
|
|
4
4
|
export const initializeBrowserEnvironment = ({ handlers, }) => {
|
|
@@ -11,8 +11,7 @@ export const initializeBrowserEnvironment = ({ handlers, }) => {
|
|
|
11
11
|
},
|
|
12
12
|
...constants,
|
|
13
13
|
...utils,
|
|
14
|
-
|
|
15
|
-
CliBackgroundColor: CliBackgroundColor,
|
|
14
|
+
...enums,
|
|
16
15
|
};
|
|
17
16
|
window.ngCore = {
|
|
18
17
|
Injectable: () => { },
|
|
@@ -26,4 +25,4 @@ export const bootUmdModule = async (module) => {
|
|
|
26
25
|
console.log('window is undefined');
|
|
27
26
|
}
|
|
28
27
|
};
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVqQyxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLEVBQ3pDLFFBQVEsR0FHWCxFQUFRLEVBQUU7SUFDTixNQUFjLENBQUMsT0FBTyxHQUFHO1FBQ3RCLGVBQWUsRUFBRSxRQUFRLElBQUksRUFBRTtRQUMvQixhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQXFCLEVBQUUsRUFBRTtZQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QyxNQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztZQUN0QyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE1BQU0sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUNELEdBQUcsU0FBUztRQUNaLEdBQUcsS0FBSztRQUNSLEdBQUcsS0FBSztLQUNYLENBQUM7SUFFRCxNQUFjLENBQUMsTUFBTSxHQUFHO1FBQ3JCLFVBQVUsRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDO0tBQ3ZCLENBQUM7QUFDTixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsS0FBSyxFQUFFLE1BQXFCLEVBQWlCLEVBQUU7SUFDeEUsSUFBSSxPQUFRLE1BQWMsS0FBSyxXQUFXLEVBQUU7UUFDeEMsTUFBTyxNQUFjLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUN2RDtTQUFNO1FBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0tBQ3RDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW51bXMgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgY29uc3RhbnRzIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IElDbGlVbWRNb2R1bGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgaW5pdGlhbGl6ZUJyb3dzZXJFbnZpcm9ubWVudCA9ICh7XG4gICAgaGFuZGxlcnMsXG59OiB7XG4gICAgaGFuZGxlcnM6ICgobW9kdWxlOiBJQ2xpVW1kTW9kdWxlKSA9PiBQcm9taXNlPHZvaWQ+KVtdO1xufSk6IHZvaWQgPT4ge1xuICAgICh3aW5kb3cgYXMgYW55KS5jbGlDb3JlID0ge1xuICAgICAgICBvblVtZE1vZHVsZUJvb3Q6IGhhbmRsZXJzIHx8IFtdLFxuICAgICAgICBib290VW1kTW9kdWxlOiBhc3luYyAobW9kdWxlOiBJQ2xpVW1kTW9kdWxlKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQm9vdGluZyBVTUQgbW9kdWxlJywgbW9kdWxlLm5hbWUpO1xuICAgICAgICAgICAgKHdpbmRvdyBhcyBhbnkpW21vZHVsZS5uYW1lXSA9IG1vZHVsZTtcbiAgICAgICAgICAgIGhhbmRsZXJzLmZvckVhY2goYXN5bmMgKGhhbmRsZXIpID0+IGF3YWl0IGhhbmRsZXIobW9kdWxlKSk7XG4gICAgICAgIH0sXG4gICAgICAgIC4uLmNvbnN0YW50cyxcbiAgICAgICAgLi4udXRpbHMsXG4gICAgICAgIC4uLmVudW1zLFxuICAgIH07XG5cbiAgICAod2luZG93IGFzIGFueSkubmdDb3JlID0ge1xuICAgICAgICBJbmplY3RhYmxlOiAoKSA9PiB7fSxcbiAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGJvb3RVbWRNb2R1bGUgPSBhc3luYyAobW9kdWxlOiBJQ2xpVW1kTW9kdWxlKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgaWYgKHR5cGVvZiAod2luZG93IGFzIGFueSkgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGF3YWl0ICh3aW5kb3cgYXMgYW55KS5jbGlDb3JlLmJvb3RVbWRNb2R1bGUobW9kdWxlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZygnd2luZG93IGlzIHVuZGVmaW5lZCcpO1xuICAgIH1cbn07XG4iXX0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CliBackgroundColor, CliForegroundColor } from '../models';
|
|
2
|
+
import { ObjectDescriber } from './object-describer';
|
|
2
3
|
export const getParameterValue = (p, args) => {
|
|
3
4
|
return (args[p.name] ??
|
|
4
5
|
(p.aliases?.find((alias) => args[alias]) &&
|
|
@@ -46,6 +47,7 @@ export const getRightOfWord = (command, word) => {
|
|
|
46
47
|
// If the word is not found, return null
|
|
47
48
|
return undefined;
|
|
48
49
|
};
|
|
50
|
+
export * from './object-describer';
|
|
49
51
|
export const utils = {
|
|
50
52
|
getParameterValue,
|
|
51
53
|
formatJson,
|
|
@@ -53,5 +55,6 @@ export const utils = {
|
|
|
53
55
|
toQueryString,
|
|
54
56
|
highlightTextWithBg,
|
|
55
57
|
getRightOfWord,
|
|
58
|
+
ObjectDescriber,
|
|
56
59
|
};
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUM3QixDQUFpQyxFQUNqQyxJQUF5QixFQUNWLEVBQUU7SUFDakIsT0FBTyxDQUNILElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFFLENBQUMsQ0FBQyxDQUN0RCxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBUyxFQUFVLEVBQUU7SUFDNUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRWxELE9BQU8sWUFBWSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDOUQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsVUFBZSxFQUFVLEVBQUU7SUFDcEQsT0FBTyxVQUFVO1NBQ1osT0FBTyxDQUFDLGFBQWEsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDLGdCQUFnQjtTQUMvRCxPQUFPLENBQUMsY0FBYyxFQUFFLHVCQUF1QixDQUFDLENBQUMsa0JBQWtCO1NBQ25FLE9BQU8sQ0FBQyxVQUFVLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxpQkFBaUI7U0FDNUQsT0FBTyxDQUFDLGlCQUFpQixFQUFFLHFCQUFxQixDQUFDLENBQUMscUJBQXFCO1NBQ3ZFLE9BQU8sQ0FBQyxXQUFXLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDLGNBQWM7QUFDcEUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBMkIsRUFBVSxFQUFFO0lBQ2pFLE1BQU0sWUFBWSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7SUFFM0MsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUU7UUFDdEIsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzVCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxQix3Q0FBd0M7WUFDeEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN0QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ2hFO2lCQUFNLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO2dCQUM5QyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQzthQUM5QztTQUNKO0tBQ0o7SUFFRCxPQUFPLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUNuQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUMvQixJQUFZLEVBQ1osT0FBZSxFQUNmLFVBQThCLGtCQUFrQixDQUFDLE1BQU0sRUFDakQsRUFBRTtJQUNSLCtDQUErQztJQUMvQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQ2YsT0FBTyxFQUNQLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLE9BQU8sR0FBRyxLQUFLLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQzdELENBQUM7QUFDTixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FDMUIsT0FBZSxFQUNmLElBQVksRUFDTSxFQUFFO0lBQ3BCLCtDQUErQztJQUMvQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXBDLDJEQUEyRDtJQUMzRCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtRQUNkLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0tBQ3BEO0lBRUQsd0NBQXdDO0lBQ3hDLE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUMsQ0FBQztBQUVGLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ2pCLGlCQUFpQjtJQUNqQixVQUFVO0lBQ1YsWUFBWTtJQUNaLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLGVBQWU7Q0FDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElDbGlDb21tYW5kUGFyYW1ldGVyRGVzY3JpcHRvciB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ2xpQmFja2dyb3VuZENvbG9yLCBDbGlGb3JlZ3JvdW5kQ29sb3IgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgT2JqZWN0RGVzY3JpYmVyIH0gZnJvbSAnLi9vYmplY3QtZGVzY3JpYmVyJztcblxuZXhwb3J0IGNvbnN0IGdldFBhcmFtZXRlclZhbHVlID0gKFxuICAgIHA6IElDbGlDb21tYW5kUGFyYW1ldGVyRGVzY3JpcHRvcixcbiAgICBhcmdzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuKTogYW55IHwgdW5kZWZpbmVkID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgICBhcmdzW3AubmFtZV0gPz9cbiAgICAgICAgKHAuYWxpYXNlcz8uZmluZCgoYWxpYXMpID0+IGFyZ3NbYWxpYXNdKSAmJlxuICAgICAgICAgICAgYXJnc1twLmFsaWFzZXMhLmZpbmQoKGFsaWFzKSA9PiBhcmdzW2FsaWFzXSkhXSlcbiAgICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdEpzb24gPSAoanNvbjogYW55KTogc3RyaW5nID0+IHtcbiAgICBjb25zdCBpZGVudGVkSnNvbiA9IEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIDIpO1xuXG4gICAgcmV0dXJuIGNvbG9yaXplSnNvbihpZGVudGVkSnNvbi5zcGxpdCgnXFxuJykuam9pbignXFxyXFxuJykpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbG9yaXplSnNvbiA9IChqc29uU3RyaW5nOiBhbnkpOiBzdHJpbmcgPT4ge1xuICAgIHJldHVybiBqc29uU3RyaW5nXG4gICAgICAgIC5yZXBsYWNlKC9cIihbXlwiXSspXCI6L2csICdcXHgxYlszM21cIiQxXCI6XFx4MWJbMG0nKSAvLyBLZXlzICh5ZWxsb3cpXG4gICAgICAgIC5yZXBsYWNlKC86IFwiKFteXCJdKilcIi9nLCAnOiBcXHgxYlszMm1cIiQxXCJcXHgxYlswbScpIC8vIFN0cmluZ3MgKGdyZWVuKVxuICAgICAgICAucmVwbGFjZSgvOiAoXFxkKykvZywgJzogXFx4MWJbMzRtJDFcXHgxYlswbScpIC8vIE51bWJlcnMgKGJsdWUpXG4gICAgICAgIC5yZXBsYWNlKC86ICh0cnVlfGZhbHNlKS9nLCAnOiBcXHgxYlszNW0kMVxceDFiWzBtJykgLy8gQm9vbGVhbnMgKG1hZ2VudGEpXG4gICAgICAgIC5yZXBsYWNlKC86IChudWxsKS9nLCAnOiBcXHgxYlszNm0kMVxceDFiWzBtJyk7IC8vIE51bGwgKGN5YW4pXG59O1xuXG5leHBvcnQgY29uc3QgdG9RdWVyeVN0cmluZyA9IChwYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBzdHJpbmcgPT4ge1xuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcblxuICAgIGZvciAoY29uc3Qga2V5IGluIHBhcmFtcykge1xuICAgICAgICBpZiAocGFyYW1zLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcGFyYW1zW2tleV07XG4gICAgICAgICAgICAvLyBIYW5kbGUgYXJyYXkgYW5kIG5vbi1wcmltaXRpdmUgdmFsdWVzXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKCh2KSA9PiBzZWFyY2hQYXJhbXMuYXBwZW5kKGtleSwgdi50b1N0cmluZygpKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBzZWFyY2hQYXJhbXMuYXBwZW5kKGtleSwgdmFsdWUudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc2VhcmNoUGFyYW1zLnRvU3RyaW5nKCk7XG59O1xuXG5leHBvcnQgY29uc3QgaGlnaGxpZ2h0VGV4dFdpdGhCZyA9IChcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgcGF0dGVybjogUmVnRXhwLFxuICAgIGJnQ29sb3I6IENsaUJhY2tncm91bmRDb2xvciA9IENsaUJhY2tncm91bmRDb2xvci5ZZWxsb3csXG4pOiBzdHJpbmcgPT4ge1xuICAgIC8vIFJlcGxhY2UgbWF0Y2hlcyB3aXRoIGJhY2tncm91bmQtY29sb3JlZCB0ZXh0XG4gICAgcmV0dXJuIHRleHQucmVwbGFjZShcbiAgICAgICAgcGF0dGVybixcbiAgICAgICAgKG1hdGNoKSA9PiBgJHtiZ0NvbG9yfSR7bWF0Y2h9JHtDbGlGb3JlZ3JvdW5kQ29sb3IuUmVzZXR9YCxcbiAgICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJpZ2h0T2ZXb3JkID0gKFxuICAgIGNvbW1hbmQ6IHN0cmluZyxcbiAgICB3b3JkOiBzdHJpbmcsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICAgIC8vIEZpbmQgdGhlIHBvc2l0aW9uIG9mIHRoZSB3b3JkIGluIHRoZSBjb21tYW5kXG4gICAgY29uc3QgaW5kZXggPSBjb21tYW5kLmluZGV4T2Yod29yZCk7XG5cbiAgICAvLyBJZiB0aGUgd29yZCBpcyBmb3VuZCwgZXh0cmFjdCB0aGUgc3Vic3RyaW5nIHRvIHRoZSByaWdodFxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgcmV0dXJuIGNvbW1hbmQuc2xpY2UoaW5kZXggKyB3b3JkLmxlbmd0aCkudHJpbSgpO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSB3b3JkIGlzIG5vdCBmb3VuZCwgcmV0dXJuIG51bGxcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0ICogZnJvbSAnLi9vYmplY3QtZGVzY3JpYmVyJztcblxuZXhwb3J0IGNvbnN0IHV0aWxzID0ge1xuICAgIGdldFBhcmFtZXRlclZhbHVlLFxuICAgIGZvcm1hdEpzb24sXG4gICAgY29sb3JpemVKc29uLFxuICAgIHRvUXVlcnlTdHJpbmcsXG4gICAgaGlnaGxpZ2h0VGV4dFdpdGhCZyxcbiAgICBnZXRSaWdodE9mV29yZCxcbiAgICBPYmplY3REZXNjcmliZXIsXG59O1xuIl19
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { CliForegroundColor } from '../models';
|
|
2
|
+
export class ObjectDescriber {
|
|
3
|
+
static describe(obj, options) {
|
|
4
|
+
const { filter } = options || {};
|
|
5
|
+
const processors = [];
|
|
6
|
+
const keys = Object.keys(obj);
|
|
7
|
+
const functions = keys.filter((key) => typeof obj[key] === 'function');
|
|
8
|
+
for (const func of functions) {
|
|
9
|
+
const funcValue = obj[func];
|
|
10
|
+
const args = this.getFunctionArguments(funcValue);
|
|
11
|
+
if (filter) {
|
|
12
|
+
const shouldInclude = filter({
|
|
13
|
+
funcName: func,
|
|
14
|
+
func: funcValue,
|
|
15
|
+
args,
|
|
16
|
+
});
|
|
17
|
+
if (!shouldInclude) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const supportsMultipleArgs = args.length > 1;
|
|
22
|
+
const supportsDynamicArgs = this.supportsDynamicArgs(funcValue);
|
|
23
|
+
if (args.length === 0 && !supportsDynamicArgs) {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (args.length > 0 &&
|
|
27
|
+
args.some((arg) => arg === 'function' || arg === 'func')) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
const processor = {
|
|
31
|
+
command: func,
|
|
32
|
+
description: `A command that executes the function ${func} with the provided arguments`,
|
|
33
|
+
allowUnlistedCommands: true,
|
|
34
|
+
valueRequired: true,
|
|
35
|
+
parameters: [
|
|
36
|
+
{
|
|
37
|
+
name: 'debug',
|
|
38
|
+
description: 'Debug',
|
|
39
|
+
type: 'boolean',
|
|
40
|
+
required: false,
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
processCommand: async (command, context) => {
|
|
44
|
+
const debug = command.args['debug'];
|
|
45
|
+
if (debug) {
|
|
46
|
+
context.writer.writeln('Executing command: ' + func);
|
|
47
|
+
context.writer.writeln('Arguments: ' + JSON.stringify(command.args));
|
|
48
|
+
context.writer.writeln('Function: ' + funcValue.toString());
|
|
49
|
+
}
|
|
50
|
+
const argsToCallF = [];
|
|
51
|
+
if (supportsMultipleArgs) {
|
|
52
|
+
for (const arg of args.slice(1)) {
|
|
53
|
+
argsToCallF.push(command.args[arg]);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (supportsDynamicArgs) {
|
|
57
|
+
const delimiter = command.args['delimiter'] || ',';
|
|
58
|
+
argsToCallF.push(...command.value.split(delimiter));
|
|
59
|
+
}
|
|
60
|
+
if (debug) {
|
|
61
|
+
context.writer.writeln('Arguments after processing: ' +
|
|
62
|
+
JSON.stringify(argsToCallF));
|
|
63
|
+
}
|
|
64
|
+
const result = supportsDynamicArgs && args.length === 0
|
|
65
|
+
? funcValue(...argsToCallF)
|
|
66
|
+
: funcValue(command.value, ...argsToCallF);
|
|
67
|
+
context.writer.write(context.writer.wrapInColor('Result: ', CliForegroundColor.Yellow));
|
|
68
|
+
if (result === null) {
|
|
69
|
+
context.writer.writeln('null');
|
|
70
|
+
}
|
|
71
|
+
else if (result === undefined) {
|
|
72
|
+
context.writer.writeln('undefined');
|
|
73
|
+
}
|
|
74
|
+
else if (typeof result === 'boolean') {
|
|
75
|
+
context.writer.writeln(result.toString());
|
|
76
|
+
}
|
|
77
|
+
else if (typeof result === 'number') {
|
|
78
|
+
context.writer.writeln(result.toString());
|
|
79
|
+
}
|
|
80
|
+
else if (Array.isArray(result)) {
|
|
81
|
+
context.writer.writeJson(result);
|
|
82
|
+
}
|
|
83
|
+
else if (typeof result === 'string') {
|
|
84
|
+
context.writer.writeln(result);
|
|
85
|
+
}
|
|
86
|
+
else if (typeof result === 'object') {
|
|
87
|
+
context.writer.writeJson(result);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
context.writer.writeln(result?.toString());
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
writeDescription: (context) => {
|
|
94
|
+
context.writer.writeln(func);
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
if (supportsDynamicArgs) {
|
|
98
|
+
processor.parameters?.push({
|
|
99
|
+
name: 'delimiter',
|
|
100
|
+
description: 'Delimiter',
|
|
101
|
+
type: 'string',
|
|
102
|
+
required: false,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
if (supportsMultipleArgs) {
|
|
106
|
+
processor.parameters?.push(...args.slice(1).map((arg) => ({
|
|
107
|
+
name: arg,
|
|
108
|
+
description: arg,
|
|
109
|
+
type: 'string',
|
|
110
|
+
required: false,
|
|
111
|
+
})));
|
|
112
|
+
}
|
|
113
|
+
processors.push(processor);
|
|
114
|
+
}
|
|
115
|
+
return processors;
|
|
116
|
+
}
|
|
117
|
+
static supportsDynamicArgs(func) {
|
|
118
|
+
const funcStr = func.toString();
|
|
119
|
+
return funcStr.includes('arguments');
|
|
120
|
+
}
|
|
121
|
+
static getFunctionArguments(func) {
|
|
122
|
+
const funcStr = func.toString();
|
|
123
|
+
const args = funcStr.match(/\(([^)]*)\)/);
|
|
124
|
+
if (!args) {
|
|
125
|
+
return [];
|
|
126
|
+
}
|
|
127
|
+
return args[1]
|
|
128
|
+
.split(',')
|
|
129
|
+
.map((arg) => arg.trim())
|
|
130
|
+
.filter((arg) => arg !== '');
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWRlc2NyaWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi91dGlscy9vYmplY3QtZGVzY3JpYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxrQkFBa0IsRUFBcUIsTUFBTSxXQUFXLENBQUM7QUFFbEUsTUFBTSxPQUFPLGVBQWU7SUFDeEIsTUFBTSxDQUFDLFFBQVEsQ0FDWCxHQUFRLEVBQ1IsT0FNQztRQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBRWpDLE1BQU0sVUFBVSxHQUEyQixFQUFFLENBQUM7UUFFOUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU5QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQztRQUV2RSxLQUFLLE1BQU0sSUFBSSxJQUFJLFNBQVMsRUFBRTtZQUMxQixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRWxELElBQUksTUFBTSxFQUFFO2dCQUNSLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQztvQkFDekIsUUFBUSxFQUFFLElBQUk7b0JBQ2QsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsSUFBSTtpQkFDUCxDQUFDLENBQUM7Z0JBRUgsSUFBSSxDQUFDLGFBQWEsRUFBRTtvQkFDaEIsU0FBUztpQkFDWjthQUNKO1lBRUQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUU3QyxNQUFNLG1CQUFtQixHQUFHLElB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aW1wb3J0IHsgSUNsaUNvbW1hbmRQcm9jZXNzb3IsIElDbGlFeGVjdXRpb25Db250ZXh0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDbGlGb3JlZ3JvdW5kQ29sb3IsIENsaVByb2Nlc3NDb21tYW5kIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZXhwb3J0IGNsYXNzIE9iamVjdERlc2NyaWJlciB7XG4gICAgc3RhdGljIGRlc2NyaWJlKFxuICAgICAgICBvYmo6IGFueSxcbiAgICAgICAgb3B0aW9ucz86IHtcbiAgICAgICAgICAgIGZpbHRlcj86IChvOiB7XG4gICAgICAgICAgICAgICAgZnVuY05hbWU6IHN0cmluZztcbiAgICAgICAgICAgICAgICBmdW5jOiBhbnk7XG4gICAgICAgICAgICAgICAgYXJnczogc3RyaW5nW107XG4gICAgICAgICAgICB9KSA9PiBib29sZWFuO1xuICAgICAgICB9LFxuICAgICk6IElDbGlDb21tYW5kUHJvY2Vzc29yW10ge1xuICAgICAgICBjb25zdCB7IGZpbHRlciB9ID0gb3B0aW9ucyB8fCB7fTtcblxuICAgICAgICBjb25zdCBwcm9jZXNzb3JzOiBJQ2xpQ29tbWFuZFByb2Nlc3NvcltdID0gW107XG5cbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iaik7XG5cbiAgICAgICAgY29uc3QgZnVuY3Rpb25zID0ga2V5cy5maWx0ZXIoKGtleSkgPT4gdHlwZW9mIG9ialtrZXldID09PSAnZnVuY3Rpb24nKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGZ1bmMgb2YgZnVuY3Rpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBmdW5jVmFsdWUgPSBvYmpbZnVuY107XG4gICAgICAgICAgICBjb25zdCBhcmdzID0gdGhpcy5nZXRGdW5jdGlvbkFyZ3VtZW50cyhmdW5jVmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2hvdWxkSW5jbHVkZSA9IGZpbHRlcih7XG4gICAgICAgICAgICAgICAgICAgIGZ1bmNOYW1lOiBmdW5jLFxuICAgICAgICAgICAgICAgICAgICBmdW5jOiBmdW5jVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXNob3VsZEluY2x1ZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBzdXBwb3J0c011bHRpcGxlQXJncyA9IGFyZ3MubGVuZ3RoID4gMTtcblxuICAgICAgICAgICAgY29uc3Qgc3VwcG9ydHNEeW5hbWljQXJncyA9IHRoaXMuc3VwcG9ydHNEeW5hbWljQXJncyhmdW5jVmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAoYXJncy5sZW5ndGggPT09IDAgJiYgIXN1cHBvcnRzRHluYW1pY0FyZ3MpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGFyZ3MubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgICAgIGFyZ3Muc29tZSgoYXJnKSA9PiBhcmcgPT09ICdmdW5jdGlvbicgfHwgYXJnID09PSAnZnVuYycpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc29yOiBJQ2xpQ29tbWFuZFByb2Nlc3NvciA9IHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiBmdW5jLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgQSBjb21tYW5kIHRoYXQgZXhlY3V0ZXMgdGhlIGZ1bmN0aW9uICR7ZnVuY30gd2l0aCB0aGUgcHJvdmlkZWQgYXJndW1lbnRzYCxcbiAgICAgICAgICAgICAgICBhbGxvd1VubGlzdGVkQ29tbWFuZHM6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdkZWJ1ZycsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0RlYnVnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NDb21tYW5kOiBhc3luYyAoXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICAgICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVidWcgPSBjb21tYW5kLmFyZ3NbJ2RlYnVnJ10gYXMgYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZGVidWcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJ0V4ZWN1dGluZyBjb21tYW5kOiAnICsgZnVuYyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBcmd1bWVudHM6ICcgKyBKU09OLnN0cmluZ2lmeShjb21tYW5kLmFyZ3MpLFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Z1bmN0aW9uOiAnICsgZnVuY1ZhbHVlLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXJnc1RvQ2FsbEY6IGFueVtdID0gW107XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1cHBvcnRzTXVsdGlwbGVBcmdzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFyZyBvZiBhcmdzLnNsaWNlKDEpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1RvQ2FsbEYucHVzaChjb21tYW5kLmFyZ3NbYXJnXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoc3VwcG9ydHNEeW5hbWljQXJncykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVsaW1pdGVyID0gY29tbWFuZC5hcmdzWydkZWxpbWl0ZXInXSB8fCAnLCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdzVG9DYWxsRi5wdXNoKC4uLmNvbW1hbmQudmFsdWUhLnNwbGl0KGRlbGltaXRlcikpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlYnVnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBcmd1bWVudHMgYWZ0ZXIgcHJvY2Vzc2luZzogJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGFyZ3NUb0NhbGxGKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydHNEeW5hbWljQXJncyAmJiBhcmdzLmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZnVuY1ZhbHVlKC4uLmFyZ3NUb0NhbGxGKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZnVuY1ZhbHVlKGNvbW1hbmQudmFsdWUsIC4uLmFyZ3NUb0NhbGxGKTtcblxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyYXBJbkNvbG9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZXN1bHQ6ICcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xpRm9yZWdyb3VuZENvbG9yLlllbGxvdyxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignbnVsbCcpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCd1bmRlZmluZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4ocmVzdWx0LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKHJlc3VsdC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlSnNvbihyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlSnNvbihyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihyZXN1bHQ/LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB3cml0ZURlc2NyaXB0aW9uOiAoY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihmdW5jKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaWYgKHN1cHBvcnRzRHluYW1pY0FyZ3MpIHtcbiAgICAgICAgICAgICAgICBwcm9jZXNzb3IucGFyYW1ldGVycz8ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdkZWxpbWl0ZXInLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0RlbGltaXRlcicsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzdXBwb3J0c011bHRpcGxlQXJncykge1xuICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5wYXJhbWV0ZXJzPy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAuLi5hcmdzLnNsaWNlKDEpLm1hcCgoYXJnKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogYXJnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGFyZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcHJvY2Vzc29ycy5wdXNoKHByb2Nlc3Nvcik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcHJvY2Vzc29ycztcbiAgICB9XG5cbiAgICBzdGF0aWMgc3VwcG9ydHNEeW5hbWljQXJncyhmdW5jOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZnVuY1N0ciA9IGZ1bmMudG9TdHJpbmcoKTtcbiAgICAgICAgcmV0dXJuIGZ1bmNTdHIuaW5jbHVkZXMoJ2FyZ3VtZW50cycpO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRGdW5jdGlvbkFyZ3VtZW50cyhmdW5jOiBhbnkpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGZ1bmNTdHIgPSBmdW5jLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSBmdW5jU3RyLm1hdGNoKC9cXCgoW14pXSopXFwpLyk7XG4gICAgICAgIGlmICghYXJncykge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcmdzWzFdXG4gICAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgICAgLm1hcCgoYXJnOiBzdHJpbmcpID0+IGFyZy50cmltKCkpXG4gICAgICAgICAgICAuZmlsdGVyKChhcmc6IHN0cmluZykgPT4gYXJnICE9PSAnJyk7XG4gICAgfVxufVxuIl19
|
|
@@ -21,6 +21,18 @@ var CliBackgroundColor;
|
|
|
21
21
|
CliBackgroundColor["Cyan"] = "\u001B[46m";
|
|
22
22
|
CliBackgroundColor["White"] = "\u001B[47m";
|
|
23
23
|
})(CliBackgroundColor || (CliBackgroundColor = {}));
|
|
24
|
+
var CliIcon;
|
|
25
|
+
(function (CliIcon) {
|
|
26
|
+
CliIcon["CheckIcon"] = "\u2714";
|
|
27
|
+
CliIcon["CrossIcon"] = "\u2718";
|
|
28
|
+
CliIcon["InfoIcon"] = "\u2139";
|
|
29
|
+
CliIcon["WarningIcon"] = "\u26A0";
|
|
30
|
+
})(CliIcon || (CliIcon = {}));
|
|
31
|
+
const enums = {
|
|
32
|
+
CliForegroundColor,
|
|
33
|
+
CliBackgroundColor,
|
|
34
|
+
CliIcon,
|
|
35
|
+
};
|
|
24
36
|
|
|
25
37
|
const DefaultLibraryAuthor = {
|
|
26
38
|
name: 'Nicolae Lupei',
|
|
@@ -30,6 +42,138 @@ const constants = {
|
|
|
30
42
|
DefaultLibraryAuthor,
|
|
31
43
|
};
|
|
32
44
|
|
|
45
|
+
class ObjectDescriber {
|
|
46
|
+
static describe(obj, options) {
|
|
47
|
+
const { filter } = options || {};
|
|
48
|
+
const processors = [];
|
|
49
|
+
const keys = Object.keys(obj);
|
|
50
|
+
const functions = keys.filter((key) => typeof obj[key] === 'function');
|
|
51
|
+
for (const func of functions) {
|
|
52
|
+
const funcValue = obj[func];
|
|
53
|
+
const args = this.getFunctionArguments(funcValue);
|
|
54
|
+
if (filter) {
|
|
55
|
+
const shouldInclude = filter({
|
|
56
|
+
funcName: func,
|
|
57
|
+
func: funcValue,
|
|
58
|
+
args,
|
|
59
|
+
});
|
|
60
|
+
if (!shouldInclude) {
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const supportsMultipleArgs = args.length > 1;
|
|
65
|
+
const supportsDynamicArgs = this.supportsDynamicArgs(funcValue);
|
|
66
|
+
if (args.length === 0 && !supportsDynamicArgs) {
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
if (args.length > 0 &&
|
|
70
|
+
args.some((arg) => arg === 'function' || arg === 'func')) {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
const processor = {
|
|
74
|
+
command: func,
|
|
75
|
+
description: `A command that executes the function ${func} with the provided arguments`,
|
|
76
|
+
allowUnlistedCommands: true,
|
|
77
|
+
valueRequired: true,
|
|
78
|
+
parameters: [
|
|
79
|
+
{
|
|
80
|
+
name: 'debug',
|
|
81
|
+
description: 'Debug',
|
|
82
|
+
type: 'boolean',
|
|
83
|
+
required: false,
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
processCommand: async (command, context) => {
|
|
87
|
+
const debug = command.args['debug'];
|
|
88
|
+
if (debug) {
|
|
89
|
+
context.writer.writeln('Executing command: ' + func);
|
|
90
|
+
context.writer.writeln('Arguments: ' + JSON.stringify(command.args));
|
|
91
|
+
context.writer.writeln('Function: ' + funcValue.toString());
|
|
92
|
+
}
|
|
93
|
+
const argsToCallF = [];
|
|
94
|
+
if (supportsMultipleArgs) {
|
|
95
|
+
for (const arg of args.slice(1)) {
|
|
96
|
+
argsToCallF.push(command.args[arg]);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (supportsDynamicArgs) {
|
|
100
|
+
const delimiter = command.args['delimiter'] || ',';
|
|
101
|
+
argsToCallF.push(...command.value.split(delimiter));
|
|
102
|
+
}
|
|
103
|
+
if (debug) {
|
|
104
|
+
context.writer.writeln('Arguments after processing: ' +
|
|
105
|
+
JSON.stringify(argsToCallF));
|
|
106
|
+
}
|
|
107
|
+
const result = supportsDynamicArgs && args.length === 0
|
|
108
|
+
? funcValue(...argsToCallF)
|
|
109
|
+
: funcValue(command.value, ...argsToCallF);
|
|
110
|
+
context.writer.write(context.writer.wrapInColor('Result: ', CliForegroundColor.Yellow));
|
|
111
|
+
if (result === null) {
|
|
112
|
+
context.writer.writeln('null');
|
|
113
|
+
}
|
|
114
|
+
else if (result === undefined) {
|
|
115
|
+
context.writer.writeln('undefined');
|
|
116
|
+
}
|
|
117
|
+
else if (typeof result === 'boolean') {
|
|
118
|
+
context.writer.writeln(result.toString());
|
|
119
|
+
}
|
|
120
|
+
else if (typeof result === 'number') {
|
|
121
|
+
context.writer.writeln(result.toString());
|
|
122
|
+
}
|
|
123
|
+
else if (Array.isArray(result)) {
|
|
124
|
+
context.writer.writeJson(result);
|
|
125
|
+
}
|
|
126
|
+
else if (typeof result === 'string') {
|
|
127
|
+
context.writer.writeln(result);
|
|
128
|
+
}
|
|
129
|
+
else if (typeof result === 'object') {
|
|
130
|
+
context.writer.writeJson(result);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
context.writer.writeln(result?.toString());
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
writeDescription: (context) => {
|
|
137
|
+
context.writer.writeln(func);
|
|
138
|
+
},
|
|
139
|
+
};
|
|
140
|
+
if (supportsDynamicArgs) {
|
|
141
|
+
processor.parameters?.push({
|
|
142
|
+
name: 'delimiter',
|
|
143
|
+
description: 'Delimiter',
|
|
144
|
+
type: 'string',
|
|
145
|
+
required: false,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
if (supportsMultipleArgs) {
|
|
149
|
+
processor.parameters?.push(...args.slice(1).map((arg) => ({
|
|
150
|
+
name: arg,
|
|
151
|
+
description: arg,
|
|
152
|
+
type: 'string',
|
|
153
|
+
required: false,
|
|
154
|
+
})));
|
|
155
|
+
}
|
|
156
|
+
processors.push(processor);
|
|
157
|
+
}
|
|
158
|
+
return processors;
|
|
159
|
+
}
|
|
160
|
+
static supportsDynamicArgs(func) {
|
|
161
|
+
const funcStr = func.toString();
|
|
162
|
+
return funcStr.includes('arguments');
|
|
163
|
+
}
|
|
164
|
+
static getFunctionArguments(func) {
|
|
165
|
+
const funcStr = func.toString();
|
|
166
|
+
const args = funcStr.match(/\(([^)]*)\)/);
|
|
167
|
+
if (!args) {
|
|
168
|
+
return [];
|
|
169
|
+
}
|
|
170
|
+
return args[1]
|
|
171
|
+
.split(',')
|
|
172
|
+
.map((arg) => arg.trim())
|
|
173
|
+
.filter((arg) => arg !== '');
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
33
177
|
const getParameterValue = (p, args) => {
|
|
34
178
|
return (args[p.name] ??
|
|
35
179
|
(p.aliases?.find((alias) => args[alias]) &&
|
|
@@ -84,6 +228,7 @@ const utils = {
|
|
|
84
228
|
toQueryString,
|
|
85
229
|
highlightTextWithBg,
|
|
86
230
|
getRightOfWord,
|
|
231
|
+
ObjectDescriber,
|
|
87
232
|
};
|
|
88
233
|
|
|
89
234
|
const initializeBrowserEnvironment = ({ handlers, }) => {
|
|
@@ -96,8 +241,7 @@ const initializeBrowserEnvironment = ({ handlers, }) => {
|
|
|
96
241
|
},
|
|
97
242
|
...constants,
|
|
98
243
|
...utils,
|
|
99
|
-
|
|
100
|
-
CliBackgroundColor: CliBackgroundColor,
|
|
244
|
+
...enums,
|
|
101
245
|
};
|
|
102
246
|
window.ngCore = {
|
|
103
247
|
Injectable: () => { },
|
|
@@ -120,5 +264,5 @@ const bootUmdModule = async (module) => {
|
|
|
120
264
|
* Generated bundle index. Do not edit.
|
|
121
265
|
*/
|
|
122
266
|
|
|
123
|
-
export { CliBackgroundColor, CliForegroundColor, DefaultLibraryAuthor, bootUmdModule, colorizeJson, constants, formatJson, getParameterValue, getRightOfWord, highlightTextWithBg, initializeBrowserEnvironment, toQueryString, utils };
|
|
267
|
+
export { CliBackgroundColor, CliForegroundColor, CliIcon, DefaultLibraryAuthor, ObjectDescriber, bootUmdModule, colorizeJson, constants, enums, formatJson, getParameterValue, getRightOfWord, highlightTextWithBg, initializeBrowserEnvironment, toQueryString, utils };
|
|
124
268
|
//# sourceMappingURL=qodalis-cli-core.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qodalis-cli-core.mjs","sources":["../../../projects/core/src/lib/models/index.ts","../../../projects/core/src/lib/constants/index.ts","../../../projects/core/src/lib/utils/index.ts","../../../projects/core/src/lib/modules/index.ts","../../../projects/core/src/public-api.ts","../../../projects/core/src/qodalis-cli-core.ts"],"sourcesContent":["import { ITerminalInitOnlyOptions, ITerminalOptions } from '@xterm/xterm';\n\nexport type CliProcessCommand = {\n /**\n * The command that was entered\n */\n command: string;\n\n /**\n * The chain of commands that were entered\n */\n chainCommands: string[];\n\n /**\n * The raw command that was entered\n */\n rawCommand: string;\n\n /**\n * The value of the command\n */\n value?: string;\n\n /**\n * The arguments that were entered\n */\n args: Record<string, any>;\n};\n\nexport enum CliForegroundColor {\n Black = '\\x1b[30m',\n Red = '\\x1b[31m',\n Green = '\\x1b[32m',\n Yellow = '\\x1b[33m',\n Blue = '\\x1b[34m',\n Magenta = '\\x1b[35m',\n Cyan = '\\x1b[36m',\n White = '\\x1b[37m',\n Reset = '\\x1b[0m',\n}\n\nexport enum CliBackgroundColor {\n Black = '\\x1b[40m',\n Red = '\\x1b[41m',\n Green = '\\x1b[42m',\n Yellow = '\\x1b[43m',\n Blue = '\\x1b[44m',\n Magenta = '\\x1b[45m',\n Cyan = '\\x1b[46m',\n White = '\\x1b[47m',\n}\n\nexport interface ICliUser extends Record<string, any> {\n /**\n * The id of the user\n */\n id: string;\n\n /**\n * The name of the user\n */\n name: string;\n\n /**\n * The email of the user\n */\n email: string;\n}\n\nexport interface ICliUserSession {\n /**\n * The user associated with the session\n */\n user: ICliUser;\n\n /**\n * The data associated with the user session\n */\n data?: Record<string, any>;\n}\n\n/**\n * Options for the CLI\n */\nexport type CliOptions = {\n /**\n * The welcome message to display when the CLI starts\n */\n welcomeMessage?: string;\n\n /**\n * Hide the prompt to display when the CLI is ready to accept input\n */\n hideUserName?: boolean;\n\n /**\n * Custom terminal options\n */\n terminalOptions?: ITerminalOptions & ITerminalInitOnlyOptions;\n};\n\n/**\n * Represents a package that can be installed\n */\nexport interface Package {\n /**\n * The name of the package\n */\n name: string;\n\n /**\n * The global name used to access the package\n */\n globalName?: string;\n\n /**\n * The version of the package\n */\n version: string;\n\n /**\n * The unpkg url to the package\n */\n url: string;\n\n /**\n * The dependencies for the module\n */\n dependencies?: Package[];\n}\n","import { ICliCommandAuthor } from '../interfaces';\n\nexport const DefaultLibraryAuthor: ICliCommandAuthor = {\n name: 'Nicolae Lupei',\n email: 'nicolae.lupei@qodalis.com',\n};\n\nexport const constants = {\n DefaultLibraryAuthor,\n};\n","import { ICliCommandParameterDescriptor } from '../interfaces';\nimport { CliBackgroundColor, CliForegroundColor } from '../models';\n\nexport const getParameterValue = (\n p: ICliCommandParameterDescriptor,\n args: Record<string, any>,\n): any | undefined => {\n return (\n args[p.name] ??\n (p.aliases?.find((alias) => args[alias]) &&\n args[p.aliases!.find((alias) => args[alias])!])\n );\n};\n\nexport const formatJson = (json: any): string => {\n const identedJson = JSON.stringify(json, null, 2);\n\n return colorizeJson(identedJson.split('\\n').join('\\r\\n'));\n};\n\nexport const colorizeJson = (jsonString: any): string => {\n return jsonString\n .replace(/\"([^\"]+)\":/g, '\\x1b[33m\"$1\":\\x1b[0m') // Keys (yellow)\n .replace(/: \"([^\"]*)\"/g, ': \\x1b[32m\"$1\"\\x1b[0m') // Strings (green)\n .replace(/: (\\d+)/g, ': \\x1b[34m$1\\x1b[0m') // Numbers (blue)\n .replace(/: (true|false)/g, ': \\x1b[35m$1\\x1b[0m') // Booleans (magenta)\n .replace(/: (null)/g, ': \\x1b[36m$1\\x1b[0m'); // Null (cyan)\n};\n\nexport const toQueryString = (params: Record<string, any>): string => {\n const searchParams = new URLSearchParams();\n\n for (const key in params) {\n if (params.hasOwnProperty(key)) {\n const value = params[key];\n // Handle array and non-primitive values\n if (Array.isArray(value)) {\n value.forEach((v) => searchParams.append(key, v.toString()));\n } else if (value !== null && value !== undefined) {\n searchParams.append(key, value.toString());\n }\n }\n }\n\n return searchParams.toString();\n};\n\nexport const highlightTextWithBg = (\n text: string,\n pattern: RegExp,\n bgColor: CliBackgroundColor = CliBackgroundColor.Yellow,\n): string => {\n // Replace matches with background-colored text\n return text.replace(\n pattern,\n (match) => `${bgColor}${match}${CliForegroundColor.Reset}`,\n );\n};\n\nexport const getRightOfWord = (\n command: string,\n word: string,\n): string | undefined => {\n // Find the position of the word in the command\n const index = command.indexOf(word);\n\n // If the word is found, extract the substring to the right\n if (index !== -1) {\n return command.slice(index + word.length).trim();\n }\n\n // If the word is not found, return null\n return undefined;\n};\n\nexport const utils = {\n getParameterValue,\n formatJson,\n colorizeJson,\n toQueryString,\n highlightTextWithBg,\n getRightOfWord,\n};\n","import { CliBackgroundColor, CliForegroundColor } from '../models';\nimport { constants } from '../constants';\nimport { ICliUmdModule } from '../interfaces';\nimport { utils } from '../utils';\n\nexport const initializeBrowserEnvironment = ({\n handlers,\n}: {\n handlers: ((module: ICliUmdModule) => Promise<void>)[];\n}): void => {\n (window as any).cliCore = {\n onUmdModuleBoot: handlers || [],\n bootUmdModule: async (module: ICliUmdModule) => {\n console.log('Booting UMD module', module.name);\n (window as any)[module.name] = module;\n handlers.forEach(async (handler) => await handler(module));\n },\n ...constants,\n ...utils,\n CliForegroundColor: CliForegroundColor,\n CliBackgroundColor: CliBackgroundColor,\n };\n\n (window as any).ngCore = {\n Injectable: () => {},\n };\n};\n\nexport const bootUmdModule = async (module: ICliUmdModule): Promise<void> => {\n if (typeof (window as any) !== 'undefined') {\n await (window as any).cliCore.bootUmdModule(module);\n } else {\n console.log('window is undefined');\n }\n};\n","/*\n * Public API Surface of core\n */\n\nexport * from './lib/models';\n\nexport * from './lib/interfaces';\n\nexport * from './lib/modules';\n\nexport * from './lib/utils';\n\nexport * from './lib/constants';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"IA6BY,mBAUX;AAVD,CAAA,UAAY,kBAAkB,EAAA;AAC1B,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,YAAkB,CAAA;AAClB,IAAA,kBAAA,CAAA,KAAA,CAAA,GAAA,YAAgB,CAAA;AAChB,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,YAAkB,CAAA;AAClB,IAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,YAAmB,CAAA;AACnB,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,YAAiB,CAAA;AACjB,IAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,YAAoB,CAAA;AACpB,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,YAAiB,CAAA;AACjB,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,YAAkB,CAAA;AAClB,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,WAAiB,CAAA;AACrB,CAAC,EAVW,kBAAkB,KAAlB,kBAAkB,GAU7B,EAAA,CAAA,CAAA,CAAA;IAEW,mBASX;AATD,CAAA,UAAY,kBAAkB,EAAA;AAC1B,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,YAAkB,CAAA;AAClB,IAAA,kBAAA,CAAA,KAAA,CAAA,GAAA,YAAgB,CAAA;AAChB,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,YAAkB,CAAA;AAClB,IAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,YAAmB,CAAA;AACnB,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,YAAiB,CAAA;AACjB,IAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,YAAoB,CAAA;AACpB,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,YAAiB,CAAA;AACjB,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,YAAkB,CAAA;AACtB,CAAC,EATW,kBAAkB,KAAlB,kBAAkB,GAS7B,EAAA,CAAA,CAAA;;AChDY,MAAA,oBAAoB,GAAsB;AACnD,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,KAAK,EAAE,2BAA2B;EACpC;AAEW,MAAA,SAAS,GAAG;IACrB,oBAAoB;;;MCLX,iBAAiB,GAAG,CAC7B,CAAiC,EACjC,IAAyB,KACR;AACjB,IAAA,QACI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACZ,SAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,CAAC,CAAC,OAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAE,CAAC,CAAC,EACrD;AACN,EAAE;AAEW,MAAA,UAAU,GAAG,CAAC,IAAS,KAAY;AAC5C,IAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAElD,IAAA,OAAO,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9D,EAAE;AAEW,MAAA,YAAY,GAAG,CAAC,UAAe,KAAY;AACpD,IAAA,OAAO,UAAU;AACZ,SAAA,OAAO,CAAC,aAAa,EAAE,sBAAsB,CAAC;AAC9C,SAAA,OAAO,CAAC,cAAc,EAAE,uBAAuB,CAAC;AAChD,SAAA,OAAO,CAAC,UAAU,EAAE,qBAAqB,CAAC;AAC1C,SAAA,OAAO,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;AACjD,SAAA,OAAO,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;AACrD,EAAE;AAEW,MAAA,aAAa,GAAG,CAAC,MAA2B,KAAY;AACjE,IAAA,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;AAE3C,IAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACtB,QAAA,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC5B,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;;AAE1B,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAChE,aAAA;AAAM,iBAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;gBAC9C,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,aAAA;AACJ,SAAA;AACJ,KAAA;AAED,IAAA,OAAO,YAAY,CAAC,QAAQ,EAAE,CAAC;AACnC,EAAE;AAEK,MAAM,mBAAmB,GAAG,CAC/B,IAAY,EACZ,OAAe,EACf,OAA8B,GAAA,kBAAkB,CAAC,MAAM,KAC/C;;IAER,OAAO,IAAI,CAAC,OAAO,CACf,OAAO,EACP,CAAC,KAAK,KAAK,CAAG,EAAA,OAAO,GAAG,KAAK,CAAA,EAAG,kBAAkB,CAAC,KAAK,CAAE,CAAA,CAC7D,CAAC;AACN,EAAE;MAEW,cAAc,GAAG,CAC1B,OAAe,EACf,IAAY,KACQ;;IAEpB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;AAGpC,IAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AACd,QAAA,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AACpD,KAAA;;AAGD,IAAA,OAAO,SAAS,CAAC;AACrB,EAAE;AAEW,MAAA,KAAK,GAAG;IACjB,iBAAiB;IACjB,UAAU;IACV,YAAY;IACZ,aAAa;IACb,mBAAmB;IACnB,cAAc;;;MC5EL,4BAA4B,GAAG,CAAC,EACzC,QAAQ,GAGX,KAAU;IACN,MAAc,CAAC,OAAO,GAAG;QACtB,eAAe,EAAE,QAAQ,IAAI,EAAE;AAC/B,QAAA,aAAa,EAAE,OAAO,MAAqB,KAAI;YAC3C,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9C,YAAA,MAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACtC,YAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,OAAO,KAAK,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;SAC9D;AACD,QAAA,GAAG,SAAS;AACZ,QAAA,GAAG,KAAK;AACR,QAAA,kBAAkB,EAAE,kBAAkB;AACtC,QAAA,kBAAkB,EAAE,kBAAkB;KACzC,CAAC;IAED,MAAc,CAAC,MAAM,GAAG;AACrB,QAAA,UAAU,EAAE,MAAK,GAAG;KACvB,CAAC;AACN,EAAE;MAEW,aAAa,GAAG,OAAO,MAAqB,KAAmB;AACxE,IAAA,IAAI,OAAQ,MAAc,KAAK,WAAW,EAAE;QACxC,MAAO,MAAc,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACvD,KAAA;AAAM,SAAA;AACH,QAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACtC,KAAA;AACL;;AClCA;;AAEG;;ACFH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"qodalis-cli-core.mjs","sources":["../../../projects/core/src/lib/models/index.ts","../../../projects/core/src/lib/constants/index.ts","../../../projects/core/src/lib/utils/object-describer.ts","../../../projects/core/src/lib/utils/index.ts","../../../projects/core/src/lib/modules/index.ts","../../../projects/core/src/public-api.ts","../../../projects/core/src/qodalis-cli-core.ts"],"sourcesContent":["import { ITerminalInitOnlyOptions, ITerminalOptions } from '@xterm/xterm';\n\nexport type CliProcessCommand = {\n /**\n * The command that was entered\n */\n command: string;\n\n /**\n * The chain of commands that were entered\n */\n chainCommands: string[];\n\n /**\n * The raw command that was entered\n */\n rawCommand: string;\n\n /**\n * The value of the command\n */\n value?: string;\n\n /**\n * The arguments that were entered\n */\n args: Record<string, any>;\n};\n\nexport enum CliForegroundColor {\n Black = '\\x1b[30m',\n Red = '\\x1b[31m',\n Green = '\\x1b[32m',\n Yellow = '\\x1b[33m',\n Blue = '\\x1b[34m',\n Magenta = '\\x1b[35m',\n Cyan = '\\x1b[36m',\n White = '\\x1b[37m',\n Reset = '\\x1b[0m',\n}\n\nexport enum CliBackgroundColor {\n Black = '\\x1b[40m',\n Red = '\\x1b[41m',\n Green = '\\x1b[42m',\n Yellow = '\\x1b[43m',\n Blue = '\\x1b[44m',\n Magenta = '\\x1b[45m',\n Cyan = '\\x1b[46m',\n White = '\\x1b[47m',\n}\n\nexport enum CliIcon {\n CheckIcon = '✔',\n CrossIcon = '✘',\n InfoIcon = 'ℹ',\n WarningIcon = '⚠',\n}\n\nexport type ICliUser = {\n /**\n * The id of the user\n */\n id: string;\n\n /**\n * The name of the user\n */\n name: string;\n\n /**\n * The email of the user\n */\n email: string;\n\n /**\n * The groups the user belongs to\n * @default []\n */\n groups?: string[];\n};\n\nexport interface ICliUserSession {\n /**\n * The user associated with the session\n */\n user: ICliUser;\n\n /**\n * The data associated with the user session\n */\n data?: Record<string, any>;\n}\n\n/**\n * Options for the CLI\n */\nexport type CliOptions = Record<string, any> & {\n /**\n * The welcome message to display when the CLI starts\n */\n welcomeMessage?: string;\n\n /**\n * If true, the welcome message is hidden\n * @default false\n */\n hideWelcomeMessage?: boolean;\n\n /**\n * Users module options\n */\n usersModule?: {\n /**\n * If true, the users module is enabled\n */\n enabled: boolean;\n\n /**\n * Hide the prompt to display when the CLI is ready to accept input\n */\n hideUserName?: boolean;\n };\n\n /**\n * Custom terminal options\n */\n terminalOptions?: ITerminalOptions & ITerminalInitOnlyOptions;\n};\n\n/**\n * Represents a package that can be installed\n */\nexport interface Package {\n /**\n * The name of the package\n */\n name: string;\n\n /**\n * The global name used to access the package\n */\n globalName?: string;\n\n /**\n * The version of the package\n */\n version: string;\n\n /**\n * The unpkg url to the package\n */\n url: string;\n\n /**\n * The dependencies for the module\n */\n dependencies?: Package[];\n}\n\n/**\n * Represents command processor metadata\n */\nexport type CliProcessorMetadata = Record<string, any> & {\n /**\n * If true, the processor is sealed and cannot be extended\n */\n sealed?: boolean;\n\n /**\n * If true, the processor requires the server to be running\n */\n requireServer?: boolean;\n\n /**\n * The module the processor belongs to\n */\n module?: string;\n};\n\nexport const enums = {\n CliForegroundColor,\n CliBackgroundColor,\n CliIcon,\n};\n","import { ICliCommandAuthor } from '../interfaces';\n\nexport const DefaultLibraryAuthor: ICliCommandAuthor = {\n name: 'Nicolae Lupei',\n email: 'nicolae.lupei@qodalis.com',\n};\n\nexport const constants = {\n DefaultLibraryAuthor,\n};\n","import { ICliCommandProcessor, ICliExecutionContext } from '../interfaces';\nimport { CliForegroundColor, CliProcessCommand } from '../models';\n\nexport class ObjectDescriber {\n static describe(\n obj: any,\n options?: {\n filter?: (o: {\n funcName: string;\n func: any;\n args: string[];\n }) => boolean;\n },\n ): ICliCommandProcessor[] {\n const { filter } = options || {};\n\n const processors: ICliCommandProcessor[] = [];\n\n const keys = Object.keys(obj);\n\n const functions = keys.filter((key) => typeof obj[key] === 'function');\n\n for (const func of functions) {\n const funcValue = obj[func];\n const args = this.getFunctionArguments(funcValue);\n\n if (filter) {\n const shouldInclude = filter({\n funcName: func,\n func: funcValue,\n args,\n });\n\n if (!shouldInclude) {\n continue;\n }\n }\n\n const supportsMultipleArgs = args.length > 1;\n\n const supportsDynamicArgs = this.supportsDynamicArgs(funcValue);\n\n if (args.length === 0 && !supportsDynamicArgs) {\n continue;\n }\n\n if (\n args.length > 0 &&\n args.some((arg) => arg === 'function' || arg === 'func')\n ) {\n continue;\n }\n\n const processor: ICliCommandProcessor = {\n command: func,\n description: `A command that executes the function ${func} with the provided arguments`,\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'debug',\n description: 'Debug',\n type: 'boolean',\n required: false,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const debug = command.args['debug'] as boolean;\n\n if (debug) {\n context.writer.writeln('Executing command: ' + func);\n context.writer.writeln(\n 'Arguments: ' + JSON.stringify(command.args),\n );\n context.writer.writeln(\n 'Function: ' + funcValue.toString(),\n );\n }\n\n const argsToCallF: any[] = [];\n\n if (supportsMultipleArgs) {\n for (const arg of args.slice(1)) {\n argsToCallF.push(command.args[arg]);\n }\n }\n\n if (supportsDynamicArgs) {\n const delimiter = command.args['delimiter'] || ',';\n argsToCallF.push(...command.value!.split(delimiter));\n }\n\n if (debug) {\n context.writer.writeln(\n 'Arguments after processing: ' +\n JSON.stringify(argsToCallF),\n );\n }\n\n const result =\n supportsDynamicArgs && args.length === 0\n ? funcValue(...argsToCallF)\n : funcValue(command.value, ...argsToCallF);\n\n context.writer.write(\n context.writer.wrapInColor(\n 'Result: ',\n CliForegroundColor.Yellow,\n ),\n );\n\n if (result === null) {\n context.writer.writeln('null');\n } else if (result === undefined) {\n context.writer.writeln('undefined');\n } else if (typeof result === 'boolean') {\n context.writer.writeln(result.toString());\n } else if (typeof result === 'number') {\n context.writer.writeln(result.toString());\n } else if (Array.isArray(result)) {\n context.writer.writeJson(result);\n } else if (typeof result === 'string') {\n context.writer.writeln(result);\n } else if (typeof result === 'object') {\n context.writer.writeJson(result);\n } else {\n context.writer.writeln(result?.toString());\n }\n },\n writeDescription: (context: ICliExecutionContext) => {\n context.writer.writeln(func);\n },\n };\n\n if (supportsDynamicArgs) {\n processor.parameters?.push({\n name: 'delimiter',\n description: 'Delimiter',\n type: 'string',\n required: false,\n });\n }\n\n if (supportsMultipleArgs) {\n processor.parameters?.push(\n ...args.slice(1).map((arg) => ({\n name: arg,\n description: arg,\n type: 'string',\n required: false,\n })),\n );\n }\n\n processors.push(processor);\n }\n\n return processors;\n }\n\n static supportsDynamicArgs(func: any): boolean {\n const funcStr = func.toString();\n return funcStr.includes('arguments');\n }\n\n static getFunctionArguments(func: any): string[] {\n const funcStr = func.toString();\n const args = funcStr.match(/\\(([^)]*)\\)/);\n if (!args) {\n return [];\n }\n return args[1]\n .split(',')\n .map((arg: string) => arg.trim())\n .filter((arg: string) => arg !== '');\n }\n}\n","import { ICliCommandParameterDescriptor } from '../interfaces';\nimport { CliBackgroundColor, CliForegroundColor } from '../models';\nimport { ObjectDescriber } from './object-describer';\n\nexport const getParameterValue = (\n p: ICliCommandParameterDescriptor,\n args: Record<string, any>,\n): any | undefined => {\n return (\n args[p.name] ??\n (p.aliases?.find((alias) => args[alias]) &&\n args[p.aliases!.find((alias) => args[alias])!])\n );\n};\n\nexport const formatJson = (json: any): string => {\n const identedJson = JSON.stringify(json, null, 2);\n\n return colorizeJson(identedJson.split('\\n').join('\\r\\n'));\n};\n\nexport const colorizeJson = (jsonString: any): string => {\n return jsonString\n .replace(/\"([^\"]+)\":/g, '\\x1b[33m\"$1\":\\x1b[0m') // Keys (yellow)\n .replace(/: \"([^\"]*)\"/g, ': \\x1b[32m\"$1\"\\x1b[0m') // Strings (green)\n .replace(/: (\\d+)/g, ': \\x1b[34m$1\\x1b[0m') // Numbers (blue)\n .replace(/: (true|false)/g, ': \\x1b[35m$1\\x1b[0m') // Booleans (magenta)\n .replace(/: (null)/g, ': \\x1b[36m$1\\x1b[0m'); // Null (cyan)\n};\n\nexport const toQueryString = (params: Record<string, any>): string => {\n const searchParams = new URLSearchParams();\n\n for (const key in params) {\n if (params.hasOwnProperty(key)) {\n const value = params[key];\n // Handle array and non-primitive values\n if (Array.isArray(value)) {\n value.forEach((v) => searchParams.append(key, v.toString()));\n } else if (value !== null && value !== undefined) {\n searchParams.append(key, value.toString());\n }\n }\n }\n\n return searchParams.toString();\n};\n\nexport const highlightTextWithBg = (\n text: string,\n pattern: RegExp,\n bgColor: CliBackgroundColor = CliBackgroundColor.Yellow,\n): string => {\n // Replace matches with background-colored text\n return text.replace(\n pattern,\n (match) => `${bgColor}${match}${CliForegroundColor.Reset}`,\n );\n};\n\nexport const getRightOfWord = (\n command: string,\n word: string,\n): string | undefined => {\n // Find the position of the word in the command\n const index = command.indexOf(word);\n\n // If the word is found, extract the substring to the right\n if (index !== -1) {\n return command.slice(index + word.length).trim();\n }\n\n // If the word is not found, return null\n return undefined;\n};\n\nexport * from './object-describer';\n\nexport const utils = {\n getParameterValue,\n formatJson,\n colorizeJson,\n toQueryString,\n highlightTextWithBg,\n getRightOfWord,\n ObjectDescriber,\n};\n","import { enums } from '../models';\nimport { constants } from '../constants';\nimport { ICliUmdModule } from '../interfaces';\nimport { utils } from '../utils';\n\nexport const initializeBrowserEnvironment = ({\n handlers,\n}: {\n handlers: ((module: ICliUmdModule) => Promise<void>)[];\n}): void => {\n (window as any).cliCore = {\n onUmdModuleBoot: handlers || [],\n bootUmdModule: async (module: ICliUmdModule) => {\n console.log('Booting UMD module', module.name);\n (window as any)[module.name] = module;\n handlers.forEach(async (handler) => await handler(module));\n },\n ...constants,\n ...utils,\n ...enums,\n };\n\n (window as any).ngCore = {\n Injectable: () => {},\n };\n};\n\nexport const bootUmdModule = async (module: ICliUmdModule): Promise<void> => {\n if (typeof (window as any) !== 'undefined') {\n await (window as any).cliCore.bootUmdModule(module);\n } else {\n console.log('window is undefined');\n }\n};\n","/*\n * Public API Surface of core\n */\n\nexport * from './lib/models';\n\nexport * from './lib/interfaces';\n\nexport * from './lib/modules';\n\nexport * from './lib/utils';\n\nexport * from './lib/constants';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"IA6BY,mBAUX;AAVD,CAAA,UAAY,kBAAkB,EAAA;AAC1B,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,YAAkB,CAAA;AAClB,IAAA,kBAAA,CAAA,KAAA,CAAA,GAAA,YAAgB,CAAA;AAChB,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,YAAkB,CAAA;AAClB,IAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,YAAmB,CAAA;AACnB,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,YAAiB,CAAA;AACjB,IAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,YAAoB,CAAA;AACpB,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,YAAiB,CAAA;AACjB,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,YAAkB,CAAA;AAClB,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,WAAiB,CAAA;AACrB,CAAC,EAVW,kBAAkB,KAAlB,kBAAkB,GAU7B,EAAA,CAAA,CAAA,CAAA;IAEW,mBASX;AATD,CAAA,UAAY,kBAAkB,EAAA;AAC1B,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,YAAkB,CAAA;AAClB,IAAA,kBAAA,CAAA,KAAA,CAAA,GAAA,YAAgB,CAAA;AAChB,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,YAAkB,CAAA;AAClB,IAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,YAAmB,CAAA;AACnB,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,YAAiB,CAAA;AACjB,IAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,YAAoB,CAAA;AACpB,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,YAAiB,CAAA;AACjB,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,YAAkB,CAAA;AACtB,CAAC,EATW,kBAAkB,KAAlB,kBAAkB,GAS7B,EAAA,CAAA,CAAA,CAAA;IAEW,QAKX;AALD,CAAA,UAAY,OAAO,EAAA;AACf,IAAA,OAAA,CAAA,WAAA,CAAA,GAAA,QAAe,CAAA;AACf,IAAA,OAAA,CAAA,WAAA,CAAA,GAAA,QAAe,CAAA;AACf,IAAA,OAAA,CAAA,UAAA,CAAA,GAAA,QAAc,CAAA;AACd,IAAA,OAAA,CAAA,aAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EALW,OAAO,KAAP,OAAO,GAKlB,EAAA,CAAA,CAAA,CAAA;AA2HY,MAAA,KAAK,GAAG;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,OAAO;;;ACrLE,MAAA,oBAAoB,GAAsB;AACnD,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,KAAK,EAAE,2BAA2B;EACpC;AAEW,MAAA,SAAS,GAAG;IACrB,oBAAoB;;;MCLX,eAAe,CAAA;AACxB,IAAA,OAAO,QAAQ,CACX,GAAQ,EACR,OAMC,EAAA;AAED,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAEjC,MAAM,UAAU,GAA2B,EAAE,CAAC;QAE9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE9B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,CAAC;AAEvE,QAAA,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;AAC1B,YAAA,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;AAElD,YAAA,IAAI,MAAM,EAAE;gBACR,MAAM,aAAa,GAAG,MAAM,CAAC;AACzB,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,IAAI,EAAE,SAAS;oBACf,IAAI;AACP,iBAAA,CAAC,CAAC;gBAEH,IAAI,CAAC,aAAa,EAAE;oBAChB,SAAS;AACZ,iBAAA;AACJ,aAAA;AAED,YAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAE7C,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAEhE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBAC3C,SAAS;AACZ,aAAA;AAED,YAAA,IACI,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,gBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,MAAM,CAAC,EAC1D;gBACE,SAAS;AACZ,aAAA;AAED,YAAA,MAAM,SAAS,GAAyB;AACpC,gBAAA,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,CAAwC,qCAAA,EAAA,IAAI,CAA8B,4BAAA,CAAA;AACvF,gBAAA,qBAAqB,EAAE,IAAI;AAC3B,gBAAA,aAAa,EAAE,IAAI;AACnB,gBAAA,UAAU,EAAE;AACR,oBAAA;AACI,wBAAA,IAAI,EAAE,OAAO;AACb,wBAAA,WAAW,EAAE,OAAO;AACpB,wBAAA,IAAI,EAAE,SAAS;AACf,wBAAA,QAAQ,EAAE,KAAK;AAClB,qBAAA;AACJ,iBAAA;AACD,gBAAA,cAAc,EAAE,OACZ,OAA0B,EAC1B,OAA6B,KAC7B;oBACA,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAY,CAAC;AAE/C,oBAAA,IAAI,KAAK,EAAE;wBACP,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;AACrD,wBAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAClB,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAC/C,CAAC;AACF,wBAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAClB,YAAY,GAAG,SAAS,CAAC,QAAQ,EAAE,CACtC,CAAC;AACL,qBAAA;oBAED,MAAM,WAAW,GAAU,EAAE,CAAC;AAE9B,oBAAA,IAAI,oBAAoB,EAAE;wBACtB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;4BAC7B,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,yBAAA;AACJ,qBAAA;AAED,oBAAA,IAAI,mBAAmB,EAAE;wBACrB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC;AACnD,wBAAA,WAAW,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AACxD,qBAAA;AAED,oBAAA,IAAI,KAAK,EAAE;AACP,wBAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAClB,8BAA8B;AAC1B,4BAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAClC,CAAC;AACL,qBAAA;oBAED,MAAM,MAAM,GACR,mBAAmB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;AACpC,0BAAE,SAAS,CAAC,GAAG,WAAW,CAAC;0BACzB,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,WAAW,CAAC,CAAC;AAEnD,oBAAA,OAAO,CAAC,MAAM,CAAC,KAAK,CAChB,OAAO,CAAC,MAAM,CAAC,WAAW,CACtB,UAAU,EACV,kBAAkB,CAAC,MAAM,CAC5B,CACJ,CAAC;oBAEF,IAAI,MAAM,KAAK,IAAI,EAAE;AACjB,wBAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAClC,qBAAA;yBAAM,IAAI,MAAM,KAAK,SAAS,EAAE;AAC7B,wBAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACvC,qBAAA;AAAM,yBAAA,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE;wBACpC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7C,qBAAA;AAAM,yBAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;wBACnC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7C,qBAAA;AAAM,yBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC9B,wBAAA,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACpC,qBAAA;AAAM,yBAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACnC,wBAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAClC,qBAAA;AAAM,yBAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACnC,wBAAA,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACpC,qBAAA;AAAM,yBAAA;wBACH,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC9C,qBAAA;iBACJ;AACD,gBAAA,gBAAgB,EAAE,CAAC,OAA6B,KAAI;AAChD,oBAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;iBAChC;aACJ,CAAC;AAEF,YAAA,IAAI,mBAAmB,EAAE;AACrB,gBAAA,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC;AACvB,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,WAAW,EAAE,WAAW;AACxB,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,QAAQ,EAAE,KAAK;AAClB,iBAAA,CAAC,CAAC;AACN,aAAA;AAED,YAAA,IAAI,oBAAoB,EAAE;gBACtB,SAAS,CAAC,UAAU,EAAE,IAAI,CACtB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AAC3B,oBAAA,IAAI,EAAE,GAAG;AACT,oBAAA,WAAW,EAAE,GAAG;AAChB,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,QAAQ,EAAE,KAAK;iBAClB,CAAC,CAAC,CACN,CAAC;AACL,aAAA;AAED,YAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9B,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACrB;IAED,OAAO,mBAAmB,CAAC,IAAS,EAAA;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChC,QAAA,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;KACxC;IAED,OAAO,oBAAoB,CAAC,IAAS,EAAA;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,EAAE,CAAC;AACb,SAAA;QACD,OAAO,IAAI,CAAC,CAAC,CAAC;aACT,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,GAAW,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;aAChC,MAAM,CAAC,CAAC,GAAW,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;KAC5C;AACJ;;MC/KY,iBAAiB,GAAG,CAC7B,CAAiC,EACjC,IAAyB,KACR;AACjB,IAAA,QACI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACZ,SAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,CAAC,CAAC,OAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAE,CAAC,CAAC,EACrD;AACN,EAAE;AAEW,MAAA,UAAU,GAAG,CAAC,IAAS,KAAY;AAC5C,IAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAElD,IAAA,OAAO,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9D,EAAE;AAEW,MAAA,YAAY,GAAG,CAAC,UAAe,KAAY;AACpD,IAAA,OAAO,UAAU;AACZ,SAAA,OAAO,CAAC,aAAa,EAAE,sBAAsB,CAAC;AAC9C,SAAA,OAAO,CAAC,cAAc,EAAE,uBAAuB,CAAC;AAChD,SAAA,OAAO,CAAC,UAAU,EAAE,qBAAqB,CAAC;AAC1C,SAAA,OAAO,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;AACjD,SAAA,OAAO,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;AACrD,EAAE;AAEW,MAAA,aAAa,GAAG,CAAC,MAA2B,KAAY;AACjE,IAAA,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;AAE3C,IAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACtB,QAAA,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC5B,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;;AAE1B,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAChE,aAAA;AAAM,iBAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;gBAC9C,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,aAAA;AACJ,SAAA;AACJ,KAAA;AAED,IAAA,OAAO,YAAY,CAAC,QAAQ,EAAE,CAAC;AACnC,EAAE;AAEK,MAAM,mBAAmB,GAAG,CAC/B,IAAY,EACZ,OAAe,EACf,OAA8B,GAAA,kBAAkB,CAAC,MAAM,KAC/C;;IAER,OAAO,IAAI,CAAC,OAAO,CACf,OAAO,EACP,CAAC,KAAK,KAAK,CAAG,EAAA,OAAO,GAAG,KAAK,CAAA,EAAG,kBAAkB,CAAC,KAAK,CAAE,CAAA,CAC7D,CAAC;AACN,EAAE;MAEW,cAAc,GAAG,CAC1B,OAAe,EACf,IAAY,KACQ;;IAEpB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;AAGpC,IAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AACd,QAAA,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AACpD,KAAA;;AAGD,IAAA,OAAO,SAAS,CAAC;AACrB,EAAE;AAIW,MAAA,KAAK,GAAG;IACjB,iBAAiB;IACjB,UAAU;IACV,YAAY;IACZ,aAAa;IACb,mBAAmB;IACnB,cAAc;IACd,eAAe;;;MChFN,4BAA4B,GAAG,CAAC,EACzC,QAAQ,GAGX,KAAU;IACN,MAAc,CAAC,OAAO,GAAG;QACtB,eAAe,EAAE,QAAQ,IAAI,EAAE;AAC/B,QAAA,aAAa,EAAE,OAAO,MAAqB,KAAI;YAC3C,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9C,YAAA,MAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACtC,YAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,OAAO,KAAK,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;SAC9D;AACD,QAAA,GAAG,SAAS;AACZ,QAAA,GAAG,KAAK;AACR,QAAA,GAAG,KAAK;KACX,CAAC;IAED,MAAc,CAAC,MAAM,GAAG;AACrB,QAAA,UAAU,EAAE,MAAK,GAAG;KACvB,CAAC;AACN,EAAE;MAEW,aAAa,GAAG,OAAO,MAAqB,KAAmB;AACxE,IAAA,IAAI,OAAQ,MAAc,KAAK,WAAW,EAAE;QACxC,MAAO,MAAc,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACvD,KAAA;AAAM,SAAA;AACH,QAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACtC,KAAA;AACL;;ACjCA;;AAEG;;ACFH;;AAEG;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Terminal } from '@xterm/xterm';
|
|
2
2
|
import { Observable, Subject } from 'rxjs';
|
|
3
|
-
import { CliBackgroundColor, CliForegroundColor, CliOptions, CliProcessCommand, ICliUser, ICliUserSession } from '../models';
|
|
3
|
+
import { CliBackgroundColor, CliForegroundColor, CliOptions, CliProcessCommand, CliProcessorMetadata, ICliUser, ICliUserSession } from '../models';
|
|
4
4
|
export interface ICliCommandAuthor {
|
|
5
5
|
/**
|
|
6
6
|
* The name of the author
|
|
@@ -41,9 +41,9 @@ export interface ICliCommandProcessor {
|
|
|
41
41
|
*/
|
|
42
42
|
version?: string;
|
|
43
43
|
/**
|
|
44
|
-
*
|
|
44
|
+
* The metadata for the command processor
|
|
45
45
|
*/
|
|
46
|
-
|
|
46
|
+
metadata?: CliProcessorMetadata;
|
|
47
47
|
/**
|
|
48
48
|
* Processors that are nested under this processor
|
|
49
49
|
*/
|
|
@@ -189,7 +189,7 @@ export interface ICliTerminalWriter {
|
|
|
189
189
|
* @param objects The objects to write to the table
|
|
190
190
|
* @returns void
|
|
191
191
|
*/
|
|
192
|
-
|
|
192
|
+
writeObjectsAsTable(objects: any[]): void;
|
|
193
193
|
/**
|
|
194
194
|
* Write a table to the terminal
|
|
195
195
|
* @param headers The headers of the table
|
|
@@ -216,7 +216,19 @@ export interface ICliProgressBar {
|
|
|
216
216
|
* Represents a spinner for the CLI
|
|
217
217
|
*/
|
|
218
218
|
export interface ICliSpinner extends ICliProgressBar {
|
|
219
|
+
/**
|
|
220
|
+
* Set the text of the spinner
|
|
221
|
+
* @param text The text to set
|
|
222
|
+
*/
|
|
223
|
+
setText: (text: string) => void;
|
|
219
224
|
}
|
|
225
|
+
export type CliPercentageProgressBarUpdateValueOptions = {
|
|
226
|
+
/**
|
|
227
|
+
* The type of update to perform
|
|
228
|
+
* @default 'replace'
|
|
229
|
+
*/
|
|
230
|
+
type?: 'replace' | 'increment';
|
|
231
|
+
};
|
|
220
232
|
/**
|
|
221
233
|
* Represents a progress bar for the CLI
|
|
222
234
|
*/
|
|
@@ -226,12 +238,17 @@ export interface ICliPercentageProgressBar extends ICliProgressBar {
|
|
|
226
238
|
* @param progress The progress to update to
|
|
227
239
|
* @returns void
|
|
228
240
|
*/
|
|
229
|
-
update: (progress: number) => void;
|
|
241
|
+
update: (progress: number, options?: CliPercentageProgressBarUpdateValueOptions) => void;
|
|
230
242
|
/**
|
|
231
243
|
* Complete the progress bar
|
|
232
244
|
* @returns void
|
|
233
245
|
*/
|
|
234
246
|
complete: () => void;
|
|
247
|
+
/**
|
|
248
|
+
* Set the text of the spinner
|
|
249
|
+
* @param text The text to set
|
|
250
|
+
*/
|
|
251
|
+
setText: (text: string) => void;
|
|
235
252
|
}
|
|
236
253
|
/**
|
|
237
254
|
* Represents a clipboard for the CLI
|
|
@@ -375,12 +392,16 @@ export interface ICliUsersStoreService {
|
|
|
375
392
|
* Gets the current users
|
|
376
393
|
* @returns An observable that emits the current users
|
|
377
394
|
*/
|
|
378
|
-
getUsers(
|
|
395
|
+
getUsers(options?: {
|
|
396
|
+
query?: string;
|
|
397
|
+
skip?: number;
|
|
398
|
+
take?: number;
|
|
399
|
+
}): Observable<ICliUser[]>;
|
|
379
400
|
/**
|
|
380
|
-
*
|
|
381
|
-
* @param
|
|
401
|
+
* Creates a user
|
|
402
|
+
* @param user The user to create
|
|
382
403
|
*/
|
|
383
|
-
|
|
404
|
+
createUser(user: Omit<ICliUser, 'id'>): Promise<ICliUser>;
|
|
384
405
|
/**
|
|
385
406
|
* Gets a user by id
|
|
386
407
|
* @param id The id of the user to get
|
package/lib/models/index.d.ts
CHANGED
|
@@ -42,7 +42,13 @@ export declare enum CliBackgroundColor {
|
|
|
42
42
|
Cyan = "\u001B[46m",
|
|
43
43
|
White = "\u001B[47m"
|
|
44
44
|
}
|
|
45
|
-
export
|
|
45
|
+
export declare enum CliIcon {
|
|
46
|
+
CheckIcon = "\u2714",
|
|
47
|
+
CrossIcon = "\u2718",
|
|
48
|
+
InfoIcon = "\u2139",
|
|
49
|
+
WarningIcon = "\u26A0"
|
|
50
|
+
}
|
|
51
|
+
export type ICliUser = {
|
|
46
52
|
/**
|
|
47
53
|
* The id of the user
|
|
48
54
|
*/
|
|
@@ -55,7 +61,12 @@ export interface ICliUser extends Record<string, any> {
|
|
|
55
61
|
* The email of the user
|
|
56
62
|
*/
|
|
57
63
|
email: string;
|
|
58
|
-
|
|
64
|
+
/**
|
|
65
|
+
* The groups the user belongs to
|
|
66
|
+
* @default []
|
|
67
|
+
*/
|
|
68
|
+
groups?: string[];
|
|
69
|
+
};
|
|
59
70
|
export interface ICliUserSession {
|
|
60
71
|
/**
|
|
61
72
|
* The user associated with the session
|
|
@@ -69,15 +80,29 @@ export interface ICliUserSession {
|
|
|
69
80
|
/**
|
|
70
81
|
* Options for the CLI
|
|
71
82
|
*/
|
|
72
|
-
export type CliOptions = {
|
|
83
|
+
export type CliOptions = Record<string, any> & {
|
|
73
84
|
/**
|
|
74
85
|
* The welcome message to display when the CLI starts
|
|
75
86
|
*/
|
|
76
87
|
welcomeMessage?: string;
|
|
77
88
|
/**
|
|
78
|
-
*
|
|
89
|
+
* If true, the welcome message is hidden
|
|
90
|
+
* @default false
|
|
79
91
|
*/
|
|
80
|
-
|
|
92
|
+
hideWelcomeMessage?: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Users module options
|
|
95
|
+
*/
|
|
96
|
+
usersModule?: {
|
|
97
|
+
/**
|
|
98
|
+
* If true, the users module is enabled
|
|
99
|
+
*/
|
|
100
|
+
enabled: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Hide the prompt to display when the CLI is ready to accept input
|
|
103
|
+
*/
|
|
104
|
+
hideUserName?: boolean;
|
|
105
|
+
};
|
|
81
106
|
/**
|
|
82
107
|
* Custom terminal options
|
|
83
108
|
*/
|
|
@@ -108,3 +133,25 @@ export interface Package {
|
|
|
108
133
|
*/
|
|
109
134
|
dependencies?: Package[];
|
|
110
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* Represents command processor metadata
|
|
138
|
+
*/
|
|
139
|
+
export type CliProcessorMetadata = Record<string, any> & {
|
|
140
|
+
/**
|
|
141
|
+
* If true, the processor is sealed and cannot be extended
|
|
142
|
+
*/
|
|
143
|
+
sealed?: boolean;
|
|
144
|
+
/**
|
|
145
|
+
* If true, the processor requires the server to be running
|
|
146
|
+
*/
|
|
147
|
+
requireServer?: boolean;
|
|
148
|
+
/**
|
|
149
|
+
* The module the processor belongs to
|
|
150
|
+
*/
|
|
151
|
+
module?: string;
|
|
152
|
+
};
|
|
153
|
+
export declare const enums: {
|
|
154
|
+
CliForegroundColor: typeof CliForegroundColor;
|
|
155
|
+
CliBackgroundColor: typeof CliBackgroundColor;
|
|
156
|
+
CliIcon: typeof CliIcon;
|
|
157
|
+
};
|
package/lib/utils/index.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { ICliCommandParameterDescriptor } from '../interfaces';
|
|
2
2
|
import { CliBackgroundColor } from '../models';
|
|
3
|
+
import { ObjectDescriber } from './object-describer';
|
|
3
4
|
export declare const getParameterValue: (p: ICliCommandParameterDescriptor, args: Record<string, any>) => any | undefined;
|
|
4
5
|
export declare const formatJson: (json: any) => string;
|
|
5
6
|
export declare const colorizeJson: (jsonString: any) => string;
|
|
6
7
|
export declare const toQueryString: (params: Record<string, any>) => string;
|
|
7
8
|
export declare const highlightTextWithBg: (text: string, pattern: RegExp, bgColor?: CliBackgroundColor) => string;
|
|
8
9
|
export declare const getRightOfWord: (command: string, word: string) => string | undefined;
|
|
10
|
+
export * from './object-describer';
|
|
9
11
|
export declare const utils: {
|
|
10
12
|
getParameterValue: (p: ICliCommandParameterDescriptor, args: Record<string, any>) => any | undefined;
|
|
11
13
|
formatJson: (json: any) => string;
|
|
@@ -13,4 +15,5 @@ export declare const utils: {
|
|
|
13
15
|
toQueryString: (params: Record<string, any>) => string;
|
|
14
16
|
highlightTextWithBg: (text: string, pattern: RegExp, bgColor?: CliBackgroundColor) => string;
|
|
15
17
|
getRightOfWord: (command: string, word: string) => string | undefined;
|
|
18
|
+
ObjectDescriber: typeof ObjectDescriber;
|
|
16
19
|
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ICliCommandProcessor } from '../interfaces';
|
|
2
|
+
export declare class ObjectDescriber {
|
|
3
|
+
static describe(obj: any, options?: {
|
|
4
|
+
filter?: (o: {
|
|
5
|
+
funcName: string;
|
|
6
|
+
func: any;
|
|
7
|
+
args: string[];
|
|
8
|
+
}) => boolean;
|
|
9
|
+
}): ICliCommandProcessor[];
|
|
10
|
+
static supportsDynamicArgs(func: any): boolean;
|
|
11
|
+
static getFunctionArguments(func: any): string[];
|
|
12
|
+
}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qodalis/cli-core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7",
|
|
4
4
|
"description": "Core Angular CLI for @qodalis extensions.",
|
|
5
5
|
"author": "Nicolae Lupei, Qodalis Solutions",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "https://github.com/qodalis-solutions/
|
|
9
|
+
"url": "https://github.com/qodalis-solutions/angular-web-cli"
|
|
10
10
|
},
|
|
11
11
|
"homepage": "https://qodalis.com",
|
|
12
12
|
"keywords": [
|