@qodalis/cli-todo 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,22 +22,22 @@ export class CliTodoCommandProcessor {
22
22
  }
23
23
  writeDescription(context) {
24
24
  context.writer.writeln(this.description);
25
- context.writer.writeln('');
25
+ context.writer.writeln();
26
26
  context.writer.writeln('Usage:');
27
27
  context.writer.writeln(' todo <command> [options]');
28
- context.writer.writeln('');
28
+ context.writer.writeln();
29
29
  context.writer.writeln('Commands:');
30
30
  context.writer.writeln(' ls List all TODO items');
31
31
  context.writer.writeln(' add <text> Add a new TODO item with the given text');
32
32
  context.writer.writeln(' rm <id> Remove a TODO item by its ID');
33
33
  context.writer.writeln(' complete <id> Mark a TODO item as completed by its ID');
34
- context.writer.writeln('');
34
+ context.writer.writeln();
35
35
  context.writer.writeln('Examples:');
36
36
  context.writer.writeln(' todo add Buy milk');
37
37
  context.writer.writeln(' todo ls');
38
38
  context.writer.writeln(' todo complete 1');
39
39
  context.writer.writeln(' todo rm 2');
40
- context.writer.writeln('');
40
+ context.writer.writeln();
41
41
  }
42
42
  async initialize(context) {
43
43
  this.todos = this.loadFromStorage();
@@ -65,7 +65,7 @@ export class CliTodoCommandProcessor {
65
65
  return;
66
66
  }
67
67
  this.todos.forEach((todo) => {
68
- context.writer.writeln(`[${todo.completed ? context.writer.wrapInColor(CliIcon.CheckIcon, CliForegroundColor.Green) : ' '}] #${todo.id} - ${todo.completed ? this.lineThroughText(todo.text) : todo.text}`);
68
+ context.writer.writeln(`[${todo.completed ? context.writer.wrapInColor(CliIcon.CheckIcon, CliForegroundColor.Green) : ' '}] #${todo.id} - ${todo.text}`);
69
69
  });
70
70
  context.process.output(JSON.stringify(this.todos));
71
71
  },
