@vendasta/developer-training 0.6.1 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/esm2020/lib/_internal/a-hundal-to-do-project.api.service.mjs +61 -0
  2. package/esm2020/lib/_internal/hdo-todo.api.service.mjs +60 -0
  3. package/esm2020/lib/_internal/index.mjs +5 -1
  4. package/esm2020/lib/_internal/interfaces/annotations.interface.mjs +8 -0
  5. package/esm2020/lib/_internal/interfaces/api.interface.mjs +1 -1
  6. package/esm2020/lib/_internal/interfaces/index.mjs +1 -1
  7. package/esm2020/lib/_internal/interfaces/lfossenier-todo.interface.mjs +8 -0
  8. package/esm2020/lib/_internal/interfaces/tkabakovtodo.interface.mjs +8 -0
  9. package/esm2020/lib/_internal/l-fossenier-todo.api.service.mjs +53 -0
  10. package/esm2020/lib/_internal/m-mugot-list-qa.api.service.mjs +4 -4
  11. package/esm2020/lib/_internal/objects/annotations.mjs +24 -0
  12. package/esm2020/lib/_internal/objects/api.mjs +505 -5
  13. package/esm2020/lib/_internal/objects/index.mjs +5 -2
  14. package/esm2020/lib/_internal/objects/lfossenier-todo.mjs +139 -0
  15. package/esm2020/lib/_internal/objects/tkabakovtodo.mjs +268 -0
  16. package/esm2020/lib/_internal/t-kabakov-to-do.api.service.mjs +61 -0
  17. package/fesm2015/vendasta-developer-training.mjs +1121 -7
  18. package/fesm2015/vendasta-developer-training.mjs.map +1 -1
  19. package/fesm2020/vendasta-developer-training.mjs +1121 -7
  20. package/fesm2020/vendasta-developer-training.mjs.map +1 -1
  21. package/lib/_internal/a-hundal-to-do-project.api.service.d.ts +20 -0
  22. package/lib/_internal/hdo-todo.api.service.d.ts +20 -0
  23. package/lib/_internal/index.d.ts +4 -0
  24. package/lib/_internal/interfaces/annotations.interface.d.ts +4 -0
  25. package/lib/_internal/interfaces/api.interface.d.ts +78 -2
  26. package/lib/_internal/interfaces/index.d.ts +4 -1
  27. package/lib/_internal/interfaces/lfossenier-todo.interface.d.ts +23 -0
  28. package/lib/_internal/interfaces/tkabakovtodo.interface.d.ts +40 -0
  29. package/lib/_internal/l-fossenier-todo.api.service.d.ts +19 -0
  30. package/lib/_internal/m-mugot-list-qa.api.service.d.ts +3 -3
  31. package/lib/_internal/objects/annotations.d.ts +8 -0
  32. package/lib/_internal/objects/api.d.ts +148 -6
  33. package/lib/_internal/objects/index.d.ts +4 -1
  34. package/lib/_internal/objects/lfossenier-todo.d.ts +42 -0
  35. package/lib/_internal/objects/tkabakovtodo.d.ts +77 -0
  36. package/lib/_internal/t-kabakov-to-do.api.service.d.ts +20 -0
  37. package/package.json +1 -1
@@ -6,5 +6,8 @@
6
6
  // *********************************
7
7
  export { FieldMask, } from './field-mask';
8
8
  export { GetBusinessQuestionsAnswersRequest, GetBusinessQuestionsAnswersResponse, QuestionsAnswers, ReplaceBusinessQuestionsAnswersRequest, } from './businessqa';
