@qodalis/cli-core 0.0.7 → 0.0.8

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 CHANGED
@@ -164,6 +164,7 @@ root:~$
164
164
  - [@qodalis/cli-speed-test](https://www.npmjs.com/package/@qodalis/cli-speed-test) - run the internet speed test
165
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
166
  - [@qodalis/cli-string](https://www.npmjs.com/package/@qodalis/cli-browser-storage) - provide commands to operate with strings.
167
+ - [@qodalis/cli-todo](https://www.npmjs.com/package/@qodalis/cli-todo) - A command-line tool for managing your tasks efficiently. Add, list, complete, and remove TODO items with simple commands.
167
168
  - More will be implemented ...
168
169
 
169
170
  ## Extending with Custom Commands
@@ -1,2 +1,2 @@
1
1
  export {};
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=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVybWluYWwgfSBmcm9tICdAeHRlcm0veHRlcm0nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgICBDbGlCYWNrZ3JvdW5kQ29sb3IsXG4gICAgQ2xpRm9yZWdyb3VuZENvbG9yLFxuICAgIENsaU9wdGlvbnMsXG4gICAgQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgQ2xpUHJvY2Vzc29yTWV0YWRhdGEsXG4gICAgSUNsaVVzZXIsXG4gICAgSUNsaVVzZXJTZXNzaW9uLFxufSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDbGlDb21tYW5kQXV0aG9yIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yXG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGVtYWlsIG9mIHRoZSBhdXRob3JcbiAgICAgKi9cbiAgICBlbWFpbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb21tYW5kIHByb2Nlc3NvclxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDbGlDb21tYW5kUHJvY2Vzc29yIHtcbiAgICAvKipcbiAgICAgKiBUaGUgY29tbWFuZCB0aGF0IHRoaXMgcHJvY2Vzc29yIGhhbmRsZXNcbiAgICAgKi9cbiAgICBjb21tYW5kOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBjb21tYW5kXG4gICAgICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYXV0aG9yIG9mIHRoZSBjb21tYW5kXG4gICAgICovXG4gICAgYXV0aG9yPzogSUNsaUNvbW1hbmRBdXRob3I7XG5cbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB0aGUgcHJvY2Vzc29yIGNhbiBoYW5kbGUgdW5saXN0ZWQgY29tbWFuZHNcbiAgICAgKi9cbiAgICBhbGxvd1VubGlzdGVkQ29tbWFuZHM/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhlIHZhbHVlIGlzIHJlcXVpcmVkXG4gICAgICovXG4gICAgdmFsdWVSZXF1aXJlZD86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgY29tbWFuZCBwcm9jZXNzb3JcbiAgICAgKiBAZGVmYXVsdCAnMS4wLjAnXG4gICAgICovXG4gICAgdmVyc2lvbj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBtZXRhZGF0YSBmb3IgdGhlIGNvbW1hbmQgcHJvY2Vzc29yXG4gICAgICovXG4gICAgbWV0YWRhdGE/OiBDbGlQcm9jZXNzb3JNZXRhZGF0YTtcblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NvcnMgdGhhdCBhcmUgbmVzdGVkIHVuZGVyIHRoaXMgcHJvY2Vzc29yXG4gICAgICovXG4gICAgcHJvY2Vzc29ycz86IElDbGlDb21tYW5kUHJvY2Vzc29yW107XG5cbiAgICAvKipcbiAgICAgKiBQYXJhbWV0ZXJzIHRoYXQgdGhlIGNvbW1hbmQgYWNjZXB0c1xuICAgICAqL1xuICAgIHBhcmFtZXRlcnM/OiBJQ2xpQ29tbWFuZFBhcmFtZXRlckRlc2NyaXB0b3JbXTtcblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3MgdGhlIGNvbW1hbmRcbiAgICAgKiBAcGFyYW0gY29tbWFuZCBUaGUgY29tbWFuZCB0byBwcm9jZXNzXG4gICAgICogQHBhcmFtIGNvbnRleHQgVGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIGNvbW1hbmQgaXMgZXhlY3V0ZWRcbiAgICAgKi9cbiAgICBwcm9jZXNzQ29tbWFuZChcbiAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICk6IFByb21pc2U8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZSB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIGNvbW1hbmRcbiAgICAgKiBAcGFyYW0gY29udGV4dCBUaGUgY29udGV4dCBpbiB3aGljaCB0aGUgY29tbWFuZCBpcyBleGVjdXRlZFxuICAgICAqL1xuICAgIHdyaXRlRGVzY3JpcHRpb24/KGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0KTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEEgZnVuY3Rpb24gdGhhdCB2YWxpZGF0ZXMgdGhlIGNvbW1hbmQgYmVmb3JlIGV4ZWN1dGlvblxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gdmFsaWRhdGVcbiAgICAgKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBhIHZhbGlkIHByb3BlcnR5IHRoYXQgaW5kaWNhdGVzIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCBhbmQgYW4gb3B0aW9uYWwgbWVzc2FnZSBwcm9wZXJ0eSB0aGF0IGNvbnRhaW5zIGEgbWVzc2FnZSB0byBkaXNwbGF5IGlmIHRoZSB2YWx1ZSBpcyBub3QgdmFsaWRcbiAgICAgKi9cbiAgICB2YWxpZGF0ZUJlZm9yZUV4ZWN1dGlvbj86IChcbiAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICkgPT4ge1xuICAgICAgICB2YWxpZDogYm9vbGVhbjtcbiAgICAgICAgbWVzc2FnZT86IHN0cmluZztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZSB0aGUgY29tbWFuZCBwcm9jZXNzb3JcbiAgICAgKiBAcGFyYW0gY29udGV4dCBUaGUgY29udGV4dCBpbiB3aGljaCB0aGUgY29tbWFuZCBpcyBleGVjdXRlZFxuICAgICAqL1xuICAgIGluaXRpYWxpemU/KGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0KTogUHJvbWlzZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY29tbWFuZCBwYXJhbWV0ZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2xpQ29tbWFuZFBhcmFtZXRlckRlc2NyaXB0b3Ige1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXJcbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBBbGlhc2VzIGZvciB0aGUgcGFyYW1ldGVyXG4gICAgICovXG4gICAgYWxpYXNlcz86IHN0cmluZ1tdO1xuXG4gICAgLyoqXG4gICAgICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgcGFyYW1ldGVyXG4gICAgICovXG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoZSBwYXJhbWV0ZXIgaXMgcmVxdWlyZWRcbiAgICAgKi9cbiAgICByZXF1aXJlZDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0eXBlIG9mIHRoZSBwYXJhbWV0ZXJcbiAgICAgKi9cbiAgICB0eXBlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyXG4gICAgICovXG4gICAgZGVmYXVsdFZhbHVlPzogYW55O1xuXG4gICAgLyoqXG4gICAgICogQSB2YWxpZGF0b3IgZnVuY3Rpb24gdGhhdCB2YWxpZGF0ZXMgdGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXJcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHZhbGlkYXRlXG4gICAgICogQHJldHVybnMgQW4gb2JqZWN0IHdpdGggYSB2YWxpZCBwcm9wZXJ0eSB0aGF0IGluZGljYXRlcyBpZiB0aGUgdmFsdWUgaXMgdmFsaWQgYW5kIGFuIG9wdGlvbmFsIG1lc3NhZ2UgcHJvcGVydHkgdGhhdCBjb250YWlucyBhIG1lc3NhZ2UgdG8gZGlzcGxheSBpZiB0aGUgdmFsdWUgaXMgbm90IHZhbGlkXG4gICAgICovXG4gICAgdmFsaWRhdG9yPzogKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEluZGljYXRlcyBpZiB0aGUgdmFsdWUgaXMgdmFsaWRcbiAgICAgICAgICovXG4gICAgICAgIHZhbGlkOiBib29sZWFuO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBbiBvcHRpb25hbCBtZXNzYWdlIHRvIGRpc3BsYXkgaWYgdGhlIHZhbHVlIGlzIG5vdCB2YWxpZFxuICAgICAgICAgKi9cbiAgICAgICAgbWVzc2FnZT86IHN0cmluZztcbiAgICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDbGlUZXJtaW5hbFdyaXRlciB7XG4gICAgLyoqXG4gICAgICogV3JpdGUgdGV4dCB0byB0aGUgdGVybWluYWxcbiAgICAgKiBAcGFyYW0gdGV4dCBUaGUgdGV4dCB0byB3cml0ZVxuICAgICAqL1xuICAgIHdyaXRlKHRleHQ6IHN0cmluZyk6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZSB0ZXh0IHRvIHRoZSB0ZXJtaW5hbCBmb2xsb3dlZCBieSBhIG5ld2xpbmVcbiAgICAgKiBAcGFyYW0gdGV4dCBUaGUgdGV4dCB0byB3cml0ZVxuICAgICAqL1xuICAgIHdyaXRlbG4odGV4dDogc3RyaW5nKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFdyaXRlIGEgc3VjY2VzcyBtZXNzYWdlIHRvIHRoZSB0ZXJtaW5hbFxuICAgICAqIEBwYXJhbSBtZXNzYWcgVGhlIG1lc3NhZ2UgdG8gd3JpdGVcbiAgICAgKiBAcmV0dXJucyB2b2lkXG4gICAgICovXG4gICAgd3JpdGVTdWNjZXNzOiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogV3JpdGUgYW4gaW5mbyBtZXNzYWdlIHRvIHRoZSB0ZXJtaW5hbFxuICAgICAqIEBwYXJhbSBtZXNzYWcgVGhlIG1lc3NhZ2UgdG8gd3JpdGVcbiAgICAgKiBAcmV0dXJucyB2b2lkXG4gICAgICovXG4gICAgd3JpdGVJbmZvOiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogV3JpdGUgYW4gZXJyb3IgbWVzc2FnZSB0byB0aGUgdGVybWluYWxcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgbWVzc2FnZSB0byB3cml0ZVxuICAgICAqIEByZXR1cm5zIHZvaWRcbiAgICAgKi9cbiAgICB3cml0ZUVycm9yOiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogV3JpdGUgYSB3YXJuaW5nIG1lc3NhZ2UgdG8gdGhlIHRlcm1pbmFsXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gd3JpdGVcbiAgICAgKiBAcmV0dXJucyB2b2lkXG4gICAgICovXG4gICAgd3JpdGVXYXJuaW5nOiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogV3JpdGUgYSBtZXNzYWdlIHRvIHRoZSB0ZXJtaW5hbCB3aXRoIHRoZSBzcGVjaWZpZWQgY29sb3JcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgbWVzc2FnZSB0byB3cml0ZVxuICAgICAqIEBwYXJhbSBjb2xvciBUaGUgY29sb3IgdG8gdXNlXG4gICAgICogQHJldHVybnMgdm9pZFxuICAgICAqL1xuICAgIHdyYXBJbkNvbG9yOiAodGV4dDogc3RyaW5nLCBjb2xvcjogQ2xpRm9yZWdyb3VuZENvbG9yKSA9PiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZSBhIG1lc3NhZ2UgdG8gdGhlIHRlcm1pbmFsIHdpdGggdGhlIHNwZWNpZmllZCBiYWNrZ3JvdW5kIGNvbG9yXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gd3JpdGVcbiAgICAgKiBAcGFyYW0gY29sb3IgVGhlIGJhY2tncm91bmQgY29sb3IgdG8gdXNlXG4gICAgICogQHJldHVybnMgdm9pZFxuICAgICAqL1xuICAgIHdyYXBJbkJhY2tncm91bmRDb2xvcjogKHRleHQ6IHN0cmluZywgY29sb3I6IENsaUJhY2tncm91bmRDb2xvcikgPT4gc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogV3JpdGUgYSBKU09OIG9iamVjdCB0byB0aGUgdGVybWluYWxcbiAgICAgKiBAcGFyYW0ganNvbiBUaGUgSlNPTiBvYmplY3QgdG8gd3JpdGVcbiAgICAgKiBAcmV0dXJucyB2b2lkXG4gICAgICovXG4gICAgd3JpdGVKc29uOiAoanNvbjogYW55KSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogV3JpdGUgY29udGVudCB0byBhIGZpbGVcbiAgICAgKiBAcGFyYW0gZmlsZU5hbWUgVGhlIG5hbWUgb2YgdGhlIGZpbGUgdG8gd3JpdGUgdG9cbiAgICAgKiBAcGFyYW0gY29udGVudCBUaGUgY29udGVudCB0byB3cml0ZSB0byB0aGUgZmlsZVxuICAgICAqIEByZXR1cm5zIHZvaWRcbiAgICAgKi9cbiAgICB3cml0ZVRvRmlsZTogKGZpbGVOYW1lOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZykgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFdyaXRlIGFuIG9iamVjdCBhcnJheSBhcyBhIHRhYmxlIHRvIHRoZSB0ZXJtaW5hbFxuICAgICAqIEBwYXJhbSBvYmplY3RzIFRoZSBvYmplY3RzIHRvIHdyaXRlIHRvIHRoZSB0YWJsZVxuICAgICAqIEByZXR1cm5zIHZvaWRcbiAgICAgKi9cbiAgICB3cml0ZU9iamVjdHNBc1RhYmxlKG9iamVjdHM6IGFueVtdKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFdyaXRlIGEgdGFibGUgdG8gdGhlIHRlcm1pbmFsXG4gICAgICogQHBhcmFtIGhlYWRlcnMgVGhlIGhlYWRlcnMgb2YgdGhlIHRhYmxlXG4gICAgICogQHBhcmFtIHJvd3MgVGhlIHJvd3Mgb2YgdGhlIHRhYmxlXG4gICAgICogQHJldHVybnMgdm9pZFxuICAgICAqL1xuICAgIHdyaXRlVGFibGUoaGVhZGVyczogc3RyaW5nW10sIHJvd3M6IHN0cmluZ1tdW10pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDbGlQcm9ncmVzc0JhciB7XG4gICAgLyoqXG4gICAgICogSW5kaWNhdGVzIGlmIHRoZSBwcm9ncmVzcyBiYXIgaXMgcnVubmluZ1xuICAgICAqL1xuICAgIGlzUnVubmluZzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIHByb2dyZXNzIGJhclxuICAgICAqL1xuICAgIHNob3c6ICgpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBIaWRlIHRoZSBwcm9ncmVzcyBiYXJcbiAgICAgKi9cbiAgICBoaWRlOiAoKSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzcGlubmVyIGZvciB0aGUgQ0xJXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaVNwaW5uZXIgZXh0ZW5kcyBJQ2xpUHJvZ3Jlc3NCYXIge1xuICAgIC8qKlxuICAgICAqIFNldCB0aGUgdGV4dCBvZiB0aGUgc3Bpbm5lclxuICAgICAqIEBwYXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIHNldFxuICAgICAqL1xuICAgIHNldFRleHQ6ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIENsaVBlcmNlbnRhZ2VQcm9ncmVzc0JhclVwZGF0ZVZhbHVlT3B0aW9ucyA9IHtcbiAgICAvKipcbiAgICAgKiBUaGUgdHlwZSBvZiB1cGRhdGUgdG8gcGVyZm9ybVxuICAgICAqIEBkZWZhdWx0ICdyZXBsYWNlJ1xuICAgICAqL1xuICAgIHR5cGU/OiAncmVwbGFjZScgfCAnaW5jcmVtZW50Jztcbn07XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHByb2dyZXNzIGJhciBmb3IgdGhlIENMSVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDbGlQZXJjZW50YWdlUHJvZ3Jlc3NCYXIgZXh0ZW5kcyBJQ2xpUHJvZ3Jlc3NCYXIge1xuICAgIC8qKlxuICAgICAqIFVwZGF0ZSB0aGUgcHJvZ3Jlc3Mgb2YgdGhlIHByb2dyZXNzIGJhclxuICAgICAqIEBwYXJhbSBwcm9ncmVzcyBUaGUgcHJvZ3Jlc3MgdG8gdXBkYXRlIHRvXG4gICAgICogQHJldHVybnMgdm9pZFxuICAgICAqL1xuICAgIHVwZGF0ZTogKFxuICAgICAgICBwcm9ncmVzczogbnVtYmVyLFxuICAgICAgICBvcHRpb25zPzogQ2xpUGVyY2VudGFnZVByb2dyZXNzQmFyVXBkYXRlVmFsdWVPcHRpb25zLFxuICAgICkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIENvbXBsZXRlIHRoZSBwcm9ncmVzcyBiYXJcbiAgICAgKiBAcmV0dXJucyB2b2lkXG4gICAgICovXG4gICAgY29tcGxldGU6ICgpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIHRleHQgb2YgdGhlIHNwaW5uZXJcbiAgICAgKiBAcGFyYW0gdGV4dCBUaGUgdGV4dCB0byBzZXRcbiAgICAgKi9cbiAgICBzZXRUZXh0OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjbGlwYm9hcmQgZm9yIHRoZSBDTElcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2xpQ2xpcGJvYXJkIHtcbiAgICAvKipcbiAgICAgKiBXcml0ZSB0ZXh0IHRvIHRoZSBjbGlwYm9hcmRcbiAgICAgKiBAcGFyYW0gdGV4dCBUaGUgdGV4dCB0byB3cml0ZSB0byB0aGUgY2xpcGJvYXJkXG4gICAgICogQHJldHVybnMgdm9pZFxuICAgICAqL1xuICAgIHdyaXRlOiAodGV4dDogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gICAgLyoqXG4gICAgICogUmVhZCB0ZXh0IGZyb20gdGhlIGNsaXBib2FyZFxuICAgICAqIEByZXR1cm5zIFRoZSB0ZXh0IHJlYWQgZnJvbSB0aGUgY2xpcGJvYXJkXG4gICAgICovXG4gICAgcmVhZDogKCkgPT4gUHJvbWlzZTxzdHJpbmc+O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzZXJ2aWNlIHRoYXQgZXhlY3V0ZXMgY29tbWFuZHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2xpQ29tbWFuZEV4ZWN1dG9yU2VydmljZSB7XG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29tbWFuZFxuICAgICAqIEBwYXJhbSBjb250ZXh0XG4gICAgICovXG4gICAgc2hvd0hlbHAoXG4gICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICApOiBQcm9taXNlPHZvaWQ+O1xuXG4gICAgLyoqXG4gICAgICogTGlzdCBhbGwgY29tbWFuZHNcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBhbGwgY29tbWFuZHNcbiAgICAgKi9cbiAgICBsaXN0Q29tbWFuZHMoKTogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBGaW5kIGEgcHJvY2Vzc29yIGZvciBhIGNvbW1hbmRcbiAgICAgKiBAcGFyYW0gbWFpbkNvbW1hbmRcbiAgICAgKiBAcGFyYW0gY2hhaW5Db21tYW5kc1xuICAgICAqL1xuICAgIGZpbmRQcm9jZXNzb3IoXG4gICAgICAgIG1haW5Db21tYW5kOiBzdHJpbmcsXG4gICAgICAgIGNoYWluQ29tbWFuZHM6IHN0cmluZ1tdLFxuICAgICk6IElDbGlDb21tYW5kUHJvY2Vzc29yIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXIgYSBwcm9jZXNzb3JcbiAgICAgKiBAcGFyYW0gcHJvY2Vzc29yXG4gICAgICovXG4gICAgcmVnaXN0ZXJQcm9jZXNzb3IocHJvY2Vzc29yOiBJQ2xpQ29tbWFuZFByb2Nlc3Nvcik6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBVbnJlZ2lzdGVyIGEgcHJvY2Vzc29yXG4gICAgICogQHBhcmFtIHByb2Nlc3NvclxuICAgICAqL1xuICAgIHVucmVnaXN0ZXJQcm9jZXNzb3IocHJvY2Vzc29yOiBJQ2xpQ29tbWFuZFByb2Nlc3Nvcik6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaUV4ZWN1dGlvblByb2Nlc3Mge1xuICAgIC8qKlxuICAgICAqIEluZGljYXRlcyBpZiB0aGUgcHJvY2VzcyBoYXMgZXhpdGVkXG4gICAgICovXG4gICAgZXhpdGVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBleGl0IGNvZGUgb2YgdGhlIHByb2Nlc3NcbiAgICAgKi9cbiAgICBleGl0Q29kZT86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEluZGljYXRlcyBpZiB0aGUgcHJvY2VzcyBpcyBydW5uaW5nXG4gICAgICovXG4gICAgcnVubmluZzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIG9mIHRoZSBwcm9jZXNzXG4gICAgICovXG4gICAgZGF0YTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogRXhpdCB0aGUgcHJvY2Vzc1xuICAgICAqIEBwYXJhbSBjb2RlIFRoZSBleGl0IGNvZGVcbiAgICAgKiBAcmV0dXJucyB2b2lkXG4gICAgICovXG4gICAgZXhpdDogKGNvZGU/OiBudW1iZXIpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBPdXRwdXQgZGF0YSBmcm9tIHRoZSBwcm9jZXNzXG4gICAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gb3V0cHV0XG4gICAgICovXG4gICAgb3V0cHV0KGRhdGE6IHN0cmluZyk6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBTdGFydCB0aGUgcHJvY2Vzc1xuICAgICAqIEByZXR1cm5zIHZvaWRcbiAgICAgKi9cbiAgICBzdGFydDogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEVuZCB0aGUgcHJvY2Vzc1xuICAgICAqIEByZXR1cm5zIHZvaWRcbiAgICAgKi9cbiAgICBlbmQ6ICgpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgY29udGV4dCBpbiB3aGljaCBhIGNvbW1hbmQgaXMgZXhlY3V0ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2xpRXhlY3V0aW9uQ29udGV4dCB7XG4gICAgLyoqXG4gICAgICogVGhlIGN1cnJlbnQgdXNlciBzZXNzaW9uXG4gICAgICovXG4gICAgdXNlclNlc3Npb24/OiBJQ2xpVXNlclNlc3Npb247XG5cbiAgICAvKipcbiAgICAgKiBUaGUgc3Bpbm5lciB0byB1c2UgZm9yIHNob3dpbmcvaGlkaW5nIHRoZSBsb2FkZXJcbiAgICAgKi9cbiAgICBzcGlubmVyPzogSUNsaVNwaW5uZXI7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgcHJvZ3Jlc3MgYmFyIHRvIHVzZSBmb3Igc2hvd2luZyBwcm9ncmVzc1xuICAgICAqL1xuICAgIHByb2dyZXNzQmFyOiBJQ2xpUGVyY2VudGFnZVByb2dyZXNzQmFyO1xuXG4gICAgLyoqXG4gICAgICogQSBzdWJqZWN0IHRoYXQgZW1pdHMgd2hlbiB0aGUgY29tbWFuZCBpcyBhYm9ydGVkXG4gICAgICovXG4gICAgb25BYm9ydDogU3ViamVjdDx2b2lkPjtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0ZXJtaW5hbCB0byB1c2UgZm9yIHdyaXRpbmdcbiAgICAgKi9cbiAgICB0ZXJtaW5hbDogVGVybWluYWw7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgd3JpdGVyIHRvIHVzZSBmb3Igd3JpdGluZyB0byB0aGUgdGVybWluYWxcbiAgICAgKi9cbiAgICB3cml0ZXI6IElDbGlUZXJtaW5hbFdyaXRlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBjb21tYW5kIGV4ZWN1dG9yIHRvIHVzZSBmb3IgZXhlY3V0aW5nIGNvbW1hbmRzXG4gICAgICovXG4gICAgZXhlY3V0b3I6IElDbGlDb21tYW5kRXhlY3V0b3JTZXJ2aWNlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNsaXBib2FyZCB0byB1c2UgZm9yIGNvcHlpbmcvcGFzdGluZ1xuICAgICAqL1xuICAgIGNsaXBib2FyZDogSUNsaUNsaXBib2FyZDtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIHN0b3JlIHRvIHVzZSBmb3Igc3RvcmluZyBkYXRhXG4gICAgICovXG4gICAgZGF0YVN0b3JlOiBJQ2xpQ29tbWFuZERhdGFTdG9yZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHRpb25zIGZvciB0aGUgQ0xJXG4gICAgICovXG4gICAgb3B0aW9ucz86IENsaU9wdGlvbnM7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgcHJvbXB0IHRvIHVzZSBmb3IgcHJvbXB0aW5nIHRoZSB1c2VyIGZvciBpbnB1dFxuICAgICAqL1xuICAgIHNob3dQcm9tcHQ6ICgpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIGN1cnJlbnQgbWFpbiBwcm9jZXNzb3JcbiAgICAgKiBAcGFyYW0gcHJvY2Vzc29yIFRoZSBwcm9jZXNzb3IgdG8gc2V0XG4gICAgICovXG4gICAgc2V0TWFpblByb2Nlc3Nvcihwcm9jZXNzb3I6IElDbGlDb21tYW5kUHJvY2Vzc29yKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFRoZSBwcm9jZXNzIHRvIHVzZSBmb3IgZXhpdGluZyB0aGUgQ0xJXG4gICAgICovXG4gICAgcHJvY2VzczogSUNsaUV4ZWN1dGlvblByb2Nlc3M7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGRhdGEgc3RvcmUgZm9yIHN0b3JpbmcgZGF0YSBhc3NvY2lhdGVkIHdpdGggY29tbWFuZHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2xpQ29tbWFuZERhdGFTdG9yZSB7XG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgc3RvcmVcbiAgICAgKi9cbiAgICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PjtcblxuICAgIC8qKlxuICAgICAqIEFwcGVuZCBkYXRhIHRvIHRoZSBkYXRhIHN0b3JlXG4gICAgICogQHBhcmFtIGNvbW1hbmRcbiAgICAgKiBAcGFyYW0ga2V5XG4gICAgICogQHBhcmFtIGRhdGFcbiAgICAgKi9cbiAgICBhcHBlbmREYXRhKGNvbW1hbmQ6IHN0cmluZywga2V5OiBzdHJpbmcsIGRhdGE6IGFueSk6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBHZXQgZGF0YSBmcm9tIHRoZSBkYXRhIHN0b3JlXG4gICAgICogQHBhcmFtIGNvbW1hbmRcbiAgICAgKiBAcGFyYW0ga2V5XG4gICAgICovXG4gICAgZ2V0RGF0YTxUID0gYW55Pihjb21tYW5kOiBzdHJpbmcsIGtleTogc3RyaW5nKTogVDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2VydmljZSB0aGF0IG1hbmFnZXMgdXNlciBzZXNzaW9ucyBpbiB0aGUgQ0xJXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaVVzZXJTZXNzaW9uU2VydmljZSB7XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgY3VycmVudCB1c2VyIHNlc3Npb25cbiAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGN1cnJlbnQgdXNlciBzZXNzaW9uXG4gICAgICovXG4gICAgZ2V0VXNlclNlc3Npb24oKTogT2JzZXJ2YWJsZTxJQ2xpVXNlclNlc3Npb24gfCB1bmRlZmluZWQ+O1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY3VycmVudCB1c2VyIHNlc3Npb25cbiAgICAgKiBAcGFyYW0gc2Vzc2lvbiBUaGUgc2Vzc2lvbiB0byBzZXRcbiAgICAgKi9cbiAgICBzZXRVc2VyU2Vzc2lvbihzZXNzaW9uOiBJQ2xpVXNlclNlc3Npb24pOiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzZXJ2aWNlIHRoYXQgbWFuYWdlcyB1c2VycyBpbiB0aGUgQ0xJXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaVVzZXJzU3RvcmVTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjdXJyZW50IHVzZXJzXG4gICAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBjdXJyZW50IHVzZXJzXG4gICAgICovXG4gICAgZ2V0VXNlcnMob3B0aW9ucz86IHtcbiAgICAgICAgcXVlcnk/OiBzdHJpbmc7XG4gICAgICAgIHNraXA/OiBudW1iZXI7XG4gICAgICAgIHRha2U/OiBudW1iZXI7XG4gICAgfSk6IE9ic2VydmFibGU8SUNsaVVzZXJbXT47XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgdXNlclxuICAgICAqIEBwYXJhbSB1c2VyIFRoZSB1c2VyIHRvIGNyZWF0ZVxuICAgICAqL1xuICAgIGNyZWF0ZVVzZXIodXNlcjogT21pdDxJQ2xpVXNlciwgJ2lkJz4pOiBQcm9taXNlPElDbGlVc2VyPjtcblxuICAgIC8qKlxuICAgICAqIEdldHMgYSB1c2VyIGJ5IGlkXG4gICAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgdXNlciB0byBnZXRcbiAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVzZXIgd2l0aCB0aGUgc3BlY2lmaWVkIGlkXG4gICAgICovXG4gICAgZ2V0VXNlcihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQ2xpVXNlciB8IHVuZGVmaW5lZD47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNlcnZpY2UgdGhhdCBwaW5ncyB0aGUgc2VydmVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaVBpbmdTZXJ2ZXJTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiBQaW5ncyB0aGUgc2VydmVyXG4gICAgICovXG4gICAgcGluZygpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBtb2R1bGUgZm9yIHRoZSBDTElcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2xpVW1kTW9kdWxlIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgbW9kdWxlXG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHByb2Nlc3NvcnMgZm9yIHRoZSBtb2R1bGVcbiAgICAgKi9cbiAgICBwcm9jZXNzb3JzOiBJQ2xpQ29tbWFuZFByb2Nlc3NvcltdO1xufVxuIl19
@@ -23,14 +23,138 @@ export var CliBackgroundColor;
23
23
  })(CliBackgroundColor || (CliBackgroundColor = {}));
24
24
  export var CliIcon;
25
25
  (function (CliIcon) {
26
+ // General Symbols
26
27
  CliIcon["CheckIcon"] = "\u2714";
27
28
  CliIcon["CrossIcon"] = "\u2718";
28
29
  CliIcon["InfoIcon"] = "\u2139";
29
30
  CliIcon["WarningIcon"] = "\u26A0";
31
+ CliIcon["QuestionMark"] = "?";
32
+ CliIcon["Exclamation"] = "\u2757";
33
+ CliIcon["Ellipsis"] = "\u2026";
34
+ CliIcon["Dot"] = "\u2022";
35
+ CliIcon["Bullet"] = "\u2023";
36
+ // Arrows
37
+ CliIcon["ArrowRight"] = "\u2192";
38
+ CliIcon["ArrowLeft"] = "\u2190";
39
+ CliIcon["ArrowUp"] = "\u2191";
40
+ CliIcon["ArrowDown"] = "\u2193";
41
+ CliIcon["ArrowRightFilled"] = "\u25B6";
42
+ CliIcon["ArrowLeftFilled"] = "\u25C0";
43
+ CliIcon["ArrowUpFilled"] = "\u25B2";
44
+ CliIcon["ArrowDownFilled"] = "\u25BC";
45
+ CliIcon["DoubleArrowRight"] = "\u00BB";
46
+ CliIcon["DoubleArrowLeft"] = "\u00AB";
47
+ // Lists and Progress
48
+ CliIcon["Star"] = "\u2605";
49
+ CliIcon["StarEmpty"] = "\u2606";
50
+ CliIcon["Plus"] = "+";
51
+ CliIcon["Minus"] = "-";
52
+ CliIcon["Progress"] = "\u23F3";
53
+ CliIcon["Success"] = "\u2705";
54
+ CliIcon["Failure"] = "\u274C";
55
+ // Time and Calendar
56
+ CliIcon["Clock"] = "\u23F0";
57
+ CliIcon["Timer"] = "\u23F1";
58
+ CliIcon["Alarm"] = "\uD83D\uDD14";
59
+ CliIcon["Calendar"] = "\uD83D\uDCC5";
60
+ // Navigation and Folders
61
+ CliIcon["Folder"] = "\uD83D\uDCC1";
62
+ CliIcon["FolderOpen"] = "\uD83D\uDCC2";
63
+ CliIcon["File"] = "\uD83D\uDCC4";
64
+ CliIcon["Archive"] = "\uD83D\uDDC3";
65
+ CliIcon["Link"] = "\uD83D\uDD17";
66
+ CliIcon["Chain"] = "\u26D3";
67
+ CliIcon["Bookmark"] = "\uD83D\uDD16";
68
+ // Actions
69
+ CliIcon["Edit"] = "\u270F";
70
+ CliIcon["Trash"] = "\uD83D\uDDD1";
71
+ CliIcon["Add"] = "\u2795";
72
+ CliIcon["Remove"] = "\u2796";
73
+ CliIcon["Reload"] = "\uD83D\uDD04";
74
+ CliIcon["Save"] = "\uD83D\uDCBE";
75
+ CliIcon["Undo"] = "\u21A9";
76
+ CliIcon["Redo"] = "\u21AA";
77
+ CliIcon["Play"] = "\u25B6";
78
+ CliIcon["Pause"] = "\u23F8";
79
+ CliIcon["Stop"] = "\u23F9";
80
+ CliIcon["Cancel"] = "\u274E";
81
+ // User and Security
82
+ CliIcon["User"] = "\uD83D\uDC64";
83
+ CliIcon["Group"] = "\uD83D\uDC65";
84
+ CliIcon["Lock"] = "\uD83D\uDD12";
85
+ CliIcon["Unlock"] = "\uD83D\uDD13";
86
+ CliIcon["Help"] = "\u2753";
87
+ CliIcon["Key"] = "\uD83D\uDD11";
88
+ CliIcon["Shield"] = "\uD83D\uDEE1";
89
+ // Tools and Settings
90
+ CliIcon["Gear"] = "\u2699";
91
+ CliIcon["Settings"] = "\u2699\uFE0F";
92
+ CliIcon["Theme"] = "\uD83C\uDFA8";
93
+ CliIcon["Light"] = "\uD83D\uDCA1";
94
+ CliIcon["Bug"] = "\uD83D\uDC1E";
95
+ CliIcon["Wrench"] = "\uD83D\uDD27";
96
+ CliIcon["Hammer"] = "\uD83D\uDD28";
97
+ // Technology and Devices
98
+ CliIcon["Terminal"] = "\uD83D\uDCBB";
99
+ CliIcon["Database"] = "\uD83D\uDDC4";
100
+ CliIcon["Server"] = "\uD83D\uDDA5";
101
+ CliIcon["Cloud"] = "\u2601";
102
+ CliIcon["Network"] = "\uD83C\uDF10";
103
+ CliIcon["Monitor"] = "\uD83D\uDDA5";
104
+ CliIcon["Printer"] = "\uD83D\uDDA8";
105
+ CliIcon["USB"] = "\uD83D\uDD0C";
106
+ CliIcon["Speaker"] = "\uD83D\uDD0A";
107
+ CliIcon["Microphone"] = "\uD83C\uDF99";
108
+ CliIcon["Camera"] = "\uD83D\uDCF7";
109
+ CliIcon["Video"] = "\uD83C\uDFA5";
110
+ CliIcon["Music"] = "\uD83C\uDFB5";
111
+ CliIcon["Phone"] = "\uD83D\uDCDE";
112
+ // Development and Evaluation
113
+ CliIcon["Package"] = "\uD83D\uDCE6";
114
+ CliIcon["Plugin"] = "\uD83D\uDD0C";
115
+ CliIcon["Extension"] = "\uD83E\uDDE9";
116
+ CliIcon["Module"] = "\uD83D\uDCE6";
117
+ CliIcon["Evaluate"] = "\uD83D\uDD0D";
118
+ CliIcon["Variable"] = "\uD83D\uDD27";
119
+ CliIcon["Script"] = "\uD83D\uDCDC";
120
+ CliIcon["Code"] = "\uD83D\uDCBE";
121
+ // Status and Completion
122
+ CliIcon["Logs"] = "\uD83D\uDCDC";
123
+ CliIcon["Power"] = "\u23FB";
124
+ CliIcon["Heart"] = "\u2764";
125
+ CliIcon["Flame"] = "\uD83D\uDD25";
126
+ CliIcon["Growth"] = "\uD83D\uDCC8";
127
+ CliIcon["Decline"] = "\uD83D\uDCC9";
128
+ CliIcon["WarningFilled"] = "\u26A0\uFE0F";
129
+ // Nature and Weather
130
+ CliIcon["Sun"] = "\u2600";
131
+ CliIcon["Moon"] = "\uD83C\uDF19";
132
+ CliIcon["Rain"] = "\uD83C\uDF27";
133
+ CliIcon["Snow"] = "\u2744";
134
+ CliIcon["Lightning"] = "\u26A1";
135
+ CliIcon["Tree"] = "\uD83C\uDF32";
136
+ // Emotions and Expressions
137
+ CliIcon["Smile"] = "\uD83D\uDE0A";
138
+ CliIcon["Sad"] = "\uD83D\uDE22";
139
+ CliIcon["Angry"] = "\uD83D\uDE21";
140
+ CliIcon["Clap"] = "\uD83D\uDC4F";
141
+ CliIcon["ThumbsUp"] = "\uD83D\uDC4D";
142
+ CliIcon["ThumbsDown"] = "\uD83D\uDC4E";
143
+ // Miscellaneous
144
+ CliIcon["Rocket"] = "\uD83D\uDE80";
145
+ CliIcon["Globe"] = "\uD83C\uDF0D";
146
+ CliIcon["Medal"] = "\uD83C\uDFC5";
147
+ CliIcon["Trophy"] = "\uD83C\uDFC6";
148
+ CliIcon["Flag"] = "\uD83D\uDEA9";
149
+ CliIcon["StarFilled"] = "\u2B50";
150
+ CliIcon["StarOutline"] = "\u2729";
151
+ CliIcon["Fireworks"] = "\uD83C\uDF86";
152
+ CliIcon["Balloon"] = "\uD83C\uDF88";
153
+ CliIcon["Gift"] = "\uD83C\uDF81";
30
154
  })(CliIcon || (CliIcon = {}));
31
155
  export const enums = {
32
156
  CliForegroundColor,
33
157
  CliBackgroundColor,
34
158
  CliIcon,
35
159
  };
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZCQSxNQUFNLENBQU4sSUFBWSxrQkFVWDtBQVZELFdBQVksa0JBQWtCO0lBQzFCLDBDQUFrQixDQUFBO0lBQ2xCLHdDQUFnQixDQUFBO0lBQ2hCLDBDQUFrQixDQUFBO0lBQ2xCLDJDQUFtQixDQUFBO0lBQ25CLHlDQUFpQixDQUFBO0lBQ2pCLDRDQUFvQixDQUFBO0lBQ3BCLHlDQUFpQixDQUFBO0lBQ2pCLDBDQUFrQixDQUFBO0lBQ2xCLHlDQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFWVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBVTdCO0FBRUQsTUFBTSxDQUFOLElBQVksa0JBU1g7QUFURCxXQUFZLGtCQUFrQjtJQUMxQiwwQ0FBa0IsQ0FBQTtJQUNsQix3Q0FBZ0IsQ0FBQTtJQUNoQiwwQ0FBa0IsQ0FBQTtJQUNsQiwyQ0FBbUIsQ0FBQTtJQUNuQix5Q0FBaUIsQ0FBQTtJQUNqQiw0Q0FBb0IsQ0FBQTtJQUNwQix5Q0FBaUIsQ0FBQTtJQUNqQiwwQ0FBa0IsQ0FBQTtBQUN0QixDQUFDLEVBVFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQVM3QjtBQUVELE1BQU0sQ0FBTixJQUFZLE9BS1g7QUFMRCxXQUFZLE9BQU87SUFDZiwrQkFBZSxDQUFBO0lBQ2YsK0JBQWUsQ0FBQTtJQUNmLDhCQUFjLENBQUE7SUFDZCxpQ0FBaUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsT0FBTyxLQUFQLE9BQU8sUUFLbEI7QUEySEQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ2pCLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsT0FBTztDQUNWLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJVGVybWluYWxJbml0T25seU9wdGlvbnMsIElUZXJtaW5hbE9wdGlvbnMgfSBmcm9tICdAeHRlcm0veHRlcm0nO1xuXG5leHBvcnQgdHlwZSBDbGlQcm9jZXNzQ29tbWFuZCA9IHtcbiAgICAvKipcbiAgICAgKiBUaGUgY29tbWFuZCB0aGF0IHdhcyBlbnRlcmVkXG4gICAgICovXG4gICAgY29tbWFuZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNoYWluIG9mIGNvbW1hbmRzIHRoYXQgd2VyZSBlbnRlcmVkXG4gICAgICovXG4gICAgY2hhaW5Db21tYW5kczogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBUaGUgcmF3IGNvbW1hbmQgdGhhdCB3YXMgZW50ZXJlZFxuICAgICAqL1xuICAgIHJhd0NvbW1hbmQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgY29tbWFuZFxuICAgICAqL1xuICAgIHZhbHVlPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGFyZ3VtZW50cyB0aGF0IHdlcmUgZW50ZXJlZFxuICAgICAqL1xuICAgIGFyZ3M6IFJlY29yZDxzdHJpbmcsIGFueT47XG59O1xuXG5leHBvcnQgZW51bSBDbGlGb3JlZ3JvdW5kQ29sb3Ige1xuICAgIEJsYWNrID0gJ1xceDFiWzMwbScsXG4gICAgUmVkID0gJ1xceDFiWzMxbScsXG4gICAgR3JlZW4gPSAnXFx4MWJbMzJtJyxcbiAgICBZZWxsb3cgPSAnXFx4MWJbMzNtJyxcbiAgICBCbHVlID0gJ1xceDFiWzM0bScsXG4gICAgTWFnZW50YSA9ICdcXHgxYlszNW0nLFxuICAgIEN5YW4gPSAnXFx4MWJbMzZtJyxcbiAgICBXaGl0ZSA9ICdcXHgxYlszN20nLFxuICAgIFJlc2V0ID0gJ1xceDFiWzBtJyxcbn1cblxuZXhwb3J0IGVudW0gQ2xpQmFja2dyb3VuZENvbG9yIHtcbiAgICBCbGFjayA9ICdcXHgxYls0MG0nLFxuICAgIFJlZCA9ICdcXHgxYls0MW0nLFxuICAgIEdyZWVuID0gJ1xceDFiWzQybScsXG4gICAgWWVsbG93ID0gJ1xceDFiWzQzbScsXG4gICAgQmx1ZSA9ICdcXHgxYls0NG0nLFxuICAgIE1hZ2VudGEgPSAnXFx4MWJbNDVtJyxcbiAgICBDeWFuID0gJ1xceDFiWzQ2bScsXG4gICAgV2hpdGUgPSAnXFx4MWJbNDdtJyxcbn1cblxuZXhwb3J0IGVudW0gQ2xpSWNvbiB7XG4gICAgQ2hlY2tJY29uID0gJ+KclCcsXG4gICAgQ3Jvc3NJY29uID0gJ+KcmCcsXG4gICAgSW5mb0ljb24gPSAn4oS5JyxcbiAgICBXYXJuaW5nSWNvbiA9ICfimqAnLFxufVxuXG5leHBvcnQgdHlwZSBJQ2xpVXNlciA9IHtcbiAgICAvKipcbiAgICAgKiBUaGUgaWQgb2YgdGhlIHVzZXJcbiAgICAgKi9cbiAgICBpZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIHVzZXJcbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZW1haWwgb2YgdGhlIHVzZXJcbiAgICAgKi9cbiAgICBlbWFpbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGdyb3VwcyB0aGUgdXNlciBiZWxvbmdzIHRvXG4gICAgICogQGRlZmF1bHQgW11cbiAgICAgKi9cbiAgICBncm91cHM/OiBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaVVzZXJTZXNzaW9uIHtcbiAgICAvKipcbiAgICAgKiBUaGUgdXNlciBhc3NvY2lhdGVkIHdpdGggdGhlIHNlc3Npb25cbiAgICAgKi9cbiAgICB1c2VyOiBJQ2xpVXNlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgdXNlciBzZXNzaW9uXG4gICAgICovXG4gICAgZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIENMSVxuICovXG5leHBvcnQgdHlwZSBDbGlPcHRpb25zID0gUmVjb3JkPHN0cmluZywgYW55PiAmIHtcbiAgICAvKipcbiAgICAgKiBUaGUgd2VsY29tZSBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiB0aGUgQ0xJIHN0YXJ0c1xuICAgICAqL1xuICAgIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhlIHdlbGNvbWUgbWVzc2FnZSBpcyBoaWRkZW5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIGhpZGVXZWxjb21lTWVzc2FnZT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBVc2VycyBtb2R1bGUgb3B0aW9uc1xuICAgICAqL1xuICAgIHVzZXJzTW9kdWxlPzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgdHJ1ZSwgdGhlIHVzZXJzIG1vZHVsZSBpcyBlbmFibGVkXG4gICAgICAgICAqL1xuICAgICAgICBlbmFibGVkOiBib29sZWFuO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBIaWRlIHRoZSBwcm9tcHQgdG8gZGlzcGxheSB3aGVuIHRoZSBDTEkgaXMgcmVhZHkgdG8gYWNjZXB0IGlucHV0XG4gICAgICAgICAqL1xuICAgICAgICBoaWRlVXNlck5hbWU/OiBib29sZWFuO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gdGVybWluYWwgb3B0aW9uc1xuICAgICAqL1xuICAgIHRlcm1pbmFsT3B0aW9ucz86IElUZXJtaW5hbE9wdGlvbnMgJiBJVGVybWluYWxJbml0T25seU9wdGlvbnM7XG59O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBwYWNrYWdlIHRoYXQgY2FuIGJlIGluc3RhbGxlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhY2thZ2Uge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlXG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGdsb2JhbCBuYW1lIHVzZWQgdG8gYWNjZXNzIHRoZSBwYWNrYWdlXG4gICAgICovXG4gICAgZ2xvYmFsTmFtZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBwYWNrYWdlXG4gICAgICovXG4gICAgdmVyc2lvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHVucGtnIHVybCB0byB0aGUgcGFja2FnZVxuICAgICAqL1xuICAgIHVybDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRlcGVuZGVuY2llcyBmb3IgdGhlIG1vZHVsZVxuICAgICAqL1xuICAgIGRlcGVuZGVuY2llcz86IFBhY2thZ2VbXTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGNvbW1hbmQgcHJvY2Vzc29yIG1ldGFkYXRhXG4gKi9cbmV4cG9ydCB0eXBlIENsaVByb2Nlc3Nvck1ldGFkYXRhID0gUmVjb3JkPHN0cmluZywgYW55PiAmIHtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB0aGUgcHJvY2Vzc29yIGlzIHNlYWxlZCBhbmQgY2Fubm90IGJlIGV4dGVuZGVkXG4gICAgICovXG4gICAgc2VhbGVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoZSBwcm9jZXNzb3IgcmVxdWlyZXMgdGhlIHNlcnZlciB0byBiZSBydW5uaW5nXG4gICAgICovXG4gICAgcmVxdWlyZVNlcnZlcj86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbW9kdWxlIHRoZSBwcm9jZXNzb3IgYmVsb25ncyB0b1xuICAgICAqL1xuICAgIG1vZHVsZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBlbnVtcyA9IHtcbiAgICBDbGlGb3JlZ3JvdW5kQ29sb3IsXG4gICAgQ2xpQmFja2dyb3VuZENvbG9yLFxuICAgIENsaUljb24sXG59O1xuIl19
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtDQSxNQUFNLENBQU4sSUFBWSxrQkFVWDtBQVZELFdBQVksa0JBQWtCO0lBQzFCLDBDQUFrQixDQUFBO0lBQ2xCLHdDQUFnQixDQUFBO0lBQ2hCLDBDQUFrQixDQUFBO0lBQ2xCLDJDQUFtQixDQUFBO0lBQ25CLHlDQUFpQixDQUFBO0lBQ2pCLDRDQUFvQixDQUFBO0lBQ3BCLHlDQUFpQixDQUFBO0lBQ2pCLDBDQUFrQixDQUFBO0lBQ2xCLHlDQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFWVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBVTdCO0FBRUQsTUFBTSxDQUFOLElBQVksa0JBU1g7QUFURCxXQUFZLGtCQUFrQjtJQUMxQiwwQ0FBa0IsQ0FBQTtJQUNsQix3Q0FBZ0IsQ0FBQTtJQUNoQiwwQ0FBa0IsQ0FBQTtJQUNsQiwyQ0FBbUIsQ0FBQTtJQUNuQix5Q0FBaUIsQ0FBQTtJQUNqQiw0Q0FBb0IsQ0FBQTtJQUNwQix5Q0FBaUIsQ0FBQTtJQUNqQiwwQ0FBa0IsQ0FBQTtBQUN0QixDQUFDLEVBVFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQVM3QjtBQUVELE1BQU0sQ0FBTixJQUFZLE9BOElYO0FBOUlELFdBQVksT0FBTztJQUNmLGtCQUFrQjtJQUNsQiwrQkFBZSxDQUFBO0lBQ2YsK0JBQWUsQ0FBQTtJQUNmLDhCQUFjLENBQUE7SUFDZCxpQ0FBaUIsQ0FBQTtJQUNqQiw2QkFBa0IsQ0FBQTtJQUNsQixpQ0FBaUIsQ0FBQTtJQUNqQiw4QkFBYyxDQUFBO0lBQ2QseUJBQVMsQ0FBQTtJQUNULDRCQUFZLENBQUE7SUFFWixTQUFTO0lBQ1QsZ0NBQWdCLENBQUE7SUFDaEIsK0JBQWUsQ0FBQTtJQUNmLDZCQUFhLENBQUE7SUFDYiwrQkFBZSxDQUFBO0lBQ2Ys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QyxFQTlJVyxPQUFPLEtBQVAsT0FBTyxRQThJbEI7QUFnSUQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ2pCLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsT0FBTztDQUNWLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJVGVybWluYWxJbml0T25seU9wdGlvbnMsIElUZXJtaW5hbE9wdGlvbnMgfSBmcm9tICdAeHRlcm0veHRlcm0nO1xuXG5leHBvcnQgdHlwZSBDbGlQcm9jZXNzQ29tbWFuZCA9IHtcbiAgICAvKipcbiAgICAgKiBUaGUgY29tbWFuZCB0aGF0IHdhcyBlbnRlcmVkXG4gICAgICovXG4gICAgY29tbWFuZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgdGhhdCB3YXMgZW50ZXJlZFxuICAgICAqL1xuICAgIGRhdGE/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY2hhaW4gb2YgY29tbWFuZHMgdGhhdCB3ZXJlIGVudGVyZWRcbiAgICAgKi9cbiAgICBjaGFpbkNvbW1hbmRzOiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSByYXcgY29tbWFuZCB0aGF0IHdhcyBlbnRlcmVkXG4gICAgICovXG4gICAgcmF3Q29tbWFuZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHZhbHVlIG9mIHRoZSBjb21tYW5kXG4gICAgICovXG4gICAgdmFsdWU/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYXJndW1lbnRzIHRoYXQgd2VyZSBlbnRlcmVkXG4gICAgICovXG4gICAgYXJnczogUmVjb3JkPHN0cmluZywgYW55Pjtcbn07XG5cbmV4cG9ydCBlbnVtIENsaUZvcmVncm91bmRDb2xvciB7XG4gICAgQmxhY2sgPSAnXFx4MWJbMzBtJyxcbiAgICBSZWQgPSAnXFx4MWJbMzFtJyxcbiAgICBHcmVlbiA9ICdcXHgxYlszMm0nLFxuICAgIFllbGxvdyA9ICdcXHgxYlszM20nLFxuICAgIEJsdWUgPSAnXFx4MWJbMzRtJyxcbiAgICBNYWdlbnRhID0gJ1xceDFiWzM1bScsXG4gICAgQ3lhbiA9ICdcXHgxYlszNm0nLFxuICAgIFdoaXRlID0gJ1xceDFiWzM3bScsXG4gICAgUmVzZXQgPSAnXFx4MWJbMG0nLFxufVxuXG5leHBvcnQgZW51bSBDbGlCYWNrZ3JvdW5kQ29sb3Ige1xuICAgIEJsYWNrID0gJ1xceDFiWzQwbScsXG4gICAgUmVkID0gJ1xceDFiWzQxbScsXG4gICAgR3JlZW4gPSAnXFx4MWJbNDJtJyxcbiAgICBZZWxsb3cgPSAnXFx4MWJbNDNtJyxcbiAgICBCbHVlID0gJ1xceDFiWzQ0bScsXG4gICAgTWFnZW50YSA9ICdcXHgxYls0NW0nLFxuICAgIEN5YW4gPSAnXFx4MWJbNDZtJyxcbiAgICBXaGl0ZSA9ICdcXHgxYls0N20nLFxufVxuXG5leHBvcnQgZW51bSBDbGlJY29uIHtcbiAgICAvLyBHZW5lcmFsIFN5bWJvbHNcbiAgICBDaGVja0ljb24gPSAn4pyUJywgLy8gU3VjY2VzcywgY29tcGxldGlvblxuICAgIENyb3NzSWNvbiA9ICfinJgnLCAvLyBGYWlsdXJlLCBlcnJvclxuICAgIEluZm9JY29uID0gJ+KEuScsIC8vIEluZm9ybWF0aW9uXG4gICAgV2FybmluZ0ljb24gPSAn4pqgJywgLy8gV2FybmluZ1xuICAgIFF1ZXN0aW9uTWFyayA9ICc/JywgLy8gSGVscCBvciB1bmtub3duIHN0YXRlXG4gICAgRXhjbGFtYXRpb24gPSAn4p2XJywgLy8gRW1waGFzaXMgb3IgYWxlcnRcbiAgICBFbGxpcHNpcyA9ICfigKYnLCAvLyBMb2FkaW5nIG9yIHRydW5jYXRlZCB0ZXh0XG4gICAgRG90ID0gJ+KAoicsIC8vIExpc3QgaXRlbVxuICAgIEJ1bGxldCA9ICfigKMnLCAvLyBBbHRlcm5hdGUgYnVsbGV0IHBvaW50XG5cbiAgICAvLyBBcnJvd3NcbiAgICBBcnJvd1JpZ2h0ID0gJ+KGkicsIC8vIE5hdmlnYXRpb24gb3IgbmV4dCBzdGVwXG4gICAgQXJyb3dMZWZ0ID0gJ+KGkCcsIC8vIFByZXZpb3VzIHN0ZXAgb3IgbmF2aWdhdGlvblxuICAgIEFycm93VXAgPSAn4oaRJywgLy8gVXAgZGlyZWN0aW9uXG4gICAgQXJyb3dEb3duID0gJ+KGkycsIC8vIERvd24gZGlyZWN0aW9uXG4gICAgQXJyb3dSaWdodEZpbGxlZCA9ICfilrYnLCAvLyBOYXZpZ2F0aW9uIG9yIG5leHQgc3RlcCAoZmlsbGVkKVxuICAgIEFycm93TGVmdEZpbGxlZCA9ICfil4AnLCAvLyBQcmV2aW91cyBzdGVwIG9yIG5hdmlnYXRpb24gKGZpbGxlZClcbiAgICBBcnJvd1VwRmlsbGVkID0gJ+KWsicsIC8vIFVwIGRpcmVjdGlvbiAoZmlsbGVkKVxuICAgIEFycm93RG93bkZpbGxlZCA9ICfilrwnLCAvLyBEb3duIGRpcmVjdGlvbiAoZmlsbGVkKVxuICAgIERvdWJsZUFycm93UmlnaHQgPSAnwrsnLCAvLyBGYXN0IGZvcndhcmQgb3IgbmV4dFxuICAgIERvdWJsZUFycm93TGVmdCA9ICfCqycsIC8vIFJld2luZCBvciBwcmV2aW91c1xuXG4gICAgLy8gTGlzdHMgYW5kIFByb2dyZXNzXG4gICAgU3RhciA9ICfimIUnLCAvLyBIaWdobGlnaHQgb3IgZmF2b3JpdGUgKGZpbGxlZClcbiAgICBTdGFyRW1wdHkgPSAn4piGJywgLy8gSGlnaGxpZ2h0IG9yIGZhdm9yaXRlIChlbXB0eSlcbiAgICBQbHVzID0gJysnLCAvLyBBZGRpdGlvbiBvciBpbmNyZW1lbnRcbiAgICBNaW51cyA9ICctJywgLy8gU3VidHJhY3Rpb24gb3IgZGVjcmVtZW50XG4gICAgUHJvZ3Jlc3MgPSAn4o+zJywgLy8gSW5kaWNhdGluZyBwcm9ncmVzc1xuICAgIFN1Y2Nlc3MgPSAn4pyFJywgLy8gU3VjY2VzcyAoYWx0ZXJuYXRpdmUgdG8gQ2hlY2tJY29uKVxuICAgIEZhaWx1cmUgPSAn4p2MJywgLy8gRmFpbHVyZSAoYWx0ZXJuYXRpdmUgdG8gQ3Jvc3NJY29uKVxuXG4gICAgLy8gVGltZSBhbmQgQ2FsZW5kYXJcbiAgICBDbG9jayA9ICfij7AnLCAvLyBUaW1lLXJlbGF0ZWRcbiAgICBUaW1lciA9ICfij7EnLCAvLyBTdG9wd2F0Y2ggb3IgdGltZXJcbiAgICBBbGFybSA9ICfwn5SUJywgLy8gQWxhcm0gb3IgYWxlcnRcbiAgICBDYWxlbmRhciA9ICfwn5OFJywgLy8gQ2FsZW5kYXIgb3IgZGF0ZVxuXG4gICAgLy8gTmF2aWdhdGlvbiBhbmQgRm9sZGVyc1xuICAgIEZvbGRlciA9ICfwn5OBJywgLy8gRGlyZWN0b3J5IG9yIGZpbGUgZ3JvdXBpbmdcbiAgICBGb2xkZXJPcGVuID0gJ/Cfk4InLCAvLyBPcGVuIGZvbGRlclxuICAgIEZpbGUgPSAn8J+ThCcsIC8vIEZpbGUgb3IgZG9jdW1lbnRcbiAgICBBcmNoaXZlID0gJ/Cfl4MnLCAvLyBBcmNoaXZlIG9yIGZpbGUgZ3JvdXBpbmdcbiAgICBMaW5rID0gJ/CflJcnLCAvLyBIeXBlcmxpbmsgb3IgY29ubmVjdGlvblxuICAgIENoYWluID0gJ+KbkycsIC8vIENoYWluIG9yIGxpbmtlZFxuICAgIEJvb2ttYXJrID0gJ/CflJYnLCAvLyBCb29rbWFyayBvciBzYXZlXG5cbiAgICAvLyBBY3Rpb25zXG4gICAgRWRpdCA9ICfinI8nLCAvLyBFZGl0IG9yIG1vZGlmeVxuICAgIFRyYXNoID0gJ/Cfl5EnLCAvLyBEZWxldGlvbiBvciByZW1vdmFsXG4gICAgQWRkID0gJ+KelScsIC8vIEFkZCB1c2VyIG9yIGl0ZW1cbiAgICBSZW1vdmUgPSAn4p6WJywgLy8gUmVtb3ZlIHVzZXIgb3IgaXRlbVxuICAgIFJlbG9hZCA9ICfwn5SEJywgLy8gUmVmcmVzaCBvciByZWxvYWRcbiAgICBTYXZlID0gJ/Cfkr4nLCAvLyBTYXZlIG9yIHN0b3JlXG4gICAgVW5kbyA9ICfihqknLCAvLyBVbmRvIGFjdGlvblxuICAgIFJlZG8gPSAn4oaqJywgLy8gUmVkbyBhY3Rpb25cbiAgICBQbGF5ID0gJ+KWticsIC8vIFN0YXJ0IG9yIHBsYXlcbiAgICBQYXVzZSA9ICfij7gnLCAvLyBQYXVzZSBvciBzdG9wIHRlbXBvcmFyaWx5XG4gICAgU3RvcCA9ICfij7knLCAvLyBTdG9wIG9yIGVuZFxuICAgIENhbmNlbCA9ICfinY4nLCAvLyBDYW5jZWwgb3IgY2xvc2VcblxuICAgIC8vIFVzZXIgYW5kIFNlY3VyaXR5XG4gICAgVXNlciA9ICfwn5GkJywgLy8gVXNlciBvciBwcm9maWxlXG4gICAgR3JvdXAgPSAn8J+RpScsIC8vIEdyb3VwIG9yIHRlYW1cbiAgICBMb2NrID0gJ/CflJInLCAvLyBTZWN1cmVkIG9yIGxvY2tlZFxuICAgIFVubG9jayA9ICfwn5STJywgLy8gVW5sb2NrZWQgb3IgYWNjZXNzaWJsZVxuICAgIEhlbHAgPSAn4p2TJywgLy8gSGVscCBvciBzdXBwb3J0XG4gICAgS2V5ID0gJ/CflJEnLCAvLyBBdXRoZW50aWNhdGlvbiBvciBrZXlcbiAgICBTaGllbGQgPSAn8J+boScsIC8vIFNlY3VyaXR5IG9yIHByb3RlY3Rpb25cblxuICAgIC8vIFRvb2xzIGFuZCBTZXR0aW5nc1xuICAgIEdlYXIgPSAn4pqZJywgLy8gU2V0dGluZ3Mgb3IgY29uZmlndXJhdGlvblxuICAgIFNldHRpbmdzID0gJ+Kame+4jycsIC8vIFNldHRpbmdzIChhbHRlcm5hdGl2ZSlcbiAgICBUaGVtZSA9ICfwn46oJywgLy8gVGhlbWUgb3IgYXBwZWFyYW5jZVxuICAgIExpZ2h0ID0gJ/CfkqEnLCAvLyBMaWdodCBtb2RlXG4gICAgQnVnID0gJ/CfkJ4nLCAvLyBCdWcgb3IgaXNzdWVcbiAgICBXcmVuY2ggPSAn8J+UpycsIC8vIE1haW50ZW5hbmNlIG9yIHRvb2xzXG4gICAgSGFtbWVyID0gJ/CflKgnLCAvLyBCdWlsZCBvciBmaXhcblxuICAgIC8vIFRlY2hub2xvZ3kgYW5kIERldmljZXNcbiAgICBUZXJtaW5hbCA9ICfwn5K7JywgLy8gVGVybWluYWwgb3IgY29tbWFuZCBsaW5lXG4gICAgRGF0YWJhc2UgPSAn8J+XhCcsIC8vIERhdGFiYXNlIG9yIHN0b3JhZ2VcbiAgICBTZXJ2ZXIgPSAn8J+WpScsIC8vIFNlcnZlciBvciBob3N0XG4gICAgQ2xvdWQgPSAn4piBJywgLy8gQ2xvdWQgb3IgcmVtb3RlXG4gICAgTmV0d29yayA9ICfwn4yQJywgLy8gTmV0d29yayBvciBjb25uZWN0aW9uXG4gICAgTW9uaXRvciA9ICfwn5alJywgLy8gTW9uaXRvciBvciBkaXNwbGF5XG4gICAgUHJpbnRlciA9ICfwn5aoJywgLy8gUHJpbnRlciBvciBvdXRwdXRcbiAgICBVU0IgPSAn8J+UjCcsIC8vIFVTQiBvciBjb25uZWN0aW9uXG4gICAgU3BlYWtlciA9ICfwn5SKJywgLy8gU3BlYWtlciBvciBhdWRpb1xuICAgIE1pY3JvcGhvbmUgPSAn8J+OmScsIC8vIE1pY3JvcGhvbmUgb3IgaW5wdXRcbiAgICBDYW1lcmEgPSAn8J+TtycsIC8vIENhbWVyYSBvciB2aWRlb1xuICAgIFZpZGVvID0gJ/CfjqUnLCAvLyBWaWRlbyBvciBtZWRpYVxuICAgIE11c2ljID0gJ/CfjrUnLCAvLyBNdXNpYyBvciBhdWRpb1xuICAgIFBob25lID0gJ/Cfk54nLCAvLyBQaG9uZSBvciBjb21tdW5pY2F0aW9uXG5cbiAgICAvLyBEZXZlbG9wbWVudCBhbmQgRXZhbHVhdGlvblxuICAgIFBhY2thZ2UgPSAn8J+TpicsIC8vIFBhY2thZ2Ugb3IgYnVuZGxlXG4gICAgUGx1Z2luID0gJ/CflIwnLCAvLyBQbHVnaW4gb3IgZXh0ZW5zaW9uXG4gICAgRXh0ZW5zaW9uID0gJ/Cfp6knLCAvLyBFeHRlbnNpb24gb3IgY29tcG9uZW50XG4gICAgTW9kdWxlID0gJ/Cfk6YnLCAvLyBNb2R1bGUgb3IgcGFja2FnZVxuICAgIEV2YWx1YXRlID0gJ/CflI0nLCAvLyBFdmFsdWF0ZSBvciBzZWFyY2hcbiAgICBWYXJpYWJsZSA9ICfwn5SnJywgLy8gVmFyaWFibGUgb3Igc2V0dGluZ1xuICAgIFNjcmlwdCA9ICfwn5OcJywgLy8gU2NyaXB0IG9yIGNvZGVcbiAgICBDb2RlID0gJ/Cfkr4nLCAvLyBDb2RlIG9yIGZpbGVcblxuICAgIC8vIFN0YXR1cyBhbmQgQ29tcGxldGlvblxuICAgIExvZ3MgPSAn8J+TnCcsIC8vIExvZ3Mgb3IgaGlzdG9yeVxuICAgIFBvd2VyID0gJ+KPuycsIC8vIE9uL09mZiBzdGF0ZVxuICAgIEhlYXJ0ID0gJ+KdpCcsIC8vIExvdmUgb3IgZmF2b3JpdGVcbiAgICBGbGFtZSA9ICfwn5SlJywgLy8gVHJlbmRpbmcgb3IgaG90XG4gICAgR3Jvd3RoID0gJ/Cfk4gnLCAvLyBHcm93dGggb3IgaW5jcmVhc2VcbiAgICBEZWNsaW5lID0gJ/Cfk4knLCAvLyBEZWNsaW5lIG9yIGRlY3JlYXNlXG4gICAgV2FybmluZ0ZpbGxlZCA9ICfimqDvuI8nLCAvLyBXYXJuaW5nIChmaWxsZWQpXG5cbiAgICAvLyBOYXR1cmUgYW5kIFdlYXRoZXJcbiAgICBTdW4gPSAn4piAJywgLy8gQnJpZ2h0bmVzcyBvciBkYXlcbiAgICBNb29uID0gJ/CfjJknLCAvLyBOaWdodCBvciBkYXJrIG1vZGVcbiAgICBSYWluID0gJ/CfjKcnLCAvLyBSYWluIG9yIGJhZCB3ZWF0aGVyXG4gICAgU25vdyA9ICfinYQnLCAvLyBTbm93IG9yIGNvbGRcbiAgICBMaWdodG5pbmcgPSAn4pqhJywgLy8gTGlnaHRuaW5nIG9yIGRhbmdlclxuICAgIFRyZWUgPSAn8J+MsicsIC8vIE5hdHVyZSBvciBlbnZpcm9ubWVudFxuXG4gICAgLy8gRW1vdGlvbnMgYW5kIEV4cHJlc3Npb25zXG4gICAgU21pbGUgPSAn8J+YiicsIC8vIEhhcHBpbmVzcyBvciBwb3NpdGl2ZSBzdGF0ZVxuICAgIFNhZCA9ICfwn5iiJywgLy8gU2FkbmVzcyBvciBuZWdhdGl2ZSBzdGF0ZVxuICAgIEFuZ3J5ID0gJ/CfmKEnLCAvLyBBbmdlciBvciBmcnVzdHJhdGlvblxuICAgIENsYXAgPSAn8J+RjycsIC8vIEFwcGxhdXNlIG9yIGNlbGVicmF0aW9uXG4gICAgVGh1bWJzVXAgPSAn8J+RjScsIC8vIEFwcHJvdmFsIG9yIHN1Y2Nlc3NcbiAgICBUaHVtYnNEb3duID0gJ/CfkY4nLCAvLyBEaXNhcHByb3ZhbCBvciBmYWlsdXJlXG5cbiAgICAvLyBNaXNjZWxsYW5lb3VzXG4gICAgUm9ja2V0ID0gJ/CfmoAnLCAvLyBMYXVuY2ggb3IgZGVwbG95XG4gICAgR2xvYmUgPSAn8J+MjScsIC8vIEVhcnRoIG9yIGludGVybmF0aW9uYWxcbiAgICBNZWRhbCA9ICfwn4+FJywgLy8gQWNoaWV2ZW1lbnQgb3IgYXdhcmRcbiAgICBUcm9waHkgPSAn8J+PhicsIC8vIFdpbm5lciBvciBjaGFtcGlvblxuICAgIEZsYWcgPSAn8J+aqScsIC8vIE1hcmsgb3IgZmxhZ1xuICAgIFN0YXJGaWxsZWQgPSAn4q2QJywgLy8gSGlnaGxpZ2h0IG9yIGZhdm9yaXRlXG4gICAgU3Rhck91dGxpbmUgPSAn4pypJywgLy8gQWx0ZXJuYXRlIHN0YXIgaWNvblxuICAgIEZpcmV3b3JrcyA9ICfwn46GJywgLy8gQ2VsZWJyYXRpb25cbiAgICBCYWxsb29uID0gJ/CfjognLCAvLyBQYXJ0eSBvciBmdW5cbiAgICBHaWZ0ID0gJ/CfjoEnLCAvLyBSZXdhcmQgb3IgcHJlc2VudFxufVxuXG5leHBvcnQgdHlwZSBJQ2xpVXNlciA9IHtcbiAgICAvKipcbiAgICAgKiBUaGUgaWQgb2YgdGhlIHVzZXJcbiAgICAgKi9cbiAgICBpZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIHVzZXJcbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZW1haWwgb2YgdGhlIHVzZXJcbiAgICAgKi9cbiAgICBlbWFpbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGdyb3VwcyB0aGUgdXNlciBiZWxvbmdzIHRvXG4gICAgICogQGRlZmF1bHQgW11cbiAgICAgKi9cbiAgICBncm91cHM/OiBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaVVzZXJTZXNzaW9uIHtcbiAgICAvKipcbiAgICAgKiBUaGUgdXNlciBhc3NvY2lhdGVkIHdpdGggdGhlIHNlc3Npb25cbiAgICAgKi9cbiAgICB1c2VyOiBJQ2xpVXNlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgdXNlciBzZXNzaW9uXG4gICAgICovXG4gICAgZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIENMSVxuICovXG5leHBvcnQgdHlwZSBDbGlPcHRpb25zID0gUmVjb3JkPHN0cmluZywgYW55PiAmIHtcbiAgICAvKipcbiAgICAgKiBUaGUgd2VsY29tZSBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiB0aGUgQ0xJIHN0YXJ0c1xuICAgICAqL1xuICAgIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhlIHdlbGNvbWUgbWVzc2FnZSBpcyBoaWRkZW5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIGhpZGVXZWxjb21lTWVzc2FnZT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBVc2VycyBtb2R1bGUgb3B0aW9uc1xuICAgICAqL1xuICAgIHVzZXJzTW9kdWxlPzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgdHJ1ZSwgdGhlIHVzZXJzIG1vZHVsZSBpcyBlbmFibGVkXG4gICAgICAgICAqL1xuICAgICAgICBlbmFibGVkOiBib29sZWFuO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBIaWRlIHRoZSBwcm9tcHQgdG8gZGlzcGxheSB3aGVuIHRoZSBDTEkgaXMgcmVhZHkgdG8gYWNjZXB0IGlucHV0XG4gICAgICAgICAqL1xuICAgICAgICBoaWRlVXNlck5hbWU/OiBib29sZWFuO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gdGVybWluYWwgb3B0aW9uc1xuICAgICAqL1xuICAgIHRlcm1pbmFsT3B0aW9ucz86IElUZXJtaW5hbE9wdGlvbnMgJiBJVGVybWluYWxJbml0T25seU9wdGlvbnM7XG59O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBwYWNrYWdlIHRoYXQgY2FuIGJlIGluc3RhbGxlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhY2thZ2Uge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlXG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGdsb2JhbCBuYW1lIHVzZWQgdG8gYWNjZXNzIHRoZSBwYWNrYWdlXG4gICAgICovXG4gICAgZ2xvYmFsTmFtZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBwYWNrYWdlXG4gICAgICovXG4gICAgdmVyc2lvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHVucGtnIHVybCB0byB0aGUgcGFja2FnZVxuICAgICAqL1xuICAgIHVybDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRlcGVuZGVuY2llcyBmb3IgdGhlIG1vZHVsZVxuICAgICAqL1xuICAgIGRlcGVuZGVuY2llcz86IFBhY2thZ2VbXTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGNvbW1hbmQgcHJvY2Vzc29yIG1ldGFkYXRhXG4gKi9cbmV4cG9ydCB0eXBlIENsaVByb2Nlc3Nvck1ldGFkYXRhID0gUmVjb3JkPHN0cmluZywgYW55PiAmIHtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB0aGUgcHJvY2Vzc29yIGlzIHNlYWxlZCBhbmQgY2Fubm90IGJlIGV4dGVuZGVkXG4gICAgICovXG4gICAgc2VhbGVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoZSBwcm9jZXNzb3IgcmVxdWlyZXMgdGhlIHNlcnZlciB0byBiZSBydW5uaW5nXG4gICAgICovXG4gICAgcmVxdWlyZVNlcnZlcj86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbW9kdWxlIHRoZSBwcm9jZXNzb3IgYmVsb25ncyB0b1xuICAgICAqL1xuICAgIG1vZHVsZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEFuIGljb24gdG8gZGlzcGxheSBmb3IgdGhlIHByb2Nlc3NvclxuICAgICAqL1xuICAgIGljb24/OiBDbGlJY29uIHwgc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IGVudW1zID0ge1xuICAgIENsaUZvcmVncm91bmRDb2xvcixcbiAgICBDbGlCYWNrZ3JvdW5kQ29sb3IsXG4gICAgQ2xpSWNvbixcbn07XG4iXX0=
@@ -0,0 +1,26 @@
1
+ export class CancellablePromise {
2
+ constructor(executor) {
3
+ this.executor = executor;
4
+ this.hasCancelled = false;
5
+ this.abortController = new AbortController();
6
+ this.promise = new Promise((resolve, reject) => {
7
+ this.abortController.signal.onabort = () => {
8
+ reject(new Error('Promise cancelled'));
9
+ };
10
+ this.executor((value) => {
11
+ if (!this.hasCancelled) {
12
+ resolve(value);
13
+ }
14
+ }, (reason) => {
15
+ if (!this.hasCancelled) {
16
+ reject(reason);
17
+ }
18
+ });
19
+ });
20
+ }
21
+ cancel() {
22
+ this.hasCancelled = true;
23
+ this.abortController.abort();
24
+ }
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuY2VsbGFibGVQcm9taXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3R5cGVzL0NhbmNlbGxhYmxlUHJvbWlzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sa0JBQWtCO0lBSzNCLFlBQ1ksUUFHQztRQUhELGFBQVEsR0FBUixRQUFRLENBR1A7UUFSTCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixvQkFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFTekMsWUFBTyxHQUFlLElBQUksT0FBTyxDQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzVELElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7Z0JBQ3ZDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDO1lBRUYsSUFBSSxDQUFDLFFBQVEsQ0FDVCxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO29CQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2xCO1lBQ0wsQ0FBQyxFQUNELENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDbEI7WUFDTCxDQUFDLENBQ0osQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBbkJBLENBQUM7SUFxQkosTUFBTTtRQUNGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIENhbmNlbGxhYmxlUHJvbWlzZTxUPiB7XG4gICAgcHJpdmF0ZSBoYXNDYW5jZWxsZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZXhlY3V0b3I6IChcbiAgICAgICAgICAgIHJlc29sdmU6ICh2YWx1ZTogVCkgPT4gdm9pZCxcbiAgICAgICAgICAgIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZCxcbiAgICAgICAgKSA9PiB2b2lkLFxuICAgICkge31cblxuICAgIHB1YmxpYyBwcm9taXNlOiBQcm9taXNlPFQ+ID0gbmV3IFByb21pc2U8VD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICB0aGlzLmFib3J0Q29udHJvbGxlci5zaWduYWwub25hYm9ydCA9ICgpID0+IHtcbiAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ1Byb21pc2UgY2FuY2VsbGVkJykpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZXhlY3V0b3IoXG4gICAgICAgICAgICAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaGFzQ2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUodmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAocmVhc29uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhhc0NhbmNlbGxlZCkge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QocmVhc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgIH0pO1xuXG4gICAgY2FuY2VsKCkge1xuICAgICAgICB0aGlzLmhhc0NhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuYWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './CancellablePromise';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vQ2FuY2VsbGFibGVQcm9taXNlJztcbiJdfQ==
@@ -89,6 +89,7 @@ export class ObjectDescriber {
89
89
  else {
90
90
  context.writer.writeln(result?.toString());
91
91
  }
92
+ context.process.output(result?.toString());
92
93
  },
93
94
  writeDescription: (context) => {
94
95
  context.writer.writeln(func);
@@ -130,4 +131,4 @@ export class ObjectDescriber {
130
131
  .filter((arg) => arg !== '');
131
132
  }
132
133
  }
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWRlc2NyaWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi91dGlscy9vYmplY3QtZGVzY3JpYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxrQkFBa0IsRUFBcUIsTUFBTSxXQUFXLENBQUM7QUFFbEUsTUFBTSxPQUFPLGVBQWU7SUFDeEIsTUFBTSxDQUFDLFFBQVEsQ0FDWCxHQUFRLEVBQ1IsT0FNQztRQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBRWpDLE1BQU0sVUFBVSxHQUEyQixFQUFFLENBQUM7UUFFOUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU5QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQztRQUV2RSxLQUFLLE1BQU0sSUFBSSxJQUFJLFNBQVMsRUFBRTtZQUMxQixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRWxELElBQUksTUFBTSxFQUFFO2dCQUNSLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQztvQkFDekIsUUFBUSxFQUFFLElBQUk7b0JBQ2QsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsSUFBSTtpQkFDUCxDQUFDLENBQUM7Z0JBRUgsSUFBSSxDQUFDLGFBQWEsRUFBRTtvQkFDaEIsU0FBUztpQkFDWjthQUNKO1lBRUQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUU3QyxNQUFNLG1CQUFtQixHQUFHLElB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aW1wb3J0IHsgSUNsaUNvbW1hbmRQcm9jZXNzb3IsIElDbGlFeGVjdXRpb25Db250ZXh0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDbGlGb3JlZ3JvdW5kQ29sb3IsIENsaVByb2Nlc3NDb21tYW5kIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZXhwb3J0IGNsYXNzIE9iamVjdERlc2NyaWJlciB7XG4gICAgc3RhdGljIGRlc2NyaWJlKFxuICAgICAgICBvYmo6IGFueSxcbiAgICAgICAgb3B0aW9ucz86IHtcbiAgICAgICAgICAgIGZpbHRlcj86IChvOiB7XG4gICAgICAgICAgICAgICAgZnVuY05hbWU6IHN0cmluZztcbiAgICAgICAgICAgICAgICBmdW5jOiBhbnk7XG4gICAgICAgICAgICAgICAgYXJnczogc3RyaW5nW107XG4gICAgICAgICAgICB9KSA9PiBib29sZWFuO1xuICAgICAgICB9LFxuICAgICk6IElDbGlDb21tYW5kUHJvY2Vzc29yW10ge1xuICAgICAgICBjb25zdCB7IGZpbHRlciB9ID0gb3B0aW9ucyB8fCB7fTtcblxuICAgICAgICBjb25zdCBwcm9jZXNzb3JzOiBJQ2xpQ29tbWFuZFByb2Nlc3NvcltdID0gW107XG5cbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iaik7XG5cbiAgICAgICAgY29uc3QgZnVuY3Rpb25zID0ga2V5cy5maWx0ZXIoKGtleSkgPT4gdHlwZW9mIG9ialtrZXldID09PSAnZnVuY3Rpb24nKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGZ1bmMgb2YgZnVuY3Rpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBmdW5jVmFsdWUgPSBvYmpbZnVuY107XG4gICAgICAgICAgICBjb25zdCBhcmdzID0gdGhpcy5nZXRGdW5jdGlvbkFyZ3VtZW50cyhmdW5jVmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2hvdWxkSW5jbHVkZSA9IGZpbHRlcih7XG4gICAgICAgICAgICAgICAgICAgIGZ1bmNOYW1lOiBmdW5jLFxuICAgICAgICAgICAgICAgICAgICBmdW5jOiBmdW5jVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXNob3VsZEluY2x1ZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBzdXBwb3J0c011bHRpcGxlQXJncyA9IGFyZ3MubGVuZ3RoID4gMTtcblxuICAgICAgICAgICAgY29uc3Qgc3VwcG9ydHNEeW5hbWljQXJncyA9IHRoaXMuc3VwcG9ydHNEeW5hbWljQXJncyhmdW5jVmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAoYXJncy5sZW5ndGggPT09IDAgJiYgIXN1cHBvcnRzRHluYW1pY0FyZ3MpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGFyZ3MubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgICAgIGFyZ3Muc29tZSgoYXJnKSA9PiBhcmcgPT09ICdmdW5jdGlvbicgfHwgYXJnID09PSAnZnVuYycpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc29yOiBJQ2xpQ29tbWFuZFByb2Nlc3NvciA9IHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiBmdW5jLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgQSBjb21tYW5kIHRoYXQgZXhlY3V0ZXMgdGhlIGZ1bmN0aW9uICR7ZnVuY30gd2l0aCB0aGUgcHJvdmlkZWQgYXJndW1lbnRzYCxcbiAgICAgICAgICAgICAgICBhbGxvd1VubGlzdGVkQ29tbWFuZHM6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdkZWJ1ZycsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0RlYnVnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NDb21tYW5kOiBhc3luYyAoXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICAgICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVidWcgPSBjb21tYW5kLmFyZ3NbJ2RlYnVnJ10gYXMgYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZGVidWcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJ0V4ZWN1dGluZyBjb21tYW5kOiAnICsgZnVuYyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBcmd1bWVudHM6ICcgKyBKU09OLnN0cmluZ2lmeShjb21tYW5kLmFyZ3MpLFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Z1bmN0aW9uOiAnICsgZnVuY1ZhbHVlLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXJnc1RvQ2FsbEY6IGFueVtdID0gW107XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1cHBvcnRzTXVsdGlwbGVBcmdzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFyZyBvZiBhcmdzLnNsaWNlKDEpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1RvQ2FsbEYucHVzaChjb21tYW5kLmFyZ3NbYXJnXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoc3VwcG9ydHNEeW5hbWljQXJncykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVsaW1pdGVyID0gY29tbWFuZC5hcmdzWydkZWxpbWl0ZXInXSB8fCAnLCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdzVG9DYWxsRi5wdXNoKC4uLmNvbW1hbmQudmFsdWUhLnNwbGl0KGRlbGltaXRlcikpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlYnVnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBcmd1bWVudHMgYWZ0ZXIgcHJvY2Vzc2luZzogJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGFyZ3NUb0NhbGxGKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydHNEeW5hbWljQXJncyAmJiBhcmdzLmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZnVuY1ZhbHVlKC4uLmFyZ3NUb0NhbGxGKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZnVuY1ZhbHVlKGNvbW1hbmQudmFsdWUsIC4uLmFyZ3NUb0NhbGxGKTtcblxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyYXBJbkNvbG9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZXN1bHQ6ICcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xpRm9yZWdyb3VuZENvbG9yLlllbGxvdyxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignbnVsbCcpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCd1bmRlZmluZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4ocmVzdWx0LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKHJlc3VsdC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlSnNvbihyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlSnNvbihyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihyZXN1bHQ/LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB3cml0ZURlc2NyaXB0aW9uOiAoY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihmdW5jKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaWYgKHN1cHBvcnRzRHluYW1pY0FyZ3MpIHtcbiAgICAgICAgICAgICAgICBwcm9jZXNzb3IucGFyYW1ldGVycz8ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdkZWxpbWl0ZXInLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0RlbGltaXRlcicsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzdXBwb3J0c011bHRpcGxlQXJncykge1xuICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5wYXJhbWV0ZXJzPy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAuLi5hcmdzLnNsaWNlKDEpLm1hcCgoYXJnKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogYXJnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGFyZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcHJvY2Vzc29ycy5wdXNoKHByb2Nlc3Nvcik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcHJvY2Vzc29ycztcbiAgICB9XG5cbiAgICBzdGF0aWMgc3VwcG9ydHNEeW5hbWljQXJncyhmdW5jOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZnVuY1N0ciA9IGZ1bmMudG9TdHJpbmcoKTtcbiAgICAgICAgcmV0dXJuIGZ1bmNTdHIuaW5jbHVkZXMoJ2FyZ3VtZW50cycpO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRGdW5jdGlvbkFyZ3VtZW50cyhmdW5jOiBhbnkpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGZ1bmNTdHIgPSBmdW5jLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSBmdW5jU3RyLm1hdGNoKC9cXCgoW14pXSopXFwpLyk7XG4gICAgICAgIGlmICghYXJncykge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcmdzWzFdXG4gICAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgICAgLm1hcCgoYXJnOiBzdHJpbmcpID0+IGFyZy50cmltKCkpXG4gICAgICAgICAgICAuZmlsdGVyKChhcmc6IHN0cmluZykgPT4gYXJnICE9PSAnJyk7XG4gICAgfVxufVxuIl19
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWRlc2NyaWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi91dGlscy9vYmplY3QtZGVzY3JpYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxrQkFBa0IsRUFBcUIsTUFBTSxXQUFXLENBQUM7QUFFbEUsTUFBTSxPQUFPLGVBQWU7SUFDeEIsTUFBTSxDQUFDLFFBQVEsQ0FDWCxHQUFRLEVBQ1IsT0FNQztRQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBRWpDLE1BQU0sVUFBVSxHQUEyQixFQUFFLENBQUM7UUFFOUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU5QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQztRQUV2RSxLQUFLLE1BQU0sSUFBSSxJQUFJLFNBQVMsRUFBRTtZQUMxQixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRWxELElBQUksTUFBTSxFQUFFO2dCQUNSLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQztvQkFDekIsUUFBUSxFQUFFLElBQUk7b0JBQ2QsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsSUFBSTtpQkFDUCxDQUFDLENBQUM7Z0JBRUgsSUFBSSxDQUFDLGFBQWEsRUFBRTtvQkFDaEIsU0FBUztpQkFDWjthQUNKO1lBRUQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUU3QyxNQUFNLG1CQUFtQixHQUFHLElB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LENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElDbGlDb21tYW5kUHJvY2Vzc29yLCBJQ2xpRXhlY3V0aW9uQ29udGV4dCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ2xpRm9yZWdyb3VuZENvbG9yLCBDbGlQcm9jZXNzQ29tbWFuZCB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBjbGFzcyBPYmplY3REZXNjcmliZXIge1xuICAgIHN0YXRpYyBkZXNjcmliZShcbiAgICAgICAgb2JqOiBhbnksXG4gICAgICAgIG9wdGlvbnM/OiB7XG4gICAgICAgICAgICBmaWx0ZXI/OiAobzoge1xuICAgICAgICAgICAgICAgIGZ1bmNOYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgZnVuYzogYW55O1xuICAgICAgICAgICAgICAgIGFyZ3M6IHN0cmluZ1tdO1xuICAgICAgICAgICAgfSkgPT4gYm9vbGVhbjtcbiAgICAgICAgfSxcbiAgICApOiBJQ2xpQ29tbWFuZFByb2Nlc3NvcltdIHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXIgfSA9IG9wdGlvbnMgfHwge307XG5cbiAgICAgICAgY29uc3QgcHJvY2Vzc29yczogSUNsaUNvbW1hbmRQcm9jZXNzb3JbXSA9IFtdO1xuXG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuXG4gICAgICAgIGNvbnN0IGZ1bmN0aW9ucyA9IGtleXMuZmlsdGVyKChrZXkpID0+IHR5cGVvZiBvYmpba2V5XSA9PT0gJ2Z1bmN0aW9uJyk7XG5cbiAgICAgICAgZm9yIChjb25zdCBmdW5jIG9mIGZ1bmN0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgZnVuY1ZhbHVlID0gb2JqW2Z1bmNdO1xuICAgICAgICAgICAgY29uc3QgYXJncyA9IHRoaXMuZ2V0RnVuY3Rpb25Bcmd1bWVudHMoZnVuY1ZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZEluY2x1ZGUgPSBmaWx0ZXIoe1xuICAgICAgICAgICAgICAgICAgICBmdW5jTmFtZTogZnVuYyxcbiAgICAgICAgICAgICAgICAgICAgZnVuYzogZnVuY1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBhcmdzLFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFzaG91bGRJbmNsdWRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc3VwcG9ydHNNdWx0aXBsZUFyZ3MgPSBhcmdzLmxlbmd0aCA+IDE7XG5cbiAgICAgICAgICAgIGNvbnN0IHN1cHBvcnRzRHluYW1pY0FyZ3MgPSB0aGlzLnN1cHBvcnRzRHluYW1pY0FyZ3MoZnVuY1ZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09PSAwICYmICFzdXBwb3J0c0R5bmFtaWNBcmdzKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBhcmdzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICAgICBhcmdzLnNvbWUoKGFyZykgPT4gYXJnID09PSAnZnVuY3Rpb24nIHx8IGFyZyA9PT0gJ2Z1bmMnKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NvcjogSUNsaUNvbW1hbmRQcm9jZXNzb3IgPSB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogZnVuYyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYEEgY29tbWFuZCB0aGF0IGV4ZWN1dGVzIHRoZSBmdW5jdGlvbiAke2Z1bmN9IHdpdGggdGhlIHByb3ZpZGVkIGFyZ3VtZW50c2AsXG4gICAgICAgICAgICAgICAgYWxsb3dVbmxpc3RlZENvbW1hbmRzOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbHVlUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZGVidWcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdEZWJ1ZycsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKFxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kOiBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG4gICAgICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlYnVnID0gY29tbWFuZC5hcmdzWydkZWJ1ZyddIGFzIGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlYnVnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCdFeGVjdXRpbmcgY29tbWFuZDogJyArIGZ1bmMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQXJndW1lbnRzOiAnICsgSlNPTi5zdHJpbmdpZnkoY29tbWFuZC5hcmdzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGdW5jdGlvbjogJyArIGZ1bmNWYWx1ZS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFyZ3NUb0NhbGxGOiBhbnlbXSA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChzdXBwb3J0c011bHRpcGxlQXJncykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBhcmcgb2YgYXJncy5zbGljZSgxKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3NUb0NhbGxGLnB1c2goY29tbWFuZC5hcmdzW2FyZ10pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1cHBvcnRzRHluYW1pY0FyZ3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlbGltaXRlciA9IGNvbW1hbmQuYXJnc1snZGVsaW1pdGVyJ10gfHwgJywnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1RvQ2FsbEYucHVzaCguLi5jb21tYW5kLnZhbHVlIS5zcGxpdChkZWxpbWl0ZXIpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChkZWJ1Zykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQXJndW1lbnRzIGFmdGVyIHByb2Nlc3Npbmc6ICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShhcmdzVG9DYWxsRiksXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRzRHluYW1pY0FyZ3MgJiYgYXJncy5sZW5ndGggPT09IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGZ1bmNWYWx1ZSguLi5hcmdzVG9DYWxsRilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZ1bmNWYWx1ZShjb21tYW5kLnZhbHVlLCAuLi5hcmdzVG9DYWxsRik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cmFwSW5Db2xvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVzdWx0OiAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsaUZvcmVncm91bmRDb2xvci5ZZWxsb3csXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJ251bGwnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbigndW5kZWZpbmVkJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKHJlc3VsdC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihyZXN1bHQudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZUpzb24ocmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZUpzb24ocmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4ocmVzdWx0Py50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQucHJvY2Vzcy5vdXRwdXQocmVzdWx0Py50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHdyaXRlRGVzY3JpcHRpb246IChjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKGZ1bmMpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpZiAoc3VwcG9ydHNEeW5hbWljQXJncykge1xuICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5wYXJhbWV0ZXJzPy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2RlbGltaXRlcicsXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnRGVsaW1pdGVyJyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHN1cHBvcnRzTXVsdGlwbGVBcmdzKSB7XG4gICAgICAgICAgICAgICAgcHJvY2Vzc29yLnBhcmFtZXRlcnM/LnB1c2goXG4gICAgICAgICAgICAgICAgICAgIC4uLmFyZ3Muc2xpY2UoMSkubWFwKChhcmcpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBhcmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYXJnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwcm9jZXNzb3JzLnB1c2gocHJvY2Vzc29yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwcm9jZXNzb3JzO1xuICAgIH1cblxuICAgIHN0YXRpYyBzdXBwb3J0c0R5bmFtaWNBcmdzKGZ1bmM6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBmdW5jU3RyID0gZnVuYy50b1N0cmluZygpO1xuICAgICAgICByZXR1cm4gZnVuY1N0ci5pbmNsdWRlcygnYXJndW1lbnRzJyk7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldEZ1bmN0aW9uQXJndW1lbnRzKGZ1bmM6IGFueSk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgZnVuY1N0ciA9IGZ1bmMudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgYXJncyA9IGZ1bmNTdHIubWF0Y2goL1xcKChbXildKilcXCkvKTtcbiAgICAgICAgaWYgKCFhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFyZ3NbMV1cbiAgICAgICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgICAgICAubWFwKChhcmc6IHN0cmluZykgPT4gYXJnLnRyaW0oKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKGFyZzogc3RyaW5nKSA9PiBhcmcgIT09ICcnKTtcbiAgICB9XG59XG4iXX0=
@@ -6,4 +6,5 @@ export * from './lib/interfaces';
6
6
  export * from './lib/modules';
7
7
  export * from './lib/utils';
8
8
  export * from './lib/constants';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixjQUFjLGtCQUFrQixDQUFDO0FBRWpDLGNBQWMsZUFBZSxDQUFDO0FBRTlCLGNBQWMsYUFBYSxDQUFDO0FBRTVCLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNvcmVcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzJztcbiJdfQ==
9
+ export * from './lib/types';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixjQUFjLGtCQUFrQixDQUFDO0FBRWpDLGNBQWMsZUFBZSxDQUFDO0FBRTlCLGNBQWMsYUFBYSxDQUFDO0FBRTVCLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNvcmVcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMnO1xuIl19
@@ -23,10 +23,134 @@ var CliBackgroundColor;
23
23
  })(CliBackgroundColor || (CliBackgroundColor = {}));