@@ -164,4 +164,4 @@ export class CliTodoCommandProcessor {
164
164
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliTodoCommandProcessor, decorators: [{
165
165
  type: Injectable
166
166
  }], ctorParameters: function () { return []; } });
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXRvZG8tY29tbWFuZC1wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90b2RvL3NyYy9saWIvcHJvY2Vzc29ycy9jbGktdG9kby1jb21tYW5kLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsT0FBTyxFQUdQLG9CQUFvQixHQUd2QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBRzdDLE1BQU0sT0FBTyx1QkFBdUI7SUFzQmhDO1FBckJBLFlBQU8sR0FBRyxNQUFNLENBQUM7UUFFakIsZ0JBQVcsR0FDUCwySEFBMkgsQ0FBQztRQUVoSSxXQUFNLEdBQUcsb0JBQW9CLENBQUM7UUFFOUIsWUFBTyxHQUFHLGVBQWUsQ0FBQztRQUUxQixlQUFVLEdBQXdDLEVBQUUsQ0FBQztRQUVyRCxhQUFRLEdBQXNDO1lBQzFDLElBQUksRUFBRSxJQUFJO1NBQ2IsQ0FBQztRQUVNLFVBQUssR0FBdUQsRUFBRSxDQUFDO1FBRS9ELFdBQU0sR0FBRyxDQUFDLENBQUM7UUFFWCxlQUFVLEdBQUcsWUFBWSxDQUFDO1FBRzlCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUNoQixPQUEwQixFQUMxQixPQUE2QjtRQUU3QixPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQTZCO1FBQzFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFZLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8s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Q0FBQztvQkFDdEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUNyQixPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FDdkIsNEJBQTRCLEVBQUUsZ0JBQWdCLENBQ2pELENBQUM7Z0JBQ04sQ0FBQzthQUNKO1NBQ0osQ0FBQztJQUNOLENBQUM7SUFFTyxlQUFlO1FBS25CLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVPLGFBQWE7UUFDakIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQzsrR0FwTlEsdUJBQXVCO21IQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENsaUZvcmVncm91bmRDb2xvcixcbiAgICBDbGlJY29uLFxuICAgIENsaVByb2Nlc3NDb21tYW5kLFxuICAgIENsaVByb2Nlc3Nvck1ldGFkYXRhLFxuICAgIERlZmF1bHRMaWJyYXJ5QXV0aG9yLFxuICAgIElDbGlDb21tYW5kUHJvY2Vzc29yLFxuICAgIElDbGlFeGVjdXRpb25Db250ZXh0LFxufSBmcm9tICdAcW9kYWxpcy9jbGktY29yZSc7XG5pbXBvcnQgeyBMSUJSQVJZX1ZFUlNJT04gfSBmcm9tICcuLi92ZXJzaW9uJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENsaVRvZG9Db21tYW5kUHJvY2Vzc29yIGltcGxlbWVudHMgSUNsaUNvbW1hbmRQcm9jZXNzb3Ige1xuICAgIGNvbW1hbmQgPSAndG9kbyc7XG5cbiAgICBkZXNjcmlwdGlvbiA9XG4gICAgICAgICdBIGNvbW1hbmQtbGluZSB0b29sIGZvciBtYW5hZ2luZyB5b3VyIHRhc2tzIGVmZmljaWVudGx5LiBBZGQsIGxpc3QsIGNvbXBsZXRlLCBhbmQgcmVtb3ZlIFRPRE8gaXRlbXMgd2l0aCBzaW1wbGUgY29tbWFuZHMuJztcblxuICAgIGF1dGhvciA9IERlZmF1bHRMaWJyYXJ5QXV0aG9yO1xuXG4gICAgdmVyc2lvbiA9IExJQlJBUllfVkVSU0lPTjtcblxuICAgIHByb2Nlc3NvcnM/OiBJQ2xpQ29tbWFuZFByb2Nlc3NvcltdIHwgdW5kZWZpbmVkID0gW107XG5cbiAgICBtZXRhZGF0YT86IENsaVByb2Nlc3Nvck1ldGFkYXRhIHwgdW5kZWZpbmVkID0ge1xuICAgICAgICBpY29uOiAn8J+TnScsXG4gICAgfTtcblxuICAgIHByaXZhdGUgdG9kb3M6IHsgaWQ6IG51bWJlcjsgdGV4dDogc3RyaW5nOyBjb21wbGV0ZWQ6IGJvb2xlYW4gfVtdID0gW107XG5cbiAgICBwcml2YXRlIG5leHRJZCA9IDE7XG5cbiAgICBwcml2YXRlIHN0b3JhZ2VLZXkgPSAndG9kby1pdGVtcyc7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlclN1YlByb2Nlc3NvcnMoKTtcbiAgICB9XG5cbiAgICBhc3luYyBwcm9jZXNzQ29tbWFuZChcbiAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb250ZXh0LmV4ZWN1dG9yLnNob3dIZWxwKGNvbW1hbmQsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHdyaXRlRGVzY3JpcHRpb24oY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpOiB2b2lkIHtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbih0aGlzLmRlc2NyaXB0aW9uISk7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJycpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCdVc2FnZTonKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignICB0b2RvIDxjb21tYW5kPiBbb3B0aW9uc10nKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignJyk7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJ0NvbW1hbmRzOicpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCcgIGxzICAgICAgICAgICAgICAgTGlzdCBhbGwgVE9ETyBpdGVtcycpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgJyAgYWRkIDx0ZXh0PiAgICAgICBBZGQgYSBuZXcgVE9ETyBpdGVtIHdpdGggdGhlIGdpdmVuIHRleHQnLFxuICAgICAgICApO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgJyAgcm0gPGlkPiAgICAgICAgICBSZW1vdmUgYSBUT0RPIGl0ZW0gYnkgaXRzIElEJyxcbiAgICAgICAgKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICcgIGNvbXBsZXRlIDxpZD4gICAgTWFyayBhIFRPRE8gaXRlbSBhcyBjb21wbGV0ZWQgYnkgaXRzIElEJyxcbiAgICAgICAgKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignJyk7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJ0V4YW1wbGVzOicpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCcgIHRvZG8gYWRkIEJ1eSBtaWxrJyk7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJyAgdG9kbyBscycpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCcgIHRvZG8gY29tcGxldGUgMScpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCcgIHRvZG8gcm0gMicpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCcnKTtcbiAgICB9XG5cbiAgICBhc3luYyBpbml0aWFsaXplKGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMudG9kb3MgPSB0aGlzLmxvYWRGcm9tU3RvcmFnZSgpO1xuICAgICAgICB0aGlzLm5leHRJZCA9XG4gICAgICAgICAgICB0aGlzLnRvZG9zLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgICA/IE1hdGgubWF4KC4uLnRoaXMudG9kb3MubWFwKCh0KSA9PiB0LmlkKSkgKyAxXG4gICAgICAgICAgICAgICAgOiAxO1xuICAgIH1cblxuICAgIHByaXZhdGUgbGluZVRocm91Z2hUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0ZXh0XG4gICAgICAgICAgICAuc3BsaXQoJycpXG4gICAgICAgICAgICAubWFwKChjaGFyKSA9PiBjaGFyICsgJ1xcdTAzMzYnKVxuICAgICAgICAgICAgLmpvaW4oJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJTdWJQcm9jZXNzb3JzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2Nlc3NvcnMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ2xzJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0xpc3QgYWxsIFRPRE8gaXRlbXMnLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NDb21tYW5kOiBhc3luYyAoXywgY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50b2Rvcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlV2FybmluZygnTm8gVE9ETyBpdGVtcyBmb3VuZC4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZSBcInRvZG8gYWRkIDx0ZXh0PlwiIHRvIGFkZCBhIG5ldyBUT0RPIGl0ZW0uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnByb2Nlc3Mub3V0cHV0KEpTT04uc3RyaW5naWZ5KHRoaXMudG9kb3MpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZG9zLmZvckVhY2goKHRvZG8pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYFske3RvZG8uY29tcGxldGVkID8gY29udGV4dC53cml0ZXIud3JhcEluQ29sb3IoQ2xpSWNvbi5DaGVja0ljb24sIENsaUZvcmVncm91bmRDb2xvci5HcmVlbikgOiAnICd9XSAjJHt0b2RvLmlkfSAtICR7dG9kby5jb21wbGV0ZWQgPyB0aGlzLmxpbmVUaHJvdWdoVGV4dCh0b2RvLnRleHQpIDogdG9kby50ZXh0fWAsXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnByb2Nlc3Mub3V0cHV0KEpTT04uc3RyaW5naWZ5KHRoaXMudG9kb3MpKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAnYWRkJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0FkZCBhIG5ldyBUT0RPIGl0ZW0nLFxuICAgICAgICAgICAgICAgIGFsbG93VW5saXN0ZWRDb21tYW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NDb21tYW5kOiBhc3luYyAoY29tbWFuZCwgY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gY29tbWFuZC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZUVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQbGVhc2UgcHJvdmlkZSBhIFRPRE8gZGVzY3JpcHRpb24uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdJdGVtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHRoaXMubmV4dElkKyssXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZG9zLnB1c2gobmV3SXRlbSk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zYXZlVG9TdG9yYWdlKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVTdWNjZXNzKGBBZGRlZCBUT0RPOiBcIiR7dGV4dH1cImApO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQucHJvY2Vzcy5vdXRwdXQobmV3SXRlbS5pZC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAncm0nLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUmVtb3ZlIGEgVE9ETyBpdGVtIGJ5IElEJyxcbiAgICAgICAgICAgICAgICBhbGxvd1VubGlzdGVkQ29tbWFuZHM6IHRydWUsXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUmVtb3ZlIGFsbCBUT0RPIGl0ZW1zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ2EnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NDb21tYW5kOiBhc3luYyAoY29tbWFuZCwgY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29tbWFuZC5hcmdzWydhbGwnXSB8fCBjb21tYW5kLmFyZ3NbJ2EnXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2RvcyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zYXZlVG9TdG9yYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZVN1Y2Nlc3MoJ1JlbW92ZWQgYWxsIFRPRE8gaXRlbXMuJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpZCA9IHBhcnNlSW50KGNvbW1hbmQudmFsdWUhLCAxMCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc05hTihpZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSBwcm92aWRlIGEgdmFsaWQgVE9ETyBJRC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMudG9kb3MuZmluZEluZGV4KFxuICAgICAgICAgICAgICAgICAgICAgICAgKHRvZG8pID0+IHRvZG8uaWQgPT09IGlkLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZUluZm8oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYFRPRE8gaXRlbSB3aXRoIElEICR7aWR9IG5vdCBmb3VuZC5gLFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZG9zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2F2ZVRvU3RvcmFnZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZVN1Y2Nlc3MoXG4gICAgICAgICAgICAgICAgICAgICAgICBgUmVtb3ZlZCBUT0RPIGl0ZW0gd2l0aCBJRCAke2lkfS5gLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdjb21wbGV0ZScsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdNYXJrIGEgVE9ETyBpdGVtIGFzIGNvbXBsZXRlZCBieSBJRCcsXG4gICAgICAgICAgICAgICAgYWxsb3dVbmxpc3RlZENvbW1hbmRzOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbHVlUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChjb21tYW5kLCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlkID0gcGFyc2VJbnQoY29tbWFuZC52YWx1ZSB8fCAnJywgMTApO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNOYU4oaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIFRPRE8gSUQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9kbyA9IHRoaXMudG9kb3MuZmluZCgodG9kbykgPT4gdG9kby5pZCA9PT0gaWQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRvZG8pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYFRPRE8gaXRlbSB3aXRoIElEICR7aWR9IG5vdCBmb3VuZC5gLFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0b2RvLmNvbXBsZXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2F2ZVRvU3RvcmFnZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZVN1Y2Nlc3MoXG4gICAgICAgICAgICAgICAgICAgICAgICBgTWFya2VkIFRPRE8gaXRlbSB3aXRoIElEICR7aWR9IGFzIGNvbXBsZXRlZC5gLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZEZyb21TdG9yYWdlKCk6IHtcbiAgICAgICAgaWQ6IG51bWJlcjtcbiAgICAgICAgdGV4dDogc3RyaW5nO1xuICAgICAgICBjb21wbGV0ZWQ6IGJvb2xlYW47XG4gICAgfVtdIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleSk7XG4gICAgICAgIHJldHVybiBkYXRhID8gSlNPTi5wYXJzZShkYXRhKSA6IFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2F2ZVRvU3RvcmFnZSgpOiB2b2lkIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdG9yYWdlS2V5LCBKU09OLnN0cmluZ2lmeSh0aGlzLnRvZG9zKSk7XG4gICAgfVxufVxuIl19
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXRvZG8tY29tbWFuZC1wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90b2RvL3NyYy9saWIvcHJvY2Vzc29ycy9jbGktdG9kby1jb21tYW5kLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsT0FBTyxFQUdQLG9CQUFvQixHQUd2QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBRzdDLE1BQU0sT0FBTyx1QkFBdUI7SUFzQmhDO1FBckJBLFlBQU8sR0FBRyxNQUFNLENBQUM7UUFFakIsZ0JBQVcsR0FDUCwySEFBMkgsQ0FBQztRQUVoSSxXQUFNLEdBQUcsb0JBQW9CLENBQUM7UUFFOUIsWUFBTyxHQUFHLGVBQWUsQ0FBQztRQUUxQixlQUFVLEdBQXdDLEVBQUUsQ0FBQztRQUVyRCxhQUFRLEdBQXNDO1lBQzFDLElBQUksRUFBRSxJQUFJO1NBQ2IsQ0FBQztRQUVNLFVBQUssR0FBdUQsRUFBRSxDQUFDO1FBRS9ELFdBQU0sR0FBRyxDQUFDLENBQUM7UUFFWCxlQUFVLEdBQUcsWUFBWSxDQUFDO1FBRzlCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUNoQixPQUEwQixFQUMxQixPQUE2QjtRQUU3QixPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQTZCO1FBQzFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFZLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8s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LENBQUM7SUFDTixDQUFDO0lBRU8sZUFBZTtRQUtuQixNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRCxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTyxhQUFhO1FBQ2pCLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7K0dBcE5RLHVCQUF1QjttSEFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDbGlGb3JlZ3JvdW5kQ29sb3IsXG4gICAgQ2xpSWNvbixcbiAgICBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICBDbGlQcm9jZXNzb3JNZXRhZGF0YSxcbiAgICBEZWZhdWx0TGlicmFyeUF1dGhvcixcbiAgICBJQ2xpQ29tbWFuZFByb2Nlc3NvcixcbiAgICBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbn0gZnJvbSAnQHFvZGFsaXMvY2xpLWNvcmUnO1xuaW1wb3J0IHsgTElCUkFSWV9WRVJTSU9OIH0gZnJvbSAnLi4vdmVyc2lvbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDbGlUb2RvQ29tbWFuZFByb2Nlc3NvciBpbXBsZW1lbnRzIElDbGlDb21tYW5kUHJvY2Vzc29yIHtcbiAgICBjb21tYW5kID0gJ3RvZG8nO1xuXG4gICAgZGVzY3JpcHRpb24gPVxuICAgICAgICAnQSBjb21tYW5kLWxpbmUgdG9vbCBmb3IgbWFuYWdpbmcgeW91ciB0YXNrcyBlZmZpY2llbnRseS4gQWRkLCBsaXN0LCBjb21wbGV0ZSwgYW5kIHJlbW92ZSBUT0RPIGl0ZW1zIHdpdGggc2ltcGxlIGNvbW1hbmRzLic7XG5cbiAgICBhdXRob3IgPSBEZWZhdWx0TGlicmFyeUF1dGhvcjtcblxuICAgIHZlcnNpb24gPSBMSUJSQVJZX1ZFUlNJT047XG5cbiAgICBwcm9jZXNzb3JzPzogSUNsaUNvbW1hbmRQcm9jZXNzb3JbXSB8IHVuZGVmaW5lZCA9IFtdO1xuXG4gICAgbWV0YWRhdGE/OiBDbGlQcm9jZXNzb3JNZXRhZGF0YSB8IHVuZGVmaW5lZCA9IHtcbiAgICAgICAgaWNvbjogJ/Cfk50nLFxuICAgIH07XG5cbiAgICBwcml2YXRlIHRvZG9zOiB7IGlkOiBudW1iZXI7IHRleHQ6IHN0cmluZzsgY29tcGxldGVkOiBib29sZWFuIH1bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBuZXh0SWQgPSAxO1xuXG4gICAgcHJpdmF0ZSBzdG9yYWdlS2V5ID0gJ3RvZG8taXRlbXMnO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJTdWJQcm9jZXNzb3JzKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgcHJvY2Vzc0NvbW1hbmQoXG4gICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29udGV4dC5leGVjdXRvci5zaG93SGVscChjb21tYW5kLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICB3cml0ZURlc2NyaXB0aW9uKGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0KTogdm9pZCB7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4odGhpcy5kZXNjcmlwdGlvbiEpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCk7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJ1VzYWdlOicpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCcgIHRvZG8gPGNvbW1hbmQ+IFtvcHRpb25zXScpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCk7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJ0NvbW1hbmRzOicpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCcgIGxzICAgICAgICAgICAgICAgTGlzdCBhbGwgVE9ETyBpdGVtcycpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgJyAgYWRkIDx0ZXh0PiAgICAgICBBZGQgYSBuZXcgVE9ETyBpdGVtIHdpdGggdGhlIGdpdmVuIHRleHQnLFxuICAgICAgICApO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgJyAgcm0gPGlkPiAgICAgICAgICBSZW1vdmUgYSBUT0RPIGl0ZW0gYnkgaXRzIElEJyxcbiAgICAgICAgKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICcgIGNvbXBsZXRlIDxpZD4gICAgTWFyayBhIFRPRE8gaXRlbSBhcyBjb21wbGV0ZWQgYnkgaXRzIElEJyxcbiAgICAgICAgKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbigpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCdFeGFtcGxlczonKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignICB0b2RvIGFkZCBCdXkgbWlsaycpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCcgIHRvZG8gbHMnKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignICB0b2RvIGNvbXBsZXRlIDEnKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignICB0b2RvIHJtIDInKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbigpO1xuICAgIH1cblxuICAgIGFzeW5jIGluaXRpYWxpemUoY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy50b2RvcyA9IHRoaXMubG9hZEZyb21TdG9yYWdlKCk7XG4gICAgICAgIHRoaXMubmV4dElkID1cbiAgICAgICAgICAgIHRoaXMudG9kb3MubGVuZ3RoID4gMFxuICAgICAgICAgICAgICAgID8gTWF0aC5tYXgoLi4udGhpcy50b2Rvcy5tYXAoKHQpID0+IHQuaWQpKSArIDFcbiAgICAgICAgICAgICAgICA6IDE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsaW5lVGhyb3VnaFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRleHRcbiAgICAgICAgICAgIC5zcGxpdCgnJylcbiAgICAgICAgICAgIC5tYXAoKGNoYXIpID0+IGNoYXIgKyAnXFx1MDMzNicpXG4gICAgICAgICAgICAuam9pbignJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlclN1YlByb2Nlc3NvcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvY2Vzc29ycyA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAnbHMnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTGlzdCBhbGwgVE9ETyBpdGVtcycsXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChfLCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRvZG9zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVXYXJuaW5nKCdObyBUT0RPIGl0ZW1zIGZvdW5kLicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVXNlIFwidG9kbyBhZGQgPHRleHQ+XCIgdG8gYWRkIGEgbmV3IFRPRE8gaXRlbS4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQucHJvY2Vzcy5vdXRwdXQoSlNPTi5zdHJpbmdpZnkodGhpcy50b2RvcykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9kb3MuZm9yRWFjaCgodG9kbykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgWyR7dG9kby5jb21wbGV0ZWQgPyBjb250ZXh0LndyaXRlci53cmFwSW5Db2xvcihDbGlJY29uLkNoZWNrSWNvbiwgQ2xpRm9yZWdyb3VuZENvbG9yLkdyZWVuKSA6ICcgJ31dICMke3RvZG8uaWR9IC0gJHt0b2RvLnRleHR9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQucHJvY2Vzcy5vdXRwdXQoSlNPTi5zdHJpbmdpZnkodGhpcy50b2RvcykpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdhZGQnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQWRkIGEgbmV3IFRPRE8gaXRlbScsXG4gICAgICAgICAgICAgICAgYWxsb3dVbmxpc3RlZENvbW1hbmRzOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbHVlUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChjb21tYW5kLCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRleHQgPSBjb21tYW5kLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSBwcm92aWRlIGEgVE9ETyBkZXNjcmlwdGlvbi4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0l0ZW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogdGhpcy5uZXh0SWQrKyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9kb3MucHVzaChuZXdJdGVtKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNhdmVUb1N0b3JhZ2UoKTtcblxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZVN1Y2Nlc3MoYEFkZGVkIFRPRE86IFwiJHt0ZXh0fVwiYCk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5wcm9jZXNzLm91dHB1dChuZXdJdGVtLmlkLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdybScsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZW1vdmUgYSBUT0RPIGl0ZW0gYnkgSUQnLFxuICAgICAgICAgICAgICAgIGFsbG93VW5saXN0ZWRDb21tYW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdhbGwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZW1vdmUgYWxsIFRPRE8gaXRlbXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnYSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChjb21tYW5kLCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21tYW5kLmFyZ3NbJ2FsbCddIHx8IGNvbW1hbmQuYXJnc1snYSddKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZG9zID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNhdmVUb1N0b3JhZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlU3VjY2VzcygnUmVtb3ZlZCBhbGwgVE9ETyBpdGVtcy4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlkID0gcGFyc2VJbnQoY29tbWFuZC52YWx1ZSEsIDEwKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmFOKGlkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIHByb3ZpZGUgYSB2YWxpZCBUT0RPIElELicsXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy50b2Rvcy5maW5kSW5kZXgoXG4gICAgICAgICAgICAgICAgICAgICAgICAodG9kbykgPT4gdG9kby5pZCA9PT0gaWQsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlSW5mbyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgVE9ETyBpdGVtIHdpdGggSUQgJHtpZH0gbm90IGZvdW5kLmAsXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9kb3Muc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zYXZlVG9TdG9yYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlU3VjY2VzcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGBSZW1vdmVkIFRPRE8gaXRlbSB3aXRoIElEICR7aWR9LmAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ2NvbXBsZXRlJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ01hcmsgYSBUT0RPIGl0ZW0gYXMgY29tcGxldGVkIGJ5IElEJyxcbiAgICAgICAgICAgICAgICBhbGxvd1VubGlzdGVkQ29tbWFuZHM6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaWQgPSBwYXJzZUludChjb21tYW5kLnZhbHVlIHx8ICcnLCAxMCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc05hTihpZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSBwcm92aWRlIGEgdmFsaWQgVE9ETyBJRC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2RvID0gdGhpcy50b2Rvcy5maW5kKCh0b2RvKSA9PiB0b2RvLmlkID09PSBpZCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdG9kbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgVE9ETyBpdGVtIHdpdGggSUQgJHtpZH0gbm90IGZvdW5kLmAsXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRvZG8uY29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zYXZlVG9TdG9yYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlU3VjY2VzcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGBNYXJrZWQgVE9ETyBpdGVtIHdpdGggSUQgJHtpZH0gYXMgY29tcGxldGVkLmAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkRnJvbVN0b3JhZ2UoKToge1xuICAgICAgICBpZDogbnVtYmVyO1xuICAgICAgICB0ZXh0OiBzdHJpbmc7XG4gICAgICAgIGNvbXBsZXRlZDogYm9vbGVhbjtcbiAgICB9W10ge1xuICAgICAgICBjb25zdCBkYXRhID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcbiAgICAgICAgcmV0dXJuIGRhdGEgPyBKU09OLnBhcnNlKGRhdGEpIDogW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzYXZlVG9TdG9yYWdlKCk6IHZvaWQge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXksIEpTT04uc3RyaW5naWZ5KHRoaXMudG9kb3MpKTtcbiAgICB9XG59XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  // Automatically generated during build
2
- export const LIBRARY_VERSION = '0.0.2';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvZG8vc3JjL2xpYi92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNFLHVDQUF1QztBQUN2QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG4gIC8vIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGR1cmluZyBidWlsZFxuICBleHBvcnQgY29uc3QgTElCUkFSWV9WRVJTSU9OID0gJzAuMC4yJztcbiAgIl19
2
+ export const LIBRARY_VERSION = '0.0.3';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvZG8vc3JjL2xpYi92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLHVDQUF1QztBQUN2QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG4vLyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBkdXJpbmcgYnVpbGRcbmV4cG9ydCBjb25zdCBMSUJSQVJZX1ZFUlNJT04gPSAnMC4wLjMnO1xuICAiXX0=
@@ -4,7 +4,7 @@ import { resolveCommandProcessorProvider } from '@qodalis/angular-cli';
4
4
  import { DefaultLibraryAuthor, CliIcon, CliForegroundColor } from '@qodalis/cli-core';