9
- export { MMugotCreateTaskRequest, MMugotCreateTaskResponse, MMugotDeleteTaskRequest, MMugotGetTaskRequest, MMugotGetTaskResponse, MMugotTask, } from './api';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9kZXZlbG9wZXJfdHJhaW5pbmdfc2RrL3NyYy9saWIvX2ludGVybmFsL29iamVjdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DO0FBQ3BDLDJCQUEyQjtBQUMzQixnQkFBZ0I7QUFDaEIsRUFBRTtBQUNGLGlCQUFpQjtBQUNqQixvQ0FBb0M7QUFDcEMsT0FBTyxFQUNILFNBQVMsR0FDWixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQ0gsa0NBQWtDLEVBQ2xDLG1DQUFtQyxFQUNuQyxnQkFBZ0IsRUFDaEIsc0NBQXNDLEdBQ3pDLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2QixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLFVBQVUsR0FDYixNQUFNLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cyBJbmRleC5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuZXhwb3J0IHtcbiAgICBGaWVsZE1hc2ssXG59IGZyb20gJy4vZmllbGQtbWFzayc7XG5cbmV4cG9ydCB7XG4gICAgR2V0QnVzaW5lc3NRdWVzdGlvbnNBbnN3ZXJzUmVxdWVzdCxcbiAgICBHZXRCdXNpbmVzc1F1ZXN0aW9uc0Fuc3dlcnNSZXNwb25zZSxcbiAgICBRdWVzdGlvbnNBbnN3ZXJzLFxuICAgIFJlcGxhY2VCdXNpbmVzc1F1ZXN0aW9uc0Fuc3dlcnNSZXF1ZXN0LFxufSBmcm9tICcuL2J1c2luZXNzcWEnO1xuXG5leHBvcnQge1xuICAgIE1NdWdvdENyZWF0ZVRhc2tSZXF1ZXN0LFxuICAgIE1NdWdvdENyZWF0ZVRhc2tSZXNwb25zZSxcbiAgICBNTXVnb3REZWxldGVUYXNrUmVxdWVzdCxcbiAgICBNTXVnb3RHZXRUYXNrUmVxdWVzdCxcbiAgICBNTXVnb3RHZXRUYXNrUmVzcG9uc2UsXG4gICAgTU11Z290VGFzayxcbn0gZnJvbSAnLi9hcGknO1xuXG4iXX0=
9
+ export { TKabakovAddToDoItemRequest, TKabakovAddToDoItemResponse, TKabakovDeleteToDoItemRequest, TKabakovDeleteToDoItemResponse, TKabakovGetToDoItemRequest, TKabakovGetToDoItemResponse, TKabakovListToDoItemsRequest, TKabakovListToDoItemsResponse, TKabakovToDoId, TKabakovToDoItem, TKabakovUpdateToDoItemRequest, TKabakovUpdateToDoItemResponse, } from './tkabakovtodo';
10
+ export { CreateLFossenierTaskRequest, DeleteLFossenierTaskRequest, LoadLFossenierTaskRequest, LoadLFossenierTaskResponse, TodoTaskMessage, ToggleFinishedLFossenierTaskRequest, } from './lfossenier-todo';
11
+ export { Access, } from './annotations';
12
+ export { AHundalAddTaskRequest, AHundalAddTaskResponse, AHundalDeleteTaskRequest, AHundalDeleteTaskResponse, AHundalEditTaskRequest, AHundalEditTaskResponse, AHundalGetSpecificTaskRequest, AHundalGetSpecificTaskResponse, AHundalGetTasksRequest, AHundalGetTasksResponse, AHundalTask, CreateHdoTodoRequest, CreateHdoTodoResponse, DeleteHdoTodoRequest, DeleteHdoTodoResponse, GetHdoTodoRequest, GetHdoTodoResponse, HdoTodoItem, ListHdoTodoRequest, ListHdoTodoResponse, MMugotCreateTaskRequest, MMugotCreateTaskResponse, MMugotDeleteTaskRequest, MMugotListTaskRequest, MMugotListTaskResponse, MMugotTask, UpdateHdoTodoRequest, UpdateHdoTodoResponse, } from './api';
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9kZXZlbG9wZXJfdHJhaW5pbmdfc2RrL3NyYy9saWIvX2ludGVybmFsL29iamVjdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DO0FBQ3BDLDJCQUEyQjtBQUMzQixnQkFBZ0I7QUFDaEIsRUFBRTtBQUNGLGlCQUFpQjtBQUNqQixvQ0FBb0M7QUFDcEMsT0FBTyxFQUNILFNBQVMsR0FDWixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQ0gsa0NBQWtDLEVBQ2xDLG1DQUFtQyxFQUNuQyxnQkFBZ0IsRUFDaEIsc0NBQXNDLEdBQ3pDLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFDSCwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIsMEJBQTBCLEVBQzFCLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsNkJBQTZCLEVBQzdCLDhCQUE4QixHQUNqQyxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFDSCwyQkFBMkIsRUFDM0IsMkJBQTJCLEVBQzNCLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIsZUFBZSxFQUNmLG1DQUFtQyxHQUN0QyxNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sRUFDSCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNILHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4Qix1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixVQUFVLEVBQ1Ysb0JBQW9CLEVBQ3BCLHFCQUFxQixHQUN4QixNQUFNLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cyBJbmRleC5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuZXhwb3J0IHtcbiAgICBGaWVsZE1hc2ssXG59IGZyb20gJy4vZmllbGQtbWFzayc7XG5cbmV4cG9ydCB7XG4gICAgR2V0QnVzaW5lc3NRdWVzdGlvbnNBbnN3ZXJzUmVxdWVzdCxcbiAgICBHZXRCdXNpbmVzc1F1ZXN0aW9uc0Fuc3dlcnNSZXNwb25zZSxcbiAgICBRdWVzdGlvbnNBbnN3ZXJzLFxuICAgIFJlcGxhY2VCdXNpbmVzc1F1ZXN0aW9uc0Fuc3dlcnNSZXF1ZXN0LFxufSBmcm9tICcuL2J1c2luZXNzcWEnO1xuXG5leHBvcnQge1xuICAgIFRLYWJha292QWRkVG9Eb0l0ZW1SZXF1ZXN0LFxuICAgIFRLYWJha292QWRkVG9Eb0l0ZW1SZXNwb25zZSxcbiAgICBUS2FiYWtvdkRlbGV0ZVRvRG9JdGVtUmVxdWVzdCxcbiAgICBUS2FiYWtvdkRlbGV0ZVRvRG9JdGVtUmVzcG9uc2UsXG4gICAgVEthYmFrb3ZHZXRUb0RvSXRlbVJlcXVlc3QsXG4gICAgVEthYmFrb3ZHZXRUb0RvSXRlbVJlc3BvbnNlLFxuICAgIFRLYWJha292TGlzdFRvRG9JdGVtc1JlcXVlc3QsXG4gICAgVEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVzcG9uc2UsXG4gICAgVEthYmFrb3ZUb0RvSWQsXG4gICAgVEthYmFrb3ZUb0RvSXRlbSxcbiAgICBUS2FiYWtvdlVwZGF0ZVRvRG9JdGVtUmVxdWVzdCxcbiAgICBUS2FiYWtvdlVwZGF0ZVRvRG9JdGVtUmVzcG9uc2UsXG59IGZyb20gJy4vdGthYmFrb3Z0b2RvJztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVMRm9zc2VuaWVyVGFza1JlcXVlc3QsXG4gICAgRGVsZXRlTEZvc3NlbmllclRhc2tSZXF1ZXN0LFxuICAgIExvYWRMRm9zc2VuaWVyVGFza1JlcXVlc3QsXG4gICAgTG9hZExGb3NzZW5pZXJUYXNrUmVzcG9uc2UsXG4gICAgVG9kb1Rhc2tNZXNzYWdlLFxuICAgIFRvZ2dsZUZpbmlzaGVkTEZvc3NlbmllclRhc2tSZXF1ZXN0LFxufSBmcm9tICcuL2xmb3NzZW5pZXItdG9kbyc7XG5cbmV4cG9ydCB7XG4gICAgQWNjZXNzLFxufSBmcm9tICcuL2Fubm90YXRpb25zJztcblxuZXhwb3J0IHtcbiAgICBBSHVuZGFsQWRkVGFza1JlcXVlc3QsXG4gICAgQUh1bmRhbEFkZFRhc2tSZXNwb25zZSxcbiAgICBBSHVuZGFsRGVsZXRlVGFza1JlcXVlc3QsXG4gICAgQUh1bmRhbERlbGV0ZVRhc2tSZXNwb25zZSxcbiAgICBBSHVuZGFsRWRpdFRhc2tSZXF1ZXN0LFxuICAgIEFIdW5kYWxFZGl0VGFza1Jlc3BvbnNlLFxuICAgIEFIdW5kYWxHZXRTcGVjaWZpY1Rhc2tSZXF1ZXN0LFxuICAgIEFIdW5kYWxHZXRTcGVjaWZpY1Rhc2tSZXNwb25zZSxcbiAgICBBSHVuZGFsR2V0VGFza3NSZXF1ZXN0LFxuICAgIEFIdW5kYWxHZXRUYXNrc1Jlc3BvbnNlLFxuICAgIEFIdW5kYWxUYXNrLFxuICAgIENyZWF0ZUhkb1RvZG9SZXF1ZXN0LFxuICAgIENyZWF0ZUhkb1RvZG9SZXNwb25zZSxcbiAgICBEZWxldGVIZG9Ub2RvUmVxdWVzdCxcbiAgICBEZWxldGVIZG9Ub2RvUmVzcG9uc2UsXG4gICAgR2V0SGRvVG9kb1JlcXVlc3QsXG4gICAgR2V0SGRvVG9kb1Jlc3BvbnNlLFxuICAgIEhkb1RvZG9JdGVtLFxuICAgIExpc3RIZG9Ub2RvUmVxdWVzdCxcbiAgICBMaXN0SGRvVG9kb1Jlc3BvbnNlLFxuICAgIE1NdWdvdENyZWF0ZVRhc2tSZXF1ZXN0LFxuICAgIE1NdWdvdENyZWF0ZVRhc2tSZXNwb25zZSxcbiAgICBNTXVnb3REZWxldGVUYXNrUmVxdWVzdCxcbiAgICBNTXVnb3RMaXN0VGFza1JlcXVlc3QsXG4gICAgTU11Z290TGlzdFRhc2tSZXNwb25zZSxcbiAgICBNTXVnb3RUYXNrLFxuICAgIFVwZGF0ZUhkb1RvZG9SZXF1ZXN0LFxuICAgIFVwZGF0ZUhkb1RvZG9SZXNwb25zZSxcbn0gZnJvbSAnLi9hcGknO1xuXG4iXX0=
@@ -0,0 +1,139 @@
1
+ export class CreateLFossenierTaskRequest {
2
+ static fromProto(proto) {
3
+ let m = new CreateLFossenierTaskRequest();
4
+ m = Object.assign(m, proto);
5
+ return m;
6
+ }
7
+ constructor(kwargs) {
8
+ if (!kwargs) {
9
+ return;
10
+ }
11
+ Object.assign(this, kwargs);
12
+ }
13
+ toApiJson() {
14
+ const toReturn = {};
15
+ if (typeof this.taskName !== 'undefined') {
16
+ toReturn['taskName'] = this.taskName;
17
+ }
18
+ return toReturn;
19
+ }
20
+ }
21
+ export class DeleteLFossenierTaskRequest {
22
+ static fromProto(proto) {
23
+ let m = new DeleteLFossenierTaskRequest();
24
+ m = Object.assign(m, proto);
25
+ return m;
26
+ }
27
+ constructor(kwargs) {
28
+ if (!kwargs) {
29
+ return;
30
+ }
31
+ Object.assign(this, kwargs);
32
+ }
33
+ toApiJson() {
34
+ const toReturn = {};
35
+ if (typeof this.taskId !== 'undefined') {
36
+ toReturn['taskId'] = this.taskId;
37
+ }
38
+ if (typeof this.taskName !== 'undefined') {
39
+ toReturn['taskName'] = this.taskName;
40
+ }
41
+ return toReturn;
42
+ }
43
+ }
44
+ export class LoadLFossenierTaskRequest {
45
+ static fromProto(proto) {
46
+ let m = new LoadLFossenierTaskRequest();
47
+ m = Object.assign(m, proto);
48
+ return m;
49
+ }
50
+ constructor(kwargs) {
51
+ if (!kwargs) {
52
+ return;
53
+ }
54
+ Object.assign(this, kwargs);
55
+ }
56
+ toApiJson() {
57
+ const toReturn = {};
58
+ if (typeof this.finished !== 'undefined') {
59
+ toReturn['finished'] = this.finished;
60
+ }
61
+ return toReturn;
62
+ }
63
+ }
64
+ export class LoadLFossenierTaskResponse {
65
+ static fromProto(proto) {
66
+ let m = new LoadLFossenierTaskResponse();
67
+ m = Object.assign(m, proto);
68
+ if (proto.todoTasks) {
69
+ m.todoTasks = proto.todoTasks.map(TodoTaskMessage.fromProto);
70
+ }
71
+ return m;
72
+ }
73
+ constructor(kwargs) {
74
+ if (!kwargs) {
75
+ return;
76
+ }
77
+ Object.assign(this, kwargs);
78
+ }
79
+ toApiJson() {
80
+ const toReturn = {};
81
+ if (typeof this.todoTasks !== 'undefined' && this.todoTasks !== null) {
82
+ toReturn['todoTasks'] = 'toApiJson' in this.todoTasks ? this.todoTasks.toApiJson() : this.todoTasks;
83
+ }
84
+ return toReturn;
85
+ }
86
+ }
87
+ export class TodoTaskMessage {
88
+ static fromProto(proto) {
89
+ let m = new TodoTaskMessage();
90
+ m = Object.assign(m, proto);
91
+ return m;
92
+ }
93
+ constructor(kwargs) {
94
+ if (!kwargs) {
95
+ return;
96
+ }
97
+ Object.assign(this, kwargs);
98
+ }
99
+ toApiJson() {
100
+ const toReturn = {};
101
+ if (typeof this.taskNames !== 'undefined') {
102
+ toReturn['taskNames'] = this.taskNames;
103
+ }
104
+ if (typeof this.finished !== 'undefined') {
105
+ toReturn['finished'] = this.finished;
106
+ }
107
+ if (typeof this.taskId !== 'undefined') {
108
+ toReturn['taskId'] = this.taskId;
109
+ }
110
+ return toReturn;
111
+ }
112
+ }
113
+ export class ToggleFinishedLFossenierTaskRequest {
114
+ static fromProto(proto) {
115
+ let m = new ToggleFinishedLFossenierTaskRequest();
116
+ m = Object.assign(m, proto);
117
+ return m;
118
+ }
119
+ constructor(kwargs) {
120
+ if (!kwargs) {
121
+ return;
122
+ }
123
+ Object.assign(this, kwargs);
124
+ }
125
+ toApiJson() {
126
+ const toReturn = {};
127
+ if (typeof this.taskId !== 'undefined') {
128
+ toReturn['taskId'] = this.taskId;
129
+ }
130
+ if (typeof this.taskName !== 'undefined') {
131
+ toReturn['taskName'] = this.taskName;
132
+ }
133
+ if (typeof this.finished !== 'undefined') {
134
+ toReturn['finished'] = this.finished;
135
+ }
136
+ return toReturn;
137
+ }
138
+ }
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGZvc3Nlbmllci10b2RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vZGV2ZWxvcGVyX3RyYWluaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL2xmb3NzZW5pZXItdG9kby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxNQUFNLE9BQU8sMkJBQTJCO0lBR3BDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLDJCQUEyQixFQUFFLENBQUM7UUFDMUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBK0M7UUFDdkQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7U0FBQztRQUNqRixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sMkJBQTJCO0lBSXBDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLDJCQUEyQixFQUFFLENBQUM7UUFDMUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBK0M7UUFDdkQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9B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QVEsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUFDO1FBQ2pGLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQUM7UUFDakYsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgKiBhcyBpIGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5cbmV4cG9ydCBjbGFzcyBDcmVhdGVMRm9zc2VuaWVyVGFza1JlcXVlc3QgaW1wbGVtZW50cyBpLkNyZWF0ZUxGb3NzZW5pZXJUYXNrUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdGFza05hbWU6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IENyZWF0ZUxGb3NzZW5pZXJUYXNrUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IENyZWF0ZUxGb3NzZW5pZXJUYXNrUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ3JlYXRlTEZvc3NlbmllclRhc2tSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGFza05hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Rhc2tOYW1lJ10gPSB0aGlzLnRhc2tOYW1lO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERlbGV0ZUxGb3NzZW5pZXJUYXNrUmVxdWVzdCBpbXBsZW1lbnRzIGkuRGVsZXRlTEZvc3NlbmllclRhc2tSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB0YXNrSWQ6IHN0cmluZztcbiAgICB0YXNrTmFtZTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogRGVsZXRlTEZvc3NlbmllclRhc2tSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRGVsZXRlTEZvc3NlbmllclRhc2tSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5EZWxldGVMRm9zc2VuaWVyVGFza1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YXNrSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Rhc2tJZCddID0gdGhpcy50YXNrSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGFza05hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Rhc2tOYW1lJ10gPSB0aGlzLnRhc2tOYW1lO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExvYWRMRm9zc2VuaWVyVGFza1JlcXVlc3QgaW1wbGVtZW50cyBpLkxvYWRMRm9zc2VuaWVyVGFza1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGZpbmlzaGVkOiBib29sZWFuO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTG9hZExGb3NzZW5pZXJUYXNrUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IExvYWRMRm9zc2VuaWVyVGFza1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxvYWRMRm9zc2VuaWVyVGFza1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5maW5pc2hlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZmluaXNoZWQnXSA9IHRoaXMuZmluaXNoZWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9hZExGb3NzZW5pZXJUYXNrUmVzcG9uc2UgaW1wbGVtZW50cyBpLkxvYWRMRm9zc2VuaWVyVGFza1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB0b2RvVGFza3M6IFRvZG9UYXNrTWVzc2FnZVtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTG9hZExGb3NzZW5pZXJUYXNrUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBMb2FkTEZvc3NlbmllclRhc2tSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50b2RvVGFza3MpIHttLnRvZG9UYXNrcyA9IHByb3RvLnRvZG9UYXNrcy5tYXAoVG9kb1Rhc2tNZXNzYWdlLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxvYWRMRm9zc2VuaWVyVGFza1Jlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG9kb1Rhc2tzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnRvZG9UYXNrcyAhPT0gbnVsbCkge3RvUmV0dXJuWyd0b2RvVGFza3MnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudG9kb1Rhc2tzID8gKHRoaXMudG9kb1Rhc2tzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRvZG9UYXNrczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUb2RvVGFza01lc3NhZ2UgaW1wbGVtZW50cyBpLlRvZG9UYXNrTWVzc2FnZUludGVyZmFjZSB7XG4gICAgdGFza05hbWVzOiBzdHJpbmc7XG4gICAgZmluaXNoZWQ6IGJvb2xlYW47XG4gICAgdGFza0lkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUb2RvVGFza01lc3NhZ2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBUb2RvVGFza01lc3NhZ2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRvZG9UYXNrTWVzc2FnZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRhc2tOYW1lcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGFza05hbWVzJ10gPSB0aGlzLnRhc2tOYW1lczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5maW5pc2hlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZmluaXNoZWQnXSA9IHRoaXMuZmluaXNoZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGFza0lkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0YXNrSWQnXSA9IHRoaXMudGFza0lkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRvZ2dsZUZpbmlzaGVkTEZvc3NlbmllclRhc2tSZXF1ZXN0IGltcGxlbWVudHMgaS5Ub2dnbGVGaW5pc2hlZExGb3NzZW5pZXJUYXNrUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdGFza0lkOiBzdHJpbmc7XG4gICAgdGFza05hbWU6IHN0cmluZztcbiAgICBmaW5pc2hlZDogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRvZ2dsZUZpbmlzaGVkTEZvc3NlbmllclRhc2tSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVG9nZ2xlRmluaXNoZWRMRm9zc2VuaWVyVGFza1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRvZ2dsZUZpbmlzaGVkTEZvc3NlbmllclRhc2tSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGFza0lkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0YXNrSWQnXSA9IHRoaXMudGFza0lkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRhc2tOYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0YXNrTmFtZSddID0gdGhpcy50YXNrTmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5maW5pc2hlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZmluaXNoZWQnXSA9IHRoaXMuZmluaXNoZWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG4iXX0=
@@ -0,0 +1,268 @@
1
+ export class TKabakovAddToDoItemRequest {
2
+ static fromProto(proto) {
3
+ let m = new TKabakovAddToDoItemRequest();
4
+ m = Object.assign(m, proto);
5
+ return m;
6
+ }
7
+ constructor(kwargs) {
8
+ if (!kwargs) {
9
+ return;
10
+ }
11
+ Object.assign(this, kwargs);
12
+ }
13
+ toApiJson() {
14
+ const toReturn = {};
15
+ if (typeof this.title !== 'undefined') {
16
+ toReturn['title'] = this.title;
17
+ }
18
+ if (typeof this.description !== 'undefined') {
19
+ toReturn['description'] = this.description;
20
+ }
21
+ return toReturn;
22
+ }
23
+ }
24
+ export class TKabakovAddToDoItemResponse {
25
+ static fromProto(proto) {
26
+ let m = new TKabakovAddToDoItemResponse();
27
+ m = Object.assign(m, proto);
28
+ if (proto.todoItem) {
29
+ m.todoItem = TKabakovToDoItem.fromProto(proto.todoItem);
30
+ }
31
+ return m;
32
+ }
33
+ constructor(kwargs) {
34
+ if (!kwargs) {
35
+ return;
36
+ }
37
+ Object.assign(this, kwargs);
38
+ }
39
+ toApiJson() {
40
+ const toReturn = {};
41
+ if (typeof this.todoItem !== 'undefined' && this.todoItem !== null) {
42
+ toReturn['todoItem'] = 'toApiJson' in this.todoItem ? this.todoItem.toApiJson() : this.todoItem;
43
+ }
44
+ return toReturn;
45
+ }
46
+ }
47
+ export class TKabakovDeleteToDoItemRequest {
48
+ static fromProto(proto) {
49
+ let m = new TKabakovDeleteToDoItemRequest();
50
+ m = Object.assign(m, proto);
51
+ return m;
52
+ }
53
+ constructor(kwargs) {
54
+ if (!kwargs) {
55
+ return;
56
+ }
57
+ Object.assign(this, kwargs);
58
+ }
59
+ toApiJson() {
60
+ const toReturn = {};
61
+ if (typeof this.todoId !== 'undefined') {
62
+ toReturn['todoId'] = this.todoId;
63
+ }
64
+ return toReturn;
65
+ }
66
+ }
67
+ export class TKabakovDeleteToDoItemResponse {
68
+ static fromProto(proto) {
69
+ let m = new TKabakovDeleteToDoItemResponse();
70
+ m = Object.assign(m, proto);
71
+ return m;
72
+ }
73
+ constructor(kwargs) {
74
+ if (!kwargs) {
75
+ return;
76
+ }
77
+ Object.assign(this, kwargs);
78
+ }
79
+ toApiJson() {
80
+ const toReturn = {};
81
+ if (typeof this.todoId !== 'undefined') {
82
+ toReturn['todoId'] = this.todoId;
83
+ }
84
+ return toReturn;
85
+ }
86
+ }
87
+ export class TKabakovGetToDoItemRequest {
88
+ static fromProto(proto) {
89
+ let m = new TKabakovGetToDoItemRequest();
90
+ m = Object.assign(m, proto);
91
+ return m;
92
+ }
93
+ constructor(kwargs) {
94
+ if (!kwargs) {
95
+ return;
96
+ }
97
+ Object.assign(this, kwargs);
98
+ }
99
+ toApiJson() {
100
+ const toReturn = {};
101
+ if (typeof this.todoId !== 'undefined') {
102
+ toReturn['todoId'] = this.todoId;
103
+ }
104
+ return toReturn;
105
+ }
106
+ }
107
+ export class TKabakovGetToDoItemResponse {
108
+ static fromProto(proto) {
109
+ let m = new TKabakovGetToDoItemResponse();
110
+ m = Object.assign(m, proto);
111
+ if (proto.todoItem) {
112
+ m.todoItem = TKabakovToDoItem.fromProto(proto.todoItem);
113
+ }
114
+ return m;
115
+ }
116
+ constructor(kwargs) {
117
+ if (!kwargs) {
118
+ return;
119
+ }
120
+ Object.assign(this, kwargs);
121
+ }
122
+ toApiJson() {
123
+ const toReturn = {};
124
+ if (typeof this.todoItem !== 'undefined' && this.todoItem !== null) {
125
+ toReturn['todoItem'] = 'toApiJson' in this.todoItem ? this.todoItem.toApiJson() : this.todoItem;
126
+ }
127
+ return toReturn;
128
+ }
129
+ }
130
+ export class TKabakovListToDoItemsRequest {
131
+ static fromProto(proto) {
132
+ let m = new TKabakovListToDoItemsRequest();
133
+ m = Object.assign(m, proto);
134
+ return m;
135
+ }
136
+ constructor(kwargs) {
137
+ if (!kwargs) {
138
+ return;
139
+ }
140
+ Object.assign(this, kwargs);
141
+ }
142
+ toApiJson() {
143
+ const toReturn = {};
144
+ return toReturn;
145
+ }
146
+ }
147
+ export class TKabakovListToDoItemsResponse {
148
+ static fromProto(proto) {
149
+ let m = new TKabakovListToDoItemsResponse();
150
+ m = Object.assign(m, proto);
151
+ if (proto.todoItems) {
152
+ m.todoItems = proto.todoItems.map(TKabakovToDoItem.fromProto);
153
+ }
154
+ return m;
155
+ }
156
+ constructor(kwargs) {
157
+ if (!kwargs) {
158
+ return;
159
+ }
160
+ Object.assign(this, kwargs);
161
+ }
162
+ toApiJson() {
163
+ const toReturn = {};
164
+ if (typeof this.todoItems !== 'undefined' && this.todoItems !== null) {
165
+ toReturn['todoItems'] = 'toApiJson' in this.todoItems ? this.todoItems.toApiJson() : this.todoItems;
166
+ }
167
+ return toReturn;
168
+ }
169
+ }
170
+ export class TKabakovToDoId {
171
+ static fromProto(proto) {
172
+ let m = new TKabakovToDoId();
173
+ m = Object.assign(m, proto);
174
+ return m;
175
+ }
176
+ constructor(kwargs) {
177
+ if (!kwargs) {
178
+ return;
179
+ }
180
+ Object.assign(this, kwargs);
181
+ }
182
+ toApiJson() {
183
+ const toReturn = {};
184
+ if (typeof this.todoId !== 'undefined') {
185
+ toReturn['todoId'] = this.todoId;
186
+ }
187
+ return toReturn;
188
+ }
189
+ }
190
+ export class TKabakovToDoItem {
191
+ static fromProto(proto) {
192
+ let m = new TKabakovToDoItem();
193
+ m = Object.assign(m, proto);
194
+ return m;
195
+ }
196
+ constructor(kwargs) {
197
+ if (!kwargs) {
198
+ return;
199
+ }
200
+ Object.assign(this, kwargs);
201
+ }
202
+ toApiJson() {
203
+ const toReturn = {};
204
+ if (typeof this.todoId !== 'undefined') {
205
+ toReturn['todoId'] = this.todoId;
206
+ }
207
+ if (typeof this.title !== 'undefined') {
208
+ toReturn['title'] = this.title;
209
+ }
210
+ if (typeof this.description !== 'undefined') {
211
+ toReturn['description'] = this.description;
212
+ }
213
+ if (typeof this.isDone !== 'undefined') {
214
+ toReturn['isDone'] = this.isDone;
215
+ }
216
+ if (typeof this.deleted !== 'undefined') {
217
+ toReturn['deleted'] = this.deleted;
218
+ }
219
+ return toReturn;
220
+ }
221
+ }
222
+ export class TKabakovUpdateToDoItemRequest {
223
+ static fromProto(proto) {
224
+ let m = new TKabakovUpdateToDoItemRequest();
225
+ m = Object.assign(m, proto);
226
+ if (proto.todoItem) {
227
+ m.todoItem = TKabakovToDoItem.fromProto(proto.todoItem);
228
+ }
229
+ return m;
230
+ }
231
+ constructor(kwargs) {
232
+ if (!kwargs) {
233
+ return;
234
+ }
235
+ Object.assign(this, kwargs);
236
+ }
237
+ toApiJson() {
238
+ const toReturn = {};
239
+ if (typeof this.todoItem !== 'undefined' && this.todoItem !== null) {
240
+ toReturn['todoItem'] = 'toApiJson' in this.todoItem ? this.todoItem.toApiJson() : this.todoItem;
241
+ }
242
+ return toReturn;
243
+ }
244
+ }
245
+ export class TKabakovUpdateToDoItemResponse {
246
+ static fromProto(proto) {
247
+ let m = new TKabakovUpdateToDoItemResponse();
248
+ m = Object.assign(m, proto);
249
+ if (proto.todoItem) {
250
+ m.todoItem = TKabakovToDoItem.fromProto(proto.todoItem);
251
+ }
252
+ return m;
253
+ }
254
+ constructor(kwargs) {
255
+ if (!kwargs) {
256
+ return;
257
+ }
258
+ Object.assign(this, kwargs);
259
+ }
260
+ toApiJson() {
261
+ const toReturn = {};
262
+ if (typeof this.todoItem !== 'undefined' && this.todoItem !== null) {
263
+ toReturn['todoItem'] = 'toApiJson' in this.todoItem ? this.todoItem.toApiJson() : this.todoItem;
264
+ }
265
+ return toReturn;
266
+ }
267
+ }
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGthYmFrb3Z0b2RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vZGV2ZWxvcGVyX3RyYWluaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL3RrYWJha292dG9kby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxNQUFNLE9BQU8sMEJBQTBCO0lBSW5DLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFDekMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBOEM7UUFDdEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FBQztRQUN4RSxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUFDO1FBQzFGLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTywyQkFBMkI7SUFHcEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksMkJBQTJCLEVBQUUsQ0FBQztRQUMxQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUs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QyxDQUFDO0lBRUQsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFFBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FBQztRQUMvSyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIE9iamVjdHMuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCAqIGFzIGkgZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cblxuZXhwb3J0IGNsYXNzIFRLYWJha292QWRkVG9Eb0l0ZW1SZXF1ZXN0IGltcGxlbWVudHMgaS5US2FiYWtvdkFkZFRvRG9JdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVEthYmFrb3ZBZGRUb0RvSXRlbVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBUS2FiYWtvdkFkZFRvRG9JdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVEthYmFrb3ZBZGRUb0RvSXRlbVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50aXRsZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGl0bGUnXSA9IHRoaXMudGl0bGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGVzY3JpcHRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Rlc2NyaXB0aW9uJ10gPSB0aGlzLmRlc2NyaXB0aW9uO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRLYWJha292QWRkVG9Eb0l0ZW1SZXNwb25zZSBpbXBsZW1lbnRzIGkuVEthYmFrb3ZBZGRUb0RvSXRlbVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB0b2RvSXRlbTogVEthYmFrb3ZUb0RvSXRlbTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRLYWJha292QWRkVG9Eb0l0ZW1SZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFRLYWJha292QWRkVG9Eb0l0ZW1SZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50b2RvSXRlbSkge20udG9kb0l0ZW0gPSBUS2FiYWtvdlRvRG9JdGVtLmZyb21Qcm90byhwcm90by50b2RvSXRlbSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRLYWJha292QWRkVG9Eb0l0ZW1SZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRvZG9JdGVtICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnRvZG9JdGVtICE9PSBudWxsKSB7dG9SZXR1cm5bJ3RvZG9JdGVtJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnRvZG9JdGVtID8gKHRoaXMudG9kb0l0ZW0gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudG9kb0l0ZW07fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVEthYmFrb3ZEZWxldGVUb0RvSXRlbVJlcXVlc3QgaW1wbGVtZW50cyBpLlRLYWJha292RGVsZXRlVG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB0b2RvSWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRLYWJha292RGVsZXRlVG9Eb0l0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVEthYmFrb3ZEZWxldGVUb0RvSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRLYWJha292RGVsZXRlVG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG9kb0lkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0b2RvSWQnXSA9IHRoaXMudG9kb0lkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRLYWJha292RGVsZXRlVG9Eb0l0ZW1SZXNwb25zZSBpbXBsZW1lbnRzIGkuVEthYmFrb3ZEZWxldGVUb0RvSXRlbVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB0b2RvSWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRLYWJha292RGVsZXRlVG9Eb0l0ZW1SZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFRLYWJha292RGVsZXRlVG9Eb0l0ZW1SZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVEthYmFrb3ZEZWxldGVUb0RvSXRlbVJlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG9kb0lkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0b2RvSWQnXSA9IHRoaXMudG9kb0lkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRLYWJha292R2V0VG9Eb0l0ZW1SZXF1ZXN0IGltcGxlbWVudHMgaS5US2FiYWtvdkdldFRvRG9JdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdG9kb0lkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUS2FiYWtvdkdldFRvRG9JdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IFRLYWJha292R2V0VG9Eb0l0ZW1SZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5US2FiYWtvdkdldFRvRG9JdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRvZG9JZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndG9kb0lkJ10gPSB0aGlzLnRvZG9JZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUS2FiYWtvdkdldFRvRG9JdGVtUmVzcG9uc2UgaW1wbGVtZW50cyBpLlRLYWJha292R2V0VG9Eb0l0ZW1SZXNwb25zZUludGVyZmFjZSB7XG4gICAgdG9kb0l0ZW06IFRLYWJha292VG9Eb0l0ZW07XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUS2FiYWtvdkdldFRvRG9JdGVtUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBUS2FiYWtvdkdldFRvRG9JdGVtUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8udG9kb0l0ZW0pIHttLnRvZG9JdGVtID0gVEthYmFrb3ZUb0RvSXRlbS5mcm9tUHJvdG8ocHJvdG8udG9kb0l0ZW0pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5US2FiYWtvdkdldFRvRG9JdGVtUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50b2RvSXRlbSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50b2RvSXRlbSAhPT0gbnVsbCkge3RvUmV0dXJuWyd0b2RvSXRlbSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50b2RvSXRlbSA/ICh0aGlzLnRvZG9JdGVtIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRvZG9JdGVtO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRLYWJha292TGlzdFRvRG9JdGVtc1JlcXVlc3QgaW1wbGVtZW50cyBpLlRLYWJha292TGlzdFRvRG9JdGVtc1JlcXVlc3RJbnRlcmZhY2Uge1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IFRLYWJha292TGlzdFRvRG9JdGVtc1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRLYWJha292TGlzdFRvRG9JdGVtc1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUS2FiYWtvdkxpc3RUb0RvSXRlbXNSZXNwb25zZSBpbXBsZW1lbnRzIGkuVEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRvZG9JdGVtczogVEthYmFrb3ZUb0RvSXRlbVtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBUS2FiYWtvdkxpc3RUb0RvSXRlbXNSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50b2RvSXRlbXMpIHttLnRvZG9JdGVtcyA9IHByb3RvLnRvZG9JdGVtcy5tYXAoVEthYmFrb3ZUb0RvSXRlbS5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5US2FiYWtvdkxpc3RUb0RvSXRlbXNSZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRvZG9JdGVtcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50b2RvSXRlbXMgIT09IG51bGwpIHt0b1JldHVyblsndG9kb0l0ZW1zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnRvZG9JdGVtcyA/ICh0aGlzLnRvZG9JdGVtcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50b2RvSXRlbXM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVEthYmFrb3ZUb0RvSWQgaW1wbGVtZW50cyBpLlRLYWJha292VG9Eb0lkSW50ZXJmYWNlIHtcbiAgICB0b2RvSWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRLYWJha292VG9Eb0lkIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVEthYmFrb3ZUb0RvSWQoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRLYWJha292VG9Eb0lkSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG9kb0lkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0b2RvSWQnXSA9IHRoaXMudG9kb0lkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRLYWJha292VG9Eb0l0ZW0gaW1wbGVtZW50cyBpLlRLYWJha292VG9Eb0l0ZW1JbnRlcmZhY2Uge1xuICAgIHRvZG9JZDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBpc0RvbmU6IGJvb2xlYW47XG4gICAgZGVsZXRlZDogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRLYWJha292VG9Eb0l0ZW0ge1xuICAgICAgICBsZXQgbSA9IG5ldyBUS2FiYWtvdlRvRG9JdGVtKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5US2FiYWtvdlRvRG9JdGVtSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG9kb0lkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0b2RvSWQnXSA9IHRoaXMudG9kb0lkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRpdGxlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0aXRsZSddID0gdGhpcy50aXRsZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZXNjcmlwdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGVzY3JpcHRpb24nXSA9IHRoaXMuZGVzY3JpcHRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaXNEb25lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpc0RvbmUnXSA9IHRoaXMuaXNEb25lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlbGV0ZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2RlbGV0ZWQnXSA9IHRoaXMuZGVsZXRlZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUS2FiYWtvdlVwZGF0ZVRvRG9JdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuVEthYmFrb3ZVcGRhdGVUb0RvSXRlbVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHRvZG9JdGVtOiBUS2FiYWtvdlRvRG9JdGVtO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVEthYmFrb3ZVcGRhdGVUb0RvSXRlbVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBUS2FiYWtvdlVwZGF0ZVRvRG9JdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50b2RvSXRlbSkge20udG9kb0l0ZW0gPSBUS2FiYWtvdlRvRG9JdGVtLmZyb21Qcm90byhwcm90by50b2RvSXRlbSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRLYWJha292VXBkYXRlVG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG9kb0l0ZW0gIT09ICd1bmRlZmluZWQnICYmIHRoaXMudG9kb0l0ZW0gIT09IG51bGwpIHt0b1JldHVyblsndG9kb0l0ZW0nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudG9kb0l0ZW0gPyAodGhpcy50b2RvSXRlbSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50b2RvSXRlbTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUS2FiYWtvdlVwZGF0ZVRvRG9JdGVtUmVzcG9uc2UgaW1wbGVtZW50cyBpLlRLYWJha292VXBkYXRlVG9Eb0l0ZW1SZXNwb25zZUludGVyZmFjZSB7XG4gICAgdG9kb0l0ZW06IFRLYWJha292VG9Eb0l0ZW07XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUS2FiYWtvdlVwZGF0ZVRvRG9JdGVtUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBUS2FiYWtvdlVwZGF0ZVRvRG9JdGVtUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8udG9kb0l0ZW0pIHttLnRvZG9JdGVtID0gVEthYmFrb3ZUb0RvSXRlbS5mcm9tUHJvdG8ocHJvdG8udG9kb0l0ZW0pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5US2FiYWtvdlVwZGF0ZVRvRG9JdGVtUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50b2RvSXRlbSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50b2RvSXRlbSAhPT0gbnVsbCkge3RvUmV0dXJuWyd0b2RvSXRlbSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50b2RvSXRlbSA/ICh0aGlzLnRvZG9JdGVtIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRvZG9JdGVtO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuIl19
@@ -0,0 +1,61 @@
1
+ // *********************************
2
+ // Code generated by sdkgen
3
+ // DO NOT EDIT!.
4
+ //
5
+ // API Service.
6
+ // *********************************
7
+ import { Injectable } from '@angular/core';
8
+ import { TKabakovAddToDoItemRequest, TKabakovAddToDoItemResponse, TKabakovDeleteToDoItemRequest, TKabakovDeleteToDoItemResponse, TKabakovGetToDoItemRequest, TKabakovGetToDoItemResponse, TKabakovListToDoItemsRequest, TKabakovListToDoItemsResponse, TKabakovUpdateToDoItemRequest, TKabakovUpdateToDoItemResponse, } from './objects/';
9
+ import { HttpHeaders, HttpClient } from '@angular/common/http';
10
+ import { HostService } from '../_generated/host.service';
11
+ import { map } from 'rxjs/operators';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/common/http";
14
+ import * as i2 from "../_generated/host.service";
15
+ export class TKabakovToDoApiService {
16
+ constructor(http, hostService) {
17
+ this.http = http;
18
+ this.hostService = hostService;
19
+ this._host = this.hostService.hostWithScheme;
20
+ }
21
+ apiOptions() {
22
+ return {
23
+ headers: new HttpHeaders({
24
+ 'Content-Type': 'application/json'
25
+ }),
26
+ withCredentials: true
27
+ };
28
+ }
29
+ tKabakovGetToDoItem(r) {
30
+ const request = (r.toApiJson) ? r : new TKabakovGetToDoItemRequest(r);
31
+ return this.http.post(this._host + "/developertraining.v1.TKabakovToDo/TKabakovGetToDoItem", request.toApiJson(), this.apiOptions())
32
+ .pipe(map(resp => TKabakovGetToDoItemResponse.fromProto(resp)));
33
+ }
34
+ tKabakovAddToDoItem(r) {
35
+ const request = (r.toApiJson) ? r : new TKabakovAddToDoItemRequest(r);
36
+ return this.http.post(this._host + "/developertraining.v1.TKabakovToDo/TKabakovAddToDoItem", request.toApiJson(), this.apiOptions())
37
+ .pipe(map(resp => TKabakovAddToDoItemResponse.fromProto(resp)));
38
+ }
39
+ tKabakovDeleteToDoItem(r) {
40
+ const request = (r.toApiJson) ? r : new TKabakovDeleteToDoItemRequest(r);
41
+ return this.http.post(this._host + "/developertraining.v1.TKabakovToDo/TKabakovDeleteToDoItem", request.toApiJson(), this.apiOptions())
42
+ .pipe(map(resp => TKabakovDeleteToDoItemResponse.fromProto(resp)));
43
+ }
44
+ tKabakovUpdateToDoItem(r) {
45
+ const request = (r.toApiJson) ? r : new TKabakovUpdateToDoItemRequest(r);
46
+ return this.http.post(this._host + "/developertraining.v1.TKabakovToDo/TKabakovUpdateToDoItem", request.toApiJson(), this.apiOptions())
47
+ .pipe(map(resp => TKabakovUpdateToDoItemResponse.fromProto(resp)));
48
+ }
49
+ tKabakovListToDoItems(r) {
50
+ const request = (r.toApiJson) ? r : new TKabakovListToDoItemsRequest(r);
51
+ return this.http.post(this._host + "/developertraining.v1.TKabakovToDo/TKabakovListToDoItems", request.toApiJson(), this.apiOptions())
52
+ .pipe(map(resp => TKabakovListToDoItemsResponse.fromProto(resp)));
53
+ }
54
+ }
55
+ TKabakovToDoApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: TKabakovToDoApiService, deps: [{ token: i1.HttpClient }, { token: i2.HostService }], target: i0.ɵɵFactoryTarget.Injectable });
56
+ TKabakovToDoApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: TKabakovToDoApiService, providedIn: 'root' });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: TKabakovToDoApiService, decorators: [{
58
+ type: Injectable,
59
+ args: [{ providedIn: 'root' }]
60
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.HostService }]; } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidC1rYWJha292LXRvLWRvLmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZGV2ZWxvcGVyX3RyYWluaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC90LWthYmFrb3YtdG8tZG8uYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DO0FBQ3BDLDJCQUEyQjtBQUMzQixnQkFBZ0I7QUFDaEIsRUFBRTtBQUNGLGVBQWU7QUFDZixvQ0FBb0M7QUFDcEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0MsMEJBQTBCLEVBQzFCLDJCQUEyQixFQUMzQiw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLDBCQUEwQixFQUMxQiwyQkFBMkIsRUFDM0IsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0IsOEJBQThCLEdBQ3JDLE1BQU0sWUFBWSxDQUFDO0FBYXBCLE9BQU8sRUFBQyxXQUFXLEVBQUUsVUFBVSxFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRXZELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUduQyxNQUFNLE9BQU8sc0JBQXNCO0lBRy9CLFlBQW9CLElBQWdCLEVBQVUsV0FBd0I7UUFBbEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRjlELFVBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQztJQUdoRCxDQUFDO0lBRU8sVUFBVTtRQUNkLE9BQU87WUFDSCxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7Z0JBQ3JCLGNBQWMsRUFBRSxrQkFBa0I7YUFDckMsQ0FBQztZQUNGLGVBQWUsRUFBRSxJQUFJO1NBQ3hCLENBQUM7SUFDTixDQUFDO0lBRUQs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QUFDLENBQzdELENBQUM7SUFDVixDQUFDOzttSEFqRFEsc0JBQXNCO3VIQUF0QixzQkFBc0IsY0FEVixNQUFNOzJGQUNsQixzQkFBc0I7a0JBRGxDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBBUEkgU2VydmljZS5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgICAgIFRLYWJha292QWRkVG9Eb0l0ZW1SZXF1ZXN0LFxuICAgICAgICBUS2FiYWtvdkFkZFRvRG9JdGVtUmVzcG9uc2UsXG4gICAgICAgIFRLYWJha292RGVsZXRlVG9Eb0l0ZW1SZXF1ZXN0LFxuICAgICAgICBUS2FiYWtvdkRlbGV0ZVRvRG9JdGVtUmVzcG9uc2UsXG4gICAgICAgIFRLYWJha292R2V0VG9Eb0l0ZW1SZXF1ZXN0LFxuICAgICAgICBUS2FiYWtvdkdldFRvRG9JdGVtUmVzcG9uc2UsXG4gICAgICAgIFRLYWJha292TGlzdFRvRG9JdGVtc1JlcXVlc3QsXG4gICAgICAgIFRLYWJha292TGlzdFRvRG9JdGVtc1Jlc3BvbnNlLFxuICAgICAgICBUS2FiYWtvdlVwZGF0ZVRvRG9JdGVtUmVxdWVzdCxcbiAgICAgICAgVEthYmFrb3ZVcGRhdGVUb0RvSXRlbVJlc3BvbnNlLFxufSBmcm9tICcuL29iamVjdHMvJztcbmltcG9ydCB7XG4gICAgICAgIFRLYWJha292QWRkVG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBUS2FiYWtvdkFkZFRvRG9JdGVtUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIFRLYWJha292RGVsZXRlVG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBUS2FiYWtvdkRlbGV0ZVRvRG9JdGVtUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIFRLYWJha292R2V0VG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBUS2FiYWtvdkdldFRvRG9JdGVtUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIFRLYWJha292TGlzdFRvRG9JdGVtc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFRLYWJha292TGlzdFRvRG9JdGVtc1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBUS2FiYWtvdlVwZGF0ZVRvRG9JdGVtUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgVEthYmFrb3ZVcGRhdGVUb0RvSXRlbVJlc3BvbnNlSW50ZXJmYWNlLFxufSBmcm9tICcuL2ludGVyZmFjZXMvJztcbmltcG9ydCB7SHR0cEhlYWRlcnMsIEh0dHBDbGllbnQsIEh0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtIb3N0U2VydmljZX0gZnJvbSAnLi4vX2dlbmVyYXRlZC9ob3N0LnNlcnZpY2UnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFRLYWJha292VG9Eb0FwaVNlcnZpY2Uge1xuICAgIHByaXZhdGUgX2hvc3QgPSB0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGhvc3RTZXJ2aWNlOiBIb3N0U2VydmljZSkge1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBpT3B0aW9ucygpOiB7aGVhZGVyczogSHR0cEhlYWRlcnMsIHdpdGhDcmVkZW50aWFsczogYm9vbGVhbn0ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHRLYWJha292R2V0VG9Eb0l0ZW0ocjogVEthYmFrb3ZHZXRUb0RvSXRlbVJlcXVlc3QgfCBUS2FiYWtvdkdldFRvRG9JdGVtUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8VEthYmFrb3ZHZXRUb0RvSXRlbVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxUS2FiYWtvdkdldFRvRG9JdGVtUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxUS2FiYWtvdkdldFRvRG9JdGVtUmVxdWVzdD5yKSA6IG5ldyBUS2FiYWtvdkdldFRvRG9JdGVtUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFRLYWJha292R2V0VG9Eb0l0ZW1SZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2RldmVsb3BlcnRyYWluaW5nLnYxLlRLYWJha292VG9Eby9US2FiYWtvdkdldFRvRG9JdGVtXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gVEthYmFrb3ZHZXRUb0RvSXRlbVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHRLYWJha292QWRkVG9Eb0l0ZW0ocjogVEthYmFrb3ZBZGRUb0RvSXRlbVJlcXVlc3QgfCBUS2FiYWtvdkFkZFRvRG9JdGVtUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8VEthYmFrb3ZBZGRUb0RvSXRlbVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxUS2FiYWtvdkFkZFRvRG9JdGVtUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxUS2FiYWtvdkFkZFRvRG9JdGVtUmVxdWVzdD5yKSA6IG5ldyBUS2FiYWtvdkFkZFRvRG9JdGVtUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFRLYWJha292QWRkVG9Eb0l0ZW1SZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2RldmVsb3BlcnRyYWluaW5nLnYxLlRLYWJha292VG9Eby9US2FiYWtvdkFkZFRvRG9JdGVtXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gVEthYmFrb3ZBZGRUb0RvSXRlbVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHRLYWJha292RGVsZXRlVG9Eb0l0ZW0ocjogVEthYmFrb3ZEZWxldGVUb0RvSXRlbVJlcXVlc3QgfCBUS2FiYWtvdkRlbGV0ZVRvRG9JdGVtUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8VEthYmFrb3ZEZWxldGVUb0RvSXRlbVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxUS2FiYWtvdkRlbGV0ZVRvRG9JdGVtUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxUS2FiYWtvdkRlbGV0ZVRvRG9JdGVtUmVxdWVzdD5yKSA6IG5ldyBUS2FiYWtvdkRlbGV0ZVRvRG9JdGVtUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFRLYWJha292RGVsZXRlVG9Eb0l0ZW1SZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2RldmVsb3BlcnRyYWluaW5nLnYxLlRLYWJha292VG9Eby9US2FiYWtvdkRlbGV0ZVRvRG9JdGVtXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gVEthYmFrb3ZEZWxldGVUb0RvSXRlbVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHRLYWJha292VXBkYXRlVG9Eb0l0ZW0ocjogVEthYmFrb3ZVcGRhdGVUb0RvSXRlbVJlcXVlc3QgfCBUS2FiYWtvdlVwZGF0ZVRvRG9JdGVtUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8VEthYmFrb3ZVcGRhdGVUb0RvSXRlbVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxUS2FiYWtvdlVwZGF0ZVRvRG9JdGVtUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxUS2FiYWtvdlVwZGF0ZVRvRG9JdGVtUmVxdWVzdD5yKSA6IG5ldyBUS2FiYWtvdlVwZGF0ZVRvRG9JdGVtUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFRLYWJha292VXBkYXRlVG9Eb0l0ZW1SZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2RldmVsb3BlcnRyYWluaW5nLnYxLlRLYWJha292VG9Eby9US2FiYWtvdlVwZGF0ZVRvRG9JdGVtXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gVEthYmFrb3ZVcGRhdGVUb0RvSXRlbVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHRLYWJha292TGlzdFRvRG9JdGVtcyhyOiBUS2FiYWtvdkxpc3RUb0RvSXRlbXNSZXF1ZXN0IHwgVEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8VEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFRLYWJha292TGlzdFRvRG9JdGVtc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8VEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVxdWVzdD5yKSA6IG5ldyBUS2FiYWtvdkxpc3RUb0RvSXRlbXNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9kZXZlbG9wZXJ0cmFpbmluZy52MS5US2FiYWtvdlRvRG8vVEthYmFrb3ZMaXN0VG9Eb0l0ZW1zXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gVEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgXG59XG4iXX0=