24
24
  var CliIcon;
25
25
  (function (CliIcon) {
26
+ // General Symbols
26
27
  CliIcon["CheckIcon"] = "\u2714";
27
28
  CliIcon["CrossIcon"] = "\u2718";
28
29
  CliIcon["InfoIcon"] = "\u2139";
29
30
  CliIcon["WarningIcon"] = "\u26A0";
31
+ CliIcon["QuestionMark"] = "?";
32
+ CliIcon["Exclamation"] = "\u2757";
33
+ CliIcon["Ellipsis"] = "\u2026";
34
+ CliIcon["Dot"] = "\u2022";
35
+ CliIcon["Bullet"] = "\u2023";
36
+ // Arrows
37
+ CliIcon["ArrowRight"] = "\u2192";
38
+ CliIcon["ArrowLeft"] = "\u2190";
39
+ CliIcon["ArrowUp"] = "\u2191";
40
+ CliIcon["ArrowDown"] = "\u2193";
41
+ CliIcon["ArrowRightFilled"] = "\u25B6";
42
+ CliIcon["ArrowLeftFilled"] = "\u25C0";
43
+ CliIcon["ArrowUpFilled"] = "\u25B2";
44
+ CliIcon["ArrowDownFilled"] = "\u25BC";
45
+ CliIcon["DoubleArrowRight"] = "\u00BB";
46
+ CliIcon["DoubleArrowLeft"] = "\u00AB";
47
+ // Lists and Progress
48
+ CliIcon["Star"] = "\u2605";
49
+ CliIcon["StarEmpty"] = "\u2606";
50
+ CliIcon["Plus"] = "+";
51
+ CliIcon["Minus"] = "-";
52
+ CliIcon["Progress"] = "\u23F3";
53
+ CliIcon["Success"] = "\u2705";
54
+ CliIcon["Failure"] = "\u274C";
55
+ // Time and Calendar
56
+ CliIcon["Clock"] = "\u23F0";
57
+ CliIcon["Timer"] = "\u23F1";
58
+ CliIcon["Alarm"] = "\uD83D\uDD14";
59
+ CliIcon["Calendar"] = "\uD83D\uDCC5";
60
+ // Navigation and Folders
61
+ CliIcon["Folder"] = "\uD83D\uDCC1";
62
+ CliIcon["FolderOpen"] = "\uD83D\uDCC2";
63
+ CliIcon["File"] = "\uD83D\uDCC4";
64
+ CliIcon["Archive"] = "\uD83D\uDDC3";
65
+ CliIcon["Link"] = "\uD83D\uDD17";
66
+ CliIcon["Chain"] = "\u26D3";
67
+ CliIcon["Bookmark"] = "\uD83D\uDD16";
68
+ // Actions
69
+ CliIcon["Edit"] = "\u270F";
70
+ CliIcon["Trash"] = "\uD83D\uDDD1";
71
+ CliIcon["Add"] = "\u2795";
72
+ CliIcon["Remove"] = "\u2796";
73
+ CliIcon["Reload"] = "\uD83D\uDD04";
74
+ CliIcon["Save"] = "\uD83D\uDCBE";
75
+ CliIcon["Undo"] = "\u21A9";
76
+ CliIcon["Redo"] = "\u21AA";
77
+ CliIcon["Play"] = "\u25B6";
78
+ CliIcon["Pause"] = "\u23F8";
79
+ CliIcon["Stop"] = "\u23F9";
80
+ CliIcon["Cancel"] = "\u274E";
81
+ // User and Security
82
+ CliIcon["User"] = "\uD83D\uDC64";
83
+ CliIcon["Group"] = "\uD83D\uDC65";
84
+ CliIcon["Lock"] = "\uD83D\uDD12";
85
+ CliIcon["Unlock"] = "\uD83D\uDD13";
86
+ CliIcon["Help"] = "\u2753";
87
+ CliIcon["Key"] = "\uD83D\uDD11";
88
+ CliIcon["Shield"] = "\uD83D\uDEE1";
89
+ // Tools and Settings
90
+ CliIcon["Gear"] = "\u2699";
91
+ CliIcon["Settings"] = "\u2699\uFE0F";
92
+ CliIcon["Theme"] = "\uD83C\uDFA8";
93
+ CliIcon["Light"] = "\uD83D\uDCA1";
94
+ CliIcon["Bug"] = "\uD83D\uDC1E";
95
+ CliIcon["Wrench"] = "\uD83D\uDD27";
96
+ CliIcon["Hammer"] = "\uD83D\uDD28";
97
+ // Technology and Devices
98
+ CliIcon["Terminal"] = "\uD83D\uDCBB";
99
+ CliIcon["Database"] = "\uD83D\uDDC4";
100
+ CliIcon["Server"] = "\uD83D\uDDA5";
101
+ CliIcon["Cloud"] = "\u2601";
102
+ CliIcon["Network"] = "\uD83C\uDF10";
103
+ CliIcon["Monitor"] = "\uD83D\uDDA5";
104
+ CliIcon["Printer"] = "\uD83D\uDDA8";
105
+ CliIcon["USB"] = "\uD83D\uDD0C";
106
+ CliIcon["Speaker"] = "\uD83D\uDD0A";
107
+ CliIcon["Microphone"] = "\uD83C\uDF99";
108
+ CliIcon["Camera"] = "\uD83D\uDCF7";
109
+ CliIcon["Video"] = "\uD83C\uDFA5";
110
+ CliIcon["Music"] = "\uD83C\uDFB5";
111
+ CliIcon["Phone"] = "\uD83D\uDCDE";
112
+ // Development and Evaluation
113
+ CliIcon["Package"] = "\uD83D\uDCE6";
114
+ CliIcon["Plugin"] = "\uD83D\uDD0C";
115
+ CliIcon["Extension"] = "\uD83E\uDDE9";
116
+ CliIcon["Module"] = "\uD83D\uDCE6";
117
+ CliIcon["Evaluate"] = "\uD83D\uDD0D";
118
+ CliIcon["Variable"] = "\uD83D\uDD27";
119
+ CliIcon["Script"] = "\uD83D\uDCDC";
120
+ CliIcon["Code"] = "\uD83D\uDCBE";
121
+ // Status and Completion
122
+ CliIcon["Logs"] = "\uD83D\uDCDC";
123
+ CliIcon["Power"] = "\u23FB";
124
+ CliIcon["Heart"] = "\u2764";
125
+ CliIcon["Flame"] = "\uD83D\uDD25";
126
+ CliIcon["Growth"] = "\uD83D\uDCC8";
127
+ CliIcon["Decline"] = "\uD83D\uDCC9";
128
+ CliIcon["WarningFilled"] = "\u26A0\uFE0F";
129
+ // Nature and Weather
130
+ CliIcon["Sun"] = "\u2600";
131
+ CliIcon["Moon"] = "\uD83C\uDF19";
132
+ CliIcon["Rain"] = "\uD83C\uDF27";
133
+ CliIcon["Snow"] = "\u2744";
134
+ CliIcon["Lightning"] = "\u26A1";
135
+ CliIcon["Tree"] = "\uD83C\uDF32";
136
+ // Emotions and Expressions
137
+ CliIcon["Smile"] = "\uD83D\uDE0A";
138
+ CliIcon["Sad"] = "\uD83D\uDE22";
139
+ CliIcon["Angry"] = "\uD83D\uDE21";
140
+ CliIcon["Clap"] = "\uD83D\uDC4F";
141
+ CliIcon["ThumbsUp"] = "\uD83D\uDC4D";
142
+ CliIcon["ThumbsDown"] = "\uD83D\uDC4E";
143
+ // Miscellaneous
144
+ CliIcon["Rocket"] = "\uD83D\uDE80";
145
+ CliIcon["Globe"] = "\uD83C\uDF0D";
146
+ CliIcon["Medal"] = "\uD83C\uDFC5";
147
+ CliIcon["Trophy"] = "\uD83C\uDFC6";
148
+ CliIcon["Flag"] = "\uD83D\uDEA9";
149
+ CliIcon["StarFilled"] = "\u2B50";
150
+ CliIcon["StarOutline"] = "\u2729";
151
+ CliIcon["Fireworks"] = "\uD83C\uDF86";
152
+ CliIcon["Balloon"] = "\uD83C\uDF88";
153
+ CliIcon["Gift"] = "\uD83C\uDF81";
30
154
  })(CliIcon || (CliIcon = {}));