5
5
 
6
6
  // Automatically generated during build
7
- const LIBRARY_VERSION = '0.0.2';
7
+ const LIBRARY_VERSION = '0.0.3';
8
8
 
9
9
  class CliTodoCommandProcessor {
10
10
  constructor() {
@@ -26,22 +26,22 @@ class CliTodoCommandProcessor {
26
26
  }
27
27
  writeDescription(context) {
28
28
  context.writer.writeln(this.description);
29
- context.writer.writeln('');
29
+ context.writer.writeln();
30
30
  context.writer.writeln('Usage:');
31
31
  context.writer.writeln(' todo <command> [options]');
32
- context.writer.writeln('');
32
+ context.writer.writeln();
33
33
  context.writer.writeln('Commands:');
34
34
  context.writer.writeln(' ls List all TODO items');
35
35
  context.writer.writeln(' add <text> Add a new TODO item with the given text');
36
36
  context.writer.writeln(' rm <id> Remove a TODO item by its ID');
37
37
  context.writer.writeln(' complete <id> Mark a TODO item as completed by its ID');
38
- context.writer.writeln('');
38
+ context.writer.writeln();
39
39
  context.writer.writeln('Examples:');
40
40
  context.writer.writeln(' todo add Buy milk');
41
41
  context.writer.writeln(' todo ls');
42
42
  context.writer.writeln(' todo complete 1');
43
43
  context.writer.writeln(' todo rm 2');
44
- context.writer.writeln('');
44
+ context.writer.writeln();
45
45
  }
46
46
  async initialize(context) {
47
47
  this.todos = this.loadFromStorage();
@@ -69,7 +69,7 @@ class CliTodoCommandProcessor {
69
69
  return;
70
70
  }
71
71
  this.todos.forEach((todo) => {
72
- context.writer.writeln(`[${todo.completed ? context.writer.wrapInColor(CliIcon.CheckIcon, CliForegroundColor.Green) : ' '}] #${todo.id} - ${todo.completed ? this.lineThroughText(todo.text) : todo.text}`);
72
+ context.writer.writeln(`[${todo.completed ? context.writer.wrapInColor(CliIcon.CheckIcon, CliForegroundColor.Green) : ' '}] #${todo.id} - ${todo.text}`);
73
73
  });
74
74
  context.process.output(JSON.stringify(this.todos));
75
75
  },
@@ -1 +1 @@
1
- {"version":3,"file":"qodalis-cli-todo.mjs","sources":["../../../projects/todo/src/lib/version.ts","../../../projects/todo/src/lib/processors/cli-todo-command-processor.ts","../../../projects/todo/src/lib/cli-todo.module.ts","../../../projects/todo/src/public-api.ts","../../../projects/todo/src/qodalis-cli-todo.ts"],"sourcesContent":["\n // Automatically generated during build\n export const LIBRARY_VERSION = '0.0.2';\n ","import { Injectable } from '@angular/core';\nimport {\n CliForegroundColor,\n CliIcon,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliExecutionContext,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\n@Injectable()\nexport class CliTodoCommandProcessor implements ICliCommandProcessor {\n command = 'todo';\n\n description =\n 'A command-line tool for managing your tasks efficiently. Add, list, complete, and remove TODO items with simple commands.';\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n processors?: ICliCommandProcessor[] | undefined = [];\n\n metadata?: CliProcessorMetadata | undefined = {\n icon: '📝',\n };\n\n private todos: { id: number; text: string; completed: boolean }[] = [];\n\n private nextId = 1;\n\n private storageKey = 'todo-items';\n\n constructor() {\n this.registerSubProcessors();\n }\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n context.executor.showHelp(command, context);\n }\n\n writeDescription(context: ICliExecutionContext): void {\n context.writer.writeln(this.description!);\n context.writer.writeln('');\n context.writer.writeln('Usage:');\n context.writer.writeln(' todo <command> [options]');\n context.writer.writeln('');\n context.writer.writeln('Commands:');\n context.writer.writeln(' ls List all TODO items');\n context.writer.writeln(\n ' add <text> Add a new TODO item with the given text',\n );\n context.writer.writeln(\n ' rm <id> Remove a TODO item by its ID',\n );\n context.writer.writeln(\n ' complete <id> Mark a TODO item as completed by its ID',\n );\n context.writer.writeln('');\n context.writer.writeln('Examples:');\n context.writer.writeln(' todo add Buy milk');\n context.writer.writeln(' todo ls');\n context.writer.writeln(' todo complete 1');\n context.writer.writeln(' todo rm 2');\n context.writer.writeln('');\n }\n\n async initialize(context: ICliExecutionContext): Promise<void> {\n this.todos = this.loadFromStorage();\n this.nextId =\n this.todos.length > 0\n ? Math.max(...this.todos.map((t) => t.id)) + 1\n : 1;\n }\n\n private lineThroughText(text: string): string {\n return text\n .split('')\n .map((char) => char + '\\u0336')\n .join('');\n }\n\n private registerSubProcessors(): void {\n this.processors = [\n {\n command: 'ls',\n description: 'List all TODO items',\n processCommand: async (_, context) => {\n if (this.todos.length === 0) {\n context.writer.writeWarning('No TODO items found.');\n context.writer.writeln(\n 'Use \"todo add <text>\" to add a new TODO item.',\n );\n context.process.output(JSON.stringify(this.todos));\n return;\n }\n this.todos.forEach((todo) => {\n context.writer.writeln(\n `[${todo.completed ? context.writer.wrapInColor(CliIcon.CheckIcon, CliForegroundColor.Green) : ' '}] #${todo.id} - ${todo.completed ? this.lineThroughText(todo.text) : todo.text}`,\n );\n });\n\n context.process.output(JSON.stringify(this.todos));\n },\n },\n {\n command: 'add',\n description: 'Add a new TODO item',\n allowUnlistedCommands: true,\n valueRequired: true,\n processCommand: async (command, context) => {\n const text = command.value;\n if (!text) {\n context.writer.writeError(\n 'Please provide a TODO description.',\n );\n return;\n }\n\n const newItem = {\n id: this.nextId++,\n text,\n completed: false,\n };\n\n this.todos.push(newItem);\n\n this.saveToStorage();\n\n context.writer.writeSuccess(`Added TODO: \"${text}\"`);\n\n context.process.output(newItem.id.toString());\n },\n },\n {\n command: 'rm',\n description: 'Remove a TODO item by ID',\n allowUnlistedCommands: true,\n parameters: [\n {\n name: 'all',\n description: 'Remove all TODO items',\n type: 'boolean',\n defaultValue: false,\n aliases: ['a'],\n required: false,\n },\n ],\n processCommand: async (command, context) => {\n if (command.args['all'] || command.args['a']) {\n this.todos = [];\n this.saveToStorage();\n context.writer.writeSuccess('Removed all TODO items.');\n return;\n }\n\n const id = parseInt(command.value!, 10);\n if (isNaN(id)) {\n context.writer.writeError(\n 'Please provide a valid TODO ID.',\n );\n return;\n }\n const index = this.todos.findIndex(\n (todo) => todo.id === id,\n );\n if (index === -1) {\n context.writer.writeInfo(\n `TODO item with ID ${id} not found.`,\n );\n return;\n }\n this.todos.splice(index, 1);\n this.saveToStorage();\n context.writer.writeSuccess(\n `Removed TODO item with ID ${id}.`,\n );\n },\n },\n {\n command: 'complete',\n description: 'Mark a TODO item as completed by ID',\n allowUnlistedCommands: true,\n valueRequired: true,\n processCommand: async (command, context) => {\n const id = parseInt(command.value || '', 10);\n if (isNaN(id)) {\n context.writer.writeln(\n 'Please provide a valid TODO ID.',\n );\n return;\n }\n const todo = this.todos.find((todo) => todo.id === id);\n if (!todo) {\n context.writer.writeError(\n `TODO item with ID ${id} not found.`,\n );\n return;\n }\n todo.completed = true;\n this.saveToStorage();\n context.writer.writeSuccess(\n `Marked TODO item with ID ${id} as completed.`,\n );\n },\n },\n ];\n }\n\n private loadFromStorage(): {\n id: number;\n text: string;\n completed: boolean;\n }[] {\n const data = localStorage.getItem(this.storageKey);\n return data ? JSON.parse(data) : [];\n }\n\n private saveToStorage(): void {\n localStorage.setItem(this.storageKey, JSON.stringify(this.todos));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { resolveCommandProcessorProvider } from '@qodalis/angular-cli';\nimport { CliTodoCommandProcessor } from './processors/cli-todo-command-processor';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [resolveCommandProcessorProvider(CliTodoCommandProcessor)],\n})\nexport class CliTodoModule {}\n","/*\n * Public API Surface of string\n */\n\nexport * from './lib/cli-todo.module';\n\nexport * from './lib/processors/cli-todo-command-processor';\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-todo.mjs","sources":["../../../projects/todo/src/lib/version.ts","../../../projects/todo/src/lib/processors/cli-todo-command-processor.ts","../../../projects/todo/src/lib/cli-todo.module.ts","../../../projects/todo/src/public-api.ts","../../../projects/todo/src/qodalis-cli-todo.ts"],"sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '0.0.3';\n ","import { Injectable } from '@angular/core';\nimport {\n CliForegroundColor,\n CliIcon,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliExecutionContext,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\n@Injectable()\nexport class CliTodoCommandProcessor implements ICliCommandProcessor {\n command = 'todo';\n\n description =\n 'A command-line tool for managing your tasks efficiently. Add, list, complete, and remove TODO items with simple commands.';\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n processors?: ICliCommandProcessor[] | undefined = [];\n\n metadata?: CliProcessorMetadata | undefined = {\n icon: '📝',\n };\n\n private todos: { id: number; text: string; completed: boolean }[] = [];\n\n private nextId = 1;\n\n private storageKey = 'todo-items';\n\n constructor() {\n this.registerSubProcessors();\n }\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n context.executor.showHelp(command, context);\n }\n\n writeDescription(context: ICliExecutionContext): void {\n context.writer.writeln(this.description!);\n context.writer.writeln();\n context.writer.writeln('Usage:');\n context.writer.writeln(' todo <command> [options]');\n context.writer.writeln();\n context.writer.writeln('Commands:');\n context.writer.writeln(' ls List all TODO items');\n context.writer.writeln(\n ' add <text> Add a new TODO item with the given text',\n );\n context.writer.writeln(\n ' rm <id> Remove a TODO item by its ID',\n );\n context.writer.writeln(\n ' complete <id> Mark a TODO item as completed by its ID',\n );\n context.writer.writeln();\n context.writer.writeln('Examples:');\n context.writer.writeln(' todo add Buy milk');\n context.writer.writeln(' todo ls');\n context.writer.writeln(' todo complete 1');\n context.writer.writeln(' todo rm 2');\n context.writer.writeln();\n }\n\n async initialize(context: ICliExecutionContext): Promise<void> {\n this.todos = this.loadFromStorage();\n this.nextId =\n this.todos.length > 0\n ? Math.max(...this.todos.map((t) => t.id)) + 1\n : 1;\n }\n\n private lineThroughText(text: string): string {\n return text\n .split('')\n .map((char) => char + '\\u0336')\n .join('');\n }\n\n private registerSubProcessors(): void {\n this.processors = [\n {\n command: 'ls',\n description: 'List all TODO items',\n processCommand: async (_, context) => {\n if (this.todos.length === 0) {\n context.writer.writeWarning('No TODO items found.');\n context.writer.writeln(\n 'Use \"todo add <text>\" to add a new TODO item.',\n );\n context.process.output(JSON.stringify(this.todos));\n return;\n }\n this.todos.forEach((todo) => {\n context.writer.writeln(\n `[${todo.completed ? context.writer.wrapInColor(CliIcon.CheckIcon, CliForegroundColor.Green) : ' '}] #${todo.id} - ${todo.text}`,\n );\n });\n\n context.process.output(JSON.stringify(this.todos));\n },\n },\n {\n command: 'add',\n description: 'Add a new TODO item',\n allowUnlistedCommands: true,\n valueRequired: true,\n processCommand: async (command, context) => {\n const text = command.value;\n if (!text) {\n context.writer.writeError(\n 'Please provide a TODO description.',\n );\n return;\n }\n\n const newItem = {\n id: this.nextId++,\n text,\n completed: false,\n };\n\n this.todos.push(newItem);\n\n this.saveToStorage();\n\n context.writer.writeSuccess(`Added TODO: \"${text}\"`);\n\n context.process.output(newItem.id.toString());\n },\n },\n {\n command: 'rm',\n description: 'Remove a TODO item by ID',\n allowUnlistedCommands: true,\n parameters: [\n {\n name: 'all',\n description: 'Remove all TODO items',\n type: 'boolean',\n defaultValue: false,\n aliases: ['a'],\n required: false,\n },\n ],\n processCommand: async (command, context) => {\n if (command.args['all'] || command.args['a']) {\n this.todos = [];\n this.saveToStorage();\n context.writer.writeSuccess('Removed all TODO items.');\n return;\n }\n\n const id = parseInt(command.value!, 10);\n if (isNaN(id)) {\n context.writer.writeError(\n 'Please provide a valid TODO ID.',\n );\n return;\n }\n const index = this.todos.findIndex(\n (todo) => todo.id === id,\n );\n if (index === -1) {\n context.writer.writeInfo(\n `TODO item with ID ${id} not found.`,\n );\n return;\n }\n this.todos.splice(index, 1);\n this.saveToStorage();\n context.writer.writeSuccess(\n `Removed TODO item with ID ${id}.`,\n );\n },\n },\n {\n command: 'complete',\n description: 'Mark a TODO item as completed by ID',\n allowUnlistedCommands: true,\n valueRequired: true,\n processCommand: async (command, context) => {\n const id = parseInt(command.value || '', 10);\n if (isNaN(id)) {\n context.writer.writeln(\n 'Please provide a valid TODO ID.',\n );\n return;\n }\n const todo = this.todos.find((todo) => todo.id === id);\n if (!todo) {\n context.writer.writeError(\n `TODO item with ID ${id} not found.`,\n );\n return;\n }\n todo.completed = true;\n this.saveToStorage();\n context.writer.writeSuccess(\n `Marked TODO item with ID ${id} as completed.`,\n );\n },\n },\n ];\n }\n\n private loadFromStorage(): {\n id: number;\n text: string;\n completed: boolean;\n }[] {\n const data = localStorage.getItem(this.storageKey);\n return data ? JSON.parse(data) : [];\n }\n\n private saveToStorage(): void {\n localStorage.setItem(this.storageKey, JSON.stringify(this.todos));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { resolveCommandProcessorProvider } from '@qodalis/angular-cli';\nimport { CliTodoCommandProcessor } from './processors/cli-todo-command-processor';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [resolveCommandProcessorProvider(CliTodoCommandProcessor)],\n})\nexport class CliTodoModule {}\n","/*\n * Public API Surface of string\n */\n\nexport * from './lib/cli-todo.module';\n\nexport * from './lib/processors/cli-todo-command-processor';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AACA;AACO,MAAM,eAAe,GAAG,OAAO;;MCWzB,uBAAuB,CAAA;AAsBhC,IAAA,WAAA,GAAA;QArBA,IAAO,CAAA,OAAA,GAAG,MAAM,CAAC;QAEjB,IAAW,CAAA,WAAA,GACP,2HAA2H,CAAC;QAEhI,IAAM,CAAA,MAAA,GAAG,oBAAoB,CAAC;QAE9B,IAAO,CAAA,OAAA,GAAG,eAAe,CAAC;QAE1B,IAAU,CAAA,UAAA,GAAwC,EAAE,CAAC;AAErD,QAAA,IAAA,CAAA,QAAQ,GAAsC;AAC1C,YAAA,IAAI,EAAE,IAAI;SACb,CAAC;QAEM,IAAK,CAAA,KAAA,GAAuD,EAAE,CAAC;QAE/D,IAAM,CAAA,MAAA,GAAG,CAAC,CAAC;QAEX,IAAU,CAAA,UAAA,GAAG,YAAY,CAAC;QAG9B,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAChC;AAED,IAAA,MAAM,cAAc,CAChB,OAA0B,EAC1B,OAA6B,EAAA;QAE7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KAC/C;AAED,IAAA,gBAAgB,CAAC,OAA6B,EAAA;QAC1C,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAY,CAAC,CAAC;AAC1C,QAAA,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AACzB,QAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,QAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;AACrD,QAAA,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AACzB,QAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACpC,QAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;AACjE,QAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAClB,4DAA4D,CAC/D,CAAC;AACF,QAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAClB,iDAAiD,CACpD,CAAC;AACF,QAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAClB,4DAA4D,CAC/D,CAAC;AACF,QAAA,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AACzB,QAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACpC,QAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAC9C,QAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACpC,QAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAC5C,QAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACtC,QAAA,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;KAC5B;IAED,MAAM,UAAU,CAAC,OAA6B,EAAA;AAC1C,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,MAAM;AACP,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;kBACf,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;kBAC5C,CAAC,CAAC;KACf;AAEO,IAAA,eAAe,CAAC,IAAY,EAAA;AAChC,QAAA,OAAO,IAAI;aACN,KAAK,CAAC,EAAE,CAAC;aACT,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,QAAQ,CAAC;aAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;KACjB;IAEO,qBAAqB,GAAA;QACzB,IAAI,CAAC,UAAU,GAAG;AACd,YAAA;AACI,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,WAAW,EAAE,qBAAqB;AAClC,gBAAA,cAAc,EAAE,OAAO,CAAC,EAAE,OAAO,KAAI;AACjC,oBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACzB,wBAAA,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;AACpD,wBAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAClB,+CAA+C,CAClD,CAAC;AACF,wBAAA,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;wBACnD,OAAO;AACV,qBAAA;oBACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACxB,wBAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAClB,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,GAAA,EAAM,IAAI,CAAC,EAAE,CAAM,GAAA,EAAA,IAAI,CAAC,IAAI,CAAA,CAAE,CACnI,CAAC;AACN,qBAAC,CAAC,CAAC;AAEH,oBAAA,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;iBACtD;AACJ,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,WAAW,EAAE,qBAAqB;AAClC,gBAAA,qBAAqB,EAAE,IAAI;AAC3B,gBAAA,aAAa,EAAE,IAAI;AACnB,gBAAA,cAAc,EAAE,OAAO,OAAO,EAAE,OAAO,KAAI;AACvC,oBAAA,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;oBAC3B,IAAI,CAAC,IAAI,EAAE;AACP,wBAAA,OAAO,CAAC,MAAM,CAAC,UAAU,CACrB,oCAAoC,CACvC,CAAC;wBACF,OAAO;AACV,qBAAA;AAED,oBAAA,MAAM,OAAO,GAAG;AACZ,wBAAA,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;wBACjB,IAAI;AACJ,wBAAA,SAAS,EAAE,KAAK;qBACnB,CAAC;AAEF,oBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAEzB,IAAI,CAAC,aAAa,EAAE,CAAC;oBAErB,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAgB,aAAA,EAAA,IAAI,CAAG,CAAA,CAAA,CAAC,CAAC;AAErD,oBAAA,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;iBACjD;AACJ,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,WAAW,EAAE,0BAA0B;AACvC,gBAAA,qBAAqB,EAAE,IAAI;AAC3B,gBAAA,UAAU,EAAE;AACR,oBAAA;AACI,wBAAA,IAAI,EAAE,KAAK;AACX,wBAAA,WAAW,EAAE,uBAAuB;AACpC,wBAAA,IAAI,EAAE,SAAS;AACf,wBAAA,YAAY,EAAE,KAAK;wBACnB,OAAO,EAAE,CAAC,GAAG,CAAC;AACd,wBAAA,QAAQ,EAAE,KAAK;AAClB,qBAAA;AACJ,iBAAA;AACD,gBAAA,cAAc,EAAE,OAAO,OAAO,EAAE,OAAO,KAAI;AACvC,oBAAA,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAC1C,wBAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;wBAChB,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,wBAAA,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;wBACvD,OAAO;AACV,qBAAA;oBAED,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAM,EAAE,EAAE,CAAC,CAAC;AACxC,oBAAA,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE;AACX,wBAAA,OAAO,CAAC,MAAM,CAAC,UAAU,CACrB,iCAAiC,CACpC,CAAC;wBACF,OAAO;AACV,qBAAA;AACD,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAC9B,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,CAC3B,CAAC;AACF,oBAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;wBACd,OAAO,CAAC,MAAM,CAAC,SAAS,CACpB,CAAqB,kBAAA,EAAA,EAAE,CAAa,WAAA,CAAA,CACvC,CAAC;wBACF,OAAO;AACV,qBAAA;oBACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,OAAO,CAAC,MAAM,CAAC,YAAY,CACvB,CAA6B,0BAAA,EAAA,EAAE,CAAG,CAAA,CAAA,CACrC,CAAC;iBACL;AACJ,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,UAAU;AACnB,gBAAA,WAAW,EAAE,qCAAqC;AAClD,gBAAA,qBAAqB,EAAE,IAAI;AAC3B,gBAAA,aAAa,EAAE,IAAI;AACnB,gBAAA,cAAc,EAAE,OAAO,OAAO,EAAE,OAAO,KAAI;AACvC,oBAAA,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;AAC7C,oBAAA,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE;AACX,wBAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAClB,iCAAiC,CACpC,CAAC;wBACF,OAAO;AACV,qBAAA;AACD,oBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;oBACvD,IAAI,CAAC,IAAI,EAAE;wBACP,OAAO,CAAC,MAAM,CAAC,UAAU,CACrB,CAAqB,kBAAA,EAAA,EAAE,CAAa,WAAA,CAAA,CACvC,CAAC;wBACF,OAAO;AACV,qBAAA;AACD,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,OAAO,CAAC,MAAM,CAAC,YAAY,CACvB,CAA4B,yBAAA,EAAA,EAAE,CAAgB,cAAA,CAAA,CACjD,CAAC;iBACL;AACJ,aAAA;SACJ,CAAC;KACL;IAEO,eAAe,GAAA;QAKnB,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACnD,QAAA,OAAO,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;KACvC;IAEO,aAAa,GAAA;AACjB,QAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KACrE;+GApNQ,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAvB,uBAAuB,EAAA,CAAA,CAAA,EAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;;;MCFE,aAAa,CAAA;+GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAb,aAAa,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,aAFX,CAAC,+BAA+B,CAAC,uBAAuB,CAAC,CAAC,EAAA,CAAA,CAAA,EAAA;;4FAE5D,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,SAAS,EAAE,CAAC,+BAA+B,CAAC,uBAAuB,CAAC,CAAC;AACxE,iBAAA,CAAA;;;ACTD;;AAEG;;ACFH;;AAEG;;;;"}
package/lib/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const LIBRARY_VERSION = "0.0.2";
1
+ export declare const LIBRARY_VERSION = "0.0.3";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qodalis/cli-todo",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "A command-line tool for managing your tasks efficiently. Add, list, complete, and remove TODO items with simple commands.",
5
5
  "author": "Nicolae Lupei, Qodalis Solutions",
6
6
  "license": "MIT",
package/umd/index.js CHANGED
@@ -34,7 +34,7 @@
34
34
  };
35
35
 
36
36
  // Automatically generated during build
37
- const LIBRARY_VERSION = '0.0.2';
37
+ const LIBRARY_VERSION = '0.0.3';
38
38
 
39
39
  let CliTodoCommandProcessor = class CliTodoCommandProcessor {
40
40
  constructor() {
@@ -56,22 +56,22 @@
56
56
  }
57
57
  writeDescription(context) {
58
58
  context.writer.writeln(this.description);
59
- context.writer.writeln('');
59
+ context.writer.writeln();
60
60
  context.writer.writeln('Usage:');
61
61
  context.writer.writeln(' todo <command> [options]');
62
- context.writer.writeln('');
62
+ context.writer.writeln();
63
63
  context.writer.writeln('Commands:');
64
64
  context.writer.writeln(' ls List all TODO items');
65
65
  context.writer.writeln(' add <text> Add a new TODO item with the given text');
66
66
  context.writer.writeln(' rm <id> Remove a TODO item by its ID');
67
67
  context.writer.writeln(' complete <id> Mark a TODO item as completed by its ID');
68
- context.writer.writeln('');
68
+ context.writer.writeln();
69
69
  context.writer.writeln('Examples:');
70
70
  context.writer.writeln(' todo add Buy milk');
71
71
  context.writer.writeln(' todo ls');
72
72
  context.writer.writeln(' todo complete 1');
73
73
  context.writer.writeln(' todo rm 2');
74
- context.writer.writeln('');
74
+ context.writer.writeln();
75
75
  }
76
76
  async initialize(context) {
77
77
  this.todos = this.loadFromStorage();
@@ -99,7 +99,7 @@
99
99
  return;
100
100
  }
101
101
  this.todos.forEach((todo) => {
102
- context.writer.writeln(`[${todo.completed ? context.writer.wrapInColor(cliCore.CliIcon.CheckIcon, cliCore.CliForegroundColor.Green) : ' '}] #${todo.id} - ${todo.completed ? this.lineThroughText(todo.text) : todo.text}`);
102
+ context.writer.writeln(`[${todo.completed ? context.writer.wrapInColor(cliCore.CliIcon.CheckIcon, cliCore.CliForegroundColor.Green) : ' '}] #${todo.id} - ${todo.text}`);
103
103
  });
104
104
  context.process.output(JSON.stringify(this.todos));
105
105
  },