31
155
  const enums = {
32
156
  CliForegroundColor,
@@ -132,6 +256,7 @@ class ObjectDescriber {
132
256
  else {
133
257
  context.writer.writeln(result?.toString());
134
258
  }
259
+ context.process.output(result?.toString());
135
260
  },
136
261
  writeDescription: (context) => {
137
262
  context.writer.writeln(func);
@@ -256,6 +381,32 @@ const bootUmdModule = async (module) => {
256
381
  }
257
382
  };
258
383
 
384
+ class CancellablePromise {
385
+ constructor(executor) {
386
+ this.executor = executor;
387
+ this.hasCancelled = false;
388
+ this.abortController = new AbortController();
389
+ this.promise = new Promise((resolve, reject) => {
390
+ this.abortController.signal.onabort = () => {
391
+ reject(new Error('Promise cancelled'));
392
+ };
393
+ this.executor((value) => {
394
+ if (!this.hasCancelled) {
395
+ resolve(value);
396
+ }
397
+ }, (reason) => {
398
+ if (!this.hasCancelled) {
399
+ reject(reason);
400
+ }
401
+ });
402
+ });
403
+ }
404
+ cancel() {
405
+ this.hasCancelled = true;
406
+ this.abortController.abort();
407
+ }
408
+ }
409
+
259
410
  /*
260
411
  * Public API Surface of core
261
412
  */
@@ -264,5 +415,5 @@ const bootUmdModule = async (module) => {
264
415
  * Generated bundle index. Do not edit.
265
416
  */
266
417
 
267
- export { CliBackgroundColor, CliForegroundColor, CliIcon, DefaultLibraryAuthor, ObjectDescriber, bootUmdModule, colorizeJson, constants, enums, formatJson, getParameterValue, getRightOfWord, highlightTextWithBg, initializeBrowserEnvironment, toQueryString, utils };
418
+ export { CancellablePromise, CliBackgroundColor, CliForegroundColor, CliIcon, DefaultLibraryAuthor, ObjectDescriber, bootUmdModule, colorizeJson, constants, enums, formatJson, getParameterValue, getRightOfWord, highlightTextWithBg, initializeBrowserEnvironment, toQueryString, utils };
268
419
  //# 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/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":"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"}
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/lib/types/CancellablePromise.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 data that was entered\n */\n data?: 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 // General Symbols\n CheckIcon = '✔', // Success, completion\n CrossIcon = '✘', // Failure, error\n InfoIcon = 'ℹ', // Information\n WarningIcon = '⚠', // Warning\n QuestionMark = '?', // Help or unknown state\n Exclamation = '❗', // Emphasis or alert\n Ellipsis = '…', // Loading or truncated text\n Dot = '•', // List item\n Bullet = '‣', // Alternate bullet point\n\n // Arrows\n ArrowRight = '→', // Navigation or next step\n ArrowLeft = '←', // Previous step or navigation\n ArrowUp = '↑', // Up direction\n ArrowDown = '↓', // Down direction\n ArrowRightFilled = '▶', // Navigation or next step (filled)\n ArrowLeftFilled = '◀', // Previous step or navigation (filled)\n ArrowUpFilled = '▲', // Up direction (filled)\n ArrowDownFilled = '▼', // Down direction (filled)\n DoubleArrowRight = '»', // Fast forward or next\n DoubleArrowLeft = '«', // Rewind or previous\n\n // Lists and Progress\n Star = '★', // Highlight or favorite (filled)\n StarEmpty = '☆', // Highlight or favorite (empty)\n Plus = '+', // Addition or increment\n Minus = '-', // Subtraction or decrement\n Progress = '⏳', // Indicating progress\n Success = '✅', // Success (alternative to CheckIcon)\n Failure = '❌', // Failure (alternative to CrossIcon)\n\n // Time and Calendar\n Clock = '⏰', // Time-related\n Timer = '⏱', // Stopwatch or timer\n Alarm = '🔔', // Alarm or alert\n Calendar = '📅', // Calendar or date\n\n // Navigation and Folders\n Folder = '📁', // Directory or file grouping\n FolderOpen = '📂', // Open folder\n File = '📄', // File or document\n Archive = '🗃', // Archive or file grouping\n Link = '🔗', // Hyperlink or connection\n Chain = '⛓', // Chain or linked\n Bookmark = '🔖', // Bookmark or save\n\n // Actions\n Edit = '✏', // Edit or modify\n Trash = '🗑', // Deletion or removal\n Add = '➕', // Add user or item\n Remove = '➖', // Remove user or item\n Reload = '🔄', // Refresh or reload\n Save = '💾', // Save or store\n Undo = '↩', // Undo action\n Redo = '↪', // Redo action\n Play = '▶', // Start or play\n Pause = '⏸', // Pause or stop temporarily\n Stop = '⏹', // Stop or end\n Cancel = '❎', // Cancel or close\n\n // User and Security\n User = '👤', // User or profile\n Group = '👥', // Group or team\n Lock = '🔒', // Secured or locked\n Unlock = '🔓', // Unlocked or accessible\n Help = '❓', // Help or support\n Key = '🔑', // Authentication or key\n Shield = '🛡', // Security or protection\n\n // Tools and Settings\n Gear = '⚙', // Settings or configuration\n Settings = '⚙️', // Settings (alternative)\n Theme = '🎨', // Theme or appearance\n Light = '💡', // Light mode\n Bug = '🐞', // Bug or issue\n Wrench = '🔧', // Maintenance or tools\n Hammer = '🔨', // Build or fix\n\n // Technology and Devices\n Terminal = '💻', // Terminal or command line\n Database = '🗄', // Database or storage\n Server = '🖥', // Server or host\n Cloud = '☁', // Cloud or remote\n Network = '🌐', // Network or connection\n Monitor = '🖥', // Monitor or display\n Printer = '🖨', // Printer or output\n USB = '🔌', // USB or connection\n Speaker = '🔊', // Speaker or audio\n Microphone = '🎙', // Microphone or input\n Camera = '📷', // Camera or video\n Video = '🎥', // Video or media\n Music = '🎵', // Music or audio\n Phone = '📞', // Phone or communication\n\n // Development and Evaluation\n Package = '📦', // Package or bundle\n Plugin = '🔌', // Plugin or extension\n Extension = '🧩', // Extension or component\n Module = '📦', // Module or package\n Evaluate = '🔍', // Evaluate or search\n Variable = '🔧', // Variable or setting\n Script = '📜', // Script or code\n Code = '💾', // Code or file\n\n // Status and Completion\n Logs = '📜', // Logs or history\n Power = '⏻', // On/Off state\n Heart = '❤', // Love or favorite\n Flame = '🔥', // Trending or hot\n Growth = '📈', // Growth or increase\n Decline = '📉', // Decline or decrease\n WarningFilled = '⚠️', // Warning (filled)\n\n // Nature and Weather\n Sun = '☀', // Brightness or day\n Moon = '🌙', // Night or dark mode\n Rain = '🌧', // Rain or bad weather\n Snow = '❄', // Snow or cold\n Lightning = '⚡', // Lightning or danger\n Tree = '🌲', // Nature or environment\n\n // Emotions and Expressions\n Smile = '😊', // Happiness or positive state\n Sad = '😢', // Sadness or negative state\n Angry = '😡', // Anger or frustration\n Clap = '👏', // Applause or celebration\n ThumbsUp = '👍', // Approval or success\n ThumbsDown = '👎', // Disapproval or failure\n\n // Miscellaneous\n Rocket = '🚀', // Launch or deploy\n Globe = '🌍', // Earth or international\n Medal = '🏅', // Achievement or award\n Trophy = '🏆', // Winner or champion\n Flag = '🚩', // Mark or flag\n StarFilled = '⭐', // Highlight or favorite\n StarOutline = '✩', // Alternate star icon\n Fireworks = '🎆', // Celebration\n Balloon = '🎈', // Party or fun\n Gift = '🎁', // Reward or present\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 /**\n * An icon to display for the processor\n */\n icon?: CliIcon | 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 context.process.output(result?.toString());\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","export class CancellablePromise<T> {\n private hasCancelled = false;\n\n private abortController = new AbortController();\n\n constructor(\n private executor: (\n resolve: (value: T) => void,\n reject: (reason?: any) => void,\n ) => void,\n ) {}\n\n public promise: Promise<T> = new Promise<T>((resolve, reject) => {\n this.abortController.signal.onabort = () => {\n reject(new Error('Promise cancelled'));\n };\n\n this.executor(\n (value) => {\n if (!this.hasCancelled) {\n resolve(value);\n }\n },\n (reason) => {\n if (!this.hasCancelled) {\n reject(reason);\n }\n },\n );\n });\n\n cancel() {\n this.hasCancelled = true;\n this.abortController.abort();\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\nexport * from './lib/types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -298,6 +298,45 @@ export interface ICliCommandExecutorService {
298
298
  */
299
299
  unregisterProcessor(processor: ICliCommandProcessor): void;
300
300
  }
301
+ export interface ICliExecutionProcess {
302
+ /**
303
+ * Indicates if the process has exited
304
+ */
305
+ exited?: boolean;
306
+ /**
307
+ * The exit code of the process
308
+ */
309
+ exitCode?: number;
310
+ /**
311
+ * Indicates if the process is running
312
+ */
313
+ running: boolean;
314
+ /**
315
+ * The data of the process
316
+ */
317
+ data: string | undefined;
318
+ /**
319
+ * Exit the process
320
+ * @param code The exit code
321
+ * @returns void
322
+ */
323
+ exit: (code?: number) => void;
324
+ /**
325
+ * Output data from the process
326
+ * @param data The data to output
327
+ */
328
+ output(data: string): void;
329
+ /**
330
+ * Start the process
331
+ * @returns void
332
+ */
333
+ start: () => void;
334
+ /**
335
+ * End the process
336
+ * @returns void
337
+ */
338
+ end: () => void;
339
+ }
301
340
  /**
302
341
  * Represents the context in which a command is executed
303
342
  */
@@ -346,6 +385,15 @@ export interface ICliExecutionContext {
346
385
  * The prompt to use for prompting the user for input
347
386
  */
348
387
  showPrompt: () => void;
388
+ /**
389
+ * Set the current main processor
390
+ * @param processor The processor to set
391
+ */
392
+ setMainProcessor(processor: ICliCommandProcessor): void;
393
+ /**
394
+ * The process to use for exiting the CLI
395
+ */
396
+ process: ICliExecutionProcess;
349
397
  }
350
398
  /**
351
399
  * Represents a data store for storing data associated with commands
@@ -4,6 +4,10 @@ export type CliProcessCommand = {
4
4
  * The command that was entered
5
5
  */
6
6
  command: string;
7
+ /**
8
+ * The data that was entered
9
+ */
10
+ data?: string;
7
11
  /**
8
12
  * The chain of commands that were entered
9
13
  */
@@ -46,7 +50,117 @@ export declare enum CliIcon {
46
50
  CheckIcon = "\u2714",
47
51
  CrossIcon = "\u2718",
48
52
  InfoIcon = "\u2139",
49
- WarningIcon = "\u26A0"
53
+ WarningIcon = "\u26A0",
54
+ QuestionMark = "?",
55
+ Exclamation = "\u2757",
56
+ Ellipsis = "\u2026",
57
+ Dot = "\u2022",
58
+ Bullet = "\u2023",
59
+ ArrowRight = "\u2192",
60
+ ArrowLeft = "\u2190",
61
+ ArrowUp = "\u2191",
62
+ ArrowDown = "\u2193",
63
+ ArrowRightFilled = "\u25B6",
64
+ ArrowLeftFilled = "\u25C0",
65
+ ArrowUpFilled = "\u25B2",
66
+ ArrowDownFilled = "\u25BC",
67
+ DoubleArrowRight = "\u00BB",
68
+ DoubleArrowLeft = "\u00AB",
69
+ Star = "\u2605",
70
+ StarEmpty = "\u2606",
71
+ Plus = "+",
72
+ Minus = "-",
73
+ Progress = "\u23F3",
74
+ Success = "\u2705",
75
+ Failure = "\u274C",
76
+ Clock = "\u23F0",
77
+ Timer = "\u23F1",
78
+ Alarm = "\uD83D\uDD14",
79
+ Calendar = "\uD83D\uDCC5",
80
+ Folder = "\uD83D\uDCC1",
81
+ FolderOpen = "\uD83D\uDCC2",
82
+ File = "\uD83D\uDCC4",
83
+ Archive = "\uD83D\uDDC3",
84
+ Link = "\uD83D\uDD17",
85
+ Chain = "\u26D3",
86
+ Bookmark = "\uD83D\uDD16",
87
+ Edit = "\u270F",
88
+ Trash = "\uD83D\uDDD1",
89
+ Add = "\u2795",
90
+ Remove = "\u2796",
91
+ Reload = "\uD83D\uDD04",
92
+ Save = "\uD83D\uDCBE",
93
+ Undo = "\u21A9",
94
+ Redo = "\u21AA",
95
+ Play = "\u25B6",
96
+ Pause = "\u23F8",
97
+ Stop = "\u23F9",
98
+ Cancel = "\u274E",
99
+ User = "\uD83D\uDC64",
100
+ Group = "\uD83D\uDC65",
101
+ Lock = "\uD83D\uDD12",
102
+ Unlock = "\uD83D\uDD13",
103
+ Help = "\u2753",
104
+ Key = "\uD83D\uDD11",
105
+ Shield = "\uD83D\uDEE1",
106
+ Gear = "\u2699",
107
+ Settings = "\u2699\uFE0F",
108
+ Theme = "\uD83C\uDFA8",
109
+ Light = "\uD83D\uDCA1",
110
+ Bug = "\uD83D\uDC1E",
111
+ Wrench = "\uD83D\uDD27",
112
+ Hammer = "\uD83D\uDD28",
113
+ Terminal = "\uD83D\uDCBB",
114
+ Database = "\uD83D\uDDC4",
115
+ Server = "\uD83D\uDDA5",
116
+ Cloud = "\u2601",
117
+ Network = "\uD83C\uDF10",
118
+ Monitor = "\uD83D\uDDA5",
119
+ Printer = "\uD83D\uDDA8",
120
+ USB = "\uD83D\uDD0C",
121
+ Speaker = "\uD83D\uDD0A",
122
+ Microphone = "\uD83C\uDF99",
123
+ Camera = "\uD83D\uDCF7",
124
+ Video = "\uD83C\uDFA5",
125
+ Music = "\uD83C\uDFB5",
126
+ Phone = "\uD83D\uDCDE",
127
+ Package = "\uD83D\uDCE6",
128
+ Plugin = "\uD83D\uDD0C",
129
+ Extension = "\uD83E\uDDE9",
130
+ Module = "\uD83D\uDCE6",
131
+ Evaluate = "\uD83D\uDD0D",
132
+ Variable = "\uD83D\uDD27",
133
+ Script = "\uD83D\uDCDC",
134
+ Code = "\uD83D\uDCBE",
135
+ Logs = "\uD83D\uDCDC",
136
+ Power = "\u23FB",
137
+ Heart = "\u2764",
138
+ Flame = "\uD83D\uDD25",
139
+ Growth = "\uD83D\uDCC8",
140
+ Decline = "\uD83D\uDCC9",
141
+ WarningFilled = "\u26A0\uFE0F",
142
+ Sun = "\u2600",
143
+ Moon = "\uD83C\uDF19",
144
+ Rain = "\uD83C\uDF27",
145
+ Snow = "\u2744",
146
+ Lightning = "\u26A1",
147
+ Tree = "\uD83C\uDF32",
148
+ Smile = "\uD83D\uDE0A",
149
+ Sad = "\uD83D\uDE22",
150
+ Angry = "\uD83D\uDE21",
151
+ Clap = "\uD83D\uDC4F",
152
+ ThumbsUp = "\uD83D\uDC4D",
153
+ ThumbsDown = "\uD83D\uDC4E",
154
+ Rocket = "\uD83D\uDE80",
155
+ Globe = "\uD83C\uDF0D",
156
+ Medal = "\uD83C\uDFC5",
157
+ Trophy = "\uD83C\uDFC6",
158
+ Flag = "\uD83D\uDEA9",
159
+ StarFilled = "\u2B50",
160
+ StarOutline = "\u2729",
161
+ Fireworks = "\uD83C\uDF86",
162
+ Balloon = "\uD83C\uDF88",
163
+ Gift = "\uD83C\uDF81"
50
164
  }
51
165
  export type ICliUser = {
52
166
  /**
@@ -149,6 +263,10 @@ export type CliProcessorMetadata = Record<string, any> & {
149
263
  * The module the processor belongs to
150
264
  */
151
265
  module?: string;
266
+ /**
267
+ * An icon to display for the processor
268
+ */
269
+ icon?: CliIcon | string;
152
270
  };
153
271
  export declare const enums: {
154
272
  CliForegroundColor: typeof CliForegroundColor;
@@ -0,0 +1,8 @@
1
+ export declare class CancellablePromise<T> {
2
+ private executor;
3
+ private hasCancelled;
4
+ private abortController;
5
+ constructor(executor: (resolve: (value: T) => void, reject: (reason?: any) => void) => void);
6
+ promise: Promise<T>;
7
+ cancel(): void;
8
+ }
@@ -0,0 +1 @@
1
+ export * from './CancellablePromise';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qodalis/cli-core",
3
- "version": "0.0.7",
3
+ "version": "0.0.8",
4
4
  "description": "Core Angular CLI for @qodalis extensions.",
5
5
  "author": "Nicolae Lupei, Qodalis Solutions",
6
6
  "license": "MIT",
package/public-api.d.ts CHANGED
@@ -3,3 +3,4 @@ export * from './lib/interfaces';
3
3
  export * from './lib/modules';
4
4
  export * from './lib/utils';
5
5
  export * from './lib/constants';
6
+ export * from './lib/types';